From 15893eac7783d6e9b3990d2d862217dc9b39e6f1 Mon Sep 17 00:00:00 2001 From: MosleyTheMalO Date: Sat, 26 Oct 2024 02:04:07 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20SPLURT-S?= =?UTF-8?q?tation/S.P.L.U.R.T-tg@7dc0e1d50e2999c7b972348ab848791f40e8b0cc?= =?UTF-8?q?=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .nojekyll | 0 CNAME | 1 + _maps/RandomZLevels/GUIDELINES.html | 46 + .../map_files/biodome/modules/map legend.html | 16 + .../maintenance_modules/map legend.html | 192 ++ _maps/safehouses.html | 16 + _maps/virtual_domains.html | 26 + area.html | 49 + area/space.html | 1 + .../ai_monitored/turret_protected.html | 1 + area/station/maintenance.html | 1 + atom.html | 581 +++++ atom/movable.html | 256 ++ atom/movable/immerse_overlay.html | 9 + atom/movable/plane_master_controller.html | 3 + atom/movable/render_plane_relay.html | 1 + atom/movable/render_step/emissive.html | 2 + .../movable/render_step/emissive_blocker.html | 5 + atom/movable/screen.html | 19 + atom/movable/screen/action_landing.html | 1 + atom/movable/screen/admin_popup.html | 1 + atom/movable/screen/alert.html | 1 + atom/movable/screen/alert/give.html | 25 + atom/movable/screen/alert/give/highfive.html | 1 + atom/movable/screen/alert/modlink_call.html | 1 + atom/movable/screen/alert/notify_action.html | 1 + atom/movable/screen/alert/poll_alert.html | 1 + atom/movable/screen/alert/status_effect.html | 1 + .../alert/status_effect/golem_status.html | 1 + .../screen/alert/status_effect/slimed.html | 1 + atom/movable/screen/ammo_counter.html | 1 + atom/movable/screen/button_palette.html | 1 + atom/movable/screen/combattoggle/flashy.html | 1 + .../screen/escape_menu/home_button_text.html | 1 + atom/movable/screen/fishing_hud.html | 1 + atom/movable/screen/fullscreen/carrier.html | 1 + .../screen/fullscreen/cursor_catcher.html | 1 + .../fullscreen/cursor_catcher/scope.html | 1 + atom/movable/screen/hud_bait.html | 1 + atom/movable/screen/hunger.html | 1 + atom/movable/screen/inventory.html | 1 + atom/movable/screen/mafia_popup.html | 1 + atom/movable/screen/map_view.html | 5 + .../movable/screen/map_view/char_preview.html | 1 + .../movable/screen/map_view/gateway_port.html | 1 + atom/movable/screen/movable.html | 1 + .../movable/screen/movable/action_button.html | 3 + atom/movable/screen/palette_scroll.html | 3 + .../movable/screen/parallax_layer/random.html | 1 + .../parallax_layer/random/space_gas.html | 1 + atom/movable/screen/plane_master.html | 81 + .../movable/screen/plane_master/parallax.html | 1 + .../screen/plane_master/rendering_plate.html | 6 + .../rendering_plate/lighting.html | 1 + atom/movable/screen/text/screen_timer.html | 1 + atom/movable/screen/wanted.html | 1 + atom/movable/visual/cryo_occupant.html | 1 + client.html | 178 ++ code/__DEFINES.html | 12 + code/__DEFINES/DNA.html | 1 + code/__DEFINES/MC.html | 34 + code/__DEFINES/__globals.html | 1 + code/__DEFINES/_click.html | 3 + code/__DEFINES/_flags.html | 9 + code/__DEFINES/_helpers.html | 13 + code/__DEFINES/_protect.html | 1 + code/__DEFINES/_tick.html | 1 + code/__DEFINES/access.html | 73 + code/__DEFINES/achievements.html | 1 + code/__DEFINES/acid.html | 1 + code/__DEFINES/actions.html | 5 + code/__DEFINES/admin.html | 3 + code/__DEFINES/admin_verb.html | 13 + code/__DEFINES/adventure.html | 3 + code/__DEFINES/ai/ai.html | 3 + code/__DEFINES/ai/ai_blackboard.html | 5 + code/__DEFINES/ai/bot_keys.html | 1 + code/__DEFINES/ai/carp.html | 1 + code/__DEFINES/ai/haunted.html | 1 + code/__DEFINES/ai/monsters.html | 1 + code/__DEFINES/ai/pet_commands.html | 1 + code/__DEFINES/ai/pets.html | 5 + code/__DEFINES/ai/simplemob.html | 1 + code/__DEFINES/ai/slime.html | 1 + code/__DEFINES/ai/tourist.html | 3 + code/__DEFINES/ai/trader.html | 1 + code/__DEFINES/ai/ventcrawling.html | 1 + code/__DEFINES/alarm.html | 1 + code/__DEFINES/alerts.html | 1 + code/__DEFINES/announcements.html | 1 + code/__DEFINES/anomaly.html | 9 + code/__DEFINES/antagonists.html | 16 + code/__DEFINES/apc_defines.html | 1 + code/__DEFINES/arcades.html | 1 + code/__DEFINES/art.html | 5 + code/__DEFINES/assemblies.html | 1 + code/__DEFINES/assert.html | 1 + code/__DEFINES/atmospherics/atmos_core.html | 19 + .../__DEFINES/atmospherics/atmos_helpers.html | 3 + .../atmospherics/atmos_machinery.html | 13 + .../atmospherics/atmos_mapping_helpers.html | 3 + .../atmospherics/atmos_mob_interaction.html | 19 + code/__DEFINES/atmospherics/atmos_piping.html | 1 + code/__DEFINES/atom_hud.html | 1 + code/__DEFINES/basic_mobs.html | 3 + code/__DEFINES/basketball.html | 3 + code/__DEFINES/bitrunning.html | 1 + code/__DEFINES/blood.html | 1 + code/__DEFINES/bodyparts.html | 9 + code/__DEFINES/botany.html | 15 + code/__DEFINES/callbacks.html | 1 + code/__DEFINES/cameranets.html | 1 + code/__DEFINES/cargo.html | 1 + code/__DEFINES/chat.html | 2 + code/__DEFINES/chat_filter.html | 1 + code/__DEFINES/cleaning.html | 7 + code/__DEFINES/click.html | 1 + code/__DEFINES/client.html | 5 + code/__DEFINES/clothing.html | 1 + code/__DEFINES/colors.html | 3 + code/__DEFINES/combat.html | 21 + code/__DEFINES/communications.html | 1 + code/__DEFINES/computers.html | 1 + code/__DEFINES/configuration.html | 1 + code/__DEFINES/construction/actions.html | 1 + code/__DEFINES/construction/material.html | 3 + code/__DEFINES/construction/rcd.html | 1 + code/__DEFINES/construction/structures.html | 1 + code/__DEFINES/cooldowns.html | 1 + code/__DEFINES/crafting.html | 1 + code/__DEFINES/crushing.html | 1 + code/__DEFINES/ctf.html | 1 + code/__DEFINES/cult.html | 1 + code/__DEFINES/database.html | 1 + code/__DEFINES/dcs/flags.html | 27 + code/__DEFINES/dcs/helpers.html | 11 + .../__DEFINES/dcs/signals/signals_action.html | 1 + code/__DEFINES/dcs/signals/signals_admin.html | 5 + .../dcs/signals/signals_adventure.html | 1 + .../dcs/signals/signals_ai_controller.html | 1 + code/__DEFINES/dcs/signals/signals_area.html | 1 + .../signals_atom/signals_atom_attack.html | 3 + .../signals_atom/signals_atom_explosion.html | 1 + .../signals_atom/signals_atom_lighting.html | 1 + .../signals_atom/signals_atom_main.html | 1 + .../signals_atom/signals_atom_mouse.html | 1 + .../signals_atom/signals_atom_movable.html | 1 + .../signals_atom/signals_atom_movement.html | 5 + .../signals_atom/signals_atom_x_act.html | 29 + .../dcs/signals/signals_backpack.html | 1 + code/__DEFINES/dcs/signals/signals_beam.html | 1 + .../dcs/signals/signals_bitrunning.html | 1 + code/__DEFINES/dcs/signals/signals_blob.html | 1 + code/__DEFINES/dcs/signals/signals_bot.html | 1 + .../__DEFINES/dcs/signals/signals_camera.html | 1 + .../dcs/signals/signals_changeling.html | 1 + .../dcs/signals/signals_circuit.html | 5 + .../__DEFINES/dcs/signals/signals_client.html | 1 + .../__DEFINES/dcs/signals/signals_closet.html | 1 + .../dcs/signals/signals_clothing.html | 9 + .../dcs/signals/signals_container.html | 1 + .../dcs/signals/signals_customizable.html | 1 + .../dcs/signals/signals_cytology.html | 1 + code/__DEFINES/dcs/signals/signals_datum.html | 5 + code/__DEFINES/dcs/signals/signals_event.html | 3 + code/__DEFINES/dcs/signals/signals_fish.html | 3 + code/__DEFINES/dcs/signals/signals_food.html | 1 + code/__DEFINES/dcs/signals/signals_gib.html | 1 + .../__DEFINES/dcs/signals/signals_global.html | 5 + .../dcs/signals/signals_global_object.html | 3 + .../dcs/signals/signals_heretic.html | 3 + code/__DEFINES/dcs/signals/signals_hud.html | 1 + .../dcs/signals/signals_hydroponic.html | 1 + .../dcs/signals/signals_janitor.html | 3 + code/__DEFINES/dcs/signals/signals_key.html | 1 + .../__DEFINES/dcs/signals/signals_ladder.html | 1 + .../dcs/signals/signals_lazy_templates.html | 1 + code/__DEFINES/dcs/signals/signals_leash.html | 7 + code/__DEFINES/dcs/signals/signals_lift.html | 1 + .../dcs/signals/signals_light_eater.html | 1 + .../__DEFINES/dcs/signals/signals_market.html | 1 + .../signals/signals_material_container.html | 1 + .../dcs/signals/signals_medical.html | 1 + code/__DEFINES/dcs/signals/signals_mind.html | 1 + .../__DEFINES/dcs/signals/signals_mining.html | 1 + .../signals/signals_mob/signals_mob_ai.html | 1 + .../signals_mob/signals_mob_arcade.html | 1 + .../signals_mob/signals_mob_basic.html | 1 + .../signals_mob/signals_mob_carbon.html | 1 + .../signals_mob/signals_mob_guardian.html | 1 + .../signals_mob/signals_mob_living.html | 9 + .../signals/signals_mob/signals_mob_main.html | 13 + .../signals_mob/signals_mob_silicon.html | 3 + .../signals_mob/signals_mob_simple.html | 1 + .../signals_mob/signals_mob_spawner.html | 1 + code/__DEFINES/dcs/signals/signals_mod.html | 1 + .../dcs/signals/signals_modular_computer.html | 1 + .../dcs/signals/signals_moveloop.html | 1 + .../dcs/signals/signals_movetype.html | 1 + code/__DEFINES/dcs/signals/signals_music.html | 1 + .../__DEFINES/dcs/signals/signals_object.html | 7 + .../signals/signals_operating_computer.html | 3 + .../dcs/signals/signals_operatives.html | 1 + .../dcs/signals/signals_painting.html | 1 + .../dcs/signals/signals_proxmonitor.html | 1 + .../dcs/signals/signals_radiation.html | 13 + .../dcs/signals/signals_reagent.html | 1 + .../dcs/signals/signals_restaurant.html | 3 + .../dcs/signals/signals_scangate.html | 1 + .../dcs/signals/signals_screentips.html | 31 + .../dcs/signals/signals_spatial_grid.html | 1 + .../dcs/signals/signals_species.html | 1 + code/__DEFINES/dcs/signals/signals_spell.html | 9 + .../dcs/signals/signals_storage.html | 1 + .../dcs/signals/signals_subsystem.html | 3 + code/__DEFINES/dcs/signals/signals_swab.html | 1 + .../dcs/signals/signals_techweb.html | 1 + code/__DEFINES/dcs/signals/signals_tools.html | 1 + .../dcs/signals/signals_traitor.html | 1 + .../dcs/signals/signals_transform.html | 1 + .../dcs/signals/signals_transport.html | 1 + code/__DEFINES/dcs/signals/signals_turf.html | 5 + .../dcs/signals/signals_twohand.html | 1 + .../dcs/signals/signals_vehicle.html | 1 + .../dcs/signals/signals_voidwalker.html | 1 + code/__DEFINES/dcs/signals/signals_wash.html | 1 + .../__DEFINES/dcs/signals/signals_wizard.html | 1 + .../dcs/signals/signals_xeno_control.html | 1 + code/__DEFINES/dcs/signals/uplink.html | 1 + code/__DEFINES/deadchat_control.html | 1 + code/__DEFINES/devices.html | 3 + code/__DEFINES/directional.html | 1 + code/__DEFINES/diseases.html | 27 + code/__DEFINES/dna_infuser_defines.html | 1 + code/__DEFINES/drone.html | 1 + code/__DEFINES/dynamic.html | 1 + code/__DEFINES/economy.html | 1 + code/__DEFINES/electrified_buckle.html | 1 + code/__DEFINES/events.html | 1 + code/__DEFINES/exosuit_fab.html | 1 + code/__DEFINES/experisci.html | 7 + code/__DEFINES/explosions.html | 1 + code/__DEFINES/external_organs.html | 1 + code/__DEFINES/firealarm.html | 1 + code/__DEFINES/fish.html | 7 + code/__DEFINES/fonts.html | 1 + code/__DEFINES/food.html | 5 + code/__DEFINES/footsteps.html | 1 + code/__DEFINES/fov.html | 1 + code/__DEFINES/generators.html | 1 + code/__DEFINES/ghost.html | 1 + code/__DEFINES/gravity.html | 4 + code/__DEFINES/hud.html | 1 + code/__DEFINES/icon_smoothing.html | 24 + code/__DEFINES/id_cards.html | 12 + code/__DEFINES/implants.html | 1 + .../important_recursive_contents.html | 3 + code/__DEFINES/injection.html | 1 + code/__DEFINES/input.html | 1 + code/__DEFINES/instruments.html | 1 + code/__DEFINES/interaction_flags.html | 1 + code/__DEFINES/inventory.html | 3 + code/__DEFINES/ipintel.html | 1 + code/__DEFINES/is_helpers.html | 1 + code/__DEFINES/jobs.html | 8 + code/__DEFINES/lag_switch.html | 1 + code/__DEFINES/language.html | 7 + code/__DEFINES/layers.html | 33 + code/__DEFINES/library.html | 1 + code/__DEFINES/lighting.html | 5 + code/__DEFINES/lights.html | 1 + code/__DEFINES/living.html | 3 + code/__DEFINES/logging.html | 5 + code/__DEFINES/machines.html | 3 + code/__DEFINES/magic.html | 12 + code/__DEFINES/map_exporter.html | 1 + code/__DEFINES/map_switch.html | 1 + code/__DEFINES/mapping.html | 1 + code/__DEFINES/maps.html | 1 + code/__DEFINES/market.html | 1 + code/__DEFINES/maths.html | 9 + code/__DEFINES/matrices.html | 7 + code/__DEFINES/mecha.html | 1 + code/__DEFINES/medical.html | 1 + code/__DEFINES/megafauna.html | 1 + code/__DEFINES/melee.html | 1 + code/__DEFINES/memory_defines.html | 1 + code/__DEFINES/mining.html | 1 + code/__DEFINES/mob_spawn.html | 1 + code/__DEFINES/mobfactions.html | 1 + code/__DEFINES/mobs.html | 15 + code/__DEFINES/mod.html | 1 + code/__DEFINES/modular_computer.html | 29 + code/__DEFINES/monkeys.html | 1 + code/__DEFINES/movement.html | 19 + code/__DEFINES/movement_info.html | 1 + code/__DEFINES/multiz.html | 1 + code/__DEFINES/nitrile.html | 1 + code/__DEFINES/nozzle_define.html | 1 + code/__DEFINES/nuclear_bomb.html | 1 + code/__DEFINES/obj_flags.html | 5 + code/__DEFINES/observers.html | 1 + code/__DEFINES/organ_movement.html | 1 + code/__DEFINES/overlays.html | 1 + code/__DEFINES/pai.html | 1 + code/__DEFINES/paintings.html | 1 + code/__DEFINES/paper.html | 3 + code/__DEFINES/particles.html | 1 + code/__DEFINES/path.html | 5 + code/__DEFINES/perf_test.html | 3 + code/__DEFINES/plumbing.html | 1 + code/__DEFINES/polls.html | 1 + code/__DEFINES/power.html | 1 + code/__DEFINES/preferences.html | 3 + code/__DEFINES/procpath.html | 1 + code/__DEFINES/projectiles.html | 3 + code/__DEFINES/pronouns.html | 39 + code/__DEFINES/qdel.html | 2 + code/__DEFINES/quirks.html | 1 + code/__DEFINES/radiation.html | 1 + code/__DEFINES/radio.html | 1 + code/__DEFINES/radioactive_nebula.html | 1 + code/__DEFINES/random_spawner.html | 1 + code/__DEFINES/reactions.html | 1 + code/__DEFINES/reagents.html | 11 + code/__DEFINES/regex.html | 1 + code/__DEFINES/religion.html | 3 + code/__DEFINES/research.html | 9 + code/__DEFINES/research/anomalies.html | 1 + .../research/research_categories.html | 1 + code/__DEFINES/research/slimes.html | 1 + code/__DEFINES/revolution.html | 1 + code/__DEFINES/robots.html | 1 + code/__DEFINES/rotation.html | 1 + code/__DEFINES/roundend.html | 1 + code/__DEFINES/rust_g.html | 50 + code/__DEFINES/say.html | 5 + code/__DEFINES/screentips.html | 1 + code/__DEFINES/security.html | 1 + code/__DEFINES/shuttles.html | 3 + code/__DEFINES/sight.html | 25 + code/__DEFINES/skills.html | 1 + code/__DEFINES/song.html | 1 + code/__DEFINES/sort_types.html | 1 + code/__DEFINES/sound.html | 1 + code/__DEFINES/space.html | 3 + code/__DEFINES/spaceman_dmm.html | 30 + code/__DEFINES/spacevines.html | 1 + code/__DEFINES/spatial_gridmap.html | 3 + code/__DEFINES/species_clothing_paths.html | 1 + code/__DEFINES/sprite_accessories.html | 1 + code/__DEFINES/stack.html | 1 + code/__DEFINES/stack_trace.html | 1 + code/__DEFINES/stat_tracking.html | 3 + code/__DEFINES/station.html | 1 + code/__DEFINES/status_effects.html | 5 + code/__DEFINES/strippable.html | 1 + code/__DEFINES/subsystems.html | 45 + code/__DEFINES/supermatter.html | 19 + code/__DEFINES/surgery.html | 1 + code/__DEFINES/text.html | 22 + code/__DEFINES/tgs.html | 1 + code/__DEFINES/tgui.html | 1 + code/__DEFINES/time.html | 1 + code/__DEFINES/tools.html | 9 + code/__DEFINES/toys.html | 1 + code/__DEFINES/traits/_traits.html | 3 + code/__DEFINES/traits/declarations.html | 49 + code/__DEFINES/traits/macros.html | 1 + code/__DEFINES/traits/sources.html | 13 + code/__DEFINES/tts.html | 1 + code/__DEFINES/turbine_defines.html | 1 + code/__DEFINES/turfs.html | 4 + code/__DEFINES/unit_tests.html | 19 + code/__DEFINES/uplink.html | 3 + code/__DEFINES/vehicles.html | 1 + code/__DEFINES/verb_manager.html | 23 + code/__DEFINES/visual_helpers.html | 3 + code/__DEFINES/vv.html | 1 + code/__DEFINES/wiremod.html | 3 + code/__DEFINES/wires.html | 1 + code/__DEFINES/wounds.html | 4 + code/__DEFINES/xenobiology.html | 1 + code/__DEFINES/zoom.html | 1 + code/__DEFINES/~skyrat_defines/DNA.html | 1 + .../~skyrat_defines/_HELPERS/lighting.html | 1 + .../_HELPERS/offset_index.html | 1 + code/__DEFINES/~skyrat_defines/airlock.html | 1 + .../~skyrat_defines/antagonists.html | 1 + .../~skyrat_defines/apc_defines.html | 1 + code/__DEFINES/~skyrat_defines/armaments.html | 1 + .../__DEFINES/~skyrat_defines/automapper.html | 1 + code/__DEFINES/~skyrat_defines/cells.html | 1 + .../colony_fabricator_misc.html | 1 + code/__DEFINES/~skyrat_defines/combat.html | 1 + code/__DEFINES/~skyrat_defines/events.html | 7 + .../~skyrat_defines/flavor_defines.html | 1 + code/__DEFINES/~skyrat_defines/food.html | 1 + code/__DEFINES/~skyrat_defines/id_cards.html | 1 + .../integrated_electronics.html | 1 + code/__DEFINES/~skyrat_defines/language.html | 1 + .../~skyrat_defines/lewd_defines.html | 1 + code/__DEFINES/~skyrat_defines/limbs.html | 1 + code/__DEFINES/~skyrat_defines/liquids.html | 1 + code/__DEFINES/~skyrat_defines/loadout.html | 1 + code/__DEFINES/~skyrat_defines/maths.html | 3 + .../~skyrat_defines/medical_defines.html | 1 + code/__DEFINES/~skyrat_defines/mobs.html | 1 + code/__DEFINES/~skyrat_defines/obj_flags.html | 1 + .../opposing_force_defines.html | 1 + code/__DEFINES/~skyrat_defines/pollution.html | 1 + .../~skyrat_defines/preferences.html | 1 + .../~skyrat_defines/projectiles.html | 1 + code/__DEFINES/~skyrat_defines/quirks.html | 1 + code/__DEFINES/~skyrat_defines/reagents.html | 1 + .../~skyrat_defines/robot_defines.html | 1 + code/__DEFINES/~skyrat_defines/signals.html | 1 + .../signals/signals_human.html | 1 + code/__DEFINES/~skyrat_defines/sound.html | 1 + .../species_clothing_paths.html | 1 + .../__DEFINES/~skyrat_defines/strippable.html | 1 + .../~skyrat_defines/synth_defines.html | 1 + code/__DEFINES/~skyrat_defines/text.html | 1 + code/__DEFINES/~skyrat_defines/traits.html | 1 + .../~skyrat_defines/traits/declarations.html | 1 + code/__DEFINES/~skyrat_defines/turfs.html | 1 + code/__DEFINES/~skyrat_defines/wounds.html | 1 + code/__DEFINES/~~bubber_defines/combat.html | 1 + .../__DEFINES/~~bubber_defines/experisci.html | 1 + code/__DEFINES/~~bubber_defines/jobs.html | 8 + code/__DEFINES/~~bubber_defines/signals.html | 1 + .../~~bubber_defines/storyteller_defines.html | 1 + .../~~bubber_defines/traits/declarations.html | 3 + code/__DEFINES/~~~splurt_defines/DNA.html | 1 + .../~~~splurt_defines/inventory.html | 1 + .../species_clothing_paths.html | 1 + .../~~~splurt_defines/underwear.html | 1 + code/__HELPERS/_dreamluau.html | 128 + code/__HELPERS/_lists.html | 71 + code/__HELPERS/_planes.html | 25 + code/__HELPERS/admin.html | 1 + code/__HELPERS/ai.html | 1 + code/__HELPERS/announcements.html | 1 + code/__HELPERS/areas.html | 7 + code/__HELPERS/atmospherics.html | 3 + code/__HELPERS/atoms.html | 10 + code/__HELPERS/auxtools.html | 1 + code/__HELPERS/bitflag_lists.html | 9 + code/__HELPERS/cameras.html | 1 + code/__HELPERS/chat.html | 1 + code/__HELPERS/chat_filter.html | 8 + code/__HELPERS/clients.html | 2 + code/__HELPERS/cmp.html | 2 + code/__HELPERS/colors.html | 8 + code/__HELPERS/construction.html | 13 + code/__HELPERS/datums.html | 1 + code/__HELPERS/dna.html | 1 + code/__HELPERS/duplicating.html | 1 + code/__HELPERS/dynamic_human_icon_gen.html | 1 + code/__HELPERS/events.html | 1 + code/__HELPERS/files.html | 4 + code/__HELPERS/forensics.html | 1 + code/__HELPERS/game.html | 3 + code/__HELPERS/generators.html | 2 + code/__HELPERS/global_lists.html | 1 + code/__HELPERS/guid.html | 3 + code/__HELPERS/hallucinations.html | 10 + code/__HELPERS/honkerblast.html | 1 + code/__HELPERS/icon_smoothing.html | 5 + code/__HELPERS/icons.html | 26 + code/__HELPERS/jatum.html | 1 + code/__HELPERS/lazy_templates.html | 1 + code/__HELPERS/levels.html | 1 + code/__HELPERS/lighting.html | 4 + code/__HELPERS/logging/_logging.html | 2 + code/__HELPERS/logging/admin.html | 2 + code/__HELPERS/logging/antagonists.html | 1 + code/__HELPERS/logging/atmos.html | 1 + code/__HELPERS/logging/attack.html | 1 + code/__HELPERS/logging/debug.html | 2 + code/__HELPERS/logging/dynamic.html | 1 + code/__HELPERS/logging/game.html | 1 + code/__HELPERS/logging/manifest.html | 1 + code/__HELPERS/logging/mecha.html | 1 + code/__HELPERS/logging/paper.html | 1 + code/__HELPERS/logging/pda.html | 1 + code/__HELPERS/logging/research.html | 1 + code/__HELPERS/logging/shuttle.html | 1 + code/__HELPERS/logging/talk.html | 1 + code/__HELPERS/logging/tool.html | 1 + code/__HELPERS/logging/transport.html | 1 + code/__HELPERS/logging/ui.html | 1 + code/__HELPERS/logging/virus.html | 1 + code/__HELPERS/maths.html | 9 + code/__HELPERS/matrices.html | 2 + code/__HELPERS/memory_helpers.html | 34 + code/__HELPERS/mobs.html | 4 + code/__HELPERS/mouse_control.html | 1 + code/__HELPERS/movement.html | 1 + code/__HELPERS/nameof.html | 5 + code/__HELPERS/names.html | 2 + code/__HELPERS/paths/jps.html | 9 + code/__HELPERS/paths/path.html | 8 + code/__HELPERS/paths/sssp.html | 2 + code/__HELPERS/priority_announce.html | 4 + code/__HELPERS/qdel.html | 1 + code/__HELPERS/radiation.html | 19 + code/__HELPERS/radio.html | 1 + code/__HELPERS/randoms.html | 2 + code/__HELPERS/reagents.html | 1 + code/__HELPERS/ref.html | 3 + code/__HELPERS/roundend.html | 1 + code/__HELPERS/sanitize_values.html | 1 + code/__HELPERS/screen_objs.html | 7 + code/__HELPERS/see_through_maps.html | 1 + code/__HELPERS/sorts/helpers.html | 1 + code/__HELPERS/spatial_info.html | 10 + code/__HELPERS/spawns.html | 1 + code/__HELPERS/stack_trace.html | 2 + code/__HELPERS/stoplag.html | 1 + code/__HELPERS/string_lists.html | 1 + code/__HELPERS/text.html | 3 + code/__HELPERS/time.html | 4 + code/__HELPERS/traits.html | 1 + code/__HELPERS/turfs.html | 18 + code/__HELPERS/type2type.html | 2 + code/__HELPERS/varset_callback.html | 3 + code/__HELPERS/verbs.html | 1 + code/__HELPERS/view.html | 7 + code/__HELPERS/visual_effects.html | 9 + code/__HELPERS/weakref.html | 1 + code/__HELPERS/~skyrat_helpers/logging.html | 1 + code/__HELPERS/~skyrat_helpers/unsorted.html | 1 + code/__byond_version_compat.html | 1 + code/_compile_options.html | 19 + code/_globalvars/bitfields.html | 1 + code/_globalvars/lighting.html | 1 + code/_globalvars/lists/canisters.html | 1 + code/_globalvars/lists/keybindings.html | 1 + code/_globalvars/lists/reagents.html | 6 + code/_globalvars/logging.html | 2 + code/_globalvars/phobias.html | 3 + code/_globalvars/religion.html | 1 + code/_onclick/drag_drop.html | 5 + code/_onclick/hud/action_button.html | 1 + code/_onclick/hud/alert.html | 1 + code/_onclick/hud/map_popups.html | 3 + code/_onclick/hud/parallax/random_layer.html | 1 + code/_onclick/hud/radial.html | 1 + .../hud/rendering/_render_readme.html | 41 + .../rendering/plane_master_controller.html | 4 + .../hud/rendering/plane_master_group.html | 8 + .../plane_masters/plane_master_subtypes.html | 5 + code/_onclick/hud/rendering/render_plate.html | 10 + code/_onclick/hud/screen_object_holder.html | 2 + code/_onclick/hud/screen_objects.html | 1 + .../configuration/config_entry.html | 1 + .../configuration/entries/dbconfig.html | 2 + .../configuration/entries/game_options.html | 3 + .../configuration/entries/general.html | 5 + code/controllers/failsafe.html | 1 + code/controllers/master.html | 1 + code/controllers/subsystem.html | 1 + code/controllers/subsystem/addiction.html | 1 + .../controllers/subsystem/ai_controllers.html | 1 + code/controllers/subsystem/ambience.html | 1 + code/controllers/subsystem/area_contents.html | 5 + code/controllers/subsystem/asset_loading.html | 3 + code/controllers/subsystem/ban_cache.html | 2 + code/controllers/subsystem/chat.html | 2 + code/controllers/subsystem/discord.html | 1 + code/controllers/subsystem/dynamic.html | 182 ++ .../subsystem/dynamic/dynamic_logging.html | 2 + .../dynamic/dynamic_rulesets_latejoin.html | 1 + .../dynamic/dynamic_rulesets_midround.html | 1 + .../dynamic/dynamic_rulesets_roundstart.html | 1 + code/controllers/subsystem/early_assets.html | 5 + code/controllers/subsystem/economy.html | 1 + code/controllers/subsystem/events.html | 1 + code/controllers/subsystem/explosions.html | 4 + code/controllers/subsystem/fluids.html | 1 + code/controllers/subsystem/garbage.html | 14 + code/controllers/subsystem/id_access.html | 1 + code/controllers/subsystem/init_profiler.html | 2 + code/controllers/subsystem/ipintel.html | 1 + code/controllers/subsystem/lag_switch.html | 1 + code/controllers/subsystem/library.html | 1 + code/controllers/subsystem/materials.html | 3 + .../subsystem/modular_computers.html | 1 + code/controllers/subsystem/mouse_entered.html | 1 + .../subsystem/movement/ai_movement.html | 1 + .../subsystem/movement/cliff_falling.html | 1 + .../subsystem/movement/hyperspace_drift.html | 1 + .../subsystem/movement/movement_types.html | 8 + .../movement/newtonian_movement.html | 1 + code/controllers/subsystem/overlays.html | 4 + code/controllers/subsystem/parallax.html | 1 + code/controllers/subsystem/pathfinder.html | 1 + .../persistence/counter_delamination.html | 1 + .../persistence/counter_tram_hits.html | 1 + .../subsystem/persistence/trophies.html | 1 + code/controllers/subsystem/ping.html | 2 + .../subsystem/points_of_interest.html | 1 + .../subsystem/processing/acid.html | 1 + .../subsystem/processing/ai_behaviors.html | 1 + .../subsystem/processing/aura.html | 1 + .../subsystem/processing/clock_component.html | 1 + .../subsystem/processing/digital_clock.html | 1 + .../subsystem/processing/fire_burning.html | 1 + .../subsystem/processing/fishing.html | 1 + .../subsystem/processing/singulo.html | 1 + .../subsystem/radioactive_nebula.html | 1 + code/controllers/subsystem/restaurant.html | 1 + code/controllers/subsystem/shuttle.html | 3 + code/controllers/subsystem/skills.html | 1 + .../subsystem/spatial_gridmap.html | 5 + .../subsystem/speech_controller.html | 1 + .../subsystem/sprite_accessories.html | 2 + code/controllers/subsystem/tgui.html | 2 + code/controllers/subsystem/timer.html | 4 + code/controllers/subsystem/tts.html | 1 + code/controllers/subsystem/tutorials.html | 1 + .../subsystem/unplanned_controllers.html | 1 + code/controllers/subsystem/verb_manager.html | 3 + code/controllers/subsystem/vote.html | 1 + code/controllers/subsystem/wardrobe.html | 7 + code/controllers/subsystem/weather.html | 1 + .../subsystem/wiremod_composite.html | 3 + .../achievements/_achievement_data.html | 1 + code/datums/achievements/_awards.html | 1 + .../achievements/mafia_achievements.html | 1 + code/datums/achievements/misc_scores.html | 1 + code/datums/actions/action.html | 1 + code/datums/actions/cooldown_action.html | 1 + code/datums/actions/items/stealth_box.html | 1 + code/datums/actions/mobs/assume_form.html | 2 + code/datums/actions/mobs/charge_apc.html | 1 + .../actions/mobs/create_legion_turrets.html | 1 + code/datums/actions/mobs/defensive_mode.html | 1 + code/datums/actions/mobs/fire_breath.html | 1 + code/datums/actions/mobs/sign_language.html | 6 + code/datums/ai.html | 13 + code/datums/ai/_ai_behavior.html | 1 + code/datums/ai/_ai_controller.html | 9 + code/datums/ai/_ai_planning_subtree.html | 1 + code/datums/ai/_item_behaviors.html | 1 + code/datums/ai/babies/babies_behaviors.html | 1 + code/datums/ai/babies/babies_subtrees.html | 1 + .../basic_ai_behaviors/befriend_target.html | 1 + .../basic_ai_behaviors/nearest_targeting.html | 1 + .../basic_ai_behaviors/pick_up_item.html | 3 + .../run_away_from_target.html | 1 + .../basic_ai_behaviors/step_towards_turf.html | 3 + .../basic_ai_behaviors/stop_and_stare.html | 1 + .../targeted_mob_ability.html | 2 + .../basic_ai_behaviors/targeting.html | 1 + .../basic_ai_behaviors/tipped_reaction.html | 1 + .../basic_ai_behaviors/travel_towards.html | 3 + .../basic_ai_behaviors/ventcrawling.html | 6 + .../basic_ai_behaviors/wounded_targeting.html | 1 + .../attack_adjacent_target.html | 1 + .../attack_obstacle_in_path.html | 1 + .../basic_subtrees/call_reinforcements.html | 1 + .../basic_subtrees/capricious_retaliate.html | 1 + .../basic_mobs/basic_subtrees/find_food.html | 1 + .../find_targets_prioritize_traits.html | 1 + .../basic_subtrees/flee_target.html | 2 + .../basic_subtrees/go_for_swim.html | 1 + .../basic_subtrees/maintain_distance.html | 1 + .../basic_subtrees/move_to_cardinal.html | 1 + .../opportunistic_ventcrawler.html | 1 + .../prepare_travel_to_destination.html | 2 + .../basic_subtrees/ranged_skirmish.html | 1 + .../basic_mobs/basic_subtrees/run_emote.html | 1 + .../basic_subtrees/shapechange_ambush.html | 1 + .../simple_find_nearest_target_to_flee.html | 1 + .../simple_find_wounded_target.html | 1 + .../basic_subtrees/sleep_with_no_target.html | 1 + .../basic_subtrees/speech_subtree.html | 1 + .../basic_subtrees/stare_at_thing.html | 1 + .../basic_subtrees/target_retaliate.html | 4 + .../basic_subtrees/targeted_mob_ability.html | 1 + .../teleport_away_from_target.html | 1 + .../basic_subtrees/tipped_subtree.html | 1 + .../basic_subtrees/travel_to_point.html | 1 + .../basic_subtrees/use_mob_ability.html | 2 + .../ai/basic_mobs/generic_controllers.html | 1 + .../ai/basic_mobs/pet_commands/fetch.html | 3 + .../pet_commands/pet_command_planning.html | 4 + .../pet_commands/pet_follow_friend.html | 1 + .../pet_use_targeted_ability.html | 1 + .../ai/basic_mobs/pet_commands/play_dead.html | 1 + .../_targeting_strategy.html | 2 + .../basic_targeting_strategy.html | 2 + .../dont_target_friends.html | 1 + .../targeting_strategies/with_object.html | 1 + code/datums/ai/cursed/cursed_controller.html | 3 + code/datums/ai/dog/dog_behaviors.html | 3 + code/datums/ai/dog/dog_controller.html | 1 + code/datums/ai/dog/dog_subtrees.html | 1 + code/datums/ai/generic/find_and_set.html | 1 + code/datums/ai/generic/generic_behaviors.html | 1 + .../hunting_behavior/hunting_behaviors.html | 2 + .../ai/hunting_behavior/hunting_corpses.html | 1 + .../ai/idle_behaviors/idle_haunted.html | 1 + .../ai/idle_behaviors/idle_random_walk.html | 1 + code/datums/ai/learn_ai.html | 114 + code/datums/ai/monkey/monkey_controller.html | 1 + code/datums/ai/movement/_ai_movement.html | 1 + .../movement/ai_movement_basic_avoidance.html | 1 + .../movement/ai_movement_complete_stop.html | 1 + code/datums/ai/movement/ai_movement_dumb.html | 1 + code/datums/ai/movement/ai_movement_jps.html | 1 + code/datums/ai/objects/mod.html | 1 + .../vending_machine_controller.html | 1 + .../ai/oldhostile/hostile_tameable.html | 1 + code/datums/ai_laws/ai_laws.html | 2 + code/datums/alarm.html | 1 + code/datums/announcers/_announcer.html | 1 + code/datums/armor/_armor.html | 2 + code/datums/beam.html | 1 + .../bodypart_overlays/bodypart_overlay.html | 2 + .../emote_bodypart_overlay.html | 1 + .../markings_bodypart_overlay.html | 1 + .../mutant_bodypart_overlay.html | 1 + .../simple_bodypart_overlay.html | 2 + .../texture_bodypart_overlay.html | 1 + .../brain_damage/split_personality.html | 1 + code/datums/browser.html | 1 + code/datums/callback.html | 1 + code/datums/candidate_poll.html | 1 + code/datums/chat_payload.html | 1 + code/datums/chatmessage.html | 1 + code/datums/cinematics/_cinematic.html | 1 + code/datums/cinematics/malf_doomsday.html | 1 + code/datums/cinematics/narsie_summon.html | 1 + code/datums/cinematics/nuke_cinematics.html | 1 + code/datums/cogbar.html | 1 + code/datums/components.html | 3 + .../datums/components/COMPONENT_TEMPLATE.html | 50 + code/datums/components/_component.html | 1 + code/datums/components/acid.html | 5 + .../components/action_item_overlay.html | 2 + .../components/adjust_fishing_difficulty.html | 1 + code/datums/components/admin_popup.html | 3 + code/datums/components/aggro_emote.html | 1 + .../components/ai_has_target_timer.html | 1 + .../components/ai_listen_to_weather.html | 1 + .../components/ai_retaliate_advanced.html | 3 + code/datums/components/amputating_limbs.html | 1 + code/datums/components/anti_magic.html | 1 + .../components/appearance_on_aggro.html | 1 + code/datums/components/aquarium_content.html | 1 + .../datums/components/area_based_godmode.html | 2 + .../datums/components/area_sound_manager.html | 1 + code/datums/components/areabound.html | 1 + .../components/atmos_reaction_recorder.html | 3 + code/datums/components/aura_healing.html | 4 + code/datums/components/bakeable.html | 1 + code/datums/components/banned_from_space.html | 1 + code/datums/components/basic_inhands.html | 1 + .../basic_mob_attack_telegraph.html | 1 + .../basic_ranged_ready_overlay.html | 2 + .../datums/components/bayonet_attachable.html | 2 + code/datums/components/blob_minion.html | 1 + code/datums/components/blood_walk.html | 1 + code/datums/components/bloodysoles.html | 1 + code/datums/components/boomerang.html | 2 + code/datums/components/boss_music.html | 1 + .../components/bullet_intercepting.html | 1 + code/datums/components/bumpattack.html | 5 + code/datums/components/burning.html | 3 + code/datums/components/butchering.html | 1 + code/datums/components/callouts.html | 1 + code/datums/components/caltrop.html | 1 + .../components/can_flash_from_behind.html | 1 + code/datums/components/chasm.html | 2 + code/datums/components/chuunibyou.html | 1 + code/datums/components/cleaner.html | 4 + code/datums/components/clickbox.html | 5 + .../datums/components/clothing_fov_visor.html | 1 + code/datums/components/codeword_hearing.html | 1 + .../components/combustible_flooder.html | 1 + .../datums/components/connect_containers.html | 1 + .../datums/components/connect_loc_behalf.html | 4 + .../datums/components/connect_mob_behalf.html | 3 + code/datums/components/connect_range.html | 3 + .../container_item/container_item.html | 1 + .../container_item/tank_holder.html | 1 + code/datums/components/conveyor_movement.html | 3 + code/datums/components/cracked.html | 1 + .../datums/components/crafting/equipment.html | 1 + .../components/crafting/guncrafting.html | 1 + code/datums/components/crate_carrier.html | 1 + code/datums/components/curse_of_hunger.html | 1 + .../datums/components/curse_of_polymorph.html | 1 + .../customizable_reagent_holder.html | 2 + code/datums/components/damage_aura.html | 2 + code/datums/components/damage_chain.html | 1 + code/datums/components/dart_insert.html | 5 + code/datums/components/deadchat_control.html | 1 + code/datums/components/death_linked.html | 1 + code/datums/components/dejavu.html | 1 + code/datums/components/deployable.html | 1 + .../components/direct_explosive_trap.html | 2 + code/datums/components/egg_layer.html | 3 + .../datums/components/electrified_buckle.html | 2 + code/datums/components/engraved.html | 3 + code/datums/components/evolutionary_leap.html | 1 + code/datums/components/explodable.html | 1 + code/datums/components/explode_on_attack.html | 1 + code/datums/components/face_decal.html | 1 + code/datums/components/faction_granter.html | 1 + code/datums/components/fantasy/suffixes.html | 1 + code/datums/components/fertile_egg.html | 1 + code/datums/components/fish_growth.html | 1 + code/datums/components/focused_attacker.html | 2 + .../datums/components/food/decomposition.html | 1 + code/datums/components/food/edible.html | 9 + .../components/food/germ_sensitive.html | 1 + code/datums/components/food/ghost_edible.html | 2 + code/datums/components/food/golem_food.html | 1 + .../components/food/ice_cream_holder.html | 1 + code/datums/components/food_storage.html | 3 + code/datums/components/force_move.html | 3 + code/datums/components/fov_handler.html | 1 + code/datums/components/gas_leaker.html | 1 + code/datums/components/geiger_sound.html | 1 + .../components/ghost_direct_control.html | 1 + code/datums/components/glass_passer.html | 1 + code/datums/components/gps.html | 1 + code/datums/components/ground_sinking.html | 2 + .../growth_and_differentiation.html | 1 + code/datums/components/gunpoint.html | 1 + code/datums/components/hazard_area.html | 4 + code/datums/components/healing_touch.html | 2 + .../components/health_scaling_effects.html | 1 + code/datums/components/heirloom.html | 1 + .../components/hide_highest_offset.html | 2 + code/datums/components/holderloving.html | 1 + .../components/interaction_booby_trap.html | 1 + code/datums/components/irradiated.html | 2 + code/datums/components/itembound.html | 1 + code/datums/components/itempicky.html | 1 + code/datums/components/jousting.html | 1 + code/datums/components/keep_me_secure.html | 1 + code/datums/components/knockoff.html | 2 + code/datums/components/leash.html | 2 + code/datums/components/life_link.html | 2 + code/datums/components/light_eater.html | 1 + code/datums/components/ling_decoy_brain.html | 1 + code/datums/components/listen_and_repeat.html | 2 + code/datums/components/lock_on_cursor.html | 1 + code/datums/components/lockable_storage.html | 4 + code/datums/components/magnet.html | 1 + code/datums/components/manual_heart.html | 2 + code/datums/components/marionette.html | 1 + code/datums/components/martial_art_giver.html | 1 + .../material/material_container.html | 7 + code/datums/components/mind_linker.html | 4 + code/datums/components/mob_chain.html | 2 + code/datums/components/mob_harvest.html | 1 + code/datums/components/multiple_lives.html | 2 + code/datums/components/mutant_hands.html | 2 + .../components/nuclear_bomb_operator.html | 2 + code/datums/components/object_possession.html | 1 + code/datums/components/omen.html | 3 + code/datums/components/onwear_mood.html | 1 + code/datums/components/overlay_lighting.html | 1 + code/datums/components/palette.html | 4 + code/datums/components/parry.html | 1 + code/datums/components/payment.html | 1 + .../datums/components/pet_commands/fetch.html | 2 + .../pet_commands/obeys_commands.html | 2 + .../components/pet_commands/pet_command.html | 2 + .../pet_commands/pet_commands_basic.html | 1 + code/datums/components/phylactery.html | 1 + code/datums/components/pinata.html | 1 + .../datums/components/pinnable_accessory.html | 1 + code/datums/components/plumbing/filter.html | 1 + .../components/plumbing/reaction_chamber.html | 1 + .../plumbing/simple_components.html | 1 + .../datums/components/plundering_attacks.html | 2 + code/datums/components/profound_fisher.html | 1 + code/datums/components/punchcooldown.html | 1 + code/datums/components/puzzgrid.html | 5 + .../components/radiation_countdown.html | 3 + .../components/radioactive_emitter.html | 3 + .../components/radioactive_exposure.html | 1 + code/datums/components/ranged_attacks.html | 1 + .../components/ranged_mob_full_auto.html | 1 + code/datums/components/reagent_refiller.html | 1 + .../datums/components/recharging_attacks.html | 1 + .../redirect_attack_hand_from_turf.html | 1 + code/datums/components/reflection.html | 4 + .../components/regenerative_shield.html | 1 + code/datums/components/regenerator.html | 2 + code/datums/components/religious_tool.html | 1 + code/datums/components/rename.html | 1 + code/datums/components/revenge_ability.html | 3 + code/datums/components/riding/riding.html | 1 + code/datums/components/riding/riding_mob.html | 1 + .../components/riding/riding_vehicle.html | 1 + code/datums/components/rot.html | 1 + code/datums/components/scope.html | 1 + .../components/seclight_attachable.html | 2 + .../datums/components/sect_nullrod_bonus.html | 1 + code/datums/components/security_vision.html | 1 + code/datums/components/seethrough.html | 1 + code/datums/components/seethrough_mob.html | 1 + code/datums/components/shell.html | 1 + code/datums/components/shielded.html | 1 + code/datums/components/shovel_hands.html | 1 + code/datums/components/shuttle_cling.html | 4 + code/datums/components/shy.html | 1 + code/datums/components/shy_in_room.html | 1 + code/datums/components/sign_language.html | 2 + code/datums/components/simple_access.html | 1 + code/datums/components/simple_bodycam.html | 1 + code/datums/components/singularity.html | 2 + code/datums/components/sisyphus_awarder.html | 2 + code/datums/components/slippery.html | 2 + code/datums/components/smooth_tunes.html | 2 + code/datums/components/soul_stealer.html | 1 + code/datums/components/sound_player.html | 1 + code/datums/components/space_camo.html | 1 + code/datums/components/space_dive.html | 1 + code/datums/components/space_kidnap.html | 1 + code/datums/components/speechmod.html | 2 + code/datums/components/spin2win.html | 1 + code/datums/components/spinny.html | 1 + code/datums/components/spirit_holding.html | 1 + code/datums/components/splattercasting.html | 7 + code/datums/components/squashable.html | 1 + code/datums/components/stationloving.html | 1 + code/datums/components/sticker.html | 1 + code/datums/components/storm_hating.html | 1 + code/datums/components/subtype_picker.html | 2 + code/datums/components/surgery_initiator.html | 1 + code/datums/components/swabbing.html | 1 + code/datums/components/tackle.html | 1 + code/datums/components/tactical.html | 1 + .../components/takes_reagent_appearance.html | 1 + code/datums/components/tameable.html | 1 + code/datums/components/tattoo.html | 1 + code/datums/components/technointrovert.html | 1 + code/datums/components/technoshy.html | 1 + code/datums/components/telegraph_ability.html | 1 + code/datums/components/temporary_body.html | 1 + .../components/temporary_description.html | 2 + code/datums/components/tether.html | 1 + code/datums/components/tippable.html | 1 + .../components/toggle_attached_clothing.html | 2 + code/datums/components/torn_wall.html | 4 + code/datums/components/trader/trader.html | 2 + code/datums/components/trapdoor.html | 1 + code/datums/components/twohanded.html | 1 + code/datums/components/udder.html | 2 + code/datums/components/unobserved_actor.html | 1 + code/datums/components/unusual_effect.html | 2 + code/datums/components/uplink.html | 1 + code/datums/components/usb_port.html | 1 + code/datums/components/vacuum.html | 2 + code/datums/components/vision_hurting.html | 1 + code/datums/components/weatherannouncer.html | 1 + code/datums/dash_weapon.html | 1 + code/datums/datum.html | 1 + code/datums/diseases/_disease.html | 1 + .../advance/floor_diseases/carpellosis.html | 1 + .../advance/floor_diseases/gastritium.html | 1 + .../advance/floor_diseases/nebula_nausea.html | 1 + .../diseases/advance/symptoms/beard.html | 1 + .../diseases/advance/symptoms/chills.html | 1 + .../diseases/advance/symptoms/choking.html | 1 + .../diseases/advance/symptoms/confusion.html | 1 + .../diseases/advance/symptoms/cough.html | 1 + .../diseases/advance/symptoms/deafness.html | 1 + .../advance/symptoms/disfiguration.html | 1 + .../diseases/advance/symptoms/dizzy.html | 1 + .../diseases/advance/symptoms/fever.html | 1 + .../diseases/advance/symptoms/fire.html | 1 + .../diseases/advance/symptoms/heal.html | 1 + code/datums/dna.html | 1 + code/datums/drift_handler.html | 3 + code/datums/ductnet.html | 1 + code/datums/eigenstate.html | 1 + code/datums/elements/ELEMENT_TEMPLATE.html | 20 + code/datums/elements/_element.html | 1 + code/datums/elements/ai_control_examine.html | 1 + .../elements/ai_flee_while_injured.html | 1 + code/datums/elements/ai_held_item.html | 1 + code/datums/elements/ai_retaliate.html | 2 + code/datums/elements/ai_swap_combat_mode.html | 1 + .../elements/ai_target_damagesource.html | 2 + code/datums/elements/animal_variety.html | 2 + code/datums/elements/atmos_requirements.html | 1 + code/datums/elements/attack_equip.html | 1 + .../elements/attack_zone_randomiser.html | 1 + code/datums/elements/backblast.html | 1 + code/datums/elements/bane.html | 4 + code/datums/elements/basic_eating.html | 1 + .../datums/elements/basic_health_examine.html | 1 + code/datums/elements/beauty.html | 3 + code/datums/elements/bed_tucking.html | 1 + code/datums/elements/befriend_petting.html | 1 + .../elements/block_turf_fingerprints.html | 1 + code/datums/elements/blocks_explosives.html | 2 + code/datums/elements/body_temp_sensitive.html | 1 + code/datums/elements/bombable_turf.html | 3 + code/datums/elements/bonus_damage.html | 1 + code/datums/elements/bugkiller_reagent.html | 4 + code/datums/elements/bump_click.html | 1 + code/datums/elements/can_shatter.html | 2 + code/datums/elements/caseless.html | 3 + code/datums/elements/chemical_transfer.html | 1 + code/datums/elements/chewable.html | 2 + code/datums/elements/cliff_walker.html | 1 + code/datums/elements/connect_loc.html | 2 + code/datums/elements/consumable_mob.html | 1 + code/datums/elements/content_barfer.html | 1 + code/datums/elements/corrupted_organ.html | 2 + code/datums/elements/crackable.html | 1 + code/datums/elements/crusher_loot.html | 1 + code/datums/elements/cuffsnapping.html | 1 + code/datums/elements/cult_eyes.html | 1 + code/datums/elements/cult_halo.html | 1 + code/datums/elements/curse_announcement.html | 3 + code/datums/elements/cursed.html | 1 + code/datums/elements/damage_threshold.html | 3 + .../elements/dangerous_surgical_removal.html | 1 + code/datums/elements/death_drops.html | 1 + code/datums/elements/death_explosion.html | 1 + code/datums/elements/death_gases.html | 1 + code/datums/elements/delete_on_drop.html | 1 + code/datums/elements/deliver_first.html | 4 + code/datums/elements/dextrous.html | 2 + code/datums/elements/diggable.html | 1 + code/datums/elements/disarm_attack.html | 1 + code/datums/elements/door_pryer.html | 2 + code/datums/elements/drag_pickup.html | 1 + code/datums/elements/elevation.html | 2 + code/datums/elements/envenomable_casing.html | 1 + code/datums/elements/eyestab.html | 1 + code/datums/elements/falling_hazard.html | 1 + code/datums/elements/firestacker.html | 1 + code/datums/elements/fish_safe_storage.html | 1 + code/datums/elements/floorloving.html | 1 + code/datums/elements/food/foodlike_drink.html | 1 + code/datums/elements/food/fried_item.html | 1 + code/datums/elements/food/grilled_item.html | 1 + code/datums/elements/food/microwavable.html | 1 + code/datums/elements/food/venue_price.html | 1 + code/datums/elements/footstep.html | 1 + code/datums/elements/footstep_override.html | 1 + code/datums/elements/frozen.html | 1 + code/datums/elements/gags_recolorable.html | 1 + code/datums/elements/give_turf_traits.html | 1 + code/datums/elements/glass_pacifist.html | 1 + code/datums/elements/gravedigger.html | 1 + code/datums/elements/hat_wearer.html | 1 + code/datums/elements/haunted.html | 1 + code/datums/elements/high_fiver.html | 1 + code/datums/elements/honkspam.html | 1 + code/datums/elements/hostile_machine.html | 1 + code/datums/elements/human_biter.html | 1 + code/datums/elements/immerse.html | 1 + code/datums/elements/item_fov.html | 1 + code/datums/elements/item_scaling.html | 1 + code/datums/elements/kneecapping.html | 1 + code/datums/elements/kneejerk.html | 1 + code/datums/elements/knockback.html | 2 + code/datums/elements/lazy_fishing_spot.html | 2 + code/datums/elements/leeching_walk.html | 1 + code/datums/elements/lifesteal.html | 2 + code/datums/elements/light_blocking.html | 1 + code/datums/elements/light_eaten.html | 1 + code/datums/elements/light_eater.html | 1 + .../elements/living_limb_initialiser.html | 1 + code/datums/elements/loomable.html | 1 + code/datums/elements/lube_walking.html | 2 + code/datums/elements/mirage_border.html | 1 + code/datums/elements/mob_access.html | 1 + code/datums/elements/mob_grabber.html | 1 + code/datums/elements/mob_killed_tally.html | 1 + code/datums/elements/move_force_on_death.html | 1 + .../elements/movement_turf_changer.html | 1 + code/datums/elements/movetype_handler.html | 4 + code/datums/elements/nerfed_pulling.html | 1 + code/datums/elements/no_crit_hitting.html | 1 + code/datums/elements/noticable_organ.html | 1 + code/datums/elements/obj_regen.html | 1 + code/datums/elements/on_hit_effect.html | 1 + code/datums/elements/only_pull_living.html | 1 + .../openspace_item_click_handler.html | 2 + code/datums/elements/organ_set_bonus.html | 1 + .../elements/permanent_fire_overlay.html | 1 + code/datums/elements/pet_bonus.html | 2 + code/datums/elements/plant_backfire.html | 4 + code/datums/elements/point_of_interest.html | 1 + code/datums/elements/poster_tearer.html | 1 + .../elements/prevent_attacking_of_types.html | 2 + code/datums/elements/proficient_miner.html | 1 + code/datums/elements/projectile_drop.html | 3 + .../elements/quality_food_ingredient.html | 1 + .../radiation_protected_clothing.html | 3 + code/datums/elements/radioactive.html | 1 + code/datums/elements/ranged_armour.html | 1 + code/datums/elements/relay_attackers.html | 3 + code/datums/elements/ridable.html | 2 + code/datums/elements/rust.html | 2 + code/datums/elements/screentips.html | 91 + .../contextual_screentip_bare_hands.html | 3 + .../contextual_screentip_item_typechecks.html | 3 + .../contextual_screentip_mob_typechecks.html | 3 + .../contextual_screentip_sharpness.html | 3 + .../contextual_screentip_tools.html | 3 + code/datums/elements/series.html | 1 + code/datums/elements/sideway_movement.html | 1 + code/datums/elements/simple_flying.html | 2 + code/datums/elements/skill_reward.html | 2 + code/datums/elements/slapcrafting.html | 1 + code/datums/elements/soft_landing.html | 1 + code/datums/elements/squish.html | 1 + code/datums/elements/squish_sound.html | 1 + code/datums/elements/strippable.html | 1 + code/datums/elements/structure_repair.html | 1 + code/datums/elements/swabbable.html | 1 + code/datums/elements/temporary_atom.html | 1 + code/datums/elements/tenacious.html | 1 + code/datums/elements/tiny_mob_hunter.html | 1 + code/datums/elements/tool_flash.html | 1 + code/datums/elements/tool_renaming.html | 1 + code/datums/elements/toy_talk.html | 1 + code/datums/elements/turf_transparency.html | 3 + code/datums/elements/undertile.html | 1 + code/datums/elements/unfriend_attacker.html | 2 + code/datums/elements/update_icon_blocker.html | 1 + code/datums/elements/uplink_reimburse.html | 2 + code/datums/elements/venomous.html | 1 + .../datums/elements/volatile_gas_storage.html | 1 + code/datums/elements/wall_engraver.html | 1 + code/datums/elements/wall_smasher.html | 2 + code/datums/elements/wall_tearer.html | 1 + code/datums/elements/wall_walker.html | 1 + code/datums/elements/weapon_description.html | 2 + .../elements/wearable_client_colour.html | 1 + code/datums/elements/weather_listener.html | 1 + code/datums/elements/web_walker.html | 1 + code/datums/elements/wheel.html | 1 + code/datums/elements/window_smash.html | 2 + code/datums/emotes.html | 1 + code/datums/greyscale.html | 135 + code/datums/greyscale/_greyscale_config.html | 1 + code/datums/greyscale/json_reader.html | 2 + code/datums/greyscale/layer.html | 1 + .../helper_datums/stack_end_detector.html | 2 + code/datums/helper_datums/teleport.html | 1 + code/datums/id_trim/_id_trim.html | 1 + code/datums/id_trim/admin.html | 1 + code/datums/id_trim/centcom.html | 1 + code/datums/id_trim/jobs.html | 3 + code/datums/id_trim/outfits.html | 2 + code/datums/id_trim/ruins.html | 1 + code/datums/id_trim/syndicate.html | 1 + code/datums/instability_meltdown.html | 1 + code/datums/job_configs/_job_configs.html | 1 + .../datums/job_configs/default_positions.html | 1 + .../job_configs/playtime_requirements.html | 1 + .../job_configs/required_account_age.html | 1 + .../job_configs/required_character_age.html | 1 + .../job_configs/starting_positions.html | 1 + code/datums/json_database.html | 4 + code/datums/json_savefile.html | 3 + code/datums/lazy_template.html | 2 + .../datums/looping_sounds/_looping_sound.html | 1 + code/datums/looping_sounds/acid.html | 1 + code/datums/looping_sounds/burning.html | 1 + code/datums/map_config.html | 2 + code/datums/mapgen/CaveGenerator.html | 1 + code/datums/mapgen/Cavegens/IcemoonCaves.html | 1 + code/datums/mapgen/JungleGenerator.html | 1 + code/datums/mapgen/biomes/_biome.html | 1 + code/datums/martial/boxing.html | 4 + code/datums/martial/cqc.html | 1 + code/datums/materials/_material.html | 2 + code/datums/materials/alloys.html | 1 + code/datums/materials/basemats.html | 1 + code/datums/materials/meat.html | 1 + code/datums/memory/_memory.html | 1 + code/datums/memory/general_memories.html | 2 + code/datums/memory/key_memories.html | 1 + code/datums/mergers/_merger.html | 1 + code/datums/mocking/client.html | 1 + code/datums/mood.html | 1 + code/datums/mood_events/area_events.html | 1 + .../mood_events/generic_negative_events.html | 1 + .../mood_events/generic_positive_events.html | 1 + code/datums/move_manager.html | 1 + code/datums/movement_detector.html | 1 + code/datums/mutable_appearance.html | 1 + code/datums/mutations/_mutations.html | 1 + code/datums/mutations/chameleon.html | 1 + code/datums/mutations/cold.html | 1 + code/datums/mutations/hulk.html | 1 + code/datums/mutations/reach.html | 1 + code/datums/mutations/sight.html | 1 + code/datums/mutations/void_magnet.html | 1 + code/datums/outfit.html | 2 + code/datums/pod_style.html | 2 + code/datums/position_point_vector.html | 1 + code/datums/proximity_monitor/field.html | 3 + .../proximity_monitor/fields/timestop.html | 1 + .../proximity_monitor/fields/void_storm.html | 2 + code/datums/quirks/_quirk.html | 1 + code/datums/quirks/_quirk_constant_data.html | 1 + .../datums/quirks/negative_quirks/addict.html | 1 + code/datums/records/crime.html | 1 + code/datums/records/data.html | 1 + code/datums/records/manifest.html | 1 + code/datums/records/medical_note.html | 1 + code/datums/records/record.html | 1 + code/datums/skills/fishing.html | 2 + code/datums/sprite_accessories.html | 1 + code/datums/station_integrity.html | 1 + .../datums/station_traits/_station_trait.html | 1 + code/datums/station_traits/job_traits.html | 2 + .../station_traits/negative_traits.html | 1 + .../datums/station_traits/neutral_traits.html | 1 + .../station_traits/positive_traits.html | 1 + .../datums/status_effects/_status_effect.html | 2 + code/datums/status_effects/buffs.html | 2 + .../buffs/bioware/_bioware.html | 1 + .../buffs/bioware/circulation.html | 1 + .../buffs/food/_food_effect.html | 1 + .../status_effects/buffs/food/chilling.html | 1 + .../buffs/food/grant_trait.html | 1 + .../status_effects/buffs/food/haste.html | 1 + .../status_effects/buffs/food/speech.html | 1 + .../status_effects/buffs/stun_absorption.html | 2 + .../status_effects/debuffs/blindness.html | 3 + .../status_effects/debuffs/confusion.html | 1 + .../datums/status_effects/debuffs/cursed.html | 2 + .../datums/status_effects/debuffs/cyborg.html | 1 + .../status_effects/debuffs/debuffs.html | 1 + .../status_effects/debuffs/decloning.html | 1 + .../debuffs/dna_transformation.html | 2 + .../status_effects/debuffs/drugginess.html | 1 + code/datums/status_effects/debuffs/drunk.html | 4 + .../status_effects/debuffs/hallucination.html | 2 + .../datums/status_effects/debuffs/hooked.html | 1 + .../status_effects/debuffs/screen_blur.html | 3 + .../status_effects/debuffs/screwy_hud.html | 1 + .../debuffs/slime/slime_food.html | 1 + .../status_effects/debuffs/slime/slimed.html | 1 + .../status_effects/debuffs/staggered.html | 4 + .../status_effects/debuffs/strandling.html | 1 + .../status_effects/debuffs/terrified.html | 1 + .../status_effects/debuffs/tox_vomit.html | 1 + .../datums/status_effects/grouped_effect.html | 1 + .../datums/status_effects/limited_effect.html | 1 + code/datums/status_effects/neutral.html | 5 + code/datums/status_effects/song_effects.html | 1 + .../status_effects/stacking_effect.html | 1 + code/datums/status_effects/wound_effects.html | 1 + code/datums/storage/storage.html | 4 + code/datums/storage/storage_interface.html | 1 + code/datums/storage/subtypes/cards.html | 1 + code/datums/storage/subtypes/rped.html | 1 + code/datums/verb_callbacks.html | 2 + code/datums/view.html | 1 + code/datums/visual_data.html | 2 + code/datums/voice_of_god_command.html | 2 + code/datums/votes/_vote_datum.html | 1 + code/datums/votes/custom_vote.html | 1 + code/datums/weakrefs.html | 3 + code/datums/weather/weather.html | 1 + .../weather_types/radiation_storm.html | 1 + .../weather/weather_types/snow_storm.html | 1 + code/datums/wounds/_wound_static_data.html | 1 + code/datums/wounds/bones.html | 1 + code/datums/wounds/burns.html | 1 + code/datums/wounds/cranial_fissure.html | 3 + code/datums/wounds/scars/_scars.html | 2 + code/game/area/areas.html | 2 + code/game/area/areas/ai_monitored.html | 3 + code/game/area/areas/mining.html | 1 + code/game/area/areas/ruins/space.html | 1 + code/game/area/areas/shuttles.html | 2 + code/game/atom.html | 1 + code/game/atom/atom_examine.html | 1 + code/game/atoms_movable.html | 3 + code/game/data_huds.html | 1 + code/game/gamemodes/events.html | 1 + code/game/gamemodes/objective.html | 1 + code/game/machinery/PDApainter.html | 1 + code/game/machinery/_machinery.html | 1 + code/game/machinery/big_manipulator.html | 1 + code/game/machinery/buttons.html | 1 + code/game/machinery/camera/camera.html | 2 + code/game/machinery/camera/presets.html | 10 + code/game/machinery/camera/trackable.html | 1 + code/game/machinery/civilian_bounties.html | 1 + .../machinery/computer/arcade/amputation.html | 1 + .../machinery/computer/arcade/battle.html | 1 + .../game/machinery/computer/arcade/orion.html | 1 + .../computer/arcade/orion_event.html | 1 + .../atmos_computers/__identifiers.html | 1 + .../computer/atmos_computers/_air_sensor.html | 5 + .../atmos_computers/_atmos_control.html | 1 + .../machinery/computer/buildandrepair.html | 1 + .../machinery/computer/communications.html | 1 + code/game/machinery/computer/crew.html | 1 + code/game/machinery/computer/dna_console.html | 1 + .../orders/order_computer/mining_order.html | 1 + .../orders/order_items/order_datum.html | 1 + .../machinery/computer/records/records.html | 1 + .../machinery/computer/records/security.html | 1 + code/game/machinery/computer/telescreen.html | 2 + code/game/machinery/deployable.html | 1 + .../machinery/dna_infuser/dna_infuser.html | 1 + .../machinery/dna_infuser/infuser_entry.html | 1 + .../dna_infuser/organ_sets/carp_organs.html | 2 + .../dna_infuser/organ_sets/fly_organs.html | 1 + .../organ_sets/goliath_organs.html | 1 + .../organ_sets/gondola_organs.html | 1 + .../dna_infuser/organ_sets/rat_organs.html | 1 + .../dna_infuser/organ_sets/roach_organs.html | 7 + code/game/machinery/doors/airlock.html | 6 + code/game/machinery/doors/brigdoors.html | 1 + code/game/machinery/doors/firedoor.html | 1 + code/game/machinery/flatpacker.html | 1 + code/game/machinery/incident_display.html | 1 + code/game/machinery/iv_drip.html | 1 + code/game/machinery/lightswitch.html | 1 + code/game/machinery/limbgrower.html | 2 + code/game/machinery/medical_kiosk.html | 1 + .../machinery/mining_weather_monitor.html | 1 + code/game/machinery/modular_shield.html | 1 + code/game/machinery/nebula_shielding.html | 1 + .../machinery/newscaster/newscaster_data.html | 2 + code/game/machinery/newscaster/newspaper.html | 3 + code/game/machinery/photobooth.html | 6 + .../porta_turret/portable_turret_cover.html | 1 + code/game/machinery/roulette_machine.html | 1 + code/game/machinery/shieldgen.html | 1 + code/game/machinery/sleepers.html | 2 + code/game/machinery/slotmachine.html | 9 + code/game/machinery/spaceheater.html | 1 + code/game/machinery/status_display.html | 1 + code/game/machinery/syndicatebomb.html | 2 + code/game/machinery/teambuilder.html | 1 + .../machinery/telecomms/broadcasting.html | 3 + .../telecomms/computers/message.html | 1 + .../telecomms/machine_interactions.html | 2 + .../telecomms/machines/allinone.html | 2 + .../telecomms/machines/broadcaster.html | 4 + .../machinery/telecomms/machines/bus.html | 2 + .../machinery/telecomms/machines/hub.html | 2 + .../telecomms/machines/message_server.html | 4 + .../telecomms/machines/processor.html | 3 + .../telecomms/machines/receiver.html | 3 + .../machinery/telecomms/machines/relay.html | 2 + .../machinery/telecomms/machines/server.html | 2 + .../anomalies/anomalies_bioscrambler.html | 1 + .../anomalies/anomalies_bluespace.html | 1 + .../anomalies_dimensional_themes.html | 1 + .../anomalies/anomalies_ectoplasm.html | 1 + .../effects/anomalies/anomalies_flux.html | 1 + .../effects/anomalies/anomalies_gravity.html | 1 + .../anomalies/anomalies_pyroclastic.html | 1 + .../game/objects/effects/bump_teleporter.html | 1 + code/game/objects/effects/cursor_catcher.html | 1 + .../effects/decals/cleanable/misc.html | 1 + code/game/objects/effects/decals/crayon.html | 1 + code/game/objects/effects/decals/remains.html | 1 + .../effects/decals/turfdecal/markings.html | 1 + .../decals/turfdecal/tilecoloring.html | 2 + .../effects/effect_system/effects_other.html | 4 + .../effects/effect_system/effects_water.html | 1 + .../fluid_spread/_fluid_spread.html | 2 + .../fluid_spread/effects_foam.html | 1 + .../fluid_spread/effects_smoke.html | 1 + code/game/objects/effects/effects.html | 1 + code/game/objects/effects/forcefields.html | 2 + code/game/objects/effects/glowshroom.html | 1 + code/game/objects/effects/info.html | 1 + code/game/objects/effects/landmarks.html | 3 + .../atmospherics_sanity_landmarks.html | 1 + code/game/objects/effects/lighting.html | 1 + .../game/objects/effects/material_insert.html | 2 + code/game/objects/effects/mines.html | 1 + code/game/objects/effects/overlays.html | 1 + .../game/objects/effects/particle_holder.html | 2 + .../effects/particles/note_particles.html | 1 + .../game/objects/effects/particles/slime.html | 1 + code/game/objects/effects/portals.html | 1 + .../effects/poster_demotivational.html | 1 + .../objects/effects/posters/contraband.html | 1 + code/game/objects/effects/posters/poster.html | 1 + code/game/objects/effects/rcd.html | 1 + .../objects/effects/spawners/bombspawner.html | 1 + .../game/objects/effects/spawners/random.html | 314 +++ .../effects/spawners/random/ai_module.html | 1 + .../spawners/random/food_or_drink.html | 1 + .../spawners/random/lavaland_mobs.html | 1 + .../effects/spawners/random/maintenance.html | 2 + .../effects/spawners/random/random.html | 1 + .../effects/spawners/random/structure.html | 1 + code/game/objects/effects/spiderwebs.html | 1 + .../temporary_visuals/effect_trail.html | 1 + .../temporary_visuals/miscellaneous.html | 1 + .../temporary_visuals/temporary_visual.html | 1 + code/game/objects/items.html | 1 + .../objects/items/AI_modules/_AI_modules.html | 2 + .../game/objects/items/AI_modules/hacked.html | 1 + code/game/objects/items/blueprints.html | 4 + code/game/objects/items/broom.html | 2 + code/game/objects/items/cards_ids.html | 4 + .../objects/items/devices/aicard_evil.html | 1 + .../items/devices/anomaly_releaser.html | 1 + .../objects/items/devices/battle_royale.html | 1 + .../game/objects/items/devices/multitool.html | 1 + .../objects/items/devices/radio/radio.html | 1 + .../items/devices/scanners/gas_analyzer.html | 1 + .../devices/scanners/health_analyzer.html | 9 + .../objects/items/devices/table_clock.html | 1 + .../objects/items/devices/traitordevices.html | 1 + code/game/objects/items/dice.html | 1 + code/game/objects/items/dna_injector.html | 1 + code/game/objects/items/dna_probe.html | 1 + code/game/objects/items/eightball.html | 1 + code/game/objects/items/food/_food.html | 1 + code/game/objects/items/food/bait.html | 5 + code/game/objects/items/food/bread.html | 1 + code/game/objects/items/food/cheese.html | 1 + code/game/objects/items/food/donkpocket.html | 1 + code/game/objects/items/food/donuts.html | 1 + code/game/objects/items/food/egg.html | 1 + code/game/objects/items/food/meatdish.html | 1 + code/game/objects/items/food/meatslab.html | 1 + code/game/objects/items/food/misc.html | 1 + code/game/objects/items/food/pastries.html | 1 + code/game/objects/items/food/salad.html | 1 + code/game/objects/items/food/snacks.html | 1 + code/game/objects/items/food/spaghetti.html | 1 + code/game/objects/items/gift.html | 1 + .../objects/items/granters/_granters.html | 1 + .../items/granters/chuuni_granter.html | 1 + .../items/granters/magic/_spell_granter.html | 1 + .../objects/items/granters/sign_language.html | 2 + .../game/objects/items/grenades/_grenade.html | 1 + .../objects/items/grenades/chem_grenade.html | 1 + .../objects/items/grenades/smokebomb.html | 3 + code/game/objects/items/hand_items.html | 1 + code/game/objects/items/handcuffs.html | 1 + code/game/objects/items/implants/implant.html | 1 + .../items/implants/implant_battle_royale.html | 1 + .../objects/items/implants/implant_clown.html | 1 + .../items/implants/implant_explosive.html | 5 + .../objects/items/implants/implantcase.html | 1 + .../objects/items/implants/implanter.html | 1 + .../implants/security/implant_beacon.html | 1 + .../implants/security/implant_exile.html | 1 + .../implants/security/implant_noteleport.html | 1 + code/game/objects/items/inspector.html | 1 + code/game/objects/items/janitor_key.html | 1 + code/game/objects/items/machine_wand.html | 1 + code/game/objects/items/mail.html | 1 + code/game/objects/items/manuals.html | 1 + code/game/objects/items/melee/energy.html | 1 + code/game/objects/items/piggy_bank.html | 2 + code/game/objects/items/pitchfork.html | 1 + code/game/objects/items/pneumaticCannon.html | 1 + code/game/objects/items/powerfist.html | 1 + code/game/objects/items/puzzle_pieces.html | 1 + code/game/objects/items/rcd/RCD.html | 1 + code/game/objects/items/rcd/RPD.html | 1 + code/game/objects/items/rcd/RPLD.html | 1 + code/game/objects/items/rcd/RSF.html | 1 + code/game/objects/items/rcd/RTD.html | 5 + .../game/objects/items/robot/ai_upgrades.html | 1 + .../objects/items/robot/items/generic.html | 1 + code/game/objects/items/robot/items/hypo.html | 1 + .../objects/items/robot/items/storage.html | 1 + .../objects/items/robot/robot_upgrades.html | 1 + code/game/objects/items/secret_documents.html | 1 + code/game/objects/items/sharpener.html | 1 + .../stacks/golem_food/golem_food_buff.html | 1 + .../stacks/golem_food/golem_hand_actions.html | 1 + .../golem_food/golem_status_effects.html | 1 + code/game/objects/items/stacks/stack.html | 1 + .../items/stacks/tiles/tile_types.html | 1 + code/game/objects/items/stickers.html | 1 + .../objects/items/storage/boxes/_boxes.html | 1 + .../game/objects/items/storage/briefcase.html | 2 + code/game/objects/items/storage/medkit.html | 1 + .../objects/items/storage/uplink_kits.html | 1 + code/game/objects/items/storage/wallets.html | 1 + code/game/objects/items/surgery_tray.html | 3 + code/game/objects/items/tanks/tanks.html | 2 + code/game/objects/items/tcg/tcg.html | 2 + code/game/objects/items/tcg/tcg_machines.html | 1 + code/game/objects/items/teleportation.html | 1 + code/game/objects/items/tongs.html | 1 + code/game/objects/items/tools/wirebrush.html | 2 + code/game/objects/items/toy_mechs.html | 3 + code/game/objects/structures.html | 1 + code/game/objects/structures/aliens.html | 1 + .../objects/structures/beds_chairs/bed.html | 1 + .../objects/structures/beds_chairs/chair.html | 1 + .../objects/structures/beds_chairs/sofa.html | 1 + code/game/objects/structures/bonfire.html | 1 + .../objects/structures/cannons/cannon.html | 1 + .../construction_actions.html | 1 + .../construction_console.html | 1 + .../construction_console_aux.html | 1 + .../construction_console_centcom.html | 1 + .../crates_lockers/closets/bodybag.html | 1 + .../structures/crates_lockers/crates.html | 1 + .../crates_lockers/crates/syndicrate.html | 1 + code/game/objects/structures/curtains.html | 1 + .../objects/structures/deployable_turret.html | 1 + code/game/objects/structures/fake_stairs.html | 1 + code/game/objects/structures/flora.html | 1 + code/game/objects/structures/fluff.html | 1 + code/game/objects/structures/girders.html | 1 + code/game/objects/structures/grille.html | 1 + code/game/objects/structures/guillotine.html | 1 + .../structures/gym/weight_machine.html | 1 + .../structures/gym/weight_machine_action.html | 2 + .../objects/structures/lavaland/geyser.html | 1 + .../structures/lavaland/gulag_vent.html | 2 + code/game/objects/structures/loom.html | 1 + code/game/objects/structures/maintenance.html | 1 + code/game/objects/structures/mannequin.html | 1 + code/game/objects/structures/morgue.html | 1 + code/game/objects/structures/mystery_box.html | 1 + .../objects/structures/ore_containers.html | 1 + code/game/objects/structures/pinatas.html | 1 + code/game/objects/structures/safe.html | 1 + code/game/objects/structures/secure_safe.html | 3 + code/game/objects/structures/shower.html | 1 + .../game/objects/structures/signs/_signs.html | 1 + .../structures/signs/signs_departments.html | 1 + .../structures/signs/signs_warning.html | 1 + .../structures/syndicate_uplink_beacon.html | 1 + .../game/objects/structures/tables_racks.html | 1 + code/game/objects/structures/tank_holder.html | 1 + .../objects/structures/training_machine.html | 1 + code/game/say.html | 1 + code/game/shuttle_engines.html | 1 + code/game/sound.html | 1 + code/game/turfs/closed/minerals.html | 1 + .../game/turfs/closed/wall/mineral_walls.html | 1 + code/game/turfs/open/asteroid.html | 2 + code/game/turfs/open/cliff.html | 1 + code/game/turfs/open/floor.html | 1 + .../turfs/open/floor/catwalk_plating.html | 1 + code/game/turfs/open/floor/fancy_floor.html | 1 + code/game/turfs/open/floor/glass.html | 1 + code/game/turfs/open/floor/plating.html | 1 + code/game/turfs/open/lava.html | 1 + code/game/turfs/open/misc.html | 3 + code/game/turfs/open/space/transit.html | 1 + code/game/turfs/turf.html | 1 + code/game/world.html | 1 + code/modules/NTNet/relays.html | 1 + .../actionspeed/_actionspeed_modifier.html | 19 + .../actionspeed/modifiers/status_effects.html | 1 + code/modules/admin/admin.html | 1 + code/modules/admin/admin_fax_panel.html | 1 + code/modules/admin/admin_pda_message.html | 1 + code/modules/admin/admin_ranks.html | 3 + code/modules/admin/admin_verbs.html | 1 + code/modules/admin/callproc/callproc.html | 3 + code/modules/admin/chat_commands.html | 1 + code/modules/admin/create_mob.html | 1 + code/modules/admin/force_event.html | 1 + code/modules/admin/greyscale_modify_menu.html | 2 + code/modules/admin/painting_manager.html | 1 + code/modules/admin/poll_management.html | 1 + code/modules/admin/smites/bad_luck.html | 1 + code/modules/admin/smites/become_object.html | 1 + code/modules/admin/smites/berforate.html | 1 + code/modules/admin/smites/bloodless.html | 1 + code/modules/admin/smites/boneless.html | 1 + code/modules/admin/smites/brain_damage.html | 1 + code/modules/admin/smites/bsa.html | 1 + code/modules/admin/smites/curse_of_babel.html | 1 + code/modules/admin/smites/dock_pay.html | 1 + code/modules/admin/smites/fake_bwoink.html | 1 + code/modules/admin/smites/fat.html | 1 + code/modules/admin/smites/fireball.html | 1 + code/modules/admin/smites/gib.html | 1 + .../smites/imaginary_friend_special.html | 1 + code/modules/admin/smites/immerse.html | 1 + code/modules/admin/smites/knot_shoes.html | 1 + code/modules/admin/smites/lightning.html | 1 + code/modules/admin/smites/nugget.html | 1 + code/modules/admin/smites/petrify.html | 1 + .../admin/smites/phobia_ocky_icky.html | 1 + code/modules/admin/smites/puzzgrid.html | 1 + code/modules/admin/smites/puzzle.html | 1 + code/modules/admin/smites/rod.html | 1 + code/modules/admin/smites/scarify.html | 1 + code/modules/admin/smites/smite.html | 1 + code/modules/admin/smites/supply_pod.html | 1 + .../admin/smites/supply_pod_quick.html | 1 + code/modules/admin/sql_ban_system.html | 4 + code/modules/admin/sql_message_system.html | 1 + code/modules/admin/tag.html | 1 + code/modules/admin/trophy_manager.html | 1 + .../admin/verb_datums/_admin_verb_datum.html | 3 + .../admin/verbs/SDQL2/SDQL_2_wrappers.html | 11 + code/modules/admin/verbs/adminfun.html | 1 + code/modules/admin/verbs/adminhelp.html | 5 + code/modules/admin/verbs/adminpm.html | 3 + code/modules/admin/verbs/ai_triumvirate.html | 3 + .../modules/admin/verbs/color_blind_test.html | 5 + code/modules/admin/verbs/commandreport.html | 1 + code/modules/admin/verbs/ert.html | 1 + .../modules/admin/verbs/highlander_datum.html | 2 + code/modules/admin/verbs/light_debug.html | 2 + code/modules/admin/verbs/lua.html | 202 ++ code/modules/admin/verbs/lua/_hooks.html | 5 + code/modules/admin/verbs/lua/helpers.html | 4 + code/modules/admin/verbs/map_export.html | 2 + code/modules/admin/verbs/mapping.html | 1 + code/modules/admin/verbs/plane_debugger.html | 1 + .../admin/verbs/player_ticket_history.html | 1 + code/modules/admin/verbs/playsound.html | 1 + code/modules/admin/verbs/pray.html | 1 + code/modules/admin/verbs/secrets.html | 2 + .../admin/view_variables/debug_variables.html | 1 + .../nobody_wants_to_learn_matrix_math.html | 1 + .../admin/view_variables/view_variables.html | 1 + .../antagonists/_common/antag_datum.html | 1 + .../antagonists/_common/antag_helpers.html | 2 + .../antagonists/_common/antag_hud.html | 1 + .../antagonists/_common/antag_spawner.html | 2 + .../abductor/abductee/abductee.html | 1 + code/modules/antagonists/blob/blob_antag.html | 1 + .../antagonists/changeling/changeling.html | 1 + .../changeling/fallen_changeling.html | 1 + .../antagonists/changeling/headslug_eggs.html | 1 + .../changeling/powers/mutations.html | 10 + .../changeling/powers/transform.html | 3 + .../antagonists/clown_ops/bananium_bomb.html | 1 + .../antagonists/clown_ops/clown_weapons.html | 1 + .../modules/antagonists/cult/blood_magic.html | 1 + code/modules/antagonists/cult/cult_comms.html | 1 + code/modules/antagonists/cult/cult_items.html | 1 + code/modules/antagonists/cult/cult_other.html | 1 + .../cult/cult_structure_altar.html | 1 + .../cult/cult_structure_archives.html | 1 + .../cult/cult_structure_forge.html | 1 + code/modules/antagonists/cult/runes.html | 1 + .../fugitive/hunters/hunter_gear.html | 1 + .../antagonists/heretic/heretic_antag.html | 1 + .../antagonists/heretic/heretic_focus.html | 2 + .../heretic/heretic_knowledge.html | 6 + .../heretic/heretic_living_heart.html | 3 + .../antagonists/heretic/heretic_monsters.html | 1 + .../antagonists/heretic/influences.html | 1 + .../heretic/items/corrupted_organs.html | 1 + .../heretic/items/hunter_rifle.html | 1 + .../antagonists/heretic/items/keyring.html | 1 + .../heretic/items/labyrinth_handbook.html | 1 + .../heretic/knowledge/ash_lore.html | 1 + .../heretic/knowledge/blade_lore.html | 1 + .../heretic/knowledge/cosmic_lore.html | 1 + .../heretic/knowledge/flesh_lore.html | 1 + .../heretic/knowledge/lock_lore.html | 1 + .../heretic/knowledge/moon_lore.html | 1 + .../heretic/knowledge/rust_lore.html | 1 + .../sacrifice_knowledge/sacrifice_buff.html | 1 + .../sacrifice_knowledge/sacrifice_curse.html | 1 + .../sacrifice_knowledge.html | 1 + .../sacrifice_knowledge/sacrifice_map.html | 1 + .../heretic/knowledge/side_void_blade.html | 1 + .../heretic/knowledge/starting_lore.html | 7 + .../heretic/knowledge/void_lore.html | 1 + .../heretic/magic/ash_ascension.html | 1 + .../heretic/magic/cosmic_runes.html | 1 + .../antagonists/heretic/magic/fire_blast.html | 1 + .../heretic/magic/shadow_cloak.html | 2 + .../heretic/magic/space_crawl.html | 1 + .../heretic/soultrapped_heretic.html | 1 + .../heretic/status_effects/buffs.html | 3 + .../heretic/status_effects/debuffs.html | 1 + .../heretic/status_effects/void_chill.html | 2 + .../heretic/transmutation_rune.html | 1 + .../antagonists/hypnotized/hypnotized.html | 1 + code/modules/antagonists/malf_ai/malf_ai.html | 1 + .../malf_ai/malf_ai_module_picker.html | 1 + .../antagonists/malf_ai/malf_ai_modules.html | 1 + .../nightmare/nightmare_equipment.html | 1 + .../nightmare/nightmare_organs.html | 1 + .../nightmare/nightmare_species.html | 1 + .../antagonists/ninja/energy_katana.html | 1 + .../antagonists/ninja/energy_net_nets.html | 1 + .../antagonists/ninja/ninjaDrainAct.html | 1 + .../antagonists/ninja/ninja_clothing.html | 1 + .../antagonists/ninja/ninja_explosive.html | 3 + .../antagonists/ninja/ninja_stars.html | 1 + .../nukeop/datums/operative_team.html | 1 + .../equipment/nuclear_bomb/_nuclear_bomb.html | 1 + .../equipment/nuclear_bomb/beer_nuke.html | 1 + .../nukeop/equipment/nuclear_challenge.html | 1 + .../nukeop/equipment/overwatch_tools.html | 1 + .../antagonists/obsessed/obsessed.html | 1 + .../paradox_clone/paradox_clone.html | 2 + .../antagonists/pirate/pirate_gangs.html | 1 + .../pirate/pirate_shuttle_equipment.html | 1 + .../antagonists/revenant/haunted_item.html | 2 + .../revolution/enemy_of_the_state.html | 2 + .../separatist/nation_creation.html | 1 + .../antagonists/shade/shade_minion.html | 4 + .../antagonists/space_dragon/carp_rift.html | 1 + code/modules/antagonists/spiders/spiders.html | 1 + code/modules/antagonists/spy/spy_bounty.html | 1 + .../antagonists/spy/spy_bounty_handler.html | 1 + code/modules/antagonists/spy/spy_uplink.html | 1 + .../antagonists/survivalist/survivalist.html | 1 + code/modules/antagonists/traitor.html | 42 + .../traitor/components/demoraliser.html | 2 + .../components/traitor_objective_helpers.html | 2 + .../traitor_objective_limit_per_time.html | 1 + .../traitor_objective_mind_tracker.html | 1 + .../traitor/contractor/contract_teammate.html | 1 + .../antagonists/traitor/datum_traitor.html | 1 + .../traitor/objective_category.html | 4 + .../objectives/abstract/target_player.html | 3 + .../traitor/objectives/destroy_heirloom.html | 1 + .../traitor/objectives/destroy_item.html | 1 + .../objectives/sabotage_machinery.html | 1 + .../traitor/traitor_objective.html | 3 + .../antagonists/traitor/uplink_handler.html | 1 + .../antagonists/voidwalker/voidwalker.html | 1 + .../voidwalker/voidwalker_abilities.html | 1 + .../voidwalker/voidwalker_bodyparts.html | 1 + .../voidwalker/voidwalker_kidnap.html | 1 + .../voidwalker/voidwalker_loot.html | 1 + .../voidwalker/voidwalker_organs.html | 1 + .../voidwalker/voidwalker_species.html | 1 + .../voidwalker/voidwalker_status_effects.html | 1 + .../voidwalker/voidwalker_traumas.html | 1 + .../voidwalker/voidwalker_void_eater.html | 1 + .../wizard/equipment/artefact.html | 1 + .../equipment/enchanted_clown_suit.html | 1 + .../wizard/equipment/soulstone.html | 1 + .../equipment/spellbook_entries/_entry.html | 1 + .../equipment/spellbook_entries/summons.html | 2 + .../wizard/equipment/teleport_rod.html | 2 + .../grand_ritual/finales/all_access.html | 1 + .../grand_ritual/finales/armageddon.html | 1 + .../grand_ritual/finales/captaincy.html | 1 + .../wizard/grand_ritual/finales/cheese.html | 3 + .../wizard/grand_ritual/finales/clown.html | 2 + .../finales/grand_ritual_finale.html | 2 + .../grand_ritual/finales/immortality.html | 2 + .../wizard/grand_ritual/finales/midas.html | 1 + .../wizard/grand_ritual/fluff.html | 1 + .../wizard/grand_ritual/grand_ritual.html | 8 + .../wizard/grand_ritual/grand_rune.html | 5 + .../grand_ritual/grand_side_effect.html | 1 + .../modules/antagonists/wizard/imp_antag.html | 1 + code/modules/antagonists/xeno/xeno.html | 1 + code/modules/art/paintings.html | 1 + code/modules/art/statues.html | 4 + code/modules/asset_cache.html | 17 + .../modules/asset_cache/asset_cache_item.html | 1 + code/modules/asset_cache/asset_list.html | 5 + .../asset_cache/assets/body_zones.html | 1 + .../asset_cache/assets/chemmaster.html | 1 + code/modules/asset_cache/assets/crafting.html | 1 + .../asset_cache/assets/icon_ref_map.html | 1 + code/modules/asset_cache/assets/uplink.html | 1 + .../transports/asset_transport.html | 1 + .../transports/webroot_transport.html | 1 + code/modules/atmospherics/Atmospherics.html | 352 +++ .../environmental/LINDA_fire.html | 2 + .../environmental/LINDA_turf_tile.html | 1 + .../atmospherics/gasmixtures/reactions.html | 1 + .../machinery/air_alarm/air_alarm_modes.html | 1 + .../machinery/bluespace_vendor.html | 1 + .../binary_devices/dp_vent_pump.html | 1 + .../components/fusion/_hfr_defines.html | 1 + .../machinery/components/fusion/hfr_core.html | 1 + .../components/fusion/hfr_parts.html | 2 + .../unary_devices/airlock_pump.html | 5 + .../components/unary_devices/cryo.html | 1 + .../unary_devices/machine_connector.html | 1 + .../unary_devices/vent_scrubber.html | 1 + .../atmospherics/machinery/pipes/multiz.html | 1 + .../machinery/portable/canister.html | 1 + code/modules/autowiki/autowiki.html | 1 + code/modules/autowiki/pages/base.html | 1 + code/modules/autowiki/pages/fishing.html | 1 + code/modules/autowiki/pages/stockparts.html | 1 + code/modules/awaymissions/away_props.html | 1 + code/modules/awaymissions/cordon.html | 1 + code/modules/awaymissions/gateway.html | 1 + .../awaymissions/mission_code/snowdin.html | 1 + code/modules/awaymissions/zlevel.html | 1 + code/modules/balloon_alert/balloon_alert.html | 1 + code/modules/basketball/controller.html | 2 + code/modules/bitrunning/abilities.html | 1 + code/modules/bitrunning/areas.html | 1 + .../components/avatar_connection.html | 2 + .../components/bitrunning_points.html | 1 + .../bitrunning/components/npc_friendly.html | 1 + .../bitrunning/components/virtual_entity.html | 1 + code/modules/bitrunning/designs.html | 2 + code/modules/bitrunning/objects/disks.html | 4 + .../modules/bitrunning/objects/landmarks.html | 2 + .../bitrunning/objects/loot_crate.html | 1 + code/modules/bitrunning/server/_parent.html | 1 + .../domains/gondola_asteroid.html | 1 + .../virtual_domain/domains/test_only.html | 1 + .../virtual_domain/modular_mob_segment.html | 1 + .../virtual_domain/virtual_domain.html | 1 + code/modules/buildmode.html | 204 ++ code/modules/buildmode/bm_mode.html | 1 + .../buildmode/submodes/map_export.html | 1 + .../capture_the_flag/ctf_controller.html | 1 + code/modules/capture_the_flag/ctf_game.html | 1 + .../ctf_player_component.html | 1 + code/modules/capture_the_flag/ctf_voting.html | 1 + .../medieval_sim/medisim_game.html | 1 + code/modules/cards/cards.html | 1 + code/modules/cargo/bounties/assistant.html | 1 + code/modules/cargo/bounties/security.html | 1 + code/modules/cargo/bounty.html | 1 + code/modules/cargo/coupon.html | 1 + code/modules/cargo/exports.html | 1 + .../modules/cargo/exports/food_and_drink.html | 2 + code/modules/cargo/exports/large_objects.html | 4 + .../cargo/markets/market_items/hostages.html | 1 + .../markets/market_items/local_goods.html | 1 + .../markets/market_items/stolen_goods.html | 1 + .../cargo/markets/market_items/tools.html | 1 + code/modules/cargo/materials_market.html | 1 + code/modules/cargo/order.html | 1 + code/modules/cargo/packs/_packs.html | 3 + code/modules/cargo/packs/engineering.html | 1 + code/modules/cargo/packs/exploration.html | 1 + code/modules/cargo/packs/general.html | 1 + code/modules/cargo/packs/imports.html | 6 + code/modules/cargo/packs/security.html | 1 + code/modules/cargo/packs/service.html | 1 + code/modules/cargo/packs/vending_restock.html | 1 + code/modules/chatter/chatter.html | 3 + code/modules/client/client_colour.html | 10 + code/modules/client/client_defines.html | 1 + code/modules/client/player_details.html | 2 + code/modules/client/preferences.html | 336 +++ .../client/preferences/_preference.html | 13 + code/modules/client/preferences/admin.html | 1 + .../client/preferences/ai_core_display.html | 1 + .../client/preferences/ai_emote_display.html | 1 + .../preferences/ai_hologram_display.html | 1 + .../client/preferences/ambient_occlusion.html | 1 + code/modules/client/preferences/assets.html | 1 + .../client/preferences/blindfold_color.html | 1 + .../preferences/broadcast_login_logout.html | 1 + code/modules/client/preferences/clothing.html | 1 + .../client/preferences/darkened_flash.html | 1 + code/modules/client/preferences/gender.html | 1 + code/modules/client/preferences/ghost.html | 1 + .../client/preferences/ghost_lighting.html | 1 + .../preferences/middleware/_middleware.html | 1 + .../client/preferences/middleware/antags.html | 1 + .../preferences/middleware/keybindings.html | 1 + .../middleware/legacy_toggles.html | 6 + .../client/preferences/middleware/names.html | 2 + .../client/preferences/middleware/quirks.html | 1 + .../client/preferences/middleware/random.html | 1 + .../preferences/middleware/species.html | 1 + .../client/preferences/middleware/tts.html | 1 + .../client/preferences/mod_select.html | 1 + .../client/preferences/multiz_parallax.html | 1 + .../preferences/multiz_performance.html | 1 + code/modules/client/preferences/names.html | 1 + code/modules/client/preferences/ooc.html | 1 + .../client/preferences/operative_species.html | 2 + .../client/preferences/paint_color.html | 1 + code/modules/client/preferences/parallax.html | 1 + code/modules/client/preferences/pda.html | 3 + .../preferences/playtime_reward_cloak.html | 3 + .../client/preferences/preferred_map.html | 1 + .../client/preferences/prisoner_crime.html | 1 + .../client/preferences/scaling_method.html | 1 + .../preferences/security_department.html | 1 + code/modules/client/preferences/sounds.html | 1 + code/modules/client/preferences/species.html | 1 + code/modules/client/preferences/tgui.html | 1 + code/modules/client/preferences/ui_style.html | 1 + code/modules/client/preferences/voice.html | 1 + .../client/preferences/window_flashing.html | 1 + code/modules/client/verbs/who.html | 4 + .../clothing/belts/polymorph_belt.html | 1 + .../clothing/chameleon/_chameleon_action.html | 1 + .../clothing/chameleon/chameleon_scanner.html | 1 + code/modules/clothing/glasses/_glasses.html | 1 + code/modules/clothing/gloves/special.html | 1 + code/modules/clothing/head/costume.html | 2 + code/modules/clothing/head/hat.html | 1 + code/modules/clothing/head/jobs.html | 1 + code/modules/clothing/masks/animal_masks.html | 1 + code/modules/clothing/masks/gas_filter.html | 1 + code/modules/clothing/masks/gasmask.html | 3 + code/modules/clothing/neck/collar_bomb.html | 1 + code/modules/clothing/outfits/ert.html | 1 + code/modules/clothing/shoes/cowboy.html | 1 + .../clothing/spacesuits/_spacesuits.html | 1 + code/modules/clothing/suits/bio.html | 2 + .../reactive_armour_dimensional_themes.html | 2 + code/modules/clothing/suits/toggles.html | 2 + code/modules/clothing/suits/wiz_robe.html | 2 + .../under/accessories/_accessories.html | 1 + .../clothing/under/accessories/badges.html | 1 + code/modules/clothing/under/color.html | 1 + code/modules/clothing/under/costume.html | 2 + .../clothing/under/jobs/station_trait.html | 1 + .../modules/clothing/under/miscellaneous.html | 2 + .../deathmatch/deathmatch_loadouts.html | 1 + .../deathmatch/deathmatch_modifier.html | 1 + code/modules/discord/discord_embed.html | 3 + code/modules/discord/discord_link_record.html | 1 + code/modules/escape_menu.html | 2 + code/modules/escape_menu/details.html | 1 + code/modules/escape_menu/subsystem.html | 1 + code/modules/escape_menu/title.html | 1 + code/modules/events/_event.html | 1 + code/modules/events/_event_admin_setup.html | 4 + code/modules/events/disease_outbreak.html | 1 + code/modules/events/earthquake.html | 4 + code/modules/events/holiday/xmas.html | 2 + .../events/immovable_rod/immovable_rod.html | 1 + .../immovable_rod/immovable_rod_event.html | 2 + code/modules/events/market_crash.html | 1 + code/modules/events/sandstorm.html | 4 + .../shuttle_loan/shuttle_loan_datum.html | 2 + .../events/space_vines/vine_controller.html | 2 + code/modules/events/stray_cargo.html | 1 + code/modules/events/supermatter_surge.html | 1 + code/modules/events/wizard/curseditems.html | 1 + .../events/wizard/departmentrevolt.html | 1 + code/modules/events/wizard/embeddies.html | 1 + code/modules/events/wizard/rpgloot.html | 1 + .../experisci/destructive_scanner.html | 1 + .../experisci/experiment/experiments.html | 1 + .../handlers/experiment_handler.html | 3 + .../experiment/types/experiment.html | 1 + .../experisci/experiment/types/ordnance.html | 3 + .../experisci/experiment/types/scanning.html | 1 + .../experiment/types/scanning_fish.html | 3 + .../experiment/types/scanning_machinery.html | 3 + .../experiment/types/scanning_people.html | 1 + .../experiment/types/scanning_reagent.html | 1 + code/modules/experisci/handheld_scanner.html | 1 + code/modules/explorer_drone/adventure.html | 1 + code/modules/explorer_drone/exodrone.html | 1 + .../_exploration_event.html | 1 + .../exploration_events/adventure.html | 1 + .../exploration_events/danger.html | 1 + .../exploration_events/fluff.html | 1 + .../exploration_events/resource.html | 1 + .../exploration_events/trader.html | 1 + .../explorer_drone/exploration_site.html | 1 + code/modules/explorer_drone/loot.html | 1 + code/modules/explorer_drone/manager.html | 1 + .../modules/explorer_drone/scanner_array.html | 1 + code/modules/fishing/aquarium/aquarium.html | 1 + .../fishing/aquarium/aquarium_kit.html | 3 + .../fishing/aquarium/aquarium_upgrades.html | 1 + .../fishing/aquarium/fish_analyzer.html | 1 + code/modules/fishing/fish/_fish.html | 7 + code/modules/fishing/fish/chasm_detritus.html | 2 + code/modules/fishing/fish/fish_evolution.html | 1 + code/modules/fishing/fish/fish_traits.html | 4 + code/modules/fishing/fish/types/mining.html | 1 + code/modules/fishing/fish/types/ruins.html | 1 + .../modules/fishing/fish/types/syndicate.html | 1 + code/modules/fishing/fish_catalog.html | 1 + code/modules/fishing/fish_movement.html | 1 + code/modules/fishing/fishing_equipment.html | 5 + code/modules/fishing/fishing_minigame.html | 1 + code/modules/fishing/fishing_rod.html | 1 + .../modules/fishing/sources/_fish_source.html | 2 + .../modules/fishing/sources/source_types.html | 2 + code/modules/flufftext/Dreaming.html | 2 + .../food_and_drinks/machinery/deep_fryer.html | 1 + .../food_and_drinks/machinery/grill.html | 1 + .../machinery/icecream_vat.html | 1 + .../food_and_drinks/machinery/microwave.html | 2 + .../machinery/smartfridge.html | 1 + .../machinery/stove_component.html | 1 + .../recipes/drinks/drinks_alcoholic.html | 1 + .../recipes/food_mixtures.html | 1 + .../recipes/soup_mixtures.html | 8 + .../recipes/tablecraft/recipes_bread.html | 1 + .../recipes/tablecraft/recipes_burger.html | 1 + .../recipes/tablecraft/recipes_cake.html | 1 + .../recipes/tablecraft/recipes_drink.html | 1 + .../recipes/tablecraft/recipes_egg.html | 1 + .../recipes/tablecraft/recipes_frozen.html | 1 + .../recipes/tablecraft/recipes_meat.html | 1 + .../recipes/tablecraft/recipes_pastry.html | 1 + .../recipes/tablecraft/recipes_pie.html | 1 + .../recipes/tablecraft/recipes_pizza.html | 1 + .../recipes/tablecraft/recipes_salad.html | 1 + .../recipes/tablecraft/recipes_sandwich.html | 1 + .../recipes/tablecraft/recipes_spaghetti.html | 1 + .../food_and_drinks/restaurant/_venue.html | 1 + .../restaurant/custom_order.html | 3 + .../restaurant/customers/_customer.html | 1 + .../restaurant/generic_venues.html | 1 + code/modules/forensics/_forensics.html | 1 + .../modules/hallucination/_hallucination.html | 3 + code/modules/hallucination/battle.html | 1 + code/modules/hallucination/body.html | 1 + .../hallucination/bubblegum_attack.html | 1 + code/modules/hallucination/delusions.html | 1 + code/modules/hallucination/fake_alert.html | 1 + code/modules/hallucination/fake_chat.html | 1 + .../hallucination/fake_plasmaflood.html | 1 + code/modules/hallucination/fake_sound.html | 1 + code/modules/hallucination/hazard.html | 1 + code/modules/hallucination/hud_screw.html | 1 + code/modules/hallucination/ice_cube.html | 1 + .../hallucination/inhand_fake_item.html | 1 + code/modules/hallucination/mother.html | 1 + .../hallucination/nearby_fake_item.html | 1 + .../hallucination/screwy_health_doll.html | 1 + code/modules/hallucination/shock.html | 1 + code/modules/hallucination/stray_bullet.html | 1 + code/modules/hallucination/xeno_attack.html | 1 + code/modules/holiday/holidays.html | 5 + code/modules/holiday/nth_week.html | 1 + .../hydroponics/beekeeping/bee_smoker.html | 1 + code/modules/hydroponics/biogenerator.html | 1 + .../hydroponics/fermenting_barrel.html | 1 + code/modules/hydroponics/grafts.html | 1 + code/modules/hydroponics/grown.html | 1 + code/modules/hydroponics/grown/flowers.html | 1 + code/modules/hydroponics/grown/hedges.html | 1 + code/modules/hydroponics/grown/melon.html | 1 + .../modules/hydroponics/grown/replicapod.html | 1 + code/modules/hydroponics/grown/sugarcane.html | 1 + code/modules/hydroponics/hydroponics.html | 1 + code/modules/hydroponics/plant_genes.html | 6 + code/modules/hydroponics/seed_extractor.html | 1 + .../hydroponics/unique_plant_genes.html | 2 + .../instrument_data/_instrument_data.html | 1 + .../instrument_data/_instrument_key.html | 2 + code/modules/instruments/songs/_song.html | 2 + code/modules/interview/interview.html | 1 + code/modules/interview/interview_manager.html | 2 + .../modules/jobs/departments/departments.html | 1 + code/modules/jobs/job_types/_job.html | 3 + .../assistant/colorful_assistants.html | 2 + .../assistant/gimmick_assistants.html | 1 + .../job_types/chaplain/chaplain_costumes.html | 2 + .../chaplain/chaplain_divine_archer.html | 1 + .../job_types/chaplain/chaplain_nullrod.html | 4 + code/modules/jobs/job_types/scientist.html | 1 + .../jobs/job_types/security_officer.html | 2 + .../jobs/job_types/station_trait/pun_pun.html | 1 + code/modules/jobs/job_types/unassigned.html | 3 + code/modules/keybindings.html | 34 + code/modules/language/_language.html | 1 + code/modules/language/_language_holder.html | 34 + code/modules/library/admin_only.html | 1 + code/modules/library/book_info.html | 1 + code/modules/library/lib_machines.html | 1 + .../generic_skillchips/point.html | 2 + code/modules/lighting/lighting_atom.html | 1 + code/modules/lighting/lighting_corner.html | 1 + code/modules/lighting/lighting_source.html | 4 + .../loadout/categories/accessories.html | 1 + code/modules/loadout/categories/glasses.html | 1 + code/modules/loadout/categories/heads.html | 1 + code/modules/loadout/categories/inhands.html | 1 + code/modules/loadout/categories/neck.html | 1 + code/modules/loadout/categories/pocket.html | 1 + code/modules/loadout/loadout_categories.html | 1 + code/modules/loadout/loadout_helpers.html | 2 + code/modules/loadout/loadout_items.html | 2 + code/modules/logging/log_category.html | 1 + code/modules/logging/log_entry.html | 1 + code/modules/logging/log_holder.html | 1 + code/modules/lootpanel/_lootpanel.html | 1 + code/modules/lootpanel/search_object.html | 1 + code/modules/lootpanel/ss_looting.html | 1 + code/modules/mafia/_defines.html | 1 + .../abilities/investigative/investigate.html | 1 + .../mafia/abilities/investigative/pray.html | 1 + .../mafia/abilities/investigative/reveal.html | 1 + .../abilities/investigative/thoughtfeed.html | 1 + .../mafia/abilities/killing/alert.html | 1 + .../abilities/killing/flicker_rampage.html | 1 + .../modules/mafia/abilities/killing/kill.html | 1 + .../mafia/abilities/protective/heal.html | 2 + .../mafia/abilities/protective/vest.html | 1 + .../mafia/abilities/support/roleblock.html | 1 + .../mafia/abilities/support/self_reveal.html | 1 + .../abilities/voting/changeling_kill.html | 1 + .../mafia/abilities/voting/day_voting.html | 1 + code/modules/mafia/controller.html | 2 + code/modules/mafia/outfits.html | 1 + code/modules/mapfluff/ruins/generic.html | 1 + .../ruins/icemoonruin_code/hotsprings.html | 1 + .../mapfluff/ruins/lavaland_ruin_code.html | 1 + .../biodome_clown_planet.html | 1 + .../lavalandruin_code/elephantgraveyard.html | 1 + .../ruins/lavalandruin_code/sloth.html | 1 + .../ruins/lavalandruin_code/surface.html | 1 + .../lavalandruin_code/watcher_grave.html | 1 + .../objects_and_mobs/cursed_slot_machine.html | 1 + .../ruins/objects_and_mobs/museum.html | 1 + .../ruins/spaceruin_code/DJstation.html | 1 + .../ruins/spaceruin_code/TheDerelict.html | 5 + .../ruins/spaceruin_code/anomalyresearch.html | 1 + .../ruins/spaceruin_code/asteroid4.html | 1 + .../ruins/spaceruin_code/atmos_asteroid.html | 2 + .../ruins/spaceruin_code/bigderelict1.html | 1 + .../ruins/spaceruin_code/clericsden.html | 1 + .../spaceruin_code/crashedclownship.html | 1 + .../spaceruin_code/cyborgmothership.html | 1 + .../spaceruin_code/dangerous_research.html | 1 + .../ruins/spaceruin_code/deepstorage.html | 1 + .../ruins/spaceruin_code/derelict_sulaco.html | 1 + .../ruins/spaceruin_code/forgottenship.html | 1 + .../ruins/spaceruin_code/interdyne.html | 1 + .../spaceruin_code/listeningstation.html | 1 + .../ruins/spaceruin_code/meateor.html | 1 + .../oldstation/oldstation_fluff.html | 1 + .../oldstation/oldstation_rnd.html | 1 + .../ruins/spaceruin_code/originalcontent.html | 1 + .../ruins/spaceruin_code/spacehotel.html | 1 + .../ruins/spaceruin_code/the_Outlet.html | 1 + .../ruins/spaceruin_code/waystation.html | 1 + .../spaceruin_code/whiteshipruin_box.html | 1 + code/modules/mapping.html | 53 + code/modules/mapping/mapping_helpers.html | 1 + code/modules/mapping/modular_map_loader.html | 89 + code/modules/mapping/preloader.html | 3 + code/modules/mapping/reader.html | 44 + code/modules/mapping/ruins.html | 8 + code/modules/mapping/verify.html | 1 + code/modules/meteors/meteor_dark_matteor.html | 1 + code/modules/meteors/meteor_spawning.html | 1 + code/modules/mining/aux_base.html | 1 + .../mining/boulder_processing/beacon.html | 1 + .../mining/boulder_processing/boulder.html | 1 + .../boulder_processing/boulder_types.html | 1 + .../mining/boulder_processing/brm.html | 1 + .../mining/boulder_processing/refinery.html | 5 + .../mining/equipment/explorer_gear.html | 1 + .../mining/equipment/kheiral_cuffs.html | 2 + .../mining/equipment/lazarus_injector.html | 1 + .../mining/equipment/mineral_scanner.html | 1 + .../mining/equipment/mining_tools.html | 1 + .../modules/mining/equipment/miningradio.html | 1 + .../monster_organs/brimdust_sac.html | 6 + .../monster_organs/monster_organ.html | 4 + .../monster_organs/regenerative_core.html | 2 + .../equipment/monster_organs/rush_gland.html | 4 + code/modules/mining/equipment/resonator.html | 1 + .../mining/equipment/survival_pod.html | 1 + .../mining/equipment/wormhole_jaunter.html | 1 + .../mining/laborcamp/laborstacker.html | 1 + code/modules/mining/lavaland/ash_flora.html | 1 + code/modules/mining/machine_processing.html | 1 + code/modules/mining/machine_redemption.html | 1 + code/modules/mining/machine_silo.html | 1 + code/modules/mining/machine_stacking.html | 1 + code/modules/mining/machine_unloading.html | 1 + code/modules/mining/mine_items.html | 1 + code/modules/mining/money_bag.html | 1 + code/modules/mining/ores_coins.html | 1 + code/modules/mining/satchel_ore_box.html | 1 + code/modules/mining/voucher_sets.html | 1 + .../mob/dead/new_player/new_player.html | 1 + code/modules/mob/emote.html | 1 + .../mob/living/basic/alien/alien_ai.html | 2 + code/modules/mob/living/basic/alien/maid.html | 2 + code/modules/mob/living/basic/basic.html | 1 + .../living/basic/blob_minions/blob_ai.html | 2 + .../living/basic/blob_minions/blob_mob.html | 1 + .../living/basic/blob_minions/blob_spore.html | 1 + .../basic/blob_minions/blob_zombie.html | 1 + .../basic/blob_minions/blobbernaut.html | 2 + .../modules/mob/living/basic/bots/bot_ai.html | 1 + .../modules/mob/living/basic/bots/dedbot.html | 1 + .../living/basic/bots/firebot/firebot_ai.html | 1 + .../basic/bots/vibebot/vibebot_abilities.html | 2 + .../living/basic/bots/vibebot/vibebot_ai.html | 1 + .../modules/mob/living/basic/clown/clown.html | 1 + .../basic/cult/constructs/_construct.html | 1 + .../basic/cult/constructs/artificer.html | 1 + .../basic/cult/constructs/construct_ai.html | 1 + .../basic/cult/constructs/juggernaut.html | 1 + .../living/basic/cult/constructs/proteon.html | 1 + .../living/basic/cult/constructs/wraith.html | 1 + .../mob/living/basic/drone/_drone.html | 1 + .../mob/living/basic/drone/drone_say.html | 1 + .../living/basic/drone/drones_as_items.html | 1 + .../living/basic/drone/extra_drone_types.html | 2 + .../living/basic/farm_animals/bee/_bee.html | 1 + .../farm_animals/bee/bee_ai_behavior.html | 1 + .../basic/farm_animals/chicken/chick.html | 1 + .../basic/farm_animals/cow/cow_moonicorn.html | 1 + .../basic/farm_animals/cow/cow_wisdom.html | 1 + .../living/basic/farm_animals/deer/deer.html | 1 + .../basic/farm_animals/deer/deer_ai.html | 1 + .../living/basic/farm_animals/goat/_goat.html | 1 + .../basic/farm_animals/goat/goat_ai.html | 1 + .../basic/farm_animals/gorilla/gorilla.html | 2 + .../gorilla/gorilla_accessories.html | 1 + .../farm_animals/gorilla/gorilla_ai.html | 1 + .../mob/living/basic/farm_animals/rabbit.html | 1 + .../mob/living/basic/festivus_pole.html | 1 + .../mob/living/basic/guardian/guardian.html | 2 + .../basic/guardian/guardian_creator.html | 1 + .../living/basic/guardian/guardian_fluff.html | 2 + .../guardian/guardian_types/assassin.html | 1 + .../guardian/guardian_types/charger.html | 1 + .../guardian/guardian_types/dextrous.html | 1 + .../guardian/guardian_types/explosive.html | 1 + .../guardian/guardian_types/gaseous.html | 1 + .../guardian_types/gravitokinetic.html | 1 + .../guardian/guardian_types/lightning.html | 1 + .../guardian/guardian_types/protector.html | 1 + .../basic/guardian/guardian_types/ranged.html | 1 + .../guardian/guardian_types/standard.html | 1 + .../guardian/guardian_types/support.html | 1 + .../living/basic/guardian/guardian_verbs.html | 1 + .../mob/living/basic/heretic/ash_spirit.html | 1 + .../living/basic/heretic/flesh_stalker.html | 1 + .../mob/living/basic/heretic/flesh_worm.html | 1 + .../basic/heretic/maid_in_the_mirror.html | 1 + .../mob/living/basic/heretic/raw_prophet.html | 3 + .../mob/living/basic/heretic/rust_walker.html | 2 + .../basic/icemoon/ice_demon/ice_demon.html | 1 + .../ice_whelp/ice_whelp_abilities.html | 1 + .../basic/icemoon/ice_whelp/ice_whelp_ai.html | 1 + .../living/basic/jungle/leaper/leaper_ai.html | 1 + .../mega_arachnid/mega_arachnid_ai.html | 1 + .../basic/jungle/seedling/seedling.html | 2 + .../basic/jungle/seedling/seedling_ai.html | 1 + .../living/basic/jungle/venus_human_trap.html | 1 + .../basic/lavaland/basilisk/basilisk.html | 1 + .../lavaland/basilisk/basilisk_overheat.html | 1 + .../basic/lavaland/brimdemon/brimbeam.html | 1 + .../basic/lavaland/brimdemon/brimdemon.html | 1 + .../lavaland/brimdemon/brimdemon_ai.html | 1 + .../lavaland/brimdemon/brimdemon_loot.html | 1 + .../basic/lavaland/goldgrub/goldgrub_ai.html | 1 + .../basic/lavaland/goliath/goliath.html | 1 + .../lavaland/goliath/goliath_actions.html | 1 + .../basic/lavaland/goliath/goliath_ai.html | 1 + .../lavaland/goliath/goliath_trophy.html | 1 + .../basic/lavaland/goliath/tentacle.html | 1 + .../lavaland/gutlunchers/gutlunchers_ai.html | 1 + .../gutlunchers_inherit_datum.html | 1 + .../basic/lavaland/hivelord/hivelord.html | 1 + .../basic/lavaland/hivelord/hivelord_ai.html | 1 + .../hivelord/spawn_hivelord_brood.html | 1 + .../living/basic/lavaland/legion/legion.html | 2 + .../basic/lavaland/legion/legion_ai.html | 1 + .../basic/lavaland/legion/legion_brood.html | 1 + .../basic/lavaland/legion/legion_monkey.html | 1 + .../basic/lavaland/legion/legion_tumour.html | 1 + .../basic/lavaland/legion/spawn_legions.html | 1 + .../lavaland/lobstrosity/lobstrosity.html | 1 + .../lavaland/lobstrosity/lobstrosity_ai.html | 1 + .../lobstrosity/lobstrosity_trophy.html | 1 + .../mob/living/basic/lavaland/mining.html | 1 + .../living/basic/lavaland/mook/mook_ai.html | 1 + .../basic/lavaland/mook/mook_village.html | 1 + .../basic/lavaland/node_drone/node_drone.html | 4 + .../basic/lavaland/watcher/watcher.html | 1 + .../basic/lavaland/watcher/watcher_gaze.html | 1 + .../lavaland/watcher/watcher_overwatch.html | 2 + .../lavaland/watcher/watcher_projectiles.html | 1 + .../mob/living/basic/minebots/minebot_ai.html | 1 + .../mob/living/basic/pets/dog/_dog.html | 1 + .../basic/pets/gondolas/gondolapod.html | 1 + .../mob/living/basic/pets/orbie/orbie_ai.html | 1 + .../mob/living/basic/pets/parrot/_parrot.html | 1 + .../parrot_ai/ghost_parrot_controller.html | 1 + .../parrot/parrot_ai/parrot_hoarding.html | 1 + .../parrot/parrot_ai/parrot_perching.html | 1 + .../parrot/parrot_ai/parroting_action.html | 1 + .../basic/pets/parrot/parrot_subtypes.html | 1 + .../mob/living/basic/pets/parrot/poly.html | 1 + .../basic/pets/pet_cult/pet_cult_ai.html | 1 + code/modules/mob/living/basic/pets/sloth.html | 1 + .../basic/ruin_defender/cybersun_aicore.html | 3 + .../living/basic/ruin_defender/skeleton.html | 1 + .../basic/ruin_defender/wizard/wizard.html | 1 + .../basic/ruin_defender/wizard/wizard_ai.html | 1 + .../ruin_defender/wizard/wizard_spells.html | 1 + .../modules/mob/living/basic/slime/slime.html | 1 + .../living/basic/space_fauna/carp/carp.html | 4 + .../space_fauna/carp/carp_abilities.html | 2 + .../space_fauna/carp/carp_ai_actions.html | 3 + .../space_fauna/carp/carp_ai_migration.html | 1 + .../carp/carp_ai_rift_actions.html | 1 + .../space_fauna/carp/carp_controllers.html | 5 + .../basic/space_fauna/carp/magicarp.html | 5 + .../basic/space_fauna/carp/megacarp.html | 1 + .../living/basic/space_fauna/cat_surgeon.html | 1 + .../space_fauna/changeling/flesh_spider.html | 3 + .../space_fauna/changeling/headslug.html | 2 + .../living/basic/space_fauna/demon/demon.html | 1 + .../basic/space_fauna/demon/demon_items.html | 1 + .../space_fauna/demon/demon_subtypes.html | 1 + .../mob/living/basic/space_fauna/ghost.html | 1 + .../space_fauna/hivebot/hivebot_behavior.html | 1 + .../living/basic/space_fauna/lightgeist.html | 1 + .../meteor_heart/chasing_spikes.html | 1 + .../meteor_heart/meteor_eyeball.html | 1 + .../meteor_heart/meteor_heart.html | 1 + .../meteor_heart/meteor_heart_ai.html | 1 + .../space_fauna/meteor_heart/spine_traps.html | 1 + .../mob/living/basic/space_fauna/morph.html | 2 + .../space_fauna/netherworld/creature.html | 1 + .../basic/space_fauna/netherworld/migo.html | 1 + .../space_fauna/regal_rat/regal_rat.html | 1 + .../regal_rat/regal_rat_actions.html | 2 + .../basic/space_fauna/revenant/_revenant.html | 3 + .../revenant/revenant_effects.html | 1 + .../basic/space_fauna/robot_customer.html | 1 + .../living/basic/space_fauna/snake/snake.html | 1 + .../space_dragon/dragon_breath.html | 1 + .../space_fauna/space_dragon/dragon_gust.html | 1 + .../space_dragon/space_dragon.html | 3 + .../spider/giant_spider/giant_spider_ai.html | 1 + .../giant_spider/giant_spider_subtrees.html | 1 + .../spider/giant_spider/giant_spiders.html | 3 + .../basic/space_fauna/spider/spider.html | 1 + .../spider/spider_abilities/hivemind.html | 2 + .../spider/spider_abilities/web.html | 1 + .../spider/spiderlings/spiderling.html | 2 + .../spiderlings/spiderling_subtypes.html | 2 + .../spider/young_spider/young_spider.html | 3 + .../young_spider/young_spider_subtypes.html | 1 + .../basic/space_fauna/supermatter_spider.html | 1 + .../wumborian_fugu/fugu_gland.html | 1 + .../space_fauna/wumborian_fugu/inflation.html | 3 + .../wumborian_fugu/wumborian_ai.html | 1 + .../wumborian_fugu/wumborian_fugu.html | 3 + .../mob/living/basic/trader/trader_ai.html | 1 + .../mob/living/basic/trader/trader_data.html | 1 + .../mob/living/basic/trader/trader_items.html | 1 + .../mob/living/basic/trooper/abductor.html | 1 + .../mob/living/basic/trooper/nanotrasen.html | 1 + .../mob/living/basic/trooper/pirate.html | 1 + .../mob/living/basic/trooper/russian.html | 1 + .../mob/living/basic/trooper/syndicate.html | 1 + .../modules/mob/living/basic/vermin/crab.html | 1 + .../mob/living/basic/vermin/lizard.html | 1 + .../mob/living/basic/vermin/mouse.html | 1 + .../mob/living/basic/vermin/space_bat.html | 1 + code/modules/mob/living/brain/posibrain.html | 1 + .../mob/living/carbon/alien/organs.html | 1 + .../mob/living/carbon/carbon_defense.html | 1 + .../mob/living/carbon/carbon_stripping.html | 1 + .../living/carbon/carbon_update_icons.html | 5 + code/modules/mob/living/carbon/examine.html | 1 + .../mob/living/carbon/human/_species.html | 1 + .../mob/living/carbon/human/dummy.html | 2 + .../mob/living/carbon/human/emote.html | 1 + .../living/carbon/human/human_suicide.html | 3 + .../carbon/human/species_types/golems.html | 1 + .../human/species_types/jellypeople.html | 1 + .../human/species_types/mushpeople.html | 1 + .../human/species_types/shadowpeople.html | 1 + .../carbon/human/species_types/vampire.html | 1 + code/modules/mob/living/emote.html | 1 + code/modules/mob/living/life.html | 1 + code/modules/mob/living/living.html | 1 + code/modules/mob/living/living_fov.html | 1 + .../mob/living/silicon/ai/_preferences.html | 2 + .../living/silicon/ai/ai_portrait_picker.html | 1 + .../mob/living/silicon/ai/freelook.html | 50 + .../living/silicon/robot/robot_defines.html | 1 + .../mob/living/silicon/robot/robot_model.html | 3 + .../mob/living/silicon/silicon_movement.html | 1 + .../simple_animal/bot/bot_announcement.html | 1 + .../simple_animal/hostile/illusion.html | 1 + .../hostile/megafauna/colossus.html | 1 + .../hostile/megafauna/drake.html | 1 + .../hostile/megafauna/legion.html | 11 + .../elites/goliath_broodmother.html | 3 + .../hostile/mining_mobs/elites/herald.html | 3 + .../mining_mobs/elites/legionnaire.html | 3 + .../hostile/mining_mobs/elites/pandora.html | 3 + .../living/simple_animal/hostile/ooze.html | 1 + .../simple_animal/hostile/vatbeast.html | 2 + .../living/simple_animal/simple_animal.html | 1 + code/modules/mob/living/sneeze.html | 1 + code/modules/mob/mob_defines.html | 1 + code/modules/mob/mob_helpers.html | 8 + code/modules/mob/mob_say.html | 1 + code/modules/mob/say_readme.html | 162 ++ code/modules/mob/transform_procs.html | 1 + .../mob_spawn/corpses/mining_corpses.html | 1 + .../mob_spawn/corpses/mob_corpses.html | 1 + .../mob_spawn/corpses/nonhuman_corpses.html | 1 + .../mob_spawn/ghost_roles/mining_roles.html | 1 + .../mob_spawn/ghost_roles/space_roles.html | 1 + .../ghost_roles/venus_human_trap.html | 1 + code/modules/mob_spawn/mob_spawn.html | 1 + code/modules/mod/adding_new_mod.html | 264 ++ code/modules/mod/mod_control.html | 1 + code/modules/mod/mod_link.html | 1 + code/modules/mod/mod_part.html | 1 + code/modules/mod/mod_theme.html | 1 + code/modules/mod/modules/_module.html | 1 + code/modules/mod/modules/module_kinesis.html | 1 + .../mod/modules/module_pathfinder.html | 1 + code/modules/mod/modules/modules_antag.html | 1 + .../mod/modules/modules_engineering.html | 1 + code/modules/mod/modules/modules_general.html | 1 + code/modules/mod/modules/modules_maint.html | 1 + code/modules/mod/modules/modules_medical.html | 1 + code/modules/mod/modules/modules_ninja.html | 1 + code/modules/mod/modules/modules_science.html | 1 + .../modules/mod/modules/modules_security.html | 4 + code/modules/mod/modules/modules_service.html | 1 + code/modules/mod/modules/modules_supply.html | 1 + .../modules/mod/modules/modules_timeline.html | 1 + code/modules/mod/modules/modules_visor.html | 1 + .../computers/item/computer.html | 2 + .../computers/item/computer_circuit.html | 1 + .../computers/item/computer_power.html | 1 + .../item/disks/maintenance_disks.html | 1 + .../computers/item/disks/role_disks.html | 1 + .../computers/item/disks/virus_disk.html | 8 + .../modular_computers/computers/item/pda.html | 1 + .../computers/item/role_tablet_presets.html | 1 + .../modular_computers/file_system/data.html | 6 + .../file_system/picture_file.html | 2 + .../file_system/program_circuit.html | 3 + .../file_system/programs/arcade.html | 1 + .../file_system/programs/atmosscan.html | 1 + .../file_system/programs/coupon.html | 1 + .../file_system/programs/emojipedia.html | 1 + .../maintenance/_maintenance_program.html | 1 + .../programs/messenger/messenger_data.html | 2 + .../programs/messenger/messenger_program.html | 1 + .../programs/portrait_printer.html | 1 + .../file_system/programs/radar.html | 3 + .../file_system/programs/secureye.html | 1 + .../movespeed/_movespeed_modifier.html | 26 + code/modules/movespeed/modifiers/innate.html | 1 + code/modules/movespeed/modifiers/mobs.html | 1 + .../movespeed/modifiers/status_effects.html | 1 + code/modules/pai/candidate.html | 1 + code/modules/paperwork/clipboard.html | 1 + code/modules/paperwork/fax.html | 2 + code/modules/paperwork/handlabeler.html | 1 + code/modules/paperwork/paper.html | 2 + code/modules/paperwork/paper_premade.html | 1 + code/modules/paperwork/paperwork.html | 1 + code/modules/paperwork/photocopier.html | 1 + code/modules/photography/photos/frame.html | 1 + .../plumbing/plumbers/_plumb_machinery.html | 5 + .../modules/plumbing/plumbers/acclimator.html | 1 + code/modules/plumbing/plumbers/filter.html | 1 + code/modules/plumbing/plumbers/iv_drip.html | 1 + .../modules/plumbing/plumbers/pill_press.html | 1 + code/modules/plumbing/plumbers/pumps.html | 1 + .../plumbing/plumbers/reaction_chamber.html | 3 + .../plumbing/plumbers/simple_machines.html | 1 + code/modules/plumbing/plumbers/splitters.html | 1 + .../plumbing/plumbers/synthesizer.html | 1 + .../modules/plumbing/plumbers/teleporter.html | 1 + code/modules/power/apc/apc_attack.html | 1 + code/modules/power/apc/apc_main.html | 1 + code/modules/power/apc/apc_mapping.html | 1 + code/modules/power/cable.html | 1 + code/modules/power/cell.html | 1 + code/modules/power/energy_accumulator.html | 16 + code/modules/power/gravitygenerator.html | 1 + code/modules/power/lighting/light.html | 1 + code/modules/power/power.html | 1 + code/modules/power/power_store.html | 1 + .../singularity/dark_matter_singularity.html | 1 + code/modules/power/singularity/narsie.html | 3 + .../power/singularity/reality_tear.html | 1 + .../power/singularity/singularity.html | 1 + code/modules/power/smes_portable.html | 1 + .../supermatter_delamination/_sm_delam.html | 2 + .../common_delams.html | 1 + .../power/supermatter/supermatter_gas.html | 4 + .../supermatter/supermatter_variants.html | 1 + code/modules/power/tesla/energy_ball.html | 1 + code/modules/procedural_mapping.html | 140 + .../procedural_mapping/mapGenerator.html | 2 + .../projectiles/ammunition/energy/laser.html | 1 + code/modules/projectiles/guns/ballistic.html | 2 + .../projectiles/guns/ballistic/automatic.html | 3 + .../guns/ballistic/bows/bow_arrows.html | 2 + .../guns/ballistic/bows/bow_types.html | 1 + .../projectiles/guns/ballistic/pistol.html | 2 + .../projectiles/guns/ballistic/rifle.html | 1 + .../projectiles/guns/ballistic/shotgun.html | 1 + .../guns/bolt_types_explained.html | 17 + .../projectiles/guns/energy/laser.html | 1 + .../projectiles/guns/energy/recharge.html | 1 + .../projectiles/guns/energy/special.html | 1 + .../modules/projectiles/guns/magic/staff.html | 3 + .../projectiles/guns/special/blastcannon.html | 1 + .../projectiles/guns/special/meat_hook.html | 2 + .../projectiles/guns/special/medbeam.html | 1 + code/modules/projectiles/projectile.html | 1 + .../projectile/bullets/_incendiary.html | 1 + .../projectile/bullets/shotgun.html | 2 + .../projectile/bullets/special.html | 1 + .../modules/projectiles/projectile/magic.html | 1 + .../projectile/special/rocket.html | 4 + code/modules/reagents/chem_splash.html | 6 + .../reagents/chemistry/chem_wiki_render.html | 2 + .../reagents/chemistry/fermi_readme.html | 164 ++ .../reagents/chemistry/holder/holder.html | 2 + code/modules/reagents/chemistry/items.html | 1 + .../machinery/chem_recipe_debug.html | 1 + .../chemistry/machinery/chem_separator.html | 1 + .../chemistry/machinery/smoke_machine.html | 1 + code/modules/reagents/chemistry/reagents.html | 2 + .../reagents/cat2_medicine_reagents.html | 1 + .../chemistry/reagents/catalyst_reagents.html | 2 + .../chemistry/reagents/drug_reagents.html | 1 + .../chemistry/reagents/food_reagents.html | 1 + .../impure_medicine_reagents.html | 5 + .../impure_toxin_reagents.html | 1 + .../chemistry/reagents/other_reagents.html | 1 + .../reagents/reaction_agents_reagents.html | 1 + .../chemistry/reagents/toxin_reagents.html | 1 + code/modules/reagents/chemistry/recipes.html | 1 + .../chemistry/recipes/cat2_medicines.html | 1 + .../reagents/chemistry/recipes/catalysts.html | 1 + .../reagents/chemistry/recipes/medicine.html | 1 + .../reagents/chemistry/recipes/others.html | 1 + .../chemistry/recipes/reaction_agents.html | 1 + .../chemistry/recipes/slime_extracts.html | 1 + .../reagents/chemistry/recipes/special.html | 1 + .../reagent_containers/condiment.html | 1 + .../reagent_containers/cups/_cup.html | 1 + .../reagent_containers/cups/_glass_datum.html | 1 + .../reagent_containers/cups/drinks.html | 1 + .../reagent_containers/cups/glassbottle.html | 4 + .../reagent_containers/cups/soda.html | 3 + .../reagents/reagent_containers/pill.html | 1 + .../reagents/reagent_containers/spray.html | 1 + code/modules/reagents/reagent_dispenser.html | 1 + .../reagents/withdrawal/_addiction.html | 1 + .../withdrawal/generic_addictions.html | 1 + code/modules/recycling/conveyor.html | 1 + code/modules/recycling/disposal/multiz.html | 1 + code/modules/recycling/disposal/outlet.html | 1 + code/modules/recycling/sortingmachinery.html | 1 + .../religion/burdened/burdened_trauma.html | 1 + code/modules/religion/burdened/psyker.html | 1 + .../religion/festival/instrument_rites.html | 1 + .../religion/honorbound/honorbound_rites.html | 1 + .../honorbound/honorbound_trauma.html | 1 + code/modules/religion/religion_sects.html | 1 + code/modules/religion/rites.html | 2 + .../religion/sparring/ceremonial_gear.html | 1 + code/modules/requests/request.html | 1 + code/modules/requests/request_manager.html | 2 + .../research/anomaly/anomaly_refinery.html | 1 + .../modules/research/anomaly/raw_anomaly.html | 1 + code/modules/research/designs.html | 3 + .../research/designs/AI_module_designs.html | 1 + .../designs/biogenerator_designs.html | 1 + .../research/designs/bluespace_designs.html | 1 + .../research/designs/comp_board_designs.html | 1 + .../designs/computer_part_designs.html | 1 + .../research/designs/electronics_designs.html | 1 + .../research/designs/limbgrower_designs.html | 1 + .../research/designs/machine_designs.html | 1 + .../research/designs/mecha_designs.html | 1 + .../designs/mechfabricator_designs.html | 1 + .../research/designs/medical_designs.html | 1 + .../research/designs/mining_designs.html | 1 + .../research/designs/power_designs.html | 1 + .../research/designs/smelting_designs.html | 1 + .../research/designs/stock_parts_designs.html | 1 + .../research/designs/telecomms_designs.html | 1 + .../research/designs/tool_designs.html | 1 + .../research/designs/weapon_designs.html | 1 + .../research/destructive_analyzer.html | 1 + .../research/machinery/protolathe.html | 1 + code/modules/research/ordnance/_scipaper.html | 1 + .../research/ordnance/tank_compressor.html | 1 + code/modules/research/server.html | 1 + .../stock_parts/stock_part_datum.html | 6 + .../research/techweb/__techweb_helpers.html | 1 + code/modules/research/techweb/_techweb.html | 1 + .../research/techweb/_techweb_node.html | 1 + .../research/techweb/techweb_types.html | 4 + .../crossbreeding/__corecross.html | 1 + .../xenobiology/crossbreeding/_mobs.html | 1 + .../crossbreeding/_status_effects.html | 3 + .../xenobiology/vatgrowing/biopsy_tool.html | 1 + .../xenobiology/vatgrowing/petri_dish.html | 1 + .../vatgrowing/samples/_micro_organism.html | 1 + .../vatgrowing/samples/_sample.html | 1 + .../vatgrowing/samples/cell_lines/common.html | 1 + .../vatgrowing/samples/viruses/_virus.html | 1 + .../research/xenobiology/vatgrowing/swab.html | 1 + .../xenobiology/vatgrowing/vatgrower.html | 1 + .../research/xenobiology/xenobiology.html | 2 + .../keycard_authentication.html | 3 + .../security_level_datums.html | 1 + .../shuttle/battlecruiser_starfury.html | 1 + code/modules/shuttle/infiltrator.html | 1 + code/modules/shuttle/medisim.html | 1 + code/modules/shuttle/shuttle.html | 2 + .../shuttle_events/_shuttle_events.html | 1 + code/modules/shuttle/shuttle_events/carp.html | 1 + .../shuttle/shuttle_events/humans.html | 1 + .../shuttle/shuttle_events/meteors.html | 1 + code/modules/shuttle/shuttle_events/misc.html | 1 + .../shuttle_events/player_controlled.html | 1 + .../shuttle/shuttle_events/projectile.html | 1 + .../shuttle/shuttle_events/turbulence.html | 1 + code/modules/shuttle/special.html | 2 + code/modules/shuttle/supply.html | 1 + code/modules/shuttle/white_ship.html | 1 + code/modules/spatial_grid/cell_tracker.html | 1 + code/modules/spells/spell.html | 3 + .../spell_types/aoe_spell/_aoe_spell.html | 1 + .../spells/spell_types/charged/_charged.html | 1 + .../spells/spell_types/cone/_cone.html | 1 + .../spells/spell_types/conjure/_conjure.html | 1 + .../spells/spell_types/jaunt/_jaunt.html | 1 + .../spells/spell_types/jaunt/bloodcrawl.html | 3 + .../spell_types/jaunt/ethereal_jaunt.html | 1 + .../spell_types/list_target/_list_target.html | 1 + .../spells/spell_types/pointed/_pointed.html | 1 + .../projectile/_basic_projectile.html | 1 + .../spells/spell_types/right_and_wrong.html | 7 + .../spells/spell_types/self/mutate.html | 1 + .../spells/spell_types/self/rod_form.html | 1 + .../spell_types/self/sanguine_strike.html | 6 + .../spells/spell_types/self/smoke.html | 1 + .../spells/spell_types/self/soultap.html | 1 + .../spell_types/shapeshift/_shapeshift.html | 1 + .../spell_types/teleport/_teleport.html | 1 + .../spells/spell_types/teleport/teleport.html | 1 + .../spells/spell_types/touch/_touch.html | 1 + .../spell_types/touch/scream_for_me.html | 1 + .../spells/spell_types/tower_of_babel.html | 1 + code/modules/station_goals/meteor_shield.html | 3 + code/modules/surgery/bodyparts/parts.html | 1 + .../species_parts/android_parts.html | 3 + .../species_parts/misc_bodyparts.html | 1 + .../bodyparts/worn_feature_offset.html | 2 + code/modules/surgery/bone_mending.html | 2 + code/modules/surgery/burn_dressing.html | 2 + .../surgery/experimental_dissection.html | 1 + code/modules/surgery/gastrectomy.html | 1 + code/modules/surgery/healing.html | 1 + code/modules/surgery/hepatectomy.html | 1 + code/modules/surgery/limb_augmentation.html | 1 + code/modules/surgery/organ_manipulation.html | 1 + .../organs/external/_external_organ.html | 3 + .../surgery/organs/external/spines.html | 1 + .../surgery/organs/external/tails.html | 1 + .../external/wings/functional_wings.html | 1 + .../organs/external/wings/moth_wings.html | 1 + .../surgery/organs/external/wings/wings.html | 1 + .../internal/appendix/appendix_golem.html | 1 + .../surgery/organs/internal/eyes/_eyes.html | 1 + .../internal/heart/heart_anomalock.html | 1 + .../organs/internal/liver/liver_golem.html | 3 + .../internal/liver/liver_plasmaman.html | 2 + .../organs/internal/liver/liver_skeleton.html | 3 + .../internal/stomach/stomach_golem.html | 1 + code/modules/surgery/plastic_surgery.html | 1 + code/modules/surgery/repair_puncture.html | 1 + code/modules/surgery/revival.html | 1 + code/modules/surgery/surgery_step.html | 1 + code/modules/tgchat.html | 20 + code/modules/tgchat/message.html | 1 + code/modules/tgchat/to_chat.html | 3 + code/modules/tgs.html | 14 + code/modules/tgs/core.html | 8 + code/modules/tgs/v3210.html | 5 + code/modules/tgs/v4.html | 5 + code/modules/tgs/v5.html | 12 + code/modules/tgui/external.html | 3 + code/modules/tgui/states.html | 4 + code/modules/tgui/states/admin.html | 2 + code/modules/tgui/states/always.html | 2 + code/modules/tgui/states/conscious.html | 2 + code/modules/tgui/states/contained.html | 2 + code/modules/tgui/states/deep_inventory.html | 2 + code/modules/tgui/states/default.html | 2 + code/modules/tgui/states/fun.html | 2 + code/modules/tgui/states/hands.html | 2 + code/modules/tgui/states/human_adjacent.html | 2 + code/modules/tgui/states/inventory.html | 2 + code/modules/tgui/states/language_menu.html | 2 + code/modules/tgui/states/never.html | 2 + .../tgui/states/not_incapacitated.html | 2 + code/modules/tgui/states/notcontained.html | 2 + code/modules/tgui/states/observer.html | 2 + code/modules/tgui/states/physical.html | 2 + .../tgui/states/reverse_contained.html | 1 + code/modules/tgui/states/self.html | 2 + code/modules/tgui/states/zlevel.html | 2 + code/modules/tgui/status_composers.html | 13 + code/modules/tgui/tgui.html | 2 + code/modules/tgui/tgui_window.html | 2 + code/modules/tgui_input/alert.html | 2 + code/modules/tgui_input/checkboxes.html | 1 + code/modules/tgui_input/keycombo.html | 2 + code/modules/tgui_input/list.html | 2 + code/modules/tgui_input/number.html | 2 + code/modules/tgui_input/say_modal/modal.html | 3 + code/modules/tgui_input/say_modal/typing.html | 1 + code/modules/tgui_input/text.html | 1 + code/modules/tgui_panel/audio.html | 2 + code/modules/tgui_panel/external.html | 2 + code/modules/tgui_panel/telemetry.html | 4 + code/modules/tgui_panel/tgui_panel.html | 3 + .../transport/elevator/elev_indicator.html | 1 + .../transport/elevator/elev_music_zone.html | 1 + .../transport/elevator/elev_panel.html | 2 + code/modules/transport/linear_controller.html | 2 + .../transport/tram/tram_controller.html | 1 + code/modules/transport/tram/tram_signals.html | 1 + code/modules/transport/transport_module.html | 2 + .../transport/transport_navigation.html | 2 + code/modules/tutorials/_tutorial.html | 2 + code/modules/tutorials/tutorials/drop.html | 2 + .../tutorials/tutorials/switch_hands.html | 2 + code/modules/unit_tests.html | 48 + code/modules/unit_tests/_unit_tests.html | 17 + .../unit_tests/abductor_baton_spell.html | 1 + code/modules/unit_tests/ablative_hud.html | 1 + code/modules/unit_tests/achievements.html | 1 + code/modules/unit_tests/anonymous_themes.html | 1 + code/modules/unit_tests/antag_conversion.html | 1 + code/modules/unit_tests/area_contents.html | 2 + .../unit_tests/armor_verification.html | 1 + .../unit_tests/atmospherics_sanity.html | 1 + code/modules/unit_tests/autowiki.html | 1 + code/modules/unit_tests/barsigns.html | 1 + code/modules/unit_tests/baseturfs.html | 1 + code/modules/unit_tests/bitrunning.html | 1 + code/modules/unit_tests/blindness.html | 1 + .../modules/unit_tests/bloody_footprints.html | 2 + code/modules/unit_tests/breath.html | 4 + code/modules/unit_tests/burning.html | 1 + code/modules/unit_tests/cable_powernets.html | 1 + code/modules/unit_tests/can_see.html | 1 + .../modules/unit_tests/cardboard_cutouts.html | 1 + code/modules/unit_tests/cargo_selling.html | 1 + code/modules/unit_tests/changeling.html | 1 + code/modules/unit_tests/chat_filter.html | 1 + .../circuit_component_category.html | 1 + code/modules/unit_tests/client_colours.html | 1 + code/modules/unit_tests/closets.html | 2 + .../clothing_under_armor_subtype_check.html | 1 + code/modules/unit_tests/combat.html | 1 + code/modules/unit_tests/combat_stamina.html | 1 + code/modules/unit_tests/connect_loc.html | 1 + code/modules/unit_tests/container_sanity.html | 2 + code/modules/unit_tests/crayons.html | 1 + .../unit_tests/create_and_destroy.html | 1 + code/modules/unit_tests/cyborg_tool.html | 1 + .../unit_tests/dcs_check_list_arguments.html | 3 + .../unit_tests/dcs_get_id_from_elements.html | 1 + code/modules/unit_tests/door_access.html | 1 + .../modules/unit_tests/dragon_expiration.html | 1 + code/modules/unit_tests/drink_icons.html | 1 + code/modules/unit_tests/dummy_spawn.html | 3 + .../unit_tests/dynamic_ruleset_sanity.html | 1 + code/modules/unit_tests/egg_glands.html | 1 + .../ensure_subtree_operational_datum.html | 2 + code/modules/unit_tests/explosion_action.html | 1 + code/modules/unit_tests/fish_unit_tests.html | 1 + code/modules/unit_tests/focus_only_tests.html | 6 + .../unit_tests/font_awesome_icons.html | 1 + .../unit_tests/food_edibility_check.html | 1 + code/modules/unit_tests/full_heal.html | 1 + code/modules/unit_tests/gas_transfer.html | 1 + code/modules/unit_tests/get_turf_pixel.html | 2 + code/modules/unit_tests/geyser.html | 6 + .../unit_tests/gloves_and_shoes_armor.html | 1 + code/modules/unit_tests/greyscale_config.html | 1 + .../unit_tests/hallucination_icons.html | 5 + code/modules/unit_tests/high_five.html | 1 + code/modules/unit_tests/hulk.html | 1 + .../unit_tests/human_through_recycler.html | 1 + code/modules/unit_tests/hunger_curse.html | 2 + .../hydroponics_extractor_storage.html | 2 + .../hydroponics_self_mutations.html | 1 + .../hydroponics_validate_genes.html | 1 + code/modules/unit_tests/inhands.html | 1 + .../unit_tests/json_savefile_importing.html | 2 + .../unit_tests/knockoff_component.html | 2 + .../modules/unit_tests/language_transfer.html | 1 + code/modules/unit_tests/leash.html | 2 + code/modules/unit_tests/lesserform.html | 1 + code/modules/unit_tests/ling_decap.html | 1 + .../modules/unit_tests/load_map_security.html | 1 + code/modules/unit_tests/lungs.html | 3 + .../unit_tests/machine_disassembly.html | 1 + code/modules/unit_tests/mafia.html | 4 + code/modules/unit_tests/map_landmarks.html | 1 + .../mapload_space_verification.html | 2 + code/modules/unit_tests/mapping.html | 1 + .../unit_tests/mapping_nearstation_test.html | 1 + code/modules/unit_tests/market.html | 1 + code/modules/unit_tests/mecha_damage.html | 2 + .../modules/unit_tests/mindbound_actions.html | 2 + code/modules/unit_tests/missing_icons.html | 1 + code/modules/unit_tests/mob_chains.html | 1 + code/modules/unit_tests/mob_damage.html | 1 + code/modules/unit_tests/mob_faction.html | 1 + code/modules/unit_tests/mob_spawn.html | 1 + code/modules/unit_tests/modsuit.html | 1 + code/modules/unit_tests/monkey_business.html | 1 + code/modules/unit_tests/mouse_bite_cable.html | 1 + .../unit_tests/mutant_hands_consistency.html | 1 + code/modules/unit_tests/mutant_organs.html | 1 + code/modules/unit_tests/novaflower_burn.html | 1 + code/modules/unit_tests/nuke_cinematic.html | 2 + code/modules/unit_tests/operating_table.html | 3 + code/modules/unit_tests/orderable_items.html | 3 + .../unit_tests/organ_bodypart_shuffle.html | 1 + code/modules/unit_tests/organ_set_bonus.html | 4 + code/modules/unit_tests/organs.html | 5 + code/modules/unit_tests/orphaned_genturf.html | 2 + code/modules/unit_tests/outfit_sanity.html | 1 + .../unit_tests/oxyloss_suffocation.html | 1 + code/modules/unit_tests/paintings.html | 1 + .../unit_tests/plane_double_transform.html | 1 + .../unit_tests/plane_dupe_detector.html | 1 + code/modules/unit_tests/plane_sanity.html | 1 + .../unit_tests/preference_species.html | 3 + code/modules/unit_tests/preferences.html | 2 + code/modules/unit_tests/projectiles.html | 1 + code/modules/unit_tests/quirks.html | 1 + code/modules/unit_tests/range_return.html | 4 + .../reagent_container_defaults.html | 1 + code/modules/unit_tests/reagent_names.html | 1 + code/modules/unit_tests/reagent_transfer.html | 1 + .../unit_tests/required_map_items.html | 1 + code/modules/unit_tests/say.html | 1 + .../unit_tests/screenshot_antag_icons.html | 1 + code/modules/unit_tests/screenshot_basic.html | 2 + .../screenshot_dynamic_human_icons.html | 1 + .../screenshot_high_luminosity_eyes.html | 1 + .../unit_tests/screenshot_humanoids.html | 1 + code/modules/unit_tests/screenshot_husk.html | 1 + .../unit_tests/screenshot_saturnx.html | 1 + code/modules/unit_tests/screenshots.html | 13 + code/modules/unit_tests/security_levels.html | 1 + .../security_officer_distribution.html | 1 + .../unit_tests/simple_animal_freeze.html | 1 + code/modules/unit_tests/slime_mood.html | 1 + code/modules/unit_tests/slips.html | 1 + code/modules/unit_tests/spawn_humans.html | 1 + code/modules/unit_tests/spawn_mobs.html | 1 + .../unit_tests/species_change_clothing.html | 2 + .../unit_tests/species_change_organs.html | 3 + .../modules/unit_tests/species_unique_id.html | 2 + .../modules/unit_tests/spell_invocations.html | 2 + code/modules/unit_tests/spell_jaunt.html | 1 + code/modules/unit_tests/spell_mindswap.html | 2 + code/modules/unit_tests/spell_names.html | 1 + code/modules/unit_tests/spell_shapeshift.html | 1 + code/modules/unit_tests/spell_timestop.html | 1 + code/modules/unit_tests/spies.html | 1 + code/modules/unit_tests/spritesheets.html | 1 + .../unit_tests/stack_singular_name.html | 3 + .../unit_tests/status_effect_ticks.html | 2 + code/modules/unit_tests/storage.html | 1 + code/modules/unit_tests/strange_reagent.html | 1 + code/modules/unit_tests/stuns.html | 1 + code/modules/unit_tests/subsystem_init.html | 1 + .../unit_tests/suit_storage_icons.html | 1 + code/modules/unit_tests/surgeries.html | 1 + code/modules/unit_tests/tail_wag.html | 1 + .../unit_tests/tgui_create_message.html | 1 + .../trait_addition_and_removal.html | 1 + .../traitor_mail_content_check.html | 1 + code/modules/unit_tests/trauma_granting.html | 1 + code/modules/unit_tests/turf_icons.html | 1 + code/modules/unit_tests/tutorial_sanity.html | 1 + .../unit_tests/verify_config_tags.html | 1 + .../unit_tests/verify_emoji_names.html | 2 + code/modules/unit_tests/weird_food.html | 1 + code/modules/unit_tests/wizard_loadout.html | 1 + code/modules/unit_tests/worn_icons.html | 1 + .../unit_tests/~skyrat/automapper.html | 1 + .../unit_tests/~skyrat/opposing_force.html | 1 + .../unit_tests/~splurt/underwear_items.html | 1 + code/modules/uplink/uplink_devices.html | 1 + code/modules/uplink/uplink_items.html | 1 + code/modules/vehicles/cars/speedwagon.html | 1 + code/modules/vehicles/cars/vim.html | 1 + code/modules/vehicles/mecha/_mecha.html | 1 + .../modules/vehicles/mecha/combat/durand.html | 6 + .../mecha/combat/savannah_ivanov.html | 1 + .../mecha/equipment/mecha_equipment.html | 2 + .../mecha/equipment/tools/air_tank.html | 1 + .../mecha/equipment/tools/medical_tools.html | 1 + .../mecha/equipment/tools/other_tools.html | 1 + .../vehicles/mecha/equipment/tools/radio.html | 1 + .../mecha/equipment/weapons/mecha_ammo.html | 2 + .../mecha/equipment/weapons/weapons.html | 2 + .../modules/vehicles/mecha/mecha_actions.html | 1 + .../mecha/mecha_construction_paths.html | 1 + code/modules/vehicles/mecha/mecha_damage.html | 10 + .../modules/vehicles/mecha/mecha_defense.html | 10 + .../vehicles/mecha/mecha_movement.html | 1 + code/modules/vehicles/mecha/mecha_parts.html | 1 + .../vehicles/mecha/mecha_wreckage.html | 1 + .../vehicles/mecha/working/clarke.html | 1 + .../vehicles/motorized_wheelchair.html | 1 + code/modules/vehicles/pimpin_ride.html | 1 + code/modules/vehicles/vehicle_actions.html | 1 + code/modules/vehicles/wheelchair.html | 1 + code/modules/vending/_vending.html | 1 + code/modules/vending/hotdog.html | 1 + code/modules/visuals/render_steps.html | 4 + .../wiremod/components/abstract/compare.html | 1 + .../wiremod/components/abstract/module.html | 1 + .../wiremod/components/abstract/variable.html | 1 + .../components/action/laserpointer.html | 1 + .../wiremod/components/action/light.html | 1 + .../wiremod/components/action/mmi.html | 1 + .../wiremod/components/action/pathfind.html | 1 + .../wiremod/components/action/pull.html | 1 + .../wiremod/components/action/radio.html | 1 + .../components/action/soundemitter.html | 1 + .../wiremod/components/action/speech.html | 1 + .../wiremod/components/admin/getvar.html | 1 + .../components/admin/input_request.html | 1 + .../wiremod/components/admin/proccall.html | 1 + .../wiremod/components/admin/save_shell.html | 1 + .../wiremod/components/admin/sdql.html | 1 + .../wiremod/components/admin/setvar.html | 1 + .../admin/signal_handler/signal_handler.html | 1 + .../wiremod/components/admin/spawn.html | 1 + .../wiremod/components/admin/to_type.html | 1 + .../wiremod/components/atom/direction.html | 1 + code/modules/wiremod/components/atom/gps.html | 1 + .../wiremod/components/atom/health.html | 1 + .../wiremod/components/atom/health_state.html | 1 + .../modules/wiremod/components/atom/hear.html | 1 + .../wiremod/components/atom/matscanner.html | 1 + .../wiremod/components/atom/pinpointer.html | 1 + .../components/atom/reagentscanner.html | 1 + .../wiremod/components/atom/remotecam.html | 1 + .../modules/wiremod/components/atom/self.html | 1 + .../wiremod/components/atom/species.html | 1 + .../components/bci/hud/bar_overlay.html | 2 + .../components/bci/hud/counter_overlay.html | 2 + .../components/bci/hud/object_overlay.html | 3 + .../components/bci/hud/target_intercept.html | 2 + .../components/bci/install_detector.html | 2 + .../components/bci/reagent_injector.html | 2 + .../components/bci/thought_listener.html | 2 + code/modules/wiremod/components/bci/vox.html | 2 + .../components/list/assoc_list_pick.html | 2 + .../components/list/assoc_list_remove.html | 1 + .../components/list/assoc_list_set.html | 1 + .../components/list/assoc_literal.html | 1 + .../wiremod/components/list/concat.html | 1 + .../wiremod/components/list/filter.html | 1 + .../wiremod/components/list/foreach.html | 1 + .../wiremod/components/list/format.html | 3 + .../wiremod/components/list/index.html | 1 + .../wiremod/components/list/list_add.html | 1 + .../wiremod/components/list/list_clear.html | 1 + .../wiremod/components/list/list_find.html | 1 + .../wiremod/components/list/list_literal.html | 1 + .../wiremod/components/list/list_pick.html | 1 + .../wiremod/components/list/list_remove.html | 1 + .../wiremod/components/list/split.html | 1 + .../wiremod/components/math/arctan2.html | 1 + .../wiremod/components/math/arithmetic.html | 2 + .../components/math/binary_conversion.html | 1 + .../wiremod/components/math/comparison.html | 1 + .../components/math/decimal_conversion.html | 1 + .../wiremod/components/math/length.html | 1 + .../wiremod/components/math/logic.html | 1 + code/modules/wiremod/components/math/not.html | 1 + .../wiremod/components/math/random.html | 1 + .../wiremod/components/math/toggle.html | 1 + .../wiremod/components/math/trigonometry.html | 2 + .../components/ntnet/ntnet_receive.html | 1 + .../wiremod/components/ntnet/ntnet_send.html | 1 + .../components/ntnet/ntnet_send_literal.html | 1 + .../components/sensors/pressuresensor.html | 1 + .../components/sensors/tempsensor.html | 1 + .../components/sensors/view_sensor.html | 1 + .../wiremod/components/string/concat.html | 1 + .../wiremod/components/string/contains.html | 1 + .../wiremod/components/string/textcase.html | 1 + .../wiremod/components/string/tonumber.html | 1 + .../wiremod/components/string/tostring.html | 1 + .../wiremod/components/table/get_column.html | 1 + .../wiremod/components/table/index_table.html | 1 + .../wiremod/components/table/select.html | 1 + .../wiremod/components/utility/clock.html | 1 + .../wiremod/components/utility/delay.html | 1 + .../wiremod/components/utility/router.html | 1 + .../wiremod/components/utility/timepiece.html | 1 + .../wiremod/components/utility/typecast.html | 1 + .../wiremod/components/utility/typecheck.html | 1 + .../wiremod/components/variables/getter.html | 1 + .../wiremod/components/variables/setter.html | 1 + code/modules/wiremod/core/component.html | 1 + .../wiremod/core/component_printer.html | 1 + code/modules/wiremod/core/datatypes.html | 1 + .../wiremod/core/integrated_circuit.html | 1 + code/modules/wiremod/core/port.html | 1 + code/modules/wiremod/core/usb_cable.html | 1 + code/modules/wiremod/core/variable.html | 1 + .../datatypes/composite/composite.html | 2 + .../dcs_components/component_add_port.html | 1 + code/modules/wiremod/preset/hello_world.html | 1 + code/modules/wiremod/preset/speech_relay.html | 1 + code/modules/wiremod/shell/assembly.html | 1 + code/modules/wiremod/shell/bot.html | 1 + .../modules/wiremod/shell/compact_remote.html | 1 + code/modules/wiremod/shell/controller.html | 2 + code/modules/wiremod/shell/dispenser.html | 1 + code/modules/wiremod/shell/drone.html | 1 + code/modules/wiremod/shell/gun.html | 1 + code/modules/wiremod/shell/moneybot.html | 1 + code/modules/wiremod/shell/scanner.html | 1 + code/modules/wiremod/shell/server.html | 2 + code/modules/wiremod/shell/shell_items.html | 1 + code/world.html | 1 + datum.html | 254 ++ datum/abductor_gear.html | 1 + datum/achievement_data.html | 1 + datum/achievement_report.html | 1 + datum/action.html | 39 + datum/action/chameleon_outfit.html | 7 + datum/action/change_pointer_color.html | 1 + datum/action/changeling.html | 21 + datum/action/changeling/absorb_dna.html | 1 + .../action/changeling/augmented_eyesight.html | 1 + .../changeling/darkness_adaptation.html | 1 + datum/action/changeling/defib_grasp.html | 3 + datum/action/changeling/fakedeath.html | 11 + datum/action/changeling/headcrab.html | 1 + datum/action/changeling/lesserform.html | 1 + datum/action/changeling/mmi_talk.html | 5 + .../changeling/sting/transformation.html | 1 + datum/action/changeling/suit.html | 1 + datum/action/changeling/void_adaption.html | 1 + datum/action/changeling/weapon.html | 1 + datum/action/consume.html | 1 + datum/action/cooldown.html | 9 + datum/action/cooldown/adrenaline.html | 1 + datum/action/cooldown/alien.html | 1 + .../action/cooldown/alien/acid/corrosion.html | 1 + datum/action/cooldown/alien/acid/skyrat.html | 1 + datum/action/cooldown/alien/hide.html | 1 + datum/action/cooldown/alien/larva_evolve.html | 1 + .../action/cooldown/alien/make_structure.html | 1 + .../cooldown/alien/make_structure/resin.html | 1 + datum/action/cooldown/alien/promote.html | 1 + datum/action/cooldown/alien/skyrat.html | 1 + datum/action/cooldown/alien/skyrat/evade.html | 1 + .../cooldown/alien/skyrat/generic_evolve.html | 1 + .../cooldown/alien/skyrat/heal_aura.html | 1 + .../skyrat/literally_too_angry_to_die.html | 1 + .../alien/skyrat/warrior_agility.html | 1 + datum/action/cooldown/bloodsucker.html | 3 + datum/action/cooldown/bloodsucker/cloak.html | 1 + datum/action/cooldown/bloodsucker/feed.html | 1 + .../cooldown/bloodsucker/ghoul_blood.html | 1 + datum/action/cooldown/bloodsucker/gohome.html | 3 + .../cooldown/bloodsucker/masquerade.html | 15 + .../action/cooldown/bloodsucker/targeted.html | 1 + .../cooldown/bloodsucker/targeted/haste.html | 1 + .../cooldown/bloodsucker/targeted/lunge.html | 1 + .../bloodsucker/targeted/mesmerize.html | 1 + .../targeted/mesmerize/dominate.html | 1 + .../targeted/tremere/thaumaturgy.html | 1 + datum/action/cooldown/bot_announcement.html | 1 + .../cooldown/bot_announcement_shortcut.html | 1 + datum/action/cooldown/exquisite_bunch.html | 1 + datum/action/cooldown/gel_cocoon.html | 1 + datum/action/cooldown/grand_ritual.html | 16 + .../cooldown/hemophage/drain_victim.html | 15 + .../cooldown/hivehead_spawn_minions.html | 1 + datum/action/cooldown/internal_smelting.html | 1 + datum/action/cooldown/lunatic_track.html | 1 + datum/action/cooldown/manual_heart.html | 1 + datum/action/cooldown/metabolicboost.html | 1 + .../cooldown/mob_cooldown/assume_form.html | 2 + .../cooldown/mob_cooldown/blood_rain.html | 1 + .../cooldown/mob_cooldown/blood_warp.html | 1 + datum/action/cooldown/mob_cooldown/borer.html | 1 + .../cooldown/mob_cooldown/bot/foam.html | 1 + .../cooldown/mob_cooldown/bot/honk.html | 1 + .../cooldown/mob_cooldown/bot/vibe.html | 1 + .../cooldown/mob_cooldown/brimbeam.html | 1 + .../cooldown/mob_cooldown/capture_photo.html | 1 + .../action/cooldown/mob_cooldown/charge.html | 1 + .../mob_cooldown/charge/basic_charge.html | 1 + .../charge/hallucination_charge.html | 1 + .../cooldown/mob_cooldown/chase_target.html | 1 + .../cooldown/mob_cooldown/chasing_spikes.html | 1 + .../mob_cooldown/command_spiders.html | 7 + .../mob_cooldown/create_legion_skull.html | 1 + .../mob_cooldown/create_legion_turrets.html | 1 + datum/action/cooldown/mob_cooldown/dash.html | 1 + .../cooldown/mob_cooldown/defensive_mode.html | 1 + .../cooldown/mob_cooldown/expel_gas.html | 1 + .../mob_cooldown/explosive_booby_trap.html | 1 + .../cooldown/mob_cooldown/fire_breath.html | 1 + .../mob_cooldown/fire_breath/cone.html | 1 + .../mob_cooldown/fire_breath/mass_fire.html | 1 + .../mob_cooldown/goliath_tentacles.html | 1 + .../cooldown/mob_cooldown/ground_slam.html | 1 + .../mob_cooldown/guardian_alarm_snare.html | 1 + .../guardian_bluespace_beacon.html | 1 + .../cooldown/mob_cooldown/hivelord_spawn.html | 1 + .../mob_cooldown/ice_demon_teleport.html | 1 + .../cooldown/mob_cooldown/lava_swoop.html | 1 + .../cooldown/mob_cooldown/lay_eggs.html | 1 + .../mob_cooldown/lay_eggs/enriched.html | 1 + .../action/cooldown/mob_cooldown/lay_web.html | 1 + .../mob_cooldown/lesser_carp_rift.html | 1 + .../mob_cooldown/missile_launcher.html | 1 + .../cooldown/mob_cooldown/mook_ability.html | 1 + .../mob_cooldown/mook_ability/mook_leap.html | 1 + .../mob_cooldown/projectile_attack.html | 1 + .../magicarp_bolt/chaos.html | 1 + .../projectile_attack/rapid_fire.html | 1 + .../rapid_fire/seedling.html | 1 + .../projectile_attack/spiral_shots.html | 1 + .../projectile_attack/vine_tangle.html | 7 + datum/action/cooldown/mob_cooldown/riot.html | 8 + .../mob_cooldown/set_spider_directive.html | 2 + .../cooldown/mob_cooldown/skull_launcher.html | 1 + .../mob_cooldown/slippery_ice_floors.html | 1 + datum/action/cooldown/mob_cooldown/sneak.html | 1 + .../cooldown/mob_cooldown/solarbeam.html | 1 + .../cooldown/mob_cooldown/spine_traps.html | 1 + .../cooldown/mob_cooldown/teleport.html | 1 + .../mob_cooldown/transform_weapon.html | 1 + .../cooldown/mob_cooldown/watcher_gaze.html | 1 + .../mob_cooldown/watcher_gaze/ice.html | 1 + .../mob_cooldown/watcher_overwatch.html | 2 + .../cooldown/mob_cooldown/wing_buffet.html | 1 + datum/action/cooldown/mob_cooldown/wrap.html | 1 + datum/action/cooldown/open_mob_commands.html | 1 + datum/action/cooldown/rustle.html | 1 + datum/action/cooldown/spell.html | 84 + datum/action/cooldown/spell/aoe.html | 16 + .../cooldown/spell/aoe/magic_missile.html | 1 + .../cooldown/spell/aoe/moon_ringleader.html | 1 + datum/action/cooldown/spell/aoe/repulse.html | 1 + .../aoe/repulse/xeno/skyrat_tailsweep.html | 1 + datum/action/cooldown/spell/aoe/revenant.html | 1 + .../cooldown/spell/aoe/revenant/overload.html | 1 + .../cooldown/spell/aoe/sacred_flame.html | 1 + .../action/cooldown/spell/aoe/void_pull.html | 1 + .../cooldown/spell/apply_mutations.html | 1 + datum/action/cooldown/spell/basic_heal.html | 1 + .../cooldown/spell/basic_projectile.html | 4 + datum/action/cooldown/spell/charged.html | 3 + datum/action/cooldown/spell/charged/beam.html | 4 + .../spell/charged/beam/fire_blast.html | 5 + .../cooldown/spell/charged/beam/tesla.html | 1 + .../spell/charged/psychic_booster.html | 1 + datum/action/cooldown/spell/cone.html | 5 + .../action/cooldown/spell/cone/staggered.html | 4 + .../spell/cone/staggered/cone_of_cold.html | 11 + .../spell/cone/staggered/fire_breath.html | 1 + datum/action/cooldown/spell/conjure.html | 3 + .../spell/conjure/cosmic_expansion.html | 1 + .../cooldown/spell/conjure/limit_summons.html | 1 + .../action/cooldown/spell/conjure/simian.html | 4 + .../cooldown/spell/conjure/the_traps.html | 1 + .../spell/conjure/wizard_summon_minions.html | 1 + datum/action/cooldown/spell/conjure_item.html | 3 + .../spell/conjure_item/clown_pockets.html | 1 + .../spell/conjure_item/invisible_box.html | 1 + datum/action/cooldown/spell/cosmic_rune.html | 1 + datum/action/cooldown/spell/emp.html | 1 + datum/action/cooldown/spell/fire_cascade.html | 1 + datum/action/cooldown/spell/fire_sworn.html | 1 + datum/action/cooldown/spell/forcewall.html | 1 + datum/action/cooldown/spell/jaunt.html | 32 + .../cooldown/spell/jaunt/bloodcrawl.html | 8 + .../jaunt/bloodcrawl/slaughter_demon.html | 6 + .../bloodcrawl/slaughter_demon/funny.html | 6 + .../spell/jaunt/creature_teleport.html | 1 + .../cooldown/spell/jaunt/ethereal_jaunt.html | 37 + .../cooldown/spell/jaunt/mirror_walk.html | 7 + .../cooldown/spell/jaunt/shadow_walk.html | 1 + .../cooldown/spell/jaunt/space_crawl.html | 4 + datum/action/cooldown/spell/list_target.html | 5 + .../cooldown/spell/list_target/telepathy.html | 1 + datum/action/cooldown/spell/olfaction.html | 1 + datum/action/cooldown/spell/pointed.html | 5 + .../cooldown/spell/pointed/abyssal_gaze.html | 1 + .../spell/pointed/apetra_vulnera.html | 1 + .../cooldown/spell/pointed/ash_beams.html | 1 + .../action/cooldown/spell/pointed/blind.html | 1 + .../action/cooldown/spell/pointed/cleave.html | 1 + .../cooldown/spell/pointed/declare_evil.html | 1 + .../cooldown/spell/pointed/manse_link.html | 1 + .../cooldown/spell/pointed/mind_transfer.html | 1 + .../cooldown/spell/pointed/projectile.html | 7 + .../pointed/projectile/furious_steel.html | 1 + .../pointed/projectile/lightningbolt.html | 1 + .../spell/pointed/projectile/spell_cards.html | 1 + .../spell/pointed/psychic_projection.html | 1 + .../spell/pointed/rust_construction.html | 1 + datum/action/cooldown/spell/pointed/slab.html | 1 + datum/action/cooldown/spell/pointed/swap.html | 1 + .../cooldown/spell/pointed/unsettle.html | 1 + .../cooldown/spell/pointed/untie_shoes.html | 1 + .../cooldown/spell/pointed/void_phase.html | 1 + .../cooldown/spell/pointed/wizard_mimic.html | 1 + datum/action/cooldown/spell/rod_form.html | 1 + .../cooldown/spell/sanguine_strike.html | 6 + datum/action/cooldown/spell/shadow_cloak.html | 1 + datum/action/cooldown/spell/shapeshift.html | 10 + .../spell/shapeshift/polymorph_belt.html | 1 + .../spell/shapeshift/shed_human_form.html | 1 + .../cooldown/spell/shapeshift/slime_form.html | 1 + .../action/cooldown/spell/spacetime_dist.html | 3 + datum/action/cooldown/spell/summonitem.html | 1 + datum/action/cooldown/spell/tap.html | 5 + datum/action/cooldown/spell/teleport.html | 2 + .../spell/teleport/area_teleport.html | 3 + .../cooldown/spell/teleport/radius_turf.html | 3 + .../action/cooldown/spell/thermal_vision.html | 1 + datum/action/cooldown/spell/timestop.html | 1 + datum/action/cooldown/spell/tongue_spike.html | 1 + datum/action/cooldown/spell/touch.html | 42 + .../cooldown/spell/touch/duffelbag.html | 1 + .../cooldown/spell/touch/flesh_surgery.html | 1 + .../cooldown/spell/touch/lay_on_hands.html | 1 + datum/action/cooldown/spell/touch/shock.html | 1 + datum/action/cooldown/spell/touch/smite.html | 1 + .../cooldown/spell/touch/star_touch.html | 1 + datum/action/cooldown/spell/voice_of_god.html | 1 + datum/action/cooldown/spell/void/cursed.html | 1 + datum/action/cooldown/track_target.html | 2 + datum/action/cooldown/turn_to_statue.html | 3 + datum/action/innate.html | 7 + datum/action/innate/ai.html | 1 + datum/action/innate/ai/lockdown.html | 3 + datum/action/innate/ai/ranged/core_tilt.html | 1 + .../innate/ai/ranged/remote_vendor_tilt.html | 1 + datum/action/innate/alter_form.html | 17 + datum/action/innate/blobpop.html | 1 + datum/action/innate/carrier_user.html | 1 + datum/action/innate/clockcult/comm.html | 1 + datum/action/innate/clockcult/quick_bind.html | 1 + .../action/innate/clockcult/recall_slab.html | 1 + datum/action/innate/constrict.html | 1 + datum/action/innate/construction.html | 1 + .../innate/construction/place_structure.html | 1 + datum/action/innate/cult/blood_magic.html | 1 + datum/action/innate/cult/blood_spell.html | 1 + .../innate/cult/blood_spell/dagger.html | 1 + datum/action/innate/cult/ghostmark.html | 1 + datum/action/innate/cult/master/cultmark.html | 1 + datum/action/innate/cult/master/pulse.html | 1 + datum/action/innate/dash.html | 1 + datum/action/innate/elite_attack.html | 1 + datum/action/innate/expand_sight.html | 1 + datum/action/innate/integrate_extract.html | 1 + datum/action/innate/link_minds.html | 1 + datum/action/innate/mafia_panel.html | 1 + datum/action/innate/proto_emitter.html | 1 + datum/action/innate/seek_master.html | 1 + datum/action/innate/sign_language.html | 16 + datum/action/innate/slime.html | 1 + datum/action/innate/slime/evolve.html | 1 + datum/action/innate/soulcatcher.html | 1 + datum/action/innate/teleport_in.html | 1 + datum/action/innate/teleport_self.html | 1 + datum/action/innate/use_extract.html | 1 + datum/action/item_action/agent_box.html | 1 + datum/action/item_action/camouflage.html | 3 + .../action/item_action/chameleon/change.html | 7 + .../item_action/chameleon/change/scanner.html | 1 + datum/action/item_action/mod.html | 1 + datum/action/item_action/mod/activate.html | 1 + datum/action/item_action/mod/pinnable.html | 1 + .../item_action/mod/pinnable/circuit.html | 1 + .../item_action/mod/pinnable/module.html | 1 + datum/action/item_action/mod_recall.html | 1 + datum/action/item_action/stealth_mode.html | 5 + ..._steampunk_goggles_welding_protection.html | 1 + datum/action/personality_commune.html | 1 + datum/action/push_weights.html | 2 + datum/action/select_guardian_battlecry.html | 1 + datum/action/send_chems.html | 1 + datum/action/setup_shop.html | 1 + datum/action/toggle_buffer.html | 3 + datum/action/vehicle/sealed/mecha.html | 3 + .../vehicle/sealed/mecha/charge_attack.html | 9 + .../vehicle/sealed/mecha/invisibility.html | 17 + .../vehicle/sealed/mecha/ivanov_strike.html | 12 + .../action/vehicle/sealed/mecha/skyfall.html | 10 + datum/action_group.html | 7 + datum/actionspeed_modifier.html | 1 + datum/addiction.html | 1 + datum/addiction/medicine.html | 1 + datum/admin_book_viewer.html | 1 + datum/admin_help.html | 6 + datum/admin_help_tickets.html | 1 + datum/admin_message.html | 1 + datum/admin_verb.html | 3 + datum/admins.html | 44 + datum/adventure.html | 1 + datum/adventure_browser.html | 1 + datum/adventure_db_entry.html | 1 + datum/adventure_loot_generator.html | 1 + datum/adventure_node.html | 1 + datum/ai_behavior.html | 9 + datum/ai_behavior/attack.html | 1 + datum/ai_behavior/attack_obstructions.html | 1 + datum/ai_behavior/basic_melee_attack.html | 1 + datum/ai_behavior/basic_melee_attack/dog.html | 3 + datum/ai_behavior/basic_ranged_attack.html | 1 + .../basic_ranged_attack/minebot.html | 1 + datum/ai_behavior/battle_screech.html | 1 + datum/ai_behavior/call_reinforcements.html | 1 + datum/ai_behavior/capricious_retaliate.html | 1 + datum/ai_behavior/crawl_through_vents.html | 6 + datum/ai_behavior/deliver_fetched_item.html | 3 + datum/ai_behavior/eat_fetched_snack.html | 3 + datum/ai_behavior/find_and_set.html | 6 + datum/ai_behavior/find_mom.html | 1 + datum/ai_behavior/find_partner.html | 1 + datum/ai_behavior/find_potential_targets.html | 1 + datum/ai_behavior/find_unwebbed_turf.html | 1 + datum/ai_behavior/forget_failed_fetches.html | 1 + .../goliath_find_diggable_turf.html | 1 + datum/ai_behavior/hoard_fingers.html | 1 + datum/ai_behavior/hunt_target.html | 1 + .../hunt_target/interact_with_target.html | 1 + .../interact_with_target/material_stand.html | 1 + .../hunt_target/use_ability_on_target.html | 1 + .../item_move_close_and_attack.html | 1 + datum/ai_behavior/make_carp_rift.html | 1 + datum/ai_behavior/make_carp_rift/towards.html | 1 + datum/ai_behavior/monkey_attack_mob.html | 1 + datum/ai_behavior/monkey_equip.html | 3 + datum/ai_behavior/move_to_cardinal.html | 1 + datum/ai_behavior/play_with_mouse.html | 1 + datum/ai_behavior/relay_message.html | 1 + datum/ai_behavior/return_home.html | 1 + datum/ai_behavior/run_away_from_target.html | 1 + .../sleep_after_targetless_time.html | 1 + datum/ai_behavior/step_towards_turf.html | 6 + datum/ai_behavior/swirl_around_target.html | 1 + .../target_from_retaliate_list.html | 2 + .../targeted_mob_ability/brimbeam.html | 1 + .../targeted_mob_ability/ice_whelp.html | 1 + datum/ai_behavior/territorial_struggle.html | 1 + datum/ai_behavior/travel_towards.html | 2 + datum/ai_behavior/vendor_crush.html | 1 + datum/ai_behavior/vendor_rise_up.html | 1 + datum/ai_behavior/wander.html | 1 + datum/ai_controller.html | 83 + .../basic_controller/artificer.html | 3 + datum/ai_controller/basic_controller/bot.html | 1 + .../basic_controller/bot/cleanbot.html | 1 + .../basic_controller/bot/dedbot.html | 1 + .../basic_controller/bot/firebot.html | 1 + .../ai_controller/basic_controller/carp.html | 9 + .../basic_controller/juggernaut.html | 2 + .../basic_controller/pet_cult.html | 1 + .../basic_controller/proteon.html | 2 + .../basic_controller/wraith.html | 2 + datum/ai_controller/cursed.html | 9 + datum/ai_controller/haunted.html | 1 + datum/ai_controller/hostile_friend.html | 1 + datum/ai_controller/mod.html | 1 + datum/ai_controller/monkey.html | 1 + datum/ai_controller/robot_customer.html | 1 + datum/ai_laws.html | 53 + datum/ai_module.html | 1 + .../malf/destructive/nuke_station.html | 1 + datum/ai_movement.html | 1 + datum/ai_movement/basic_avoidance.html | 1 + datum/ai_movement/dumb.html | 1 + datum/ai_movement/jps.html | 1 + datum/ai_planning_subtree.html | 5 + .../acknowledge_chief.html | 1 + .../attack_obstacle_in_path.html | 1 + datum/ai_planning_subtree/bane_hunting.html | 1 + .../basic_melee_attack_subtree.html | 1 + .../mega_arachnid.html | 1 + .../call_reinforcements.html | 1 + .../capricious_retaliate.html | 1 + datum/ai_planning_subtree/climb_trees.html | 1 + datum/ai_planning_subtree/emagged_borgi.html | 1 + .../ai_planning_subtree/enter_exit_home.html | 1 + .../express_happiness.html | 1 + .../find_and_hunt_target.html | 4 + .../find_and_hunt_target/injured_mooks.html | 1 + datum/ai_planning_subtree/find_fingers.html | 1 + datum/ai_planning_subtree/find_food.html | 1 + ...arest_thing_which_attacked_me_to_flee.html | 1 + .../find_patrol_beacon.html | 1 + .../find_patrol_beacon/medbot.html | 1 + datum/ai_planning_subtree/firebot_speech.html | 1 + datum/ai_planning_subtree/flee_target.html | 1 + datum/ai_planning_subtree/generic_hunger.html | 6 + .../generic_play_instrument.html | 7 + datum/ai_planning_subtree/generic_resist.html | 6 + datum/ai_planning_subtree/goliath_dig.html | 1 + .../ai_planning_subtree/hive_communicate.html | 1 + datum/ai_planning_subtree/hoard_fingers.html | 1 + datum/ai_planning_subtree/issue_commands.html | 1 + .../locate_dead_humans.html | 1 + datum/ai_planning_subtree/look_for_adult.html | 1 + .../maintain_distance.html | 1 + datum/ai_planning_subtree/make_babies.html | 1 + datum/ai_planning_subtree/make_carp_rift.html | 1 + datum/ai_planning_subtree/minebot_mining.html | 1 + datum/ai_planning_subtree/monkey_combat.html | 1 + .../ai_planning_subtree/move_to_cardinal.html | 1 + .../ai_planning_subtree/perch_on_target.html | 1 + datum/ai_planning_subtree/possess_humans.html | 1 + datum/ai_planning_subtree/random_speech.html | 1 + .../random_speech/legion.html | 1 + .../ai_planning_subtree/ranged_skirmish.html | 1 + datum/ai_planning_subtree/reside_in_home.html | 1 + datum/ai_planning_subtree/setup_shop.html | 1 + .../shapechange_ambush.html | 1 + .../shortcut_to_target_through_carp_rift.html | 1 + .../simple_find_target.html | 1 + .../sleep_with_no_target.html | 1 + datum/ai_planning_subtree/spin_web.html | 1 + .../ai_planning_subtree/target_retaliate.html | 1 + .../targeted_mob_ability.html | 1 + .../arachnid_restrain.html | 1 + .../targeted_mob_ability/wizard_spell.html | 3 + .../teleport_away_from_target.html | 1 + .../territorial_struggle.html | 1 + .../ai_planning_subtree/travel_to_point.html | 1 + .../ai_planning_subtree/use_mob_ability.html | 2 + .../use_mob_ability/mook_jump.html | 1 + datum/air_alarm_mode.html | 13 + datum/air_alarm_mode/cycle.html | 3 + datum/alarm_handler.html | 5 + datum/alarm_listener.html | 5 + datum/anomaly_placer.html | 9 + datum/anonymous_theme.html | 22 + datum/antagonist.html | 39 + datum/antagonist/abductee.html | 3 + datum/antagonist/abductor.html | 1 + datum/antagonist/assault_operative.html | 1 + datum/antagonist/battlecruiser.html | 1 + datum/antagonist/bitrunning_glitch.html | 1 + datum/antagonist/blob.html | 1 + datum/antagonist/blob_minion.html | 1 + datum/antagonist/bloodsucker.html | 70 + datum/antagonist/brother.html | 1 + datum/antagonist/changeling.html | 15 + datum/antagonist/clock_cultist.html | 1 + datum/antagonist/cop.html | 1 + datum/antagonist/cortical_borer.html | 1 + datum/antagonist/cult.html | 3 + datum/antagonist/cult/shade.html | 1 + datum/antagonist/ert.html | 1 + datum/antagonist/ex_ghoul.html | 2 + datum/antagonist/ghoul.html | 7 + datum/antagonist/ghoul/favorite.html | 2 + datum/antagonist/ghoul/revenge.html | 2 + datum/antagonist/heretic.html | 46 + datum/antagonist/heretic_monster.html | 1 + datum/antagonist/highlander.html | 1 + datum/antagonist/hypnotized.html | 1 + datum/antagonist/imp.html | 3 + datum/antagonist/lunatic.html | 1 + datum/antagonist/malf_ai.html | 1 + datum/antagonist/malf_ai/infected.html | 1 + datum/antagonist/ninja.html | 9 + datum/antagonist/nukeop.html | 1 + datum/antagonist/nukeop/leader.html | 1 + datum/antagonist/obsessed.html | 1 + datum/antagonist/paradox_clone.html | 1 + datum/antagonist/primitive_catgirl.html | 1 + datum/antagonist/rev.html | 6 + datum/antagonist/rev/head.html | 3 + datum/antagonist/separatist.html | 1 + datum/antagonist/shade_minion.html | 4 + datum/antagonist/space_carp.html | 1 + datum/antagonist/space_dragon.html | 17 + datum/antagonist/spider.html | 1 + datum/antagonist/spy.html | 3 + datum/antagonist/survivalist.html | 1 + .../antagonist/survivalist/battle_royale.html | 1 + datum/antagonist/syndicate_monkey.html | 1 + datum/antagonist/traitor.html | 2 + datum/antagonist/valentine.html | 1 + datum/antagonist/wizard.html | 1 + datum/antagonist/wizard_minion.html | 1 + datum/antagonist/xeno/captive.html | 1 + datum/area_spawn.html | 4 + datum/area_spawn_over.html | 1 + datum/armament_entry.html | 1 + datum/armament_entry/company_import.html | 1 + datum/armor.html | 2 + datum/armour_dimensional_theme.html | 33 + .../dangerous/lavaland.html | 1 + datum/ash_ritual.html | 1 + datum/ash_ritual/incite_megafauna.html | 5 + datum/asset.html | 11 + datum/asset/json.html | 1 + datum/asset/simple.html | 7 + datum/asset/simple/namespaced.html | 9 + datum/asset/spritesheet.html | 15 + datum/asset/spritesheet/antagonists.html | 1 + datum/asset/spritesheet/crafting.html | 4 + datum/asset/spritesheet/decals.html | 11 + datum/asset/spritesheet/plumbing.html | 1 + datum/asset_cache_item.html | 11 + datum/asset_transport.html | 28 + datum/asset_transport/webroot.html | 11 + datum/atom_hud.html | 27 + datum/atom_hud/alternate_appearance.html | 1 + .../basic/has_antagonist.html | 1 + datum/augment_item.html | 1 + datum/augment_item/limb.html | 1 + datum/autowiki.html | 23 + datum/avatar_help_text.html | 1 + datum/award.html | 1 + datum/award/achievement.html | 1 + datum/bank_account.html | 43 + datum/barsign.html | 1 + datum/basketball_controller.html | 18 + datum/battle_arcade_gear.html | 1 + datum/battle_royale_controller.html | 1 + datum/battle_royale_master.html | 1 + datum/beam.html | 31 + datum/biological_sample.html | 1 + datum/biome.html | 25 + datum/bitfield.html | 1 + datum/blobstrain.html | 1 + datum/bloodsucker_clan.html | 41 + datum/bloodsucker_clan/malkavian.html | 1 + datum/body_marking.html | 1 + datum/body_marking_set.html | 1 + datum/bodypart_overlay.html | 12 + datum/bodypart_overlay/mutant.html | 66 + datum/bodypart_overlay/mutant/antennae.html | 1 + datum/bodypart_overlay/mutant/genital.html | 1 + datum/bodypart_overlay/mutant/pod_hair.html | 1 + datum/bodypart_overlay/mutant/spines.html | 3 + .../bodypart_overlay/mutant/tail_spines.html | 1 + .../mutant/wings/functional.html | 1 + datum/bodypart_overlay/mutant/wings/moth.html | 1 + datum/bodypart_overlay/simple.html | 2 + .../bodypart_overlay/simple/body_marking.html | 1 + datum/bodypart_overlay/simple/emote.html | 1 + .../simple/golem_overlay.html | 1 + datum/bodypart_overlay/texture.html | 1 + datum/book_history_entry.html | 1 + datum/book_info.html | 1 + datum/borer_evolution.html | 1 + datum/borer_focus.html | 1 + datum/bounty.html | 1 + datum/bounty/item.html | 1 + datum/bounty/item/assistant/fish.html | 1 + datum/bounty/item/assistant/fish/fluid.html | 1 + datum/bounty/item/atmospherics.html | 1 + datum/bounty/item/science/genetics.html | 1 + datum/bounty/pill.html | 1 + datum/brain_trauma.html | 1 + datum/brain_trauma/hypnosis.html | 1 + datum/brain_trauma/magic/lumiphobia.html | 1 + datum/brain_trauma/mild/phobia.html | 1 + .../severe/death_consequences.html | 13 + .../brain_trauma/severe/eldritch_beauty.html | 1 + datum/brain_trauma/severe/flesh_desire.html | 1 + datum/brain_trauma/severe/kleptomaniac.html | 1 + .../severe/split_personality.html | 1 + .../severe/split_personality/blackout.html | 1 + datum/brain_trauma/severe/weeping.html | 1 + datum/brain_trauma/special/beepsky.html | 1 + .../special/bluespace_prophet.html | 1 + .../special/bluespace_prophet/phobetor.html | 13 + datum/brain_trauma/special/burdened.html | 7 + .../special/existential_crisis.html | 1 + datum/brain_trauma/special/honorbound.html | 18 + .../special/imaginary_friend.html | 1 + datum/brain_trauma/special/obsessed.html | 1 + .../special/primal_instincts.html | 1 + datum/brain_trauma/special/ptsd.html | 1 + .../special/quantum_alignment.html | 1 + datum/brain_trauma/very_special/bimbo.html | 1 + datum/brain_trauma/voided.html | 1 + datum/buildmode.html | 1 + datum/buildmode_mode.html | 1 + datum/buildmode_mode/map_export.html | 1 + datum/buildmode_mode/proccall.html | 1 + datum/buildmode_mode/tweakcomps.html | 1 + datum/callback.html | 43 + datum/callback/verb_callback.html | 2 + datum/camerachunk.html | 15 + datum/cameranet.html | 21 + datum/can_pass_info.html | 12 + datum/candidate_poll.html | 1 + datum/card.html | 5 + datum/cardboard_cutout.html | 1 + datum/cargo_company.html | 1 + datum/carrier_room.html | 10 + datum/carrier_room/soulcatcher.html | 1 + datum/cell_tracker.html | 13 + datum/cellular_emporium.html | 1 + datum/centcom_announcer.html | 1 + datum/centcom_podlauncher.html | 1 + datum/changeling_profile.html | 1 + datum/chasm_detritus.html | 3 + datum/chasm_detritus/restricted.html | 4 + datum/chasm_detritus/restricted/bodies.html | 5 + datum/chat_payload.html | 1 + datum/chatmessage.html | 21 + datum/chemical_reaction.html | 104 + datum/chemical_reaction/food.html | 1 + datum/chemical_reaction/food/soup.html | 28 + datum/chemical_reaction/food/soup/custom.html | 3 + .../food/soup/mysterysoup.html | 1 + .../medicine/inacusiate.html | 1 + datum/chemical_reaction/randomized.html | 1 + datum/cinematic.html | 3 + datum/cinematic/nuke.html | 1 + datum/circuit_composite_template.html | 14 + datum/circuit_datatype.html | 35 + .../circuit_datatype/composite_instance.html | 1 + datum/circuit_variable.html | 2 + datum/client_colour.html | 10 + datum/client_interface.html | 1 + datum/clockwork_research.html | 1 + datum/cogbar.html | 2 + datum/colorblind_tester.html | 11 + datum/comm_log_entry.html | 1 + datum/command_report_menu.html | 1 + datum/communciations_controller.html | 1 + datum/component.html | 39 + datum/component/acid.html | 5 + datum/component/action_item_overlay.html | 2 + .../component/adjust_fishing_difficulty.html | 1 + datum/component/admin_popup.html | 4 + datum/component/aggro_emote.html | 1 + datum/component/ai_listen_to_weather.html | 1 + datum/component/ai_retaliate_advanced.html | 3 + datum/component/ai_target_timer.html | 1 + datum/component/ammo_hud.html | 1 + datum/component/amputating_limbs.html | 1 + datum/component/anti_magic.html | 21 + datum/component/appearance_on_aggro.html | 1 + datum/component/aquarium_content.html | 13 + datum/component/area_based_godmode.html | 2 + datum/component/area_sound_manager.html | 1 + datum/component/armament.html | 2 + datum/component/armament/company_imports.html | 1 + datum/component/armor_plate.html | 1 + datum/component/ash_age.html | 5 + datum/component/ash_cursed.html | 1 + datum/component/atmos_reaction_recorder.html | 11 + datum/component/aura_healing.html | 4 + datum/component/automatic_fire.html | 3 + datum/component/avatar_connection.html | 2 + datum/component/bakeable.html | 1 + datum/component/banned_from_space.html | 1 + datum/component/basic_inhands.html | 1 + .../basic_mob_ability_telegraph.html | 1 + .../component/basic_mob_attack_telegraph.html | 1 + .../component/basic_ranged_ready_overlay.html | 2 + datum/component/bayonet_attachable.html | 6 + datum/component/bitrunning_points.html | 1 + datum/component/blob_minion.html | 1 + datum/component/blood_walk.html | 3 + datum/component/bloodysoles.html | 9 + datum/component/boomerang.html | 20 + datum/component/boss_music.html | 5 + datum/component/brass_spreader.html | 1 + datum/component/breed.html | 1 + datum/component/bullet_intercepting.html | 1 + datum/component/bumpattack.html | 1 + datum/component/burning.html | 3 + datum/component/butchering.html | 6 + datum/component/butchering/mecha.html | 1 + datum/component/butchering/wearable.html | 1 + datum/component/callouts.html | 1 + datum/component/caltrop.html | 2 + datum/component/carrier.html | 9 + datum/component/carrier/soulcatcher.html | 1 + .../carrier/soulcatcher/attachable.html | 1 + datum/component/carrier_communicator.html | 1 + datum/component/carrier_user.html | 1 + datum/component/cell.html | 8 + datum/component/chasm.html | 7 + datum/component/chuunibyou.html | 5 + .../component/circuit_component_add_port.html | 1 + datum/component/cleaner.html | 17 + datum/component/clickbox.html | 5 + datum/component/clockwork_trap.html | 1 + datum/component/clockwork_trap/delay.html | 1 + .../clockwork_trap/pressure_sensor.html | 1 + .../clothing_damaged_by_bullets.html | 1 + datum/component/clothing_fov_visor.html | 1 + datum/component/codeword_hearing.html | 6 + datum/component/combo_attacks.html | 1 + datum/component/combustible_flooder.html | 1 + datum/component/connect_containers.html | 3 + datum/component/connect_loc_behalf.html | 4 + datum/component/connect_mob_behalf.html | 3 + datum/component/connect_range.html | 5 + datum/component/connectable_computer.html | 10 + datum/component/construction/mecha.html | 1 + datum/component/container_item.html | 1 + datum/component/crank_recharge.html | 1 + datum/component/crate_carrier.html | 1 + datum/component/ctf_player.html | 1 + datum/component/cult_ritual_item.html | 1 + datum/component/curse_of_hunger.html | 2 + datum/component/curse_of_polymorph.html | 2 + .../customizable_reagent_holder.html | 13 + datum/component/damage_aura.html | 2 + datum/component/damage_chain.html | 1 + datum/component/damage_tracker.html | 1 + datum/component/damage_tracker/human.html | 1 + datum/component/dart_insert.html | 5 + datum/component/deadchat_control.html | 10 + .../deadchat_control/cardinal_movement.html | 3 + .../deadchat_control/immovable_rod.html | 3 + datum/component/death_linked.html | 2 + datum/component/decomposition.html | 1 + datum/component/dejavu.html | 5 + datum/component/deployable.html | 7 + datum/component/direct_explosive_trap.html | 2 + datum/component/echolocation.html | 1 + datum/component/edible.html | 1 + datum/component/effect_remover.html | 1 + datum/component/egg_layer.html | 3 + datum/component/electrified_buckle.html | 10 + datum/component/embedded.html | 4 + datum/component/energized.html | 1 + datum/component/engraved.html | 3 + datum/component/evolutionary_leap.html | 2 + datum/component/experiment_handler.html | 41 + datum/component/explodable.html | 1 + datum/component/explode_on_attack.html | 1 + datum/component/face_decal.html | 2 + datum/component/face_decal/splat.html | 1 + datum/component/faction_granter.html | 3 + datum/component/fantasy.html | 1 + datum/component/fertile_egg.html | 5 + datum/component/fish_growth.html | 1 + datum/component/fishing_spot.html | 1 + datum/component/focused_attacker.html | 2 + datum/component/follow.html | 4 + datum/component/food_storage.html | 110 + datum/component/fov_handler.html | 1 + datum/component/gas_leaker.html | 1 + datum/component/germ_sensitive.html | 1 + datum/component/ghost_direct_control.html | 1 + datum/component/ghost_edible.html | 2 + datum/component/glass_passer.html | 1 + datum/component/glitch.html | 1 + datum/component/golem_food.html | 1 + datum/component/gps/item.html | 1 + datum/component/grillable.html | 1 + datum/component/ground_sinking.html | 2 + .../component/growth_and_differentiation.html | 8 + datum/component/gun_safety.html | 1 + datum/component/gunpoint.html | 1 + datum/component/happiness.html | 1 + datum/component/haunted_item.html | 2 + datum/component/hazard_area.html | 17 + datum/component/healing_touch.html | 2 + datum/component/health_scaling_effects.html | 2 + datum/component/heart_eater.html | 1 + datum/component/heirloom.html | 2 + datum/component/holderloving.html | 33 + datum/component/ice_cream_holder.html | 1 + datum/component/infective.html | 1 + datum/component/interactable.html | 10 + datum/component/interaction_booby_trap.html | 1 + datum/component/itembound.html | 1 + datum/component/itempicky.html | 1 + datum/component/jetpack.html | 11 + datum/component/joint_damage.html | 1 + datum/component/jousting.html | 15 + datum/component/keep_me_secure.html | 3 + datum/component/kinetic_crusher.html | 1 + datum/component/knockoff.html | 18 + datum/component/leash.html | 2 + datum/component/life_link.html | 2 + datum/component/light_eater.html | 2 + datum/component/ling_decoy_brain.html | 2 + datum/component/liquids_interaction.html | 1 + datum/component/listen_and_repeat.html | 2 + datum/component/living_heart.html | 6 + datum/component/lock_on_cursor.html | 2 + datum/component/lockable_storage.html | 16 + datum/component/magnet.html | 1 + datum/component/manual_heart.html | 3 + datum/component/marionette.html | 3 + datum/component/martial_art_giver.html | 1 + datum/component/material_container.html | 114 + datum/component/medigun_relocation.html | 1 + datum/component/mind_linker.html | 9 + .../component/mind_linker/active_linking.html | 2 + .../mind_linker/active_linking/nif.html | 1 + datum/component/mindless_killer.html | 1 + datum/component/mob_chain.html | 2 + datum/component/mob_harvest.html | 10 + datum/component/money_sense.html | 1 + datum/component/morgue_radio.html | 1 + datum/component/multiple_lives.html | 2 + datum/component/mutant_hands.html | 19 + datum/component/mutant_infection.html | 1 + datum/component/netpod_healing.html | 1 + datum/component/nif_examine.html | 1 + datum/component/npc_friendly.html | 1 + datum/component/nuclear_bomb_operator.html | 9 + datum/component/obeys_commands.html | 2 + datum/component/object_possession.html | 6 + datum/component/off_duty_timer.html | 1 + datum/component/omen.html | 6 + datum/component/onwear_mood.html | 1 + datum/component/organ_corruption.html | 31 + datum/component/organ_corruption/liver.html | 1 + datum/component/organ_corruption/tongue.html | 1 + datum/component/overlay_lighting.html | 27 + datum/component/palette.html | 4 + datum/component/parriable_projectile.html | 1 + datum/component/payment.html | 16 + datum/component/pellet_cloud.html | 14 + datum/component/personal_crafting.html | 4 + datum/component/phylactery.html | 19 + datum/component/pinata.html | 1 + datum/component/pinnable_accessory.html | 1 + datum/component/pixel_shift.html | 1 + datum/component/planet_allergy.html | 1 + datum/component/plumbing.html | 3 + datum/component/plumbing/acclimator.html | 1 + datum/component/plumbing/filter.html | 1 + datum/component/plumbing/hydroponics.html | 1 + datum/component/plundering_attacks.html | 2 + datum/component/polarization_controller.html | 23 + datum/component/previous_body.html | 1 + datum/component/pricetag.html | 1 + datum/component/profound_fisher.html | 1 + datum/component/puzzgrid.html | 4 + datum/component/radiation_countdown.html | 5 + datum/component/radioactive_emitter.html | 1 + datum/component/radioactive_exposure.html | 1 + datum/component/ranged_attacks.html | 1 + datum/component/ranged_mob_full_auto.html | 1 + datum/component/reagent_clothing.html | 1 + datum/component/reagent_refiller.html | 2 + datum/component/reagent_weapon.html | 1 + datum/component/recharging_attacks.html | 1 + .../redirect_attack_hand_from_turf.html | 3 + datum/component/reflection.html | 6 + datum/component/regenerative_shield.html | 1 + datum/component/regenerator.html | 2 + datum/component/religious_tool.html | 1 + datum/component/remote_materials.html | 43 + datum/component/rename.html | 9 + datum/component/respawner.html | 1 + datum/component/revenge_ability.html | 3 + datum/component/riding.html | 15 + datum/component/riding/creature.html | 1 + datum/component/riding/creature/human.html | 1 + datum/component/riding/vehicle.html | 1 + .../riding/vehicle/scooter/skateboard.html | 1 + .../vehicle/scooter/skateboard/hover.html | 1 + datum/component/rot.html | 1 + datum/component/scope.html | 13 + datum/component/seclite_attachable.html | 10 + datum/component/sect_nullrod_bonus.html | 2 + datum/component/security_vision.html | 1 + datum/component/seethrough.html | 1 + datum/component/seethrough_mob.html | 1 + datum/component/shell.html | 7 + datum/component/shielded.html | 3 + datum/component/shovel_hands.html | 1 + datum/component/shrink.html | 1 + datum/component/shuttle_cling.html | 4 + datum/component/shy.html | 1 + datum/component/shy_in_room.html | 1 + datum/component/sign_language.html | 51 + datum/component/simple_access.html | 1 + datum/component/simple_bodycam.html | 1 + datum/component/simple_farm.html | 3 + datum/component/simple_rotation.html | 6 + datum/component/singularity.html | 6 + datum/component/singularity/bloodthirsty.html | 1 + datum/component/sisyphus_awarder.html | 2 + datum/component/sizzle.html | 1 + datum/component/sliding_under.html | 1 + datum/component/slime_friends.html | 1 + datum/component/slippery.html | 56 + datum/component/smooth_tunes.html | 2 + datum/component/soapbox.html | 1 + datum/component/soul_stealer.html | 3 + datum/component/sound_player.html | 3 + datum/component/space_camo.html | 1 + datum/component/space_dive.html | 1 + datum/component/space_kidnap.html | 1 + datum/component/spawner.html | 1 + datum/component/speechmod.html | 2 + datum/component/spin2win.html | 2 + datum/component/spinny.html | 2 + datum/component/spirit_holding.html | 12 + datum/component/splat.html | 1 + datum/component/splattercasting.html | 1 + datum/component/spy_uplink.html | 7 + datum/component/squashable.html | 1 + datum/component/squeak.html | 1 + datum/component/stationloving.html | 3 + datum/component/stationstuck.html | 9 + datum/component/status_indicator.html | 3 + datum/component/sticker.html | 3 + datum/component/storm_hating.html | 1 + datum/component/stove.html | 3 + datum/component/strong_pull.html | 1 + datum/component/stun_n_cuff.html | 1 + datum/component/style.html | 1 + datum/component/subtype_picker.html | 13 + datum/component/summoned_item.html | 1 + datum/component/summoning.html | 1 + datum/component/supermatter_crystal.html | 1 + datum/component/surgery_initiator.html | 9 + datum/component/swabbing.html | 1 + datum/component/tackler.html | 70 + datum/component/tactical.html | 1 + datum/component/takes_reagent_appearance.html | 30 + datum/component/tameable.html | 1 + datum/component/tattoo.html | 4 + datum/component/technointrovert.html | 1 + datum/component/technoshy.html | 1 + datum/component/temporary_body.html | 8 + datum/component/temporary_description.html | 2 + .../component/temporary_glass_shatterer.html | 1 + .../temporary_pollution_emission.html | 1 + datum/component/temporary_size.html | 1 + datum/component/tether.html | 1 + datum/component/thermite.html | 22 + datum/component/throwbonus_on_windup.html | 1 + datum/component/tippable.html | 31 + datum/component/toggle_attached_clothing.html | 2 + datum/component/toggle_icon.html | 1 + datum/component/torn_wall.html | 4 + datum/component/trader.html | 63 + .../traitor_objective_limit_per_time.html | 1 + .../traitor_objective_mind_tracker.html | 1 + .../component/traitor_objective_register.html | 2 + datum/component/transforming.html | 1 + datum/component/trapdoor.html | 11 + datum/component/tree_climber.html | 1 + datum/component/two_hand_reach.html | 1 + datum/component/two_handed.html | 25 + datum/component/udder.html | 2 + datum/component/unobserved_actor.html | 4 + datum/component/uplink.html | 4 + datum/component/usb_port.html | 1 + datum/component/vacuum.html | 19 + datum/component/virtual_entity.html | 1 + datum/component/vore.html | 5 + datum/component/wall_mounted.html | 3 + .../wearertargeting/punchcooldown.html | 1 + .../wearertargeting/sitcomlaughter.html | 1 + datum/component/weather_announcer.html | 1 + datum/component/wet_floor.html | 3 + datum/component/wetsuit.html | 1 + datum/computer_file.html | 21 + datum/computer_file/data/ordnance.html | 2 + .../data/ordnance/explosive.html | 2 + .../computer_file/data/ordnance/gaseous.html | 2 + datum/computer_file/data/text.html | 1 + datum/computer_file/picture.html | 4 + datum/computer_file/program.html | 67 + datum/computer_file/program/ai_restorer.html | 1 + .../computer_file/program/alarm_monitor.html | 1 + datum/computer_file/program/arcade.html | 1 + datum/computer_file/program/atmosscan.html | 1 + datum/computer_file/program/borg_monitor.html | 1 + datum/computer_file/program/bounty_board.html | 1 + datum/computer_file/program/budgetorders.html | 1 + datum/computer_file/program/card_mod.html | 9 + datum/computer_file/program/chatclient.html | 1 + .../program/contract_uplink.html | 1 + datum/computer_file/program/coupon.html | 3 + .../program/department_order.html | 3 + datum/computer_file/program/emojipedia.html | 1 + datum/computer_file/program/mafia.html | 1 + datum/computer_file/program/maintenance.html | 3 + .../program/maintenance/camera.html | 1 + .../program/maintenance/cool_sword.html | 1 + .../program/maintenance/modsuit_control.html | 1 + .../program/maintenance/phys_scanner.html | 1 + .../program/maintenance/spectre_meter.html | 1 + .../program/maintenance/theme.html | 1 + datum/computer_file/program/messenger.html | 1 + datum/computer_file/program/news_archive.html | 1 + datum/computer_file/program/newscaster.html | 1 + .../program/nifsoft_downloader.html | 1 + datum/computer_file/program/nt_pay.html | 1 + .../computer_file/program/ntnetdownload.html | 3 + .../program/portrait_printer.html | 5 + datum/computer_file/program/radar.html | 22 + .../program/radar/fission360.html | 1 + datum/computer_file/program/robocontrol.html | 1 + datum/computer_file/program/science.html | 7 + .../program/scipaper_program.html | 1 + datum/computer_file/program/secureye.html | 1 + datum/computer_file/program/shipping.html | 1 + .../program/signal_commander.html | 1 + datum/computer_file/program/status.html | 19 + .../program/supermatter_monitor.html | 3 + datum/computer_file/program/themeify.html | 1 + datum/computer_file/program/virtual_pet.html | 1 + datum/config_entry.html | 1 + datum/config_entry/keyed_list.html | 1 + datum/config_entry/str_list.html | 1 + datum/config_entry/string.html | 1 + datum/contractor_hub.html | 1 + datum/controller/configuration.html | 1 + datum/controller/global_vars.html | 199 ++ datum/controller/master.html | 15 + datum/controller/subsystem.html | 18 + datum/controller/subsystem/accessories.html | 9 + datum/controller/subsystem/achievements.html | 1 + datum/controller/subsystem/addiction.html | 1 + datum/controller/subsystem/admin_verbs.html | 5 + .../controller/subsystem/ai_controllers.html | 1 + datum/controller/subsystem/air.html | 9 + datum/controller/subsystem/ambience.html | 1 + datum/controller/subsystem/area_spawn.html | 20 + datum/controller/subsystem/atoms.html | 5 + datum/controller/subsystem/automapper.html | 15 + datum/controller/subsystem/autotransfer.html | 5 + datum/controller/subsystem/ban_cache.html | 1 + datum/controller/subsystem/bitrunning.html | 1 + datum/controller/subsystem/chat.html | 1 + .../subsystem/circuit_component.html | 4 + datum/controller/subsystem/dbcore.html | 38 + datum/controller/subsystem/decay.html | 1 + datum/controller/subsystem/discord.html | 58 + datum/controller/subsystem/dynamic.html | 102 + datum/controller/subsystem/economy.html | 21 + datum/controller/subsystem/events.html | 12 + datum/controller/subsystem/explosions.html | 55 + datum/controller/subsystem/fluids.html | 23 + datum/controller/subsystem/gamemode.html | 3 + datum/controller/subsystem/goldeneye.html | 1 + datum/controller/subsystem/icon_smooth.html | 1 + datum/controller/subsystem/id_access.html | 74 + datum/controller/subsystem/ipintel.html | 1 + datum/controller/subsystem/job.html | 63 + datum/controller/subsystem/lag_switch.html | 1 + datum/controller/subsystem/library.html | 1 + datum/controller/subsystem/looting.html | 1 + datum/controller/subsystem/lorecaster.html | 1 + datum/controller/subsystem/lowpop.html | 1 + datum/controller/subsystem/lua.html | 5 + datum/controller/subsystem/machines.html | 1 + datum/controller/subsystem/map_vote.html | 1 + datum/controller/subsystem/mapping.html | 27 + datum/controller/subsystem/market.html | 1 + datum/controller/subsystem/materials.html | 79 + .../controller/subsystem/maturity_guard.html | 1 + datum/controller/subsystem/minor_mapping.html | 1 + datum/controller/subsystem/mobs.html | 1 + .../subsystem/modular_computers.html | 10 + datum/controller/subsystem/movement.html | 1 + .../subsystem/movement/ai_movement.html | 1 + .../subsystem/movement/cliff_falling.html | 1 + .../controller/subsystem/opposing_force.html | 1 + .../controller/subsystem/ore_generation.html | 7 + datum/controller/subsystem/pai.html | 4 + datum/controller/subsystem/parallax.html | 1 + datum/controller/subsystem/pathfinder.html | 11 + datum/controller/subsystem/persistence.html | 15 + .../subsystem/persistent_paintings.html | 10 + datum/controller/subsystem/player_ranks.html | 88 + .../subsystem/points_of_interest.html | 14 + datum/controller/subsystem/polling.html | 20 + datum/controller/subsystem/pollution.html | 1 + .../subsystem/powerator_penality.html | 1 + .../subsystem/processing/ai_behaviors.html | 1 + .../controller/subsystem/processing/dcs.html | 21 + .../subsystem/processing/fishing.html | 1 + .../processing/idle_ai_behaviors.html | 1 + .../subsystem/processing/instruments.html | 1 + .../subsystem/processing/quirks.html | 7 + .../subsystem/processing/reagents.html | 1 + .../subsystem/processing/station.html | 7 + .../subsystem/processing/sunlight.html | 1 + .../processing/supermatter_cascade.html | 1 + .../subsystem/processing/transport.html | 34 + datum/controller/subsystem/queuelinks.html | 5 + datum/controller/subsystem/radiation.html | 5 + .../subsystem/radioactive_nebula.html | 1 + datum/controller/subsystem/research.html | 7 + datum/controller/subsystem/restaurant.html | 1 + .../controller/subsystem/security_level.html | 21 + datum/controller/subsystem/server_maint.html | 1 + datum/controller/subsystem/shuttle.html | 29 + datum/controller/subsystem/skills.html | 1 + datum/controller/subsystem/sounds.html | 1 + datum/controller/subsystem/spatial_grid.html | 41 + datum/controller/subsystem/statpanels.html | 1 + datum/controller/subsystem/stock_market.html | 5 + datum/controller/subsystem/sun.html | 1 + datum/controller/subsystem/tgui.html | 48 + datum/controller/subsystem/ticker.html | 14 + datum/controller/subsystem/timer.html | 1 + datum/controller/subsystem/title.html | 7 + .../subsystem/trading_card_game.html | 5 + datum/controller/subsystem/traitor.html | 11 + datum/controller/subsystem/tts.html | 5 + datum/controller/subsystem/tutorials.html | 7 + .../subsystem/unplanned_controllers.html | 1 + datum/controller/subsystem/verb_manager.html | 16 + .../subsystem/verb_manager/input.html | 3 + datum/controller/subsystem/vote.html | 18 + datum/controller/subsystem/wardrobe.html | 27 + datum/controller/subsystem/weather.html | 1 + .../subsystem/wiremod_composite.html | 3 + datum/coupon_code.html | 3 + datum/cracker_reaction.html | 1 + datum/crafting_bench_recipe.html | 1 + datum/crafting_recipe.html | 7 + datum/crafting_recipe/food/reaction.html | 1 + datum/crafting_recipe/food/reaction/soup.html | 3 + datum/crewmonitor.html | 1 + datum/crime.html | 1 + datum/crime/citation.html | 1 + datum/ctf_controller.html | 1 + datum/ctf_team.html | 1 + datum/ctf_voting_controller.html | 1 + datum/custom_order.html | 9 + datum/custom_order/icecream.html | 1 + datum/custom_order/moth_clothing.html | 1 + datum/custom_order/reagent.html | 1 + datum/custom_order/reagent/soup.html | 1 + datum/customer_data.html | 1 + datum/customer_data/moth.html | 1 + datum/data.html | 1 + datum/data/compressor_record.html | 1 + datum/data/tachyon_record.html | 1 + datum/data/vending_product.html | 3 + datum/data_rc_msg.html | 1 + datum/data_tablet_msg.html | 1 + datum/db_query.html | 1 + datum/deathmatch_controller.html | 1 + datum/deathmatch_lobby.html | 1 + datum/deathmatch_modifier.html | 1 + datum/deathmatch_modifier/drop_pod.html | 1 + datum/deathmatch_modifier/teleport.html | 1 + datum/deck_card.html | 1 + datum/decompose_matrix.html | 1 + datum/demoralise_moods.html | 2 + datum/design.html | 2 + datum/dimension_theme.html | 47 + datum/dimension_theme/fancy.html | 1 + datum/discord_embed.html | 3 + datum/discord_link_record.html | 10 + datum/disease.html | 13 + datum/disease/advance.html | 1 + datum/disease/advance/carpellosis.html | 1 + datum/disease/advance/gastritium.html | 1 + datum/disease/advance/random/event.html | 10 + datum/disease/parrot_possession.html | 1 + datum/disease/wizarditis.html | 1 + datum/dna.html | 10 + datum/dog_fashion.html | 3 + datum/dream.html | 4 + datum/drift_handler.html | 11 + datum/ductnet.html | 1 + datum/duel.html | 1 + datum/dynamic_ruleset.html | 47 + .../dynamic_ruleset/latejoin/provocateur.html | 1 + datum/dynamic_ruleset/midround.html | 1 + .../dynamic_ruleset/midround/from_ghosts.html | 5 + .../midround/from_ghosts/cortical_borer.html | 1 + .../midround/from_ghosts/paradox_clone.html | 3 + .../midround/from_ghosts/voidwalker.html | 1 + datum/dynamic_ruleset/roundstart.html | 3 + .../roundstart/assault_operatives.html | 1 + datum/dynamic_ruleset/roundstart/nuclear.html | 1 + datum/dynamic_ruleset/roundstart/revs.html | 1 + datum/dynamic_ruleset/roundstart/spies.html | 1 + datum/dynamic_snapshot.html | 2 + datum/dynamic_snapshot_ruleset.html | 1 + datum/effect_system/fluid_spread.html | 7 + datum/effect_system/fluid_spread/foam.html | 1 + .../fluid_spread/smoke/chem.html | 1 + .../fluid_spread/smoke/freezing.html | 9 + datum/effect_system/reagents_explosion.html | 1 + datum/eigenstate_manager.html | 1 + datum/eigenstate_manager/eigenstates.html | 1 + datum/element.html | 11 + datum/element/ai_control_examine.html | 4 + datum/element/ai_flee_while_injured.html | 1 + datum/element/ai_held_item.html | 1 + datum/element/ai_retaliate.html | 2 + datum/element/ai_swap_combat_mode.html | 1 + datum/element/ai_target_damagesource.html | 2 + datum/element/airbag.html | 2 + datum/element/atmos_requirements.html | 2 + datum/element/attack_equip.html | 2 + datum/element/attack_zone_randomiser.html | 1 + datum/element/backblast.html | 2 + datum/element/bane.html | 6 + datum/element/basic_eating.html | 2 + datum/element/basic_health_examine.html | 1 + datum/element/beauty.html | 5 + datum/element/bed_tuckable.html | 5 + datum/element/befriend_petting.html | 1 + datum/element/block_turf_fingerprints.html | 2 + datum/element/blocks_explosives.html | 2 + datum/element/body_temp_sensitive.html | 1 + datum/element/bombable_turf.html | 3 + datum/element/bonus_damage.html | 1 + datum/element/bump_click.html | 2 + datum/element/can_barricade.html | 1 + datum/element/can_shatter.html | 2 + datum/element/change_force_on_death.html | 1 + datum/element/chemical_transfer.html | 5 + datum/element/chewable.html | 4 + datum/element/cliff_walking.html | 1 + datum/element/climbable.html | 1 + datum/element/clockwork_description.html | 7 + datum/element/clockwork_pickup.html | 10 + datum/element/clockwork_structure_info.html | 16 + datum/element/connect_loc.html | 2 + datum/element/consumable_mob.html | 1 + datum/element/content_barfer.html | 2 + .../contextual_screentip_bare_hands.html | 3 + .../contextual_screentip_item_typechecks.html | 3 + .../contextual_screentip_mob_typechecks.html | 3 + .../contextual_screentip_sharpness.html | 3 + datum/element/contextual_screentip_tools.html | 3 + datum/element/corrupted_organ.html | 2 + datum/element/crackable.html | 1 + datum/element/crusher_loot.html | 6 + datum/element/cuffsnapping.html | 12 + datum/element/cult_eyes.html | 5 + datum/element/cult_halo.html | 3 + datum/element/cultist_pet.html | 1 + datum/element/curse_announcement.html | 3 + datum/element/damage_threshold.html | 3 + datum/element/dangerous_surgical_removal.html | 3 + datum/element/death_drops.html | 2 + datum/element/death_explosion.html | 2 + datum/element/death_gases.html | 2 + datum/element/decal.html | 9 + datum/element/deliver_first.html | 1 + datum/element/dextrous.html | 2 + datum/element/diggable.html | 1 + datum/element/disarm_attack.html | 1 + datum/element/door_pryer.html | 2 + datum/element/drag_pickup.html | 2 + datum/element/dryable.html | 1 + datum/element/dusts_on_catatonia.html | 1 + datum/element/effect_trail.html | 1 + datum/element/elevation.html | 2 + datum/element/elevation_core.html | 12 + datum/element/embed.html | 14 + datum/element/envenomable_casing.html | 3 + datum/element/eyestab.html | 1 + datum/element/falling_hazard.html | 1 + datum/element/firestacker.html | 1 + datum/element/floor_loving.html | 1 + datum/element/food_trash.html | 1 + datum/element/footstep.html | 1 + datum/element/footstep_override.html | 11 + datum/element/forced_gravity.html | 1 + datum/element/fried_item.html | 3 + datum/element/frozen.html | 3 + datum/element/give_turf_traits.html | 5 + datum/element/gravedigger.html | 1 + datum/element/gun_launches_little_guys.html | 1 + datum/element/hat_wearer.html | 1 + datum/element/heretic_focus.html | 8 + datum/element/high_fiver.html | 1 + datum/element/immerse.html | 28 + datum/element/item_fov.html | 1 + datum/element/item_scaling.html | 41 + datum/element/kneecapping.html | 13 + datum/element/knockback.html | 8 + datum/element/lazy_fishing_spot.html | 2 + datum/element/leeching_walk.html | 3 + datum/element/lifesteal.html | 2 + datum/element/light_blocking.html | 1 + datum/element/light_eaten.html | 1 + datum/element/light_eater.html | 59 + datum/element/liquids_height.html | 2 + datum/element/living_limb_initialiser.html | 1 + datum/element/loomable.html | 1 + datum/element/lube_walking.html | 4 + datum/element/manufacturer_examine.html | 1 + datum/element/microwavable.html | 5 + datum/element/mob_access.html | 1 + datum/element/mob_grabber.html | 1 + datum/element/mob_killed_tally.html | 2 + datum/element/movement_turf_changer.html | 2 + datum/element/movetype_handler.html | 4 + datum/element/nerfed_pulling.html | 1 + datum/element/nifsoft_hud.html | 1 + datum/element/noticable_organ.html | 2 + datum/element/obj_regen.html | 1 + datum/element/on_hit_effect.html | 3 + datum/element/organ_set_bonus.html | 2 + datum/element/pet_bonus.html | 2 + datum/element/plant_backfire.html | 22 + datum/element/pollution_emitter.html | 1 + datum/element/poster_tearer.html | 1 + datum/element/prevent_attacking_of_types.html | 2 + datum/element/processable.html | 9 + datum/element/projectile_shield.html | 1 + datum/element/quality_food_ingredient.html | 1 + datum/element/radioactive.html | 1 + datum/element/ranged_armour.html | 1 + datum/element/relay_attackers.html | 3 + datum/element/repackable.html | 1 + datum/element/ridable.html | 5 + datum/element/rsd_interface.html | 1 + datum/element/rust.html | 2 + datum/element/sedated_mob.html | 1 + datum/element/series.html | 3 + datum/element/sideway_movement.html | 1 + datum/element/simple_flying.html | 2 + datum/element/skill_reward.html | 1 + datum/element/slapcrafting.html | 8 + datum/element/soft_landing.html | 2 + datum/element/squish.html | 3 + datum/element/squish_sound.html | 1 + datum/element/strippable.html | 5 + datum/element/structure_repair.html | 1 + datum/element/swabable.html | 1 + datum/element/tenacious.html | 2 + datum/element/tiny_mob_hunter.html | 1 + datum/element/tool_flash.html | 2 + datum/element/tool_renaming.html | 3 + datum/element/toy_talk.html | 2 + datum/element/tumor_corruption.html | 3 + datum/element/turf_z_transparency.html | 1 + datum/element/undertile.html | 1 + datum/element/unfriend_attacker.html | 2 + datum/element/update_icon_updates_onmob.html | 1 + datum/element/uplink_reimburse.html | 3 + datum/element/venomous.html | 2 + datum/element/volatile_gas_storage.html | 1 + datum/element/wall_engraver.html | 1 + datum/element/wall_smasher.html | 2 + datum/element/wall_tearer.html | 1 + datum/element/wall_walker.html | 1 + datum/element/weapon_description.html | 29 + datum/element/wearable_client_colour.html | 1 + datum/element/wears_collar.html | 1 + datum/element/web_walker.html | 1 + datum/element/window_smashing.html | 2 + datum/embed_data.html | 1 + datum/emote.html | 56 + datum/emote/living/mark_turf.html | 1 + datum/emote/living/yawn.html | 1 + datum/emote/slime/mood.html | 1 + datum/equilibrium.html | 14 + datum/ert.html | 1 + datum/escape_menu.html | 1 + datum/event_admin_setup.html | 2 + .../event_admin_setup/anomaly_ectoplasm.html | 1 + datum/event_admin_setup/carp_migration.html | 1 + datum/event_admin_setup/input_number.html | 1 + datum/event_admin_setup/listed_options.html | 4 + .../disease_outbreak_advanced/severity.html | 2 + .../event_admin_setup/mass_hallucination.html | 1 + .../minimum_candidate_requirement.html | 1 + datum/event_admin_setup/multiple_choice.html | 1 + datum/event_admin_setup/question.html | 1 + datum/event_admin_setup/set_location.html | 1 + .../syndicate_cargo_pod.html | 1 + datum/event_admin_setup/text_input.html | 3 + datum/event_admin_setup/warn_admin.html | 2 + datum/events.html | 7 + datum/examine_panel.html | 1 + datum/excited_group.html | 1 + datum/exoscan.html | 1 + datum/experiment.html | 18 + datum/experiment/exploration_scan/random.html | 1 + datum/experiment/ordnance.html | 9 + datum/experiment/ordnance/explosive.html | 3 + datum/experiment/ordnance/gaseous.html | 1 + datum/experiment/physical.html | 1 + datum/experiment/scanning.html | 39 + datum/experiment/scanning/fish.html | 9 + .../experiment/scanning/fish/holographic.html | 1 + datum/experiment/scanning/people.html | 1 + .../scanning/people/novel_organs.html | 1 + datum/experiment/scanning/points.html | 1 + .../points/machinery_pinpoint_scan.html | 5 + .../points/machinery_tiered_scan.html | 3 + datum/experiment/scanning/random.html | 1 + .../experiment/scanning/random/material.html | 1 + .../scanning/random/mecha_damage_scan.html | 1 + datum/experiment/scanning/random/plants.html | 1 + datum/experiment/scanning/reagent.html | 1 + datum/exploration_event.html | 1 + datum/exploration_event/simple.html | 1 + datum/exploration_event/simple/resource.html | 1 + datum/exploration_event/simple/trader.html | 1 + datum/exploration_site.html | 1 + datum/export.html | 4 + datum/export/food.html | 2 + datum/export/large/gas_canister.html | 11 + datum/export/photocopy.html | 1 + datum/export/pirate.html | 1 + datum/export/pirate/ransom.html | 1 + datum/export_report.html | 1 + datum/fantasy_affix.html | 1 + datum/fax_panel_interface.html | 6 + datum/feed_channel.html | 7 + datum/feed_comment.html | 1 + datum/feed_message.html | 1 + datum/feed_network.html | 1 + datum/fish_evolution.html | 7 + datum/fish_evolution/dummy/two.html | 1 + datum/fish_movement.html | 7 + datum/fish_movement/accelerando.html | 1 + datum/fish_movement/choppy.html | 1 + datum/fish_movement/plunger.html | 1 + datum/fish_source.html | 13 + datum/fish_source/portal.html | 1 + datum/fish_source/portal/random.html | 2 + datum/fish_trait.html | 3 + datum/fish_trait/anxiety.html | 2 + datum/fishing_challenge.html | 1 + datum/fluid_group.html | 26 + datum/font.html | 9 + datum/food_prefs_menu.html | 1 + datum/food_processor_process.html | 1 + datum/foreign_calendar.html | 1 + datum/forensics.html | 24 + datum/gas.html | 1 + datum/gas_machine_connector.html | 1 + datum/gas_mixture.html | 88 + datum/gas_mixture/turf.html | 1 + datum/gas_reaction.html | 31 + datum/gas_reaction/bzformation.html | 3 + datum/gas_reaction/freonfire.html | 3 + datum/gas_reaction/freonformation.html | 3 + datum/gas_reaction/h2fire.html | 4 + datum/gas_reaction/halon_o2removal.html | 4 + datum/gas_reaction/healium_formation.html | 2 + datum/gas_reaction/miaster.html | 2 + datum/gas_reaction/nitrium_decomposition.html | 4 + datum/gas_reaction/nitrium_formation.html | 4 + datum/gas_reaction/nitrous_decomp.html | 3 + datum/gas_reaction/nitrousformation.html | 4 + datum/gas_reaction/nobliumformation.html | 5 + datum/gas_reaction/plasmafire.html | 4 + datum/gas_reaction/pluox_formation.html | 3 + .../proto_nitrate_bz_response.html | 2 + .../gas_reaction/proto_nitrate_formation.html | 2 + .../proto_nitrate_hydrogen_response.html | 3 + .../proto_nitrate_tritium_response.html | 4 + datum/gas_reaction/tritfire.html | 5 + datum/gas_reaction/water_vapor.html | 3 + datum/gas_reaction/zauker_decomp.html | 3 + datum/gas_reaction/zauker_formation.html | 3 + datum/gas_recipe.html | 3 + datum/gateway_destination.html | 6 + datum/gateway_destination/gateway.html | 1 + datum/gateway_destination/point.html | 1 + datum/glass_style.html | 12 + datum/glass_style/has_foodtype.html | 1 + datum/global_funny_embedding.html | 5 + datum/golem_food_buff.html | 1 + datum/golem_food_buff/iron.html | 1 + datum/grand_finale.html | 8 + datum/grand_finale/armageddon.html | 1 + datum/grand_finale/clown.html | 1 + datum/grand_finale/immortality.html | 2 + datum/grand_finale/usurp.html | 5 + datum/grand_side_effect.html | 11 + datum/grand_side_effect/create_anomalies.html | 1 + .../grand_side_effect/spawn_delayed_mobs.html | 1 + datum/grand_side_effect/spell.html | 1 + datum/grand_side_effect/summon_crewmate.html | 1 + datum/grand_side_effect/translocate.html | 1 + datum/greyscale_config.html | 3 + datum/greyscale_layer.html | 13 + datum/greyscale_modify_menu.html | 6 + datum/guardian_fluff.html | 2 + datum/gutlunch_inherited_stats.html | 1 + datum/hallucination.html | 5 + datum/hallucination/battle/bomb.html | 1 + datum/hallucination/battle/e_sword.html | 1 + datum/hallucination/battle/gun.html | 1 + datum/hallucination/battle/harm_baton.html | 1 + datum/hallucination/battle/stun_prod.html | 1 + datum/hallucination/body.html | 1 + datum/hallucination/body/staticguy.html | 1 + datum/hallucination/bolts.html | 1 + datum/hallucination/chat.html | 1 + datum/hallucination/death.html | 1 + datum/hallucination/death/dust.html | 1 + datum/hallucination/delusion.html | 3 + datum/hallucination/fake_alert.html | 1 + datum/hallucination/fake_health_doll.html | 3 + datum/hallucination/fake_item.html | 1 + datum/hallucination/fake_sound.html | 1 + .../hallucination/fake_sound/normal/mech.html | 1 + datum/hallucination/fake_sound/weird.html | 1 + datum/hallucination/fire.html | 1 + datum/hallucination/hazard.html | 1 + datum/hallucination/ice.html | 1 + datum/hallucination/nearby_fake_item.html | 1 + datum/hallucination/oh_yeah.html | 1 + datum/hallucination/screwy_hud.html | 1 + .../station_message/heretic.html | 3 + datum/hallucination/xeno_attack.html | 1 + datum/heretic_knowledge.html | 79 + datum/heretic_knowledge/blade_dance.html | 3 + datum/heretic_knowledge/blade_upgrade.html | 9 + .../blade_upgrade/blade.html | 1 + .../blade_upgrade/cosmic.html | 1 + .../blade_upgrade/flesh.html | 1 + datum/heretic_knowledge/cold_snap.html | 1 + datum/heretic_knowledge/cosmic_grasp.html | 1 + datum/heretic_knowledge/curse.html | 1 + datum/heretic_knowledge/duel_stance.html | 1 + datum/heretic_knowledge/feast_of_owls.html | 1 + .../heretic_knowledge/hunt_and_sacrifice.html | 40 + datum/heretic_knowledge/knowledge_ritual.html | 1 + datum/heretic_knowledge/limited_amount.html | 3 + .../limited_amount/flesh_ghoul.html | 1 + .../limited_amount/flesh_grasp.html | 1 + .../limited_amount/risen_corpse.html | 1 + .../limited_amount/starting.html | 4 + .../limited_amount/starting/base_ash.html | 26 + .../limited_amount/starting/base_blade.html | 30 + .../limited_amount/starting/base_cosmic.html | 25 + .../limited_amount/starting/base_flesh.html | 25 + .../limited_amount/starting/base_knock.html | 23 + .../limited_amount/starting/base_moon.html | 26 + .../limited_amount/starting/base_rust.html | 30 + .../limited_amount/starting/base_void.html | 27 + datum/heretic_knowledge/living_heart.html | 3 + datum/heretic_knowledge/mark.html | 11 + datum/heretic_knowledge/rifle_ammo.html | 1 + datum/heretic_knowledge/spell.html | 1 + datum/heretic_knowledge/summon.html | 1 + datum/heretic_knowledge/ultimate.html | 1 + .../heretic_knowledge/ultimate/ash_final.html | 1 + .../ultimate/cosmic_final.html | 1 + .../ultimate/rust_final.html | 3 + .../ultimate/void_final.html | 5 + datum/hfr_fuel.html | 1 + datum/highlander_controller.html | 16 + datum/holiday.html | 1 + datum/holiday/nth_week.html | 1 + datum/holocall.html | 1 + datum/hook_and_move.html | 6 + datum/http_request.html | 1 + datum/hud.html | 31 + datum/hud/borer.html | 1 + datum/hud/ooze.html | 1 + datum/human_appearance_profile.html | 1 + datum/ice_cream_flavour.html | 1 + datum/id_trim.html | 1 + datum/id_trim/job.html | 4 + datum/id_trim/job/captain.html | 1 + datum/id_trim/job/security_officer.html | 1 + datum/idle_behavior/idle_dog.html | 1 + datum/idle_behavior/idle_dog/chadian.html | 1 + datum/idle_behavior/idle_ghost_item.html | 1 + datum/idle_behavior/idle_monkey.html | 1 + datum/idle_behavior/idle_random_walk.html | 1 + .../idle_random_walk/no_target.html | 1 + .../idle_random_walk/not_while_on_target.html | 1 + .../idle_random_walk/parrot.html | 1 + datum/idle_behavior/walk_near_target.html | 1 + datum/infuser_entry.html | 5 + datum/instability_meltdown.html | 1 + datum/instrument.html | 5 + datum/instrument_key.html | 2 + datum/interaction.html | 1 + datum/interview.html | 15 + datum/interview_manager.html | 48 + datum/ip_intel.html | 1 + datum/job.html | 27 + datum/job/nanotrasen_consultant.html | 4 + datum/job/security_officer.html | 1 + datum/job_config_type.html | 9 + datum/job_department.html | 3 + datum/jps_node.html | 1 + datum/json_database.html | 22 + datum/json_reader.html | 2 + datum/json_savefile.html | 11 + datum/keybinding/human/quick_equip_belt.html | 1 + datum/known_alts.html | 3 + datum/language.html | 17 + datum/language_holder.html | 7 + datum/language_holder_adjustor.html | 5 + datum/laser_weapon_mode.html | 1 + .../disabler_machinegun.html | 1 + datum/laser_weapon_mode/marksman.html | 1 + datum/latejoin_menu.html | 3 + datum/lazy_template.html | 2 + datum/lazy_template/deathmatch.html | 1 + datum/lazy_template/virtual_domain.html | 11 + .../virtual_domain/beach_bar.html | 1 + .../virtual_domain/breeze_bay.html | 1 + .../virtual_domain/grasslands_hunt.html | 1 + .../virtual_domain/island_brawl.html | 1 + datum/light_source.html | 19 + datum/light_template.html | 3 + datum/light_template/read_light.html | 1 + datum/lighting_corner.html | 1 + datum/lighting_object.html | 1 + datum/liquid_group.html | 1 + datum/loadout_category.html | 3 + datum/loadout_item.html | 47 + datum/loadout_item/accessory.html | 1 + datum/log_category.html | 9 + datum/log_entry.html | 3 + datum/log_holder.html | 5 + datum/looping_sound.html | 20 + datum/looping_sound/lewd.html | 1 + datum/lootpanel.html | 7 + datum/lua_editor.html | 1 + datum/lua_state.html | 1 + datum/mafia_ability.html | 24 + datum/mafia_ability/attack_player.html | 2 + datum/mafia_ability/attack_visitors.html | 2 + datum/mafia_ability/changeling_kill.html | 4 + datum/mafia_ability/flicker_rampage.html | 3 + datum/mafia_ability/heal.html | 3 + datum/mafia_ability/investigate.html | 2 + datum/mafia_ability/reaveal_role.html | 3 + datum/mafia_ability/roleblock.html | 3 + datum/mafia_ability/seance.html | 3 + datum/mafia_ability/self_reveal.html | 3 + datum/mafia_ability/thoughtfeeder.html | 2 + datum/mafia_ability/vest.html | 2 + datum/mafia_ability/voting.html | 2 + datum/mafia_controller.html | 161 ++ datum/mafia_role.html | 13 + datum/mafia_role/obsessed.html | 1 + datum/manifest.html | 8 + datum/map_config.html | 1 + datum/map_generator.html | 2 + datum/map_generator/cave_generator.html | 29 + .../map_generator/cave_generator/icemoon.html | 1 + .../cave_generator/lavaland.html | 1 + .../cave_generator/moonstation/cave.html | 1 + .../map_generator/cave_generator/trench.html | 1 + datum/map_generator/jungle_generator.html | 1 + datum/map_generator/ocean_generator.html | 1 + datum/map_report.html | 1 + datum/map_template.html | 1 + datum/map_template/automap_template.html | 1 + datum/map_template/basketball.html | 1 + datum/map_template/ctf.html | 1 + datum/map_template/holodeck.html | 1 + datum/map_template/mafia.html | 1 + datum/map_template/ruin.html | 1 + datum/map_template/shuttle.html | 5 + datum/map_template/shuttle/emergency.html | 1 + .../map_template/shuttle/emergency/arena.html | 1 + .../shuttle/emergency/narnar.html | 1 + datum/market.html | 8 + datum/market_item.html | 5 + datum/market_item/hostage.html | 1 + datum/market_purchase.html | 3 + datum/martial_art.html | 111 + datum/martial_art/boxing.html | 3 + datum/martial_art/boxing/hunter.html | 3 + datum/martial_art/cqc.html | 1 + datum/martial_art/cqc/under_siege.html | 1 + datum/martial_art/the_sleeping_carp.html | 1 + datum/material.html | 38 + datum/material/alloy.html | 1 + datum/material/alloy/alien.html | 14 + datum/material/alloy/plasmaglass.html | 8 + datum/material/alloy/plasteel.html | 11 + datum/material/alloy/plastitanium.html | 8 + datum/material/alloy/plastitaniumglass.html | 8 + datum/material/alloy/titaniumglass.html | 8 + datum/maturity_prompt.html | 1 + datum/medical_note.html | 1 + datum/memory.html | 41 + datum/memory/bomb_defuse_success.html | 1 + datum/memory/dna_infusion.html | 1 + datum/memory/good_drink.html | 1 + datum/memory/good_food.html | 1 + datum/memory/high_five.html | 1 + datum/memory/key.html | 3 + datum/memory/playing_cards.html | 1 + datum/memory/received_medal.html | 1 + datum/memory/surgery.html | 1 + datum/memory/was_dismembered.html | 1 + datum/memory/witnessed_russian_roulette.html | 1 + datum/merger.html | 1 + datum/micro_organism.html | 1 + datum/micro_organism/cell_line.html | 1 + datum/mind.html | 32 + datum/mod_link.html | 1 + datum/mod_link_call.html | 1 + datum/mod_part.html | 1 + datum/mod_theme.html | 1 + datum/modular_mob_segment.html | 1 + datum/modular_persistence.html | 1 + datum/mold_type.html | 29 + datum/mold_type/disease.html | 4 + datum/mold_type/emp.html | 3 + datum/mold_type/fire.html | 5 + datum/mold_type/radioactive.html | 4 + datum/mold_type/toxic.html | 4 + datum/mood.html | 21 + datum/mood_event.html | 5 + datum/mood_event/area.html | 23 + datum/mood_event/drunk.html | 1 + datum/move_loop.html | 15 + datum/move_loop/has_target.html | 1 + datum/move_loop/has_target/dist_bound.html | 1 + datum/move_loop/has_target/jps.html | 1 + datum/move_loop/has_target/move_towards.html | 7 + datum/move_loop/smooth_move.html | 1 + datum/move_manager.html | 147 ++ datum/movement_detector.html | 3 + datum/movement_packet.html | 7 + datum/movespeed_modifier.html | 1 + datum/mutation/human.html | 15 + datum/mutation/human/acidflesh.html | 1 + datum/mutation/human/adaptation.html | 1 + datum/mutation/human/chameleon.html | 18 + datum/mutation/human/elastic_arms.html | 1 + datum/mutation/human/extrastun.html | 1 + datum/mutation/human/glow.html | 1 + datum/mutation/human/hulk.html | 9 + datum/mutation/human/hulk/superhuman.html | 1 + datum/mutation/human/hulk/wizardly.html | 1 + datum/mutation/human/laser_eyes.html | 1 + datum/mutation/human/radioactive.html | 3 + datum/mutation/human/telekinesis.html | 1 + datum/newspanel.html | 15 + datum/nifsoft.html | 1 + datum/nifsoft/action_granter.html | 1 + datum/nifsoft/hivemind.html | 1 + datum/nifsoft/hud.html | 1 + datum/nifsoft/hypno.html | 1 + datum/nifsoft/scryer.html | 1 + datum/nifsoft/soul_poem.html | 6 + datum/nifsoft/soulcatcher.html | 1 + datum/nifsoft/summoner.html | 1 + datum/nobody_wants_to_learn_matrix_math.html | 5 + datum/ntnet_conversation.html | 1 + datum/objective.html | 1 + datum/objective/bloodsucker.html | 1 + .../bloodsucker/conversion/department.html | 1 + datum/objective/door_jack.html | 1 + datum/objective/heretic_research.html | 1 + datum/objective/heretic_summon.html | 1 + datum/objective/hijack.html | 1 + datum/objective/inspect_area.html | 1 + datum/objective/mutiny.html | 1 + datum/objective/sacrifice.html | 1 + datum/objective/survey.html | 1 + datum/objective_item.html | 7 + datum/objective_item_handler.html | 3 + datum/objective_target_machine_handler.html | 1 + datum/opposing_force.html | 1 + datum/opposing_force_equipment.html | 4 + datum/opposing_force_equipment/language.html | 1 + datum/opposing_force_objective.html | 1 + datum/opposing_force_selected_equipment.html | 1 + datum/orbit_menu.html | 8 + datum/orderable_item.html | 1 + datum/ore_silo_log.html | 11 + datum/orion_event.html | 21 + datum/outfit.html | 34 + datum/outfit/basketball.html | 1 + datum/outfit/beachbum_combat.html | 1 + datum/outfit/consumed_clown.html | 1 + datum/outfit/ctf.html | 1 + datum/outfit/deathmatch_loadout.html | 1 + datum/outfit/deathmatch_loadout/heresy.html | 1 + datum/outfit/job/assistant/gimmick.html | 1 + datum/outfit/syndicate.html | 1 + datum/overlay_info.html | 3 + datum/pai_candidate.html | 16 + datum/painting.html | 1 + datum/paper_field.html | 1 + datum/paper_input.html | 1 + datum/paper_stamp.html | 1 + datum/parsed_map.html | 12 + datum/particle_editor.html | 1 + datum/path_map.html | 24 + datum/pathfind.html | 9 + datum/pathfind/jps.html | 19 + datum/pathfind/sssp.html | 2 + datum/pda_chat.html | 6 + datum/pda_message.html | 1 + datum/pet_command.html | 8 + datum/pet_command/follow.html | 1 + datum/pet_command/follow/bee.html | 1 + datum/pet_command/minebot_ability.html | 1 + datum/pet_command/point_targeting.html | 1 + datum/pet_command/point_targeting/attack.html | 1 + .../point_targeting/attack/swirl.html | 1 + datum/pet_command/point_targeting/fetch.html | 2 + .../point_targeting/use_ability.html | 1 + datum/pet_command/protect_owner.html | 1 + datum/pet_command/untargeted_ability.html | 1 + datum/physiology.html | 9 + datum/picture.html | 1 + datum/pipe_icon_generator.html | 1 + datum/pipeline.html | 12 + datum/pirate_gang.html | 7 + datum/plane_master_debug.html | 5 + datum/plane_master_group.html | 7 + datum/plane_master_group/hudless.html | 1 + datum/plant_gene.html | 1 + datum/plant_gene/reagent.html | 2 + datum/plant_gene/trait.html | 1 + datum/plant_gene/trait/anti_magic.html | 1 + datum/plant_gene/trait/attack.html | 1 + datum/plant_gene/trait/backfire.html | 3 + .../plant_gene/trait/backfire/chili_heat.html | 1 + datum/plant_gene/trait/battery.html | 1 + datum/plant_gene/trait/brewing.html | 4 + datum/plant_gene/trait/eyes.html | 2 + datum/plant_gene/trait/gas_production.html | 2 + datum/plant_gene/trait/glow.html | 1 + datum/plant_gene/trait/juicing.html | 2 + datum/plant_gene/trait/maxchem.html | 3 + .../plant_gene/trait/mob_transformation.html | 1 + datum/plant_gene/trait/modified_volume.html | 1 + datum/plant_gene/trait/plant_laughter.html | 3 + datum/plant_gene/trait/repeated_harvest.html | 1 + datum/plant_gene/trait/slip.html | 1 + datum/player_details.html | 5 + datum/player_rank_controller.html | 60 + datum/pod_style.html | 2 + datum/point.html | 1 + datum/point/vector.html | 1 + datum/point_of_interest.html | 1 + datum/point_of_interest/mob_poi.html | 1 + datum/poll_option.html | 4 + datum/poll_question.html | 13 + datum/pollutant.html | 5 + datum/pollution.html | 1 + datum/port.html | 9 + datum/port/input.html | 15 + datum/port/output.html | 2 + datum/portrait_picker.html | 3 + datum/powernet.html | 1 + datum/preference.html | 85 + datum/preference/choiced.html | 22 + .../preference/choiced/digitigrade_legs.html | 6 + datum/preference/choiced/genital.html | 7 + datum/preference/choiced/mutant_choice.html | 16 + datum/preference/loadout.html | 4 + datum/preference/name.html | 1 + datum/preference/numeric.html | 1 + datum/preference/numeric/hair_opacity.html | 7 + datum/preference/text.html | 1 + datum/preference/text/headshot.html | 1 + datum/preference/toggle.html | 1 + datum/preference/toggle/emissive.html | 1 + datum/preference/toggle/eye_emissives.html | 1 + datum/preference_middleware.html | 7 + datum/preference_middleware/blooper.html | 1 + datum/preference_middleware/languages.html | 15 + datum/preference_middleware/loadout.html | 1 + datum/preference_middleware/tts.html | 1 + datum/preferences.html | 42 + datum/prisoner_crime.html | 1 + datum/progressbar.html | 3 + datum/promise.html | 6 + datum/proximity_monitor.html | 1 + datum/proximity_monitor/advanced.html | 16 + .../advanced/ai_target_tracking.html | 3 + .../advanced/demoraliser.html | 13 + .../advanced/elevator_music_area.html | 1 + .../advanced/gravity/warns_on_entrance.html | 3 + .../advanced/quirk_posters.html | 1 + .../proximity_monitor/advanced/soul_poem.html | 1 + .../proximity_monitor/advanced/timestop.html | 1 + datum/puzzgrid.html | 3 + datum/qdel_item.html | 1 + datum/queue_link.html | 1 + datum/quirk.html | 22 + datum/quirk/all_nighter.html | 9 + datum/quirk/bad_touch.html | 1 + datum/quirk/badback.html | 1 + datum/quirk/blooddeficiency.html | 1 + datum/quirk/claustrophobia.html | 1 + datum/quirk/echolocation.html | 1 + datum/quirk/equipping.html | 1 + datum/quirk/equipping/entombed.html | 1 + datum/quirk/equipping/nerve_staple.html | 1 + datum/quirk/gamer.html | 9 + datum/quirk/heterochromatic.html | 1 + datum/quirk/indebted.html | 1 + datum/quirk/insanity.html | 1 + datum/quirk/item_quirk.html | 10 + datum/quirk/item_quirk/addict.html | 1 + datum/quirk/item_quirk/addict/alcoholic.html | 1 + datum/quirk/item_quirk/bald.html | 1 + datum/quirk/item_quirk/family_heirloom.html | 1 + datum/quirk/item_quirk/food_allergic.html | 1 + datum/quirk/item_quirk/settler.html | 1 + datum/quirk/item_quirk/spiritual.html | 1 + datum/quirk/no_appendix.html | 1 + datum/quirk/nyctophobia.html | 1 + datum/quirk/prosthetic_limb.html | 1 + datum/quirk/prosthetic_organ.html | 1 + datum/quirk/social_anxiety.html | 1 + datum/quirk/spacer_born.html | 21 + datum/quirk/touchy.html | 1 + datum/quirk_constant_data.html | 3 + datum/radial_menu.html | 1 + datum/radial_menu/persistent.html | 1 + datum/radial_menu_choice.html | 1 + datum/radio_frequency.html | 1 + datum/raptor_inheritance.html | 1 + datum/rat_fashion.html | 1 + datum/reagent.html | 38 + datum/reagent/ants.html | 1 + datum/reagent/blob.html | 1 + datum/reagent/blood/bloodsucker.html | 2 + datum/reagent/catalyst_agent.html | 2 + datum/reagent/colorful_reagent.html | 1 + datum/reagent/consumable.html | 1 + datum/reagent/consumable/ethanol.html | 20 + .../consumable/ethanol/demonsblood.html | 1 + .../consumable/ethanol/devilskiss.html | 1 + datum/reagent/consumable/frostoil.html | 1 + .../consumable/nutriment/cloth_fibers.html | 1 + datum/reagent/consumable/rootbeer.html | 1 + datum/reagent/determination.html | 1 + datum/reagent/drug/aphrodisiac.html | 52 + .../aphrodisiac/camphor/pentacamphor.html | 1 + datum/reagent/drug/aphrodisiac/crocin.html | 1 + .../drug/aphrodisiac/crocin/hexacrocin.html | 1 + datum/reagent/drug/aphrodisiac/dopamine.html | 1 + .../drug/aphrodisiac/incubus_draft.html | 8 + .../drug/aphrodisiac/succubus_milk.html | 5 + datum/reagent/drug/blastoff.html | 1 + datum/reagent/drug/demoneye.html | 1 + datum/reagent/drug/saturnx.html | 1 + datum/reagent/drug/twitch.html | 1 + datum/reagent/eigenstate.html | 1 + datum/reagent/impurity/inacusiate.html | 1 + datum/reagent/impurity/mannitol.html | 1 + datum/reagent/inverse.html | 1 + datum/reagent/inverse/aiuri.html | 1 + datum/reagent/inverse/corazargh.html | 1 + datum/reagent/inverse/cryostylane.html | 1 + datum/reagent/inverse/healing/syriniver.html | 1 + datum/reagent/inverse/ichiyuri.html | 1 + datum/reagent/inverse/oculine.html | 1 + datum/reagent/inverse/penthrite.html | 5 + datum/reagent/lube.html | 1 + datum/reagent/medicine/adminordrazine.html | 1 + datum/reagent/medicine/antihol.html | 3 + datum/reagent/medicine/c2/penthrite.html | 1 + datum/reagent/medicine/c2/seiver.html | 1 + datum/reagent/medicine/c2/tirimol.html | 1 + datum/reagent/medicine/coagulant.html | 1 + datum/reagent/medicine/earthsblood.html | 1 + datum/reagent/medicine/nanite_slurry.html | 1 + datum/reagent/medicine/neurine.html | 1 + datum/reagent/medicine/oculine.html | 1 + datum/reagent/medicine/strange_reagent.html | 1 + datum/reagent/metalgen.html | 1 + datum/reagent/toxin.html | 1 + datum/reagent/toxin/plasma.html | 1 + datum/reagent/toxin/venom.html | 1 + datum/reagent/uranium.html | 1 + datum/reagent/water.html | 1 + datum/reagent/yuck.html | 1 + datum/reagents.html | 232 ++ datum/reagents/plumbing.html | 12 + datum/reality_smash_tracker.html | 13 + datum/record.html | 1 + datum/record/crew.html | 22 + datum/record/locked.html | 1 + datum/religion_rites.html | 1 + datum/religion_rites/adapted_food.html | 1 + datum/religion_rites/blazing_star.html | 1 + datum/religion_rites/burning_sacrifice.html | 1 + datum/religion_rites/ceremonial_weapon.html | 1 + datum/religion_rites/deaconize.html | 1 + datum/religion_rites/fireproof.html | 1 + .../nullrod_transformation.html | 1 + .../religion_rites/portable_song_tuning.html | 1 + datum/religion_rites/ritual_totem.html | 1 + datum/religion_rites/song_tuner.html | 17 + datum/religion_rites/song_tuner/light.html | 1 + datum/religion_rites/song_tuner/lullaby.html | 1 + datum/religion_rites/sparring_contract.html | 1 + datum/religion_rites/summon_rules.html | 1 + datum/religion_sect.html | 3 + datum/religion_sect/honorbound.html | 3 + datum/religion_sect/spar.html | 1 + datum/replica_fabricator_output.html | 1 + datum/request.html | 1 + datum/request_manager.html | 51 + datum/request_message.html | 1 + datum/required_item.html | 1 + datum/riding_minigame.html | 1 + datum/robot_energy_storage.html | 1 + datum/robot_energy_storage/material.html | 1 + datum/round_event.html | 11 + datum/round_event/anomaly.html | 1 + .../anomaly/anomaly_dimensional.html | 1 + .../anomaly/anomaly_ectoplasm.html | 1 + datum/round_event/antagonist.html | 1 + datum/round_event/brand_intelligence.html | 1 + datum/round_event/carp_migration.html | 1 + datum/round_event/disease_outbreak.html | 1 + .../disease_outbreak/advanced.html | 3 + datum/round_event/earthquake.html | 1 + datum/round_event/falsealarm.html | 1 + datum/round_event/ghost_role.html | 6 + .../ghost_role/bitrunning_glitch.html | 1 + datum/round_event/ghost_role/fugitives.html | 1 + datum/round_event/ghost_role/sentience.html | 1 + datum/round_event/grey_tide.html | 1 + datum/round_event/heart_attack.html | 4 + datum/round_event/immovable_rod.html | 1 + datum/round_event/market_crash.html | 1 + datum/round_event/mass_hallucination.html | 1 + datum/round_event/pirates.html | 1 + datum/round_event/portal_storm.html | 1 + datum/round_event/radiation_leak.html | 2 + datum/round_event/sandstorm.html | 1 + datum/round_event/scrubber_overflow.html | 1 + datum/round_event/scrubber_overflow/ices.html | 1 + datum/round_event/shuttle_loan.html | 1 + datum/round_event/spacevine.html | 1 + datum/round_event/stray_cargo.html | 5 + datum/round_event/stray_cargo/syndicate.html | 1 + datum/round_event/stray_meteor.html | 1 + datum/round_event/supermatter_surge.html | 1 + datum/round_event/tram_malfunction.html | 1 + datum/round_event/vent_clog.html | 11 + datum/round_event/wisdomcow.html | 1 + datum/round_event/wizard/deprevolt.html | 1 + datum/round_event/wizard/madness.html | 1 + datum/round_event/wizard/petsplosion.html | 1 + datum/round_event_control.html | 7 + datum/round_event_control/antagonist.html | 1 + .../bitrunning_glitch.html | 1 + .../round_event_control/disease_outbreak.html | 4 + datum/round_event_control/grid_check.html | 3 + datum/round_event_control/heart_attack.html | 4 + datum/round_event_control/market_crash.html | 2 + datum/round_event_control/sandstorm.html | 5 + .../sandstorm_classic.html | 4 + datum/round_event_control/shuttle_loan.html | 1 + .../supermatter_surge.html | 5 + datum/round_event_control/valentines.html | 1 + .../wizard/embedpocalypse.html | 1 + .../wizard/petsplosion.html | 1 + datum/rpgloot_controller.html | 13 + datum/rpgtitle_controller.html | 3 + datum/scan_condition.html | 1 + datum/scanner_controller.html | 1 + datum/scar.html | 10 + datum/scheduled_event.html | 1 + datum/scientific_paper.html | 39 + datum/scientific_paper/explosive.html | 3 + datum/scientific_paper/gaseous.html | 5 + datum/scientific_partner.html | 1 + datum/screen_object_holder.html | 2 + datum/scripture.html | 1 + datum/scripture/create_structure.html | 1 + datum/scripture/slab.html | 1 + datum/search_object.html | 2 + datum/security_level.html | 3 + datum/security_level/amber.html | 2 + datum/security_level/blue.html | 2 + datum/security_level/delta.html | 2 + datum/security_level/epsilon.html | 2 + datum/security_level/gamma.html | 2 + datum/security_level/green.html | 3 + datum/security_level/orange.html | 2 + datum/security_level/red.html | 2 + datum/security_level/violet.html | 2 + datum/select_equipment.html | 26 + datum/shuttle_event.html | 5 + datum/shuttle_event/simple_spawner.html | 1 + .../simple_spawner/carp/friendly.html | 1 + .../simple_spawner/meteor/dust.html | 1 + .../simple_spawner/player_controlled.html | 1 + .../player_controlled/carp.html | 1 + .../player_controlled/human.html | 1 + .../simple_spawner/projectile.html | 1 + datum/shuttle_event/turbulence.html | 1 + datum/shuttle_loan_situation.html | 1 + datum/signal.html | 7 + datum/signal/subspace.html | 17 + .../subspace/messaging/tablet_message.html | 3 + datum/signal/subspace/vocal.html | 1 + datum/simple_research.html | 1 + datum/skill.html | 16 + datum/slime_type.html | 1 + datum/sm_delam.html | 26 + datum/sm_delam/cascade.html | 1 + datum/sm_gas.html | 3 + datum/sm_gas/bz.html | 1 + datum/sm_gas/carbon_dioxide.html | 1 + datum/sm_gas/miasma.html | 1 + datum/smite.html | 5 + datum/smite/bad_luck.html | 1 + datum/smite/berforate.html | 1 + datum/smite/curse_of_babel.html | 1 + datum/smite/custom_imaginary_friend.html | 5 + datum/smite/objectify.html | 1 + datum/smite/supply_pod_quick.html | 1 + datum/song.html | 32 + datum/sort_instance.html | 11 + datum/sortrouter_filter.html | 1 + datum/sortrouter_filter/is_path_specific.html | 1 + datum/spacevine_controller.html | 1 + datum/spacevine_mutation.html | 1 + .../spacevine_mutation/aggressive_spread.html | 1 + datum/spacevine_mutation/vine_eating.html | 1 + datum/sparring_match.html | 1 + datum/spatial_grid_cell.html | 3 + datum/species.html | 212 ++ datum/species/akula.html | 1 + datum/species/dullahan.html | 1 + datum/species/ethereal.html | 1 + datum/species/human/felinid.html | 1 + datum/species/jelly/luminescent.html | 1 + datum/species/jelly/stargazer.html | 1 + datum/species/lizard.html | 1 + datum/species/lizard/silverscale.html | 1 + datum/species/mutant.html | 1 + datum/species/mutant/infectious.html | 1 + datum/species/mutant/infectious/fast.html | 1 + datum/species/mutant/infectious/slow.html | 1 + datum/species/plasmaman.html | 1 + datum/species/snail.html | 1 + datum/species/synthetic.html | 11 + datum/species/vampire.html | 1 + datum/species/zombie.html | 1 + datum/spellbook_entry.html | 35 + datum/spellbook_entry/item.html | 1 + datum/sprite_accessory.html | 9 + datum/sprite_accessory/bra.html | 1 + datum/sprite_accessory/genital.html | 1 + datum/sprite_accessory/gradient.html | 1 + datum/sprite_accessory/socks.html | 1 + datum/sprite_accessory/synth_chassis.html | 1 + datum/sprite_accessory/synth_head.html | 1 + datum/sprite_accessory/tails.html | 1 + datum/sprite_accessory/taur.html | 1 + datum/sprite_accessory/undershirt.html | 1 + datum/sprite_accessory/underwear.html | 1 + datum/sprite_accessory/wings.html | 4 + datum/spy_bounty.html | 54 + datum/spy_bounty/machine.html | 5 + datum/spy_bounty/machine/random.html | 1 + datum/spy_bounty/objective_item.html | 1 + datum/spy_bounty/some_bot.html | 1 + datum/spy_bounty/targets_person.html | 9 + .../spy_bounty/targets_person/some_item.html | 1 + datum/spy_bounty_handler.html | 16 + datum/stack_canary.html | 1 + datum/stack_end_detector.html | 6 + datum/stack_recipe.html | 1 + datum/stack_recipe/radial.html | 1 + datum/station_alert.html | 1 + datum/station_goal/bluespace_cannon.html | 2 + datum/station_goal/station_shield.html | 3 + datum/station_request.html | 2 + datum/station_state.html | 7 + datum/station_trait.html | 1 + datum/station_trait/birthday.html | 1 + .../station_trait/cybernetic_revolution.html | 1 + datum/station_trait/ian_adventure.html | 1 + datum/station_trait/job.html | 2 + datum/station_trait/job/bridge_assistant.html | 1 + datum/station_trait/job/cargorilla.html | 1 + datum/station_trait/job/human_ai.html | 1 + datum/station_trait/nebula.html | 1 + datum/station_trait/nebula/hostile.html | 1 + .../nebula/hostile/radiation.html | 1 + .../random_event_weight_modifier.html | 1 + .../station_trait/revolutionary_trashing.html | 3 + datum/station_trait/skub.html | 1 + datum/status_effect.html | 46 + datum/status_effect/agent_pinpointer.html | 1 + datum/status_effect/ants.html | 1 + datum/status_effect/ashwalker_damage.html | 1 + datum/status_effect/basilisk_overheat.html | 1 + datum/status_effect/bioware.html | 2 + datum/status_effect/blood_regen_active.html | 1 + .../status_effect/blood_thirst_satiated.html | 1 + datum/status_effect/bugkiller_death.html | 2 + datum/status_effect/choke.html | 1 + datum/status_effect/cloudstruck.html | 1 + datum/status_effect/confusion.html | 1 + datum/status_effect/cosmic_beam.html | 5 + datum/status_effect/crusher_damage.html | 1 + datum/status_effect/decloning.html | 1 + datum/status_effect/dizziness.html | 1 + datum/status_effect/drowsiness.html | 1 + datum/status_effect/drugginess.html | 1 + datum/status_effect/eigenstasium.html | 1 + datum/status_effect/eldritch.html | 2 + datum/status_effect/eldritch/ash.html | 1 + datum/status_effect/eldritch/blade.html | 1 + datum/status_effect/eldritch/cosmic.html | 1 + datum/status_effect/eldritch/moon.html | 1 + datum/status_effect/exercised.html | 1 + datum/status_effect/eye_blur.html | 3 + datum/status_effect/fire_blasted.html | 2 + datum/status_effect/fire_handler.html | 5 + .../fire_handler/fire_stacks.html | 14 + .../fire_handler/wet_stacks.html | 1 + datum/status_effect/fire_ring.html | 1 + datum/status_effect/food.html | 1 + datum/status_effect/food/quality_healing.html | 1 + datum/status_effect/frenzy.html | 1 + datum/status_effect/genetic_damage.html | 1 + datum/status_effect/ghoul.html | 1 + datum/status_effect/goldeneye_pinpointer.html | 1 + datum/status_effect/golem.html | 1 + datum/status_effect/golem/bananium.html | 1 + datum/status_effect/golem/diamond.html | 1 + datum/status_effect/golem/plasma.html | 1 + datum/status_effect/golem/titanium.html | 1 + datum/status_effect/grouped.html | 1 + datum/status_effect/grouped/cursed.html | 2 + datum/status_effect/grouped/nearsighted.html | 1 + datum/status_effect/grouped/screwy_hud.html | 5 + datum/status_effect/guardian_scout_mode.html | 1 + datum/status_effect/guardian_stealth.html | 1 + datum/status_effect/hallucination.html | 6 + datum/status_effect/hallucination/sanity.html | 1 + datum/status_effect/heretic_curse.html | 1 + datum/status_effect/ice_block_talisman.html | 1 + .../incapacitating/sleeping.html | 1 + .../incapacitating/stamcrit.html | 1 + .../stun/goliath_tentacled.html | 1 + datum/status_effect/inebriated.html | 2 + datum/status_effect/inebriated/drunk.html | 2 + datum/status_effect/inflated.html | 1 + datum/status_effect/interdiction.html | 1 + datum/status_effect/jitter.html | 1 + datum/status_effect/limited_buff.html | 1 + .../limited_buff/health_buff.html | 1 + datum/status_effect/limp.html | 1 + datum/status_effect/lobster_rush.html | 3 + datum/status_effect/mayhem.html | 1 + datum/status_effect/midas_blight.html | 1 + datum/status_effect/moon_converted.html | 1 + datum/status_effect/next_shove_stuns.html | 3 + datum/status_effect/offering.html | 10 + .../no_item_received/needs_resting.html | 4 + datum/status_effect/organ_set_bonus.html | 1 + .../status_effect/organ_set_bonus/roach.html | 1 + datum/status_effect/overwatch.html | 1 + datum/status_effect/protective_blades.html | 4 + .../protective_blades/recharging.html | 2 + datum/status_effect/protector_shield.html | 1 + datum/status_effect/psychic_projection.html | 1 + datum/status_effect/shadow_cloak.html | 2 + datum/status_effect/shadow_regeneration.html | 1 + datum/status_effect/shapechange_mob.html | 11 + .../shapechange_mob/from_spell.html | 1 + datum/status_effect/silenced.html | 1 + datum/status_effect/slime_food.html | 1 + datum/status_effect/slime_leech.html | 1 + datum/status_effect/slimed.html | 1 + datum/status_effect/song/light.html | 1 + datum/status_effect/space_regeneration.html | 1 + datum/status_effect/spacer.html | 3 + .../spacer/gravity_sickness.html | 1 + .../spacer/gravity_wellness.html | 1 + datum/status_effect/speech.html | 6 + datum/status_effect/speech/slurring.html | 1 + datum/status_effect/speech/stutter.html | 1 + .../speech/stutter/derpspeech.html | 1 + datum/status_effect/stabilized.html | 1 + datum/status_effect/stabilized/black.html | 1 + datum/status_effect/stabilized/pink.html | 1 + datum/status_effect/stabilized/purple.html | 1 + datum/status_effect/stacking.html | 13 + .../stacking/brimdust_coating.html | 3 + datum/status_effect/staggered.html | 3 + datum/status_effect/star_mark.html | 1 + datum/status_effect/static_vision.html | 1 + datum/status_effect/strandling.html | 3 + datum/status_effect/stun_absorption.html | 21 + datum/status_effect/teleport_flux.html | 1 + datum/status_effect/teleport_flux/perma.html | 5 + .../temporary_transformation.html | 2 + .../temporary_transformation/trans_sting.html | 1 + datum/status_effect/terrified.html | 8 + datum/status_effect/tox_vomit.html | 1 + datum/status_effect/unholy_determination.html | 1 + datum/status_effect/void_chill.html | 5 + datum/status_effect/void_prison.html | 1 + datum/status_effect/vulnerable_to_damage.html | 1 + datum/status_effect/wound.html | 1 + datum/stock_market_event.html | 3 + datum/stock_part.html | 16 + datum/storage.html | 118 + datum/storage/pod.html | 1 + datum/storage/rped.html | 11 + datum/storage/security.html | 1 + datum/storage_interface.html | 1 + datum/story_manager_interface.html | 1 + datum/storyteller.html | 1 + datum/strip_menu.html | 1 + datum/strippable_item.html | 27 + datum/strippable_item/hand.html | 1 + datum/strippable_item/mannequin_slot.html | 1 + datum/strippable_item/mob_item_slot.html | 1 + .../strippable_item/mob_item_slot/pocket.html | 1 + datum/summon_things_controller.html | 4 + datum/summon_things_controller/item.html | 1 + .../spellbook_entry.html | 1 + datum/supply_order.html | 1 + datum/supply_order/company_import.html | 1 + datum/supply_pack.html | 1 + datum/supply_pack/misc/syndicate.html | 1 + datum/supply_pack/misc/vanguard_surplus.html | 1 + datum/supply_pack/organic/pizza.html | 1 + datum/surgery.html | 5 + datum/surgery/advanced/bioware.html | 3 + datum/surgery/revival.html | 1 + datum/surgery/robot_healing.html | 1 + datum/surgery_step.html | 11 + datum/surgery_step/debride.html | 1 + datum/surgery_step/dress.html | 1 + .../surgery_step/experimental_dissection.html | 1 + datum/surgery_step/filter_blood.html | 8 + datum/surgery_step/heal.html | 1 + datum/surgery_step/heal/brute.html | 1 + datum/surgery_step/heal/burn.html | 1 + datum/surgery_step/heal/combo.html | 1 + datum/surgery_step/manipulate_organs.html | 1 + .../manipulate_organs/external.html | 1 + .../manipulate_organs/internal.html | 1 + datum/surgery_step/revive.html | 1 + datum/surgery_step/robot_heal.html | 12 + datum/symptom.html | 2 + datum/symptom/beard.html | 9 + datum/symptom/chills.html | 15 + datum/symptom/choking.html | 9 + datum/symptom/confusion.html | 9 + datum/symptom/cough.html | 9 + datum/symptom/deafness.html | 9 + datum/symptom/disfiguration.html | 9 + datum/symptom/dizzy.html | 9 + datum/symptom/fever.html | 15 + datum/symptom/fire.html | 9 + datum/symptom/itching.html | 1 + datum/symptom/sneeze.html | 1 + datum/symptom/visionloss.html | 1 + datum/syndicate_contract.html | 6 + datum/targeting_strategy.html | 2 + datum/targeting_strategy/basic.html | 1 + .../basic/holding_object.html | 3 + datum/targeting_strategy/basic/mook.html | 1 + datum/targeting_strategy/basic/mushroom.html | 1 + .../targeting_strategy/basic/not_friends.html | 1 + datum/targeting_strategy/basic/of_size.html | 1 + datum/targeting_strategy/lightgeist.html | 1 + datum/team.html | 8 + datum/team/abductor_team.html | 1 + datum/team/ashwalkers.html | 1 + datum/team/assault_operatives.html | 1 + datum/team/battlecruiser.html | 1 + datum/team/brother_team.html | 1 + datum/team/cult.html | 1 + datum/team/nation.html | 8 + datum/team/revolution.html | 11 + datum/team/xeno/captive.html | 1 + datum/techweb.html | 47 + datum/techweb/autounlocking.html | 3 + datum/techweb_node.html | 8 + datum/techweb_node/consoles.html | 1 + datum/techweb_node/cytology.html | 1 + datum/techweb_node/energy_manipulation.html | 1 + datum/techweb_node/fusion.html | 1 + datum/techweb_node/hydroponics.html | 1 + datum/techweb_node/robotics.html | 1 + datum/tgs_api/v5.html | 1 + datum/tgs_chat_channel.html | 1 + datum/tgs_chat_command.html | 7 + datum/tgs_chat_command/validated.html | 1 + datum/tgs_chat_embed/field.html | 1 + datum/tgs_chat_embed/footer.html | 1 + datum/tgs_chat_embed/media.html | 1 + datum/tgs_chat_embed/provider/author.html | 1 + datum/tgs_chat_embed/structure.html | 1 + datum/tgs_chat_user.html | 1 + datum/tgs_event_handler.html | 2 + datum/tgs_http_handler.html | 8 + datum/tgs_http_result.html | 5 + datum/tgs_message_content.html | 4 + datum/tgs_revision_information.html | 1 + .../tgs_revision_information/test_merge.html | 1 + datum/tgs_version.html | 1 + datum/tgui.html | 34 + datum/tgui_alert.html | 4 + datum/tgui_checkbox_input.html | 1 + datum/tgui_input_keycombo.html | 4 + datum/tgui_input_number.html | 4 + datum/tgui_input_text.html | 11 + datum/tgui_list_input.html | 4 + datum/tgui_panel.html | 20 + datum/tgui_say.html | 43 + datum/tgui_window.html | 49 + datum/thrownthing.html | 1 + datum/ticket_history.html | 1 + datum/ticket_history_holder.html | 1 + datum/tile_info.html | 7 + datum/timedevent.html | 11 + datum/tinker_cache_item.html | 1 + datum/tlv.html | 34 + datum/trackable.html | 15 + datum/trader_data.html | 6 + datum/traitor_objective.html | 17 + datum/traitor_objective/destroy_heirloom.html | 1 + .../destroy_heirloom/common.html | 1 + .../destroy_heirloom/rare.html | 1 + .../destroy_heirloom/uncommon.html | 1 + datum/traitor_objective/destroy_item.html | 1 + datum/traitor_objective/kill_pet.html | 1 + datum/traitor_objective/locate_weakpoint.html | 1 + .../traitor_objective/sabotage_machinery.html | 1 + .../sabotage_machinery/trap.html | 1 + datum/traitor_objective/smuggle.html | 1 + datum/traitor_objective/steal_item.html | 1 + datum/traitor_objective/target_player.html | 3 + .../target_player/assassinate.html | 5 + .../target_player/assault.html | 1 + .../target_player/eyesnatching.html | 1 + .../target_player/infect.html | 3 + .../target_player/kidnapping.html | 1 + .../ultimate/battle_royale.html | 1 + .../ultimate/battlecruiser.html | 1 + .../ultimate/dark_matteor.html | 1 + .../traitor_objective/ultimate/infect_ai.html | 1 + datum/traitor_objective/ultimate/romerol.html | 1 + .../ultimate/supermatter_cascade.html | 1 + datum/traitor_objective_category.html | 4 + datum/tram_mfg_info.html | 4 + datum/transport_controller/linear.html | 57 + datum/transport_controller/linear/tram.html | 72 + datum/trophy_data.html | 1 + datum/tts_request.html | 3 + datum/turf_reservation.html | 1 + datum/turf_reservation/transit.html | 1 + datum/tutorial.html | 24 + datum/tutorial_manager.html | 15 + datum/ui_state.html | 6 + datum/unit_test.html | 5 + datum/unit_test/atmospheric_gas_transfer.html | 9 + datum/unit_test/atmospherics_sanity.html | 3 + datum/unit_test/bake_a_cake.html | 1 + datum/unit_test/binary_insert.html | 1 + datum/unit_test/blindness.html | 2 + datum/unit_test/breath.html | 6 + datum/unit_test/container_resist.html | 1 + datum/unit_test/dcs_check_list_arguments.html | 18 + .../unit_test/defined_inhand_icon_states.html | 5 + datum/unit_test/dismemberment.html | 2 + .../ensure_subtree_operational_datum.html | 2 + datum/unit_test/explosion_action.html | 7 + datum/unit_test/font_awesome_icons.html | 3 + datum/unit_test/frame_stacking.html | 6 + datum/unit_test/glass_style_icons.html | 1 + datum/unit_test/hydroponics_harvest.html | 15 + datum/unit_test/knockoff_component.html | 2 + datum/unit_test/lungs.html | 6 + datum/unit_test/mafia.html | 4 + .../unit_test/mapload_space_verification.html | 4 + datum/unit_test/mecha_damage.html | 2 + datum/unit_test/mind_swap_spell.html | 4 + datum/unit_test/missing_icons.html | 5 + datum/unit_test/mob_damage.html | 56 + datum/unit_test/mob_damage/basic.html | 9 + datum/unit_test/modify_fantasy_variable.html | 1 + datum/unit_test/monkey_business.html | 5 + datum/unit_test/mutant_hands.html | 3 + datum/unit_test/mutant_hands_carry.html | 3 + datum/unit_test/mutant_hands_with_nodrop.html | 3 + datum/unit_test/nuke_cinematic.html | 2 + datum/unit_test/objectives_category.html | 1 + datum/unit_test/required_map_items.html | 10 + .../screenshot_high_luminosity_eyes.html | 1 + datum/unit_test/security_levels.html | 2 + datum/unit_test/servingtray.html | 1 + datum/unit_test/species_config_sanity.html | 5 + datum/unit_test/spell_names.html | 8 + datum/unit_test/stop_drop_and_roll.html | 1 + datum/unit_test/test_human_base.html | 1 + datum/unit_test/test_human_bone.html | 1 + datum/unit_test/transformation_sting.html | 1 + datum/unit_test/worn_icons.html | 5 + datum/uplink_category.html | 1 + datum/uplink_handler.html | 2 + datum/uplink_item.html | 12 + datum/uplink_item/bundles_tc/surplus.html | 1 + .../bundles_tc/surplus/united.html | 1 + datum/venue.html | 1 + datum/view_data.html | 13 + datum/visual_data.html | 1 + datum/visual_data/mirroring.html | 1 + datum/visual_data/tracking.html | 2 + datum/voice_of_god_command.html | 1 + datum/voice_of_god_command/emote.html | 1 + datum/voice_of_god_command/who_are_you.html | 2 + datum/vore_pref.html | 39 + datum/vote.html | 32 + datum/vote/restart_vote.html | 1 + datum/voucher_set.html | 1 + datum/wanted_message.html | 1 + datum/weakref.html | 40 + datum/weather.html | 14 + datum/weather/floor_is_lava.html | 5 + datum/weather/rad_storm.html | 1 + datum/weather/rad_storm/nebula.html | 1 + datum/weather/sand_storm.html | 1 + datum/weather/snow_storm.html | 1 + datum/wires.html | 13 + datum/wires/airlock.html | 1 + datum/wires/collar_bomb.html | 1 + datum/wires/conveyor.html | 1 + datum/wires/vending.html | 1 + datum/worn_feature_offset.html | 2 + datum/wound.html | 40 + datum/wound/blunt/bone.html | 1 + datum/wound/blunt/bone/moderate.html | 1 + datum/wound/blunt/robotic.html | 5 + datum/wound/blunt/robotic/moderate.html | 1 + .../blunt/robotic/secures_internals.html | 12 + .../robotic/secures_internals/critical.html | 15 + datum/wound/burn/flesh.html | 1 + datum/wound/burn/robotic/overheat.html | 5 + datum/wound/electrical_damage.html | 13 + datum/wound/loss.html | 1 + datum/wound/muscle.html | 1 + datum/wound/pierce/bleed.html | 1 + datum/wound/slash/flesh.html | 1 + datum/wound_pregen_data.html | 29 + datum/z_pillar.html | 10 + dmdoc.css | 112 + dmdoc.js | 58 + git.png | Bin 0 -> 2383 bytes global.html | 2286 +++++++++++++++++ image.html | 5 + index.html | 1021 ++++++++ interface/fonts/fonts_datum.html | 1 + interface/fonts/grand_9k.html | 5 + interface/fonts/license.html | 14 + interface/fonts/pixellari.html | 5 + interface/fonts/spess_font.html | 5 + interface/fonts/tiny_unicode.html | 5 + matrix.html | 8 + mob.html | 363 +++ mob/camera.html | 1 + mob/camera/ai_eye.html | 1 + .../ai_eye/remote/base_construction.html | 4 + mob/camera/blob.html | 1 + mob/camera/imaginary_friend.html | 9 + mob/dead.html | 3 + mob/dead/new_player.html | 11 + mob/dead/observer.html | 1 + mob/living.html | 539 ++++ mob/living/basic.html | 16 + mob/living/basic/abductor.html | 1 + mob/living/basic/alien.html | 1 + mob/living/basic/alien/maid.html | 1 + mob/living/basic/alien/maid/barmaid.html | 2 + mob/living/basic/alien/queen.html | 1 + mob/living/basic/alien/sentinel.html | 1 + mob/living/basic/bear.html | 1 + mob/living/basic/bee.html | 1 + mob/living/basic/bee/timed.html | 1 + mob/living/basic/blob_minion.html | 1 + .../basic/blob_minion/blobbernaut/minion.html | 1 + mob/living/basic/blob_minion/spore.html | 1 + .../basic/blob_minion/spore/minion.html | 1 + mob/living/basic/blob_minion/zombie.html | 1 + mob/living/basic/bot.html | 5 + mob/living/basic/bot/cleanbot.html | 3 + mob/living/basic/bot/firebot.html | 1 + mob/living/basic/bot/honkbot.html | 1 + mob/living/basic/bot/hygienebot.html | 1 + mob/living/basic/bot/medbot.html | 1 + .../basic/butterfly/lavaland/temporary.html | 3 + mob/living/basic/carp.html | 7 + mob/living/basic/carp/holographic.html | 1 + mob/living/basic/carp/magic.html | 5 + mob/living/basic/carp/mega.html | 4 + mob/living/basic/carp/passive.html | 1 + mob/living/basic/carp/pet/cayenne.html | 3 + mob/living/basic/cat_butcherer.html | 2 + mob/living/basic/chick.html | 2 + mob/living/basic/chicken.html | 1 + mob/living/basic/clockwork_marauder.html | 1 + mob/living/basic/clown.html | 1 + mob/living/basic/clown/mutant/glutton.html | 1 + mob/living/basic/cockroach/glockroach.html | 1 + mob/living/basic/cockroach/hauberoach.html | 1 + mob/living/basic/construct.html | 1 + mob/living/basic/construct/artificer.html | 1 + mob/living/basic/construct/harvester.html | 1 + .../basic/construct/proteon/hostile.html | 1 + mob/living/basic/cortical_borer.html | 1 + mob/living/basic/cow.html | 1 + mob/living/basic/cow/wisdom.html | 1 + mob/living/basic/crab.html | 1 + mob/living/basic/cybersun_ai_core.html | 1 + mob/living/basic/deer.html | 1 + mob/living/basic/demon.html | 1 + mob/living/basic/demon/slaughter.html | 1 + .../basic/demon/slaughter/laughter.html | 1 + mob/living/basic/drone.html | 54 + mob/living/basic/drone/syndrone.html | 2 + mob/living/basic/eyeball.html | 1 + mob/living/basic/faithless.html | 1 + mob/living/basic/frog.html | 1 + mob/living/basic/frog/frog_suicide.html | 1 + mob/living/basic/garden_gnome.html | 1 + mob/living/basic/ghost.html | 6 + mob/living/basic/goat.html | 3 + mob/living/basic/gorilla.html | 2 + mob/living/basic/guardian.html | 2 + mob/living/basic/guardian/assassin.html | 1 + mob/living/basic/guardian/dextrous.html | 1 + mob/living/basic/guardian/explosive.html | 1 + mob/living/basic/guardian/gaseous.html | 1 + mob/living/basic/guardian/gravitokinetic.html | 1 + mob/living/basic/guardian/lightning.html | 1 + mob/living/basic/guardian/protector.html | 1 + mob/living/basic/guardian/standard.html | 1 + mob/living/basic/guardian/support.html | 1 + mob/living/basic/headslug.html | 4 + mob/living/basic/heretic_summon/armsy.html | 1 + .../heretic_summon/maid_in_the_mirror.html | 1 + .../basic/heretic_summon/raw_prophet.html | 3 + mob/living/basic/heretic_summon/stalker.html | 1 + mob/living/basic/hivebot.html | 1 + mob/living/basic/hivebot/mechanic.html | 1 + mob/living/basic/leaper.html | 1 + mob/living/basic/legion_brood.html | 1 + mob/living/basic/lightgeist.html | 2 + mob/living/basic/living_limb_flesh.html | 1 + mob/living/basic/lizard.html | 1 + mob/living/basic/meteor_heart.html | 1 + .../basic/meteor_heart/opens_puzzle_door.html | 1 + mob/living/basic/migo.html | 1 + mob/living/basic/mining.html | 1 + mob/living/basic/mining/basilisk.html | 1 + mob/living/basic/mining/bileworm.html | 1 + mob/living/basic/mining/brimdemon.html | 1 + mob/living/basic/mining/demon_afterimage.html | 1 + mob/living/basic/mining/goldgrub.html | 1 + mob/living/basic/mining/goliath.html | 1 + .../mining/goliath/ancient/immortal.html | 1 + mob/living/basic/mining/gutlunch.html | 1 + mob/living/basic/mining/gutlunch/grub.html | 1 + mob/living/basic/mining/gutlunch/milk.html | 1 + mob/living/basic/mining/hivelord.html | 1 + mob/living/basic/mining/ice_whelp.html | 1 + mob/living/basic/mining/legion.html | 2 + mob/living/basic/mining/legion/large.html | 1 + mob/living/basic/mining/lobstrosity.html | 1 + .../basic/mining/lobstrosity/juvenile.html | 1 + mob/living/basic/mining/mook.html | 1 + mob/living/basic/mining/mook/worker/bard.html | 1 + .../mining/mook/worker/tribal_chief.html | 1 + mob/living/basic/mining/watcher.html | 1 + mob/living/basic/mining_drone.html | 1 + mob/living/basic/mold/centaur.html | 3 + mob/living/basic/mold/diseased_rat.html | 3 + mob/living/basic/mold/electric_mosquito.html | 3 + mob/living/basic/mold/oil_shambler.html | 3 + mob/living/basic/morph.html | 7 + mob/living/basic/mouse.html | 1 + mob/living/basic/mushroom.html | 1 + mob/living/basic/node_drone.html | 4 + mob/living/basic/orbie.html | 1 + mob/living/basic/paper_wizard.html | 1 + mob/living/basic/parrot.html | 13 + mob/living/basic/parrot/poly.html | 1 + mob/living/basic/pet.html | 1 + mob/living/basic/pet/bumbles.html | 6 + mob/living/basic/pet/cat.html | 1 + mob/living/basic/pet/cat/runtime.html | 1 + mob/living/basic/pet/chinchilla.html | 5 + mob/living/basic/pet/dog.html | 1 + mob/living/basic/pet/dog/corgi.html | 7 + mob/living/basic/pet/dog/corgi/borgi.html | 6 + mob/living/basic/pet/dog/corgi/ian.html | 1 + mob/living/basic/pet/dog/corgi/narsie.html | 1 + mob/living/basic/pet/dog/markus.html | 1 + mob/living/basic/pet/gondola.html | 1 + mob/living/basic/pet/gondola/gondolapod.html | 1 + mob/living/basic/pet/penguin.html | 1 + mob/living/basic/pet/penguin/baby.html | 1 + mob/living/basic/pet/poppy.html | 1 + mob/living/basic/pig.html | 1 + mob/living/basic/pony.html | 1 + mob/living/basic/rabbit.html | 3 + mob/living/basic/rabbit/easter.html | 1 + mob/living/basic/raptor.html | 1 + mob/living/basic/raptor/baby_raptor.html | 1 + mob/living/basic/regal_rat.html | 5 + mob/living/basic/revenant.html | 7 + mob/living/basic/revolutionary.html | 1 + mob/living/basic/robot_customer.html | 1 + mob/living/basic/seedling.html | 2 + mob/living/basic/shade.html | 1 + mob/living/basic/sheep.html | 1 + mob/living/basic/skeleton.html | 1 + mob/living/basic/slime.html | 1 + mob/living/basic/snake.html | 1 + mob/living/basic/space_dragon.html | 3 + mob/living/basic/spider.html | 1 + mob/living/basic/spider/giant.html | 3 + mob/living/basic/spider/giant/ambush.html | 3 + mob/living/basic/spider/giant/breacher.html | 3 + mob/living/basic/spider/giant/guard.html | 3 + mob/living/basic/spider/giant/hunter.html | 3 + mob/living/basic/spider/giant/hunter/ice.html | 2 + .../basic/spider/giant/hunter/scrawny.html | 3 + mob/living/basic/spider/giant/ice.html | 3 + mob/living/basic/spider/giant/midwife.html | 5 + mob/living/basic/spider/giant/nurse.html | 4 + mob/living/basic/spider/giant/nurse/ice.html | 2 + .../basic/spider/giant/nurse/scrawny.html | 4 + mob/living/basic/spider/giant/scout.html | 3 + .../basic/spider/giant/sgt_araneus.html | 2 + mob/living/basic/spider/giant/tangle.html | 4 + mob/living/basic/spider/giant/tank.html | 3 + mob/living/basic/spider/giant/tarantula.html | 3 + .../basic/spider/giant/tarantula/scrawny.html | 3 + mob/living/basic/spider/giant/viper.html | 3 + .../basic/spider/giant/viper/wizard.html | 2 + mob/living/basic/spider/growing.html | 5 + .../basic/spider/growing/young/nurse.html | 1 + .../basic/spider/growing/young/tangle.html | 1 + .../basic/spider/growing/young/tank.html | 1 + mob/living/basic/spider/maintenance.html | 2 + mob/living/basic/statue/mannequin.html | 1 + mob/living/basic/supermatter_spider.html | 1 + mob/living/basic/trader.html | 1 + mob/living/basic/tree.html | 1 + mob/living/basic/trooper.html | 1 + mob/living/basic/trooper/abductor/ranged.html | 1 + .../basic/trooper/cin_soldier/ranged.html | 1 + .../basic/trooper/nanotrasen/ranged.html | 1 + mob/living/basic/trooper/pirate.html | 1 + mob/living/basic/trooper/pirate/ranged.html | 1 + .../basic/trooper/syndicate/ranged.html | 1 + mob/living/basic/venus_human_trap.html | 7 + mob/living/basic/wizard.html | 1 + mob/living/basic/wumborian_fugu.html | 3 + mob/living/brain.html | 1 + mob/living/carbon.html | 256 ++ mob/living/carbon/alien.html | 1 + mob/living/carbon/alien/adult.html | 5 + mob/living/carbon/alien/adult/hunter.html | 1 + mob/living/carbon/alien/adult/skyrat.html | 1 + .../carbon/alien/adult/skyrat/runner.html | 1 + mob/living/carbon/alien/larva.html | 1 + mob/living/carbon/human.html | 91 + mob/living/carbon/human/dummy.html | 1 + .../carbon/human/species/monkey/angry.html | 1 + .../carbon/human/species/monkey/punpun.html | 1 + mob/living/silicon.html | 11 + mob/living/silicon/ai.html | 1 + mob/living/silicon/pai.html | 66 + mob/living/silicon/robot.html | 76 + mob/living/simple_animal.html | 15 + mob/living/simple_animal/bot.html | 6 + mob/living/simple_animal/bot/floorbot.html | 1 + mob/living/simple_animal/bot/mulebot.html | 3 + mob/living/simple_animal/bot/secbot.html | 1 + mob/living/simple_animal/hostile.html | 1 + .../simple_animal/hostile/asteroid.html | 1 + .../hostile/asteroid/elite/broodmother.html | 10 + .../hostile/asteroid/elite/herald.html | 10 + .../hostile/asteroid/elite/legionnaire.html | 10 + .../hostile/asteroid/elite/pandora.html | 10 + .../hostile/asteroid/polarbear.html | 1 + .../simple_animal/hostile/blackmesa/xen.html | 1 + .../hostile/blackmesa/xen/headcrab.html | 1 + .../xen/headcrab_zombie/gordon_freeman.html | 3 + .../hostile/blackmesa/xen/houndeye.html | 1 + .../hostile/blackmesa/xen/vortigaunt.html | 1 + .../simple_animal/hostile/illusion.html | 1 + .../simple_animal/hostile/megafauna.html | 1 + .../hostile/megafauna/blood_drunk_miner.html | 1 + .../hostile/megafauna/bubblegum.html | 8 + .../hostile/megafauna/colossus.html | 13 + .../megafauna/demonic_frost_miner.html | 1 + .../hostile/megafauna/dragon.html | 1 + .../hostile/megafauna/gladiator.html | 1 + .../hostile/megafauna/hierophant.html | 1 + .../hostile/megafauna/legion.html | 1 + .../hostile/megafauna/wendigo.html | 1 + mob/living/simple_animal/hostile/mimic.html | 1 + .../simple_animal/hostile/mimic/xenobio.html | 11 + mob/living/simple_animal/hostile/ooze.html | 1 + .../hostile/ooze/gelatinous.html | 4 + .../simple_animal/hostile/ooze/grapes.html | 4 + .../simple_animal/hostile/retaliate.html | 1 + .../hostile/retaliate/goose/vomit.html | 1 + mob/living/simple_animal/hostile/zombie.html | 1 + mob/living/simple_animal/soulscythe.html | 1 + mob/living/soulcatcher_soul.html | 1 + mob/oranges_ear.html | 35 + mob/proccall_handler.html | 3 + modular_skyrat.html | 251 ++ modular_skyrat/master_files.html | 35 + .../code/_globalvars/configuration.html | 4 + .../code/_globalvars/lists/chat.html | 3 + .../master_files/code/_globalvars/text.html | 2 + .../master_files/code/_onclick/hud.html | 5 + .../entries/skyrat_config_entries.html | 1 + .../mutant_bodypart_overlay.html | 1 + .../datums/components/damage_tracker.html | 1 + .../code/datums/id_trim/syndicate.html | 1 + .../decals/turfdecals/tilecoloring.html | 3 + .../items/stacks/sheets/sheet_types.html | 1 + .../traitor/objectives/smuggling.html | 1 + .../client/preferences/_preference.html | 1 + .../client/preferences/erp_preferences.html | 1 + .../preferences/middleware/languages.html | 1 + .../client/preferences/mutant_parts.html | 1 + .../species_features/digitigrade_legs.html | 1 + .../modules/client/preferences/voice.html | 1 + .../modules/client/preferences_savefile.html | 5 + .../code/modules/clothing/clothing.html | 3 + .../clothing_variation_overrides/under.html | 2 + .../head/monkey_magnification_helmet.html | 1 + .../modules/clothing/suits/skinsuits.html | 1 + .../code/modules/clothing/towels.html | 1 + .../modules/clothing/under/akula_jobs.html | 1 + .../modules/jobs/job_types/_job_attire.html | 1 + .../code/modules/mob/living/blood.html | 1 + .../simple_animal/friendly/bumbles.html | 1 + .../living/simple_animal/friendly/dogs.html | 1 + .../modules/religion/religious_sects.html | 3 + .../bci/reagent_injector_bluespace.html | 2 + modular_skyrat/module_template.html | 33 + modular_skyrat/modules/QOL.html | 23 + modular_skyrat/modules/SiliconQoL.html | 25 + .../modules/additional_circuit.html | 28 + .../additional_circuit/code/cell_reader.html | 1 + .../code/interact_item.html | 1 + .../code/mining_circuit.html | 1 + .../code/target_scanner.html | 1 + modular_skyrat/modules/admin.html | 29 + .../modules/admin/code/localsound.html | 1 + .../modules/admin/code/player_ranks.html | 1 + .../modules/advanced_engineering.html | 14 + modular_skyrat/modules/aesthetics.html | 26 + .../aesthetics/flag/code/signs_flags.html | 1 + .../keyed_doors/code/keyed_door.html | 2 + .../aesthetics/lights/code/lighting.html | 1 + .../aesthetics/vending/access_vending.html | 1 + modular_skyrat/modules/airlock_override.html | 16 + .../modules/akula/code/wetsuit.html | 1 + .../modules/alcohol_processing.html | 20 + modular_skyrat/modules/alerts.html | 24 + .../alerts/code/alert_sound_to_playing.html | 1 + .../alerts/code/security_level_datums.html | 1 + modular_skyrat/modules/alt_vox/credits.html | 1 + .../modules/alternative_job_titles.html | 24 + .../modules/apc_arcing/code/apc.html | 1 + .../armaments/code/armament_component.html | 1 + .../armaments/code/armament_entries.html | 1 + .../armaments/code/armament_station.html | 1 + modular_skyrat/modules/ashwalkers.html | 29 + .../ashwalkers/code/species/Ashwalkers.html | 5 + .../code/assault_operatives.html | 1 + .../assault_operatives/code/goldeneye.html | 1 + .../assault_operatives/code/interrogator.html | 1 + modular_skyrat/modules/automapper.html | 10 + .../automapper/code/area_spawn_subsystem.html | 1 + .../automapper/code/automapper_subsystem.html | 1 + modular_skyrat/modules/autotransfer.html | 23 + .../code/autotransfer_config.html | 4 + .../mothership_astrum/abductor_ai.html | 1 + .../mothership_astrum/fluff.html | 1 + .../mothership_astrum/gear.html | 1 + .../mothership_astrum/mob.html | 1 + modular_skyrat/modules/barsigns.html | 13 + modular_skyrat/modules/better_vox.html | 10 + .../ancient_milsim/virtual_domain.html | 1 + .../modules/black_mesa/code/fluff.html | 3 + .../black_mesa/code/follow_component.html | 1 + .../black_mesa/code/mobs/gordon_freeman.html | 1 + .../modules/black_mesa/code/objects.html | 1 + .../modules/black_mesa/code/rationpacks.html | 1 + modular_skyrat/modules/blastwave_outfits.html | 41 + modular_skyrat/modules/blueshield.html | 27 + modular_skyrat/modules/bluespace_miner.html | 21 + .../bodyparts/code/_mutant_bodyparts.html | 1 + modular_skyrat/modules/bongs/code/bong.html | 1 + modular_skyrat/modules/borg_buffs.html | 23 + modular_skyrat/modules/borgs.html | 28 + .../modules/borgs/code/robot_items.html | 1 + .../modules/borgs/code/robot_upgrade.html | 2 + modular_skyrat/modules/borgs/icons.html | 23 + .../modules/bsa_overhaul/code/bsa_cannon.html | 1 + .../bsa_overhaul/code/bsa_computer.html | 1 + .../bsa_overhaul/code/station_goal.html | 1 + modular_skyrat/modules/cargo.html | 24 + .../modules/cargo/code/export_gate.html | 1 + modular_skyrat/modules/cargo/code/packs.html | 1 + modular_skyrat/modules/cargo_teleporter.html | 6 + .../carriers/code/carrier_component.html | 1 + .../carriers/code/carrier_user_component.html | 1 + modular_skyrat/modules/cellguns.html | 17 + .../modules/cellguns/code/cellguns.html | 1 + .../modules/cellguns/code/medigun_cells.html | 1 + .../modules/chadian/code/chadian.html | 1 + .../modules/chat_colors/code/chat_color.html | 3 + .../code/actions/whirring_convergence.html | 1 + .../code/components/brass_spreader.html | 1 + .../modules/clock_cult/code/globals.html | 1 + .../modules/clock_cult/code/language.html | 1 + .../clock_cult/code/outpost_of_cogs.html | 1 + .../code/scriptures/_scripture.html | 1 + .../code/structures/_structure.html | 1 + modular_skyrat/modules/cme.html | 13 + .../code/appliances/co2_cracker.html | 1 + .../code/design_datums/appliances.html | 1 + .../code/repacking_element.html | 1 + .../colony_fabricator/sound/attributions.html | 17 + .../modules/company_imports/code.html | 20 + .../armament_datums/kahraman_industries.html | 1 + .../modules/connecting_computer.html | 12 + .../code/connectable_component.html | 1 + modular_skyrat/modules/container_emotes.html | 25 + .../code/items/modsuit/modules.html | 1 + modular_skyrat/modules/conveyor_sorter.html | 12 + modular_skyrat/modules/cortical_borer.html | 13 + .../cortical_borer/code/cortical_borer.html | 1 + modular_skyrat/modules/cryosleep.html | 14 + .../modules/cryosleep/code/cryopod.html | 1 + modular_skyrat/modules/customization.html | 72 + .../customization/__HELPERS/global_lists.html | 1 + .../modules/clothing/glasses/glasses.html | 1 + .../modules/clothing/glasses/hud.html | 1 + .../modules/clothing/storage.html | 24 + .../modules/clothing/under/security.html | 1 + .../modules/clothing/under/utility_port.html | 40 + .../clothing/~donator/donator_clothing.html | 1 + .../dead/new_player/sprite_accessories.html | 1 + .../sprite_accessories/genitals.html | 1 + .../new_player/sprite_accessories/ipc.html | 1 + .../new_player/sprite_accessories/snout.html | 2 + .../mob/living/carbon/human/species.html | 1 + .../living/carbon/human/species/akula.html | 1 + .../species/hemophage/_hemophage_defines.html | 1 + .../species/hemophage/_organ_corruption.html | 5 + .../species/hemophage/corrupted_liver.html | 1 + .../species/hemophage/corrupted_tongue.html | 1 + .../species/hemophage/hemophage_actions.html | 1 + .../species/hemophage/hemophage_organs.html | 1 + .../species/hemophage/hemophage_species.html | 1 + .../hemophage/hemophage_status_effects.html | 1 + .../species/hemophage/hemophage_tumor.html | 1 + .../species/hemophage/tumor_corruption.html | 3 + .../carbon/human/species/roundstartslime.html | 3 + .../mob/living/carbon/human/species/xeno.html | 1 + .../reagents/chemistry/reagents/drinks.html | 1 + .../modules/surgery/organs/spines.html | 3 + .../strings/names/callsigns_nri.html | 47 + .../strings/names/first_female_taj.html | 228 ++ .../strings/names/first_female_vulp.html | 49 + .../strings/names/first_male_taj.html | 240 ++ .../strings/names/first_male_vulp.html | 64 + .../customization/strings/names/last_taj.html | 211 ++ .../strings/names/last_vulp.html | 51 + .../names/phonetic_alphabet_numbers.html | 11 + .../modules/death_consequences_perk.html | 38 + .../death_consequences_trauma.html | 1 + .../modules/decay_subsystem/code/decaySS.html | 1 + .../code/chemicals/twitch.html | 1 + .../modules/delam_emergency_stop.html | 31 + .../code/admin_scram.html | 1 + .../delam_emergency_stop/code/scram.html | 1 + modular_skyrat/modules/digi_bloodsole.html | 25 + modular_skyrat/modules/electric_welder.html | 20 + modular_skyrat/modules/emotes.html | 51 + .../modules/encounters/code/nri_raiders.html | 1 + modular_skyrat/modules/escape_menu/code.html | 13 + modular_skyrat/modules/events.html | 15 + modular_skyrat/modules/examinemore/code.html | 22 + modular_skyrat/modules/faction.html | 22 + .../replicator_designs/replicator_food.html | 1 + modular_skyrat/modules/ghostcafe.html | 23 + modular_skyrat/modules/gladiator.html | 1 + .../hostile/megafauna/markedone.html | 1 + modular_skyrat/modules/goofsec.html | 22 + modular_skyrat/modules/gun_safety.html | 23 + .../gun_safety/code/safety_component.html | 1 + modular_skyrat/modules/gunhud.html | 25 + modular_skyrat/modules/gunpoint.html | 28 + modular_skyrat/modules/hev_suit.html | 9 + .../modules/holdingfashion_port.html | 23 + modular_skyrat/modules/horrorform.html | 25 + modular_skyrat/modules/huds.html | 10 + modular_skyrat/modules/hydra.html | 28 + modular_skyrat/modules/hyposprays.html | 41 + .../hyposprays/code/autolathe_designs.html | 2 + .../hyposprays/code/hypospray_kits.html | 1 + modular_skyrat/modules/ices_events.html | 14 + .../code/ICES_intensity_credits.html | 4 + .../modules/ices_events/code/ICES_tgui.html | 1 + .../ices_events/code/effects/ef_foam.html | 1 + .../code/events/ev_roleplay_check.html | 1 + modular_skyrat/modules/icspawning.html | 20 + modular_skyrat/modules/implants.html | 21 + .../modules/implants/code/augments_arms.html | 1 + modular_skyrat/modules/imported_vendors.html | 22 + modular_skyrat/modules/indicators.html | 32 + modular_skyrat/modules/inflatables.html | 22 + .../modules/inflatables/code/inflatable.html | 1 + .../code/interaction_datum.html | 1 + modular_skyrat/modules/jukebox.html | 24 + .../modules/jukebox/code/dance_machine.html | 1 + .../modules/jukebox/code/ravemod.html | 1 + modular_skyrat/modules/jungle.html | 22 + .../sound/attributions.html | 8 + modular_skyrat/modules/layer_shift.html | 8 + .../layer_shift/code/mob_movement.html | 3 + .../code/liquid_systems/liquid_groups.html | 1 + .../code/liquid_systems/liquid_height.html | 1 + .../liquid_systems/liquid_interaction.html | 1 + .../code/liquid_systems/liquid_plumbers.html | 1 + modular_skyrat/modules/lorecaster.html | 22 + .../modules/manufacturer_examine.html | 21 + .../code/manufacturer_element.html | 1 + modular_skyrat/modules/mapping.html | 23 + .../modules/mapping/code/areas/space.html | 1 + .../mapping/code/interlink_helper.html | 1 + modular_skyrat/modules/mapping/code/pool.html | 1 + .../modules/mapping/code/space_hotel.html | 1 + .../modules/mapping/code/turf_decals.html | 1 + .../modules/mapping/code/wardrobes.html | 1 + .../modules/mapping/voidraptor.html | 22 + modular_skyrat/modules/maturity-prompt.html | 1 + modular_skyrat/modules/medical.html | 42 + .../modules/medical/attributions.html | 3 + .../medical/code/anesthetic_machine.html | 1 + .../modules/medical/code/wounds/muscle.html | 1 + .../wounds/synth/blunt/robotic_blunt.html | 3 + .../wounds/synth/blunt/robotic_blunt_T3.html | 1 + .../wounds/synth/blunt/secures_internals.html | 1 + .../code/wounds/synth/robotic_slash.html | 1 + modular_skyrat/modules/mentor.html | 24 + .../code/_microfusion_defines.html | 1 + .../modules/microfusion/code/gun_types.html | 1 + .../microfusion/code/microfusion_cell.html | 1 + .../code/microfusion_gun_attachments.html | 2 + .../microfusion/code/phase_emitter.html | 1 + modular_skyrat/modules/modular_ert/code.html | 54 + .../modular_implants/code/misc_devices.html | 1 + .../modular_implants/code/nif_actions.html | 1 + .../modular_implants/code/nif_implants.html | 1 + .../code/nif_persistence.html | 1 + .../modular_implants/code/nifsofts.html | 1 + .../nifsofts/base_types/action_granter.html | 1 + .../code/nifsofts/money_sense.html | 1 + .../code/nifsofts/prop_summoner.html | 1 + .../code/nifsofts/scryer.html | 1 + .../code/nifsofts/shapeshifter.html | 1 + .../code/nifsofts/soul_poem.html | 1 + .../code/nifsofts/soulcatcher.html | 1 + .../soulcatcher_body_component.html | 1 + modular_skyrat/modules/modular_items.html | 26 + .../modules/modular_items/code/bags.html | 1 + .../code/lewd_chemistry/mood_events.html | 1 + .../lewd_chemistry/reagents/_aphrodisiac.html | 1 + .../code/lewd_chemistry/reagents/camphor.html | 1 + .../lewd_items/code/lewd_helpers/sounds.html | 2 + .../lewd_items/code/lewd_items/condom.html | 1 + .../code/lewd_items/size_items.html | 1 + .../code/lewd_structures/construction.html | 1 + .../modules/modular_persistence.html | 19 + modular_skyrat/modules/modular_weapons.html | 23 + .../saibasan/laser_guns.html | 1 + .../gun_launches_little_guys_element.html | 1 + modular_skyrat/modules/mold.html | 29 + modular_skyrat/modules/mold/code/mold.html | 1 + .../modules/mold/code/mold_mobs.html | 1 + .../modules/mold/code/mold_structures.html | 2 + modular_skyrat/modules/more_briefcases.html | 3 + modular_skyrat/modules/morefermentplants.html | 23 + modular_skyrat/modules/moretraitoritems.html | 32 + .../moretraitoritems/code/smuggling_gear.html | 1 + .../moretraitoritems/code/weapons.html | 2 + modular_skyrat/modules/multiserver.html | 39 + modular_skyrat/modules/mutants.html | 18 + .../mutants/code/mutant_component.html | 3 + modular_skyrat/modules/new_cells.html | 9 + modular_skyrat/modules/novaya_ert.html | 11 + .../modules/novaya_ert/code/mod_suit.html | 1 + .../code/equipment/equip_parent.html | 1 + .../modules/organs/code/tongue.html | 2 + modular_skyrat/modules/oversized.html | 6 + modular_skyrat/modules/panicbunker/code.html | 21 + modular_skyrat/modules/pixel_shift.html | 28 + .../_player_rank_controller.html | 4 + .../code/subsystem/player_ranks.html | 3 + .../polarization_controller.html | 2 + .../pollution/code/pollutants_generic.html | 1 + .../modules/positronic_alert_console.html | 22 + .../modules/primitive_cooking_additions.html | 20 + .../code/plant_bag.html | 1 + .../code/stone_stove.html | 1 + .../modules/primitive_production.html | 20 + .../modules/primitive_structures.html | 20 + modular_skyrat/modules/quirks/neutral.html | 1 + modular_skyrat/modules/radiosound.html | 24 + modular_skyrat/modules/reagent_forging.html | 23 + .../reagent_forging/code/crafting_bench.html | 1 + .../modules/reagent_forging/code/forge.html | 1 + .../reagent_forging/code/water_basin.html | 1 + .../modules/records_on_examine.html | 23 + .../code/record_manifest.html | 1 + modular_skyrat/modules/science_tools.html | 37 + modular_skyrat/modules/sec_haul.html | 27 + .../code/self_actualization_device.html | 1 + .../simple_research/simple_research.html | 1 + .../modules/skyrat_access_helpers.html | 4 + .../skyrat_access_helpers/accesshelpers.html | 1 + modular_skyrat/modules/soulstone_changes.html | 31 + .../clothing_bullet_damage_component.html | 1 + modular_skyrat/modules/stasisrework.html | 25 + modular_skyrat/modules/station_traits.html | 12 + modular_skyrat/modules/subsystems.html | 20 + .../code/ticket_ping/ticket_ss.html | 1 + modular_skyrat/modules/suicide_verb.html | 34 + modular_skyrat/modules/synths/code.html | 27 + .../internal_computer/internal_computer.html | 1 + .../modules/synths/code/bodyparts/limbs.html | 1 + modular_skyrat/modules/synths/code/defib.html | 1 + .../synths/code/surgery/robot_healing.html | 1 + .../code/surgery/robot_heart_surgery.html | 1 + .../code/surgery/robot_liver_surgery.html | 1 + .../code/surgery/robot_lung_surgery.html | 1 + .../code/surgery/robot_stomach_surgery.html | 1 + modular_skyrat/modules/tagline.html | 14 + .../modules/tarkon/code/clothing/mod.html | 1 + .../tarkon/code/guns/resonance_disruptor.html | 1 + .../tarkon/code/misc-fluff/research.html | 1 + .../tarkon/code/misc-fluff/spawner.html | 1 + .../taur_mechanics/code/constrict.html | 1 + modular_skyrat/modules/tesh_augments.html | 5 + .../modules/time_clock/code/console_tgui.html | 1 + modular_skyrat/modules/title_screen.html | 28 + .../code/title_screen_controls.html | 1 + .../code/title_screen_subsystem.html | 1 + modular_skyrat/modules/trim_tokens.html | 18 + modular_skyrat/modules/turretid.html | 22 + modular_skyrat/modules/verbs.html | 25 + modular_skyrat/modules/veteran_only.html | 25 + modular_skyrat/modules/vox_sprites.html | 47 + .../modules/wargame_projectors.html | 22 + modular_skyrat/modules/window_airbags.html | 5 + .../window_airbags/code/window_airbag.html | 1 + modular_skyrat/modules/xenoarch.html | 12 + modular_skyrat/modules/xenos_skyrat_redo.html | 38 + .../code/base_skyrat_xeno.html | 1 + .../code/xeno_types/defender.html | 1 + .../code/xeno_types/drone.html | 1 + .../code/xeno_types/praetorian.html | 1 + .../code/xeno_types/queen.html | 1 + .../code/xeno_types/ravager.html | 1 + .../code/xeno_types/rouny.html | 1 + .../code/xeno_types/sentinel.html | 1 + .../code/xeno_types/spitter.html | 1 + .../code/xeno_types/warrior.html | 1 + .../code/__DEFINES/bloodsucker_defines.html | 27 + .../hud/screen_objects/hud_timer.html | 1 + .../configuration/entries/nsfw.html | 1 + .../code/datums/brain_damage/magic.html | 1 + .../code/datums/components/vore.html | 24 + .../code/datums/components/vore/_defines.html | 7 + .../datums/components/vore/subsystem.html | 1 + .../code/datums/components/vore/ui.html | 5 + .../code/datums/components/vore/vore.html | 2 + .../mood_events/bloodsucker_events.html | 1 + .../order_computer/cook_order_interdyne.html | 1 + .../code/game/machinery/syndiepad.html | 1 + .../code/game/objects/items/holy_weapons.html | 1 + .../bloodsucker/bloodsuckers/hud.html | 1 + .../bloodsucker/bloodsuckers/life.html | 1 + .../bloodsucker/bloodsuckers/objectives.html | 4 + .../bloodsuckers/shaded_bloodsucker.html | 1 + .../antagonists/bloodsucker/clans/clan.html | 1 + .../bloodsucker/clans/clan_ventrue.html | 1 + .../antagonists/bloodsucker/credit_file.html | 27 + .../bloodsucker/powers/gohome.html | 3 + .../bloodsucker/powers/masquerade.html | 1 + .../powers/targeted/mesmerize.html | 7 + .../powers/tremere/_powers_tremere.html | 2 + .../bloodsucker/powers/tremere/auspex.html | 6 + .../bloodsucker/powers/tremere/dominate.html | 6 + .../powers/tremere/thaumaturgy.html | 7 + .../bloodsucker/powers/vassal/recuperate.html | 1 + .../bloodsucker/structures/crypt.html | 1 + .../bloodsucker/structures/objects.html | 1 + .../bloodsucker/vassal/batform.html | 1 + .../bloodsucker/vassal/vassal_datum.html | 1 + .../bloodsucker/vassal/vassal_pinpointer.html | 2 + .../vassal/vassal_types/ex_vassal.html | 1 + .../vassal/vassal_types/favorite_vassal.html | 1 + .../vassal/vassal_types/revenge_vassal.html | 1 + .../arcades/code/minesweeper/minesweeper.html | 1 + .../code/modules/blooper/bark.html | 1 + .../client/verbs/character_directory.html | 2 + .../code/modules/clothing/under/security.html | 1 + modular_zubbers/code/modules/hydroponics.html | 9 + .../code/modules/job_exempt/job_exempt.html | 1 + .../code/modules/job_interns/config.html | 1 + .../code/modules/job_interns/job_interns.html | 1 + .../mining/equipment/survival_pod.html | 1 + .../guardian_types/holoparasite_timestop.html | 1 + .../code/modules/ratqueen/regalrat.html | 1 + .../modules/status_effects/buffs/frenzy.html | 2 + .../code/modules/storyteller/config.html | 1 + .../modules/storyteller/event_defines.html | 6 + .../modules/storyteller/scheduled_event.html | 1 + .../storyteller/storytellers/data/_track.html | 2 + .../storytellers/tellers/_storyteller.html | 1 + .../code/misc-fluff/research.html | 2 + .../tarkon/code/misc-fluff/research.html | 1 + .../wizard_dize/wizard_dice_event.html | 2 + .../code/modules/~donator/mothdonator.html | 2 + modular_zubbers/maps/biodome/sedated_mob.html | 1 + .../modules/entombed_quirk/code/entombed.html | 1 + .../voice/nerdsuit/audacity settings.html | 6 + modular_zubbers/sound/vore/CREDIT.html | 2 + .../sound/vore/sunesound/LICENSE.html | 2 + modular_zzplurt.html | 129 + .../modules/clothing/underwear/shirt.html | 1 + .../modules/clothing/underwear/socks.html | 1 + .../underwear/~generated_files/briefs.html | 1 + .../underwear/~generated_files/shirt.html | 1 + .../sound/voice/catpeople/credits.html | 2 + obj.html | 65 + obj/cascade_portal.html | 2 + obj/crystal_mass.html | 1 + obj/docking_port.html | 7 + obj/docking_port/mobile.html | 21 + obj/docking_port/mobile/arrivals.html | 6 + obj/docking_port/mobile/arrivals_skyrat.html | 1 + obj/docking_port/mobile/emergency.html | 7 + obj/docking_port/mobile/pod.html | 5 + obj/docking_port/mobile/supply.html | 1 + obj/docking_port/stationary.html | 1 + obj/docking_port/stationary/escape_pod.html | 1 + obj/docking_port/stationary/picked.html | 1 + obj/docking_port/stationary/random.html | 1 + obj/docking_port/stationary/transit.html | 1 + obj/durand_shield.html | 19 + obj/effect/abstract/chasm_storage.html | 7 + obj/effect/abstract/elevator_music_zone.html | 1 + obj/effect/abstract/info.html | 1 + obj/effect/abstract/liquid_turf.html | 21 + obj/effect/abstract/liquid_turf/pwr_gamr.html | 1 + obj/effect/abstract/particle_holder.html | 6 + obj/effect/abstract/surveillance_snare.html | 1 + obj/effect/abstract/voidball.html | 1 + obj/effect/anomaly.html | 1 + obj/effect/anomaly/bioscrambler.html | 1 + obj/effect/anomaly/bluespace.html | 1 + obj/effect/anomaly/dimensional.html | 3 + obj/effect/anomaly/ectoplasm.html | 3 + obj/effect/anomaly/flux/big.html | 1 + obj/effect/anomaly/grav.html | 1 + obj/effect/anomaly/hallucination.html | 1 + obj/effect/anomaly/hallucination/decoy.html | 1 + obj/effect/anomaly/pyro.html | 1 + obj/effect/aquarium.html | 1 + obj/effect/ash_rune.html | 1 + obj/effect/baseturf_helper.html | 1 + obj/effect/brimbeam.html | 1 + obj/effect/bug_moving.html | 1 + obj/effect/bump_teleporter.html | 1 + obj/effect/bump_teleporter/filtering.html | 1 + obj/effect/client_image_holder.html | 3 + .../client_image_holder/hallucination.html | 1 + .../hallucination/danger.html | 1 + .../hallucination/fake_door_lock.html | 1 + .../hallucination/xeno.html | 1 + obj/effect/client_image_holder/phobetor.html | 1 + obj/effect/collapse.html | 1 + obj/effect/collapsing_demonic_portal.html | 1 + obj/effect/cosmic_rune.html | 1 + obj/effect/cross_action/spacetime_dist.html | 1 + obj/effect/decal.html | 1 + obj/effect/decal/chempuff.html | 3 + obj/effect/decal/cleanable.html | 1 + obj/effect/decal/cleanable/ants.html | 1 + obj/effect/decal/cleanable/blood.html | 1 + .../decal/cleanable/blood/footprints.html | 1 + .../decal/cleanable/blood/hitsplatter.html | 1 + obj/effect/decal/cleanable/cargo_mark.html | 1 + obj/effect/decal/cleanable/crayon/puzzle.html | 1 + obj/effect/decal/cleanable/fuel_pool.html | 5 + obj/effect/decal/cleanable/traitor_rune.html | 11 + obj/effect/decal/conveyor_sorter.html | 1 + obj/effect/decal/puzzle_dots.html | 1 + obj/effect/decal/remains/human/smokey.html | 1 + obj/effect/dummy/lighting_obj.html | 3 + obj/effect/dummy/phased_mob.html | 1 + obj/effect/dummy/phased_mob/shadow.html | 10 + obj/effect/dummy/phased_mob/spell_jaunt.html | 1 + obj/effect/ebeam/reacting.html | 1 + obj/effect/fishing_float.html | 3 + obj/effect/floating_blade.html | 1 + obj/effect/forcefield.html | 1 + obj/effect/forcefield/cosmic_field.html | 1 + obj/effect/forcefield/wizard.html | 1 + obj/effect/goliath_tentacle.html | 1 + obj/effect/grand_rune.html | 5 + obj/effect/grand_rune/finale.html | 1 + obj/effect/heretic_influence.html | 4 + obj/effect/heretic_rune.html | 9 + obj/effect/hotspot.html | 21 + obj/effect/immovablerod.html | 17 + obj/effect/immovablerod/wizard.html | 9 + obj/effect/landmark/atmospheric_sanity.html | 2 + .../landmark/bitrunning/mob_segment.html | 1 + obj/effect/landmark/event_spawn.html | 4 + obj/effect/landmark/heretic.html | 1 + obj/effect/landmark/start/depsec.html | 1 + obj/effect/landmark/start/hangover.html | 1 + .../landmark/transport/nav_beacon/tram.html | 1 + .../landmark/transport/transport_id.html | 2 + obj/effect/lectern_light.html | 1 + obj/effect/lock_portal.html | 1 + .../airlock/access/any/cent_com.html | 8 + obj/effect/mapping_helpers/atom_injector.html | 1 + .../atom_injector/component_injector.html | 1 + .../atom_injector/custom_icon.html | 1 + .../atom_injector/custom_sound.html | 1 + .../atom_injector/element_injector.html | 1 + .../atom_injector/human_icon_injector.html | 1 + .../atom_injector/trait_injector.html | 1 + .../mapping_helpers/basic_mob_flags.html | 1 + .../mapping_helpers/circuit_spawner.html | 1 + .../mapping_helpers/damaged_window.html | 1 + .../mapping_helpers/dead_body_placer.html | 1 + obj/effect/mapping_helpers/ianbirthday.html | 1 + obj/effect/mapping_helpers/mob_buckler.html | 1 + .../mapping_helpers/requests_console.html | 1 + .../mapping_helpers/trapdoor_placer.html | 6 + .../mapping_helpers/ztrait_injector.html | 1 + obj/effect/meteor.html | 13 + obj/effect/meteor/cluster.html | 1 + obj/effect/meteor/dark_matteor.html | 1 + obj/effect/meteor/meaty/changeling.html | 1 + obj/effect/mine.html | 5 + obj/effect/mine/explosive.html | 1 + obj/effect/mine/explosive/nri.html | 1 + obj/effect/mine/minebot.html | 1 + obj/effect/mine/shrapnel.html | 1 + obj/effect/mob_spawn.html | 5 + obj/effect/mob_spawn/corpse.html | 3 + obj/effect/mob_spawn/corpse/human.html | 1 + .../mob_spawn/corpse/human/guard_zombie.html | 1 + .../mob_spawn/corpse/human/hecu_zombie.html | 1 + .../corpse/human/legioninfested.html | 1 + obj/effect/mob_spawn/corpse/slime.html | 1 + obj/effect/mob_spawn/ghost_role.html | 14 + .../mob_spawn/ghost_role/borer_egg.html | 1 + obj/effect/mob_spawn/ghost_role/drone.html | 11 + .../mob_spawn/ghost_role/human/golem.html | 1 + .../ghost_role/human/golem/servant.html | 1 + .../mob_spawn/ghost_role/human/pirate.html | 1 + .../ghost_role/human/primitive_catgirl.html | 1 + .../human/syndicate/battlecruiser.html | 1 + .../ghost_role/human/virtual_domain.html | 1 + obj/effect/mob_spawn/ghost_role/spider.html | 7 + .../ghost_role/venus_human_trap.html | 1 + obj/effect/overlay/happiness_overlay.html | 1 + obj/effect/overlay/status_display_text.html | 12 + obj/effect/overlay/vis.html | 1 + obj/effect/overlay/windup_bar.html | 1 + obj/effect/overloader_trap.html | 1 + obj/effect/particle_effect/fluid.html | 2 + obj/effect/particle_effect/fluid/foam.html | 13 + .../fluid/foam/firefighting.html | 1 + obj/effect/particle_effect/fluid/smoke.html | 19 + .../particle_effect/fluid/smoke/bad.html | 8 + .../fluid/smoke/colourful.html | 1 + .../particle_effect/water/extinguisher.html | 3 + obj/effect/portal.html | 1 + .../permanent/one_way/reebe/clock_only.html | 1 + obj/effect/powerup.html | 1 + obj/effect/powerup/health.html | 1 + obj/effect/puzzle_death_signal_holder.html | 1 + obj/effect/puzzle_poddoor_open.html | 1 + obj/effect/rune.html | 1 + obj/effect/rune/convert.html | 1 + obj/effect/rune/narsie.html | 1 + obj/effect/rune/wall.html | 1 + obj/effect/side_rune.html | 1 + obj/effect/skyfall_landingzone.html | 1 + obj/effect/slippery_acid.html | 1 + obj/effect/spawner.html | 1 + obj/effect/spawner/armory_spawn.html | 1 + obj/effect/spawner/newbomb.html | 5 + obj/effect/spawner/random.html | 3 + .../random/environmentally_safe_anomaly.html | 1 + obj/effect/spawner/random/glass_debris.html | 1 + obj/effect/spawner/random/glass_shards.html | 1 + .../spawner/random/trash/crushed_can.html | 1 + obj/effect/spawner/random/trash/graffiti.html | 1 + obj/effect/spawner/random/vending.html | 1 + obj/effect/spawner/structure/window.html | 9 + obj/effect/spawner/xmastree.html | 1 + obj/effect/spectre_of_resurrection.html | 1 + obj/effect/spectre_of_resurrection/human.html | 1 + obj/effect/step_trigger/thrower.html | 1 + obj/effect/sunbeam.html | 1 + obj/effect/temp_visual.html | 1 + obj/effect/temp_visual/brim_burst.html | 1 + obj/effect/temp_visual/circle_wave.html | 1 + .../temp_visual/decoy/twitch_afterimage.html | 1 + .../temp_visual/drawing_heretic_rune.html | 1 + obj/effect/temp_visual/effect_trail.html | 1 + .../temp_visual/emerging_ground_spike.html | 1 + obj/effect/temp_visual/falling_rocket.html | 1 + obj/effect/temp_visual/hivebrood_spawn.html | 1 + .../temp_visual/legion_skull_depart.html | 1 + obj/effect/temp_visual/legion_skull_land.html | 1 + obj/effect/temp_visual/lesser_carp_rift.html | 1 + .../lesser_carp_rift/entrance.html | 1 + obj/effect/temp_visual/lightning_strike.html | 1 + .../temp_visual/meteor_heart_death.html | 1 + obj/effect/temp_visual/mining_overlay.html | 1 + obj/effect/temp_visual/portal_animation.html | 2 + obj/effect/temp_visual/resonance.html | 1 + obj/effect/temp_visual/slippery_ice.html | 1 + obj/effect/temp_visual/sonar_ping.html | 1 + .../temp_visual/teleporting_tornado.html | 1 + obj/effect/temp_visual/thrusting_spines.html | 1 + obj/effect/timestop.html | 1 + obj/effect/trading_card_panel.html | 1 + obj/effect/turf_decal.html | 1 + obj/effect/watcher_orbiter.html | 1 + obj/effect/wisp_mobile.html | 1 + obj/effect/wizard_magnetism.html | 1 + obj/gravity_fluff_field.html | 1 + obj/item.html | 213 ++ obj/item/abductor/alien_omnitool.html | 1 + obj/item/access_key.html | 19 + obj/item/ai_module.html | 1 + obj/item/ai_module/malf.html | 1 + obj/item/aicard.html | 1 + obj/item/aicard/syndie/loaded.html | 1 + obj/item/air_sensor.html | 4 + obj/item/airbag.html | 1 + obj/item/airlock_painter.html | 1 + obj/item/airlock_painter/decal.html | 13 + obj/item/airlock_painter/decal/tile.html | 1 + obj/item/aiupgrade.html | 1 + obj/item/ammo_box.html | 8 + obj/item/ammo_box/magazine.html | 1 + .../ammo_box/magazine/internal/cylinder.html | 1 + obj/item/ammo_casing.html | 7 + obj/item/ammo_casing/arrow.html | 1 + obj/item/ammo_casing/foam_dart.html | 1 + .../ammo_casing/strilka310/lionhunter.html | 1 + obj/item/analyzer.html | 1 + obj/item/anomaly_neutralizer.html | 1 + obj/item/anomaly_releaser.html | 1 + obj/item/antag_granter.html | 1 + obj/item/antag_spawner/loadout.html | 1 + obj/item/antag_spawner/nuke_ops.html | 2 + obj/item/aquarium_upgrade.html | 1 + obj/item/armament_points_card.html | 2 + obj/item/arrow_spawner.html | 1 + obj/item/ash_staff.html | 1 + obj/item/assembly.html | 7 + obj/item/assembly/control.html | 1 + obj/item/assembly/control/camkillswitch.html | 1 + obj/item/assembly/control/elevator.html | 5 + .../assembly/control/photobooth_control.html | 1 + obj/item/assembly/control/polarizer.html | 1 + obj/item/assembly/control/showtime.html | 1 + obj/item/assembly/control/ticket_machine.html | 1 + obj/item/assembly/control/transport.html | 1 + .../control/transport/call_button.html | 1 + .../assembly/control/transport/remote.html | 1 + obj/item/assembly/flash.html | 16 + obj/item/assembly/infra.html | 1 + obj/item/assembly/mousetrap.html | 9 + obj/item/assembly/prox_sensor.html | 1 + obj/item/assembly/signaler.html | 1 + obj/item/assembly/trapdoor.html | 5 + obj/item/assembly/voice.html | 1 + obj/item/assembly_holder.html | 13 + obj/item/attachable_soulcatcher.html | 1 + obj/item/autosurgeon.html | 1 + obj/item/bait_can.html | 1 + obj/item/banner.html | 1 + obj/item/barcode.html | 1 + obj/item/barcodescanner.html | 1 + obj/item/bdsm_candle.html | 1 + obj/item/bedsheet.html | 1 + obj/item/bedsheet/gondola.html | 1 + obj/item/bee_smoker.html | 1 + obj/item/bikehorn.html | 1 + obj/item/biopsy_tool.html | 1 + obj/item/bitrunning_disk.html | 4 + obj/item/bitrunning_disk/ability.html | 1 + obj/item/bitrunning_disk/item.html | 1 + obj/item/blood_filter.html | 1 + obj/item/blueprints.html | 24 + obj/item/bluespace_finger.html | 1 + obj/item/bodybag.html | 5 + obj/item/bodypart.html | 94 + obj/item/bodypart/arm.html | 1 + obj/item/bodypart/arm/left.html | 1 + obj/item/bodypart/arm/left/self_destruct.html | 1 + obj/item/bodypart/arm/right.html | 1 + obj/item/bodypart/chest.html | 1 + obj/item/bodypart/chest/arachnid.html | 1 + obj/item/bodypart/head.html | 1 + obj/item/bodypart/leg.html | 11 + obj/item/bodypart/leg/left.html | 1 + obj/item/bodypart/leg/right.html | 1 + obj/item/bombcore/chemical.html | 1 + obj/item/bong.html | 1 + obj/item/book.html | 1 + obj/item/book/bible.html | 5 + obj/item/book/granter.html | 2 + obj/item/book/granter/action.html | 1 + obj/item/book/granter/action/spell.html | 2 + .../granter/action/spell/mime/mimery.html | 5 + .../book/granter/action/spell/mindswap.html | 1 + .../granter/action/spell/true_random.html | 1 + obj/item/book/granter/crafting_recipe.html | 1 + obj/item/book/granter/martial.html | 1 + obj/item/book/granter/sign_language.html | 2 + obj/item/book/kindred.html | 12 + obj/item/book/manual/wiki.html | 1 + obj/item/book/random.html | 1 + obj/item/borer_egg.html | 1 + obj/item/borg/apparatus.html | 3 + obj/item/borg/charger.html | 1 + obj/item/borg/cyborg_omnitool.html | 6 + obj/item/borg/cyborghug.html | 1 + obj/item/borg/forging_setup.html | 1 + obj/item/borg/hydraulic_clamp.html | 1 + obj/item/borg/hydraulic_clamp/mail.html | 2 + obj/item/borg/lollipop.html | 1 + obj/item/borg/paperplane_crossbow.html | 1 + obj/item/borg/projectile_dampen.html | 3 + obj/item/borg/stun.html | 1 + obj/item/borg/upgrade.html | 1 + obj/item/borg/upgrade/selfrepair.html | 1 + obj/item/borg/upgrade/snack_dispenser.html | 1 + obj/item/borg_shapeshifter.html | 5 + obj/item/borg_snack_dispenser.html | 1 + obj/item/bot_assembly.html | 7 + obj/item/boulder.html | 11 + obj/item/boulder/artifact.html | 1 + obj/item/boulder_beacon.html | 3 + obj/item/bounty_cube.html | 1 + obj/item/boxcutter.html | 1 + obj/item/broadcast_camera.html | 1 + obj/item/broken_bottle.html | 3 + obj/item/burner.html | 1 + obj/item/camera.html | 1 + obj/item/camera/siliconcam.html | 3 + obj/item/camera/siliconcam/pai_camera.html | 4 + obj/item/canvas.html | 3 + obj/item/capturedevice.html | 1 + obj/item/card.html | 1 + obj/item/card/cardboard.html | 4 + obj/item/card/emag/battlecruiser.html | 1 + obj/item/card/emag/one_shot.html | 1 + obj/item/card/emagfake.html | 1 + obj/item/card/id.html | 75 + obj/item/card/id/advanced.html | 1 + obj/item/card/id/advanced/chameleon.html | 1 + obj/item/card/id/advanced/heretic.html | 1 + obj/item/card/id/advanced/plainclothes.html | 1 + obj/item/card/id/advanced/prisoner.html | 1 + obj/item/card/mining_point_card.html | 1 + obj/item/cardboard_cutout.html | 11 + obj/item/cardpack.html | 1 + obj/item/cargo_teleporter.html | 1 + obj/item/cautery.html | 1 + obj/item/chainsaw.html | 5 + obj/item/chameleon_scanner.html | 8 + obj/item/changeling/id.html | 1 + obj/item/chisel.html | 1 + obj/item/choice_beacon.html | 3 + obj/item/cigarette.html | 1 + obj/item/cigarette/pipe.html | 1 + obj/item/circuit_component.html | 89 + .../circuit_component/air_alarm_general.html | 1 + .../air_alarm_scrubbers.html | 1 + .../circuit_component/air_alarm_vents.html | 1 + obj/item/circuit_component/airlock.html | 1 + .../airlock_access_event.html | 1 + obj/item/circuit_component/arctan2.html | 1 + obj/item/circuit_component/arithmetic.html | 2 + .../arrest_console_arrest.html | 1 + .../arrest_console_data.html | 1 + obj/item/circuit_component/assoc_literal.html | 1 + obj/item/circuit_component/atmos_meter.html | 1 + obj/item/circuit_component/atmos_pump.html | 1 + .../circuit_component/atmos_volume_pump.html | 1 + obj/item/circuit_component/bci_core.html | 1 + .../circuit_component/begin_animation.html | 1 + .../circuit_component/binary_conversion.html | 1 + obj/item/circuit_component/bot.html | 1 + obj/item/circuit_component/bot_circuit.html | 1 + obj/item/circuit_component/camera.html | 1 + obj/item/circuit_component/cell_charge.html | 1 + obj/item/circuit_component/clock.html | 3 + .../circuit_component/compact_remote.html | 1 + obj/item/circuit_component/compare.html | 1 + .../circuit_component/compare/access.html | 1 + .../circuit_component/compare/comparison.html | 1 + .../compare/health_state.html | 1 + obj/item/circuit_component/compare/logic.html | 1 + .../circuit_component/compare/toggle.html | 1 + .../circuit_component/compare/typecheck.html | 1 + obj/item/circuit_component/concat.html | 1 + obj/item/circuit_component/concat_list.html | 1 + obj/item/circuit_component/controller.html | 1 + .../circuit_component/conveyor_switch.html | 1 + .../circuit_component/decimal_conversion.html | 1 + obj/item/circuit_component/delay.html | 1 + obj/item/circuit_component/digital_valve.html | 1 + obj/item/circuit_component/direction.html | 1 + obj/item/circuit_component/dispenser_bot.html | 1 + .../circuit_component/equipment_action.html | 1 + obj/item/circuit_component/filter_list.html | 1 + obj/item/circuit_component/firealarm.html | 1 + obj/item/circuit_component/foreach.html | 1 + obj/item/circuit_component/format.html | 10 + obj/item/circuit_component/get_column.html | 1 + obj/item/circuit_component/get_variable.html | 1 + obj/item/circuit_component/gps.html | 1 + obj/item/circuit_component/health.html | 1 + obj/item/circuit_component/hear.html | 1 + obj/item/circuit_component/hydroponics.html | 1 + .../circuit_component/id_access_reader.html | 1 + obj/item/circuit_component/id_getter.html | 1 + .../circuit_component/id_info_reader.html | 1 + obj/item/circuit_component/index.html | 1 + obj/item/circuit_component/index_table.html | 1 + obj/item/circuit_component/input_request.html | 1 + obj/item/circuit_component/item_interact.html | 1 + .../circuit_component/keyboard_shell.html | 1 + obj/item/circuit_component/laserpointer.html | 1 + obj/item/circuit_component/length.html | 1 + obj/item/circuit_component/light.html | 1 + obj/item/circuit_component/light_switch.html | 1 + obj/item/circuit_component/list_literal.html | 1 + .../list_literal/ntnet_send.html | 3 + obj/item/circuit_component/list_pick.html | 1 + obj/item/circuit_component/listin.html | 1 + obj/item/circuit_component/matscanner.html | 1 + .../medical_console_data.html | 1 + obj/item/circuit_component/mining.html | 1 + obj/item/circuit_component/mmi.html | 1 + .../circuit_component/mod_adapter_core.html | 1 + obj/item/circuit_component/mod_program.html | 7 + .../mod_program/borg_monitor.html | 1 + .../circuit_component/mod_program/camera.html | 5 + .../mod_program/messenger.html | 1 + .../mod_program/modsuit_control.html | 1 + .../mod_program/notepad.html | 1 + .../circuit_component/mod_program/nt_pay.html | 1 + .../mod_program/ntnetmonitor.html | 1 + .../circuit_component/mod_program/radar.html | 9 + .../mod_program/signaler.html | 1 + .../mod_program/spectre_meter.html | 1 + .../circuit_component/mod_program/status.html | 1 + obj/item/circuit_component/modpc.html | 1 + obj/item/circuit_component/module.html | 1 + obj/item/circuit_component/module_input.html | 1 + obj/item/circuit_component/module_output.html | 1 + obj/item/circuit_component/money_bot.html | 5 + .../circuit_component/money_dispenser.html | 1 + obj/item/circuit_component/not.html | 1 + obj/item/circuit_component/ntnet_receive.html | 1 + obj/item/circuit_component/ntnet_send.html | 1 + .../circuit_component/object_overlay.html | 1 + .../circuit_component/pressuresensor.html | 1 + obj/item/circuit_component/proccall.html | 1 + obj/item/circuit_component/pull.html | 1 + obj/item/circuit_component/radio.html | 1 + obj/item/circuit_component/random.html | 1 + .../reagent_injector_bluespace.html | 4 + .../circuit_component/reagentscanner.html | 1 + obj/item/circuit_component/reflector.html | 1 + obj/item/circuit_component/remotecam.html | 4 + .../circuit_component/remotecam/airlock.html | 1 + obj/item/circuit_component/remotecam/bci.html | 1 + .../circuit_component/remotecam/polaroid.html | 1 + obj/item/circuit_component/router.html | 1 + obj/item/circuit_component/save_shell.html | 1 + obj/item/circuit_component/scanner_gate.html | 5 + .../circuit_component/sdql_operation.html | 1 + obj/item/circuit_component/select.html | 1 + obj/item/circuit_component/self.html | 1 + obj/item/circuit_component/set_variable.html | 1 + .../circuit_component/signal_handler.html | 1 + obj/item/circuit_component/soundemitter.html | 1 + obj/item/circuit_component/spawn_atom.html | 1 + obj/item/circuit_component/species.html | 1 + obj/item/circuit_component/speech.html | 1 + obj/item/circuit_component/split.html | 1 + obj/item/circuit_component/synth.html | 1 + .../circuit_component/target_scanner.html | 1 + obj/item/circuit_component/tempsensor.html | 1 + obj/item/circuit_component/textcase.html | 1 + obj/item/circuit_component/timepiece.html | 1 + obj/item/circuit_component/to_type.html | 1 + obj/item/circuit_component/tonumber.html | 2 + obj/item/circuit_component/tostring.html | 1 + obj/item/circuit_component/trigonometry.html | 2 + obj/item/circuit_component/variable.html | 1 + .../variable/assoc_list/list_remove.html | 1 + .../variable/assoc_list/list_set.html | 1 + .../circuit_component/variable/getter.html | 1 + .../variable/list/listadd.html | 1 + .../variable/list/listremove.html | 1 + .../circuit_component/variable/setter.html | 1 + .../circuit_component/vendor_component.html | 1 + obj/item/circuit_component/view_sensor.html | 1 + obj/item/circuit_component/vim.html | 1 + obj/item/circuit_component/wiremod_gun.html | 1 + .../circuit_component/wiremod_scanner.html | 1 + obj/item/circuitboard.html | 5 + .../computer/order_console/interdyne.html | 3 + obj/item/circuitboard/machine/syndiepad.html | 4 + obj/item/circular_saw.html | 1 + obj/item/claymore/dragonslayer.html | 1 + obj/item/climbing_hook.html | 1 + obj/item/clipboard.html | 4 + obj/item/clipboard/cyborg.html | 1 + obj/item/clockwork.html | 1 + obj/item/clockwork/clockwork_slab.html | 1 + obj/item/clockwork/integration_cog.html | 1 + obj/item/clockwork/replica_fabricator.html | 1 + obj/item/clockwork/trap_placer.html | 1 + obj/item/clockwork/weapon.html | 1 + obj/item/clothing.html | 27 + obj/item/clothing/accessory.html | 11 + obj/item/clothing/accessory/dogtag.html | 1 + obj/item/clothing/accessory/lewdapron.html | 1 + obj/item/clothing/accessory/medal.html | 1 + .../medal/silver/emergency_services.html | 1 + obj/item/clothing/accessory/press_badge.html | 1 + obj/item/clothing/accessory/spy_bug.html | 1 + obj/item/clothing/ears/kinky_headphones.html | 1 + obj/item/clothing/erp_leash.html | 3 + obj/item/clothing/glasses.html | 3 + .../clothing/glasses/blindfold/kinky.html | 1 + obj/item/clothing/glasses/clockwork.html | 1 + .../glasses/clockwork/judicial_visor.html | 1 + .../glasses/clockwork/wraith_spectacles.html | 1 + obj/item/clothing/glasses/hud/ar.html | 3 + .../clothing/glasses/hud/ar/projector.html | 1 + obj/item/clothing/glasses/hypno.html | 1 + .../clothing/glasses/nightmare_vision.html | 1 + obj/item/clothing/glasses/salesman.html | 1 + .../glasses/welding/steampunk_goggles.html | 1 + obj/item/clothing/gloves.html | 1 + obj/item/clothing/gloves/boxing.html | 1 + obj/item/clothing/gloves/cargo_gauntlet.html | 1 + obj/item/clothing/gloves/fishing.html | 1 + obj/item/clothing/gloves/shibari_hands.html | 1 + obj/item/clothing/gloves/tackler.html | 1 + obj/item/clothing/head.html | 3 + obj/item/clothing/head/beanie/black/dboy.html | 1 + obj/item/clothing/head/costume/festive.html | 4 + obj/item/clothing/head/costume/foilhat.html | 1 + obj/item/clothing/head/costume/ushanka.html | 1 + obj/item/clothing/head/cowboy.html | 1 + .../clothing/head/deprivation_helmet.html | 1 + obj/item/clothing/head/fedora/det_hat.html | 1 + .../clothing/head/fedora/inspector_hat.html | 1 + obj/item/clothing/head/hair_tie.html | 1 + obj/item/clothing/head/hats/tophat.html | 1 + .../head/helmet/changeling_hivehead.html | 1 + .../head/helmet/cin_surplus_helmet.html | 1 + .../cin_surplus_helmet/random_color.html | 1 + .../head/helmet/monkey_sentience.html | 1 + .../clothing/head/helmet/sf_sacrificial.html | 1 + obj/item/clothing/head/helmet/space.html | 1 + .../head/helmet/space/akula_wetsuit.html | 1 + .../clothing/head/helmet/space/plasmaman.html | 1 + obj/item/clothing/head/helmet/toggleable.html | 1 + .../head/helmet/toggleable/justice.html | 1 + .../head/helmet/toggleable/pinwheel.html | 1 + obj/item/clothing/head/hooded/berserker.html | 1 + obj/item/clothing/head/mob_holder/pet.html | 4 + obj/item/clothing/head/soft.html | 1 + obj/item/clothing/head/utility/chefhat.html | 1 + obj/item/clothing/head/utility/hardhat.html | 1 + .../head/utility/hardhat/welding.html | 1 + obj/item/clothing/head/wizard.html | 1 + obj/item/clothing/mask.html | 6 + obj/item/clothing/mask/animal.html | 1 + obj/item/clothing/mask/ballgag.html | 1 + obj/item/clothing/mask/breath/anesthetic.html | 1 + obj/item/clothing/mask/chameleon.html | 1 + obj/item/clothing/mask/gas.html | 1 + obj/item/clothing/mask/gas/bdsm_mask.html | 1 + obj/item/clothing/mask/gas/ninja.html | 2 + obj/item/clothing/mask/gas/sechailer.html | 1 + obj/item/clothing/mask/leatherwhip.html | 1 + obj/item/clothing/mask/madness_mask.html | 1 + obj/item/clothing/mask/muzzle/tape.html | 1 + obj/item/clothing/mask/paper.html | 1 + obj/item/clothing/neck/collar_bomb.html | 1 + obj/item/clothing/neck/eldritch_amulet.html | 1 + .../neck/heretic_focus/crimson_medallion.html | 1 + obj/item/clothing/neck/human_petcollar.html | 1 + .../clothing/neck/human_petcollar/locked.html | 1 + obj/item/clothing/neck/inferno_collar.html | 1 + obj/item/clothing/neck/kink_collar.html | 1 + .../clothing/neck/kink_collar/locked.html | 1 + .../clothing/neck/kink_collar/locked/gps.html | 1 + obj/item/clothing/neck/link_scryer.html | 1 + .../neck/link_scryer/loaded/nifsoft.html | 1 + obj/item/clothing/neck/mind_collar.html | 1 + .../clothing/neck/necklace/dope/merchant.html | 1 + obj/item/clothing/neck/security_cape.html | 1 + obj/item/clothing/neck/size_collar.html | 1 + obj/item/clothing/neck/tie.html | 1 + obj/item/clothing/sextoy.html | 13 + obj/item/clothing/sextoy/buttplug.html | 1 + obj/item/clothing/sextoy/condom.html | 1 + obj/item/clothing/sextoy/dildo.html | 1 + .../clothing/sextoy/dildo/custom_dildo.html | 1 + .../clothing/sextoy/dildo/double_dildo.html | 1 + .../sextoy/dildo/double_dildo_end.html | 1 + obj/item/clothing/sextoy/eggvib.html | 1 + .../clothing/sextoy/eggvib/signalvib.html | 1 + obj/item/clothing/sextoy/fleshlight.html | 1 + obj/item/clothing/sextoy/magic_wand.html | 1 + obj/item/clothing/sextoy/nipple_clamps.html | 1 + obj/item/clothing/sextoy/vibrator.html | 1 + obj/item/clothing/sextoy/vibroring.html | 1 + obj/item/clothing/shoes.html | 13 + obj/item/clothing/shoes/clown_shoes.html | 1 + .../shoes/clown_shoes/banana_shoes.html | 1 + obj/item/clothing/shoes/cowboy.html | 1 + obj/item/clothing/shoes/galoshes.html | 1 + obj/item/clothing/shoes/gunboots.html | 1 + obj/item/clothing/shoes/magboots.html | 1 + obj/item/clothing/shoes/shibari_legs.html | 1 + obj/item/clothing/shoes/wheelys.html | 1 + obj/item/clothing/suit.html | 1 + .../clothing/suit/armor/abductor/vest.html | 1 + obj/item/clothing/suit/armor/reactive.html | 13 + .../suit/armor/reactive/barricade.html | 10 + .../suit/armor/reactive/bioscrambling.html | 1 + .../clothing/suit/armor/reactive/stealth.html | 1 + .../clothing/suit/armor/reactive/tesla.html | 1 + .../suit/armor/riot/skinsuit_armor.html | 1 + .../suit/armor/vest/cin_surplus_vest.html | 1 + obj/item/clothing/suit/armor/vest/ctf.html | 1 + .../suit/bio_suit/plaguedoctorsuit.html | 4 + obj/item/clothing/suit/clockwork/cloak.html | 1 + obj/item/clothing/suit/corset.html | 1 + .../clothing/suit/costume/wellworn_shirt.html | 1 + obj/item/clothing/suit/hooded.html | 2 + .../clothing/suit/hooded/cloak/godslayer.html | 1 + obj/item/clothing/suit/hooded/cultrobes.html | 1 + .../suit/hooded/cultrobes/cult_shield.html | 1 + .../clothing/suit/hooded/cultrobes/void.html | 1 + obj/item/clothing/suit/hooded/wintercoat.html | 1 + .../suit/hooded/wintercoat/colourable.html | 1 + .../suit/jacket/det_suit/noir/heister.html | 1 + obj/item/clothing/suit/space.html | 8 + obj/item/clothing/suit/space/emergency.html | 1 + obj/item/clothing/suit/space/hev_suit.html | 1 + .../suit/straight_jacket/shackles.html | 1 + obj/item/clothing/suit/toggle.html | 1 + obj/item/clothing/suit/wizrobe.html | 1 + obj/item/clothing/under.html | 19 + obj/item/clothing/under/akula_wetsuit.html | 1 + .../clothing/under/akula_wetsuit/job.html | 1 + obj/item/clothing/under/color/random.html | 5 + obj/item/clothing/under/shibari.html | 1 + .../rus_army/cin_surplus/random_color.html | 1 + obj/item/clothing/underwear/briefs/nude.html | 10 + obj/item/clothing/underwear/shirt.html | 11 + obj/item/clothing/underwear/socks.html | 17 + obj/item/codeword_granter.html | 1 + obj/item/codex_cicatrix.html | 1 + obj/item/coin.html | 1 + obj/item/coin/eldritch.html | 1 + obj/item/collar_bomb_button.html | 1 + obj/item/computer_disk.html | 3 + obj/item/computer_disk/command.html | 1 + obj/item/computer_disk/virus.html | 2 + obj/item/computer_disk/virus/frame.html | 3 + obj/item/condom_pack.html | 1 + obj/item/construction.html | 6 + obj/item/construction/plumbing.html | 1 + obj/item/construction/plumbing/service.html | 1 + obj/item/construction/rcd.html | 20 + obj/item/construction/rcd/borg.html | 1 + obj/item/construction/rld.html | 1 + obj/item/construction/rtd.html | 3 + obj/item/construction_kit.html | 1 + obj/item/conveyor_sorter.html | 1 + obj/item/cortical_cage.html | 1 + obj/item/cosmic_skull.html | 1 + obj/item/coupon.html | 1 + obj/item/crowbar/power.html | 1 + obj/item/crusher_trophy/bileworm_spewlet.html | 1 + obj/item/crusher_trophy/brimdemon_fang.html | 1 + .../crusher_trophy/broodmother_tongue.html | 1 + obj/item/crusher_trophy/goliath_tentacle.html | 1 + obj/item/crusher_trophy/ice_demon_cube.html | 1 + .../crusher_trophy/legionnaire_spine.html | 1 + obj/item/ctf_flag.html | 1 + obj/item/cult_shift.html | 1 + obj/item/cutting_board.html | 1 + obj/item/defibrillator.html | 1 + obj/item/delivery.html | 1 + obj/item/delivery/big.html | 1 + obj/item/dest_tagger.html | 1 + obj/item/desynchronizer.html | 1 + obj/item/detective_scanner.html | 4 + obj/item/device/custom_kit.html | 1 + obj/item/device/traitor_announcer.html | 1 + obj/item/dice.html | 1 + obj/item/dice/d20/fate.html | 1 + obj/item/disk/ammo_workbench.html | 3 + obj/item/disk/design_disk.html | 6 + obj/item/disk/design_disk/bepis.html | 1 + obj/item/disk/design_disk/limbs.html | 1 + obj/item/disk/nifsoft_uploader.html | 1 + .../disk/nifsoft_uploader/dorms/contract.html | 1 + obj/item/disk/nuclear.html | 1 + obj/item/dna_probe.html | 2 + obj/item/dna_probe/carp_scanner.html | 1 + obj/item/documents.html | 4 + obj/item/documents/photocopy.html | 1 + obj/item/door_seal.html | 1 + obj/item/dragnet_beacon.html | 1 + obj/item/dualsaber.html | 5 + obj/item/dullahan_relay.html | 1 + obj/item/dyespray.html | 6 + obj/item/ectoplasm/revenant.html | 1 + obj/item/eldritch_potion.html | 5 + obj/item/electronics/airlock.html | 6 + obj/item/encryptionkey.html | 1 + obj/item/energy_katana.html | 5 + obj/item/exodrone.html | 1 + obj/item/extinguisher.html | 1 + obj/item/extraction_pack.html | 1 + obj/item/eyesnatcher.html | 1 + obj/item/fireaxe.html | 1 + obj/item/firelance.html | 1 + obj/item/firing_pin.html | 1 + obj/item/firing_pin/paywall.html | 1 + obj/item/fish.html | 29 + obj/item/fish/chasm_crab.html | 1 + obj/item/fish/fryish.html | 1 + obj/item/fish/lavaloop.html | 1 + obj/item/fish/starfish.html | 1 + obj/item/fish/tadpole.html | 1 + obj/item/fish_analyzer.html | 1 + obj/item/fishing_hook.html | 15 + obj/item/fishing_hook/magnet.html | 1 + obj/item/fishing_line.html | 1 + obj/item/fishing_lure.html | 3 + obj/item/fishing_rod.html | 9 + obj/item/fishing_rod/telescopic.html | 1 + obj/item/flashlight.html | 1 + obj/item/flashlight/emp.html | 1 + obj/item/flashlight/flare.html | 1 + obj/item/flashlight/flare/candle.html | 11 + obj/item/flashlight/flashdark.html | 1 + obj/item/flashlight/glowstick.html | 3 + obj/item/flashlight/pen/paramedic.html | 1 + obj/item/flashlight/spotlight.html | 1 + obj/item/flatpack.html | 1 + obj/item/flatpacked_machine.html | 1 + obj/item/folder.html | 1 + obj/item/folder/biscuit.html | 1 + obj/item/folder/biscuit/unsealed.html | 1 + obj/item/food.html | 9 + obj/item/food/badrecipe.html | 1 + obj/item/food/baguette.html | 1 + obj/item/food/baguette/combat.html | 1 + obj/item/food/bait.html | 1 + obj/item/food/bread.html | 1 + obj/item/food/bubblegum.html | 1 + obj/item/food/bubblegum/bubblegum.html | 1 + obj/item/food/cake.html | 1 + obj/item/food/canned/envirochow.html | 1 + obj/item/food/cheese.html | 1 + obj/item/food/cheese/wheel.html | 3 + obj/item/food/clothing.html | 1 + obj/item/food/deadmouse.html | 1 + obj/item/food/donkpocket.html | 1 + obj/item/food/donut.html | 1 + obj/item/food/egg.html | 1 + obj/item/food/egg/raptor_egg.html | 1 + obj/item/food/egg/watcher.html | 1 + obj/item/food/fishmeat/carp.html | 1 + obj/item/food/golem_food.html | 1 + obj/item/food/grown.html | 3 + obj/item/food/grown/banana.html | 1 + obj/item/food/grown/mushroom.html | 1 + obj/item/food/grown/pumpkin.html | 1 + obj/item/food/icecream.html | 1 + obj/item/food/meat/cutlet.html | 1 + obj/item/food/meat/slab.html | 1 + obj/item/food/meat/steak/plain/human.html | 1 + obj/item/food/monkeycube.html | 1 + obj/item/food/nugget.html | 1 + obj/item/food/pancakes.html | 1 + obj/item/food/pie.html | 1 + obj/item/food/pizza.html | 1 + obj/item/food/rationpack.html | 1 + obj/item/food/ready_donk.html | 1 + obj/item/food/sandwich/death.html | 9 + obj/item/food/vendor_tray_meal.html | 1 + obj/item/forcefield_projector.html | 1 + obj/item/forging.html | 1 + obj/item/forging/complete.html | 1 + obj/item/forging/hammer.html | 1 + obj/item/forging/incomplete.html | 1 + obj/item/forging/reagent_weapon/bokken.html | 1 + obj/item/forging/reagent_weapon/hammer.html | 1 + obj/item/frog_contract.html | 1 + obj/item/frog_statue.html | 1 + obj/item/fuel_pellet.html | 1 + obj/item/fugu_gland.html | 1 + obj/item/gas_filter.html | 7 + obj/item/gibtonite.html | 1 + obj/item/gibtonite_hand.html | 1 + obj/item/gift.html | 1 + obj/item/glassblowing.html | 7 + obj/item/glassblowing/blowing_rod.html | 47 + obj/item/glassblowing/molten_glass.html | 5 + obj/item/goldeneye_key.html | 1 + obj/item/golem_shell.html | 1 + obj/item/goliath_infuser_hammer.html | 1 + obj/item/gps.html | 1 + obj/item/gps/computer/beacon.html | 1 + obj/item/graft.html | 1 + obj/item/grapple_gun.html | 1 + obj/item/gravity_harness.html | 1 + obj/item/greentext.html | 1 + obj/item/grenade.html | 13 + obj/item/grenade/c4.html | 1 + obj/item/grenade/c4/es8.html | 1 + obj/item/grenade/c4/ninja.html | 13 + obj/item/grenade/chem_grenade.html | 1 + .../grenade/gas_crystal/healium_crystal.html | 1 + .../gas_crystal/nitrous_oxide_crystal.html | 1 + .../gas_crystal/proto_nitrate_crystal.html | 1 + obj/item/grenade/iedcasing.html | 1 + obj/item/grenade/mirage.html | 1 + obj/item/grenade/primer.html | 1 + obj/item/grenade/smokebomb.html | 3 + obj/item/grenade/xen_crystal.html | 1 + obj/item/grown.html | 1 + obj/item/guardian_creator.html | 1 + obj/item/gun.html | 5 + obj/item/gun/ballistic.html | 22 + .../ar/modular/m44a/grenadelauncher.html | 1 + .../automatic/ar/modular/m44a/shotgun.html | 1 + .../gun/ballistic/automatic/rom_flech.html | 1 + obj/item/gun/ballistic/automatic/rom_smg.html | 1 + .../automatic/smart_machine_gun.html | 1 + .../gun/ballistic/automatic/smartgun.html | 1 + .../automatic/sol_grenade_launcher.html | 1 + .../gun/ballistic/automatic/sol_rifle.html | 1 + .../gun/ballistic/automatic/tommygun.html | 1 + obj/item/gun/ballistic/bow.html | 1 + obj/item/gun/ballistic/bow/clockwork.html | 1 + obj/item/gun/ballistic/revolver/chaplain.html | 1 + obj/item/gun/ballistic/rocketlauncher.html | 1 + .../shotgun/automatic/dual_tube.html | 1 + obj/item/gun/ballistic/shotgun/bulldog.html | 1 + obj/item/gun/blastcannon.html | 43 + obj/item/gun/energy.html | 5 + obj/item/gun/energy/cell_loaded.html | 1 + obj/item/gun/energy/dueling.html | 1 + obj/item/gun/energy/e_gun/dragnet.html | 1 + obj/item/gun/energy/laser/chameleon.html | 11 + obj/item/gun/energy/marksman_revolver.html | 1 + obj/item/gun/energy/modular_laser_rifle.html | 1 + obj/item/gun/energy/recharge.html | 1 + .../energy/recharge/kinetic_accelerator.html | 1 + .../gun/energy/recharge/resonant_system.html | 1 + obj/item/gun/magic.html | 4 + obj/item/gun/magic/midas_hand.html | 1 + obj/item/gun/magic/staff.html | 5 + obj/item/gun/magic/staff/change.html | 1 + obj/item/gun/magic/staff/chaos.html | 3 + obj/item/gun/magic/staff/healing.html | 1 + obj/item/gun/medbeam.html | 5 + obj/item/gun/microfusion.html | 5 + obj/item/gun/syringe.html | 1 + obj/item/hairbrush.html | 1 + obj/item/hairbrush/switchblade.html | 1 + obj/item/hallucinated.html | 1 + obj/item/hand_item/circlegame.html | 1 + obj/item/hand_item/coom.html | 3 + obj/item/hand_item/kisser.html | 1 + obj/item/hand_item/noogie.html | 1 + obj/item/hand_item/self_grasp.html | 1 + obj/item/hand_item/slapper.html | 1 + obj/item/hand_labeler.html | 1 + obj/item/hand_tele.html | 8 + obj/item/handheld_soulcatcher.html | 1 + obj/item/hardened_spike.html | 1 + obj/item/hardened_spike/chem.html | 1 + obj/item/harmalarm.html | 1 + obj/item/healthanalyzer.html | 1 + obj/item/healthanalyzer/simple.html | 1 + obj/item/hemostat.html | 1 + obj/item/heretic_labyrinth_handbook.html | 1 + obj/item/hfr_box.html | 1 + obj/item/hierophant_club.html | 1 + obj/item/highfrequencyblade.html | 1 + obj/item/hivemind_keyboard.html | 1 + obj/item/holochip.html | 1 + obj/item/holocigarette.html | 1 + obj/item/holosign_creator/atmos.html | 1 + obj/item/house_edge.html | 1 + obj/item/hypospray/mkii.html | 1 + obj/item/implant.html | 36 + obj/item/implant/abductor.html | 3 + obj/item/implant/beacon.html | 1 + obj/item/implant/chem.html | 1 + obj/item/implant/explosive.html | 7 + obj/item/implant/explosive/battle_royale.html | 1 + obj/item/implant/mod.html | 1 + obj/item/implant/spell.html | 1 + obj/item/implant/teleport_blocker.html | 1 + obj/item/implant/tracking.html | 1 + obj/item/implant/tracking/c38.html | 1 + obj/item/implant/uplink.html | 4 + obj/item/implantcase.html | 1 + obj/item/implanter.html | 1 + obj/item/implantpad.html | 1 + obj/item/inducer.html | 1 + obj/item/inflatable.html | 1 + obj/item/inspector.html | 8 + obj/item/inspector/clown.html | 5 + obj/item/inspector/clown/bananium.html | 5 + obj/item/instrument.html | 1 + obj/item/instrument/violin/festival.html | 1 + obj/item/integrated_circuit.html | 28 + obj/item/janicart_upgrade.html | 9 + obj/item/key/kink_collar.html | 1 + obj/item/key_card.html | 5 + obj/item/key_card/hotel_room.html | 3 + obj/item/kheiral_cuffs.html | 2 + obj/item/kinetic_crusher.html | 1 + obj/item/kinky_shocker.html | 1 + obj/item/kirbyplants.html | 1 + obj/item/kitchen/tongs.html | 1 + obj/item/knife.html | 1 + obj/item/knife/bloodletter.html | 1 + obj/item/knife/hotknife.html | 1 + obj/item/label.html | 17 + obj/item/language_manual.html | 1 + obj/item/laser_pointer.html | 1 + obj/item/lazarus_injector.html | 5 + obj/item/light.html | 1 + obj/item/light_eater.html | 1 + obj/item/lighter.html | 1 + obj/item/lighter/greyscale.html | 1 + obj/item/lightreplacer.html | 8 + obj/item/lipstick.html | 1 + obj/item/machine_remote.html | 1 + obj/item/mail.html | 1 + obj/item/mail/junkmail.html | 1 + obj/item/mail/traitor.html | 1 + obj/item/market_uplink.html | 1 + obj/item/match.html | 1 + obj/item/mecha_ammo.html | 1 + obj/item/mecha_parts/mecha_equipment.html | 41 + .../mecha_parts/mecha_equipment/air_tank.html | 3 + .../mecha_parts/mecha_equipment/armor.html | 1 + .../mecha_parts/mecha_equipment/drill.html | 1 + .../mecha_parts/mecha_equipment/ejector.html | 1 + .../mecha_equipment/extinguisher.html | 3 + .../mecha_equipment/generator.html | 1 + .../mecha_equipment/gravcatapult.html | 1 + .../mecha_equipment/hydraulic_clamp.html | 1 + .../mecha_equipment/medical/mechmedbeam.html | 1 + .../mecha_equipment/medical/sleeper.html | 1 + .../mecha_equipment/medical/syringe_gun.html | 1 + .../mecha_parts/mecha_equipment/radio.html | 1 + obj/item/mecha_parts/mecha_equipment/rcd.html | 1 + .../mecha_equipment/repair_droid.html | 1 + .../mecha_parts/mecha_equipment/weapon.html | 1 + .../ballistic/launcher/punching_glove.html | 1 + .../mecha_equipment/weapon/paddy_claw.html | 1 + obj/item/mecha_parts/mecha_tracking.html | 1 + obj/item/melee/baseball_bat.html | 1 + obj/item/melee/baton.html | 19 + obj/item/melee/baton/security.html | 1 + obj/item/melee/baton/security/cattleprod.html | 1 + obj/item/melee/baton/telescopic.html | 1 + .../baton/telescopic/contractor_baton.html | 1 + obj/item/melee/blood_magic/manipulator.html | 11 + obj/item/melee/breaching_hammer.html | 1 + obj/item/melee/cleaving_saw.html | 1 + obj/item/melee/cultblade.html | 1 + obj/item/melee/cultblade/haunted.html | 1 + obj/item/melee/energy.html | 3 + obj/item/melee/energy/blade.html | 1 + obj/item/melee/energy/sword/bananium.html | 1 + obj/item/melee/energy/sword/cyborg.html | 1 + obj/item/melee/energy/sword/saber.html | 1 + obj/item/melee/flyswatter.html | 1 + obj/item/melee/powerfist.html | 1 + obj/item/melee/roastingstick.html | 1 + obj/item/melee/rune_carver.html | 1 + obj/item/melee/sabre.html | 1 + obj/item/melee/sickly_blade.html | 1 + obj/item/melee/skateboard.html | 1 + obj/item/melee/touch_attack.html | 9 + obj/item/mending_globule.html | 1 + obj/item/microfusion_cell_attachment.html | 1 + .../overcapacity.html | 1 + .../rechargeable.html | 1 + .../selfcharging.html | 1 + obj/item/microfusion_gun_attachment.html | 2 + .../microfusion_gun_attachment/barrel.html | 1 + .../barrel/scatter.html | 1 + .../microfusion_gun_attachment/heatsink.html | 1 + obj/item/microfusion_gun_attachment/rgb.html | 1 + .../undercharger.html | 1 + obj/item/microfusion_phase_emitter.html | 1 + obj/item/mind_controller.html | 1 + obj/item/minebot_remote_control.html | 1 + obj/item/minespawner.html | 1 + obj/item/mining_scanner.html | 1 + obj/item/mmi.html | 6 + obj/item/mmi/posibrain.html | 1 + obj/item/mmi/posibrain/sphere.html | 1 + obj/item/mod/control.html | 3 + obj/item/mod/control/pre_equipped.html | 1 + .../mod/control/pre_equipped/responsory.html | 1 + obj/item/mod/core.html | 1 + obj/item/mod/core/ethereal.html | 1 + obj/item/mod/core/plasma.html | 1 + obj/item/mod/core/plasma/lavaland.html | 1 + obj/item/mod/core/standard.html | 1 + obj/item/mod/module.html | 8 + obj/item/mod/module/active_sonar.html | 1 + obj/item/mod/module/adrenaline_boost.html | 1 + obj/item/mod/module/anomaly_locked.html | 1 + .../mod/module/anomaly_locked/kinesis.html | 1 + .../module/anomaly_locked/kinesis/admin.html | 1 + .../mod/module/anomaly_locked/teleporter.html | 1 + obj/item/mod/module/armor_booster.html | 1 + obj/item/mod/module/ash_accretion.html | 1 + obj/item/mod/module/atrocinator.html | 1 + obj/item/mod/module/auto_doc.html | 1 + obj/item/mod/module/baton_holster.html | 1 + obj/item/mod/module/chameleon.html | 1 + obj/item/mod/module/circuit.html | 1 + obj/item/mod/module/clamp.html | 1 + obj/item/mod/module/criminalcapture.html | 1 + obj/item/mod/module/dispenser.html | 1 + obj/item/mod/module/dna_lock.html | 1 + obj/item/mod/module/energy_net.html | 1 + obj/item/mod/module/energy_shield.html | 1 + obj/item/mod/module/eradication_lock.html | 1 + obj/item/mod/module/flashlight.html | 1 + obj/item/mod/module/hacker.html | 1 + obj/item/mod/module/hat_stabilizer.html | 1 + obj/item/mod/module/health_analyzer.html | 1 + obj/item/mod/module/holster.html | 1 + obj/item/mod/module/hydraulic.html | 1 + obj/item/mod/module/infiltrator.html | 1 + obj/item/mod/module/jetpack.html | 3 + obj/item/mod/module/magboot.html | 1 + obj/item/mod/module/magnetic_harness.html | 1 + obj/item/mod/module/megaphone.html | 1 + obj/item/mod/module/mister.html | 1 + obj/item/mod/module/mouthhole.html | 1 + obj/item/mod/module/orebag.html | 1 + obj/item/mod/module/organizer.html | 1 + obj/item/mod/module/paper_dispenser.html | 1 + obj/item/mod/module/pathfinder.html | 1 + obj/item/mod/module/plate_compression.html | 1 + obj/item/mod/module/power_kick.html | 1 + obj/item/mod/module/projectile_dampener.html | 1 + obj/item/mod/module/rad_protection.html | 1 + obj/item/mod/module/recycler.html | 1 + obj/item/mod/module/recycler/donk.html | 1 + obj/item/mod/module/rewinder.html | 1 + obj/item/mod/module/shooting_assistant.html | 4 + obj/item/mod/module/smartgun.html | 1 + obj/item/mod/module/sphere_transform.html | 1 + obj/item/mod/module/springlock.html | 1 + obj/item/mod/module/status_readout.html | 1 + obj/item/mod/module/stealth.html | 1 + obj/item/mod/module/storage.html | 1 + obj/item/mod/module/t_ray.html | 1 + obj/item/mod/module/tem.html | 17 + obj/item/mod/module/thermal_regulator.html | 1 + obj/item/mod/module/thread_ripper.html | 1 + obj/item/mod/module/timeline_jumper.html | 1 + obj/item/mod/module/timestopper.html | 1 + obj/item/mod/module/visor.html | 1 + obj/item/mod/module/visor/rave.html | 1 + obj/item/mod/module/weapon_recall.html | 1 + obj/item/modular_computer.html | 61 + obj/item/modular_computer/pda.html | 7 + obj/item/modular_computer/pda/clown.html | 1 + obj/item/modular_computer/pda/nukeops.html | 3 + obj/item/modular_computer/pda/silicon.html | 8 + obj/item/modular_computer/processor.html | 1 + obj/item/mop.html | 13 + obj/item/mop/advanced.html | 1 + obj/item/mounted_machine_gun_folded.html | 1 + obj/item/multitool.html | 7 + obj/item/multitool/circuit.html | 1 + obj/item/multitool/uplink.html | 1 + obj/item/mutant_hand.html | 3 + obj/item/necromantic_stone.html | 1 + obj/item/newspaper.html | 3 + obj/item/nif_hud_adapter.html | 1 + obj/item/nif_repair_kit.html | 1 + obj/item/nifsoft_remover.html | 1 + obj/item/nuclear_challenge.html | 1 + obj/item/nullrod.html | 1 + obj/item/nullrod/nullblade.html | 1 + obj/item/nullrod/staff.html | 1 + obj/item/organ.html | 66 + obj/item/organ/external.html | 5 + obj/item/organ/external/antennae.html | 1 + obj/item/organ/external/genital.html | 1 + obj/item/organ/external/tail.html | 7 + obj/item/organ/external/taur_body.html | 1 + .../organ/external/taur_body/serpentine.html | 1 + obj/item/organ/external/wings.html | 1 + obj/item/organ/external/wings/functional.html | 1 + obj/item/organ/external/wings/moth.html | 1 + obj/item/organ/internal.html | 7 + obj/item/organ/internal/alien/hivenode.html | 1 + .../organ/internal/alien/plasmavessel.html | 1 + obj/item/organ/internal/appendix/corrupt.html | 1 + obj/item/organ/internal/appendix/golem.html | 1 + .../organ/internal/body_egg/alien_embryo.html | 1 + .../internal/body_egg/changeling_egg.html | 1 + obj/item/organ/internal/borer_body.html | 1 + obj/item/organ/internal/brain.html | 31 + obj/item/organ/internal/brain/carp.html | 1 + obj/item/organ/internal/brain/primate.html | 1 + obj/item/organ/internal/brain/shadow.html | 1 + .../internal/brain/shadow/nightmare.html | 1 + obj/item/organ/internal/brain/synth.html | 1 + obj/item/organ/internal/brain/voidwalker.html | 1 + obj/item/organ/internal/cyberimp/arm.html | 4 + .../internal/cyberimp/arm/strongarm.html | 1 + .../internal/cyberimp/brain/anti_stun.html | 1 + .../organ/internal/cyberimp/brain/nif.html | 1 + .../organ/internal/cyberimp/chest/spine.html | 1 + .../organ/internal/cyberimp/eyes/hud.html | 1 + obj/item/organ/internal/ears.html | 5 + .../organ/internal/empowered_borer_egg.html | 1 + obj/item/organ/internal/eyes.html | 3 + obj/item/organ/internal/eyes/corrupt.html | 1 + .../organ/internal/eyes/robotic/glow.html | 32 + obj/item/organ/internal/heart.html | 5 + obj/item/organ/internal/heart/corrupt.html | 1 + obj/item/organ/internal/heart/cybernetic.html | 1 + .../internal/heart/cybernetic/anomalock.html | 1 + obj/item/organ/internal/heart/ethereal.html | 1 + obj/item/organ/internal/heart/freedom.html | 1 + obj/item/organ/internal/heart/gland.html | 1 + obj/item/organ/internal/heart/gondola.html | 1 + obj/item/organ/internal/heart/hemophage.html | 5 + obj/item/organ/internal/heart/nightmare.html | 1 + obj/item/organ/internal/heart/roach.html | 5 + obj/item/organ/internal/heart/snail.html | 3 + obj/item/organ/internal/legion_tumour.html | 1 + obj/item/organ/internal/liver.html | 6 + obj/item/organ/internal/liver/bone.html | 3 + obj/item/organ/internal/liver/corrupt.html | 1 + obj/item/organ/internal/liver/golem.html | 4 + obj/item/organ/internal/liver/gondola.html | 1 + obj/item/organ/internal/lungs.html | 32 + obj/item/organ/internal/lungs/corrupt.html | 1 + obj/item/organ/internal/lungs/ethereal.html | 1 + obj/item/organ/internal/monster_core.html | 26 + .../internal/monster_core/brimdust_sac.html | 4 + .../monster_core/regenerative_core.html | 2 + obj/item/organ/internal/stomach.html | 1 + obj/item/organ/internal/stomach/corrupt.html | 1 + obj/item/organ/internal/stomach/ethereal.html | 7 + obj/item/organ/internal/stomach/golem.html | 1 + obj/item/organ/internal/stomach/synth.html | 1 + obj/item/organ/internal/tongue.html | 18 + obj/item/organ/internal/tongue/corrupt.html | 1 + obj/item/orion_ship.html | 1 + obj/item/pai_cable.html | 1 + obj/item/pai_card.html | 11 + obj/item/paint.html | 1 + obj/item/paint/anycolor.html | 5 + obj/item/paint_palette.html | 1 + obj/item/paper.html | 64 + obj/item/paper/fake_report.html | 2 + obj/item/paper/fake_report/water.html | 3 + obj/item/paper/fluff/scrambled_pass.html | 1 + obj/item/paper/joker.html | 11 + obj/item/paper/monitorkey.html | 1 + obj/item/paper/paperslip/ration_ticket.html | 1 + .../paper/paperslip/ration_ticket/luxury.html | 1 + obj/item/paper/report.html | 1 + obj/item/paper/secretrecipe.html | 1 + obj/item/paper/work_contract.html | 1 + obj/item/paper_bin.html | 1 + obj/item/paper_bin/bundlenatural.html | 1 + obj/item/papercutter.html | 3 + obj/item/paperplane.html | 1 + obj/item/paperplane/syndicate/hardlight.html | 1 + obj/item/paperwork.html | 9 + obj/item/paperwork/photocopy.html | 1 + obj/item/pen.html | 1 + obj/item/pen/edagger.html | 1 + obj/item/pen/uplink.html | 1 + obj/item/perfume.html | 1 + obj/item/permanent_portal_anchor.html | 1 + obj/item/permanent_portal_creator.html | 1 + obj/item/petri_dish.html | 1 + obj/item/ph_booklet.html | 1 + obj/item/ph_meter.html | 1 + obj/item/ph_paper.html | 1 + obj/item/physic_manipulation_tool.html | 3 + obj/item/piggy_bank.html | 2 + obj/item/pillow.html | 1 + obj/item/pinata.html | 1 + obj/item/pinpointer.html | 1 + obj/item/pinpointer/crew.html | 1 + obj/item/pipe.html | 7 + obj/item/pipe_dispenser.html | 1 + obj/item/pipe_dispenser/bluespace.html | 1 + obj/item/pitchfork.html | 3 + obj/item/pizzabox.html | 1 + obj/item/pizzabox/infinite.html | 1 + obj/item/plant_analyzer.html | 41 + obj/item/plaque.html | 1 + obj/item/plate.html | 3 + obj/item/plate_shard.html | 1 + obj/item/plunger.html | 1 + obj/item/polymorph_belt.html | 1 + obj/item/poster.html | 5 + obj/item/poster/quirk.html | 1 + obj/item/powersink.html | 1 + obj/item/pressure_plate.html | 1 + obj/item/pressure_plate/puzzle.html | 1 + obj/item/pushbroom.html | 16 + obj/item/quantum_keycard.html | 1 + obj/item/queen_bee.html | 1 + obj/item/radio.html | 22 + obj/item/radio/headset.html | 1 + obj/item/radio/intercom.html | 10 + obj/item/raptor_dex.html | 1 + obj/item/raw_anomaly_core.html | 9 + obj/item/rcl.html | 1 + obj/item/reagent_containers.html | 13 + obj/item/reagent_containers/blood.html | 1 + obj/item/reagent_containers/borghypo.html | 8 + .../reagent_containers/borghypo/medical.html | 1 + obj/item/reagent_containers/chem_pack.html | 1 + obj/item/reagent_containers/chemtank.html | 1 + obj/item/reagent_containers/condiment.html | 1 + .../reagent_containers/condiment/pack.html | 3 + obj/item/reagent_containers/cup.html | 2 + .../cup/bottle/syrup_bottle.html | 1 + obj/item/reagent_containers/cup/bowl.html | 3 + .../reagent_containers/cup/glass/bottle.html | 1 + .../cup/glass/bottle/champagne.html | 1 + .../cup/glass/bottle/pruno.html | 1 + .../reagent_containers/cup/glass/colocup.html | 1 + .../cup/glass/drinkingglass.html | 3 + .../reagent_containers/cup/glass/shaker.html | 1 + obj/item/reagent_containers/cup/rag.html | 1 + .../reagent_containers/cup/soda_cans.html | 6 + .../cup/soda_cans/skyrat.html | 6 + obj/item/reagent_containers/cup/soup_pot.html | 13 + .../cup/watering_can/advanced.html | 1 + obj/item/reagent_containers/hypospray.html | 1 + .../hypospray/medipen/deforest.html | 1 + obj/item/reagent_containers/pill.html | 1 + obj/item/reagent_containers/spray.html | 1 + obj/item/reagent_containers/syringe.html | 1 + obj/item/research_notes.html | 1 + obj/item/research_paper.html | 1 + obj/item/research_scrap.html | 1 + obj/item/resonator.html | 1 + obj/item/respawn_implant.html | 1 + obj/item/restraints.html | 6 + obj/item/restraints/handcuffs.html | 8 + obj/item/restraints/handcuffs/cable.html | 1 + .../restraints/handcuffs/cable/sinew.html | 2 + obj/item/restraints/handcuffs/milker.html | 1 + obj/item/restraints/legcuffs/beartrap.html | 6 + .../restraints/legcuffs/beartrap/energy.html | 4 + obj/item/restraints/legcuffs/bola.html | 5 + obj/item/restraints/legcuffs/bola/energy.html | 2 + .../restraints/legcuffs/bola/gonbola.html | 2 + .../restraints/legcuffs/bola/tactical.html | 2 + obj/item/resurrection_crystal.html | 1 + obj/item/retractor.html | 1 + obj/item/reverse_bear_trap.html | 1 + obj/item/ritual_totem.html | 1 + obj/item/rna_extractor.html | 1 + obj/item/robot_model.html | 11 + obj/item/robot_model/janitor.html | 1 + obj/item/robot_suit.html | 5 + obj/item/royale_implanter.html | 1 + obj/item/royale_remote.html | 1 + obj/item/rpd_upgrade.html | 1 + obj/item/rsd_interface.html | 1 + obj/item/rsf.html | 3 + obj/item/rsf/cookiesynth.html | 1 + obj/item/runic_vendor_scepter.html | 1 + obj/item/rwd.html | 1 + obj/item/sales_tagger.html | 1 + obj/item/scalpel.html | 1 + obj/item/screwdriver.html | 1 + obj/item/screwdriver/omni_drill.html | 1 + obj/item/secateurs.html | 1 + obj/item/seeds.html | 21 + obj/item/seeds/replicapod.html | 1 + obj/item/sequence_scanner.html | 1 + obj/item/serviette.html | 1 + obj/item/serviette_pack.html | 1 + obj/item/sharpener.html | 2 + obj/item/sharpener/super.html | 2 + obj/item/shield.html | 1 + obj/item/shield/energy.html | 1 + obj/item/shield/riot/flash.html | 1 + obj/item/shield/riot/tele.html | 2 + obj/item/shockpaddles.html | 1 + obj/item/shovel/giant_wrench.html | 1 + obj/item/shuttle_curse.html | 1 + obj/item/sign.html | 1 + obj/item/sign/flag.html | 3 + obj/item/singularityhammer.html | 1 + obj/item/skillchip.html | 81 + obj/item/skillchip/big_pointer.html | 2 + obj/item/skillchip/job/chef.html | 1 + obj/item/skillchip/matrix_taunt.html | 1 + obj/item/sliced_pipe.html | 1 + obj/item/slime_extract.html | 8 + obj/item/slimecross/burning/oil.html | 1 + obj/item/slimecross/stabilized.html | 3 + obj/item/slimepotion.html | 6 + obj/item/slimepotion/slime/sentience.html | 1 + .../slimepotion/slime/sentience/mining.html | 1 + obj/item/smelling_salts.html | 1 + obj/item/soap.html | 8 + obj/item/solfed_reporter.html | 1 + obj/item/soulscythe.html | 1 + obj/item/soulstone.html | 21 + obj/item/spanking_pad.html | 1 + obj/item/sparkler.html | 1 + obj/item/sparring_contract.html | 1 + obj/item/spear.html | 1 + obj/item/spellbook.html | 6 + obj/item/spess_knife.html | 1 + obj/item/stack.html | 90 + obj/item/stack/cable_coil.html | 1 + obj/item/stack/cannonball.html | 1 + obj/item/stack/conveyor.html | 1 + obj/item/stack/ducts.html | 1 + obj/item/stack/license_plates/filled.html | 1 + obj/item/stack/medical.html | 3 + obj/item/stack/medical/gauze.html | 4 + obj/item/stack/medical/mesh.html | 1 + obj/item/stack/medical/wound_recovery.html | 1 + obj/item/stack/ore/bluespace_crystal.html | 1 + obj/item/stack/pipe_cleaner_coil.html | 1 + obj/item/stack/pipe_cleaner_coil/cyborg.html | 5 + obj/item/stack/sheet.html | 10 + obj/item/stack/sheet/wethide.html | 1 + obj/item/stack/shibari_rope.html | 1 + obj/item/stack/sticky_tape.html | 1 + obj/item/stack/tile.html | 7 + obj/item/stack/tile/carpet/neon.html | 1 + obj/item/stack/tile/mineral.html | 1 + obj/item/stake.html | 1 + obj/item/sticker.html | 14 + obj/item/stock_block.html | 1 + obj/item/stock_parts.html | 1 + obj/item/stock_parts/capacitor.html | 3 + obj/item/stock_parts/power_store.html | 21 + obj/item/stock_parts/power_store/cell.html | 1 + .../stock_parts/power_store/cell/crank.html | 1 + .../power_store/cell/microfusion.html | 1 + .../power_store/cell/self_charge.html | 1 + obj/item/storage.html | 9 + obj/item/storage/backpack/duffelbag.html | 5 + .../industrial/cin_surplus/random_color.html | 1 + obj/item/storage/backpack/meat.html | 1 + obj/item/storage/backpack/snail.html | 1 + obj/item/storage/bag/money/dutchmen.html | 1 + obj/item/storage/bag/ore.html | 1 + obj/item/storage/bag/plants.html | 1 + obj/item/storage/bag/quiver.html | 1 + obj/item/storage/bag/trash.html | 1 + .../military/cin_surplus/random_color.html | 1 + obj/item/storage/box.html | 1 + obj/item/storage/box/donkpockets.html | 1 + obj/item/storage/box/foodpack.html | 1 + obj/item/storage/box/holy.html | 3 + obj/item/storage/box/monkeycubes.html | 1 + obj/item/storage/box/papersack.html | 6 + obj/item/storage/box/posterbox.html | 1 + obj/item/storage/box/spaceman_ration.html | 1 + obj/item/storage/box/survival.html | 1 + .../storage/box/syndie_kit/poster_box.html | 1 + obj/item/storage/fancy.html | 1 + obj/item/storage/fancy/cigarettes.html | 1 + obj/item/storage/hypospraykit.html | 1 + obj/item/storage/lockbox.html | 1 + .../storage/lockbox/bitrunning/decrypted.html | 1 + .../storage/lockbox/bitrunning/encrypted.html | 1 + obj/item/storage/lockbox/order.html | 1 + obj/item/storage/medkit.html | 1 + obj/item/storage/organbox.html | 1 + obj/item/storage/part_replacer/bluespace.html | 10 + .../part_replacer/bluespace/tier4/bst.html | 1 + obj/item/storage/portable_chem_mixer.html | 7 + obj/item/storage/pouch/medical.html | 1 + obj/item/storage/toolbox/ammobox/full.html | 1 + obj/item/storage/toolbox/fishing.html | 1 + obj/item/storage/toolbox/guncase/skyrat.html | 1 + obj/item/storage/toolbox/mechanical.html | 1 + obj/item/storage/wallet.html | 2 + obj/item/style_meter.html | 1 + obj/item/summon_beacon.html | 1 + obj/item/supplypod_beacon.html | 1 + obj/item/surgery_tray.html | 3 + obj/item/surgicaldrill.html | 1 + obj/item/survivalcapsule.html | 3 + obj/item/swab.html | 1 + obj/item/swapper.html | 1 + obj/item/switchblade.html | 1 + obj/item/syndicate_teleporter.html | 9 + obj/item/synth_powercord.html | 16 + obj/item/t_scanner.html | 1 + obj/item/t_scanner/adv_mining_scanner.html | 1 + obj/item/table_clock.html | 3 + obj/item/tank.html | 11 + obj/item/tank/internals.html | 1 + obj/item/tank/jetpack.html | 3 + obj/item/tape.html | 1 + obj/item/tape/ruins.html | 1 + obj/item/taperecorder.html | 1 + obj/item/target.html | 1 + obj/item/tattoo_kit.html | 1 + obj/item/tcgcard.html | 3 + obj/item/tcgcard_deck.html | 6 + obj/item/teleport_rod.html | 2 + obj/item/teleportation_scroll.html | 1 + obj/item/thermometer.html | 1 + obj/item/throwing_star/stamina/ninja.html | 10 + obj/item/tk_grab.html | 1 + obj/item/towel.html | 68 + obj/item/toy/balloon.html | 1 + obj/item/toy/balloon/long.html | 1 + obj/item/toy/basketball.html | 8 + obj/item/toy/captainsaid.html | 1 + obj/item/toy/cards.html | 25 + obj/item/toy/cards/deck.html | 5 + obj/item/toy/cards/deck/tarot/haunted.html | 1 + obj/item/toy/crayon.html | 25 + obj/item/toy/eightball.html | 5 + obj/item/toy/eldritch_book.html | 1 + obj/item/toy/intento.html | 1 + obj/item/toy/mecha.html | 48 + obj/item/toy/plush.html | 1 + obj/item/toy/plush/goatplushie.html | 1 + obj/item/toy/plush/moth.html | 1 + obj/item/toy/plush/skyrat/zapp.html | 1 + obj/item/toy/plush/whiny_plushie.html | 1 + obj/item/toy/singlecard.html | 9 + obj/item/toy/spinningtoy.html | 8 + obj/item/toy/sword.html | 1 + obj/item/toy/xmas_cracker.html | 1 + obj/item/trade_chip.html | 1 + obj/item/training_toolbox.html | 8 + obj/item/traitor_bug.html | 1 + obj/item/traitor_machine_trapper.html | 1 + obj/item/traitor_spraycan.html | 24 + obj/item/transfer_valve.html | 1 + obj/item/trapdoor_remote.html | 3 + obj/item/trash/bee.html | 1 + obj/item/turbine_parts.html | 1 + obj/item/turret_control.html | 1 + obj/item/udder.html | 9 + obj/item/universal_scanner.html | 5 + obj/item/uplink.html | 3 + obj/item/usb_cable.html | 1 + obj/item/vape.html | 1 + obj/item/vending_refill.html | 3 + obj/item/virgin_mary.html | 1 + obj/item/void_eater.html | 1 + obj/item/vorpalscythe.html | 1 + obj/item/wallframe/clocktrap.html | 1 + obj/item/wallframe/wall_heater.html | 1 + obj/item/wargame_projector.html | 1 + obj/item/warp_whistle.html | 1 + obj/item/watcher_hatchling.html | 1 + obj/item/weaponcell.html | 1 + obj/item/weldingtool.html | 1 + obj/item/wheelchair.html | 1 + obj/item/wirecutters.html | 1 + obj/item/wrench/medical.html | 1 + obj/item/xenoarch/strange_rock.html | 1 + obj/item/xenoarch/useless_relic.html | 1 + obj/lightning_thrower.html | 1 + obj/loop_spawner.html | 1 + obj/machinery.html | 178 ++ obj/machinery/abductor/console.html | 1 + obj/machinery/abductor/experiment.html | 11 + obj/machinery/ai_voicechanger.html | 1 + obj/machinery/air_sensor.html | 2 + obj/machinery/airalarm.html | 5 + obj/machinery/airlock_controller.html | 1 + obj/machinery/ammo_workbench.html | 3 + obj/machinery/anesthetic_machine.html | 1 + obj/machinery/announcement_system.html | 1 + obj/machinery/anomalous_crystal.html | 1 + obj/machinery/anomalous_crystal/honk.html | 1 + .../anomalous_crystal/possessor.html | 1 + .../anomalous_crystal/theme_warp.html | 1 + obj/machinery/arc_furnace.html | 1 + obj/machinery/armament_station.html | 6 + obj/machinery/atmospherics.html | 88 + obj/machinery/atmospherics/components.html | 20 + .../atmospherics/components/binary.html | 6 + .../components/binary/crystallizer.html | 1 + .../components/binary/dp_vent_pump.html | 1 + .../components/binary/passive_gate.html | 1 + .../components/binary/pressure_valve.html | 1 + .../atmospherics/components/binary/pump.html | 1 + .../components/binary/tank_compressor.html | 3 + .../components/binary/temperature_gate.html | 1 + .../components/binary/temperature_pump.html | 1 + .../atmospherics/components/binary/valve.html | 1 + .../components/binary/volume_pump.html | 1 + .../atmospherics/components/tank.html | 3 + .../atmospherics/components/trinary.html | 1 + .../components/trinary/filter.html | 1 + .../components/trinary/mixer.html | 1 + .../atmospherics/components/unary.html | 1 + .../components/unary/airlock_pump.html | 16 + .../components/unary/bluespace_sender.html | 1 + .../components/unary/delam_scram.html | 5 + .../components/unary/hypertorus.html | 2 + .../components/unary/hypertorus/core.html | 62 + .../components/unary/outlet_injector.html | 1 + .../unary/outlet_injector/monitored.html | 1 + .../components/unary/portables_connector.html | 1 + .../components/unary/thermomachine.html | 3 + .../unary/thermomachine/deployable.html | 1 + .../components/unary/vent_pump.html | 1 + .../components/unary/vent_scrubber.html | 3 + obj/machinery/atmospherics/miner.html | 1 + obj/machinery/atmospherics/pipe.html | 1 + .../atmospherics/pipe/color_adapter.html | 1 + .../atmospherics/pipe/layer_manifold.html | 1 + obj/machinery/atmospherics/pipe/multiz.html | 1 + obj/machinery/atmospherics/pipe/smart.html | 1 + obj/machinery/autolathe.html | 33 + obj/machinery/automatic_respawner.html | 1 + obj/machinery/barsign.html | 1 + obj/machinery/base_alarm.html | 1 + obj/machinery/big_manipulator.html | 11 + obj/machinery/biogenerator.html | 13 + obj/machinery/biogenerator/foodricator.html | 1 + obj/machinery/biogenerator/medstation.html | 1 + obj/machinery/blackbox_recorder.html | 3 + obj/machinery/bluespace_miner.html | 3 + obj/machinery/bluespace_vendor.html | 1 + obj/machinery/bookbinder.html | 1 + obj/machinery/bouldertech.html | 42 + obj/machinery/brm.html | 25 + obj/machinery/bsa.html | 2 + obj/machinery/bsa/full.html | 4 + obj/machinery/bsa/middle.html | 1 + obj/machinery/button.html | 1 + obj/machinery/button/delam_scram.html | 1 + obj/machinery/button/transport/tram.html | 1 + obj/machinery/byteforge.html | 1 + obj/machinery/camera.html | 5 + obj/machinery/camera/emp_proof/motion.html | 3 + obj/machinery/camera/exosuit.html | 1 + obj/machinery/cell_charger_multi.html | 1 + .../cell_charger_multi/wall_mounted.html | 1 + obj/machinery/chem_dispenser.html | 1 + obj/machinery/chem_dispenser/abductor.html | 1 + .../chem_dispenser/chem_synthesizer.html | 1 + obj/machinery/chem_dispenser/drinks.html | 1 + obj/machinery/chem_dispenser/drinks/beer.html | 1 + .../chem_dispenser/frontier_appliance.html | 1 + obj/machinery/chem_dispenser/mutagen.html | 1 + .../chem_dispenser/mutagensaltpeter.html | 1 + obj/machinery/chem_heater.html | 18 + obj/machinery/chem_mass_spec.html | 6 + obj/machinery/chem_master.html | 24 + obj/machinery/chem_recipe_debug.html | 16 + obj/machinery/coffeemaker.html | 1 + obj/machinery/coffeemaker/impressa.html | 1 + obj/machinery/colony_recycler.html | 1 + obj/machinery/component_printer.html | 1 + obj/machinery/computer.html | 1 + obj/machinery/computer/aifixer.html | 1 + obj/machinery/computer/arcade.html | 3 + obj/machinery/computer/arcade/amputation.html | 1 + obj/machinery/computer/arcade/battle.html | 12 + .../computer/arcade/orion_trail.html | 25 + obj/machinery/computer/atmos_control.html | 3 + obj/machinery/computer/auxiliary_base.html | 5 + obj/machinery/computer/bank_machine.html | 1 + obj/machinery/computer/bsa_control.html | 3 + obj/machinery/computer/camera_advanced.html | 3 + .../computer/camera_advanced/abductor.html | 3 + .../camera_advanced/base_construction.html | 10 + .../camera_advanced/shuttle_docker.html | 1 + .../computer/camera_advanced/xenobio.html | 3 + obj/machinery/computer/cargo.html | 12 + obj/machinery/computer/cargo/express.html | 1 + .../computer/centcom_announcement.html | 1 + obj/machinery/computer/communications.html | 13 + obj/machinery/computer/cryopod.html | 1 + .../computer/exodrone_control_console.html | 1 + .../computer/exoscanner_control.html | 1 + obj/machinery/computer/holodeck.html | 3 + obj/machinery/computer/libraryconsole.html | 1 + .../admin_only_do_not_map_in_you_fucker.html | 1 + .../libraryconsole/bookmanagement.html | 3 + .../computer/mech_bay_power_console.html | 1 + obj/machinery/computer/mechpad.html | 7 + obj/machinery/computer/message_monitor.html | 3 + obj/machinery/computer/order_console.html | 31 + .../order_console/cook/interdyne.html | 1 + .../computer/order_console/mining.html | 11 + obj/machinery/computer/pandemic.html | 23 + obj/machinery/computer/piratepad_control.html | 1 + .../computer/piratepad_control/civilian.html | 4 + .../computer/piratepad_control/syndiepad.html | 1 + obj/machinery/computer/pod.html | 1 + obj/machinery/computer/prisoner.html | 1 + obj/machinery/computer/quantum_console.html | 1 + obj/machinery/computer/rdconsole.html | 7 + obj/machinery/computer/rdservercontrol.html | 1 + obj/machinery/computer/records.html | 1 + obj/machinery/computer/records/medical.html | 1 + obj/machinery/computer/records/security.html | 1 + obj/machinery/computer/scan_consolenew.html | 212 ++ obj/machinery/computer/security.html | 1 + .../computer/security/telescreen.html | 1 + .../security/telescreen/entertainment.html | 1 + obj/machinery/computer/shuttle.html | 12 + obj/machinery/computer/shuttle/arrivals.html | 1 + obj/machinery/computer/shuttle/pod.html | 6 + obj/machinery/computer/slot_machine.html | 3 + obj/machinery/computer/station_alert.html | 5 + obj/machinery/computer/telecomms/monitor.html | 1 + obj/machinery/computer/telecomms/server.html | 1 + obj/machinery/computer/teleporter.html | 3 + obj/machinery/computer/terminal.html | 1 + obj/machinery/computer/tram_controls.html | 5 + obj/machinery/computer/turbine_computer.html | 1 + obj/machinery/computer/vaultcontroller.html | 1 + obj/machinery/computer/warrant.html | 1 + obj/machinery/conveyor.html | 1 + obj/machinery/conveyor_switch.html | 1 + obj/machinery/cryo_cell.html | 5 + obj/machinery/cryopod.html | 3 + obj/machinery/ctf.html | 1 + obj/machinery/ctf/control_point.html | 1 + obj/machinery/ctf/spawner.html | 1 + obj/machinery/debug_component_printer.html | 1 + obj/machinery/deepfryer.html | 1 + obj/machinery/defibrillator_mount.html | 1 + obj/machinery/deployable_turret.html | 1 + obj/machinery/destructive_scanner.html | 1 + obj/machinery/dish_drive.html | 1 + obj/machinery/disposal.html | 1 + obj/machinery/disposal/bin.html | 1 + obj/machinery/dna_infuser.html | 1 + obj/machinery/door.html | 36 + obj/machinery/door/airlock.html | 41 + obj/machinery/door/airlock/external.html | 1 + obj/machinery/door/airlock/keyed.html | 8 + .../door/airlock/keyed/hotel_room.html | 3 + obj/machinery/door/airlock/tram.html | 11 + .../door/airlock/vault/derelict.html | 1 + obj/machinery/door/firedoor.html | 25 + obj/machinery/door/password.html | 1 + obj/machinery/door/poddoor.html | 1 + obj/machinery/door/puzzle.html | 1 + obj/machinery/door/window.html | 1 + .../door_buttons/airlock_controller.html | 1 + obj/machinery/doppler_array.html | 5 + obj/machinery/drone_dispenser.html | 1 + obj/machinery/duct.html | 1 + obj/machinery/ecto_sniffer.html | 1 + obj/machinery/electrolyzer.html | 1 + obj/machinery/electrolyzer/co2_cracker.html | 1 + obj/machinery/elevator_control_panel.html | 22 + obj/machinery/exodrone_launcher.html | 1 + obj/machinery/exoscanner.html | 1 + obj/machinery/export_gate.html | 1 + obj/machinery/fax.html | 72 + obj/machinery/field.html | 1 + obj/machinery/field/containment.html | 1 + obj/machinery/field/generator.html | 5 + obj/machinery/firealarm.html | 17 + obj/machinery/fishing_portal_generator.html | 1 + obj/machinery/flasher.html | 1 + obj/machinery/flasher/portable.html | 1 + obj/machinery/flatpacker.html | 15 + obj/machinery/fugitive_locator.html | 3 + obj/machinery/gateway.html | 1 + obj/machinery/goldeneye_upload_terminal.html | 1 + obj/machinery/gravity_generator/main.html | 2 + obj/machinery/gravity_generator/part.html | 2 + obj/machinery/griddle.html | 1 + obj/machinery/griddle/frontier_tabletop.html | 1 + obj/machinery/grill.html | 1 + obj/machinery/gulag_item_reclaimer.html | 1 + obj/machinery/gulag_teleporter.html | 3 + obj/machinery/holopad.html | 14 + obj/machinery/holopad/tutorial.html | 1 + obj/machinery/hydroponics.html | 59 + obj/machinery/hypertorus/interface.html | 1 + obj/machinery/hypnochair.html | 1 + obj/machinery/icecream_vat.html | 1 + obj/machinery/igniter.html | 1 + obj/machinery/incident_display.html | 18 + obj/machinery/interrogator.html | 10 + obj/machinery/iv_drip.html | 1 + obj/machinery/jukebox.html | 1 + obj/machinery/launchpad.html | 5 + obj/machinery/libraryscanner.html | 1 + obj/machinery/lift_indicator.html | 6 + obj/machinery/light.html | 3 + obj/machinery/light_switch.html | 3 + obj/machinery/limbgrower.html | 2 + obj/machinery/loot_locator.html | 1 + obj/machinery/ltsrbt.html | 3 + obj/machinery/materials_market.html | 7 + obj/machinery/mech_bay_recharge_port.html | 1 + obj/machinery/mecha_part_fabricator.html | 32 + obj/machinery/mechpad.html | 6 + obj/machinery/medical_kiosk.html | 1 + obj/machinery/medipen_refiller.html | 1 + obj/machinery/meter.html | 1 + obj/machinery/meter/monitored.html | 1 + obj/machinery/microwave.html | 31 + obj/machinery/mineral.html | 8 + .../mineral/labor_claim_console.html | 1 + obj/machinery/mineral/ore_redemption.html | 1 + obj/machinery/mineral/processing_unit.html | 1 + .../mineral/processing_unit_console.html | 1 + obj/machinery/mineral/stacking_machine.html | 1 + .../stacking_machine/laborstacker.html | 1 + .../mineral/stacking_unit_console.html | 1 + obj/machinery/modular_computer.html | 1 + obj/machinery/modular_computer/preset.html | 1 + .../modular_computer/preset/cargochat.html | 1 + obj/machinery/modular_shield/module.html | 1 + .../modular_shield/module/charger.html | 1 + obj/machinery/modular_shield/module/node.html | 1 + .../modular_shield/module/relay.html | 1 + obj/machinery/modular_shield/module/well.html | 1 + obj/machinery/modular_shield_generator.html | 1 + obj/machinery/module_duplicator.html | 1 + obj/machinery/mounted_machine_gun.html | 1 + obj/machinery/navbeacon.html | 1 + obj/machinery/nebula_shielding.html | 1 + obj/machinery/nebula_shielding/emergency.html | 1 + obj/machinery/netpod.html | 4 + obj/machinery/newscaster.html | 21 + obj/machinery/ntnet_relay.html | 1 + obj/machinery/nuclearbomb.html | 6 + obj/machinery/nuclearbomb/beer.html | 1 + obj/machinery/ore_silo.html | 9 + obj/machinery/ore_silo/colony_lathe.html | 1 + obj/machinery/oven.html | 1 + obj/machinery/oven/stone.html | 1 + obj/machinery/pdapainter.html | 23 + obj/machinery/photobooth.html | 6 + obj/machinery/photocopier.html | 34 + obj/machinery/pipedispenser.html | 1 + obj/machinery/piratepad.html | 1 + obj/machinery/plate_press.html | 1 + obj/machinery/plumbing.html | 4 + obj/machinery/plumbing/acclimator.html | 1 + obj/machinery/plumbing/bottler.html | 1 + obj/machinery/plumbing/buffer.html | 1 + obj/machinery/plumbing/disposer.html | 1 + obj/machinery/plumbing/fermenter.html | 1 + obj/machinery/plumbing/filter.html | 1 + obj/machinery/plumbing/floor_pump.html | 12 + obj/machinery/plumbing/floor_pump/output.html | 1 + obj/machinery/plumbing/grinder_chemical.html | 11 + obj/machinery/plumbing/liquid_pump.html | 1 + obj/machinery/plumbing/pill_press.html | 1 + obj/machinery/plumbing/reaction_chamber.html | 3 + .../plumbing/reaction_chamber/chem.html | 1 + obj/machinery/plumbing/receiver.html | 1 + obj/machinery/plumbing/sender.html | 1 + obj/machinery/plumbing/splitter.html | 1 + obj/machinery/plumbing/synthesizer.html | 1 + .../synthesizer/colony_hydroponics.html | 1 + .../plumbing/synthesizer/water_synth.html | 1 + obj/machinery/porta_turret.html | 1 + .../porta_turret/syndicate/toolbox.html | 1 + obj/machinery/portable_atmospherics.html | 23 + .../portable_atmospherics/canister.html | 3 + .../portable_atmospherics/pipe_scrubber.html | 1 + obj/machinery/portable_atmospherics/pump.html | 1 + .../portable_atmospherics/scrubber.html | 6 + obj/machinery/posialert.html | 1 + obj/machinery/power.html | 1 + obj/machinery/power/apc.html | 34 + obj/machinery/power/colony_ore_thumper.html | 1 + obj/machinery/power/colony_wind_turbine.html | 1 + obj/machinery/power/emitter.html | 1 + obj/machinery/power/emitter/prototype.html | 1 + obj/machinery/power/energy_accumulator.html | 16 + .../power/energy_accumulator/tesla_coil.html | 1 + obj/machinery/power/floodlight.html | 1 + obj/machinery/power/manufacturing.html | 1 + .../power/manufacturing/crafter.html | 1 + .../power/manufacturing/crusher.html | 1 + obj/machinery/power/manufacturing/lathe.html | 1 + obj/machinery/power/manufacturing/router.html | 1 + .../power/manufacturing/smelter.html | 1 + obj/machinery/power/manufacturing/sorter.html | 1 + .../power/manufacturing/storagebox.html | 1 + .../power/manufacturing/unloader.html | 1 + .../power/port_gen/pacman/solid_fuel.html | 1 + obj/machinery/power/portagrav.html | 1 + obj/machinery/power/rtg/portable.html | 1 + obj/machinery/power/shieldwallgen.html | 1 + obj/machinery/power/shuttle_engine.html | 1 + obj/machinery/power/smes.html | 1 + obj/machinery/power/smes/battery_pack.html | 1 + obj/machinery/power/smes/connector.html | 1 + obj/machinery/power/smesbank.html | 1 + obj/machinery/power/solar.html | 6 + obj/machinery/power/solar/deployable.html | 1 + obj/machinery/power/solar_control.html | 1 + obj/machinery/power/stirling_generator.html | 1 + obj/machinery/power/supermatter_crystal.html | 97 + .../power/thermoelectric_generator.html | 15 + obj/machinery/power/tracker.html | 6 + obj/machinery/power/tracker/deployable.html | 1 + obj/machinery/power/turbine.html | 20 + obj/machinery/power/turbine/core_rotor.html | 7 + .../power/turbine/inlet_compressor.html | 3 + .../power/turbine/turbine_outlet.html | 1 + obj/machinery/powerator.html | 1 + obj/machinery/powerator/interdyne.html | 1 + obj/machinery/powerator/tarkon.html | 1 + obj/machinery/prisongate.html | 1 + obj/machinery/processor.html | 1 + obj/machinery/puzzle.html | 1 + obj/machinery/puzzle/password.html | 1 + obj/machinery/puzzle/password/pin.html | 1 + obj/machinery/quantum_server.html | 5 + obj/machinery/reagentgrinder.html | 36 + obj/machinery/recharge_station.html | 7 + obj/machinery/recharger.html | 1 + obj/machinery/requests_console.html | 1 + obj/machinery/research/anomaly_refinery.html | 8 + obj/machinery/restaurant_portal.html | 1 + obj/machinery/rnd.html | 1 + obj/machinery/rnd/destructive_analyzer.html | 18 + obj/machinery/rnd/experimentor.html | 1 + obj/machinery/rnd/production.html | 30 + .../rnd/production/colony_lathe.html | 1 + obj/machinery/rnd/server.html | 1 + obj/machinery/rnd/server/master.html | 1 + obj/machinery/roulette.html | 1 + obj/machinery/satellite.html | 1 + obj/machinery/satellite/meteor_shield.html | 1 + obj/machinery/scanner_gate.html | 1 + obj/machinery/seed_extractor.html | 24 + obj/machinery/self_actualization_device.html | 1 + obj/machinery/shieldwall.html | 1 + obj/machinery/shower.html | 9 + obj/machinery/shuttle_scrambler.html | 1 + obj/machinery/skill_station.html | 1 + obj/machinery/sleeper.html | 1 + obj/machinery/sleeper/party.html | 1 + obj/machinery/smartfridge.html | 11 + obj/machinery/smartfridge/drying.html | 6 + obj/machinery/smartfridge/organ.html | 1 + obj/machinery/smoke_machine.html | 1 + obj/machinery/space_heater.html | 1 + .../space_heater/improvised_chem_heater.html | 1 + obj/machinery/space_heater/wall_mounted.html | 1 + .../spaceship_navigation_beacon.html | 1 + obj/machinery/status_display.html | 16 + .../status_display/department_balance.html | 1 + obj/machinery/status_display/door_timer.html | 18 + .../status_display/random_message.html | 1 + obj/machinery/suit_storage_unit.html | 16 + obj/machinery/syndicatebomb.html | 1 + obj/machinery/teambuilder.html | 1 + obj/machinery/telecomms.html | 15 + obj/machinery/telecomms/allinone.html | 2 + obj/machinery/telecomms/broadcaster.html | 3 + obj/machinery/telecomms/bus.html | 8 + obj/machinery/telecomms/hub.html | 6 + obj/machinery/telecomms/message_server.html | 12 + obj/machinery/telecomms/processor.html | 6 + obj/machinery/telecomms/receiver.html | 9 + obj/machinery/telecomms/relay.html | 14 + obj/machinery/telecomms/server.html | 9 + obj/machinery/ticket_machine.html | 3 + obj/machinery/time_clock.html | 1 + obj/machinery/trading_card_button.html | 1 + obj/machinery/trading_card_holder.html | 1 + obj/machinery/transformer.html | 1 + obj/machinery/transformer_rp.html | 1 + obj/machinery/transport.html | 7 + obj/machinery/transport/crossing_signal.html | 29 + .../transport/crossing_signal/northwest.html | 14 + obj/machinery/transport/destination_sign.html | 1 + obj/machinery/transport/guideway_sensor.html | 1 + obj/machinery/transport/power_rectifier.html | 3 + obj/machinery/transport/tram_controller.html | 1 + .../transport/tram_controller/tcomms.html | 1 + obj/machinery/turretid.html | 1 + obj/machinery/vatgrower.html | 1 + obj/machinery/vending.html | 176 ++ obj/machinery/vending/access.html | 5 + obj/machinery/vending/assaultops_ammo.html | 1 + obj/machinery/vending/autodrobe.html | 1 + obj/machinery/vending/custom.html | 5 + obj/machinery/vending/dorms.html | 1 + obj/machinery/vending/hotdog.html | 1 + obj/machinery/vending/runic_vendor.html | 1 + obj/machinery/vending/subtype_vendor.html | 1 + .../wardrobe/chap_wardrobe/unholy.html | 1 + obj/machinery/washing_machine.html | 1 + obj/machinery/xenoarch.html | 1 + obj/machinery/xenoarch/researcher.html | 1 + obj/merge_conflict_marker.html | 1 + obj/modular_map_root.html | 1 + obj/mystery_box_item.html | 1 + obj/narsie.html | 5 + obj/projectile.html | 126 + obj/projectile/beam/cybersun_laser/flare.html | 1 + .../beam/cybersun_laser/granata.html | 1 + obj/projectile/blastwave.html | 1 + obj/projectile/bullet/c40sol/incendiary.html | 1 + obj/projectile/bullet/c980grenade.html | 1 + .../bullet/c980grenade/shrapnel.html | 1 + obj/projectile/bullet/cannonball.html | 1 + obj/projectile/bullet/coin.html | 1 + obj/projectile/bullet/dart/syringe/dart.html | 1 + obj/projectile/bullet/incendiary.html | 1 + .../bullet/incendiary/fire/backblast.html | 1 + obj/projectile/bullet/junk.html | 1 + obj/projectile/bullet/marksman.html | 1 + obj/projectile/bullet/p50.html | 1 + obj/projectile/bullet/p60strela.html | 1 + .../bullet/pellet/shotgun_rubbershot.html | 1 + obj/projectile/bullet/rocket.html | 4 + obj/projectile/bullet/rocket/pep.html | 6 + obj/projectile/bullet/rocket/srm.html | 3 + .../colossus/wendigo_shockwave.html | 1 + obj/projectile/curse_hand.html | 1 + obj/projectile/energy/chrono_beam.html | 1 + obj/projectile/energy/flora.html | 1 + obj/projectile/energy/medical.html | 1 + .../energy/medical/utility/relocation.html | 1 + obj/projectile/energy/photon.html | 3 + obj/projectile/energy/radiation.html | 1 + obj/projectile/energy_net.html | 1 + obj/projectile/floating_blade.html | 1 + obj/projectile/hallucination.html | 1 + obj/projectile/hook.html | 1 + obj/projectile/kiss.html | 5 + obj/projectile/magic.html | 1 + obj/projectile/magic/aoe.html | 1 + obj/projectile/magic/aoe/lightning.html | 1 + .../magic/arcane_barrage/bloodsucker.html | 4 + obj/projectile/magic/change.html | 1 + obj/projectile/magic/fireball.html | 1 + obj/projectile/magic/midas_round.html | 1 + obj/projectile/magic/star_ball.html | 1 + obj/projectile/moon_parade.html | 1 + obj/projectile/organ.html | 1 + obj/projectile/sneeze.html | 1 + obj/projectile/temp/watcher.html | 1 + obj/projectile/tentacle.html | 1 + obj/projectile/tether.html | 1 + obj/reality_tear.html | 1 + obj/singularity.html | 3 + obj/singularity/dark_matter.html | 1 + obj/structure.html | 1 + obj/structure/ai_core.html | 1 + obj/structure/alien/egg.html | 1 + obj/structure/alien/resin/flower_bud.html | 6 + obj/structure/alien/weeds.html | 5 + obj/structure/alien/weeds/node.html | 1 + obj/structure/altar_of_gods.html | 1 + obj/structure/antfarm.html | 1 + obj/structure/aquarium.html | 3 + obj/structure/aquarium/crab.html | 1 + obj/structure/barricade.html | 1 + obj/structure/bed.html | 1 + obj/structure/bed/dogbed.html | 1 + obj/structure/bed/double.html | 1 + obj/structure/bed/medical.html | 1 + obj/structure/bedsheetbin.html | 1 + obj/structure/blob.html | 1 + obj/structure/blob/special.html | 1 + obj/structure/blob/special/factory.html | 1 + obj/structure/bloodsucker.html | 1 + obj/structure/bloodsucker/ghoulrack.html | 6 + obj/structure/bodycontainer.html | 1 + obj/structure/bodycontainer/morgue.html | 1 + obj/structure/bonfire.html | 3 + obj/structure/bookcase.html | 1 + obj/structure/bookcase/random/fiction.html | 1 + obj/structure/bookcase/random/reference.html | 1 + .../bookcase/random/reference/wizard.html | 1 + obj/structure/broken_flooring.html | 1 + obj/structure/cable.html | 1 + obj/structure/cable/multilayer.html | 1 + obj/structure/cannon.html | 1 + obj/structure/carp_rift.html | 15 + obj/structure/carving_block.html | 1 + obj/structure/cat_house.html | 1 + obj/structure/chair.html | 1 + obj/structure/chair/bronze.html | 1 + obj/structure/chair/milking_machine.html | 1 + obj/structure/chair/pew.html | 1 + obj/structure/chair/shibari_stand.html | 1 + obj/structure/chair/sofa.html | 1 + obj/structure/chair/x_stand.html | 1 + obj/structure/checkoutmachine.html | 1 + obj/structure/chem_separator.html | 15 + obj/structure/chrono_field.html | 1 + obj/structure/closet.html | 8 + obj/structure/closet/body_bag.html | 9 + .../closet/body_bag/environmental.html | 1 + .../body_bag/environmental/prisoner.html | 1 + obj/structure/closet/cardboard.html | 1 + obj/structure/closet/crate.html | 1 + obj/structure/closet/crate/bin.html | 1 + obj/structure/closet/crate/coffin.html | 1 + obj/structure/closet/crate/freezer.html | 1 + obj/structure/closet/crate/grave.html | 1 + obj/structure/closet/crate/mail.html | 1 + obj/structure/closet/crate/mail/economy.html | 1 + obj/structure/closet/crate/miningcar.html | 14 + .../closet/crate/necropolis/tendril.html | 1 + .../crate/secure/bitrunning/decrypted.html | 1 + obj/structure/closet/crate/secure/owned.html | 1 + .../closet/crate/secure/syndicrate.html | 1 + .../closet/crate/tradership_cargo.html | 1 + obj/structure/closet/decay.html | 1 + .../closet/secure_closet/freezer.html | 1 + obj/structure/closet/stasis.html | 1 + obj/structure/closet/supplypod.html | 1 + obj/structure/cursed_slot_machine.html | 1 + obj/structure/curtain.html | 1 + obj/structure/deployable_barricade.html | 1 + obj/structure/deployable_barricade/metal.html | 1 + .../deployable_barricade/metal/plasteel.html | 1 + obj/structure/desk_bell.html | 1 + obj/structure/destructible/clockwork.html | 1 + .../destructible/clockwork/gear_base.html | 1 + .../clockwork/gear_base/powered.html | 1 + .../gear_base/powered/interdiction_lens.html | 1 + .../gear_base/powered/ocular_warden.html | 1 + .../gear_base/powered/tinkerers_cache.html | 1 + .../gear_base/technologists_lectern.html | 1 + .../destructible/clockwork/sigil.html | 1 + .../clockwork/sigil/research.html | 1 + .../clockwork/sigil/transmission.html | 1 + .../clockwork/sigil/vitality.html | 1 + .../destructible/clockwork/trap.html | 1 + .../destructible/clockwork/trap/delay.html | 1 + .../destructible/clockwork/trap/flipper.html | 1 + .../destructible/clockwork/trap/skewer.html | 1 + obj/structure/destructible/cult.html | 1 + .../destructible/cult/item_dispenser.html | 1 + .../destructible/cult/pants_altar.html | 1 + obj/structure/destructible/cult/pylon.html | 1 + .../destructible/eldritch_crucible.html | 1 + obj/structure/detectiveboard.html | 6 + obj/structure/displaycase.html | 1 + obj/structure/displaycase/forsale.html | 1 + obj/structure/displaycase/trophy.html | 1 + obj/structure/displaycase_chassis.html | 1 + obj/structure/disposalholder.html | 5 + obj/structure/disposaloutlet.html | 1 + obj/structure/disposalpipe.html | 6 + obj/structure/disposalpipe/rotator.html | 1 + obj/structure/disposalpipe/sorting.html | 1 + obj/structure/door_assembly.html | 1 + obj/structure/elite_tumor.html | 1 + .../emergency_shield/cult/barrier.html | 4 + obj/structure/emergency_shield/modular.html | 1 + .../emergency_shield/regenerating.html | 1 + obj/structure/energy_net.html | 4 + obj/structure/ethereal_crystal.html | 1 + obj/structure/falsewall/uranium.html | 1 + obj/structure/fermenting_barrel.html | 1 + obj/structure/filingcabinet/employment.html | 1 + obj/structure/filingcabinet/medical.html | 1 + obj/structure/fireaxecabinet.html | 1 + obj/structure/fireplace.html | 1 + obj/structure/flora.html | 3 + obj/structure/flora/tree.html | 1 + obj/structure/fluff.html | 1 + obj/structure/fluff/airlock_filler.html | 1 + obj/structure/fluff/iced_abductor.html | 1 + obj/structure/foamedmetal.html | 1 + obj/structure/frame.html | 27 + obj/structure/frame/computer.html | 15 + obj/structure/frame/machine.html | 21 + obj/structure/gel_cocoon.html | 1 + obj/structure/geyser.html | 1 + obj/structure/ghost_portal.html | 3 + obj/structure/girder.html | 1 + obj/structure/glowshroom.html | 9 + obj/structure/grille.html | 1 + obj/structure/grille/tram.html | 10 + obj/structure/guillotine.html | 1 + obj/structure/gulag_vent.html | 2 + obj/structure/guncase.html | 9 + obj/structure/hololadder.html | 1 + obj/structure/holopay.html | 25 + obj/structure/holosign/barrier.html | 1 + obj/structure/hoop.html | 1 + obj/structure/hoop/minigame.html | 1 + obj/structure/inflatable.html | 1 + obj/structure/inflatable/door.html | 1 + obj/structure/ladder.html | 1 + obj/structure/large_mortar.html | 1 + obj/structure/lavaland/ash_walker.html | 3 + obj/structure/legionturret.html | 1 + obj/structure/light_construct.html | 1 + obj/structure/light_puzzle.html | 1 + obj/structure/liquid_pump.html | 1 + obj/structure/lock_tear.html | 1 + obj/structure/mannequin.html | 1 + obj/structure/meateor_fluff/eyeball.html | 1 + obj/structure/meateor_fluff/flesh_pod.html | 1 + obj/structure/microscope.html | 1 + obj/structure/millstone.html | 1 + obj/structure/mineral_door.html | 1 + .../mineral_door/manual_colony_door.html | 1 + obj/structure/mining_bomb.html | 1 + obj/structure/mirror.html | 1 + obj/structure/mirror/magic.html | 1 + obj/structure/mirror/magic/pride.html | 1 + obj/structure/mob_spawner.html | 1 + obj/structure/moisture_trap.html | 7 + obj/structure/mold.html | 1 + obj/structure/mold/resin.html | 1 + obj/structure/mold/structure.html | 1 + obj/structure/mold/structure/conditioner.html | 1 + obj/structure/mold/structure/core.html | 1 + obj/structure/mop_bucket.html | 1 + obj/structure/mop_bucket/janitorialcart.html | 5 + obj/structure/mounted_gun.html | 1 + obj/structure/mystery_box.html | 1 + obj/structure/no_effect_signpost/void.html | 1 + obj/structure/noticeboard.html | 6 + obj/structure/ore_box.html | 1 + obj/structure/ore_container/food_trough.html | 1 + .../ore_container/material_stand.html | 1 + obj/structure/ore_vein.html | 1 + obj/structure/ore_vent.html | 51 + obj/structure/ore_vent/boss.html | 1 + obj/structure/pinata.html | 1 + obj/structure/pipe_cleaner.html | 1 + obj/structure/plant_tank.html | 1 + obj/structure/plaque.html | 1 + obj/structure/plaque/static_plaque/tram.html | 1 + obj/structure/plasticflaps.html | 1 + obj/structure/punching_bag.html | 1 + obj/structure/punji_sticks.html | 1 + obj/structure/puzzle_blockade.html | 1 + obj/structure/railing.html | 1 + obj/structure/railing/wooden_fencing.html | 1 + .../railing/wooden_fencing/gate.html | 1 + obj/structure/reagent_crafting_bench.html | 1 + obj/structure/reagent_dispensers.html | 3 + obj/structure/reagent_forge.html | 1 + obj/structure/reagent_water_basin.html | 1 + obj/structure/reviving_ashwalker_egg.html | 1 + obj/structure/safe.html | 1 + obj/structure/secure_safe/caps_spare.html | 5 + obj/structure/serpentine_tail.html | 10 + obj/structure/shockplant.html | 1 + obj/structure/sign.html | 3 + obj/structure/sign/painting.html | 2 + obj/structure/sign/painting/eldritch.html | 1 + .../sign/painting/eldritch/beauty.html | 1 + obj/structure/sign/painting/large.html | 7 + obj/structure/sign/picture_frame.html | 1 + .../sign/picture_frame/portrait/bar.html | 1 + obj/structure/sign/poster.html | 3 + obj/structure/sign/poster/traitor.html | 1 + obj/structure/simple_farm.html | 1 + obj/structure/sink.html | 1 + obj/structure/spacevine.html | 1 + obj/structure/spawner.html | 1 + obj/structure/spawner/ice_moon.html | 1 + obj/structure/spawner/lavaland.html | 1 + obj/structure/spider/eggcluster.html | 1 + obj/structure/spider/stickyweb.html | 1 + obj/structure/spider/stickyweb/genetic.html | 1 + obj/structure/spirit_board.html | 1 + obj/structure/stairs_frame.html | 1 + obj/structure/statue.html | 1 + obj/structure/statue/custom.html | 1 + obj/structure/steam_vent.html | 1 + obj/structure/stripper_pole.html | 1 + obj/structure/syndicate_uplink_beacon.html | 1 + obj/structure/table.html | 1 + obj/structure/table/optable.html | 5 + obj/structure/table/optable/abductor.html | 1 + obj/structure/table/rolling.html | 1 + obj/structure/tank_holder.html | 3 + obj/structure/throwing_wheel.html | 6 + obj/structure/toilet.html | 1 + obj/structure/toiletbong.html | 1 + obj/structure/towel_bin.html | 8 + obj/structure/trading_card_summon.html | 1 + obj/structure/training_machine.html | 33 + obj/structure/tram.html | 1 + obj/structure/tram/alt/uranium.html | 1 + obj/structure/tram/spoiler.html | 1 + obj/structure/transport/linear.html | 52 + obj/structure/transport/linear/tram.html | 4 + obj/structure/trap/eldritch.html | 1 + obj/structure/tray.html | 1 + obj/structure/urinal.html | 1 + obj/structure/void_conduit.html | 1 + obj/structure/wall_torch.html | 1 + obj/structure/wargame_hologram.html | 1 + obj/structure/water_source.html | 1 + .../water_source/puddle/healing.html | 1 + obj/structure/weightmachine.html | 1 + obj/structure/windoor_assembly.html | 15 + obj/structure/window.html | 9 + obj/structure/window/reinforced/plasma.html | 1 + obj/structure/wormfarm.html | 1 + obj/structure/wrestling_corner.html | 1 + obj/structure/xen_crystal.html | 1 + obj/structure/xen_pylon.html | 1 + obj/vehicle.html | 64 + obj/vehicle/ridden/bicycle.html | 1 + obj/vehicle/ridden/janicart.html | 5 + obj/vehicle/ridden/rail_cart.html | 1 + obj/vehicle/ridden/scooter/skateboard.html | 1 + .../ridden/scooter/skateboard/wheelys.html | 1 + obj/vehicle/ridden/secway.html | 1 + obj/vehicle/ridden/wheelchair.html | 1 + obj/vehicle/ridden/wheelchair/hardlight.html | 3 + obj/vehicle/ridden/wheelchair/motorized.html | 1 + obj/vehicle/sealed.html | 16 + obj/vehicle/sealed/car.html | 1 + obj/vehicle/sealed/car/clowncar.html | 13 + obj/vehicle/sealed/car/speedwagon.html | 1 + obj/vehicle/sealed/car/vim.html | 3 + obj/vehicle/sealed/mecha.html | 28 + obj/vehicle/sealed/mecha/durand.html | 3 + obj/vehicle/sealed/mecha/justice.html | 8 + obj/vehicle/sealed/mecha/ripley.html | 2 + obj/vehicle/sealed/mecha/ripley/paddy.html | 1 + obj/vehicle/sealed/mecha/savannah_ivanov.html | 3 + obj/vore_belly.html | 5 + particles.html | 1 + procpath.html | 10 + regex/format_component.html | 7 + turf.html | 114 + turf/closed/mineral.html | 7 + turf/closed/mineral/random.html | 3 + turf/closed/wall.html | 8 + turf/closed/wall/mineral/uranium.html | 1 + turf/closed/wall/r_wall.html | 1 + turf/open.html | 31 + turf/open/chasm.html | 1 + turf/open/cliff.html | 1 + turf/open/floor.html | 1 + turf/open/floor/carpet/neon.html | 1 + turf/open/floor/catwalk_floor.html | 4 + turf/open/floor/circuit.html | 5 + turf/open/floor/engine/hull/ceiling.html | 1 + turf/open/floor/glass.html | 5 + turf/open/floor/light.html | 6 + turf/open/floor/plating.html | 6 + turf/open/floor/tram/plate/energized.html | 1 + turf/open/lava.html | 1 + turf/open/mirage.html | 1 + turf/open/misc/asteroid.html | 2 + turf/open/misc/grass.html | 1 + turf/open/openspace.html | 7 + turf/open/openspace/icemoon.html | 1 + turf/open/space.html | 3 + turf/open/space/transit.html | 1 + turf/open/water.html | 5 + turf/open/water/cursed_spring.html | 7 + turf/open/water/hot_spring.html | 1 + turf/open/water/overlay.html | 2 + turf/open/water/overlay/outdoors.html | 2 + turf/open/water/xen_acid.html | 1 + world.html | 131 + 8582 files changed, 43264 insertions(+) create mode 100644 .nojekyll create mode 100644 CNAME create mode 100644 _maps/RandomZLevels/GUIDELINES.html create mode 100644 _maps/map_files/biodome/modules/map legend.html create mode 100644 _maps/map_files/tramstation/maintenance_modules/map legend.html create mode 100644 _maps/safehouses.html create mode 100644 _maps/virtual_domains.html create mode 100644 area.html create mode 100644 area/space.html create mode 100644 area/station/ai_monitored/turret_protected.html create mode 100644 area/station/maintenance.html create mode 100644 atom.html create mode 100644 atom/movable.html create mode 100644 atom/movable/immerse_overlay.html create mode 100644 atom/movable/plane_master_controller.html create mode 100644 atom/movable/render_plane_relay.html create mode 100644 atom/movable/render_step/emissive.html create mode 100644 atom/movable/render_step/emissive_blocker.html create mode 100644 atom/movable/screen.html create mode 100644 atom/movable/screen/action_landing.html create mode 100644 atom/movable/screen/admin_popup.html create mode 100644 atom/movable/screen/alert.html create mode 100644 atom/movable/screen/alert/give.html create mode 100644 atom/movable/screen/alert/give/highfive.html create mode 100644 atom/movable/screen/alert/modlink_call.html create mode 100644 atom/movable/screen/alert/notify_action.html create mode 100644 atom/movable/screen/alert/poll_alert.html create mode 100644 atom/movable/screen/alert/status_effect.html create mode 100644 atom/movable/screen/alert/status_effect/golem_status.html create mode 100644 atom/movable/screen/alert/status_effect/slimed.html create mode 100644 atom/movable/screen/ammo_counter.html create mode 100644 atom/movable/screen/button_palette.html create mode 100644 atom/movable/screen/combattoggle/flashy.html create mode 100644 atom/movable/screen/escape_menu/home_button_text.html create mode 100644 atom/movable/screen/fishing_hud.html create mode 100644 atom/movable/screen/fullscreen/carrier.html create mode 100644 atom/movable/screen/fullscreen/cursor_catcher.html create mode 100644 atom/movable/screen/fullscreen/cursor_catcher/scope.html create mode 100644 atom/movable/screen/hud_bait.html create mode 100644 atom/movable/screen/hunger.html create mode 100644 atom/movable/screen/inventory.html create mode 100644 atom/movable/screen/mafia_popup.html create mode 100644 atom/movable/screen/map_view.html create mode 100644 atom/movable/screen/map_view/char_preview.html create mode 100644 atom/movable/screen/map_view/gateway_port.html create mode 100644 atom/movable/screen/movable.html create mode 100644 atom/movable/screen/movable/action_button.html create mode 100644 atom/movable/screen/palette_scroll.html create mode 100644 atom/movable/screen/parallax_layer/random.html create mode 100644 atom/movable/screen/parallax_layer/random/space_gas.html create mode 100644 atom/movable/screen/plane_master.html create mode 100644 atom/movable/screen/plane_master/parallax.html create mode 100644 atom/movable/screen/plane_master/rendering_plate.html create mode 100644 atom/movable/screen/plane_master/rendering_plate/lighting.html create mode 100644 atom/movable/screen/text/screen_timer.html create mode 100644 atom/movable/screen/wanted.html create mode 100644 atom/movable/visual/cryo_occupant.html create mode 100644 client.html create mode 100644 code/__DEFINES.html create mode 100644 code/__DEFINES/DNA.html create mode 100644 code/__DEFINES/MC.html create mode 100644 code/__DEFINES/__globals.html create mode 100644 code/__DEFINES/_click.html create mode 100644 code/__DEFINES/_flags.html create mode 100644 code/__DEFINES/_helpers.html create mode 100644 code/__DEFINES/_protect.html create mode 100644 code/__DEFINES/_tick.html create mode 100644 code/__DEFINES/access.html create mode 100644 code/__DEFINES/achievements.html create mode 100644 code/__DEFINES/acid.html create mode 100644 code/__DEFINES/actions.html create mode 100644 code/__DEFINES/admin.html create mode 100644 code/__DEFINES/admin_verb.html create mode 100644 code/__DEFINES/adventure.html create mode 100644 code/__DEFINES/ai/ai.html create mode 100644 code/__DEFINES/ai/ai_blackboard.html create mode 100644 code/__DEFINES/ai/bot_keys.html create mode 100644 code/__DEFINES/ai/carp.html create mode 100644 code/__DEFINES/ai/haunted.html create mode 100644 code/__DEFINES/ai/monsters.html create mode 100644 code/__DEFINES/ai/pet_commands.html create mode 100644 code/__DEFINES/ai/pets.html create mode 100644 code/__DEFINES/ai/simplemob.html create mode 100644 code/__DEFINES/ai/slime.html create mode 100644 code/__DEFINES/ai/tourist.html create mode 100644 code/__DEFINES/ai/trader.html create mode 100644 code/__DEFINES/ai/ventcrawling.html create mode 100644 code/__DEFINES/alarm.html create mode 100644 code/__DEFINES/alerts.html create mode 100644 code/__DEFINES/announcements.html create mode 100644 code/__DEFINES/anomaly.html create mode 100644 code/__DEFINES/antagonists.html create mode 100644 code/__DEFINES/apc_defines.html create mode 100644 code/__DEFINES/arcades.html create mode 100644 code/__DEFINES/art.html create mode 100644 code/__DEFINES/assemblies.html create mode 100644 code/__DEFINES/assert.html create mode 100644 code/__DEFINES/atmospherics/atmos_core.html create mode 100644 code/__DEFINES/atmospherics/atmos_helpers.html create mode 100644 code/__DEFINES/atmospherics/atmos_machinery.html create mode 100644 code/__DEFINES/atmospherics/atmos_mapping_helpers.html create mode 100644 code/__DEFINES/atmospherics/atmos_mob_interaction.html create mode 100644 code/__DEFINES/atmospherics/atmos_piping.html create mode 100644 code/__DEFINES/atom_hud.html create mode 100644 code/__DEFINES/basic_mobs.html create mode 100644 code/__DEFINES/basketball.html create mode 100644 code/__DEFINES/bitrunning.html create mode 100644 code/__DEFINES/blood.html create mode 100644 code/__DEFINES/bodyparts.html create mode 100644 code/__DEFINES/botany.html create mode 100644 code/__DEFINES/callbacks.html create mode 100644 code/__DEFINES/cameranets.html create mode 100644 code/__DEFINES/cargo.html create mode 100644 code/__DEFINES/chat.html create mode 100644 code/__DEFINES/chat_filter.html create mode 100644 code/__DEFINES/cleaning.html create mode 100644 code/__DEFINES/click.html create mode 100644 code/__DEFINES/client.html create mode 100644 code/__DEFINES/clothing.html create mode 100644 code/__DEFINES/colors.html create mode 100644 code/__DEFINES/combat.html create mode 100644 code/__DEFINES/communications.html create mode 100644 code/__DEFINES/computers.html create mode 100644 code/__DEFINES/configuration.html create mode 100644 code/__DEFINES/construction/actions.html create mode 100644 code/__DEFINES/construction/material.html create mode 100644 code/__DEFINES/construction/rcd.html create mode 100644 code/__DEFINES/construction/structures.html create mode 100644 code/__DEFINES/cooldowns.html create mode 100644 code/__DEFINES/crafting.html create mode 100644 code/__DEFINES/crushing.html create mode 100644 code/__DEFINES/ctf.html create mode 100644 code/__DEFINES/cult.html create mode 100644 code/__DEFINES/database.html create mode 100644 code/__DEFINES/dcs/flags.html create mode 100644 code/__DEFINES/dcs/helpers.html create mode 100644 code/__DEFINES/dcs/signals/signals_action.html create mode 100644 code/__DEFINES/dcs/signals/signals_admin.html create mode 100644 code/__DEFINES/dcs/signals/signals_adventure.html create mode 100644 code/__DEFINES/dcs/signals/signals_ai_controller.html create mode 100644 code/__DEFINES/dcs/signals/signals_area.html create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_attack.html create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_explosion.html create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_lighting.html create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.html create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.html create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.html create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.html create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.html create mode 100644 code/__DEFINES/dcs/signals/signals_backpack.html create mode 100644 code/__DEFINES/dcs/signals/signals_beam.html create mode 100644 code/__DEFINES/dcs/signals/signals_bitrunning.html create mode 100644 code/__DEFINES/dcs/signals/signals_blob.html create mode 100644 code/__DEFINES/dcs/signals/signals_bot.html create mode 100644 code/__DEFINES/dcs/signals/signals_camera.html create mode 100644 code/__DEFINES/dcs/signals/signals_changeling.html create mode 100644 code/__DEFINES/dcs/signals/signals_circuit.html create mode 100644 code/__DEFINES/dcs/signals/signals_client.html create mode 100644 code/__DEFINES/dcs/signals/signals_closet.html create mode 100644 code/__DEFINES/dcs/signals/signals_clothing.html create mode 100644 code/__DEFINES/dcs/signals/signals_container.html create mode 100644 code/__DEFINES/dcs/signals/signals_customizable.html create mode 100644 code/__DEFINES/dcs/signals/signals_cytology.html create mode 100644 code/__DEFINES/dcs/signals/signals_datum.html create mode 100644 code/__DEFINES/dcs/signals/signals_event.html create mode 100644 code/__DEFINES/dcs/signals/signals_fish.html create mode 100644 code/__DEFINES/dcs/signals/signals_food.html create mode 100644 code/__DEFINES/dcs/signals/signals_gib.html create mode 100644 code/__DEFINES/dcs/signals/signals_global.html create mode 100644 code/__DEFINES/dcs/signals/signals_global_object.html create mode 100644 code/__DEFINES/dcs/signals/signals_heretic.html create mode 100644 code/__DEFINES/dcs/signals/signals_hud.html create mode 100644 code/__DEFINES/dcs/signals/signals_hydroponic.html create mode 100644 code/__DEFINES/dcs/signals/signals_janitor.html create mode 100644 code/__DEFINES/dcs/signals/signals_key.html create mode 100644 code/__DEFINES/dcs/signals/signals_ladder.html create mode 100644 code/__DEFINES/dcs/signals/signals_lazy_templates.html create mode 100644 code/__DEFINES/dcs/signals/signals_leash.html create mode 100644 code/__DEFINES/dcs/signals/signals_lift.html create mode 100644 code/__DEFINES/dcs/signals/signals_light_eater.html create mode 100644 code/__DEFINES/dcs/signals/signals_market.html create mode 100644 code/__DEFINES/dcs/signals/signals_material_container.html create mode 100644 code/__DEFINES/dcs/signals/signals_medical.html create mode 100644 code/__DEFINES/dcs/signals/signals_mind.html create mode 100644 code/__DEFINES/dcs/signals/signals_mining.html create mode 100644 code/__DEFINES/dcs/signals/signals_mob/signals_mob_ai.html create mode 100644 code/__DEFINES/dcs/signals/signals_mob/signals_mob_arcade.html create mode 100644 code/__DEFINES/dcs/signals/signals_mob/signals_mob_basic.html create mode 100644 code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.html create mode 100644 code/__DEFINES/dcs/signals/signals_mob/signals_mob_guardian.html create mode 100644 code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.html create mode 100644 code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.html create mode 100644 code/__DEFINES/dcs/signals/signals_mob/signals_mob_silicon.html create mode 100644 code/__DEFINES/dcs/signals/signals_mob/signals_mob_simple.html create mode 100644 code/__DEFINES/dcs/signals/signals_mob/signals_mob_spawner.html create mode 100644 code/__DEFINES/dcs/signals/signals_mod.html create mode 100644 code/__DEFINES/dcs/signals/signals_modular_computer.html create mode 100644 code/__DEFINES/dcs/signals/signals_moveloop.html create mode 100644 code/__DEFINES/dcs/signals/signals_movetype.html create mode 100644 code/__DEFINES/dcs/signals/signals_music.html create mode 100644 code/__DEFINES/dcs/signals/signals_object.html create mode 100644 code/__DEFINES/dcs/signals/signals_operating_computer.html create mode 100644 code/__DEFINES/dcs/signals/signals_operatives.html create mode 100644 code/__DEFINES/dcs/signals/signals_painting.html create mode 100644 code/__DEFINES/dcs/signals/signals_proxmonitor.html create mode 100644 code/__DEFINES/dcs/signals/signals_radiation.html create mode 100644 code/__DEFINES/dcs/signals/signals_reagent.html create mode 100644 code/__DEFINES/dcs/signals/signals_restaurant.html create mode 100644 code/__DEFINES/dcs/signals/signals_scangate.html create mode 100644 code/__DEFINES/dcs/signals/signals_screentips.html create mode 100644 code/__DEFINES/dcs/signals/signals_spatial_grid.html create mode 100644 code/__DEFINES/dcs/signals/signals_species.html create mode 100644 code/__DEFINES/dcs/signals/signals_spell.html create mode 100644 code/__DEFINES/dcs/signals/signals_storage.html create mode 100644 code/__DEFINES/dcs/signals/signals_subsystem.html create mode 100644 code/__DEFINES/dcs/signals/signals_swab.html create mode 100644 code/__DEFINES/dcs/signals/signals_techweb.html create mode 100644 code/__DEFINES/dcs/signals/signals_tools.html create mode 100644 code/__DEFINES/dcs/signals/signals_traitor.html create mode 100644 code/__DEFINES/dcs/signals/signals_transform.html create mode 100644 code/__DEFINES/dcs/signals/signals_transport.html create mode 100644 code/__DEFINES/dcs/signals/signals_turf.html create mode 100644 code/__DEFINES/dcs/signals/signals_twohand.html create mode 100644 code/__DEFINES/dcs/signals/signals_vehicle.html create mode 100644 code/__DEFINES/dcs/signals/signals_voidwalker.html create mode 100644 code/__DEFINES/dcs/signals/signals_wash.html create mode 100644 code/__DEFINES/dcs/signals/signals_wizard.html create mode 100644 code/__DEFINES/dcs/signals/signals_xeno_control.html create mode 100644 code/__DEFINES/dcs/signals/uplink.html create mode 100644 code/__DEFINES/deadchat_control.html create mode 100644 code/__DEFINES/devices.html create mode 100644 code/__DEFINES/directional.html create mode 100644 code/__DEFINES/diseases.html create mode 100644 code/__DEFINES/dna_infuser_defines.html create mode 100644 code/__DEFINES/drone.html create mode 100644 code/__DEFINES/dynamic.html create mode 100644 code/__DEFINES/economy.html create mode 100644 code/__DEFINES/electrified_buckle.html create mode 100644 code/__DEFINES/events.html create mode 100644 code/__DEFINES/exosuit_fab.html create mode 100644 code/__DEFINES/experisci.html create mode 100644 code/__DEFINES/explosions.html create mode 100644 code/__DEFINES/external_organs.html create mode 100644 code/__DEFINES/firealarm.html create mode 100644 code/__DEFINES/fish.html create mode 100644 code/__DEFINES/fonts.html create mode 100644 code/__DEFINES/food.html create mode 100644 code/__DEFINES/footsteps.html create mode 100644 code/__DEFINES/fov.html create mode 100644 code/__DEFINES/generators.html create mode 100644 code/__DEFINES/ghost.html create mode 100644 code/__DEFINES/gravity.html create mode 100644 code/__DEFINES/hud.html create mode 100644 code/__DEFINES/icon_smoothing.html create mode 100644 code/__DEFINES/id_cards.html create mode 100644 code/__DEFINES/implants.html create mode 100644 code/__DEFINES/important_recursive_contents.html create mode 100644 code/__DEFINES/injection.html create mode 100644 code/__DEFINES/input.html create mode 100644 code/__DEFINES/instruments.html create mode 100644 code/__DEFINES/interaction_flags.html create mode 100644 code/__DEFINES/inventory.html create mode 100644 code/__DEFINES/ipintel.html create mode 100644 code/__DEFINES/is_helpers.html create mode 100644 code/__DEFINES/jobs.html create mode 100644 code/__DEFINES/lag_switch.html create mode 100644 code/__DEFINES/language.html create mode 100644 code/__DEFINES/layers.html create mode 100644 code/__DEFINES/library.html create mode 100644 code/__DEFINES/lighting.html create mode 100644 code/__DEFINES/lights.html create mode 100644 code/__DEFINES/living.html create mode 100644 code/__DEFINES/logging.html create mode 100644 code/__DEFINES/machines.html create mode 100644 code/__DEFINES/magic.html create mode 100644 code/__DEFINES/map_exporter.html create mode 100644 code/__DEFINES/map_switch.html create mode 100644 code/__DEFINES/mapping.html create mode 100644 code/__DEFINES/maps.html create mode 100644 code/__DEFINES/market.html create mode 100644 code/__DEFINES/maths.html create mode 100644 code/__DEFINES/matrices.html create mode 100644 code/__DEFINES/mecha.html create mode 100644 code/__DEFINES/medical.html create mode 100644 code/__DEFINES/megafauna.html create mode 100644 code/__DEFINES/melee.html create mode 100644 code/__DEFINES/memory_defines.html create mode 100644 code/__DEFINES/mining.html create mode 100644 code/__DEFINES/mob_spawn.html create mode 100644 code/__DEFINES/mobfactions.html create mode 100644 code/__DEFINES/mobs.html create mode 100644 code/__DEFINES/mod.html create mode 100644 code/__DEFINES/modular_computer.html create mode 100644 code/__DEFINES/monkeys.html create mode 100644 code/__DEFINES/movement.html create mode 100644 code/__DEFINES/movement_info.html create mode 100644 code/__DEFINES/multiz.html create mode 100644 code/__DEFINES/nitrile.html create mode 100644 code/__DEFINES/nozzle_define.html create mode 100644 code/__DEFINES/nuclear_bomb.html create mode 100644 code/__DEFINES/obj_flags.html create mode 100644 code/__DEFINES/observers.html create mode 100644 code/__DEFINES/organ_movement.html create mode 100644 code/__DEFINES/overlays.html create mode 100644 code/__DEFINES/pai.html create mode 100644 code/__DEFINES/paintings.html create mode 100644 code/__DEFINES/paper.html create mode 100644 code/__DEFINES/particles.html create mode 100644 code/__DEFINES/path.html create mode 100644 code/__DEFINES/perf_test.html create mode 100644 code/__DEFINES/plumbing.html create mode 100644 code/__DEFINES/polls.html create mode 100644 code/__DEFINES/power.html create mode 100644 code/__DEFINES/preferences.html create mode 100644 code/__DEFINES/procpath.html create mode 100644 code/__DEFINES/projectiles.html create mode 100644 code/__DEFINES/pronouns.html create mode 100644 code/__DEFINES/qdel.html create mode 100644 code/__DEFINES/quirks.html create mode 100644 code/__DEFINES/radiation.html create mode 100644 code/__DEFINES/radio.html create mode 100644 code/__DEFINES/radioactive_nebula.html create mode 100644 code/__DEFINES/random_spawner.html create mode 100644 code/__DEFINES/reactions.html create mode 100644 code/__DEFINES/reagents.html create mode 100644 code/__DEFINES/regex.html create mode 100644 code/__DEFINES/religion.html create mode 100644 code/__DEFINES/research.html create mode 100644 code/__DEFINES/research/anomalies.html create mode 100644 code/__DEFINES/research/research_categories.html create mode 100644 code/__DEFINES/research/slimes.html create mode 100644 code/__DEFINES/revolution.html create mode 100644 code/__DEFINES/robots.html create mode 100644 code/__DEFINES/rotation.html create mode 100644 code/__DEFINES/roundend.html create mode 100644 code/__DEFINES/rust_g.html create mode 100644 code/__DEFINES/say.html create mode 100644 code/__DEFINES/screentips.html create mode 100644 code/__DEFINES/security.html create mode 100644 code/__DEFINES/shuttles.html create mode 100644 code/__DEFINES/sight.html create mode 100644 code/__DEFINES/skills.html create mode 100644 code/__DEFINES/song.html create mode 100644 code/__DEFINES/sort_types.html create mode 100644 code/__DEFINES/sound.html create mode 100644 code/__DEFINES/space.html create mode 100644 code/__DEFINES/spaceman_dmm.html create mode 100644 code/__DEFINES/spacevines.html create mode 100644 code/__DEFINES/spatial_gridmap.html create mode 100644 code/__DEFINES/species_clothing_paths.html create mode 100644 code/__DEFINES/sprite_accessories.html create mode 100644 code/__DEFINES/stack.html create mode 100644 code/__DEFINES/stack_trace.html create mode 100644 code/__DEFINES/stat_tracking.html create mode 100644 code/__DEFINES/station.html create mode 100644 code/__DEFINES/status_effects.html create mode 100644 code/__DEFINES/strippable.html create mode 100644 code/__DEFINES/subsystems.html create mode 100644 code/__DEFINES/supermatter.html create mode 100644 code/__DEFINES/surgery.html create mode 100644 code/__DEFINES/text.html create mode 100644 code/__DEFINES/tgs.html create mode 100644 code/__DEFINES/tgui.html create mode 100644 code/__DEFINES/time.html create mode 100644 code/__DEFINES/tools.html create mode 100644 code/__DEFINES/toys.html create mode 100644 code/__DEFINES/traits/_traits.html create mode 100644 code/__DEFINES/traits/declarations.html create mode 100644 code/__DEFINES/traits/macros.html create mode 100644 code/__DEFINES/traits/sources.html create mode 100644 code/__DEFINES/tts.html create mode 100644 code/__DEFINES/turbine_defines.html create mode 100644 code/__DEFINES/turfs.html create mode 100644 code/__DEFINES/unit_tests.html create mode 100644 code/__DEFINES/uplink.html create mode 100644 code/__DEFINES/vehicles.html create mode 100644 code/__DEFINES/verb_manager.html create mode 100644 code/__DEFINES/visual_helpers.html create mode 100644 code/__DEFINES/vv.html create mode 100644 code/__DEFINES/wiremod.html create mode 100644 code/__DEFINES/wires.html create mode 100644 code/__DEFINES/wounds.html create mode 100644 code/__DEFINES/xenobiology.html create mode 100644 code/__DEFINES/zoom.html create mode 100644 code/__DEFINES/~skyrat_defines/DNA.html create mode 100644 code/__DEFINES/~skyrat_defines/_HELPERS/lighting.html create mode 100644 code/__DEFINES/~skyrat_defines/_HELPERS/offset_index.html create mode 100644 code/__DEFINES/~skyrat_defines/airlock.html create mode 100644 code/__DEFINES/~skyrat_defines/antagonists.html create mode 100644 code/__DEFINES/~skyrat_defines/apc_defines.html create mode 100644 code/__DEFINES/~skyrat_defines/armaments.html create mode 100644 code/__DEFINES/~skyrat_defines/automapper.html create mode 100644 code/__DEFINES/~skyrat_defines/cells.html create mode 100644 code/__DEFINES/~skyrat_defines/colony_fabricator_misc.html create mode 100644 code/__DEFINES/~skyrat_defines/combat.html create mode 100644 code/__DEFINES/~skyrat_defines/events.html create mode 100644 code/__DEFINES/~skyrat_defines/flavor_defines.html create mode 100644 code/__DEFINES/~skyrat_defines/food.html create mode 100644 code/__DEFINES/~skyrat_defines/id_cards.html create mode 100644 code/__DEFINES/~skyrat_defines/integrated_electronics.html create mode 100644 code/__DEFINES/~skyrat_defines/language.html create mode 100644 code/__DEFINES/~skyrat_defines/lewd_defines.html create mode 100644 code/__DEFINES/~skyrat_defines/limbs.html create mode 100644 code/__DEFINES/~skyrat_defines/liquids.html create mode 100644 code/__DEFINES/~skyrat_defines/loadout.html create mode 100644 code/__DEFINES/~skyrat_defines/maths.html create mode 100644 code/__DEFINES/~skyrat_defines/medical_defines.html create mode 100644 code/__DEFINES/~skyrat_defines/mobs.html create mode 100644 code/__DEFINES/~skyrat_defines/obj_flags.html create mode 100644 code/__DEFINES/~skyrat_defines/opposing_force_defines.html create mode 100644 code/__DEFINES/~skyrat_defines/pollution.html create mode 100644 code/__DEFINES/~skyrat_defines/preferences.html create mode 100644 code/__DEFINES/~skyrat_defines/projectiles.html create mode 100644 code/__DEFINES/~skyrat_defines/quirks.html create mode 100644 code/__DEFINES/~skyrat_defines/reagents.html create mode 100644 code/__DEFINES/~skyrat_defines/robot_defines.html create mode 100644 code/__DEFINES/~skyrat_defines/signals.html create mode 100644 code/__DEFINES/~skyrat_defines/signals/signals_human.html create mode 100644 code/__DEFINES/~skyrat_defines/sound.html create mode 100644 code/__DEFINES/~skyrat_defines/species_clothing_paths.html create mode 100644 code/__DEFINES/~skyrat_defines/strippable.html create mode 100644 code/__DEFINES/~skyrat_defines/synth_defines.html create mode 100644 code/__DEFINES/~skyrat_defines/text.html create mode 100644 code/__DEFINES/~skyrat_defines/traits.html create mode 100644 code/__DEFINES/~skyrat_defines/traits/declarations.html create mode 100644 code/__DEFINES/~skyrat_defines/turfs.html create mode 100644 code/__DEFINES/~skyrat_defines/wounds.html create mode 100644 code/__DEFINES/~~bubber_defines/combat.html create mode 100644 code/__DEFINES/~~bubber_defines/experisci.html create mode 100644 code/__DEFINES/~~bubber_defines/jobs.html create mode 100644 code/__DEFINES/~~bubber_defines/signals.html create mode 100644 code/__DEFINES/~~bubber_defines/storyteller_defines.html create mode 100644 code/__DEFINES/~~bubber_defines/traits/declarations.html create mode 100644 code/__DEFINES/~~~splurt_defines/DNA.html create mode 100644 code/__DEFINES/~~~splurt_defines/inventory.html create mode 100644 code/__DEFINES/~~~splurt_defines/species_clothing_paths.html create mode 100644 code/__DEFINES/~~~splurt_defines/underwear.html create mode 100644 code/__HELPERS/_dreamluau.html create mode 100644 code/__HELPERS/_lists.html create mode 100644 code/__HELPERS/_planes.html create mode 100644 code/__HELPERS/admin.html create mode 100644 code/__HELPERS/ai.html create mode 100644 code/__HELPERS/announcements.html create mode 100644 code/__HELPERS/areas.html create mode 100644 code/__HELPERS/atmospherics.html create mode 100644 code/__HELPERS/atoms.html create mode 100644 code/__HELPERS/auxtools.html create mode 100644 code/__HELPERS/bitflag_lists.html create mode 100644 code/__HELPERS/cameras.html create mode 100644 code/__HELPERS/chat.html create mode 100644 code/__HELPERS/chat_filter.html create mode 100644 code/__HELPERS/clients.html create mode 100644 code/__HELPERS/cmp.html create mode 100644 code/__HELPERS/colors.html create mode 100644 code/__HELPERS/construction.html create mode 100644 code/__HELPERS/datums.html create mode 100644 code/__HELPERS/dna.html create mode 100644 code/__HELPERS/duplicating.html create mode 100644 code/__HELPERS/dynamic_human_icon_gen.html create mode 100644 code/__HELPERS/events.html create mode 100644 code/__HELPERS/files.html create mode 100644 code/__HELPERS/forensics.html create mode 100644 code/__HELPERS/game.html create mode 100644 code/__HELPERS/generators.html create mode 100644 code/__HELPERS/global_lists.html create mode 100644 code/__HELPERS/guid.html create mode 100644 code/__HELPERS/hallucinations.html create mode 100644 code/__HELPERS/honkerblast.html create mode 100644 code/__HELPERS/icon_smoothing.html create mode 100644 code/__HELPERS/icons.html create mode 100644 code/__HELPERS/jatum.html create mode 100644 code/__HELPERS/lazy_templates.html create mode 100644 code/__HELPERS/levels.html create mode 100644 code/__HELPERS/lighting.html create mode 100644 code/__HELPERS/logging/_logging.html create mode 100644 code/__HELPERS/logging/admin.html create mode 100644 code/__HELPERS/logging/antagonists.html create mode 100644 code/__HELPERS/logging/atmos.html create mode 100644 code/__HELPERS/logging/attack.html create mode 100644 code/__HELPERS/logging/debug.html create mode 100644 code/__HELPERS/logging/dynamic.html create mode 100644 code/__HELPERS/logging/game.html create mode 100644 code/__HELPERS/logging/manifest.html create mode 100644 code/__HELPERS/logging/mecha.html create mode 100644 code/__HELPERS/logging/paper.html create mode 100644 code/__HELPERS/logging/pda.html create mode 100644 code/__HELPERS/logging/research.html create mode 100644 code/__HELPERS/logging/shuttle.html create mode 100644 code/__HELPERS/logging/talk.html create mode 100644 code/__HELPERS/logging/tool.html create mode 100644 code/__HELPERS/logging/transport.html create mode 100644 code/__HELPERS/logging/ui.html create mode 100644 code/__HELPERS/logging/virus.html create mode 100644 code/__HELPERS/maths.html create mode 100644 code/__HELPERS/matrices.html create mode 100644 code/__HELPERS/memory_helpers.html create mode 100644 code/__HELPERS/mobs.html create mode 100644 code/__HELPERS/mouse_control.html create mode 100644 code/__HELPERS/movement.html create mode 100644 code/__HELPERS/nameof.html create mode 100644 code/__HELPERS/names.html create mode 100644 code/__HELPERS/paths/jps.html create mode 100644 code/__HELPERS/paths/path.html create mode 100644 code/__HELPERS/paths/sssp.html create mode 100644 code/__HELPERS/priority_announce.html create mode 100644 code/__HELPERS/qdel.html create mode 100644 code/__HELPERS/radiation.html create mode 100644 code/__HELPERS/radio.html create mode 100644 code/__HELPERS/randoms.html create mode 100644 code/__HELPERS/reagents.html create mode 100644 code/__HELPERS/ref.html create mode 100644 code/__HELPERS/roundend.html create mode 100644 code/__HELPERS/sanitize_values.html create mode 100644 code/__HELPERS/screen_objs.html create mode 100644 code/__HELPERS/see_through_maps.html create mode 100644 code/__HELPERS/sorts/helpers.html create mode 100644 code/__HELPERS/spatial_info.html create mode 100644 code/__HELPERS/spawns.html create mode 100644 code/__HELPERS/stack_trace.html create mode 100644 code/__HELPERS/stoplag.html create mode 100644 code/__HELPERS/string_lists.html create mode 100644 code/__HELPERS/text.html create mode 100644 code/__HELPERS/time.html create mode 100644 code/__HELPERS/traits.html create mode 100644 code/__HELPERS/turfs.html create mode 100644 code/__HELPERS/type2type.html create mode 100644 code/__HELPERS/varset_callback.html create mode 100644 code/__HELPERS/verbs.html create mode 100644 code/__HELPERS/view.html create mode 100644 code/__HELPERS/visual_effects.html create mode 100644 code/__HELPERS/weakref.html create mode 100644 code/__HELPERS/~skyrat_helpers/logging.html create mode 100644 code/__HELPERS/~skyrat_helpers/unsorted.html create mode 100644 code/__byond_version_compat.html create mode 100644 code/_compile_options.html create mode 100644 code/_globalvars/bitfields.html create mode 100644 code/_globalvars/lighting.html create mode 100644 code/_globalvars/lists/canisters.html create mode 100644 code/_globalvars/lists/keybindings.html create mode 100644 code/_globalvars/lists/reagents.html create mode 100644 code/_globalvars/logging.html create mode 100644 code/_globalvars/phobias.html create mode 100644 code/_globalvars/religion.html create mode 100644 code/_onclick/drag_drop.html create mode 100644 code/_onclick/hud/action_button.html create mode 100644 code/_onclick/hud/alert.html create mode 100644 code/_onclick/hud/map_popups.html create mode 100644 code/_onclick/hud/parallax/random_layer.html create mode 100644 code/_onclick/hud/radial.html create mode 100644 code/_onclick/hud/rendering/_render_readme.html create mode 100644 code/_onclick/hud/rendering/plane_master_controller.html create mode 100644 code/_onclick/hud/rendering/plane_master_group.html create mode 100644 code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.html create mode 100644 code/_onclick/hud/rendering/render_plate.html create mode 100644 code/_onclick/hud/screen_object_holder.html create mode 100644 code/_onclick/hud/screen_objects.html create mode 100644 code/controllers/configuration/config_entry.html create mode 100644 code/controllers/configuration/entries/dbconfig.html create mode 100644 code/controllers/configuration/entries/game_options.html create mode 100644 code/controllers/configuration/entries/general.html create mode 100644 code/controllers/failsafe.html create mode 100644 code/controllers/master.html create mode 100644 code/controllers/subsystem.html create mode 100644 code/controllers/subsystem/addiction.html create mode 100644 code/controllers/subsystem/ai_controllers.html create mode 100644 code/controllers/subsystem/ambience.html create mode 100644 code/controllers/subsystem/area_contents.html create mode 100644 code/controllers/subsystem/asset_loading.html create mode 100644 code/controllers/subsystem/ban_cache.html create mode 100644 code/controllers/subsystem/chat.html create mode 100644 code/controllers/subsystem/discord.html create mode 100644 code/controllers/subsystem/dynamic.html create mode 100644 code/controllers/subsystem/dynamic/dynamic_logging.html create mode 100644 code/controllers/subsystem/dynamic/dynamic_rulesets_latejoin.html create mode 100644 code/controllers/subsystem/dynamic/dynamic_rulesets_midround.html create mode 100644 code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.html create mode 100644 code/controllers/subsystem/early_assets.html create mode 100644 code/controllers/subsystem/economy.html create mode 100644 code/controllers/subsystem/events.html create mode 100644 code/controllers/subsystem/explosions.html create mode 100644 code/controllers/subsystem/fluids.html create mode 100644 code/controllers/subsystem/garbage.html create mode 100644 code/controllers/subsystem/id_access.html create mode 100644 code/controllers/subsystem/init_profiler.html create mode 100644 code/controllers/subsystem/ipintel.html create mode 100644 code/controllers/subsystem/lag_switch.html create mode 100644 code/controllers/subsystem/library.html create mode 100644 code/controllers/subsystem/materials.html create mode 100644 code/controllers/subsystem/modular_computers.html create mode 100644 code/controllers/subsystem/mouse_entered.html create mode 100644 code/controllers/subsystem/movement/ai_movement.html create mode 100644 code/controllers/subsystem/movement/cliff_falling.html create mode 100644 code/controllers/subsystem/movement/hyperspace_drift.html create mode 100644 code/controllers/subsystem/movement/movement_types.html create mode 100644 code/controllers/subsystem/movement/newtonian_movement.html create mode 100644 code/controllers/subsystem/overlays.html create mode 100644 code/controllers/subsystem/parallax.html create mode 100644 code/controllers/subsystem/pathfinder.html create mode 100644 code/controllers/subsystem/persistence/counter_delamination.html create mode 100644 code/controllers/subsystem/persistence/counter_tram_hits.html create mode 100644 code/controllers/subsystem/persistence/trophies.html create mode 100644 code/controllers/subsystem/ping.html create mode 100644 code/controllers/subsystem/points_of_interest.html create mode 100644 code/controllers/subsystem/processing/acid.html create mode 100644 code/controllers/subsystem/processing/ai_behaviors.html create mode 100644 code/controllers/subsystem/processing/aura.html create mode 100644 code/controllers/subsystem/processing/clock_component.html create mode 100644 code/controllers/subsystem/processing/digital_clock.html create mode 100644 code/controllers/subsystem/processing/fire_burning.html create mode 100644 code/controllers/subsystem/processing/fishing.html create mode 100644 code/controllers/subsystem/processing/singulo.html create mode 100644 code/controllers/subsystem/radioactive_nebula.html create mode 100644 code/controllers/subsystem/restaurant.html create mode 100644 code/controllers/subsystem/shuttle.html create mode 100644 code/controllers/subsystem/skills.html create mode 100644 code/controllers/subsystem/spatial_gridmap.html create mode 100644 code/controllers/subsystem/speech_controller.html create mode 100644 code/controllers/subsystem/sprite_accessories.html create mode 100644 code/controllers/subsystem/tgui.html create mode 100644 code/controllers/subsystem/timer.html create mode 100644 code/controllers/subsystem/tts.html create mode 100644 code/controllers/subsystem/tutorials.html create mode 100644 code/controllers/subsystem/unplanned_controllers.html create mode 100644 code/controllers/subsystem/verb_manager.html create mode 100644 code/controllers/subsystem/vote.html create mode 100644 code/controllers/subsystem/wardrobe.html create mode 100644 code/controllers/subsystem/weather.html create mode 100644 code/controllers/subsystem/wiremod_composite.html create mode 100644 code/datums/achievements/_achievement_data.html create mode 100644 code/datums/achievements/_awards.html create mode 100644 code/datums/achievements/mafia_achievements.html create mode 100644 code/datums/achievements/misc_scores.html create mode 100644 code/datums/actions/action.html create mode 100644 code/datums/actions/cooldown_action.html create mode 100644 code/datums/actions/items/stealth_box.html create mode 100644 code/datums/actions/mobs/assume_form.html create mode 100644 code/datums/actions/mobs/charge_apc.html create mode 100644 code/datums/actions/mobs/create_legion_turrets.html create mode 100644 code/datums/actions/mobs/defensive_mode.html create mode 100644 code/datums/actions/mobs/fire_breath.html create mode 100644 code/datums/actions/mobs/sign_language.html create mode 100644 code/datums/ai.html create mode 100644 code/datums/ai/_ai_behavior.html create mode 100644 code/datums/ai/_ai_controller.html create mode 100644 code/datums/ai/_ai_planning_subtree.html create mode 100644 code/datums/ai/_item_behaviors.html create mode 100644 code/datums/ai/babies/babies_behaviors.html create mode 100644 code/datums/ai/babies/babies_subtrees.html create mode 100644 code/datums/ai/basic_mobs/basic_ai_behaviors/befriend_target.html create mode 100644 code/datums/ai/basic_mobs/basic_ai_behaviors/nearest_targeting.html create mode 100644 code/datums/ai/basic_mobs/basic_ai_behaviors/pick_up_item.html create mode 100644 code/datums/ai/basic_mobs/basic_ai_behaviors/run_away_from_target.html create mode 100644 code/datums/ai/basic_mobs/basic_ai_behaviors/step_towards_turf.html create mode 100644 code/datums/ai/basic_mobs/basic_ai_behaviors/stop_and_stare.html create mode 100644 code/datums/ai/basic_mobs/basic_ai_behaviors/targeted_mob_ability.html create mode 100644 code/datums/ai/basic_mobs/basic_ai_behaviors/targeting.html create mode 100644 code/datums/ai/basic_mobs/basic_ai_behaviors/tipped_reaction.html create mode 100644 code/datums/ai/basic_mobs/basic_ai_behaviors/travel_towards.html create mode 100644 code/datums/ai/basic_mobs/basic_ai_behaviors/ventcrawling.html create mode 100644 code/datums/ai/basic_mobs/basic_ai_behaviors/wounded_targeting.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/attack_adjacent_target.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/attack_obstacle_in_path.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/call_reinforcements.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/capricious_retaliate.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/find_food.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/find_targets_prioritize_traits.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/flee_target.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/go_for_swim.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/maintain_distance.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/move_to_cardinal.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/opportunistic_ventcrawler.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/prepare_travel_to_destination.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/ranged_skirmish.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/run_emote.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/shapechange_ambush.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/simple_find_nearest_target_to_flee.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/simple_find_wounded_target.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/sleep_with_no_target.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/stare_at_thing.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/target_retaliate.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/targeted_mob_ability.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/teleport_away_from_target.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/tipped_subtree.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/travel_to_point.html create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/use_mob_ability.html create mode 100644 code/datums/ai/basic_mobs/generic_controllers.html create mode 100644 code/datums/ai/basic_mobs/pet_commands/fetch.html create mode 100644 code/datums/ai/basic_mobs/pet_commands/pet_command_planning.html create mode 100644 code/datums/ai/basic_mobs/pet_commands/pet_follow_friend.html create mode 100644 code/datums/ai/basic_mobs/pet_commands/pet_use_targeted_ability.html create mode 100644 code/datums/ai/basic_mobs/pet_commands/play_dead.html create mode 100644 code/datums/ai/basic_mobs/targeting_strategies/_targeting_strategy.html create mode 100644 code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.html create mode 100644 code/datums/ai/basic_mobs/targeting_strategies/dont_target_friends.html create mode 100644 code/datums/ai/basic_mobs/targeting_strategies/with_object.html create mode 100644 code/datums/ai/cursed/cursed_controller.html create mode 100644 code/datums/ai/dog/dog_behaviors.html create mode 100644 code/datums/ai/dog/dog_controller.html create mode 100644 code/datums/ai/dog/dog_subtrees.html create mode 100644 code/datums/ai/generic/find_and_set.html create mode 100644 code/datums/ai/generic/generic_behaviors.html create mode 100644 code/datums/ai/hunting_behavior/hunting_behaviors.html create mode 100644 code/datums/ai/hunting_behavior/hunting_corpses.html create mode 100644 code/datums/ai/idle_behaviors/idle_haunted.html create mode 100644 code/datums/ai/idle_behaviors/idle_random_walk.html create mode 100644 code/datums/ai/learn_ai.html create mode 100644 code/datums/ai/monkey/monkey_controller.html create mode 100644 code/datums/ai/movement/_ai_movement.html create mode 100644 code/datums/ai/movement/ai_movement_basic_avoidance.html create mode 100644 code/datums/ai/movement/ai_movement_complete_stop.html create mode 100644 code/datums/ai/movement/ai_movement_dumb.html create mode 100644 code/datums/ai/movement/ai_movement_jps.html create mode 100644 code/datums/ai/objects/mod.html create mode 100644 code/datums/ai/objects/vending_machines/vending_machine_controller.html create mode 100644 code/datums/ai/oldhostile/hostile_tameable.html create mode 100644 code/datums/ai_laws/ai_laws.html create mode 100644 code/datums/alarm.html create mode 100644 code/datums/announcers/_announcer.html create mode 100644 code/datums/armor/_armor.html create mode 100644 code/datums/beam.html create mode 100644 code/datums/bodypart_overlays/bodypart_overlay.html create mode 100644 code/datums/bodypart_overlays/emote_bodypart_overlay.html create mode 100644 code/datums/bodypart_overlays/markings_bodypart_overlay.html create mode 100644 code/datums/bodypart_overlays/mutant_bodypart_overlay.html create mode 100644 code/datums/bodypart_overlays/simple_bodypart_overlay.html create mode 100644 code/datums/bodypart_overlays/texture_bodypart_overlay.html create mode 100644 code/datums/brain_damage/split_personality.html create mode 100644 code/datums/browser.html create mode 100644 code/datums/callback.html create mode 100644 code/datums/candidate_poll.html create mode 100644 code/datums/chat_payload.html create mode 100644 code/datums/chatmessage.html create mode 100644 code/datums/cinematics/_cinematic.html create mode 100644 code/datums/cinematics/malf_doomsday.html create mode 100644 code/datums/cinematics/narsie_summon.html create mode 100644 code/datums/cinematics/nuke_cinematics.html create mode 100644 code/datums/cogbar.html create mode 100644 code/datums/components.html create mode 100644 code/datums/components/COMPONENT_TEMPLATE.html create mode 100644 code/datums/components/_component.html create mode 100644 code/datums/components/acid.html create mode 100644 code/datums/components/action_item_overlay.html create mode 100644 code/datums/components/adjust_fishing_difficulty.html create mode 100644 code/datums/components/admin_popup.html create mode 100644 code/datums/components/aggro_emote.html create mode 100644 code/datums/components/ai_has_target_timer.html create mode 100644 code/datums/components/ai_listen_to_weather.html create mode 100644 code/datums/components/ai_retaliate_advanced.html create mode 100644 code/datums/components/amputating_limbs.html create mode 100644 code/datums/components/anti_magic.html create mode 100644 code/datums/components/appearance_on_aggro.html create mode 100644 code/datums/components/aquarium_content.html create mode 100644 code/datums/components/area_based_godmode.html create mode 100644 code/datums/components/area_sound_manager.html create mode 100644 code/datums/components/areabound.html create mode 100644 code/datums/components/atmos_reaction_recorder.html create mode 100644 code/datums/components/aura_healing.html create mode 100644 code/datums/components/bakeable.html create mode 100644 code/datums/components/banned_from_space.html create mode 100644 code/datums/components/basic_inhands.html create mode 100644 code/datums/components/basic_mob_attack_telegraph.html create mode 100644 code/datums/components/basic_ranged_ready_overlay.html create mode 100644 code/datums/components/bayonet_attachable.html create mode 100644 code/datums/components/blob_minion.html create mode 100644 code/datums/components/blood_walk.html create mode 100644 code/datums/components/bloodysoles.html create mode 100644 code/datums/components/boomerang.html create mode 100644 code/datums/components/boss_music.html create mode 100644 code/datums/components/bullet_intercepting.html create mode 100644 code/datums/components/bumpattack.html create mode 100644 code/datums/components/burning.html create mode 100644 code/datums/components/butchering.html create mode 100644 code/datums/components/callouts.html create mode 100644 code/datums/components/caltrop.html create mode 100644 code/datums/components/can_flash_from_behind.html create mode 100644 code/datums/components/chasm.html create mode 100644 code/datums/components/chuunibyou.html create mode 100644 code/datums/components/cleaner.html create mode 100644 code/datums/components/clickbox.html create mode 100644 code/datums/components/clothing_fov_visor.html create mode 100644 code/datums/components/codeword_hearing.html create mode 100644 code/datums/components/combustible_flooder.html create mode 100644 code/datums/components/connect_containers.html create mode 100644 code/datums/components/connect_loc_behalf.html create mode 100644 code/datums/components/connect_mob_behalf.html create mode 100644 code/datums/components/connect_range.html create mode 100644 code/datums/components/container_item/container_item.html create mode 100644 code/datums/components/container_item/tank_holder.html create mode 100644 code/datums/components/conveyor_movement.html create mode 100644 code/datums/components/cracked.html create mode 100644 code/datums/components/crafting/equipment.html create mode 100644 code/datums/components/crafting/guncrafting.html create mode 100644 code/datums/components/crate_carrier.html create mode 100644 code/datums/components/curse_of_hunger.html create mode 100644 code/datums/components/curse_of_polymorph.html create mode 100644 code/datums/components/customizable_reagent_holder.html create mode 100644 code/datums/components/damage_aura.html create mode 100644 code/datums/components/damage_chain.html create mode 100644 code/datums/components/dart_insert.html create mode 100644 code/datums/components/deadchat_control.html create mode 100644 code/datums/components/death_linked.html create mode 100644 code/datums/components/dejavu.html create mode 100644 code/datums/components/deployable.html create mode 100644 code/datums/components/direct_explosive_trap.html create mode 100644 code/datums/components/egg_layer.html create mode 100644 code/datums/components/electrified_buckle.html create mode 100644 code/datums/components/engraved.html create mode 100644 code/datums/components/evolutionary_leap.html create mode 100644 code/datums/components/explodable.html create mode 100644 code/datums/components/explode_on_attack.html create mode 100644 code/datums/components/face_decal.html create mode 100644 code/datums/components/faction_granter.html create mode 100644 code/datums/components/fantasy/suffixes.html create mode 100644 code/datums/components/fertile_egg.html create mode 100644 code/datums/components/fish_growth.html create mode 100644 code/datums/components/focused_attacker.html create mode 100644 code/datums/components/food/decomposition.html create mode 100644 code/datums/components/food/edible.html create mode 100644 code/datums/components/food/germ_sensitive.html create mode 100644 code/datums/components/food/ghost_edible.html create mode 100644 code/datums/components/food/golem_food.html create mode 100644 code/datums/components/food/ice_cream_holder.html create mode 100644 code/datums/components/food_storage.html create mode 100644 code/datums/components/force_move.html create mode 100644 code/datums/components/fov_handler.html create mode 100644 code/datums/components/gas_leaker.html create mode 100644 code/datums/components/geiger_sound.html create mode 100644 code/datums/components/ghost_direct_control.html create mode 100644 code/datums/components/glass_passer.html create mode 100644 code/datums/components/gps.html create mode 100644 code/datums/components/ground_sinking.html create mode 100644 code/datums/components/growth_and_differentiation.html create mode 100644 code/datums/components/gunpoint.html create mode 100644 code/datums/components/hazard_area.html create mode 100644 code/datums/components/healing_touch.html create mode 100644 code/datums/components/health_scaling_effects.html create mode 100644 code/datums/components/heirloom.html create mode 100644 code/datums/components/hide_highest_offset.html create mode 100644 code/datums/components/holderloving.html create mode 100644 code/datums/components/interaction_booby_trap.html create mode 100644 code/datums/components/irradiated.html create mode 100644 code/datums/components/itembound.html create mode 100644 code/datums/components/itempicky.html create mode 100644 code/datums/components/jousting.html create mode 100644 code/datums/components/keep_me_secure.html create mode 100644 code/datums/components/knockoff.html create mode 100644 code/datums/components/leash.html create mode 100644 code/datums/components/life_link.html create mode 100644 code/datums/components/light_eater.html create mode 100644 code/datums/components/ling_decoy_brain.html create mode 100644 code/datums/components/listen_and_repeat.html create mode 100644 code/datums/components/lock_on_cursor.html create mode 100644 code/datums/components/lockable_storage.html create mode 100644 code/datums/components/magnet.html create mode 100644 code/datums/components/manual_heart.html create mode 100644 code/datums/components/marionette.html create mode 100644 code/datums/components/martial_art_giver.html create mode 100644 code/datums/components/material/material_container.html create mode 100644 code/datums/components/mind_linker.html create mode 100644 code/datums/components/mob_chain.html create mode 100644 code/datums/components/mob_harvest.html create mode 100644 code/datums/components/multiple_lives.html create mode 100644 code/datums/components/mutant_hands.html create mode 100644 code/datums/components/nuclear_bomb_operator.html create mode 100644 code/datums/components/object_possession.html create mode 100644 code/datums/components/omen.html create mode 100644 code/datums/components/onwear_mood.html create mode 100644 code/datums/components/overlay_lighting.html create mode 100644 code/datums/components/palette.html create mode 100644 code/datums/components/parry.html create mode 100644 code/datums/components/payment.html create mode 100644 code/datums/components/pet_commands/fetch.html create mode 100644 code/datums/components/pet_commands/obeys_commands.html create mode 100644 code/datums/components/pet_commands/pet_command.html create mode 100644 code/datums/components/pet_commands/pet_commands_basic.html create mode 100644 code/datums/components/phylactery.html create mode 100644 code/datums/components/pinata.html create mode 100644 code/datums/components/pinnable_accessory.html create mode 100644 code/datums/components/plumbing/filter.html create mode 100644 code/datums/components/plumbing/reaction_chamber.html create mode 100644 code/datums/components/plumbing/simple_components.html create mode 100644 code/datums/components/plundering_attacks.html create mode 100644 code/datums/components/profound_fisher.html create mode 100644 code/datums/components/punchcooldown.html create mode 100644 code/datums/components/puzzgrid.html create mode 100644 code/datums/components/radiation_countdown.html create mode 100644 code/datums/components/radioactive_emitter.html create mode 100644 code/datums/components/radioactive_exposure.html create mode 100644 code/datums/components/ranged_attacks.html create mode 100644 code/datums/components/ranged_mob_full_auto.html create mode 100644 code/datums/components/reagent_refiller.html create mode 100644 code/datums/components/recharging_attacks.html create mode 100644 code/datums/components/redirect_attack_hand_from_turf.html create mode 100644 code/datums/components/reflection.html create mode 100644 code/datums/components/regenerative_shield.html create mode 100644 code/datums/components/regenerator.html create mode 100644 code/datums/components/religious_tool.html create mode 100644 code/datums/components/rename.html create mode 100644 code/datums/components/revenge_ability.html create mode 100644 code/datums/components/riding/riding.html create mode 100644 code/datums/components/riding/riding_mob.html create mode 100644 code/datums/components/riding/riding_vehicle.html create mode 100644 code/datums/components/rot.html create mode 100644 code/datums/components/scope.html create mode 100644 code/datums/components/seclight_attachable.html create mode 100644 code/datums/components/sect_nullrod_bonus.html create mode 100644 code/datums/components/security_vision.html create mode 100644 code/datums/components/seethrough.html create mode 100644 code/datums/components/seethrough_mob.html create mode 100644 code/datums/components/shell.html create mode 100644 code/datums/components/shielded.html create mode 100644 code/datums/components/shovel_hands.html create mode 100644 code/datums/components/shuttle_cling.html create mode 100644 code/datums/components/shy.html create mode 100644 code/datums/components/shy_in_room.html create mode 100644 code/datums/components/sign_language.html create mode 100644 code/datums/components/simple_access.html create mode 100644 code/datums/components/simple_bodycam.html create mode 100644 code/datums/components/singularity.html create mode 100644 code/datums/components/sisyphus_awarder.html create mode 100644 code/datums/components/slippery.html create mode 100644 code/datums/components/smooth_tunes.html create mode 100644 code/datums/components/soul_stealer.html create mode 100644 code/datums/components/sound_player.html create mode 100644 code/datums/components/space_camo.html create mode 100644 code/datums/components/space_dive.html create mode 100644 code/datums/components/space_kidnap.html create mode 100644 code/datums/components/speechmod.html create mode 100644 code/datums/components/spin2win.html create mode 100644 code/datums/components/spinny.html create mode 100644 code/datums/components/spirit_holding.html create mode 100644 code/datums/components/splattercasting.html create mode 100644 code/datums/components/squashable.html create mode 100644 code/datums/components/stationloving.html create mode 100644 code/datums/components/sticker.html create mode 100644 code/datums/components/storm_hating.html create mode 100644 code/datums/components/subtype_picker.html create mode 100644 code/datums/components/surgery_initiator.html create mode 100644 code/datums/components/swabbing.html create mode 100644 code/datums/components/tackle.html create mode 100644 code/datums/components/tactical.html create mode 100644 code/datums/components/takes_reagent_appearance.html create mode 100644 code/datums/components/tameable.html create mode 100644 code/datums/components/tattoo.html create mode 100644 code/datums/components/technointrovert.html create mode 100644 code/datums/components/technoshy.html create mode 100644 code/datums/components/telegraph_ability.html create mode 100644 code/datums/components/temporary_body.html create mode 100644 code/datums/components/temporary_description.html create mode 100644 code/datums/components/tether.html create mode 100644 code/datums/components/tippable.html create mode 100644 code/datums/components/toggle_attached_clothing.html create mode 100644 code/datums/components/torn_wall.html create mode 100644 code/datums/components/trader/trader.html create mode 100644 code/datums/components/trapdoor.html create mode 100644 code/datums/components/twohanded.html create mode 100644 code/datums/components/udder.html create mode 100644 code/datums/components/unobserved_actor.html create mode 100644 code/datums/components/unusual_effect.html create mode 100644 code/datums/components/uplink.html create mode 100644 code/datums/components/usb_port.html create mode 100644 code/datums/components/vacuum.html create mode 100644 code/datums/components/vision_hurting.html create mode 100644 code/datums/components/weatherannouncer.html create mode 100644 code/datums/dash_weapon.html create mode 100644 code/datums/datum.html create mode 100644 code/datums/diseases/_disease.html create mode 100644 code/datums/diseases/advance/floor_diseases/carpellosis.html create mode 100644 code/datums/diseases/advance/floor_diseases/gastritium.html create mode 100644 code/datums/diseases/advance/floor_diseases/nebula_nausea.html create mode 100644 code/datums/diseases/advance/symptoms/beard.html create mode 100644 code/datums/diseases/advance/symptoms/chills.html create mode 100644 code/datums/diseases/advance/symptoms/choking.html create mode 100644 code/datums/diseases/advance/symptoms/confusion.html create mode 100644 code/datums/diseases/advance/symptoms/cough.html create mode 100644 code/datums/diseases/advance/symptoms/deafness.html create mode 100644 code/datums/diseases/advance/symptoms/disfiguration.html create mode 100644 code/datums/diseases/advance/symptoms/dizzy.html create mode 100644 code/datums/diseases/advance/symptoms/fever.html create mode 100644 code/datums/diseases/advance/symptoms/fire.html create mode 100644 code/datums/diseases/advance/symptoms/heal.html create mode 100644 code/datums/dna.html create mode 100644 code/datums/drift_handler.html create mode 100644 code/datums/ductnet.html create mode 100644 code/datums/eigenstate.html create mode 100644 code/datums/elements/ELEMENT_TEMPLATE.html create mode 100644 code/datums/elements/_element.html create mode 100644 code/datums/elements/ai_control_examine.html create mode 100644 code/datums/elements/ai_flee_while_injured.html create mode 100644 code/datums/elements/ai_held_item.html create mode 100644 code/datums/elements/ai_retaliate.html create mode 100644 code/datums/elements/ai_swap_combat_mode.html create mode 100644 code/datums/elements/ai_target_damagesource.html create mode 100644 code/datums/elements/animal_variety.html create mode 100644 code/datums/elements/atmos_requirements.html create mode 100644 code/datums/elements/attack_equip.html create mode 100644 code/datums/elements/attack_zone_randomiser.html create mode 100644 code/datums/elements/backblast.html create mode 100644 code/datums/elements/bane.html create mode 100644 code/datums/elements/basic_eating.html create mode 100644 code/datums/elements/basic_health_examine.html create mode 100644 code/datums/elements/beauty.html create mode 100644 code/datums/elements/bed_tucking.html create mode 100644 code/datums/elements/befriend_petting.html create mode 100644 code/datums/elements/block_turf_fingerprints.html create mode 100644 code/datums/elements/blocks_explosives.html create mode 100644 code/datums/elements/body_temp_sensitive.html create mode 100644 code/datums/elements/bombable_turf.html create mode 100644 code/datums/elements/bonus_damage.html create mode 100644 code/datums/elements/bugkiller_reagent.html create mode 100644 code/datums/elements/bump_click.html create mode 100644 code/datums/elements/can_shatter.html create mode 100644 code/datums/elements/caseless.html create mode 100644 code/datums/elements/chemical_transfer.html create mode 100644 code/datums/elements/chewable.html create mode 100644 code/datums/elements/cliff_walker.html create mode 100644 code/datums/elements/connect_loc.html create mode 100644 code/datums/elements/consumable_mob.html create mode 100644 code/datums/elements/content_barfer.html create mode 100644 code/datums/elements/corrupted_organ.html create mode 100644 code/datums/elements/crackable.html create mode 100644 code/datums/elements/crusher_loot.html create mode 100644 code/datums/elements/cuffsnapping.html create mode 100644 code/datums/elements/cult_eyes.html create mode 100644 code/datums/elements/cult_halo.html create mode 100644 code/datums/elements/curse_announcement.html create mode 100644 code/datums/elements/cursed.html create mode 100644 code/datums/elements/damage_threshold.html create mode 100644 code/datums/elements/dangerous_surgical_removal.html create mode 100644 code/datums/elements/death_drops.html create mode 100644 code/datums/elements/death_explosion.html create mode 100644 code/datums/elements/death_gases.html create mode 100644 code/datums/elements/delete_on_drop.html create mode 100644 code/datums/elements/deliver_first.html create mode 100644 code/datums/elements/dextrous.html create mode 100644 code/datums/elements/diggable.html create mode 100644 code/datums/elements/disarm_attack.html create mode 100644 code/datums/elements/door_pryer.html create mode 100644 code/datums/elements/drag_pickup.html create mode 100644 code/datums/elements/elevation.html create mode 100644 code/datums/elements/envenomable_casing.html create mode 100644 code/datums/elements/eyestab.html create mode 100644 code/datums/elements/falling_hazard.html create mode 100644 code/datums/elements/firestacker.html create mode 100644 code/datums/elements/fish_safe_storage.html create mode 100644 code/datums/elements/floorloving.html create mode 100644 code/datums/elements/food/foodlike_drink.html create mode 100644 code/datums/elements/food/fried_item.html create mode 100644 code/datums/elements/food/grilled_item.html create mode 100644 code/datums/elements/food/microwavable.html create mode 100644 code/datums/elements/food/venue_price.html create mode 100644 code/datums/elements/footstep.html create mode 100644 code/datums/elements/footstep_override.html create mode 100644 code/datums/elements/frozen.html create mode 100644 code/datums/elements/gags_recolorable.html create mode 100644 code/datums/elements/give_turf_traits.html create mode 100644 code/datums/elements/glass_pacifist.html create mode 100644 code/datums/elements/gravedigger.html create mode 100644 code/datums/elements/hat_wearer.html create mode 100644 code/datums/elements/haunted.html create mode 100644 code/datums/elements/high_fiver.html create mode 100644 code/datums/elements/honkspam.html create mode 100644 code/datums/elements/hostile_machine.html create mode 100644 code/datums/elements/human_biter.html create mode 100644 code/datums/elements/immerse.html create mode 100644 code/datums/elements/item_fov.html create mode 100644 code/datums/elements/item_scaling.html create mode 100644 code/datums/elements/kneecapping.html create mode 100644 code/datums/elements/kneejerk.html create mode 100644 code/datums/elements/knockback.html create mode 100644 code/datums/elements/lazy_fishing_spot.html create mode 100644 code/datums/elements/leeching_walk.html create mode 100644 code/datums/elements/lifesteal.html create mode 100644 code/datums/elements/light_blocking.html create mode 100644 code/datums/elements/light_eaten.html create mode 100644 code/datums/elements/light_eater.html create mode 100644 code/datums/elements/living_limb_initialiser.html create mode 100644 code/datums/elements/loomable.html create mode 100644 code/datums/elements/lube_walking.html create mode 100644 code/datums/elements/mirage_border.html create mode 100644 code/datums/elements/mob_access.html create mode 100644 code/datums/elements/mob_grabber.html create mode 100644 code/datums/elements/mob_killed_tally.html create mode 100644 code/datums/elements/move_force_on_death.html create mode 100644 code/datums/elements/movement_turf_changer.html create mode 100644 code/datums/elements/movetype_handler.html create mode 100644 code/datums/elements/nerfed_pulling.html create mode 100644 code/datums/elements/no_crit_hitting.html create mode 100644 code/datums/elements/noticable_organ.html create mode 100644 code/datums/elements/obj_regen.html create mode 100644 code/datums/elements/on_hit_effect.html create mode 100644 code/datums/elements/only_pull_living.html create mode 100644 code/datums/elements/openspace_item_click_handler.html create mode 100644 code/datums/elements/organ_set_bonus.html create mode 100644 code/datums/elements/permanent_fire_overlay.html create mode 100644 code/datums/elements/pet_bonus.html create mode 100644 code/datums/elements/plant_backfire.html create mode 100644 code/datums/elements/point_of_interest.html create mode 100644 code/datums/elements/poster_tearer.html create mode 100644 code/datums/elements/prevent_attacking_of_types.html create mode 100644 code/datums/elements/proficient_miner.html create mode 100644 code/datums/elements/projectile_drop.html create mode 100644 code/datums/elements/quality_food_ingredient.html create mode 100644 code/datums/elements/radiation_protected_clothing.html create mode 100644 code/datums/elements/radioactive.html create mode 100644 code/datums/elements/ranged_armour.html create mode 100644 code/datums/elements/relay_attackers.html create mode 100644 code/datums/elements/ridable.html create mode 100644 code/datums/elements/rust.html create mode 100644 code/datums/elements/screentips.html create mode 100644 code/datums/elements/screentips/contextual_screentip_bare_hands.html create mode 100644 code/datums/elements/screentips/contextual_screentip_item_typechecks.html create mode 100644 code/datums/elements/screentips/contextual_screentip_mob_typechecks.html create mode 100644 code/datums/elements/screentips/contextual_screentip_sharpness.html create mode 100644 code/datums/elements/screentips/contextual_screentip_tools.html create mode 100644 code/datums/elements/series.html create mode 100644 code/datums/elements/sideway_movement.html create mode 100644 code/datums/elements/simple_flying.html create mode 100644 code/datums/elements/skill_reward.html create mode 100644 code/datums/elements/slapcrafting.html create mode 100644 code/datums/elements/soft_landing.html create mode 100644 code/datums/elements/squish.html create mode 100644 code/datums/elements/squish_sound.html create mode 100644 code/datums/elements/strippable.html create mode 100644 code/datums/elements/structure_repair.html create mode 100644 code/datums/elements/swabbable.html create mode 100644 code/datums/elements/temporary_atom.html create mode 100644 code/datums/elements/tenacious.html create mode 100644 code/datums/elements/tiny_mob_hunter.html create mode 100644 code/datums/elements/tool_flash.html create mode 100644 code/datums/elements/tool_renaming.html create mode 100644 code/datums/elements/toy_talk.html create mode 100644 code/datums/elements/turf_transparency.html create mode 100644 code/datums/elements/undertile.html create mode 100644 code/datums/elements/unfriend_attacker.html create mode 100644 code/datums/elements/update_icon_blocker.html create mode 100644 code/datums/elements/uplink_reimburse.html create mode 100644 code/datums/elements/venomous.html create mode 100644 code/datums/elements/volatile_gas_storage.html create mode 100644 code/datums/elements/wall_engraver.html create mode 100644 code/datums/elements/wall_smasher.html create mode 100644 code/datums/elements/wall_tearer.html create mode 100644 code/datums/elements/wall_walker.html create mode 100644 code/datums/elements/weapon_description.html create mode 100644 code/datums/elements/wearable_client_colour.html create mode 100644 code/datums/elements/weather_listener.html create mode 100644 code/datums/elements/web_walker.html create mode 100644 code/datums/elements/wheel.html create mode 100644 code/datums/elements/window_smash.html create mode 100644 code/datums/emotes.html create mode 100644 code/datums/greyscale.html create mode 100644 code/datums/greyscale/_greyscale_config.html create mode 100644 code/datums/greyscale/json_reader.html create mode 100644 code/datums/greyscale/layer.html create mode 100644 code/datums/helper_datums/stack_end_detector.html create mode 100644 code/datums/helper_datums/teleport.html create mode 100644 code/datums/id_trim/_id_trim.html create mode 100644 code/datums/id_trim/admin.html create mode 100644 code/datums/id_trim/centcom.html create mode 100644 code/datums/id_trim/jobs.html create mode 100644 code/datums/id_trim/outfits.html create mode 100644 code/datums/id_trim/ruins.html create mode 100644 code/datums/id_trim/syndicate.html create mode 100644 code/datums/instability_meltdown.html create mode 100644 code/datums/job_configs/_job_configs.html create mode 100644 code/datums/job_configs/default_positions.html create mode 100644 code/datums/job_configs/playtime_requirements.html create mode 100644 code/datums/job_configs/required_account_age.html create mode 100644 code/datums/job_configs/required_character_age.html create mode 100644 code/datums/job_configs/starting_positions.html create mode 100644 code/datums/json_database.html create mode 100644 code/datums/json_savefile.html create mode 100644 code/datums/lazy_template.html create mode 100644 code/datums/looping_sounds/_looping_sound.html create mode 100644 code/datums/looping_sounds/acid.html create mode 100644 code/datums/looping_sounds/burning.html create mode 100644 code/datums/map_config.html create mode 100644 code/datums/mapgen/CaveGenerator.html create mode 100644 code/datums/mapgen/Cavegens/IcemoonCaves.html create mode 100644 code/datums/mapgen/JungleGenerator.html create mode 100644 code/datums/mapgen/biomes/_biome.html create mode 100644 code/datums/martial/boxing.html create mode 100644 code/datums/martial/cqc.html create mode 100644 code/datums/materials/_material.html create mode 100644 code/datums/materials/alloys.html create mode 100644 code/datums/materials/basemats.html create mode 100644 code/datums/materials/meat.html create mode 100644 code/datums/memory/_memory.html create mode 100644 code/datums/memory/general_memories.html create mode 100644 code/datums/memory/key_memories.html create mode 100644 code/datums/mergers/_merger.html create mode 100644 code/datums/mocking/client.html create mode 100644 code/datums/mood.html create mode 100644 code/datums/mood_events/area_events.html create mode 100644 code/datums/mood_events/generic_negative_events.html create mode 100644 code/datums/mood_events/generic_positive_events.html create mode 100644 code/datums/move_manager.html create mode 100644 code/datums/movement_detector.html create mode 100644 code/datums/mutable_appearance.html create mode 100644 code/datums/mutations/_mutations.html create mode 100644 code/datums/mutations/chameleon.html create mode 100644 code/datums/mutations/cold.html create mode 100644 code/datums/mutations/hulk.html create mode 100644 code/datums/mutations/reach.html create mode 100644 code/datums/mutations/sight.html create mode 100644 code/datums/mutations/void_magnet.html create mode 100644 code/datums/outfit.html create mode 100644 code/datums/pod_style.html create mode 100644 code/datums/position_point_vector.html create mode 100644 code/datums/proximity_monitor/field.html create mode 100644 code/datums/proximity_monitor/fields/timestop.html create mode 100644 code/datums/proximity_monitor/fields/void_storm.html create mode 100644 code/datums/quirks/_quirk.html create mode 100644 code/datums/quirks/_quirk_constant_data.html create mode 100644 code/datums/quirks/negative_quirks/addict.html create mode 100644 code/datums/records/crime.html create mode 100644 code/datums/records/data.html create mode 100644 code/datums/records/manifest.html create mode 100644 code/datums/records/medical_note.html create mode 100644 code/datums/records/record.html create mode 100644 code/datums/skills/fishing.html create mode 100644 code/datums/sprite_accessories.html create mode 100644 code/datums/station_integrity.html create mode 100644 code/datums/station_traits/_station_trait.html create mode 100644 code/datums/station_traits/job_traits.html create mode 100644 code/datums/station_traits/negative_traits.html create mode 100644 code/datums/station_traits/neutral_traits.html create mode 100644 code/datums/station_traits/positive_traits.html create mode 100644 code/datums/status_effects/_status_effect.html create mode 100644 code/datums/status_effects/buffs.html create mode 100644 code/datums/status_effects/buffs/bioware/_bioware.html create mode 100644 code/datums/status_effects/buffs/bioware/circulation.html create mode 100644 code/datums/status_effects/buffs/food/_food_effect.html create mode 100644 code/datums/status_effects/buffs/food/chilling.html create mode 100644 code/datums/status_effects/buffs/food/grant_trait.html create mode 100644 code/datums/status_effects/buffs/food/haste.html create mode 100644 code/datums/status_effects/buffs/food/speech.html create mode 100644 code/datums/status_effects/buffs/stun_absorption.html create mode 100644 code/datums/status_effects/debuffs/blindness.html create mode 100644 code/datums/status_effects/debuffs/confusion.html create mode 100644 code/datums/status_effects/debuffs/cursed.html create mode 100644 code/datums/status_effects/debuffs/cyborg.html create mode 100644 code/datums/status_effects/debuffs/debuffs.html create mode 100644 code/datums/status_effects/debuffs/decloning.html create mode 100644 code/datums/status_effects/debuffs/dna_transformation.html create mode 100644 code/datums/status_effects/debuffs/drugginess.html create mode 100644 code/datums/status_effects/debuffs/drunk.html create mode 100644 code/datums/status_effects/debuffs/hallucination.html create mode 100644 code/datums/status_effects/debuffs/hooked.html create mode 100644 code/datums/status_effects/debuffs/screen_blur.html create mode 100644 code/datums/status_effects/debuffs/screwy_hud.html create mode 100644 code/datums/status_effects/debuffs/slime/slime_food.html create mode 100644 code/datums/status_effects/debuffs/slime/slimed.html create mode 100644 code/datums/status_effects/debuffs/staggered.html create mode 100644 code/datums/status_effects/debuffs/strandling.html create mode 100644 code/datums/status_effects/debuffs/terrified.html create mode 100644 code/datums/status_effects/debuffs/tox_vomit.html create mode 100644 code/datums/status_effects/grouped_effect.html create mode 100644 code/datums/status_effects/limited_effect.html create mode 100644 code/datums/status_effects/neutral.html create mode 100644 code/datums/status_effects/song_effects.html create mode 100644 code/datums/status_effects/stacking_effect.html create mode 100644 code/datums/status_effects/wound_effects.html create mode 100644 code/datums/storage/storage.html create mode 100644 code/datums/storage/storage_interface.html create mode 100644 code/datums/storage/subtypes/cards.html create mode 100644 code/datums/storage/subtypes/rped.html create mode 100644 code/datums/verb_callbacks.html create mode 100644 code/datums/view.html create mode 100644 code/datums/visual_data.html create mode 100644 code/datums/voice_of_god_command.html create mode 100644 code/datums/votes/_vote_datum.html create mode 100644 code/datums/votes/custom_vote.html create mode 100644 code/datums/weakrefs.html create mode 100644 code/datums/weather/weather.html create mode 100644 code/datums/weather/weather_types/radiation_storm.html create mode 100644 code/datums/weather/weather_types/snow_storm.html create mode 100644 code/datums/wounds/_wound_static_data.html create mode 100644 code/datums/wounds/bones.html create mode 100644 code/datums/wounds/burns.html create mode 100644 code/datums/wounds/cranial_fissure.html create mode 100644 code/datums/wounds/scars/_scars.html create mode 100644 code/game/area/areas.html create mode 100644 code/game/area/areas/ai_monitored.html create mode 100644 code/game/area/areas/mining.html create mode 100644 code/game/area/areas/ruins/space.html create mode 100644 code/game/area/areas/shuttles.html create mode 100644 code/game/atom.html create mode 100644 code/game/atom/atom_examine.html create mode 100644 code/game/atoms_movable.html create mode 100644 code/game/data_huds.html create mode 100644 code/game/gamemodes/events.html create mode 100644 code/game/gamemodes/objective.html create mode 100644 code/game/machinery/PDApainter.html create mode 100644 code/game/machinery/_machinery.html create mode 100644 code/game/machinery/big_manipulator.html create mode 100644 code/game/machinery/buttons.html create mode 100644 code/game/machinery/camera/camera.html create mode 100644 code/game/machinery/camera/presets.html create mode 100644 code/game/machinery/camera/trackable.html create mode 100644 code/game/machinery/civilian_bounties.html create mode 100644 code/game/machinery/computer/arcade/amputation.html create mode 100644 code/game/machinery/computer/arcade/battle.html create mode 100644 code/game/machinery/computer/arcade/orion.html create mode 100644 code/game/machinery/computer/arcade/orion_event.html create mode 100644 code/game/machinery/computer/atmos_computers/__identifiers.html create mode 100644 code/game/machinery/computer/atmos_computers/_air_sensor.html create mode 100644 code/game/machinery/computer/atmos_computers/_atmos_control.html create mode 100644 code/game/machinery/computer/buildandrepair.html create mode 100644 code/game/machinery/computer/communications.html create mode 100644 code/game/machinery/computer/crew.html create mode 100644 code/game/machinery/computer/dna_console.html create mode 100644 code/game/machinery/computer/orders/order_computer/mining_order.html create mode 100644 code/game/machinery/computer/orders/order_items/order_datum.html create mode 100644 code/game/machinery/computer/records/records.html create mode 100644 code/game/machinery/computer/records/security.html create mode 100644 code/game/machinery/computer/telescreen.html create mode 100644 code/game/machinery/deployable.html create mode 100644 code/game/machinery/dna_infuser/dna_infuser.html create mode 100644 code/game/machinery/dna_infuser/infuser_entry.html create mode 100644 code/game/machinery/dna_infuser/organ_sets/carp_organs.html create mode 100644 code/game/machinery/dna_infuser/organ_sets/fly_organs.html create mode 100644 code/game/machinery/dna_infuser/organ_sets/goliath_organs.html create mode 100644 code/game/machinery/dna_infuser/organ_sets/gondola_organs.html create mode 100644 code/game/machinery/dna_infuser/organ_sets/rat_organs.html create mode 100644 code/game/machinery/dna_infuser/organ_sets/roach_organs.html create mode 100644 code/game/machinery/doors/airlock.html create mode 100644 code/game/machinery/doors/brigdoors.html create mode 100644 code/game/machinery/doors/firedoor.html create mode 100644 code/game/machinery/flatpacker.html create mode 100644 code/game/machinery/incident_display.html create mode 100644 code/game/machinery/iv_drip.html create mode 100644 code/game/machinery/lightswitch.html create mode 100644 code/game/machinery/limbgrower.html create mode 100644 code/game/machinery/medical_kiosk.html create mode 100644 code/game/machinery/mining_weather_monitor.html create mode 100644 code/game/machinery/modular_shield.html create mode 100644 code/game/machinery/nebula_shielding.html create mode 100644 code/game/machinery/newscaster/newscaster_data.html create mode 100644 code/game/machinery/newscaster/newspaper.html create mode 100644 code/game/machinery/photobooth.html create mode 100644 code/game/machinery/porta_turret/portable_turret_cover.html create mode 100644 code/game/machinery/roulette_machine.html create mode 100644 code/game/machinery/shieldgen.html create mode 100644 code/game/machinery/sleepers.html create mode 100644 code/game/machinery/slotmachine.html create mode 100644 code/game/machinery/spaceheater.html create mode 100644 code/game/machinery/status_display.html create mode 100644 code/game/machinery/syndicatebomb.html create mode 100644 code/game/machinery/teambuilder.html create mode 100644 code/game/machinery/telecomms/broadcasting.html create mode 100644 code/game/machinery/telecomms/computers/message.html create mode 100644 code/game/machinery/telecomms/machine_interactions.html create mode 100644 code/game/machinery/telecomms/machines/allinone.html create mode 100644 code/game/machinery/telecomms/machines/broadcaster.html create mode 100644 code/game/machinery/telecomms/machines/bus.html create mode 100644 code/game/machinery/telecomms/machines/hub.html create mode 100644 code/game/machinery/telecomms/machines/message_server.html create mode 100644 code/game/machinery/telecomms/machines/processor.html create mode 100644 code/game/machinery/telecomms/machines/receiver.html create mode 100644 code/game/machinery/telecomms/machines/relay.html create mode 100644 code/game/machinery/telecomms/machines/server.html create mode 100644 code/game/objects/effects/anomalies/anomalies_bioscrambler.html create mode 100644 code/game/objects/effects/anomalies/anomalies_bluespace.html create mode 100644 code/game/objects/effects/anomalies/anomalies_dimensional_themes.html create mode 100644 code/game/objects/effects/anomalies/anomalies_ectoplasm.html create mode 100644 code/game/objects/effects/anomalies/anomalies_flux.html create mode 100644 code/game/objects/effects/anomalies/anomalies_gravity.html create mode 100644 code/game/objects/effects/anomalies/anomalies_pyroclastic.html create mode 100644 code/game/objects/effects/bump_teleporter.html create mode 100644 code/game/objects/effects/cursor_catcher.html create mode 100644 code/game/objects/effects/decals/cleanable/misc.html create mode 100644 code/game/objects/effects/decals/crayon.html create mode 100644 code/game/objects/effects/decals/remains.html create mode 100644 code/game/objects/effects/decals/turfdecal/markings.html create mode 100644 code/game/objects/effects/decals/turfdecal/tilecoloring.html create mode 100644 code/game/objects/effects/effect_system/effects_other.html create mode 100644 code/game/objects/effects/effect_system/effects_water.html create mode 100644 code/game/objects/effects/effect_system/fluid_spread/_fluid_spread.html create mode 100644 code/game/objects/effects/effect_system/fluid_spread/effects_foam.html create mode 100644 code/game/objects/effects/effect_system/fluid_spread/effects_smoke.html create mode 100644 code/game/objects/effects/effects.html create mode 100644 code/game/objects/effects/forcefields.html create mode 100644 code/game/objects/effects/glowshroom.html create mode 100644 code/game/objects/effects/info.html create mode 100644 code/game/objects/effects/landmarks.html create mode 100644 code/game/objects/effects/landmarks/atmospherics_sanity_landmarks.html create mode 100644 code/game/objects/effects/lighting.html create mode 100644 code/game/objects/effects/material_insert.html create mode 100644 code/game/objects/effects/mines.html create mode 100644 code/game/objects/effects/overlays.html create mode 100644 code/game/objects/effects/particle_holder.html create mode 100644 code/game/objects/effects/particles/note_particles.html create mode 100644 code/game/objects/effects/particles/slime.html create mode 100644 code/game/objects/effects/portals.html create mode 100644 code/game/objects/effects/poster_demotivational.html create mode 100644 code/game/objects/effects/posters/contraband.html create mode 100644 code/game/objects/effects/posters/poster.html create mode 100644 code/game/objects/effects/rcd.html create mode 100644 code/game/objects/effects/spawners/bombspawner.html create mode 100644 code/game/objects/effects/spawners/random.html create mode 100644 code/game/objects/effects/spawners/random/ai_module.html create mode 100644 code/game/objects/effects/spawners/random/food_or_drink.html create mode 100644 code/game/objects/effects/spawners/random/lavaland_mobs.html create mode 100644 code/game/objects/effects/spawners/random/maintenance.html create mode 100644 code/game/objects/effects/spawners/random/random.html create mode 100644 code/game/objects/effects/spawners/random/structure.html create mode 100644 code/game/objects/effects/spiderwebs.html create mode 100644 code/game/objects/effects/temporary_visuals/effect_trail.html create mode 100644 code/game/objects/effects/temporary_visuals/miscellaneous.html create mode 100644 code/game/objects/effects/temporary_visuals/temporary_visual.html create mode 100644 code/game/objects/items.html create mode 100644 code/game/objects/items/AI_modules/_AI_modules.html create mode 100644 code/game/objects/items/AI_modules/hacked.html create mode 100644 code/game/objects/items/blueprints.html create mode 100644 code/game/objects/items/broom.html create mode 100644 code/game/objects/items/cards_ids.html create mode 100644 code/game/objects/items/devices/aicard_evil.html create mode 100644 code/game/objects/items/devices/anomaly_releaser.html create mode 100644 code/game/objects/items/devices/battle_royale.html create mode 100644 code/game/objects/items/devices/multitool.html create mode 100644 code/game/objects/items/devices/radio/radio.html create mode 100644 code/game/objects/items/devices/scanners/gas_analyzer.html create mode 100644 code/game/objects/items/devices/scanners/health_analyzer.html create mode 100644 code/game/objects/items/devices/table_clock.html create mode 100644 code/game/objects/items/devices/traitordevices.html create mode 100644 code/game/objects/items/dice.html create mode 100644 code/game/objects/items/dna_injector.html create mode 100644 code/game/objects/items/dna_probe.html create mode 100644 code/game/objects/items/eightball.html create mode 100644 code/game/objects/items/food/_food.html create mode 100644 code/game/objects/items/food/bait.html create mode 100644 code/game/objects/items/food/bread.html create mode 100644 code/game/objects/items/food/cheese.html create mode 100644 code/game/objects/items/food/donkpocket.html create mode 100644 code/game/objects/items/food/donuts.html create mode 100644 code/game/objects/items/food/egg.html create mode 100644 code/game/objects/items/food/meatdish.html create mode 100644 code/game/objects/items/food/meatslab.html create mode 100644 code/game/objects/items/food/misc.html create mode 100644 code/game/objects/items/food/pastries.html create mode 100644 code/game/objects/items/food/salad.html create mode 100644 code/game/objects/items/food/snacks.html create mode 100644 code/game/objects/items/food/spaghetti.html create mode 100644 code/game/objects/items/gift.html create mode 100644 code/game/objects/items/granters/_granters.html create mode 100644 code/game/objects/items/granters/chuuni_granter.html create mode 100644 code/game/objects/items/granters/magic/_spell_granter.html create mode 100644 code/game/objects/items/granters/sign_language.html create mode 100644 code/game/objects/items/grenades/_grenade.html create mode 100644 code/game/objects/items/grenades/chem_grenade.html create mode 100644 code/game/objects/items/grenades/smokebomb.html create mode 100644 code/game/objects/items/hand_items.html create mode 100644 code/game/objects/items/handcuffs.html create mode 100644 code/game/objects/items/implants/implant.html create mode 100644 code/game/objects/items/implants/implant_battle_royale.html create mode 100644 code/game/objects/items/implants/implant_clown.html create mode 100644 code/game/objects/items/implants/implant_explosive.html create mode 100644 code/game/objects/items/implants/implantcase.html create mode 100644 code/game/objects/items/implants/implanter.html create mode 100644 code/game/objects/items/implants/security/implant_beacon.html create mode 100644 code/game/objects/items/implants/security/implant_exile.html create mode 100644 code/game/objects/items/implants/security/implant_noteleport.html create mode 100644 code/game/objects/items/inspector.html create mode 100644 code/game/objects/items/janitor_key.html create mode 100644 code/game/objects/items/machine_wand.html create mode 100644 code/game/objects/items/mail.html create mode 100644 code/game/objects/items/manuals.html create mode 100644 code/game/objects/items/melee/energy.html create mode 100644 code/game/objects/items/piggy_bank.html create mode 100644 code/game/objects/items/pitchfork.html create mode 100644 code/game/objects/items/pneumaticCannon.html create mode 100644 code/game/objects/items/powerfist.html create mode 100644 code/game/objects/items/puzzle_pieces.html create mode 100644 code/game/objects/items/rcd/RCD.html create mode 100644 code/game/objects/items/rcd/RPD.html create mode 100644 code/game/objects/items/rcd/RPLD.html create mode 100644 code/game/objects/items/rcd/RSF.html create mode 100644 code/game/objects/items/rcd/RTD.html create mode 100644 code/game/objects/items/robot/ai_upgrades.html create mode 100644 code/game/objects/items/robot/items/generic.html create mode 100644 code/game/objects/items/robot/items/hypo.html create mode 100644 code/game/objects/items/robot/items/storage.html create mode 100644 code/game/objects/items/robot/robot_upgrades.html create mode 100644 code/game/objects/items/secret_documents.html create mode 100644 code/game/objects/items/sharpener.html create mode 100644 code/game/objects/items/stacks/golem_food/golem_food_buff.html create mode 100644 code/game/objects/items/stacks/golem_food/golem_hand_actions.html create mode 100644 code/game/objects/items/stacks/golem_food/golem_status_effects.html create mode 100644 code/game/objects/items/stacks/stack.html create mode 100644 code/game/objects/items/stacks/tiles/tile_types.html create mode 100644 code/game/objects/items/stickers.html create mode 100644 code/game/objects/items/storage/boxes/_boxes.html create mode 100644 code/game/objects/items/storage/briefcase.html create mode 100644 code/game/objects/items/storage/medkit.html create mode 100644 code/game/objects/items/storage/uplink_kits.html create mode 100644 code/game/objects/items/storage/wallets.html create mode 100644 code/game/objects/items/surgery_tray.html create mode 100644 code/game/objects/items/tanks/tanks.html create mode 100644 code/game/objects/items/tcg/tcg.html create mode 100644 code/game/objects/items/tcg/tcg_machines.html create mode 100644 code/game/objects/items/teleportation.html create mode 100644 code/game/objects/items/tongs.html create mode 100644 code/game/objects/items/tools/wirebrush.html create mode 100644 code/game/objects/items/toy_mechs.html create mode 100644 code/game/objects/structures.html create mode 100644 code/game/objects/structures/aliens.html create mode 100644 code/game/objects/structures/beds_chairs/bed.html create mode 100644 code/game/objects/structures/beds_chairs/chair.html create mode 100644 code/game/objects/structures/beds_chairs/sofa.html create mode 100644 code/game/objects/structures/bonfire.html create mode 100644 code/game/objects/structures/cannons/cannon.html create mode 100644 code/game/objects/structures/construction_console/construction_actions.html create mode 100644 code/game/objects/structures/construction_console/construction_console.html create mode 100644 code/game/objects/structures/construction_console/construction_console_aux.html create mode 100644 code/game/objects/structures/construction_console/construction_console_centcom.html create mode 100644 code/game/objects/structures/crates_lockers/closets/bodybag.html create mode 100644 code/game/objects/structures/crates_lockers/crates.html create mode 100644 code/game/objects/structures/crates_lockers/crates/syndicrate.html create mode 100644 code/game/objects/structures/curtains.html create mode 100644 code/game/objects/structures/deployable_turret.html create mode 100644 code/game/objects/structures/fake_stairs.html create mode 100644 code/game/objects/structures/flora.html create mode 100644 code/game/objects/structures/fluff.html create mode 100644 code/game/objects/structures/girders.html create mode 100644 code/game/objects/structures/grille.html create mode 100644 code/game/objects/structures/guillotine.html create mode 100644 code/game/objects/structures/gym/weight_machine.html create mode 100644 code/game/objects/structures/gym/weight_machine_action.html create mode 100644 code/game/objects/structures/lavaland/geyser.html create mode 100644 code/game/objects/structures/lavaland/gulag_vent.html create mode 100644 code/game/objects/structures/loom.html create mode 100644 code/game/objects/structures/maintenance.html create mode 100644 code/game/objects/structures/mannequin.html create mode 100644 code/game/objects/structures/morgue.html create mode 100644 code/game/objects/structures/mystery_box.html create mode 100644 code/game/objects/structures/ore_containers.html create mode 100644 code/game/objects/structures/pinatas.html create mode 100644 code/game/objects/structures/safe.html create mode 100644 code/game/objects/structures/secure_safe.html create mode 100644 code/game/objects/structures/shower.html create mode 100644 code/game/objects/structures/signs/_signs.html create mode 100644 code/game/objects/structures/signs/signs_departments.html create mode 100644 code/game/objects/structures/signs/signs_warning.html create mode 100644 code/game/objects/structures/syndicate_uplink_beacon.html create mode 100644 code/game/objects/structures/tables_racks.html create mode 100644 code/game/objects/structures/tank_holder.html create mode 100644 code/game/objects/structures/training_machine.html create mode 100644 code/game/say.html create mode 100644 code/game/shuttle_engines.html create mode 100644 code/game/sound.html create mode 100644 code/game/turfs/closed/minerals.html create mode 100644 code/game/turfs/closed/wall/mineral_walls.html create mode 100644 code/game/turfs/open/asteroid.html create mode 100644 code/game/turfs/open/cliff.html create mode 100644 code/game/turfs/open/floor.html create mode 100644 code/game/turfs/open/floor/catwalk_plating.html create mode 100644 code/game/turfs/open/floor/fancy_floor.html create mode 100644 code/game/turfs/open/floor/glass.html create mode 100644 code/game/turfs/open/floor/plating.html create mode 100644 code/game/turfs/open/lava.html create mode 100644 code/game/turfs/open/misc.html create mode 100644 code/game/turfs/open/space/transit.html create mode 100644 code/game/turfs/turf.html create mode 100644 code/game/world.html create mode 100644 code/modules/NTNet/relays.html create mode 100644 code/modules/actionspeed/_actionspeed_modifier.html create mode 100644 code/modules/actionspeed/modifiers/status_effects.html create mode 100644 code/modules/admin/admin.html create mode 100644 code/modules/admin/admin_fax_panel.html create mode 100644 code/modules/admin/admin_pda_message.html create mode 100644 code/modules/admin/admin_ranks.html create mode 100644 code/modules/admin/admin_verbs.html create mode 100644 code/modules/admin/callproc/callproc.html create mode 100644 code/modules/admin/chat_commands.html create mode 100644 code/modules/admin/create_mob.html create mode 100644 code/modules/admin/force_event.html create mode 100644 code/modules/admin/greyscale_modify_menu.html create mode 100644 code/modules/admin/painting_manager.html create mode 100644 code/modules/admin/poll_management.html create mode 100644 code/modules/admin/smites/bad_luck.html create mode 100644 code/modules/admin/smites/become_object.html create mode 100644 code/modules/admin/smites/berforate.html create mode 100644 code/modules/admin/smites/bloodless.html create mode 100644 code/modules/admin/smites/boneless.html create mode 100644 code/modules/admin/smites/brain_damage.html create mode 100644 code/modules/admin/smites/bsa.html create mode 100644 code/modules/admin/smites/curse_of_babel.html create mode 100644 code/modules/admin/smites/dock_pay.html create mode 100644 code/modules/admin/smites/fake_bwoink.html create mode 100644 code/modules/admin/smites/fat.html create mode 100644 code/modules/admin/smites/fireball.html create mode 100644 code/modules/admin/smites/gib.html create mode 100644 code/modules/admin/smites/imaginary_friend_special.html create mode 100644 code/modules/admin/smites/immerse.html create mode 100644 code/modules/admin/smites/knot_shoes.html create mode 100644 code/modules/admin/smites/lightning.html create mode 100644 code/modules/admin/smites/nugget.html create mode 100644 code/modules/admin/smites/petrify.html create mode 100644 code/modules/admin/smites/phobia_ocky_icky.html create mode 100644 code/modules/admin/smites/puzzgrid.html create mode 100644 code/modules/admin/smites/puzzle.html create mode 100644 code/modules/admin/smites/rod.html create mode 100644 code/modules/admin/smites/scarify.html create mode 100644 code/modules/admin/smites/smite.html create mode 100644 code/modules/admin/smites/supply_pod.html create mode 100644 code/modules/admin/smites/supply_pod_quick.html create mode 100644 code/modules/admin/sql_ban_system.html create mode 100644 code/modules/admin/sql_message_system.html create mode 100644 code/modules/admin/tag.html create mode 100644 code/modules/admin/trophy_manager.html create mode 100644 code/modules/admin/verb_datums/_admin_verb_datum.html create mode 100644 code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.html create mode 100644 code/modules/admin/verbs/adminfun.html create mode 100644 code/modules/admin/verbs/adminhelp.html create mode 100644 code/modules/admin/verbs/adminpm.html create mode 100644 code/modules/admin/verbs/ai_triumvirate.html create mode 100644 code/modules/admin/verbs/color_blind_test.html create mode 100644 code/modules/admin/verbs/commandreport.html create mode 100644 code/modules/admin/verbs/ert.html create mode 100644 code/modules/admin/verbs/highlander_datum.html create mode 100644 code/modules/admin/verbs/light_debug.html create mode 100644 code/modules/admin/verbs/lua.html create mode 100644 code/modules/admin/verbs/lua/_hooks.html create mode 100644 code/modules/admin/verbs/lua/helpers.html create mode 100644 code/modules/admin/verbs/map_export.html create mode 100644 code/modules/admin/verbs/mapping.html create mode 100644 code/modules/admin/verbs/plane_debugger.html create mode 100644 code/modules/admin/verbs/player_ticket_history.html create mode 100644 code/modules/admin/verbs/playsound.html create mode 100644 code/modules/admin/verbs/pray.html create mode 100644 code/modules/admin/verbs/secrets.html create mode 100644 code/modules/admin/view_variables/debug_variables.html create mode 100644 code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.html create mode 100644 code/modules/admin/view_variables/view_variables.html create mode 100644 code/modules/antagonists/_common/antag_datum.html create mode 100644 code/modules/antagonists/_common/antag_helpers.html create mode 100644 code/modules/antagonists/_common/antag_hud.html create mode 100644 code/modules/antagonists/_common/antag_spawner.html create mode 100644 code/modules/antagonists/abductor/abductee/abductee.html create mode 100644 code/modules/antagonists/blob/blob_antag.html create mode 100644 code/modules/antagonists/changeling/changeling.html create mode 100644 code/modules/antagonists/changeling/fallen_changeling.html create mode 100644 code/modules/antagonists/changeling/headslug_eggs.html create mode 100644 code/modules/antagonists/changeling/powers/mutations.html create mode 100644 code/modules/antagonists/changeling/powers/transform.html create mode 100644 code/modules/antagonists/clown_ops/bananium_bomb.html create mode 100644 code/modules/antagonists/clown_ops/clown_weapons.html create mode 100644 code/modules/antagonists/cult/blood_magic.html create mode 100644 code/modules/antagonists/cult/cult_comms.html create mode 100644 code/modules/antagonists/cult/cult_items.html create mode 100644 code/modules/antagonists/cult/cult_other.html create mode 100644 code/modules/antagonists/cult/cult_structure_altar.html create mode 100644 code/modules/antagonists/cult/cult_structure_archives.html create mode 100644 code/modules/antagonists/cult/cult_structure_forge.html create mode 100644 code/modules/antagonists/cult/runes.html create mode 100644 code/modules/antagonists/fugitive/hunters/hunter_gear.html create mode 100644 code/modules/antagonists/heretic/heretic_antag.html create mode 100644 code/modules/antagonists/heretic/heretic_focus.html create mode 100644 code/modules/antagonists/heretic/heretic_knowledge.html create mode 100644 code/modules/antagonists/heretic/heretic_living_heart.html create mode 100644 code/modules/antagonists/heretic/heretic_monsters.html create mode 100644 code/modules/antagonists/heretic/influences.html create mode 100644 code/modules/antagonists/heretic/items/corrupted_organs.html create mode 100644 code/modules/antagonists/heretic/items/hunter_rifle.html create mode 100644 code/modules/antagonists/heretic/items/keyring.html create mode 100644 code/modules/antagonists/heretic/items/labyrinth_handbook.html create mode 100644 code/modules/antagonists/heretic/knowledge/ash_lore.html create mode 100644 code/modules/antagonists/heretic/knowledge/blade_lore.html create mode 100644 code/modules/antagonists/heretic/knowledge/cosmic_lore.html create mode 100644 code/modules/antagonists/heretic/knowledge/flesh_lore.html create mode 100644 code/modules/antagonists/heretic/knowledge/lock_lore.html create mode 100644 code/modules/antagonists/heretic/knowledge/moon_lore.html create mode 100644 code/modules/antagonists/heretic/knowledge/rust_lore.html create mode 100644 code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_buff.html create mode 100644 code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_curse.html create mode 100644 code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_knowledge.html create mode 100644 code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_map.html create mode 100644 code/modules/antagonists/heretic/knowledge/side_void_blade.html create mode 100644 code/modules/antagonists/heretic/knowledge/starting_lore.html create mode 100644 code/modules/antagonists/heretic/knowledge/void_lore.html create mode 100644 code/modules/antagonists/heretic/magic/ash_ascension.html create mode 100644 code/modules/antagonists/heretic/magic/cosmic_runes.html create mode 100644 code/modules/antagonists/heretic/magic/fire_blast.html create mode 100644 code/modules/antagonists/heretic/magic/shadow_cloak.html create mode 100644 code/modules/antagonists/heretic/magic/space_crawl.html create mode 100644 code/modules/antagonists/heretic/soultrapped_heretic.html create mode 100644 code/modules/antagonists/heretic/status_effects/buffs.html create mode 100644 code/modules/antagonists/heretic/status_effects/debuffs.html create mode 100644 code/modules/antagonists/heretic/status_effects/void_chill.html create mode 100644 code/modules/antagonists/heretic/transmutation_rune.html create mode 100644 code/modules/antagonists/hypnotized/hypnotized.html create mode 100644 code/modules/antagonists/malf_ai/malf_ai.html create mode 100644 code/modules/antagonists/malf_ai/malf_ai_module_picker.html create mode 100644 code/modules/antagonists/malf_ai/malf_ai_modules.html create mode 100644 code/modules/antagonists/nightmare/nightmare_equipment.html create mode 100644 code/modules/antagonists/nightmare/nightmare_organs.html create mode 100644 code/modules/antagonists/nightmare/nightmare_species.html create mode 100644 code/modules/antagonists/ninja/energy_katana.html create mode 100644 code/modules/antagonists/ninja/energy_net_nets.html create mode 100644 code/modules/antagonists/ninja/ninjaDrainAct.html create mode 100644 code/modules/antagonists/ninja/ninja_clothing.html create mode 100644 code/modules/antagonists/ninja/ninja_explosive.html create mode 100644 code/modules/antagonists/ninja/ninja_stars.html create mode 100644 code/modules/antagonists/nukeop/datums/operative_team.html create mode 100644 code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.html create mode 100644 code/modules/antagonists/nukeop/equipment/nuclear_bomb/beer_nuke.html create mode 100644 code/modules/antagonists/nukeop/equipment/nuclear_challenge.html create mode 100644 code/modules/antagonists/nukeop/equipment/overwatch_tools.html create mode 100644 code/modules/antagonists/obsessed/obsessed.html create mode 100644 code/modules/antagonists/paradox_clone/paradox_clone.html create mode 100644 code/modules/antagonists/pirate/pirate_gangs.html create mode 100644 code/modules/antagonists/pirate/pirate_shuttle_equipment.html create mode 100644 code/modules/antagonists/revenant/haunted_item.html create mode 100644 code/modules/antagonists/revolution/enemy_of_the_state.html create mode 100644 code/modules/antagonists/separatist/nation_creation.html create mode 100644 code/modules/antagonists/shade/shade_minion.html create mode 100644 code/modules/antagonists/space_dragon/carp_rift.html create mode 100644 code/modules/antagonists/spiders/spiders.html create mode 100644 code/modules/antagonists/spy/spy_bounty.html create mode 100644 code/modules/antagonists/spy/spy_bounty_handler.html create mode 100644 code/modules/antagonists/spy/spy_uplink.html create mode 100644 code/modules/antagonists/survivalist/survivalist.html create mode 100644 code/modules/antagonists/traitor.html create mode 100644 code/modules/antagonists/traitor/components/demoraliser.html create mode 100644 code/modules/antagonists/traitor/components/traitor_objective_helpers.html create mode 100644 code/modules/antagonists/traitor/components/traitor_objective_limit_per_time.html create mode 100644 code/modules/antagonists/traitor/components/traitor_objective_mind_tracker.html create mode 100644 code/modules/antagonists/traitor/contractor/contract_teammate.html create mode 100644 code/modules/antagonists/traitor/datum_traitor.html create mode 100644 code/modules/antagonists/traitor/objective_category.html create mode 100644 code/modules/antagonists/traitor/objectives/abstract/target_player.html create mode 100644 code/modules/antagonists/traitor/objectives/destroy_heirloom.html create mode 100644 code/modules/antagonists/traitor/objectives/destroy_item.html create mode 100644 code/modules/antagonists/traitor/objectives/sabotage_machinery.html create mode 100644 code/modules/antagonists/traitor/traitor_objective.html create mode 100644 code/modules/antagonists/traitor/uplink_handler.html create mode 100644 code/modules/antagonists/voidwalker/voidwalker.html create mode 100644 code/modules/antagonists/voidwalker/voidwalker_abilities.html create mode 100644 code/modules/antagonists/voidwalker/voidwalker_bodyparts.html create mode 100644 code/modules/antagonists/voidwalker/voidwalker_kidnap.html create mode 100644 code/modules/antagonists/voidwalker/voidwalker_loot.html create mode 100644 code/modules/antagonists/voidwalker/voidwalker_organs.html create mode 100644 code/modules/antagonists/voidwalker/voidwalker_species.html create mode 100644 code/modules/antagonists/voidwalker/voidwalker_status_effects.html create mode 100644 code/modules/antagonists/voidwalker/voidwalker_traumas.html create mode 100644 code/modules/antagonists/voidwalker/voidwalker_void_eater.html create mode 100644 code/modules/antagonists/wizard/equipment/artefact.html create mode 100644 code/modules/antagonists/wizard/equipment/enchanted_clown_suit.html create mode 100644 code/modules/antagonists/wizard/equipment/soulstone.html create mode 100644 code/modules/antagonists/wizard/equipment/spellbook_entries/_entry.html create mode 100644 code/modules/antagonists/wizard/equipment/spellbook_entries/summons.html create mode 100644 code/modules/antagonists/wizard/equipment/teleport_rod.html create mode 100644 code/modules/antagonists/wizard/grand_ritual/finales/all_access.html create mode 100644 code/modules/antagonists/wizard/grand_ritual/finales/armageddon.html create mode 100644 code/modules/antagonists/wizard/grand_ritual/finales/captaincy.html create mode 100644 code/modules/antagonists/wizard/grand_ritual/finales/cheese.html create mode 100644 code/modules/antagonists/wizard/grand_ritual/finales/clown.html create mode 100644 code/modules/antagonists/wizard/grand_ritual/finales/grand_ritual_finale.html create mode 100644 code/modules/antagonists/wizard/grand_ritual/finales/immortality.html create mode 100644 code/modules/antagonists/wizard/grand_ritual/finales/midas.html create mode 100644 code/modules/antagonists/wizard/grand_ritual/fluff.html create mode 100644 code/modules/antagonists/wizard/grand_ritual/grand_ritual.html create mode 100644 code/modules/antagonists/wizard/grand_ritual/grand_rune.html create mode 100644 code/modules/antagonists/wizard/grand_ritual/grand_side_effect.html create mode 100644 code/modules/antagonists/wizard/imp_antag.html create mode 100644 code/modules/antagonists/xeno/xeno.html create mode 100644 code/modules/art/paintings.html create mode 100644 code/modules/art/statues.html create mode 100644 code/modules/asset_cache.html create mode 100644 code/modules/asset_cache/asset_cache_item.html create mode 100644 code/modules/asset_cache/asset_list.html create mode 100644 code/modules/asset_cache/assets/body_zones.html create mode 100644 code/modules/asset_cache/assets/chemmaster.html create mode 100644 code/modules/asset_cache/assets/crafting.html create mode 100644 code/modules/asset_cache/assets/icon_ref_map.html create mode 100644 code/modules/asset_cache/assets/uplink.html create mode 100644 code/modules/asset_cache/transports/asset_transport.html create mode 100644 code/modules/asset_cache/transports/webroot_transport.html create mode 100644 code/modules/atmospherics/Atmospherics.html create mode 100644 code/modules/atmospherics/environmental/LINDA_fire.html create mode 100644 code/modules/atmospherics/environmental/LINDA_turf_tile.html create mode 100644 code/modules/atmospherics/gasmixtures/reactions.html create mode 100644 code/modules/atmospherics/machinery/air_alarm/air_alarm_modes.html create mode 100644 code/modules/atmospherics/machinery/bluespace_vendor.html create mode 100644 code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.html create mode 100644 code/modules/atmospherics/machinery/components/fusion/_hfr_defines.html create mode 100644 code/modules/atmospherics/machinery/components/fusion/hfr_core.html create mode 100644 code/modules/atmospherics/machinery/components/fusion/hfr_parts.html create mode 100644 code/modules/atmospherics/machinery/components/unary_devices/airlock_pump.html create mode 100644 code/modules/atmospherics/machinery/components/unary_devices/cryo.html create mode 100644 code/modules/atmospherics/machinery/components/unary_devices/machine_connector.html create mode 100644 code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.html create mode 100644 code/modules/atmospherics/machinery/pipes/multiz.html create mode 100644 code/modules/atmospherics/machinery/portable/canister.html create mode 100644 code/modules/autowiki/autowiki.html create mode 100644 code/modules/autowiki/pages/base.html create mode 100644 code/modules/autowiki/pages/fishing.html create mode 100644 code/modules/autowiki/pages/stockparts.html create mode 100644 code/modules/awaymissions/away_props.html create mode 100644 code/modules/awaymissions/cordon.html create mode 100644 code/modules/awaymissions/gateway.html create mode 100644 code/modules/awaymissions/mission_code/snowdin.html create mode 100644 code/modules/awaymissions/zlevel.html create mode 100644 code/modules/balloon_alert/balloon_alert.html create mode 100644 code/modules/basketball/controller.html create mode 100644 code/modules/bitrunning/abilities.html create mode 100644 code/modules/bitrunning/areas.html create mode 100644 code/modules/bitrunning/components/avatar_connection.html create mode 100644 code/modules/bitrunning/components/bitrunning_points.html create mode 100644 code/modules/bitrunning/components/npc_friendly.html create mode 100644 code/modules/bitrunning/components/virtual_entity.html create mode 100644 code/modules/bitrunning/designs.html create mode 100644 code/modules/bitrunning/objects/disks.html create mode 100644 code/modules/bitrunning/objects/landmarks.html create mode 100644 code/modules/bitrunning/objects/loot_crate.html create mode 100644 code/modules/bitrunning/server/_parent.html create mode 100644 code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.html create mode 100644 code/modules/bitrunning/virtual_domain/domains/test_only.html create mode 100644 code/modules/bitrunning/virtual_domain/modular_mob_segment.html create mode 100644 code/modules/bitrunning/virtual_domain/virtual_domain.html create mode 100644 code/modules/buildmode.html create mode 100644 code/modules/buildmode/bm_mode.html create mode 100644 code/modules/buildmode/submodes/map_export.html create mode 100644 code/modules/capture_the_flag/ctf_controller.html create mode 100644 code/modules/capture_the_flag/ctf_game.html create mode 100644 code/modules/capture_the_flag/ctf_player_component.html create mode 100644 code/modules/capture_the_flag/ctf_voting.html create mode 100644 code/modules/capture_the_flag/medieval_sim/medisim_game.html create mode 100644 code/modules/cards/cards.html create mode 100644 code/modules/cargo/bounties/assistant.html create mode 100644 code/modules/cargo/bounties/security.html create mode 100644 code/modules/cargo/bounty.html create mode 100644 code/modules/cargo/coupon.html create mode 100644 code/modules/cargo/exports.html create mode 100644 code/modules/cargo/exports/food_and_drink.html create mode 100644 code/modules/cargo/exports/large_objects.html create mode 100644 code/modules/cargo/markets/market_items/hostages.html create mode 100644 code/modules/cargo/markets/market_items/local_goods.html create mode 100644 code/modules/cargo/markets/market_items/stolen_goods.html create mode 100644 code/modules/cargo/markets/market_items/tools.html create mode 100644 code/modules/cargo/materials_market.html create mode 100644 code/modules/cargo/order.html create mode 100644 code/modules/cargo/packs/_packs.html create mode 100644 code/modules/cargo/packs/engineering.html create mode 100644 code/modules/cargo/packs/exploration.html create mode 100644 code/modules/cargo/packs/general.html create mode 100644 code/modules/cargo/packs/imports.html create mode 100644 code/modules/cargo/packs/security.html create mode 100644 code/modules/cargo/packs/service.html create mode 100644 code/modules/cargo/packs/vending_restock.html create mode 100644 code/modules/chatter/chatter.html create mode 100644 code/modules/client/client_colour.html create mode 100644 code/modules/client/client_defines.html create mode 100644 code/modules/client/player_details.html create mode 100644 code/modules/client/preferences.html create mode 100644 code/modules/client/preferences/_preference.html create mode 100644 code/modules/client/preferences/admin.html create mode 100644 code/modules/client/preferences/ai_core_display.html create mode 100644 code/modules/client/preferences/ai_emote_display.html create mode 100644 code/modules/client/preferences/ai_hologram_display.html create mode 100644 code/modules/client/preferences/ambient_occlusion.html create mode 100644 code/modules/client/preferences/assets.html create mode 100644 code/modules/client/preferences/blindfold_color.html create mode 100644 code/modules/client/preferences/broadcast_login_logout.html create mode 100644 code/modules/client/preferences/clothing.html create mode 100644 code/modules/client/preferences/darkened_flash.html create mode 100644 code/modules/client/preferences/gender.html create mode 100644 code/modules/client/preferences/ghost.html create mode 100644 code/modules/client/preferences/ghost_lighting.html create mode 100644 code/modules/client/preferences/middleware/_middleware.html create mode 100644 code/modules/client/preferences/middleware/antags.html create mode 100644 code/modules/client/preferences/middleware/keybindings.html create mode 100644 code/modules/client/preferences/middleware/legacy_toggles.html create mode 100644 code/modules/client/preferences/middleware/names.html create mode 100644 code/modules/client/preferences/middleware/quirks.html create mode 100644 code/modules/client/preferences/middleware/random.html create mode 100644 code/modules/client/preferences/middleware/species.html create mode 100644 code/modules/client/preferences/middleware/tts.html create mode 100644 code/modules/client/preferences/mod_select.html create mode 100644 code/modules/client/preferences/multiz_parallax.html create mode 100644 code/modules/client/preferences/multiz_performance.html create mode 100644 code/modules/client/preferences/names.html create mode 100644 code/modules/client/preferences/ooc.html create mode 100644 code/modules/client/preferences/operative_species.html create mode 100644 code/modules/client/preferences/paint_color.html create mode 100644 code/modules/client/preferences/parallax.html create mode 100644 code/modules/client/preferences/pda.html create mode 100644 code/modules/client/preferences/playtime_reward_cloak.html create mode 100644 code/modules/client/preferences/preferred_map.html create mode 100644 code/modules/client/preferences/prisoner_crime.html create mode 100644 code/modules/client/preferences/scaling_method.html create mode 100644 code/modules/client/preferences/security_department.html create mode 100644 code/modules/client/preferences/sounds.html create mode 100644 code/modules/client/preferences/species.html create mode 100644 code/modules/client/preferences/tgui.html create mode 100644 code/modules/client/preferences/ui_style.html create mode 100644 code/modules/client/preferences/voice.html create mode 100644 code/modules/client/preferences/window_flashing.html create mode 100644 code/modules/client/verbs/who.html create mode 100644 code/modules/clothing/belts/polymorph_belt.html create mode 100644 code/modules/clothing/chameleon/_chameleon_action.html create mode 100644 code/modules/clothing/chameleon/chameleon_scanner.html create mode 100644 code/modules/clothing/glasses/_glasses.html create mode 100644 code/modules/clothing/gloves/special.html create mode 100644 code/modules/clothing/head/costume.html create mode 100644 code/modules/clothing/head/hat.html create mode 100644 code/modules/clothing/head/jobs.html create mode 100644 code/modules/clothing/masks/animal_masks.html create mode 100644 code/modules/clothing/masks/gas_filter.html create mode 100644 code/modules/clothing/masks/gasmask.html create mode 100644 code/modules/clothing/neck/collar_bomb.html create mode 100644 code/modules/clothing/outfits/ert.html create mode 100644 code/modules/clothing/shoes/cowboy.html create mode 100644 code/modules/clothing/spacesuits/_spacesuits.html create mode 100644 code/modules/clothing/suits/bio.html create mode 100644 code/modules/clothing/suits/reactive_armour_dimensional_themes.html create mode 100644 code/modules/clothing/suits/toggles.html create mode 100644 code/modules/clothing/suits/wiz_robe.html create mode 100644 code/modules/clothing/under/accessories/_accessories.html create mode 100644 code/modules/clothing/under/accessories/badges.html create mode 100644 code/modules/clothing/under/color.html create mode 100644 code/modules/clothing/under/costume.html create mode 100644 code/modules/clothing/under/jobs/station_trait.html create mode 100644 code/modules/clothing/under/miscellaneous.html create mode 100644 code/modules/deathmatch/deathmatch_loadouts.html create mode 100644 code/modules/deathmatch/deathmatch_modifier.html create mode 100644 code/modules/discord/discord_embed.html create mode 100644 code/modules/discord/discord_link_record.html create mode 100644 code/modules/escape_menu.html create mode 100644 code/modules/escape_menu/details.html create mode 100644 code/modules/escape_menu/subsystem.html create mode 100644 code/modules/escape_menu/title.html create mode 100644 code/modules/events/_event.html create mode 100644 code/modules/events/_event_admin_setup.html create mode 100644 code/modules/events/disease_outbreak.html create mode 100644 code/modules/events/earthquake.html create mode 100644 code/modules/events/holiday/xmas.html create mode 100644 code/modules/events/immovable_rod/immovable_rod.html create mode 100644 code/modules/events/immovable_rod/immovable_rod_event.html create mode 100644 code/modules/events/market_crash.html create mode 100644 code/modules/events/sandstorm.html create mode 100644 code/modules/events/shuttle_loan/shuttle_loan_datum.html create mode 100644 code/modules/events/space_vines/vine_controller.html create mode 100644 code/modules/events/stray_cargo.html create mode 100644 code/modules/events/supermatter_surge.html create mode 100644 code/modules/events/wizard/curseditems.html create mode 100644 code/modules/events/wizard/departmentrevolt.html create mode 100644 code/modules/events/wizard/embeddies.html create mode 100644 code/modules/events/wizard/rpgloot.html create mode 100644 code/modules/experisci/destructive_scanner.html create mode 100644 code/modules/experisci/experiment/experiments.html create mode 100644 code/modules/experisci/experiment/handlers/experiment_handler.html create mode 100644 code/modules/experisci/experiment/types/experiment.html create mode 100644 code/modules/experisci/experiment/types/ordnance.html create mode 100644 code/modules/experisci/experiment/types/scanning.html create mode 100644 code/modules/experisci/experiment/types/scanning_fish.html create mode 100644 code/modules/experisci/experiment/types/scanning_machinery.html create mode 100644 code/modules/experisci/experiment/types/scanning_people.html create mode 100644 code/modules/experisci/experiment/types/scanning_reagent.html create mode 100644 code/modules/experisci/handheld_scanner.html create mode 100644 code/modules/explorer_drone/adventure.html create mode 100644 code/modules/explorer_drone/exodrone.html create mode 100644 code/modules/explorer_drone/exploration_events/_exploration_event.html create mode 100644 code/modules/explorer_drone/exploration_events/adventure.html create mode 100644 code/modules/explorer_drone/exploration_events/danger.html create mode 100644 code/modules/explorer_drone/exploration_events/fluff.html create mode 100644 code/modules/explorer_drone/exploration_events/resource.html create mode 100644 code/modules/explorer_drone/exploration_events/trader.html create mode 100644 code/modules/explorer_drone/exploration_site.html create mode 100644 code/modules/explorer_drone/loot.html create mode 100644 code/modules/explorer_drone/manager.html create mode 100644 code/modules/explorer_drone/scanner_array.html create mode 100644 code/modules/fishing/aquarium/aquarium.html create mode 100644 code/modules/fishing/aquarium/aquarium_kit.html create mode 100644 code/modules/fishing/aquarium/aquarium_upgrades.html create mode 100644 code/modules/fishing/aquarium/fish_analyzer.html create mode 100644 code/modules/fishing/fish/_fish.html create mode 100644 code/modules/fishing/fish/chasm_detritus.html create mode 100644 code/modules/fishing/fish/fish_evolution.html create mode 100644 code/modules/fishing/fish/fish_traits.html create mode 100644 code/modules/fishing/fish/types/mining.html create mode 100644 code/modules/fishing/fish/types/ruins.html create mode 100644 code/modules/fishing/fish/types/syndicate.html create mode 100644 code/modules/fishing/fish_catalog.html create mode 100644 code/modules/fishing/fish_movement.html create mode 100644 code/modules/fishing/fishing_equipment.html create mode 100644 code/modules/fishing/fishing_minigame.html create mode 100644 code/modules/fishing/fishing_rod.html create mode 100644 code/modules/fishing/sources/_fish_source.html create mode 100644 code/modules/fishing/sources/source_types.html create mode 100644 code/modules/flufftext/Dreaming.html create mode 100644 code/modules/food_and_drinks/machinery/deep_fryer.html create mode 100644 code/modules/food_and_drinks/machinery/grill.html create mode 100644 code/modules/food_and_drinks/machinery/icecream_vat.html create mode 100644 code/modules/food_and_drinks/machinery/microwave.html create mode 100644 code/modules/food_and_drinks/machinery/smartfridge.html create mode 100644 code/modules/food_and_drinks/machinery/stove_component.html create mode 100644 code/modules/food_and_drinks/recipes/drinks/drinks_alcoholic.html create mode 100644 code/modules/food_and_drinks/recipes/food_mixtures.html create mode 100644 code/modules/food_and_drinks/recipes/soup_mixtures.html create mode 100644 code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.html create mode 100644 code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.html create mode 100644 code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.html create mode 100644 code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.html create mode 100644 code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.html create mode 100644 code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.html create mode 100644 code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.html create mode 100644 code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.html create mode 100644 code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.html create mode 100644 code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.html create mode 100644 code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.html create mode 100644 code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.html create mode 100644 code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.html create mode 100644 code/modules/food_and_drinks/restaurant/_venue.html create mode 100644 code/modules/food_and_drinks/restaurant/custom_order.html create mode 100644 code/modules/food_and_drinks/restaurant/customers/_customer.html create mode 100644 code/modules/food_and_drinks/restaurant/generic_venues.html create mode 100644 code/modules/forensics/_forensics.html create mode 100644 code/modules/hallucination/_hallucination.html create mode 100644 code/modules/hallucination/battle.html create mode 100644 code/modules/hallucination/body.html create mode 100644 code/modules/hallucination/bubblegum_attack.html create mode 100644 code/modules/hallucination/delusions.html create mode 100644 code/modules/hallucination/fake_alert.html create mode 100644 code/modules/hallucination/fake_chat.html create mode 100644 code/modules/hallucination/fake_plasmaflood.html create mode 100644 code/modules/hallucination/fake_sound.html create mode 100644 code/modules/hallucination/hazard.html create mode 100644 code/modules/hallucination/hud_screw.html create mode 100644 code/modules/hallucination/ice_cube.html create mode 100644 code/modules/hallucination/inhand_fake_item.html create mode 100644 code/modules/hallucination/mother.html create mode 100644 code/modules/hallucination/nearby_fake_item.html create mode 100644 code/modules/hallucination/screwy_health_doll.html create mode 100644 code/modules/hallucination/shock.html create mode 100644 code/modules/hallucination/stray_bullet.html create mode 100644 code/modules/hallucination/xeno_attack.html create mode 100644 code/modules/holiday/holidays.html create mode 100644 code/modules/holiday/nth_week.html create mode 100644 code/modules/hydroponics/beekeeping/bee_smoker.html create mode 100644 code/modules/hydroponics/biogenerator.html create mode 100644 code/modules/hydroponics/fermenting_barrel.html create mode 100644 code/modules/hydroponics/grafts.html create mode 100644 code/modules/hydroponics/grown.html create mode 100644 code/modules/hydroponics/grown/flowers.html create mode 100644 code/modules/hydroponics/grown/hedges.html create mode 100644 code/modules/hydroponics/grown/melon.html create mode 100644 code/modules/hydroponics/grown/replicapod.html create mode 100644 code/modules/hydroponics/grown/sugarcane.html create mode 100644 code/modules/hydroponics/hydroponics.html create mode 100644 code/modules/hydroponics/plant_genes.html create mode 100644 code/modules/hydroponics/seed_extractor.html create mode 100644 code/modules/hydroponics/unique_plant_genes.html create mode 100644 code/modules/instruments/instrument_data/_instrument_data.html create mode 100644 code/modules/instruments/instrument_data/_instrument_key.html create mode 100644 code/modules/instruments/songs/_song.html create mode 100644 code/modules/interview/interview.html create mode 100644 code/modules/interview/interview_manager.html create mode 100644 code/modules/jobs/departments/departments.html create mode 100644 code/modules/jobs/job_types/_job.html create mode 100644 code/modules/jobs/job_types/assistant/colorful_assistants.html create mode 100644 code/modules/jobs/job_types/assistant/gimmick_assistants.html create mode 100644 code/modules/jobs/job_types/chaplain/chaplain_costumes.html create mode 100644 code/modules/jobs/job_types/chaplain/chaplain_divine_archer.html create mode 100644 code/modules/jobs/job_types/chaplain/chaplain_nullrod.html create mode 100644 code/modules/jobs/job_types/scientist.html create mode 100644 code/modules/jobs/job_types/security_officer.html create mode 100644 code/modules/jobs/job_types/station_trait/pun_pun.html create mode 100644 code/modules/jobs/job_types/unassigned.html create mode 100644 code/modules/keybindings.html create mode 100644 code/modules/language/_language.html create mode 100644 code/modules/language/_language_holder.html create mode 100644 code/modules/library/admin_only.html create mode 100644 code/modules/library/book_info.html create mode 100644 code/modules/library/lib_machines.html create mode 100644 code/modules/library/skill_learning/generic_skillchips/point.html create mode 100644 code/modules/lighting/lighting_atom.html create mode 100644 code/modules/lighting/lighting_corner.html create mode 100644 code/modules/lighting/lighting_source.html create mode 100644 code/modules/loadout/categories/accessories.html create mode 100644 code/modules/loadout/categories/glasses.html create mode 100644 code/modules/loadout/categories/heads.html create mode 100644 code/modules/loadout/categories/inhands.html create mode 100644 code/modules/loadout/categories/neck.html create mode 100644 code/modules/loadout/categories/pocket.html create mode 100644 code/modules/loadout/loadout_categories.html create mode 100644 code/modules/loadout/loadout_helpers.html create mode 100644 code/modules/loadout/loadout_items.html create mode 100644 code/modules/logging/log_category.html create mode 100644 code/modules/logging/log_entry.html create mode 100644 code/modules/logging/log_holder.html create mode 100644 code/modules/lootpanel/_lootpanel.html create mode 100644 code/modules/lootpanel/search_object.html create mode 100644 code/modules/lootpanel/ss_looting.html create mode 100644 code/modules/mafia/_defines.html create mode 100644 code/modules/mafia/abilities/investigative/investigate.html create mode 100644 code/modules/mafia/abilities/investigative/pray.html create mode 100644 code/modules/mafia/abilities/investigative/reveal.html create mode 100644 code/modules/mafia/abilities/investigative/thoughtfeed.html create mode 100644 code/modules/mafia/abilities/killing/alert.html create mode 100644 code/modules/mafia/abilities/killing/flicker_rampage.html create mode 100644 code/modules/mafia/abilities/killing/kill.html create mode 100644 code/modules/mafia/abilities/protective/heal.html create mode 100644 code/modules/mafia/abilities/protective/vest.html create mode 100644 code/modules/mafia/abilities/support/roleblock.html create mode 100644 code/modules/mafia/abilities/support/self_reveal.html create mode 100644 code/modules/mafia/abilities/voting/changeling_kill.html create mode 100644 code/modules/mafia/abilities/voting/day_voting.html create mode 100644 code/modules/mafia/controller.html create mode 100644 code/modules/mafia/outfits.html create mode 100644 code/modules/mapfluff/ruins/generic.html create mode 100644 code/modules/mapfluff/ruins/icemoonruin_code/hotsprings.html create mode 100644 code/modules/mapfluff/ruins/lavaland_ruin_code.html create mode 100644 code/modules/mapfluff/ruins/lavalandruin_code/biodome_clown_planet.html create mode 100644 code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.html create mode 100644 code/modules/mapfluff/ruins/lavalandruin_code/sloth.html create mode 100644 code/modules/mapfluff/ruins/lavalandruin_code/surface.html create mode 100644 code/modules/mapfluff/ruins/lavalandruin_code/watcher_grave.html create mode 100644 code/modules/mapfluff/ruins/objects_and_mobs/cursed_slot_machine.html create mode 100644 code/modules/mapfluff/ruins/objects_and_mobs/museum.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/DJstation.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/anomalyresearch.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/asteroid4.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/atmos_asteroid.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/bigderelict1.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/clericsden.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/crashedclownship.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/cyborgmothership.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/dangerous_research.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/deepstorage.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/derelict_sulaco.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/forgottenship.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/interdyne.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/listeningstation.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/meateor.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_fluff.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_rnd.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/originalcontent.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/spacehotel.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/the_Outlet.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/waystation.html create mode 100644 code/modules/mapfluff/ruins/spaceruin_code/whiteshipruin_box.html create mode 100644 code/modules/mapping.html create mode 100644 code/modules/mapping/mapping_helpers.html create mode 100644 code/modules/mapping/modular_map_loader.html create mode 100644 code/modules/mapping/preloader.html create mode 100644 code/modules/mapping/reader.html create mode 100644 code/modules/mapping/ruins.html create mode 100644 code/modules/mapping/verify.html create mode 100644 code/modules/meteors/meteor_dark_matteor.html create mode 100644 code/modules/meteors/meteor_spawning.html create mode 100644 code/modules/mining/aux_base.html create mode 100644 code/modules/mining/boulder_processing/beacon.html create mode 100644 code/modules/mining/boulder_processing/boulder.html create mode 100644 code/modules/mining/boulder_processing/boulder_types.html create mode 100644 code/modules/mining/boulder_processing/brm.html create mode 100644 code/modules/mining/boulder_processing/refinery.html create mode 100644 code/modules/mining/equipment/explorer_gear.html create mode 100644 code/modules/mining/equipment/kheiral_cuffs.html create mode 100644 code/modules/mining/equipment/lazarus_injector.html create mode 100644 code/modules/mining/equipment/mineral_scanner.html create mode 100644 code/modules/mining/equipment/mining_tools.html create mode 100644 code/modules/mining/equipment/miningradio.html create mode 100644 code/modules/mining/equipment/monster_organs/brimdust_sac.html create mode 100644 code/modules/mining/equipment/monster_organs/monster_organ.html create mode 100644 code/modules/mining/equipment/monster_organs/regenerative_core.html create mode 100644 code/modules/mining/equipment/monster_organs/rush_gland.html create mode 100644 code/modules/mining/equipment/resonator.html create mode 100644 code/modules/mining/equipment/survival_pod.html create mode 100644 code/modules/mining/equipment/wormhole_jaunter.html create mode 100644 code/modules/mining/laborcamp/laborstacker.html create mode 100644 code/modules/mining/lavaland/ash_flora.html create mode 100644 code/modules/mining/machine_processing.html create mode 100644 code/modules/mining/machine_redemption.html create mode 100644 code/modules/mining/machine_silo.html create mode 100644 code/modules/mining/machine_stacking.html create mode 100644 code/modules/mining/machine_unloading.html create mode 100644 code/modules/mining/mine_items.html create mode 100644 code/modules/mining/money_bag.html create mode 100644 code/modules/mining/ores_coins.html create mode 100644 code/modules/mining/satchel_ore_box.html create mode 100644 code/modules/mining/voucher_sets.html create mode 100644 code/modules/mob/dead/new_player/new_player.html create mode 100644 code/modules/mob/emote.html create mode 100644 code/modules/mob/living/basic/alien/alien_ai.html create mode 100644 code/modules/mob/living/basic/alien/maid.html create mode 100644 code/modules/mob/living/basic/basic.html create mode 100644 code/modules/mob/living/basic/blob_minions/blob_ai.html create mode 100644 code/modules/mob/living/basic/blob_minions/blob_mob.html create mode 100644 code/modules/mob/living/basic/blob_minions/blob_spore.html create mode 100644 code/modules/mob/living/basic/blob_minions/blob_zombie.html create mode 100644 code/modules/mob/living/basic/blob_minions/blobbernaut.html create mode 100644 code/modules/mob/living/basic/bots/bot_ai.html create mode 100644 code/modules/mob/living/basic/bots/dedbot.html create mode 100644 code/modules/mob/living/basic/bots/firebot/firebot_ai.html create mode 100644 code/modules/mob/living/basic/bots/vibebot/vibebot_abilities.html create mode 100644 code/modules/mob/living/basic/bots/vibebot/vibebot_ai.html create mode 100644 code/modules/mob/living/basic/clown/clown.html create mode 100644 code/modules/mob/living/basic/cult/constructs/_construct.html create mode 100644 code/modules/mob/living/basic/cult/constructs/artificer.html create mode 100644 code/modules/mob/living/basic/cult/constructs/construct_ai.html create mode 100644 code/modules/mob/living/basic/cult/constructs/juggernaut.html create mode 100644 code/modules/mob/living/basic/cult/constructs/proteon.html create mode 100644 code/modules/mob/living/basic/cult/constructs/wraith.html create mode 100644 code/modules/mob/living/basic/drone/_drone.html create mode 100644 code/modules/mob/living/basic/drone/drone_say.html create mode 100644 code/modules/mob/living/basic/drone/drones_as_items.html create mode 100644 code/modules/mob/living/basic/drone/extra_drone_types.html create mode 100644 code/modules/mob/living/basic/farm_animals/bee/_bee.html create mode 100644 code/modules/mob/living/basic/farm_animals/bee/bee_ai_behavior.html create mode 100644 code/modules/mob/living/basic/farm_animals/chicken/chick.html create mode 100644 code/modules/mob/living/basic/farm_animals/cow/cow_moonicorn.html create mode 100644 code/modules/mob/living/basic/farm_animals/cow/cow_wisdom.html create mode 100644 code/modules/mob/living/basic/farm_animals/deer/deer.html create mode 100644 code/modules/mob/living/basic/farm_animals/deer/deer_ai.html create mode 100644 code/modules/mob/living/basic/farm_animals/goat/_goat.html create mode 100644 code/modules/mob/living/basic/farm_animals/goat/goat_ai.html create mode 100644 code/modules/mob/living/basic/farm_animals/gorilla/gorilla.html create mode 100644 code/modules/mob/living/basic/farm_animals/gorilla/gorilla_accessories.html create mode 100644 code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.html create mode 100644 code/modules/mob/living/basic/farm_animals/rabbit.html create mode 100644 code/modules/mob/living/basic/festivus_pole.html create mode 100644 code/modules/mob/living/basic/guardian/guardian.html create mode 100644 code/modules/mob/living/basic/guardian/guardian_creator.html create mode 100644 code/modules/mob/living/basic/guardian/guardian_fluff.html create mode 100644 code/modules/mob/living/basic/guardian/guardian_types/assassin.html create mode 100644 code/modules/mob/living/basic/guardian/guardian_types/charger.html create mode 100644 code/modules/mob/living/basic/guardian/guardian_types/dextrous.html create mode 100644 code/modules/mob/living/basic/guardian/guardian_types/explosive.html create mode 100644 code/modules/mob/living/basic/guardian/guardian_types/gaseous.html create mode 100644 code/modules/mob/living/basic/guardian/guardian_types/gravitokinetic.html create mode 100644 code/modules/mob/living/basic/guardian/guardian_types/lightning.html create mode 100644 code/modules/mob/living/basic/guardian/guardian_types/protector.html create mode 100644 code/modules/mob/living/basic/guardian/guardian_types/ranged.html create mode 100644 code/modules/mob/living/basic/guardian/guardian_types/standard.html create mode 100644 code/modules/mob/living/basic/guardian/guardian_types/support.html create mode 100644 code/modules/mob/living/basic/guardian/guardian_verbs.html create mode 100644 code/modules/mob/living/basic/heretic/ash_spirit.html create mode 100644 code/modules/mob/living/basic/heretic/flesh_stalker.html create mode 100644 code/modules/mob/living/basic/heretic/flesh_worm.html create mode 100644 code/modules/mob/living/basic/heretic/maid_in_the_mirror.html create mode 100644 code/modules/mob/living/basic/heretic/raw_prophet.html create mode 100644 code/modules/mob/living/basic/heretic/rust_walker.html create mode 100644 code/modules/mob/living/basic/icemoon/ice_demon/ice_demon.html create mode 100644 code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp_abilities.html create mode 100644 code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp_ai.html create mode 100644 code/modules/mob/living/basic/jungle/leaper/leaper_ai.html create mode 100644 code/modules/mob/living/basic/jungle/mega_arachnid/mega_arachnid_ai.html create mode 100644 code/modules/mob/living/basic/jungle/seedling/seedling.html create mode 100644 code/modules/mob/living/basic/jungle/seedling/seedling_ai.html create mode 100644 code/modules/mob/living/basic/jungle/venus_human_trap.html create mode 100644 code/modules/mob/living/basic/lavaland/basilisk/basilisk.html create mode 100644 code/modules/mob/living/basic/lavaland/basilisk/basilisk_overheat.html create mode 100644 code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.html create mode 100644 code/modules/mob/living/basic/lavaland/brimdemon/brimdemon.html create mode 100644 code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_ai.html create mode 100644 code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_loot.html create mode 100644 code/modules/mob/living/basic/lavaland/goldgrub/goldgrub_ai.html create mode 100644 code/modules/mob/living/basic/lavaland/goliath/goliath.html create mode 100644 code/modules/mob/living/basic/lavaland/goliath/goliath_actions.html create mode 100644 code/modules/mob/living/basic/lavaland/goliath/goliath_ai.html create mode 100644 code/modules/mob/living/basic/lavaland/goliath/goliath_trophy.html create mode 100644 code/modules/mob/living/basic/lavaland/goliath/tentacle.html create mode 100644 code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers_ai.html create mode 100644 code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers_inherit_datum.html create mode 100644 code/modules/mob/living/basic/lavaland/hivelord/hivelord.html create mode 100644 code/modules/mob/living/basic/lavaland/hivelord/hivelord_ai.html create mode 100644 code/modules/mob/living/basic/lavaland/hivelord/spawn_hivelord_brood.html create mode 100644 code/modules/mob/living/basic/lavaland/legion/legion.html create mode 100644 code/modules/mob/living/basic/lavaland/legion/legion_ai.html create mode 100644 code/modules/mob/living/basic/lavaland/legion/legion_brood.html create mode 100644 code/modules/mob/living/basic/lavaland/legion/legion_monkey.html create mode 100644 code/modules/mob/living/basic/lavaland/legion/legion_tumour.html create mode 100644 code/modules/mob/living/basic/lavaland/legion/spawn_legions.html create mode 100644 code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.html create mode 100644 code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.html create mode 100644 code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_trophy.html create mode 100644 code/modules/mob/living/basic/lavaland/mining.html create mode 100644 code/modules/mob/living/basic/lavaland/mook/mook_ai.html create mode 100644 code/modules/mob/living/basic/lavaland/mook/mook_village.html create mode 100644 code/modules/mob/living/basic/lavaland/node_drone/node_drone.html create mode 100644 code/modules/mob/living/basic/lavaland/watcher/watcher.html create mode 100644 code/modules/mob/living/basic/lavaland/watcher/watcher_gaze.html create mode 100644 code/modules/mob/living/basic/lavaland/watcher/watcher_overwatch.html create mode 100644 code/modules/mob/living/basic/lavaland/watcher/watcher_projectiles.html create mode 100644 code/modules/mob/living/basic/minebots/minebot_ai.html create mode 100644 code/modules/mob/living/basic/pets/dog/_dog.html create mode 100644 code/modules/mob/living/basic/pets/gondolas/gondolapod.html create mode 100644 code/modules/mob/living/basic/pets/orbie/orbie_ai.html create mode 100644 code/modules/mob/living/basic/pets/parrot/_parrot.html create mode 100644 code/modules/mob/living/basic/pets/parrot/parrot_ai/ghost_parrot_controller.html create mode 100644 code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_hoarding.html create mode 100644 code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_perching.html create mode 100644 code/modules/mob/living/basic/pets/parrot/parrot_ai/parroting_action.html create mode 100644 code/modules/mob/living/basic/pets/parrot/parrot_subtypes.html create mode 100644 code/modules/mob/living/basic/pets/parrot/poly.html create mode 100644 code/modules/mob/living/basic/pets/pet_cult/pet_cult_ai.html create mode 100644 code/modules/mob/living/basic/pets/sloth.html create mode 100644 code/modules/mob/living/basic/ruin_defender/cybersun_aicore.html create mode 100644 code/modules/mob/living/basic/ruin_defender/skeleton.html create mode 100644 code/modules/mob/living/basic/ruin_defender/wizard/wizard.html create mode 100644 code/modules/mob/living/basic/ruin_defender/wizard/wizard_ai.html create mode 100644 code/modules/mob/living/basic/ruin_defender/wizard/wizard_spells.html create mode 100644 code/modules/mob/living/basic/slime/slime.html create mode 100644 code/modules/mob/living/basic/space_fauna/carp/carp.html create mode 100644 code/modules/mob/living/basic/space_fauna/carp/carp_abilities.html create mode 100644 code/modules/mob/living/basic/space_fauna/carp/carp_ai_actions.html create mode 100644 code/modules/mob/living/basic/space_fauna/carp/carp_ai_migration.html create mode 100644 code/modules/mob/living/basic/space_fauna/carp/carp_ai_rift_actions.html create mode 100644 code/modules/mob/living/basic/space_fauna/carp/carp_controllers.html create mode 100644 code/modules/mob/living/basic/space_fauna/carp/magicarp.html create mode 100644 code/modules/mob/living/basic/space_fauna/carp/megacarp.html create mode 100644 code/modules/mob/living/basic/space_fauna/cat_surgeon.html create mode 100644 code/modules/mob/living/basic/space_fauna/changeling/flesh_spider.html create mode 100644 code/modules/mob/living/basic/space_fauna/changeling/headslug.html create mode 100644 code/modules/mob/living/basic/space_fauna/demon/demon.html create mode 100644 code/modules/mob/living/basic/space_fauna/demon/demon_items.html create mode 100644 code/modules/mob/living/basic/space_fauna/demon/demon_subtypes.html create mode 100644 code/modules/mob/living/basic/space_fauna/ghost.html create mode 100644 code/modules/mob/living/basic/space_fauna/hivebot/hivebot_behavior.html create mode 100644 code/modules/mob/living/basic/space_fauna/lightgeist.html create mode 100644 code/modules/mob/living/basic/space_fauna/meteor_heart/chasing_spikes.html create mode 100644 code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_eyeball.html create mode 100644 code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_heart.html create mode 100644 code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_heart_ai.html create mode 100644 code/modules/mob/living/basic/space_fauna/meteor_heart/spine_traps.html create mode 100644 code/modules/mob/living/basic/space_fauna/morph.html create mode 100644 code/modules/mob/living/basic/space_fauna/netherworld/creature.html create mode 100644 code/modules/mob/living/basic/space_fauna/netherworld/migo.html create mode 100644 code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.html create mode 100644 code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat_actions.html create mode 100644 code/modules/mob/living/basic/space_fauna/revenant/_revenant.html create mode 100644 code/modules/mob/living/basic/space_fauna/revenant/revenant_effects.html create mode 100644 code/modules/mob/living/basic/space_fauna/robot_customer.html create mode 100644 code/modules/mob/living/basic/space_fauna/snake/snake.html create mode 100644 code/modules/mob/living/basic/space_fauna/space_dragon/dragon_breath.html create mode 100644 code/modules/mob/living/basic/space_fauna/space_dragon/dragon_gust.html create mode 100644 code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.html create mode 100644 code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spider_ai.html create mode 100644 code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spider_subtrees.html create mode 100644 code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spiders.html create mode 100644 code/modules/mob/living/basic/space_fauna/spider/spider.html create mode 100644 code/modules/mob/living/basic/space_fauna/spider/spider_abilities/hivemind.html create mode 100644 code/modules/mob/living/basic/space_fauna/spider/spider_abilities/web.html create mode 100644 code/modules/mob/living/basic/space_fauna/spider/spiderlings/spiderling.html create mode 100644 code/modules/mob/living/basic/space_fauna/spider/spiderlings/spiderling_subtypes.html create mode 100644 code/modules/mob/living/basic/space_fauna/spider/young_spider/young_spider.html create mode 100644 code/modules/mob/living/basic/space_fauna/spider/young_spider/young_spider_subtypes.html create mode 100644 code/modules/mob/living/basic/space_fauna/supermatter_spider.html create mode 100644 code/modules/mob/living/basic/space_fauna/wumborian_fugu/fugu_gland.html create mode 100644 code/modules/mob/living/basic/space_fauna/wumborian_fugu/inflation.html create mode 100644 code/modules/mob/living/basic/space_fauna/wumborian_fugu/wumborian_ai.html create mode 100644 code/modules/mob/living/basic/space_fauna/wumborian_fugu/wumborian_fugu.html create mode 100644 code/modules/mob/living/basic/trader/trader_ai.html create mode 100644 code/modules/mob/living/basic/trader/trader_data.html create mode 100644 code/modules/mob/living/basic/trader/trader_items.html create mode 100644 code/modules/mob/living/basic/trooper/abductor.html create mode 100644 code/modules/mob/living/basic/trooper/nanotrasen.html create mode 100644 code/modules/mob/living/basic/trooper/pirate.html create mode 100644 code/modules/mob/living/basic/trooper/russian.html create mode 100644 code/modules/mob/living/basic/trooper/syndicate.html create mode 100644 code/modules/mob/living/basic/vermin/crab.html create mode 100644 code/modules/mob/living/basic/vermin/lizard.html create mode 100644 code/modules/mob/living/basic/vermin/mouse.html create mode 100644 code/modules/mob/living/basic/vermin/space_bat.html create mode 100644 code/modules/mob/living/brain/posibrain.html create mode 100644 code/modules/mob/living/carbon/alien/organs.html create mode 100644 code/modules/mob/living/carbon/carbon_defense.html create mode 100644 code/modules/mob/living/carbon/carbon_stripping.html create mode 100644 code/modules/mob/living/carbon/carbon_update_icons.html create mode 100644 code/modules/mob/living/carbon/examine.html create mode 100644 code/modules/mob/living/carbon/human/_species.html create mode 100644 code/modules/mob/living/carbon/human/dummy.html create mode 100644 code/modules/mob/living/carbon/human/emote.html create mode 100644 code/modules/mob/living/carbon/human/human_suicide.html create mode 100644 code/modules/mob/living/carbon/human/species_types/golems.html create mode 100644 code/modules/mob/living/carbon/human/species_types/jellypeople.html create mode 100644 code/modules/mob/living/carbon/human/species_types/mushpeople.html create mode 100644 code/modules/mob/living/carbon/human/species_types/shadowpeople.html create mode 100644 code/modules/mob/living/carbon/human/species_types/vampire.html create mode 100644 code/modules/mob/living/emote.html create mode 100644 code/modules/mob/living/life.html create mode 100644 code/modules/mob/living/living.html create mode 100644 code/modules/mob/living/living_fov.html create mode 100644 code/modules/mob/living/silicon/ai/_preferences.html create mode 100644 code/modules/mob/living/silicon/ai/ai_portrait_picker.html create mode 100644 code/modules/mob/living/silicon/ai/freelook.html create mode 100644 code/modules/mob/living/silicon/robot/robot_defines.html create mode 100644 code/modules/mob/living/silicon/robot/robot_model.html create mode 100644 code/modules/mob/living/silicon/silicon_movement.html create mode 100644 code/modules/mob/living/simple_animal/bot/bot_announcement.html create mode 100644 code/modules/mob/living/simple_animal/hostile/illusion.html create mode 100644 code/modules/mob/living/simple_animal/hostile/megafauna/colossus.html create mode 100644 code/modules/mob/living/simple_animal/hostile/megafauna/drake.html create mode 100644 code/modules/mob/living/simple_animal/hostile/megafauna/legion.html create mode 100644 code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.html create mode 100644 code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.html create mode 100644 code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.html create mode 100644 code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.html create mode 100644 code/modules/mob/living/simple_animal/hostile/ooze.html create mode 100644 code/modules/mob/living/simple_animal/hostile/vatbeast.html create mode 100644 code/modules/mob/living/simple_animal/simple_animal.html create mode 100644 code/modules/mob/living/sneeze.html create mode 100644 code/modules/mob/mob_defines.html create mode 100644 code/modules/mob/mob_helpers.html create mode 100644 code/modules/mob/mob_say.html create mode 100644 code/modules/mob/say_readme.html create mode 100644 code/modules/mob/transform_procs.html create mode 100644 code/modules/mob_spawn/corpses/mining_corpses.html create mode 100644 code/modules/mob_spawn/corpses/mob_corpses.html create mode 100644 code/modules/mob_spawn/corpses/nonhuman_corpses.html create mode 100644 code/modules/mob_spawn/ghost_roles/mining_roles.html create mode 100644 code/modules/mob_spawn/ghost_roles/space_roles.html create mode 100644 code/modules/mob_spawn/ghost_roles/venus_human_trap.html create mode 100644 code/modules/mob_spawn/mob_spawn.html create mode 100644 code/modules/mod/adding_new_mod.html create mode 100644 code/modules/mod/mod_control.html create mode 100644 code/modules/mod/mod_link.html create mode 100644 code/modules/mod/mod_part.html create mode 100644 code/modules/mod/mod_theme.html create mode 100644 code/modules/mod/modules/_module.html create mode 100644 code/modules/mod/modules/module_kinesis.html create mode 100644 code/modules/mod/modules/module_pathfinder.html create mode 100644 code/modules/mod/modules/modules_antag.html create mode 100644 code/modules/mod/modules/modules_engineering.html create mode 100644 code/modules/mod/modules/modules_general.html create mode 100644 code/modules/mod/modules/modules_maint.html create mode 100644 code/modules/mod/modules/modules_medical.html create mode 100644 code/modules/mod/modules/modules_ninja.html create mode 100644 code/modules/mod/modules/modules_science.html create mode 100644 code/modules/mod/modules/modules_security.html create mode 100644 code/modules/mod/modules/modules_service.html create mode 100644 code/modules/mod/modules/modules_supply.html create mode 100644 code/modules/mod/modules/modules_timeline.html create mode 100644 code/modules/mod/modules/modules_visor.html create mode 100644 code/modules/modular_computers/computers/item/computer.html create mode 100644 code/modules/modular_computers/computers/item/computer_circuit.html create mode 100644 code/modules/modular_computers/computers/item/computer_power.html create mode 100644 code/modules/modular_computers/computers/item/disks/maintenance_disks.html create mode 100644 code/modules/modular_computers/computers/item/disks/role_disks.html create mode 100644 code/modules/modular_computers/computers/item/disks/virus_disk.html create mode 100644 code/modules/modular_computers/computers/item/pda.html create mode 100644 code/modules/modular_computers/computers/item/role_tablet_presets.html create mode 100644 code/modules/modular_computers/file_system/data.html create mode 100644 code/modules/modular_computers/file_system/picture_file.html create mode 100644 code/modules/modular_computers/file_system/program_circuit.html create mode 100644 code/modules/modular_computers/file_system/programs/arcade.html create mode 100644 code/modules/modular_computers/file_system/programs/atmosscan.html create mode 100644 code/modules/modular_computers/file_system/programs/coupon.html create mode 100644 code/modules/modular_computers/file_system/programs/emojipedia.html create mode 100644 code/modules/modular_computers/file_system/programs/maintenance/_maintenance_program.html create mode 100644 code/modules/modular_computers/file_system/programs/messenger/messenger_data.html create mode 100644 code/modules/modular_computers/file_system/programs/messenger/messenger_program.html create mode 100644 code/modules/modular_computers/file_system/programs/portrait_printer.html create mode 100644 code/modules/modular_computers/file_system/programs/radar.html create mode 100644 code/modules/modular_computers/file_system/programs/secureye.html create mode 100644 code/modules/movespeed/_movespeed_modifier.html create mode 100644 code/modules/movespeed/modifiers/innate.html create mode 100644 code/modules/movespeed/modifiers/mobs.html create mode 100644 code/modules/movespeed/modifiers/status_effects.html create mode 100644 code/modules/pai/candidate.html create mode 100644 code/modules/paperwork/clipboard.html create mode 100644 code/modules/paperwork/fax.html create mode 100644 code/modules/paperwork/handlabeler.html create mode 100644 code/modules/paperwork/paper.html create mode 100644 code/modules/paperwork/paper_premade.html create mode 100644 code/modules/paperwork/paperwork.html create mode 100644 code/modules/paperwork/photocopier.html create mode 100644 code/modules/photography/photos/frame.html create mode 100644 code/modules/plumbing/plumbers/_plumb_machinery.html create mode 100644 code/modules/plumbing/plumbers/acclimator.html create mode 100644 code/modules/plumbing/plumbers/filter.html create mode 100644 code/modules/plumbing/plumbers/iv_drip.html create mode 100644 code/modules/plumbing/plumbers/pill_press.html create mode 100644 code/modules/plumbing/plumbers/pumps.html create mode 100644 code/modules/plumbing/plumbers/reaction_chamber.html create mode 100644 code/modules/plumbing/plumbers/simple_machines.html create mode 100644 code/modules/plumbing/plumbers/splitters.html create mode 100644 code/modules/plumbing/plumbers/synthesizer.html create mode 100644 code/modules/plumbing/plumbers/teleporter.html create mode 100644 code/modules/power/apc/apc_attack.html create mode 100644 code/modules/power/apc/apc_main.html create mode 100644 code/modules/power/apc/apc_mapping.html create mode 100644 code/modules/power/cable.html create mode 100644 code/modules/power/cell.html create mode 100644 code/modules/power/energy_accumulator.html create mode 100644 code/modules/power/gravitygenerator.html create mode 100644 code/modules/power/lighting/light.html create mode 100644 code/modules/power/power.html create mode 100644 code/modules/power/power_store.html create mode 100644 code/modules/power/singularity/dark_matter_singularity.html create mode 100644 code/modules/power/singularity/narsie.html create mode 100644 code/modules/power/singularity/reality_tear.html create mode 100644 code/modules/power/singularity/singularity.html create mode 100644 code/modules/power/smes_portable.html create mode 100644 code/modules/power/supermatter/supermatter_delamination/_sm_delam.html create mode 100644 code/modules/power/supermatter/supermatter_delamination/common_delams.html create mode 100644 code/modules/power/supermatter/supermatter_gas.html create mode 100644 code/modules/power/supermatter/supermatter_variants.html create mode 100644 code/modules/power/tesla/energy_ball.html create mode 100644 code/modules/procedural_mapping.html create mode 100644 code/modules/procedural_mapping/mapGenerator.html create mode 100644 code/modules/projectiles/ammunition/energy/laser.html create mode 100644 code/modules/projectiles/guns/ballistic.html create mode 100644 code/modules/projectiles/guns/ballistic/automatic.html create mode 100644 code/modules/projectiles/guns/ballistic/bows/bow_arrows.html create mode 100644 code/modules/projectiles/guns/ballistic/bows/bow_types.html create mode 100644 code/modules/projectiles/guns/ballistic/pistol.html create mode 100644 code/modules/projectiles/guns/ballistic/rifle.html create mode 100644 code/modules/projectiles/guns/ballistic/shotgun.html create mode 100644 code/modules/projectiles/guns/bolt_types_explained.html create mode 100644 code/modules/projectiles/guns/energy/laser.html create mode 100644 code/modules/projectiles/guns/energy/recharge.html create mode 100644 code/modules/projectiles/guns/energy/special.html create mode 100644 code/modules/projectiles/guns/magic/staff.html create mode 100644 code/modules/projectiles/guns/special/blastcannon.html create mode 100644 code/modules/projectiles/guns/special/meat_hook.html create mode 100644 code/modules/projectiles/guns/special/medbeam.html create mode 100644 code/modules/projectiles/projectile.html create mode 100644 code/modules/projectiles/projectile/bullets/_incendiary.html create mode 100644 code/modules/projectiles/projectile/bullets/shotgun.html create mode 100644 code/modules/projectiles/projectile/bullets/special.html create mode 100644 code/modules/projectiles/projectile/magic.html create mode 100644 code/modules/projectiles/projectile/special/rocket.html create mode 100644 code/modules/reagents/chem_splash.html create mode 100644 code/modules/reagents/chemistry/chem_wiki_render.html create mode 100644 code/modules/reagents/chemistry/fermi_readme.html create mode 100644 code/modules/reagents/chemistry/holder/holder.html create mode 100644 code/modules/reagents/chemistry/items.html create mode 100644 code/modules/reagents/chemistry/machinery/chem_recipe_debug.html create mode 100644 code/modules/reagents/chemistry/machinery/chem_separator.html create mode 100644 code/modules/reagents/chemistry/machinery/smoke_machine.html create mode 100644 code/modules/reagents/chemistry/reagents.html create mode 100644 code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.html create mode 100644 code/modules/reagents/chemistry/reagents/catalyst_reagents.html create mode 100644 code/modules/reagents/chemistry/reagents/drug_reagents.html create mode 100644 code/modules/reagents/chemistry/reagents/food_reagents.html create mode 100644 code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.html create mode 100644 code/modules/reagents/chemistry/reagents/impure_reagents/impure_toxin_reagents.html create mode 100644 code/modules/reagents/chemistry/reagents/other_reagents.html create mode 100644 code/modules/reagents/chemistry/reagents/reaction_agents_reagents.html create mode 100644 code/modules/reagents/chemistry/reagents/toxin_reagents.html create mode 100644 code/modules/reagents/chemistry/recipes.html create mode 100644 code/modules/reagents/chemistry/recipes/cat2_medicines.html create mode 100644 code/modules/reagents/chemistry/recipes/catalysts.html create mode 100644 code/modules/reagents/chemistry/recipes/medicine.html create mode 100644 code/modules/reagents/chemistry/recipes/others.html create mode 100644 code/modules/reagents/chemistry/recipes/reaction_agents.html create mode 100644 code/modules/reagents/chemistry/recipes/slime_extracts.html create mode 100644 code/modules/reagents/chemistry/recipes/special.html create mode 100644 code/modules/reagents/reagent_containers/condiment.html create mode 100644 code/modules/reagents/reagent_containers/cups/_cup.html create mode 100644 code/modules/reagents/reagent_containers/cups/_glass_datum.html create mode 100644 code/modules/reagents/reagent_containers/cups/drinks.html create mode 100644 code/modules/reagents/reagent_containers/cups/glassbottle.html create mode 100644 code/modules/reagents/reagent_containers/cups/soda.html create mode 100644 code/modules/reagents/reagent_containers/pill.html create mode 100644 code/modules/reagents/reagent_containers/spray.html create mode 100644 code/modules/reagents/reagent_dispenser.html create mode 100644 code/modules/reagents/withdrawal/_addiction.html create mode 100644 code/modules/reagents/withdrawal/generic_addictions.html create mode 100644 code/modules/recycling/conveyor.html create mode 100644 code/modules/recycling/disposal/multiz.html create mode 100644 code/modules/recycling/disposal/outlet.html create mode 100644 code/modules/recycling/sortingmachinery.html create mode 100644 code/modules/religion/burdened/burdened_trauma.html create mode 100644 code/modules/religion/burdened/psyker.html create mode 100644 code/modules/religion/festival/instrument_rites.html create mode 100644 code/modules/religion/honorbound/honorbound_rites.html create mode 100644 code/modules/religion/honorbound/honorbound_trauma.html create mode 100644 code/modules/religion/religion_sects.html create mode 100644 code/modules/religion/rites.html create mode 100644 code/modules/religion/sparring/ceremonial_gear.html create mode 100644 code/modules/requests/request.html create mode 100644 code/modules/requests/request_manager.html create mode 100644 code/modules/research/anomaly/anomaly_refinery.html create mode 100644 code/modules/research/anomaly/raw_anomaly.html create mode 100644 code/modules/research/designs.html create mode 100644 code/modules/research/designs/AI_module_designs.html create mode 100644 code/modules/research/designs/biogenerator_designs.html create mode 100644 code/modules/research/designs/bluespace_designs.html create mode 100644 code/modules/research/designs/comp_board_designs.html create mode 100644 code/modules/research/designs/computer_part_designs.html create mode 100644 code/modules/research/designs/electronics_designs.html create mode 100644 code/modules/research/designs/limbgrower_designs.html create mode 100644 code/modules/research/designs/machine_designs.html create mode 100644 code/modules/research/designs/mecha_designs.html create mode 100644 code/modules/research/designs/mechfabricator_designs.html create mode 100644 code/modules/research/designs/medical_designs.html create mode 100644 code/modules/research/designs/mining_designs.html create mode 100644 code/modules/research/designs/power_designs.html create mode 100644 code/modules/research/designs/smelting_designs.html create mode 100644 code/modules/research/designs/stock_parts_designs.html create mode 100644 code/modules/research/designs/telecomms_designs.html create mode 100644 code/modules/research/designs/tool_designs.html create mode 100644 code/modules/research/designs/weapon_designs.html create mode 100644 code/modules/research/destructive_analyzer.html create mode 100644 code/modules/research/machinery/protolathe.html create mode 100644 code/modules/research/ordnance/_scipaper.html create mode 100644 code/modules/research/ordnance/tank_compressor.html create mode 100644 code/modules/research/server.html create mode 100644 code/modules/research/stock_parts/stock_part_datum.html create mode 100644 code/modules/research/techweb/__techweb_helpers.html create mode 100644 code/modules/research/techweb/_techweb.html create mode 100644 code/modules/research/techweb/_techweb_node.html create mode 100644 code/modules/research/techweb/techweb_types.html create mode 100644 code/modules/research/xenobiology/crossbreeding/__corecross.html create mode 100644 code/modules/research/xenobiology/crossbreeding/_mobs.html create mode 100644 code/modules/research/xenobiology/crossbreeding/_status_effects.html create mode 100644 code/modules/research/xenobiology/vatgrowing/biopsy_tool.html create mode 100644 code/modules/research/xenobiology/vatgrowing/petri_dish.html create mode 100644 code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.html create mode 100644 code/modules/research/xenobiology/vatgrowing/samples/_sample.html create mode 100644 code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.html create mode 100644 code/modules/research/xenobiology/vatgrowing/samples/viruses/_virus.html create mode 100644 code/modules/research/xenobiology/vatgrowing/swab.html create mode 100644 code/modules/research/xenobiology/vatgrowing/vatgrower.html create mode 100644 code/modules/research/xenobiology/xenobiology.html create mode 100644 code/modules/security_levels/keycard_authentication.html create mode 100644 code/modules/security_levels/security_level_datums.html create mode 100644 code/modules/shuttle/battlecruiser_starfury.html create mode 100644 code/modules/shuttle/infiltrator.html create mode 100644 code/modules/shuttle/medisim.html create mode 100644 code/modules/shuttle/shuttle.html create mode 100644 code/modules/shuttle/shuttle_events/_shuttle_events.html create mode 100644 code/modules/shuttle/shuttle_events/carp.html create mode 100644 code/modules/shuttle/shuttle_events/humans.html create mode 100644 code/modules/shuttle/shuttle_events/meteors.html create mode 100644 code/modules/shuttle/shuttle_events/misc.html create mode 100644 code/modules/shuttle/shuttle_events/player_controlled.html create mode 100644 code/modules/shuttle/shuttle_events/projectile.html create mode 100644 code/modules/shuttle/shuttle_events/turbulence.html create mode 100644 code/modules/shuttle/special.html create mode 100644 code/modules/shuttle/supply.html create mode 100644 code/modules/shuttle/white_ship.html create mode 100644 code/modules/spatial_grid/cell_tracker.html create mode 100644 code/modules/spells/spell.html create mode 100644 code/modules/spells/spell_types/aoe_spell/_aoe_spell.html create mode 100644 code/modules/spells/spell_types/charged/_charged.html create mode 100644 code/modules/spells/spell_types/cone/_cone.html create mode 100644 code/modules/spells/spell_types/conjure/_conjure.html create mode 100644 code/modules/spells/spell_types/jaunt/_jaunt.html create mode 100644 code/modules/spells/spell_types/jaunt/bloodcrawl.html create mode 100644 code/modules/spells/spell_types/jaunt/ethereal_jaunt.html create mode 100644 code/modules/spells/spell_types/list_target/_list_target.html create mode 100644 code/modules/spells/spell_types/pointed/_pointed.html create mode 100644 code/modules/spells/spell_types/projectile/_basic_projectile.html create mode 100644 code/modules/spells/spell_types/right_and_wrong.html create mode 100644 code/modules/spells/spell_types/self/mutate.html create mode 100644 code/modules/spells/spell_types/self/rod_form.html create mode 100644 code/modules/spells/spell_types/self/sanguine_strike.html create mode 100644 code/modules/spells/spell_types/self/smoke.html create mode 100644 code/modules/spells/spell_types/self/soultap.html create mode 100644 code/modules/spells/spell_types/shapeshift/_shapeshift.html create mode 100644 code/modules/spells/spell_types/teleport/_teleport.html create mode 100644 code/modules/spells/spell_types/teleport/teleport.html create mode 100644 code/modules/spells/spell_types/touch/_touch.html create mode 100644 code/modules/spells/spell_types/touch/scream_for_me.html create mode 100644 code/modules/spells/spell_types/tower_of_babel.html create mode 100644 code/modules/station_goals/meteor_shield.html create mode 100644 code/modules/surgery/bodyparts/parts.html create mode 100644 code/modules/surgery/bodyparts/species_parts/android_parts.html create mode 100644 code/modules/surgery/bodyparts/species_parts/misc_bodyparts.html create mode 100644 code/modules/surgery/bodyparts/worn_feature_offset.html create mode 100644 code/modules/surgery/bone_mending.html create mode 100644 code/modules/surgery/burn_dressing.html create mode 100644 code/modules/surgery/experimental_dissection.html create mode 100644 code/modules/surgery/gastrectomy.html create mode 100644 code/modules/surgery/healing.html create mode 100644 code/modules/surgery/hepatectomy.html create mode 100644 code/modules/surgery/limb_augmentation.html create mode 100644 code/modules/surgery/organ_manipulation.html create mode 100644 code/modules/surgery/organs/external/_external_organ.html create mode 100644 code/modules/surgery/organs/external/spines.html create mode 100644 code/modules/surgery/organs/external/tails.html create mode 100644 code/modules/surgery/organs/external/wings/functional_wings.html create mode 100644 code/modules/surgery/organs/external/wings/moth_wings.html create mode 100644 code/modules/surgery/organs/external/wings/wings.html create mode 100644 code/modules/surgery/organs/internal/appendix/appendix_golem.html create mode 100644 code/modules/surgery/organs/internal/eyes/_eyes.html create mode 100644 code/modules/surgery/organs/internal/heart/heart_anomalock.html create mode 100644 code/modules/surgery/organs/internal/liver/liver_golem.html create mode 100644 code/modules/surgery/organs/internal/liver/liver_plasmaman.html create mode 100644 code/modules/surgery/organs/internal/liver/liver_skeleton.html create mode 100644 code/modules/surgery/organs/internal/stomach/stomach_golem.html create mode 100644 code/modules/surgery/plastic_surgery.html create mode 100644 code/modules/surgery/repair_puncture.html create mode 100644 code/modules/surgery/revival.html create mode 100644 code/modules/surgery/surgery_step.html create mode 100644 code/modules/tgchat.html create mode 100644 code/modules/tgchat/message.html create mode 100644 code/modules/tgchat/to_chat.html create mode 100644 code/modules/tgs.html create mode 100644 code/modules/tgs/core.html create mode 100644 code/modules/tgs/v3210.html create mode 100644 code/modules/tgs/v4.html create mode 100644 code/modules/tgs/v5.html create mode 100644 code/modules/tgui/external.html create mode 100644 code/modules/tgui/states.html create mode 100644 code/modules/tgui/states/admin.html create mode 100644 code/modules/tgui/states/always.html create mode 100644 code/modules/tgui/states/conscious.html create mode 100644 code/modules/tgui/states/contained.html create mode 100644 code/modules/tgui/states/deep_inventory.html create mode 100644 code/modules/tgui/states/default.html create mode 100644 code/modules/tgui/states/fun.html create mode 100644 code/modules/tgui/states/hands.html create mode 100644 code/modules/tgui/states/human_adjacent.html create mode 100644 code/modules/tgui/states/inventory.html create mode 100644 code/modules/tgui/states/language_menu.html create mode 100644 code/modules/tgui/states/never.html create mode 100644 code/modules/tgui/states/not_incapacitated.html create mode 100644 code/modules/tgui/states/notcontained.html create mode 100644 code/modules/tgui/states/observer.html create mode 100644 code/modules/tgui/states/physical.html create mode 100644 code/modules/tgui/states/reverse_contained.html create mode 100644 code/modules/tgui/states/self.html create mode 100644 code/modules/tgui/states/zlevel.html create mode 100644 code/modules/tgui/status_composers.html create mode 100644 code/modules/tgui/tgui.html create mode 100644 code/modules/tgui/tgui_window.html create mode 100644 code/modules/tgui_input/alert.html create mode 100644 code/modules/tgui_input/checkboxes.html create mode 100644 code/modules/tgui_input/keycombo.html create mode 100644 code/modules/tgui_input/list.html create mode 100644 code/modules/tgui_input/number.html create mode 100644 code/modules/tgui_input/say_modal/modal.html create mode 100644 code/modules/tgui_input/say_modal/typing.html create mode 100644 code/modules/tgui_input/text.html create mode 100644 code/modules/tgui_panel/audio.html create mode 100644 code/modules/tgui_panel/external.html create mode 100644 code/modules/tgui_panel/telemetry.html create mode 100644 code/modules/tgui_panel/tgui_panel.html create mode 100644 code/modules/transport/elevator/elev_indicator.html create mode 100644 code/modules/transport/elevator/elev_music_zone.html create mode 100644 code/modules/transport/elevator/elev_panel.html create mode 100644 code/modules/transport/linear_controller.html create mode 100644 code/modules/transport/tram/tram_controller.html create mode 100644 code/modules/transport/tram/tram_signals.html create mode 100644 code/modules/transport/transport_module.html create mode 100644 code/modules/transport/transport_navigation.html create mode 100644 code/modules/tutorials/_tutorial.html create mode 100644 code/modules/tutorials/tutorials/drop.html create mode 100644 code/modules/tutorials/tutorials/switch_hands.html create mode 100644 code/modules/unit_tests.html create mode 100644 code/modules/unit_tests/_unit_tests.html create mode 100644 code/modules/unit_tests/abductor_baton_spell.html create mode 100644 code/modules/unit_tests/ablative_hud.html create mode 100644 code/modules/unit_tests/achievements.html create mode 100644 code/modules/unit_tests/anonymous_themes.html create mode 100644 code/modules/unit_tests/antag_conversion.html create mode 100644 code/modules/unit_tests/area_contents.html create mode 100644 code/modules/unit_tests/armor_verification.html create mode 100644 code/modules/unit_tests/atmospherics_sanity.html create mode 100644 code/modules/unit_tests/autowiki.html create mode 100644 code/modules/unit_tests/barsigns.html create mode 100644 code/modules/unit_tests/baseturfs.html create mode 100644 code/modules/unit_tests/bitrunning.html create mode 100644 code/modules/unit_tests/blindness.html create mode 100644 code/modules/unit_tests/bloody_footprints.html create mode 100644 code/modules/unit_tests/breath.html create mode 100644 code/modules/unit_tests/burning.html create mode 100644 code/modules/unit_tests/cable_powernets.html create mode 100644 code/modules/unit_tests/can_see.html create mode 100644 code/modules/unit_tests/cardboard_cutouts.html create mode 100644 code/modules/unit_tests/cargo_selling.html create mode 100644 code/modules/unit_tests/changeling.html create mode 100644 code/modules/unit_tests/chat_filter.html create mode 100644 code/modules/unit_tests/circuit_component_category.html create mode 100644 code/modules/unit_tests/client_colours.html create mode 100644 code/modules/unit_tests/closets.html create mode 100644 code/modules/unit_tests/clothing_under_armor_subtype_check.html create mode 100644 code/modules/unit_tests/combat.html create mode 100644 code/modules/unit_tests/combat_stamina.html create mode 100644 code/modules/unit_tests/connect_loc.html create mode 100644 code/modules/unit_tests/container_sanity.html create mode 100644 code/modules/unit_tests/crayons.html create mode 100644 code/modules/unit_tests/create_and_destroy.html create mode 100644 code/modules/unit_tests/cyborg_tool.html create mode 100644 code/modules/unit_tests/dcs_check_list_arguments.html create mode 100644 code/modules/unit_tests/dcs_get_id_from_elements.html create mode 100644 code/modules/unit_tests/door_access.html create mode 100644 code/modules/unit_tests/dragon_expiration.html create mode 100644 code/modules/unit_tests/drink_icons.html create mode 100644 code/modules/unit_tests/dummy_spawn.html create mode 100644 code/modules/unit_tests/dynamic_ruleset_sanity.html create mode 100644 code/modules/unit_tests/egg_glands.html create mode 100644 code/modules/unit_tests/ensure_subtree_operational_datum.html create mode 100644 code/modules/unit_tests/explosion_action.html create mode 100644 code/modules/unit_tests/fish_unit_tests.html create mode 100644 code/modules/unit_tests/focus_only_tests.html create mode 100644 code/modules/unit_tests/font_awesome_icons.html create mode 100644 code/modules/unit_tests/food_edibility_check.html create mode 100644 code/modules/unit_tests/full_heal.html create mode 100644 code/modules/unit_tests/gas_transfer.html create mode 100644 code/modules/unit_tests/get_turf_pixel.html create mode 100644 code/modules/unit_tests/geyser.html create mode 100644 code/modules/unit_tests/gloves_and_shoes_armor.html create mode 100644 code/modules/unit_tests/greyscale_config.html create mode 100644 code/modules/unit_tests/hallucination_icons.html create mode 100644 code/modules/unit_tests/high_five.html create mode 100644 code/modules/unit_tests/hulk.html create mode 100644 code/modules/unit_tests/human_through_recycler.html create mode 100644 code/modules/unit_tests/hunger_curse.html create mode 100644 code/modules/unit_tests/hydroponics_extractor_storage.html create mode 100644 code/modules/unit_tests/hydroponics_self_mutations.html create mode 100644 code/modules/unit_tests/hydroponics_validate_genes.html create mode 100644 code/modules/unit_tests/inhands.html create mode 100644 code/modules/unit_tests/json_savefile_importing.html create mode 100644 code/modules/unit_tests/knockoff_component.html create mode 100644 code/modules/unit_tests/language_transfer.html create mode 100644 code/modules/unit_tests/leash.html create mode 100644 code/modules/unit_tests/lesserform.html create mode 100644 code/modules/unit_tests/ling_decap.html create mode 100644 code/modules/unit_tests/load_map_security.html create mode 100644 code/modules/unit_tests/lungs.html create mode 100644 code/modules/unit_tests/machine_disassembly.html create mode 100644 code/modules/unit_tests/mafia.html create mode 100644 code/modules/unit_tests/map_landmarks.html create mode 100644 code/modules/unit_tests/mapload_space_verification.html create mode 100644 code/modules/unit_tests/mapping.html create mode 100644 code/modules/unit_tests/mapping_nearstation_test.html create mode 100644 code/modules/unit_tests/market.html create mode 100644 code/modules/unit_tests/mecha_damage.html create mode 100644 code/modules/unit_tests/mindbound_actions.html create mode 100644 code/modules/unit_tests/missing_icons.html create mode 100644 code/modules/unit_tests/mob_chains.html create mode 100644 code/modules/unit_tests/mob_damage.html create mode 100644 code/modules/unit_tests/mob_faction.html create mode 100644 code/modules/unit_tests/mob_spawn.html create mode 100644 code/modules/unit_tests/modsuit.html create mode 100644 code/modules/unit_tests/monkey_business.html create mode 100644 code/modules/unit_tests/mouse_bite_cable.html create mode 100644 code/modules/unit_tests/mutant_hands_consistency.html create mode 100644 code/modules/unit_tests/mutant_organs.html create mode 100644 code/modules/unit_tests/novaflower_burn.html create mode 100644 code/modules/unit_tests/nuke_cinematic.html create mode 100644 code/modules/unit_tests/operating_table.html create mode 100644 code/modules/unit_tests/orderable_items.html create mode 100644 code/modules/unit_tests/organ_bodypart_shuffle.html create mode 100644 code/modules/unit_tests/organ_set_bonus.html create mode 100644 code/modules/unit_tests/organs.html create mode 100644 code/modules/unit_tests/orphaned_genturf.html create mode 100644 code/modules/unit_tests/outfit_sanity.html create mode 100644 code/modules/unit_tests/oxyloss_suffocation.html create mode 100644 code/modules/unit_tests/paintings.html create mode 100644 code/modules/unit_tests/plane_double_transform.html create mode 100644 code/modules/unit_tests/plane_dupe_detector.html create mode 100644 code/modules/unit_tests/plane_sanity.html create mode 100644 code/modules/unit_tests/preference_species.html create mode 100644 code/modules/unit_tests/preferences.html create mode 100644 code/modules/unit_tests/projectiles.html create mode 100644 code/modules/unit_tests/quirks.html create mode 100644 code/modules/unit_tests/range_return.html create mode 100644 code/modules/unit_tests/reagent_container_defaults.html create mode 100644 code/modules/unit_tests/reagent_names.html create mode 100644 code/modules/unit_tests/reagent_transfer.html create mode 100644 code/modules/unit_tests/required_map_items.html create mode 100644 code/modules/unit_tests/say.html create mode 100644 code/modules/unit_tests/screenshot_antag_icons.html create mode 100644 code/modules/unit_tests/screenshot_basic.html create mode 100644 code/modules/unit_tests/screenshot_dynamic_human_icons.html create mode 100644 code/modules/unit_tests/screenshot_high_luminosity_eyes.html create mode 100644 code/modules/unit_tests/screenshot_humanoids.html create mode 100644 code/modules/unit_tests/screenshot_husk.html create mode 100644 code/modules/unit_tests/screenshot_saturnx.html create mode 100644 code/modules/unit_tests/screenshots.html create mode 100644 code/modules/unit_tests/security_levels.html create mode 100644 code/modules/unit_tests/security_officer_distribution.html create mode 100644 code/modules/unit_tests/simple_animal_freeze.html create mode 100644 code/modules/unit_tests/slime_mood.html create mode 100644 code/modules/unit_tests/slips.html create mode 100644 code/modules/unit_tests/spawn_humans.html create mode 100644 code/modules/unit_tests/spawn_mobs.html create mode 100644 code/modules/unit_tests/species_change_clothing.html create mode 100644 code/modules/unit_tests/species_change_organs.html create mode 100644 code/modules/unit_tests/species_unique_id.html create mode 100644 code/modules/unit_tests/spell_invocations.html create mode 100644 code/modules/unit_tests/spell_jaunt.html create mode 100644 code/modules/unit_tests/spell_mindswap.html create mode 100644 code/modules/unit_tests/spell_names.html create mode 100644 code/modules/unit_tests/spell_shapeshift.html create mode 100644 code/modules/unit_tests/spell_timestop.html create mode 100644 code/modules/unit_tests/spies.html create mode 100644 code/modules/unit_tests/spritesheets.html create mode 100644 code/modules/unit_tests/stack_singular_name.html create mode 100644 code/modules/unit_tests/status_effect_ticks.html create mode 100644 code/modules/unit_tests/storage.html create mode 100644 code/modules/unit_tests/strange_reagent.html create mode 100644 code/modules/unit_tests/stuns.html create mode 100644 code/modules/unit_tests/subsystem_init.html create mode 100644 code/modules/unit_tests/suit_storage_icons.html create mode 100644 code/modules/unit_tests/surgeries.html create mode 100644 code/modules/unit_tests/tail_wag.html create mode 100644 code/modules/unit_tests/tgui_create_message.html create mode 100644 code/modules/unit_tests/trait_addition_and_removal.html create mode 100644 code/modules/unit_tests/traitor_mail_content_check.html create mode 100644 code/modules/unit_tests/trauma_granting.html create mode 100644 code/modules/unit_tests/turf_icons.html create mode 100644 code/modules/unit_tests/tutorial_sanity.html create mode 100644 code/modules/unit_tests/verify_config_tags.html create mode 100644 code/modules/unit_tests/verify_emoji_names.html create mode 100644 code/modules/unit_tests/weird_food.html create mode 100644 code/modules/unit_tests/wizard_loadout.html create mode 100644 code/modules/unit_tests/worn_icons.html create mode 100644 code/modules/unit_tests/~skyrat/automapper.html create mode 100644 code/modules/unit_tests/~skyrat/opposing_force.html create mode 100644 code/modules/unit_tests/~splurt/underwear_items.html create mode 100644 code/modules/uplink/uplink_devices.html create mode 100644 code/modules/uplink/uplink_items.html create mode 100644 code/modules/vehicles/cars/speedwagon.html create mode 100644 code/modules/vehicles/cars/vim.html create mode 100644 code/modules/vehicles/mecha/_mecha.html create mode 100644 code/modules/vehicles/mecha/combat/durand.html create mode 100644 code/modules/vehicles/mecha/combat/savannah_ivanov.html create mode 100644 code/modules/vehicles/mecha/equipment/mecha_equipment.html create mode 100644 code/modules/vehicles/mecha/equipment/tools/air_tank.html create mode 100644 code/modules/vehicles/mecha/equipment/tools/medical_tools.html create mode 100644 code/modules/vehicles/mecha/equipment/tools/other_tools.html create mode 100644 code/modules/vehicles/mecha/equipment/tools/radio.html create mode 100644 code/modules/vehicles/mecha/equipment/weapons/mecha_ammo.html create mode 100644 code/modules/vehicles/mecha/equipment/weapons/weapons.html create mode 100644 code/modules/vehicles/mecha/mecha_actions.html create mode 100644 code/modules/vehicles/mecha/mecha_construction_paths.html create mode 100644 code/modules/vehicles/mecha/mecha_damage.html create mode 100644 code/modules/vehicles/mecha/mecha_defense.html create mode 100644 code/modules/vehicles/mecha/mecha_movement.html create mode 100644 code/modules/vehicles/mecha/mecha_parts.html create mode 100644 code/modules/vehicles/mecha/mecha_wreckage.html create mode 100644 code/modules/vehicles/mecha/working/clarke.html create mode 100644 code/modules/vehicles/motorized_wheelchair.html create mode 100644 code/modules/vehicles/pimpin_ride.html create mode 100644 code/modules/vehicles/vehicle_actions.html create mode 100644 code/modules/vehicles/wheelchair.html create mode 100644 code/modules/vending/_vending.html create mode 100644 code/modules/vending/hotdog.html create mode 100644 code/modules/visuals/render_steps.html create mode 100644 code/modules/wiremod/components/abstract/compare.html create mode 100644 code/modules/wiremod/components/abstract/module.html create mode 100644 code/modules/wiremod/components/abstract/variable.html create mode 100644 code/modules/wiremod/components/action/laserpointer.html create mode 100644 code/modules/wiremod/components/action/light.html create mode 100644 code/modules/wiremod/components/action/mmi.html create mode 100644 code/modules/wiremod/components/action/pathfind.html create mode 100644 code/modules/wiremod/components/action/pull.html create mode 100644 code/modules/wiremod/components/action/radio.html create mode 100644 code/modules/wiremod/components/action/soundemitter.html create mode 100644 code/modules/wiremod/components/action/speech.html create mode 100644 code/modules/wiremod/components/admin/getvar.html create mode 100644 code/modules/wiremod/components/admin/input_request.html create mode 100644 code/modules/wiremod/components/admin/proccall.html create mode 100644 code/modules/wiremod/components/admin/save_shell.html create mode 100644 code/modules/wiremod/components/admin/sdql.html create mode 100644 code/modules/wiremod/components/admin/setvar.html create mode 100644 code/modules/wiremod/components/admin/signal_handler/signal_handler.html create mode 100644 code/modules/wiremod/components/admin/spawn.html create mode 100644 code/modules/wiremod/components/admin/to_type.html create mode 100644 code/modules/wiremod/components/atom/direction.html create mode 100644 code/modules/wiremod/components/atom/gps.html create mode 100644 code/modules/wiremod/components/atom/health.html create mode 100644 code/modules/wiremod/components/atom/health_state.html create mode 100644 code/modules/wiremod/components/atom/hear.html create mode 100644 code/modules/wiremod/components/atom/matscanner.html create mode 100644 code/modules/wiremod/components/atom/pinpointer.html create mode 100644 code/modules/wiremod/components/atom/reagentscanner.html create mode 100644 code/modules/wiremod/components/atom/remotecam.html create mode 100644 code/modules/wiremod/components/atom/self.html create mode 100644 code/modules/wiremod/components/atom/species.html create mode 100644 code/modules/wiremod/components/bci/hud/bar_overlay.html create mode 100644 code/modules/wiremod/components/bci/hud/counter_overlay.html create mode 100644 code/modules/wiremod/components/bci/hud/object_overlay.html create mode 100644 code/modules/wiremod/components/bci/hud/target_intercept.html create mode 100644 code/modules/wiremod/components/bci/install_detector.html create mode 100644 code/modules/wiremod/components/bci/reagent_injector.html create mode 100644 code/modules/wiremod/components/bci/thought_listener.html create mode 100644 code/modules/wiremod/components/bci/vox.html create mode 100644 code/modules/wiremod/components/list/assoc_list_pick.html create mode 100644 code/modules/wiremod/components/list/assoc_list_remove.html create mode 100644 code/modules/wiremod/components/list/assoc_list_set.html create mode 100644 code/modules/wiremod/components/list/assoc_literal.html create mode 100644 code/modules/wiremod/components/list/concat.html create mode 100644 code/modules/wiremod/components/list/filter.html create mode 100644 code/modules/wiremod/components/list/foreach.html create mode 100644 code/modules/wiremod/components/list/format.html create mode 100644 code/modules/wiremod/components/list/index.html create mode 100644 code/modules/wiremod/components/list/list_add.html create mode 100644 code/modules/wiremod/components/list/list_clear.html create mode 100644 code/modules/wiremod/components/list/list_find.html create mode 100644 code/modules/wiremod/components/list/list_literal.html create mode 100644 code/modules/wiremod/components/list/list_pick.html create mode 100644 code/modules/wiremod/components/list/list_remove.html create mode 100644 code/modules/wiremod/components/list/split.html create mode 100644 code/modules/wiremod/components/math/arctan2.html create mode 100644 code/modules/wiremod/components/math/arithmetic.html create mode 100644 code/modules/wiremod/components/math/binary_conversion.html create mode 100644 code/modules/wiremod/components/math/comparison.html create mode 100644 code/modules/wiremod/components/math/decimal_conversion.html create mode 100644 code/modules/wiremod/components/math/length.html create mode 100644 code/modules/wiremod/components/math/logic.html create mode 100644 code/modules/wiremod/components/math/not.html create mode 100644 code/modules/wiremod/components/math/random.html create mode 100644 code/modules/wiremod/components/math/toggle.html create mode 100644 code/modules/wiremod/components/math/trigonometry.html create mode 100644 code/modules/wiremod/components/ntnet/ntnet_receive.html create mode 100644 code/modules/wiremod/components/ntnet/ntnet_send.html create mode 100644 code/modules/wiremod/components/ntnet/ntnet_send_literal.html create mode 100644 code/modules/wiremod/components/sensors/pressuresensor.html create mode 100644 code/modules/wiremod/components/sensors/tempsensor.html create mode 100644 code/modules/wiremod/components/sensors/view_sensor.html create mode 100644 code/modules/wiremod/components/string/concat.html create mode 100644 code/modules/wiremod/components/string/contains.html create mode 100644 code/modules/wiremod/components/string/textcase.html create mode 100644 code/modules/wiremod/components/string/tonumber.html create mode 100644 code/modules/wiremod/components/string/tostring.html create mode 100644 code/modules/wiremod/components/table/get_column.html create mode 100644 code/modules/wiremod/components/table/index_table.html create mode 100644 code/modules/wiremod/components/table/select.html create mode 100644 code/modules/wiremod/components/utility/clock.html create mode 100644 code/modules/wiremod/components/utility/delay.html create mode 100644 code/modules/wiremod/components/utility/router.html create mode 100644 code/modules/wiremod/components/utility/timepiece.html create mode 100644 code/modules/wiremod/components/utility/typecast.html create mode 100644 code/modules/wiremod/components/utility/typecheck.html create mode 100644 code/modules/wiremod/components/variables/getter.html create mode 100644 code/modules/wiremod/components/variables/setter.html create mode 100644 code/modules/wiremod/core/component.html create mode 100644 code/modules/wiremod/core/component_printer.html create mode 100644 code/modules/wiremod/core/datatypes.html create mode 100644 code/modules/wiremod/core/integrated_circuit.html create mode 100644 code/modules/wiremod/core/port.html create mode 100644 code/modules/wiremod/core/usb_cable.html create mode 100644 code/modules/wiremod/core/variable.html create mode 100644 code/modules/wiremod/datatypes/composite/composite.html create mode 100644 code/modules/wiremod/dcs_components/component_add_port.html create mode 100644 code/modules/wiremod/preset/hello_world.html create mode 100644 code/modules/wiremod/preset/speech_relay.html create mode 100644 code/modules/wiremod/shell/assembly.html create mode 100644 code/modules/wiremod/shell/bot.html create mode 100644 code/modules/wiremod/shell/compact_remote.html create mode 100644 code/modules/wiremod/shell/controller.html create mode 100644 code/modules/wiremod/shell/dispenser.html create mode 100644 code/modules/wiremod/shell/drone.html create mode 100644 code/modules/wiremod/shell/gun.html create mode 100644 code/modules/wiremod/shell/moneybot.html create mode 100644 code/modules/wiremod/shell/scanner.html create mode 100644 code/modules/wiremod/shell/server.html create mode 100644 code/modules/wiremod/shell/shell_items.html create mode 100644 code/world.html create mode 100644 datum.html create mode 100644 datum/abductor_gear.html create mode 100644 datum/achievement_data.html create mode 100644 datum/achievement_report.html create mode 100644 datum/action.html create mode 100644 datum/action/chameleon_outfit.html create mode 100644 datum/action/change_pointer_color.html create mode 100644 datum/action/changeling.html create mode 100644 datum/action/changeling/absorb_dna.html create mode 100644 datum/action/changeling/augmented_eyesight.html create mode 100644 datum/action/changeling/darkness_adaptation.html create mode 100644 datum/action/changeling/defib_grasp.html create mode 100644 datum/action/changeling/fakedeath.html create mode 100644 datum/action/changeling/headcrab.html create mode 100644 datum/action/changeling/lesserform.html create mode 100644 datum/action/changeling/mmi_talk.html create mode 100644 datum/action/changeling/sting/transformation.html create mode 100644 datum/action/changeling/suit.html create mode 100644 datum/action/changeling/void_adaption.html create mode 100644 datum/action/changeling/weapon.html create mode 100644 datum/action/consume.html create mode 100644 datum/action/cooldown.html create mode 100644 datum/action/cooldown/adrenaline.html create mode 100644 datum/action/cooldown/alien.html create mode 100644 datum/action/cooldown/alien/acid/corrosion.html create mode 100644 datum/action/cooldown/alien/acid/skyrat.html create mode 100644 datum/action/cooldown/alien/hide.html create mode 100644 datum/action/cooldown/alien/larva_evolve.html create mode 100644 datum/action/cooldown/alien/make_structure.html create mode 100644 datum/action/cooldown/alien/make_structure/resin.html create mode 100644 datum/action/cooldown/alien/promote.html create mode 100644 datum/action/cooldown/alien/skyrat.html create mode 100644 datum/action/cooldown/alien/skyrat/evade.html create mode 100644 datum/action/cooldown/alien/skyrat/generic_evolve.html create mode 100644 datum/action/cooldown/alien/skyrat/heal_aura.html create mode 100644 datum/action/cooldown/alien/skyrat/literally_too_angry_to_die.html create mode 100644 datum/action/cooldown/alien/skyrat/warrior_agility.html create mode 100644 datum/action/cooldown/bloodsucker.html create mode 100644 datum/action/cooldown/bloodsucker/cloak.html create mode 100644 datum/action/cooldown/bloodsucker/feed.html create mode 100644 datum/action/cooldown/bloodsucker/ghoul_blood.html create mode 100644 datum/action/cooldown/bloodsucker/gohome.html create mode 100644 datum/action/cooldown/bloodsucker/masquerade.html create mode 100644 datum/action/cooldown/bloodsucker/targeted.html create mode 100644 datum/action/cooldown/bloodsucker/targeted/haste.html create mode 100644 datum/action/cooldown/bloodsucker/targeted/lunge.html create mode 100644 datum/action/cooldown/bloodsucker/targeted/mesmerize.html create mode 100644 datum/action/cooldown/bloodsucker/targeted/mesmerize/dominate.html create mode 100644 datum/action/cooldown/bloodsucker/targeted/tremere/thaumaturgy.html create mode 100644 datum/action/cooldown/bot_announcement.html create mode 100644 datum/action/cooldown/bot_announcement_shortcut.html create mode 100644 datum/action/cooldown/exquisite_bunch.html create mode 100644 datum/action/cooldown/gel_cocoon.html create mode 100644 datum/action/cooldown/grand_ritual.html create mode 100644 datum/action/cooldown/hemophage/drain_victim.html create mode 100644 datum/action/cooldown/hivehead_spawn_minions.html create mode 100644 datum/action/cooldown/internal_smelting.html create mode 100644 datum/action/cooldown/lunatic_track.html create mode 100644 datum/action/cooldown/manual_heart.html create mode 100644 datum/action/cooldown/metabolicboost.html create mode 100644 datum/action/cooldown/mob_cooldown/assume_form.html create mode 100644 datum/action/cooldown/mob_cooldown/blood_rain.html create mode 100644 datum/action/cooldown/mob_cooldown/blood_warp.html create mode 100644 datum/action/cooldown/mob_cooldown/borer.html create mode 100644 datum/action/cooldown/mob_cooldown/bot/foam.html create mode 100644 datum/action/cooldown/mob_cooldown/bot/honk.html create mode 100644 datum/action/cooldown/mob_cooldown/bot/vibe.html create mode 100644 datum/action/cooldown/mob_cooldown/brimbeam.html create mode 100644 datum/action/cooldown/mob_cooldown/capture_photo.html create mode 100644 datum/action/cooldown/mob_cooldown/charge.html create mode 100644 datum/action/cooldown/mob_cooldown/charge/basic_charge.html create mode 100644 datum/action/cooldown/mob_cooldown/charge/hallucination_charge.html create mode 100644 datum/action/cooldown/mob_cooldown/chase_target.html create mode 100644 datum/action/cooldown/mob_cooldown/chasing_spikes.html create mode 100644 datum/action/cooldown/mob_cooldown/command_spiders.html create mode 100644 datum/action/cooldown/mob_cooldown/create_legion_skull.html create mode 100644 datum/action/cooldown/mob_cooldown/create_legion_turrets.html create mode 100644 datum/action/cooldown/mob_cooldown/dash.html create mode 100644 datum/action/cooldown/mob_cooldown/defensive_mode.html create mode 100644 datum/action/cooldown/mob_cooldown/expel_gas.html create mode 100644 datum/action/cooldown/mob_cooldown/explosive_booby_trap.html create mode 100644 datum/action/cooldown/mob_cooldown/fire_breath.html create mode 100644 datum/action/cooldown/mob_cooldown/fire_breath/cone.html create mode 100644 datum/action/cooldown/mob_cooldown/fire_breath/mass_fire.html create mode 100644 datum/action/cooldown/mob_cooldown/goliath_tentacles.html create mode 100644 datum/action/cooldown/mob_cooldown/ground_slam.html create mode 100644 datum/action/cooldown/mob_cooldown/guardian_alarm_snare.html create mode 100644 datum/action/cooldown/mob_cooldown/guardian_bluespace_beacon.html create mode 100644 datum/action/cooldown/mob_cooldown/hivelord_spawn.html create mode 100644 datum/action/cooldown/mob_cooldown/ice_demon_teleport.html create mode 100644 datum/action/cooldown/mob_cooldown/lava_swoop.html create mode 100644 datum/action/cooldown/mob_cooldown/lay_eggs.html create mode 100644 datum/action/cooldown/mob_cooldown/lay_eggs/enriched.html create mode 100644 datum/action/cooldown/mob_cooldown/lay_web.html create mode 100644 datum/action/cooldown/mob_cooldown/lesser_carp_rift.html create mode 100644 datum/action/cooldown/mob_cooldown/missile_launcher.html create mode 100644 datum/action/cooldown/mob_cooldown/mook_ability.html create mode 100644 datum/action/cooldown/mob_cooldown/mook_ability/mook_leap.html create mode 100644 datum/action/cooldown/mob_cooldown/projectile_attack.html create mode 100644 datum/action/cooldown/mob_cooldown/projectile_attack/magicarp_bolt/chaos.html create mode 100644 datum/action/cooldown/mob_cooldown/projectile_attack/rapid_fire.html create mode 100644 datum/action/cooldown/mob_cooldown/projectile_attack/rapid_fire/seedling.html create mode 100644 datum/action/cooldown/mob_cooldown/projectile_attack/spiral_shots.html create mode 100644 datum/action/cooldown/mob_cooldown/projectile_attack/vine_tangle.html create mode 100644 datum/action/cooldown/mob_cooldown/riot.html create mode 100644 datum/action/cooldown/mob_cooldown/set_spider_directive.html create mode 100644 datum/action/cooldown/mob_cooldown/skull_launcher.html create mode 100644 datum/action/cooldown/mob_cooldown/slippery_ice_floors.html create mode 100644 datum/action/cooldown/mob_cooldown/sneak.html create mode 100644 datum/action/cooldown/mob_cooldown/solarbeam.html create mode 100644 datum/action/cooldown/mob_cooldown/spine_traps.html create mode 100644 datum/action/cooldown/mob_cooldown/teleport.html create mode 100644 datum/action/cooldown/mob_cooldown/transform_weapon.html create mode 100644 datum/action/cooldown/mob_cooldown/watcher_gaze.html create mode 100644 datum/action/cooldown/mob_cooldown/watcher_gaze/ice.html create mode 100644 datum/action/cooldown/mob_cooldown/watcher_overwatch.html create mode 100644 datum/action/cooldown/mob_cooldown/wing_buffet.html create mode 100644 datum/action/cooldown/mob_cooldown/wrap.html create mode 100644 datum/action/cooldown/open_mob_commands.html create mode 100644 datum/action/cooldown/rustle.html create mode 100644 datum/action/cooldown/spell.html create mode 100644 datum/action/cooldown/spell/aoe.html create mode 100644 datum/action/cooldown/spell/aoe/magic_missile.html create mode 100644 datum/action/cooldown/spell/aoe/moon_ringleader.html create mode 100644 datum/action/cooldown/spell/aoe/repulse.html create mode 100644 datum/action/cooldown/spell/aoe/repulse/xeno/skyrat_tailsweep.html create mode 100644 datum/action/cooldown/spell/aoe/revenant.html create mode 100644 datum/action/cooldown/spell/aoe/revenant/overload.html create mode 100644 datum/action/cooldown/spell/aoe/sacred_flame.html create mode 100644 datum/action/cooldown/spell/aoe/void_pull.html create mode 100644 datum/action/cooldown/spell/apply_mutations.html create mode 100644 datum/action/cooldown/spell/basic_heal.html create mode 100644 datum/action/cooldown/spell/basic_projectile.html create mode 100644 datum/action/cooldown/spell/charged.html create mode 100644 datum/action/cooldown/spell/charged/beam.html create mode 100644 datum/action/cooldown/spell/charged/beam/fire_blast.html create mode 100644 datum/action/cooldown/spell/charged/beam/tesla.html create mode 100644 datum/action/cooldown/spell/charged/psychic_booster.html create mode 100644 datum/action/cooldown/spell/cone.html create mode 100644 datum/action/cooldown/spell/cone/staggered.html create mode 100644 datum/action/cooldown/spell/cone/staggered/cone_of_cold.html create mode 100644 datum/action/cooldown/spell/cone/staggered/fire_breath.html create mode 100644 datum/action/cooldown/spell/conjure.html create mode 100644 datum/action/cooldown/spell/conjure/cosmic_expansion.html create mode 100644 datum/action/cooldown/spell/conjure/limit_summons.html create mode 100644 datum/action/cooldown/spell/conjure/simian.html create mode 100644 datum/action/cooldown/spell/conjure/the_traps.html create mode 100644 datum/action/cooldown/spell/conjure/wizard_summon_minions.html create mode 100644 datum/action/cooldown/spell/conjure_item.html create mode 100644 datum/action/cooldown/spell/conjure_item/clown_pockets.html create mode 100644 datum/action/cooldown/spell/conjure_item/invisible_box.html create mode 100644 datum/action/cooldown/spell/cosmic_rune.html create mode 100644 datum/action/cooldown/spell/emp.html create mode 100644 datum/action/cooldown/spell/fire_cascade.html create mode 100644 datum/action/cooldown/spell/fire_sworn.html create mode 100644 datum/action/cooldown/spell/forcewall.html create mode 100644 datum/action/cooldown/spell/jaunt.html create mode 100644 datum/action/cooldown/spell/jaunt/bloodcrawl.html create mode 100644 datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon.html create mode 100644 datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/funny.html create mode 100644 datum/action/cooldown/spell/jaunt/creature_teleport.html create mode 100644 datum/action/cooldown/spell/jaunt/ethereal_jaunt.html create mode 100644 datum/action/cooldown/spell/jaunt/mirror_walk.html create mode 100644 datum/action/cooldown/spell/jaunt/shadow_walk.html create mode 100644 datum/action/cooldown/spell/jaunt/space_crawl.html create mode 100644 datum/action/cooldown/spell/list_target.html create mode 100644 datum/action/cooldown/spell/list_target/telepathy.html create mode 100644 datum/action/cooldown/spell/olfaction.html create mode 100644 datum/action/cooldown/spell/pointed.html create mode 100644 datum/action/cooldown/spell/pointed/abyssal_gaze.html create mode 100644 datum/action/cooldown/spell/pointed/apetra_vulnera.html create mode 100644 datum/action/cooldown/spell/pointed/ash_beams.html create mode 100644 datum/action/cooldown/spell/pointed/blind.html create mode 100644 datum/action/cooldown/spell/pointed/cleave.html create mode 100644 datum/action/cooldown/spell/pointed/declare_evil.html create mode 100644 datum/action/cooldown/spell/pointed/manse_link.html create mode 100644 datum/action/cooldown/spell/pointed/mind_transfer.html create mode 100644 datum/action/cooldown/spell/pointed/projectile.html create mode 100644 datum/action/cooldown/spell/pointed/projectile/furious_steel.html create mode 100644 datum/action/cooldown/spell/pointed/projectile/lightningbolt.html create mode 100644 datum/action/cooldown/spell/pointed/projectile/spell_cards.html create mode 100644 datum/action/cooldown/spell/pointed/psychic_projection.html create mode 100644 datum/action/cooldown/spell/pointed/rust_construction.html create mode 100644 datum/action/cooldown/spell/pointed/slab.html create mode 100644 datum/action/cooldown/spell/pointed/swap.html create mode 100644 datum/action/cooldown/spell/pointed/unsettle.html create mode 100644 datum/action/cooldown/spell/pointed/untie_shoes.html create mode 100644 datum/action/cooldown/spell/pointed/void_phase.html create mode 100644 datum/action/cooldown/spell/pointed/wizard_mimic.html create mode 100644 datum/action/cooldown/spell/rod_form.html create mode 100644 datum/action/cooldown/spell/sanguine_strike.html create mode 100644 datum/action/cooldown/spell/shadow_cloak.html create mode 100644 datum/action/cooldown/spell/shapeshift.html create mode 100644 datum/action/cooldown/spell/shapeshift/polymorph_belt.html create mode 100644 datum/action/cooldown/spell/shapeshift/shed_human_form.html create mode 100644 datum/action/cooldown/spell/shapeshift/slime_form.html create mode 100644 datum/action/cooldown/spell/spacetime_dist.html create mode 100644 datum/action/cooldown/spell/summonitem.html create mode 100644 datum/action/cooldown/spell/tap.html create mode 100644 datum/action/cooldown/spell/teleport.html create mode 100644 datum/action/cooldown/spell/teleport/area_teleport.html create mode 100644 datum/action/cooldown/spell/teleport/radius_turf.html create mode 100644 datum/action/cooldown/spell/thermal_vision.html create mode 100644 datum/action/cooldown/spell/timestop.html create mode 100644 datum/action/cooldown/spell/tongue_spike.html create mode 100644 datum/action/cooldown/spell/touch.html create mode 100644 datum/action/cooldown/spell/touch/duffelbag.html create mode 100644 datum/action/cooldown/spell/touch/flesh_surgery.html create mode 100644 datum/action/cooldown/spell/touch/lay_on_hands.html create mode 100644 datum/action/cooldown/spell/touch/shock.html create mode 100644 datum/action/cooldown/spell/touch/smite.html create mode 100644 datum/action/cooldown/spell/touch/star_touch.html create mode 100644 datum/action/cooldown/spell/voice_of_god.html create mode 100644 datum/action/cooldown/spell/void/cursed.html create mode 100644 datum/action/cooldown/track_target.html create mode 100644 datum/action/cooldown/turn_to_statue.html create mode 100644 datum/action/innate.html create mode 100644 datum/action/innate/ai.html create mode 100644 datum/action/innate/ai/lockdown.html create mode 100644 datum/action/innate/ai/ranged/core_tilt.html create mode 100644 datum/action/innate/ai/ranged/remote_vendor_tilt.html create mode 100644 datum/action/innate/alter_form.html create mode 100644 datum/action/innate/blobpop.html create mode 100644 datum/action/innate/carrier_user.html create mode 100644 datum/action/innate/clockcult/comm.html create mode 100644 datum/action/innate/clockcult/quick_bind.html create mode 100644 datum/action/innate/clockcult/recall_slab.html create mode 100644 datum/action/innate/constrict.html create mode 100644 datum/action/innate/construction.html create mode 100644 datum/action/innate/construction/place_structure.html create mode 100644 datum/action/innate/cult/blood_magic.html create mode 100644 datum/action/innate/cult/blood_spell.html create mode 100644 datum/action/innate/cult/blood_spell/dagger.html create mode 100644 datum/action/innate/cult/ghostmark.html create mode 100644 datum/action/innate/cult/master/cultmark.html create mode 100644 datum/action/innate/cult/master/pulse.html create mode 100644 datum/action/innate/dash.html create mode 100644 datum/action/innate/elite_attack.html create mode 100644 datum/action/innate/expand_sight.html create mode 100644 datum/action/innate/integrate_extract.html create mode 100644 datum/action/innate/link_minds.html create mode 100644 datum/action/innate/mafia_panel.html create mode 100644 datum/action/innate/proto_emitter.html create mode 100644 datum/action/innate/seek_master.html create mode 100644 datum/action/innate/sign_language.html create mode 100644 datum/action/innate/slime.html create mode 100644 datum/action/innate/slime/evolve.html create mode 100644 datum/action/innate/soulcatcher.html create mode 100644 datum/action/innate/teleport_in.html create mode 100644 datum/action/innate/teleport_self.html create mode 100644 datum/action/innate/use_extract.html create mode 100644 datum/action/item_action/agent_box.html create mode 100644 datum/action/item_action/camouflage.html create mode 100644 datum/action/item_action/chameleon/change.html create mode 100644 datum/action/item_action/chameleon/change/scanner.html create mode 100644 datum/action/item_action/mod.html create mode 100644 datum/action/item_action/mod/activate.html create mode 100644 datum/action/item_action/mod/pinnable.html create mode 100644 datum/action/item_action/mod/pinnable/circuit.html create mode 100644 datum/action/item_action/mod/pinnable/module.html create mode 100644 datum/action/item_action/mod_recall.html create mode 100644 datum/action/item_action/stealth_mode.html create mode 100644 datum/action/item_action/toggle_steampunk_goggles_welding_protection.html create mode 100644 datum/action/personality_commune.html create mode 100644 datum/action/push_weights.html create mode 100644 datum/action/select_guardian_battlecry.html create mode 100644 datum/action/send_chems.html create mode 100644 datum/action/setup_shop.html create mode 100644 datum/action/toggle_buffer.html create mode 100644 datum/action/vehicle/sealed/mecha.html create mode 100644 datum/action/vehicle/sealed/mecha/charge_attack.html create mode 100644 datum/action/vehicle/sealed/mecha/invisibility.html create mode 100644 datum/action/vehicle/sealed/mecha/ivanov_strike.html create mode 100644 datum/action/vehicle/sealed/mecha/skyfall.html create mode 100644 datum/action_group.html create mode 100644 datum/actionspeed_modifier.html create mode 100644 datum/addiction.html create mode 100644 datum/addiction/medicine.html create mode 100644 datum/admin_book_viewer.html create mode 100644 datum/admin_help.html create mode 100644 datum/admin_help_tickets.html create mode 100644 datum/admin_message.html create mode 100644 datum/admin_verb.html create mode 100644 datum/admins.html create mode 100644 datum/adventure.html create mode 100644 datum/adventure_browser.html create mode 100644 datum/adventure_db_entry.html create mode 100644 datum/adventure_loot_generator.html create mode 100644 datum/adventure_node.html create mode 100644 datum/ai_behavior.html create mode 100644 datum/ai_behavior/attack.html create mode 100644 datum/ai_behavior/attack_obstructions.html create mode 100644 datum/ai_behavior/basic_melee_attack.html create mode 100644 datum/ai_behavior/basic_melee_attack/dog.html create mode 100644 datum/ai_behavior/basic_ranged_attack.html create mode 100644 datum/ai_behavior/basic_ranged_attack/minebot.html create mode 100644 datum/ai_behavior/battle_screech.html create mode 100644 datum/ai_behavior/call_reinforcements.html create mode 100644 datum/ai_behavior/capricious_retaliate.html create mode 100644 datum/ai_behavior/crawl_through_vents.html create mode 100644 datum/ai_behavior/deliver_fetched_item.html create mode 100644 datum/ai_behavior/eat_fetched_snack.html create mode 100644 datum/ai_behavior/find_and_set.html create mode 100644 datum/ai_behavior/find_mom.html create mode 100644 datum/ai_behavior/find_partner.html create mode 100644 datum/ai_behavior/find_potential_targets.html create mode 100644 datum/ai_behavior/find_unwebbed_turf.html create mode 100644 datum/ai_behavior/forget_failed_fetches.html create mode 100644 datum/ai_behavior/goliath_find_diggable_turf.html create mode 100644 datum/ai_behavior/hoard_fingers.html create mode 100644 datum/ai_behavior/hunt_target.html create mode 100644 datum/ai_behavior/hunt_target/interact_with_target.html create mode 100644 datum/ai_behavior/hunt_target/interact_with_target/material_stand.html create mode 100644 datum/ai_behavior/hunt_target/use_ability_on_target.html create mode 100644 datum/ai_behavior/item_move_close_and_attack.html create mode 100644 datum/ai_behavior/make_carp_rift.html create mode 100644 datum/ai_behavior/make_carp_rift/towards.html create mode 100644 datum/ai_behavior/monkey_attack_mob.html create mode 100644 datum/ai_behavior/monkey_equip.html create mode 100644 datum/ai_behavior/move_to_cardinal.html create mode 100644 datum/ai_behavior/play_with_mouse.html create mode 100644 datum/ai_behavior/relay_message.html create mode 100644 datum/ai_behavior/return_home.html create mode 100644 datum/ai_behavior/run_away_from_target.html create mode 100644 datum/ai_behavior/sleep_after_targetless_time.html create mode 100644 datum/ai_behavior/step_towards_turf.html create mode 100644 datum/ai_behavior/swirl_around_target.html create mode 100644 datum/ai_behavior/target_from_retaliate_list.html create mode 100644 datum/ai_behavior/targeted_mob_ability/brimbeam.html create mode 100644 datum/ai_behavior/targeted_mob_ability/ice_whelp.html create mode 100644 datum/ai_behavior/territorial_struggle.html create mode 100644 datum/ai_behavior/travel_towards.html create mode 100644 datum/ai_behavior/vendor_crush.html create mode 100644 datum/ai_behavior/vendor_rise_up.html create mode 100644 datum/ai_behavior/wander.html create mode 100644 datum/ai_controller.html create mode 100644 datum/ai_controller/basic_controller/artificer.html create mode 100644 datum/ai_controller/basic_controller/bot.html create mode 100644 datum/ai_controller/basic_controller/bot/cleanbot.html create mode 100644 datum/ai_controller/basic_controller/bot/dedbot.html create mode 100644 datum/ai_controller/basic_controller/bot/firebot.html create mode 100644 datum/ai_controller/basic_controller/carp.html create mode 100644 datum/ai_controller/basic_controller/juggernaut.html create mode 100644 datum/ai_controller/basic_controller/pet_cult.html create mode 100644 datum/ai_controller/basic_controller/proteon.html create mode 100644 datum/ai_controller/basic_controller/wraith.html create mode 100644 datum/ai_controller/cursed.html create mode 100644 datum/ai_controller/haunted.html create mode 100644 datum/ai_controller/hostile_friend.html create mode 100644 datum/ai_controller/mod.html create mode 100644 datum/ai_controller/monkey.html create mode 100644 datum/ai_controller/robot_customer.html create mode 100644 datum/ai_laws.html create mode 100644 datum/ai_module.html create mode 100644 datum/ai_module/malf/destructive/nuke_station.html create mode 100644 datum/ai_movement.html create mode 100644 datum/ai_movement/basic_avoidance.html create mode 100644 datum/ai_movement/dumb.html create mode 100644 datum/ai_movement/jps.html create mode 100644 datum/ai_planning_subtree.html create mode 100644 datum/ai_planning_subtree/acknowledge_chief.html create mode 100644 datum/ai_planning_subtree/attack_obstacle_in_path.html create mode 100644 datum/ai_planning_subtree/bane_hunting.html create mode 100644 datum/ai_planning_subtree/basic_melee_attack_subtree.html create mode 100644 datum/ai_planning_subtree/basic_melee_attack_subtree/mega_arachnid.html create mode 100644 datum/ai_planning_subtree/call_reinforcements.html create mode 100644 datum/ai_planning_subtree/capricious_retaliate.html create mode 100644 datum/ai_planning_subtree/climb_trees.html create mode 100644 datum/ai_planning_subtree/emagged_borgi.html create mode 100644 datum/ai_planning_subtree/enter_exit_home.html create mode 100644 datum/ai_planning_subtree/express_happiness.html create mode 100644 datum/ai_planning_subtree/find_and_hunt_target.html create mode 100644 datum/ai_planning_subtree/find_and_hunt_target/injured_mooks.html create mode 100644 datum/ai_planning_subtree/find_fingers.html create mode 100644 datum/ai_planning_subtree/find_food.html create mode 100644 datum/ai_planning_subtree/find_nearest_thing_which_attacked_me_to_flee.html create mode 100644 datum/ai_planning_subtree/find_patrol_beacon.html create mode 100644 datum/ai_planning_subtree/find_patrol_beacon/medbot.html create mode 100644 datum/ai_planning_subtree/firebot_speech.html create mode 100644 datum/ai_planning_subtree/flee_target.html create mode 100644 datum/ai_planning_subtree/generic_hunger.html create mode 100644 datum/ai_planning_subtree/generic_play_instrument.html create mode 100644 datum/ai_planning_subtree/generic_resist.html create mode 100644 datum/ai_planning_subtree/goliath_dig.html create mode 100644 datum/ai_planning_subtree/hive_communicate.html create mode 100644 datum/ai_planning_subtree/hoard_fingers.html create mode 100644 datum/ai_planning_subtree/issue_commands.html create mode 100644 datum/ai_planning_subtree/locate_dead_humans.html create mode 100644 datum/ai_planning_subtree/look_for_adult.html create mode 100644 datum/ai_planning_subtree/maintain_distance.html create mode 100644 datum/ai_planning_subtree/make_babies.html create mode 100644 datum/ai_planning_subtree/make_carp_rift.html create mode 100644 datum/ai_planning_subtree/minebot_mining.html create mode 100644 datum/ai_planning_subtree/monkey_combat.html create mode 100644 datum/ai_planning_subtree/move_to_cardinal.html create mode 100644 datum/ai_planning_subtree/perch_on_target.html create mode 100644 datum/ai_planning_subtree/possess_humans.html create mode 100644 datum/ai_planning_subtree/random_speech.html create mode 100644 datum/ai_planning_subtree/random_speech/legion.html create mode 100644 datum/ai_planning_subtree/ranged_skirmish.html create mode 100644 datum/ai_planning_subtree/reside_in_home.html create mode 100644 datum/ai_planning_subtree/setup_shop.html create mode 100644 datum/ai_planning_subtree/shapechange_ambush.html create mode 100644 datum/ai_planning_subtree/shortcut_to_target_through_carp_rift.html create mode 100644 datum/ai_planning_subtree/simple_find_target.html create mode 100644 datum/ai_planning_subtree/sleep_with_no_target.html create mode 100644 datum/ai_planning_subtree/spin_web.html create mode 100644 datum/ai_planning_subtree/target_retaliate.html create mode 100644 datum/ai_planning_subtree/targeted_mob_ability.html create mode 100644 datum/ai_planning_subtree/targeted_mob_ability/arachnid_restrain.html create mode 100644 datum/ai_planning_subtree/targeted_mob_ability/wizard_spell.html create mode 100644 datum/ai_planning_subtree/teleport_away_from_target.html create mode 100644 datum/ai_planning_subtree/territorial_struggle.html create mode 100644 datum/ai_planning_subtree/travel_to_point.html create mode 100644 datum/ai_planning_subtree/use_mob_ability.html create mode 100644 datum/ai_planning_subtree/use_mob_ability/mook_jump.html create mode 100644 datum/air_alarm_mode.html create mode 100644 datum/air_alarm_mode/cycle.html create mode 100644 datum/alarm_handler.html create mode 100644 datum/alarm_listener.html create mode 100644 datum/anomaly_placer.html create mode 100644 datum/anonymous_theme.html create mode 100644 datum/antagonist.html create mode 100644 datum/antagonist/abductee.html create mode 100644 datum/antagonist/abductor.html create mode 100644 datum/antagonist/assault_operative.html create mode 100644 datum/antagonist/battlecruiser.html create mode 100644 datum/antagonist/bitrunning_glitch.html create mode 100644 datum/antagonist/blob.html create mode 100644 datum/antagonist/blob_minion.html create mode 100644 datum/antagonist/bloodsucker.html create mode 100644 datum/antagonist/brother.html create mode 100644 datum/antagonist/changeling.html create mode 100644 datum/antagonist/clock_cultist.html create mode 100644 datum/antagonist/cop.html create mode 100644 datum/antagonist/cortical_borer.html create mode 100644 datum/antagonist/cult.html create mode 100644 datum/antagonist/cult/shade.html create mode 100644 datum/antagonist/ert.html create mode 100644 datum/antagonist/ex_ghoul.html create mode 100644 datum/antagonist/ghoul.html create mode 100644 datum/antagonist/ghoul/favorite.html create mode 100644 datum/antagonist/ghoul/revenge.html create mode 100644 datum/antagonist/heretic.html create mode 100644 datum/antagonist/heretic_monster.html create mode 100644 datum/antagonist/highlander.html create mode 100644 datum/antagonist/hypnotized.html create mode 100644 datum/antagonist/imp.html create mode 100644 datum/antagonist/lunatic.html create mode 100644 datum/antagonist/malf_ai.html create mode 100644 datum/antagonist/malf_ai/infected.html create mode 100644 datum/antagonist/ninja.html create mode 100644 datum/antagonist/nukeop.html create mode 100644 datum/antagonist/nukeop/leader.html create mode 100644 datum/antagonist/obsessed.html create mode 100644 datum/antagonist/paradox_clone.html create mode 100644 datum/antagonist/primitive_catgirl.html create mode 100644 datum/antagonist/rev.html create mode 100644 datum/antagonist/rev/head.html create mode 100644 datum/antagonist/separatist.html create mode 100644 datum/antagonist/shade_minion.html create mode 100644 datum/antagonist/space_carp.html create mode 100644 datum/antagonist/space_dragon.html create mode 100644 datum/antagonist/spider.html create mode 100644 datum/antagonist/spy.html create mode 100644 datum/antagonist/survivalist.html create mode 100644 datum/antagonist/survivalist/battle_royale.html create mode 100644 datum/antagonist/syndicate_monkey.html create mode 100644 datum/antagonist/traitor.html create mode 100644 datum/antagonist/valentine.html create mode 100644 datum/antagonist/wizard.html create mode 100644 datum/antagonist/wizard_minion.html create mode 100644 datum/antagonist/xeno/captive.html create mode 100644 datum/area_spawn.html create mode 100644 datum/area_spawn_over.html create mode 100644 datum/armament_entry.html create mode 100644 datum/armament_entry/company_import.html create mode 100644 datum/armor.html create mode 100644 datum/armour_dimensional_theme.html create mode 100644 datum/armour_dimensional_theme/dangerous/lavaland.html create mode 100644 datum/ash_ritual.html create mode 100644 datum/ash_ritual/incite_megafauna.html create mode 100644 datum/asset.html create mode 100644 datum/asset/json.html create mode 100644 datum/asset/simple.html create mode 100644 datum/asset/simple/namespaced.html create mode 100644 datum/asset/spritesheet.html create mode 100644 datum/asset/spritesheet/antagonists.html create mode 100644 datum/asset/spritesheet/crafting.html create mode 100644 datum/asset/spritesheet/decals.html create mode 100644 datum/asset/spritesheet/plumbing.html create mode 100644 datum/asset_cache_item.html create mode 100644 datum/asset_transport.html create mode 100644 datum/asset_transport/webroot.html create mode 100644 datum/atom_hud.html create mode 100644 datum/atom_hud/alternate_appearance.html create mode 100644 datum/atom_hud/alternate_appearance/basic/has_antagonist.html create mode 100644 datum/augment_item.html create mode 100644 datum/augment_item/limb.html create mode 100644 datum/autowiki.html create mode 100644 datum/avatar_help_text.html create mode 100644 datum/award.html create mode 100644 datum/award/achievement.html create mode 100644 datum/bank_account.html create mode 100644 datum/barsign.html create mode 100644 datum/basketball_controller.html create mode 100644 datum/battle_arcade_gear.html create mode 100644 datum/battle_royale_controller.html create mode 100644 datum/battle_royale_master.html create mode 100644 datum/beam.html create mode 100644 datum/biological_sample.html create mode 100644 datum/biome.html create mode 100644 datum/bitfield.html create mode 100644 datum/blobstrain.html create mode 100644 datum/bloodsucker_clan.html create mode 100644 datum/bloodsucker_clan/malkavian.html create mode 100644 datum/body_marking.html create mode 100644 datum/body_marking_set.html create mode 100644 datum/bodypart_overlay.html create mode 100644 datum/bodypart_overlay/mutant.html create mode 100644 datum/bodypart_overlay/mutant/antennae.html create mode 100644 datum/bodypart_overlay/mutant/genital.html create mode 100644 datum/bodypart_overlay/mutant/pod_hair.html create mode 100644 datum/bodypart_overlay/mutant/spines.html create mode 100644 datum/bodypart_overlay/mutant/tail_spines.html create mode 100644 datum/bodypart_overlay/mutant/wings/functional.html create mode 100644 datum/bodypart_overlay/mutant/wings/moth.html create mode 100644 datum/bodypart_overlay/simple.html create mode 100644 datum/bodypart_overlay/simple/body_marking.html create mode 100644 datum/bodypart_overlay/simple/emote.html create mode 100644 datum/bodypart_overlay/simple/golem_overlay.html create mode 100644 datum/bodypart_overlay/texture.html create mode 100644 datum/book_history_entry.html create mode 100644 datum/book_info.html create mode 100644 datum/borer_evolution.html create mode 100644 datum/borer_focus.html create mode 100644 datum/bounty.html create mode 100644 datum/bounty/item.html create mode 100644 datum/bounty/item/assistant/fish.html create mode 100644 datum/bounty/item/assistant/fish/fluid.html create mode 100644 datum/bounty/item/atmospherics.html create mode 100644 datum/bounty/item/science/genetics.html create mode 100644 datum/bounty/pill.html create mode 100644 datum/brain_trauma.html create mode 100644 datum/brain_trauma/hypnosis.html create mode 100644 datum/brain_trauma/magic/lumiphobia.html create mode 100644 datum/brain_trauma/mild/phobia.html create mode 100644 datum/brain_trauma/severe/death_consequences.html create mode 100644 datum/brain_trauma/severe/eldritch_beauty.html create mode 100644 datum/brain_trauma/severe/flesh_desire.html create mode 100644 datum/brain_trauma/severe/kleptomaniac.html create mode 100644 datum/brain_trauma/severe/split_personality.html create mode 100644 datum/brain_trauma/severe/split_personality/blackout.html create mode 100644 datum/brain_trauma/severe/weeping.html create mode 100644 datum/brain_trauma/special/beepsky.html create mode 100644 datum/brain_trauma/special/bluespace_prophet.html create mode 100644 datum/brain_trauma/special/bluespace_prophet/phobetor.html create mode 100644 datum/brain_trauma/special/burdened.html create mode 100644 datum/brain_trauma/special/existential_crisis.html create mode 100644 datum/brain_trauma/special/honorbound.html create mode 100644 datum/brain_trauma/special/imaginary_friend.html create mode 100644 datum/brain_trauma/special/obsessed.html create mode 100644 datum/brain_trauma/special/primal_instincts.html create mode 100644 datum/brain_trauma/special/ptsd.html create mode 100644 datum/brain_trauma/special/quantum_alignment.html create mode 100644 datum/brain_trauma/very_special/bimbo.html create mode 100644 datum/brain_trauma/voided.html create mode 100644 datum/buildmode.html create mode 100644 datum/buildmode_mode.html create mode 100644 datum/buildmode_mode/map_export.html create mode 100644 datum/buildmode_mode/proccall.html create mode 100644 datum/buildmode_mode/tweakcomps.html create mode 100644 datum/callback.html create mode 100644 datum/callback/verb_callback.html create mode 100644 datum/camerachunk.html create mode 100644 datum/cameranet.html create mode 100644 datum/can_pass_info.html create mode 100644 datum/candidate_poll.html create mode 100644 datum/card.html create mode 100644 datum/cardboard_cutout.html create mode 100644 datum/cargo_company.html create mode 100644 datum/carrier_room.html create mode 100644 datum/carrier_room/soulcatcher.html create mode 100644 datum/cell_tracker.html create mode 100644 datum/cellular_emporium.html create mode 100644 datum/centcom_announcer.html create mode 100644 datum/centcom_podlauncher.html create mode 100644 datum/changeling_profile.html create mode 100644 datum/chasm_detritus.html create mode 100644 datum/chasm_detritus/restricted.html create mode 100644 datum/chasm_detritus/restricted/bodies.html create mode 100644 datum/chat_payload.html create mode 100644 datum/chatmessage.html create mode 100644 datum/chemical_reaction.html create mode 100644 datum/chemical_reaction/food.html create mode 100644 datum/chemical_reaction/food/soup.html create mode 100644 datum/chemical_reaction/food/soup/custom.html create mode 100644 datum/chemical_reaction/food/soup/mysterysoup.html create mode 100644 datum/chemical_reaction/medicine/inacusiate.html create mode 100644 datum/chemical_reaction/randomized.html create mode 100644 datum/cinematic.html create mode 100644 datum/cinematic/nuke.html create mode 100644 datum/circuit_composite_template.html create mode 100644 datum/circuit_datatype.html create mode 100644 datum/circuit_datatype/composite_instance.html create mode 100644 datum/circuit_variable.html create mode 100644 datum/client_colour.html create mode 100644 datum/client_interface.html create mode 100644 datum/clockwork_research.html create mode 100644 datum/cogbar.html create mode 100644 datum/colorblind_tester.html create mode 100644 datum/comm_log_entry.html create mode 100644 datum/command_report_menu.html create mode 100644 datum/communciations_controller.html create mode 100644 datum/component.html create mode 100644 datum/component/acid.html create mode 100644 datum/component/action_item_overlay.html create mode 100644 datum/component/adjust_fishing_difficulty.html create mode 100644 datum/component/admin_popup.html create mode 100644 datum/component/aggro_emote.html create mode 100644 datum/component/ai_listen_to_weather.html create mode 100644 datum/component/ai_retaliate_advanced.html create mode 100644 datum/component/ai_target_timer.html create mode 100644 datum/component/ammo_hud.html create mode 100644 datum/component/amputating_limbs.html create mode 100644 datum/component/anti_magic.html create mode 100644 datum/component/appearance_on_aggro.html create mode 100644 datum/component/aquarium_content.html create mode 100644 datum/component/area_based_godmode.html create mode 100644 datum/component/area_sound_manager.html create mode 100644 datum/component/armament.html create mode 100644 datum/component/armament/company_imports.html create mode 100644 datum/component/armor_plate.html create mode 100644 datum/component/ash_age.html create mode 100644 datum/component/ash_cursed.html create mode 100644 datum/component/atmos_reaction_recorder.html create mode 100644 datum/component/aura_healing.html create mode 100644 datum/component/automatic_fire.html create mode 100644 datum/component/avatar_connection.html create mode 100644 datum/component/bakeable.html create mode 100644 datum/component/banned_from_space.html create mode 100644 datum/component/basic_inhands.html create mode 100644 datum/component/basic_mob_ability_telegraph.html create mode 100644 datum/component/basic_mob_attack_telegraph.html create mode 100644 datum/component/basic_ranged_ready_overlay.html create mode 100644 datum/component/bayonet_attachable.html create mode 100644 datum/component/bitrunning_points.html create mode 100644 datum/component/blob_minion.html create mode 100644 datum/component/blood_walk.html create mode 100644 datum/component/bloodysoles.html create mode 100644 datum/component/boomerang.html create mode 100644 datum/component/boss_music.html create mode 100644 datum/component/brass_spreader.html create mode 100644 datum/component/breed.html create mode 100644 datum/component/bullet_intercepting.html create mode 100644 datum/component/bumpattack.html create mode 100644 datum/component/burning.html create mode 100644 datum/component/butchering.html create mode 100644 datum/component/butchering/mecha.html create mode 100644 datum/component/butchering/wearable.html create mode 100644 datum/component/callouts.html create mode 100644 datum/component/caltrop.html create mode 100644 datum/component/carrier.html create mode 100644 datum/component/carrier/soulcatcher.html create mode 100644 datum/component/carrier/soulcatcher/attachable.html create mode 100644 datum/component/carrier_communicator.html create mode 100644 datum/component/carrier_user.html create mode 100644 datum/component/cell.html create mode 100644 datum/component/chasm.html create mode 100644 datum/component/chuunibyou.html create mode 100644 datum/component/circuit_component_add_port.html create mode 100644 datum/component/cleaner.html create mode 100644 datum/component/clickbox.html create mode 100644 datum/component/clockwork_trap.html create mode 100644 datum/component/clockwork_trap/delay.html create mode 100644 datum/component/clockwork_trap/pressure_sensor.html create mode 100644 datum/component/clothing_damaged_by_bullets.html create mode 100644 datum/component/clothing_fov_visor.html create mode 100644 datum/component/codeword_hearing.html create mode 100644 datum/component/combo_attacks.html create mode 100644 datum/component/combustible_flooder.html create mode 100644 datum/component/connect_containers.html create mode 100644 datum/component/connect_loc_behalf.html create mode 100644 datum/component/connect_mob_behalf.html create mode 100644 datum/component/connect_range.html create mode 100644 datum/component/connectable_computer.html create mode 100644 datum/component/construction/mecha.html create mode 100644 datum/component/container_item.html create mode 100644 datum/component/crank_recharge.html create mode 100644 datum/component/crate_carrier.html create mode 100644 datum/component/ctf_player.html create mode 100644 datum/component/cult_ritual_item.html create mode 100644 datum/component/curse_of_hunger.html create mode 100644 datum/component/curse_of_polymorph.html create mode 100644 datum/component/customizable_reagent_holder.html create mode 100644 datum/component/damage_aura.html create mode 100644 datum/component/damage_chain.html create mode 100644 datum/component/damage_tracker.html create mode 100644 datum/component/damage_tracker/human.html create mode 100644 datum/component/dart_insert.html create mode 100644 datum/component/deadchat_control.html create mode 100644 datum/component/deadchat_control/cardinal_movement.html create mode 100644 datum/component/deadchat_control/immovable_rod.html create mode 100644 datum/component/death_linked.html create mode 100644 datum/component/decomposition.html create mode 100644 datum/component/dejavu.html create mode 100644 datum/component/deployable.html create mode 100644 datum/component/direct_explosive_trap.html create mode 100644 datum/component/echolocation.html create mode 100644 datum/component/edible.html create mode 100644 datum/component/effect_remover.html create mode 100644 datum/component/egg_layer.html create mode 100644 datum/component/electrified_buckle.html create mode 100644 datum/component/embedded.html create mode 100644 datum/component/energized.html create mode 100644 datum/component/engraved.html create mode 100644 datum/component/evolutionary_leap.html create mode 100644 datum/component/experiment_handler.html create mode 100644 datum/component/explodable.html create mode 100644 datum/component/explode_on_attack.html create mode 100644 datum/component/face_decal.html create mode 100644 datum/component/face_decal/splat.html create mode 100644 datum/component/faction_granter.html create mode 100644 datum/component/fantasy.html create mode 100644 datum/component/fertile_egg.html create mode 100644 datum/component/fish_growth.html create mode 100644 datum/component/fishing_spot.html create mode 100644 datum/component/focused_attacker.html create mode 100644 datum/component/follow.html create mode 100644 datum/component/food_storage.html create mode 100644 datum/component/fov_handler.html create mode 100644 datum/component/gas_leaker.html create mode 100644 datum/component/germ_sensitive.html create mode 100644 datum/component/ghost_direct_control.html create mode 100644 datum/component/ghost_edible.html create mode 100644 datum/component/glass_passer.html create mode 100644 datum/component/glitch.html create mode 100644 datum/component/golem_food.html create mode 100644 datum/component/gps/item.html create mode 100644 datum/component/grillable.html create mode 100644 datum/component/ground_sinking.html create mode 100644 datum/component/growth_and_differentiation.html create mode 100644 datum/component/gun_safety.html create mode 100644 datum/component/gunpoint.html create mode 100644 datum/component/happiness.html create mode 100644 datum/component/haunted_item.html create mode 100644 datum/component/hazard_area.html create mode 100644 datum/component/healing_touch.html create mode 100644 datum/component/health_scaling_effects.html create mode 100644 datum/component/heart_eater.html create mode 100644 datum/component/heirloom.html create mode 100644 datum/component/holderloving.html create mode 100644 datum/component/ice_cream_holder.html create mode 100644 datum/component/infective.html create mode 100644 datum/component/interactable.html create mode 100644 datum/component/interaction_booby_trap.html create mode 100644 datum/component/itembound.html create mode 100644 datum/component/itempicky.html create mode 100644 datum/component/jetpack.html create mode 100644 datum/component/joint_damage.html create mode 100644 datum/component/jousting.html create mode 100644 datum/component/keep_me_secure.html create mode 100644 datum/component/kinetic_crusher.html create mode 100644 datum/component/knockoff.html create mode 100644 datum/component/leash.html create mode 100644 datum/component/life_link.html create mode 100644 datum/component/light_eater.html create mode 100644 datum/component/ling_decoy_brain.html create mode 100644 datum/component/liquids_interaction.html create mode 100644 datum/component/listen_and_repeat.html create mode 100644 datum/component/living_heart.html create mode 100644 datum/component/lock_on_cursor.html create mode 100644 datum/component/lockable_storage.html create mode 100644 datum/component/magnet.html create mode 100644 datum/component/manual_heart.html create mode 100644 datum/component/marionette.html create mode 100644 datum/component/martial_art_giver.html create mode 100644 datum/component/material_container.html create mode 100644 datum/component/medigun_relocation.html create mode 100644 datum/component/mind_linker.html create mode 100644 datum/component/mind_linker/active_linking.html create mode 100644 datum/component/mind_linker/active_linking/nif.html create mode 100644 datum/component/mindless_killer.html create mode 100644 datum/component/mob_chain.html create mode 100644 datum/component/mob_harvest.html create mode 100644 datum/component/money_sense.html create mode 100644 datum/component/morgue_radio.html create mode 100644 datum/component/multiple_lives.html create mode 100644 datum/component/mutant_hands.html create mode 100644 datum/component/mutant_infection.html create mode 100644 datum/component/netpod_healing.html create mode 100644 datum/component/nif_examine.html create mode 100644 datum/component/npc_friendly.html create mode 100644 datum/component/nuclear_bomb_operator.html create mode 100644 datum/component/obeys_commands.html create mode 100644 datum/component/object_possession.html create mode 100644 datum/component/off_duty_timer.html create mode 100644 datum/component/omen.html create mode 100644 datum/component/onwear_mood.html create mode 100644 datum/component/organ_corruption.html create mode 100644 datum/component/organ_corruption/liver.html create mode 100644 datum/component/organ_corruption/tongue.html create mode 100644 datum/component/overlay_lighting.html create mode 100644 datum/component/palette.html create mode 100644 datum/component/parriable_projectile.html create mode 100644 datum/component/payment.html create mode 100644 datum/component/pellet_cloud.html create mode 100644 datum/component/personal_crafting.html create mode 100644 datum/component/phylactery.html create mode 100644 datum/component/pinata.html create mode 100644 datum/component/pinnable_accessory.html create mode 100644 datum/component/pixel_shift.html create mode 100644 datum/component/planet_allergy.html create mode 100644 datum/component/plumbing.html create mode 100644 datum/component/plumbing/acclimator.html create mode 100644 datum/component/plumbing/filter.html create mode 100644 datum/component/plumbing/hydroponics.html create mode 100644 datum/component/plundering_attacks.html create mode 100644 datum/component/polarization_controller.html create mode 100644 datum/component/previous_body.html create mode 100644 datum/component/pricetag.html create mode 100644 datum/component/profound_fisher.html create mode 100644 datum/component/puzzgrid.html create mode 100644 datum/component/radiation_countdown.html create mode 100644 datum/component/radioactive_emitter.html create mode 100644 datum/component/radioactive_exposure.html create mode 100644 datum/component/ranged_attacks.html create mode 100644 datum/component/ranged_mob_full_auto.html create mode 100644 datum/component/reagent_clothing.html create mode 100644 datum/component/reagent_refiller.html create mode 100644 datum/component/reagent_weapon.html create mode 100644 datum/component/recharging_attacks.html create mode 100644 datum/component/redirect_attack_hand_from_turf.html create mode 100644 datum/component/reflection.html create mode 100644 datum/component/regenerative_shield.html create mode 100644 datum/component/regenerator.html create mode 100644 datum/component/religious_tool.html create mode 100644 datum/component/remote_materials.html create mode 100644 datum/component/rename.html create mode 100644 datum/component/respawner.html create mode 100644 datum/component/revenge_ability.html create mode 100644 datum/component/riding.html create mode 100644 datum/component/riding/creature.html create mode 100644 datum/component/riding/creature/human.html create mode 100644 datum/component/riding/vehicle.html create mode 100644 datum/component/riding/vehicle/scooter/skateboard.html create mode 100644 datum/component/riding/vehicle/scooter/skateboard/hover.html create mode 100644 datum/component/rot.html create mode 100644 datum/component/scope.html create mode 100644 datum/component/seclite_attachable.html create mode 100644 datum/component/sect_nullrod_bonus.html create mode 100644 datum/component/security_vision.html create mode 100644 datum/component/seethrough.html create mode 100644 datum/component/seethrough_mob.html create mode 100644 datum/component/shell.html create mode 100644 datum/component/shielded.html create mode 100644 datum/component/shovel_hands.html create mode 100644 datum/component/shrink.html create mode 100644 datum/component/shuttle_cling.html create mode 100644 datum/component/shy.html create mode 100644 datum/component/shy_in_room.html create mode 100644 datum/component/sign_language.html create mode 100644 datum/component/simple_access.html create mode 100644 datum/component/simple_bodycam.html create mode 100644 datum/component/simple_farm.html create mode 100644 datum/component/simple_rotation.html create mode 100644 datum/component/singularity.html create mode 100644 datum/component/singularity/bloodthirsty.html create mode 100644 datum/component/sisyphus_awarder.html create mode 100644 datum/component/sizzle.html create mode 100644 datum/component/sliding_under.html create mode 100644 datum/component/slime_friends.html create mode 100644 datum/component/slippery.html create mode 100644 datum/component/smooth_tunes.html create mode 100644 datum/component/soapbox.html create mode 100644 datum/component/soul_stealer.html create mode 100644 datum/component/sound_player.html create mode 100644 datum/component/space_camo.html create mode 100644 datum/component/space_dive.html create mode 100644 datum/component/space_kidnap.html create mode 100644 datum/component/spawner.html create mode 100644 datum/component/speechmod.html create mode 100644 datum/component/spin2win.html create mode 100644 datum/component/spinny.html create mode 100644 datum/component/spirit_holding.html create mode 100644 datum/component/splat.html create mode 100644 datum/component/splattercasting.html create mode 100644 datum/component/spy_uplink.html create mode 100644 datum/component/squashable.html create mode 100644 datum/component/squeak.html create mode 100644 datum/component/stationloving.html create mode 100644 datum/component/stationstuck.html create mode 100644 datum/component/status_indicator.html create mode 100644 datum/component/sticker.html create mode 100644 datum/component/storm_hating.html create mode 100644 datum/component/stove.html create mode 100644 datum/component/strong_pull.html create mode 100644 datum/component/stun_n_cuff.html create mode 100644 datum/component/style.html create mode 100644 datum/component/subtype_picker.html create mode 100644 datum/component/summoned_item.html create mode 100644 datum/component/summoning.html create mode 100644 datum/component/supermatter_crystal.html create mode 100644 datum/component/surgery_initiator.html create mode 100644 datum/component/swabbing.html create mode 100644 datum/component/tackler.html create mode 100644 datum/component/tactical.html create mode 100644 datum/component/takes_reagent_appearance.html create mode 100644 datum/component/tameable.html create mode 100644 datum/component/tattoo.html create mode 100644 datum/component/technointrovert.html create mode 100644 datum/component/technoshy.html create mode 100644 datum/component/temporary_body.html create mode 100644 datum/component/temporary_description.html create mode 100644 datum/component/temporary_glass_shatterer.html create mode 100644 datum/component/temporary_pollution_emission.html create mode 100644 datum/component/temporary_size.html create mode 100644 datum/component/tether.html create mode 100644 datum/component/thermite.html create mode 100644 datum/component/throwbonus_on_windup.html create mode 100644 datum/component/tippable.html create mode 100644 datum/component/toggle_attached_clothing.html create mode 100644 datum/component/toggle_icon.html create mode 100644 datum/component/torn_wall.html create mode 100644 datum/component/trader.html create mode 100644 datum/component/traitor_objective_limit_per_time.html create mode 100644 datum/component/traitor_objective_mind_tracker.html create mode 100644 datum/component/traitor_objective_register.html create mode 100644 datum/component/transforming.html create mode 100644 datum/component/trapdoor.html create mode 100644 datum/component/tree_climber.html create mode 100644 datum/component/two_hand_reach.html create mode 100644 datum/component/two_handed.html create mode 100644 datum/component/udder.html create mode 100644 datum/component/unobserved_actor.html create mode 100644 datum/component/uplink.html create mode 100644 datum/component/usb_port.html create mode 100644 datum/component/vacuum.html create mode 100644 datum/component/virtual_entity.html create mode 100644 datum/component/vore.html create mode 100644 datum/component/wall_mounted.html create mode 100644 datum/component/wearertargeting/punchcooldown.html create mode 100644 datum/component/wearertargeting/sitcomlaughter.html create mode 100644 datum/component/weather_announcer.html create mode 100644 datum/component/wet_floor.html create mode 100644 datum/component/wetsuit.html create mode 100644 datum/computer_file.html create mode 100644 datum/computer_file/data/ordnance.html create mode 100644 datum/computer_file/data/ordnance/explosive.html create mode 100644 datum/computer_file/data/ordnance/gaseous.html create mode 100644 datum/computer_file/data/text.html create mode 100644 datum/computer_file/picture.html create mode 100644 datum/computer_file/program.html create mode 100644 datum/computer_file/program/ai_restorer.html create mode 100644 datum/computer_file/program/alarm_monitor.html create mode 100644 datum/computer_file/program/arcade.html create mode 100644 datum/computer_file/program/atmosscan.html create mode 100644 datum/computer_file/program/borg_monitor.html create mode 100644 datum/computer_file/program/bounty_board.html create mode 100644 datum/computer_file/program/budgetorders.html create mode 100644 datum/computer_file/program/card_mod.html create mode 100644 datum/computer_file/program/chatclient.html create mode 100644 datum/computer_file/program/contract_uplink.html create mode 100644 datum/computer_file/program/coupon.html create mode 100644 datum/computer_file/program/department_order.html create mode 100644 datum/computer_file/program/emojipedia.html create mode 100644 datum/computer_file/program/mafia.html create mode 100644 datum/computer_file/program/maintenance.html create mode 100644 datum/computer_file/program/maintenance/camera.html create mode 100644 datum/computer_file/program/maintenance/cool_sword.html create mode 100644 datum/computer_file/program/maintenance/modsuit_control.html create mode 100644 datum/computer_file/program/maintenance/phys_scanner.html create mode 100644 datum/computer_file/program/maintenance/spectre_meter.html create mode 100644 datum/computer_file/program/maintenance/theme.html create mode 100644 datum/computer_file/program/messenger.html create mode 100644 datum/computer_file/program/news_archive.html create mode 100644 datum/computer_file/program/newscaster.html create mode 100644 datum/computer_file/program/nifsoft_downloader.html create mode 100644 datum/computer_file/program/nt_pay.html create mode 100644 datum/computer_file/program/ntnetdownload.html create mode 100644 datum/computer_file/program/portrait_printer.html create mode 100644 datum/computer_file/program/radar.html create mode 100644 datum/computer_file/program/radar/fission360.html create mode 100644 datum/computer_file/program/robocontrol.html create mode 100644 datum/computer_file/program/science.html create mode 100644 datum/computer_file/program/scipaper_program.html create mode 100644 datum/computer_file/program/secureye.html create mode 100644 datum/computer_file/program/shipping.html create mode 100644 datum/computer_file/program/signal_commander.html create mode 100644 datum/computer_file/program/status.html create mode 100644 datum/computer_file/program/supermatter_monitor.html create mode 100644 datum/computer_file/program/themeify.html create mode 100644 datum/computer_file/program/virtual_pet.html create mode 100644 datum/config_entry.html create mode 100644 datum/config_entry/keyed_list.html create mode 100644 datum/config_entry/str_list.html create mode 100644 datum/config_entry/string.html create mode 100644 datum/contractor_hub.html create mode 100644 datum/controller/configuration.html create mode 100644 datum/controller/global_vars.html create mode 100644 datum/controller/master.html create mode 100644 datum/controller/subsystem.html create mode 100644 datum/controller/subsystem/accessories.html create mode 100644 datum/controller/subsystem/achievements.html create mode 100644 datum/controller/subsystem/addiction.html create mode 100644 datum/controller/subsystem/admin_verbs.html create mode 100644 datum/controller/subsystem/ai_controllers.html create mode 100644 datum/controller/subsystem/air.html create mode 100644 datum/controller/subsystem/ambience.html create mode 100644 datum/controller/subsystem/area_spawn.html create mode 100644 datum/controller/subsystem/atoms.html create mode 100644 datum/controller/subsystem/automapper.html create mode 100644 datum/controller/subsystem/autotransfer.html create mode 100644 datum/controller/subsystem/ban_cache.html create mode 100644 datum/controller/subsystem/bitrunning.html create mode 100644 datum/controller/subsystem/chat.html create mode 100644 datum/controller/subsystem/circuit_component.html create mode 100644 datum/controller/subsystem/dbcore.html create mode 100644 datum/controller/subsystem/decay.html create mode 100644 datum/controller/subsystem/discord.html create mode 100644 datum/controller/subsystem/dynamic.html create mode 100644 datum/controller/subsystem/economy.html create mode 100644 datum/controller/subsystem/events.html create mode 100644 datum/controller/subsystem/explosions.html create mode 100644 datum/controller/subsystem/fluids.html create mode 100644 datum/controller/subsystem/gamemode.html create mode 100644 datum/controller/subsystem/goldeneye.html create mode 100644 datum/controller/subsystem/icon_smooth.html create mode 100644 datum/controller/subsystem/id_access.html create mode 100644 datum/controller/subsystem/ipintel.html create mode 100644 datum/controller/subsystem/job.html create mode 100644 datum/controller/subsystem/lag_switch.html create mode 100644 datum/controller/subsystem/library.html create mode 100644 datum/controller/subsystem/looting.html create mode 100644 datum/controller/subsystem/lorecaster.html create mode 100644 datum/controller/subsystem/lowpop.html create mode 100644 datum/controller/subsystem/lua.html create mode 100644 datum/controller/subsystem/machines.html create mode 100644 datum/controller/subsystem/map_vote.html create mode 100644 datum/controller/subsystem/mapping.html create mode 100644 datum/controller/subsystem/market.html create mode 100644 datum/controller/subsystem/materials.html create mode 100644 datum/controller/subsystem/maturity_guard.html create mode 100644 datum/controller/subsystem/minor_mapping.html create mode 100644 datum/controller/subsystem/mobs.html create mode 100644 datum/controller/subsystem/modular_computers.html create mode 100644 datum/controller/subsystem/movement.html create mode 100644 datum/controller/subsystem/movement/ai_movement.html create mode 100644 datum/controller/subsystem/movement/cliff_falling.html create mode 100644 datum/controller/subsystem/opposing_force.html create mode 100644 datum/controller/subsystem/ore_generation.html create mode 100644 datum/controller/subsystem/pai.html create mode 100644 datum/controller/subsystem/parallax.html create mode 100644 datum/controller/subsystem/pathfinder.html create mode 100644 datum/controller/subsystem/persistence.html create mode 100644 datum/controller/subsystem/persistent_paintings.html create mode 100644 datum/controller/subsystem/player_ranks.html create mode 100644 datum/controller/subsystem/points_of_interest.html create mode 100644 datum/controller/subsystem/polling.html create mode 100644 datum/controller/subsystem/pollution.html create mode 100644 datum/controller/subsystem/powerator_penality.html create mode 100644 datum/controller/subsystem/processing/ai_behaviors.html create mode 100644 datum/controller/subsystem/processing/dcs.html create mode 100644 datum/controller/subsystem/processing/fishing.html create mode 100644 datum/controller/subsystem/processing/idle_ai_behaviors.html create mode 100644 datum/controller/subsystem/processing/instruments.html create mode 100644 datum/controller/subsystem/processing/quirks.html create mode 100644 datum/controller/subsystem/processing/reagents.html create mode 100644 datum/controller/subsystem/processing/station.html create mode 100644 datum/controller/subsystem/processing/sunlight.html create mode 100644 datum/controller/subsystem/processing/supermatter_cascade.html create mode 100644 datum/controller/subsystem/processing/transport.html create mode 100644 datum/controller/subsystem/queuelinks.html create mode 100644 datum/controller/subsystem/radiation.html create mode 100644 datum/controller/subsystem/radioactive_nebula.html create mode 100644 datum/controller/subsystem/research.html create mode 100644 datum/controller/subsystem/restaurant.html create mode 100644 datum/controller/subsystem/security_level.html create mode 100644 datum/controller/subsystem/server_maint.html create mode 100644 datum/controller/subsystem/shuttle.html create mode 100644 datum/controller/subsystem/skills.html create mode 100644 datum/controller/subsystem/sounds.html create mode 100644 datum/controller/subsystem/spatial_grid.html create mode 100644 datum/controller/subsystem/statpanels.html create mode 100644 datum/controller/subsystem/stock_market.html create mode 100644 datum/controller/subsystem/sun.html create mode 100644 datum/controller/subsystem/tgui.html create mode 100644 datum/controller/subsystem/ticker.html create mode 100644 datum/controller/subsystem/timer.html create mode 100644 datum/controller/subsystem/title.html create mode 100644 datum/controller/subsystem/trading_card_game.html create mode 100644 datum/controller/subsystem/traitor.html create mode 100644 datum/controller/subsystem/tts.html create mode 100644 datum/controller/subsystem/tutorials.html create mode 100644 datum/controller/subsystem/unplanned_controllers.html create mode 100644 datum/controller/subsystem/verb_manager.html create mode 100644 datum/controller/subsystem/verb_manager/input.html create mode 100644 datum/controller/subsystem/vote.html create mode 100644 datum/controller/subsystem/wardrobe.html create mode 100644 datum/controller/subsystem/weather.html create mode 100644 datum/controller/subsystem/wiremod_composite.html create mode 100644 datum/coupon_code.html create mode 100644 datum/cracker_reaction.html create mode 100644 datum/crafting_bench_recipe.html create mode 100644 datum/crafting_recipe.html create mode 100644 datum/crafting_recipe/food/reaction.html create mode 100644 datum/crafting_recipe/food/reaction/soup.html create mode 100644 datum/crewmonitor.html create mode 100644 datum/crime.html create mode 100644 datum/crime/citation.html create mode 100644 datum/ctf_controller.html create mode 100644 datum/ctf_team.html create mode 100644 datum/ctf_voting_controller.html create mode 100644 datum/custom_order.html create mode 100644 datum/custom_order/icecream.html create mode 100644 datum/custom_order/moth_clothing.html create mode 100644 datum/custom_order/reagent.html create mode 100644 datum/custom_order/reagent/soup.html create mode 100644 datum/customer_data.html create mode 100644 datum/customer_data/moth.html create mode 100644 datum/data.html create mode 100644 datum/data/compressor_record.html create mode 100644 datum/data/tachyon_record.html create mode 100644 datum/data/vending_product.html create mode 100644 datum/data_rc_msg.html create mode 100644 datum/data_tablet_msg.html create mode 100644 datum/db_query.html create mode 100644 datum/deathmatch_controller.html create mode 100644 datum/deathmatch_lobby.html create mode 100644 datum/deathmatch_modifier.html create mode 100644 datum/deathmatch_modifier/drop_pod.html create mode 100644 datum/deathmatch_modifier/teleport.html create mode 100644 datum/deck_card.html create mode 100644 datum/decompose_matrix.html create mode 100644 datum/demoralise_moods.html create mode 100644 datum/design.html create mode 100644 datum/dimension_theme.html create mode 100644 datum/dimension_theme/fancy.html create mode 100644 datum/discord_embed.html create mode 100644 datum/discord_link_record.html create mode 100644 datum/disease.html create mode 100644 datum/disease/advance.html create mode 100644 datum/disease/advance/carpellosis.html create mode 100644 datum/disease/advance/gastritium.html create mode 100644 datum/disease/advance/random/event.html create mode 100644 datum/disease/parrot_possession.html create mode 100644 datum/disease/wizarditis.html create mode 100644 datum/dna.html create mode 100644 datum/dog_fashion.html create mode 100644 datum/dream.html create mode 100644 datum/drift_handler.html create mode 100644 datum/ductnet.html create mode 100644 datum/duel.html create mode 100644 datum/dynamic_ruleset.html create mode 100644 datum/dynamic_ruleset/latejoin/provocateur.html create mode 100644 datum/dynamic_ruleset/midround.html create mode 100644 datum/dynamic_ruleset/midround/from_ghosts.html create mode 100644 datum/dynamic_ruleset/midround/from_ghosts/cortical_borer.html create mode 100644 datum/dynamic_ruleset/midround/from_ghosts/paradox_clone.html create mode 100644 datum/dynamic_ruleset/midround/from_ghosts/voidwalker.html create mode 100644 datum/dynamic_ruleset/roundstart.html create mode 100644 datum/dynamic_ruleset/roundstart/assault_operatives.html create mode 100644 datum/dynamic_ruleset/roundstart/nuclear.html create mode 100644 datum/dynamic_ruleset/roundstart/revs.html create mode 100644 datum/dynamic_ruleset/roundstart/spies.html create mode 100644 datum/dynamic_snapshot.html create mode 100644 datum/dynamic_snapshot_ruleset.html create mode 100644 datum/effect_system/fluid_spread.html create mode 100644 datum/effect_system/fluid_spread/foam.html create mode 100644 datum/effect_system/fluid_spread/smoke/chem.html create mode 100644 datum/effect_system/fluid_spread/smoke/freezing.html create mode 100644 datum/effect_system/reagents_explosion.html create mode 100644 datum/eigenstate_manager.html create mode 100644 datum/eigenstate_manager/eigenstates.html create mode 100644 datum/element.html create mode 100644 datum/element/ai_control_examine.html create mode 100644 datum/element/ai_flee_while_injured.html create mode 100644 datum/element/ai_held_item.html create mode 100644 datum/element/ai_retaliate.html create mode 100644 datum/element/ai_swap_combat_mode.html create mode 100644 datum/element/ai_target_damagesource.html create mode 100644 datum/element/airbag.html create mode 100644 datum/element/atmos_requirements.html create mode 100644 datum/element/attack_equip.html create mode 100644 datum/element/attack_zone_randomiser.html create mode 100644 datum/element/backblast.html create mode 100644 datum/element/bane.html create mode 100644 datum/element/basic_eating.html create mode 100644 datum/element/basic_health_examine.html create mode 100644 datum/element/beauty.html create mode 100644 datum/element/bed_tuckable.html create mode 100644 datum/element/befriend_petting.html create mode 100644 datum/element/block_turf_fingerprints.html create mode 100644 datum/element/blocks_explosives.html create mode 100644 datum/element/body_temp_sensitive.html create mode 100644 datum/element/bombable_turf.html create mode 100644 datum/element/bonus_damage.html create mode 100644 datum/element/bump_click.html create mode 100644 datum/element/can_barricade.html create mode 100644 datum/element/can_shatter.html create mode 100644 datum/element/change_force_on_death.html create mode 100644 datum/element/chemical_transfer.html create mode 100644 datum/element/chewable.html create mode 100644 datum/element/cliff_walking.html create mode 100644 datum/element/climbable.html create mode 100644 datum/element/clockwork_description.html create mode 100644 datum/element/clockwork_pickup.html create mode 100644 datum/element/clockwork_structure_info.html create mode 100644 datum/element/connect_loc.html create mode 100644 datum/element/consumable_mob.html create mode 100644 datum/element/content_barfer.html create mode 100644 datum/element/contextual_screentip_bare_hands.html create mode 100644 datum/element/contextual_screentip_item_typechecks.html create mode 100644 datum/element/contextual_screentip_mob_typechecks.html create mode 100644 datum/element/contextual_screentip_sharpness.html create mode 100644 datum/element/contextual_screentip_tools.html create mode 100644 datum/element/corrupted_organ.html create mode 100644 datum/element/crackable.html create mode 100644 datum/element/crusher_loot.html create mode 100644 datum/element/cuffsnapping.html create mode 100644 datum/element/cult_eyes.html create mode 100644 datum/element/cult_halo.html create mode 100644 datum/element/cultist_pet.html create mode 100644 datum/element/curse_announcement.html create mode 100644 datum/element/damage_threshold.html create mode 100644 datum/element/dangerous_surgical_removal.html create mode 100644 datum/element/death_drops.html create mode 100644 datum/element/death_explosion.html create mode 100644 datum/element/death_gases.html create mode 100644 datum/element/decal.html create mode 100644 datum/element/deliver_first.html create mode 100644 datum/element/dextrous.html create mode 100644 datum/element/diggable.html create mode 100644 datum/element/disarm_attack.html create mode 100644 datum/element/door_pryer.html create mode 100644 datum/element/drag_pickup.html create mode 100644 datum/element/dryable.html create mode 100644 datum/element/dusts_on_catatonia.html create mode 100644 datum/element/effect_trail.html create mode 100644 datum/element/elevation.html create mode 100644 datum/element/elevation_core.html create mode 100644 datum/element/embed.html create mode 100644 datum/element/envenomable_casing.html create mode 100644 datum/element/eyestab.html create mode 100644 datum/element/falling_hazard.html create mode 100644 datum/element/firestacker.html create mode 100644 datum/element/floor_loving.html create mode 100644 datum/element/food_trash.html create mode 100644 datum/element/footstep.html create mode 100644 datum/element/footstep_override.html create mode 100644 datum/element/forced_gravity.html create mode 100644 datum/element/fried_item.html create mode 100644 datum/element/frozen.html create mode 100644 datum/element/give_turf_traits.html create mode 100644 datum/element/gravedigger.html create mode 100644 datum/element/gun_launches_little_guys.html create mode 100644 datum/element/hat_wearer.html create mode 100644 datum/element/heretic_focus.html create mode 100644 datum/element/high_fiver.html create mode 100644 datum/element/immerse.html create mode 100644 datum/element/item_fov.html create mode 100644 datum/element/item_scaling.html create mode 100644 datum/element/kneecapping.html create mode 100644 datum/element/knockback.html create mode 100644 datum/element/lazy_fishing_spot.html create mode 100644 datum/element/leeching_walk.html create mode 100644 datum/element/lifesteal.html create mode 100644 datum/element/light_blocking.html create mode 100644 datum/element/light_eaten.html create mode 100644 datum/element/light_eater.html create mode 100644 datum/element/liquids_height.html create mode 100644 datum/element/living_limb_initialiser.html create mode 100644 datum/element/loomable.html create mode 100644 datum/element/lube_walking.html create mode 100644 datum/element/manufacturer_examine.html create mode 100644 datum/element/microwavable.html create mode 100644 datum/element/mob_access.html create mode 100644 datum/element/mob_grabber.html create mode 100644 datum/element/mob_killed_tally.html create mode 100644 datum/element/movement_turf_changer.html create mode 100644 datum/element/movetype_handler.html create mode 100644 datum/element/nerfed_pulling.html create mode 100644 datum/element/nifsoft_hud.html create mode 100644 datum/element/noticable_organ.html create mode 100644 datum/element/obj_regen.html create mode 100644 datum/element/on_hit_effect.html create mode 100644 datum/element/organ_set_bonus.html create mode 100644 datum/element/pet_bonus.html create mode 100644 datum/element/plant_backfire.html create mode 100644 datum/element/pollution_emitter.html create mode 100644 datum/element/poster_tearer.html create mode 100644 datum/element/prevent_attacking_of_types.html create mode 100644 datum/element/processable.html create mode 100644 datum/element/projectile_shield.html create mode 100644 datum/element/quality_food_ingredient.html create mode 100644 datum/element/radioactive.html create mode 100644 datum/element/ranged_armour.html create mode 100644 datum/element/relay_attackers.html create mode 100644 datum/element/repackable.html create mode 100644 datum/element/ridable.html create mode 100644 datum/element/rsd_interface.html create mode 100644 datum/element/rust.html create mode 100644 datum/element/sedated_mob.html create mode 100644 datum/element/series.html create mode 100644 datum/element/sideway_movement.html create mode 100644 datum/element/simple_flying.html create mode 100644 datum/element/skill_reward.html create mode 100644 datum/element/slapcrafting.html create mode 100644 datum/element/soft_landing.html create mode 100644 datum/element/squish.html create mode 100644 datum/element/squish_sound.html create mode 100644 datum/element/strippable.html create mode 100644 datum/element/structure_repair.html create mode 100644 datum/element/swabable.html create mode 100644 datum/element/tenacious.html create mode 100644 datum/element/tiny_mob_hunter.html create mode 100644 datum/element/tool_flash.html create mode 100644 datum/element/tool_renaming.html create mode 100644 datum/element/toy_talk.html create mode 100644 datum/element/tumor_corruption.html create mode 100644 datum/element/turf_z_transparency.html create mode 100644 datum/element/undertile.html create mode 100644 datum/element/unfriend_attacker.html create mode 100644 datum/element/update_icon_updates_onmob.html create mode 100644 datum/element/uplink_reimburse.html create mode 100644 datum/element/venomous.html create mode 100644 datum/element/volatile_gas_storage.html create mode 100644 datum/element/wall_engraver.html create mode 100644 datum/element/wall_smasher.html create mode 100644 datum/element/wall_tearer.html create mode 100644 datum/element/wall_walker.html create mode 100644 datum/element/weapon_description.html create mode 100644 datum/element/wearable_client_colour.html create mode 100644 datum/element/wears_collar.html create mode 100644 datum/element/web_walker.html create mode 100644 datum/element/window_smashing.html create mode 100644 datum/embed_data.html create mode 100644 datum/emote.html create mode 100644 datum/emote/living/mark_turf.html create mode 100644 datum/emote/living/yawn.html create mode 100644 datum/emote/slime/mood.html create mode 100644 datum/equilibrium.html create mode 100644 datum/ert.html create mode 100644 datum/escape_menu.html create mode 100644 datum/event_admin_setup.html create mode 100644 datum/event_admin_setup/anomaly_ectoplasm.html create mode 100644 datum/event_admin_setup/carp_migration.html create mode 100644 datum/event_admin_setup/input_number.html create mode 100644 datum/event_admin_setup/listed_options.html create mode 100644 datum/event_admin_setup/listed_options/disease_outbreak_advanced/severity.html create mode 100644 datum/event_admin_setup/mass_hallucination.html create mode 100644 datum/event_admin_setup/minimum_candidate_requirement.html create mode 100644 datum/event_admin_setup/multiple_choice.html create mode 100644 datum/event_admin_setup/question.html create mode 100644 datum/event_admin_setup/set_location.html create mode 100644 datum/event_admin_setup/syndicate_cargo_pod.html create mode 100644 datum/event_admin_setup/text_input.html create mode 100644 datum/event_admin_setup/warn_admin.html create mode 100644 datum/events.html create mode 100644 datum/examine_panel.html create mode 100644 datum/excited_group.html create mode 100644 datum/exoscan.html create mode 100644 datum/experiment.html create mode 100644 datum/experiment/exploration_scan/random.html create mode 100644 datum/experiment/ordnance.html create mode 100644 datum/experiment/ordnance/explosive.html create mode 100644 datum/experiment/ordnance/gaseous.html create mode 100644 datum/experiment/physical.html create mode 100644 datum/experiment/scanning.html create mode 100644 datum/experiment/scanning/fish.html create mode 100644 datum/experiment/scanning/fish/holographic.html create mode 100644 datum/experiment/scanning/people.html create mode 100644 datum/experiment/scanning/people/novel_organs.html create mode 100644 datum/experiment/scanning/points.html create mode 100644 datum/experiment/scanning/points/machinery_pinpoint_scan.html create mode 100644 datum/experiment/scanning/points/machinery_tiered_scan.html create mode 100644 datum/experiment/scanning/random.html create mode 100644 datum/experiment/scanning/random/material.html create mode 100644 datum/experiment/scanning/random/mecha_damage_scan.html create mode 100644 datum/experiment/scanning/random/plants.html create mode 100644 datum/experiment/scanning/reagent.html create mode 100644 datum/exploration_event.html create mode 100644 datum/exploration_event/simple.html create mode 100644 datum/exploration_event/simple/resource.html create mode 100644 datum/exploration_event/simple/trader.html create mode 100644 datum/exploration_site.html create mode 100644 datum/export.html create mode 100644 datum/export/food.html create mode 100644 datum/export/large/gas_canister.html create mode 100644 datum/export/photocopy.html create mode 100644 datum/export/pirate.html create mode 100644 datum/export/pirate/ransom.html create mode 100644 datum/export_report.html create mode 100644 datum/fantasy_affix.html create mode 100644 datum/fax_panel_interface.html create mode 100644 datum/feed_channel.html create mode 100644 datum/feed_comment.html create mode 100644 datum/feed_message.html create mode 100644 datum/feed_network.html create mode 100644 datum/fish_evolution.html create mode 100644 datum/fish_evolution/dummy/two.html create mode 100644 datum/fish_movement.html create mode 100644 datum/fish_movement/accelerando.html create mode 100644 datum/fish_movement/choppy.html create mode 100644 datum/fish_movement/plunger.html create mode 100644 datum/fish_source.html create mode 100644 datum/fish_source/portal.html create mode 100644 datum/fish_source/portal/random.html create mode 100644 datum/fish_trait.html create mode 100644 datum/fish_trait/anxiety.html create mode 100644 datum/fishing_challenge.html create mode 100644 datum/fluid_group.html create mode 100644 datum/font.html create mode 100644 datum/food_prefs_menu.html create mode 100644 datum/food_processor_process.html create mode 100644 datum/foreign_calendar.html create mode 100644 datum/forensics.html create mode 100644 datum/gas.html create mode 100644 datum/gas_machine_connector.html create mode 100644 datum/gas_mixture.html create mode 100644 datum/gas_mixture/turf.html create mode 100644 datum/gas_reaction.html create mode 100644 datum/gas_reaction/bzformation.html create mode 100644 datum/gas_reaction/freonfire.html create mode 100644 datum/gas_reaction/freonformation.html create mode 100644 datum/gas_reaction/h2fire.html create mode 100644 datum/gas_reaction/halon_o2removal.html create mode 100644 datum/gas_reaction/healium_formation.html create mode 100644 datum/gas_reaction/miaster.html create mode 100644 datum/gas_reaction/nitrium_decomposition.html create mode 100644 datum/gas_reaction/nitrium_formation.html create mode 100644 datum/gas_reaction/nitrous_decomp.html create mode 100644 datum/gas_reaction/nitrousformation.html create mode 100644 datum/gas_reaction/nobliumformation.html create mode 100644 datum/gas_reaction/plasmafire.html create mode 100644 datum/gas_reaction/pluox_formation.html create mode 100644 datum/gas_reaction/proto_nitrate_bz_response.html create mode 100644 datum/gas_reaction/proto_nitrate_formation.html create mode 100644 datum/gas_reaction/proto_nitrate_hydrogen_response.html create mode 100644 datum/gas_reaction/proto_nitrate_tritium_response.html create mode 100644 datum/gas_reaction/tritfire.html create mode 100644 datum/gas_reaction/water_vapor.html create mode 100644 datum/gas_reaction/zauker_decomp.html create mode 100644 datum/gas_reaction/zauker_formation.html create mode 100644 datum/gas_recipe.html create mode 100644 datum/gateway_destination.html create mode 100644 datum/gateway_destination/gateway.html create mode 100644 datum/gateway_destination/point.html create mode 100644 datum/glass_style.html create mode 100644 datum/glass_style/has_foodtype.html create mode 100644 datum/global_funny_embedding.html create mode 100644 datum/golem_food_buff.html create mode 100644 datum/golem_food_buff/iron.html create mode 100644 datum/grand_finale.html create mode 100644 datum/grand_finale/armageddon.html create mode 100644 datum/grand_finale/clown.html create mode 100644 datum/grand_finale/immortality.html create mode 100644 datum/grand_finale/usurp.html create mode 100644 datum/grand_side_effect.html create mode 100644 datum/grand_side_effect/create_anomalies.html create mode 100644 datum/grand_side_effect/spawn_delayed_mobs.html create mode 100644 datum/grand_side_effect/spell.html create mode 100644 datum/grand_side_effect/summon_crewmate.html create mode 100644 datum/grand_side_effect/translocate.html create mode 100644 datum/greyscale_config.html create mode 100644 datum/greyscale_layer.html create mode 100644 datum/greyscale_modify_menu.html create mode 100644 datum/guardian_fluff.html create mode 100644 datum/gutlunch_inherited_stats.html create mode 100644 datum/hallucination.html create mode 100644 datum/hallucination/battle/bomb.html create mode 100644 datum/hallucination/battle/e_sword.html create mode 100644 datum/hallucination/battle/gun.html create mode 100644 datum/hallucination/battle/harm_baton.html create mode 100644 datum/hallucination/battle/stun_prod.html create mode 100644 datum/hallucination/body.html create mode 100644 datum/hallucination/body/staticguy.html create mode 100644 datum/hallucination/bolts.html create mode 100644 datum/hallucination/chat.html create mode 100644 datum/hallucination/death.html create mode 100644 datum/hallucination/death/dust.html create mode 100644 datum/hallucination/delusion.html create mode 100644 datum/hallucination/fake_alert.html create mode 100644 datum/hallucination/fake_health_doll.html create mode 100644 datum/hallucination/fake_item.html create mode 100644 datum/hallucination/fake_sound.html create mode 100644 datum/hallucination/fake_sound/normal/mech.html create mode 100644 datum/hallucination/fake_sound/weird.html create mode 100644 datum/hallucination/fire.html create mode 100644 datum/hallucination/hazard.html create mode 100644 datum/hallucination/ice.html create mode 100644 datum/hallucination/nearby_fake_item.html create mode 100644 datum/hallucination/oh_yeah.html create mode 100644 datum/hallucination/screwy_hud.html create mode 100644 datum/hallucination/station_message/heretic.html create mode 100644 datum/hallucination/xeno_attack.html create mode 100644 datum/heretic_knowledge.html create mode 100644 datum/heretic_knowledge/blade_dance.html create mode 100644 datum/heretic_knowledge/blade_upgrade.html create mode 100644 datum/heretic_knowledge/blade_upgrade/blade.html create mode 100644 datum/heretic_knowledge/blade_upgrade/cosmic.html create mode 100644 datum/heretic_knowledge/blade_upgrade/flesh.html create mode 100644 datum/heretic_knowledge/cold_snap.html create mode 100644 datum/heretic_knowledge/cosmic_grasp.html create mode 100644 datum/heretic_knowledge/curse.html create mode 100644 datum/heretic_knowledge/duel_stance.html create mode 100644 datum/heretic_knowledge/feast_of_owls.html create mode 100644 datum/heretic_knowledge/hunt_and_sacrifice.html create mode 100644 datum/heretic_knowledge/knowledge_ritual.html create mode 100644 datum/heretic_knowledge/limited_amount.html create mode 100644 datum/heretic_knowledge/limited_amount/flesh_ghoul.html create mode 100644 datum/heretic_knowledge/limited_amount/flesh_grasp.html create mode 100644 datum/heretic_knowledge/limited_amount/risen_corpse.html create mode 100644 datum/heretic_knowledge/limited_amount/starting.html create mode 100644 datum/heretic_knowledge/limited_amount/starting/base_ash.html create mode 100644 datum/heretic_knowledge/limited_amount/starting/base_blade.html create mode 100644 datum/heretic_knowledge/limited_amount/starting/base_cosmic.html create mode 100644 datum/heretic_knowledge/limited_amount/starting/base_flesh.html create mode 100644 datum/heretic_knowledge/limited_amount/starting/base_knock.html create mode 100644 datum/heretic_knowledge/limited_amount/starting/base_moon.html create mode 100644 datum/heretic_knowledge/limited_amount/starting/base_rust.html create mode 100644 datum/heretic_knowledge/limited_amount/starting/base_void.html create mode 100644 datum/heretic_knowledge/living_heart.html create mode 100644 datum/heretic_knowledge/mark.html create mode 100644 datum/heretic_knowledge/rifle_ammo.html create mode 100644 datum/heretic_knowledge/spell.html create mode 100644 datum/heretic_knowledge/summon.html create mode 100644 datum/heretic_knowledge/ultimate.html create mode 100644 datum/heretic_knowledge/ultimate/ash_final.html create mode 100644 datum/heretic_knowledge/ultimate/cosmic_final.html create mode 100644 datum/heretic_knowledge/ultimate/rust_final.html create mode 100644 datum/heretic_knowledge/ultimate/void_final.html create mode 100644 datum/hfr_fuel.html create mode 100644 datum/highlander_controller.html create mode 100644 datum/holiday.html create mode 100644 datum/holiday/nth_week.html create mode 100644 datum/holocall.html create mode 100644 datum/hook_and_move.html create mode 100644 datum/http_request.html create mode 100644 datum/hud.html create mode 100644 datum/hud/borer.html create mode 100644 datum/hud/ooze.html create mode 100644 datum/human_appearance_profile.html create mode 100644 datum/ice_cream_flavour.html create mode 100644 datum/id_trim.html create mode 100644 datum/id_trim/job.html create mode 100644 datum/id_trim/job/captain.html create mode 100644 datum/id_trim/job/security_officer.html create mode 100644 datum/idle_behavior/idle_dog.html create mode 100644 datum/idle_behavior/idle_dog/chadian.html create mode 100644 datum/idle_behavior/idle_ghost_item.html create mode 100644 datum/idle_behavior/idle_monkey.html create mode 100644 datum/idle_behavior/idle_random_walk.html create mode 100644 datum/idle_behavior/idle_random_walk/no_target.html create mode 100644 datum/idle_behavior/idle_random_walk/not_while_on_target.html create mode 100644 datum/idle_behavior/idle_random_walk/parrot.html create mode 100644 datum/idle_behavior/walk_near_target.html create mode 100644 datum/infuser_entry.html create mode 100644 datum/instability_meltdown.html create mode 100644 datum/instrument.html create mode 100644 datum/instrument_key.html create mode 100644 datum/interaction.html create mode 100644 datum/interview.html create mode 100644 datum/interview_manager.html create mode 100644 datum/ip_intel.html create mode 100644 datum/job.html create mode 100644 datum/job/nanotrasen_consultant.html create mode 100644 datum/job/security_officer.html create mode 100644 datum/job_config_type.html create mode 100644 datum/job_department.html create mode 100644 datum/jps_node.html create mode 100644 datum/json_database.html create mode 100644 datum/json_reader.html create mode 100644 datum/json_savefile.html create mode 100644 datum/keybinding/human/quick_equip_belt.html create mode 100644 datum/known_alts.html create mode 100644 datum/language.html create mode 100644 datum/language_holder.html create mode 100644 datum/language_holder_adjustor.html create mode 100644 datum/laser_weapon_mode.html create mode 100644 datum/laser_weapon_mode/disabler_machinegun.html create mode 100644 datum/laser_weapon_mode/marksman.html create mode 100644 datum/latejoin_menu.html create mode 100644 datum/lazy_template.html create mode 100644 datum/lazy_template/deathmatch.html create mode 100644 datum/lazy_template/virtual_domain.html create mode 100644 datum/lazy_template/virtual_domain/beach_bar.html create mode 100644 datum/lazy_template/virtual_domain/breeze_bay.html create mode 100644 datum/lazy_template/virtual_domain/grasslands_hunt.html create mode 100644 datum/lazy_template/virtual_domain/island_brawl.html create mode 100644 datum/light_source.html create mode 100644 datum/light_template.html create mode 100644 datum/light_template/read_light.html create mode 100644 datum/lighting_corner.html create mode 100644 datum/lighting_object.html create mode 100644 datum/liquid_group.html create mode 100644 datum/loadout_category.html create mode 100644 datum/loadout_item.html create mode 100644 datum/loadout_item/accessory.html create mode 100644 datum/log_category.html create mode 100644 datum/log_entry.html create mode 100644 datum/log_holder.html create mode 100644 datum/looping_sound.html create mode 100644 datum/looping_sound/lewd.html create mode 100644 datum/lootpanel.html create mode 100644 datum/lua_editor.html create mode 100644 datum/lua_state.html create mode 100644 datum/mafia_ability.html create mode 100644 datum/mafia_ability/attack_player.html create mode 100644 datum/mafia_ability/attack_visitors.html create mode 100644 datum/mafia_ability/changeling_kill.html create mode 100644 datum/mafia_ability/flicker_rampage.html create mode 100644 datum/mafia_ability/heal.html create mode 100644 datum/mafia_ability/investigate.html create mode 100644 datum/mafia_ability/reaveal_role.html create mode 100644 datum/mafia_ability/roleblock.html create mode 100644 datum/mafia_ability/seance.html create mode 100644 datum/mafia_ability/self_reveal.html create mode 100644 datum/mafia_ability/thoughtfeeder.html create mode 100644 datum/mafia_ability/vest.html create mode 100644 datum/mafia_ability/voting.html create mode 100644 datum/mafia_controller.html create mode 100644 datum/mafia_role.html create mode 100644 datum/mafia_role/obsessed.html create mode 100644 datum/manifest.html create mode 100644 datum/map_config.html create mode 100644 datum/map_generator.html create mode 100644 datum/map_generator/cave_generator.html create mode 100644 datum/map_generator/cave_generator/icemoon.html create mode 100644 datum/map_generator/cave_generator/lavaland.html create mode 100644 datum/map_generator/cave_generator/moonstation/cave.html create mode 100644 datum/map_generator/cave_generator/trench.html create mode 100644 datum/map_generator/jungle_generator.html create mode 100644 datum/map_generator/ocean_generator.html create mode 100644 datum/map_report.html create mode 100644 datum/map_template.html create mode 100644 datum/map_template/automap_template.html create mode 100644 datum/map_template/basketball.html create mode 100644 datum/map_template/ctf.html create mode 100644 datum/map_template/holodeck.html create mode 100644 datum/map_template/mafia.html create mode 100644 datum/map_template/ruin.html create mode 100644 datum/map_template/shuttle.html create mode 100644 datum/map_template/shuttle/emergency.html create mode 100644 datum/map_template/shuttle/emergency/arena.html create mode 100644 datum/map_template/shuttle/emergency/narnar.html create mode 100644 datum/market.html create mode 100644 datum/market_item.html create mode 100644 datum/market_item/hostage.html create mode 100644 datum/market_purchase.html create mode 100644 datum/martial_art.html create mode 100644 datum/martial_art/boxing.html create mode 100644 datum/martial_art/boxing/hunter.html create mode 100644 datum/martial_art/cqc.html create mode 100644 datum/martial_art/cqc/under_siege.html create mode 100644 datum/martial_art/the_sleeping_carp.html create mode 100644 datum/material.html create mode 100644 datum/material/alloy.html create mode 100644 datum/material/alloy/alien.html create mode 100644 datum/material/alloy/plasmaglass.html create mode 100644 datum/material/alloy/plasteel.html create mode 100644 datum/material/alloy/plastitanium.html create mode 100644 datum/material/alloy/plastitaniumglass.html create mode 100644 datum/material/alloy/titaniumglass.html create mode 100644 datum/maturity_prompt.html create mode 100644 datum/medical_note.html create mode 100644 datum/memory.html create mode 100644 datum/memory/bomb_defuse_success.html create mode 100644 datum/memory/dna_infusion.html create mode 100644 datum/memory/good_drink.html create mode 100644 datum/memory/good_food.html create mode 100644 datum/memory/high_five.html create mode 100644 datum/memory/key.html create mode 100644 datum/memory/playing_cards.html create mode 100644 datum/memory/received_medal.html create mode 100644 datum/memory/surgery.html create mode 100644 datum/memory/was_dismembered.html create mode 100644 datum/memory/witnessed_russian_roulette.html create mode 100644 datum/merger.html create mode 100644 datum/micro_organism.html create mode 100644 datum/micro_organism/cell_line.html create mode 100644 datum/mind.html create mode 100644 datum/mod_link.html create mode 100644 datum/mod_link_call.html create mode 100644 datum/mod_part.html create mode 100644 datum/mod_theme.html create mode 100644 datum/modular_mob_segment.html create mode 100644 datum/modular_persistence.html create mode 100644 datum/mold_type.html create mode 100644 datum/mold_type/disease.html create mode 100644 datum/mold_type/emp.html create mode 100644 datum/mold_type/fire.html create mode 100644 datum/mold_type/radioactive.html create mode 100644 datum/mold_type/toxic.html create mode 100644 datum/mood.html create mode 100644 datum/mood_event.html create mode 100644 datum/mood_event/area.html create mode 100644 datum/mood_event/drunk.html create mode 100644 datum/move_loop.html create mode 100644 datum/move_loop/has_target.html create mode 100644 datum/move_loop/has_target/dist_bound.html create mode 100644 datum/move_loop/has_target/jps.html create mode 100644 datum/move_loop/has_target/move_towards.html create mode 100644 datum/move_loop/smooth_move.html create mode 100644 datum/move_manager.html create mode 100644 datum/movement_detector.html create mode 100644 datum/movement_packet.html create mode 100644 datum/movespeed_modifier.html create mode 100644 datum/mutation/human.html create mode 100644 datum/mutation/human/acidflesh.html create mode 100644 datum/mutation/human/adaptation.html create mode 100644 datum/mutation/human/chameleon.html create mode 100644 datum/mutation/human/elastic_arms.html create mode 100644 datum/mutation/human/extrastun.html create mode 100644 datum/mutation/human/glow.html create mode 100644 datum/mutation/human/hulk.html create mode 100644 datum/mutation/human/hulk/superhuman.html create mode 100644 datum/mutation/human/hulk/wizardly.html create mode 100644 datum/mutation/human/laser_eyes.html create mode 100644 datum/mutation/human/radioactive.html create mode 100644 datum/mutation/human/telekinesis.html create mode 100644 datum/newspanel.html create mode 100644 datum/nifsoft.html create mode 100644 datum/nifsoft/action_granter.html create mode 100644 datum/nifsoft/hivemind.html create mode 100644 datum/nifsoft/hud.html create mode 100644 datum/nifsoft/hypno.html create mode 100644 datum/nifsoft/scryer.html create mode 100644 datum/nifsoft/soul_poem.html create mode 100644 datum/nifsoft/soulcatcher.html create mode 100644 datum/nifsoft/summoner.html create mode 100644 datum/nobody_wants_to_learn_matrix_math.html create mode 100644 datum/ntnet_conversation.html create mode 100644 datum/objective.html create mode 100644 datum/objective/bloodsucker.html create mode 100644 datum/objective/bloodsucker/conversion/department.html create mode 100644 datum/objective/door_jack.html create mode 100644 datum/objective/heretic_research.html create mode 100644 datum/objective/heretic_summon.html create mode 100644 datum/objective/hijack.html create mode 100644 datum/objective/inspect_area.html create mode 100644 datum/objective/mutiny.html create mode 100644 datum/objective/sacrifice.html create mode 100644 datum/objective/survey.html create mode 100644 datum/objective_item.html create mode 100644 datum/objective_item_handler.html create mode 100644 datum/objective_target_machine_handler.html create mode 100644 datum/opposing_force.html create mode 100644 datum/opposing_force_equipment.html create mode 100644 datum/opposing_force_equipment/language.html create mode 100644 datum/opposing_force_objective.html create mode 100644 datum/opposing_force_selected_equipment.html create mode 100644 datum/orbit_menu.html create mode 100644 datum/orderable_item.html create mode 100644 datum/ore_silo_log.html create mode 100644 datum/orion_event.html create mode 100644 datum/outfit.html create mode 100644 datum/outfit/basketball.html create mode 100644 datum/outfit/beachbum_combat.html create mode 100644 datum/outfit/consumed_clown.html create mode 100644 datum/outfit/ctf.html create mode 100644 datum/outfit/deathmatch_loadout.html create mode 100644 datum/outfit/deathmatch_loadout/heresy.html create mode 100644 datum/outfit/job/assistant/gimmick.html create mode 100644 datum/outfit/syndicate.html create mode 100644 datum/overlay_info.html create mode 100644 datum/pai_candidate.html create mode 100644 datum/painting.html create mode 100644 datum/paper_field.html create mode 100644 datum/paper_input.html create mode 100644 datum/paper_stamp.html create mode 100644 datum/parsed_map.html create mode 100644 datum/particle_editor.html create mode 100644 datum/path_map.html create mode 100644 datum/pathfind.html create mode 100644 datum/pathfind/jps.html create mode 100644 datum/pathfind/sssp.html create mode 100644 datum/pda_chat.html create mode 100644 datum/pda_message.html create mode 100644 datum/pet_command.html create mode 100644 datum/pet_command/follow.html create mode 100644 datum/pet_command/follow/bee.html create mode 100644 datum/pet_command/minebot_ability.html create mode 100644 datum/pet_command/point_targeting.html create mode 100644 datum/pet_command/point_targeting/attack.html create mode 100644 datum/pet_command/point_targeting/attack/swirl.html create mode 100644 datum/pet_command/point_targeting/fetch.html create mode 100644 datum/pet_command/point_targeting/use_ability.html create mode 100644 datum/pet_command/protect_owner.html create mode 100644 datum/pet_command/untargeted_ability.html create mode 100644 datum/physiology.html create mode 100644 datum/picture.html create mode 100644 datum/pipe_icon_generator.html create mode 100644 datum/pipeline.html create mode 100644 datum/pirate_gang.html create mode 100644 datum/plane_master_debug.html create mode 100644 datum/plane_master_group.html create mode 100644 datum/plane_master_group/hudless.html create mode 100644 datum/plant_gene.html create mode 100644 datum/plant_gene/reagent.html create mode 100644 datum/plant_gene/trait.html create mode 100644 datum/plant_gene/trait/anti_magic.html create mode 100644 datum/plant_gene/trait/attack.html create mode 100644 datum/plant_gene/trait/backfire.html create mode 100644 datum/plant_gene/trait/backfire/chili_heat.html create mode 100644 datum/plant_gene/trait/battery.html create mode 100644 datum/plant_gene/trait/brewing.html create mode 100644 datum/plant_gene/trait/eyes.html create mode 100644 datum/plant_gene/trait/gas_production.html create mode 100644 datum/plant_gene/trait/glow.html create mode 100644 datum/plant_gene/trait/juicing.html create mode 100644 datum/plant_gene/trait/maxchem.html create mode 100644 datum/plant_gene/trait/mob_transformation.html create mode 100644 datum/plant_gene/trait/modified_volume.html create mode 100644 datum/plant_gene/trait/plant_laughter.html create mode 100644 datum/plant_gene/trait/repeated_harvest.html create mode 100644 datum/plant_gene/trait/slip.html create mode 100644 datum/player_details.html create mode 100644 datum/player_rank_controller.html create mode 100644 datum/pod_style.html create mode 100644 datum/point.html create mode 100644 datum/point/vector.html create mode 100644 datum/point_of_interest.html create mode 100644 datum/point_of_interest/mob_poi.html create mode 100644 datum/poll_option.html create mode 100644 datum/poll_question.html create mode 100644 datum/pollutant.html create mode 100644 datum/pollution.html create mode 100644 datum/port.html create mode 100644 datum/port/input.html create mode 100644 datum/port/output.html create mode 100644 datum/portrait_picker.html create mode 100644 datum/powernet.html create mode 100644 datum/preference.html create mode 100644 datum/preference/choiced.html create mode 100644 datum/preference/choiced/digitigrade_legs.html create mode 100644 datum/preference/choiced/genital.html create mode 100644 datum/preference/choiced/mutant_choice.html create mode 100644 datum/preference/loadout.html create mode 100644 datum/preference/name.html create mode 100644 datum/preference/numeric.html create mode 100644 datum/preference/numeric/hair_opacity.html create mode 100644 datum/preference/text.html create mode 100644 datum/preference/text/headshot.html create mode 100644 datum/preference/toggle.html create mode 100644 datum/preference/toggle/emissive.html create mode 100644 datum/preference/toggle/eye_emissives.html create mode 100644 datum/preference_middleware.html create mode 100644 datum/preference_middleware/blooper.html create mode 100644 datum/preference_middleware/languages.html create mode 100644 datum/preference_middleware/loadout.html create mode 100644 datum/preference_middleware/tts.html create mode 100644 datum/preferences.html create mode 100644 datum/prisoner_crime.html create mode 100644 datum/progressbar.html create mode 100644 datum/promise.html create mode 100644 datum/proximity_monitor.html create mode 100644 datum/proximity_monitor/advanced.html create mode 100644 datum/proximity_monitor/advanced/ai_target_tracking.html create mode 100644 datum/proximity_monitor/advanced/demoraliser.html create mode 100644 datum/proximity_monitor/advanced/elevator_music_area.html create mode 100644 datum/proximity_monitor/advanced/gravity/warns_on_entrance.html create mode 100644 datum/proximity_monitor/advanced/quirk_posters.html create mode 100644 datum/proximity_monitor/advanced/soul_poem.html create mode 100644 datum/proximity_monitor/advanced/timestop.html create mode 100644 datum/puzzgrid.html create mode 100644 datum/qdel_item.html create mode 100644 datum/queue_link.html create mode 100644 datum/quirk.html create mode 100644 datum/quirk/all_nighter.html create mode 100644 datum/quirk/bad_touch.html create mode 100644 datum/quirk/badback.html create mode 100644 datum/quirk/blooddeficiency.html create mode 100644 datum/quirk/claustrophobia.html create mode 100644 datum/quirk/echolocation.html create mode 100644 datum/quirk/equipping.html create mode 100644 datum/quirk/equipping/entombed.html create mode 100644 datum/quirk/equipping/nerve_staple.html create mode 100644 datum/quirk/gamer.html create mode 100644 datum/quirk/heterochromatic.html create mode 100644 datum/quirk/indebted.html create mode 100644 datum/quirk/insanity.html create mode 100644 datum/quirk/item_quirk.html create mode 100644 datum/quirk/item_quirk/addict.html create mode 100644 datum/quirk/item_quirk/addict/alcoholic.html create mode 100644 datum/quirk/item_quirk/bald.html create mode 100644 datum/quirk/item_quirk/family_heirloom.html create mode 100644 datum/quirk/item_quirk/food_allergic.html create mode 100644 datum/quirk/item_quirk/settler.html create mode 100644 datum/quirk/item_quirk/spiritual.html create mode 100644 datum/quirk/no_appendix.html create mode 100644 datum/quirk/nyctophobia.html create mode 100644 datum/quirk/prosthetic_limb.html create mode 100644 datum/quirk/prosthetic_organ.html create mode 100644 datum/quirk/social_anxiety.html create mode 100644 datum/quirk/spacer_born.html create mode 100644 datum/quirk/touchy.html create mode 100644 datum/quirk_constant_data.html create mode 100644 datum/radial_menu.html create mode 100644 datum/radial_menu/persistent.html create mode 100644 datum/radial_menu_choice.html create mode 100644 datum/radio_frequency.html create mode 100644 datum/raptor_inheritance.html create mode 100644 datum/rat_fashion.html create mode 100644 datum/reagent.html create mode 100644 datum/reagent/ants.html create mode 100644 datum/reagent/blob.html create mode 100644 datum/reagent/blood/bloodsucker.html create mode 100644 datum/reagent/catalyst_agent.html create mode 100644 datum/reagent/colorful_reagent.html create mode 100644 datum/reagent/consumable.html create mode 100644 datum/reagent/consumable/ethanol.html create mode 100644 datum/reagent/consumable/ethanol/demonsblood.html create mode 100644 datum/reagent/consumable/ethanol/devilskiss.html create mode 100644 datum/reagent/consumable/frostoil.html create mode 100644 datum/reagent/consumable/nutriment/cloth_fibers.html create mode 100644 datum/reagent/consumable/rootbeer.html create mode 100644 datum/reagent/determination.html create mode 100644 datum/reagent/drug/aphrodisiac.html create mode 100644 datum/reagent/drug/aphrodisiac/camphor/pentacamphor.html create mode 100644 datum/reagent/drug/aphrodisiac/crocin.html create mode 100644 datum/reagent/drug/aphrodisiac/crocin/hexacrocin.html create mode 100644 datum/reagent/drug/aphrodisiac/dopamine.html create mode 100644 datum/reagent/drug/aphrodisiac/incubus_draft.html create mode 100644 datum/reagent/drug/aphrodisiac/succubus_milk.html create mode 100644 datum/reagent/drug/blastoff.html create mode 100644 datum/reagent/drug/demoneye.html create mode 100644 datum/reagent/drug/saturnx.html create mode 100644 datum/reagent/drug/twitch.html create mode 100644 datum/reagent/eigenstate.html create mode 100644 datum/reagent/impurity/inacusiate.html create mode 100644 datum/reagent/impurity/mannitol.html create mode 100644 datum/reagent/inverse.html create mode 100644 datum/reagent/inverse/aiuri.html create mode 100644 datum/reagent/inverse/corazargh.html create mode 100644 datum/reagent/inverse/cryostylane.html create mode 100644 datum/reagent/inverse/healing/syriniver.html create mode 100644 datum/reagent/inverse/ichiyuri.html create mode 100644 datum/reagent/inverse/oculine.html create mode 100644 datum/reagent/inverse/penthrite.html create mode 100644 datum/reagent/lube.html create mode 100644 datum/reagent/medicine/adminordrazine.html create mode 100644 datum/reagent/medicine/antihol.html create mode 100644 datum/reagent/medicine/c2/penthrite.html create mode 100644 datum/reagent/medicine/c2/seiver.html create mode 100644 datum/reagent/medicine/c2/tirimol.html create mode 100644 datum/reagent/medicine/coagulant.html create mode 100644 datum/reagent/medicine/earthsblood.html create mode 100644 datum/reagent/medicine/nanite_slurry.html create mode 100644 datum/reagent/medicine/neurine.html create mode 100644 datum/reagent/medicine/oculine.html create mode 100644 datum/reagent/medicine/strange_reagent.html create mode 100644 datum/reagent/metalgen.html create mode 100644 datum/reagent/toxin.html create mode 100644 datum/reagent/toxin/plasma.html create mode 100644 datum/reagent/toxin/venom.html create mode 100644 datum/reagent/uranium.html create mode 100644 datum/reagent/water.html create mode 100644 datum/reagent/yuck.html create mode 100644 datum/reagents.html create mode 100644 datum/reagents/plumbing.html create mode 100644 datum/reality_smash_tracker.html create mode 100644 datum/record.html create mode 100644 datum/record/crew.html create mode 100644 datum/record/locked.html create mode 100644 datum/religion_rites.html create mode 100644 datum/religion_rites/adapted_food.html create mode 100644 datum/religion_rites/blazing_star.html create mode 100644 datum/religion_rites/burning_sacrifice.html create mode 100644 datum/religion_rites/ceremonial_weapon.html create mode 100644 datum/religion_rites/deaconize.html create mode 100644 datum/religion_rites/fireproof.html create mode 100644 datum/religion_rites/nullrod_transformation.html create mode 100644 datum/religion_rites/portable_song_tuning.html create mode 100644 datum/religion_rites/ritual_totem.html create mode 100644 datum/religion_rites/song_tuner.html create mode 100644 datum/religion_rites/song_tuner/light.html create mode 100644 datum/religion_rites/song_tuner/lullaby.html create mode 100644 datum/religion_rites/sparring_contract.html create mode 100644 datum/religion_rites/summon_rules.html create mode 100644 datum/religion_sect.html create mode 100644 datum/religion_sect/honorbound.html create mode 100644 datum/religion_sect/spar.html create mode 100644 datum/replica_fabricator_output.html create mode 100644 datum/request.html create mode 100644 datum/request_manager.html create mode 100644 datum/request_message.html create mode 100644 datum/required_item.html create mode 100644 datum/riding_minigame.html create mode 100644 datum/robot_energy_storage.html create mode 100644 datum/robot_energy_storage/material.html create mode 100644 datum/round_event.html create mode 100644 datum/round_event/anomaly.html create mode 100644 datum/round_event/anomaly/anomaly_dimensional.html create mode 100644 datum/round_event/anomaly/anomaly_ectoplasm.html create mode 100644 datum/round_event/antagonist.html create mode 100644 datum/round_event/brand_intelligence.html create mode 100644 datum/round_event/carp_migration.html create mode 100644 datum/round_event/disease_outbreak.html create mode 100644 datum/round_event/disease_outbreak/advanced.html create mode 100644 datum/round_event/earthquake.html create mode 100644 datum/round_event/falsealarm.html create mode 100644 datum/round_event/ghost_role.html create mode 100644 datum/round_event/ghost_role/bitrunning_glitch.html create mode 100644 datum/round_event/ghost_role/fugitives.html create mode 100644 datum/round_event/ghost_role/sentience.html create mode 100644 datum/round_event/grey_tide.html create mode 100644 datum/round_event/heart_attack.html create mode 100644 datum/round_event/immovable_rod.html create mode 100644 datum/round_event/market_crash.html create mode 100644 datum/round_event/mass_hallucination.html create mode 100644 datum/round_event/pirates.html create mode 100644 datum/round_event/portal_storm.html create mode 100644 datum/round_event/radiation_leak.html create mode 100644 datum/round_event/sandstorm.html create mode 100644 datum/round_event/scrubber_overflow.html create mode 100644 datum/round_event/scrubber_overflow/ices.html create mode 100644 datum/round_event/shuttle_loan.html create mode 100644 datum/round_event/spacevine.html create mode 100644 datum/round_event/stray_cargo.html create mode 100644 datum/round_event/stray_cargo/syndicate.html create mode 100644 datum/round_event/stray_meteor.html create mode 100644 datum/round_event/supermatter_surge.html create mode 100644 datum/round_event/tram_malfunction.html create mode 100644 datum/round_event/vent_clog.html create mode 100644 datum/round_event/wisdomcow.html create mode 100644 datum/round_event/wizard/deprevolt.html create mode 100644 datum/round_event/wizard/madness.html create mode 100644 datum/round_event/wizard/petsplosion.html create mode 100644 datum/round_event_control.html create mode 100644 datum/round_event_control/antagonist.html create mode 100644 datum/round_event_control/bitrunning_glitch.html create mode 100644 datum/round_event_control/disease_outbreak.html create mode 100644 datum/round_event_control/grid_check.html create mode 100644 datum/round_event_control/heart_attack.html create mode 100644 datum/round_event_control/market_crash.html create mode 100644 datum/round_event_control/sandstorm.html create mode 100644 datum/round_event_control/sandstorm_classic.html create mode 100644 datum/round_event_control/shuttle_loan.html create mode 100644 datum/round_event_control/supermatter_surge.html create mode 100644 datum/round_event_control/valentines.html create mode 100644 datum/round_event_control/wizard/embedpocalypse.html create mode 100644 datum/round_event_control/wizard/petsplosion.html create mode 100644 datum/rpgloot_controller.html create mode 100644 datum/rpgtitle_controller.html create mode 100644 datum/scan_condition.html create mode 100644 datum/scanner_controller.html create mode 100644 datum/scar.html create mode 100644 datum/scheduled_event.html create mode 100644 datum/scientific_paper.html create mode 100644 datum/scientific_paper/explosive.html create mode 100644 datum/scientific_paper/gaseous.html create mode 100644 datum/scientific_partner.html create mode 100644 datum/screen_object_holder.html create mode 100644 datum/scripture.html create mode 100644 datum/scripture/create_structure.html create mode 100644 datum/scripture/slab.html create mode 100644 datum/search_object.html create mode 100644 datum/security_level.html create mode 100644 datum/security_level/amber.html create mode 100644 datum/security_level/blue.html create mode 100644 datum/security_level/delta.html create mode 100644 datum/security_level/epsilon.html create mode 100644 datum/security_level/gamma.html create mode 100644 datum/security_level/green.html create mode 100644 datum/security_level/orange.html create mode 100644 datum/security_level/red.html create mode 100644 datum/security_level/violet.html create mode 100644 datum/select_equipment.html create mode 100644 datum/shuttle_event.html create mode 100644 datum/shuttle_event/simple_spawner.html create mode 100644 datum/shuttle_event/simple_spawner/carp/friendly.html create mode 100644 datum/shuttle_event/simple_spawner/meteor/dust.html create mode 100644 datum/shuttle_event/simple_spawner/player_controlled.html create mode 100644 datum/shuttle_event/simple_spawner/player_controlled/carp.html create mode 100644 datum/shuttle_event/simple_spawner/player_controlled/human.html create mode 100644 datum/shuttle_event/simple_spawner/projectile.html create mode 100644 datum/shuttle_event/turbulence.html create mode 100644 datum/shuttle_loan_situation.html create mode 100644 datum/signal.html create mode 100644 datum/signal/subspace.html create mode 100644 datum/signal/subspace/messaging/tablet_message.html create mode 100644 datum/signal/subspace/vocal.html create mode 100644 datum/simple_research.html create mode 100644 datum/skill.html create mode 100644 datum/slime_type.html create mode 100644 datum/sm_delam.html create mode 100644 datum/sm_delam/cascade.html create mode 100644 datum/sm_gas.html create mode 100644 datum/sm_gas/bz.html create mode 100644 datum/sm_gas/carbon_dioxide.html create mode 100644 datum/sm_gas/miasma.html create mode 100644 datum/smite.html create mode 100644 datum/smite/bad_luck.html create mode 100644 datum/smite/berforate.html create mode 100644 datum/smite/curse_of_babel.html create mode 100644 datum/smite/custom_imaginary_friend.html create mode 100644 datum/smite/objectify.html create mode 100644 datum/smite/supply_pod_quick.html create mode 100644 datum/song.html create mode 100644 datum/sort_instance.html create mode 100644 datum/sortrouter_filter.html create mode 100644 datum/sortrouter_filter/is_path_specific.html create mode 100644 datum/spacevine_controller.html create mode 100644 datum/spacevine_mutation.html create mode 100644 datum/spacevine_mutation/aggressive_spread.html create mode 100644 datum/spacevine_mutation/vine_eating.html create mode 100644 datum/sparring_match.html create mode 100644 datum/spatial_grid_cell.html create mode 100644 datum/species.html create mode 100644 datum/species/akula.html create mode 100644 datum/species/dullahan.html create mode 100644 datum/species/ethereal.html create mode 100644 datum/species/human/felinid.html create mode 100644 datum/species/jelly/luminescent.html create mode 100644 datum/species/jelly/stargazer.html create mode 100644 datum/species/lizard.html create mode 100644 datum/species/lizard/silverscale.html create mode 100644 datum/species/mutant.html create mode 100644 datum/species/mutant/infectious.html create mode 100644 datum/species/mutant/infectious/fast.html create mode 100644 datum/species/mutant/infectious/slow.html create mode 100644 datum/species/plasmaman.html create mode 100644 datum/species/snail.html create mode 100644 datum/species/synthetic.html create mode 100644 datum/species/vampire.html create mode 100644 datum/species/zombie.html create mode 100644 datum/spellbook_entry.html create mode 100644 datum/spellbook_entry/item.html create mode 100644 datum/sprite_accessory.html create mode 100644 datum/sprite_accessory/bra.html create mode 100644 datum/sprite_accessory/genital.html create mode 100644 datum/sprite_accessory/gradient.html create mode 100644 datum/sprite_accessory/socks.html create mode 100644 datum/sprite_accessory/synth_chassis.html create mode 100644 datum/sprite_accessory/synth_head.html create mode 100644 datum/sprite_accessory/tails.html create mode 100644 datum/sprite_accessory/taur.html create mode 100644 datum/sprite_accessory/undershirt.html create mode 100644 datum/sprite_accessory/underwear.html create mode 100644 datum/sprite_accessory/wings.html create mode 100644 datum/spy_bounty.html create mode 100644 datum/spy_bounty/machine.html create mode 100644 datum/spy_bounty/machine/random.html create mode 100644 datum/spy_bounty/objective_item.html create mode 100644 datum/spy_bounty/some_bot.html create mode 100644 datum/spy_bounty/targets_person.html create mode 100644 datum/spy_bounty/targets_person/some_item.html create mode 100644 datum/spy_bounty_handler.html create mode 100644 datum/stack_canary.html create mode 100644 datum/stack_end_detector.html create mode 100644 datum/stack_recipe.html create mode 100644 datum/stack_recipe/radial.html create mode 100644 datum/station_alert.html create mode 100644 datum/station_goal/bluespace_cannon.html create mode 100644 datum/station_goal/station_shield.html create mode 100644 datum/station_request.html create mode 100644 datum/station_state.html create mode 100644 datum/station_trait.html create mode 100644 datum/station_trait/birthday.html create mode 100644 datum/station_trait/cybernetic_revolution.html create mode 100644 datum/station_trait/ian_adventure.html create mode 100644 datum/station_trait/job.html create mode 100644 datum/station_trait/job/bridge_assistant.html create mode 100644 datum/station_trait/job/cargorilla.html create mode 100644 datum/station_trait/job/human_ai.html create mode 100644 datum/station_trait/nebula.html create mode 100644 datum/station_trait/nebula/hostile.html create mode 100644 datum/station_trait/nebula/hostile/radiation.html create mode 100644 datum/station_trait/random_event_weight_modifier.html create mode 100644 datum/station_trait/revolutionary_trashing.html create mode 100644 datum/station_trait/skub.html create mode 100644 datum/status_effect.html create mode 100644 datum/status_effect/agent_pinpointer.html create mode 100644 datum/status_effect/ants.html create mode 100644 datum/status_effect/ashwalker_damage.html create mode 100644 datum/status_effect/basilisk_overheat.html create mode 100644 datum/status_effect/bioware.html create mode 100644 datum/status_effect/blood_regen_active.html create mode 100644 datum/status_effect/blood_thirst_satiated.html create mode 100644 datum/status_effect/bugkiller_death.html create mode 100644 datum/status_effect/choke.html create mode 100644 datum/status_effect/cloudstruck.html create mode 100644 datum/status_effect/confusion.html create mode 100644 datum/status_effect/cosmic_beam.html create mode 100644 datum/status_effect/crusher_damage.html create mode 100644 datum/status_effect/decloning.html create mode 100644 datum/status_effect/dizziness.html create mode 100644 datum/status_effect/drowsiness.html create mode 100644 datum/status_effect/drugginess.html create mode 100644 datum/status_effect/eigenstasium.html create mode 100644 datum/status_effect/eldritch.html create mode 100644 datum/status_effect/eldritch/ash.html create mode 100644 datum/status_effect/eldritch/blade.html create mode 100644 datum/status_effect/eldritch/cosmic.html create mode 100644 datum/status_effect/eldritch/moon.html create mode 100644 datum/status_effect/exercised.html create mode 100644 datum/status_effect/eye_blur.html create mode 100644 datum/status_effect/fire_blasted.html create mode 100644 datum/status_effect/fire_handler.html create mode 100644 datum/status_effect/fire_handler/fire_stacks.html create mode 100644 datum/status_effect/fire_handler/wet_stacks.html create mode 100644 datum/status_effect/fire_ring.html create mode 100644 datum/status_effect/food.html create mode 100644 datum/status_effect/food/quality_healing.html create mode 100644 datum/status_effect/frenzy.html create mode 100644 datum/status_effect/genetic_damage.html create mode 100644 datum/status_effect/ghoul.html create mode 100644 datum/status_effect/goldeneye_pinpointer.html create mode 100644 datum/status_effect/golem.html create mode 100644 datum/status_effect/golem/bananium.html create mode 100644 datum/status_effect/golem/diamond.html create mode 100644 datum/status_effect/golem/plasma.html create mode 100644 datum/status_effect/golem/titanium.html create mode 100644 datum/status_effect/grouped.html create mode 100644 datum/status_effect/grouped/cursed.html create mode 100644 datum/status_effect/grouped/nearsighted.html create mode 100644 datum/status_effect/grouped/screwy_hud.html create mode 100644 datum/status_effect/guardian_scout_mode.html create mode 100644 datum/status_effect/guardian_stealth.html create mode 100644 datum/status_effect/hallucination.html create mode 100644 datum/status_effect/hallucination/sanity.html create mode 100644 datum/status_effect/heretic_curse.html create mode 100644 datum/status_effect/ice_block_talisman.html create mode 100644 datum/status_effect/incapacitating/sleeping.html create mode 100644 datum/status_effect/incapacitating/stamcrit.html create mode 100644 datum/status_effect/incapacitating/stun/goliath_tentacled.html create mode 100644 datum/status_effect/inebriated.html create mode 100644 datum/status_effect/inebriated/drunk.html create mode 100644 datum/status_effect/inflated.html create mode 100644 datum/status_effect/interdiction.html create mode 100644 datum/status_effect/jitter.html create mode 100644 datum/status_effect/limited_buff.html create mode 100644 datum/status_effect/limited_buff/health_buff.html create mode 100644 datum/status_effect/limp.html create mode 100644 datum/status_effect/lobster_rush.html create mode 100644 datum/status_effect/mayhem.html create mode 100644 datum/status_effect/midas_blight.html create mode 100644 datum/status_effect/moon_converted.html create mode 100644 datum/status_effect/next_shove_stuns.html create mode 100644 datum/status_effect/offering.html create mode 100644 datum/status_effect/offering/no_item_received/needs_resting.html create mode 100644 datum/status_effect/organ_set_bonus.html create mode 100644 datum/status_effect/organ_set_bonus/roach.html create mode 100644 datum/status_effect/overwatch.html create mode 100644 datum/status_effect/protective_blades.html create mode 100644 datum/status_effect/protective_blades/recharging.html create mode 100644 datum/status_effect/protector_shield.html create mode 100644 datum/status_effect/psychic_projection.html create mode 100644 datum/status_effect/shadow_cloak.html create mode 100644 datum/status_effect/shadow_regeneration.html create mode 100644 datum/status_effect/shapechange_mob.html create mode 100644 datum/status_effect/shapechange_mob/from_spell.html create mode 100644 datum/status_effect/silenced.html create mode 100644 datum/status_effect/slime_food.html create mode 100644 datum/status_effect/slime_leech.html create mode 100644 datum/status_effect/slimed.html create mode 100644 datum/status_effect/song/light.html create mode 100644 datum/status_effect/space_regeneration.html create mode 100644 datum/status_effect/spacer.html create mode 100644 datum/status_effect/spacer/gravity_sickness.html create mode 100644 datum/status_effect/spacer/gravity_wellness.html create mode 100644 datum/status_effect/speech.html create mode 100644 datum/status_effect/speech/slurring.html create mode 100644 datum/status_effect/speech/stutter.html create mode 100644 datum/status_effect/speech/stutter/derpspeech.html create mode 100644 datum/status_effect/stabilized.html create mode 100644 datum/status_effect/stabilized/black.html create mode 100644 datum/status_effect/stabilized/pink.html create mode 100644 datum/status_effect/stabilized/purple.html create mode 100644 datum/status_effect/stacking.html create mode 100644 datum/status_effect/stacking/brimdust_coating.html create mode 100644 datum/status_effect/staggered.html create mode 100644 datum/status_effect/star_mark.html create mode 100644 datum/status_effect/static_vision.html create mode 100644 datum/status_effect/strandling.html create mode 100644 datum/status_effect/stun_absorption.html create mode 100644 datum/status_effect/teleport_flux.html create mode 100644 datum/status_effect/teleport_flux/perma.html create mode 100644 datum/status_effect/temporary_transformation.html create mode 100644 datum/status_effect/temporary_transformation/trans_sting.html create mode 100644 datum/status_effect/terrified.html create mode 100644 datum/status_effect/tox_vomit.html create mode 100644 datum/status_effect/unholy_determination.html create mode 100644 datum/status_effect/void_chill.html create mode 100644 datum/status_effect/void_prison.html create mode 100644 datum/status_effect/vulnerable_to_damage.html create mode 100644 datum/status_effect/wound.html create mode 100644 datum/stock_market_event.html create mode 100644 datum/stock_part.html create mode 100644 datum/storage.html create mode 100644 datum/storage/pod.html create mode 100644 datum/storage/rped.html create mode 100644 datum/storage/security.html create mode 100644 datum/storage_interface.html create mode 100644 datum/story_manager_interface.html create mode 100644 datum/storyteller.html create mode 100644 datum/strip_menu.html create mode 100644 datum/strippable_item.html create mode 100644 datum/strippable_item/hand.html create mode 100644 datum/strippable_item/mannequin_slot.html create mode 100644 datum/strippable_item/mob_item_slot.html create mode 100644 datum/strippable_item/mob_item_slot/pocket.html create mode 100644 datum/summon_things_controller.html create mode 100644 datum/summon_things_controller/item.html create mode 100644 datum/summon_things_controller/spellbook_entry.html create mode 100644 datum/supply_order.html create mode 100644 datum/supply_order/company_import.html create mode 100644 datum/supply_pack.html create mode 100644 datum/supply_pack/misc/syndicate.html create mode 100644 datum/supply_pack/misc/vanguard_surplus.html create mode 100644 datum/supply_pack/organic/pizza.html create mode 100644 datum/surgery.html create mode 100644 datum/surgery/advanced/bioware.html create mode 100644 datum/surgery/revival.html create mode 100644 datum/surgery/robot_healing.html create mode 100644 datum/surgery_step.html create mode 100644 datum/surgery_step/debride.html create mode 100644 datum/surgery_step/dress.html create mode 100644 datum/surgery_step/experimental_dissection.html create mode 100644 datum/surgery_step/filter_blood.html create mode 100644 datum/surgery_step/heal.html create mode 100644 datum/surgery_step/heal/brute.html create mode 100644 datum/surgery_step/heal/burn.html create mode 100644 datum/surgery_step/heal/combo.html create mode 100644 datum/surgery_step/manipulate_organs.html create mode 100644 datum/surgery_step/manipulate_organs/external.html create mode 100644 datum/surgery_step/manipulate_organs/internal.html create mode 100644 datum/surgery_step/revive.html create mode 100644 datum/surgery_step/robot_heal.html create mode 100644 datum/symptom.html create mode 100644 datum/symptom/beard.html create mode 100644 datum/symptom/chills.html create mode 100644 datum/symptom/choking.html create mode 100644 datum/symptom/confusion.html create mode 100644 datum/symptom/cough.html create mode 100644 datum/symptom/deafness.html create mode 100644 datum/symptom/disfiguration.html create mode 100644 datum/symptom/dizzy.html create mode 100644 datum/symptom/fever.html create mode 100644 datum/symptom/fire.html create mode 100644 datum/symptom/itching.html create mode 100644 datum/symptom/sneeze.html create mode 100644 datum/symptom/visionloss.html create mode 100644 datum/syndicate_contract.html create mode 100644 datum/targeting_strategy.html create mode 100644 datum/targeting_strategy/basic.html create mode 100644 datum/targeting_strategy/basic/holding_object.html create mode 100644 datum/targeting_strategy/basic/mook.html create mode 100644 datum/targeting_strategy/basic/mushroom.html create mode 100644 datum/targeting_strategy/basic/not_friends.html create mode 100644 datum/targeting_strategy/basic/of_size.html create mode 100644 datum/targeting_strategy/lightgeist.html create mode 100644 datum/team.html create mode 100644 datum/team/abductor_team.html create mode 100644 datum/team/ashwalkers.html create mode 100644 datum/team/assault_operatives.html create mode 100644 datum/team/battlecruiser.html create mode 100644 datum/team/brother_team.html create mode 100644 datum/team/cult.html create mode 100644 datum/team/nation.html create mode 100644 datum/team/revolution.html create mode 100644 datum/team/xeno/captive.html create mode 100644 datum/techweb.html create mode 100644 datum/techweb/autounlocking.html create mode 100644 datum/techweb_node.html create mode 100644 datum/techweb_node/consoles.html create mode 100644 datum/techweb_node/cytology.html create mode 100644 datum/techweb_node/energy_manipulation.html create mode 100644 datum/techweb_node/fusion.html create mode 100644 datum/techweb_node/hydroponics.html create mode 100644 datum/techweb_node/robotics.html create mode 100644 datum/tgs_api/v5.html create mode 100644 datum/tgs_chat_channel.html create mode 100644 datum/tgs_chat_command.html create mode 100644 datum/tgs_chat_command/validated.html create mode 100644 datum/tgs_chat_embed/field.html create mode 100644 datum/tgs_chat_embed/footer.html create mode 100644 datum/tgs_chat_embed/media.html create mode 100644 datum/tgs_chat_embed/provider/author.html create mode 100644 datum/tgs_chat_embed/structure.html create mode 100644 datum/tgs_chat_user.html create mode 100644 datum/tgs_event_handler.html create mode 100644 datum/tgs_http_handler.html create mode 100644 datum/tgs_http_result.html create mode 100644 datum/tgs_message_content.html create mode 100644 datum/tgs_revision_information.html create mode 100644 datum/tgs_revision_information/test_merge.html create mode 100644 datum/tgs_version.html create mode 100644 datum/tgui.html create mode 100644 datum/tgui_alert.html create mode 100644 datum/tgui_checkbox_input.html create mode 100644 datum/tgui_input_keycombo.html create mode 100644 datum/tgui_input_number.html create mode 100644 datum/tgui_input_text.html create mode 100644 datum/tgui_list_input.html create mode 100644 datum/tgui_panel.html create mode 100644 datum/tgui_say.html create mode 100644 datum/tgui_window.html create mode 100644 datum/thrownthing.html create mode 100644 datum/ticket_history.html create mode 100644 datum/ticket_history_holder.html create mode 100644 datum/tile_info.html create mode 100644 datum/timedevent.html create mode 100644 datum/tinker_cache_item.html create mode 100644 datum/tlv.html create mode 100644 datum/trackable.html create mode 100644 datum/trader_data.html create mode 100644 datum/traitor_objective.html create mode 100644 datum/traitor_objective/destroy_heirloom.html create mode 100644 datum/traitor_objective/destroy_heirloom/common.html create mode 100644 datum/traitor_objective/destroy_heirloom/rare.html create mode 100644 datum/traitor_objective/destroy_heirloom/uncommon.html create mode 100644 datum/traitor_objective/destroy_item.html create mode 100644 datum/traitor_objective/kill_pet.html create mode 100644 datum/traitor_objective/locate_weakpoint.html create mode 100644 datum/traitor_objective/sabotage_machinery.html create mode 100644 datum/traitor_objective/sabotage_machinery/trap.html create mode 100644 datum/traitor_objective/smuggle.html create mode 100644 datum/traitor_objective/steal_item.html create mode 100644 datum/traitor_objective/target_player.html create mode 100644 datum/traitor_objective/target_player/assassinate.html create mode 100644 datum/traitor_objective/target_player/assault.html create mode 100644 datum/traitor_objective/target_player/eyesnatching.html create mode 100644 datum/traitor_objective/target_player/infect.html create mode 100644 datum/traitor_objective/target_player/kidnapping.html create mode 100644 datum/traitor_objective/ultimate/battle_royale.html create mode 100644 datum/traitor_objective/ultimate/battlecruiser.html create mode 100644 datum/traitor_objective/ultimate/dark_matteor.html create mode 100644 datum/traitor_objective/ultimate/infect_ai.html create mode 100644 datum/traitor_objective/ultimate/romerol.html create mode 100644 datum/traitor_objective/ultimate/supermatter_cascade.html create mode 100644 datum/traitor_objective_category.html create mode 100644 datum/tram_mfg_info.html create mode 100644 datum/transport_controller/linear.html create mode 100644 datum/transport_controller/linear/tram.html create mode 100644 datum/trophy_data.html create mode 100644 datum/tts_request.html create mode 100644 datum/turf_reservation.html create mode 100644 datum/turf_reservation/transit.html create mode 100644 datum/tutorial.html create mode 100644 datum/tutorial_manager.html create mode 100644 datum/ui_state.html create mode 100644 datum/unit_test.html create mode 100644 datum/unit_test/atmospheric_gas_transfer.html create mode 100644 datum/unit_test/atmospherics_sanity.html create mode 100644 datum/unit_test/bake_a_cake.html create mode 100644 datum/unit_test/binary_insert.html create mode 100644 datum/unit_test/blindness.html create mode 100644 datum/unit_test/breath.html create mode 100644 datum/unit_test/container_resist.html create mode 100644 datum/unit_test/dcs_check_list_arguments.html create mode 100644 datum/unit_test/defined_inhand_icon_states.html create mode 100644 datum/unit_test/dismemberment.html create mode 100644 datum/unit_test/ensure_subtree_operational_datum.html create mode 100644 datum/unit_test/explosion_action.html create mode 100644 datum/unit_test/font_awesome_icons.html create mode 100644 datum/unit_test/frame_stacking.html create mode 100644 datum/unit_test/glass_style_icons.html create mode 100644 datum/unit_test/hydroponics_harvest.html create mode 100644 datum/unit_test/knockoff_component.html create mode 100644 datum/unit_test/lungs.html create mode 100644 datum/unit_test/mafia.html create mode 100644 datum/unit_test/mapload_space_verification.html create mode 100644 datum/unit_test/mecha_damage.html create mode 100644 datum/unit_test/mind_swap_spell.html create mode 100644 datum/unit_test/missing_icons.html create mode 100644 datum/unit_test/mob_damage.html create mode 100644 datum/unit_test/mob_damage/basic.html create mode 100644 datum/unit_test/modify_fantasy_variable.html create mode 100644 datum/unit_test/monkey_business.html create mode 100644 datum/unit_test/mutant_hands.html create mode 100644 datum/unit_test/mutant_hands_carry.html create mode 100644 datum/unit_test/mutant_hands_with_nodrop.html create mode 100644 datum/unit_test/nuke_cinematic.html create mode 100644 datum/unit_test/objectives_category.html create mode 100644 datum/unit_test/required_map_items.html create mode 100644 datum/unit_test/screenshot_high_luminosity_eyes.html create mode 100644 datum/unit_test/security_levels.html create mode 100644 datum/unit_test/servingtray.html create mode 100644 datum/unit_test/species_config_sanity.html create mode 100644 datum/unit_test/spell_names.html create mode 100644 datum/unit_test/stop_drop_and_roll.html create mode 100644 datum/unit_test/test_human_base.html create mode 100644 datum/unit_test/test_human_bone.html create mode 100644 datum/unit_test/transformation_sting.html create mode 100644 datum/unit_test/worn_icons.html create mode 100644 datum/uplink_category.html create mode 100644 datum/uplink_handler.html create mode 100644 datum/uplink_item.html create mode 100644 datum/uplink_item/bundles_tc/surplus.html create mode 100644 datum/uplink_item/bundles_tc/surplus/united.html create mode 100644 datum/venue.html create mode 100644 datum/view_data.html create mode 100644 datum/visual_data.html create mode 100644 datum/visual_data/mirroring.html create mode 100644 datum/visual_data/tracking.html create mode 100644 datum/voice_of_god_command.html create mode 100644 datum/voice_of_god_command/emote.html create mode 100644 datum/voice_of_god_command/who_are_you.html create mode 100644 datum/vore_pref.html create mode 100644 datum/vote.html create mode 100644 datum/vote/restart_vote.html create mode 100644 datum/voucher_set.html create mode 100644 datum/wanted_message.html create mode 100644 datum/weakref.html create mode 100644 datum/weather.html create mode 100644 datum/weather/floor_is_lava.html create mode 100644 datum/weather/rad_storm.html create mode 100644 datum/weather/rad_storm/nebula.html create mode 100644 datum/weather/sand_storm.html create mode 100644 datum/weather/snow_storm.html create mode 100644 datum/wires.html create mode 100644 datum/wires/airlock.html create mode 100644 datum/wires/collar_bomb.html create mode 100644 datum/wires/conveyor.html create mode 100644 datum/wires/vending.html create mode 100644 datum/worn_feature_offset.html create mode 100644 datum/wound.html create mode 100644 datum/wound/blunt/bone.html create mode 100644 datum/wound/blunt/bone/moderate.html create mode 100644 datum/wound/blunt/robotic.html create mode 100644 datum/wound/blunt/robotic/moderate.html create mode 100644 datum/wound/blunt/robotic/secures_internals.html create mode 100644 datum/wound/blunt/robotic/secures_internals/critical.html create mode 100644 datum/wound/burn/flesh.html create mode 100644 datum/wound/burn/robotic/overheat.html create mode 100644 datum/wound/electrical_damage.html create mode 100644 datum/wound/loss.html create mode 100644 datum/wound/muscle.html create mode 100644 datum/wound/pierce/bleed.html create mode 100644 datum/wound/slash/flesh.html create mode 100644 datum/wound_pregen_data.html create mode 100644 datum/z_pillar.html create mode 100644 dmdoc.css create mode 100644 dmdoc.js create mode 100644 git.png create mode 100644 global.html create mode 100644 image.html create mode 100644 index.html create mode 100644 interface/fonts/fonts_datum.html create mode 100644 interface/fonts/grand_9k.html create mode 100644 interface/fonts/license.html create mode 100644 interface/fonts/pixellari.html create mode 100644 interface/fonts/spess_font.html create mode 100644 interface/fonts/tiny_unicode.html create mode 100644 matrix.html create mode 100644 mob.html create mode 100644 mob/camera.html create mode 100644 mob/camera/ai_eye.html create mode 100644 mob/camera/ai_eye/remote/base_construction.html create mode 100644 mob/camera/blob.html create mode 100644 mob/camera/imaginary_friend.html create mode 100644 mob/dead.html create mode 100644 mob/dead/new_player.html create mode 100644 mob/dead/observer.html create mode 100644 mob/living.html create mode 100644 mob/living/basic.html create mode 100644 mob/living/basic/abductor.html create mode 100644 mob/living/basic/alien.html create mode 100644 mob/living/basic/alien/maid.html create mode 100644 mob/living/basic/alien/maid/barmaid.html create mode 100644 mob/living/basic/alien/queen.html create mode 100644 mob/living/basic/alien/sentinel.html create mode 100644 mob/living/basic/bear.html create mode 100644 mob/living/basic/bee.html create mode 100644 mob/living/basic/bee/timed.html create mode 100644 mob/living/basic/blob_minion.html create mode 100644 mob/living/basic/blob_minion/blobbernaut/minion.html create mode 100644 mob/living/basic/blob_minion/spore.html create mode 100644 mob/living/basic/blob_minion/spore/minion.html create mode 100644 mob/living/basic/blob_minion/zombie.html create mode 100644 mob/living/basic/bot.html create mode 100644 mob/living/basic/bot/cleanbot.html create mode 100644 mob/living/basic/bot/firebot.html create mode 100644 mob/living/basic/bot/honkbot.html create mode 100644 mob/living/basic/bot/hygienebot.html create mode 100644 mob/living/basic/bot/medbot.html create mode 100644 mob/living/basic/butterfly/lavaland/temporary.html create mode 100644 mob/living/basic/carp.html create mode 100644 mob/living/basic/carp/holographic.html create mode 100644 mob/living/basic/carp/magic.html create mode 100644 mob/living/basic/carp/mega.html create mode 100644 mob/living/basic/carp/passive.html create mode 100644 mob/living/basic/carp/pet/cayenne.html create mode 100644 mob/living/basic/cat_butcherer.html create mode 100644 mob/living/basic/chick.html create mode 100644 mob/living/basic/chicken.html create mode 100644 mob/living/basic/clockwork_marauder.html create mode 100644 mob/living/basic/clown.html create mode 100644 mob/living/basic/clown/mutant/glutton.html create mode 100644 mob/living/basic/cockroach/glockroach.html create mode 100644 mob/living/basic/cockroach/hauberoach.html create mode 100644 mob/living/basic/construct.html create mode 100644 mob/living/basic/construct/artificer.html create mode 100644 mob/living/basic/construct/harvester.html create mode 100644 mob/living/basic/construct/proteon/hostile.html create mode 100644 mob/living/basic/cortical_borer.html create mode 100644 mob/living/basic/cow.html create mode 100644 mob/living/basic/cow/wisdom.html create mode 100644 mob/living/basic/crab.html create mode 100644 mob/living/basic/cybersun_ai_core.html create mode 100644 mob/living/basic/deer.html create mode 100644 mob/living/basic/demon.html create mode 100644 mob/living/basic/demon/slaughter.html create mode 100644 mob/living/basic/demon/slaughter/laughter.html create mode 100644 mob/living/basic/drone.html create mode 100644 mob/living/basic/drone/syndrone.html create mode 100644 mob/living/basic/eyeball.html create mode 100644 mob/living/basic/faithless.html create mode 100644 mob/living/basic/frog.html create mode 100644 mob/living/basic/frog/frog_suicide.html create mode 100644 mob/living/basic/garden_gnome.html create mode 100644 mob/living/basic/ghost.html create mode 100644 mob/living/basic/goat.html create mode 100644 mob/living/basic/gorilla.html create mode 100644 mob/living/basic/guardian.html create mode 100644 mob/living/basic/guardian/assassin.html create mode 100644 mob/living/basic/guardian/dextrous.html create mode 100644 mob/living/basic/guardian/explosive.html create mode 100644 mob/living/basic/guardian/gaseous.html create mode 100644 mob/living/basic/guardian/gravitokinetic.html create mode 100644 mob/living/basic/guardian/lightning.html create mode 100644 mob/living/basic/guardian/protector.html create mode 100644 mob/living/basic/guardian/standard.html create mode 100644 mob/living/basic/guardian/support.html create mode 100644 mob/living/basic/headslug.html create mode 100644 mob/living/basic/heretic_summon/armsy.html create mode 100644 mob/living/basic/heretic_summon/maid_in_the_mirror.html create mode 100644 mob/living/basic/heretic_summon/raw_prophet.html create mode 100644 mob/living/basic/heretic_summon/stalker.html create mode 100644 mob/living/basic/hivebot.html create mode 100644 mob/living/basic/hivebot/mechanic.html create mode 100644 mob/living/basic/leaper.html create mode 100644 mob/living/basic/legion_brood.html create mode 100644 mob/living/basic/lightgeist.html create mode 100644 mob/living/basic/living_limb_flesh.html create mode 100644 mob/living/basic/lizard.html create mode 100644 mob/living/basic/meteor_heart.html create mode 100644 mob/living/basic/meteor_heart/opens_puzzle_door.html create mode 100644 mob/living/basic/migo.html create mode 100644 mob/living/basic/mining.html create mode 100644 mob/living/basic/mining/basilisk.html create mode 100644 mob/living/basic/mining/bileworm.html create mode 100644 mob/living/basic/mining/brimdemon.html create mode 100644 mob/living/basic/mining/demon_afterimage.html create mode 100644 mob/living/basic/mining/goldgrub.html create mode 100644 mob/living/basic/mining/goliath.html create mode 100644 mob/living/basic/mining/goliath/ancient/immortal.html create mode 100644 mob/living/basic/mining/gutlunch.html create mode 100644 mob/living/basic/mining/gutlunch/grub.html create mode 100644 mob/living/basic/mining/gutlunch/milk.html create mode 100644 mob/living/basic/mining/hivelord.html create mode 100644 mob/living/basic/mining/ice_whelp.html create mode 100644 mob/living/basic/mining/legion.html create mode 100644 mob/living/basic/mining/legion/large.html create mode 100644 mob/living/basic/mining/lobstrosity.html create mode 100644 mob/living/basic/mining/lobstrosity/juvenile.html create mode 100644 mob/living/basic/mining/mook.html create mode 100644 mob/living/basic/mining/mook/worker/bard.html create mode 100644 mob/living/basic/mining/mook/worker/tribal_chief.html create mode 100644 mob/living/basic/mining/watcher.html create mode 100644 mob/living/basic/mining_drone.html create mode 100644 mob/living/basic/mold/centaur.html create mode 100644 mob/living/basic/mold/diseased_rat.html create mode 100644 mob/living/basic/mold/electric_mosquito.html create mode 100644 mob/living/basic/mold/oil_shambler.html create mode 100644 mob/living/basic/morph.html create mode 100644 mob/living/basic/mouse.html create mode 100644 mob/living/basic/mushroom.html create mode 100644 mob/living/basic/node_drone.html create mode 100644 mob/living/basic/orbie.html create mode 100644 mob/living/basic/paper_wizard.html create mode 100644 mob/living/basic/parrot.html create mode 100644 mob/living/basic/parrot/poly.html create mode 100644 mob/living/basic/pet.html create mode 100644 mob/living/basic/pet/bumbles.html create mode 100644 mob/living/basic/pet/cat.html create mode 100644 mob/living/basic/pet/cat/runtime.html create mode 100644 mob/living/basic/pet/chinchilla.html create mode 100644 mob/living/basic/pet/dog.html create mode 100644 mob/living/basic/pet/dog/corgi.html create mode 100644 mob/living/basic/pet/dog/corgi/borgi.html create mode 100644 mob/living/basic/pet/dog/corgi/ian.html create mode 100644 mob/living/basic/pet/dog/corgi/narsie.html create mode 100644 mob/living/basic/pet/dog/markus.html create mode 100644 mob/living/basic/pet/gondola.html create mode 100644 mob/living/basic/pet/gondola/gondolapod.html create mode 100644 mob/living/basic/pet/penguin.html create mode 100644 mob/living/basic/pet/penguin/baby.html create mode 100644 mob/living/basic/pet/poppy.html create mode 100644 mob/living/basic/pig.html create mode 100644 mob/living/basic/pony.html create mode 100644 mob/living/basic/rabbit.html create mode 100644 mob/living/basic/rabbit/easter.html create mode 100644 mob/living/basic/raptor.html create mode 100644 mob/living/basic/raptor/baby_raptor.html create mode 100644 mob/living/basic/regal_rat.html create mode 100644 mob/living/basic/revenant.html create mode 100644 mob/living/basic/revolutionary.html create mode 100644 mob/living/basic/robot_customer.html create mode 100644 mob/living/basic/seedling.html create mode 100644 mob/living/basic/shade.html create mode 100644 mob/living/basic/sheep.html create mode 100644 mob/living/basic/skeleton.html create mode 100644 mob/living/basic/slime.html create mode 100644 mob/living/basic/snake.html create mode 100644 mob/living/basic/space_dragon.html create mode 100644 mob/living/basic/spider.html create mode 100644 mob/living/basic/spider/giant.html create mode 100644 mob/living/basic/spider/giant/ambush.html create mode 100644 mob/living/basic/spider/giant/breacher.html create mode 100644 mob/living/basic/spider/giant/guard.html create mode 100644 mob/living/basic/spider/giant/hunter.html create mode 100644 mob/living/basic/spider/giant/hunter/ice.html create mode 100644 mob/living/basic/spider/giant/hunter/scrawny.html create mode 100644 mob/living/basic/spider/giant/ice.html create mode 100644 mob/living/basic/spider/giant/midwife.html create mode 100644 mob/living/basic/spider/giant/nurse.html create mode 100644 mob/living/basic/spider/giant/nurse/ice.html create mode 100644 mob/living/basic/spider/giant/nurse/scrawny.html create mode 100644 mob/living/basic/spider/giant/scout.html create mode 100644 mob/living/basic/spider/giant/sgt_araneus.html create mode 100644 mob/living/basic/spider/giant/tangle.html create mode 100644 mob/living/basic/spider/giant/tank.html create mode 100644 mob/living/basic/spider/giant/tarantula.html create mode 100644 mob/living/basic/spider/giant/tarantula/scrawny.html create mode 100644 mob/living/basic/spider/giant/viper.html create mode 100644 mob/living/basic/spider/giant/viper/wizard.html create mode 100644 mob/living/basic/spider/growing.html create mode 100644 mob/living/basic/spider/growing/young/nurse.html create mode 100644 mob/living/basic/spider/growing/young/tangle.html create mode 100644 mob/living/basic/spider/growing/young/tank.html create mode 100644 mob/living/basic/spider/maintenance.html create mode 100644 mob/living/basic/statue/mannequin.html create mode 100644 mob/living/basic/supermatter_spider.html create mode 100644 mob/living/basic/trader.html create mode 100644 mob/living/basic/tree.html create mode 100644 mob/living/basic/trooper.html create mode 100644 mob/living/basic/trooper/abductor/ranged.html create mode 100644 mob/living/basic/trooper/cin_soldier/ranged.html create mode 100644 mob/living/basic/trooper/nanotrasen/ranged.html create mode 100644 mob/living/basic/trooper/pirate.html create mode 100644 mob/living/basic/trooper/pirate/ranged.html create mode 100644 mob/living/basic/trooper/syndicate/ranged.html create mode 100644 mob/living/basic/venus_human_trap.html create mode 100644 mob/living/basic/wizard.html create mode 100644 mob/living/basic/wumborian_fugu.html create mode 100644 mob/living/brain.html create mode 100644 mob/living/carbon.html create mode 100644 mob/living/carbon/alien.html create mode 100644 mob/living/carbon/alien/adult.html create mode 100644 mob/living/carbon/alien/adult/hunter.html create mode 100644 mob/living/carbon/alien/adult/skyrat.html create mode 100644 mob/living/carbon/alien/adult/skyrat/runner.html create mode 100644 mob/living/carbon/alien/larva.html create mode 100644 mob/living/carbon/human.html create mode 100644 mob/living/carbon/human/dummy.html create mode 100644 mob/living/carbon/human/species/monkey/angry.html create mode 100644 mob/living/carbon/human/species/monkey/punpun.html create mode 100644 mob/living/silicon.html create mode 100644 mob/living/silicon/ai.html create mode 100644 mob/living/silicon/pai.html create mode 100644 mob/living/silicon/robot.html create mode 100644 mob/living/simple_animal.html create mode 100644 mob/living/simple_animal/bot.html create mode 100644 mob/living/simple_animal/bot/floorbot.html create mode 100644 mob/living/simple_animal/bot/mulebot.html create mode 100644 mob/living/simple_animal/bot/secbot.html create mode 100644 mob/living/simple_animal/hostile.html create mode 100644 mob/living/simple_animal/hostile/asteroid.html create mode 100644 mob/living/simple_animal/hostile/asteroid/elite/broodmother.html create mode 100644 mob/living/simple_animal/hostile/asteroid/elite/herald.html create mode 100644 mob/living/simple_animal/hostile/asteroid/elite/legionnaire.html create mode 100644 mob/living/simple_animal/hostile/asteroid/elite/pandora.html create mode 100644 mob/living/simple_animal/hostile/asteroid/polarbear.html create mode 100644 mob/living/simple_animal/hostile/blackmesa/xen.html create mode 100644 mob/living/simple_animal/hostile/blackmesa/xen/headcrab.html create mode 100644 mob/living/simple_animal/hostile/blackmesa/xen/headcrab_zombie/gordon_freeman.html create mode 100644 mob/living/simple_animal/hostile/blackmesa/xen/houndeye.html create mode 100644 mob/living/simple_animal/hostile/blackmesa/xen/vortigaunt.html create mode 100644 mob/living/simple_animal/hostile/illusion.html create mode 100644 mob/living/simple_animal/hostile/megafauna.html create mode 100644 mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.html create mode 100644 mob/living/simple_animal/hostile/megafauna/bubblegum.html create mode 100644 mob/living/simple_animal/hostile/megafauna/colossus.html create mode 100644 mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.html create mode 100644 mob/living/simple_animal/hostile/megafauna/dragon.html create mode 100644 mob/living/simple_animal/hostile/megafauna/gladiator.html create mode 100644 mob/living/simple_animal/hostile/megafauna/hierophant.html create mode 100644 mob/living/simple_animal/hostile/megafauna/legion.html create mode 100644 mob/living/simple_animal/hostile/megafauna/wendigo.html create mode 100644 mob/living/simple_animal/hostile/mimic.html create mode 100644 mob/living/simple_animal/hostile/mimic/xenobio.html create mode 100644 mob/living/simple_animal/hostile/ooze.html create mode 100644 mob/living/simple_animal/hostile/ooze/gelatinous.html create mode 100644 mob/living/simple_animal/hostile/ooze/grapes.html create mode 100644 mob/living/simple_animal/hostile/retaliate.html create mode 100644 mob/living/simple_animal/hostile/retaliate/goose/vomit.html create mode 100644 mob/living/simple_animal/hostile/zombie.html create mode 100644 mob/living/simple_animal/soulscythe.html create mode 100644 mob/living/soulcatcher_soul.html create mode 100644 mob/oranges_ear.html create mode 100644 mob/proccall_handler.html create mode 100644 modular_skyrat.html create mode 100644 modular_skyrat/master_files.html create mode 100644 modular_skyrat/master_files/code/_globalvars/configuration.html create mode 100644 modular_skyrat/master_files/code/_globalvars/lists/chat.html create mode 100644 modular_skyrat/master_files/code/_globalvars/text.html create mode 100644 modular_skyrat/master_files/code/_onclick/hud.html create mode 100644 modular_skyrat/master_files/code/controllers/configuration/entries/skyrat_config_entries.html create mode 100644 modular_skyrat/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.html create mode 100644 modular_skyrat/master_files/code/datums/components/damage_tracker.html create mode 100644 modular_skyrat/master_files/code/datums/id_trim/syndicate.html create mode 100644 modular_skyrat/master_files/code/game/objects/effects/decals/turfdecals/tilecoloring.html create mode 100644 modular_skyrat/master_files/code/game/objects/items/stacks/sheets/sheet_types.html create mode 100644 modular_skyrat/master_files/code/modules/antagonists/traitor/objectives/smuggling.html create mode 100644 modular_skyrat/master_files/code/modules/client/preferences/_preference.html create mode 100644 modular_skyrat/master_files/code/modules/client/preferences/erp_preferences.html create mode 100644 modular_skyrat/master_files/code/modules/client/preferences/middleware/languages.html create mode 100644 modular_skyrat/master_files/code/modules/client/preferences/mutant_parts.html create mode 100644 modular_skyrat/master_files/code/modules/client/preferences/species_features/digitigrade_legs.html create mode 100644 modular_skyrat/master_files/code/modules/client/preferences/voice.html create mode 100644 modular_skyrat/master_files/code/modules/client/preferences_savefile.html create mode 100644 modular_skyrat/master_files/code/modules/clothing/clothing.html create mode 100644 modular_skyrat/master_files/code/modules/clothing/clothing_variation_overrides/under.html create mode 100644 modular_skyrat/master_files/code/modules/clothing/head/monkey_magnification_helmet.html create mode 100644 modular_skyrat/master_files/code/modules/clothing/suits/skinsuits.html create mode 100644 modular_skyrat/master_files/code/modules/clothing/towels.html create mode 100644 modular_skyrat/master_files/code/modules/clothing/under/akula_jobs.html create mode 100644 modular_skyrat/master_files/code/modules/jobs/job_types/_job_attire.html create mode 100644 modular_skyrat/master_files/code/modules/mob/living/blood.html create mode 100644 modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/bumbles.html create mode 100644 modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/dogs.html create mode 100644 modular_skyrat/master_files/code/modules/religion/religious_sects.html create mode 100644 modular_skyrat/master_files/code/modules/wiremod/components/bci/reagent_injector_bluespace.html create mode 100644 modular_skyrat/module_template.html create mode 100644 modular_skyrat/modules/QOL.html create mode 100644 modular_skyrat/modules/SiliconQoL.html create mode 100644 modular_skyrat/modules/additional_circuit.html create mode 100644 modular_skyrat/modules/additional_circuit/code/cell_reader.html create mode 100644 modular_skyrat/modules/additional_circuit/code/interact_item.html create mode 100644 modular_skyrat/modules/additional_circuit/code/mining_circuit.html create mode 100644 modular_skyrat/modules/additional_circuit/code/target_scanner.html create mode 100644 modular_skyrat/modules/admin.html create mode 100644 modular_skyrat/modules/admin/code/localsound.html create mode 100644 modular_skyrat/modules/admin/code/player_ranks.html create mode 100644 modular_skyrat/modules/advanced_engineering.html create mode 100644 modular_skyrat/modules/aesthetics.html create mode 100644 modular_skyrat/modules/aesthetics/flag/code/signs_flags.html create mode 100644 modular_skyrat/modules/aesthetics/keyed_doors/code/keyed_door.html create mode 100644 modular_skyrat/modules/aesthetics/lights/code/lighting.html create mode 100644 modular_skyrat/modules/aesthetics/vending/access_vending.html create mode 100644 modular_skyrat/modules/airlock_override.html create mode 100644 modular_skyrat/modules/akula/code/wetsuit.html create mode 100644 modular_skyrat/modules/alcohol_processing.html create mode 100644 modular_skyrat/modules/alerts.html create mode 100644 modular_skyrat/modules/alerts/code/alert_sound_to_playing.html create mode 100644 modular_skyrat/modules/alerts/code/security_level_datums.html create mode 100644 modular_skyrat/modules/alt_vox/credits.html create mode 100644 modular_skyrat/modules/alternative_job_titles.html create mode 100644 modular_skyrat/modules/apc_arcing/code/apc.html create mode 100644 modular_skyrat/modules/armaments/code/armament_component.html create mode 100644 modular_skyrat/modules/armaments/code/armament_entries.html create mode 100644 modular_skyrat/modules/armaments/code/armament_station.html create mode 100644 modular_skyrat/modules/ashwalkers.html create mode 100644 modular_skyrat/modules/ashwalkers/code/species/Ashwalkers.html create mode 100644 modular_skyrat/modules/assault_operatives/code/assault_operatives.html create mode 100644 modular_skyrat/modules/assault_operatives/code/goldeneye.html create mode 100644 modular_skyrat/modules/assault_operatives/code/interrogator.html create mode 100644 modular_skyrat/modules/automapper.html create mode 100644 modular_skyrat/modules/automapper/code/area_spawn_subsystem.html create mode 100644 modular_skyrat/modules/automapper/code/automapper_subsystem.html create mode 100644 modular_skyrat/modules/autotransfer.html create mode 100644 modular_skyrat/modules/autotransfer/code/autotransfer_config.html create mode 100644 modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/abductor_ai.html create mode 100644 modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/fluff.html create mode 100644 modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/gear.html create mode 100644 modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/mob.html create mode 100644 modular_skyrat/modules/barsigns.html create mode 100644 modular_skyrat/modules/better_vox.html create mode 100644 modular_skyrat/modules/bitrunning/code/virtual_domains/ancient_milsim/virtual_domain.html create mode 100644 modular_skyrat/modules/black_mesa/code/fluff.html create mode 100644 modular_skyrat/modules/black_mesa/code/follow_component.html create mode 100644 modular_skyrat/modules/black_mesa/code/mobs/gordon_freeman.html create mode 100644 modular_skyrat/modules/black_mesa/code/objects.html create mode 100644 modular_skyrat/modules/black_mesa/code/rationpacks.html create mode 100644 modular_skyrat/modules/blastwave_outfits.html create mode 100644 modular_skyrat/modules/blueshield.html create mode 100644 modular_skyrat/modules/bluespace_miner.html create mode 100644 modular_skyrat/modules/bodyparts/code/_mutant_bodyparts.html create mode 100644 modular_skyrat/modules/bongs/code/bong.html create mode 100644 modular_skyrat/modules/borg_buffs.html create mode 100644 modular_skyrat/modules/borgs.html create mode 100644 modular_skyrat/modules/borgs/code/robot_items.html create mode 100644 modular_skyrat/modules/borgs/code/robot_upgrade.html create mode 100644 modular_skyrat/modules/borgs/icons.html create mode 100644 modular_skyrat/modules/bsa_overhaul/code/bsa_cannon.html create mode 100644 modular_skyrat/modules/bsa_overhaul/code/bsa_computer.html create mode 100644 modular_skyrat/modules/bsa_overhaul/code/station_goal.html create mode 100644 modular_skyrat/modules/cargo.html create mode 100644 modular_skyrat/modules/cargo/code/export_gate.html create mode 100644 modular_skyrat/modules/cargo/code/packs.html create mode 100644 modular_skyrat/modules/cargo_teleporter.html create mode 100644 modular_skyrat/modules/carriers/code/carrier_component.html create mode 100644 modular_skyrat/modules/carriers/code/carrier_user_component.html create mode 100644 modular_skyrat/modules/cellguns.html create mode 100644 modular_skyrat/modules/cellguns/code/cellguns.html create mode 100644 modular_skyrat/modules/cellguns/code/medigun_cells.html create mode 100644 modular_skyrat/modules/chadian/code/chadian.html create mode 100644 modular_skyrat/modules/chat_colors/code/chat_color.html create mode 100644 modular_skyrat/modules/clock_cult/code/actions/whirring_convergence.html create mode 100644 modular_skyrat/modules/clock_cult/code/components/brass_spreader.html create mode 100644 modular_skyrat/modules/clock_cult/code/globals.html create mode 100644 modular_skyrat/modules/clock_cult/code/language.html create mode 100644 modular_skyrat/modules/clock_cult/code/outpost_of_cogs.html create mode 100644 modular_skyrat/modules/clock_cult/code/scriptures/_scripture.html create mode 100644 modular_skyrat/modules/clock_cult/code/structures/_structure.html create mode 100644 modular_skyrat/modules/cme.html create mode 100644 modular_skyrat/modules/colony_fabricator/code/appliances/co2_cracker.html create mode 100644 modular_skyrat/modules/colony_fabricator/code/design_datums/appliances.html create mode 100644 modular_skyrat/modules/colony_fabricator/code/repacking_element.html create mode 100644 modular_skyrat/modules/colony_fabricator/sound/attributions.html create mode 100644 modular_skyrat/modules/company_imports/code.html create mode 100644 modular_skyrat/modules/company_imports/code/armament_datums/kahraman_industries.html create mode 100644 modular_skyrat/modules/connecting_computer.html create mode 100644 modular_skyrat/modules/connecting_computer/code/connectable_component.html create mode 100644 modular_skyrat/modules/container_emotes.html create mode 100644 modular_skyrat/modules/contractor/code/items/modsuit/modules.html create mode 100644 modular_skyrat/modules/conveyor_sorter.html create mode 100644 modular_skyrat/modules/cortical_borer.html create mode 100644 modular_skyrat/modules/cortical_borer/code/cortical_borer.html create mode 100644 modular_skyrat/modules/cryosleep.html create mode 100644 modular_skyrat/modules/cryosleep/code/cryopod.html create mode 100644 modular_skyrat/modules/customization.html create mode 100644 modular_skyrat/modules/customization/__HELPERS/global_lists.html create mode 100644 modular_skyrat/modules/customization/modules/clothing/glasses/glasses.html create mode 100644 modular_skyrat/modules/customization/modules/clothing/glasses/hud.html create mode 100644 modular_skyrat/modules/customization/modules/clothing/storage.html create mode 100644 modular_skyrat/modules/customization/modules/clothing/under/security.html create mode 100644 modular_skyrat/modules/customization/modules/clothing/under/utility_port.html create mode 100644 modular_skyrat/modules/customization/modules/clothing/~donator/donator_clothing.html create mode 100644 modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories.html create mode 100644 modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/genitals.html create mode 100644 modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/ipc.html create mode 100644 modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/snout.html create mode 100644 modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.html create mode 100644 modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/akula.html create mode 100644 modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/_hemophage_defines.html create mode 100644 modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/_organ_corruption.html create mode 100644 modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/corrupted_liver.html create mode 100644 modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/corrupted_tongue.html create mode 100644 modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_actions.html create mode 100644 modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_organs.html create mode 100644 modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_species.html create mode 100644 modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_status_effects.html create mode 100644 modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_tumor.html create mode 100644 modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/tumor_corruption.html create mode 100644 modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/roundstartslime.html create mode 100644 modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/xeno.html create mode 100644 modular_skyrat/modules/customization/modules/reagents/chemistry/reagents/drinks.html create mode 100644 modular_skyrat/modules/customization/modules/surgery/organs/spines.html create mode 100644 modular_skyrat/modules/customization/strings/names/callsigns_nri.html create mode 100644 modular_skyrat/modules/customization/strings/names/first_female_taj.html create mode 100644 modular_skyrat/modules/customization/strings/names/first_female_vulp.html create mode 100644 modular_skyrat/modules/customization/strings/names/first_male_taj.html create mode 100644 modular_skyrat/modules/customization/strings/names/first_male_vulp.html create mode 100644 modular_skyrat/modules/customization/strings/names/last_taj.html create mode 100644 modular_skyrat/modules/customization/strings/names/last_vulp.html create mode 100644 modular_skyrat/modules/customization/strings/names/phonetic_alphabet_numbers.html create mode 100644 modular_skyrat/modules/death_consequences_perk.html create mode 100644 modular_skyrat/modules/death_consequences_perk/death_consequences_trauma.html create mode 100644 modular_skyrat/modules/decay_subsystem/code/decaySS.html create mode 100644 modular_skyrat/modules/deforest_medical_items/code/chemicals/twitch.html create mode 100644 modular_skyrat/modules/delam_emergency_stop.html create mode 100644 modular_skyrat/modules/delam_emergency_stop/code/admin_scram.html create mode 100644 modular_skyrat/modules/delam_emergency_stop/code/scram.html create mode 100644 modular_skyrat/modules/digi_bloodsole.html create mode 100644 modular_skyrat/modules/electric_welder.html create mode 100644 modular_skyrat/modules/emotes.html create mode 100644 modular_skyrat/modules/encounters/code/nri_raiders.html create mode 100644 modular_skyrat/modules/escape_menu/code.html create mode 100644 modular_skyrat/modules/events.html create mode 100644 modular_skyrat/modules/examinemore/code.html create mode 100644 modular_skyrat/modules/faction.html create mode 100644 modular_skyrat/modules/food_replicator/code/replicator_designs/replicator_food.html create mode 100644 modular_skyrat/modules/ghostcafe.html create mode 100644 modular_skyrat/modules/gladiator.html create mode 100644 modular_skyrat/modules/gladiator/code/modules/mob/living/simple_animal/hostile/megafauna/markedone.html create mode 100644 modular_skyrat/modules/goofsec.html create mode 100644 modular_skyrat/modules/gun_safety.html create mode 100644 modular_skyrat/modules/gun_safety/code/safety_component.html create mode 100644 modular_skyrat/modules/gunhud.html create mode 100644 modular_skyrat/modules/gunpoint.html create mode 100644 modular_skyrat/modules/hev_suit.html create mode 100644 modular_skyrat/modules/holdingfashion_port.html create mode 100644 modular_skyrat/modules/horrorform.html create mode 100644 modular_skyrat/modules/huds.html create mode 100644 modular_skyrat/modules/hydra.html create mode 100644 modular_skyrat/modules/hyposprays.html create mode 100644 modular_skyrat/modules/hyposprays/code/autolathe_designs.html create mode 100644 modular_skyrat/modules/hyposprays/code/hypospray_kits.html create mode 100644 modular_skyrat/modules/ices_events.html create mode 100644 modular_skyrat/modules/ices_events/code/ICES_intensity_credits.html create mode 100644 modular_skyrat/modules/ices_events/code/ICES_tgui.html create mode 100644 modular_skyrat/modules/ices_events/code/effects/ef_foam.html create mode 100644 modular_skyrat/modules/ices_events/code/events/ev_roleplay_check.html create mode 100644 modular_skyrat/modules/icspawning.html create mode 100644 modular_skyrat/modules/implants.html create mode 100644 modular_skyrat/modules/implants/code/augments_arms.html create mode 100644 modular_skyrat/modules/imported_vendors.html create mode 100644 modular_skyrat/modules/indicators.html create mode 100644 modular_skyrat/modules/inflatables.html create mode 100644 modular_skyrat/modules/inflatables/code/inflatable.html create mode 100644 modular_skyrat/modules/interaction_menu/code/interaction_datum.html create mode 100644 modular_skyrat/modules/jukebox.html create mode 100644 modular_skyrat/modules/jukebox/code/dance_machine.html create mode 100644 modular_skyrat/modules/jukebox/code/ravemod.html create mode 100644 modular_skyrat/modules/jungle.html create mode 100644 modular_skyrat/modules/kahraman_equipment/sound/attributions.html create mode 100644 modular_skyrat/modules/layer_shift.html create mode 100644 modular_skyrat/modules/layer_shift/code/mob_movement.html create mode 100644 modular_skyrat/modules/liquids/code/liquid_systems/liquid_groups.html create mode 100644 modular_skyrat/modules/liquids/code/liquid_systems/liquid_height.html create mode 100644 modular_skyrat/modules/liquids/code/liquid_systems/liquid_interaction.html create mode 100644 modular_skyrat/modules/liquids/code/liquid_systems/liquid_plumbers.html create mode 100644 modular_skyrat/modules/lorecaster.html create mode 100644 modular_skyrat/modules/manufacturer_examine.html create mode 100644 modular_skyrat/modules/manufacturer_examine/code/manufacturer_element.html create mode 100644 modular_skyrat/modules/mapping.html create mode 100644 modular_skyrat/modules/mapping/code/areas/space.html create mode 100644 modular_skyrat/modules/mapping/code/interlink_helper.html create mode 100644 modular_skyrat/modules/mapping/code/pool.html create mode 100644 modular_skyrat/modules/mapping/code/space_hotel.html create mode 100644 modular_skyrat/modules/mapping/code/turf_decals.html create mode 100644 modular_skyrat/modules/mapping/code/wardrobes.html create mode 100644 modular_skyrat/modules/mapping/voidraptor.html create mode 100644 modular_skyrat/modules/maturity-prompt.html create mode 100644 modular_skyrat/modules/medical.html create mode 100644 modular_skyrat/modules/medical/attributions.html create mode 100644 modular_skyrat/modules/medical/code/anesthetic_machine.html create mode 100644 modular_skyrat/modules/medical/code/wounds/muscle.html create mode 100644 modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt.html create mode 100644 modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt_T3.html create mode 100644 modular_skyrat/modules/medical/code/wounds/synth/blunt/secures_internals.html create mode 100644 modular_skyrat/modules/medical/code/wounds/synth/robotic_slash.html create mode 100644 modular_skyrat/modules/mentor.html create mode 100644 modular_skyrat/modules/microfusion/code/_microfusion_defines.html create mode 100644 modular_skyrat/modules/microfusion/code/gun_types.html create mode 100644 modular_skyrat/modules/microfusion/code/microfusion_cell.html create mode 100644 modular_skyrat/modules/microfusion/code/microfusion_gun_attachments.html create mode 100644 modular_skyrat/modules/microfusion/code/phase_emitter.html create mode 100644 modular_skyrat/modules/modular_ert/code.html create mode 100644 modular_skyrat/modules/modular_implants/code/misc_devices.html create mode 100644 modular_skyrat/modules/modular_implants/code/nif_actions.html create mode 100644 modular_skyrat/modules/modular_implants/code/nif_implants.html create mode 100644 modular_skyrat/modules/modular_implants/code/nif_persistence.html create mode 100644 modular_skyrat/modules/modular_implants/code/nifsofts.html create mode 100644 modular_skyrat/modules/modular_implants/code/nifsofts/base_types/action_granter.html create mode 100644 modular_skyrat/modules/modular_implants/code/nifsofts/money_sense.html create mode 100644 modular_skyrat/modules/modular_implants/code/nifsofts/prop_summoner.html create mode 100644 modular_skyrat/modules/modular_implants/code/nifsofts/scryer.html create mode 100644 modular_skyrat/modules/modular_implants/code/nifsofts/shapeshifter.html create mode 100644 modular_skyrat/modules/modular_implants/code/nifsofts/soul_poem.html create mode 100644 modular_skyrat/modules/modular_implants/code/nifsofts/soulcatcher.html create mode 100644 modular_skyrat/modules/modular_implants/code/soulcatcher/soulcatcher_body_component.html create mode 100644 modular_skyrat/modules/modular_items.html create mode 100644 modular_skyrat/modules/modular_items/code/bags.html create mode 100644 modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/mood_events.html create mode 100644 modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/_aphrodisiac.html create mode 100644 modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/camphor.html create mode 100644 modular_skyrat/modules/modular_items/lewd_items/code/lewd_helpers/sounds.html create mode 100644 modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/condom.html create mode 100644 modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/size_items.html create mode 100644 modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/construction.html create mode 100644 modular_skyrat/modules/modular_persistence.html create mode 100644 modular_skyrat/modules/modular_weapons.html create mode 100644 modular_skyrat/modules/modular_weapons/code/company_and_or_faction_based/saibasan/laser_guns.html create mode 100644 modular_skyrat/modules/modular_weapons/code/gun_launches_little_guys_element.html create mode 100644 modular_skyrat/modules/mold.html create mode 100644 modular_skyrat/modules/mold/code/mold.html create mode 100644 modular_skyrat/modules/mold/code/mold_mobs.html create mode 100644 modular_skyrat/modules/mold/code/mold_structures.html create mode 100644 modular_skyrat/modules/more_briefcases.html create mode 100644 modular_skyrat/modules/morefermentplants.html create mode 100644 modular_skyrat/modules/moretraitoritems.html create mode 100644 modular_skyrat/modules/moretraitoritems/code/smuggling_gear.html create mode 100644 modular_skyrat/modules/moretraitoritems/code/weapons.html create mode 100644 modular_skyrat/modules/multiserver.html create mode 100644 modular_skyrat/modules/mutants.html create mode 100644 modular_skyrat/modules/mutants/code/mutant_component.html create mode 100644 modular_skyrat/modules/new_cells.html create mode 100644 modular_skyrat/modules/novaya_ert.html create mode 100644 modular_skyrat/modules/novaya_ert/code/mod_suit.html create mode 100644 modular_skyrat/modules/opposing_force/code/equipment/equip_parent.html create mode 100644 modular_skyrat/modules/organs/code/tongue.html create mode 100644 modular_skyrat/modules/oversized.html create mode 100644 modular_skyrat/modules/panicbunker/code.html create mode 100644 modular_skyrat/modules/pixel_shift.html create mode 100644 modular_skyrat/modules/player_ranks/code/player_rank_controller/_player_rank_controller.html create mode 100644 modular_skyrat/modules/player_ranks/code/subsystem/player_ranks.html create mode 100644 modular_skyrat/modules/polarized_windows/polarization_controller.html create mode 100644 modular_skyrat/modules/pollution/code/pollutants_generic.html create mode 100644 modular_skyrat/modules/positronic_alert_console.html create mode 100644 modular_skyrat/modules/primitive_cooking_additions.html create mode 100644 modular_skyrat/modules/primitive_cooking_additions/code/plant_bag.html create mode 100644 modular_skyrat/modules/primitive_cooking_additions/code/stone_stove.html create mode 100644 modular_skyrat/modules/primitive_production.html create mode 100644 modular_skyrat/modules/primitive_structures.html create mode 100644 modular_skyrat/modules/quirks/neutral.html create mode 100644 modular_skyrat/modules/radiosound.html create mode 100644 modular_skyrat/modules/reagent_forging.html create mode 100644 modular_skyrat/modules/reagent_forging/code/crafting_bench.html create mode 100644 modular_skyrat/modules/reagent_forging/code/forge.html create mode 100644 modular_skyrat/modules/reagent_forging/code/water_basin.html create mode 100644 modular_skyrat/modules/records_on_examine.html create mode 100644 modular_skyrat/modules/records_on_examine/code/record_manifest.html create mode 100644 modular_skyrat/modules/science_tools.html create mode 100644 modular_skyrat/modules/sec_haul.html create mode 100644 modular_skyrat/modules/self_actualization_device/code/self_actualization_device.html create mode 100644 modular_skyrat/modules/simple_research/simple_research.html create mode 100644 modular_skyrat/modules/skyrat_access_helpers.html create mode 100644 modular_skyrat/modules/skyrat_access_helpers/accesshelpers.html create mode 100644 modular_skyrat/modules/soulstone_changes.html create mode 100644 modular_skyrat/modules/specialist_armor/code/clothing_bullet_damage_component.html create mode 100644 modular_skyrat/modules/stasisrework.html create mode 100644 modular_skyrat/modules/station_traits.html create mode 100644 modular_skyrat/modules/subsystems.html create mode 100644 modular_skyrat/modules/subsystems/code/ticket_ping/ticket_ss.html create mode 100644 modular_skyrat/modules/suicide_verb.html create mode 100644 modular_skyrat/modules/synths/code.html create mode 100644 modular_skyrat/modules/synths/code/bodyparts/internal_computer/internal_computer.html create mode 100644 modular_skyrat/modules/synths/code/bodyparts/limbs.html create mode 100644 modular_skyrat/modules/synths/code/defib.html create mode 100644 modular_skyrat/modules/synths/code/surgery/robot_healing.html create mode 100644 modular_skyrat/modules/synths/code/surgery/robot_heart_surgery.html create mode 100644 modular_skyrat/modules/synths/code/surgery/robot_liver_surgery.html create mode 100644 modular_skyrat/modules/synths/code/surgery/robot_lung_surgery.html create mode 100644 modular_skyrat/modules/synths/code/surgery/robot_stomach_surgery.html create mode 100644 modular_skyrat/modules/tagline.html create mode 100644 modular_skyrat/modules/tarkon/code/clothing/mod.html create mode 100644 modular_skyrat/modules/tarkon/code/guns/resonance_disruptor.html create mode 100644 modular_skyrat/modules/tarkon/code/misc-fluff/research.html create mode 100644 modular_skyrat/modules/tarkon/code/misc-fluff/spawner.html create mode 100644 modular_skyrat/modules/taur_mechanics/code/constrict.html create mode 100644 modular_skyrat/modules/tesh_augments.html create mode 100644 modular_skyrat/modules/time_clock/code/console_tgui.html create mode 100644 modular_skyrat/modules/title_screen.html create mode 100644 modular_skyrat/modules/title_screen/code/title_screen_controls.html create mode 100644 modular_skyrat/modules/title_screen/code/title_screen_subsystem.html create mode 100644 modular_skyrat/modules/trim_tokens.html create mode 100644 modular_skyrat/modules/turretid.html create mode 100644 modular_skyrat/modules/verbs.html create mode 100644 modular_skyrat/modules/veteran_only.html create mode 100644 modular_skyrat/modules/vox_sprites.html create mode 100644 modular_skyrat/modules/wargame_projectors.html create mode 100644 modular_skyrat/modules/window_airbags.html create mode 100644 modular_skyrat/modules/window_airbags/code/window_airbag.html create mode 100644 modular_skyrat/modules/xenoarch.html create mode 100644 modular_skyrat/modules/xenos_skyrat_redo.html create mode 100644 modular_skyrat/modules/xenos_skyrat_redo/code/base_skyrat_xeno.html create mode 100644 modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/defender.html create mode 100644 modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/drone.html create mode 100644 modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/praetorian.html create mode 100644 modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/queen.html create mode 100644 modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/ravager.html create mode 100644 modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/rouny.html create mode 100644 modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/sentinel.html create mode 100644 modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/spitter.html create mode 100644 modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/warrior.html create mode 100644 modular_zubbers/code/__DEFINES/bloodsucker_defines.html create mode 100644 modular_zubbers/code/_onclick/hud/screen_objects/hud_timer.html create mode 100644 modular_zubbers/code/controllers/configuration/entries/nsfw.html create mode 100644 modular_zubbers/code/datums/brain_damage/magic.html create mode 100644 modular_zubbers/code/datums/components/vore.html create mode 100644 modular_zubbers/code/datums/components/vore/_defines.html create mode 100644 modular_zubbers/code/datums/components/vore/subsystem.html create mode 100644 modular_zubbers/code/datums/components/vore/ui.html create mode 100644 modular_zubbers/code/datums/components/vore/vore.html create mode 100644 modular_zubbers/code/datums/mood_events/bloodsucker_events.html create mode 100644 modular_zubbers/code/game/machinery/computer/orders/order_computer/cook_order_interdyne.html create mode 100644 modular_zubbers/code/game/machinery/syndiepad.html create mode 100644 modular_zubbers/code/game/objects/items/holy_weapons.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/hud.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/life.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/objectives.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/shaded_bloodsucker.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/clans/clan.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/clans/clan_ventrue.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/credit_file.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/powers/gohome.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/powers/masquerade.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/powers/targeted/mesmerize.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/_powers_tremere.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/auspex.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/dominate.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/thaumaturgy.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/powers/vassal/recuperate.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/structures/crypt.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/structures/objects.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/vassal/batform.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_datum.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_pinpointer.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/ex_vassal.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/favorite_vassal.html create mode 100644 modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/revenge_vassal.html create mode 100644 modular_zubbers/code/modules/arcades/code/minesweeper/minesweeper.html create mode 100644 modular_zubbers/code/modules/blooper/bark.html create mode 100644 modular_zubbers/code/modules/client/verbs/character_directory.html create mode 100644 modular_zubbers/code/modules/clothing/under/security.html create mode 100644 modular_zubbers/code/modules/hydroponics.html create mode 100644 modular_zubbers/code/modules/job_exempt/job_exempt.html create mode 100644 modular_zubbers/code/modules/job_interns/config.html create mode 100644 modular_zubbers/code/modules/job_interns/job_interns.html create mode 100644 modular_zubbers/code/modules/mining/equipment/survival_pod.html create mode 100644 modular_zubbers/code/modules/mob/living/basic/guardian/guardian_types/holoparasite_timestop.html create mode 100644 modular_zubbers/code/modules/ratqueen/regalrat.html create mode 100644 modular_zubbers/code/modules/status_effects/buffs/frenzy.html create mode 100644 modular_zubbers/code/modules/storyteller/config.html create mode 100644 modular_zubbers/code/modules/storyteller/event_defines.html create mode 100644 modular_zubbers/code/modules/storyteller/scheduled_event.html create mode 100644 modular_zubbers/code/modules/storyteller/storytellers/data/_track.html create mode 100644 modular_zubbers/code/modules/storyteller/storytellers/tellers/_storyteller.html create mode 100644 modular_zubbers/code/modules/syndicate_offstation/code/misc-fluff/research.html create mode 100644 modular_zubbers/code/modules/tarkon/code/misc-fluff/research.html create mode 100644 modular_zubbers/code/modules/wizard_dize/wizard_dice_event.html create mode 100644 modular_zubbers/code/modules/~donator/mothdonator.html create mode 100644 modular_zubbers/maps/biodome/sedated_mob.html create mode 100644 modular_zubbers/master_files/code/modules/entombed_quirk/code/entombed.html create mode 100644 modular_zubbers/sound/voice/nerdsuit/audacity settings.html create mode 100644 modular_zubbers/sound/vore/CREDIT.html create mode 100644 modular_zubbers/sound/vore/sunesound/LICENSE.html create mode 100644 modular_zzplurt.html create mode 100644 modular_zzplurt/code/modules/clothing/underwear/shirt.html create mode 100644 modular_zzplurt/code/modules/clothing/underwear/socks.html create mode 100644 modular_zzplurt/code/modules/clothing/underwear/~generated_files/briefs.html create mode 100644 modular_zzplurt/code/modules/clothing/underwear/~generated_files/shirt.html create mode 100644 modular_zzplurt/sound/voice/catpeople/credits.html create mode 100644 obj.html create mode 100644 obj/cascade_portal.html create mode 100644 obj/crystal_mass.html create mode 100644 obj/docking_port.html create mode 100644 obj/docking_port/mobile.html create mode 100644 obj/docking_port/mobile/arrivals.html create mode 100644 obj/docking_port/mobile/arrivals_skyrat.html create mode 100644 obj/docking_port/mobile/emergency.html create mode 100644 obj/docking_port/mobile/pod.html create mode 100644 obj/docking_port/mobile/supply.html create mode 100644 obj/docking_port/stationary.html create mode 100644 obj/docking_port/stationary/escape_pod.html create mode 100644 obj/docking_port/stationary/picked.html create mode 100644 obj/docking_port/stationary/random.html create mode 100644 obj/docking_port/stationary/transit.html create mode 100644 obj/durand_shield.html create mode 100644 obj/effect/abstract/chasm_storage.html create mode 100644 obj/effect/abstract/elevator_music_zone.html create mode 100644 obj/effect/abstract/info.html create mode 100644 obj/effect/abstract/liquid_turf.html create mode 100644 obj/effect/abstract/liquid_turf/pwr_gamr.html create mode 100644 obj/effect/abstract/particle_holder.html create mode 100644 obj/effect/abstract/surveillance_snare.html create mode 100644 obj/effect/abstract/voidball.html create mode 100644 obj/effect/anomaly.html create mode 100644 obj/effect/anomaly/bioscrambler.html create mode 100644 obj/effect/anomaly/bluespace.html create mode 100644 obj/effect/anomaly/dimensional.html create mode 100644 obj/effect/anomaly/ectoplasm.html create mode 100644 obj/effect/anomaly/flux/big.html create mode 100644 obj/effect/anomaly/grav.html create mode 100644 obj/effect/anomaly/hallucination.html create mode 100644 obj/effect/anomaly/hallucination/decoy.html create mode 100644 obj/effect/anomaly/pyro.html create mode 100644 obj/effect/aquarium.html create mode 100644 obj/effect/ash_rune.html create mode 100644 obj/effect/baseturf_helper.html create mode 100644 obj/effect/brimbeam.html create mode 100644 obj/effect/bug_moving.html create mode 100644 obj/effect/bump_teleporter.html create mode 100644 obj/effect/bump_teleporter/filtering.html create mode 100644 obj/effect/client_image_holder.html create mode 100644 obj/effect/client_image_holder/hallucination.html create mode 100644 obj/effect/client_image_holder/hallucination/danger.html create mode 100644 obj/effect/client_image_holder/hallucination/fake_door_lock.html create mode 100644 obj/effect/client_image_holder/hallucination/xeno.html create mode 100644 obj/effect/client_image_holder/phobetor.html create mode 100644 obj/effect/collapse.html create mode 100644 obj/effect/collapsing_demonic_portal.html create mode 100644 obj/effect/cosmic_rune.html create mode 100644 obj/effect/cross_action/spacetime_dist.html create mode 100644 obj/effect/decal.html create mode 100644 obj/effect/decal/chempuff.html create mode 100644 obj/effect/decal/cleanable.html create mode 100644 obj/effect/decal/cleanable/ants.html create mode 100644 obj/effect/decal/cleanable/blood.html create mode 100644 obj/effect/decal/cleanable/blood/footprints.html create mode 100644 obj/effect/decal/cleanable/blood/hitsplatter.html create mode 100644 obj/effect/decal/cleanable/cargo_mark.html create mode 100644 obj/effect/decal/cleanable/crayon/puzzle.html create mode 100644 obj/effect/decal/cleanable/fuel_pool.html create mode 100644 obj/effect/decal/cleanable/traitor_rune.html create mode 100644 obj/effect/decal/conveyor_sorter.html create mode 100644 obj/effect/decal/puzzle_dots.html create mode 100644 obj/effect/decal/remains/human/smokey.html create mode 100644 obj/effect/dummy/lighting_obj.html create mode 100644 obj/effect/dummy/phased_mob.html create mode 100644 obj/effect/dummy/phased_mob/shadow.html create mode 100644 obj/effect/dummy/phased_mob/spell_jaunt.html create mode 100644 obj/effect/ebeam/reacting.html create mode 100644 obj/effect/fishing_float.html create mode 100644 obj/effect/floating_blade.html create mode 100644 obj/effect/forcefield.html create mode 100644 obj/effect/forcefield/cosmic_field.html create mode 100644 obj/effect/forcefield/wizard.html create mode 100644 obj/effect/goliath_tentacle.html create mode 100644 obj/effect/grand_rune.html create mode 100644 obj/effect/grand_rune/finale.html create mode 100644 obj/effect/heretic_influence.html create mode 100644 obj/effect/heretic_rune.html create mode 100644 obj/effect/hotspot.html create mode 100644 obj/effect/immovablerod.html create mode 100644 obj/effect/immovablerod/wizard.html create mode 100644 obj/effect/landmark/atmospheric_sanity.html create mode 100644 obj/effect/landmark/bitrunning/mob_segment.html create mode 100644 obj/effect/landmark/event_spawn.html create mode 100644 obj/effect/landmark/heretic.html create mode 100644 obj/effect/landmark/start/depsec.html create mode 100644 obj/effect/landmark/start/hangover.html create mode 100644 obj/effect/landmark/transport/nav_beacon/tram.html create mode 100644 obj/effect/landmark/transport/transport_id.html create mode 100644 obj/effect/lectern_light.html create mode 100644 obj/effect/lock_portal.html create mode 100644 obj/effect/mapping_helpers/airlock/access/any/cent_com.html create mode 100644 obj/effect/mapping_helpers/atom_injector.html create mode 100644 obj/effect/mapping_helpers/atom_injector/component_injector.html create mode 100644 obj/effect/mapping_helpers/atom_injector/custom_icon.html create mode 100644 obj/effect/mapping_helpers/atom_injector/custom_sound.html create mode 100644 obj/effect/mapping_helpers/atom_injector/element_injector.html create mode 100644 obj/effect/mapping_helpers/atom_injector/human_icon_injector.html create mode 100644 obj/effect/mapping_helpers/atom_injector/trait_injector.html create mode 100644 obj/effect/mapping_helpers/basic_mob_flags.html create mode 100644 obj/effect/mapping_helpers/circuit_spawner.html create mode 100644 obj/effect/mapping_helpers/damaged_window.html create mode 100644 obj/effect/mapping_helpers/dead_body_placer.html create mode 100644 obj/effect/mapping_helpers/ianbirthday.html create mode 100644 obj/effect/mapping_helpers/mob_buckler.html create mode 100644 obj/effect/mapping_helpers/requests_console.html create mode 100644 obj/effect/mapping_helpers/trapdoor_placer.html create mode 100644 obj/effect/mapping_helpers/ztrait_injector.html create mode 100644 obj/effect/meteor.html create mode 100644 obj/effect/meteor/cluster.html create mode 100644 obj/effect/meteor/dark_matteor.html create mode 100644 obj/effect/meteor/meaty/changeling.html create mode 100644 obj/effect/mine.html create mode 100644 obj/effect/mine/explosive.html create mode 100644 obj/effect/mine/explosive/nri.html create mode 100644 obj/effect/mine/minebot.html create mode 100644 obj/effect/mine/shrapnel.html create mode 100644 obj/effect/mob_spawn.html create mode 100644 obj/effect/mob_spawn/corpse.html create mode 100644 obj/effect/mob_spawn/corpse/human.html create mode 100644 obj/effect/mob_spawn/corpse/human/guard_zombie.html create mode 100644 obj/effect/mob_spawn/corpse/human/hecu_zombie.html create mode 100644 obj/effect/mob_spawn/corpse/human/legioninfested.html create mode 100644 obj/effect/mob_spawn/corpse/slime.html create mode 100644 obj/effect/mob_spawn/ghost_role.html create mode 100644 obj/effect/mob_spawn/ghost_role/borer_egg.html create mode 100644 obj/effect/mob_spawn/ghost_role/drone.html create mode 100644 obj/effect/mob_spawn/ghost_role/human/golem.html create mode 100644 obj/effect/mob_spawn/ghost_role/human/golem/servant.html create mode 100644 obj/effect/mob_spawn/ghost_role/human/pirate.html create mode 100644 obj/effect/mob_spawn/ghost_role/human/primitive_catgirl.html create mode 100644 obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser.html create mode 100644 obj/effect/mob_spawn/ghost_role/human/virtual_domain.html create mode 100644 obj/effect/mob_spawn/ghost_role/spider.html create mode 100644 obj/effect/mob_spawn/ghost_role/venus_human_trap.html create mode 100644 obj/effect/overlay/happiness_overlay.html create mode 100644 obj/effect/overlay/status_display_text.html create mode 100644 obj/effect/overlay/vis.html create mode 100644 obj/effect/overlay/windup_bar.html create mode 100644 obj/effect/overloader_trap.html create mode 100644 obj/effect/particle_effect/fluid.html create mode 100644 obj/effect/particle_effect/fluid/foam.html create mode 100644 obj/effect/particle_effect/fluid/foam/firefighting.html create mode 100644 obj/effect/particle_effect/fluid/smoke.html create mode 100644 obj/effect/particle_effect/fluid/smoke/bad.html create mode 100644 obj/effect/particle_effect/fluid/smoke/colourful.html create mode 100644 obj/effect/particle_effect/water/extinguisher.html create mode 100644 obj/effect/portal.html create mode 100644 obj/effect/portal/permanent/one_way/reebe/clock_only.html create mode 100644 obj/effect/powerup.html create mode 100644 obj/effect/powerup/health.html create mode 100644 obj/effect/puzzle_death_signal_holder.html create mode 100644 obj/effect/puzzle_poddoor_open.html create mode 100644 obj/effect/rune.html create mode 100644 obj/effect/rune/convert.html create mode 100644 obj/effect/rune/narsie.html create mode 100644 obj/effect/rune/wall.html create mode 100644 obj/effect/side_rune.html create mode 100644 obj/effect/skyfall_landingzone.html create mode 100644 obj/effect/slippery_acid.html create mode 100644 obj/effect/spawner.html create mode 100644 obj/effect/spawner/armory_spawn.html create mode 100644 obj/effect/spawner/newbomb.html create mode 100644 obj/effect/spawner/random.html create mode 100644 obj/effect/spawner/random/environmentally_safe_anomaly.html create mode 100644 obj/effect/spawner/random/glass_debris.html create mode 100644 obj/effect/spawner/random/glass_shards.html create mode 100644 obj/effect/spawner/random/trash/crushed_can.html create mode 100644 obj/effect/spawner/random/trash/graffiti.html create mode 100644 obj/effect/spawner/random/vending.html create mode 100644 obj/effect/spawner/structure/window.html create mode 100644 obj/effect/spawner/xmastree.html create mode 100644 obj/effect/spectre_of_resurrection.html create mode 100644 obj/effect/spectre_of_resurrection/human.html create mode 100644 obj/effect/step_trigger/thrower.html create mode 100644 obj/effect/sunbeam.html create mode 100644 obj/effect/temp_visual.html create mode 100644 obj/effect/temp_visual/brim_burst.html create mode 100644 obj/effect/temp_visual/circle_wave.html create mode 100644 obj/effect/temp_visual/decoy/twitch_afterimage.html create mode 100644 obj/effect/temp_visual/drawing_heretic_rune.html create mode 100644 obj/effect/temp_visual/effect_trail.html create mode 100644 obj/effect/temp_visual/emerging_ground_spike.html create mode 100644 obj/effect/temp_visual/falling_rocket.html create mode 100644 obj/effect/temp_visual/hivebrood_spawn.html create mode 100644 obj/effect/temp_visual/legion_skull_depart.html create mode 100644 obj/effect/temp_visual/legion_skull_land.html create mode 100644 obj/effect/temp_visual/lesser_carp_rift.html create mode 100644 obj/effect/temp_visual/lesser_carp_rift/entrance.html create mode 100644 obj/effect/temp_visual/lightning_strike.html create mode 100644 obj/effect/temp_visual/meteor_heart_death.html create mode 100644 obj/effect/temp_visual/mining_overlay.html create mode 100644 obj/effect/temp_visual/portal_animation.html create mode 100644 obj/effect/temp_visual/resonance.html create mode 100644 obj/effect/temp_visual/slippery_ice.html create mode 100644 obj/effect/temp_visual/sonar_ping.html create mode 100644 obj/effect/temp_visual/teleporting_tornado.html create mode 100644 obj/effect/temp_visual/thrusting_spines.html create mode 100644 obj/effect/timestop.html create mode 100644 obj/effect/trading_card_panel.html create mode 100644 obj/effect/turf_decal.html create mode 100644 obj/effect/watcher_orbiter.html create mode 100644 obj/effect/wisp_mobile.html create mode 100644 obj/effect/wizard_magnetism.html create mode 100644 obj/gravity_fluff_field.html create mode 100644 obj/item.html create mode 100644 obj/item/abductor/alien_omnitool.html create mode 100644 obj/item/access_key.html create mode 100644 obj/item/ai_module.html create mode 100644 obj/item/ai_module/malf.html create mode 100644 obj/item/aicard.html create mode 100644 obj/item/aicard/syndie/loaded.html create mode 100644 obj/item/air_sensor.html create mode 100644 obj/item/airbag.html create mode 100644 obj/item/airlock_painter.html create mode 100644 obj/item/airlock_painter/decal.html create mode 100644 obj/item/airlock_painter/decal/tile.html create mode 100644 obj/item/aiupgrade.html create mode 100644 obj/item/ammo_box.html create mode 100644 obj/item/ammo_box/magazine.html create mode 100644 obj/item/ammo_box/magazine/internal/cylinder.html create mode 100644 obj/item/ammo_casing.html create mode 100644 obj/item/ammo_casing/arrow.html create mode 100644 obj/item/ammo_casing/foam_dart.html create mode 100644 obj/item/ammo_casing/strilka310/lionhunter.html create mode 100644 obj/item/analyzer.html create mode 100644 obj/item/anomaly_neutralizer.html create mode 100644 obj/item/anomaly_releaser.html create mode 100644 obj/item/antag_granter.html create mode 100644 obj/item/antag_spawner/loadout.html create mode 100644 obj/item/antag_spawner/nuke_ops.html create mode 100644 obj/item/aquarium_upgrade.html create mode 100644 obj/item/armament_points_card.html create mode 100644 obj/item/arrow_spawner.html create mode 100644 obj/item/ash_staff.html create mode 100644 obj/item/assembly.html create mode 100644 obj/item/assembly/control.html create mode 100644 obj/item/assembly/control/camkillswitch.html create mode 100644 obj/item/assembly/control/elevator.html create mode 100644 obj/item/assembly/control/photobooth_control.html create mode 100644 obj/item/assembly/control/polarizer.html create mode 100644 obj/item/assembly/control/showtime.html create mode 100644 obj/item/assembly/control/ticket_machine.html create mode 100644 obj/item/assembly/control/transport.html create mode 100644 obj/item/assembly/control/transport/call_button.html create mode 100644 obj/item/assembly/control/transport/remote.html create mode 100644 obj/item/assembly/flash.html create mode 100644 obj/item/assembly/infra.html create mode 100644 obj/item/assembly/mousetrap.html create mode 100644 obj/item/assembly/prox_sensor.html create mode 100644 obj/item/assembly/signaler.html create mode 100644 obj/item/assembly/trapdoor.html create mode 100644 obj/item/assembly/voice.html create mode 100644 obj/item/assembly_holder.html create mode 100644 obj/item/attachable_soulcatcher.html create mode 100644 obj/item/autosurgeon.html create mode 100644 obj/item/bait_can.html create mode 100644 obj/item/banner.html create mode 100644 obj/item/barcode.html create mode 100644 obj/item/barcodescanner.html create mode 100644 obj/item/bdsm_candle.html create mode 100644 obj/item/bedsheet.html create mode 100644 obj/item/bedsheet/gondola.html create mode 100644 obj/item/bee_smoker.html create mode 100644 obj/item/bikehorn.html create mode 100644 obj/item/biopsy_tool.html create mode 100644 obj/item/bitrunning_disk.html create mode 100644 obj/item/bitrunning_disk/ability.html create mode 100644 obj/item/bitrunning_disk/item.html create mode 100644 obj/item/blood_filter.html create mode 100644 obj/item/blueprints.html create mode 100644 obj/item/bluespace_finger.html create mode 100644 obj/item/bodybag.html create mode 100644 obj/item/bodypart.html create mode 100644 obj/item/bodypart/arm.html create mode 100644 obj/item/bodypart/arm/left.html create mode 100644 obj/item/bodypart/arm/left/self_destruct.html create mode 100644 obj/item/bodypart/arm/right.html create mode 100644 obj/item/bodypart/chest.html create mode 100644 obj/item/bodypart/chest/arachnid.html create mode 100644 obj/item/bodypart/head.html create mode 100644 obj/item/bodypart/leg.html create mode 100644 obj/item/bodypart/leg/left.html create mode 100644 obj/item/bodypart/leg/right.html create mode 100644 obj/item/bombcore/chemical.html create mode 100644 obj/item/bong.html create mode 100644 obj/item/book.html create mode 100644 obj/item/book/bible.html create mode 100644 obj/item/book/granter.html create mode 100644 obj/item/book/granter/action.html create mode 100644 obj/item/book/granter/action/spell.html create mode 100644 obj/item/book/granter/action/spell/mime/mimery.html create mode 100644 obj/item/book/granter/action/spell/mindswap.html create mode 100644 obj/item/book/granter/action/spell/true_random.html create mode 100644 obj/item/book/granter/crafting_recipe.html create mode 100644 obj/item/book/granter/martial.html create mode 100644 obj/item/book/granter/sign_language.html create mode 100644 obj/item/book/kindred.html create mode 100644 obj/item/book/manual/wiki.html create mode 100644 obj/item/book/random.html create mode 100644 obj/item/borer_egg.html create mode 100644 obj/item/borg/apparatus.html create mode 100644 obj/item/borg/charger.html create mode 100644 obj/item/borg/cyborg_omnitool.html create mode 100644 obj/item/borg/cyborghug.html create mode 100644 obj/item/borg/forging_setup.html create mode 100644 obj/item/borg/hydraulic_clamp.html create mode 100644 obj/item/borg/hydraulic_clamp/mail.html create mode 100644 obj/item/borg/lollipop.html create mode 100644 obj/item/borg/paperplane_crossbow.html create mode 100644 obj/item/borg/projectile_dampen.html create mode 100644 obj/item/borg/stun.html create mode 100644 obj/item/borg/upgrade.html create mode 100644 obj/item/borg/upgrade/selfrepair.html create mode 100644 obj/item/borg/upgrade/snack_dispenser.html create mode 100644 obj/item/borg_shapeshifter.html create mode 100644 obj/item/borg_snack_dispenser.html create mode 100644 obj/item/bot_assembly.html create mode 100644 obj/item/boulder.html create mode 100644 obj/item/boulder/artifact.html create mode 100644 obj/item/boulder_beacon.html create mode 100644 obj/item/bounty_cube.html create mode 100644 obj/item/boxcutter.html create mode 100644 obj/item/broadcast_camera.html create mode 100644 obj/item/broken_bottle.html create mode 100644 obj/item/burner.html create mode 100644 obj/item/camera.html create mode 100644 obj/item/camera/siliconcam.html create mode 100644 obj/item/camera/siliconcam/pai_camera.html create mode 100644 obj/item/canvas.html create mode 100644 obj/item/capturedevice.html create mode 100644 obj/item/card.html create mode 100644 obj/item/card/cardboard.html create mode 100644 obj/item/card/emag/battlecruiser.html create mode 100644 obj/item/card/emag/one_shot.html create mode 100644 obj/item/card/emagfake.html create mode 100644 obj/item/card/id.html create mode 100644 obj/item/card/id/advanced.html create mode 100644 obj/item/card/id/advanced/chameleon.html create mode 100644 obj/item/card/id/advanced/heretic.html create mode 100644 obj/item/card/id/advanced/plainclothes.html create mode 100644 obj/item/card/id/advanced/prisoner.html create mode 100644 obj/item/card/mining_point_card.html create mode 100644 obj/item/cardboard_cutout.html create mode 100644 obj/item/cardpack.html create mode 100644 obj/item/cargo_teleporter.html create mode 100644 obj/item/cautery.html create mode 100644 obj/item/chainsaw.html create mode 100644 obj/item/chameleon_scanner.html create mode 100644 obj/item/changeling/id.html create mode 100644 obj/item/chisel.html create mode 100644 obj/item/choice_beacon.html create mode 100644 obj/item/cigarette.html create mode 100644 obj/item/cigarette/pipe.html create mode 100644 obj/item/circuit_component.html create mode 100644 obj/item/circuit_component/air_alarm_general.html create mode 100644 obj/item/circuit_component/air_alarm_scrubbers.html create mode 100644 obj/item/circuit_component/air_alarm_vents.html create mode 100644 obj/item/circuit_component/airlock.html create mode 100644 obj/item/circuit_component/airlock_access_event.html create mode 100644 obj/item/circuit_component/arctan2.html create mode 100644 obj/item/circuit_component/arithmetic.html create mode 100644 obj/item/circuit_component/arrest_console_arrest.html create mode 100644 obj/item/circuit_component/arrest_console_data.html create mode 100644 obj/item/circuit_component/assoc_literal.html create mode 100644 obj/item/circuit_component/atmos_meter.html create mode 100644 obj/item/circuit_component/atmos_pump.html create mode 100644 obj/item/circuit_component/atmos_volume_pump.html create mode 100644 obj/item/circuit_component/bci_core.html create mode 100644 obj/item/circuit_component/begin_animation.html create mode 100644 obj/item/circuit_component/binary_conversion.html create mode 100644 obj/item/circuit_component/bot.html create mode 100644 obj/item/circuit_component/bot_circuit.html create mode 100644 obj/item/circuit_component/camera.html create mode 100644 obj/item/circuit_component/cell_charge.html create mode 100644 obj/item/circuit_component/clock.html create mode 100644 obj/item/circuit_component/compact_remote.html create mode 100644 obj/item/circuit_component/compare.html create mode 100644 obj/item/circuit_component/compare/access.html create mode 100644 obj/item/circuit_component/compare/comparison.html create mode 100644 obj/item/circuit_component/compare/health_state.html create mode 100644 obj/item/circuit_component/compare/logic.html create mode 100644 obj/item/circuit_component/compare/toggle.html create mode 100644 obj/item/circuit_component/compare/typecheck.html create mode 100644 obj/item/circuit_component/concat.html create mode 100644 obj/item/circuit_component/concat_list.html create mode 100644 obj/item/circuit_component/controller.html create mode 100644 obj/item/circuit_component/conveyor_switch.html create mode 100644 obj/item/circuit_component/decimal_conversion.html create mode 100644 obj/item/circuit_component/delay.html create mode 100644 obj/item/circuit_component/digital_valve.html create mode 100644 obj/item/circuit_component/direction.html create mode 100644 obj/item/circuit_component/dispenser_bot.html create mode 100644 obj/item/circuit_component/equipment_action.html create mode 100644 obj/item/circuit_component/filter_list.html create mode 100644 obj/item/circuit_component/firealarm.html create mode 100644 obj/item/circuit_component/foreach.html create mode 100644 obj/item/circuit_component/format.html create mode 100644 obj/item/circuit_component/get_column.html create mode 100644 obj/item/circuit_component/get_variable.html create mode 100644 obj/item/circuit_component/gps.html create mode 100644 obj/item/circuit_component/health.html create mode 100644 obj/item/circuit_component/hear.html create mode 100644 obj/item/circuit_component/hydroponics.html create mode 100644 obj/item/circuit_component/id_access_reader.html create mode 100644 obj/item/circuit_component/id_getter.html create mode 100644 obj/item/circuit_component/id_info_reader.html create mode 100644 obj/item/circuit_component/index.html create mode 100644 obj/item/circuit_component/index_table.html create mode 100644 obj/item/circuit_component/input_request.html create mode 100644 obj/item/circuit_component/item_interact.html create mode 100644 obj/item/circuit_component/keyboard_shell.html create mode 100644 obj/item/circuit_component/laserpointer.html create mode 100644 obj/item/circuit_component/length.html create mode 100644 obj/item/circuit_component/light.html create mode 100644 obj/item/circuit_component/light_switch.html create mode 100644 obj/item/circuit_component/list_literal.html create mode 100644 obj/item/circuit_component/list_literal/ntnet_send.html create mode 100644 obj/item/circuit_component/list_pick.html create mode 100644 obj/item/circuit_component/listin.html create mode 100644 obj/item/circuit_component/matscanner.html create mode 100644 obj/item/circuit_component/medical_console_data.html create mode 100644 obj/item/circuit_component/mining.html create mode 100644 obj/item/circuit_component/mmi.html create mode 100644 obj/item/circuit_component/mod_adapter_core.html create mode 100644 obj/item/circuit_component/mod_program.html create mode 100644 obj/item/circuit_component/mod_program/borg_monitor.html create mode 100644 obj/item/circuit_component/mod_program/camera.html create mode 100644 obj/item/circuit_component/mod_program/messenger.html create mode 100644 obj/item/circuit_component/mod_program/modsuit_control.html create mode 100644 obj/item/circuit_component/mod_program/notepad.html create mode 100644 obj/item/circuit_component/mod_program/nt_pay.html create mode 100644 obj/item/circuit_component/mod_program/ntnetmonitor.html create mode 100644 obj/item/circuit_component/mod_program/radar.html create mode 100644 obj/item/circuit_component/mod_program/signaler.html create mode 100644 obj/item/circuit_component/mod_program/spectre_meter.html create mode 100644 obj/item/circuit_component/mod_program/status.html create mode 100644 obj/item/circuit_component/modpc.html create mode 100644 obj/item/circuit_component/module.html create mode 100644 obj/item/circuit_component/module_input.html create mode 100644 obj/item/circuit_component/module_output.html create mode 100644 obj/item/circuit_component/money_bot.html create mode 100644 obj/item/circuit_component/money_dispenser.html create mode 100644 obj/item/circuit_component/not.html create mode 100644 obj/item/circuit_component/ntnet_receive.html create mode 100644 obj/item/circuit_component/ntnet_send.html create mode 100644 obj/item/circuit_component/object_overlay.html create mode 100644 obj/item/circuit_component/pressuresensor.html create mode 100644 obj/item/circuit_component/proccall.html create mode 100644 obj/item/circuit_component/pull.html create mode 100644 obj/item/circuit_component/radio.html create mode 100644 obj/item/circuit_component/random.html create mode 100644 obj/item/circuit_component/reagent_injector_bluespace.html create mode 100644 obj/item/circuit_component/reagentscanner.html create mode 100644 obj/item/circuit_component/reflector.html create mode 100644 obj/item/circuit_component/remotecam.html create mode 100644 obj/item/circuit_component/remotecam/airlock.html create mode 100644 obj/item/circuit_component/remotecam/bci.html create mode 100644 obj/item/circuit_component/remotecam/polaroid.html create mode 100644 obj/item/circuit_component/router.html create mode 100644 obj/item/circuit_component/save_shell.html create mode 100644 obj/item/circuit_component/scanner_gate.html create mode 100644 obj/item/circuit_component/sdql_operation.html create mode 100644 obj/item/circuit_component/select.html create mode 100644 obj/item/circuit_component/self.html create mode 100644 obj/item/circuit_component/set_variable.html create mode 100644 obj/item/circuit_component/signal_handler.html create mode 100644 obj/item/circuit_component/soundemitter.html create mode 100644 obj/item/circuit_component/spawn_atom.html create mode 100644 obj/item/circuit_component/species.html create mode 100644 obj/item/circuit_component/speech.html create mode 100644 obj/item/circuit_component/split.html create mode 100644 obj/item/circuit_component/synth.html create mode 100644 obj/item/circuit_component/target_scanner.html create mode 100644 obj/item/circuit_component/tempsensor.html create mode 100644 obj/item/circuit_component/textcase.html create mode 100644 obj/item/circuit_component/timepiece.html create mode 100644 obj/item/circuit_component/to_type.html create mode 100644 obj/item/circuit_component/tonumber.html create mode 100644 obj/item/circuit_component/tostring.html create mode 100644 obj/item/circuit_component/trigonometry.html create mode 100644 obj/item/circuit_component/variable.html create mode 100644 obj/item/circuit_component/variable/assoc_list/list_remove.html create mode 100644 obj/item/circuit_component/variable/assoc_list/list_set.html create mode 100644 obj/item/circuit_component/variable/getter.html create mode 100644 obj/item/circuit_component/variable/list/listadd.html create mode 100644 obj/item/circuit_component/variable/list/listremove.html create mode 100644 obj/item/circuit_component/variable/setter.html create mode 100644 obj/item/circuit_component/vendor_component.html create mode 100644 obj/item/circuit_component/view_sensor.html create mode 100644 obj/item/circuit_component/vim.html create mode 100644 obj/item/circuit_component/wiremod_gun.html create mode 100644 obj/item/circuit_component/wiremod_scanner.html create mode 100644 obj/item/circuitboard.html create mode 100644 obj/item/circuitboard/computer/order_console/interdyne.html create mode 100644 obj/item/circuitboard/machine/syndiepad.html create mode 100644 obj/item/circular_saw.html create mode 100644 obj/item/claymore/dragonslayer.html create mode 100644 obj/item/climbing_hook.html create mode 100644 obj/item/clipboard.html create mode 100644 obj/item/clipboard/cyborg.html create mode 100644 obj/item/clockwork.html create mode 100644 obj/item/clockwork/clockwork_slab.html create mode 100644 obj/item/clockwork/integration_cog.html create mode 100644 obj/item/clockwork/replica_fabricator.html create mode 100644 obj/item/clockwork/trap_placer.html create mode 100644 obj/item/clockwork/weapon.html create mode 100644 obj/item/clothing.html create mode 100644 obj/item/clothing/accessory.html create mode 100644 obj/item/clothing/accessory/dogtag.html create mode 100644 obj/item/clothing/accessory/lewdapron.html create mode 100644 obj/item/clothing/accessory/medal.html create mode 100644 obj/item/clothing/accessory/medal/silver/emergency_services.html create mode 100644 obj/item/clothing/accessory/press_badge.html create mode 100644 obj/item/clothing/accessory/spy_bug.html create mode 100644 obj/item/clothing/ears/kinky_headphones.html create mode 100644 obj/item/clothing/erp_leash.html create mode 100644 obj/item/clothing/glasses.html create mode 100644 obj/item/clothing/glasses/blindfold/kinky.html create mode 100644 obj/item/clothing/glasses/clockwork.html create mode 100644 obj/item/clothing/glasses/clockwork/judicial_visor.html create mode 100644 obj/item/clothing/glasses/clockwork/wraith_spectacles.html create mode 100644 obj/item/clothing/glasses/hud/ar.html create mode 100644 obj/item/clothing/glasses/hud/ar/projector.html create mode 100644 obj/item/clothing/glasses/hypno.html create mode 100644 obj/item/clothing/glasses/nightmare_vision.html create mode 100644 obj/item/clothing/glasses/salesman.html create mode 100644 obj/item/clothing/glasses/welding/steampunk_goggles.html create mode 100644 obj/item/clothing/gloves.html create mode 100644 obj/item/clothing/gloves/boxing.html create mode 100644 obj/item/clothing/gloves/cargo_gauntlet.html create mode 100644 obj/item/clothing/gloves/fishing.html create mode 100644 obj/item/clothing/gloves/shibari_hands.html create mode 100644 obj/item/clothing/gloves/tackler.html create mode 100644 obj/item/clothing/head.html create mode 100644 obj/item/clothing/head/beanie/black/dboy.html create mode 100644 obj/item/clothing/head/costume/festive.html create mode 100644 obj/item/clothing/head/costume/foilhat.html create mode 100644 obj/item/clothing/head/costume/ushanka.html create mode 100644 obj/item/clothing/head/cowboy.html create mode 100644 obj/item/clothing/head/deprivation_helmet.html create mode 100644 obj/item/clothing/head/fedora/det_hat.html create mode 100644 obj/item/clothing/head/fedora/inspector_hat.html create mode 100644 obj/item/clothing/head/hair_tie.html create mode 100644 obj/item/clothing/head/hats/tophat.html create mode 100644 obj/item/clothing/head/helmet/changeling_hivehead.html create mode 100644 obj/item/clothing/head/helmet/cin_surplus_helmet.html create mode 100644 obj/item/clothing/head/helmet/cin_surplus_helmet/random_color.html create mode 100644 obj/item/clothing/head/helmet/monkey_sentience.html create mode 100644 obj/item/clothing/head/helmet/sf_sacrificial.html create mode 100644 obj/item/clothing/head/helmet/space.html create mode 100644 obj/item/clothing/head/helmet/space/akula_wetsuit.html create mode 100644 obj/item/clothing/head/helmet/space/plasmaman.html create mode 100644 obj/item/clothing/head/helmet/toggleable.html create mode 100644 obj/item/clothing/head/helmet/toggleable/justice.html create mode 100644 obj/item/clothing/head/helmet/toggleable/pinwheel.html create mode 100644 obj/item/clothing/head/hooded/berserker.html create mode 100644 obj/item/clothing/head/mob_holder/pet.html create mode 100644 obj/item/clothing/head/soft.html create mode 100644 obj/item/clothing/head/utility/chefhat.html create mode 100644 obj/item/clothing/head/utility/hardhat.html create mode 100644 obj/item/clothing/head/utility/hardhat/welding.html create mode 100644 obj/item/clothing/head/wizard.html create mode 100644 obj/item/clothing/mask.html create mode 100644 obj/item/clothing/mask/animal.html create mode 100644 obj/item/clothing/mask/ballgag.html create mode 100644 obj/item/clothing/mask/breath/anesthetic.html create mode 100644 obj/item/clothing/mask/chameleon.html create mode 100644 obj/item/clothing/mask/gas.html create mode 100644 obj/item/clothing/mask/gas/bdsm_mask.html create mode 100644 obj/item/clothing/mask/gas/ninja.html create mode 100644 obj/item/clothing/mask/gas/sechailer.html create mode 100644 obj/item/clothing/mask/leatherwhip.html create mode 100644 obj/item/clothing/mask/madness_mask.html create mode 100644 obj/item/clothing/mask/muzzle/tape.html create mode 100644 obj/item/clothing/mask/paper.html create mode 100644 obj/item/clothing/neck/collar_bomb.html create mode 100644 obj/item/clothing/neck/eldritch_amulet.html create mode 100644 obj/item/clothing/neck/heretic_focus/crimson_medallion.html create mode 100644 obj/item/clothing/neck/human_petcollar.html create mode 100644 obj/item/clothing/neck/human_petcollar/locked.html create mode 100644 obj/item/clothing/neck/inferno_collar.html create mode 100644 obj/item/clothing/neck/kink_collar.html create mode 100644 obj/item/clothing/neck/kink_collar/locked.html create mode 100644 obj/item/clothing/neck/kink_collar/locked/gps.html create mode 100644 obj/item/clothing/neck/link_scryer.html create mode 100644 obj/item/clothing/neck/link_scryer/loaded/nifsoft.html create mode 100644 obj/item/clothing/neck/mind_collar.html create mode 100644 obj/item/clothing/neck/necklace/dope/merchant.html create mode 100644 obj/item/clothing/neck/security_cape.html create mode 100644 obj/item/clothing/neck/size_collar.html create mode 100644 obj/item/clothing/neck/tie.html create mode 100644 obj/item/clothing/sextoy.html create mode 100644 obj/item/clothing/sextoy/buttplug.html create mode 100644 obj/item/clothing/sextoy/condom.html create mode 100644 obj/item/clothing/sextoy/dildo.html create mode 100644 obj/item/clothing/sextoy/dildo/custom_dildo.html create mode 100644 obj/item/clothing/sextoy/dildo/double_dildo.html create mode 100644 obj/item/clothing/sextoy/dildo/double_dildo_end.html create mode 100644 obj/item/clothing/sextoy/eggvib.html create mode 100644 obj/item/clothing/sextoy/eggvib/signalvib.html create mode 100644 obj/item/clothing/sextoy/fleshlight.html create mode 100644 obj/item/clothing/sextoy/magic_wand.html create mode 100644 obj/item/clothing/sextoy/nipple_clamps.html create mode 100644 obj/item/clothing/sextoy/vibrator.html create mode 100644 obj/item/clothing/sextoy/vibroring.html create mode 100644 obj/item/clothing/shoes.html create mode 100644 obj/item/clothing/shoes/clown_shoes.html create mode 100644 obj/item/clothing/shoes/clown_shoes/banana_shoes.html create mode 100644 obj/item/clothing/shoes/cowboy.html create mode 100644 obj/item/clothing/shoes/galoshes.html create mode 100644 obj/item/clothing/shoes/gunboots.html create mode 100644 obj/item/clothing/shoes/magboots.html create mode 100644 obj/item/clothing/shoes/shibari_legs.html create mode 100644 obj/item/clothing/shoes/wheelys.html create mode 100644 obj/item/clothing/suit.html create mode 100644 obj/item/clothing/suit/armor/abductor/vest.html create mode 100644 obj/item/clothing/suit/armor/reactive.html create mode 100644 obj/item/clothing/suit/armor/reactive/barricade.html create mode 100644 obj/item/clothing/suit/armor/reactive/bioscrambling.html create mode 100644 obj/item/clothing/suit/armor/reactive/stealth.html create mode 100644 obj/item/clothing/suit/armor/reactive/tesla.html create mode 100644 obj/item/clothing/suit/armor/riot/skinsuit_armor.html create mode 100644 obj/item/clothing/suit/armor/vest/cin_surplus_vest.html create mode 100644 obj/item/clothing/suit/armor/vest/ctf.html create mode 100644 obj/item/clothing/suit/bio_suit/plaguedoctorsuit.html create mode 100644 obj/item/clothing/suit/clockwork/cloak.html create mode 100644 obj/item/clothing/suit/corset.html create mode 100644 obj/item/clothing/suit/costume/wellworn_shirt.html create mode 100644 obj/item/clothing/suit/hooded.html create mode 100644 obj/item/clothing/suit/hooded/cloak/godslayer.html create mode 100644 obj/item/clothing/suit/hooded/cultrobes.html create mode 100644 obj/item/clothing/suit/hooded/cultrobes/cult_shield.html create mode 100644 obj/item/clothing/suit/hooded/cultrobes/void.html create mode 100644 obj/item/clothing/suit/hooded/wintercoat.html create mode 100644 obj/item/clothing/suit/hooded/wintercoat/colourable.html create mode 100644 obj/item/clothing/suit/jacket/det_suit/noir/heister.html create mode 100644 obj/item/clothing/suit/space.html create mode 100644 obj/item/clothing/suit/space/emergency.html create mode 100644 obj/item/clothing/suit/space/hev_suit.html create mode 100644 obj/item/clothing/suit/straight_jacket/shackles.html create mode 100644 obj/item/clothing/suit/toggle.html create mode 100644 obj/item/clothing/suit/wizrobe.html create mode 100644 obj/item/clothing/under.html create mode 100644 obj/item/clothing/under/akula_wetsuit.html create mode 100644 obj/item/clothing/under/akula_wetsuit/job.html create mode 100644 obj/item/clothing/under/color/random.html create mode 100644 obj/item/clothing/under/shibari.html create mode 100644 obj/item/clothing/under/syndicate/rus_army/cin_surplus/random_color.html create mode 100644 obj/item/clothing/underwear/briefs/nude.html create mode 100644 obj/item/clothing/underwear/shirt.html create mode 100644 obj/item/clothing/underwear/socks.html create mode 100644 obj/item/codeword_granter.html create mode 100644 obj/item/codex_cicatrix.html create mode 100644 obj/item/coin.html create mode 100644 obj/item/coin/eldritch.html create mode 100644 obj/item/collar_bomb_button.html create mode 100644 obj/item/computer_disk.html create mode 100644 obj/item/computer_disk/command.html create mode 100644 obj/item/computer_disk/virus.html create mode 100644 obj/item/computer_disk/virus/frame.html create mode 100644 obj/item/condom_pack.html create mode 100644 obj/item/construction.html create mode 100644 obj/item/construction/plumbing.html create mode 100644 obj/item/construction/plumbing/service.html create mode 100644 obj/item/construction/rcd.html create mode 100644 obj/item/construction/rcd/borg.html create mode 100644 obj/item/construction/rld.html create mode 100644 obj/item/construction/rtd.html create mode 100644 obj/item/construction_kit.html create mode 100644 obj/item/conveyor_sorter.html create mode 100644 obj/item/cortical_cage.html create mode 100644 obj/item/cosmic_skull.html create mode 100644 obj/item/coupon.html create mode 100644 obj/item/crowbar/power.html create mode 100644 obj/item/crusher_trophy/bileworm_spewlet.html create mode 100644 obj/item/crusher_trophy/brimdemon_fang.html create mode 100644 obj/item/crusher_trophy/broodmother_tongue.html create mode 100644 obj/item/crusher_trophy/goliath_tentacle.html create mode 100644 obj/item/crusher_trophy/ice_demon_cube.html create mode 100644 obj/item/crusher_trophy/legionnaire_spine.html create mode 100644 obj/item/ctf_flag.html create mode 100644 obj/item/cult_shift.html create mode 100644 obj/item/cutting_board.html create mode 100644 obj/item/defibrillator.html create mode 100644 obj/item/delivery.html create mode 100644 obj/item/delivery/big.html create mode 100644 obj/item/dest_tagger.html create mode 100644 obj/item/desynchronizer.html create mode 100644 obj/item/detective_scanner.html create mode 100644 obj/item/device/custom_kit.html create mode 100644 obj/item/device/traitor_announcer.html create mode 100644 obj/item/dice.html create mode 100644 obj/item/dice/d20/fate.html create mode 100644 obj/item/disk/ammo_workbench.html create mode 100644 obj/item/disk/design_disk.html create mode 100644 obj/item/disk/design_disk/bepis.html create mode 100644 obj/item/disk/design_disk/limbs.html create mode 100644 obj/item/disk/nifsoft_uploader.html create mode 100644 obj/item/disk/nifsoft_uploader/dorms/contract.html create mode 100644 obj/item/disk/nuclear.html create mode 100644 obj/item/dna_probe.html create mode 100644 obj/item/dna_probe/carp_scanner.html create mode 100644 obj/item/documents.html create mode 100644 obj/item/documents/photocopy.html create mode 100644 obj/item/door_seal.html create mode 100644 obj/item/dragnet_beacon.html create mode 100644 obj/item/dualsaber.html create mode 100644 obj/item/dullahan_relay.html create mode 100644 obj/item/dyespray.html create mode 100644 obj/item/ectoplasm/revenant.html create mode 100644 obj/item/eldritch_potion.html create mode 100644 obj/item/electronics/airlock.html create mode 100644 obj/item/encryptionkey.html create mode 100644 obj/item/energy_katana.html create mode 100644 obj/item/exodrone.html create mode 100644 obj/item/extinguisher.html create mode 100644 obj/item/extraction_pack.html create mode 100644 obj/item/eyesnatcher.html create mode 100644 obj/item/fireaxe.html create mode 100644 obj/item/firelance.html create mode 100644 obj/item/firing_pin.html create mode 100644 obj/item/firing_pin/paywall.html create mode 100644 obj/item/fish.html create mode 100644 obj/item/fish/chasm_crab.html create mode 100644 obj/item/fish/fryish.html create mode 100644 obj/item/fish/lavaloop.html create mode 100644 obj/item/fish/starfish.html create mode 100644 obj/item/fish/tadpole.html create mode 100644 obj/item/fish_analyzer.html create mode 100644 obj/item/fishing_hook.html create mode 100644 obj/item/fishing_hook/magnet.html create mode 100644 obj/item/fishing_line.html create mode 100644 obj/item/fishing_lure.html create mode 100644 obj/item/fishing_rod.html create mode 100644 obj/item/fishing_rod/telescopic.html create mode 100644 obj/item/flashlight.html create mode 100644 obj/item/flashlight/emp.html create mode 100644 obj/item/flashlight/flare.html create mode 100644 obj/item/flashlight/flare/candle.html create mode 100644 obj/item/flashlight/flashdark.html create mode 100644 obj/item/flashlight/glowstick.html create mode 100644 obj/item/flashlight/pen/paramedic.html create mode 100644 obj/item/flashlight/spotlight.html create mode 100644 obj/item/flatpack.html create mode 100644 obj/item/flatpacked_machine.html create mode 100644 obj/item/folder.html create mode 100644 obj/item/folder/biscuit.html create mode 100644 obj/item/folder/biscuit/unsealed.html create mode 100644 obj/item/food.html create mode 100644 obj/item/food/badrecipe.html create mode 100644 obj/item/food/baguette.html create mode 100644 obj/item/food/baguette/combat.html create mode 100644 obj/item/food/bait.html create mode 100644 obj/item/food/bread.html create mode 100644 obj/item/food/bubblegum.html create mode 100644 obj/item/food/bubblegum/bubblegum.html create mode 100644 obj/item/food/cake.html create mode 100644 obj/item/food/canned/envirochow.html create mode 100644 obj/item/food/cheese.html create mode 100644 obj/item/food/cheese/wheel.html create mode 100644 obj/item/food/clothing.html create mode 100644 obj/item/food/deadmouse.html create mode 100644 obj/item/food/donkpocket.html create mode 100644 obj/item/food/donut.html create mode 100644 obj/item/food/egg.html create mode 100644 obj/item/food/egg/raptor_egg.html create mode 100644 obj/item/food/egg/watcher.html create mode 100644 obj/item/food/fishmeat/carp.html create mode 100644 obj/item/food/golem_food.html create mode 100644 obj/item/food/grown.html create mode 100644 obj/item/food/grown/banana.html create mode 100644 obj/item/food/grown/mushroom.html create mode 100644 obj/item/food/grown/pumpkin.html create mode 100644 obj/item/food/icecream.html create mode 100644 obj/item/food/meat/cutlet.html create mode 100644 obj/item/food/meat/slab.html create mode 100644 obj/item/food/meat/steak/plain/human.html create mode 100644 obj/item/food/monkeycube.html create mode 100644 obj/item/food/nugget.html create mode 100644 obj/item/food/pancakes.html create mode 100644 obj/item/food/pie.html create mode 100644 obj/item/food/pizza.html create mode 100644 obj/item/food/rationpack.html create mode 100644 obj/item/food/ready_donk.html create mode 100644 obj/item/food/sandwich/death.html create mode 100644 obj/item/food/vendor_tray_meal.html create mode 100644 obj/item/forcefield_projector.html create mode 100644 obj/item/forging.html create mode 100644 obj/item/forging/complete.html create mode 100644 obj/item/forging/hammer.html create mode 100644 obj/item/forging/incomplete.html create mode 100644 obj/item/forging/reagent_weapon/bokken.html create mode 100644 obj/item/forging/reagent_weapon/hammer.html create mode 100644 obj/item/frog_contract.html create mode 100644 obj/item/frog_statue.html create mode 100644 obj/item/fuel_pellet.html create mode 100644 obj/item/fugu_gland.html create mode 100644 obj/item/gas_filter.html create mode 100644 obj/item/gibtonite.html create mode 100644 obj/item/gibtonite_hand.html create mode 100644 obj/item/gift.html create mode 100644 obj/item/glassblowing.html create mode 100644 obj/item/glassblowing/blowing_rod.html create mode 100644 obj/item/glassblowing/molten_glass.html create mode 100644 obj/item/goldeneye_key.html create mode 100644 obj/item/golem_shell.html create mode 100644 obj/item/goliath_infuser_hammer.html create mode 100644 obj/item/gps.html create mode 100644 obj/item/gps/computer/beacon.html create mode 100644 obj/item/graft.html create mode 100644 obj/item/grapple_gun.html create mode 100644 obj/item/gravity_harness.html create mode 100644 obj/item/greentext.html create mode 100644 obj/item/grenade.html create mode 100644 obj/item/grenade/c4.html create mode 100644 obj/item/grenade/c4/es8.html create mode 100644 obj/item/grenade/c4/ninja.html create mode 100644 obj/item/grenade/chem_grenade.html create mode 100644 obj/item/grenade/gas_crystal/healium_crystal.html create mode 100644 obj/item/grenade/gas_crystal/nitrous_oxide_crystal.html create mode 100644 obj/item/grenade/gas_crystal/proto_nitrate_crystal.html create mode 100644 obj/item/grenade/iedcasing.html create mode 100644 obj/item/grenade/mirage.html create mode 100644 obj/item/grenade/primer.html create mode 100644 obj/item/grenade/smokebomb.html create mode 100644 obj/item/grenade/xen_crystal.html create mode 100644 obj/item/grown.html create mode 100644 obj/item/guardian_creator.html create mode 100644 obj/item/gun.html create mode 100644 obj/item/gun/ballistic.html create mode 100644 obj/item/gun/ballistic/automatic/ar/modular/m44a/grenadelauncher.html create mode 100644 obj/item/gun/ballistic/automatic/ar/modular/m44a/shotgun.html create mode 100644 obj/item/gun/ballistic/automatic/rom_flech.html create mode 100644 obj/item/gun/ballistic/automatic/rom_smg.html create mode 100644 obj/item/gun/ballistic/automatic/smart_machine_gun.html create mode 100644 obj/item/gun/ballistic/automatic/smartgun.html create mode 100644 obj/item/gun/ballistic/automatic/sol_grenade_launcher.html create mode 100644 obj/item/gun/ballistic/automatic/sol_rifle.html create mode 100644 obj/item/gun/ballistic/automatic/tommygun.html create mode 100644 obj/item/gun/ballistic/bow.html create mode 100644 obj/item/gun/ballistic/bow/clockwork.html create mode 100644 obj/item/gun/ballistic/revolver/chaplain.html create mode 100644 obj/item/gun/ballistic/rocketlauncher.html create mode 100644 obj/item/gun/ballistic/shotgun/automatic/dual_tube.html create mode 100644 obj/item/gun/ballistic/shotgun/bulldog.html create mode 100644 obj/item/gun/blastcannon.html create mode 100644 obj/item/gun/energy.html create mode 100644 obj/item/gun/energy/cell_loaded.html create mode 100644 obj/item/gun/energy/dueling.html create mode 100644 obj/item/gun/energy/e_gun/dragnet.html create mode 100644 obj/item/gun/energy/laser/chameleon.html create mode 100644 obj/item/gun/energy/marksman_revolver.html create mode 100644 obj/item/gun/energy/modular_laser_rifle.html create mode 100644 obj/item/gun/energy/recharge.html create mode 100644 obj/item/gun/energy/recharge/kinetic_accelerator.html create mode 100644 obj/item/gun/energy/recharge/resonant_system.html create mode 100644 obj/item/gun/magic.html create mode 100644 obj/item/gun/magic/midas_hand.html create mode 100644 obj/item/gun/magic/staff.html create mode 100644 obj/item/gun/magic/staff/change.html create mode 100644 obj/item/gun/magic/staff/chaos.html create mode 100644 obj/item/gun/magic/staff/healing.html create mode 100644 obj/item/gun/medbeam.html create mode 100644 obj/item/gun/microfusion.html create mode 100644 obj/item/gun/syringe.html create mode 100644 obj/item/hairbrush.html create mode 100644 obj/item/hairbrush/switchblade.html create mode 100644 obj/item/hallucinated.html create mode 100644 obj/item/hand_item/circlegame.html create mode 100644 obj/item/hand_item/coom.html create mode 100644 obj/item/hand_item/kisser.html create mode 100644 obj/item/hand_item/noogie.html create mode 100644 obj/item/hand_item/self_grasp.html create mode 100644 obj/item/hand_item/slapper.html create mode 100644 obj/item/hand_labeler.html create mode 100644 obj/item/hand_tele.html create mode 100644 obj/item/handheld_soulcatcher.html create mode 100644 obj/item/hardened_spike.html create mode 100644 obj/item/hardened_spike/chem.html create mode 100644 obj/item/harmalarm.html create mode 100644 obj/item/healthanalyzer.html create mode 100644 obj/item/healthanalyzer/simple.html create mode 100644 obj/item/hemostat.html create mode 100644 obj/item/heretic_labyrinth_handbook.html create mode 100644 obj/item/hfr_box.html create mode 100644 obj/item/hierophant_club.html create mode 100644 obj/item/highfrequencyblade.html create mode 100644 obj/item/hivemind_keyboard.html create mode 100644 obj/item/holochip.html create mode 100644 obj/item/holocigarette.html create mode 100644 obj/item/holosign_creator/atmos.html create mode 100644 obj/item/house_edge.html create mode 100644 obj/item/hypospray/mkii.html create mode 100644 obj/item/implant.html create mode 100644 obj/item/implant/abductor.html create mode 100644 obj/item/implant/beacon.html create mode 100644 obj/item/implant/chem.html create mode 100644 obj/item/implant/explosive.html create mode 100644 obj/item/implant/explosive/battle_royale.html create mode 100644 obj/item/implant/mod.html create mode 100644 obj/item/implant/spell.html create mode 100644 obj/item/implant/teleport_blocker.html create mode 100644 obj/item/implant/tracking.html create mode 100644 obj/item/implant/tracking/c38.html create mode 100644 obj/item/implant/uplink.html create mode 100644 obj/item/implantcase.html create mode 100644 obj/item/implanter.html create mode 100644 obj/item/implantpad.html create mode 100644 obj/item/inducer.html create mode 100644 obj/item/inflatable.html create mode 100644 obj/item/inspector.html create mode 100644 obj/item/inspector/clown.html create mode 100644 obj/item/inspector/clown/bananium.html create mode 100644 obj/item/instrument.html create mode 100644 obj/item/instrument/violin/festival.html create mode 100644 obj/item/integrated_circuit.html create mode 100644 obj/item/janicart_upgrade.html create mode 100644 obj/item/key/kink_collar.html create mode 100644 obj/item/key_card.html create mode 100644 obj/item/key_card/hotel_room.html create mode 100644 obj/item/kheiral_cuffs.html create mode 100644 obj/item/kinetic_crusher.html create mode 100644 obj/item/kinky_shocker.html create mode 100644 obj/item/kirbyplants.html create mode 100644 obj/item/kitchen/tongs.html create mode 100644 obj/item/knife.html create mode 100644 obj/item/knife/bloodletter.html create mode 100644 obj/item/knife/hotknife.html create mode 100644 obj/item/label.html create mode 100644 obj/item/language_manual.html create mode 100644 obj/item/laser_pointer.html create mode 100644 obj/item/lazarus_injector.html create mode 100644 obj/item/light.html create mode 100644 obj/item/light_eater.html create mode 100644 obj/item/lighter.html create mode 100644 obj/item/lighter/greyscale.html create mode 100644 obj/item/lightreplacer.html create mode 100644 obj/item/lipstick.html create mode 100644 obj/item/machine_remote.html create mode 100644 obj/item/mail.html create mode 100644 obj/item/mail/junkmail.html create mode 100644 obj/item/mail/traitor.html create mode 100644 obj/item/market_uplink.html create mode 100644 obj/item/match.html create mode 100644 obj/item/mecha_ammo.html create mode 100644 obj/item/mecha_parts/mecha_equipment.html create mode 100644 obj/item/mecha_parts/mecha_equipment/air_tank.html create mode 100644 obj/item/mecha_parts/mecha_equipment/armor.html create mode 100644 obj/item/mecha_parts/mecha_equipment/drill.html create mode 100644 obj/item/mecha_parts/mecha_equipment/ejector.html create mode 100644 obj/item/mecha_parts/mecha_equipment/extinguisher.html create mode 100644 obj/item/mecha_parts/mecha_equipment/generator.html create mode 100644 obj/item/mecha_parts/mecha_equipment/gravcatapult.html create mode 100644 obj/item/mecha_parts/mecha_equipment/hydraulic_clamp.html create mode 100644 obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam.html create mode 100644 obj/item/mecha_parts/mecha_equipment/medical/sleeper.html create mode 100644 obj/item/mecha_parts/mecha_equipment/medical/syringe_gun.html create mode 100644 obj/item/mecha_parts/mecha_equipment/radio.html create mode 100644 obj/item/mecha_parts/mecha_equipment/rcd.html create mode 100644 obj/item/mecha_parts/mecha_equipment/repair_droid.html create mode 100644 obj/item/mecha_parts/mecha_equipment/weapon.html create mode 100644 obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove.html create mode 100644 obj/item/mecha_parts/mecha_equipment/weapon/paddy_claw.html create mode 100644 obj/item/mecha_parts/mecha_tracking.html create mode 100644 obj/item/melee/baseball_bat.html create mode 100644 obj/item/melee/baton.html create mode 100644 obj/item/melee/baton/security.html create mode 100644 obj/item/melee/baton/security/cattleprod.html create mode 100644 obj/item/melee/baton/telescopic.html create mode 100644 obj/item/melee/baton/telescopic/contractor_baton.html create mode 100644 obj/item/melee/blood_magic/manipulator.html create mode 100644 obj/item/melee/breaching_hammer.html create mode 100644 obj/item/melee/cleaving_saw.html create mode 100644 obj/item/melee/cultblade.html create mode 100644 obj/item/melee/cultblade/haunted.html create mode 100644 obj/item/melee/energy.html create mode 100644 obj/item/melee/energy/blade.html create mode 100644 obj/item/melee/energy/sword/bananium.html create mode 100644 obj/item/melee/energy/sword/cyborg.html create mode 100644 obj/item/melee/energy/sword/saber.html create mode 100644 obj/item/melee/flyswatter.html create mode 100644 obj/item/melee/powerfist.html create mode 100644 obj/item/melee/roastingstick.html create mode 100644 obj/item/melee/rune_carver.html create mode 100644 obj/item/melee/sabre.html create mode 100644 obj/item/melee/sickly_blade.html create mode 100644 obj/item/melee/skateboard.html create mode 100644 obj/item/melee/touch_attack.html create mode 100644 obj/item/mending_globule.html create mode 100644 obj/item/microfusion_cell_attachment.html create mode 100644 obj/item/microfusion_cell_attachment/overcapacity.html create mode 100644 obj/item/microfusion_cell_attachment/rechargeable.html create mode 100644 obj/item/microfusion_cell_attachment/selfcharging.html create mode 100644 obj/item/microfusion_gun_attachment.html create mode 100644 obj/item/microfusion_gun_attachment/barrel.html create mode 100644 obj/item/microfusion_gun_attachment/barrel/scatter.html create mode 100644 obj/item/microfusion_gun_attachment/heatsink.html create mode 100644 obj/item/microfusion_gun_attachment/rgb.html create mode 100644 obj/item/microfusion_gun_attachment/undercharger.html create mode 100644 obj/item/microfusion_phase_emitter.html create mode 100644 obj/item/mind_controller.html create mode 100644 obj/item/minebot_remote_control.html create mode 100644 obj/item/minespawner.html create mode 100644 obj/item/mining_scanner.html create mode 100644 obj/item/mmi.html create mode 100644 obj/item/mmi/posibrain.html create mode 100644 obj/item/mmi/posibrain/sphere.html create mode 100644 obj/item/mod/control.html create mode 100644 obj/item/mod/control/pre_equipped.html create mode 100644 obj/item/mod/control/pre_equipped/responsory.html create mode 100644 obj/item/mod/core.html create mode 100644 obj/item/mod/core/ethereal.html create mode 100644 obj/item/mod/core/plasma.html create mode 100644 obj/item/mod/core/plasma/lavaland.html create mode 100644 obj/item/mod/core/standard.html create mode 100644 obj/item/mod/module.html create mode 100644 obj/item/mod/module/active_sonar.html create mode 100644 obj/item/mod/module/adrenaline_boost.html create mode 100644 obj/item/mod/module/anomaly_locked.html create mode 100644 obj/item/mod/module/anomaly_locked/kinesis.html create mode 100644 obj/item/mod/module/anomaly_locked/kinesis/admin.html create mode 100644 obj/item/mod/module/anomaly_locked/teleporter.html create mode 100644 obj/item/mod/module/armor_booster.html create mode 100644 obj/item/mod/module/ash_accretion.html create mode 100644 obj/item/mod/module/atrocinator.html create mode 100644 obj/item/mod/module/auto_doc.html create mode 100644 obj/item/mod/module/baton_holster.html create mode 100644 obj/item/mod/module/chameleon.html create mode 100644 obj/item/mod/module/circuit.html create mode 100644 obj/item/mod/module/clamp.html create mode 100644 obj/item/mod/module/criminalcapture.html create mode 100644 obj/item/mod/module/dispenser.html create mode 100644 obj/item/mod/module/dna_lock.html create mode 100644 obj/item/mod/module/energy_net.html create mode 100644 obj/item/mod/module/energy_shield.html create mode 100644 obj/item/mod/module/eradication_lock.html create mode 100644 obj/item/mod/module/flashlight.html create mode 100644 obj/item/mod/module/hacker.html create mode 100644 obj/item/mod/module/hat_stabilizer.html create mode 100644 obj/item/mod/module/health_analyzer.html create mode 100644 obj/item/mod/module/holster.html create mode 100644 obj/item/mod/module/hydraulic.html create mode 100644 obj/item/mod/module/infiltrator.html create mode 100644 obj/item/mod/module/jetpack.html create mode 100644 obj/item/mod/module/magboot.html create mode 100644 obj/item/mod/module/magnetic_harness.html create mode 100644 obj/item/mod/module/megaphone.html create mode 100644 obj/item/mod/module/mister.html create mode 100644 obj/item/mod/module/mouthhole.html create mode 100644 obj/item/mod/module/orebag.html create mode 100644 obj/item/mod/module/organizer.html create mode 100644 obj/item/mod/module/paper_dispenser.html create mode 100644 obj/item/mod/module/pathfinder.html create mode 100644 obj/item/mod/module/plate_compression.html create mode 100644 obj/item/mod/module/power_kick.html create mode 100644 obj/item/mod/module/projectile_dampener.html create mode 100644 obj/item/mod/module/rad_protection.html create mode 100644 obj/item/mod/module/recycler.html create mode 100644 obj/item/mod/module/recycler/donk.html create mode 100644 obj/item/mod/module/rewinder.html create mode 100644 obj/item/mod/module/shooting_assistant.html create mode 100644 obj/item/mod/module/smartgun.html create mode 100644 obj/item/mod/module/sphere_transform.html create mode 100644 obj/item/mod/module/springlock.html create mode 100644 obj/item/mod/module/status_readout.html create mode 100644 obj/item/mod/module/stealth.html create mode 100644 obj/item/mod/module/storage.html create mode 100644 obj/item/mod/module/t_ray.html create mode 100644 obj/item/mod/module/tem.html create mode 100644 obj/item/mod/module/thermal_regulator.html create mode 100644 obj/item/mod/module/thread_ripper.html create mode 100644 obj/item/mod/module/timeline_jumper.html create mode 100644 obj/item/mod/module/timestopper.html create mode 100644 obj/item/mod/module/visor.html create mode 100644 obj/item/mod/module/visor/rave.html create mode 100644 obj/item/mod/module/weapon_recall.html create mode 100644 obj/item/modular_computer.html create mode 100644 obj/item/modular_computer/pda.html create mode 100644 obj/item/modular_computer/pda/clown.html create mode 100644 obj/item/modular_computer/pda/nukeops.html create mode 100644 obj/item/modular_computer/pda/silicon.html create mode 100644 obj/item/modular_computer/processor.html create mode 100644 obj/item/mop.html create mode 100644 obj/item/mop/advanced.html create mode 100644 obj/item/mounted_machine_gun_folded.html create mode 100644 obj/item/multitool.html create mode 100644 obj/item/multitool/circuit.html create mode 100644 obj/item/multitool/uplink.html create mode 100644 obj/item/mutant_hand.html create mode 100644 obj/item/necromantic_stone.html create mode 100644 obj/item/newspaper.html create mode 100644 obj/item/nif_hud_adapter.html create mode 100644 obj/item/nif_repair_kit.html create mode 100644 obj/item/nifsoft_remover.html create mode 100644 obj/item/nuclear_challenge.html create mode 100644 obj/item/nullrod.html create mode 100644 obj/item/nullrod/nullblade.html create mode 100644 obj/item/nullrod/staff.html create mode 100644 obj/item/organ.html create mode 100644 obj/item/organ/external.html create mode 100644 obj/item/organ/external/antennae.html create mode 100644 obj/item/organ/external/genital.html create mode 100644 obj/item/organ/external/tail.html create mode 100644 obj/item/organ/external/taur_body.html create mode 100644 obj/item/organ/external/taur_body/serpentine.html create mode 100644 obj/item/organ/external/wings.html create mode 100644 obj/item/organ/external/wings/functional.html create mode 100644 obj/item/organ/external/wings/moth.html create mode 100644 obj/item/organ/internal.html create mode 100644 obj/item/organ/internal/alien/hivenode.html create mode 100644 obj/item/organ/internal/alien/plasmavessel.html create mode 100644 obj/item/organ/internal/appendix/corrupt.html create mode 100644 obj/item/organ/internal/appendix/golem.html create mode 100644 obj/item/organ/internal/body_egg/alien_embryo.html create mode 100644 obj/item/organ/internal/body_egg/changeling_egg.html create mode 100644 obj/item/organ/internal/borer_body.html create mode 100644 obj/item/organ/internal/brain.html create mode 100644 obj/item/organ/internal/brain/carp.html create mode 100644 obj/item/organ/internal/brain/primate.html create mode 100644 obj/item/organ/internal/brain/shadow.html create mode 100644 obj/item/organ/internal/brain/shadow/nightmare.html create mode 100644 obj/item/organ/internal/brain/synth.html create mode 100644 obj/item/organ/internal/brain/voidwalker.html create mode 100644 obj/item/organ/internal/cyberimp/arm.html create mode 100644 obj/item/organ/internal/cyberimp/arm/strongarm.html create mode 100644 obj/item/organ/internal/cyberimp/brain/anti_stun.html create mode 100644 obj/item/organ/internal/cyberimp/brain/nif.html create mode 100644 obj/item/organ/internal/cyberimp/chest/spine.html create mode 100644 obj/item/organ/internal/cyberimp/eyes/hud.html create mode 100644 obj/item/organ/internal/ears.html create mode 100644 obj/item/organ/internal/empowered_borer_egg.html create mode 100644 obj/item/organ/internal/eyes.html create mode 100644 obj/item/organ/internal/eyes/corrupt.html create mode 100644 obj/item/organ/internal/eyes/robotic/glow.html create mode 100644 obj/item/organ/internal/heart.html create mode 100644 obj/item/organ/internal/heart/corrupt.html create mode 100644 obj/item/organ/internal/heart/cybernetic.html create mode 100644 obj/item/organ/internal/heart/cybernetic/anomalock.html create mode 100644 obj/item/organ/internal/heart/ethereal.html create mode 100644 obj/item/organ/internal/heart/freedom.html create mode 100644 obj/item/organ/internal/heart/gland.html create mode 100644 obj/item/organ/internal/heart/gondola.html create mode 100644 obj/item/organ/internal/heart/hemophage.html create mode 100644 obj/item/organ/internal/heart/nightmare.html create mode 100644 obj/item/organ/internal/heart/roach.html create mode 100644 obj/item/organ/internal/heart/snail.html create mode 100644 obj/item/organ/internal/legion_tumour.html create mode 100644 obj/item/organ/internal/liver.html create mode 100644 obj/item/organ/internal/liver/bone.html create mode 100644 obj/item/organ/internal/liver/corrupt.html create mode 100644 obj/item/organ/internal/liver/golem.html create mode 100644 obj/item/organ/internal/liver/gondola.html create mode 100644 obj/item/organ/internal/lungs.html create mode 100644 obj/item/organ/internal/lungs/corrupt.html create mode 100644 obj/item/organ/internal/lungs/ethereal.html create mode 100644 obj/item/organ/internal/monster_core.html create mode 100644 obj/item/organ/internal/monster_core/brimdust_sac.html create mode 100644 obj/item/organ/internal/monster_core/regenerative_core.html create mode 100644 obj/item/organ/internal/stomach.html create mode 100644 obj/item/organ/internal/stomach/corrupt.html create mode 100644 obj/item/organ/internal/stomach/ethereal.html create mode 100644 obj/item/organ/internal/stomach/golem.html create mode 100644 obj/item/organ/internal/stomach/synth.html create mode 100644 obj/item/organ/internal/tongue.html create mode 100644 obj/item/organ/internal/tongue/corrupt.html create mode 100644 obj/item/orion_ship.html create mode 100644 obj/item/pai_cable.html create mode 100644 obj/item/pai_card.html create mode 100644 obj/item/paint.html create mode 100644 obj/item/paint/anycolor.html create mode 100644 obj/item/paint_palette.html create mode 100644 obj/item/paper.html create mode 100644 obj/item/paper/fake_report.html create mode 100644 obj/item/paper/fake_report/water.html create mode 100644 obj/item/paper/fluff/scrambled_pass.html create mode 100644 obj/item/paper/joker.html create mode 100644 obj/item/paper/monitorkey.html create mode 100644 obj/item/paper/paperslip/ration_ticket.html create mode 100644 obj/item/paper/paperslip/ration_ticket/luxury.html create mode 100644 obj/item/paper/report.html create mode 100644 obj/item/paper/secretrecipe.html create mode 100644 obj/item/paper/work_contract.html create mode 100644 obj/item/paper_bin.html create mode 100644 obj/item/paper_bin/bundlenatural.html create mode 100644 obj/item/papercutter.html create mode 100644 obj/item/paperplane.html create mode 100644 obj/item/paperplane/syndicate/hardlight.html create mode 100644 obj/item/paperwork.html create mode 100644 obj/item/paperwork/photocopy.html create mode 100644 obj/item/pen.html create mode 100644 obj/item/pen/edagger.html create mode 100644 obj/item/pen/uplink.html create mode 100644 obj/item/perfume.html create mode 100644 obj/item/permanent_portal_anchor.html create mode 100644 obj/item/permanent_portal_creator.html create mode 100644 obj/item/petri_dish.html create mode 100644 obj/item/ph_booklet.html create mode 100644 obj/item/ph_meter.html create mode 100644 obj/item/ph_paper.html create mode 100644 obj/item/physic_manipulation_tool.html create mode 100644 obj/item/piggy_bank.html create mode 100644 obj/item/pillow.html create mode 100644 obj/item/pinata.html create mode 100644 obj/item/pinpointer.html create mode 100644 obj/item/pinpointer/crew.html create mode 100644 obj/item/pipe.html create mode 100644 obj/item/pipe_dispenser.html create mode 100644 obj/item/pipe_dispenser/bluespace.html create mode 100644 obj/item/pitchfork.html create mode 100644 obj/item/pizzabox.html create mode 100644 obj/item/pizzabox/infinite.html create mode 100644 obj/item/plant_analyzer.html create mode 100644 obj/item/plaque.html create mode 100644 obj/item/plate.html create mode 100644 obj/item/plate_shard.html create mode 100644 obj/item/plunger.html create mode 100644 obj/item/polymorph_belt.html create mode 100644 obj/item/poster.html create mode 100644 obj/item/poster/quirk.html create mode 100644 obj/item/powersink.html create mode 100644 obj/item/pressure_plate.html create mode 100644 obj/item/pressure_plate/puzzle.html create mode 100644 obj/item/pushbroom.html create mode 100644 obj/item/quantum_keycard.html create mode 100644 obj/item/queen_bee.html create mode 100644 obj/item/radio.html create mode 100644 obj/item/radio/headset.html create mode 100644 obj/item/radio/intercom.html create mode 100644 obj/item/raptor_dex.html create mode 100644 obj/item/raw_anomaly_core.html create mode 100644 obj/item/rcl.html create mode 100644 obj/item/reagent_containers.html create mode 100644 obj/item/reagent_containers/blood.html create mode 100644 obj/item/reagent_containers/borghypo.html create mode 100644 obj/item/reagent_containers/borghypo/medical.html create mode 100644 obj/item/reagent_containers/chem_pack.html create mode 100644 obj/item/reagent_containers/chemtank.html create mode 100644 obj/item/reagent_containers/condiment.html create mode 100644 obj/item/reagent_containers/condiment/pack.html create mode 100644 obj/item/reagent_containers/cup.html create mode 100644 obj/item/reagent_containers/cup/bottle/syrup_bottle.html create mode 100644 obj/item/reagent_containers/cup/bowl.html create mode 100644 obj/item/reagent_containers/cup/glass/bottle.html create mode 100644 obj/item/reagent_containers/cup/glass/bottle/champagne.html create mode 100644 obj/item/reagent_containers/cup/glass/bottle/pruno.html create mode 100644 obj/item/reagent_containers/cup/glass/colocup.html create mode 100644 obj/item/reagent_containers/cup/glass/drinkingglass.html create mode 100644 obj/item/reagent_containers/cup/glass/shaker.html create mode 100644 obj/item/reagent_containers/cup/rag.html create mode 100644 obj/item/reagent_containers/cup/soda_cans.html create mode 100644 obj/item/reagent_containers/cup/soda_cans/skyrat.html create mode 100644 obj/item/reagent_containers/cup/soup_pot.html create mode 100644 obj/item/reagent_containers/cup/watering_can/advanced.html create mode 100644 obj/item/reagent_containers/hypospray.html create mode 100644 obj/item/reagent_containers/hypospray/medipen/deforest.html create mode 100644 obj/item/reagent_containers/pill.html create mode 100644 obj/item/reagent_containers/spray.html create mode 100644 obj/item/reagent_containers/syringe.html create mode 100644 obj/item/research_notes.html create mode 100644 obj/item/research_paper.html create mode 100644 obj/item/research_scrap.html create mode 100644 obj/item/resonator.html create mode 100644 obj/item/respawn_implant.html create mode 100644 obj/item/restraints.html create mode 100644 obj/item/restraints/handcuffs.html create mode 100644 obj/item/restraints/handcuffs/cable.html create mode 100644 obj/item/restraints/handcuffs/cable/sinew.html create mode 100644 obj/item/restraints/handcuffs/milker.html create mode 100644 obj/item/restraints/legcuffs/beartrap.html create mode 100644 obj/item/restraints/legcuffs/beartrap/energy.html create mode 100644 obj/item/restraints/legcuffs/bola.html create mode 100644 obj/item/restraints/legcuffs/bola/energy.html create mode 100644 obj/item/restraints/legcuffs/bola/gonbola.html create mode 100644 obj/item/restraints/legcuffs/bola/tactical.html create mode 100644 obj/item/resurrection_crystal.html create mode 100644 obj/item/retractor.html create mode 100644 obj/item/reverse_bear_trap.html create mode 100644 obj/item/ritual_totem.html create mode 100644 obj/item/rna_extractor.html create mode 100644 obj/item/robot_model.html create mode 100644 obj/item/robot_model/janitor.html create mode 100644 obj/item/robot_suit.html create mode 100644 obj/item/royale_implanter.html create mode 100644 obj/item/royale_remote.html create mode 100644 obj/item/rpd_upgrade.html create mode 100644 obj/item/rsd_interface.html create mode 100644 obj/item/rsf.html create mode 100644 obj/item/rsf/cookiesynth.html create mode 100644 obj/item/runic_vendor_scepter.html create mode 100644 obj/item/rwd.html create mode 100644 obj/item/sales_tagger.html create mode 100644 obj/item/scalpel.html create mode 100644 obj/item/screwdriver.html create mode 100644 obj/item/screwdriver/omni_drill.html create mode 100644 obj/item/secateurs.html create mode 100644 obj/item/seeds.html create mode 100644 obj/item/seeds/replicapod.html create mode 100644 obj/item/sequence_scanner.html create mode 100644 obj/item/serviette.html create mode 100644 obj/item/serviette_pack.html create mode 100644 obj/item/sharpener.html create mode 100644 obj/item/sharpener/super.html create mode 100644 obj/item/shield.html create mode 100644 obj/item/shield/energy.html create mode 100644 obj/item/shield/riot/flash.html create mode 100644 obj/item/shield/riot/tele.html create mode 100644 obj/item/shockpaddles.html create mode 100644 obj/item/shovel/giant_wrench.html create mode 100644 obj/item/shuttle_curse.html create mode 100644 obj/item/sign.html create mode 100644 obj/item/sign/flag.html create mode 100644 obj/item/singularityhammer.html create mode 100644 obj/item/skillchip.html create mode 100644 obj/item/skillchip/big_pointer.html create mode 100644 obj/item/skillchip/job/chef.html create mode 100644 obj/item/skillchip/matrix_taunt.html create mode 100644 obj/item/sliced_pipe.html create mode 100644 obj/item/slime_extract.html create mode 100644 obj/item/slimecross/burning/oil.html create mode 100644 obj/item/slimecross/stabilized.html create mode 100644 obj/item/slimepotion.html create mode 100644 obj/item/slimepotion/slime/sentience.html create mode 100644 obj/item/slimepotion/slime/sentience/mining.html create mode 100644 obj/item/smelling_salts.html create mode 100644 obj/item/soap.html create mode 100644 obj/item/solfed_reporter.html create mode 100644 obj/item/soulscythe.html create mode 100644 obj/item/soulstone.html create mode 100644 obj/item/spanking_pad.html create mode 100644 obj/item/sparkler.html create mode 100644 obj/item/sparring_contract.html create mode 100644 obj/item/spear.html create mode 100644 obj/item/spellbook.html create mode 100644 obj/item/spess_knife.html create mode 100644 obj/item/stack.html create mode 100644 obj/item/stack/cable_coil.html create mode 100644 obj/item/stack/cannonball.html create mode 100644 obj/item/stack/conveyor.html create mode 100644 obj/item/stack/ducts.html create mode 100644 obj/item/stack/license_plates/filled.html create mode 100644 obj/item/stack/medical.html create mode 100644 obj/item/stack/medical/gauze.html create mode 100644 obj/item/stack/medical/mesh.html create mode 100644 obj/item/stack/medical/wound_recovery.html create mode 100644 obj/item/stack/ore/bluespace_crystal.html create mode 100644 obj/item/stack/pipe_cleaner_coil.html create mode 100644 obj/item/stack/pipe_cleaner_coil/cyborg.html create mode 100644 obj/item/stack/sheet.html create mode 100644 obj/item/stack/sheet/wethide.html create mode 100644 obj/item/stack/shibari_rope.html create mode 100644 obj/item/stack/sticky_tape.html create mode 100644 obj/item/stack/tile.html create mode 100644 obj/item/stack/tile/carpet/neon.html create mode 100644 obj/item/stack/tile/mineral.html create mode 100644 obj/item/stake.html create mode 100644 obj/item/sticker.html create mode 100644 obj/item/stock_block.html create mode 100644 obj/item/stock_parts.html create mode 100644 obj/item/stock_parts/capacitor.html create mode 100644 obj/item/stock_parts/power_store.html create mode 100644 obj/item/stock_parts/power_store/cell.html create mode 100644 obj/item/stock_parts/power_store/cell/crank.html create mode 100644 obj/item/stock_parts/power_store/cell/microfusion.html create mode 100644 obj/item/stock_parts/power_store/cell/self_charge.html create mode 100644 obj/item/storage.html create mode 100644 obj/item/storage/backpack/duffelbag.html create mode 100644 obj/item/storage/backpack/industrial/cin_surplus/random_color.html create mode 100644 obj/item/storage/backpack/meat.html create mode 100644 obj/item/storage/backpack/snail.html create mode 100644 obj/item/storage/bag/money/dutchmen.html create mode 100644 obj/item/storage/bag/ore.html create mode 100644 obj/item/storage/bag/plants.html create mode 100644 obj/item/storage/bag/quiver.html create mode 100644 obj/item/storage/bag/trash.html create mode 100644 obj/item/storage/belt/military/cin_surplus/random_color.html create mode 100644 obj/item/storage/box.html create mode 100644 obj/item/storage/box/donkpockets.html create mode 100644 obj/item/storage/box/foodpack.html create mode 100644 obj/item/storage/box/holy.html create mode 100644 obj/item/storage/box/monkeycubes.html create mode 100644 obj/item/storage/box/papersack.html create mode 100644 obj/item/storage/box/posterbox.html create mode 100644 obj/item/storage/box/spaceman_ration.html create mode 100644 obj/item/storage/box/survival.html create mode 100644 obj/item/storage/box/syndie_kit/poster_box.html create mode 100644 obj/item/storage/fancy.html create mode 100644 obj/item/storage/fancy/cigarettes.html create mode 100644 obj/item/storage/hypospraykit.html create mode 100644 obj/item/storage/lockbox.html create mode 100644 obj/item/storage/lockbox/bitrunning/decrypted.html create mode 100644 obj/item/storage/lockbox/bitrunning/encrypted.html create mode 100644 obj/item/storage/lockbox/order.html create mode 100644 obj/item/storage/medkit.html create mode 100644 obj/item/storage/organbox.html create mode 100644 obj/item/storage/part_replacer/bluespace.html create mode 100644 obj/item/storage/part_replacer/bluespace/tier4/bst.html create mode 100644 obj/item/storage/portable_chem_mixer.html create mode 100644 obj/item/storage/pouch/medical.html create mode 100644 obj/item/storage/toolbox/ammobox/full.html create mode 100644 obj/item/storage/toolbox/fishing.html create mode 100644 obj/item/storage/toolbox/guncase/skyrat.html create mode 100644 obj/item/storage/toolbox/mechanical.html create mode 100644 obj/item/storage/wallet.html create mode 100644 obj/item/style_meter.html create mode 100644 obj/item/summon_beacon.html create mode 100644 obj/item/supplypod_beacon.html create mode 100644 obj/item/surgery_tray.html create mode 100644 obj/item/surgicaldrill.html create mode 100644 obj/item/survivalcapsule.html create mode 100644 obj/item/swab.html create mode 100644 obj/item/swapper.html create mode 100644 obj/item/switchblade.html create mode 100644 obj/item/syndicate_teleporter.html create mode 100644 obj/item/synth_powercord.html create mode 100644 obj/item/t_scanner.html create mode 100644 obj/item/t_scanner/adv_mining_scanner.html create mode 100644 obj/item/table_clock.html create mode 100644 obj/item/tank.html create mode 100644 obj/item/tank/internals.html create mode 100644 obj/item/tank/jetpack.html create mode 100644 obj/item/tape.html create mode 100644 obj/item/tape/ruins.html create mode 100644 obj/item/taperecorder.html create mode 100644 obj/item/target.html create mode 100644 obj/item/tattoo_kit.html create mode 100644 obj/item/tcgcard.html create mode 100644 obj/item/tcgcard_deck.html create mode 100644 obj/item/teleport_rod.html create mode 100644 obj/item/teleportation_scroll.html create mode 100644 obj/item/thermometer.html create mode 100644 obj/item/throwing_star/stamina/ninja.html create mode 100644 obj/item/tk_grab.html create mode 100644 obj/item/towel.html create mode 100644 obj/item/toy/balloon.html create mode 100644 obj/item/toy/balloon/long.html create mode 100644 obj/item/toy/basketball.html create mode 100644 obj/item/toy/captainsaid.html create mode 100644 obj/item/toy/cards.html create mode 100644 obj/item/toy/cards/deck.html create mode 100644 obj/item/toy/cards/deck/tarot/haunted.html create mode 100644 obj/item/toy/crayon.html create mode 100644 obj/item/toy/eightball.html create mode 100644 obj/item/toy/eldritch_book.html create mode 100644 obj/item/toy/intento.html create mode 100644 obj/item/toy/mecha.html create mode 100644 obj/item/toy/plush.html create mode 100644 obj/item/toy/plush/goatplushie.html create mode 100644 obj/item/toy/plush/moth.html create mode 100644 obj/item/toy/plush/skyrat/zapp.html create mode 100644 obj/item/toy/plush/whiny_plushie.html create mode 100644 obj/item/toy/singlecard.html create mode 100644 obj/item/toy/spinningtoy.html create mode 100644 obj/item/toy/sword.html create mode 100644 obj/item/toy/xmas_cracker.html create mode 100644 obj/item/trade_chip.html create mode 100644 obj/item/training_toolbox.html create mode 100644 obj/item/traitor_bug.html create mode 100644 obj/item/traitor_machine_trapper.html create mode 100644 obj/item/traitor_spraycan.html create mode 100644 obj/item/transfer_valve.html create mode 100644 obj/item/trapdoor_remote.html create mode 100644 obj/item/trash/bee.html create mode 100644 obj/item/turbine_parts.html create mode 100644 obj/item/turret_control.html create mode 100644 obj/item/udder.html create mode 100644 obj/item/universal_scanner.html create mode 100644 obj/item/uplink.html create mode 100644 obj/item/usb_cable.html create mode 100644 obj/item/vape.html create mode 100644 obj/item/vending_refill.html create mode 100644 obj/item/virgin_mary.html create mode 100644 obj/item/void_eater.html create mode 100644 obj/item/vorpalscythe.html create mode 100644 obj/item/wallframe/clocktrap.html create mode 100644 obj/item/wallframe/wall_heater.html create mode 100644 obj/item/wargame_projector.html create mode 100644 obj/item/warp_whistle.html create mode 100644 obj/item/watcher_hatchling.html create mode 100644 obj/item/weaponcell.html create mode 100644 obj/item/weldingtool.html create mode 100644 obj/item/wheelchair.html create mode 100644 obj/item/wirecutters.html create mode 100644 obj/item/wrench/medical.html create mode 100644 obj/item/xenoarch/strange_rock.html create mode 100644 obj/item/xenoarch/useless_relic.html create mode 100644 obj/lightning_thrower.html create mode 100644 obj/loop_spawner.html create mode 100644 obj/machinery.html create mode 100644 obj/machinery/abductor/console.html create mode 100644 obj/machinery/abductor/experiment.html create mode 100644 obj/machinery/ai_voicechanger.html create mode 100644 obj/machinery/air_sensor.html create mode 100644 obj/machinery/airalarm.html create mode 100644 obj/machinery/airlock_controller.html create mode 100644 obj/machinery/ammo_workbench.html create mode 100644 obj/machinery/anesthetic_machine.html create mode 100644 obj/machinery/announcement_system.html create mode 100644 obj/machinery/anomalous_crystal.html create mode 100644 obj/machinery/anomalous_crystal/honk.html create mode 100644 obj/machinery/anomalous_crystal/possessor.html create mode 100644 obj/machinery/anomalous_crystal/theme_warp.html create mode 100644 obj/machinery/arc_furnace.html create mode 100644 obj/machinery/armament_station.html create mode 100644 obj/machinery/atmospherics.html create mode 100644 obj/machinery/atmospherics/components.html create mode 100644 obj/machinery/atmospherics/components/binary.html create mode 100644 obj/machinery/atmospherics/components/binary/crystallizer.html create mode 100644 obj/machinery/atmospherics/components/binary/dp_vent_pump.html create mode 100644 obj/machinery/atmospherics/components/binary/passive_gate.html create mode 100644 obj/machinery/atmospherics/components/binary/pressure_valve.html create mode 100644 obj/machinery/atmospherics/components/binary/pump.html create mode 100644 obj/machinery/atmospherics/components/binary/tank_compressor.html create mode 100644 obj/machinery/atmospherics/components/binary/temperature_gate.html create mode 100644 obj/machinery/atmospherics/components/binary/temperature_pump.html create mode 100644 obj/machinery/atmospherics/components/binary/valve.html create mode 100644 obj/machinery/atmospherics/components/binary/volume_pump.html create mode 100644 obj/machinery/atmospherics/components/tank.html create mode 100644 obj/machinery/atmospherics/components/trinary.html create mode 100644 obj/machinery/atmospherics/components/trinary/filter.html create mode 100644 obj/machinery/atmospherics/components/trinary/mixer.html create mode 100644 obj/machinery/atmospherics/components/unary.html create mode 100644 obj/machinery/atmospherics/components/unary/airlock_pump.html create mode 100644 obj/machinery/atmospherics/components/unary/bluespace_sender.html create mode 100644 obj/machinery/atmospherics/components/unary/delam_scram.html create mode 100644 obj/machinery/atmospherics/components/unary/hypertorus.html create mode 100644 obj/machinery/atmospherics/components/unary/hypertorus/core.html create mode 100644 obj/machinery/atmospherics/components/unary/outlet_injector.html create mode 100644 obj/machinery/atmospherics/components/unary/outlet_injector/monitored.html create mode 100644 obj/machinery/atmospherics/components/unary/portables_connector.html create mode 100644 obj/machinery/atmospherics/components/unary/thermomachine.html create mode 100644 obj/machinery/atmospherics/components/unary/thermomachine/deployable.html create mode 100644 obj/machinery/atmospherics/components/unary/vent_pump.html create mode 100644 obj/machinery/atmospherics/components/unary/vent_scrubber.html create mode 100644 obj/machinery/atmospherics/miner.html create mode 100644 obj/machinery/atmospherics/pipe.html create mode 100644 obj/machinery/atmospherics/pipe/color_adapter.html create mode 100644 obj/machinery/atmospherics/pipe/layer_manifold.html create mode 100644 obj/machinery/atmospherics/pipe/multiz.html create mode 100644 obj/machinery/atmospherics/pipe/smart.html create mode 100644 obj/machinery/autolathe.html create mode 100644 obj/machinery/automatic_respawner.html create mode 100644 obj/machinery/barsign.html create mode 100644 obj/machinery/base_alarm.html create mode 100644 obj/machinery/big_manipulator.html create mode 100644 obj/machinery/biogenerator.html create mode 100644 obj/machinery/biogenerator/foodricator.html create mode 100644 obj/machinery/biogenerator/medstation.html create mode 100644 obj/machinery/blackbox_recorder.html create mode 100644 obj/machinery/bluespace_miner.html create mode 100644 obj/machinery/bluespace_vendor.html create mode 100644 obj/machinery/bookbinder.html create mode 100644 obj/machinery/bouldertech.html create mode 100644 obj/machinery/brm.html create mode 100644 obj/machinery/bsa.html create mode 100644 obj/machinery/bsa/full.html create mode 100644 obj/machinery/bsa/middle.html create mode 100644 obj/machinery/button.html create mode 100644 obj/machinery/button/delam_scram.html create mode 100644 obj/machinery/button/transport/tram.html create mode 100644 obj/machinery/byteforge.html create mode 100644 obj/machinery/camera.html create mode 100644 obj/machinery/camera/emp_proof/motion.html create mode 100644 obj/machinery/camera/exosuit.html create mode 100644 obj/machinery/cell_charger_multi.html create mode 100644 obj/machinery/cell_charger_multi/wall_mounted.html create mode 100644 obj/machinery/chem_dispenser.html create mode 100644 obj/machinery/chem_dispenser/abductor.html create mode 100644 obj/machinery/chem_dispenser/chem_synthesizer.html create mode 100644 obj/machinery/chem_dispenser/drinks.html create mode 100644 obj/machinery/chem_dispenser/drinks/beer.html create mode 100644 obj/machinery/chem_dispenser/frontier_appliance.html create mode 100644 obj/machinery/chem_dispenser/mutagen.html create mode 100644 obj/machinery/chem_dispenser/mutagensaltpeter.html create mode 100644 obj/machinery/chem_heater.html create mode 100644 obj/machinery/chem_mass_spec.html create mode 100644 obj/machinery/chem_master.html create mode 100644 obj/machinery/chem_recipe_debug.html create mode 100644 obj/machinery/coffeemaker.html create mode 100644 obj/machinery/coffeemaker/impressa.html create mode 100644 obj/machinery/colony_recycler.html create mode 100644 obj/machinery/component_printer.html create mode 100644 obj/machinery/computer.html create mode 100644 obj/machinery/computer/aifixer.html create mode 100644 obj/machinery/computer/arcade.html create mode 100644 obj/machinery/computer/arcade/amputation.html create mode 100644 obj/machinery/computer/arcade/battle.html create mode 100644 obj/machinery/computer/arcade/orion_trail.html create mode 100644 obj/machinery/computer/atmos_control.html create mode 100644 obj/machinery/computer/auxiliary_base.html create mode 100644 obj/machinery/computer/bank_machine.html create mode 100644 obj/machinery/computer/bsa_control.html create mode 100644 obj/machinery/computer/camera_advanced.html create mode 100644 obj/machinery/computer/camera_advanced/abductor.html create mode 100644 obj/machinery/computer/camera_advanced/base_construction.html create mode 100644 obj/machinery/computer/camera_advanced/shuttle_docker.html create mode 100644 obj/machinery/computer/camera_advanced/xenobio.html create mode 100644 obj/machinery/computer/cargo.html create mode 100644 obj/machinery/computer/cargo/express.html create mode 100644 obj/machinery/computer/centcom_announcement.html create mode 100644 obj/machinery/computer/communications.html create mode 100644 obj/machinery/computer/cryopod.html create mode 100644 obj/machinery/computer/exodrone_control_console.html create mode 100644 obj/machinery/computer/exoscanner_control.html create mode 100644 obj/machinery/computer/holodeck.html create mode 100644 obj/machinery/computer/libraryconsole.html create mode 100644 obj/machinery/computer/libraryconsole/admin_only_do_not_map_in_you_fucker.html create mode 100644 obj/machinery/computer/libraryconsole/bookmanagement.html create mode 100644 obj/machinery/computer/mech_bay_power_console.html create mode 100644 obj/machinery/computer/mechpad.html create mode 100644 obj/machinery/computer/message_monitor.html create mode 100644 obj/machinery/computer/order_console.html create mode 100644 obj/machinery/computer/order_console/cook/interdyne.html create mode 100644 obj/machinery/computer/order_console/mining.html create mode 100644 obj/machinery/computer/pandemic.html create mode 100644 obj/machinery/computer/piratepad_control.html create mode 100644 obj/machinery/computer/piratepad_control/civilian.html create mode 100644 obj/machinery/computer/piratepad_control/syndiepad.html create mode 100644 obj/machinery/computer/pod.html create mode 100644 obj/machinery/computer/prisoner.html create mode 100644 obj/machinery/computer/quantum_console.html create mode 100644 obj/machinery/computer/rdconsole.html create mode 100644 obj/machinery/computer/rdservercontrol.html create mode 100644 obj/machinery/computer/records.html create mode 100644 obj/machinery/computer/records/medical.html create mode 100644 obj/machinery/computer/records/security.html create mode 100644 obj/machinery/computer/scan_consolenew.html create mode 100644 obj/machinery/computer/security.html create mode 100644 obj/machinery/computer/security/telescreen.html create mode 100644 obj/machinery/computer/security/telescreen/entertainment.html create mode 100644 obj/machinery/computer/shuttle.html create mode 100644 obj/machinery/computer/shuttle/arrivals.html create mode 100644 obj/machinery/computer/shuttle/pod.html create mode 100644 obj/machinery/computer/slot_machine.html create mode 100644 obj/machinery/computer/station_alert.html create mode 100644 obj/machinery/computer/telecomms/monitor.html create mode 100644 obj/machinery/computer/telecomms/server.html create mode 100644 obj/machinery/computer/teleporter.html create mode 100644 obj/machinery/computer/terminal.html create mode 100644 obj/machinery/computer/tram_controls.html create mode 100644 obj/machinery/computer/turbine_computer.html create mode 100644 obj/machinery/computer/vaultcontroller.html create mode 100644 obj/machinery/computer/warrant.html create mode 100644 obj/machinery/conveyor.html create mode 100644 obj/machinery/conveyor_switch.html create mode 100644 obj/machinery/cryo_cell.html create mode 100644 obj/machinery/cryopod.html create mode 100644 obj/machinery/ctf.html create mode 100644 obj/machinery/ctf/control_point.html create mode 100644 obj/machinery/ctf/spawner.html create mode 100644 obj/machinery/debug_component_printer.html create mode 100644 obj/machinery/deepfryer.html create mode 100644 obj/machinery/defibrillator_mount.html create mode 100644 obj/machinery/deployable_turret.html create mode 100644 obj/machinery/destructive_scanner.html create mode 100644 obj/machinery/dish_drive.html create mode 100644 obj/machinery/disposal.html create mode 100644 obj/machinery/disposal/bin.html create mode 100644 obj/machinery/dna_infuser.html create mode 100644 obj/machinery/door.html create mode 100644 obj/machinery/door/airlock.html create mode 100644 obj/machinery/door/airlock/external.html create mode 100644 obj/machinery/door/airlock/keyed.html create mode 100644 obj/machinery/door/airlock/keyed/hotel_room.html create mode 100644 obj/machinery/door/airlock/tram.html create mode 100644 obj/machinery/door/airlock/vault/derelict.html create mode 100644 obj/machinery/door/firedoor.html create mode 100644 obj/machinery/door/password.html create mode 100644 obj/machinery/door/poddoor.html create mode 100644 obj/machinery/door/puzzle.html create mode 100644 obj/machinery/door/window.html create mode 100644 obj/machinery/door_buttons/airlock_controller.html create mode 100644 obj/machinery/doppler_array.html create mode 100644 obj/machinery/drone_dispenser.html create mode 100644 obj/machinery/duct.html create mode 100644 obj/machinery/ecto_sniffer.html create mode 100644 obj/machinery/electrolyzer.html create mode 100644 obj/machinery/electrolyzer/co2_cracker.html create mode 100644 obj/machinery/elevator_control_panel.html create mode 100644 obj/machinery/exodrone_launcher.html create mode 100644 obj/machinery/exoscanner.html create mode 100644 obj/machinery/export_gate.html create mode 100644 obj/machinery/fax.html create mode 100644 obj/machinery/field.html create mode 100644 obj/machinery/field/containment.html create mode 100644 obj/machinery/field/generator.html create mode 100644 obj/machinery/firealarm.html create mode 100644 obj/machinery/fishing_portal_generator.html create mode 100644 obj/machinery/flasher.html create mode 100644 obj/machinery/flasher/portable.html create mode 100644 obj/machinery/flatpacker.html create mode 100644 obj/machinery/fugitive_locator.html create mode 100644 obj/machinery/gateway.html create mode 100644 obj/machinery/goldeneye_upload_terminal.html create mode 100644 obj/machinery/gravity_generator/main.html create mode 100644 obj/machinery/gravity_generator/part.html create mode 100644 obj/machinery/griddle.html create mode 100644 obj/machinery/griddle/frontier_tabletop.html create mode 100644 obj/machinery/grill.html create mode 100644 obj/machinery/gulag_item_reclaimer.html create mode 100644 obj/machinery/gulag_teleporter.html create mode 100644 obj/machinery/holopad.html create mode 100644 obj/machinery/holopad/tutorial.html create mode 100644 obj/machinery/hydroponics.html create mode 100644 obj/machinery/hypertorus/interface.html create mode 100644 obj/machinery/hypnochair.html create mode 100644 obj/machinery/icecream_vat.html create mode 100644 obj/machinery/igniter.html create mode 100644 obj/machinery/incident_display.html create mode 100644 obj/machinery/interrogator.html create mode 100644 obj/machinery/iv_drip.html create mode 100644 obj/machinery/jukebox.html create mode 100644 obj/machinery/launchpad.html create mode 100644 obj/machinery/libraryscanner.html create mode 100644 obj/machinery/lift_indicator.html create mode 100644 obj/machinery/light.html create mode 100644 obj/machinery/light_switch.html create mode 100644 obj/machinery/limbgrower.html create mode 100644 obj/machinery/loot_locator.html create mode 100644 obj/machinery/ltsrbt.html create mode 100644 obj/machinery/materials_market.html create mode 100644 obj/machinery/mech_bay_recharge_port.html create mode 100644 obj/machinery/mecha_part_fabricator.html create mode 100644 obj/machinery/mechpad.html create mode 100644 obj/machinery/medical_kiosk.html create mode 100644 obj/machinery/medipen_refiller.html create mode 100644 obj/machinery/meter.html create mode 100644 obj/machinery/meter/monitored.html create mode 100644 obj/machinery/microwave.html create mode 100644 obj/machinery/mineral.html create mode 100644 obj/machinery/mineral/labor_claim_console.html create mode 100644 obj/machinery/mineral/ore_redemption.html create mode 100644 obj/machinery/mineral/processing_unit.html create mode 100644 obj/machinery/mineral/processing_unit_console.html create mode 100644 obj/machinery/mineral/stacking_machine.html create mode 100644 obj/machinery/mineral/stacking_machine/laborstacker.html create mode 100644 obj/machinery/mineral/stacking_unit_console.html create mode 100644 obj/machinery/modular_computer.html create mode 100644 obj/machinery/modular_computer/preset.html create mode 100644 obj/machinery/modular_computer/preset/cargochat.html create mode 100644 obj/machinery/modular_shield/module.html create mode 100644 obj/machinery/modular_shield/module/charger.html create mode 100644 obj/machinery/modular_shield/module/node.html create mode 100644 obj/machinery/modular_shield/module/relay.html create mode 100644 obj/machinery/modular_shield/module/well.html create mode 100644 obj/machinery/modular_shield_generator.html create mode 100644 obj/machinery/module_duplicator.html create mode 100644 obj/machinery/mounted_machine_gun.html create mode 100644 obj/machinery/navbeacon.html create mode 100644 obj/machinery/nebula_shielding.html create mode 100644 obj/machinery/nebula_shielding/emergency.html create mode 100644 obj/machinery/netpod.html create mode 100644 obj/machinery/newscaster.html create mode 100644 obj/machinery/ntnet_relay.html create mode 100644 obj/machinery/nuclearbomb.html create mode 100644 obj/machinery/nuclearbomb/beer.html create mode 100644 obj/machinery/ore_silo.html create mode 100644 obj/machinery/ore_silo/colony_lathe.html create mode 100644 obj/machinery/oven.html create mode 100644 obj/machinery/oven/stone.html create mode 100644 obj/machinery/pdapainter.html create mode 100644 obj/machinery/photobooth.html create mode 100644 obj/machinery/photocopier.html create mode 100644 obj/machinery/pipedispenser.html create mode 100644 obj/machinery/piratepad.html create mode 100644 obj/machinery/plate_press.html create mode 100644 obj/machinery/plumbing.html create mode 100644 obj/machinery/plumbing/acclimator.html create mode 100644 obj/machinery/plumbing/bottler.html create mode 100644 obj/machinery/plumbing/buffer.html create mode 100644 obj/machinery/plumbing/disposer.html create mode 100644 obj/machinery/plumbing/fermenter.html create mode 100644 obj/machinery/plumbing/filter.html create mode 100644 obj/machinery/plumbing/floor_pump.html create mode 100644 obj/machinery/plumbing/floor_pump/output.html create mode 100644 obj/machinery/plumbing/grinder_chemical.html create mode 100644 obj/machinery/plumbing/liquid_pump.html create mode 100644 obj/machinery/plumbing/pill_press.html create mode 100644 obj/machinery/plumbing/reaction_chamber.html create mode 100644 obj/machinery/plumbing/reaction_chamber/chem.html create mode 100644 obj/machinery/plumbing/receiver.html create mode 100644 obj/machinery/plumbing/sender.html create mode 100644 obj/machinery/plumbing/splitter.html create mode 100644 obj/machinery/plumbing/synthesizer.html create mode 100644 obj/machinery/plumbing/synthesizer/colony_hydroponics.html create mode 100644 obj/machinery/plumbing/synthesizer/water_synth.html create mode 100644 obj/machinery/porta_turret.html create mode 100644 obj/machinery/porta_turret/syndicate/toolbox.html create mode 100644 obj/machinery/portable_atmospherics.html create mode 100644 obj/machinery/portable_atmospherics/canister.html create mode 100644 obj/machinery/portable_atmospherics/pipe_scrubber.html create mode 100644 obj/machinery/portable_atmospherics/pump.html create mode 100644 obj/machinery/portable_atmospherics/scrubber.html create mode 100644 obj/machinery/posialert.html create mode 100644 obj/machinery/power.html create mode 100644 obj/machinery/power/apc.html create mode 100644 obj/machinery/power/colony_ore_thumper.html create mode 100644 obj/machinery/power/colony_wind_turbine.html create mode 100644 obj/machinery/power/emitter.html create mode 100644 obj/machinery/power/emitter/prototype.html create mode 100644 obj/machinery/power/energy_accumulator.html create mode 100644 obj/machinery/power/energy_accumulator/tesla_coil.html create mode 100644 obj/machinery/power/floodlight.html create mode 100644 obj/machinery/power/manufacturing.html create mode 100644 obj/machinery/power/manufacturing/crafter.html create mode 100644 obj/machinery/power/manufacturing/crusher.html create mode 100644 obj/machinery/power/manufacturing/lathe.html create mode 100644 obj/machinery/power/manufacturing/router.html create mode 100644 obj/machinery/power/manufacturing/smelter.html create mode 100644 obj/machinery/power/manufacturing/sorter.html create mode 100644 obj/machinery/power/manufacturing/storagebox.html create mode 100644 obj/machinery/power/manufacturing/unloader.html create mode 100644 obj/machinery/power/port_gen/pacman/solid_fuel.html create mode 100644 obj/machinery/power/portagrav.html create mode 100644 obj/machinery/power/rtg/portable.html create mode 100644 obj/machinery/power/shieldwallgen.html create mode 100644 obj/machinery/power/shuttle_engine.html create mode 100644 obj/machinery/power/smes.html create mode 100644 obj/machinery/power/smes/battery_pack.html create mode 100644 obj/machinery/power/smes/connector.html create mode 100644 obj/machinery/power/smesbank.html create mode 100644 obj/machinery/power/solar.html create mode 100644 obj/machinery/power/solar/deployable.html create mode 100644 obj/machinery/power/solar_control.html create mode 100644 obj/machinery/power/stirling_generator.html create mode 100644 obj/machinery/power/supermatter_crystal.html create mode 100644 obj/machinery/power/thermoelectric_generator.html create mode 100644 obj/machinery/power/tracker.html create mode 100644 obj/machinery/power/tracker/deployable.html create mode 100644 obj/machinery/power/turbine.html create mode 100644 obj/machinery/power/turbine/core_rotor.html create mode 100644 obj/machinery/power/turbine/inlet_compressor.html create mode 100644 obj/machinery/power/turbine/turbine_outlet.html create mode 100644 obj/machinery/powerator.html create mode 100644 obj/machinery/powerator/interdyne.html create mode 100644 obj/machinery/powerator/tarkon.html create mode 100644 obj/machinery/prisongate.html create mode 100644 obj/machinery/processor.html create mode 100644 obj/machinery/puzzle.html create mode 100644 obj/machinery/puzzle/password.html create mode 100644 obj/machinery/puzzle/password/pin.html create mode 100644 obj/machinery/quantum_server.html create mode 100644 obj/machinery/reagentgrinder.html create mode 100644 obj/machinery/recharge_station.html create mode 100644 obj/machinery/recharger.html create mode 100644 obj/machinery/requests_console.html create mode 100644 obj/machinery/research/anomaly_refinery.html create mode 100644 obj/machinery/restaurant_portal.html create mode 100644 obj/machinery/rnd.html create mode 100644 obj/machinery/rnd/destructive_analyzer.html create mode 100644 obj/machinery/rnd/experimentor.html create mode 100644 obj/machinery/rnd/production.html create mode 100644 obj/machinery/rnd/production/colony_lathe.html create mode 100644 obj/machinery/rnd/server.html create mode 100644 obj/machinery/rnd/server/master.html create mode 100644 obj/machinery/roulette.html create mode 100644 obj/machinery/satellite.html create mode 100644 obj/machinery/satellite/meteor_shield.html create mode 100644 obj/machinery/scanner_gate.html create mode 100644 obj/machinery/seed_extractor.html create mode 100644 obj/machinery/self_actualization_device.html create mode 100644 obj/machinery/shieldwall.html create mode 100644 obj/machinery/shower.html create mode 100644 obj/machinery/shuttle_scrambler.html create mode 100644 obj/machinery/skill_station.html create mode 100644 obj/machinery/sleeper.html create mode 100644 obj/machinery/sleeper/party.html create mode 100644 obj/machinery/smartfridge.html create mode 100644 obj/machinery/smartfridge/drying.html create mode 100644 obj/machinery/smartfridge/organ.html create mode 100644 obj/machinery/smoke_machine.html create mode 100644 obj/machinery/space_heater.html create mode 100644 obj/machinery/space_heater/improvised_chem_heater.html create mode 100644 obj/machinery/space_heater/wall_mounted.html create mode 100644 obj/machinery/spaceship_navigation_beacon.html create mode 100644 obj/machinery/status_display.html create mode 100644 obj/machinery/status_display/department_balance.html create mode 100644 obj/machinery/status_display/door_timer.html create mode 100644 obj/machinery/status_display/random_message.html create mode 100644 obj/machinery/suit_storage_unit.html create mode 100644 obj/machinery/syndicatebomb.html create mode 100644 obj/machinery/teambuilder.html create mode 100644 obj/machinery/telecomms.html create mode 100644 obj/machinery/telecomms/allinone.html create mode 100644 obj/machinery/telecomms/broadcaster.html create mode 100644 obj/machinery/telecomms/bus.html create mode 100644 obj/machinery/telecomms/hub.html create mode 100644 obj/machinery/telecomms/message_server.html create mode 100644 obj/machinery/telecomms/processor.html create mode 100644 obj/machinery/telecomms/receiver.html create mode 100644 obj/machinery/telecomms/relay.html create mode 100644 obj/machinery/telecomms/server.html create mode 100644 obj/machinery/ticket_machine.html create mode 100644 obj/machinery/time_clock.html create mode 100644 obj/machinery/trading_card_button.html create mode 100644 obj/machinery/trading_card_holder.html create mode 100644 obj/machinery/transformer.html create mode 100644 obj/machinery/transformer_rp.html create mode 100644 obj/machinery/transport.html create mode 100644 obj/machinery/transport/crossing_signal.html create mode 100644 obj/machinery/transport/crossing_signal/northwest.html create mode 100644 obj/machinery/transport/destination_sign.html create mode 100644 obj/machinery/transport/guideway_sensor.html create mode 100644 obj/machinery/transport/power_rectifier.html create mode 100644 obj/machinery/transport/tram_controller.html create mode 100644 obj/machinery/transport/tram_controller/tcomms.html create mode 100644 obj/machinery/turretid.html create mode 100644 obj/machinery/vatgrower.html create mode 100644 obj/machinery/vending.html create mode 100644 obj/machinery/vending/access.html create mode 100644 obj/machinery/vending/assaultops_ammo.html create mode 100644 obj/machinery/vending/autodrobe.html create mode 100644 obj/machinery/vending/custom.html create mode 100644 obj/machinery/vending/dorms.html create mode 100644 obj/machinery/vending/hotdog.html create mode 100644 obj/machinery/vending/runic_vendor.html create mode 100644 obj/machinery/vending/subtype_vendor.html create mode 100644 obj/machinery/vending/wardrobe/chap_wardrobe/unholy.html create mode 100644 obj/machinery/washing_machine.html create mode 100644 obj/machinery/xenoarch.html create mode 100644 obj/machinery/xenoarch/researcher.html create mode 100644 obj/merge_conflict_marker.html create mode 100644 obj/modular_map_root.html create mode 100644 obj/mystery_box_item.html create mode 100644 obj/narsie.html create mode 100644 obj/projectile.html create mode 100644 obj/projectile/beam/cybersun_laser/flare.html create mode 100644 obj/projectile/beam/cybersun_laser/granata.html create mode 100644 obj/projectile/blastwave.html create mode 100644 obj/projectile/bullet/c40sol/incendiary.html create mode 100644 obj/projectile/bullet/c980grenade.html create mode 100644 obj/projectile/bullet/c980grenade/shrapnel.html create mode 100644 obj/projectile/bullet/cannonball.html create mode 100644 obj/projectile/bullet/coin.html create mode 100644 obj/projectile/bullet/dart/syringe/dart.html create mode 100644 obj/projectile/bullet/incendiary.html create mode 100644 obj/projectile/bullet/incendiary/fire/backblast.html create mode 100644 obj/projectile/bullet/junk.html create mode 100644 obj/projectile/bullet/marksman.html create mode 100644 obj/projectile/bullet/p50.html create mode 100644 obj/projectile/bullet/p60strela.html create mode 100644 obj/projectile/bullet/pellet/shotgun_rubbershot.html create mode 100644 obj/projectile/bullet/rocket.html create mode 100644 obj/projectile/bullet/rocket/pep.html create mode 100644 obj/projectile/bullet/rocket/srm.html create mode 100644 obj/projectile/colossus/wendigo_shockwave.html create mode 100644 obj/projectile/curse_hand.html create mode 100644 obj/projectile/energy/chrono_beam.html create mode 100644 obj/projectile/energy/flora.html create mode 100644 obj/projectile/energy/medical.html create mode 100644 obj/projectile/energy/medical/utility/relocation.html create mode 100644 obj/projectile/energy/photon.html create mode 100644 obj/projectile/energy/radiation.html create mode 100644 obj/projectile/energy_net.html create mode 100644 obj/projectile/floating_blade.html create mode 100644 obj/projectile/hallucination.html create mode 100644 obj/projectile/hook.html create mode 100644 obj/projectile/kiss.html create mode 100644 obj/projectile/magic.html create mode 100644 obj/projectile/magic/aoe.html create mode 100644 obj/projectile/magic/aoe/lightning.html create mode 100644 obj/projectile/magic/arcane_barrage/bloodsucker.html create mode 100644 obj/projectile/magic/change.html create mode 100644 obj/projectile/magic/fireball.html create mode 100644 obj/projectile/magic/midas_round.html create mode 100644 obj/projectile/magic/star_ball.html create mode 100644 obj/projectile/moon_parade.html create mode 100644 obj/projectile/organ.html create mode 100644 obj/projectile/sneeze.html create mode 100644 obj/projectile/temp/watcher.html create mode 100644 obj/projectile/tentacle.html create mode 100644 obj/projectile/tether.html create mode 100644 obj/reality_tear.html create mode 100644 obj/singularity.html create mode 100644 obj/singularity/dark_matter.html create mode 100644 obj/structure.html create mode 100644 obj/structure/ai_core.html create mode 100644 obj/structure/alien/egg.html create mode 100644 obj/structure/alien/resin/flower_bud.html create mode 100644 obj/structure/alien/weeds.html create mode 100644 obj/structure/alien/weeds/node.html create mode 100644 obj/structure/altar_of_gods.html create mode 100644 obj/structure/antfarm.html create mode 100644 obj/structure/aquarium.html create mode 100644 obj/structure/aquarium/crab.html create mode 100644 obj/structure/barricade.html create mode 100644 obj/structure/bed.html create mode 100644 obj/structure/bed/dogbed.html create mode 100644 obj/structure/bed/double.html create mode 100644 obj/structure/bed/medical.html create mode 100644 obj/structure/bedsheetbin.html create mode 100644 obj/structure/blob.html create mode 100644 obj/structure/blob/special.html create mode 100644 obj/structure/blob/special/factory.html create mode 100644 obj/structure/bloodsucker.html create mode 100644 obj/structure/bloodsucker/ghoulrack.html create mode 100644 obj/structure/bodycontainer.html create mode 100644 obj/structure/bodycontainer/morgue.html create mode 100644 obj/structure/bonfire.html create mode 100644 obj/structure/bookcase.html create mode 100644 obj/structure/bookcase/random/fiction.html create mode 100644 obj/structure/bookcase/random/reference.html create mode 100644 obj/structure/bookcase/random/reference/wizard.html create mode 100644 obj/structure/broken_flooring.html create mode 100644 obj/structure/cable.html create mode 100644 obj/structure/cable/multilayer.html create mode 100644 obj/structure/cannon.html create mode 100644 obj/structure/carp_rift.html create mode 100644 obj/structure/carving_block.html create mode 100644 obj/structure/cat_house.html create mode 100644 obj/structure/chair.html create mode 100644 obj/structure/chair/bronze.html create mode 100644 obj/structure/chair/milking_machine.html create mode 100644 obj/structure/chair/pew.html create mode 100644 obj/structure/chair/shibari_stand.html create mode 100644 obj/structure/chair/sofa.html create mode 100644 obj/structure/chair/x_stand.html create mode 100644 obj/structure/checkoutmachine.html create mode 100644 obj/structure/chem_separator.html create mode 100644 obj/structure/chrono_field.html create mode 100644 obj/structure/closet.html create mode 100644 obj/structure/closet/body_bag.html create mode 100644 obj/structure/closet/body_bag/environmental.html create mode 100644 obj/structure/closet/body_bag/environmental/prisoner.html create mode 100644 obj/structure/closet/cardboard.html create mode 100644 obj/structure/closet/crate.html create mode 100644 obj/structure/closet/crate/bin.html create mode 100644 obj/structure/closet/crate/coffin.html create mode 100644 obj/structure/closet/crate/freezer.html create mode 100644 obj/structure/closet/crate/grave.html create mode 100644 obj/structure/closet/crate/mail.html create mode 100644 obj/structure/closet/crate/mail/economy.html create mode 100644 obj/structure/closet/crate/miningcar.html create mode 100644 obj/structure/closet/crate/necropolis/tendril.html create mode 100644 obj/structure/closet/crate/secure/bitrunning/decrypted.html create mode 100644 obj/structure/closet/crate/secure/owned.html create mode 100644 obj/structure/closet/crate/secure/syndicrate.html create mode 100644 obj/structure/closet/crate/tradership_cargo.html create mode 100644 obj/structure/closet/decay.html create mode 100644 obj/structure/closet/secure_closet/freezer.html create mode 100644 obj/structure/closet/stasis.html create mode 100644 obj/structure/closet/supplypod.html create mode 100644 obj/structure/cursed_slot_machine.html create mode 100644 obj/structure/curtain.html create mode 100644 obj/structure/deployable_barricade.html create mode 100644 obj/structure/deployable_barricade/metal.html create mode 100644 obj/structure/deployable_barricade/metal/plasteel.html create mode 100644 obj/structure/desk_bell.html create mode 100644 obj/structure/destructible/clockwork.html create mode 100644 obj/structure/destructible/clockwork/gear_base.html create mode 100644 obj/structure/destructible/clockwork/gear_base/powered.html create mode 100644 obj/structure/destructible/clockwork/gear_base/powered/interdiction_lens.html create mode 100644 obj/structure/destructible/clockwork/gear_base/powered/ocular_warden.html create mode 100644 obj/structure/destructible/clockwork/gear_base/powered/tinkerers_cache.html create mode 100644 obj/structure/destructible/clockwork/gear_base/technologists_lectern.html create mode 100644 obj/structure/destructible/clockwork/sigil.html create mode 100644 obj/structure/destructible/clockwork/sigil/research.html create mode 100644 obj/structure/destructible/clockwork/sigil/transmission.html create mode 100644 obj/structure/destructible/clockwork/sigil/vitality.html create mode 100644 obj/structure/destructible/clockwork/trap.html create mode 100644 obj/structure/destructible/clockwork/trap/delay.html create mode 100644 obj/structure/destructible/clockwork/trap/flipper.html create mode 100644 obj/structure/destructible/clockwork/trap/skewer.html create mode 100644 obj/structure/destructible/cult.html create mode 100644 obj/structure/destructible/cult/item_dispenser.html create mode 100644 obj/structure/destructible/cult/pants_altar.html create mode 100644 obj/structure/destructible/cult/pylon.html create mode 100644 obj/structure/destructible/eldritch_crucible.html create mode 100644 obj/structure/detectiveboard.html create mode 100644 obj/structure/displaycase.html create mode 100644 obj/structure/displaycase/forsale.html create mode 100644 obj/structure/displaycase/trophy.html create mode 100644 obj/structure/displaycase_chassis.html create mode 100644 obj/structure/disposalholder.html create mode 100644 obj/structure/disposaloutlet.html create mode 100644 obj/structure/disposalpipe.html create mode 100644 obj/structure/disposalpipe/rotator.html create mode 100644 obj/structure/disposalpipe/sorting.html create mode 100644 obj/structure/door_assembly.html create mode 100644 obj/structure/elite_tumor.html create mode 100644 obj/structure/emergency_shield/cult/barrier.html create mode 100644 obj/structure/emergency_shield/modular.html create mode 100644 obj/structure/emergency_shield/regenerating.html create mode 100644 obj/structure/energy_net.html create mode 100644 obj/structure/ethereal_crystal.html create mode 100644 obj/structure/falsewall/uranium.html create mode 100644 obj/structure/fermenting_barrel.html create mode 100644 obj/structure/filingcabinet/employment.html create mode 100644 obj/structure/filingcabinet/medical.html create mode 100644 obj/structure/fireaxecabinet.html create mode 100644 obj/structure/fireplace.html create mode 100644 obj/structure/flora.html create mode 100644 obj/structure/flora/tree.html create mode 100644 obj/structure/fluff.html create mode 100644 obj/structure/fluff/airlock_filler.html create mode 100644 obj/structure/fluff/iced_abductor.html create mode 100644 obj/structure/foamedmetal.html create mode 100644 obj/structure/frame.html create mode 100644 obj/structure/frame/computer.html create mode 100644 obj/structure/frame/machine.html create mode 100644 obj/structure/gel_cocoon.html create mode 100644 obj/structure/geyser.html create mode 100644 obj/structure/ghost_portal.html create mode 100644 obj/structure/girder.html create mode 100644 obj/structure/glowshroom.html create mode 100644 obj/structure/grille.html create mode 100644 obj/structure/grille/tram.html create mode 100644 obj/structure/guillotine.html create mode 100644 obj/structure/gulag_vent.html create mode 100644 obj/structure/guncase.html create mode 100644 obj/structure/hololadder.html create mode 100644 obj/structure/holopay.html create mode 100644 obj/structure/holosign/barrier.html create mode 100644 obj/structure/hoop.html create mode 100644 obj/structure/hoop/minigame.html create mode 100644 obj/structure/inflatable.html create mode 100644 obj/structure/inflatable/door.html create mode 100644 obj/structure/ladder.html create mode 100644 obj/structure/large_mortar.html create mode 100644 obj/structure/lavaland/ash_walker.html create mode 100644 obj/structure/legionturret.html create mode 100644 obj/structure/light_construct.html create mode 100644 obj/structure/light_puzzle.html create mode 100644 obj/structure/liquid_pump.html create mode 100644 obj/structure/lock_tear.html create mode 100644 obj/structure/mannequin.html create mode 100644 obj/structure/meateor_fluff/eyeball.html create mode 100644 obj/structure/meateor_fluff/flesh_pod.html create mode 100644 obj/structure/microscope.html create mode 100644 obj/structure/millstone.html create mode 100644 obj/structure/mineral_door.html create mode 100644 obj/structure/mineral_door/manual_colony_door.html create mode 100644 obj/structure/mining_bomb.html create mode 100644 obj/structure/mirror.html create mode 100644 obj/structure/mirror/magic.html create mode 100644 obj/structure/mirror/magic/pride.html create mode 100644 obj/structure/mob_spawner.html create mode 100644 obj/structure/moisture_trap.html create mode 100644 obj/structure/mold.html create mode 100644 obj/structure/mold/resin.html create mode 100644 obj/structure/mold/structure.html create mode 100644 obj/structure/mold/structure/conditioner.html create mode 100644 obj/structure/mold/structure/core.html create mode 100644 obj/structure/mop_bucket.html create mode 100644 obj/structure/mop_bucket/janitorialcart.html create mode 100644 obj/structure/mounted_gun.html create mode 100644 obj/structure/mystery_box.html create mode 100644 obj/structure/no_effect_signpost/void.html create mode 100644 obj/structure/noticeboard.html create mode 100644 obj/structure/ore_box.html create mode 100644 obj/structure/ore_container/food_trough.html create mode 100644 obj/structure/ore_container/material_stand.html create mode 100644 obj/structure/ore_vein.html create mode 100644 obj/structure/ore_vent.html create mode 100644 obj/structure/ore_vent/boss.html create mode 100644 obj/structure/pinata.html create mode 100644 obj/structure/pipe_cleaner.html create mode 100644 obj/structure/plant_tank.html create mode 100644 obj/structure/plaque.html create mode 100644 obj/structure/plaque/static_plaque/tram.html create mode 100644 obj/structure/plasticflaps.html create mode 100644 obj/structure/punching_bag.html create mode 100644 obj/structure/punji_sticks.html create mode 100644 obj/structure/puzzle_blockade.html create mode 100644 obj/structure/railing.html create mode 100644 obj/structure/railing/wooden_fencing.html create mode 100644 obj/structure/railing/wooden_fencing/gate.html create mode 100644 obj/structure/reagent_crafting_bench.html create mode 100644 obj/structure/reagent_dispensers.html create mode 100644 obj/structure/reagent_forge.html create mode 100644 obj/structure/reagent_water_basin.html create mode 100644 obj/structure/reviving_ashwalker_egg.html create mode 100644 obj/structure/safe.html create mode 100644 obj/structure/secure_safe/caps_spare.html create mode 100644 obj/structure/serpentine_tail.html create mode 100644 obj/structure/shockplant.html create mode 100644 obj/structure/sign.html create mode 100644 obj/structure/sign/painting.html create mode 100644 obj/structure/sign/painting/eldritch.html create mode 100644 obj/structure/sign/painting/eldritch/beauty.html create mode 100644 obj/structure/sign/painting/large.html create mode 100644 obj/structure/sign/picture_frame.html create mode 100644 obj/structure/sign/picture_frame/portrait/bar.html create mode 100644 obj/structure/sign/poster.html create mode 100644 obj/structure/sign/poster/traitor.html create mode 100644 obj/structure/simple_farm.html create mode 100644 obj/structure/sink.html create mode 100644 obj/structure/spacevine.html create mode 100644 obj/structure/spawner.html create mode 100644 obj/structure/spawner/ice_moon.html create mode 100644 obj/structure/spawner/lavaland.html create mode 100644 obj/structure/spider/eggcluster.html create mode 100644 obj/structure/spider/stickyweb.html create mode 100644 obj/structure/spider/stickyweb/genetic.html create mode 100644 obj/structure/spirit_board.html create mode 100644 obj/structure/stairs_frame.html create mode 100644 obj/structure/statue.html create mode 100644 obj/structure/statue/custom.html create mode 100644 obj/structure/steam_vent.html create mode 100644 obj/structure/stripper_pole.html create mode 100644 obj/structure/syndicate_uplink_beacon.html create mode 100644 obj/structure/table.html create mode 100644 obj/structure/table/optable.html create mode 100644 obj/structure/table/optable/abductor.html create mode 100644 obj/structure/table/rolling.html create mode 100644 obj/structure/tank_holder.html create mode 100644 obj/structure/throwing_wheel.html create mode 100644 obj/structure/toilet.html create mode 100644 obj/structure/toiletbong.html create mode 100644 obj/structure/towel_bin.html create mode 100644 obj/structure/trading_card_summon.html create mode 100644 obj/structure/training_machine.html create mode 100644 obj/structure/tram.html create mode 100644 obj/structure/tram/alt/uranium.html create mode 100644 obj/structure/tram/spoiler.html create mode 100644 obj/structure/transport/linear.html create mode 100644 obj/structure/transport/linear/tram.html create mode 100644 obj/structure/trap/eldritch.html create mode 100644 obj/structure/tray.html create mode 100644 obj/structure/urinal.html create mode 100644 obj/structure/void_conduit.html create mode 100644 obj/structure/wall_torch.html create mode 100644 obj/structure/wargame_hologram.html create mode 100644 obj/structure/water_source.html create mode 100644 obj/structure/water_source/puddle/healing.html create mode 100644 obj/structure/weightmachine.html create mode 100644 obj/structure/windoor_assembly.html create mode 100644 obj/structure/window.html create mode 100644 obj/structure/window/reinforced/plasma.html create mode 100644 obj/structure/wormfarm.html create mode 100644 obj/structure/wrestling_corner.html create mode 100644 obj/structure/xen_crystal.html create mode 100644 obj/structure/xen_pylon.html create mode 100644 obj/vehicle.html create mode 100644 obj/vehicle/ridden/bicycle.html create mode 100644 obj/vehicle/ridden/janicart.html create mode 100644 obj/vehicle/ridden/rail_cart.html create mode 100644 obj/vehicle/ridden/scooter/skateboard.html create mode 100644 obj/vehicle/ridden/scooter/skateboard/wheelys.html create mode 100644 obj/vehicle/ridden/secway.html create mode 100644 obj/vehicle/ridden/wheelchair.html create mode 100644 obj/vehicle/ridden/wheelchair/hardlight.html create mode 100644 obj/vehicle/ridden/wheelchair/motorized.html create mode 100644 obj/vehicle/sealed.html create mode 100644 obj/vehicle/sealed/car.html create mode 100644 obj/vehicle/sealed/car/clowncar.html create mode 100644 obj/vehicle/sealed/car/speedwagon.html create mode 100644 obj/vehicle/sealed/car/vim.html create mode 100644 obj/vehicle/sealed/mecha.html create mode 100644 obj/vehicle/sealed/mecha/durand.html create mode 100644 obj/vehicle/sealed/mecha/justice.html create mode 100644 obj/vehicle/sealed/mecha/ripley.html create mode 100644 obj/vehicle/sealed/mecha/ripley/paddy.html create mode 100644 obj/vehicle/sealed/mecha/savannah_ivanov.html create mode 100644 obj/vore_belly.html create mode 100644 particles.html create mode 100644 procpath.html create mode 100644 regex/format_component.html create mode 100644 turf.html create mode 100644 turf/closed/mineral.html create mode 100644 turf/closed/mineral/random.html create mode 100644 turf/closed/wall.html create mode 100644 turf/closed/wall/mineral/uranium.html create mode 100644 turf/closed/wall/r_wall.html create mode 100644 turf/open.html create mode 100644 turf/open/chasm.html create mode 100644 turf/open/cliff.html create mode 100644 turf/open/floor.html create mode 100644 turf/open/floor/carpet/neon.html create mode 100644 turf/open/floor/catwalk_floor.html create mode 100644 turf/open/floor/circuit.html create mode 100644 turf/open/floor/engine/hull/ceiling.html create mode 100644 turf/open/floor/glass.html create mode 100644 turf/open/floor/light.html create mode 100644 turf/open/floor/plating.html create mode 100644 turf/open/floor/tram/plate/energized.html create mode 100644 turf/open/lava.html create mode 100644 turf/open/mirage.html create mode 100644 turf/open/misc/asteroid.html create mode 100644 turf/open/misc/grass.html create mode 100644 turf/open/openspace.html create mode 100644 turf/open/openspace/icemoon.html create mode 100644 turf/open/space.html create mode 100644 turf/open/space/transit.html create mode 100644 turf/open/water.html create mode 100644 turf/open/water/cursed_spring.html create mode 100644 turf/open/water/hot_spring.html create mode 100644 turf/open/water/overlay.html create mode 100644 turf/open/water/overlay/outdoors.html create mode 100644 turf/open/water/xen_acid.html create mode 100644 world.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/CNAME b/CNAME new file mode 100644 index 0000000000000..9240b8168690f --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +codedocs.tgstation13.org diff --git a/_maps/RandomZLevels/GUIDELINES.html b/_maps/RandomZLevels/GUIDELINES.html new file mode 100644 index 0000000000000..e3485165ef409 --- /dev/null +++ b/_maps/RandomZLevels/GUIDELINES.html @@ -0,0 +1,46 @@ +_maps/RandomZLevels/GUIDELINES.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Away Mission Creation Guidelines

So, you want to make an away mission! They're a lot of fun to play, but they're a challenge to create. +To ensure a consistent standard of quality across away missions, following the guidelines (split into recommended and required) +is beneficial to ensure your PR is merged.

+

Recommendations

+
    +
  • Create a design document +
      +
    • This one is good because it lets you make a coherent thought of what you want your away mission to be, and for others to understand its purpose.
    • +
    +
  • +
  • Don't go alone +
      +
    • Away missions are hard work! Making a team of different specializations helps out massively with workload and speed of the project.
    • +
    +
  • +
  • Communicate with Maintainers +
      +
    • During the creation of your away mission, it is highly recommended you communicate with maintainers to ensure major changes do not have to be made when it's finished.
    • +
    +
  • +
+

Design Requirements

+
    +
  • Minimum average time to complete: 60 minutes +
      +
    • Bare minimum, it should take a team of 4-6 60 minutes to complete.
    • +
    +
  • +
  • Design around 4-6 players +
      +
    • The optimal size of a gateway is 4-6, but know that more or less may participate.
    • +
    +
  • +
  • Not purely PvE +
      +
    • Design your gateway with more than just regular simplemobs in mind. Add puzzles, story, PVP, boss fights, etc. to spice up the gameplay instead of a slog of simplemobs.
    • +
    +
  • +
  • Loot should not be extreme +
      +
    • The gateway's loot should mostly be given in the purview of using it in the gateway itself (final boss loot and similar not withstanding).
    • +
    • Loot that's unusable outside the gateway is given more leeway.
    • +
    • Loot should not be the primary encouragement for someone to go through the gateway.
    • +
    +
  • +
\ No newline at end of file diff --git a/_maps/map_files/biodome/modules/map legend.html b/_maps/map_files/biodome/modules/map legend.html new file mode 100644 index 0000000000000..13b6b864508ae --- /dev/null +++ b/_maps/map_files/biodome/modules/map legend.html @@ -0,0 +1,16 @@ +_maps/map_files/biodome/modules/map legend.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

_maps/map_files/biodome/modules/map legend.txt

[rooms.cage_1]
+modules = ["cage_1_axolotl.dmm", "cage_1_creature.dmm"]
+# 1. A cage containing damp beasts.
+
+[rooms.cage_2]
+modules = ["cage_2_amoung.dmm", "cage_2_ghost.dmm"]
+# 1. A cage containing humanoid anomalies.
+
+[rooms.cage_3]
+modules = ["cage_3_rabbit.dmm", "cage_3_gnome.dmm"]
+# 1. A cage containing garden creatures.
+
+[rooms.cage_4]
+modules = ["cage_4_cockroach.dmm", "cage_4_spider.dmm"]
+# 1. A cage containing insects.
+
\ No newline at end of file diff --git a/_maps/map_files/tramstation/maintenance_modules/map legend.html b/_maps/map_files/tramstation/maintenance_modules/map legend.html new file mode 100644 index 0000000000000..3047a5e77dc97 --- /dev/null +++ b/_maps/map_files/tramstation/maintenance_modules/map legend.html @@ -0,0 +1,192 @@ +_maps/map_files/tramstation/maintenance_modules/map legend.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

_maps/map_files/tramstation/maintenance_modules/map legend.txt

[rooms.arrivalsecupper]
+modules = ["arrivalsecupper_1.dmm", "arrivalsecupper_2.dmm", "arrivalsecupper_3.dmm"]
+# 1. Small S connection that connects Arrivals, EVA and Security. Has a simple side room with misc maintenance gear.
+# 2. Small S connection that connects Arrivals, EVA and Security. Has a large viewing window into space with a table seat.
+# 3. Small S connection that connects Arrivals, EVA and Security. Has a side room with degraded security equipment and a dug out section.
+
+[rooms.arrivallibraryupper]
+modules = ["arrivallibraryupper_1.dmm", "arrivallibraryupper_2.dmm", "arrivallibraryupper_3.dmm"]
+# 1. Curved connection between public garden and Library. Has side room with shutter access that can block direct access.
+# 2. Curved connection between public garden and Library. Has simple side room with air container spawns.
+# 3. Curved connection between public garden and Library. Has window facing into space and lower EVA airlock access.
+
+[rooms.medsciupper]
+modules = ["medsciupper_1.dmm", "medsciupper_2.dmm", "medsciupper_3.dmm"]
+# 1. U#bend connection between Medical and Science. Nothing special.
+# 2. U#bend connection between Medical and Science. Has extended flora area with window view from maintenance hall.
+# 3. U#bend connection between Medical and Science. Extended side platform near floor overhang and window view has shattered windows.
+
+[rooms.medsciupper_attachment_a]
+modules = ["medsciupper_attachment_a_1.dmm", "medsciupper_attachment_a_2.dmm", "medsciupper_attachment_a_3.dmm"]
+# 1. Robotics storage room.
+# 2. Maintenance containment room with a basic shield setup.
+# 3. Target practice/test firing range.
+
+[rooms.medsciupper_attachment_b]
+modules = ["medsciupper_attachment_b_1.dmm", "medsciupper_attachment_b_2.dmm", "medsciupper_attachment_b_3.dmm"]
+# 1. Extra morgue storage + funny skeleton.
+# 2. Surgery storage with meme organs/basic meds.
+# 3. W#why is the door bolted?
+
+[rooms.barcargoupper]
+modules = ["barcargoupper_1.dmm", "barcargoupper_2.dmm", "barcargoupper_3.dmm"]
+# 1. Straight way between Bar and Cargo. Extended overhang to view bottom maintenance hall with window view into flora area.
+# 2. Straight way interrupted by small U#bend connection between Bar and Cargo. Has window view into flora area
+# 3. Straight way between Bar and Cargo. Ladder access has additional bridge to a windowed maintenance room with various misc loot.
+
+[rooms.barcargoupper_cave]
+modules = ["barcargoupper_cave_1.dmm", "barcargoupper_cave_2.dmm", "barcargoupper_cave_3.dmm"]
+# 1. Dug out cave with blocked off ore refinery at end. Assortment of random mining tools.
+# 2. Dug out cave with a scanner/mining tools and bone tongue/trombone at the end. Doot.
+# 3. Dug out cave with a blocked off ore refinery at the start. Scattered mining tools, leads to a random relic spawn.
+
+[rooms.barcargoupper_attachment_a]
+modules = ["barcargoupper_attachment_a_1.dmm", "barcargoupper_attachment_a_2.dmm", "barcargoupper_attachment_a_3.dmm"]
+# 1. Theatre storage with extra costumes/vending restock.
+# 2. Kitchen storage with basic kitchen items and vending restock.
+# 3. Bar storage with spare keg/vending restock/random booze spawn.
+
+[rooms.barcargoupper_attachment_b]
+modules = ["barcargoupper_attachment_b_1.dmm", "barcargoupper_attachment_b_2.dmm", "barcargoupper_attachment_b_3.dmm"]
+# 1. Random crate storage.
+# 2. Mining gear storage with 2 spare vouchers.
+# 3. Relic tinkering room with random artifact and secret chem recipe paper.
+
+[rooms.secbarupper]
+modules = ["secbarupper_1.dmm", "secbarupper_2.dmm", "secbarupper_3.dmm"]
+# 1. Zagged path between Security and Bar. Has multiple overhangs to view lower floor. Has water closet.
+# 2. Zagged path between Security and Bar. Mulebot path is finished fully (no cave spawn).
+# 3. Zagged path between Security and Bar. Flora area is expanded with small park area.
+
+[rooms.secbarupper_attachment_a]
+modules = ["secbarupper_attachment_a_1.dmm", "secbarupper_attachment_a_2.dmm", "secbarupper_attachment_a_3.dmm"]
+# 1. Random assortment of paperwork#related items (fax, briefcases, folders, ect). Spawns secret chem paper.
+# 2. Security storage with 2 spare secways and a set of degraded armor.
+# 3. Generic side room with assorted trash and hidden hobo hideout.
+
+[rooms.secbarupper_attachment_b]
+modules = ["secbarupper_attachment_b_1.dmm", "secbarupper_attachment_b_2.dmm", "secbarupper_attachment_b_3.dmm"]
+# 1. Generic storage room with maintenance crates behind doors.
+# 2. Generic storage room with a relic spawner and hidden gambling table.
+# 3. Segmented side rooms with random weed spawn and maintenance loot.
+
+[rooms.secbarupper_cave]
+modules = ["secbarupper_cave_1.dmm", "secbarupper_cave_2.dmm", "secbarupper_cave_3.dmm"]
+# 1. Dug out hole with a relic spawn in the middle.
+# 2. Dug out spiral with a lot of sand. It gets everywhere. Stack of 5 silver and 5 gold ore.
+# 3. Unfinished maintenance room exposed to asteroid. Has basic construction tools and machine frames.
+
+[rooms.dormmedupper]
+modules = ["dormmedupper_1.dmm", "dormmedupper_2.dmm", "dormmedupper_3.dmm"]
+# 1. Straight way between Dorms and Medical. Has a windowed side room with some gambling items. Has external hatch to flora area above.
+# 2. Straight way between Dorms and Medical. Mulebot routes are finished and flora area has additional window in recreational area to view from.
+# 3. Straight way between Dorms and Medical. Flora area has small park area with public access from the holodeck control room.
+
+[rooms.dormmedupper_attachment_a]
+modules = ["dormmedupper_attachment_a_1.dmm", "dormmedupper_attachment_a_2.dmm", "dormmedupper_attachment_a_3.dmm"]
+# 1. Side attachment to maintenance hall with misc maintenance loot.
+# 2. Art storage with extra various crayons/spraycans/canvas portraits.
+# 3. Library/Chapel storage with extra misc job items for both departments.
+
+[rooms.dormmedupper_attachment_b]
+modules = ["dormmedupper_attachment_b_1.dmm", "dormmedupper_attachment_b_2.dmm", "dormmedupper_attachment_b_3.dmm"]
+# 1. Side attachment to maintenance hall with misc maintenance loot and drugs.
+# 2. Segmented rooms with custodial closet. Misc maintenance loot.
+# 3. Generic side room with hidden dug out room with booze for the boys.
+
+[rooms.secservicelower]
+modules = ["secservicelower_1.dmm", "secservicelower_1.dmm", "secservicelower_1.dmm"]
+# 1. C#shaped connection between most#left tram tunnel, Service and backdoor Prison access. Has a space bridge spanning a large space hole in asteroid with EVA access.
+# 2. C#shaped connection between most#left tram tunnel, Service and backdoor Prison access. Cave tunnel segment connects the three main points with a scattering of mining tools.
+# 3. Zagged connection between most#left tram tunnel, Service and backdoor Prison access. WIndows view into natural cave segment of asteroid mostly untouched.
+
+[rooms.secservicelower_attachment_a]
+modules = ["secservicelower_attachment_a_1.dmm", "secservicelower_attachment_a_2.dmm", "secservicelower_attachment_a_3.dmm"]
+# 1. Side attachment to maintenance hall with gambling table and misc drug/gambling loot.
+# 2. Side security room with tucked away interrogation room.
+# 3. Side maintenance room with custodial closet and misc maintenance loot.
+
+[rooms.secservicelower_attachment_b]
+modules = ["secservicelower_attachment_b_1.dmm", "secservicelower_attachment_b_2.dmm", "secservicelower_attachment_b_3.dmm"]
+# 1. Side attachment to maintenance hall with misc maintenance loot.
+# 2. Generic side room with costume/booze spawners.
+# 3. Segmented rooms with various misc maintenance loot.
+
+[rooms.secservicelower_attachment_c]
+modules = ["secservicelower_attachment_c_1.dmm", "secservicelower_attachment_c_2.dmm", "secservicelower_attachment_c_3.dmm"]
+# 1. Windowed maintenance room with tank/atmos machinery spawner. Misc maintenance loot.
+# 2. Various segmented rooms connected by a small main hall with a blast door toggle.
+# 3. Small external access room with a mining gear closet leading to a dug out area with a mining scanner.
+
+[rooms.servicecargolower]
+modules = ["servicecargolower_1.dmm", "servicecargolower_1.dmm", "servicecargolower_1.dmm"]
+# 1. Straight connection between Service and Cargo with Solar access. Has a small custodial closet.
+# 2. Straight connection between Service and Cargo with Solar access. Has expanded sides with blast door toggles and a windowed side room.
+# 3. Straight connection between Service and Cargo with Solar access. Nothing special.
+
+[rooms.servicecargolower_attachment_a]
+modules = ["servicecargolower_attachment_a_1.dmm", "servicecargolower_attachment_a_1.dmm", "servicecargolower_attachment_a_1.dmm"]
+# 1. Segmented side rooms connected by a small main hall. Has a gambling den with various gambling items and cash.
+# 2. Side attachment to maintenance hall with a windowed view into a space hole. Has a side room with 3 atmos machinery spawners.
+# 3. Segmented side rooms with a hidden dug#out area.
+
+[rooms.servicecargolower_attachment_b]
+modules = ["servicecargolower_attachment_b_1.dmm", "servicecargolower_attachment_b_1.dmm", "servicecargolower_attachment_b_1.dmm"]
+# 1. Side attachment to maintenance hall with various costume/wardrome closet spawner. Has a steam vent.
+# 2. Maintenance room layout set up for a seedy shop, comes with various maintenance loot and small cash spawn.
+# 3. Exposed dug#out section with a random relic spawn.
+
+[rooms.cargoscilower]
+modules = ["cargoscilower_1.dmm", "cargoscilower_1.dmm", "cargoscilower_1.dmm"]
+# 1. Zagged connection between Cargo, most#right tram tunnel and Science. Has a decommissioned pod bay with spare tools and a bit of titanium.
+# 2. Zagged connection between Cargo, most#right tram tunnel and Science. Has a boarded off pod airlock with 2 side windows into space.
+# 3. Zagged connection between Cargo, most#right tram tunnel and Science. Has an abandoned assembly line with a single maintenance fabricator and misc materials.
+
+[rooms.cargoscilower_attachment_a]
+modules = ["cargoscilower_attachment_a_1.dmm", "cargoscilower_attachment_a_1.dmm", "cargoscilower_attachment_a_1.dmm"]
+# 1. Side room with random maintenance loot and a hidden side room full of potted plants. Lots of potted plants.
+# 2. Side extension to the main hallway with misc gear and a hidden dugout with a relic spawn.
+# 3. Side room with a window view into hallway. Has misc gear and a cell recharger with a few spare empty basic cells.
+
+[rooms.cargoscilower_attachment_b]
+modules = ["cargoscilower_attachment_b_1.dmm", "cargoscilower_attachment_b_1.dmm", "cargoscilower_attachment_b_1.dmm"]
+# 1. Side extension to main hallway with misc gear behind a grille with glass.
+# 2. Hidden side room with a hobo setup and camera console. Big bean lover.
+# 3. Side room with various custodial gear for cleaning dirty maintenance.
+
+[rooms.atmosscilower]
+modules = ["atmosscilower_1.dmm", "atmosscilower_2.dmm", "atmosscilower_3.dmm"]
+# 1. Fairly straight connection between Atmospherics and Research, connects with cargoscilower. Has a side room with windows
+# 2. Fairly straight connection between Atmospherics and Research, connects with cargoscilower. Mid#section has been changed to be a dug out unfinished maintenance tunnel with 2 airlocks blocked by a engineering holosign.
+# 3. Fairly straight connection between Atmospherics and Research, connects with cargoscilower. Has a larger mid section with a custodial closet and mixer for air canisters.
+
+[rooms.atmosscilower_attachment_a]
+modules = ["atmosscilower_attachment_a_1.dmm", "atmosscilower_attachment_a_2.dmm", "atmosscilower_attachment_a_3.dmm"]
+# 1. Bolted side room with the hobo remains of a man who got locked in the room during construction. Lots of misc maintenance gear.
+# 2. Long side room with locked rooms behind shutters. Stores various maintenance loot.
+# 3. Long open side room full of large shipping containers left behind from station construction. Has 2 pairs of H.A.U.L gauntlets and a super basic ripley.
+
+[rooms.atmosscilower_attachment_b]
+modules = ["atmosscilower_attachment_b_1.dmm", "atmosscilower_attachment_b_2.dmm", "atmosscilower_attachment_b_3.dmm"]
+# 1. Basic side room with a hidden hobo dugout.
+# 2. Side extension to hallway with a table and misc maintenance gear. Has a nice cigar and zippo lighter on the table.
+# 3. Side room with misc maintenance gear. Has additional gear behind some girders and glass/grille blockage with atmos machinery.
+
+[rooms.dormenginelower]
+modules = ["dormenginelower_1.dmm", "dormenginelower_2.dmm", "dormenginelower_3.dmm"]
+# 1. Curved connection between the Dorms, Engineering and Engineering public hall. Has a section with closable privacy shutters and an abandoned path into the middle tunnel section.
+# 2. Curved connection between the Dorms, Engineering and Engineering public hall. The tunnel beside the Dorms has been breached and spaced with each sides blocked by holobarriers. 
+# 3. Curved connection between the Dorms, Engineering and Engineering public hall. The tunnel beside the Dorms is a glass bridge with a view into space and blast doors if bridge is breached. Has an offshoot maintenance tunnel that leads into Dorms.
+
+[rooms.dormenginelower_attachment_a]
+modules = ["dormenginelower_attachment_a_1.dmm", "dormenginelower_attachment_a_2.dmm", "dormenginelower_attachment_a_3.dmm"]
+# 1. Side extension with both a filter and mixer setup for canisters. Has 4 spare empty canisters.
+# 2. Maintenance room with gym storage items. Includes extra equipment for both boxing and lasertag.
+# 3. Maintenance room with clothing storage. Has mannequins and several costume spawns.
+
+[rooms.dormenginelower_attachment_b]
+modules = ["dormenginelower_attachment_b_1.dmm", "dormenginelower_attachment_b_2.dmm", "dormenginelower_attachment_b_3.dmm"]
+# 1. Extra secure storage for Engineering with a filled pac#man and some extra shield generators/meteor shields.
+# 2. Side extension with bits of maintenance loot/atmos machinery. Has 2 extra random reagent tanks.
+# 3. Side room with 4 loot closets with random maintenance loot.
+
\ No newline at end of file diff --git a/_maps/safehouses.html b/_maps/safehouses.html new file mode 100644 index 0000000000000..5d020039e9bb6 --- /dev/null +++ b/_maps/safehouses.html @@ -0,0 +1,16 @@ +_maps/safehouses/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Safe House

Creating a new safe house

+
    +
  1. Create a new map inside the _maps\safe_houses folder using the TGM format.
  2. +
  3. Create a new dm file inside modules\bitrunning\virtual_domain\safe_houses folder..
  4. +
  5. Place exit and goal landmarks (obj/effect/landmark/bitrunning/..). Generally, 3 exits and 2 goals are ok.
  6. +
  7. Ideally, leave 3 spaces for gear. This has usually been xy [1x1] [1x2] [1x3]
  8. +
  9. Place the modular map connector at the bottom left tile.
  10. +
+

Notes

+
    +
  • Safe houses are intended to be 7x6 in size. You're not technically limited to this, but consider maps other maps might be using this size if you want it to be modular.
  • +
  • Consider that avatars are not invincible and still require air. If you're making a safe house, it should start with an area that accommodates for this.
  • +
  • For compatibility, your safe house should have a route open from the top center xy [3x0] of the map.
  • +
  • If you want a custom safehouse for a custom map with no modularity, no problem. Make whatever sizes you want, just ensure there are exit and goal effects placed.
  • +
  • Some maps can alter what is spawned into the safehouse by placing objects in the safehouse area. I'm using the left corner, starting from the top, for things like space gear.
  • +
\ No newline at end of file diff --git a/_maps/virtual_domains.html b/_maps/virtual_domains.html new file mode 100644 index 0000000000000..0b8f8cfb61157 --- /dev/null +++ b/_maps/virtual_domains.html @@ -0,0 +1,26 @@ +_maps/virtual_domains/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Making new virtual domains

REQUIRED:

+
    +
  1. One way that the encrypted cache can spawn. This can be from a mob drop, a landmark (place a few, it'll pick one), or a signal landmark if you have a points system.
  2. +
  3. Place a virtual domain baseturf helper in each area.
  4. +
  5. If you're using modular safehouses, ensure that the map has ONE tile marked with the safehouse modular map loader (and set the KEY). it will need an open 7x6 area.
  6. +
  7. Placing a safehouse area is redundant, but it will ensure there is power in the starting safehouse.
  8. +
  9. Create the dm file that defines the map qualities. You can use the existing ones as a template.
  10. +
  11. Place a virtual domain baseturf helper in each area.
  12. +
+

Converting an existing map

+
    +
  1. Create a new map using the existing map's size - give yourself enough room to enclose it with a binary wall. There's no need for any space outside of it, so ensure that it fits and is enclosed, nothing outside of this.
  2. +
  3. Copy and paste the existing map into it.
  4. +
  5. Find an accessible area for a safehouse, 7x6.
  6. +
  7. Place a bottom left safehouse landmark somewhere on the map to load the safehouse.
  8. +
+

Notes

+

You shouldn't need to fully enclose your map in 15 tiles of binary filler. Using one solid wall should do the trick.

+

For areas, ideally just one on the map and one for the safehouse. Vdoms should never last so long as to need individual area power and atmos unless you're specifically going for a gimmick.

+

Make it modular: Add modular map and mob segments! It adds variety. Just make sure you've set your map to have "is_modular" afterwards.

+

Adding some open tile padding around the safehouse is a good touch. About 7 tiles West/East for the visual effect of a larger map.

+

If you want to add prep gear, you can do so within the safehouse's area as long you don't overlap with goal turfs or exit spawners. The top left corner is a good spot for this, with respect for the walls, therefore [1, 1], [1, 2], [1, 3]

+

You can also create a specific safehouse if you find yourself needing the same gear over and over again. There is a readme for that as well.

+

Boss zones should give players pretty ample space, I've been using a 23x23 minimum area.

+

While it's not a hard set rule, 75x75 is the guideline for max size. The main issue is keeping them in the domain for too long.

+

You have the option of baking in your own safehouse and ignoring the 7x6 guideline. To do this, you will still need a safehouse landmark and a file to load - even if it's empty. Ensure that you have the necessary landmarks placed that normally go in a safehouse on the map itself.

\ No newline at end of file diff --git a/area.html b/area.html new file mode 100644 index 0000000000000..4056d8f7cebe8 --- /dev/null +++ b/area.html @@ -0,0 +1,49 @@ +/area - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

area

A grouping of tiles into a logical space, mostly used by map editors

+

This module sets airlocks in certain areas to be able to have an Engineer Override on orange alert. +Crew with ID cards with the engineering flag will be able to access these areas during those times.

Vars

active_alarmsAlarm type to count of sources. Not usable for ^ because we handle fires differently
active_firelocksA list of firelocks currently active. Used by fire alarms when setting their icons.
air_scrubbersList of all air scrubbers in the area
air_ventsList of all air vents in the area
airlock_wiresWire assignment for airlocks in this area
alarm_managerWe use this just for fire alarms, because they're area based right now so one alarm going poof shouldn't prevent you from clearing your alarms listing. Fire alarms and fire locks will set and clear alarms.
always_unpoweredThis gets overridden to 1 for space in area/.
ambient_buzzThe background droning loop that plays 24/7
ambient_buzz_volThe volume of the ambient buzz
ambientsoundsA list of sounds to pick from every so often to play to clients.
area_has_base_lightingWhether this area has a currently active base lighting, bool
area_limited_icon_smoothingTypepath to limit the areas (subtypes included) that atoms in this area can smooth with. Used for shuttles.
areasizeSize of the area in open turfs, only calculated for indoors areas.
base_lighting_alphaalpha 0-255 of lighting_effect and thus baselighting intensity
base_lighting_colorThe colour of the light acting on this area
beautyBeauty average per open turf in the area
beauty_thresholdIf a room is too big it doesn't have beauty.
energy_usageThe energy usage of the area in the last machines SS tick.
engineering_override_eligibleIs this area eligible for engineer override?
fault_locationThe source machinery for the area's fault status
fault_statusThe current alarm fault status
fireDo we have an active fire alarm?
fire_detectA var for whether the area allows for detecting fires/etc. Disabled or enabled at a fire alarm, checked by fire locks.
firealarmsA list of all fire alarms in this area. Used by firelocks and burglar alarms to change icon state.
firedoorsA list of all fire locks in this area. Used by fire alarm panels when resetting fire locks or activating all in an area
forced_ambienceDoes this area immediately play an ambience track upon enter?
ignore_weather_sfxMute weather sfx for these areas
lighting_effectsList of mutable appearances we underlay to show light +In the form plane offset + 1 -> appearance to use
lightsList of all lights in our area
map_generatorThis datum, if set, allows terrain generation behavior to be ran on Initialize()
max_ambience_cooldownUsed to decide what the maximum time between ambience is
min_ambience_cooldownUsed to decide what the minimum time between ambience is
mood_bonusBonus mood for being in this area
mood_messageMood message for being here, only shows up if mood_bonus != 0
mood_traitDoes the mood bonus require a trait?
outdoorsFor space, the asteroid, lavaland, etc. Used with blueprints or with weather to determine if we are adding a new area (vs editing a station room)
requires_powerWill objects this area be needing power?
sound_environmentUsed to decide what kind of reverb the area makes sound have
static_lightingWhether this area allows static lighting and thus loads the lighting objects
totalbeautyAll beauty in this area combined, only includes indoor area.
turfs_by_zlevelList of all turfs currently inside this area as nested lists indexed by zlevel. +Acts as a filtered version of area.contents For faster lookup +(area.contents is actually a filtered loop over world) +Semi fragile, but it prevents stupid so I think it's worth it
turfs_to_uncontain_by_zlevelturfs_by_z_level can hold MASSIVE lists, so rather then adding/removing from it each time we have a problem turf +We should instead store a list of turfs to REMOVE from it, then hook into a getter for it +There is a risk of this and contained_turfs leaking, so a subsystem will run it down to 0 incrementally if it gets too large +This uses the same nested list format as turfs_by_zlevel

Procs

AllowDropCauses a runtime error
DestroyDestroy an area and clean it up
EnteredCall back when an atom enters an area
ExitedCalled when an atom exits an area
LateInitializeSets machine power levels in the area
NewCalled when an area loads
PlaceOnTopReactA hook so areas can modify the incoming args (of what??)
RunTerrainGenerationGenerate turfs, including cool cave wall gen
RunTerrainPopulationPopulate the previously generated terrain with mobs and objects
addStaticPowerAdd a static amount of power load to an area. The value is assumed as the watt.
burglaralertRaise a burglar alert for this area
cannonize_contained_turfsEnsures that the contained_turfs list properly represents the turfs actually inside us
cannonize_contained_turfs_by_zlevelEnsures that the contained_turfs list properly represents the turfs actually inside us
clear_usageClear all non-static power usage in area
close_and_lock_doorClose and lock a door passed into this proc
create_area_lighting_objectsregenerates lighting objects for turfs in this area, primary use is VV changes
drop_locationCauses a runtime error
get_highest_zlevelReturns the highest zlevel that this area contains turfs for
get_original_area_nameReturns the name of an area, with the original name if the area name has been changed.
get_turfs_by_zlevelReturns a list with all turfs in this zlevel.
get_turfs_from_all_zlevelsMerges a list containing all of the turfs zlevel lists from get_zlevel_turf_lists inside one list. Use get_zlevel_turf_lists() or get_turfs_by_zlevel() unless you need all the turfs in one list to avoid generating large lists
get_zlevel_turf_listsReturns a nested list of lists with all turfs split by zlevel. +only zlevels with turfs are returned. The order of the list is not guaranteed.
has_contained_turfsReturns TRUE if we have contained turfs, FALSE otherwise
on_joining_gameCalled when a living mob that spawned here, joining the round, receives the player client.
play_ambienceAttempts to play an ambient sound to a mob, returning the cooldown in deciseconds
power_changeCalled when the area power status changes
poweredReturns int 1 or 0 if the area has power for the given channel
reg_in_areas_in_zRegister this area as belonging to a z level
removeStaticPowerRemove a static amount of power load to an area. The value is assumed as the watt.
remove_area_lighting_objectsRemoves lighting objects from turfs in this area if we have them, primary use is VV changes
set_fire_effectSet the fire alarm visual affects in an area
setupSetup an area (with the given name)
update_areasizeSet the area size of the area
update_beautyDivides total beauty in the room by roomsize to allow us to get an average beauty per tile.
update_icon_stateUpdate the icon state of the area
use_energyAdd a power value amount to the stored used_x variables

Var Details

active_alarms

Alarm type to count of sources. Not usable for ^ because we handle fires differently

active_firelocks

A list of firelocks currently active. Used by fire alarms when setting their icons.

air_scrubbers

List of all air scrubbers in the area

air_vents

List of all air vents in the area

airlock_wires

Wire assignment for airlocks in this area

alarm_manager

We use this just for fire alarms, because they're area based right now so one alarm going poof shouldn't prevent you from clearing your alarms listing. Fire alarms and fire locks will set and clear alarms.

always_unpowered

This gets overridden to 1 for space in area/.

ambient_buzz

The background droning loop that plays 24/7

ambient_buzz_vol

The volume of the ambient buzz

ambientsounds

A list of sounds to pick from every so often to play to clients.

area_has_base_lighting

Whether this area has a currently active base lighting, bool

area_limited_icon_smoothing

Typepath to limit the areas (subtypes included) that atoms in this area can smooth with. Used for shuttles.

areasize

Size of the area in open turfs, only calculated for indoors areas.

base_lighting_alpha

alpha 0-255 of lighting_effect and thus baselighting intensity

base_lighting_color

The colour of the light acting on this area

beauty

Beauty average per open turf in the area

beauty_threshold

If a room is too big it doesn't have beauty.

energy_usage

The energy usage of the area in the last machines SS tick.

engineering_override_eligible

Is this area eligible for engineer override?

fault_location

The source machinery for the area's fault status

fault_status

The current alarm fault status

fire

Do we have an active fire alarm?

fire_detect

A var for whether the area allows for detecting fires/etc. Disabled or enabled at a fire alarm, checked by fire locks.

firealarms

A list of all fire alarms in this area. Used by firelocks and burglar alarms to change icon state.

firedoors

A list of all fire locks in this area. Used by fire alarm panels when resetting fire locks or activating all in an area

forced_ambience

Does this area immediately play an ambience track upon enter?

ignore_weather_sfx

Mute weather sfx for these areas

lighting_effects

List of mutable appearances we underlay to show light +In the form plane offset + 1 -> appearance to use

lights

List of all lights in our area

map_generator

This datum, if set, allows terrain generation behavior to be ran on Initialize()

max_ambience_cooldown

Used to decide what the maximum time between ambience is

min_ambience_cooldown

Used to decide what the minimum time between ambience is

mood_bonus

Bonus mood for being in this area

mood_message

Mood message for being here, only shows up if mood_bonus != 0

mood_trait

Does the mood bonus require a trait?

outdoors

For space, the asteroid, lavaland, etc. Used with blueprints or with weather to determine if we are adding a new area (vs editing a station room)

requires_power

Will objects this area be needing power?

sound_environment

Used to decide what kind of reverb the area makes sound have

static_lighting

Whether this area allows static lighting and thus loads the lighting objects

totalbeauty

All beauty in this area combined, only includes indoor area.

turfs_by_zlevel

List of all turfs currently inside this area as nested lists indexed by zlevel. +Acts as a filtered version of area.contents For faster lookup +(area.contents is actually a filtered loop over world) +Semi fragile, but it prevents stupid so I think it's worth it

turfs_to_uncontain_by_zlevel

turfs_by_z_level can hold MASSIVE lists, so rather then adding/removing from it each time we have a problem turf +We should instead store a list of turfs to REMOVE from it, then hook into a getter for it +There is a risk of this and contained_turfs leaking, so a subsystem will run it down to 0 incrementally if it gets too large +This uses the same nested list format as turfs_by_zlevel

Proc Details

AllowDrop

Causes a runtime error

Destroy

Destroy an area and clean it up

+

Removes the area from GLOB.areas_by_type and also stops it processing on SSobj

+

This is despite the fact that no code appears to put it on SSobj, but +who am I to argue with old coders

Entered

Call back when an atom enters an area

+

Sends signals COMSIG_AREA_ENTERED and COMSIG_ENTER_AREA (to a list of atoms)

+

If the area has ambience, then it plays some ambience music to the ambience channel

Exited

Called when an atom exits an area

+

Sends signals COMSIG_AREA_EXITED and COMSIG_EXIT_AREA (to a list of atoms)

LateInitialize

Sets machine power levels in the area

New

Called when an area loads

+

Adds the item to the GLOB.areas_by_type list based on area type

PlaceOnTopReact

A hook so areas can modify the incoming args (of what??)

RunTerrainGeneration

Generate turfs, including cool cave wall gen

RunTerrainPopulation

Populate the previously generated terrain with mobs and objects

addStaticPower

Add a static amount of power load to an area. The value is assumed as the watt.

+

Possible channels +*AREA_USAGE_STATIC_EQUIP +*AREA_USAGE_STATIC_LIGHT +*AREA_USAGE_STATIC_ENVIRON

burglaralert

Raise a burglar alert for this area

+

Close and locks all doors in the area and alerts silicon mobs of a break in

+

Alarm auto resets after 600 ticks

cannonize_contained_turfs

Ensures that the contained_turfs list properly represents the turfs actually inside us

cannonize_contained_turfs_by_zlevel

Ensures that the contained_turfs list properly represents the turfs actually inside us

clear_usage

Clear all non-static power usage in area

+

Clears all power used for the dynamic equipment, light and environment channels

close_and_lock_door

Close and lock a door passed into this proc

+

Does this need to exist on area? probably not

create_area_lighting_objects

regenerates lighting objects for turfs in this area, primary use is VV changes

drop_location

Causes a runtime error

get_highest_zlevel

Returns the highest zlevel that this area contains turfs for

get_original_area_name

Returns the name of an area, with the original name if the area name has been changed.

+

If an area has not been renamed, returns the area name. If it has been modified (by blueprints or other means) +returns the current name, as well as the initial value, in the format of [Current Location Name (Original Name)]

get_turfs_by_zlevel

Returns a list with all turfs in this zlevel.

get_turfs_from_all_zlevels

Merges a list containing all of the turfs zlevel lists from get_zlevel_turf_lists inside one list. Use get_zlevel_turf_lists() or get_turfs_by_zlevel() unless you need all the turfs in one list to avoid generating large lists

get_zlevel_turf_lists

Returns a nested list of lists with all turfs split by zlevel. +only zlevels with turfs are returned. The order of the list is not guaranteed.

has_contained_turfs

Returns TRUE if we have contained turfs, FALSE otherwise

on_joining_game

Called when a living mob that spawned here, joining the round, receives the player client.

play_ambience

Attempts to play an ambient sound to a mob, returning the cooldown in deciseconds

power_change

Called when the area power status changes

+

Updates the area icon, calls power change on all machinees in the area, and sends the COMSIG_AREA_POWER_CHANGE signal.

powered

Returns int 1 or 0 if the area has power for the given channel

+

evaluates a mixture of variables mappers can set, requires_power, always_unpowered and then +per channel power_equip, power_light, power_environ

reg_in_areas_in_z

Register this area as belonging to a z level

+

Ensures the item is added to the SSmapping.areas_in_z list for this z

removeStaticPower

Remove a static amount of power load to an area. The value is assumed as the watt.

+

Possible channels +*AREA_USAGE_STATIC_EQUIP +*AREA_USAGE_STATIC_LIGHT +*AREA_USAGE_STATIC_ENVIRON

remove_area_lighting_objects

Removes lighting objects from turfs in this area if we have them, primary use is VV changes

set_fire_effect

Set the fire alarm visual affects in an area

+

Allows interested parties (lights and fire alarms) to react

setup

Setup an area (with the given name)

+

Sets the area name, sets all status var's to false and adds the area to the sorted area list

update_areasize

Set the area size of the area

+

This is the number of open turfs in the area contents, or FALSE if the outdoors var is set

update_beauty

Divides total beauty in the room by roomsize to allow us to get an average beauty per tile.

update_icon_state

Update the icon state of the area

+

I'm not sure what the heck this does, something to do with weather being able to set icon +states on areas?? where the heck would that even display?

use_energy

Add a power value amount to the stored used_x variables

\ No newline at end of file diff --git a/area/space.html b/area/space.html new file mode 100644 index 0000000000000..92d74e0e1feb1 --- /dev/null +++ b/area/space.html @@ -0,0 +1 @@ +/area/space - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

space

Procs

poweredSpace is not powered ever, so this returns false
update_icon_stateUpdate the icon of the area (overridden to always be null for space

Proc Details

powered

Space is not powered ever, so this returns false

update_icon_state

Update the icon of the area (overridden to always be null for space

\ No newline at end of file diff --git a/area/station/ai_monitored/turret_protected.html b/area/station/ai_monitored/turret_protected.html new file mode 100644 index 0000000000000..56b53e2b53424 --- /dev/null +++ b/area/station/ai_monitored/turret_protected.html @@ -0,0 +1 @@ +/area/station/ai_monitored/turret_protected - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

turret_protected

Vars

ai_will_not_hear_thisSome sounds (like the space jam) are terrible when on loop. We use this variable to add it to other AI areas, but override it to keep it from the AI's core.

Var Details

ai_will_not_hear_this

Some sounds (like the space jam) are terrible when on loop. We use this variable to add it to other AI areas, but override it to keep it from the AI's core.

\ No newline at end of file diff --git a/area/station/maintenance.html b/area/station/maintenance.html new file mode 100644 index 0000000000000..5172fdb8cbff2 --- /dev/null +++ b/area/station/maintenance.html @@ -0,0 +1 @@ +/area/station/maintenance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

maintenance

Vars

minecraft_cave_noisesA list of rare sound effects to fuck with players. No, it does not contain actual minecraft sounds anymore.

Var Details

minecraft_cave_noises

A list of rare sound effects to fuck with players. No, it does not contain actual minecraft sounds anymore.

\ No newline at end of file diff --git a/atom.html b/atom.html new file mode 100644 index 0000000000000..bfb1737a5d89b --- /dev/null +++ b/atom.html @@ -0,0 +1,581 @@ +/atom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

atom

The base type for nearly all physical objects in SS13

+

Lots and lots of functionality lives here, although in general we are striving to move +as much as possible to the components/elements system

Vars

active_hud_listall of this atom's HUD images which can actually be seen by players with that hud
ai_controllerAI controller that controls this atom. type on init, then turned into an instance during runtime
articleIf non-null, overrides a/an/some in all cases
atom_coloursused to store the different colors on an atom
atom_storagethe datum handler for our contents - see create_storage() for creation method
base_icon_stateUsed for changing icon states for different base sprites.
base_pixel_wDefault pixel w shifting for the atom's icon.
base_pixel_xDefault pixel x shifting for the atom's icon.
base_pixel_yDefault pixel y shifting for the atom's icon.
base_pixel_zDefault pixel z shifting for the atom's icon.
bottom_left_cornerSmoothing variable
bottom_right_cornerSmoothing variable
buckle_message_cooldownCooldown tick timer for buckle messages
canSmoothWithList of smoothing groups this atom can smooth with. If this is null and atom is smooth, it smooths only with itself. Must be sorted.
can_astar_passHow this atom should react to having its astar blocking checked
can_atmos_passCheck if atmos can pass in this atom (ATMOS_PASS_YES, ATMOS_PASS_NO, ATMOS_PASS_DENSITY, ATMOS_PASS_PROC)
chat_colorLast color calculated for the the chatmessage overlays
chat_color_darkenedA luminescence-shifted value of the last color calculated for chatmessage overlays
chat_color_nameLast name used to calculate a color for the chatmessage overlays
custom_acid_overlayThe icon state intended to be used for the acid component. Used to override the default acid overlay icon state.
custom_materialsThe custom materials this atom is made of, used by a lot of things like furniture, walls, and floors (if I finish the functionality, that is.) +The list referenced by this var can be shared by multiple objects and should not be directly modified. Instead, use set_custom_materials.
damage_deflectionDamage under this value will be completely ignored
examine_thatsText that appears preceding the name in examine()
explosive_resistanceHow much this atom resists explosions by, in the end
fingerprintslastLast fingerprints to touch this atom
flags_1First atom flags var
forensicsforensics datum, contains fingerprints, fibres, blood_dna and hiddenprints on this atom
ghost_screentipswhether ghosts can see screentips on it
greyscale_colorsA string of hex format colors to be used by greyscale sprites, ex: "#0054aa#badcff"
greyscale_configThe config type to use for greyscaled sprites. Both this and greyscale_colors must be assigned to work.
hud_listall of this atom's HUD (med/sec, etc) images. Associative list of the form: list(hud category = hud image or images for that category). +most of the time hud category is associated with a single image, sometimes its associated with a list of images. +not every hud in this list is actually used. for ones available for others to see, look at active_hud_list.
hud_possibleHUD images that this atom can provide.
interaction_flags_atomIntearaction flags
interaction_flags_clickFlags to check for in can_perform_action. Used in alt-click & ctrl-click checks
interaction_flags_mouse_dropFlags to check for in can_perform_action for mouse drag & drop checks. To bypass checks see interaction_flags_atom mouse drop flags
lightOur light source. Don't fuck with this directly unless you have a good reason!
light_angleAngle of light to show in light_dir +360 is a circle, 90 is a cone, etc.
light_colorHexadecimal RGB string representing the colour of the light. White by default.
light_dirWhat angle to project light in
light_flagsBitflags to determine lighting-related atom properties.
light_heightHow many tiles "up" this light is. 1 is typical, should only really change this if it's a floor light
light_onBoolean variable for toggleable lights. Has no effect without the proper light_system, light_range and light_power values.
light_powerIntensity of the light. The stronger, the less shadows you will see on the lit area.
light_rangeRange of the light in tiles. Zero means no light.
light_sourcesAny light sources that are "inside" of us, for example, if src here was a mob that's carrying a flashlight, that flashlight's light source would be part of this list.
light_systemLight systems, both shouldn't be active at the same time.
managed_overlaysoverlays managed by update_overlays to prevent removing overlays that weren't added by the same proc. Single items are stored on their own, not in a list.
managed_vis_overlaysvis overlays managed by SSvis_overlays to automaticaly turn them like other overlays.
material_flagsBitfield for how the atom handles materials.
material_modifierModifier that raises/lowers the effect of the amount of a material, prevents small and easy to get items from being death machines.
mergersHolds merger groups currently active on the atom. Do not access directly, use GetMergeGroup() instead.
orbit_targetReference to atom being orbited
orbitersThe orbiter component, if there's anything orbiting this atom
pass_flags_selfpass_flags that we are. If any of this matches a pass_flag on a moving thing, by default, we let them through.
prevent_rcd_deconstructionDo we prevent the RCD from interacting with this atom regardless?
rad_insulationRadiation insulation types
reagentsReagents holder
realized_overlaysList of overlay "keys" (info about the appearance) -> mutable versions of static appearances +Drawn from the overlays list
realized_underlaysList of underlay "keys" (info about the appearance) -> mutable versions of static appearances +Drawn from the underlays list
receive_ricochet_chance_modWhen a projectile tries to ricochet off this atom, the projectile ricochet chance is multiplied by this
receive_ricochet_damage_coeffWhen a projectile ricochets off this atom, it deals the normal damage * this modifier to this atom
smoothing_flagsIcon-smoothing behavior.
smoothing_groupsWhat smoothing groups does this atom belongs to, to match canSmoothWith. If null, nobody can smooth with it. Must be sorted.
smoothing_junctionWhat directions this is currently smoothing with. IMPORTANT: This uses the smoothing direction flags as defined in icon_smoothing.dm, instead of the BYOND flags.
top_left_cornerSmoothing variable
top_right_cornerSmoothing variable
update_on_zLazylist of all images (or atoms, I'm sorry) (hopefully attached to us) to update when we change z levels +You will need to manage adding/removing from this yourself, but I'll do the updating for you
update_overlays_on_zLazylist of all overlays attached to us to update when we change z levels +You will need to manage adding/removing from this yourself, but I'll do the updating for you +Oh and note, if order of addition is important this WILL break that. so mind yourself
uses_integrityany atom that uses integrity and can be damaged must set this to true, otherwise the integrity procs will throw an error

Procs

AllowDropAre you allowed to drop this atom
BeamThis is what you use to start a beam. Example: origin.Beam(target, args). Store the return of this proc if you don't set maxdist or time, you need it to delete the beam.
CanAStarPassThis proc is used for telling whether something can pass by this atom in a given direction, for use by the pathfinding system.
CanAllowThroughReturns true or false to allow the mover to move through src
CanPassWhether the mover object can avoid being blocked by this atom, while arriving from (or leaving through) the border_dir.
CanReachA backwards depth-limited breadth-first-search to see if the target is +logically "in" anything adjacent to us.
CheckPartsEnsure a list of atoms/reagents exists inside this atom
ClickBefore anything else, defer these calls to a per-mobtype handler. This allows us to +remove istype() spaghetti code, but requires the addition of other handler procs to simplify it.
DestroyTop level of the destroy chain for most atoms
EnteredAn atom has entered this atom's contents
ExitAn atom is attempting to exit this atom's contents
ExitedAn atom has exited this atom's contents
GetMergeGroupGets a merger datum representing the connected blob of objects in the allowed_types argument
HasProximityIs this atom within 1 tile of another atom
InitializeThe primary method that objects are setup in SS13 with
IsObscuredIs the atom obscured by a PREVENT_CLICK_UNDER_1 object above it
LateInitializeLate Initialization, for code that should run after all atoms have run Initialization
NewCalled when an atom is created in byond (built in engine proc)
RemoveInvisibilityRemoves the specified invisibility source from the tracker
SetInvisibilitySets invisibility according to priority. +If you want to be able to undo the value you set back to what it would be otherwise, +you should provide an id here and remove it using RemoveInvisibility(id)
ShakePerform a shake on an atom, resets its position afterwards
ShowProcessingGuiCreates the radial and processes the selected option
SpinAnimationProc called when you want the atom to spin around the center of its icon (or where it would be if its transform var is translated) +By default, it makes the atom spin forever and ever at a speed of 60 rpm.
TopicPasses Stat Browser Panel clicks to the game and calls client click on an atom
_Clickstupid workaround for byond not recognizing the /atom/Click typepath for the queued click callbacks
acid_actRespond to acid being used on our atom
add_atom_colourAdds an instance of colour_type to the atom's atom_colours list
add_blood_DNAAdds blood dna to the atom
add_contextCreates a "Type-B" contextual screentip interaction. +When a user hovers over this, this proc will be called in order +to provide context for contextual screentips. +You must call register_context() in order for this to be registered. +A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm) +that map to the action as text. +If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET. +source can, in all cases, be replaced with src, and only exists because this proc directly connects to a signal.
add_fiber_listAdd a list of fibers to the atom
add_fibersAdds a single fiber to the atom
add_fingerprintAdds a single fingerprint to the atom
add_fingerprint_listAdds a list of fingerprints to the atom
add_hiddenprintAdds a single hiddenprint to the atom
add_hiddenprint_listAdds a list of hiddenprints to the atom
add_liquid_from_reagentsAdds liquid to a turf from a given reagents list.
add_mob_bloodto add blood from a mob onto something, and transfer their dna info
analyzer_actCalled on an object when a tool with analyzer capabilities is used to left click an object
analyzer_act_secondaryCalled on an object when a tool with analyzer capabilities is used to right click an object
animate_atom_livingproc to animate the target into a living creature
assume_airTake air from the passed in gas mixture datum
atmos_conditions_changedRun when you update the conditions in which an /atom might want to start reacting to its turf's air
atmos_endWhat to do when our requirements are no longer met
atmos_exposeThis is your process() proc
atom_breakCalled after the atom takes damage and integrity is below integrity_failure level
atom_destructionwhat happens when the atom's integrity reaches zero.
atom_fixCalled when integrity is repaired above the breaking point having been broken before
attack_ai_secondaryWhat happens when the AI holds right-click on an item. Returns a SECONDARY_ATTACK_* value.
attack_alien_secondaryCalled when an alien right clicks an atom. +Returns a SECONDARY_ATTACK_* value.
attack_animalCalled when a simple animal is unarmed attacking / clicking on this atom.
attack_animal_secondaryCalled when a simple animal or basic mob right clicks an atom. +Returns a SECONDARY_ATTACK_* value.
attack_basic_mobWhen a basic mob attacks something, either by AI or user.
attack_droneDefaults to attack_hand. Override it when you don't want drones to do same stuff as humans.
attack_drone_secondaryCalled when a maintenance drone right clicks an atom. +Defaults to attack_hand_secondary. +When overriding it, remember that it ought to return a SECONDARY_ATTACK_* value.
attack_handReturn TRUE to cancel other attack hand effects that respect it. Modifiers is the assoc list for click info such as if it was a right click.
attack_hand_secondaryWhen the user uses their hand on an item while holding right-click +Returns a SECONDARY_ATTACK_* value.
attack_hulkThis atom has been hit by a hulkified mob in hulk mode (user)
attack_larva_secondaryCalled when an alien larva right clicks an atom. +Returns a SECONDARY_ATTACK_* value.
attack_pai_secondaryCalled when a pAI right clicks an atom. +Returns a SECONDARY_ATTACK_* value.
attack_pawAttacked by monkey. It doesn't need its own *_secondary proc as it just uses attack_hand_secondary instead.
attack_robot_secondaryWhat happens when the cyborg without active module holds right-click on an item. Returns a SECONDARY_ATTACK_* value.
attack_self_tkTelekinesis item attack_self act.
attack_tkTelekinesis attack act, happens when the TK user clicks on a non-adjacent target in range.
attackbyCalled on an object being hit by an item
attackby_secondaryCalled on an object being right-clicked on by an item
attacked_byCalled from /obj/item/proc/attack_atom and /obj/item/proc/attack if the attack succeeds
attempt_chargeUsed to attempt to charge an object with a payment component.
audible_messageShow a message to all mobs in earshot of this atom
balloon_alertCreates text that will float from the atom upwards to the viewer.
balloon_alert_to_viewersCreate balloon alerts (text that floats up) to everything within range. +Will only display to people who can see.
base_item_interaction
base_mouse_drop_handlerCalled when all sanity checks for mouse dropping have passed. Handles adjacency & other sanity checks before delegating the event +down to lower level handlers. Do not override unless you are trying to create hud & screen elements which do not require proximity +or other checks
base_ranged_item_interaction
billow_actCalled on an object when a tool with wrench capabilities is used to left click an object
billow_act_secondaryCalled on an object when a tool with wrench capabilities is used to right click an object
bitmask_smoothBasic smoothing proc. The atom checks for adjacent directions to smooth with and changes the icon_state based on that.
blob_actReact to a hit by a blob objecd
blowrod_actCalled on an object when a tool with wrench capabilities is used to left click an object
blowrod_act_secondaryCalled on an object when a tool with wrench capabilities is used to right click an object
bullet_actReact to a hit by a projectile object
calculate_adjacenciesScans all adjacent turfs to find targets to smooth with.
can_liquid_spill_on_hitCan liquid spills on this atom?
check_projectile_armorA cut-out proc for /atom/proc/bullet_act so living mobs can have their own armor behavior checks without causing issues with needing their own on_hit call
click_alt
click_alt_secondary
click_ctrl
click_ctrl_shift
clone_storageA quick and easy way to /clone/ a storage datum for an atom (does not copy over contents, only the datum details)
connect_to_shuttleConnect this atom to a shuttle
container_resist_actCalled when something resists while this atom is its loc
containsReturns true if the src countain the atom target
contents_explosionHandle what happens when your contents are exploded by a bomb
create_digital_auraCreates a digital effect around the target
create_reagentsConvenience proc to create a reagents holder for an atom
create_storageA quick and easy way to create a storage datum for an atom
crowbar_actCalled on an object when a tool with crowbar capabilities is used to left click an object
crowbar_act_secondaryCalled on an object when a tool with crowbar capabilities is used to right click an object
debugSets up this light source to be debugged, setting up in world buttons to control and move it +Also freezes it, so it can't change in future
do_alert_animationDoes the MGS ! animation
do_spin_animationAnimates source spinning around itself. For docmentation on the args, check atom/proc/SpinAnimation()
drop_locationWhere atoms should drop if taken from this atom
emag_actRespond to an emag being used on our atom
emp_actReact to an EMP of the given severity
ex_actReact to being hit by an explosion
examineCalled when a mob examines (shift click or verb) this atom
examine_descriptorWhat this atom should be called in examine tags
examine_moreCalled when a mob examines (shift click or verb) this atom twice (or more) within EXAMINE_MORE_WINDOW (default 1 second)
examine_post_descriptorReturns a list of strings to be displayed after the descriptor
examine_titleFormats the atom's name into a string for use in examine (as the "title" of the atom)
expose_reagents
extinguishSends COMSIG_ATOM_EXTINGUISH signal, which properly removes burning component if it is present.
find_all_cells_containingdebug proc for checking if a movable is in multiple cells when it shouldnt be (ie always unless multitile entering is implemented)
find_grid_statistics_for_z_leveldebug proc for finding how full the cells of src's z level are
find_type_in_directionScans direction to find targets to smooth with.
fire_actRespond to fire being used on our atom
fire_projectileFire a projectile from this atom at another atom
flick_overlayFlicks a certain overlay onto an atom, handling icon_state strings
flick_overlay_staticFlickers an overlay on an atom
flick_overlay_viewTakes the passed in MA/icon_state, mirrors it onto ourselves, and displays that in world for duration seconds +Returns the displayed object, you can animate it and all, but you don't own it, we'll delete it after the duration
get_all_contentsReturns the src and all recursive contents as a list.
get_all_contents_ignoringLike get_all_contents_type, but uses a typecache list as argument
get_all_contents_skipping_traitsReturns the src and all recursive contents, but skipping going any deeper if an atom has a specific trait.
get_all_contents_typeidentical to get_all_contents but returns a list of atoms of the type passed in the argument.
get_all_orbitersRecursive getter method to return a list of all ghosts orbitting this atom
get_armorGet the atom's armor reference
get_armor_ratingHelper to get a specific rating for the atom's armor
get_custom_material_amountGets the total amount of materials in this atom.
get_digital_overlaysReturns a list of overlays to be used for the digital effect
get_dumping_locationIf someone's trying to dump items onto our atom, where should they be dumped to?
get_examine_iconIcon displayed in examine
get_examine_nameGet the name of this object for examine
get_id_examine_stringsReturns an extended list of examine strings for any contained ID cards.
get_integrityThis mostly exists to keep atom_integrity private. Might be useful in the future.
get_integrity_percentageSimilar to get_integrity, but returns the percentage as [0-1] instead.
get_master_materialGets the most common material in the object.
get_material_compositionReturns the material composition of the atom.
get_name_chaserUsed to insert text after the name but before the description in examine()
get_oversized_icon_offsetsReturns an x and y value require to reverse the transformations made to center an oversized icon
get_remote_view_fullscreensthe vision impairment to give to the mob whose perspective is set to that atom
get_save_vars
get_visible_nameUsed by mobs to determine the name for someone wearing a mask, or with a disfigured or missing face. By default just returns the atom's name. add_id_name will control whether or not we append "(as [id_name])". +force_real_name will always return real_name and add (as face_name/id_name) if it doesn't match their appearance
hammer_actCalled on an object when a tool with wrench capabilities is used to left click an object
hammer_act_secondaryCalled on an object when a tool with wrench capabilities is used to right click an object
handle_basic_attackThis exists so stuff can override the default call of attack_animal for attack_basic_mob +Remove this when simple animals are removed and everything can be handled on attack basic mob.
handle_fallUsed for making a sound when a mob involuntarily falls into the ground.
handle_slipHandle the atom being slipped over
has_gravityReturns true if this atom has gravity for the passed in turf
has_material_categoryFetches a list of all of the materials this object has with the desired material category.
has_material_typeFetches a list of all of the materials this object has of the desired type. Returns null if there is no valid materials of the type
hitbyReact to being hit by a thrown object
hitby_reactWe have have actually hit the passed in atom
hulk_damageCalled to get the damage that hulks will deal to the atom.
in_contents_ofReturn true if we're inside the passed in atom
is_atom_colourChecks if this atom has the passed color +Can optionally be supplied with a range of priorities, IE only checking "washable" or above
is_drainableIs this atom drainable of reagents
is_drawableCan we draw from this atom with an injectable atom
is_injectableIs this atom injectable into other atoms
is_open_containerConvenience proc to see if a container is open for chemistry handling
is_refillableCan this atoms reagents be refilled
isinspaceIs this atom in space
item_interactionCalled when this atom has an item used on it. +IE, a mob is clicking on this atom with an item.
item_interaction_secondaryCalled when this atom has an item used on it WITH RIGHT CLICK, +IE, a mob is right clicking on this atom with an item. +Default behavior has it run the same code as left click.
log_messageGeneric logging helper
log_talkHelper for logging chat messages or other logs with arbitrary inputs (e.g. announcements)
makeHologramMakes this atom look like a "hologram" +So transparent, blue, with a scanline and an emissive glow +This is acomplished using a combination of filters and render steps/overlays +The degree of the opacity is optional, based off the opacity arg (0 -> 1)
manual_emoteAllows the intrepid coder to send a basic emote +Takes text as input, sends it out to those who need to know after some light parsing +If you need something more complex, make it into a datum emote +Arguments:
mat_update_descThis proc is called when a material updates an object's description
mech_melee_attack
modify_max_integritychanges max_integrity while retaining current health percentage, returns TRUE if the atom got broken.
mouse_drop_draggedThe proc that should be overridden by subtypes to handle mouse drop. Called on the atom being dragged
mouse_drop_receiveThe proc that should be overridden by subtypes to handle mouse drop. Called on the atom receiving a dragged object
multitool_actCalled on an object when a tool with multitool capabilities is used to left click an object
multitool_act_secondaryCalled on an object when a tool with multitool capabilities is used to right click an object
narsie_actRespond to narsie eating our atom
ninjadrain_actAtom level proc for space ninja's glove interactions.
onAwayMissionIs the atom in an away mission
onCentComIs this atom currently located on centcom (or riding off into the sunset on a shuttle)
onSyndieBaseIs the atom in any of the syndicate areas
on_escaped_shuttleChecks that we're on a shuttle that's escaped
on_loadout_custom_describedCalled after a loadout item gets a custom description
on_loadout_custom_namedCalled after a loadout item gets custom named
on_logCalled when the atom log's in or out
on_mouse_enterFired whenever this atom is the most recent to be hovered over in the tick. +Preferred over MouseEntered if you do not need information such as the position of the mouse. +Especially because this is deferred over a tick, do not trust that client is not null.
on_saboteurOverride on subtype to add behaviour. Whatever happens when we are sabotaged
on_update_integrityHandle updates to your atom's integrity
play_attack_soundthe sound played when the atom is damaged.
prepare_hudsPrepare the huds for this atom
propagate_radiation_pulseA common proc used to send COMSIG_ATOM_PROPAGATE_RAD_PULSE to adjacent atoms +Only used for uranium (false/tram)walls to spread their radiation pulses
ranged_item_interactionCalled when this atom has an item used on it from a distance. +IE, a mob is clicking on this atom with an item and is not adjacent.
ranged_item_interaction_secondaryCalled when this atom has an item used on it from a distance WITH RIGHT CLICK, +IE, a mob is right clicking on this atom with an item and is not adjacent.
rcd_actRespond to an RCD acting on our item
rcd_valsReturn the values you get when an RCD eats you?
realize_overlaysTakes the atoms's existing overlays and underlays, and makes them mutable so they can be properly vv'd in the realized_overlays/underlays list
register_contextCreate a "Type-B" contextual screentip interaction, registering to add_context(). +This will run add_context() when the atom is hovered over by an item for context. +add_context() will not be called unless this is run. +This is not necessary for Type-B interactions, as you can just apply the flag and register to the signal yourself.
relaydriveA special case of relaymove() in which the person relaying the move may be "driving" this atom
relaymoveAn atom we are buckled or is contained within us has tried to move
remove_airRemove air from this atom
remove_atom_colourRemoves an instance of colour_type from the atom's atom_colours list
remove_digital_auraRemoves the digital effect around the target
repair_damageProc for recovering atom_integrity. Returns the amount repaired by
replace_smooth_overlaysInternal: Takes icon states as text to replace smoothing corner overlays
return_airReturn the current air environment in this atom
return_analyzable_airReturn the air if we can analyze it
return_temperatureReturn atom temperature
run_atom_armorreturns the damage value of the attack after processing the atom's various armor protections
runechat_prefs_checkReturns the client runechat visible messages preference according to the message type.
rust_heretic_actCauses effects when the atom gets hit by a rust effect from heretics
screwdriver_actCalled on an object when a tool with screwdriver capabilities is used to left click an object
screwdriver_act_secondaryCalled on an object when a tool with screwdriver capabilities is used to right click an object
setClosedUsed to set something as 'closed' if it's being used as a supplypod
setDirHook for running code when a dir change occurs
setOpenedUsed to set something as 'open' if it's being used as a supplypod
set_armorSets the armor of this atom to the specified armor
set_armor_ratingHelper to update the atom's armor to a new armor with the specified rating
set_base_pixel_xSetter for the base_pixel_x variable to append behavior related to its changing.
set_base_pixel_ySetter for the base_pixel_y variable to append behavior related to its changing.
set_custom_materialsSets the custom materials for an item.
set_densitySetter for the density variable to append behavior related to its changing.
set_greyscaleHandles updates to greyscale value updates. +The colors argument can be either a list or the full color string. +Child procs should call parent last so the update happens after all changes.
set_hud_image_activeset every hud image in the given category active so other people with the given hud can see it. +Arguments:
set_hud_image_inactivesets every hud image in the given category inactive so no one can see it
set_light_angleSetter for the light angle of this atom
set_light_colorSetter for the light color of this atom.
set_light_dirSetter for the light direction of this atom
set_light_flagsSetter for the light flags of this atom.
set_light_heightSetter for the height of our light
set_light_onSetter for whether or not this atom's light is on.
set_light_powerSetter for the light power of this atom.
set_light_rangeSetter for the light range of this atom.
set_opacityUpdates the atom's opacity value.
set_smoothed_icon_stateChanges the icon state based on the new junction bitmask
set_wiresSets the wire datum of an atom
should_atmos_processWe use this proc to check if we should start processing an item, or continue processing it. Returns true/false as expected
shuttleRotateBase proc
singularity_actRespond to the singularity eating this atom
singularity_pullRespond to the singularity pulling on us
smooth_icondo not use, use QUEUE_SMOOTH(atom)
spasm_animationSimilar to shake but more spasm-y and jerk-y
take_damageThe essential proc to call when an atom must receive damage of any kind.
tamedCalled after the atom is 'tamed' for type-specific operations, Usually called by the tameable component but also other things.
throw_back_liquidBounces a thrown liquid off of a some object that has density.
tong_actCalled on an object when a tool with wrench capabilities is used to left click an object
tong_act_secondaryCalled on an object when a tool with wrench capabilities is used to right click an object
tool_act
transfer_mob_blood_dnato add a mob's dna info into an object's blood_dna list.
undebugDisables light debugging, so you can let a scene fall to what it visually should be, or just fix admin fuckups
update_appearanceUpdates the appearence of the icon
update_atom_colourResets the atom's color to null, and then sets it to the highest priority colour available
update_descUpdates the description of the atom
update_greyscaleChecks if this atom uses the GAGS system and if so updates the icon
update_iconUpdates the icon of the atom
update_icon_stateUpdates the icon state of the atom
update_inhand_iconChecks the atom's loc and calls update_held_items on it if it is a mob.
update_integrityHandles the integrity of an atom changing. This must be called instead of changing integrity directly.
update_lightWill update the light (duh). +Creates or destroys it if needed, makes it update values, makes sure it's got the correct source turf...
update_nameUpdates the name of the atom
update_overlaysUpdates the overlays of the atom
update_remote_sightthe sight changes to give to the mob whose perspective is set to that atom
visible_messageGenerate a visible message from this atom
vv_edit_varcall back when a var is edited on this atom
vv_get_dropdownReturn the markup to for the dropdown list for the VV panel for this atom
washWash this atom
welder_actCalled on an object when a tool with welder capabilities is used to left click an object
welder_act_secondaryCalled on an object when a tool with welder capabilities is used to right click an object
wirecutter_actCalled on an object when a tool with wirecutter capabilities is used to left click an object
wirecutter_act_secondaryCalled on an object when a tool with wirecutter capabilities is used to right click an object
wrench_actCalled on an object when a tool with wrench capabilities is used to left click an object
wrench_act_secondaryCalled on an object when a tool with wrench capabilities is used to right click an object
zap_actRespond to an electric bolt action on our item

Var Details

active_hud_list

all of this atom's HUD images which can actually be seen by players with that hud

ai_controller

AI controller that controls this atom. type on init, then turned into an instance during runtime

article

If non-null, overrides a/an/some in all cases

atom_colours

used to store the different colors on an atom

+

its inherent color, the colored paint applied on it, special color effect etc...

atom_storage

the datum handler for our contents - see create_storage() for creation method

base_icon_state

Used for changing icon states for different base sprites.

base_pixel_w

Default pixel w shifting for the atom's icon.

base_pixel_x

Default pixel x shifting for the atom's icon.

base_pixel_y

Default pixel y shifting for the atom's icon.

base_pixel_z

Default pixel z shifting for the atom's icon.

bottom_left_corner

Smoothing variable

bottom_right_corner

Smoothing variable

buckle_message_cooldown

Cooldown tick timer for buckle messages

canSmoothWith

List of smoothing groups this atom can smooth with. If this is null and atom is smooth, it smooths only with itself. Must be sorted.

can_astar_pass

How this atom should react to having its astar blocking checked

can_atmos_pass

Check if atmos can pass in this atom (ATMOS_PASS_YES, ATMOS_PASS_NO, ATMOS_PASS_DENSITY, ATMOS_PASS_PROC)

chat_color

Last color calculated for the the chatmessage overlays

chat_color_darkened

A luminescence-shifted value of the last color calculated for chatmessage overlays

chat_color_name

Last name used to calculate a color for the chatmessage overlays

custom_acid_overlay

The icon state intended to be used for the acid component. Used to override the default acid overlay icon state.

custom_materials

The custom materials this atom is made of, used by a lot of things like furniture, walls, and floors (if I finish the functionality, that is.) +The list referenced by this var can be shared by multiple objects and should not be directly modified. Instead, use set_custom_materials.

damage_deflection

Damage under this value will be completely ignored

examine_thats

Text that appears preceding the name in examine()

explosive_resistance

How much this atom resists explosions by, in the end

fingerprintslast

Last fingerprints to touch this atom

flags_1

First atom flags var

forensics

forensics datum, contains fingerprints, fibres, blood_dna and hiddenprints on this atom

ghost_screentips

whether ghosts can see screentips on it

greyscale_colors

A string of hex format colors to be used by greyscale sprites, ex: "#0054aa#badcff"

greyscale_config

The config type to use for greyscaled sprites. Both this and greyscale_colors must be assigned to work.

hud_list

all of this atom's HUD (med/sec, etc) images. Associative list of the form: list(hud category = hud image or images for that category). +most of the time hud category is associated with a single image, sometimes its associated with a list of images. +not every hud in this list is actually used. for ones available for others to see, look at active_hud_list.

hud_possible

HUD images that this atom can provide.

interaction_flags_atom

Intearaction flags

interaction_flags_click

Flags to check for in can_perform_action. Used in alt-click & ctrl-click checks

interaction_flags_mouse_drop

Flags to check for in can_perform_action for mouse drag & drop checks. To bypass checks see interaction_flags_atom mouse drop flags

light

Our light source. Don't fuck with this directly unless you have a good reason!

light_angle

Angle of light to show in light_dir +360 is a circle, 90 is a cone, etc.

light_color

Hexadecimal RGB string representing the colour of the light. White by default.

light_dir

What angle to project light in

light_flags

Bitflags to determine lighting-related atom properties.

light_height

How many tiles "up" this light is. 1 is typical, should only really change this if it's a floor light

light_on

Boolean variable for toggleable lights. Has no effect without the proper light_system, light_range and light_power values.

light_power

Intensity of the light. The stronger, the less shadows you will see on the lit area.

light_range

Range of the light in tiles. Zero means no light.

light_sources

Any light sources that are "inside" of us, for example, if src here was a mob that's carrying a flashlight, that flashlight's light source would be part of this list.

light_system

Light systems, both shouldn't be active at the same time.

managed_overlays

overlays managed by update_overlays to prevent removing overlays that weren't added by the same proc. Single items are stored on their own, not in a list.

managed_vis_overlays

vis overlays managed by SSvis_overlays to automaticaly turn them like other overlays.

material_flags

Bitfield for how the atom handles materials.

material_modifier

Modifier that raises/lowers the effect of the amount of a material, prevents small and easy to get items from being death machines.

mergers

Holds merger groups currently active on the atom. Do not access directly, use GetMergeGroup() instead.

orbit_target

Reference to atom being orbited

orbiters

The orbiter component, if there's anything orbiting this atom

pass_flags_self

pass_flags that we are. If any of this matches a pass_flag on a moving thing, by default, we let them through.

prevent_rcd_deconstruction

Do we prevent the RCD from interacting with this atom regardless?

rad_insulation

Radiation insulation types

reagents

Reagents holder

realized_overlays

List of overlay "keys" (info about the appearance) -> mutable versions of static appearances +Drawn from the overlays list

realized_underlays

List of underlay "keys" (info about the appearance) -> mutable versions of static appearances +Drawn from the underlays list

receive_ricochet_chance_mod

When a projectile tries to ricochet off this atom, the projectile ricochet chance is multiplied by this

receive_ricochet_damage_coeff

When a projectile ricochets off this atom, it deals the normal damage * this modifier to this atom

smoothing_flags

Icon-smoothing behavior.

smoothing_groups

What smoothing groups does this atom belongs to, to match canSmoothWith. If null, nobody can smooth with it. Must be sorted.

smoothing_junction

What directions this is currently smoothing with. IMPORTANT: This uses the smoothing direction flags as defined in icon_smoothing.dm, instead of the BYOND flags.

top_left_corner

Smoothing variable

top_right_corner

Smoothing variable

update_on_z

Lazylist of all images (or atoms, I'm sorry) (hopefully attached to us) to update when we change z levels +You will need to manage adding/removing from this yourself, but I'll do the updating for you

update_overlays_on_z

Lazylist of all overlays attached to us to update when we change z levels +You will need to manage adding/removing from this yourself, but I'll do the updating for you +Oh and note, if order of addition is important this WILL break that. so mind yourself

uses_integrity

any atom that uses integrity and can be damaged must set this to true, otherwise the integrity procs will throw an error

Proc Details

AllowDrop

Are you allowed to drop this atom

Beam

This is what you use to start a beam. Example: origin.Beam(target, args). Store the return of this proc if you don't set maxdist or time, you need it to delete the beam.

+

Unless you're making a custom beam effect (see the beam_type argument), you won't actually have to mess with any other procs. Make sure you store the return of this Proc, you'll need it +to kill the beam. +Arguments: +BeamTarget: Where you're beaming from. Where do you get origin? You didn't read the docs, fuck you. +icon_state: What the beam's icon_state is. The datum effect isn't the ebeam object, it doesn't hold any icon and isn't type dependent. +icon: What the beam's icon file is. Don't change this, man. All beam icons should be in beam.dmi anyways. +maxdistance: how far the beam will go before stopping itself. Used mainly for two things: preventing lag if the beam may go in that direction and setting a range to abilities that use beams. +beam_type: The type of your custom beam. This is for adding other wacky stuff for your beam only. Most likely, you won't (and shouldn't) change it.

CanAStarPass

This proc is used for telling whether something can pass by this atom in a given direction, for use by the pathfinding system.

+

Trying to generate one long path across the station will call this proc on every single object on every single tile that we're seeing if we can move through, likely +multiple times per tile since we're likely checking if we can access said tile from multiple directions, so keep these as lightweight as possible.

+

For turfs this will only be used if pathing_pass_method is TURF_PATHING_PASS_PROC

+

Arguments:

+ +

IMPORTANT NOTE: /turf/proc/LinkBlockedWithAccess assumes that overrides of CanAStarPass will always return true if density is FALSE +If this is NOT you, ensure you edit your can_astar_pass variable. Check __DEFINES/path.dm

CanAllowThrough

Returns true or false to allow the mover to move through src

CanPass

Whether the mover object can avoid being blocked by this atom, while arriving from (or leaving through) the border_dir.

CanReach

A backwards depth-limited breadth-first-search to see if the target is +logically "in" anything adjacent to us.

CheckParts

Ensure a list of atoms/reagents exists inside this atom

+

Goes throught he list of passed in parts, if they're reagents, adds them to our reagent holder +creating the reagent holder if it exists.

+

If the part is a moveable atom and the previous location of the item was a mob/living, +it calls the inventory handler transferItemToLoc for that mob/living and transfers the part +to this atom

+

Otherwise it simply forceMoves the atom into this atom

Click

Before anything else, defer these calls to a per-mobtype handler. This allows us to +remove istype() spaghetti code, but requires the addition of other handler procs to simplify it.

+

Alternately, you could hardcode every mob's variation in a flat /mob/proc/ClickOn proc; however, +that's a lot of code duplication and is hard to maintain.

+

Note that this proc can be overridden, and is in the case of screen objects.

Destroy

Top level of the destroy chain for most atoms

+

Cleans up the following:

+

Entered

An atom has entered this atom's contents

+

Default behaviour is to send the COMSIG_ATOM_ENTERED

Exit

An atom is attempting to exit this atom's contents

+

Default behaviour is to send the COMSIG_ATOM_EXIT

Exited

An atom has exited this atom's contents

+

Default behaviour is to send the COMSIG_ATOM_EXITED

GetMergeGroup

Gets a merger datum representing the connected blob of objects in the allowed_types argument

HasProximity

Is this atom within 1 tile of another atom

Initialize

The primary method that objects are setup in SS13 with

+

we don't use New as we have better control over when this is called and we can choose +to delay calls or hook other logic in and so forth

+

During roundstart map parsing, atoms are queued for initialization in the base atom/New(), +After the map has loaded, then Initialize is called on all atoms one by one. NB: this +is also true for loading map templates as well, so they don't Initialize until all objects +in the map file are parsed and present in the world

+

If you're creating an object at any point after SSInit has run then this proc will be +immediately be called from New.

+

mapload: This parameter is true if the atom being loaded is either being initialized during +the Atom subsystem initialization, or if the atom is being loaded from the map template. +If the item is being created at runtime any time after the Atom subsystem is initialized then +it's false.

+

The mapload argument occupies the same position as loc when Initialize() is called by New(). +loc will no longer be needed after it passed New(), and thus it is being overwritten +with mapload at the end of atom/New() before this proc (atom/Initialize()) is called.

+

You must always call the parent of this proc, otherwise failures will occur as the item +will not be seen as initialized (this can lead to all sorts of strange behaviour, like +the item being completely unclickable)

+

You must not sleep in this proc, or any subprocs

+

Any parameters from new are passed through (excluding loc), naturally if you're loading from a map +there are no other arguments

+

Must return an initialization hint or a runtime will occur.

+

Note: the following functions don't call the base for optimization and must copypasta handling:

+

IsObscured

Is the atom obscured by a PREVENT_CLICK_UNDER_1 object above it

LateInitialize

Late Initialization, for code that should run after all atoms have run Initialization

+

To have your LateIntialize proc be called, your atoms Initialization +proc must return the hint +INITIALIZE_HINT_LATELOAD otherwise it will never be called.

+

useful for doing things like finding other machines on GLOB.machines because you can guarantee +that all atoms will actually exist in the "WORLD" at this time and that all their Initialization +code has been run

New

Called when an atom is created in byond (built in engine proc)

+

Not a lot happens here in SS13 code, as we offload most of the work to the +Initialization proc, mostly we run the preloader +if the preloader is being used and then call InitAtom of which the ultimate +result is that the Initialize proc is called.

RemoveInvisibility

Removes the specified invisibility source from the tracker

SetInvisibility

Sets invisibility according to priority. +If you want to be able to undo the value you set back to what it would be otherwise, +you should provide an id here and remove it using RemoveInvisibility(id)

Shake

Perform a shake on an atom, resets its position afterwards

ShowProcessingGui

Creates the radial and processes the selected option

SpinAnimation

Proc called when you want the atom to spin around the center of its icon (or where it would be if its transform var is translated) +By default, it makes the atom spin forever and ever at a speed of 60 rpm.

+

Arguments:

+

Topic

Passes Stat Browser Panel clicks to the game and calls client click on an atom

_Click

stupid workaround for byond not recognizing the /atom/Click typepath for the queued click callbacks

acid_act

Respond to acid being used on our atom

+

Default behaviour is to send COMSIG_ATOM_ACID_ACT and return

add_atom_colour

Adds an instance of colour_type to the atom's atom_colours list

add_blood_DNA

Adds blood dna to the atom

add_context

Creates a "Type-B" contextual screentip interaction. +When a user hovers over this, this proc will be called in order +to provide context for contextual screentips. +You must call register_context() in order for this to be registered. +A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm) +that map to the action as text. +If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET. +source can, in all cases, be replaced with src, and only exists because this proc directly connects to a signal.

add_fiber_list

Add a list of fibers to the atom

add_fibers

Adds a single fiber to the atom

add_fingerprint

Adds a single fingerprint to the atom

add_fingerprint_list

Adds a list of fingerprints to the atom

add_hiddenprint

Adds a single hiddenprint to the atom

add_hiddenprint_list

Adds a list of hiddenprints to the atom

add_liquid_from_reagents

Adds liquid to a turf from a given reagents list.

+

Tries to add liquid to an atom's turf location. The atom could also be the turf itself. +Calls add_liquid_list() on this turf if it exists.

+

Arguments:

+

add_mob_blood

to add blood from a mob onto something, and transfer their dna info

analyzer_act

Called on an object when a tool with analyzer capabilities is used to left click an object

analyzer_act_secondary

Called on an object when a tool with analyzer capabilities is used to right click an object

animate_atom_living

proc to animate the target into a living creature

assume_air

Take air from the passed in gas mixture datum

atmos_conditions_changed

Run when you update the conditions in which an /atom might want to start reacting to its turf's air

atmos_end

What to do when our requirements are no longer met

atmos_expose

This is your process() proc

atom_break

Called after the atom takes damage and integrity is below integrity_failure level

atom_destruction

what happens when the atom's integrity reaches zero.

atom_fix

Called when integrity is repaired above the breaking point having been broken before

attack_ai_secondary

What happens when the AI holds right-click on an item. Returns a SECONDARY_ATTACK_* value.

+

Arguments:

+

attack_alien_secondary

Called when an alien right clicks an atom. +Returns a SECONDARY_ATTACK_* value.

attack_animal

Called when a simple animal is unarmed attacking / clicking on this atom.

attack_animal_secondary

Called when a simple animal or basic mob right clicks an atom. +Returns a SECONDARY_ATTACK_* value.

attack_basic_mob

When a basic mob attacks something, either by AI or user.

attack_drone

Defaults to attack_hand. Override it when you don't want drones to do same stuff as humans.

attack_drone_secondary

Called when a maintenance drone right clicks an atom. +Defaults to attack_hand_secondary. +When overriding it, remember that it ought to return a SECONDARY_ATTACK_* value.

attack_hand

Return TRUE to cancel other attack hand effects that respect it. Modifiers is the assoc list for click info such as if it was a right click.

attack_hand_secondary

When the user uses their hand on an item while holding right-click +Returns a SECONDARY_ATTACK_* value.

attack_hulk

This atom has been hit by a hulkified mob in hulk mode (user)

attack_larva_secondary

Called when an alien larva right clicks an atom. +Returns a SECONDARY_ATTACK_* value.

attack_pai_secondary

Called when a pAI right clicks an atom. +Returns a SECONDARY_ATTACK_* value.

attack_paw

Attacked by monkey. It doesn't need its own *_secondary proc as it just uses attack_hand_secondary instead.

attack_robot_secondary

What happens when the cyborg without active module holds right-click on an item. Returns a SECONDARY_ATTACK_* value.

+

Arguments:

+

attack_self_tk

Telekinesis item attack_self act.

+

attack_tk

Telekinesis attack act, happens when the TK user clicks on a non-adjacent target in range.

+

attackby

Called on an object being hit by an item

+

Arguments:

+ +

See: /obj/item/proc/melee_attack_chain

attackby_secondary

Called on an object being right-clicked on by an item

+

Arguments:

+ +

See: /obj/item/proc/melee_attack_chain

attacked_by

Called from /obj/item/proc/attack_atom and /obj/item/proc/attack if the attack succeeds

attempt_charge

Used to attempt to charge an object with a payment component.

+

Use this if an atom needs to attempt to charge another atom.

audible_message

Show a message to all mobs in earshot of this atom

+

Use for objects performing audible actions

+

vars:

+

balloon_alert

Creates text that will float from the atom upwards to the viewer.

+

Args:

+

balloon_alert_to_viewers

Create balloon alerts (text that floats up) to everything within range. +Will only display to people who can see.

base_item_interaction

Item interaction

+

Handles non-combat interactions of a tool on this atom, +such as using a tool on a wall to deconstruct it, +or scanning someone with a health analyzer

base_mouse_drop_handler

Called when all sanity checks for mouse dropping have passed. Handles adjacency & other sanity checks before delegating the event +down to lower level handlers. Do not override unless you are trying to create hud & screen elements which do not require proximity +or other checks

base_ranged_item_interaction

Ranged item interaction

+

Handles non-combat ranged interactions of a tool on this atom, +such as shooting a gun in the direction of someone*, +having a scanner you can point at someone to scan them at any distance, +or pointing a laser pointer at something.

+

*While this intuitively sounds combat related, it is not, +because a "combat use" of a gun is gun-butting.

billow_act

Called on an object when a tool with wrench capabilities is used to left click an object

billow_act_secondary

Called on an object when a tool with wrench capabilities is used to right click an object

bitmask_smooth

Basic smoothing proc. The atom checks for adjacent directions to smooth with and changes the icon_state based on that.

+

Returns the previous smoothing_junction state so the previous state can be compared with the new one after the proc ends, and see the changes, if any.

blob_act

React to a hit by a blob objecd

+

default behaviour is to send the COMSIG_ATOM_BLOB_ACT signal

blowrod_act

Called on an object when a tool with wrench capabilities is used to left click an object

blowrod_act_secondary

Called on an object when a tool with wrench capabilities is used to right click an object

bullet_act

React to a hit by a projectile object

+

@params

+

calculate_adjacencies

Scans all adjacent turfs to find targets to smooth with.

can_liquid_spill_on_hit

Can liquid spills on this atom?

+

Returns: TRUE or FALSE

check_projectile_armor

A cut-out proc for /atom/proc/bullet_act so living mobs can have their own armor behavior checks without causing issues with needing their own on_hit call

click_alt

Custom alt click interaction

+

Override this to change default alt click behavior. Return CLICK_ACTION_SUCCESS, CLICK_ACTION_BLOCKING or NONE.

+

Guard clauses

+

Consider adding interaction_flags_click before adding unique guard clauses.

+

Return flags

+

Forgetting your return will cause the default alt click behavior to occur thereafter.

+

The difference between NONE and BLOCKING can get hazy, but I like to keep NONE limited to guard clauses and "never" cases.

+

A good usage for BLOCKING over NONE is when it's situational for the item and there's some feedback indicating this.

+

Examples:

+

User is a ghost, alt clicks on item with special disk eject: NONE

+

Machine broken, no feedback: NONE

+

Alt click a pipe to max output but its already max: BLOCKING

+

Alt click a gun that normally works, but is out of ammo: BLOCKING

+

User unauthorized, machine beeps: BLOCKING

+

@param {mob} user - The person doing the alt clicking.

click_alt_secondary

Custom alt click secondary interaction

+

Override this to change default alt right click behavior.

+

Guard clauses

+

Consider adding interaction_flags_click before adding unique guard clauses.

click_ctrl

Custom ctrl click interaction

+

Override this to change default ctrl click behavior. Return CLICK_ACTION_SUCCESS, CLICK_ACTION_BLOCKING or NONE.

+

Guard clauses

+

Consider adding interaction_flags_click before adding unique guard clauses.

+

Return flags

+

Forgetting your return will cause the default ctrl click behavior to occur thereafter.

+

Returning any value besides NONE will stop the attack chain and thus stop the object from getting pulled/grabbed

click_ctrl_shift

Custom ctrl shift click interaction

Guard clauses

+

Consider adding interaction_flags_click before adding unique guard clauses.

clone_storage

A quick and easy way to /clone/ a storage datum for an atom (does not copy over contents, only the datum details)

+

Imperfect, does not copy over ALL variables, only important ones (max storage size, etc)

connect_to_shuttle

Connect this atom to a shuttle

container_resist_act

Called when something resists while this atom is its loc

contains

Returns true if the src countain the atom target

contents_explosion

Handle what happens when your contents are exploded by a bomb

create_digital_aura

Creates a digital effect around the target

create_reagents

Convenience proc to create a reagents holder for an atom

+

Arguments:

+

create_storage

A quick and easy way to create a storage datum for an atom

crowbar_act

Called on an object when a tool with crowbar capabilities is used to left click an object

crowbar_act_secondary

Called on an object when a tool with crowbar capabilities is used to right click an object

debug

Sets up this light source to be debugged, setting up in world buttons to control and move it +Also freezes it, so it can't change in future

do_alert_animation

Does the MGS ! animation

do_spin_animation

Animates source spinning around itself. For docmentation on the args, check atom/proc/SpinAnimation()

drop_location

Where atoms should drop if taken from this atom

emag_act

Respond to an emag being used on our atom

+

Args:

+ +

Returns: +TRUE if the emag had any effect, falsey otherwise.

emp_act

React to an EMP of the given severity

+

Default behaviour is to send the COMSIG_ATOM_PRE_EMP_ACT and COMSIG_ATOM_EMP_ACT signal

+

If the pre-signal does not return protection, and there are attached wires then we call +emp_pulse on the wires

+

We then return the protection value

ex_act

React to being hit by an explosion

+

Should be called through the EX_ACT wrapper macro. +The wrapper takes care of the COMSIG_ATOM_EX_ACT signal. +as well as calling /atom/proc/contents_explosion.

+

Returns TRUE by default, and behavior should be implemented on children procs on a per-atom basis. Should only return FALSE if we resist the explosion for any reason. +We assume that the default is TRUE because all atoms should be considered destructible in some manner unless they explicitly opt out (in our current framework). +However, the return value itself doesn't have any external consumers, it's only so children procs can listen to the value from their parent procs (due to the nature of the EX_ACT macro). +Thus, the return value only matters on overrides of this proc, and the only thing that truly matters is the code that is executed (applying damage, calling damage procs, etc.)

examine

Called when a mob examines (shift click or verb) this atom

+

Default behaviour is to get the name and icon of the object and its reagents where +the [TRANSPARENT] flag is set on the reagents holder

+

Produces a signal COMSIG_ATOM_EXAMINE

examine_descriptor

What this atom should be called in examine tags

examine_more

Called when a mob examines (shift click or verb) this atom twice (or more) within EXAMINE_MORE_WINDOW (default 1 second)

+

This is where you can put extra information on something that may be superfluous or not important in critical gameplay +moments, while allowing people to manually double-examine to take a closer look

+

Produces a signal COMSIG_ATOM_EXAMINE_MORE

examine_post_descriptor

Returns a list of strings to be displayed after the descriptor

examine_title

Formats the atom's name into a string for use in examine (as the "title" of the atom)

+

expose_reagents

extinguish

Sends COMSIG_ATOM_EXTINGUISH signal, which properly removes burning component if it is present.

+

Default behaviour is to send COMSIG_ATOM_ACID_ACT and return

find_all_cells_containing

debug proc for checking if a movable is in multiple cells when it shouldnt be (ie always unless multitile entering is implemented)

find_grid_statistics_for_z_level

debug proc for finding how full the cells of src's z level are

find_type_in_direction

Scans direction to find targets to smooth with.

fire_act

Respond to fire being used on our atom

+

Default behaviour is to send COMSIG_ATOM_FIRE_ACT and return

fire_projectile

Fire a projectile from this atom at another atom

flick_overlay

Flicks a certain overlay onto an atom, handling icon_state strings

flick_overlay_static

Flickers an overlay on an atom

flick_overlay_view

Takes the passed in MA/icon_state, mirrors it onto ourselves, and displays that in world for duration seconds +Returns the displayed object, you can animate it and all, but you don't own it, we'll delete it after the duration

get_all_contents

Returns the src and all recursive contents as a list.

get_all_contents_ignoring

Like get_all_contents_type, but uses a typecache list as argument

get_all_contents_skipping_traits

Returns the src and all recursive contents, but skipping going any deeper if an atom has a specific trait.

get_all_contents_type

identical to get_all_contents but returns a list of atoms of the type passed in the argument.

get_all_orbiters

Recursive getter method to return a list of all ghosts orbitting this atom

+

This will work fine without manually passing arguments.

+

get_armor

Get the atom's armor reference

get_armor_rating

Helper to get a specific rating for the atom's armor

get_custom_material_amount

Gets the total amount of materials in this atom.

get_digital_overlays

Returns a list of overlays to be used for the digital effect

get_dumping_location

If someone's trying to dump items onto our atom, where should they be dumped to?

+

Return a loc to place objects, or null to stop dumping.

get_examine_icon

Icon displayed in examine

get_examine_name

Get the name of this object for examine

+

You can override what is returned from this proc by registering to listen for the +COMSIG_ATOM_GET_EXAMINE_NAME signal

get_id_examine_strings

Returns an extended list of examine strings for any contained ID cards.

+

Arguments:

+

get_integrity

This mostly exists to keep atom_integrity private. Might be useful in the future.

get_integrity_percentage

Similar to get_integrity, but returns the percentage as [0-1] instead.

get_master_material

Gets the most common material in the object.

get_material_composition

Returns the material composition of the atom.

+

Used when recycling items, specifically to turn alloys back into their component mats.

+

Exists because I'd need to add a way to un-alloy alloys or otherwise deal +with people converting the entire stations material supply into alloys.

+

Arguments:

+

get_name_chaser

Used to insert text after the name but before the description in examine()

get_oversized_icon_offsets

Returns an x and y value require to reverse the transformations made to center an oversized icon

get_remote_view_fullscreens

the vision impairment to give to the mob whose perspective is set to that atom

+

(e.g. an unfocused camera giving you an impaired vision when looking through it)

get_save_vars

Map exporter +Inputting a list of turfs into convert_map_to_tgm() will output a string +with the turfs and their objects / areas on said turf into the TGM mapping format +for .dmm files. This file can then be opened in the map editor or imported +back into the game.

+

This has been made semi-modular so you should be able to use these functions +elsewhere in code if you ever need to get a file in the .dmm format

get_visible_name

Used by mobs to determine the name for someone wearing a mask, or with a disfigured or missing face. By default just returns the atom's name. add_id_name will control whether or not we append "(as [id_name])". +force_real_name will always return real_name and add (as face_name/id_name) if it doesn't match their appearance

hammer_act

Called on an object when a tool with wrench capabilities is used to left click an object

hammer_act_secondary

Called on an object when a tool with wrench capabilities is used to right click an object

handle_basic_attack

This exists so stuff can override the default call of attack_animal for attack_basic_mob +Remove this when simple animals are removed and everything can be handled on attack basic mob.

handle_fall

Used for making a sound when a mob involuntarily falls into the ground.

handle_slip

Handle the atom being slipped over

has_gravity

Returns true if this atom has gravity for the passed in turf

+

Sends signals COMSIG_ATOM_HAS_GRAVITY and COMSIG_TURF_HAS_GRAVITY, both can force gravity with +the forced gravity var.

+

micro-optimized to hell because this proc is very hot, being called several times per movement every movement.

+

HEY JACKASS, LISTEN +IF YOU ADD SOMETHING TO THIS PROC, MAKE SURE /mob/living ACCOUNTS FOR IT +Living mobs treat gravity in an event based manner. We've decomposed this proc into different checks +for them to use. If you add more to it, make sure you do that, or things will behave strangely

+

Gravity situations:

+

has_material_category

Fetches a list of all of the materials this object has with the desired material category.

+

Arguments:

+

has_material_type

Fetches a list of all of the materials this object has of the desired type. Returns null if there is no valid materials of the type

+

Arguments:

+

hitby

React to being hit by a thrown object

+

Default behaviour is to call hitby_react on ourselves after 2 seconds if we are dense +and under normal gravity.

+

Im not sure why this the case, maybe to prevent lots of hitby's if the thrown object is +deleted shortly after hitting something (during explosions or other massive events that +throw lots of items around - singularity being a notable example)

+

Worth of note: If hitby returns TRUE, it means the object has been blocked or catched by src. +So far, this is only possible for living mobs and carbons, who can hold shields and catch thrown items.

hitby_react

We have have actually hit the passed in atom

+

Default behaviour is to move back from the item that hit us

hulk_damage

Called to get the damage that hulks will deal to the atom.

in_contents_of

Return true if we're inside the passed in atom

is_atom_colour

Checks if this atom has the passed color +Can optionally be supplied with a range of priorities, IE only checking "washable" or above

is_drainable

Is this atom drainable of reagents

is_drawable

Can we draw from this atom with an injectable atom

is_injectable

Is this atom injectable into other atoms

is_open_container

Convenience proc to see if a container is open for chemistry handling

is_refillable

Can this atoms reagents be refilled

isinspace

Is this atom in space

item_interaction

Called when this atom has an item used on it. +IE, a mob is clicking on this atom with an item.

+

Return an ITEM_INTERACT_ flag in the event the interaction was handled, to cancel further interaction code. +Return NONE to allow default interaction / tool handling.

item_interaction_secondary

Called when this atom has an item used on it WITH RIGHT CLICK, +IE, a mob is right clicking on this atom with an item. +Default behavior has it run the same code as left click.

+

Return an ITEM_INTERACT_ flag in the event the interaction was handled, to cancel further interaction code. +Return NONE to allow default interaction / tool handling.

log_message

Generic logging helper

+

reads the type of the log +and writes it to the respective log file +unless log_globally is FALSE +Arguments:

+

log_talk

Helper for logging chat messages or other logs with arbitrary inputs (e.g. announcements)

+

This proc compiles a log string by prefixing the tag to the message +and suffixing what it was forced_by if anything +if the message lacks a tag and suffix then it is logged on its own +Arguments:

+

makeHologram

Makes this atom look like a "hologram" +So transparent, blue, with a scanline and an emissive glow +This is acomplished using a combination of filters and render steps/overlays +The degree of the opacity is optional, based off the opacity arg (0 -> 1)

manual_emote

Allows the intrepid coder to send a basic emote +Takes text as input, sends it out to those who need to know after some light parsing +If you need something more complex, make it into a datum emote +Arguments:

+ +

Returns TRUE if it was able to run the emote, FALSE otherwise.

mat_update_desc

This proc is called when a material updates an object's description

mech_melee_attack

Mech melee attack

+

Called when a mech melees a target with fists +Handles damaging the target & associated effects +return value is number of damage dealt. returning a value puts our mech onto attack cooldown. +Arguments:

+

modify_max_integrity

changes max_integrity while retaining current health percentage, returns TRUE if the atom got broken.

mouse_drop_dragged

The proc that should be overridden by subtypes to handle mouse drop. Called on the atom being dragged

mouse_drop_receive

The proc that should be overridden by subtypes to handle mouse drop. Called on the atom receiving a dragged object

multitool_act

Called on an object when a tool with multitool capabilities is used to left click an object

multitool_act_secondary

Called on an object when a tool with multitool capabilities is used to right click an object

narsie_act

Respond to narsie eating our atom

+

Default behaviour is to send COMSIG_ATOM_NARSIE_ACT and return

ninjadrain_act

Atom level proc for space ninja's glove interactions.

+

Proc which only occurs when space ninja uses his gloves on an atom. +Does nothing by default, but effects will vary. +Arguments:

+

onAwayMission

Is the atom in an away mission

+

Must be in the away mission z-level to return TRUE

+

Also used in gamemode code for win conditions

onCentCom

Is this atom currently located on centcom (or riding off into the sunset on a shuttle)

+

Specifically, is it on the z level and within the centcom areas. +You can also be in a shuttle during endgame transit.

+

Used in gamemode to identify mobs who have escaped and for some other areas of the code +who don't want atoms where they shouldn't be

+

Returns TRUE if this atom is on centcom or an escape shuttle, or FALSE if not

onSyndieBase

Is the atom in any of the syndicate areas

+

Either in the syndie base, or any of their shuttles

+

Also used in gamemode code for win conditions

+

Returns TRUE if this atom is on the syndicate recon base, any of its shuttles, or an escape shuttle, or FALSE if not

on_escaped_shuttle

Checks that we're on a shuttle that's escaped

+ +

Returns TRUE if this atom is on a shuttle which is escaping or has escaped, or FALSE otherwise

on_loadout_custom_described

Called after a loadout item gets a custom description

on_loadout_custom_named

Called after a loadout item gets custom named

on_log

Called when the atom log's in or out

+

Default behaviour is to call on_log on the location this atom is in

on_mouse_enter

Fired whenever this atom is the most recent to be hovered over in the tick. +Preferred over MouseEntered if you do not need information such as the position of the mouse. +Especially because this is deferred over a tick, do not trust that client is not null.

on_saboteur

Override on subtype to add behaviour. Whatever happens when we are sabotaged

on_update_integrity

Handle updates to your atom's integrity

play_attack_sound

the sound played when the atom is damaged.

prepare_huds

Prepare the huds for this atom

+

Goes through hud_possible list and adds the images to the hud_list variable (if not already cached)

propagate_radiation_pulse

A common proc used to send COMSIG_ATOM_PROPAGATE_RAD_PULSE to adjacent atoms +Only used for uranium (false/tram)walls to spread their radiation pulses

ranged_item_interaction

Called when this atom has an item used on it from a distance. +IE, a mob is clicking on this atom with an item and is not adjacent.

+

Does NOT include Telekinesis users, they are considered adjacent generally.

+

Return an ITEM_INTERACT_ flag in the event the interaction was handled, to cancel further interaction code.

ranged_item_interaction_secondary

Called when this atom has an item used on it from a distance WITH RIGHT CLICK, +IE, a mob is right clicking on this atom with an item and is not adjacent.

+

Default behavior has it run the same code as left click.

+

Return an ITEM_INTERACT_ flag in the event the interaction was handled, to cancel further interaction code.

rcd_act

Respond to an RCD acting on our item

+

Default behaviour is to send COMSIG_ATOM_RCD_ACT and return FALSE

rcd_vals

Return the values you get when an RCD eats you?

realize_overlays

Takes the atoms's existing overlays and underlays, and makes them mutable so they can be properly vv'd in the realized_overlays/underlays list

register_context

Create a "Type-B" contextual screentip interaction, registering to add_context(). +This will run add_context() when the atom is hovered over by an item for context. +add_context() will not be called unless this is run. +This is not necessary for Type-B interactions, as you can just apply the flag and register to the signal yourself.

relaydrive

A special case of relaymove() in which the person relaying the move may be "driving" this atom

+

This is a special case for vehicles and ridden animals where the relayed movement may be handled +by the riding component attached to this atom. Returns TRUE as long as there's nothing blocking +the movement, or FALSE if the signal gets a reply that specifically blocks the movement

relaymove

An atom we are buckled or is contained within us has tried to move

+

Default behaviour is to send a warning that the user can't move while buckled as long +as the buckle_message_cooldown has expired (50 ticks)

remove_air

Remove air from this atom

remove_atom_colour

Removes an instance of colour_type from the atom's atom_colours list

remove_digital_aura

Removes the digital effect around the target

repair_damage

Proc for recovering atom_integrity. Returns the amount repaired by

replace_smooth_overlays

Internal: Takes icon states as text to replace smoothing corner overlays

return_air

Return the current air environment in this atom

return_analyzable_air

Return the air if we can analyze it

return_temperature

Return atom temperature

run_atom_armor

returns the damage value of the attack after processing the atom's various armor protections

runechat_prefs_check

Returns the client runechat visible messages preference according to the message type.

rust_heretic_act

Causes effects when the atom gets hit by a rust effect from heretics

+

Override this if you want custom behaviour in whatever gets hit by the rust +/turf/rust_turf should be used instead for overriding rust on turfs

screwdriver_act

Called on an object when a tool with screwdriver capabilities is used to left click an object

screwdriver_act_secondary

Called on an object when a tool with screwdriver capabilities is used to right click an object

setClosed

Used to set something as 'closed' if it's being used as a supplypod

+

Override this if you want an atom to be usable as a supplypod.

setDir

Hook for running code when a dir change occurs

+

Not recommended to use, listen for the COMSIG_ATOM_DIR_CHANGE signal instead (sent by this proc)

setOpened

Used to set something as 'open' if it's being used as a supplypod

+

Override this if you want an atom to be usable as a supplypod.

set_armor

Sets the armor of this atom to the specified armor

set_armor_rating

Helper to update the atom's armor to a new armor with the specified rating

set_base_pixel_x

Setter for the base_pixel_x variable to append behavior related to its changing.

set_base_pixel_y

Setter for the base_pixel_y variable to append behavior related to its changing.

set_custom_materials

Sets the custom materials for an item.

set_density

Setter for the density variable to append behavior related to its changing.

set_greyscale

Handles updates to greyscale value updates. +The colors argument can be either a list or the full color string. +Child procs should call parent last so the update happens after all changes.

set_hud_image_active

set every hud image in the given category active so other people with the given hud can see it. +Arguments:

+

set_hud_image_inactive

sets every hud image in the given category inactive so no one can see it

set_light_angle

Setter for the light angle of this atom

set_light_color

Setter for the light color of this atom.

set_light_dir

Setter for the light direction of this atom

set_light_flags

Setter for the light flags of this atom.

set_light_height

Setter for the height of our light

set_light_on

Setter for whether or not this atom's light is on.

set_light_power

Setter for the light power of this atom.

set_light_range

Setter for the light range of this atom.

set_opacity

Updates the atom's opacity value.

+

This exists to act as a hook for associated behavior. +It notifies (potentially) affected light sources so they can update (if needed).

set_smoothed_icon_state

Changes the icon state based on the new junction bitmask

set_wires

Sets the wire datum of an atom

should_atmos_process

We use this proc to check if we should start processing an item, or continue processing it. Returns true/false as expected

shuttleRotate

Base proc

singularity_act

Respond to the singularity eating this atom

singularity_pull

Respond to the singularity pulling on us

+

Default behaviour is to send COMSIG_ATOM_SING_PULL and return

smooth_icon

do not use, use QUEUE_SMOOTH(atom)

spasm_animation

Similar to shake but more spasm-y and jerk-y

take_damage

The essential proc to call when an atom must receive damage of any kind.

tamed

Called after the atom is 'tamed' for type-specific operations, Usually called by the tameable component but also other things.

throw_back_liquid

Bounces a thrown liquid off of a some object that has density.

+

Finds an adjacent turf to bounce the liquid to.

+

Arguments:

+ +

Returns: the found turf if there was one, null otherwise.

tong_act

Called on an object when a tool with wrench capabilities is used to left click an object

tong_act_secondary

Called on an object when a tool with wrench capabilities is used to right click an object

tool_act

Tool Act

+

Handles using specific tools on this atom directly. +Only called when combat mode is off.

+

Handles the tool_acts in particular, such as wrenches and screwdrivers.

+

This can be overridden to handle unique "tool interactions" +IE using an item like a tool (when it's not actually one) +This is particularly useful for things that shouldn't be inserted into storage +(because tool acting runs before storage checks) +but otherwise does nothing that [item_interaction] doesn't already do.

+

In other words, use sparingly. It's harder to use (correctly) than [item_interaction].

transfer_mob_blood_dna

to add a mob's dna info into an object's blood_dna list.

undebug

Disables light debugging, so you can let a scene fall to what it visually should be, or just fix admin fuckups

update_appearance

Updates the appearence of the icon

+

Mostly delegates to update_name, update_desc, and update_icon

+

Arguments:

+

update_atom_colour

Resets the atom's color to null, and then sets it to the highest priority colour available

update_desc

Updates the description of the atom

update_greyscale

Checks if this atom uses the GAGS system and if so updates the icon

update_icon

Updates the icon of the atom

update_icon_state

Updates the icon state of the atom

update_inhand_icon

Checks the atom's loc and calls update_held_items on it if it is a mob.

+

This should only be used in situations when you are unable to use /datum/element/update_icon_updates_onmob for whatever reason. +Check code/datums/elements/update_icon_updates_onmob.dm before using this. Adding that to the atom and calling update_appearance will work for most cases.

+

Arguments:

+

update_integrity

Handles the integrity of an atom changing. This must be called instead of changing integrity directly.

update_light

Will update the light (duh). +Creates or destroys it if needed, makes it update values, makes sure it's got the correct source turf...

update_name

Updates the name of the atom

update_overlays

Updates the overlays of the atom

update_remote_sight

the sight changes to give to the mob whose perspective is set to that atom

+

(e.g. A mob with nightvision loses its nightvision while looking through a normal camera)

visible_message

Generate a visible message from this atom

+

Show a message to all player mobs who sees this atom

+

Show a message to the src mob (if the src is a mob)

+

Use for atoms performing visible actions

+

message is output to anyone who can see, e.g. "The [src] does something!"

+

Vars:

+

vv_edit_var

call back when a var is edited on this atom

+

Can be used to implement special handling of vars

+

At the atom level, if you edit a var named "color" it will add the atom colour with +admin level priority to the atom colours list

+

Also, if GLOB.Debug2 is FALSE, it sets the ADMIN_SPAWNED_1 flag on flags_1, which signifies +the object has been admin edited

vv_get_dropdown

Return the markup to for the dropdown list for the VV panel for this atom

+

Override in subtypes to add custom VV handling in the VV panel

wash

Wash this atom

+

This will clean it off any temporary stuff like blood. Override this in your item to add custom cleaning behavior. +Returns true if any washing was necessary and thus performed +Arguments:

+

welder_act

Called on an object when a tool with welder capabilities is used to left click an object

welder_act_secondary

Called on an object when a tool with welder capabilities is used to right click an object

wirecutter_act

Called on an object when a tool with wirecutter capabilities is used to left click an object

wirecutter_act_secondary

Called on an object when a tool with wirecutter capabilities is used to right click an object

wrench_act

Called on an object when a tool with wrench capabilities is used to left click an object

wrench_act_secondary

Called on an object when a tool with wrench capabilities is used to right click an object

zap_act

Respond to an electric bolt action on our item

+

Default behaviour is to return, we define here to allow for cleaner code later on

\ No newline at end of file diff --git a/atom/movable.html b/atom/movable.html new file mode 100644 index 0000000000000..9c16aee9accd0 --- /dev/null +++ b/atom/movable.html @@ -0,0 +1,256 @@ +/atom/movable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

movable

Vars

active_movementA list containing arguments for Moved().
affected_dynamic_lightsLazylist to keep track on the sources of illumination.
affecting_dynamic_lumiHighest-intensity light affecting us, which determines our visibility.
blocks_emissiveEither EMISSIVE_BLOCK_NONE, EMISSIVE_BLOCK_GENERIC, or EMISSIVE_BLOCK_UNIQUE
buckle_dirBed-like behaviour, sets mob dir to buckle_dir if not set to BUCKLE_MATCH_DIR. If set to BUCKLE_MATCH_DIR, makes mob dir match ours.
buckle_lyingBed-like behaviour, forces mob.lying = buckle_lying if not set to NO_BUCKLE_LYING.
buckle_prevents_pullWhether things buckled to this atom can be pulled while they're buckled
buckle_requires_restraintsRequire people to be handcuffed before being able to buckle. eg: pipes
buckled_mobsThe mobs currently buckled to this atom
can_be_unanchoredUsed for the calculate_adjacencies proc for icon smoothing.
can_buckleWhether the atom allows mobs to be buckled to it. Can be ignored in [/atom/movable/proc/buckle_mob()] if force = TRUE
client_mobs_in_contentscontains every client mob corresponding to every client eye in this container. lazily updated by SSparallax and is sparse: +only the last container of a client eye has this list assuming no movement since SSparallax's last fire
contents_pressure_protectionThe degree of pressure protection that mobs in list/contents have from the external environment, between 0 and 1
contents_thermal_insulationThe degree of thermal insulation that mobs in list/contents have from the external environment, between 0 and 1
currently_z_movingis the mob currently ascending or descending through z levels?
drift_handlerDatum that keeps all data related to zero-g drifting and handles related code/comsigs
em_blockInternal holder for emissive blocker object, do not use directly use blocks_emissive
explosion_blockValue used to increment ex_act() if reactionary_explosions is on +How much we as a source block explosions by +Will not automatically apply to the turf below you, you need to apply /datum/element/block_explosives in conjunction with this
face_mouseWhether a user will face atoms on entering them with a mouse. Despite being a mob variable, it is here for performances //SKYRAT EDIT ADDITION
factionThe list of factions this atom belongs to
generic_canpassIf false makes CanPass call CanPassThrough on this type instead of using default behaviour
important_recursive_contentsan associative lazylist of relevant nested contents by "channel", the list is of the form: list(channel = list(important nested contents of that type)) +each channel has a specific purpose and is meant to replace potentially expensive nested contents iteration. +do NOT add channels to this for little reason as it can add considerable memory usage.
inertia_force_weightObject "weight", higher weight reduces acceleration applied to the object
inertia_move_multiplierMultiplier for inertia based movement in space
inertia_movingAre we moving with inertia? Mostly used as an optimization
initial_language_holderWhat language holder type to init as
language_holderHolds all languages this mob can speak and understand
last_pushoffThe last time we pushed off something +This is a hack to get around dumb him him me scenarios
max_buckled_mobsThe maximum number of mob/livings allowed to be buckled to this atom at once
max_grabThe strongest grab we can acomplish
move_packetHolds information about any movement loops currently running/waiting to run on the movable. Lazy, will be null if nothing's going on
movement_typeIn case you have multiple types, you automatically use the most useful one. +IE: Skating on ice, flippers on water, flying over chasm/space, etc. +I recommend you use the movetype_handler system and not modify this directly, especially for living mobs.
moving_diagonally0: not doing a diagonal move. 1 and 2: doing the first/second step of the diagonal move
moving_from_pullattempt to resume grab after moving instead of before.
pass_flagsThings we can pass through while moving. If any of this matches the thing we're trying to pass's [pass_flags_self], then we can pass through.
pitchThe pitch adjustment that this movable uses when speaking.
pressure_resistanceHow much delta pressure is needed for us to move
req_accessList of accesses needed to use this object: The user must possess all accesses in this list in order to use the object. +Example: If req_access = list(ACCESS_ENGINE, ACCESS_CE)- then the user must have both ACCESS_ENGINE and ACCESS_CE in order to use the object.
req_one_accessList of accesses needed to use this object: The user must possess at least one access in this list in order to use the object. +Example: If req_one_access = list(ACCESS_ENGINE, ACCESS_CE)- then the user must have either ACCESS_ENGINE or ACCESS_CE in order to use the object.
set_dir_on_moveWhether this atom should have its dir automatically changed when it moves. Setting this to FALSE allows for things such as directional windows to retain dir on moving without snowflake code all of the place.
spatial_grid_keyString representing the spatial grid groups we want to be held in. +acts as a key to the list of spatial grid contents types we exist in via SSspatial_grid.spatial_grid_categories. +We do it like this to prevent people trying to mutate them and to save memory on holding the lists ourselves
tk_throw_rangeMax range this atom can be thrown via telekinesis
tts_silicon_voice_effectSet to anything other than "" to activate the silicon voice effect for TTS messages.
verb_sayUse get_default_say_verb() in say.dm instead of reading verb_say.
voiceThe voice that this movable makes when speaking
voice_filterThe filter to apply to the voice when processing the TTS audio message.

Procs

CanEnterDisposalsCalled to check if an atom can fit inside the diposal
CanPassThroughReturns true or false to allow src to move through the blocker, mover has final say
Crosseddefault byond proc that is deprecated for us in lieu of signals. do not call
HearCalled when this movable hears a message from a source. +Returns TRUE if the message was received and understood.
MovedCalled after a successful Move(). By this point, we've already moved. +Arguments:
Process_SpacemoveCalled whenever an object moves and by mobs when they attempt to move themselves through space +And when an object or action applies a force on src, see newtonian_move
UncrossUncross() is a default BYOND proc that is called when something is going +to exit this atom's turf. It is prefered over Uncrossed when you want to +deny that movement, such as in the case of border objects, objects that allow +you to walk through them in any direction except the one they block +(think side windows).
Uncrosseddefault byond proc that is normally called on everything inside the previous turf +a movable was in after moving to its current turf +this is wasteful since the vast majority of objects do not use Uncrossed +use connect_loc to register to COMSIG_ATOM_EXITED instead
abstract_movemeant for movement with zero side effects. only use for objects that are supposed to move "invisibly" (like camera mobs or ghosts) +if you want something to move onto a tile with a beartrap or recycler or tripmine or mouse without that object knowing about it at all, use this +most of the time you want forceMove()
add_blocked_languageAdds a language to the blocked language list. Use this over remove_language in cases where you will give languages back later.
admin_teleportProc to hook user-enacted teleporting behavior and keep logging of the event.
allowedReturns TRUE if this mob has sufficient access to use this object
apply_crit_crushShould be where critcase effects are actually implemented. Use this to apply critcases. +Args:
become_active_storagecalled when this movable becomes the parent of a storage component that is currently being viewed by a player. uses important_recursive_contents
become_area_sensitiveallows this movable to know when it has "entered" another area no matter how many movable atoms its stuffed into, uses important_recursive_contents
become_hearing_sensitiveallows this movable to hear and adds itself to the important_recursive_contents list of itself and every movable loc its in
buckle_mobSet a mob as buckled to src
can_infusereturns a boolean whether a machine occupant can be infused
can_speakChecks if our movable can currently speak, vocally, in general. +Should NOT include feedback messages about why someone can or can't speak
can_speak_languageChecks if atom can speak the language.
can_z_moveChecks if the destination turf is elegible for z movement from the start turf to a given direction and returns it if so. +Args:
check_pullingChecks if the pulling and pulledby should be stopped because they're out of reach. +If z_allowed is TRUE, the z level of the pulling will be ignored.This is to allow things to be dragged up and down stairs.
copy_languagesCopies all languages into the supplied atom/language holder. Source should be overridden when you +do not want the language overwritten by later atom updates or want to avoid blocked languages.
could_speak_languageReturns the result of tongue specific limitations on spoken languages.
deadchat_playsAdds the deadchat_plays component to this atom with simple movement commands.
faction_check_atomCheck if the other atom/movable has any factions the same as us. Defined at the atom/movable level so it can be defined for just about anything.
fall_and_crushCauses src to fall onto [target], crushing everything on it (including itself) with [damage] +and a small chance to do a spectacular effect per entity (if a chance above 0 is provided).
fall_and_crush_crit_rebate_tableAllows damage to be reduced on certain crit cases. +Args:
get_crit_crush_chancesReturns a assoc list of (critcase -> num), where critcase is a critical define in crushing.dm and num is a weight. +Use with pickweight to acquire a random critcase.
get_default_say_verbGets the say verb we default to if no special verb is chosen. +This is primarily a hook for inheritors, +like human_say.dm's tongue-based verb_say changes.
get_infusion_entryreturns /datum/infuser_entry that matches an item being used for infusion, returns a fly mutation on failure
get_language_holderGets or creates the relevant language holder. For mindless atoms, gets the local one. For atom with mind, gets the mind one.
get_random_spoken_languageGets a random spoken language, useful for forced speech and such.
get_random_understood_languageGets a random understood language, useful for hallucinations and such.
get_selected_languageReturns selected language, if it can be spoken, or finds, sets and returns a new selected language if possible.
get_z_move_affectedReturns a list of movables that should also be affected when src moves through zlevels, and src.
grant_all_languagesGrants every language.
grant_languageGrants the supplied language and sets omnitongue true.
grant_random_uncommon_languageTeaches a random non-common language and sets it as the active language
has_buckled_mobsReturns TRUE if there are mobs buckled to this atom and FALSE otherwise
has_languageChecks if atom has the language. If spoken is true, only checks if atom can speak the language.
is_buckle_possibleSimple helper proc that runs a suite of checks to test whether it is possible or not to buckle the target mob to src.
is_user_buckle_possibleSimple helper proc that runs a suite of checks to test whether it is possible or not for user to buckle target mob to src.
keybind_face_directionA wrapper for setDir that should only be able to fail by living mobs.
lose_active_storagecalled when this movable's storage component is no longer viewed by any players, unsets important_recursive_contents
lose_area_sensitivityremoves the area sensitive channel from the important_recursive_contents list of this and all nested locs containing us if there are no more source of the trait left
lose_hearing_sensitivityremoves the hearing sensitivity channel from the important_recursive_contents list of this and all nested locs containing us if there are no more sources of the trait left +since RECURSIVE_CONTENTS_HEARING_SENSITIVE is also a spatial grid content type, removes us from the spatial grid if the trait is removed
mouse_buckle_handlingDoes some typechecks and then calls user_buckle_mob
move_from_pullCalled when src is being moved to a target turf because another movable (puller) is moving around.
newtonian_moveOnly moves the object if it's under no gravity +Accepts the direction to move, if the push should be instant, and an optional parameter to fine tune the start delay +Drift force determines how much acceleration should be applied. Controlled cap, if set, will ensure that if the object was moving slower than the cap before, it cannot accelerate past the cap from this move.
onShuttleMoveCalled on atoms to move the atom to the new location
on_changed_z_levelCalled when a movable changes z-levels.
on_enter_storagecalled when this atom is added into a storage item, which is passed on as S. The loc variable is already set to the storage item.
on_exit_storagecalled when this atom is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called.
point_atPoint at an atom
post_crush_livingExists for the purposes of custom behavior. +Called directly after [crushed] is crushed.
post_tiltExists for the purposes of custom behavior. +Called directly after src actually rotates and falls over.
pre_impactCalled before we attempt to call hitby and send the COMSIG_MOVABLE_IMPACT signal
randomize_language_if_on_stationRandomizes our atom's language to an uncommon language if:
relay_container_resist_actcalled when a mob resists while inside a container that is itself inside something.
remove_all_languagesRemoves every language and sets omnitongue false.
remove_blocked_languageRemoves a language from the blocked language list.
remove_languageRemoves a single language.
sayWhat makes things... talk.
say_emphasisScans the input sentence for speech emphasis modifiers, notably |italics|, +bold+, and underline -mothblocks
say_modWorks out and returns which prefix verb the passed message should use.
say_quoteThis prock is used to generate a message for chat +Generates the says, "<span class='red'>meme</span>" part of the Grey Tider says, "meme".
setGrabStateUpdates the grab state of the movable
set_active_languageSets the passed path as the active language +Returns the currently selected language if successful, if the language was not valid, returns null
set_anchoredSets the anchored var and returns if it was successfully changed or not.
set_currently_z_movingSets the currently_z_moving variable to a new value. Used to allow some zMovement sources to have precedence over others.
set_light_range_power_colorHelper to change several lighting overlay settings.
set_pulledbyReports the event of the change in value of the pulledby variable.
shuttleRotateBase /atom/movable proc
throw_atIf this returns FALSE then callback will not be called.
translate_languageModifies the message by comparing the languages of the speaker with the languages of the hearer. Called on the hearer.
try_speakChecks if our movable can speak the provided message, passing it through filters +and spam detection. Does not call can_speak. CAN include feedback messages about +why someone can or can't speak
unbuckle_all_mobsCall /atom/movable/proc/unbuckle_mob for all buckled mobs
unbuckle_mobSet a mob as unbuckled from src
update_dynamic_luminosityKeeps track of the sources of dynamic luminosity and updates our visibility with the highest.
user_buckle_mobHandles a mob buckling another mob to src and sends a visible_message
user_unbuckle_mobHandles a user unbuckling a mob from src and sends a visible_message

Var Details

active_movement

A list containing arguments for Moved().

affected_dynamic_lights

Lazylist to keep track on the sources of illumination.

affecting_dynamic_lumi

Highest-intensity light affecting us, which determines our visibility.

blocks_emissive

Either EMISSIVE_BLOCK_NONE, EMISSIVE_BLOCK_GENERIC, or EMISSIVE_BLOCK_UNIQUE

buckle_dir

Bed-like behaviour, sets mob dir to buckle_dir if not set to BUCKLE_MATCH_DIR. If set to BUCKLE_MATCH_DIR, makes mob dir match ours.

buckle_lying

Bed-like behaviour, forces mob.lying = buckle_lying if not set to NO_BUCKLE_LYING.

buckle_prevents_pull

Whether things buckled to this atom can be pulled while they're buckled

buckle_requires_restraints

Require people to be handcuffed before being able to buckle. eg: pipes

buckled_mobs

The mobs currently buckled to this atom

can_be_unanchored

Used for the calculate_adjacencies proc for icon smoothing.

can_buckle

Whether the atom allows mobs to be buckled to it. Can be ignored in [/atom/movable/proc/buckle_mob()] if force = TRUE

client_mobs_in_contents

contains every client mob corresponding to every client eye in this container. lazily updated by SSparallax and is sparse: +only the last container of a client eye has this list assuming no movement since SSparallax's last fire

contents_pressure_protection

The degree of pressure protection that mobs in list/contents have from the external environment, between 0 and 1

contents_thermal_insulation

The degree of thermal insulation that mobs in list/contents have from the external environment, between 0 and 1

currently_z_moving

is the mob currently ascending or descending through z levels?

drift_handler

Datum that keeps all data related to zero-g drifting and handles related code/comsigs

em_block

Internal holder for emissive blocker object, do not use directly use blocks_emissive

explosion_block

Value used to increment ex_act() if reactionary_explosions is on +How much we as a source block explosions by +Will not automatically apply to the turf below you, you need to apply /datum/element/block_explosives in conjunction with this

face_mouse

Whether a user will face atoms on entering them with a mouse. Despite being a mob variable, it is here for performances //SKYRAT EDIT ADDITION

faction

The list of factions this atom belongs to

generic_canpass

If false makes CanPass call CanPassThrough on this type instead of using default behaviour

important_recursive_contents

an associative lazylist of relevant nested contents by "channel", the list is of the form: list(channel = list(important nested contents of that type)) +each channel has a specific purpose and is meant to replace potentially expensive nested contents iteration. +do NOT add channels to this for little reason as it can add considerable memory usage.

inertia_force_weight

Object "weight", higher weight reduces acceleration applied to the object

inertia_move_multiplier

Multiplier for inertia based movement in space

inertia_moving

Are we moving with inertia? Mostly used as an optimization

initial_language_holder

What language holder type to init as

language_holder

Holds all languages this mob can speak and understand

last_pushoff

The last time we pushed off something +This is a hack to get around dumb him him me scenarios

max_buckled_mobs

The maximum number of mob/livings allowed to be buckled to this atom at once

max_grab

The strongest grab we can acomplish

move_packet

Holds information about any movement loops currently running/waiting to run on the movable. Lazy, will be null if nothing's going on

movement_type

In case you have multiple types, you automatically use the most useful one. +IE: Skating on ice, flippers on water, flying over chasm/space, etc. +I recommend you use the movetype_handler system and not modify this directly, especially for living mobs.

moving_diagonally

0: not doing a diagonal move. 1 and 2: doing the first/second step of the diagonal move

moving_from_pull

attempt to resume grab after moving instead of before.

pass_flags

Things we can pass through while moving. If any of this matches the thing we're trying to pass's [pass_flags_self], then we can pass through.

pitch

The pitch adjustment that this movable uses when speaking.

pressure_resistance

How much delta pressure is needed for us to move

req_access

List of accesses needed to use this object: The user must possess all accesses in this list in order to use the object. +Example: If req_access = list(ACCESS_ENGINE, ACCESS_CE)- then the user must have both ACCESS_ENGINE and ACCESS_CE in order to use the object.

req_one_access

List of accesses needed to use this object: The user must possess at least one access in this list in order to use the object. +Example: If req_one_access = list(ACCESS_ENGINE, ACCESS_CE)- then the user must have either ACCESS_ENGINE or ACCESS_CE in order to use the object.

set_dir_on_move

Whether this atom should have its dir automatically changed when it moves. Setting this to FALSE allows for things such as directional windows to retain dir on moving without snowflake code all of the place.

spatial_grid_key

String representing the spatial grid groups we want to be held in. +acts as a key to the list of spatial grid contents types we exist in via SSspatial_grid.spatial_grid_categories. +We do it like this to prevent people trying to mutate them and to save memory on holding the lists ourselves

tk_throw_range

Max range this atom can be thrown via telekinesis

tts_silicon_voice_effect

Set to anything other than "" to activate the silicon voice effect for TTS messages.

verb_say

Use get_default_say_verb() in say.dm instead of reading verb_say.

voice

The voice that this movable makes when speaking

voice_filter

The filter to apply to the voice when processing the TTS audio message.

Proc Details

CanEnterDisposals

Called to check if an atom can fit inside the diposal

CanPassThrough

Returns true or false to allow src to move through the blocker, mover has final say

Crossed

default byond proc that is deprecated for us in lieu of signals. do not call

Hear

Called when this movable hears a message from a source. +Returns TRUE if the message was received and understood.

Moved

Called after a successful Move(). By this point, we've already moved. +Arguments:

+

Process_Spacemove

Called whenever an object moves and by mobs when they attempt to move themselves through space +And when an object or action applies a force on src, see newtonian_move

+

Return FALSE to have src start/keep drifting in a no-grav area and TRUE to stop/not start drifting

+

Mobs should return 1 if they should be able to move of their own volition, see /client/proc/Move

+

Arguments:

+

Uncross

Uncross() is a default BYOND proc that is called when something is going +to exit this atom's turf. It is prefered over Uncrossed when you want to +deny that movement, such as in the case of border objects, objects that allow +you to walk through them in any direction except the one they block +(think side windows).

+

While being seemingly harmless, most everything doesn't actually want to +use this, meaning that we are wasting proc calls for every single atom +on a turf, every single time something exits it, when basically nothing +cares.

+

This overhead caused real problems on Sybil round #159709, where lag +attributed to Uncross was so bad that the entire master controller +collapsed and people made Among Us lobbies in OOC.

+

If you want to replicate the old Uncross() behavior, the most apt +replacement is [/datum/element/connect_loc] while hooking onto +[COMSIG_ATOM_EXIT].

Uncrossed

default byond proc that is normally called on everything inside the previous turf +a movable was in after moving to its current turf +this is wasteful since the vast majority of objects do not use Uncrossed +use connect_loc to register to COMSIG_ATOM_EXITED instead

abstract_move

meant for movement with zero side effects. only use for objects that are supposed to move "invisibly" (like camera mobs or ghosts) +if you want something to move onto a tile with a beartrap or recycler or tripmine or mouse without that object knowing about it at all, use this +most of the time you want forceMove()

add_blocked_language

Adds a language to the blocked language list. Use this over remove_language in cases where you will give languages back later.

admin_teleport

Proc to hook user-enacted teleporting behavior and keep logging of the event.

allowed

Returns TRUE if this mob has sufficient access to use this object

+

apply_crit_crush

Should be where critcase effects are actually implemented. Use this to apply critcases. +Args:

+ +

Returns: +TRUE if a crit case is successfully applied, FALSE otherwise.

become_active_storage

called when this movable becomes the parent of a storage component that is currently being viewed by a player. uses important_recursive_contents

become_area_sensitive

allows this movable to know when it has "entered" another area no matter how many movable atoms its stuffed into, uses important_recursive_contents

become_hearing_sensitive

allows this movable to hear and adds itself to the important_recursive_contents list of itself and every movable loc its in

buckle_mob

Set a mob as buckled to src

+

If you want to have a mob buckling another mob to something, or you want a chat message sent, use user_buckle_mob instead. +Arguments: +M - The mob to be buckled to src +force - Set to TRUE to ignore src's can_buckle and M's can_buckle_to +check_loc - Set to FALSE to allow buckling from adjacent turfs, or TRUE if buckling is only allowed with src and M on the same turf. +buckle_mob_flags- Used for riding cyborgs and humans if we need to reserve an arm or two on either the rider or the ridden mob. +ignore_self - If set to TRUE, this will not do a check to see if the user can move into the turf of the mob and will just automatically mount them.

can_infuse

returns a boolean whether a machine occupant can be infused

can_speak

Checks if our movable can currently speak, vocally, in general. +Should NOT include feedback messages about why someone can or can't speak

+

Used in various places to check if a movable is simply able to speak in general, +regardless of OOC status (being muted) and regardless of what they're actually saying.

+

Checked AFTER handling of xeno channels. +(I'm not sure what this comment means, but it was here in the past, so I'll maintain it here.)

+

allow_mimes - Determines if this check should skip over mimes. (Only matters for living mobs and up.) +If FALSE, this check will always fail if the movable has a mind and is miming. +if TRUE, we will check if the movable can speak REGARDLESS of if they have an active mime vow.

can_speak_language

Checks if atom can speak the language.

can_z_move

Checks if the destination turf is elegible for z movement from the start turf to a given direction and returns it if so. +Args:

+

check_pulling

Checks if the pulling and pulledby should be stopped because they're out of reach. +If z_allowed is TRUE, the z level of the pulling will be ignored.This is to allow things to be dragged up and down stairs.

copy_languages

Copies all languages into the supplied atom/language holder. Source should be overridden when you +do not want the language overwritten by later atom updates or want to avoid blocked languages.

could_speak_language

Returns the result of tongue specific limitations on spoken languages.

deadchat_plays

Adds the deadchat_plays component to this atom with simple movement commands.

+

Returns the component added. +Arguments:

+

faction_check_atom

Check if the other atom/movable has any factions the same as us. Defined at the atom/movable level so it can be defined for just about anything.

+

If exact match is set, then all our factions must match exactly

fall_and_crush

Causes src to fall onto [target], crushing everything on it (including itself) with [damage] +and a small chance to do a spectacular effect per entity (if a chance above 0 is provided).

+

Args:

+ +

Returns: A collection of bitflags defined in crushing.dm. Read that file's documentation for info.

fall_and_crush_crit_rebate_table

Allows damage to be reduced on certain crit cases. +Args:

+

get_crit_crush_chances

Returns a assoc list of (critcase -> num), where critcase is a critical define in crushing.dm and num is a weight. +Use with pickweight to acquire a random critcase.

get_default_say_verb

Gets the say verb we default to if no special verb is chosen. +This is primarily a hook for inheritors, +like human_say.dm's tongue-based verb_say changes.

get_infusion_entry

returns /datum/infuser_entry that matches an item being used for infusion, returns a fly mutation on failure

get_language_holder

Gets or creates the relevant language holder. For mindless atoms, gets the local one. For atom with mind, gets the mind one.

get_random_spoken_language

Gets a random spoken language, useful for forced speech and such.

get_random_understood_language

Gets a random understood language, useful for hallucinations and such.

get_selected_language

Returns selected language, if it can be spoken, or finds, sets and returns a new selected language if possible.

get_z_move_affected

Returns a list of movables that should also be affected when src moves through zlevels, and src.

grant_all_languages

Grants every language.

grant_language

Grants the supplied language and sets omnitongue true.

grant_random_uncommon_language

Teaches a random non-common language and sets it as the active language

has_buckled_mobs

Returns TRUE if there are mobs buckled to this atom and FALSE otherwise

has_language

Checks if atom has the language. If spoken is true, only checks if atom can speak the language.

is_buckle_possible

Simple helper proc that runs a suite of checks to test whether it is possible or not to buckle the target mob to src.

+

Returns FALSE if any conditions that should prevent buckling are satisfied. Returns TRUE otherwise. +Called from /atom/movable/proc/buckle_mob and /atom/movable/proc/is_user_buckle_possible. +Arguments:

+

is_user_buckle_possible

Simple helper proc that runs a suite of checks to test whether it is possible or not for user to buckle target mob to src.

+

Returns FALSE if any conditions that should prevent buckling are satisfied. Returns TRUE otherwise. +Called from /atom/movable/proc/user_buckle_mob. +Arguments:

+

keybind_face_direction

A wrapper for setDir that should only be able to fail by living mobs.

+

Called from [/atom/movable/proc/keyLoop], this exists to be overwritten by living mobs with a check to see if we're actually alive enough to change directions

lose_active_storage

called when this movable's storage component is no longer viewed by any players, unsets important_recursive_contents

lose_area_sensitivity

removes the area sensitive channel from the important_recursive_contents list of this and all nested locs containing us if there are no more source of the trait left

lose_hearing_sensitivity

removes the hearing sensitivity channel from the important_recursive_contents list of this and all nested locs containing us if there are no more sources of the trait left +since RECURSIVE_CONTENTS_HEARING_SENSITIVE is also a spatial grid content type, removes us from the spatial grid if the trait is removed

+

mouse_buckle_handling

Does some typechecks and then calls user_buckle_mob

+

Arguments: +M - The mob being buckled to src +user - The mob buckling M to src

move_from_pull

Called when src is being moved to a target turf because another movable (puller) is moving around.

newtonian_move

Only moves the object if it's under no gravity +Accepts the direction to move, if the push should be instant, and an optional parameter to fine tune the start delay +Drift force determines how much acceleration should be applied. Controlled cap, if set, will ensure that if the object was moving slower than the cap before, it cannot accelerate past the cap from this move.

onShuttleMove

Called on atoms to move the atom to the new location

on_changed_z_level

Called when a movable changes z-levels.

+

Arguments:

+

on_enter_storage

called when this atom is added into a storage item, which is passed on as S. The loc variable is already set to the storage item.

on_exit_storage

called when this atom is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called.

point_at

Point at an atom

+

Intended to enable and standardise the pointing animation for all atoms

+

Not intended as a replacement for the mob verb

post_crush_living

Exists for the purposes of custom behavior. +Called directly after [crushed] is crushed.

+

Args:

+

post_tilt

Exists for the purposes of custom behavior. +Called directly after src actually rotates and falls over.

pre_impact

Called before we attempt to call hitby and send the COMSIG_MOVABLE_IMPACT signal

randomize_language_if_on_station

Randomizes our atom's language to an uncommon language if:

+

relay_container_resist_act

called when a mob resists while inside a container that is itself inside something.

remove_all_languages

Removes every language and sets omnitongue false.

remove_blocked_language

Removes a language from the blocked language list.

remove_language

Removes a single language.

say

What makes things... talk.

+

say_emphasis

Scans the input sentence for speech emphasis modifiers, notably |italics|, +bold+, and underline -mothblocks

say_mod

Works out and returns which prefix verb the passed message should use.

+

input - The message for which we want the verb. +message_mods - A list of message modifiers, i.e. whispering/singing.

say_quote

This prock is used to generate a message for chat +Generates the says, "<span class='red'>meme</span>" part of the Grey Tider says, "meme".

+

input - The message to be said +spans - A list of spans to attach to the message. Includes the atom's speech span by default +message_mods - A list of message modifiers, i.e. whispering/singing

setGrabState

Updates the grab state of the movable

+

This exists to act as a hook for behaviour

set_active_language

Sets the passed path as the active language +Returns the currently selected language if successful, if the language was not valid, returns null

set_anchored

Sets the anchored var and returns if it was successfully changed or not.

set_currently_z_moving

Sets the currently_z_moving variable to a new value. Used to allow some zMovement sources to have precedence over others.

set_light_range_power_color

Helper to change several lighting overlay settings.

set_pulledby

Reports the event of the change in value of the pulledby variable.

shuttleRotate

Base /atom/movable proc

throw_at

If this returns FALSE then callback will not be called.

translate_language

Modifies the message by comparing the languages of the speaker with the languages of the hearer. Called on the hearer.

try_speak

Checks if our movable can speak the provided message, passing it through filters +and spam detection. Does not call can_speak. CAN include feedback messages about +why someone can or can't speak

+

Used in [proc/say] and other methods of speech (radios) after a movable has inputted some message. +If you just want to check if the movable is able to speak in character, use [proc/can_speak] instead.

+

Parameters:

+ +

Returns: +TRUE of FASE depending on if our movable can speak

unbuckle_all_mobs

Call /atom/movable/proc/unbuckle_mob for all buckled mobs

unbuckle_mob

Set a mob as unbuckled from src

+

The mob must actually be buckled to src or else bad things will happen. +Arguments: +buckled_mob - The mob to be unbuckled +force - TRUE if we should ignore buckled_mob.can_buckle_to

update_dynamic_luminosity

Keeps track of the sources of dynamic luminosity and updates our visibility with the highest.

user_buckle_mob

Handles a mob buckling another mob to src and sends a visible_message

+

Basically exists to do some checks on the user and then call buckle_mob where the real buckling happens. +First, checks if the buckle is valid and cancels if it isn't. +Second, checks if src is on a different turf from the target; if it is, does a do_after and another check for sanity +Finally, calls /atom/movable/proc/buckle_mob to buckle the target to src then gives chat feedback +Arguments:

+

user_unbuckle_mob

Handles a user unbuckling a mob from src and sends a visible_message

+

Basically just calls unbuckle_mob, sets fingerprint, and sends a visible_message +about the user unbuckling the mob +Arguments: +buckled_mob - The mob/living to unbuckle +user - The mob unbuckling buckled_mob

\ No newline at end of file diff --git a/atom/movable/immerse_overlay.html b/atom/movable/immerse_overlay.html new file mode 100644 index 0000000000000..fd5d9c4675edd --- /dev/null +++ b/atom/movable/immerse_overlay.html @@ -0,0 +1,9 @@ +/atom/movable/immerse_overlay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

immerse_overlay

The not-quite-perfect movable used by the immerse element for its nefarious deeds.

Vars

extra_heightThe base pixel y offset of this movable
extra_widthThe base pixel x offset of this movable
overlay_appearanceThe actual overlay used to make the mob look like it's half-covered in water.

Procs

adjust_living_overlay_offsetCalled by COMSIG_MOVABLE_EDIT_UNIQUE_IMMERSE_OVERLAY for living mobs and a few procs from the immerse element.

Var Details

extra_height

The base pixel y offset of this movable

extra_width

The base pixel x offset of this movable

overlay_appearance

The actual overlay used to make the mob look like it's half-covered in water.

+

For visual overlays, pixel y/x/w/z are amplified by the a, b, d, e variables +of the transform matrix of the movable they're attached to. +For example, if a mob is twice its normal size (a = 2, e = 2), +offsetting the movable used as visual overlay by 4 pixels to the right will result +in the visual overlay moving 8 pixels to the right.

+

This however, doesn't extend to the overlays of our visual overlay. which is why there's +a mutable appearance variable that we use for those pixel offsets that really shouldn't be affected +by the transform of our vis loc(s) in the first place.

Proc Details

adjust_living_overlay_offset

Called by COMSIG_MOVABLE_EDIT_UNIQUE_IMMERSE_OVERLAY for living mobs and a few procs from the immerse element.

\ No newline at end of file diff --git a/atom/movable/plane_master_controller.html b/atom/movable/plane_master_controller.html new file mode 100644 index 0000000000000..30d74e0bffe5d --- /dev/null +++ b/atom/movable/plane_master_controller.html @@ -0,0 +1,3 @@ +/atom/movable/plane_master_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

plane_master_controller

Atom that manages and controls multiple planes. It's an atom so we can hook into add_filter etc. Multiple controllers can control one plane. +Of note: plane master controllers are currently not very extensively used, because render plates fill a semi similar niche +This could well change someday, and I'd like to keep this stuff around, so we use it for a few cases just out of convenience

Vars

controlled_planesList of planes as defines in this controllers control
owner_hudhud that owns this controller

Procs

InitializeEnsures that all the planes are correctly in the controlled_planes list.
add_atom_colourFull override so we can just use filterrific
add_filterFull override so we can just use filterrific
get_filtersGets all filters for this controllers plane masters
remove_atom_colourRemoves an instance of colour_type from the atom's atom_colours list
remove_filterFull override so we can just use filterrific
transition_filterTransitions all filters owned by this plane master controller
update_atom_colourResets the atom's color to null, and then sets it to the highest priority colour available

Var Details

controlled_planes

List of planes as defines in this controllers control

owner_hud

hud that owns this controller

Proc Details

Initialize

Ensures that all the planes are correctly in the controlled_planes list.

add_atom_colour

Full override so we can just use filterrific

add_filter

Full override so we can just use filterrific

get_filters

Gets all filters for this controllers plane masters

remove_atom_colour

Removes an instance of colour_type from the atom's atom_colours list

remove_filter

Full override so we can just use filterrific

transition_filter

Transitions all filters owned by this plane master controller

update_atom_colour

Resets the atom's color to null, and then sets it to the highest priority colour available

\ No newline at end of file diff --git a/atom/movable/render_plane_relay.html b/atom/movable/render_plane_relay.html new file mode 100644 index 0000000000000..bd5c2fb04f821 --- /dev/null +++ b/atom/movable/render_plane_relay.html @@ -0,0 +1 @@ +/atom/movable/render_plane_relay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

render_plane_relay

Render relay object assigned to a plane master to be able to relay its render onto other planes that are not its own

Vars

critical_targetIf we render into a critical plane master, or not

Var Details

critical_target

If we render into a critical plane master, or not

\ No newline at end of file diff --git a/atom/movable/render_step/emissive.html b/atom/movable/render_step/emissive.html new file mode 100644 index 0000000000000..3737d59e7423c --- /dev/null +++ b/atom/movable/render_step/emissive.html @@ -0,0 +1,2 @@ +/atom/movable/render_step/emissive - /tg/ Station 13
/tg/ Station 13 - Modules - Types

emissive

Render step that makes the passed in render source GLOW

+

Copies an appearance vis render_target and render_source on to the emissive plane

\ No newline at end of file diff --git a/atom/movable/render_step/emissive_blocker.html b/atom/movable/render_step/emissive_blocker.html new file mode 100644 index 0000000000000..cc719c46f633e --- /dev/null +++ b/atom/movable/render_step/emissive_blocker.html @@ -0,0 +1,5 @@ +/atom/movable/render_step/emissive_blocker - /tg/ Station 13
/tg/ Station 13 - Modules - Types

emissive_blocker

Render step that makes the passed in render source block emissives

+

Copies an appearance vis render_target and render_source on to the emissive blocking plane. +This means that the atom in question will block any emissive sprites. +This should only be used internally. If you are directly creating more of these, you're +almost guaranteed to be doing something wrong.

\ No newline at end of file diff --git a/atom/movable/screen.html b/atom/movable/screen.html new file mode 100644 index 0000000000000..d8b767df85500 --- /dev/null +++ b/atom/movable/screen.html @@ -0,0 +1,19 @@ +/atom/movable/screen - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

screen

Vars

assigned_mapMap name assigned to this object. +Automatically set by /client/proc/add_obj_to_map.
clear_with_screenIf FALSE, this will not be cleared when calling /client/clear_screen()
default_clickIf TRUE, clicking the screen element will fall through and perform a default "Click" call +Obviously this requires your Click override, if any, to call parent on their own. +This is set to FALSE to default to dissade you from doing this. +Generally we don't want default Click stuff, which results in bugs like using Telekinesis on a screen element +or trying to point your gun at your screen.
del_on_map_removalMark this object as garbage-collectible after you clean the map +it was registered on.
hudA reference to the owner HUD, if any.
master_refA reference to the object in the slot. Grabs or items, generally, but any datum will do.

Procs

AdjacentScreen elements are always on top of the players screen and don't move so yes they are adjacent
fill_rectSets screen_loc to fill a rectangular area of the map.
get_mobReturns the mob this is being displayed to, if any
set_new_hudsetter used to set our new hud
set_positionSets screen_loc of this screen object, in form of point coordinates, +with optional pixel offset (px, py).

Var Details

assigned_map

Map name assigned to this object. +Automatically set by /client/proc/add_obj_to_map.

clear_with_screen

If FALSE, this will not be cleared when calling /client/clear_screen()

default_click

If TRUE, clicking the screen element will fall through and perform a default "Click" call +Obviously this requires your Click override, if any, to call parent on their own. +This is set to FALSE to default to dissade you from doing this. +Generally we don't want default Click stuff, which results in bugs like using Telekinesis on a screen element +or trying to point your gun at your screen.

del_on_map_removal

Mark this object as garbage-collectible after you clean the map +it was registered on.

+

This could probably be changed to be a proc, for conditional removal. +But for now, this works.

hud

A reference to the owner HUD, if any.

master_ref

A reference to the object in the slot. Grabs or items, generally, but any datum will do.

Proc Details

Adjacent

Screen elements are always on top of the players screen and don't move so yes they are adjacent

fill_rect

Sets screen_loc to fill a rectangular area of the map.

+

If applicable, "assigned_map" has to be assigned before this proc call.

get_mob

Returns the mob this is being displayed to, if any

set_new_hud

setter used to set our new hud

set_position

Sets screen_loc of this screen object, in form of point coordinates, +with optional pixel offset (px, py).

+

If applicable, "assigned_map" has to be assigned before this proc call.

\ No newline at end of file diff --git a/atom/movable/screen/action_landing.html b/atom/movable/screen/action_landing.html new file mode 100644 index 0000000000000..e44995bc3c95a --- /dev/null +++ b/atom/movable/screen/action_landing.html @@ -0,0 +1 @@ +/atom/movable/screen/action_landing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

action_landing

Exists so you have a place to put your buttons when you move them around

Procs

hit_byReacts to having a button dropped on it

Proc Details

hit_by

Reacts to having a button dropped on it

\ No newline at end of file diff --git a/atom/movable/screen/admin_popup.html b/atom/movable/screen/admin_popup.html new file mode 100644 index 0000000000000..56af360717e9c --- /dev/null +++ b/atom/movable/screen/admin_popup.html @@ -0,0 +1 @@ +/atom/movable/screen/admin_popup - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

admin_popup

The UI element for admin popups

Vars

last_color_indexThe last color chosen in the animation, sourced from the static list colors.
last_update_timeThe world.time when the last color update occurred.

Var Details

last_color_index

The last color chosen in the animation, sourced from the static list colors.

last_update_time

The world.time when the last color update occurred.

\ No newline at end of file diff --git a/atom/movable/screen/alert.html b/atom/movable/screen/alert.html new file mode 100644 index 0000000000000..9a8371f4ae4a7 --- /dev/null +++ b/atom/movable/screen/alert.html @@ -0,0 +1 @@ +/atom/movable/screen/alert - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

alert

Vars

click_masterBoolean. If TRUE, the Click() proc will attempt to Click() on the master first if there is a master.

Var Details

click_master

Boolean. If TRUE, the Click() proc will attempt to Click() on the master first if there is a master.

\ No newline at end of file diff --git a/atom/movable/screen/alert/give.html b/atom/movable/screen/alert/give.html new file mode 100644 index 0000000000000..4a698c7289922 --- /dev/null +++ b/atom/movable/screen/alert/give.html @@ -0,0 +1,25 @@ +/atom/movable/screen/alert/give - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

give

Vars

additional_desc_textAdditional text displayed in the description of the alert.
examinableWhether the offered item can be examined by shift-clicking the alert
offerThe offer we're linked to, yes this is suspiciously like a status effect alert
screentip_override_textText to override what appears in screentips for the alert

Procs

get_receiving_nameCalled right before setup(), to do any sort of logic to change the name of +what's displayed as the name of what's being offered in the alert. Use this to +add pronouns and the like, or to totally override the displayed name! +Also the best place to make changes to additional_desc_text before setup() +without having to override setup() entirely.
handle_transferAn overrideable proc used simply to hand over the item when claimed, this is a proc so that high-fives can override them since nothing is actually transferred
setupHandles assigning most of the variables for the alert that pops up when an item is offered

Var Details

additional_desc_text

Additional text displayed in the description of the alert.

examinable

Whether the offered item can be examined by shift-clicking the alert

offer

The offer we're linked to, yes this is suspiciously like a status effect alert

screentip_override_text

Text to override what appears in screentips for the alert

Proc Details

get_receiving_name

Called right before setup(), to do any sort of logic to change the name of +what's displayed as the name of what's being offered in the alert. Use this to +add pronouns and the like, or to totally override the displayed name! +Also the best place to make changes to additional_desc_text before setup() +without having to override setup() entirely.

+

Arguments:

+ +

Returns a string that will be displayed in the alert, which is receiving.name +by default.

handle_transfer

An overrideable proc used simply to hand over the item when claimed, this is a proc so that high-fives can override them since nothing is actually transferred

setup

Handles assigning most of the variables for the alert that pops up when an item is offered

+

Handles setting the name, description and icon of the alert and tracking the person giving +and the item being offered. +Arguments:

+
\ No newline at end of file diff --git a/atom/movable/screen/alert/give/highfive.html b/atom/movable/screen/alert/give/highfive.html new file mode 100644 index 0000000000000..e9998c045623f --- /dev/null +++ b/atom/movable/screen/alert/give/highfive.html @@ -0,0 +1 @@ +/atom/movable/screen/alert/give/highfive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

highfive

Vars

too_slowing_this_guyTracks active "to slow"ing so we can't spam click

Procs

check_fake_outIf someone examine_more's the offerer while they're trying to pull a too-slow, it'll tip them off to the offerer's trickster ways
too_slow_p1If the person who offered the high five no longer has it when we try to accept it, we get pranked hard
too_slow_p2Part two of the ultimate prank

Var Details

too_slowing_this_guy

Tracks active "to slow"ing so we can't spam click

Proc Details

check_fake_out

If someone examine_more's the offerer while they're trying to pull a too-slow, it'll tip them off to the offerer's trickster ways

too_slow_p1

If the person who offered the high five no longer has it when we try to accept it, we get pranked hard

too_slow_p2

Part two of the ultimate prank

\ No newline at end of file diff --git a/atom/movable/screen/alert/modlink_call.html b/atom/movable/screen/alert/modlink_call.html new file mode 100644 index 0000000000000..922950e64abe9 --- /dev/null +++ b/atom/movable/screen/alert/modlink_call.html @@ -0,0 +1 @@ +/atom/movable/screen/alert/modlink_call - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

modlink_call

Vars

caller_refA weak reference to the MODlink that is calling.
receiver_refA weak reference to the MODlink that is being called.
user_refA weak reference to the mob that is calling.

Var Details

caller_ref

A weak reference to the MODlink that is calling.

receiver_ref

A weak reference to the MODlink that is being called.

user_ref

A weak reference to the mob that is calling.

\ No newline at end of file diff --git a/atom/movable/screen/alert/notify_action.html b/atom/movable/screen/alert/notify_action.html new file mode 100644 index 0000000000000..d283b229e9e26 --- /dev/null +++ b/atom/movable/screen/alert/notify_action.html @@ -0,0 +1 @@ +/atom/movable/screen/alert/notify_action - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

notify_action

Vars

click_interactIf we want to interact on click rather than jump/orbit
target_refWeakref to the target atom to use the action on

Var Details

click_interact

If we want to interact on click rather than jump/orbit

target_ref

Weakref to the target atom to use the action on

\ No newline at end of file diff --git a/atom/movable/screen/alert/poll_alert.html b/atom/movable/screen/alert/poll_alert.html new file mode 100644 index 0000000000000..838fda10574ae --- /dev/null +++ b/atom/movable/screen/alert/poll_alert.html @@ -0,0 +1 @@ +/atom/movable/screen/alert/poll_alert - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

poll_alert

Vars

candidates_num_overlayMA for maptext overlay showing how many candidates are signed up to a poll
pollIf set, on Click() it'll register the player as a candidate
role_overlayMA for maptext overlay of poll's role name or question
show_time_leftIf true you need to call START_PROCESSING manually
signed_up_overlayMA for overlay showing that you're signed up to poll
stacks_overlayMA for maptext overlay showing how many polls are stacked together
time_left_overlayMA for maptext showing time left for poll

Var Details

candidates_num_overlay

MA for maptext overlay showing how many candidates are signed up to a poll

poll

If set, on Click() it'll register the player as a candidate

role_overlay

MA for maptext overlay of poll's role name or question

show_time_left

If true you need to call START_PROCESSING manually

signed_up_overlay

MA for overlay showing that you're signed up to poll

stacks_overlay

MA for maptext overlay showing how many polls are stacked together

time_left_overlay

MA for maptext showing time left for poll

\ No newline at end of file diff --git a/atom/movable/screen/alert/status_effect.html b/atom/movable/screen/alert/status_effect.html new file mode 100644 index 0000000000000..b124d90119251 --- /dev/null +++ b/atom/movable/screen/alert/status_effect.html @@ -0,0 +1 @@ +/atom/movable/screen/alert/status_effect - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

status_effect

Alert base type for status effect alerts

Vars

attached_effectThe status effect we're linked to

Var Details

attached_effect

The status effect we're linked to

\ No newline at end of file diff --git a/atom/movable/screen/alert/status_effect/golem_status.html b/atom/movable/screen/alert/status_effect/golem_status.html new file mode 100644 index 0000000000000..db4d07cd55236 --- /dev/null +++ b/atom/movable/screen/alert/status_effect/golem_status.html @@ -0,0 +1 @@ +/atom/movable/screen/alert/status_effect/golem_status - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

golem_status

Vars

early_expiry_warningWhen we reach this much remaining time we will start animating as a warning
imminent_expiry_warningWhen we reach this much remaining time we will start animating more urgently as a warning
mineral_overlayOverlay we show on top of the template icon

Procs

early_warningAnimate to indicate effect is expiring soon
imminent_warningAnimate to indicate effect is expiring very soon
update_detailsSet up how the alert ACTUALLY looks, based on the effect applied

Var Details

early_expiry_warning

When we reach this much remaining time we will start animating as a warning

imminent_expiry_warning

When we reach this much remaining time we will start animating more urgently as a warning

mineral_overlay

Overlay we show on top of the template icon

Proc Details

early_warning

Animate to indicate effect is expiring soon

imminent_warning

Animate to indicate effect is expiring very soon

update_details

Set up how the alert ACTUALLY looks, based on the effect applied

\ No newline at end of file diff --git a/atom/movable/screen/alert/status_effect/slimed.html b/atom/movable/screen/alert/status_effect/slimed.html new file mode 100644 index 0000000000000..2e5bbb87a1481 --- /dev/null +++ b/atom/movable/screen/alert/status_effect/slimed.html @@ -0,0 +1 @@ +/atom/movable/screen/alert/status_effect/slimed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

slimed

Procs

can_washConfirm that we are capable of washing off slime
remove_slimeTry to get rid of it

Proc Details

can_wash

Confirm that we are capable of washing off slime

remove_slime

Try to get rid of it

\ No newline at end of file diff --git a/atom/movable/screen/ammo_counter.html b/atom/movable/screen/ammo_counter.html new file mode 100644 index 0000000000000..8b3031c0e0dc4 --- /dev/null +++ b/atom/movable/screen/ammo_counter.html @@ -0,0 +1 @@ +/atom/movable/screen/ammo_counter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ammo_counter

Vars

backing_colorThis is the color assigned to the OTH backing, numbers and indicator.
indicatorThis is the custom indicator sprite that will appear in the box at the bottom of the ammo hud, use this for something like semi/auto toggle on a gun.
oth_backingThis is the "backlight" of the numbers, and only the numbers. Generally you should leave this alone if you aren't making some mutant project.
oth_hOTH position 00X
oth_oOTH position X00
oth_tOTH position 0X0

Procs

set_hudThis is the main proc for altering the hud's appeareance, it controls the setting of the overlays. Use the OTH and below variables to set it accordingly.
turn_offThis proc simply resets the hud to standard and removes it from the players visible hud.
turn_onThis proc turns the hud on, but does not set it to anything other than the currently set values

Var Details

backing_color

This is the color assigned to the OTH backing, numbers and indicator.

indicator

This is the custom indicator sprite that will appear in the box at the bottom of the ammo hud, use this for something like semi/auto toggle on a gun.

oth_backing

This is the "backlight" of the numbers, and only the numbers. Generally you should leave this alone if you aren't making some mutant project.

oth_h

OTH position 00X

oth_o

OTH position X00

oth_t

OTH position 0X0

Proc Details

set_hud

This is the main proc for altering the hud's appeareance, it controls the setting of the overlays. Use the OTH and below variables to set it accordingly.

turn_off

This proc simply resets the hud to standard and removes it from the players visible hud.

turn_on

This proc turns the hud on, but does not set it to anything other than the currently set values

\ No newline at end of file diff --git a/atom/movable/screen/button_palette.html b/atom/movable/screen/button_palette.html new file mode 100644 index 0000000000000..b7bc671cb7e17 --- /dev/null +++ b/atom/movable/screen/button_palette.html @@ -0,0 +1 @@ +/atom/movable/screen/button_palette - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

button_palette

Vars

color_timer_idId of any currently running timers that set our color matrix

Var Details

color_timer_id

Id of any currently running timers that set our color matrix

\ No newline at end of file diff --git a/atom/movable/screen/combattoggle/flashy.html b/atom/movable/screen/combattoggle/flashy.html new file mode 100644 index 0000000000000..e576345e3d6e7 --- /dev/null +++ b/atom/movable/screen/combattoggle/flashy.html @@ -0,0 +1 @@ +/atom/movable/screen/combattoggle/flashy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

flashy

Vars

flashyMut appearance for flashy border

Var Details

flashy

Mut appearance for flashy border

\ No newline at end of file diff --git a/atom/movable/screen/escape_menu/home_button_text.html b/atom/movable/screen/escape_menu/home_button_text.html new file mode 100644 index 0000000000000..7c8eb2a02bda7 --- /dev/null +++ b/atom/movable/screen/escape_menu/home_button_text.html @@ -0,0 +1 @@ +/atom/movable/screen/escape_menu/home_button_text - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

home_button_text

Procs

set_hoveredSets the hovered state of the button, and updates the text

Proc Details

set_hovered

Sets the hovered state of the button, and updates the text

\ No newline at end of file diff --git a/atom/movable/screen/fishing_hud.html b/atom/movable/screen/fishing_hud.html new file mode 100644 index 0000000000000..52af1f211bbed --- /dev/null +++ b/atom/movable/screen/fishing_hud.html @@ -0,0 +1 @@ +/atom/movable/screen/fishing_hud - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fishing_hud

The screen object which bait, fish, and completion bar are visually attached to.

Vars

hud_baitThe bait as shown in the minigame
hud_completionThe completion bar as shown in the minigame
hud_fishThe fish as shown in the minigame

Procs

prepare_minigameInitialize bait, fish and completion bar and add them to the visual appearance of this screen object.

Var Details

hud_bait

The bait as shown in the minigame

hud_completion

The completion bar as shown in the minigame

hud_fish

The fish as shown in the minigame

Proc Details

prepare_minigame

Initialize bait, fish and completion bar and add them to the visual appearance of this screen object.

\ No newline at end of file diff --git a/atom/movable/screen/fullscreen/carrier.html b/atom/movable/screen/fullscreen/carrier.html new file mode 100644 index 0000000000000..95a844ecfad2d --- /dev/null +++ b/atom/movable/screen/fullscreen/carrier.html @@ -0,0 +1 @@ +/atom/movable/screen/fullscreen/carrier - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

carrier

Vars

recolorableIs the overlay able to be recolored?
vore_overlayIs the overlay vore related?

Var Details

recolorable

Is the overlay able to be recolored?

vore_overlay

Is the overlay vore related?

\ No newline at end of file diff --git a/atom/movable/screen/fullscreen/cursor_catcher.html b/atom/movable/screen/fullscreen/cursor_catcher.html new file mode 100644 index 0000000000000..d5789e7c1e20d --- /dev/null +++ b/atom/movable/screen/fullscreen/cursor_catcher.html @@ -0,0 +1 @@ +/atom/movable/screen/fullscreen/cursor_catcher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cursor_catcher

An effect which tracks the cursor's location on the screen

Vars

given_turfThe turf we send to the scope component.
given_xPixel x relative to the hovered tile we send to the scope component.
given_yPixel y relative to the hovered tile we send to the scope component.
mouse_paramsMouse parameters, for calculation.
ownerThe mob whose cursor we are tracking.
view_listClient view size of the scoping mob.

Procs

assign_to_mobLinks this up with a mob
on_moveUpdate when the mob we're assigned to has moved
on_viewdata_updateUpdate when our screen size changes

Var Details

given_turf

The turf we send to the scope component.

given_x

Pixel x relative to the hovered tile we send to the scope component.

given_y

Pixel y relative to the hovered tile we send to the scope component.

mouse_params

Mouse parameters, for calculation.

owner

The mob whose cursor we are tracking.

view_list

Client view size of the scoping mob.

Proc Details

assign_to_mob

Links this up with a mob

on_move

Update when the mob we're assigned to has moved

on_viewdata_update

Update when our screen size changes

\ No newline at end of file diff --git a/atom/movable/screen/fullscreen/cursor_catcher/scope.html b/atom/movable/screen/fullscreen/cursor_catcher/scope.html new file mode 100644 index 0000000000000..08b63a4dcd722 --- /dev/null +++ b/atom/movable/screen/fullscreen/cursor_catcher/scope.html @@ -0,0 +1 @@ +/atom/movable/screen/fullscreen/cursor_catcher/scope - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

scope

Vars

range_modifierMultiplier for given_X an given_y.

Var Details

range_modifier

Multiplier for given_X an given_y.

\ No newline at end of file diff --git a/atom/movable/screen/hud_bait.html b/atom/movable/screen/hud_bait.html new file mode 100644 index 0000000000000..abff27d61ec55 --- /dev/null +++ b/atom/movable/screen/hud_bait.html @@ -0,0 +1 @@ +/atom/movable/screen/hud_bait - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hud_bait

Vars

current_vertical_transformThe stored value we used to squish the bar based on the difficulty

Var Details

current_vertical_transform

The stored value we used to squish the bar based on the difficulty

\ No newline at end of file diff --git a/atom/movable/screen/hunger.html b/atom/movable/screen/hunger.html new file mode 100644 index 0000000000000..a7100813e3b58 --- /dev/null +++ b/atom/movable/screen/hunger.html @@ -0,0 +1 @@ +/atom/movable/screen/hunger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hunger

Vars

food_iconWhat food icon do we show by the bar
food_icon_stateWhat food icon state do we show by the bar
food_imageThe image shown by the bar.
stateWhat state of hunger are we in?

Var Details

food_icon

What food icon do we show by the bar

food_icon_state

What food icon state do we show by the bar

food_image

The image shown by the bar.

state

What state of hunger are we in?

\ No newline at end of file diff --git a/atom/movable/screen/inventory.html b/atom/movable/screen/inventory.html new file mode 100644 index 0000000000000..6ddc14d60dad4 --- /dev/null +++ b/atom/movable/screen/inventory.html @@ -0,0 +1 @@ +/atom/movable/screen/inventory - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

inventory

Vars

icon_emptyIcon when empty. For now used only by humans.
icon_fullIcon when contains an item. For now used only by humans.
object_overlayThe overlay when hovering over with an item in your hand
slot_idThe identifier for the slot. It has nothing to do with ID cards.

Var Details

icon_empty

Icon when empty. For now used only by humans.

icon_full

Icon when contains an item. For now used only by humans.

object_overlay

The overlay when hovering over with an item in your hand

slot_id

The identifier for the slot. It has nothing to do with ID cards.

\ No newline at end of file diff --git a/atom/movable/screen/mafia_popup.html b/atom/movable/screen/mafia_popup.html new file mode 100644 index 0000000000000..54af44c04e632 --- /dev/null +++ b/atom/movable/screen/mafia_popup.html @@ -0,0 +1 @@ +/atom/movable/screen/mafia_popup - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mafia_popup

The popup used for sending important messages to players.

Vars

ownerThe client that owns the popup.

Procs

null_textClears all text to re-use in the future. We use to_clear here in case someone takes over their old body.

Var Details

owner

The client that owns the popup.

Proc Details

null_text

Clears all text to re-use in the future. We use to_clear here in case someone takes over their old body.

\ No newline at end of file diff --git a/atom/movable/screen/map_view.html b/atom/movable/screen/map_view.html new file mode 100644 index 0000000000000..2ca2c68777d39 --- /dev/null +++ b/atom/movable/screen/map_view.html @@ -0,0 +1,5 @@ +/atom/movable/screen/map_view - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

map_view

Procs

NewA screen object, which acts as a container for turfs and other things +you want to show on the map, which you usually attach to "vis_contents". +Additionally manages the plane masters required to display said container contents

Proc Details

New

A screen object, which acts as a container for turfs and other things +you want to show on the map, which you usually attach to "vis_contents". +Additionally manages the plane masters required to display said container contents

\ No newline at end of file diff --git a/atom/movable/screen/map_view/char_preview.html b/atom/movable/screen/map_view/char_preview.html new file mode 100644 index 0000000000000..68134d2b6df25 --- /dev/null +++ b/atom/movable/screen/map_view/char_preview.html @@ -0,0 +1 @@ +/atom/movable/screen/map_view/char_preview - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

char_preview

A preview of a character for use in the preferences menu

Vars

bodyThe body that is displayed
preferencesThe preferences this refers to
show_job_clothesWhether we show current job clothes or nude/loadout only

Procs

update_bodyUpdates the currently displayed body

Var Details

body

The body that is displayed

preferences

The preferences this refers to

show_job_clothes

Whether we show current job clothes or nude/loadout only

Proc Details

update_body

Updates the currently displayed body

\ No newline at end of file diff --git a/atom/movable/screen/map_view/gateway_port.html b/atom/movable/screen/map_view/gateway_port.html new file mode 100644 index 0000000000000..7e5140b3a1974 --- /dev/null +++ b/atom/movable/screen/map_view/gateway_port.html @@ -0,0 +1 @@ +/atom/movable/screen/map_view/gateway_port - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gateway_port

Vars

cam_backgroundHandles the background of the portal, ensures the effect well, works properly

Var Details

cam_background

Handles the background of the portal, ensures the effect well, works properly

\ No newline at end of file diff --git a/atom/movable/screen/movable.html b/atom/movable/screen/movable.html new file mode 100644 index 0000000000000..f30ead1352ecb --- /dev/null +++ b/atom/movable/screen/movable.html @@ -0,0 +1 @@ +/atom/movable/screen/movable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

movable

Procs

mouse_params_to_positionTakes mouse parmas as input, returns a string representing the appropriate mouse position

Proc Details

mouse_params_to_position

Takes mouse parmas as input, returns a string representing the appropriate mouse position

\ No newline at end of file diff --git a/atom/movable/screen/movable/action_button.html b/atom/movable/screen/movable/action_button.html new file mode 100644 index 0000000000000..01d99834d6006 --- /dev/null +++ b/atom/movable/screen/movable/action_button.html @@ -0,0 +1,3 @@ +/atom/movable/screen/movable/action_button - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

action_button

Vars

active_overlay_icon_stateThe icon state of our active overlay, used to prevent re-applying identical overlays
active_underlay_icon_stateThe icon state of our active underlay, used to prevent re-applying identical underlays
button_overlayThe overlay we have overtop our button
idA unique bitflag, combined with the name of our linked action this lets us persistently remember any user changes to our position
keybind_maptextoverlay for keybind maptext
last_hovored_refA weakref of the last thing we hovered over +God I hate how dragging works
locationWhere we are currently placed on the hud. SCRN_OBJ_DEFAULT asks the linked action what it thinks

Var Details

active_overlay_icon_state

The icon state of our active overlay, used to prevent re-applying identical overlays

active_underlay_icon_state

The icon state of our active underlay, used to prevent re-applying identical underlays

button_overlay

The overlay we have overtop our button

id

A unique bitflag, combined with the name of our linked action this lets us persistently remember any user changes to our position

keybind_maptext

overlay for keybind maptext

last_hovored_ref

A weakref of the last thing we hovered over +God I hate how dragging works

location

Where we are currently placed on the hud. SCRN_OBJ_DEFAULT asks the linked action what it thinks

\ No newline at end of file diff --git a/atom/movable/screen/palette_scroll.html b/atom/movable/screen/palette_scroll.html new file mode 100644 index 0000000000000..f967383007786 --- /dev/null +++ b/atom/movable/screen/palette_scroll.html @@ -0,0 +1,3 @@ +/atom/movable/screen/palette_scroll - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

palette_scroll

Vars

scroll_directionHow should we move the palette's actions? +Positive scrolls down the list, negative scrolls back

Var Details

scroll_direction

How should we move the palette's actions? +Positive scrolls down the list, negative scrolls back

\ No newline at end of file diff --git a/atom/movable/screen/parallax_layer/random.html b/atom/movable/screen/parallax_layer/random.html new file mode 100644 index 0000000000000..e045c03cfb8db --- /dev/null +++ b/atom/movable/screen/parallax_layer/random.html @@ -0,0 +1 @@ +/atom/movable/screen/parallax_layer/random - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

random

Parallax layers that vary between rounds. Has some code to make sure we all have the same one

Procs

apply_global_effectsFor applying minor effects related to parallax. If you want big stuff, put it in a station trait or something
copy_parallaxCopy a parallax instance to ensure parity between everyones parallax
get_random_lookMake this layer unique, with color or position or something

Proc Details

apply_global_effects

For applying minor effects related to parallax. If you want big stuff, put it in a station trait or something

copy_parallax

Copy a parallax instance to ensure parity between everyones parallax

get_random_look

Make this layer unique, with color or position or something

\ No newline at end of file diff --git a/atom/movable/screen/parallax_layer/random/space_gas.html b/atom/movable/screen/parallax_layer/random/space_gas.html new file mode 100644 index 0000000000000..2d02badfe3a89 --- /dev/null +++ b/atom/movable/screen/parallax_layer/random/space_gas.html @@ -0,0 +1 @@ +/atom/movable/screen/parallax_layer/random/space_gas - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

space_gas

Gassy background with a few random colors

Vars

parallax_colorThe color we are
possible_colorsThe colors we can be

Var Details

parallax_color

The color we are

possible_colors

The colors we can be

\ No newline at end of file diff --git a/atom/movable/screen/plane_master.html b/atom/movable/screen/plane_master.html new file mode 100644 index 0000000000000..d1a0fbb4f4c5b --- /dev/null +++ b/atom/movable/screen/plane_master.html @@ -0,0 +1,81 @@ +/atom/movable/screen/plane_master - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

plane_master

Vars

alpha_enabledTracks if we're using our true alpha, or being manipulated in some other way
blend_mode_overrideblend mode to apply to the render relay in case you dont want to use the plane_masters blend_mode
criticalBitfield that describes how this plane master will render if its z layer is being "optimized" +If a plane master is NOT critical, it will be completely dropped if we start to render outside a client's multiz boundary prefs +Of note: most of the time we will relay renders to non critical planes in this stage. so the plane master will end up drawing roughly "in order" with its friends +This is NOT done for parallax and other problem children, because the rules of BLEND_MULTIPLY appear to not behave as expected :( +This will also just make debugging harder, because we do fragile things in order to ensure things operate as epected. I'm sorry +Compile time +See code__DEFINES\layers.dm for our bitflags
documentationWill be sent to the debug ui as a description for each plane +Also useful as a place to explain to coders how/why your plane works, and what it's meant to do +Plaintext and basic html are fine to use here. +I'll bonk you if I find you putting "lmao stuff" in here, make this useful.
force_hiddenIf this plane master is being forced to hide. +Hidden PMs will dump ANYTHING relayed or drawn onto them. Be careful with this +Remember: a hidden plane master will dump anything drawn directly to it onto the output render. It does NOT hide its contents +Use alpha for that
homeThe plane master group we're a member of, our "home"
is_outside_boundsIf this plane master is outside of our visual bounds right now
multiz_scaledIf this plane should be scaled by multiz +Planes with this set should NEVER be relay'd into each other, as that will cause visual fuck
offsetOur offset from our "true" plane, see below
offsetting_flagsIf our plane master has different offsetting logic +Possible flags are defined in [_DEFINES/layers.dm]
real_planeWhen rendering multiz, lower levels get their own set of plane masters +Real plane here represents the "true" plane value of something, ignoring the offset required to handle lower levels
relayslist of current relays this plane is utilizing to render
relays_generatedif render relays have already be generated
render_relay_planeslist of planes we will relay this plane's render to
start_hiddenIf this plane master should be hidden from the player at roundstart +We do this so PMs can opt into being temporary, to reduce load on clients
true_alphaOur real alpha value, so alpha can persist through being hidden/shown

Procs

add_relay_toCreates a connection between this plane master and the passed in plane +Helper for out of system code, shouldn't be used in this file +Build system to differenchiate between generated and non generated render relays
check_outside_boundsHook to allow planes to work around is_outside_bounds +Return false to allow a show, true otherwise
generate_render_relaysPlane master proc called in Initialize() that creates relay objects, and sets them up as needed +Sets:
get_relay_toGets the relay atom we're using to connect to the target plane, if one exists
hide_fromHides a plane master from the passeed in mob +Do your effect cleanup here
hide_planeForces this plane master to hide, until unhide_plane is called +This allows us to disable unused PMs without breaking anything else
mirror_parent_hiddenMirrors our force hidden state to the hidden state of the plane that came before, assuming it's valid +This allows us to mirror any hidden sets from before we were created, no matter how low that chance is
offset_relayOffsets a given render relay using the given parameter by adjusting its plane and +layer values, avoiding changing the layer if it has a custom-set layer.
offset_relays_in_placeOffsets our relays in place using the given parameter by adjusting their plane and +layer values, avoiding changing the layer for relays with custom-set layers.
remove_relay_fromBreaks a connection between this plane master, and the passed in place
set_homeSets the plane group that owns us, it also determines what screen we render to +Returns FALSE if the set_home fails, TRUE otherwise
show_toShows a plane master to the passed in mob +Override this to apply unique effects and such +Returns TRUE if the call is allowed, FALSE otherwise
unhide_planeDisables any forced hiding, allows the plane master to be used as normal
update_offsetUpdates our "offset", basically what layer of multiz we're meant to render +Top is 0, goes up as you go down +It's taken into account by render targets and relays, so we gotta make sure they're on the same page

Var Details

alpha_enabled

Tracks if we're using our true alpha, or being manipulated in some other way

blend_mode_override

blend mode to apply to the render relay in case you dont want to use the plane_masters blend_mode

critical

Bitfield that describes how this plane master will render if its z layer is being "optimized" +If a plane master is NOT critical, it will be completely dropped if we start to render outside a client's multiz boundary prefs +Of note: most of the time we will relay renders to non critical planes in this stage. so the plane master will end up drawing roughly "in order" with its friends +This is NOT done for parallax and other problem children, because the rules of BLEND_MULTIPLY appear to not behave as expected :( +This will also just make debugging harder, because we do fragile things in order to ensure things operate as epected. I'm sorry +Compile time +See code__DEFINES\layers.dm for our bitflags

documentation

Will be sent to the debug ui as a description for each plane +Also useful as a place to explain to coders how/why your plane works, and what it's meant to do +Plaintext and basic html are fine to use here. +I'll bonk you if I find you putting "lmao stuff" in here, make this useful.

force_hidden

If this plane master is being forced to hide. +Hidden PMs will dump ANYTHING relayed or drawn onto them. Be careful with this +Remember: a hidden plane master will dump anything drawn directly to it onto the output render. It does NOT hide its contents +Use alpha for that

home

The plane master group we're a member of, our "home"

is_outside_bounds

If this plane master is outside of our visual bounds right now

multiz_scaled

If this plane should be scaled by multiz +Planes with this set should NEVER be relay'd into each other, as that will cause visual fuck

offset

Our offset from our "true" plane, see below

offsetting_flags

If our plane master has different offsetting logic +Possible flags are defined in [_DEFINES/layers.dm]

real_plane

When rendering multiz, lower levels get their own set of plane masters +Real plane here represents the "true" plane value of something, ignoring the offset required to handle lower levels

relays

list of current relays this plane is utilizing to render

relays_generated

if render relays have already be generated

render_relay_planes

list of planes we will relay this plane's render to

start_hidden

If this plane master should be hidden from the player at roundstart +We do this so PMs can opt into being temporary, to reduce load on clients

true_alpha

Our real alpha value, so alpha can persist through being hidden/shown

Proc Details

add_relay_to

Creates a connection between this plane master and the passed in plane +Helper for out of system code, shouldn't be used in this file +Build system to differenchiate between generated and non generated render relays

check_outside_bounds

Hook to allow planes to work around is_outside_bounds +Return false to allow a show, true otherwise

generate_render_relays

Plane master proc called in Initialize() that creates relay objects, and sets them up as needed +Sets:

+

get_relay_to

Gets the relay atom we're using to connect to the target plane, if one exists

hide_from

Hides a plane master from the passeed in mob +Do your effect cleanup here

hide_plane

Forces this plane master to hide, until unhide_plane is called +This allows us to disable unused PMs without breaking anything else

mirror_parent_hidden

Mirrors our force hidden state to the hidden state of the plane that came before, assuming it's valid +This allows us to mirror any hidden sets from before we were created, no matter how low that chance is

offset_relay

Offsets a given render relay using the given parameter by adjusting its plane and +layer values, avoiding changing the layer if it has a custom-set layer.

+

Parameters:

+

offset_relays_in_place

Offsets our relays in place using the given parameter by adjusting their plane and +layer values, avoiding changing the layer for relays with custom-set layers.

+

Used in [proc/build_planes_offset] to make the relays for non-offsetting planes +match the highest rendering plane that matches the target, to avoid them rendering +on the highest level above things that should be visible.

+

Parameters:

+

remove_relay_from

Breaks a connection between this plane master, and the passed in place

set_home

Sets the plane group that owns us, it also determines what screen we render to +Returns FALSE if the set_home fails, TRUE otherwise

show_to

Shows a plane master to the passed in mob +Override this to apply unique effects and such +Returns TRUE if the call is allowed, FALSE otherwise

unhide_plane

Disables any forced hiding, allows the plane master to be used as normal

update_offset

Updates our "offset", basically what layer of multiz we're meant to render +Top is 0, goes up as you go down +It's taken into account by render targets and relays, so we gotta make sure they're on the same page

\ No newline at end of file diff --git a/atom/movable/screen/plane_master/parallax.html b/atom/movable/screen/plane_master/parallax.html new file mode 100644 index 0000000000000..a8148bb7944dc --- /dev/null +++ b/atom/movable/screen/plane_master/parallax.html @@ -0,0 +1 @@ +/atom/movable/screen/plane_master/parallax - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

parallax

Contains space parallax

Procs

narsie_modifiedStarts the narsie animation, make us grey, then red
narsie_start_midwayStarts the narsie animation midway, so we can catch up to everyone else quickly

Proc Details

narsie_modified

Starts the narsie animation, make us grey, then red

narsie_start_midway

Starts the narsie animation midway, so we can catch up to everyone else quickly

\ No newline at end of file diff --git a/atom/movable/screen/plane_master/rendering_plate.html b/atom/movable/screen/plane_master/rendering_plate.html new file mode 100644 index 0000000000000..f7901505dafee --- /dev/null +++ b/atom/movable/screen/plane_master/rendering_plate.html @@ -0,0 +1,6 @@ +/atom/movable/screen/plane_master/rendering_plate - /tg/ Station 13
/tg/ Station 13 - Modules - Types

rendering_plate

Rendering plate

+

Acts like a plane master, but for plane masters +Renders other planes onto this plane, through the use of render objects +Any effects applied onto this plane will act on the unified plane +IE a bulge filter will apply as if the world was one object +remember that once planes are unified on a render plate you cant change the layering of them!

\ No newline at end of file diff --git a/atom/movable/screen/plane_master/rendering_plate/lighting.html b/atom/movable/screen/plane_master/rendering_plate/lighting.html new file mode 100644 index 0000000000000..0a2a6e26938a7 --- /dev/null +++ b/atom/movable/screen/plane_master/rendering_plate/lighting.html @@ -0,0 +1 @@ +/atom/movable/screen/plane_master/rendering_plate/lighting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lighting

Contains all lighting objects

Vars

light_cutoffsA list of light cutoffs we're actively using, (mass, r, g, b) to avoid filter churn

Var Details

light_cutoffs

A list of light cutoffs we're actively using, (mass, r, g, b) to avoid filter churn

\ No newline at end of file diff --git a/atom/movable/screen/text/screen_timer.html b/atom/movable/screen/text/screen_timer.html new file mode 100644 index 0000000000000..66073ffcedf55 --- /dev/null +++ b/atom/movable/screen/text/screen_timer.html @@ -0,0 +1 @@ +/atom/movable/screen/text/screen_timer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

screen_timer

A screen object that shows the time left on a timer

Vars

maptext_stringThe actual displayed content of the maptext, use ${timer}, and it'll be replaced with formatted time left
timer_idTimer ID that we're tracking, the time left of this is displayed as maptext
timer_mobsThe list of mobs in whose client.screens we are added to

Procs

apply_toAdds the object to the client.screen of all mobs in the list, and registers the needed signals
attachAdds the object to the client.screen of the mob, or removes it if add_to_screen is FALSE
de_attachSignal handler to run attach with specific args
remove_fromRemoves the object from the client.screen of all mobs in the list, and unregisters the needed signals, while also stopping processing if there's no more mobs in the screen timers mob list
update_maptextUpdates the maptext to show the current time left on the timer

Var Details

maptext_string

The actual displayed content of the maptext, use ${timer}, and it'll be replaced with formatted time left

timer_id

Timer ID that we're tracking, the time left of this is displayed as maptext

timer_mobs

The list of mobs in whose client.screens we are added to

Proc Details

apply_to

Adds the object to the client.screen of all mobs in the list, and registers the needed signals

attach

Adds the object to the client.screen of the mob, or removes it if add_to_screen is FALSE

de_attach

Signal handler to run attach with specific args

remove_from

Removes the object from the client.screen of all mobs in the list, and unregisters the needed signals, while also stopping processing if there's no more mobs in the screen timers mob list

update_maptext

Updates the maptext to show the current time left on the timer

\ No newline at end of file diff --git a/atom/movable/screen/wanted.html b/atom/movable/screen/wanted.html new file mode 100644 index 0000000000000..15ffbb2a00eb4 --- /dev/null +++ b/atom/movable/screen/wanted.html @@ -0,0 +1 @@ +/atom/movable/screen/wanted - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wanted

Vars

cops_arrivedBoolean, have the cops arrived? If so, the icon stops changing and remains the same.
levelWanted level, affects the hud icon. Level 0 is default, and the level 0 icon is blank, so in case of no families gamemode (and thus no wanted level), this HUD element will never appear.

Var Details

cops_arrived

Boolean, have the cops arrived? If so, the icon stops changing and remains the same.

level

Wanted level, affects the hud icon. Level 0 is default, and the level 0 icon is blank, so in case of no families gamemode (and thus no wanted level), this HUD element will never appear.

\ No newline at end of file diff --git a/atom/movable/visual/cryo_occupant.html b/atom/movable/visual/cryo_occupant.html new file mode 100644 index 0000000000000..e2707801247b1 --- /dev/null +++ b/atom/movable/visual/cryo_occupant.html @@ -0,0 +1 @@ +/atom/movable/visual/cryo_occupant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cryo_occupant

This is a visual helper that shows the occupant inside the cryo cell.

Vars

occupantThe current occupant being presented

Procs

on_set_occupantCOMSIG_MACHINERY_SET_OCCUPANT callback
on_set_onCOMSIG_CRYO_SET_ON callback

Var Details

occupant

The current occupant being presented

Proc Details

on_set_occupant

COMSIG_MACHINERY_SET_OCCUPANT callback

on_set_on

COMSIG_CRYO_SET_ON callback

\ No newline at end of file diff --git a/client.html b/client.html new file mode 100644 index 0000000000000..b62423439384c --- /dev/null +++ b/client.html @@ -0,0 +1,178 @@ +/client - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

client

Client datum

+

A datum that is created whenever a user joins a BYOND world, one will exist for every active connected +player

+

when they first connect, this client object is created and [/client/New] is called

+

When they disconnect, this client object is deleted and [/client/Del] is called

+

All client topic calls go through [/client/Topic] first, so a lot of our specialised +topic handling starts here

Vars

account_ageAge of byond account in days
account_join_dateDate of byond account creation in ISO 8601 format
admin_music_volumeAdmin music volume, from 0 to 1.
adminhelptimeridClient var used for returning the ahelp verb
avgpingAverage ping of the client
ban_cacheUsed to cache this client's bans to save on DB queries
ban_cache_startIf we are currently building this client's ban cache, this var stores the timeofday we started at
char_render_holdersShould only be a key-value list of north/south/east/west = atom/movable/screen.
click_interceptNeeds to implement InterceptClickOn(user,params,atom) proc
click_intercept_timeTime when the click was intercepted
clicklimiterUsed for limiting the rate of clicks sends by the client to avoid abuse
client_keysend_amountAmount of keydowns in the last keysend checking interval
combo_hud_enabledWhether or not this client has the combo HUD enabled
completed_asset_jobsList of all completed blocking send jobs awaiting acknowledgement by send_asset
connection_realtimeworld.realtime they connected
connection_timeworld.time they connected
connection_timeofdayworld.timeofday they connected
creditslazy list of all credit object bound to this client
crew_manifest_delayrate limiting for the crew manifest
current_ambient_soundWhich ambient sound this client is currently being provided.
current_ticketClient var used for tracking the ticket the (usually) not-admin client is dealing with
do_parallax_animationsDo we want to do parallax animations at all? +Exists to prevent laptop fires
dont_animate_parallaxworld.time of when we can state animate()ing parallax again
externalreplyamountInternal counter for clients sending external (IRC/Discord) relay messages via ahelp to prevent spamming. Set to a number every time an admin reply is sent, decremented for every client send.
fully_createdIf this client has been fully initialized or not
holderContains admin info. Null if client is not an admin.
hotkeysWhether or not this client has standard hotkeys enabled
intended_directionThe direction we WANT to move, based off our keybinds +Will be udpated to be the actual direction later on
intervieweeIf the client is currently under the restrictions of the interview system
ip_intelUsed for ip intel checking to identify evaders, disabled because of issues with traffic
key_combos_heldA buffer for combinations such of modifiers + keys (ex: CtrlD, AltE, ShiftT). Format: "key" -> "combo" (ex: "D" -> "CtrlD")
keys_heldA buffer of currently held keys.
keysend_trippedWhen set to true, user will be autokicked if they trip the keysends in a second limit again
last_asset_jobLast asset send job id.
last_messageContains the last message sent by this client - used to protect against copy-paste spamming.
last_message_countcontins a number of how many times a message identical to last_message was sent.
lastpingLast ping of the client
loot_panelLoot panel for the client
mentor_datumActs the same way holder does towards admin: it holds the mentor datum. if set, the guy's a mentor.
mouseParamsUsed in MouseDrag to preserve the original mouse click parameters
mouse_down_iconused to make a special mouse cursor, this one for mouse up icon
mouse_location_refUsed in MouseDrag to preserve the last mouse-entered location. Weakref
mouse_object_refUsed in MouseDrag to preserve the last mouse-entered object. Weakref
mouse_override_iconused to override the mouse cursor so it doesnt get reset
mouse_up_iconused to make a special mouse cursor, this one for mouse up icon
move_delayMove delay of controlled mob, any keypresses inside this period will persist until the next proper move
movement_keyscustom movement keys for this client
movement_lockedAre we locking our movement input?
movingmobthis is the last recorded client eye by SSparallax/fire()
navigation_imagesImages of the path created by navigate().
next_keysend_resetWorld tick time where client_keysend_amount will reset
next_keysend_trip_resetWorld tick time where keysend_tripped will reset back to false
next_move_dir_addOn next move, add this dir to the move that would otherwise be done
next_move_dir_subOn next move, subtract this dir from the move that would otherwise be done
panel_tabslist of all tabs
parallax_animate_timersTimers for the area directional animation, one for each layer
parallax_layers_maxHow many parallax layers to show our client
parallax_movedirDirection our current area wants to move parallax
parent_typeThis line makes clients parent type be a datum
player_ageUsed to determine how old the account is - in days.
player_detailsthese persist between logins/logouts during the same round.
player_join_dateDate that this account was first seen in the server
prefsPlayer preferences datum for the client
recent_examinesA lazy list of atoms we've examined in the last RECENT_EXAMINE_MAX_WINDOW (default 2) seconds, so that we will call /atom/proc/examine_more instead of /atom/proc/examine on them when examining
related_accounts_cidSo admins know why it isn't working - Used to determine what other accounts previously logged in from this computer id
related_accounts_ipSo admins know why it isn't working - Used to determine what other accounts previously logged in from this ip
say_slowmodeTracks say() usage for ic/dchat while slowmode is enabled
screen_mapsAssoc list with all the active maps - when a screen obj is added to +a map, it's put in here as well.
script!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!HEY LISTEN!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
seen_messagesMessages currently seen by this client
selected_targetAutoclick list of two elements, first being the clicked thing, second being the parameters.
show_verb_panelhides the byond verb panel as we use our own custom version
spell_tabslist of tabs containing spells and abilities
stat_panelStat panel window declaration
stat_tabour current tab
tgui_cache_reloadedglobal
tgui_sayAssigned say modal of the client
tgui_windowsglobal
tooltipsdatum that controls the displaying and hiding of tooltips
topiclimiterUsed for limiting the rate of topic sends by the client to avoid abuse
total_count_resetNext tick to reset the total message counter
total_message_countHow many messages sent in the last 10 seconds
typing_indicatorsDoes this client have typing indicators enabled?
urgent_ahelp_cooldownThe last urgent ahelp that this player sent
view_sizedatum wrapper for client view
visual_delayThe visual delay to use for the current client.Move(), mostly used for making a client based move look like it came from some other slower source

Procs

MoveMove a client in a direction
Process_GrabChecks to see if you're being grabbed and if so attempts to break it
Process_IncorpmoveAllows mobs to ignore density and phase through objects
_Topicdumb workaround because byond doesnt seem to recognize the Topic() typepath for /datum/proc/Topic() from the client Topic, +so we cant queue it without this
adjust_heartGives someone hearted status for OOC, from behavior commendations
adminGreetSends a message to adminchat when anyone with a holder logs in or logs out. +Is dependent on admin preferences and configuration settings, which means that this proc can fire without sending a message.
admin_followAttempts to make the client orbit the given object, for administrative purposes. +If they are not an observer, will try to aghost them.
adminpm_filter_textAccepts a message and an ambiguious recipient (some sort of client representative, or [EXTERNAL_PM_USER]) +Returns the filtered message if it passes all checks, or null if the send fails
asset_cache_confirm_arrivalProcess asset cache client topic calls for "asset_cache_confirm_arrival=[INT]"
asset_cache_preload_dataProcess asset cache client topic calls for "asset_cache_preload_data=[HTML+JSON_STRING]"
asset_cache_update_jsonUpdates the client side stored json file used to keep track of what assets the client has between restarts/reconnects.
attempt_auto_fit_viewportAttempt to automatically fit the viewport, assuming the user wants it
body_chestHidden verb to target the chest, bound to 5
body_eyesHidden verb to target the eyes, bound to 7
body_groinHidden verb to target the groin, bound to 2
body_headHidden verb to target the head, unbound by default.
body_l_armHidden verb to target the left arm, bound to 6
body_l_legHidden verb to target the left leg, bound to 3
body_mouthHidden verb to target the mouth, bound to 9
body_r_armHidden verb to target the right arm, bound to 4
body_r_legHidden verb to target the right leg, bound to 1
body_toggle_headHidden verbs to set desired body target zone
browse_queue_flushBlocks until all currently sending browse and browse_rsc assets have been sent. +Due to byond limitations, this proc will sleep for 1 client round trip even if the client has no pending asset sends. +This proc will return an untrue value if it had to return before confirming the send, such as timeout or the client going away.
check_drag_proximityHandles treating drags as clicks if they're within some conditions +Does some other stuff adjacent to trying to figure out what the user actually "wanted" to click +Returns TRUE if it caused a click, FALSE otherwise
check_has_body_selectValidate the client's mob has a valid zone selected
check_populationThis proc is designed to be lightweight and straight forward, clients are finicky and joining all the time. +FALSE = Deny connection +True = Confirm connection
clear_all_mapsClears all the maps of registered screen objects.
clear_mapClears the map of registered screen objects.
clear_screenClears the client's screen, aside from ones that opt out
close_popupCloses a popup.
cmd_ahelp_replyReplys to some existing ahelp, reply to whom, which can be a client or ckey
cmd_mentor_pmTakes input from cmd_mentor_pm_context, cmd_Mentor_pm_panel or /client/Topic and sends them a PM. +Fetching a message if needed. src is the sender and target is the target client
create_popupCreates a popup window with a basic map element in it, without any +further initialization.
drop_itemIf your mob is concious, drop the item in the active hand
fix_tgui_paneltgui panel / chat troubleshooting verb
fix_title_screenReloads the titlescreen if it is bugged for someone.
generate_adminwho_stringProc that generates the applicable string to dispatch to the client for adminwho.
getStealthKeyReturns this client's stealthed ckey
get_award_statusRedirect proc that makes it easier to get the status of an achievement. Achievement type is the typepath to the award.
get_remaining_daysChecks if this client has met the days requirement passed in, or if +they are exempt from it. +Returns the number of days left, or 0.
get_vore_prefsReturns null if the client is not interested in vore at all and therefore has no opinions
give_awardRedirect proc that makes it easier to call the unlock achievement proc. Achievement type is the typepath to the award, user is the mob getting the award, and value is an optional variable used for leaderboard value increments
handle_admin_logoutHandles any "fluff" or supplementary procedures related to an admin logout event. Should not have anything critically related cleaning up an admin's logout.
handle_popup_closeWhen the popup closes in any way (player or proc call) it calls this.
init_verbscompiles a full list of verbs and sends it to the browser
initialize_menusInitializes dropdown menus on client
is_drag_clickableDoes the logic for checking if a drag counts as a click or not +Returns true if it does, false otherwise
is_mentorReturns whether or not the user is qualified as a mentor.
is_veteranReturns whether the client should receive the gamer cloak
notify_adminpm_messageNotifies all admins about the existance of an admin pm, then logs the pm +message_target here can be either [EXTERNAL_PM_USER], indicating that this message is intended for some external chat channel +or a /client, in which case we send in the standard form +log_message is the raw message to send, it will be filtered and treated to ensure we do not break any text handling
on_stat_panel_messageHandles incoming messages from the stat-panel TGUI.
only_oneGives everyone kilts, berets, claymores, and pinpointers, with the objective to hijack the emergency shuttle. +Uses highlander controller to do so!
open_escape_menuOpens the escape menu. +Verb, hardcoded to Escape, set in the client skin.
open_particle_editoropens the particle editor UI for the in_atom object for this client
reformat_narrationReformats a narration message. First provides a prompt asking if the user wants to reformat their message, then allows them to pick from a list of spans to use.
register_map_objRegisters screen obj with the client, which makes it visible on the +assigned map, and becomes a part of the assigned map's lifecycle.
request_adminpm_messageRequests an admin pm message to send +message_target here can be either [EXTERNAL_PM_USER], indicating that this message is intended for some external chat channel +or a /client, which we will then store info about to ensure logout -> logins are protected as expected +Accepts an optional existing message, which will be used in place of asking the recipient assuming all other conditions are met +Returns the message to send or null if no message is found +Sleeps
reset_held_keysManually clears any held keys, in case due to lag or other undefined behavior a key gets stuck.
send_resourcesSend resources to the client. +Sends both game resources and browser assets.
sends_adminpm_messageSends a pm message via the tickets system +message_target here can be either [EXTERNAL_PM_USER], indicating that this message is intended for some external chat channel +or a /client, in which case we send in the standard form +send_message is the raw message to send, it will be filtered and treated to ensure we do not break any text handling +Returns FALSE if the send failed, TRUE otherwise
setup_popupCreate the popup, and get it ready for generic use by giving +it a background.
start_thinkingSets the mob as "thinking" - with indicator and the TRAIT_THINKING_IN_CHARACTER trait
start_typingHandles the user typing. After a brief period of inactivity, +signals the client mob to revert to the "thinking" icon.
stop_thinkingRemoves typing/thinking indicators and flags the mob as not thinking
stop_typingCallback to remove the typing indicator after a brief period of inactivity. +If the user was typing IC, the thinking indicator is shown.
tgui_say_create_open_commandCreates a JSON encoded message to open TGUI say modals properly.
toggle_walk_runVerb to toggle the walk or run status
uicloseverb
update_exp_listTallies up the exp for the playtime tracking and adds it to the global update list.
update_special_keybindsUpdates the keybinds for special keys

Var Details

account_age

Age of byond account in days

account_join_date

Date of byond account creation in ISO 8601 format

admin_music_volume

Admin music volume, from 0 to 1.

adminhelptimerid

Client var used for returning the ahelp verb

avgping

Average ping of the client

ban_cache

Used to cache this client's bans to save on DB queries

ban_cache_start

If we are currently building this client's ban cache, this var stores the timeofday we started at

char_render_holders

Should only be a key-value list of north/south/east/west = atom/movable/screen.

click_intercept

Needs to implement InterceptClickOn(user,params,atom) proc

click_intercept_time

Time when the click was intercepted

clicklimiter

Used for limiting the rate of clicks sends by the client to avoid abuse

client_keysend_amount

Amount of keydowns in the last keysend checking interval

combo_hud_enabled

Whether or not this client has the combo HUD enabled

completed_asset_jobs

List of all completed blocking send jobs awaiting acknowledgement by send_asset

connection_realtime

world.realtime they connected

connection_time

world.time they connected

connection_timeofday

world.timeofday they connected

credits

lazy list of all credit object bound to this client

crew_manifest_delay

rate limiting for the crew manifest

current_ambient_sound

Which ambient sound this client is currently being provided.

current_ticket

Client var used for tracking the ticket the (usually) not-admin client is dealing with

do_parallax_animations

Do we want to do parallax animations at all? +Exists to prevent laptop fires

dont_animate_parallax

world.time of when we can state animate()ing parallax again

externalreplyamount

Internal counter for clients sending external (IRC/Discord) relay messages via ahelp to prevent spamming. Set to a number every time an admin reply is sent, decremented for every client send.

fully_created

If this client has been fully initialized or not

holder

Contains admin info. Null if client is not an admin.

hotkeys

Whether or not this client has standard hotkeys enabled

intended_direction

The direction we WANT to move, based off our keybinds +Will be udpated to be the actual direction later on

interviewee

If the client is currently under the restrictions of the interview system

ip_intel

Used for ip intel checking to identify evaders, disabled because of issues with traffic

key_combos_held

A buffer for combinations such of modifiers + keys (ex: CtrlD, AltE, ShiftT). Format: "key" -> "combo" (ex: "D" -> "CtrlD")

keys_held

A buffer of currently held keys.

keysend_tripped

When set to true, user will be autokicked if they trip the keysends in a second limit again

last_asset_job

Last asset send job id.

last_message

Contains the last message sent by this client - used to protect against copy-paste spamming.

last_message_count

contins a number of how many times a message identical to last_message was sent.

lastping

Last ping of the client

loot_panel

Loot panel for the client

mentor_datum

Acts the same way holder does towards admin: it holds the mentor datum. if set, the guy's a mentor.

mouseParams

Used in MouseDrag to preserve the original mouse click parameters

mouse_down_icon

used to make a special mouse cursor, this one for mouse up icon

mouse_location_ref

Used in MouseDrag to preserve the last mouse-entered location. Weakref

mouse_object_ref

Used in MouseDrag to preserve the last mouse-entered object. Weakref

mouse_override_icon

used to override the mouse cursor so it doesnt get reset

mouse_up_icon

used to make a special mouse cursor, this one for mouse up icon

move_delay

Move delay of controlled mob, any keypresses inside this period will persist until the next proper move

movement_keys

custom movement keys for this client

movement_locked

Are we locking our movement input?

movingmob

this is the last recorded client eye by SSparallax/fire()

navigation_images

Images of the path created by navigate().

next_keysend_reset

World tick time where client_keysend_amount will reset

next_keysend_trip_reset

World tick time where keysend_tripped will reset back to false

next_move_dir_add

On next move, add this dir to the move that would otherwise be done

next_move_dir_sub

On next move, subtract this dir from the move that would otherwise be done

panel_tabs

list of all tabs

parallax_animate_timers

Timers for the area directional animation, one for each layer

parallax_layers_max

How many parallax layers to show our client

parallax_movedir

Direction our current area wants to move parallax

parent_type

This line makes clients parent type be a datum

+

By default in byond if you define a proc on datums, that proc will exist on nearly every single type +from icons to images to atoms to mobs to objs to turfs to areas, it won't however, appear on client

+

instead by default they act like their own independent type so while you can do isdatum(icon) +and have it return true, you can't do isdatum(client), it will always return false.

+

This makes writing oo code hard, when you have to consider this extra special case

+

This line prevents that, and has never appeared to cause any ill effects, while saving us an extra +pain to think about

+

This line is widely considered black fucking magic, and the fact it works is a puzzle to everyone +involved, including the current engine developer, lummox

+

If you are a future developer and the engine source is now available and you can explain why this +is the way it is, please do update this comment

player_age

Used to determine how old the account is - in days.

player_details

these persist between logins/logouts during the same round.

player_join_date

Date that this account was first seen in the server

prefs

Player preferences datum for the client

recent_examines

A lazy list of atoms we've examined in the last RECENT_EXAMINE_MAX_WINDOW (default 2) seconds, so that we will call /atom/proc/examine_more instead of /atom/proc/examine on them when examining

related_accounts_cid

So admins know why it isn't working - Used to determine what other accounts previously logged in from this computer id

related_accounts_ip

So admins know why it isn't working - Used to determine what other accounts previously logged in from this ip

say_slowmode

Tracks say() usage for ic/dchat while slowmode is enabled

screen_maps

Assoc list with all the active maps - when a screen obj is added to +a map, it's put in here as well.

+

Format: list( = list(/atom/movable/screen))

script

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!HEY LISTEN!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

seen_messages

Messages currently seen by this client

selected_target

Autoclick list of two elements, first being the clicked thing, second being the parameters.

show_verb_panel

hides the byond verb panel as we use our own custom version

spell_tabs

list of tabs containing spells and abilities

stat_panel

Stat panel window declaration

stat_tab

our current tab

tgui_cache_reloaded

global

+

TRUE if cache was reloaded by tgui dev server at least once.

tgui_say

Assigned say modal of the client

tgui_windows

global

+

Tracks open windows for a user.

tooltips

datum that controls the displaying and hiding of tooltips

topiclimiter

Used for limiting the rate of topic sends by the client to avoid abuse

total_count_reset

Next tick to reset the total message counter

total_message_count

How many messages sent in the last 10 seconds

typing_indicators

Does this client have typing indicators enabled?

urgent_ahelp_cooldown

The last urgent ahelp that this player sent

view_size

datum wrapper for client view

visual_delay

The visual delay to use for the current client.Move(), mostly used for making a client based move look like it came from some other slower source

Proc Details

Move

Move a client in a direction

+

Huge proc, has a lot of functionality

+

Mostly it will despatch to the mob that you are the owner of to actually move +in the physical realm

+

Things that stop you moving as a mob:

+ +

Things that stop you moving as a mob living (why even have OO if you're just shoving it all +in the parent proc with istype checks right?):

+ +

At this point, if the mob is is confused, then a random direction and target turf will be calculated for you to travel to instead

+

Now the parent call is made (to the byond builtin move), which moves you

+

Some final move delay calculations (doubling if you moved diagonally successfully)

+

if mob throwing is set I believe it's unset at this point via a call to finalize

+

Finally if you're pulling an object and it's dense, you are turned 180 after the move +(if you ask me, this should be at the top of the move so you don't dance around)

Process_Grab

Checks to see if you're being grabbed and if so attempts to break it

+

Called by client/Move()

Process_Incorpmove

Allows mobs to ignore density and phase through objects

+

Called by client/Move()

+

The behaviour depends on the incorporeal_move value of the mob

+ +

You'll note this is another mob living level proc living at the client level

_Topic

dumb workaround because byond doesnt seem to recognize the Topic() typepath for /datum/proc/Topic() from the client Topic, +so we cant queue it without this

adjust_heart

Gives someone hearted status for OOC, from behavior commendations

adminGreet

Sends a message to adminchat when anyone with a holder logs in or logs out. +Is dependent on admin preferences and configuration settings, which means that this proc can fire without sending a message.

admin_follow

Attempts to make the client orbit the given object, for administrative purposes. +If they are not an observer, will try to aghost them.

adminpm_filter_text

Accepts a message and an ambiguious recipient (some sort of client representative, or [EXTERNAL_PM_USER]) +Returns the filtered message if it passes all checks, or null if the send fails

asset_cache_confirm_arrival

Process asset cache client topic calls for "asset_cache_confirm_arrival=[INT]"

asset_cache_preload_data

Process asset cache client topic calls for "asset_cache_preload_data=[HTML+JSON_STRING]"

asset_cache_update_json

Updates the client side stored json file used to keep track of what assets the client has between restarts/reconnects.

attempt_auto_fit_viewport

Attempt to automatically fit the viewport, assuming the user wants it

body_chest

Hidden verb to target the chest, bound to 5

body_eyes

Hidden verb to target the eyes, bound to 7

body_groin

Hidden verb to target the groin, bound to 2

body_head

Hidden verb to target the head, unbound by default.

body_l_arm

Hidden verb to target the left arm, bound to 6

body_l_leg

Hidden verb to target the left leg, bound to 3

body_mouth

Hidden verb to target the mouth, bound to 9

body_r_arm

Hidden verb to target the right arm, bound to 4

body_r_leg

Hidden verb to target the right leg, bound to 1

body_toggle_head

Hidden verbs to set desired body target zone

+

Uses numpad keys 1-9 +Hidden verb to cycle through head zone with repeated presses, head - eyes - mouth. Bound to 8

browse_queue_flush

Blocks until all currently sending browse and browse_rsc assets have been sent. +Due to byond limitations, this proc will sleep for 1 client round trip even if the client has no pending asset sends. +This proc will return an untrue value if it had to return before confirming the send, such as timeout or the client going away.

check_drag_proximity

Handles treating drags as clicks if they're within some conditions +Does some other stuff adjacent to trying to figure out what the user actually "wanted" to click +Returns TRUE if it caused a click, FALSE otherwise

check_has_body_select

Validate the client's mob has a valid zone selected

check_population

This proc is designed to be lightweight and straight forward, clients are finicky and joining all the time. +FALSE = Deny connection +True = Confirm connection

clear_all_maps

Clears all the maps of registered screen objects.

clear_map

Clears the map of registered screen objects.

clear_screen

Clears the client's screen, aside from ones that opt out

close_popup

Closes a popup.

cmd_ahelp_reply

Replys to some existing ahelp, reply to whom, which can be a client or ckey

cmd_mentor_pm

Takes input from cmd_mentor_pm_context, cmd_Mentor_pm_panel or /client/Topic and sends them a PM. +Fetching a message if needed. src is the sender and target is the target client

+

Arguments:

+

create_popup

Creates a popup window with a basic map element in it, without any +further initialization.

+

Ratio is how many pixels by how many pixels (keep it simple).

+

Returns a map name.

drop_item

If your mob is concious, drop the item in the active hand

+

This is a hidden verb, likely for binding with winset for hotkeys

fix_tgui_panel

tgui panel / chat troubleshooting verb

fix_title_screen

Reloads the titlescreen if it is bugged for someone.

generate_adminwho_string

Proc that generates the applicable string to dispatch to the client for adminwho.

getStealthKey

Returns this client's stealthed ckey

get_award_status

Redirect proc that makes it easier to get the status of an achievement. Achievement type is the typepath to the award.

get_remaining_days

Checks if this client has met the days requirement passed in, or if +they are exempt from it. +Returns the number of days left, or 0.

get_vore_prefs

Returns null if the client is not interested in vore at all and therefore has no opinions

give_award

Redirect proc that makes it easier to call the unlock achievement proc. Achievement type is the typepath to the award, user is the mob getting the award, and value is an optional variable used for leaderboard value increments

handle_admin_logout

Handles any "fluff" or supplementary procedures related to an admin logout event. Should not have anything critically related cleaning up an admin's logout.

handle_popup_close

When the popup closes in any way (player or proc call) it calls this.

init_verbs

compiles a full list of verbs and sends it to the browser

initialize_menus

Initializes dropdown menus on client

is_drag_clickable

Does the logic for checking if a drag counts as a click or not +Returns true if it does, false otherwise

is_mentor

Returns whether or not the user is qualified as a mentor.

+

Arguments:

+

is_veteran

Returns whether the client should receive the gamer cloak

notify_adminpm_message

Notifies all admins about the existance of an admin pm, then logs the pm +message_target here can be either [EXTERNAL_PM_USER], indicating that this message is intended for some external chat channel +or a /client, in which case we send in the standard form +log_message is the raw message to send, it will be filtered and treated to ensure we do not break any text handling

on_stat_panel_message

Handles incoming messages from the stat-panel TGUI.

only_one

Gives everyone kilts, berets, claymores, and pinpointers, with the objective to hijack the emergency shuttle. +Uses highlander controller to do so!

+

Arguments:

+

open_escape_menu

Opens the escape menu. +Verb, hardcoded to Escape, set in the client skin.

open_particle_editor

opens the particle editor UI for the in_atom object for this client

reformat_narration

Reformats a narration message. First provides a prompt asking if the user wants to reformat their message, then allows them to pick from a list of spans to use.

register_map_obj

Registers screen obj with the client, which makes it visible on the +assigned map, and becomes a part of the assigned map's lifecycle.

request_adminpm_message

Requests an admin pm message to send +message_target here can be either [EXTERNAL_PM_USER], indicating that this message is intended for some external chat channel +or a /client, which we will then store info about to ensure logout -> logins are protected as expected +Accepts an optional existing message, which will be used in place of asking the recipient assuming all other conditions are met +Returns the message to send or null if no message is found +Sleeps

reset_held_keys

Manually clears any held keys, in case due to lag or other undefined behavior a key gets stuck.

send_resources

Send resources to the client. +Sends both game resources and browser assets.

sends_adminpm_message

Sends a pm message via the tickets system +message_target here can be either [EXTERNAL_PM_USER], indicating that this message is intended for some external chat channel +or a /client, in which case we send in the standard form +send_message is the raw message to send, it will be filtered and treated to ensure we do not break any text handling +Returns FALSE if the send failed, TRUE otherwise

setup_popup

Create the popup, and get it ready for generic use by giving +it a background.

+

Width and height are multiplied by 64 by default.

start_thinking

Sets the mob as "thinking" - with indicator and the TRAIT_THINKING_IN_CHARACTER trait

start_typing

Handles the user typing. After a brief period of inactivity, +signals the client mob to revert to the "thinking" icon.

stop_thinking

Removes typing/thinking indicators and flags the mob as not thinking

stop_typing

Callback to remove the typing indicator after a brief period of inactivity. +If the user was typing IC, the thinking indicator is shown.

tgui_say_create_open_command

Creates a JSON encoded message to open TGUI say modals properly.

+

Arguments: +channel - The channel to open the modal in. +Returns: +string - A JSON encoded message to open the modal.

toggle_walk_run

Verb to toggle the walk or run status

uiclose

verb

+

Called by UIs when they are closed. +Must be a verb so winset() can call it.

+

required uiref ref The UI that was closed.

update_exp_list

Tallies up the exp for the playtime tracking and adds it to the global update list.

+

For a client mob of /mob/dead/observer, it adds EXP_TYPE_GHOST.

+

For a client mob of /mob/living, it grabs the exp list from a mob proc call. +Being dead but still in your body will tally time towards your /mob/living roles instead of ghost roles. +If /mob/living returns an empty list, uses "Unknown" instead.

+

For anything else, it doesn't update anything.

+

Arguments:

+

update_special_keybinds

Updates the keybinds for special keys

+

Handles adding macros for the keys that need it +And adding movement keys to the clients movement_keys list +At the time of writing this, communication(OOC, Say, IC, ASAY) require macros +Arguments:

+
\ No newline at end of file diff --git a/code/__DEFINES.html b/code/__DEFINES.html new file mode 100644 index 0000000000000..1429460221830 --- /dev/null +++ b/code/__DEFINES.html @@ -0,0 +1,12 @@ +code/__DEFINES/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__DEFINES/README.md

This folder is full of #define statements. They are similar to constants, +but must come before any code that references them, and they do not take up +memory the way constants do.

+

The values in this folder are NOT options. They are not for hosts to play with. +Some of the values are arbitrary and only need to be different from similar constants; +for example, the genetic mutation numbers in genetics.dm mean nothing, but MUST be distinct.

+

It is wise not to touch them unless you understand what they do, where they're used, +and most importantly, +how to undo your changes if you screw it up.

+
    +
  • Sayu
  • +
\ No newline at end of file diff --git a/code/__DEFINES/DNA.html b/code/__DEFINES/DNA.html new file mode 100644 index 0000000000000..5accdf96e88d2 --- /dev/null +++ b/code/__DEFINES/DNA.html @@ -0,0 +1 @@ +code/__DEFINES/DNA.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/DNA.dm

MUT_NORMALA mutation that can be activated and deactivated by completing a sequence
MUT_EXTRAA mutation that is in the mutations tab, and can be given and taken away through though the DNA console. Has a 0 before its name in the mutation section of the dna console
MUT_OTHERCannot be interacted with by players through normal means. I.E. wizards mutate
DNA_FEATURE_BLOCKSTotal amount of DNA blocks, must be equal to the highest DNA block number
ORGAN_SLOT_EXTERNAL_TAILOrgan slot external
ORGAN_SLOT_XENO_ACIDGLANDXenomorph organ slots
STANDARD_ORGAN_DECAYdesigned to fail organs when left to decay for ~15 minutes
SPECIES_PERK_ICONA key that designates UI icon displayed on the perk.
SPECIES_PERK_NAMEA key that designates the name of the perk.
SPECIES_PERK_DESCA key that designates the description of the perk.
SPECIES_PERK_TYPEA key that designates what type of perk it is (see below).
GOLEM_FOOD_IRONGolem food defines

Define Details

DNA_FEATURE_BLOCKS

Total amount of DNA blocks, must be equal to the highest DNA block number

GOLEM_FOOD_IRON

Golem food defines

MUT_EXTRA

A mutation that is in the mutations tab, and can be given and taken away through though the DNA console. Has a 0 before its name in the mutation section of the dna console

MUT_NORMAL

A mutation that can be activated and deactivated by completing a sequence

MUT_OTHER

Cannot be interacted with by players through normal means. I.E. wizards mutate

ORGAN_SLOT_EXTERNAL_TAIL

Organ slot external

ORGAN_SLOT_XENO_ACIDGLAND

Xenomorph organ slots

SPECIES_PERK_DESC

A key that designates the description of the perk.

SPECIES_PERK_ICON

A key that designates UI icon displayed on the perk.

SPECIES_PERK_NAME

A key that designates the name of the perk.

SPECIES_PERK_TYPE

A key that designates what type of perk it is (see below).

STANDARD_ORGAN_DECAY

designed to fail organs when left to decay for ~15 minutes

\ No newline at end of file diff --git a/code/__DEFINES/MC.html b/code/__DEFINES/MC.html new file mode 100644 index 0000000000000..3e740687d956b --- /dev/null +++ b/code/__DEFINES/MC.html @@ -0,0 +1,34 @@ +code/__DEFINES/MC.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/MC.dm

MC_AVG_OVER_TIMEcreates a running average of "things elapsed" per time period when you need to count via a smaller time period. +eg you want an average number of things happening per second but you measure the event every tick (50 milliseconds). +make sure both time intervals are in the same units. doesn't work if current_duration > total_duration or if total_duration == 0
MC_RUNNINGReturns true if the MC is initialized and running. +Optional argument init_stage controls what stage the mc must have initialized to count as initialized. Defaults to INITSTAGE_MAX if not specified.

SubSystem flags (Please design any new flags so that the default is off, to make adding flags to subsystems easier)

SS_NO_INITsubsystem does not initialize.
SS_NO_FIREsubsystem does not fire. +(like can_fire = 0, but keeps it from getting added to the processing subsystems list) +(Requires a MC restart to change)
SS_BACKGROUNDSubsystem only runs on spare cpu (after all non-background subsystems have ran that tick) +SS_BACKGROUND has its own priority bracket, this overrides SS_TICKER's priority bump
SS_TICKERTreat wait as a tick count, not DS, run every wait ticks. +(also forces it to run first in the tick (unless SS_BACKGROUND)) +(We don't want to be choked out by other subsystems queuing into us) +(implies all runlevels because of how it works) +This is designed for basically anything that works as a mini-mc (like SStimer)
SS_KEEP_TIMINGkeep the subsystem's timing on point by firing early if it fired late last fire because of lag +ie: if a 20ds subsystem fires say 5 ds late due to lag or what not, its next fire would be in 15ds, not 20ds.
SS_POST_FIRE_TIMINGCalculate its next fire after its fired. +(IE: if a 5ds wait SS takes 2ds to run, its next fire should be 5ds away, not 3ds like it normally would be) +This flag overrides SS_KEEP_TIMING
SS_OK_TO_FAIL_INITIf this subsystem doesn't initialize, it should not report as a hard error in CI. +This should be used for subsystems that are flaky for complicated reasons, such as +the Lua subsystem, which relies on auxtools, which is unstable. +It should not be used simply to silence CI.

SUBSYSTEM STATES

+
SS_IDLEain't doing shit.
SS_QUEUEDqueued to run
SS_RUNNINGactively running
SS_PAUSEDpaused by mc_tick_check
SS_SLEEPINGfire() slept.
SS_PAUSINGin the middle of pausing
INITSTAGE_EARLYEarly init stuff that doesn't need to wait for mapload
INITSTAGE_MAINMain init stage
INITSTAGE_MAXHighest initstage.

Define Details

INITSTAGE_EARLY

Early init stuff that doesn't need to wait for mapload

INITSTAGE_MAIN

Main init stage

INITSTAGE_MAX

Highest initstage.

MC_AVG_OVER_TIME

creates a running average of "things elapsed" per time period when you need to count via a smaller time period. +eg you want an average number of things happening per second but you measure the event every tick (50 milliseconds). +make sure both time intervals are in the same units. doesn't work if current_duration > total_duration or if total_duration == 0

MC_RUNNING

Returns true if the MC is initialized and running. +Optional argument init_stage controls what stage the mc must have initialized to count as initialized. Defaults to INITSTAGE_MAX if not specified.

SS_BACKGROUND

Subsystem only runs on spare cpu (after all non-background subsystems have ran that tick) +SS_BACKGROUND has its own priority bracket, this overrides SS_TICKER's priority bump

SS_IDLE

ain't doing shit.

SS_KEEP_TIMING

keep the subsystem's timing on point by firing early if it fired late last fire because of lag +ie: if a 20ds subsystem fires say 5 ds late due to lag or what not, its next fire would be in 15ds, not 20ds.

SS_NO_FIRE

subsystem does not fire. +(like can_fire = 0, but keeps it from getting added to the processing subsystems list) +(Requires a MC restart to change)

SS_NO_INIT

subsystem does not initialize.

SS_OK_TO_FAIL_INIT

If this subsystem doesn't initialize, it should not report as a hard error in CI. +This should be used for subsystems that are flaky for complicated reasons, such as +the Lua subsystem, which relies on auxtools, which is unstable. +It should not be used simply to silence CI.

SS_PAUSED

paused by mc_tick_check

SS_PAUSING

in the middle of pausing

SS_POST_FIRE_TIMING

Calculate its next fire after its fired. +(IE: if a 5ds wait SS takes 2ds to run, its next fire should be 5ds away, not 3ds like it normally would be) +This flag overrides SS_KEEP_TIMING

SS_QUEUED

queued to run

SS_RUNNING

actively running

SS_SLEEPING

fire() slept.

SS_TICKER

Treat wait as a tick count, not DS, run every wait ticks. +(also forces it to run first in the tick (unless SS_BACKGROUND)) +(We don't want to be choked out by other subsystems queuing into us) +(implies all runlevels because of how it works) +This is designed for basically anything that works as a mini-mc (like SStimer)

\ No newline at end of file diff --git a/code/__DEFINES/__globals.html b/code/__DEFINES/__globals.html new file mode 100644 index 0000000000000..cdefa5e60d3c2 --- /dev/null +++ b/code/__DEFINES/__globals.html @@ -0,0 +1 @@ +code/__DEFINES/__globals.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/__globals.dm

GLOBAL_MANAGEDCreates a global initializer with a given InitValue expression, do not use
GLOBAL_UNMANAGEDCreates an empty global initializer, do not use
GLOBAL_PROTECTPrevents a given global from being VV'd
GLOBAL_REAL_VARStandard BYOND global, seriously do not use without an earthshakingly good reason
GLOBAL_REALStandard typed BYOND global, seriously do not use without an earthshakingly good reason
GLOBAL_RAWDefines a global var on the controller, do not use
GLOBAL_VAR_INITCreate an untyped global with an initializer expression
GLOBAL_VAR_CONSTCreate a global const var, do not use
GLOBAL_LIST_INITCreate a list global with an initializer expression
GLOBAL_LIST_EMPTYCreate a list global that is initialized as an empty list
GLOBAL_LIST_INIT_TYPEDCreate a typed list global with an initializer expression
GLOBAL_LIST_EMPTY_TYPEDCreate a typed list global that is initialized as an empty list
GLOBAL_DATUM_INITCreate a typed global with an initializer expression
GLOBAL_VARCreate an untyped null global
GLOBAL_LISTCreate a null global list
GLOBAL_DATUMCreate a typed null global

Define Details

GLOBAL_DATUM

Create a typed null global

GLOBAL_DATUM_INIT

Create a typed global with an initializer expression

GLOBAL_LIST

Create a null global list

GLOBAL_LIST_EMPTY

Create a list global that is initialized as an empty list

GLOBAL_LIST_EMPTY_TYPED

Create a typed list global that is initialized as an empty list

GLOBAL_LIST_INIT

Create a list global with an initializer expression

GLOBAL_LIST_INIT_TYPED

Create a typed list global with an initializer expression

GLOBAL_MANAGED

Creates a global initializer with a given InitValue expression, do not use

GLOBAL_PROTECT

Prevents a given global from being VV'd

GLOBAL_RAW

Defines a global var on the controller, do not use

GLOBAL_REAL

Standard typed BYOND global, seriously do not use without an earthshakingly good reason

GLOBAL_REAL_VAR

Standard BYOND global, seriously do not use without an earthshakingly good reason

GLOBAL_UNMANAGED

Creates an empty global initializer, do not use

GLOBAL_VAR

Create an untyped null global

GLOBAL_VAR_CONST

Create a global const var, do not use

GLOBAL_VAR_INIT

Create an untyped global with an initializer expression

\ No newline at end of file diff --git a/code/__DEFINES/_click.html b/code/__DEFINES/_click.html new file mode 100644 index 0000000000000..5cb2335a64e07 --- /dev/null +++ b/code/__DEFINES/_click.html @@ -0,0 +1,3 @@ +code/__DEFINES/_click.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/_click.dm

BUTTONMouse button that was just clicked/released +if(modifiersBUTTON == LEFT_CLICK)
MOUSE_OPACITY_TRANSPARENTObjects will ignore being clicked on regardless of their transparency (used in parallax, lighting effects, holograms, lasers, etc.)
MOUSE_OPACITY_ICONObjects will be clicked on if it is the topmost object and the pixel isn't transparent at the position of the mouse (default behavior for 99.99% of game objects)
MOUSE_OPACITY_OPAQUEObjects will be always be clicked on regardless of pixel transparency or other objects at that location (used in space vines, megafauna, storage containers)

Define Details

BUTTON

Mouse button that was just clicked/released +if(modifiersBUTTON == LEFT_CLICK)

MOUSE_OPACITY_ICON

Objects will be clicked on if it is the topmost object and the pixel isn't transparent at the position of the mouse (default behavior for 99.99% of game objects)

MOUSE_OPACITY_OPAQUE

Objects will be always be clicked on regardless of pixel transparency or other objects at that location (used in space vines, megafauna, storage containers)

MOUSE_OPACITY_TRANSPARENT

Objects will ignore being clicked on regardless of their transparency (used in parallax, lighting effects, holograms, lasers, etc.)

\ No newline at end of file diff --git a/code/__DEFINES/_flags.html b/code/__DEFINES/_flags.html new file mode 100644 index 0000000000000..9ee30f6b2634f --- /dev/null +++ b/code/__DEFINES/_flags.html @@ -0,0 +1,9 @@ +code/__DEFINES/_flags.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/_flags.dm

ALL_CARDINALSAll the cardinal direction bitflags.
DF_STATIC_OBJECTPlaced on datums that have a static, constant reference. Primarily only used for turfs.
ATMOS_IS_PROCESSING_1Is this object currently processing in the atmos object list?
ON_BORDER_1item has priority to check when entering or leaving
NO_SCREENTIPS_1Whether or not this atom shows screentips when hovered over
PREVENT_CLICK_UNDER_1Prevent clicking things below it on the same turf eg. doors/ fulltile windows
HOLOGRAM_1specifies that this atom is a hologram that isn't real
INITIALIZED_1Whether /atom/Initialize() has already run for the object
ADMIN_SPAWNED_1was this spawned by an admin? used for stat tracking stuff.
PREVENT_CONTENTS_EXPLOSION_1should not get harmed if this gets caught by an explosion?
ALLOW_DARK_PAINTS_1Should this object be paintable with very dark colors?
UNPAINTABLE_1Should this object be unpaintable?
IS_ONTOP_1Is this atom on top of another atom, and as such has click priority?
SUPERMATTER_IGNORES_1Is this atom immune to being dusted by the supermatter?
CAN_BE_DIRTY_1If a turf can be made dirty at roundstart. This is also used in areas.
HTML_USE_INITAL_ICON_1Should we use the initial icon for display? Mostly used by overlay only objects
IS_PLAYER_COLORABLE_1Can players recolor this in-game via vendors (and maybe more if support is added)?
HAS_CONTEXTUAL_SCREENTIPS_1Whether or not this atom has contextual screentips when hovered OVER
HAS_DISASSOCIATED_STORAGE_1Whether or not this atom is storing contents for a disassociated storage object
DECAL_INIT_UPDATE_EXPERIENCED_1If this atom has experienced a decal element "init finished" sourced appearance update +We use this to ensure stacked decals don't double up appearance updates for no reason +Flag as an optimization, don't make this a trait without profiling +Yes I know this is a stupid flag, no you can't take him from me
IGNORE_TURF_PIXEL_OFFSET_1This atom always returns its turf in get_turf_pixel instead of the turf from its offsets
UPDATE_NAMEUpdate the atom's name
UPDATE_DESCUpdate the atom's desc
UPDATE_ICON_STATEUpdate the atom's icon state
UPDATE_OVERLAYSUpdate the atom's overlays
UPDATE_GREYSCALEUpdate the atom's greyscaling
UPDATE_SMOOTHINGUpdate the atom's smoothing. (More accurately, queue it for an update)
UPDATE_ICONUpdate the atom's icon
RICOCHET_SHINYIf the thing can reflect light (lasers/energy)
RICOCHET_HARDIf the thing can reflect matter (bullets/bomb shrapnel)
NOJAUNTIf a turf can't be jaunted through.
UNUSED_RESERVATION_TURFIf a turf is an unused reservation turf awaiting assignment
RESERVATION_TURFIf a turf is a reserved turf
NO_LAVA_GENBlocks lava rivers being generated on the turf.
NO_RUINSBlocks ruins spawning on the turf.
NO_RUSTBlocks this turf from being rusted
IS_SOLIDIs this turf is "solid". Space and lava aren't for instance
NO_CLEARINGThis turf will never be cleared away by other objects on Initialize.
TURF_BLOCKS_POPULATE_TERRAIN_FLORAFEATURESThis atom is a pseudo-floor that blocks map generation's checkPlaceAtom() from placing things like trees ontop of it.
VALID_TERRITORY/////////////Area flags\\\\\\\ +If it's a valid territory for cult summoning or the CRAB-17 phone to spawn
BLOBS_ALLOWEDIf blobs can spawn there and if it counts towards their score.
CAVES_ALLOWEDIf mining tunnel generation is allowed in this area
FLORA_ALLOWEDIf flora are allowed to spawn in this area randomly through tunnel generation
MOB_SPAWN_ALLOWEDIf mobs can be spawned by natural random generation
MEGAFAUNA_SPAWN_ALLOWEDIf megafauna can be spawned by natural random generation
NOTELEPORTAre you forbidden from teleporting to the area? (centcom, mobs, wizard, hand teleporter)
HIDDEN_AREAHides area from player Teleport function.
UNIQUE_AREAIf false, loading multiple maps with this area type will create multiple instances.
BLOCK_SUICIDEIf people are allowed to suicide in it. Mostly for OOC stuff like minigames
XENOBIOLOGY_COMPATIBLEIf set, this area will be innately traversable by Xenobiology camera consoles.
CULT_PERMITTEDIf blood cultists can draw runes or build structures on this AREA.
PERSISTENT_ENGRAVINGSIf engravings are persistent in this area
NO_DEATH_MESSAGEMobs that die in this area don't produce a dead chat message
EVENT_PROTECTEDThis area should have extra shielding from certain event effects
QUIET_LOGSThis Area Doesn't have Flood or Bomb Admin Messages, but will still log
VIRTUAL_SAFE_AREAThis area does not allow virtual entities to enter.
BINARY_JAMMINGThis area does not allow the Binary channel
NO_BOHThis area prevents Bag of Holding rifts from being opened.
UNLIMITED_FISHINGThis area prevents fishing from removing unique/limited loot from sources that're also used outside of it.
PASSTABLEAllows you to pass over tables.
PASSGLASSAllows you to pass over glass(this generally includes anything see-through that's glass-adjacent, ie. windows, windoors, airlocks with glass, etc.)
PASSGRILLEAllows you to pass over grilles.
PASSBLOBAllows you to pass over blob tiles.
PASSMOBAllows you to pass over mobs.
PASSCLOSEDTURFAllows you to pass over closed turfs, ie. walls.
LETPASSTHROWLet thrown things past us. ONLY MEANINGFUL ON pass_flags_self!
PASSMACHINEAllows you to pass over machinery, ie. vending machines, computers, protolathes, etc.
PASSSTRUCTUREAllows you to pass over structures, ie. racks, tables(if you don't already have PASSTABLE), etc.
PASSFLAPSAllows you to pass over plastic flaps, often found at cargo or MULE dropoffs.
PASSDOORSAllows you to pass over airlocks and mineral doors.
PASSVEHICLEAllows you to pass over vehicles, ie. mecha, secways, the pimpin' ride, etc.
PASSITEMAllows you to pass over dense items.
LETPASSCLICKSDo not intercept click attempts during Adjacent() checks. See [turf/proc/ClickCross]. ONLY MEANINGFUL ON pass_flags_self!
PASSWINDOWAllows you to pass over windows and window-adjacent stuff, like windows and windoors. Does not include airlocks with glass in them.
PHASINGWhen moving, will Cross() everything, but won't stop or Bump() anything.
UPSIDE_DOWNThe mob is walking on the ceiling. Or is generally just, upside down.
MOVETYPES_NOT_TOUCHING_GROUNDCombination flag for movetypes which, for all intents and purposes, mean the mob is not touching the ground
FIRE_PROOF100% immune to fire damage (but not necessarily to lava or heat)
FLAMMABLEatom is flammable and can have the burning component
ON_FIREcurrently burning
UNACIDABLEacid can't even appear on it, let alone melt it.
ACID_PROOFacid stuck on it doesn't melt it.
INDESTRUCTIBLEdoesn't take damage
FREEZE_PROOFcan't be frozen
SHUTTLE_CRUSH_PROOFcan't be shuttle crushed.
ZAP_LOW_POWER_GENZaps with this flag will generate less power through tesla coils
EMP_PROTECT_SELFEMP will protect itself.
EMP_PROTECT_CONTENTSEMP will protect the contents from also being EMPed.
EMP_PROTECT_WIRESEMP will protect the wires.
EMP_PROTECT_ALLProtects against all EMP types.
MOBILITY_MOVEcan move
MOBILITY_STANDcan, and is, standing up
MOBILITY_PICKUPcan pickup items
MOBILITY_USEcan hold and use items
MOBILITY_UIcan use interfaces like machinery
MOBILITY_STORAGEcan use storage item
MOBILITY_PULLcan pull things
MOBILITY_RESTcan rest
MOBILITY_LIEDOWNcan lie down
MAX_BITFLAG_DIGITS33554431 (2^24 - 1) is the maximum value our bitflags can reach.
IGNORE_USER_LOC_CHANGECan do the action even if mob moves location
IGNORE_TARGET_LOC_CHANGECan do the action even if the target moves location
IGNORE_HELD_ITEMCan do the action even if the item is no longer being held
IGNORE_INCAPACITATEDCan do the action even if the mob is incapacitated (ex. handcuffed)
IGNORE_SLOWDOWNSUsed to prevent important slowdowns from being abused by drugs like kronkaine
SPACEVINE_HEAT_RESISTANTIs the spacevine / flower bud heat resistant
SPACEVINE_COLD_RESISTANTIs the spacevine / flower bud cold resistant
EMOTE_AUDIBLEIs the emote audible
EMOTE_VISIBLEIs the emote visible
EMOTE_IMPORTANTIs it an emote that should be shown regardless of blindness/deafness
EMOTE_RUNECHATEmote only prints to runechat, not to the chat window

Define Details

ACID_PROOF

acid stuck on it doesn't melt it.

ADMIN_SPAWNED_1

was this spawned by an admin? used for stat tracking stuff.

ALLOW_DARK_PAINTS_1

Should this object be paintable with very dark colors?

ALL_CARDINALS

All the cardinal direction bitflags.

ATMOS_IS_PROCESSING_1

Is this object currently processing in the atmos object list?

BINARY_JAMMING

This area does not allow the Binary channel

BLOBS_ALLOWED

If blobs can spawn there and if it counts towards their score.

BLOCK_SUICIDE

If people are allowed to suicide in it. Mostly for OOC stuff like minigames

CAN_BE_DIRTY_1

If a turf can be made dirty at roundstart. This is also used in areas.

CAVES_ALLOWED

If mining tunnel generation is allowed in this area

CULT_PERMITTED

If blood cultists can draw runes or build structures on this AREA.

DECAL_INIT_UPDATE_EXPERIENCED_1

If this atom has experienced a decal element "init finished" sourced appearance update +We use this to ensure stacked decals don't double up appearance updates for no reason +Flag as an optimization, don't make this a trait without profiling +Yes I know this is a stupid flag, no you can't take him from me

DF_STATIC_OBJECT

Placed on datums that have a static, constant reference. Primarily only used for turfs.

EMOTE_AUDIBLE

Is the emote audible

EMOTE_IMPORTANT

Is it an emote that should be shown regardless of blindness/deafness

EMOTE_RUNECHAT

Emote only prints to runechat, not to the chat window

EMOTE_VISIBLE

Is the emote visible

EMP_PROTECT_ALL

Protects against all EMP types.

EMP_PROTECT_CONTENTS

EMP will protect the contents from also being EMPed.

EMP_PROTECT_SELF

EMP will protect itself.

EMP_PROTECT_WIRES

EMP will protect the wires.

EVENT_PROTECTED

This area should have extra shielding from certain event effects

FIRE_PROOF

100% immune to fire damage (but not necessarily to lava or heat)

FLAMMABLE

atom is flammable and can have the burning component

FLORA_ALLOWED

If flora are allowed to spawn in this area randomly through tunnel generation

FREEZE_PROOF

can't be frozen

HAS_CONTEXTUAL_SCREENTIPS_1

Whether or not this atom has contextual screentips when hovered OVER

HAS_DISASSOCIATED_STORAGE_1

Whether or not this atom is storing contents for a disassociated storage object

HIDDEN_AREA

Hides area from player Teleport function.

HOLOGRAM_1

specifies that this atom is a hologram that isn't real

HTML_USE_INITAL_ICON_1

Should we use the initial icon for display? Mostly used by overlay only objects

IGNORE_HELD_ITEM

Can do the action even if the item is no longer being held

IGNORE_INCAPACITATED

Can do the action even if the mob is incapacitated (ex. handcuffed)

IGNORE_SLOWDOWNS

Used to prevent important slowdowns from being abused by drugs like kronkaine

IGNORE_TARGET_LOC_CHANGE

Can do the action even if the target moves location

IGNORE_TURF_PIXEL_OFFSET_1

This atom always returns its turf in get_turf_pixel instead of the turf from its offsets

IGNORE_USER_LOC_CHANGE

Can do the action even if mob moves location

INDESTRUCTIBLE

doesn't take damage

INITIALIZED_1

Whether /atom/Initialize() has already run for the object

IS_ONTOP_1

Is this atom on top of another atom, and as such has click priority?

IS_PLAYER_COLORABLE_1

Can players recolor this in-game via vendors (and maybe more if support is added)?

IS_SOLID

Is this turf is "solid". Space and lava aren't for instance

LETPASSCLICKS

Do not intercept click attempts during Adjacent() checks. See [turf/proc/ClickCross]. ONLY MEANINGFUL ON pass_flags_self!

LETPASSTHROW

Let thrown things past us. ONLY MEANINGFUL ON pass_flags_self!

MAX_BITFLAG_DIGITS

33554431 (2^24 - 1) is the maximum value our bitflags can reach.

MEGAFAUNA_SPAWN_ALLOWED

If megafauna can be spawned by natural random generation

MOBILITY_LIEDOWN

can lie down

MOBILITY_MOVE

can move

MOBILITY_PICKUP

can pickup items

MOBILITY_PULL

can pull things

MOBILITY_REST

can rest

MOBILITY_STAND

can, and is, standing up

MOBILITY_STORAGE

can use storage item

MOBILITY_UI

can use interfaces like machinery

MOBILITY_USE

can hold and use items

MOB_SPAWN_ALLOWED

If mobs can be spawned by natural random generation

MOVETYPES_NOT_TOUCHING_GROUND

Combination flag for movetypes which, for all intents and purposes, mean the mob is not touching the ground

NOJAUNT

If a turf can't be jaunted through.

NOTELEPORT

Are you forbidden from teleporting to the area? (centcom, mobs, wizard, hand teleporter)

NO_BOH

This area prevents Bag of Holding rifts from being opened.

NO_CLEARING

This turf will never be cleared away by other objects on Initialize.

NO_DEATH_MESSAGE

Mobs that die in this area don't produce a dead chat message

NO_LAVA_GEN

Blocks lava rivers being generated on the turf.

NO_RUINS

Blocks ruins spawning on the turf.

NO_RUST

Blocks this turf from being rusted

NO_SCREENTIPS_1

Whether or not this atom shows screentips when hovered over

ON_BORDER_1

item has priority to check when entering or leaving

ON_FIRE

currently burning

PASSBLOB

Allows you to pass over blob tiles.

PASSCLOSEDTURF

Allows you to pass over closed turfs, ie. walls.

PASSDOORS

Allows you to pass over airlocks and mineral doors.

PASSFLAPS

Allows you to pass over plastic flaps, often found at cargo or MULE dropoffs.

PASSGLASS

Allows you to pass over glass(this generally includes anything see-through that's glass-adjacent, ie. windows, windoors, airlocks with glass, etc.)

PASSGRILLE

Allows you to pass over grilles.

PASSITEM

Allows you to pass over dense items.

PASSMACHINE

Allows you to pass over machinery, ie. vending machines, computers, protolathes, etc.

PASSMOB

Allows you to pass over mobs.

PASSSTRUCTURE

Allows you to pass over structures, ie. racks, tables(if you don't already have PASSTABLE), etc.

PASSTABLE

Allows you to pass over tables.

PASSVEHICLE

Allows you to pass over vehicles, ie. mecha, secways, the pimpin' ride, etc.

PASSWINDOW

Allows you to pass over windows and window-adjacent stuff, like windows and windoors. Does not include airlocks with glass in them.

PERSISTENT_ENGRAVINGS

If engravings are persistent in this area

PHASING

When moving, will Cross() everything, but won't stop or Bump() anything.

PREVENT_CLICK_UNDER_1

Prevent clicking things below it on the same turf eg. doors/ fulltile windows

PREVENT_CONTENTS_EXPLOSION_1

should not get harmed if this gets caught by an explosion?

QUIET_LOGS

This Area Doesn't have Flood or Bomb Admin Messages, but will still log

RESERVATION_TURF

If a turf is a reserved turf

RICOCHET_HARD

If the thing can reflect matter (bullets/bomb shrapnel)

RICOCHET_SHINY

If the thing can reflect light (lasers/energy)

SHUTTLE_CRUSH_PROOF

can't be shuttle crushed.

SPACEVINE_COLD_RESISTANT

Is the spacevine / flower bud cold resistant

SPACEVINE_HEAT_RESISTANT

Is the spacevine / flower bud heat resistant

SUPERMATTER_IGNORES_1

Is this atom immune to being dusted by the supermatter?

TURF_BLOCKS_POPULATE_TERRAIN_FLORAFEATURES

This atom is a pseudo-floor that blocks map generation's checkPlaceAtom() from placing things like trees ontop of it.

UNACIDABLE

acid can't even appear on it, let alone melt it.

UNIQUE_AREA

If false, loading multiple maps with this area type will create multiple instances.

UNLIMITED_FISHING

This area prevents fishing from removing unique/limited loot from sources that're also used outside of it.

UNPAINTABLE_1

Should this object be unpaintable?

UNUSED_RESERVATION_TURF

If a turf is an unused reservation turf awaiting assignment

UPDATE_DESC

Update the atom's desc

UPDATE_GREYSCALE

Update the atom's greyscaling

UPDATE_ICON

Update the atom's icon

UPDATE_ICON_STATE

Update the atom's icon state

UPDATE_NAME

Update the atom's name

UPDATE_OVERLAYS

Update the atom's overlays

UPDATE_SMOOTHING

Update the atom's smoothing. (More accurately, queue it for an update)

UPSIDE_DOWN

The mob is walking on the ceiling. Or is generally just, upside down.

VALID_TERRITORY

/////////////Area flags\\\\\\\ +If it's a valid territory for cult summoning or the CRAB-17 phone to spawn

VIRTUAL_SAFE_AREA

This area does not allow virtual entities to enter.

XENOBIOLOGY_COMPATIBLE

If set, this area will be innately traversable by Xenobiology camera consoles.

ZAP_LOW_POWER_GEN

Zaps with this flag will generate less power through tesla coils

\ No newline at end of file diff --git a/code/__DEFINES/_helpers.html b/code/__DEFINES/_helpers.html new file mode 100644 index 0000000000000..af6dcfd309f35 --- /dev/null +++ b/code/__DEFINES/_helpers.html @@ -0,0 +1,13 @@ +code/__DEFINES/_helpers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/_helpers.dm

ICON_SIZE_ALLThe game's world.icon_size.
+Ideally divisible by 16.
+Ideally a number, but it +can be a string ("32x32"), so more exotic coders +will be sad if you use this in math.
ICON_SIZE_XThe X/Width dimension of ICON_SIZE. This will more than likely be the bigger axis.
ICON_SIZE_YThe Y/Height dimension of ICON_SIZE. This will more than likely be the smaller axis.
STRINGIFYStringifies whatever you put into it.
subtypesofsubtypesof(), typesof() without the parent path
UNTILUntil a condition is true, sleep
SLEEP_NOT_DELSleep if we haven't been deleted +Otherwise, return
text_refTakes a datum as input, returns its ref string
EMPTY_BLOCK_GUARDA null statement to guard against EmptyBlock lint without necessitating the use of pass() +Used to avoid proc-call overhead. But use sparingly. Probably pointless in most places.

Define Details

EMPTY_BLOCK_GUARD

A null statement to guard against EmptyBlock lint without necessitating the use of pass() +Used to avoid proc-call overhead. But use sparingly. Probably pointless in most places.

ICON_SIZE_ALL

The game's world.icon_size.
+Ideally divisible by 16.
+Ideally a number, but it +can be a string ("32x32"), so more exotic coders +will be sad if you use this in math.

ICON_SIZE_X

The X/Width dimension of ICON_SIZE. This will more than likely be the bigger axis.

ICON_SIZE_Y

The Y/Height dimension of ICON_SIZE. This will more than likely be the smaller axis.

SLEEP_NOT_DEL

Sleep if we haven't been deleted +Otherwise, return

STRINGIFY

Stringifies whatever you put into it.

UNTIL

Until a condition is true, sleep

subtypesof

subtypesof(), typesof() without the parent path

text_ref

Takes a datum as input, returns its ref string

\ No newline at end of file diff --git a/code/__DEFINES/_protect.html b/code/__DEFINES/_protect.html new file mode 100644 index 0000000000000..47afedae07626 --- /dev/null +++ b/code/__DEFINES/_protect.html @@ -0,0 +1 @@ +code/__DEFINES/_protect.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/_protect.dm

GENERAL_PROTECT_DATUMProtects a datum from being VV'd or spawned through admin manipulation

Define Details

GENERAL_PROTECT_DATUM

Protects a datum from being VV'd or spawned through admin manipulation

\ No newline at end of file diff --git a/code/__DEFINES/_tick.html b/code/__DEFINES/_tick.html new file mode 100644 index 0000000000000..c2ed98e78c728 --- /dev/null +++ b/code/__DEFINES/_tick.html @@ -0,0 +1 @@ +code/__DEFINES/_tick.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/_tick.dm

MAPTICK_MC_MIN_RESERVEPercentage of tick to leave for master controller to run
TICK_BYOND_RESERVETick limit while running normally
TICK_LIMIT_TO_RUNTick limit used to resume things in stoplag
TICK_LIMIT_MCTick limit for MC while running
TICK_USAGEfor general usage of tick_usage
TICK_USAGE_REALto be used where the result isn't checked
TICK_CHECKReturns true if tick_usage is above the limit
CHECK_TICKruns stoplag if tick_usage is above the limit
RUNNING_BEFORE_MASTERChecks if a sleeping proc is running before or after the master controller
VERB_SHOULD_YIELDReturns true if a verb ought to yield to the MC (IE: queue up to be processed by a subsystem)
TICK_CHECK_HIGH_PRIORITYReturns true if tick usage is above 95, for high priority usage
CHECK_TICK_HIGH_PRIORITYruns stoplag if tick_usage is above 95, for high priority usage

Define Details

CHECK_TICK

runs stoplag if tick_usage is above the limit

CHECK_TICK_HIGH_PRIORITY

runs stoplag if tick_usage is above 95, for high priority usage

MAPTICK_MC_MIN_RESERVE

Percentage of tick to leave for master controller to run

RUNNING_BEFORE_MASTER

Checks if a sleeping proc is running before or after the master controller

TICK_BYOND_RESERVE

Tick limit while running normally

TICK_CHECK

Returns true if tick_usage is above the limit

TICK_CHECK_HIGH_PRIORITY

Returns true if tick usage is above 95, for high priority usage

TICK_LIMIT_MC

Tick limit for MC while running

TICK_LIMIT_TO_RUN

Tick limit used to resume things in stoplag

TICK_USAGE

for general usage of tick_usage

TICK_USAGE_REAL

to be used where the result isn't checked

VERB_SHOULD_YIELD

Returns true if a verb ought to yield to the MC (IE: queue up to be processed by a subsystem)

\ No newline at end of file diff --git a/code/__DEFINES/access.html b/code/__DEFINES/access.html new file mode 100644 index 0000000000000..d77cbb1b3076c --- /dev/null +++ b/code/__DEFINES/access.html @@ -0,0 +1,73 @@ +code/__DEFINES/access.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/access.dm

ACCESS_COMMANDCommand General Access, typically used for accessing the doors to the bridge, as well as being the general access that Tablet/Computer Programs check for "heads".
ACCESS_AI_UPLOADAccess to the AI Upload Room Doors as well as the AI satellite. Also used for controlling the machinery in the AI Upload (turrets, foam dispensers)
ACCESS_TELEPORTERAccess to the Teleporter Room, and some cargo crates.
ACCESS_EVAAccess to the EVA Storage Room, and some cargo crates.
ACCESS_RC_ANNOUNCEAccess to make an announcement through the Requests Console found in an office.
ACCESS_KEYCARD_AUTHAccess used for events (Red Alert, BSA, Emergency Maintenance) which require at least two people to swipe at the same time to authorize it
ACCESS_MINISATAccess for the "minisat", but is actually used for the small maintenance cubicle some AI satellites may have.
ACCESS_NETWORKAccess used to run the NTNet Tablet Application WireCarp, which allows you to diagnose and view NTNet logging.
ACCESS_GATEWAYAccess used to access the Gateway Room, which will further lead you to get to Away Missions.
ACCESS_ALL_PERSONAL_LOCKERSAccess used to override "personal control" on a personal locker, meaning you are able to open any of those lockers/wardrobes.
ACCESS_CHANGE_IDSAccess used for Access-Changing Programs, this one will unlock all options that can be ever given via that program.
ACCESS_CAPTAINAccess used for the Captain's personal quarters in mapping, as well as what allows one to order emergency shuttles.
ACCESS_HOPAccess used for the Head of Personnel's personal quarters in mapping, as well as the security console and other HoP-related things.
ACCESS_SECURITYSecurity's General Access. In mapping, grants access to spaces such as to the "meeting room" or firing range, as well as being the general access that Tablet/Computer Programs check for "heads". Also unlocks other types of security equipment.
ACCESS_BRIG_ENTRANCEAccess that ONLY grants access to the front doors of the Brig. Never use this more for anything than that, please.
ACCESS_BRIGAccess to brig cells, brig timers, permabrig, gulag, gulag teleporter, gulag shuttle, prisoner management console, and some security cargo crates.
ACCESS_ARMORYAccess to the armory, security incinerator (when present), and the execution/re-education chamber.
ACCESS_COURTAccess to the "secure" portion of the courtroom, like where the judge and everyone sits..
ACCESS_WEAPONSThe "Weapons Permit" Access, or the one that lets you walk past secbots without them charging at you as you hold your weaponry.
ACCESS_HOSAccess used for the Head of Security's personal quarters in mapping, as well as other HoS-related things.
ACCESS_DETECTIVEAccess for the detective to get into their office, the medical data console, and some other detective-related stuff.
ACCESS_ENGINEERINGEngineering General Access, grants access to the standard parts of engineering (as well as the Supermatter and related equipment).
ACCESS_ATMOSPHERICSAccess to Atmospherics Sections of the Engineering Department, as well as air alarms.
ACCESS_MAINT_TUNNELSAccess to all maintenance tunnels on the station. This overrides any "departmental maintenance" access, this has free roaming range everywhere.
ACCESS_ENGINE_EQUIPAccess to get into APCs, engineering equipment lockers, typically mapped in for key power rooms across the station, engineering vending machines, emitters, and some other stuff.
ACCESS_CONSTRUCTIONAccess to "construction" areas of the station. However, in mapping, it's used to get access to the front door and lathe room of the engineering department.
ACCESS_TECH_STORAGEAccess to the technical storage room (contains all the boards and other miscellaneous engineering gear).
ACCESS_TCOMMSAccess to the telecomms satellite, machinery, and tablets.
ACCESS_AUX_BASEAccess to the Auxiliary Base Room, as well as the ability over launching it.
ACCESS_EXTERNAL_AIRLOCKSAccess to all external "space facing" airlocks on the station. Used such that people don't easily "jump ship", or restict free ingress/egress to only a few points on the station.
ACCESS_CEAccess for the Chief Engineer's personal quarters in mapping, as well as some other CE-related things.
ACCESS_MEDICALGeneral access to Medbay, like the front doors, the treatment center, the medical records console, defibrillator mounts, and more.
ACCESS_MORGUEAccess to the Morgue.
ACCESS_MORGUE_SECUREAccess to the secure morgue area.
ACCESS_PHARMACYAccess to the Pharmacy, or the smaller room in medical with the multiple chem dispensers and pill pressers. The Chemist's main position.
ACCESS_SURGERYAccess to the surgery rooms.
ACCESS_PLUMBINGAllows access to the larger room for Chemistry plumbing machinery setups.
ACCESS_VIROLOGYAccess to the Virology portion of the medical department, as well as the virology crate.
ACCESS_PSYCHOLOGYAccess to the Psychologist's office.
ACCESS_CMOAccess for the Chief Medical Officer's personal quarters in mapping, as well as some other CMO-related things.
ACCESS_CARGOGeneral access for Cargo, allows for entry to Cargo Bay and Cargo's Office.
ACCESS_SHIPPINGAccess to the Shipping and Mailing Rooms on several maps.
ACCESS_MINERAL_STOREROOMAccess for a room where the ORM may be kept, or to release materials from the ORM.
ACCESS_MININGAccess to the "on-station" Mining Portion of the Cargo Department.
ACCESS_MINING_STATIONAccess to the "off-station" Mining Station, which contains gear dedicated for miners to do their job best, as well as seek shelter from the inhospitable elements.
ACCESS_VAULTAccess to the vault on the station, for accessing the station's budget, the nuke core, or the Ore Silo.
ACCESS_QMAccess for the Quartermaster's personal quarters in mapping, as well as some other QM-related things.
ACCESS_BIT_DENAccess for the bitrunning den
ACCESS_SCIENCEGeneral access for Science, allows for entry to the general hallways of Science, as well as the main lathe room.
ACCESS_RESEARCHAccess to the specialized research experimentation rooms within Science, as well as what gives access to lockers and access to TechWeb programs.
ACCESS_ORDNANCEAccess to the Ordnance Mixing Lab and the Ordnance Bomb Range.
ACCESS_ORDNANCE_STORAGEAccess to the Ordnance Storage Room, where all of the bomb-making gases are stored.
ACCESS_GENETICSAccess to the Genetics division of Science.
ACCESS_ROBOTICSAccess to the Robotics division of Science, as well as opening up silicon cyborgs and other simple robots.
ACCESS_XENOBIOLOGYAccess to the Xenobiology division of Science.
ACCESS_RDAccess for the Research Director's personal quarters in mapping, as well as some other RD-related things.
ACCESS_SERVICEGeneral access for Service, allows for entry to the Service Hallway.
ACCESS_THEATREAccess to the Theatre, as well as other vending machines related to the theatre. Sometimes also used as the "clown's" access in code.
ACCESS_CHAPEL_OFFICEAccess to the Chaplain's office.
ACCESS_CREMATORIUMAccess to the chapel's crematorium.
ACCESS_LIBRARYAccess to the curator's private rooms in the Library and the trophy display cases, as well as access both into and out of the Library via Maintenance.
ACCESS_BARAccess to the Bar, the Bar's Backroom, the bar sign, the bar robot portal, and the bar's vending machines. Some other bar-things too.
ACCESS_KITCHENAccess to the Kitchen, the Kitchen's Coldroom, the kitchen's vending machines, and the food robot portal. Some other chef-things too.
ACCESS_HYDROPONICSAccess to the Botany Division of the station and some other Botanist things.
ACCESS_JANITORAccess to the Janitor's room, and some tablet apps for control of the station's janitorial equipment.
ACCESS_LAWYERAccess to the Lawyer's office.
ACCESS_AWAY_GENERAL
ACCESS_MECH_MINING
ACCESS_CENT_GENERAL
ACCESS_CENT_SPECOPSSpecial Ops. Captain's display case, Marauder and Seraph mechs. +Remind me to separate to captain, centcom, and syndicate mech access later -SonofSpace
ACCESS_SYNDICATE
ACCESS_BLOODCULTBLOODCULT
ACCESS_HUNTERHUNTERS
ACCESS_INACCESSIBLE
ACCESS_ALERT_ADMINS
LOG_ID_ACCESS_CHANGELogging define for ID card access changes
ACCESS_FLAG_COMMON_NAMEDisplayed name for Common ID card accesses.
ACCESS_FLAG_COMMONBitflag for Common ID card accesses. See COMMON_ACCESS.
ACCESS_FLAG_COMMAND_NAMEDisplayed name for Command ID card accesses.
ACCESS_FLAG_COMMANDBitflag for Command ID card accesses. See COMMAND_ACCESS.
ACCESS_FLAG_PRV_COMMAND_NAMEDisplayed name for Private Command ID card accesses.
ACCESS_FLAG_PRV_COMMANDBitflag for Private Command ID card accesses. See PRIVATE_COMMAND_ACCESS.
ACCESS_FLAG_CAPTAIN_NAMEDisplayed name for Captain ID card accesses.
ACCESS_FLAG_CAPTAINBitflag for Captain ID card accesses. See CAPTAIN_ACCESS.
ACCESS_FLAG_CENTCOM_NAMEDisplayed name for Centcom ID card accesses.
ACCESS_FLAG_CENTCOMBitflag for Centcom ID card accesses. See CENTCOM_ACCESS.
ACCESS_FLAG_SYNDICATE_NAMEDisplayed name for Syndicate ID card accesses.
ACCESS_FLAG_SYNDICATEBitflag for Syndicate ID card accesses. See SYNDICATE_ACCESS.
ACCESS_FLAG_AWAY_NAMEDisplayed name for Offstation/Ruin/Away Mission ID card accesses.
ACCESS_FLAG_AWAYBitflag for Offstation/Ruin/Away Mission ID card accesses. See AWAY_ACCESS.
ACCESS_FLAG_SPECIAL_NAMEDisplayed name for Special accesses that ordinaryily shouldn't be on ID cards.
ACCESS_FLAG_SPECIALBitflag for Special accesses that ordinaryily shouldn't be on ID cards. See CULT_ACCESS.
WILDCARD_FLAG_ALLThis wildcraft flag accepts any access level.
WILDCARD_NAME_ALLName associated with the all wildcard bitflag.
WILDCARD_FLAG_COMMONAccess flags that can be applied to common wildcard slots.
WILDCARD_NAME_COMMONName associated with the common wildcard bitflag.
WILDCARD_FLAG_COMMANDAccess flags that can be applied to command wildcard slots.
WILDCARD_NAME_COMMANDName associated with the command wildcard bitflag.
WILDCARD_FLAG_PRV_COMMANDAccess flags that can be applied to private command wildcard slots.
WILDCARD_NAME_PRV_COMMANDName associated with the private command wildcard bitflag.
WILDCARD_FLAG_CAPTAINAccess flags that can be applied to captain wildcard slots.
WILDCARD_NAME_CAPTAINName associated with the captain wildcard bitflag.
WILDCARD_FLAG_CENTCOMAccess flags that can be applied to centcom wildcard slots.
WILDCARD_NAME_CENTCOMName associated with the centcom wildcard bitflag.
WILDCARD_FLAG_SYNDICATEAccess flags that can be applied to syndicate wildcard slots.
WILDCARD_NAME_SYNDICATEName associated with the syndicate wildcard bitflag.
WILDCARD_FLAG_AWAYAccess flags that can be applied to offstation wildcard slots.
WILDCARD_NAME_AWAYName associated with the offstation wildcard bitflag.
WILDCARD_FLAG_SPECIALAccess flags that can be applied to super special weird wildcard slots.
WILDCARD_NAME_SPECIALName associated with the super special weird wildcard bitflag.
WILDCARD_FLAG_FORCEDAccess flag that indicates a wildcard was forced onto an ID card.
WILDCARD_NAME_FORCEDName associated with the wildcard bitflag that covers wildcards that have been forced onto an ID card that could not accept them.
COMMON_ACCESSDepartmental/general/common area accesses. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_COMMON)
COMMAND_ACCESSCommand staff/secure accesses, think bridge/armoury, ai_upload, notably access to modify ID cards themselves. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_COMMAND)
PRIVATE_COMMAND_ACCESSPrivate head of staff offices, usually only granted to most cards by trimming. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_PRV_COMMAND)
CAPTAIN_ACCESSCaptains private rooms. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_CAPTAIN)
CENTCOM_ACCESSCentcom area stuff. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_CENTCOM)
SYNDICATE_ACCESSSyndicate areas off station. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_SYNDICATE)
AWAY_ACCESSAway missions/gateway/space ruins. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_AWAY)
CULT_ACCESSWeird internal Cult access that prevents non-cult from using their doors. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_SPECIAL)
REGION_ALL_GLOBALName for the Global region.
REGION_ACCESS_ALL_GLOBALUsed to seed the accesses_by_region list in SSid_access. A list of every single access in the game.
REGION_ALL_STATIONName for the Station All Access region.
REGION_ACCESS_ALL_STATIONUsed to seed the accesses_by_region list in SSid_access. A list of all station accesses.
REGION_GENERALName for the General region.
REGION_ACCESS_GENERALUsed to seed the accesses_by_region list in SSid_access. A list of general service accesses that are overseen by the HoP.
REGION_SECURITYName for the Security region.
REGION_ACCESS_SECURITYUsed to seed the accesses_by_region list in SSid_access. A list of all security regional accesses that are overseen by the HoS.
REGION_MEDBAYName for the Medbay region.
REGION_ACCESS_MEDBAYUsed to seed the accesses_by_region list in SSid_access. A list of all medbay regional accesses that are overseen by the CMO.
REGION_RESEARCHName for the Research region.
REGION_ACCESS_RESEARCHUsed to seed the accesses_by_region list in SSid_access. A list of all research regional accesses that are overseen by the RD.
REGION_ENGINEERINGName for the Engineering region.
REGION_ACCESS_ENGINEERINGUsed to seed the accesses_by_region list in SSid_access. A list of all engineering regional accesses that are overseen by the CE.
REGION_SUPPLYName for the Supply region.
REGION_ACCESS_SUPPLYUsed to seed the accesses_by_region list in SSid_access. A list of all cargo regional accesses that are overseen by the HoP.
REGION_COMMANDName for the Command region.
REGION_ACCESS_COMMANDUsed to seed the accesses_by_region list in SSid_access. A list of all command regional accesses that are overseen by the Captain.
REGION_CENTCOMName for the Centcom region.
REGION_ACCESS_CENTCOMUsed to seed the accesses_by_region list in SSid_access. A list of all CENTCOM_ACCESS regional accesses.
PDA_PAINTING_REGIONSA list of PDA paths that can be painted as well as the regional heads which should be able to paint them. +If a PDA is not in this list, it cannot be painted using the PDA & ID Painter. +If a PDA is in this list, it can always be painted with ACCESS_CHANGE_IDS. +Used to see pda_region in /datum/controller/subsystem/id_access/proc/setup_tgui_lists
REGION_AREA_STATIONAll regions that make up the station area. Helper define to quickly designate a region as part of the station or not. Access via SSid_access.station_regions.
TRY_ADD_ALLUsed in ID card access adding procs. Will try to add all accesses and utilises free wildcards, skipping over any accesses it can't add.
TRY_ADD_ALL_NO_WILDCARDUsed in ID card access adding procs. Will try to add all accesses and does not utilise wildcards, skipping anything requiring a wildcard.
FORCE_ADD_ALLUsed in ID card access adding procs. Will forcefully add all accesses.
ERROR_ON_FAILUsed in ID card access adding procs. Will stack trace on fail.

Define Details

ACCESS_AI_UPLOAD

Access to the AI Upload Room Doors as well as the AI satellite. Also used for controlling the machinery in the AI Upload (turrets, foam dispensers)

ACCESS_ALERT_ADMINS

ACCESS_ALL_PERSONAL_LOCKERS

Access used to override "personal control" on a personal locker, meaning you are able to open any of those lockers/wardrobes.

ACCESS_ARMORY

Access to the armory, security incinerator (when present), and the execution/re-education chamber.

ACCESS_ATMOSPHERICS

Access to Atmospherics Sections of the Engineering Department, as well as air alarms.

ACCESS_AUX_BASE

Access to the Auxiliary Base Room, as well as the ability over launching it.

ACCESS_AWAY_GENERAL

ACCESS_BAR

Access to the Bar, the Bar's Backroom, the bar sign, the bar robot portal, and the bar's vending machines. Some other bar-things too.

ACCESS_BIT_DEN

Access for the bitrunning den

ACCESS_BLOODCULT

BLOODCULT

ACCESS_BRIG

Access to brig cells, brig timers, permabrig, gulag, gulag teleporter, gulag shuttle, prisoner management console, and some security cargo crates.

ACCESS_BRIG_ENTRANCE

Access that ONLY grants access to the front doors of the Brig. Never use this more for anything than that, please.

ACCESS_CAPTAIN

Access used for the Captain's personal quarters in mapping, as well as what allows one to order emergency shuttles.

ACCESS_CARGO

General access for Cargo, allows for entry to Cargo Bay and Cargo's Office.

ACCESS_CE

Access for the Chief Engineer's personal quarters in mapping, as well as some other CE-related things.

ACCESS_CENT_GENERAL

ACCESS_CENT_SPECOPS

Special Ops. Captain's display case, Marauder and Seraph mechs. +Remind me to separate to captain, centcom, and syndicate mech access later -SonofSpace

ACCESS_CHANGE_IDS

Access used for Access-Changing Programs, this one will unlock all options that can be ever given via that program.

ACCESS_CHAPEL_OFFICE

Access to the Chaplain's office.

ACCESS_CMO

Access for the Chief Medical Officer's personal quarters in mapping, as well as some other CMO-related things.

ACCESS_COMMAND

Command General Access, typically used for accessing the doors to the bridge, as well as being the general access that Tablet/Computer Programs check for "heads".

ACCESS_CONSTRUCTION

Access to "construction" areas of the station. However, in mapping, it's used to get access to the front door and lathe room of the engineering department.

ACCESS_COURT

Access to the "secure" portion of the courtroom, like where the judge and everyone sits..

ACCESS_CREMATORIUM

Access to the chapel's crematorium.

ACCESS_DETECTIVE

Access for the detective to get into their office, the medical data console, and some other detective-related stuff.

ACCESS_ENGINEERING

Engineering General Access, grants access to the standard parts of engineering (as well as the Supermatter and related equipment).

ACCESS_ENGINE_EQUIP

Access to get into APCs, engineering equipment lockers, typically mapped in for key power rooms across the station, engineering vending machines, emitters, and some other stuff.

ACCESS_EVA

Access to the EVA Storage Room, and some cargo crates.

ACCESS_EXTERNAL_AIRLOCKS

Access to all external "space facing" airlocks on the station. Used such that people don't easily "jump ship", or restict free ingress/egress to only a few points on the station.

ACCESS_FLAG_AWAY

Bitflag for Offstation/Ruin/Away Mission ID card accesses. See AWAY_ACCESS.

ACCESS_FLAG_AWAY_NAME

Displayed name for Offstation/Ruin/Away Mission ID card accesses.

ACCESS_FLAG_CAPTAIN

Bitflag for Captain ID card accesses. See CAPTAIN_ACCESS.

ACCESS_FLAG_CAPTAIN_NAME

Displayed name for Captain ID card accesses.

ACCESS_FLAG_CENTCOM

Bitflag for Centcom ID card accesses. See CENTCOM_ACCESS.

ACCESS_FLAG_CENTCOM_NAME

Displayed name for Centcom ID card accesses.

ACCESS_FLAG_COMMAND

Bitflag for Command ID card accesses. See COMMAND_ACCESS.

ACCESS_FLAG_COMMAND_NAME

Displayed name for Command ID card accesses.

ACCESS_FLAG_COMMON

Bitflag for Common ID card accesses. See COMMON_ACCESS.

ACCESS_FLAG_COMMON_NAME

Displayed name for Common ID card accesses.

ACCESS_FLAG_PRV_COMMAND

Bitflag for Private Command ID card accesses. See PRIVATE_COMMAND_ACCESS.

ACCESS_FLAG_PRV_COMMAND_NAME

Displayed name for Private Command ID card accesses.

ACCESS_FLAG_SPECIAL

Bitflag for Special accesses that ordinaryily shouldn't be on ID cards. See CULT_ACCESS.

ACCESS_FLAG_SPECIAL_NAME

Displayed name for Special accesses that ordinaryily shouldn't be on ID cards.

ACCESS_FLAG_SYNDICATE

Bitflag for Syndicate ID card accesses. See SYNDICATE_ACCESS.

ACCESS_FLAG_SYNDICATE_NAME

Displayed name for Syndicate ID card accesses.

ACCESS_GATEWAY

Access used to access the Gateway Room, which will further lead you to get to Away Missions.

ACCESS_GENETICS

Access to the Genetics division of Science.

ACCESS_HOP

Access used for the Head of Personnel's personal quarters in mapping, as well as the security console and other HoP-related things.

ACCESS_HOS

Access used for the Head of Security's personal quarters in mapping, as well as other HoS-related things.

ACCESS_HUNTER

HUNTERS

ACCESS_HYDROPONICS

Access to the Botany Division of the station and some other Botanist things.

ACCESS_INACCESSIBLE

ACCESS_JANITOR

Access to the Janitor's room, and some tablet apps for control of the station's janitorial equipment.

ACCESS_KEYCARD_AUTH

Access used for events (Red Alert, BSA, Emergency Maintenance) which require at least two people to swipe at the same time to authorize it

ACCESS_KITCHEN

Access to the Kitchen, the Kitchen's Coldroom, the kitchen's vending machines, and the food robot portal. Some other chef-things too.

ACCESS_LAWYER

Access to the Lawyer's office.

ACCESS_LIBRARY

Access to the curator's private rooms in the Library and the trophy display cases, as well as access both into and out of the Library via Maintenance.

ACCESS_MAINT_TUNNELS

Access to all maintenance tunnels on the station. This overrides any "departmental maintenance" access, this has free roaming range everywhere.

ACCESS_MECH_MINING

ACCESS_MEDICAL

General access to Medbay, like the front doors, the treatment center, the medical records console, defibrillator mounts, and more.

ACCESS_MINERAL_STOREROOM

Access for a room where the ORM may be kept, or to release materials from the ORM.

ACCESS_MINING

Access to the "on-station" Mining Portion of the Cargo Department.

ACCESS_MINING_STATION

Access to the "off-station" Mining Station, which contains gear dedicated for miners to do their job best, as well as seek shelter from the inhospitable elements.

ACCESS_MINISAT

Access for the "minisat", but is actually used for the small maintenance cubicle some AI satellites may have.

ACCESS_MORGUE

Access to the Morgue.

ACCESS_MORGUE_SECURE

Access to the secure morgue area.

ACCESS_NETWORK

Access used to run the NTNet Tablet Application WireCarp, which allows you to diagnose and view NTNet logging.

ACCESS_ORDNANCE

Access to the Ordnance Mixing Lab and the Ordnance Bomb Range.

ACCESS_ORDNANCE_STORAGE

Access to the Ordnance Storage Room, where all of the bomb-making gases are stored.

ACCESS_PHARMACY

Access to the Pharmacy, or the smaller room in medical with the multiple chem dispensers and pill pressers. The Chemist's main position.

ACCESS_PLUMBING

Allows access to the larger room for Chemistry plumbing machinery setups.

ACCESS_PSYCHOLOGY

Access to the Psychologist's office.

ACCESS_QM

Access for the Quartermaster's personal quarters in mapping, as well as some other QM-related things.

ACCESS_RC_ANNOUNCE

Access to make an announcement through the Requests Console found in an office.

ACCESS_RD

Access for the Research Director's personal quarters in mapping, as well as some other RD-related things.

ACCESS_RESEARCH

Access to the specialized research experimentation rooms within Science, as well as what gives access to lockers and access to TechWeb programs.

ACCESS_ROBOTICS

Access to the Robotics division of Science, as well as opening up silicon cyborgs and other simple robots.

ACCESS_SCIENCE

General access for Science, allows for entry to the general hallways of Science, as well as the main lathe room.

ACCESS_SECURITY

Security's General Access. In mapping, grants access to spaces such as to the "meeting room" or firing range, as well as being the general access that Tablet/Computer Programs check for "heads". Also unlocks other types of security equipment.

ACCESS_SERVICE

General access for Service, allows for entry to the Service Hallway.

ACCESS_SHIPPING

Access to the Shipping and Mailing Rooms on several maps.

ACCESS_SURGERY

Access to the surgery rooms.

ACCESS_SYNDICATE

ACCESS_TCOMMS

Access to the telecomms satellite, machinery, and tablets.

ACCESS_TECH_STORAGE

Access to the technical storage room (contains all the boards and other miscellaneous engineering gear).

ACCESS_TELEPORTER

Access to the Teleporter Room, and some cargo crates.

ACCESS_THEATRE

Access to the Theatre, as well as other vending machines related to the theatre. Sometimes also used as the "clown's" access in code.

ACCESS_VAULT

Access to the vault on the station, for accessing the station's budget, the nuke core, or the Ore Silo.

ACCESS_VIROLOGY

Access to the Virology portion of the medical department, as well as the virology crate.

ACCESS_WEAPONS

The "Weapons Permit" Access, or the one that lets you walk past secbots without them charging at you as you hold your weaponry.

ACCESS_XENOBIOLOGY

Access to the Xenobiology division of Science.

AWAY_ACCESS

Away missions/gateway/space ruins. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_AWAY)

CAPTAIN_ACCESS

Captains private rooms. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_CAPTAIN)

CENTCOM_ACCESS

Centcom area stuff. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_CENTCOM)

COMMAND_ACCESS

Command staff/secure accesses, think bridge/armoury, ai_upload, notably access to modify ID cards themselves. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_COMMAND)

COMMON_ACCESS

Departmental/general/common area accesses. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_COMMON)

CULT_ACCESS

Weird internal Cult access that prevents non-cult from using their doors. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_SPECIAL)

ERROR_ON_FAIL

Used in ID card access adding procs. Will stack trace on fail.

FORCE_ADD_ALL

Used in ID card access adding procs. Will forcefully add all accesses.

LOG_ID_ACCESS_CHANGE

Logging define for ID card access changes

PDA_PAINTING_REGIONS

A list of PDA paths that can be painted as well as the regional heads which should be able to paint them. +If a PDA is not in this list, it cannot be painted using the PDA & ID Painter. +If a PDA is in this list, it can always be painted with ACCESS_CHANGE_IDS. +Used to see pda_region in /datum/controller/subsystem/id_access/proc/setup_tgui_lists

PRIVATE_COMMAND_ACCESS

Private head of staff offices, usually only granted to most cards by trimming. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_PRV_COMMAND)

REGION_ACCESS_ALL_GLOBAL

Used to seed the accesses_by_region list in SSid_access. A list of every single access in the game.

REGION_ACCESS_ALL_STATION

Used to seed the accesses_by_region list in SSid_access. A list of all station accesses.

REGION_ACCESS_CENTCOM

Used to seed the accesses_by_region list in SSid_access. A list of all CENTCOM_ACCESS regional accesses.

REGION_ACCESS_COMMAND

Used to seed the accesses_by_region list in SSid_access. A list of all command regional accesses that are overseen by the Captain.

REGION_ACCESS_ENGINEERING

Used to seed the accesses_by_region list in SSid_access. A list of all engineering regional accesses that are overseen by the CE.

REGION_ACCESS_GENERAL

Used to seed the accesses_by_region list in SSid_access. A list of general service accesses that are overseen by the HoP.

REGION_ACCESS_MEDBAY

Used to seed the accesses_by_region list in SSid_access. A list of all medbay regional accesses that are overseen by the CMO.

REGION_ACCESS_RESEARCH

Used to seed the accesses_by_region list in SSid_access. A list of all research regional accesses that are overseen by the RD.

REGION_ACCESS_SECURITY

Used to seed the accesses_by_region list in SSid_access. A list of all security regional accesses that are overseen by the HoS.

REGION_ACCESS_SUPPLY

Used to seed the accesses_by_region list in SSid_access. A list of all cargo regional accesses that are overseen by the HoP.

REGION_ALL_GLOBAL

Name for the Global region.

REGION_ALL_STATION

Name for the Station All Access region.

REGION_AREA_STATION

All regions that make up the station area. Helper define to quickly designate a region as part of the station or not. Access via SSid_access.station_regions.

REGION_CENTCOM

Name for the Centcom region.

REGION_COMMAND

Name for the Command region.

REGION_ENGINEERING

Name for the Engineering region.

REGION_GENERAL

Name for the General region.

REGION_MEDBAY

Name for the Medbay region.

REGION_RESEARCH

Name for the Research region.

REGION_SECURITY

Name for the Security region.

REGION_SUPPLY

Name for the Supply region.

SYNDICATE_ACCESS

Syndicate areas off station. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_SYNDICATE)

TRY_ADD_ALL

Used in ID card access adding procs. Will try to add all accesses and utilises free wildcards, skipping over any accesses it can't add.

TRY_ADD_ALL_NO_WILDCARD

Used in ID card access adding procs. Will try to add all accesses and does not utilise wildcards, skipping anything requiring a wildcard.

WILDCARD_FLAG_ALL

This wildcraft flag accepts any access level.

WILDCARD_FLAG_AWAY

Access flags that can be applied to offstation wildcard slots.

WILDCARD_FLAG_CAPTAIN

Access flags that can be applied to captain wildcard slots.

WILDCARD_FLAG_CENTCOM

Access flags that can be applied to centcom wildcard slots.

WILDCARD_FLAG_COMMAND

Access flags that can be applied to command wildcard slots.

WILDCARD_FLAG_COMMON

Access flags that can be applied to common wildcard slots.

WILDCARD_FLAG_FORCED

Access flag that indicates a wildcard was forced onto an ID card.

WILDCARD_FLAG_PRV_COMMAND

Access flags that can be applied to private command wildcard slots.

WILDCARD_FLAG_SPECIAL

Access flags that can be applied to super special weird wildcard slots.

WILDCARD_FLAG_SYNDICATE

Access flags that can be applied to syndicate wildcard slots.

WILDCARD_NAME_ALL

Name associated with the all wildcard bitflag.

WILDCARD_NAME_AWAY

Name associated with the offstation wildcard bitflag.

WILDCARD_NAME_CAPTAIN

Name associated with the captain wildcard bitflag.

WILDCARD_NAME_CENTCOM

Name associated with the centcom wildcard bitflag.

WILDCARD_NAME_COMMAND

Name associated with the command wildcard bitflag.

WILDCARD_NAME_COMMON

Name associated with the common wildcard bitflag.

WILDCARD_NAME_FORCED

Name associated with the wildcard bitflag that covers wildcards that have been forced onto an ID card that could not accept them.

WILDCARD_NAME_PRV_COMMAND

Name associated with the private command wildcard bitflag.

WILDCARD_NAME_SPECIAL

Name associated with the super special weird wildcard bitflag.

WILDCARD_NAME_SYNDICATE

Name associated with the syndicate wildcard bitflag.

\ No newline at end of file diff --git a/code/__DEFINES/achievements.html b/code/__DEFINES/achievements.html new file mode 100644 index 0000000000000..17809c39dd79a --- /dev/null +++ b/code/__DEFINES/achievements.html @@ -0,0 +1 @@ +code/__DEFINES/achievements.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/achievements.dm

ACHIEVEMENTS_SETAchievements icon set
CHEEVO_SOUND_TADApreferences for the sound played when unlocking an achievement
ACHIEVEMENTS_SCOREDB ID for the amount of achievements unlocked by the player.

Define Details

ACHIEVEMENTS_SCORE

DB ID for the amount of achievements unlocked by the player.

ACHIEVEMENTS_SET

Achievements icon set

CHEEVO_SOUND_TADA

preferences for the sound played when unlocking an achievement

\ No newline at end of file diff --git a/code/__DEFINES/acid.html b/code/__DEFINES/acid.html new file mode 100644 index 0000000000000..5d6b12561c415 --- /dev/null +++ b/code/__DEFINES/acid.html @@ -0,0 +1 @@ +code/__DEFINES/acid.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/acid.dm

ACID_POWER_MELT_TURFThe acid power required to destroy most closed turfs.
MOVABLE_ACID_DAMAGE_MAXThe maximum amount of damage (per second) acid can deal to an /obj.
MOVABLE_ACID_VOLUME_MAXMaximum acid volume that can be applied to an /obj.
MOB_ACID_VOLUME_MAXMaximum acid volume that can be applied to a /mob/living.
TURF_ACID_VOLUME_MAXMaximum acid volume that can be applied to a /turf.
ACID_DECAY_BASEThe constant factor for the acid decay rate.
ACID_DECAY_SCALINGThe scaling factor for the acid decay rate.
ACID_LEVEL_HANDBURNThe combined acid power and acid volume required to burn hands.

Define Details

ACID_DECAY_BASE

The constant factor for the acid decay rate.

ACID_DECAY_SCALING

The scaling factor for the acid decay rate.

ACID_LEVEL_HANDBURN

The combined acid power and acid volume required to burn hands.

ACID_POWER_MELT_TURF

The acid power required to destroy most closed turfs.

MOB_ACID_VOLUME_MAX

Maximum acid volume that can be applied to a /mob/living.

MOVABLE_ACID_DAMAGE_MAX

The maximum amount of damage (per second) acid can deal to an /obj.

MOVABLE_ACID_VOLUME_MAX

Maximum acid volume that can be applied to an /obj.

TURF_ACID_VOLUME_MAX

Maximum acid volume that can be applied to a /turf.

\ No newline at end of file diff --git a/code/__DEFINES/actions.html b/code/__DEFINES/actions.html new file mode 100644 index 0000000000000..a8eb5e8cc073b --- /dev/null +++ b/code/__DEFINES/actions.html @@ -0,0 +1,5 @@ +code/__DEFINES/actions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/actions.dm

AB_CHECK_HANDS_BLOCKEDAction button checks if hands are unusable
AB_CHECK_IMMOBILEAction button checks if user is immobile
AB_CHECK_LYINGAction button checks if user is resting
AB_CHECK_CONSCIOUSAction button checks if user is conscious
AB_CHECK_INCAPACITATEDAction button checks if user is incapacitated
AB_CHECK_PHASEDAction button checks if user is jaunting
AB_CHECK_OPEN_TURFAction button checks if user is not on an open turf
TRIGGER_SECONDARY_ACTIONAction button triggered with right click
TRIGGER_FORCE_AVAILABLEAction triggered to ignore any availability checks
PANEL_DISPLAY_PANELThe stat panel the action is displayed in.
PANEL_DISPLAY_STATUSThe status shown in the stat panel. +Can be stuff like "ready", "on cooldown", "active", "charges", "charge cost", etc.
PANEL_DISPLAY_NAMEThe name shown in the stat panel.
GRANT_ACTIONTakes in a typepath of a /datum/action and adds it to src. +Only useful if you want to add the action and never desire to reference it again ever.

Define Details

AB_CHECK_CONSCIOUS

Action button checks if user is conscious

AB_CHECK_HANDS_BLOCKED

Action button checks if hands are unusable

AB_CHECK_IMMOBILE

Action button checks if user is immobile

AB_CHECK_INCAPACITATED

Action button checks if user is incapacitated

AB_CHECK_LYING

Action button checks if user is resting

AB_CHECK_OPEN_TURF

Action button checks if user is not on an open turf

AB_CHECK_PHASED

Action button checks if user is jaunting

GRANT_ACTION

Takes in a typepath of a /datum/action and adds it to src. +Only useful if you want to add the action and never desire to reference it again ever.

PANEL_DISPLAY_NAME

The name shown in the stat panel.

PANEL_DISPLAY_PANEL

The stat panel the action is displayed in.

PANEL_DISPLAY_STATUS

The status shown in the stat panel. +Can be stuff like "ready", "on cooldown", "active", "charges", "charge cost", etc.

TRIGGER_FORCE_AVAILABLE

Action triggered to ignore any availability checks

TRIGGER_SECONDARY_ACTION

Action button triggered with right click

\ No newline at end of file diff --git a/code/__DEFINES/admin.html b/code/__DEFINES/admin.html new file mode 100644 index 0000000000000..d76b990a73ee7 --- /dev/null +++ b/code/__DEFINES/admin.html @@ -0,0 +1,3 @@ +code/__DEFINES/admin.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/admin.dm

BANTYPE_ANY_FULLBANused to locate stuff to unban.
BANTYPE_ANY_JOBused to remove jobbans
R_NONEUsed for signifying that all admins can use this regardless of actual permissions
ADMIN_SHOW_PAPERDisplays "(SHOW)" in the chat, when clicked it tries to show atom(paper). First you need to set the request_state variable to TRUE for the paper.
ADMIN_PRINT_FAXDisplays "(PRINT)" in the chat, when clicked it will try to print the atom(paper) on the CentCom/Syndicate fax machine.
ADMIN_PLAY_INTERNETDisplays "(PLAY)" in the chat, when clicked it tries to play internet sounds from the request.
ADMIN_SEE_ZLEVEL_LAYOUTDisplays "(SEE Z-LEVEL LAYOUT)" in the chat, when clicked it shows the z-level layouts for the current world state.
ROUNDSTART_LOGOUT_REPORT_TIMEAmount of time after the round starts that the player disconnect report is issued.
ROUNDSTART_LOGOUT_AFK_THRESHOLDThreshold in minutes for counting a player as AFK on the roundstart report.
SPAM_TRIGGER_WARNINGNumber of identical messages required before the spam-prevention will warn you to stfu
SPAM_TRIGGER_AUTOMUTENumber of identical messages required before the spam-prevention will automute you
MAX_KEYPRESS_COMMANDLENGTHMax length of a keypress command before it's considered to be a forged packet/bogus command
MAX_COMMANDS_PER_KEYMaximum keys that can be bound to one button
MAX_KEYPRESS_AUTOKICKMax amount of keypress messages per second over two seconds before client is autokicked
HELD_KEY_BUFFER_LENGTHLength of held key buffer
POLICY_POLYMORPHReference index for policy.json to locate any policy text applicable to polymorphed/staff of changed mobs.
POLICY_VERB_HEADERReference index for policy.json to locate any policy text that is shown as a header in the OOC > Show Policy verb.
ASAY_LINK_NEW_MESSAGE_INDEXfor /proc/check_asay_links, if there are any actionable refs in the asay message, this index in the return list contains the new message text to be printed
ASAY_LINK_PINGED_ADMINS_INDEXfor /proc/check_asay_links, if there are any admin pings in the asay message, this index in the return list contains a list of admins to ping
BAN_PANEL_PERMANENTWhen passed in as the duration for ban_panel, will make the ban default to permanent
NO_FEEDBACK_LINKA value for /datum/admins/cached_feedback_link to indicate empty, rather than unobtained
INTERVIEW_APPROVEDState when an interview has been approved
INTERVIEW_DENIEDState when an interview as been denied
INTERVIEW_PENDINGState when an interview has had no action on it yet
BLACKBOX_LOG_ADMIN_VERBUsed in logging uses of admin verbs (and sometimes some non-admin or debug verbs) to the blackbox +Only pass it a string key, the verb being used.

Define Details

ADMIN_PLAY_INTERNET

Displays "(PLAY)" in the chat, when clicked it tries to play internet sounds from the request.

ADMIN_PRINT_FAX

Displays "(PRINT)" in the chat, when clicked it will try to print the atom(paper) on the CentCom/Syndicate fax machine.

ADMIN_SEE_ZLEVEL_LAYOUT

Displays "(SEE Z-LEVEL LAYOUT)" in the chat, when clicked it shows the z-level layouts for the current world state.

ADMIN_SHOW_PAPER

Displays "(SHOW)" in the chat, when clicked it tries to show atom(paper). First you need to set the request_state variable to TRUE for the paper.

for /proc/check_asay_links, if there are any actionable refs in the asay message, this index in the return list contains the new message text to be printed

for /proc/check_asay_links, if there are any admin pings in the asay message, this index in the return list contains a list of admins to ping

BANTYPE_ANY_FULLBAN

used to locate stuff to unban.

BANTYPE_ANY_JOB

used to remove jobbans

BAN_PANEL_PERMANENT

When passed in as the duration for ban_panel, will make the ban default to permanent

BLACKBOX_LOG_ADMIN_VERB

Used in logging uses of admin verbs (and sometimes some non-admin or debug verbs) to the blackbox +Only pass it a string key, the verb being used.

HELD_KEY_BUFFER_LENGTH

Length of held key buffer

INTERVIEW_APPROVED

State when an interview has been approved

INTERVIEW_DENIED

State when an interview as been denied

INTERVIEW_PENDING

State when an interview has had no action on it yet

MAX_COMMANDS_PER_KEY

Maximum keys that can be bound to one button

MAX_KEYPRESS_AUTOKICK

Max amount of keypress messages per second over two seconds before client is autokicked

MAX_KEYPRESS_COMMANDLENGTH

Max length of a keypress command before it's considered to be a forged packet/bogus command

A value for /datum/admins/cached_feedback_link to indicate empty, rather than unobtained

POLICY_POLYMORPH

Reference index for policy.json to locate any policy text applicable to polymorphed/staff of changed mobs.

POLICY_VERB_HEADER

Reference index for policy.json to locate any policy text that is shown as a header in the OOC > Show Policy verb.

ROUNDSTART_LOGOUT_AFK_THRESHOLD

Threshold in minutes for counting a player as AFK on the roundstart report.

ROUNDSTART_LOGOUT_REPORT_TIME

Amount of time after the round starts that the player disconnect report is issued.

R_NONE

Used for signifying that all admins can use this regardless of actual permissions

SPAM_TRIGGER_AUTOMUTE

Number of identical messages required before the spam-prevention will automute you

SPAM_TRIGGER_WARNING

Number of identical messages required before the spam-prevention will warn you to stfu

\ No newline at end of file diff --git a/code/__DEFINES/admin_verb.html b/code/__DEFINES/admin_verb.html new file mode 100644 index 0000000000000..3daad0b59beca --- /dev/null +++ b/code/__DEFINES/admin_verb.html @@ -0,0 +1,13 @@ +code/__DEFINES/admin_verb.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/admin_verb.dm

_ADMIN_VERBThis is the only macro you should use to define admin verbs. +It will define the verb and the verb holder for you. +Using it is very simple: +ADMIN_VERB(verb_path, R_PERM, "Name", "Description", "Admin.Category", args...) +This sets up all of the above and also acts as syntatic sugar as a verb delcaration for the verb itself. +Note that the verb args have an injected client/user argument that is the user that called the verb. +Do not use usr in your verb; technically you can but I'll kill you.
ADMIN_VERB_CUSTOM_EXIST_CHECKUsed to define a special check to determine if the admin verb should exist at all. Useful for verbs such as play sound which require configuration.
ADMIN_VERB_VISIBILITYUsed to define the visibility flag of the verb. If the admin does not have this flag enabled they will not see the verb.
ADMIN_VERB_NO_DESCRIPTIONUse this to mark your verb as not having a description. Should ONLY be used if you are also hiding the verb!
ADMIN_CATEGORY_HIDDENUsed to verbs you do not want to show up in the master verb panel.

Define Details

ADMIN_CATEGORY_HIDDEN

Used to verbs you do not want to show up in the master verb panel.

ADMIN_VERB_CUSTOM_EXIST_CHECK

Used to define a special check to determine if the admin verb should exist at all. Useful for verbs such as play sound which require configuration.

ADMIN_VERB_NO_DESCRIPTION

Use this to mark your verb as not having a description. Should ONLY be used if you are also hiding the verb!

ADMIN_VERB_VISIBILITY

Used to define the visibility flag of the verb. If the admin does not have this flag enabled they will not see the verb.

_ADMIN_VERB

This is the only macro you should use to define admin verbs. +It will define the verb and the verb holder for you. +Using it is very simple: +ADMIN_VERB(verb_path, R_PERM, "Name", "Description", "Admin.Category", args...) +This sets up all of the above and also acts as syntatic sugar as a verb delcaration for the verb itself. +Note that the verb args have an injected client/user argument that is the user that called the verb. +Do not use usr in your verb; technically you can but I'll kill you.

\ No newline at end of file diff --git a/code/__DEFINES/adventure.html b/code/__DEFINES/adventure.html new file mode 100644 index 0000000000000..9ef065ce27052 --- /dev/null +++ b/code/__DEFINES/adventure.html @@ -0,0 +1,3 @@ +code/__DEFINES/adventure.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/adventure.dm

WIN_NODEVictory node - Get loot and exit
FAIL_NODEFailure node - No loot, get damaged and exit.
FAIL_DEATH_NODEFailure node - No loot and drone blown up.
GO_BACK_NODEReturn node - navigates to previous adventure node.
EXODRONE_IDLEDrone is stationside - allow changing tools and such.
EXODRONE_TRAVELDrone is traveling from or to the exploration site
EXODRONE_BUSYDrone is in adventure/event caused timeout
EXODRONE_EXPLORATIONDrone is at exploration site either idle or in simple event
EXODRONE_ADVENTUREDrone is currently playing an adventure
EXPLORATION_SITE_RUINSSome kind of ruined interior
EXPLORATION_SITE_TECHNOLOGYPower, wires and machinery present.
EXPLORATION_SITE_STATIONIt's a space station
EXPLORATION_SITE_ALIENIt's ancient alien site
EXPLORATION_SITE_HABITABLECarbon-based life-forms can live here
EXPLORATION_SITE_SPACESite is in space
EXPLORATION_SITE_SURFACESite is located on planet/moon/whatever surface
EXPLORATION_SITE_SHIPSite is a space ship
EXPLORATION_SITE_CIVILIZEDSite is civilized and populated, trading stations,cities etc. Lack of this trait means it's wilderness
EXOSCAN_WIDEScan types
ADVENTURE_EFFECT_TYPE_REMOVEAdventure Effect Types
ADVENTURE_QUALITY_TYPE_RANDOMAdventure Effect Value Types +rolls value between low and high inclusive

Define Details

ADVENTURE_EFFECT_TYPE_REMOVE

Adventure Effect Types

ADVENTURE_QUALITY_TYPE_RANDOM

Adventure Effect Value Types +rolls value between low and high inclusive

EXODRONE_ADVENTURE

Drone is currently playing an adventure

EXODRONE_BUSY

Drone is in adventure/event caused timeout

EXODRONE_EXPLORATION

Drone is at exploration site either idle or in simple event

EXODRONE_IDLE

Drone is stationside - allow changing tools and such.

EXODRONE_TRAVEL

Drone is traveling from or to the exploration site

EXOSCAN_WIDE

Scan types

EXPLORATION_SITE_ALIEN

It's ancient alien site

EXPLORATION_SITE_CIVILIZED

Site is civilized and populated, trading stations,cities etc. Lack of this trait means it's wilderness

EXPLORATION_SITE_HABITABLE

Carbon-based life-forms can live here

EXPLORATION_SITE_RUINS

Some kind of ruined interior

EXPLORATION_SITE_SHIP

Site is a space ship

EXPLORATION_SITE_SPACE

Site is in space

EXPLORATION_SITE_STATION

It's a space station

EXPLORATION_SITE_SURFACE

Site is located on planet/moon/whatever surface

EXPLORATION_SITE_TECHNOLOGY

Power, wires and machinery present.

FAIL_DEATH_NODE

Failure node - No loot and drone blown up.

FAIL_NODE

Failure node - No loot, get damaged and exit.

GO_BACK_NODE

Return node - navigates to previous adventure node.

WIN_NODE

Victory node - Get loot and exit

\ No newline at end of file diff --git a/code/__DEFINES/ai/ai.html b/code/__DEFINES/ai/ai.html new file mode 100644 index 0000000000000..1495c100a1878 --- /dev/null +++ b/code/__DEFINES/ai/ai.html @@ -0,0 +1,3 @@ +code/__DEFINES/ai/ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ai/ai.dm

AI_STATUS_ONThe AI is currently active.
AI_STATUS_OFFThe AI is currently offline for any reason.
AI_STATUS_IDLEThe AI is currently in idle mode.
AI_MAX_PATH_LENGTHFor JPS pathing, the maximum length of a path we'll try to generate. Should be modularized depending on what we're doing later on
AI_FAILED_PLANNING_COOLDOWNCooldown on planning if planning failed last time
AI_CONTROLLER_INCOMPATIBLEFlags for ai_behavior new()
AI_BEHAVIOR_DELAYUpdate this behavior's cooldown
AI_BEHAVIOR_SUCCEEDEDFinish the behavior successfully
AI_BEHAVIOR_FAILEDFinish the behavior unsuccessfully
AI_BEHAVIOR_REQUIRE_MOVEMENTDoes this task require movement from the AI before it can be performed?
AI_BEHAVIOR_REQUIRE_REACHDoes this require the current_movement_target to be adjacent and in reach?
AI_BEHAVIOR_MOVE_AND_PERFORMDoes this task let you perform the action while you move closer? (Things like moving and shooting)
AI_BEHAVIOR_KEEP_MOVE_TARGET_ON_FINISHDoes finishing this task not null the current movement target?
AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTIONDoes this behavior NOT block planning?
STOP_MOVING_WHEN_PULLEDAI flags +Don't move if being pulled
CAN_ACT_WHILE_DEADContinue processing even if dead
PAUSE_DURING_DO_AFTERStop processing while in a progress bar
CAN_ACT_IN_STASISContinue processing while in stasis
SUBTREE_RETURN_FINISH_PLANNINGThis subtree should cancel any further planning, (Including from other subtrees)
RESIST_SUBTREE_PROBprobability that the pawn should try resisting out of restraints
SHOULD_RESISTmacro for whether it's appropriate to resist right now, used by resist subtree
IS_DEAD_OR_INCAPmacro for whether the pawn can act, used generally to prevent some horrifying ai disasters

Define Details

AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION

Does this behavior NOT block planning?

AI_BEHAVIOR_DELAY

Update this behavior's cooldown

AI_BEHAVIOR_FAILED

Finish the behavior unsuccessfully

AI_BEHAVIOR_KEEP_MOVE_TARGET_ON_FINISH

Does finishing this task not null the current movement target?

AI_BEHAVIOR_MOVE_AND_PERFORM

Does this task let you perform the action while you move closer? (Things like moving and shooting)

AI_BEHAVIOR_REQUIRE_MOVEMENT

Does this task require movement from the AI before it can be performed?

AI_BEHAVIOR_REQUIRE_REACH

Does this require the current_movement_target to be adjacent and in reach?

AI_BEHAVIOR_SUCCEEDED

Finish the behavior successfully

AI_CONTROLLER_INCOMPATIBLE

Flags for ai_behavior new()

AI_FAILED_PLANNING_COOLDOWN

Cooldown on planning if planning failed last time

AI_MAX_PATH_LENGTH

For JPS pathing, the maximum length of a path we'll try to generate. Should be modularized depending on what we're doing later on

AI_STATUS_IDLE

The AI is currently in idle mode.

AI_STATUS_OFF

The AI is currently offline for any reason.

AI_STATUS_ON

The AI is currently active.

CAN_ACT_IN_STASIS

Continue processing while in stasis

CAN_ACT_WHILE_DEAD

Continue processing even if dead

IS_DEAD_OR_INCAP

macro for whether the pawn can act, used generally to prevent some horrifying ai disasters

PAUSE_DURING_DO_AFTER

Stop processing while in a progress bar

RESIST_SUBTREE_PROB

probability that the pawn should try resisting out of restraints

SHOULD_RESIST

macro for whether it's appropriate to resist right now, used by resist subtree

STOP_MOVING_WHEN_PULLED

AI flags +Don't move if being pulled

SUBTREE_RETURN_FINISH_PLANNING

This subtree should cancel any further planning, (Including from other subtrees)

\ No newline at end of file diff --git a/code/__DEFINES/ai/ai_blackboard.html b/code/__DEFINES/ai/ai_blackboard.html new file mode 100644 index 0000000000000..460fd05391ec8 --- /dev/null +++ b/code/__DEFINES/ai/ai_blackboard.html @@ -0,0 +1,5 @@ +code/__DEFINES/ai/ai_blackboard.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ai/ai_blackboard.dm

BB_NEXT_HUNGRYtime until we should next eat, set by the generic hunger subtree
BB_FOOD_TARGETwhat we're going to eat next
BB_AGGRO_RANGEHow close a mob must be for us to select it as a target, if that is less than how far we can maintain it as a target
BB_CHECK_HUNGRYare we hungry? determined by the udder component
BB_BREED_READYare we ready to breed?
BB_MAX_CHILDRENmaximum kids we can have
BB_BASIC_HAPPINESSour current happiness level
BB_BASIC_MOB_HEALERcan this mob heal?
BB_OWNER_TARGETthe owner we will try to play with
BB_INTERACTIONS_WITH_OWNERthe list of interactions we can have with the owner
BB_TARGET_PRIORITY_TRAITThe trait checked by ai_behavior/find_potential_targets/prioritize_trait to return a target with a trait over the rest.
BB_EMOTE_KEYStore a single or list of emotes at this key
BB_EMOTE_CHANCEChance to perform an emote per second
BB_REINFORCEMENTS_SAYSomething the mob will say when calling reinforcements
BB_REINFORCEMENTS_EMOTESomething the mob will remote when calling reinforcements
BB_TRAVEL_DESTINATIONTurf we want a mob to move to
BB_SONG_INSTRUMENTsong instrument blackboard, set by instrument subtrees
BB_SONG_LINESsong lines blackboard, set by default on controllers
BB_BANE_BATMANbane ai used by example script
BB_CURRENT_HUNTING_TARGETHunting BB keys
BB_BASIC_MOB_CURRENT_TARGETBasic Mob Keys +Targeting subtrees
BB_BASIC_MOB_EXECUTION_TARGETsome behaviors that check current_target also set this on deep crit mobs
BB_OBSTACLE_TARGETING_WHITELISTBlackboard key for a whitelist typecache of "things we can target while trying to move"
BB_TARGET_MINIMUM_STATKey for the minimum status at which we want to target mobs (does not need to be specified if CONSCIOUS)
BB_TARGET_WOUNDED_ONLYFlag for whether to target only wounded mobs
BB_TARGET_HELD_ITEMWhat typepath the holding object targeting strategy should look for
BB_BASIC_MOB_HAS_TARGET_TIMEBlackboard key storing how long your targeting strategy has held a particular target
BB_BASIC_MOB_FLEE_TARGETTargeting keys for something to run away from, if you need to store this separately from current target
BB_TARGETED_ACTIONGeneric key for a non-specific targeted action
BB_GENERIC_ACTIONGeneric key for a non-specific action
BB_SHAPESHIFT_ACTIONGeneric key for a shapeshifting action
BB_TARGETLESS_TIMEHow long have we spent with no target?
BB_BASIC_MOB_TIP_REACTINGTipped blackboards +Bool that means a basic mob will start reacting to being tipped in its planning
BB_BASIC_MOB_TIPPERthe motherfucker who tipped us
BB_STATIONARY_CAUSEIs there something that scared us into being stationary? If so, hold the reference here
BB_STATIONARY_SECONDSHow long should we remain stationary for?
BB_STATIONARY_MOVE_TO_TARGETShould we move towards the target that triggered us to be stationary?
BB_STATIONARY_TARGETSWhat targets will trigger us to be stationary? Must be a list.
BB_STATIONARY_COOLDOWNHow often can we get spooked by a target?
BB_BASIC_MOB_RETALIATE_LISTList of mobs who have damaged us
BB_RANDOM_AGGRO_CHANCEChance to randomly acquire a new target
BB_RANDOM_DEAGGRO_CHANCEChance to randomly drop all of our targets
BB_BASIC_MOB_STOP_FLEEINGFlag to set on if you want your mob to STOP running away
BB_BASIC_FOODSlist of foods this mob likes
BB_SIMPLE_CARRY_ITEMBlackboard key for a held item
BB_MOD_TARGETMob the MOD is trying to attach to
BB_MOD_IMPLANTThe implant the AI was created from
MOD_AI_RANGERange for a MOD AI controller.
BB_TARGET_ONLY_WITH_TRAITSOnly target mobs with these traits
BB_ALWAYS_IGNORE_FACTIONshould we skip the faction check for the targeting strategy?
BB_TEMPORARILY_IGNORE_FACTIONare we in some kind of temporary state of ignoring factions when targeting? can result in volatile results if multiple behaviours touch this
BB_BASIC_MOB_SPEAK_LINEScurrently only used by clowns, a list of what can the mob speak randomly
BB_BASIC_MOB_REINFORCEMENT_TARGETA target that has called this mob for reinforcements
BB_BASIC_MOB_REINFORCEMENTS_COOLDOWNThe next time at which this mob can call for reinforcements
BB_STARTING_DIRECTIONthe direction we started when executing stare at things
BB_FRIENDLY_MESSAGEText we display when we befriend someone
BB_FISHING_TARGETour fishing target
BB_FIND_TARGETS_FIELDFor /datum/ai_behavior/find_potential_targets, what if any field are we using currently
BB_MOTHROACH_NEXT_EATmothroach next meal key!

Define Details

BB_AGGRO_RANGE

How close a mob must be for us to select it as a target, if that is less than how far we can maintain it as a target

BB_ALWAYS_IGNORE_FACTION

should we skip the faction check for the targeting strategy?

BB_BANE_BATMAN

bane ai used by example script

BB_BASIC_FOODS

list of foods this mob likes

BB_BASIC_HAPPINESS

our current happiness level

BB_BASIC_MOB_CURRENT_TARGET

Basic Mob Keys +Targeting subtrees

BB_BASIC_MOB_EXECUTION_TARGET

some behaviors that check current_target also set this on deep crit mobs

BB_BASIC_MOB_FLEE_TARGET

Targeting keys for something to run away from, if you need to store this separately from current target

BB_BASIC_MOB_HAS_TARGET_TIME

Blackboard key storing how long your targeting strategy has held a particular target

BB_BASIC_MOB_HEALER

can this mob heal?

BB_BASIC_MOB_REINFORCEMENTS_COOLDOWN

The next time at which this mob can call for reinforcements

BB_BASIC_MOB_REINFORCEMENT_TARGET

A target that has called this mob for reinforcements

BB_BASIC_MOB_RETALIATE_LIST

List of mobs who have damaged us

BB_BASIC_MOB_SPEAK_LINES

currently only used by clowns, a list of what can the mob speak randomly

BB_BASIC_MOB_STOP_FLEEING

Flag to set on if you want your mob to STOP running away

BB_BASIC_MOB_TIPPER

the motherfucker who tipped us

BB_BASIC_MOB_TIP_REACTING

Tipped blackboards +Bool that means a basic mob will start reacting to being tipped in its planning

BB_BREED_READY

are we ready to breed?

BB_CHECK_HUNGRY

are we hungry? determined by the udder component

BB_CURRENT_HUNTING_TARGET

Hunting BB keys

BB_EMOTE_CHANCE

Chance to perform an emote per second

BB_EMOTE_KEY

Store a single or list of emotes at this key

BB_FIND_TARGETS_FIELD

For /datum/ai_behavior/find_potential_targets, what if any field are we using currently

BB_FISHING_TARGET

our fishing target

BB_FOOD_TARGET

what we're going to eat next

BB_FRIENDLY_MESSAGE

Text we display when we befriend someone

BB_GENERIC_ACTION

Generic key for a non-specific action

BB_INTERACTIONS_WITH_OWNER

the list of interactions we can have with the owner

BB_MAX_CHILDREN

maximum kids we can have

BB_MOD_IMPLANT

The implant the AI was created from

BB_MOD_TARGET

Mob the MOD is trying to attach to

BB_MOTHROACH_NEXT_EAT

mothroach next meal key!

BB_NEXT_HUNGRY

time until we should next eat, set by the generic hunger subtree

BB_OBSTACLE_TARGETING_WHITELIST

Blackboard key for a whitelist typecache of "things we can target while trying to move"

BB_OWNER_TARGET

the owner we will try to play with

BB_RANDOM_AGGRO_CHANCE

Chance to randomly acquire a new target

BB_RANDOM_DEAGGRO_CHANCE

Chance to randomly drop all of our targets

BB_REINFORCEMENTS_EMOTE

Something the mob will remote when calling reinforcements

BB_REINFORCEMENTS_SAY

Something the mob will say when calling reinforcements

BB_SHAPESHIFT_ACTION

Generic key for a shapeshifting action

BB_SIMPLE_CARRY_ITEM

Blackboard key for a held item

BB_SONG_INSTRUMENT

song instrument blackboard, set by instrument subtrees

BB_SONG_LINES

song lines blackboard, set by default on controllers

BB_STARTING_DIRECTION

the direction we started when executing stare at things

BB_STATIONARY_CAUSE

Is there something that scared us into being stationary? If so, hold the reference here

BB_STATIONARY_COOLDOWN

How often can we get spooked by a target?

BB_STATIONARY_MOVE_TO_TARGET

Should we move towards the target that triggered us to be stationary?

BB_STATIONARY_SECONDS

How long should we remain stationary for?

BB_STATIONARY_TARGETS

What targets will trigger us to be stationary? Must be a list.

BB_TARGETED_ACTION

Generic key for a non-specific targeted action

BB_TARGETLESS_TIME

How long have we spent with no target?

BB_TARGET_HELD_ITEM

What typepath the holding object targeting strategy should look for

BB_TARGET_MINIMUM_STAT

Key for the minimum status at which we want to target mobs (does not need to be specified if CONSCIOUS)

BB_TARGET_ONLY_WITH_TRAITS

Only target mobs with these traits

BB_TARGET_PRIORITY_TRAIT

The trait checked by ai_behavior/find_potential_targets/prioritize_trait to return a target with a trait over the rest.

BB_TARGET_WOUNDED_ONLY

Flag for whether to target only wounded mobs

BB_TEMPORARILY_IGNORE_FACTION

are we in some kind of temporary state of ignoring factions when targeting? can result in volatile results if multiple behaviours touch this

BB_TRAVEL_DESTINATION

Turf we want a mob to move to

MOD_AI_RANGE

Range for a MOD AI controller.

\ No newline at end of file diff --git a/code/__DEFINES/ai/bot_keys.html b/code/__DEFINES/ai/bot_keys.html new file mode 100644 index 0000000000000..d8db9967b11f4 --- /dev/null +++ b/code/__DEFINES/ai/bot_keys.html @@ -0,0 +1 @@ +code/__DEFINES/ai/bot_keys.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ai/bot_keys.dm

HONKBOT_MODE_SLIPcan honkbots slip people?
HONKBOT_CHECK_IDScan honkbots check IDs?
HONKBOT_CHECK_RECORDScan honkbots check records?
HONKBOT_HANDCUFF_TARGETcan honkbots handcuff people?
BB_BEACON_TARGETThe first beacon we find
BB_PREVIOUS_BEACON_TARGETThe last beacon we found, we will use its codes to find the next beacon
BB_BOT_SUMMON_TARGETLocation of whoever summoned us
BB_SALUTE_MESSAGESsalute messages to beepsky
BB_SALUTE_TARGETthe beepsky we will salute
BB_ANNOUNCE_ABILITYour announcement ability
BB_RADIO_CHANNELlist of our radio channels
BB_TEMPORARY_IGNORE_LISTlist of unreachable things we will temporarily ignore
BB_PATIENT_TARGETthe patient we must heal
BB_WAIT_SPEECHlist holding our wait dialogue
BB_AFTERHEAL_SPEECHwhat we will say to our patient after we heal them
BB_IDLE_SPEECHthings we will say when we are bored
BB_EMAGGED_SPEECHspeech unlocked after being emagged
BB_WORRIED_ANNOUNCEMENTSspeech when we are tipped
BB_NEAR_DEATH_SPEECHspeech when our patient is near death
BB_PATIENT_IN_CRITin crit patient we must alert medbay about
BB_UNREACHABLE_LIST_COOLDOWNhow much time interval before we clear list
BB_CLEAR_LIST_READYcan we clear the list now
BB_CLEANBOT_FOAMkey that holds the foaming ability
BB_CLEANABLE_DECALSkey that holds decals we hunt
BB_CLEANABLE_BLOODkey that holds blood we hunt
BB_HUNTABLE_PESTSkey that holds pests we hunt
BB_CLEANBOT_EMAGGED_PHRASESkey that holds emagged speech
BB_CLEANABLE_DRAWINGSkey that holds drawings we hunt
BB_CLEAN_TARGETKey that holds our clean target
BB_FRIENDLY_JANITORkey that holds the janitor we will befriend
BB_ACID_SPRAY_TARGETkey that holds the victim we will spray
BB_HUNTABLE_TRASHkey that holds trash we will burn
BB_WASH_THREATSkey that holds our threats
BB_WASH_FOUNDkey that holds speech when we find our target
BB_WASH_DONEkey that holds speech when we cleaned our target
BB_WASH_TARGETkey that holds target we will wash
BB_WASH_FRUSTRATIONkey that holds how frustrated we are when target is running away
BB_POST_CLEAN_COOLDOWNkey that holds cooldown after we finish cleaning something, so we dont immediately run off to patrol
BB_CLOWNS_LISTkey that holds all possible clown friends
BB_CLOWN_FRIENDkey that holds the clown we play with
BB_SLIPPERY_ITEMSkey that holds the list of slippery items
BB_SLIP_LISTkey that holds list of types we will attempt to slip
BB_SLIPPERY_TARGETkey that holds the slippery item we will drag people too
BB_SLIP_TARGETkey that holds the victim we will slip
BB_HONK_ABILITYkey that holds our honk ability
BB_FIREBOT_CAN_EXTINGUISHthings we can extinguish
BB_FIREBOT_EXTINGUISH_TARGETthe target we will extinguish
BB_FIREBOT_FIRE_DETECTED_LINESlines we say when we detect a fire
BB_FIREBOT_IDLE_LINESlines we say when we are idle
BB_FIREBOT_EMAGGED_LINESlines we say when we are emagged
BB_VIBEBOT_PARTY_ABILITYkey that holds our partying ability
BB_VIBEBOT_BIRTHDAY_SONGkey that holds our birthday song
BB_VIBEBOT_HAPPY_SONGkey that holds happy songs we play to depressed targets
BB_VIBEBOT_GRIM_SONGkey that holds grim song we play when emagged
BB_VIBEBOT_PARTY_TARGETkey that holds neutral targets we vibe with
BB_VIBEBOT_INSTRUMENTkey that holds our instrument

Define Details

BB_ACID_SPRAY_TARGET

key that holds the victim we will spray

BB_AFTERHEAL_SPEECH

what we will say to our patient after we heal them

BB_ANNOUNCE_ABILITY

our announcement ability

BB_BEACON_TARGET

The first beacon we find

BB_BOT_SUMMON_TARGET

Location of whoever summoned us

BB_CLEANABLE_BLOOD

key that holds blood we hunt

BB_CLEANABLE_DECALS

key that holds decals we hunt

BB_CLEANABLE_DRAWINGS

key that holds drawings we hunt

BB_CLEANBOT_EMAGGED_PHRASES

key that holds emagged speech

BB_CLEANBOT_FOAM

key that holds the foaming ability

BB_CLEAN_TARGET

Key that holds our clean target

BB_CLEAR_LIST_READY

can we clear the list now

BB_CLOWNS_LIST

key that holds all possible clown friends

BB_CLOWN_FRIEND

key that holds the clown we play with

BB_EMAGGED_SPEECH

speech unlocked after being emagged

BB_FIREBOT_CAN_EXTINGUISH

things we can extinguish

BB_FIREBOT_EMAGGED_LINES

lines we say when we are emagged

BB_FIREBOT_EXTINGUISH_TARGET

the target we will extinguish

BB_FIREBOT_FIRE_DETECTED_LINES

lines we say when we detect a fire

BB_FIREBOT_IDLE_LINES

lines we say when we are idle

BB_FRIENDLY_JANITOR

key that holds the janitor we will befriend

BB_HONK_ABILITY

key that holds our honk ability

BB_HUNTABLE_PESTS

key that holds pests we hunt

BB_HUNTABLE_TRASH

key that holds trash we will burn

BB_IDLE_SPEECH

things we will say when we are bored

BB_NEAR_DEATH_SPEECH

speech when our patient is near death

BB_PATIENT_IN_CRIT

in crit patient we must alert medbay about

BB_PATIENT_TARGET

the patient we must heal

BB_POST_CLEAN_COOLDOWN

key that holds cooldown after we finish cleaning something, so we dont immediately run off to patrol

BB_PREVIOUS_BEACON_TARGET

The last beacon we found, we will use its codes to find the next beacon

BB_RADIO_CHANNEL

list of our radio channels

BB_SALUTE_MESSAGES

salute messages to beepsky

BB_SALUTE_TARGET

the beepsky we will salute

BB_SLIPPERY_ITEMS

key that holds the list of slippery items

BB_SLIPPERY_TARGET

key that holds the slippery item we will drag people too

BB_SLIP_LIST

key that holds list of types we will attempt to slip

BB_SLIP_TARGET

key that holds the victim we will slip

BB_TEMPORARY_IGNORE_LIST

list of unreachable things we will temporarily ignore

BB_UNREACHABLE_LIST_COOLDOWN

how much time interval before we clear list

BB_VIBEBOT_BIRTHDAY_SONG

key that holds our birthday song

BB_VIBEBOT_GRIM_SONG

key that holds grim song we play when emagged

BB_VIBEBOT_HAPPY_SONG

key that holds happy songs we play to depressed targets

BB_VIBEBOT_INSTRUMENT

key that holds our instrument

BB_VIBEBOT_PARTY_ABILITY

key that holds our partying ability

BB_VIBEBOT_PARTY_TARGET

key that holds neutral targets we vibe with

BB_WAIT_SPEECH

list holding our wait dialogue

BB_WASH_DONE

key that holds speech when we cleaned our target

BB_WASH_FOUND

key that holds speech when we find our target

BB_WASH_FRUSTRATION

key that holds how frustrated we are when target is running away

BB_WASH_TARGET

key that holds target we will wash

BB_WASH_THREATS

key that holds our threats

BB_WORRIED_ANNOUNCEMENTS

speech when we are tipped

HONKBOT_CHECK_IDS

can honkbots check IDs?

HONKBOT_CHECK_RECORDS

can honkbots check records?

HONKBOT_HANDCUFF_TARGET

can honkbots handcuff people?

HONKBOT_MODE_SLIP

can honkbots slip people?

\ No newline at end of file diff --git a/code/__DEFINES/ai/carp.html b/code/__DEFINES/ai/carp.html new file mode 100644 index 0000000000000..bb7f21a488345 --- /dev/null +++ b/code/__DEFINES/ai/carp.html @@ -0,0 +1 @@ +code/__DEFINES/ai/carp.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ai/carp.dm

BB_CARP_RIFTCarp AI blackboard keys
BB_CARP_MIGRATION_PATHList of weakrefs to turfs we want to travel to
BB_CARP_MIGRATION_TARGETCurrent target turf in your migration
BB_MAGICARP_SPELL_TARGETTargeting keys for magicarp spells

Define Details

BB_CARP_MIGRATION_PATH

List of weakrefs to turfs we want to travel to

BB_CARP_MIGRATION_TARGET

Current target turf in your migration

BB_CARP_RIFT

Carp AI blackboard keys

BB_MAGICARP_SPELL_TARGET

Targeting keys for magicarp spells

\ No newline at end of file diff --git a/code/__DEFINES/ai/haunted.html b/code/__DEFINES/ai/haunted.html new file mode 100644 index 0000000000000..361eabad8825e --- /dev/null +++ b/code/__DEFINES/ai/haunted.html @@ -0,0 +1 @@ +code/__DEFINES/ai/haunted.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ai/haunted.dm

HAUNTED_ITEM_ATTACK_HAUNT_CHANCEChance for haunted item to haunt someone
HAUNTED_ITEM_ESCAPE_GRASP_CHANCEChance for haunted item to try to get itself let go.
HAUNTED_ITEM_AGGRO_ADDITIONAmount of aggro you get when picking up a haunted item
CURSED_VIEW_RANGEhow far a cursed item will still try to chase a target
BB_HAUNT_TARGETActual mob the item is haunting at the moment
BB_HAUNTED_THROW_ATTEMPT_COUNTAmount of successful hits in a row this item has had
BB_LIKES_EQUIPPERIf true, tolerates the equipper holding/equipping the hauntium
BB_CURSE_TARGETActual mob the item is haunting at the moment
BB_TARGET_SLOTWhere the item wants to land on
BB_CURSED_THROW_ATTEMPT_COUNTAmount of successful hits in a row this item has had

Define Details

BB_CURSED_THROW_ATTEMPT_COUNT

Amount of successful hits in a row this item has had

BB_CURSE_TARGET

Actual mob the item is haunting at the moment

BB_HAUNTED_THROW_ATTEMPT_COUNT

Amount of successful hits in a row this item has had

BB_HAUNT_TARGET

Actual mob the item is haunting at the moment

BB_LIKES_EQUIPPER

If true, tolerates the equipper holding/equipping the hauntium

BB_TARGET_SLOT

Where the item wants to land on

CURSED_VIEW_RANGE

how far a cursed item will still try to chase a target

HAUNTED_ITEM_AGGRO_ADDITION

Amount of aggro you get when picking up a haunted item

HAUNTED_ITEM_ATTACK_HAUNT_CHANCE

Chance for haunted item to haunt someone

HAUNTED_ITEM_ESCAPE_GRASP_CHANCE

Chance for haunted item to try to get itself let go.

\ No newline at end of file diff --git a/code/__DEFINES/ai/monsters.html b/code/__DEFINES/ai/monsters.html new file mode 100644 index 0000000000000..155ee7b5abf2d --- /dev/null +++ b/code/__DEFINES/ai/monsters.html @@ -0,0 +1 @@ +code/__DEFINES/ai/monsters.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ai/monsters.dm

BB_METEOR_HEART_GROUND_SPIKESKey where we keep the spike trail ability
BB_METEOR_HEART_SPINE_TRAPSKey where we keep the spine traps ability
BB_CYBERSUN_CORE_LIGHTNINGkey for lightning strike attack
BB_CYBERSUN_CORE_BARRAGEkey for big laser attack
BB_SPIDER_WEB_TARGETKey where we store a turf to put webs on
BB_SPIDER_WEB_ACTIONKey where we store the web-spinning ability
BB_FUGU_INFLATEKey where we store the inflating ability
BB_FESTIVE_APCKey where we store the charging apc ability
BB_WIZARD_SUMMON_MINIONSKey where we store the summon minions ability
BB_WIZARD_MIMICSKey where we store the mimics ability
BB_FOUND_PAPERKey where we store the paper target
BB_WRITING_LISTKey where we store the list of things we can write on a paper
BB_GOLIATH_TENTACLESKey where we store the tentacleing ability
BB_GOLIATH_HOLE_TARGETKey where goliath stores a hole it wants to get into
BB_CURRENT_HOMEthe bee hive we live inside
BB_TARGET_HYDROthe hydro we will pollinate
BB_SWARM_TARGETkey to swarm around
BB_FOUND_HONEYthe hive with honey that we will steal from
BB_CLIMBED_TREEthe tree that we will climb
BB_LOBSTROSITY_EXPLOIT_TRAITSLobstrosities will only attack people with one of these traits
BB_LOBSTROSITY_TARGET_LIMBKey where we store some tasty fingers
BB_LOBSTROSITY_FINGER_LUSTWe increment this counter every time we try to move while dragging an arm and if we go too long we'll give up trying to get out of line of sight and just eat the fingers
BB_LOBSTROSITY_NAIVE_HUNTERDoes this carp still target lying mobs even if they aren't stunned, and flee from sary fishermen?
BB_CARPS_FEAR_FISHERMANDoes this carp run from scary fishermen?
BB_GLARE_ABILITYthe death glare ability
BB_BLIND_TARGETthe blind target we must protect
BB_EYE_DAMAGE_THRESHOLDvalue to store the minimum eye damage to prevent us from attacking a human
BB_MACHINE_TARGETthe machine we must go to repair
BB_HIVE_PARTNERthe hivebot partner we will go communicate with
BB_WHELP_STRAIGHTLINE_FIREwhelp's straight line fire ability
BB_WHELP_WIDESPREAD_FIREwhelp's secondary enraged ability
BB_WHELP_ENRAGEDhow enraged the whelp is
BB_TARGET_ROCKthe target rock we will attempt to create a sculpture out of
BB_TARGET_CANNIBALthe cannibal target we shall consume
BB_TARGET_TREEthe tree we will burn down
BB_DOMAIN_ABILITYThe rat's ability to corrupt an area.
BB_RAISE_HORDE_ABILITYThe rat's ability to raise a horde of soldiers.
BB_ARACHNID_RESTRAINability to throw restrain projectiles
BB_SURVEILLANCE_TARGETthe found surveillance item we must destroy
BB_ARACHNID_SLIPour acid slip ability
BB_STORM_APPROACHINGkey that tells if a storm is coming
BB_TARGET_MINERAL_WALLkey that tells the wall we will mine
BB_SPIT_ABILITYkey that holds our spit ability
BB_BURROW_ABILITYkey that holds our dig ability
BB_ORE_TARGETkey that holds the ore we will eat
BB_ORE_IGNORE_TYPESwhich ore types we will not eat
BB_BOULDER_TARGETkey that holds the boulder we will break
BB_VENT_TARGETkey that holds the ore_vent we will harvest boulders from
BB_MINEBOT_LIGHT_ABILITYkey that stores our toggle light ability
BB_MINEBOT_DUMP_ABILITYkey that stores our dump ore ability
BB_TARGET_MINERAL_TURFkey that stores our target turf
BB_MINEBOT_MISSILE_ABILITYkey that holds our missile ability
BB_MINEBOT_LANDMINE_ABILITYkey that holds our landmine ability
BB_BLACKLIST_MINERAL_TURFSkey that stores list of the turfs we ignore
BB_PREVIOUS_UNREACHABLE_WALLkey that stores the previous blocked wall
BB_AUTOMATED_MININGkey that stores our mining mode
BB_NEARBY_DEAD_MINERkey that stores the nearest dead human
BB_DRONE_DEFENDkey that holds the drone we defend
BB_MINIMUM_SHOOTING_DISTANCEkey that holds the minimum distance before we flee
BB_MINER_FRIENDkey that holds the miner we must befriend
BB_MINEBOT_MISSILE_TARGETkey that holds the missile target
BB_MINEBOT_AUTO_DEFENDshould we auto protect?
BB_MINEBOT_REPAIR_DRONEshould we repair drones?
BB_MINEBOT_PLANT_MINESshould we plant mines?
BB_WATERCAN_TARGETthe water can we will pick up
BB_HYDROPLANT_TARGETthe hydrotray we will heal
BB_WEEDLEVEL_THRESHOLDminimum weed levels for us to cure
BB_WATERLEVEL_THRESHOLDminimum water levels for us to refill
BB_SOLARBEAM_ABILITYkey holds our solarbeam ability
BB_RAPIDSEEDS_ABILITYkey holds our rapid seeds ability
BB_BEAMABLE_HYDROPLANT_TARGETkey holds the tray we will beam
BB_LIST_SCARY_ITEMSthe list of items we are afraid of
BB_DEMON_TELEPORT_ABILITYour teleportation ability
BB_TELEPORT_DESTINATIONthe destination of our teleport ability
BB_DEMON_CLONE_ABILITYthe ability to clone ourself
BB_DEMON_SLIP_ABILITYour slippery ice ability
BB_ESCAPE_DESTINATIONthe turf we are escaping to
BB_LEGION_CORPSECorpse we have consumed
BB_LEGION_RECENT_LINESThings our target recently said
BB_LEGION_BROOD_CREATORThe creator of our legion skull
BB_HOME_VILLAGEour home landmark
BB_MAXIMUM_DISTANCE_TO_VILLAGEmaximum distance we can be from home during a storm
BB_MATERIAL_STAND_TARGETstand where we deposit our ores
BB_MOOK_JUMP_ABILITYour jump ability
BB_MOOK_LEAP_ABILITYour leap ability
BB_MOOK_TRIBAL_CHIEFthe chief we must obey
BB_INJURED_MOOKthe injured mook we must heal
BB_MOOK_MUSIC_AUDIENCEthe player we will follow and play music for
BB_MOOK_BONFIRE_TARGETthe bonfire we will light up
BB_TROUGH_TARGETthe trough we will eat from
BB_LEAPER_VOLLEYkey holds our volley ability
BB_LEAPER_FLOPkey holds our flop ability
BB_LEAPER_BUBBLEkey holds our bubble ability
BB_LEAPER_SUMMONkey holds our summon ability
BB_KEY_SWIM_TIMEkey holds the world timer for swimming
BB_SWIM_ALTERNATE_TURFkey holds the water or land target turf
BB_CURRENTLY_SWIMMINGkey holds our state of swimming
BB_KEY_SWIMMER_COOLDOWNkey holds how long we will be swimming for
BB_WIZARD_TARGETED_SPELLKey where we store our main targeted spell
BB_WIZARD_SECONDARY_SPELLKey where we store our secondary, untargeted spell
BB_WIZARD_BLINK_SPELLKey where we store our blink spell
BB_WIZARD_SPELL_COOLDOWNKey for the next time we can cast a spell
BB_TRESSPASSER_TARGETkey that holds the target we will battle over our turf
BB_HOSTILE_MEOWSkey that holds angry meows
BB_MOUSE_TARGETkey that holds the mouse target
BB_CAT_FOOD_TARGETkey that holds our dinner target
BB_FOOD_TO_DELIVERkey that holds the food we must deliver
BB_HUNTABLE_PREYkey that holds things we can hunt
BB_KITTEN_TO_FEEDkey that holds target kitten to feed
BB_HUNGRY_MEOWkey that holds our hungry meows
BB_MAX_DISTANCE_TO_FOODkey that holds maximum distance food is to us so we can pursue it
BB_STOVE_TARGETkey that holds the stove we must turn off
BB_DONUT_TARGETkey that holds the donut we will decorate
BB_CAT_HOMEkey that holds our home...
BB_HUMAN_BEG_TARGETkey that holds the human we will beg
BB_NETGUARDIAN_ROCKET_ABILITYrocket launcher
BB_DEER_WATER_TARGETour water target
BB_DEER_GRASS_TARGETour grass target
BB_DEER_TREE_TARGETour tree target
BB_DEER_PLAYFRIENDour temporary playmate
BB_DEER_TREEHOMEour home target
BB_DEER_RESTINGour resting duration
BB_DEER_NEXT_REST_TIMERtime till our next rest duration

Define Details

BB_ARACHNID_RESTRAIN

ability to throw restrain projectiles

BB_ARACHNID_SLIP

our acid slip ability

BB_AUTOMATED_MINING

key that stores our mining mode

BB_BEAMABLE_HYDROPLANT_TARGET

key holds the tray we will beam

BB_BLACKLIST_MINERAL_TURFS

key that stores list of the turfs we ignore

BB_BLIND_TARGET

the blind target we must protect

BB_BOULDER_TARGET

key that holds the boulder we will break

BB_BURROW_ABILITY

key that holds our dig ability

BB_CARPS_FEAR_FISHERMAN

Does this carp run from scary fishermen?

BB_CAT_FOOD_TARGET

key that holds our dinner target

BB_CAT_HOME

key that holds our home...

BB_CLIMBED_TREE

the tree that we will climb

BB_CURRENTLY_SWIMMING

key holds our state of swimming

BB_CURRENT_HOME

the bee hive we live inside

BB_CYBERSUN_CORE_BARRAGE

key for big laser attack

BB_CYBERSUN_CORE_LIGHTNING

key for lightning strike attack

BB_DEER_GRASS_TARGET

our grass target

BB_DEER_NEXT_REST_TIMER

time till our next rest duration

BB_DEER_PLAYFRIEND

our temporary playmate

BB_DEER_RESTING

our resting duration

BB_DEER_TREEHOME

our home target

BB_DEER_TREE_TARGET

our tree target

BB_DEER_WATER_TARGET

our water target

BB_DEMON_CLONE_ABILITY

the ability to clone ourself

BB_DEMON_SLIP_ABILITY

our slippery ice ability

BB_DEMON_TELEPORT_ABILITY

our teleportation ability

BB_DOMAIN_ABILITY

The rat's ability to corrupt an area.

BB_DONUT_TARGET

key that holds the donut we will decorate

BB_DRONE_DEFEND

key that holds the drone we defend

BB_ESCAPE_DESTINATION

the turf we are escaping to

BB_EYE_DAMAGE_THRESHOLD

value to store the minimum eye damage to prevent us from attacking a human

BB_FESTIVE_APC

Key where we store the charging apc ability

BB_FOOD_TO_DELIVER

key that holds the food we must deliver

BB_FOUND_HONEY

the hive with honey that we will steal from

BB_FOUND_PAPER

Key where we store the paper target

BB_FUGU_INFLATE

Key where we store the inflating ability

BB_GLARE_ABILITY

the death glare ability

BB_GOLIATH_HOLE_TARGET

Key where goliath stores a hole it wants to get into

BB_GOLIATH_TENTACLES

Key where we store the tentacleing ability

BB_HIVE_PARTNER

the hivebot partner we will go communicate with

BB_HOME_VILLAGE

our home landmark

BB_HOSTILE_MEOWS

key that holds angry meows

BB_HUMAN_BEG_TARGET

key that holds the human we will beg

BB_HUNGRY_MEOW

key that holds our hungry meows

BB_HUNTABLE_PREY

key that holds things we can hunt

BB_HYDROPLANT_TARGET

the hydrotray we will heal

BB_INJURED_MOOK

the injured mook we must heal

BB_KEY_SWIMMER_COOLDOWN

key holds how long we will be swimming for

BB_KEY_SWIM_TIME

key holds the world timer for swimming

BB_KITTEN_TO_FEED

key that holds target kitten to feed

BB_LEAPER_BUBBLE

key holds our bubble ability

BB_LEAPER_FLOP

key holds our flop ability

BB_LEAPER_SUMMON

key holds our summon ability

BB_LEAPER_VOLLEY

key holds our volley ability

BB_LEGION_BROOD_CREATOR

The creator of our legion skull

BB_LEGION_CORPSE

Corpse we have consumed

BB_LEGION_RECENT_LINES

Things our target recently said

BB_LIST_SCARY_ITEMS

the list of items we are afraid of

BB_LOBSTROSITY_EXPLOIT_TRAITS

Lobstrosities will only attack people with one of these traits

BB_LOBSTROSITY_FINGER_LUST

We increment this counter every time we try to move while dragging an arm and if we go too long we'll give up trying to get out of line of sight and just eat the fingers

BB_LOBSTROSITY_NAIVE_HUNTER

Does this carp still target lying mobs even if they aren't stunned, and flee from sary fishermen?

BB_LOBSTROSITY_TARGET_LIMB

Key where we store some tasty fingers

BB_MACHINE_TARGET

the machine we must go to repair

BB_MATERIAL_STAND_TARGET

stand where we deposit our ores

BB_MAXIMUM_DISTANCE_TO_VILLAGE

maximum distance we can be from home during a storm

BB_MAX_DISTANCE_TO_FOOD

key that holds maximum distance food is to us so we can pursue it

BB_METEOR_HEART_GROUND_SPIKES

Key where we keep the spike trail ability

BB_METEOR_HEART_SPINE_TRAPS

Key where we keep the spine traps ability

BB_MINEBOT_AUTO_DEFEND

should we auto protect?

BB_MINEBOT_DUMP_ABILITY

key that stores our dump ore ability

BB_MINEBOT_LANDMINE_ABILITY

key that holds our landmine ability

BB_MINEBOT_LIGHT_ABILITY

key that stores our toggle light ability

BB_MINEBOT_MISSILE_ABILITY

key that holds our missile ability

BB_MINEBOT_MISSILE_TARGET

key that holds the missile target

BB_MINEBOT_PLANT_MINES

should we plant mines?

BB_MINEBOT_REPAIR_DRONE

should we repair drones?

BB_MINER_FRIEND

key that holds the miner we must befriend

BB_MINIMUM_SHOOTING_DISTANCE

key that holds the minimum distance before we flee

BB_MOOK_BONFIRE_TARGET

the bonfire we will light up

BB_MOOK_JUMP_ABILITY

our jump ability

BB_MOOK_LEAP_ABILITY

our leap ability

BB_MOOK_MUSIC_AUDIENCE

the player we will follow and play music for

BB_MOOK_TRIBAL_CHIEF

the chief we must obey

BB_MOUSE_TARGET

key that holds the mouse target

BB_NEARBY_DEAD_MINER

key that stores the nearest dead human

BB_NETGUARDIAN_ROCKET_ABILITY

rocket launcher

BB_ORE_IGNORE_TYPES

which ore types we will not eat

BB_ORE_TARGET

key that holds the ore we will eat

BB_PREVIOUS_UNREACHABLE_WALL

key that stores the previous blocked wall

BB_RAISE_HORDE_ABILITY

The rat's ability to raise a horde of soldiers.

BB_RAPIDSEEDS_ABILITY

key holds our rapid seeds ability

BB_SOLARBEAM_ABILITY

key holds our solarbeam ability

BB_SPIDER_WEB_ACTION

Key where we store the web-spinning ability

BB_SPIDER_WEB_TARGET

Key where we store a turf to put webs on

BB_SPIT_ABILITY

key that holds our spit ability

BB_STORM_APPROACHING

key that tells if a storm is coming

BB_STOVE_TARGET

key that holds the stove we must turn off

BB_SURVEILLANCE_TARGET

the found surveillance item we must destroy

BB_SWARM_TARGET

key to swarm around

BB_SWIM_ALTERNATE_TURF

key holds the water or land target turf

BB_TARGET_CANNIBAL

the cannibal target we shall consume

BB_TARGET_HYDRO

the hydro we will pollinate

BB_TARGET_MINERAL_TURF

key that stores our target turf

BB_TARGET_MINERAL_WALL

key that tells the wall we will mine

BB_TARGET_ROCK

the target rock we will attempt to create a sculpture out of

BB_TARGET_TREE

the tree we will burn down

BB_TELEPORT_DESTINATION

the destination of our teleport ability

BB_TRESSPASSER_TARGET

key that holds the target we will battle over our turf

BB_TROUGH_TARGET

the trough we will eat from

BB_VENT_TARGET

key that holds the ore_vent we will harvest boulders from

BB_WATERCAN_TARGET

the water can we will pick up

BB_WATERLEVEL_THRESHOLD

minimum water levels for us to refill

BB_WEEDLEVEL_THRESHOLD

minimum weed levels for us to cure

BB_WHELP_ENRAGED

how enraged the whelp is

BB_WHELP_STRAIGHTLINE_FIRE

whelp's straight line fire ability

BB_WHELP_WIDESPREAD_FIRE

whelp's secondary enraged ability

Key where we store our blink spell

BB_WIZARD_MIMICS

Key where we store the mimics ability

BB_WIZARD_SECONDARY_SPELL

Key where we store our secondary, untargeted spell

BB_WIZARD_SPELL_COOLDOWN

Key for the next time we can cast a spell

BB_WIZARD_SUMMON_MINIONS

Key where we store the summon minions ability

BB_WIZARD_TARGETED_SPELL

Key where we store our main targeted spell

BB_WRITING_LIST

Key where we store the list of things we can write on a paper

\ No newline at end of file diff --git a/code/__DEFINES/ai/pet_commands.html b/code/__DEFINES/ai/pet_commands.html new file mode 100644 index 0000000000000..cb3c1cb928c3f --- /dev/null +++ b/code/__DEFINES/ai/pet_commands.html @@ -0,0 +1 @@ +code/__DEFINES/ai/pet_commands.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ai/pet_commands.dm

BB_ACTIVE_PET_COMMANDBlackboard field for the most recent command the pet was given
BB_CURRENT_PET_TARGETBlackboard field for what we actually want the pet to target
BB_PET_TARGETING_STRATEGYBlackboard field for how we target things, as usually we want to be more permissive than normal
BB_FRIENDS_LISTTypecache of weakrefs to mobs this mob is friends with, will follow their instructions and won't attack them
BB_OWNER_SELF_HARM_RESPONSESList of strings we might say to encourage someone to make better choices.

Define Details

BB_ACTIVE_PET_COMMAND

Blackboard field for the most recent command the pet was given

BB_CURRENT_PET_TARGET

Blackboard field for what we actually want the pet to target

BB_FRIENDS_LIST

Typecache of weakrefs to mobs this mob is friends with, will follow their instructions and won't attack them

BB_OWNER_SELF_HARM_RESPONSES

List of strings we might say to encourage someone to make better choices.

BB_PET_TARGETING_STRATEGY

Blackboard field for how we target things, as usually we want to be more permissive than normal

\ No newline at end of file diff --git a/code/__DEFINES/ai/pets.html b/code/__DEFINES/ai/pets.html new file mode 100644 index 0000000000000..aaece21a7869f --- /dev/null +++ b/code/__DEFINES/ai/pets.html @@ -0,0 +1,5 @@ +code/__DEFINES/ai/pets.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ai/pets.dm

BB_FETCH_IGNORE_LISTDog AI controller blackboard keys
AI_DOG_VISION_RANGEBasically, what is our vision/hearing range for picking up on things to fetch
AI_DOG_PET_FRIEND_PROBWhat are the odds someone petting us will become our friend?
AI_FETCH_IGNORE_DURATIONAfter this long without having fetched something, we clear our ignore list
BB_BABIES_PARTNER_TYPESBaby-making blackboard +Types of animal we can make babies with.
BB_BABIES_CHILD_TYPESTypes of animal that we make as a baby.
BB_BABIES_TARGETCurrent partner target
BB_FOUND_MOMFinding adult mob +key holds the adult we found
BB_FIND_MOM_TYPESlist of types of mobs we will look for
BB_IGNORE_MOM_TYPESlist of types of mobs we must ignore
BB_PARROT_REPEAT_STRINGThe current string that this parrot will repeat back to someone
BB_PARROT_REPEAT_PROBABILITYThe odds that this parrot will repeat back a string
BB_PARROT_PHRASE_CHANGE_PROBABILITYThe odds that this parrot will choose another string to repeat
BB_EXPORTABLE_STRING_BUFFER_LISTA copy of the string buffer that we end the shift with. DO NOT ACCESS THIS DIRECTLY - YOU SHOULD USE THE COMPONENT IN MOST CASES
BB_PARROT_PERCH_TYPESThe types of perches we desire to use
BB_PERCH_TARGETkey that holds our perch target
BB_HOARD_ITEM_TARGETkey that holds our theft item target
BB_THEFT_VICTIMkey that holds the mob we will steal from
BB_HOARD_LOCATIONkey that holds the turf we will be hauling stolen items to
BB_HOARD_LOCATION_RANGEkey that holds the minimum range we must be from the hoard spot
BB_IGNORE_ITEMSkey that holds items we arent interested in hoarding
BB_RUNE_ABILITYour ability to summon runes
BB_CULT_TEAMthe cult team we serve
BB_DEAD_CULTISTour dead cultist we revive
BB_NEARBY_RUNEnearby runes
BB_OCCUPIED_RUNEoccupied runes
BB_FRIENDLY_CULTISTfriendly cultists we befriend
BB_LAST_RECEIVED_MESSAGEthe last PDA message we must relay
BB_VIRTUAL_PET_LEVELour current virtual pet level
BB_NEARBY_PLAYMATEthe target we will play with
BB_NEXT_PLAYDATEcooldown till we search for playmates
BB_LIGHTS_ABILITYour ability to trigger lights
BB_PHOTO_ABILITYour ability to capture images
BB_TRICK_NAMEthe name of our trick
BB_TRICK_SEQUENCEthe sequence of our trick

Define Details

AI_DOG_PET_FRIEND_PROB

What are the odds someone petting us will become our friend?

AI_DOG_VISION_RANGE

Basically, what is our vision/hearing range for picking up on things to fetch

AI_FETCH_IGNORE_DURATION

After this long without having fetched something, we clear our ignore list

BB_BABIES_CHILD_TYPES

Types of animal that we make as a baby.

BB_BABIES_PARTNER_TYPES

Baby-making blackboard +Types of animal we can make babies with.

BB_BABIES_TARGET

Current partner target

BB_CULT_TEAM

the cult team we serve

BB_DEAD_CULTIST

our dead cultist we revive

BB_EXPORTABLE_STRING_BUFFER_LIST

A copy of the string buffer that we end the shift with. DO NOT ACCESS THIS DIRECTLY - YOU SHOULD USE THE COMPONENT IN MOST CASES

BB_FETCH_IGNORE_LIST

Dog AI controller blackboard keys

BB_FIND_MOM_TYPES

list of types of mobs we will look for

BB_FOUND_MOM

Finding adult mob +key holds the adult we found

BB_FRIENDLY_CULTIST

friendly cultists we befriend

BB_HOARD_ITEM_TARGET

key that holds our theft item target

BB_HOARD_LOCATION

key that holds the turf we will be hauling stolen items to

BB_HOARD_LOCATION_RANGE

key that holds the minimum range we must be from the hoard spot

BB_IGNORE_ITEMS

key that holds items we arent interested in hoarding

BB_IGNORE_MOM_TYPES

list of types of mobs we must ignore

BB_LAST_RECEIVED_MESSAGE

the last PDA message we must relay

BB_LIGHTS_ABILITY

our ability to trigger lights

BB_NEARBY_PLAYMATE

the target we will play with

BB_NEARBY_RUNE

nearby runes

BB_NEXT_PLAYDATE

cooldown till we search for playmates

BB_OCCUPIED_RUNE

occupied runes

BB_PARROT_PERCH_TYPES

The types of perches we desire to use

BB_PARROT_PHRASE_CHANGE_PROBABILITY

The odds that this parrot will choose another string to repeat

BB_PARROT_REPEAT_PROBABILITY

The odds that this parrot will repeat back a string

BB_PARROT_REPEAT_STRING

The current string that this parrot will repeat back to someone

BB_PERCH_TARGET

key that holds our perch target

BB_PHOTO_ABILITY

our ability to capture images

BB_RUNE_ABILITY

our ability to summon runes

BB_THEFT_VICTIM

key that holds the mob we will steal from

BB_TRICK_NAME

the name of our trick

BB_TRICK_SEQUENCE

the sequence of our trick

BB_VIRTUAL_PET_LEVEL

our current virtual pet level

\ No newline at end of file diff --git a/code/__DEFINES/ai/simplemob.html b/code/__DEFINES/ai/simplemob.html new file mode 100644 index 0000000000000..5cc568d184c0d --- /dev/null +++ b/code/__DEFINES/ai/simplemob.html @@ -0,0 +1 @@ +code/__DEFINES/ai/simplemob.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ai/simplemob.dm

BB_HOSTILE_ORDER_MODEHostile AI controller blackboard keys
BB_HOSTILE_VISION_RANGEBasically, what is our vision/hearing range.
AI_HOSTILE_COMMAND_COOLDOWNAfter either being given a verbal order or a pointing order, ignore further of each for this duration
HOSTILE_COMMAND_NONEDon't do anything (will still react to stuff around them though)
HOSTILE_COMMAND_ATTACKWill attack a target.
HOSTILE_COMMAND_FOLLOWWill follow a target.

Define Details

AI_HOSTILE_COMMAND_COOLDOWN

After either being given a verbal order or a pointing order, ignore further of each for this duration

BB_HOSTILE_ORDER_MODE

Hostile AI controller blackboard keys

BB_HOSTILE_VISION_RANGE

Basically, what is our vision/hearing range.

HOSTILE_COMMAND_ATTACK

Will attack a target.

HOSTILE_COMMAND_FOLLOW

Will follow a target.

HOSTILE_COMMAND_NONE

Don't do anything (will still react to stuff around them though)

\ No newline at end of file diff --git a/code/__DEFINES/ai/slime.html b/code/__DEFINES/ai/slime.html new file mode 100644 index 0000000000000..398f3a091c5f3 --- /dev/null +++ b/code/__DEFINES/ai/slime.html @@ -0,0 +1 @@ +code/__DEFINES/ai/slime.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ai/slime.dm

BB_SLIME_HUNGER_DISABLEDIf true, the slime will not get hungry, nor hunt
BB_SLIME_HUNGER_LEVELKeeps track how hungry the slime is
BB_SLIME_RABIDIf true, the slime is rabid
BB_SLIME_LIFE_STAGEAre we an adult, or a child
BB_SLIME_EVOLVEOur evolve action
BB_SLIME_REPRODUCEOur reproduce action

Define Details

BB_SLIME_EVOLVE

Our evolve action

BB_SLIME_HUNGER_DISABLED

If true, the slime will not get hungry, nor hunt

BB_SLIME_HUNGER_LEVEL

Keeps track how hungry the slime is

BB_SLIME_LIFE_STAGE

Are we an adult, or a child

BB_SLIME_RABID

If true, the slime is rabid

BB_SLIME_REPRODUCE

Our reproduce action

\ No newline at end of file diff --git a/code/__DEFINES/ai/tourist.html b/code/__DEFINES/ai/tourist.html new file mode 100644 index 0000000000000..da7d2258f5a23 --- /dev/null +++ b/code/__DEFINES/ai/tourist.html @@ -0,0 +1,3 @@ +code/__DEFINES/ai/tourist.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ai/tourist.dm

BB_CUSTOMER_CURRENT_ORDERCorresponds to the customer's order. +This can be a an item typepath or an instance of a custom order datum
BB_CUSTOMER_CUSTOMERINFOA reference to a customer data datum, containing stuff like saylines and food desires
BB_CUSTOMER_EATINGWhether we're busy eating something already
BB_CUSTOMER_ATTENDING_VENUEA reference to the venue being attended
BB_CUSTOMER_LEAVINGWhether we're leaving the venue entirely, either happily or forced out
BB_CUSTOMER_SAID_CANT_FIND_SEAT_LINERobot customer has said their can't find seat line at least once. Used to rate limit how often they'll complain after the first time.

Define Details

BB_CUSTOMER_ATTENDING_VENUE

A reference to the venue being attended

BB_CUSTOMER_CURRENT_ORDER

Corresponds to the customer's order. +This can be a an item typepath or an instance of a custom order datum

BB_CUSTOMER_CUSTOMERINFO

A reference to a customer data datum, containing stuff like saylines and food desires

BB_CUSTOMER_EATING

Whether we're busy eating something already

BB_CUSTOMER_LEAVING

Whether we're leaving the venue entirely, either happily or forced out

BB_CUSTOMER_SAID_CANT_FIND_SEAT_LINE

Robot customer has said their can't find seat line at least once. Used to rate limit how often they'll complain after the first time.

\ No newline at end of file diff --git a/code/__DEFINES/ai/trader.html b/code/__DEFINES/ai/trader.html new file mode 100644 index 0000000000000..01a49223d5e75 --- /dev/null +++ b/code/__DEFINES/ai/trader.html @@ -0,0 +1 @@ +code/__DEFINES/ai/trader.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ai/trader.dm

BB_SETUP_SHOPThe ability to setup our "shop"
BB_SHOP_SPOTReference to the plastic chair that is considered as our shop
BB_FIRST_CUSTOMERReference to our first customer to harass with deals

Define Details

BB_FIRST_CUSTOMER

Reference to our first customer to harass with deals

BB_SETUP_SHOP

The ability to setup our "shop"

BB_SHOP_SPOT

Reference to the plastic chair that is considered as our shop

\ No newline at end of file diff --git a/code/__DEFINES/ai/ventcrawling.html b/code/__DEFINES/ai/ventcrawling.html new file mode 100644 index 0000000000000..43c2b70617ea4 --- /dev/null +++ b/code/__DEFINES/ai/ventcrawling.html @@ -0,0 +1 @@ +code/__DEFINES/ai/ventcrawling.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ai/ventcrawling.dm

BB_ENTRY_VENT_TARGETKey that holds a nearby vent that looks like it's a good place to hide
BB_EXIT_VENT_TARGETKey that holds a vent that we want to exit out of (when we're already in a pipenet)
BB_CURRENTLY_TARGETING_VENTDo we plan on going inside a vent? Boolean.
BB_VENTCRAWL_COOLDOWNHow long should we wait before we try and enter a vent again?
BB_LOWER_VENT_TIME_LIMITThe least amount of time (in seconds) we take to go through the vents.
BB_UPPER_VENT_TIME_LIMITThe most amount of time (in seconds) we take to go through the vents.
BB_TIME_TO_GIVE_UP_ON_VENT_PATHINGHow much time (in seconds) do we take until we completely go bust on vent pathing?
BB_GIVE_UP_ON_VENT_PATHING_TIMER_IDThe timer ID of the timer that makes us give up on vent pathing.

Define Details

BB_CURRENTLY_TARGETING_VENT

Do we plan on going inside a vent? Boolean.

BB_ENTRY_VENT_TARGET

Key that holds a nearby vent that looks like it's a good place to hide

BB_EXIT_VENT_TARGET

Key that holds a vent that we want to exit out of (when we're already in a pipenet)

BB_GIVE_UP_ON_VENT_PATHING_TIMER_ID

The timer ID of the timer that makes us give up on vent pathing.

BB_LOWER_VENT_TIME_LIMIT

The least amount of time (in seconds) we take to go through the vents.

BB_TIME_TO_GIVE_UP_ON_VENT_PATHING

How much time (in seconds) do we take until we completely go bust on vent pathing?

BB_UPPER_VENT_TIME_LIMIT

The most amount of time (in seconds) we take to go through the vents.

BB_VENTCRAWL_COOLDOWN

How long should we wait before we try and enter a vent again?

\ No newline at end of file diff --git a/code/__DEFINES/alarm.html b/code/__DEFINES/alarm.html new file mode 100644 index 0000000000000..5c41f7aa3ef38 --- /dev/null +++ b/code/__DEFINES/alarm.html @@ -0,0 +1 @@ +code/__DEFINES/alarm.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/alarm.dm

ALARM_ATMOSSent by air alarms, indecates something wrong with thier attached atmosphere
ALARM_FIRESent by firelocks when they detect fire, and by fire alarms when a user pulls them
ALARM_POWERSent by apcs when their power starts to fail
ALARM_CAMERASent by cameras when they're disabled in some manner
ALARM_BURGLARSent by display cases when they're broken into
ALARM_MOTIONSent by motion detecting cameras when they well, detect motion

Define Details

ALARM_ATMOS

Sent by air alarms, indecates something wrong with thier attached atmosphere

ALARM_BURGLAR

Sent by display cases when they're broken into

ALARM_CAMERA

Sent by cameras when they're disabled in some manner

ALARM_FIRE

Sent by firelocks when they detect fire, and by fire alarms when a user pulls them

ALARM_MOTION

Sent by motion detecting cameras when they well, detect motion

ALARM_POWER

Sent by apcs when their power starts to fail

\ No newline at end of file diff --git a/code/__DEFINES/alerts.html b/code/__DEFINES/alerts.html new file mode 100644 index 0000000000000..a266f9b029efe --- /dev/null +++ b/code/__DEFINES/alerts.html @@ -0,0 +1 @@ +code/__DEFINES/alerts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/alerts.dm

ALERT_TOO_MUCH_OXYGENAtmos related
ALERT_SUCCUMBMob related
ALERT_XENO_FIREAlien related
ALERT_NEW_LAWSilicon related
ALERT_MECH_DAMAGEMODsuit/Mech related
ALERT_DISGUSTFood related
ALERT_PRESSUREEnvironment related
ALERT_BITRUNNER_CROWBARBitrunning

Define Details

ALERT_BITRUNNER_CROWBAR

Bitrunning

ALERT_DISGUST

Food related

ALERT_MECH_DAMAGE

MODsuit/Mech related

ALERT_NEW_LAW

Silicon related

ALERT_PRESSURE

Environment related

ALERT_SUCCUMB

Mob related

ALERT_TOO_MUCH_OXYGEN

Atmos related

ALERT_XENO_FIRE

Alien related

\ No newline at end of file diff --git a/code/__DEFINES/announcements.html b/code/__DEFINES/announcements.html new file mode 100644 index 0000000000000..86b3fa0fe6716 --- /dev/null +++ b/code/__DEFINES/announcements.html @@ -0,0 +1 @@ +code/__DEFINES/announcements.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/announcements.dm

ANNOUNCEMENT_TYPE_PRIORITYPrefix this announcement with "Priority Announcement"
ANNOUNCEMENT_TYPE_CAPTAINMake it sound like it's coming from the Captain
ANNOUNCEMENT_TYPE_SYNDICATEMake it sound like it's coming from the Syndicate

Define Details

ANNOUNCEMENT_TYPE_CAPTAIN

Make it sound like it's coming from the Captain

ANNOUNCEMENT_TYPE_PRIORITY

Prefix this announcement with "Priority Announcement"

ANNOUNCEMENT_TYPE_SYNDICATE

Make it sound like it's coming from the Syndicate

\ No newline at end of file diff --git a/code/__DEFINES/anomaly.html b/code/__DEFINES/anomaly.html new file mode 100644 index 0000000000000..dbcf1e0fef688 --- /dev/null +++ b/code/__DEFINES/anomaly.html @@ -0,0 +1,9 @@ +code/__DEFINES/anomaly.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/anomaly.dm

ANOMALY_COUNTDOWN_TIMER
ANOMALY_START_MEDIUM_TIMENuisance/funny anomalies +Time in seconds before anomaly spawns
ANOMALY_ANNOUNCE_MEDIUM_TIMETime in seconds before anomaly is announced
ANOMALY_ANNOUNCE_MEDIUM_TEXTLet them know how far away the anomaly is
ANOMALY_START_HARMFUL_TIMEChaotic but not harmful anomalies. Give the station a chance to find it on their own. +Time in seconds before anomaly spawns
ANOMALY_ANNOUNCE_HARMFUL_TIMETime in seconds before anomaly is announced
ANOMALY_ANNOUNCE_HARMFUL_TEXTLet them know how far away the anomaly is
ANOMALY_START_DANGEROUS_TIMEAnomalies that can fuck you up. Give them a bit of warning. +Time in seconds before anomaly spawns
ANOMALY_ANNOUNCE_DANGEROUS_TIMETime in seconds before anomaly is announced
ANOMALY_ANNOUNCE_DANGEROUS_TEXTLet them know how far away the anomaly is

Define Details

ANOMALY_ANNOUNCE_DANGEROUS_TEXT

Let them know how far away the anomaly is

ANOMALY_ANNOUNCE_DANGEROUS_TIME

Time in seconds before anomaly is announced

ANOMALY_ANNOUNCE_HARMFUL_TEXT

Let them know how far away the anomaly is

ANOMALY_ANNOUNCE_HARMFUL_TIME

Time in seconds before anomaly is announced

ANOMALY_ANNOUNCE_MEDIUM_TEXT

Let them know how far away the anomaly is

ANOMALY_ANNOUNCE_MEDIUM_TIME

Time in seconds before anomaly is announced

ANOMALY_COUNTDOWN_TIMER

Anomaly Defines

+

This file contains defines for the random event anomaly subtypes. +Time in ticks before the anomaly goes poof/explodes depending on type.

ANOMALY_START_DANGEROUS_TIME

Anomalies that can fuck you up. Give them a bit of warning. +Time in seconds before anomaly spawns

ANOMALY_START_HARMFUL_TIME

Chaotic but not harmful anomalies. Give the station a chance to find it on their own. +Time in seconds before anomaly spawns

ANOMALY_START_MEDIUM_TIME

Nuisance/funny anomalies +Time in seconds before anomaly spawns

\ No newline at end of file diff --git a/code/__DEFINES/antagonists.html b/code/__DEFINES/antagonists.html new file mode 100644 index 0000000000000..0bbcc5eeb4898 --- /dev/null +++ b/code/__DEFINES/antagonists.html @@ -0,0 +1,16 @@ +code/__DEFINES/antagonists.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/antagonists.dm

CHALLENGE_MIN_PLAYERSMin players requireed for nukes to declare war
PAYOFF_MINMinimum amount the pirates will demand
RESPONSE_MAX_TIMEHow long pirates will wait for a response before attacking
COME_BACK_FROM_CAPTURE_TIMEHow long till a spessman should come back after being captured and sent to the holding facility (which some antags use)
ELIMINATION_NEUTRALDoes not stop elimination hijacking but itself won't elimination hijack
ELIMINATION_ENABLEDNeeds to be present for shuttle to be elimination hijacked
ELIMINATION_PREVENTPrevents elimination hijack same way as non-antags
HERETIC_NO_HEART_ORGANDefines are used in /proc/has_living_heart() to report if the heretic has no heart period, no living heart, or has a living heart.
MAX_KNOWLEDGE_PRIORITYA define used in ritual priority for heretics.
IS_VALID_GHOUL_MOBChecks if the passed mob can become a heretic ghoul.
BLOB_FORCE_PLACEMENTForces the blob to place the core where they currently are, ignoring any checks.
BLOB_NORMAL_PLACEMENTNormal blob placement, does the regular checks to make sure the blob isn't placing itself in an invalid location
BLOB_RANDOM_PLACEMENTSelects a random location for the blob to be placed.
WIZARD_LOADOUT_CLASSICThe Classic Wizard wizard loadout.
WIZARD_LOADOUT_MJOLNIRMjolnir's Power wizard loadout.
WIZARD_LOADOUT_WIZARMYFantastical Army wizard loadout.
WIZARD_LOADOUT_SOULTAPSoul Tapper wizard loadout.
ALL_WIZARD_LOADOUTSConvenient list of all wizard loadouts for unit testing.
GRAND_RITUAL_FINALE_COUNTNumber of times you need to perform the grand ritual to complete it
GRAND_RITUAL_RUNES_WARNING_POTENCYThe crew will start being warned every time a rune is created after this many invocations.
GRAND_RITUAL_IMMINENT_FINALE_POTENCYThe crew will get a louder warning when this level of rune is created, and the next one will be special
LOG_SPELL_TYPEUsed in logging spells for roundend results
TRAITOR_FLAVOR_FILEFile to the traitor flavor
MALFUNCTION_FLAVOR_FILEFile to the malf flavor
HERETIC_INFLUENCE_FILEJSON string file for all of our heretic influence flavors
SPY_OBJECTIVE_FILEJSON file containing spy objectives
IS_TRAITORChecks if the given mob is a traitor
IS_CULTISTCult checks +Checks if the given mob is a blood cultist
GET_CULTISTChecks if the given mob is a blood cultist and is guaranteed to return the datum if possible - will cause issues with above trait
IS_CULTIST_OR_CULTIST_MOBChecks if the mob is a sentient or non-sentient cultist
IS_HERETICHeretic checks +Checks if the given mob is a heretic.
GET_HERETICChecks if the given mob is a heretic and is guaranteed to return the datum if possible - will cause issues with above trait
IS_HERETIC_MONSTERCheck if the given mob is a heretic monster.
IS_LUNATICCheck if the given mob is a lunatic
IS_HERETIC_OR_MONSTERChecks if the given mob is either a heretic, heretic monster or a lunatic.
IS_IN_MANSUSCHecks if the given mob is in the mansus realm
IS_CHANGELINGEtc. +Checks if the given mob is a changeling
IS_NUKE_OPChecks if the given mob is a nuclear operative
IS_WIZARDChecks if the given mob is a wizard
IS_REVOLUTIONARYChecks if the given mob is a revolutionary. Will return TRUE for rev heads as well.
IS_HEAD_REVOLUTIONARYChecks if the given mob is a head revolutionary.
IS_MALF_AIChecks if the given mob is a malf ai.
IS_SPYChecks if the given mob is a spy!
IS_HUMAN_INVADERReturns true if the given mob has an antag datum which is assigned to a human antagonist who doesn't spawn on the space station
ANTAGONIST_PREVIEW_ICON_SIZEThe dimensions of the antagonist preview icon. Will be scaled to this size.
OBJECTIVE_ITEM_TYPE_NORMALCan appear in everything
OBJECTIVE_ITEM_TYPE_TRAITOROnly appears in traitor objectives
OBJECTIVE_ITEM_TYPE_SPYOnly appears for spy bounties
HIJACK_PROBChance that the traitor could roll hijack if the pop limit is met.
HIJACK_MIN_PLAYERSHijack is unavailable as a random objective below this player count.
MARTYR_PROBChance the traitor gets a martyr objective instead of having to escape alive, as long as all the objectives are martyr compatible.
KILL_PROBChance the traitor gets a kill objective. If this prob fails, they will get a steal objective instead.
DESTROY_AI_PROBIf a kill objective is rolled, chance that it is to destroy the AI.
MAROON_PROBIf the destroy AI objective doesn't roll, chance that we'll get a maroon instead. If this prob fails, they will get a generic assassinate objective instead.
TELECRYSTALS_DEFAULTHow many telecrystals a normal traitor starts with
TELECRYSTALS_PRELOADED_IMPLANTHow many telecrystals mapper/admin only "precharged" uplink implant
UPLINK_IMPLANT_TELECRYSTAL_COSTThe normal cost of an uplink implant; used for calcuating how many +TC to charge someone if they get a free implant through choice or +because they have nothing else that supports an implant.
UPLINK_SHARED_STOCK_UNIQUEItems with this stock key do not share stock with other items
UPLINK_SHARED_STOCK_KITSStock keys for items that share inventory stock
SYNDIE_ILLEGAL_TECHDoes this item provide illegal tech?
SYNDIE_TRIPS_CONTRABANDDoes this item go off when scanned by a contraband scanner?
OBJECTIVE_STATE_INACTIVEIf the objective hasn't been taken yet
OBJECTIVE_STATE_ACTIVEIf the objective is active and ongoing
OBJECTIVE_STATE_COMPLETEDIf the objective has been completed.
OBJECTIVE_STATE_FAILEDIf the objective has failed.
OBJECTIVE_STATE_INVALIDIf the objective is no longer valid
OBJECTIVE_WEIGHT_VERY_UNLIKELYWeights for traitor objective categories
ANTAG_GROUP_ABDUCTORSAntag panel groups
CHANGELING_POWER_INNATEChangeling abilities with DNA cost = this are innately given to all changelings
CHANGELING_POWER_UNOBTAINABLEChangeling abilities with DNA cost = this are not obtainable by changelings - either used for secret unlockable or abstract abilities
LING_ABSORB_RECENT_SPEECHFor changelings, this is how many recent say lines are retained when absorbing a mob
SPY_DIFFICULTY_EASYCan easily be accomplished by any job without any specialized tools, people won't really miss these things
SPY_DIFFICULTY_MEDIUMRequires some specialized tools, knowledge, or access to accomplish, may require getting into conflict with the crew
SPY_DIFFICULTY_HARDVery difficult to accomplish, almost guaranteed to require crew conflict
BATTLE_ROYALE_CAMERA_NETCamera net used by battle royale objective

Define Details

ALL_WIZARD_LOADOUTS

Convenient list of all wizard loadouts for unit testing.

ANTAGONIST_PREVIEW_ICON_SIZE

The dimensions of the antagonist preview icon. Will be scaled to this size.

ANTAG_GROUP_ABDUCTORS

Antag panel groups

BATTLE_ROYALE_CAMERA_NET

Camera net used by battle royale objective

BLOB_FORCE_PLACEMENT

Forces the blob to place the core where they currently are, ignoring any checks.

BLOB_NORMAL_PLACEMENT

Normal blob placement, does the regular checks to make sure the blob isn't placing itself in an invalid location

BLOB_RANDOM_PLACEMENT

Selects a random location for the blob to be placed.

CHALLENGE_MIN_PLAYERS

Min players requireed for nukes to declare war

CHANGELING_POWER_INNATE

Changeling abilities with DNA cost = this are innately given to all changelings

CHANGELING_POWER_UNOBTAINABLE

Changeling abilities with DNA cost = this are not obtainable by changelings - either used for secret unlockable or abstract abilities

COME_BACK_FROM_CAPTURE_TIME

How long till a spessman should come back after being captured and sent to the holding facility (which some antags use)

DESTROY_AI_PROB

If a kill objective is rolled, chance that it is to destroy the AI.

ELIMINATION_ENABLED

Needs to be present for shuttle to be elimination hijacked

ELIMINATION_NEUTRAL

Does not stop elimination hijacking but itself won't elimination hijack

ELIMINATION_PREVENT

Prevents elimination hijack same way as non-antags

GET_CULTIST

Checks if the given mob is a blood cultist and is guaranteed to return the datum if possible - will cause issues with above trait

GET_HERETIC

Checks if the given mob is a heretic and is guaranteed to return the datum if possible - will cause issues with above trait

GRAND_RITUAL_FINALE_COUNT

Number of times you need to perform the grand ritual to complete it

GRAND_RITUAL_IMMINENT_FINALE_POTENCY

The crew will get a louder warning when this level of rune is created, and the next one will be special

GRAND_RITUAL_RUNES_WARNING_POTENCY

The crew will start being warned every time a rune is created after this many invocations.

HERETIC_INFLUENCE_FILE

JSON string file for all of our heretic influence flavors

HERETIC_NO_HEART_ORGAN

Defines are used in /proc/has_living_heart() to report if the heretic has no heart period, no living heart, or has a living heart.

HIJACK_MIN_PLAYERS

Hijack is unavailable as a random objective below this player count.

HIJACK_PROB

Chance that the traitor could roll hijack if the pop limit is met.

IS_CHANGELING

Etc. +Checks if the given mob is a changeling

IS_CULTIST

Cult checks +Checks if the given mob is a blood cultist

IS_CULTIST_OR_CULTIST_MOB

Checks if the mob is a sentient or non-sentient cultist

IS_HEAD_REVOLUTIONARY

Checks if the given mob is a head revolutionary.

IS_HERETIC

Heretic checks +Checks if the given mob is a heretic.

IS_HERETIC_MONSTER

Check if the given mob is a heretic monster.

IS_HERETIC_OR_MONSTER

Checks if the given mob is either a heretic, heretic monster or a lunatic.

IS_HUMAN_INVADER

Returns true if the given mob has an antag datum which is assigned to a human antagonist who doesn't spawn on the space station

IS_IN_MANSUS

CHecks if the given mob is in the mansus realm

IS_LUNATIC

Check if the given mob is a lunatic

IS_MALF_AI

Checks if the given mob is a malf ai.

IS_NUKE_OP

Checks if the given mob is a nuclear operative

IS_REVOLUTIONARY

Checks if the given mob is a revolutionary. Will return TRUE for rev heads as well.

IS_SPY

Checks if the given mob is a spy!

IS_TRAITOR

Checks if the given mob is a traitor

IS_VALID_GHOUL_MOB

Checks if the passed mob can become a heretic ghoul.

+

IS_WIZARD

Checks if the given mob is a wizard

KILL_PROB

Chance the traitor gets a kill objective. If this prob fails, they will get a steal objective instead.

LING_ABSORB_RECENT_SPEECH

For changelings, this is how many recent say lines are retained when absorbing a mob

LOG_SPELL_TYPE

Used in logging spells for roundend results

MALFUNCTION_FLAVOR_FILE

File to the malf flavor

MAROON_PROB

If the destroy AI objective doesn't roll, chance that we'll get a maroon instead. If this prob fails, they will get a generic assassinate objective instead.

MARTYR_PROB

Chance the traitor gets a martyr objective instead of having to escape alive, as long as all the objectives are martyr compatible.

MAX_KNOWLEDGE_PRIORITY

A define used in ritual priority for heretics.

OBJECTIVE_ITEM_TYPE_NORMAL

Can appear in everything

OBJECTIVE_ITEM_TYPE_SPY

Only appears for spy bounties

OBJECTIVE_ITEM_TYPE_TRAITOR

Only appears in traitor objectives

OBJECTIVE_STATE_ACTIVE

If the objective is active and ongoing

OBJECTIVE_STATE_COMPLETED

If the objective has been completed.

OBJECTIVE_STATE_FAILED

If the objective has failed.

OBJECTIVE_STATE_INACTIVE

If the objective hasn't been taken yet

OBJECTIVE_STATE_INVALID

If the objective is no longer valid

OBJECTIVE_WEIGHT_VERY_UNLIKELY

Weights for traitor objective categories

PAYOFF_MIN

Minimum amount the pirates will demand

RESPONSE_MAX_TIME

How long pirates will wait for a response before attacking

SPY_DIFFICULTY_EASY

Can easily be accomplished by any job without any specialized tools, people won't really miss these things

SPY_DIFFICULTY_HARD

Very difficult to accomplish, almost guaranteed to require crew conflict

SPY_DIFFICULTY_MEDIUM

Requires some specialized tools, knowledge, or access to accomplish, may require getting into conflict with the crew

SPY_OBJECTIVE_FILE

JSON file containing spy objectives

SYNDIE_ILLEGAL_TECH

Does this item provide illegal tech?

SYNDIE_TRIPS_CONTRABAND

Does this item go off when scanned by a contraband scanner?

TELECRYSTALS_DEFAULT

How many telecrystals a normal traitor starts with

TELECRYSTALS_PRELOADED_IMPLANT

How many telecrystals mapper/admin only "precharged" uplink implant

TRAITOR_FLAVOR_FILE

File to the traitor flavor

The normal cost of an uplink implant; used for calcuating how many +TC to charge someone if they get a free implant through choice or +because they have nothing else that supports an implant.

Stock keys for items that share inventory stock

Items with this stock key do not share stock with other items

WIZARD_LOADOUT_CLASSIC

The Classic Wizard wizard loadout.

WIZARD_LOADOUT_MJOLNIR

Mjolnir's Power wizard loadout.

WIZARD_LOADOUT_SOULTAP

Soul Tapper wizard loadout.

WIZARD_LOADOUT_WIZARMY

Fantastical Army wizard loadout.

\ No newline at end of file diff --git a/code/__DEFINES/apc_defines.html b/code/__DEFINES/apc_defines.html new file mode 100644 index 0000000000000..3dcfa369ef387 --- /dev/null +++ b/code/__DEFINES/apc_defines.html @@ -0,0 +1 @@ +code/__DEFINES/apc_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/apc_defines.dm

APC_ELECTRONICS_MISSINGThere are no electronics in the APC.
APC_ELECTRONICS_INSTALLEDThe electronics are installed but not secured.
APC_ELECTRONICS_SECUREDThe electronics are installed and secured.
APC_COVER_CLOSEDThe APCs cover is closed.
APC_COVER_OPENEDThe APCs cover is open.
APC_COVER_REMOVEDThe APCs cover is missing.
APC_PIXEL_OFFSETPixel offset of the APC from the floor turf
APC_NOT_CHARGINGThe APC is not charging.
APC_CHARGINGThe APC is charging.
APC_FULLY_CHARGEDThe APC is fully charged.
APC_CHANNEL_OFFThe APCs power channel is manually set off.
APC_CHANNEL_AUTO_OFFThe APCs power channel is automatically off.
APC_CHANNEL_ONThe APCs power channel is manually set on.
APC_CHANNEL_AUTO_ONThe APCs power channel is automatically on.
AUTOSET_FORCE_OFFThe APC turns automated and manual power channels off.
AUTOSET_OFFThe APC turns automated power channels off.
AUTOSET_ONThe APC turns automated power channels on.
APC_NO_POWERThe APC either isn't attached to a powernet or there is no power on the external powernet.
APC_LOW_POWERThe APCs external powernet does not have enough power to charge the APC.
APC_HAS_POWERThe APCs external powernet has enough power to charge the APC.
APC_RESET_EMPThe wire value used to reset the APCs wires after one's EMPed.
UPSTATE_COVER_SHIFTThe bit shift for the APCs cover status.
UPSTATE_OPENED1The bitflag representing the APCs cover being open for icon purposes.
UPSTATE_OPENED2The bitflag representing the APCs cover being missing for icon purposes.
UPSTATE_CELL_INThe APC has a power cell.
UPSTATE_BROKEThe APC is broken or damaged.
UPSTATE_MAINTThe APC is undergoing maintenance.
UPSTATE_WIREEXPThe APCs wires are exposed.
UPOVERLAY_OPERATINGBitflag indicating that the APCs operating status overlay should be shown.
UPOVERLAY_LOCKEDBitflag indicating that the APCs locked status overlay should be shown.
UPOVERLAY_CHARGING_SHIFTBit shift for the charging status of the APC.
UPOVERLAY_EQUIPMENT_SHIFTBit shift for the equipment status of the APC.
UPOVERLAY_LIGHTING_SHIFTBit shift for the lighting channel status of the APC.
UPOVERLAY_ENVIRON_SHIFTBit shift for the environment channel status of the APC.

Define Details

APC_CHANNEL_AUTO_OFF

The APCs power channel is automatically off.

APC_CHANNEL_AUTO_ON

The APCs power channel is automatically on.

APC_CHANNEL_OFF

The APCs power channel is manually set off.

APC_CHANNEL_ON

The APCs power channel is manually set on.

APC_CHARGING

The APC is charging.

APC_COVER_CLOSED

The APCs cover is closed.

APC_COVER_OPENED

The APCs cover is open.

APC_COVER_REMOVED

The APCs cover is missing.

APC_ELECTRONICS_INSTALLED

The electronics are installed but not secured.

APC_ELECTRONICS_MISSING

There are no electronics in the APC.

APC_ELECTRONICS_SECURED

The electronics are installed and secured.

APC_FULLY_CHARGED

The APC is fully charged.

APC_HAS_POWER

The APCs external powernet has enough power to charge the APC.

APC_LOW_POWER

The APCs external powernet does not have enough power to charge the APC.

APC_NOT_CHARGING

The APC is not charging.

APC_NO_POWER

The APC either isn't attached to a powernet or there is no power on the external powernet.

APC_PIXEL_OFFSET

Pixel offset of the APC from the floor turf

APC_RESET_EMP

The wire value used to reset the APCs wires after one's EMPed.

AUTOSET_FORCE_OFF

The APC turns automated and manual power channels off.

AUTOSET_OFF

The APC turns automated power channels off.

AUTOSET_ON

The APC turns automated power channels on.

UPOVERLAY_CHARGING_SHIFT

Bit shift for the charging status of the APC.

UPOVERLAY_ENVIRON_SHIFT

Bit shift for the environment channel status of the APC.

UPOVERLAY_EQUIPMENT_SHIFT

Bit shift for the equipment status of the APC.

UPOVERLAY_LIGHTING_SHIFT

Bit shift for the lighting channel status of the APC.

UPOVERLAY_LOCKED

Bitflag indicating that the APCs locked status overlay should be shown.

UPOVERLAY_OPERATING

Bitflag indicating that the APCs operating status overlay should be shown.

UPSTATE_BROKE

The APC is broken or damaged.

UPSTATE_CELL_IN

The APC has a power cell.

UPSTATE_COVER_SHIFT

The bit shift for the APCs cover status.

UPSTATE_MAINT

The APC is undergoing maintenance.

UPSTATE_OPENED1

The bitflag representing the APCs cover being open for icon purposes.

UPSTATE_OPENED2

The bitflag representing the APCs cover being missing for icon purposes.

UPSTATE_WIREEXP

The APCs wires are exposed.

\ No newline at end of file diff --git a/code/__DEFINES/arcades.html b/code/__DEFINES/arcades.html new file mode 100644 index 0000000000000..8c588216bade7 --- /dev/null +++ b/code/__DEFINES/arcades.html @@ -0,0 +1 @@ +code/__DEFINES/arcades.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/arcades.dm

WEAPON_SLOTGoes in the Weapon slot.
ARMOR_SLOTGoes in the Armor slot.

Define Details

ARMOR_SLOT

Goes in the Armor slot.

WEAPON_SLOT

Goes in the Weapon slot.

\ No newline at end of file diff --git a/code/__DEFINES/art.html b/code/__DEFINES/art.html new file mode 100644 index 0000000000000..b4de5d11673da --- /dev/null +++ b/code/__DEFINES/art.html @@ -0,0 +1,5 @@ +code/__DEFINES/art.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/art.dm

TAB_LIBRARYtgui tab portrait categories- they're the same across all portrait tguis.
CRAYON_COST_SMALLcost defines for drawing graffiti: how many charges of a crayon or spraycan are used.
PATRONAGE_OK_FRAMEPatronage thresholds for paintings. +Different cosmetic frames become available as more credits are spent on the patronage. +These also influence the artistic value (read: positive moodlets) of a painting.

Define Details

CRAYON_COST_SMALL

cost defines for drawing graffiti: how many charges of a crayon or spraycan are used.

PATRONAGE_OK_FRAME

Patronage thresholds for paintings. +Different cosmetic frames become available as more credits are spent on the patronage. +These also influence the artistic value (read: positive moodlets) of a painting.

TAB_LIBRARY

tgui tab portrait categories- they're the same across all portrait tguis.

\ No newline at end of file diff --git a/code/__DEFINES/assemblies.html b/code/__DEFINES/assemblies.html new file mode 100644 index 0000000000000..f63055f3216e2 --- /dev/null +++ b/code/__DEFINES/assemblies.html @@ -0,0 +1 @@ +code/__DEFINES/assemblies.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/assemblies.dm

ASSEMBLY_NO_DUPLICATESWhen combined in a holder, blacklists duplicate assemblies
ASSEMBLY_BEEP_VOLUMEHow loud do assemblies beep at
HOLDER_MAX_ASSEMBLIESThe max amount of assemblies attachable on an assembly holder

Define Details

ASSEMBLY_BEEP_VOLUME

How loud do assemblies beep at

ASSEMBLY_NO_DUPLICATES

When combined in a holder, blacklists duplicate assemblies

HOLDER_MAX_ASSEMBLIES

The max amount of assemblies attachable on an assembly holder

\ No newline at end of file diff --git a/code/__DEFINES/assert.html b/code/__DEFINES/assert.html new file mode 100644 index 0000000000000..588afcb7c3392 --- /dev/null +++ b/code/__DEFINES/assert.html @@ -0,0 +1 @@ +code/__DEFINES/assert.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/assert.dm

ASSERTOverride BYOND's native ASSERT to optionally specify a message

Define Details

ASSERT

Override BYOND's native ASSERT to optionally specify a message

\ No newline at end of file diff --git a/code/__DEFINES/atmospherics/atmos_core.html b/code/__DEFINES/atmospherics/atmos_core.html new file mode 100644 index 0000000000000..b034cd6d20d12 --- /dev/null +++ b/code/__DEFINES/atmospherics/atmos_core.html @@ -0,0 +1,19 @@ +code/__DEFINES/atmospherics/atmos_core.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/atmospherics/atmos_core.dm

MOLESAmount of total moles in said gas mixture
ARCHIVEArchived version of MOLES
GAS_METAAll gas related variables
META_GAS_SPECIFIC_HEATGas specific heat per mole
META_GAS_NAMEName of the gas
META_GAS_MOLES_VISIBLEAmount of moles required of the gas to be visible
META_GAS_OVERLAYOverlay path of the gas, also setup the alpha based on the amount
META_GAS_DANGERLet the air alarm know if the gas is dangerous
META_GAS_IDId of the gas for quick access
META_GAS_FUSION_POWERPower of the gas when used in the current iteration of fusion
META_GAS_DESCShort description of the gas.
R_IDEAL_GAS_EQUATIONkPaL/(Kmol)
ONE_ATMOSPHEREkPa
TCMB-270.3degC
T0C0degC
T20C20degC
COLD_ROOM_TEMP-14C - Temperature used for kitchen cold room, medical freezer, etc.
MINIMUM_HEAT_CAPACITYI feel the need to document what happens here. Basically this is used +catch rounding errors, and make gas go away in small portions. +People have raised it to higher levels in the past, do not do this. Consider this number a soft limit +If you're making gasmixtures that have unexpected behavior related to this value, you're doing something wrong.
MINIMUM_MOLE_COUNTMinimum mole count of a gas
MOLAR_ACCURACYMolar accuracy to round to
GAS_TYPE_COUNTTypes of gases (based on gaslist_cache)
MAXIMUM_ERROR_GAS_REMOVALMaximum error caused by QUANTIZE when removing gas (roughly, in reality around 2 * MOLAR_ACCURACY less)
MOLES_GAS_VISIBLEMoles in a standard cell after which gases are visible
FACTOR_GAS_VISIBLE_MAXmoles_visible * FACTOR_GAS_VISIBLE_MAX = Moles after which gas is at maximum visibility
MOLES_GAS_VISIBLE_STEPMole step for alpha updates. This means alpha can update at 0.25, 0.5, 0.75 and so on
TOTAL_VISIBLE_STATESThe total visible states
NO_REACTIONThe gas mixture is not reacting
REACTINGThe gas mixture is reacting
STOP_REACTIONSThe gas mixture is able to stop all reactions
FUSION_INSTABILITY_ENDOTHERMALITYMaximum instability before the reaction goes endothermic
FUSION_MAXIMUM_TEMPERATUREMaximum reachable fusion temperature
EXCITED_GROUP_BREAKDOWN_CYCLESSome further context on breakdown. Unlike dismantle, the breakdown ticker doesn't reset itself when a tile is added +This is because we cannot expect maps to have small spaces, so we need to even ourselves out often +We do this to avoid equalizing a large space in one tick, with some significant amount of say heat diff +This way large areas don't suddenly all become cold at once, it acts more like a wave
EXCITED_GROUP_DISMANTLE_CYCLESnumber of FULL air controller ticks before an excited group dismantles and removes its turfs from active
MINIMUM_AIR_RATIO_TO_SUSPENDRatio of air that must move to/from a tile to reset group processing
MINIMUM_AIR_RATIO_TO_MOVEMinimum ratio of air that must move to/from a tile
MINIMUM_AIR_TO_SUSPENDMinimum amount of air that has to move before a group processing can be suspended (Round about 10)
MINIMUM_MOLES_DELTA_TO_MOVEEither this must be active (round about 0.1) //Might need to raise this a tad to better support space leaks. we'll see
MINIMUM_TEMPERATURE_TO_MOVEor this (or both, obviously)
MINIMUM_TEMPERATURE_DELTA_TO_SUSPENDMinimum temperature difference before group processing is suspended
MINIMUM_TEMPERATURE_DELTA_TO_CONSIDERMinimum temperature difference before the gas temperatures are just set to be equal
MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTIONMinimum temperature to continue superconduction once started
MINIMUM_TEMPERATURE_START_SUPERCONDUCTIONMinimum temperature to start doing superconduction calculations
WINDOW_HEAT_TRANSFER_COEFFICIENTa hack for now
HEAT_CAPACITY_VACUUMa hack to help make vacuums "cold", sacrificing realism for gameplay
FIRE_MINIMUM_TEMPERATURE_TO_SPREADMinimum temperature for fire to move to the next turf (150 °C or 433 K)
FIRE_MINIMUM_TEMPERATURE_TO_EXISTMinimum temperature for fire to exist on a turf (100 °C or 373 K)
FIRE_SPREAD_RADIOSITY_SCALEMultiplier for the temperature shared to other turfs
FIRE_GROWTH_RATEHelper for small fires to grow
COLD_FIRE_SPREAD_RADIOSITY_SCALEMultiplier for the temperature shared to other turfs
MOLES_CELLSTANDARDmoles in a 2.5 m^3 cell at 101.325 Pa and 20 degC (103 or so)
M_CELL_WITH_RATIOcompared against for superconductivity
O2STANDARDpercentage of oxygen in a normal mixture of air
N2STANDARDsame but for nitrogen
MOLES_O2STANDARDO2 standard value (21%)
MOLES_N2STANDARDN2 standard value (79%)
CELL_VOLUMEliters in a cell
O2_ANESTHETICO2 value for anesthetic canister
N2O_ANESTHETICN2O value for anesthetic canister
ATMOS_PASS_PROCask can_atmos_pass()
ATMOS_PASS_DENSITYjust check density
NORMAL_TURFNormal non-active turf
MAKE_ACTIVESet the turf to be activated on the next calculation
KILL_EXCITEDDisable excited group
ATMOS_PRESSURE_APPROXIMATION_ITERATIONSHow many maximum iterations do we allow the Newton-Raphson approximation for gas pressure to do.
ATMOS_PRESSURE_ERROR_TOLERANCEWe deal with big numbers and a lot of math, things are bound to get imprecise. Take this traveller.

Define Details

ARCHIVE

Archived version of MOLES

ATMOS_PASS_DENSITY

just check density

ATMOS_PASS_PROC

ask can_atmos_pass()

ATMOS_PRESSURE_APPROXIMATION_ITERATIONS

How many maximum iterations do we allow the Newton-Raphson approximation for gas pressure to do.

ATMOS_PRESSURE_ERROR_TOLERANCE

We deal with big numbers and a lot of math, things are bound to get imprecise. Take this traveller.

CELL_VOLUME

liters in a cell

COLD_FIRE_SPREAD_RADIOSITY_SCALE

Multiplier for the temperature shared to other turfs

COLD_ROOM_TEMP

-14C - Temperature used for kitchen cold room, medical freezer, etc.

EXCITED_GROUP_BREAKDOWN_CYCLES

Some further context on breakdown. Unlike dismantle, the breakdown ticker doesn't reset itself when a tile is added +This is because we cannot expect maps to have small spaces, so we need to even ourselves out often +We do this to avoid equalizing a large space in one tick, with some significant amount of say heat diff +This way large areas don't suddenly all become cold at once, it acts more like a wave

+

Because of this and the behavior of share(), the breakdown cycles value can be tweaked directly to effect how fast we want gas to move +number of FULL air controller ticks before an excited group breaks down (averages gas contents across turfs)

EXCITED_GROUP_DISMANTLE_CYCLES

number of FULL air controller ticks before an excited group dismantles and removes its turfs from active

FACTOR_GAS_VISIBLE_MAX

moles_visible * FACTOR_GAS_VISIBLE_MAX = Moles after which gas is at maximum visibility

FIRE_GROWTH_RATE

Helper for small fires to grow

FIRE_MINIMUM_TEMPERATURE_TO_EXIST

Minimum temperature for fire to exist on a turf (100 °C or 373 K)

FIRE_MINIMUM_TEMPERATURE_TO_SPREAD

Minimum temperature for fire to move to the next turf (150 °C or 433 K)

FIRE_SPREAD_RADIOSITY_SCALE

Multiplier for the temperature shared to other turfs

FUSION_INSTABILITY_ENDOTHERMALITY

Maximum instability before the reaction goes endothermic

FUSION_MAXIMUM_TEMPERATURE

Maximum reachable fusion temperature

GAS_META

All gas related variables

GAS_TYPE_COUNT

Types of gases (based on gaslist_cache)

HEAT_CAPACITY_VACUUM

a hack to help make vacuums "cold", sacrificing realism for gameplay

KILL_EXCITED

Disable excited group

MAKE_ACTIVE

Set the turf to be activated on the next calculation

MAXIMUM_ERROR_GAS_REMOVAL

Maximum error caused by QUANTIZE when removing gas (roughly, in reality around 2 * MOLAR_ACCURACY less)

META_GAS_DANGER

Let the air alarm know if the gas is dangerous

META_GAS_DESC

Short description of the gas.

META_GAS_FUSION_POWER

Power of the gas when used in the current iteration of fusion

META_GAS_ID

Id of the gas for quick access

META_GAS_MOLES_VISIBLE

Amount of moles required of the gas to be visible

META_GAS_NAME

Name of the gas

META_GAS_OVERLAY

Overlay path of the gas, also setup the alpha based on the amount

META_GAS_SPECIFIC_HEAT

Gas specific heat per mole

MINIMUM_AIR_RATIO_TO_MOVE

Minimum ratio of air that must move to/from a tile

MINIMUM_AIR_RATIO_TO_SUSPEND

Ratio of air that must move to/from a tile to reset group processing

MINIMUM_AIR_TO_SUSPEND

Minimum amount of air that has to move before a group processing can be suspended (Round about 10)

MINIMUM_HEAT_CAPACITY

I feel the need to document what happens here. Basically this is used +catch rounding errors, and make gas go away in small portions. +People have raised it to higher levels in the past, do not do this. Consider this number a soft limit +If you're making gasmixtures that have unexpected behavior related to this value, you're doing something wrong.

+

On an unrelated note this may cause a bug that creates negative gas, related to round(). When it has a second arg it will round up. +So for instance round(0.5, 1) == 1. I've hardcoded a fix for this into share, by forcing the garbage collect. +Any other attempts to fix it just killed atmos. I leave this to a greater man then I +The minimum heat capacity of a gas

MINIMUM_MOLES_DELTA_TO_MOVE

Either this must be active (round about 0.1) //Might need to raise this a tad to better support space leaks. we'll see

MINIMUM_MOLE_COUNT

Minimum mole count of a gas

MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER

Minimum temperature difference before the gas temperatures are just set to be equal

MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND

Minimum temperature difference before group processing is suspended

MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION

Minimum temperature to continue superconduction once started

MINIMUM_TEMPERATURE_START_SUPERCONDUCTION

Minimum temperature to start doing superconduction calculations

MINIMUM_TEMPERATURE_TO_MOVE

or this (or both, obviously)

MOLAR_ACCURACY

Molar accuracy to round to

MOLES

Amount of total moles in said gas mixture

MOLES_CELLSTANDARD

moles in a 2.5 m^3 cell at 101.325 Pa and 20 degC (103 or so)

MOLES_GAS_VISIBLE

Moles in a standard cell after which gases are visible

MOLES_GAS_VISIBLE_STEP

Mole step for alpha updates. This means alpha can update at 0.25, 0.5, 0.75 and so on

MOLES_N2STANDARD

N2 standard value (79%)

MOLES_O2STANDARD

O2 standard value (21%)

M_CELL_WITH_RATIO

compared against for superconductivity

N2O_ANESTHETIC

N2O value for anesthetic canister

N2STANDARD

same but for nitrogen

NORMAL_TURF

Normal non-active turf

NO_REACTION

The gas mixture is not reacting

O2STANDARD

percentage of oxygen in a normal mixture of air

O2_ANESTHETIC

O2 value for anesthetic canister

ONE_ATMOSPHERE

kPa

REACTING

The gas mixture is reacting

R_IDEAL_GAS_EQUATION

kPaL/(Kmol)

STOP_REACTIONS

The gas mixture is able to stop all reactions

T0C

0degC

T20C

20degC

TCMB

-270.3degC

TOTAL_VISIBLE_STATES

The total visible states

WINDOW_HEAT_TRANSFER_COEFFICIENT

a hack for now

\ No newline at end of file diff --git a/code/__DEFINES/atmospherics/atmos_helpers.html b/code/__DEFINES/atmospherics/atmos_helpers.html new file mode 100644 index 0000000000000..747e16c31cff3 --- /dev/null +++ b/code/__DEFINES/atmospherics/atmos_helpers.html @@ -0,0 +1,3 @@ +code/__DEFINES/atmospherics/atmos_helpers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/atmospherics/atmos_helpers.dm

CANATMOSPASSCheck if an atom (A) and a turf (O) allow gas passage based on the atom's can_atmos_pass var, do not use. +(V) is if the share is vertical or not. True or False
PIPING_LAYER_SHIFTMoves the icon of the device based on the piping layer and on the direction
PIPING_FORWARD_SHIFTMoves the icon of the device based on the piping layer and on the direction, the shift amount is dictated by more_shift
PIPING_LAYER_DOUBLE_SHIFTMoves the icon of the device based on the piping layer on both x and y
THERMAL_ENERGYCalculate the thermal energy of the selected gas (J)
ADD_GASDirectly adds a gas to a gas mixture without checking for its presence beforehand, use only if is certain the absence of said gas
ASSERT_GASAdds a gas to a gas mixture but checks if is already present, faster than the same proc
ASSERT_GAS_IN_LISTAdds a gas to a gas LIST but checks if is already present, accepts a list instead of a datum, so faster if the list is locally cached
TOTAL_MOLESCalculate the total moles of the gas mixture, faster than the proc, good for performance critical areas
GAS_OVERLAYSReturns a list of overlays of every gas in the mixture

Define Details

ADD_GAS

Directly adds a gas to a gas mixture without checking for its presence beforehand, use only if is certain the absence of said gas

ASSERT_GAS

Adds a gas to a gas mixture but checks if is already present, faster than the same proc

ASSERT_GAS_IN_LIST

Adds a gas to a gas LIST but checks if is already present, accepts a list instead of a datum, so faster if the list is locally cached

CANATMOSPASS

Check if an atom (A) and a turf (O) allow gas passage based on the atom's can_atmos_pass var, do not use. +(V) is if the share is vertical or not. True or False

GAS_OVERLAYS

Returns a list of overlays of every gas in the mixture

PIPING_FORWARD_SHIFT

Moves the icon of the device based on the piping layer and on the direction, the shift amount is dictated by more_shift

PIPING_LAYER_DOUBLE_SHIFT

Moves the icon of the device based on the piping layer on both x and y

PIPING_LAYER_SHIFT

Moves the icon of the device based on the piping layer and on the direction

THERMAL_ENERGY

Calculate the thermal energy of the selected gas (J)

TOTAL_MOLES

Calculate the total moles of the gas mixture, faster than the proc, good for performance critical areas

\ No newline at end of file diff --git a/code/__DEFINES/atmospherics/atmos_machinery.html b/code/__DEFINES/atmospherics/atmos_machinery.html new file mode 100644 index 0000000000000..b57e827c147f4 --- /dev/null +++ b/code/__DEFINES/atmospherics/atmos_machinery.html @@ -0,0 +1,13 @@ +code/__DEFINES/atmospherics/atmos_machinery.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/atmospherics/atmos_machinery.dm

ATMOS_EXTERNAL_BOUNDUsed when an atmos machine has "external" selected. +Found in pressure_checks of vents and air alarms.
ATMOS_INTERNAL_BOUNDUsed when an atmos machine has "internal" selected. +Found in pressure_checks of vents and air alarms.
ATMOS_BOUND_MAXThe maximum bound of an atmos machine. +Found in pressure_checks of vents and air alarms.
ATMOS_DIRECTION_SIPHONINGUsed when an atmos machine is siphoning out air. +Found in air alarms, vents, and scrubbers.
ATMOS_DIRECTION_RELEASINGUsed when a vent is releasing air. +Found in air alarms, vents, and scrubbers.
ATMOS_DIRECTION_SCRUBBINGUsed when a scrubber is scrubbing air. +Found in air alarms, vents, and scrubbers.
ATMOS_PUMP_MAX_PRESSUREThe max pressure of pumps.
AIR_ALARM_ALERT_NONENo TLV exceeded.
AIR_ALARM_ALERT_WARNINGTLV warning exceeded but not hazardous.
AIR_ALARM_ALERT_HAZARDTLV hazard exceeded or someone pulled the switch.
AIR_ALARM_BUILD_NO_CIRCUITAir alarm missing circuit
AIR_ALARM_BUILD_NO_WIRESAir alarm has circuit but is missing wires
AIR_ALARM_BUILD_COMPLETEAir alarm has all components but isn't completed
FIRE_ALARM_BUILD_NO_CIRCUITFire alarm missing circuit
FIRE_ALARM_BUILD_NO_WIRESFire alarm has circuit but is missing wires
FIRE_ALARM_BUILD_SECUREDFire alarm has all components but isn't completed
AREA_FAULT_NONEArea faults clear
AREA_FAULT_MANUALFault triggered by manual intervention (ie: fire alarm pull)
AREA_FAULT_AUTOMATICFault triggered automatically (ie: firedoor detection)
TLV_VAR_WARNING_MIN[/datum/tlv/var/warning_min]
TLV_VAR_HAZARD_MIN[/datum/tlv/var/hazard_min]
TLV_VAR_WARNING_MAX[/datum/tlv/var/warning_max]
TLV_VAR_HAZARD_MAX[/datum/tlv/var/hazard_max]
TLV_VAR_ALLAll the vars in /datum/tlv
TLV_VALUE_IGNORETLV datums will ignore variables set to this.
PUMP_DEFAULT_PRESSUREDefault pressure, used in the UI to reset the settings
PUMP_MAX_PRESSUREMaximum settable pressure
PUMP_MIN_PRESSUREMinimum settable pressure
PUMP_INWhat direction is the machine pumping (into pump/port or out to the tank/area)?
CAN_MAX_RELEASE_PRESSUREMax allowed pressure for canisters to release air per tick
CAN_MIN_RELEASE_PRESSUREMin allowed pressure for canisters to release air per tick

Define Details

AIR_ALARM_ALERT_HAZARD

TLV hazard exceeded or someone pulled the switch.

AIR_ALARM_ALERT_NONE

No TLV exceeded.

AIR_ALARM_ALERT_WARNING

TLV warning exceeded but not hazardous.

AIR_ALARM_BUILD_COMPLETE

Air alarm has all components but isn't completed

AIR_ALARM_BUILD_NO_CIRCUIT

Air alarm missing circuit

AIR_ALARM_BUILD_NO_WIRES

Air alarm has circuit but is missing wires

AREA_FAULT_AUTOMATIC

Fault triggered automatically (ie: firedoor detection)

AREA_FAULT_MANUAL

Fault triggered by manual intervention (ie: fire alarm pull)

AREA_FAULT_NONE

Area faults clear

ATMOS_BOUND_MAX

The maximum bound of an atmos machine. +Found in pressure_checks of vents and air alarms.

ATMOS_DIRECTION_RELEASING

Used when a vent is releasing air. +Found in air alarms, vents, and scrubbers.

ATMOS_DIRECTION_SCRUBBING

Used when a scrubber is scrubbing air. +Found in air alarms, vents, and scrubbers.

ATMOS_DIRECTION_SIPHONING

Used when an atmos machine is siphoning out air. +Found in air alarms, vents, and scrubbers.

ATMOS_EXTERNAL_BOUND

Used when an atmos machine has "external" selected. +Found in pressure_checks of vents and air alarms.

ATMOS_INTERNAL_BOUND

Used when an atmos machine has "internal" selected. +Found in pressure_checks of vents and air alarms.

ATMOS_PUMP_MAX_PRESSURE

The max pressure of pumps.

CAN_MAX_RELEASE_PRESSURE

Max allowed pressure for canisters to release air per tick

CAN_MIN_RELEASE_PRESSURE

Min allowed pressure for canisters to release air per tick

FIRE_ALARM_BUILD_NO_CIRCUIT

Fire alarm missing circuit

FIRE_ALARM_BUILD_NO_WIRES

Fire alarm has circuit but is missing wires

FIRE_ALARM_BUILD_SECURED

Fire alarm has all components but isn't completed

PUMP_DEFAULT_PRESSURE

Default pressure, used in the UI to reset the settings

PUMP_IN

What direction is the machine pumping (into pump/port or out to the tank/area)?

PUMP_MAX_PRESSURE

Maximum settable pressure

PUMP_MIN_PRESSURE

Minimum settable pressure

TLV_VALUE_IGNORE

TLV datums will ignore variables set to this.

TLV_VAR_ALL

All the vars in /datum/tlv

TLV_VAR_HAZARD_MAX

[/datum/tlv/var/hazard_max]

TLV_VAR_HAZARD_MIN

[/datum/tlv/var/hazard_min]

TLV_VAR_WARNING_MAX

[/datum/tlv/var/warning_max]

TLV_VAR_WARNING_MIN

[/datum/tlv/var/warning_min]

\ No newline at end of file diff --git a/code/__DEFINES/atmospherics/atmos_mapping_helpers.html b/code/__DEFINES/atmospherics/atmos_mapping_helpers.html new file mode 100644 index 0000000000000..bff59b6e4e984 --- /dev/null +++ b/code/__DEFINES/atmospherics/atmos_mapping_helpers.html @@ -0,0 +1,3 @@ +code/__DEFINES/atmospherics/atmos_mapping_helpers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/atmospherics/atmos_mapping_helpers.dm

TURF_TEMPERATUREUsed to define the temperature of a tile, arg is the temperature it should be at. Should always be put at the end of the atmos list. +This is solely to be used after compile-time.
OPENTURF_DEFAULT_ATMOSthe default air mix that open turfs spawn
OPENTURF_LOW_PRESSUREthe default low-pressure air mix used mostly for mining areas.
OPENTURF_DIRTY_ATMOSbreathable air that causes disease
TCOMMS_ATMOS-193,15°C telecommunications. also used for xenobiology slime killrooms
AIRLESS_ATMOSspace
FROZEN_ATMOS-93.15°C snow and ice turfs
COLD_ATMOS-14°C snow and ice turfs, a more breatheable coldroom atmos.
KITCHEN_COLDROOM_ATMOS-14°C kitchen coldroom, just might loss your tail; higher amount of mol to reach about 101.3 kpA
BURNMIX_ATMOSused in the holodeck burn test program
BURNING_COLD-153.15°C plasma air, used for burning people.
SPACE_TEMP_NOBLIUMSpace temperature hyper nob
XENOBIO_BZXenobio slime containment turf
LAVALAND_EQUIPMENT_EFFECT_PRESSUREwhat pressure you have to be under to increase the effect of equipment meant for lavaland

Define Details

AIRLESS_ATMOS

space

BURNING_COLD

-153.15°C plasma air, used for burning people.

BURNMIX_ATMOS

used in the holodeck burn test program

COLD_ATMOS

-14°C snow and ice turfs, a more breatheable coldroom atmos.

FROZEN_ATMOS

-93.15°C snow and ice turfs

KITCHEN_COLDROOM_ATMOS

-14°C kitchen coldroom, just might loss your tail; higher amount of mol to reach about 101.3 kpA

LAVALAND_EQUIPMENT_EFFECT_PRESSURE

what pressure you have to be under to increase the effect of equipment meant for lavaland

OPENTURF_DEFAULT_ATMOS

the default air mix that open turfs spawn

OPENTURF_DIRTY_ATMOS

breathable air that causes disease

OPENTURF_LOW_PRESSURE

the default low-pressure air mix used mostly for mining areas.

SPACE_TEMP_NOBLIUM

Space temperature hyper nob

TCOMMS_ATMOS

-193,15°C telecommunications. also used for xenobiology slime killrooms

TURF_TEMPERATURE

Used to define the temperature of a tile, arg is the temperature it should be at. Should always be put at the end of the atmos list. +This is solely to be used after compile-time.

XENOBIO_BZ

Xenobio slime containment turf

\ No newline at end of file diff --git a/code/__DEFINES/atmospherics/atmos_mob_interaction.html b/code/__DEFINES/atmospherics/atmos_mob_interaction.html new file mode 100644 index 0000000000000..c44e327966893 --- /dev/null +++ b/code/__DEFINES/atmospherics/atmos_mob_interaction.html @@ -0,0 +1,19 @@ +code/__DEFINES/atmospherics/atmos_mob_interaction.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/atmospherics/atmos_mob_interaction.dm

BREATH_VOLUME
BREATH_PERCENTAGEAmount of air to take a from a tile
BREATH_LOSTReturn this from a while_present proc to call its on_loss version, if one exists +Useful for doing "we're done" effects without duped code
HAZARD_HIGH_PRESSUREThis determins at what pressure the ultra-high pressure red icon is displayed. (This one is set as a constant)
WARNING_HIGH_PRESSUREThis determins when the orange pressure icon is displayed (it is 0.7 * HAZARD_HIGH_PRESSURE)
WARNING_LOW_PRESSUREThis is when the gray low pressure icon is displayed. (it is 2.5 * HAZARD_LOW_PRESSURE)
HAZARD_LOW_PRESSUREThis is when the black ultra-low pressure icon is displayed. (This one is set as a constant)
TEMPERATURE_DAMAGE_COEFFICIENTThis is used in handle_temperature_damage() for humans, and in reagents that affect body temperature. Temperature damage is multiplied by this amount.
LAVALAND_MAX_TEMPERATUREThe maximum temperature of Lavaland
ICEBOX_MIN_TEMPERATUREThe minimum temperature of Icebox
BODYTEMP_NORMALThe natural temperature for a body
BODYTEMP_AUTORECOVERY_DIVISORThis is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. This is applied each tick, so long as the mob is alive.
BODYTEMP_AUTORECOVERY_MINIMUMMinimum amount of kelvin moved toward 310K per tick. So long as abs(310.15 - bodytemp) is more than 50.
BODYTEMP_COLD_DIVISORSimilar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is lower than their body temperature. Make it lower to lose bodytemp faster.
BODYTEMP_HEAT_DIVISORSimilar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to gain bodytemp faster.
BODYTEMP_COOLING_MAXThe maximum number of degrees that your body can cool in 1 tick, due to the environment, when in a cold area.
BODYTEMP_HEATING_MAXThe maximum number of degrees that your body can heat up in 1 tick, due to the environment, when in a hot area.
BODYTEMP_HEAT_DAMAGE_LIMITThe body temperature limit the human body can take before it starts taking damage from heat. +This also affects how fast the body normalises its temperature when hot. +340k is about 66c, and rather high for a human.
BODYTEMP_HEAT_LAVALAND_SAFEA temperature limit which is above the maximum lavaland temperature
BODYTEMP_COLD_DAMAGE_LIMITThe body temperature limit the human body can take before it starts taking damage from cold. +This also affects how fast the body normalises its temperature when cold. +270k is about -3c, that is below freezing and would hurt over time.
BODYTEMP_COLD_ICEBOX_SAFEA temperature limit which is above the minimum icebox temperature
BODYTEMP_HEAT_WOUND_LIMITThe body temperature limit the human body can take before it will take wound damage.
BODYTEMP_HULK_COLD_DAMAGE_LIMIT_MODIFIERThe modifier on cold damage limit hulks get ontop of their regular limit
HULK_COLD_DAMAGE_MODThe modifier on cold damage hulks get.
BODYTEMP_HEAT_WARNING_3The temperature the red icon is displayed.
BODYTEMP_HEAT_WARNING_2The temperature the orange icon is displayed.
BODYTEMP_HEAT_WARNING_1The temperature the yellow icon is displayed.
BODYTEMP_COLD_WARNING_1The temperature the light green icon is displayed.
BODYTEMP_COLD_WARNING_2The temperature the cyan icon is displayed.
BODYTEMP_COLD_WARNING_3The temperature the blue icon is displayed.
BODYTEMP_FIRE_TEMP_SOFTCAPBeyond this temperature, being on fire will increase body temperature by less and less
PRESSURE_DAMAGE_COEFFICIENTThe amount of pressure damage someone takes is equal to (pressure / HAZARD_HIGH_PRESSURE)*PRESSURE_DAMAGE_COEFFICIENT, with the maximum of MAX_PRESSURE_DAMAGE
LOW_PRESSURE_DAMAGEThe amount of damage someone takes when in a low pressure area (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value).
COLD_SLOWDOWN_FACTORHumans are slowed by the difference between bodytemp and BODYTEMP_COLD_DAMAGE_LIMIT divided by this
SPACE_HELM_MIN_TEMP_PROTECTwhat min_cold_protection_temperature is set to for space-helmet quality headwear. MUST NOT BE 0.
SPACE_HELM_MAX_TEMP_PROTECTThermal insulation works both ways /Malkevin
SPACE_SUIT_MIN_TEMP_PROTECTwhat min_cold_protection_temperature is set to for space-suit quality jumpsuits or suits. MUST NOT BE 0.
SPACE_SUIT_MIN_TEMP_PROTECT_OFFThe min cold protection of a space suit without the heater active
FIRE_SUIT_MIN_TEMP_PROTECTCold protection for firesuits
FIRE_SUIT_MAX_TEMP_PROTECTwhat max_heat_protection_temperature is set to for firesuit quality suits. MUST NOT BE 0.
FIRE_HELM_MIN_TEMP_PROTECTCold protection for fire helmets
FIRE_HELM_MAX_TEMP_PROTECTfor fire helmet quality items (red and white hardhats)
FIRE_IMMUNITY_MAX_TEMP_PROTECTwhat max_heat_protection_temperature is set to for firesuit quality suits and helmets. MUST NOT BE 0.
HELMET_MIN_TEMP_PROTECTFor normal helmets
HELMET_MAX_TEMP_PROTECTFor normal helmets
ARMOR_MIN_TEMP_PROTECTFor armor
ARMOR_MAX_TEMP_PROTECTFor armor
GLOVES_MIN_TEMP_PROTECTFor some gloves (black and)
GLOVES_MAX_TEMP_PROTECTFor some gloves
SHOES_MIN_TEMP_PROTECTFor gloves
SHOES_MAX_TEMP_PROTECTFor gloves
BURNING_ITEM_MINIMUM_TEMPERATUREMinimum temperature for items on fire

Define Details

ARMOR_MAX_TEMP_PROTECT

For armor

ARMOR_MIN_TEMP_PROTECT

For armor

BODYTEMP_AUTORECOVERY_DIVISOR

This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. This is applied each tick, so long as the mob is alive.

BODYTEMP_AUTORECOVERY_MINIMUM

Minimum amount of kelvin moved toward 310K per tick. So long as abs(310.15 - bodytemp) is more than 50.

BODYTEMP_COLD_DAMAGE_LIMIT

The body temperature limit the human body can take before it starts taking damage from cold. +This also affects how fast the body normalises its temperature when cold. +270k is about -3c, that is below freezing and would hurt over time.

BODYTEMP_COLD_DIVISOR

Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is lower than their body temperature. Make it lower to lose bodytemp faster.

BODYTEMP_COLD_ICEBOX_SAFE

A temperature limit which is above the minimum icebox temperature

BODYTEMP_COLD_WARNING_1

The temperature the light green icon is displayed.

BODYTEMP_COLD_WARNING_2

The temperature the cyan icon is displayed.

BODYTEMP_COLD_WARNING_3

The temperature the blue icon is displayed.

BODYTEMP_COOLING_MAX

The maximum number of degrees that your body can cool in 1 tick, due to the environment, when in a cold area.

BODYTEMP_FIRE_TEMP_SOFTCAP

Beyond this temperature, being on fire will increase body temperature by less and less

BODYTEMP_HEATING_MAX

The maximum number of degrees that your body can heat up in 1 tick, due to the environment, when in a hot area.

BODYTEMP_HEAT_DAMAGE_LIMIT

The body temperature limit the human body can take before it starts taking damage from heat. +This also affects how fast the body normalises its temperature when hot. +340k is about 66c, and rather high for a human.

BODYTEMP_HEAT_DIVISOR

Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to gain bodytemp faster.

BODYTEMP_HEAT_LAVALAND_SAFE

A temperature limit which is above the maximum lavaland temperature

BODYTEMP_HEAT_WARNING_1

The temperature the yellow icon is displayed.

BODYTEMP_HEAT_WARNING_2

The temperature the orange icon is displayed.

BODYTEMP_HEAT_WARNING_3

The temperature the red icon is displayed.

BODYTEMP_HEAT_WOUND_LIMIT

The body temperature limit the human body can take before it will take wound damage.

BODYTEMP_HULK_COLD_DAMAGE_LIMIT_MODIFIER

The modifier on cold damage limit hulks get ontop of their regular limit

BODYTEMP_NORMAL

The natural temperature for a body

BREATH_LOST

Return this from a while_present proc to call its on_loss version, if one exists +Useful for doing "we're done" effects without duped code

BREATH_PERCENTAGE

Amount of air to take a from a tile

BREATH_VOLUME

BURNING_ITEM_MINIMUM_TEMPERATURE

Minimum temperature for items on fire

COLD_SLOWDOWN_FACTOR

Humans are slowed by the difference between bodytemp and BODYTEMP_COLD_DAMAGE_LIMIT divided by this

FIRE_HELM_MAX_TEMP_PROTECT

for fire helmet quality items (red and white hardhats)

FIRE_HELM_MIN_TEMP_PROTECT

Cold protection for fire helmets

FIRE_IMMUNITY_MAX_TEMP_PROTECT

what max_heat_protection_temperature is set to for firesuit quality suits and helmets. MUST NOT BE 0.

FIRE_SUIT_MAX_TEMP_PROTECT

what max_heat_protection_temperature is set to for firesuit quality suits. MUST NOT BE 0.

FIRE_SUIT_MIN_TEMP_PROTECT

Cold protection for firesuits

GLOVES_MAX_TEMP_PROTECT

For some gloves

GLOVES_MIN_TEMP_PROTECT

For some gloves (black and)

HAZARD_HIGH_PRESSURE

This determins at what pressure the ultra-high pressure red icon is displayed. (This one is set as a constant)

HAZARD_LOW_PRESSURE

This is when the black ultra-low pressure icon is displayed. (This one is set as a constant)

HELMET_MAX_TEMP_PROTECT

For normal helmets

HELMET_MIN_TEMP_PROTECT

For normal helmets

HULK_COLD_DAMAGE_MOD

The modifier on cold damage hulks get.

ICEBOX_MIN_TEMPERATURE

The minimum temperature of Icebox

LAVALAND_MAX_TEMPERATURE

The maximum temperature of Lavaland

LOW_PRESSURE_DAMAGE

The amount of damage someone takes when in a low pressure area (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value).

PRESSURE_DAMAGE_COEFFICIENT

The amount of pressure damage someone takes is equal to (pressure / HAZARD_HIGH_PRESSURE)*PRESSURE_DAMAGE_COEFFICIENT, with the maximum of MAX_PRESSURE_DAMAGE

SHOES_MAX_TEMP_PROTECT

For gloves

SHOES_MIN_TEMP_PROTECT

For gloves

SPACE_HELM_MAX_TEMP_PROTECT

Thermal insulation works both ways /Malkevin

SPACE_HELM_MIN_TEMP_PROTECT

what min_cold_protection_temperature is set to for space-helmet quality headwear. MUST NOT BE 0.

SPACE_SUIT_MIN_TEMP_PROTECT

what min_cold_protection_temperature is set to for space-suit quality jumpsuits or suits. MUST NOT BE 0.

SPACE_SUIT_MIN_TEMP_PROTECT_OFF

The min cold protection of a space suit without the heater active

TEMPERATURE_DAMAGE_COEFFICIENT

This is used in handle_temperature_damage() for humans, and in reagents that affect body temperature. Temperature damage is multiplied by this amount.

WARNING_HIGH_PRESSURE

This determins when the orange pressure icon is displayed (it is 0.7 * HAZARD_HIGH_PRESSURE)

WARNING_LOW_PRESSURE

This is when the gray low pressure icon is displayed. (it is 2.5 * HAZARD_LOW_PRESSURE)

\ No newline at end of file diff --git a/code/__DEFINES/atmospherics/atmos_piping.html b/code/__DEFINES/atmospherics/atmos_piping.html new file mode 100644 index 0000000000000..298e39252a1d3 --- /dev/null +++ b/code/__DEFINES/atmospherics/atmos_piping.html @@ -0,0 +1 @@ +code/__DEFINES/atmospherics/atmos_piping.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/atmospherics/atmos_piping.dm

MAX_OUTPUT_PRESSURE(kPa) What pressure pumps and powered equipment max out at.
MAX_TRANSFER_RATE(L/s) Maximum speed powered equipment can work at.
VOLUME_PUMP_MINIMUM_OUTPUT_PRESSURE(kPa) Minimum pressure volume pumps can move.
VOLUME_PUMP_MAX_OUTPUT_PRESSURE(kPa) What pressure volume pumps max out at.
VOLUME_PUMP_OVERPRESSURE_ALLOWANCE(kPa) Allowed pressure difference between input and output pipenets for overclocked volume pump.
VOLUME_PUMP_LEAK_AMOUNTHow many percent of the contents that an overclocked volume pumps leak into the air.
TANK_STANDARD_VOLUMEThe volume of the standard handheld gas tanks on the station.
TANK_MIN_RELEASE_PRESSUREThe minimum pressure an gas tanks release valve can be set to.
TANK_MAX_RELEASE_PRESSUREThe maximum pressure an gas tanks release valve can be set to.
TANK_DEFAULT_RELEASE_PRESSUREThe default initial value gas tanks release valves are set to. (At least the ones containing pure plasma/oxygen.)
TANK_PLASMAMAN_RELEASE_PRESSUREThe default initial value gas plasmamen tanks releases valves are set to.
TANK_CLOWN_RELEASE_PRESSUREThe default initial value gas flown tanks releases valves are set to.
TANK_MELT_TEMPERATUREThe internal temperature in kelvins at which a handheld gas tank begins to take damage.
TANK_LEAK_PRESSUREThe internal pressure in kPa at which a handheld gas tank begins to take damage.
TANK_RUPTURE_PRESSUREThe internal pressure in kPa at which a handheld gas tank almost immediately ruptures.
TANK_FRAGMENT_PRESSUREThe internal pressure in kPa at which an gas tank that breaks will cause an explosion.
TANK_FRAGMENT_SCALERange scaling constant for tank explosions. Calibrated so that a TTV assembled using two 70L tanks will hit the maxcap at at least 160atm.
TANK_MERGE_OVERPRESSUREDenotes that our tank is overpressurized simply from gas merging.
TANK_RESULTS_REACTIONReactions that have happened in the tank.
TANK_RESULTS_MISCAdditional information of the tank.
PIPING_ALL_LAYERintended to connect with all layers, check for all instead of just one.
PIPING_ONE_PER_TURFcan only be built if nothing else with this flag is on the tile already.
PIPING_DEFAULT_LAYER_ONLYcan only exist at PIPING_LAYER_DEFAULT
PIPING_CARDINAL_AUTONORMALIZEnorth/south east/west doesn't matter, auto normalize on build.
PIPING_ALL_COLORSintended to connect with everything, both layers and colors
PIPING_BRIDGEcan bridge over pipenets
PIPING_DISTRO_AND_WASTE_LAYERSintended to connect with layers 2 and 4 only
VENTCRAWL_ALLOWEDAllows for ventcrawling to occur. All atmospheric machines have this flag on by default. Cryo is the exception
VENTCRAWL_ENTRANCE_ALLOWEDAllows mobs to enter or leave from atmospheric machines. On for passive, unary, and scrubber vents.
VENTCRAWL_CAN_SEEUsed to check if a machinery is visible. Called by update_pipe_vision(). On by default for all except cryo.

Define Details

MAX_OUTPUT_PRESSURE

(kPa) What pressure pumps and powered equipment max out at.

MAX_TRANSFER_RATE

(L/s) Maximum speed powered equipment can work at.

PIPING_ALL_COLORS

intended to connect with everything, both layers and colors

PIPING_ALL_LAYER

intended to connect with all layers, check for all instead of just one.

PIPING_BRIDGE

can bridge over pipenets

PIPING_CARDINAL_AUTONORMALIZE

north/south east/west doesn't matter, auto normalize on build.

PIPING_DEFAULT_LAYER_ONLY

can only exist at PIPING_LAYER_DEFAULT

PIPING_DISTRO_AND_WASTE_LAYERS

intended to connect with layers 2 and 4 only

PIPING_ONE_PER_TURF

can only be built if nothing else with this flag is on the tile already.

TANK_CLOWN_RELEASE_PRESSURE

The default initial value gas flown tanks releases valves are set to.

TANK_DEFAULT_RELEASE_PRESSURE

The default initial value gas tanks release valves are set to. (At least the ones containing pure plasma/oxygen.)

TANK_FRAGMENT_PRESSURE

The internal pressure in kPa at which an gas tank that breaks will cause an explosion.

TANK_FRAGMENT_SCALE

Range scaling constant for tank explosions. Calibrated so that a TTV assembled using two 70L tanks will hit the maxcap at at least 160atm.

TANK_LEAK_PRESSURE

The internal pressure in kPa at which a handheld gas tank begins to take damage.

TANK_MAX_RELEASE_PRESSURE

The maximum pressure an gas tanks release valve can be set to.

TANK_MELT_TEMPERATURE

The internal temperature in kelvins at which a handheld gas tank begins to take damage.

TANK_MERGE_OVERPRESSURE

Denotes that our tank is overpressurized simply from gas merging.

TANK_MIN_RELEASE_PRESSURE

The minimum pressure an gas tanks release valve can be set to.

TANK_PLASMAMAN_RELEASE_PRESSURE

The default initial value gas plasmamen tanks releases valves are set to.

TANK_RESULTS_MISC

Additional information of the tank.

TANK_RESULTS_REACTION

Reactions that have happened in the tank.

TANK_RUPTURE_PRESSURE

The internal pressure in kPa at which a handheld gas tank almost immediately ruptures.

TANK_STANDARD_VOLUME

The volume of the standard handheld gas tanks on the station.

VENTCRAWL_ALLOWED

Allows for ventcrawling to occur. All atmospheric machines have this flag on by default. Cryo is the exception

VENTCRAWL_CAN_SEE

Used to check if a machinery is visible. Called by update_pipe_vision(). On by default for all except cryo.

VENTCRAWL_ENTRANCE_ALLOWED

Allows mobs to enter or leave from atmospheric machines. On for passive, unary, and scrubber vents.

VOLUME_PUMP_LEAK_AMOUNT

How many percent of the contents that an overclocked volume pumps leak into the air.

VOLUME_PUMP_MAX_OUTPUT_PRESSURE

(kPa) What pressure volume pumps max out at.

VOLUME_PUMP_MINIMUM_OUTPUT_PRESSURE

(kPa) Minimum pressure volume pumps can move.

VOLUME_PUMP_OVERPRESSURE_ALLOWANCE

(kPa) Allowed pressure difference between input and output pipenets for overclocked volume pump.

\ No newline at end of file diff --git a/code/__DEFINES/atom_hud.html b/code/__DEFINES/atom_hud.html new file mode 100644 index 0000000000000..c02b34768ed3f --- /dev/null +++ b/code/__DEFINES/atom_hud.html @@ -0,0 +1 @@ +code/__DEFINES/atom_hud.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/atom_hud.dm

HEALTH_HUDdead, alive, sick, health status
STATUS_HUDa simple line rounding the mob's number health
ID_HUDthe job asigned to your ID
WANTED_HUDwanted, released, parroled, security status
IMPLOYAL_HUDloyality implant
IMPSEC_FIRST_HUDchemical implant
IMPSEC_SECOND_HUDtracking implant
DIAG_STAT_HUDSilicon/Mech/Circuit Status
DIAG_HUDSilicon health bar
DIAG_BATT_HUDBorg/Mech/Circutry power meter
DIAG_MECH_HUDMech health bar
DIAG_BOT_HUDBot HUDs
DIAG_TRACK_HUDMech/Silicon tracking beacon, Circutry long range icon
DIAG_AIRLOCK_HUDAirlock shock overlay
DIAG_PATH_HUDBot path indicators
GLAND_HUDGland indicators for abductors
DIAG_LAUNCHPAD_HUDDisplays launchpads' targeting reticle
DIAG_CAMERA_HUDMech camera HUD
MALF_APC_HUDSteady Hacked APC effect, visible only to Malf AIs
AMMO_HUDammo of guns
PERMIT_HUDif they have a gun permit
DNR_HUDIf they have the DNR trait
ADD_HUD_TO_COOLDOWNcooldown for being shown the images for any particular data hud

Define Details

ADD_HUD_TO_COOLDOWN

cooldown for being shown the images for any particular data hud

AMMO_HUD

ammo of guns

DIAG_AIRLOCK_HUD

Airlock shock overlay

DIAG_BATT_HUD

Borg/Mech/Circutry power meter

DIAG_BOT_HUD

Bot HUDs

DIAG_CAMERA_HUD

Mech camera HUD

DIAG_HUD

Silicon health bar

DIAG_LAUNCHPAD_HUD

Displays launchpads' targeting reticle

DIAG_MECH_HUD

Mech health bar

DIAG_PATH_HUD

Bot path indicators

DIAG_STAT_HUD

Silicon/Mech/Circuit Status

DIAG_TRACK_HUD

Mech/Silicon tracking beacon, Circutry long range icon

DNR_HUD

If they have the DNR trait

GLAND_HUD

Gland indicators for abductors

HEALTH_HUD

dead, alive, sick, health status

ID_HUD

the job asigned to your ID

IMPLOYAL_HUD

loyality implant

IMPSEC_FIRST_HUD

chemical implant

IMPSEC_SECOND_HUD

tracking implant

MALF_APC_HUD

Steady Hacked APC effect, visible only to Malf AIs

PERMIT_HUD

if they have a gun permit

STATUS_HUD

a simple line rounding the mob's number health

WANTED_HUD

wanted, released, parroled, security status

\ No newline at end of file diff --git a/code/__DEFINES/basic_mobs.html b/code/__DEFINES/basic_mobs.html new file mode 100644 index 0000000000000..19f365e21132c --- /dev/null +++ b/code/__DEFINES/basic_mobs.html @@ -0,0 +1,3 @@ +code/__DEFINES/basic_mobs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/basic_mobs.dm

DEL_ON_DEATHBasic mob flags +Delete mob upon death
FLIP_ON_DEATHRotate mob 180 degrees while it is dead
REMAIN_DENSE_WHILE_DEADMob remains dense while dead
FLAMMABLE_MOBMob can be set on fire
IMMUNE_TO_FISTSMob never takes damage from unarmed attacks
IMMUNE_TO_GETTING_WETMob is immune to getting wet
PRECISE_ATTACK_ZONESDisables the function of attacking random body zones
TRAIT_BASIC_ATTACK_FORECASTTemporary trait applied when an attack forecast animation has completed
END_GLIDE_SPEEDAbove this speed we stop gliding because it looks silly
MOOK_ATTACK_NEUTRALmook attack status flags
BB_BASIC_DEPRESSEDthis mob suffers depression
BB_RAPTOR_MOTHERLYthis mob will care for its young
BB_RAPTOR_PLAYFULthis mob will be playful around their owners
BB_RAPTOR_COWARDthis mob will flee combat when it feels threatened
BB_RAPTOR_TROUBLE_MAKERthis mob will go out seeking trouble against its kind
BB_RAPTOR_TROUBLE_COOLDOWNcooldown till we go out cause trouble again
BB_RAPTOR_BABYour raptor baby target we will take care of
BB_INJURED_RAPTORthe raptor we will heal up
BB_RAPTOR_VICTIMthe raptor we will bully
BB_RAPTOR_EAT_COOLDOWNthe cooldown for next time we eat
BB_RAPTOR_TROUGH_TARGETour trough target

Define Details

BB_BASIC_DEPRESSED

this mob suffers depression

BB_INJURED_RAPTOR

the raptor we will heal up

BB_RAPTOR_BABY

our raptor baby target we will take care of

BB_RAPTOR_COWARD

this mob will flee combat when it feels threatened

BB_RAPTOR_EAT_COOLDOWN

the cooldown for next time we eat

BB_RAPTOR_MOTHERLY

this mob will care for its young

BB_RAPTOR_PLAYFUL

this mob will be playful around their owners

BB_RAPTOR_TROUBLE_COOLDOWN

cooldown till we go out cause trouble again

BB_RAPTOR_TROUBLE_MAKER

this mob will go out seeking trouble against its kind

BB_RAPTOR_TROUGH_TARGET

our trough target

BB_RAPTOR_VICTIM

the raptor we will bully

DEL_ON_DEATH

Basic mob flags +Delete mob upon death

END_GLIDE_SPEED

Above this speed we stop gliding because it looks silly

FLAMMABLE_MOB

Mob can be set on fire

FLIP_ON_DEATH

Rotate mob 180 degrees while it is dead

IMMUNE_TO_FISTS

Mob never takes damage from unarmed attacks

IMMUNE_TO_GETTING_WET

Mob is immune to getting wet

MOOK_ATTACK_NEUTRAL

mook attack status flags

PRECISE_ATTACK_ZONES

Disables the function of attacking random body zones

REMAIN_DENSE_WHILE_DEAD

Mob remains dense while dead

TRAIT_BASIC_ATTACK_FORECAST

Temporary trait applied when an attack forecast animation has completed

\ No newline at end of file diff --git a/code/__DEFINES/basketball.html b/code/__DEFINES/basketball.html new file mode 100644 index 0000000000000..746a27bc2d1f7 --- /dev/null +++ b/code/__DEFINES/basketball.html @@ -0,0 +1,3 @@ +code/__DEFINES/basketball.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/basketball.dm

STAMINA_COST_SHOOTINGYou hit exhaustion when you use 100 stamina +shooting with RMB drains stamina (but LMB does not)
STAMINA_COST_DUNKINGdunking is more strenous than shooting
STAMINA_COST_DUNKING_MOBdunking another person is harder
STAMINA_COST_SPINNINGspin emote uses stamina while holding ball
STAMINA_COST_DISARMINGgetting shoved or disarmed while holding ball drains stamina

Define Details

STAMINA_COST_DISARMING

getting shoved or disarmed while holding ball drains stamina

STAMINA_COST_DUNKING

dunking is more strenous than shooting

STAMINA_COST_DUNKING_MOB

dunking another person is harder

STAMINA_COST_SHOOTING

You hit exhaustion when you use 100 stamina +shooting with RMB drains stamina (but LMB does not)

STAMINA_COST_SPINNING

spin emote uses stamina while holding ball

\ No newline at end of file diff --git a/code/__DEFINES/bitrunning.html b/code/__DEFINES/bitrunning.html new file mode 100644 index 0000000000000..fa24ffae47ef5 --- /dev/null +++ b/code/__DEFINES/bitrunning.html @@ -0,0 +1 @@ +code/__DEFINES/bitrunning.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/bitrunning.dm

BITRUNNER_REWARD_MINYay you did it
BITRUNNER_REWARD_LOWYou faced some decent odds
BITRUNNER_REWARD_MEDIUMOne of your teammates might've died
BITRUNNER_REWARD_HIGHHeroic effort
BITRUNNER_REWARD_EXTREMEFor the priciest domains, free loot basically
BITRUNNER_DIFFICULTY_NONEBlue in ui. Basically the only threat is rogue ghosts roles
BITRUNNER_DIFFICULTY_LOWYellow. Mobs are kinda dumb and largely avoidable
BITRUNNER_DIFFICULTY_MEDIUMOrange. Mobs will shoot at you or are pretty aggressive
BITRUNNER_DIFFICULTY_HIGHRed with skull. I am trying to kill bitrunners.
BITRUNNER_CAMERA_NETCamera network bitrunner bodycams are on

Define Details

BITRUNNER_CAMERA_NET

Camera network bitrunner bodycams are on

BITRUNNER_DIFFICULTY_HIGH

Red with skull. I am trying to kill bitrunners.

BITRUNNER_DIFFICULTY_LOW

Yellow. Mobs are kinda dumb and largely avoidable

BITRUNNER_DIFFICULTY_MEDIUM

Orange. Mobs will shoot at you or are pretty aggressive

BITRUNNER_DIFFICULTY_NONE

Blue in ui. Basically the only threat is rogue ghosts roles

BITRUNNER_REWARD_EXTREME

For the priciest domains, free loot basically

BITRUNNER_REWARD_HIGH

Heroic effort

BITRUNNER_REWARD_LOW

You faced some decent odds

BITRUNNER_REWARD_MEDIUM

One of your teammates might've died

BITRUNNER_REWARD_MIN

Yay you did it

\ No newline at end of file diff --git a/code/__DEFINES/blood.html b/code/__DEFINES/blood.html new file mode 100644 index 0000000000000..087a677eb6603 --- /dev/null +++ b/code/__DEFINES/blood.html @@ -0,0 +1 @@ +code/__DEFINES/blood.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/blood.dm

BLOODY_FOOTPRINT_BASE_ALPHAMinimum alpha of footprints
BLOOD_AMOUNT_PER_DECALHow much blood a regular blood splatter contains
BLOOD_ITEM_MAXHow much blood an item can have stuck on it
BLOOD_POOL_MAXHow much blood a blood decal can contain
BLOOD_FOOTPRINTS_MINHow much blood a footprint need to at least contain
BLOOD_STATE_HUMANRed blood
BLOOD_STATE_XENOGreen xeno blood
BLOOD_STATE_OILBlack robot oil
BLOOD_STATE_NOT_BLOODYNo blood is present
DROP_BRAINMobs will drop a brain
DROP_ORGANSMobs will drop organs
DROP_BODYPARTSMobs will drop bodyparts (arms, legs, etc.)
DROP_ITEMSMobs will drop items
DROP_ALL_REMAINSMobs will drop everything

Define Details

BLOODY_FOOTPRINT_BASE_ALPHA

Minimum alpha of footprints

BLOOD_AMOUNT_PER_DECAL

How much blood a regular blood splatter contains

BLOOD_FOOTPRINTS_MIN

How much blood a footprint need to at least contain

BLOOD_ITEM_MAX

How much blood an item can have stuck on it

BLOOD_POOL_MAX

How much blood a blood decal can contain

BLOOD_STATE_HUMAN

Red blood

BLOOD_STATE_NOT_BLOODY

No blood is present

BLOOD_STATE_OIL

Black robot oil

BLOOD_STATE_XENO

Green xeno blood

DROP_ALL_REMAINS

Mobs will drop everything

DROP_BODYPARTS

Mobs will drop bodyparts (arms, legs, etc.)

DROP_BRAIN

Mobs will drop a brain

DROP_ITEMS

Mobs will drop items

DROP_ORGANS

Mobs will drop organs

\ No newline at end of file diff --git a/code/__DEFINES/bodyparts.html b/code/__DEFINES/bodyparts.html new file mode 100644 index 0000000000000..d8593e3a2222a --- /dev/null +++ b/code/__DEFINES/bodyparts.html @@ -0,0 +1,9 @@ +code/__DEFINES/bodyparts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/bodyparts.dm

BODYPARTS_DEFAULT_MAXIMUMThe standard amount of bodyparts a carbon has. Currently 6, HEAD/L_ARM/R_ARM/CHEST/L_LEG/R_LEG
LIMB_MAX_HP_PROSTHESISLimb Health +The max damage a limb can take before it stops taking damage. +Used by the max_damage var.
LIMB_MAX_HP_ALIEN_LARVAXenomorph Limbs
LIMB_BODY_DAMAGE_COEFFICIENT_ADVANCEDLimb Body Damage Coefficient +A multiplication of the burn and brute damage that the limb's stored damage contributes to its attached mob's overall wellbeing. +For instance, if a limb has 50 damage, and has a coefficient of 50%, the human is considered to have suffered 25 damage to their total health.
AUGGED_LIMB_EMP_BRUTE_DAMAGEThe brute damage an augged limb takes from an EMP.
AUGGED_LIMB_EMP_BURN_DAMAGEThe brute damage an augged limb takes from an EMP.
AUGGED_LIMB_EMP_PARALYZE_TIMEWhen hit by an EMP, the time an augged limb will be paralyzed for if its above the damage threshold.
AUGGED_LEG_EMP_KNOCKDOWN_TIMEWhen hit by an EMP, the time an augged leg will be knocked down for.
AUGGED_CHEST_EMP_STUN_TIMEWhen hit by an EMP, the time a augged chest will cause a hardstun for if its above the damage threshold.
AUGGED_CHEST_EMP_SHAKE_TIMEWhen hit by an EMP, the time an augged chest will cause the mob to shake() for.
AUGGED_HEAD_EMP_GLITCH_DURATIONWhen hit by an EMP, the time an augged head will make vision fucky for.

Define Details

AUGGED_CHEST_EMP_SHAKE_TIME

When hit by an EMP, the time an augged chest will cause the mob to shake() for.

AUGGED_CHEST_EMP_STUN_TIME

When hit by an EMP, the time a augged chest will cause a hardstun for if its above the damage threshold.

AUGGED_HEAD_EMP_GLITCH_DURATION

When hit by an EMP, the time an augged head will make vision fucky for.

AUGGED_LEG_EMP_KNOCKDOWN_TIME

When hit by an EMP, the time an augged leg will be knocked down for.

AUGGED_LIMB_EMP_BRUTE_DAMAGE

The brute damage an augged limb takes from an EMP.

AUGGED_LIMB_EMP_BURN_DAMAGE

The brute damage an augged limb takes from an EMP.

AUGGED_LIMB_EMP_PARALYZE_TIME

When hit by an EMP, the time an augged limb will be paralyzed for if its above the damage threshold.

BODYPARTS_DEFAULT_MAXIMUM

The standard amount of bodyparts a carbon has. Currently 6, HEAD/L_ARM/R_ARM/CHEST/L_LEG/R_LEG

LIMB_BODY_DAMAGE_COEFFICIENT_ADVANCED

Limb Body Damage Coefficient +A multiplication of the burn and brute damage that the limb's stored damage contributes to its attached mob's overall wellbeing. +For instance, if a limb has 50 damage, and has a coefficient of 50%, the human is considered to have suffered 25 damage to their total health.

LIMB_MAX_HP_ALIEN_LARVA

Xenomorph Limbs

LIMB_MAX_HP_PROSTHESIS

Limb Health +The max damage a limb can take before it stops taking damage. +Used by the max_damage var.

\ No newline at end of file diff --git a/code/__DEFINES/botany.html b/code/__DEFINES/botany.html new file mode 100644 index 0000000000000..d847f1cbde15f --- /dev/null +++ b/code/__DEFINES/botany.html @@ -0,0 +1,15 @@ +code/__DEFINES/botany.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/botany.dm

MAX_PLANT_YIELD-- Botany plant stat defines. -- +MAXES:
MIN_PLANT_ENDURANCEMINS:
PLANT_REAGENT_VOLUMEDefault reagent volume for grown plants
WEED_HARDY_YIELD_MIN-- Some botany trait value defines. -- +Weed Hardy can only reduce plants to 3 yield.
CARNIVORY_POTENCY_MINCarnivory potency can only reduce potency to 30.
FUNGAL_METAB_YIELD_MINFungle megabolism plants have a min yield of 1.
STATIC_NUTRIENT_CAPACITY-- Hydroponics tray defines. -- +Base amount of nutrients a tray can old.
MAX_TRAY_TOXINSMaximum amount of toxins a tray can reach.
MAX_TRAY_PESTSMaxumum pests a tray can reach.
MAX_TRAY_WEEDSMaximum weeds a tray can reach.
GENE_SHEAR_MIN_HEALTHMinumum plant health required for gene shears.
FLORA_GUN_MIN_ENDURANCEMinumum plant endurance required to lock a mutation with a somatoray.
PLANT_GENE_REMOVABLE-- Flags for genes -- +Plant genes that can be removed via gene shears.
PLANT_GENE_MUTATABLEPlant genes that can be mutated randomly in strange seeds / due to high instability.
PLANT_GENE_GRAFTABLEPlant genes that can be graftable. Used in formatting text, as they need to be set to be graftable anyways.
MUTATE_EARLY-- Flags for seeds. -- +Allows a plant to wild mutate (mutate on haravest) at a certain instability.
TRAIT_HALVES_YIELD-- Flags for traits. -- +Caps the plant's yield at 5 instead of 10.
GLOW_ID-- Trait IDs. Plants that match IDs cannot be added to the same plant. -- +Plants that glow.
PLANT_TYPE_IDPlant types.
TEMP_CHANGE_IDPlants that affect the reagent's temperature.
CONTENTS_CHANGE_IDPlants that affect the reagent contents.
THROW_IMPACT_IDPlants that do something special when they impact.
REAGENT_TRANSFER_IDPlants that transfer reagents on impact.
ATTACK_SELF_IDPlants that have a unique effect on attack_self.
HYDROTRAY_CYCLE_DELAYHow long to wait between plant age ticks, by default. See /obj/machinery/hydroponics/var/cycledelay
EGG_LAYING_MESSAGESA list of possible egg laying descriptions
PLANT_MODERATELY_RAREUsed as a baseline plant rarity for more uncommon plants, usually requiring mutation

Define Details

ATTACK_SELF_ID

Plants that have a unique effect on attack_self.

CARNIVORY_POTENCY_MIN

Carnivory potency can only reduce potency to 30.

CONTENTS_CHANGE_ID

Plants that affect the reagent contents.

EGG_LAYING_MESSAGES

A list of possible egg laying descriptions

FLORA_GUN_MIN_ENDURANCE

Minumum plant endurance required to lock a mutation with a somatoray.

FUNGAL_METAB_YIELD_MIN

Fungle megabolism plants have a min yield of 1.

GENE_SHEAR_MIN_HEALTH

Minumum plant health required for gene shears.

GLOW_ID

-- Trait IDs. Plants that match IDs cannot be added to the same plant. -- +Plants that glow.

HYDROTRAY_CYCLE_DELAY

How long to wait between plant age ticks, by default. See /obj/machinery/hydroponics/var/cycledelay

MAX_PLANT_YIELD

-- Botany plant stat defines. -- +MAXES:

MAX_TRAY_PESTS

Maxumum pests a tray can reach.

MAX_TRAY_TOXINS

Maximum amount of toxins a tray can reach.

MAX_TRAY_WEEDS

Maximum weeds a tray can reach.

MIN_PLANT_ENDURANCE

MINS:

MUTATE_EARLY

-- Flags for seeds. -- +Allows a plant to wild mutate (mutate on haravest) at a certain instability.

PLANT_GENE_GRAFTABLE

Plant genes that can be graftable. Used in formatting text, as they need to be set to be graftable anyways.

PLANT_GENE_MUTATABLE

Plant genes that can be mutated randomly in strange seeds / due to high instability.

PLANT_GENE_REMOVABLE

-- Flags for genes -- +Plant genes that can be removed via gene shears.

PLANT_MODERATELY_RARE

Used as a baseline plant rarity for more uncommon plants, usually requiring mutation

PLANT_REAGENT_VOLUME

Default reagent volume for grown plants

PLANT_TYPE_ID

Plant types.

REAGENT_TRANSFER_ID

Plants that transfer reagents on impact.

STATIC_NUTRIENT_CAPACITY

-- Hydroponics tray defines. -- +Base amount of nutrients a tray can old.

TEMP_CHANGE_ID

Plants that affect the reagent's temperature.

THROW_IMPACT_ID

Plants that do something special when they impact.

TRAIT_HALVES_YIELD

-- Flags for traits. -- +Caps the plant's yield at 5 instead of 10.

WEED_HARDY_YIELD_MIN

-- Some botany trait value defines. -- +Weed Hardy can only reduce plants to 3 yield.

\ No newline at end of file diff --git a/code/__DEFINES/callbacks.html b/code/__DEFINES/callbacks.html new file mode 100644 index 0000000000000..a1be165d9f070 --- /dev/null +++ b/code/__DEFINES/callbacks.html @@ -0,0 +1 @@ +code/__DEFINES/callbacks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/callbacks.dm

CALLBACKA shorthand for the callback datum, documented here
MAKE_SPAWN_ACT_LIKE_WAITFORPer the DM reference, spawn(-1) will execute the spawned code immediately until a block is met.
ASYNCCreate a codeblock that will not block the callstack if a block is met.
VERB_CALLBACKlike CALLBACK but specifically for verb callbacks

Define Details

ASYNC

Create a codeblock that will not block the callstack if a block is met.

CALLBACK

A shorthand for the callback datum, documented here

MAKE_SPAWN_ACT_LIKE_WAITFOR

Per the DM reference, spawn(-1) will execute the spawned code immediately until a block is met.

VERB_CALLBACK

like CALLBACK but specifically for verb callbacks

\ No newline at end of file diff --git a/code/__DEFINES/cameranets.html b/code/__DEFINES/cameranets.html new file mode 100644 index 0000000000000..83d83a31cf8ec --- /dev/null +++ b/code/__DEFINES/cameranets.html @@ -0,0 +1 @@ +code/__DEFINES/cameranets.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/cameranets.dm

CHUNK_SIZEWe only want chunk sizes that are to the power of 2. E.g: 2, 4, 8, 16, etc..
GET_CHUNK_COORDTakes a position, transforms it into a chunk bounded position. Indexes at 1 so it'll land on actual turfs always

Define Details

CHUNK_SIZE

We only want chunk sizes that are to the power of 2. E.g: 2, 4, 8, 16, etc..

GET_CHUNK_COORD

Takes a position, transforms it into a chunk bounded position. Indexes at 1 so it'll land on actual turfs always

\ No newline at end of file diff --git a/code/__DEFINES/cargo.html b/code/__DEFINES/cargo.html new file mode 100644 index 0000000000000..163d126e477e8 --- /dev/null +++ b/code/__DEFINES/cargo.html @@ -0,0 +1 @@ +code/__DEFINES/cargo.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/cargo.dm

CARGO_CRATE_VALUEThe baseline unit for cargo crates. Adjusting this will change the cost of all in-game shuttles, crate export values, bounty rewards, and all supply pack import values, as they use this as their unit of measurement.
CARGO_MAX_ORDERThe highest amount of orders you can have of one thing at any one time
OVER_ORDER_LIMITReturned by /obj/docking_port/mobile/supply/proc/get_order_count to signify us going over the order limit
SCAN_EXPORTSUniversal Scanner mode for export scanning.
SCAN_SALES_TAGUniversal Scanner mode for using the sales tagger.
SCAN_PRICE_TAGUniversal Scanner mode for using the price tagger.
COUPON_OMENUsed by coupons to define that they're cursed
SUPPLY_PACK_NOT_DISCOUNTABLEDiscount categories for coupons. This one is for anything that isn't discountable.
SUPPLY_PACK_STD_DISCOUNTABLEDiscount category for the standard stuff, mostly goodies.
SUPPLY_PACK_UNCOMMON_DISCOUNTABLEDiscount category for stuff that's mostly niche and/or that might be useful.
SUPPLY_PACK_RARE_DISCOUNTABLEDiscount category for the silly, overpriced, joke content, sometimes useful or plain bad.
EXPORT_NOT_SOLDStandard export define for not selling the item.
EXPORT_SOLDSell the item
EXPORT_SOLD_DONT_DELETESell the item, but for the love of god, don't delete it, we're handling it in a fancier way.

Define Details

CARGO_CRATE_VALUE

The baseline unit for cargo crates. Adjusting this will change the cost of all in-game shuttles, crate export values, bounty rewards, and all supply pack import values, as they use this as their unit of measurement.

CARGO_MAX_ORDER

The highest amount of orders you can have of one thing at any one time

COUPON_OMEN

Used by coupons to define that they're cursed

EXPORT_NOT_SOLD

Standard export define for not selling the item.

EXPORT_SOLD

Sell the item

EXPORT_SOLD_DONT_DELETE

Sell the item, but for the love of god, don't delete it, we're handling it in a fancier way.

OVER_ORDER_LIMIT

Returned by /obj/docking_port/mobile/supply/proc/get_order_count to signify us going over the order limit

SCAN_EXPORTS

Universal Scanner mode for export scanning.

SCAN_PRICE_TAG

Universal Scanner mode for using the price tagger.

SCAN_SALES_TAG

Universal Scanner mode for using the sales tagger.

SUPPLY_PACK_NOT_DISCOUNTABLE

Discount categories for coupons. This one is for anything that isn't discountable.

SUPPLY_PACK_RARE_DISCOUNTABLE

Discount category for the silly, overpriced, joke content, sometimes useful or plain bad.

SUPPLY_PACK_STD_DISCOUNTABLE

Discount category for the standard stuff, mostly goodies.

SUPPLY_PACK_UNCOMMON_DISCOUNTABLE

Discount category for stuff that's mostly niche and/or that might be useful.

\ No newline at end of file diff --git a/code/__DEFINES/chat.html b/code/__DEFINES/chat.html new file mode 100644 index 0000000000000..1c9eef459326c --- /dev/null +++ b/code/__DEFINES/chat.html @@ -0,0 +1,2 @@ +code/__DEFINES/chat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/chat.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

CHAT_RELIABILITY_HISTORY_SIZEHow many chat payloads to keep in history
CHAT_RELIABILITY_MAX_RESENDSHow many resends to allow before giving up
CHAT_MESSAGE_MAX_LENGTHMax length of chat message in characters
debug_worldUsed for debug messages to the world
debug_usrUsed for debug messages to the player
debug_adminsUsed for debug messages to the admins
debug_world_logUsed for debug messages to the server
examine_blockAdds a generic box around whatever message you're sending in chat. Really makes things stand out.
fieldset_blockMakes a fieldset with a name in the middle top part. Can apply additional classes
separator_hrMakes a horizontal line with text in the middle
RUNECHAT_BOLDEmboldens runechat messages
conditional_tooltipHelper which creates a chat message which may have a tooltip in some contexts, but not others.

Define Details

CHAT_MESSAGE_MAX_LENGTH

Max length of chat message in characters

CHAT_RELIABILITY_HISTORY_SIZE

How many chat payloads to keep in history

CHAT_RELIABILITY_MAX_RESENDS

How many resends to allow before giving up

RUNECHAT_BOLD

Emboldens runechat messages

conditional_tooltip

Helper which creates a chat message which may have a tooltip in some contexts, but not others.

debug_admins

Used for debug messages to the admins

debug_usr

Used for debug messages to the player

debug_world

Used for debug messages to the world

debug_world_log

Used for debug messages to the server

examine_block

Adds a generic box around whatever message you're sending in chat. Really makes things stand out.

fieldset_block

Makes a fieldset with a name in the middle top part. Can apply additional classes

separator_hr

Makes a horizontal line with text in the middle

\ No newline at end of file diff --git a/code/__DEFINES/chat_filter.html b/code/__DEFINES/chat_filter.html new file mode 100644 index 0000000000000..24dfcb8bde521 --- /dev/null +++ b/code/__DEFINES/chat_filter.html @@ -0,0 +1 @@ +code/__DEFINES/chat_filter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/chat_filter.dm

CHAT_FILTER_INDEX_WORDThe index of the word that was filtered in a is_*_filtered proc
CHAT_FILTER_INDEX_REASONThe index of the reason why a word was filtered in a is_*_filtered proc
REPORT_CHAT_FILTER_TO_USERGiven a chat filter result, will send a to_chat to the user telling them about why their message was blocked
CAN_BYPASS_FILTERGiven a user, returns TRUE if they are allowed to bypass the filter.

Define Details

CAN_BYPASS_FILTER

Given a user, returns TRUE if they are allowed to bypass the filter.

CHAT_FILTER_INDEX_REASON

The index of the reason why a word was filtered in a is_*_filtered proc

CHAT_FILTER_INDEX_WORD

The index of the word that was filtered in a is_*_filtered proc

REPORT_CHAT_FILTER_TO_USER

Given a chat filter result, will send a to_chat to the user telling them about why their message was blocked

\ No newline at end of file diff --git a/code/__DEFINES/cleaning.html b/code/__DEFINES/cleaning.html new file mode 100644 index 0000000000000..dbf5517d14c7f --- /dev/null +++ b/code/__DEFINES/cleaning.html @@ -0,0 +1,7 @@ +code/__DEFINES/cleaning.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/cleaning.dm

CLEAN_BLOCKEDReturn to prevent clean attempts
CLEAN_ALLOWEDReturn to allow clean attempts +This is (currently) the same as returning null / none but more explicit
CLEAN_NO_XPReturn to prevent XP gain +Only does anything if CLEAN_ALLOWED is also returned
CLEAN_DONT_BLOCK_INTERACTIONReturn to stop cleaner component from blocking interaction chain further +Only does anything if CLEAN_BLOCKED is also returned
CLEAN_TYPE_BLOODCleans blood off of the cleanable atom.
CLEAN_TYPE_FINGERPRINTSCleans fingerprints off of the cleanable atom.
CLEAN_TYPE_FIBERSCleans fibres off of the cleanable atom.
CLEAN_TYPE_RADIATIONCleans radiation off of the cleanable atom.
CLEAN_TYPE_DISEASECleans diseases off of the cleanable atom.
CLEAN_TYPE_ACIDCleans acid off of the cleanable atom.
CLEAN_TYPE_LIGHT_DECALCleans decals such as dirt and oil off the floor
CLEAN_TYPE_HARD_DECALCleans decals such as cobwebs off the floor
CLEAN_TYPE_LIQUIDSCleans all the liquids from a turf, or "evaporates" them

Define Details

CLEAN_ALLOWED

Return to allow clean attempts +This is (currently) the same as returning null / none but more explicit

CLEAN_BLOCKED

Return to prevent clean attempts

CLEAN_DONT_BLOCK_INTERACTION

Return to stop cleaner component from blocking interaction chain further +Only does anything if CLEAN_BLOCKED is also returned

CLEAN_NO_XP

Return to prevent XP gain +Only does anything if CLEAN_ALLOWED is also returned

CLEAN_TYPE_ACID

Cleans acid off of the cleanable atom.

CLEAN_TYPE_BLOOD

Cleans blood off of the cleanable atom.

CLEAN_TYPE_DISEASE

Cleans diseases off of the cleanable atom.

CLEAN_TYPE_FIBERS

Cleans fibres off of the cleanable atom.

CLEAN_TYPE_FINGERPRINTS

Cleans fingerprints off of the cleanable atom.

CLEAN_TYPE_HARD_DECAL

Cleans decals such as cobwebs off the floor

CLEAN_TYPE_LIGHT_DECAL

Cleans decals such as dirt and oil off the floor

CLEAN_TYPE_LIQUIDS

Cleans all the liquids from a turf, or "evaporates" them

CLEAN_TYPE_RADIATION

Cleans radiation off of the cleanable atom.

\ No newline at end of file diff --git a/code/__DEFINES/click.html b/code/__DEFINES/click.html new file mode 100644 index 0000000000000..2435c4b12a70a --- /dev/null +++ b/code/__DEFINES/click.html @@ -0,0 +1 @@ +code/__DEFINES/click.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/click.dm

CLICK_ACTION_SUCCESSAction has succeeded, preventing further alt click interaction
CLICK_ACTION_BLOCKINGAction failed, preventing further alt click interaction
CLICK_ACTION_ANYEither return state

Define Details

CLICK_ACTION_ANY

Either return state

CLICK_ACTION_BLOCKING

Action failed, preventing further alt click interaction

CLICK_ACTION_SUCCESS

Action has succeeded, preventing further alt click interaction

\ No newline at end of file diff --git a/code/__DEFINES/client.html b/code/__DEFINES/client.html new file mode 100644 index 0000000000000..f3f1639ebd06c --- /dev/null +++ b/code/__DEFINES/client.html @@ -0,0 +1,5 @@ +code/__DEFINES/client.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/client.dm

IS_CLIENT_OR_MOCKUse NONE for continue interaction +Checks if the given target is either a client or a mock client
VALIDATE_CLIENT_INITIALIZATIONChecks to see if a /client has fully gone through New() as a safeguard against certain operations. +Should return the boolean value of the fully_created var, which should be TRUE if New() has finished running. FALSE otherwise.

Define Details

IS_CLIENT_OR_MOCK

Use NONE for continue interaction +Checks if the given target is either a client or a mock client

VALIDATE_CLIENT_INITIALIZATION

Checks to see if a /client has fully gone through New() as a safeguard against certain operations. +Should return the boolean value of the fully_created var, which should be TRUE if New() has finished running. FALSE otherwise.

\ No newline at end of file diff --git a/code/__DEFINES/clothing.html b/code/__DEFINES/clothing.html new file mode 100644 index 0000000000000..948941ced5a58 --- /dev/null +++ b/code/__DEFINES/clothing.html @@ -0,0 +1 @@ +code/__DEFINES/clothing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/clothing.dm

SHOES_UNTIEDShoes are untied
SHOES_TIEDShoes are tied normally
SHOES_KNOTTEDShoes have been tied in knots
SENSOR_OFFSuit sensor is turned off
SENSOR_LIVINGSuit sensor displays the mob as alive or dead
SENSOR_VITALSSuit sensor displays the mob damage values
SENSOR_COORDSSuit sensor displays the mob damage values and exact location
BROKEN_SENSORSSuit sensor has been EMP'd and cannot display any information (can be fixed)
NO_SENSORSSuit sensor is not present and cannot display any information
HAS_SENSORSSuit sensor is present and can display information
LOCKED_SENSORSSuit sensor is present and is forced to display information (used on prisoner jumpsuits)
ADD_CLOTHING_TRAITWrapper for adding clothing based traits
REMOVE_CLOTHING_TRAITWrapper for removing clothing based traits
MOTH_EATING_CLOTHING_DAMAGEHow much integrity does a shirt lose every time we bite it?

Define Details

ADD_CLOTHING_TRAIT

Wrapper for adding clothing based traits

BROKEN_SENSORS

Suit sensor has been EMP'd and cannot display any information (can be fixed)

HAS_SENSORS

Suit sensor is present and can display information

LOCKED_SENSORS

Suit sensor is present and is forced to display information (used on prisoner jumpsuits)

MOTH_EATING_CLOTHING_DAMAGE

How much integrity does a shirt lose every time we bite it?

NO_SENSORS

Suit sensor is not present and cannot display any information

REMOVE_CLOTHING_TRAIT

Wrapper for removing clothing based traits

SENSOR_COORDS

Suit sensor displays the mob damage values and exact location

SENSOR_LIVING

Suit sensor displays the mob as alive or dead

SENSOR_OFF

Suit sensor is turned off

SENSOR_VITALS

Suit sensor displays the mob damage values

SHOES_KNOTTED

Shoes have been tied in knots

SHOES_TIED

Shoes are tied normally

SHOES_UNTIED

Shoes are untied

\ No newline at end of file diff --git a/code/__DEFINES/colors.html b/code/__DEFINES/colors.html new file mode 100644 index 0000000000000..1d2e043607fc0 --- /dev/null +++ b/code/__DEFINES/colors.html @@ -0,0 +1,3 @@ +code/__DEFINES/colors.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/colors.dm

ADMIN_COLOUR_PRIORITYOnly used by rare effects like greentext coloring mobs and when admins varedit color
TEMPORARY_COLOUR_PRIORITYe.g. purple effect of the revenant on a mob, black effect when mob electrocuted
WASHABLE_COLOUR_PRIORITYColor splashed onto an atom (e.g. paint on turf)
FIXED_COLOUR_PRIORITYColor inherent to the atom (e.g. blob color)
COLOUR_PRIORITY_AMOUNThow many colour priority levels there are.
COLOR_TOOL_BLUEColors for grayscale tools
COLOR_SAMPLE_YELLOWColors for xenobiology vatgrowing
COLOR_THEME_MIDNIGHTMain colors for UI themes
COLOR_PERIWINKLEEColors for eigenstates
COLOR_STARLIGHTStarlight!
LIGHT_COLOR_DEFAULTSome defines to generalise colours used in lighting.
LIGHT_COLOR_GREENBright but quickly dissipating neon green. rgb(100, 200, 100)
LIGHT_COLOR_NUCLEARBright, pale "nuclear" green. rgb(120, 255, 120)
LIGHT_COLOR_VIVID_GREENVivid, slightly blue green. rgb(60, 240, 70)
LIGHT_COLOR_ELECTRIC_GREENElectric green. rgb(0, 255, 0)
LIGHT_COLOR_BLUECold, diluted blue. rgb(100, 150, 250)
LIGHT_COLOR_FAINT_BLUEFaint white blue. rgb(222, 239, 255)
LIGHT_COLOR_BLUEGREENLight blueish green. rgb(125, 225, 175)
LIGHT_COLOR_CYANDiluted cyan. rgb(125, 225, 225)
LIGHT_COLOR_FAINT_CYANFaint cyan. rgb(200, 240, 255)
LIGHT_COLOR_BABY_BLUEBaby Blue rgb(0, 170, 220)
LIGHT_COLOR_ELECTRIC_CYANElectric cyan rgb(0, 255, 255)
LIGHT_COLOR_LIGHT_CYANMore-saturated cyan. rgb(64, 206, 255)
LIGHT_COLOR_DARK_BLUESaturated blue. rgb(51, 117, 248)
LIGHT_COLOR_PINKDiluted, mid-warmth pink. rgb(225, 125, 225)
LIGHT_COLOR_DIM_YELLOWDimmed yellow, leaning kaki. rgb(225, 225, 125)
LIGHT_COLOR_BRIGHT_YELLOWBright yellow. rgb(255, 255, 150)
LIGHT_COLOR_BROWNClear brown, mostly dim. rgb(150, 100, 50)
LIGHT_COLOR_ORANGEMostly pure orange. rgb(250, 150, 50)
LIGHT_COLOR_PURPLELight Purple. rgb(149, 44, 244)
LIGHT_COLOR_LAVENDERLess-saturated light purple. rgb(155, 81, 255)
LIGHT_COLOR_HOLY_MAGICslightly desaturated bright yellow.
LIGHT_COLOR_BLOOD_MAGICdeep crimson
LIGHT_COLOR_FIREWarm orange color, leaning strongly towards yellow. rgb(250, 160, 25)
LIGHT_COLOR_LAVAVery warm yellow, leaning slightly towards orange. rgb(196, 138, 24)
LIGHT_COLOR_FLAREBright, non-saturated red. Leaning slightly towards pink for visibility. rgb(250, 100, 75)
LIGHT_COLOR_INTENSE_REDVivid red. Leans a bit darker to accentuate red colors and leave other channels a bit dry. rgb(200, 25, 25)
LIGHT_COLOR_SLIME_LAMPWeird color, between yellow and green, very slimy. rgb(175, 200, 75)
LIGHT_COLOR_TUNGSTENExtremely diluted yellow, close to skin color (for some reason). rgb(255, 214, 170)
LIGHT_COLOR_HALOGENBarely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250)
LIGHT_COLOR_BUBBLEGUMNearly red. rgb(226, 78, 118)
COLOR_PRIDE_REDColors for pride week
COLOR_DISPLAY_REDColors for status/tram/incident displays
DEFAULT_ASAY_COLORThe default color for admin say, used as a fallback when the preference is not enabled
AMBIENT_OCCLUSIONIcon filter that creates ambient occlusion
GAUSSIAN_BLURIcon filter that creates gaussian blur

Define Details

ADMIN_COLOUR_PRIORITY

Only used by rare effects like greentext coloring mobs and when admins varedit color

AMBIENT_OCCLUSION

Icon filter that creates ambient occlusion

COLOR_DISPLAY_RED

Colors for status/tram/incident displays

COLOR_PERIWINKLEE

Colors for eigenstates

COLOR_PRIDE_RED

Colors for pride week

COLOR_SAMPLE_YELLOW

Colors for xenobiology vatgrowing

COLOR_STARLIGHT

Starlight!

COLOR_THEME_MIDNIGHT

Main colors for UI themes

COLOR_TOOL_BLUE

Colors for grayscale tools

COLOUR_PRIORITY_AMOUNT

how many colour priority levels there are.

DEFAULT_ASAY_COLOR

The default color for admin say, used as a fallback when the preference is not enabled

FIXED_COLOUR_PRIORITY

Color inherent to the atom (e.g. blob color)

GAUSSIAN_BLUR

Icon filter that creates gaussian blur

LIGHT_COLOR_BABY_BLUE

Baby Blue rgb(0, 170, 220)

LIGHT_COLOR_BLOOD_MAGIC

deep crimson

LIGHT_COLOR_BLUE

Cold, diluted blue. rgb(100, 150, 250)

LIGHT_COLOR_BLUEGREEN

Light blueish green. rgb(125, 225, 175)

LIGHT_COLOR_BRIGHT_YELLOW

Bright yellow. rgb(255, 255, 150)

LIGHT_COLOR_BROWN

Clear brown, mostly dim. rgb(150, 100, 50)

LIGHT_COLOR_BUBBLEGUM

Nearly red. rgb(226, 78, 118)

LIGHT_COLOR_CYAN

Diluted cyan. rgb(125, 225, 225)

LIGHT_COLOR_DARK_BLUE

Saturated blue. rgb(51, 117, 248)

LIGHT_COLOR_DEFAULT

Some defines to generalise colours used in lighting.

+

Important note: colors can end up significantly different from the basic html picture, especially when saturated +Bright light used by default in tubes and bulbs

LIGHT_COLOR_DIM_YELLOW

Dimmed yellow, leaning kaki. rgb(225, 225, 125)

LIGHT_COLOR_ELECTRIC_CYAN

Electric cyan rgb(0, 255, 255)

LIGHT_COLOR_ELECTRIC_GREEN

Electric green. rgb(0, 255, 0)

LIGHT_COLOR_FAINT_BLUE

Faint white blue. rgb(222, 239, 255)

LIGHT_COLOR_FAINT_CYAN

Faint cyan. rgb(200, 240, 255)

LIGHT_COLOR_FIRE

Warm orange color, leaning strongly towards yellow. rgb(250, 160, 25)

LIGHT_COLOR_FLARE

Bright, non-saturated red. Leaning slightly towards pink for visibility. rgb(250, 100, 75)

LIGHT_COLOR_GREEN

Bright but quickly dissipating neon green. rgb(100, 200, 100)

LIGHT_COLOR_HALOGEN

Barely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250)

LIGHT_COLOR_HOLY_MAGIC

slightly desaturated bright yellow.

LIGHT_COLOR_INTENSE_RED

Vivid red. Leans a bit darker to accentuate red colors and leave other channels a bit dry. rgb(200, 25, 25)

LIGHT_COLOR_LAVA

Very warm yellow, leaning slightly towards orange. rgb(196, 138, 24)

LIGHT_COLOR_LAVENDER

Less-saturated light purple. rgb(155, 81, 255)

LIGHT_COLOR_LIGHT_CYAN

More-saturated cyan. rgb(64, 206, 255)

LIGHT_COLOR_NUCLEAR

Bright, pale "nuclear" green. rgb(120, 255, 120)

LIGHT_COLOR_ORANGE

Mostly pure orange. rgb(250, 150, 50)

LIGHT_COLOR_PINK

Diluted, mid-warmth pink. rgb(225, 125, 225)

LIGHT_COLOR_PURPLE

Light Purple. rgb(149, 44, 244)

LIGHT_COLOR_SLIME_LAMP

Weird color, between yellow and green, very slimy. rgb(175, 200, 75)

LIGHT_COLOR_TUNGSTEN

Extremely diluted yellow, close to skin color (for some reason). rgb(255, 214, 170)

LIGHT_COLOR_VIVID_GREEN

Vivid, slightly blue green. rgb(60, 240, 70)

TEMPORARY_COLOUR_PRIORITY

e.g. purple effect of the revenant on a mob, black effect when mob electrocuted

WASHABLE_COLOUR_PRIORITY

Color splashed onto an atom (e.g. paint on turf)

\ No newline at end of file diff --git a/code/__DEFINES/combat.html b/code/__DEFINES/combat.html new file mode 100644 index 0000000000000..7597eb74e49cd --- /dev/null +++ b/code/__DEFINES/combat.html @@ -0,0 +1,21 @@ +code/__DEFINES/combat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/combat.dm

BRUTEPhysical fracturing and warping of the material.
BURNScorching and charring of the material.
TOXPoisoning. Mostly caused by reagents.
OXYSuffocation.
STAMINAExhaustion and nonlethal damage.
BRAINBrain damage. Should probably be decommissioned and replaced with proper organ damage.
ACIDInvolves corrosive substances.
BIOInvolved in checking whether a disease can infect or spread. Also involved in xeno neurotoxin.
BOMBInvolves a shockwave, usually from an explosion.
BULLETInvolves a solid projectile.
CONSUMEInvolves being eaten
ENERGYInvolves an EMP or energy-based projectile.
FIREInvolves fire or temperature extremes.
LASERInvolves a laser.
MELEEInvolves a melee attack or a thrown object.
WOUNDInvolved in checking the likelihood of applying a wound to a mob.
ARMOR_LIST_DAMAGEArmor values that are used for damage
ARMOR_LIST_DURABILITYArmor values that are used for durability
ARMOR_LIST_ALLAll armors, preferable in the order as seen above
CANSTUNIf set, this mob can be stunned.
CANKNOCKDOWNIf set, this mob can be knocked down (or stamcrit)
CANUNCONSCIOUSIf set, this mob can be knocked unconscious via status effect. +NOTE, does not mean immune to sleep. Unconscious and sleep are two different things. +NOTE, does not relate to the unconscious stat either. Only the status effect.
CANPUSHIf set, this mob can be grabbed or pushed when bumped into
MELEE_ATTACKAttack was made with a melee weapon
UNARMED_ATTACKAttack is a punch or kick. +Mob attacks are not classified as unarmed (currently).
PROJECTILE_ATTACKA projectile is hitting us.
THROWN_PROJECTILE_ATTACKA thrown item is hitting us.
LEAP_ATTACKWe're being tackled or leaped at.
GET_ASSAILANTUsed in check block to get what mob is attacking the blocker.
EMBED_THROWSPEED_THRESHOLDThe minimum value of an item's throw_speed for it to embed (Unless it has embedded_ignore_throwspeed_threshold set to 1)
EMBED_CHANCE_SPEED_BONUSFor thrown embedding weapons, every extra speed it's thrown at above its normal throwspeed will add this to the embed chance
BOLT_TYPE_STANDARDGun has a bolt, it stays closed while not cycling. The gun must be racked to have a bullet chambered when a mag is inserted. +Example: c20, shotguns, m90
BOLT_TYPE_OPENGun has a bolt, it is open when ready to fire. The gun can never have a chambered bullet with no magazine, but the bolt stays ready when a mag is removed. +Example: Tomson, Uzi, the L6 SAW
BOLT_TYPE_NO_BOLTGun has no moving bolt mechanism, it cannot be racked. Also dumps the entire contents when emptied instead of a magazine. +Example: Break action shotguns, revolvers
BOLT_TYPE_LOCKINGGun has a bolt, it locks back when empty. It can be released to chamber a round if a magazine is in. +Example: Pistols with a slide lock, some SMGs
SAWN_OFF_ACC_PENALTYaccuracy penalty of sawn off guns
SAWN_OFF_RECOILadded recoil of sawn off guns
AMMO_BOX_ONE_SPRITEammo box will always use provided icon state
AMMO_BOX_PER_BULLETammo box will have a different state for each bullet; <icon_state>-
AMMO_BOX_FULL_EMPTYAmmo box will have a different sprite for any ammo at all, and no ammo, <icon_state>-full <icon_state>-empty
SUPPRESSED_QUIETstandard suppressed
SUPPRESSED_VERYno message
EXPLODE_GIB_THRESHOLDex_act() with EXPLODE_DEVASTATE severity will gib mobs with less than this much bomb armor
CARBON_MAX_IMPACT_SPEED_BONUSIf a carbon is thrown at a speed faster than normal and impacts something solid, they take extra damage for every extra speed up to this number (see [/mob/living/carbon/proc/throw_impact])
SECONDARY_ATTACK_CALL_NORMALAlternate attack defines. Return these at the end of procs like afterattack_secondary. +Calls the normal attack proc. For example, if returned in afterattack_secondary, will call afterattack. +Will continue the chain depending on the return value of the non-alternate proc, like with normal attacks.
SECONDARY_ATTACK_CANCEL_ATTACK_CHAINCancels the attack chain entirely.
SECONDARY_ATTACK_CONTINUE_CHAINProceed with the attack chain, but don't call the normal methods.
AUTOFIRE_STAT_IDLECompatible firemode is in the gun. Wait until it's held in the user hands.
AUTOFIRE_STAT_ALERTGun is active and in the user hands. Wait until user does a valid click.
AUTOFIRE_STAT_FIRINGGun is shooting.
MARTIAL_ATTACK_INVALIDMartial arts attack requested but is not available, allow a check for a regular attack.
MARTIAL_ATTACK_FAILMartial arts attack happened but failed, do not allow a check for a regular attack.
MARTIAL_ATTACK_SUCCESSMartial arts attack happened and succeeded, do not allow a check for a regular attack.
ARMOR_WEAKENED_MULTIPLIERIF an object is weak against armor, this is the value that any present armor is multiplied by
ARMOR_MAX_BLOCKArmor can't block more than this as a percentage
PENETRATE_ARMOURCalculates the new armour value after armour penetration. Can return negative values, and those must be caught.
BATON_DO_NORMAL_ATTACKReturn values used in item/melee/baton/baton_attack. +Does a normal item attack.
BATON_ATTACK_DONEThe attack has been stopped. Either because the user was clumsy or the attack was blocked.
BATON_ATTACKINGThe baton attack is still going. baton_effect() is called.
LEFT_ATTACKLMB Attack
RIGHT_ATTACKRMB Attack
COMBO_STEPSSteps for the combo
COMBO_PROCThe proc the combo calls
SHOVE_CAN_MOVEChecks If the target can be moved at all by shoving them
SHOVE_CAN_HIT_SOMETHINGIf the target can be shoved into something something with perhaps special interactions.
SHOVE_KNOCKDOWN_BLOCKEDKeeps knockdowns at bay for the target
SHOVE_CAN_KICK_SIDEIf the target can be briefly paralized by shoving them once again after knocking them down.
SHOVE_CAN_STAGGERWhether the staggered status effect can be applied on the target
SHOVE_BLOCKEDIf the target could move, but didn't because there's an obstacle in the path.
SHOVE_DIRECTIONAL_BLOCKEDIf the obstacle is an object at the border of the turf (so no signal from being sent to the other turf)
STAMCRIT_CANCELLEDBitfield returned by listeners for COMSIG_LIVING_ENTER_STAMCRIT when they perform some action that prevents a mob going into stamcrit.
DEATHMATCH_NOT_PLAYINGDeathmatch lobby current status

Define Details

ACID

Involves corrosive substances.

AMMO_BOX_FULL_EMPTY

Ammo box will have a different sprite for any ammo at all, and no ammo, <icon_state>-full <icon_state>-empty

AMMO_BOX_ONE_SPRITE

ammo box will always use provided icon state

AMMO_BOX_PER_BULLET

ammo box will have a different state for each bullet; <icon_state>-

ARMOR_LIST_ALL

All armors, preferable in the order as seen above

ARMOR_LIST_DAMAGE

Armor values that are used for damage

ARMOR_LIST_DURABILITY

Armor values that are used for durability

ARMOR_MAX_BLOCK

Armor can't block more than this as a percentage

ARMOR_WEAKENED_MULTIPLIER

IF an object is weak against armor, this is the value that any present armor is multiplied by

AUTOFIRE_STAT_ALERT

Gun is active and in the user hands. Wait until user does a valid click.

AUTOFIRE_STAT_FIRING

Gun is shooting.

AUTOFIRE_STAT_IDLE

Compatible firemode is in the gun. Wait until it's held in the user hands.

BATON_ATTACKING

The baton attack is still going. baton_effect() is called.

BATON_ATTACK_DONE

The attack has been stopped. Either because the user was clumsy or the attack was blocked.

BATON_DO_NORMAL_ATTACK

Return values used in item/melee/baton/baton_attack. +Does a normal item attack.

BIO

Involved in checking whether a disease can infect or spread. Also involved in xeno neurotoxin.

BOLT_TYPE_LOCKING

Gun has a bolt, it locks back when empty. It can be released to chamber a round if a magazine is in. +Example: Pistols with a slide lock, some SMGs

BOLT_TYPE_NO_BOLT

Gun has no moving bolt mechanism, it cannot be racked. Also dumps the entire contents when emptied instead of a magazine. +Example: Break action shotguns, revolvers

BOLT_TYPE_OPEN

Gun has a bolt, it is open when ready to fire. The gun can never have a chambered bullet with no magazine, but the bolt stays ready when a mag is removed. +Example: Tomson, Uzi, the L6 SAW

BOLT_TYPE_STANDARD

Gun has a bolt, it stays closed while not cycling. The gun must be racked to have a bullet chambered when a mag is inserted. +Example: c20, shotguns, m90

BOMB

Involves a shockwave, usually from an explosion.

BRAIN

Brain damage. Should probably be decommissioned and replaced with proper organ damage.

BRUTE

Physical fracturing and warping of the material.

BULLET

Involves a solid projectile.

BURN

Scorching and charring of the material.

CANKNOCKDOWN

If set, this mob can be knocked down (or stamcrit)

CANPUSH

If set, this mob can be grabbed or pushed when bumped into

CANSTUN

If set, this mob can be stunned.

CANUNCONSCIOUS

If set, this mob can be knocked unconscious via status effect. +NOTE, does not mean immune to sleep. Unconscious and sleep are two different things. +NOTE, does not relate to the unconscious stat either. Only the status effect.

CARBON_MAX_IMPACT_SPEED_BONUS

If a carbon is thrown at a speed faster than normal and impacts something solid, they take extra damage for every extra speed up to this number (see [/mob/living/carbon/proc/throw_impact])

COMBO_PROC

The proc the combo calls

COMBO_STEPS

Steps for the combo

CONSUME

Involves being eaten

DEATHMATCH_NOT_PLAYING

Deathmatch lobby current status

EMBED_CHANCE_SPEED_BONUS

For thrown embedding weapons, every extra speed it's thrown at above its normal throwspeed will add this to the embed chance

EMBED_THROWSPEED_THRESHOLD

The minimum value of an item's throw_speed for it to embed (Unless it has embedded_ignore_throwspeed_threshold set to 1)

ENERGY

Involves an EMP or energy-based projectile.

EXPLODE_GIB_THRESHOLD

ex_act() with EXPLODE_DEVASTATE severity will gib mobs with less than this much bomb armor

FIRE

Involves fire or temperature extremes.

GET_ASSAILANT

Used in check block to get what mob is attacking the blocker.

LASER

Involves a laser.

LEAP_ATTACK

We're being tackled or leaped at.

LEFT_ATTACK

LMB Attack

MARTIAL_ATTACK_FAIL

Martial arts attack happened but failed, do not allow a check for a regular attack.

MARTIAL_ATTACK_INVALID

Martial arts attack requested but is not available, allow a check for a regular attack.

MARTIAL_ATTACK_SUCCESS

Martial arts attack happened and succeeded, do not allow a check for a regular attack.

MELEE

Involves a melee attack or a thrown object.

MELEE_ATTACK

Attack was made with a melee weapon

OXY

Suffocation.

PENETRATE_ARMOUR

Calculates the new armour value after armour penetration. Can return negative values, and those must be caught.

PROJECTILE_ATTACK

A projectile is hitting us.

RIGHT_ATTACK

RMB Attack

SAWN_OFF_ACC_PENALTY

accuracy penalty of sawn off guns

SAWN_OFF_RECOIL

added recoil of sawn off guns

SECONDARY_ATTACK_CALL_NORMAL

Alternate attack defines. Return these at the end of procs like afterattack_secondary. +Calls the normal attack proc. For example, if returned in afterattack_secondary, will call afterattack. +Will continue the chain depending on the return value of the non-alternate proc, like with normal attacks.

SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN

Cancels the attack chain entirely.

SECONDARY_ATTACK_CONTINUE_CHAIN

Proceed with the attack chain, but don't call the normal methods.

SHOVE_BLOCKED

If the target could move, but didn't because there's an obstacle in the path.

SHOVE_CAN_HIT_SOMETHING

If the target can be shoved into something something with perhaps special interactions.

SHOVE_CAN_KICK_SIDE

If the target can be briefly paralized by shoving them once again after knocking them down.

SHOVE_CAN_MOVE

Checks If the target can be moved at all by shoving them

SHOVE_CAN_STAGGER

Whether the staggered status effect can be applied on the target

SHOVE_DIRECTIONAL_BLOCKED

If the obstacle is an object at the border of the turf (so no signal from being sent to the other turf)

SHOVE_KNOCKDOWN_BLOCKED

Keeps knockdowns at bay for the target

STAMCRIT_CANCELLED

Bitfield returned by listeners for COMSIG_LIVING_ENTER_STAMCRIT when they perform some action that prevents a mob going into stamcrit.

STAMINA

Exhaustion and nonlethal damage.

SUPPRESSED_QUIET

standard suppressed

SUPPRESSED_VERY

no message

THROWN_PROJECTILE_ATTACK

A thrown item is hitting us.

TOX

Poisoning. Mostly caused by reagents.

UNARMED_ATTACK

Attack is a punch or kick. +Mob attacks are not classified as unarmed (currently).

WOUND

Involved in checking the likelihood of applying a wound to a mob.

\ No newline at end of file diff --git a/code/__DEFINES/communications.html b/code/__DEFINES/communications.html new file mode 100644 index 0000000000000..acf33bcc2ecdc --- /dev/null +++ b/code/__DEFINES/communications.html @@ -0,0 +1 @@ +code/__DEFINES/communications.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/communications.dm

CROSS_SECTOR_CANCEL_TIMEThe time an admin has to cancel a cross-sector message
EXTENDED_CROSS_SECTOR_CANCEL_TIMEThe extended time an admin has to cancel a cross-sector message if they pass the filter, for instance

Define Details

CROSS_SECTOR_CANCEL_TIME

The time an admin has to cancel a cross-sector message

EXTENDED_CROSS_SECTOR_CANCEL_TIME

The extended time an admin has to cancel a cross-sector message if they pass the filter, for instance

\ No newline at end of file diff --git a/code/__DEFINES/computers.html b/code/__DEFINES/computers.html new file mode 100644 index 0000000000000..af483db1bb23e --- /dev/null +++ b/code/__DEFINES/computers.html @@ -0,0 +1 @@ +code/__DEFINES/computers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/computers.dm

USER_PREVIEW_ASSIGNED_VIEWHelper macro for record computers' preview views, used to ensure consistency in all use cases.

Define Details

USER_PREVIEW_ASSIGNED_VIEW

Helper macro for record computers' preview views, used to ensure consistency in all use cases.

\ No newline at end of file diff --git a/code/__DEFINES/configuration.html b/code/__DEFINES/configuration.html new file mode 100644 index 0000000000000..1d13d8b36e158 --- /dev/null +++ b/code/__DEFINES/configuration.html @@ -0,0 +1 @@ +code/__DEFINES/configuration.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/configuration.dm

CONFIG_ENTRY_LOCKEDcan't edit
CONFIG_ENTRY_HIDDENcan't see value
OVERRIDE_CONFIG_DIRECTORY_PARAMETERForce the config directory to be something other than "config"
RESPAWN_FLAG_DISABLEDRespawn not allowed
RESPAWN_FLAG_FREERespawn as much as you'd like
RESPAWN_FLAG_NEW_CHARACTERCan respawn, but not as the same character

Define Details

CONFIG_ENTRY_HIDDEN

can't see value

CONFIG_ENTRY_LOCKED

can't edit

OVERRIDE_CONFIG_DIRECTORY_PARAMETER

Force the config directory to be something other than "config"

RESPAWN_FLAG_DISABLED

Respawn not allowed

RESPAWN_FLAG_FREE

Respawn as much as you'd like

RESPAWN_FLAG_NEW_CHARACTER

Can respawn, but not as the same character

\ No newline at end of file diff --git a/code/__DEFINES/construction/actions.html b/code/__DEFINES/construction/actions.html new file mode 100644 index 0000000000000..1aa4cacb59d81 --- /dev/null +++ b/code/__DEFINES/construction/actions.html @@ -0,0 +1 @@ +code/__DEFINES/construction/actions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/construction/actions.dm

CANT_UNFASTENReturn if unfasten failed, but allow attack chain to continue
FAILED_UNFASTENReturn if unfasten failed, and stop attack chain
SUCCESSFUL_UNFASTENReturn if unfasten succeeded

Define Details

CANT_UNFASTEN

Return if unfasten failed, but allow attack chain to continue

FAILED_UNFASTEN

Return if unfasten failed, and stop attack chain

SUCCESSFUL_UNFASTEN

Return if unfasten succeeded

\ No newline at end of file diff --git a/code/__DEFINES/construction/material.html b/code/__DEFINES/construction/material.html new file mode 100644 index 0000000000000..a868c9985b4e0 --- /dev/null +++ b/code/__DEFINES/construction/material.html @@ -0,0 +1,3 @@ +code/__DEFINES/construction/material.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/construction/material.dm

SHEET_MATERIAL_AMOUNTThe amount of materials you get from a sheet of mineral like iron/diamond/glass etc. 100 Units.
HALF_SHEET_MATERIAL_AMOUNTThe amount of materials you get from half a sheet. Used in standard object quantities. 50 units.
SMALL_MATERIAL_AMOUNTThe amount of materials used in the smallest of objects, like pens and screwdrivers. 10 units.
COIN_MATERIAL_AMOUNTThe amount of material that goes into a coin, which determines the value of the coin.
MAX_STACK_SIZEThe maximum size of a stack object.
MAXCOILMaximum amount of cable in a coil
MAT_CATEGORY_SILOCan this material be stored in the ore silo
MAT_CATEGORY_RIGIDHard materials, such as iron or silver
MAT_CATEGORY_ITEM_MATERIALMaterials that can be used to craft items
MAT_CATEGORY_BASE_RECIPESUse this flag on TRUE if you want the basic recipes
MATERIAL_INIT_MAPLOADFlags for map loaded materials +Used to make a material initialize at roundstart.
MATERIAL_INIT_BESPOKEUsed to make a material type able to be instantiated on demand after roundstart.
MATCONTAINER_EXAMINEIf the container shows the amount of contained materials on examine.
MATCONTAINER_NO_INSERTIf the container cannot have materials inserted through attackby().
MATCONTAINER_ANY_INTENTIf the user can insert mats into the container despite the intent.
MATCONTAINER_SILENTIf the user won't receive a warning when attacking the container with an unallowed item.
MATERIAL_EFFECTSWhether a material's mechanical effects should apply to the atom. This is necessary for other flags to work.
MATERIAL_COLORApplies the material color to the atom's color. Deprecated, use MATERIAL_GREYSCALE instead
MATERIAL_ADD_PREFIXWhether a prefix describing the material should be added to the name
MATERIAL_AFFECT_STATISTICSWhether a material should affect the stats of the atom
MATERIAL_GREYSCALEApplies the material greyscale color to the atom's greyscale color.
MATERIAL_INSERT_ITEM_NO_MATSNo material was found inside them item
MATERIAL_INSERT_ITEM_NO_SPACEThe container does not have the space for the item
MATERIAL_INSERT_ITEM_FAILUREThe item material type was not accepted or other reasons
MATERIAL_SLOWDOWN_PLASTEELThe slowdown value of one SHEET_MATERIAL_AMOUNT of plasteel.
MATERIAL_SLOWDOWN_ALIEN_ALLOYThe slowdown value of one SHEET_MATERIAL_AMOUNT of alien alloy.
MATERIAL_QUANTITY_COMMONHow much quantity of a material stock exists for common materials like iron & glass.
MATERIAL_QUANTITY_UNCOMMONHow much quantity of a material stock exists for uncommon materials like silver & titanium.
MATERIAL_QUANTITY_RAREHow much quantity of a material stock exists for rare materials like gold, uranium, & diamond.
MATERIAL_QUANTITY_EXOTICHow much quantity of a material stock exists for exotic materials like diamond & bluespace crystals.
MATERIAL_RARITY_COMMONIs this material going to spawn often in ore vents? (80% of vents on lavaland)
MATERIAL_RARITY_SEMIPRECIOUSIs this material going to spawn often in ore vents? (53% of vents on lavaland)
MATERIAL_RARITY_PRECIOUSIs this material going to spawn uncommonly in ore vents? (33% of vents on lavaland)
MATERIAL_RARITY_RAREIs this material going to spawn rarely in ore vents? (20% of vents on lavaland)
MATERIAL_RARITY_UNDISCOVEREDIs this material only going to spawn once in ore vents? (6% of vents on lavaland)

Define Details

COIN_MATERIAL_AMOUNT

The amount of material that goes into a coin, which determines the value of the coin.

HALF_SHEET_MATERIAL_AMOUNT

The amount of materials you get from half a sheet. Used in standard object quantities. 50 units.

MATCONTAINER_ANY_INTENT

If the user can insert mats into the container despite the intent.

MATCONTAINER_EXAMINE

If the container shows the amount of contained materials on examine.

MATCONTAINER_NO_INSERT

If the container cannot have materials inserted through attackby().

MATCONTAINER_SILENT

If the user won't receive a warning when attacking the container with an unallowed item.

MATERIAL_ADD_PREFIX

Whether a prefix describing the material should be added to the name

MATERIAL_AFFECT_STATISTICS

Whether a material should affect the stats of the atom

MATERIAL_COLOR

Applies the material color to the atom's color. Deprecated, use MATERIAL_GREYSCALE instead

MATERIAL_EFFECTS

Whether a material's mechanical effects should apply to the atom. This is necessary for other flags to work.

MATERIAL_GREYSCALE

Applies the material greyscale color to the atom's greyscale color.

MATERIAL_INIT_BESPOKE

Used to make a material type able to be instantiated on demand after roundstart.

MATERIAL_INIT_MAPLOAD

Flags for map loaded materials +Used to make a material initialize at roundstart.

MATERIAL_INSERT_ITEM_FAILURE

The item material type was not accepted or other reasons

MATERIAL_INSERT_ITEM_NO_MATS

No material was found inside them item

MATERIAL_INSERT_ITEM_NO_SPACE

The container does not have the space for the item

MATERIAL_QUANTITY_COMMON

How much quantity of a material stock exists for common materials like iron & glass.

MATERIAL_QUANTITY_EXOTIC

How much quantity of a material stock exists for exotic materials like diamond & bluespace crystals.

MATERIAL_QUANTITY_RARE

How much quantity of a material stock exists for rare materials like gold, uranium, & diamond.

MATERIAL_QUANTITY_UNCOMMON

How much quantity of a material stock exists for uncommon materials like silver & titanium.

MATERIAL_RARITY_COMMON

Is this material going to spawn often in ore vents? (80% of vents on lavaland)

MATERIAL_RARITY_PRECIOUS

Is this material going to spawn uncommonly in ore vents? (33% of vents on lavaland)

MATERIAL_RARITY_RARE

Is this material going to spawn rarely in ore vents? (20% of vents on lavaland)

MATERIAL_RARITY_SEMIPRECIOUS

Is this material going to spawn often in ore vents? (53% of vents on lavaland)

MATERIAL_RARITY_UNDISCOVERED

Is this material only going to spawn once in ore vents? (6% of vents on lavaland)

MATERIAL_SLOWDOWN_ALIEN_ALLOY

The slowdown value of one SHEET_MATERIAL_AMOUNT of alien alloy.

MATERIAL_SLOWDOWN_PLASTEEL

The slowdown value of one SHEET_MATERIAL_AMOUNT of plasteel.

MAT_CATEGORY_BASE_RECIPES

Use this flag on TRUE if you want the basic recipes

MAT_CATEGORY_ITEM_MATERIAL

Materials that can be used to craft items

MAT_CATEGORY_RIGID

Hard materials, such as iron or silver

MAT_CATEGORY_SILO

Can this material be stored in the ore silo

MAXCOIL

Maximum amount of cable in a coil

MAX_STACK_SIZE

The maximum size of a stack object.

SHEET_MATERIAL_AMOUNT

The amount of materials you get from a sheet of mineral like iron/diamond/glass etc. 100 Units.

SMALL_MATERIAL_AMOUNT

The amount of materials used in the smallest of objects, like pens and screwdrivers. 10 units.

\ No newline at end of file diff --git a/code/__DEFINES/construction/rcd.html b/code/__DEFINES/construction/rcd.html new file mode 100644 index 0000000000000..3c0ac9c36ef18 --- /dev/null +++ b/code/__DEFINES/construction/rcd.html @@ -0,0 +1 @@ +code/__DEFINES/construction/rcd.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/construction/rcd.dm

RCD_DESIGN_MODEThe mode of operation to design an specific type of rcd design
RCD_TURFFor changing turfs
RCD_WINDOWGRILLEFull tile windows
RCD_AIRLOCKWindoors & Airlocks
RCD_STRUCTURELiterally anything that is spawned on top of a turf such as tables, machines etc
RCD_WALLFRAMEFor wallmounts like air alarms, fire alarms & apc
RCD_DECONSTRUCTFor deconstructing an structure
RCD_DESIGN_PATHThe typepath of the structure the rcd is trying to build
RCD_HOLOGRAM_FADE_TIMETime taken for an rcd hologram to disappear
RCD_DESTRUCTIVE_SCAN_COOLDOWNDelay before another rcd scan can be performed in the UI
RCD_UPGRADE_FRAMESUpgrade for building machines
RCD_UPGRADE_SIMPLE_CIRCUITSUpgrade for installing circuitboards in air alarms, fire alarms, apc & cells in them
RCD_UPGRADE_SILO_LINKUpgrade for drawing iron from ore silo
RCD_UPGRADE_FURNISHINGUpgrade for building furnishing items
RCD_UPGRADE_ANTI_INTERRUPTUpgrade to stop construction effect from getting attacked
RCD_UPGRADE_NO_FREQUENT_USE_COOLDOWNUpgrade to disable delay multiplier when building multiple structures
RCD_ALL_UPGRADESAll upgrades packed in 1 flag
RPD_UPGRADE_UNWRENCHUpgrades for the Rapid Pipe Dispenser to unwrench pipes
RCD_MEMORY_WALLThe memory constant for a wall
RCD_MEMORY_WINDOWGRILLEThe memory constant for full tile windows
RCD_MEMORY_COST_BUFFHow much less resources the RCD uses when reconstructing
RCD_RESULT_BYPASS_FREQUENT_USE_COOLDOWNIf set to TRUE in rcd_vals, will bypass the cooldown on slowing down frequent use

Define Details

RCD_AIRLOCK

Windoors & Airlocks

RCD_ALL_UPGRADES

All upgrades packed in 1 flag

RCD_DECONSTRUCT

For deconstructing an structure

RCD_DESIGN_MODE

The mode of operation to design an specific type of rcd design

RCD_DESIGN_PATH

The typepath of the structure the rcd is trying to build

RCD_DESTRUCTIVE_SCAN_COOLDOWN

Delay before another rcd scan can be performed in the UI

RCD_HOLOGRAM_FADE_TIME

Time taken for an rcd hologram to disappear

RCD_MEMORY_COST_BUFF

How much less resources the RCD uses when reconstructing

RCD_MEMORY_WALL

The memory constant for a wall

RCD_MEMORY_WINDOWGRILLE

The memory constant for full tile windows

RCD_RESULT_BYPASS_FREQUENT_USE_COOLDOWN

If set to TRUE in rcd_vals, will bypass the cooldown on slowing down frequent use

RCD_STRUCTURE

Literally anything that is spawned on top of a turf such as tables, machines etc

RCD_TURF

For changing turfs

RCD_UPGRADE_ANTI_INTERRUPT

Upgrade to stop construction effect from getting attacked

RCD_UPGRADE_FRAMES

Upgrade for building machines

RCD_UPGRADE_FURNISHING

Upgrade for building furnishing items

RCD_UPGRADE_NO_FREQUENT_USE_COOLDOWN

Upgrade to disable delay multiplier when building multiple structures

Upgrade for drawing iron from ore silo

RCD_UPGRADE_SIMPLE_CIRCUITS

Upgrade for installing circuitboards in air alarms, fire alarms, apc & cells in them

RCD_WALLFRAME

For wallmounts like air alarms, fire alarms & apc

RCD_WINDOWGRILLE

Full tile windows

RPD_UPGRADE_UNWRENCH

Upgrades for the Rapid Pipe Dispenser to unwrench pipes

\ No newline at end of file diff --git a/code/__DEFINES/construction/structures.html b/code/__DEFINES/construction/structures.html new file mode 100644 index 0000000000000..eebaca194b91f --- /dev/null +++ b/code/__DEFINES/construction/structures.html @@ -0,0 +1 @@ +code/__DEFINES/construction/structures.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/construction/structures.dm

BLASTDOOR_NEEDS_WIRESThe blast door is missing wires, first step of construction.
BLASTDOOR_NEEDS_ELECTRONICSThe blast door needs electronics, second step of construction.
BLASTDOOR_FINISHEDThe blast door is fully constructed.
FRAME_STATE_EMPTYFrame is empty, no wires no board
FRAME_STATE_WIREDFrame has been wired
FRAME_STATE_BOARD_INSTALLEDFrame has a board installed, it is safe to assume if in this state then circuit is non-null (but you never know)
FRAME_COMPUTER_STATE_EMPTYFrame is empty, no circuit board yet
FRAME_COMPUTER_STATE_BOARD_INSTALLEDFrame now has a board installed, it is safe to assume beyond this state, circuit is non-null (but you never know)
FRAME_COMPUTER_STATE_BOARD_SECUREDBoard has been secured
FRAME_COMPUTER_STATE_WIREDFrame has been wired
FRAME_COMPUTER_STATE_GLASSEDFrame has had glass applied to it
CAMERA_STATE_WRENCHEDThe camera assembly is wrenched in (aka placed on the wall), and wrenching will deconstruct.
CAMERA_STATE_WELDEDThe camera assembly is welded in place, so won't come off from wrench anymore.
CAMERA_STATE_WIREDThe camera assembly is wired and ready to finish construction.
CAMERA_STATE_FINISHEDThe camera assembly is finished construction fully, and is currently chilling in the camera machine.

Define Details

BLASTDOOR_FINISHED

The blast door is fully constructed.

BLASTDOOR_NEEDS_ELECTRONICS

The blast door needs electronics, second step of construction.

BLASTDOOR_NEEDS_WIRES

The blast door is missing wires, first step of construction.

CAMERA_STATE_FINISHED

The camera assembly is finished construction fully, and is currently chilling in the camera machine.

CAMERA_STATE_WELDED

The camera assembly is welded in place, so won't come off from wrench anymore.

CAMERA_STATE_WIRED

The camera assembly is wired and ready to finish construction.

CAMERA_STATE_WRENCHED

The camera assembly is wrenched in (aka placed on the wall), and wrenching will deconstruct.

FRAME_COMPUTER_STATE_BOARD_INSTALLED

Frame now has a board installed, it is safe to assume beyond this state, circuit is non-null (but you never know)

FRAME_COMPUTER_STATE_BOARD_SECURED

Board has been secured

FRAME_COMPUTER_STATE_EMPTY

Frame is empty, no circuit board yet

FRAME_COMPUTER_STATE_GLASSED

Frame has had glass applied to it

FRAME_COMPUTER_STATE_WIRED

Frame has been wired

FRAME_STATE_BOARD_INSTALLED

Frame has a board installed, it is safe to assume if in this state then circuit is non-null (but you never know)

FRAME_STATE_EMPTY

Frame is empty, no wires no board

FRAME_STATE_WIRED

Frame has been wired

\ No newline at end of file diff --git a/code/__DEFINES/cooldowns.html b/code/__DEFINES/cooldowns.html new file mode 100644 index 0000000000000..10b2bc3a80af8 --- /dev/null +++ b/code/__DEFINES/cooldowns.html @@ -0,0 +1 @@ +code/__DEFINES/cooldowns.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/cooldowns.dm

COOLDOWN_BORG_SELF_REPAIRCOOLDOWN SYSTEMS
TIMER_COOLDOWN_RUNNINGChecks if a timer based cooldown is NOT finished.
TIMER_COOLDOWN_FINISHEDChecks if a timer based cooldown is finished.

Define Details

COOLDOWN_BORG_SELF_REPAIR

COOLDOWN SYSTEMS

TIMER_COOLDOWN_FINISHED

Checks if a timer based cooldown is finished.

TIMER_COOLDOWN_RUNNING

Checks if a timer based cooldown is NOT finished.

\ No newline at end of file diff --git a/code/__DEFINES/crafting.html b/code/__DEFINES/crafting.html new file mode 100644 index 0000000000000..053a1c78609a8 --- /dev/null +++ b/code/__DEFINES/crafting.html @@ -0,0 +1 @@ +code/__DEFINES/crafting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/crafting.dm

CRAFTING_MACHINERY_CONSUMEIf the machine is used/deleted in the crafting process
CRAFTING_STRUCTURE_CONSUMEIf the structure is used/deleted in the crafting process
CRAFTING_MACHINERY_USEIf the machine is only "used" i.e. it checks to see if it's nearby and allows crafting, but doesn't delete it
CRAFTING_STRUCTURE_USEIf the structure is only "used" i.e. it checks to see if it's nearby and allows crafting, but doesn't delete it
STACK_CHECK_CARDINALSChecks if there is an object of the result type in any of the cardinal directions
STACK_CHECK_ADJACENTChecks if there is an object of the result type within one tile
CRAFT_MUST_BE_LEARNEDIf this craft must be learned before it becomes available
CRAFT_ONE_PER_TURFShould only one object exist on the same turf?
CRAFT_IS_FULLTILESetting this to true will effectively set check_direction to true.
CRAFT_CHECK_DIRECTIONIf this craft should run the direction check, for use when building things like directional windows where you can have more than one per turf
CRAFT_ON_SOLID_GROUNDIf the craft requires a floor below
CRAFT_CHECK_DENSITYIf the craft checks that there are objects with density in the same turf when being built
CRAFT_APPLIES_MATSIf the created atom will gain custom mat datums
CRAFT_TRANSFERS_REAGENTSCrafting passes reagents of components to the finished product
CRAFT_CLEARS_REAGENTSCrafting clears all reagents present in the finished product

Define Details

CRAFTING_MACHINERY_CONSUME

If the machine is used/deleted in the crafting process

CRAFTING_MACHINERY_USE

If the machine is only "used" i.e. it checks to see if it's nearby and allows crafting, but doesn't delete it

CRAFTING_STRUCTURE_CONSUME

If the structure is used/deleted in the crafting process

CRAFTING_STRUCTURE_USE

If the structure is only "used" i.e. it checks to see if it's nearby and allows crafting, but doesn't delete it

CRAFT_APPLIES_MATS

If the created atom will gain custom mat datums

CRAFT_CHECK_DENSITY

If the craft checks that there are objects with density in the same turf when being built

CRAFT_CHECK_DIRECTION

If this craft should run the direction check, for use when building things like directional windows where you can have more than one per turf

CRAFT_CLEARS_REAGENTS

Crafting clears all reagents present in the finished product

CRAFT_IS_FULLTILE

Setting this to true will effectively set check_direction to true.

CRAFT_MUST_BE_LEARNED

If this craft must be learned before it becomes available

CRAFT_ONE_PER_TURF

Should only one object exist on the same turf?

CRAFT_ON_SOLID_GROUND

If the craft requires a floor below

CRAFT_TRANSFERS_REAGENTS

Crafting passes reagents of components to the finished product

STACK_CHECK_ADJACENT

Checks if there is an object of the result type within one tile

STACK_CHECK_CARDINALS

Checks if there is an object of the result type in any of the cardinal directions

\ No newline at end of file diff --git a/code/__DEFINES/crushing.html b/code/__DEFINES/crushing.html new file mode 100644 index 0000000000000..188c1018b8546 --- /dev/null +++ b/code/__DEFINES/crushing.html @@ -0,0 +1 @@ +code/__DEFINES/crushing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/crushing.dm

SUCCESSFULLY_CRUSHED_MOBSet if the tipped object successfully crushed a subtype of /mob/living.
SUCCESSFULLY_CRUSHED_ATOMSet if the tipped object successfully crushed a subtype of /atom.
SUCCESSFULLY_FELL_OVERSet if the tipped object successfully actually fell over, which can fail if it couldn't enter the turf it tried to fall into.

Define Details

SUCCESSFULLY_CRUSHED_ATOM

Set if the tipped object successfully crushed a subtype of /atom.

SUCCESSFULLY_CRUSHED_MOB

Set if the tipped object successfully crushed a subtype of /mob/living.

SUCCESSFULLY_FELL_OVER

Set if the tipped object successfully actually fell over, which can fail if it couldn't enter the turf it tried to fall into.

\ No newline at end of file diff --git a/code/__DEFINES/ctf.html b/code/__DEFINES/ctf.html new file mode 100644 index 0000000000000..530e0102d0868 --- /dev/null +++ b/code/__DEFINES/ctf.html @@ -0,0 +1 @@ +code/__DEFINES/ctf.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ctf.dm

CTF_REQUIRED_PLAYERSThe number of voters required for CTF to enable
CTF_GHOST_CTF_GAME_IDThe game ID for normal ghost CTF
CTF_MEDISIM_CTF_GAME_IDThe game ID used by the medieval simulator shuttle.

Define Details

CTF_GHOST_CTF_GAME_ID

The game ID for normal ghost CTF

CTF_MEDISIM_CTF_GAME_ID

The game ID used by the medieval simulator shuttle.

CTF_REQUIRED_PLAYERS

The number of voters required for CTF to enable

\ No newline at end of file diff --git a/code/__DEFINES/cult.html b/code/__DEFINES/cult.html new file mode 100644 index 0000000000000..ff12535b39f5f --- /dev/null +++ b/code/__DEFINES/cult.html @@ -0,0 +1 @@ +code/__DEFINES/cult.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/cult.dm

ENHANCED_BLOODCHARGEThe maximum number of cult spell slots each cultist is allowed to scribe at once.
CULT_RISENpercent before rise
CULT_ASCENDENTpercent before ascend
THEME_HERETICOnly used for heretic Harvesters, obtained from sacrificing cultists
PREVIEW_IMAGEDefines for cult item_dispensers.

Define Details

CULT_ASCENDENT

percent before ascend

CULT_RISEN

percent before rise

ENHANCED_BLOODCHARGE

The maximum number of cult spell slots each cultist is allowed to scribe at once.

PREVIEW_IMAGE

Defines for cult item_dispensers.

THEME_HERETIC

Only used for heretic Harvesters, obtained from sacrificing cultists

\ No newline at end of file diff --git a/code/__DEFINES/database.html b/code/__DEFINES/database.html new file mode 100644 index 0000000000000..5cfd56fbe6c29 --- /dev/null +++ b/code/__DEFINES/database.html @@ -0,0 +1 @@ +code/__DEFINES/database.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/database.dm

DB_QUERY_STARTEDWhen a query has been queued up for execution/is being executed
DB_QUERY_FINISHEDWhen a query is finished executing
DB_QUERY_BROKENWhen there was a problem with the execution of a query.
MESSAGE_BOTTLE_CHANCEThe probability of non-maploaded photos and papers being saved as bottle messages at the end of the round.

Define Details

DB_QUERY_BROKEN

When there was a problem with the execution of a query.

DB_QUERY_FINISHED

When a query is finished executing

DB_QUERY_STARTED

When a query has been queued up for execution/is being executed

MESSAGE_BOTTLE_CHANCE

The probability of non-maploaded photos and papers being saved as bottle messages at the end of the round.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/flags.html b/code/__DEFINES/dcs/flags.html new file mode 100644 index 0000000000000..bf8e722e3669a --- /dev/null +++ b/code/__DEFINES/dcs/flags.html @@ -0,0 +1,27 @@ +code/__DEFINES/dcs/flags.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/flags.dm

COMPONENT_INCOMPATIBLEReturn this from /datum/component/Initialize or /datum/component/OnTransfer or /datum/component/on_source_add to have the component be deleted if it's applied to an incorrect type. +parent must not be modified if this is to be returned. +This will be noted in the runtime logs
COMPONENT_NOTRANSFERReturned in PostTransfer to prevent transfer, similar to COMPONENT_INCOMPATIBLE
ELEMENT_INCOMPATIBLEReturn value to cancel attaching
ELEMENT_DETACH_ON_HOST_DESTROYCauses the detach proc to be called when the host object is being deleted. +Should only be used if you need to perform cleanup not related to the host object. +You do not need this if you are only unregistering signals, for instance. +You would need it if you are doing something like removing the target from a processing list.
ELEMENT_BESPOKEOnly elements created with the same arguments given after argument_hash_start_idx share an element instance +The arguments are the same when the text and number values are the same and all other values have the same ref
ELEMENT_COMPLEX_DETACHCauses all detach arguments to be passed to detach instead of only being used to identify the element +When this is used your Detach proc should have the same signature as your Attach proc
ELEMENT_DONT_SORT_LIST_ARGSElements with this flag will have their datum lists arguments compared as is, +without the contents being sorted alpha-numerically first. +This is good for those elements where the position of the keys matter, like in the case of color matrices.
ELEMENT_NO_LIST_UNIT_TESTElements with this flag will be ignored by the dcs_check_list_arguments test. +A good example is connect_loc, for which it's practically undoable unless we force every signal proc to have a different name.
COMPONENT_DUPE_HIGHLANDERold component is deleted (default)
COMPONENT_DUPE_ALLOWEDduplicates allowed
COMPONENT_DUPE_UNIQUEnew component is deleted
COMPONENT_DUPE_SOURCESComponent uses source tracking to manage adding and removal logic. +Add a source/spawn to/the component by using AddComponentFrom(source, component_type, args...) +Removing the last source will automatically remove the component from the parent. +Arguments will be passed to on_source_add(source, args...); ensure that Initialize and on_source_add have the same signature.
COMPONENT_DUPE_UNIQUE_PASSARGSold component is given the initialization args of the new
COMPONENT_DUPE_SELECTIVEeach component of the same type is consulted as to whether the duplicate should be allowed

Define Details

COMPONENT_DUPE_ALLOWED

duplicates allowed

COMPONENT_DUPE_HIGHLANDER

old component is deleted (default)

COMPONENT_DUPE_SELECTIVE

each component of the same type is consulted as to whether the duplicate should be allowed

COMPONENT_DUPE_SOURCES

Component uses source tracking to manage adding and removal logic. +Add a source/spawn to/the component by using AddComponentFrom(source, component_type, args...) +Removing the last source will automatically remove the component from the parent. +Arguments will be passed to on_source_add(source, args...); ensure that Initialize and on_source_add have the same signature.

COMPONENT_DUPE_UNIQUE

new component is deleted

COMPONENT_DUPE_UNIQUE_PASSARGS

old component is given the initialization args of the new

COMPONENT_INCOMPATIBLE

Return this from /datum/component/Initialize or /datum/component/OnTransfer or /datum/component/on_source_add to have the component be deleted if it's applied to an incorrect type. +parent must not be modified if this is to be returned. +This will be noted in the runtime logs

COMPONENT_NOTRANSFER

Returned in PostTransfer to prevent transfer, similar to COMPONENT_INCOMPATIBLE

ELEMENT_BESPOKE

Only elements created with the same arguments given after argument_hash_start_idx share an element instance +The arguments are the same when the text and number values are the same and all other values have the same ref

ELEMENT_COMPLEX_DETACH

Causes all detach arguments to be passed to detach instead of only being used to identify the element +When this is used your Detach proc should have the same signature as your Attach proc

ELEMENT_DETACH_ON_HOST_DESTROY

Causes the detach proc to be called when the host object is being deleted. +Should only be used if you need to perform cleanup not related to the host object. +You do not need this if you are only unregistering signals, for instance. +You would need it if you are doing something like removing the target from a processing list.

ELEMENT_DONT_SORT_LIST_ARGS

Elements with this flag will have their datum lists arguments compared as is, +without the contents being sorted alpha-numerically first. +This is good for those elements where the position of the keys matter, like in the case of color matrices.

ELEMENT_INCOMPATIBLE

Return value to cancel attaching

ELEMENT_NO_LIST_UNIT_TEST

Elements with this flag will be ignored by the dcs_check_list_arguments test. +A good example is connect_loc, for which it's practically undoable unless we force every signal proc to have a different name.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/helpers.html b/code/__DEFINES/dcs/helpers.html new file mode 100644 index 0000000000000..5b15698481352 --- /dev/null +++ b/code/__DEFINES/dcs/helpers.html @@ -0,0 +1,11 @@ +code/__DEFINES/dcs/helpers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/helpers.dm

SEND_SIGNALUsed to trigger signals and call procs registered for that signal +The datum hosting the signal is automatically added as the first argument +Returns a bitfield gathered from all registered procs +Arguments given here are packaged in a list and given to _SendSignal
SIGNAL_HANDLERSignifies that this proc is used to handle signals. +Every proc you pass to RegisterSignal must have this.
AddElementA wrapper for _AddElement that allows us to pretend we're using normal named arguments
RemoveElementA wrapper for _RemoveElement that allows us to pretend we're using normal named arguments
AddComponentA wrapper for _AddComponent that allows us to pretend we're using normal named arguments
AddComponentFromA wrapper for _AddComonent that passes in a source. +Necessary if dupe_mode is set to COMPONENT_DUPE_SOURCES.
LoadComponentA wrapper for _LoadComponent that allows us to pretend we're using normal named arguments

Define Details

AddComponent

A wrapper for _AddComponent that allows us to pretend we're using normal named arguments

AddComponentFrom

A wrapper for _AddComonent that passes in a source. +Necessary if dupe_mode is set to COMPONENT_DUPE_SOURCES.

AddElement

A wrapper for _AddElement that allows us to pretend we're using normal named arguments

LoadComponent

A wrapper for _LoadComponent that allows us to pretend we're using normal named arguments

RemoveElement

A wrapper for _RemoveElement that allows us to pretend we're using normal named arguments

SEND_SIGNAL

Used to trigger signals and call procs registered for that signal +The datum hosting the signal is automatically added as the first argument +Returns a bitfield gathered from all registered procs +Arguments given here are packaged in a list and given to _SendSignal

SIGNAL_HANDLER

Signifies that this proc is used to handle signals. +Every proc you pass to RegisterSignal must have this.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_action.html b/code/__DEFINES/dcs/signals/signals_action.html new file mode 100644 index 0000000000000..0fbd997101779 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_action.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_action.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_action.dm

COMSIG_ACTION_TRIGGERfrom base of datum/action/proc/Trigger(): (datum/action)
COMSIG_ACTION_GRANTEDFrom /datum/action/Grant(): (mob/grant_to)
COMSIG_MOB_GRANTED_ACTIONFrom /datum/action/Grant(): (datum/action)
COMSIG_ACTION_REMOVEDFrom /datum/action/Remove(): (mob/removed_from)
COMSIG_MOB_REMOVED_ACTIONFrom /datum/action/Remove(): (datum/action)
COMSIG_ACTION_OVERLAY_APPLYFrom /datum/action/apply_button_overlay()
COMSIG_MOB_ABILITY_STARTEDFrom base of /datum/action/cooldown/proc/PreActivate(), sent to the action owner: (datum/action/cooldown/activated)
COMPONENT_BLOCK_ABILITY_STARTReturn to block the ability from starting / activating
COMSIG_MOB_ABILITY_FINISHEDFrom base of /datum/action/cooldown/proc/PreActivate(), sent to the action owner: (datum/action/cooldown/finished)
COMSIG_ACTION_SET_STATPANELFrom base of /datum/action/cooldown/proc/set_statpanel_format(): (list/stat_panel_data)
COMSIG_BLOOD_WARPFrom base of /datum/action/cooldown/mob_cooldown/blood_warp/proc/blood_warp(): ()
COMSIG_STARTED_CHARGEFrom base of /datum/action/cooldown/mob_cooldown/charge/proc/do_charge(): ()
COMSIG_FINISHED_CHARGEFrom base of /datum/action/cooldown/mob_cooldown/charge/proc/do_charge(): ()
COMSIG_SWOOP_INVULNERABILITY_STARTEDFrom base of /datum/action/cooldown/mob_cooldown/lava_swoop/proc/swoop_attack(): ()
COMSIG_LAVA_ARENA_FAILEDFrom base of /datum/action/cooldown/mob_cooldown/lava_swoop/proc/swoop_attack(): ()
COMSIG_MECH_SAFETIES_TOGGLEFrom /datum/action/vehicle/sealed/mecha/mech_toggle_safeties/proc/update_action_icon(): ()
COMSIG_ACTION_DISGUISED_APPEARANCEFrom /datum/action/cooldown/mob_cooldown/assume_form/proc/assume_appearances(), sent to the action owner: (atom/movable/target)
COMSIG_HEART_MANUAL_PULSEFrom /datum/action/cooldown/manual_heart/Activate(): ()
COMSIG_ACTION_PHOTO_CAPTUREDFrom /datum/action/cooldown/mob_cooldown/capture_photo/Activate():

Define Details

COMPONENT_BLOCK_ABILITY_START

Return to block the ability from starting / activating

COMSIG_ACTION_DISGUISED_APPEARANCE

From /datum/action/cooldown/mob_cooldown/assume_form/proc/assume_appearances(), sent to the action owner: (atom/movable/target)

COMSIG_ACTION_GRANTED

From /datum/action/Grant(): (mob/grant_to)

COMSIG_ACTION_OVERLAY_APPLY

From /datum/action/apply_button_overlay()

COMSIG_ACTION_PHOTO_CAPTURED

From /datum/action/cooldown/mob_cooldown/capture_photo/Activate():

COMSIG_ACTION_REMOVED

From /datum/action/Remove(): (mob/removed_from)

COMSIG_ACTION_SET_STATPANEL

From base of /datum/action/cooldown/proc/set_statpanel_format(): (list/stat_panel_data)

COMSIG_ACTION_TRIGGER

from base of datum/action/proc/Trigger(): (datum/action)

COMSIG_BLOOD_WARP

From base of /datum/action/cooldown/mob_cooldown/blood_warp/proc/blood_warp(): ()

COMSIG_FINISHED_CHARGE

From base of /datum/action/cooldown/mob_cooldown/charge/proc/do_charge(): ()

COMSIG_HEART_MANUAL_PULSE

From /datum/action/cooldown/manual_heart/Activate(): ()

COMSIG_LAVA_ARENA_FAILED

From base of /datum/action/cooldown/mob_cooldown/lava_swoop/proc/swoop_attack(): ()

COMSIG_MECH_SAFETIES_TOGGLE

From /datum/action/vehicle/sealed/mecha/mech_toggle_safeties/proc/update_action_icon(): ()

COMSIG_MOB_ABILITY_FINISHED

From base of /datum/action/cooldown/proc/PreActivate(), sent to the action owner: (datum/action/cooldown/finished)

COMSIG_MOB_ABILITY_STARTED

From base of /datum/action/cooldown/proc/PreActivate(), sent to the action owner: (datum/action/cooldown/activated)

COMSIG_MOB_GRANTED_ACTION

From /datum/action/Grant(): (datum/action)

COMSIG_MOB_REMOVED_ACTION

From /datum/action/Remove(): (datum/action)

COMSIG_STARTED_CHARGE

From base of /datum/action/cooldown/mob_cooldown/charge/proc/do_charge(): ()

COMSIG_SWOOP_INVULNERABILITY_STARTED

From base of /datum/action/cooldown/mob_cooldown/lava_swoop/proc/swoop_attack(): ()

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_admin.html b/code/__DEFINES/dcs/signals/signals_admin.html new file mode 100644 index 0000000000000..2fd19bf6e6a7d --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_admin.html @@ -0,0 +1,5 @@ +code/__DEFINES/dcs/signals/signals_admin.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_admin.dm

COMSIG_ADMIN_HELP_MADE_INACTIVEAdmin helps +From /datum/admin_help/RemoveActive(). +Fired when an adminhelp is made inactive either due to closing or resolving.
COMSIG_ADMIN_HELP_REPLIEDCalled on the /datum/admin_help when the player replies. From /client/proc/cmd_admin_pm().
COMSIG_ADMIN_HELP_RECEIVEDCalled on a client when a player receives an adminhelp. From /client/proc/receive_ahelp(message)

Define Details

COMSIG_ADMIN_HELP_MADE_INACTIVE

Admin helps +From /datum/admin_help/RemoveActive(). +Fired when an adminhelp is made inactive either due to closing or resolving.

COMSIG_ADMIN_HELP_RECEIVED

Called on a client when a player receives an adminhelp. From /client/proc/receive_ahelp(message)

COMSIG_ADMIN_HELP_REPLIED

Called on the /datum/admin_help when the player replies. From /client/proc/cmd_admin_pm().

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_adventure.html b/code/__DEFINES/dcs/signals/signals_adventure.html new file mode 100644 index 0000000000000..1cfa5e1f9ff6a --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_adventure.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_adventure.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_adventure.dm

COMSIG_ADVENTURE_FINISHEDExoprobe adventure finished: (result) result is ADVENTURE_RESULT_??? values
COMSIG_ADVENTURE_QUALITY_INITSent on initial adventure qualities generation from /datum/adventure/proc/initialize_qualities(): (list/quality_list)
COMSIG_ADVENTURE_DELAY_STARTSent on adventure node delay start: (delay_time, delay_message)
COMSIG_ADVENTURE_DELAY_ENDSent on adventure delay finish: ()
COMSIG_EXODRONE_STATUS_CHANGEDExoprobe status changed : ()
COMSIG_EXOSCAN_STARTEDSent on begingging of new scan : (datum/exoscan/new_scan)
COMSIG_EXOSCAN_FINISHEDSent on successful finish of exoscan: (datum/exoscan/finished_scan)
COMSIG_EXOSCAN_INTERRUPTEDSent on exoscan failure/manual interruption: ()

Define Details

COMSIG_ADVENTURE_DELAY_END

Sent on adventure delay finish: ()

COMSIG_ADVENTURE_DELAY_START

Sent on adventure node delay start: (delay_time, delay_message)

COMSIG_ADVENTURE_FINISHED

Exoprobe adventure finished: (result) result is ADVENTURE_RESULT_??? values

COMSIG_ADVENTURE_QUALITY_INIT

Sent on initial adventure qualities generation from /datum/adventure/proc/initialize_qualities(): (list/quality_list)

COMSIG_EXODRONE_STATUS_CHANGED

Exoprobe status changed : ()

COMSIG_EXOSCAN_FINISHED

Sent on successful finish of exoscan: (datum/exoscan/finished_scan)

COMSIG_EXOSCAN_INTERRUPTED

Sent on exoscan failure/manual interruption: ()

COMSIG_EXOSCAN_STARTED

Sent on begingging of new scan : (datum/exoscan/new_scan)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_ai_controller.html b/code/__DEFINES/dcs/signals/signals_ai_controller.html new file mode 100644 index 0000000000000..b05f62aaf18ca --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_ai_controller.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_ai_controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_ai_controller.dm

COMSIG_AI_CONTROLLER_POSSESSED_PAWNsent from ai controllers when they possess a pawn: (datum/ai_controller/source_controller)
COMSIG_AI_CONTROLLER_PICKED_BEHAVIORSsent from ai controllers when they pick behaviors: (list/datum/ai_behavior/old_behaviors, list/datum/ai_behavior/new_behaviors)
AI_CONTROLLER_BEHAVIOR_QUEUEDsent from ai controllers when a behavior is inserted into the queue: (list/new_arguments)

Define Details

AI_CONTROLLER_BEHAVIOR_QUEUED

sent from ai controllers when a behavior is inserted into the queue: (list/new_arguments)

COMSIG_AI_CONTROLLER_PICKED_BEHAVIORS

sent from ai controllers when they pick behaviors: (list/datum/ai_behavior/old_behaviors, list/datum/ai_behavior/new_behaviors)

COMSIG_AI_CONTROLLER_POSSESSED_PAWN

sent from ai controllers when they possess a pawn: (datum/ai_controller/source_controller)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_area.html b/code/__DEFINES/dcs/signals/signals_area.html new file mode 100644 index 0000000000000..a157189a607f7 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_area.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_area.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_area.dm

COMSIG_AREA_POWER_CHANGEfrom base of area/proc/power_change(): ()
COMSIG_AREA_ENTEREDfrom base of area/Entered(): (atom/movable/arrived, area/old_area)
COMSIG_AREA_EXITEDfrom base of area/Exited(): (atom/movable/gone, direction)
COMSIG_ENTER_AREAfrom base of area/Entered(): (area/new_area). Sent to "area-sensitive" movables, see __DEFINES/traits.dm for info.
COMSIG_EXIT_AREAfrom base of area/Exited(): (area). Sent to "area-sensitive" movables, see __DEFINES/traits.dm for info.
COMSIG_ALARM_LISTENER_TRIGGEREDSent when an alarm is fired and an alarm listener has tracked onto it (alarm, area/source_area)
COMSIG_ALARM_LISTENER_CLEAREDSend when an alarm source is cleared and an alarm listener has tracked onto it (alarm_type, area/source_area)
COMSIG_ALARM_TRIGGEREDCalled when an alarm handler fires an alarm
COMSIG_ALARM_CLEAREDCalled when an alarm handler clears an alarm
COMSIG_AIRALARM_UPDATE_MODECalled when the air alarm mode is updated
COMSIG_AREA_FIRE_CHANGEDSent when an area's fire var changes: (fire_value)
COMSIG_WEATHER_BEGAN_IN_AREACalled when some weather starts in this area
COMSIG_WEATHER_ENDED_IN_AREACalled when some weather ends in this area
COMSIG_AREA_BEAUTY_UPDATEDFrom base of area/update_beauty()

Define Details

COMSIG_AIRALARM_UPDATE_MODE

Called when the air alarm mode is updated

COMSIG_ALARM_CLEARED

Called when an alarm handler clears an alarm

COMSIG_ALARM_LISTENER_CLEARED

Send when an alarm source is cleared and an alarm listener has tracked onto it (alarm_type, area/source_area)

COMSIG_ALARM_LISTENER_TRIGGERED

Sent when an alarm is fired and an alarm listener has tracked onto it (alarm, area/source_area)

COMSIG_ALARM_TRIGGERED

Called when an alarm handler fires an alarm

COMSIG_AREA_BEAUTY_UPDATED

From base of area/update_beauty()

COMSIG_AREA_ENTERED

from base of area/Entered(): (atom/movable/arrived, area/old_area)

COMSIG_AREA_EXITED

from base of area/Exited(): (atom/movable/gone, direction)

COMSIG_AREA_FIRE_CHANGED

Sent when an area's fire var changes: (fire_value)

COMSIG_AREA_POWER_CHANGE

from base of area/proc/power_change(): ()

COMSIG_ENTER_AREA

from base of area/Entered(): (area/new_area). Sent to "area-sensitive" movables, see __DEFINES/traits.dm for info.

COMSIG_EXIT_AREA

from base of area/Exited(): (area). Sent to "area-sensitive" movables, see __DEFINES/traits.dm for info.

COMSIG_WEATHER_BEGAN_IN_AREA

Called when some weather starts in this area

COMSIG_WEATHER_ENDED_IN_AREA

Called when some weather ends in this area

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_attack.html b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_attack.html new file mode 100644 index 0000000000000..3ffaafc3b3cb6 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_attack.html @@ -0,0 +1,3 @@ +code/__DEFINES/dcs/signals/signals_atom/signals_atom_attack.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_atom/signals_atom_attack.dm

COMSIG_ATOM_ATTACKBYfrom base of atom/attackby(): (/obj/item, /mob/living, params)
COMSIG_ATOM_ATTACKBY_SECONDARYFrom base of [atom/proc/attacby_secondary()]: (/obj/item/weapon, /mob/user, params)
COMSIG_ATOM_AFTER_ATTACKEDBYFrom [/item/attack()], sent by an atom which was just attacked by an item: (/obj/item/weapon, /mob/user, proximity_flag, click_parameters)
COMSIG_ATOM_ATTACK_HAND_SECONDARYFrom base of /atom/proc/attack_hand_secondary: (mob/user, list/modifiers) - Called when the atom receives a secondary unarmed attack.
COMPONENT_NO_AFTERATTACKReturn this in response if you don't want afterattack to be called
COMSIG_ATOM_HULK_ATTACKfrom base of atom/attack_hulk(): (/mob/living/carbon/human)
COMSIG_ATOM_ATTACK_ANIMALfrom base of atom/animal_attack(): (/mob/user)
COMSIG_ATOM_BREAKfrom /atom/proc/atom_break: (damage_flag)
COMSIG_ATOM_FIXfrom base of /atom/proc/atom_fix: ()
COMSIG_ATOM_DESTRUCTIONfrom base of /atom/proc/atom_destruction: (damage_flag)
COMSIG_ATOM_EXTINGUISHfrom base of /atom/proc/extinguish
COMSIG_ATOM_INTEGRITY_CHANGEDfrom base of /atom/proc/update_integrity: (old_value, new_value)
COMSIG_ATOM_TAKE_DAMAGEfrom base of /atom/proc/take_damage: (damage_amount, damage_type, damage_flag, sound_effect, attack_dir, aurmor_penetration)
COMPONENT_NO_TAKE_DAMAGEReturn bitflags for the above signal which prevents the atom taking any damage.
COMPONENT_CANCEL_ATTACK_CHAINtool_act -> pre_attack -> target.attackby (item.attack) -> afterattack +Ends the attack chain. If sent early might cause posterior attacks not to happen.
COMPONENT_SKIP_ATTACKSkips the specific attack step, continuing for the next one to happen.
COMSIG_ATOM_ATTACK_GHOSTfrom base of atom/attack_ghost(): (mob/dead/observer/ghost)
COMSIG_ATOM_ATTACK_HANDfrom base of atom/attack_hand(): (mob/user, list/modifiers)
COMSIG_ATOM_ATTACK_PAWfrom base of atom/attack_paw(): (mob/user)
COMSIG_ATOM_ATTACK_MECHfrom base of atom/mech_melee_attack(): (obj/vehicle/sealed/mecha/mecha_attacker, mob/living/user)
COMSIG_ATOM_ATTACK_ROBOTfrom base of atom/attack_robot(): (mob/user)
COMSIG_ATOM_ATTACK_ROBOT_SECONDARYfrom base of atom/attack_robot_secondary(): (mob/user)
COMSIG_ATOM_WAS_ATTACKEDfrom relay_attackers element: (atom/attacker, attack_flags)
COMSIG_PRE_TILT_AND_CRUSHCalled before a atom gets something tilted on them. If [COMPONENT_IMMUNE_TO_TILT_AND_CRUSH] is returned in a signal, the atom will be unaffected: (atom/target, atom/source)
COMSIG_POST_TILT_AND_CRUSHCalled when a atom gets something tilted on them: (atom/target, atom/source)
COMSIG_ATOM_SPLASHEDCalled when an atom is splashed with something: (atom/source)
ATTACKER_STAMINA_ATTACKThe damage type of the weapon projectile is non-lethal stamina
ATTACKER_SHOVINGthe attacker is shoving the source
ATTACKER_DAMAGING_ATTACKThe attack is a damaging-type attack
COMSIG_ATOM_HOLYATTACKCalled on the atom being hit, from /datum/component/anti_magic/on_attack() : (obj/item/weapon, mob/user, antimagic_flags)

Define Details

ATTACKER_DAMAGING_ATTACK

The attack is a damaging-type attack

ATTACKER_SHOVING

the attacker is shoving the source

ATTACKER_STAMINA_ATTACK

The damage type of the weapon projectile is non-lethal stamina

COMPONENT_CANCEL_ATTACK_CHAIN

tool_act -> pre_attack -> target.attackby (item.attack) -> afterattack +Ends the attack chain. If sent early might cause posterior attacks not to happen.

COMPONENT_NO_AFTERATTACK

Return this in response if you don't want afterattack to be called

COMPONENT_NO_TAKE_DAMAGE

Return bitflags for the above signal which prevents the atom taking any damage.

COMPONENT_SKIP_ATTACK

Skips the specific attack step, continuing for the next one to happen.

COMSIG_ATOM_AFTER_ATTACKEDBY

From [/item/attack()], sent by an atom which was just attacked by an item: (/obj/item/weapon, /mob/user, proximity_flag, click_parameters)

COMSIG_ATOM_ATTACKBY

from base of atom/attackby(): (/obj/item, /mob/living, params)

COMSIG_ATOM_ATTACKBY_SECONDARY

From base of [atom/proc/attacby_secondary()]: (/obj/item/weapon, /mob/user, params)

COMSIG_ATOM_ATTACK_ANIMAL

from base of atom/animal_attack(): (/mob/user)

COMSIG_ATOM_ATTACK_GHOST

from base of atom/attack_ghost(): (mob/dead/observer/ghost)

COMSIG_ATOM_ATTACK_HAND

from base of atom/attack_hand(): (mob/user, list/modifiers)

COMSIG_ATOM_ATTACK_HAND_SECONDARY

From base of /atom/proc/attack_hand_secondary: (mob/user, list/modifiers) - Called when the atom receives a secondary unarmed attack.

COMSIG_ATOM_ATTACK_MECH

from base of atom/mech_melee_attack(): (obj/vehicle/sealed/mecha/mecha_attacker, mob/living/user)

COMSIG_ATOM_ATTACK_PAW

from base of atom/attack_paw(): (mob/user)

COMSIG_ATOM_ATTACK_ROBOT

from base of atom/attack_robot(): (mob/user)

COMSIG_ATOM_ATTACK_ROBOT_SECONDARY

from base of atom/attack_robot_secondary(): (mob/user)

COMSIG_ATOM_BREAK

from /atom/proc/atom_break: (damage_flag)

COMSIG_ATOM_DESTRUCTION

from base of /atom/proc/atom_destruction: (damage_flag)

COMSIG_ATOM_EXTINGUISH

from base of /atom/proc/extinguish

COMSIG_ATOM_FIX

from base of /atom/proc/atom_fix: ()

COMSIG_ATOM_HOLYATTACK

Called on the atom being hit, from /datum/component/anti_magic/on_attack() : (obj/item/weapon, mob/user, antimagic_flags)

COMSIG_ATOM_HULK_ATTACK

from base of atom/attack_hulk(): (/mob/living/carbon/human)

COMSIG_ATOM_INTEGRITY_CHANGED

from base of /atom/proc/update_integrity: (old_value, new_value)

COMSIG_ATOM_SPLASHED

Called when an atom is splashed with something: (atom/source)

COMSIG_ATOM_TAKE_DAMAGE

from base of /atom/proc/take_damage: (damage_amount, damage_type, damage_flag, sound_effect, attack_dir, aurmor_penetration)

COMSIG_ATOM_WAS_ATTACKED

from relay_attackers element: (atom/attacker, attack_flags)

COMSIG_POST_TILT_AND_CRUSH

Called when a atom gets something tilted on them: (atom/target, atom/source)

COMSIG_PRE_TILT_AND_CRUSH

Called before a atom gets something tilted on them. If [COMPONENT_IMMUNE_TO_TILT_AND_CRUSH] is returned in a signal, the atom will be unaffected: (atom/target, atom/source)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_explosion.html b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_explosion.html new file mode 100644 index 0000000000000..e6773ab8af8fc --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_explosion.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_atom/signals_atom_explosion.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_atom/signals_atom_explosion.dm

COMSIG_ATOM_EXPLODEfrom /datum/controller/subsystem/explosions/proc/explode: (/list(/atom, devastation_range, heavy_impact_range, light_impact_range, flame_range, flash_range, adminlog, ignorecap, silent, smoke, explosion_cause))
COMSIG_ATOM_INTERNAL_EXPLOSIONfrom /datum/controller/subsystem/explosions/proc/explode: (/list(/atom, devastation_range, heavy_impact_range, light_impact_range, flame_range, flash_range, adminlog, ignorecap, silent, smoke, explosion_cause))
COMSIG_AREA_INTERNAL_EXPLOSIONfrom /datum/controller/subsystem/explosions/proc/explode: (/list(/atom, devastation_range, heavy_impact_range, light_impact_range, flame_range, flash_range, adminlog, ignorecap, silent, smoke, explosion_cause))
COMSIG_CANCEL_EXPLOSIONWhen returned on a signal hooked to COMSIG_ATOM_EXPLODE, COMSIG_ATOM_INTERNAL_EXPLOSION, or COMSIG_AREA_INTERNAL_EXPLOSION it prevents the explosion from being propagated further.
COMSIG_MOVABLE_EXPLOSION_BLOCK_CHANGEDfrom [/atom/movable/proc/set_explosion_resistance] : (old_block, new_block)

Define Details

COMSIG_AREA_INTERNAL_EXPLOSION

from /datum/controller/subsystem/explosions/proc/explode: (/list(/atom, devastation_range, heavy_impact_range, light_impact_range, flame_range, flash_range, adminlog, ignorecap, silent, smoke, explosion_cause))

COMSIG_ATOM_EXPLODE

from /datum/controller/subsystem/explosions/proc/explode: (/list(/atom, devastation_range, heavy_impact_range, light_impact_range, flame_range, flash_range, adminlog, ignorecap, silent, smoke, explosion_cause))

COMSIG_ATOM_INTERNAL_EXPLOSION

from /datum/controller/subsystem/explosions/proc/explode: (/list(/atom, devastation_range, heavy_impact_range, light_impact_range, flame_range, flash_range, adminlog, ignorecap, silent, smoke, explosion_cause))

COMSIG_CANCEL_EXPLOSION

When returned on a signal hooked to COMSIG_ATOM_EXPLODE, COMSIG_ATOM_INTERNAL_EXPLOSION, or COMSIG_AREA_INTERNAL_EXPLOSION it prevents the explosion from being propagated further.

COMSIG_MOVABLE_EXPLOSION_BLOCK_CHANGED

from [/atom/movable/proc/set_explosion_resistance] : (old_block, new_block)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_lighting.html b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_lighting.html new file mode 100644 index 0000000000000..f488e7c5d2744 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_lighting.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_atom/signals_atom_lighting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_atom/signals_atom_lighting.dm

COMSIG_ATOM_SET_LIGHTfrom base of [atom/proc/set_light]: (l_range, l_power, l_color, l_on)
COMPONENT_BLOCK_LIGHT_UPDATEBlocks [/atom/proc/set_light], /atom/proc/set_light_power, /atom/proc/set_light_range, /atom/proc/set_light_color, /atom/proc/set_light_on, and /atom/proc/set_light_flags.
COMSIG_ATOM_SET_LIGHT_POWERCalled right before the atom changes the value of light_power to a different one, from base atom/proc/set_light_power: (new_power)
COMSIG_ATOM_UPDATE_LIGHT_POWERCalled right after the atom changes the value of light_power to a different one, from base of /atom/proc/set_light_power: (old_power)
COMSIG_ATOM_SET_LIGHT_RANGECalled right before the atom changes the value of light_range to a different one, from base atom/proc/set_light_range: (new_range)
COMSIG_ATOM_UPDATE_LIGHT_RANGECalled right after the atom changes the value of light_range to a different one, from base of /atom/proc/set_light_range: (old_range)
COMSIG_ATOM_SET_LIGHT_COLORCalled right before the atom changes the value of light_color to a different one, from base atom/proc/set_light_color: (new_color)
COMSIG_ATOM_UPDATE_LIGHT_COLORCalled right after the atom changes the value of light_color to a different one, from base of /atom/proc/set_light_color: (old_color)
COMSIG_ATOM_SET_LIGHT_ANGLECalled right before the atom changes the value of light_angle to a different one, from base atom/proc/set_light_angle: (new_angle)
COMSIG_ATOM_UPDATE_LIGHT_ANGLECalled right after the atom changes the value of light_angle to a different one, from base of /atom/proc/set_light_angle: (old_angle)
COMSIG_ATOM_SET_LIGHT_DIRCalled right before the atom changes the value of light_dir to a different one, from base atom/proc/set_light_dir: (new_dir)
COMSIG_ATOM_UPDATE_LIGHT_DIRCalled right after the atom changes the value of light_dir to a different one, from base of /atom/proc/set_light_dir: (old_dir)
COMSIG_ATOM_SET_LIGHT_ONCalled right before the atom changes the value of light_on to a different one, from base atom/proc/set_light_on: (new_value)
COMSIG_ATOM_UPDATE_LIGHT_ONCalled right after the atom changes the value of light_on to a different one, from base of /atom/proc/set_light_on: (old_value)
COMSIG_ATOM_SET_LIGHT_HEIGHTCalled right before the atom changes the value of light_height to a different one, from base atom/proc/set_light_height: (new_value)
COMSIG_ATOM_UPDATE_LIGHT_HEIGHTCalled right after the atom changes the value of light_height to a different one, from base of /atom/proc/set_light_height: (old_value)
COMSIG_ATOM_SET_LIGHT_FLAGSCalled right before the atom changes the value of light_flags to a different one, from base atom/proc/set_light_flags: (new_flags)
COMSIG_ATOM_UPDATE_LIGHT_FLAGSCalled right after the atom changes the value of light_flags to a different one, from base of /atom/proc/set_light_flags: (old_flags)
COMSIG_ATOM_LIGHT_TEMPLATE_MIRROREDCalled when an atom has a light template applied to it. Frombase of [/datum/light_template/proc/mirror_onto]: ()

Define Details

COMPONENT_BLOCK_LIGHT_UPDATE

Blocks [/atom/proc/set_light], /atom/proc/set_light_power, /atom/proc/set_light_range, /atom/proc/set_light_color, /atom/proc/set_light_on, and /atom/proc/set_light_flags.

COMSIG_ATOM_LIGHT_TEMPLATE_MIRRORED

Called when an atom has a light template applied to it. Frombase of [/datum/light_template/proc/mirror_onto]: ()

COMSIG_ATOM_SET_LIGHT

from base of [atom/proc/set_light]: (l_range, l_power, l_color, l_on)

COMSIG_ATOM_SET_LIGHT_ANGLE

Called right before the atom changes the value of light_angle to a different one, from base atom/proc/set_light_angle: (new_angle)

COMSIG_ATOM_SET_LIGHT_COLOR

Called right before the atom changes the value of light_color to a different one, from base atom/proc/set_light_color: (new_color)

COMSIG_ATOM_SET_LIGHT_DIR

Called right before the atom changes the value of light_dir to a different one, from base atom/proc/set_light_dir: (new_dir)

COMSIG_ATOM_SET_LIGHT_FLAGS

Called right before the atom changes the value of light_flags to a different one, from base atom/proc/set_light_flags: (new_flags)

COMSIG_ATOM_SET_LIGHT_HEIGHT

Called right before the atom changes the value of light_height to a different one, from base atom/proc/set_light_height: (new_value)

COMSIG_ATOM_SET_LIGHT_ON

Called right before the atom changes the value of light_on to a different one, from base atom/proc/set_light_on: (new_value)

COMSIG_ATOM_SET_LIGHT_POWER

Called right before the atom changes the value of light_power to a different one, from base atom/proc/set_light_power: (new_power)

COMSIG_ATOM_SET_LIGHT_RANGE

Called right before the atom changes the value of light_range to a different one, from base atom/proc/set_light_range: (new_range)

COMSIG_ATOM_UPDATE_LIGHT_ANGLE

Called right after the atom changes the value of light_angle to a different one, from base of /atom/proc/set_light_angle: (old_angle)

COMSIG_ATOM_UPDATE_LIGHT_COLOR

Called right after the atom changes the value of light_color to a different one, from base of /atom/proc/set_light_color: (old_color)

COMSIG_ATOM_UPDATE_LIGHT_DIR

Called right after the atom changes the value of light_dir to a different one, from base of /atom/proc/set_light_dir: (old_dir)

COMSIG_ATOM_UPDATE_LIGHT_FLAGS

Called right after the atom changes the value of light_flags to a different one, from base of /atom/proc/set_light_flags: (old_flags)

COMSIG_ATOM_UPDATE_LIGHT_HEIGHT

Called right after the atom changes the value of light_height to a different one, from base of /atom/proc/set_light_height: (old_value)

COMSIG_ATOM_UPDATE_LIGHT_ON

Called right after the atom changes the value of light_on to a different one, from base of /atom/proc/set_light_on: (old_value)

COMSIG_ATOM_UPDATE_LIGHT_POWER

Called right after the atom changes the value of light_power to a different one, from base of /atom/proc/set_light_power: (old_power)

COMSIG_ATOM_UPDATE_LIGHT_RANGE

Called right after the atom changes the value of light_range to a different one, from base of /atom/proc/set_light_range: (old_range)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.html b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.html new file mode 100644 index 0000000000000..c66d46e5a3676 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm

COMSIG_ATOM_EXAMINEfrom base of atom/examine(): (/mob, list/examine_text)
COMSIG_ATOM_EXAMINE_TAGSfrom base of atom/examine_tags(): (/mob, list/examine_tags)
COMSIG_ATOM_GET_EXAMINE_NAMEfrom base of atom/get_examine_name(): (/mob, list/overrides)
COMSIG_ATOM_REAGENT_EXAMINEfrom base of atom/examine(): (/mob, list/examine_text, can_see_inside)
STOP_GENERIC_REAGENT_EXAMINEStop the generic reagent examine text
ALLOW_GENERIC_REAGENT_EXAMINEAllows the generic reaegent examine text regardless of whether the user can scan reagents.
COMSIG_ATOM_EXAMINE_MOREfrom base of atom/examine_more(): (/mob, examine_list)
COMSIG_MOB_EXAMINING_MOREfrom atom/examine_more(): (/atom/examining, examine_list)
COMSIG_ATOM_UPDATE_APPEARANCEfrom base of /atom/proc/update_appearance: (updates)
COMSIG_ATOM_NO_UPDATE_NAMEIf returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its name.
COMSIG_ATOM_NO_UPDATE_DESCIf returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its desc.
COMSIG_ATOM_NO_UPDATE_ICONIf returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its icon.
COMSIG_ATOM_UPDATE_NAMEfrom base of /atom/proc/update_name: (updates)
COMSIG_ATOM_UPDATE_DESCfrom base of /atom/proc/update_desc: (updates)
COMSIG_ATOM_UPDATE_ICONfrom base of /atom/update_icon: ()
COMSIG_ATOM_NO_UPDATE_ICON_STATEIf returned from COMSIG_ATOM_UPDATE_ICON it prevents the atom from updating its icon state.
COMSIG_ATOM_NO_UPDATE_OVERLAYSIf returned from COMSIG_ATOM_UPDATE_ICON it prevents the atom from updating its overlays.
COMSIG_ATOM_UPDATE_INHAND_ICONfrom base of atom/update_inhand_icon: (/mob)
COMSIG_ATOM_UPDATE_ICON_STATEfrom base of atom/update_icon_state: ()
COMSIG_ATOM_UPDATE_OVERLAYSfrom base of /atom/update_overlays: (list/new_overlays)
COMSIG_ATOM_UPDATED_ICONfrom base of /atom/update_icon: (signalOut, did_anything)
COMSIG_ATOM_SMOOTHED_ICONfrom base of /atom/proc/smooth_icon: ()
COMSIG_ATOM_DECALS_ROTATINGfrom /datum/controller/subsystem/processing/dcs/proc/rotate_decals: (list/datum/element/decal/rotating)
COMSIG_ATOM_ENTEREDfrom base of atom/Entered(): (atom/movable/arrived, atom/old_loc, list/atom/old_locs)
COMSIG_ATOM_ABSTRACT_ENTEREDfrom base of atom/movable/Moved(): (atom/movable/arrived, atom/old_loc, list/atom/old_locs)
COMSIG_ATOM_ENTERINGSent from the atom that just Entered src. From base of atom/Entered(): (/atom/destination, atom/old_loc, list/atom/old_locs)
COMSIG_ATOM_EXITfrom base of atom/Exit(): (/atom/movable/leaving, direction)
COMSIG_ATOM_EXITEDfrom base of atom/Exited(): (atom/movable/gone, direction)
COMSIG_ATOM_ABSTRACT_EXITEDfrom base of atom/movable/Moved(): (atom/movable/gone, direction)
COMSIG_ATOM_BUMPEDfrom base of atom/Bumped(): (/atom/movable) (the one that gets bumped)
COMSIG_ATOM_HAS_GRAVITYfrom base of atom/has_gravity(): (turf/location, list/forced_gravities)
COMSIG_ATOM_CANREACHfrom internal loop in atom/movable/proc/CanReach(): (list/next)
COMSIG_ATOM_CREATEDBY_PROCESSINGfor when an atom has been created through processing (atom/original_atom, list/chosen_processing_option)
COMSIG_ATOM_PROCESSEDwhen an atom is processed (mob/living/user, obj/item/process_item, list/atom/results)
COMSIG_ATOM_INTERCEPT_TELEPORTINGcalled when teleporting into a possibly protected turf: (channel, turf/origin, turf/destination)
COMSIG_ATOM_INTERCEPT_TELEPORTEDcalled after teleporting into a protected turf: (channel, turf/origin)
COMSIG_ATOM_HEARER_IN_VIEWcalled when an atom is added to the hearers on get_hearers_in_view(): (list/processing_list, list/hearers)
COMSIG_ATOM_ORBIT_BEGINcalled when an atom starts orbiting another atom: (atom)
COMSIG_ATOM_ORBIT_STOPcalled when an atom stops orbiting another atom: (atom)
COMSIG_ATOM_SET_OPACITYfrom base of atom/set_opacity(): (new_opacity)
COMSIG_ATOM_PREHITBYfrom base of atom/throw_impact, sent by the target hit by a thrown object. (hit_atom, thrown_atom, datum/thrownthing/throwingdatum)
COMSIG_ATOM_HITBYfrom base of atom/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
COMSIG_ATOM_STARTING_INSTRUMENTwhen an atom starts playing a song datum (datum/song)
COMSIG_ATOM_VV_MODIFY_TRANSFORMWhen the transform or an atom is varedited through vv topic.
COMSIG_ATOM_TEMPORARY_ANIMATION_STARTgenerally called before temporary non-parallel animate()s on the atom (animation_duration)
COMSIG_ATOM_ON_LAZARUS_INJECTORcalled on /obj/item/lazarus_injector/afterattack : (injector, user)
COMSIG_ATOM_PROPAGATE_RAD_PULSEfrom internal loop in /atom/proc/propagate_radiation_pulse: (atom/pulse_source)
COMSIG_ATOM_RESTYLEfrom cosmetic items to restyle certain mobs, objects or organs: (atom/source, mob/living/trimmer, atom/movable/original_target, body_zone, restyle_type, style_speed)
COMSIG_ATOM_TIMESTOP_FREEZEwhen a timestop ability is used on the atom: (datum/proximity_monitor/advanced/timestop)
COMSIG_ATOM_TIMESTOP_UNFREEZEwhen the timestop ability effect ends on the atom: (datum/proximity_monitor/advanced/timestop)
COMSIG_ATOM_SPIN_ANIMATIONCalled on /atom/SpinAnimation() : (speed, loops, segments, angle)
COMSIG_ATOM_GERM_EXPOSEDwhen atom falls onto the floor and become exposed to germs: (datum/component/germ_exposure)
COMSIG_ATOM_GERM_UNEXPOSEDwhen atom is picked up from the floor or moved to an elevated structure: (datum/component/germ_exposure)
COMSIG_PUZZLE_COMPLETEDsignal sent to puzzle pieces by activator
COMSIG_ATOM_PRE_CLEANFrom /datum/compomnent/cleaner/clean()
COMSIG_ATOM_CANCEL_CLEANcancel clean
COMSIG_ATOM_CONSTRUCTEDFrom /obj/item/stack/make_item()
COMSIG_ATOM_TOUCHED_SPARKSFrom /obj/effect/particle_effect/sparks/proc/sparks_touched(datum/source, atom/movable/singed)
COMSIG_ATOM_REVEALFrom whoever has been revealed (atom/revealed)

Define Details

ALLOW_GENERIC_REAGENT_EXAMINE

Allows the generic reaegent examine text regardless of whether the user can scan reagents.

COMSIG_ATOM_ABSTRACT_ENTERED

from base of atom/movable/Moved(): (atom/movable/arrived, atom/old_loc, list/atom/old_locs)

COMSIG_ATOM_ABSTRACT_EXITED

from base of atom/movable/Moved(): (atom/movable/gone, direction)

COMSIG_ATOM_BUMPED

from base of atom/Bumped(): (/atom/movable) (the one that gets bumped)

COMSIG_ATOM_CANCEL_CLEAN

cancel clean

COMSIG_ATOM_CANREACH

from internal loop in atom/movable/proc/CanReach(): (list/next)

COMSIG_ATOM_CONSTRUCTED

From /obj/item/stack/make_item()

COMSIG_ATOM_CREATEDBY_PROCESSING

for when an atom has been created through processing (atom/original_atom, list/chosen_processing_option)

COMSIG_ATOM_DECALS_ROTATING

from /datum/controller/subsystem/processing/dcs/proc/rotate_decals: (list/datum/element/decal/rotating)

COMSIG_ATOM_ENTERED

from base of atom/Entered(): (atom/movable/arrived, atom/old_loc, list/atom/old_locs)

COMSIG_ATOM_ENTERING

Sent from the atom that just Entered src. From base of atom/Entered(): (/atom/destination, atom/old_loc, list/atom/old_locs)

COMSIG_ATOM_EXAMINE

from base of atom/examine(): (/mob, list/examine_text)

COMSIG_ATOM_EXAMINE_MORE

from base of atom/examine_more(): (/mob, examine_list)

COMSIG_ATOM_EXAMINE_TAGS

from base of atom/examine_tags(): (/mob, list/examine_tags)

COMSIG_ATOM_EXIT

from base of atom/Exit(): (/atom/movable/leaving, direction)

COMSIG_ATOM_EXITED

from base of atom/Exited(): (atom/movable/gone, direction)

COMSIG_ATOM_GERM_EXPOSED

when atom falls onto the floor and become exposed to germs: (datum/component/germ_exposure)

COMSIG_ATOM_GERM_UNEXPOSED

when atom is picked up from the floor or moved to an elevated structure: (datum/component/germ_exposure)

COMSIG_ATOM_GET_EXAMINE_NAME

from base of atom/get_examine_name(): (/mob, list/overrides)

COMSIG_ATOM_HAS_GRAVITY

from base of atom/has_gravity(): (turf/location, list/forced_gravities)

COMSIG_ATOM_HEARER_IN_VIEW

called when an atom is added to the hearers on get_hearers_in_view(): (list/processing_list, list/hearers)

COMSIG_ATOM_HITBY

from base of atom/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)

COMSIG_ATOM_INTERCEPT_TELEPORTED

called after teleporting into a protected turf: (channel, turf/origin)

COMSIG_ATOM_INTERCEPT_TELEPORTING

called when teleporting into a possibly protected turf: (channel, turf/origin, turf/destination)

COMSIG_ATOM_NO_UPDATE_DESC

If returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its desc.

COMSIG_ATOM_NO_UPDATE_ICON

If returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its icon.

COMSIG_ATOM_NO_UPDATE_ICON_STATE

If returned from COMSIG_ATOM_UPDATE_ICON it prevents the atom from updating its icon state.

COMSIG_ATOM_NO_UPDATE_NAME

If returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its name.

COMSIG_ATOM_NO_UPDATE_OVERLAYS

If returned from COMSIG_ATOM_UPDATE_ICON it prevents the atom from updating its overlays.

COMSIG_ATOM_ON_LAZARUS_INJECTOR

called on /obj/item/lazarus_injector/afterattack : (injector, user)

COMSIG_ATOM_ORBIT_BEGIN

called when an atom starts orbiting another atom: (atom)

COMSIG_ATOM_ORBIT_STOP

called when an atom stops orbiting another atom: (atom)

COMSIG_ATOM_PREHITBY

from base of atom/throw_impact, sent by the target hit by a thrown object. (hit_atom, thrown_atom, datum/thrownthing/throwingdatum)

COMSIG_ATOM_PRE_CLEAN

From /datum/compomnent/cleaner/clean()

COMSIG_ATOM_PROCESSED

when an atom is processed (mob/living/user, obj/item/process_item, list/atom/results)

COMSIG_ATOM_PROPAGATE_RAD_PULSE

from internal loop in /atom/proc/propagate_radiation_pulse: (atom/pulse_source)

COMSIG_ATOM_REAGENT_EXAMINE

from base of atom/examine(): (/mob, list/examine_text, can_see_inside)

COMSIG_ATOM_RESTYLE

from cosmetic items to restyle certain mobs, objects or organs: (atom/source, mob/living/trimmer, atom/movable/original_target, body_zone, restyle_type, style_speed)

COMSIG_ATOM_REVEAL

From whoever has been revealed (atom/revealed)

COMSIG_ATOM_SET_OPACITY

from base of atom/set_opacity(): (new_opacity)

COMSIG_ATOM_SMOOTHED_ICON

from base of /atom/proc/smooth_icon: ()

COMSIG_ATOM_SPIN_ANIMATION

Called on /atom/SpinAnimation() : (speed, loops, segments, angle)

COMSIG_ATOM_STARTING_INSTRUMENT

when an atom starts playing a song datum (datum/song)

COMSIG_ATOM_TEMPORARY_ANIMATION_START

generally called before temporary non-parallel animate()s on the atom (animation_duration)

COMSIG_ATOM_TIMESTOP_FREEZE

when a timestop ability is used on the atom: (datum/proximity_monitor/advanced/timestop)

COMSIG_ATOM_TIMESTOP_UNFREEZE

when the timestop ability effect ends on the atom: (datum/proximity_monitor/advanced/timestop)

COMSIG_ATOM_TOUCHED_SPARKS

From /obj/effect/particle_effect/sparks/proc/sparks_touched(datum/source, atom/movable/singed)

COMSIG_ATOM_UPDATED_ICON

from base of /atom/update_icon: (signalOut, did_anything)

COMSIG_ATOM_UPDATE_APPEARANCE

from base of /atom/proc/update_appearance: (updates)

COMSIG_ATOM_UPDATE_DESC

from base of /atom/proc/update_desc: (updates)

COMSIG_ATOM_UPDATE_ICON

from base of /atom/update_icon: ()

COMSIG_ATOM_UPDATE_ICON_STATE

from base of atom/update_icon_state: ()

COMSIG_ATOM_UPDATE_INHAND_ICON

from base of atom/update_inhand_icon: (/mob)

COMSIG_ATOM_UPDATE_NAME

from base of /atom/proc/update_name: (updates)

COMSIG_ATOM_UPDATE_OVERLAYS

from base of /atom/update_overlays: (list/new_overlays)

COMSIG_ATOM_VV_MODIFY_TRANSFORM

When the transform or an atom is varedited through vv topic.

COMSIG_MOB_EXAMINING_MORE

from atom/examine_more(): (/atom/examining, examine_list)

COMSIG_PUZZLE_COMPLETED

signal sent to puzzle pieces by activator

STOP_GENERIC_REAGENT_EXAMINE

Stop the generic reagent examine text

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.html b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.html new file mode 100644 index 0000000000000..50a29cccc4d2b --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.dm

COMSIG_CLIENT_CLICKfrom base of client/Click(): (atom/target, atom/location, control, params, mob/user)
COMSIG_CLICKfrom base of atom/Click(): (atom/location, control, params, mob/user)
COMSIG_CLICK_SHIFTfrom base of atom/ShiftClick(): (/mob)
COMPONENT_ALLOW_EXAMINATEAllows the user to examinate regardless of client.eye.
COMSIG_SHIFT_CLICKED_ONfrom base of atom/ShiftClick()
COMSIG_CLICK_CTRLfrom base of atom/CtrlClickOn(): (/mob)
COMSIG_CLICK_ALTfrom base of atom/AltClick(): (/mob)
COMSIG_CLICK_ALT_SECONDARYfrom base of atom/base_click_alt_secondary(): (/mob)
COMSIG_CLICK_CTRL_SHIFTfrom base of atom/CtrlShiftClick(/mob)
COMSIG_MOUSEDROP_ONTOfrom base of atom/MouseDrop(): (/atom/over, /mob/user)
COMSIG_MOUSEDROPPED_ONTOfrom base of atom/handle_mouse_drop_receive: (/atom/from, /mob/user)
COMSIG_MOUSE_SCROLL_ONfrom base of mob/MouseWheelOn(): (/atom, delta_x, delta_y, params)
COMSIG_SCREEN_ELEMENT_CLICKFrom /atom/movable/screen/click(): (atom/target, atom/location, control, params, mob/user)

Define Details

COMPONENT_ALLOW_EXAMINATE

Allows the user to examinate regardless of client.eye.

COMSIG_CLICK

from base of atom/Click(): (atom/location, control, params, mob/user)

COMSIG_CLICK_ALT

from base of atom/AltClick(): (/mob)

COMSIG_CLICK_ALT_SECONDARY

from base of atom/base_click_alt_secondary(): (/mob)

COMSIG_CLICK_CTRL

from base of atom/CtrlClickOn(): (/mob)

COMSIG_CLICK_CTRL_SHIFT

from base of atom/CtrlShiftClick(/mob)

COMSIG_CLICK_SHIFT

from base of atom/ShiftClick(): (/mob)

COMSIG_CLIENT_CLICK

from base of client/Click(): (atom/target, atom/location, control, params, mob/user)

COMSIG_MOUSEDROPPED_ONTO

from base of atom/handle_mouse_drop_receive: (/atom/from, /mob/user)

COMSIG_MOUSEDROP_ONTO

from base of atom/MouseDrop(): (/atom/over, /mob/user)

COMSIG_MOUSE_SCROLL_ON

from base of mob/MouseWheelOn(): (/atom, delta_x, delta_y, params)

COMSIG_SCREEN_ELEMENT_CLICK

From /atom/movable/screen/click(): (atom/target, atom/location, control, params, mob/user)

COMSIG_SHIFT_CLICKED_ON

from base of atom/ShiftClick()

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.html b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.html new file mode 100644 index 0000000000000..7896b4455b71d --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm

COMSIG_MOVABLE_PRE_MOVEfrom base of atom/movable/Moved(): (/atom)
COMSIG_MOVABLE_MOVEDfrom base of atom/movable/Moved(): (atom/old_loc, dir, forced, list/old_locs)
COMSIG_MOVABLE_CROSSfrom base of atom/movable/Cross(): (/atom/movable)
COMSIG_MOVABLE_CROSS_OVERfrom base of atom/movable/Move(): (/atom/movable)
COMSIG_MOVABLE_BUMPfrom base of atom/movable/Bump(): (/atom)
COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPTfrom datum/component/drift/apply_initial_visuals(): ()
COMSIG_MOVABLE_DRIFT_BLOCK_INPUTfrom datum/component/drift/allow_final_movement(): ()
COMSIG_MOVABLE_PRE_IMPACTfrom base of atom/movable/throw_impact(): (/atom/hit_atom, /datum/thrownthing/throwingdatum)
COMSIG_MOVABLE_IMPACTfrom base of atom/movable/throw_impact() after confirming a hit: (/atom/hit_atom, /datum/thrownthing/throwingdatum)
COMSIG_MOVABLE_IMPACT_ZONEfrom base of mob/living/hitby(): (mob/living/target, hit_zone, blocked, datum/thrownthing/throwingdatum)
COMSIG_MOVABLE_PREBUCKLEfrom /atom/movable/proc/buckle_mob(): (mob/living/M, force, check_loc, buckle_mob_flags)
COMSIG_MOVABLE_BUCKLEfrom base of atom/movable/buckle_mob(): (mob, force)
COMSIG_MOVABLE_UNBUCKLEfrom base of atom/movable/unbuckle_mob(): (mob, force)
COMSIG_MOB_BUCKLEDfrom /atom/movable/proc/buckle_mob(): (buckled_movable)
COMSIG_MOB_UNBUCKLEDfrom /atom/movable/proc/unbuckle_mob(): (buckled_movable)
COMSIG_RIDDEN_DRIVER_MOVEfrom /obj/vehicle/proc/driver_move, caught by the riding component to check and execute the driver trying to drive the vehicle
COMSIG_MOVABLE_PRE_THROWfrom base of atom/movable/throw_at(): (list/args)
COMSIG_MOVABLE_POST_THROWfrom base of atom/movable/throw_at(): (datum/thrownthing, spin)
COMSIG_MOVABLE_THROW_LANDEDfrom base of datum/thrownthing/finalize(): (obj/thrown_object, datum/thrownthing) used for when a throw is finished
COMSIG_MOVABLE_Z_CHANGEDfrom base of atom/movable/on_changed_z_level(): (turf/old_turf, turf/new_turf, same_z_layer)
COMSIG_MOVABLE_PRE_HEARcalled before hearing a message from atom/movable/Hear():
COMSIG_MOVABLE_CANCEL_HEARINGcancel hearing the message because we're doing something else presumably
COMSIG_MOVABLE_HEARfrom base of atom/movable/Hear(): (proc args list(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, list/message_mods = list(), message_range))
COMSIG_MOVABLE_DISPOSINGcalled when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source)
COMSIG_MOVABLE_SET_ANCHOREDcalled when the movable successfully has its anchored var changed, from base atom/movable/set_anchored(): (value)
COMSIG_MOVABLE_SET_GRAB_STATEfrom base of atom/movable/setGrabState(): (newstate)
COMSIG_MOVABLE_UPDATE_GLIDE_SIZEcalled when the movable's glide size is updated: (new_glide_size)
COMSIG_MOVABLE_CHANGE_DUCT_LAYERCalled when a movable is hit by a plunger in layer mode, from /obj/item/plunger/attack_atom()
COMSIG_MOVABLE_TELEPORTINGCalled before a movable is being teleported from check_teleport_valid(): (destination, channel)
COMSIG_MOVABLE_TELEPORTEDCalled when a movable is being teleported from do_teleport(): (destination, channel)
COMSIG_MOVABLE_POST_TELEPORTCalled after a movable is teleported from do_teleport(): ()
COMSIG_BUCKLED_CAN_Z_MOVEfrom /mob/living/can_z_move, sent to whatever the mob is buckled to. Only ridable movables should be ridden up or down btw.
COMSIG_MOVABLE_SPACEMOVEfrom base of atom/movable/Process_Spacemove(): (movement_dir, continuous_move)
COMSIG_MOVABLE_USING_RADIOSent from /obj/item/radio/talk_into(): (obj/item/radio/used_radio)
COMPONENT_CANNOT_USE_RADIOReturn to prevent the movable from talking into the radio.
COMSIG_MOVABLE_SAY_QUOTESent from /atom/movable/proc/say_quote() after say verb is chosen and before spans are applied.
MOVABLE_SAY_QUOTE_MESSAGEThe index of args that corresponds to the actual message
COMSIG_MOVABLE_MESSAGE_GET_NAME_PARTSent from /atom/movable/proc/compose_message() after the name part: (list/stored_name, visible_name)
NAME_PART_INDEXThe index of the name part
COMSIG_MOVABLE_EDIT_UNIQUE_IMMERSE_OVERLAYFrom /datum/element/immerse/proc/add_submerge_overlay(): (visual_overlay)
COMSIG_MOVABLE_EXITED_AREAFrom base of area/Exited(): (area/left, direction)
COMSIG_MOVABLE_SPLATfrom base of /datum/component/splat/splat: (hit_atom)
COMSIG_MOVABLE_POINTEDfrom base of /atom/movable/point_at: (atom/A, obj/effect/temp_visual/point/point)
COMSIG_MOVABLE_SPY_STEALINGSent to movables when they are being stolen by a spy: (mob/living/spy, datum/spy_bounty/bounty)
COMSIG_MOVABLE_BUMP_PUSHEDCalled when something is pushed by a living mob bumping it: (mob/living/pusher, push force)
COMPONENT_NO_PUSHStop it from moving

Define Details

COMPONENT_CANNOT_USE_RADIO

Return to prevent the movable from talking into the radio.

COMPONENT_NO_PUSH

Stop it from moving

COMSIG_BUCKLED_CAN_Z_MOVE

from /mob/living/can_z_move, sent to whatever the mob is buckled to. Only ridable movables should be ridden up or down btw.

COMSIG_MOB_BUCKLED

from /atom/movable/proc/buckle_mob(): (buckled_movable)

COMSIG_MOB_UNBUCKLED

from /atom/movable/proc/unbuckle_mob(): (buckled_movable)

COMSIG_MOVABLE_BUCKLE

from base of atom/movable/buckle_mob(): (mob, force)

COMSIG_MOVABLE_BUMP

from base of atom/movable/Bump(): (/atom)

COMSIG_MOVABLE_BUMP_PUSHED

Called when something is pushed by a living mob bumping it: (mob/living/pusher, push force)

COMSIG_MOVABLE_CANCEL_HEARING

cancel hearing the message because we're doing something else presumably

COMSIG_MOVABLE_CHANGE_DUCT_LAYER

Called when a movable is hit by a plunger in layer mode, from /obj/item/plunger/attack_atom()

COMSIG_MOVABLE_CROSS

from base of atom/movable/Cross(): (/atom/movable)

COMSIG_MOVABLE_CROSS_OVER

from base of atom/movable/Move(): (/atom/movable)

COMSIG_MOVABLE_DISPOSING

called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source)

COMSIG_MOVABLE_DRIFT_BLOCK_INPUT

from datum/component/drift/allow_final_movement(): ()

COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT

from datum/component/drift/apply_initial_visuals(): ()

COMSIG_MOVABLE_EDIT_UNIQUE_IMMERSE_OVERLAY

From /datum/element/immerse/proc/add_submerge_overlay(): (visual_overlay)

COMSIG_MOVABLE_EXITED_AREA

From base of area/Exited(): (area/left, direction)

COMSIG_MOVABLE_HEAR

from base of atom/movable/Hear(): (proc args list(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, list/message_mods = list(), message_range))

COMSIG_MOVABLE_IMPACT

from base of atom/movable/throw_impact() after confirming a hit: (/atom/hit_atom, /datum/thrownthing/throwingdatum)

COMSIG_MOVABLE_IMPACT_ZONE

from base of mob/living/hitby(): (mob/living/target, hit_zone, blocked, datum/thrownthing/throwingdatum)

COMSIG_MOVABLE_MESSAGE_GET_NAME_PART

Sent from /atom/movable/proc/compose_message() after the name part: (list/stored_name, visible_name)

COMSIG_MOVABLE_MOVED

from base of atom/movable/Moved(): (atom/old_loc, dir, forced, list/old_locs)

COMSIG_MOVABLE_POINTED

from base of /atom/movable/point_at: (atom/A, obj/effect/temp_visual/point/point)

COMSIG_MOVABLE_POST_TELEPORT

Called after a movable is teleported from do_teleport(): ()

COMSIG_MOVABLE_POST_THROW

from base of atom/movable/throw_at(): (datum/thrownthing, spin)

COMSIG_MOVABLE_PREBUCKLE

from /atom/movable/proc/buckle_mob(): (mob/living/M, force, check_loc, buckle_mob_flags)

COMSIG_MOVABLE_PRE_HEAR

called before hearing a message from atom/movable/Hear():

COMSIG_MOVABLE_PRE_IMPACT

from base of atom/movable/throw_impact(): (/atom/hit_atom, /datum/thrownthing/throwingdatum)

COMSIG_MOVABLE_PRE_MOVE

from base of atom/movable/Moved(): (/atom)

COMSIG_MOVABLE_PRE_THROW

from base of atom/movable/throw_at(): (list/args)

COMSIG_MOVABLE_SAY_QUOTE

Sent from /atom/movable/proc/say_quote() after say verb is chosen and before spans are applied.

COMSIG_MOVABLE_SET_ANCHORED

called when the movable successfully has its anchored var changed, from base atom/movable/set_anchored(): (value)

COMSIG_MOVABLE_SET_GRAB_STATE

from base of atom/movable/setGrabState(): (newstate)

COMSIG_MOVABLE_SPACEMOVE

from base of atom/movable/Process_Spacemove(): (movement_dir, continuous_move)

COMSIG_MOVABLE_SPLAT

from base of /datum/component/splat/splat: (hit_atom)

COMSIG_MOVABLE_SPY_STEALING

Sent to movables when they are being stolen by a spy: (mob/living/spy, datum/spy_bounty/bounty)

COMSIG_MOVABLE_TELEPORTED

Called when a movable is being teleported from do_teleport(): (destination, channel)

COMSIG_MOVABLE_TELEPORTING

Called before a movable is being teleported from check_teleport_valid(): (destination, channel)

COMSIG_MOVABLE_THROW_LANDED

from base of datum/thrownthing/finalize(): (obj/thrown_object, datum/thrownthing) used for when a throw is finished

COMSIG_MOVABLE_UNBUCKLE

from base of atom/movable/unbuckle_mob(): (mob, force)

COMSIG_MOVABLE_UPDATE_GLIDE_SIZE

called when the movable's glide size is updated: (new_glide_size)

COMSIG_MOVABLE_USING_RADIO

Sent from /obj/item/radio/talk_into(): (obj/item/radio/used_radio)

COMSIG_MOVABLE_Z_CHANGED

from base of atom/movable/on_changed_z_level(): (turf/old_turf, turf/new_turf, same_z_layer)

COMSIG_RIDDEN_DRIVER_MOVE

from /obj/vehicle/proc/driver_move, caught by the riding component to check and execute the driver trying to drive the vehicle

MOVABLE_SAY_QUOTE_MESSAGE

The index of args that corresponds to the actual message

NAME_PART_INDEX

The index of the name part

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.html b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.html new file mode 100644 index 0000000000000..9b333bfeb6854 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.html @@ -0,0 +1,5 @@ +code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm

COMSIG_ATOM_CAN_BE_PULLEDsignal sent out by an atom when it checks if it can be pulled, for additional checks
COMSIG_ATOM_NO_LONGER_PULLEDsignal sent out by an atom when it is no longer being pulled by something else : (atom/puller)
COMSIG_ATOM_NO_LONGER_PULLINGsignal sent out by an atom when it is no longer pulling something : (atom/pulling)
COMSIG_ATOM_INTERCEPT_Z_FALLcalled for each movable in a turf contents on /turf/zImpact(): (atom/movable/A, levels)
COMSIG_ATOM_ON_Z_IMPACTsignal sent out by an atom upon onZImpact : (turf/impacted_turf, levels)
COMSIG_ATOM_AFTER_SHUTTLE_MOVESignal sent after an atom movable moves on shuttle.
COMSIG_ATOM_START_PULLcalled on a movable (NOT living) when it starts pulling (atom/movable/pulled, state, force)
COMSIG_ATOM_TRIED_PASScalled on /atom when something attempts to pass through it (atom/movable/source, atom/movable/passing, dir)
COMSIG_MOVABLE_CAN_PASS_THROUGHcalled on /movable when something attempts to pass through it (atom/movable/source, atom/movable/passing, dir) AND WHEN general_movement = FALSE for some fucking reason
COMSIG_COMPONENT_PERMIT_PASSAGEIf given, we permit passage through
COMSIG_COMPONENT_REFUSE_PASSAGEIf given, we DONT permit passage through
COMSIG_LIVING_START_PULLcalled on /living when someone starts pulling (atom/movable/pulled, state, force)
COMSIG_LIVING_GET_PULLEDcalled on /living when someone is pulled (mob/living/puller)
COMSIG_LIVING_TRY_PULLcalled on /living, when pull is attempted, but before it completes, from base of [/mob/living/start_pulling]: (atom/movable/thing, force)
COMSIG_LIVING_UPDATING_PULL_MOVESPEEDCalled from /mob/living/update_pull_movespeed
COMSIG_LIVING_PUSHING_MOVABLECalled from /mob/living/PushAM -- Called when this mob is about to push a movable, but before it moves +(aotm/movable/being_pushed)
COMSIG_ATOM_UI_INTERACTfrom base of [/atom/proc/interact]: (mob/user)
COMSIG_ATOM_RELAYMOVEfrom base of atom/relaymove(): (mob/living/user, direction)
COMSIG_BLOCK_RELAYMOVEprevents the "you cannot move while buckled! message"
COMSIG_ATOM_PRE_DIR_CHANGEFrom base of atom/setDir(): (old_dir, new_dir). Called before the direction changes
COMSIG_ATOM_DIR_CHANGEfrom base of atom/setDir(): (old_dir, new_dir). Called before the direction changes.
COMSIG_ATOM_POST_DIR_CHANGEfrom base of atom/setDir(): (old_dir, new_dir). Called after the direction changes.
COMSIG_MOVABLE_KEYBIND_FACE_DIRfrom base of atom/movable/keybind_face_direction(): (dir). Called before turning with the movement lock key.
COMSIG_IGNORE_MOVEMENT_LOCKignores the movement lock key, used for turning while strafing in a mech
COMSIG_ATOM_SINGULARITY_TRY_MOVEfrom /datum/component/singularity/proc/can_move(), as well as /obj/energy_ball/proc/can_move() +if a callback returns SINGULARITY_TRY_MOVE_BLOCK, then the singularity will not move to that turf
SINGULARITY_TRY_MOVE_BLOCKWhen returned from COMSIG_ATOM_SINGULARITY_TRY_MOVE, the singularity will move to that turf
COMSIG_ATOM_PRE_PRESSURE_PUSHfrom base of atom/experience_pressure_difference(): (pressure_difference, direction, pressure_resistance_prob_delta)
COMSIG_ATOM_BLOCKS_PRESSUREprevents pressure movement
COMSIG_MOVABLE_MOVED_FROM_LOOPFrom base of /datum/move_loop/process() after attempting to move a movable: (datum/move_loop/loop, old_dir)

Define Details

COMSIG_ATOM_AFTER_SHUTTLE_MOVE

Signal sent after an atom movable moves on shuttle.

COMSIG_ATOM_BLOCKS_PRESSURE

prevents pressure movement

COMSIG_ATOM_CAN_BE_PULLED

signal sent out by an atom when it checks if it can be pulled, for additional checks

COMSIG_ATOM_DIR_CHANGE

from base of atom/setDir(): (old_dir, new_dir). Called before the direction changes.

COMSIG_ATOM_INTERCEPT_Z_FALL

called for each movable in a turf contents on /turf/zImpact(): (atom/movable/A, levels)

COMSIG_ATOM_NO_LONGER_PULLED

signal sent out by an atom when it is no longer being pulled by something else : (atom/puller)

COMSIG_ATOM_NO_LONGER_PULLING

signal sent out by an atom when it is no longer pulling something : (atom/pulling)

COMSIG_ATOM_ON_Z_IMPACT

signal sent out by an atom upon onZImpact : (turf/impacted_turf, levels)

COMSIG_ATOM_POST_DIR_CHANGE

from base of atom/setDir(): (old_dir, new_dir). Called after the direction changes.

COMSIG_ATOM_PRE_DIR_CHANGE

From base of atom/setDir(): (old_dir, new_dir). Called before the direction changes

COMSIG_ATOM_PRE_PRESSURE_PUSH

from base of atom/experience_pressure_difference(): (pressure_difference, direction, pressure_resistance_prob_delta)

COMSIG_ATOM_RELAYMOVE

from base of atom/relaymove(): (mob/living/user, direction)

COMSIG_ATOM_SINGULARITY_TRY_MOVE

from /datum/component/singularity/proc/can_move(), as well as /obj/energy_ball/proc/can_move() +if a callback returns SINGULARITY_TRY_MOVE_BLOCK, then the singularity will not move to that turf

COMSIG_ATOM_START_PULL

called on a movable (NOT living) when it starts pulling (atom/movable/pulled, state, force)

COMSIG_ATOM_TRIED_PASS

called on /atom when something attempts to pass through it (atom/movable/source, atom/movable/passing, dir)

COMSIG_ATOM_UI_INTERACT

from base of [/atom/proc/interact]: (mob/user)

COMSIG_BLOCK_RELAYMOVE

prevents the "you cannot move while buckled! message"

COMSIG_COMPONENT_PERMIT_PASSAGE

If given, we permit passage through

COMSIG_COMPONENT_REFUSE_PASSAGE

If given, we DONT permit passage through

COMSIG_IGNORE_MOVEMENT_LOCK

ignores the movement lock key, used for turning while strafing in a mech

COMSIG_LIVING_GET_PULLED

called on /living when someone is pulled (mob/living/puller)

COMSIG_LIVING_PUSHING_MOVABLE

Called from /mob/living/PushAM -- Called when this mob is about to push a movable, but before it moves +(aotm/movable/being_pushed)

COMSIG_LIVING_START_PULL

called on /living when someone starts pulling (atom/movable/pulled, state, force)

COMSIG_LIVING_TRY_PULL

called on /living, when pull is attempted, but before it completes, from base of [/mob/living/start_pulling]: (atom/movable/thing, force)

COMSIG_LIVING_UPDATING_PULL_MOVESPEED

Called from /mob/living/update_pull_movespeed

COMSIG_MOVABLE_CAN_PASS_THROUGH

called on /movable when something attempts to pass through it (atom/movable/source, atom/movable/passing, dir) AND WHEN general_movement = FALSE for some fucking reason

COMSIG_MOVABLE_KEYBIND_FACE_DIR

from base of atom/movable/keybind_face_direction(): (dir). Called before turning with the movement lock key.

COMSIG_MOVABLE_MOVED_FROM_LOOP

From base of /datum/move_loop/process() after attempting to move a movable: (datum/move_loop/loop, old_dir)

SINGULARITY_TRY_MOVE_BLOCK

When returned from COMSIG_ATOM_SINGULARITY_TRY_MOVE, the singularity will move to that turf

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.html b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.html new file mode 100644 index 0000000000000..05f856085b601 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.html @@ -0,0 +1,29 @@ +code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm

COMSIG_ATOM_PRE_EX_ACTfrom the EX_ACT wrapper macro: (severity, target)
COMPONENT_CANCEL_EX_ACTif returned, don't let the explosion act on this atom
COMSIG_ATOM_EX_ACTfrom the EX_ACT wrapper macro: (severity, target)
COMSIG_ATOM_PRE_EMP_ACTfrom base of atom/emp_act(severity): (severity). return EMP protection flags
COMSIG_ATOM_EMP_ACTfrom base of atom/emp_act(severity): (severity, protection)
COMSIG_ATOM_FIRE_ACTfrom base of atom/fire_act(): (exposed_temperature, exposed_volume)
COMSIG_ATOM_PRE_BULLET_ACTfrom base of atom/bullet_act(): (/obj/projectile, def_zone)
COMPONENT_BULLET_ACTEDAll this does is prevent default bullet on_hit from being called, [BULLET_ACT_HIT] being return is implied
COMPONENT_BULLET_BLOCKEDForces bullet act to return [BULLET_ACT_BLOCK], takes priority over above
COMPONENT_BULLET_PIERCEDForces bullet act to return [BULLET_ACT_FORCE_PIERCE], takes priority over above
COMSIG_ATOM_BULLET_ACTfrom base of atom/bullet_act(): (/obj/projectile, def_zone)
COMSIG_ATOM_CHECKPARTSfrom base of atom/CheckParts(): (list/parts_list, datum/crafting_recipe/R)
COMSIG_ATOM_USED_IN_CRAFTfrom base of atom/CheckParts(): (atom/movable/new_craft) - The atom has just been used in a crafting recipe and has been moved inside new_craft.
COMSIG_ATOM_BLOB_ACTfrom base of atom/blob_act(): (/obj/structure/blob)
COMPONENT_CANCEL_BLOB_ACTif returned, forces nothing to happen when the atom is attacked by a blob
COMSIG_ATOM_ACID_ACTfrom base of atom/acid_act(): (acidpwr, acid_volume)
COMSIG_ATOM_EMAG_ACTfrom base of atom/emag_act(): (/mob/user)
COMSIG_ATOM_NARSIE_ACTfrom base of atom/narsie_act(): ()
COMSIG_ATOM_RCD_ACTfrom base of atom/rcd_act(): (/mob, /obj/item/construction/rcd, passed_mode)
COMSIG_ATOM_SING_PULLfrom base of atom/singularity_pull(): (/datum/component/singularity, current_size)
COMSIG_ATOM_BSA_BEAMfrom obj/machinery/bsa/full/proc/fire(): ()
COMSIG_ATOM_ITEM_INTERACTIONSent from atom/proc/item_interaction, when this atom is left-clicked on by a mob with an item +Sent from the very beginning of the click chain, intended for generic atom-item interactions +Args: (mob/living/user, obj/item/tool, list/modifiers) +Return any ITEM_INTERACT_ flags as relevant (see tools.dm)
COMSIG_ATOM_ITEM_INTERACTION_SECONDARYSent from atom/proc/item_interaction, when this atom is right-clicked on by a mob with an item +Sent from the very beginning of the click chain, intended for generic atom-item interactions +Args: (mob/living/user, obj/item/tool, list/modifiers) +Return any ITEM_INTERACT_ flags as relevant (see tools.dm)
COMSIG_USER_ITEM_INTERACTIONSent from atom/proc/item_interaction, to a mob clicking on an atom with an item
COMSIG_ITEM_INTERACTING_WITH_ATOMSent from atom/proc/item_interaction, to an item clicking on an atom +Args: (mob/living/user, atom/interacting_with, list/modifiers) +Return any ITEM_INTERACT_ flags as relevant (see tools.dm)
COMSIG_ITEM_INTERACTING_WITH_ATOM_SECONDARYSent from atom/proc/item_interaction, to an item right-clicking on an atom +Args: (mob/living/user, atom/interacting_with, list/modifiers) +Return any ITEM_INTERACT_ flags as relevant (see tools.dm)
COMSIG_USER_ITEM_INTERACTION_SECONDARYSent from atom/proc/item_interaction, when this atom is right-clicked on by a mob with a tool
COMSIG_ATOM_TOOL_ACTSent from atom/proc/item_interaction, when this atom is left-clicked on by a mob with a tool of a specific tool type +Args: (mob/living/user, obj/item/tool, list/recipes) +Return any ITEM_INTERACT_ flags as relevant (see tools.dm)
COMSIG_ATOM_SECONDARY_TOOL_ACTSent from atom/proc/item_interaction, when this atom is right-clicked on by a mob with a tool of a specific tool type +Args: (mob/living/user, obj/item/tool) +Return any ITEM_INTERACT_ flags as relevant (see tools.dm)
COMSIG_ATOM_RANGED_ITEM_INTERACTIONSent from atom/proc/ranged_item_interaction, when this atom is left-clicked on by a mob with an item while not adjacent
COMSIG_ATOM_RANGED_ITEM_INTERACTION_SECONDARYSent from atom/proc/ranged_item_interaction, when this atom is right-clicked on by a mob with an item while not adjacent
COMSIG_RANGED_ITEM_INTERACTING_WITH_ATOMSent from atom/proc/ranged_item_interaction, when a mob is using this item while left-clicking on by an atom while not adjacent
COMSIG_RANGED_ITEM_INTERACTING_WITH_ATOM_SECONDARYSent from atom/proc/ranged_item_interaction, when a mob is using this item while right-clicking on by an atom while not adjacent
COMSIG_ITEM_TOOL_ACTEDSent from atom/proc/item_interaction, when this atom is used as a tool and an event occurs
COMSIG_ATOM_SABOTEUR_ACTfrom /obj/projectile/energy/fisher/on_hit() or /obj/item/gun/energy/recharge/fisher when striking a target

Define Details

COMPONENT_BULLET_ACTED

All this does is prevent default bullet on_hit from being called, [BULLET_ACT_HIT] being return is implied

COMPONENT_BULLET_BLOCKED

Forces bullet act to return [BULLET_ACT_BLOCK], takes priority over above

COMPONENT_BULLET_PIERCED

Forces bullet act to return [BULLET_ACT_FORCE_PIERCE], takes priority over above

COMPONENT_CANCEL_BLOB_ACT

if returned, forces nothing to happen when the atom is attacked by a blob

COMPONENT_CANCEL_EX_ACT

if returned, don't let the explosion act on this atom

COMSIG_ATOM_ACID_ACT

from base of atom/acid_act(): (acidpwr, acid_volume)

COMSIG_ATOM_BLOB_ACT

from base of atom/blob_act(): (/obj/structure/blob)

COMSIG_ATOM_BSA_BEAM

from obj/machinery/bsa/full/proc/fire(): ()

COMSIG_ATOM_BULLET_ACT

from base of atom/bullet_act(): (/obj/projectile, def_zone)

COMSIG_ATOM_CHECKPARTS

from base of atom/CheckParts(): (list/parts_list, datum/crafting_recipe/R)

COMSIG_ATOM_EMAG_ACT

from base of atom/emag_act(): (/mob/user)

COMSIG_ATOM_EMP_ACT

from base of atom/emp_act(severity): (severity, protection)

COMSIG_ATOM_EX_ACT

from the EX_ACT wrapper macro: (severity, target)

COMSIG_ATOM_FIRE_ACT

from base of atom/fire_act(): (exposed_temperature, exposed_volume)

COMSIG_ATOM_ITEM_INTERACTION

Sent from atom/proc/item_interaction, when this atom is left-clicked on by a mob with an item +Sent from the very beginning of the click chain, intended for generic atom-item interactions +Args: (mob/living/user, obj/item/tool, list/modifiers) +Return any ITEM_INTERACT_ flags as relevant (see tools.dm)

COMSIG_ATOM_ITEM_INTERACTION_SECONDARY

Sent from atom/proc/item_interaction, when this atom is right-clicked on by a mob with an item +Sent from the very beginning of the click chain, intended for generic atom-item interactions +Args: (mob/living/user, obj/item/tool, list/modifiers) +Return any ITEM_INTERACT_ flags as relevant (see tools.dm)

COMSIG_ATOM_NARSIE_ACT

from base of atom/narsie_act(): ()

COMSIG_ATOM_PRE_BULLET_ACT

from base of atom/bullet_act(): (/obj/projectile, def_zone)

COMSIG_ATOM_PRE_EMP_ACT

from base of atom/emp_act(severity): (severity). return EMP protection flags

COMSIG_ATOM_PRE_EX_ACT

from the EX_ACT wrapper macro: (severity, target)

COMSIG_ATOM_RANGED_ITEM_INTERACTION

Sent from atom/proc/ranged_item_interaction, when this atom is left-clicked on by a mob with an item while not adjacent

COMSIG_ATOM_RANGED_ITEM_INTERACTION_SECONDARY

Sent from atom/proc/ranged_item_interaction, when this atom is right-clicked on by a mob with an item while not adjacent

COMSIG_ATOM_RCD_ACT

from base of atom/rcd_act(): (/mob, /obj/item/construction/rcd, passed_mode)

COMSIG_ATOM_SABOTEUR_ACT

from /obj/projectile/energy/fisher/on_hit() or /obj/item/gun/energy/recharge/fisher when striking a target

COMSIG_ATOM_SECONDARY_TOOL_ACT

Sent from atom/proc/item_interaction, when this atom is right-clicked on by a mob with a tool of a specific tool type +Args: (mob/living/user, obj/item/tool) +Return any ITEM_INTERACT_ flags as relevant (see tools.dm)

COMSIG_ATOM_SING_PULL

from base of atom/singularity_pull(): (/datum/component/singularity, current_size)

COMSIG_ATOM_TOOL_ACT

Sent from atom/proc/item_interaction, when this atom is left-clicked on by a mob with a tool of a specific tool type +Args: (mob/living/user, obj/item/tool, list/recipes) +Return any ITEM_INTERACT_ flags as relevant (see tools.dm)

COMSIG_ATOM_USED_IN_CRAFT

from base of atom/CheckParts(): (atom/movable/new_craft) - The atom has just been used in a crafting recipe and has been moved inside new_craft.

COMSIG_ITEM_INTERACTING_WITH_ATOM

Sent from atom/proc/item_interaction, to an item clicking on an atom +Args: (mob/living/user, atom/interacting_with, list/modifiers) +Return any ITEM_INTERACT_ flags as relevant (see tools.dm)

COMSIG_ITEM_INTERACTING_WITH_ATOM_SECONDARY

Sent from atom/proc/item_interaction, to an item right-clicking on an atom +Args: (mob/living/user, atom/interacting_with, list/modifiers) +Return any ITEM_INTERACT_ flags as relevant (see tools.dm)

COMSIG_ITEM_TOOL_ACTED

Sent from atom/proc/item_interaction, when this atom is used as a tool and an event occurs

COMSIG_RANGED_ITEM_INTERACTING_WITH_ATOM

Sent from atom/proc/ranged_item_interaction, when a mob is using this item while left-clicking on by an atom while not adjacent

COMSIG_RANGED_ITEM_INTERACTING_WITH_ATOM_SECONDARY

Sent from atom/proc/ranged_item_interaction, when a mob is using this item while right-clicking on by an atom while not adjacent

COMSIG_USER_ITEM_INTERACTION

Sent from atom/proc/item_interaction, to a mob clicking on an atom with an item

COMSIG_USER_ITEM_INTERACTION_SECONDARY

Sent from atom/proc/item_interaction, when this atom is right-clicked on by a mob with a tool

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_backpack.html b/code/__DEFINES/dcs/signals/signals_backpack.html new file mode 100644 index 0000000000000..9d7806afdc608 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_backpack.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_backpack.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_backpack.dm

COMSIG_DUFFEL_ZIP_CHANGEFrom /obj/item/storage/backpack/duffelbag/proc/set_zipper() : (new_zip)

Define Details

COMSIG_DUFFEL_ZIP_CHANGE

From /obj/item/storage/backpack/duffelbag/proc/set_zipper() : (new_zip)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_beam.html b/code/__DEFINES/dcs/signals/signals_beam.html new file mode 100644 index 0000000000000..ebccc859ca63b --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_beam.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_beam.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_beam.dm

COMSIG_BEAM_BEFORE_DRAWCalled before beam is redrawn
COMSIG_BEAM_ENTEREDSent to a beam when an atom enters any turf the beam covers: (obj/effect/ebeam/hit_beam, atom/movable/entered)
COMSIG_BEAM_EXITEDSent to a beam when an atom exits any turf the beam covers: (obj/effect/ebeam/hit_beam, atom/movable/exited)
COMSIG_BEAM_TURFS_CHANGEDSent to a beam when any turf the beam covers changes: (list/datum/callback/post_change_callbacks)

Define Details

COMSIG_BEAM_BEFORE_DRAW

Called before beam is redrawn

COMSIG_BEAM_ENTERED

Sent to a beam when an atom enters any turf the beam covers: (obj/effect/ebeam/hit_beam, atom/movable/entered)

COMSIG_BEAM_EXITED

Sent to a beam when an atom exits any turf the beam covers: (obj/effect/ebeam/hit_beam, atom/movable/exited)

COMSIG_BEAM_TURFS_CHANGED

Sent to a beam when any turf the beam covers changes: (list/datum/callback/post_change_callbacks)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_bitrunning.html b/code/__DEFINES/dcs/signals/signals_bitrunning.html new file mode 100644 index 0000000000000..9bf2c6c86fe15 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_bitrunning.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_bitrunning.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_bitrunning.dm

COMSIG_BITRUNNER_ALERT_SEVERfrom /atom/movable/screen/alert/bitrunning/qserver_domain_complete
COMSIG_BITRUNNER_GOAL_POINTfrom /obj/effect/bitrunning/loot_signal: (points)
COMSIG_BITRUNNER_NETPOD_SEVERfrom /obj/machinery/netpod/sever_connection()
COMSIG_BITRUNNER_CROWBAR_ALERTfrom /obj/machinery/netpod/default_pry_open() : (mob/living/intruder)
COMSIG_BITRUNNER_NETPOD_INTEGRITYfrom /obj/machinery/netpod/on_damage_taken()
COMSIG_BITRUNNER_NETPOD_OPENEDfrom /obj/machinery/netpod/open_machine()
COMSIG_BITRUNNER_DOMAIN_COMPLETEfrom /obj/machinery/quantum_server/on_goal_turf_entered(): (atom/entered, reward_points)
COMSIG_BITRUNNER_CACHE_SEVERfrom /obj/machinery/quantum_server/generate_loot()
COMSIG_BITRUNNER_QSRV_SEVERfrom /obj/machinery/quantum_server/sever_connection()
COMSIG_BITRUNNER_SHUTDOWN_ALERTfrom /obj/machinery/quantum_server/shutdown() : (mob/living)
COMSIG_BITRUNNER_THREAT_CREATEDfrom /obj/machinery/quantum_server/notify_threat()
COMSIG_BITRUNNER_DOMAIN_SCRUBBEDfrom /obj/machinery/quantum_server/scrub_vdom()
COMSIG_BITRUNNER_STATION_SPAWNfrom /obj/machienry/quantum_server/station_spawn()
COMSIG_BITRUNNER_LADDER_SEVERfrom /obj/structure/hololadder/disconnect()
COMSIG_BITRUNNER_SERVER_EMAGGEDSent when a server console is emagged
COMSIG_BITRUNNER_SPAWNEDfrom /obj/effect/mob_spawn/ghost_role/human/virtual_domain/proc/artificial_spawn() : (mob/living/runner)
COMSIG_BITRUNNING_MOB_SEGMENT_SPAWNEDfrom /obj/effect/landmark/bitrunning/mob_segment/proc/spawn_mobs() : (list/mob/living)

Define Details

COMSIG_BITRUNNER_ALERT_SEVER

from /atom/movable/screen/alert/bitrunning/qserver_domain_complete

COMSIG_BITRUNNER_CACHE_SEVER

from /obj/machinery/quantum_server/generate_loot()

COMSIG_BITRUNNER_CROWBAR_ALERT

from /obj/machinery/netpod/default_pry_open() : (mob/living/intruder)

COMSIG_BITRUNNER_DOMAIN_COMPLETE

from /obj/machinery/quantum_server/on_goal_turf_entered(): (atom/entered, reward_points)

COMSIG_BITRUNNER_DOMAIN_SCRUBBED

from /obj/machinery/quantum_server/scrub_vdom()

COMSIG_BITRUNNER_GOAL_POINT

from /obj/effect/bitrunning/loot_signal: (points)

COMSIG_BITRUNNER_LADDER_SEVER

from /obj/structure/hololadder/disconnect()

COMSIG_BITRUNNER_NETPOD_INTEGRITY

from /obj/machinery/netpod/on_damage_taken()

COMSIG_BITRUNNER_NETPOD_OPENED

from /obj/machinery/netpod/open_machine()

COMSIG_BITRUNNER_NETPOD_SEVER

from /obj/machinery/netpod/sever_connection()

COMSIG_BITRUNNER_QSRV_SEVER

from /obj/machinery/quantum_server/sever_connection()

COMSIG_BITRUNNER_SERVER_EMAGGED

Sent when a server console is emagged

COMSIG_BITRUNNER_SHUTDOWN_ALERT

from /obj/machinery/quantum_server/shutdown() : (mob/living)

COMSIG_BITRUNNER_SPAWNED

from /obj/effect/mob_spawn/ghost_role/human/virtual_domain/proc/artificial_spawn() : (mob/living/runner)

COMSIG_BITRUNNER_STATION_SPAWN

from /obj/machienry/quantum_server/station_spawn()

COMSIG_BITRUNNER_THREAT_CREATED

from /obj/machinery/quantum_server/notify_threat()

COMSIG_BITRUNNING_MOB_SEGMENT_SPAWNED

from /obj/effect/landmark/bitrunning/mob_segment/proc/spawn_mobs() : (list/mob/living)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_blob.html b/code/__DEFINES/dcs/signals/signals_blob.html new file mode 100644 index 0000000000000..f7c56358cd33a --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_blob.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_blob.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_blob.dm

COMSIG_BLOB_SELECTED_STRAINSignal sent when a blob overmind picked a new strain (/mob/camera/blob/overmind, /datum/blobstrain/new_strain)
COMSIG_BLOB_ZOMBIFIEDSignal sent by a blob spore when it creates a zombie (/mob/living/basic/blob_minion/spore/spore, //mob/living/basic/blob_minion/zombie/zombie)

Define Details

COMSIG_BLOB_SELECTED_STRAIN

Signal sent when a blob overmind picked a new strain (/mob/camera/blob/overmind, /datum/blobstrain/new_strain)

COMSIG_BLOB_ZOMBIFIED

Signal sent by a blob spore when it creates a zombie (/mob/living/basic/blob_minion/spore/spore, //mob/living/basic/blob_minion/zombie/zombie)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_bot.html b/code/__DEFINES/dcs/signals/signals_bot.html new file mode 100644 index 0000000000000..2403481442ffe --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_bot.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_bot.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_bot.dm

COMSIG_MONEYBOT_ADD_MONEYCalled in /obj/structure/moneybot/add_money(). (to_add)
COMSIG_DISPENSERBOT_ADD_ITEMCalled in /obj/structure/dispenserbot/add_item(). (obj/item/to_add)
COMSIG_DISPENSERBOT_REMOVE_ITEMCalled in /obj/structure/dispenserbot/remove_item(). (obj/item/to_remove)

Define Details

COMSIG_DISPENSERBOT_ADD_ITEM

Called in /obj/structure/dispenserbot/add_item(). (obj/item/to_add)

COMSIG_DISPENSERBOT_REMOVE_ITEM

Called in /obj/structure/dispenserbot/remove_item(). (obj/item/to_remove)

COMSIG_MONEYBOT_ADD_MONEY

Called in /obj/structure/moneybot/add_money(). (to_add)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_camera.html b/code/__DEFINES/dcs/signals/signals_camera.html new file mode 100644 index 0000000000000..701e8025a438a --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_camera.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_camera.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_camera.dm

COMSIG_TRACKABLE_TRACKING_TARGETSignal sent when a /datum/trackable found a target: (mob/living/target)
COMSIG_TRACKABLE_GLIDE_CHANGEDSignal sent when the mob a /datum/trackable is actively following changes glide size: mob/living/target, new_glide_size)

Define Details

COMSIG_TRACKABLE_GLIDE_CHANGED

Signal sent when the mob a /datum/trackable is actively following changes glide size: mob/living/target, new_glide_size)

COMSIG_TRACKABLE_TRACKING_TARGET

Signal sent when a /datum/trackable found a target: (mob/living/target)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_changeling.html b/code/__DEFINES/dcs/signals/signals_changeling.html new file mode 100644 index 0000000000000..5a19259130ec6 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_changeling.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_changeling.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_changeling.dm

COMSIG_CHANGELING_TRANSFORMCalled when a changeling uses its transform ability (source = carbon), from /datum/action/changeling/transform/sting_action(mob/living/carbon/human/user)

Define Details

COMSIG_CHANGELING_TRANSFORM

Called when a changeling uses its transform ability (source = carbon), from /datum/action/changeling/transform/sting_action(mob/living/carbon/human/user)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_circuit.html b/code/__DEFINES/dcs/signals/signals_circuit.html new file mode 100644 index 0000000000000..4e1f7658188b9 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_circuit.html @@ -0,0 +1,5 @@ +code/__DEFINES/dcs/signals/signals_circuit.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_circuit.dm

COMSIG_PORT_SET_VALUESent when the value of a port is set.
COMSIG_PORT_SET_TYPESent when the type of a port is set.
COMSIG_PORT_DISCONNECTSent when a port disconnects from everything.
COMSIG_CIRCUIT_ADD_COMPONENTSent when a /obj/item/circuit_component is added to a circuit.
COMPONENT_CANCEL_ADD_COMPONENTCancels adding the component to the circuit.
COMSIG_CIRCUIT_ADD_COMPONENT_MANUALLYSent when a /obj/item/circuit_component is added to a circuit manually, by putting the item inside directly. +Accepts COMPONENT_CANCEL_ADD_COMPONENT.
COMSIG_CIRCUIT_SHELL_REMOVEDSent when a circuit is removed from its shell
COMSIG_CIRCUIT_COMPONENT_REMOVEDSent to /obj/item/circuit_component when it is removed from a circuit. (/obj/item/integrated_circuit)
COMSIG_CIRCUIT_SET_CELLCalled when the integrated circuit's cell is set.
COMSIG_CIRCUIT_SET_ONCalled when the integrated circuit is turned on or off.
COMSIG_CIRCUIT_SET_SHELLCalled when the integrated circuit's shell is set.
COMSIG_CIRCUIT_SET_LOCKEDCalled when the integrated circuit is locked.
COMSIG_CIRCUIT_PRE_POWER_USAGECalled before power is used in an integrated circuit (power_to_use)
COMSIG_CIRCUIT_PRE_SAVE_TO_JSONCalled right before the integrated circuit data is converted to json. Allows modification to the data right before it is returned.
COMSIG_CIRCUIT_POST_LOADCalled when the integrated circuit is loaded.
COMSIG_ATOM_USB_CABLE_TRY_ATTACHSent to an atom when a /obj/item/usb_cable attempts to connect to something. (/obj/item/usb_cable/usb_cable, /mob/user)
COMSIG_USB_CABLE_ATTACHEDAttaches the USB cable to the atom. If the USB cables moves away, it will disconnect.
COMSIG_USB_CABLE_CONNECTED_TO_CIRCUITAttaches the USB cable to a circuit. Producers of this are expected to set the usb_cable's +attached_circuit variable.
COMSIG_CANCEL_USB_CABLE_ATTACKCancels the attack chain, but without performing any other action.
COMSIG_CIRCUIT_COMPONENT_SAVECalled when the circuit component is saved.
COMSIG_CIRCUIT_COMPONENT_SAVE_DATACalled when circuit component data should be saved
COMSIG_CIRCUIT_COMPONENT_LOAD_DATACalled when circuit component data should be loaded
COMSIG_MOVABLE_CIRCUIT_LOADEDCalled when an external object is loaded.
COMSIG_CIRCUIT_COMPONENT_PERFORM_ACTIONCalled when a ui action is sent for the circuit component
COMSIG_GLOB_CIRCUIT_NTNET_DATA_SENTCalled when an Ntnet sender is sending Ntnet data
COMSIG_CIRCUIT_ACTION_COMPONENT_REGISTEREDCalled when an equipment action component is added to a shell (/obj/item/circuit_component/equipment_action/action_comp)
COMSIG_CIRCUIT_ACTION_COMPONENT_UNREGISTEREDCalled when an equipment action component is removed from a shell (/obj/item/circuit_component/equipment_action/action_comp)
COMSIG_SHELL_CIRCUIT_ATTACHEDSent to the shell component when a circuit is attached.
COMSIG_SHELL_CIRCUIT_REMOVEDSent to the shell component when a circuit is removed.

Define Details

COMPONENT_CANCEL_ADD_COMPONENT

Cancels adding the component to the circuit.

COMSIG_ATOM_USB_CABLE_TRY_ATTACH

Sent to an atom when a /obj/item/usb_cable attempts to connect to something. (/obj/item/usb_cable/usb_cable, /mob/user)

COMSIG_CANCEL_USB_CABLE_ATTACK

Cancels the attack chain, but without performing any other action.

COMSIG_CIRCUIT_ACTION_COMPONENT_REGISTERED

Called when an equipment action component is added to a shell (/obj/item/circuit_component/equipment_action/action_comp)

COMSIG_CIRCUIT_ACTION_COMPONENT_UNREGISTERED

Called when an equipment action component is removed from a shell (/obj/item/circuit_component/equipment_action/action_comp)

COMSIG_CIRCUIT_ADD_COMPONENT

Sent when a /obj/item/circuit_component is added to a circuit.

COMSIG_CIRCUIT_ADD_COMPONENT_MANUALLY

Sent when a /obj/item/circuit_component is added to a circuit manually, by putting the item inside directly. +Accepts COMPONENT_CANCEL_ADD_COMPONENT.

COMSIG_CIRCUIT_COMPONENT_LOAD_DATA

Called when circuit component data should be loaded

COMSIG_CIRCUIT_COMPONENT_PERFORM_ACTION

Called when a ui action is sent for the circuit component

COMSIG_CIRCUIT_COMPONENT_REMOVED

Sent to /obj/item/circuit_component when it is removed from a circuit. (/obj/item/integrated_circuit)

COMSIG_CIRCUIT_COMPONENT_SAVE

Called when the circuit component is saved.

COMSIG_CIRCUIT_COMPONENT_SAVE_DATA

Called when circuit component data should be saved

COMSIG_CIRCUIT_POST_LOAD

Called when the integrated circuit is loaded.

COMSIG_CIRCUIT_PRE_POWER_USAGE

Called before power is used in an integrated circuit (power_to_use)

COMSIG_CIRCUIT_PRE_SAVE_TO_JSON

Called right before the integrated circuit data is converted to json. Allows modification to the data right before it is returned.

COMSIG_CIRCUIT_SET_CELL

Called when the integrated circuit's cell is set.

COMSIG_CIRCUIT_SET_LOCKED

Called when the integrated circuit is locked.

COMSIG_CIRCUIT_SET_ON

Called when the integrated circuit is turned on or off.

COMSIG_CIRCUIT_SET_SHELL

Called when the integrated circuit's shell is set.

COMSIG_CIRCUIT_SHELL_REMOVED

Sent when a circuit is removed from its shell

COMSIG_GLOB_CIRCUIT_NTNET_DATA_SENT

Called when an Ntnet sender is sending Ntnet data

COMSIG_MOVABLE_CIRCUIT_LOADED

Called when an external object is loaded.

COMSIG_PORT_DISCONNECT

Sent when a port disconnects from everything.

COMSIG_PORT_SET_TYPE

Sent when the type of a port is set.

COMSIG_PORT_SET_VALUE

Sent when the value of a port is set.

COMSIG_SHELL_CIRCUIT_ATTACHED

Sent to the shell component when a circuit is attached.

COMSIG_SHELL_CIRCUIT_REMOVED

Sent to the shell component when a circuit is removed.

COMSIG_USB_CABLE_ATTACHED

Attaches the USB cable to the atom. If the USB cables moves away, it will disconnect.

COMSIG_USB_CABLE_CONNECTED_TO_CIRCUIT

Attaches the USB cable to a circuit. Producers of this are expected to set the usb_cable's +attached_circuit variable.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_client.html b/code/__DEFINES/dcs/signals/signals_client.html new file mode 100644 index 0000000000000..c2ba0fd9232b3 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_client.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_client.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_client.dm

COMSIG_CLIENT_VERB_ADDEDCalled after one or more verbs are added: (list of verbs added)
COMSIG_CLIENT_VERB_REMOVEDCalled after one or more verbs are added: (list of verbs added)
COMSIG_CLIENT_MOB_LOGINCalled after a client logs into a mob: (mob)

Define Details

COMSIG_CLIENT_MOB_LOGIN

Called after a client logs into a mob: (mob)

COMSIG_CLIENT_VERB_ADDED

Called after one or more verbs are added: (list of verbs added)

COMSIG_CLIENT_VERB_REMOVED

Called after one or more verbs are added: (list of verbs added)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_closet.html b/code/__DEFINES/dcs/signals/signals_closet.html new file mode 100644 index 0000000000000..0e1d79ecce0ca --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_closet.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_closet.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_closet.dm

COMSIG_CLOSET_CONTENTS_INITIALIZEDCalled in /obj/structure/closet/PopulateContents()

Define Details

COMSIG_CLOSET_CONTENTS_INITIALIZED

Called in /obj/structure/closet/PopulateContents()

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_clothing.html b/code/__DEFINES/dcs/signals/signals_clothing.html new file mode 100644 index 0000000000000..f7b597ba8060d --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_clothing.html @@ -0,0 +1,9 @@ +code/__DEFINES/dcs/signals/signals_clothing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_clothing.dm

COMSIG_CLOTHING_VISOR_TOGGLE(/obj/item/clothing, visor_state) - When a clothing gets its visor toggled.
COMSIG_CLOTHING_UNDER_ADJUSTEDFrom an undersuit being adjusted: ()
COMSIG_CLOTHING_ACCESSORY_ATTACHED/obj/item/clothing/accessory/successful_attach : (obj/item/clothing/under/attached_to) +The accessory, at the point of signal sent, is in the clothing's accessory list / loc
COMSIG_CLOTHING_ACCESSORY_DETACHED/obj/item/clothing/accessory/detach : (obj/item/clothing/under/detach_from) +The accessory, at the point of signal sent, is no longer in the accessory list but may still be in the loc
COMSIG_ACCESSORY_ATTACHED/obj/item/clothing/accessory/successful_attach : (obj/item/clothing/under/attached_to) +The accessory, at the point of signal sent, is in the clothing's accessory list / loc
COMSIG_ACCESSORY_DETACHED/obj/item/clothing/accessory/detach : (obj/item/clothing/under/detach_from) +The accessory, at the point of signal sent, is no longer in the accessory list but may still be in the loc

Define Details

COMSIG_ACCESSORY_ATTACHED

/obj/item/clothing/accessory/successful_attach : (obj/item/clothing/under/attached_to) +The accessory, at the point of signal sent, is in the clothing's accessory list / loc

COMSIG_ACCESSORY_DETACHED

/obj/item/clothing/accessory/detach : (obj/item/clothing/under/detach_from) +The accessory, at the point of signal sent, is no longer in the accessory list but may still be in the loc

COMSIG_CLOTHING_ACCESSORY_ATTACHED

/obj/item/clothing/accessory/successful_attach : (obj/item/clothing/under/attached_to) +The accessory, at the point of signal sent, is in the clothing's accessory list / loc

COMSIG_CLOTHING_ACCESSORY_DETACHED

/obj/item/clothing/accessory/detach : (obj/item/clothing/under/detach_from) +The accessory, at the point of signal sent, is no longer in the accessory list but may still be in the loc

COMSIG_CLOTHING_UNDER_ADJUSTED

From an undersuit being adjusted: ()

COMSIG_CLOTHING_VISOR_TOGGLE

(/obj/item/clothing, visor_state) - When a clothing gets its visor toggled.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_container.html b/code/__DEFINES/dcs/signals/signals_container.html new file mode 100644 index 0000000000000..4168622879200 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_container.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_container.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_container.dm

COMSIG_CONTAINER_TRY_ATTACH(atom/container, mob/user) - returns bool

Define Details

COMSIG_CONTAINER_TRY_ATTACH

(atom/container, mob/user) - returns bool

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_customizable.html b/code/__DEFINES/dcs/signals/signals_customizable.html new file mode 100644 index 0000000000000..f2f0dbc921344 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_customizable.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_customizable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_customizable.dm

COMSIG_ATOM_CUSTOMIZEDcalled when an atom with /datum/component/customizable_reagent_holder is customized (obj/item/I)

Define Details

COMSIG_ATOM_CUSTOMIZED

called when an atom with /datum/component/customizable_reagent_holder is customized (obj/item/I)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_cytology.html b/code/__DEFINES/dcs/signals/signals_cytology.html new file mode 100644 index 0000000000000..d881008720cd7 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_cytology.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_cytology.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_cytology.dm

COMSIG_SAMPLE_GROWTH_COMPLETEDSent from /datum/biological_sample/proc/reset_sample

Define Details

COMSIG_SAMPLE_GROWTH_COMPLETED

Sent from /datum/biological_sample/proc/reset_sample

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_datum.html b/code/__DEFINES/dcs/signals/signals_datum.html new file mode 100644 index 0000000000000..c844788baf079 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_datum.html @@ -0,0 +1,5 @@ +code/__DEFINES/dcs/signals/signals_datum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_datum.dm

COMSIG_COMPONENT_ADDEDwhen a component is added to a datum: (/datum/component)
COMSIG_COMPONENT_REMOVINGbefore a component is removed from a datum because of ClearFromParent: (/datum/component)
COMSIG_PREQDELETEDbefore a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation +you should only be using this if you want to block deletion +that's the only functional difference between it and COMSIG_QDELETING, outside setting QDELETING to detect
COMSIG_QDELETINGjust before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called
COMSIG_TOPICgeneric topic handler (usr, href_list)
COMSIG_VV_TOPIChandler for vv_do_topic (usr, href_list)
COMSIG_UI_ACTfrom datum ui_act (usr, action)
COMSIG_ELEMENT_ATTACHfires on the target datum when an element is attached to it (/datum/element)
COMSIG_ELEMENT_DETACHfires on the target datum when an element is attached to it (/datum/element)
COMSIG_MERGER_ADDINGCalled on the object being added to a merger group: (datum/merger/new_merger)
COMSIG_MERGER_REMOVINGCalled on the object being removed from a merger group: (datum/merger/old_merger)
COMSIG_MERGER_REFRESH_COMPLETECalled on the merger after finishing a refresh: (list/leaving_members, list/joining_members)
COMSIG_GASMIX_MERGEDFrom /datum/gas_mixture/proc/merge: ()
COMSIG_GASMIX_REMOVEDFrom /datum/gas_mixture/proc/remove: ()
COMSIG_GASMIX_REACTEDFrom /datum/gas_mixture/proc/react: ()
COMSIG_BANK_ACCOUNT_DEBT_PAIDfrom /datum/bank_account/pay_debt(), after a portion or all the debt has been paid.
COMSIG_ON_HIT_EFFECTfrom /datum/component/on_hit_effect/send_signal(): (user, target, hit_zone)

Define Details

COMSIG_BANK_ACCOUNT_DEBT_PAID

from /datum/bank_account/pay_debt(), after a portion or all the debt has been paid.

COMSIG_COMPONENT_ADDED

when a component is added to a datum: (/datum/component)

COMSIG_COMPONENT_REMOVING

before a component is removed from a datum because of ClearFromParent: (/datum/component)

COMSIG_ELEMENT_ATTACH

fires on the target datum when an element is attached to it (/datum/element)

COMSIG_ELEMENT_DETACH

fires on the target datum when an element is attached to it (/datum/element)

COMSIG_GASMIX_MERGED

From /datum/gas_mixture/proc/merge: ()

COMSIG_GASMIX_REACTED

From /datum/gas_mixture/proc/react: ()

COMSIG_GASMIX_REMOVED

From /datum/gas_mixture/proc/remove: ()

COMSIG_MERGER_ADDING

Called on the object being added to a merger group: (datum/merger/new_merger)

COMSIG_MERGER_REFRESH_COMPLETE

Called on the merger after finishing a refresh: (list/leaving_members, list/joining_members)

COMSIG_MERGER_REMOVING

Called on the object being removed from a merger group: (datum/merger/old_merger)

COMSIG_ON_HIT_EFFECT

from /datum/component/on_hit_effect/send_signal(): (user, target, hit_zone)

COMSIG_PREQDELETED

before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation +you should only be using this if you want to block deletion +that's the only functional difference between it and COMSIG_QDELETING, outside setting QDELETING to detect

COMSIG_QDELETING

just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called

COMSIG_TOPIC

generic topic handler (usr, href_list)

COMSIG_UI_ACT

from datum ui_act (usr, action)

COMSIG_VV_TOPIC

handler for vv_do_topic (usr, href_list)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_event.html b/code/__DEFINES/dcs/signals/signals_event.html new file mode 100644 index 0000000000000..fc0dcfe8476f4 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_event.html @@ -0,0 +1,3 @@ +code/__DEFINES/dcs/signals/signals_event.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_event.dm

COMSIG_GLOB_GREY_TIDESent when the Grey Tide event begins affecting the station. +(list/area/greytide_areas)
COMSIG_GLOB_GREY_TIDE_LIGHTA different signal, used specifically for flickering the lights during the event
COMSIG_CREATED_ROUND_EVENTSignal sent by round event controls when they create round event datums before calling setup() on them: (datum/round_event_control/source_event_control, datum/round_event/created_event)

Define Details

COMSIG_CREATED_ROUND_EVENT

Signal sent by round event controls when they create round event datums before calling setup() on them: (datum/round_event_control/source_event_control, datum/round_event/created_event)

COMSIG_GLOB_GREY_TIDE

Sent when the Grey Tide event begins affecting the station. +(list/area/greytide_areas)

COMSIG_GLOB_GREY_TIDE_LIGHT

A different signal, used specifically for flickering the lights during the event

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_fish.html b/code/__DEFINES/dcs/signals/signals_fish.html new file mode 100644 index 0000000000000..97b552ab7b818 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_fish.html @@ -0,0 +1,3 @@ +code/__DEFINES/dcs/signals/signals_fish.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_fish.dm

COMSIG_TRY_INSERTING_IN_AQUARIUMCalled on aquarium/attackby: (aquarium)
COMSIG_CAN_INSERT_IN_AQUARIUMThe item will be inserted into the aquarium
COMSIG_CANNOT_INSERT_IN_AQUARIUMThe item won't be inserted into the aquarium, but will early return attackby anyway.
COMSIG_AQUARIUM_CONTENT_GENERATE_APPEARANCEUpdates the appearance of a newly generated aquarium content visual:(visual)
AQUARIUM_CONTENT_RANDOMIZE_POSITIONUpdates the base position of an aquarium content visual:(aquarium, visual)
COMSIG_AQUARIUM_CONTENT_DO_ANIMATIONUpdates the animation of an aquarium content visual:(aquarium, visual)
COMSIG_FISH_LIFEFrom /obj/item/fish/process: (seconds_per_tick)
COMSIG_FISH_EATEN_BY_OTHER_FISHFrom /datum/fish_trait/eat_fish: (predator)
COMSIG_GENERATE_REAGENTS_TO_ADDFrom /obj/item/fish/generate_reagents_to_add, which returns a holder when the fish is eaten or composted for example: (list/reagents)
COMSIG_FISH_FEDFrom /obj/item/fish/feed: (fed_reagents, fed_reagent_type)
COMSIG_FISH_UPDATE_SIZE_AND_WEIGHTFrom /obj/item/fish/update_size_and_weight: (new_size, new_weight)
COMSIG_FISH_FORCE_UPDATEDFrom /obj/item/fish/update_fish_force: (weight_rank, bonus_malus)
COMSIG_FISH_RELEASED_INTOFrom /obj/item/fish/interact_with_atom_secondary, sent to the target: (fish)
COMSIG_MOB_BEGIN_FISHINGFrom /datum/fishing_challenge/New: (datum/fishing_challenge/challenge)
COMSIG_MOB_BEGIN_FISHING_MINIGAMEFrom /datum/fishing_challenge/start_minigame_phase: (datum/fishing_challenge/challenge)
COMSIG_MOB_COMPLETE_FISHINGFrom /datum/fishing_challenge/completed: (datum/fishing_challenge/challenge, win)
COMSIG_FISHING_CHALLENGE_ROLL_REWARDRolling a reward path for a fishing challenge
COMSIG_FISHING_CHALLENGE_GET_DIFFICULTYAdjusting the difficulty of a rishing challenge, often based on the reward path
COMSIG_FISH_SOURCE_REWARD_DISPENSEDFishing challenge completed +Sent to the fisherman when the reward is dispensed: (reward)
COMSIG_PRE_FISHINGCalled when you try to use fishing rod on anything
COMSIG_NPC_FISHINGCalled when an ai-controlled mob interacts with the fishing spot
COMSIG_FISHING_ROD_CASTSent by the target of the fishing rod cast
COMSIG_FISHING_ROD_CAUGHT_FISHFrom /datum/fish_source/proc/dispense_reward(), not set if the reward is a dud: (reward, user)
COMSIG_FISHING_ROD_HOOKED_ITEMFrom /obj/item/fishing_rod/proc/hook_item(): (reward, user)
COMSIG_FISHING_EQUIPMENT_SLOTTEDFrom /datum/fish_source/proc/use_slot(), sent to the slotted item: (obj/item/fishing_rod/rod)
COMSIG_FISHING_SOURCE_INTERRUPT_CHALLENGESent when the challenge is to be interrupted: (reason)
COMSIG_FISH_ANALYZER_ANALYZE_STATUSFrom /obj/item/fish_analyzer/proc/analyze_status: (fish, user)
COMSIG_FISH_BEFORE_GROWINGFrom /datum/component/fish_growth/on_fish_life: (seconds_per_tick)
COMSIG_FISH_FINISH_GROWINGFrom /datum/component/fish_growth/finish_growing: (result)

Define Details

AQUARIUM_CONTENT_RANDOMIZE_POSITION

Updates the base position of an aquarium content visual:(aquarium, visual)

COMSIG_AQUARIUM_CONTENT_DO_ANIMATION

Updates the animation of an aquarium content visual:(aquarium, visual)

COMSIG_AQUARIUM_CONTENT_GENERATE_APPEARANCE

Updates the appearance of a newly generated aquarium content visual:(visual)

COMSIG_CANNOT_INSERT_IN_AQUARIUM

The item won't be inserted into the aquarium, but will early return attackby anyway.

COMSIG_CAN_INSERT_IN_AQUARIUM

The item will be inserted into the aquarium

COMSIG_FISHING_CHALLENGE_GET_DIFFICULTY

Adjusting the difficulty of a rishing challenge, often based on the reward path

COMSIG_FISHING_CHALLENGE_ROLL_REWARD

Rolling a reward path for a fishing challenge

COMSIG_FISHING_EQUIPMENT_SLOTTED

From /datum/fish_source/proc/use_slot(), sent to the slotted item: (obj/item/fishing_rod/rod)

COMSIG_FISHING_ROD_CAST

Sent by the target of the fishing rod cast

COMSIG_FISHING_ROD_CAUGHT_FISH

From /datum/fish_source/proc/dispense_reward(), not set if the reward is a dud: (reward, user)

COMSIG_FISHING_ROD_HOOKED_ITEM

From /obj/item/fishing_rod/proc/hook_item(): (reward, user)

COMSIG_FISHING_SOURCE_INTERRUPT_CHALLENGE

Sent when the challenge is to be interrupted: (reason)

COMSIG_FISH_ANALYZER_ANALYZE_STATUS

From /obj/item/fish_analyzer/proc/analyze_status: (fish, user)

COMSIG_FISH_BEFORE_GROWING

From /datum/component/fish_growth/on_fish_life: (seconds_per_tick)

COMSIG_FISH_EATEN_BY_OTHER_FISH

From /datum/fish_trait/eat_fish: (predator)

COMSIG_FISH_FED

From /obj/item/fish/feed: (fed_reagents, fed_reagent_type)

COMSIG_FISH_FINISH_GROWING

From /datum/component/fish_growth/finish_growing: (result)

COMSIG_FISH_FORCE_UPDATED

From /obj/item/fish/update_fish_force: (weight_rank, bonus_malus)

COMSIG_FISH_LIFE

From /obj/item/fish/process: (seconds_per_tick)

COMSIG_FISH_RELEASED_INTO

From /obj/item/fish/interact_with_atom_secondary, sent to the target: (fish)

COMSIG_FISH_SOURCE_REWARD_DISPENSED

Fishing challenge completed +Sent to the fisherman when the reward is dispensed: (reward)

COMSIG_FISH_UPDATE_SIZE_AND_WEIGHT

From /obj/item/fish/update_size_and_weight: (new_size, new_weight)

COMSIG_GENERATE_REAGENTS_TO_ADD

From /obj/item/fish/generate_reagents_to_add, which returns a holder when the fish is eaten or composted for example: (list/reagents)

COMSIG_MOB_BEGIN_FISHING

From /datum/fishing_challenge/New: (datum/fishing_challenge/challenge)

COMSIG_MOB_BEGIN_FISHING_MINIGAME

From /datum/fishing_challenge/start_minigame_phase: (datum/fishing_challenge/challenge)

COMSIG_MOB_COMPLETE_FISHING

From /datum/fishing_challenge/completed: (datum/fishing_challenge/challenge, win)

COMSIG_NPC_FISHING

Called when an ai-controlled mob interacts with the fishing spot

COMSIG_PRE_FISHING

Called when you try to use fishing rod on anything

COMSIG_TRY_INSERTING_IN_AQUARIUM

Called on aquarium/attackby: (aquarium)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_food.html b/code/__DEFINES/dcs/signals/signals_food.html new file mode 100644 index 0000000000000..477e02a124e80 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_food.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_food.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_food.dm

COMSIG_FOOD_EATENFrom datum/component/edible/proc/TakeBite: (mob/living/eater, mob/feeder, bitecount, bitesize)
COMSIG_FOOD_CROSSEDFrom base of datum/component/edible/on_entered: (mob/crosser, bitecount)
COMSIG_FOOD_CONSUMEDFrom base of Component/edible/On_Consume: (mob/living/eater, mob/living/feeder)
COMSIG_PILL_CONSUMEDcalled when a pill is injested (mob/living/eater, mob/living/feeder)
COMSIG_ITEM_USED_AS_INGREDIENTcalled when an item is used as an ingredient: (atom/customized)
COMSIG_FOOD_INGREDIENT_ADDEDcalled when an edible ingredient is added: (datum/component/edible/ingredient)
COMSIG_FOOD_GET_EXTRA_COMPLEXITYfrom base of /datum/component/edible/get_recipe_complexity(): (list/extra_complexity)
COMSIG_ITEM_FRIEDAn item becomes fried - From /datum/element/fried_item/Attach: (fry_time)
COMSIG_ITEM_ENTERED_FRYERAn item entering the deep frying (not fried yet) - From obj/machinery/deepfryer/start_fry: ()
COMSIG_ITEM_MICROWAVE_ACTcalled on item when microwaved (): (obj/machinery/microwave/microwave, mob/microwaver)
COMPONENT_MICROWAVE_SUCCESSReturn on success - that is, a microwaved item was produced
COMPONENT_MICROWAVE_BAD_RECIPEReturned on "failure" - an item was produced but it was the default fail recipe
COMSIG_ITEM_MICROWAVE_COOKEDcalled on item when created through microwaving (): (obj/machinery/microwave/M, cooking_efficiency)
COMSIG_ITEM_MICROWAVE_COOKED_FROMcalled on the ingredient through microwawing: (result)
COMSIG_ITEM_GRILL_PLACEDCalled when an object is placed onto a griddle
COMSIG_ITEM_GRILL_TURNED_ONCalled when a griddle is turned on
COMSIG_ITEM_GRILL_TURNED_OFFCalled when a griddle is turned off
COMSIG_ITEM_GRILL_PROCESSCalled when an object is grilled ontop of a griddle
COMPONENT_HANDLED_GRILLINGReturn to not burn the item
COMSIG_ITEM_GRILLEDCalled when an object is turned into another item through grilling ontop of a griddle
COMSIG_ITEM_BARBEQUE_GRILLEDCalled when the object is grilled by the grill (not to be confused by the griddle, but oh gee the two should be merged in one)
COMPONENT_HANDLED_BAKINGReturn to not burn the item
COMPONENT_BAKING_GOOD_RESULTReturn if the result of the baking was a good thing
COMPONENT_BAKING_BAD_RESULTReturn if the result of the baking was a bad thing / failuire
COMSIG_ITEM_BAKEDCalled when an object is turned into another item through baking in an oven
COMSIG_GLASS_DRANKfrom base of obj/item/reagent_containers/cup/attack(): (mob/M, mob/user)

Define Details

COMPONENT_BAKING_BAD_RESULT

Return if the result of the baking was a bad thing / failuire

COMPONENT_BAKING_GOOD_RESULT

Return if the result of the baking was a good thing

COMPONENT_HANDLED_BAKING

Return to not burn the item

COMPONENT_HANDLED_GRILLING

Return to not burn the item

COMPONENT_MICROWAVE_BAD_RECIPE

Returned on "failure" - an item was produced but it was the default fail recipe

COMPONENT_MICROWAVE_SUCCESS

Return on success - that is, a microwaved item was produced

COMSIG_FOOD_CONSUMED

From base of Component/edible/On_Consume: (mob/living/eater, mob/living/feeder)

COMSIG_FOOD_CROSSED

From base of datum/component/edible/on_entered: (mob/crosser, bitecount)

COMSIG_FOOD_EATEN

From datum/component/edible/proc/TakeBite: (mob/living/eater, mob/feeder, bitecount, bitesize)

COMSIG_FOOD_GET_EXTRA_COMPLEXITY

from base of /datum/component/edible/get_recipe_complexity(): (list/extra_complexity)

COMSIG_FOOD_INGREDIENT_ADDED

called when an edible ingredient is added: (datum/component/edible/ingredient)

COMSIG_GLASS_DRANK

from base of obj/item/reagent_containers/cup/attack(): (mob/M, mob/user)

COMSIG_ITEM_BAKED

Called when an object is turned into another item through baking in an oven

COMSIG_ITEM_BARBEQUE_GRILLED

Called when the object is grilled by the grill (not to be confused by the griddle, but oh gee the two should be merged in one)

COMSIG_ITEM_ENTERED_FRYER

An item entering the deep frying (not fried yet) - From obj/machinery/deepfryer/start_fry: ()

COMSIG_ITEM_FRIED

An item becomes fried - From /datum/element/fried_item/Attach: (fry_time)

COMSIG_ITEM_GRILLED

Called when an object is turned into another item through grilling ontop of a griddle

COMSIG_ITEM_GRILL_PLACED

Called when an object is placed onto a griddle

COMSIG_ITEM_GRILL_PROCESS

Called when an object is grilled ontop of a griddle

COMSIG_ITEM_GRILL_TURNED_OFF

Called when a griddle is turned off

COMSIG_ITEM_GRILL_TURNED_ON

Called when a griddle is turned on

COMSIG_ITEM_MICROWAVE_ACT

called on item when microwaved (): (obj/machinery/microwave/microwave, mob/microwaver)

COMSIG_ITEM_MICROWAVE_COOKED

called on item when created through microwaving (): (obj/machinery/microwave/M, cooking_efficiency)

COMSIG_ITEM_MICROWAVE_COOKED_FROM

called on the ingredient through microwawing: (result)

COMSIG_ITEM_USED_AS_INGREDIENT

called when an item is used as an ingredient: (atom/customized)

COMSIG_PILL_CONSUMED

called when a pill is injested (mob/living/eater, mob/living/feeder)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_gib.html b/code/__DEFINES/dcs/signals/signals_gib.html new file mode 100644 index 0000000000000..e6363523f55ef --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_gib.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_gib.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_gib.dm

COMSIG_GIBS_STREAKfrom base of /obj/effect/decal/cleanable/blood/gibs/streak(): (list/directions, list/diseases)
COMSIG_STEP_ON_BLOODCalled on mobs when they step in blood. (blood_amount, blood_state, list/blood_DNA)

Define Details

COMSIG_GIBS_STREAK

from base of /obj/effect/decal/cleanable/blood/gibs/streak(): (list/directions, list/diseases)

COMSIG_STEP_ON_BLOOD

Called on mobs when they step in blood. (blood_amount, blood_state, list/blood_DNA)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_global.html b/code/__DEFINES/dcs/signals/signals_global.html new file mode 100644 index 0000000000000..e73ceb2bd9ed4 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_global.html @@ -0,0 +1,5 @@ +code/__DEFINES/dcs/signals/signals_global.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_global.dm

COMSIG_AREA_CREATEDcalled after a successful area creation by a mob: (area/created_area, list/area/old_areas, mob/creator)
COMSIG_GLOB_NEW_Zfrom base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args)
COMSIG_GLOB_EXPANDED_WORLD_BOUNDSsent after world.maxx and/or world.maxy are expanded: (has_exapnded_world_maxx, has_expanded_world_maxy)
COMSIG_GLOB_VAR_EDITcalled after a successful var edit somewhere in the world: (list/args)
COMSIG_GLOB_EXPLOSIONcalled after an explosion happened : (epicenter, devastation_range, heavy_impact_range, light_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range)
COMSIG_GLOB_MOB_CREATEDCalled from base of /mob/Initialise : (mob)
COMSIG_GLOB_MOB_DEATHmob died somewhere : (mob/living, gibbed)
COMSIG_GLOB_LIVING_SAY_SPECIALglobal living say plug - use sparingly: (mob/speaker , message)
COMSIG_GLOB_PLAY_CINEMATICcalled by datum/cinematic/play() : (datum/cinematic/new_cinematic)
COMSIG_GLOB_BUTTON_PRESSEDingame button pressed (/obj/machinery/button/button)
COMSIG_GLOB_JOB_AFTER_SPAWNjob subsystem has spawned and equipped a new mob
COMSIG_GLOB_JOB_AFTER_LATEJOIN_SPAWNjob datum has been called to deal with the aftermath of a latejoin spawn
COMSIG_GLOB_CREWMEMBER_JOINEDcrewmember joined the game (mob/living, rank)
COMSIG_GLOB_PRE_RANDOM_EVENTRandom event is trying to roll. (/datum/round_event_control/random_event) +Called by (/datum/round_event_control/preRunEvent).
CANCEL_PRE_RANDOM_EVENTDo not allow this random event to continue.
COMSIG_GLOB_RANDOM_EVENTCalled by (/datum/round_event_control/run_event).
CANCEL_RANDOM_EVENTDo not allow this random event to continue.
COMSIG_GLOB_CARBON_THROW_THINGa person somewhere has thrown something : (mob/living/carbon/carbon_thrower, target)
COMSIG_GLOB_TRAPDOOR_LINKa trapdoor remote has sent out a signal to link with a trapdoor
LINKED_UPsuccessfully linked to a trapdoor!
COMSIG_GLOB_NEW_ITEMan obj/item is created! (obj/item/created_item)
COMSIG_GLOB_ATOM_AFTER_POST_INITcalled post /obj/item initialize (obj/item/created_item)
COMSIG_GLOB_NEW_MACHINEan obj/machinery is created! (obj/machinery/created_machine)
COMSIG_GLOB_CLIENT_CONNECTa client (re)connected, after all /client/New() checks have passed : (client/connected_client)
COMSIG_WEATHER_TELEGRAPHa weather event of some kind occurred
COMSIG_GLOB_ALARM_FIREAn alarm of some form was sent (datum/alarm_handler/source, alarm_type, area/source_area)
COMSIG_GLOB_ALARM_CLEARAn alarm of some form was cleared (datum/alarm_handler/source, alarm_type, area/source_area)
COMSIG_GLOB_MOB_LOGGED_INglobal mob logged in signal! (/mob/added_player)
COMSIG_GLOB_NUKE_DEVICE_ARMEDglobal signal sent when a nuclear device is armed (/obj/machinery/nuclearbomb/nuke/exploding_nuke)
COMSIG_GLOB_NUKE_DEVICE_DISARMEDglobal signal sent when a nuclear device is disarmed (/obj/machinery/nuclearbomb/nuke/disarmed_nuke)
COMSIG_GLOB_NUKE_DEVICE_DETONATINGglobal signal sent when a nuclear device is detonating (/obj/machinery/nuclearbomb/nuke/exploding_nuke)
COMSIG_GLOB_PUZZLE_COMPLETEDGlobal signal sent when a puzzle piece is completed (light mechanism, etc.) (try_id)
COMSIG_GLOB_STATION_NAME_CHANGEDGlobal signal called after the station changes its name. +(new_name, old_name)
COMSIG_GLOB_PRE_JOBS_ASSIGNEDGlobal signal sent before we decide what job everyone has
COMSIG_GLOB_NULLROD_PICKEDglobal signal when a global nullrod type is picked
COMSIG_LIGHT_DEBUG_DISABLEDGlobal signal when light debugging is canceled
COMSIG_STARLIGHT_COLOR_CHANGEDGlobal signal when starlight color is changed (old_star, new_star)
COMSIG_RELIGIOUS_SECT_CHANGEDGlobal signal sent when a religious sect is chosen
COMSIG_RELIGIOUS_SECT_RESETGlobal signal sent when a religious sect is reset
COMSIG_NARSIE_SUMMON_UPDATEGlobal signal sent when narsie summon count is updated: (new count)
COMSIG_RULESET_BODY_GENERATED_FROM_GHOSTSGlobal signal sent when a mob is spawned from a ghost in a dynamic ruleset (mob/spawned_mob)

Define Details

CANCEL_PRE_RANDOM_EVENT

Do not allow this random event to continue.

CANCEL_RANDOM_EVENT

Do not allow this random event to continue.

COMSIG_AREA_CREATED

called after a successful area creation by a mob: (area/created_area, list/area/old_areas, mob/creator)

COMSIG_GLOB_ALARM_CLEAR

An alarm of some form was cleared (datum/alarm_handler/source, alarm_type, area/source_area)

COMSIG_GLOB_ALARM_FIRE

An alarm of some form was sent (datum/alarm_handler/source, alarm_type, area/source_area)

COMSIG_GLOB_ATOM_AFTER_POST_INIT

called post /obj/item initialize (obj/item/created_item)

COMSIG_GLOB_BUTTON_PRESSED

ingame button pressed (/obj/machinery/button/button)

COMSIG_GLOB_CARBON_THROW_THING

a person somewhere has thrown something : (mob/living/carbon/carbon_thrower, target)

COMSIG_GLOB_CLIENT_CONNECT

a client (re)connected, after all /client/New() checks have passed : (client/connected_client)

COMSIG_GLOB_CREWMEMBER_JOINED

crewmember joined the game (mob/living, rank)

COMSIG_GLOB_EXPANDED_WORLD_BOUNDS

sent after world.maxx and/or world.maxy are expanded: (has_exapnded_world_maxx, has_expanded_world_maxy)

COMSIG_GLOB_EXPLOSION

called after an explosion happened : (epicenter, devastation_range, heavy_impact_range, light_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range)

COMSIG_GLOB_JOB_AFTER_LATEJOIN_SPAWN

job datum has been called to deal with the aftermath of a latejoin spawn

COMSIG_GLOB_JOB_AFTER_SPAWN

job subsystem has spawned and equipped a new mob

COMSIG_GLOB_LIVING_SAY_SPECIAL

global living say plug - use sparingly: (mob/speaker , message)

COMSIG_GLOB_MOB_CREATED

Called from base of /mob/Initialise : (mob)

COMSIG_GLOB_MOB_DEATH

mob died somewhere : (mob/living, gibbed)

COMSIG_GLOB_MOB_LOGGED_IN

global mob logged in signal! (/mob/added_player)

COMSIG_GLOB_NEW_ITEM

an obj/item is created! (obj/item/created_item)

COMSIG_GLOB_NEW_MACHINE

an obj/machinery is created! (obj/machinery/created_machine)

COMSIG_GLOB_NEW_Z

from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args)

COMSIG_GLOB_NUKE_DEVICE_ARMED

global signal sent when a nuclear device is armed (/obj/machinery/nuclearbomb/nuke/exploding_nuke)

COMSIG_GLOB_NUKE_DEVICE_DETONATING

global signal sent when a nuclear device is detonating (/obj/machinery/nuclearbomb/nuke/exploding_nuke)

COMSIG_GLOB_NUKE_DEVICE_DISARMED

global signal sent when a nuclear device is disarmed (/obj/machinery/nuclearbomb/nuke/disarmed_nuke)

COMSIG_GLOB_NULLROD_PICKED

global signal when a global nullrod type is picked

COMSIG_GLOB_PLAY_CINEMATIC

called by datum/cinematic/play() : (datum/cinematic/new_cinematic)

COMSIG_GLOB_PRE_JOBS_ASSIGNED

Global signal sent before we decide what job everyone has

COMSIG_GLOB_PRE_RANDOM_EVENT

Random event is trying to roll. (/datum/round_event_control/random_event) +Called by (/datum/round_event_control/preRunEvent).

COMSIG_GLOB_PUZZLE_COMPLETED

Global signal sent when a puzzle piece is completed (light mechanism, etc.) (try_id)

COMSIG_GLOB_RANDOM_EVENT

Called by (/datum/round_event_control/run_event).

COMSIG_GLOB_STATION_NAME_CHANGED

Global signal called after the station changes its name. +(new_name, old_name)

a trapdoor remote has sent out a signal to link with a trapdoor

COMSIG_GLOB_VAR_EDIT

called after a successful var edit somewhere in the world: (list/args)

COMSIG_LIGHT_DEBUG_DISABLED

Global signal when light debugging is canceled

COMSIG_NARSIE_SUMMON_UPDATE

Global signal sent when narsie summon count is updated: (new count)

COMSIG_RELIGIOUS_SECT_CHANGED

Global signal sent when a religious sect is chosen

COMSIG_RELIGIOUS_SECT_RESET

Global signal sent when a religious sect is reset

COMSIG_RULESET_BODY_GENERATED_FROM_GHOSTS

Global signal sent when a mob is spawned from a ghost in a dynamic ruleset (mob/spawned_mob)

COMSIG_STARLIGHT_COLOR_CHANGED

Global signal when starlight color is changed (old_star, new_star)

COMSIG_WEATHER_TELEGRAPH

a weather event of some kind occurred

LINKED_UP

successfully linked to a trapdoor!

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_global_object.html b/code/__DEFINES/dcs/signals/signals_global_object.html new file mode 100644 index 0000000000000..14d2c9a9cab9c --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_global_object.html @@ -0,0 +1,3 @@ +code/__DEFINES/dcs/signals/signals_global_object.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_global_object.dm

COMSIG_OCCUPATIONS_SETUPsignals from globally accessible objects +from SSJob whenever setup_occupations() is called, all occupations are set
COMSIG_OCCUPATIONS_DIVIDEDfrom SSJob when divide_occupations() is called
COMSIG_SUN_MOVEDfrom SSsun when the sun changes position : (azimuth)
COMSIG_SECURITY_LEVEL_CHANGEDfrom SSsecurity_level when the security level changes : (new_level)
COMSIG_SUPPLY_SHUTTLE_BUYfrom SSshuttle when the supply shuttle starts spawning orders : ()

Define Details

COMSIG_OCCUPATIONS_DIVIDED

from SSJob when divide_occupations() is called

COMSIG_OCCUPATIONS_SETUP

signals from globally accessible objects +from SSJob whenever setup_occupations() is called, all occupations are set

COMSIG_SECURITY_LEVEL_CHANGED

from SSsecurity_level when the security level changes : (new_level)

COMSIG_SUN_MOVED

from SSsun when the sun changes position : (azimuth)

COMSIG_SUPPLY_SHUTTLE_BUY

from SSshuttle when the supply shuttle starts spawning orders : ()

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_heretic.html b/code/__DEFINES/dcs/signals/signals_heretic.html new file mode 100644 index 0000000000000..005f927c7de77 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_heretic.html @@ -0,0 +1,3 @@ +code/__DEFINES/dcs/signals/signals_heretic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_heretic.dm

COMSIG_HERETIC_MANSUS_GRASP_ATTACKHeretic signals +From /datum/action/cooldown/spell/touch/mansus_grasp/cast_on_hand_hit : (mob/living/source, mob/living/target)
COMPONENT_BLOCK_HAND_USEDefault behavior is to use the hand, so return this to blocks the mansus fist from being consumed after use.
COMSIG_HERETIC_MANSUS_GRASP_ATTACK_SECONDARYFrom /datum/action/cooldown/spell/touch/mansus_grasp/cast_on_secondary_hand_hit : (mob/living/source, atom/target)
COMPONENT_USE_HANDDefault behavior is to continue attack chain and do nothing else, so return this to use up the hand after use.
COMSIG_HERETIC_BLADE_ATTACKFrom /obj/item/melee/sickly_blade/afterattack : (mob/living/source, mob/living/target)
COMSIG_HERETIC_RANGED_BLADE_ATTACKFrom /obj/item/melee/sickly_blade/ranged_interact_with_atom (without proximity) : (mob/living/source, mob/living/target)

Define Details

COMPONENT_BLOCK_HAND_USE

Default behavior is to use the hand, so return this to blocks the mansus fist from being consumed after use.

COMPONENT_USE_HAND

Default behavior is to continue attack chain and do nothing else, so return this to use up the hand after use.

COMSIG_HERETIC_BLADE_ATTACK

From /obj/item/melee/sickly_blade/afterattack : (mob/living/source, mob/living/target)

COMSIG_HERETIC_MANSUS_GRASP_ATTACK

Heretic signals +From /datum/action/cooldown/spell/touch/mansus_grasp/cast_on_hand_hit : (mob/living/source, mob/living/target)

COMSIG_HERETIC_MANSUS_GRASP_ATTACK_SECONDARY

From /datum/action/cooldown/spell/touch/mansus_grasp/cast_on_secondary_hand_hit : (mob/living/source, atom/target)

COMSIG_HERETIC_RANGED_BLADE_ATTACK

From /obj/item/melee/sickly_blade/ranged_interact_with_atom (without proximity) : (mob/living/source, mob/living/target)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_hud.html b/code/__DEFINES/dcs/signals/signals_hud.html new file mode 100644 index 0000000000000..eb5a7046a6c70 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_hud.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_hud.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_hud.dm

COMSIG_HUD_EYE_CHANGEDSent from /datum/hud/proc/on_eye_change(): (atom/old_eye, atom/new_eye)
COMSIG_HUD_OFFSET_CHANGEDSent from /datum/hud/proc/eye_z_changed() : (old_offset, new_offset)
COMSIG_HUD_LOBBY_COLLAPSEDSent from /atom/movable/screen/lobby/button/collapse/proc/collapse_buttons() : ()
COMSIG_HUD_LOBBY_EXPANDEDSent from /atom/movable/screen/lobby/button/collapse/proc/expand_buttons() : ()
COMSIG_HUD_PLAYER_READY_TOGGLESent from /atom/movable/screen/lobby/button/ready/Click() : ()

Define Details

COMSIG_HUD_EYE_CHANGED

Sent from /datum/hud/proc/on_eye_change(): (atom/old_eye, atom/new_eye)

COMSIG_HUD_LOBBY_COLLAPSED

Sent from /atom/movable/screen/lobby/button/collapse/proc/collapse_buttons() : ()

COMSIG_HUD_LOBBY_EXPANDED

Sent from /atom/movable/screen/lobby/button/collapse/proc/expand_buttons() : ()

COMSIG_HUD_OFFSET_CHANGED

Sent from /datum/hud/proc/eye_z_changed() : (old_offset, new_offset)

COMSIG_HUD_PLAYER_READY_TOGGLE

Sent from /atom/movable/screen/lobby/button/ready/Click() : ()

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_hydroponic.html b/code/__DEFINES/dcs/signals/signals_hydroponic.html new file mode 100644 index 0000000000000..e131a8d42cb9a --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_hydroponic.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_hydroponic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_hydroponic.dm

COMSIG_PLANT_ON_SLIPcalled when a plant with slippery skin is slipped on (mob/victim)
COMSIG_PLANT_ON_SQUASHcalled when a plant with liquid contents is squashed on (atom/target)
COMSIG_PLANT_ON_BACKFIREcalled when a plant backfires via the backfire element (mob/victim)
COMSIG_SEED_ON_GROWcalled when a seed grows in a tray (obj/machinery/hydroponics)
COMSIG_SEED_ON_PLANTEDcalled when a seed is planted in a tray (obj/machinery/hydroponics)
COMSIG_HYDROTRAY_SET_SEEDfrom base of /obj/machinery/hydroponics/set_seed() : (obj/item/new_seed)
COMSIG_HYDROTRAY_SET_SELFSUSTAININGfrom base of /obj/machinery/hydroponics/set_self_sustaining() : (new_value)
COMSIG_HYDROTRAY_SET_WEEDLEVELfrom base of /obj/machinery/hydroponics/set_weedlevel() : (new_value)
COMSIG_HYDROTRAY_SET_PESTLEVELfrom base of /obj/machinery/hydroponics/set_pestlevel() : (new_value)
COMSIG_HYDROTRAY_SET_WATERLEVELfrom base of /obj/machinery/hydroponics/set_waterlevel() : (new_value)
COMSIG_HYDROTRAY_SET_PLANT_HEALTHfrom base of /obj/machinery/hydroponics/set_plant_health() : (new_value)
COMSIG_HYDROTRAY_SET_TOXICfrom base of /obj/machinery/hydroponics/set_toxic() : (new_value)
COMSIG_HYDROTRAY_SET_PLANT_STATUSfrom base of /obj/machinery/hydroponics/set_plant_status() : (new_value)
COMSIG_HYDROTRAY_ON_HARVESTfrom base of /obj/machinery/hydroponics/update_tray() : (mob/user, product_count)
COMSIG_HYDROTRAY_PLANT_DEATHfrom base of /obj/machinery/hydroponics/plantdies()

Define Details

COMSIG_HYDROTRAY_ON_HARVEST

from base of /obj/machinery/hydroponics/update_tray() : (mob/user, product_count)

COMSIG_HYDROTRAY_PLANT_DEATH

from base of /obj/machinery/hydroponics/plantdies()

COMSIG_HYDROTRAY_SET_PESTLEVEL

from base of /obj/machinery/hydroponics/set_pestlevel() : (new_value)

COMSIG_HYDROTRAY_SET_PLANT_HEALTH

from base of /obj/machinery/hydroponics/set_plant_health() : (new_value)

COMSIG_HYDROTRAY_SET_PLANT_STATUS

from base of /obj/machinery/hydroponics/set_plant_status() : (new_value)

COMSIG_HYDROTRAY_SET_SEED

from base of /obj/machinery/hydroponics/set_seed() : (obj/item/new_seed)

COMSIG_HYDROTRAY_SET_SELFSUSTAINING

from base of /obj/machinery/hydroponics/set_self_sustaining() : (new_value)

COMSIG_HYDROTRAY_SET_TOXIC

from base of /obj/machinery/hydroponics/set_toxic() : (new_value)

COMSIG_HYDROTRAY_SET_WATERLEVEL

from base of /obj/machinery/hydroponics/set_waterlevel() : (new_value)

COMSIG_HYDROTRAY_SET_WEEDLEVEL

from base of /obj/machinery/hydroponics/set_weedlevel() : (new_value)

COMSIG_PLANT_ON_BACKFIRE

called when a plant backfires via the backfire element (mob/victim)

COMSIG_PLANT_ON_SLIP

called when a plant with slippery skin is slipped on (mob/victim)

COMSIG_PLANT_ON_SQUASH

called when a plant with liquid contents is squashed on (atom/target)

COMSIG_SEED_ON_GROW

called when a seed grows in a tray (obj/machinery/hydroponics)

COMSIG_SEED_ON_PLANTED

called when a seed is planted in a tray (obj/machinery/hydroponics)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_janitor.html b/code/__DEFINES/dcs/signals/signals_janitor.html new file mode 100644 index 0000000000000..61129c6b8d25c --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_janitor.html @@ -0,0 +1,3 @@ +code/__DEFINES/dcs/signals/signals_janitor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_janitor.dm

COMSIG_COMPONENT_CLEAN_ACTfrom base of obj/item/attack(): (/mob/living/target, /mob/living/user) +Called on an object to "clean it", such as removing blood decals/overlays, etc. The clean types bitfield is sent with it. Return TRUE if any cleaning was necessary and thus performed.
COMPONENT_CLEANEDReturned by cleanable components when they are cleaned.
COMSIG_VACUUM_BAG_ATTACHCalled on a bag being attached to a vacuum parent
COMSIG_VACUUM_BAG_DETACHCalled on a bag being detached from a vacuum parent
COMSIG_TURF_IS_WET(): Returns bitflags of wet values.
COMSIG_TURF_MAKE_DRY(max_strength, immediate, duration_decrease = INFINITY): Returns bool.

Define Details

COMPONENT_CLEANED

Returned by cleanable components when they are cleaned.

COMSIG_COMPONENT_CLEAN_ACT

from base of obj/item/attack(): (/mob/living/target, /mob/living/user) +Called on an object to "clean it", such as removing blood decals/overlays, etc. The clean types bitfield is sent with it. Return TRUE if any cleaning was necessary and thus performed.

COMSIG_TURF_IS_WET

(): Returns bitflags of wet values.

COMSIG_TURF_MAKE_DRY

(max_strength, immediate, duration_decrease = INFINITY): Returns bool.

COMSIG_VACUUM_BAG_ATTACH

Called on a bag being attached to a vacuum parent

COMSIG_VACUUM_BAG_DETACH

Called on a bag being detached from a vacuum parent

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_key.html b/code/__DEFINES/dcs/signals/signals_key.html new file mode 100644 index 0000000000000..ff31def880826 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_key.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_key.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_key.dm

COMSIG_ON_DEPARTMENT_ACCESSCalled when a keycard is sending a department's access. (obj/machinery/keycard_auth/source, list/region_access)

Define Details

COMSIG_ON_DEPARTMENT_ACCESS

Called when a keycard is sending a department's access. (obj/machinery/keycard_auth/source, list/region_access)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_ladder.html b/code/__DEFINES/dcs/signals/signals_ladder.html new file mode 100644 index 0000000000000..0de1baefd52fa --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_ladder.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_ladder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_ladder.dm

COMSIG_LADDER_TRAVELCalled on a mob attempting to use a ladder to go in either direction. (entrance_ladder, exit_ladder, going_up)

Define Details

COMSIG_LADDER_TRAVEL

Called on a mob attempting to use a ladder to go in either direction. (entrance_ladder, exit_ladder, going_up)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_lazy_templates.html b/code/__DEFINES/dcs/signals/signals_lazy_templates.html new file mode 100644 index 0000000000000..eb768d79653cf --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_lazy_templates.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_lazy_templates.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_lazy_templates.dm

COMSIG_LAZY_TEMPLATE_LOADEDFired on the lazy template datum when the template is finished loading. (list/loaded_atom_movables, list/loaded_turfs, list/loaded_areas)

Define Details

COMSIG_LAZY_TEMPLATE_LOADED

Fired on the lazy template datum when the template is finished loading. (list/loaded_atom_movables, list/loaded_turfs, list/loaded_areas)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_leash.html b/code/__DEFINES/dcs/signals/signals_leash.html new file mode 100644 index 0000000000000..55c5a47ebaf6f --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_leash.html @@ -0,0 +1,7 @@ +code/__DEFINES/dcs/signals/signals_leash.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_leash.dm

COMSIG_LEASH_FORCE_TELEPORTCalled when a /datum/component/leash must forcibly teleport the parent to the owner. +Fired on the object with the leash component.
COMSIG_LEASH_PATH_STARTEDCalled when a /datum/component/leash plans on pathfinding to the target, if out of range. +Fired on the object with the leash component.
COMSIG_LEASH_PATH_COMPLETECalled when a /datum/component/leash finishes its pathfinding to the target. +Fired on the object with the leash component.

Define Details

COMSIG_LEASH_FORCE_TELEPORT

Called when a /datum/component/leash must forcibly teleport the parent to the owner. +Fired on the object with the leash component.

COMSIG_LEASH_PATH_COMPLETE

Called when a /datum/component/leash finishes its pathfinding to the target. +Fired on the object with the leash component.

COMSIG_LEASH_PATH_STARTED

Called when a /datum/component/leash plans on pathfinding to the target, if out of range. +Fired on the object with the leash component.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_lift.html b/code/__DEFINES/dcs/signals/signals_lift.html new file mode 100644 index 0000000000000..e4a3bba31098f --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_lift.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_lift.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_lift.dm

COMSIG_LIFT_SET_DIRECTIONSent from /datum/transport_controller when a normal lift starts or stops going up or down. (direction if started or 0 if stopped)

Define Details

COMSIG_LIFT_SET_DIRECTION

Sent from /datum/transport_controller when a normal lift starts or stops going up or down. (direction if started or 0 if stopped)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_light_eater.html b/code/__DEFINES/dcs/signals/signals_light_eater.html new file mode 100644 index 0000000000000..02dafde40ade2 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_light_eater.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_light_eater.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_light_eater.dm

COMSIG_LIGHT_EATER_QUEUEfrom base of /datum/element/light_eater/proc/table_buffet: (list/light_queue, datum/light_eater)
COMSIG_LIGHT_EATER_ACTfrom base of /datum/element/light_eater/proc/devour: (datum/light_eater)
COMPONENT_BLOCK_LIGHT_EATERPrevents the default light eater behavior from running in case of immunity or custom behavior
COMSIG_LIGHT_EATER_DEVOURfrom base of /datum/element/light_eater/proc/devour: (atom/eaten_light)

Define Details

COMPONENT_BLOCK_LIGHT_EATER

Prevents the default light eater behavior from running in case of immunity or custom behavior

COMSIG_LIGHT_EATER_ACT

from base of /datum/element/light_eater/proc/devour: (datum/light_eater)

COMSIG_LIGHT_EATER_DEVOUR

from base of /datum/element/light_eater/proc/devour: (atom/eaten_light)

COMSIG_LIGHT_EATER_QUEUE

from base of /datum/element/light_eater/proc/table_buffet: (list/light_queue, datum/light_eater)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_market.html b/code/__DEFINES/dcs/signals/signals_market.html new file mode 100644 index 0000000000000..3a6eb07e5afec --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_market.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_market.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_market.dm

COMSIG_MARKET_ITEM_SPAWNEDFrom /datum/market_item/spawn_item(): (uplink, shipping_method, shipping_loc)

Define Details

COMSIG_MARKET_ITEM_SPAWNED

From /datum/market_item/spawn_item(): (uplink, shipping_method, shipping_loc)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_material_container.html b/code/__DEFINES/dcs/signals/signals_material_container.html new file mode 100644 index 0000000000000..56716d2557800 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_material_container.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_material_container.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_material_container.dm

COMSIG_MATCONTAINER_MAT_CHECKCalled from datum/component/material_container/proc/can_hold_material() : (mat)
COMSIG_MATCONTAINER_PRE_USER_INSERTCalled from datum/component/material_container/proc/user_insert() : (target_item, user)
COMSIG_MATCONTAINER_ITEM_CONSUMEDCalled from datum/component/material_container/proc/insert_item() : (item, primary_mat, mats_consumed, material_amount, context)
COMSIG_MATCONTAINER_SHEETS_RETRIEVEDCalled from datum/component/material_container/proc/retrieve_sheets() : (new_sheets, context)
COMSIG_SILO_ITEM_CONSUMEDCalled from /obj/machinery/ore_silo/on_item_consumed() : (container, item_inserted, last_inserted_id, mats_consumed, amount_inserted)

Define Details

COMSIG_MATCONTAINER_ITEM_CONSUMED

Called from datum/component/material_container/proc/insert_item() : (item, primary_mat, mats_consumed, material_amount, context)

COMSIG_MATCONTAINER_MAT_CHECK

Called from datum/component/material_container/proc/can_hold_material() : (mat)

COMSIG_MATCONTAINER_PRE_USER_INSERT

Called from datum/component/material_container/proc/user_insert() : (target_item, user)

COMSIG_MATCONTAINER_SHEETS_RETRIEVED

Called from datum/component/material_container/proc/retrieve_sheets() : (new_sheets, context)

COMSIG_SILO_ITEM_CONSUMED

Called from /obj/machinery/ore_silo/on_item_consumed() : (container, item_inserted, last_inserted_id, mats_consumed, amount_inserted)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_medical.html b/code/__DEFINES/dcs/signals/signals_medical.html new file mode 100644 index 0000000000000..568ad2c2d5c1b --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_medical.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_medical.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_medical.dm

COMSIG_MOB_SURGERY_STARTEDFrom /datum/surgery/New(): (datum/surgery/surgery, surgery_location (body zone), obj/item/bodypart/targeted_limb)
COMSIG_MOB_SURGERY_STEP_SUCCESSFrom /datum/surgery_step/success(): (datum/surgery_step/step, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results)
COMSIG_DEFIBRILLATOR_PRE_HELP_ZAPFrom /obj/item/shockpaddles/do_help, after the defib do_after is complete, but before any effects are applied: (mob/living/defibber, obj/item/shockpaddles/source)
COMPONENT_DEFIB_STOPReturn to stop default defib handling
COMSIG_DEFIBRILLATOR_SUCCESSFrom /obj/item/shockpaddles/proc/do_success(): (obj/item/shockpaddles/source)
COMSIG_SURGERY_STARTINGFrom /datum/surgery/can_start(): (mob/source, datum/surgery/surgery, mob/living/patient)

Define Details

COMPONENT_DEFIB_STOP

Return to stop default defib handling

COMSIG_DEFIBRILLATOR_PRE_HELP_ZAP

From /obj/item/shockpaddles/do_help, after the defib do_after is complete, but before any effects are applied: (mob/living/defibber, obj/item/shockpaddles/source)

COMSIG_DEFIBRILLATOR_SUCCESS

From /obj/item/shockpaddles/proc/do_success(): (obj/item/shockpaddles/source)

COMSIG_MOB_SURGERY_STARTED

From /datum/surgery/New(): (datum/surgery/surgery, surgery_location (body zone), obj/item/bodypart/targeted_limb)

COMSIG_MOB_SURGERY_STEP_SUCCESS

From /datum/surgery_step/success(): (datum/surgery_step/step, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results)

COMSIG_SURGERY_STARTING

From /datum/surgery/can_start(): (mob/source, datum/surgery/surgery, mob/living/patient)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_mind.html b/code/__DEFINES/dcs/signals/signals_mind.html new file mode 100644 index 0000000000000..b596ef034373c --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mind.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_mind.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_mind.dm

COMSIG_MIND_TRANSFERREDfrom mind/transfer_to. Sent after the mind has been transferred: (mob/previous_body)
COMSIG_ANTAGONIST_GAINEDCalled on the mind when an antagonist is being gained, after the antagonist list has updated (datum/antagonist/antagonist)
COMSIG_ANTAGONIST_REMOVEDCalled on the mind when an antagonist is being removed, after the antagonist list has updated (datum/antagonist/antagonist)
COMSIG_MOB_ANTAGONIST_REMOVEDCalled on the mob when losing an antagonist datum (datum/antagonist/antagonist)

Define Details

COMSIG_ANTAGONIST_GAINED

Called on the mind when an antagonist is being gained, after the antagonist list has updated (datum/antagonist/antagonist)

COMSIG_ANTAGONIST_REMOVED

Called on the mind when an antagonist is being removed, after the antagonist list has updated (datum/antagonist/antagonist)

COMSIG_MIND_TRANSFERRED

from mind/transfer_to. Sent after the mind has been transferred: (mob/previous_body)

COMSIG_MOB_ANTAGONIST_REMOVED

Called on the mob when losing an antagonist datum (datum/antagonist/antagonist)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_mining.html b/code/__DEFINES/dcs/signals/signals_mining.html new file mode 100644 index 0000000000000..667839fb5fead --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mining.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_mining.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_mining.dm

COMSIG_VENT_WAVE_CONCLUDEDSent from /obj/structure/ore_vent, lets the spawner component know to qdel.
COMSIG_GOLIATH_TENTACLED_GRABBEDFired by a mob which has been grabbed by a goliath
COMSIG_GOLIATH_TENTACLE_RETRACTINGFired by a goliath tentacle which is returning to the earth
COMSIG_BRIMDUST_EXPLOSIONFired by a mob which has triggered a brimdust explosion from itself (not the mobs that get hit)

Define Details

COMSIG_BRIMDUST_EXPLOSION

Fired by a mob which has triggered a brimdust explosion from itself (not the mobs that get hit)

COMSIG_GOLIATH_TENTACLED_GRABBED

Fired by a mob which has been grabbed by a goliath

COMSIG_GOLIATH_TENTACLE_RETRACTING

Fired by a goliath tentacle which is returning to the earth

COMSIG_VENT_WAVE_CONCLUDED

Sent from /obj/structure/ore_vent, lets the spawner component know to qdel.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_ai.html b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_ai.html new file mode 100644 index 0000000000000..44a94fd69436e --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_ai.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_mob/signals_mob_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_mob/signals_mob_ai.dm

COMSIG_AI_BLACKBOARD_KEY_SETSignal sent when a blackboard key is set to a new value
COMSIG_AI_BLACKBOARD_KEY_PRECLEARSignal sent before a blackboard key is cleared
COMSIG_AI_BLACKBOARD_KEY_CLEAREDSignal sent when a blackboard key is cleared
COMSIG_BOT_RESETSignal sent when a bot is reset
COMSIG_BOT_MODE_FLAGS_SETSent off /mob/living/basic/bot/proc/set_mode_flags() : (new_flags)
COMSIG_MOB_AI_MOVEMENT_STARTEDSignal sent off of ai/movement/proc/start_moving_towards

Define Details

COMSIG_AI_BLACKBOARD_KEY_CLEARED

Signal sent when a blackboard key is cleared

COMSIG_AI_BLACKBOARD_KEY_PRECLEAR

Signal sent before a blackboard key is cleared

COMSIG_AI_BLACKBOARD_KEY_SET

Signal sent when a blackboard key is set to a new value

COMSIG_BOT_MODE_FLAGS_SET

Sent off /mob/living/basic/bot/proc/set_mode_flags() : (new_flags)

COMSIG_BOT_RESET

Signal sent when a bot is reset

COMSIG_MOB_AI_MOVEMENT_STARTED

Signal sent off of ai/movement/proc/start_moving_towards

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_arcade.html b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_arcade.html new file mode 100644 index 0000000000000..c1c7f25101b3d --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_arcade.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_mob/signals_mob_arcade.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_mob/signals_mob_arcade.dm

COMSIG_MOB_PLAYED_VIDEOGAMECalled when a mob plays a videogame
COMSIG_MOB_LOST_VIDEOGAMECalled when a mob loses a videogame
COMSIG_MOB_WON_VIDEOGAMECalled when a mob wins a videogame

Define Details

COMSIG_MOB_LOST_VIDEOGAME

Called when a mob loses a videogame

COMSIG_MOB_PLAYED_VIDEOGAME

Called when a mob plays a videogame

COMSIG_MOB_WON_VIDEOGAME

Called when a mob wins a videogame

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_basic.html b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_basic.html new file mode 100644 index 0000000000000..e150526149702 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_basic.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_mob/signals_mob_basic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_mob/signals_mob_basic.dm

COMSIG_BASICMOB_LOOK_DEADSent from /mob/living/basic/proc/look_dead() : ()
COMSIG_BASICMOB_LOOK_ALIVESent from /mob/living/basic/proc/look_alive() : ()
COMSIG_BASICMOB_PRE_ATTACK_RANGEDfrom the ranged_attacks component for basic mobs: (mob/living/basic/firer, atom/target, modifiers)
COMPONENT_CANCEL_RANGED_ATTACKCancel to prevent the attack from happening
COMSIG_BASICMOB_POST_ATTACK_RANGEDfrom the ranged_attacks component for basic mobs: (mob/living/basic/firer, atom/target, modifiers)
COMSIG_NEEDS_NEW_PHRASESent from /datum/ai_planning_subtree/parrot_as_in_repeat() : ()
NO_NEW_PHRASE_AVAILABLECancel to try again later for when we actually get a new phrase
COMSIG_ANIMAL_PETCalled whenever an animal is pet via the /datum/element/pet_bonus element: (mob/living/petter, modifiers)
COMSIG_RAT_INTERACTfrom base of mob/living/basic/regal_rat: (mob/living/basic/regal_rat/king)
COMPONENT_RAT_INTERACTEDIf this is returned, cancel any further interactions.
COMSIG_SLIME_DRAINEDfrom /datum/status_effect/slime_leech: (mob/living/basic/slime/draining_slime)

Define Details

COMPONENT_CANCEL_RANGED_ATTACK

Cancel to prevent the attack from happening

COMPONENT_RAT_INTERACTED

If this is returned, cancel any further interactions.

COMSIG_ANIMAL_PET

Called whenever an animal is pet via the /datum/element/pet_bonus element: (mob/living/petter, modifiers)

COMSIG_BASICMOB_LOOK_ALIVE

Sent from /mob/living/basic/proc/look_alive() : ()

COMSIG_BASICMOB_LOOK_DEAD

Sent from /mob/living/basic/proc/look_dead() : ()

COMSIG_BASICMOB_POST_ATTACK_RANGED

from the ranged_attacks component for basic mobs: (mob/living/basic/firer, atom/target, modifiers)

COMSIG_BASICMOB_PRE_ATTACK_RANGED

from the ranged_attacks component for basic mobs: (mob/living/basic/firer, atom/target, modifiers)

COMSIG_NEEDS_NEW_PHRASE

Sent from /datum/ai_planning_subtree/parrot_as_in_repeat() : ()

COMSIG_RAT_INTERACT

from base of mob/living/basic/regal_rat: (mob/living/basic/regal_rat/king)

COMSIG_SLIME_DRAINED

from /datum/status_effect/slime_leech: (mob/living/basic/slime/draining_slime)

NO_NEW_PHRASE_AVAILABLE

Cancel to try again later for when we actually get a new phrase

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.html b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.html new file mode 100644 index 0000000000000..9251843d3561e --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm

COMSIG_CARBON_PRE_HELPCalled from /datum/species/proc/help : (mob/living/carbon/human/helper, datum/martial_art/helper_style)
COMPONENT_BLOCK_HELP_ACTStops the rest of the help
COMSIG_CARBON_PRE_MISC_HELPCalled from /mob/living/carbon/help_shake_act, before any hugs have occurred. (mob/living/helper)
COMPONENT_BLOCK_MISC_HELPStops the rest of help act (hugging, etc) from occurring
COMSIG_CARBON_HELP_ACTCalled from /mob/living/carbon/help_shake_act on the person being helped, after any hugs have occurred. (mob/living/helper)
COMSIG_CARBON_HELPEDCalled from /mob/living/carbon/help_shake_act on the helper, after any hugs have occurred. (mob/living/helped)
COMSIG_ON_CARBON_SLIPWhen a carbon slips. Called on /turf/open/handle_slip()
COMSIG_CARBON_POST_LOSE_WOUNDCalled after limb AND victim has been unset
COMSIG_ATTEMPT_CARBON_ATTACH_LIMBfrom base of /obj/item/bodypart/proc/can_attach_limb(): (new_limb, special) allows you to fail limb attachment
COMSIG_CARBON_ATTACH_LIMBfrom base of /obj/item/bodypart/proc/try_attach_limb(): (new_limb, special)
COMSIG_BODYPART_ATTACHEDCalled from bodypart being attached /obj/item/bodypart/proc/try_attach_limb(mob/living/carbon/new_owner, special)
COMSIG_CARBON_POST_ATTACH_LIMBfrom base of /obj/item/bodypart/proc/try_attach_limb(): (new_limb, special)
COMSIG_CARBON_LIMB_DAMAGEDfrom /obj/item/bodypart/proc/receive_damage, sent from the limb owner (limb, brute, burn)
COMSIG_BODYPART_GAUZEDfrom /obj/item/bodypart/proc/apply_gauze(/obj/item/stack/gauze): (/obj/item/stack/medical/gauze/applied_gauze, /obj/item/stack/medical/gauze/stack_used)
COMSIG_BODYPART_UNGAUZEDfrom /obj/item/stack/medical/gauze/Destroy(): (/obj/item/stack/medical/gauze/removed_gauze)
COMSIG_BODYPART_CHANGED_OWNERCalled from bodypart changing owner, which could be on attach or detachment. Either argument can be null. (mob/living/carbon/new_owner, mob/living/carbon/old_owner)
COMSIG_BODYPART_UPDATING_HEALTH_HUDCalled from update_health_hud, whenever a bodypart is being updated on the health doll
COMPONENT_OVERRIDE_BODYPART_HEALTH_HUDReturn to override that bodypart's health hud with your own icon
COMSIG_BODYPART_CHECKED_FOR_INJURYCalled from /obj/item/bodypart/check_for_injuries (mob/living/carbon/examiner, list/check_list)
COMSIG_CARBON_CHECKING_BODYPARTCalled from /obj/item/bodypart/check_for_injuries (obj/item/bodypart/examined, list/check_list)
COMSIG_CARBON_REMOVE_LIMBCalled from carbon losing a limb /obj/item/bodypart/proc/drop_limb(obj/item/bodypart/lost_limb, special, dismembered)
COMSIG_CARBON_POST_REMOVE_LIMBCalled from carbon losing a limb /obj/item/bodypart/proc/drop_limb(obj/item/bodypart/lost_limb, special, dismembered)
COMSIG_BODYPART_REMOVEDCalled from bodypart being removed /obj/item/bodypart/proc/drop_limb(mob/living/carbon/old_owner, special, dismembered)
COMSIG_CARBON_SOUNDBANGfrom base of mob/living/carbon/soundbang_act(): (list(intensity))
COMSIG_CARBON_GAIN_ORGANfrom /item/organ/proc/Insert() (/obj/item/organ/)
COMSIG_CARBON_LOSE_ORGANfrom /item/organ/proc/Remove() (/obj/item/organ/)
COMSIG_CARBON_EQUIP_HATfrom /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent)
COMSIG_CARBON_UNEQUIP_HATfrom /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent)
COMSIG_CARBON_UNEQUIP_SHOECOVERfrom /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent)
COMSIG_CARBON_EMBED_RIPdefined twice, in carbon and human's topics, fired when interacting with a valid embedded_object to pull it out (mob/living/carbon/target, /obj/item, /obj/item/bodypart/L)
COMSIG_CARBON_EMBED_REMOVALcalled when removing a given item from a mob, from mob/living/carbon/remove_embedded_object(mob/living/carbon/target, /obj/item)
COMSIG_CARBON_CUFF_ATTEMPTEDCalled when someone attempts to cuff a carbon
COMSIG_CARBON_GAIN_MUTATIONCalled when a carbon mutates (source = dna, mutation = mutation added)
COMSIG_CARBON_LOSE_MUTATIONCalled when a carbon loses a mutation (source = dna, mutation = mutation lose)
COMSIG_CARBON_GAIN_ADDICTIONCalled when a carbon becomes addicted (source = what addiction datum, addicted_mind = mind of the addicted carbon)
COMSIG_CARBON_LOSE_ADDICTIONCalled when a carbon is no longer addicted (source = what addiction datum was lost, addicted_mind = mind of the freed carbon)
COMSIG_CARBON_GAIN_TRAUMACalled when a carbon gets a brain trauma (source = carbon, trauma = what trauma was added) - this is before on_gain()
COMSIG_CARBON_LOSE_TRAUMACalled when a carbon loses a brain trauma (source = carbon, trauma = what trauma was removed)
COMSIG_CARBON_UPDATING_HEALTH_HUDCalled when a carbon's health hud is updated. (source = carbon, shown_health_amount)
COMPONENT_OVERRIDE_HEALTH_HUDReturn if you override the carbon's health hud with something else
COMSIG_CARBON_SANITY_UPDATECalled when a carbon updates their sanity (source = carbon)
COMSIG_CARBON_ATTEMPT_BREATHECalled when a carbon attempts to breath, before the breath has actually occurred
COMSIG_CARBON_PRE_BREATHECalled when a carbon breathes, before the breath has actually occurred
COMSIG_CARBON_MOOD_UPDATECalled when a carbon updates their mood
COMSIG_CARBON_ATTEMPT_EATCalled when a carbon attempts to eat (eating)
COMSIG_CARBON_VOMITEDCalled when a carbon vomits : (distance, force)
COMSIG_CARBON_APPLY_OVERLAYCalled from apply_overlay(cache_index, overlay)
COMSIG_CARBON_REMOVE_OVERLAYCalled from remove_overlay(cache_index, overlay)
COMSIG_HUMAN_PREFS_APPLIEDApplied preferences to a human
COMSIG_JOB_RECEIVEDWhenever equip_rank is called, called after job is set
COMSIG_HUMAN_CORETEMP_CHANGEfrom /mob/living/carbon/human/proc/set_coretemperature(): (oldvalue, newvalue)
COMSIG_HUMAN_BURNINGfrom /datum/species/handle_fire. Called when the human is set on fire and burning clothes and stuff
COMSIG_HUMAN_FORCESAYfrom /mob/living/carbon/human/proc/force_say(): ()
COMSIG_HUMAN_GET_VISIBLE_NAMEfrom /mob/living/carbon/human/get_visible_name(), not sent if the mob has TRAIT_UNKNOWN: (identity)
COMSIG_HUMAN_GET_FORCED_NAMEfrom /mob/living/carbon/human/get_id_name; only returns if the mob has TRAIT_UNKNOWN and it's being overridden: (identity)
COMSIG_HUMAN_MONKEYIZECalled when a human turns into a monkey, from /mob/living/carbon/proc/finish_monkeyize()
COMSIG_MONKEY_HUMANIZECalled when a monkey turns into a human, from /mob/living/carbon/proc/finish_humanize(species)
COMSIG_HUMAN_SUICIDE_ACTFrom mob/living/carbon/human/suicide()
COMSIG_CARBON_REGENERATE_LIMBSfrom base of /mob/living/carbon/regenerate_limbs(): (excluded_limbs)
COMSIG_CARBON_ITEM_GIVENfrom /atom/movable/screen/alert/give/proc/handle_transfer(): (taker, item)
COMSIG_HUMAN_ON_HANDLE_BLOODSent from /mob/living/carbon/human/handle_blood(): (seconds_per_tick, times_fired)
HANDLE_BLOOD_HANDLEDReturn to prevent all default blood handling
HANDLE_BLOOD_NO_NUTRITION_DRAINReturn to skip default nutrition -> blood conversion
HANDLE_BLOOD_NO_OXYLOSSReturn to skip oxyloss and similar effects from blood level
COMSIG_CARBON_LIMPINGfrom /datum/status_effect/limp/proc/check_step(mob/whocares, OldLoc, Dir, forced) iodk where it should go
COMSIG_MUTATION_GAINEDCalled from on_acquiring(mob/living/carbon/human/acquirer)
COMSIG_MUTATION_LOSTCalled from on_losing(mob/living/carbon/human/owner)

Define Details

COMPONENT_BLOCK_HELP_ACT

Stops the rest of the help

COMPONENT_BLOCK_MISC_HELP

Stops the rest of help act (hugging, etc) from occurring

COMPONENT_OVERRIDE_BODYPART_HEALTH_HUD

Return to override that bodypart's health hud with your own icon

COMPONENT_OVERRIDE_HEALTH_HUD

Return if you override the carbon's health hud with something else

COMSIG_ATTEMPT_CARBON_ATTACH_LIMB

from base of /obj/item/bodypart/proc/can_attach_limb(): (new_limb, special) allows you to fail limb attachment

COMSIG_BODYPART_ATTACHED

Called from bodypart being attached /obj/item/bodypart/proc/try_attach_limb(mob/living/carbon/new_owner, special)

COMSIG_BODYPART_CHANGED_OWNER

Called from bodypart changing owner, which could be on attach or detachment. Either argument can be null. (mob/living/carbon/new_owner, mob/living/carbon/old_owner)

COMSIG_BODYPART_CHECKED_FOR_INJURY

Called from /obj/item/bodypart/check_for_injuries (mob/living/carbon/examiner, list/check_list)

COMSIG_BODYPART_GAUZED

from /obj/item/bodypart/proc/apply_gauze(/obj/item/stack/gauze): (/obj/item/stack/medical/gauze/applied_gauze, /obj/item/stack/medical/gauze/stack_used)

COMSIG_BODYPART_REMOVED

Called from bodypart being removed /obj/item/bodypart/proc/drop_limb(mob/living/carbon/old_owner, special, dismembered)

COMSIG_BODYPART_UNGAUZED

from /obj/item/stack/medical/gauze/Destroy(): (/obj/item/stack/medical/gauze/removed_gauze)

COMSIG_BODYPART_UPDATING_HEALTH_HUD

Called from update_health_hud, whenever a bodypart is being updated on the health doll

COMSIG_CARBON_APPLY_OVERLAY

Called from apply_overlay(cache_index, overlay)

COMSIG_CARBON_ATTACH_LIMB

from base of /obj/item/bodypart/proc/try_attach_limb(): (new_limb, special)

COMSIG_CARBON_ATTEMPT_BREATHE

Called when a carbon attempts to breath, before the breath has actually occurred

COMSIG_CARBON_ATTEMPT_EAT

Called when a carbon attempts to eat (eating)

COMSIG_CARBON_CHECKING_BODYPART

Called from /obj/item/bodypart/check_for_injuries (obj/item/bodypart/examined, list/check_list)

COMSIG_CARBON_CUFF_ATTEMPTED

Called when someone attempts to cuff a carbon

COMSIG_CARBON_EMBED_REMOVAL

called when removing a given item from a mob, from mob/living/carbon/remove_embedded_object(mob/living/carbon/target, /obj/item)

COMSIG_CARBON_EMBED_RIP

defined twice, in carbon and human's topics, fired when interacting with a valid embedded_object to pull it out (mob/living/carbon/target, /obj/item, /obj/item/bodypart/L)

COMSIG_CARBON_EQUIP_HAT

from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent)

COMSIG_CARBON_GAIN_ADDICTION

Called when a carbon becomes addicted (source = what addiction datum, addicted_mind = mind of the addicted carbon)

COMSIG_CARBON_GAIN_MUTATION

Called when a carbon mutates (source = dna, mutation = mutation added)

COMSIG_CARBON_GAIN_ORGAN

from /item/organ/proc/Insert() (/obj/item/organ/)

COMSIG_CARBON_GAIN_TRAUMA

Called when a carbon gets a brain trauma (source = carbon, trauma = what trauma was added) - this is before on_gain()

COMSIG_CARBON_HELPED

Called from /mob/living/carbon/help_shake_act on the helper, after any hugs have occurred. (mob/living/helped)

COMSIG_CARBON_HELP_ACT

Called from /mob/living/carbon/help_shake_act on the person being helped, after any hugs have occurred. (mob/living/helper)

COMSIG_CARBON_ITEM_GIVEN

from /atom/movable/screen/alert/give/proc/handle_transfer(): (taker, item)

COMSIG_CARBON_LIMB_DAMAGED

from /obj/item/bodypart/proc/receive_damage, sent from the limb owner (limb, brute, burn)

COMSIG_CARBON_LIMPING

from /datum/status_effect/limp/proc/check_step(mob/whocares, OldLoc, Dir, forced) iodk where it should go

COMSIG_CARBON_LOSE_ADDICTION

Called when a carbon is no longer addicted (source = what addiction datum was lost, addicted_mind = mind of the freed carbon)

COMSIG_CARBON_LOSE_MUTATION

Called when a carbon loses a mutation (source = dna, mutation = mutation lose)

COMSIG_CARBON_LOSE_ORGAN

from /item/organ/proc/Remove() (/obj/item/organ/)

COMSIG_CARBON_LOSE_TRAUMA

Called when a carbon loses a brain trauma (source = carbon, trauma = what trauma was removed)

COMSIG_CARBON_MOOD_UPDATE

Called when a carbon updates their mood

COMSIG_CARBON_POST_ATTACH_LIMB

from base of /obj/item/bodypart/proc/try_attach_limb(): (new_limb, special)

COMSIG_CARBON_POST_LOSE_WOUND

Called after limb AND victim has been unset

COMSIG_CARBON_POST_REMOVE_LIMB

Called from carbon losing a limb /obj/item/bodypart/proc/drop_limb(obj/item/bodypart/lost_limb, special, dismembered)

COMSIG_CARBON_PRE_BREATHE

Called when a carbon breathes, before the breath has actually occurred

COMSIG_CARBON_PRE_HELP

Called from /datum/species/proc/help : (mob/living/carbon/human/helper, datum/martial_art/helper_style)

COMSIG_CARBON_PRE_MISC_HELP

Called from /mob/living/carbon/help_shake_act, before any hugs have occurred. (mob/living/helper)

COMSIG_CARBON_REGENERATE_LIMBS

from base of /mob/living/carbon/regenerate_limbs(): (excluded_limbs)

COMSIG_CARBON_REMOVE_LIMB

Called from carbon losing a limb /obj/item/bodypart/proc/drop_limb(obj/item/bodypart/lost_limb, special, dismembered)

COMSIG_CARBON_REMOVE_OVERLAY

Called from remove_overlay(cache_index, overlay)

COMSIG_CARBON_SANITY_UPDATE

Called when a carbon updates their sanity (source = carbon)

COMSIG_CARBON_SOUNDBANG

from base of mob/living/carbon/soundbang_act(): (list(intensity))

COMSIG_CARBON_UNEQUIP_HAT

from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent)

COMSIG_CARBON_UNEQUIP_SHOECOVER

from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent)

COMSIG_CARBON_UPDATING_HEALTH_HUD

Called when a carbon's health hud is updated. (source = carbon, shown_health_amount)

COMSIG_CARBON_VOMITED

Called when a carbon vomits : (distance, force)

COMSIG_HUMAN_BURNING

from /datum/species/handle_fire. Called when the human is set on fire and burning clothes and stuff

COMSIG_HUMAN_CORETEMP_CHANGE

from /mob/living/carbon/human/proc/set_coretemperature(): (oldvalue, newvalue)

COMSIG_HUMAN_FORCESAY

from /mob/living/carbon/human/proc/force_say(): ()

COMSIG_HUMAN_GET_FORCED_NAME

from /mob/living/carbon/human/get_id_name; only returns if the mob has TRAIT_UNKNOWN and it's being overridden: (identity)

COMSIG_HUMAN_GET_VISIBLE_NAME

from /mob/living/carbon/human/get_visible_name(), not sent if the mob has TRAIT_UNKNOWN: (identity)

COMSIG_HUMAN_MONKEYIZE

Called when a human turns into a monkey, from /mob/living/carbon/proc/finish_monkeyize()

COMSIG_HUMAN_ON_HANDLE_BLOOD

Sent from /mob/living/carbon/human/handle_blood(): (seconds_per_tick, times_fired)

COMSIG_HUMAN_PREFS_APPLIED

Applied preferences to a human

COMSIG_HUMAN_SUICIDE_ACT

From mob/living/carbon/human/suicide()

COMSIG_JOB_RECEIVED

Whenever equip_rank is called, called after job is set

COMSIG_MONKEY_HUMANIZE

Called when a monkey turns into a human, from /mob/living/carbon/proc/finish_humanize(species)

COMSIG_MUTATION_GAINED

Called from on_acquiring(mob/living/carbon/human/acquirer)

COMSIG_MUTATION_LOST

Called from on_losing(mob/living/carbon/human/owner)

COMSIG_ON_CARBON_SLIP

When a carbon slips. Called on /turf/open/handle_slip()

HANDLE_BLOOD_HANDLED

Return to prevent all default blood handling

HANDLE_BLOOD_NO_NUTRITION_DRAIN

Return to skip default nutrition -> blood conversion

HANDLE_BLOOD_NO_OXYLOSS

Return to skip oxyloss and similar effects from blood level

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_guardian.html b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_guardian.html new file mode 100644 index 0000000000000..b1adae7c69ecb --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_guardian.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_mob/signals_mob_guardian.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_mob/signals_mob_guardian.dm

COMSIG_GUARDIAN_MANIFESTEDSent when a guardian is manifested
COMSIG_GUARDIAN_RECALLEDSent when a guardian is recalled
COMSIG_GUARDIAN_ASSASSIN_REVEALEDSent when an assassin guardian is forced to exit stealth

Define Details

COMSIG_GUARDIAN_ASSASSIN_REVEALED

Sent when an assassin guardian is forced to exit stealth

COMSIG_GUARDIAN_MANIFESTED

Sent when a guardian is manifested

COMSIG_GUARDIAN_RECALLED

Sent when a guardian is recalled

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.html b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.html new file mode 100644 index 0000000000000..35648bf324bc5 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.html @@ -0,0 +1,9 @@ +code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm

COMSIG_LIVING_TRY_PUT_IN_HANDcalled on /living when attempting to pick up an item, from base of /mob/living/put_in_hand_check(): (obj/item/I)
COMPONENT_LIVING_CANT_PUT_IN_HANDCan't pick up
COMSIG_ORGAN_IMPLANTEDCalled on the organ when it is implanted into someone (mob/living/carbon/receiver)
COMSIG_ORGAN_REMOVEDCalled on the organ when it is removed from someone (mob/living/carbon/old_owner)
COMSIG_ORGAN_BEING_REPLACEDCalled when an organ is being regenerated with a new copy in species regenerate_organs (obj/item/organ/replacement)
COMSIG_ORGAN_SURGICALLY_REMOVEDCalled when an organ gets surgically removed (mob/living/user, mob/living/carbon/old_owner, target_zone, obj/item/tool)
COMSIG_ORGAN_SURGICALLY_INSERTEDCalled when an organ gets surgically removed (mob/living/user, mob/living/carbon/new_owner, target_zone, obj/item/tool)
COMSIG_MOVE_INTENT_TOGGLEDCalled when movement intent is toggled.
COMSIG_LIVING_POST_UPDATE_TRANSFORMfrom base of mob/update_transform()
COMSIG_LIVING_ENTER_STAMCRITfrom /datum/status_effect/incapacitating/stamcrit/on_apply()
COMSIG_LIVING_DOORCRUSHEDfrom /obj/structure/door/crush(): (mob/living/crushed, /obj/machinery/door/crushing_door)
COMSIG_LIVING_RESISTfrom base of mob/living/resist() (/mob/living)
COMSIG_LIVING_IGNITEDfrom base of mob/living/ignite_mob() (/mob/living)
COMSIG_LIVING_EXTINGUISHEDfrom base of mob/living/extinguish_mob() (/mob/living)
COMSIG_LIVING_ELECTROCUTE_ACTfrom base of mob/living/electrocute_act(): (shock_damage, source, siemens_coeff, flags)
COMPONENT_LIVING_BLOCK_SHOCKBlock the electrocute_act() proc from proceeding
COMSIG_LIVING_SHOCK_PREVENTEDsent when items with siemen coeff. of 0 block a shock: (power_source, source, siemens_coeff, dist_check)
COMSIG_LIVING_MINOR_SHOCKsent by stuff like stunbatons and tasers: ()
COMSIG_LIVING_REVIVEfrom base of mob/living/revive() (full_heal, admin_revive)
COMSIG_LIVING_SET_BUCKLEDfrom base of mob/living/set_buckled(): (new_buckled)
COMSIG_LIVING_SET_BODY_POSITIONfrom base of mob/living/set_body_position()
COMSIG_LIVING_TRY_SYRINGE_INJECTSent to a mob being injected with a syringe when the do_after initiates
COMSIG_LIVING_TRY_SYRINGE_WITHDRAWSent to a mob being withdrawn from with a syringe when the do_after initiates
COMSIG_LIVING_LIMBLESS_SLOWDOWNfrom base of mob/living/set_usable_legs()
COMSIG_LIVING_LIFEFrom living/Life(). (deltatime, times_fired)
COMPONENT_LIVING_CANCEL_LIFE_PROCESSINGBlock the Life() proc from proceeding... this should really only be done in some really wacky situations.
COMSIG_LIVING_RESTINGFrom living/set_resting(): (new_resting, silent, instant)
COMSIG_LIVING_BANEDfrom base of element/bane/activate(): (item/weapon, mob/user)
COMSIG_OBJECT_PRE_BANINGfrom base of element/bane/activate(): (item/weapon, mob/user)
COMSIG_OBJECT_ON_BANINGfrom base of element/bane/activate(): (item/weapon, mob/user)
COMPONENT_IGNORE_CHANGEReturned from all the following messages if you actually aren't going to apply any change
COMSIG_LIVING_ADJUST_BRUTE_DAMAGESend when bruteloss is modified (type, amount, forced)
COMSIG_LIVING_ADJUST_BURN_DAMAGESend when fireloss is modified (type, amount, forced)
COMSIG_LIVING_ADJUST_OXY_DAMAGESend when oxyloss is modified (type, amount, forced)
COMSIG_LIVING_ADJUST_TOX_DAMAGESend when toxloss is modified (type, amount, forced)
COMSIG_LIVING_ADJUST_STAMINA_DAMAGESend when staminaloss is modified (type, amount, forced)
COMSIG_LIVING_ADJUST_STANDARD_DAMAGE_TYPESList of signals sent when you receive any damage except stamina
COMSIG_LIVING_ADJUST_ALL_DAMAGE_TYPESList of signals sent when you receive any kind of damage at all
COMSIG_LIVING_HEALTH_UPDATEfrom base of mob/living/updatehealth()
COMSIG_LIVING_DEATHfrom base of mob/living/death(): (gibbed)
COMSIG_LIVING_GIBBEDfrom base of mob/living/gib(): (drop_bitflags) +Note that it is fired regardless of whether the mob was dead beforehand or not.
COMSIG_LIVING_WRITE_MEMORYfrom base of mob/living/Write_Memory(): (dead, gibbed)
COMSIG_LIVING_HEALTHSCANfrom /proc/healthscan(): (list/scan_results, advanced, mob/user, mode) +Consumers are allowed to mutate the scan_results list to add extra information
COMSIG_LIVING_STATUS_STUNfrom base of mob/living/Stun() (amount, ignore_canstun)
COMSIG_LIVING_STATUS_KNOCKDOWNfrom base of mob/living/Knockdown() (amount, ignore_canstun)
COMSIG_LIVING_STATUS_PARALYZEfrom base of mob/living/Paralyze() (amount, ignore_canstun)
COMSIG_LIVING_STATUS_IMMOBILIZEfrom base of mob/living/Immobilize() (amount, ignore_canstun)
COMSIG_LIVING_STATUS_INCAPACITATEfrom base of mob/living/incapacitate() (amount, ignore_canstun)
COMSIG_LIVING_STATUS_UNCONSCIOUSfrom base of mob/living/Unconscious() (amount, ignore_canstun)
COMSIG_LIVING_STATUS_SLEEPfrom base of mob/living/Sleeping() (amount, ignore_canstun)
COMSIG_LIVING_GENERIC_STUN_CHECKfrom mob/living/check_stun_immunity(): (check_flags)
COMSIG_LIVING_CAN_TRACKfrom base of /mob/living/can_track(): (mob/user)
COMSIG_LIVING_POST_FULLY_HEALfrom end of fully_heal(): (heal_flags)
COMSIG_LIVING_HANDLE_BREATHINGfrom start of /mob/living/handle_breathing(): (seconds_per_tick, times_fired)
COMSIG_LIVING_SLAM_TABLEfrom /obj/item/hand_item/slapper/attack_atom(): (source=mob/living/slammer, obj/structure/table/slammed_table)
COMSIG_LIVING_SLAP_MOBfrom /obj/item/hand_item/slapper/attack(): (source=mob/living/slapper, mob/living/slapped)
COMSIG_LIVING_EARLY_UNARMED_ATTACKfrom /mob/living/*/UnarmedAttack(), before sending COMSIG_LIVING_UNARMED_ATTACK: (mob/living/source, atom/target, proximity, modifiers) +The only reason this exists is so hulk can fire before Fists of the North Star. +Note that this is called before /mob/living/proc/can_unarmed_attack is called, so be wary of that.
COMSIG_LIVING_UNARMED_ATTACKfrom mob/living/*/UnarmedAttack(): (mob/living/source, atom/target, proximity, modifiers)
COMSIG_LIVING_PRE_MOB_BUMPFrom base of mob/living/MobBump(): (mob/bumped, mob/living/bumper)
COMSIG_LIVING_MOB_BUMPFrom base of mob/living/MobBump() (mob/living)
COMSIG_LIVING_MOB_BUMPEDFrom base of mob/living/MobBump() (mob/living)
COMSIG_LIVING_WALL_BUMPFrom base of mob/living/Bump() (turf/closed)
COMSIG_LIVING_WALL_EXITEDFrom base of turf/closed/Exited() (turf/closed)
COMSIG_LIVING_Z_IMPACTFrom base of mob/living/ZImpactDamage() (mob/living, levels, turf/t)
ZIMPACT_CANCEL_DAMAGEJust for the signal return, does not run normal living handing of z fall damage for mobs
ZIMPACT_NO_MESSAGEDo not show default z-impact message
ZIMPACT_NO_SPINDo not do the spin animation when landing
COMSIG_MOB_TRY_SPEECHFrom mob/living/try_speak(): (message, ignore_spam, forced)
COMPONENT_IGNORE_CAN_SPEAKReturn to skip can_speak check, IE, forcing success. Overrides below.
COMPONENT_CANNOT_SPEAKReturn if the mob cannot speak.
COMSIG_LIVING_TREAT_MESSAGEFrom mob/living/treat_message(): (list/message_args)
TREAT_MESSAGE_ARGThe index of message_args that corresponds to the actual message
COMSIG_LIVING_MOB_PAINTEDFrom obj/item/toy/crayon/spraycan
COMSIG_LIVING_RETURN_FROM_CAPTUREFrom obj/closet/supplypod/return_victim: (turf/destination)
COMSIG_LIVING_PRE_WABBAJACKEDFrom mob/living/proc/wabbajack(): (randomize_type)
STOP_WABBAJACKReturn to stop the rest of the wabbajack from triggering.
COMSIG_LIVING_ON_WABBAJACKEDFrom mob/living/proc/on_wabbajack(): (mob/living/new_mob)
COMSIG_LIVING_SHAPESHIFTEDFrom /datum/status_effect/shapechange_mob/on_apply(): (mob/living/shape)
COMSIG_LIVING_UNSHAPESHIFTEDFrom /datum/status_effect/shapechange_mob/after_unchange(): (mob/living/caster)
COMSIG_LIVING_CULT_SACRIFICEDFrom /obj/effect/rune/convert/do_sacrifice() : (list/invokers)
STOP_SACRIFICEReturn to stop the sac from occurring
SILENCE_SACRIFICE_MESSAGEDon't send a message for sacrificing this thing, we have our own
SILENCE_NONTARGET_SACRIFICE_MESSAGEDon't send a message for sacrificing this thing UNLESS it's the cult target
DUST_SACRIFICEDusts the target instead of gibbing them (no soulstone)
COMSIG_LIVING_BEFRIENDEDFrom /mob/living/befriend() : (mob/living/new_friend)
COMSIG_LIVING_PICKED_UP_ITEMFrom /obj/item/proc/pickup(): (/obj/item/picked_up_item)
COMSIG_LIVING_UNFRIENDEDFrom /mob/living/unfriend() : (mob/living/old_friend)
COMSIG_LIVING_RESONATOR_BURSTFrom /obj/effect/temp_visual/resonance/burst() : (mob/creator, mob/living/hit_living)
COMSIG_LIVING_PROJECTILE_PARRIEDFrom /obj/projectile/on_parry() : (obj/projectile/parried_projectile)
INTERCEPT_PARRY_EFFECTSReturn to prevent the projectile from executing any code in on_parry()
COMSIG_LIVING_DEFUSED_GIBTONITEFrom /turf/closed/mineral/gibtonite/defuse() : (det_time)
COMSIG_LIVING_CRUSHER_DETONATEFrom /obj/item/kinetic_crusher/afterattack() : (mob/living/target, obj/item/kinetic_crusher/crusher, backstabbed)
COMSIG_LIVING_DISCOVERED_GEYSERFrom /obj/structure/geyser/attackby() : (obj/structure/geyser/geyser)
COMSIG_LIVING_CLIMB_TREEFrom /datum/ai/behavior/climb_tree/perform() : (mob/living/basic/living_pawn)
COMSIG_LIVING_CHECK_BLOCKfrom /mob/living/proc/check_block(): (atom/hit_by, damage, attack_text, attack_type, armour_penetration, damage_type)
COMSIG_LIVING_DISARM_HITHit by successful disarm attack (mob/living/attacker, zone_targeted, item/weapon)
COMSIG_LIVING_DISARM_PRESHOVEBefore a living mob is shoved, sent to the turf we're trying to shove onto (mob/living/shover, mob/living/target)
COMSIG_LIVING_DISARM_COLLIDEWhen a living mob is disarmed, this is sent to the turf we're trying to shove onto (mob/living/shover, mob/living/target, shove_blocked)
COMSIG_MOB_GAINED_CHAIN_TAILSent on a mob from /datum/component/mob_chain when component is attached with it as the "front" : (mob/living/basic/tail)
COMSIG_MOB_LOST_CHAIN_TAILSent on a mob from /datum/component/mob_chain when component is detached from it as the "front" : (mob/living/basic/tail)
COMSIG_MOB_CHAIN_CONTRACTSent from a 'contract chain' button on a mob chain
COMSIG_LIVING_PILL_CONSUMEDSent from obj/item/reagent_containers/pill/on_consumption: (obj/item/reagent_containers/pill/pill, mob/feeder)
COMSIG_MOB_REMOVING_CUFFSSent from a mob to their loc when starting to remove cuffs on itself
COMSIG_MOB_BLOCK_CUFF_REMOVALSent as a reply to above from any atom that wishs to stop self-cuff removal
COMSIG_LIVING_GRABSent to a mob grabbing another mob: (mob/living/grabbing)
COMSIG_LIVING_FINISH_EATCalled when living finish eat (/datum/component/edible/proc/On_Consume)
COMSIG_MOB_PRE_EATFrom /datum/element/basic_eating/try_eating()
COMSIG_MOB_CANCEL_EATcancel eating attempt
COMSIG_MOB_ATEFrom /datum/element/basic_eating/finish_eating()
COMSIG_LIVING_THROW_MODE_TOGGLEFrom mob/living/carbon/proc/throw_mode_on and throw_mode_off
COMSIG_MOB_HAPPINESS_CHANGEFrom /datum/component/happiness()
COMSIG_MOB_BATONEDFrom /obj/item/melee/baton/baton_effect(): (datum/source, mob/living/user, /obj/item/melee/baton)
COMSIG_MOB_ENSLAVED_TOSent to the mob when their mind is slaved
COMSIG_LIVING_ATTACK_ATOMFrom /obj/item/proc/attack_atom: (mob/living/attacker, atom/attacked)

Define Details

COMPONENT_CANNOT_SPEAK

Return if the mob cannot speak.

COMPONENT_IGNORE_CAN_SPEAK

Return to skip can_speak check, IE, forcing success. Overrides below.

COMPONENT_IGNORE_CHANGE

Returned from all the following messages if you actually aren't going to apply any change

COMPONENT_LIVING_BLOCK_SHOCK

Block the electrocute_act() proc from proceeding

COMPONENT_LIVING_CANCEL_LIFE_PROCESSING

Block the Life() proc from proceeding... this should really only be done in some really wacky situations.

COMPONENT_LIVING_CANT_PUT_IN_HAND

Can't pick up

COMSIG_LIVING_ADJUST_ALL_DAMAGE_TYPES

List of signals sent when you receive any kind of damage at all

COMSIG_LIVING_ADJUST_BRUTE_DAMAGE

Send when bruteloss is modified (type, amount, forced)

COMSIG_LIVING_ADJUST_BURN_DAMAGE

Send when fireloss is modified (type, amount, forced)

COMSIG_LIVING_ADJUST_OXY_DAMAGE

Send when oxyloss is modified (type, amount, forced)

COMSIG_LIVING_ADJUST_STAMINA_DAMAGE

Send when staminaloss is modified (type, amount, forced)

COMSIG_LIVING_ADJUST_STANDARD_DAMAGE_TYPES

List of signals sent when you receive any damage except stamina

COMSIG_LIVING_ADJUST_TOX_DAMAGE

Send when toxloss is modified (type, amount, forced)

COMSIG_LIVING_ATTACK_ATOM

From /obj/item/proc/attack_atom: (mob/living/attacker, atom/attacked)

COMSIG_LIVING_BANED

from base of element/bane/activate(): (item/weapon, mob/user)

COMSIG_LIVING_BEFRIENDED

From /mob/living/befriend() : (mob/living/new_friend)

COMSIG_LIVING_CAN_TRACK

from base of /mob/living/can_track(): (mob/user)

COMSIG_LIVING_CHECK_BLOCK

from /mob/living/proc/check_block(): (atom/hit_by, damage, attack_text, attack_type, armour_penetration, damage_type)

COMSIG_LIVING_CLIMB_TREE

From /datum/ai/behavior/climb_tree/perform() : (mob/living/basic/living_pawn)

COMSIG_LIVING_CRUSHER_DETONATE

From /obj/item/kinetic_crusher/afterattack() : (mob/living/target, obj/item/kinetic_crusher/crusher, backstabbed)

COMSIG_LIVING_CULT_SACRIFICED

From /obj/effect/rune/convert/do_sacrifice() : (list/invokers)

COMSIG_LIVING_DEATH

from base of mob/living/death(): (gibbed)

COMSIG_LIVING_DEFUSED_GIBTONITE

From /turf/closed/mineral/gibtonite/defuse() : (det_time)

COMSIG_LIVING_DISARM_COLLIDE

When a living mob is disarmed, this is sent to the turf we're trying to shove onto (mob/living/shover, mob/living/target, shove_blocked)

COMSIG_LIVING_DISARM_HIT

Hit by successful disarm attack (mob/living/attacker, zone_targeted, item/weapon)

COMSIG_LIVING_DISARM_PRESHOVE

Before a living mob is shoved, sent to the turf we're trying to shove onto (mob/living/shover, mob/living/target)

COMSIG_LIVING_DISCOVERED_GEYSER

From /obj/structure/geyser/attackby() : (obj/structure/geyser/geyser)

COMSIG_LIVING_DOORCRUSHED

from /obj/structure/door/crush(): (mob/living/crushed, /obj/machinery/door/crushing_door)

COMSIG_LIVING_EARLY_UNARMED_ATTACK

from /mob/living/*/UnarmedAttack(), before sending COMSIG_LIVING_UNARMED_ATTACK: (mob/living/source, atom/target, proximity, modifiers) +The only reason this exists is so hulk can fire before Fists of the North Star. +Note that this is called before /mob/living/proc/can_unarmed_attack is called, so be wary of that.

COMSIG_LIVING_ELECTROCUTE_ACT

from base of mob/living/electrocute_act(): (shock_damage, source, siemens_coeff, flags)

COMSIG_LIVING_ENTER_STAMCRIT

from /datum/status_effect/incapacitating/stamcrit/on_apply()

COMSIG_LIVING_EXTINGUISHED

from base of mob/living/extinguish_mob() (/mob/living)

COMSIG_LIVING_FINISH_EAT

Called when living finish eat (/datum/component/edible/proc/On_Consume)

COMSIG_LIVING_GENERIC_STUN_CHECK

from mob/living/check_stun_immunity(): (check_flags)

COMSIG_LIVING_GIBBED

from base of mob/living/gib(): (drop_bitflags) +Note that it is fired regardless of whether the mob was dead beforehand or not.

COMSIG_LIVING_GRAB

Sent to a mob grabbing another mob: (mob/living/grabbing)

COMSIG_LIVING_HANDLE_BREATHING

from start of /mob/living/handle_breathing(): (seconds_per_tick, times_fired)

COMSIG_LIVING_HEALTHSCAN

from /proc/healthscan(): (list/scan_results, advanced, mob/user, mode) +Consumers are allowed to mutate the scan_results list to add extra information

COMSIG_LIVING_HEALTH_UPDATE

from base of mob/living/updatehealth()

COMSIG_LIVING_IGNITED

from base of mob/living/ignite_mob() (/mob/living)

COMSIG_LIVING_LIFE

From living/Life(). (deltatime, times_fired)

COMSIG_LIVING_LIMBLESS_SLOWDOWN

from base of mob/living/set_usable_legs()

COMSIG_LIVING_MINOR_SHOCK

sent by stuff like stunbatons and tasers: ()

COMSIG_LIVING_MOB_BUMP

From base of mob/living/MobBump() (mob/living)

COMSIG_LIVING_MOB_BUMPED

From base of mob/living/MobBump() (mob/living)

COMSIG_LIVING_MOB_PAINTED

From obj/item/toy/crayon/spraycan

COMSIG_LIVING_ON_WABBAJACKED

From mob/living/proc/on_wabbajack(): (mob/living/new_mob)

COMSIG_LIVING_PICKED_UP_ITEM

From /obj/item/proc/pickup(): (/obj/item/picked_up_item)

COMSIG_LIVING_PILL_CONSUMED

Sent from obj/item/reagent_containers/pill/on_consumption: (obj/item/reagent_containers/pill/pill, mob/feeder)

COMSIG_LIVING_POST_FULLY_HEAL

from end of fully_heal(): (heal_flags)

COMSIG_LIVING_POST_UPDATE_TRANSFORM

from base of mob/update_transform()

COMSIG_LIVING_PRE_MOB_BUMP

From base of mob/living/MobBump(): (mob/bumped, mob/living/bumper)

COMSIG_LIVING_PRE_WABBAJACKED

From mob/living/proc/wabbajack(): (randomize_type)

COMSIG_LIVING_PROJECTILE_PARRIED

From /obj/projectile/on_parry() : (obj/projectile/parried_projectile)

COMSIG_LIVING_RESIST

from base of mob/living/resist() (/mob/living)

COMSIG_LIVING_RESONATOR_BURST

From /obj/effect/temp_visual/resonance/burst() : (mob/creator, mob/living/hit_living)

COMSIG_LIVING_RESTING

From living/set_resting(): (new_resting, silent, instant)

COMSIG_LIVING_RETURN_FROM_CAPTURE

From obj/closet/supplypod/return_victim: (turf/destination)

COMSIG_LIVING_REVIVE

from base of mob/living/revive() (full_heal, admin_revive)

COMSIG_LIVING_SET_BODY_POSITION

from base of mob/living/set_body_position()

COMSIG_LIVING_SET_BUCKLED

from base of mob/living/set_buckled(): (new_buckled)

COMSIG_LIVING_SHAPESHIFTED

From /datum/status_effect/shapechange_mob/on_apply(): (mob/living/shape)

COMSIG_LIVING_SHOCK_PREVENTED

sent when items with siemen coeff. of 0 block a shock: (power_source, source, siemens_coeff, dist_check)

COMSIG_LIVING_SLAM_TABLE

from /obj/item/hand_item/slapper/attack_atom(): (source=mob/living/slammer, obj/structure/table/slammed_table)

COMSIG_LIVING_SLAP_MOB

from /obj/item/hand_item/slapper/attack(): (source=mob/living/slapper, mob/living/slapped)

COMSIG_LIVING_STATUS_IMMOBILIZE

from base of mob/living/Immobilize() (amount, ignore_canstun)

COMSIG_LIVING_STATUS_INCAPACITATE

from base of mob/living/incapacitate() (amount, ignore_canstun)

COMSIG_LIVING_STATUS_KNOCKDOWN

from base of mob/living/Knockdown() (amount, ignore_canstun)

COMSIG_LIVING_STATUS_PARALYZE

from base of mob/living/Paralyze() (amount, ignore_canstun)

COMSIG_LIVING_STATUS_SLEEP

from base of mob/living/Sleeping() (amount, ignore_canstun)

COMSIG_LIVING_STATUS_STUN

from base of mob/living/Stun() (amount, ignore_canstun)

COMSIG_LIVING_STATUS_UNCONSCIOUS

from base of mob/living/Unconscious() (amount, ignore_canstun)

COMSIG_LIVING_THROW_MODE_TOGGLE

From mob/living/carbon/proc/throw_mode_on and throw_mode_off

COMSIG_LIVING_TREAT_MESSAGE

From mob/living/treat_message(): (list/message_args)

COMSIG_LIVING_TRY_PUT_IN_HAND

called on /living when attempting to pick up an item, from base of /mob/living/put_in_hand_check(): (obj/item/I)

COMSIG_LIVING_TRY_SYRINGE_INJECT

Sent to a mob being injected with a syringe when the do_after initiates

COMSIG_LIVING_TRY_SYRINGE_WITHDRAW

Sent to a mob being withdrawn from with a syringe when the do_after initiates

COMSIG_LIVING_UNARMED_ATTACK

from mob/living/*/UnarmedAttack(): (mob/living/source, atom/target, proximity, modifiers)

COMSIG_LIVING_UNFRIENDED

From /mob/living/unfriend() : (mob/living/old_friend)

COMSIG_LIVING_UNSHAPESHIFTED

From /datum/status_effect/shapechange_mob/after_unchange(): (mob/living/caster)

COMSIG_LIVING_WALL_BUMP

From base of mob/living/Bump() (turf/closed)

COMSIG_LIVING_WALL_EXITED

From base of turf/closed/Exited() (turf/closed)

COMSIG_LIVING_WRITE_MEMORY

from base of mob/living/Write_Memory(): (dead, gibbed)

COMSIG_LIVING_Z_IMPACT

From base of mob/living/ZImpactDamage() (mob/living, levels, turf/t)

COMSIG_MOB_ATE

From /datum/element/basic_eating/finish_eating()

COMSIG_MOB_BATONED

From /obj/item/melee/baton/baton_effect(): (datum/source, mob/living/user, /obj/item/melee/baton)

COMSIG_MOB_BLOCK_CUFF_REMOVAL

Sent as a reply to above from any atom that wishs to stop self-cuff removal

COMSIG_MOB_CANCEL_EAT

cancel eating attempt

COMSIG_MOB_CHAIN_CONTRACT

Sent from a 'contract chain' button on a mob chain

COMSIG_MOB_ENSLAVED_TO

Sent to the mob when their mind is slaved

COMSIG_MOB_GAINED_CHAIN_TAIL

Sent on a mob from /datum/component/mob_chain when component is attached with it as the "front" : (mob/living/basic/tail)

COMSIG_MOB_HAPPINESS_CHANGE

From /datum/component/happiness()

COMSIG_MOB_LOST_CHAIN_TAIL

Sent on a mob from /datum/component/mob_chain when component is detached from it as the "front" : (mob/living/basic/tail)

COMSIG_MOB_PRE_EAT

From /datum/element/basic_eating/try_eating()

COMSIG_MOB_REMOVING_CUFFS

Sent from a mob to their loc when starting to remove cuffs on itself

COMSIG_MOB_TRY_SPEECH

From mob/living/try_speak(): (message, ignore_spam, forced)

COMSIG_MOVE_INTENT_TOGGLED

Called when movement intent is toggled.

COMSIG_OBJECT_ON_BANING

from base of element/bane/activate(): (item/weapon, mob/user)

COMSIG_OBJECT_PRE_BANING

from base of element/bane/activate(): (item/weapon, mob/user)

COMSIG_ORGAN_BEING_REPLACED

Called when an organ is being regenerated with a new copy in species regenerate_organs (obj/item/organ/replacement)

COMSIG_ORGAN_IMPLANTED

Called on the organ when it is implanted into someone (mob/living/carbon/receiver)

COMSIG_ORGAN_REMOVED

Called on the organ when it is removed from someone (mob/living/carbon/old_owner)

COMSIG_ORGAN_SURGICALLY_INSERTED

Called when an organ gets surgically removed (mob/living/user, mob/living/carbon/new_owner, target_zone, obj/item/tool)

COMSIG_ORGAN_SURGICALLY_REMOVED

Called when an organ gets surgically removed (mob/living/user, mob/living/carbon/old_owner, target_zone, obj/item/tool)

DUST_SACRIFICE

Dusts the target instead of gibbing them (no soulstone)

INTERCEPT_PARRY_EFFECTS

Return to prevent the projectile from executing any code in on_parry()

SILENCE_NONTARGET_SACRIFICE_MESSAGE

Don't send a message for sacrificing this thing UNLESS it's the cult target

SILENCE_SACRIFICE_MESSAGE

Don't send a message for sacrificing this thing, we have our own

STOP_SACRIFICE

Return to stop the sac from occurring

STOP_WABBAJACK

Return to stop the rest of the wabbajack from triggering.

TREAT_MESSAGE_ARG

The index of message_args that corresponds to the actual message

ZIMPACT_CANCEL_DAMAGE

Just for the signal return, does not run normal living handing of z fall damage for mobs

ZIMPACT_NO_MESSAGE

Do not show default z-impact message

ZIMPACT_NO_SPIN

Do not do the spin animation when landing

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.html b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.html new file mode 100644 index 0000000000000..29f06ab7a06f3 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.html @@ -0,0 +1,13 @@ +code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm

COMSIG_TRY_ALT_ACTIONCalled on user, from base of /datum/strippable_item/perform_alternate_action() (atom/target, action_key)
POST_BASIC_MOB_UPDATE_VARSPEEDCalled on /basic when updating its speed, from base of /mob/living/basic/update_basic_mob_varspeed(): ()
COMSIG_MOB_LOGINfrom base of /mob/Login(): ()
COMSIG_MOB_LOGOUTfrom base of /mob/Logout(): ()
COMSIG_MOB_MIND_INITIALIZEDfrom base of /mob/mind_initialize
COMSIG_MOB_STATCHANGEfrom base of mob/set_stat(): (new_stat, old_stat)
COMSIG_MOB_REAGENT_CHECKfrom base of mob/reagent_check(): (datum/reagent/chem, seconds_per_tick, times_fired)
COMSIG_MOB_STOP_REAGENT_CHECKstops the reagent check call
COMSIG_MOB_CLICKONfrom base of mob/clickon(): (atom/A, params)
COMSIG_MOB_MIDDLECLICKONfrom base of mob/MiddleClickOn(): (atom/A)
COMSIG_MOB_ALTCLICKONfrom base of mob/AltClickOn(): (atom/A)
COMSIG_MOB_ALTCLICKON_SECONDARYfrom base of mob/alt_click_on_secodary(): (atom/A)
COMSIG_MOB_BOT_PRE_STEPFrom base of /mob/living/simple_animal/bot/proc/bot_step()
COMPONENT_MOB_BOT_BLOCK_PRE_STEPShould always match COMPONENT_MOVABLE_BLOCK_PRE_MOVE as these are interchangeable and used to block movement.
COMSIG_MOB_BOT_STEPFrom base of /mob/living/simple_animal/bot/proc/bot_step()
COMSIG_MOB_UPDATE_HELD_ITEMSFrom base of /mob/proc/update_held_items
COMSIG_MOB_CLIENT_PRE_LIVING_MOVEFrom base of /client/Move(): (list/move_args)
COMSIG_MOB_CLIENT_BLOCK_PRE_LIVING_MOVEShould we stop the current living movement attempt
COMSIG_MOB_CLIENT_PRE_NON_LIVING_MOVEFrom base of /client/Move(), invoked when a non-living mob is attempting to move: (list/move_args)
COMSIG_MOB_CLIENT_BLOCK_PRE_NON_LIVING_MOVECancels the move attempt
COMSIG_MOB_CLIENT_PRE_MOVEFrom base of /client/Move(): (new_loc, direction)
COMSIG_MOB_CLIENT_BLOCK_PRE_MOVEShould always match COMPONENT_MOVABLE_BLOCK_PRE_MOVE as these are interchangeable and used to block movement.
MOVE_ARG_NEW_LOCThe argument of move_args which corresponds to the loc we're moving to
MOVE_ARG_DIRECTIONThe argument of move_args which dictates our movement direction
COMSIG_MOB_CLIENT_MOVE_NOGRAVFrom base of /client/Move(): (new_loc, direction)
COMSIG_MOB_CLIENT_MOVEDFrom base of /client/Move(): (direction, old_dir)
COMSIG_MOB_CLIENT_CHANGE_VIEWFrom base of /client/proc/change_view() (mob/source, new_size)
COMSIG_MOB_RESET_PERSPECTIVEFrom base of /mob/proc/reset_perspective() : ()
COMSIG_CLIENT_SET_EYEfrom base of /client/proc/set_eye() : (atom/old_eye, atom/new_eye)
COMSIG_VIEWDATA_UPDATEfrom base of /datum/view_data/proc/afterViewChange() : (view)
COMSIG_DO_AFTER_BEGANSent from /proc/do_after if someone starts a do_after action bar.
COMSIG_DO_AFTER_ENDEDSent from /proc/do_after once a do_after action completes, whether via the bar filling or via interruption.
COMSIG_MOB_MIND_TRANSFERRED_INTOfrom mind/transfer_to. Sent to the receiving mob.
COMSIG_MOB_MIND_TRANSFERRED_OUT_OFfrom mind/transfer_from. Sent to the mob the mind is being transferred out of.
COMSIG_MOB_GHOSTIZEDFrom /mob/proc/ghostize() Called when a mob successfully ghosts
COMSIG_MOB_TRIED_ACCESSfrom base of obj/allowed(mob/M): (/obj) returns ACCESS_ALLOWED if mob has id access to the obj
COMSIG_MOB_RETRIEVE_SIMPLE_ACCESSfrom the component /datum/component/simple_access
COMSIG_MOB_RESTRICT_MAGICfrom base of mob/can_cast_magic(): (mob/user, magic_flags, charge_cost)
COMSIG_MOB_RECEIVE_MAGICfrom base of mob/can_block_magic(): (mob/user, casted_magic_flags, charge_cost)
COMSIG_MOB_HUD_CREATEDfrom base of mob/create_mob_hud(): ()
COMSIG_MOB_HUD_REFRESHEDfrom base of hud/show_to(): (datum/hud/hud_source)
COMSIG_MOB_SIGHT_CHANGEfrom base of mob/set_sight(): (new_sight, old_sight)
COMSIG_MOB_SEE_INVIS_CHANGEfrom base of mob/set_invis_see(): (new_invis, old_invis)
COMSIG_MOB_APPLY_DAMAGE_MODIFIERSfrom /mob/living/proc/apply_damage(): (list/damage_mods, damage, damagetype, def_zone, sharpness, attack_direction, attacking_item) +allows you to add multiplicative damage modifiers to the damage mods argument to adjust incoming damage +not sent if the apply damage call was forced
COMSIG_MOB_APPLY_DAMAGEfrom base of /mob/living/proc/apply_damage(): (damage, damagetype, def_zone, blocked, wound_bonus, bare_wound_bonus, sharpness, attack_direction, attacking_item)
COMSIG_MOB_AFTER_APPLY_DAMAGEfrom /mob/living/proc/apply_damage(): (damage, damagetype, def_zone, blocked, wound_bonus, bare_wound_bonus, sharpness, attack_direction, attacking_item) +works like above but after the damage is actually inflicted
COMSIG_MOB_ATTACK_ALIENfrom base of /mob/living/attack_alien(): (user)
COMSIG_MOB_THROWfrom base of /mob/throw_item(): (atom/target)
COMSIG_MOB_EXAMININGfrom base of /mob/verb/examinate(): (atom/target, list/examine_strings)
COMSIG_MOB_EXAMINATEfrom base of /mob/verb/examinate(): (atom/target)
COMSIG_MOB_EYECONTACTfrom /mob/living/handle_eye_contact(): (mob/living/other_mob)
COMSIG_BLOCK_EYECONTACTreturn this if you want to block printing this message to this person, if you want to print your own (does not affect the other person's message)
COMSIG_MOB_UPDATE_SIGHTfrom base of /mob/update_sight(): ()
COMSIG_MOB_SAYfrom /mob/living/say(): ()
COMSIG_TRY_MODIFY_SPEECHfrom /datum/component/speechmod/handle_speech(): ()
PREVENT_MODIFY_SPEECHReturn value if we prevent speech from being modified
COMSIG_MOB_DEADSAYfrom /mob/say_dead(): (mob/speaker, message)
COMSIG_MOB_EMOTEfrom /mob/living/emote(): ()
COMSIG_MOB_SWAPPING_HANDSfrom base of mob/swap_hand(): (obj/item/currently_held_item)
COMSIG_MOB_SWAP_HANDSfrom base of mob/swap_hand(): () +Performed after the hands are swapped.
COMSIG_TRY_WIRES_INTERACTMob is trying to open the wires of a target /atom, from /datum/wires/interactable(): (atom/target)
COMSIG_MOB_PRE_EMOTEDMob is trying to emote, from /datum/emote/proc/run_emote(): (key, params, type_override, intentional, emote)
COMSIG_MOB_CLIENT_LOGINsent when a mob/login() finishes: (client)
COMSIG_TRY_STRIPCalled on user, from base of /datum/strippable_item/try_(un)equip() (atom/target, obj/item/equipping?)
COMSIG_MOB_HIT_BY_SPLATFrom /datum/component/face_decal/splat/Initialize()
COMSIG_MOB_CLUMSY_SHOOT_FOOTFrom /obj/item/gun/proc/check_botched()
COMSIG_TABLE_SLAMMEDfrom /obj/item/hand_item/slapper/attack_atom(): (source=obj/structure/table/slammed_table, mob/living/slammer)
COMSIG_MOB_ATTACK_HANDfrom base of atom/attack_hand(): (mob/user, modifiers)
COMSIG_MOB_ITEM_ATTACKfrom base of /obj/item/attack(): (mob/M, mob/user)
COMSIG_MOB_ATTACK_RANGEDfrom base of mob/RangedAttack(): (atom/A, modifiers)
COMSIG_MOB_ATTACK_RANGED_SECONDARYfrom base of mob/ranged_secondary_attack(): (atom/target, modifiers)
COMSIG_MOB_CTRL_CLICKEDFrom base of /mob/base_click_ctrl: (atom/A)
COMSIG_MOB_CTRL_SHIFT_CLICKEDFrom base of /mob/base_click_ctrl_shift: (atom/A)
COMSIG_MOB_MOVESPEED_UPDATEDFrom base of mob/update_movespeed():area
COMSIG_MOB_SELECTED_ZONE_SETFrom /atom/movable/screen/zone_sel/proc/set_selected_zone. +Fires when the user has changed their selected body target.
COMSIG_MOB_AUTOMUTE_CHECKfrom base of [/client/proc/handle_spam_prevention] (message, mute_type)
WAIVE_AUTOMUTE_CHECKPrevents the automute system checking this client for repeated messages.
COMSIG_MOB_MINEDFrom base of /turf/closed/mineral/proc/gets_drilled(): (turf/closed/mineral/rock, give_exp)
COMSIG_MOB_DROVE_MECHSent by pilot of mech in base of /obj/vehicle/sealed/mecha/relaymove(): (/obj/vehicle/sealed/mecha/mech)
COMSIG_MOB_USED_MECH_EQUIPMENTSent by pilot of mech in /obj/vehicle/sealed/mecha/on_mouseclick when using mech equipment : (/obj/vehicle/sealed/mecha/mech)
COMSIG_MOB_USED_CLICK_MECH_MELEESent by pilot of mech in /obj/vehicle/sealed/mecha/on_mouseclick when triggering mech punch : (/obj/vehicle/sealed/mecha/mech)
COMSIG_MOB_FLASHEDfrom living/flash_act(), when a mob is successfully flashed.
COMSIG_MOB_PRE_FLASHED_CARBONfrom /obj/item/assembly/flash/flash_carbon, to the mob flashing another carbon
DEVIATION_OVERRIDE_FULLReturn to override deviation to be full deviation (fail the flash, usually)
DEVIATION_OVERRIDE_PARTIALReturn to override deviation to be partial deviation
DEVIATION_OVERRIDE_NONEReturn to override deviation to be no deviation
STOP_FLASHReturn to stop the flash entirely
COMSIG_MOB_SUCCESSFUL_FLASHED_CARBONfrom /obj/item/assembly/flash/flash_carbon, to the mob flashing another carbon +(mob/living/carbon/flashed, obj/item/assembly/flash/flash, deviation (from code/__DEFINES/mobs.dm))
COMSIG_MOB_GET_STATUS_TAB_ITEMSfrom mob/get_status_tab_items(): (list/items)
COMSIG_HUMAN_EQUIPPING_ITEMfrom /mob/living/carbon/human/can_equip(): (mob/living/carbon/human/source_human, obj/item/equip_target, slot)
COMPONENT_BLOCK_EQUIPcancels the equip.
COMSIG_MOB_DROPPING_ITEMfrom mob/proc/dropItemToGround()
COMSIG_PRE_MOB_CHANGED_TYPEfrom /mob/proc/change_mob_type() : ()
COMSIG_MOB_CHANGED_TYPEfrom /mob/proc/change_mob_type_unchecked() : ()
COMSIG_MOB_SLIPPEDfrom /mob/proc/slip(): (knockdown_amonut, obj/slipped_on, lube_flags [mobs.dm], paralyze, force_drop)
COMSIG_MOB_CREATED_CALLOUTFrom the base of /datum/component/callouts/proc/callout_picker(mob/user, atom/clicked_atom): (datum/callout_option/callout, atom/target)
COMSIG_MOB_KEYDOWNfrom /mob/proc/key_down(): (key, client/client, full_key)
COMSIG_MOB_ATTEMPT_HALT_SPACEMOVEfrom /mob/Process_Spacemove(movement_dir, continuous_move): (movement_dir, continuous_move, atom/backup)
COMSIG_MOB_INCAPACITATE_CHANGEDfrom /mob/update_incapacitated(): (old_incap, new_incap)

Define Details

COMPONENT_BLOCK_EQUIP

cancels the equip.

COMPONENT_MOB_BOT_BLOCK_PRE_STEP

Should always match COMPONENT_MOVABLE_BLOCK_PRE_MOVE as these are interchangeable and used to block movement.

COMSIG_BLOCK_EYECONTACT

return this if you want to block printing this message to this person, if you want to print your own (does not affect the other person's message)

COMSIG_CLIENT_SET_EYE

from base of /client/proc/set_eye() : (atom/old_eye, atom/new_eye)

COMSIG_DO_AFTER_BEGAN

Sent from /proc/do_after if someone starts a do_after action bar.

COMSIG_DO_AFTER_ENDED

Sent from /proc/do_after once a do_after action completes, whether via the bar filling or via interruption.

COMSIG_HUMAN_EQUIPPING_ITEM

from /mob/living/carbon/human/can_equip(): (mob/living/carbon/human/source_human, obj/item/equip_target, slot)

COMSIG_MOB_AFTER_APPLY_DAMAGE

from /mob/living/proc/apply_damage(): (damage, damagetype, def_zone, blocked, wound_bonus, bare_wound_bonus, sharpness, attack_direction, attacking_item) +works like above but after the damage is actually inflicted

COMSIG_MOB_ALTCLICKON

from base of mob/AltClickOn(): (atom/A)

COMSIG_MOB_ALTCLICKON_SECONDARY

from base of mob/alt_click_on_secodary(): (atom/A)

COMSIG_MOB_APPLY_DAMAGE

from base of /mob/living/proc/apply_damage(): (damage, damagetype, def_zone, blocked, wound_bonus, bare_wound_bonus, sharpness, attack_direction, attacking_item)

COMSIG_MOB_APPLY_DAMAGE_MODIFIERS

from /mob/living/proc/apply_damage(): (list/damage_mods, damage, damagetype, def_zone, sharpness, attack_direction, attacking_item) +allows you to add multiplicative damage modifiers to the damage mods argument to adjust incoming damage +not sent if the apply damage call was forced

COMSIG_MOB_ATTACK_ALIEN

from base of /mob/living/attack_alien(): (user)

COMSIG_MOB_ATTACK_HAND

from base of atom/attack_hand(): (mob/user, modifiers)

COMSIG_MOB_ATTACK_RANGED

from base of mob/RangedAttack(): (atom/A, modifiers)

COMSIG_MOB_ATTACK_RANGED_SECONDARY

from base of mob/ranged_secondary_attack(): (atom/target, modifiers)

COMSIG_MOB_ATTEMPT_HALT_SPACEMOVE

from /mob/Process_Spacemove(movement_dir, continuous_move): (movement_dir, continuous_move, atom/backup)

COMSIG_MOB_AUTOMUTE_CHECK

from base of [/client/proc/handle_spam_prevention] (message, mute_type)

COMSIG_MOB_BOT_PRE_STEP

From base of /mob/living/simple_animal/bot/proc/bot_step()

COMSIG_MOB_BOT_STEP

From base of /mob/living/simple_animal/bot/proc/bot_step()

COMSIG_MOB_CHANGED_TYPE

from /mob/proc/change_mob_type_unchecked() : ()

COMSIG_MOB_CLICKON

from base of mob/clickon(): (atom/A, params)

COMSIG_MOB_CLIENT_BLOCK_PRE_LIVING_MOVE

Should we stop the current living movement attempt

COMSIG_MOB_CLIENT_BLOCK_PRE_MOVE

Should always match COMPONENT_MOVABLE_BLOCK_PRE_MOVE as these are interchangeable and used to block movement.

COMSIG_MOB_CLIENT_BLOCK_PRE_NON_LIVING_MOVE

Cancels the move attempt

COMSIG_MOB_CLIENT_CHANGE_VIEW

From base of /client/proc/change_view() (mob/source, new_size)

COMSIG_MOB_CLIENT_LOGIN

sent when a mob/login() finishes: (client)

COMSIG_MOB_CLIENT_MOVED

From base of /client/Move(): (direction, old_dir)

COMSIG_MOB_CLIENT_MOVE_NOGRAV

From base of /client/Move(): (new_loc, direction)

COMSIG_MOB_CLIENT_PRE_LIVING_MOVE

From base of /client/Move(): (list/move_args)

COMSIG_MOB_CLIENT_PRE_MOVE

From base of /client/Move(): (new_loc, direction)

COMSIG_MOB_CLIENT_PRE_NON_LIVING_MOVE

From base of /client/Move(), invoked when a non-living mob is attempting to move: (list/move_args)

COMSIG_MOB_CLUMSY_SHOOT_FOOT

From /obj/item/gun/proc/check_botched()

COMSIG_MOB_CREATED_CALLOUT

From the base of /datum/component/callouts/proc/callout_picker(mob/user, atom/clicked_atom): (datum/callout_option/callout, atom/target)

COMSIG_MOB_CTRL_CLICKED

From base of /mob/base_click_ctrl: (atom/A)

COMSIG_MOB_CTRL_SHIFT_CLICKED

From base of /mob/base_click_ctrl_shift: (atom/A)

COMSIG_MOB_DEADSAY

from /mob/say_dead(): (mob/speaker, message)

COMSIG_MOB_DROPPING_ITEM

from mob/proc/dropItemToGround()

COMSIG_MOB_DROVE_MECH

Sent by pilot of mech in base of /obj/vehicle/sealed/mecha/relaymove(): (/obj/vehicle/sealed/mecha/mech)

COMSIG_MOB_EMOTE

from /mob/living/emote(): ()

COMSIG_MOB_EXAMINATE

from base of /mob/verb/examinate(): (atom/target)

COMSIG_MOB_EXAMINING

from base of /mob/verb/examinate(): (atom/target, list/examine_strings)

COMSIG_MOB_EYECONTACT

from /mob/living/handle_eye_contact(): (mob/living/other_mob)

COMSIG_MOB_FLASHED

from living/flash_act(), when a mob is successfully flashed.

COMSIG_MOB_GET_STATUS_TAB_ITEMS

from mob/get_status_tab_items(): (list/items)

COMSIG_MOB_GHOSTIZED

From /mob/proc/ghostize() Called when a mob successfully ghosts

COMSIG_MOB_HIT_BY_SPLAT

From /datum/component/face_decal/splat/Initialize()

COMSIG_MOB_HUD_CREATED

from base of mob/create_mob_hud(): ()

COMSIG_MOB_HUD_REFRESHED

from base of hud/show_to(): (datum/hud/hud_source)

COMSIG_MOB_INCAPACITATE_CHANGED

from /mob/update_incapacitated(): (old_incap, new_incap)

COMSIG_MOB_ITEM_ATTACK

from base of /obj/item/attack(): (mob/M, mob/user)

COMSIG_MOB_KEYDOWN

from /mob/proc/key_down(): (key, client/client, full_key)

COMSIG_MOB_LOGIN

from base of /mob/Login(): ()

COMSIG_MOB_LOGOUT

from base of /mob/Logout(): ()

COMSIG_MOB_MIDDLECLICKON

from base of mob/MiddleClickOn(): (atom/A)

COMSIG_MOB_MIND_INITIALIZED

from base of /mob/mind_initialize

COMSIG_MOB_MIND_TRANSFERRED_INTO

from mind/transfer_to. Sent to the receiving mob.

COMSIG_MOB_MIND_TRANSFERRED_OUT_OF

from mind/transfer_from. Sent to the mob the mind is being transferred out of.

COMSIG_MOB_MINED

From base of /turf/closed/mineral/proc/gets_drilled(): (turf/closed/mineral/rock, give_exp)

COMSIG_MOB_MOVESPEED_UPDATED

From base of mob/update_movespeed():area

COMSIG_MOB_PRE_EMOTED

Mob is trying to emote, from /datum/emote/proc/run_emote(): (key, params, type_override, intentional, emote)

COMSIG_MOB_PRE_FLASHED_CARBON

from /obj/item/assembly/flash/flash_carbon, to the mob flashing another carbon

COMSIG_MOB_REAGENT_CHECK

from base of mob/reagent_check(): (datum/reagent/chem, seconds_per_tick, times_fired)

COMSIG_MOB_RECEIVE_MAGIC

from base of mob/can_block_magic(): (mob/user, casted_magic_flags, charge_cost)

COMSIG_MOB_RESET_PERSPECTIVE

From base of /mob/proc/reset_perspective() : ()

COMSIG_MOB_RESTRICT_MAGIC

from base of mob/can_cast_magic(): (mob/user, magic_flags, charge_cost)

COMSIG_MOB_RETRIEVE_SIMPLE_ACCESS

from the component /datum/component/simple_access

COMSIG_MOB_SAY

from /mob/living/say(): ()

COMSIG_MOB_SEE_INVIS_CHANGE

from base of mob/set_invis_see(): (new_invis, old_invis)

COMSIG_MOB_SELECTED_ZONE_SET

From /atom/movable/screen/zone_sel/proc/set_selected_zone. +Fires when the user has changed their selected body target.

COMSIG_MOB_SIGHT_CHANGE

from base of mob/set_sight(): (new_sight, old_sight)

COMSIG_MOB_SLIPPED

from /mob/proc/slip(): (knockdown_amonut, obj/slipped_on, lube_flags [mobs.dm], paralyze, force_drop)

COMSIG_MOB_STATCHANGE

from base of mob/set_stat(): (new_stat, old_stat)

COMSIG_MOB_STOP_REAGENT_CHECK

stops the reagent check call

COMSIG_MOB_SUCCESSFUL_FLASHED_CARBON

from /obj/item/assembly/flash/flash_carbon, to the mob flashing another carbon +(mob/living/carbon/flashed, obj/item/assembly/flash/flash, deviation (from code/__DEFINES/mobs.dm))

COMSIG_MOB_SWAPPING_HANDS

from base of mob/swap_hand(): (obj/item/currently_held_item)

COMSIG_MOB_SWAP_HANDS

from base of mob/swap_hand(): () +Performed after the hands are swapped.

COMSIG_MOB_THROW

from base of /mob/throw_item(): (atom/target)

COMSIG_MOB_TRIED_ACCESS

from base of obj/allowed(mob/M): (/obj) returns ACCESS_ALLOWED if mob has id access to the obj

COMSIG_MOB_UPDATE_HELD_ITEMS

From base of /mob/proc/update_held_items

COMSIG_MOB_UPDATE_SIGHT

from base of /mob/update_sight(): ()

COMSIG_MOB_USED_CLICK_MECH_MELEE

Sent by pilot of mech in /obj/vehicle/sealed/mecha/on_mouseclick when triggering mech punch : (/obj/vehicle/sealed/mecha/mech)

COMSIG_MOB_USED_MECH_EQUIPMENT

Sent by pilot of mech in /obj/vehicle/sealed/mecha/on_mouseclick when using mech equipment : (/obj/vehicle/sealed/mecha/mech)

COMSIG_PRE_MOB_CHANGED_TYPE

from /mob/proc/change_mob_type() : ()

COMSIG_TABLE_SLAMMED

from /obj/item/hand_item/slapper/attack_atom(): (source=obj/structure/table/slammed_table, mob/living/slammer)

COMSIG_TRY_ALT_ACTION

Called on user, from base of /datum/strippable_item/perform_alternate_action() (atom/target, action_key)

COMSIG_TRY_MODIFY_SPEECH

from /datum/component/speechmod/handle_speech(): ()

COMSIG_TRY_STRIP

Called on user, from base of /datum/strippable_item/try_(un)equip() (atom/target, obj/item/equipping?)

COMSIG_TRY_WIRES_INTERACT

Mob is trying to open the wires of a target /atom, from /datum/wires/interactable(): (atom/target)

COMSIG_VIEWDATA_UPDATE

from base of /datum/view_data/proc/afterViewChange() : (view)

DEVIATION_OVERRIDE_FULL

Return to override deviation to be full deviation (fail the flash, usually)

DEVIATION_OVERRIDE_NONE

Return to override deviation to be no deviation

DEVIATION_OVERRIDE_PARTIAL

Return to override deviation to be partial deviation

MOVE_ARG_DIRECTION

The argument of move_args which dictates our movement direction

MOVE_ARG_NEW_LOC

The argument of move_args which corresponds to the loc we're moving to

POST_BASIC_MOB_UPDATE_VARSPEED

Called on /basic when updating its speed, from base of /mob/living/basic/update_basic_mob_varspeed(): ()

PREVENT_MODIFY_SPEECH

Return value if we prevent speech from being modified

STOP_FLASH

Return to stop the flash entirely

WAIVE_AUTOMUTE_CHECK

Prevents the automute system checking this client for repeated messages.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_silicon.html b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_silicon.html new file mode 100644 index 0000000000000..a08e3fdd70172 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_silicon.html @@ -0,0 +1,3 @@ +code/__DEFINES/dcs/signals/signals_mob/signals_mob_silicon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_mob/signals_mob_silicon.dm

COMSIG_PROCESS_BORGCHARGER_OCCUPANTsent from borg recharge stations: (amount, repairs)
COMSIG_BORG_SAFE_DECONSTRUCTsent from borg mobs to itself, for tools to catch an upcoming destroy() due to safe decon (rather than detonation)
COMSIG_BORG_HUG_MOBcalled from /obj/item/borg/cyborghug/attack proc
COMSIG_BORG_HUG_HANDLEDreturned if this action was handled by signal handler.
COMSIG_MOB_PAT_BORGcalled from /mob/living/silicon/attack_hand proc
COMSIG_SILICON_AI_CORE_STATUScalled when someone is inquiring about an AI's linked core
COMSIG_SILICON_AI_OCCUPY_APCcalled when an AI (malf or perhaps combat upgraded or some other circumstance that has them inhabit +an APC) enters an APC
COMSIG_SILICON_AI_VACATE_APCcalled when an AI vacates an APC

Define Details

COMSIG_BORG_HUG_HANDLED

returned if this action was handled by signal handler.

COMSIG_BORG_HUG_MOB

called from /obj/item/borg/cyborghug/attack proc

COMSIG_BORG_SAFE_DECONSTRUCT

sent from borg mobs to itself, for tools to catch an upcoming destroy() due to safe decon (rather than detonation)

COMSIG_MOB_PAT_BORG

called from /mob/living/silicon/attack_hand proc

COMSIG_PROCESS_BORGCHARGER_OCCUPANT

sent from borg recharge stations: (amount, repairs)

COMSIG_SILICON_AI_CORE_STATUS

called when someone is inquiring about an AI's linked core

COMSIG_SILICON_AI_OCCUPY_APC

called when an AI (malf or perhaps combat upgraded or some other circumstance that has them inhabit +an APC) enters an APC

COMSIG_SILICON_AI_VACATE_APC

called when an AI vacates an APC

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_simple.html b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_simple.html new file mode 100644 index 0000000000000..0146e8ae3c6b4 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_simple.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_mob/signals_mob_simple.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_mob/signals_mob_simple.dm

COMSIG_SIMPLEMOB_SENTIENCEPOTIONcalled when a simplemob is given sentience from a sentience potion (target = person who sentienced)
COMSIG_SIMPLEMOB_TRANSFERPOTIONcalled when a simplemob is given sentience from a consciousness transference potion (target = person who sentienced)
COMSIG_HOSTILE_PRE_ATTACKINGTARGETbefore attackingtarget has happened, source is the attacker and target is the attacked
COMSIG_HOSTILE_POST_ATTACKINGTARGETafter attackingtarget has happened, source is the attacker and target is the attacked, extra argument for if the attackingtarget was successful
COMSIG_OOZE_EAT_ATOMFROM mob/living/simple_animal/hostile/ooze/eat_atom(): (atom/target, edible_flags)
COMSIG_HOSTILE_FOUND_TARGETCalled when a /mob/living/simple_animal/hostile fines a new target: (atom/source, new_target)

Define Details

COMSIG_HOSTILE_FOUND_TARGET

Called when a /mob/living/simple_animal/hostile fines a new target: (atom/source, new_target)

COMSIG_HOSTILE_POST_ATTACKINGTARGET

after attackingtarget has happened, source is the attacker and target is the attacked, extra argument for if the attackingtarget was successful

COMSIG_HOSTILE_PRE_ATTACKINGTARGET

before attackingtarget has happened, source is the attacker and target is the attacked

COMSIG_OOZE_EAT_ATOM

FROM mob/living/simple_animal/hostile/ooze/eat_atom(): (atom/target, edible_flags)

COMSIG_SIMPLEMOB_SENTIENCEPOTION

called when a simplemob is given sentience from a sentience potion (target = person who sentienced)

COMSIG_SIMPLEMOB_TRANSFERPOTION

called when a simplemob is given sentience from a consciousness transference potion (target = person who sentienced)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_spawner.html b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_spawner.html new file mode 100644 index 0000000000000..b52db743364fe --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_spawner.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_mob/signals_mob_spawner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_mob/signals_mob_spawner.dm

COMSIG_SPAWNER_SPAWNEDcalled when a spawner spawns a mob
COMSIG_SPAWNER_SPAWNED_DEFAULTCalled when a spawner spawns a mob in a turf peel, but we need to use the default case.
COMSIG_GHOSTROLE_SPAWNEDcalled when a ghost clicks a spawner role: (mob/living)

Define Details

COMSIG_GHOSTROLE_SPAWNED

called when a ghost clicks a spawner role: (mob/living)

COMSIG_SPAWNER_SPAWNED

called when a spawner spawns a mob

COMSIG_SPAWNER_SPAWNED_DEFAULT

Called when a spawner spawns a mob in a turf peel, but we need to use the default case.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_mod.html b/code/__DEFINES/dcs/signals/signals_mod.html new file mode 100644 index 0000000000000..66427dae3e82b --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mod.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_mod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_mod.dm

COMSIG_MOD_MODULE_SELECTEDCalled when a module is selected to be the active one from on_select(obj/item/mod/module/module)
COMSIG_MOD_DEPLOYEDCalled when a MOD user deploys one or more of its parts.
COMSIG_MOD_RETRACTEDCalled when a MOD user retracts one or more of its parts.
COMSIG_MOD_PART_DEPLOYEDCalled when a MOD deploys a part.
COMSIG_MOD_PART_RETRACTEDCalled when a MOD retracts a part.
COMSIG_MOD_TOGGLEDCalled when a MOD is finished toggling itself.
COMSIG_MOD_ACTIVATECalled when a MOD activation is called from toggle_activate(mob/user)
MOD_CANCEL_ACTIVATECancels the suit's activation
COMSIG_MOD_MODULE_REMOVEDCalled when a MOD finishes having a module removed from it.
COMSIG_MOD_MODULE_ADDEDCalled when a MOD finishes having a module added to it.
COMSIG_MOD_MODULE_REMOVALCalled when a MOD is having modules removed from crowbar_act(mob/user, obj/crowbar)
MOD_CANCEL_REMOVALCancels the removal of modules
COMSIG_MODULE_TRIGGEREDCalled when a module attempts to activate, however it does. At the end of checks so you can add some yourself, or work on trigger behavior (mob/user)
MOD_ABORT_USECancels activation, with no message. Include feedback on your cancel.
COMSIG_MODULE_ACTIVATEDCalled when a module activates, after all checks have passed and cooldown started.
COMSIG_MODULE_COOLDOWN_STARTEDCalled when a module starts a cooldown until its next activation. Passed the cooldown time.
COMSIG_MODULE_DEACTIVATEDCalled when a module deactivates, after all checks have passed.
COMSIG_MODULE_USEDCalled when a module is used, after all checks have passed and cooldown started.
COMSIG_MOD_WEARER_SETCalled when the MODsuit wearer is set.
COMSIG_MOD_WEARER_UNSETCalled when the MODsuit wearer is unset.

Define Details

COMSIG_MODULE_ACTIVATED

Called when a module activates, after all checks have passed and cooldown started.

COMSIG_MODULE_COOLDOWN_STARTED

Called when a module starts a cooldown until its next activation. Passed the cooldown time.

COMSIG_MODULE_DEACTIVATED

Called when a module deactivates, after all checks have passed.

COMSIG_MODULE_TRIGGERED

Called when a module attempts to activate, however it does. At the end of checks so you can add some yourself, or work on trigger behavior (mob/user)

COMSIG_MODULE_USED

Called when a module is used, after all checks have passed and cooldown started.

COMSIG_MOD_ACTIVATE

Called when a MOD activation is called from toggle_activate(mob/user)

COMSIG_MOD_DEPLOYED

Called when a MOD user deploys one or more of its parts.

COMSIG_MOD_MODULE_ADDED

Called when a MOD finishes having a module added to it.

COMSIG_MOD_MODULE_REMOVAL

Called when a MOD is having modules removed from crowbar_act(mob/user, obj/crowbar)

COMSIG_MOD_MODULE_REMOVED

Called when a MOD finishes having a module removed from it.

COMSIG_MOD_MODULE_SELECTED

Called when a module is selected to be the active one from on_select(obj/item/mod/module/module)

COMSIG_MOD_PART_DEPLOYED

Called when a MOD deploys a part.

COMSIG_MOD_PART_RETRACTED

Called when a MOD retracts a part.

COMSIG_MOD_RETRACTED

Called when a MOD user retracts one or more of its parts.

COMSIG_MOD_TOGGLED

Called when a MOD is finished toggling itself.

COMSIG_MOD_WEARER_SET

Called when the MODsuit wearer is set.

COMSIG_MOD_WEARER_UNSET

Called when the MODsuit wearer is unset.

MOD_ABORT_USE

Cancels activation, with no message. Include feedback on your cancel.

MOD_CANCEL_ACTIVATE

Cancels the suit's activation

MOD_CANCEL_REMOVAL

Cancels the removal of modules

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_modular_computer.html b/code/__DEFINES/dcs/signals/signals_modular_computer.html new file mode 100644 index 0000000000000..0f449e6a1bd0a --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_modular_computer.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_modular_computer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_modular_computer.dm

COMSIG_MODULAR_COMPUTER_TURNED_ONFrom /obj/item/modular_computer/proc/turn_on: (user)
COMSIG_MODULAR_COMPUTER_SHUT_DOWNFrom /obj/item/modular_computer/proc/shutdown_computer: (loud)
COMSIG_MODULAR_COMPUTER_FILE_STOREFrom /obj/item/modular_computer/proc/store_file: (datum/computer_file/file_storing)
COMSIG_MODULAR_COMPUTER_FILE_DELETEFrom /obj/item/modular_computer/proc/remove_file: (datum/computer_file/file_removing)
COMSIG_COMPUTER_FILE_STOREFrom /obj/item/modular_computer/proc/store_file: (datum/computer_file/file_source, obj/item/modular_computer/host)
COMSIG_COMPUTER_FILE_DELETEFrom /obj/item/modular_computer/proc/store_file: ()
COMSIG_MODULAR_COMPUTER_INSERTED_IDFrom /obj/item/modular_computer/proc/InsertID: (inserting_id, user)
COMSIG_COMPUTER_PROGRAM_STARTFrom /datum/computer_file/program/on_start: (user)
COMSIG_COMPUTER_PROGRAM_KILLFrom /datum/computer_file/program/kill_program: (user)
COMSIG_MODULAR_COMPUTER_NT_PAY_RESULTFrom /datum/computer_file/program/nt_pay/make_payment: (payment_result)
COMSIG_MODULAR_COMPUTER_SPECTRE_SCANFrom /datum/computer_file/program/nt_pay/make_payment: (spookiness, manual)
COMSIG_MODULAR_COMPUTER_RADAR_TRACKABLEFrom /datum/computer_file/program/radar/trackable: (atom/signal, turf/signal_turf, turf/computer_turf)
COMSIG_MODULAR_COMPUTER_RADAR_FIND_ATOMFrom /datum/computer_file/program/radar/find_atom: (list/atom_container)
COMSIG_MODULAR_COMPUTER_RADAR_SELECTEDFrom /datum/computer_file/program/radar/ui_act, when action is "selecttarget": (selected_ref)
COMSIG_MODULAR_PDA_IMPRINT_UPDATEDfrom /obj/item/modular_computer/imprint_id(): (name, job)
COMSIG_MODULAR_PDA_IMPRINT_RESETfrom /obj/item/modular_computer/reset_id(): ()
COMSIG_MODULAR_PDA_MESSAGE_RECEIVEDFrom /datum/computer_file/program/messenger/receive_message, sent to the computer: (signal/subspace/messaging/tablet_message/signal, sender_job, sender_name)
COMSIG_MODULAR_PDA_MESSAGE_SENTFrom /datum/computer_file/program/messenger/send_message_signal, sent to the computer: (atom/origin, datum/signal/subspace/messaging/tablet_message/signal)

Define Details

COMSIG_COMPUTER_FILE_DELETE

From /obj/item/modular_computer/proc/store_file: ()

COMSIG_COMPUTER_FILE_STORE

From /obj/item/modular_computer/proc/store_file: (datum/computer_file/file_source, obj/item/modular_computer/host)

COMSIG_COMPUTER_PROGRAM_KILL

From /datum/computer_file/program/kill_program: (user)

COMSIG_COMPUTER_PROGRAM_START

From /datum/computer_file/program/on_start: (user)

COMSIG_MODULAR_COMPUTER_FILE_DELETE

From /obj/item/modular_computer/proc/remove_file: (datum/computer_file/file_removing)

COMSIG_MODULAR_COMPUTER_FILE_STORE

From /obj/item/modular_computer/proc/store_file: (datum/computer_file/file_storing)

COMSIG_MODULAR_COMPUTER_INSERTED_ID

From /obj/item/modular_computer/proc/InsertID: (inserting_id, user)

COMSIG_MODULAR_COMPUTER_NT_PAY_RESULT

From /datum/computer_file/program/nt_pay/make_payment: (payment_result)

COMSIG_MODULAR_COMPUTER_RADAR_FIND_ATOM

From /datum/computer_file/program/radar/find_atom: (list/atom_container)

COMSIG_MODULAR_COMPUTER_RADAR_SELECTED

From /datum/computer_file/program/radar/ui_act, when action is "selecttarget": (selected_ref)

COMSIG_MODULAR_COMPUTER_RADAR_TRACKABLE

From /datum/computer_file/program/radar/trackable: (atom/signal, turf/signal_turf, turf/computer_turf)

COMSIG_MODULAR_COMPUTER_SHUT_DOWN

From /obj/item/modular_computer/proc/shutdown_computer: (loud)

COMSIG_MODULAR_COMPUTER_SPECTRE_SCAN

From /datum/computer_file/program/nt_pay/make_payment: (spookiness, manual)

COMSIG_MODULAR_COMPUTER_TURNED_ON

From /obj/item/modular_computer/proc/turn_on: (user)

COMSIG_MODULAR_PDA_IMPRINT_RESET

from /obj/item/modular_computer/reset_id(): ()

COMSIG_MODULAR_PDA_IMPRINT_UPDATED

from /obj/item/modular_computer/imprint_id(): (name, job)

COMSIG_MODULAR_PDA_MESSAGE_RECEIVED

From /datum/computer_file/program/messenger/receive_message, sent to the computer: (signal/subspace/messaging/tablet_message/signal, sender_job, sender_name)

COMSIG_MODULAR_PDA_MESSAGE_SENT

From /datum/computer_file/program/messenger/send_message_signal, sent to the computer: (atom/origin, datum/signal/subspace/messaging/tablet_message/signal)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_moveloop.html b/code/__DEFINES/dcs/signals/signals_moveloop.html new file mode 100644 index 0000000000000..ba30f8d5cb4be --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_moveloop.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_moveloop.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_moveloop.dm

COMSIG_MOVELOOP_STARTfrom /datum/move_loop/start_loop ():
COMSIG_MOVELOOP_STOPfrom /datum/move_loop/stop_loop ():
COMSIG_MOVELOOP_PREPROCESS_CHECKfrom /datum/move_loop/process ():
COMSIG_MOVELOOP_POSTPROCESSfrom /datum/move_loop/process (result, visual_delay): //Result is an enum value. Enums defined in __DEFINES/movement.dm
COMSIG_MOVELOOP_JPS_FINISHED_PATHINGfrom /datum/move_loop/has_target/jps/on_finish_pathing

Define Details

COMSIG_MOVELOOP_JPS_FINISHED_PATHING

from /datum/move_loop/has_target/jps/on_finish_pathing

COMSIG_MOVELOOP_POSTPROCESS

from /datum/move_loop/process (result, visual_delay): //Result is an enum value. Enums defined in __DEFINES/movement.dm

COMSIG_MOVELOOP_PREPROCESS_CHECK

from /datum/move_loop/process ():

COMSIG_MOVELOOP_START

from /datum/move_loop/start_loop ():

COMSIG_MOVELOOP_STOP

from /datum/move_loop/stop_loop ():

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_movetype.html b/code/__DEFINES/dcs/signals/signals_movetype.html new file mode 100644 index 0000000000000..6729a550be716 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_movetype.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_movetype.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_movetype.dm

COMSIG_MOVETYPE_FLAG_ENABLEDFrom base of datum/element/movetype_handler/on_movement_type_trait_gain: (flag, old_movement_type)
COMSIG_MOVETYPE_FLAG_DISABLEDFrom base of datum/element/movetype_handler/on_movement_type_trait_loss: (flag, old_movement_type)

Define Details

COMSIG_MOVETYPE_FLAG_DISABLED

From base of datum/element/movetype_handler/on_movement_type_trait_loss: (flag, old_movement_type)

COMSIG_MOVETYPE_FLAG_ENABLED

From base of datum/element/movetype_handler/on_movement_type_trait_gain: (flag, old_movement_type)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_music.html b/code/__DEFINES/dcs/signals/signals_music.html new file mode 100644 index 0000000000000..f2a595fc45114 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_music.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_music.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_music.dm

COMSIG_INSTRUMENT_STARTsent to the instrument when a song starts playing: (datum/starting_song, atom/player)
COMSIG_INSTRUMENT_ENDsent to the instrument when a song stops playing
COMSIG_INSTRUMENT_SHOULD_STOP_PLAYINGsent to the instrument on /should_stop_playing(): (atom/player). Return values can be found in DEFINES/song.dm
COMSIG_INSTRUMENT_REPEATsent to the instrument (and player if available) when a song repeats (datum/song)
COMSIG_INSTRUMENT_TEMPO_CHANGEsent to the instrument when tempo changes, skipped on new. (datum/song)

Define Details

COMSIG_INSTRUMENT_END

sent to the instrument when a song stops playing

COMSIG_INSTRUMENT_REPEAT

sent to the instrument (and player if available) when a song repeats (datum/song)

COMSIG_INSTRUMENT_SHOULD_STOP_PLAYING

sent to the instrument on /should_stop_playing(): (atom/player). Return values can be found in DEFINES/song.dm

COMSIG_INSTRUMENT_START

sent to the instrument when a song starts playing: (datum/starting_song, atom/player)

COMSIG_INSTRUMENT_TEMPO_CHANGE

sent to the instrument when tempo changes, skipped on new. (datum/song)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_object.html b/code/__DEFINES/dcs/signals/signals_object.html new file mode 100644 index 0000000000000..88e5a94749715 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_object.html @@ -0,0 +1,7 @@ +code/__DEFINES/dcs/signals/signals_object.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_object.dm

COMSIG_OBJ_DECONSTRUCTfrom base of obj/deconstruct(): (disassembled)
COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCHfrom base of code/game/machinery
COMSIG_OBJ_HIDEfrom base of /turf/proc/levelupdate(). (intact) true to hide and false to unhide
COMSIG_OBJ_PAINTEDfrom /obj/item/toy/crayon/spraycan/use_on: (user, spraycan, color_is_dark)
COMSIG_OBJ_RESKINfrom /obj/obj_reskin: (mob/user, skin)
COMSIG_MACHINERY_BROKENfrom /obj/machinery/atom_break(damage_flag): (damage_flag)
COMSIG_MACHINERY_POWER_LOSTfrom base power_change() when power is lost
COMSIG_MACHINERY_POWER_RESTOREDfrom base power_change() when power is restored
COMSIG_MACHINERY_SET_OCCUPANTfrom /obj/machinery/set_occupant(atom/movable/O): (new_occupant)
COMSIG_MACHINERY_DESTRUCTIVE_SCANfrom /obj/machinery/destructive_scanner/proc/open(aggressive): Runs when the destructive scanner scans a group of objects. (list/scanned_atoms)
COMSIG_ARCADE_PRIZEVENDfrom /obj/machinery/computer/arcade/prizevend(mob/user, prizes = 1)
COMSIG_MACHINERY_START_PROCESSING_AIRfrom /datum/controller/subsystem/air/proc/start_processing_machine: ()
COMSIG_MACHINERY_STOP_PROCESSING_AIRfrom /datum/controller/subsystem/air/proc/stop_processing_machine: ()
COMSIG_MACHINERY_REFRESH_PARTSfrom /obj/machinery/RefreshParts: ()
COMSIG_MACHINERY_DEFAULT_ROTATE_WRENCHfrom /obj/machinery/default_change_direction_wrench: (mob/user, obj/item/wrench)
COMSIG_TRY_USE_MACHINEfrom /obj/machinery/can_interact(mob/user): Called on user when attempting to interact with a machine (obj/machinery/machine)
COMPONENT_CANT_USE_MACHINE_INTERACTCan't interact with the machine
COMPONENT_CANT_USE_MACHINE_TOOLSCan't use tools on the machine
COMSIG_IV_ATTACHfrom obj/machinery/iv_drip/IV_attach(target, usr) : (attachee)
COMSIG_IV_DETACHfrom obj/machinery/iv_drip/IV_detach() : (detachee)
COMSIG_TELEPORTER_NEW_TARGETfrom /obj/machinery/computer/teleporter/proc/set_target(target, old_target)
COMSIG_BEACON_DISABLEDfrom /obj/item/beacon/proc/turn_off()
COMSIG_SUPERMATTER_DELAM_ALARMfrom /obj/machinery/power/supermatter_crystal/process_atmos(); when the SM sounds an audible alarm
COMSIG_SUPERMATTER_CONSUMEDfrom /datum/component/supermatter_crystal/proc/consume() +called on the thing consumed, passes the thing which consumed it
COMSIG_CRYO_SET_ONfrom /obj/machinery/cryo_cell/set_on(bool): (on)
COMSIG_OBJ_UNFREEZEfrom /obj/proc/unfreeze()
COMSIG_VALVE_SET_OPENfrom /obj/machinery/atmospherics/components/binary/valve/toggle(): (on)
COMSIG_ATMOS_MACHINE_SET_ONfrom /obj/machinery/atmospherics/set_on(active): (on)
COMSIG_LIGHT_SWITCH_SETfrom /obj/machinery/light_switch/set_lights(), sent to every switch in the area: (status)
COMSIG_FIREALARM_ON_TRIGGERfrom /obj/machinery/fire_alarm/reset(), /obj/machinery/fire_alarm/alarm(): (status)
COMSIG_AIRLOCK_SET_BOLTfrom /obj/machinery/door/airlock/set_bolt():
COMSIG_CARBON_BUMPED_AIRLOCK_OPENfrom /obj/machinery/door/airlock/bumpopen(), to the carbon who bumped: (airlock)
STOP_BUMPReturn to stop the door opening on bump.
COMSIG_ITEM_EQUIPPEDfrom base of obj/item/equipped(): (mob/equipper, slot)
COMSIG_ITEM_POST_EQUIPPEDFrom base of obj/item/on_equipped() (mob/equipped, slot)
COMPONENT_EQUIPPED_FAILEDThis will make the on_equipped proc return FALSE.
COMSIG_MOB_EQUIPPED_ITEMA mob has just equipped an item. Called on /mob from base of /obj/item/equipped(): (/obj/item/equipped_item, slot)
COMSIG_MOB_UNEQUIPPED_ITEMA mob has just unequipped an item.
COMSIG_ITEM_PRE_UNEQUIPcalled on /obj/item before unequip from base of [mob/proc/doUnEquip]: (force, atom/newloc, no_move, invdrop, silent)
COMPONENT_ITEM_BLOCK_UNEQUIPonly the pre unequip can be cancelled
COMSIG_ITEM_POST_UNEQUIPcalled on /obj/item AFTER unequip from base of [mob/proc/doUnEquip]: (force, atom/newloc, no_move, invdrop, silent)
COMSIG_ITEM_ON_GRINDfrom base of obj/item/on_grind(): ())
COMSIG_ITEM_ON_JUICEfrom base of obj/item/on_juice(): ()
COMSIG_ITEM_ON_COMPOSTEDfrom /obj/machinery/hydroponics/attackby(obj/item/O, mob/user, params) when an object is used as compost: (mob/user)
COMSIG_ITEM_DRIEDCalled when an item is dried by a drying rack
COMSIG_ITEM_DROPPEDfrom base of obj/item/dropped(): (mob/user)
COMSIG_ITEM_PICKUPfrom base of obj/item/pickup(): (/mob/taker)
COMSIG_ITEM_EQUIPPED_AS_OUTFITfrom base of obj/item/on_outfit_equip(): (mob/equipper, visuals_only, slot)
COMSIG_ITEM_STOREDfrom base of datum/storage/handle_enter(): (datum/storage/storage)
COMSIG_ITEM_UNSTOREDfrom base of datum/storage/handle_exit(): (datum/storage/storage)
COMSIG_ITEM_APPLY_FANTASY_BONUSESfrom base of obj/item/apply_fantasy_bonuses(): (bonus)
COMSIG_ITEM_REMOVE_FANTASY_BONUSESfrom base of obj/item/remove_fantasy_bonuses(): (bonus)
COMSIG_ITEM_UI_ACTION_CLICKSebt from obj/item/ui_action_click(): (mob/user, datum/action)
COMPONENT_ACTION_HANDLEDReturn to prevent the default behavior (attack_selfing) from occurring.
COMSIG_ITEM_UI_ACTION_SLOT_CHECKEDSent from obj/item/item_action_slot_check(): (mob/user, datum/action, slot)
COMPONENT_ITEM_ACTION_SLOT_INVALIDReturn to prevent the default behavior (attack_selfing) from occurring.
COMSIG_ITEM_ATTACK_ZONEfrom base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone)
COMSIG_ITEM_HIT_REACTfrom base of obj/item/hit_reaction(): (owner, hitby, attack_text, final_block_chance, damage, attack_type, damage_type)
COMSIG_ITEM_SHARPEN_ACTfrom base of item/sharpener/attackby(): (amount, max)
COMSIG_ARMOR_PLATEDCalled when an armor plate is successfully applied to an object
COMSIG_ITEM_RECHARGEDCalled when an item gets recharged by the ammo powerup
COMSIG_ITEM_OFFERINGCalled when an item is being offered, from [/obj/item/proc/on_offered(mob/living/carbon/offerer)]
COMPONENT_OFFER_INTERRUPTInterrupts the offer proc
COMSIG_ITEM_OFFER_TAKENCalled when an someone tries accepting an offered item, from [/obj/item/proc/on_offer_taken(mob/living/carbon/offerer, mob/living/carbon/taker)]
COMPONENT_OFFER_TAKE_INTERRUPTInterrupts the offer acceptance
COMSIG_ITEM_ATTACK_EFFECTsent from obj/effect/attackby(): (/obj/effect/hit_effect, /mob/living/attacker, params)
COMSIG_ITEM_GET_WORN_OVERLAYSCalled by /obj/item/proc/worn_overlays(list/overlays, mutable_appearance/standing, isinhands, icon_file)
COMSIG_TOOL_IN_USEfrom base of /obj/item/proc/tool_check_callback: (mob/living/user)
COMSIG_TOOL_START_USEfrom base of /obj/item/proc/tool_start_check: (mob/living/user)
COMSIG_MULTITOOL_REMOVE_BUFFERFrom /obj/item/multitool/remove_buffer(): (buffer)
COMSIG_ITEM_DISABLE_EMBEDfrom /obj/item/proc/disableEmbedding:
COMSIG_MINE_TRIGGEREDfrom /obj/effect/mine/proc/triggermine:
COMSIG_SUPPLYPOD_LANDEDfrom [/obj/structure/closet/supplypod/proc/preOpen]:
COMSIG_STACK_CAN_MERGEfrom /obj/item/stack/proc/can_merge: (obj/item/stack/merge_with, in_hand)
COMSIG_BIBLE_SMACKEDfrom /obj/item/book/bible/interact_with_atom(): (mob/user)
COMSIG_END_BIBLE_CHAINstops the bible chain from continuing. When all of the effects of the bible smacking have been moved to a signal we can kill this
COMSIG_CLOSET_INSERTClosets +From base of [/obj/structure/closet/proc/insert]: (atom/movable/inserted)
COMPONENT_CLOSET_INSERT_INTERRUPTused to interrupt insertion
COMSIG_CLOSET_PRE_OPENFrom open: (forced)
COMSIG_CLOSET_POST_OPENFrom open: (forced)
COMSIG_CLOSET_PRE_CLOSEFrom close
COMSIG_CLOSET_POST_CLOSEFrom close
COMSIG_CLOSET_DELIVEREDa deliver_first element closet was successfully delivered
COMSIG_EIGENSTATE_ACTIVATEEigenstasium +From base of [/datum/controller/subsystem/eigenstates/proc/use_eigenlinked_atom]: (var/target)
COMSIG_OBJ_ATTEMPT_CHARGEcalled when the payment component tries to charge an account.
COMSIG_OBJ_ATTEMPT_CHARGE_CHANGECalled when a payment component changes value
COMSIG_ITEM_PRE_EXPORTcalled before an item is sold by the exports system.
COMPONENT_STOP_EXPORTStops the export from calling sell_object() on the item, so you can handle it manually.
COMSIG_ITEM_EXPORTEDcalled when an item is sold by the exports subsystem
COMPONENT_STOP_EXPORT_REPORTStops the export from adding the export information to the report, so you can handle it manually.
COMSIG_ITEM_UNWRAPPEDcalled when a wrapped up item is opened by hand
COMSIG_ITEM_SPLIT_PROFITcalled when getting the item's exact ratio for cargo's profit.
COMSIG_ITEM_SPLIT_PROFIT_DRYcalled when getting the item's exact ratio for cargo's profit, without selling the item.
COMSIG_ITEM_ATTEMPT_TC_REIMBURSECalled on component/uplink/OnAttackBy(..)
COMSIG_TRAITOR_ITEM_USEDCalled when a holoparasite/guardiancreator is used.
COMSIG_SHOES_STEP_ACTIONfrom [/mob/living/carbon/human/Move]: ()
COMSIG_IMPLANT_ACTIVATEDfrom base of /obj/item/implant/proc/activate(): ()
COMSIG_IMPLANT_IMPLANTINGfrom base of /obj/item/implant/proc/implant(): (list/args)
COMSIG_IMPLANT_OTHERcalled on already installed implants when a new one is being added in /obj/item/implant/proc/implant(): (list/args, obj/item/implant/new_implant)
COMSIG_IMPLANT_IMPLANTEDcalled on implants, after a successful implantation: (mob/living/target, mob/user, silent, force)
COMSIG_IMPLANT_REMOVEDcalled on implants, after an implant has been removed: (mob/living/source, silent, special)
COMSIG_PRE_MINDSHIELD_IMPLANTcalled as a mindshield is implanted: (mob/user)
COMPONENT_MINDSHIELD_PASSEDDid they successfully get mindshielded?
COMPONENT_MINDSHIELD_RESISTEDDid they resist the mindshield?
COMSIG_MINDSHIELD_IMPLANTEDcalled once a mindshield is implanted: (mob/user)
COMPONENT_MINDSHIELD_DECONVERTEDAre we the reason for deconversion?
COMSIG_IMPLANT_EXISTING_UPLINKcalled on implants being implanted into someone with an uplink implant: (datum/component/uplink)
COMSIG_TABLET_CHANGE_IDcalled on pda when the user changes the ringtone: (mob/living/user, new_ringtone)
COMSIG_ITEM_TALK_INTOcalled from base of /obj/item/proc/talk_into(): (atom/movable/speaker, message, channel, list/spans, language, list/message_mods)
COMSIG_RADIO_NEW_FREQUENCYcalled from base of /obj/item/radio/proc/set_frequency(): (list/args)
COMSIG_RADIO_NEW_MESSAGEcalled from base of /obj/item/radio/talk_into(): (atom/movable/M, message, channel)
COMSIG_RADIO_RECEIVE_MESSAGEcalled from base of /obj/item/radio/proc/on_receive_messgae(): (list/data)
COMSIG_PEN_ROTATEDcalled after rotation in /obj/item/pen/attack_self(): (rotation, mob/living/carbon/user)
COMSIG_GUN_TRY_FIREcalled in /obj/item/gun/fire_gun (user, target, flag, params)
COMSIG_MOB_FIRED_GUNcalled in /obj/item/gun/process_fire (src, target, params, zone_override, bonus_spread_values)
COMSIG_GUN_FIREDcalled in /obj/item/gun/process_fire (user, target, params, zone_override)
COMSIG_GUN_CHAMBER_PROCESSEDcalled in /obj/item/gun/process_chamber (src)
COMSIG_CASING_EJECTEDcalled in /obj/item/gun/ballistic/process_chamber (casing)
COMSIG_GUN_BEING_SAWNOFFcalled in /obj/item/gun/ballistic/sawoff(mob/user, obj/item/saw, handle_modifications) : (mob/user)
COMSIG_CAMERA_IMAGE_CAPTUREDfrom /obj/item/camera/captureimage(): (atom/target, mob/user)
COMSIG_GRENADE_DETONATEcalled in /obj/item/grenade/proc/detonate(): (lanced_by)
COMSIG_MOB_GRENADE_ARMEDcalled in /obj/item/grenade/gas_crystal/arm_grenade(): (armed_by, nade, det_time, delayoverride)
COMSIG_GRENADE_ARMEDcalled in /obj/item/grenade/proc/arm_grenade() and /obj/item/grenade/gas_crystal/arm_grenade(): (det_time, delayoverride)
COMSIG_PROJECTILE_SELF_ON_HITfrom base of /obj/projectile/proc/on_hit(), like COMSIG_PROJECTILE_ON_HIT but on the projectile itself and with the hit limb (if any): (atom/movable/firer, atom/target, angle, hit_limb, blocked)
COMSIG_PROJECTILE_ON_HITfrom base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, angle, hit_limb, blocked)
COMSIG_PROJECTILE_BEFORE_FIREfrom base of /obj/projectile/proc/fire(): (obj/projectile, atom/original_target)
COMSIG_PROJECTILE_FIRER_BEFORE_FIREfrom base of /obj/projectile/proc/fire(): (obj/projectile, atom/firer, atom/original_target)
COMSIG_PROJECTILE_FIREfrom the base of /obj/projectile/proc/fire(): ()
COMSIG_PROJECTILE_PREHITsent to targets during the process_hit proc of projectiles
COMSIG_PROJECTILE_PIXEL_STEPfrom /obj/projectile/pixel_move(): ()
COMSIG_PROJECTILE_SELF_PREHITsent to self during the process_hit proc of projectiles
COMSIG_PROJECTILE_RANGEfrom the base of /obj/projectile/Range(): ()
COMSIG_PROJECTILE_RANGE_OUTfrom the base of /obj/projectile/on_range(): ()
COMSIG_PROJECTILE_BEFORE_MOVEfrom the base of /obj/projectile/process(): ()
COMSIG_EMBED_TRY_FORCEfrom /obj/item/proc/tryEmbed sent when trying to force an embed (mainly for projectiles and eating glass)
COMSIG_FIRE_CASINGsent to targets during the process_hit proc of projectiles
COMSIG_CASING_READY_PROJECTILEfrom the base of /obj/item/ammo_casing/ready_proj() : (atom/target, mob/living/user, quiet, zone_override, atom/fired_from)
COMSIG_PROJECTILE_ON_SPAWN_DROPsent to the projectile after an item is spawned by the projectile_drop element: (new_item)
COMSIG_PROJECTILE_ON_SPAWN_EMBEDDEDsent to the projectile when spawning the item (shrapnel) that may be embedded: (new_item)
COMSIG_PROJECTILE_ON_EMBEDDEDsent to the projectile when successfully embedding into something
COMSIG_VIM_CHIME_USEDfrom /datum/action/vehicle/sealed/noise/chime/Trigger(): ()
COMSIG_VIM_BUZZ_USEDfrom /datum/action/vehicle/sealed/noise/buzz/Trigger(): ()
COMSIG_VIM_HEADLIGHTS_TOGGLEDfrom /datum/action/vehicle/sealed/headlights/vim/Trigger(): (headlights_on)
COMSIG_COMPUTER_RECEIVED_MESSAGEfrom /datum/computer_file/program/messenger/proc/receive_message
COMSIG_VIRTUAL_PET_LEVEL_UPfrom /datum/computer_file/program/virtual_pet/proc/handle_level_up
COMSIG_MECHA_EQUIPMENT_ATTACHEDsent if you attach equipment to mecha
COMSIG_MECHA_EQUIPMENT_DETACHEDsent if you detach equipment to mecha
COMSIG_MECHA_DRILL_MOBsent when you are able to drill through a mob
COMSIG_MECHA_ACTION_TRIGGERsent from mecha action buttons to the mecha they're linked to
COMSIG_MECHA_MELEE_CLICKsent from clicking while you have no equipment selected. Sent before cooldown and adjacency checks, so you can use this for infinite range things if you want.
COMPONENT_CANCEL_MELEE_CLICKPrevents click from happening.
COMSIG_MECHA_EQUIPMENT_CLICKsent from clicking while you have equipment selected.
COMPONENT_CANCEL_EQUIPMENT_CLICKPrevents click from happening.
COMSIG_ITEM_ATTACKfrom base of /obj/item/attack(): (mob/living, mob/living, params)
COMSIG_ITEM_ATTACK_SELFfrom base of obj/item/attack_self(): (/mob)
COMSIG_ITEM_ATTACK_ATOMfrom base of obj/item/attack_atom(): (/atom, /mob)
COMSIG_ITEM_PRE_ATTACKfrom base of obj/item/pre_attack(): (atom/target, mob/user, params)
COMSIG_ITEM_PRE_ATTACK_SECONDARYFrom base of [/obj/item/proc/pre_attack_secondary()]: (atom/target, mob/user, params)
COMSIG_ITEM_ATTACK_SECONDARYFrom base of [/obj/item/proc/attack_secondary()]: (atom/target, mob/user, params)
COMSIG_ITEM_AFTERATTACKfrom base of obj/item/attack(): (atom/target, mob/user, proximity_flag, click_parameters)
COMSIG_ITEM_EMBEDDEDfrom base of obj/item/embedded(): (atom/target, obj/item/bodypart/part)
COMSIG_ITEM_UNEMBEDDEDfrom base of datum/component/embedded/safeRemove(): (mob/living/carbon/victim)
COMSIG_ITEM_FAILED_EMBEDfrom base of obj/item/failedEmbed()
COMSIG_ITEM_CAN_DISARM_ATTACKfrom base of datum/element/disarm_attack/secondary_attack(), used to prevent shoving: (victim, user, send_message)
COMSIG_ASSEMBLY_PULSEDfrom /obj/item/assembly/proc/pulsed(mob/pulser)
COMSIG_ID_CARD_NTPAY_MONEY_RECEIVEDfrom /datum/computer_file/program/nt_pay/_pay(), sent to every physical card of a bank account: (computer, money_received)
COMSIG_MMI_SET_BRAINMOBfrom base of /obj/item/mmi/set_brainmob(): (mob/living/brain/new_brainmob)
COMSIG_SPEED_POTION_APPLIEDfrom base of /obj/item/slimepotion/speed/interact_with_atom(): (obj/target, /obj/src, mob/user)
COMSIG_POSTER_TRAP_SUCCEEDfrom /obj/structure/sign/poster/trap_succeeded() : (mob/user)
COMSIG_DETECTIVE_SCANNEDfrom /obj/item/detective_scanner/scan(): (mob/user, list/extra_data)
COMSIG_ORM_COLLECTED_OREfrom /obj/machinery/mineral/ore_redemption/pickup_item when it successfully picks something up
COMSIG_PLUNGER_ACTfrom /obj/plunger_act when an object is being plungered
COMSIG_CURSED_SLOT_MACHINE_USEfrom /obj/structure/cursed_slot_machine/handle_status_effect() when someone pulls the handle on the slot machine
SLOT_MACHINE_USE_CANCELwe've used up the number of times we may use this slot machine. womp womp.
SLOT_MACHINE_USE_POSTPONEwe haven't used up all our attempts to gamble away our life but we should chill for a few seconds
COMSIG_CURSED_SLOT_MACHINE_LOSTfrom /obj/structure/cursed_slot_machine/determine_victor() when someone loses.
COMSIG_GLOB_CURSED_SLOT_MACHINE_WONfrom /obj/structure/cursed_slot_machine/determine_victor() when someone finally wins.
COMSIG_DART_INSERT_ADDEDfrom /datum/component/dart_insert/add_to_dart() : (obj/item/ammo_casing, mob/user)
COMSIG_DART_INSERT_REMOVEDfrom /datum/component/dart_insert/remove_from_dart() : (obj/ammo_casing/dart, mob/user)
COMSIG_DART_INSERT_PARENT_RESKINNEDfrom /datum/component/dart_insert/on_reskin()
COMSIG_UNDERTILE_UPDATEDfrom /datum/element/undertile/hide()
COMSIG_ITEM_WEIGHT_CLASS_CHANGEDSent from /obj/item/update_weight_class(). (old_w_class, new_w_class)
COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGEDSent from /obj/item/update_weight_class(), to its loc. (obj/item/changed_item, old_w_class, new_w_class)

Define Details

COMPONENT_ACTION_HANDLED

Return to prevent the default behavior (attack_selfing) from occurring.

COMPONENT_CANCEL_EQUIPMENT_CLICK

Prevents click from happening.

COMPONENT_CANCEL_MELEE_CLICK

Prevents click from happening.

COMPONENT_CANT_USE_MACHINE_INTERACT

Can't interact with the machine

COMPONENT_CANT_USE_MACHINE_TOOLS

Can't use tools on the machine

COMPONENT_CLOSET_INSERT_INTERRUPT

used to interrupt insertion

COMPONENT_EQUIPPED_FAILED

This will make the on_equipped proc return FALSE.

COMPONENT_ITEM_ACTION_SLOT_INVALID

Return to prevent the default behavior (attack_selfing) from occurring.

COMPONENT_ITEM_BLOCK_UNEQUIP

only the pre unequip can be cancelled

COMPONENT_MINDSHIELD_DECONVERTED

Are we the reason for deconversion?

COMPONENT_MINDSHIELD_PASSED

Did they successfully get mindshielded?

COMPONENT_MINDSHIELD_RESISTED

Did they resist the mindshield?

COMPONENT_OFFER_INTERRUPT

Interrupts the offer proc

COMPONENT_OFFER_TAKE_INTERRUPT

Interrupts the offer acceptance

COMPONENT_STOP_EXPORT

Stops the export from calling sell_object() on the item, so you can handle it manually.

COMPONENT_STOP_EXPORT_REPORT

Stops the export from adding the export information to the report, so you can handle it manually.

COMSIG_AIRLOCK_SET_BOLT

from /obj/machinery/door/airlock/set_bolt():

COMSIG_ARCADE_PRIZEVEND

from /obj/machinery/computer/arcade/prizevend(mob/user, prizes = 1)

COMSIG_ARMOR_PLATED

Called when an armor plate is successfully applied to an object

COMSIG_ASSEMBLY_PULSED

from /obj/item/assembly/proc/pulsed(mob/pulser)

COMSIG_ATMOS_MACHINE_SET_ON

from /obj/machinery/atmospherics/set_on(active): (on)

COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED

Sent from /obj/item/update_weight_class(), to its loc. (obj/item/changed_item, old_w_class, new_w_class)

COMSIG_BEACON_DISABLED

from /obj/item/beacon/proc/turn_off()

COMSIG_BIBLE_SMACKED

from /obj/item/book/bible/interact_with_atom(): (mob/user)

COMSIG_CAMERA_IMAGE_CAPTURED

from /obj/item/camera/captureimage(): (atom/target, mob/user)

COMSIG_CARBON_BUMPED_AIRLOCK_OPEN

from /obj/machinery/door/airlock/bumpopen(), to the carbon who bumped: (airlock)

COMSIG_CASING_EJECTED

called in /obj/item/gun/ballistic/process_chamber (casing)

COMSIG_CASING_READY_PROJECTILE

from the base of /obj/item/ammo_casing/ready_proj() : (atom/target, mob/living/user, quiet, zone_override, atom/fired_from)

COMSIG_CLOSET_DELIVERED

a deliver_first element closet was successfully delivered

COMSIG_CLOSET_INSERT

Closets +From base of [/obj/structure/closet/proc/insert]: (atom/movable/inserted)

COMSIG_CLOSET_POST_CLOSE

From close

COMSIG_CLOSET_POST_OPEN

From open: (forced)

COMSIG_CLOSET_PRE_CLOSE

From close

COMSIG_CLOSET_PRE_OPEN

From open: (forced)

COMSIG_COMPUTER_RECEIVED_MESSAGE

from /datum/computer_file/program/messenger/proc/receive_message

COMSIG_CRYO_SET_ON

from /obj/machinery/cryo_cell/set_on(bool): (on)

COMSIG_CURSED_SLOT_MACHINE_LOST

from /obj/structure/cursed_slot_machine/determine_victor() when someone loses.

COMSIG_CURSED_SLOT_MACHINE_USE

from /obj/structure/cursed_slot_machine/handle_status_effect() when someone pulls the handle on the slot machine

COMSIG_DART_INSERT_ADDED

from /datum/component/dart_insert/add_to_dart() : (obj/item/ammo_casing, mob/user)

COMSIG_DART_INSERT_PARENT_RESKINNED

from /datum/component/dart_insert/on_reskin()

COMSIG_DART_INSERT_REMOVED

from /datum/component/dart_insert/remove_from_dart() : (obj/ammo_casing/dart, mob/user)

COMSIG_DETECTIVE_SCANNED

from /obj/item/detective_scanner/scan(): (mob/user, list/extra_data)

COMSIG_EIGENSTATE_ACTIVATE

Eigenstasium +From base of [/datum/controller/subsystem/eigenstates/proc/use_eigenlinked_atom]: (var/target)

COMSIG_EMBED_TRY_FORCE

from /obj/item/proc/tryEmbed sent when trying to force an embed (mainly for projectiles and eating glass)

COMSIG_END_BIBLE_CHAIN

stops the bible chain from continuing. When all of the effects of the bible smacking have been moved to a signal we can kill this

COMSIG_FIREALARM_ON_TRIGGER

from /obj/machinery/fire_alarm/reset(), /obj/machinery/fire_alarm/alarm(): (status)

COMSIG_FIRE_CASING

sent to targets during the process_hit proc of projectiles

COMSIG_GLOB_CURSED_SLOT_MACHINE_WON

from /obj/structure/cursed_slot_machine/determine_victor() when someone finally wins.

COMSIG_GRENADE_ARMED

called in /obj/item/grenade/proc/arm_grenade() and /obj/item/grenade/gas_crystal/arm_grenade(): (det_time, delayoverride)

COMSIG_GRENADE_DETONATE

called in /obj/item/grenade/proc/detonate(): (lanced_by)

COMSIG_GUN_BEING_SAWNOFF

called in /obj/item/gun/ballistic/sawoff(mob/user, obj/item/saw, handle_modifications) : (mob/user)

COMSIG_GUN_CHAMBER_PROCESSED

called in /obj/item/gun/process_chamber (src)

COMSIG_GUN_FIRED

called in /obj/item/gun/process_fire (user, target, params, zone_override)

COMSIG_GUN_TRY_FIRE

called in /obj/item/gun/fire_gun (user, target, flag, params)

COMSIG_ID_CARD_NTPAY_MONEY_RECEIVED

from /datum/computer_file/program/nt_pay/_pay(), sent to every physical card of a bank account: (computer, money_received)

COMSIG_IMPLANT_ACTIVATED

from base of /obj/item/implant/proc/activate(): ()

called on implants being implanted into someone with an uplink implant: (datum/component/uplink)

COMSIG_IMPLANT_IMPLANTED

called on implants, after a successful implantation: (mob/living/target, mob/user, silent, force)

COMSIG_IMPLANT_IMPLANTING

from base of /obj/item/implant/proc/implant(): (list/args)

COMSIG_IMPLANT_OTHER

called on already installed implants when a new one is being added in /obj/item/implant/proc/implant(): (list/args, obj/item/implant/new_implant)

COMSIG_IMPLANT_REMOVED

called on implants, after an implant has been removed: (mob/living/source, silent, special)

COMSIG_ITEM_AFTERATTACK

from base of obj/item/attack(): (atom/target, mob/user, proximity_flag, click_parameters)

COMSIG_ITEM_APPLY_FANTASY_BONUSES

from base of obj/item/apply_fantasy_bonuses(): (bonus)

COMSIG_ITEM_ATTACK

from base of /obj/item/attack(): (mob/living, mob/living, params)

COMSIG_ITEM_ATTACK_ATOM

from base of obj/item/attack_atom(): (/atom, /mob)

COMSIG_ITEM_ATTACK_EFFECT

sent from obj/effect/attackby(): (/obj/effect/hit_effect, /mob/living/attacker, params)

COMSIG_ITEM_ATTACK_SECONDARY

From base of [/obj/item/proc/attack_secondary()]: (atom/target, mob/user, params)

COMSIG_ITEM_ATTACK_SELF

from base of obj/item/attack_self(): (/mob)

COMSIG_ITEM_ATTACK_ZONE

from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone)

COMSIG_ITEM_ATTEMPT_TC_REIMBURSE

Called on component/uplink/OnAttackBy(..)

COMSIG_ITEM_CAN_DISARM_ATTACK

from base of datum/element/disarm_attack/secondary_attack(), used to prevent shoving: (victim, user, send_message)

COMSIG_ITEM_DISABLE_EMBED

from /obj/item/proc/disableEmbedding:

COMSIG_ITEM_DRIED

Called when an item is dried by a drying rack

COMSIG_ITEM_DROPPED

from base of obj/item/dropped(): (mob/user)

COMSIG_ITEM_EMBEDDED

from base of obj/item/embedded(): (atom/target, obj/item/bodypart/part)

COMSIG_ITEM_EQUIPPED

from base of obj/item/equipped(): (mob/equipper, slot)

COMSIG_ITEM_EQUIPPED_AS_OUTFIT

from base of obj/item/on_outfit_equip(): (mob/equipper, visuals_only, slot)

COMSIG_ITEM_EXPORTED

called when an item is sold by the exports subsystem

COMSIG_ITEM_FAILED_EMBED

from base of obj/item/failedEmbed()

COMSIG_ITEM_GET_WORN_OVERLAYS

Called by /obj/item/proc/worn_overlays(list/overlays, mutable_appearance/standing, isinhands, icon_file)

COMSIG_ITEM_HIT_REACT

from base of obj/item/hit_reaction(): (owner, hitby, attack_text, final_block_chance, damage, attack_type, damage_type)

COMSIG_ITEM_OFFERING

Called when an item is being offered, from [/obj/item/proc/on_offered(mob/living/carbon/offerer)]

COMSIG_ITEM_OFFER_TAKEN

Called when an someone tries accepting an offered item, from [/obj/item/proc/on_offer_taken(mob/living/carbon/offerer, mob/living/carbon/taker)]

COMSIG_ITEM_ON_COMPOSTED

from /obj/machinery/hydroponics/attackby(obj/item/O, mob/user, params) when an object is used as compost: (mob/user)

COMSIG_ITEM_ON_GRIND

from base of obj/item/on_grind(): ())

COMSIG_ITEM_ON_JUICE

from base of obj/item/on_juice(): ()

COMSIG_ITEM_PICKUP

from base of obj/item/pickup(): (/mob/taker)

COMSIG_ITEM_POST_EQUIPPED

From base of obj/item/on_equipped() (mob/equipped, slot)

COMSIG_ITEM_POST_UNEQUIP

called on /obj/item AFTER unequip from base of [mob/proc/doUnEquip]: (force, atom/newloc, no_move, invdrop, silent)

COMSIG_ITEM_PRE_ATTACK

from base of obj/item/pre_attack(): (atom/target, mob/user, params)

COMSIG_ITEM_PRE_ATTACK_SECONDARY

From base of [/obj/item/proc/pre_attack_secondary()]: (atom/target, mob/user, params)

COMSIG_ITEM_PRE_EXPORT

called before an item is sold by the exports system.

COMSIG_ITEM_PRE_UNEQUIP

called on /obj/item before unequip from base of [mob/proc/doUnEquip]: (force, atom/newloc, no_move, invdrop, silent)

COMSIG_ITEM_RECHARGED

Called when an item gets recharged by the ammo powerup

COMSIG_ITEM_REMOVE_FANTASY_BONUSES

from base of obj/item/remove_fantasy_bonuses(): (bonus)

COMSIG_ITEM_SHARPEN_ACT

from base of item/sharpener/attackby(): (amount, max)

COMSIG_ITEM_SPLIT_PROFIT

called when getting the item's exact ratio for cargo's profit.

COMSIG_ITEM_SPLIT_PROFIT_DRY

called when getting the item's exact ratio for cargo's profit, without selling the item.

COMSIG_ITEM_STORED

from base of datum/storage/handle_enter(): (datum/storage/storage)

COMSIG_ITEM_TALK_INTO

called from base of /obj/item/proc/talk_into(): (atom/movable/speaker, message, channel, list/spans, language, list/message_mods)

COMSIG_ITEM_UI_ACTION_CLICK

Sebt from obj/item/ui_action_click(): (mob/user, datum/action)

COMSIG_ITEM_UI_ACTION_SLOT_CHECKED

Sent from obj/item/item_action_slot_check(): (mob/user, datum/action, slot)

COMSIG_ITEM_UNEMBEDDED

from base of datum/component/embedded/safeRemove(): (mob/living/carbon/victim)

COMSIG_ITEM_UNSTORED

from base of datum/storage/handle_exit(): (datum/storage/storage)

COMSIG_ITEM_UNWRAPPED

called when a wrapped up item is opened by hand

COMSIG_ITEM_WEIGHT_CLASS_CHANGED

Sent from /obj/item/update_weight_class(). (old_w_class, new_w_class)

COMSIG_IV_ATTACH

from obj/machinery/iv_drip/IV_attach(target, usr) : (attachee)

COMSIG_IV_DETACH

from obj/machinery/iv_drip/IV_detach() : (detachee)

COMSIG_LIGHT_SWITCH_SET

from /obj/machinery/light_switch/set_lights(), sent to every switch in the area: (status)

COMSIG_MACHINERY_BROKEN

from /obj/machinery/atom_break(damage_flag): (damage_flag)

COMSIG_MACHINERY_DEFAULT_ROTATE_WRENCH

from /obj/machinery/default_change_direction_wrench: (mob/user, obj/item/wrench)

COMSIG_MACHINERY_DESTRUCTIVE_SCAN

from /obj/machinery/destructive_scanner/proc/open(aggressive): Runs when the destructive scanner scans a group of objects. (list/scanned_atoms)

COMSIG_MACHINERY_POWER_LOST

from base power_change() when power is lost

COMSIG_MACHINERY_POWER_RESTORED

from base power_change() when power is restored

COMSIG_MACHINERY_REFRESH_PARTS

from /obj/machinery/RefreshParts: ()

COMSIG_MACHINERY_SET_OCCUPANT

from /obj/machinery/set_occupant(atom/movable/O): (new_occupant)

COMSIG_MACHINERY_START_PROCESSING_AIR

from /datum/controller/subsystem/air/proc/start_processing_machine: ()

COMSIG_MACHINERY_STOP_PROCESSING_AIR

from /datum/controller/subsystem/air/proc/stop_processing_machine: ()

COMSIG_MECHA_ACTION_TRIGGER

sent from mecha action buttons to the mecha they're linked to

COMSIG_MECHA_DRILL_MOB

sent when you are able to drill through a mob

COMSIG_MECHA_EQUIPMENT_ATTACHED

sent if you attach equipment to mecha

COMSIG_MECHA_EQUIPMENT_CLICK

sent from clicking while you have equipment selected.

COMSIG_MECHA_EQUIPMENT_DETACHED

sent if you detach equipment to mecha

COMSIG_MECHA_MELEE_CLICK

sent from clicking while you have no equipment selected. Sent before cooldown and adjacency checks, so you can use this for infinite range things if you want.

COMSIG_MINDSHIELD_IMPLANTED

called once a mindshield is implanted: (mob/user)

COMSIG_MINE_TRIGGERED

from /obj/effect/mine/proc/triggermine:

COMSIG_MMI_SET_BRAINMOB

from base of /obj/item/mmi/set_brainmob(): (mob/living/brain/new_brainmob)

COMSIG_MOB_EQUIPPED_ITEM

A mob has just equipped an item. Called on /mob from base of /obj/item/equipped(): (/obj/item/equipped_item, slot)

COMSIG_MOB_FIRED_GUN

called in /obj/item/gun/process_fire (src, target, params, zone_override, bonus_spread_values)

COMSIG_MOB_GRENADE_ARMED

called in /obj/item/grenade/gas_crystal/arm_grenade(): (armed_by, nade, det_time, delayoverride)

COMSIG_MOB_UNEQUIPPED_ITEM

A mob has just unequipped an item.

COMSIG_MULTITOOL_REMOVE_BUFFER

From /obj/item/multitool/remove_buffer(): (buffer)

COMSIG_OBJ_ATTEMPT_CHARGE

called when the payment component tries to charge an account.

COMSIG_OBJ_ATTEMPT_CHARGE_CHANGE

Called when a payment component changes value

COMSIG_OBJ_DECONSTRUCT

from base of obj/deconstruct(): (disassembled)

COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH

from base of code/game/machinery

COMSIG_OBJ_HIDE

from base of /turf/proc/levelupdate(). (intact) true to hide and false to unhide

COMSIG_OBJ_PAINTED

from /obj/item/toy/crayon/spraycan/use_on: (user, spraycan, color_is_dark)

COMSIG_OBJ_RESKIN

from /obj/obj_reskin: (mob/user, skin)

COMSIG_OBJ_UNFREEZE

from /obj/proc/unfreeze()

COMSIG_ORM_COLLECTED_ORE

from /obj/machinery/mineral/ore_redemption/pickup_item when it successfully picks something up

COMSIG_PEN_ROTATED

called after rotation in /obj/item/pen/attack_self(): (rotation, mob/living/carbon/user)

COMSIG_PLUNGER_ACT

from /obj/plunger_act when an object is being plungered

COMSIG_POSTER_TRAP_SUCCEED

from /obj/structure/sign/poster/trap_succeeded() : (mob/user)

COMSIG_PRE_MINDSHIELD_IMPLANT

called as a mindshield is implanted: (mob/user)

COMSIG_PROJECTILE_BEFORE_FIRE

from base of /obj/projectile/proc/fire(): (obj/projectile, atom/original_target)

COMSIG_PROJECTILE_BEFORE_MOVE

from the base of /obj/projectile/process(): ()

COMSIG_PROJECTILE_FIRE

from the base of /obj/projectile/proc/fire(): ()

COMSIG_PROJECTILE_FIRER_BEFORE_FIRE

from base of /obj/projectile/proc/fire(): (obj/projectile, atom/firer, atom/original_target)

COMSIG_PROJECTILE_ON_EMBEDDED

sent to the projectile when successfully embedding into something

COMSIG_PROJECTILE_ON_HIT

from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, angle, hit_limb, blocked)

COMSIG_PROJECTILE_ON_SPAWN_DROP

sent to the projectile after an item is spawned by the projectile_drop element: (new_item)

COMSIG_PROJECTILE_ON_SPAWN_EMBEDDED

sent to the projectile when spawning the item (shrapnel) that may be embedded: (new_item)

COMSIG_PROJECTILE_PIXEL_STEP

from /obj/projectile/pixel_move(): ()

COMSIG_PROJECTILE_PREHIT

sent to targets during the process_hit proc of projectiles

COMSIG_PROJECTILE_RANGE

from the base of /obj/projectile/Range(): ()

COMSIG_PROJECTILE_RANGE_OUT

from the base of /obj/projectile/on_range(): ()

COMSIG_PROJECTILE_SELF_ON_HIT

from base of /obj/projectile/proc/on_hit(), like COMSIG_PROJECTILE_ON_HIT but on the projectile itself and with the hit limb (if any): (atom/movable/firer, atom/target, angle, hit_limb, blocked)

COMSIG_PROJECTILE_SELF_PREHIT

sent to self during the process_hit proc of projectiles

COMSIG_RADIO_NEW_FREQUENCY

called from base of /obj/item/radio/proc/set_frequency(): (list/args)

COMSIG_RADIO_NEW_MESSAGE

called from base of /obj/item/radio/talk_into(): (atom/movable/M, message, channel)

COMSIG_RADIO_RECEIVE_MESSAGE

called from base of /obj/item/radio/proc/on_receive_messgae(): (list/data)

COMSIG_SHOES_STEP_ACTION

from [/mob/living/carbon/human/Move]: ()

COMSIG_SPEED_POTION_APPLIED

from base of /obj/item/slimepotion/speed/interact_with_atom(): (obj/target, /obj/src, mob/user)

COMSIG_STACK_CAN_MERGE

from /obj/item/stack/proc/can_merge: (obj/item/stack/merge_with, in_hand)

COMSIG_SUPERMATTER_CONSUMED

from /datum/component/supermatter_crystal/proc/consume() +called on the thing consumed, passes the thing which consumed it

COMSIG_SUPERMATTER_DELAM_ALARM

from /obj/machinery/power/supermatter_crystal/process_atmos(); when the SM sounds an audible alarm

COMSIG_SUPPLYPOD_LANDED

from [/obj/structure/closet/supplypod/proc/preOpen]:

COMSIG_TABLET_CHANGE_ID

called on pda when the user changes the ringtone: (mob/living/user, new_ringtone)

COMSIG_TELEPORTER_NEW_TARGET

from /obj/machinery/computer/teleporter/proc/set_target(target, old_target)

COMSIG_TOOL_IN_USE

from base of /obj/item/proc/tool_check_callback: (mob/living/user)

COMSIG_TOOL_START_USE

from base of /obj/item/proc/tool_start_check: (mob/living/user)

COMSIG_TRAITOR_ITEM_USED

Called when a holoparasite/guardiancreator is used.

COMSIG_TRY_USE_MACHINE

from /obj/machinery/can_interact(mob/user): Called on user when attempting to interact with a machine (obj/machinery/machine)

COMSIG_UNDERTILE_UPDATED

from /datum/element/undertile/hide()

COMSIG_VALVE_SET_OPEN

from /obj/machinery/atmospherics/components/binary/valve/toggle(): (on)

COMSIG_VIM_BUZZ_USED

from /datum/action/vehicle/sealed/noise/buzz/Trigger(): ()

COMSIG_VIM_CHIME_USED

from /datum/action/vehicle/sealed/noise/chime/Trigger(): ()

COMSIG_VIM_HEADLIGHTS_TOGGLED

from /datum/action/vehicle/sealed/headlights/vim/Trigger(): (headlights_on)

COMSIG_VIRTUAL_PET_LEVEL_UP

from /datum/computer_file/program/virtual_pet/proc/handle_level_up

SLOT_MACHINE_USE_CANCEL

we've used up the number of times we may use this slot machine. womp womp.

SLOT_MACHINE_USE_POSTPONE

we haven't used up all our attempts to gamble away our life but we should chill for a few seconds

STOP_BUMP

Return to stop the door opening on bump.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_operating_computer.html b/code/__DEFINES/dcs/signals/signals_operating_computer.html new file mode 100644 index 0000000000000..9507b845b80de --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_operating_computer.html @@ -0,0 +1,3 @@ +code/__DEFINES/dcs/signals/signals_operating_computer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_operating_computer.dm

COMSIG_OPERATING_COMPUTER_AUTOPSY_COMPLETEFired when a autopsy surgery completes. +(mob/living/target)

Define Details

COMSIG_OPERATING_COMPUTER_AUTOPSY_COMPLETE

Fired when a autopsy surgery completes. +(mob/living/target)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_operatives.html b/code/__DEFINES/dcs/signals/signals_operatives.html new file mode 100644 index 0000000000000..64dcb03e82f3b --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_operatives.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_operatives.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_operatives.dm

COMSIG_NUKE_TEAM_ADDITIONFor when a new teammate is added to a nukie team

Define Details

COMSIG_NUKE_TEAM_ADDITION

For when a new teammate is added to a nukie team

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_painting.html b/code/__DEFINES/dcs/signals/signals_painting.html new file mode 100644 index 0000000000000..310c3f851ab30 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_painting.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_painting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_painting.dm

COMSIG_PAINTING_TOOL_SET_COLORfrom base of /item/proc/set_painting_tool_color(): (chosen_color)
COMSIG_PAINTING_TOOL_GET_ADDITIONAL_DATAfrom base of /item/canvas/ui_data(): (data)
COMSIG_PAINTING_TOOL_PALETTE_COLOR_CHANGEDfrom base of /item/canvas/ui_act(), "change_color" action: (chosen_color, color_index)

Define Details

COMSIG_PAINTING_TOOL_GET_ADDITIONAL_DATA

from base of /item/canvas/ui_data(): (data)

COMSIG_PAINTING_TOOL_PALETTE_COLOR_CHANGED

from base of /item/canvas/ui_act(), "change_color" action: (chosen_color, color_index)

COMSIG_PAINTING_TOOL_SET_COLOR

from base of /item/proc/set_painting_tool_color(): (chosen_color)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_proxmonitor.html b/code/__DEFINES/dcs/signals/signals_proxmonitor.html new file mode 100644 index 0000000000000..17e354016f95f --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_proxmonitor.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_proxmonitor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_proxmonitor.dm

COMSIG_DAMPENER_CAPTURECalled when a projectile dampener captures an object.
COMSIG_DAMPENER_RELEASECalled when a projectile dampener releases an object.

Define Details

COMSIG_DAMPENER_CAPTURE

Called when a projectile dampener captures an object.

COMSIG_DAMPENER_RELEASE

Called when a projectile dampener releases an object.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_radiation.html b/code/__DEFINES/dcs/signals/signals_radiation.html new file mode 100644 index 0000000000000..500abb84d9c13 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_radiation.html @@ -0,0 +1,13 @@ +code/__DEFINES/dcs/signals/signals_radiation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_radiation.dm

COMSIG_IN_RANGE_OF_IRRADIATIONFrom the radiation subsystem, called before a potential irradiation. +This does not guarantee radiation can reach or will succeed, but merely that there's a radiation source within range. +(datum/radiation_pulse_information/pulse_information, insulation_to_target)
COMSIG_IN_THRESHOLD_OF_IRRADIATIONFired when the target could be irradiated, right before the chance check is rolled. +(datum/radiation_pulse_information/pulse_information)
SKIP_MINIMUM_EXPOSURE_TIME_CHECKIf this is flipped, then minimum exposure time will not be checked. +If it is not flipped, and the pulse information has a minimum exposure time, then +the countdown will begin.
COMSIG_GEIGER_COUNTER_SCANFired when scanning something with a geiger counter. +(mob/user, obj/item/geiger_counter/geiger_counter)
COMSIG_GEIGER_COUNTER_SCAN_SUCCESSFULIf not flagged by any handler, will report the subject as being free of irradiation

Define Details

COMSIG_GEIGER_COUNTER_SCAN

Fired when scanning something with a geiger counter. +(mob/user, obj/item/geiger_counter/geiger_counter)

COMSIG_GEIGER_COUNTER_SCAN_SUCCESSFUL

If not flagged by any handler, will report the subject as being free of irradiation

COMSIG_IN_RANGE_OF_IRRADIATION

From the radiation subsystem, called before a potential irradiation. +This does not guarantee radiation can reach or will succeed, but merely that there's a radiation source within range. +(datum/radiation_pulse_information/pulse_information, insulation_to_target)

COMSIG_IN_THRESHOLD_OF_IRRADIATION

Fired when the target could be irradiated, right before the chance check is rolled. +(datum/radiation_pulse_information/pulse_information)

SKIP_MINIMUM_EXPOSURE_TIME_CHECK

If this is flipped, then minimum exposure time will not be checked. +If it is not flipped, and the pulse information has a minimum exposure time, then +the countdown will begin.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_reagent.html b/code/__DEFINES/dcs/signals/signals_reagent.html new file mode 100644 index 0000000000000..bce7220a530db --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_reagent.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_reagent.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_reagent.dm

COMSIG_ATOM_EXPOSE_REAGENTSfrom base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message)
COMPONENT_NO_EXPOSE_REAGENTSPrevents the atom from being exposed to reagents if returned on COMSIG_ATOM_EXPOSE_REAGENTS
COMSIG_ATOM_AFTER_EXPOSE_REAGENTSfrom base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message)
COMSIG_ATOM_EXPOSE_REAGENTfrom base of /datum/reagent/proc/expose_atom: (/datum/reagent, reac_volume)
COMSIG_REAGENT_EXPOSE_ATOMfrom base of /datum/reagent/proc/expose_atom: (/atom, reac_volume)
COMSIG_REAGENT_EXPOSE_OBJfrom base of /datum/reagent/proc/expose_atom: (/obj, reac_volume)
COMSIG_REAGENT_EXPOSE_MOBfrom base of /datum/reagent/proc/expose_atom: (/mob/living, reac_volume, methods, show_message, touch_protection, /mob/camera/blob) // ovemind arg is only used by blob reagents.
COMSIG_REAGENT_EXPOSE_TURFfrom base of /datum/reagent/proc/expose_atom: (/turf, reac_volume)
COMSIG_MATERIALS_INIT_MATfrom base of [/datum/materials_controller/proc/InitializeMaterial]: (/datum/material)
COMSIG_ON_MULTIPLE_LIVES_RESPAWNfrom base of [/datum/component/multiple_lives/proc/respawn]: (mob/respawned_mob, gibbed, lives_left)
COMSIG_REAGENTS_PRE_ADD_REAGENTfrom base of /datum/reagents/proc/add_reagent - Sent before the reagent is added: (reagenttype, amount, reagtemp, data, no_react)
COMPONENT_CANCEL_REAGENT_ADDPrevents the reagent from being added.
COMSIG_REAGENTS_NEW_REAGENTfrom base of /datum/reagents/proc/add_reagent: (/datum/reagent, amount, reagtemp, data, no_react)
COMSIG_REAGENTS_ADD_REAGENTfrom base of /datum/reagents/proc/add_reagent: (/datum/reagent, amount, reagtemp, data, no_react)
COMSIG_REAGENTS_DEL_REAGENTfrom base of /datum/reagents/proc/del_reagent: (/datum/reagent)
COMSIG_REAGENTS_REM_REAGENTfrom base of /datum/reagents/proc/remove_reagent: (/datum/reagent, amount)
COMSIG_REAGENTS_CLEAR_REAGENTSfrom base of /datum/reagents/proc/clear_reagents: ()
COMSIG_REAGENTS_TEMP_CHANGEfrom base of /datum/reagents/proc/set_temperature: (new_temp, old_temp)
COMSIG_REAGENTS_REACTEDfrom base of /datum/reagents/proc/handle_reactions: (num_reactions)
COMSIG_REAGENTS_REACTION_STEPfrom base of /datum/reagents/proc/process: (num_reactions)
COMSIG_REAGENTS_EXPOSE_ATOMfrom base of /atom/proc/expose_reagents: (/atom, /list, methods, volume_modifier, show_message)
COMSIG_REAGENTS_EXPOSE_OBJfrom base of /obj/proc/expose_reagents: (/obj, /list, methods, volume_modifier, show_message)
COMSIG_REAGENTS_EXPOSE_MOBfrom base of /mob/living/proc/expose_reagents: (/mob/living, /list, methods, volume_modifier, show_message, touch_protection)
COMSIG_REAGENTS_EXPOSE_TURFfrom base of /turf/proc/expose_reagents: (/turf, /list, methods, volume_modifier, show_message)
COMSIG_REAGENTS_CUP_TRANSFER_TOsent when reagents are transfered from a cup, to something refillable (atom/transfer_to)
COMSIG_REAGENTS_CUP_TRANSFER_FROMsent when reagents are transfered from some reagent container, to a cup (atom/transfer_from)

Define Details

COMPONENT_CANCEL_REAGENT_ADD

Prevents the reagent from being added.

COMPONENT_NO_EXPOSE_REAGENTS

Prevents the atom from being exposed to reagents if returned on COMSIG_ATOM_EXPOSE_REAGENTS

COMSIG_ATOM_AFTER_EXPOSE_REAGENTS

from base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message)

COMSIG_ATOM_EXPOSE_REAGENT

from base of /datum/reagent/proc/expose_atom: (/datum/reagent, reac_volume)

COMSIG_ATOM_EXPOSE_REAGENTS

from base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message)

COMSIG_MATERIALS_INIT_MAT

from base of [/datum/materials_controller/proc/InitializeMaterial]: (/datum/material)

COMSIG_ON_MULTIPLE_LIVES_RESPAWN

from base of [/datum/component/multiple_lives/proc/respawn]: (mob/respawned_mob, gibbed, lives_left)

COMSIG_REAGENTS_ADD_REAGENT

from base of /datum/reagents/proc/add_reagent: (/datum/reagent, amount, reagtemp, data, no_react)

COMSIG_REAGENTS_CLEAR_REAGENTS

from base of /datum/reagents/proc/clear_reagents: ()

COMSIG_REAGENTS_CUP_TRANSFER_FROM

sent when reagents are transfered from some reagent container, to a cup (atom/transfer_from)

COMSIG_REAGENTS_CUP_TRANSFER_TO

sent when reagents are transfered from a cup, to something refillable (atom/transfer_to)

COMSIG_REAGENTS_DEL_REAGENT

from base of /datum/reagents/proc/del_reagent: (/datum/reagent)

COMSIG_REAGENTS_EXPOSE_ATOM

from base of /atom/proc/expose_reagents: (/atom, /list, methods, volume_modifier, show_message)

COMSIG_REAGENTS_EXPOSE_MOB

from base of /mob/living/proc/expose_reagents: (/mob/living, /list, methods, volume_modifier, show_message, touch_protection)

COMSIG_REAGENTS_EXPOSE_OBJ

from base of /obj/proc/expose_reagents: (/obj, /list, methods, volume_modifier, show_message)

COMSIG_REAGENTS_EXPOSE_TURF

from base of /turf/proc/expose_reagents: (/turf, /list, methods, volume_modifier, show_message)

COMSIG_REAGENTS_NEW_REAGENT

from base of /datum/reagents/proc/add_reagent: (/datum/reagent, amount, reagtemp, data, no_react)

COMSIG_REAGENTS_PRE_ADD_REAGENT

from base of /datum/reagents/proc/add_reagent - Sent before the reagent is added: (reagenttype, amount, reagtemp, data, no_react)

COMSIG_REAGENTS_REACTED

from base of /datum/reagents/proc/handle_reactions: (num_reactions)

COMSIG_REAGENTS_REACTION_STEP

from base of /datum/reagents/proc/process: (num_reactions)

COMSIG_REAGENTS_REM_REAGENT

from base of /datum/reagents/proc/remove_reagent: (/datum/reagent, amount)

COMSIG_REAGENTS_TEMP_CHANGE

from base of /datum/reagents/proc/set_temperature: (new_temp, old_temp)

COMSIG_REAGENT_EXPOSE_ATOM

from base of /datum/reagent/proc/expose_atom: (/atom, reac_volume)

COMSIG_REAGENT_EXPOSE_MOB

from base of /datum/reagent/proc/expose_atom: (/mob/living, reac_volume, methods, show_message, touch_protection, /mob/camera/blob) // ovemind arg is only used by blob reagents.

COMSIG_REAGENT_EXPOSE_OBJ

from base of /datum/reagent/proc/expose_atom: (/obj, reac_volume)

COMSIG_REAGENT_EXPOSE_TURF

from base of /datum/reagent/proc/expose_atom: (/turf, reac_volume)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_restaurant.html b/code/__DEFINES/dcs/signals/signals_restaurant.html new file mode 100644 index 0000000000000..53d07c5ccd4c2 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_restaurant.html @@ -0,0 +1,3 @@ +code/__DEFINES/dcs/signals/signals_restaurant.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_restaurant.dm

COMSIG_ITEM_IS_CORRECT_CUSTOM_ORDERRestaurant +(wanted_item) custom order signal sent when checking if the order is correct.
COMSIG_ITEM_SOLD_TO_CUSTOMER(customer, container) venue signal sent when a venue sells an item. source is the thing sold, which can be a datum, so we send container for location checks
COMSIG_REAGENT_SOLD_TO_CUSTOMER(customer, container) venue signal sent when a venue sells an reagent. source is the thing sold, which can be a datum, so we send container for location checks
TRANSACTION_SUCCESSReturn from either above signal to denote the transaction completed successfully, so the venue can finish processing it
TRANSACTION_HANDLEDReturn from either above to stop the venue default processing, allowing you to handle cleanup / aftermath yourself

Define Details

COMSIG_ITEM_IS_CORRECT_CUSTOM_ORDER

Restaurant +(wanted_item) custom order signal sent when checking if the order is correct.

COMSIG_ITEM_SOLD_TO_CUSTOMER

(customer, container) venue signal sent when a venue sells an item. source is the thing sold, which can be a datum, so we send container for location checks

COMSIG_REAGENT_SOLD_TO_CUSTOMER

(customer, container) venue signal sent when a venue sells an reagent. source is the thing sold, which can be a datum, so we send container for location checks

TRANSACTION_HANDLED

Return from either above to stop the venue default processing, allowing you to handle cleanup / aftermath yourself

TRANSACTION_SUCCESS

Return from either above signal to denote the transaction completed successfully, so the venue can finish processing it

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_scangate.html b/code/__DEFINES/dcs/signals/signals_scangate.html new file mode 100644 index 0000000000000..5c0b529f1c8e2 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_scangate.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_scangate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_scangate.dm

COMSIG_SCANGATE_PASS_TRIGGERCalled when somebody passes through a scanner gate and it triggers
COMSIG_SCANGATE_PASS_NO_TRIGGERCalled when somebody passes through a scanner gate and it does not trigger
COMSIG_SCANGATE_SHELL_PASSCalled when something passes through a scanner gate shell

Define Details

COMSIG_SCANGATE_PASS_NO_TRIGGER

Called when somebody passes through a scanner gate and it does not trigger

COMSIG_SCANGATE_PASS_TRIGGER

Called when somebody passes through a scanner gate and it triggers

COMSIG_SCANGATE_SHELL_PASS

Called when something passes through a scanner gate shell

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_screentips.html b/code/__DEFINES/dcs/signals/signals_screentips.html new file mode 100644 index 0000000000000..bf1e083d99ec7 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_screentips.html @@ -0,0 +1,31 @@ +code/__DEFINES/dcs/signals/signals_screentips.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_screentips.dm

COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGETA "Type-A" contextual screentip interaction. +These are used for items that are defined by their behavior. They define their contextual text within themselves, +not in their targets. +Examples include syringes (LMB to inject, RMB to draw) and health analyzers (LMB to scan health/wounds, RMB for chems) +Items can override add_item_context(), and call register_item_context() in order to easily connect to this. +Called on /obj/item with a mutable screentip context list, the hovered target, and the mob hovering. +A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm) +that map to the action as text. +If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.
COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEMA "Type-B" contextual screentip interaction. +These are atoms that are defined by what happens to them. These should define contextual text within themselves, and +not in their operating tools. +Examples include construction objects (LMB with glass to put in screen for computers). +Called on /atom with a mutable screentip context list, the item being used, and the mob hovering. +A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm) +that map to the action as text. +If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.
CONTEXTUAL_SCREENTIP_SETTells the contextual screentips system that the list context was mutated.

Define Details

COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM

A "Type-B" contextual screentip interaction. +These are atoms that are defined by what happens to them. These should define contextual text within themselves, and +not in their operating tools. +Examples include construction objects (LMB with glass to put in screen for computers). +Called on /atom with a mutable screentip context list, the item being used, and the mob hovering. +A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm) +that map to the action as text. +If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.

COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET

A "Type-A" contextual screentip interaction. +These are used for items that are defined by their behavior. They define their contextual text within themselves, +not in their targets. +Examples include syringes (LMB to inject, RMB to draw) and health analyzers (LMB to scan health/wounds, RMB for chems) +Items can override add_item_context(), and call register_item_context() in order to easily connect to this. +Called on /obj/item with a mutable screentip context list, the hovered target, and the mob hovering. +A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm) +that map to the action as text. +If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.

CONTEXTUAL_SCREENTIP_SET

Tells the contextual screentips system that the list context was mutated.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_spatial_grid.html b/code/__DEFINES/dcs/signals/signals_spatial_grid.html new file mode 100644 index 0000000000000..f7abad4aeb995 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_spatial_grid.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_spatial_grid.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_spatial_grid.dm

SPATIAL_GRID_CELL_ENTEREDCalled from base of /datum/controller/subsystem/spatial_grid/proc/enter_cell: (/atom/movable)
SPATIAL_GRID_CELL_EXITEDCalled from base of /datum/controller/subsystem/spatial_grid/proc/exit_cell: (/atom/movable)

Define Details

SPATIAL_GRID_CELL_ENTERED

Called from base of /datum/controller/subsystem/spatial_grid/proc/enter_cell: (/atom/movable)

SPATIAL_GRID_CELL_EXITED

Called from base of /datum/controller/subsystem/spatial_grid/proc/exit_cell: (/atom/movable)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_species.html b/code/__DEFINES/dcs/signals/signals_species.html new file mode 100644 index 0000000000000..9218cf4b6867c --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_species.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_species.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_species.dm

COMSIG_SPECIES_GAINfrom datum/species/on_species_gain(): (datum/species/new_species, datum/species/old_species)
COMSIG_SPECIES_LOSSfrom datum/species/on_species_loss(): (datum/species/lost_species)
COMSIG_SPECIES_HANDLE_CHEMICALfrom datum/species/handle_chemical(): (datum/reagent/chem, mob/living/carbon/human/affected, seconds_per_tick, times_fired)

Define Details

COMSIG_SPECIES_GAIN

from datum/species/on_species_gain(): (datum/species/new_species, datum/species/old_species)

COMSIG_SPECIES_HANDLE_CHEMICAL

from datum/species/handle_chemical(): (datum/reagent/chem, mob/living/carbon/human/affected, seconds_per_tick, times_fired)

COMSIG_SPECIES_LOSS

from datum/species/on_species_loss(): (datum/species/lost_species)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_spell.html b/code/__DEFINES/dcs/signals/signals_spell.html new file mode 100644 index 0000000000000..7b12cf8c2daab --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_spell.html @@ -0,0 +1,9 @@ +code/__DEFINES/dcs/signals/signals_spell.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_spell.dm

COMSIG_MOB_BEFORE_SPELL_CASTSent from /datum/action/cooldown/spell/before_cast() to the caster: (datum/action/cooldown/spell/spell, atom/cast_on)
COMSIG_SPELL_BEFORE_CASTSent from /datum/action/cooldown/spell/before_cast() to the spell: (atom/cast_on)
SPELL_CANCEL_CASTReturn to prevent the spell cast from continuing.
SPELL_NO_FEEDBACKReturn from before cast signals to prevent the spell from giving off sound or invocation.
SPELL_NO_IMMEDIATE_COOLDOWNReturn from before cast signals to prevent the spell from going on cooldown before aftercast.
COMSIG_MOB_TRY_INVOKE_SPELLSent to an mob when a /datum/action/cooldown/spell calls try_invoke() to the caster: (datum/action/cooldown/spell/spell, feedback)
SPELL_INVOCATION_FAILThe spell gets canceled
SPELL_INVOCATION_ALWAYS_SUCCEEDThe spell always succeeds to invoke regardless of following checks
COMSIG_MOB_SPELL_ACTIVATEDSent from /datum/action/cooldown/spell/set_click_ability() to the caster: (datum/action/cooldown/spell/spell)
SPELL_CANCEL_ACTIVATIONSame as spell_cancel_cast, as they're able to be used interchangeably
COMSIG_MOB_CAST_SPELLSent from /datum/action/cooldown/spell/cast() to the caster: (datum/action/cooldown/spell/spell, atom/cast_on)
COMSIG_SPELL_CASTSent from /datum/action/cooldown/spell/cast() to the spell: (atom/cast_on)
COMSIG_SPELL_AFTER_CASTSent from /datum/action/cooldown/spell/after_cast() to the spell: (atom/cast_on)
COMSIG_SPELL_CAST_RESETSent from /datum/action/cooldown/spell/reset_spell_cooldown() to the spell: ()
COMSIG_MOB_PRE_INVOCATIONSent from /datum/action/cooldown/spell/proc/invocation() to the mob: (datum/source, /datum/action/cooldown/spell/spell, list/invocation)
INVOCATION_MESSAGEindex for the invocation message string
INVOCATION_TYPEindex for the invocation type string
INVOCATION_GARBLE_PROBindex for the invocation garble probability number
COMSIG_SPELL_PROJECTILE_HITSent from /datum/action/cooldown/spell/pointed/projectile/on_cast_hit: (atom/firer, atom/target, atom/hit, angle, hit_limb)
COMSIG_SPELL_AOE_ON_CASTSent from /datum/action/cooldown/spell/aoe/cast: (list/atoms_affected, atom/caster)
COMSIG_SPELL_CONE_ON_CASTSent from /datum/action/cooldown/spell/cone/cast: (list/atoms_affected, atom/caster)
COMSIG_SPELL_CONE_ON_LAYER_EFFECTSent from /datum/action/cooldown/spell/cone/do_cone_effects: (list/atoms_affected, atom/caster, level)
COMSIG_SPELL_TOUCH_HAND_HITSent from /datum/action/cooldown/spell/touch/do_hand_hit: (atom/hit, mob/living/carbon/caster, obj/item/melee/touch_attack/hand)
COMSIG_MOB_PRE_JAUNTSent from datum/action/cooldown/spell/jaunt/before_cast, before the mob enters jaunting as a pre-check: (datum/action/cooldown/spell/spell)
COMSIG_MOB_ENTER_JAUNTSent from datum/action/cooldown/spell/jaunt/enter_jaunt, to the mob jaunting: (obj/effect/dummy/phased_mob/jaunt, datum/action/cooldown/spell/spell)
COMSIG_MOB_EJECTED_FROM_JAUNTSet from /obj/effect/dummy/phased_mob after the mob is ejected from its contents: (obj/effect/dummy/phased_mob/jaunt, mob/living/unjaunter)
COMSIG_MOB_AFTER_EXIT_JAUNTSent from datum/action/cooldown/spell/jaunt/exit_jaunt, after the mob exited jaunt: (datum/action/cooldown/spell/spell)
COMSIG_MOB_PHASED_CHECKSent from /obj/effect/dummy/phased_mob/proc/phased_check when moving to the holder object: (/obj/effect/dummy/phased_mob, mob/living/phaser, turf/newloc)
COMPONENT_BLOCK_PHASED_MOVEReturn this to cancel the phased move
COMSIG_LIVING_BLOOD_CRAWL_PRE_CONSUMEDSent from/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/try_enter_jaunt, +to any unconscious / critical mobs being dragged when the jaunter enters blood: +(datum/action/cooldown/spell/jaunt/bloodcrawl/crawl, mob/living/jaunter, obj/effect/decal/cleanable/blood)
COMSIG_LIVING_BLOOD_CRAWL_CONSUMEDSent from/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/consume_victim, +to the victim being consumed by the slaughter demon. +(datum/action/cooldown/spell/jaunt/bloodcrawl/crawl, mob/living/jaunter)
COMPONENT_STOP_CONSUMPTIONReturn at any point to stop the bloodcrawl "consume" process from continuing.
COMSIG_ITEM_IMBUE_SOULSent from /datum/action/cooldown/spell/lichdom/cast(), to the item being imbued: (datum/action/cooldown/spell/spell, mob/user)
COMPONENT_BLOCK_IMBUEReturn to stop the cast and prevent the soul imbue
COMSIG_ATOM_MAGICALLY_UNLOCKEDSent from /datum/action/cooldown/spell/aoe/knock/cast(), to every nearby turf (for connect loc): (datum/action/cooldown/spell/aoe/knock/spell, mob/living/caster)
COMSIG_ITEM_MARK_RETRIEVALSent from /datum/action/cooldown/spell/summonitem/cast(), to the item being marked for recall: (datum/action/cooldown/spell/spell, mob/user)
COMPONENT_BLOCK_MARK_RETRIEVALReturn to stop the cast and prevent the item from being marked
COMSIG_MAGIC_RECALLWhen an object is retrieved by a magic recall spell. This will apply to all containers, mobs, etc. that are pulled by the spell.
COMSIG_ITEM_MAGICALLY_CHARGEDSent from /datum/action/cooldown/spell/charge/cast(), to the item in hand being charged: (datum/action/cooldown/spell/spell, mob/user)
COMPONENT_ITEM_CHARGEDReturn if an item was successful recharged
COMPONENT_ITEM_BURNT_OUTReturn if the item had a negative side effect occur while recharging

Define Details

COMPONENT_BLOCK_IMBUE

Return to stop the cast and prevent the soul imbue

COMPONENT_BLOCK_MARK_RETRIEVAL

Return to stop the cast and prevent the item from being marked

COMPONENT_BLOCK_PHASED_MOVE

Return this to cancel the phased move

COMPONENT_ITEM_BURNT_OUT

Return if the item had a negative side effect occur while recharging

COMPONENT_ITEM_CHARGED

Return if an item was successful recharged

COMPONENT_STOP_CONSUMPTION

Return at any point to stop the bloodcrawl "consume" process from continuing.

COMSIG_ATOM_MAGICALLY_UNLOCKED

Sent from /datum/action/cooldown/spell/aoe/knock/cast(), to every nearby turf (for connect loc): (datum/action/cooldown/spell/aoe/knock/spell, mob/living/caster)

COMSIG_ITEM_IMBUE_SOUL

Sent from /datum/action/cooldown/spell/lichdom/cast(), to the item being imbued: (datum/action/cooldown/spell/spell, mob/user)

COMSIG_ITEM_MAGICALLY_CHARGED

Sent from /datum/action/cooldown/spell/charge/cast(), to the item in hand being charged: (datum/action/cooldown/spell/spell, mob/user)

COMSIG_ITEM_MARK_RETRIEVAL

Sent from /datum/action/cooldown/spell/summonitem/cast(), to the item being marked for recall: (datum/action/cooldown/spell/spell, mob/user)

COMSIG_LIVING_BLOOD_CRAWL_CONSUMED

Sent from/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/consume_victim, +to the victim being consumed by the slaughter demon. +(datum/action/cooldown/spell/jaunt/bloodcrawl/crawl, mob/living/jaunter)

COMSIG_LIVING_BLOOD_CRAWL_PRE_CONSUMED

Sent from/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/try_enter_jaunt, +to any unconscious / critical mobs being dragged when the jaunter enters blood: +(datum/action/cooldown/spell/jaunt/bloodcrawl/crawl, mob/living/jaunter, obj/effect/decal/cleanable/blood)

COMSIG_MAGIC_RECALL

When an object is retrieved by a magic recall spell. This will apply to all containers, mobs, etc. that are pulled by the spell.

COMSIG_MOB_AFTER_EXIT_JAUNT

Sent from datum/action/cooldown/spell/jaunt/exit_jaunt, after the mob exited jaunt: (datum/action/cooldown/spell/spell)

COMSIG_MOB_BEFORE_SPELL_CAST

Sent from /datum/action/cooldown/spell/before_cast() to the caster: (datum/action/cooldown/spell/spell, atom/cast_on)

COMSIG_MOB_CAST_SPELL

Sent from /datum/action/cooldown/spell/cast() to the caster: (datum/action/cooldown/spell/spell, atom/cast_on)

COMSIG_MOB_EJECTED_FROM_JAUNT

Set from /obj/effect/dummy/phased_mob after the mob is ejected from its contents: (obj/effect/dummy/phased_mob/jaunt, mob/living/unjaunter)

COMSIG_MOB_ENTER_JAUNT

Sent from datum/action/cooldown/spell/jaunt/enter_jaunt, to the mob jaunting: (obj/effect/dummy/phased_mob/jaunt, datum/action/cooldown/spell/spell)

COMSIG_MOB_PHASED_CHECK

Sent from /obj/effect/dummy/phased_mob/proc/phased_check when moving to the holder object: (/obj/effect/dummy/phased_mob, mob/living/phaser, turf/newloc)

COMSIG_MOB_PRE_INVOCATION

Sent from /datum/action/cooldown/spell/proc/invocation() to the mob: (datum/source, /datum/action/cooldown/spell/spell, list/invocation)

COMSIG_MOB_PRE_JAUNT

Sent from datum/action/cooldown/spell/jaunt/before_cast, before the mob enters jaunting as a pre-check: (datum/action/cooldown/spell/spell)

COMSIG_MOB_SPELL_ACTIVATED

Sent from /datum/action/cooldown/spell/set_click_ability() to the caster: (datum/action/cooldown/spell/spell)

COMSIG_MOB_TRY_INVOKE_SPELL

Sent to an mob when a /datum/action/cooldown/spell calls try_invoke() to the caster: (datum/action/cooldown/spell/spell, feedback)

COMSIG_SPELL_AFTER_CAST

Sent from /datum/action/cooldown/spell/after_cast() to the spell: (atom/cast_on)

COMSIG_SPELL_AOE_ON_CAST

Sent from /datum/action/cooldown/spell/aoe/cast: (list/atoms_affected, atom/caster)

COMSIG_SPELL_BEFORE_CAST

Sent from /datum/action/cooldown/spell/before_cast() to the spell: (atom/cast_on)

COMSIG_SPELL_CAST

Sent from /datum/action/cooldown/spell/cast() to the spell: (atom/cast_on)

COMSIG_SPELL_CAST_RESET

Sent from /datum/action/cooldown/spell/reset_spell_cooldown() to the spell: ()

COMSIG_SPELL_CONE_ON_CAST

Sent from /datum/action/cooldown/spell/cone/cast: (list/atoms_affected, atom/caster)

COMSIG_SPELL_CONE_ON_LAYER_EFFECT

Sent from /datum/action/cooldown/spell/cone/do_cone_effects: (list/atoms_affected, atom/caster, level)

COMSIG_SPELL_PROJECTILE_HIT

Sent from /datum/action/cooldown/spell/pointed/projectile/on_cast_hit: (atom/firer, atom/target, atom/hit, angle, hit_limb)

COMSIG_SPELL_TOUCH_HAND_HIT

Sent from /datum/action/cooldown/spell/touch/do_hand_hit: (atom/hit, mob/living/carbon/caster, obj/item/melee/touch_attack/hand)

INVOCATION_GARBLE_PROB

index for the invocation garble probability number

INVOCATION_MESSAGE

index for the invocation message string

INVOCATION_TYPE

index for the invocation type string

SPELL_CANCEL_ACTIVATION

Same as spell_cancel_cast, as they're able to be used interchangeably

SPELL_CANCEL_CAST

Return to prevent the spell cast from continuing.

SPELL_INVOCATION_ALWAYS_SUCCEED

The spell always succeeds to invoke regardless of following checks

SPELL_INVOCATION_FAIL

The spell gets canceled

SPELL_NO_FEEDBACK

Return from before cast signals to prevent the spell from giving off sound or invocation.

SPELL_NO_IMMEDIATE_COOLDOWN

Return from before cast signals to prevent the spell from going on cooldown before aftercast.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_storage.html b/code/__DEFINES/dcs/signals/signals_storage.html new file mode 100644 index 0000000000000..1d11587cbd893 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_storage.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_storage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_storage.dm

COMSIG_STORAGE_DUMP_CONTENTSent when /datum/storage/dump_content_at(): (obj/item/storage_source, mob/user)
STORAGE_DUMP_HANDLEDReturn to stop the standard dump behavior.
COMSIG_STORAGE_DUMP_POST_TRANSFERSent after dumping into some other storage object: (atom/dest_object, mob/user)
COMSIG_ATOM_STORED_ITEMFired off the storage's PARENT when an ITEM is STORED INSIDE. (obj/item, mob, force)
COMSIG_ATOM_REMOVED_ITEMFired off the storage's PARENT when an ITEM is REMOVED. (obj/item, atom, silent)
COMSIG_STORAGE_STORED_ITEMSent to the STORAGE when an ITEM is STORED INSIDE. (obj/item, mob, force)
COMSIG_STORAGE_REMOVED_ITEMSent to the STORAGE when an ITEM is REMOVED. (obj/item, atom, silent)

Define Details

COMSIG_ATOM_REMOVED_ITEM

Fired off the storage's PARENT when an ITEM is REMOVED. (obj/item, atom, silent)

COMSIG_ATOM_STORED_ITEM

Fired off the storage's PARENT when an ITEM is STORED INSIDE. (obj/item, mob, force)

COMSIG_STORAGE_DUMP_CONTENT

Sent when /datum/storage/dump_content_at(): (obj/item/storage_source, mob/user)

COMSIG_STORAGE_DUMP_POST_TRANSFER

Sent after dumping into some other storage object: (atom/dest_object, mob/user)

COMSIG_STORAGE_REMOVED_ITEM

Sent to the STORAGE when an ITEM is REMOVED. (obj/item, atom, silent)

COMSIG_STORAGE_STORED_ITEM

Sent to the STORAGE when an ITEM is STORED INSIDE. (obj/item, mob, force)

STORAGE_DUMP_HANDLED

Return to stop the standard dump behavior.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_subsystem.html b/code/__DEFINES/dcs/signals/signals_subsystem.html new file mode 100644 index 0000000000000..6e66deb6b3b51 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_subsystem.html @@ -0,0 +1,3 @@ +code/__DEFINES/dcs/signals/signals_subsystem.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_subsystem.dm

COMSIG_SUBSYSTEM_POST_INITIALIZESubsystem signals +From base of datum/controller/subsystem/Initialize
COMSIG_TICKER_ENTER_PREGAMECalled when the ticker enters the pre-game phase
COMSIG_TICKER_ENTER_SETTING_UPCalled when the ticker sets up the game for start
COMSIG_TICKER_ERROR_SETTING_UPCalled when the ticker fails to set up the game for start
COMSIG_TICKER_ROUND_STARTINGCalled when the round has started, but before GAME_STATE_PLAYING.
COMSIG_ADDED_POINT_OF_INTERESTSent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_added : (atom/new_poi)
COMSIG_REMOVED_POINT_OF_INTERESTSent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_removed : (atom/old_poi)

Define Details

COMSIG_ADDED_POINT_OF_INTEREST

Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_added : (atom/new_poi)

COMSIG_REMOVED_POINT_OF_INTEREST

Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_removed : (atom/old_poi)

COMSIG_SUBSYSTEM_POST_INITIALIZE

Subsystem signals +From base of datum/controller/subsystem/Initialize

COMSIG_TICKER_ENTER_PREGAME

Called when the ticker enters the pre-game phase

COMSIG_TICKER_ENTER_SETTING_UP

Called when the ticker sets up the game for start

COMSIG_TICKER_ERROR_SETTING_UP

Called when the ticker fails to set up the game for start

COMSIG_TICKER_ROUND_STARTING

Called when the round has started, but before GAME_STATE_PLAYING.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_swab.html b/code/__DEFINES/dcs/signals/signals_swab.html new file mode 100644 index 0000000000000..76e0b569e379a --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_swab.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_swab.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_swab.dm

COMSIG_SWAB_FOR_SAMPLESCalled when you try to swab something using the swabable component, includes a mutable list of what has been swabbed so far so it can be modified.

Define Details

COMSIG_SWAB_FOR_SAMPLES

Called when you try to swab something using the swabable component, includes a mutable list of what has been swabbed so far so it can be modified.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_techweb.html b/code/__DEFINES/dcs/signals/signals_techweb.html new file mode 100644 index 0000000000000..9fd94918f6e1e --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_techweb.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_techweb.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_techweb.dm

COMSIG_TECHWEB_ADD_DESIGNCalled when a techweb design is researched (datum/design/researched_design, custom)
COMSIG_TECHWEB_REMOVE_DESIGNCalled when a techweb design is removed (datum/design/removed_design, custom)

Define Details

COMSIG_TECHWEB_ADD_DESIGN

Called when a techweb design is researched (datum/design/researched_design, custom)

COMSIG_TECHWEB_REMOVE_DESIGN

Called when a techweb design is removed (datum/design/removed_design, custom)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_tools.html b/code/__DEFINES/dcs/signals/signals_tools.html new file mode 100644 index 0000000000000..491841d63cf16 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_tools.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_tools.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_tools.dm

COMSIG_TOOL_ATOM_ACTED_PRIMARYCalled from /atom/proc/tool_act (atom)
COMSIG_TOOL_ATOM_ACTED_SECONDARYCalled from /atom/proc/tool_act (atom)

Define Details

COMSIG_TOOL_ATOM_ACTED_PRIMARY

Called from /atom/proc/tool_act (atom)

COMSIG_TOOL_ATOM_ACTED_SECONDARY

Called from /atom/proc/tool_act (atom)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_traitor.html b/code/__DEFINES/dcs/signals/signals_traitor.html new file mode 100644 index 0000000000000..49ee4e9fafa55 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_traitor.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_traitor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_traitor.dm

COMSIG_GLOB_TRAITOR_OBJECTIVE_COMPLETEDCalled when the hack_comm_console objective is completed.
COMSIG_UPLINK_HANDLER_ON_UPDATECalled whenever the uplink handler receives any sort of update. Used by uplinks to update their UI. No arguments passed
COMSIG_UPLINK_HANDLER_REPLACEMENT_ORDEREDSent from the uplink handler when the traitor uses the syndicate uplink beacon to order a replacement uplink.
COMSIG_TRAITOR_OBJECTIVE_PRE_GENERATECalled before the traitor objective is generated
COMSIG_TRAITOR_OBJECTIVE_COMPLETEDCalled whenever the traitor objective is completed
COMSIG_TRAITOR_OBJECTIVE_FAILEDCalled whenever the traitor objective is failed
COMSIG_TRAITOR_BUG_PLANTED_GROUNDCalled when a traitor bug is planted in an area
COMSIG_TRAITOR_BUG_PLANTED_OBJECTCalled when a traitor bug is planted
COMSIG_TRAITOR_BUG_PRE_PLANTED_OBJECTCalled before a traitor bug is planted, where it can still be overrided
COMSIG_TRAITOR_MACHINE_TRAP_TRIGGEREDCalled when a machine a traitor has booby trapped triggers its payload
COMSIG_DEMORALISING_EVENTCalled when a device a traitor has planted effects someone's mood. Pass the mind of the viewer.
COMSIG_TRAITOR_GRAFFITI_DRAWNCalled when you finish drawing some graffiti so we can register more signals on it. Pass the graffiti effect.
COMSIG_TRAITOR_GRAFFITI_SLIPPEDCalled when someone slips on some seditious graffiti. Pass the mind of the viewer.
COMSIG_EHMS_INJECTOR_INJECTEDFor when someone is injected with the EHMS virus from /datum/traitor_objective_category/infect
COMSIG_ROYALE_IMPLANTEDCalled by an battle royale implanter when successfully implanting someone. Passes the implanted mob.

Define Details

COMSIG_DEMORALISING_EVENT

Called when a device a traitor has planted effects someone's mood. Pass the mind of the viewer.

COMSIG_EHMS_INJECTOR_INJECTED

For when someone is injected with the EHMS virus from /datum/traitor_objective_category/infect

COMSIG_GLOB_TRAITOR_OBJECTIVE_COMPLETED

Called when the hack_comm_console objective is completed.

COMSIG_ROYALE_IMPLANTED

Called by an battle royale implanter when successfully implanting someone. Passes the implanted mob.

COMSIG_TRAITOR_BUG_PLANTED_GROUND

Called when a traitor bug is planted in an area

COMSIG_TRAITOR_BUG_PLANTED_OBJECT

Called when a traitor bug is planted

COMSIG_TRAITOR_BUG_PRE_PLANTED_OBJECT

Called before a traitor bug is planted, where it can still be overrided

COMSIG_TRAITOR_GRAFFITI_DRAWN

Called when you finish drawing some graffiti so we can register more signals on it. Pass the graffiti effect.

COMSIG_TRAITOR_GRAFFITI_SLIPPED

Called when someone slips on some seditious graffiti. Pass the mind of the viewer.

COMSIG_TRAITOR_MACHINE_TRAP_TRIGGERED

Called when a machine a traitor has booby trapped triggers its payload

COMSIG_TRAITOR_OBJECTIVE_COMPLETED

Called whenever the traitor objective is completed

COMSIG_TRAITOR_OBJECTIVE_FAILED

Called whenever the traitor objective is failed

COMSIG_TRAITOR_OBJECTIVE_PRE_GENERATE

Called before the traitor objective is generated

Called whenever the uplink handler receives any sort of update. Used by uplinks to update their UI. No arguments passed

Sent from the uplink handler when the traitor uses the syndicate uplink beacon to order a replacement uplink.

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_transform.html b/code/__DEFINES/dcs/signals/signals_transform.html new file mode 100644 index 0000000000000..c007713ebda2c --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_transform.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_transform.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_transform.dm

COMSIG_TRANSFORMING_PRE_TRANSFORMFrom /datum/component/transforming/proc/on_attack_self(obj/item/source, mob/user): (obj/item/source, mob/user, active)
COMPONENT_BLOCK_TRANSFORMReturn COMPONENT_BLOCK_TRANSFORM to prevent the item from transforming.
COMSIG_TRANSFORMING_ON_TRANSFORMFrom /datum/component/transforming/proc/do_transform(obj/item/source, mob/user): (obj/item/source, mob/user, active)
COMPONENT_NO_DEFAULT_MESSAGEReturn COMPONENT_NO_DEFAULT_MESSAGE to prevent the transforming component from displaying the default transform message / sound.

Define Details

COMPONENT_BLOCK_TRANSFORM

Return COMPONENT_BLOCK_TRANSFORM to prevent the item from transforming.

COMPONENT_NO_DEFAULT_MESSAGE

Return COMPONENT_NO_DEFAULT_MESSAGE to prevent the transforming component from displaying the default transform message / sound.

COMSIG_TRANSFORMING_ON_TRANSFORM

From /datum/component/transforming/proc/do_transform(obj/item/source, mob/user): (obj/item/source, mob/user, active)

COMSIG_TRANSFORMING_PRE_TRANSFORM

From /datum/component/transforming/proc/on_attack_self(obj/item/source, mob/user): (obj/item/source, mob/user, active)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_transport.html b/code/__DEFINES/dcs/signals/signals_transport.html new file mode 100644 index 0000000000000..d72e4f4257f1f --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_transport.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_transport.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_transport.dm

COMSIG_TRAM_TRAVELSent from /obj/structure/transport/linear/tram when it begins to travel. (obj/effect/landmark/tram/idle_platform, obj/effect/landmark/tram/to_where)
COMSIG_TRAM_COLLISIONSent from /obj/structure/transport/linear/tram when it hits someone: ()
COMSIG_TRANSPORT_REQUESTRequesting transport move to a destination
COMSIG_TRANSPORT_RESPONSEResponse to a COMSIG_TRANSPORT_REQUEST request signal
COMSIG_TRANSPORT_ACTIVETransport controller 'active' (busy) status
COMSIG_TRANSPORT_DESTINATIONTransport controller destination change signal
COMSIG_COMMS_STATUSTransport controller communication status (tram malfunction event)

Define Details

COMSIG_COMMS_STATUS

Transport controller communication status (tram malfunction event)

COMSIG_TRAM_COLLISION

Sent from /obj/structure/transport/linear/tram when it hits someone: ()

COMSIG_TRAM_TRAVEL

Sent from /obj/structure/transport/linear/tram when it begins to travel. (obj/effect/landmark/tram/idle_platform, obj/effect/landmark/tram/to_where)

COMSIG_TRANSPORT_ACTIVE

Transport controller 'active' (busy) status

COMSIG_TRANSPORT_DESTINATION

Transport controller destination change signal

COMSIG_TRANSPORT_REQUEST

Requesting transport move to a destination

COMSIG_TRANSPORT_RESPONSE

Response to a COMSIG_TRANSPORT_REQUEST request signal

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_turf.html b/code/__DEFINES/dcs/signals/signals_turf.html new file mode 100644 index 0000000000000..4c5a70c2efafa --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_turf.html @@ -0,0 +1,5 @@ +code/__DEFINES/dcs/signals/signals_turf.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_turf.dm

COMSIG_TURF_CHANGEfrom base of turf/ChangeTurf(): (path, list/new_baseturfs, flags, list/post_change_callbacks). +post_change_callbacks is a list that signal handlers can mutate to append /datum/callback objects. +They will be called with the new turf after the turf has changed.
COMSIG_TURF_HAS_GRAVITYfrom base of atom/has_gravity(): (atom/asker, list/forced_gravities)
COMSIG_TURF_MULTIZ_DELfrom base of turf/multiz_turf_del(): (turf/source, direction)
COMSIG_TURF_MULTIZ_NEWfrom base of turf/multiz_turf_new: (turf/source, direction)
COMSIG_TURF_ON_SHUTTLE_MOVEfrom base of turf/proc/onShuttleMove(): (turf/new_turf)
COMSIG_TURF_RESERVATION_RELEASEDfrom base of /datum/turf_reservation/proc/Release: (datum/turf_reservation/reservation)
COMSIG_TURF_EXPOSEfrom /turf/open/temperature_expose(datum/gas_mixture/air, exposed_temperature)
COMSIG_TURF_CALCULATED_ADJACENT_ATMOSfrom /turf/proc/immediate_calculate_adjacent_turfs()
COMSIG_TURF_INDUSTRIAL_LIFT_ENTERcalled when an elevator enters this turf
COMSIG_TURF_DECAL_DETACHEDfrom /datum/element/decal/Detach(): (description, cleanable, directional, mutable_appearance/pic)
COMSIG_TURF_RECEIVE_SWEEPED_ITEMSfrom /obj/item/pushbroom/sweep(): (broom, user, items_to_sweep)
COMSIG_TURF_PREPARE_STEP_SOUNDfrom /datum/element/footstep/prepare_step(): (list/steps)
COMSIG_TURF_MOVABLE_THROW_LANDEDfrom base of datum/thrownthing/finalize(): (turf/turf, atom/movable/thrownthing) when something is thrown and lands on us
COMSIG_TURF_RESET_ELEVATIONFrom element/elevation/reset_elevation(): (list/values)
COMSIG_TURF_NO_LONGER_BLOCK_LIGHTCalled when turf no longer blocks light from passing through

Define Details

COMSIG_TURF_CALCULATED_ADJACENT_ATMOS

from /turf/proc/immediate_calculate_adjacent_turfs()

COMSIG_TURF_CHANGE

from base of turf/ChangeTurf(): (path, list/new_baseturfs, flags, list/post_change_callbacks). +post_change_callbacks is a list that signal handlers can mutate to append /datum/callback objects. +They will be called with the new turf after the turf has changed.

COMSIG_TURF_DECAL_DETACHED

from /datum/element/decal/Detach(): (description, cleanable, directional, mutable_appearance/pic)

COMSIG_TURF_EXPOSE

from /turf/open/temperature_expose(datum/gas_mixture/air, exposed_temperature)

COMSIG_TURF_HAS_GRAVITY

from base of atom/has_gravity(): (atom/asker, list/forced_gravities)

COMSIG_TURF_INDUSTRIAL_LIFT_ENTER

called when an elevator enters this turf

COMSIG_TURF_MOVABLE_THROW_LANDED

from base of datum/thrownthing/finalize(): (turf/turf, atom/movable/thrownthing) when something is thrown and lands on us

COMSIG_TURF_MULTIZ_DEL

from base of turf/multiz_turf_del(): (turf/source, direction)

COMSIG_TURF_MULTIZ_NEW

from base of turf/multiz_turf_new: (turf/source, direction)

COMSIG_TURF_NO_LONGER_BLOCK_LIGHT

Called when turf no longer blocks light from passing through

COMSIG_TURF_ON_SHUTTLE_MOVE

from base of turf/proc/onShuttleMove(): (turf/new_turf)

COMSIG_TURF_PREPARE_STEP_SOUND

from /datum/element/footstep/prepare_step(): (list/steps)

COMSIG_TURF_RECEIVE_SWEEPED_ITEMS

from /obj/item/pushbroom/sweep(): (broom, user, items_to_sweep)

COMSIG_TURF_RESERVATION_RELEASED

from base of /datum/turf_reservation/proc/Release: (datum/turf_reservation/reservation)

COMSIG_TURF_RESET_ELEVATION

From element/elevation/reset_elevation(): (list/values)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_twohand.html b/code/__DEFINES/dcs/signals/signals_twohand.html new file mode 100644 index 0000000000000..c2c1e8336af9d --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_twohand.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_twohand.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_twohand.dm

COMSIG_TWOHANDED_WIELDfrom base of datum/component/two_handed/proc/wield(mob/living/carbon/user): (/mob/user)
COMSIG_TWOHANDED_UNWIELDfrom base of datum/component/two_handed/proc/unwield(mob/living/carbon/user): (/mob/user)

Define Details

COMSIG_TWOHANDED_UNWIELD

from base of datum/component/two_handed/proc/unwield(mob/living/carbon/user): (/mob/user)

COMSIG_TWOHANDED_WIELD

from base of datum/component/two_handed/proc/wield(mob/living/carbon/user): (/mob/user)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_vehicle.html b/code/__DEFINES/dcs/signals/signals_vehicle.html new file mode 100644 index 0000000000000..4d04148daecf6 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_vehicle.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_vehicle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_vehicle.dm

COMSIG_VEHICLE_RIDDENCalled on a mob when they start riding a vehicle (obj/vehicle)
EJECT_FROM_VEHICLEReturn this to signal that the mob should be removed from the vehicle

Define Details

COMSIG_VEHICLE_RIDDEN

Called on a mob when they start riding a vehicle (obj/vehicle)

EJECT_FROM_VEHICLE

Return this to signal that the mob should be removed from the vehicle

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_voidwalker.html b/code/__DEFINES/dcs/signals/signals_voidwalker.html new file mode 100644 index 0000000000000..30ea886d2d3a7 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_voidwalker.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_voidwalker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_voidwalker.dm

COMSIG_VOIDWALKER_SUCCESFUL_KIDNAPCalled from /datum/component/space_kidnap/succesful_kidnap() : (mob/living/carbon/human/voidwalker, mob/living/carbon/human/victim)

Define Details

COMSIG_VOIDWALKER_SUCCESFUL_KIDNAP

Called from /datum/component/space_kidnap/succesful_kidnap() : (mob/living/carbon/human/voidwalker, mob/living/carbon/human/victim)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_wash.html b/code/__DEFINES/dcs/signals/signals_wash.html new file mode 100644 index 0000000000000..0523546b4691f --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_wash.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_wash.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_wash.dm

COMSIG_COMPONENT_CLEAN_FACE_ACTcalled when you wash your face at a sink: (num/strength)

Define Details

COMSIG_COMPONENT_CLEAN_FACE_ACT

called when you wash your face at a sink: (num/strength)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_wizard.html b/code/__DEFINES/dcs/signals/signals_wizard.html new file mode 100644 index 0000000000000..1fd292ae5d284 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_wizard.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_wizard.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_wizard.dm

COMSIG_GRAND_RUNE_COMPLETESignal sent when we finish invoking a rune. Will also send the amount of cheese sacrificed on the rune : (cheese_sacrificed)
COMSIG_GRAND_RITUAL_FINAL_COMPLETESignal sent when we finish 7 grand rituals

Define Details

COMSIG_GRAND_RITUAL_FINAL_COMPLETE

Signal sent when we finish 7 grand rituals

COMSIG_GRAND_RUNE_COMPLETE

Signal sent when we finish invoking a rune. Will also send the amount of cheese sacrificed on the rune : (cheese_sacrificed)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/signals_xeno_control.html b/code/__DEFINES/dcs/signals/signals_xeno_control.html new file mode 100644 index 0000000000000..897e9aa912460 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_xeno_control.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/signals_xeno_control.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/signals_xeno_control.dm

COMSIG_XENO_SLIME_CLICK_SHIFTfrom slime ShiftClickOn(): (/mob)
COMSIG_XENO_TURF_CLICK_SHIFTfrom turf ShiftClickOn(): (/mob)

Define Details

COMSIG_XENO_SLIME_CLICK_SHIFT

from slime ShiftClickOn(): (/mob)

COMSIG_XENO_TURF_CLICK_SHIFT

from turf ShiftClickOn(): (/mob)

\ No newline at end of file diff --git a/code/__DEFINES/dcs/signals/uplink.html b/code/__DEFINES/dcs/signals/uplink.html new file mode 100644 index 0000000000000..23b263d39cf2f --- /dev/null +++ b/code/__DEFINES/dcs/signals/uplink.html @@ -0,0 +1 @@ +code/__DEFINES/dcs/signals/uplink.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/signals/uplink.dm

COMSIG_ON_UPLINK_PURCHASESignal sent to a mob when they purchase an item from their uplink: (datum/uplink_handler/uplink_handler_source, atom/spawned_item, mob/user)

Define Details

Signal sent to a mob when they purchase an item from their uplink: (datum/uplink_handler/uplink_handler_source, atom/spawned_item, mob/user)

\ No newline at end of file diff --git a/code/__DEFINES/deadchat_control.html b/code/__DEFINES/deadchat_control.html new file mode 100644 index 0000000000000..1a6d86c3bce7e --- /dev/null +++ b/code/__DEFINES/deadchat_control.html @@ -0,0 +1 @@ +code/__DEFINES/deadchat_control.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/deadchat_control.dm

DEMOCRACY_MODEWill execute a single command after the cooldown based on player votes.
ANARCHY_MODEAllows each player to do a single command every cooldown.
MUTE_DEMOCRACY_MESSAGESMutes the democracy mode messages send to orbiters at the end of each cycle. Useful for when the cooldown is so low it'd get spammy.

Define Details

ANARCHY_MODE

Allows each player to do a single command every cooldown.

DEMOCRACY_MODE

Will execute a single command after the cooldown based on player votes.

MUTE_DEMOCRACY_MESSAGES

Mutes the democracy mode messages send to orbiters at the end of each cycle. Useful for when the cooldown is so low it'd get spammy.

\ No newline at end of file diff --git a/code/__DEFINES/devices.html b/code/__DEFINES/devices.html new file mode 100644 index 0000000000000..b6b7473c5f38c --- /dev/null +++ b/code/__DEFINES/devices.html @@ -0,0 +1,3 @@ +code/__DEFINES/devices.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/devices.dm

SCANNER_CONDENSEDHealthscan prints health of the target
SCANNER_VERBOSEHealthscan prints health of each bodypart of the target in addition to broad health
SCANNER_NO_MODEUsed to prevent health analyzers from switching modes when they shouldn't. +Functions the same as SCANNER_CONDENSED

Define Details

SCANNER_CONDENSED

Healthscan prints health of the target

SCANNER_NO_MODE

Used to prevent health analyzers from switching modes when they shouldn't. +Functions the same as SCANNER_CONDENSED

SCANNER_VERBOSE

Healthscan prints health of each bodypart of the target in addition to broad health

\ No newline at end of file diff --git a/code/__DEFINES/directional.html b/code/__DEFINES/directional.html new file mode 100644 index 0000000000000..fbfa0bf70f8b2 --- /dev/null +++ b/code/__DEFINES/directional.html @@ -0,0 +1 @@ +code/__DEFINES/directional.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/directional.dm

TEXT_NORTHNorth direction as a string "[1]"
TEXT_SOUTHSouth direction as a string "[2]"
TEXT_EASTEast direction as a string "[4]"
TEXT_WESTWest direction as a string "[8]"
ISDIAGONALDIRReturns true if the dir is diagonal, false otherwise
NSCOMPONENTTrue if the dir is north or south, false therwise
EWCOMPONENTTrue if the dir is east/west, false otherwise
NSDIRFLIPFlips the dir for north/south directions
EWDIRFLIPFlips the dir for east/west directions
REVERSE_DIRInverse direction, taking into account UP|DOWN if necessary.
MAPPING_DIRECTIONAL_HELPERSCreate directional subtypes for a path to simplify mapping.

Define Details

EWCOMPONENT

True if the dir is east/west, false otherwise

EWDIRFLIP

Flips the dir for east/west directions

ISDIAGONALDIR

Returns true if the dir is diagonal, false otherwise

MAPPING_DIRECTIONAL_HELPERS

Create directional subtypes for a path to simplify mapping.

NSCOMPONENT

True if the dir is north or south, false therwise

NSDIRFLIP

Flips the dir for north/south directions

REVERSE_DIR

Inverse direction, taking into account UP|DOWN if necessary.

TEXT_EAST

East direction as a string "[4]"

TEXT_NORTH

North direction as a string "[1]"

TEXT_SOUTH

South direction as a string "[2]"

TEXT_WEST

West direction as a string "[8]"

\ No newline at end of file diff --git a/code/__DEFINES/diseases.html b/code/__DEFINES/diseases.html new file mode 100644 index 0000000000000..89036082d9011 --- /dev/null +++ b/code/__DEFINES/diseases.html @@ -0,0 +1,27 @@ +code/__DEFINES/diseases.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/diseases.dm

DISEASE_SEVERITY_POSITIVEDiseases that buff, heal, or at least do nothing at all
DISEASE_SEVERITY_NONTHREATDiseases that may have annoying effects, but nothing disruptive (sneezing)
DISEASE_SEVERITY_MINORDiseases that can annoy in concrete ways (dizziness)
DISEASE_SEVERITY_MEDIUMDiseases that can do minor harm, or severe annoyance (vomit)
DISEASE_SEVERITY_HARMFULDiseases that can do significant harm, or severe disruption (brainrot)
DISEASE_SEVERITY_DANGEROUSDiseases that can kill or maim if left untreated (flesh eating, blindness)
DISEASE_SEVERITY_BIOHAZARDDiseases that can quickly kill an unprepared victim (fungal tb, gbs)
DISEASE_SEVERITY_UNCURABLEDiseases that are uncurable (hms)
DISEASE_CYCLES_POSITIVEPositive diseases should not self-cure by themselves, but if they do, they cure fast
DISEASE_CYCLES_NONTHREATRoughly 6 minutes for a harmless virus
DISEASE_CYCLES_MINORRoughly 5 minutes for a disruptive nuisance virus
DISEASE_CYCLES_MEDIUMRoughly 4 minutes for a medium virus
DISEASE_CYCLES_DANGEROUSRoughly 3 minutes for a dangerous virus
DISEASE_CYCLES_HARMFULRoughly 2 minutes for a harmful virus
DISEASE_CYCLES_BIOHAZARDRoughly 1 minute for a biohazard kill-death-evil-bad virus
DISEASE_RECOVERY_CONSTANTRecovery Constant - starting point, 'base' recovery when you get initially infected. +/ Minimum stage_prob is 1 for most advanced diseases. Don't raise it above that if you don't want those diseases to start naturally curing themselves.
DISEASE_RECOVERY_SCALINGRecovery Scaling - the divisor of the number of adjusted cycles at max_stages divided by Severity Guaranteed Cycles. +/ Raise to make over-time scaling more aggressive as you get further away from Severity Guaranteed Cycles. +/ Basically, once you hit Severity Guaranteed Cycles or equivalent, this will be your flat recovery chance, increasing by 1% for every Severity Guaranteed Cycles/this value cycles. So, if SGC = 30 and this = 3, every 10 cycles should give you another 1% per-cycle chance to recover.
DISEASE_PEAKED_RECOVERY_MULTIPLIERPeaked Recovery Multiplier - Once we hit max_stages, multiplicative bonus to recovery scaling. +/ Adjust to make it faster or slower to cure once the virus has reached its peak.
DISEASE_SLOWDOWN_RECOVERY_BONUSSlowdown Recovery Bonus - set this to the maximum extra chance per tick you want people to get to recover from spaceacillin or other slowdown/virus resistance effects
DISEASE_SLOWDOWN_RECOVERY_BONUS_DURATIONSlowdown Recovery Bonus Duration - set this to the maximum # of cycles you want things that cause slowdown/virus resistance to be able to add a bonus up to DISEASE_SLOWDOWN_RECOVERY_BONUS. +/ Scales down linearly over time.
DISEASE_MALNUTRITION_RECOVERY_PENALTYNegative Malnutrition Recovery Penalty +/ Flat penalty to recovery chance if malnourished or starving
DISEASE_SATIETY_RECOVERY_MULTIPLIERSatiety Recovery Multiplier - added chance to recover based on positive satiety +/ Multiplier of satiety/max_satiety if satiety is positive or zero. Increase to make satiety more valuable, decrease for less.
DISEASE_GOOD_SLEEPING_RECOVERY_BONUSGood Sleeping Recovery Bonus - additive benefits for various types of good sleep (blanket, bed, darkness, pillows.) +/ Raise to make each factor add this much chance to recover.
DISEASE_SLEEPING_RECOVERY_MULTIPLIERSleeping Recovery Multiplier - multiplies ALL recovery chance effects by this amount. +/ Set to 1 for no effect on recovery chances from sleeping.
DISEASE_FINAL_CURE_CHANCE_MULTIPLIERFinal Cure Chance Multiplier - multiplies the disease's cure chance to get the probability of moving from stage 1 to a final cure. +/ Must be greater than zero for diseases to self cure.
DISEASE_SYMPTOM_OFFSET_DURATIONSymptom Offset Duration - number of cycles over which sleeping/having spaceacillin or a slowdown effect can prevent symptoms appearing +/ Set to maximum # of cycles you want to be able to offset symptoms. Scales down linearly over time.
DISEASE_SYMPTOM_FREQUENCY_MODIFIERSymptom Frequency Modifier +/ Raise to make symptoms fire less frequently, lower to make them fire more frequently. Keep at 0 or above.
DISEASE_MINIMUM_CHEMICAL_CURE_CHANCEMinimum Chemical Cure Chance +/ Minimum per-cycle chance we want of being able to cure an advanced disease with the chemicals present.

Define Details

DISEASE_CYCLES_BIOHAZARD

Roughly 1 minute for a biohazard kill-death-evil-bad virus

DISEASE_CYCLES_DANGEROUS

Roughly 3 minutes for a dangerous virus

DISEASE_CYCLES_HARMFUL

Roughly 2 minutes for a harmful virus

DISEASE_CYCLES_MEDIUM

Roughly 4 minutes for a medium virus

DISEASE_CYCLES_MINOR

Roughly 5 minutes for a disruptive nuisance virus

DISEASE_CYCLES_NONTHREAT

Roughly 6 minutes for a harmless virus

DISEASE_CYCLES_POSITIVE

Positive diseases should not self-cure by themselves, but if they do, they cure fast

DISEASE_FINAL_CURE_CHANCE_MULTIPLIER

Final Cure Chance Multiplier - multiplies the disease's cure chance to get the probability of moving from stage 1 to a final cure. +/ Must be greater than zero for diseases to self cure.

DISEASE_GOOD_SLEEPING_RECOVERY_BONUS

Good Sleeping Recovery Bonus - additive benefits for various types of good sleep (blanket, bed, darkness, pillows.) +/ Raise to make each factor add this much chance to recover.

DISEASE_MALNUTRITION_RECOVERY_PENALTY

Negative Malnutrition Recovery Penalty +/ Flat penalty to recovery chance if malnourished or starving

DISEASE_MINIMUM_CHEMICAL_CURE_CHANCE

Minimum Chemical Cure Chance +/ Minimum per-cycle chance we want of being able to cure an advanced disease with the chemicals present.

DISEASE_PEAKED_RECOVERY_MULTIPLIER

Peaked Recovery Multiplier - Once we hit max_stages, multiplicative bonus to recovery scaling. +/ Adjust to make it faster or slower to cure once the virus has reached its peak.

DISEASE_RECOVERY_CONSTANT

Recovery Constant - starting point, 'base' recovery when you get initially infected. +/ Minimum stage_prob is 1 for most advanced diseases. Don't raise it above that if you don't want those diseases to start naturally curing themselves.

DISEASE_RECOVERY_SCALING

Recovery Scaling - the divisor of the number of adjusted cycles at max_stages divided by Severity Guaranteed Cycles. +/ Raise to make over-time scaling more aggressive as you get further away from Severity Guaranteed Cycles. +/ Basically, once you hit Severity Guaranteed Cycles or equivalent, this will be your flat recovery chance, increasing by 1% for every Severity Guaranteed Cycles/this value cycles. So, if SGC = 30 and this = 3, every 10 cycles should give you another 1% per-cycle chance to recover.

DISEASE_SATIETY_RECOVERY_MULTIPLIER

Satiety Recovery Multiplier - added chance to recover based on positive satiety +/ Multiplier of satiety/max_satiety if satiety is positive or zero. Increase to make satiety more valuable, decrease for less.

DISEASE_SEVERITY_BIOHAZARD

Diseases that can quickly kill an unprepared victim (fungal tb, gbs)

DISEASE_SEVERITY_DANGEROUS

Diseases that can kill or maim if left untreated (flesh eating, blindness)

DISEASE_SEVERITY_HARMFUL

Diseases that can do significant harm, or severe disruption (brainrot)

DISEASE_SEVERITY_MEDIUM

Diseases that can do minor harm, or severe annoyance (vomit)

DISEASE_SEVERITY_MINOR

Diseases that can annoy in concrete ways (dizziness)

DISEASE_SEVERITY_NONTHREAT

Diseases that may have annoying effects, but nothing disruptive (sneezing)

DISEASE_SEVERITY_POSITIVE

Diseases that buff, heal, or at least do nothing at all

DISEASE_SEVERITY_UNCURABLE

Diseases that are uncurable (hms)

DISEASE_SLEEPING_RECOVERY_MULTIPLIER

Sleeping Recovery Multiplier - multiplies ALL recovery chance effects by this amount. +/ Set to 1 for no effect on recovery chances from sleeping.

DISEASE_SLOWDOWN_RECOVERY_BONUS

Slowdown Recovery Bonus - set this to the maximum extra chance per tick you want people to get to recover from spaceacillin or other slowdown/virus resistance effects

DISEASE_SLOWDOWN_RECOVERY_BONUS_DURATION

Slowdown Recovery Bonus Duration - set this to the maximum # of cycles you want things that cause slowdown/virus resistance to be able to add a bonus up to DISEASE_SLOWDOWN_RECOVERY_BONUS. +/ Scales down linearly over time.

DISEASE_SYMPTOM_FREQUENCY_MODIFIER

Symptom Frequency Modifier +/ Raise to make symptoms fire less frequently, lower to make them fire more frequently. Keep at 0 or above.

DISEASE_SYMPTOM_OFFSET_DURATION

Symptom Offset Duration - number of cycles over which sleeping/having spaceacillin or a slowdown effect can prevent symptoms appearing +/ Set to maximum # of cycles you want to be able to offset symptoms. Scales down linearly over time.

\ No newline at end of file diff --git a/code/__DEFINES/dna_infuser_defines.html b/code/__DEFINES/dna_infuser_defines.html new file mode 100644 index 0000000000000..e4b572c3d48f6 --- /dev/null +++ b/code/__DEFINES/dna_infuser_defines.html @@ -0,0 +1 @@ +code/__DEFINES/dna_infuser_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dna_infuser_defines.dm

DNA_INFUSION_NO_THRESHOLDjust clarifying that no threshold does some special stuff, since only meme mutants have it
DNA_MUTANT_UNOBTAINABLEdoesn't show up in the entry book, isn't a valid infusion
DNA_MUTANT_TIER_ZEROtier 0 mutants, roundstart, cosmetic, or bonus-less infusions
DNA_MUTANT_TIER_ONEtier 1 mutants, job-related mutants, easy infusions
DNA_MUTANT_TIER_TWOtier 2 mutants, harder to make infusions
DNA_MUTANT_TIER_THREEtier 3 mutants, requires cooperation with vatgrowing xenobiologists, outwardly and plainly strong. SOON
DNA_INFUSER_MAX_TIERdna infuser won't upgrade past this tier

Define Details

DNA_INFUSER_MAX_TIER

dna infuser won't upgrade past this tier

DNA_INFUSION_NO_THRESHOLD

just clarifying that no threshold does some special stuff, since only meme mutants have it

DNA_MUTANT_TIER_ONE

tier 1 mutants, job-related mutants, easy infusions

DNA_MUTANT_TIER_THREE

tier 3 mutants, requires cooperation with vatgrowing xenobiologists, outwardly and plainly strong. SOON

DNA_MUTANT_TIER_TWO

tier 2 mutants, harder to make infusions

DNA_MUTANT_TIER_ZERO

tier 0 mutants, roundstart, cosmetic, or bonus-less infusions

DNA_MUTANT_UNOBTAINABLE

doesn't show up in the entry book, isn't a valid infusion

\ No newline at end of file diff --git a/code/__DEFINES/drone.html b/code/__DEFINES/drone.html new file mode 100644 index 0000000000000..2c6c01f97ff66 --- /dev/null +++ b/code/__DEFINES/drone.html @@ -0,0 +1 @@ +code/__DEFINES/drone.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/drone.dm

DRONE_NET_CONNECTMessage displayed when new drone spawns in drone network
DRONE_NET_DISCONNECTMessage displayed when drone in network dies
MAINTDRONEMaintenance Drone icon_state (multiple colors)
REPAIRDRONERepair Drone icon_state
SCOUTDRONEScout Drone icon_state
CLOCKDRONEClockwork Drone icon_state
MAINTDRONE_HACKEDMAINTDRONE hacked icon_state
REPAIRDRONE_HACKEDREPAIRDRONE hacked icon_state
SCOUTDRONE_HACKEDSCOUTDRONE hacked icon_state

Define Details

CLOCKDRONE

Clockwork Drone icon_state

DRONE_NET_CONNECT

Message displayed when new drone spawns in drone network

DRONE_NET_DISCONNECT

Message displayed when drone in network dies

MAINTDRONE

Maintenance Drone icon_state (multiple colors)

MAINTDRONE_HACKED

MAINTDRONE hacked icon_state

REPAIRDRONE

Repair Drone icon_state

REPAIRDRONE_HACKED

REPAIRDRONE hacked icon_state

SCOUTDRONE

Scout Drone icon_state

SCOUTDRONE_HACKED

SCOUTDRONE hacked icon_state

\ No newline at end of file diff --git a/code/__DEFINES/dynamic.html b/code/__DEFINES/dynamic.html new file mode 100644 index 0000000000000..4c0f9f41d43d6 --- /dev/null +++ b/code/__DEFINES/dynamic.html @@ -0,0 +1 @@ +code/__DEFINES/dynamic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dynamic.dm

ONLY_RULESETThis is the only ruleset that should be picked this round, used by admins and should not be on rulesets in code.
HIGH_IMPACT_RULESETOnly one ruleset with this flag will be picked.
LONE_RULESETThis ruleset can only be picked once. Anything that does not have a scaling_cost MUST have this.
MIDROUND_RULESET_STYLE_HEAVYThis is a "heavy" midround ruleset, and should be run later into the round
MIDROUND_RULESET_STYLE_LIGHTThis is a "light" midround ruleset, and should be run early into the round
HIJACKED_NOTHINGNo round event was hijacked this cycle
HIJACKED_TOO_RECENTThis cycle, a round event was hijacked when the last midround event was too recent.
RULESET_STOP_PROCESSINGKill this ruleset from continuing to process
REQUIREMENTS_VERY_HIGH_THREAT_NEEDEDRequirements when something needs a lot of threat to run, but still possible at low-pop
ABDUCTOR_MAX_TEAMSMax number of teams we can have for the abductor ruleset
RULESET_FORCE_ENABLEDRuleset should run regardless of population and threat available
RULESET_FORCE_DISABLEDRuleset should not run regardless of population and threat available
RULESET_CATEGORY_DEFAULTRulesets selected by dynamic at default
RULESET_CATEGORY_NO_WITTING_CREW_ANTAGONISTSRulesets not including crew antagonists, non-witting referring to antags like obsessed which aren't really enemies of the station

Define Details

ABDUCTOR_MAX_TEAMS

Max number of teams we can have for the abductor ruleset

HIGH_IMPACT_RULESET

Only one ruleset with this flag will be picked.

HIJACKED_NOTHING

No round event was hijacked this cycle

HIJACKED_TOO_RECENT

This cycle, a round event was hijacked when the last midround event was too recent.

LONE_RULESET

This ruleset can only be picked once. Anything that does not have a scaling_cost MUST have this.

MIDROUND_RULESET_STYLE_HEAVY

This is a "heavy" midround ruleset, and should be run later into the round

MIDROUND_RULESET_STYLE_LIGHT

This is a "light" midround ruleset, and should be run early into the round

ONLY_RULESET

This is the only ruleset that should be picked this round, used by admins and should not be on rulesets in code.

REQUIREMENTS_VERY_HIGH_THREAT_NEEDED

Requirements when something needs a lot of threat to run, but still possible at low-pop

RULESET_CATEGORY_DEFAULT

Rulesets selected by dynamic at default

RULESET_CATEGORY_NO_WITTING_CREW_ANTAGONISTS

Rulesets not including crew antagonists, non-witting referring to antags like obsessed which aren't really enemies of the station

RULESET_FORCE_DISABLED

Ruleset should not run regardless of population and threat available

RULESET_FORCE_ENABLED

Ruleset should run regardless of population and threat available

RULESET_STOP_PROCESSING

Kill this ruleset from continuing to process

\ No newline at end of file diff --git a/code/__DEFINES/economy.html b/code/__DEFINES/economy.html new file mode 100644 index 0000000000000..50f87feaa9854 --- /dev/null +++ b/code/__DEFINES/economy.html @@ -0,0 +1 @@ +code/__DEFINES/economy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/economy.dm

STARTING_PAYCHECKSNumber of paychecks jobs start with at the creation of a new bank account for a player (So at shift-start or game join, but not a blank new account.)
MAX_MAIL_PER_MINUTEHow much mail the Economy SS will create per minute, regardless of firing time.
FULL_CRATE_LETTER_ODDSProbability of using letters of envelope sprites on all letters.
PAYCHECK_ZERODefault paygrade for the Unassigned Job/Unpaid job assignments.
PAYCHECK_LOWERPaygrade for Prisoners and Assistants.
PAYCHECK_CREWPaygrade for all regular crew not belonging to PAYGRADE_LOWER or PAYGRADE_COMMAND.
PAYCHECK_COMMANDPaygrade for Heads of Staff.
DEBT_COLLECTION_COEFFThe coefficient for the amount of dosh that's collected everytime some is earned or received.
ADMIN_ACCOUNT_IDThe special account ID for admins using debug cards.

Define Details

ADMIN_ACCOUNT_ID

The special account ID for admins using debug cards.

DEBT_COLLECTION_COEFF

The coefficient for the amount of dosh that's collected everytime some is earned or received.

FULL_CRATE_LETTER_ODDS

Probability of using letters of envelope sprites on all letters.

MAX_MAIL_PER_MINUTE

How much mail the Economy SS will create per minute, regardless of firing time.

PAYCHECK_COMMAND

Paygrade for Heads of Staff.

PAYCHECK_CREW

Paygrade for all regular crew not belonging to PAYGRADE_LOWER or PAYGRADE_COMMAND.

PAYCHECK_LOWER

Paygrade for Prisoners and Assistants.

PAYCHECK_ZERO

Default paygrade for the Unassigned Job/Unpaid job assignments.

STARTING_PAYCHECKS

Number of paychecks jobs start with at the creation of a new bank account for a player (So at shift-start or game join, but not a blank new account.)

\ No newline at end of file diff --git a/code/__DEFINES/electrified_buckle.html b/code/__DEFINES/electrified_buckle.html new file mode 100644 index 0000000000000..ec2639fbbd9ac --- /dev/null +++ b/code/__DEFINES/electrified_buckle.html @@ -0,0 +1 @@ +code/__DEFINES/electrified_buckle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/electrified_buckle.dm

SHOCK_REQUIREMENT_ITEMelectrified_buckle requires a shock kit attached to it in order to shock
SHOCK_REQUIREMENT_LIVE_CABLEelectrified_buckle requires a live cable to work, and draws power from it
SHOCK_REQUIREMENT_ON_SIGNAL_RECEIVEDelectrified_buckle requires to be turned on with a signal in order to shock the buckled mob
SHOCK_REQUIREMENT_PARENT_MOB_ISALIVEelectrified_buckle requires the parent to be alive in order to shock (if parent is a mob)
SHOCK_REQUIREMENT_SIGNAL_RECEIVED_TOGGLEa signal can toggle the ability to shock on a timer
TRAIT_ELECTRIFIED_BUCKLEThis trait signifies that the object can be used to electrify things buckled to it

Define Details

SHOCK_REQUIREMENT_ITEM

electrified_buckle requires a shock kit attached to it in order to shock

SHOCK_REQUIREMENT_LIVE_CABLE

electrified_buckle requires a live cable to work, and draws power from it

SHOCK_REQUIREMENT_ON_SIGNAL_RECEIVED

electrified_buckle requires to be turned on with a signal in order to shock the buckled mob

SHOCK_REQUIREMENT_PARENT_MOB_ISALIVE

electrified_buckle requires the parent to be alive in order to shock (if parent is a mob)

SHOCK_REQUIREMENT_SIGNAL_RECEIVED_TOGGLE

a signal can toggle the ability to shock on a timer

TRAIT_ELECTRIFIED_BUCKLE

This trait signifies that the object can be used to electrify things buckled to it

\ No newline at end of file diff --git a/code/__DEFINES/events.html b/code/__DEFINES/events.html new file mode 100644 index 0000000000000..90e294f488022 --- /dev/null +++ b/code/__DEFINES/events.html @@ -0,0 +1 @@ +code/__DEFINES/events.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/events.dm

EVENT_CATEGORY_AIEvents that mess with or create artificial intelligences, such as vending machines and the AI itself
EVENT_CATEGORY_ANOMALIESEvents that spawn anomalies, which might be the source of anomaly cores
EVENT_CATEGORY_BUREAUCRATICEvents pertaining cargo, messages incoming to the station and job slots
EVENT_CATEGORY_ENGINEERINGEvents that cause breakages and malfunctions that could be fixed by engineers
EVENT_CATEGORY_ENTITIESEvents that spawn creatures with simple desires, such as to hunt
EVENT_CATEGORY_FRIENDLYEvents that should have no harmful effects, and might be useful to the crew
EVENT_CATEGORY_HEALTHEvents that affect the body and mind
EVENT_CATEGORY_HOLIDAYEvents reserved for special occasions
EVENT_CATEGORY_INVASIONEvents with enemy groups with a more complex plan
EVENT_CATEGORY_JANITORIALEvents that make a mess
EVENT_CATEGORY_SPACEEvents that summon meteors and other debris, and stationwide waves of harmful space weather
EVENT_CATEGORY_WIZARDEvents summoned by a wizard
ADMIN_CANCEL_EVENTReturn from admin setup to stop the event from triggering entirely.
NEVER_TRIGGERED_BY_WIZARDSEvent can never be triggered by wizards
EVENT_SPACE_ONLYEvent can only run on a map set in space
EVENT_PLANETARY_ONLYEvent can only run on a map which is a planet
EVENT_SECONDSEvent timer in seconds
FUGITIVE_BACKSTORY_WALDOBackstory key for the fugitive solo backstories
FUGITIVE_BACKSTORY_PRISONERBackstory keys for the fugitive team backstories

Define Details

ADMIN_CANCEL_EVENT

Return from admin setup to stop the event from triggering entirely.

EVENT_CATEGORY_AI

Events that mess with or create artificial intelligences, such as vending machines and the AI itself

EVENT_CATEGORY_ANOMALIES

Events that spawn anomalies, which might be the source of anomaly cores

EVENT_CATEGORY_BUREAUCRATIC

Events pertaining cargo, messages incoming to the station and job slots

EVENT_CATEGORY_ENGINEERING

Events that cause breakages and malfunctions that could be fixed by engineers

EVENT_CATEGORY_ENTITIES

Events that spawn creatures with simple desires, such as to hunt

EVENT_CATEGORY_FRIENDLY

Events that should have no harmful effects, and might be useful to the crew

EVENT_CATEGORY_HEALTH

Events that affect the body and mind

EVENT_CATEGORY_HOLIDAY

Events reserved for special occasions

EVENT_CATEGORY_INVASION

Events with enemy groups with a more complex plan

EVENT_CATEGORY_JANITORIAL

Events that make a mess

EVENT_CATEGORY_SPACE

Events that summon meteors and other debris, and stationwide waves of harmful space weather

EVENT_CATEGORY_WIZARD

Events summoned by a wizard

EVENT_PLANETARY_ONLY

Event can only run on a map which is a planet

EVENT_SECONDS

Event timer in seconds

EVENT_SPACE_ONLY

Event can only run on a map set in space

FUGITIVE_BACKSTORY_PRISONER

Backstory keys for the fugitive team backstories

FUGITIVE_BACKSTORY_WALDO

Backstory key for the fugitive solo backstories

NEVER_TRIGGERED_BY_WIZARDS

Event can never be triggered by wizards

\ No newline at end of file diff --git a/code/__DEFINES/exosuit_fab.html b/code/__DEFINES/exosuit_fab.html new file mode 100644 index 0000000000000..ff8cdc2e2b534 --- /dev/null +++ b/code/__DEFINES/exosuit_fab.html @@ -0,0 +1 @@ +code/__DEFINES/exosuit_fab.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/exosuit_fab.dm

BORG_MODEL_SECURITYModule is compatible with Security Cyborg model
BORG_MODEL_MINERModule is compatible with Miner Cyborg model
BORG_MODEL_JANITORModule is compatible with Janitor Cyborg model
BORG_MODEL_MEDICALModule is compatible with Medical Cyborg model
BORG_MODEL_ENGINEERINGModule is compatible with Engineering Cyborg model
BORG_MODEL_SERVICEModule is compatible with Service Cyborg model
BORG_MODEL_RESEARCHModule is compatible with Research Cyborg model
EXOSUIT_MODULE_RIPLEYModule is compatible with Ripley Exosuit models
EXOSUIT_MODULE_ODYSSEUSModule is compatible with Odyseeus Exosuit models
EXOSUIT_MODULE_CLARKEModule is compatible with Clarke Exosuit models
EXOSUIT_MODULE_CONCEALED_WEP_BAYModule is compatible with a mech carrying an empty Concealed Weapon Bay
EXOSUIT_MODULE_GYGAXModule is compatible with Gygax Exosuit models
EXOSUIT_MODULE_DURANDModule is compatible with Durand Exosuit models
EXOSUIT_MODULE_HONKModule is compatible with H.O.N.K Exosuit models
EXOSUIT_MODULE_PHAZONModule is compatible with Phazon Exosuit models
EXOSUIT_MODULE_SAVANNAHModule is compatible with Savannah Exosuit models
EXOSUIT_MODULE_RETICENCEModule is compatible with Reticence models
EXOSUIT_MODULE_MARAUDERModule is compatible with Marauder models
EXOSUIT_MODULE_PADDYModule is compatible with Paddy models
EXOSUIT_MODULE_JUSTICEModule is compatible with Justice models
EXOSUIT_MODULE_WORKINGModule is compatible with "Working" Exosuit models - Ripley and Clarke
EXOSUIT_MODULE_COMBATModule is compatible with "Combat" Exosuit models - Gygax, H.O.N.K, Durand and Phazon, or any Exosuit with an empty Concealed Weapon Bay
EXOSUIT_MODULE_MEDICALModule is compatible with "Medical" Exosuit modelsm - Odysseus

Define Details

BORG_MODEL_ENGINEERING

Module is compatible with Engineering Cyborg model

BORG_MODEL_JANITOR

Module is compatible with Janitor Cyborg model

BORG_MODEL_MEDICAL

Module is compatible with Medical Cyborg model

BORG_MODEL_MINER

Module is compatible with Miner Cyborg model

BORG_MODEL_RESEARCH

Module is compatible with Research Cyborg model

BORG_MODEL_SECURITY

Module is compatible with Security Cyborg model

BORG_MODEL_SERVICE

Module is compatible with Service Cyborg model

EXOSUIT_MODULE_CLARKE

Module is compatible with Clarke Exosuit models

EXOSUIT_MODULE_COMBAT

Module is compatible with "Combat" Exosuit models - Gygax, H.O.N.K, Durand and Phazon, or any Exosuit with an empty Concealed Weapon Bay

EXOSUIT_MODULE_CONCEALED_WEP_BAY

Module is compatible with a mech carrying an empty Concealed Weapon Bay

EXOSUIT_MODULE_DURAND

Module is compatible with Durand Exosuit models

EXOSUIT_MODULE_GYGAX

Module is compatible with Gygax Exosuit models

EXOSUIT_MODULE_HONK

Module is compatible with H.O.N.K Exosuit models

EXOSUIT_MODULE_JUSTICE

Module is compatible with Justice models

EXOSUIT_MODULE_MARAUDER

Module is compatible with Marauder models

EXOSUIT_MODULE_MEDICAL

Module is compatible with "Medical" Exosuit modelsm - Odysseus

EXOSUIT_MODULE_ODYSSEUS

Module is compatible with Odyseeus Exosuit models

EXOSUIT_MODULE_PADDY

Module is compatible with Paddy models

EXOSUIT_MODULE_PHAZON

Module is compatible with Phazon Exosuit models

EXOSUIT_MODULE_RETICENCE

Module is compatible with Reticence models

EXOSUIT_MODULE_RIPLEY

Module is compatible with Ripley Exosuit models

EXOSUIT_MODULE_SAVANNAH

Module is compatible with Savannah Exosuit models

EXOSUIT_MODULE_WORKING

Module is compatible with "Working" Exosuit models - Ripley and Clarke

\ No newline at end of file diff --git a/code/__DEFINES/experisci.html b/code/__DEFINES/experisci.html new file mode 100644 index 0000000000000..bb6a9c2b40841 --- /dev/null +++ b/code/__DEFINES/experisci.html @@ -0,0 +1,7 @@ +code/__DEFINES/experisci.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/experisci.dm

EXPERIMENT_BOOL_STAGEBoolean stage, complete/incomplete. No specific progress to report.
EXPERIMENT_INT_STAGEInteger stages, should be whole numbers with total being included +to support rendering value of total, or something akin to it.
EXPERIMENT_FLOAT_STAGEFloat stages, the value should be between 0 and 1 representing percent completion
EXPERIMENT_DETAIL_STAGEDetail stages, only provide more textual information and have no inherent progress
EXPERIMENT_PROGRESSMacro for defining a progress stage
EXPERIMENT_PROG_BOOLMacro for boolean stages
EXPERIMENT_PROG_INTMacro for integer stages
EXPERIMENT_PROG_FLOATMacro for float stages
EXPERIMENT_PROG_DETAILMacro for non-valued stages, details for exp stages
EXPERIMENT_TRAIT_DESTRUCTIVEDestructive experiments which will destroy the sample
EXPERIMENT_TRAIT_TYPECACHEUsed by scanning experiments: instead of storing refs or be a number, the list for scanned atoms is used as typecache
EXPERIMENT_CONFIG_ALWAYS_ACTIVEWill always attempt to action every experiment eligible with a single input, +no experiment selection required
EXPERIMENT_CONFIG_NO_AUTOCONNECTExperiment handlers with this flag will not automatically connect to the first techweb they find +on initialization
EXPERIMENT_CONFIG_SILENT_FAILExperiment handlers with this flag won't pester the user of objects not pertinent to the test or if no experiment is selected
EXPERIMENT_CONFIG_IMMEDIATE_ACTIONExperiment handlers with this flag will bypass any delay when trying to scan something

Define Details

EXPERIMENT_BOOL_STAGE

Boolean stage, complete/incomplete. No specific progress to report.

EXPERIMENT_CONFIG_ALWAYS_ACTIVE

Will always attempt to action every experiment eligible with a single input, +no experiment selection required

EXPERIMENT_CONFIG_IMMEDIATE_ACTION

Experiment handlers with this flag will bypass any delay when trying to scan something

EXPERIMENT_CONFIG_NO_AUTOCONNECT

Experiment handlers with this flag will not automatically connect to the first techweb they find +on initialization

EXPERIMENT_CONFIG_SILENT_FAIL

Experiment handlers with this flag won't pester the user of objects not pertinent to the test or if no experiment is selected

EXPERIMENT_DETAIL_STAGE

Detail stages, only provide more textual information and have no inherent progress

EXPERIMENT_FLOAT_STAGE

Float stages, the value should be between 0 and 1 representing percent completion

EXPERIMENT_INT_STAGE

Integer stages, should be whole numbers with total being included +to support rendering value of total, or something akin to it.

EXPERIMENT_PROGRESS

Macro for defining a progress stage

EXPERIMENT_PROG_BOOL

Macro for boolean stages

EXPERIMENT_PROG_DETAIL

Macro for non-valued stages, details for exp stages

EXPERIMENT_PROG_FLOAT

Macro for float stages

EXPERIMENT_PROG_INT

Macro for integer stages

EXPERIMENT_TRAIT_DESTRUCTIVE

Destructive experiments which will destroy the sample

EXPERIMENT_TRAIT_TYPECACHE

Used by scanning experiments: instead of storing refs or be a number, the list for scanned atoms is used as typecache

\ No newline at end of file diff --git a/code/__DEFINES/explosions.html b/code/__DEFINES/explosions.html new file mode 100644 index 0000000000000..04608e94cad4d --- /dev/null +++ b/code/__DEFINES/explosions.html @@ -0,0 +1 @@ +code/__DEFINES/explosions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/explosions.dm

EXPLODE_DEVASTATEThe (current) highest possible explosion severity.
EXPLODE_HEAVYThe (current) middling explosion severity.
EXPLODE_LIGHTThe (current) lowest possible explosion severity.
EXPLODE_NONEThe default explosion severity used to mark that an object is beyond the impact range of the explosion.
GIBTONITE_UNSTRUCKGibtonite has not been mined
GIBTONITE_ACTIVEGibtonite has been mined and will explode soon
GIBTONITE_STABLEGibtonite has been stablized preventing an explosion
GIBTONITE_DETONATEGibtonite will now explode
EX_ACTA wrapper for /atom/proc/ex_act to ensure that the explosion propagation and attendant signal are always handled.
EXARG_KEY_ORIGINThe origin atom of the explosion.
EXARG_KEY_EXPLOSION_CAUSEThe potential cause of the explosion, if different to origin.
EXARG_KEY_DEV_RANGEThe devastation range of the explosion.
EXARG_KEY_HEAVY_RANGEThe heavy impact range of the explosion.
EXARG_KEY_LIGHT_RANGEThe light impact range of the explosion.
EXARG_KEY_FLAME_RANGEThe flame range of the explosion.
EXARG_KEY_FLASH_RANGEThe flash range of the explosion.
EXARG_KEY_ADMIN_LOGWhether or not the explosion should be logged.
EXARG_KEY_IGNORE_CAPWhether or not the explosion should ignore the bombcap.
EXARG_KEY_SILENTWhether or not the explosion should produce sound effects and screenshake if it is large enough to warrant it.
EXARG_KEY_SMOKEWhether or not the explosion should produce smoke if it is large enough to warrant it.
EXARG_KEY_PROTECT_EPICENTERWhether or not to leave the epicenter turf unaffected
EXARG_KEY_EXPLOSION_DIRECTIONFor directional explosions, the angle the explosion is pointing at.
EXARG_KEY_EXPLOSION_ARCFor directional explosions, the angle covered by the explosion, centred on EXPLOSION_DIRECTION.
EXPLODABLE_NO_DELETEMakes the explodable component queue to reset its exploding status when it detonates.
EXPLODABLE_DELETE_SELFMakes the explodable component delete itself when it detonates.
EXPLODABLE_DELETE_PARENTMakes the explodable component delete its parent when it detonates.
GRENADE_DUDThe grenade cannot detonate at all. It is innately nonfunctional.
GRENADE_USEDThe grenade has been used and as such cannot detonate.

Define Details

EXARG_KEY_ADMIN_LOG

Whether or not the explosion should be logged.

EXARG_KEY_DEV_RANGE

The devastation range of the explosion.

EXARG_KEY_EXPLOSION_ARC

For directional explosions, the angle covered by the explosion, centred on EXPLOSION_DIRECTION.

EXARG_KEY_EXPLOSION_CAUSE

The potential cause of the explosion, if different to origin.

EXARG_KEY_EXPLOSION_DIRECTION

For directional explosions, the angle the explosion is pointing at.

EXARG_KEY_FLAME_RANGE

The flame range of the explosion.

EXARG_KEY_FLASH_RANGE

The flash range of the explosion.

EXARG_KEY_HEAVY_RANGE

The heavy impact range of the explosion.

EXARG_KEY_IGNORE_CAP

Whether or not the explosion should ignore the bombcap.

EXARG_KEY_LIGHT_RANGE

The light impact range of the explosion.

EXARG_KEY_ORIGIN

The origin atom of the explosion.

EXARG_KEY_PROTECT_EPICENTER

Whether or not to leave the epicenter turf unaffected

EXARG_KEY_SILENT

Whether or not the explosion should produce sound effects and screenshake if it is large enough to warrant it.

EXARG_KEY_SMOKE

Whether or not the explosion should produce smoke if it is large enough to warrant it.

EXPLODABLE_DELETE_PARENT

Makes the explodable component delete its parent when it detonates.

EXPLODABLE_DELETE_SELF

Makes the explodable component delete itself when it detonates.

EXPLODABLE_NO_DELETE

Makes the explodable component queue to reset its exploding status when it detonates.

EXPLODE_DEVASTATE

The (current) highest possible explosion severity.

EXPLODE_HEAVY

The (current) middling explosion severity.

EXPLODE_LIGHT

The (current) lowest possible explosion severity.

EXPLODE_NONE

The default explosion severity used to mark that an object is beyond the impact range of the explosion.

EX_ACT

A wrapper for /atom/proc/ex_act to ensure that the explosion propagation and attendant signal are always handled.

GIBTONITE_ACTIVE

Gibtonite has been mined and will explode soon

GIBTONITE_DETONATE

Gibtonite will now explode

GIBTONITE_STABLE

Gibtonite has been stablized preventing an explosion

GIBTONITE_UNSTRUCK

Gibtonite has not been mined

GRENADE_DUD

The grenade cannot detonate at all. It is innately nonfunctional.

GRENADE_USED

The grenade has been used and as such cannot detonate.

\ No newline at end of file diff --git a/code/__DEFINES/external_organs.html b/code/__DEFINES/external_organs.html new file mode 100644 index 0000000000000..ab62c85c6460f --- /dev/null +++ b/code/__DEFINES/external_organs.html @@ -0,0 +1 @@ +code/__DEFINES/external_organs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/external_organs.dm

ORGAN_COLOR_INHERITUses the parent limb's drawcolor value.
ORGAN_COLOR_OVERRIDEUses /organ/external/proc/override_color()'s return value
ORGAN_COLOR_HAIRUses the parent's haircolor
WAG_ABLETail wagging
SPINE_KEY_LIZARDTail spine defines

Define Details

ORGAN_COLOR_HAIR

Uses the parent's haircolor

ORGAN_COLOR_INHERIT

Uses the parent limb's drawcolor value.

ORGAN_COLOR_OVERRIDE

Uses /organ/external/proc/override_color()'s return value

SPINE_KEY_LIZARD

Tail spine defines

WAG_ABLE

Tail wagging

\ No newline at end of file diff --git a/code/__DEFINES/firealarm.html b/code/__DEFINES/firealarm.html new file mode 100644 index 0000000000000..4cd107b25c992 --- /dev/null +++ b/code/__DEFINES/firealarm.html @@ -0,0 +1 @@ +code/__DEFINES/firealarm.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/firealarm.dm

FIRELOCK_ALARM_TYPE_HOTDesignates a fire lock should be closed due to HEAT
FIRELOCK_ALARM_TYPE_COLDDesignates a fire lock should be closed due to COLD
FIRELOCK_ALARM_TYPE_GENERICDesignates a fire lock should be closed due unknown reasons (IE fire alarm was pulled)

Define Details

FIRELOCK_ALARM_TYPE_COLD

Designates a fire lock should be closed due to COLD

FIRELOCK_ALARM_TYPE_GENERIC

Designates a fire lock should be closed due unknown reasons (IE fire alarm was pulled)

FIRELOCK_ALARM_TYPE_HOT

Designates a fire lock should be closed due to HEAT

\ No newline at end of file diff --git a/code/__DEFINES/fish.html b/code/__DEFINES/fish.html new file mode 100644 index 0000000000000..91319c5564a6e --- /dev/null +++ b/code/__DEFINES/fish.html @@ -0,0 +1,7 @@ +code/__DEFINES/fish.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/fish.dm

FISHING_DUDUse in fish tables to denote miss chance.
FISHING_RANDOM_SEEDUsed in the the hydro tray fishing spot to define a random seed reward
FISHING_MINIMUM_DIFFICULTYThe minimum value of the difficulty of the minigame (unless it reaches 0 than it's auto-win) +Any lower than this and the fish will be way too lethargic for the minigame to be engaging in the slightest.
FAV_BAIT_DIFFICULTY_MODDifficulty modifier when bait is fish's favorite
DISLIKED_BAIT_DIFFICULTY_MODDifficulty modifier when bait is fish's disliked
EXPERT_FISHER_DIFFICULTY_MODDifficulty modifier when our fisherman has the trait TRAIT_EXPERT_FISHER
ROD_SLOT_BAITSlot defines for the fishing rod and its equipment
FISHING_HOOK_SHINYFishing hook trait that signifies that it's shiny. Useful for fishes +that care about shiner hooks more.
FISHING_HOOK_WEIGHTEDFishing hook trait that lessens the bounce from hitting the edges of the minigame bar.
FISHING_HOOK_BIDIRECTIONALSee FISHING_MINIGAME_RULE_BIDIRECTIONAL
FISHING_HOOK_NO_ESCAPEPrevents the user from losing the game by letting the fish get away.
FISHING_HOOK_ENSNARELimits the completion loss of the minigame when the fsh is not on the bait area.
FISHING_HOOK_KILLAutomatically kills the fish after a while, at the cost of killing it.
FISHING_LINE_CLOAKEDReduces the difficulty of the minigame
FISHING_LINE_REINFORCEDRequired to cast a line on lava.
FISHING_LINE_BOUNCYMuch like FISHING_HOOK_ENSNARE but for the fishing line.
FISHING_LINE_STIFFThe sorta opposite of FISHING_LINE_BOUNCY. It makes it slower to gain completion and faster to lose it.
FISHING_LINE_AUTOREELSkip the biting phase and go straight to the fishing phase.
FISHING_MINIGAME_RULE_BIDIRECTIONALKeeps the bait from falling from gravity, instead allowing the player to move the bait down with right click.
FISHING_MINIGAME_RULE_NO_ESCAPEPrevents the player from losing the minigame when the completion reaches 0
FISHING_MINIGAME_RULE_KILLAutomatically kills the fish after a while, at the cost of killing it
FISHING_MINIGAME_RULE_NO_EXPPrevents the fishing skill from having an effect on the minigame and experience from being awarded
FISHING_MINIGAME_RULE_ANTIGRAVIf enabled, the minigame will occasionally screw around and invert the velocity of the bait
FISHING_MINIGAME_RULE_FLIPWill filp the minigame hud for the duration of the effect
FISHING_MINIGAME_AUTOREELSkip the biting phase and go straight to the minigame, avoiding the penalty for having slow reflexes.
FISHING_MINIGAME_RULE_CAMOThe fish will fade in and out at intervals
FISHING_MINIGAME_ACTIVE_EFFECTSall the effects that are active and will last for a few seconds before triggering a cooldown
FISHING_DEFAULT_HOOK_BONUS_ADDITIVEThe default additive value for fishing hook catch weight modifiers.
FISHING_DEFAULT_HOOK_BONUS_MULTIPLICATIVEThe default multiplicative value for fishing hook catch weight modifiers.
FISH_SIZE_TINY_MAXFish size thresholds for w_class.
FISH_SIZE_TWO_HANDS_REQUIREDsize threshold for requiring two-handed carry
MAX_FISH_DEVIATION_COEFFThe coefficient for maximum weight/size divergence relative to the averages.
FISH_GRIND_RESULTS_WEIGHT_DIVISORThe volume of the grind results is multiplied by the fish' weight and divided by this.
FISH_FILLET_NUMBER_SIZE_DIVISORThe number of fillets is multiplied by the fish' size and divided by this.
FISH_WEIGHT_SLOWDOWNThe slowdown of the fish when carried begins at this value
FISH_WEIGHT_SLOWDOWN_DIVISORThe value of the slowdown equals to the weight divided by this (and then at the power of a sub-1 exponent)
FISH_WEIGHT_SLOWDOWN_EXPONENTThe sub-one exponent that results in the final slowdown of the fish item
FISH_WEIGHT_FORCE_DIVISORUsed to calculate the force of the fish by comparing (1 + log(weight/this_define)) and the w_class of the item.
FISH_WEIGHT_GRIND_TO_BITE_MULTThe multiplier used in the FISH_WEIGHT_BITE_DIVISOR define
FISH_WEIGHT_BITE_DIVISORUsed to calculate how many bites a fish can take and therefore the amount of reagents it has.
NEW_FISH_BREEDING_TIMEOUT_MULTThe breeding timeout for newly instantiated fish is multiplied by this.
NEW_FISH_LAST_FEEDING_MULTThe last feeding timestamp of newly instantiated fish is multiplied by this: ergo, they spawn 50% hungry.
FISH_FLAG_SHOW_IN_CATALOGThis fish is shown in the catalog and on the wiki (this only matters as an initial, compile-time value)
FISH_DO_FLOP_ANIMThis fish has a flopping animation done through matrices
FISH_FLAG_PETTEDThis fish has been petted in the last 30 seconds
FISH_FLAG_EXPERIMENT_SCANNABLEThis fish can be scanned to complete fish scanning experiments
FISH_RARITY_BASICHow likely one's to find a given fish from random fish cases.
AQUARIUM_FLUID_FRESHWATERAquarium fluid variables. The fish' required fluid has to match this, or it'll slowly die.
AQUARIUM_COMPANYFluff. The name of the aquarium company shown in the fish catalog
ELECTROGENESIS_DURATIONhow long between electrogenesis zaps
ELECTROGENESIS_VARIANCEa random range the electrogenesis cooldown varies by
FISHING_MINIGAME_AREAThe height of the minigame slider. Not in pixels, but minigame units.
FISH_SAFE_COOKING_DURATIONThe fish needs to be cooked for at least this long so that it can be safely eaten
FISH_PROPERTIES_FAV_BAITDefines for fish properties from the collect_fish_properties proc
FISH_BAIT_TYPEDefine for favorite and disliked baits that aren't just item typepaths.
FISH_WEIGHT_MULT_WITHOUT_BAITWe multiply the weight of fish inside the loot table by this value if we are goofy enough to fish without a bait.
FISH_AUTOWIKI_FILENAMEA macro to ensure the wikimedia filenames of fish icons are unique, especially since there're a couple fish that have +quite ambiguous names/icon_states like "checkered" or "pike"
FISH_SOURCE_AUTOWIKI_NAMEThe list keys for the autowiki for fish sources
FISH_SOURCE_AUTOWIKI_DUDSpecial value for the name key that always comes first when the data is sorted, regardless of weight.
FISH_SOURCE_AUTOWIKI_OTHERSpecial value for the name key that always comes last
FISH_SOURCE_AUTOWIKI_QUESTIONMARKThe filename for the icon for "other stuff" which we don't articulate about on the autowiki

Define Details

AQUARIUM_COMPANY

Fluff. The name of the aquarium company shown in the fish catalog

AQUARIUM_FLUID_FRESHWATER

Aquarium fluid variables. The fish' required fluid has to match this, or it'll slowly die.

DISLIKED_BAIT_DIFFICULTY_MOD

Difficulty modifier when bait is fish's disliked

ELECTROGENESIS_DURATION

how long between electrogenesis zaps

ELECTROGENESIS_VARIANCE

a random range the electrogenesis cooldown varies by

EXPERT_FISHER_DIFFICULTY_MOD

Difficulty modifier when our fisherman has the trait TRAIT_EXPERT_FISHER

FAV_BAIT_DIFFICULTY_MOD

Difficulty modifier when bait is fish's favorite

FISHING_DEFAULT_HOOK_BONUS_ADDITIVE

The default additive value for fishing hook catch weight modifiers.

FISHING_DEFAULT_HOOK_BONUS_MULTIPLICATIVE

The default multiplicative value for fishing hook catch weight modifiers.

FISHING_DUD

Use in fish tables to denote miss chance.

FISHING_HOOK_BIDIRECTIONAL

See FISHING_MINIGAME_RULE_BIDIRECTIONAL

FISHING_HOOK_ENSNARE

Limits the completion loss of the minigame when the fsh is not on the bait area.

FISHING_HOOK_KILL

Automatically kills the fish after a while, at the cost of killing it.

FISHING_HOOK_NO_ESCAPE

Prevents the user from losing the game by letting the fish get away.

FISHING_HOOK_SHINY

Fishing hook trait that signifies that it's shiny. Useful for fishes +that care about shiner hooks more.

FISHING_HOOK_WEIGHTED

Fishing hook trait that lessens the bounce from hitting the edges of the minigame bar.

FISHING_LINE_AUTOREEL

Skip the biting phase and go straight to the fishing phase.

FISHING_LINE_BOUNCY

Much like FISHING_HOOK_ENSNARE but for the fishing line.

FISHING_LINE_CLOAKED

Reduces the difficulty of the minigame

FISHING_LINE_REINFORCED

Required to cast a line on lava.

FISHING_LINE_STIFF

The sorta opposite of FISHING_LINE_BOUNCY. It makes it slower to gain completion and faster to lose it.

FISHING_MINIGAME_ACTIVE_EFFECTS

all the effects that are active and will last for a few seconds before triggering a cooldown

FISHING_MINIGAME_AREA

The height of the minigame slider. Not in pixels, but minigame units.

FISHING_MINIGAME_AUTOREEL

Skip the biting phase and go straight to the minigame, avoiding the penalty for having slow reflexes.

FISHING_MINIGAME_RULE_ANTIGRAV

If enabled, the minigame will occasionally screw around and invert the velocity of the bait

FISHING_MINIGAME_RULE_BIDIRECTIONAL

Keeps the bait from falling from gravity, instead allowing the player to move the bait down with right click.

FISHING_MINIGAME_RULE_CAMO

The fish will fade in and out at intervals

FISHING_MINIGAME_RULE_FLIP

Will filp the minigame hud for the duration of the effect

FISHING_MINIGAME_RULE_KILL

Automatically kills the fish after a while, at the cost of killing it

FISHING_MINIGAME_RULE_NO_ESCAPE

Prevents the player from losing the minigame when the completion reaches 0

FISHING_MINIGAME_RULE_NO_EXP

Prevents the fishing skill from having an effect on the minigame and experience from being awarded

FISHING_MINIMUM_DIFFICULTY

The minimum value of the difficulty of the minigame (unless it reaches 0 than it's auto-win) +Any lower than this and the fish will be way too lethargic for the minigame to be engaging in the slightest.

FISHING_RANDOM_SEED

Used in the the hydro tray fishing spot to define a random seed reward

FISH_AUTOWIKI_FILENAME

A macro to ensure the wikimedia filenames of fish icons are unique, especially since there're a couple fish that have +quite ambiguous names/icon_states like "checkered" or "pike"

FISH_BAIT_TYPE

Define for favorite and disliked baits that aren't just item typepaths.

FISH_DO_FLOP_ANIM

This fish has a flopping animation done through matrices

FISH_FILLET_NUMBER_SIZE_DIVISOR

The number of fillets is multiplied by the fish' size and divided by this.

FISH_FLAG_EXPERIMENT_SCANNABLE

This fish can be scanned to complete fish scanning experiments

FISH_FLAG_PETTED

This fish has been petted in the last 30 seconds

FISH_FLAG_SHOW_IN_CATALOG

This fish is shown in the catalog and on the wiki (this only matters as an initial, compile-time value)

FISH_GRIND_RESULTS_WEIGHT_DIVISOR

The volume of the grind results is multiplied by the fish' weight and divided by this.

FISH_PROPERTIES_FAV_BAIT

Defines for fish properties from the collect_fish_properties proc

FISH_RARITY_BASIC

How likely one's to find a given fish from random fish cases.

FISH_SAFE_COOKING_DURATION

The fish needs to be cooked for at least this long so that it can be safely eaten

FISH_SIZE_TINY_MAX

Fish size thresholds for w_class.

FISH_SIZE_TWO_HANDS_REQUIRED

size threshold for requiring two-handed carry

FISH_SOURCE_AUTOWIKI_DUD

Special value for the name key that always comes first when the data is sorted, regardless of weight.

FISH_SOURCE_AUTOWIKI_NAME

The list keys for the autowiki for fish sources

FISH_SOURCE_AUTOWIKI_OTHER

Special value for the name key that always comes last

FISH_SOURCE_AUTOWIKI_QUESTIONMARK

The filename for the icon for "other stuff" which we don't articulate about on the autowiki

FISH_WEIGHT_BITE_DIVISOR

Used to calculate how many bites a fish can take and therefore the amount of reagents it has.

FISH_WEIGHT_FORCE_DIVISOR

Used to calculate the force of the fish by comparing (1 + log(weight/this_define)) and the w_class of the item.

FISH_WEIGHT_GRIND_TO_BITE_MULT

The multiplier used in the FISH_WEIGHT_BITE_DIVISOR define

FISH_WEIGHT_MULT_WITHOUT_BAIT

We multiply the weight of fish inside the loot table by this value if we are goofy enough to fish without a bait.

FISH_WEIGHT_SLOWDOWN

The slowdown of the fish when carried begins at this value

FISH_WEIGHT_SLOWDOWN_DIVISOR

The value of the slowdown equals to the weight divided by this (and then at the power of a sub-1 exponent)

FISH_WEIGHT_SLOWDOWN_EXPONENT

The sub-one exponent that results in the final slowdown of the fish item

MAX_FISH_DEVIATION_COEFF

The coefficient for maximum weight/size divergence relative to the averages.

NEW_FISH_BREEDING_TIMEOUT_MULT

The breeding timeout for newly instantiated fish is multiplied by this.

NEW_FISH_LAST_FEEDING_MULT

The last feeding timestamp of newly instantiated fish is multiplied by this: ergo, they spawn 50% hungry.

ROD_SLOT_BAIT

Slot defines for the fishing rod and its equipment

\ No newline at end of file diff --git a/code/__DEFINES/fonts.html b/code/__DEFINES/fonts.html new file mode 100644 index 0000000000000..a0b63f9929cb9 --- /dev/null +++ b/code/__DEFINES/fonts.html @@ -0,0 +1 @@ +code/__DEFINES/fonts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/fonts.dm

PEN_FONTFont used by regular pens
FOUNTAIN_PEN_FONTFont used by fancy pens
CRAYON_FONTFont used by crayons
PRINTER_FONTFont used by printers
CHARCOAL_FONTFont used by charcoal pens
SIGNATURE_FONTFont used when signing on paper.
EMOJI_SETEmoji icon set
INCLUDE_ACInclude leading A width and trailing C width in GetWidth() or in DrawText()

Define Details

CHARCOAL_FONT

Font used by charcoal pens

CRAYON_FONT

Font used by crayons

EMOJI_SET

Emoji icon set

FOUNTAIN_PEN_FONT

Font used by fancy pens

INCLUDE_AC

Include leading A width and trailing C width in GetWidth() or in DrawText()

PEN_FONT

Font used by regular pens

PRINTER_FONT

Font used by printers

SIGNATURE_FONT

Font used when signing on paper.

\ No newline at end of file diff --git a/code/__DEFINES/food.html b/code/__DEFINES/food.html new file mode 100644 index 0000000000000..5f43fdce568f1 --- /dev/null +++ b/code/__DEFINES/food.html @@ -0,0 +1,5 @@ +code/__DEFINES/food.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/food.dm

FOOD_FLAGSA list of food type names, in order of their flags
FOOD_FLAGS_ICIC meaning (more or less) for food flags
DISLIKED_FOOD_QUALITY_CHANGEFood quality change according to species diet
TOXIC_FOOD_QUALITY_THRESHOLDThreshold for food to give a toxic reaction
FOOD_QUALITY_DANGEROUSFood is dangerous to consume
FOOD_IN_CONTAINERFood is "in a container", not in a code sense, but in a literal sense (canned foods)
FOOD_FINGER_FOODFinger food can be eaten while walking / running around
FOOD_NO_EXAMINEExamining this edible won't show infos on food types, bites and remote tasting etc.
FOOD_NO_BITECOUNTThis food item doesn't track bitecounts, use responsibly.
FOOD_AFTER_EAT_CONSUME_ANYWAYDefine for return value of the after_eat callback that will call OnConsume if it hasn't already.
FOOD_TRASH_POPABLEFood trash flags
FOOD_LIKEDFood preference enums
VENUE_BAR_MINIMUM_REAGENTSVenue reagent requirement
FOOD_PRICE_WORTHLESSFood price classes +Foods that are meant to have no value, such as lollypops from medborgs.
FOOD_PRICE_TRASHcheap and quick foods, like those from vending machines.
FOOD_PRICE_CHEAPIn line with prices of cheap snacks and foods you find in vending machine, practically disposable.
FOOD_PRICE_NORMALHalf a crate of profit, selling 4 of these lets you buy a kitchen crate from cargo.
FOOD_PRICE_EXOTICMaking one of these should be worth the time investment, solid chunk of profit.
FOOD_PRICE_LEGENDARYLarge windfall for making something from this list.
DRINK_PRICE_STOCKDrink price classes +Drinks that are only limited by a single click of the dispenser.
DRINK_PRICE_EASYDrinks that are made through very basic processing.
DRINK_PRICE_MEDIUMDrinks that are made through more basic processing, or multiple steps.
DRINK_PRICE_HIGHDrinks that are made through rare ingredients, or high levels of processing.
ICE_CREAM_VANILLAFlavour defines (also names) for GLOB.ice_cream_flavours list access. Safer from mispelling than plain text.
WATER_BOILING_POINTPoint water boils at
SOUP_BURN_TEMPPoint at which soups begin to burn at
SOUP_SERVING_SIZEServing size of soup. Plus or minus five units.
MILK_TO_BUTTER_COEFFHow much milk is needed to make butter on a reagent grinder

Define Details

DISLIKED_FOOD_QUALITY_CHANGE

Food quality change according to species diet

DRINK_PRICE_EASY

Drinks that are made through very basic processing.

DRINK_PRICE_HIGH

Drinks that are made through rare ingredients, or high levels of processing.

DRINK_PRICE_MEDIUM

Drinks that are made through more basic processing, or multiple steps.

DRINK_PRICE_STOCK

Drink price classes +Drinks that are only limited by a single click of the dispenser.

FOOD_AFTER_EAT_CONSUME_ANYWAY

Define for return value of the after_eat callback that will call OnConsume if it hasn't already.

FOOD_FINGER_FOOD

Finger food can be eaten while walking / running around

FOOD_FLAGS

A list of food type names, in order of their flags

FOOD_FLAGS_IC

IC meaning (more or less) for food flags

FOOD_IN_CONTAINER

Food is "in a container", not in a code sense, but in a literal sense (canned foods)

FOOD_LIKED

Food preference enums

FOOD_NO_BITECOUNT

This food item doesn't track bitecounts, use responsibly.

FOOD_NO_EXAMINE

Examining this edible won't show infos on food types, bites and remote tasting etc.

FOOD_PRICE_CHEAP

In line with prices of cheap snacks and foods you find in vending machine, practically disposable.

FOOD_PRICE_EXOTIC

Making one of these should be worth the time investment, solid chunk of profit.

FOOD_PRICE_LEGENDARY

Large windfall for making something from this list.

FOOD_PRICE_NORMAL

Half a crate of profit, selling 4 of these lets you buy a kitchen crate from cargo.

FOOD_PRICE_TRASH

cheap and quick foods, like those from vending machines.

FOOD_PRICE_WORTHLESS

Food price classes +Foods that are meant to have no value, such as lollypops from medborgs.

FOOD_QUALITY_DANGEROUS

Food is dangerous to consume

FOOD_TRASH_POPABLE

Food trash flags

ICE_CREAM_VANILLA

Flavour defines (also names) for GLOB.ice_cream_flavours list access. Safer from mispelling than plain text.

MILK_TO_BUTTER_COEFF

How much milk is needed to make butter on a reagent grinder

SOUP_BURN_TEMP

Point at which soups begin to burn at

SOUP_SERVING_SIZE

Serving size of soup. Plus or minus five units.

TOXIC_FOOD_QUALITY_THRESHOLD

Threshold for food to give a toxic reaction

VENUE_BAR_MINIMUM_REAGENTS

Venue reagent requirement

WATER_BOILING_POINT

Point water boils at

\ No newline at end of file diff --git a/code/__DEFINES/footsteps.html b/code/__DEFINES/footsteps.html new file mode 100644 index 0000000000000..8f6b6f4e6877c --- /dev/null +++ b/code/__DEFINES/footsteps.html @@ -0,0 +1 @@ +code/__DEFINES/footsteps.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/footsteps.dm

STEP_SOUND_PRIORITYthe name of the index key for priority

Define Details

STEP_SOUND_PRIORITY

the name of the index key for priority

\ No newline at end of file diff --git a/code/__DEFINES/fov.html b/code/__DEFINES/fov.html new file mode 100644 index 0000000000000..8ba48be457eae --- /dev/null +++ b/code/__DEFINES/fov.html @@ -0,0 +1 @@ +code/__DEFINES/fov.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/fov.dm

FOV_90_DEGREESField of vision defines.
BASE_FOV_MASK_X_DIMENSIONBase mask dimensions. They're like a client's view, only change them if you modify the mask to different dimensions.
NEARSIGHTNESS_FOV_BLINDNESSRange at which FOV effects treat nearsightness as blind and play
FULLSCREEN_OVERLAY_RESOLUTION_XThe fullscreen overlay in tiles for x axis
FULLSCREEN_OVERLAY_RESOLUTION_YThe fullscreen overlay in tiles for y axis

Define Details

BASE_FOV_MASK_X_DIMENSION

Base mask dimensions. They're like a client's view, only change them if you modify the mask to different dimensions.

FOV_90_DEGREES

Field of vision defines.

FULLSCREEN_OVERLAY_RESOLUTION_X

The fullscreen overlay in tiles for x axis

FULLSCREEN_OVERLAY_RESOLUTION_Y

The fullscreen overlay in tiles for y axis

NEARSIGHTNESS_FOV_BLINDNESS

Range at which FOV effects treat nearsightness as blind and play

\ No newline at end of file diff --git a/code/__DEFINES/generators.html b/code/__DEFINES/generators.html new file mode 100644 index 0000000000000..774e64105f881 --- /dev/null +++ b/code/__DEFINES/generators.html @@ -0,0 +1 @@ +code/__DEFINES/generators.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/generators.dm

P_DATA_GENERATORparticle editor var modifiers

Define Details

P_DATA_GENERATOR

particle editor var modifiers

\ No newline at end of file diff --git a/code/__DEFINES/ghost.html b/code/__DEFINES/ghost.html new file mode 100644 index 0000000000000..efaa7f98f6bb9 --- /dev/null +++ b/code/__DEFINES/ghost.html @@ -0,0 +1 @@ +code/__DEFINES/ghost.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ghost.dm

GHOST_ORBIT_CIRCLEGhosts will orbit objects in a circle
GHOST_ORBIT_TRIANGLEGhosts will orbit objects in a triangle
GHOST_ORBIT_HEXAGONGhosts will orbit objects in a hexagon
GHOST_ORBIT_SQUAREGhosts will orbit objects in a square
GHOST_ORBIT_PENTAGONGhosts will orbit objects in a pentagon
GHOST_ACCS_NONEThe main player's ghost will display as a simple white ghost
GHOST_ACCS_DIRThe main player's ghost will display as a transparent mob
GHOST_ACCS_FULLThe main player's ghost will display as a transparent mob with clothing
GHOST_ACCS_DEFAULT_OPTIONThe default ghost display selection for the main player
GHOST_OTHERS_SIMPLEThe other players ghosts will display as a simple white ghost
GHOST_OTHERS_DEFAULT_SPRITEThe other players ghosts will display as transparent mobs
GHOST_OTHERS_THEIR_SETTINGThe other players ghosts will display as transparent mobs with clothing
GHOST_OTHERS_DEFAULT_OPTIONThe default ghost display selection when viewing other players
GHOST_MAX_VIEW_RANGE_DEFAULTA ghosts max view range if they are a BYOND guest or regular account
GHOST_MAX_VIEW_RANGE_MEMBERA ghosts max view range if they are a BYOND paid member account (P2W feature)
DEADCHAT_ANNOUNCEMENTDeadchat notification for important round events (RED_ALERT, shuttle EVAC, communication announcements, etc.)
DEADCHAT_ARRIVALRATTLEDeadchat notification for new players who join the round at arrivals
DEADCHAT_DEATHRATTLEDeadchat notification for players who die during the round
DEADCHAT_LAWCHANGEDeadchat notification for when there is an AI law change
DEADCHAT_LOGIN_LOGOUTDeadchat notification for when players enter/leave the server (ignores stealth admins)
DEADCHAT_REGULARDeadchat regular ghost chat
CAMERA_NO_GHOSTSPictures taken by a camera will not display ghosts
CAMERA_SEE_GHOSTS_BASICPictures taken by a camera will display ghosts in the photo
CAMERA_SEE_GHOSTS_ORBITPictures taken by a camera will display ghosts and their orbits

Define Details

CAMERA_NO_GHOSTS

Pictures taken by a camera will not display ghosts

CAMERA_SEE_GHOSTS_BASIC

Pictures taken by a camera will display ghosts in the photo

CAMERA_SEE_GHOSTS_ORBIT

Pictures taken by a camera will display ghosts and their orbits

DEADCHAT_ANNOUNCEMENT

Deadchat notification for important round events (RED_ALERT, shuttle EVAC, communication announcements, etc.)

DEADCHAT_ARRIVALRATTLE

Deadchat notification for new players who join the round at arrivals

DEADCHAT_DEATHRATTLE

Deadchat notification for players who die during the round

DEADCHAT_LAWCHANGE

Deadchat notification for when there is an AI law change

DEADCHAT_LOGIN_LOGOUT

Deadchat notification for when players enter/leave the server (ignores stealth admins)

DEADCHAT_REGULAR

Deadchat regular ghost chat

GHOST_ACCS_DEFAULT_OPTION

The default ghost display selection for the main player

GHOST_ACCS_DIR

The main player's ghost will display as a transparent mob

GHOST_ACCS_FULL

The main player's ghost will display as a transparent mob with clothing

GHOST_ACCS_NONE

The main player's ghost will display as a simple white ghost

GHOST_MAX_VIEW_RANGE_DEFAULT

A ghosts max view range if they are a BYOND guest or regular account

GHOST_MAX_VIEW_RANGE_MEMBER

A ghosts max view range if they are a BYOND paid member account (P2W feature)

GHOST_ORBIT_CIRCLE

Ghosts will orbit objects in a circle

GHOST_ORBIT_HEXAGON

Ghosts will orbit objects in a hexagon

GHOST_ORBIT_PENTAGON

Ghosts will orbit objects in a pentagon

GHOST_ORBIT_SQUARE

Ghosts will orbit objects in a square

GHOST_ORBIT_TRIANGLE

Ghosts will orbit objects in a triangle

GHOST_OTHERS_DEFAULT_OPTION

The default ghost display selection when viewing other players

GHOST_OTHERS_DEFAULT_SPRITE

The other players ghosts will display as transparent mobs

GHOST_OTHERS_SIMPLE

The other players ghosts will display as a simple white ghost

GHOST_OTHERS_THEIR_SETTING

The other players ghosts will display as transparent mobs with clothing

\ No newline at end of file diff --git a/code/__DEFINES/gravity.html b/code/__DEFINES/gravity.html new file mode 100644 index 0000000000000..edf746e358ab0 --- /dev/null +++ b/code/__DEFINES/gravity.html @@ -0,0 +1,4 @@ +code/__DEFINES/gravity.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/gravity.dm

STAGE_ONESingularity is stage 1 (1x1)
STAGE_TWOSingularity is stage 2 (3x3)
STAGE_THREESingularity is stage 3 (5x5)
STAGE_FOURSingularity is stage 4 (7x7)
STAGE_FIVESingularity is stage 5 (9x9)
STAGE_SIXSingularity is stage 6 (11x11)
NEGATIVE_GRAVITYThe point where gravity is negative enough to pull you upwards. +That means walking checks for a ceiling instead of a floor, and you can fall "upwards"
GRAVITY_DAMAGE_THRESHOLDThe gravity strength threshold for high gravity damage.
GRAVITY_DAMAGE_SCALINGThe scaling factor for high gravity damage.
GRAVITY_DAMAGE_MAXIMUMThe maximum BRUTE damage a mob can take from high gravity per second.

Define Details

GRAVITY_DAMAGE_MAXIMUM

The maximum BRUTE damage a mob can take from high gravity per second.

GRAVITY_DAMAGE_SCALING

The scaling factor for high gravity damage.

GRAVITY_DAMAGE_THRESHOLD

The gravity strength threshold for high gravity damage.

NEGATIVE_GRAVITY

The point where gravity is negative enough to pull you upwards. +That means walking checks for a ceiling instead of a floor, and you can fall "upwards"

+

This should only be possible on multi-z maps because it works like shit on maps that aren't.

STAGE_FIVE

Singularity is stage 5 (9x9)

STAGE_FOUR

Singularity is stage 4 (7x7)

STAGE_ONE

Singularity is stage 1 (1x1)

STAGE_SIX

Singularity is stage 6 (11x11)

STAGE_THREE

Singularity is stage 3 (5x5)

STAGE_TWO

Singularity is stage 2 (3x3)

\ No newline at end of file diff --git a/code/__DEFINES/hud.html b/code/__DEFINES/hud.html new file mode 100644 index 0000000000000..40d4611c95b01 --- /dev/null +++ b/code/__DEFINES/hud.html @@ -0,0 +1 @@ +code/__DEFINES/hud.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/hud.dm

HUD_STYLE_STANDARDStandard hud
HUD_STYLE_REDUCEDReduced hud (just hands and intent switcher)
HUD_STYLE_NOHUDNo hud (for screenshots)
HUD_VERSIONSUsed in show_hud(); Please ensure this is the same as the maximum index.
APPEARANCE_UI_IGNORE_ALPHAUsed for progress bars and chat messages
APPEARANCE_UIUsed for HUD objects
SCRN_OBJ_DEFAULTWhatever the base action datum thinks is best
SCRN_OBJ_FLOATINGFloating somewhere on the hud, not in any predefined place
SCRN_OBJ_IN_LISTIn the list of buttons stored at the top of the screen
SCRN_OBJ_IN_PALETTEIn the collapseable palette
SCRN_OBJ_INSERT_FIRSTInserted first in the list
PLANE_GROUP_MAINThe primary group, holds everything on the main window
PLANE_GROUP_POPUP_WINDOWA secondary group, used when a client views a generic window
HOVER_OUTLINE_FILTERThe filter name for the hover outline

Define Details

APPEARANCE_UI

Used for HUD objects

APPEARANCE_UI_IGNORE_ALPHA

Used for progress bars and chat messages

HOVER_OUTLINE_FILTER

The filter name for the hover outline

HUD_STYLE_NOHUD

No hud (for screenshots)

HUD_STYLE_REDUCED

Reduced hud (just hands and intent switcher)

HUD_STYLE_STANDARD

Standard hud

HUD_VERSIONS

Used in show_hud(); Please ensure this is the same as the maximum index.

PLANE_GROUP_MAIN

The primary group, holds everything on the main window

PLANE_GROUP_POPUP_WINDOW

A secondary group, used when a client views a generic window

SCRN_OBJ_DEFAULT

Whatever the base action datum thinks is best

SCRN_OBJ_FLOATING

Floating somewhere on the hud, not in any predefined place

SCRN_OBJ_INSERT_FIRST

Inserted first in the list

SCRN_OBJ_IN_LIST

In the list of buttons stored at the top of the screen

SCRN_OBJ_IN_PALETTE

In the collapseable palette

\ No newline at end of file diff --git a/code/__DEFINES/icon_smoothing.html b/code/__DEFINES/icon_smoothing.html new file mode 100644 index 0000000000000..b6c1d455792a9 --- /dev/null +++ b/code/__DEFINES/icon_smoothing.html @@ -0,0 +1,24 @@ +code/__DEFINES/icon_smoothing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/icon_smoothing.dm

SMOOTH_CORNERSSmoothing system in where adjacencies are calculated and used to build an image by mounting each corner at runtime.
SMOOTH_BITMASKSmoothing system in where adjacencies are calculated and used to select a pre-baked icon_state, encoded by bitmasking.
SMOOTH_BITMASK_CARDINALSLimits SMOOTH_BITMASK to only cardinal directions, for use with cardinal smoothing
SMOOTH_DIAGONAL_CORNERSAtom has diagonal corners, with underlays under them.
SMOOTH_BORDERAtom will smooth with the borders of the map.
SMOOTH_QUEUEDAtom is currently queued to smooth.
SMOOTH_OBJSmooths with objects, and will thus need to scan turfs for contents.
SMOOTH_BORDER_OBJECTUses directional object smoothing, so we care not only about something being on the right turf, but also its direction +Changes the meaning of smoothing_junction, instead of representing the directions we are smoothing in +it represents the sides of our directional border object that have a neighbor +Is incompatible with SMOOTH_CORNERS because border objects don't have corners
NORTH_JUNCTIONComponents of a smoothing junction +Redefinitions of the diagonal directions so they can be stored in one var without conflicts
S_TURF*SMOOTHING GROUPS
SMOOTH_GROUP_TURF_OPENturf/open
SMOOTH_GROUP_TURF_CHASMturf/open/chasm, /turf/open/floor/fakepit
SMOOTH_GROUP_FLOOR_LAVAturf/open/lava/smooth
SMOOTH_GROUP_FLOOR_TRANSPARENT_GLASSturf/open/floor/glass
SMOOTH_GROUP_OPEN_FLOORturf/open/floor
SMOOTH_GROUP_FLOOR_GRASSturf/open/misc/grass
SMOOTH_GROUP_FLOOR_ASHturf/open/misc/ashplanet/ash
SMOOTH_GROUP_FLOOR_ASH_ROCKYturf/open/misc/ashplanet/rocky
SMOOTH_GROUP_FLOOR_ICEturf/open/misc/ice
SMOOTH_GROUP_FLOOR_SNOWEDturf/open/floor/plating/snowed
SMOOTH_GROUP_CARPETturf/open/floor/carpet
SMOOTH_GROUP_CARPET_BLACKturf/open/floor/carpet/black
SMOOTH_GROUP_CARPET_BLUEturf/open/floor/carpet/blue
SMOOTH_GROUP_CARPET_CYANturf/open/floor/carpet/cyan
SMOOTH_GROUP_CARPET_GREENturf/open/floor/carpet/green
SMOOTH_GROUP_CARPET_ORANGEturf/open/floor/carpet/orange
SMOOTH_GROUP_CARPET_PURPLEturf/open/floor/carpet/purple
SMOOTH_GROUP_CARPET_REDturf/open/floor/carpet/red
SMOOTH_GROUP_CARPET_ROYAL_BLACKturf/open/floor/carpet/royalblack
SMOOTH_GROUP_CARPET_ROYAL_BLUEturf/open/floor/carpet/royalblue
SMOOTH_GROUP_CARPET_EXECUTIVEturf/open/floor/carpet/executive
SMOOTH_GROUP_CARPET_STELLARturf/open/floor/carpet/stellar
SMOOTH_GROUP_CARPET_DONKturf/open/floor/carpet/donk
SMOOTH_GROUP_CARPET_NEONturf/open/floor/carpet/neon
SMOOTH_GROUP_CARPET_SIMPLE_NEONturf/open/floor/carpet/neon/simple
SMOOTH_GROUP_CARPET_SIMPLE_NEON_WHITEturf/open/floor/carpet/neon/simple/white
SMOOTH_GROUP_CARPET_SIMPLE_NEON_BLACKturf/open/floor/carpet/neon/simple/black
SMOOTH_GROUP_CARPET_SIMPLE_NEON_REDturf/open/floor/carpet/neon/simple/red
SMOOTH_GROUP_CARPET_SIMPLE_NEON_ORANGEturf/open/floor/carpet/neon/simple/orange
SMOOTH_GROUP_CARPET_SIMPLE_NEON_YELLOWturf/open/floor/carpet/neon/simple/yellow
SMOOTH_GROUP_CARPET_SIMPLE_NEON_LIMEturf/open/floor/carpet/neon/simple/lime
SMOOTH_GROUP_CARPET_SIMPLE_NEON_GREENturf/open/floor/carpet/neon/simple/green
SMOOTH_GROUP_CARPET_SIMPLE_NEON_TEALturf/open/floor/carpet/neon/simple/teal
SMOOTH_GROUP_CARPET_SIMPLE_NEON_CYANturf/open/floor/carpet/neon/simple/cyan
SMOOTH_GROUP_CARPET_SIMPLE_NEON_BLUEturf/open/floor/carpet/neon/simple/blue
SMOOTH_GROUP_CARPET_SIMPLE_NEON_PURPLEturf/open/floor/carpet/neon/simple/purple
SMOOTH_GROUP_CARPET_SIMPLE_NEON_VIOLETturf/open/floor/carpet/neon/simple/violet
SMOOTH_GROUP_CARPET_SIMPLE_NEON_PINKturf/open/floor/carpet/neon/simple/pink
SMOOTH_GROUP_CARPET_SIMPLE_NEON_NODOTSturf/open/floor/carpet/neon/simple/nodots
SMOOTH_GROUP_CARPET_SIMPLE_NEON_WHITE_NODOTSturf/open/floor/carpet/neon/simple/white/nodots
SMOOTH_GROUP_CARPET_SIMPLE_NEON_BLACK_NODOTSturf/open/floor/carpet/neon/simple/black/nodots
SMOOTH_GROUP_CARPET_SIMPLE_NEON_RED_NODOTSturf/open/floor/carpet/neon/simple/red/nodots
SMOOTH_GROUP_CARPET_SIMPLE_NEON_ORANGE_NODOTSturf/open/floor/carpet/neon/simple/orange/nodots
SMOOTH_GROUP_CARPET_SIMPLE_NEON_YELLOW_NODOTSturf/open/floor/carpet/neon/simple/yellow/nodots
SMOOTH_GROUP_CARPET_SIMPLE_NEON_LIME_NODOTSturf/open/floor/carpet/neon/simple/lime/nodots
SMOOTH_GROUP_CARPET_SIMPLE_NEON_GREEN_NODOTSturf/open/floor/carpet/neon/simple/green/nodots
SMOOTH_GROUP_CARPET_SIMPLE_NEON_TEAL_NODOTSturf/open/floor/carpet/neon/simple/teal/nodots
SMOOTH_GROUP_CARPET_SIMPLE_NEON_CYAN_NODOTSturf/open/floor/carpet/neon/simple/cyan/nodots
SMOOTH_GROUP_CARPET_SIMPLE_NEON_BLUE_NODOTSturf/open/floor/carpet/neon/simple/blue/nodots
SMOOTH_GROUP_CARPET_SIMPLE_NEON_PURPLE_NODOTSturf/open/floor/carpet/neon/simple/purple/nodots
SMOOTH_GROUP_CARPET_SIMPLE_NEON_VIOLET_NODOTSturf/open/floor/carpet/neon/simple/violet/nodots
SMOOTH_GROUP_CARPET_SIMPLE_NEON_PINK_NODOTSturf/open/floor/carpet/neon/simple/pink/nodots
SMOOTH_GROUP_BAMBOO_FLOOR/turf/open/floor/bamboo
SMOOTH_GROUP_CLOSED_TURFSturf/closed
SMOOTH_GROUP_MATERIAL_WALLSturf/closed/wall/material
SMOOTH_GROUP_SYNDICATE_WALLSturf/closed/wall/r_wall/syndicate, /turf/closed/indestructible/syndicate
SMOOTH_GROUP_HOTEL_WALLSturf/closed/indestructible/hotelwall
SMOOTH_GROUP_MINERAL_WALLSturf/closed/mineral, /turf/closed/indestructible
SMOOTH_GROUP_BOSS_WALLSturf/closed/indestructible/riveted/boss
SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLSturf/closed/wall/mineral/titanium/survival
SMOOTH_GROUP_TURF_OPEN_CLIFFturf/open/cliff
SMOOTH_GROUP_WALLSturf/closed/wall, /obj/structure/falsewall
SMOOTH_GROUP_URANIUM_WALLSturf/closed/wall/mineral/uranium, /obj/structure/falsewall/uranium
SMOOTH_GROUP_GOLD_WALLSturf/closed/wall/mineral/gold, /obj/structure/falsewall/gold
SMOOTH_GROUP_SILVER_WALLSturf/closed/wall/mineral/silver, /obj/structure/falsewall/silver
SMOOTH_GROUP_DIAMOND_WALLSturf/closed/wall/mineral/diamond, /obj/structure/falsewall/diamond
SMOOTH_GROUP_PLASMA_WALLSturf/closed/wall/mineral/plasma, /obj/structure/falsewall/plasma
SMOOTH_GROUP_BANANIUM_WALLSturf/closed/wall/mineral/bananium, /obj/structure/falsewall/bananium
SMOOTH_GROUP_SANDSTONE_WALLSturf/closed/wall/mineral/sandstone, /obj/structure/falsewall/sandstone
SMOOTH_GROUP_WOOD_WALLSturf/closed/wall/mineral/wood, /obj/structure/falsewall/wood
SMOOTH_GROUP_IRON_WALLSturf/closed/wall/mineral/iron, /obj/structure/falsewall/iron
SMOOTH_GROUP_ABDUCTOR_WALLSturf/closed/wall/mineral/abductor, /obj/structure/falsewall/abductor
SMOOTH_GROUP_TITANIUM_WALLSturf/closed/wall/mineral/titanium, /obj/structure/falsewall/titanium
SMOOTH_GROUP_PLASTITANIUM_WALLSturf/closed/wall/mineral/plastitanium, /obj/structure/falsewall/plastitanium
SMOOTH_GROUP_SURVIVAL_TITANIUM_PODturf/closed/wall/mineral/titanium/survival/pod, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/reinforced/shuttle/survival_pod
SMOOTH_GROUP_HIERO_WALLobj/effect/temp_visual/elite_tumor_wall, /obj/effect/temp_visual/hierophant/wall
SMOOTH_GROUP_BAMBOO_WALLS/turf/closed/wall/mineral/bamboo, /obj/structure/falsewall/bamboo
SMOOTH_GROUP_PLASTINUM_WALLSturf/closed/indestructible/riveted/plastinum
SMOOTH_GROUP_SHIPWALLSturf/closed/wall/mineral/titanium/spaceship
SMOOTH_GROUP_STONE_WALLSturf/closed/wall/mineral/stone, /obj/structure/falsewall/stone
SMOOTH_GROUP_PAPERFRAMEobj/structure/window/paperframe, /obj/structure/mineral_door/paperframe
SMOOTH_GROUP_WINDOW_FULLTILEturf/closed/indestructible/fakeglass, /obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/reinforced/plasma/fulltile
SMOOTH_GROUP_WINDOW_FULLTILE_BRONZEobj/structure/window/bronze/fulltile
SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUMturf/closed/indestructible/opsglass, /obj/structure/window/reinforced/plasma/plastitanium
SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLEobj/structure/window/reinforced/shuttle
SMOOTH_GROUP_LATTICEobj/structure/lattice
SMOOTH_GROUP_CATWALKobj/structure/lattice/catwalk
SMOOTH_GROUP_AIRLOCKobj/machinery/door/airlock
SMOOTH_GROUP_INDUSTRIAL_LIFTobj/structure/transport/linear
SMOOTH_GROUP_TABLESobj/structure/table
SMOOTH_GROUP_WOOD_TABLESobj/structure/table/wood
SMOOTH_GROUP_FANCY_WOOD_TABLESobj/structure/table/wood/fancy
SMOOTH_GROUP_BRONZE_TABLESobj/structure/table/bronze
SMOOTH_GROUP_ABDUCTOR_TABLESobj/structure/table/abductor
SMOOTH_GROUP_GLASS_TABLESobj/structure/table/glass
SMOOTH_GROUP_ALIEN_NESTobj/structure/bed/nest
SMOOTH_GROUP_ALIEN_RESINobj/structure/alien/resin
SMOOTH_GROUP_ALIEN_WALLSobj/structure/alien/resin/wall, /obj/structure/alien/resin/membrane
SMOOTH_GROUP_ALIEN_WEEDSobj/structure/alien/weeds
SMOOTH_GROUP_SECURITY_BARRICADEobj/structure/barricade/security
SMOOTH_GROUP_SANDBAGSobj/structure/barricade/sandbags
SMOOTH_GROUP_HEDGE_FLUFFobj/structure/hedge
SMOOTH_GROUP_SHUTTLE_PARTSobj/structure/window/reinforced/shuttle, /obj/structure/window/reinforced/plasma/plastitanium, /turf/closed/indestructible/opsglass, /obj/machinery/power/shuttle_engine
SMOOTH_GROUP_CLEANABLE_DIRTobj/effect/decal/cleanable/dirt
SMOOTH_GROUP_WATERobj/effect/abstract/liquid_turf
SETUP_SMOOTHINGPerforms the work to set smoothing_groups and canSmoothWith. +An inlined function used in both turf/Initialize and atom/Initialize.
UNWRAP_SMOOTHING_GROUPSGiven a smoothing groups variable, will set out to the actual numbers inside it

Define Details

NORTH_JUNCTION

Components of a smoothing junction +Redefinitions of the diagonal directions so they can be stored in one var without conflicts

SETUP_SMOOTHING

Performs the work to set smoothing_groups and canSmoothWith. +An inlined function used in both turf/Initialize and atom/Initialize.

SMOOTH_BITMASK

Smoothing system in where adjacencies are calculated and used to select a pre-baked icon_state, encoded by bitmasking.

SMOOTH_BITMASK_CARDINALS

Limits SMOOTH_BITMASK to only cardinal directions, for use with cardinal smoothing

SMOOTH_BORDER

Atom will smooth with the borders of the map.

SMOOTH_BORDER_OBJECT

Uses directional object smoothing, so we care not only about something being on the right turf, but also its direction +Changes the meaning of smoothing_junction, instead of representing the directions we are smoothing in +it represents the sides of our directional border object that have a neighbor +Is incompatible with SMOOTH_CORNERS because border objects don't have corners

SMOOTH_CORNERS

Smoothing system in where adjacencies are calculated and used to build an image by mounting each corner at runtime.

SMOOTH_DIAGONAL_CORNERS

Atom has diagonal corners, with underlays under them.

SMOOTH_GROUP_ABDUCTOR_TABLES

obj/structure/table/abductor

SMOOTH_GROUP_ABDUCTOR_WALLS

turf/closed/wall/mineral/abductor, /obj/structure/falsewall/abductor

SMOOTH_GROUP_AIRLOCK

obj/machinery/door/airlock

SMOOTH_GROUP_ALIEN_NEST

obj/structure/bed/nest

SMOOTH_GROUP_ALIEN_RESIN

obj/structure/alien/resin

SMOOTH_GROUP_ALIEN_WALLS

obj/structure/alien/resin/wall, /obj/structure/alien/resin/membrane

SMOOTH_GROUP_ALIEN_WEEDS

obj/structure/alien/weeds

SMOOTH_GROUP_BAMBOO_FLOOR

/turf/open/floor/bamboo

SMOOTH_GROUP_BAMBOO_WALLS

/turf/closed/wall/mineral/bamboo, /obj/structure/falsewall/bamboo

SMOOTH_GROUP_BANANIUM_WALLS

turf/closed/wall/mineral/bananium, /obj/structure/falsewall/bananium

SMOOTH_GROUP_BOSS_WALLS

turf/closed/indestructible/riveted/boss

SMOOTH_GROUP_BRONZE_TABLES

obj/structure/table/bronze

SMOOTH_GROUP_CARPET

turf/open/floor/carpet

SMOOTH_GROUP_CARPET_BLACK

turf/open/floor/carpet/black

SMOOTH_GROUP_CARPET_BLUE

turf/open/floor/carpet/blue

SMOOTH_GROUP_CARPET_CYAN

turf/open/floor/carpet/cyan

SMOOTH_GROUP_CARPET_DONK

turf/open/floor/carpet/donk

SMOOTH_GROUP_CARPET_EXECUTIVE

turf/open/floor/carpet/executive

SMOOTH_GROUP_CARPET_GREEN

turf/open/floor/carpet/green

SMOOTH_GROUP_CARPET_NEON

turf/open/floor/carpet/neon

SMOOTH_GROUP_CARPET_ORANGE

turf/open/floor/carpet/orange

SMOOTH_GROUP_CARPET_PURPLE

turf/open/floor/carpet/purple

SMOOTH_GROUP_CARPET_RED

turf/open/floor/carpet/red

SMOOTH_GROUP_CARPET_ROYAL_BLACK

turf/open/floor/carpet/royalblack

SMOOTH_GROUP_CARPET_ROYAL_BLUE

turf/open/floor/carpet/royalblue

SMOOTH_GROUP_CARPET_SIMPLE_NEON

turf/open/floor/carpet/neon/simple

SMOOTH_GROUP_CARPET_SIMPLE_NEON_BLACK

turf/open/floor/carpet/neon/simple/black

SMOOTH_GROUP_CARPET_SIMPLE_NEON_BLACK_NODOTS

turf/open/floor/carpet/neon/simple/black/nodots

SMOOTH_GROUP_CARPET_SIMPLE_NEON_BLUE

turf/open/floor/carpet/neon/simple/blue

SMOOTH_GROUP_CARPET_SIMPLE_NEON_BLUE_NODOTS

turf/open/floor/carpet/neon/simple/blue/nodots

SMOOTH_GROUP_CARPET_SIMPLE_NEON_CYAN

turf/open/floor/carpet/neon/simple/cyan

SMOOTH_GROUP_CARPET_SIMPLE_NEON_CYAN_NODOTS

turf/open/floor/carpet/neon/simple/cyan/nodots

SMOOTH_GROUP_CARPET_SIMPLE_NEON_GREEN

turf/open/floor/carpet/neon/simple/green

SMOOTH_GROUP_CARPET_SIMPLE_NEON_GREEN_NODOTS

turf/open/floor/carpet/neon/simple/green/nodots

SMOOTH_GROUP_CARPET_SIMPLE_NEON_LIME

turf/open/floor/carpet/neon/simple/lime

SMOOTH_GROUP_CARPET_SIMPLE_NEON_LIME_NODOTS

turf/open/floor/carpet/neon/simple/lime/nodots

SMOOTH_GROUP_CARPET_SIMPLE_NEON_NODOTS

turf/open/floor/carpet/neon/simple/nodots

SMOOTH_GROUP_CARPET_SIMPLE_NEON_ORANGE

turf/open/floor/carpet/neon/simple/orange

SMOOTH_GROUP_CARPET_SIMPLE_NEON_ORANGE_NODOTS

turf/open/floor/carpet/neon/simple/orange/nodots

SMOOTH_GROUP_CARPET_SIMPLE_NEON_PINK

turf/open/floor/carpet/neon/simple/pink

SMOOTH_GROUP_CARPET_SIMPLE_NEON_PINK_NODOTS

turf/open/floor/carpet/neon/simple/pink/nodots

SMOOTH_GROUP_CARPET_SIMPLE_NEON_PURPLE

turf/open/floor/carpet/neon/simple/purple

SMOOTH_GROUP_CARPET_SIMPLE_NEON_PURPLE_NODOTS

turf/open/floor/carpet/neon/simple/purple/nodots

SMOOTH_GROUP_CARPET_SIMPLE_NEON_RED

turf/open/floor/carpet/neon/simple/red

SMOOTH_GROUP_CARPET_SIMPLE_NEON_RED_NODOTS

turf/open/floor/carpet/neon/simple/red/nodots

SMOOTH_GROUP_CARPET_SIMPLE_NEON_TEAL

turf/open/floor/carpet/neon/simple/teal

SMOOTH_GROUP_CARPET_SIMPLE_NEON_TEAL_NODOTS

turf/open/floor/carpet/neon/simple/teal/nodots

SMOOTH_GROUP_CARPET_SIMPLE_NEON_VIOLET

turf/open/floor/carpet/neon/simple/violet

SMOOTH_GROUP_CARPET_SIMPLE_NEON_VIOLET_NODOTS

turf/open/floor/carpet/neon/simple/violet/nodots

SMOOTH_GROUP_CARPET_SIMPLE_NEON_WHITE

turf/open/floor/carpet/neon/simple/white

SMOOTH_GROUP_CARPET_SIMPLE_NEON_WHITE_NODOTS

turf/open/floor/carpet/neon/simple/white/nodots

SMOOTH_GROUP_CARPET_SIMPLE_NEON_YELLOW

turf/open/floor/carpet/neon/simple/yellow

SMOOTH_GROUP_CARPET_SIMPLE_NEON_YELLOW_NODOTS

turf/open/floor/carpet/neon/simple/yellow/nodots

SMOOTH_GROUP_CARPET_STELLAR

turf/open/floor/carpet/stellar

SMOOTH_GROUP_CATWALK

obj/structure/lattice/catwalk

SMOOTH_GROUP_CLEANABLE_DIRT

obj/effect/decal/cleanable/dirt

SMOOTH_GROUP_CLOSED_TURFS

turf/closed

SMOOTH_GROUP_DIAMOND_WALLS

turf/closed/wall/mineral/diamond, /obj/structure/falsewall/diamond

SMOOTH_GROUP_FANCY_WOOD_TABLES

obj/structure/table/wood/fancy

SMOOTH_GROUP_FLOOR_ASH

turf/open/misc/ashplanet/ash

SMOOTH_GROUP_FLOOR_ASH_ROCKY

turf/open/misc/ashplanet/rocky

SMOOTH_GROUP_FLOOR_GRASS

turf/open/misc/grass

SMOOTH_GROUP_FLOOR_ICE

turf/open/misc/ice

SMOOTH_GROUP_FLOOR_LAVA

turf/open/lava/smooth

SMOOTH_GROUP_FLOOR_SNOWED

turf/open/floor/plating/snowed

SMOOTH_GROUP_FLOOR_TRANSPARENT_GLASS

turf/open/floor/glass

SMOOTH_GROUP_GLASS_TABLES

obj/structure/table/glass

SMOOTH_GROUP_GOLD_WALLS

turf/closed/wall/mineral/gold, /obj/structure/falsewall/gold

SMOOTH_GROUP_HEDGE_FLUFF

obj/structure/hedge

SMOOTH_GROUP_HIERO_WALL

obj/effect/temp_visual/elite_tumor_wall, /obj/effect/temp_visual/hierophant/wall

SMOOTH_GROUP_HOTEL_WALLS

turf/closed/indestructible/hotelwall

SMOOTH_GROUP_INDUSTRIAL_LIFT

obj/structure/transport/linear

SMOOTH_GROUP_IRON_WALLS

turf/closed/wall/mineral/iron, /obj/structure/falsewall/iron

SMOOTH_GROUP_LATTICE

obj/structure/lattice

SMOOTH_GROUP_MATERIAL_WALLS

turf/closed/wall/material

SMOOTH_GROUP_MINERAL_WALLS

turf/closed/mineral, /turf/closed/indestructible

SMOOTH_GROUP_OPEN_FLOOR

turf/open/floor

SMOOTH_GROUP_PAPERFRAME

obj/structure/window/paperframe, /obj/structure/mineral_door/paperframe

SMOOTH_GROUP_PLASMA_WALLS

turf/closed/wall/mineral/plasma, /obj/structure/falsewall/plasma

SMOOTH_GROUP_PLASTINUM_WALLS

turf/closed/indestructible/riveted/plastinum

SMOOTH_GROUP_PLASTITANIUM_WALLS

turf/closed/wall/mineral/plastitanium, /obj/structure/falsewall/plastitanium

SMOOTH_GROUP_SANDBAGS

obj/structure/barricade/sandbags

SMOOTH_GROUP_SANDSTONE_WALLS

turf/closed/wall/mineral/sandstone, /obj/structure/falsewall/sandstone

SMOOTH_GROUP_SECURITY_BARRICADE

obj/structure/barricade/security

SMOOTH_GROUP_SHIPWALLS

turf/closed/wall/mineral/titanium/spaceship

SMOOTH_GROUP_SHUTTLE_PARTS

obj/structure/window/reinforced/shuttle, /obj/structure/window/reinforced/plasma/plastitanium, /turf/closed/indestructible/opsglass, /obj/machinery/power/shuttle_engine

SMOOTH_GROUP_SILVER_WALLS

turf/closed/wall/mineral/silver, /obj/structure/falsewall/silver

SMOOTH_GROUP_STONE_WALLS

turf/closed/wall/mineral/stone, /obj/structure/falsewall/stone

SMOOTH_GROUP_SURVIVAL_TITANIUM_POD

turf/closed/wall/mineral/titanium/survival/pod, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/reinforced/shuttle/survival_pod

SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS

turf/closed/wall/mineral/titanium/survival

SMOOTH_GROUP_SYNDICATE_WALLS

turf/closed/wall/r_wall/syndicate, /turf/closed/indestructible/syndicate

SMOOTH_GROUP_TABLES

obj/structure/table

SMOOTH_GROUP_TITANIUM_WALLS

turf/closed/wall/mineral/titanium, /obj/structure/falsewall/titanium

SMOOTH_GROUP_TURF_CHASM

turf/open/chasm, /turf/open/floor/fakepit

SMOOTH_GROUP_TURF_OPEN

turf/open

SMOOTH_GROUP_TURF_OPEN_CLIFF

turf/open/cliff

SMOOTH_GROUP_URANIUM_WALLS

turf/closed/wall/mineral/uranium, /obj/structure/falsewall/uranium

SMOOTH_GROUP_WALLS

turf/closed/wall, /obj/structure/falsewall

SMOOTH_GROUP_WATER

obj/effect/abstract/liquid_turf

SMOOTH_GROUP_WINDOW_FULLTILE

turf/closed/indestructible/fakeglass, /obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/reinforced/plasma/fulltile

SMOOTH_GROUP_WINDOW_FULLTILE_BRONZE

obj/structure/window/bronze/fulltile

SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM

turf/closed/indestructible/opsglass, /obj/structure/window/reinforced/plasma/plastitanium

SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE

obj/structure/window/reinforced/shuttle

SMOOTH_GROUP_WOOD_TABLES

obj/structure/table/wood

SMOOTH_GROUP_WOOD_WALLS

turf/closed/wall/mineral/wood, /obj/structure/falsewall/wood

SMOOTH_OBJ

Smooths with objects, and will thus need to scan turfs for contents.

SMOOTH_QUEUED

Atom is currently queued to smooth.

S_TURF

*SMOOTHING GROUPS

+

UNWRAP_SMOOTHING_GROUPS

Given a smoothing groups variable, will set out to the actual numbers inside it

\ No newline at end of file diff --git a/code/__DEFINES/id_cards.html b/code/__DEFINES/id_cards.html new file mode 100644 index 0000000000000..dceec9a802f1e --- /dev/null +++ b/code/__DEFINES/id_cards.html @@ -0,0 +1,12 @@ +code/__DEFINES/id_cards.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/id_cards.dm

WILDCARD_LIMIT_GREYThe order in which these lists are defined matters. When attempting to add a wildcard access to a card +and not specifying an explicit wildcard slot in which to include it, the code will iterate over the list +and stop at the first wildcard flag that can hold the access.
WILDCARD_LIMIT_SILVERWildcard slot define for Head of Staff silver cards. Can hold 6 common, 2 command and 1 private command.
WILDCARD_LIMIT_GOLDWildcard slot define for Captain gold cards. Can hold infinite of any Captain level wildcard.
WILDCARD_LIMIT_SYNDICATEWildcard slot define for select Syndicate-affiliated cards. Can hold infinite of any Syndicate level wildcard. Syndicate includes all station accesses.
WILDCARD_LIMIT_DEATHSQUADWildcard slot define for Deathsquad black cards. Can hold infinite of any Centcom level wildcard. Centcom includes all station accesses.
WILDCARD_LIMIT_CENTCOMWildcard slot define for Centcom blue cards. Can hold infinite of any Centcom level wildcard. Centcom includes all station accesses.
WILDCARD_LIMIT_PRISONERWildcard slot define for Prisoner orange cards. No wildcard slots.
WILDCARD_LIMIT_CHAMELEONWildcard slot define for Chameleon/Agent ID grey cards. Can hold 3 common, 1 command and 1 captain access.
WILDCARD_LIMIT_ADMINWildcard slot define for admin/debug/weird, special abstract cards. Can hold infinite of any access.
ID_ICON_BORDERSx1, y1, x2, y2 - Represents the bounding box for the ID card's non-transparent portion of its various icon_states. +Used to crop the ID card's transparency away when chaching the icon for better use in tgui chat.

Define Details

ID_ICON_BORDERS

x1, y1, x2, y2 - Represents the bounding box for the ID card's non-transparent portion of its various icon_states. +Used to crop the ID card's transparency away when chaching the icon for better use in tgui chat.

WILDCARD_LIMIT_ADMIN

Wildcard slot define for admin/debug/weird, special abstract cards. Can hold infinite of any access.

WILDCARD_LIMIT_CENTCOM

Wildcard slot define for Centcom blue cards. Can hold infinite of any Centcom level wildcard. Centcom includes all station accesses.

WILDCARD_LIMIT_CHAMELEON

Wildcard slot define for Chameleon/Agent ID grey cards. Can hold 3 common, 1 command and 1 captain access.

WILDCARD_LIMIT_DEATHSQUAD

Wildcard slot define for Deathsquad black cards. Can hold infinite of any Centcom level wildcard. Centcom includes all station accesses.

WILDCARD_LIMIT_GOLD

Wildcard slot define for Captain gold cards. Can hold infinite of any Captain level wildcard.

WILDCARD_LIMIT_GREY

The order in which these lists are defined matters. When attempting to add a wildcard access to a card +and not specifying an explicit wildcard slot in which to include it, the code will iterate over the list +and stop at the first wildcard flag that can hold the access.

+

The lower level the access, the earlier in the list it should be so that low level wildcards get +added to the lowest wildcard flag that can take them.

+

A limit of -1 means infinite slots. The system is designed to reject a wildcard when the slot limit +explicitly equal 0 for all compatible wildcard slots. +Wildcard slot define for basic grey cards. Only hold 4 common wildcards.

WILDCARD_LIMIT_PRISONER

Wildcard slot define for Prisoner orange cards. No wildcard slots.

WILDCARD_LIMIT_SILVER

Wildcard slot define for Head of Staff silver cards. Can hold 6 common, 2 command and 1 private command.

WILDCARD_LIMIT_SYNDICATE

Wildcard slot define for select Syndicate-affiliated cards. Can hold infinite of any Syndicate level wildcard. Syndicate includes all station accesses.

\ No newline at end of file diff --git a/code/__DEFINES/implants.html b/code/__DEFINES/implants.html new file mode 100644 index 0000000000000..5c73b7d0d3a04 --- /dev/null +++ b/code/__DEFINES/implants.html @@ -0,0 +1 @@ +code/__DEFINES/implants.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/implants.dm

IMPLANT_TYPE_SECURITYDenotes this as a "security" implant, limiting it to two per body
SECURITY_IMPLANT_CAPMaximum number of security implants in a mob at once.

Define Details

IMPLANT_TYPE_SECURITY

Denotes this as a "security" implant, limiting it to two per body

SECURITY_IMPLANT_CAP

Maximum number of security implants in a mob at once.

\ No newline at end of file diff --git a/code/__DEFINES/important_recursive_contents.html b/code/__DEFINES/important_recursive_contents.html new file mode 100644 index 0000000000000..f3287fd47db43 --- /dev/null +++ b/code/__DEFINES/important_recursive_contents.html @@ -0,0 +1,3 @@ +code/__DEFINES/important_recursive_contents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/important_recursive_contents.dm

RECURSIVE_CONTENTS_AREA_SENSITIVEthe area channel of the important_recursive_contents list, everything in here will be sent a signal when their last holding object changes areas
RECURSIVE_CONTENTS_HEARING_SENSITIVEthe hearing channel of the important_recursive_contents list, everything in here will count as a hearing atom
RECURSIVE_CONTENTS_CLIENT_MOBSthe client mobs channel of the important_recursive_contents list, everything in here will be a mob with an attached client +this is given to both a clients mob, and a clients eye, both point to the clients mob
RECURSIVE_CONTENTS_ACTIVE_STORAGEthe parent of storage components currently shown to some client mob get this. gets removed when nothing is viewing the parent

Define Details

RECURSIVE_CONTENTS_ACTIVE_STORAGE

the parent of storage components currently shown to some client mob get this. gets removed when nothing is viewing the parent

RECURSIVE_CONTENTS_AREA_SENSITIVE

the area channel of the important_recursive_contents list, everything in here will be sent a signal when their last holding object changes areas

RECURSIVE_CONTENTS_CLIENT_MOBS

the client mobs channel of the important_recursive_contents list, everything in here will be a mob with an attached client +this is given to both a clients mob, and a clients eye, both point to the clients mob

RECURSIVE_CONTENTS_HEARING_SENSITIVE

the hearing channel of the important_recursive_contents list, everything in here will count as a hearing atom

\ No newline at end of file diff --git a/code/__DEFINES/injection.html b/code/__DEFINES/injection.html new file mode 100644 index 0000000000000..a02dfa1f359cc --- /dev/null +++ b/code/__DEFINES/injection.html @@ -0,0 +1 @@ +code/__DEFINES/injection.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/injection.dm

INJECT_CHECK_PENETRATE_THICKThis injection can penetrate through thick clothing.
INJECT_CHECK_IGNORE_SPECIESThis injection bypasses species specific restrictions.
INJECT_TRY_SHOW_ERROR_MESSAGEWhen trying this injection, show an error message if it fails.

Define Details

INJECT_CHECK_IGNORE_SPECIES

This injection bypasses species specific restrictions.

INJECT_CHECK_PENETRATE_THICK

This injection can penetrate through thick clothing.

INJECT_TRY_SHOW_ERROR_MESSAGE

When trying this injection, show an error message if it fails.

\ No newline at end of file diff --git a/code/__DEFINES/input.html b/code/__DEFINES/input.html new file mode 100644 index 0000000000000..982308fb32d59 --- /dev/null +++ b/code/__DEFINES/input.html @@ -0,0 +1 @@ +code/__DEFINES/input.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/input.dm

MAXIMUM_CLICK_LATENCYif the running average click latency is above this amount then clicks will never queue and will execute immediately

Define Details

MAXIMUM_CLICK_LATENCY

if the running average click latency is above this amount then clicks will never queue and will execute immediately

\ No newline at end of file diff --git a/code/__DEFINES/instruments.html b/code/__DEFINES/instruments.html new file mode 100644 index 0000000000000..c5675ad490418 --- /dev/null +++ b/code/__DEFINES/instruments.html @@ -0,0 +1 @@ +code/__DEFINES/instruments.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/instruments.dm

CHANNELS_PER_INSTRUMENTMax number of playing notes per instrument.
INSTRUMENT_MIN_TOTAL_SUSTAINMinimum length a note should ever go for
INSTRUMENT_MAX_TOTAL_SUSTAINMaximum length a note should ever go for
INSTRUMENT_EXP_FALLOFF_MINThese are per decisecond.
INSTRUMENT_MIN_SUSTAIN_DROPOFFMinimum volume for when the sound is considered dead.

Define Details

CHANNELS_PER_INSTRUMENT

Max number of playing notes per instrument.

INSTRUMENT_EXP_FALLOFF_MIN

These are per decisecond.

INSTRUMENT_MAX_TOTAL_SUSTAIN

Maximum length a note should ever go for

INSTRUMENT_MIN_SUSTAIN_DROPOFF

Minimum volume for when the sound is considered dead.

INSTRUMENT_MIN_TOTAL_SUSTAIN

Minimum length a note should ever go for

\ No newline at end of file diff --git a/code/__DEFINES/interaction_flags.html b/code/__DEFINES/interaction_flags.html new file mode 100644 index 0000000000000..15cf164f736ce --- /dev/null +++ b/code/__DEFINES/interaction_flags.html @@ -0,0 +1 @@ +code/__DEFINES/interaction_flags.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/interaction_flags.dm

INTERACT_ATOM_REQUIRES_ANCHOREDwhether can_interact() checks for anchored. only works on movables.
INTERACT_ATOM_ATTACK_HANDcalls try_interact() on attack_hand() and returns that.
INTERACT_ATOM_UI_INTERACTautomatically calls and returns ui_interact() on interact().
INTERACT_ATOM_REQUIRES_DEXTERITYuser must be dextrous
INTERACT_ATOM_IGNORE_INCAPACITATEDignores incapacitated check
INTERACT_ATOM_IGNORE_RESTRAINEDincapacitated check ignores restrained
INTERACT_ATOM_CHECK_GRABincapacitated check checks grab
INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HANDprevents leaving fingerprints automatically on attack_hand
INTERACT_ATOM_NO_FINGERPRINT_INTERACTadds hiddenprints instead of fingerprints on interact
INTERACT_ATOM_ALLOW_USER_LOCATIONallows this atom to skip the adjacency check
INTERACT_ATOM_IGNORE_MOBILITYignores mobility check
INTERACT_ATOM_MOUSEDROP_IGNORE_USABILITYBypass all can_perform_action checks for mouse drop
INTERACT_ATOM_MOUSEDROP_IGNORE_CHECKSBypass all adjacency and other checks for mouse drop
INTERACT_ATOM_ATTACK_PAWcalls try_interact() on attack_paw() and returns that.
INTERACT_ITEM_ATTACK_HAND_PICKUPattempt pickup on attack_hand for items
INTERACT_MACHINE_OPENcan_interact() while open
INTERACT_MACHINE_OFFLINEcan_interact() while offline
INTERACT_MACHINE_WIRES_IF_OPENtry to interact with wires if open
INTERACT_MACHINE_ALLOW_SILICONlet silicons interact
INTERACT_MACHINE_OPEN_SILICONlet silicons interact while open
INTERACT_MACHINE_REQUIRES_SILICONmust be silicon to interact
INTERACT_MACHINE_REQUIRES_SIGHTthe user must have vision to interact (blind people need not apply)
INTERACT_MACHINE_REQUIRES_LITERACYthe user must be able to read to interact

Define Details

INTERACT_ATOM_ALLOW_USER_LOCATION

allows this atom to skip the adjacency check

INTERACT_ATOM_ATTACK_HAND

calls try_interact() on attack_hand() and returns that.

INTERACT_ATOM_ATTACK_PAW

calls try_interact() on attack_paw() and returns that.

INTERACT_ATOM_CHECK_GRAB

incapacitated check checks grab

INTERACT_ATOM_IGNORE_INCAPACITATED

ignores incapacitated check

INTERACT_ATOM_IGNORE_MOBILITY

ignores mobility check

INTERACT_ATOM_IGNORE_RESTRAINED

incapacitated check ignores restrained

INTERACT_ATOM_MOUSEDROP_IGNORE_CHECKS

Bypass all adjacency and other checks for mouse drop

INTERACT_ATOM_MOUSEDROP_IGNORE_USABILITY

Bypass all can_perform_action checks for mouse drop

INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND

prevents leaving fingerprints automatically on attack_hand

INTERACT_ATOM_NO_FINGERPRINT_INTERACT

adds hiddenprints instead of fingerprints on interact

INTERACT_ATOM_REQUIRES_ANCHORED

whether can_interact() checks for anchored. only works on movables.

INTERACT_ATOM_REQUIRES_DEXTERITY

user must be dextrous

INTERACT_ATOM_UI_INTERACT

automatically calls and returns ui_interact() on interact().

INTERACT_ITEM_ATTACK_HAND_PICKUP

attempt pickup on attack_hand for items

INTERACT_MACHINE_ALLOW_SILICON

let silicons interact

INTERACT_MACHINE_OFFLINE

can_interact() while offline

INTERACT_MACHINE_OPEN

can_interact() while open

INTERACT_MACHINE_OPEN_SILICON

let silicons interact while open

INTERACT_MACHINE_REQUIRES_LITERACY

the user must be able to read to interact

INTERACT_MACHINE_REQUIRES_SIGHT

the user must have vision to interact (blind people need not apply)

INTERACT_MACHINE_REQUIRES_SILICON

must be silicon to interact

INTERACT_MACHINE_WIRES_IF_OPEN

try to interact with wires if open

\ No newline at end of file diff --git a/code/__DEFINES/inventory.html b/code/__DEFINES/inventory.html new file mode 100644 index 0000000000000..1bc09586d69b0 --- /dev/null +++ b/code/__DEFINES/inventory.html @@ -0,0 +1,3 @@ +code/__DEFINES/inventory.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/inventory.dm

WEIGHT_CLASS_TINYUsually items smaller then a human hand, (e.g. playing cards, lighter, scalpel, coins/holochips)
WEIGHT_CLASS_SMALLPockets can hold small and tiny items, (e.g. flashlight, multitool, grenades, GPS device)
WEIGHT_CLASS_NORMALStandard backpacks can carry tiny, small & normal items, (e.g. fire extinguisher, stun baton, gas mask, metal sheets)
WEIGHT_CLASS_BULKYItems that can be wielded or equipped but not stored in an inventory, (e.g. defibrillator, backpack, space suits)
WEIGHT_CLASS_HUGEUsually represents objects that require two hands to operate, (e.g. shotgun, two-handed melee weapons)
WEIGHT_CLASS_GIGANTICEssentially means it cannot be picked up or placed in an inventory, (e.g. mech parts, safe)
POCKET_WEIGHT_CLASSWeight class that can fit in pockets
ITEM_SLOT_OCLOTHINGSuit slot (armors, costumes, space suits, etc.)
ITEM_SLOT_ICLOTHINGJumpsuit slot
ITEM_SLOT_GLOVESGlove slot
ITEM_SLOT_EYESGlasses slot
ITEM_SLOT_EARS_LEFTEar slot (radios, earmuffs)
ITEM_SLOT_MASKMask slot
ITEM_SLOT_HEADHead slot (helmets, hats, etc.)
ITEM_SLOT_FEETShoe slot
ITEM_SLOT_IDID slot
ITEM_SLOT_BELTBelt slot
ITEM_SLOT_BACKBack slot
ITEM_SLOT_DEX_STORAGEDextrous simplemob "hands" (used for Drones and Dextrous Guardians)
ITEM_SLOT_NECKNeck slot (ties, bedsheets, scarves)
ITEM_SLOT_HANDSA character's hand slots
ITEM_SLOT_BACKPACKInside of a character's backpack
ITEM_SLOT_SUITSTORESuit Storage slot
ITEM_SLOT_LPOCKETLeft Pocket slot
ITEM_SLOT_RPOCKETRight Pocket slot
ITEM_SLOT_HANDCUFFEDHandcuff slot
ITEM_SLOT_LEGCUFFEDLegcuff slot (bolas, beartraps)
ITEM_SLOT_BELTPACKInside of a character's BELT.........
SLOTS_AMTTotal amount of slots
/datum/bitfield/no_equip_flagsInventory slots that can be blacklisted by a species from being equipped into
ITEM_SLOT_ON_BODYSlots that are physically on you
HIDEHEADGEARfor wigs, only obscures the headgear
HIDESNOUTfor lizard snouts, because some HIDEFACE clothes don't actually conceal that portion of the head.
HIDEMUTWINGShides mutant/moth wings, does not apply to functional wings
HIDEBELThides belts and riggings
HIDEANTENNAEhides antennae
SHOWSPRITEEARSManually set this on items you want anthro ears to show on!
HIDETAILDoes this sprite hide the tail?
HIDESPINEDoes this sprite also hide the spine on tails? Realistically only useful for the clothes that have a special tail overlay, like MODsuits
HIDESEXTOYDoes this sprite hide devious devices?
HIDETAURIf this has our taur variant, do we hide our taur part?
HIDEUNDERWEARhides underwear, socks and shirt
HIDEWRISTShides wrists
NO_FEMALE_UNIFORMFor when there's simply no need for a female version of this uniform.
FEMALE_UNIFORM_FULLFor the game to take off everything, disregards other flags.
FEMALE_UNIFORM_TOP_ONLYFor when you really need to avoid the game cutting off that one pixel between the legs, to avoid the comeback of the infamous "dixel".
FEMALE_UNIFORM_NO_BREASTSFor when you don't want the "breast" effect to be applied (the one that cuts two pixels in the middle of the front of the uniform when facing east or west).
FEMALE_UNIFORM_DIGI_FULLFor when you -don't- want to apply FEMALE_UNIFORM_TOP_ONLY to the digi version (which happens by default).
CLOTHING_NO_VARIATIONNo alternative sprites or handling based on bodytype
CLOTHING_DIGITIGRADE_VARIATIONHas a sprite for digitigrade legs specifically.
CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICONThe sprite works fine for digitigrade legs as-is.
CLOTHING_DIGITIGRADE_MASKAuto-generates the leg portion of the sprite with GAGS +Suggested that you set /obj/item/var/digitigrade_greyscale_config_worn when using this flag
CLOTHING_SNOUTED_VARIATIONThe sprite works fine for snouts.
CLOTHING_SNOUTED_VARIATION_NO_NEW_ICONThe sprite works fine for snouts as-is.
CLOTHING_SNOUTED_VOX_VARIATIONThe sprite works fine for vox snouts.
CLOTHING_SNOUTED_VOX_VARIATION_NO_NEW_ICONThe sprite works fine for vox snouts as is.
CLOTHING_SNOUTED_BETTER_VOX_VARIATIONThe sprite works fine for vox snouts.
CLOTHING_SNOUTED_BETTER_VOX_VARIATION_NO_NEW_ICONThe sprite works fine for vox snouts as is.
DIGITIGRADE_VARIATIONSAll variation flags which render "correctly" on a digitigrade leg setup
AFK_THEFT_MAX_MESSAGESHow many messages you can remember while logged out before you stop remembering new ones
AFK_THEFT_FORGET_DETAILS_TIMEIf someone logs back in and there are entries older than this, just tell them they can't remember who it was or when
AFK_THEFT_NAMEThe index of the entry in 'afk_thefts' with the person's visible name at the time
AFK_THEFT_MESSAGEThe index of the entry in 'afk_thefts' with the text
AFK_THEFT_TIMEThe index of the entry in 'afk_thefts' with the time it happened
LOCATION_LPOCKETString for items placed into the left pocket.
LOCATION_RPOCKETString for items placed into the right pocket
LOCATION_BACKPACKString for items placed into the backpack.
LOCATION_HANDSString for items placed into the hands.
LOCATION_GLOVESString for items placed in the glove slot.
LOCATION_EYESString for items placed in the eye/glasses slot.
LOCATION_HEADString for items placed on the head/hat slot.
LOCATION_NECKString for items placed in the neck slot.

Define Details

AFK_THEFT_FORGET_DETAILS_TIME

If someone logs back in and there are entries older than this, just tell them they can't remember who it was or when

AFK_THEFT_MAX_MESSAGES

How many messages you can remember while logged out before you stop remembering new ones

AFK_THEFT_MESSAGE

The index of the entry in 'afk_thefts' with the text

AFK_THEFT_NAME

The index of the entry in 'afk_thefts' with the person's visible name at the time

AFK_THEFT_TIME

The index of the entry in 'afk_thefts' with the time it happened

CLOTHING_DIGITIGRADE_MASK

Auto-generates the leg portion of the sprite with GAGS +Suggested that you set /obj/item/var/digitigrade_greyscale_config_worn when using this flag

CLOTHING_DIGITIGRADE_VARIATION

Has a sprite for digitigrade legs specifically.

CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON

The sprite works fine for digitigrade legs as-is.

CLOTHING_NO_VARIATION

No alternative sprites or handling based on bodytype

CLOTHING_SNOUTED_BETTER_VOX_VARIATION

The sprite works fine for vox snouts.

CLOTHING_SNOUTED_BETTER_VOX_VARIATION_NO_NEW_ICON

The sprite works fine for vox snouts as is.

CLOTHING_SNOUTED_VARIATION

The sprite works fine for snouts.

CLOTHING_SNOUTED_VARIATION_NO_NEW_ICON

The sprite works fine for snouts as-is.

CLOTHING_SNOUTED_VOX_VARIATION

The sprite works fine for vox snouts.

CLOTHING_SNOUTED_VOX_VARIATION_NO_NEW_ICON

The sprite works fine for vox snouts as is.

DIGITIGRADE_VARIATIONS

All variation flags which render "correctly" on a digitigrade leg setup

FEMALE_UNIFORM_DIGI_FULL

For when you -don't- want to apply FEMALE_UNIFORM_TOP_ONLY to the digi version (which happens by default).

FEMALE_UNIFORM_FULL

For the game to take off everything, disregards other flags.

FEMALE_UNIFORM_NO_BREASTS

For when you don't want the "breast" effect to be applied (the one that cuts two pixels in the middle of the front of the uniform when facing east or west).

FEMALE_UNIFORM_TOP_ONLY

For when you really need to avoid the game cutting off that one pixel between the legs, to avoid the comeback of the infamous "dixel".

HIDEANTENNAE

hides antennae

HIDEBELT

hides belts and riggings

HIDEHEADGEAR

for wigs, only obscures the headgear

HIDEMUTWINGS

hides mutant/moth wings, does not apply to functional wings

HIDESEXTOY

Does this sprite hide devious devices?

HIDESNOUT

for lizard snouts, because some HIDEFACE clothes don't actually conceal that portion of the head.

HIDESPINE

Does this sprite also hide the spine on tails? Realistically only useful for the clothes that have a special tail overlay, like MODsuits

HIDETAIL

Does this sprite hide the tail?

HIDETAUR

If this has our taur variant, do we hide our taur part?

HIDEUNDERWEAR

hides underwear, socks and shirt

HIDEWRISTS

hides wrists

ITEM_SLOT_BACK

Back slot

ITEM_SLOT_BACKPACK

Inside of a character's backpack

ITEM_SLOT_BELT

Belt slot

ITEM_SLOT_BELTPACK

Inside of a character's BELT.........

ITEM_SLOT_DEX_STORAGE

Dextrous simplemob "hands" (used for Drones and Dextrous Guardians)

ITEM_SLOT_EARS_LEFT

Ear slot (radios, earmuffs)

ITEM_SLOT_EYES

Glasses slot

ITEM_SLOT_FEET

Shoe slot

ITEM_SLOT_GLOVES

Glove slot

ITEM_SLOT_HANDCUFFED

Handcuff slot

ITEM_SLOT_HANDS

A character's hand slots

ITEM_SLOT_HEAD

Head slot (helmets, hats, etc.)

ITEM_SLOT_ICLOTHING

Jumpsuit slot

ITEM_SLOT_ID

ID slot

ITEM_SLOT_LEGCUFFED

Legcuff slot (bolas, beartraps)

ITEM_SLOT_LPOCKET

Left Pocket slot

ITEM_SLOT_MASK

Mask slot

ITEM_SLOT_NECK

Neck slot (ties, bedsheets, scarves)

ITEM_SLOT_OCLOTHING

Suit slot (armors, costumes, space suits, etc.)

ITEM_SLOT_ON_BODY

Slots that are physically on you

ITEM_SLOT_RPOCKET

Right Pocket slot

ITEM_SLOT_SUITSTORE

Suit Storage slot

LOCATION_BACKPACK

String for items placed into the backpack.

LOCATION_EYES

String for items placed in the eye/glasses slot.

LOCATION_GLOVES

String for items placed in the glove slot.

LOCATION_HANDS

String for items placed into the hands.

LOCATION_HEAD

String for items placed on the head/hat slot.

LOCATION_LPOCKET

String for items placed into the left pocket.

LOCATION_NECK

String for items placed in the neck slot.

LOCATION_RPOCKET

String for items placed into the right pocket

NO_FEMALE_UNIFORM

For when there's simply no need for a female version of this uniform.

POCKET_WEIGHT_CLASS

Weight class that can fit in pockets

SHOWSPRITEEARS

Manually set this on items you want anthro ears to show on!

SLOTS_AMT

Total amount of slots

WEIGHT_CLASS_BULKY

Items that can be wielded or equipped but not stored in an inventory, (e.g. defibrillator, backpack, space suits)

WEIGHT_CLASS_GIGANTIC

Essentially means it cannot be picked up or placed in an inventory, (e.g. mech parts, safe)

WEIGHT_CLASS_HUGE

Usually represents objects that require two hands to operate, (e.g. shotgun, two-handed melee weapons)

WEIGHT_CLASS_NORMAL

Standard backpacks can carry tiny, small & normal items, (e.g. fire extinguisher, stun baton, gas mask, metal sheets)

WEIGHT_CLASS_SMALL

Pockets can hold small and tiny items, (e.g. flashlight, multitool, grenades, GPS device)

WEIGHT_CLASS_TINY

Usually items smaller then a human hand, (e.g. playing cards, lighter, scalpel, coins/holochips)

\ No newline at end of file diff --git a/code/__DEFINES/ipintel.html b/code/__DEFINES/ipintel.html new file mode 100644 index 0000000000000..3c7b5da4b9bd6 --- /dev/null +++ b/code/__DEFINES/ipintel.html @@ -0,0 +1 @@ +code/__DEFINES/ipintel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ipintel.dm

IPINTEL_UNKNOWN_INTERNAL_ERRORAn internal error occurred and the query cannot be processed
IPINTEL_UNKNOWN_QUERY_ERRORAn error occurred with the query and the result is unknown
IPINTEL_RATE_LIMITED_DAYCannot query as we are rate limited for the rest of the day
IPINTEL_RATE_LIMITED_MINUTECannot query as we are rate limited for the rest of the minute
IPINTEL_BAD_IPThe IP address is a VPN or bad IP
IPINTEL_GOOD_IPThe IP address is not a VPN or bad IP

Define Details

IPINTEL_BAD_IP

The IP address is a VPN or bad IP

IPINTEL_GOOD_IP

The IP address is not a VPN or bad IP

IPINTEL_RATE_LIMITED_DAY

Cannot query as we are rate limited for the rest of the day

IPINTEL_RATE_LIMITED_MINUTE

Cannot query as we are rate limited for the rest of the minute

IPINTEL_UNKNOWN_INTERNAL_ERROR

An internal error occurred and the query cannot be processed

IPINTEL_UNKNOWN_QUERY_ERROR

An error occurred with the query and the result is unknown

\ No newline at end of file diff --git a/code/__DEFINES/is_helpers.html b/code/__DEFINES/is_helpers.html new file mode 100644 index 0000000000000..2cb3b5d83f02b --- /dev/null +++ b/code/__DEFINES/is_helpers.html @@ -0,0 +1 @@ +code/__DEFINES/is_helpers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/is_helpers.dm

IN_GIVEN_RANGEWithin given range, but not counting z-levels
HAS_SILICON_ACCESSThis is used to see if you have Silicon access. This includes things like Admins, Drones, Bots, and Human wands.
HAS_AI_ACCESSThis is used to see if you have the access of an AI. This doesn't mean you are an AI, just have the same access as one.
isanimal_or_basicmobreturns whether or not the atom is either a basic mob OR simple animal
isminingpathasteroid mobs, which are both simple and basic atm

Define Details

HAS_AI_ACCESS

This is used to see if you have the access of an AI. This doesn't mean you are an AI, just have the same access as one.

HAS_SILICON_ACCESS

This is used to see if you have Silicon access. This includes things like Admins, Drones, Bots, and Human wands.

IN_GIVEN_RANGE

Within given range, but not counting z-levels

isanimal_or_basicmob

returns whether or not the atom is either a basic mob OR simple animal

isminingpath

asteroid mobs, which are both simple and basic atm

\ No newline at end of file diff --git a/code/__DEFINES/jobs.html b/code/__DEFINES/jobs.html new file mode 100644 index 0000000000000..1fe0385fd7c1c --- /dev/null +++ b/code/__DEFINES/jobs.html @@ -0,0 +1,8 @@ +code/__DEFINES/jobs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/jobs.dm

JOB_UNAVAILABLE_ANTAG_INCOMPATJob unavailable due to incompatibility with an antag role.
JOB_UNAVAILABLE_AGEChecks for character age.
GENERIC_JOB_UNAVAILABLE_ERRORUsed when the get_job_unavailable_error_message proc can't make sense of a given code.
JOB_ASSISTANT
JOB_ANNOUNCE_ARRIVALWhether the mob is announced on arrival.
JOB_CREW_MANIFESTWhether the mob is added to the crew manifest.
JOB_EQUIP_RANKWhether the mob is equipped through SSjob.equip_rank() on spawn.
JOB_CREW_MEMBERWhether the job is considered a regular crew member of the station. Equipment such as AI and cyborgs not included.
JOB_NEW_PLAYER_JOINABLEWhether this job can be joined through the new_player menu.
JOB_BOLD_SELECT_TEXTWhether this job appears in bold in the job menu.
JOB_REOPEN_ON_ROUNDSTART_LOSSReopens this position if we lose the player at roundstart.
JOB_ASSIGN_QUIRKSIf the player with this job can have quirks assigned to him or not. Relevant for new player joinable jobs and roundstart antags.
JOB_CAN_BE_INTERNWhether this job can be an intern.
JOB_CANNOT_OPEN_SLOTSThis job cannot have more slots opened by the Head of Personnel (but admins or other random events can still do this).
JOB_HIDE_WHEN_EMPTYThis job will not display on the job menu when there are no slots available, instead of appearing greyed out
JOB_LATEJOIN_ONLYThis job cannot be signed up for at round start or recorded in your preferences
JOB_HEAD_OF_STAFFThis job is a head of staff.
STATION_JOB_FLAGSCombination flag for jobs which are considered regular crew members of the station.
HEAD_OF_STAFF_JOB_FLAGSCombination flag for jobs which are considered heads of staff.
STATION_TRAIT_JOB_FLAGSCombination flag for jobs which are enabled by station traits.
HEAD_OF_STAFF_MIND_TRAITSMind traits that should be shared by every head of staff. has to be this way cause byond lists lol

Define Details

GENERIC_JOB_UNAVAILABLE_ERROR

Used when the get_job_unavailable_error_message proc can't make sense of a given code.

HEAD_OF_STAFF_JOB_FLAGS

Combination flag for jobs which are considered heads of staff.

HEAD_OF_STAFF_MIND_TRAITS

Mind traits that should be shared by every head of staff. has to be this way cause byond lists lol

JOB_ANNOUNCE_ARRIVAL

Whether the mob is announced on arrival.

JOB_ASSIGN_QUIRKS

If the player with this job can have quirks assigned to him or not. Relevant for new player joinable jobs and roundstart antags.

JOB_ASSISTANT

======================= +WARNING WARNING WARNING +WARNING WARNING WARNING +WARNING WARNING WARNING

+

These names are used as keys in many locations in the database +you cannot change them trivially without breaking job bans and +role time tracking, if you do this and get it wrong you will die +and it will hurt the entire time

JOB_BOLD_SELECT_TEXT

Whether this job appears in bold in the job menu.

JOB_CANNOT_OPEN_SLOTS

This job cannot have more slots opened by the Head of Personnel (but admins or other random events can still do this).

JOB_CAN_BE_INTERN

Whether this job can be an intern.

JOB_CREW_MANIFEST

Whether the mob is added to the crew manifest.

JOB_CREW_MEMBER

Whether the job is considered a regular crew member of the station. Equipment such as AI and cyborgs not included.

JOB_EQUIP_RANK

Whether the mob is equipped through SSjob.equip_rank() on spawn.

JOB_HEAD_OF_STAFF

This job is a head of staff.

JOB_HIDE_WHEN_EMPTY

This job will not display on the job menu when there are no slots available, instead of appearing greyed out

JOB_LATEJOIN_ONLY

This job cannot be signed up for at round start or recorded in your preferences

JOB_NEW_PLAYER_JOINABLE

Whether this job can be joined through the new_player menu.

JOB_REOPEN_ON_ROUNDSTART_LOSS

Reopens this position if we lose the player at roundstart.

JOB_UNAVAILABLE_AGE

Checks for character age.

JOB_UNAVAILABLE_ANTAG_INCOMPAT

Job unavailable due to incompatibility with an antag role.

STATION_JOB_FLAGS

Combination flag for jobs which are considered regular crew members of the station.

STATION_TRAIT_JOB_FLAGS

Combination flag for jobs which are enabled by station traits.

\ No newline at end of file diff --git a/code/__DEFINES/lag_switch.html b/code/__DEFINES/lag_switch.html new file mode 100644 index 0000000000000..8539f00ad9273 --- /dev/null +++ b/code/__DEFINES/lag_switch.html @@ -0,0 +1 @@ +code/__DEFINES/lag_switch.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/lag_switch.dm

DISABLE_DEAD_KEYLOOPStops ghosts flying around freely, they can still jump and orbit, staff exempted
DISABLE_GHOST_ZOOM_TRAYStops ghosts using zoom/t-ray verbs and resets their view if zoomed out, staff exempted
DISABLE_RUNECHATDisable runechat and enable the bubbles, speaking mobs with TRAIT_BYPASS_MEASURES exempted
DISABLE_USR_ICON2HTMLDisable icon2html procs from verbs like examine, mobs calling with TRAIT_BYPASS_MEASURES exempted
DISABLE_NON_OBSJOBSPrevents anyone from joining the game as anything but observer
SLOWMODE_SAYLimit IC/dchat spam to one message every x seconds per client, TRAIT_BYPASS_MEASURES exempted
DISABLE_PARALLAXDisables parallax, as if everyone had disabled their preference, TRAIT_BYPASS_MEASURES exempted
DISABLE_FOOTSTEPSDisables footsteps, TRAIT_BYPASS_MEASURES exempted
DISABLE_CREATORStops people from changing things in the character creator. Entirely.

Define Details

DISABLE_CREATOR

Stops people from changing things in the character creator. Entirely.

DISABLE_DEAD_KEYLOOP

Stops ghosts flying around freely, they can still jump and orbit, staff exempted

DISABLE_FOOTSTEPS

Disables footsteps, TRAIT_BYPASS_MEASURES exempted

DISABLE_GHOST_ZOOM_TRAY

Stops ghosts using zoom/t-ray verbs and resets their view if zoomed out, staff exempted

DISABLE_NON_OBSJOBS

Prevents anyone from joining the game as anything but observer

DISABLE_PARALLAX

Disables parallax, as if everyone had disabled their preference, TRAIT_BYPASS_MEASURES exempted

DISABLE_RUNECHAT

Disable runechat and enable the bubbles, speaking mobs with TRAIT_BYPASS_MEASURES exempted

DISABLE_USR_ICON2HTML

Disable icon2html procs from verbs like examine, mobs calling with TRAIT_BYPASS_MEASURES exempted

SLOWMODE_SAY

Limit IC/dchat spam to one message every x seconds per client, TRAIT_BYPASS_MEASURES exempted

\ No newline at end of file diff --git a/code/__DEFINES/language.html b/code/__DEFINES/language.html new file mode 100644 index 0000000000000..1b7fb3feede92 --- /dev/null +++ b/code/__DEFINES/language.html @@ -0,0 +1,7 @@ +code/__DEFINES/language.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/language.dm

LANGUAGE_ALLFor use in full removal only.
LANGUAGE_ATOMLanguage is linked to the movable directly.
LANGUAGE_MINDLanguage is linked to the mob's mind. +If a mind transfer happens, language follows.
LANGUAGE_SPECIESLanguage is linked to the mob's species. +If a species change happens, language goes away. +If applied to a non-human (no species) atom, this is effectively the same as LANGUAGE_ATOM.
SPOKEN_LANGUAGEThis language can be spoken.
UNDERSTOOD_LANGUAGEThis language can be understood.

Define Details

LANGUAGE_ALL

For use in full removal only.

LANGUAGE_ATOM

Language is linked to the movable directly.

LANGUAGE_MIND

Language is linked to the mob's mind. +If a mind transfer happens, language follows.

LANGUAGE_SPECIES

Language is linked to the mob's species. +If a species change happens, language goes away. +If applied to a non-human (no species) atom, this is effectively the same as LANGUAGE_ATOM.

SPOKEN_LANGUAGE

This language can be spoken.

UNDERSTOOD_LANGUAGE

This language can be understood.

\ No newline at end of file diff --git a/code/__DEFINES/layers.html b/code/__DEFINES/layers.html new file mode 100644 index 0000000000000..399d7f4d94dc0 --- /dev/null +++ b/code/__DEFINES/layers.html @@ -0,0 +1,33 @@ +code/__DEFINES/layers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/layers.dm

SEETHROUGH_PLANESlightly above the game plane but does not catch mouse clicks. Useful for certain visuals that should be clicked through, like seethrough trees
LIGHTING_PLANENormal 1 per turf dynamic lighting underlays
O_LIGHTING_VISUAL_PLANELighting objects that are "free floating"
EMISSIVE_RENDER_PLATEThis plane masks out lighting to create an "emissive" effect, ie for glowing lights in otherwise dark areas.
LIGHT_MASK_PLANEMasks the lighting plane with turfs, so we never light up the void +Failing that, masks emissives and the overlay lighting plane
ABOVE_LIGHTING_PLANEThings that should render ignoring lighting
PIPECRAWL_IMAGES_PLANE---------------- MISC ----------------------- +Pipecrawling images
CAMERA_STATIC_PLANEAI Camera Static
HIGH_GAME_PLANEAnything that wants to be part of the game plane, but also wants to draw above literally everything else
RUNECHAT_PLANE--------------- FULLSCREEN RUNECHAT BUBBLES ------------ +Popup Chat Messages
BALLOON_CHAT_PLANEPlane for balloon text (text that fades up)
SPLASHSCREEN_PLANEPlane of the "splash" icon used that shows on the lobby screen
RENDER_PLANE_GAME_MASKEDIf fov is enabled we'll draw game to this and do shit to it
RENDER_PLANE_GAME_UNMASKEDThe bit of the game plane that is let alone is sent here
ESCAPE_MENU_PLANEPlane related to the menu when pressing Escape. +Needed so that we can apply a blur effect to EVERYTHING, and guarantee we are above all UI.
PLANE_RANGEThe range unique planes can be in +Try and keep this to a nice whole number, so it's easy to look at a plane var and know what's going on
CATWALK_LAYERcatwalk overlay of /turf/open/floor/plating/catwalk_floor
WATER_LEVEL_LAYERAnything below this layer is to be considered completely (visually) under water by the immerse layer.
WATER_VISUAL_OVERLAY_LAYERThe layer of the visual overlay used in the submerge element. +The vis overlay inherits the planes of the movables it's attached to (that also have KEEP_TOGETHER added) +We just have to make sure the visual overlay is rendered above all the other overlays of those movables.
LIGHTING_MASK_LAYERTypically overlays, that "hide" portions of the turf underlay layer +I'm allotting 100 z levels before this breaks. That'll never happen +--Lemon
LIGHTING_PRIMARY_LAYERMisc things that draw on the turf lighting plane +Space, solar beams, etc
LIGHTING_ABOVE_ALLStuff that needs to draw above everything else on this plane
EMISSIVE_LAYER_UNBLOCKABLEThe layer you should use if you really don't want an emissive overlay to be blocked.
FLASH_LAYER--------------- FULLSCREEN IMAGES ------------
TYPING_LAYER--------------- FULLSCREEN RUNECHAT BUBBLES ------------ +Bubble for typing indicators
RADIAL_CONTENT_LAYER1000 is an unimportant number, it's just to normalize copied layers
SCREENTIP_LAYERLayer for screentips
TUTORIAL_INSTRUCTIONS_LAYERLayer for tutorial instructions
LIGHT_DEBUG_LAYERLayer for light overlays
LOBBY_BELOW_MENU_LAYERLayer for lobby menu collapse button
LOBBY_MENU_LAYERLayer for lobby menu background image and main buttons (Join/Ready, Observe, Character Prefs)
LOBBY_SHUTTER_LAYERLayer for lobby menu shutter, which covers up the menu to collapse/expand it
LOBBY_BOTTOM_BUTTON_LAYERLayer for lobby menu buttons that are hanging away from and lower than the main panel
CINEMATIC_LAYERcinematics are "below" the splash screen
PLANE_MASTERS_GAMEPlane master controller keys
PLANE_CRITICAL_DISPLAYThis plane master will not go away if its layer is culled. useful for preserving effects
PLANE_CRITICAL_NO_RELAYThis plane master will temporarially remove relays to all other planes +Allows us to retain the effects of a plane while cutting off the changes it makes
PLANE_CRITICAL_CUT_RENDERWe assume this plane master has a render target starting with *, it'll be removed, forcing it to render in place
BLOCKS_PLANE_OFFSETTINGThis plane master will not be offset itself, existing only once with an offset of 0 +Mostly used for planes that really don't need to be duplicated, like the hud planes
OFFSET_RELAYS_MATCH_HIGHESTThis plane master will have its relays offset to match the highest rendering plane that matches the target +Required for making things like the blind fullscreen not render over runechat
MULTIZ_PERFORMANCE_DISABLEA value of /datum/preference/numeric/multiz_performance that disables the option
MAX_EXPECTED_Z_DEPTHWe expect at most 3 layers of multiz +Increment this define if you make a huge map. We unit test for it too just to make it easy for you +If you modify this, you'll need to modify the tsx file too

Define Details

ABOVE_LIGHTING_PLANE

Things that should render ignoring lighting

BALLOON_CHAT_PLANE

Plane for balloon text (text that fades up)

BLOCKS_PLANE_OFFSETTING

This plane master will not be offset itself, existing only once with an offset of 0 +Mostly used for planes that really don't need to be duplicated, like the hud planes

CAMERA_STATIC_PLANE

AI Camera Static

CATWALK_LAYER

catwalk overlay of /turf/open/floor/plating/catwalk_floor

CINEMATIC_LAYER

cinematics are "below" the splash screen

EMISSIVE_LAYER_UNBLOCKABLE

The layer you should use if you really don't want an emissive overlay to be blocked.

EMISSIVE_RENDER_PLATE

This plane masks out lighting to create an "emissive" effect, ie for glowing lights in otherwise dark areas.

ESCAPE_MENU_PLANE

Plane related to the menu when pressing Escape. +Needed so that we can apply a blur effect to EVERYTHING, and guarantee we are above all UI.

FLASH_LAYER

--------------- FULLSCREEN IMAGES ------------

HIGH_GAME_PLANE

Anything that wants to be part of the game plane, but also wants to draw above literally everything else

LIGHTING_ABOVE_ALL

Stuff that needs to draw above everything else on this plane

LIGHTING_MASK_LAYER

Typically overlays, that "hide" portions of the turf underlay layer +I'm allotting 100 z levels before this breaks. That'll never happen +--Lemon

LIGHTING_PLANE

Normal 1 per turf dynamic lighting underlays

LIGHTING_PRIMARY_LAYER

Misc things that draw on the turf lighting plane +Space, solar beams, etc

LIGHT_DEBUG_LAYER

Layer for light overlays

LIGHT_MASK_PLANE

Masks the lighting plane with turfs, so we never light up the void +Failing that, masks emissives and the overlay lighting plane

LOBBY_BELOW_MENU_LAYER

Layer for lobby menu collapse button

LOBBY_BOTTOM_BUTTON_LAYER

Layer for lobby menu buttons that are hanging away from and lower than the main panel

LOBBY_MENU_LAYER

Layer for lobby menu background image and main buttons (Join/Ready, Observe, Character Prefs)

LOBBY_SHUTTER_LAYER

Layer for lobby menu shutter, which covers up the menu to collapse/expand it

MAX_EXPECTED_Z_DEPTH

We expect at most 3 layers of multiz +Increment this define if you make a huge map. We unit test for it too just to make it easy for you +If you modify this, you'll need to modify the tsx file too

MULTIZ_PERFORMANCE_DISABLE

A value of /datum/preference/numeric/multiz_performance that disables the option

OFFSET_RELAYS_MATCH_HIGHEST

This plane master will have its relays offset to match the highest rendering plane that matches the target +Required for making things like the blind fullscreen not render over runechat

O_LIGHTING_VISUAL_PLANE

Lighting objects that are "free floating"

PIPECRAWL_IMAGES_PLANE

---------------- MISC ----------------------- +Pipecrawling images

PLANE_CRITICAL_CUT_RENDER

We assume this plane master has a render target starting with *, it'll be removed, forcing it to render in place

PLANE_CRITICAL_DISPLAY

This plane master will not go away if its layer is culled. useful for preserving effects

PLANE_CRITICAL_NO_RELAY

This plane master will temporarially remove relays to all other planes +Allows us to retain the effects of a plane while cutting off the changes it makes

PLANE_MASTERS_GAME

Plane master controller keys

PLANE_RANGE

The range unique planes can be in +Try and keep this to a nice whole number, so it's easy to look at a plane var and know what's going on

RADIAL_CONTENT_LAYER

1000 is an unimportant number, it's just to normalize copied layers

RENDER_PLANE_GAME_MASKED

If fov is enabled we'll draw game to this and do shit to it

RENDER_PLANE_GAME_UNMASKED

The bit of the game plane that is let alone is sent here

RUNECHAT_PLANE

--------------- FULLSCREEN RUNECHAT BUBBLES ------------ +Popup Chat Messages

SCREENTIP_LAYER

Layer for screentips

SEETHROUGH_PLANE

Slightly above the game plane but does not catch mouse clicks. Useful for certain visuals that should be clicked through, like seethrough trees

SPLASHSCREEN_PLANE

Plane of the "splash" icon used that shows on the lobby screen

TUTORIAL_INSTRUCTIONS_LAYER

Layer for tutorial instructions

TYPING_LAYER

--------------- FULLSCREEN RUNECHAT BUBBLES ------------ +Bubble for typing indicators

WATER_LEVEL_LAYER

Anything below this layer is to be considered completely (visually) under water by the immerse layer.

WATER_VISUAL_OVERLAY_LAYER

The layer of the visual overlay used in the submerge element. +The vis overlay inherits the planes of the movables it's attached to (that also have KEEP_TOGETHER added) +We just have to make sure the visual overlay is rendered above all the other overlays of those movables.

\ No newline at end of file diff --git a/code/__DEFINES/library.html b/code/__DEFINES/library.html new file mode 100644 index 0000000000000..e3070a3db7e9d --- /dev/null +++ b/code/__DEFINES/library.html @@ -0,0 +1 @@ +code/__DEFINES/library.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/library.dm

BOOKS_PER_PAGEHow many books should we load per page?
CHECKOUTS_PER_PAGEHow many checkout records should we load per page?
INVENTORY_PER_PAGEHow many inventory items should we load per page?

Define Details

BOOKS_PER_PAGE

How many books should we load per page?

CHECKOUTS_PER_PAGE

How many checkout records should we load per page?

INVENTORY_PER_PAGE

How many inventory items should we load per page?

\ No newline at end of file diff --git a/code/__DEFINES/lighting.html b/code/__DEFINES/lighting.html new file mode 100644 index 0000000000000..66342d6c8958e --- /dev/null +++ b/code/__DEFINES/lighting.html @@ -0,0 +1,5 @@ +code/__DEFINES/lighting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/lighting.dm

NO_LIGHT_SUPPORTObject doesn't use any of the light systems. Should be changed to add a light source to the object.
COMPLEX_LIGHTLight made with the lighting datums, applying a matrix.
OVERLAY_LIGHTLight made by masking the lighting darkness plane.
OVERLAY_LIGHT_DIRECTIONALLight made by masking the lighting darkness plane, and is directional.
OVERLAY_LIGHT_BEAMLight made by masking the lighting darkness plane, and is a directionally focused beam.
NONSENSICAL_VALUENonesensical value for light color, used for null checks.
LIGHT_ATTACHEDIs our overlay light source attached to another movable (its loc), meaning that the lighting component should go one level deeper.
LIGHT_FROZENFreezes a light in its current state, blocking any attempts at modification
LIGHT_IGNORE_OFFSETDoes this light ignore inherent offsets? (Pixels, transforms, etc)
LIGHTING_HEIGHT_SPACElight UNDER the floor. primarily used for starlight, shouldn't fuck with this
LIGHTING_HEIGHT_FLOORlight ON the floor
LIGHTING_HEIGHTheight off the ground of light sources on the pseudo-z-axis, you should probably leave this alone
LIGHTING_ROUND_VALUEValue used to round lumcounts, values smaller than 1/129 don't matter (if they do, thanks sinking points), greater values will make lighting less precise, but in turn increase performance, VERY SLIGHTLY.
LIGHTING_ICONicon used for lighting shading effects
LIGHTING_SOFT_THRESHOLDIf the max of the lighting lumcounts of each spectrum drops below this, disable luminosity on the lighting objects. +Set to zero to disable soft lighting. Luminosity changes then work if it's lit at all.
LIGHT_RANGE_FIREHow many tiles standard fires glow.
LIGHTING_NIGHTVISION_THRESHOLDWhat counts as being able to see in the dark
LIGHTING_TILE_IS_DARKThe amount of lumcount on a tile for it to be considered dark (used to determine reading and nyctophobia)
EMISSIVE_BLOCK_GENERICUses vis_overlays to leverage caching so that very few new items need to be made for the overlay. For anything that doesn't change outline or opaque area much or at all.
EMISSIVE_BLOCK_UNIQUEUses a dedicated render_target object to copy the entire appearance in real time to the blocking layer. For things that can change in appearance a lot from the base state, like humans.
EMISSIVE_BLOCK_NONEDon't block any emissives. Useful for things like, pieces of paper?
EMISSIVE_COLORThe color matrix applied to all emissive overlays. Should be solely dependent on alpha and not have RGB overlap with EM_BLOCK_COLOR.
EM_BLOCK_COLORThe color matrix applied to all emissive blockers. Should be solely dependent on alpha and not have RGB overlap with EMISSIVE_COLOR.
EMISSIVE_APPEARANCE_FLAGSA set of appearance flags applied to all emissive and emissive blocker overlays. +KEEP_APART to prevent parent hooking, KEEP_TOGETHER for children, and we reset the color and alpha of our parent so nothing gets overridden
EM_MASK_MATRIXThe color matrix used to mask out emissive blockers on the emissive plane. Alpha should default to zero, be solely dependent on the RGB value of EMISSIVE_COLOR, and be independent of the RGB value of EM_BLOCK_COLOR.
PARSE_LIGHT_COLORParse the hexadecimal color into lumcounts of each perspective.

Define Details

COMPLEX_LIGHT

Light made with the lighting datums, applying a matrix.

EMISSIVE_APPEARANCE_FLAGS

A set of appearance flags applied to all emissive and emissive blocker overlays. +KEEP_APART to prevent parent hooking, KEEP_TOGETHER for children, and we reset the color and alpha of our parent so nothing gets overridden

EMISSIVE_BLOCK_GENERIC

Uses vis_overlays to leverage caching so that very few new items need to be made for the overlay. For anything that doesn't change outline or opaque area much or at all.

EMISSIVE_BLOCK_NONE

Don't block any emissives. Useful for things like, pieces of paper?

EMISSIVE_BLOCK_UNIQUE

Uses a dedicated render_target object to copy the entire appearance in real time to the blocking layer. For things that can change in appearance a lot from the base state, like humans.

EMISSIVE_COLOR

The color matrix applied to all emissive overlays. Should be solely dependent on alpha and not have RGB overlap with EM_BLOCK_COLOR.

EM_BLOCK_COLOR

The color matrix applied to all emissive blockers. Should be solely dependent on alpha and not have RGB overlap with EMISSIVE_COLOR.

EM_MASK_MATRIX

The color matrix used to mask out emissive blockers on the emissive plane. Alpha should default to zero, be solely dependent on the RGB value of EMISSIVE_COLOR, and be independent of the RGB value of EM_BLOCK_COLOR.

LIGHTING_HEIGHT

height off the ground of light sources on the pseudo-z-axis, you should probably leave this alone

LIGHTING_HEIGHT_FLOOR

light ON the floor

LIGHTING_HEIGHT_SPACE

light UNDER the floor. primarily used for starlight, shouldn't fuck with this

LIGHTING_ICON

icon used for lighting shading effects

LIGHTING_NIGHTVISION_THRESHOLD

What counts as being able to see in the dark

LIGHTING_ROUND_VALUE

Value used to round lumcounts, values smaller than 1/129 don't matter (if they do, thanks sinking points), greater values will make lighting less precise, but in turn increase performance, VERY SLIGHTLY.

LIGHTING_SOFT_THRESHOLD

If the max of the lighting lumcounts of each spectrum drops below this, disable luminosity on the lighting objects. +Set to zero to disable soft lighting. Luminosity changes then work if it's lit at all.

LIGHTING_TILE_IS_DARK

The amount of lumcount on a tile for it to be considered dark (used to determine reading and nyctophobia)

LIGHT_ATTACHED

Is our overlay light source attached to another movable (its loc), meaning that the lighting component should go one level deeper.

LIGHT_FROZEN

Freezes a light in its current state, blocking any attempts at modification

LIGHT_IGNORE_OFFSET

Does this light ignore inherent offsets? (Pixels, transforms, etc)

LIGHT_RANGE_FIRE

How many tiles standard fires glow.

NONSENSICAL_VALUE

Nonesensical value for light color, used for null checks.

NO_LIGHT_SUPPORT

Object doesn't use any of the light systems. Should be changed to add a light source to the object.

OVERLAY_LIGHT

Light made by masking the lighting darkness plane.

OVERLAY_LIGHT_BEAM

Light made by masking the lighting darkness plane, and is a directionally focused beam.

OVERLAY_LIGHT_DIRECTIONAL

Light made by masking the lighting darkness plane, and is directional.

PARSE_LIGHT_COLOR

Parse the hexadecimal color into lumcounts of each perspective.

\ No newline at end of file diff --git a/code/__DEFINES/lights.html b/code/__DEFINES/lights.html new file mode 100644 index 0000000000000..e4e5a66772218 --- /dev/null +++ b/code/__DEFINES/lights.html @@ -0,0 +1 @@ +code/__DEFINES/lights.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/lights.dm

LIGHT_EMERGENCY_POWER_USEHow much power emergency lights will consume per tick
BROKEN_SPARKS_MINMin time for a spark to happen in a broken light
BROKEN_SPARKS_MAXMax time for a spark to happen in a broken light
LIGHT_DRAIN_TIMEAmount of time that takes an ethereal to take energy from the lights
LIGHT_POWER_GAINAmount of charge the ethereal gain after the drain
LIGHT_REAGENT_CAPACITYHow many reagents the lights can hold

Define Details

BROKEN_SPARKS_MAX

Max time for a spark to happen in a broken light

BROKEN_SPARKS_MIN

Min time for a spark to happen in a broken light

LIGHT_DRAIN_TIME

Amount of time that takes an ethereal to take energy from the lights

LIGHT_EMERGENCY_POWER_USE

How much power emergency lights will consume per tick

LIGHT_POWER_GAIN

Amount of charge the ethereal gain after the drain

LIGHT_REAGENT_CAPACITY

How many reagents the lights can hold

\ No newline at end of file diff --git a/code/__DEFINES/living.html b/code/__DEFINES/living.html new file mode 100644 index 0000000000000..3ace7fe20f4d1 --- /dev/null +++ b/code/__DEFINES/living.html @@ -0,0 +1,3 @@ +code/__DEFINES/living.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/living.dm

MOVES_ON_ITS_OWNSimple mob trait, indicating it may follow continuous move actions controlled by code instead of by user input.
ALWAYS_DEATHGASPAlways does *deathgasp when they die +If unset mobs will only deathgasp if supplied a death sound or custom death message
GET_LYING_ANGLEGetter for a mob/living's lying angle, otherwise protected

Define Details

ALWAYS_DEATHGASP

Always does *deathgasp when they die +If unset mobs will only deathgasp if supplied a death sound or custom death message

GET_LYING_ANGLE

Getter for a mob/living's lying angle, otherwise protected

MOVES_ON_ITS_OWN

Simple mob trait, indicating it may follow continuous move actions controlled by code instead of by user input.

\ No newline at end of file diff --git a/code/__DEFINES/logging.html b/code/__DEFINES/logging.html new file mode 100644 index 0000000000000..fcd794ee6a75c --- /dev/null +++ b/code/__DEFINES/logging.html @@ -0,0 +1,5 @@ +code/__DEFINES/logging.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/logging.dm

CONFIG_MAX_CACHED_LOG_ENTRIESThe number of entries to store per category, don't make this too large or you'll start to see performance issues
LOG_UPDATE_TIMEOUTThe number of minimum ticks between each log re-render, making this small will cause performance issues +Admins can still manually request a re-render
ENTRY_USE_DATA_W_READABLEEnables data list usage for readable log entries +You'll likely want to disable internal formatting to make this work properly

Define Details

CONFIG_MAX_CACHED_LOG_ENTRIES

The number of entries to store per category, don't make this too large or you'll start to see performance issues

ENTRY_USE_DATA_W_READABLE

Enables data list usage for readable log entries +You'll likely want to disable internal formatting to make this work properly

LOG_UPDATE_TIMEOUT

The number of minimum ticks between each log re-render, making this small will cause performance issues +Admins can still manually request a re-render

\ No newline at end of file diff --git a/code/__DEFINES/machines.html b/code/__DEFINES/machines.html new file mode 100644 index 0000000000000..75af09ab2655d --- /dev/null +++ b/code/__DEFINES/machines.html @@ -0,0 +1,3 @@ +code/__DEFINES/machines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/machines.dm

AREA_USAGE_DYNAMIC_STARTIndex of the first dynamic usage channel
AREA_USAGE_DYNAMIC_ENDIndex of the last dynamic usage channel
AREA_USAGE_STATIC_STARTIndex of the first static usage channel
AREA_USAGE_STATIC_ENDIndex of the last static usage channel
BASE_MACHINE_IDLE_CONSUMPTIONBase global power consumption for idling machines
BASE_MACHINE_ACTIVE_CONSUMPTIONBase global power consumption for active machines. The unit is ambiguous (joules or watts) depending on the use case for dynamic users.
START_PROCESSING_ON_INITBitflags for a machine's preferences on when it should start processing. For use with machinery's processing_flags var. +Indicates the machine will automatically start processing right after its Initialize() is ran.
START_PROCESSING_MANUALLYMachines with this flag will not start processing when it's spawned. Use this if you want to manually control when a machine starts processing.
DEFAULT_DOOR_CHECKSWe should go through the door's normal opening procedure, no overrides.
FORCING_DOOR_CHECKSWe're not going through the door's normal opening procedure, we're forcing it open. Can still fail if it's emagged or something. Costs power.
BYPASS_DOOR_CHECKSWe are getting this door open if it has not been physically held shut somehow. Play a special sound to signify this level of opening.
AWAY_LATHEProtolathes for offstation roles. More limited tech tree.
AWAY_IMPRINTERImprinters for offstation roles. More limited tech tree.
COMPONENT_PRINTERFor wiremod/integrated circuits. Uses various minerals.
COLONY_FABRICATORCan be made by the orderable colony fabricator
SYNDIEBOMB_MIN_TIMER_SECONDSWhat's the minimum duration of a syndie bomb (in seconds)
MAX_STATUS_LINE_LENGTHMax length of a status line in the status display
AUTO_ANNOUNCE_ARRIVALDefine for automated system arrival announcement
AUTO_ANNOUNCE_NEWHEADDefine for automated system announcement when a head of staff arrives
AUTO_ANNOUNCE_ARRIVALS_BROKENDefine for automated system announcement for when the arrival shuttle is broken
AUTO_ANNOUNCE_NODEDefine for automated system announcement for researched nodes
SD_BLANKBlank Status Display
SD_EMERGENCYShows the emergency shuttle timer
SD_MESSAGEShows an arbitrary message, user-set
SD_PICTUREShows an alert picture (e.g. red alert, radiation, etc.)

Define Details

AREA_USAGE_DYNAMIC_END

Index of the last dynamic usage channel

AREA_USAGE_DYNAMIC_START

Index of the first dynamic usage channel

AREA_USAGE_STATIC_END

Index of the last static usage channel

AREA_USAGE_STATIC_START

Index of the first static usage channel

AUTO_ANNOUNCE_ARRIVAL

Define for automated system arrival announcement

AUTO_ANNOUNCE_ARRIVALS_BROKEN

Define for automated system announcement for when the arrival shuttle is broken

AUTO_ANNOUNCE_NEWHEAD

Define for automated system announcement when a head of staff arrives

AUTO_ANNOUNCE_NODE

Define for automated system announcement for researched nodes

AWAY_IMPRINTER

Imprinters for offstation roles. More limited tech tree.

AWAY_LATHE

Protolathes for offstation roles. More limited tech tree.

BASE_MACHINE_ACTIVE_CONSUMPTION

Base global power consumption for active machines. The unit is ambiguous (joules or watts) depending on the use case for dynamic users.

BASE_MACHINE_IDLE_CONSUMPTION

Base global power consumption for idling machines

BYPASS_DOOR_CHECKS

We are getting this door open if it has not been physically held shut somehow. Play a special sound to signify this level of opening.

COLONY_FABRICATOR

Can be made by the orderable colony fabricator

COMPONENT_PRINTER

For wiremod/integrated circuits. Uses various minerals.

DEFAULT_DOOR_CHECKS

We should go through the door's normal opening procedure, no overrides.

FORCING_DOOR_CHECKS

We're not going through the door's normal opening procedure, we're forcing it open. Can still fail if it's emagged or something. Costs power.

MAX_STATUS_LINE_LENGTH

Max length of a status line in the status display

SD_BLANK

Blank Status Display

SD_EMERGENCY

Shows the emergency shuttle timer

SD_MESSAGE

Shows an arbitrary message, user-set

SD_PICTURE

Shows an alert picture (e.g. red alert, radiation, etc.)

START_PROCESSING_MANUALLY

Machines with this flag will not start processing when it's spawned. Use this if you want to manually control when a machine starts processing.

START_PROCESSING_ON_INIT

Bitflags for a machine's preferences on when it should start processing. For use with machinery's processing_flags var. +Indicates the machine will automatically start processing right after its Initialize() is ran.

SYNDIEBOMB_MIN_TIMER_SECONDS

What's the minimum duration of a syndie bomb (in seconds)

\ No newline at end of file diff --git a/code/__DEFINES/magic.html b/code/__DEFINES/magic.html new file mode 100644 index 0000000000000..bef6a2f1153c7 --- /dev/null +++ b/code/__DEFINES/magic.html @@ -0,0 +1,12 @@ +code/__DEFINES/magic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/magic.dm

SCHOOL_UNSETUnset / default / "not actually magic" school.
SCHOOL_HOLYHoly school (chaplain magic)
SCHOOL_PSYCHICPsychic school. Not true magic, but psychic spells only benefit themselves.
SCHOOL_MIMEMime... school? Mime magic. It counts
SCHOOL_RESTORATIONRestoration school, which is mostly healing stuff
SCHOOL_EVOCATIONEvocation school, usually involves killing or destroy stuff, usually out of thin air
SCHOOL_TRANSMUTATIONSchool of transforming stuff into other stuff
SCHOOL_TRANSLOCATIONSchool of transolcation, usually movement spells
SCHOOL_CONJURATIONConjuration spells summon items / mobs / etc somehow
SCHOOL_NECROMANCYNecromancy spells, usually involves soul / evil / bad stuff
SCHOOL_FORBIDDENOther forbidden magics, such as heretic spells
SCHOOL_SANGUINEBlood magic, involves vampirism, draining blood, etc.
INVOCATION_NONEAllows being able to cast the spell without saying or doing anything.
INVOCATION_SHOUTForces the wizard to shout the invocation to cast the spell.
INVOCATION_WHISPERForces the wizard to whisper the invocation to cast the spell.
INVOCATION_EMOTEForces the wizard to emote to cast the spell.
SPELL_REQUIRES_WIZARD_GARBWhether the spell requires wizard clothes to cast.
SPELL_REQUIRES_HUMANWhether the spell can only be cast by humans (mob type, not species). +SPELL_REQUIRES_WIZARD_GARB comes with this flag implied, as carbons and below can't wear clothes.
SPELL_CASTABLE_AS_BRAINWhether the spell can be cast by mobs who are brains / mmis. +When applying, bear in mind most spells will not function for brains out of the box.
SPELL_REQUIRES_NO_ANTIMAGICWhether the spell can be cast while the user has antimagic on them that corresponds to the spell's own antimagic flags.
SPELL_REQUIRES_STATIONWhether the spell requires being on the station z-level to be cast.
SPELL_REQUIRES_MINDWhether the spell must be cast by someone with a mind datum.
SPELL_REQUIRES_MIME_VOWWhether the spell requires the caster have a mime vow (mindless mobs will succeed this check regardless).
SPELL_CASTABLE_WITHOUT_INVOCATIONWhether the spell can be cast, even if the caster is unable to speak the invocation +(effectively making the invocation flavor, instead of required).
TELEPORT_SPELL_SKIP_SPACEWhether the teleport spell skips over space turfs
TELEPORT_SPELL_SKIP_DENSEWhether the teleport spell skips over dense turfs
TELEPORT_SPELL_SKIP_BLOCKEDWhether the teleport spell skips over blocked turfs
MAGIC_RESISTANCEDefault magic resistance that blocks normal magic (wizard, spells, magical staff projectiles)
MAGIC_RESISTANCE_MINDTinfoil hat magic resistance that blocks mental magic (telepathy / mind links, mind curses, abductors)
MAGIC_RESISTANCE_HOLYHoly magic resistance that blocks unholy magic (revenant, vampire, voice of god)
is_jauntingChecks if our mob is jaunting actively (within a phased mob object) +Used in jaunting spells specifically to determine whether they should be entering or exiting jaunt

Define Details

INVOCATION_EMOTE

Forces the wizard to emote to cast the spell.

INVOCATION_NONE

Allows being able to cast the spell without saying or doing anything.

INVOCATION_SHOUT

Forces the wizard to shout the invocation to cast the spell.

INVOCATION_WHISPER

Forces the wizard to whisper the invocation to cast the spell.

MAGIC_RESISTANCE

Default magic resistance that blocks normal magic (wizard, spells, magical staff projectiles)

MAGIC_RESISTANCE_HOLY

Holy magic resistance that blocks unholy magic (revenant, vampire, voice of god)

MAGIC_RESISTANCE_MIND

Tinfoil hat magic resistance that blocks mental magic (telepathy / mind links, mind curses, abductors)

SCHOOL_CONJURATION

Conjuration spells summon items / mobs / etc somehow

SCHOOL_EVOCATION

Evocation school, usually involves killing or destroy stuff, usually out of thin air

SCHOOL_FORBIDDEN

Other forbidden magics, such as heretic spells

SCHOOL_HOLY

Holy school (chaplain magic)

SCHOOL_MIME

Mime... school? Mime magic. It counts

SCHOOL_NECROMANCY

Necromancy spells, usually involves soul / evil / bad stuff

SCHOOL_PSYCHIC

Psychic school. Not true magic, but psychic spells only benefit themselves.

SCHOOL_RESTORATION

Restoration school, which is mostly healing stuff

SCHOOL_SANGUINE

Blood magic, involves vampirism, draining blood, etc.

SCHOOL_TRANSLOCATION

School of transolcation, usually movement spells

SCHOOL_TRANSMUTATION

School of transforming stuff into other stuff

SCHOOL_UNSET

Unset / default / "not actually magic" school.

SPELL_CASTABLE_AS_BRAIN

Whether the spell can be cast by mobs who are brains / mmis. +When applying, bear in mind most spells will not function for brains out of the box.

SPELL_CASTABLE_WITHOUT_INVOCATION

Whether the spell can be cast, even if the caster is unable to speak the invocation +(effectively making the invocation flavor, instead of required).

SPELL_REQUIRES_HUMAN

Whether the spell can only be cast by humans (mob type, not species). +SPELL_REQUIRES_WIZARD_GARB comes with this flag implied, as carbons and below can't wear clothes.

SPELL_REQUIRES_MIME_VOW

Whether the spell requires the caster have a mime vow (mindless mobs will succeed this check regardless).

SPELL_REQUIRES_MIND

Whether the spell must be cast by someone with a mind datum.

SPELL_REQUIRES_NO_ANTIMAGIC

Whether the spell can be cast while the user has antimagic on them that corresponds to the spell's own antimagic flags.

SPELL_REQUIRES_STATION

Whether the spell requires being on the station z-level to be cast.

SPELL_REQUIRES_WIZARD_GARB

Whether the spell requires wizard clothes to cast.

TELEPORT_SPELL_SKIP_BLOCKED

Whether the teleport spell skips over blocked turfs

TELEPORT_SPELL_SKIP_DENSE

Whether the teleport spell skips over dense turfs

TELEPORT_SPELL_SKIP_SPACE

Whether the teleport spell skips over space turfs

is_jaunting

Checks if our mob is jaunting actively (within a phased mob object) +Used in jaunting spells specifically to determine whether they should be entering or exiting jaunt

+

If you want to use this in non-jaunt related code, it is preferable +to instead check for trait TRAIT_MAGICALLY_PHASED instead of using this +as it encompasses more states in which a mob may be "incorporeal from magic"

\ No newline at end of file diff --git a/code/__DEFINES/map_exporter.html b/code/__DEFINES/map_exporter.html new file mode 100644 index 0000000000000..a8e0e2b730b75 --- /dev/null +++ b/code/__DEFINES/map_exporter.html @@ -0,0 +1 @@ +code/__DEFINES/map_exporter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/map_exporter.dm

SAVE_OBJECTSSave objects?
SAVE_MOBSSave Mobs?
SAVE_TURFSSave turfs?
SAVE_AREASSave areas?
SAVE_SPACESave space areas? (If not they will be saved as NOOP)
SAVE_OBJECT_PROPERTIESSave custom properties of objects (obj.on_object_saved() output)

Define Details

SAVE_AREAS

Save areas?

SAVE_MOBS

Save Mobs?

SAVE_OBJECTS

Save objects?

SAVE_OBJECT_PROPERTIES

Save custom properties of objects (obj.on_object_saved() output)

SAVE_SPACE

Save space areas? (If not they will be saved as NOOP)

SAVE_TURFS

Save turfs?

\ No newline at end of file diff --git a/code/__DEFINES/map_switch.html b/code/__DEFINES/map_switch.html new file mode 100644 index 0000000000000..ea23720cd4939 --- /dev/null +++ b/code/__DEFINES/map_switch.html @@ -0,0 +1 @@ +code/__DEFINES/map_switch.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/map_switch.dm

MAP_SWITCHUses the left operator when compiling, uses the right operator when not compiling.

Define Details

MAP_SWITCH

Uses the left operator when compiling, uses the right operator when not compiling.

\ No newline at end of file diff --git a/code/__DEFINES/mapping.html b/code/__DEFINES/mapping.html new file mode 100644 index 0000000000000..9fea907e6d67c --- /dev/null +++ b/code/__DEFINES/mapping.html @@ -0,0 +1 @@ +code/__DEFINES/mapping.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/mapping.dm

Z_LEVEL_UPTRUE if we're ok with going up
Z_LEVEL_DOWNTRUE if we're ok with going down

Define Details

Z_LEVEL_DOWN

TRUE if we're ok with going down

Z_LEVEL_UP

TRUE if we're ok with going up

\ No newline at end of file diff --git a/code/__DEFINES/maps.html b/code/__DEFINES/maps.html new file mode 100644 index 0000000000000..5321bf45c9f29 --- /dev/null +++ b/code/__DEFINES/maps.html @@ -0,0 +1 @@ +code/__DEFINES/maps.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/maps.dm

TRANSITIONEDGEDistance from edge to move to another z-level
MAP_MINXThe maploader index for the maps minimum x
MAP_MINYThe maploader index for the maps minimum y
MAP_MINZThe maploader index for the maps minimum z
MAP_MAXXThe maploader index for the maps maximum x
MAP_MAXYThe maploader index for the maps maximum y
MAP_MAXZThe maploader index for the maps maximum z
PATH_TO_NEXT_MAP_JSONPath for the next_map.json file, if someone, for some messed up reason, wants to change it.
MAP_DIRECTORY_MAPSList of directories we can load map .json files from
CUSTOM_MAP_PATHSpecial map path value for custom adminloaded stations.
ZTRAIT_SECRETboolean - does this z prevent ghosts from observing it
ZTRAIT_NOPHASEboolean - does this z prevent phasing
ZTRAIT_NOXRAYboolean - does this z prevent xray/meson/thermal vision
ZTRAIT_NOPARALLAXboolean - does this z disable parallax?
ZTRAITS_CENTCOMZ level traits for CentCom
ZTRAITS_STATIONZ level traits for Space Station 13
ZTRAITS_SPACEZ level traits for Deep Space
ZTRAITS_LAVALANDZ level traits for Lavaland
ZTRAITS_AWAYZ level traits for Away Missions
ZTRAITS_AWAY_SECRETZ level traits for Secret Away Missions
DEFAULT_SPACE_RUIN_LEVELSMap generation defines
SHELTER_DEPLOY_ALLOWEDShelter spot is allowed
SHELTER_DEPLOY_BAD_TURFSShelter spot has turfs that restrict deployment
SHELTER_DEPLOY_BAD_AREAShelter spot has areas that restrict deployment
SHELTER_DEPLOY_ANCHORED_OBJECTSShelter spot has anchored objects that restrict deployment
SHELTER_DEPLOY_OUTSIDE_MAPShelter spot is out of bounds from the maps x/y coordinates
SPACE_KEYA map key that corresponds to being one exclusively for Space.
CLUSTER_CHECK_NONENo checks are done, cluster as much as possible
CLUSTER_CHECK_DIFFERENT_TURFSDon't let turfs of DIFFERENT types cluster
CLUSTER_CHECK_DIFFERENT_ATOMSDon't let atoms of DIFFERENT types cluster
CLUSTER_CHECK_SAME_TURFSDon't let turfs of the SAME type cluster
CLUSTER_CHECK_SAME_ATOMSDon't let atoms of the SAME type cluster
CLUSTER_CHECK_SAMESDon't let any of the same type cluster
CLUSTER_CHECK_DIFFERENTSDon't let any of different types cluster
CLUSTER_CHECK_ALL_TURFSDon't let ANY turfs cluster same and different types
CLUSTER_CHECK_ALL_ATOMSDon't let ANY atoms cluster same and different types
CLUSTER_CHECK_ALLDon't let anything cluster, like, at all
CHECK_MAP_JOB_CHANGEChecks the job changes in the map config for the passed change key.
AWAYSTART_BEACHIdentifiers for away mission spawnpoints

Define Details

AWAYSTART_BEACH

Identifiers for away mission spawnpoints

CHECK_MAP_JOB_CHANGE

Checks the job changes in the map config for the passed change key.

CLUSTER_CHECK_ALL

Don't let anything cluster, like, at all

CLUSTER_CHECK_ALL_ATOMS

Don't let ANY atoms cluster same and different types

CLUSTER_CHECK_ALL_TURFS

Don't let ANY turfs cluster same and different types

CLUSTER_CHECK_DIFFERENTS

Don't let any of different types cluster

CLUSTER_CHECK_DIFFERENT_ATOMS

Don't let atoms of DIFFERENT types cluster

CLUSTER_CHECK_DIFFERENT_TURFS

Don't let turfs of DIFFERENT types cluster

CLUSTER_CHECK_NONE

No checks are done, cluster as much as possible

CLUSTER_CHECK_SAMES

Don't let any of the same type cluster

CLUSTER_CHECK_SAME_ATOMS

Don't let atoms of the SAME type cluster

CLUSTER_CHECK_SAME_TURFS

Don't let turfs of the SAME type cluster

CUSTOM_MAP_PATH

Special map path value for custom adminloaded stations.

DEFAULT_SPACE_RUIN_LEVELS

Map generation defines

MAP_DIRECTORY_MAPS

List of directories we can load map .json files from

MAP_MAXX

The maploader index for the maps maximum x

MAP_MAXY

The maploader index for the maps maximum y

MAP_MAXZ

The maploader index for the maps maximum z

MAP_MINX

The maploader index for the maps minimum x

MAP_MINY

The maploader index for the maps minimum y

MAP_MINZ

The maploader index for the maps minimum z

PATH_TO_NEXT_MAP_JSON

Path for the next_map.json file, if someone, for some messed up reason, wants to change it.

SHELTER_DEPLOY_ALLOWED

Shelter spot is allowed

SHELTER_DEPLOY_ANCHORED_OBJECTS

Shelter spot has anchored objects that restrict deployment

SHELTER_DEPLOY_BAD_AREA

Shelter spot has areas that restrict deployment

SHELTER_DEPLOY_BAD_TURFS

Shelter spot has turfs that restrict deployment

SHELTER_DEPLOY_OUTSIDE_MAP

Shelter spot is out of bounds from the maps x/y coordinates

SPACE_KEY

A map key that corresponds to being one exclusively for Space.

TRANSITIONEDGE

Distance from edge to move to another z-level

ZTRAITS_AWAY

Z level traits for Away Missions

ZTRAITS_AWAY_SECRET

Z level traits for Secret Away Missions

ZTRAITS_CENTCOM

Z level traits for CentCom

ZTRAITS_LAVALAND

Z level traits for Lavaland

ZTRAITS_SPACE

Z level traits for Deep Space

ZTRAITS_STATION

Z level traits for Space Station 13

ZTRAIT_NOPARALLAX

boolean - does this z disable parallax?

ZTRAIT_NOPHASE

boolean - does this z prevent phasing

ZTRAIT_NOXRAY

boolean - does this z prevent xray/meson/thermal vision

ZTRAIT_SECRET

boolean - does this z prevent ghosts from observing it

\ No newline at end of file diff --git a/code/__DEFINES/market.html b/code/__DEFINES/market.html new file mode 100644 index 0000000000000..f17e9bad3c78e --- /dev/null +++ b/code/__DEFINES/market.html @@ -0,0 +1 @@ +code/__DEFINES/market.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/market.dm

MARKET_WITHHOLDING_TAXThe percentage on gains that's removed when selling an item through the blackmarket with the LTSRBT

Define Details

MARKET_WITHHOLDING_TAX

The percentage on gains that's removed when selling an item through the blackmarket with the LTSRBT

\ No newline at end of file diff --git a/code/__DEFINES/maths.html b/code/__DEFINES/maths.html new file mode 100644 index 0000000000000..f1248b5d12e2d --- /dev/null +++ b/code/__DEFINES/maths.html @@ -0,0 +1,9 @@ +code/__DEFINES/maths.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/maths.dm

SIGNGets the sign of x, returns -1 if negative, 0 if 0, 1 if positive
DIGITSReturns the number of digits in a number. Only works on whole numbers. +This is marginally faster than string interpolation -> length
WRAP_UPIncrements a value and wraps it if it exceeds some value. Can be used to circularly iterate through a list through idx = WRAP_UP(idx, length_of_list).
INVERSE_LERPPerforms an inverse linear interpolation between a, b, and a provided value between a and b +This returns the amount that you would need to feed into a lerp between A and B to return the third value
TOBITSHIFTGets shift x that would be required the bitflag (1<<x) +We need the round because log has floating-point inaccuracy, and if we undershoot at all on list indexing we'll get the wrong index.
SPT_PROB_RATEConverts a probability/second chance to probability/seconds_per_tick chance +For example, if you want an event to happen with a 10% per second chance, but your proc only runs every 5 seconds, do if(prob(100*SPT_PROB_RATE(0.1, 5)))
SPT_PROBLike SPT_PROB_RATE but easier to use, simply put if(SPT_PROB(10, 5))
DIAMOND_AREAThe number of cells in a taxicab circle (rasterized diamond) of radius X.
RANDOM_DECIMALReturns a random decimal between x and y.

Define Details

DIAMOND_AREA

The number of cells in a taxicab circle (rasterized diamond) of radius X.

DIGITS

Returns the number of digits in a number. Only works on whole numbers. +This is marginally faster than string interpolation -> length

INVERSE_LERP

Performs an inverse linear interpolation between a, b, and a provided value between a and b +This returns the amount that you would need to feed into a lerp between A and B to return the third value

RANDOM_DECIMAL

Returns a random decimal between x and y.

SIGN

Gets the sign of x, returns -1 if negative, 0 if 0, 1 if positive

SPT_PROB

Like SPT_PROB_RATE but easier to use, simply put if(SPT_PROB(10, 5))

SPT_PROB_RATE

Converts a probability/second chance to probability/seconds_per_tick chance +For example, if you want an event to happen with a 10% per second chance, but your proc only runs every 5 seconds, do if(prob(100*SPT_PROB_RATE(0.1, 5)))

TOBITSHIFT

Gets shift x that would be required the bitflag (1<<x) +We need the round because log has floating-point inaccuracy, and if we undershoot at all on list indexing we'll get the wrong index.

WRAP_UP

Increments a value and wraps it if it exceeds some value. Can be used to circularly iterate through a list through idx = WRAP_UP(idx, length_of_list).

\ No newline at end of file diff --git a/code/__DEFINES/matrices.html b/code/__DEFINES/matrices.html new file mode 100644 index 0000000000000..cf032d5f94f52 --- /dev/null +++ b/code/__DEFINES/matrices.html @@ -0,0 +1,7 @@ +code/__DEFINES/matrices.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/matrices.dm

TRANSLATE_MATRIXHelper macro for creating a matrix at the given offsets. +Works at compile time.
COLOR_MATRIX_IDENTITYThe color matrix of an image which colors haven't been altered. Does nothing.
COLOR_MATRIX_INVERTColor inversion
COLOR_MATRIX_SEPIATONESepiatone
COLOR_MATRIX_GRAYSCALEGrayscale
COLOR_MATRIX_POLAROIDPolaroid colors
COLOR_MATRIX_BRGConverts reds to blue, green to red and blue to green.
COLOR_MATRIX_BLACK_WHITEBlack & White
COLOR_MATRIX_LIGHTNESSAdds/subtracts overall lightness +0 is identity, 1 makes everything white, -1 makes everything black
COLOR_MATRIX_CONTRASTChanges distance colors have from rgb(127,127,127) grey +1 is identity. 0 makes everything grey >1 blows out colors and greys

Define Details

COLOR_MATRIX_BLACK_WHITE

Black & White

COLOR_MATRIX_BRG

Converts reds to blue, green to red and blue to green.

COLOR_MATRIX_CONTRAST

Changes distance colors have from rgb(127,127,127) grey +1 is identity. 0 makes everything grey >1 blows out colors and greys

COLOR_MATRIX_GRAYSCALE

Grayscale

COLOR_MATRIX_IDENTITY

The color matrix of an image which colors haven't been altered. Does nothing.

COLOR_MATRIX_INVERT

Color inversion

COLOR_MATRIX_LIGHTNESS

Adds/subtracts overall lightness +0 is identity, 1 makes everything white, -1 makes everything black

COLOR_MATRIX_POLAROID

Polaroid colors

COLOR_MATRIX_SEPIATONE

Sepiatone

TRANSLATE_MATRIX

Helper macro for creating a matrix at the given offsets. +Works at compile time.

\ No newline at end of file diff --git a/code/__DEFINES/mecha.html b/code/__DEFINES/mecha.html new file mode 100644 index 0000000000000..70b43f1497680 --- /dev/null +++ b/code/__DEFINES/mecha.html @@ -0,0 +1 @@ +code/__DEFINES/mecha.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/mecha.dm

CANNOT_INTERACTblocks using equipment and melee attacking.
MMI_COMPATIBLEposibrains can drive this mecha
OMNIDIRECTIONAL_ATTACKSCan click from any direction and perform stuff

Define Details

CANNOT_INTERACT

blocks using equipment and melee attacking.

MMI_COMPATIBLE

posibrains can drive this mecha

OMNIDIRECTIONAL_ATTACKS

Can click from any direction and perform stuff

\ No newline at end of file diff --git a/code/__DEFINES/medical.html b/code/__DEFINES/medical.html new file mode 100644 index 0000000000000..5d2f479c75111 --- /dev/null +++ b/code/__DEFINES/medical.html @@ -0,0 +1 @@ +code/__DEFINES/medical.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/medical.dm

PHYSICAL_ACTIVEPhysical statuses
PHYSICAL_STATUSESList of available physical statuses
MENTAL_STABLEMental statuses
MENTAL_STATUSESList of available mental statuses

Define Details

MENTAL_STABLE

Mental statuses

MENTAL_STATUSES

List of available mental statuses

PHYSICAL_ACTIVE

Physical statuses

PHYSICAL_STATUSES

List of available physical statuses

\ No newline at end of file diff --git a/code/__DEFINES/megafauna.html b/code/__DEFINES/megafauna.html new file mode 100644 index 0000000000000..80dd18347aaad --- /dev/null +++ b/code/__DEFINES/megafauna.html @@ -0,0 +1 @@ +code/__DEFINES/megafauna.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/megafauna.dm

DRAKE_FIRE_TEMPTemperature of drake fire hotspots
DRAKE_FIRE_EXPOSUREVolume of drake fire hotspots

Define Details

DRAKE_FIRE_EXPOSURE

Volume of drake fire hotspots

DRAKE_FIRE_TEMP

Temperature of drake fire hotspots

\ No newline at end of file diff --git a/code/__DEFINES/melee.html b/code/__DEFINES/melee.html new file mode 100644 index 0000000000000..00f937f04a9d4 --- /dev/null +++ b/code/__DEFINES/melee.html @@ -0,0 +1 @@ +code/__DEFINES/melee.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/melee.dm

HITS_TO_CRITThe number of hits required to crit a target

Define Details

HITS_TO_CRIT

The number of hits required to crit a target

\ No newline at end of file diff --git a/code/__DEFINES/memory_defines.html b/code/__DEFINES/memory_defines.html new file mode 100644 index 0000000000000..f41fc4f7339de --- /dev/null +++ b/code/__DEFINES/memory_defines.html @@ -0,0 +1 @@ +code/__DEFINES/memory_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/memory_defines.dm

MEMORY_FILEname of the file that has all the memory strings
ENGRAVING_SAVE_FILEname of the file that has all the saved engravings
PRISONER_TATTOO_SAVE_FILEname of the file that has all the prisoner tattoos
ENGRAVING_PERSISTENCE_VERSIONCurrent version of the engraving persistence json
TATTOO_PERSISTENCE_VERSIONCurrent version of the tattoo persistence json
MIN_PERSISTENT_ENGRAVINGShow many engravings will be loaded max with persistence
MOODLESS_MEMORYmoodlet set if the creature with the memory doesn't use mood (doesn't include mood line)
ENGRAVING_BEAUTY_TO_ART_FACTORFactor of how beauty is divided to make the engraving art value
STORY_VALUE_KEYThis is a key memory and isn't really cool but is important. Shows a key icon.
STORY_VALUE_SHITThis memory is not very good. It's very common. Shows a poo icon.
STORY_VALUE_NONEThis memory is relatively normal and common. Neutral face icon.
STORY_VALUE_MEHThis memory is pretty decent. Shows a bronze star.
STORY_VALUE_OKAYThis memory is alright. Shows a silver star.
STORY_VALUE_AMAZINGThis memory is outstanding, and will stick with you forever. Shows a gold star.
STORY_VALUE_LEGENDARYThis memory is insanely good, and can't get obtained just normally. Platinum star.
MEMORY_FLAG_NOLOCATIONthis memory doesn't have a location, omit that
MEMORY_FLAG_NOMOODthis memory's protagonist for one reason or another doesn't have a mood, omit that
MEMORY_FLAG_NOSTATIONNAMEthis memory shouldn't include the station name (example: revolution memory)
MEMORY_FLAG_NOPERSISTENCEReally shouldn't be saved in persistence, or engraved. Use for stuff like quirk memories.
MEMORY_FLAG_ALREADY_USEDThis memory has already been engraved, and cannot be selected for engraving again.
MEMORY_CHECK_BLINDNESSA blind mob cannot experience this memory.
MEMORY_CHECK_DEAFNESSA deaf mob cannot experience this memory.
MEMORY_SKIP_UNCONSCIOUSA mob which is currently unconscious can experience this memory.
MEMORY_NO_STORYThis memory can't be selected for tattoo-ing or engraving at all.
STORY_ENGRAVINGwall engraving stories
STORY_CHANGELING_ABSORBchangeling memory reading
STORY_TATTOOtattoos
STORY_FLAG_DATEDinclude a date this event happened
STORY_FLAG_NO_STYLEDon't style this story

Define Details

ENGRAVING_BEAUTY_TO_ART_FACTOR

Factor of how beauty is divided to make the engraving art value

ENGRAVING_PERSISTENCE_VERSION

Current version of the engraving persistence json

ENGRAVING_SAVE_FILE

name of the file that has all the saved engravings

MEMORY_CHECK_BLINDNESS

A blind mob cannot experience this memory.

MEMORY_CHECK_DEAFNESS

A deaf mob cannot experience this memory.

MEMORY_FILE

name of the file that has all the memory strings

MEMORY_FLAG_ALREADY_USED

This memory has already been engraved, and cannot be selected for engraving again.

MEMORY_FLAG_NOLOCATION

this memory doesn't have a location, omit that

MEMORY_FLAG_NOMOOD

this memory's protagonist for one reason or another doesn't have a mood, omit that

MEMORY_FLAG_NOPERSISTENCE

Really shouldn't be saved in persistence, or engraved. Use for stuff like quirk memories.

MEMORY_FLAG_NOSTATIONNAME

this memory shouldn't include the station name (example: revolution memory)

MEMORY_NO_STORY

This memory can't be selected for tattoo-ing or engraving at all.

MEMORY_SKIP_UNCONSCIOUS

A mob which is currently unconscious can experience this memory.

MIN_PERSISTENT_ENGRAVINGS

how many engravings will be loaded max with persistence

MOODLESS_MEMORY

moodlet set if the creature with the memory doesn't use mood (doesn't include mood line)

PRISONER_TATTOO_SAVE_FILE

name of the file that has all the prisoner tattoos

STORY_CHANGELING_ABSORB

changeling memory reading

STORY_ENGRAVING

wall engraving stories

STORY_FLAG_DATED

include a date this event happened

STORY_FLAG_NO_STYLE

Don't style this story

STORY_TATTOO

tattoos

STORY_VALUE_AMAZING

This memory is outstanding, and will stick with you forever. Shows a gold star.

STORY_VALUE_KEY

This is a key memory and isn't really cool but is important. Shows a key icon.

STORY_VALUE_LEGENDARY

This memory is insanely good, and can't get obtained just normally. Platinum star.

STORY_VALUE_MEH

This memory is pretty decent. Shows a bronze star.

STORY_VALUE_NONE

This memory is relatively normal and common. Neutral face icon.

STORY_VALUE_OKAY

This memory is alright. Shows a silver star.

STORY_VALUE_SHIT

This memory is not very good. It's very common. Shows a poo icon.

TATTOO_PERSISTENCE_VERSION

Current version of the tattoo persistence json

\ No newline at end of file diff --git a/code/__DEFINES/mining.html b/code/__DEFINES/mining.html new file mode 100644 index 0000000000000..9acc898b8ad70 --- /dev/null +++ b/code/__DEFINES/mining.html @@ -0,0 +1 @@ +code/__DEFINES/mining.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/mining.dm

BOULDER_SIZE_LARGEDurability of a large size boulder from a large size vent.
BOULDER_SIZE_MEDIUMDurability of a medium size boulder from a medium size vent.
BOULDER_SIZE_SMALLDurability of a small size boulder from a small size vent.
MAX_BOULDERS_PER_VENTHow many boulders can a single ore vent have on its tile before it stops producing more?
INATE_BOULDER_SPEED_MULTIPLIERTime multiplier
LARGE_VENT_TYPELarge vents, giving large boulders.
MEDIUM_VENT_TYPEMedium vents, giving medium boulders.
SMALL_VENT_TYPESmall vents, giving small boulders.
WAVE_DURATION_SMALLDuration for wave defense for a small vent.
WAVE_DURATION_MEDIUMDuration for wave defense for a medium vent.
WAVE_DURATION_LARGEDuration for wave defense for a large vent.
VENT_PROX_VERY_HIGHProximity to a vent that a wall ore needs to be for 5 ore to be mined.
VENT_PROX_HIGHProximity to a vent that a wall ore needs to be for 4 ore to be mined.
VENT_PROX_MEDIUMProximity to a vent that a wall ore needs to be for 3 ore to be mined.
VENT_PROX_LOWProximity to a vent that a wall ore needs to be for 2 ore to be mined.
VENT_PROX_FARProximity to a vent that a wall ore needs to be for 1 ore to be mined.
VENT_CHANCE_VERY_HIGHThe chance of ore spawning in a wall that is VENT_PROX_VERY_HIGH tiles to a vent.
VENT_CHANCE_HIGHThe chance of ore spawning in a wall that is VENT_PROX_HIGH tiles to a vent.
VENT_CHANCE_MEDIUMThe chance of ore spawning in a wall that is VENT_PROX_MEDIUM tiles to a vent.
VENT_CHANCE_LOWThe chance of ore spawning in a wall that is VENT_PROX_LOW tiles to a vent.
VENT_CHANCE_FARThe chance of ore spawning in a wall that is VENT_PROX_FAR tiles to a vent.
ORE_WALL_VERY_HIGHThe amount of ore that is mined from a wall that is VENT_PROX_VERY_HIGH tiles to a vent.
ORE_WALL_HIGHThe amount of ore that is mined from a wall that is VENT_PROX_HIGH tiles to a vent.
ORE_WALL_MEDIUMThe amount of ore that is mined from a wall that is VENT_PROX_MEDIUM tiles to a vent.
ORE_WALL_LOWThe amount of ore that is mined from a wall that is VENT_PROX_LOW tiles to a vent.
ORE_WALL_FARThe amount of ore that is mined from a wall that is VENT_PROX_FAR tiles to a vent.
MINER_POINT_MULTIPLIERThe number of points a miner gets for discovering a vent, multiplied by BOULDER_SIZE when completing a wave defense minus the discovery bonus.
MINING_POINT_MACHINE_MULTIPLIERThe multiplier that gets applied for automatically generated mining points.

Define Details

BOULDER_SIZE_LARGE

Durability of a large size boulder from a large size vent.

BOULDER_SIZE_MEDIUM

Durability of a medium size boulder from a medium size vent.

BOULDER_SIZE_SMALL

Durability of a small size boulder from a small size vent.

INATE_BOULDER_SPEED_MULTIPLIER

Time multiplier

LARGE_VENT_TYPE

Large vents, giving large boulders.

MAX_BOULDERS_PER_VENT

How many boulders can a single ore vent have on its tile before it stops producing more?

MEDIUM_VENT_TYPE

Medium vents, giving medium boulders.

MINER_POINT_MULTIPLIER

The number of points a miner gets for discovering a vent, multiplied by BOULDER_SIZE when completing a wave defense minus the discovery bonus.

MINING_POINT_MACHINE_MULTIPLIER

The multiplier that gets applied for automatically generated mining points.

ORE_WALL_FAR

The amount of ore that is mined from a wall that is VENT_PROX_FAR tiles to a vent.

ORE_WALL_HIGH

The amount of ore that is mined from a wall that is VENT_PROX_HIGH tiles to a vent.

ORE_WALL_LOW

The amount of ore that is mined from a wall that is VENT_PROX_LOW tiles to a vent.

ORE_WALL_MEDIUM

The amount of ore that is mined from a wall that is VENT_PROX_MEDIUM tiles to a vent.

ORE_WALL_VERY_HIGH

The amount of ore that is mined from a wall that is VENT_PROX_VERY_HIGH tiles to a vent.

SMALL_VENT_TYPE

Small vents, giving small boulders.

VENT_CHANCE_FAR

The chance of ore spawning in a wall that is VENT_PROX_FAR tiles to a vent.

VENT_CHANCE_HIGH

The chance of ore spawning in a wall that is VENT_PROX_HIGH tiles to a vent.

VENT_CHANCE_LOW

The chance of ore spawning in a wall that is VENT_PROX_LOW tiles to a vent.

VENT_CHANCE_MEDIUM

The chance of ore spawning in a wall that is VENT_PROX_MEDIUM tiles to a vent.

VENT_CHANCE_VERY_HIGH

The chance of ore spawning in a wall that is VENT_PROX_VERY_HIGH tiles to a vent.

VENT_PROX_FAR

Proximity to a vent that a wall ore needs to be for 1 ore to be mined.

VENT_PROX_HIGH

Proximity to a vent that a wall ore needs to be for 4 ore to be mined.

VENT_PROX_LOW

Proximity to a vent that a wall ore needs to be for 2 ore to be mined.

VENT_PROX_MEDIUM

Proximity to a vent that a wall ore needs to be for 3 ore to be mined.

VENT_PROX_VERY_HIGH

Proximity to a vent that a wall ore needs to be for 5 ore to be mined.

WAVE_DURATION_LARGE

Duration for wave defense for a large vent.

WAVE_DURATION_MEDIUM

Duration for wave defense for a medium vent.

WAVE_DURATION_SMALL

Duration for wave defense for a small vent.

\ No newline at end of file diff --git a/code/__DEFINES/mob_spawn.html b/code/__DEFINES/mob_spawn.html new file mode 100644 index 0000000000000..4b38bb5d32953 --- /dev/null +++ b/code/__DEFINES/mob_spawn.html @@ -0,0 +1 @@ +code/__DEFINES/mob_spawn.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/mob_spawn.dm

CORPSE_INSTANTthis mob spawn creates the corpse instantly
CORPSE_ROUNDSTARTthis mob spawn creates the corpse during GAME_STATE_PLAYING

Define Details

CORPSE_INSTANT

this mob spawn creates the corpse instantly

CORPSE_ROUNDSTART

this mob spawn creates the corpse during GAME_STATE_PLAYING

\ No newline at end of file diff --git a/code/__DEFINES/mobfactions.html b/code/__DEFINES/mobfactions.html new file mode 100644 index 0000000000000..17c4e89fa79a5 --- /dev/null +++ b/code/__DEFINES/mobfactions.html @@ -0,0 +1 @@ +code/__DEFINES/mobfactions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/mobfactions.dm

FACTION_HOSTILEActs as a default faction for most violent creatures
FACTION_NEUTRALActs as a default faction for most peaceful creatures
FACTION_ASHWALKERAshwalker related creatures
FACTION_BOSSMegafauna bosses of mining
FACTION_CARPCARPS
FACTION_CHEMICAL_SUMMONCreatures summoned by chemical reactions
FACTION_CLOWNClown creatures and the Clown themselves
FACTION_CREATUREHeadslugs
FACTION_CATCats
FACTION_FAITHLESSFaithless and shadowpeople
FACTION_GNOMEGnomes
FACTION_GONDOLAGondolas
FACTION_HELLSlaughterdemons
FACTION_HIVEBOTHivebots
FACTION_ILLUSIONIllusionary creatures
FACTION_JUNGLECreatures of the never finished jungle planet, and gorillas
FACTION_LIZARDSmall lizards
FACTION_MAINT_CREATURESMaint creatures have mutual respect for each other.
FACTION_MIMICAnimated objects and statues
FACTION_MININGBeasts found on the various mining environments
FACTION_WATCHERWatchers don't like any creatures other than each other
FACTION_MONKEYMonkeys and gorillas
FACTION_MUSHROOMMushrooms and mushroompeople
FACTION_NANOTRASEN_PRIVATENanotrasen private security
FACTION_NETHERMobs from the Netherworld
FACTION_ORIONMobs spawned by the emagged orion arcade
FACTION_PENGUINPenguins and their chicks
FACTION_PLANTSPlants, lots of overlap with vines
FACTION_RATRats and mice
FACTION_RUSSIANCreatures from Space Russia
FACTION_SILICONCreatures affiliated with the AI and Cyborgs
FACTION_SKELETONSpooky scary skeletons
FACTION_SLIMESlimey creatures
FACTION_SPIDERSpiders and their webs
FACTION_SPOOKYCurrently used only by floating eyeballs
FACTION_STATUEStatues that move around when nobody is watching them
FACTION_STICKMANStick creatures summoned by the Paperwizard, and the wizard themselves
FACTION_TURRETCreatures ignored by various turrets
FACTION_VINESVines, lots of overlap with plants
FACTION_RAPTORraptor factions
FACTION_CULTCultists and their constructs
FACTION_HERETICDefine for the heretic faction applied to heretics and heretic mobs.
FACTION_PIRATEMainly used by pirate simplemobs. However I placed them here instead, as its also used by players
FACTION_PINK_EXTRACTGenerates a mob faction for the passed owner, used by stabilized pink extracts

Define Details

FACTION_ASHWALKER

Ashwalker related creatures

FACTION_BOSS

Megafauna bosses of mining

FACTION_CARP

CARPS

FACTION_CAT

Cats

FACTION_CHEMICAL_SUMMON

Creatures summoned by chemical reactions

FACTION_CLOWN

Clown creatures and the Clown themselves

FACTION_CREATURE

Headslugs

FACTION_CULT

Cultists and their constructs

FACTION_FAITHLESS

Faithless and shadowpeople

FACTION_GNOME

Gnomes

FACTION_GONDOLA

Gondolas

FACTION_HELL

Slaughterdemons

FACTION_HERETIC

Define for the heretic faction applied to heretics and heretic mobs.

FACTION_HIVEBOT

Hivebots

FACTION_HOSTILE

Acts as a default faction for most violent creatures

FACTION_ILLUSION

Illusionary creatures

FACTION_JUNGLE

Creatures of the never finished jungle planet, and gorillas

FACTION_LIZARD

Small lizards

FACTION_MAINT_CREATURES

Maint creatures have mutual respect for each other.

FACTION_MIMIC

Animated objects and statues

FACTION_MINING

Beasts found on the various mining environments

FACTION_MONKEY

Monkeys and gorillas

FACTION_MUSHROOM

Mushrooms and mushroompeople

FACTION_NANOTRASEN_PRIVATE

Nanotrasen private security

FACTION_NETHER

Mobs from the Netherworld

FACTION_NEUTRAL

Acts as a default faction for most peaceful creatures

FACTION_ORION

Mobs spawned by the emagged orion arcade

FACTION_PENGUIN

Penguins and their chicks

FACTION_PINK_EXTRACT

Generates a mob faction for the passed owner, used by stabilized pink extracts

FACTION_PIRATE

Mainly used by pirate simplemobs. However I placed them here instead, as its also used by players

FACTION_PLANTS

Plants, lots of overlap with vines

FACTION_RAPTOR

raptor factions

FACTION_RAT

Rats and mice

FACTION_RUSSIAN

Creatures from Space Russia

FACTION_SILICON

Creatures affiliated with the AI and Cyborgs

FACTION_SKELETON

Spooky scary skeletons

FACTION_SLIME

Slimey creatures

FACTION_SPIDER

Spiders and their webs

FACTION_SPOOKY

Currently used only by floating eyeballs

FACTION_STATUE

Statues that move around when nobody is watching them

FACTION_STICKMAN

Stick creatures summoned by the Paperwizard, and the wizard themselves

FACTION_TURRET

Creatures ignored by various turrets

FACTION_VINES

Vines, lots of overlap with plants

FACTION_WATCHER

Watchers don't like any creatures other than each other

\ No newline at end of file diff --git a/code/__DEFINES/mobs.html b/code/__DEFINES/mobs.html new file mode 100644 index 0000000000000..8ea206e411da4 --- /dev/null +++ b/code/__DEFINES/mobs.html @@ -0,0 +1,15 @@ +code/__DEFINES/mobs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/mobs.dm

OXYLOSS_PASSOUT_THRESHOLDAmount of oxyloss that KOs a human
BLOOD_REGEN_FACTORHow efficiently humans regenerate blood.
BLOOD_DEFICIENCY_MODIFIERDetermines the rate at which humans lose blood when they have the blood deficiency quirk. The default is BLOOD_REGEN_FACTOR + BLOOD_DEFICIENCY_MODIFIER.
BLOOD_STOP_TEMPTemperature at which blood loss and regen stops. /mob/living/carbon/human/proc/handle_blood
MOB_ORGANICThe mob is organic, can heal from medical sutures.
MOB_MINERALThe mob is of a rocky make, most likely a golem. Iron within, iron without!
MOB_ROBOTICThe mob is a synthetic lifeform, like station borgs.
MOB_UNDEADThe mob is an shambling undead corpse. Or a halloween species. Pick your poison.
MOB_HUMANOIDThe mob is a human-sized human-like human-creature.
MOB_BUGThe mob is a bug/insect/arachnid/some other kind of scuttly thing.
MOB_BEASTThe mob is a wild animal. Domestication may apply.
MOB_SPECIALThe mob is some kind of a creature that should be exempt from certain fun interactions for balance reasons, i.e. megafauna or a headslug.
MOB_REPTILEThe mob is some kind of a scaly reptile creature
MOB_SPIRITThe mob is a spooky phantasm or an evil ghast of such nature.
MOB_PLANTThe mob is a plant-based species, benefitting from light but suffering from darkness and plantkillers.
MOB_SLIMEThe mob is a goopy creature, probably coming from xenobiology.
MOB_VAMPIRICThe mob is some kind of vampire, species or antag
BODYTYPE_ORGANICThe limb is organic.
BODYTYPE_ROBOTICThe limb is robotic.
BODYTYPE_LARVA_PLACEHOLDERA placeholder bodytype for xeno larva, so their limbs cannot be attached to anything.
BODYTYPE_ALIENThe limb is from a xenomorph.
BODYTYPE_GOLEMThe limb is from a golem
BODYSHAPE_CUSTOMThe limb fits a modular custom shape
BODYSHAPE_TAURThe limb fits a taur body
BODYSHAPE_HIDE_SHOESThe limb causes shoes to no longer be displayed, useful for taurs.
BODYSHAPE_ALT_FACEWEAR_LAYERThe limb causes glasses and hats to be drawn on layers 5 and 4 respectively. Currently used for snouts with the (Top) suffix, which are drawn on layer 6 and would normally cover facewear
BODYSHAPE_HUMANOIDThe limb fits the human mold. This is not meant to be literal, if the sprite "fits" on a human, it is "humanoid", regardless of origin.
BODYSHAPE_MONKEYThe limb fits the monkey mold.
BODYSHAPE_DIGITIGRADEThe limb is digitigrade.
BODYSHAPE_SNOUTEDThe limb is snouted.
DIGITIGRADE_NEVERThe species does not have digitigrade legs in generation.
DIGITIGRADE_OPTIONALThe species can have digitigrade legs in generation
DIGITIGRADE_FORCEDThe species is forced to have digitigrade legs in generation.
DIGITIGRADE_LEGSDigitigrade's prefs, used in features for legs if you're meant to be a Digitigrade.
BEAT_FASTHeartbeat is beating fast for hard crit
BEAT_SLOWHeartbeat is beating slow for soft crit
BEAT_NONEHeartbeat is gone... He's dead Jim :(
SANITY_LEVEL_MAXEqual to the highest sanity level
NO_SLIP_WHEN_WALKINGThe mob will not slip if they're walking intent
SLIDESlipping on this will send them sliding a few tiles down
SLIDE_ICEIce slides only go one tile and don't knock you over, they're intended to cause a "slip chain" +where you slip on ice until you reach a non-slippable tile (ice puzzles)
GALOSHES_DONT_HELPTRAIT_NO_SLIP_WATER does not work on this slip. ONLY TRAIT_NO_SLIP_ALL will
SLIP_WHEN_CRAWLINGSlip works even if you're already on the ground
SLIPPERY_TURFthe mob won't slip if the turf has the TRAIT_TURF_IGNORE_SLIPPERY trait.
SHOCK_NOGLOVESFlags used by the flags parameter of electrocute act. +Makes it so that the shock doesn't take gloves into account.
SHOCK_TESLAUsed when the shock is from a tesla bolt.
SHOCK_ILLUSIONUsed when an illusion shocks something. Makes the shock deal stamina damage and not trigger certain secondary effects.
SHOCK_NOSTUNThe shock doesn't stun.
SHOCK_SUPPRESS_MESSAGENo default message is sent from the shock
SHOCK_NO_HUMAN_ANIMNo skeleton animation if a human was shocked
SHOCK_IGNORE_IMMUNITYIgnores TRAIT_STUNIMMUNE
SHOCK_DELAY_STUNPrevents the immediate stun, instead only gives the delay
SHOCK_KNOCKDOWNMakes the paralyze into a knockdown
INCORPOREAL_MOVE_BASICnormal movement, see: /mob/living/var/incorporeal_move
INCORPOREAL_MOVE_SHADOWleaves a trail of shadows
INCORPOREAL_MOVE_JAUNTis blocked by holy water/salt
CLOTHING_NUTRITION_GAINHow much nutrition eating clothes as moth gives and drains
REMShorthand for the above define for ease of use in equations and the like
RECENT_EXAMINE_MAX_WINDOWHow long it takes for an examined atom to be removed from recent_examines. Should be the max of the below time windows
EXAMINE_MORE_WINDOWIf you examine the same atom twice in this timeframe, we call examine_more() instead of examine()
YAWN_PROPAGATION_EXAMINE_WINDOWIf you yawn while someone nearby has examined you within this time frame, it will force them to yawn as well. Tradecraft!
EYE_CONTACT_RANGEHow far away you can be to make eye contact with someone while examining
CAN_SUCCUMBReturns whether or not the given mob can succumb
STANDING_UPMob is standing up, usually associated with lying_angle value of 0.
LYING_DOWNMob is lying down, usually associated with lying_angle values of 90 or 270.
PIXEL_Y_OFFSET_LYINGHow much a mob's sprite should be moved when they're lying down
SPAWN_MEGAFAUNADefine for spawning megafauna instead of a mob for cave gen
SQUASHED_SHOULD_BE_DOWNSquash flags. For squashable element +Squashing will not occur if the mob is not lying down (bodyposition is LYING_DOWN)
SQUASHED_SHOULD_BE_GIBBEDIf present, outright gibs the squashed mob instead of just dealing damage
SQUASHED_ALWAYS_IF_DEADIf squashing always passes if the mob is dead
SQUASHED_DONT_SQUASH_IN_CONTENTSDon't squash our mob if its not located in a turf
AI_HOLOGRAM_BEARDefines for AI hologram preferences
AI_DISPLAY_DONT_GLOWIcon state to use for ai displays that just turns them off
THROW_MODE_DISABLEDThrow modes, defines whether or not to turn off throw mode after
TOTAL_LAYERSTotal number of layers for mob overlays +KEEP THIS UP-TO-DATE OR SHIT WILL BREAK +Also consider updating layers_to_offset
MUTATIONS_LAYERMutations layer - Tk headglows, cold resistance glow, etc
BODY_BEHIND_LAYERMutantrace features (tail when looking south) that must appear behind the body parts
BODYPARTS_LOW_LAYERLayer for bodyparts that should appear behind every other bodypart - Mostly, legs when facing WEST or EAST
BODYPARTS_LAYERLayer for most bodyparts, appears above BODYPARTS_LOW_LAYER and below BODYPARTS_HIGH_LAYER
BODY_ADJ_LAYERMutantrace features (snout, body markings) that must appear above the body parts
BODY_LAYERUnderwear, undershirts, socks, eyes, lips(makeup)
FRONT_MUTATIONS_LAYERMutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
DAMAGE_LAYERDamage indicators (cuts and burns)
BODY_FRONT_UNDER_CLOTHESThis layer is used for things that shouldn't be over clothes, but should be over mutations
UNIFORM_LAYERJumpsuit clothing layer
ID_LAYERID card layer
ID_CARD_LAYERID card layer (might be deprecated)
BODYPARTS_HIGH_LAYERLayer for bodyparts that should appear above every other bodypart - Currently only used for hands
GLOVES_LAYERGloves layer
WRISTS_LAYERWrists layer
SHOES_LAYERShoes layer
LOW_FACEMASK_LAYERLayer for masks that are worn below ears and eyes (like Balaclavas) (layers below hair, use flagsinv=HIDEHAIR as needed)
EARS_EXTRA_LAYERSPLURT EDIT - Extra ears layer
EARS_LAYEREars layer (Spessmen have ears? Wow)
LOW_NECK_LAYERLayer for neck apperal that should appear below the suit slot (like neckties)
SUIT_LAYERSuit layer (armor, coats, etc.)
GLASSES_LAYERGlasses layer
BELT_LAYERBelt layer
SUIT_STORE_LAYERSuit storage layer (tucking a gun or baton underneath your armor)
NECK_LAYERNeck layer (for wearing capes and bedsheets)
BACK_LAYERBack layer (for backpacks and equipment on your back)
HAIR_LAYERHair layer (mess with the fro and you got to go!)
FACEMASK_LAYERFacemask layer (gas masks, breath masks, etc.)
HEAD_LAYERHead layer (hats, helmets, etc.)
HANDCUFF_LAYERHandcuff layer (when your hands are cuffed)
LEGCUFF_LAYERLegcuff layer (when your feet are cuffed)
HANDS_LAYERHands layer (for the actual hand, not the arm... I think?)
BODY_FRONT_LAYERBody front layer. Usually used for mutant bodyparts that need to be in front of stuff (e.g. cat ears)
ABOVE_BODY_FRONT_GLASSES_LAYERSpecial body layer that actually require to be above the hair (e.g. lifted welding goggles)
ABOVE_BODY_FRONT_HEAD_LAYERSpecial body layer for the rare cases where something on the head needs to be above everything else (e.g. flowers)
WOUND_LAYERBleeding wound icons
HALO_LAYERBlood cult ascended halo layer, because there's currently no better solution for adding/removing
HIGHEST_LAYERThe highest most layer for mob overlays. Unused
EXTERNAL_FRONTDraws organ on the BODY_FRONT_LAYER
EXTERNAL_ADJACENTDraws organ on the BODY_ADJ_LAYER
EXTERNAL_BEHINDDraws organ on the BODY_BEHIND_LAYER
EXTERNAL_FRONT_UNDER_CLOTHESDraws organ on the BODY_FRONT_UNDER_CLOTHES
EXTERNAL_FRONT_OVERDraws organ on the ABOVE_BODY_FRONT_HEAD_LAYER
EXTERNAL_FRONT_ABOVE_HAIRDraws organ on the HEAD_LAYER, for things that need to be above hair but below hats.
ALL_EXTERNAL_OVERLAYSDraws organ on all EXTERNAL layers
EXTERNAL_RESTYLE_PLANTThis organ allows restyle through plant restyling (like secateurs)
EXTERNAL_RESTYLE_FLESHThis organ allows restyling with flesh restyling stuff (surgery or something idk)
EXTERNAL_RESTYLE_ENAMELThis organ allows restyling with enamel restyling (like a fucking file or something?). It's for horns and shit
UNDER_SUIT_LAYERThe layer underneath the suit
UNDER_HEAD_LAYERThe layer underneath the head (for hats)
ABOVE_SHOES_LAYERThe layer above shoes
ABOVE_BODY_FRONT_LAYERThe layer above mutant body parts
NEED_GRAVITYIf gravity must be present to perform action (can't use pens without gravity)
NEED_LITERACYIf reading is required to perform action (can't read a book if you are illiterate)
NEED_LIGHTIf lighting must be present to perform action (can't heal someone in the dark)
NEED_DEXTERITYIf other mobs (monkeys, aliens, etc) can perform action (can't use computers if you are a monkey)
NEED_HANDSIf hands are required to perform action (can't use objects that require hands if you are a cyborg)
FORBID_TELEKINESIS_REACHIf telekinesis is forbidden to perform action from a distance (ex. canisters are blacklisted from telekinesis manipulation)
ALLOW_SILICON_REACHIf silicons are allowed to perform action from a distance (silicons can operate airlocks from far away)
ALLOW_RESTINGIf resting on the floor is allowed to perform action (pAIs can play music while resting)
NEED_VENTCRAWLIf this is accessible to creatures with ventcrawl capabilities
BYPASS_ADJACENCYSkips adjacency checks
NOT_INSIDE_TARGETSkips recursive loc checks
SILENT_ADJACENCYChecks for base adjacency, but silences the error
RESIZE_DEFAULT_SIZEThe default mob sprite size (used for shrinking or enlarging the mob sprite to regular size)
CLIENT_FROM_VARGet the client from the var
MOB_VOMIT_MESSAGEFlag which makes a message send about the vomiting.
MOB_VOMIT_STUNFlag which makes the mob get stunned upon vomiting.
MOB_VOMIT_HARMFlag which makes the mob incur damage upon vomiting.
MOB_VOMIT_BLOODFlag which makes the mob vomit blood
MOB_VOMIT_KNOCKDOWNFlag which will cause the mob to fall over when vomiting.
MOB_VOMIT_FORCEFlag which will make the proc skip certain checks when it comes to forcing a vomit.
VOMIT_CATEGORY_DEFAULTThe default. Gives you might typically expect to happen when you vomit.
VOMIT_CATEGORY_BLOODThe vomit you've all come to know and love, but with a little extra "spice" (blood)
VOMIT_CATEGORY_KNOCKDOWNAnother vomit variant that causes you to get knocked down instead of just only getting a stun. Standard otherwise.
NO_BUCKLE_LYINGPossible value of /atom/movable/buckle_lying. If set to a different (positive-or-zero) value than this, the buckling thing will force a lying angle on the buckled.
BUCKLE_MATCH_DIRPossible value of /atom/movable/buckle_dir. If set to a different (positive-or-zero) value than this, the buckling thing will force a dir on the buckled.
HEAL_ADMINSpecial flag that means this heal is an admin heal and goes above and beyond +Note, this includes things like removing suicide status and handcuffs / legcuffs, use with slight caution.
HEAL_BRUTEHeals all brute damage.
HEAL_BURNHeals all burn damage.
HEAL_TOXHeals all toxin damage, slime people included.
HEAL_OXYHeals all oxyloss.
HEAL_STAMHeals all stamina damage.
HEAL_LIMBSRestore all limbs to their initial state.
HEAL_ORGANSHeals all organs from failing.
HEAL_REFRESH_ORGANSA "super" heal organs, this refreshes all organs entirely, deleting old and replacing them with new.
HEAL_WOUNDSRemoves all wounds.
HEAL_TRAUMASRemoves all brain traumas, not including permanent ones.
HEAL_ALL_REAGENTSRemoves all reagents present.
HEAL_NEGATIVE_DISEASESRemoves all non-positive diseases.
HEAL_TEMPRestores body temperature back to nominal.
HEAL_BLOODRestores blood levels to normal.
HEAL_NEGATIVE_MUTATIONSRemoves all non-positive mutations (neutral included).
HEAL_STATUSRemoves status effects with this flag set that also have remove_on_fullheal = TRUE.
HEAL_CC_STATUSSame as above, removes all CC related status effects with this flag set that also have remove_on_fullheal = TRUE.
HEAL_RESTRAINTSDeletes any restraints on the mob (handcuffs / legcuffs)
HEAL_DAMAGECombination flag to only heal the main damage types.
HEAL_BODYCombination flag to only heal things messed up things about the mob's body itself.
HEAL_AFFLICTIONSCombination flag to heal negative things affecting the mob.
HEAL_ALLFull heal that isn't admin forced
ADMIN_HEAL_ALLHeals everything and is as strong as / is an admin heal
READING_CHECK_LITERACYChecking flags for [/mob/proc/can_read()]
DEVIATION_NONENo deviation at all. Flashed from the front or front-left/front-right. Alternatively, flashed in direct view.
DEVIATION_PARTIALPartial deviation. Flashed from the side. Alternatively, flashed out the corner of your eyes.
DEVIATION_FULLFull deviation. Flashed from directly behind or behind-left/behind-rack. Not flashed at all.
NO_REPLACEIn dynamic human icon gen we don't replace the held item.
HEALING_TOUCH_ANYONEFlags for whether you can heal yourself or not or only
NPC_DEFAULT_MIN_TEMPDefault minimum body temperature mobs can exist in before taking damage
NPC_DEFAULT_MAX_TEMPDefault maximum body temperature mobs can exist in before taking damage
NO_OBSERVED_MOVEMENTFlag which stops you from moving while observed
NO_OBSERVED_ACTIONSFlag which stops you from using actions while observed
NO_OBSERVED_ATTACKSFlag which stops you from attacking while observed
MINING_MOB_PROJECTILE_VULNERABILITYTypes of bullets that mining mobs take full damage from
AT_TOXIN_VOMIT_THRESHOLDHelper macro that determines if the mob is at the threshold to start vomitting due to high toxin levels
FLIP_EMOTE_DURATIONThe duration of the flip emote animation
TAUNT_EMOTE_DURATIONThe duration of a taunt emote, so how long they can deflect projectiles
ID_EXAMINE_DISTANCEDistance which you can see someone's ID card +Short enough that you can inspect over tables (bartender checking age)

Define Details

ABOVE_BODY_FRONT_GLASSES_LAYER

Special body layer that actually require to be above the hair (e.g. lifted welding goggles)

ABOVE_BODY_FRONT_HEAD_LAYER

Special body layer for the rare cases where something on the head needs to be above everything else (e.g. flowers)

ABOVE_BODY_FRONT_LAYER

The layer above mutant body parts

ABOVE_SHOES_LAYER

The layer above shoes

ADMIN_HEAL_ALL

Heals everything and is as strong as / is an admin heal

AI_DISPLAY_DONT_GLOW

Icon state to use for ai displays that just turns them off

AI_HOLOGRAM_BEAR

Defines for AI hologram preferences

ALLOW_RESTING

If resting on the floor is allowed to perform action (pAIs can play music while resting)

ALLOW_SILICON_REACH

If silicons are allowed to perform action from a distance (silicons can operate airlocks from far away)

ALL_EXTERNAL_OVERLAYS

Draws organ on all EXTERNAL layers

AT_TOXIN_VOMIT_THRESHOLD

Helper macro that determines if the mob is at the threshold to start vomitting due to high toxin levels

BACK_LAYER

Back layer (for backpacks and equipment on your back)

BEAT_FAST

Heartbeat is beating fast for hard crit

BEAT_NONE

Heartbeat is gone... He's dead Jim :(

BEAT_SLOW

Heartbeat is beating slow for soft crit

BELT_LAYER

Belt layer

BLOOD_DEFICIENCY_MODIFIER

Determines the rate at which humans lose blood when they have the blood deficiency quirk. The default is BLOOD_REGEN_FACTOR + BLOOD_DEFICIENCY_MODIFIER.

BLOOD_REGEN_FACTOR

How efficiently humans regenerate blood.

BLOOD_STOP_TEMP

Temperature at which blood loss and regen stops. /mob/living/carbon/human/proc/handle_blood

BODYPARTS_HIGH_LAYER

Layer for bodyparts that should appear above every other bodypart - Currently only used for hands

BODYPARTS_LAYER

Layer for most bodyparts, appears above BODYPARTS_LOW_LAYER and below BODYPARTS_HIGH_LAYER

BODYPARTS_LOW_LAYER

Layer for bodyparts that should appear behind every other bodypart - Mostly, legs when facing WEST or EAST

BODYSHAPE_ALT_FACEWEAR_LAYER

The limb causes glasses and hats to be drawn on layers 5 and 4 respectively. Currently used for snouts with the (Top) suffix, which are drawn on layer 6 and would normally cover facewear

BODYSHAPE_CUSTOM

The limb fits a modular custom shape

BODYSHAPE_DIGITIGRADE

The limb is digitigrade.

BODYSHAPE_HIDE_SHOES

The limb causes shoes to no longer be displayed, useful for taurs.

BODYSHAPE_HUMANOID

The limb fits the human mold. This is not meant to be literal, if the sprite "fits" on a human, it is "humanoid", regardless of origin.

BODYSHAPE_MONKEY

The limb fits the monkey mold.

BODYSHAPE_SNOUTED

The limb is snouted.

BODYSHAPE_TAUR

The limb fits a taur body

BODYTYPE_ALIEN

The limb is from a xenomorph.

BODYTYPE_GOLEM

The limb is from a golem

BODYTYPE_LARVA_PLACEHOLDER

A placeholder bodytype for xeno larva, so their limbs cannot be attached to anything.

BODYTYPE_ORGANIC

The limb is organic.

BODYTYPE_ROBOTIC

The limb is robotic.

BODY_ADJ_LAYER

Mutantrace features (snout, body markings) that must appear above the body parts

BODY_BEHIND_LAYER

Mutantrace features (tail when looking south) that must appear behind the body parts

BODY_FRONT_LAYER

Body front layer. Usually used for mutant bodyparts that need to be in front of stuff (e.g. cat ears)

BODY_FRONT_UNDER_CLOTHES

This layer is used for things that shouldn't be over clothes, but should be over mutations

BODY_LAYER

Underwear, undershirts, socks, eyes, lips(makeup)

BUCKLE_MATCH_DIR

Possible value of /atom/movable/buckle_dir. If set to a different (positive-or-zero) value than this, the buckling thing will force a dir on the buckled.

BYPASS_ADJACENCY

Skips adjacency checks

CAN_SUCCUMB

Returns whether or not the given mob can succumb

CLIENT_FROM_VAR

Get the client from the var

CLOTHING_NUTRITION_GAIN

How much nutrition eating clothes as moth gives and drains

DAMAGE_LAYER

Damage indicators (cuts and burns)

DEVIATION_FULL

Full deviation. Flashed from directly behind or behind-left/behind-rack. Not flashed at all.

DEVIATION_NONE

No deviation at all. Flashed from the front or front-left/front-right. Alternatively, flashed in direct view.

DEVIATION_PARTIAL

Partial deviation. Flashed from the side. Alternatively, flashed out the corner of your eyes.

DIGITIGRADE_FORCED

The species is forced to have digitigrade legs in generation.

DIGITIGRADE_LEGS

Digitigrade's prefs, used in features for legs if you're meant to be a Digitigrade.

DIGITIGRADE_NEVER

The species does not have digitigrade legs in generation.

DIGITIGRADE_OPTIONAL

The species can have digitigrade legs in generation

EARS_EXTRA_LAYER

SPLURT EDIT - Extra ears layer

EARS_LAYER

Ears layer (Spessmen have ears? Wow)

EXAMINE_MORE_WINDOW

If you examine the same atom twice in this timeframe, we call examine_more() instead of examine()

EXTERNAL_ADJACENT

Draws organ on the BODY_ADJ_LAYER

EXTERNAL_BEHIND

Draws organ on the BODY_BEHIND_LAYER

EXTERNAL_FRONT

Draws organ on the BODY_FRONT_LAYER

EXTERNAL_FRONT_ABOVE_HAIR

Draws organ on the HEAD_LAYER, for things that need to be above hair but below hats.

EXTERNAL_FRONT_OVER

Draws organ on the ABOVE_BODY_FRONT_HEAD_LAYER

EXTERNAL_FRONT_UNDER_CLOTHES

Draws organ on the BODY_FRONT_UNDER_CLOTHES

EXTERNAL_RESTYLE_ENAMEL

This organ allows restyling with enamel restyling (like a fucking file or something?). It's for horns and shit

EXTERNAL_RESTYLE_FLESH

This organ allows restyling with flesh restyling stuff (surgery or something idk)

EXTERNAL_RESTYLE_PLANT

This organ allows restyle through plant restyling (like secateurs)

EYE_CONTACT_RANGE

How far away you can be to make eye contact with someone while examining

FACEMASK_LAYER

Facemask layer (gas masks, breath masks, etc.)

FLIP_EMOTE_DURATION

The duration of the flip emote animation

FORBID_TELEKINESIS_REACH

If telekinesis is forbidden to perform action from a distance (ex. canisters are blacklisted from telekinesis manipulation)

FRONT_MUTATIONS_LAYER

Mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)

GALOSHES_DONT_HELP

TRAIT_NO_SLIP_WATER does not work on this slip. ONLY TRAIT_NO_SLIP_ALL will

GLASSES_LAYER

Glasses layer

GLOVES_LAYER

Gloves layer

HAIR_LAYER

Hair layer (mess with the fro and you got to go!)

HALO_LAYER

Blood cult ascended halo layer, because there's currently no better solution for adding/removing

HANDCUFF_LAYER

Handcuff layer (when your hands are cuffed)

HANDS_LAYER

Hands layer (for the actual hand, not the arm... I think?)

HEAD_LAYER

Head layer (hats, helmets, etc.)

HEALING_TOUCH_ANYONE

Flags for whether you can heal yourself or not or only

HEAL_ADMIN

Special flag that means this heal is an admin heal and goes above and beyond +Note, this includes things like removing suicide status and handcuffs / legcuffs, use with slight caution.

HEAL_AFFLICTIONS

Combination flag to heal negative things affecting the mob.

HEAL_ALL

Full heal that isn't admin forced

HEAL_ALL_REAGENTS

Removes all reagents present.

HEAL_BLOOD

Restores blood levels to normal.

HEAL_BODY

Combination flag to only heal things messed up things about the mob's body itself.

HEAL_BRUTE

Heals all brute damage.

HEAL_BURN

Heals all burn damage.

HEAL_CC_STATUS

Same as above, removes all CC related status effects with this flag set that also have remove_on_fullheal = TRUE.

HEAL_DAMAGE

Combination flag to only heal the main damage types.

HEAL_LIMBS

Restore all limbs to their initial state.

HEAL_NEGATIVE_DISEASES

Removes all non-positive diseases.

HEAL_NEGATIVE_MUTATIONS

Removes all non-positive mutations (neutral included).

HEAL_ORGANS

Heals all organs from failing.

HEAL_OXY

Heals all oxyloss.

HEAL_REFRESH_ORGANS

A "super" heal organs, this refreshes all organs entirely, deleting old and replacing them with new.

HEAL_RESTRAINTS

Deletes any restraints on the mob (handcuffs / legcuffs)

HEAL_STAM

Heals all stamina damage.

HEAL_STATUS

Removes status effects with this flag set that also have remove_on_fullheal = TRUE.

HEAL_TEMP

Restores body temperature back to nominal.

HEAL_TOX

Heals all toxin damage, slime people included.

HEAL_TRAUMAS

Removes all brain traumas, not including permanent ones.

HEAL_WOUNDS

Removes all wounds.

HIGHEST_LAYER

The highest most layer for mob overlays. Unused

ID_CARD_LAYER

ID card layer (might be deprecated)

ID_EXAMINE_DISTANCE

Distance which you can see someone's ID card +Short enough that you can inspect over tables (bartender checking age)

ID_LAYER

ID card layer

INCORPOREAL_MOVE_BASIC

normal movement, see: /mob/living/var/incorporeal_move

INCORPOREAL_MOVE_JAUNT

is blocked by holy water/salt

INCORPOREAL_MOVE_SHADOW

leaves a trail of shadows

LEGCUFF_LAYER

Legcuff layer (when your feet are cuffed)

LOW_FACEMASK_LAYER

Layer for masks that are worn below ears and eyes (like Balaclavas) (layers below hair, use flagsinv=HIDEHAIR as needed)

LOW_NECK_LAYER

Layer for neck apperal that should appear below the suit slot (like neckties)

LYING_DOWN

Mob is lying down, usually associated with lying_angle values of 90 or 270.

MINING_MOB_PROJECTILE_VULNERABILITY

Types of bullets that mining mobs take full damage from

MOB_BEAST

The mob is a wild animal. Domestication may apply.

MOB_BUG

The mob is a bug/insect/arachnid/some other kind of scuttly thing.

MOB_HUMANOID

The mob is a human-sized human-like human-creature.

MOB_MINERAL

The mob is of a rocky make, most likely a golem. Iron within, iron without!

MOB_ORGANIC

The mob is organic, can heal from medical sutures.

MOB_PLANT

The mob is a plant-based species, benefitting from light but suffering from darkness and plantkillers.

MOB_REPTILE

The mob is some kind of a scaly reptile creature

MOB_ROBOTIC

The mob is a synthetic lifeform, like station borgs.

MOB_SLIME

The mob is a goopy creature, probably coming from xenobiology.

MOB_SPECIAL

The mob is some kind of a creature that should be exempt from certain fun interactions for balance reasons, i.e. megafauna or a headslug.

MOB_SPIRIT

The mob is a spooky phantasm or an evil ghast of such nature.

MOB_UNDEAD

The mob is an shambling undead corpse. Or a halloween species. Pick your poison.

MOB_VAMPIRIC

The mob is some kind of vampire, species or antag

MOB_VOMIT_BLOOD

Flag which makes the mob vomit blood

MOB_VOMIT_FORCE

Flag which will make the proc skip certain checks when it comes to forcing a vomit.

MOB_VOMIT_HARM

Flag which makes the mob incur damage upon vomiting.

MOB_VOMIT_KNOCKDOWN

Flag which will cause the mob to fall over when vomiting.

MOB_VOMIT_MESSAGE

Flag which makes a message send about the vomiting.

MOB_VOMIT_STUN

Flag which makes the mob get stunned upon vomiting.

MUTATIONS_LAYER

Mutations layer - Tk headglows, cold resistance glow, etc

NECK_LAYER

Neck layer (for wearing capes and bedsheets)

NEED_DEXTERITY

If other mobs (monkeys, aliens, etc) can perform action (can't use computers if you are a monkey)

NEED_GRAVITY

If gravity must be present to perform action (can't use pens without gravity)

NEED_HANDS

If hands are required to perform action (can't use objects that require hands if you are a cyborg)

NEED_LIGHT

If lighting must be present to perform action (can't heal someone in the dark)

NEED_LITERACY

If reading is required to perform action (can't read a book if you are illiterate)

NEED_VENTCRAWL

If this is accessible to creatures with ventcrawl capabilities

NOT_INSIDE_TARGET

Skips recursive loc checks

NO_BUCKLE_LYING

Possible value of /atom/movable/buckle_lying. If set to a different (positive-or-zero) value than this, the buckling thing will force a lying angle on the buckled.

NO_OBSERVED_ACTIONS

Flag which stops you from using actions while observed

NO_OBSERVED_ATTACKS

Flag which stops you from attacking while observed

NO_OBSERVED_MOVEMENT

Flag which stops you from moving while observed

NO_REPLACE

In dynamic human icon gen we don't replace the held item.

NO_SLIP_WHEN_WALKING

The mob will not slip if they're walking intent

NPC_DEFAULT_MAX_TEMP

Default maximum body temperature mobs can exist in before taking damage

NPC_DEFAULT_MIN_TEMP

Default minimum body temperature mobs can exist in before taking damage

OXYLOSS_PASSOUT_THRESHOLD

Amount of oxyloss that KOs a human

PIXEL_Y_OFFSET_LYING

How much a mob's sprite should be moved when they're lying down

READING_CHECK_LITERACY

Checking flags for [/mob/proc/can_read()]

RECENT_EXAMINE_MAX_WINDOW

How long it takes for an examined atom to be removed from recent_examines. Should be the max of the below time windows

REM

Shorthand for the above define for ease of use in equations and the like

RESIZE_DEFAULT_SIZE

The default mob sprite size (used for shrinking or enlarging the mob sprite to regular size)

SANITY_LEVEL_MAX

Equal to the highest sanity level

SHOCK_DELAY_STUN

Prevents the immediate stun, instead only gives the delay

SHOCK_IGNORE_IMMUNITY

Ignores TRAIT_STUNIMMUNE

SHOCK_ILLUSION

Used when an illusion shocks something. Makes the shock deal stamina damage and not trigger certain secondary effects.

SHOCK_KNOCKDOWN

Makes the paralyze into a knockdown

SHOCK_NOGLOVES

Flags used by the flags parameter of electrocute act. +Makes it so that the shock doesn't take gloves into account.

SHOCK_NOSTUN

The shock doesn't stun.

SHOCK_NO_HUMAN_ANIM

No skeleton animation if a human was shocked

SHOCK_SUPPRESS_MESSAGE

No default message is sent from the shock

SHOCK_TESLA

Used when the shock is from a tesla bolt.

SHOES_LAYER

Shoes layer

SILENT_ADJACENCY

Checks for base adjacency, but silences the error

SLIDE

Slipping on this will send them sliding a few tiles down

SLIDE_ICE

Ice slides only go one tile and don't knock you over, they're intended to cause a "slip chain" +where you slip on ice until you reach a non-slippable tile (ice puzzles)

SLIPPERY_TURF

the mob won't slip if the turf has the TRAIT_TURF_IGNORE_SLIPPERY trait.

SLIP_WHEN_CRAWLING

Slip works even if you're already on the ground

SPAWN_MEGAFAUNA

Define for spawning megafauna instead of a mob for cave gen

SQUASHED_ALWAYS_IF_DEAD

If squashing always passes if the mob is dead

SQUASHED_DONT_SQUASH_IN_CONTENTS

Don't squash our mob if its not located in a turf

SQUASHED_SHOULD_BE_DOWN

Squash flags. For squashable element +Squashing will not occur if the mob is not lying down (bodyposition is LYING_DOWN)

SQUASHED_SHOULD_BE_GIBBED

If present, outright gibs the squashed mob instead of just dealing damage

STANDING_UP

Mob is standing up, usually associated with lying_angle value of 0.

SUIT_LAYER

Suit layer (armor, coats, etc.)

SUIT_STORE_LAYER

Suit storage layer (tucking a gun or baton underneath your armor)

TAUNT_EMOTE_DURATION

The duration of a taunt emote, so how long they can deflect projectiles

THROW_MODE_DISABLED

Throw modes, defines whether or not to turn off throw mode after

TOTAL_LAYERS

Total number of layers for mob overlays +KEEP THIS UP-TO-DATE OR SHIT WILL BREAK +Also consider updating layers_to_offset

UNDER_HEAD_LAYER

The layer underneath the head (for hats)

UNDER_SUIT_LAYER

The layer underneath the suit

UNIFORM_LAYER

Jumpsuit clothing layer

VOMIT_CATEGORY_BLOOD

The vomit you've all come to know and love, but with a little extra "spice" (blood)

VOMIT_CATEGORY_DEFAULT

The default. Gives you might typically expect to happen when you vomit.

VOMIT_CATEGORY_KNOCKDOWN

Another vomit variant that causes you to get knocked down instead of just only getting a stun. Standard otherwise.

WOUND_LAYER

Bleeding wound icons

WRISTS_LAYER

Wrists layer

YAWN_PROPAGATION_EXAMINE_WINDOW

If you yawn while someone nearby has examined you within this time frame, it will force them to yawn as well. Tradecraft!

\ No newline at end of file diff --git a/code/__DEFINES/mod.html b/code/__DEFINES/mod.html new file mode 100644 index 0000000000000..aaa48d152e549 --- /dev/null +++ b/code/__DEFINES/mod.html @@ -0,0 +1 @@ +code/__DEFINES/mod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/mod.dm

DEFAULT_MAX_COMPLEXITYDefault value for the max_complexity var on MODsuits
DEFAULT_CHARGE_DRAINThe default cell drain of a modsuit. The standard modsuit active power usage drains this much energy per modsuit second.
MOD_ACTIVATION_STEP_TIMEDefault time for a part of the suit to seal.
MODULE_PASSIVEPassive module, just acts when put in naturally.
MODULE_USABLEUsable module, does something when you press a button.
MODULE_TOGGLEToggle module, you turn it on/off and it does stuff.
MODULE_ACTIVEActively usable module, you may only have one selected at a time.
MODULE_ALLOW_PHASEOUTThis module can be used during phaseout
MODULE_ALLOW_INCAPACITATEDThis module can be used while incapacitated
MODULE_ALLOW_INACTIVEThis module can be used while the suit is off

Define Details

DEFAULT_CHARGE_DRAIN

The default cell drain of a modsuit. The standard modsuit active power usage drains this much energy per modsuit second.

DEFAULT_MAX_COMPLEXITY

Default value for the max_complexity var on MODsuits

MODULE_ACTIVE

Actively usable module, you may only have one selected at a time.

MODULE_ALLOW_INACTIVE

This module can be used while the suit is off

MODULE_ALLOW_INCAPACITATED

This module can be used while incapacitated

MODULE_ALLOW_PHASEOUT

This module can be used during phaseout

MODULE_PASSIVE

Passive module, just acts when put in naturally.

MODULE_TOGGLE

Toggle module, you turn it on/off and it does stuff.

MODULE_USABLE

Usable module, does something when you press a button.

MOD_ACTIVATION_STEP_TIME

Default time for a part of the suit to seal.

\ No newline at end of file diff --git a/code/__DEFINES/modular_computer.html b/code/__DEFINES/modular_computer.html new file mode 100644 index 0000000000000..4162950b7552e --- /dev/null +++ b/code/__DEFINES/modular_computer.html @@ -0,0 +1,29 @@ +code/__DEFINES/modular_computer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/modular_computer.dm

PROGRAM_ALLcan_run_on_flags bitflags +Used by programs to tell what type of ModPC it can run on. +Everything a program can run on needs valid icons for each individual one. +Runs on everything.
PROGRAM_CONSOLECan run on Modular PC Consoles
PROGRAM_LAPTOPCan run on Laptops.
PROGRAM_PDACan run on PDAs.
PROGRAM_REQUIRES_NTNETprogram_flags +Used by programs to tell the ModPC any special functions it has. +If the program requires NTNet to be online for it to work.
PROGRAM_ON_NTNET_STOREThe program can be downloaded from the default NTNet downloader store.
PROGRAM_ON_SYNDINET_STOREThe program can only be downloaded from the Syndinet store, usually nukie/emagged pda.
PROGRAM_UNIQUE_COPYThe program is unique and will delete itself upon being transferred to ensure only one copy exists.
PROGRAM_HEADERThe program is a header and will show up at the top of the ModPC's UI.
PROGRAM_RUNS_WITHOUT_POWERThe program will run despite the ModPC not having any power in it.
PROGRAM_CIRCUITS_RUN_WHEN_CLOSEDThe circuit ports of this program can be triggered even if the program is not open
PROGRAM_BASIC_CELL_USEThe default amount a program should take in cell use.
DETOMATIX_RESIST_MINORThis app grants a minor protection against being PDA bombed if installed. +(can sometimes prevent it from being sent, while wasting a PDA bomb from the sender).
DETOMATIX_RESIST_MAJORThis app grants a larger protection against being PDA bombed if installed. +(can sometimes prevent it from being sent, while wasting a PDA bomb from the sender).
DETOMATIX_RESIST_MALUSThis app gives a diminished protection against being PDA bombed if installed.
NTNETSPEED_LOWSIGNALNTNet transfer speeds, used when downloading/uploading a file/program. +The define is how fast it will download an app every program's process_tick. +Used for wireless devices with low signal.
NTNETSPEED_HIGHSIGNALUsed for wireless devices with high signal.
NTNETSPEED_ETHERNETUsed for laptops with a high signal, or computers, which is connected regardless of z level.
NTNET_NO_SIGNALNTNet connection signals +Used to calculate the defines above from NTNet Downloader, this is how +good a ModPC's signal is. +When you're away from the station/mining base and not on a console, you can't access the internet.
NTNET_LOW_SIGNALLow signal, so away from the station, but still connected
NTNET_GOOD_SIGNALOn station with good signal.
NTNET_ETHERNET_SIGNALUsing a Computer or Laptop with good signal, ethernet-connected.
MESSENGER_RINGTONE_DEFAULTThe default ringtone of the Messenger app.
MESSENGER_RINGTONE_MAX_LENGTHThe maximum length of the ringtone of the Messenger app.
PDA_THEME_NTOSPDA Themes +For these to work, the defines must be defined in tgui/styles/themes/[define].scss +Default NtOS PDA theme
PDA_THEME_SYNDICATEEmagged/Syndicate NtOS (SyndiOS) PDA theme

Define Details

DETOMATIX_RESIST_MAJOR

This app grants a larger protection against being PDA bombed if installed. +(can sometimes prevent it from being sent, while wasting a PDA bomb from the sender).

DETOMATIX_RESIST_MALUS

This app gives a diminished protection against being PDA bombed if installed.

DETOMATIX_RESIST_MINOR

This app grants a minor protection against being PDA bombed if installed. +(can sometimes prevent it from being sent, while wasting a PDA bomb from the sender).

MESSENGER_RINGTONE_DEFAULT

The default ringtone of the Messenger app.

MESSENGER_RINGTONE_MAX_LENGTH

The maximum length of the ringtone of the Messenger app.

NTNETSPEED_ETHERNET

Used for laptops with a high signal, or computers, which is connected regardless of z level.

NTNETSPEED_HIGHSIGNAL

Used for wireless devices with high signal.

NTNETSPEED_LOWSIGNAL

NTNet transfer speeds, used when downloading/uploading a file/program. +The define is how fast it will download an app every program's process_tick. +Used for wireless devices with low signal.

NTNET_ETHERNET_SIGNAL

Using a Computer or Laptop with good signal, ethernet-connected.

NTNET_GOOD_SIGNAL

On station with good signal.

NTNET_LOW_SIGNAL

Low signal, so away from the station, but still connected

NTNET_NO_SIGNAL

NTNet connection signals +Used to calculate the defines above from NTNet Downloader, this is how +good a ModPC's signal is. +When you're away from the station/mining base and not on a console, you can't access the internet.

PDA_THEME_NTOS

PDA Themes +For these to work, the defines must be defined in tgui/styles/themes/[define].scss +Default NtOS PDA theme

PDA_THEME_SYNDICATE

Emagged/Syndicate NtOS (SyndiOS) PDA theme

PROGRAM_ALL

can_run_on_flags bitflags +Used by programs to tell what type of ModPC it can run on. +Everything a program can run on needs valid icons for each individual one. +Runs on everything.

PROGRAM_BASIC_CELL_USE

The default amount a program should take in cell use.

PROGRAM_CIRCUITS_RUN_WHEN_CLOSED

The circuit ports of this program can be triggered even if the program is not open

PROGRAM_CONSOLE

Can run on Modular PC Consoles

PROGRAM_HEADER

The program is a header and will show up at the top of the ModPC's UI.

PROGRAM_LAPTOP

Can run on Laptops.

PROGRAM_ON_NTNET_STORE

The program can be downloaded from the default NTNet downloader store.

PROGRAM_ON_SYNDINET_STORE

The program can only be downloaded from the Syndinet store, usually nukie/emagged pda.

PROGRAM_PDA

Can run on PDAs.

PROGRAM_REQUIRES_NTNET

program_flags +Used by programs to tell the ModPC any special functions it has. +If the program requires NTNet to be online for it to work.

PROGRAM_RUNS_WITHOUT_POWER

The program will run despite the ModPC not having any power in it.

PROGRAM_UNIQUE_COPY

The program is unique and will delete itself upon being transferred to ensure only one copy exists.

\ No newline at end of file diff --git a/code/__DEFINES/monkeys.html b/code/__DEFINES/monkeys.html new file mode 100644 index 0000000000000..81ccc895f2a0b --- /dev/null +++ b/code/__DEFINES/monkeys.html @@ -0,0 +1 @@ +code/__DEFINES/monkeys.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/monkeys.dm

MONKEY_FLEE_HEALTHbelow this health value the monkey starts to flee from enemies
MONKEY_ENEMY_VISIONhow close an enemy must be to trigger aggression
MONKEY_FLEE_VISIONhow close an enemy must be before it triggers flee
MONKEY_ITEM_SNATCH_DELAYHow long does it take the item to be taken from a mobs hand
MONKEY_CUFF_RETALIATION_PROBProbability monkey will aggro when cuffed
MONKEY_SYRINGE_RETALIATION_PROBProbability monkey will aggro when syringed
MONKEY_PULL_AGGRO_PROBprobability that monkey aggro against the mob pulling it
MONKEY_SHENANIGAN_PROBprobability that monkey will get into mischief, i.e. finding/stealing items
MONKEY_ATTACK_DISARM_PROBprobability that monkey will disarm an armed attacker
MONKEY_RECRUIT_PROBprobability that monkey will get recruited when friend is attacked
MONKEY_RETALIATE_PROBprobability for the monkey to aggro when attacked
MONKEY_HATRED_AMOUNTamount of aggro to add to an enemy when they attack user
MONKEY_RECRUIT_HATED_AMOUNTamount of aggro to add to an enemy when a monkey is recruited
MONKEY_HATRED_REDUCTION_PROBprobability of reducing aggro by one when the monkey attacks
MONKEY_RECRUIT_COOLDOWNMonkey recruit cooldown

Define Details

MONKEY_ATTACK_DISARM_PROB

probability that monkey will disarm an armed attacker

MONKEY_CUFF_RETALIATION_PROB

Probability monkey will aggro when cuffed

MONKEY_ENEMY_VISION

how close an enemy must be to trigger aggression

MONKEY_FLEE_HEALTH

below this health value the monkey starts to flee from enemies

MONKEY_FLEE_VISION

how close an enemy must be before it triggers flee

MONKEY_HATRED_AMOUNT

amount of aggro to add to an enemy when they attack user

MONKEY_HATRED_REDUCTION_PROB

probability of reducing aggro by one when the monkey attacks

MONKEY_ITEM_SNATCH_DELAY

How long does it take the item to be taken from a mobs hand

MONKEY_PULL_AGGRO_PROB

probability that monkey aggro against the mob pulling it

MONKEY_RECRUIT_COOLDOWN

Monkey recruit cooldown

MONKEY_RECRUIT_HATED_AMOUNT

amount of aggro to add to an enemy when a monkey is recruited

MONKEY_RECRUIT_PROB

probability that monkey will get recruited when friend is attacked

MONKEY_RETALIATE_PROB

probability for the monkey to aggro when attacked

MONKEY_SHENANIGAN_PROB

probability that monkey will get into mischief, i.e. finding/stealing items

MONKEY_SYRINGE_RETALIATION_PROB

Probability monkey will aggro when syringed

\ No newline at end of file diff --git a/code/__DEFINES/movement.html b/code/__DEFINES/movement.html new file mode 100644 index 0000000000000..e57b087ccfd1e --- /dev/null +++ b/code/__DEFINES/movement.html @@ -0,0 +1,19 @@ +code/__DEFINES/movement.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/movement.dm

MIN_GLIDE_SIZEThe minimum for glide_size to be clamped to.
MAX_GLIDE_SIZEThe maximum for glide_size to be clamped to. +This shouldn't be higher than the icon size, and generally you shouldn't be changing this, but it's here just in case.
DELAY_TO_GLIDE_SIZEBroken down, here's what this does: +divides the world icon_size by delay divided by ticklag to get the number of pixels something should be moving each tick. +The division result is given a min value of 1 to prevent obscenely slow glide sizes from being set +Then that's multiplied by the global glide size multiplier. 1.25 by default feels pretty close to spot on. This is just to try to get byond to behave. +The whole result is then clamped to within the range above. +Not very readable but it works
MOVEMENT_ADJUSTED_GLIDE_SIZESimilar to DELAY_TO_GLIDE_SIZE, except without the clamping, and it supports piping in an unrelated scalar
MOVEMENT_DEFAULT_PRIORITYStandard, go lower then this if you want to override, higher otherwise
MOVEMENT_SPACE_PRIORITYVery few things should override this
MOVEMENT_ABOVE_SPACE_PRIORITYHigher then the heavens
MOVEMENT_LOOP_START_FASTShould the loop act immediately following its addition?
MOVEMENT_LOOP_IGNORE_PRIORITYDo we not use the priority system?
MOVEMENT_LOOP_IGNORE_GLIDEShould we override the loop's glide?
MOVEMENT_LOOP_NO_DIR_UPDATEShould we not update our movables dir on move?
MOVEMENT_LOOP_OUTSIDE_CONTROLIs the loop moving the movable outside its control, like it's an external force? e.g. footsteps won't play if enabled.
MOVELOOP_STATUS_PAUSEDHas the loop been paused, soon to be resumed?
MOVELOOP_STATUS_RUNNINGIs the loop running? (Is true even when paused)
MOVELOOP_STATUS_QUEUEDIs the loop queued in a subsystem?
CHECK_MOVE_LOOP_FLAGSReturns a bitfield containing flags both present in flags arg and the processing_move_loop_flags move_packet variable. +Has no use outside of procs called within the movement proc chain.
CURRENTLY_Z_FALLINGcurrently_z_moving defines. Higher numbers mean higher priority. +This one is for falling down open space from stuff such as deleted tile, pit grate...
CURRENTLY_Z_MOVING_GENERICcurrently_z_moving is set to this in zMove() if 0.
CURRENTLY_Z_FALLING_FROM_MOVEThis one is for falling down open space from movement.
CURRENTLY_Z_ASCENDINGThis one is for going upstairs.
FALL_INTERCEPTEDpossible bitflag return values of [atom/proc/intercept_zImpact] calls +Stops the movable from falling further and crashing on the ground. Example: stairs.
FALL_NO_MESSAGESuppresses the "[movable] falls through [old_turf]" message because it'd make little sense in certain contexts like climbing stairs.
FALL_STOP_INTERCEPTINGUsed when the whole intercept_zImpact forvar loop should be stopped. For example: when someone falls into the supermatter and becomes dust.
FALL_RETAIN_PULLUsed when the grip on a pulled object shouldn't be broken.
ZMOVE_CHECK_PULLINGRuns check_pulling() by the end of [/atom/movable/proc/zMove] for every movable that's pulling something. Should be kept enabled unless you know what you are doing.
ZMOVE_CHECK_PULLEDBYChecks if pulledby is nearby. if not, stop being pulled.
ZMOVE_FALL_CHECKSflags for different checks done in /atom/movable/proc/can_z_move. Should be self-explainatory.
ZMOVE_IGNORE_OBSTACLESDoesn't call zPassIn() and zPassOut()
ZMOVE_FEEDBACKGives players chat feedbacks if they're unable to move through z levels.
ZMOVE_ALLOW_BUCKLEDWhether we check the movable (if it exists) the living mob is buckled on or not.
ZMOVE_VENTCRAWLINGIf the movable is actually ventcrawling vertically.
ZMOVE_INCLUDE_PULLEDIncludes movables that're either pulled by the source or mobs buckled to it in the list of moving movables.
ZMOVE_ALLOW_ANCHOREDSkips check for whether the moving atom is anchored or not.
ZMOVE_FLIGHT_FLAGSFlags used in "Move Upwards" and "Move Downwards" verbs.
ZMOVE_STAIRS_FLAGSUsed when walking upstairs
ZMOVE_FALL_FLAGSUsed for falling down open space.
FIRST_DIAG_STEPThe first step of the diagnonal movement
SECOND_DIAG_STEPThe second step of the diagnonal movement
TELEPORT_CHANNEL_BLUESPACEClassic bluespace teleportation, requires a sender but no receiver
TELEPORT_CHANNEL_QUANTUMQuantum-based teleportation, requires both sender and receiver, but is free from normal disruption
TELEPORT_CHANNEL_WORMHOLEWormhole teleportation, is not disrupted by bluespace fluctuations but tends to be very random or unsafe
TELEPORT_CHANNEL_MAGICMagic teleportation, does whatever it wants (unless there's antimagic)
TELEPORT_CHANNEL_CULTCult teleportation, does whatever it wants (unless there's holiness)
TELEPORT_CHANNEL_EIGENSTATEEigenstate teleportation, can do most things (that aren't in a teleport-prevented zone)
TELEPORT_CHANNEL_FREEAnything else
MOVELOOP_FAILUREReturn values for moveloop Move()
INERTIA_FORCE_CAPMaximum inertia that an object can hold. Used to prevent objects from getting to stupid speeds.
INERTIA_FORCE_SPACEMOVE_REDUCTIONHow much inertia is deducted when a mob has newtonian spacemove capabilities and is not moving in the same direction
INERTIA_FORCE_SPACEMOVE_GRABHow much inertia we must have to not be able to instantly stop after having something to grab
INERTIA_FORCE_THROW_FLOORHow much inertia is required for the impacted object to be thrown at the wall
INERTIA_FORCE_PER_THROW_FORCEHow much inertia is required past the floor to add 1 strength

Define Details

CHECK_MOVE_LOOP_FLAGS

Returns a bitfield containing flags both present in flags arg and the processing_move_loop_flags move_packet variable. +Has no use outside of procs called within the movement proc chain.

CURRENTLY_Z_ASCENDING

This one is for going upstairs.

CURRENTLY_Z_FALLING

currently_z_moving defines. Higher numbers mean higher priority. +This one is for falling down open space from stuff such as deleted tile, pit grate...

CURRENTLY_Z_FALLING_FROM_MOVE

This one is for falling down open space from movement.

CURRENTLY_Z_MOVING_GENERIC

currently_z_moving is set to this in zMove() if 0.

DELAY_TO_GLIDE_SIZE

Broken down, here's what this does: +divides the world icon_size by delay divided by ticklag to get the number of pixels something should be moving each tick. +The division result is given a min value of 1 to prevent obscenely slow glide sizes from being set +Then that's multiplied by the global glide size multiplier. 1.25 by default feels pretty close to spot on. This is just to try to get byond to behave. +The whole result is then clamped to within the range above. +Not very readable but it works

FALL_INTERCEPTED

possible bitflag return values of [atom/proc/intercept_zImpact] calls +Stops the movable from falling further and crashing on the ground. Example: stairs.

FALL_NO_MESSAGE

Suppresses the "[movable] falls through [old_turf]" message because it'd make little sense in certain contexts like climbing stairs.

FALL_RETAIN_PULL

Used when the grip on a pulled object shouldn't be broken.

FALL_STOP_INTERCEPTING

Used when the whole intercept_zImpact forvar loop should be stopped. For example: when someone falls into the supermatter and becomes dust.

FIRST_DIAG_STEP

The first step of the diagnonal movement

INERTIA_FORCE_CAP

Maximum inertia that an object can hold. Used to prevent objects from getting to stupid speeds.

INERTIA_FORCE_PER_THROW_FORCE

How much inertia is required past the floor to add 1 strength

INERTIA_FORCE_SPACEMOVE_GRAB

How much inertia we must have to not be able to instantly stop after having something to grab

INERTIA_FORCE_SPACEMOVE_REDUCTION

How much inertia is deducted when a mob has newtonian spacemove capabilities and is not moving in the same direction

INERTIA_FORCE_THROW_FLOOR

How much inertia is required for the impacted object to be thrown at the wall

MAX_GLIDE_SIZE

The maximum for glide_size to be clamped to. +This shouldn't be higher than the icon size, and generally you shouldn't be changing this, but it's here just in case.

MIN_GLIDE_SIZE

The minimum for glide_size to be clamped to.

MOVELOOP_FAILURE

Return values for moveloop Move()

MOVELOOP_STATUS_PAUSED

Has the loop been paused, soon to be resumed?

MOVELOOP_STATUS_QUEUED

Is the loop queued in a subsystem?

MOVELOOP_STATUS_RUNNING

Is the loop running? (Is true even when paused)

MOVEMENT_ABOVE_SPACE_PRIORITY

Higher then the heavens

MOVEMENT_ADJUSTED_GLIDE_SIZE

Similar to DELAY_TO_GLIDE_SIZE, except without the clamping, and it supports piping in an unrelated scalar

MOVEMENT_DEFAULT_PRIORITY

Standard, go lower then this if you want to override, higher otherwise

MOVEMENT_LOOP_IGNORE_GLIDE

Should we override the loop's glide?

MOVEMENT_LOOP_IGNORE_PRIORITY

Do we not use the priority system?

MOVEMENT_LOOP_NO_DIR_UPDATE

Should we not update our movables dir on move?

MOVEMENT_LOOP_OUTSIDE_CONTROL

Is the loop moving the movable outside its control, like it's an external force? e.g. footsteps won't play if enabled.

MOVEMENT_LOOP_START_FAST

Should the loop act immediately following its addition?

MOVEMENT_SPACE_PRIORITY

Very few things should override this

SECOND_DIAG_STEP

The second step of the diagnonal movement

TELEPORT_CHANNEL_BLUESPACE

Classic bluespace teleportation, requires a sender but no receiver

TELEPORT_CHANNEL_CULT

Cult teleportation, does whatever it wants (unless there's holiness)

TELEPORT_CHANNEL_EIGENSTATE

Eigenstate teleportation, can do most things (that aren't in a teleport-prevented zone)

TELEPORT_CHANNEL_FREE

Anything else

TELEPORT_CHANNEL_MAGIC

Magic teleportation, does whatever it wants (unless there's antimagic)

TELEPORT_CHANNEL_QUANTUM

Quantum-based teleportation, requires both sender and receiver, but is free from normal disruption

TELEPORT_CHANNEL_WORMHOLE

Wormhole teleportation, is not disrupted by bluespace fluctuations but tends to be very random or unsafe

ZMOVE_ALLOW_ANCHORED

Skips check for whether the moving atom is anchored or not.

ZMOVE_ALLOW_BUCKLED

Whether we check the movable (if it exists) the living mob is buckled on or not.

ZMOVE_CHECK_PULLEDBY

Checks if pulledby is nearby. if not, stop being pulled.

ZMOVE_CHECK_PULLING

Runs check_pulling() by the end of [/atom/movable/proc/zMove] for every movable that's pulling something. Should be kept enabled unless you know what you are doing.

ZMOVE_FALL_CHECKS

flags for different checks done in /atom/movable/proc/can_z_move. Should be self-explainatory.

ZMOVE_FALL_FLAGS

Used for falling down open space.

ZMOVE_FEEDBACK

Gives players chat feedbacks if they're unable to move through z levels.

ZMOVE_FLIGHT_FLAGS

Flags used in "Move Upwards" and "Move Downwards" verbs.

ZMOVE_IGNORE_OBSTACLES

Doesn't call zPassIn() and zPassOut()

ZMOVE_INCLUDE_PULLED

Includes movables that're either pulled by the source or mobs buckled to it in the list of moving movables.

ZMOVE_STAIRS_FLAGS

Used when walking upstairs

ZMOVE_VENTCRAWLING

If the movable is actually ventcrawling vertically.

\ No newline at end of file diff --git a/code/__DEFINES/movement_info.html b/code/__DEFINES/movement_info.html new file mode 100644 index 0000000000000..681f6084aa17b --- /dev/null +++ b/code/__DEFINES/movement_info.html @@ -0,0 +1 @@ +code/__DEFINES/movement_info.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/movement_info.dm

SET_ACTIVE_MOVEMENTThe arguments of this macro correspond directly to the argument order of /atom/movable/proc/Moved
RESOLVE_ACTIVE_MOVEMENTFinish any active movements

Define Details

RESOLVE_ACTIVE_MOVEMENT

Finish any active movements

SET_ACTIVE_MOVEMENT

The arguments of this macro correspond directly to the argument order of /atom/movable/proc/Moved

\ No newline at end of file diff --git a/code/__DEFINES/multiz.html b/code/__DEFINES/multiz.html new file mode 100644 index 0000000000000..dbbb1250a12f5 --- /dev/null +++ b/code/__DEFINES/multiz.html @@ -0,0 +1 @@ +code/__DEFINES/multiz.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/multiz.dm

GET_TURF_BELOWAttempt to get the turf below the provided one according to Z traits
GET_TURF_ABOVEAttempt to get the turf above the provided one according to Z traits

Define Details

GET_TURF_ABOVE

Attempt to get the turf above the provided one according to Z traits

GET_TURF_BELOW

Attempt to get the turf below the provided one according to Z traits

\ No newline at end of file diff --git a/code/__DEFINES/nitrile.html b/code/__DEFINES/nitrile.html new file mode 100644 index 0000000000000..1911e067b914a --- /dev/null +++ b/code/__DEFINES/nitrile.html @@ -0,0 +1 @@ +code/__DEFINES/nitrile.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/nitrile.dm

CHEM_INTERACT_DELAYmultiplies the time of do_after by NITRILE_GLOVES_MULTIPLIER if the user has the TRAIT_FASTMED

Define Details

CHEM_INTERACT_DELAY

multiplies the time of do_after by NITRILE_GLOVES_MULTIPLIER if the user has the TRAIT_FASTMED

\ No newline at end of file diff --git a/code/__DEFINES/nozzle_define.html b/code/__DEFINES/nozzle_define.html new file mode 100644 index 0000000000000..f22a01e58e6a3 --- /dev/null +++ b/code/__DEFINES/nozzle_define.html @@ -0,0 +1 @@ +code/__DEFINES/nozzle_define.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/nozzle_define.dm

EXTINGUISHER3 differnt modes for the firefighter extinquisher

Define Details

EXTINGUISHER

3 differnt modes for the firefighter extinquisher

\ No newline at end of file diff --git a/code/__DEFINES/nuclear_bomb.html b/code/__DEFINES/nuclear_bomb.html new file mode 100644 index 0000000000000..67ee443e0be48 --- /dev/null +++ b/code/__DEFINES/nuclear_bomb.html @@ -0,0 +1 @@ +code/__DEFINES/nuclear_bomb.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/nuclear_bomb.dm

NUKE_CODE_UNSETDefault code for nukes, intentionally impossible to enter on the UI

Define Details

NUKE_CODE_UNSET

Default code for nukes, intentionally impossible to enter on the UI

\ No newline at end of file diff --git a/code/__DEFINES/obj_flags.html b/code/__DEFINES/obj_flags.html new file mode 100644 index 0000000000000..80e1eefb7ce1a --- /dev/null +++ b/code/__DEFINES/obj_flags.html @@ -0,0 +1,5 @@ +code/__DEFINES/obj_flags.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/obj_flags.dm

BLOCKS_CONSTRUCTIONDoes this object prevent things from being built on it?
BLOCKS_CONSTRUCTION_DIRDoes this object prevent same-direction things from being built on it?
IGNORE_DENSITYCan we ignore density when building on this object? (for example, directional windows and grilles)
CONDUCTS_ELECTRICITYCan this object conduct electricity?
NO_DEBRIS_AFTER_DECONSTRUCTIONAtoms don't spawn anything when deconstructed. They just vanish
NEEDS_PERMITUsed by security bots to determine if this item is safe for public use.
IGNORE_DIGITIGRADECan be equipped on digitigrade legs.
ITEM_HAS_CONTEXTUAL_SCREENTIPSHas contextual screentips when HOVERING OVER OTHER objects
NO_BLOOD_ON_ITEMNo blood overlay is allowed to appear on this item, and it cannot gain blood DNA forensics
SKIP_FANTASY_ON_SPAWNWhether this item should skip the /datum/component/fantasy applied on spawn on the RPG event. Used on things like stacks
LAVAPROTECTSUIT and HEAD items which stop lava from hurting the wearer
STOPSPRESSUREDAMAGESUIT and HEAD items which stop pressure damage. +To stop you taking all pressure damage you must have both a suit and head item with this flag.
BLOCK_GAS_SMOKE_EFFECTblocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY!
MASKINTERNALSmask allows internals
GAS_FILTERINGmask filters toxins and other harmful gases
THICKMATERIALprevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. +Example: space suits, biosuit, bombsuits, thick suits that cover your body.
VOICEBOX_TOGGLABLEThe voicebox in this clothing can be toggled.
VOICEBOX_DISABLEDThe voicebox is currently turned off.
SNUG_FITPrevents knock-off from things like hat-throwing.
ANTI_TINFOIL_MANEUVERHats with negative effects when worn (i.e the tinfoil hat).
DANGEROUS_OBJECTClothes that cause a larger notification when placed on a person.
LARGE_WORN_ICONClothes that use large icons, for applying the proper overlays like blood
STACKABLE_HELMET_EXEMPTprevents from placing on plasmaman helmet or modsuit hat holder
PLASMAMAN_PREVENT_IGNITIONPrevents plasmamen from igniting when wearing this
CASTING_CLOTHESUsable as casting clothes by wizards (matters for suits, glasses and headwear)
INEDIBLE_CLOTHINGMoths can't eat the clothing that has this flag.
HEADINTERNALSHeadgear/helmet allows internals
INTERNALS_ADJUST_EXEMPTPrevents masks from getting adjusted from enabling internals
CLOTHING_PRISTINEIntegrity defines for clothing (not flags but close enough)
FIRST_SOUNDSFlags for the pod_flags var on /obj/structure/closet/supplypod
TOY_FIREARM_OVERLAYFlags for the gun_flags var for firearms
NOT_A_REAL_GUNCurrently used to identify valid guns to steal
TURRET_INCOMPATIBLEThis gun shouldn't be allowed to go in a turret (it probably causes a bug/exploit)
SHARP_EDGEDFlags for sharpness in obj/item
INCLUDE_POCKETSFlags for specifically what kind of items to get in get_equipped_items

Define Details

ANTI_TINFOIL_MANEUVER

Hats with negative effects when worn (i.e the tinfoil hat).

BLOCKS_CONSTRUCTION

Does this object prevent things from being built on it?

BLOCKS_CONSTRUCTION_DIR

Does this object prevent same-direction things from being built on it?

BLOCK_GAS_SMOKE_EFFECT

blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY!

CASTING_CLOTHES

Usable as casting clothes by wizards (matters for suits, glasses and headwear)

CLOTHING_PRISTINE

Integrity defines for clothing (not flags but close enough)

CONDUCTS_ELECTRICITY

Can this object conduct electricity?

DANGEROUS_OBJECT

Clothes that cause a larger notification when placed on a person.

FIRST_SOUNDS

Flags for the pod_flags var on /obj/structure/closet/supplypod

GAS_FILTERING

mask filters toxins and other harmful gases

HEADINTERNALS

Headgear/helmet allows internals

IGNORE_DENSITY

Can we ignore density when building on this object? (for example, directional windows and grilles)

IGNORE_DIGITIGRADE

Can be equipped on digitigrade legs.

INCLUDE_POCKETS

Flags for specifically what kind of items to get in get_equipped_items

INEDIBLE_CLOTHING

Moths can't eat the clothing that has this flag.

INTERNALS_ADJUST_EXEMPT

Prevents masks from getting adjusted from enabling internals

ITEM_HAS_CONTEXTUAL_SCREENTIPS

Has contextual screentips when HOVERING OVER OTHER objects

LARGE_WORN_ICON

Clothes that use large icons, for applying the proper overlays like blood

LAVAPROTECT

SUIT and HEAD items which stop lava from hurting the wearer

MASKINTERNALS

mask allows internals

NEEDS_PERMIT

Used by security bots to determine if this item is safe for public use.

NOT_A_REAL_GUN

Currently used to identify valid guns to steal

NO_BLOOD_ON_ITEM

No blood overlay is allowed to appear on this item, and it cannot gain blood DNA forensics

NO_DEBRIS_AFTER_DECONSTRUCTION

Atoms don't spawn anything when deconstructed. They just vanish

PLASMAMAN_PREVENT_IGNITION

Prevents plasmamen from igniting when wearing this

SHARP_EDGED

Flags for sharpness in obj/item

SKIP_FANTASY_ON_SPAWN

Whether this item should skip the /datum/component/fantasy applied on spawn on the RPG event. Used on things like stacks

SNUG_FIT

Prevents knock-off from things like hat-throwing.

STACKABLE_HELMET_EXEMPT

prevents from placing on plasmaman helmet or modsuit hat holder

STOPSPRESSUREDAMAGE

SUIT and HEAD items which stop pressure damage. +To stop you taking all pressure damage you must have both a suit and head item with this flag.

THICKMATERIAL

prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. +Example: space suits, biosuit, bombsuits, thick suits that cover your body.

TOY_FIREARM_OVERLAY

Flags for the gun_flags var for firearms

TURRET_INCOMPATIBLE

This gun shouldn't be allowed to go in a turret (it probably causes a bug/exploit)

VOICEBOX_DISABLED

The voicebox is currently turned off.

VOICEBOX_TOGGLABLE

The voicebox in this clothing can be toggled.

\ No newline at end of file diff --git a/code/__DEFINES/observers.html b/code/__DEFINES/observers.html new file mode 100644 index 0000000000000..93ced4533255b --- /dev/null +++ b/code/__DEFINES/observers.html @@ -0,0 +1 @@ +code/__DEFINES/observers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/observers.dm

GHOST_NOTIFY_IGNORE_MAPLOADDetermines if the notification will not run if called during mapload.
GHOST_NOTIFY_FLASH_WINDOWDetermines if the notification will flash the Byond window.
GHOST_NOTIFY_NOTIFY_SUICIDERSDetermines if the notification will notify suiciders.
NOTIFY_CATEGORY_DEFAULTThe default set of flags to be passed into a notify_ghosts call.
NOTIFY_CATEGORY_NOFLASHThe default set of flags, without the flash_window flag.

Define Details

GHOST_NOTIFY_FLASH_WINDOW

Determines if the notification will flash the Byond window.

GHOST_NOTIFY_IGNORE_MAPLOAD

Determines if the notification will not run if called during mapload.

GHOST_NOTIFY_NOTIFY_SUICIDERS

Determines if the notification will notify suiciders.

NOTIFY_CATEGORY_DEFAULT

The default set of flags to be passed into a notify_ghosts call.

NOTIFY_CATEGORY_NOFLASH

The default set of flags, without the flash_window flag.

\ No newline at end of file diff --git a/code/__DEFINES/organ_movement.html b/code/__DEFINES/organ_movement.html new file mode 100644 index 0000000000000..4c423d3fde15a --- /dev/null +++ b/code/__DEFINES/organ_movement.html @@ -0,0 +1 @@ +code/__DEFINES/organ_movement.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/organ_movement.dm

DELETE_IF_REPLACEDDelete the organ if replaced
NO_ID_TRANSFERWhen deleting a brain, we don't delete the identity and the player can keep playing

Define Details

DELETE_IF_REPLACED

Delete the organ if replaced

NO_ID_TRANSFER

When deleting a brain, we don't delete the identity and the player can keep playing

\ No newline at end of file diff --git a/code/__DEFINES/overlays.html b/code/__DEFINES/overlays.html new file mode 100644 index 0000000000000..d530374bd737f --- /dev/null +++ b/code/__DEFINES/overlays.html @@ -0,0 +1 @@ +code/__DEFINES/overlays.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/overlays.dm

VALIDATE_OVERLAY_LIMITChecks if an atom has reached the overlay limit, and make a loud error if it does.
POST_OVERLAY_CHANGEPerforms any operations that ought to run after an appearance change

Define Details

POST_OVERLAY_CHANGE

Performs any operations that ought to run after an appearance change

VALIDATE_OVERLAY_LIMIT

Checks if an atom has reached the overlay limit, and make a loud error if it does.

\ No newline at end of file diff --git a/code/__DEFINES/pai.html b/code/__DEFINES/pai.html new file mode 100644 index 0000000000000..6681f4c037e62 --- /dev/null +++ b/code/__DEFINES/pai.html @@ -0,0 +1 @@ +code/__DEFINES/pai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/pai.dm

HOLOCHASSIS_COOLDOWNTime between fold out
HOLOCHASSIS_INIT_TIMETime it takes a new pAI to fold out
HOLOCHASSIS_OVERLOAD_COOLDOWNOverloaded or emagged foldout cooldown
HOLOCHASSIS_REGEN_PER_SECONDRegeneration rate for the holochassis
HOLOCHASSIS_MAX_HEALTHThe max health of the holochassis
PAI_SPAM_TIMEThe amount of time between spamming for pAI candidates
HOLOFORM_MAX_RANGEMaximum distance you can set the holoform leash
HOLOFORM_MIN_RANGEMinimum distance you can set the holoform leash
HOLOFORM_DEFAULT_RANGEDefault holoform leash distance
PAI_TOGGLE_MEDICAL_HUDUI action to toggle huds
PAI_SCAN_TARGETUI action to use integrated scanner on target
PAI_DOOR_JACK_CABLEUI actions for door jack
PAI_PHOTO_MODE_CAMERAUI actions for photography module

Define Details

HOLOCHASSIS_COOLDOWN

Time between fold out

HOLOCHASSIS_INIT_TIME

Time it takes a new pAI to fold out

HOLOCHASSIS_MAX_HEALTH

The max health of the holochassis

HOLOCHASSIS_OVERLOAD_COOLDOWN

Overloaded or emagged foldout cooldown

HOLOCHASSIS_REGEN_PER_SECOND

Regeneration rate for the holochassis

HOLOFORM_DEFAULT_RANGE

Default holoform leash distance

HOLOFORM_MAX_RANGE

Maximum distance you can set the holoform leash

HOLOFORM_MIN_RANGE

Minimum distance you can set the holoform leash

PAI_DOOR_JACK_CABLE

UI actions for door jack

PAI_PHOTO_MODE_CAMERA

UI actions for photography module

PAI_SCAN_TARGET

UI action to use integrated scanner on target

PAI_SPAM_TIME

The amount of time between spamming for pAI candidates

PAI_TOGGLE_MEDICAL_HUD

UI action to toggle huds

\ No newline at end of file diff --git a/code/__DEFINES/paintings.html b/code/__DEFINES/paintings.html new file mode 100644 index 0000000000000..c6565f97eb0b9 --- /dev/null +++ b/code/__DEFINES/paintings.html @@ -0,0 +1 @@ +code/__DEFINES/paintings.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/paintings.dm

PAINTINGS_FILTER_AI_PORTRAITOnly returns paintings with 23x23 or 24x24 sizes fitting AI display icon.
PAINTINGS_FILTER_SEARCH_TITLESearch mode for the title of the painting
PAINTINGS_FILTER_SEARCH_CREATORDitto but for the creator's name

Define Details

PAINTINGS_FILTER_AI_PORTRAIT

Only returns paintings with 23x23 or 24x24 sizes fitting AI display icon.

PAINTINGS_FILTER_SEARCH_CREATOR

Ditto but for the creator's name

PAINTINGS_FILTER_SEARCH_TITLE

Search mode for the title of the painting

\ No newline at end of file diff --git a/code/__DEFINES/paper.html b/code/__DEFINES/paper.html new file mode 100644 index 0000000000000..f47e056fc886f --- /dev/null +++ b/code/__DEFINES/paper.html @@ -0,0 +1,3 @@ +code/__DEFINES/paper.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/paper.dm

MAX_PAPER_LENGTHMaximimum number of characters that we allow on paper.
MAX_PAPER_STAMPSMax number of stamps that can be applied to the paper in tgui.
MAX_PAPER_STAMPS_OVERLAYSMax number of stamp overlays that we'll add to a piece of paper's icon.
MAX_PAPER_INPUT_FIELD_LENGTHMaximum length of input fields. Input fields greater than this length are clamped tgui-side. Input field text input greater than this length is rejected tgui-side, discarded + logged if it reaches DM-side.
MODE_READINGShould not be able to write on or stamp paper.
MODE_WRITINGShould be able to write on paper.
MODE_STAMPINGShould be able to stamp paper.
LIST_PAPER_COLORkey defines used when converting a paper to and fro' a data/json list. It's really important that they stay the same +lest we break persistence.

Define Details

LIST_PAPER_COLOR

key defines used when converting a paper to and fro' a data/json list. It's really important that they stay the same +lest we break persistence.

MAX_PAPER_INPUT_FIELD_LENGTH

Maximum length of input fields. Input fields greater than this length are clamped tgui-side. Input field text input greater than this length is rejected tgui-side, discarded + logged if it reaches DM-side.

MAX_PAPER_LENGTH

Maximimum number of characters that we allow on paper.

MAX_PAPER_STAMPS

Max number of stamps that can be applied to the paper in tgui.

MAX_PAPER_STAMPS_OVERLAYS

Max number of stamp overlays that we'll add to a piece of paper's icon.

MODE_READING

Should not be able to write on or stamp paper.

MODE_STAMPING

Should be able to stamp paper.

MODE_WRITING

Should be able to write on paper.

\ No newline at end of file diff --git a/code/__DEFINES/particles.html b/code/__DEFINES/particles.html new file mode 100644 index 0000000000000..3f2dbc620af41 --- /dev/null +++ b/code/__DEFINES/particles.html @@ -0,0 +1 @@ +code/__DEFINES/particles.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/particles.dm

PARTICLE_ATTACH_MOBIf we're inside something inside a mob, display off that mob too

Define Details

PARTICLE_ATTACH_MOB

If we're inside something inside a mob, display off that mob too

\ No newline at end of file diff --git a/code/__DEFINES/path.html b/code/__DEFINES/path.html new file mode 100644 index 0000000000000..695d67d43a681 --- /dev/null +++ b/code/__DEFINES/path.html @@ -0,0 +1,5 @@ +code/__DEFINES/path.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/path.dm

CANASTARPASS_DENSITYIf set, we make the assumption that CanAStarPass() will NEVER return FALSE unless density is true
CANASTARPASS_ALWAYS_PROCIf this is set, we bypass density checks and always call the proc
CAN_STEPA helper macro to see if it's possible to step from the first turf into the second one, minding things like door access and directional windows. +If you really want to optimize things, optimize this, cuz this gets called a lot. +We do early next.density check despite it being already checked in LinkBlockedWithAccess for short-circuit performance

Define Details

CANASTARPASS_ALWAYS_PROC

If this is set, we bypass density checks and always call the proc

CANASTARPASS_DENSITY

If set, we make the assumption that CanAStarPass() will NEVER return FALSE unless density is true

CAN_STEP

A helper macro to see if it's possible to step from the first turf into the second one, minding things like door access and directional windows. +If you really want to optimize things, optimize this, cuz this gets called a lot. +We do early next.density check despite it being already checked in LinkBlockedWithAccess for short-circuit performance

\ No newline at end of file diff --git a/code/__DEFINES/perf_test.html b/code/__DEFINES/perf_test.html new file mode 100644 index 0000000000000..e3f7367050da5 --- /dev/null +++ b/code/__DEFINES/perf_test.html @@ -0,0 +1,3 @@ +code/__DEFINES/perf_test.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/perf_test.dm

CONSUME_UNTILMacro that takes a tick usage to target, and proceses until we hit it +This lets us simulate generic load as we'd like, to make testing for overtime easier

Define Details

CONSUME_UNTIL

Macro that takes a tick usage to target, and proceses until we hit it +This lets us simulate generic load as we'd like, to make testing for overtime easier

\ No newline at end of file diff --git a/code/__DEFINES/plumbing.html b/code/__DEFINES/plumbing.html new file mode 100644 index 0000000000000..4dada40c39858 --- /dev/null +++ b/code/__DEFINES/plumbing.html @@ -0,0 +1 @@ +code/__DEFINES/plumbing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/plumbing.dm

DUCT_COLOR_OMNIName of omni color

Define Details

DUCT_COLOR_OMNI

Name of omni color

\ No newline at end of file diff --git a/code/__DEFINES/polls.html b/code/__DEFINES/polls.html new file mode 100644 index 0000000000000..070726e5c1652 --- /dev/null +++ b/code/__DEFINES/polls.html @@ -0,0 +1 @@ +code/__DEFINES/polls.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/polls.dm

POLL_RESPONSE_SIGNUPThe message sent when you sign up to a poll.
POLL_RESPONSE_ALREADY_SIGNEDThe message sent when you've already signed up for a poll and are trying to sign up again.
POLL_RESPONSE_NOT_SIGNEDThe message sent when you are not signed up for a poll.
POLL_RESPONSE_TOO_LATE_TO_UNREGISTERThe message sent when you are too late to unregister from a poll.
POLL_RESPONSE_UNREGISTEREDThe message sent when you successfully unregister from a poll.

Define Details

POLL_RESPONSE_ALREADY_SIGNED

The message sent when you've already signed up for a poll and are trying to sign up again.

POLL_RESPONSE_NOT_SIGNED

The message sent when you are not signed up for a poll.

POLL_RESPONSE_SIGNUP

The message sent when you sign up to a poll.

POLL_RESPONSE_TOO_LATE_TO_UNREGISTER

The message sent when you are too late to unregister from a poll.

POLL_RESPONSE_UNREGISTERED

The message sent when you successfully unregister from a poll.

\ No newline at end of file diff --git a/code/__DEFINES/power.html b/code/__DEFINES/power.html new file mode 100644 index 0000000000000..0a1898dc069e6 --- /dev/null +++ b/code/__DEFINES/power.html @@ -0,0 +1 @@ +code/__DEFINES/power.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/power.dm

WATTThe watt is the standard unit of power for this codebase. Do not change this.
JOULEThe joule is the standard unit of energy for this codebase. Do not change this.
WATTSThe watt is the standard unit of power for this codebase. You can use this with other defines to clarify that it will be multiplied by time.
JOULESThe joule is the standard unit of energy for this codebase. You can use this with other defines to clarify that it will not be multiplied by time.
STANDARD_CELL_VALUEThe capacity of a standard power cell
STANDARD_CELL_CHARGEThe amount of energy, in joules, a standard powercell has.
STANDARD_CELL_RATEThe amount of power, in watts, a standard powercell can give.
STANDARD_BATTERY_VALUECapacity of a standard battery
STANDARD_BATTERY_CHARGEThe amount of energy, in joules, a standard battery has.
STANDARD_BATTERY_RATEThe amount of energy, in watts, a standard battery can give.

Define Details

JOULE

The joule is the standard unit of energy for this codebase. Do not change this.

JOULES

The joule is the standard unit of energy for this codebase. You can use this with other defines to clarify that it will not be multiplied by time.

STANDARD_BATTERY_CHARGE

The amount of energy, in joules, a standard battery has.

STANDARD_BATTERY_RATE

The amount of energy, in watts, a standard battery can give.

STANDARD_BATTERY_VALUE

Capacity of a standard battery

STANDARD_CELL_CHARGE

The amount of energy, in joules, a standard powercell has.

STANDARD_CELL_RATE

The amount of power, in watts, a standard powercell can give.

STANDARD_CELL_VALUE

The capacity of a standard power cell

WATT

The watt is the standard unit of power for this codebase. Do not change this.

WATTS

The watt is the standard unit of power for this codebase. You can use this with other defines to clarify that it will be multiplied by time.

\ No newline at end of file diff --git a/code/__DEFINES/preferences.html b/code/__DEFINES/preferences.html new file mode 100644 index 0000000000000..357e2153e5772 --- /dev/null +++ b/code/__DEFINES/preferences.html @@ -0,0 +1,3 @@ +code/__DEFINES/preferences.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/preferences.dm

PREFERENCE_CHARACTERThis preference is character specific.
PREFERENCE_PLAYERThis preference is account specific.
PREFERENCE_TAB_CHARACTER_PREFERENCESOpen the character preference window
PREFERENCE_TAB_GAME_PREFERENCESOpen the game preferences window
PREFERENCE_TAB_KEYBINDINGSOpen the keybindings window
PREFERENCE_CATEGORY_FEATURESThese will be shown in the character sidebar, but at the bottom.
PREFERENCE_CATEGORY_CLOTHINGAny preferences that will show to the sides of the character in the setup menu.
PREFERENCE_CATEGORY_NON_CONTEXTUALPreferences that will be put into the 3rd list, and are not contextual.
PREFERENCE_CATEGORY_GAME_PREFERENCESWill be put under the game preferences window.
PREFERENCE_CATEGORY_SECONDARY_FEATURESThese will show in the list to the right of the character preview.
PREFERENCE_CATEGORY_SUPPLEMENTAL_FEATURESThese are preferences that are supplementary for main features, +such as hair color being affixed to hair.
PREFERENCE_CATEGORY_MANUALLY_RENDEREDThese preferences will not be rendered on the preferences page, and are practically invisible unless specifically rendered. Used for quirks, currently.
PLAYTIME_HARDCORE_RANDOMThe time needed to unlock hardcore random mode in preferences
PLAYTIME_VETERANThe time needed to unlock the gamer cloak in preferences
SPRITE_ACCESSORY_NONEThe key used for sprite accessories that should never actually be applied to the player.
DONT_GREYSCALEUsed to make something not recolorable even if it's capable
INFO_GREYSCALETracks GAGS color information
INFO_NAMEDUsed to set custom names
INFO_RESKINUsed for specific alt-reskins, like the pride pin
INFO_LAYERHandles which layer the item will be on, for accessories

Define Details

DONT_GREYSCALE

Used to make something not recolorable even if it's capable

INFO_GREYSCALE

Tracks GAGS color information

INFO_LAYER

Handles which layer the item will be on, for accessories

INFO_NAMED

Used to set custom names

INFO_RESKIN

Used for specific alt-reskins, like the pride pin

PLAYTIME_HARDCORE_RANDOM

The time needed to unlock hardcore random mode in preferences

PLAYTIME_VETERAN

The time needed to unlock the gamer cloak in preferences

PREFERENCE_CATEGORY_CLOTHING

Any preferences that will show to the sides of the character in the setup menu.

PREFERENCE_CATEGORY_FEATURES

These will be shown in the character sidebar, but at the bottom.

PREFERENCE_CATEGORY_GAME_PREFERENCES

Will be put under the game preferences window.

PREFERENCE_CATEGORY_MANUALLY_RENDERED

These preferences will not be rendered on the preferences page, and are practically invisible unless specifically rendered. Used for quirks, currently.

PREFERENCE_CATEGORY_NON_CONTEXTUAL

Preferences that will be put into the 3rd list, and are not contextual.

PREFERENCE_CATEGORY_SECONDARY_FEATURES

These will show in the list to the right of the character preview.

PREFERENCE_CATEGORY_SUPPLEMENTAL_FEATURES

These are preferences that are supplementary for main features, +such as hair color being affixed to hair.

PREFERENCE_CHARACTER

This preference is character specific.

PREFERENCE_PLAYER

This preference is account specific.

PREFERENCE_TAB_CHARACTER_PREFERENCES

Open the character preference window

PREFERENCE_TAB_GAME_PREFERENCES

Open the game preferences window

PREFERENCE_TAB_KEYBINDINGS

Open the keybindings window

SPRITE_ACCESSORY_NONE

The key used for sprite accessories that should never actually be applied to the player.

\ No newline at end of file diff --git a/code/__DEFINES/procpath.html b/code/__DEFINES/procpath.html new file mode 100644 index 0000000000000..17de6eb683b8c --- /dev/null +++ b/code/__DEFINES/procpath.html @@ -0,0 +1 @@ +code/__DEFINES/procpath.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__DEFINES/procpath.dm

/procpathRepresents a proc or verb path.
\ No newline at end of file diff --git a/code/__DEFINES/projectiles.html b/code/__DEFINES/projectiles.html new file mode 100644 index 0000000000000..df138b260a18d --- /dev/null +++ b/code/__DEFINES/projectiles.html @@ -0,0 +1,3 @@ +code/__DEFINES/projectiles.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/projectiles.dm

PROJECTILE_PIERCE_NONEDefault behavior: hit and delete self
PROJECTILE_PIERCE_HITHit the thing but go through without deleting. Causes on_hit to be called with pierced = TRUE
PROJECTILE_PIERCE_PHASEEntirely phase through the thing without ever hitting.
CALIBER_A7MMThe caliber used by the L6 SAW.
CALIBER_46X30MMThe caliber used by the security auto-rifle.
CALIBER_9MMThe caliber used by the Nanotrasen Saber SMG and Type U3 Uzi. Also used as the default caliber for pistols but only the stechkin APS machine pistol doesn't override it.
CALIBER_160SMARTThe caliber used by smart SMG ammunition
CALIBER_10MMThe caliber used as the default for ballistic guns. Only not overridden for the surplus rifle.
CALIBER_357The caliber used by most revolver variants.
CALIBER_38The caliber used by the detective's revolver.
CALIBER_45The caliber used by the C-20r SMG, the tommygun, and the M1911 pistol.
CALIBER_50BMGThe caliber used by sniper rifles.
CALIBER_50AEThe caliber used by the desert eagle.
CALIBER_75The caliber used by the gyrojet pistol.
CALIBER_N762The caliber used by one revolver variant.
CALIBER_A223The caliber used by the the M-90gl Carbine, and NT-ARG 'Boarder'.
CALIBER_STRILKA310The caliber used by bolt action rifles.
CALIBER_SHOTGUNThe caliber used by shotguns.
CALIBER_40MMThe caliber used by grenade launchers.
CALIBER_84MMThe caliber used by rocket launchers.
CALIBER_LASERThe caliber used by laser guns.
CALIBER_ENERGYThe caliber used by most energy guns.
CALIBER_FOAMThe acliber used by foam force and donksoft toy guns.
CALIBER_ARROWThe caliber used by the bow and arrow.
CALIBER_HARPOONThe caliber used by the harpoon gun.
CALIBER_REBARThe caliber used by the rebar crossbow.
CALIBER_REBAR_FORCEDThe caliber used by the rebar crossbow when forced to hold 2 rods.
CALIBER_REBAR_SYNDIEThe caliber used by the syndicate rebar crossbow.
CALIBER_HOOKThe caliber used by the meat hook.
CALIBER_TENTACLEThe caliber used by the changeling tentacle mutation.
CALIBER_JUNKThe caliber used by pipeguns and pipe pistols
GUNPOINT_SHOOTER_STRAY_RANGEFor gunpoints, how many tiles around the target the shooter can roam without losing their shot
PROJECTILE_DAMAGE_PER_ROBOTIC_SPARKA spark will be generated for each THIS amount of damage dealt to a robotic limb by a projectile.
STANDARD_ENERGY_GUN_SELF_CHARGE_RATEThe self charging rate of energy guns that magically recharge themselves, in watts.
LASER_SHOTSMacro to turn a number of laser shots into an energy cost, based on the above define +e.g. LASER_SHOTS(12, STANDARD_CELL_CHARGE) means 12 shots

Define Details

CALIBER_10MM

The caliber used as the default for ballistic guns. Only not overridden for the surplus rifle.

CALIBER_160SMART

The caliber used by smart SMG ammunition

CALIBER_357

The caliber used by most revolver variants.

CALIBER_38

The caliber used by the detective's revolver.

CALIBER_40MM

The caliber used by grenade launchers.

CALIBER_45

The caliber used by the C-20r SMG, the tommygun, and the M1911 pistol.

CALIBER_46X30MM

The caliber used by the security auto-rifle.

CALIBER_50AE

The caliber used by the desert eagle.

CALIBER_50BMG

The caliber used by sniper rifles.

CALIBER_75

The caliber used by the gyrojet pistol.

CALIBER_84MM

The caliber used by rocket launchers.

CALIBER_9MM

The caliber used by the Nanotrasen Saber SMG and Type U3 Uzi. Also used as the default caliber for pistols but only the stechkin APS machine pistol doesn't override it.

CALIBER_A223

The caliber used by the the M-90gl Carbine, and NT-ARG 'Boarder'.

CALIBER_A7MM

The caliber used by the L6 SAW.

CALIBER_ARROW

The caliber used by the bow and arrow.

CALIBER_ENERGY

The caliber used by most energy guns.

CALIBER_FOAM

The acliber used by foam force and donksoft toy guns.

CALIBER_HARPOON

The caliber used by the harpoon gun.

CALIBER_HOOK

The caliber used by the meat hook.

CALIBER_JUNK

The caliber used by pipeguns and pipe pistols

CALIBER_LASER

The caliber used by laser guns.

CALIBER_N762

The caliber used by one revolver variant.

CALIBER_REBAR

The caliber used by the rebar crossbow.

CALIBER_REBAR_FORCED

The caliber used by the rebar crossbow when forced to hold 2 rods.

CALIBER_REBAR_SYNDIE

The caliber used by the syndicate rebar crossbow.

CALIBER_SHOTGUN

The caliber used by shotguns.

CALIBER_STRILKA310

The caliber used by bolt action rifles.

CALIBER_TENTACLE

The caliber used by the changeling tentacle mutation.

GUNPOINT_SHOOTER_STRAY_RANGE

For gunpoints, how many tiles around the target the shooter can roam without losing their shot

LASER_SHOTS

Macro to turn a number of laser shots into an energy cost, based on the above define +e.g. LASER_SHOTS(12, STANDARD_CELL_CHARGE) means 12 shots

PROJECTILE_DAMAGE_PER_ROBOTIC_SPARK

A spark will be generated for each THIS amount of damage dealt to a robotic limb by a projectile.

PROJECTILE_PIERCE_HIT

Hit the thing but go through without deleting. Causes on_hit to be called with pierced = TRUE

PROJECTILE_PIERCE_NONE

Default behavior: hit and delete self

PROJECTILE_PIERCE_PHASE

Entirely phase through the thing without ever hitting.

STANDARD_ENERGY_GUN_SELF_CHARGE_RATE

The self charging rate of energy guns that magically recharge themselves, in watts.

\ No newline at end of file diff --git a/code/__DEFINES/pronouns.html b/code/__DEFINES/pronouns.html new file mode 100644 index 0000000000000..f173aff61e04d --- /dev/null +++ b/code/__DEFINES/pronouns.html @@ -0,0 +1,39 @@ +code/__DEFINES/pronouns.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/pronouns.dm

ALL_PRONOUNSshe, he, they, it "%PRONOUN_they" = "p_they" +She, He, They, It "%PRONOUN_They" = "p_They" +her, his, their, its "%PRONOUN_their" = "p_their" +Her, His, Their, Its "%PRONOUN_Their" = "p_Their" +hers, his, theirs, its "%PRONOUN_theirs" = "p_theirs" +Hers, His, Theirs, Its "%PRONOUN_Theirs" = "p_Theirs" +her, him, them, it "%PRONOUN_them" = "p_them" +Her, Him, Them, It "%PRONOUN_Them" = "p_Them" +has, have "%PRONOUN_have" = "p_have" +is, are "%PRONOUN_are" = "p_are" +was, were "%PRONOUN_were" = "p_were" +does, do "%PRONOUN_do" = "p_do" +she has, he has, they have, it has "%PRONOUN_theyve" = "p_theyve" +She has, He has, They have, It has "%PRONOUN_Theyve" = "p_Theyve" +she is, he is, they are, it is "%PRONOUN_theyre" = "p_theyre" +She is, He is, They are, It is "%PRONOUN_Theyre" = "p_Theyre" +s, null (she looks, they look) "%PRONOUN_s" = "p_s" +es, null (she goes, they go) "%PRONOUN_es" = "p_es" +Don't forget to update the grep if you add more! tools/ci/check_grep.sh -> pronoun helper spellcheck +A list for all the pronoun procs, if you need to iterate or search through it or something.

Define Details

ALL_PRONOUNS

she, he, they, it "%PRONOUN_they" = "p_they" +She, He, They, It "%PRONOUN_They" = "p_They" +her, his, their, its "%PRONOUN_their" = "p_their" +Her, His, Their, Its "%PRONOUN_Their" = "p_Their" +hers, his, theirs, its "%PRONOUN_theirs" = "p_theirs" +Hers, His, Theirs, Its "%PRONOUN_Theirs" = "p_Theirs" +her, him, them, it "%PRONOUN_them" = "p_them" +Her, Him, Them, It "%PRONOUN_Them" = "p_Them" +has, have "%PRONOUN_have" = "p_have" +is, are "%PRONOUN_are" = "p_are" +was, were "%PRONOUN_were" = "p_were" +does, do "%PRONOUN_do" = "p_do" +she has, he has, they have, it has "%PRONOUN_theyve" = "p_theyve" +She has, He has, They have, It has "%PRONOUN_Theyve" = "p_Theyve" +she is, he is, they are, it is "%PRONOUN_theyre" = "p_theyre" +She is, He is, They are, It is "%PRONOUN_Theyre" = "p_Theyre" +s, null (she looks, they look) "%PRONOUN_s" = "p_s" +es, null (she goes, they go) "%PRONOUN_es" = "p_es" +Don't forget to update the grep if you add more! tools/ci/check_grep.sh -> pronoun helper spellcheck +A list for all the pronoun procs, if you need to iterate or search through it or something.

\ No newline at end of file diff --git a/code/__DEFINES/qdel.html b/code/__DEFINES/qdel.html new file mode 100644 index 0000000000000..359cc5932965c --- /dev/null +++ b/code/__DEFINES/qdel.html @@ -0,0 +1,2 @@ +code/__DEFINES/qdel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/qdel.dm

Defines that give qdel hints.

+

These can be given as a return in /atom/proc/Destroy or by calling /proc/qdel.

QDEL_HINT_QUEUEqdel should queue the object for deletion.
QDEL_HINT_LETMELIVEqdel should let the object live after calling /atom/proc/Destroy.
QDEL_HINT_IWILLGCFunctionally the same as the above. qdel should assume the object will gc on its own, and not check it.
QDEL_HINT_HARDDELQdel should assume this object won't GC, and queue a hard delete using a hard reference.
GC_QUEUE_FILTERshort queue to filter out quick gc successes so they don't hang around in the main queue for 5 minutes
GC_QUEUE_CHECKmain queue that waits 5 minutes because thats the longest byond can hold a reference to our shit.
GC_QUEUE_HARDDELETEshort queue for things that hard delete instead of going thru the gc subsystem, this is purely so if they can softdelete, they will soft delete rather then wasting time with a hard delete.
GC_QUEUE_COUNTNumber of queues, used for allocating the nested lists. Don't forget to increase this if you add a new queue stage
GC_QUEUE_ITEM_QUEUE_TIMETime this item entered the queue
GC_QUEUE_ITEM_REFRef to the item
GC_QUEUE_ITEM_GCD_DESTROYEDItem's gc_destroyed var value. Used to detect ref reuse.
GC_QUEUE_ITEM_INDEX_COUNTNumber of item indexes, used for allocating the nested lists. Don't forget to increase this if you add a new queue item index
QDEL_ITEM_ADMINS_WARNEDSet when admins are told about lag causing qdels in this type.
QDEL_ITEM_SUSPENDED_FOR_LAGSet when a type can no longer be hard deleted on failure because of lag it causes while this happens.

Define Details

GC_QUEUE_CHECK

main queue that waits 5 minutes because thats the longest byond can hold a reference to our shit.

GC_QUEUE_COUNT

Number of queues, used for allocating the nested lists. Don't forget to increase this if you add a new queue stage

GC_QUEUE_FILTER

short queue to filter out quick gc successes so they don't hang around in the main queue for 5 minutes

GC_QUEUE_HARDDELETE

short queue for things that hard delete instead of going thru the gc subsystem, this is purely so if they can softdelete, they will soft delete rather then wasting time with a hard delete.

GC_QUEUE_ITEM_GCD_DESTROYED

Item's gc_destroyed var value. Used to detect ref reuse.

GC_QUEUE_ITEM_INDEX_COUNT

Number of item indexes, used for allocating the nested lists. Don't forget to increase this if you add a new queue item index

GC_QUEUE_ITEM_QUEUE_TIME

Time this item entered the queue

GC_QUEUE_ITEM_REF

Ref to the item

QDEL_HINT_HARDDEL

Qdel should assume this object won't GC, and queue a hard delete using a hard reference.

QDEL_HINT_IWILLGC

Functionally the same as the above. qdel should assume the object will gc on its own, and not check it.

QDEL_HINT_LETMELIVE

qdel should let the object live after calling /atom/proc/Destroy.

QDEL_HINT_QUEUE

qdel should queue the object for deletion.

QDEL_ITEM_ADMINS_WARNED

Set when admins are told about lag causing qdels in this type.

QDEL_ITEM_SUSPENDED_FOR_LAG

Set when a type can no longer be hard deleted on failure because of lag it causes while this happens.

\ No newline at end of file diff --git a/code/__DEFINES/quirks.html b/code/__DEFINES/quirks.html new file mode 100644 index 0000000000000..ec242159febca --- /dev/null +++ b/code/__DEFINES/quirks.html @@ -0,0 +1 @@ +code/__DEFINES/quirks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/quirks.dm

QUIRK_HUMAN_ONLYThis quirk can only be applied to humans
QUIRK_PROCESSESThis quirk processes on SSquirks (and should implement quirk process)
QUIRK_CHANGES_APPEARANCEThis quirk is has a visual aspect in that it changes how the player looks. Used in generating dummies.
QUIRK_MOODLET_BASEDThe only thing this quirk effects is mood so it should be disabled if mood is
QUIRK_HIDE_FROM_SCANThis quirk shouldn't be shown by health analyzers and hud, perhaps as considering it medical condition is a far stretch.

Define Details

QUIRK_CHANGES_APPEARANCE

This quirk is has a visual aspect in that it changes how the player looks. Used in generating dummies.

QUIRK_HIDE_FROM_SCAN

This quirk shouldn't be shown by health analyzers and hud, perhaps as considering it medical condition is a far stretch.

QUIRK_HUMAN_ONLY

This quirk can only be applied to humans

QUIRK_MOODLET_BASED

The only thing this quirk effects is mood so it should be disabled if mood is

QUIRK_PROCESSES

This quirk processes on SSquirks (and should implement quirk process)

\ No newline at end of file diff --git a/code/__DEFINES/radiation.html b/code/__DEFINES/radiation.html new file mode 100644 index 0000000000000..2c8de3fc39770 --- /dev/null +++ b/code/__DEFINES/radiation.html @@ -0,0 +1 @@ +code/__DEFINES/radiation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/radiation.dm

RAD_MOB_HAIRLOSSHow much stored radiation to check for hair loss
RAD_MOB_HAIRLOSS_PROBChance of you hair starting to fall out every second when over threshold
RAD_MOB_MUTATEHow much stored radiation to check for mutation
RAD_MOB_MUTATE_PROBChance of randomly mutating every second when over threshold
RAD_MOB_VOMITThe time since irradiated before checking for vomitting
RAD_MOB_VOMIT_PROBChance per second of vomitting
RAD_MOB_KNOCKDOWNHow much stored radiation to check for stunning
RAD_MOB_KNOCKDOWN_PROBChance of knockdown per second when over threshold
RAD_MOB_KNOCKDOWN_AMOUNTAmount of knockdown when it occurs
DEFAULT_RADIATION_CHANCEThe default chance something can be irradiated
URANIUM_IRRADIATION_CHANCEThe default chance for uranium structures to irradiate
URANIUM_RADIATION_MINIMUM_EXPOSURE_TIMEThe minimum exposure time before uranium structures can irradiate
NEBULA_RADIATION_MINIMUM_EXPOSURE_TIMEThe minimum exposure time before the radioactive nebula can irradiate
PERCEIVED_RADIATION_DANGER_LOWReturn values of [proc/get_perceived_radiation_danger]
TIME_WITHOUT_RADIATION_BEFORE_RESETThe time before geiger counters reset back to normal without any radiation pulses
RADIATION_EXPOSURE_NEBULA_BASE_CHANCEBase chance the nebula has of applying irradiation
RADIATION_EXPOSURE_NEBULA_CHANCE_INCREMENTThe chance we add to the base chance every time we fail to irradiate
RADIATION_EXPOSURE_NEBULA_CHECK_INTERVALTime it takes for the next irradiation check

Define Details

DEFAULT_RADIATION_CHANCE

The default chance something can be irradiated

NEBULA_RADIATION_MINIMUM_EXPOSURE_TIME

The minimum exposure time before the radioactive nebula can irradiate

PERCEIVED_RADIATION_DANGER_LOW

Return values of [proc/get_perceived_radiation_danger]

RADIATION_EXPOSURE_NEBULA_BASE_CHANCE

Base chance the nebula has of applying irradiation

RADIATION_EXPOSURE_NEBULA_CHANCE_INCREMENT

The chance we add to the base chance every time we fail to irradiate

RADIATION_EXPOSURE_NEBULA_CHECK_INTERVAL

Time it takes for the next irradiation check

RAD_MOB_HAIRLOSS

How much stored radiation to check for hair loss

RAD_MOB_HAIRLOSS_PROB

Chance of you hair starting to fall out every second when over threshold

RAD_MOB_KNOCKDOWN

How much stored radiation to check for stunning

RAD_MOB_KNOCKDOWN_AMOUNT

Amount of knockdown when it occurs

RAD_MOB_KNOCKDOWN_PROB

Chance of knockdown per second when over threshold

RAD_MOB_MUTATE

How much stored radiation to check for mutation

RAD_MOB_MUTATE_PROB

Chance of randomly mutating every second when over threshold

RAD_MOB_VOMIT

The time since irradiated before checking for vomitting

RAD_MOB_VOMIT_PROB

Chance per second of vomitting

TIME_WITHOUT_RADIATION_BEFORE_RESET

The time before geiger counters reset back to normal without any radiation pulses

URANIUM_IRRADIATION_CHANCE

The default chance for uranium structures to irradiate

URANIUM_RADIATION_MINIMUM_EXPOSURE_TIME

The minimum exposure time before uranium structures can irradiate

\ No newline at end of file diff --git a/code/__DEFINES/radio.html b/code/__DEFINES/radio.html new file mode 100644 index 0000000000000..e826f819bf926 --- /dev/null +++ b/code/__DEFINES/radio.html @@ -0,0 +1 @@ +code/__DEFINES/radio.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/radio.dm

RADIO_NO_Z_LEVEL_RESTRICTIONgive this to can_receive to specify that there is no restriction on what z level this signal is sent to
RADIO_FREQENCY_UNLOCKEDRadio frequency is unlocked and can be ajusted by anyone
RADIO_FREQENCY_LOCKEDRadio frequency is locked, unchangeable by players
RADIO_FREQENCY_EMAGGABLE_LOCKRadio frequency is locked and unchangeable, but can be unlocked by an emag
RADIO_SPECIAL_SYNDIEBitflag for if a headset can use the syndicate radio channel
RADIO_SPECIAL_CENTCOMBitflag for if a headset can use the centcom radio channel
RADIO_SPECIAL_BINARYBitflag for if a headset can use the binary radio channel

Define Details

RADIO_FREQENCY_EMAGGABLE_LOCK

Radio frequency is locked and unchangeable, but can be unlocked by an emag

RADIO_FREQENCY_LOCKED

Radio frequency is locked, unchangeable by players

RADIO_FREQENCY_UNLOCKED

Radio frequency is unlocked and can be ajusted by anyone

RADIO_NO_Z_LEVEL_RESTRICTION

give this to can_receive to specify that there is no restriction on what z level this signal is sent to

RADIO_SPECIAL_BINARY

Bitflag for if a headset can use the binary radio channel

RADIO_SPECIAL_CENTCOM

Bitflag for if a headset can use the centcom radio channel

RADIO_SPECIAL_SYNDIE

Bitflag for if a headset can use the syndicate radio channel

\ No newline at end of file diff --git a/code/__DEFINES/radioactive_nebula.html b/code/__DEFINES/radioactive_nebula.html new file mode 100644 index 0000000000000..df9f8696ad59f --- /dev/null +++ b/code/__DEFINES/radioactive_nebula.html @@ -0,0 +1 @@ +code/__DEFINES/radioactive_nebula.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/radioactive_nebula.dm

GLOW_NEBULAName of the glow we use for the radioation effect outside

Define Details

GLOW_NEBULA

Name of the glow we use for the radioation effect outside

\ No newline at end of file diff --git a/code/__DEFINES/random_spawner.html b/code/__DEFINES/random_spawner.html new file mode 100644 index 0000000000000..88933034c61dc --- /dev/null +++ b/code/__DEFINES/random_spawner.html @@ -0,0 +1 @@ +code/__DEFINES/random_spawner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/random_spawner.dm

BEDSHEET_SINGLEUsed by bedsheets spawners to tell if it's a single or double bedsheet.

Define Details

BEDSHEET_SINGLE

Used by bedsheets spawners to tell if it's a single or double bedsheet.

\ No newline at end of file diff --git a/code/__DEFINES/reactions.html b/code/__DEFINES/reactions.html new file mode 100644 index 0000000000000..a9653fa3dcb40 --- /dev/null +++ b/code/__DEFINES/reactions.html @@ -0,0 +1 @@ +code/__DEFINES/reactions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/reactions.dm

PRIORITY_PRE_FORMATIONThe prority used to indicate that a reaction should run immediately at the start of a reaction cycle. Currently used by a jumble of decomposition reactions and purgative reactions.
PRIORITY_FORMATIONThe priority used for reactions that produce a useful or more advanced product. Goes after purgative reactions so that the purgers can be slightly more useful.
PRIORITY_POST_FORMATIONThe priority used for indicate that a reactions should run immediately before most forms of combustion. Used by two decomposition reactions and steam condensation.
PRIORITY_FIREThe priority used to indicate that a reactions should run after all other types of reactions. Exclusively used for combustion reactions that produce fire or are freon.
ATMOS_RADIATION_VOLUME_EXPAn exponent used to make large volume gas mixtures significantly less likely to release rads. Used to prevent tritfires in distro from irradiating literally the entire station with no warning.
GAS_REACTION_MAXIMUM_RADIATION_PULSE_RANGEMaximum range a radiation pulse is allowed to be from a gas reaction.
WATER_VAPOR_CONDENSATION_POINTThe temperature required for water vapor to condense.
WATER_VAPOR_DEPOSITION_POINTThe temperature required for water vapor to condense as ice instead of water.
MIASTER_STERILIZATION_TEMPThe minimum temperature miasma begins being sterilized at.
MIASTER_STERILIZATION_MAX_HUMIDITYThe maximum ratio of water vapor to other gases miasma can be sterilized at.
MIASTER_STERILIZATION_RATE_BASEThe minimum amount of miasma that will be sterilized in a reaction tick.
MIASTER_STERILIZATION_RATE_SCALEThe temperature required to sterilize an additional mole of miasma in a reaction tick.
MIASTER_STERILIZATION_ENERGYThe amount of energy released when a mole of miasma is sterilized.
FIRE_CARBON_ENERGY_RELEASEDAmount of heat released per mole of burnt carbon into the tile
PLASMA_MINIMUM_BURN_TEMPERATUREMinimum temperature to burn plasma
PLASMA_UPPER_TEMPERATUREUpper temperature ceiling for plasmafire reaction calculations for fuel consumption
OXYGEN_BURN_RATIO_BASEThe maximum and default amount of plasma consumed as oxydizer per mole of plasma burnt.
PLASMA_OXYGEN_FULLBURNMultiplier for plasmafire with O2 moles * PLASMA_OXYGEN_FULLBURN for the maximum fuel consumption
SUPER_SATURATION_THRESHOLDThe minimum ratio of oxygen to plasma necessary to start producing tritium.
PLASMA_BURN_RATE_DELTAThe divisor for the maximum plasma burn rate. (1/9 of the plasma can burn in one reaction tick.)
FIRE_PLASMA_ENERGY_RELEASEDAmount of heat released per mole of burnt plasma into the tile
HYDROGEN_MINIMUM_BURN_TEMPERATUREThe minimum temperature hydrogen combusts at.
FIRE_HYDROGEN_ENERGY_RELEASEDThe amount of energy released by burning one mole of hydrogen.
HYDROGEN_OXYGEN_FULLBURNMultiplier for hydrogen fire with O2 moles * HYDROGEN_OXYGEN_FULLBURN for the maximum fuel consumption
FIRE_HYDROGEN_BURN_RATE_DELTAThe divisor for the maximum hydrogen burn rate. (1/2 of the hydrogen can burn in one reaction tick.)
TRITIUM_MINIMUM_BURN_TEMPERATUREThe minimum temperature tritium combusts at.
FIRE_TRITIUM_ENERGY_RELEASEDThe amount of energy released by burning one mole of tritium.
TRITIUM_OXYGEN_FULLBURNMultiplier for TRITIUM fire with O2 moles * TRITIUM_OXYGEN_FULLBURN for the maximum fuel consumption
FIRE_TRITIUM_BURN_RATE_DELTAThe divisor for the maximum tritium burn rate. (1/2 of the tritium can burn in one reaction tick.)
TRITIUM_RADIATION_MINIMUM_MOLESThe minimum number of moles of trit that must be burnt for a tritium fire reaction to produce a radiation pulse. (0.01 moles trit or 10 moles oxygen to start producing rads.)
TRITIUM_RADIATION_RELEASE_THRESHOLDThe minimum released energy necessary for tritium to release radiation during combustion. (at a mix volume of CELL_VOLUME).
TRITIUM_RADIATION_RANGE_DIVISORA scaling factor for the range of radiation pulses produced by tritium fires.
TRITIUM_RADIATION_THRESHOLDThe threshold of the tritium combustion's radiation. Lower values means it will be able to penetrate through more structures.
FREON_MAXIMUM_BURN_TEMPERATUREThe maximum temperature freon can combust at.
FREON_LOWER_TEMPERATUREMinimum temperature allowed for the burn to go at max speed, we would have negative pressure otherwise
FREON_TERMINAL_TEMPERATURETerminal temperature after which we stop the reaction
FREON_OXYGEN_FULLBURNMultiplier for freonfire with O2 moles * FREON_OXYGEN_FULLBURN for the maximum fuel consumption
FREON_BURN_RATE_DELTAThe maximum fraction of the freon in a mix that can combust each reaction tick.
FIRE_FREON_ENERGY_CONSUMEDThe amount of heat absorbed per mole of freon burnt.
HOT_ICE_FORMATION_MAXIMUM_TEMPERATUREThe maximum temperature at which freon combustion can form hot ice.
HOT_ICE_FORMATION_MINIMUM_TEMPERATUREThe minimum temperature at which freon combustion can form hot ice.
HOT_ICE_FORMATION_PROBThe chance for hot ice to form when freon reacts on a turf.
N2O_FORMATION_MIN_TEMPERATUREThe minimum temperature N2O can form from nitrogen and oxygen in the presence of BZ at.
N2O_FORMATION_MAX_TEMPERATUREThe maximum temperature N2O can form from nitrogen and oxygen in the presence of BZ at.
N2O_FORMATION_ENERGYThe amount of energy released when a mole of N2O forms from nitrogen and oxygen in the presence of BZ.
N2O_DECOMPOSITION_MIN_TEMPERATUREThe minimum temperature N2O can decompose at.
N2O_DECOMPOSITION_MAX_TEMPERATUREThe maximum temperature N2O can decompose at.
N2O_DECOMPOSITION_RATE_DIVISORThe maximum portion of the N2O that can decompose each reaction tick. (50%)
N2O_DECOMPOSITION_MIN_SCALE_TEMPOne root of the parabola used to scale N2O decomposition rates.
N2O_DECOMPOSITION_MAX_SCALE_TEMPThe other root of the parabola used to scale N2O decomposition rates.
N2O_DECOMPOSITION_SCALE_DIVISORThe divisor used to normalize the N2O decomp scaling parabola. Basically the value of the apex/nadir of (x - N2O_DECOMPOSITION_MIN_SCALE_TEMP) * (x - N2O_DECOMPOSITION_MAX_SCALE_TEMP).
N2O_DECOMPOSITION_ENERGYThe amount of energy released when one mole of N2O decomposes into nitrogen and oxygen.
BZ_FORMATION_MAX_TEMPERATUREThe maximum temperature BZ can form at. Deliberately set lower than the minimum burn temperature for most combustible gases in an attempt to prevent long fuse singlecaps.
BZ_FORMATION_ENERGYThe amount of energy 1 mole of BZ forming from N2O and plasma releases.
PLUOXIUM_FORMATION_MIN_TEMPThe minimum temperature pluoxium can form from carbon dioxide, oxygen, and tritium at.
PLUOXIUM_FORMATION_MAX_TEMPThe maximum temperature pluoxium can form from carbon dioxide, oxygen, and tritium at.
PLUOXIUM_FORMATION_MAX_RATEThe maximum amount of pluoxium that can form from carbon dioxide, oxygen, and tritium per reaction tick.
PLUOXIUM_FORMATION_ENERGYThe amount of energy one mole of pluoxium forming from carbon dioxide, oxygen, and tritium releases.
NITRIUM_FORMATION_MIN_TEMPThe minimum temperature necessary for nitrium to form from tritium, nitrogen, and BZ.
NITRIUM_FORMATION_TEMP_DIVISORA scaling divisor for the rate of nitrium formation relative to mix temperature.
NITRIUM_FORMATION_ENERGYThe amount of thermal energy consumed when a mole of nitrium is formed from tritium, nitrogen, and BZ.
NITRIUM_DECOMPOSITION_MAX_TEMPThe maximum temperature nitrium can decompose into nitrogen and hydrogen at.
NITRIUM_DECOMPOSITION_TEMP_DIVISORA scaling divisor for the rate of nitrium decomposition relative to mix temperature.
NITRIUM_DECOMPOSITION_ENERGYThe amount of energy released when a mole of nitrium decomposes into nitrogen and hydrogen.
FREON_FORMATION_MIN_TEMPERATUREThe minimum temperature freon can form from plasma, CO2, and BZ at.
FREON_FORMATION_ENERGYThe amount of energy 2.5 moles of freon forming from plasma, CO2, and BZ consumes.
NOBLIUM_FORMATION_MIN_TEMPThe maximum temperature hyper-noblium can form from tritium and nitrogen at.
NOBLIUM_FORMATION_MAX_TEMPThe maximum temperature hyper-noblium can form from tritium and nitrogen at.
NOBLIUM_FORMATION_ENERGYThe amount of energy a single mole of hyper-noblium forming from tritium and nitrogen releases.
REACTION_OPPRESSION_THRESHOLDThe number of moles of hyper-noblium required to prevent reactions.
HALON_FORMATION_ENERGYEnergy released per mole of BZ consumed during halon formation.
HALON_COMBUSTION_ENERGYHow much energy a mole of halon combusting consumes.
HALON_COMBUSTION_MIN_TEMPERATUREThe minimum temperature required for halon to combust.
HALON_COMBUSTION_TEMPERATURE_SCALEThe temperature scale for halon combustion reaction rate.
HALON_COMBUSTION_MINIMUM_RESIN_MOLESAmount of halon required to be consumed in order to release resin. This is always possible as long as there's enough gas.
HALON_COMBUSTION_RESIN_VOLUMEThe volume of the resin foam fluid when halon combusts, in turfs.
HEALIUM_FORMATION_MIN_TEMPThe minimum temperature healium can form from BZ and freon at.
HEALIUM_FORMATION_MAX_TEMPThe maximum temperature healium can form from BZ and freon at.
HEALIUM_FORMATION_ENERGYThe amount of energy three moles of healium forming from BZ and freon releases.
ZAUKER_FORMATION_MIN_TEMPERATUREThe minimum temperature zauker can form from hyper-noblium and nitrium at.
ZAUKER_FORMATION_MAX_TEMPERATUREThe maximum temperature zauker can form from hyper-noblium and nitrium at.
ZAUKER_FORMATION_TEMPERATURE_SCALEThe temperature scaling factor for zauker formation. At most this many moles of zauker can form per reaction tick per kelvin.
ZAUKER_FORMATION_ENERGYThe amount of energy half a mole of zauker forming from hypernoblium and nitrium consumes.
ZAUKER_DECOMPOSITION_MAX_RATEThe maximum number of moles of zauker that can decompose per reaction tick.
ZAUKER_DECOMPOSITION_ENERGYThe amount of energy a mole of zauker decomposing in the presence of nitrogen releases.
PN_FORMATION_MIN_TEMPERATUREThe minimum temperature proto-nitrate can form from pluoxium and hydrogen at.
PN_FORMATION_MAX_TEMPERATUREThe maximum temperature proto-nitrate can form from pluoxium and hydrogen at.
PN_FORMATION_TEMPERATURE_SCALEThe temperature scaling factor for proto-nitrate formation. At most this many moles of zauker can form per reaction tick per kelvin.
PN_FORMATION_ENERGYThe amount of energy 2.2 moles of proto-nitrate forming from pluoxium and hydrogen releases.
PN_HYDROGEN_CONVERSION_THRESHOLDThe amount of hydrogen necessary for proto-nitrate to start converting it to more proto-nitrate.
PN_HYDROGEN_CONVERSION_MAX_RATEThe maximum number of moles of hydrogen that can be converted into proto-nitrate in a single reaction tick.
PN_HYDROGEN_CONVERSION_ENERGYThe amount of energy converting a mole of hydrogen into half a mole of proto-nitrate consumes.
PN_TRITIUM_CONVERSION_MIN_TEMPThe minimum temperature proto-nitrate can convert tritium to hydrogen at.
PN_TRITIUM_CONVERSION_MAX_TEMPThe maximum temperature proto-nitrate can convert tritium to hydrogen at.
PN_TRITIUM_CONVERSION_ENERGYThe amount of energy proto-nitrate converting a mole of tritium into hydrogen releases.
PN_TRITIUM_CONVERSION_RAD_RELEASE_THRESHOLDThe minimum released energy necessary for proto-nitrate to release radiation when converting tritium. (With a reaction vessel volume of CELL_VOLUME)
PN_TRITIUM_RAD_RANGE_DIVISORA scaling factor for the range of the radiation pulses generated when proto-nitrate converts tritium to hydrogen.
PN_TRITIUM_RAD_THRESHOLDThe threshold of the radiation pulse released when proto-nitrate converts tritium into hydrogen. Lower values means it will be able to penetrate through more structures.
PN_BZASE_MIN_TEMPThe minimum temperature proto-nitrate can break BZ down at.
PN_BZASE_MAX_TEMPThe maximum temperature proto-nitrate can break BZ down at.
PN_BZASE_ENERGYThe amount of energy proto-nitrate breaking down a mole of BZ releases.
PN_BZASE_RAD_RELEASE_THRESHOLDThe minimum released energy necessary for proto-nitrate to release rads when breaking down BZ (at a mix volume of CELL_VOLUME).
PN_BZASE_RAD_RANGE_DIVISORA scaling factor for the range of the radiation pulses generated when proto-nitrate breaks down BZ.
PN_BZASE_RAD_THRESHOLDThe threshold of the radiation pulse released when proto-nitrate breaks down BZ. Lower values means it will be able to penetrate through more structures.
PN_BZASE_NUCLEAR_PARTICLE_DIVISORA scaling factor for the nuclear particle production generated when proto-nitrate breaks down BZ.
PN_BZASE_NUCLEAR_PARTICLE_MAXIMUMThe maximum amount of nuclear particles that can be produced from proto-nitrate breaking down BZ.
PN_BZASE_NUCLEAR_PARTICLE_RADIATION_ENERGY_CONVERSIONHow much radiation in consumed amount does a nuclear particle take from radiation when proto-nitrate breaks down BZ.

Define Details

ATMOS_RADIATION_VOLUME_EXP

An exponent used to make large volume gas mixtures significantly less likely to release rads. Used to prevent tritfires in distro from irradiating literally the entire station with no warning.

BZ_FORMATION_ENERGY

The amount of energy 1 mole of BZ forming from N2O and plasma releases.

BZ_FORMATION_MAX_TEMPERATURE

The maximum temperature BZ can form at. Deliberately set lower than the minimum burn temperature for most combustible gases in an attempt to prevent long fuse singlecaps.

FIRE_CARBON_ENERGY_RELEASED

Amount of heat released per mole of burnt carbon into the tile

FIRE_FREON_ENERGY_CONSUMED

The amount of heat absorbed per mole of freon burnt.

FIRE_HYDROGEN_BURN_RATE_DELTA

The divisor for the maximum hydrogen burn rate. (1/2 of the hydrogen can burn in one reaction tick.)

FIRE_HYDROGEN_ENERGY_RELEASED

The amount of energy released by burning one mole of hydrogen.

FIRE_PLASMA_ENERGY_RELEASED

Amount of heat released per mole of burnt plasma into the tile

FIRE_TRITIUM_BURN_RATE_DELTA

The divisor for the maximum tritium burn rate. (1/2 of the tritium can burn in one reaction tick.)

FIRE_TRITIUM_ENERGY_RELEASED

The amount of energy released by burning one mole of tritium.

FREON_BURN_RATE_DELTA

The maximum fraction of the freon in a mix that can combust each reaction tick.

FREON_FORMATION_ENERGY

The amount of energy 2.5 moles of freon forming from plasma, CO2, and BZ consumes.

FREON_FORMATION_MIN_TEMPERATURE

The minimum temperature freon can form from plasma, CO2, and BZ at.

FREON_LOWER_TEMPERATURE

Minimum temperature allowed for the burn to go at max speed, we would have negative pressure otherwise

FREON_MAXIMUM_BURN_TEMPERATURE

The maximum temperature freon can combust at.

FREON_OXYGEN_FULLBURN

Multiplier for freonfire with O2 moles * FREON_OXYGEN_FULLBURN for the maximum fuel consumption

FREON_TERMINAL_TEMPERATURE

Terminal temperature after which we stop the reaction

GAS_REACTION_MAXIMUM_RADIATION_PULSE_RANGE

Maximum range a radiation pulse is allowed to be from a gas reaction.

HALON_COMBUSTION_ENERGY

How much energy a mole of halon combusting consumes.

HALON_COMBUSTION_MINIMUM_RESIN_MOLES

Amount of halon required to be consumed in order to release resin. This is always possible as long as there's enough gas.

HALON_COMBUSTION_MIN_TEMPERATURE

The minimum temperature required for halon to combust.

HALON_COMBUSTION_RESIN_VOLUME

The volume of the resin foam fluid when halon combusts, in turfs.

HALON_COMBUSTION_TEMPERATURE_SCALE

The temperature scale for halon combustion reaction rate.

HALON_FORMATION_ENERGY

Energy released per mole of BZ consumed during halon formation.

HEALIUM_FORMATION_ENERGY

The amount of energy three moles of healium forming from BZ and freon releases.

HEALIUM_FORMATION_MAX_TEMP

The maximum temperature healium can form from BZ and freon at.

HEALIUM_FORMATION_MIN_TEMP

The minimum temperature healium can form from BZ and freon at.

HOT_ICE_FORMATION_MAXIMUM_TEMPERATURE

The maximum temperature at which freon combustion can form hot ice.

HOT_ICE_FORMATION_MINIMUM_TEMPERATURE

The minimum temperature at which freon combustion can form hot ice.

HOT_ICE_FORMATION_PROB

The chance for hot ice to form when freon reacts on a turf.

HYDROGEN_MINIMUM_BURN_TEMPERATURE

The minimum temperature hydrogen combusts at.

HYDROGEN_OXYGEN_FULLBURN

Multiplier for hydrogen fire with O2 moles * HYDROGEN_OXYGEN_FULLBURN for the maximum fuel consumption

MIASTER_STERILIZATION_ENERGY

The amount of energy released when a mole of miasma is sterilized.

MIASTER_STERILIZATION_MAX_HUMIDITY

The maximum ratio of water vapor to other gases miasma can be sterilized at.

MIASTER_STERILIZATION_RATE_BASE

The minimum amount of miasma that will be sterilized in a reaction tick.

MIASTER_STERILIZATION_RATE_SCALE

The temperature required to sterilize an additional mole of miasma in a reaction tick.

MIASTER_STERILIZATION_TEMP

The minimum temperature miasma begins being sterilized at.

N2O_DECOMPOSITION_ENERGY

The amount of energy released when one mole of N2O decomposes into nitrogen and oxygen.

N2O_DECOMPOSITION_MAX_SCALE_TEMP

The other root of the parabola used to scale N2O decomposition rates.

N2O_DECOMPOSITION_MAX_TEMPERATURE

The maximum temperature N2O can decompose at.

N2O_DECOMPOSITION_MIN_SCALE_TEMP

One root of the parabola used to scale N2O decomposition rates.

N2O_DECOMPOSITION_MIN_TEMPERATURE

The minimum temperature N2O can decompose at.

N2O_DECOMPOSITION_RATE_DIVISOR

The maximum portion of the N2O that can decompose each reaction tick. (50%)

N2O_DECOMPOSITION_SCALE_DIVISOR

The divisor used to normalize the N2O decomp scaling parabola. Basically the value of the apex/nadir of (x - N2O_DECOMPOSITION_MIN_SCALE_TEMP) * (x - N2O_DECOMPOSITION_MAX_SCALE_TEMP).

N2O_FORMATION_ENERGY

The amount of energy released when a mole of N2O forms from nitrogen and oxygen in the presence of BZ.

N2O_FORMATION_MAX_TEMPERATURE

The maximum temperature N2O can form from nitrogen and oxygen in the presence of BZ at.

N2O_FORMATION_MIN_TEMPERATURE

The minimum temperature N2O can form from nitrogen and oxygen in the presence of BZ at.

NITRIUM_DECOMPOSITION_ENERGY

The amount of energy released when a mole of nitrium decomposes into nitrogen and hydrogen.

NITRIUM_DECOMPOSITION_MAX_TEMP

The maximum temperature nitrium can decompose into nitrogen and hydrogen at.

NITRIUM_DECOMPOSITION_TEMP_DIVISOR

A scaling divisor for the rate of nitrium decomposition relative to mix temperature.

NITRIUM_FORMATION_ENERGY

The amount of thermal energy consumed when a mole of nitrium is formed from tritium, nitrogen, and BZ.

NITRIUM_FORMATION_MIN_TEMP

The minimum temperature necessary for nitrium to form from tritium, nitrogen, and BZ.

NITRIUM_FORMATION_TEMP_DIVISOR

A scaling divisor for the rate of nitrium formation relative to mix temperature.

NOBLIUM_FORMATION_ENERGY

The amount of energy a single mole of hyper-noblium forming from tritium and nitrogen releases.

NOBLIUM_FORMATION_MAX_TEMP

The maximum temperature hyper-noblium can form from tritium and nitrogen at.

NOBLIUM_FORMATION_MIN_TEMP

The maximum temperature hyper-noblium can form from tritium and nitrogen at.

OXYGEN_BURN_RATIO_BASE

The maximum and default amount of plasma consumed as oxydizer per mole of plasma burnt.

PLASMA_BURN_RATE_DELTA

The divisor for the maximum plasma burn rate. (1/9 of the plasma can burn in one reaction tick.)

PLASMA_MINIMUM_BURN_TEMPERATURE

Minimum temperature to burn plasma

PLASMA_OXYGEN_FULLBURN

Multiplier for plasmafire with O2 moles * PLASMA_OXYGEN_FULLBURN for the maximum fuel consumption

PLASMA_UPPER_TEMPERATURE

Upper temperature ceiling for plasmafire reaction calculations for fuel consumption

PLUOXIUM_FORMATION_ENERGY

The amount of energy one mole of pluoxium forming from carbon dioxide, oxygen, and tritium releases.

PLUOXIUM_FORMATION_MAX_RATE

The maximum amount of pluoxium that can form from carbon dioxide, oxygen, and tritium per reaction tick.

PLUOXIUM_FORMATION_MAX_TEMP

The maximum temperature pluoxium can form from carbon dioxide, oxygen, and tritium at.

PLUOXIUM_FORMATION_MIN_TEMP

The minimum temperature pluoxium can form from carbon dioxide, oxygen, and tritium at.

PN_BZASE_ENERGY

The amount of energy proto-nitrate breaking down a mole of BZ releases.

PN_BZASE_MAX_TEMP

The maximum temperature proto-nitrate can break BZ down at.

PN_BZASE_MIN_TEMP

The minimum temperature proto-nitrate can break BZ down at.

PN_BZASE_NUCLEAR_PARTICLE_DIVISOR

A scaling factor for the nuclear particle production generated when proto-nitrate breaks down BZ.

PN_BZASE_NUCLEAR_PARTICLE_MAXIMUM

The maximum amount of nuclear particles that can be produced from proto-nitrate breaking down BZ.

PN_BZASE_NUCLEAR_PARTICLE_RADIATION_ENERGY_CONVERSION

How much radiation in consumed amount does a nuclear particle take from radiation when proto-nitrate breaks down BZ.

PN_BZASE_RAD_RANGE_DIVISOR

A scaling factor for the range of the radiation pulses generated when proto-nitrate breaks down BZ.

PN_BZASE_RAD_RELEASE_THRESHOLD

The minimum released energy necessary for proto-nitrate to release rads when breaking down BZ (at a mix volume of CELL_VOLUME).

PN_BZASE_RAD_THRESHOLD

The threshold of the radiation pulse released when proto-nitrate breaks down BZ. Lower values means it will be able to penetrate through more structures.

PN_FORMATION_ENERGY

The amount of energy 2.2 moles of proto-nitrate forming from pluoxium and hydrogen releases.

PN_FORMATION_MAX_TEMPERATURE

The maximum temperature proto-nitrate can form from pluoxium and hydrogen at.

PN_FORMATION_MIN_TEMPERATURE

The minimum temperature proto-nitrate can form from pluoxium and hydrogen at.

PN_FORMATION_TEMPERATURE_SCALE

The temperature scaling factor for proto-nitrate formation. At most this many moles of zauker can form per reaction tick per kelvin.

PN_HYDROGEN_CONVERSION_ENERGY

The amount of energy converting a mole of hydrogen into half a mole of proto-nitrate consumes.

PN_HYDROGEN_CONVERSION_MAX_RATE

The maximum number of moles of hydrogen that can be converted into proto-nitrate in a single reaction tick.

PN_HYDROGEN_CONVERSION_THRESHOLD

The amount of hydrogen necessary for proto-nitrate to start converting it to more proto-nitrate.

PN_TRITIUM_CONVERSION_ENERGY

The amount of energy proto-nitrate converting a mole of tritium into hydrogen releases.

PN_TRITIUM_CONVERSION_MAX_TEMP

The maximum temperature proto-nitrate can convert tritium to hydrogen at.

PN_TRITIUM_CONVERSION_MIN_TEMP

The minimum temperature proto-nitrate can convert tritium to hydrogen at.

PN_TRITIUM_CONVERSION_RAD_RELEASE_THRESHOLD

The minimum released energy necessary for proto-nitrate to release radiation when converting tritium. (With a reaction vessel volume of CELL_VOLUME)

PN_TRITIUM_RAD_RANGE_DIVISOR

A scaling factor for the range of the radiation pulses generated when proto-nitrate converts tritium to hydrogen.

PN_TRITIUM_RAD_THRESHOLD

The threshold of the radiation pulse released when proto-nitrate converts tritium into hydrogen. Lower values means it will be able to penetrate through more structures.

PRIORITY_FIRE

The priority used to indicate that a reactions should run after all other types of reactions. Exclusively used for combustion reactions that produce fire or are freon.

PRIORITY_FORMATION

The priority used for reactions that produce a useful or more advanced product. Goes after purgative reactions so that the purgers can be slightly more useful.

PRIORITY_POST_FORMATION

The priority used for indicate that a reactions should run immediately before most forms of combustion. Used by two decomposition reactions and steam condensation.

PRIORITY_PRE_FORMATION

The prority used to indicate that a reaction should run immediately at the start of a reaction cycle. Currently used by a jumble of decomposition reactions and purgative reactions.

REACTION_OPPRESSION_THRESHOLD

The number of moles of hyper-noblium required to prevent reactions.

SUPER_SATURATION_THRESHOLD

The minimum ratio of oxygen to plasma necessary to start producing tritium.

TRITIUM_MINIMUM_BURN_TEMPERATURE

The minimum temperature tritium combusts at.

TRITIUM_OXYGEN_FULLBURN

Multiplier for TRITIUM fire with O2 moles * TRITIUM_OXYGEN_FULLBURN for the maximum fuel consumption

TRITIUM_RADIATION_MINIMUM_MOLES

The minimum number of moles of trit that must be burnt for a tritium fire reaction to produce a radiation pulse. (0.01 moles trit or 10 moles oxygen to start producing rads.)

TRITIUM_RADIATION_RANGE_DIVISOR

A scaling factor for the range of radiation pulses produced by tritium fires.

TRITIUM_RADIATION_RELEASE_THRESHOLD

The minimum released energy necessary for tritium to release radiation during combustion. (at a mix volume of CELL_VOLUME).

TRITIUM_RADIATION_THRESHOLD

The threshold of the tritium combustion's radiation. Lower values means it will be able to penetrate through more structures.

WATER_VAPOR_CONDENSATION_POINT

The temperature required for water vapor to condense.

WATER_VAPOR_DEPOSITION_POINT

The temperature required for water vapor to condense as ice instead of water.

ZAUKER_DECOMPOSITION_ENERGY

The amount of energy a mole of zauker decomposing in the presence of nitrogen releases.

ZAUKER_DECOMPOSITION_MAX_RATE

The maximum number of moles of zauker that can decompose per reaction tick.

ZAUKER_FORMATION_ENERGY

The amount of energy half a mole of zauker forming from hypernoblium and nitrium consumes.

ZAUKER_FORMATION_MAX_TEMPERATURE

The maximum temperature zauker can form from hyper-noblium and nitrium at.

ZAUKER_FORMATION_MIN_TEMPERATURE

The minimum temperature zauker can form from hyper-noblium and nitrium at.

ZAUKER_FORMATION_TEMPERATURE_SCALE

The temperature scaling factor for zauker formation. At most this many moles of zauker can form per reaction tick per kelvin.

\ No newline at end of file diff --git a/code/__DEFINES/reagents.html b/code/__DEFINES/reagents.html new file mode 100644 index 0000000000000..6c2ec639a9459 --- /dev/null +++ b/code/__DEFINES/reagents.html @@ -0,0 +1,11 @@ +code/__DEFINES/reagents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/reagents.dm

REAGENT_HOLDER_ALIVEIf the holder is "alive" (i.e. mobs and organs) - If this flag is applied to a holder it will cause reagents to split upon addition to the object
SEALED_CONTAINERIf the holder a sealed container - Used if you don't want reagent contents boiling out (plasma, specifically, in which case it only bursts out when at ignition temperatures)
TOUCHUsed for splashing.
INGESTUsed for ingesting the reagents. Food, drinks, inhaling smoke.
VAPORUsed by foams, sprays, and blob attacks.
PATCHUsed by medical patches and gels.
INJECTUsed for direct injection of reagents.
LINEARExclusive to just plumbing. if set we use the round robin technique else we use proportional
UPDATE_MOB_HEALTHWhen returned by on_mob_life(), on_mob_dead(), overdose_start() or overdose_processed(), will cause the mob to updatehealth() afterwards
UNHUSK_DAMAGE_THRESHOLDHealth threshold for synthflesh and rezadone to unhusk someone
SYNTHFLESH_UNHUSK_AMOUNTAmount of synthflesh required to unhusk someone
CHEMICAL_QUANTISATION_LEVELThe minimum volume of reagents than can be operated on.
CHEMICAL_VOLUME_ROUNDINGSanity check limit to clamp chems to sane amounts and prevent rounding errors during transfer.
CHEMICAL_NORMAL_PHDefault pH for reagents datum
CHEMICAL_MIN_PHMinimum pH attainable by a solution
CHEMICAL_MAX_PHMaximum pH attainable by a solution
BUFFER_IONIZING_STRENGTHIonizing strength of strong acidic/basic buffer (volume/holder.total_volume)*strength. So for 1u added to 50u the ph will change by 0.4
CHEMICAL_MAXIMUM_TEMPERATUREThe maximum temperature a reagent holder can attain
REAGENT_STANDARD_PURITYThe default purity of all non reacted reagents
CONSUMABLE_STANDARD_PURITYStarting purity of consumable reagents
BIOGEN_REAGENT_PURITYStarting purity of reagents made in biogenerator
DEFAULT_REAGENT_TEMPERATUREthe default temperature at which chemicals are added to reagent holders at
REAGENT_DEAD_PROCESSallows on_mob_dead() if present in a dead body
REAGENT_DONOTSPLITDo not split the chem at all during processing - ignores all purity effects
REAGENT_INVISIBLEDoesn't appear on handheld health analyzers.
REAGENT_SNEAKYNAMEWhen inverted, the inverted chem uses the name of the original chem
REAGENT_SPLITRETAINVOLRetains initial volume of chem when splitting for purity effects
REAGENT_CAN_BE_SYNTHESIZEDLets a given reagent be synthesized important for random reagents and things like the odysseus syringe gun(Replaces the old can_synth variable)
REAGENT_IGNORE_STASISAllows a reagent to work on a mob regardless of stasis
REAGENT_NO_RANDOM_RECIPEThis reagent won't be used in most randomized recipes. Meant for reagents that could be synthetized but are normally inaccessible or TOO hard to get.
REAGENT_CLEANSDoes this reagent clean things?
REAGENT_AFFECTS_WOUNDSDoes this reagent affect wounds? Used to check if some procs should be ran.
REAGENT_REVERSE_METABOLISMIf present, when metabolizing out of a mob, we divide by the mob's metabolism rather than multiply. +Without this flag: Higher metabolism means the reagent exits the system faster. +With this flag: Higher metabolism means the reagent exits the system slower.
REAGENT_UNAFFECTED_BY_METABOLISMIf present, this reagent will not be affected by the mob's metabolism at all, meaning it exits at a fixed rate for all mobs. +Supercedes REAGENT_REVERSE_METABOLISM.
REACTION_CLEAR_IMPUREConvert into impure/pure on reaction completion
REACTION_CLEAR_INVERSEConvert into inverse on reaction completion when purity is low enough
REACTION_CLEAR_RETAINClear converted chems retain their purities/inverted purities. Requires 1 or both of the above.
REACTION_INSTANTUsed to create instant reactions
REACTION_HEAT_ARBITARYUsed to force reactions to create a specific amount of heat per 1u created. So if thermic_constant = 5, for 1u of reagent produced, the heat will be forced up arbitarily by 5 irresepective of other reagents. If you use this, keep in mind standard thermic_constant values are 100x what it should be with this enabled.
REACTION_COMPETITIVEUsed to bypass the chem_master transfer block (This is needed for competitive reactions unless you have an end state programmed). More stuff might be added later. When defining this, please add in the comments the associated reactions that it competes with
REACTION_PH_VOL_CONSTANTUsed to force pH changes to be constant regardless of volume
REACTION_REAL_TIME_SPLITIf a reaction will generate its impure/inverse reagents in the middle of a reaction, as apposed to being determined on ingestion/on reaction completion
NO_OVERHEATUsed for overheat_temp - This sets the overheat so high it effectively has no overheat temperature.
END_REACTIONUsed to force an equlibrium to end a reaction in reaction_step() (i.e. in a reaction_step() proc return END_REACTION to end it)
MIN_ADDICTION_REAGENT_AMOUNTMinimum requirement for addiction buzz to be met. Addiction code only checks this once every two seconds, so this should generally be low
MIN_NICOTINE_ADDICTION_REAGENT_AMOUNTNicotine requires much less in your system to be happy
WITHDRAWAL_STAGE1_START_CYCLEAddiction start/ends
REACTION_TAG_BRUTEreagent tags - used to look up reagents for specific effects. Feel free to add to but comment it +This reagent does brute effects (BOTH damaging and healing)
REACTION_TAG_BURNThis reagent does burn effects (BOTH damaging and healing)
REACTION_TAG_TOXINThis reagent does toxin effects (BOTH damaging and healing)
REACTION_TAG_OXYThis reagent does oxy effects (BOTH damaging and healing)
REACTION_TAG_HEALINGThis reagent primarily heals, or it's supposed to be used for healing (in the case of c2 - they are healing)
REACTION_TAG_DAMAGINGThis reagent primarily damages
REACTION_TAG_EXPLOSIVEThis reagent explodes as a part of its intended effect (i.e. not overheated/impure)
REACTION_TAG_OTHERThis reagent does things that are unique and special
REACTION_TAG_DANGEROUSThis reagent's reaction is dangerous to create (i.e. explodes if you fail it)
REACTION_TAG_EASYThis reagent's reaction is easy
REACTION_TAG_MODERATEThis reagent's reaction is difficult/involved
REACTION_TAG_HARDThis reagent's reaction is hard
REACTION_TAG_ORGANThis reagent affects organs
REACTION_TAG_DRINKThis reaction creates a drink reagent
REACTION_TAG_FOODThis reaction has something to do with food
REACTION_TAG_SLIMEThis reaction is a slime reaction
REACTION_TAG_DRUGThis reaction is a drug reaction
REACTION_TAG_UNIQUEThis reaction is a unique reaction
REACTION_TAG_CHEMICALThis reaction is produces a product that affects reactions
REACTION_TAG_PLANTThis reaction is produces a product that affects plants
REACTION_TAG_COMPETITIVEThis reaction is produces a product that affects plants
REAGENT_STRICT_TYPEDirect type
REAGENT_PARENT_TYPEParent type but not sub types for e.g. if param is obj/item it will look for obj/item/stack but not obj/item/stack/sheet
REAGENT_SUB_TYPEsame as istype() check
ENABLE_FLASHINGBelow are defines used for reagent associated machines only +For the pH meter flashing method
ALCOHOL_RATEThe rate at which alcohol affects the drinker
WATER_MATTERSTATE_CHANGE_TEMPThis is the center of a 1 degree deadband in which water will neither freeze to ice nor melt to liquid
GRENADE_EMPTYGrenade is empty
GRENADE_WIREDGrenade has a activation trigger
GRENADE_READYGrenade is ready to be finished

Define Details

ALCOHOL_RATE

The rate at which alcohol affects the drinker

BIOGEN_REAGENT_PURITY

Starting purity of reagents made in biogenerator

BUFFER_IONIZING_STRENGTH

Ionizing strength of strong acidic/basic buffer (volume/holder.total_volume)*strength. So for 1u added to 50u the ph will change by 0.4

CHEMICAL_MAXIMUM_TEMPERATURE

The maximum temperature a reagent holder can attain

CHEMICAL_MAX_PH

Maximum pH attainable by a solution

CHEMICAL_MIN_PH

Minimum pH attainable by a solution

CHEMICAL_NORMAL_PH

Default pH for reagents datum

CHEMICAL_QUANTISATION_LEVEL

The minimum volume of reagents than can be operated on.

CHEMICAL_VOLUME_ROUNDING

Sanity check limit to clamp chems to sane amounts and prevent rounding errors during transfer.

CONSUMABLE_STANDARD_PURITY

Starting purity of consumable reagents

DEFAULT_REAGENT_TEMPERATURE

the default temperature at which chemicals are added to reagent holders at

ENABLE_FLASHING

Below are defines used for reagent associated machines only +For the pH meter flashing method

END_REACTION

Used to force an equlibrium to end a reaction in reaction_step() (i.e. in a reaction_step() proc return END_REACTION to end it)

GRENADE_EMPTY

Grenade is empty

GRENADE_READY

Grenade is ready to be finished

GRENADE_WIRED

Grenade has a activation trigger

INGEST

Used for ingesting the reagents. Food, drinks, inhaling smoke.

INJECT

Used for direct injection of reagents.

LINEAR

Exclusive to just plumbing. if set we use the round robin technique else we use proportional

MIN_ADDICTION_REAGENT_AMOUNT

Minimum requirement for addiction buzz to be met. Addiction code only checks this once every two seconds, so this should generally be low

MIN_NICOTINE_ADDICTION_REAGENT_AMOUNT

Nicotine requires much less in your system to be happy

NO_OVERHEAT

Used for overheat_temp - This sets the overheat so high it effectively has no overheat temperature.

PATCH

Used by medical patches and gels.

REACTION_CLEAR_IMPURE

Convert into impure/pure on reaction completion

REACTION_CLEAR_INVERSE

Convert into inverse on reaction completion when purity is low enough

REACTION_CLEAR_RETAIN

Clear converted chems retain their purities/inverted purities. Requires 1 or both of the above.

REACTION_COMPETITIVE

Used to bypass the chem_master transfer block (This is needed for competitive reactions unless you have an end state programmed). More stuff might be added later. When defining this, please add in the comments the associated reactions that it competes with

REACTION_HEAT_ARBITARY

Used to force reactions to create a specific amount of heat per 1u created. So if thermic_constant = 5, for 1u of reagent produced, the heat will be forced up arbitarily by 5 irresepective of other reagents. If you use this, keep in mind standard thermic_constant values are 100x what it should be with this enabled.

REACTION_INSTANT

Used to create instant reactions

REACTION_PH_VOL_CONSTANT

Used to force pH changes to be constant regardless of volume

REACTION_REAL_TIME_SPLIT

If a reaction will generate its impure/inverse reagents in the middle of a reaction, as apposed to being determined on ingestion/on reaction completion

REACTION_TAG_BRUTE

reagent tags - used to look up reagents for specific effects. Feel free to add to but comment it +This reagent does brute effects (BOTH damaging and healing)

REACTION_TAG_BURN

This reagent does burn effects (BOTH damaging and healing)

REACTION_TAG_CHEMICAL

This reaction is produces a product that affects reactions

REACTION_TAG_COMPETITIVE

This reaction is produces a product that affects plants

REACTION_TAG_DAMAGING

This reagent primarily damages

REACTION_TAG_DANGEROUS

This reagent's reaction is dangerous to create (i.e. explodes if you fail it)

REACTION_TAG_DRINK

This reaction creates a drink reagent

REACTION_TAG_DRUG

This reaction is a drug reaction

REACTION_TAG_EASY

This reagent's reaction is easy

REACTION_TAG_EXPLOSIVE

This reagent explodes as a part of its intended effect (i.e. not overheated/impure)

REACTION_TAG_FOOD

This reaction has something to do with food

REACTION_TAG_HARD

This reagent's reaction is hard

REACTION_TAG_HEALING

This reagent primarily heals, or it's supposed to be used for healing (in the case of c2 - they are healing)

REACTION_TAG_MODERATE

This reagent's reaction is difficult/involved

REACTION_TAG_ORGAN

This reagent affects organs

REACTION_TAG_OTHER

This reagent does things that are unique and special

REACTION_TAG_OXY

This reagent does oxy effects (BOTH damaging and healing)

REACTION_TAG_PLANT

This reaction is produces a product that affects plants

REACTION_TAG_SLIME

This reaction is a slime reaction

REACTION_TAG_TOXIN

This reagent does toxin effects (BOTH damaging and healing)

REACTION_TAG_UNIQUE

This reaction is a unique reaction

REAGENT_AFFECTS_WOUNDS

Does this reagent affect wounds? Used to check if some procs should be ran.

REAGENT_CAN_BE_SYNTHESIZED

Lets a given reagent be synthesized important for random reagents and things like the odysseus syringe gun(Replaces the old can_synth variable)

REAGENT_CLEANS

Does this reagent clean things?

REAGENT_DEAD_PROCESS

allows on_mob_dead() if present in a dead body

REAGENT_DONOTSPLIT

Do not split the chem at all during processing - ignores all purity effects

REAGENT_HOLDER_ALIVE

If the holder is "alive" (i.e. mobs and organs) - If this flag is applied to a holder it will cause reagents to split upon addition to the object

REAGENT_IGNORE_STASIS

Allows a reagent to work on a mob regardless of stasis

REAGENT_INVISIBLE

Doesn't appear on handheld health analyzers.

REAGENT_NO_RANDOM_RECIPE

This reagent won't be used in most randomized recipes. Meant for reagents that could be synthetized but are normally inaccessible or TOO hard to get.

REAGENT_PARENT_TYPE

Parent type but not sub types for e.g. if param is obj/item it will look for obj/item/stack but not obj/item/stack/sheet

REAGENT_REVERSE_METABOLISM

If present, when metabolizing out of a mob, we divide by the mob's metabolism rather than multiply. +Without this flag: Higher metabolism means the reagent exits the system faster. +With this flag: Higher metabolism means the reagent exits the system slower.

REAGENT_SNEAKYNAME

When inverted, the inverted chem uses the name of the original chem

REAGENT_SPLITRETAINVOL

Retains initial volume of chem when splitting for purity effects

REAGENT_STANDARD_PURITY

The default purity of all non reacted reagents

REAGENT_STRICT_TYPE

Direct type

REAGENT_SUB_TYPE

same as istype() check

REAGENT_UNAFFECTED_BY_METABOLISM

If present, this reagent will not be affected by the mob's metabolism at all, meaning it exits at a fixed rate for all mobs. +Supercedes REAGENT_REVERSE_METABOLISM.

SEALED_CONTAINER

If the holder a sealed container - Used if you don't want reagent contents boiling out (plasma, specifically, in which case it only bursts out when at ignition temperatures)

SYNTHFLESH_UNHUSK_AMOUNT

Amount of synthflesh required to unhusk someone

TOUCH

Used for splashing.

UNHUSK_DAMAGE_THRESHOLD

Health threshold for synthflesh and rezadone to unhusk someone

UPDATE_MOB_HEALTH

When returned by on_mob_life(), on_mob_dead(), overdose_start() or overdose_processed(), will cause the mob to updatehealth() afterwards

VAPOR

Used by foams, sprays, and blob attacks.

WATER_MATTERSTATE_CHANGE_TEMP

This is the center of a 1 degree deadband in which water will neither freeze to ice nor melt to liquid

WITHDRAWAL_STAGE1_START_CYCLE

Addiction start/ends

\ No newline at end of file diff --git a/code/__DEFINES/regex.html b/code/__DEFINES/regex.html new file mode 100644 index 0000000000000..3fd862becdf72 --- /dev/null +++ b/code/__DEFINES/regex.html @@ -0,0 +1 @@ +code/__DEFINES/regex.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/regex.dm

REGEX_REPLACE_HANDLERUse this for every proc passed in as second argument in regex.Replace. regex.Replace does not allow calling procs by name but as of 515 using proc refs will always call the top level proc instead of overrides

Define Details

REGEX_REPLACE_HANDLER

Use this for every proc passed in as second argument in regex.Replace. regex.Replace does not allow calling procs by name but as of 515 using proc refs will always call the top level proc instead of overrides

\ No newline at end of file diff --git a/code/__DEFINES/religion.html b/code/__DEFINES/religion.html new file mode 100644 index 0000000000000..b250292e56c05 --- /dev/null +++ b/code/__DEFINES/religion.html @@ -0,0 +1,3 @@ +code/__DEFINES/religion.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/religion.dm

HOLY_ROLE_DEACONrole below priests, for losing most powers of priests but still being holy.
HOLY_ROLE_PRIESTdefault priestly role
HOLY_ROLE_HIGHPRIESTthe one who designates the religion
FESTIVAL_SONG_LONG_ENOUGHhow many lines multiplied by tempo should at least be higher than this. Makes people have to choose a long enough song to get the final effect.
DEFAULT_SMACK_CHANCEthe probability, when not overridden by sects, for a bible's bless effect to trigger on a smack
CONDITION_CEREMONIAL_ONLYcan only use the ritual weapons the sparring chaplain makes.
CONDITION_MELEE_ONLYmelee weapon condition, default sparring condition.
CONDITION_ANY_WEAPONany weapon is cool... probably a terrible idea against security
STAKES_NONEmust use weapons the chaplain makes from their sect. no fist fighting, even! it ensures a fair fight. +just for fun
STAKES_HOLY_MATCHstandard stakes, winning gets you a point. losing counts towards standard excommunication.
STAKES_MONEY_MATCHno stakes god wise, but whomever wins gets all the money of the other
STAKES_YOUR_SOULthe winner gets the other's soul. you said this was a neutral sect, right?
CONTRACT_LEFT_FIELDthe left signing part of the contract
PUNISHMENT_OMENcurses the sinner
PUNISHMENT_LIGHTNINGsmites the sinner
PUNISHMENT_BRANDbrands the sinner

Define Details

CONDITION_ANY_WEAPON

any weapon is cool... probably a terrible idea against security

CONDITION_CEREMONIAL_ONLY

can only use the ritual weapons the sparring chaplain makes.

CONDITION_MELEE_ONLY

melee weapon condition, default sparring condition.

CONTRACT_LEFT_FIELD

the left signing part of the contract

DEFAULT_SMACK_CHANCE

the probability, when not overridden by sects, for a bible's bless effect to trigger on a smack

FESTIVAL_SONG_LONG_ENOUGH

how many lines multiplied by tempo should at least be higher than this. Makes people have to choose a long enough song to get the final effect.

HOLY_ROLE_DEACON

role below priests, for losing most powers of priests but still being holy.

HOLY_ROLE_HIGHPRIEST

the one who designates the religion

HOLY_ROLE_PRIEST

default priestly role

PUNISHMENT_BRAND

brands the sinner

PUNISHMENT_LIGHTNING

smites the sinner

PUNISHMENT_OMEN

curses the sinner

STAKES_HOLY_MATCH

standard stakes, winning gets you a point. losing counts towards standard excommunication.

STAKES_MONEY_MATCH

no stakes god wise, but whomever wins gets all the money of the other

STAKES_NONE

must use weapons the chaplain makes from their sect. no fist fighting, even! it ensures a fair fight. +just for fun

STAKES_YOUR_SOUL

the winner gets the other's soul. you said this was a neutral sect, right?

\ No newline at end of file diff --git a/code/__DEFINES/research.html b/code/__DEFINES/research.html new file mode 100644 index 0000000000000..76aa03f57610a --- /dev/null +++ b/code/__DEFINES/research.html @@ -0,0 +1,9 @@ +code/__DEFINES/research.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/research.dm

DESIGN_ID_IGNOREFor instances where we don't want a design showing up due to it being for debug/sanity purposes

Techweb names for new point types. Can be used to define specific point values for specific types of research (science, security, engineering, etc.)

+

Amount of points required to unlock nodes of corresponding tiers

+

Amount of points gained per second by a single R&D server, see: [research][code/controllers/subsystem/research.dm]

+

Swab cell line types

+

Biopsy cell line types

+

All cell virus types

+

General defines for vatgrowing

VATGROWING_DANGER_MINIMUMPast how much growth can the other cell_lines affect a finished cell line negatively
SCIPAPER_GAIN_TO_MONEYHow much money is one point of gain worth.
CONNECT_TO_RND_SERVER_ROUNDSTARTConnects the 'server_var' to a valid research server on your Z level. +Used for machines in LateInitialize, to ensure that RND servers are loaded first.

Define Details

CONNECT_TO_RND_SERVER_ROUNDSTART

Connects the 'server_var' to a valid research server on your Z level. +Used for machines in LateInitialize, to ensure that RND servers are loaded first.

DESIGN_ID_IGNORE

For instances where we don't want a design showing up due to it being for debug/sanity purposes

SCIPAPER_GAIN_TO_MONEY

How much money is one point of gain worth.

VATGROWING_DANGER_MINIMUM

Past how much growth can the other cell_lines affect a finished cell line negatively

\ No newline at end of file diff --git a/code/__DEFINES/research/anomalies.html b/code/__DEFINES/research/anomalies.html new file mode 100644 index 0000000000000..fd74c8dd10fe8 --- /dev/null +++ b/code/__DEFINES/research/anomalies.html @@ -0,0 +1 @@ +code/__DEFINES/research/anomalies.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/research/anomalies.dm

FLUX_NO_EXPLOSIONDefines for the different types of explosion a flux anomaly can have
ANOMALY_MOVECHANCEChance of anomalies moving every process tick

Define Details

ANOMALY_MOVECHANCE

Chance of anomalies moving every process tick

FLUX_NO_EXPLOSION

Defines for the different types of explosion a flux anomaly can have

\ No newline at end of file diff --git a/code/__DEFINES/research/research_categories.html b/code/__DEFINES/research/research_categories.html new file mode 100644 index 0000000000000..76c6914a629a2 --- /dev/null +++ b/code/__DEFINES/research/research_categories.html @@ -0,0 +1 @@ +code/__DEFINES/research/research_categories.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/research/research_categories.dm

RND_CATEGORY_BIO_FOODBiogenerator Categories

Define Details

RND_CATEGORY_BIO_FOOD

Biogenerator Categories

\ No newline at end of file diff --git a/code/__DEFINES/research/slimes.html b/code/__DEFINES/research/slimes.html new file mode 100644 index 0000000000000..c7d403b7d8f5f --- /dev/null +++ b/code/__DEFINES/research/slimes.html @@ -0,0 +1 @@ +code/__DEFINES/research/slimes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/research/slimes.dm

SLIME_LIFE_STAGE_BABYThis slime is a baby
SLIME_LIFE_STAGE_ADULTThis slime is an adult
SLIME_MIN_POWERThis lowest charge a slime can have
SLIME_MEDIUM_POWERDangerous levels of charge
SLIME_MAX_POWERThe highest level of charge a slime can have
SLIME_MAX_NUTRITIONThe maximum amount of nutrition a slime can contain
SLIME_STARTING_NUTRITIONThe starting nutrition of a slime
SLIME_GROW_NUTRITIONAbove it we grow our amount_grown and our power_level, below it we can eat
SLIME_HUNGER_NUTRITIONBelow this, we feel hungry
SLIME_STARVE_NUTRITIONBelow this, we feel starving
SLIME_HUNGER_NONEThe slime is not hungry. It might try to feed anyways.
SLIME_HUNGER_HUNGRYThe slime is more likely to feed on people
SLIME_HUNGER_STARVINGThe slime is very likely to feed on anything

Define Details

SLIME_GROW_NUTRITION

Above it we grow our amount_grown and our power_level, below it we can eat

SLIME_HUNGER_HUNGRY

The slime is more likely to feed on people

SLIME_HUNGER_NONE

The slime is not hungry. It might try to feed anyways.

SLIME_HUNGER_NUTRITION

Below this, we feel hungry

SLIME_HUNGER_STARVING

The slime is very likely to feed on anything

SLIME_LIFE_STAGE_ADULT

This slime is an adult

SLIME_LIFE_STAGE_BABY

This slime is a baby

SLIME_MAX_NUTRITION

The maximum amount of nutrition a slime can contain

SLIME_MAX_POWER

The highest level of charge a slime can have

SLIME_MEDIUM_POWER

Dangerous levels of charge

SLIME_MIN_POWER

This lowest charge a slime can have

SLIME_STARTING_NUTRITION

The starting nutrition of a slime

SLIME_STARVE_NUTRITION

Below this, we feel starving

\ No newline at end of file diff --git a/code/__DEFINES/revolution.html b/code/__DEFINES/revolution.html new file mode 100644 index 0000000000000..dd3d7219756df --- /dev/null +++ b/code/__DEFINES/revolution.html @@ -0,0 +1 @@ +code/__DEFINES/revolution.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/revolution.dm

DECONVERTER_STATION_WINRev deconverted because the station won.
DECONVERTER_BORGEDRev deconverted via borging.
HEAD_UPDATE_PERIODHow often to check for promoting up new revheads.
REVOLUTION_VICTORYRevs won the revolution.
STATION_VICTORYThe heads of staff beat the revolution.

Define Details

DECONVERTER_BORGED

Rev deconverted via borging.

DECONVERTER_STATION_WIN

Rev deconverted because the station won.

HEAD_UPDATE_PERIOD

How often to check for promoting up new revheads.

REVOLUTION_VICTORY

Revs won the revolution.

STATION_VICTORY

The heads of staff beat the revolution.

\ No newline at end of file diff --git a/code/__DEFINES/robots.html b/code/__DEFINES/robots.html new file mode 100644 index 0000000000000..41b0beb67771a --- /dev/null +++ b/code/__DEFINES/robots.html @@ -0,0 +1 @@ +code/__DEFINES/robots.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/robots.dm

AI_NOTIFICATION_NEW_BORGAlert when a new Cyborg is created.
AI_NOTIFICATION_NEW_MODELAlert when a Cyborg selects a model.
AI_NOTIFICATION_CYBORG_RENAMEDAlert when a Cyborg changes their name.
AI_NOTIFICATION_AI_SHELLAlert when an AI disconnects themselves from their shell.
AI_NOTIFICATION_CYBORG_DISCONNECTEDAlert when a Cyborg gets disconnected from their AI.
AI_TRANS_TO_CARDDownloading AI to InteliCard
AI_TRANS_FROM_CARDUploading AI from InteliCard
AI_MECH_HACKMalfunctioning AI hijacking mecha
CYBORG_THROW_SLOWDOWN_THRESHOLDIf an item does this or more throwing damage it will slow a borg down on hit
BORG_LAMP_CD_RESETSpecial value to reset cyborg's lamp_cooldown
BORG_LAMP_POWER_CONSUMPTIONHow many watts per lamp power is consumed while the lamp is on.
BORG_MINIMUM_POWER_CONSUMPTIONThe minimum power consumption of a cyborg.
BORG_MODULE_THREE_DISABLEDThe third module slots is disabed.
BORG_MODULE_TWO_DISABLEDThe second module slots is disabed.
BORG_MODULE_ALL_DISABLEDAll modules slots are disabled.
BORG_CHOOSE_MODULE_ONEFirst Borg module slot.
BORG_CHOOSE_MODULE_TWOSecond Borg module slot.
BORG_CHOOSE_MODULE_THREEThird Borg module slot.
ASSEMBLY_FIRST_STEPSimple Animal BOT defines
BOT_STEP_DELAYDelay between movemements
BOT_STEP_MAX_RETRIESMaximum times a bot will retry to step from its position
DEFAULT_SCAN_RANGEDefault view range for finding targets.
BOT_MODE_ONThe Bot is currently active, and will do whatever it is programmed to do.
BOT_MODE_AUTOPATROLThe Bot is currently set to automatically patrol the station.
BOT_MODE_REMOTE_ENABLEDThe Bot is currently allowed to be remote controlled by Silicon.
BOT_MODE_CAN_BE_SAPIENTThe Bot is allowed to have a ghost placed in control of it.
BOT_MODE_ROUNDSTART_POSSESSIONThe Bot is allowed to be possessed if it is present on mapload.
BOT_COVER_MAINTS_OPENThe Bot's cover is open and can be modified/emagged by anyone.
BOT_COVER_LOCKEDThe Bot's cover is locked, and cannot be opened without unlocking it.
BOT_COVER_EMAGGEDThe Bot is emagged.
BOT_COVER_HACKEDThe Bot has been hacked by a Silicon, emagging them, but revertable.
/datum/bitfield/bot_access_flagsbitfield, used by basic bots, for our access flags
/datum/bitfield/bot_cover_flagsbitfield, used by simple bots, for our access flags
SEC_BOTSecutritrons (Beepsky)
ADVANCED_SEC_BOTED-209s
MULE_BOTMULEbots
FLOOR_BOTFloorbots
CLEAN_BOTCleanbots
MED_BOTMedibots
HONK_BOTHonkbots & ED-Honks
FIRE_BOTFirebots
HYGIENE_BOTHygienebots
VIBE_BOTVibe bots
BOT_IDLEIdle
BOT_HUNTFound target, hunting
BOT_START_PATROLStart patrol
BOT_PATROLPatrolling
BOT_SUMMONSummoned to a location
BOT_RESPONDINGResponding to a call from the AI
BOT_MOVINGCurrently moving
BOT_PREP_ARRESTSecbot - At target, preparing to arrest
BOT_ARRESTSecbot - Arresting target
BOT_CLEANINGCleanbot - Cleaning
BOT_SHOWERSTANCEHygienebot - Cleaning unhygienic humans
BOT_REPAIRINGFloorbots - Repairing hull breaches
BOT_HEALINGMedibots - Healing people
BOT_DELIVERMULEbot - Moving to deliver
BOT_GO_HOMEMULEbot - Returning to home
BOT_BLOCKEDMULEbot - Blocked
BOT_NAVMULEbot - Computing navigation
BOT_WAIT_FOR_NAVMULEbot - Waiting for nav computation
BOT_NO_ROUTEMULEbot - No destination beacon found (or no route)
JUDGE_CHILLOUTlowered threat level
THREAT_ASSESS_DANGEROUSAbove this level of assessed threat, Beepsky will attack you
THREAT_ASSESS_MAXIMUMAbove this level of assessed threat, you are extremely threatening
SECBOT_DECLARE_ARRESTSWhether arrests should be broadcasted over the Security radio
SECBOT_CHECK_IDSWill arrest people who lack an ID card
SECBOT_CHECK_WEAPONSWill check for weapons, taking Weapons access into account
SECBOT_CHECK_RECORDSWill check Security record on whether to arrest
SECBOT_HANDCUFF_TARGETWhether we will stun & cuff or endlessly stun
SECBOT_SABOTEUR_AFFECTEDif it's currently affected by a saboteur bolt (lowered perp threat level)
MEDBOT_DECLARE_CRITWhether to declare if someone (we are healing) is in critical condition
MEDBOT_STATIONARY_MODEIf the bot will stand still, only healing those next to it.
MEDBOT_SPEAK_MODEWhether the bot will randomly speak from time to time. This will not actually prevent all speech.
MEDBOT_TIPPED_MODEis the bot currently tipped over?
HEAL_ALL_DAMAGEcan we heal all damage?
FIREBOT_STATIONARY_MODEWhether we are stationary or not
FIREBOT_EXTINGUISH_PEOPLEIf we will extinguish people
FIREBOT_EXTINGUISH_FLAMESif we will extinguish turfs on flames
MULEBOT_RETURN_MODEauto return to home after delivery
MULEBOT_AUTO_PICKUP_MODEautopickups at beacons
MULEBOT_REPORT_DELIVERY_MODEannounce every delivery we make

Define Details

ADVANCED_SEC_BOT

ED-209s

AI_MECH_HACK

Malfunctioning AI hijacking mecha

AI_NOTIFICATION_AI_SHELL

Alert when an AI disconnects themselves from their shell.

AI_NOTIFICATION_CYBORG_DISCONNECTED

Alert when a Cyborg gets disconnected from their AI.

AI_NOTIFICATION_CYBORG_RENAMED

Alert when a Cyborg changes their name.

AI_NOTIFICATION_NEW_BORG

Alert when a new Cyborg is created.

AI_NOTIFICATION_NEW_MODEL

Alert when a Cyborg selects a model.

AI_TRANS_FROM_CARD

Uploading AI from InteliCard

AI_TRANS_TO_CARD

Downloading AI to InteliCard

ASSEMBLY_FIRST_STEP

Simple Animal BOT defines

BORG_CHOOSE_MODULE_ONE

First Borg module slot.

BORG_CHOOSE_MODULE_THREE

Third Borg module slot.

BORG_CHOOSE_MODULE_TWO

Second Borg module slot.

BORG_LAMP_CD_RESET

Special value to reset cyborg's lamp_cooldown

BORG_LAMP_POWER_CONSUMPTION

How many watts per lamp power is consumed while the lamp is on.

BORG_MINIMUM_POWER_CONSUMPTION

The minimum power consumption of a cyborg.

BORG_MODULE_ALL_DISABLED

All modules slots are disabled.

BORG_MODULE_THREE_DISABLED

The third module slots is disabed.

BORG_MODULE_TWO_DISABLED

The second module slots is disabed.

BOT_ARREST

Secbot - Arresting target

BOT_BLOCKED

MULEbot - Blocked

BOT_CLEANING

Cleanbot - Cleaning

BOT_COVER_EMAGGED

The Bot is emagged.

BOT_COVER_HACKED

The Bot has been hacked by a Silicon, emagging them, but revertable.

BOT_COVER_LOCKED

The Bot's cover is locked, and cannot be opened without unlocking it.

BOT_COVER_MAINTS_OPEN

The Bot's cover is open and can be modified/emagged by anyone.

BOT_DELIVER

MULEbot - Moving to deliver

BOT_GO_HOME

MULEbot - Returning to home

BOT_HEALING

Medibots - Healing people

BOT_HUNT

Found target, hunting

BOT_IDLE

Idle

BOT_MODE_AUTOPATROL

The Bot is currently set to automatically patrol the station.

BOT_MODE_CAN_BE_SAPIENT

The Bot is allowed to have a ghost placed in control of it.

BOT_MODE_ON

The Bot is currently active, and will do whatever it is programmed to do.

BOT_MODE_REMOTE_ENABLED

The Bot is currently allowed to be remote controlled by Silicon.

BOT_MODE_ROUNDSTART_POSSESSION

The Bot is allowed to be possessed if it is present on mapload.

BOT_MOVING

Currently moving

BOT_NAV

MULEbot - Computing navigation

BOT_NO_ROUTE

MULEbot - No destination beacon found (or no route)

BOT_PATROL

Patrolling

BOT_PREP_ARREST

Secbot - At target, preparing to arrest

BOT_REPAIRING

Floorbots - Repairing hull breaches

BOT_RESPONDING

Responding to a call from the AI

BOT_SHOWERSTANCE

Hygienebot - Cleaning unhygienic humans

BOT_START_PATROL

Start patrol

BOT_STEP_DELAY

Delay between movemements

BOT_STEP_MAX_RETRIES

Maximum times a bot will retry to step from its position

BOT_SUMMON

Summoned to a location

BOT_WAIT_FOR_NAV

MULEbot - Waiting for nav computation

CLEAN_BOT

Cleanbots

CYBORG_THROW_SLOWDOWN_THRESHOLD

If an item does this or more throwing damage it will slow a borg down on hit

DEFAULT_SCAN_RANGE

Default view range for finding targets.

FIREBOT_EXTINGUISH_FLAMES

if we will extinguish turfs on flames

FIREBOT_EXTINGUISH_PEOPLE

If we will extinguish people

FIREBOT_STATIONARY_MODE

Whether we are stationary or not

FIRE_BOT

Firebots

FLOOR_BOT

Floorbots

HEAL_ALL_DAMAGE

can we heal all damage?

HONK_BOT

Honkbots & ED-Honks

HYGIENE_BOT

Hygienebots

JUDGE_CHILLOUT

lowered threat level

MEDBOT_DECLARE_CRIT

Whether to declare if someone (we are healing) is in critical condition

MEDBOT_SPEAK_MODE

Whether the bot will randomly speak from time to time. This will not actually prevent all speech.

MEDBOT_STATIONARY_MODE

If the bot will stand still, only healing those next to it.

MEDBOT_TIPPED_MODE

is the bot currently tipped over?

MED_BOT

Medibots

MULEBOT_AUTO_PICKUP_MODE

autopickups at beacons

MULEBOT_REPORT_DELIVERY_MODE

announce every delivery we make

MULEBOT_RETURN_MODE

auto return to home after delivery

MULE_BOT

MULEbots

SECBOT_CHECK_IDS

Will arrest people who lack an ID card

SECBOT_CHECK_RECORDS

Will check Security record on whether to arrest

SECBOT_CHECK_WEAPONS

Will check for weapons, taking Weapons access into account

SECBOT_DECLARE_ARRESTS

Whether arrests should be broadcasted over the Security radio

SECBOT_HANDCUFF_TARGET

Whether we will stun & cuff or endlessly stun

SECBOT_SABOTEUR_AFFECTED

if it's currently affected by a saboteur bolt (lowered perp threat level)

SEC_BOT

Secutritrons (Beepsky)

THREAT_ASSESS_DANGEROUS

Above this level of assessed threat, Beepsky will attack you

THREAT_ASSESS_MAXIMUM

Above this level of assessed threat, you are extremely threatening

VIBE_BOT

Vibe bots

\ No newline at end of file diff --git a/code/__DEFINES/rotation.html b/code/__DEFINES/rotation.html new file mode 100644 index 0000000000000..47c7baa17a4ca --- /dev/null +++ b/code/__DEFINES/rotation.html @@ -0,0 +1 @@ +code/__DEFINES/rotation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/rotation.dm

ROTATION_REQUIRE_WRENCHIf an object needs to be rotated with a wrench
ROTATION_GHOSTS_ALLOWEDIf ghosts can rotate an object (if the ghost config is enabled)
ROTATION_IGNORE_ANCHOREDIf an object will ignore anchored for rotation (used for chairs)
ROTATION_NO_FLIPPINGIf an object will omit flipping from rotation (used for pipes since they use custom handling)
ROTATION_NEEDS_ROOMIf an object needs to have an empty spot available in target direction (used for windoors and railings)
ROTATION_CLOCKWISERotate an object clockwise
ROTATION_COUNTERCLOCKWISERotate an object counterclockwise
ROTATION_FLIPRotate an object upside down

Define Details

ROTATION_CLOCKWISE

Rotate an object clockwise

ROTATION_COUNTERCLOCKWISE

Rotate an object counterclockwise

ROTATION_FLIP

Rotate an object upside down

ROTATION_GHOSTS_ALLOWED

If ghosts can rotate an object (if the ghost config is enabled)

ROTATION_IGNORE_ANCHORED

If an object will ignore anchored for rotation (used for chairs)

ROTATION_NEEDS_ROOM

If an object needs to have an empty spot available in target direction (used for windoors and railings)

ROTATION_NO_FLIPPING

If an object will omit flipping from rotation (used for pipes since they use custom handling)

ROTATION_REQUIRE_WRENCH

If an object needs to be rotated with a wrench

\ No newline at end of file diff --git a/code/__DEFINES/roundend.html b/code/__DEFINES/roundend.html new file mode 100644 index 0000000000000..82d4380337606 --- /dev/null +++ b/code/__DEFINES/roundend.html @@ -0,0 +1 @@ +code/__DEFINES/roundend.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/roundend.dm

NUKE_NEAR_MISSNuke was detonated in space on same z-level as station
NUKE_MISS_STATIONNuke was detonated on another z-level
NUKE_SYNDICATE_BASENuke was detonated on the syndicate base
STATION_DESTROYED_NUKENuke was detonated on the station
STATION_EVACUATEDThe emergency shuttle arrived and evacuated the crew
BLOB_WINThe blob has reached critical mass and overtaken the station
BLOB_DESTROYEDThe blob was destroyed by the crew
CULT_ESCAPEThe cult managed to escape alive on the shuttle
CULT_FAILUREThe cult was destroyed by the crew
CULT_SUMMONThe cult was able to summon Nar-Sie
NUKE_MISSThe nuke was detonated on another station?
OPERATIVES_KILLEDThe nuclear operatives were killed by the crew
OPERATIVE_SKIRMISHThe nuclear operatives forced the crew to evacuate without securing the disk
REVS_WINThe revolution successfully killed or exiled all the station heads of staff
REVS_LOSEThe revolution failed and all the head revs were killed or exiled
WIZARD_KILLEDThe wizard was killed by the crew
STATION_NUKEDThe station was destroyed by its own self-destruct nuclear device
SUPERMATTER_CASCADEThe station was destroyed by the supermatter cascade
SHUTTLE_HIJACKThe emergency shuttle was successfully hijacked

Define Details

BLOB_DESTROYED

The blob was destroyed by the crew

BLOB_WIN

The blob has reached critical mass and overtaken the station

CULT_ESCAPE

The cult managed to escape alive on the shuttle

CULT_FAILURE

The cult was destroyed by the crew

CULT_SUMMON

The cult was able to summon Nar-Sie

NUKE_MISS

The nuke was detonated on another station?

NUKE_MISS_STATION

Nuke was detonated on another z-level

NUKE_NEAR_MISS

Nuke was detonated in space on same z-level as station

NUKE_SYNDICATE_BASE

Nuke was detonated on the syndicate base

OPERATIVES_KILLED

The nuclear operatives were killed by the crew

OPERATIVE_SKIRMISH

The nuclear operatives forced the crew to evacuate without securing the disk

REVS_LOSE

The revolution failed and all the head revs were killed or exiled

REVS_WIN

The revolution successfully killed or exiled all the station heads of staff

SHUTTLE_HIJACK

The emergency shuttle was successfully hijacked

STATION_DESTROYED_NUKE

Nuke was detonated on the station

STATION_EVACUATED

The emergency shuttle arrived and evacuated the crew

STATION_NUKED

The station was destroyed by its own self-destruct nuclear device

SUPERMATTER_CASCADE

The station was destroyed by the supermatter cascade

WIZARD_KILLED

The wizard was killed by the crew

\ No newline at end of file diff --git a/code/__DEFINES/rust_g.html b/code/__DEFINES/rust_g.html new file mode 100644 index 0000000000000..e605adc0e50ef --- /dev/null +++ b/code/__DEFINES/rust_g.html @@ -0,0 +1,50 @@ +code/__DEFINES/rust_g.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/rust_g.dm

/proc/rustg_get_versionGets the version of rust_g
rustg_setup_acreplaceSets up the Aho-Corasick automaton with its default options.
rustg_setup_acreplace_with_optionsSets up the Aho-Corasick automaton using supplied options.
rustg_acreplaceRun the specified replacement engine with the provided haystack text to replace, returning replaced text.
rustg_acreplace_with_replacementsRun the specified replacement engine with the provided haystack text to replace, returning replaced text.
rustg_cnoise_generateThis proc generates a cellular automata noise grid which can be used in procedural generation methods.
rustg_dbp_generateThis proc generates a grid of perlin-like noise
rustg_dmi_icon_statesinput: must be a path, not an /icon; you have to do your own handling if it is one, as icon objects can't be directly passed to rustg.
rustg_git_revparseReturns the git hash of the given revision, ex. "HEAD".
rustg_git_commit_dateReturns the date of the given revision in the format YYYY-MM-DD. +Returns null if the revision is invalid.
/proc/rustg_unix_timestampReturns the timestamp as a string

Define Details

rustg_acreplace

Run the specified replacement engine with the provided haystack text to replace, returning replaced text.

+

Arguments:

+

rustg_acreplace_with_replacements

Run the specified replacement engine with the provided haystack text to replace, returning replaced text.

+

Arguments:

+

rustg_cnoise_generate

This proc generates a cellular automata noise grid which can be used in procedural generation methods.

+

Returns a single string that goes row by row, with values of 1 representing an alive cell, and a value of 0 representing a dead cell.

+

Arguments:

+

rustg_dbp_generate

This proc generates a grid of perlin-like noise

+

Returns a single string that goes row by row, with values of 1 representing an turned on cell, and a value of 0 representing a turned off cell.

+

Arguments:

+

rustg_dmi_icon_states

input: must be a path, not an /icon; you have to do your own handling if it is one, as icon objects can't be directly passed to rustg.

+

output: json_encode'd list. json_decode to get a flat list with icon states in the order they're in inside the .dmi

rustg_git_commit_date

Returns the date of the given revision in the format YYYY-MM-DD. +Returns null if the revision is invalid.

rustg_git_revparse

Returns the git hash of the given revision, ex. "HEAD".

rustg_setup_acreplace

Sets up the Aho-Corasick automaton with its default options.

+

The search patterns list and the replacements must be of the same length when replace is run, but an empty replacements list is allowed if replacements are supplied with the replace call +Arguments:

+

rustg_setup_acreplace_with_options

Sets up the Aho-Corasick automaton using supplied options.

+

The search patterns list and the replacements must be of the same length when replace is run, but an empty replacements list is allowed if replacements are supplied with the replace call +Arguments:

+
\ No newline at end of file diff --git a/code/__DEFINES/say.html b/code/__DEFINES/say.html new file mode 100644 index 0000000000000..07bcc53c297e4 --- /dev/null +++ b/code/__DEFINES/say.html @@ -0,0 +1,5 @@ +code/__DEFINES/say.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/say.dm

MODE_SINGApplies singing characters to the message
MODE_CUSTOM_SAY_EMOTEA custom say emote is being supplied [value = the emote]
MODE_CUSTOM_SAY_ERASE_INPUTNo message is following, just emote
MODE_RELAYMessage is being relayed through another object
ITALICSMakes the message use italics
REDUCE_RANGEReduces the range of the message to 1
NOPASSStops any actual message from being sent
MESSAGE_RANGERange to hear normal messages
WHISPER_RANGERange to hear whispers normally
EAVESDROP_EXTRA_RANGEAdditional range to partially hear whispers
MODE_RANGE_INTERCOMHow close intercoms can be for radio code use
EMOTE_MESSAGEAutomatically applies emote related spans/fonts/formatting to the message
ALWAYS_SHOW_SELF_MESSAGEBy default, self_message will respect the visual / audible component of the message. +Meaning that if the message is visual, and sourced from a blind mob, they will not see it. +This flag skips that behavior, and will always show the self message to the mob.

Define Details

ALWAYS_SHOW_SELF_MESSAGE

By default, self_message will respect the visual / audible component of the message. +Meaning that if the message is visual, and sourced from a blind mob, they will not see it. +This flag skips that behavior, and will always show the self message to the mob.

EAVESDROP_EXTRA_RANGE

Additional range to partially hear whispers

EMOTE_MESSAGE

Automatically applies emote related spans/fonts/formatting to the message

ITALICS

Makes the message use italics

MESSAGE_RANGE

Range to hear normal messages

MODE_CUSTOM_SAY_EMOTE

A custom say emote is being supplied [value = the emote]

MODE_CUSTOM_SAY_ERASE_INPUT

No message is following, just emote

MODE_RANGE_INTERCOM

How close intercoms can be for radio code use

MODE_RELAY

Message is being relayed through another object

MODE_SING

Applies singing characters to the message

NOPASS

Stops any actual message from being sent

REDUCE_RANGE

Reduces the range of the message to 1

WHISPER_RANGE

Range to hear whispers normally

\ No newline at end of file diff --git a/code/__DEFINES/screentips.html b/code/__DEFINES/screentips.html new file mode 100644 index 0000000000000..8ce4062e7c49d --- /dev/null +++ b/code/__DEFINES/screentips.html @@ -0,0 +1 @@ +code/__DEFINES/screentips.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/screentips.dm

SCREENTIP_CONTEXT_LMBContext applied to LMB actions
SCREENTIP_CONTEXT_RMBContext applied to RMB actions
SCREENTIP_CONTEXT_SHIFT_LMBContext applied to Shift-LMB actions
SCREENTIP_CONTEXT_CTRL_LMBContext applied to Ctrl-LMB actions
SCREENTIP_CONTEXT_CTRL_RMBContext applied to Ctrl-RMB actions
SCREENTIP_CONTEXT_ALT_LMBContext applied to Alt-LMB actions
SCREENTIP_CONTEXT_ALT_RMBContext applied to Alt-RMB actions
SCREENTIP_CONTEXT_CTRL_SHIFT_LMBContext applied to Ctrl-Shift-LMB actions
SCREENTIP_PREFERENCE_DISABLEDScreentips are always disabled
SCREENTIP_PREFERENCE_ENABLEDScreentips are always enabled
SCREENTIP_PREFERENCE_CONTEXT_ONLYScreentips are only enabled when they have context

Define Details

SCREENTIP_CONTEXT_ALT_LMB

Context applied to Alt-LMB actions

SCREENTIP_CONTEXT_ALT_RMB

Context applied to Alt-RMB actions

SCREENTIP_CONTEXT_CTRL_LMB

Context applied to Ctrl-LMB actions

SCREENTIP_CONTEXT_CTRL_RMB

Context applied to Ctrl-RMB actions

SCREENTIP_CONTEXT_CTRL_SHIFT_LMB

Context applied to Ctrl-Shift-LMB actions

SCREENTIP_CONTEXT_LMB

Context applied to LMB actions

SCREENTIP_CONTEXT_RMB

Context applied to RMB actions

SCREENTIP_CONTEXT_SHIFT_LMB

Context applied to Shift-LMB actions

SCREENTIP_PREFERENCE_CONTEXT_ONLY

Screentips are only enabled when they have context

SCREENTIP_PREFERENCE_DISABLED

Screentips are always disabled

SCREENTIP_PREFERENCE_ENABLED

Screentips are always enabled

\ No newline at end of file diff --git a/code/__DEFINES/security.html b/code/__DEFINES/security.html new file mode 100644 index 0000000000000..ed5ec1f1552fc --- /dev/null +++ b/code/__DEFINES/security.html @@ -0,0 +1 @@ +code/__DEFINES/security.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/security.dm

DETSCAN_CATEGORY_FINGERSFingerpints detected
DETSCAN_CATEGORY_BLOODDisplays any bloodprints found and their uefi
DETSCAN_CATEGORY_FIBERClothing and glove fibers
DETSCAN_CATEGORY_DRINKLiquids detected
DETSCAN_CATEGORY_ACCESSID Access
DETSCAN_CATEGORY_NOTESGeneric extra information category
DETSCAN_CATEGORY_ILLEGALAttributes that might be illegal, but don't have ties to syndicate/aren't exclusively produced by them
DETSCAN_CATEGORY_SYNDIEThe emags and other in-house technology from the syndicate
DETSCAN_CATEGORY_HOLYpraise be
DETSCAN_CATEGORY_SETTINGSThe mode that the items in, what kind of item is dispensed, etc
DETSCAN_DEFAULT_ORDERdefines the order categories are displayed, with the original categories, then custom ones, then finally the extra info.
DETSCAN_ACCESS_ORDERthe order departments show up in for the id scan (its sorted by red to blue on the color wheel)
DETSCAN_BLOCKif any categories list has this entry, it will be hidden
WANTED_ARRESTWanted statuses
WANTED_STATUSESList of available wanted statuses

Define Details

DETSCAN_ACCESS_ORDER

the order departments show up in for the id scan (its sorted by red to blue on the color wheel)

DETSCAN_BLOCK

if any categories list has this entry, it will be hidden

DETSCAN_CATEGORY_ACCESS

ID Access

DETSCAN_CATEGORY_BLOOD

Displays any bloodprints found and their uefi

DETSCAN_CATEGORY_DRINK

Liquids detected

DETSCAN_CATEGORY_FIBER

Clothing and glove fibers

DETSCAN_CATEGORY_FINGERS

Fingerpints detected

DETSCAN_CATEGORY_HOLY

praise be

DETSCAN_CATEGORY_ILLEGAL

Attributes that might be illegal, but don't have ties to syndicate/aren't exclusively produced by them

DETSCAN_CATEGORY_NOTES

Generic extra information category

DETSCAN_CATEGORY_SETTINGS

The mode that the items in, what kind of item is dispensed, etc

DETSCAN_CATEGORY_SYNDIE

The emags and other in-house technology from the syndicate

DETSCAN_DEFAULT_ORDER

defines the order categories are displayed, with the original categories, then custom ones, then finally the extra info.

WANTED_ARREST

Wanted statuses

WANTED_STATUSES

List of available wanted statuses

\ No newline at end of file diff --git a/code/__DEFINES/shuttles.html b/code/__DEFINES/shuttles.html new file mode 100644 index 0000000000000..4f28db3bf8b15 --- /dev/null +++ b/code/__DEFINES/shuttles.html @@ -0,0 +1,3 @@ +code/__DEFINES/shuttles.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/shuttles.dm

ENDGAME_LAUNCHEDThis shuttle launched to head to end game (or has arrived there), it will not update further
ENDGAME_TRANSIT"Endgame transit" denotes shuttles which "fly into the sunset" when the round ends, such as the whiteship. +These shuttles leave when the main emergency shuttle does but don't dock anywhere (to save space), so this counts as "escaped".
SHUTTLE_UNLOCK_ALIENTECHShuttle unlocks
SHUTTLE_EVENT_CLEARSelf destruct if this is returned in process
SHUTTLE_EVENT_MISS_SHUTTLEspawned stuff should float by the window and not hit the shuttle
SHUTTLE_EVENT_HIT_SHUTTLEspawned stuff should hit the shuttle

Define Details

ENDGAME_LAUNCHED

This shuttle launched to head to end game (or has arrived there), it will not update further

ENDGAME_TRANSIT

"Endgame transit" denotes shuttles which "fly into the sunset" when the round ends, such as the whiteship. +These shuttles leave when the main emergency shuttle does but don't dock anywhere (to save space), so this counts as "escaped".

SHUTTLE_EVENT_CLEAR

Self destruct if this is returned in process

SHUTTLE_EVENT_HIT_SHUTTLE

spawned stuff should hit the shuttle

SHUTTLE_EVENT_MISS_SHUTTLE

spawned stuff should float by the window and not hit the shuttle

SHUTTLE_UNLOCK_ALIENTECH

Shuttle unlocks

\ No newline at end of file diff --git a/code/__DEFINES/sight.html b/code/__DEFINES/sight.html new file mode 100644 index 0000000000000..f0fab36275915 --- /dev/null +++ b/code/__DEFINES/sight.html @@ -0,0 +1,25 @@ +code/__DEFINES/sight.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/sight.dm

SEE_AVOID_TURF_BLACKNESScan't see anything +can see all mobs, no matter what +can see all objs, no matter what +can see self, no matter what +can see infra-red objects (different sort of luminosity, essentially a copy of it, one we do not use) +if an object is located on an unlit area, but some of its pixels are +in a lit area (via pixel_x,y or smooth movement), can see those pixels +can see through opaque objects +render dark tiles as blackness (Note, this basically means we draw dark tiles to plane 0) +we can then hijack that plane with a plane master, and start drawing it anywhere we want +NOTE: this does not function with the SIDE_MAP map format. So we can't. :( +Bitfield of sight flags that show THINGS but no lighting +Since lighting is an underlay on turfs, this is everything but that

Define Details

SEE_AVOID_TURF_BLACKNESS

can't see anything +can see all mobs, no matter what +can see all objs, no matter what +can see self, no matter what +can see infra-red objects (different sort of luminosity, essentially a copy of it, one we do not use) +if an object is located on an unlit area, but some of its pixels are +in a lit area (via pixel_x,y or smooth movement), can see those pixels +can see through opaque objects +render dark tiles as blackness (Note, this basically means we draw dark tiles to plane 0) +we can then hijack that plane with a plane master, and start drawing it anywhere we want +NOTE: this does not function with the SIDE_MAP map format. So we can't. :( +Bitfield of sight flags that show THINGS but no lighting +Since lighting is an underlay on turfs, this is everything but that

\ No newline at end of file diff --git a/code/__DEFINES/skills.html b/code/__DEFINES/skills.html new file mode 100644 index 0000000000000..a8845bc5c6c24 --- /dev/null +++ b/code/__DEFINES/skills.html @@ -0,0 +1 @@ +code/__DEFINES/skills.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/skills.dm

SKILL_SPEED_MODIFIERideally added/subtracted in speed calculations to make you do stuff faster
SKILL_PROBS_MODIFIERideally added/subtracted where beneficial in prob(x) calls
SKILL_RANDS_MODIFIERideally added/subtracted where beneficial in rand(x,y) calls
SKILL_VALUE_MODIFIERideally for addittive operations
FISHING_SKILL_DIFFIULTY_EXP_MULTThe multiplier of the extra experience given by the fishing minigame based on difficulty. At the default difficulty of 15, the bonus will be of 21%.
FISHING_SKILL_EXP_PER_SECONDHow much exp one would gain per spent playing the fishing minigame at minimum difficulty. the time is multiplied by 0.1 because deciseconds...
MINING_SKILL_BOULDER_SIZE_XPThe base modifier a boulder's size grants to the mining skill.

Define Details

FISHING_SKILL_DIFFIULTY_EXP_MULT

The multiplier of the extra experience given by the fishing minigame based on difficulty. At the default difficulty of 15, the bonus will be of 21%.

FISHING_SKILL_EXP_PER_SECOND

How much exp one would gain per spent playing the fishing minigame at minimum difficulty. the time is multiplied by 0.1 because deciseconds...

MINING_SKILL_BOULDER_SIZE_XP

The base modifier a boulder's size grants to the mining skill.

SKILL_PROBS_MODIFIER

ideally added/subtracted where beneficial in prob(x) calls

SKILL_RANDS_MODIFIER

ideally added/subtracted where beneficial in rand(x,y) calls

SKILL_SPEED_MODIFIER

ideally added/subtracted in speed calculations to make you do stuff faster

SKILL_VALUE_MODIFIER

ideally for addittive operations

\ No newline at end of file diff --git a/code/__DEFINES/song.html b/code/__DEFINES/song.html new file mode 100644 index 0000000000000..3203b65b97312 --- /dev/null +++ b/code/__DEFINES/song.html @@ -0,0 +1 @@ +code/__DEFINES/song.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/song.dm

STOP_PLAYINGWhen the song should stop being played
IGNORE_INSTRUMENT_CHECKSWill ignore the instrument checks and play the song anyway.
MONKEY_SONGit's what monkeys play!
MOOK_SONGsong played by the mook bard
VIBEBOT_CHEER_SONGsong played by the vibebot when cheering people up
VIBEBOT_GRIM_MUSICgrim music played by the vibebot
VIBEBOT_HAPPY_BIRTHDAYhappy birthday music we play to the birthday boy

Define Details

IGNORE_INSTRUMENT_CHECKS

Will ignore the instrument checks and play the song anyway.

MONKEY_SONG

it's what monkeys play!

MOOK_SONG

song played by the mook bard

STOP_PLAYING

When the song should stop being played

VIBEBOT_CHEER_SONG

song played by the vibebot when cheering people up

VIBEBOT_GRIM_MUSIC

grim music played by the vibebot

VIBEBOT_HAPPY_BIRTHDAY

happy birthday music we play to the birthday boy

\ No newline at end of file diff --git a/code/__DEFINES/sort_types.html b/code/__DEFINES/sort_types.html new file mode 100644 index 0000000000000..fcb85a45f9fc8 --- /dev/null +++ b/code/__DEFINES/sort_types.html @@ -0,0 +1 @@ +code/__DEFINES/sort_types.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/sort_types.dm

SORT_TYPE_DISPOSALSAll unwrapped items and untagged parcels get picked up by a junction with this sortType. Usually leads to the recycler.

Define Details

SORT_TYPE_DISPOSALS

All unwrapped items and untagged parcels get picked up by a junction with this sortType. Usually leads to the recycler.

\ No newline at end of file diff --git a/code/__DEFINES/sound.html b/code/__DEFINES/sound.html new file mode 100644 index 0000000000000..2d9b6dd66bffb --- /dev/null +++ b/code/__DEFINES/sound.html @@ -0,0 +1 @@ +code/__DEFINES/sound.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/sound.dm

SOUND_RANGEDefault range of a sound.
SHORT_RANGE_SOUND_EXTRARANGEdefault extra range for sounds considered to be quieter
SILENCED_SOUND_EXTRARANGEThe range deducted from sound range for things that are considered silent / sneaky
SOUND_DEFAULT_FALLOFF_DISTANCEPercentage of sound's range where no falloff is applied
SOUND_FALLOFF_EXPONENTThe default exponent of sound falloff
ANNOUNCER_AIMALFAnnouncer audio keys
SFX_BODYFALLList of all of our sound keys.

Define Details

ANNOUNCER_AIMALF

Announcer audio keys

SFX_BODYFALL

List of all of our sound keys.

SHORT_RANGE_SOUND_EXTRARANGE

default extra range for sounds considered to be quieter

SILENCED_SOUND_EXTRARANGE

The range deducted from sound range for things that are considered silent / sneaky

SOUND_DEFAULT_FALLOFF_DISTANCE

Percentage of sound's range where no falloff is applied

SOUND_FALLOFF_EXPONENT

The default exponent of sound falloff

SOUND_RANGE

Default range of a sound.

\ No newline at end of file diff --git a/code/__DEFINES/space.html b/code/__DEFINES/space.html new file mode 100644 index 0000000000000..332e98315032b --- /dev/null +++ b/code/__DEFINES/space.html @@ -0,0 +1,3 @@ +code/__DEFINES/space.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/space.dm

SPACE_OVERLAY_RENDER_TARGETEvery mob in the game will have a screen object sitting inside them with a reference matching this +So you can render_source against it and never need to update it again

Define Details

SPACE_OVERLAY_RENDER_TARGET

Every mob in the game will have a screen object sitting inside them with a reference matching this +So you can render_source against it and never need to update it again

\ No newline at end of file diff --git a/code/__DEFINES/spaceman_dmm.html b/code/__DEFINES/spaceman_dmm.html new file mode 100644 index 0000000000000..409e2e9711204 --- /dev/null +++ b/code/__DEFINES/spaceman_dmm.html @@ -0,0 +1,30 @@ +code/__DEFINES/spaceman_dmm.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/spaceman_dmm.dm

RETURN_TYPESets a return type expression for a proc. The return type can take the forms:
SHOULD_CALL_PARENTIf set, will enable a diagnostic on children of the proc it is set on which do +not contain any ..() parent calls. This can help with finding situations +where a signal or other important handling in the parent proc is being skipped. +Child procs may set this setting to 0 instead to override the check.
SHOULD_NOT_OVERRIDEIf set, raise a warning for any child procs that override this one, +regardless of if it calls parent or not. +This functions in a similar way to the final keyword in some languages. +This cannot be disabled by child overrides.
SHOULD_NOT_SLEEPIf set, raise a warning if the proc or one of the sub-procs it calls +uses a blocking call, such as sleep() or input() without using set waitfor = 0 +This cannot be disabled by child overrides.
SHOULD_BE_PUREIf set, ensure a proc is 'pure', such that it does not make any changes +outside itself or output. This also checks to make sure anything using +this proc doesn't invoke it without making use of the return value. +This cannot be disabled by child overrides.
PRIVATE_PROCPrivate procs can only be called by things of exactly the same type.
PROTECTED_PROCProtected procs can only be call by things of the same type or subtypes.
UNLINTIf set, will not lint.
VAR_FINALIf set, overriding their value isn't permitted by types that inherit it.
VAR_PRIVATEPrivate vars can only be called by things of exactly the same type.
VAR_PROTECTEDProtected vars can only be called by things of the same type or subtypes.

Define Details

PRIVATE_PROC

Private procs can only be called by things of exactly the same type.

PROTECTED_PROC

Protected procs can only be call by things of the same type or subtypes.

RETURN_TYPE

Sets a return type expression for a proc. The return type can take the forms:

+

/typepath - a raw typepath. The return type of the proc is the type named.

+

param - a typepath given as a parameter, for procs which return an instance of the passed-in type.

+

param.type - the static type of a passed-in parameter, for procs which +return their input or otherwise another value of the same type.

+

param[_].type - the static type of a passed-in parameter, with one level +of /list stripped, for procs which select one item from a list. The [_] +may be repeated to strip more levels of /list.

SHOULD_BE_PURE

If set, ensure a proc is 'pure', such that it does not make any changes +outside itself or output. This also checks to make sure anything using +this proc doesn't invoke it without making use of the return value. +This cannot be disabled by child overrides.

SHOULD_CALL_PARENT

If set, will enable a diagnostic on children of the proc it is set on which do +not contain any ..() parent calls. This can help with finding situations +where a signal or other important handling in the parent proc is being skipped. +Child procs may set this setting to 0 instead to override the check.

SHOULD_NOT_OVERRIDE

If set, raise a warning for any child procs that override this one, +regardless of if it calls parent or not. +This functions in a similar way to the final keyword in some languages. +This cannot be disabled by child overrides.

SHOULD_NOT_SLEEP

If set, raise a warning if the proc or one of the sub-procs it calls +uses a blocking call, such as sleep() or input() without using set waitfor = 0 +This cannot be disabled by child overrides.

UNLINT

If set, will not lint.

VAR_FINAL

If set, overriding their value isn't permitted by types that inherit it.

VAR_PRIVATE

Private vars can only be called by things of exactly the same type.

VAR_PROTECTED

Protected vars can only be called by things of the same type or subtypes.

\ No newline at end of file diff --git a/code/__DEFINES/spacevines.html b/code/__DEFINES/spacevines.html new file mode 100644 index 0000000000000..e329a7ab45534 --- /dev/null +++ b/code/__DEFINES/spacevines.html @@ -0,0 +1 @@ +code/__DEFINES/spacevines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/spacevines.dm

LIGHT_MUTATION_BRIGHTNESSDetermines brightness of the light emitted by kudzu with the light mutation
PASS_LIGHTKudzu light states
TOXICITY_MUTATION_PROBDetermines the probability that the toxicity mutation will harm someone who passes through it
EXPLOSION_MUTATION_IMPACT_RADIUSDetermines the impact radius of kudzu's explosive mutation
GAS_MUTATION_REMOVAL_MULTIPLIERDetermines the scale factor for the amount of gas removed by kudzu with a gas removal mutation, which is this scale factor * the kudzu's energy level
THORN_MUTATION_CUT_PROBDetermines the probability that the thorn mutation will harm someone who passes through or attacks it
FLOWERING_MUTATION_SPAWN_PROBDetermines the probability that a kudzu plant with the flowering mutation will spawn a venus flower bud
TEMP_STABILISATION_MUTATION_MAXIMUM_ENERGYMaximum energy used per atmos tick that the temperature stabilisation mutation will use to bring the temperature to T20C
VINE_FREEZING_POINTTemperature below which the kudzu can't spread
SEVERITY_TRIVIALKudzu severity values for traits, based on severity in terms of how severely it impacts the game, the lower the severity, the more likely it is to appear
MUTATIVENESS_SCALE_FACTORKudzu mutativeness is based on a scale factor * potency
MAX_SEVERITY_LINEAR_COEFFKudzu maximum mutation severity is a linear function of potency
MAX_SEVERITY_EVENT_BONUSAdditional maximum mutation severity given to kudzu spawned by a random event
MAX_POSSIBLE_PRODUCTIVITY_VALUEThe maximum possible productivity value of a (normal) kudzu plant, used for calculating a plant's spread cap and multiplier
SPREAD_CAP_LINEAR_COEFFKudzu spread cap is a scaled version of production speed, such that the better the production speed, ie. the lower the speed value is, the faster is spreads
SPREAD_MULTIPLIER_MAXKudzu spread multiplier is a reciporal function of production speed, such that the better the production speed, ie. the lower the speed value is, the faster it spreads
IDEAL_MAX_SEVERITYKudzu's maximum possible maximum mutation severity (assuming ideal potency), used to balance mutation appearance chance

Define Details

EXPLOSION_MUTATION_IMPACT_RADIUS

Determines the impact radius of kudzu's explosive mutation

FLOWERING_MUTATION_SPAWN_PROB

Determines the probability that a kudzu plant with the flowering mutation will spawn a venus flower bud

GAS_MUTATION_REMOVAL_MULTIPLIER

Determines the scale factor for the amount of gas removed by kudzu with a gas removal mutation, which is this scale factor * the kudzu's energy level

IDEAL_MAX_SEVERITY

Kudzu's maximum possible maximum mutation severity (assuming ideal potency), used to balance mutation appearance chance

LIGHT_MUTATION_BRIGHTNESS

Determines brightness of the light emitted by kudzu with the light mutation

MAX_POSSIBLE_PRODUCTIVITY_VALUE

The maximum possible productivity value of a (normal) kudzu plant, used for calculating a plant's spread cap and multiplier

MAX_SEVERITY_EVENT_BONUS

Additional maximum mutation severity given to kudzu spawned by a random event

MAX_SEVERITY_LINEAR_COEFF

Kudzu maximum mutation severity is a linear function of potency

MUTATIVENESS_SCALE_FACTOR

Kudzu mutativeness is based on a scale factor * potency

PASS_LIGHT

Kudzu light states

SEVERITY_TRIVIAL

Kudzu severity values for traits, based on severity in terms of how severely it impacts the game, the lower the severity, the more likely it is to appear

SPREAD_CAP_LINEAR_COEFF

Kudzu spread cap is a scaled version of production speed, such that the better the production speed, ie. the lower the speed value is, the faster is spreads

SPREAD_MULTIPLIER_MAX

Kudzu spread multiplier is a reciporal function of production speed, such that the better the production speed, ie. the lower the speed value is, the faster it spreads

TEMP_STABILISATION_MUTATION_MAXIMUM_ENERGY

Maximum energy used per atmos tick that the temperature stabilisation mutation will use to bring the temperature to T20C

THORN_MUTATION_CUT_PROB

Determines the probability that the thorn mutation will harm someone who passes through or attacks it

TOXICITY_MUTATION_PROB

Determines the probability that the toxicity mutation will harm someone who passes through it

VINE_FREEZING_POINT

Temperature below which the kudzu can't spread

\ No newline at end of file diff --git a/code/__DEFINES/spatial_gridmap.html b/code/__DEFINES/spatial_gridmap.html new file mode 100644 index 0000000000000..77a0281428bd8 --- /dev/null +++ b/code/__DEFINES/spatial_gridmap.html @@ -0,0 +1,3 @@ +code/__DEFINES/spatial_gridmap.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/spatial_gridmap.dm

SPATIAL_GRID_CELLSIZEeach cell in a spatial_grid is this many turfs in length and width (with world.max(x or y) being 255, 15 of these fit on each side of a z level)
GET_SPATIAL_INDEXTakes a coordinate, and spits out the spatial grid index (x or y) it's inside
GRID_INDEX_TO_COORDSchanges the cell_(x or y) vars on /datum/spatial_grid_cell to the x or y coordinate on the map for the LOWER LEFT CORNER of the grid cell. +index is from 1 to SPATIAL_GRID_CELLS_PER_SIDE
SPATIAL_GRID_CELLS_PER_SIDEnumber of grid cells per x or y side of all z levels. pass in world.maxx or world.maxy
SPATIAL_GRID_CONTENTS_TYPE_HEARINGeverything that is hearing sensitive is stored in this channel
SPATIAL_GRID_CONTENTS_TYPE_CLIENTSevery movable that has a client in it is stored in this channel
SPATIAL_GRID_CONTENTS_TYPE_ATMOSall atmos machines are stored in this channel (I'm sorry kyler)
HAS_SPATIAL_GRID_CONTENTSwhether movable is itself or containing something which should be in one of the spatial grid channels.
GRID_CELL_REMOVE_ALLremove from every list

Define Details

GET_SPATIAL_INDEX

Takes a coordinate, and spits out the spatial grid index (x or y) it's inside

GRID_CELL_REMOVE_ALL

remove from every list

GRID_INDEX_TO_COORDS

changes the cell_(x or y) vars on /datum/spatial_grid_cell to the x or y coordinate on the map for the LOWER LEFT CORNER of the grid cell. +index is from 1 to SPATIAL_GRID_CELLS_PER_SIDE

HAS_SPATIAL_GRID_CONTENTS

whether movable is itself or containing something which should be in one of the spatial grid channels.

SPATIAL_GRID_CELLSIZE

each cell in a spatial_grid is this many turfs in length and width (with world.max(x or y) being 255, 15 of these fit on each side of a z level)

SPATIAL_GRID_CELLS_PER_SIDE

number of grid cells per x or y side of all z levels. pass in world.maxx or world.maxy

SPATIAL_GRID_CONTENTS_TYPE_ATMOS

all atmos machines are stored in this channel (I'm sorry kyler)

SPATIAL_GRID_CONTENTS_TYPE_CLIENTS

every movable that has a client in it is stored in this channel

SPATIAL_GRID_CONTENTS_TYPE_HEARING

everything that is hearing sensitive is stored in this channel

\ No newline at end of file diff --git a/code/__DEFINES/species_clothing_paths.html b/code/__DEFINES/species_clothing_paths.html new file mode 100644 index 0000000000000..ac097ff9cde8c --- /dev/null +++ b/code/__DEFINES/species_clothing_paths.html @@ -0,0 +1 @@ +code/__DEFINES/species_clothing_paths.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/species_clothing_paths.dm

DEFAULT_UNIFORM_FILEThe dmi for humanoid uniforms
DEFAULT_SHOES_FILEThe dmi for humanoid shoes
DEFAULT_SUIT_FILEThe dmi for humanoid oversuits
DIGITIGRADE_UNIFORM_FILEThe dmi containing digitigrade uniforms
DIGITIGRADE_SHOES_FILEThe dmi containing digitigrade shoes
DIGITIGRADE_SUIT_FILEThe dmi containing digitigrade oversuits

Define Details

DEFAULT_SHOES_FILE

The dmi for humanoid shoes

DEFAULT_SUIT_FILE

The dmi for humanoid oversuits

DEFAULT_UNIFORM_FILE

The dmi for humanoid uniforms

DIGITIGRADE_SHOES_FILE

The dmi containing digitigrade shoes

DIGITIGRADE_SUIT_FILE

The dmi containing digitigrade oversuits

DIGITIGRADE_UNIFORM_FILE

The dmi containing digitigrade uniforms

\ No newline at end of file diff --git a/code/__DEFINES/sprite_accessories.html b/code/__DEFINES/sprite_accessories.html new file mode 100644 index 0000000000000..d680e9faaea62 --- /dev/null +++ b/code/__DEFINES/sprite_accessories.html @@ -0,0 +1 @@ +code/__DEFINES/sprite_accessories.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/sprite_accessories.dm

MUTANT_COLORColor of the sprite accessory will match the owner's mutant color, which is granted by certain species
HAIR_COLORColor of the sprite accessory will match the owner's hair color
FACIAL_HAIR_COLORColor of the sprite accessory will match the owner's facial hair color
EYE_COLORColor of the sprite accessory will match the owner's (left) eye color
USE_MUTANT_COLORUses the species's mutant color for the hair color
USE_FIXED_MUTANT_COLORUses the species's fixed mutant color for the hair color

Define Details

EYE_COLOR

Color of the sprite accessory will match the owner's (left) eye color

FACIAL_HAIR_COLOR

Color of the sprite accessory will match the owner's facial hair color

HAIR_COLOR

Color of the sprite accessory will match the owner's hair color

MUTANT_COLOR

Color of the sprite accessory will match the owner's mutant color, which is granted by certain species

USE_FIXED_MUTANT_COLOR

Uses the species's fixed mutant color for the hair color

USE_MUTANT_COLOR

Uses the species's mutant color for the hair color

\ No newline at end of file diff --git a/code/__DEFINES/stack.html b/code/__DEFINES/stack.html new file mode 100644 index 0000000000000..a342707bfa502 --- /dev/null +++ b/code/__DEFINES/stack.html @@ -0,0 +1 @@ +code/__DEFINES/stack.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/stack.dm

STACK_CHECK_TRAM_FORBIDDENChecks if this is banned from being built on the tram
STACK_CHECK_TRAM_EXCLUSIVEChecks if this can only built on the tram

Define Details

STACK_CHECK_TRAM_EXCLUSIVE

Checks if this can only built on the tram

STACK_CHECK_TRAM_FORBIDDEN

Checks if this is banned from being built on the tram

\ No newline at end of file diff --git a/code/__DEFINES/stack_trace.html b/code/__DEFINES/stack_trace.html new file mode 100644 index 0000000000000..4d22b3f7020ba --- /dev/null +++ b/code/__DEFINES/stack_trace.html @@ -0,0 +1 @@ +code/__DEFINES/stack_trace.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/stack_trace.dm

stack_tracegives us the stack trace from CRASH() without ending the current proc.

Define Details

stack_trace

gives us the stack trace from CRASH() without ending the current proc.

\ No newline at end of file diff --git a/code/__DEFINES/stat_tracking.html b/code/__DEFINES/stat_tracking.html new file mode 100644 index 0000000000000..f599e5fe96911 --- /dev/null +++ b/code/__DEFINES/stat_tracking.html @@ -0,0 +1,3 @@ +code/__DEFINES/stat_tracking.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/stat_tracking.dm

SET_COST_STMTA quick helper for running the code as a statement and profiling its cost. +For example, SET_COST_STMT(var/x = do_work())

Define Details

SET_COST_STMT

A quick helper for running the code as a statement and profiling its cost. +For example, SET_COST_STMT(var/x = do_work())

\ No newline at end of file diff --git a/code/__DEFINES/station.html b/code/__DEFINES/station.html new file mode 100644 index 0000000000000..23d410814eb23 --- /dev/null +++ b/code/__DEFINES/station.html @@ -0,0 +1 @@ +code/__DEFINES/station.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/station.dm

STATION_TRAIT_COST_FULLDefines for the cost of different station traits. This one is the default.
STATION_TRAIT_COST_LOWCost for smaller traits that could fly under the radar, and are only minorly negative/positive if not neutral.
STATION_TRAIT_COST_MINIMALCost for very little, and mainly neutral traits that hardly amount to anything really that interesting.
STATION_TRAIT_PLANETARYOnly run on planet stations
STATION_TRAIT_SPACE_BOUNDOnly run on space stations
STATION_TRAIT_REQUIRES_AIOnly run if AIs are enabled.
STATION_TRAIT_MAP_UNRESTRICTEDNot restricted by space or planet, can always just happen
FUTURE_STATION_TRAITS_FILEThe data file that future station traits forced by an admin are stored in
STATION_RENAME_TIME_LIMITThe amount of time until the station charter can no longer be used to rename the station

Define Details

FUTURE_STATION_TRAITS_FILE

The data file that future station traits forced by an admin are stored in

STATION_RENAME_TIME_LIMIT

The amount of time until the station charter can no longer be used to rename the station

STATION_TRAIT_COST_FULL

Defines for the cost of different station traits. This one is the default.

STATION_TRAIT_COST_LOW

Cost for smaller traits that could fly under the radar, and are only minorly negative/positive if not neutral.

STATION_TRAIT_COST_MINIMAL

Cost for very little, and mainly neutral traits that hardly amount to anything really that interesting.

STATION_TRAIT_MAP_UNRESTRICTED

Not restricted by space or planet, can always just happen

STATION_TRAIT_PLANETARY

Only run on planet stations

STATION_TRAIT_REQUIRES_AI

Only run if AIs are enabled.

STATION_TRAIT_SPACE_BOUND

Only run on space stations

\ No newline at end of file diff --git a/code/__DEFINES/status_effects.html b/code/__DEFINES/status_effects.html new file mode 100644 index 0000000000000..06d7c677168f5 --- /dev/null +++ b/code/__DEFINES/status_effects.html @@ -0,0 +1,5 @@ +code/__DEFINES/status_effects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/status_effects.dm

STATUS_EFFECT_MULTIPLEif it allows multiple instances of the effect
STATUS_EFFECT_UNIQUEif it allows only one, preventing new instances
STATUS_EFFECT_REPLACEif it allows only one, but new instances replace
STATUS_EFFECT_REFRESHif it only allows one, and new instances just instead refresh the timer
STATUS_EFFECT_FAST_PROCESSProcessing flags - used to define the speed at which the status will work +This is fast - 0.2s between ticks (I believe!)
STATUS_EFFECT_NORMAL_PROCESSThis is slower and better for more intensive status effects - 1s between ticks
CURSE_BLINDINGmakes the edges of the target's screen obscured
CURSE_SPAWNINGspawns creatures that attack the target only
CURSE_WASTINGcauses gradual damage
CURSE_GRASPINGhands reach out from the sides of the screen, doing damage and stunning if they hit the target
TRADITIONAL_INCAPACITATEDIf the mob is normal incapacitated. Should never need this, just avoids issues if we ever overexpand this
INCAPABLE_RESTRAINTSIf the incapacitated status effect is being caused by restraints (handcuffs)
INCAPABLE_STASISIf the incapacitated status effect is being caused by stasis (stasis beds)
INCAPABLE_GRABIf the incapacitated status effect is being caused by being agressively grabbed
INCAPACITATED_IGNORINGChecks to see if a mob would be incapacitated even while ignoring some types +Does this by inverting the passed in flags and seeing if we're still incapacitated
MAX_FIRE_STACKSMax amounts of fire stacks a mob can get
MOB_BIG_FIRE_STACK_THRESHOLDIf a mob has a higher threshold than this, the icon shown will be increased to the big fire icon.
become_blindCauses the mob to become blind via the passed source
cure_blindCures the mob's blindness from the passed source, removing blindness wholesale if no sources are left
is_blindIs the mob blind?
is_blind_fromIs the mob blind from the passed source or sources?
become_nearsightedCauses the mob to become nearsighted via the passed source
cure_nearsightedCures the mob's nearsightedness from the passed source, removing nearsighted wholesale if no sources are left
is_nearsightedIs the mob nearsighted?
is_nearsighted_fromIs the mob nearsigthed from the passed source or sources?

Define Details

CURSE_BLINDING

makes the edges of the target's screen obscured

CURSE_GRASPING

hands reach out from the sides of the screen, doing damage and stunning if they hit the target

CURSE_SPAWNING

spawns creatures that attack the target only

CURSE_WASTING

causes gradual damage

INCAPABLE_GRAB

If the incapacitated status effect is being caused by being agressively grabbed

INCAPABLE_RESTRAINTS

If the incapacitated status effect is being caused by restraints (handcuffs)

INCAPABLE_STASIS

If the incapacitated status effect is being caused by stasis (stasis beds)

INCAPACITATED_IGNORING

Checks to see if a mob would be incapacitated even while ignoring some types +Does this by inverting the passed in flags and seeing if we're still incapacitated

MAX_FIRE_STACKS

Max amounts of fire stacks a mob can get

MOB_BIG_FIRE_STACK_THRESHOLD

If a mob has a higher threshold than this, the icon shown will be increased to the big fire icon.

STATUS_EFFECT_FAST_PROCESS

Processing flags - used to define the speed at which the status will work +This is fast - 0.2s between ticks (I believe!)

STATUS_EFFECT_MULTIPLE

if it allows multiple instances of the effect

STATUS_EFFECT_NORMAL_PROCESS

This is slower and better for more intensive status effects - 1s between ticks

STATUS_EFFECT_REFRESH

if it only allows one, and new instances just instead refresh the timer

STATUS_EFFECT_REPLACE

if it allows only one, but new instances replace

STATUS_EFFECT_UNIQUE

if it allows only one, preventing new instances

TRADITIONAL_INCAPACITATED

If the mob is normal incapacitated. Should never need this, just avoids issues if we ever overexpand this

become_blind

Causes the mob to become blind via the passed source

become_nearsighted

Causes the mob to become nearsighted via the passed source

cure_blind

Cures the mob's blindness from the passed source, removing blindness wholesale if no sources are left

cure_nearsighted

Cures the mob's nearsightedness from the passed source, removing nearsighted wholesale if no sources are left

is_blind

Is the mob blind?

is_blind_from

Is the mob blind from the passed source or sources?

is_nearsighted

Is the mob nearsighted?

is_nearsighted_from

Is the mob nearsigthed from the passed source or sources?

\ No newline at end of file diff --git a/code/__DEFINES/strippable.html b/code/__DEFINES/strippable.html new file mode 100644 index 0000000000000..2c6ecc43f7381 --- /dev/null +++ b/code/__DEFINES/strippable.html @@ -0,0 +1 @@ +code/__DEFINES/strippable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/strippable.dm

STRIPPABLE_OBSCURING_NONEThis slot is not obscured.
STRIPPABLE_OBSCURING_COMPLETELYThis slot is completely obscured, and cannot be accessed.
STRIPPABLE_OBSCURING_HIDDENThis slot can't be seen, but can be accessed.

Define Details

STRIPPABLE_OBSCURING_COMPLETELY

This slot is completely obscured, and cannot be accessed.

STRIPPABLE_OBSCURING_HIDDEN

This slot can't be seen, but can be accessed.

STRIPPABLE_OBSCURING_NONE

This slot is not obscured.

\ No newline at end of file diff --git a/code/__DEFINES/subsystems.html b/code/__DEFINES/subsystems.html new file mode 100644 index 0000000000000..cdcd95d625bad --- /dev/null +++ b/code/__DEFINES/subsystems.html @@ -0,0 +1,45 @@ +code/__DEFINES/subsystems.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/subsystems.dm

Defines for subsystems and overlays

+

Lots of important stuff in here, make sure you have your brain switched on +when editing this file

+

DB defines

DB_MAJOR_VERSIONDB major schema version
DB_MINOR_VERSIONDB minor schema version

Timing subsystem

TIMER_UNIQUEDon't run if there is an identical unique timer active
TIMER_OVERRIDEFor unique timers: Replace the old timer rather then not start this one
TIMER_CLIENT_TIMETiming should be based on how timing progresses on clients, not the server.
TIMER_STOPPABLETimer can be stopped using deltimer()
TIMER_NO_HASH_WAITprevents distinguishing identical timers with the wait variable
TIMER_LOOPLoops the timer repeatedly until qdeleted
TIMER_DELETE_MEDelete the timer on parent datum Destroy() and when deltimer'd
TIMER_ID_NULLEmpty ID define
PROCESS_KILLUsed to trigger object removal from a processing list

Initialization subsystem

INITIALIZATION_INSSATOMSNew should not call Initialize
INITIALIZATION_INNEW_MAPLOADNew should call Initialize(TRUE)
INITIALIZATION_INNEW_REGULARNew should call Initialize(FALSE)

Initialization hints

INITIALIZE_HINT_NORMALNothing happens
INITIALIZE_HINT_LATELOADcall LateInitialize at the end of all atom Initialization
INITIALIZE_HINT_QDELCall qdel on the atom after initialization
INITIALIZE_IMMEDIATEtype and all subtypes should always immediately call Initialize in New()

SS initialization hints

SS_INIT_FAILURENegative values indicate a failure or warning of some kind, positive are good. +0 and 1 are unused so that TRUE and FALSE are guaranteed to be invalid values. +Subsystem failed to initialize entirely. Print a warning, log, and disable firing.
SS_INIT_NONEThe default return value which must be overridden. Will succeed with a warning.
SS_INIT_SUCCESSSubsystem initialized successfully.
SS_INIT_NO_NEEDIf your system doesn't need to be initialized (by being disabled or something)
SS_INIT_NO_MESSAGESuccessfully initialized, BUT do not announce it to players (generally to hide game mechanics it would otherwise spoil)

SS initialization load orders

GAME_STATE_STARTUPGame is loading
GAME_STATE_PREGAMEGame is loaded and in pregame lobby
GAME_STATE_SETTING_UPGame is attempting to start the round
GAME_STATE_PLAYINGGame has round in progress
GAME_STATE_FINISHEDGame has round finished
END_ROUND_AS_NORMALDefault, round is not being forced to end.
FORCE_END_ROUNDEnd the round now as normal
ADMIN_FORCE_END_ROUNDFor admin forcing roundend, can be used to distinguish the two
addtimerCreate a new timer and add it to the queue.
SS_INIT_TIMER_KEYThe timer key used to know how long subsystem initialization takes
VOTE_COUNT_METHOD_SINGLEFirst past the post. One selection per person, and the selection with the most votes wins.
VOTE_COUNT_METHOD_MULTIApproval voting. Any number of selections per person, and the selection with the most votes wins.
VOTE_WINNER_METHOD_SIMPLEThe choice with the most votes wins. Ties are broken by the first choice to reach that number of votes.
VOTE_WINNER_METHOD_WEIGHTED_RANDOMThe winning choice is selected randomly based on the number of votes each choice has.
VOTE_WINNER_METHOD_NONEThere is no winner for this vote.
VOTE_AVAILABLEReturned by /datum/vote/proc/can_be_initiated to denote the vote is valid and can be initiated.

Define Details

ADMIN_FORCE_END_ROUND

For admin forcing roundend, can be used to distinguish the two

DB_MAJOR_VERSION

DB major schema version

+

Update this whenever the db schema changes

+

make sure you add an update to the schema_version stable in the db changelog

DB_MINOR_VERSION

DB minor schema version

+

Update this whenever the db schema changes

+

make sure you add an update to the schema_version stable in the db changelog

END_ROUND_AS_NORMAL

Default, round is not being forced to end.

FORCE_END_ROUND

End the round now as normal

GAME_STATE_FINISHED

Game has round finished

GAME_STATE_PLAYING

Game has round in progress

GAME_STATE_PREGAME

Game is loaded and in pregame lobby

GAME_STATE_SETTING_UP

Game is attempting to start the round

GAME_STATE_STARTUP

Game is loading

INITIALIZATION_INNEW_MAPLOAD

New should call Initialize(TRUE)

INITIALIZATION_INNEW_REGULAR

New should call Initialize(FALSE)

INITIALIZATION_INSSATOMS

New should not call Initialize

INITIALIZE_HINT_LATELOAD

call LateInitialize at the end of all atom Initialization

+

The item will be added to the late_loaders list, this is iterated over after +initialization of subsystems is complete and calls LateInitalize on the atom +see this file for the LateIntialize proc

INITIALIZE_HINT_NORMAL

Nothing happens

INITIALIZE_HINT_QDEL

Call qdel on the atom after initialization

INITIALIZE_IMMEDIATE

type and all subtypes should always immediately call Initialize in New()

PROCESS_KILL

Used to trigger object removal from a processing list

SS_INIT_FAILURE

Negative values indicate a failure or warning of some kind, positive are good. +0 and 1 are unused so that TRUE and FALSE are guaranteed to be invalid values. +Subsystem failed to initialize entirely. Print a warning, log, and disable firing.

SS_INIT_NONE

The default return value which must be overridden. Will succeed with a warning.

SS_INIT_NO_MESSAGE

Successfully initialized, BUT do not announce it to players (generally to hide game mechanics it would otherwise spoil)

SS_INIT_NO_NEED

If your system doesn't need to be initialized (by being disabled or something)

SS_INIT_SUCCESS

Subsystem initialized successfully.

SS_INIT_TIMER_KEY

The timer key used to know how long subsystem initialization takes

TIMER_CLIENT_TIME

Timing should be based on how timing progresses on clients, not the server.

+

Tracking this is more expensive, +should only be used in conjunction with things that have to progress client side, such as +animate() or sound()

TIMER_DELETE_ME

Delete the timer on parent datum Destroy() and when deltimer'd

TIMER_ID_NULL

Empty ID define

TIMER_LOOP

Loops the timer repeatedly until qdeleted

+

In most cases you want a subsystem instead, so don't use this unless you have a good reason

TIMER_NO_HASH_WAIT

prevents distinguishing identical timers with the wait variable

+

To be used with TIMER_UNIQUE

TIMER_OVERRIDE

For unique timers: Replace the old timer rather then not start this one

TIMER_STOPPABLE

Timer can be stopped using deltimer()

TIMER_UNIQUE

Don't run if there is an identical unique timer active

+

if the arguments to addtimer are the same as an existing timer, it doesn't create a new timer, +and returns the id of the existing timer

VOTE_AVAILABLE

Returned by /datum/vote/proc/can_be_initiated to denote the vote is valid and can be initiated.

VOTE_COUNT_METHOD_MULTI

Approval voting. Any number of selections per person, and the selection with the most votes wins.

VOTE_COUNT_METHOD_SINGLE

First past the post. One selection per person, and the selection with the most votes wins.

VOTE_WINNER_METHOD_NONE

There is no winner for this vote.

VOTE_WINNER_METHOD_SIMPLE

The choice with the most votes wins. Ties are broken by the first choice to reach that number of votes.

VOTE_WINNER_METHOD_WEIGHTED_RANDOM

The winning choice is selected randomly based on the number of votes each choice has.

addtimer

Create a new timer and add it to the queue.

+
\ No newline at end of file diff --git a/code/__DEFINES/supermatter.html b/code/__DEFINES/supermatter.html new file mode 100644 index 0000000000000..61de542019b52 --- /dev/null +++ b/code/__DEFINES/supermatter.html @@ -0,0 +1,19 @@ +code/__DEFINES/supermatter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/supermatter.dm

MIASMA_CONSUMPTION_PPThe minimum pressure for a pure miasma atmosphere to begin being consumed. Higher values mean it takes more miasma pressure to make miasma start being consumed. Should be >= 0
MIASMA_PRESSURE_SCALINGHow the amount of miasma consumed per tick scales with partial pressure. Higher values decrease the rate miasma consumption scales with partial pressure. Should be >0
MIASMA_GASMIX_SCALINGHow much the amount of miasma consumed per tick scales with gasmix power ratio. Higher values means gasmix has a greater effect on the miasma consumed.
MIASMA_POWER_GAINThe amount of matter power generated for every mole of miasma consumed. Higher values mean miasma generates more power.
CO2_CONSUMPTION_PPThe minimum pressure for a pure CO2 atmosphere to begin being consumed. Higher values mean it takes more CO2 pressure to make CO2 be consumed. Should be >= 0
CO2_PRESSURE_SCALINGHow the amount of CO2 consumed per tick scales with partial pressure. Higher values decrease the rate CO2 consumption scales with partial pressure. Should be >0
CO2_GASMIX_SCALINGHow much the amount of CO2 consumed per tick scales with gasmix power ratio. Higher values means gasmix has a greater effect on the CO2 consumed.
GAS_HEAT_POWER_SCALING_COEFFICIENTThe internal energy gain coefficient.
BASE_POWER_TRANSMISSION_RATEThe base zap power transmission of the supermatter crystal in W/MeV.
DETONATION_RADIATION_RANGEAll humans within this range will be irradiated
SUPERMATTER_FAST_HEALING_RATEIf the crystal is healing faster than this per damage check, we suppress the Common radio notification for the cooldown
SUPERMATTER_COUNTDOWN_TIMEHow long it takes for the supermatter to delaminate after hitting 0 integrity
SUPERMATTER_SLIVER_REMOVED_COUNTDOWN_TIMEHow long it takes for the supermatter to delaminate after hitting 0 integrity if a sliver has been removed
SUPERMATTER_ACCENT_SOUND_MIN_COOLDOWNto prevent accent sounds from layering
POWERLOSS_CUBIC_DIVISORThe divisor scaling value for cubic power loss.
POWERLOSS_LINEAR_RATEThe rate at which the linear power loss function scales with power.
SM_DELAM_PRIO_NONEMeans it's not forced, sm decides itself by checking the /datum/sm_delam/proc/can_select
SM_DELAM_PRIO_IN_GAMEIn-game factors like the destabilizing crystal /obj/item/destabilizing_crystal. +Purged when SM heals to 100
SM_DELAM_STRATEGY_PURGEPurge the current forced delam and make it zero again (back to normal). +Needs to be higher priority than current forced_delam though.
SM_PROCESS_DISABLEDTotally disable the processing of the SM, used on the hugbox
SM_PROCESS_TIMESTOPTotally disable the processing of the SM, set when the timestop effect hit the SM
SM_PROCESS_ENABLEDEnable the SM to process atmos and internal procs
SUPERMATTER_ERRORUnknown status, shouldn't happen but just in case.
SUPERMATTER_INACTIVENo or minimal energy
SUPERMATTER_NORMALNormal operation
SUPERMATTER_NOTIFYAmbient temp 80% of the default temp for SM to take damage.
SUPERMATTER_WARNINGIntegrity below /obj/machinery/power/supermatter_crystal/var/warning_point. Start complaining on comms.
SUPERMATTER_DANGERIntegrity below /obj/machinery/power/supermatter_crystal/var/danger_point. Start spawning anomalies.
SUPERMATTER_EMERGENCYIntegrity below /obj/machinery/power/supermatter_crystal/var/emergency_point. Start complaining to more people.
SUPERMATTER_DELAMINATINGCurrently counting down to delamination. True /obj/machinery/power/supermatter_crystal/var/final_countdown
SM_POWER_EXTERNAL_IMMEDIATEHow much energy we get from external factors that are applied immediately.
SM_POWER_EXTERNAL_TRICKLEHow much energy we get from external factors that are applied over time.
SM_POWER_HEATHow much energy is gained from the temperature. Enabled by gas.
SM_POWER_POWERLOSSHow much energy the SM loses. Happens over time. +Order matters here. We depend on current power + power gained from the factors above for the loss calc.
SM_POWER_POWERLOSS_GASHow much of the energy the SM loses is recouped. From gas factors here. +Order matters here. We depend on the powerloss amount.
SM_POWER_POWERLOSS_SOOTHEDHow much of the energy the SM loses is recouped. From the psychologist this time. +Order matters here. We depend on the powerloss amount.
SM_DAMAGE_HEATHow many damage we take from heat.
SM_DAMAGE_POWERHow many damage we take from too much internal energy.
SM_DAMAGE_MOLESHow many damage we take from too much moles around us.
SM_DAMAGE_HEAL_HEATHow many we healed. Happens when temp is low.
SM_DAMAGE_EXTERNALHow many damage do we take from external factors. +This one is discrete.
SM_DAMAGE_SPACEDHow many damage do we take from space exposure. Here to prevent people from spacing SM chambers. +Also discrete.
SM_WASTE_BASEHow much waste multiplier we get just from existing.
SM_WASTE_GASHow much waste multiplier we get because of the gases around us.
SM_WASTE_SOOTHEDHow much waste multiplier we (don't) get because there is a psychologist.
SM_TEMP_LIMIT_BASEHow many kelvins we get before taking damage, Given by god.
SM_TEMP_LIMIT_GASHow many extra kelvins we get before taking damage, this time from gases. +Order matters, depends on base resistance.
SM_TEMP_LIMIT_SOOTHEDHow many extra kelvins we get before taking damage, this time from psychologist.
SM_TEMP_LIMIT_LOW_MOLESHow many extra kelvins we get before taking damage because our moles are low. I know, this is fucking hilarious. +Order matters, depends on base resistance.
SM_ZAP_BASEHow much we are multiplying our zap energy.
SM_ZAP_GASHow much we are multiplying our zap energy because of gas factors.
CASCADE_DELAMINATIONDelamination types.
SUPERMATTER_COLOURColours used for effects.

Define Details

BASE_POWER_TRANSMISSION_RATE

The base zap power transmission of the supermatter crystal in W/MeV.

CASCADE_DELAMINATION

Delamination types.

CO2_CONSUMPTION_PP

The minimum pressure for a pure CO2 atmosphere to begin being consumed. Higher values mean it takes more CO2 pressure to make CO2 be consumed. Should be >= 0

CO2_GASMIX_SCALING

How much the amount of CO2 consumed per tick scales with gasmix power ratio. Higher values means gasmix has a greater effect on the CO2 consumed.

CO2_PRESSURE_SCALING

How the amount of CO2 consumed per tick scales with partial pressure. Higher values decrease the rate CO2 consumption scales with partial pressure. Should be >0

DETONATION_RADIATION_RANGE

All humans within this range will be irradiated

GAS_HEAT_POWER_SCALING_COEFFICIENT

The internal energy gain coefficient.

MIASMA_CONSUMPTION_PP

The minimum pressure for a pure miasma atmosphere to begin being consumed. Higher values mean it takes more miasma pressure to make miasma start being consumed. Should be >= 0

MIASMA_GASMIX_SCALING

How much the amount of miasma consumed per tick scales with gasmix power ratio. Higher values means gasmix has a greater effect on the miasma consumed.

MIASMA_POWER_GAIN

The amount of matter power generated for every mole of miasma consumed. Higher values mean miasma generates more power.

MIASMA_PRESSURE_SCALING

How the amount of miasma consumed per tick scales with partial pressure. Higher values decrease the rate miasma consumption scales with partial pressure. Should be >0

POWERLOSS_CUBIC_DIVISOR

The divisor scaling value for cubic power loss.

POWERLOSS_LINEAR_RATE

The rate at which the linear power loss function scales with power.

SM_DAMAGE_EXTERNAL

How many damage do we take from external factors. +This one is discrete.

SM_DAMAGE_HEAL_HEAT

How many we healed. Happens when temp is low.

SM_DAMAGE_HEAT

How many damage we take from heat.

SM_DAMAGE_MOLES

How many damage we take from too much moles around us.

SM_DAMAGE_POWER

How many damage we take from too much internal energy.

SM_DAMAGE_SPACED

How many damage do we take from space exposure. Here to prevent people from spacing SM chambers. +Also discrete.

SM_DELAM_PRIO_IN_GAME

In-game factors like the destabilizing crystal /obj/item/destabilizing_crystal. +Purged when SM heals to 100

SM_DELAM_PRIO_NONE

Means it's not forced, sm decides itself by checking the /datum/sm_delam/proc/can_select

SM_DELAM_STRATEGY_PURGE

Purge the current forced delam and make it zero again (back to normal). +Needs to be higher priority than current forced_delam though.

SM_POWER_EXTERNAL_IMMEDIATE

How much energy we get from external factors that are applied immediately.

SM_POWER_EXTERNAL_TRICKLE

How much energy we get from external factors that are applied over time.

SM_POWER_HEAT

How much energy is gained from the temperature. Enabled by gas.

SM_POWER_POWERLOSS

How much energy the SM loses. Happens over time. +Order matters here. We depend on current power + power gained from the factors above for the loss calc.

SM_POWER_POWERLOSS_GAS

How much of the energy the SM loses is recouped. From gas factors here. +Order matters here. We depend on the powerloss amount.

SM_POWER_POWERLOSS_SOOTHED

How much of the energy the SM loses is recouped. From the psychologist this time. +Order matters here. We depend on the powerloss amount.

SM_PROCESS_DISABLED

Totally disable the processing of the SM, used on the hugbox

SM_PROCESS_ENABLED

Enable the SM to process atmos and internal procs

SM_PROCESS_TIMESTOP

Totally disable the processing of the SM, set when the timestop effect hit the SM

SM_TEMP_LIMIT_BASE

How many kelvins we get before taking damage, Given by god.

SM_TEMP_LIMIT_GAS

How many extra kelvins we get before taking damage, this time from gases. +Order matters, depends on base resistance.

SM_TEMP_LIMIT_LOW_MOLES

How many extra kelvins we get before taking damage because our moles are low. I know, this is fucking hilarious. +Order matters, depends on base resistance.

SM_TEMP_LIMIT_SOOTHED

How many extra kelvins we get before taking damage, this time from psychologist.

SM_WASTE_BASE

How much waste multiplier we get just from existing.

SM_WASTE_GAS

How much waste multiplier we get because of the gases around us.

SM_WASTE_SOOTHED

How much waste multiplier we (don't) get because there is a psychologist.

SM_ZAP_BASE

How much we are multiplying our zap energy.

SM_ZAP_GAS

How much we are multiplying our zap energy because of gas factors.

SUPERMATTER_ACCENT_SOUND_MIN_COOLDOWN

to prevent accent sounds from layering

SUPERMATTER_COLOUR

Colours used for effects.

SUPERMATTER_COUNTDOWN_TIME

How long it takes for the supermatter to delaminate after hitting 0 integrity

SUPERMATTER_DANGER

Integrity below /obj/machinery/power/supermatter_crystal/var/danger_point. Start spawning anomalies.

SUPERMATTER_DELAMINATING

Currently counting down to delamination. True /obj/machinery/power/supermatter_crystal/var/final_countdown

SUPERMATTER_EMERGENCY

Integrity below /obj/machinery/power/supermatter_crystal/var/emergency_point. Start complaining to more people.

SUPERMATTER_ERROR

Unknown status, shouldn't happen but just in case.

SUPERMATTER_FAST_HEALING_RATE

If the crystal is healing faster than this per damage check, we suppress the Common radio notification for the cooldown

SUPERMATTER_INACTIVE

No or minimal energy

SUPERMATTER_NORMAL

Normal operation

SUPERMATTER_NOTIFY

Ambient temp 80% of the default temp for SM to take damage.

SUPERMATTER_SLIVER_REMOVED_COUNTDOWN_TIME

How long it takes for the supermatter to delaminate after hitting 0 integrity if a sliver has been removed

SUPERMATTER_WARNING

Integrity below /obj/machinery/power/supermatter_crystal/var/warning_point. Start complaining on comms.

\ No newline at end of file diff --git a/code/__DEFINES/surgery.html b/code/__DEFINES/surgery.html new file mode 100644 index 0000000000000..ba2252a14ae72 --- /dev/null +++ b/code/__DEFINES/surgery.html @@ -0,0 +1 @@ +code/__DEFINES/surgery.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/surgery.dm

IS_ORGANIC_ORGANHelper to figure out if an organ is organic
IS_ROBOTIC_ORGANHelper to figure out if an organ is robotic
ORGAN_ORGANICOrganic organs, the default. Don't get affected by EMPs.
ORGAN_ROBOTICSynthetic organs, or cybernetic organs. Reacts to EMPs and don't deteriorate or heal
ORGAN_MINERALMineral organs. Snowflakey.
ORGAN_FROZENFrozen organs, don't deteriorate
ORGAN_FAILINGFailing organs perform damaging effects until replaced or fixed, and typically they don't function properly either
ORGAN_EMPSynthetic organ affected by an EMP. Deteriorates over time.
ORGAN_VITALCurrently only the brain - Removing this organ KILLS the owner
ORGAN_EDIBLECan be eaten
ORGAN_UNREMOVABLECan't be removed using surgery or other common means
ORGAN_HIDDENCan't be seen by scanners, doesn't anger body purists
ORGAN_VIRGINHas the organ already been inserted inside someone
ORGAN_PROMINENTALWAYS show this when scanned by advanced scanners, even if it is totally healthy
ORGAN_HAZARDOUSAn organ that is ostensibly dangerous when inside a body
IS_ORGANIC_LIMBHelper to figure out if a limb is organic
IS_ROBOTIC_LIMBHelper to figure out if a limb is robotic
IS_PEG_LIMBHelper to figure out if a limb is a peg limb
BODYPART_UNREMOVABLEBodypart cannot be dismembered or amputated
BODYPART_PSEUDOPARTBodypart is a pseudopart (like a chainsaw arm)
BODYPART_IMPLANTEDBodypart did not match the owner's default bodypart limb_id when surgically implanted
BODYPART_UNHUSKABLEBodypart never displays as a husk
BP_BLOCK_CHANGE_SPECIESBodypart does not get replaced during set_species()
HEAD_HAIRHead can have hair
HEAD_FACIAL_HAIRHead can have facial hair
HEAD_LIPSHead can have lips
HEAD_EYESPRITESHead can have eye sprites
HEAD_EYECOLORHead will have colored eye sprites
HEAD_EYEHOLESHead can have eyeholes when missing eyes
HEAD_DEBRAINHead can have debrain overlay
HEAD_ALL_FEATURESAll head flags, default for most heads
SURGERY_STEP_FAILReturn value when the surgery step fails :(
SURGERY_IGNORE_CLOTHESWill allow the surgery to bypass clothes
SURGERY_SELF_OPERABLEWill allow the surgery to be performed by the user on themselves.
SURGERY_REQUIRE_RESTINGWill allow the surgery to work on mobs that aren't lying down.
SURGERY_REQUIRE_LIMBWill allow the surgery to work only if there's a limb.
SURGERY_REQUIRES_REAL_LIMBWill allow the surgery to work only if there's a real (eg. not pseudopart) limb.
SURGERY_MORBID_CURIOSITYWill grant a bonus during surgery steps to users with TRAIT_MORBID while they're using tools with CRUEL_IMPLEMENT
IS_IN_INVALID_SURGICAL_POSITIONReturn true if target is not in a valid body position for the surgery

Define Details

BODYPART_IMPLANTED

Bodypart did not match the owner's default bodypart limb_id when surgically implanted

BODYPART_PSEUDOPART

Bodypart is a pseudopart (like a chainsaw arm)

BODYPART_UNHUSKABLE

Bodypart never displays as a husk

BODYPART_UNREMOVABLE

Bodypart cannot be dismembered or amputated

BP_BLOCK_CHANGE_SPECIES

Bodypart does not get replaced during set_species()

HEAD_ALL_FEATURES

All head flags, default for most heads

HEAD_DEBRAIN

Head can have debrain overlay

HEAD_EYECOLOR

Head will have colored eye sprites

HEAD_EYEHOLES

Head can have eyeholes when missing eyes

HEAD_EYESPRITES

Head can have eye sprites

HEAD_FACIAL_HAIR

Head can have facial hair

HEAD_HAIR

Head can have hair

HEAD_LIPS

Head can have lips

IS_IN_INVALID_SURGICAL_POSITION

Return true if target is not in a valid body position for the surgery

IS_ORGANIC_LIMB

Helper to figure out if a limb is organic

IS_ORGANIC_ORGAN

Helper to figure out if an organ is organic

IS_PEG_LIMB

Helper to figure out if a limb is a peg limb

IS_ROBOTIC_LIMB

Helper to figure out if a limb is robotic

IS_ROBOTIC_ORGAN

Helper to figure out if an organ is robotic

ORGAN_EDIBLE

Can be eaten

ORGAN_EMP

Synthetic organ affected by an EMP. Deteriorates over time.

ORGAN_FAILING

Failing organs perform damaging effects until replaced or fixed, and typically they don't function properly either

ORGAN_FROZEN

Frozen organs, don't deteriorate

ORGAN_HAZARDOUS

An organ that is ostensibly dangerous when inside a body

ORGAN_HIDDEN

Can't be seen by scanners, doesn't anger body purists

ORGAN_MINERAL

Mineral organs. Snowflakey.

ORGAN_ORGANIC

Organic organs, the default. Don't get affected by EMPs.

ORGAN_PROMINENT

ALWAYS show this when scanned by advanced scanners, even if it is totally healthy

ORGAN_ROBOTIC

Synthetic organs, or cybernetic organs. Reacts to EMPs and don't deteriorate or heal

ORGAN_UNREMOVABLE

Can't be removed using surgery or other common means

ORGAN_VIRGIN

Has the organ already been inserted inside someone

ORGAN_VITAL

Currently only the brain - Removing this organ KILLS the owner

SURGERY_IGNORE_CLOTHES

Will allow the surgery to bypass clothes

SURGERY_MORBID_CURIOSITY

Will grant a bonus during surgery steps to users with TRAIT_MORBID while they're using tools with CRUEL_IMPLEMENT

SURGERY_REQUIRES_REAL_LIMB

Will allow the surgery to work only if there's a real (eg. not pseudopart) limb.

SURGERY_REQUIRE_LIMB

Will allow the surgery to work only if there's a limb.

SURGERY_REQUIRE_RESTING

Will allow the surgery to work on mobs that aren't lying down.

SURGERY_SELF_OPERABLE

Will allow the surgery to be performed by the user on themselves.

SURGERY_STEP_FAIL

Return value when the surgery step fails :(

\ No newline at end of file diff --git a/code/__DEFINES/text.html b/code/__DEFINES/text.html new file mode 100644 index 0000000000000..31e5ac7bf96a3 --- /dev/null +++ b/code/__DEFINES/text.html @@ -0,0 +1,22 @@ +code/__DEFINES/text.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/text.dm

FOURSPACESDoes 4 spaces. Used as a makeshift tabulator.
MAPTEXTStandard maptext +Prepares a text to be used for maptext. Use this so it doesn't look hideous.
MAPTEXT_PIXELLARIPixel-perfect scaled fonts for use in the MAP element as defined in skin.dmf
MAPTEXT_GRAND9KStandard size (ie: normal runechat) - Size options: 6pt 12pt 18pt.
MAPTEXT_TINY_UNICODESmall size. (ie: context subtooltips, spell delays) - Size options: 12pt 24pt.
MAPTEXT_SPESSFONTSmallest size. (ie: whisper runechat) - Size options: 6pt 12pt 18pt.
MAPTEXT_VCR_OSD_MONOPrepares a text to be used for maptext, using a variable size font.
WXH_TO_HEIGHTMacro from Lummox used to get height from a MeasureText proc. +resolves the MeasureText() return value once, then resolves the height, then sets return_var to that.
SANITIZE_FILENAMERemoves characters incompatible with file names.
STRIP_HTML_SIMPLESimply removes the < and > characters, and limits the length of the message.
STRIP_HTML_FULLRemoves everything enclose in < and > inclusive of the bracket, and limits the length of the message.
PREVENT_CHARACTER_TRIM_LOSSstuff like copytext(input, length(input)) will trim the last character of the input, +because DM does it so it copies until the char BEFORE the end arg, so we need to bump end by 1 in these cases.
LOWER_TEXTBYOND's string procs don't support being used on datum references (as in it doesn't look for a name for stringification) +We just use this macro to ensure that we will only pass strings to this BYOND-level function without developers needing to really worry about it.
STRING_DIRECTORYFolder directory for strings
BRAIN_DAMAGE_FILEFile location for brain damage traumas
ION_FILEFile location for AI ion laws
PIRATE_NAMES_FILEFile location for pirate names
REDPILL_FILEFile location for redpill questions
ARCADE_FILEFile location for arcade names
BOOMER_FILEFile location for boomer meme catchphrases
LOCATIONS_FILEFile location for locations on the station
WANTED_FILEFile location for wanted posters messages
VISTA_FILEFile location for really dumb suggestions memes
FLESH_SCAR_FILEFile location for flesh wound descriptions
BONE_SCAR_FILEFile location for bone wound descriptions
METAL_SCAR_FILEFile location for metalic wound descriptions
SCAR_LOC_FILEFile location for scar wound descriptions
EXODRONE_FILEFile location for exodrone descriptions
CLOWN_NONSENSE_FILEFile location for clown honk descriptions
CULT_SHUTTLE_CURSEFile location for cult shuttle curse descriptions
EIGENSTASIUM_FILEFile location for eigenstasium lines
HALLUCINATION_FILEFile location for hallucination lines
NINJA_FILEFile location for ninja lines
SPLASH_FILEFile loation for title splashes
MOTHER_FILEFile location for mother hallucination lines

Define Details

ARCADE_FILE

File location for arcade names

BONE_SCAR_FILE

File location for bone wound descriptions

BOOMER_FILE

File location for boomer meme catchphrases

BRAIN_DAMAGE_FILE

File location for brain damage traumas

CLOWN_NONSENSE_FILE

File location for clown honk descriptions

CULT_SHUTTLE_CURSE

File location for cult shuttle curse descriptions

EIGENSTASIUM_FILE

File location for eigenstasium lines

EXODRONE_FILE

File location for exodrone descriptions

FLESH_SCAR_FILE

File location for flesh wound descriptions

FOURSPACES

Does 4 spaces. Used as a makeshift tabulator.

HALLUCINATION_FILE

File location for hallucination lines

ION_FILE

File location for AI ion laws

LOCATIONS_FILE

File location for locations on the station

LOWER_TEXT

BYOND's string procs don't support being used on datum references (as in it doesn't look for a name for stringification) +We just use this macro to ensure that we will only pass strings to this BYOND-level function without developers needing to really worry about it.

MAPTEXT

Standard maptext +Prepares a text to be used for maptext. Use this so it doesn't look hideous.

MAPTEXT_GRAND9K

Standard size (ie: normal runechat) - Size options: 6pt 12pt 18pt.

MAPTEXT_PIXELLARI

Pixel-perfect scaled fonts for use in the MAP element as defined in skin.dmf

+

Four sizes to choose from, use the sizes as mentioned below. +Between the variations and a step there should be an option that fits your use case. +BYOND uses pt sizing, different than px used in TGUI. Using px will make it look blurry due to poor antialiasing.

+

Default sizes are prefilled in the macro for ease of use and a consistent visual look. +To use a step other than the default in the macro, specify it in a span style. +For example: MAPTEXT_PIXELLARI("Some large maptext here") +Large size (ie: context tooltips) - Size options: 12pt 24pt.

MAPTEXT_SPESSFONT

Smallest size. (ie: whisper runechat) - Size options: 6pt 12pt 18pt.

MAPTEXT_TINY_UNICODE

Small size. (ie: context subtooltips, spell delays) - Size options: 12pt 24pt.

MAPTEXT_VCR_OSD_MONO

Prepares a text to be used for maptext, using a variable size font.

+

More flexible but doesn't scale pixel perfect to BYOND icon resolutions. +(May be blurry.) Can use any size in pt or px.

+

You MUST Specify the size when using the macro +For example: MAPTEXT_VCR_OSD_MONO("Some large maptext here") +Prepares a text to be used for maptext, using a variable size font. +Variable size font. More flexible but doesn't scale pixel perfect to BYOND icon resolutions. (May be blurry.) Can use any size in pt or px.

METAL_SCAR_FILE

File location for metalic wound descriptions

MOTHER_FILE

File location for mother hallucination lines

NINJA_FILE

File location for ninja lines

PIRATE_NAMES_FILE

File location for pirate names

PREVENT_CHARACTER_TRIM_LOSS

stuff like copytext(input, length(input)) will trim the last character of the input, +because DM does it so it copies until the char BEFORE the end arg, so we need to bump end by 1 in these cases.

REDPILL_FILE

File location for redpill questions

SANITIZE_FILENAME

Removes characters incompatible with file names.

SCAR_LOC_FILE

File location for scar wound descriptions

SPLASH_FILE

File loation for title splashes

STRING_DIRECTORY

Folder directory for strings

STRIP_HTML_FULL

Removes everything enclose in < and > inclusive of the bracket, and limits the length of the message.

STRIP_HTML_SIMPLE

Simply removes the < and > characters, and limits the length of the message.

VISTA_FILE

File location for really dumb suggestions memes

WANTED_FILE

File location for wanted posters messages

WXH_TO_HEIGHT

Macro from Lummox used to get height from a MeasureText proc. +resolves the MeasureText() return value once, then resolves the height, then sets return_var to that.

\ No newline at end of file diff --git a/code/__DEFINES/tgs.html b/code/__DEFINES/tgs.html new file mode 100644 index 0000000000000..587412c07d79d --- /dev/null +++ b/code/__DEFINES/tgs.html @@ -0,0 +1 @@ +code/__DEFINES/tgs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/tgs.dm

TGS_FILE2TEXT_NATIVEConsumers SHOULD create this define if you want to do TGS configuration outside of this file.
TGS_EVENT_REBOOT_MODE_CHANGEBefore a reboot mode change, extras parameters are the current and new reboot mode enums.
TGS_EVENT_PORT_SWAPBefore a port change is about to happen, extra parameters is new port.
TGS_EVENT_INSTANCE_RENAMEDBefore the instance is renamed, extra parameter is the new name.
TGS_EVENT_WATCHDOG_REATTACHAfter the watchdog reattaches to DD, extra parameter is the new /datum/tgs_version of the server.
TGS_EVENT_HEALTH_CHECKWhen the watchdog sends a health check to DD. No parameters.
TGS_EVENT_REPO_RESET_ORIGINWhen the repository is reset to its origin reference. Parameters: Reference name, Commit SHA.
TGS_EVENT_REPO_CHECKOUTWhen the repository performs a checkout. Parameters: Checkout git object.
TGS_EVENT_REPO_FETCHWhen the repository performs a fetch operation. No parameters.
TGS_EVENT_REPO_MERGE_PULL_REQUESTWhen the repository test merges. Parameters: PR Number, PR Sha, (Nullable) Comment made by TGS user.
TGS_EVENT_REPO_PRE_SYNCHRONIZEBefore the repository makes a sychronize operation. Parameters: Absolute repostiory path.
TGS_EVENT_ENGINE_INSTALL_STARTBefore a engine install operation begins. Parameters: Version string of the installing engine.
TGS_EVENT_ENGINE_INSTALL_FAILWhen a engine install operation fails. Parameters: Error message
TGS_EVENT_ENGINE_ACTIVE_VERSION_CHANGEWhen the active engine version changes. Parameters: (Nullable) Version string of the current engine, version string of the new engine.
TGS_EVENT_COMPILE_STARTWhen the compiler starts running. Parameters: Game directory path, origin commit SHA.
TGS_EVENT_COMPILE_CANCELLEDWhen a compile is cancelled. No parameters.
TGS_EVENT_COMPILE_FAILUREWhen a compile fails. Parameters: Game directory path, [TRUE]/[FALSE] based on if the cause for failure was DMAPI validation.
TGS_EVENT_COMPILE_COMPLETEWhen a compile operation completes. Note, this event fires before the new .dmb is loaded into the watchdog. Consider using the TGS_EVENT_DEPLOYMENT_COMPLETE instead. Parameters: Game directory path.
TGS_EVENT_INSTANCE_AUTO_UPDATE_STARTWhen an automatic update for the current instance begins. No parameters.
TGS_EVENT_REPO_MERGE_CONFLICTWhen the repository encounters a merge conflict: Parameters: Base SHA, target SHA, base reference, target reference.
TGS_EVENT_DEPLOYMENT_COMPLETEWhen a deployment completes. No Parameters.
TGS_EVENT_WATCHDOG_SHUTDOWNBefore the watchdog shuts down. Not sent for graceful shutdowns. No parameters.
TGS_EVENT_WATCHDOG_DETACHBefore the watchdog detaches for a TGS update/restart. No parameters.
TGS_EVENT_WORLD_PRIMEWatchdog event when TgsInitializationComplete() is called. No parameters.
TGS_EVENT_REPO_SUBMODULE_UPDATEAfter a single submodule update is performed. Parameters: Updated submodule name.
TGS_EVENT_PRE_DREAM_MAKERAfter CodeModifications are applied, before DreamMaker is run. Parameters: Game directory path, origin commit sha, version string of the used engine.
TGS_EVENT_DEPLOYMENT_CLEANUPWhenever a deployment folder is deleted from disk. Parameters: Game directory path.
TGS_REBOOT_MODE_NORMALThe server will reboot normally.
TGS_REBOOT_MODE_SHUTDOWNThe server will stop running on reboot.
TGS_REBOOT_MODE_RESTARTThe watchdog will restart on reboot.
TGS_SECURITY_TRUSTEDDreamDaemon Trusted security level.
TGS_SECURITY_SAFEDreamDaemon Safe security level.
TGS_SECURITY_ULTRASAFEDreamDaemon Ultrasafe security level.
TGS_VISIBILITY_PUBLICDreamDaemon public visibility level.
TGS_VISIBILITY_PRIVATEDreamDaemon private visibility level.
TGS_VISIBILITY_INVISIBLEDreamDaemon invisible visibility level.
TGS_ENGINE_TYPE_BYONDThe Build Your Own Net Dream engine.
TGS_ENGINE_TYPE_OPENDREAMThe OpenDream engine.
TGS_TOPICConsumers MUST run this macro at the start of [/world/proc/Topic].
/datum/tgs_revision_informationRepresents git revision information.
/datum/tgs_versionRepresents a version.
/datum/tgs_revision_information/test_mergeRepresents a merge of a GitHub pull request.
/datum/tgs_chat_channelRepresents a connected chat channel.
/datum/tgs_event_handlerUser definable handler for TGS events This abstract version SHOULD be overridden to be used.
/datum/tgs_http_handlerUser definable handler for HTTP calls. This abstract version MUST be overridden to be used.
/datum/tgs_http_resultResult of a /datum/tgs_http_handler call. MUST NOT be overridden.
/datum/tgs_chat_commandUser definable chat command. This abstract version MUST be overridden to be used.
/datum/tgs_message_contentUser definable chat message. MUST NOT be overridden.
/datum/tgs_chat_embed/structureUser definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/message#embed-object for details.
/datum/tgs_chat_embed/mediaCommon datum for similar Discord embed medias.
/datum/tgs_chat_embed/footerSee https://discord.com/developers/docs/resources/message#embed-object-embed-footer-structure for details.
/datum/tgs_chat_embed/providerSee https://discord.com/developers/docs/resources/message#embed-object-embed-provider-structure for details.
/datum/tgs_chat_embed/provider/authorSee https://discord.com/developers/docs/resources/message#embed-object-embed-author-structure for details. Must have name set in New().
/datum/tgs_chat_embed/fieldSee https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure for details.

Define Details

TGS_ENGINE_TYPE_BYOND

The Build Your Own Net Dream engine.

TGS_ENGINE_TYPE_OPENDREAM

The OpenDream engine.

TGS_EVENT_COMPILE_CANCELLED

When a compile is cancelled. No parameters.

TGS_EVENT_COMPILE_COMPLETE

When a compile operation completes. Note, this event fires before the new .dmb is loaded into the watchdog. Consider using the TGS_EVENT_DEPLOYMENT_COMPLETE instead. Parameters: Game directory path.

TGS_EVENT_COMPILE_FAILURE

When a compile fails. Parameters: Game directory path, [TRUE]/[FALSE] based on if the cause for failure was DMAPI validation.

TGS_EVENT_COMPILE_START

When the compiler starts running. Parameters: Game directory path, origin commit SHA.

TGS_EVENT_DEPLOYMENT_CLEANUP

Whenever a deployment folder is deleted from disk. Parameters: Game directory path.

TGS_EVENT_DEPLOYMENT_COMPLETE

When a deployment completes. No Parameters.

TGS_EVENT_ENGINE_ACTIVE_VERSION_CHANGE

When the active engine version changes. Parameters: (Nullable) Version string of the current engine, version string of the new engine.

TGS_EVENT_ENGINE_INSTALL_FAIL

When a engine install operation fails. Parameters: Error message

TGS_EVENT_ENGINE_INSTALL_START

Before a engine install operation begins. Parameters: Version string of the installing engine.

TGS_EVENT_HEALTH_CHECK

When the watchdog sends a health check to DD. No parameters.

TGS_EVENT_INSTANCE_AUTO_UPDATE_START

When an automatic update for the current instance begins. No parameters.

TGS_EVENT_INSTANCE_RENAMED

Before the instance is renamed, extra parameter is the new name.

TGS_EVENT_PORT_SWAP

Before a port change is about to happen, extra parameters is new port.

TGS_EVENT_PRE_DREAM_MAKER

After CodeModifications are applied, before DreamMaker is run. Parameters: Game directory path, origin commit sha, version string of the used engine.

TGS_EVENT_REBOOT_MODE_CHANGE

Before a reboot mode change, extras parameters are the current and new reboot mode enums.

TGS_EVENT_REPO_CHECKOUT

When the repository performs a checkout. Parameters: Checkout git object.

TGS_EVENT_REPO_FETCH

When the repository performs a fetch operation. No parameters.

TGS_EVENT_REPO_MERGE_CONFLICT

When the repository encounters a merge conflict: Parameters: Base SHA, target SHA, base reference, target reference.

TGS_EVENT_REPO_MERGE_PULL_REQUEST

When the repository test merges. Parameters: PR Number, PR Sha, (Nullable) Comment made by TGS user.

TGS_EVENT_REPO_PRE_SYNCHRONIZE

Before the repository makes a sychronize operation. Parameters: Absolute repostiory path.

TGS_EVENT_REPO_RESET_ORIGIN

When the repository is reset to its origin reference. Parameters: Reference name, Commit SHA.

TGS_EVENT_REPO_SUBMODULE_UPDATE

After a single submodule update is performed. Parameters: Updated submodule name.

TGS_EVENT_WATCHDOG_DETACH

Before the watchdog detaches for a TGS update/restart. No parameters.

TGS_EVENT_WATCHDOG_REATTACH

After the watchdog reattaches to DD, extra parameter is the new /datum/tgs_version of the server.

TGS_EVENT_WATCHDOG_SHUTDOWN

Before the watchdog shuts down. Not sent for graceful shutdowns. No parameters.

TGS_EVENT_WORLD_PRIME

Watchdog event when TgsInitializationComplete() is called. No parameters.

TGS_FILE2TEXT_NATIVE

Consumers SHOULD create this define if you want to do TGS configuration outside of this file.

TGS_REBOOT_MODE_NORMAL

The server will reboot normally.

TGS_REBOOT_MODE_RESTART

The watchdog will restart on reboot.

TGS_REBOOT_MODE_SHUTDOWN

The server will stop running on reboot.

TGS_SECURITY_SAFE

DreamDaemon Safe security level.

TGS_SECURITY_TRUSTED

DreamDaemon Trusted security level.

TGS_SECURITY_ULTRASAFE

DreamDaemon Ultrasafe security level.

TGS_TOPIC

Consumers MUST run this macro at the start of [/world/proc/Topic].

TGS_VISIBILITY_INVISIBLE

DreamDaemon invisible visibility level.

TGS_VISIBILITY_PRIVATE

DreamDaemon private visibility level.

TGS_VISIBILITY_PUBLIC

DreamDaemon public visibility level.

\ No newline at end of file diff --git a/code/__DEFINES/tgui.html b/code/__DEFINES/tgui.html new file mode 100644 index 0000000000000..cbe3242c2fe52 --- /dev/null +++ b/code/__DEFINES/tgui.html @@ -0,0 +1 @@ +code/__DEFINES/tgui.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/tgui.dm

UI_INTERACTIVEGreen eye; fully interactive
UI_UPDATEOrange eye; updates but is not interactive
UI_DISABLEDRed eye; disabled, does not update
UI_CLOSEUI Should close
TGUI_WINDOW_SOFT_LIMITMaximum number of windows that can be suspended/reused
TGUI_WINDOW_HARD_LIMITMaximum number of open windows
TGUI_PING_TIMEOUTMaximum ping timeout allowed to detect zombie windows
TGUI_REFRESH_FULL_UPDATE_COOLDOWNUsed for rate-limiting to prevent DoS by excessively refreshing a TGUI window
TGUI_WINDOW_CLOSEDWindow does not exist
TGUI_WINDOW_LOADINGWindow was just opened, but is still not ready to be sent data
TGUI_WINDOW_READYWindow is free and ready to receive data
TGUI_WINDOW_IDGet a window id based on the provided pool index
TGUI_WINDOW_INDEXGet a pool index of the provided window id
TGUI_CREATE_MESSAGECreates a message packet for sending via output()

Define Details

TGUI_CREATE_MESSAGE

Creates a message packet for sending via output()

TGUI_PING_TIMEOUT

Maximum ping timeout allowed to detect zombie windows

TGUI_REFRESH_FULL_UPDATE_COOLDOWN

Used for rate-limiting to prevent DoS by excessively refreshing a TGUI window

TGUI_WINDOW_CLOSED

Window does not exist

TGUI_WINDOW_HARD_LIMIT

Maximum number of open windows

TGUI_WINDOW_ID

Get a window id based on the provided pool index

TGUI_WINDOW_INDEX

Get a pool index of the provided window id

TGUI_WINDOW_LOADING

Window was just opened, but is still not ready to be sent data

TGUI_WINDOW_READY

Window is free and ready to receive data

TGUI_WINDOW_SOFT_LIMIT

Maximum number of windows that can be suspended/reused

UI_CLOSE

UI Should close

UI_DISABLED

Red eye; disabled, does not update

UI_INTERACTIVE

Green eye; fully interactive

UI_UPDATE

Orange eye; updates but is not interactive

\ No newline at end of file diff --git a/code/__DEFINES/time.html b/code/__DEFINES/time.html new file mode 100644 index 0000000000000..4a917fd436ebd --- /dev/null +++ b/code/__DEFINES/time.html @@ -0,0 +1 @@ +code/__DEFINES/time.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/time.dm

MIDNIGHT_ROLLOVERnumber of deciseconds in a day
ROUND_TIMEdisplays the current time into the round, with a lot of extra code just there for ensuring it looks okay after an entire day passes
STATION_TIME_PASSEDReturns the time that has passed since the game started
CURRENT_STATION_YEARDefine that just has the current in-universe year for use in whatever context you might want to display that in. (For example, 2022 -> 2562 given a 540 year offset)
STATION_YEAR_OFFSETIn-universe, SS13 is set 540 years in the future from the real-world day, hence this number for determining the year-offset for the in-game year.
TIMEZONE_LINTLine Islands Time
TIMEZONE_TKTTokelau Time
TIMEZONE_TOTTonga Time
TIMEZONE_NZDTNew Zealand Daylight Time
TIMEZONE_NZSTNew Zealand Standard Time
TIMEZONE_NFTNorfolk Time
TIMEZONE_LHSTLord Howe Standard Time
TIMEZONE_AESTAustralian Eastern Standard Time
TIMEZONE_ACSTAustralian Central Standard Time
TIMEZONE_ACWSTAustralian Central Western Standard Time
TIMEZONE_AWSTAustralian Western Standard Time
TIMEZONE_CXTChristmas Island Time
TIMEZONE_CCTCocos Islands Time
TIMEZONE_CESTCentral European Summer Time
TIMEZONE_UTCCoordinated Universal Time
TIMEZONE_EDTEastern Daylight Time
TIMEZONE_ESTEastern Standard Time
TIMEZONE_CDTCentral Daylight Time
TIMEZONE_CSTCentral Standard Time
TIMEZONE_MDTMountain Daylight Time
TIMEZONE_MSTMountain Standard Time
TIMEZONE_PDTPacific Daylight Time
TIMEZONE_PSTPacific Standard Time
TIMEZONE_AKDTAlaska Daylight Time
TIMEZONE_AKSTAlaska Standard Time
TIMEZONE_HDTHawaii-Aleutian Daylight Time
TIMEZONE_HSTHawaii Standard Time
TIMEZONE_CKTCook Island Time
TIMEZONE_NUTNiue Time
TIMEZONE_ANYWHERE_ON_EARTHAnywhere on Earth

Define Details

CURRENT_STATION_YEAR

Define that just has the current in-universe year for use in whatever context you might want to display that in. (For example, 2022 -> 2562 given a 540 year offset)

MIDNIGHT_ROLLOVER

number of deciseconds in a day

ROUND_TIME

displays the current time into the round, with a lot of extra code just there for ensuring it looks okay after an entire day passes

STATION_TIME_PASSED

Returns the time that has passed since the game started

STATION_YEAR_OFFSET

In-universe, SS13 is set 540 years in the future from the real-world day, hence this number for determining the year-offset for the in-game year.

TIMEZONE_ACST

Australian Central Standard Time

TIMEZONE_ACWST

Australian Central Western Standard Time

TIMEZONE_AEST

Australian Eastern Standard Time

TIMEZONE_AKDT

Alaska Daylight Time

TIMEZONE_AKST

Alaska Standard Time

TIMEZONE_ANYWHERE_ON_EARTH

Anywhere on Earth

TIMEZONE_AWST

Australian Western Standard Time

TIMEZONE_CCT

Cocos Islands Time

TIMEZONE_CDT

Central Daylight Time

TIMEZONE_CEST

Central European Summer Time

TIMEZONE_CKT

Cook Island Time

TIMEZONE_CST

Central Standard Time

TIMEZONE_CXT

Christmas Island Time

TIMEZONE_EDT

Eastern Daylight Time

TIMEZONE_EST

Eastern Standard Time

TIMEZONE_HDT

Hawaii-Aleutian Daylight Time

TIMEZONE_HST

Hawaii Standard Time

TIMEZONE_LHST

Lord Howe Standard Time

TIMEZONE_LINT

Line Islands Time

TIMEZONE_MDT

Mountain Daylight Time

TIMEZONE_MST

Mountain Standard Time

TIMEZONE_NFT

Norfolk Time

TIMEZONE_NUT

Niue Time

TIMEZONE_NZDT

New Zealand Daylight Time

TIMEZONE_NZST

New Zealand Standard Time

TIMEZONE_PDT

Pacific Daylight Time

TIMEZONE_PST

Pacific Standard Time

TIMEZONE_TKT

Tokelau Time

TIMEZONE_TOT

Tonga Time

TIMEZONE_UTC

Coordinated Universal Time

\ No newline at end of file diff --git a/code/__DEFINES/tools.html b/code/__DEFINES/tools.html new file mode 100644 index 0000000000000..c113f4e3d6b56 --- /dev/null +++ b/code/__DEFINES/tools.html @@ -0,0 +1,9 @@ +code/__DEFINES/tools.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/tools.dm

TOOL_RUSTSCRAPERCan be used to scrape rust off an any atom; which will result in the Rust Component being qdel'd
ITEM_INTERACT_SUCCESSReturn when an item interaction is successful. +This cancels the rest of the chain entirely and indicates success.
ITEM_INTERACT_BLOCKINGReturn to prevent the rest of the attack chain from being executed / preventing the item user from thwacking the target. +Similar to ITEM_INTERACT_SUCCESS, but does not necessarily indicate success.
ITEM_INTERACT_FAILUREOnly for people who get confused by the naming scheme
ITEM_INTERACT_SKIP_TO_ATTACKReturn to skip the rest of the interaction chain, going straight to attack.
ITEM_INTERACT_ANY_BLOCKERCombination flag for any item interaction that blocks the rest of the attack chain
TOOL_FUEL_BURN_INTERVALHow many seconds between each fuel depletion tick ("use" proc)
HIGH_TEMPERATURE_REQUIREDThis is a number I got by quickly searching up the temperature to melt iron/glass, though not really realistic. +This is used for places where lighters should not be hot enough to be used as a welding tool on.
SHOULD_SKIP_INTERACTIONA helper for checking if an item interaction should be skipped. +This is only used explicitly because some interactions may not want to ever be skipped.

Define Details

HIGH_TEMPERATURE_REQUIRED

This is a number I got by quickly searching up the temperature to melt iron/glass, though not really realistic. +This is used for places where lighters should not be hot enough to be used as a welding tool on.

ITEM_INTERACT_ANY_BLOCKER

Combination flag for any item interaction that blocks the rest of the attack chain

ITEM_INTERACT_BLOCKING

Return to prevent the rest of the attack chain from being executed / preventing the item user from thwacking the target. +Similar to ITEM_INTERACT_SUCCESS, but does not necessarily indicate success.

ITEM_INTERACT_FAILURE

Only for people who get confused by the naming scheme

ITEM_INTERACT_SKIP_TO_ATTACK

Return to skip the rest of the interaction chain, going straight to attack.

ITEM_INTERACT_SUCCESS

Return when an item interaction is successful. +This cancels the rest of the chain entirely and indicates success.

SHOULD_SKIP_INTERACTION

A helper for checking if an item interaction should be skipped. +This is only used explicitly because some interactions may not want to ever be skipped.

TOOL_FUEL_BURN_INTERVAL

How many seconds between each fuel depletion tick ("use" proc)

TOOL_RUSTSCRAPER

Can be used to scrape rust off an any atom; which will result in the Rust Component being qdel'd

\ No newline at end of file diff --git a/code/__DEFINES/toys.html b/code/__DEFINES/toys.html new file mode 100644 index 0000000000000..07ed10209ba43 --- /dev/null +++ b/code/__DEFINES/toys.html @@ -0,0 +1 @@ +code/__DEFINES/toys.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/toys.dm

DICE_NOT_RIGGEDDice has a normal chance to land on any value
DICE_BASICALLY_RIGGEDDice has a higher chance to land on a rigged value
DICE_TOTALLY_RIGGEDDice has a 100% chance to land on a rigged value
CARD_FACEDOWNcard is considered face down
CARD_FACEUPcard is considered face up

Define Details

CARD_FACEDOWN

card is considered face down

CARD_FACEUP

card is considered face up

DICE_BASICALLY_RIGGED

Dice has a higher chance to land on a rigged value

DICE_NOT_RIGGED

Dice has a normal chance to land on any value

DICE_TOTALLY_RIGGED

Dice has a 100% chance to land on a rigged value

\ No newline at end of file diff --git a/code/__DEFINES/traits/_traits.html b/code/__DEFINES/traits/_traits.html new file mode 100644 index 0000000000000..21c3904b7c5e5 --- /dev/null +++ b/code/__DEFINES/traits/_traits.html @@ -0,0 +1,3 @@ +code/__DEFINES/traits/_traits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/traits/_traits.dm

GET_TRAIT_SOURCESReturns a list of trait sources for this trait. Only useful for wacko cases and internal futzing +You should not be using this
COUNT_TRAIT_SOURCESReturns the amount of sources for a trait. useful if you don't want to have a "thing counter" stuck around all the time
HAS_MIND_TRAITA simple helper for checking traits in a mob's mind

Define Details

COUNT_TRAIT_SOURCES

Returns the amount of sources for a trait. useful if you don't want to have a "thing counter" stuck around all the time

GET_TRAIT_SOURCES

Returns a list of trait sources for this trait. Only useful for wacko cases and internal futzing +You should not be using this

HAS_MIND_TRAIT

A simple helper for checking traits in a mob's mind

\ No newline at end of file diff --git a/code/__DEFINES/traits/declarations.html b/code/__DEFINES/traits/declarations.html new file mode 100644 index 0000000000000..b0e91043a7fd7 --- /dev/null +++ b/code/__DEFINES/traits/declarations.html @@ -0,0 +1,49 @@ +code/__DEFINES/traits/declarations.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/traits/declarations.dm

TRAIT_KNOCKEDOUTForces the user to stay unconscious.
TRAIT_IMMOBILIZEDPrevents voluntary movement.
TRAIT_FLOOREDPrevents voluntary standing or staying up on its own.
TRAIT_FORCED_STANDINGForces user to stay standing
TRAIT_HANDS_BLOCKEDPrevents usage of manipulation appendages (picking, holding or using items, manipulating storage).
TRAIT_UI_BLOCKEDInability to access UI hud elements. Turned into a trait from MOBILITY_UI to be able to track sources.
TRAIT_PULL_BLOCKEDInability to pull things. Turned into a trait from MOBILITY_PULL to be able to track sources.
TRAIT_RESTRAINEDAbstract condition that prevents movement if being pulled and might be resisted against. Handcuffs and straight jackets, basically.
TRAIT_UNDENSEApply this to make a mob not dense, and remove it when you want it to no longer make them undense, other sources of undesity will still apply. Always define a unique source when adding a new instance of this!
TRAIT_GODMODEMakes the mob immune to damage and several other ailments.
TRAIT_EXPANDED_FOVExpands our FOV by 30 degrees if restricted
TRAIT_PERFECT_ATTACKERDoesn't miss attacks
TRAIT_GREENTEXT_CURSEDRecolored by item/greentext
TRAIT_CRITICAL_CONDITIONIn some kind of critical condition. Is able to succumb.
TRAIT_LITERATEWhitelist for mobs that can read or write
TRAIT_ILLITERATEBlacklist for mobs that can't read or write
TRAIT_MUTEMute. Can't talk.
TRAIT_SOFTSPOKENSoftspoken. Always whisper.
TRAIT_CURSEDGibs on death and slips like ice.
TRAIT_EMOTEMUTEEmotemute. Can't... emote.
TRAIT_DEFIB_BLACKLISTEDBlacklisted from being revived via defibrillator
TRAIT_CAN_HOLD_ITEMSTrait that means you are capable of holding items in some form
TRAIT_FENCE_CLIMBERTrait which lets you clamber over a barrier
TRAIT_CHUNKYFINGERSmeans that you can't use weapons with normal trigger guards.
TRAIT_FIST_MININGAllows you to mine with your bare hands
TRAIT_ADVANCEDTOOLUSERWhether a mob is dexterous enough to use machines and certain items or not.
TRAIT_GUN_NATURALMakes it so the mob can use guns regardless of tool user status
TRAIT_DEATHCOMACauses death-like unconsciousness
TRAIT_STASISThe mob has the stasis effect. +Does nothing on its own, applied via status effect.
TRAIT_FAKEDEATHMakes the owner appear as dead to most forms of medical examination
TRAIT_NO_TRANSFORM"Magic" trait that blocks the mob from moving or interacting with anything. Used for transient stuff like mob transformations or incorporality in special cases. +Will block movement, Life() (!!!), and other stuff based on the mob.
TRAIT_XENO_HOSTTracks whether we're gonna be a baby alien's mummy.
TRAIT_PARROT_PERCHEDThis parrot is currently perched
TRAIT_STUNIMMUNEThis mob is immune to stun causing status effects and stamcrit. +Prefer to use /mob/living/proc/check_stun_immunity over checking for this trait exactly.
TRAIT_IWASBATONEDAnti Dual-baton cooldown bypass exploit.
TRAIT_NO_SIDE_KICKcan't be kicked to the side
TRAIT_SHOCKIMMUNEAre we immune to shocks?
TRAIT_TESLA_SHOCKIMMUNEAre we immune to specifically tesla / SM shocks?
TRAIT_BEING_SHOCKEDIs this atom being actively shocked? Used to prevent repeated shocks.
TRAIT_CORPSELOCKEDPrevents you from leaving your corpse
TRAIT_HYPOTHERMICTrait for when you can no longer gain body heat
TRAIT_USED_DNA_VAULTFor when you've gotten a power from a dna vault
TRAIT_RESISTHEATHANDSFor when you want to be able to touch hot things, but still want fire to be an issue.
TRAIT_BOMBIMMUNEThis human is immune to the effects of being exploded. (ex_act)
TRAIT_NUKEIMMUNEThis mob won't get gibbed by nukes going off
TRAIT_VIRUSIMMUNECan't be given viruses
TRAIT_UNHUSKABLEWon't become a husk under any circumstances
TRAIT_VIRUS_RESISTANCEReduces the chance viruses will spread to this mob, and if the mob has a virus, slows its advancement
TRAIT_NOSELFIGNITION_HEAD_ONLYPrevents plasmamen from self-igniting if only their helmet is missing
TRAIT_TOSS_GUN_HARDCan toss a guns like a badass, causing additional damage/effect to their enemies
TRAIT_AGENDERSpecies with this trait are genderless
TRAIT_BLOOD_CLANSSpecies with this trait have a blood clan mechanic
TRAIT_USES_SKINTONESSpecies with this trait use skin tones for coloration
TRAIT_MUTANT_COLORSSpecies with this trait use mutant colors for coloration
TRAIT_FIXED_MUTANT_COLORSSpecies with this trait have mutant colors that cannot be chosen by the player, nor altered ingame by external means
TRAIT_NO_BLOOD_OVERLAYHumans with this trait won't get bloody hands, nor bloody feet
TRAIT_NO_UNDERWEARHumans with this trait cannot have underwear
TRAIT_NO_DEBRAIN_OVERLAYThis carbon doesn't show an overlay when they have no brain
TRAIT_NO_AUGMENTSHumans with this trait cannot get augmentation surgery
TRAIT_NOHUNGERThis carbon doesn't get hungry
TRAIT_NOBLOODThis carbon doesn't bleed
TRAIT_LIVERLESS_METABOLISMThis just means that the carbon will always have functional liverless metabolism
TRAIT_OVERDOSEIMMUNEThis carbon can't be overdosed by chems
TRAIT_NO_ZOMBIFYHumans with this trait cannot be turned into zombies
TRAIT_NO_DNA_COPYCarbons with this trait can't have their DNA copied by diseases nor changelings
TRAIT_NO_DNA_SCRAMBLECarbons with this trait can't have their DNA scrambled by genetics or a disease retrovirus.
TRAIT_DRINKS_BLOODCarbons with this trait can eat blood to regenerate their own blood volume, instead of injecting it
TRAIT_TOXIMMUNEMob is immune to toxin damage
TRAIT_NOBREATHMob is immune to oxygen damage, does not need to breathe
TRAIT_DISGUISEDMob is currently disguised as something else (like a morph being another mob or an object). Holds a reference to the thing that applied the trait.
TRAIT_PLASMA_LOVER_METABOLISMUse when you want a mob to be able to metabolize plasma temporarily (e.g. plasma fixation disease symptom)
TRAIT_EASYBLEEDSpecies with this trait have 50% extra chance of bleeding from piercing and slashing wounds
TRAIT_NOCRITOVERLAYDoesn't get overlays from being in critical.
TRAIT_FASTMEDreduces the use time of syringes, pills, patches and medigels but only when using on someone
TRAIT_HOLYThe mob is holy and resistance to cult magic
TRAIT_ANTIMAGICThis mob is antimagic, and immune to spells / cannot cast spells
TRAIT_ANTIMAGIC_NO_SELFBLOCKThis allows a person who has antimagic to cast spells without getting blocked
TRAIT_RECENTLY_BLOCKED_MAGICThis mob recently blocked magic with some form of antimagic
TRAIT_MAGICALLY_GIFTEDThe user can do things like use magic staffs without penalty
TRAIT_INNATELY_FANTASTICAL_ITEMThis object innately spawns with fantasy variables already applied (the magical component is given to it on initialize), and thus we never want to give it the component again.
TRAIT_BRAWLING_KNOCKDOWN_BLOCKEDPrevents shovies and some strong blows such as unarmed punches and (unreliably) tackles the owner down
TRAIT_OFF_BALANCE_TACKLERApplies tackling defense bonus to any mob that has it
TRAIT_HEAD_INJURY_BLOCKEDPrevents some severe head injuries being sustained from heavy collisions or blunt force injuries.
TRAIT_NO_STAGGERPrevents staggering.
TRAIT_NO_THROW_HITPUSHGetting hit by thrown movables won't push you away
TRAIT_FISH_EATERThis mob likes to eat fish. Raw, uncut fish.
TRAIT_REVEAL_FISHAdded to mob or mind, changes the icons of the fish shown in the minigame UI depending on the possible reward.
TRAIT_EXAMINE_FISHING_SPOTThis trait gets you a list of fishes that can be caught when examining a fishing spot.
TRAIT_SCARY_FISHERMANlobstrosities and carps will prioritize/flee from those that have this trait (given by the skill-locked hat)
TRAIT_CATCH_AND_RELEASEAtoms with this trait can be right-clicked with a fish to release them, presumably back in the fishing spot they were caught from.
TRAIT_EXAMINE_FISHThis trait lets you get the size and weight of the fish by examining them
TRAIT_EXAMINE_DEEPER_FISHThis trait lets you roughly know if the fish is dead, starving, drowning or sick by examining them
TRAIT_FISHING_SPOTTrait given to turfs or objects that can be fished from
TRAIT_UNLINKABLE_FISHING_SPOTThis trait prevents the fishing spot from being linked to the fish-porter when a multitool is being used.
TRAIT_PROFOUND_FISHERTrait given to mobs that can fish without a rod
TRAIT_MESSAGE_IN_A_BOTTLE_LOCATIONIf an atom has this trait, then you can toss a bottle with a message in it.
TRAIT_UNIQUE_AQUARIUM_CONTENTStops other objects of the same type from being inserted inside the same aquarium it's in.
TRAIT_EXAMINE_FITNESSThis trait lets you evaluate someone's fitness level against your own
TRAIT_WOUND_LICKERThese mobs have particularly hygienic tongues
TRAIT_SILICON_EMOTES_ALLOWEDMobs with this trait are allowed to use silicon emotes
TRAIT_BORN_MONKEYThis trait designate that the mob was originally a monkey
TRAIT_REMOTE_TASTINGAdded to a mob, allows that mob to experience flavour-based moodlets when examining food
TRAIT_NO_SLIP_WATERStops the mob from slipping on water, or banana peels, or pretty much anything that doesn't have GALOSHES_DONT_HELP set
TRAIT_NO_SLIP_ICEStops the mob from slipping on permafrost ice (not any other ice) (but anything with SLIDE_ICE set)
TRAIT_NO_SLIP_SLIDEStop the mob from sliding around from being slipped, but not the slip part. +DOES NOT include ice slips.
TRAIT_NO_SLIP_ALLStops all slipping and sliding from occurring
TRAIT_NO_GLIDEUnlinks gliding from movement speed, meaning that there will be a delay between movements rather than a single move movement between tiles
TRAIT_WOUND_SCANNEDApplied into wounds when they're scanned with the wound analyzer, halves time to treat them manually.
TRAIT_MINDSHIELDMakes someone show up as mindshielded on sechuds. Does NOT actually make them unconvertable - See TRAIT_UNCONVERTABLE for that
TRAIT_UNCONVERTABLEMakes it impossible for someone to be converted by cult/revs/etc.
TRAIT_SUCCUMB_OVERRIDELets the user succumb even if they got NODEATH
TRAIT_SIXTHSENSECan hear observers
TRAIT_HEAR_THROUGH_DARKNESSIgnores darkness for hearing
TRAIT_PARALYSIS_L_ARMThese are used for brain-based paralysis, where replacing the limb won't fix it
TRAIT_ID_APPRAISERCan examine IDs to see if they are roundstart.
TRAIT_XRAY_VISIONGives us turf, mob and object vision through walls
TRAIT_THERMAL_VISIONGives us mob vision through walls and slight night vision
TRAIT_MESON_VISIONGives us turf vision through walls and slight night vision
TRAIT_TRUE_NIGHT_VISIONGives us Night vision
TRAIT_NEGATES_GRAVITYNegates our gravity, letting us move normally on floors in 0-g
TRAIT_IGNORING_GRAVITYWe are ignoring gravity
TRAIT_FORCED_GRAVITYWe have some form of forced gravity acting on us
TRAIT_GOOD_HEARINGMakes whispers clearly heard from seven tiles away, the full hearing range
TRAIT_XRAY_HEARINGAllows you to hear speech through walls
TRAIT_BLOCK_SHUTTLE_MOVEMENTThis mob can not enter or move on a shuttle
TRAIT_REAGENT_SCANNERLets us scan reagents
TRAIT_RESEARCH_SCANNERLets us scan machine parts and tech unlocks
TRAIT_WEB_WEAVERCan weave webs into cloth
TRAIT_WEB_SURFERCan navigate the web without getting stuck
TRAIT_SPINNING_WEB_TURFA web is being spun on this turf presently
TRAIT_QUICK_CARRYWe place people into a fireman carry quicker than standard
TRAIT_QUICKER_CARRYWe place people into a fireman carry especially quickly compared to quick_carry
TRAIT_PLANT_SAFEWe can handle 'dangerous' plants in botany safely
TRAIT_NEARSIGHTED_CORRECTEDPrevents the overlay from nearsighted
TRAIT_DIAGNOSTIC_HUDfor something granting you a diagnostic hud
TRAIT_MEDIBOTCOMINGTHROUGHIs a medbot healing you
TRAIT_PASSWINDOWLets you fly through windows
TRAIT_NOFLASHMakes you immune to flashes
TRAIT_XENO_IMMUNEprevents xeno huggies implanting skeletons
TRAIT_NO_JUMPSUITAllows the species to equip items that normally require a jumpsuit without having one equipped. Used by golems.
TRAIT_DETECT_STORMalways detect storms on icebox
TRAIT_SPECIAL_TRAUMA_BOOSTIncreases chance of getting special traumas, makes them harder to cure
TRAIT_HYPERSPACEDSanity trait to keep track of when we're in hyperspace and add the appropriate element if we weren't
TRAIT_FREE_HYPERSPACE_MOVEMENTGives the movable free hyperspace movement without being pulled during shuttle transit
TRAIT_FREE_HYPERSPACE_SOFTCORDON_MOVEMENTLets the movable move freely in the soft-cordon area of transit space, which would otherwise teleport them away just before they got to see the true cordon
TRAIT_DEL_ON_SPACE_DUMPDeletes the object upon being dumped into space, usually from exiting hyperspace. Useful if you're spawning in a lot of stuff for hyperspace events that don't need to flood the entire game
TRAIT_CLIFF_WALKERWe can walk up or around cliffs, or at least we don't fall off of it
TRAIT_TACTICALLY_CAMOUFLAGEDThis means the user is currently holding/wearing a "tactical camouflage" item (like a potted plant).
TRAIT_GAMERGODGets double arcade prizes
TRAIT_TOO_TALLMakes you way too tall. Like just too much, dude, it's kind of creepy. Humanoid only.
TRAIT_SILENT_FOOTSTEPSmakes your footsteps completely silent
TRAIT_NICE_SHOThnnnnnnnggggg..... you're pretty good....
TRAIT_TUMOR_SUPPRESSEDprevents the damage done by a brain tumor
TRAIT_RDS_SUPPRESSEDPrevents hallucinations from the hallucination brain trauma (RDS)
TRAIT_NO_EXTINGUISHMobs that have this trait cannot be extinguished
TRAIT_SIGN_LANGIndicates if the mob is currently speaking with sign language
TRAIT_PAPER_MASTERTrait given to mobs to indicate that they can catch papers thrown at them midair without trying, +and make syndicate airplanes when folding paper up.
TRAIT_CAN_SIGN_ON_COMMSThis mob is able to use sign language over the radio.
TRAIT_MARTIAL_ARTS_IMMUNEnobody can use martial arts on this mob
TRAIT_TIME_STOP_IMMUNEImmune to being afflicted by time stop (spell)
TRAIT_WEAK_SOULRevenants draining you only get a very small benefit.
TRAIT_NO_SOULThis mob has no soul
TRAIT_CANT_RIDEPrevents mob from riding mobs when buckled onto something
TRAIT_CANNOT_BE_UNBUCKLEDPrevents a mob from being unbuckled, currently only used to prevent people from falling over on the tram
TRAIT_BLOODY_MESSfrom heparin and nitrous oxide, makes open bleeding wounds rapidly spill more blood
TRAIT_COAGULATINGfrom coagulant reagents, this doesn't affect the bleeding itself but does affect the bleed warning messages
TRAIT_ANTICONVULSANTFrom anti-convulsant medication against seizures.
TRAIT_STIMULATEDFrom stimulant reagents, this affects whether the all-nighter lack of sleep penalty should be countered
TRAIT_ANTENNAEThe holder of this trait has antennae or whatever that hurt a ton when noogied
TRAIT_KISS_OF_DEATHBlowing kisses actually does damage to the victim
TRAIT_SYNDIE_KISSSyndie kisses can apply burn damage
TRAIT_GARLIC_BREATHUsed to activate french kissing
TRAIT_HOPELESSLY_ADDICTEDAddictions don't tick down, basically they're permanently addicted
TRAIT_CULT_HALOThis mob has a cult halo.
TRAIT_UNNATURAL_RED_GLOWY_EYESTheir eyes glow an unnatural red colour. Currently used to set special examine text on humans. Does not guarantee the mob's eyes are coloured red, nor that there is any visible glow on their character sprite.
TRAIT_BLOODSHOT_EYESTheir eyes are bloodshot. Currently used to set special examine text on humans. Examine text is overridden by TRAIT_UNNATURAL_RED_GLOWY_EYES.
TRAIT_PRESERVE_UI_WITHOUT_CLIENTThis mob should never close UI even if it doesn't have a client
TRAIT_BYPASS_MEASURESThis mob overrides certain SSlag_switch measures with this special trait
TRAIT_ALLOWED_HONORBOUND_ATTACKSomeone can safely be attacked with honorbound with ONLY a combat mode check, the trait is assuring holding a weapon and hitting won't hurt them..
TRAIT_SPARRINGThe user is sparring
TRAIT_ELITE_CHALLENGERThe user is currently challenging an elite mining mob. Prevents him from challenging another until he's either lost or won.
TRAIT_DONT_WRITE_MEMORYFor living mobs. It signals that the mob shouldn't have their data written in an external json for persistence.
TRAIT_SPRAY_PAINTABLEThis mob can be painted with the spraycan
TRAIT_AI_BAGATTACKThis atom can ignore the "is on a turf" check for simple AI datum attacks, allowing them to attack from bags or lockers as long as any other conditions are met
TRAIT_INVISIBLE_MANThis mobs bodyparts are invisible but still clickable.
TRAIT_HIDE_EXTERNAL_ORGANSDon't draw external organs/species features like wings, horns, frills and stuff
TRAIT_FREE_FLOAT_MOVEMENTWhen people are floating from zero-grav or something, we can move around freely!
TRAIT_FOV_APPLIEDMob has fov applied to it
TRAIT_USER_SCOPEDMob is using the scope component
TRAIT_ANALGESIAMob is unable to feel pain
TRAIT_REVENANT_REVEALEDTrait added when a revenant is visible.
TRAIT_REVENANT_INHIBITEDTrait added when a revenant has been inhibited (typically by the bane of a holy weapon)
TRAIT_NOFATTrait which prevents you from becoming overweight
TRAIT_ROCK_EATERTrait which allows you to eat rocks
TRAIT_ROCK_METAMORPHICTrait which allows you to gain bonuses from consuming rocks
TRAIT_NO_TELEPORTdo_teleport will not allow this atom to teleport
TRAIT_SECLUDED_LOCATIONThis atom is a secluded location, which is counted as out of bounds. +Anything that enters this atom's contents should react if it wants to stay in bounds.
TRAIT_FUGU_GLANDEDTrait used by fugu glands to avoid double buffing
TRAIT_WAS_RENAMEDTrait that tracks if something has been renamed. Typically holds a REF() to the object itself (AKA src) for wide addition/removal.
TRAIT_DOUBLE_TAPWhen someone with this trait fires a ranged weapon, their fire delays and click cooldowns are halved
TRAIT_HOT_SPRING_CURSEDTrait applied to /datum/mind to stop someone from using the cursed hot springs to polymorph more than once.
TRAIT_NOT_ENGRAVABLEIf something has been engraved/cannot be engraved
TRAIT_ORBITING_FORBIDDENWhether or not orbiting is blocked or not
TRAIT_SPIDER_CONSUMEDTrait applied to mob/living to mark that spiders should not gain further enriched eggs from eating their corpse.
TRAIT_SNEAKWhether we're sneaking, from the creature sneak ability.
TRAIT_BLIND_TOOLItem still allows you to examine items while blind and actively held.
TRAIT_UNKNOWNThe person with this trait always appears as 'unknown'.
TRAIT_PREVENT_IMPLANT_AUTO_EXPLOSIONIf the mob has this trait and die, their bomb implant doesn't detonate automatically. It must be consciously activated.
TRAIT_HATED_BY_DOGSIf applied to a mob, nearby dogs will have a small chance to nonharmfully harass said mob
TRAIT_NOFEAR_HOLDUPSMobs with this trait will not be immobilized when held up
TRAIT_ADAMANTINE_EXTRACT_ARMORMob has gotten an armor buff from adamantine extract
TRAIT_NO_GUN_AKIMBOMobs with this trait won't be able to dual wield guns.
TRAIT_UNHITTABLE_BY_PROJECTILESMobs with this trait cannot be hit by projectiles, meaning the projectiles will just go through.
TRAIT_MORBIDMobs with this trait do care about a few grisly things, such as digging up graves. They also really do not like bringing people back to life or tending wounds, but love autopsies and amputations.
TRAIT_IN_CALLWhether or not the user is in a MODlink call, prevents making more calls
TRAIT_ON_ELEVATED_SURFACEIs the mob standing on an elevated surface? This prevents them from dropping down if not elevated first.
TRAIT_IGNORE_ELEVATIONDoes the mob ignore elevation? (e.g. xeno larvas on hiding)
TRAIT_NO_TWOHANDINGPrevents you from twohanding weapons.
TRAIT_STRENGTHImproves boxing damage against boxers and athletics experience gain
TRAIT_STIMMEDIncreases the duration of having exercised
TRAIT_BOXING_READYIndicates that the target is able to be boxed at a boxer's full power.
TRAIT_FAST_TYINGHalves the time of tying a tie.
TRAIT_HIGH_VALUE_RANSOMSells for more money on the pirate bounty pad.
TRAIT_FAST_CUFFINGMakes the user handcuff others faster
TRAIT_MAFIAINITIATEGiven by /obj/item/virgin_mary, mobs that used this can no longer use it again ever
TRAIT_MIND_READEROur mob has the mind reading genetic mutation.
TRAIT_DISPLAY_JOB_IN_BINARYMakes the player appear as their respective job in Binary Talk rather than being a 'Default Cyborg'.
TRAIT_STUN_ON_NEXT_SHOVETrait that determines vulnerability to being stunned from a shove
TRAIT_DRUNKEN_BRAWLERTrait that determines whether our mob gains more strength from drinking during a fist fight
TRAIT_SPACEBREATHINGLungs always breathe normally when in vacuum/space.
TRAIT_CAN_STRIPThis mob can strip other mobs.
TRAIT_CAN_USE_NUKECan use the nuclear device's UI, regardless of a lack of hands
TRAIT_MIMINGThe mob has an active mime vow of silence, and thus is unable to speak and has other mime things going on
TRAIT_MAGICALLY_PHASEDThis mob is phased out of reality from magic, either a jaunt or rod form
TRAIT_BRAINWASHINGthis skillchip trait lets you wash brains in washing machines to heal them
TRAIT_CHEF_KISSAllows chef's to chefs kiss their food, to make them with love
TRAIT_BALLOON_SUTRAAllows clowns to bend balloons into animals
TRAIT_DETECTIVES_TASTEAllows detectives to identify chemicals by taste
TRAIT_MOVE_GROUNDMovement type traits for movables. See elements/movetype_handler.dm
TRAIT_NO_FLOATING_ANIMDisables the floating animation. See above.
TRAIT_NO_PLASMA_TRANSFORMCannot be turned into a funny skeleton by the plasma river
TRAIT_LAVA_IMMUNEWeather immunities, also protect mobs inside them.
TRAIT_TENTACLE_IMMUNECannot be grabbed by goliath tentacles
TRAIT_OVERWATCHEDCurrently under the effect of overwatch
TRAIT_OVERWATCH_IMMUNECannot be targeted by watcher overwatch
TRAIT_PARALYSISUsed for limb-based paralysis, where replacing the limb will fix it.
TRAIT_DISABLED_BY_WOUNDUsed for limbs.
TRAIT_BLOCKING_EXPLOSIVESThis movable atom has the explosive block element
TRAIT_BLOCKING_PROJECTILESThis mob is currently blocking a projectile.
TRAIT_LAVA_STOPPEDLava will be safe to cross while it has this trait.
TRAIT_CHASM_STOPPEDChasms will be safe to cross while they've this trait.
TRAIT_CHASM_STOPPERChasms will be safe to cross if there is something with this trait on it
TRAIT_IMMERSE_STOPPEDThe effects of the immerse element will be halted while this trait is present.
TRAIT_HYPERSPACE_STOPPEDThe effects of hyperspace drift are blocked when the tile has this trait
TRAIT_TURF_IGNORE_SLOWDOWNTurf slowdown will be ignored when this trait is added to a turf.
TRAIT_TURF_IGNORE_SLIPPERYMobs won't slip on a wet turf while it has this trait
TRAIT_FORBID_MINING_SHUTTLE_CONSOLE_OUTSIDE_STATIONMobs with this trait can't send the mining shuttle console when used outside the station itself
TRAIT_HEARING_SENSITIVEevery hearing sensitive atom has this trait
TRAIT_ACTIVE_STORAGEevery object that is currently the active storage of some client mob has this trait
TRAIT_CLIMBABLEClimbable trait, given and taken by the climbable element when added or removed. Exists to be easily checked via HAS_TRAIT().
TRAIT_HONKSPAMMINGUsed by the honkspam element to avoid spamming the sound. Amusing considering its name.
TRAIT_WADDLINGRequired by the waddling element since there are multiple sources of it.
TRAIT_ON_HIT_EFFECTRequired by the on_hit_effect element, which is in turn added by other elements.
TRAIT_KEEP_TOGETHERUsed for managing KEEP_TOGETHER in [/atom/var/appearance_flags]
TRAIT_BANNED_FROM_CARGO_SHUTTLEIf the item will block the cargo shuttle from flying to centcom
TRAIT_NO_MISSING_ITEM_ERRORIf the crate's contents are immune to the missing item manifest error
TRAIT_NO_MANIFEST_CONTENTS_ERRORIf the crate is immune to the wrong content in manifest error
TRAIT_MARKET_CRASHINGSSeconomy trait, if the market is crashing and people can't withdraw credits from ID cards.
TRAIT_NO_STORAGE_INSERTcannot be inserted in a storage.
TRAIT_T_RAY_VISIBLEVisible on t-ray scanners if the atom/var/level == 1
TRAIT_FOOD_FRIEDIf this item's been fried
TRAIT_FOOD_BBQ_GRILLEDIf this item's been bbq grilled
TRAIT_FOOD_SILVERThis is a silver slime created item
TRAIT_FOOD_CHEF_MADEIf this item's been made by a chef instead of being map-spawned or admin-spawned or such
TRAIT_QUALITY_FOOD_INGREDIENTThis atom has a quality_food_ingredient element attached
TRAIT_NEEDS_TWO_HANDSThe items needs two hands to be carried
TRAIT_UNCATCHABLECan't be catched when thrown
TRAIT_ROD_REMOVE_FISHING_DUDYou won't catch duds while fishing with this rod.
TRAIT_FISH_CASE_COMPATIBILEStuff that can go inside fish cases
TRAIT_FISHING_BAITIf the item can be used as a bit.
TRAIT_POISONOUS_BAITThis bait will kill any fish that doesn't have it on its favorite_bait list
TRAIT_BASIC_QUALITY_BAITThe quality of the bait. It influences odds of catching fish
TRAIT_OMNI_BAITBaits with this trait will ignore bait preferences and related fish traits.
TRAIT_BAIT_UNCONSUMABLEThe bait won't be consumed when used
TRAIT_BAIT_IGNORE_ENVIRONMENTThis bait ignores environmental conditions for fishing (like low light for nocturnal fish)
TRAIT_BAIT_ALLOW_FISHING_DUDThis bait won't apply TRAIT_ROD_REMOVE_FISHING_DUD to the rod it's attached on, +instead, it'll allow the fishing dud to be there unless there's at least one fish that likes the bait
TRAIT_PLANT_WILDMUTATEPlants that were mutated as a result of passive instability, not a mutation threshold.
TRAIT_APC_SHOCKINGIf you hit an APC with exposed internals with this item it will try to shock you
TRAIT_WIELDEDProperly wielded two handed item
TRAIT_TRANSFORM_ACTIVEA transforming item that is actively extended / transformed
TRAIT_NO_IMMOBILIZEBuckling yourself to objects with this trait won't immobilize you
TRAIT_NO_STRIPPrevents stripping this equipment
TRAIT_NO_BARCODESDisallows this item from being pricetagged with a barcode
TRAIT_ALLOW_HERETIC_CASTINGAllows heretics to cast their spells.
TRAIT_LIVING_HEARTDesignates a heart as a living heart for a heretic.
TRAIT_HAS_BEEN_KIDNAPPEDPrevents the same person from being chosen multiple times for kidnapping objective
TRAIT_CUSTOM_TAP_SOUNDAn item still plays its hitsound even if it has 0 force, instead of the tap
TRAIT_DANGEROUS_OBJECTMakes the feedback message when someone else is putting this item on you more noticeable
TRAIT_HAUNTEDdetermines whether or not objects are haunted and teleport/attack randomly
TRAIT_CONTRABAND_BLOCKERAn item that, if it has contents, will ignore its contents when scanning for contraband.
TRAIT_UNCOMPOSTABLEFor edible items that cannot be composted inside hydro trays
TRAIT_CATLIKE_GRACEThis mob always lands on their feet when they fall, for better or for worse.
TRAIT_STICKEREDif the atom has a sticker attached to it
TRAIT_LIGHTING_DEBUGGEDThis object has light debugging tools attached to it
TRAIT_SHIFTY_EYESGives you the Shifty Eyes quirk, rarely making people who examine you think you examined them back even when you didn't
TRAIT_GAMERTrait for the gamer quirk.
TRAIT_DRYABLETrait for dryable items
TRAIT_DRIEDTrait for dried items
TRAIT_CUSTOMIZABLE_REAGENT_HOLDERTrait for customizable reagent holder
TRAIT_ODD_CUSTOMIZABLE_FOOD_INGREDIENTTrait for allowing an item that isn't food into the customizable reagent holder
TRAIT_BEING_BLADE_SHIELDEDUsed to prevent multiple floating blades from triggering over the same target
TRAIT_UNOBSERVANTThis mob doesn't count as looking at you if you can only act while unobserved
TRAIT_CANNOT_CRYSTALIZETrait put on /mob/living/carbon/human. If that mob has a crystal core, also known as an ethereal heart, it will not try to revive them if the mob dies.
TRAIT_FIREDOOR_STOPTrait applied to turfs when an atmos holosign is placed on them. It will stop firedoors from closing.
TRAIT_CONTAINMENT_FIELDTrait applied to turf blocked by a containment field
TRAIT_COMPONENT_MMITrait applied when the MMI component is added to an /obj/item/integrated_circuit
TRAIT_CIRCUIT_UNDUPABLETrait applied when an integrated circuit/module becomes undupable
TRAIT_CIRCUIT_UI_OPENTrait applied when an integrated circuit opens a UI on a player (see list pick component)
TRAIT_PDA_MESSAGE_MENU_RIGGEDPDA/ModPC Traits. This one makes PDAs explode if the user opens the messages menu
TRAIT_PDA_CAN_EXPLODEThis one denotes a PDA has received a rigged message and will explode when the user tries to reply to a rigged PDA message
TRAIT_MODPC_HALVED_DOWNLOAD_SPEEDThe download speeds of programs from the dowloader is halved.
TRAIT_MODPC_INTERACTING_WITH_FRAMEDictates whether a user (source) is interacting with the frame of a stationary modular computer or the pc inside it. Needed for circuits I guess.
TRAIT_DISEASELIKE_SEVERITY_MEDIUMIf present on a /mob/living/carbon, will make them appear to have a medium level disease on health HUDs.
TRAIT_TENACIOUStrait denoting someone will crawl faster in soft crit
TRAIT_UNBREAKABLEtrait denoting someone will sometimes recover out of crit
TRAIT_AI_PAUSEDtrait that prevents AI controllers from planning detached from ai_status to prevent weird state stuff.
TRAIT_TOWER_OF_BABELthis is used to bypass tongue language restrictions but not tongue disabilities
TRAIT_RECENTLY_COINEDThis target has recently been shot by a marksman coin and is very briefly immune to being hit by one again to prevent recursion
TRAIT_ECHOLOCATION_RECEIVERReceives echolocation images.
TRAIT_ECHOLOCATION_EXTRA_RANGEEcholocation has a higher range.
TRAIT_SUICIDEDTrait given to a living mob and any observer mobs that stem from them if they suicide. +For clarity, this trait should always be associated/tied to a reference to the mob that suicided- not anything else.
TRAIT_PERMANENTLY_MORTALTrait given to a living mob to prevent wizards from making it immortal
TRAIT_MIND_TEMPORARILY_GONETrait given to a mob with a ckey currently in a temporary body, allowing people to know someone will re-enter the round later.
TRAIT_TEMPORARY_BODYSimilar trait given to temporary bodies inhabited by players
TRAIT_WALLMOUNTEDTrait given to objects with the wallmounted component
TRAIT_OREBOX_FUNCTIONALTrait given to mechs that can have orebox functionality on movement
TRAIT_MECHA_CREATED_NORMALLYA trait for mechs that were created through the normal construction process, and not spawned by map or other effects.
TRAIT_FISH_STASISfish traits
TRAIT_FISH_FED_LUBETrait needed for the lubefish evolution
TRAIT_FISH_FROM_CASEIt comes from a fish case. Relevant for bounties so far.
TRAIT_FISH_ELECTROGENESISFish will also occasionally fire weak tesla zaps
TRAIT_FISH_RECESSIVEOffsprings from this fish will never be of its same type (unless it's self-reproducing).
TRAIT_FISH_STINGERThis fish comes equipped with a stinger (increased damage and potentially venomous if also toxic)
TRAIT_FISH_INK_ON_COOLDOWNThis fish is currently on cooldown and cannot splash ink unto people's faces
TRAIT_FISH_SHOULD_TWOHANDEDThis fish requires two hands to carry even if smaller than FISH_SIZE_TWO_HANDS_REQUIRED, as long as it's bulky-sized.
TRAIT_FISH_SURVIVE_COOKINGThis fish won't be killed when cooked.
TRAIT_ANGELICTrait given to angelic constructs to let them purge cult runes
TRAIT_DREAMINGTrait given to a dreaming carbon when they are currently doing dreaming stuff
TRAIT_COMMISSIONEDWhether bots will salute this mob.
TRAIT_RUSTYgeneric atom traits +Trait from /datum/element/rust. Its rusty and should be applying a special overlay to denote this.
TRAIT_DO_NOT_SPLASHStops someone from splashing their reagent_container on an object with this trait
TRAIT_CURRENTLY_CLEANINGMarks an atom when the cleaning of it is first started, so that the cleaning overlay doesn't get removed prematurely
TRAIT_CHASM_DESTROYEDObjects with this trait are deleted if they fall into chasms, rather than entering abstract storage
TRAIT_UNDERFLOORTrait from being under the floor in some manner
TRAIT_NO_MIRROR_REFLECTIONIf the movable shouldn't be reflected by mirrors.
TRAIT_IMMERSEDIf this movable is currently treading in a turf with the immerse element.
TRAIT_ELEVATED_TURFFrom /datum/element/elevation_core for purpose of checking if the turf has the trait from an instance of the element
TRAIT_UNIQUE_IMMERSEWith this, the immerse overlay will give the atom its own submersion visual overlay +instead of one that's also shared with other movables, thus making editing its appearance possible.
TRAIT_TELEKINESIS_CONTROLLEDThis item is currently under the control of telekinesis
TRAIT_CHANGELING_HIVEMIND_MUTEchangelings with this trait can no longer talk over the hivemind
TRAIT_HULKThis guy is a hulk! (Bulky and green, lacks tact)
TRAIT_BLOB_ALLYIsn't attacked harmfully by blob structures
TRAIT_CHUUNIBYOUHas the chuuni component
TRAIT_SPLATTERCASTERHas splattercasting
STATION_TRAIT_ASSISTANT_GIMMICKSTraits given by station traits
TRAIT_DEATHMATCH_EXPLOSIVE_IMPLANTSDeathmatch traits
TRAIT_SPINNINGThis atom is currently spinning.
TRAIT_IMMUNE_TO_CRANIAL_FISSUREThis limb can't be torn open anymore
TRAIT_HAS_CRANIAL_FISSURETrait given if the mob has a cranial fissure.
TRAIT_JOB_FIRST_ID_CARDDenotes that this id card was given via the job outfit, aka the first ID this player got.
TRAIT_MAGNETIC_ID_CARDID cards with this trait will attempt to forcibly occupy the front-facing ID card slot in wallets.
TRAIT_TASTEFULLY_THICK_ID_CARDID cards with this trait have special appraisal text.
TRAIT_ALWAYS_NO_ACCESSthings with this trait are treated as having no access in /atom/movable/proc/check_access(obj/item)
TRAIT_SILICON_ACCESSThe entity has Silicon 'access', so is either a silicon, has an access wand, or is an admin ghost AI. +This is put on the mob, it is used on the client for Admins but they are the exception as they use isAdminGhostAI.
TRAIT_AI_ACCESSThe entity has AI 'access', so is either an AI, has an access wand, or is an admin ghost AI. Used to block off regular Silicons from things. +This is put on the mob, it is used on the client for Admins but they are the exception as they use isAdminGhostAI.
TRAIT_SEE_WORN_COLOURSUsed by wearable_client_colour to determine whether the mob wants to have the colours of the screen affected by worn items (some still do regardless).
TRAIT_IRRADIATEDMarks that this object is irradiated
TRAIT_RADIMMUNEImmune to being irradiated
TRAIT_HALT_RADIATION_EFFECTSHarmful radiation effects, the toxin damage and the burns, will not occur while this trait is active
TRAIT_RADIATION_PROTECTED_CLOTHINGThis clothing protects the user from radiation. +This should not be used on clothing_traits, but should be applied to the clothing itself.
TRAIT_BYPASS_EARLY_IRRADIATED_CHECKWhether or not this item will allow the radiation SS to go through standard +radiation processing as if this wasn't already irradiated. +Basically, without this, COMSIG_IN_RANGE_OF_IRRADIATION won't fire once the object is irradiated.
TRAIT_WAS_EVOLVEDSimple trait that just holds if we came into growth from a specific mob type. Should hold a REF(src) to the type of mob that caused the growth, not anything else.
TRAIT_HEALS_FROM_CARP_RIFTSThis mob heals from carp rifts.
TRAIT_HEALS_FROM_CULT_PYLONSThis mob heals from cult pylons.
TRAIT_MULTIZ_SUIT_SENSORSIgnore Crew monitor Z levels
TRAIT_FINGERPRINT_PASSTHROUGHIgnores body_parts_covered during the add_fingerprint() proc. Works both on the person and the item in the glove slot.
TRAIT_FROZENthis object has been frozen
TRAIT_TACKLING_WINGED_ATTACKERMakes a character be better/worse at tackling depending on their wing's status
TRAIT_TACKLING_FRAIL_ATTACKERMakes a character be frail and more likely to roll bad results if they hit a wall
TRAIT_TACKLING_TAILED_DEFENDERMakes a character be better/worse at defending against tackling depending on their tail's status
TRAIT_RUNECHAT_HIDDENIs runechat for this atom/movable currently disabled, regardless of prefs or anything?
TRAIT_HAS_LABELthe object has a label applied
TRAIT_THINKING_IN_CHARACTERTrait given to a mob that is currently thinking (giving off the "thinking" icon), used in an IC context
TRAIT_SPEAKS_CLEARLYwithout a human having this trait, they speak as if they have no tongue.
TRAIT_GERM_SENSITIVETrait given by /datum/component/germ_sensitive
TRAIT_CASTABLE_LOCThis atom can have spells cast from it if a mob is within it +This means the "caster" of the spell is changed to the mob's loc +Note this doesn't mean all spells are guaranteed to work or the mob is guaranteed to cast
TRAIT_SPELLS_TRANSFER_TO_LOCNeeds above trait to work. +This trait makes it so that any cast spells will attempt to transfer to the location's location. +For example, a heretic inside the haunted blade's spells would emanate from the mob wielding the sword.
TRAIT_RELAYING_ATTACKERTrait given by /datum/element/relay_attacker
TRAIT_IGNORED_BY_LIVING_FLESHTrait given to limb by /mob/living/basic/living_limb_flesh
TRAIT_USED_ORGANTrait given to organs that have been inside a living being previously
TRAIT_WING_BUFFETTrait given while using /datum/action/cooldown/mob_cooldown/wing_buffet
TRAIT_WING_BUFFET_TIREDTrait given while tired after using /datum/action/cooldown/mob_cooldown/wing_buffet
TRAIT_RIFT_FAILURETrait given to a dragon who fails to defend their rifts
TRAIT_MOB_HIDE_HAPPINESSthis trait hides most visible fluff and interactions of happiness, likely temporarily.
TRAIT_MOB_BREEDERtrait determines if this mob can breed given by /datum/component/breeding
TRAIT_MOB_HATCHEDtrait given to mobs that are hatched
TRAIT_NO_MINDSWAPTrait given to mobs that we do not want to mindswap
TRAIT_BAKEABLEtrait given to food that can be baked by /datum/component/bakeable
TRAIT_DART_HAS_INSERTTrait given to foam darts that have an insert in them
TRAIT_ELDRITCH_PAINTING_EXAMINETrait determines if this mob has examined an eldritch painting
TRAIT_FLESH_DESIRETrait used by the /datum/brain_trauma/severe/flesh_desire trauma to change their preferences of what they eat
TRAIT_CLEANBOT_WHISPERERTrait granted by janitor skillchip, allows communication with cleanbots
TRAIT_ROCK_STONERTrait granted by the miner skillchip, allows communication with minebots
TRAIT_REGEN_SHIELDTrait given by the regenerative shield component
TRAIT_INVISIMINTrait given when a mob is currently in invisimin mode
TRAIT_MOB_TIPPEDTrait given when a mob has been tipped
TRAIT_ALWAYS_WANTEDTrait which self-identifies as an enemy of the law
TRAIT_MOB_EATERTrait given to mobs that have the basic eating element
TRAIT_DISCO_DANCERTrait which means whatever has this is dancing by a dance machine
TRAIT_INSTANTLY_PROCESSES_BOULDERSTrait which allows mobs to instantly break down boulders.
TRAIT_BOULDER_BREAKERTrait applied to objects and mobs that can attack a boulder and break it down. (See /obj/item/boulder/manual_process())
TRAIT_MANSUS_TOUCHEDTrait given to anything linked to, not necessarily allied to, the mansus
TRAIT_SPELLS_LOTTERYAppiled when wizard buy (/datum/spellbook_entry/perks/spalls_lottery) perk. +Give 50/25% chance not spend a spellbook charge on 1/2 cost spell. +Appiled it wizard can't refund any spells.
TRAIT_PERCEIVED_AS_CLOWNTrait given to mobs wearing the clown mask
TRAIT_BYPASS_RANGED_ARMORDoes this item bypass ranged armor checks?
TRAIT_CONTRABANDTrait which means that this item is considered illegal contraband, and valid for the contraband bounty or when scanned by an nspect scanner.
TRAIT_EXPERT_FISHERTraits given by settler, each with their own specific effects for cases where someone would have that trait, but not the other settler effects
TRAIT_ITEM_OBJECTIVE_BLOCKEDThis item cannot be selected for or used by a theft objective (Spies, Traitors, etc.)
TRAIT_EASY_ATTACHThis trait lets you attach limbs to any player without surgery.
TRAIT_BIRTHDAY_BOYTrait given to the birthday boy
TRAIT_NO_TERRAFORMTrait given to a turf that should not be allowed to be terraformed, such as turfs holding ore vents.
TRAIT_NOGRAV_ALWAYS_DRIFTTrait that prevents mobs from stopping by grabbing objects
TRAIT_SPEECH_BOOSTERMobs with these trait do not get italicized/quiet speech when speaking in low pressure
TRAIT_NO_THROWINGGiven to a mob that can throw to make them not able to throw
TRAIT_MINING_PARRYINGTrait which allows mobs to parry mining mob projectiles
TRAIT_COMBAT_MODE_SKIP_INTERACTIONThis trait is used in some interactions very high in the interaction chain to allow +certain atoms to be skipped by said interactions if the user is in combat mode.
TRAIT_ILLUSORY_EFFECTA "fake" effect that should not be subject to normal effect removal methods (like the effect remover component)

Define Details

STATION_TRAIT_ASSISTANT_GIMMICKS

Traits given by station traits

TRAIT_ACTIVE_STORAGE

every object that is currently the active storage of some client mob has this trait

TRAIT_ADAMANTINE_EXTRACT_ARMOR

Mob has gotten an armor buff from adamantine extract

TRAIT_ADVANCEDTOOLUSER

Whether a mob is dexterous enough to use machines and certain items or not.

TRAIT_AGENDER

Species with this trait are genderless

TRAIT_AI_ACCESS

The entity has AI 'access', so is either an AI, has an access wand, or is an admin ghost AI. Used to block off regular Silicons from things. +This is put on the mob, it is used on the client for Admins but they are the exception as they use isAdminGhostAI.

TRAIT_AI_BAGATTACK

This atom can ignore the "is on a turf" check for simple AI datum attacks, allowing them to attack from bags or lockers as long as any other conditions are met

TRAIT_AI_PAUSED

trait that prevents AI controllers from planning detached from ai_status to prevent weird state stuff.

TRAIT_ALLOWED_HONORBOUND_ATTACK

Someone can safely be attacked with honorbound with ONLY a combat mode check, the trait is assuring holding a weapon and hitting won't hurt them..

TRAIT_ALLOW_HERETIC_CASTING

Allows heretics to cast their spells.

TRAIT_ALWAYS_NO_ACCESS

things with this trait are treated as having no access in /atom/movable/proc/check_access(obj/item)

TRAIT_ALWAYS_WANTED

Trait which self-identifies as an enemy of the law

TRAIT_ANALGESIA

Mob is unable to feel pain

TRAIT_ANGELIC

Trait given to angelic constructs to let them purge cult runes

TRAIT_ANTENNAE

The holder of this trait has antennae or whatever that hurt a ton when noogied

TRAIT_ANTICONVULSANT

From anti-convulsant medication against seizures.

TRAIT_ANTIMAGIC

This mob is antimagic, and immune to spells / cannot cast spells

TRAIT_ANTIMAGIC_NO_SELFBLOCK

This allows a person who has antimagic to cast spells without getting blocked

TRAIT_APC_SHOCKING

If you hit an APC with exposed internals with this item it will try to shock you

TRAIT_BAIT_ALLOW_FISHING_DUD

This bait won't apply TRAIT_ROD_REMOVE_FISHING_DUD to the rod it's attached on, +instead, it'll allow the fishing dud to be there unless there's at least one fish that likes the bait

TRAIT_BAIT_IGNORE_ENVIRONMENT

This bait ignores environmental conditions for fishing (like low light for nocturnal fish)

TRAIT_BAIT_UNCONSUMABLE

The bait won't be consumed when used

TRAIT_BAKEABLE

trait given to food that can be baked by /datum/component/bakeable

TRAIT_BALLOON_SUTRA

Allows clowns to bend balloons into animals

TRAIT_BANNED_FROM_CARGO_SHUTTLE

If the item will block the cargo shuttle from flying to centcom

TRAIT_BASIC_QUALITY_BAIT

The quality of the bait. It influences odds of catching fish

TRAIT_BEING_BLADE_SHIELDED

Used to prevent multiple floating blades from triggering over the same target

TRAIT_BEING_SHOCKED

Is this atom being actively shocked? Used to prevent repeated shocks.

TRAIT_BIRTHDAY_BOY

Trait given to the birthday boy

TRAIT_BLIND_TOOL

Item still allows you to examine items while blind and actively held.

TRAIT_BLOB_ALLY

Isn't attacked harmfully by blob structures

TRAIT_BLOCKING_EXPLOSIVES

This movable atom has the explosive block element

TRAIT_BLOCKING_PROJECTILES

This mob is currently blocking a projectile.

TRAIT_BLOCK_SHUTTLE_MOVEMENT

This mob can not enter or move on a shuttle

TRAIT_BLOODSHOT_EYES

Their eyes are bloodshot. Currently used to set special examine text on humans. Examine text is overridden by TRAIT_UNNATURAL_RED_GLOWY_EYES.

TRAIT_BLOODY_MESS

from heparin and nitrous oxide, makes open bleeding wounds rapidly spill more blood

TRAIT_BLOOD_CLANS

Species with this trait have a blood clan mechanic

TRAIT_BOMBIMMUNE

This human is immune to the effects of being exploded. (ex_act)

TRAIT_BORN_MONKEY

This trait designate that the mob was originally a monkey

TRAIT_BOULDER_BREAKER

Trait applied to objects and mobs that can attack a boulder and break it down. (See /obj/item/boulder/manual_process())

TRAIT_BOXING_READY

Indicates that the target is able to be boxed at a boxer's full power.

TRAIT_BRAINWASHING

this skillchip trait lets you wash brains in washing machines to heal them

TRAIT_BRAWLING_KNOCKDOWN_BLOCKED

Prevents shovies and some strong blows such as unarmed punches and (unreliably) tackles the owner down

TRAIT_BYPASS_EARLY_IRRADIATED_CHECK

Whether or not this item will allow the radiation SS to go through standard +radiation processing as if this wasn't already irradiated. +Basically, without this, COMSIG_IN_RANGE_OF_IRRADIATION won't fire once the object is irradiated.

TRAIT_BYPASS_MEASURES

This mob overrides certain SSlag_switch measures with this special trait

TRAIT_BYPASS_RANGED_ARMOR

Does this item bypass ranged armor checks?

TRAIT_CANNOT_BE_UNBUCKLED

Prevents a mob from being unbuckled, currently only used to prevent people from falling over on the tram

TRAIT_CANNOT_CRYSTALIZE

Trait put on /mob/living/carbon/human. If that mob has a crystal core, also known as an ethereal heart, it will not try to revive them if the mob dies.

TRAIT_CANT_RIDE

Prevents mob from riding mobs when buckled onto something

TRAIT_CAN_HOLD_ITEMS

Trait that means you are capable of holding items in some form

TRAIT_CAN_SIGN_ON_COMMS

This mob is able to use sign language over the radio.

TRAIT_CAN_STRIP

This mob can strip other mobs.

TRAIT_CAN_USE_NUKE

Can use the nuclear device's UI, regardless of a lack of hands

TRAIT_CASTABLE_LOC

This atom can have spells cast from it if a mob is within it +This means the "caster" of the spell is changed to the mob's loc +Note this doesn't mean all spells are guaranteed to work or the mob is guaranteed to cast

TRAIT_CATCH_AND_RELEASE

Atoms with this trait can be right-clicked with a fish to release them, presumably back in the fishing spot they were caught from.

TRAIT_CATLIKE_GRACE

This mob always lands on their feet when they fall, for better or for worse.

TRAIT_CHANGELING_HIVEMIND_MUTE

changelings with this trait can no longer talk over the hivemind

TRAIT_CHASM_DESTROYED

Objects with this trait are deleted if they fall into chasms, rather than entering abstract storage

TRAIT_CHASM_STOPPED

Chasms will be safe to cross while they've this trait.

TRAIT_CHASM_STOPPER

Chasms will be safe to cross if there is something with this trait on it

TRAIT_CHEF_KISS

Allows chef's to chefs kiss their food, to make them with love

TRAIT_CHUNKYFINGERS

means that you can't use weapons with normal trigger guards.

TRAIT_CHUUNIBYOU

Has the chuuni component

TRAIT_CIRCUIT_UI_OPEN

Trait applied when an integrated circuit opens a UI on a player (see list pick component)

TRAIT_CIRCUIT_UNDUPABLE

Trait applied when an integrated circuit/module becomes undupable

TRAIT_CLEANBOT_WHISPERER

Trait granted by janitor skillchip, allows communication with cleanbots

TRAIT_CLIFF_WALKER

We can walk up or around cliffs, or at least we don't fall off of it

TRAIT_CLIMBABLE

Climbable trait, given and taken by the climbable element when added or removed. Exists to be easily checked via HAS_TRAIT().

TRAIT_COAGULATING

from coagulant reagents, this doesn't affect the bleeding itself but does affect the bleed warning messages

TRAIT_COMBAT_MODE_SKIP_INTERACTION

This trait is used in some interactions very high in the interaction chain to allow +certain atoms to be skipped by said interactions if the user is in combat mode.

+

Its primarily use case is for stuff like storage and tables, to allow things like emags to be bagged +(because in some contexts you might want to be emagging a bag, and in others you might want to be storing it.)

+

This is only checked by certain items explicitly so you can't just add the trait and expect it to work. +(This may be changed later but I chose to do it this way to avoid messing up interactions which require combat mode)

TRAIT_COMMISSIONED

Whether bots will salute this mob.

TRAIT_COMPONENT_MMI

Trait applied when the MMI component is added to an /obj/item/integrated_circuit

TRAIT_CONTAINMENT_FIELD

Trait applied to turf blocked by a containment field

TRAIT_CONTRABAND

Trait which means that this item is considered illegal contraband, and valid for the contraband bounty or when scanned by an nspect scanner.

TRAIT_CONTRABAND_BLOCKER

An item that, if it has contents, will ignore its contents when scanning for contraband.

TRAIT_CORPSELOCKED

Prevents you from leaving your corpse

TRAIT_CRITICAL_CONDITION

In some kind of critical condition. Is able to succumb.

TRAIT_CULT_HALO

This mob has a cult halo.

TRAIT_CURRENTLY_CLEANING

Marks an atom when the cleaning of it is first started, so that the cleaning overlay doesn't get removed prematurely

TRAIT_CURSED

Gibs on death and slips like ice.

TRAIT_CUSTOMIZABLE_REAGENT_HOLDER

Trait for customizable reagent holder

TRAIT_CUSTOM_TAP_SOUND

An item still plays its hitsound even if it has 0 force, instead of the tap

TRAIT_DANGEROUS_OBJECT

Makes the feedback message when someone else is putting this item on you more noticeable

TRAIT_DART_HAS_INSERT

Trait given to foam darts that have an insert in them

TRAIT_DEATHCOMA

Causes death-like unconsciousness

TRAIT_DEATHMATCH_EXPLOSIVE_IMPLANTS

Deathmatch traits

TRAIT_DEFIB_BLACKLISTED

Blacklisted from being revived via defibrillator

TRAIT_DEL_ON_SPACE_DUMP

Deletes the object upon being dumped into space, usually from exiting hyperspace. Useful if you're spawning in a lot of stuff for hyperspace events that don't need to flood the entire game

TRAIT_DETECTIVES_TASTE

Allows detectives to identify chemicals by taste

TRAIT_DETECT_STORM

always detect storms on icebox

TRAIT_DIAGNOSTIC_HUD

for something granting you a diagnostic hud

TRAIT_DISABLED_BY_WOUND

Used for limbs.

TRAIT_DISCO_DANCER

Trait which means whatever has this is dancing by a dance machine

TRAIT_DISEASELIKE_SEVERITY_MEDIUM

If present on a /mob/living/carbon, will make them appear to have a medium level disease on health HUDs.

TRAIT_DISGUISED

Mob is currently disguised as something else (like a morph being another mob or an object). Holds a reference to the thing that applied the trait.

TRAIT_DISPLAY_JOB_IN_BINARY

Makes the player appear as their respective job in Binary Talk rather than being a 'Default Cyborg'.

TRAIT_DONT_WRITE_MEMORY

For living mobs. It signals that the mob shouldn't have their data written in an external json for persistence.

TRAIT_DOUBLE_TAP

When someone with this trait fires a ranged weapon, their fire delays and click cooldowns are halved

TRAIT_DO_NOT_SPLASH

Stops someone from splashing their reagent_container on an object with this trait

TRAIT_DREAMING

Trait given to a dreaming carbon when they are currently doing dreaming stuff

TRAIT_DRIED

Trait for dried items

TRAIT_DRINKS_BLOOD

Carbons with this trait can eat blood to regenerate their own blood volume, instead of injecting it

TRAIT_DRUNKEN_BRAWLER

Trait that determines whether our mob gains more strength from drinking during a fist fight

TRAIT_DRYABLE

Trait for dryable items

TRAIT_EASYBLEED

Species with this trait have 50% extra chance of bleeding from piercing and slashing wounds

TRAIT_EASY_ATTACH

This trait lets you attach limbs to any player without surgery.

TRAIT_ECHOLOCATION_EXTRA_RANGE

Echolocation has a higher range.

TRAIT_ECHOLOCATION_RECEIVER

Receives echolocation images.

TRAIT_ELDRITCH_PAINTING_EXAMINE

Trait determines if this mob has examined an eldritch painting

TRAIT_ELEVATED_TURF

From /datum/element/elevation_core for purpose of checking if the turf has the trait from an instance of the element

TRAIT_ELITE_CHALLENGER

The user is currently challenging an elite mining mob. Prevents him from challenging another until he's either lost or won.

TRAIT_EMOTEMUTE

Emotemute. Can't... emote.

TRAIT_EXAMINE_DEEPER_FISH

This trait lets you roughly know if the fish is dead, starving, drowning or sick by examining them

TRAIT_EXAMINE_FISH

This trait lets you get the size and weight of the fish by examining them

TRAIT_EXAMINE_FISHING_SPOT

This trait gets you a list of fishes that can be caught when examining a fishing spot.

TRAIT_EXAMINE_FITNESS

This trait lets you evaluate someone's fitness level against your own

TRAIT_EXPANDED_FOV

Expands our FOV by 30 degrees if restricted

TRAIT_EXPERT_FISHER

Traits given by settler, each with their own specific effects for cases where someone would have that trait, but not the other settler effects

TRAIT_FAKEDEATH

Makes the owner appear as dead to most forms of medical examination

TRAIT_FASTMED

reduces the use time of syringes, pills, patches and medigels but only when using on someone

TRAIT_FAST_CUFFING

Makes the user handcuff others faster

TRAIT_FAST_TYING

Halves the time of tying a tie.

TRAIT_FENCE_CLIMBER

Trait which lets you clamber over a barrier

TRAIT_FINGERPRINT_PASSTHROUGH

Ignores body_parts_covered during the add_fingerprint() proc. Works both on the person and the item in the glove slot.

TRAIT_FIREDOOR_STOP

Trait applied to turfs when an atmos holosign is placed on them. It will stop firedoors from closing.

TRAIT_FISHING_BAIT

If the item can be used as a bit.

TRAIT_FISHING_SPOT

Trait given to turfs or objects that can be fished from

TRAIT_FISH_CASE_COMPATIBILE

Stuff that can go inside fish cases

TRAIT_FISH_EATER

This mob likes to eat fish. Raw, uncut fish.

TRAIT_FISH_ELECTROGENESIS

Fish will also occasionally fire weak tesla zaps

TRAIT_FISH_FED_LUBE

Trait needed for the lubefish evolution

TRAIT_FISH_FROM_CASE

It comes from a fish case. Relevant for bounties so far.

TRAIT_FISH_INK_ON_COOLDOWN

This fish is currently on cooldown and cannot splash ink unto people's faces

TRAIT_FISH_RECESSIVE

Offsprings from this fish will never be of its same type (unless it's self-reproducing).

TRAIT_FISH_SHOULD_TWOHANDED

This fish requires two hands to carry even if smaller than FISH_SIZE_TWO_HANDS_REQUIRED, as long as it's bulky-sized.

TRAIT_FISH_STASIS

fish traits

TRAIT_FISH_STINGER

This fish comes equipped with a stinger (increased damage and potentially venomous if also toxic)

TRAIT_FISH_SURVIVE_COOKING

This fish won't be killed when cooked.

TRAIT_FIST_MINING

Allows you to mine with your bare hands

TRAIT_FIXED_MUTANT_COLORS

Species with this trait have mutant colors that cannot be chosen by the player, nor altered ingame by external means

TRAIT_FLESH_DESIRE

Trait used by the /datum/brain_trauma/severe/flesh_desire trauma to change their preferences of what they eat

TRAIT_FLOORED

Prevents voluntary standing or staying up on its own.

TRAIT_FOOD_BBQ_GRILLED

If this item's been bbq grilled

TRAIT_FOOD_CHEF_MADE

If this item's been made by a chef instead of being map-spawned or admin-spawned or such

TRAIT_FOOD_FRIED

If this item's been fried

TRAIT_FOOD_SILVER

This is a silver slime created item

TRAIT_FORBID_MINING_SHUTTLE_CONSOLE_OUTSIDE_STATION

Mobs with this trait can't send the mining shuttle console when used outside the station itself

TRAIT_FORCED_GRAVITY

We have some form of forced gravity acting on us

TRAIT_FORCED_STANDING

Forces user to stay standing

TRAIT_FOV_APPLIED

Mob has fov applied to it

TRAIT_FREE_FLOAT_MOVEMENT

When people are floating from zero-grav or something, we can move around freely!

TRAIT_FREE_HYPERSPACE_MOVEMENT

Gives the movable free hyperspace movement without being pulled during shuttle transit

TRAIT_FREE_HYPERSPACE_SOFTCORDON_MOVEMENT

Lets the movable move freely in the soft-cordon area of transit space, which would otherwise teleport them away just before they got to see the true cordon

TRAIT_FROZEN

this object has been frozen

TRAIT_FUGU_GLANDED

Trait used by fugu glands to avoid double buffing

TRAIT_GAMER

Trait for the gamer quirk.

TRAIT_GAMERGOD

Gets double arcade prizes

TRAIT_GARLIC_BREATH

Used to activate french kissing

TRAIT_GERM_SENSITIVE

Trait given by /datum/component/germ_sensitive

TRAIT_GODMODE

Makes the mob immune to damage and several other ailments.

TRAIT_GOOD_HEARING

Makes whispers clearly heard from seven tiles away, the full hearing range

TRAIT_GREENTEXT_CURSED

Recolored by item/greentext

TRAIT_GUN_NATURAL

Makes it so the mob can use guns regardless of tool user status

TRAIT_HALT_RADIATION_EFFECTS

Harmful radiation effects, the toxin damage and the burns, will not occur while this trait is active

TRAIT_HANDS_BLOCKED

Prevents usage of manipulation appendages (picking, holding or using items, manipulating storage).

TRAIT_HAS_BEEN_KIDNAPPED

Prevents the same person from being chosen multiple times for kidnapping objective

TRAIT_HAS_CRANIAL_FISSURE

Trait given if the mob has a cranial fissure.

TRAIT_HAS_LABEL

the object has a label applied

TRAIT_HATED_BY_DOGS

If applied to a mob, nearby dogs will have a small chance to nonharmfully harass said mob

TRAIT_HAUNTED

determines whether or not objects are haunted and teleport/attack randomly

TRAIT_HEAD_INJURY_BLOCKED

Prevents some severe head injuries being sustained from heavy collisions or blunt force injuries.

TRAIT_HEALS_FROM_CARP_RIFTS

This mob heals from carp rifts.

TRAIT_HEALS_FROM_CULT_PYLONS

This mob heals from cult pylons.

TRAIT_HEARING_SENSITIVE

every hearing sensitive atom has this trait

TRAIT_HEAR_THROUGH_DARKNESS

Ignores darkness for hearing

TRAIT_HIDE_EXTERNAL_ORGANS

Don't draw external organs/species features like wings, horns, frills and stuff

TRAIT_HIGH_VALUE_RANSOM

Sells for more money on the pirate bounty pad.

TRAIT_HOLY

The mob is holy and resistance to cult magic

TRAIT_HONKSPAMMING

Used by the honkspam element to avoid spamming the sound. Amusing considering its name.

TRAIT_HOPELESSLY_ADDICTED

Addictions don't tick down, basically they're permanently addicted

TRAIT_HOT_SPRING_CURSED

Trait applied to /datum/mind to stop someone from using the cursed hot springs to polymorph more than once.

TRAIT_HULK

This guy is a hulk! (Bulky and green, lacks tact)

TRAIT_HYPERSPACED

Sanity trait to keep track of when we're in hyperspace and add the appropriate element if we weren't

TRAIT_HYPERSPACE_STOPPED

The effects of hyperspace drift are blocked when the tile has this trait

TRAIT_HYPOTHERMIC

Trait for when you can no longer gain body heat

TRAIT_ID_APPRAISER

Can examine IDs to see if they are roundstart.

TRAIT_IGNORED_BY_LIVING_FLESH

Trait given to limb by /mob/living/basic/living_limb_flesh

TRAIT_IGNORE_ELEVATION

Does the mob ignore elevation? (e.g. xeno larvas on hiding)

TRAIT_IGNORING_GRAVITY

We are ignoring gravity

TRAIT_ILLITERATE

Blacklist for mobs that can't read or write

TRAIT_ILLUSORY_EFFECT

A "fake" effect that should not be subject to normal effect removal methods (like the effect remover component)

TRAIT_IMMERSED

If this movable is currently treading in a turf with the immerse element.

TRAIT_IMMERSE_STOPPED

The effects of the immerse element will be halted while this trait is present.

TRAIT_IMMOBILIZED

Prevents voluntary movement.

TRAIT_IMMUNE_TO_CRANIAL_FISSURE

This limb can't be torn open anymore

TRAIT_INNATELY_FANTASTICAL_ITEM

This object innately spawns with fantasy variables already applied (the magical component is given to it on initialize), and thus we never want to give it the component again.

TRAIT_INSTANTLY_PROCESSES_BOULDERS

Trait which allows mobs to instantly break down boulders.

TRAIT_INVISIBLE_MAN

This mobs bodyparts are invisible but still clickable.

TRAIT_INVISIMIN

Trait given when a mob is currently in invisimin mode

TRAIT_IN_CALL

Whether or not the user is in a MODlink call, prevents making more calls

TRAIT_IRRADIATED

Marks that this object is irradiated

TRAIT_ITEM_OBJECTIVE_BLOCKED

This item cannot be selected for or used by a theft objective (Spies, Traitors, etc.)

TRAIT_IWASBATONED

Anti Dual-baton cooldown bypass exploit.

TRAIT_JOB_FIRST_ID_CARD

Denotes that this id card was given via the job outfit, aka the first ID this player got.

TRAIT_KEEP_TOGETHER

Used for managing KEEP_TOGETHER in [/atom/var/appearance_flags]

TRAIT_KISS_OF_DEATH

Blowing kisses actually does damage to the victim

TRAIT_KNOCKEDOUT

Forces the user to stay unconscious.

TRAIT_LAVA_IMMUNE

Weather immunities, also protect mobs inside them.

TRAIT_LAVA_STOPPED

Lava will be safe to cross while it has this trait.

TRAIT_LIGHTING_DEBUGGED

This object has light debugging tools attached to it

TRAIT_LITERATE

Whitelist for mobs that can read or write

TRAIT_LIVERLESS_METABOLISM

This just means that the carbon will always have functional liverless metabolism

TRAIT_LIVING_HEART

Designates a heart as a living heart for a heretic.

TRAIT_MAFIAINITIATE

Given by /obj/item/virgin_mary, mobs that used this can no longer use it again ever

TRAIT_MAGICALLY_GIFTED

The user can do things like use magic staffs without penalty

TRAIT_MAGICALLY_PHASED

This mob is phased out of reality from magic, either a jaunt or rod form

TRAIT_MAGNETIC_ID_CARD

ID cards with this trait will attempt to forcibly occupy the front-facing ID card slot in wallets.

TRAIT_MANSUS_TOUCHED

Trait given to anything linked to, not necessarily allied to, the mansus

TRAIT_MARKET_CRASHING

SSeconomy trait, if the market is crashing and people can't withdraw credits from ID cards.

TRAIT_MARTIAL_ARTS_IMMUNE

nobody can use martial arts on this mob

TRAIT_MECHA_CREATED_NORMALLY

A trait for mechs that were created through the normal construction process, and not spawned by map or other effects.

TRAIT_MEDIBOTCOMINGTHROUGH

Is a medbot healing you

TRAIT_MESON_VISION

Gives us turf vision through walls and slight night vision

TRAIT_MESSAGE_IN_A_BOTTLE_LOCATION

If an atom has this trait, then you can toss a bottle with a message in it.

TRAIT_MIMING

The mob has an active mime vow of silence, and thus is unable to speak and has other mime things going on

TRAIT_MINDSHIELD

Makes someone show up as mindshielded on sechuds. Does NOT actually make them unconvertable - See TRAIT_UNCONVERTABLE for that

TRAIT_MIND_READER

Our mob has the mind reading genetic mutation.

TRAIT_MIND_TEMPORARILY_GONE

Trait given to a mob with a ckey currently in a temporary body, allowing people to know someone will re-enter the round later.

TRAIT_MINING_PARRYING

Trait which allows mobs to parry mining mob projectiles

TRAIT_MOB_BREEDER

trait determines if this mob can breed given by /datum/component/breeding

TRAIT_MOB_EATER

Trait given to mobs that have the basic eating element

TRAIT_MOB_HATCHED

trait given to mobs that are hatched

TRAIT_MOB_HIDE_HAPPINESS

this trait hides most visible fluff and interactions of happiness, likely temporarily.

TRAIT_MOB_TIPPED

Trait given when a mob has been tipped

TRAIT_MODPC_HALVED_DOWNLOAD_SPEED

The download speeds of programs from the dowloader is halved.

TRAIT_MODPC_INTERACTING_WITH_FRAME

Dictates whether a user (source) is interacting with the frame of a stationary modular computer or the pc inside it. Needed for circuits I guess.

TRAIT_MORBID

Mobs with this trait do care about a few grisly things, such as digging up graves. They also really do not like bringing people back to life or tending wounds, but love autopsies and amputations.

TRAIT_MOVE_GROUND

Movement type traits for movables. See elements/movetype_handler.dm

TRAIT_MULTIZ_SUIT_SENSORS

Ignore Crew monitor Z levels

TRAIT_MUTANT_COLORS

Species with this trait use mutant colors for coloration

TRAIT_MUTE

Mute. Can't talk.

TRAIT_NEARSIGHTED_CORRECTED

Prevents the overlay from nearsighted

TRAIT_NEEDS_TWO_HANDS

The items needs two hands to be carried

TRAIT_NEGATES_GRAVITY

Negates our gravity, letting us move normally on floors in 0-g

TRAIT_NICE_SHOT

hnnnnnnnggggg..... you're pretty good....

TRAIT_NOBLOOD

This carbon doesn't bleed

TRAIT_NOBREATH

Mob is immune to oxygen damage, does not need to breathe

TRAIT_NOCRITOVERLAY

Doesn't get overlays from being in critical.

TRAIT_NOFAT

Trait which prevents you from becoming overweight

TRAIT_NOFEAR_HOLDUPS

Mobs with this trait will not be immobilized when held up

TRAIT_NOFLASH

Makes you immune to flashes

TRAIT_NOGRAV_ALWAYS_DRIFT

Trait that prevents mobs from stopping by grabbing objects

TRAIT_NOHUNGER

This carbon doesn't get hungry

TRAIT_NOSELFIGNITION_HEAD_ONLY

Prevents plasmamen from self-igniting if only their helmet is missing

TRAIT_NOT_ENGRAVABLE

If something has been engraved/cannot be engraved

TRAIT_NO_AUGMENTS

Humans with this trait cannot get augmentation surgery

TRAIT_NO_BARCODES

Disallows this item from being pricetagged with a barcode

TRAIT_NO_BLOOD_OVERLAY

Humans with this trait won't get bloody hands, nor bloody feet

TRAIT_NO_DEBRAIN_OVERLAY

This carbon doesn't show an overlay when they have no brain

TRAIT_NO_DNA_COPY

Carbons with this trait can't have their DNA copied by diseases nor changelings

TRAIT_NO_DNA_SCRAMBLE

Carbons with this trait can't have their DNA scrambled by genetics or a disease retrovirus.

TRAIT_NO_EXTINGUISH

Mobs that have this trait cannot be extinguished

TRAIT_NO_FLOATING_ANIM

Disables the floating animation. See above.

TRAIT_NO_GLIDE

Unlinks gliding from movement speed, meaning that there will be a delay between movements rather than a single move movement between tiles

TRAIT_NO_GUN_AKIMBO

Mobs with this trait won't be able to dual wield guns.

TRAIT_NO_IMMOBILIZE

Buckling yourself to objects with this trait won't immobilize you

TRAIT_NO_JUMPSUIT

Allows the species to equip items that normally require a jumpsuit without having one equipped. Used by golems.

TRAIT_NO_MANIFEST_CONTENTS_ERROR

If the crate is immune to the wrong content in manifest error

TRAIT_NO_MINDSWAP

Trait given to mobs that we do not want to mindswap

TRAIT_NO_MIRROR_REFLECTION

If the movable shouldn't be reflected by mirrors.

TRAIT_NO_MISSING_ITEM_ERROR

If the crate's contents are immune to the missing item manifest error

TRAIT_NO_PLASMA_TRANSFORM

Cannot be turned into a funny skeleton by the plasma river

TRAIT_NO_SIDE_KICK

can't be kicked to the side

TRAIT_NO_SLIP_ALL

Stops all slipping and sliding from occurring

TRAIT_NO_SLIP_ICE

Stops the mob from slipping on permafrost ice (not any other ice) (but anything with SLIDE_ICE set)

TRAIT_NO_SLIP_SLIDE

Stop the mob from sliding around from being slipped, but not the slip part. +DOES NOT include ice slips.

TRAIT_NO_SLIP_WATER

Stops the mob from slipping on water, or banana peels, or pretty much anything that doesn't have GALOSHES_DONT_HELP set

TRAIT_NO_SOUL

This mob has no soul

TRAIT_NO_STAGGER

Prevents staggering.

TRAIT_NO_STORAGE_INSERT

cannot be inserted in a storage.

TRAIT_NO_STRIP

Prevents stripping this equipment

TRAIT_NO_TELEPORT

do_teleport will not allow this atom to teleport

TRAIT_NO_TERRAFORM

Trait given to a turf that should not be allowed to be terraformed, such as turfs holding ore vents.

TRAIT_NO_THROWING

Given to a mob that can throw to make them not able to throw

TRAIT_NO_THROW_HITPUSH

Getting hit by thrown movables won't push you away

TRAIT_NO_TRANSFORM

"Magic" trait that blocks the mob from moving or interacting with anything. Used for transient stuff like mob transformations or incorporality in special cases. +Will block movement, Life() (!!!), and other stuff based on the mob.

TRAIT_NO_TWOHANDING

Prevents you from twohanding weapons.

TRAIT_NO_UNDERWEAR

Humans with this trait cannot have underwear

TRAIT_NO_ZOMBIFY

Humans with this trait cannot be turned into zombies

TRAIT_NUKEIMMUNE

This mob won't get gibbed by nukes going off

TRAIT_ODD_CUSTOMIZABLE_FOOD_INGREDIENT

Trait for allowing an item that isn't food into the customizable reagent holder

TRAIT_OFF_BALANCE_TACKLER

Applies tackling defense bonus to any mob that has it

TRAIT_OMNI_BAIT

Baits with this trait will ignore bait preferences and related fish traits.

TRAIT_ON_ELEVATED_SURFACE

Is the mob standing on an elevated surface? This prevents them from dropping down if not elevated first.

TRAIT_ON_HIT_EFFECT

Required by the on_hit_effect element, which is in turn added by other elements.

TRAIT_ORBITING_FORBIDDEN

Whether or not orbiting is blocked or not

TRAIT_OREBOX_FUNCTIONAL

Trait given to mechs that can have orebox functionality on movement

TRAIT_OVERDOSEIMMUNE

This carbon can't be overdosed by chems

TRAIT_OVERWATCHED

Currently under the effect of overwatch

TRAIT_OVERWATCH_IMMUNE

Cannot be targeted by watcher overwatch

TRAIT_PAPER_MASTER

Trait given to mobs to indicate that they can catch papers thrown at them midair without trying, +and make syndicate airplanes when folding paper up.

TRAIT_PARALYSIS

Used for limb-based paralysis, where replacing the limb will fix it.

TRAIT_PARALYSIS_L_ARM

These are used for brain-based paralysis, where replacing the limb won't fix it

TRAIT_PARROT_PERCHED

This parrot is currently perched

TRAIT_PASSWINDOW

Lets you fly through windows

TRAIT_PDA_CAN_EXPLODE

This one denotes a PDA has received a rigged message and will explode when the user tries to reply to a rigged PDA message

TRAIT_PDA_MESSAGE_MENU_RIGGED

PDA/ModPC Traits. This one makes PDAs explode if the user opens the messages menu

TRAIT_PERCEIVED_AS_CLOWN

Trait given to mobs wearing the clown mask

TRAIT_PERFECT_ATTACKER

Doesn't miss attacks

TRAIT_PERMANENTLY_MORTAL

Trait given to a living mob to prevent wizards from making it immortal

TRAIT_PLANT_SAFE

We can handle 'dangerous' plants in botany safely

TRAIT_PLANT_WILDMUTATE

Plants that were mutated as a result of passive instability, not a mutation threshold.

TRAIT_PLASMA_LOVER_METABOLISM

Use when you want a mob to be able to metabolize plasma temporarily (e.g. plasma fixation disease symptom)

TRAIT_POISONOUS_BAIT

This bait will kill any fish that doesn't have it on its favorite_bait list

TRAIT_PRESERVE_UI_WITHOUT_CLIENT

This mob should never close UI even if it doesn't have a client

TRAIT_PREVENT_IMPLANT_AUTO_EXPLOSION

If the mob has this trait and die, their bomb implant doesn't detonate automatically. It must be consciously activated.

TRAIT_PROFOUND_FISHER

Trait given to mobs that can fish without a rod

TRAIT_PULL_BLOCKED

Inability to pull things. Turned into a trait from MOBILITY_PULL to be able to track sources.

TRAIT_QUALITY_FOOD_INGREDIENT

This atom has a quality_food_ingredient element attached

TRAIT_QUICKER_CARRY

We place people into a fireman carry especially quickly compared to quick_carry

TRAIT_QUICK_CARRY

We place people into a fireman carry quicker than standard

TRAIT_RADIATION_PROTECTED_CLOTHING

This clothing protects the user from radiation. +This should not be used on clothing_traits, but should be applied to the clothing itself.

TRAIT_RADIMMUNE

Immune to being irradiated

TRAIT_RDS_SUPPRESSED

Prevents hallucinations from the hallucination brain trauma (RDS)

TRAIT_REAGENT_SCANNER

Lets us scan reagents

TRAIT_RECENTLY_BLOCKED_MAGIC

This mob recently blocked magic with some form of antimagic

TRAIT_RECENTLY_COINED

This target has recently been shot by a marksman coin and is very briefly immune to being hit by one again to prevent recursion

TRAIT_REGEN_SHIELD

Trait given by the regenerative shield component

TRAIT_RELAYING_ATTACKER

Trait given by /datum/element/relay_attacker

TRAIT_REMOTE_TASTING

Added to a mob, allows that mob to experience flavour-based moodlets when examining food

TRAIT_RESEARCH_SCANNER

Lets us scan machine parts and tech unlocks

TRAIT_RESISTHEATHANDS

For when you want to be able to touch hot things, but still want fire to be an issue.

TRAIT_RESTRAINED

Abstract condition that prevents movement if being pulled and might be resisted against. Handcuffs and straight jackets, basically.

TRAIT_REVEAL_FISH

Added to mob or mind, changes the icons of the fish shown in the minigame UI depending on the possible reward.

TRAIT_REVENANT_INHIBITED

Trait added when a revenant has been inhibited (typically by the bane of a holy weapon)

TRAIT_REVENANT_REVEALED

Trait added when a revenant is visible.

TRAIT_RIFT_FAILURE

Trait given to a dragon who fails to defend their rifts

TRAIT_ROCK_EATER

Trait which allows you to eat rocks

TRAIT_ROCK_METAMORPHIC

Trait which allows you to gain bonuses from consuming rocks

TRAIT_ROCK_STONER

Trait granted by the miner skillchip, allows communication with minebots

TRAIT_ROD_REMOVE_FISHING_DUD

You won't catch duds while fishing with this rod.

TRAIT_RUNECHAT_HIDDEN

Is runechat for this atom/movable currently disabled, regardless of prefs or anything?

TRAIT_RUSTY

generic atom traits +Trait from /datum/element/rust. Its rusty and should be applying a special overlay to denote this.

TRAIT_SCARY_FISHERMAN

lobstrosities and carps will prioritize/flee from those that have this trait (given by the skill-locked hat)

TRAIT_SECLUDED_LOCATION

This atom is a secluded location, which is counted as out of bounds. +Anything that enters this atom's contents should react if it wants to stay in bounds.

TRAIT_SEE_WORN_COLOURS

Used by wearable_client_colour to determine whether the mob wants to have the colours of the screen affected by worn items (some still do regardless).

TRAIT_SHIFTY_EYES

Gives you the Shifty Eyes quirk, rarely making people who examine you think you examined them back even when you didn't

TRAIT_SHOCKIMMUNE

Are we immune to shocks?

TRAIT_SIGN_LANG

Indicates if the mob is currently speaking with sign language

TRAIT_SILENT_FOOTSTEPS

makes your footsteps completely silent

TRAIT_SILICON_ACCESS

The entity has Silicon 'access', so is either a silicon, has an access wand, or is an admin ghost AI. +This is put on the mob, it is used on the client for Admins but they are the exception as they use isAdminGhostAI.

TRAIT_SILICON_EMOTES_ALLOWED

Mobs with this trait are allowed to use silicon emotes

TRAIT_SIXTHSENSE

Can hear observers

TRAIT_SNEAK

Whether we're sneaking, from the creature sneak ability.

TRAIT_SOFTSPOKEN

Softspoken. Always whisper.

TRAIT_SPACEBREATHING

Lungs always breathe normally when in vacuum/space.

TRAIT_SPARRING

The user is sparring

TRAIT_SPEAKS_CLEARLY

without a human having this trait, they speak as if they have no tongue.

TRAIT_SPECIAL_TRAUMA_BOOST

Increases chance of getting special traumas, makes them harder to cure

TRAIT_SPEECH_BOOSTER

Mobs with these trait do not get italicized/quiet speech when speaking in low pressure

TRAIT_SPELLS_LOTTERY

Appiled when wizard buy (/datum/spellbook_entry/perks/spalls_lottery) perk. +Give 50/25% chance not spend a spellbook charge on 1/2 cost spell. +Appiled it wizard can't refund any spells.

TRAIT_SPELLS_TRANSFER_TO_LOC

Needs above trait to work. +This trait makes it so that any cast spells will attempt to transfer to the location's location. +For example, a heretic inside the haunted blade's spells would emanate from the mob wielding the sword.

TRAIT_SPIDER_CONSUMED

Trait applied to mob/living to mark that spiders should not gain further enriched eggs from eating their corpse.

TRAIT_SPINNING

This atom is currently spinning.

TRAIT_SPINNING_WEB_TURF

A web is being spun on this turf presently

TRAIT_SPLATTERCASTER

Has splattercasting

TRAIT_SPRAY_PAINTABLE

This mob can be painted with the spraycan

TRAIT_STASIS

The mob has the stasis effect. +Does nothing on its own, applied via status effect.

TRAIT_STICKERED

if the atom has a sticker attached to it

TRAIT_STIMMED

Increases the duration of having exercised

TRAIT_STIMULATED

From stimulant reagents, this affects whether the all-nighter lack of sleep penalty should be countered

TRAIT_STRENGTH

Improves boxing damage against boxers and athletics experience gain

TRAIT_STUNIMMUNE

This mob is immune to stun causing status effects and stamcrit. +Prefer to use /mob/living/proc/check_stun_immunity over checking for this trait exactly.

TRAIT_STUN_ON_NEXT_SHOVE

Trait that determines vulnerability to being stunned from a shove

TRAIT_SUCCUMB_OVERRIDE

Lets the user succumb even if they got NODEATH

TRAIT_SUICIDED

Trait given to a living mob and any observer mobs that stem from them if they suicide. +For clarity, this trait should always be associated/tied to a reference to the mob that suicided- not anything else.

TRAIT_SYNDIE_KISS

Syndie kisses can apply burn damage

TRAIT_TACKLING_FRAIL_ATTACKER

Makes a character be frail and more likely to roll bad results if they hit a wall

TRAIT_TACKLING_TAILED_DEFENDER

Makes a character be better/worse at defending against tackling depending on their tail's status

TRAIT_TACKLING_WINGED_ATTACKER

Makes a character be better/worse at tackling depending on their wing's status

TRAIT_TACTICALLY_CAMOUFLAGED

This means the user is currently holding/wearing a "tactical camouflage" item (like a potted plant).

TRAIT_TASTEFULLY_THICK_ID_CARD

ID cards with this trait have special appraisal text.

TRAIT_TELEKINESIS_CONTROLLED

This item is currently under the control of telekinesis

TRAIT_TEMPORARY_BODY

Similar trait given to temporary bodies inhabited by players

TRAIT_TENACIOUS

trait denoting someone will crawl faster in soft crit

TRAIT_TENTACLE_IMMUNE

Cannot be grabbed by goliath tentacles

TRAIT_TESLA_SHOCKIMMUNE

Are we immune to specifically tesla / SM shocks?

TRAIT_THERMAL_VISION

Gives us mob vision through walls and slight night vision

TRAIT_THINKING_IN_CHARACTER

Trait given to a mob that is currently thinking (giving off the "thinking" icon), used in an IC context

TRAIT_TIME_STOP_IMMUNE

Immune to being afflicted by time stop (spell)

TRAIT_TOO_TALL

Makes you way too tall. Like just too much, dude, it's kind of creepy. Humanoid only.

TRAIT_TOSS_GUN_HARD

Can toss a guns like a badass, causing additional damage/effect to their enemies

TRAIT_TOWER_OF_BABEL

this is used to bypass tongue language restrictions but not tongue disabilities

TRAIT_TOXIMMUNE

Mob is immune to toxin damage

TRAIT_TRANSFORM_ACTIVE

A transforming item that is actively extended / transformed

TRAIT_TRUE_NIGHT_VISION

Gives us Night vision

TRAIT_TUMOR_SUPPRESSED

prevents the damage done by a brain tumor

TRAIT_TURF_IGNORE_SLIPPERY

Mobs won't slip on a wet turf while it has this trait

TRAIT_TURF_IGNORE_SLOWDOWN

Turf slowdown will be ignored when this trait is added to a turf.

TRAIT_T_RAY_VISIBLE

Visible on t-ray scanners if the atom/var/level == 1

TRAIT_UI_BLOCKED

Inability to access UI hud elements. Turned into a trait from MOBILITY_UI to be able to track sources.

TRAIT_UNBREAKABLE

trait denoting someone will sometimes recover out of crit

TRAIT_UNCATCHABLE

Can't be catched when thrown

TRAIT_UNCOMPOSTABLE

For edible items that cannot be composted inside hydro trays

TRAIT_UNCONVERTABLE

Makes it impossible for someone to be converted by cult/revs/etc.

TRAIT_UNDENSE

Apply this to make a mob not dense, and remove it when you want it to no longer make them undense, other sources of undesity will still apply. Always define a unique source when adding a new instance of this!

TRAIT_UNDERFLOOR

Trait from being under the floor in some manner

TRAIT_UNHITTABLE_BY_PROJECTILES

Mobs with this trait cannot be hit by projectiles, meaning the projectiles will just go through.

TRAIT_UNHUSKABLE

Won't become a husk under any circumstances

TRAIT_UNIQUE_AQUARIUM_CONTENT

Stops other objects of the same type from being inserted inside the same aquarium it's in.

TRAIT_UNIQUE_IMMERSE

With this, the immerse overlay will give the atom its own submersion visual overlay +instead of one that's also shared with other movables, thus making editing its appearance possible.

TRAIT_UNKNOWN

The person with this trait always appears as 'unknown'.

TRAIT_UNLINKABLE_FISHING_SPOT

This trait prevents the fishing spot from being linked to the fish-porter when a multitool is being used.

TRAIT_UNNATURAL_RED_GLOWY_EYES

Their eyes glow an unnatural red colour. Currently used to set special examine text on humans. Does not guarantee the mob's eyes are coloured red, nor that there is any visible glow on their character sprite.

TRAIT_UNOBSERVANT

This mob doesn't count as looking at you if you can only act while unobserved

TRAIT_USED_DNA_VAULT

For when you've gotten a power from a dna vault

TRAIT_USED_ORGAN

Trait given to organs that have been inside a living being previously

TRAIT_USER_SCOPED

Mob is using the scope component

TRAIT_USES_SKINTONES

Species with this trait use skin tones for coloration

TRAIT_VIRUSIMMUNE

Can't be given viruses

TRAIT_VIRUS_RESISTANCE

Reduces the chance viruses will spread to this mob, and if the mob has a virus, slows its advancement

TRAIT_WADDLING

Required by the waddling element since there are multiple sources of it.

TRAIT_WALLMOUNTED

Trait given to objects with the wallmounted component

TRAIT_WAS_EVOLVED

Simple trait that just holds if we came into growth from a specific mob type. Should hold a REF(src) to the type of mob that caused the growth, not anything else.

TRAIT_WAS_RENAMED

Trait that tracks if something has been renamed. Typically holds a REF() to the object itself (AKA src) for wide addition/removal.

TRAIT_WEAK_SOUL

Revenants draining you only get a very small benefit.

TRAIT_WEB_SURFER

Can navigate the web without getting stuck

TRAIT_WEB_WEAVER

Can weave webs into cloth

TRAIT_WIELDED

Properly wielded two handed item

TRAIT_WING_BUFFET

Trait given while using /datum/action/cooldown/mob_cooldown/wing_buffet

TRAIT_WING_BUFFET_TIRED

Trait given while tired after using /datum/action/cooldown/mob_cooldown/wing_buffet

TRAIT_WOUND_LICKER

These mobs have particularly hygienic tongues

TRAIT_WOUND_SCANNED

Applied into wounds when they're scanned with the wound analyzer, halves time to treat them manually.

TRAIT_XENO_HOST

Tracks whether we're gonna be a baby alien's mummy.

TRAIT_XENO_IMMUNE

prevents xeno huggies implanting skeletons

TRAIT_XRAY_HEARING

Allows you to hear speech through walls

TRAIT_XRAY_VISION

Gives us turf, mob and object vision through walls

\ No newline at end of file diff --git a/code/__DEFINES/traits/macros.html b/code/__DEFINES/traits/macros.html new file mode 100644 index 0000000000000..67f63c72f7d9b --- /dev/null +++ b/code/__DEFINES/traits/macros.html @@ -0,0 +1 @@ +code/__DEFINES/traits/macros.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/traits/macros.dm

TRAIT_TURF_HAS_ELEVATED_OBJFrom /datum/element/elevation for purpose of registering/removing signals and detaching the elevation_core when the trait is absent.
CURSED_ITEM_TRAITThe item is magically cursed
TRAIT_STATUS_EFFECTA trait given by a specific status effect (not sure why we need both but whatever!)
TRAIT_MECH_EQUIPMENTTrait given by mech equipment
ELEMENT_TRAITTrait applied by element

Define Details

CURSED_ITEM_TRAIT

The item is magically cursed

ELEMENT_TRAIT

Trait applied by element

TRAIT_MECH_EQUIPMENT

Trait given by mech equipment

TRAIT_STATUS_EFFECT

A trait given by a specific status effect (not sure why we need both but whatever!)

TRAIT_TURF_HAS_ELEVATED_OBJ

From /datum/element/elevation for purpose of registering/removing signals and detaching the elevation_core when the trait is absent.

\ No newline at end of file diff --git a/code/__DEFINES/traits/sources.html b/code/__DEFINES/traits/sources.html new file mode 100644 index 0000000000000..143a094542743 --- /dev/null +++ b/code/__DEFINES/traits/sources.html @@ -0,0 +1,13 @@ +code/__DEFINES/traits/sources.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/traits/sources.dm

EXPERIMENTAL_SURGERY_TRAITTrait inherited by experimental surgeries
AUGMENTATION_TRAITTrait given by augmented limbs
ABDUCTOR_GLAND_TRAITTrait given by organ gained via abductor surgery
ROUNDSTART_TRAITcannot be removed without admin intervention
QUIRK_TRAITAny traits granted by quirks.
ADMIN_TRAIT(B)admins only.
SMITE_TRAITAny traits given through a smite.
HELD_ITEM_TRAITA trait given by a held item
STATUS_EFFECT_TRAITA trait given by any status effect
LIGHT_DEBUG_TRAITTrait from light debugging
ACTION_TRAITTrait given by an Action datum
BLOCKING_TRAITA trait given by someone blocking.
MASK_TRAITinherited from the mask
SHOES_TRAITinherited from your sweet kicks
IMPLANT_TRAITTrait inherited by implants
VEHICLE_TRAITinherited from riding vehicles
WAS_SHOCKEDTrait sorce for "was recently shocked by something"
BUCKLED_TRAITtrait associated to being buckled
CHOKEHOLD_TRAITtrait associated to being held in a chokehold
RESTING_TRAITtrait associated to resting
STAT_TRAITtrait associated to a stat value or range of
MAPPING_HELPER_TRAITobtained from mapping helper
SUIT_TRAITTrait associated to wearing a suit
LYING_DOWN_TRAITTrait associated to lying down (having a [lying_angle] of a different value than zero).
LEANING_TRAITA trait gained by leaning against a wall
POWER_LACK_TRAITTrait associated to lacking electrical power.
MOTOR_LACK_TRAITTrait associated to lacking motor movement
MAFIA_TRAITTrait associated with mafia
CTF_TRAITTrait associated with ctf
DEATHMATCH_TRAITTrait associated with deathmatch
HIGHLANDER_TRAITTrait associated with highlander
SWORDPLAY_TRAITTrait given from playing pretend with baguettes
NUKE_OP_MINION_TRAITTrait given by being recruited as a nuclear operative
SHAPESHIFT_TRAITTrait given to you by shapeshifting
LEAPING_TRAITA trait gained from a mob's leap action, like the leaper
VANISHING_TRAITA trait gained from a mob's vanish action, like the herophant
SWOOPING_TRAITA trait gained from a mob's swoop action, like the ash drake
MIMIC_TRAITA trait gained from a mob's mimic ability, like the mimic
STICKY_NODROPsticky nodrop sounds like a bad soundcloud rapper's name
LACKING_LOCOMOTION_APPENDAGES_TRAITtrait associated to not having locomotion appendages nor the ability to fly or float
LACKING_MANIPULATION_APPENDAGES_TRAITtrait associated to not having fine manipulation appendages such as hands
WARPWHISTLE_TRAITTrait granted by /obj/item/warp_whistle
TURF_Z_TRANSPARENT_TRAITTurf trait for when a turf is transparent
SOULSTONE_TRAITTrait applied by /datum/component/soulstoned
SLIME_COLDTrait applied to slimes by low temperature
TIPPED_OVERTrait applied to mobs by being tipped over
PAI_FOLDEDTrait applied to PAIs by being folded
BRAIN_UNAIDEDTrait applied to brain mobs when they lack external aid for locomotion, such as being inside a mech.
TRAIT_SUBTREE_REQUIRED_OPERATIONAL_DATUMTrait applied to a mob when it gets a required "operational datum" (components/elements). Sends out the source as the type of the element.
MOD_TRAITTrait applied by MODsuits.
TRAM_PASSENGER_TRAITTrait applied to tram passengers
FULTON_PACK_TRAITTrait given by a fulton extraction pack
UPDATE_TRANSFORM_TRAITTrait from mob/living/update_transform()
BERSERK_TRAITTrait granted by the berserker hood.
HIPPOCRATIC_OATH_TRAITTrait granted by /obj/item/rod_of_asclepius
BLOODDRUNK_TRAITTrait granted by /datum/status_effect/blooddrunk
LIPSTICK_TRAITTrait granted by lipstick
BEAUTY_ELEMENT_TRAITSelf-explainatory.
STABILIZED_LIGHT_PINK_EXTRACT_TRAITTrait given by stabilized light pink extracts
ADAMANTINE_EXTRACT_TRAITTrait given by adamantine extracts
EXPIRED_LIFE_TRAITGiven by the multiple_lives component to the previous body of the mob upon death.
ORBITING_TRAITTrait given to an atom/movable when they orbit something.
ITEM_SCALING_TRAITFrom the item_scaling element
CHOKING_TRAITTrait given by choking
HALLUCINATION_TRAITTrait given by hallucinations
BASIC_MOB_DEATH_TRAITTrait given by simple/basic mob death
SPEED_TRAITTrait given by your current speed
AUTOPSY_TRAITTrait given to mobs that have been autopsied
MARKET_CRASH_EVENT_TRAITFrom the market_crash event
CHAMELEON_ITEM_TRAITTraits granted to items due to their chameleon properties.
FISH_TRAIT_DATUMcoming from a fish trait datum.
FISH_EVOLUTIONcoming from a fish evolution datum
ECHOLOCATION_TRAITTrait given by echolocation component.
SPEAKING_FROM_TONGUEtrait source that tongues should use
SPEAKING_FROM_HANDStrait source that sign language should use
IGNORING_GRAVITY_NEGATIONSources for TRAIT_IGNORING_GRAVITY
CIRCUIT_HEAR_TRAITHearing trait that is from the hearing component
CURRENTLY_TYPING_TRAITThis trait comes from when a mob is currently typing.
NO_TONGUE_TRAITTrait granted by [/mob/living/carbon/Initialize] and +granted/removed by /obj/item/organ/internal/tongue +Used for ensuring that carbons without tongues cannot taste anything +so it is added in Initialize, and then removed when a tongue is inserted +and readded when a tongue is removed.
MODEL_TRAITTrait granted by /mob/living/silicon/robot +Traits applied to a silicon mob by their model.
AI_ANCHOR_TRAITTrait granted by mob/living/silicon/ai +Applied when the ai anchors itself
CLOWNOP_TRAITTrait from /datum/antagonist/nukeop/clownop
ORGAN_INSIDE_BODY_TRAITTrait from an organ being inside a bodypart
RENAMING_TOOL_LABEL_TRAITTrait when something was labelled by the /datum/element/tool_renaming element.
SHAKER_LABEL_TRAITTrait when a drink was renamed by a shaker
JETPACK_TRAITTrait given by a jetpack
STYLE_TRAITTrait added by style component
ENGRAVED_TRAITTrait from an engraving

Define Details

ABDUCTOR_GLAND_TRAIT

Trait given by organ gained via abductor surgery

ACTION_TRAIT

Trait given by an Action datum

ADAMANTINE_EXTRACT_TRAIT

Trait given by adamantine extracts

ADMIN_TRAIT

(B)admins only.

AI_ANCHOR_TRAIT

Trait granted by mob/living/silicon/ai +Applied when the ai anchors itself

AUGMENTATION_TRAIT

Trait given by augmented limbs

AUTOPSY_TRAIT

Trait given to mobs that have been autopsied

BASIC_MOB_DEATH_TRAIT

Trait given by simple/basic mob death

BEAUTY_ELEMENT_TRAIT

Self-explainatory.

BERSERK_TRAIT

Trait granted by the berserker hood.

BLOCKING_TRAIT

A trait given by someone blocking.

BLOODDRUNK_TRAIT

Trait granted by /datum/status_effect/blooddrunk

BRAIN_UNAIDED

Trait applied to brain mobs when they lack external aid for locomotion, such as being inside a mech.

BUCKLED_TRAIT

trait associated to being buckled

CHAMELEON_ITEM_TRAIT

Traits granted to items due to their chameleon properties.

CHOKEHOLD_TRAIT

trait associated to being held in a chokehold

CHOKING_TRAIT

Trait given by choking

CIRCUIT_HEAR_TRAIT

Hearing trait that is from the hearing component

CLOWNOP_TRAIT

Trait from /datum/antagonist/nukeop/clownop

CTF_TRAIT

Trait associated with ctf

CURRENTLY_TYPING_TRAIT

This trait comes from when a mob is currently typing.

DEATHMATCH_TRAIT

Trait associated with deathmatch

ECHOLOCATION_TRAIT

Trait given by echolocation component.

ENGRAVED_TRAIT

Trait from an engraving

EXPERIMENTAL_SURGERY_TRAIT

Trait inherited by experimental surgeries

EXPIRED_LIFE_TRAIT

Given by the multiple_lives component to the previous body of the mob upon death.

FISH_EVOLUTION

coming from a fish evolution datum

FISH_TRAIT_DATUM

coming from a fish trait datum.

FULTON_PACK_TRAIT

Trait given by a fulton extraction pack

HALLUCINATION_TRAIT

Trait given by hallucinations

HELD_ITEM_TRAIT

A trait given by a held item

HIGHLANDER_TRAIT

Trait associated with highlander

HIPPOCRATIC_OATH_TRAIT

Trait granted by /obj/item/rod_of_asclepius

IGNORING_GRAVITY_NEGATION

Sources for TRAIT_IGNORING_GRAVITY

IMPLANT_TRAIT

Trait inherited by implants

ITEM_SCALING_TRAIT

From the item_scaling element

JETPACK_TRAIT

Trait given by a jetpack

LACKING_LOCOMOTION_APPENDAGES_TRAIT

trait associated to not having locomotion appendages nor the ability to fly or float

LACKING_MANIPULATION_APPENDAGES_TRAIT

trait associated to not having fine manipulation appendages such as hands

LEANING_TRAIT

A trait gained by leaning against a wall

LEAPING_TRAIT

A trait gained from a mob's leap action, like the leaper

LIGHT_DEBUG_TRAIT

Trait from light debugging

LIPSTICK_TRAIT

Trait granted by lipstick

LYING_DOWN_TRAIT

Trait associated to lying down (having a [lying_angle] of a different value than zero).

MAFIA_TRAIT

Trait associated with mafia

MAPPING_HELPER_TRAIT

obtained from mapping helper

MARKET_CRASH_EVENT_TRAIT

From the market_crash event

MASK_TRAIT

inherited from the mask

MIMIC_TRAIT

A trait gained from a mob's mimic ability, like the mimic

MODEL_TRAIT

Trait granted by /mob/living/silicon/robot +Traits applied to a silicon mob by their model.

MOD_TRAIT

Trait applied by MODsuits.

MOTOR_LACK_TRAIT

Trait associated to lacking motor movement

NO_TONGUE_TRAIT

Trait granted by [/mob/living/carbon/Initialize] and +granted/removed by /obj/item/organ/internal/tongue +Used for ensuring that carbons without tongues cannot taste anything +so it is added in Initialize, and then removed when a tongue is inserted +and readded when a tongue is removed.

NUKE_OP_MINION_TRAIT

Trait given by being recruited as a nuclear operative

ORBITING_TRAIT

Trait given to an atom/movable when they orbit something.

ORGAN_INSIDE_BODY_TRAIT

Trait from an organ being inside a bodypart

PAI_FOLDED

Trait applied to PAIs by being folded

POWER_LACK_TRAIT

Trait associated to lacking electrical power.

QUIRK_TRAIT

Any traits granted by quirks.

RENAMING_TOOL_LABEL_TRAIT

Trait when something was labelled by the /datum/element/tool_renaming element.

RESTING_TRAIT

trait associated to resting

ROUNDSTART_TRAIT

cannot be removed without admin intervention

SHAKER_LABEL_TRAIT

Trait when a drink was renamed by a shaker

SHAPESHIFT_TRAIT

Trait given to you by shapeshifting

SHOES_TRAIT

inherited from your sweet kicks

SLIME_COLD

Trait applied to slimes by low temperature

SMITE_TRAIT

Any traits given through a smite.

SOULSTONE_TRAIT

Trait applied by /datum/component/soulstoned

SPEAKING_FROM_HANDS

trait source that sign language should use

SPEAKING_FROM_TONGUE

trait source that tongues should use

SPEED_TRAIT

Trait given by your current speed

STABILIZED_LIGHT_PINK_EXTRACT_TRAIT

Trait given by stabilized light pink extracts

STATUS_EFFECT_TRAIT

A trait given by any status effect

STAT_TRAIT

trait associated to a stat value or range of

STICKY_NODROP

sticky nodrop sounds like a bad soundcloud rapper's name

STYLE_TRAIT

Trait added by style component

SUIT_TRAIT

Trait associated to wearing a suit

SWOOPING_TRAIT

A trait gained from a mob's swoop action, like the ash drake

SWORDPLAY_TRAIT

Trait given from playing pretend with baguettes

TIPPED_OVER

Trait applied to mobs by being tipped over

TRAIT_SUBTREE_REQUIRED_OPERATIONAL_DATUM

Trait applied to a mob when it gets a required "operational datum" (components/elements). Sends out the source as the type of the element.

TRAM_PASSENGER_TRAIT

Trait applied to tram passengers

TURF_Z_TRANSPARENT_TRAIT

Turf trait for when a turf is transparent

UPDATE_TRANSFORM_TRAIT

Trait from mob/living/update_transform()

VANISHING_TRAIT

A trait gained from a mob's vanish action, like the herophant

VEHICLE_TRAIT

inherited from riding vehicles

WARPWHISTLE_TRAIT

Trait granted by /obj/item/warp_whistle

WAS_SHOCKED

Trait sorce for "was recently shocked by something"

\ No newline at end of file diff --git a/code/__DEFINES/tts.html b/code/__DEFINES/tts.html new file mode 100644 index 0000000000000..4acec99042b5b --- /dev/null +++ b/code/__DEFINES/tts.html @@ -0,0 +1 @@ +code/__DEFINES/tts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/tts.dm

TTS_SOUND_OFFTTS preference is disbaled entirely, no sound will be played.
TTS_SOUND_ENABLEDTTS preference is enabled, and will give full text-to-speech.
TTS_SOUND_BLIPSTTS preference is set to only play blips of a sound, rather than speech.
TTS_FILTER_RADIOTTS filter to activate start/stop radio clicks on speech.
TTS_FILTER_SILICONTTS filter to activate a silicon effect on speech.

Define Details

TTS_FILTER_RADIO

TTS filter to activate start/stop radio clicks on speech.

TTS_FILTER_SILICON

TTS filter to activate a silicon effect on speech.

TTS_SOUND_BLIPS

TTS preference is set to only play blips of a sound, rather than speech.

TTS_SOUND_ENABLED

TTS preference is enabled, and will give full text-to-speech.

TTS_SOUND_OFF

TTS preference is disbaled entirely, no sound will be played.

\ No newline at end of file diff --git a/code/__DEFINES/turbine_defines.html b/code/__DEFINES/turbine_defines.html new file mode 100644 index 0000000000000..e279cf1a5150a --- /dev/null +++ b/code/__DEFINES/turbine_defines.html @@ -0,0 +1 @@ +code/__DEFINES/turbine_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/turbine_defines.dm

TURBINE_RPM_CONVERSIONMultiplier for converting work into rpm and rpm into power
TURBINE_ENERGY_RECTIFICATION_MULTIPLIEREfficiency of the turbine to turn work into energy, higher values will yield more power
TURBINE_MAX_TAKEN_DAMAGEMax allowed damage per tick
TURBINE_DAMAGE_HEALINGAmount of damage healed when under the heat threshold
TURBINE_DAMAGE_ALARM_STARTAmount of damage that the machine must have to start launching alarms to the engi comms
TURBINE_WORK_CONVERSION_MULTIPLIERMultiplier when converting the gas energy into gas work
TURBINE_HEAT_CONVERSION_MULTIPLIERMultiplier when converting gas work back into heat
TURBINE_COMPRESSOR_STATOR_INTERACTION_MULTIPLIERAmount of energy removed from the work done by the stator due to the consumption from the compressor working on the gases
TURBINE_PART_TIER_ONETiers for turbine parts

Define Details

TURBINE_COMPRESSOR_STATOR_INTERACTION_MULTIPLIER

Amount of energy removed from the work done by the stator due to the consumption from the compressor working on the gases

TURBINE_DAMAGE_ALARM_START

Amount of damage that the machine must have to start launching alarms to the engi comms

TURBINE_DAMAGE_HEALING

Amount of damage healed when under the heat threshold

TURBINE_ENERGY_RECTIFICATION_MULTIPLIER

Efficiency of the turbine to turn work into energy, higher values will yield more power

TURBINE_HEAT_CONVERSION_MULTIPLIER

Multiplier when converting gas work back into heat

TURBINE_MAX_TAKEN_DAMAGE

Max allowed damage per tick

TURBINE_PART_TIER_ONE

Tiers for turbine parts

TURBINE_RPM_CONVERSION

Multiplier for converting work into rpm and rpm into power

TURBINE_WORK_CONVERSION_MULTIPLIER

Multiplier when converting the gas energy into gas work

\ No newline at end of file diff --git a/code/__DEFINES/turfs.html b/code/__DEFINES/turfs.html new file mode 100644 index 0000000000000..654d5bb84b244 --- /dev/null +++ b/code/__DEFINES/turfs.html @@ -0,0 +1,4 @@ +code/__DEFINES/turfs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/turfs.dm

RANGE_TURFSReturns a list of turf in a square
Z_TURFSReturns all turfs in a zlevel
ALL_TURFSReturns all currently loaded turfs
CORNER_BLOCKReturns a list of turfs in the rectangle specified by BOTTOM LEFT corner and height/width, checks for being outside the world border for you
CORNER_BLOCK_OFFSETReturns a list of turfs similar to CORNER_BLOCK but with offsets
CORNER_OUTLINEReturns an outline (neighboring turfs) of the given block
TURF_NEIGHBORSReturns a list of around us
UNDERFLOOR_HIDDENThe pipes, disposals, and wires are hidden
UNDERFLOOR_VISIBLEThe pipes, disposals, and wires are visible but cannot be interacted with
UNDERFLOOR_INTERACTABLEThe pipes, disposals, and wires are visible and can be interacted with
TURF_DRYTurf is dry and mobs won't slip
TURF_WET_WATERTurf has water on the floor and mobs will slip unless walking or using galoshes
TURF_WET_PERMAFROSTTurf has a thick layer of ice on the floor and mobs will slip in the direction until they bump into something
TURF_WET_ICETurf has a thin layer of ice on the floor and mobs will slip
TURF_WET_LUBETurf has lube on the floor and mobs will slip
TURF_WET_SUPERLUBETurf has superlube on the floor and mobs will slip even if they are crawling
MAXIMUM_WET_TIMEMaximum amount of time, (in deciseconds) a tile can be wet for.
get_turfGet the turf that A resides in, regardless of any containers.
get_areaGet the ultimate area of A, similarly to get_turf.
TURF_PATHING_PASS_DENSITYTurf will be passable if density is 0
TURF_PATHING_PASS_PROCTurf will be passable depending on [CanAStarPass] return value
TURF_PATHING_PASS_NOTurf is never passable
DECAL_ALPHADefine the alpha for holiday/colored tile decals
PATTERN_DEFAULTGenerate horizontal striped color turf decals
PATTERN_VERTICAL_STRIPEGenerate vertical striped color turf decals
PATTERN_RANDOMGenerate random color turf decals
PATTERN_RAINBOWGenerate rainbow color turf decals
TURF_MIDPOINTFinds the midpoint of two given turfs.
LARGE_TURF_SMOOTHING_X_OFFSETDefines the x offset to apply to larger smoothing turfs (such as grass).
LARGE_TURF_SMOOTHING_Y_OFFSETDefines the y offset to apply to larger smoothing turfs (such as grass).
BASALT_LIGHT_POWERDefines a consistent light power for our various basalt turfs
BASALT_LIGHT_RANGE_BRIGHTDefines a consistent light range for basalt turfs that have a bigger area of lava
BASALT_LIGHT_RANGE_DIMDefines a consistent light range for basalt turfs that have a smaller area of lava

Define Details

ALL_TURFS

Returns all currently loaded turfs

BASALT_LIGHT_POWER

Defines a consistent light power for our various basalt turfs

BASALT_LIGHT_RANGE_BRIGHT

Defines a consistent light range for basalt turfs that have a bigger area of lava

BASALT_LIGHT_RANGE_DIM

Defines a consistent light range for basalt turfs that have a smaller area of lava

CORNER_BLOCK

Returns a list of turfs in the rectangle specified by BOTTOM LEFT corner and height/width, checks for being outside the world border for you

CORNER_BLOCK_OFFSET

Returns a list of turfs similar to CORNER_BLOCK but with offsets

CORNER_OUTLINE

Returns an outline (neighboring turfs) of the given block

DECAL_ALPHA

Define the alpha for holiday/colored tile decals

LARGE_TURF_SMOOTHING_X_OFFSET

Defines the x offset to apply to larger smoothing turfs (such as grass).

LARGE_TURF_SMOOTHING_Y_OFFSET

Defines the y offset to apply to larger smoothing turfs (such as grass).

MAXIMUM_WET_TIME

Maximum amount of time, (in deciseconds) a tile can be wet for.

PATTERN_DEFAULT

Generate horizontal striped color turf decals

PATTERN_RAINBOW

Generate rainbow color turf decals

PATTERN_RANDOM

Generate random color turf decals

PATTERN_VERTICAL_STRIPE

Generate vertical striped color turf decals

RANGE_TURFS

Returns a list of turf in a square

TURF_DRY

Turf is dry and mobs won't slip

TURF_MIDPOINT

Finds the midpoint of two given turfs.

TURF_NEIGHBORS

Returns a list of around us

TURF_PATHING_PASS_DENSITY

Turf will be passable if density is 0

TURF_PATHING_PASS_NO

Turf is never passable

TURF_PATHING_PASS_PROC

Turf will be passable depending on [CanAStarPass] return value

TURF_WET_ICE

Turf has a thin layer of ice on the floor and mobs will slip

TURF_WET_LUBE

Turf has lube on the floor and mobs will slip

TURF_WET_PERMAFROST

Turf has a thick layer of ice on the floor and mobs will slip in the direction until they bump into something

TURF_WET_SUPERLUBE

Turf has superlube on the floor and mobs will slip even if they are crawling

TURF_WET_WATER

Turf has water on the floor and mobs will slip unless walking or using galoshes

UNDERFLOOR_HIDDEN

The pipes, disposals, and wires are hidden

UNDERFLOOR_INTERACTABLE

The pipes, disposals, and wires are visible and can be interacted with

UNDERFLOOR_VISIBLE

The pipes, disposals, and wires are visible but cannot be interacted with

Z_TURFS

Returns all turfs in a zlevel

get_area

Get the ultimate area of A, similarly to get_turf.

+

Use instead of A.loc.loc.

get_turf

Get the turf that A resides in, regardless of any containers.

+

Use in favor of A.loc or src.loc so that things work correctly when +stored inside an inventory, locker, or other container.

\ No newline at end of file diff --git a/code/__DEFINES/unit_tests.html b/code/__DEFINES/unit_tests.html new file mode 100644 index 0000000000000..a2f157c34301b --- /dev/null +++ b/code/__DEFINES/unit_tests.html @@ -0,0 +1,19 @@ +code/__DEFINES/unit_tests.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/unit_tests.dm

PERFORM_ALL_TESTSAre tests enabled with no focus? +Use this when performing test assertions outside of a unit test, +since a focused test means that you're trying to run a test quickly. +If a parameter is provided, will check if the focus is on that test name. +For example, PERFORM_ALL_TESTS(log_mapping) will only run if either +no test is focused, or the focus is log_mapping.
TEST_ONLY_ASSERTASSERT(), but it only actually does anything during unit tests
REGISTER_REQUIRED_MAP_ITEMUsed for registering typepaths of item to be tracked as a "required map item" +This is used to ensure that that all station maps have certain items mapped in that they should have +Or that people aren't mapping in an excess of items that they shouldn't be +(For example, all map should only ever have 1 Pun Pun)

Define Details

PERFORM_ALL_TESTS

Are tests enabled with no focus? +Use this when performing test assertions outside of a unit test, +since a focused test means that you're trying to run a test quickly. +If a parameter is provided, will check if the focus is on that test name. +For example, PERFORM_ALL_TESTS(log_mapping) will only run if either +no test is focused, or the focus is log_mapping.

REGISTER_REQUIRED_MAP_ITEM

Used for registering typepaths of item to be tracked as a "required map item" +This is used to ensure that that all station maps have certain items mapped in that they should have +Or that people aren't mapping in an excess of items that they shouldn't be +(For example, all map should only ever have 1 Pun Pun)

+

Min is inclusive, Max is inclusive (so 1, 1 means min of 1, max of 1, or only 1 allowed)

+

This should only be used in Initialize(). And don't forget to update the unit test with the type itself!

TEST_ONLY_ASSERT

ASSERT(), but it only actually does anything during unit tests

\ No newline at end of file diff --git a/code/__DEFINES/uplink.html b/code/__DEFINES/uplink.html new file mode 100644 index 0000000000000..4b34c2b41eebe --- /dev/null +++ b/code/__DEFINES/uplink.html @@ -0,0 +1,3 @@ +code/__DEFINES/uplink.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/uplink.dm

UPLINK_TRAITORSThis item is purchasable to traitors
UPLINK_NUKE_OPSThis item is purchasable to nuke ops
UPLINK_CLOWN_OPSThis item is purchasable to clown ops
UPLINK_INFILTRATORSThis item is purchasable to infiltrators (midround traitors)
UPLINK_SPYCan be randomly given to spies for their bounties
UPLINK_ALL_SYNDIE_OPSA blanket define for an item being purchasable by all types of nukie
UPLINK_FIREBASE_OPSA blanket define for an item being purchasable by all operatives that spawn at the nukie firebase
UPLINK_SERIOUS_OPSA define that excludes clown ops from the regular nukeop gear lineup
DISPLAY_PROGRESSIONProgression gets turned into a user-friendly form. This is just an abstract equation that makes progression not too large.
TRAITOR_DISCOUNT_BIGTraitor discount size categories
ABSTRACT_UPLINK_ITEMTypepath used for uplink items which don't actually produce an item (essentially just a placeholder) +Future todo: Make this not necessary / make uplink items support item-less items natively
SPY_LOWER_COST_THRESHOLDLower threshold for which an uplink items's TC cost is considered "low" for spy bounties picking rewards
SPY_UPPER_COST_THRESHOLDUpper threshold for which an uplink items's TC cost is considered "high" for spy bounties picking rewards
TRAITOR_DISCOUNT_MIN_PRICEMinimal cost for an item to be eligible for a discount

Define Details

Typepath used for uplink items which don't actually produce an item (essentially just a placeholder) +Future todo: Make this not necessary / make uplink items support item-less items natively

DISPLAY_PROGRESSION

Progression gets turned into a user-friendly form. This is just an abstract equation that makes progression not too large.

SPY_LOWER_COST_THRESHOLD

Lower threshold for which an uplink items's TC cost is considered "low" for spy bounties picking rewards

SPY_UPPER_COST_THRESHOLD

Upper threshold for which an uplink items's TC cost is considered "high" for spy bounties picking rewards

TRAITOR_DISCOUNT_BIG

Traitor discount size categories

TRAITOR_DISCOUNT_MIN_PRICE

Minimal cost for an item to be eligible for a discount

A blanket define for an item being purchasable by all types of nukie

This item is purchasable to clown ops

A blanket define for an item being purchasable by all operatives that spawn at the nukie firebase

This item is purchasable to infiltrators (midround traitors)

This item is purchasable to nuke ops

A define that excludes clown ops from the regular nukeop gear lineup

Can be randomly given to spies for their bounties

This item is purchasable to traitors

\ No newline at end of file diff --git a/code/__DEFINES/vehicles.html b/code/__DEFINES/vehicles.html new file mode 100644 index 0000000000000..e740f4b8902f8 --- /dev/null +++ b/code/__DEFINES/vehicles.html @@ -0,0 +1 @@ +code/__DEFINES/vehicles.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/vehicles.dm

VEHICLE_CONTROL_DRIVEcontrols the vehicles movement
VEHICLE_CONTROL_KIDNAPPEDCan't leave vehicle voluntarily, has to resist.
VEHICLE_CONTROL_MELEEmelee attacks/shoves a vehicle may have
VEHICLE_CONTROL_EQUIPMENTusing equipment/weapons on the vehicle
VEHICLE_CONTROL_SETTINGSchanging around settings and the like.
FULL_MECHA_CONTROLez define for giving a single pilot mech all the flags it needs.
RIDER_NEEDS_ARMSDoes our vehicle require arms to operate? Also used for piggybacking on humans to reserve arms on the rider
RIDER_NEEDS_LEGSDo we need legs to ride this (checks against TRAIT_FLOORED)
UNBUCKLE_DISABLED_RIDERIf the rider is disabled or loses their needed limbs, do they fall off?
CAN_KIDNAPWill this car kidnap people by ramming into them?
VIM_SOUND_COOLDOWNcooldown between uses of the sound maker
VIM_HEAL_AMOUNThow much vim heals per weld
RIDING_OFFSET_ALLThe vehicle being ridden requires pixel offsets for all directions

Define Details

CAN_KIDNAP

Will this car kidnap people by ramming into them?

FULL_MECHA_CONTROL

ez define for giving a single pilot mech all the flags it needs.

RIDER_NEEDS_ARMS

Does our vehicle require arms to operate? Also used for piggybacking on humans to reserve arms on the rider

RIDER_NEEDS_LEGS

Do we need legs to ride this (checks against TRAIT_FLOORED)

RIDING_OFFSET_ALL

The vehicle being ridden requires pixel offsets for all directions

UNBUCKLE_DISABLED_RIDER

If the rider is disabled or loses their needed limbs, do they fall off?

VEHICLE_CONTROL_DRIVE

controls the vehicles movement

VEHICLE_CONTROL_EQUIPMENT

using equipment/weapons on the vehicle

VEHICLE_CONTROL_KIDNAPPED

Can't leave vehicle voluntarily, has to resist.

VEHICLE_CONTROL_MELEE

melee attacks/shoves a vehicle may have

VEHICLE_CONTROL_SETTINGS

changing around settings and the like.

VIM_HEAL_AMOUNT

how much vim heals per weld

VIM_SOUND_COOLDOWN

cooldown between uses of the sound maker

\ No newline at end of file diff --git a/code/__DEFINES/verb_manager.html b/code/__DEFINES/verb_manager.html new file mode 100644 index 0000000000000..ceba1d8cd45c5 --- /dev/null +++ b/code/__DEFINES/verb_manager.html @@ -0,0 +1,23 @@ +code/__DEFINES/verb_manager.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/verb_manager.dm

VERB_OVERTIME_QUEUE_THRESHOLDverb queuing thresholds. remember that since verbs execute after SendMaps the player wont see the effects of the verbs on the game world +until SendMaps executes next tick, and then when that later update reaches them. thus most player input has a minimum latency of world.tick_lag + player ping. +however thats only for the visual effect of player input, when a verb processes the actual latency of game state changes or semantic latency is effectively 1/2 player ping, +unless that verb is queued for the next tick in which case its some number probably smaller than world.tick_lag. +so some verbs that represent player input are important enough that we only introduce semantic latency if we absolutely need to. +its for this reason why player clicks are handled in SSinput before even movement - semantic latency could cause someone to move out of range +when the verb finally processes but it was in range if the verb had processed immediately and overtimed. +queuing tick_usage threshold for verbs that are high enough priority that they only queue if the server is overtiming. +ONLY use for critical verbs
VERB_HIGH_PRIORITY_QUEUE_THRESHOLDqueuing tick_usage threshold for verbs that need lower latency more than most verbs.
VERB_DEFAULT_QUEUE_THRESHOLDdefault queuing tick_usage threshold for most verbs which can allow a small amount of latency to be processed in the next tick
TRY_QUEUE_VERBattempt to queue this verb process if the server is overloaded. evaluates to FALSE if queuing isnt necessary or if it failed. +_verification_args... are only necessary if the verb_manager subsystem youre using checks them in can_queue_verb() +if you put anything in _verification_args that ISNT explicitely put in the can_queue_verb() override of the subsystem youre using, +it will runtime.
QUEUE_OR_CALL_VERBqueue wrapper for TRY_QUEUE_VERB() when you want to call the proc if the server isnt overloaded enough to queue

Define Details

QUEUE_OR_CALL_VERB

queue wrapper for TRY_QUEUE_VERB() when you want to call the proc if the server isnt overloaded enough to queue

TRY_QUEUE_VERB

attempt to queue this verb process if the server is overloaded. evaluates to FALSE if queuing isnt necessary or if it failed. +_verification_args... are only necessary if the verb_manager subsystem youre using checks them in can_queue_verb() +if you put anything in _verification_args that ISNT explicitely put in the can_queue_verb() override of the subsystem youre using, +it will runtime.

VERB_DEFAULT_QUEUE_THRESHOLD

default queuing tick_usage threshold for most verbs which can allow a small amount of latency to be processed in the next tick

VERB_HIGH_PRIORITY_QUEUE_THRESHOLD

queuing tick_usage threshold for verbs that need lower latency more than most verbs.

VERB_OVERTIME_QUEUE_THRESHOLD

verb queuing thresholds. remember that since verbs execute after SendMaps the player wont see the effects of the verbs on the game world +until SendMaps executes next tick, and then when that later update reaches them. thus most player input has a minimum latency of world.tick_lag + player ping. +however thats only for the visual effect of player input, when a verb processes the actual latency of game state changes or semantic latency is effectively 1/2 player ping, +unless that verb is queued for the next tick in which case its some number probably smaller than world.tick_lag. +so some verbs that represent player input are important enough that we only introduce semantic latency if we absolutely need to. +its for this reason why player clicks are handled in SSinput before even movement - semantic latency could cause someone to move out of range +when the verb finally processes but it was in range if the verb had processed immediately and overtimed. +queuing tick_usage threshold for verbs that are high enough priority that they only queue if the server is overtiming. +ONLY use for critical verbs

\ No newline at end of file diff --git a/code/__DEFINES/visual_helpers.html b/code/__DEFINES/visual_helpers.html new file mode 100644 index 0000000000000..060ec808a4ec4 --- /dev/null +++ b/code/__DEFINES/visual_helpers.html @@ -0,0 +1,3 @@ +code/__DEFINES/visual_helpers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/visual_helpers.dm

SET_BASE_PIXELUse this to set the base and ACTUAL pixel offsets of an object at the same time +You should always use this for pixel setting in typepaths, unless you want the map display to look different from in game
_SET_BASE_PIXEL_NO_OFFSETHelper define, sets JUST base pixel offsets
SET_BASE_PIXEL_NOMAPMuch like SET_BASE_PIXEL, except it will not effect pixel offsets in mapping programs

Define Details

SET_BASE_PIXEL

Use this to set the base and ACTUAL pixel offsets of an object at the same time +You should always use this for pixel setting in typepaths, unless you want the map display to look different from in game

SET_BASE_PIXEL_NOMAP

Much like SET_BASE_PIXEL, except it will not effect pixel offsets in mapping programs

_SET_BASE_PIXEL_NO_OFFSET

Helper define, sets JUST base pixel offsets

\ No newline at end of file diff --git a/code/__DEFINES/vv.html b/code/__DEFINES/vv.html new file mode 100644 index 0000000000000..2d2d6fc69e355 --- /dev/null +++ b/code/__DEFINES/vv.html @@ -0,0 +1 @@ +code/__DEFINES/vv.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/vv.dm

VV_ALWAYS_CONTRACT_LISTALWAYS render a reduced list, useful for fuckoff big datums that need to be condensed for the sake of client load

Define Details

VV_ALWAYS_CONTRACT_LIST

ALWAYS render a reduced list, useful for fuckoff big datums that need to be condensed for the sake of client load

\ No newline at end of file diff --git a/code/__DEFINES/wiremod.html b/code/__DEFINES/wiremod.html new file mode 100644 index 0000000000000..1f92d1e3689f4 --- /dev/null +++ b/code/__DEFINES/wiremod.html @@ -0,0 +1,3 @@ +code/__DEFINES/wiremod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/wiremod.dm

COMPONENT_TRIGGERED_BYHelper define that can only be used in /obj/item/circuit_component/input_received()
CIRCUIT_TRIGGERDefine to be placed at any proc that is triggered by a port.
PORT_TYPE_ANYCan accept any datatype. Only works for inputs, output types will runtime.
PORT_TYPE_STRINGString datatype
PORT_TYPE_NUMBERNumber datatype
PORT_TYPE_SIGNALSignal datatype
PORT_TYPE_INSTANT_SIGNALSignal datatype, with a slight variation in name to suggest it causes instant execution. Can only be an output port.
PORT_TYPE_RESPONSE_SIGNALSignal datatype, with a slight variation in name to suggest that it can be used to respond to instant execution.
PORT_TYPE_TABLETable datatype. Derivative of list, contains other lists with matching columns.
PORT_TYPE_OPTIONOptions datatype. Derivative of string.
PORT_TYPE_LISTList datatype
PORT_TYPE_ASSOC_LISTAssociative List datatype. Derivative of list.
PORT_TYPE_ATOMAtom datatype
PORT_TYPE_DATUMDatum datatype
PORT_TYPE_USERUser datatype
PORT_ATOM_MAX_RANGEThe maximum range between a port and an atom
COMPONENT_MIN_RANDOM_POSThe minimum position of the x and y co-ordinates of the component in the UI
COMPONENT_MAX_RANDOM_POSThe maximum position of the x and y co-ordinates of the component in the UI
COMPONENT_MAX_POSThe maximum position in both directions that a component can be in. +Prevents someone from positioning a component at an absurdly high value.
COMPONENT_SIGNALThe value that is sent whenever a component is simply sending a signal. This can be anything, and is currently the seconds since roundstart.
SHELL_FLAG_CIRCUIT_UNREMOVABLEWhether a circuit is stuck on a shell and cannot be removed (by a user)
SHELL_FLAG_REQUIRE_ANCHORWhether the shell needs to be anchored for the circuit to be on.
SHELL_FLAG_USB_PORTWhether or not the shell has a USB port.
SHELL_FLAG_ALLOW_FAILURE_ACTIONWhether the shell allows actions to be peformed on a shell if the action fails. This will additionally block the messages from being displayed.
SHELL_FLAG_CIRCUIT_UNMODIFIABLEWhether a circuit is not able to be modified
USB_CABLE_MAX_RANGEThe maximum range a USB cable can be apart from a source
CIRCUIT_FLAG_INPUT_SIGNALCreates an input trigger that means the component won't be triggered unless the trigger is pulsed.
CIRCUIT_FLAG_OUTPUT_SIGNALCreates an output trigger that sends a pulse whenever the component is successfully triggered
CIRCUIT_FLAG_ADMINMarks a circuit component as admin only. Admins will only be able to link/unlink with these circuit components.
CIRCUIT_FLAG_HIDDENThis circuit component does not show in the menu.
CIRCUIT_FLAG_INSTANTThis circuit component has been marked as a component that has instant execution and will show up in the UI as so. This will only cause a visual change.
CIRCUIT_FLAG_REFUSE_MODULEThis circuit component can't be loaded in module component. Saves us some headaches.
CIRCUIT_NO_DUPLICATESThis circuit component cannot be inserted into the same circuit multiple times. Only use this for major headaches.
CIRCUIT_REAGENT_CONTAINER_TYPEThis circuit component is a reagent container type. Check for existing reagent containers before adding.
DATATYPE_FLAG_ALLOW_MANUAL_INPUTThe datatype supports manual inputs
DATATYPE_FLAG_AVOID_VALUE_UPDATEThe datatype won't update the value when it is connected to the port
DATATYPE_FLAG_ALLOW_ATOM_INPUTAllows the datatype to take entity values from the circuit multitool.
DATATYPE_FLAG_COMPOSITEThe datatype has been generated and is an existing composite datatype

Define Details

CIRCUIT_FLAG_ADMIN

Marks a circuit component as admin only. Admins will only be able to link/unlink with these circuit components.

CIRCUIT_FLAG_HIDDEN

This circuit component does not show in the menu.

CIRCUIT_FLAG_INPUT_SIGNAL

Creates an input trigger that means the component won't be triggered unless the trigger is pulsed.

CIRCUIT_FLAG_INSTANT

This circuit component has been marked as a component that has instant execution and will show up in the UI as so. This will only cause a visual change.

CIRCUIT_FLAG_OUTPUT_SIGNAL

Creates an output trigger that sends a pulse whenever the component is successfully triggered

CIRCUIT_FLAG_REFUSE_MODULE

This circuit component can't be loaded in module component. Saves us some headaches.

CIRCUIT_NO_DUPLICATES

This circuit component cannot be inserted into the same circuit multiple times. Only use this for major headaches.

CIRCUIT_REAGENT_CONTAINER_TYPE

This circuit component is a reagent container type. Check for existing reagent containers before adding.

CIRCUIT_TRIGGER

Define to be placed at any proc that is triggered by a port.

COMPONENT_MAX_POS

The maximum position in both directions that a component can be in. +Prevents someone from positioning a component at an absurdly high value.

COMPONENT_MAX_RANDOM_POS

The maximum position of the x and y co-ordinates of the component in the UI

COMPONENT_MIN_RANDOM_POS

The minimum position of the x and y co-ordinates of the component in the UI

COMPONENT_SIGNAL

The value that is sent whenever a component is simply sending a signal. This can be anything, and is currently the seconds since roundstart.

COMPONENT_TRIGGERED_BY

Helper define that can only be used in /obj/item/circuit_component/input_received()

DATATYPE_FLAG_ALLOW_ATOM_INPUT

Allows the datatype to take entity values from the circuit multitool.

DATATYPE_FLAG_ALLOW_MANUAL_INPUT

The datatype supports manual inputs

DATATYPE_FLAG_AVOID_VALUE_UPDATE

The datatype won't update the value when it is connected to the port

DATATYPE_FLAG_COMPOSITE

The datatype has been generated and is an existing composite datatype

PORT_ATOM_MAX_RANGE

The maximum range between a port and an atom

PORT_TYPE_ANY

Can accept any datatype. Only works for inputs, output types will runtime.

PORT_TYPE_ASSOC_LIST

Associative List datatype. Derivative of list.

PORT_TYPE_ATOM

Atom datatype

PORT_TYPE_DATUM

Datum datatype

PORT_TYPE_INSTANT_SIGNAL

Signal datatype, with a slight variation in name to suggest it causes instant execution. Can only be an output port.

PORT_TYPE_LIST

List datatype

PORT_TYPE_NUMBER

Number datatype

PORT_TYPE_OPTION

Options datatype. Derivative of string.

PORT_TYPE_RESPONSE_SIGNAL

Signal datatype, with a slight variation in name to suggest that it can be used to respond to instant execution.

PORT_TYPE_SIGNAL

Signal datatype

PORT_TYPE_STRING

String datatype

PORT_TYPE_TABLE

Table datatype. Derivative of list, contains other lists with matching columns.

PORT_TYPE_USER

User datatype

SHELL_FLAG_ALLOW_FAILURE_ACTION

Whether the shell allows actions to be peformed on a shell if the action fails. This will additionally block the messages from being displayed.

SHELL_FLAG_CIRCUIT_UNMODIFIABLE

Whether a circuit is not able to be modified

SHELL_FLAG_CIRCUIT_UNREMOVABLE

Whether a circuit is stuck on a shell and cannot be removed (by a user)

SHELL_FLAG_REQUIRE_ANCHOR

Whether the shell needs to be anchored for the circuit to be on.

SHELL_FLAG_USB_PORT

Whether or not the shell has a USB port.

USB_CABLE_MAX_RANGE

The maximum range a USB cable can be apart from a source

\ No newline at end of file diff --git a/code/__DEFINES/wires.html b/code/__DEFINES/wires.html new file mode 100644 index 0000000000000..3fe6cd6af870a --- /dev/null +++ b/code/__DEFINES/wires.html @@ -0,0 +1 @@ +code/__DEFINES/wires.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/wires.dm

COMSIG_CUT_WIREfrom base of /datum/wires/proc/cut : (wire)

Define Details

COMSIG_CUT_WIRE

from base of /datum/wires/proc/cut : (wire)

\ No newline at end of file diff --git a/code/__DEFINES/wounds.html b/code/__DEFINES/wounds.html new file mode 100644 index 0000000000000..74cf0a585b12b --- /dev/null +++ b/code/__DEFINES/wounds.html @@ -0,0 +1,4 @@ +code/__DEFINES/wounds.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/wounds.dm

WOUND_DAMAGE_EXPONENTthe cornerstone of the wound threshold system, your base wound roll for any attack is rand(1, damage^this), after armor reduces said damage. See /obj/item/bodypart/proc/check_wounding
WOUND_MAX_CONSIDERED_DAMAGEany damage dealt over this is ignored for damage rolls unless the target has the frail quirk (35^1.4=145, for reference)
WOUND_MINIMUM_DAMAGEan attack must do this much damage after armor in order to roll for being a wound (so pressure damage/being on fire doesn't proc it)
DISMEMBER_MINIMUM_DAMAGEan attack must do this much damage after armor in order to be eliigible to dismember a suitably mushed bodypart
WOUND_DISMEMBER_OUTRIGHT_THRESHIf an attack rolls this high with their wound (including mods), we try to outright dismember the limb. Note 250 is high enough that with a perfect max roll of 145 (see max cons'd damage), you'd need +100 in mods to do this
CANT_WOUNDset wound_bonus on an item or attack to this to disable checking wounding for the attack
WOUND_DEFAULT_WEIGHTIf there are multiple possible and valid wounds for the same type and severity, weight will be used to pick among them. See _wound_pregen_data.dm for more details +This is used in pick_weight, so use integers
WOUND_SEVERITY_TRIVIALfor jokey/meme wounds like stubbed toe, no standard messages/sounds or second winds
WOUND_SEVERITY_LOSSoutright dismemberment of limb
WOUND_BLUNTany brute weapon/attack that doesn't have sharpness. rolls for blunt bone wounds
WOUND_SLASHany brute weapon/attack with sharpness = SHARP_EDGED. rolls for slash wounds
WOUND_PIERCEany brute weapon/attack with sharpness = SHARP_POINTY. rolls for piercing wounds
WOUND_BURNany concentrated burn attack (lasers really). rolls for burning wounds
WOUND_ALLMainly a define used for wound_pregen_data, if a pregen data instance expects this, it will accept any and all wound types, even none at all
WOUND_DETERMINATION_MAXthe max amount of determination you can have
WOUND_DETERMINATION_BLEED_MODWhile someone has determination in their system, their bleed rate is slightly reduced
WOUND_COMPETITION_OVERPOWER_GREATERSWounds using this competition mode will remove any wounds of a greater severity than itself in a random wound roll. In most cases, you dont want to use this.
WOUND_COMPETITION_OVERPOWER_LESSERSWounds using this competition mode will remove any wounds of a lower severity than itself in a random wound roll. Used for ensuring the worse case scenario of a given injury_roll.
BIO_INORGANICHas absolutely fucking nothing, no wounds
BIO_BONEHas bone - allows the victim to suffer T2-T3 bone blunt wounds
BIO_FLESHHas flesh - allows the victim to suffer fleshy slash pierce and burn wounds
BIO_METALHas metal - allows the victim to suffer robotic blunt and burn wounds
BIO_WIREDIs wired internally - allows the victim to suffer electrical wounds (robotic T1-T3 slash/pierce)
BIO_BLOODEDHas bloodflow - can suffer bleeding wounds and can bleed
BIO_JOINTEDIs connected by a joint - can suffer T1 bone blunt wounds (dislocation)
BIO_ROBOTICRobotic - can suffer all metal/wired wounds, such as: UNIMPLEMENTED PLEASE UPDATE ONCE SYNTH WOUNDS 9/5/2023 ~Niko
BIO_FLESH_BONEHas flesh and bone - See BIO_BONE and BIO_FLESH
BIO_STANDARD_UNJOINTEDStandard humanoid - can bleed and suffer all flesh/bone wounds, such as: T1-3 slash/pierce/burn/blunt, except dislocations. Think human heads/chests
BIO_STANDARD_JOINTEDStandard humanoid limbs - can bleed and suffer all flesh/bone wounds, such as: T1-3 slash/pierce/burn/blunt. Can also bleed, and be dislocated. Think human arms and legs
ANATOMY_INTERIORThe given biostate is on the "interior" of the limb - hard shit, protected by exterior
ANATOMY_EXTERIORThe given biostate is on the "exterior" of the limb - soft shit, protects interior
WOUND_SERIES_FLESH_SLASH_BLEEDT1-T3 Bleeding slash wounds. Requires flesh. Can cause bleeding, but doesn't require it. From: slash.dm
WOUND_SERIES_BONE_BLUNT_BASICT1-T3 Basic blunt wounds. T1 requires jointed, but 2-3 require bone. From: bone.dm
WOUND_SERIES_FLESH_BURN_BASICT1-T3 Basic burn wounds. Requires flesh. From: burns.dm
WOUND_SERIES_FLESH_PUNCTURE_BLEEDT1-T3 Bleeding puncture wounds. Requires flesh. Can cause bleeding, but doesn't require it. From: pierce.dm
WOUND_SERIES_LOSS_BASICGeneric loss wounds. See loss.dm
WOUND_SERIES_CRANIAL_FISSURECranial fissure wound.
WOUND_SERIES_MUSCLE_DAMAGESee muscle.dm and robotic_blunt.dm
/proc/generate_wound_static_dataConstructs [GLOB.all_wound_pregen_data] by iterating through a typecache of pregen data, ignoring abstract types, and instantiating the rest.
/proc/generate_wound_series_collectionGenerates [wound_series_collections] by iterating through all pregen_data. Refer to the mentioned list for documentation
WOUND_PICK_HIGHEST_SEVERITYUsed in get_corresponding_wound_type(): Will pick the highest severity wound out of severity_min and severity_max
WOUND_PICK_LOWEST_SEVERITYUsed in get_corresponding_wound_type(): Will pick the lowest severity wound out of severity_min and severity_max
/proc/get_corresponding_wound_typeSearches through all wounds for any of proper type, series, and biostate, and then returns a single one via pickweight. +Is able to discern between, say, a flesh slash wound, and a metallic slash wound, and will return the respective one for the provided limb.
WOUND_INFECTION_MODERATEbelow this has no ill effects from infection
WOUND_INFECTION_SEVEREthen below here, you ooze some pus and suffer minor tox damage, but nothing serious
WOUND_INFECTION_CRITICALthen below here, your limb occasionally locks up from damage and infection and briefly becomes disabled. Things are getting really bad
WOUND_INFECTION_SEPTICbelow here, your skin is almost entirely falling off and your limb locks up more frequently. You are within a stone's throw of septic paralysis and losing the limb
WOUND_BURN_SANITIZATION_RATEhow quickly sanitization removes infestation and decays per second
WOUND_SLASH_MAX_BLOODFLOWhow much blood you can lose per tick per slash max.
WOUND_SLASH_DAMAGE_FLOW_COEFFfurther slash attacks on a bodypart with a slash wound have their blood_flow further increased by damage * this (10 damage slash adds .25 flow)
WOUND_BONE_HEAD_TIME_VARIANCEif we suffer a bone wound to the head that creates brain traumas, the timer for the trauma cycle is +/- by this percent (0-100)
MANGLES_EXTERIORIf having this wound counts as mangled exterior for dismemberment
MANGLES_INTERIORIf having this wound counts as mangled interior for dismemberment
ACCEPTS_GAUZEIf this wound marks the limb as being allowed to have gauze applied
CAN_BE_GRASPEDIf this wound allows the victim to grasp it
SCAR_SAVE_VERSThe version number of the scar we're saving, any scars being loaded below this number will be discarded, see SCAR_CURRENT_VERSION below
SCAR_SAVE_ZONEThe body_zone we're applying to on granting
SCAR_SAVE_DESCThe description we're loading
SCAR_SAVE_PRECISE_LOCATIONThe precise location we're loading
SCAR_SAVE_SEVERITYThe severity the scar had
SCAR_SAVE_BIOLOGYWhether this is a BIO_BONE scar, a BIO_FLESH scar, or a BIO_FLESH_BONE scar (so you can't load fleshy human scars on a plasmaman character)
SCAR_SAVE_CHAR_SLOTWhich character slot this was saved to
SCAR_SAVE_CHECK_ANY_BIOif the scar will check for any or all biostates on the limb (defaults to FALSE, so all)
SCAR_SAVE_LENGTHhow many fields we save for each scar (so the number of above fields)
SCAR_CURRENT_VERSIONsaved scars with a version lower than this will be discarded, increment when you update the persistent scarring format in a way that invalidates previous saved scars (new fields, reordering, etc)
PERSISTENT_SCAR_SLOTShow many scar slots, per character slot, we have to cycle through for persistent scarring, if enabled in character prefs
BLOOD_FLOW_DECREASINGOur wound is clotting and will eventually stop bleeding if this continues
BLOOD_FLOW_STEADYOur wound is bleeding but is holding steady at the same rate.
BLOOD_FLOW_INCREASINGOur wound is bleeding and actively getting worse, like if we're a critical slash or if we're afflicted with heparin
BLEEDING_MESSAGE_BASE_CDHow often can we annoy the player about their bleeding? This duration is extended if it's not serious bleeding
WOUND_BONE_BIO_BONE_GEL_MULTSkeletons and other BIO_ONLY_BONE creatures respond much better to bone gel and can have severe and critical bone wounds healed by bone gel alone. The duration it takes to heal is also multiplied by this, lucky them!

Define Details

ACCEPTS_GAUZE

If this wound marks the limb as being allowed to have gauze applied

ANATOMY_EXTERIOR

The given biostate is on the "exterior" of the limb - soft shit, protects interior

ANATOMY_INTERIOR

The given biostate is on the "interior" of the limb - hard shit, protected by exterior

BIO_BLOODED

Has bloodflow - can suffer bleeding wounds and can bleed

BIO_BONE

Has bone - allows the victim to suffer T2-T3 bone blunt wounds

BIO_FLESH

Has flesh - allows the victim to suffer fleshy slash pierce and burn wounds

BIO_FLESH_BONE

Has flesh and bone - See BIO_BONE and BIO_FLESH

BIO_INORGANIC

Has absolutely fucking nothing, no wounds

BIO_JOINTED

Is connected by a joint - can suffer T1 bone blunt wounds (dislocation)

BIO_METAL

Has metal - allows the victim to suffer robotic blunt and burn wounds

BIO_ROBOTIC

Robotic - can suffer all metal/wired wounds, such as: UNIMPLEMENTED PLEASE UPDATE ONCE SYNTH WOUNDS 9/5/2023 ~Niko

BIO_STANDARD_JOINTED

Standard humanoid limbs - can bleed and suffer all flesh/bone wounds, such as: T1-3 slash/pierce/burn/blunt. Can also bleed, and be dislocated. Think human arms and legs

BIO_STANDARD_UNJOINTED

Standard humanoid - can bleed and suffer all flesh/bone wounds, such as: T1-3 slash/pierce/burn/blunt, except dislocations. Think human heads/chests

BIO_WIRED

Is wired internally - allows the victim to suffer electrical wounds (robotic T1-T3 slash/pierce)

BLEEDING_MESSAGE_BASE_CD

How often can we annoy the player about their bleeding? This duration is extended if it's not serious bleeding

BLOOD_FLOW_DECREASING

Our wound is clotting and will eventually stop bleeding if this continues

BLOOD_FLOW_INCREASING

Our wound is bleeding and actively getting worse, like if we're a critical slash or if we're afflicted with heparin

BLOOD_FLOW_STEADY

Our wound is bleeding but is holding steady at the same rate.

CANT_WOUND

set wound_bonus on an item or attack to this to disable checking wounding for the attack

CAN_BE_GRASPED

If this wound allows the victim to grasp it

DISMEMBER_MINIMUM_DAMAGE

an attack must do this much damage after armor in order to be eliigible to dismember a suitably mushed bodypart

MANGLES_EXTERIOR

If having this wound counts as mangled exterior for dismemberment

MANGLES_INTERIOR

If having this wound counts as mangled interior for dismemberment

PERSISTENT_SCAR_SLOTS

how many scar slots, per character slot, we have to cycle through for persistent scarring, if enabled in character prefs

SCAR_CURRENT_VERSION

saved scars with a version lower than this will be discarded, increment when you update the persistent scarring format in a way that invalidates previous saved scars (new fields, reordering, etc)

SCAR_SAVE_BIOLOGY

Whether this is a BIO_BONE scar, a BIO_FLESH scar, or a BIO_FLESH_BONE scar (so you can't load fleshy human scars on a plasmaman character)

SCAR_SAVE_CHAR_SLOT

Which character slot this was saved to

SCAR_SAVE_CHECK_ANY_BIO

if the scar will check for any or all biostates on the limb (defaults to FALSE, so all)

SCAR_SAVE_DESC

The description we're loading

SCAR_SAVE_LENGTH

how many fields we save for each scar (so the number of above fields)

SCAR_SAVE_PRECISE_LOCATION

The precise location we're loading

SCAR_SAVE_SEVERITY

The severity the scar had

SCAR_SAVE_VERS

The version number of the scar we're saving, any scars being loaded below this number will be discarded, see SCAR_CURRENT_VERSION below

SCAR_SAVE_ZONE

The body_zone we're applying to on granting

WOUND_ALL

Mainly a define used for wound_pregen_data, if a pregen data instance expects this, it will accept any and all wound types, even none at all

WOUND_BLUNT

any brute weapon/attack that doesn't have sharpness. rolls for blunt bone wounds

WOUND_BONE_BIO_BONE_GEL_MULT

Skeletons and other BIO_ONLY_BONE creatures respond much better to bone gel and can have severe and critical bone wounds healed by bone gel alone. The duration it takes to heal is also multiplied by this, lucky them!

WOUND_BONE_HEAD_TIME_VARIANCE

if we suffer a bone wound to the head that creates brain traumas, the timer for the trauma cycle is +/- by this percent (0-100)

WOUND_BURN

any concentrated burn attack (lasers really). rolls for burning wounds

WOUND_BURN_SANITIZATION_RATE

how quickly sanitization removes infestation and decays per second

WOUND_COMPETITION_OVERPOWER_GREATERS

Wounds using this competition mode will remove any wounds of a greater severity than itself in a random wound roll. In most cases, you dont want to use this.

WOUND_COMPETITION_OVERPOWER_LESSERS

Wounds using this competition mode will remove any wounds of a lower severity than itself in a random wound roll. Used for ensuring the worse case scenario of a given injury_roll.

WOUND_DAMAGE_EXPONENT

the cornerstone of the wound threshold system, your base wound roll for any attack is rand(1, damage^this), after armor reduces said damage. See /obj/item/bodypart/proc/check_wounding

WOUND_DEFAULT_WEIGHT

If there are multiple possible and valid wounds for the same type and severity, weight will be used to pick among them. See _wound_pregen_data.dm for more details +This is used in pick_weight, so use integers

WOUND_DETERMINATION_BLEED_MOD

While someone has determination in their system, their bleed rate is slightly reduced

WOUND_DETERMINATION_MAX

the max amount of determination you can have

WOUND_DISMEMBER_OUTRIGHT_THRESH

If an attack rolls this high with their wound (including mods), we try to outright dismember the limb. Note 250 is high enough that with a perfect max roll of 145 (see max cons'd damage), you'd need +100 in mods to do this

WOUND_INFECTION_CRITICAL

then below here, your limb occasionally locks up from damage and infection and briefly becomes disabled. Things are getting really bad

WOUND_INFECTION_MODERATE

below this has no ill effects from infection

WOUND_INFECTION_SEPTIC

below here, your skin is almost entirely falling off and your limb locks up more frequently. You are within a stone's throw of septic paralysis and losing the limb

WOUND_INFECTION_SEVERE

then below here, you ooze some pus and suffer minor tox damage, but nothing serious

WOUND_MAX_CONSIDERED_DAMAGE

any damage dealt over this is ignored for damage rolls unless the target has the frail quirk (35^1.4=145, for reference)

WOUND_MINIMUM_DAMAGE

an attack must do this much damage after armor in order to roll for being a wound (so pressure damage/being on fire doesn't proc it)

WOUND_PICK_HIGHEST_SEVERITY

Used in get_corresponding_wound_type(): Will pick the highest severity wound out of severity_min and severity_max

WOUND_PICK_LOWEST_SEVERITY

Used in get_corresponding_wound_type(): Will pick the lowest severity wound out of severity_min and severity_max

WOUND_PIERCE

any brute weapon/attack with sharpness = SHARP_POINTY. rolls for piercing wounds

WOUND_SERIES_BONE_BLUNT_BASIC

T1-T3 Basic blunt wounds. T1 requires jointed, but 2-3 require bone. From: bone.dm

WOUND_SERIES_CRANIAL_FISSURE

Cranial fissure wound.

WOUND_SERIES_FLESH_BURN_BASIC

T1-T3 Basic burn wounds. Requires flesh. From: burns.dm

WOUND_SERIES_FLESH_PUNCTURE_BLEED

T1-T3 Bleeding puncture wounds. Requires flesh. Can cause bleeding, but doesn't require it. From: pierce.dm

WOUND_SERIES_FLESH_SLASH_BLEED

T1-T3 Bleeding slash wounds. Requires flesh. Can cause bleeding, but doesn't require it. From: slash.dm

WOUND_SERIES_LOSS_BASIC

Generic loss wounds. See loss.dm

WOUND_SERIES_MUSCLE_DAMAGE

See muscle.dm and robotic_blunt.dm

WOUND_SEVERITY_LOSS

outright dismemberment of limb

WOUND_SEVERITY_TRIVIAL

for jokey/meme wounds like stubbed toe, no standard messages/sounds or second winds

WOUND_SLASH

any brute weapon/attack with sharpness = SHARP_EDGED. rolls for slash wounds

WOUND_SLASH_DAMAGE_FLOW_COEFF

further slash attacks on a bodypart with a slash wound have their blood_flow further increased by damage * this (10 damage slash adds .25 flow)

WOUND_SLASH_MAX_BLOODFLOW

how much blood you can lose per tick per slash max.

\ No newline at end of file diff --git a/code/__DEFINES/xenobiology.html b/code/__DEFINES/xenobiology.html new file mode 100644 index 0000000000000..043d7d6d8fabf --- /dev/null +++ b/code/__DEFINES/xenobiology.html @@ -0,0 +1 @@ +code/__DEFINES/xenobiology.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/xenobiology.dm

NO_SPAWNMob cannot be spawned with a gold slime core
HOSTILE_SPAWNMob can spawned with a gold slime core with plasma reaction as a hostile creature
FRIENDLY_SPAWNMob can be spawned with a gold slime core with blood reaction as a friendly creature
SLIME_ACTIVATE_MINORJelly species slime ability that causes simple effects that require energized jelly
SLIME_ACTIVATE_MAJORJelly species slime ability that causes complex effects that require plasma jelly
LUMINESCENT_DEFAULT_GLOWDetermines how much light the jelly species emit

Define Details

FRIENDLY_SPAWN

Mob can be spawned with a gold slime core with blood reaction as a friendly creature

HOSTILE_SPAWN

Mob can spawned with a gold slime core with plasma reaction as a hostile creature

LUMINESCENT_DEFAULT_GLOW

Determines how much light the jelly species emit

NO_SPAWN

Mob cannot be spawned with a gold slime core

SLIME_ACTIVATE_MAJOR

Jelly species slime ability that causes complex effects that require plasma jelly

SLIME_ACTIVATE_MINOR

Jelly species slime ability that causes simple effects that require energized jelly

\ No newline at end of file diff --git a/code/__DEFINES/zoom.html b/code/__DEFINES/zoom.html new file mode 100644 index 0000000000000..f3614a22808fb --- /dev/null +++ b/code/__DEFINES/zoom.html @@ -0,0 +1 @@ +code/__DEFINES/zoom.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/zoom.dm

ZOOM_METHOD_RIGHT_CLICKHow the scope component is toggled. This one is done by right-clicking.
ZOOM_METHOD_WIELDWielding the object with both hands toggles the zoom. Requires the two-handed component to work.
ZOOM_METHOD_ITEM_ACTIONActivated by clicking an item action button specified by the item_action_type var.

Define Details

ZOOM_METHOD_ITEM_ACTION

Activated by clicking an item action button specified by the item_action_type var.

ZOOM_METHOD_RIGHT_CLICK

How the scope component is toggled. This one is done by right-clicking.

ZOOM_METHOD_WIELD

Wielding the object with both hands toggles the zoom. Requires the two-handed component to work.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/DNA.html b/code/__DEFINES/~skyrat_defines/DNA.html new file mode 100644 index 0000000000000..167eddfbbb090 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/DNA.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/DNA.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/DNA.dm

MUTCOLOR_MATRIXEDWe're using all three mutcolor features for our skin coloration
ORGAN_SLOT_EXTERNAL_CAPOrgan slot external

Define Details

MUTCOLOR_MATRIXED

We're using all three mutcolor features for our skin coloration

ORGAN_SLOT_EXTERNAL_CAP

Organ slot external

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/_HELPERS/lighting.html b/code/__DEFINES/~skyrat_defines/_HELPERS/lighting.html new file mode 100644 index 0000000000000..f82f4e2e830da --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/_HELPERS/lighting.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/_HELPERS/lighting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__DEFINES/~skyrat_defines/_HELPERS/lighting.dm

/proc/emissive_appearance_copyCreates a mutable appearance glued to the EMISSIVE_PLAN, using the values from a mutable appearance
\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/_HELPERS/offset_index.html b/code/__DEFINES/~skyrat_defines/_HELPERS/offset_index.html new file mode 100644 index 0000000000000..045fea7339da5 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/_HELPERS/offset_index.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/_HELPERS/offset_index.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/_HELPERS/offset_index.dm

INDEX_XThe axis of the offset_features list in the species datum

Define Details

INDEX_X

The axis of the offset_features list in the species datum

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/airlock.html b/code/__DEFINES/~skyrat_defines/airlock.html new file mode 100644 index 0000000000000..a4aa0f54bcc68 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/airlock.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/airlock.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/airlock.dm

AIRLOCK_SEAL_MULTIPLIERHow much extra health airlocks get when braced with a seal
AIRLOCK_DENY_ANIMATION_TIMEThe amount of time for the airlock deny animation to show
DOOR_CLOSE_WAITTime before a door closes, if not overridden
DOOR_VISION_DISTANCEThe maximum distance a door will see out to

Define Details

AIRLOCK_DENY_ANIMATION_TIME

The amount of time for the airlock deny animation to show

AIRLOCK_SEAL_MULTIPLIER

How much extra health airlocks get when braced with a seal

DOOR_CLOSE_WAIT

Time before a door closes, if not overridden

DOOR_VISION_DISTANCE

The maximum distance a door will see out to

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/antagonists.html b/code/__DEFINES/~skyrat_defines/antagonists.html new file mode 100644 index 0000000000000..9011958249609 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/antagonists.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/antagonists.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/antagonists.dm

ASSAULT_RESULT_WINFull operative win - goldeneye activated and all ops alive
ASSAULT_RESULT_PARTIAL_WINPartial operative win - Goldeneye was activated and some ops alive
ASSAULT_RESULT_STALEMATEStalemate - Goldeneye not activated and ops still alive
ASSAULT_RESULT_HEARTY_WINHearty win - Goldeneye activated but no ops alive
ASSAULT_RESULT_LOSSCrew win - Goldeneye not activated and no ops alive
BOMB_POP_REQUIREMENTPopulation requirement for bomb objectives (ninja c4, locate weakpoint, etc.) objectives to appear
BORER_STEALTH_MODEIf the borer is in stealth mode, giving less feedback to hosts at the cost of no health/resource/point gain
BORER_SUGAR_IMMUNEIf the borer is sugar-immune, taking no ill effects from sugar
BORER_FAST_BORINGIf the borer is able to enter hosts in half the time, if not hiding
BORER_HIDINGIf the borer is currently hiding under tables/couches/stairs or appearing on top of them
BORER_ALONE_PRODUCTIONIf the borer can produce eggs without a host

Define Details

ASSAULT_RESULT_HEARTY_WIN

Hearty win - Goldeneye activated but no ops alive

ASSAULT_RESULT_LOSS

Crew win - Goldeneye not activated and no ops alive

ASSAULT_RESULT_PARTIAL_WIN

Partial operative win - Goldeneye was activated and some ops alive

ASSAULT_RESULT_STALEMATE

Stalemate - Goldeneye not activated and ops still alive

ASSAULT_RESULT_WIN

Full operative win - goldeneye activated and all ops alive

BOMB_POP_REQUIREMENT

Population requirement for bomb objectives (ninja c4, locate weakpoint, etc.) objectives to appear

BORER_ALONE_PRODUCTION

If the borer can produce eggs without a host

BORER_FAST_BORING

If the borer is able to enter hosts in half the time, if not hiding

BORER_HIDING

If the borer is currently hiding under tables/couches/stairs or appearing on top of them

BORER_STEALTH_MODE

If the borer is in stealth mode, giving less feedback to hosts at the cost of no health/resource/point gain

BORER_SUGAR_IMMUNE

If the borer is sugar-immune, taking no ill effects from sugar

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/apc_defines.html b/code/__DEFINES/~skyrat_defines/apc_defines.html new file mode 100644 index 0000000000000..bdcee29fd1bdf --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/apc_defines.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/apc_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/apc_defines.dm

APC_ARC_LOWERLIMITLower excess value for APC arcing, 5% chance to arc
APC_ARC_MEDIUMLIMITModerate excess value for APC arcing, 10% chance to arc
APC_ARC_UPPERLIMITUpper excess value for for APC arcing, 15% chance to arc

Define Details

APC_ARC_LOWERLIMIT

Lower excess value for APC arcing, 5% chance to arc

APC_ARC_MEDIUMLIMIT

Moderate excess value for APC arcing, 10% chance to arc

APC_ARC_UPPERLIMIT

Upper excess value for for APC arcing, 15% chance to arc

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/armaments.html b/code/__DEFINES/~skyrat_defines/armaments.html new file mode 100644 index 0000000000000..0e011e4a260fb --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/armaments.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/armaments.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/armaments.dm

CATEGORY_LIMITTo identify the limit of the category type in the associative list. Techical stuff.

Define Details

CATEGORY_LIMIT

To identify the limit of the category type in the associative list. Techical stuff.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/automapper.html b/code/__DEFINES/~skyrat_defines/automapper.html new file mode 100644 index 0000000000000..577db0459c206 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/automapper.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/automapper.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/automapper.dm

AREA_SPAWN_MODE_OPENPlace atom in open space in the middle of the room
AREA_SPAWN_MODE_HUG_WALLHug atom next to the wall. Tries not to block things.
AREA_SPAWN_MODE_MOUNT_WALLMount atom to wall. desired_atom MUST have directional helpers.

Define Details

AREA_SPAWN_MODE_HUG_WALL

Hug atom next to the wall. Tries not to block things.

AREA_SPAWN_MODE_MOUNT_WALL

Mount atom to wall. desired_atom MUST have directional helpers.

AREA_SPAWN_MODE_OPEN

Place atom in open space in the middle of the room

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/cells.html b/code/__DEFINES/~skyrat_defines/cells.html new file mode 100644 index 0000000000000..40c0916a7f22a --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/cells.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/cells.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/cells.dm

POWER_CELL_USE_MINIMUMThe minimal amount of power an item can use.
POWER_CELL_USE_VERY_LOWFor items that barely use any power at all.
POWER_CELL_USE_LOWFor items that generally wouldn't use very much power.
POWER_CELL_USE_NORMALFor items that use a average amount of power.
POWER_CELL_USE_HIGHFor items that use a high amount of power.
POWER_CELL_USE_INSANEFor items that use A LOT OF POWER.

Define Details

POWER_CELL_USE_HIGH

For items that use a high amount of power.

POWER_CELL_USE_INSANE

For items that use A LOT OF POWER.

POWER_CELL_USE_LOW

For items that generally wouldn't use very much power.

POWER_CELL_USE_MINIMUM

The minimal amount of power an item can use.

POWER_CELL_USE_NORMAL

For items that use a average amount of power.

POWER_CELL_USE_VERY_LOW

For items that barely use any power at all.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/colony_fabricator_misc.html b/code/__DEFINES/~skyrat_defines/colony_fabricator_misc.html new file mode 100644 index 0000000000000..62d4f18848ce3 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/colony_fabricator_misc.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/colony_fabricator_misc.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/colony_fabricator_misc.dm

RND_CATEGORY_AKHTER_CLOTHINGCategory for clothing in the organics printer
RND_CATEGORY_AKHTER_EQUIPMENTCategory for equipment like belts and bags in the organics printer
RND_CATEGORY_AKHTER_RESOURCESCategory for resources made by the organics printer
RND_CATEGORY_AKHTER_FOODRICATOR_INGREDIENTSCategory for ingredients in the ration printer
RND_CATEGORY_AKHTER_FOODRICATOR_BAGSCategory for bags and containers of reagents in the ration printer
RND_CATEGORY_AKHTER_FOODRICATOR_SNACKSCategory for snacks in the ration printer
RND_CATEGORY_AKHTER_FOODRICATOR_UTENSILSCategory for utensils and whatnot in the ration printer
RND_CATEGORY_AKHTER_SEEDSCategory for the seeds the organics printer can make
RND_CATEGORY_DEFOREST_MEDICALMedical items in the deforest medstation
RND_CATEGORY_DEFOREST_BLOODBlood and blood bags

Define Details

RND_CATEGORY_AKHTER_CLOTHING

Category for clothing in the organics printer

RND_CATEGORY_AKHTER_EQUIPMENT

Category for equipment like belts and bags in the organics printer

RND_CATEGORY_AKHTER_FOODRICATOR_BAGS

Category for bags and containers of reagents in the ration printer

RND_CATEGORY_AKHTER_FOODRICATOR_INGREDIENTS

Category for ingredients in the ration printer

RND_CATEGORY_AKHTER_FOODRICATOR_SNACKS

Category for snacks in the ration printer

RND_CATEGORY_AKHTER_FOODRICATOR_UTENSILS

Category for utensils and whatnot in the ration printer

RND_CATEGORY_AKHTER_RESOURCES

Category for resources made by the organics printer

RND_CATEGORY_AKHTER_SEEDS

Category for the seeds the organics printer can make

RND_CATEGORY_DEFOREST_BLOOD

Blood and blood bags

RND_CATEGORY_DEFOREST_MEDICAL

Medical items in the deforest medstation

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/combat.html b/code/__DEFINES/~skyrat_defines/combat.html new file mode 100644 index 0000000000000..8b340c6931bd0 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/combat.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/combat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/combat.dm

OVERSIZED_HARM_DAMAGE_BONUSThose with the oversized trait do 5 more damage.
OVERSIZED_KICK_EFFECTIVENESS_BONUSIncreased unarmed_effectiveness/stun threshold on oversized kicks.

Define Details

OVERSIZED_HARM_DAMAGE_BONUS

Those with the oversized trait do 5 more damage.

OVERSIZED_KICK_EFFECTIVENESS_BONUS

Increased unarmed_effectiveness/stun threshold on oversized kicks.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/events.html b/code/__DEFINES/~skyrat_defines/events.html new file mode 100644 index 0000000000000..49924157b8237 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/events.html @@ -0,0 +1,7 @@ +code/__DEFINES/~skyrat_defines/events.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/events.dm

EVENT_LOWPOP_THRESHOLDThe events system now operates off of a defined preset of votable pools. +High, med, low +Players can vote for whatever one they want and then the subsystem will select a random event from the pool of pre-generated events. +The random define is for events such as anomalies so they are still run during higher level events.
DIVINE_INTERVENTIONReason for delam suppression: admin command

Define Details

DIVINE_INTERVENTION

Reason for delam suppression: admin command

EVENT_LOWPOP_THRESHOLD

The events system now operates off of a defined preset of votable pools. +High, med, low +Players can vote for whatever one they want and then the subsystem will select a random event from the pool of pre-generated events. +The random define is for events such as anomalies so they are still run during higher level events.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/flavor_defines.html b/code/__DEFINES/~skyrat_defines/flavor_defines.html new file mode 100644 index 0000000000000..70598656702db --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/flavor_defines.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/flavor_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/flavor_defines.dm

FLAVOR_PREVIEW_LIMITHow many characters will be displayed in the flavor text preview before we cut it off?
EXPLOITABLE_DEFAULT_TEXTThe default value that will go in any new player's exploitables.
RECORDS_INVISIBLE_THRESHOLDThe length of records at which they will not show up, to prevent empty records from appearing.
VIEW_CREW_EXPLOITABLES_GAIN_TEXTThe message displayed when someone received the View Crew Exploitables verb.
TEMPORARY_FLAVOR_PREVIEW_LIMITHow many characters will be displayed in the temporary flavor text preview before we cut it off?

Define Details

EXPLOITABLE_DEFAULT_TEXT

The default value that will go in any new player's exploitables.

FLAVOR_PREVIEW_LIMIT

How many characters will be displayed in the flavor text preview before we cut it off?

RECORDS_INVISIBLE_THRESHOLD

The length of records at which they will not show up, to prevent empty records from appearing.

TEMPORARY_FLAVOR_PREVIEW_LIMIT

How many characters will be displayed in the temporary flavor text preview before we cut it off?

VIEW_CREW_EXPLOITABLES_GAIN_TEXT

The message displayed when someone received the View Crew Exploitables verb.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/food.html b/code/__DEFINES/~skyrat_defines/food.html new file mode 100644 index 0000000000000..a58c1e5c16bae --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/food.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/food.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/food.dm

FOOD_PREFERENCE_TOXICUsed inside the foods prefs menu. Indicates that a food is toxic.
FOOD_PREFERENCE_DISLIKEDUsed inside the foods prefs menu. Indicates that a food is disliked.
FOOD_PREFERENCE_NEUTRALUsed inside the foods prefs menu. Indicates that a food is neither liked or disliked.
FOOD_PREFERENCE_LIKEDUsed inside the foods prefs menu. Indicates that a food is liked.
FOOD_PREFERENCE_DEFAULTUsed inside the food prefs menu. Indicates the value of this entry is the default food like/dislike value for the food.
FOOD_PREFERENCE_OBSCUREUsed inside the food prefs menu as an entry. If set to TRUE, the food is completely ignored by the verification system. Optional.

Define Details

FOOD_PREFERENCE_DEFAULT

Used inside the food prefs menu. Indicates the value of this entry is the default food like/dislike value for the food.

FOOD_PREFERENCE_DISLIKED

Used inside the foods prefs menu. Indicates that a food is disliked.

FOOD_PREFERENCE_LIKED

Used inside the foods prefs menu. Indicates that a food is liked.

FOOD_PREFERENCE_NEUTRAL

Used inside the foods prefs menu. Indicates that a food is neither liked or disliked.

FOOD_PREFERENCE_OBSCURE

Used inside the food prefs menu as an entry. If set to TRUE, the food is completely ignored by the verification system. Optional.

FOOD_PREFERENCE_TOXIC

Used inside the foods prefs menu. Indicates that a food is toxic.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/id_cards.html b/code/__DEFINES/~skyrat_defines/id_cards.html new file mode 100644 index 0000000000000..af51b0e6938f0 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/id_cards.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/id_cards.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/id_cards.dm

WILDCARD_LIMIT_CHAMELEON_PLUSBuffed wildcard slot define for Chameleon/Agent ID grey cards. Can hold 4 common, 2 command and 1 captain access.

Define Details

WILDCARD_LIMIT_CHAMELEON_PLUS

Buffed wildcard slot define for Chameleon/Agent ID grey cards. Can hold 4 common, 2 command and 1 captain access.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/integrated_electronics.html b/code/__DEFINES/~skyrat_defines/integrated_electronics.html new file mode 100644 index 0000000000000..f2e48ab60d66f --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/integrated_electronics.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/integrated_electronics.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/integrated_electronics.dm

Methods of obtaining a circuit.

IC_SPAWN_DEFAULTIf the circuit comes in the default circuit box and able to be printed in the IC printer.
IC_SPAWN_RESEARCHIf the circuit design will be available in the IC printer after upgrading it.

Classify circuits which do different actions

IC_ACTION_MOVEMENTIf the circuit can move the assembly
IC_ACTION_COMBATIf the circuit can cause harm
IC_ACTION_LONG_RANGEIf the circuit communicate with something outside of the assembly

Define Details

IC_ACTION_COMBAT

If the circuit can cause harm

IC_ACTION_LONG_RANGE

If the circuit communicate with something outside of the assembly

IC_ACTION_MOVEMENT

If the circuit can move the assembly

IC_SPAWN_DEFAULT

If the circuit comes in the default circuit box and able to be printed in the IC printer.

IC_SPAWN_RESEARCH

If the circuit design will be available in the IC printer after upgrading it.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/language.html b/code/__DEFINES/~skyrat_defines/language.html new file mode 100644 index 0000000000000..b31e2c1d2c884 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/language.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/language.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/language.dm

LANGUAGE_SPAWNERUse this when granting languages in special() for spawner roles, to prevent prefs from removing them

Define Details

LANGUAGE_SPAWNER

Use this when granting languages in special() for spawner roles, to prevent prefs from removing them

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/lewd_defines.html b/code/__DEFINES/~skyrat_defines/lewd_defines.html new file mode 100644 index 0000000000000..dc0afa287c531 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/lewd_defines.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/lewd_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/lewd_defines.dm

AROUSAL_MINIMUMTo prevent an issue with stupidly low negative values.

Define Details

AROUSAL_MINIMUM

To prevent an issue with stupidly low negative values.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/limbs.html b/code/__DEFINES/~skyrat_defines/limbs.html new file mode 100644 index 0000000000000..d2f80394cd480 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/limbs.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/limbs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/limbs.dm

BODYTYPE_TAURThis is a limb to be used on taurs.

Define Details

BODYTYPE_TAUR

This is a limb to be used on taurs.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/liquids.html b/code/__DEFINES/~skyrat_defines/liquids.html new file mode 100644 index 0000000000000..fd921a62cf28b --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/liquids.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/liquids.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/liquids.dm

SQUEEZING_DISPERSAL_RATIOPortion (out of 1) of reagents that are lost during the transfer from a mop/towel to a container.

Define Details

SQUEEZING_DISPERSAL_RATIO

Portion (out of 1) of reagents that are lost during the transfer from a mop/towel to a container.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/loadout.html b/code/__DEFINES/~skyrat_defines/loadout.html new file mode 100644 index 0000000000000..b4211aa5620be --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/loadout.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/loadout.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/loadout.dm

TOOLTIP_NO_ARMORDefines for extra info blurbs, for loadout items.

Define Details

TOOLTIP_NO_ARMOR

Defines for extra info blurbs, for loadout items.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/maths.html b/code/__DEFINES/~skyrat_defines/maths.html new file mode 100644 index 0000000000000..228d343da4a27 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/maths.html @@ -0,0 +1,3 @@ +code/__DEFINES/~skyrat_defines/maths.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/maths.dm

LOGISTIC_FUNCTIONA function that exponentially approaches a maximum value of L +k is the rate at which it approaches L, x_0 is the point where the function = 0

Define Details

LOGISTIC_FUNCTION

A function that exponentially approaches a maximum value of L +k is the rate at which it approaches L, x_0 is the point where the function = 0

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/medical_defines.html b/code/__DEFINES/~skyrat_defines/medical_defines.html new file mode 100644 index 0000000000000..3d1e25c583392 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/medical_defines.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/medical_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/medical_defines.dm

SYNTH_DEFIBBED_TRAUMA_DURATIONIf a synth is revived via defib, they will have a brain trauma for this amount of time.
SYNTH_DEFIBBED_TRAUMA_SEVERITYIf a synth is revived via defib, they will get a brain trauma of this severity.

Define Details

SYNTH_DEFIBBED_TRAUMA_DURATION

If a synth is revived via defib, they will have a brain trauma for this amount of time.

SYNTH_DEFIBBED_TRAUMA_SEVERITY

If a synth is revived via defib, they will get a brain trauma of this severity.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/mobs.html b/code/__DEFINES/~skyrat_defines/mobs.html new file mode 100644 index 0000000000000..ae529aa3216be --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/mobs.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/mobs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/mobs.dm

BODYPART_ICON_HUMANDefines for icons used for modular bodyparts, created to make it easier to relocate the module or files if necessary.

Define Details

BODYPART_ICON_HUMAN

Defines for icons used for modular bodyparts, created to make it easier to relocate the module or files if necessary.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/obj_flags.html b/code/__DEFINES/~skyrat_defines/obj_flags.html new file mode 100644 index 0000000000000..e6e8ef8a8185c --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/obj_flags.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/obj_flags.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/obj_flags.dm

ANVIL_REPAIRWhether something is repairable by the anvil

Define Details

ANVIL_REPAIR

Whether something is repairable by the anvil

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/opposing_force_defines.html b/code/__DEFINES/~skyrat_defines/opposing_force_defines.html new file mode 100644 index 0000000000000..b499482224177 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/opposing_force_defines.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/opposing_force_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/opposing_force_defines.dm

OPFOR_EQUIPMENT_CATEGORY_CLOTHING_UPLINKEQUIPMENT CATEGORIES

Define Details

EQUIPMENT CATEGORIES

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/pollution.html b/code/__DEFINES/~skyrat_defines/pollution.html new file mode 100644 index 0000000000000..310831fb37c9e --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/pollution.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/pollution.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/pollution.dm

POLLUTANT_SMELL_THRESHOLDMinimum amount of smell power to be able to sniff a pollutant

Define Details

POLLUTANT_SMELL_THRESHOLD

Minimum amount of smell power to be able to sniff a pollutant

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/preferences.html b/code/__DEFINES/~skyrat_defines/preferences.html new file mode 100644 index 0000000000000..442bc24604057 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/preferences.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/preferences.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/preferences.dm

TRICOLOR_NO_CHECKfor tri color prefs: doesn't check type_to_check pref
TRICOLOR_CHECK_BOOLEANchecks that the value of type_to_check is not FALSE
TRICOLOR_CHECK_ACCESSORYchecks that the value of type_to_check is associated with a factual sprite accessory (tldr not "None")

Define Details

TRICOLOR_CHECK_ACCESSORY

checks that the value of type_to_check is associated with a factual sprite accessory (tldr not "None")

TRICOLOR_CHECK_BOOLEAN

checks that the value of type_to_check is not FALSE

TRICOLOR_NO_CHECK

for tri color prefs: doesn't check type_to_check pref

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/projectiles.html b/code/__DEFINES/~skyrat_defines/projectiles.html new file mode 100644 index 0000000000000..776426eccbc61 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/projectiles.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/projectiles.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/projectiles.dm

CALIBER_223SThe caliber used by the Oldarms 'Mk.11.4 rifle', designed to be worse .223.
CALIBER_60STRELACaliber used by the giant anti materiel rifle in guncargo
CALIBER_CESARZOWACIN pistol caliber
CALIBER_SOL40LONGStandard Sol rifle caliber
CALIBER_SOL35SHORTStandard Sol pistol caliber
CALIBER_980TYDHOUERBasically 20mm grenades, I'd be concerned if a grenade launcher didn't use this
CALIBER_585TRAPPISTELarge caliber pistol round for Sol hand cannons
CALIBER_PEPPERBALLCaliber used by the pepperball gun
CALIBER_460ROWLANDUsed by the Rowland Magnum Pistol

Define Details

CALIBER_223S

The caliber used by the Oldarms 'Mk.11.4 rifle', designed to be worse .223.

CALIBER_460ROWLAND

Used by the Rowland Magnum Pistol

CALIBER_585TRAPPISTE

Large caliber pistol round for Sol hand cannons

CALIBER_60STRELA

Caliber used by the giant anti materiel rifle in guncargo

CALIBER_980TYDHOUER

Basically 20mm grenades, I'd be concerned if a grenade launcher didn't use this

CALIBER_CESARZOWA

CIN pistol caliber

CALIBER_PEPPERBALL

Caliber used by the pepperball gun

CALIBER_SOL35SHORT

Standard Sol pistol caliber

CALIBER_SOL40LONG

Standard Sol rifle caliber

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/quirks.html b/code/__DEFINES/~skyrat_defines/quirks.html new file mode 100644 index 0000000000000..6409e6c0a7a71 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/quirks.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/quirks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/quirks.dm

DEATH_CONSEQUENCES_MINIMUM_VICTIM_CRIT_THRESHOLDThe victim's crit threshold cannot go below this.
DEATH_CONSEQUENCES_REAGENT_CHECK_PROCESSING_FLAGSIf true, we will check to see if this can process. Ex. things like synths wont process formaldehyde
DEATH_CONSEQUENCES_MAXIMUM_THEORETICAL_DEGRADATIONAbsolute maximum for preferences.

Define Details

DEATH_CONSEQUENCES_MAXIMUM_THEORETICAL_DEGRADATION

Absolute maximum for preferences.

DEATH_CONSEQUENCES_MINIMUM_VICTIM_CRIT_THRESHOLD

The victim's crit threshold cannot go below this.

DEATH_CONSEQUENCES_REAGENT_CHECK_PROCESSING_FLAGS

If true, we will check to see if this can process. Ex. things like synths wont process formaldehyde

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/reagents.html b/code/__DEFINES/~skyrat_defines/reagents.html new file mode 100644 index 0000000000000..bfbfb2fa101dc --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/reagents.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/reagents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/reagents.dm

REAGENT_BLOOD_REGENERATINGThis reagent is useful for blood regeneration. Useful for Hemophages.
SYNTHFLESH_LING_UNHUSK_AMOUNTAmount of synthflesh required to unhusk someone

Define Details

REAGENT_BLOOD_REGENERATING

This reagent is useful for blood regeneration. Useful for Hemophages.

SYNTHFLESH_LING_UNHUSK_AMOUNT

Amount of synthflesh required to unhusk someone

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/robot_defines.html b/code/__DEFINES/~skyrat_defines/robot_defines.html new file mode 100644 index 0000000000000..8fce043507af6 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/robot_defines.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/robot_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/robot_defines.dm

BORG_MODEL_CARGOModule is compatible with Cargo Cyborg model

Define Details

BORG_MODEL_CARGO

Module is compatible with Cargo Cyborg model

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/signals.html b/code/__DEFINES/~skyrat_defines/signals.html new file mode 100644 index 0000000000000..d2eaa5b343fd4 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/signals.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/signals.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/signals.dm

COMSIG_MOVABLE_RADIO_TALK_INTOWhen someone talks into a radio
COMSIG_LIVING_UPDATED_RESTINGResting position for living mob updated
COMSIG_HORRORFORM_EXPLODEHorror form bombastic flag
COMSIG_MOB_CI_TOGGLEDFired in combat_indicator.dm, used for syncing CI between mech and pilot
COMSIG_HOSTILE_MOB_LOST_TARGETWhen a hostile simple mob loses it's target.
COMSIG_GUN_AUTOFIRE_SELECTEDWhen a gun is switched to automatic fire mode
COMSIG_GUN_AUTOFIRE_DESELECTEDWhen a gun is switched off of automatic fire mode
COMSIG_UPDATE_AMMO_HUDThe gun needs to update the gun hud!
COMSIG_BREACHINGUsed by /obj/item/melee/breaching_hammer
COMSIG_GUN_JAMMEDThe gun has jammed.
COMSIG_MUTANT_CUREDWhen a mutant is cured of the virus
COMSIG_ITEM_POWER_USESent when an obj/item calls item_use_power: (use_amount, user, check_only)
COMSIG_MAIN_SM_DELAMINATINGSent when supermatter begins its delam countdown/when the suppression system is triggered: (var/trigger_reason)
COMSIG_MOB_RUN_ARMORmob/living/proc/updatehealth()
COMSIG_TURF_MOB_FALLfrom base of /turf/handle_fall(): (mob/faller)
COMSIG_TURF_LIQUIDS_CREATIONfrom base of /obj/effect/abstract/liquid_turf/Initialize() (/obj/effect/abstract/liquid_turf/liquids)
COMSIG_TURF_LIQUIDS_CHANGEFrom base of /turf/proc/liquids_change(new_state)
COMSIG_MOB_TRIGGER_WET_SKINlistens to wet_stacks, if wetting a mob above 10 stacks it will signal the akula race trait to apply its buffs and nerfs
COMSIG_LIVING_COMBAT_MODE_TOGGLEFrom mob/living/*/set_combat_mode(): (new_state)
COMSIG_STOMACH_AFTER_EATFrom /obj/item/organ/internal/stomach/after_eat(atom/edible)
COMSIG_PULSATING_TUMOR_ADDEDFor when a Hemophage's pulsating tumor gets added to their body.
COMSIG_PULSATING_TUMOR_REMOVEDFor when a Hemophage's pulsating tumor gets removed from their body.
COMSIG_RUNE_EVOLUTIONwhen someone attempts to evolve through the rune
COMSIG_CHAMBERED_BULLET_FIRETo chambered round on gun's process_fire(): (list/iff_factions)
COMSIG_CLOCKWORK_SIGNAL_RECEIVEDdatum/component/clockwork_trap signals: ()
COMSIG_CLOCKWORK_SLAB_USEDCalled when a clock cultist uses a clockwork slab: (obj/item/clockwork/clockwork_slab/slab)
COMSIG_GLOB_FORCE_ENG_OVERRIDEEngineering Override Access manual toggle
COMSIG_SOULCATCHER_CHECK_SOULWhenever we need to check if a mob is currently inside of soulcatcher.
COMSIG_SOULCATCHER_SCAN_BODYWhenever we need to get the soul of the mob inside of the soulcatcher.
COMSIG_CARRIER_MOB_CHANGE_ROOMWhenever we need to change the current room of a soulcatcher soul.
COMSIG_CARRIER_MOB_TOGGLE_SENSEWhenever we need to toggle the senses of a soulcatcher soul.
COMSIG_CARRIER_MOB_RENAMEWhenever we need to rename a soulcatcher soul.
COMSIG_CARRIER_MOB_RESET_NAMEWhenever we need to reset the name of a soulcatcher soul.
COMSIG_CARRIER_MOB_CHECK_INTERNAL_SENSESWhenever we need to check if our soulcatcher soul is able to internally hear/see?
COMSIG_CARRIER_MOB_REFRESH_APPEARANCEWhenever we need to refresh the internal appearance of a soulcatcher soul.area
COMSIG_CARRIER_MOB_SAYWhenever we need the soulcatcher soul to communicate something.

Define Details

COMSIG_BREACHING

Used by /obj/item/melee/breaching_hammer

COMSIG_CARRIER_MOB_CHANGE_ROOM

Whenever we need to change the current room of a soulcatcher soul.

COMSIG_CARRIER_MOB_CHECK_INTERNAL_SENSES

Whenever we need to check if our soulcatcher soul is able to internally hear/see?

COMSIG_CARRIER_MOB_REFRESH_APPEARANCE

Whenever we need to refresh the internal appearance of a soulcatcher soul.area

COMSIG_CARRIER_MOB_RENAME

Whenever we need to rename a soulcatcher soul.

COMSIG_CARRIER_MOB_RESET_NAME

Whenever we need to reset the name of a soulcatcher soul.

COMSIG_CARRIER_MOB_SAY

Whenever we need the soulcatcher soul to communicate something.

COMSIG_CARRIER_MOB_TOGGLE_SENSE

Whenever we need to toggle the senses of a soulcatcher soul.

COMSIG_CHAMBERED_BULLET_FIRE

To chambered round on gun's process_fire(): (list/iff_factions)

COMSIG_CLOCKWORK_SIGNAL_RECEIVED

datum/component/clockwork_trap signals: ()

COMSIG_CLOCKWORK_SLAB_USED

Called when a clock cultist uses a clockwork slab: (obj/item/clockwork/clockwork_slab/slab)

COMSIG_GLOB_FORCE_ENG_OVERRIDE

Engineering Override Access manual toggle

COMSIG_GUN_AUTOFIRE_DESELECTED

When a gun is switched off of automatic fire mode

COMSIG_GUN_AUTOFIRE_SELECTED

When a gun is switched to automatic fire mode

COMSIG_GUN_JAMMED

The gun has jammed.

COMSIG_HORRORFORM_EXPLODE

Horror form bombastic flag

COMSIG_HOSTILE_MOB_LOST_TARGET

When a hostile simple mob loses it's target.

COMSIG_ITEM_POWER_USE

Sent when an obj/item calls item_use_power: (use_amount, user, check_only)

COMSIG_LIVING_COMBAT_MODE_TOGGLE

From mob/living/*/set_combat_mode(): (new_state)

COMSIG_LIVING_UPDATED_RESTING

Resting position for living mob updated

COMSIG_MAIN_SM_DELAMINATING

Sent when supermatter begins its delam countdown/when the suppression system is triggered: (var/trigger_reason)

COMSIG_MOB_CI_TOGGLED

Fired in combat_indicator.dm, used for syncing CI between mech and pilot

COMSIG_MOB_RUN_ARMOR

mob/living/proc/updatehealth()

COMSIG_MOB_TRIGGER_WET_SKIN

listens to wet_stacks, if wetting a mob above 10 stacks it will signal the akula race trait to apply its buffs and nerfs

COMSIG_MOVABLE_RADIO_TALK_INTO

When someone talks into a radio

COMSIG_MUTANT_CURED

When a mutant is cured of the virus

COMSIG_PULSATING_TUMOR_ADDED

For when a Hemophage's pulsating tumor gets added to their body.

COMSIG_PULSATING_TUMOR_REMOVED

For when a Hemophage's pulsating tumor gets removed from their body.

COMSIG_RUNE_EVOLUTION

when someone attempts to evolve through the rune

COMSIG_SOULCATCHER_CHECK_SOUL

Whenever we need to check if a mob is currently inside of soulcatcher.

COMSIG_SOULCATCHER_SCAN_BODY

Whenever we need to get the soul of the mob inside of the soulcatcher.

COMSIG_STOMACH_AFTER_EAT

From /obj/item/organ/internal/stomach/after_eat(atom/edible)

COMSIG_TURF_LIQUIDS_CHANGE

From base of /turf/proc/liquids_change(new_state)

COMSIG_TURF_LIQUIDS_CREATION

from base of /obj/effect/abstract/liquid_turf/Initialize() (/obj/effect/abstract/liquid_turf/liquids)

COMSIG_TURF_MOB_FALL

from base of /turf/handle_fall(): (mob/faller)

COMSIG_UPDATE_AMMO_HUD

The gun needs to update the gun hud!

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/signals/signals_human.html b/code/__DEFINES/~skyrat_defines/signals/signals_human.html new file mode 100644 index 0000000000000..92b3d87c7c587 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/signals/signals_human.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/signals/signals_human.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/signals/signals_human.dm

COMSIG_HUMAN_UNEQUIPPED_ITEMA mob has just unequipped an item.

Define Details

COMSIG_HUMAN_UNEQUIPPED_ITEM

A mob has just unequipped an item.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/sound.html b/code/__DEFINES/~skyrat_defines/sound.html new file mode 100644 index 0000000000000..24df9a5614cc4 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/sound.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/sound.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/sound.dm

SFX_KEYBOARDSound effect defines, used in get_sfx.

Define Details

SFX_KEYBOARD

Sound effect defines, used in get_sfx.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/species_clothing_paths.html b/code/__DEFINES/~skyrat_defines/species_clothing_paths.html new file mode 100644 index 0000000000000..3acbec018a15e --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/species_clothing_paths.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/species_clothing_paths.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/species_clothing_paths.dm

SNOUTED_MASK_FILEThe dmi containing snouted masks
SNOUTED_HEAD_FILEThe dmi containing snouted hats

Define Details

SNOUTED_HEAD_FILE

The dmi containing snouted hats

SNOUTED_MASK_FILE

The dmi containing snouted masks

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/strippable.html b/code/__DEFINES/~skyrat_defines/strippable.html new file mode 100644 index 0000000000000..4a2872f73953c --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/strippable.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/strippable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/strippable.dm

THIEVING_GLOVES_STRIP_SLOWDOWNA multiplier for the amount of time it takes to strip someone with thieving gloves

Define Details

THIEVING_GLOVES_STRIP_SLOWDOWN

A multiplier for the amount of time it takes to strip someone with thieving gloves

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/synth_defines.html b/code/__DEFINES/~skyrat_defines/synth_defines.html new file mode 100644 index 0000000000000..712e2ced7606f --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/synth_defines.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/synth_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/synth_defines.dm

RND_SUBCATEGORY_MECHFAB_ANDROIDMechfab defines

Define Details

RND_SUBCATEGORY_MECHFAB_ANDROID

Mechfab defines

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/text.html b/code/__DEFINES/~skyrat_defines/text.html new file mode 100644 index 0000000000000..99ecf5e50975f --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/text.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/text.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/text.dm

NEWS_FILEFile location for in-rotation news stories
ARCHIVE_FILEFile location for out-of-rotation news stories

Define Details

ARCHIVE_FILE

File location for out-of-rotation news stories

NEWS_FILE

File location for in-rotation news stories

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/traits.html b/code/__DEFINES/~skyrat_defines/traits.html new file mode 100644 index 0000000000000..94e8adff9ce2d --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/traits.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/traits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/traits.dm

SLIPPERY_MINThe minimum amount of tiles a TRAIT_SLIPPERY haver will slide on slip
SLIPPERY_MAXThe maximum amount of tiles a TRAIT_SLIPPERY haver will slide on slip
TRAIT_PERMIT_HUDPermit hud clothing trait

Define Details

SLIPPERY_MAX

The maximum amount of tiles a TRAIT_SLIPPERY haver will slide on slip

SLIPPERY_MIN

The minimum amount of tiles a TRAIT_SLIPPERY haver will slide on slip

TRAIT_PERMIT_HUD

Permit hud clothing trait

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/traits/declarations.html b/code/__DEFINES/~skyrat_defines/traits/declarations.html new file mode 100644 index 0000000000000..72c2103c720ed --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/traits/declarations.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/traits/declarations.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/traits/declarations.dm

TRAIT_MUTANT_IMMUNEThis makes trait makes it so that the person cannot be infected by the zombie virus.
TRAIT_PET_OWNERTrait to spawn with a pet in a pet carrier (veteran only)
TRAIT_GIFTEDadds -6 quirk to negative quirks for free points.
TRAIT_INSTANT_RELOADAllows the user to instantly reload.
TRAIT_WATER_BREATHINGOne can breath under water, you get me?
TRAIT_SLICK_SKINThe trait which Akulas inherit, for their species mechanic revolving around wet_stacks
TRAIT_SLIPPERYThe trait which is applied when a slick skin trait haver actually gets wet_stacks
TRAIT_ELECTRICAL_DAMAGE_REPAIRINGWhen someone is fixing electrical damage, this trait is set and prevents the wound from worsening.
TRAIT_OVERSIZEDThe trait that determines if someone has the oversized quirk.
TRAIT_TRASHMANCargo Loader trait
TRAIT_XENO_INNATETrait source for xeno innate abilities
TRAIT_XENO_ABILITY_GIVENTrait source for something added BY a xeno ability
TRAIT_XENO_HEAL_AURADetermines if something can receive healing from a xeno
TRAIT_REAGENTTrait that was granted by a reagent.
TRAIT_NARCOTICSTrait source for anything granted by narcotics
TRAIT_STYLISHtrait that lets you do flips with a style meter
TRAIT_XENOARCH_QUALIFIEDtrait that lets you do xenoarch magnification
TRAIT_GLASSBLOWINGTraits granted by glassblowing
TRAIT_CURRENTLY_GLASSBLOWINGTrait that is applied whenever someone or something is glassblowing
TRAIT_NIFSOFTTrait that was granted by a NIFSoft
TRAIT_CARRIERTrait that was granted by a soulcatcher
TRAIT_NIFSOFT_HUD_GRANTERTrait given to a piece of eyewear that allows the user to use NIFSoft HUDs
TRAIT_RSD_COMPATIBLETrait given to a brain that is able to accept souls from a RSD
TRAIT_R_UNIQUEWRECKCyborgs with unique sprites for when they get totally broken down.
TRAIT_R_UNIQUETIPOr when tipped over.
TRAIT_R_WIDE64x32 skins
TRAIT_R_TALL32x64 skins
TRAIT_R_SMALLAny model small enough to reject the shrinker upgrade.
TRAIT_R_UNIQUEPANELAny model that has a custom front panel
TRAIT_APHROtraits gained by brain traumas, can be removed if the brain trauma is gone
TRAIT_LEWDQUIRKtraits gained by quirks, cannot be removed unless the quirk itself is gone
TRAIT_LEWDCHEMtraits gained by chemicals, you get the idea
TRAIT_CLOTHES_DAMAGED_BY_PIERCINGIf clothing can also be damaged by piercing wound checks, instead of JUST slashes and burns

Define Details

TRAIT_APHRO

traits gained by brain traumas, can be removed if the brain trauma is gone

TRAIT_CARRIER

Trait that was granted by a soulcatcher

TRAIT_CLOTHES_DAMAGED_BY_PIERCING

If clothing can also be damaged by piercing wound checks, instead of JUST slashes and burns

TRAIT_CURRENTLY_GLASSBLOWING

Trait that is applied whenever someone or something is glassblowing

TRAIT_ELECTRICAL_DAMAGE_REPAIRING

When someone is fixing electrical damage, this trait is set and prevents the wound from worsening.

TRAIT_GIFTED

adds -6 quirk to negative quirks for free points.

TRAIT_GLASSBLOWING

Traits granted by glassblowing

TRAIT_INSTANT_RELOAD

Allows the user to instantly reload.

TRAIT_LEWDCHEM

traits gained by chemicals, you get the idea

TRAIT_LEWDQUIRK

traits gained by quirks, cannot be removed unless the quirk itself is gone

TRAIT_MUTANT_IMMUNE

This makes trait makes it so that the person cannot be infected by the zombie virus.

TRAIT_NARCOTICS

Trait source for anything granted by narcotics

TRAIT_NIFSOFT

Trait that was granted by a NIFSoft

TRAIT_NIFSOFT_HUD_GRANTER

Trait given to a piece of eyewear that allows the user to use NIFSoft HUDs

TRAIT_OVERSIZED

The trait that determines if someone has the oversized quirk.

TRAIT_PET_OWNER

Trait to spawn with a pet in a pet carrier (veteran only)

TRAIT_REAGENT

Trait that was granted by a reagent.

TRAIT_RSD_COMPATIBLE

Trait given to a brain that is able to accept souls from a RSD

TRAIT_R_SMALL

Any model small enough to reject the shrinker upgrade.

TRAIT_R_TALL

32x64 skins

TRAIT_R_UNIQUEPANEL

Any model that has a custom front panel

TRAIT_R_UNIQUETIP

Or when tipped over.

TRAIT_R_UNIQUEWRECK

Cyborgs with unique sprites for when they get totally broken down.

TRAIT_R_WIDE

64x32 skins

TRAIT_SLICK_SKIN

The trait which Akulas inherit, for their species mechanic revolving around wet_stacks

TRAIT_SLIPPERY

The trait which is applied when a slick skin trait haver actually gets wet_stacks

TRAIT_STYLISH

trait that lets you do flips with a style meter

TRAIT_TRASHMAN

Cargo Loader trait

TRAIT_WATER_BREATHING

One can breath under water, you get me?

TRAIT_XENOARCH_QUALIFIED

trait that lets you do xenoarch magnification

TRAIT_XENO_ABILITY_GIVEN

Trait source for something added BY a xeno ability

TRAIT_XENO_HEAL_AURA

Determines if something can receive healing from a xeno

TRAIT_XENO_INNATE

Trait source for xeno innate abilities

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/turfs.html b/code/__DEFINES/~skyrat_defines/turfs.html new file mode 100644 index 0000000000000..af56230090255 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/turfs.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/turfs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/turfs.dm

CAN_DECAY_BREAK_1A turf flag, much higher than what the other turf flags are at because I don't want to cause conflicts by accident.

Define Details

CAN_DECAY_BREAK_1

A turf flag, much higher than what the other turf flags are at because I don't want to cause conflicts by accident.

\ No newline at end of file diff --git a/code/__DEFINES/~skyrat_defines/wounds.html b/code/__DEFINES/~skyrat_defines/wounds.html new file mode 100644 index 0000000000000..9647cfa37c59c --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/wounds.html @@ -0,0 +1 @@ +code/__DEFINES/~skyrat_defines/wounds.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~skyrat_defines/wounds.dm

SPLINT_OVERLAYIf this wound, when bandaged, will cause a splint overlay to generate rather than a bandage overlay.

Define Details

SPLINT_OVERLAY

If this wound, when bandaged, will cause a splint overlay to generate rather than a bandage overlay.

\ No newline at end of file diff --git a/code/__DEFINES/~~bubber_defines/combat.html b/code/__DEFINES/~~bubber_defines/combat.html new file mode 100644 index 0000000000000..c82161d3958f2 --- /dev/null +++ b/code/__DEFINES/~~bubber_defines/combat.html @@ -0,0 +1 @@ +code/__DEFINES/~~bubber_defines/combat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~~bubber_defines/combat.dm

JOULES_PER_DAMAGEThe amount of energy needed to increase the burn force by 1 damage during electrocution. The below means that 100 damage will be dealt if you touch a max safe loaded powergrid. As ((4 MEGA JOULES) / HUMAN_MAXHEALTH) == ~30 KILO JOULES
ELECTROCUTE_DAMAGECalculates the amount of burn force when applying this much energy to a mob via electrocution from an energy source.

Define Details

ELECTROCUTE_DAMAGE

Calculates the amount of burn force when applying this much energy to a mob via electrocution from an energy source.

JOULES_PER_DAMAGE

The amount of energy needed to increase the burn force by 1 damage during electrocution. The below means that 100 damage will be dealt if you touch a max safe loaded powergrid. As ((4 MEGA JOULES) / HUMAN_MAXHEALTH) == ~30 KILO JOULES

\ No newline at end of file diff --git a/code/__DEFINES/~~bubber_defines/experisci.html b/code/__DEFINES/~~bubber_defines/experisci.html new file mode 100644 index 0000000000000..e1748fbf3d9d2 --- /dev/null +++ b/code/__DEFINES/~~bubber_defines/experisci.html @@ -0,0 +1 @@ +code/__DEFINES/~~bubber_defines/experisci.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~~bubber_defines/experisci.dm

EXPERIMENT_CONFIG_WORKS_FROM_RANGEExperiment handlers with this flag will bypass the proximity flag check when trying to scan something

Define Details

EXPERIMENT_CONFIG_WORKS_FROM_RANGE

Experiment handlers with this flag will bypass the proximity flag check when trying to scan something

\ No newline at end of file diff --git a/code/__DEFINES/~~bubber_defines/jobs.html b/code/__DEFINES/~~bubber_defines/jobs.html new file mode 100644 index 0000000000000..a08165c54bd9b --- /dev/null +++ b/code/__DEFINES/~~bubber_defines/jobs.html @@ -0,0 +1,8 @@ +code/__DEFINES/~~bubber_defines/jobs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~~bubber_defines/jobs.dm

JOB_SECURITY_MEDIC

Define Details

JOB_SECURITY_MEDIC

======================= +WARNING WARNING WARNING +WARNING WARNING WARNING +WARNING WARNING WARNING

+

These names are used as keys in many locations in the database +you cannot change them trivially without breaking job bans and +role time tracking, if you do this and get it wrong you will die +and it will hurt the entire time

\ No newline at end of file diff --git a/code/__DEFINES/~~bubber_defines/signals.html b/code/__DEFINES/~~bubber_defines/signals.html new file mode 100644 index 0000000000000..1320a2d3a9e2a --- /dev/null +++ b/code/__DEFINES/~~bubber_defines/signals.html @@ -0,0 +1 @@ +code/__DEFINES/~~bubber_defines/signals.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~~bubber_defines/signals.dm

COMSIG_NECK_STEP_ACTIONfrom [/mob/living/carbon/human/Move]: ()
COMSIG_ORGAN_BODYPART_REMOVEDfrom /obj/item/organ/proc/on_bodypart_remove(obj/item/bodypart/limb, movement_flags)

Define Details

COMSIG_NECK_STEP_ACTION

from [/mob/living/carbon/human/Move]: ()

COMSIG_ORGAN_BODYPART_REMOVED

from /obj/item/organ/proc/on_bodypart_remove(obj/item/bodypart/limb, movement_flags)

\ No newline at end of file diff --git a/code/__DEFINES/~~bubber_defines/storyteller_defines.html b/code/__DEFINES/~~bubber_defines/storyteller_defines.html new file mode 100644 index 0000000000000..5f9ba71a8a3ff --- /dev/null +++ b/code/__DEFINES/~~bubber_defines/storyteller_defines.html @@ -0,0 +1 @@ +code/__DEFINES/~~bubber_defines/storyteller_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~~bubber_defines/storyteller_defines.dm

TAG_COMBATWhen the event is combat oriented (spawning monsters, inherently hostile antags)
TAG_SPOOKYWhen the event is spooky (broken lights, some antags)
TAG_DESTRUCTIVEWhen the event is destructive in a decent capacity (meteors, blob)
TAG_COMMUNALWhen the event impacts most of the crewmembers in some capacity (comms blackout)
TAG_TARGETEDWhen the event targets a person for something (appendix, heart attack)
TAG_POSITIVEWhen the event is positive and helps the crew, in some capacity (Shuttle Loan, Supply Pod)
TAG_CREW_ANTAGWhen one of the crewmembers becomes an antagonist
TAG_TEAM_ANTAGWhen the antagonist event is focused around team cooperation.
TAG_OUTSIDER_ANTAGWhen one of the non-crewmember players becomes an antagonist
TAG_CHAOTICWhen the event is considered chaotic by a completely non-biased coder.
TAG_OVERMAPWhen the event impacts the overmap
TAG_SPACEWhen the event requires the station to be in space (meteors, carp)
TAG_PLANETARYWhen the event requires the station to be on planetary.
MUNDANE_POINT_THRESHOLDReused for multipliers of the thresholds
MUNDANE_POP_SCALE_THRESHOLDDefines for how much pop do we need to stop applying a pop scalling penalty to event frequency.
MUNDANE_POP_SCALE_PENALTYThe maximum penalty coming from pop scalling, when we're at the most minimum point, easing into 0 as we reach the SCALE_THRESHOLD. This is treated as a percentage.
ANTAG_CAP_FLATDefines for the antag cap to prevent midround injections.
ROUNDSTART_MUNDANE_BASEBelow are defines for the percentage fill that the tracks should start on. +- 50% of the value will be added
STORYTELLER_TYPE_ALWAYS_AVAILABLEStoryteller types below, basically prevents several intense teller rounds in a row

Define Details

ANTAG_CAP_FLAT

Defines for the antag cap to prevent midround injections.

MUNDANE_POINT_THRESHOLD

Reused for multipliers of the thresholds

MUNDANE_POP_SCALE_PENALTY

The maximum penalty coming from pop scalling, when we're at the most minimum point, easing into 0 as we reach the SCALE_THRESHOLD. This is treated as a percentage.

MUNDANE_POP_SCALE_THRESHOLD

Defines for how much pop do we need to stop applying a pop scalling penalty to event frequency.

ROUNDSTART_MUNDANE_BASE

Below are defines for the percentage fill that the tracks should start on. +- 50% of the value will be added

STORYTELLER_TYPE_ALWAYS_AVAILABLE

Storyteller types below, basically prevents several intense teller rounds in a row

TAG_CHAOTIC

When the event is considered chaotic by a completely non-biased coder.

TAG_COMBAT

When the event is combat oriented (spawning monsters, inherently hostile antags)

TAG_COMMUNAL

When the event impacts most of the crewmembers in some capacity (comms blackout)

TAG_CREW_ANTAG

When one of the crewmembers becomes an antagonist

TAG_DESTRUCTIVE

When the event is destructive in a decent capacity (meteors, blob)

TAG_OUTSIDER_ANTAG

When one of the non-crewmember players becomes an antagonist

TAG_OVERMAP

When the event impacts the overmap

TAG_PLANETARY

When the event requires the station to be on planetary.

TAG_POSITIVE

When the event is positive and helps the crew, in some capacity (Shuttle Loan, Supply Pod)

TAG_SPACE

When the event requires the station to be in space (meteors, carp)

TAG_SPOOKY

When the event is spooky (broken lights, some antags)

TAG_TARGETED

When the event targets a person for something (appendix, heart attack)

TAG_TEAM_ANTAG

When the antagonist event is focused around team cooperation.

\ No newline at end of file diff --git a/code/__DEFINES/~~bubber_defines/traits/declarations.html b/code/__DEFINES/~~bubber_defines/traits/declarations.html new file mode 100644 index 0000000000000..914cffaf36e93 --- /dev/null +++ b/code/__DEFINES/~~bubber_defines/traits/declarations.html @@ -0,0 +1,3 @@ +code/__DEFINES/~~bubber_defines/traits/declarations.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~~bubber_defines/traits/declarations.dm

TRAIT_R_SQUADRUPEDCyborgs with unique sprites +32x32 quadruped skins with resting, sitting, and belly up sprites

Define Details

TRAIT_R_SQUADRUPED

Cyborgs with unique sprites +32x32 quadruped skins with resting, sitting, and belly up sprites

\ No newline at end of file diff --git a/code/__DEFINES/~~~splurt_defines/DNA.html b/code/__DEFINES/~~~splurt_defines/DNA.html new file mode 100644 index 0000000000000..a25a3ed3b9b3a --- /dev/null +++ b/code/__DEFINES/~~~splurt_defines/DNA.html @@ -0,0 +1 @@ +code/__DEFINES/~~~splurt_defines/DNA.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~~~splurt_defines/DNA.dm

ORGAN_SLOT_EXTERNAL_MANDIBLESarachnid organ slots

Define Details

ORGAN_SLOT_EXTERNAL_MANDIBLES

arachnid organ slots

\ No newline at end of file diff --git a/code/__DEFINES/~~~splurt_defines/inventory.html b/code/__DEFINES/~~~splurt_defines/inventory.html new file mode 100644 index 0000000000000..0c2bee7fa5b24 --- /dev/null +++ b/code/__DEFINES/~~~splurt_defines/inventory.html @@ -0,0 +1 @@ +code/__DEFINES/~~~splurt_defines/inventory.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~~~splurt_defines/inventory.dm

ITEM_SLOT_EARS_RIGHTRight ear slot
ITEM_SLOT_EXTRASlot to indicate it's an extra slot
ITEM_SLOT_UNDERWEARUnderwear slot
ITEM_SLOT_SOCKSSocks slot
ITEM_SLOT_SHIRTShirt slot
ITEM_SLOT_BRABra slot
ITEM_SLOT_WRISTSWrist slot

Define Details

ITEM_SLOT_BRA

Bra slot

ITEM_SLOT_EARS_RIGHT

Right ear slot

ITEM_SLOT_EXTRA

Slot to indicate it's an extra slot

ITEM_SLOT_SHIRT

Shirt slot

ITEM_SLOT_SOCKS

Socks slot

ITEM_SLOT_UNDERWEAR

Underwear slot

ITEM_SLOT_WRISTS

Wrist slot

\ No newline at end of file diff --git a/code/__DEFINES/~~~splurt_defines/species_clothing_paths.html b/code/__DEFINES/~~~splurt_defines/species_clothing_paths.html new file mode 100644 index 0000000000000..de1bf363ff2cb --- /dev/null +++ b/code/__DEFINES/~~~splurt_defines/species_clothing_paths.html @@ -0,0 +1 @@ +code/__DEFINES/~~~splurt_defines/species_clothing_paths.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~~~splurt_defines/species_clothing_paths.dm

DEFAULT_UNDERWEAR_FILEThe dmi for humanoid underwears
DEFAULT_SHIRT_FILEThe dmi for humanoid shirts
DEFAULT_SOCKS_FILEThe dmi for humanoid socks
DIGITIGRADE_UNDERWEAR_FILEThe dmi containing digitigrade underwears
DIGITIGRADE_SHIRT_FILEThe dmi containing digitigrade shirts
DIGITIGRADE_SOCKS_FILEThe dmi containing digitigrade socks

Define Details

DEFAULT_SHIRT_FILE

The dmi for humanoid shirts

DEFAULT_SOCKS_FILE

The dmi for humanoid socks

DEFAULT_UNDERWEAR_FILE

The dmi for humanoid underwears

DIGITIGRADE_SHIRT_FILE

The dmi containing digitigrade shirts

DIGITIGRADE_SOCKS_FILE

The dmi containing digitigrade socks

DIGITIGRADE_UNDERWEAR_FILE

The dmi containing digitigrade underwears

\ No newline at end of file diff --git a/code/__DEFINES/~~~splurt_defines/underwear.html b/code/__DEFINES/~~~splurt_defines/underwear.html new file mode 100644 index 0000000000000..0d82e8b9a6922 --- /dev/null +++ b/code/__DEFINES/~~~splurt_defines/underwear.html @@ -0,0 +1 @@ +code/__DEFINES/~~~splurt_defines/underwear.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/~~~splurt_defines/underwear.dm

BRIEFS_FROM_SPRITE_ACCESSORYCreate briefs from underwear sprite accessories
SHIRT_FROM_SPRITE_ACCESSORYCreate shirt from undershirt sprite accessories
BRA_FROM_SPRITE_ACCESSORYCreate bra from bra sprite accessories
SOCKS_FROM_SPRITE_ACCESSORYCreate socks from socks sprite accessories
BRIEFS_OBJECTCreate briefs directly as an object, and its sprite accessory
SHIRT_OBJECTCreate shirt directly as an object, and its sprite accessory
BRA_OBJECTCreate bra directly as an object, and its sprite accessory
SOCKS_OBJECTCreate socks directly as an object, and its sprite accessory

Define Details

BRA_FROM_SPRITE_ACCESSORY

Create bra from bra sprite accessories

BRA_OBJECT

Create bra directly as an object, and its sprite accessory

BRIEFS_FROM_SPRITE_ACCESSORY

Create briefs from underwear sprite accessories

BRIEFS_OBJECT

Create briefs directly as an object, and its sprite accessory

SHIRT_FROM_SPRITE_ACCESSORY

Create shirt from undershirt sprite accessories

SHIRT_OBJECT

Create shirt directly as an object, and its sprite accessory

SOCKS_FROM_SPRITE_ACCESSORY

Create socks from socks sprite accessories

SOCKS_OBJECT

Create socks directly as an object, and its sprite accessory

\ No newline at end of file diff --git a/code/__HELPERS/_dreamluau.html b/code/__HELPERS/_dreamluau.html new file mode 100644 index 0000000000000..676624b0684d5 --- /dev/null +++ b/code/__HELPERS/_dreamluau.html @@ -0,0 +1,128 @@ +code/__HELPERS/_dreamluau.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/_dreamluau.dm

DREAMLUAU_SET_USRAll of the following functions will return a string if the underlying rust code returns an error or a wrapped panic. +The return values specified for each function are what they will return if successful.
DREAMLUAU_SET_EXECUTION_LIMIT_MILLISSets the execution limit, in milliseconds.
DREAMLUAU_SET_EXECUTION_LIMIT_SECSSets the execution limit, in seconds.
DREAMLUAU_CLEAR_EXECUTION_LIMITClears the execution limit, allowing scripts to run as long as they need to.
DREAMLUAU_SET_NEW_WRAPPERSet the wrapper for instancing new datums with dm.new. +Clears it if the argument is null. +If unset, the object will be instantiated using the default new instruction.
DREAMLUAU_SET_VAR_GET_WRAPPERSet the wrapper for reading the vars of an object. +Clears it if the argument is null. +If unset, the var will be read directly, without any safety checks.
DREAMLUAU_SET_VAR_SET_WRAPPERSet the wrapper for writing the vars of an object. +Clears it if the argument is null. +If unset, the var will be modified directly, without any safety checks.
DREAMLUAU_SET_OBJECT_CALL_WRAPPERSet the wrapper for calling a proc on an object. +Clears it if the argument is null. +If unset, the proc will be called directly, without any safety checks.
DREAMLUAU_SET_GLOBAL_CALL_WRAPPERSet the wrapper for calling a global proc. +Clears it if the argument is null. +If unset, the proc will be called directly, without any safety checks.
DREAMLUAU_SET_PRINT_WRAPPERSet the wrapper for printing with the print function. +Clears it if the argument is null. +If unset, print will raise an error.
DREAMLUAU_NEW_STATECreate a new luau state.
DREAMLUAU_LOADSome of the following functions return values that cannot be cleanly converted from luau to DM. +To account for this, these functions also return a list of variant specifiers, equivalent to +an array of objects of the type described beloe:
DREAMLUAU_AWAKENAwaken the thread at the front of the specified state's sleeping thread queue.
DREAMLUAU_RESUMEResume one of the state's yielded threads.
DREAMLUAU_CALL_FUNCTIONCall a function accessible from the global table.
DREAMLUAU_GET_GLOBALSObtain a copy of the state's global table, converted to DM.
DREAMLUAU_LIST_THREADSList the names of all sleeping or yielded threads for the state.
DREAMLUAU_COLLECT_GARBAGERun garbage collection on the state.
DREAMLUAU_KILL_SLEEPING_THREADRemove a sleeping thread from the sleep queue, without executing it.
DREAMLUAU_KILL_YIELDED_THREADRemove a yielded thread from the yield table, without executing it.
DREAMLUAU_KILL_STATEDelete a state. The state's handle will be freed for any new states created afterwards.
DREAMLUAU_GET_TRACEBACKRetrieve lua traceback info, containing every lua stack frame between the lua entrypoint and the re-entry to dm code.
DREAMLUAU_CLEAR_REF_USERDATALuau userdata corresponding to a ref-counted DM type counts as a hard reference for BYOND's garbage collector. +If you need to delete a DM object, and you cannot be certain that there are no references to it in any luau state, +call this function before deleting that object to disassociate it from any userdata in any luau state.

Define Details

DREAMLUAU_AWAKEN

Awaken the thread at the front of the specified state's sleeping thread queue.

+

@param state the handle to the state

+

@return an associative list containing result information as specified above

DREAMLUAU_CALL_FUNCTION

Call a function accessible from the global table.

+

@param state the handle to the state +@param function a list of nested indices from the global table to the specified function +@param ...arguments arguments to pass to the function

+

@return an associative list containing result information as specified above

DREAMLUAU_CLEAR_EXECUTION_LIMIT

Clears the execution limit, allowing scripts to run as long as they need to.

+

WARNING: This allows infinite loops to block Dream Daemon indefinitely, with no safety checks. +Do not use this if you have no reason for scripts to run arbitrarily long.

+

@return null on success

DREAMLUAU_CLEAR_REF_USERDATA

Luau userdata corresponding to a ref-counted DM type counts as a hard reference for BYOND's garbage collector. +If you need to delete a DM object, and you cannot be certain that there are no references to it in any luau state, +call this function before deleting that object to disassociate it from any userdata in any luau state.

+

Hard deleting an object without clearing userdata corresponding to it leaves the userdata to become associated with +the next DM object to receive the old object's reference ID, which may be undesirable behavior.

+

@param object the object to disassociate from userdata.

+

@return null on success

DREAMLUAU_COLLECT_GARBAGE

Run garbage collection on the state.

+

This may be necessary to prevent hanging references, as some +hard references may persist in unreachable luau objects that +would be collected after a garbage collection cycle or two.

+

@param state the handle to the state

+

@return null on success

DREAMLUAU_GET_GLOBALS

Obtain a copy of the state's global table, converted to DM.

+

@param state the handle to the state

+

@return an associative list with the follwing entries:

+

DREAMLUAU_GET_TRACEBACK

Retrieve lua traceback info, containing every lua stack frame between the lua entrypoint and the re-entry to dm code.

+

@param level the level of lua execution to get the traceback for, +with 1 being the lua code that executed the dm code that called this function, +2 being the lua code that executed the dm code that executed the lua code +that executed the dm code that called this function, etc.

+

@return the callstack of the specified lua level if valid, null if invalid

DREAMLUAU_KILL_SLEEPING_THREAD

Remove a sleeping thread from the sleep queue, without executing it.

+

@param state the handle to the state +@param thread the index in the sleep queue to the target thread

+

@return null on success

DREAMLUAU_KILL_STATE

Delete a state. The state's handle will be freed for any new states created afterwards.

+

@param state the handle to the state

+

@return null on success

DREAMLUAU_KILL_YIELDED_THREAD

Remove a yielded thread from the yield table, without executing it.

+

@param state the handle to the state +@param thread the index in the yield table to the target thread

+

@return null on success

DREAMLUAU_LIST_THREADS

List the names of all sleeping or yielded threads for the state.

+

@param state the handle to the state

+

@return an associative list with the following entries:

+

DREAMLUAU_LOAD

Some of the following functions return values that cannot be cleanly converted from luau to DM. +To account for this, these functions also return a list of variant specifiers, equivalent to +an array of objects of the type described beloe:

+
type Variants = {
+    key?: "error"|Array<Variants?>
+    value?: "error"|Array<Variants?>
+}
+
+

The following 4 functions execute luau code and return +an associative list containing information about the result. +This list has the following params.

+ +

Load and execute a luau script.

+

@param state the handle to the state +@param code the source code of the script to run +@param name an optional name to give to the script, for debugging purposes

+

@return an associative list containing result information as specified above

DREAMLUAU_NEW_STATE

Create a new luau state.

+

@return a handle to the created state.

DREAMLUAU_RESUME

Resume one of the state's yielded threads.

+

@param state the handle to the state +@param index the index of the thread in the state's yielded threads list +@param ...arguments arguments that will be returned by the coroutine.yield that yielded the thread

+

@return an associative list containing result information as specified above

DREAMLUAU_SET_EXECUTION_LIMIT_MILLIS

Sets the execution limit, in milliseconds.

+

@param limit the new execution limit

+

@return null on success

DREAMLUAU_SET_EXECUTION_LIMIT_SECS

Sets the execution limit, in seconds.

+

@param limit the new execution limit

+

@return null on success

DREAMLUAU_SET_GLOBAL_CALL_WRAPPER

Set the wrapper for calling a global proc. +Clears it if the argument is null. +If unset, the proc will be called directly, without any safety checks.

+

The wrapper must be a proc with the signature (procname as text, list/arguments).

+

@param wrapper the path to the proc to use as the new wrapper

+

@return null on success

DREAMLUAU_SET_NEW_WRAPPER

Set the wrapper for instancing new datums with dm.new. +Clears it if the argument is null. +If unset, the object will be instantiated using the default new instruction.

+

The wrapper must be a proc with the signature (type as path, list/arguments).

+

@param wrapper the path to the proc to use as the new wrapper

+

@return null on success

DREAMLUAU_SET_OBJECT_CALL_WRAPPER

Set the wrapper for calling a proc on an object. +Clears it if the argument is null. +If unset, the proc will be called directly, without any safety checks.

+

The wrapper must be a proc with the signature (target, procname as text, list/arguments).

+

@param wrapper the path to the proc to use as the new wrapper

+

@return null on success

DREAMLUAU_SET_PRINT_WRAPPER

Set the wrapper for printing with the print function. +Clears it if the argument is null. +If unset, print will raise an error.

+

The wrapper must be a proc with the signature (list/arguments).

+

@param wrapper the path to the proc to use as the new wrapper

+

@return null on success

DREAMLUAU_SET_USR

All of the following functions will return a string if the underlying rust code returns an error or a wrapped panic. +The return values specified for each function are what they will return if successful.

+

As of 515.1631, byondapi does not provide direct access to usr. +Use this function to pass usr into the dreamluau binary so that luau scripts can retrieve it.

+

@return null on success

DREAMLUAU_SET_VAR_GET_WRAPPER

Set the wrapper for reading the vars of an object. +Clears it if the argument is null. +If unset, the var will be read directly, without any safety checks.

+

The wrapper must be a proc with the signature (target, var).

+

@param wrapper the path to the proc to use as the new wrapper

+

@return null on success

DREAMLUAU_SET_VAR_SET_WRAPPER

Set the wrapper for writing the vars of an object. +Clears it if the argument is null. +If unset, the var will be modified directly, without any safety checks.

+

The wrapper must be a proc with the signature (target, var, value).

+

@param wrapper the path to the proc to use as the new wrapper

+

@return null on success

\ No newline at end of file diff --git a/code/__HELPERS/_lists.html b/code/__HELPERS/_lists.html new file mode 100644 index 0000000000000..f0b40449df82f --- /dev/null +++ b/code/__HELPERS/_lists.html @@ -0,0 +1,71 @@ +code/__HELPERS/_lists.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/_lists.dm

LIST_VALUE_WRAP_LISTSIf value is a list, wrap it in a list so it can be used with list add/remove operations
UNTYPED_LIST_ADDAdd an untyped item to a list, taking care to handle list items by wrapping them in a list to remove the footgun
UNTYPED_LIST_REMOVERemove an untyped item to a list, taking care to handle list items by wrapping them in a list to remove the footgun
LAZYINITLISTInitialize the lazylist
UNSETEMPTYIf the provided list is empty, set it to null
ASSOC_UNSETEMPTYIf the provided key -> list is empty, remove it from the list
LAZYLISTDUPLICATELike LAZYCOPY - copies an input list if the list has entries, If it doesn't the assigned list is nulled
LAZYREMOVERemove an item from the list, set the list to null if empty
LAZYADDAdd an item to the list, if the list is null it will initialize it
LAZYORAdd an item to the list if not already present, if the list is null it will initialize it
LAZYFINDReturns the key of the submitted item in the list
LAZYACCESSreturns L[I] if L exists and I is a valid index of L, runtimes if L is not a list
LAZYSETSets the item K to the value V, if the list is null it will initialize it
LAZYSETLENSets the length of a lazylist
LAZYLENReturns the length of the list
LAZYNULLSets a list to null
LAZYADDASSOCAdds to the item K the value V, if the list is null it will initialize it
LAZYADDASSOCLISTThis is used to add onto lazy assoc list when the value you're adding is a /list/. This one has extra safety over lazyaddassoc because the value could be null (and thus cant be used to += objects)
LAZYREMOVEASSOCRemoves the value V from the item K, if the item K is empty will remove it from the list, if the list is empty will set the list to null
LAZYACCESSASSOCAccesses an associative list, returns null if nothing is found
QDEL_LAZYLISTQdel every item in the list before setting the list to null
LAZYCOPYUse LAZYLISTDUPLICATE instead if you want it to null with no entries
LAZYCLEARLISTConsider LAZYNULL instead
SANITIZE_LISTReturns the list if it's actually a valid list, otherwise will initialize it
LAZYORASSOCLISTPerforms an insertion on the given lazy list with the given key and value. If the value already exists, a new one will not be made.
LISTASSERTLENEnsures the length of a list is at least I, prefilling it with V if needed. if V is a proc call, it is repeated for each new index so that list() can just make a new list for each item.
COMPARE_KEYPassed into BINARY_INSERT to compare keys
COMPARE_VALUEPassed into BINARY_INSERT to compare values
BINARY_INSERTBinary search sorted insert +INPUT: Object to be inserted +LIST: List to insert object into +TYPECONT: The typepath of the contents of the list +COMPARE: The object to compare against, usualy the same as INPUT +COMPARISON: The variable on the objects to compare +COMPTYPE: How should the values be compared? Either COMPARE_KEY or COMPARE_VALUE.
BINARY_INSERT_PROC_COMPARECustom binary search sorted insert utilising comparison procs instead of vars. +INPUT: Object to be inserted +LIST: List to insert object into +TYPECONT: The typepath of the contents of the list +COMPARE: The object to compare against, usualy the same as INPUT +COMPARISON: The plaintext name of a proc on INPUT that takes a single argument to accept a single element from LIST and returns a positive, negative or zero number to perform a comparison. +COMPTYPE: How should the values be compared? Either COMPARE_KEY or COMPARE_VALUE.
BINARY_INSERT_DEFINEEven more custom binary search sorted insert, using defines instead of vars +INPUT: Item to be inserted +LIST: List to insert INPUT into +TYPECONT: A define setting the var to the typepath of the contents of the list +COMPARE: The item to compare against, usualy the same as INPUT +COMPARISON: A define that takes an item to compare as input, and returns their comparable value +COMPTYPE: How should the list be compared? Either COMPARE_KEY or COMPARE_VALUE.
/proc/english_listReturns a list in plain english as a string
/proc/is_type_in_listChecks for specific types in a list.
/proc/is_path_in_listChecks for specific paths in a list.
is_type_in_typecacheChecks for specific types in specifically structured (Assoc "type" = TRUE|FALSE) lists ('typecaches')
/proc/typecache_filter_listreturns a new list with only atoms that are in the typecache list
/proc/typecache_filter_list_reversereturn a new list with atoms that are not in the typecache list
/proc/typecache_filter_multi_list_exclusionsimilar to typecache_filter_list and typecache_filter_list_reverse but it supports an inclusion list and and exclusion list
/proc/typecacheofLike typesof() or subtypesof(), but returns a typecache instead of a list.
/proc/zebra_typecacheofLike typesof() or subtypesof(), but returns a typecache instead of a list. +This time it also uses the associated values given by the input list for the values of the subtypes.
/proc/list_clear_nullsRemoves any null entries from the list +Returns TRUE if the list had nulls, FALSE otherwise
/proc/list_clear_empty_weakrefsRemoves any empty weakrefs from the list +Returns TRUE if the list had empty refs, FALSE otherwise
/proc/pick_weightPicks a random element from a list based on a weighting system. +For example, given the following list: +A = 6, B = 3, C = 1, D = 0 +A would have a 60% chance of being picked, +B would have a 30% chance of being picked, +C would have a 10% chance of being picked, +and D would have a 0% chance of being picked. +You should only pass integers in.
/proc/pick_weight_recursiveLike pick_weight, but allowing for nested lists.
/proc/fill_with_onesGiven a list, return a copy where values without defined weights are given weight 1. +For example, fill_with_ones(list(A, B=2, C)) = list(A=1, B=2, C=1) +Useful for weighted random choices (loot tables, syllables in languages, etc.)
/proc/expand_weightsTakes a weighted list (see above) and expands it into raw entries +This eats more memory, but saves time when actually picking from it
/proc/greatest_common_factorTakes a list of numbers as input, returns the highest value that is cleanly divides them all +Note: this implementation is expensive as heck for large numbers, I only use it because most of my usecase +Is < 10 ints
/proc/pick_n_takePick a random element from the list and remove it from the list.
/proc/popReturns the top(last) element from the list and removes it from the list (typical stack function)
/proc/peekReturns the top (last) element from the list, does not remove it from the list. Stack functionality.
/proc/next_list_itemReturns the next item in a list
/proc/previous_list_itemReturns the previous item in a list
/proc/shuffleRandomize: Return the list in a random order
/proc/shuffle_inplacesame as shuffle, but returns nothing and acts on list in place
/proc/unique_listReturn a list with no duplicate entries
/proc/unique_list_in_placesame as unique_list, but returns nothing and acts on list in place (also handles associated values properly)
/proc/sort_keyfor sorting clients or mobs by ckey
/proc/sort_recordSpecifically for record datums in a list.
/proc/sort_listsort any value in a list
/proc/sort_namesuses sort_list() but uses the var's name specifically. This should probably be using mergeAtom() instead
/proc/bitfield_to_listConverts a bitfield to a list of numbers (or words if a wordlist is provided)
KEYBYINDEXReturns the key based on the index
/proc/count_by_typereturn the amount of items of the same type inside a list
/proc/find_recordReturns the first record in the list that matches the name
/proc/move_elementMove a single element from position from_index within a list, to position to_index +All elements in the range [1,to_index) before the move will be before the pivot afterwards +All elements in the range [to_index, L.len+1) before the move will be after the pivot afterwards +In other words, it's as if the range [from_index,to_index) have been rotated using a <<< operation common to other languages. +from_index and to_index must be in the range [1,L.len+1] +This will preserve associations ~Carnie
/proc/move_rangeMove elements [from_index,from_index+len) to [to_index-len, to_index) +Same as moveElement but for ranges of elements +This will preserve associations ~Carnie
/proc/swap_rangeMove elements from [from_index, from_index+len) to [to_index, to_index+len) +Move any elements being overwritten by the move to the now-empty elements, preserving order +Note: if the two ranges overlap, only the destination order will be preserved fully, since some elements will be within both ranges ~Carnie
/proc/reverse_rangereplaces reverseList ~Carnie
/proc/get_element_by_varreturn first thing in L which has var/varname == value +this is typecaste as list/L, but you could actually feed it an atom instead. +completely safe to use
/proc/deep_copy_listCopies a list, and all lists inside it recusively +Does not copy any other reference type
/proc/avoid_assoc_duplicate_keystakes an input_key, as text, and the list of keys already used, outputting a replacement key in the format of "[input_key] ([number_of_duplicates])" if it finds a duplicate +use this for lists of things that might have the same name, like mobs or objects, that you plan on giving to a player as input
/proc/flatten_listFlattens a keyed list into a list of its contents
/proc/make_associativeMake a normal list an associative one
DEFAULTPICKPicks from the list, with some safeties, and returns the "default" arg if it fails
/proc/assoc_to_keysTurns an associative list into a flat list of keys
/proc/assoc_to_keys_featuresTurns an associative list into a flat list of keys, but for sprite accessories, respecting the locked variable
/proc/assoc_value_sumGets the total amount of everything in the associative list.
/proc/compare_listcompare two lists, returns TRUE if they are the same
/proc/special_list_filterReturns a list with items filtered from a list that can call callback
/proc/recursive_list_resolveReturns a list with all weakrefs resolved
/proc/recursive_list_resolve_elementHelper for recursive_list_resolve()
/proc/prepare_lua_editor_listIntermediate step for preparing lists to be passed into the lua editor tgui. +Resolves weakrefs, converts some values without a standard textual representation to text, +and can handle self-referential lists and potential duplicate output keys.
/proc/kvpify_listConverts a list into a list of assoc lists of the form ("key" = key, "value" = value) +so that list keys that are themselves lists can be fully json-encoded +and that unique objects with the same string representation do not +produce duplicate keys that are clobbered by the standard JavaScript JSON.parse function
/proc/deep_compare_listCompares 2 lists, returns TRUE if they are the same
/proc/weakrefify_listReturns a copy of the list where any element that is a datum is converted into a weakref
/proc/assert_sortedRuntimes if the passed in list is not sorted
/proc/coords2turfConverts a list of coordinates, or an assosciative list if passed, into a turf by calling locate(x, y, z) based on the values in the list
/proc/add_lua_editor_variantsGiven a list and a list of its variant hints, appends variants that aren't explicitly required by dreamluau, +but are required by the lua editor tgui.
/proc/remove_non_dm_variantsGiven a list and a list of its variant hints, removes any list key/values that are represent lua values that could not be directly converted to DM.

Define Details

ASSOC_UNSETEMPTY

If the provided key -> list is empty, remove it from the list

BINARY_INSERT

Binary search sorted insert +INPUT: Object to be inserted +LIST: List to insert object into +TYPECONT: The typepath of the contents of the list +COMPARE: The object to compare against, usualy the same as INPUT +COMPARISON: The variable on the objects to compare +COMPTYPE: How should the values be compared? Either COMPARE_KEY or COMPARE_VALUE.

BINARY_INSERT_DEFINE

Even more custom binary search sorted insert, using defines instead of vars +INPUT: Item to be inserted +LIST: List to insert INPUT into +TYPECONT: A define setting the var to the typepath of the contents of the list +COMPARE: The item to compare against, usualy the same as INPUT +COMPARISON: A define that takes an item to compare as input, and returns their comparable value +COMPTYPE: How should the list be compared? Either COMPARE_KEY or COMPARE_VALUE.

BINARY_INSERT_PROC_COMPARE

Custom binary search sorted insert utilising comparison procs instead of vars. +INPUT: Object to be inserted +LIST: List to insert object into +TYPECONT: The typepath of the contents of the list +COMPARE: The object to compare against, usualy the same as INPUT +COMPARISON: The plaintext name of a proc on INPUT that takes a single argument to accept a single element from LIST and returns a positive, negative or zero number to perform a comparison. +COMPTYPE: How should the values be compared? Either COMPARE_KEY or COMPARE_VALUE.

COMPARE_KEY

Passed into BINARY_INSERT to compare keys

COMPARE_VALUE

Passed into BINARY_INSERT to compare values

DEFAULTPICK

Picks from the list, with some safeties, and returns the "default" arg if it fails

KEYBYINDEX

Returns the key based on the index

LAZYACCESS

returns L[I] if L exists and I is a valid index of L, runtimes if L is not a list

LAZYACCESSASSOC

Accesses an associative list, returns null if nothing is found

LAZYADD

Add an item to the list, if the list is null it will initialize it

LAZYADDASSOC

Adds to the item K the value V, if the list is null it will initialize it

LAZYADDASSOCLIST

This is used to add onto lazy assoc list when the value you're adding is a /list/. This one has extra safety over lazyaddassoc because the value could be null (and thus cant be used to += objects)

LAZYCLEARLIST

Consider LAZYNULL instead

LAZYCOPY

Use LAZYLISTDUPLICATE instead if you want it to null with no entries

LAZYFIND

Returns the key of the submitted item in the list

LAZYINITLIST

Initialize the lazylist

LAZYLEN

Returns the length of the list

LAZYLISTDUPLICATE

Like LAZYCOPY - copies an input list if the list has entries, If it doesn't the assigned list is nulled

LAZYNULL

Sets a list to null

LAZYOR

Add an item to the list if not already present, if the list is null it will initialize it

LAZYORASSOCLIST

Performs an insertion on the given lazy list with the given key and value. If the value already exists, a new one will not be made.

LAZYREMOVE

Remove an item from the list, set the list to null if empty

LAZYREMOVEASSOC

Removes the value V from the item K, if the item K is empty will remove it from the list, if the list is empty will set the list to null

LAZYSET

Sets the item K to the value V, if the list is null it will initialize it

LAZYSETLEN

Sets the length of a lazylist

LISTASSERTLEN

Ensures the length of a list is at least I, prefilling it with V if needed. if V is a proc call, it is repeated for each new index so that list() can just make a new list for each item.

LIST_VALUE_WRAP_LISTS

If value is a list, wrap it in a list so it can be used with list add/remove operations

QDEL_LAZYLIST

Qdel every item in the list before setting the list to null

SANITIZE_LIST

Returns the list if it's actually a valid list, otherwise will initialize it

UNSETEMPTY

If the provided list is empty, set it to null

UNTYPED_LIST_ADD

Add an untyped item to a list, taking care to handle list items by wrapping them in a list to remove the footgun

UNTYPED_LIST_REMOVE

Remove an untyped item to a list, taking care to handle list items by wrapping them in a list to remove the footgun

is_type_in_typecache

Checks for specific types in specifically structured (Assoc "type" = TRUE|FALSE) lists ('typecaches')

\ No newline at end of file diff --git a/code/__HELPERS/_planes.html b/code/__HELPERS/_planes.html new file mode 100644 index 0000000000000..18c5c3da76931 --- /dev/null +++ b/code/__HELPERS/_planes.html @@ -0,0 +1,25 @@ +code/__HELPERS/_planes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/_planes.dm

SET_PLANETakes an atom to change the plane of, a new plane value, and something that can be used as a reference to a z level as input +Modifies the new value to match the plane we actually want. Note, if you pass in an already offset plane the offsets will add up +Use PLANE_TO_TRUE() to avoid this
MUTATE_PLANETakes a plane and a z reference, and offsets the plane by the mutation +The SSmapping.max_plane_offset bit here is technically redundant, but saves a bit of work in the base case +And the base case is important to me. Non multiz shouldn't get hit too bad by this code
GET_TURF_PLANE_OFFSETTakes a z reference that we are unsure of, sanity checks it +Returns either its offset, or 0 if it's not a valid ref +Will return the reference's PLANE'S offset if we can't get anything out of the z level. We do our best
GET_Z_PLANE_OFFSETEssentially just an unsafe version of GET_TURF_PLANE_OFFSET() +Takes a z value we returns its offset with a list lookup +Will runtime during parts of init. Be careful :)
GET_NEW_PLANETakes a plane to offset, and the multiplier to use, and well, does the offsetting +Respects a blacklist we use to remove redundant plane masters, such as hud objects
SET_PLANE_W_SCALARTakes an object, new plane, and multiplier, and offsets the plane +This is for cases where you have a multiplier precalculated, and just want to use it +Often an optimization, sometimes a necessity
SET_PLANE_IMPLICITImplicit plane set. We take the turf from the object we're changing the plane of, and use ITS z as a spokesperson for our plane value
GET_LOWEST_STACK_OFFSETTakes a z level, gets the lowest plane offset in its "stack"
PLANE_TO_TRUETakes a plane, returns the canonical, unoffset plane it represents
PLANE_TO_OFFSETTakes a plane, returns the offset it uses
PLANE_IS_CRITICALTakes a plane, returns TRUE if it is of critical priority, FALSE otherwise
TRUE_PLANE_TO_OFFSETSTakes a true plane, returns the offset planes that would canonically represent it
OFFSET_RENDER_TARGETTakes a render target and an offset, returns a canonical render target string for it
_OFFSET_RENDER_TARGETHelper macro for the above +Honestly just exists to make the pattern of render target strings more readable
/proc/check_topdown_validityChecks if a passed in MA or atom is allowed to have its current plane/layer matchup

Define Details

GET_LOWEST_STACK_OFFSET

Takes a z level, gets the lowest plane offset in its "stack"

GET_NEW_PLANE

Takes a plane to offset, and the multiplier to use, and well, does the offsetting +Respects a blacklist we use to remove redundant plane masters, such as hud objects

GET_TURF_PLANE_OFFSET

Takes a z reference that we are unsure of, sanity checks it +Returns either its offset, or 0 if it's not a valid ref +Will return the reference's PLANE'S offset if we can't get anything out of the z level. We do our best

GET_Z_PLANE_OFFSET

Essentially just an unsafe version of GET_TURF_PLANE_OFFSET() +Takes a z value we returns its offset with a list lookup +Will runtime during parts of init. Be careful :)

MUTATE_PLANE

Takes a plane and a z reference, and offsets the plane by the mutation +The SSmapping.max_plane_offset bit here is technically redundant, but saves a bit of work in the base case +And the base case is important to me. Non multiz shouldn't get hit too bad by this code

OFFSET_RENDER_TARGET

Takes a render target and an offset, returns a canonical render target string for it

PLANE_IS_CRITICAL

Takes a plane, returns TRUE if it is of critical priority, FALSE otherwise

PLANE_TO_OFFSET

Takes a plane, returns the offset it uses

PLANE_TO_TRUE

Takes a plane, returns the canonical, unoffset plane it represents

SET_PLANE

Takes an atom to change the plane of, a new plane value, and something that can be used as a reference to a z level as input +Modifies the new value to match the plane we actually want. Note, if you pass in an already offset plane the offsets will add up +Use PLANE_TO_TRUE() to avoid this

SET_PLANE_IMPLICIT

Implicit plane set. We take the turf from the object we're changing the plane of, and use ITS z as a spokesperson for our plane value

SET_PLANE_W_SCALAR

Takes an object, new plane, and multiplier, and offsets the plane +This is for cases where you have a multiplier precalculated, and just want to use it +Often an optimization, sometimes a necessity

TRUE_PLANE_TO_OFFSETS

Takes a true plane, returns the offset planes that would canonically represent it

_OFFSET_RENDER_TARGET

Helper macro for the above +Honestly just exists to make the pattern of render target strings more readable

\ No newline at end of file diff --git a/code/__HELPERS/admin.html b/code/__HELPERS/admin.html new file mode 100644 index 0000000000000..6ce8c9c58b06d --- /dev/null +++ b/code/__HELPERS/admin.html @@ -0,0 +1 @@ +code/__HELPERS/admin.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/admin.dm

/proc/is_adminReturns if the given client is an admin, REGARDLESS of if they're deadminned or not.
/proc/alert_to_permissions_elevation_attemptSends a message in the event that someone attempts to elevate their permissions through invoking a certain proc.
\ No newline at end of file diff --git a/code/__HELPERS/ai.html b/code/__HELPERS/ai.html new file mode 100644 index 0000000000000..d4aeeeec23fe2 --- /dev/null +++ b/code/__HELPERS/ai.html @@ -0,0 +1 @@ +code/__HELPERS/ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/ai.dm

/proc/GetBestWeaponReturns either the best weapon from the given choices or null if held weapons are better
/proc/IsEdiblereturns if something can be consumed, drink or food
\ No newline at end of file diff --git a/code/__HELPERS/announcements.html b/code/__HELPERS/announcements.html new file mode 100644 index 0000000000000..b338cd884461e --- /dev/null +++ b/code/__HELPERS/announcements.html @@ -0,0 +1 @@ +code/__HELPERS/announcements.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/announcements.dm

/proc/send_ooc_announcementSends a div formatted chat box announcement
/proc/create_announcement_divInserts a span styled message into an alert box div
/proc/create_ooc_announcement_divInserts a span styled message into an OOC alert style div
\ No newline at end of file diff --git a/code/__HELPERS/areas.html b/code/__HELPERS/areas.html new file mode 100644 index 0000000000000..d452e604ed928 --- /dev/null +++ b/code/__HELPERS/areas.html @@ -0,0 +1,7 @@ +code/__HELPERS/areas.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/areas.dm

/proc/create_atmos_zoneCreate an atmos zone (Think ZAS), similiar to [proc/detect_room] but it ignores walls and turfs which are non-[atmos_can_pass]
/proc/get_sorted_areasReturns a sorted version of GLOB.areas, by name
/proc/get_first_open_turf_in_areaIterates over all turfs in the target area and returns the first non-dense one
/proc/mobs_in_area_typeTakes: list of area types +Returns: all mobs that are in an area type
/proc/rename_arearename_area +Renames an area to the given new name, updating all machines' names and firedoors +to properly ensure alarms and machines are named correctly at all times. +Args:
/proc/set_area_machinery_titleRenames all machines in a defined area from the old title to the new title. +Used when renaming an area to ensure that all machiens are labeled the new area's machine. +Args:
\ No newline at end of file diff --git a/code/__HELPERS/atmospherics.html b/code/__HELPERS/atmospherics.html new file mode 100644 index 0000000000000..813a42c1527a6 --- /dev/null +++ b/code/__HELPERS/atmospherics.html @@ -0,0 +1,3 @@ +code/__HELPERS/atmospherics.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/atmospherics.dm

/proc/gas_mixture_parser
/proc/atmos_handbooks_initAutomatically populates gas_handbook and reaction_handbook. They are formatted lists containing information regarding gases and reactions they participate in. +Structure can be found in TS form at AtmosHandbook.tsx
/proc/return_atmos_handbooksReturns an assoc list of the gas handbook and the reaction handbook. +For UIs, simply do data += return_atmos_handbooks() to use.
/proc/check_gasesA simple helped proc that checks if the contents of a list of gases are within acceptable terms.
\ No newline at end of file diff --git a/code/__HELPERS/atoms.html b/code/__HELPERS/atoms.html new file mode 100644 index 0000000000000..faf1a32c78de4 --- /dev/null +++ b/code/__HELPERS/atoms.html @@ -0,0 +1,10 @@ +code/__HELPERS/atoms.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/atoms.dm

/proc/get_nested_locsReturns a list of all locations (except the area) the movable is within.
/proc/can_seeStep-towards method of determining whether one atom can see another. Similar to viewers() +note: this is a line of sight algorithm, view() does not do any sort of raycasting and cannot be emulated by it accurately
/proc/get_cardinal_dirGet the cardinal direction between two atoms
/proc/get_pixel_distanceFinds the distance between two atoms, in pixels
+centered = FALSE counts from turf edge to edge
+centered = TRUE counts from turf center to turf center
+of course mathematically this is just adding world.icon_size on again
/proc/check_wall_itemCheck if there is already a wall item on the turf loc +floor_loc = floor tile in front of the wall +dir_toward_wall = direction from the floor tile in front of the wall towards the wall +check_external = truthy if we should be checking against items coming out of the wall, rather than visually on top of the wall.
/proc/random_stepForces the atom to take a step in a random direction
/proc/is_source_facing_targetCompare source's dir, the clockwise dir of source and the anticlockwise dir of source +To the opposite dir of the dir returned by get_dir(target,source) +If one of them is a match, then source is facing target
/proc/urangeultra range (no limitations on distance, faster than range for distances > 8); including areas drastically decreases performance
/proc/spiral_rangesimilar function to range(), but with no limitations on the distance; will search spiralling outwards from the center
/proc/get_closest_atomReturns the closest atom of a specific type in a list from a source
/proc/pick_closest_pathReturns a chosen path that is the closest to a list of matches
/proc/generate_items_insideCreates new items inside an atom based on a list
/proc/getReturns the atom type in the specified loc
/proc/passA do nothing proc
\ No newline at end of file diff --git a/code/__HELPERS/auxtools.html b/code/__HELPERS/auxtools.html new file mode 100644 index 0000000000000..786a45f591f59 --- /dev/null +++ b/code/__HELPERS/auxtools.html @@ -0,0 +1 @@ +code/__HELPERS/auxtools.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/auxtools.dm

AUXLUAMacro for getting the auxtools library file

Define Details

AUXLUA

Macro for getting the auxtools library file

\ No newline at end of file diff --git a/code/__HELPERS/bitflag_lists.html b/code/__HELPERS/bitflag_lists.html new file mode 100644 index 0000000000000..4683c31b23e21 --- /dev/null +++ b/code/__HELPERS/bitflag_lists.html @@ -0,0 +1,9 @@ +code/__HELPERS/bitflag_lists.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/bitflag_lists.dm

SET_SMOOTHING_GROUPSSystem for storing bitflags past the 24 limit, making use of an associative list.

Define Details

SET_SMOOTHING_GROUPS

System for storing bitflags past the 24 limit, making use of an associative list.

+

Macro converts a list of integers into an associative list of bitflag entries for quicker comparison. +Example: list(0, 4, 26, 32)) => list( "0" = ( (1<<0) | (1<<4) ), "1" = ( (1<<2) | (1<<8) ) ) +Lists are cached into a global list of lists to avoid identical duplicates. +This system makes value comparisons faster than pairing every element of one list with every element of the other for evaluation.

+

Arguments:

+
\ No newline at end of file diff --git a/code/__HELPERS/cameras.html b/code/__HELPERS/cameras.html new file mode 100644 index 0000000000000..2365ddb5089a1 --- /dev/null +++ b/code/__HELPERS/cameras.html @@ -0,0 +1 @@ +code/__HELPERS/cameras.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/cameras.dm

/proc/get_camera_listget_camera_list
/proc/camera_sortSorts the list of cameras by their c_tag to display to players.
\ No newline at end of file diff --git a/code/__HELPERS/chat.html b/code/__HELPERS/chat.html new file mode 100644 index 0000000000000..f81756405c66a --- /dev/null +++ b/code/__HELPERS/chat.html @@ -0,0 +1 @@ +code/__HELPERS/chat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/chat.dm

/proc/send2chatAsynchronously sends a message to TGS chat channels.
/proc/send2adminchatAsynchronously sends a message to TGS admin chat channels.
EXAMINE_HINTHandles text formatting for item use hints in examine text
/proc/send_to_observersSends a message to all dead and observing players, if a source is provided a follow link will be attached.
/proc/relay_to_list_and_observersSends a message to everyone within the list, as well as all observers.

Define Details

EXAMINE_HINT

Handles text formatting for item use hints in examine text

\ No newline at end of file diff --git a/code/__HELPERS/chat_filter.html b/code/__HELPERS/chat_filter.html new file mode 100644 index 0000000000000..930e6d58f8f94 --- /dev/null +++ b/code/__HELPERS/chat_filter.html @@ -0,0 +1,8 @@ +code/__HELPERS/chat_filter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/chat_filter.dm

/proc/is_ic_filteredGiven a text, will return what word is on the IC filter, with the reason. +Returns null if the message is OK.
/proc/is_soft_ic_filteredGiven a text, will return what word is on the soft IC filter, with the reason. +Returns null if the message is OK.
/proc/is_ooc_filteredGiven a text, will return what word is on the OOC filter, with the reason. +Returns null if the message is OK.
/proc/is_soft_ooc_filteredGiven a text, will return that word is on the soft OOC filter, with the reason. +Returns null if the message is OK.
/proc/check_pda_message_against_filterChecks a PDA message against the IC/Soft IC filter. Returns TRUE if the message should be sent. +Notifies the user passed in arguments if the message matched either filter.
/proc/is_ic_filtered_for_pdasGiven a text, will return what word is on the IC filter, ignoring words allowed on the PDA, with the reason. +Returns null if the message is OK.
/proc/is_soft_ic_filtered_for_pdasGiven a text, will return what word is on the soft IC filter, ignoring words allowed on the PDA, with the reason. +Returns null if the message is OK.
/proc/censor_ic_filter_for_pdasGiven a pda message, will replace any match in the message with grawlixs.
/proc/log_filterLogs to the filter log with the given message, match, and scope
\ No newline at end of file diff --git a/code/__HELPERS/clients.html b/code/__HELPERS/clients.html new file mode 100644 index 0000000000000..ce0691db0d368 --- /dev/null +++ b/code/__HELPERS/clients.html @@ -0,0 +1,2 @@ +code/__HELPERS/clients.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/clients.dm

/proc/is_guest_keyReturns whether or not a player is a guest using their ckey as an input
/proc/unvalidated_client_errorProc that just logs whenever an uninitialized client tries to do something before they have fully gone through New(). +Intended to be used in conjunction with the VALIDATE_CLIENT_INITIALIZATION() macro, but can be dropped anywhere when we look at the fully_created var on /client.
\ No newline at end of file diff --git a/code/__HELPERS/cmp.html b/code/__HELPERS/cmp.html new file mode 100644 index 0000000000000..339432675c0cb --- /dev/null +++ b/code/__HELPERS/cmp.html @@ -0,0 +1,2 @@ +code/__HELPERS/cmp.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/cmp.dm

/proc/cmp_bodypart_by_body_part_ascOrders bodyparts by their body_part value, ascending.
/proc/cmp_port_order_ascOrders by integrated circuit weight
/proc/cmp_uplink_category_descOrders by uplink category weight
/proc/cmp_crafting_req_prioritySorts crafting recipe requirements before the crafting recipe is inserted into GLOB.crafting_recipes
/proc/cmp_heretic_knowledgeOrders heretic knowledge by priority
/proc/cmp_assoc_list_namePassed a list of assoc lists, sorts them by the list's "name" keys.
/proc/cmp_mob_healthOrders mobs by health
/proc/cmp_fish_fluidOrders fish types following this order (freshwater -> saltwater -> anadromous -> sulphuric water -> any water -> air) +If both share the same required fluid type, they'll be ordered by name instead.
\ No newline at end of file diff --git a/code/__HELPERS/colors.html b/code/__HELPERS/colors.html new file mode 100644 index 0000000000000..f22258530e7cf --- /dev/null +++ b/code/__HELPERS/colors.html @@ -0,0 +1,8 @@ +code/__HELPERS/colors.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/colors.dm

/proc/is_color_darkGiven a color in the format of "#RRGGBB", will return if the color +is dark.
/proc/expand_three_digit_colorGiven a 3 character color (no hash), converts it into #RRGGBB (with hash)
/proc/split_colorGiven a color in the format of "#RRGGBB" or "#RRGGBBAA", gives back a 4 entry list with the number values of each
/proc/random_colourReturns a random color picked from a list, has 2 modes (0 and 1), mode 1 doesn't pick white, black or gray
/proc/invert_HTML_colourInverts the colour of an HTML string
/proc/flash_colorFlash a color on the passed mob
/proc/blend_screen_colorBlends together two colors (passed as 3 or 4 length lists) using the screen blend mode +Much like multiply, screen effects the brightness of the resulting color +Screen blend will always lighten the resulting color, since before multiplication we invert the colors +This makes our resulting output brighter instead of darker
/proc/blend_cutoff_colorsUsed to blend together two different color cutoffs +Uses the screen blendmode under the hood, essentially just /proc/blend_screen_color +But paired down and modified to work for our color range +Accepts the color cutoffs as two 3 length list(0-100,...) arguments
/proc/colorize_stringGets a color for a name, will return the same color for a given string consistently within a round.atom
\ No newline at end of file diff --git a/code/__HELPERS/construction.html b/code/__HELPERS/construction.html new file mode 100644 index 0000000000000..a74151a46c6e2 --- /dev/null +++ b/code/__HELPERS/construction.html @@ -0,0 +1,13 @@ +code/__HELPERS/construction.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/construction.dm

OPTIMAL_COSTMakes sure only integer values are used when consuming, removing & checking for mats
GET_MATERIAL_REFWrapper for fetching material references. Exists exclusively so that people don't need to wrap everything in a list every time.
/proc/rcd_result_with_memoryProduces a new RCD result from the given one if it can be calculated that +the RCD should speed up with the remembered form.
/proc/amount2sheetTurns material amount into the number of sheets, returning FALSE if the number is less than SHEET_MATERIAL_AMOUNT
/proc/sheet2amountTurns number of sheets into material amount, returning FALSE if the number is <= 0
/proc/fast_split_stackSplits a stack. we don't use /obj/item/stack/proc/fast_split_stack because Byond complains that should only be called asynchronously. +This proc is also more faster because it doesn't deal with mobs, copying evidences or refreshing atom storages +Has special internal uses for e.g. by the material container
/proc/split_materials_uniformlydivides a list of materials uniformly among all contents of the target_object recursively +Used to set materials of printed items with their design cost by taking into consideration their already existing materials +e.g. if 12 iron is to be divided uniformly among 2 objects A, B who's current iron contents are 3 & 7 +Then first we normalize those values i.e. find their weights to decide who gets an higher share of iron +total_sum = 3 + 7 = 10, A = 3/10 = 0.3, B = 7/10 = 0.7 +Then we finally multiply those weights with the user value of 12 we get +A = 0.3 * 12 = 3.6, B = 0.7 * 12 = 8.4 i.e. 3.6 + 8.4 = 12!! +Off course we round the values so we don't have to deal with floating point materials so the actual value +ends being less but that's not an issue +Arguments

Define Details

GET_MATERIAL_REF

Wrapper for fetching material references. Exists exclusively so that people don't need to wrap everything in a list every time.

OPTIMAL_COST

Makes sure only integer values are used when consuming, removing & checking for mats

\ No newline at end of file diff --git a/code/__HELPERS/datums.html b/code/__HELPERS/datums.html new file mode 100644 index 0000000000000..d7b4e213ab870 --- /dev/null +++ b/code/__HELPERS/datums.html @@ -0,0 +1 @@ +code/__HELPERS/datums.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/datums.dm

/proc/is_valid_srcCheck if a datum has not been deleted and is a valid source
\ No newline at end of file diff --git a/code/__HELPERS/dna.html b/code/__HELPERS/dna.html new file mode 100644 index 0000000000000..6b4766761f27c --- /dev/null +++ b/code/__HELPERS/dna.html @@ -0,0 +1 @@ +code/__HELPERS/dna.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/dna.dm

GET_UI_BLOCK_LENGetter macro used to get the length of a identity block
GET_UF_BLOCK_LENDitto, but for a feature.

Define Details

GET_UF_BLOCK_LEN

Ditto, but for a feature.

GET_UI_BLOCK_LEN

Getter macro used to get the length of a identity block

\ No newline at end of file diff --git a/code/__HELPERS/duplicating.html b/code/__HELPERS/duplicating.html new file mode 100644 index 0000000000000..3aad2090582bc --- /dev/null +++ b/code/__HELPERS/duplicating.html @@ -0,0 +1 @@ +code/__HELPERS/duplicating.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/duplicating.dm

/proc/duplicate_object
\ No newline at end of file diff --git a/code/__HELPERS/dynamic_human_icon_gen.html b/code/__HELPERS/dynamic_human_icon_gen.html new file mode 100644 index 0000000000000..306993377fa1f --- /dev/null +++ b/code/__HELPERS/dynamic_human_icon_gen.html @@ -0,0 +1 @@ +code/__HELPERS/dynamic_human_icon_gen.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/dynamic_human_icon_gen.dm

/proc/get_dynamic_human_appearanceCreates a human with the given parameters and returns an appearance of it
/proc/apply_dynamic_human_appearanceThis exists to apply the icons async, as that cannot be done in Initialize because of possible sleeps.
/proc/set_dynamic_human_appearanceThis proc gets an argument of a target and runs
\ No newline at end of file diff --git a/code/__HELPERS/events.html b/code/__HELPERS/events.html new file mode 100644 index 0000000000000..406b78d632b3f --- /dev/null +++ b/code/__HELPERS/events.html @@ -0,0 +1 @@ +code/__HELPERS/events.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/events.dm

/proc/find_maintenance_spawnFinds us a generic maintenance spawn location.
/proc/find_space_spawnFinds us a generic spawn location in space.
\ No newline at end of file diff --git a/code/__HELPERS/files.html b/code/__HELPERS/files.html new file mode 100644 index 0000000000000..3a13f52df17ef --- /dev/null +++ b/code/__HELPERS/files.html @@ -0,0 +1,4 @@ +code/__HELPERS/files.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/files.dm

/proc/pathwalkTakes a directory and returns every file within every sub directory. +If extensions_filter is provided then only files that end in that extension are given back. +If extensions_filter is a list, any file that matches at least one entry is given back.
/proc/md5filepathReturns the md5 of a file at a given path.
/proc/md5asfileSave file as an external file then md5 it. +Used because md5ing files stored in the rsc sometimes gives incorrect md5 results.
/proc/sanitize_filepathSanitizes the name of each node in the path.
\ No newline at end of file diff --git a/code/__HELPERS/forensics.html b/code/__HELPERS/forensics.html new file mode 100644 index 0000000000000..a7736b6bb50d2 --- /dev/null +++ b/code/__HELPERS/forensics.html @@ -0,0 +1 @@ +code/__HELPERS/forensics.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/forensics.dm

GET_ATOM_FINGERPRINTSReturns the fingerprints on this atom
GET_ATOM_HIDDENPRINTSReturns the hidden prints on this atom
GET_ATOM_BLOOD_DNAReturns the blood dna on this atom
GET_ATOM_FIBRESReturns the fibers on this atom
GET_ATOM_BLOOD_DNA_LENGTHReturns the number of unique blood dna sources on this atom

Define Details

GET_ATOM_BLOOD_DNA

Returns the blood dna on this atom

GET_ATOM_BLOOD_DNA_LENGTH

Returns the number of unique blood dna sources on this atom

GET_ATOM_FIBRES

Returns the fibers on this atom

GET_ATOM_FINGERPRINTS

Returns the fingerprints on this atom

GET_ATOM_HIDDENPRINTS

Returns the hidden prints on this atom

\ No newline at end of file diff --git a/code/__HELPERS/game.html b/code/__HELPERS/game.html new file mode 100644 index 0000000000000..f2266ad060537 --- /dev/null +++ b/code/__HELPERS/game.html @@ -0,0 +1,3 @@ +code/__HELPERS/game.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/game.dm

CULT_POLL_WAITTime before being allowed to select a new cult leader again
GET_ERROR_ROOMReturns either the error landmark or the location of the room. Needless to say, if this is used, it means things have gone awry.
/proc/get_area_nameReturns the name of the area the atom is in
/proc/try_move_adjacentTries to move an atom to an adjacent turf, return TRUE if successful
/proc/get_mob_by_keyReturn the mob type that is being controlled by a ckey
/proc/considered_aliveChecks if the passed mind has a mob that is "alive"
/proc/considered_exiledExiled check
/proc/considered_afkChecks if a player is considered AFK
/proc/screen_textReturn an object with a new maptext (not currently in use)
/proc/add_image_to_clientAdds an image to a client's .images. Useful as a callback.
/proc/add_image_to_clientsLike add_image_to_client, but will add the image from a list of clients
/proc/remove_image_from_clientRemoves an image from a client's .images. Useful as a callback.
/proc/remove_image_from_clientsLike remove_image_from_client, but will remove the image from a list of clients
/proc/flick_overlay_globalAdd an image to a list of clients and calls a proc to remove it after a duration
/atom/movable/flick_visualHelper atom that copies an appearance and exists for a period
/proc/get_active_player_countGet active players who are playing in the round
/proc/make_bodyUses stripped down and bastardized code from respawn character
/proc/send_to_playing_playerssends a whatever to all playing players; use instead of to_chat(world, where needed)
/proc/window_flashFlash the window of a player
/proc/recursive_loc_checkRecursively checks if an item is inside a given type/atom, even through layers of storage. Returns the atom if it finds it.
/proc/announce_arrivalSend a message in common radio when a player arrives
/proc/lavaland_equipment_pressure_checkCheck if the turf pressure allows specialized equipment to work
/proc/find_obstruction_free_locationFind an obstruction free turf that's within the range of the center. Can also condition on if it is of a certain area type.
/proc/power_failDisable power in the station APCs
/proc/send_tip_of_the_roundSends a round tip to a target. If selected_tip is null, a random tip will be sent instead (5% chance of it being silly). +Tips that starts with the @ character won't be html encoded. That's necessary for any tip containing markup tags, +just make sure they don't also have html characters like <, > and ' which will be garbled.

Define Details

CULT_POLL_WAIT

Time before being allowed to select a new cult leader again

GET_ERROR_ROOM

Returns either the error landmark or the location of the room. Needless to say, if this is used, it means things have gone awry.

\ No newline at end of file diff --git a/code/__HELPERS/generators.html b/code/__HELPERS/generators.html new file mode 100644 index 0000000000000..49cc32c8133cf --- /dev/null +++ b/code/__HELPERS/generators.html @@ -0,0 +1,2 @@ +code/__HELPERS/generators.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/generators.dm

/proc/return_generator_argsreturns the arguments given to a generator and manually extracts them from the internal byond object +returns:
\ No newline at end of file diff --git a/code/__HELPERS/global_lists.html b/code/__HELPERS/global_lists.html new file mode 100644 index 0000000000000..80f07a5960b29 --- /dev/null +++ b/code/__HELPERS/global_lists.html @@ -0,0 +1 @@ +code/__HELPERS/global_lists.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/global_lists.dm

/proc/init_surgeries//Initial Building/////
/proc/make_datum_reference_listsLegacy procs that really should be replaced with proper _INIT macros
/proc/init_crafting_recipesInits crafting recipe lists
/proc/init_crafting_recipes_atomsInits atoms used in crafting recipes
/proc/init_subtypes_w_path_keysFunctions like init_subtypes, but uses the subtype's path as a key for easy access
\ No newline at end of file diff --git a/code/__HELPERS/guid.html b/code/__HELPERS/guid.html new file mode 100644 index 0000000000000..7813f395c2dfb --- /dev/null +++ b/code/__HELPERS/guid.html @@ -0,0 +1,3 @@ +code/__HELPERS/guid.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/guid.dm

/proc/GUIDreturns a GUID like identifier (using a mostly made up record format) +guids are not on their own suitable for access or security tokens, as most of their bits are predictable. +(But may make a nice salt to one)
\ No newline at end of file diff --git a/code/__HELPERS/hallucinations.html b/code/__HELPERS/hallucinations.html new file mode 100644 index 0000000000000..675606cc81ce8 --- /dev/null +++ b/code/__HELPERS/hallucinations.html @@ -0,0 +1,10 @@ +code/__HELPERS/hallucinations.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/hallucinations.dm

HALLUCINATION_ARG_TYPEWhat typepath of the hallucination
HALLUCINATION_ARG_SOURCEWhere the hallucination came from, for logging
HALLUCINATION_ARGLISTOnwards from this index, it's the arglist that gets passed into the hallucination created.
NO_HALLUCINATION_BIOTYPESBiotypes which cannot hallucinate for balance and logic reasons (not code)
cause_hallucinationCauses a hallucination of a certain type to the mob.
/proc/visible_hallucination_pulseEmits a hallucinating pulse around the passed atom. +Affects everyone in the passed radius who can view the center, +except for those with TRAIT_MADNESS_IMMUNE, or those who are blind.
/proc/hallucination_pulseEmits a hallucinating pulse around the passed atom. +Affects everyone in the passed radius except for those with TRAIT_MADNESS_IMMUNE. This affects blind players.
/proc/generate_hallucination_weighted_listGenerates the global weighted list of random hallucinations.
/proc/debug_hallucination_weighted_listDebug proc for getting the total weight of the random_hallucination_weighted_list
/proc/get_random_valid_hallucination_subtypeGets a random subtype of the passed hallucination type that has a random_hallucination_weight > 0. +If no subtype is passed, it will get any random hallucination subtype that is not abstract and has weight > 0. +This can be used instead of picking from the global weighted list to just get a random valid hallucination.
/proc/select_hallucination_typeHelper to give the passed mob the ability to select a hallucination from the list of all hallucination subtypes.
/proc/create_delusionHelper to give the passed mob the ability to create a delusion hallucination (even a custom one). +Returns a list of arguments - pass these to _cause_hallucination to cause the desired hallucination
BUBBLEGUM_HALLUCINATION_LINESLines the bubblegum hallucinatoin uses when it pops up

Define Details

BUBBLEGUM_HALLUCINATION_LINES

Lines the bubblegum hallucinatoin uses when it pops up

HALLUCINATION_ARGLIST

Onwards from this index, it's the arglist that gets passed into the hallucination created.

HALLUCINATION_ARG_SOURCE

Where the hallucination came from, for logging

HALLUCINATION_ARG_TYPE

What typepath of the hallucination

NO_HALLUCINATION_BIOTYPES

Biotypes which cannot hallucinate for balance and logic reasons (not code)

cause_hallucination

Causes a hallucination of a certain type to the mob.

+

First argument is always the type of halllucination, a /datum/hallucination, required. +second argument is always the key source of the hallucination, used for admin logging, required.

+

Additionally, named arguments are supported for passing them forward to the created hallucination's new().

\ No newline at end of file diff --git a/code/__HELPERS/honkerblast.html b/code/__HELPERS/honkerblast.html new file mode 100644 index 0000000000000..a928bf2ca937b --- /dev/null +++ b/code/__HELPERS/honkerblast.html @@ -0,0 +1 @@ +code/__HELPERS/honkerblast.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/honkerblast.dm

/proc/honkerblastUnleashes a honkerblast similar to the honkmech weapon, but with more granular control.
\ No newline at end of file diff --git a/code/__HELPERS/icon_smoothing.html b/code/__HELPERS/icon_smoothing.html new file mode 100644 index 0000000000000..58c319aecec33 --- /dev/null +++ b/code/__HELPERS/icon_smoothing.html @@ -0,0 +1,5 @@ +code/__HELPERS/icon_smoothing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/icon_smoothing.dm

/proc/generate_adjacent_directionsEncodes connectivity between border objects +Returns a list accessable by a border object's dir, the direction between it and a target, and a target +Said list will return the direction the two objects connect, if any exists (if the target isn't a border object and the direction is fine, return the inverse of the direction in use)
CAN_DIAGONAL_SMOOTHAre two atoms border adjacent, takes a border object, something to compare against, and the direction between A and B +Returns the way in which the first thing is adjacent to the second
BITMASK_FOUNDCheck that non border objects use to smooth against border objects
BITMASK_ON_BORDER_CHECKReturns true if the smooth is acceptable, FALSE otherwise
/proc/dir_to_all_junctionsTakes a direction, turns it into all the junctions that contain it

Define Details

BITMASK_FOUND

Check that non border objects use to smooth against border objects

BITMASK_ON_BORDER_CHECK

Returns true if the smooth is acceptable, FALSE otherwise

CAN_DIAGONAL_SMOOTH

Are two atoms border adjacent, takes a border object, something to compare against, and the direction between A and B +Returns the way in which the first thing is adjacent to the second

\ No newline at end of file diff --git a/code/__HELPERS/icons.html b/code/__HELPERS/icons.html new file mode 100644 index 0000000000000..a3fc277f04bcb --- /dev/null +++ b/code/__HELPERS/icons.html @@ -0,0 +1,26 @@ +code/__HELPERS/icons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/icons.dm

/proc/rgb2hsvConverts an rgb color into a list storing hsva +Exists because it's useful to have a guaranteed alpha value
/proc/hsv2rgbConverts a list storing hsva into an rgb color
/proc/getFlatIconCreate a single /icon from a given /atom or /image.
/proc/generate_icon_alpha_maskHelper proc to generate a cutout alpha mask out of an icon.
/proc/get_flat_human_icon
/proc/get_flat_existing_human_iconA simpler version of get_flat_human_icon() that uses an existing human as a base to create the icon. +Does not feature caching yet, since I could not think of a good way to cache them without having a possibility +of using the cached version when we don't want to, so only use this proc if you just need this flat icon +generated once and handle the caching yourself if you need to access that icon multiple times, or +refactor this proc to feature caching of icons.
/proc/generate_and_hash_rsc_filegenerates a filename for a given asset. +like generate_asset_name(), except returns the rsc reference and the rsc file hash as well as the asset name (sans extension) +used so that certain asset files don't have to be hashed twice
/proc/generate_asset_nameGenerate a filename for this asset +The same asset will always lead to the same asset name +(Generated names do not include file extention.)
/proc/get_dummy_savefileGets a dummy savefile for usage in icon generation. +Savefiles generated from this proc will be empty.
/proc/icon2base64Converts an icon to base64. Operates by putting the icon in the iconCache savefile, +exporting it as text, and then parsing the base64 from that. +(This relies on byond automatically storing icons in savefiles as base64)
/proc/is_valid_dmi_filegiven a text string, returns whether it is a valid dmi icons folder path
/proc/get_icon_dmi_pathgiven an icon object, dmi file path, or atom/image/mutable_appearance, attempts to find and return an associated dmi file path. +a weird quirk about dm is that /icon objects represent both compile-time or dynamic icons in the rsc, +but stringifying rsc references returns a dmi file path +ONLY if that icon represents a completely unchanged dmi file from when the game was compiled. +so if the given object is associated with an icon that was in the rsc when the game was compiled, this returns a path. otherwise it returns ""
/proc/icon2htmlgenerate an asset for the given icon or the icon of the given appearance for [thing], and send it to any clients in target. +Arguments:
/proc/center_imageCenter's an image. +Requires: +The Image +The x dimension of the icon file used in the image +The y dimension of the icon file used in the image +eg: center_image(image_to_center, 32,32) +eg2: center_image(image_to_center, 96,96)
/proc/icon_existsChecks if the given iconstate exists in the given file, caching the result. Setting scream to TRUE will print a stack trace ONCE.
/proc/get_size_in_tilesReturns the size of the sprite in tiles. +Takes the icon size and divides it by the world icon size (default 32). +This gives the size of the sprite in tiles.
/proc/get_icon_dimensionsReturns a list containing the width and height of an icon file
/proc/get_small_overlayFikou's fix for making toast alerts look nice - resets offsets, transforms to fit
\ No newline at end of file diff --git a/code/__HELPERS/jatum.html b/code/__HELPERS/jatum.html new file mode 100644 index 0000000000000..1b396e0d071b8 --- /dev/null +++ b/code/__HELPERS/jatum.html @@ -0,0 +1 @@ +code/__HELPERS/jatum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/jatum.dm

JATUM_VERSIONThe JATUM version used for serializing and deserializing

Define Details

JATUM_VERSION

The JATUM version used for serializing and deserializing

\ No newline at end of file diff --git a/code/__HELPERS/lazy_templates.html b/code/__HELPERS/lazy_templates.html new file mode 100644 index 0000000000000..ef4e04dbe50cf --- /dev/null +++ b/code/__HELPERS/lazy_templates.html @@ -0,0 +1 @@ +code/__HELPERS/lazy_templates.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/lazy_templates.dm

/proc/generate_lazy_template_mapIterates through all lazy template datums that exist and returns a list of them as an associative list of key -> instance.
\ No newline at end of file diff --git a/code/__HELPERS/levels.html b/code/__HELPERS/levels.html new file mode 100644 index 0000000000000..4d7304918bc47 --- /dev/null +++ b/code/__HELPERS/levels.html @@ -0,0 +1 @@ +code/__HELPERS/levels.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/levels.dm

/proc/is_valid_z_level
/proc/is_on_a_planetChecks if the passed non-area atom is on a "planet".
\ No newline at end of file diff --git a/code/__HELPERS/lighting.html b/code/__HELPERS/lighting.html new file mode 100644 index 0000000000000..b95cf3983c71f --- /dev/null +++ b/code/__HELPERS/lighting.html @@ -0,0 +1,4 @@ +code/__HELPERS/lighting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/lighting.dm

/proc/emissive_appearanceProduces a mutable appearance glued to the [EMISSIVE_PLANE] dyed to be the EMISSIVE_COLOR.
/proc/emissive_blockerProduces a mutable appearance glued to the [EMISSIVE_PLANE] dyed to be the EM_BLOCK_COLOR.
/proc/partially_block_emissivesTakes a non area atom and a threshold +Makes it block emissive with any pixels with more alpha then that threshold, with the rest allowing the light to pass +Returns a list of objects, automatically added to your vis_contents, that apply this effect +QDEL them when appropriate
\ No newline at end of file diff --git a/code/__HELPERS/logging/_logging.html b/code/__HELPERS/logging/_logging.html new file mode 100644 index 0000000000000..a1849a043222b --- /dev/null +++ b/code/__HELPERS/logging/_logging.html @@ -0,0 +1,2 @@ +code/__HELPERS/logging/_logging.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/_logging.dm

/proc/__check_serialization_semverChecks if the actual semver is equal or later than the wanted semver +Must be passed as TEXT; you're probably looking for CHECK_SERIALIZATION_SEMVER, look right above
\ No newline at end of file diff --git a/code/__HELPERS/logging/admin.html b/code/__HELPERS/logging/admin.html new file mode 100644 index 0000000000000..160f6c8ae7d30 --- /dev/null +++ b/code/__HELPERS/logging/admin.html @@ -0,0 +1,2 @@ +code/__HELPERS/logging/admin.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/admin.dm

/proc/log_adminGeneral logging for admin actions
/proc/log_admin_circuitLogging for admin actions on or with circuits
/proc/log_admin_privateGeneral logging for admin actions
/proc/log_adminsayLogging for AdminSay (ASAY) messages
/proc/log_dsayLogging for DeachatSay (DSAY) messages
/proc/log_suspicious_loginWrites to a special log file if the log_suspicious_login config flag is set, +which is intended to contain all logins that failed under suspicious circumstances.
\ No newline at end of file diff --git a/code/__HELPERS/logging/antagonists.html b/code/__HELPERS/logging/antagonists.html new file mode 100644 index 0000000000000..01b2daf39cf95 --- /dev/null +++ b/code/__HELPERS/logging/antagonists.html @@ -0,0 +1 @@ +code/__HELPERS/logging/antagonists.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/antagonists.dm

/proc/log_traitorLogging for traitor objectives
/proc/log_uplinkLogging for items purchased from a traitor uplink
/proc/log_malf_upgradesLogging for upgrades purchased by a malfunctioning (or combat upgraded) AI
/proc/log_changeling_powerLogging for changeling powers purchased
/proc/log_heretic_knowledgeLogging for heretic powers learned
/proc/log_spellbookLogging for wizard powers learned
/proc/log_spyLogs bounties completed by spies and their rewards
\ No newline at end of file diff --git a/code/__HELPERS/logging/atmos.html b/code/__HELPERS/logging/atmos.html new file mode 100644 index 0000000000000..a71a2acd1ff03 --- /dev/null +++ b/code/__HELPERS/logging/atmos.html @@ -0,0 +1 @@ +code/__HELPERS/logging/atmos.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/atmos.dm

/proc/log_atmosLogs the contents of the gasmix to the game log, prefixed by text
\ No newline at end of file diff --git a/code/__HELPERS/logging/attack.html b/code/__HELPERS/logging/attack.html new file mode 100644 index 0000000000000..5f232ea1b8e9c --- /dev/null +++ b/code/__HELPERS/logging/attack.html @@ -0,0 +1 @@ +code/__HELPERS/logging/attack.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/attack.dm

/proc/log_attackGeneric attack logging
/proc/log_combatLog a combat message in the attack log
/proc/log_woundlog_wound() is for when someone is attacked and suffers a wound. Note that this only captures wounds from damage, so smites/forced wounds aren't logged, as well as demotions like cuts scabbing over
/proc/log_bomberLogging for bombs detonating
\ No newline at end of file diff --git a/code/__HELPERS/logging/debug.html b/code/__HELPERS/logging/debug.html new file mode 100644 index 0000000000000..e52290e3c762b --- /dev/null +++ b/code/__HELPERS/logging/debug.html @@ -0,0 +1,2 @@ +code/__HELPERS/logging/debug.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/debug.dm

/proc/log_assetLogging for loading and caching assets
/proc/log_configLogging for config errors +Rarely gets called; just here in case the config breaks.
/proc/log_job_debugLogging for job slot changes
/proc/log_luaLogging for lua scripting
/proc/log_mappingLogging for mapping errors
/proc/log_perfLogging for game performance
/proc/log_qdelLogging for hard deletes
/proc/log_sqlLogging for DB errors
/proc/log_topicLogging for world/Topic
/proc/log_worldLog to both DD and the logfile.
\ No newline at end of file diff --git a/code/__HELPERS/logging/dynamic.html b/code/__HELPERS/logging/dynamic.html new file mode 100644 index 0000000000000..dd72ad755732a --- /dev/null +++ b/code/__HELPERS/logging/dynamic.html @@ -0,0 +1 @@ +code/__HELPERS/logging/dynamic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/dynamic.dm

/proc/log_dynamicLogging for dynamic procs
\ No newline at end of file diff --git a/code/__HELPERS/logging/game.html b/code/__HELPERS/logging/game.html new file mode 100644 index 0000000000000..371475e8fafc7 --- /dev/null +++ b/code/__HELPERS/logging/game.html @@ -0,0 +1 @@ +code/__HELPERS/logging/game.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/game.dm

/proc/log_gameLogging for generic/unsorted game messages
/proc/log_emoteLogging for emotes
/proc/log_radio_emoteLogging for emotes sent over the radio
/proc/log_oocLogging for messages sent in OOC
/proc/log_prayerLogging for prayed messages
/proc/log_internet_requestLogging for music requests
/proc/log_accessLogging for logging in & out of the game, with error messages.
/proc/log_voteLogging for OOC votes
\ No newline at end of file diff --git a/code/__HELPERS/logging/manifest.html b/code/__HELPERS/logging/manifest.html new file mode 100644 index 0000000000000..a15e4d6687b0b --- /dev/null +++ b/code/__HELPERS/logging/manifest.html @@ -0,0 +1 @@ +code/__HELPERS/logging/manifest.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/manifest.dm

/proc/log_manifestLogging for player manifest (ckey, name, job, special role, roundstart/latejoin)
\ No newline at end of file diff --git a/code/__HELPERS/logging/mecha.html b/code/__HELPERS/logging/mecha.html new file mode 100644 index 0000000000000..bb01526018fa5 --- /dev/null +++ b/code/__HELPERS/logging/mecha.html @@ -0,0 +1 @@ +code/__HELPERS/logging/mecha.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/mecha.dm

/proc/log_mechaLogging for mech actions
\ No newline at end of file diff --git a/code/__HELPERS/logging/paper.html b/code/__HELPERS/logging/paper.html new file mode 100644 index 0000000000000..9418997306145 --- /dev/null +++ b/code/__HELPERS/logging/paper.html @@ -0,0 +1 @@ +code/__HELPERS/logging/paper.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/paper.dm

/proc/log_paperLogging for writing made on paper
\ No newline at end of file diff --git a/code/__HELPERS/logging/pda.html b/code/__HELPERS/logging/pda.html new file mode 100644 index 0000000000000..3ad9139621174 --- /dev/null +++ b/code/__HELPERS/logging/pda.html @@ -0,0 +1 @@ +code/__HELPERS/logging/pda.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/pda.dm

/proc/log_pdaLogging for PDA messages sent
/proc/log_commentLogging for newscaster comments
/proc/log_chatLogging for chatting on modular computer channels
\ No newline at end of file diff --git a/code/__HELPERS/logging/research.html b/code/__HELPERS/logging/research.html new file mode 100644 index 0000000000000..c758aa1947263 --- /dev/null +++ b/code/__HELPERS/logging/research.html @@ -0,0 +1 @@ +code/__HELPERS/logging/research.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/research.dm

/proc/log_researchPuts the text into the research html file, not log. See [INVESTIGATE_RESEARCH] for [/atom/proc/investigate_log]
\ No newline at end of file diff --git a/code/__HELPERS/logging/shuttle.html b/code/__HELPERS/logging/shuttle.html new file mode 100644 index 0000000000000..fd6a1df57b45b --- /dev/null +++ b/code/__HELPERS/logging/shuttle.html @@ -0,0 +1 @@ +code/__HELPERS/logging/shuttle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/shuttle.dm

/proc/log_shuttleLogging for shuttle actions
\ No newline at end of file diff --git a/code/__HELPERS/logging/talk.html b/code/__HELPERS/logging/talk.html new file mode 100644 index 0000000000000..b6c93d8c1fd6b --- /dev/null +++ b/code/__HELPERS/logging/talk.html @@ -0,0 +1 @@ +code/__HELPERS/logging/talk.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/talk.dm

/proc/log_sayLogging for generic spoken messages
/proc/log_whisperLogging for whispered messages
/proc/log_directed_talkHelper for logging of messages with only one sender and receiver (i.e. mind links)
/proc/log_telecommsLogging for speech taking place over comms, as well as tcomms equipment
/proc/log_speech_indicatorsLogging for speech indicators.
\ No newline at end of file diff --git a/code/__HELPERS/logging/tool.html b/code/__HELPERS/logging/tool.html new file mode 100644 index 0000000000000..bb00c7a4d93a0 --- /dev/null +++ b/code/__HELPERS/logging/tool.html @@ -0,0 +1 @@ +code/__HELPERS/logging/tool.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/tool.dm

/proc/log_toolLogging for tool usage
\ No newline at end of file diff --git a/code/__HELPERS/logging/transport.html b/code/__HELPERS/logging/transport.html new file mode 100644 index 0000000000000..ff14fc69dad65 --- /dev/null +++ b/code/__HELPERS/logging/transport.html @@ -0,0 +1 @@ +code/__HELPERS/logging/transport.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/transport.dm

/proc/log_transportLogging for transport (tram/elevator) actions
\ No newline at end of file diff --git a/code/__HELPERS/logging/ui.html b/code/__HELPERS/logging/ui.html new file mode 100644 index 0000000000000..072aaccdcaecd --- /dev/null +++ b/code/__HELPERS/logging/ui.html @@ -0,0 +1 @@ +code/__HELPERS/logging/ui.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/ui.dm

/proc/log_tguiAppends a tgui-related log entry. All arguments are optional.
\ No newline at end of file diff --git a/code/__HELPERS/logging/virus.html b/code/__HELPERS/logging/virus.html new file mode 100644 index 0000000000000..d81c46905cb31 --- /dev/null +++ b/code/__HELPERS/logging/virus.html @@ -0,0 +1 @@ +code/__HELPERS/logging/virus.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/logging/virus.dm

/proc/log_virusLogging for the creation and contraction of viruses
\ No newline at end of file diff --git a/code/__HELPERS/maths.html b/code/__HELPERS/maths.html new file mode 100644 index 0000000000000..9a89317d8cd23 --- /dev/null +++ b/code/__HELPERS/maths.html @@ -0,0 +1,9 @@ +code/__HELPERS/maths.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/maths.dm

/proc/get_angleCalculate the angle between two movables and the west|east coordinate
/proc/delta_to_angleCalculate the angle produced by a pair of x and y deltas
/proc/get_angle_rawAngle between two arbitrary points and horizontal line same as /proc/get_angle
/proc/get_pixel_anglefor getting the angle when animating something's pixel_x and pixel_y
/proc/get_lineGet a list of turfs in a line from starting_atom to ending_atom.
/proc/get_perimeterGet a list of turfs in a perimeter given the center_atom and radius. +Automatically rounds down decimals and does not accept values less than positive 1 as they don't play well with it. +Is efficient on large circles but ugly on small ones +Uses Jesko`s method to the midpoint circle Algorithm.
/proc/siunit_isolatedFormats a number into a list representing the si unit. +Access the coefficient with [SI_COEFFICIENT], and access the unit with [SI_UNIT].
/proc/display_power*Format a power value in prefixed watts.
/proc/display_energyFormat an energy value in prefixed joules. +Arguments
/proc/energy_to_powerConverts the joule to the watt, assuming SSmachines tick rate. +Arguments
/proc/power_to_energyConverts the watt to the joule, assuming SSmachines tick rate.
/proc/anyprobchances are 1:value. anyprob(1) will always return true
/proc/bit_countcounts the number of bits in Byond's 16-bit width field, in constant time and memory!
/proc/make_tupleReturns the name of the mathematical tuple of same length as the number arg (rounded down).
/proc/at_leastTakes a value, and a threshold it has to at least match +returns the correctly signed value max'd to the threshold
/proc/reciprocal_addTakes two values x and y, and returns 1/((1/x) + y) +Useful for providing an additive modifier to a value that is used as a divisor, such as /obj/projectile/var/speed
/proc/reverse_angle180s an angle
\ No newline at end of file diff --git a/code/__HELPERS/matrices.html b/code/__HELPERS/matrices.html new file mode 100644 index 0000000000000..28763da9a9783 --- /dev/null +++ b/code/__HELPERS/matrices.html @@ -0,0 +1,2 @@ +code/__HELPERS/matrices.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/matrices.dm

/datum/decompose_matrixDatum which stores information about a matrix decomposed with decompose().
/proc/color_to_full_rgba_matrixConverts RGB shorthands into RGBA matrices complete of constants rows (ergo a 20 keys list in byond). +if return_identity_on_fail is true, stack_trace is called instead of CRASH, and an identity is returned.
\ No newline at end of file diff --git a/code/__HELPERS/memory_helpers.html b/code/__HELPERS/memory_helpers.html new file mode 100644 index 0000000000000..93ef4a5a05f9d --- /dev/null +++ b/code/__HELPERS/memory_helpers.html @@ -0,0 +1,34 @@ +code/__HELPERS/memory_helpers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/memory_helpers.dm

add_memory_in_rangeAdds a memory to all carbon mobs in a certain range of a certain atom.
/proc/_add_memory_in_rangeUnless you need to use this for an explicit reason, use the add_memory_in_range macro wrapper.
add_mob_memoryAdds a memory to the target mob.
add_memoryAdds a memory to the target mind.

Define Details

add_memory

Adds a memory to the target mind.

+

The first argument should be a typepath of a /datum/memory.

+

If the mob already has a memory of that type, it will be deleted.

+

Beyond that, can be supplied with named arguments pertaining to your memory type. +Common arguments include:

+ +

Returns the datum memory created, or null otherwise.

add_memory_in_range

Adds a memory to all carbon mobs in a certain range of a certain atom.

+

The third argument should be a typepath of a /datum/memory.

+

Two things of note when using this:

+ +

Beyond that, can be supplied with named arguments pertaining to your memory type. +Common arguments include:

+

add_mob_memory

Adds a memory to the target mob.

+

The first argument should be a typepath of a /datum/memory.

+

If the mob already has a memory of that type, it will be deleted.

+

Beyond that, can be supplied with named arguments pertaining to your memory type. +Common arguments include:

+ +

Returns the datum memory created, or null otherwise.

\ No newline at end of file diff --git a/code/__HELPERS/mobs.html b/code/__HELPERS/mobs.html new file mode 100644 index 0000000000000..5473556a75ad7 --- /dev/null +++ b/code/__HELPERS/mobs.html @@ -0,0 +1,4 @@ +code/__HELPERS/mobs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/mobs.dm

FACING_SAME_DIRTwo mobs are facing the same direction
FACING_EACHOTHERTwo mobs are facing each others
FACING_INIT_FACING_TARGET_TARGET_FACING_PERPENDICULARTwo mobs one is facing a person, but the other is perpendicular
/proc/do_afterTimed action involving one mob user. Target is optional.
/proc/ishumanbasicReturns if the given target is a human. Like, a REAL human. +Not a moth, not a felinid (which are human subtypes), but a human.
/proc/active_free_borgsSilicon Mob Procs
/proc/get_temp_change_amountUsed to get the amount of change between two body temperatures
GET_CLIENTGets the client of the mob, allowing for mocking of the client. +You only need to use this if you know you're going to be mocking clients somewhere else.
/proc/sort_mobsOrders mobs by type then by name. Accepts optional arg to sort a custom list, otherwise copies GLOB.mob_list.
/proc/get_mob_by_ckeyreturns a mob type controlled by a specified ckey
/proc/parse_zoneReturn a string for the specified body zone. Should be used for parsing non-instantiated bodyparts, otherwise use /obj/item/bodypart/var/plaintext_zone
/proc/deprecise_zoneTakes a zone and returns its "parent" zone, if it has one.
/proc/parse_slot_flagsReturns a list of strings for a given slot flag.
/proc/check_target_facingsReturns the direction that the initiator and the target are facing
/proc/get_mob_or_brainmobReturns the occupant mob or brain from a specified input
/proc/living_player_countReturns the amount of currently living players
/proc/dviewVersion of view() which ignores darkness, because BYOND doesn't have it (I actually suggested it but it was tagged redundant, BUT HEARERS IS A T- /rant).

Define Details

FACING_EACHOTHER

Two mobs are facing each others

FACING_INIT_FACING_TARGET_TARGET_FACING_PERPENDICULAR

Two mobs one is facing a person, but the other is perpendicular

FACING_SAME_DIR

Two mobs are facing the same direction

GET_CLIENT

Gets the client of the mob, allowing for mocking of the client. +You only need to use this if you know you're going to be mocking clients somewhere else.

\ No newline at end of file diff --git a/code/__HELPERS/mouse_control.html b/code/__HELPERS/mouse_control.html new file mode 100644 index 0000000000000..910049f793442 --- /dev/null +++ b/code/__HELPERS/mouse_control.html @@ -0,0 +1 @@ +code/__HELPERS/mouse_control.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/mouse_control.dm

/proc/mouse_angle_from_clientReturns an angle in degrees relative to the position of the mouse and that of the client eye.
\ No newline at end of file diff --git a/code/__HELPERS/movement.html b/code/__HELPERS/movement.html new file mode 100644 index 0000000000000..872d0b1349498 --- /dev/null +++ b/code/__HELPERS/movement.html @@ -0,0 +1 @@ +code/__HELPERS/movement.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/movement.dm

WEIGHT_TO_NEWTONSConverts w_class into newtons from throwing it, in (0.6 ~ 2.2) range

Define Details

WEIGHT_TO_NEWTONS

Converts w_class into newtons from throwing it, in (0.6 ~ 2.2) range

\ No newline at end of file diff --git a/code/__HELPERS/nameof.html b/code/__HELPERS/nameof.html new file mode 100644 index 0000000000000..940529887ae06 --- /dev/null +++ b/code/__HELPERS/nameof.html @@ -0,0 +1,5 @@ +code/__HELPERS/nameof.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/nameof.dm

NAMEOFNAMEOF: Compile time checked variable name to string conversion +evaluates to a string equal to "X", but compile errors if X isn't a var on datum. +datum may be null, but it does need to be a typed var.
NAMEOF_STATICNAMEOF that actually works in static definitions because src::type requires src to be defined

Define Details

NAMEOF

NAMEOF: Compile time checked variable name to string conversion +evaluates to a string equal to "X", but compile errors if X isn't a var on datum. +datum may be null, but it does need to be a typed var.

NAMEOF_STATIC

NAMEOF that actually works in static definitions because src::type requires src to be defined

\ No newline at end of file diff --git a/code/__HELPERS/names.html b/code/__HELPERS/names.html new file mode 100644 index 0000000000000..650ca945715fb --- /dev/null +++ b/code/__HELPERS/names.html @@ -0,0 +1,2 @@ +code/__HELPERS/names.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/names.dm

/proc/generate_random_nameGenerate a random name based off of one of the roundstart languages
/proc/assign_random_nameGenerate a name devices
/proc/tool_behaviour_namereturns an ic name of the tool needed +Arguments:
\ No newline at end of file diff --git a/code/__HELPERS/paths/jps.html b/code/__HELPERS/paths/jps.html new file mode 100644 index 0000000000000..f75f5149463eb --- /dev/null +++ b/code/__HELPERS/paths/jps.html @@ -0,0 +1,9 @@ +code/__HELPERS/paths/jps.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/paths/jps.dm

STEP_NOT_HERE_BUT_THEREThis file contains the stuff you need for using JPS (Jump Point Search) pathing, an alternative to A* that skips +over large numbers of uninteresting tiles resulting in much quicker pathfinding solutions. Mind that diagonals +cost the same as cardinal moves currently, so paths may look a bit strange, but should still be optimal. +A helper macro for JPS, for telling when a node has forced neighbors that need expanding +Only usable in the context of the jps datum because of the datum vars it relies on
/datum/jps_nodeThe JPS Node datum represents a turf that we find interesting enough to add to the open list and possibly search for new tiles from

Define Details

STEP_NOT_HERE_BUT_THERE

This file contains the stuff you need for using JPS (Jump Point Search) pathing, an alternative to A* that skips +over large numbers of uninteresting tiles resulting in much quicker pathfinding solutions. Mind that diagonals +cost the same as cardinal moves currently, so paths may look a bit strange, but should still be optimal. +A helper macro for JPS, for telling when a node has forced neighbors that need expanding +Only usable in the context of the jps datum because of the datum vars it relies on

\ No newline at end of file diff --git a/code/__HELPERS/paths/path.html b/code/__HELPERS/paths/path.html new file mode 100644 index 0000000000000..2aa22f485a9fb --- /dev/null +++ b/code/__HELPERS/paths/path.html @@ -0,0 +1,8 @@ +code/__HELPERS/paths/path.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/paths/path.dm

/proc/get_path_toThis is the proc you use whenever you want to have pathfinding more complex than "try stepping towards the thing". +If no path was found, returns an empty list, which is important for bots like medibots who expect an empty list rather than nothing. +It will yield until a path is returned, using magic
/proc/get_swarm_path_toPOTENTIALLY cheaper version of get_path_to +This proc generates a path map for the end atom's turf, which allows us to cheaply do pathing operations "at" it +Generation is significantly SLOWER then get_path_to, but if many things are/might be pathing at something then it is much faster +Runs the risk of returning an suboptimal or INVALID PATH if the delay between map creation and use is too long
/proc/pathfinding_finishedUses funny pass by reference bullshit to take the output created by pathfinding, and insert it into a return list +We'll be able to use this return list to tell a sleeping proc to continue execution
/datum/pathfindThe datum used to handle the JPS pathfinding, completely self-contained
/proc/remove_clunky_diagonalsProcesses a path (list of turfs), removes any diagonal moves that would lead to a weird bump
/proc/remove_diagonalsProcesses a path (list of turfs), removes any diagonal moves
/datum/can_pass_infoHolds all information about what an atom can move through +Passed into CanAStarPass to provide context for a pathing attempt
\ No newline at end of file diff --git a/code/__HELPERS/paths/sssp.html b/code/__HELPERS/paths/sssp.html new file mode 100644 index 0000000000000..9c3ca27900302 --- /dev/null +++ b/code/__HELPERS/paths/sssp.html @@ -0,0 +1,2 @@ +code/__HELPERS/paths/sssp.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/paths/sssp.dm

/datum/path_mapDatum that describes the shortest path between a source turf and any turfs within a distance
/datum/pathfind/ssspSingle source shortest path +Generates a flow map of a reachable turf -> the turf next closest to the map's center
\ No newline at end of file diff --git a/code/__HELPERS/priority_announce.html b/code/__HELPERS/priority_announce.html new file mode 100644 index 0000000000000..5b719c6a85d9c --- /dev/null +++ b/code/__HELPERS/priority_announce.html @@ -0,0 +1,4 @@ +code/__HELPERS/priority_announce.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/priority_announce.dm

/proc/priority_announceMake a big red text announcement to
/proc/minor_announceSends a minor annoucement to players. +Minor announcements are large text, with the title in red and message in white. +Only mobs that can hear can see the announcements.
/proc/level_announceSends an announcement about the level changing to players. Uses the passed in datum and the subsystem's previous security level to generate the message.
/proc/generate_unique_announcement_headerProc that just generates a custom header based on variables fed into priority_announce() +Will return a string.
/proc/dispatch_announcement_to_playersProc that just dispatches the announcement to our applicable audience. Only the announcement is a mandatory arg.
\ No newline at end of file diff --git a/code/__HELPERS/qdel.html b/code/__HELPERS/qdel.html new file mode 100644 index 0000000000000..edc93031d880e --- /dev/null +++ b/code/__HELPERS/qdel.html @@ -0,0 +1 @@ +code/__HELPERS/qdel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/qdel.dm

/proc/______qdel_list_wrapperthe underscores are to encourage people not to use this directly.
\ No newline at end of file diff --git a/code/__HELPERS/radiation.html b/code/__HELPERS/radiation.html new file mode 100644 index 0000000000000..953d698307124 --- /dev/null +++ b/code/__HELPERS/radiation.html @@ -0,0 +1,19 @@ +code/__HELPERS/radiation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/radiation.dm

CAN_IRRADIATEWhether or not it's possible for this atom to be irradiated
/proc/radiation_pulseSends out a pulse of radiation, eminating from the source. +Radiation is performed by collecting all radiatables within the max range (0 means source only, 1 means adjacent, etc), +then makes their way towards them. A number, starting at 1, is multiplied +by the insulation amounts of whatever is in the way (for example, walls lowering it down). +If this number hits equal or below the threshold, then the target can no longer be irradiated. +If the number is above the threshold, then the chance is the chance that the target will be irradiated. +As a consumer, this means that max_range going up usually means you want to lower the threshold too, +as well as the other way around. +If max_range is high, but threshold is too high, then it usually won't reach the source at the max range in time. +If max_range is low, but threshold is too low, then it basically guarantees everyone nearby, even if there's walls +and such in the way, can be irradiated. +You can also pass in a minimum exposure time. If this is set, then this radiation pulse +will not irradiate the source unless they have been around any radioactive source for that +period of time. +The chance to get irradiated diminishes over range, and from objects that block radiation. +Assuming there is nothing in the way, the chance will determine what the chance is to get irradiated from half of max_range. +Example: If chance is equal to 30%, and max_range is equal to 8, +then the chance for a thing to get irradiated is 30% if they are 4 turfs away from the pulse source.
/proc/get_perceived_radiation_dangerGets the perceived "danger" of radiation pulse, given the threshold to the target. +Returns a RADIATION_DANGER_* define, see code/__DEFINES/radiation.dm

Define Details

CAN_IRRADIATE

Whether or not it's possible for this atom to be irradiated

\ No newline at end of file diff --git a/code/__HELPERS/radio.html b/code/__HELPERS/radio.html new file mode 100644 index 0000000000000..98d32266144bb --- /dev/null +++ b/code/__HELPERS/radio.html @@ -0,0 +1 @@ +code/__HELPERS/radio.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/radio.dm

/proc/sanitize_frequencyEnsure the frequency is within bounds of what it should be sending/receiving at
/proc/format_frequencyFormat frequency by moving the decimal.
/proc/unformat_frequencyOpposite of format, returns as a number
/proc/return_unused_frequencyreturns a random unused frequency between MIN_FREE_FREQ & MAX_FREE_FREQ if free = TRUE, and MIN_FREQ & MAX_FREQ if FALSE
\ No newline at end of file diff --git a/code/__HELPERS/randoms.html b/code/__HELPERS/randoms.html new file mode 100644 index 0000000000000..9c281da1b0b08 --- /dev/null +++ b/code/__HELPERS/randoms.html @@ -0,0 +1,2 @@ +code/__HELPERS/randoms.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/randoms.dm

/proc/get_random_foodGet a random food item exluding the blocked ones
/proc/get_random_drinkGets a random drink excluding the blocked type
/proc/ion_numPicks a string of symbols to display as the law number for hacked or ion laws +is at the start to prevent us from changing say modes via get_message_mode()
/proc/random_nukecodeReturns a string for a random nuke code
/proc/get_random_coinGets a random coin excluding the blocked type and including extra coins which aren't pathed like coins.
\ No newline at end of file diff --git a/code/__HELPERS/reagents.html b/code/__HELPERS/reagents.html new file mode 100644 index 0000000000000..7a98174641909 --- /dev/null +++ b/code/__HELPERS/reagents.html @@ -0,0 +1 @@ +code/__HELPERS/reagents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/reagents.dm

/proc/convert_ph_to_readable_colorConverts the pH into a tgui readable color - i.e. white and black text is readable over it. This is NOT the colourwheel for pHes however.
CONVERT_PH_TO_COLORConverts pH to universal indicator colours. This is the colorwheel for pHes
/proc/get_reagent_type_from_product_stringReturns a list of chemical_reaction datums that have the input STRING as a product
/proc/find_reagentReturns reagent datum from typepath
/proc/get_random_reagent_idReturns a random reagent object, with the option to blacklist reagents.
/proc/get_random_drink_idReturns a random reagent consumable ethanol object minus blacklisted reagents
/proc/get_chem_idReturns reagent datum from reagent name string
/proc/get_recipe_from_reagent_productTakes a type in and returns a list of associated recipes

Define Details

CONVERT_PH_TO_COLOR

Converts pH to universal indicator colours. This is the colorwheel for pHes

\ No newline at end of file diff --git a/code/__HELPERS/ref.html b/code/__HELPERS/ref.html new file mode 100644 index 0000000000000..f0db75568bf55 --- /dev/null +++ b/code/__HELPERS/ref.html @@ -0,0 +1,3 @@ +code/__HELPERS/ref.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/ref.dm

/proc/REF\ref behaviour got changed in 512 so this is necesary to replicate old behaviour. +If it ever becomes necesary to get a more performant REF(), this lies here in wait +#define REF(thing) (thing && isdatum(thing) && (thing:datum_flags & DF_USE_TAG) && thing:tag ? "[thing:tag]" : text_ref(thing))
\ No newline at end of file diff --git a/code/__HELPERS/roundend.html b/code/__HELPERS/roundend.html new file mode 100644 index 0000000000000..4bfb3d9274e39 --- /dev/null +++ b/code/__HELPERS/roundend.html @@ -0,0 +1 @@ +code/__HELPERS/roundend.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/roundend.dm

/datum/achievement_reportA datum containing the info necessary for an achievement readout, reported and added to the global list in /datum/award/achievement/on_unlock(mob/user)
\ No newline at end of file diff --git a/code/__HELPERS/sanitize_values.html b/code/__HELPERS/sanitize_values.html new file mode 100644 index 0000000000000..612ca1267d0d7 --- /dev/null +++ b/code/__HELPERS/sanitize_values.html @@ -0,0 +1 @@ +code/__HELPERS/sanitize_values.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/sanitize_values.dm

/proc/sanitize_colorMakes sure the input color is text with a # at the start followed by 6 hexadecimal characters. Examples: "#ff1234", "#A38321", COLOR_GREEN_GRAY
\ No newline at end of file diff --git a/code/__HELPERS/screen_objs.html b/code/__HELPERS/screen_objs.html new file mode 100644 index 0000000000000..f2730480a2a58 --- /dev/null +++ b/code/__HELPERS/screen_objs.html @@ -0,0 +1,7 @@ +code/__HELPERS/screen_objs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/screen_objs.dm

/proc/screen_loc_to_offsetTakes a screen loc string in the format +"+-left-offset:+-pixel,+-bottom-offset:+-pixel" +Where the :pixel is optional, and returns +A list in the format (x_offset, y_offset) +We require context to get info out of screen locs that contain relative info, so NORTH, SOUTH, etc
/proc/offset_to_screen_locTakes a list in the form (x_offset, y_offset) +And converts it to a screen loc string +Accepts an optional view string/size to force the screen_loc around, so it can't go out of scope
/proc/get_valid_screen_locationReturns a valid location to place a screen object without overflowing the viewport
/proc/cut_relative_directionTakes a screen_loc string and cut out any directions like NORTH or SOUTH
/proc/spanning_screen_locReturns a screen_loc format for a tiling screen objects from start and end positions. Start should be bottom left corner, and end top right corner.
\ No newline at end of file diff --git a/code/__HELPERS/see_through_maps.html b/code/__HELPERS/see_through_maps.html new file mode 100644 index 0000000000000..e090506bb8c66 --- /dev/null +++ b/code/__HELPERS/see_through_maps.html @@ -0,0 +1 @@ +code/__HELPERS/see_through_maps.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/see_through_maps.dm

SEE_THROUGH_MAP_DEFAULTDefault shape. It's one tile above the atom
SEE_THROUGH_MAP_THREE_X_THREEA 3x3 area 2 tiles above the atom (trees love to be this shape)
SEE_THROUGH_MAP_DEFAULT_TWO_TALL2 tiles above the atom
SEE_THROUGH_MAP_THREE_X_TWOtwo rows of three tiles above the atom (small but thick trees love these)
SEE_THROUGH_MAP_BILLBOARDOne row of three tiles above the atom, but offset one tile to the left because of how billboards work
SEE_THROUGH_MAP_SHIPPING_CONTAINERTwo rows of three wide, but offset one tile to the left because thats how shipping containers work
SEE_THROUGH_MAP_RATVAR_WRECKSeethrough component for the ratvar wreck, in shape of the ratvar wreck

Define Details

SEE_THROUGH_MAP_BILLBOARD

One row of three tiles above the atom, but offset one tile to the left because of how billboards work

SEE_THROUGH_MAP_DEFAULT

Default shape. It's one tile above the atom

SEE_THROUGH_MAP_DEFAULT_TWO_TALL

2 tiles above the atom

SEE_THROUGH_MAP_RATVAR_WRECK

Seethrough component for the ratvar wreck, in shape of the ratvar wreck

SEE_THROUGH_MAP_SHIPPING_CONTAINER

Two rows of three wide, but offset one tile to the left because thats how shipping containers work

SEE_THROUGH_MAP_THREE_X_THREE

A 3x3 area 2 tiles above the atom (trees love to be this shape)

SEE_THROUGH_MAP_THREE_X_TWO

two rows of three tiles above the atom (small but thick trees love these)

\ No newline at end of file diff --git a/code/__HELPERS/sorts/helpers.html b/code/__HELPERS/sorts/helpers.html new file mode 100644 index 0000000000000..fc133bc7b29eb --- /dev/null +++ b/code/__HELPERS/sorts/helpers.html @@ -0,0 +1 @@ +code/__HELPERS/sorts/helpers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/sorts/helpers.dm

SORT_TIMSorts the list in place with timSort, default settings.
CREATE_SORT_INSTANCEHelper for the sorting procs. Prevents some code duplication. Creates /datum/sort_instance/sorter
/proc/sortTim
/proc/sortMerge
/proc/sortInsert

Define Details

CREATE_SORT_INSTANCE

Helper for the sorting procs. Prevents some code duplication. Creates /datum/sort_instance/sorter

SORT_TIM

Sorts the list in place with timSort, default settings.

\ No newline at end of file diff --git a/code/__HELPERS/spatial_info.html b/code/__HELPERS/spatial_info.html new file mode 100644 index 0000000000000..7a6c6d0276b35 --- /dev/null +++ b/code/__HELPERS/spatial_info.html @@ -0,0 +1,10 @@ +code/__HELPERS/spatial_info.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/spatial_info.dm

/mob/oranges_ear
/proc/get_hearers_in_viewreturns every hearaing movable in view to the turf of source not taking into account lighting +useful when you need to maintain always being able to hear something if a sound is emitted from it and you can see it (and youre in range). +otherwise this is just a more expensive version of get_hearers_in_LOS().
/proc/get_hearers_in_rangeThe exact same as get_hearers_in_view, but not limited by visibility. Does no filtering for traits, line of sight, or any other such criteria. +Filtering is intended to be done by whatever calls this function.
/proc/get_hearers_in_LOSReturns a list of movable atoms that are hearing sensitive in view_radius and line of sight to source +the majority of the work is passed off to the spatial grid if view_radius > 0 +because view() isnt a raycasting algorithm, this does not hold symmetry to it. something in view might not be hearable with this. +if you want that use get_hearers_in_view() - however thats significantly more expensive
/proc/inLineOfSightCalculate if two atoms are in sight, returns TRUE or FALSE
/proc/circle_rangeReturns all atoms present in a circle around the center
/proc/circle_viewReturns all atoms present in a circle around the center but uses view() instead of range() (Currently not used)
/proc/get_dist_euclideanReturns the distance between two atoms
/proc/circle_range_turfsReturns a list of turfs around a center based on RANGE_TURFS()
/proc/circle_view_turfsReturns a list of turfs around a center based on view()
/proc/border_diamond_range_turfsReturns the list of turfs around the outside of a center based on RANGE_TURFS()
/proc/slice_off_turfsReturns a slice of a list of turfs, defined by the ones that are inside the inner/outer angle's bounds
/proc/get_bbox_of_atomsGet a bounding box of a list of atoms.
/proc/get_hearLike view but bypasses luminosity check
/proc/get_open_turf_in_dirReturns the open turf next to the center in a specific direction
/proc/get_adjacent_open_turfsReturns a list with all the adjacent open turfs. Clears the list of nulls in the end.
/proc/get_adjacent_open_areasReturns a list with all the adjacent areas by getting the adjacent open turfs
/proc/get_areas_in_rangeReturns a list with the names of the areas around a center at a certain distance +Returns the local area if no distance is indicated +Returns an empty list if the center is null
/proc/get_adjacent_areasReturns a list of all areas that are adjacent to the center atom's area, clear the list of nulls at the end.
/proc/alone_in_areaChecks if the mob provided (must_be_alone) is alone in an area
/proc/turf_peelBehaves like the orange() proc, but only looks in the outer range of the function (The "peel" of the orange). +This is useful for things like checking if a mob is in a certain range, but not within a smaller range.
\ No newline at end of file diff --git a/code/__HELPERS/spawns.html b/code/__HELPERS/spawns.html new file mode 100644 index 0000000000000..2c29aeaa72b2f --- /dev/null +++ b/code/__HELPERS/spawns.html @@ -0,0 +1 @@ +code/__HELPERS/spawns.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/spawns.dm

/proc/podspawnOne proc for easy spawning of pods in the code to drop off items before whizzling (please don't proc call this in game, it will destroy you)
\ No newline at end of file diff --git a/code/__HELPERS/stack_trace.html b/code/__HELPERS/stack_trace.html new file mode 100644 index 0000000000000..294770e35d181 --- /dev/null +++ b/code/__HELPERS/stack_trace.html @@ -0,0 +1,2 @@ +code/__HELPERS/stack_trace.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/stack_trace.dm

/proc/_stack_tracegives us the stack trace from CRASH() without ending the current proc. +Do not call directly, use the stack_trace macro instead.
\ No newline at end of file diff --git a/code/__HELPERS/stoplag.html b/code/__HELPERS/stoplag.html new file mode 100644 index 0000000000000..3719889d2198a --- /dev/null +++ b/code/__HELPERS/stoplag.html @@ -0,0 +1 @@ +code/__HELPERS/stoplag.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/stoplag.dm

DELTA_CALCIncreases delay as the server gets more overloaded, as sleeps aren't cheap and sleeping only to wake up and sleep again is wasteful
/proc/stoplagreturns the number of ticks slept

Define Details

DELTA_CALC

Increases delay as the server gets more overloaded, as sleeps aren't cheap and sleeping only to wake up and sleep again is wasteful

\ No newline at end of file diff --git a/code/__HELPERS/string_lists.html b/code/__HELPERS/string_lists.html new file mode 100644 index 0000000000000..a88b54610708c --- /dev/null +++ b/code/__HELPERS/string_lists.html @@ -0,0 +1 @@ +code/__HELPERS/string_lists.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/string_lists.dm

/proc/string_listCaches lists with non-numeric stringify-able values (text or typepath).
/proc/baseturfs_string_listA wrapper for baseturf string lists, to offer support of non list values, and a stack_trace if we have major issues
\ No newline at end of file diff --git a/code/__HELPERS/text.html b/code/__HELPERS/text.html new file mode 100644 index 0000000000000..b1a09bbc4cc88 --- /dev/null +++ b/code/__HELPERS/text.html @@ -0,0 +1,3 @@ +code/__HELPERS/text.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/text.dm

/proc/sanitize_namereturns nothing with an alert instead of the message if it contains something in the ic filter, and sanitizes normally if the name is fine. It returns nothing so it backs out of the input the same way as if you had entered nothing.
/proc/sanitizeRuns byond's html encoding sanitization proc, after replacing new-lines and tabs for the # character.
/proc/strip_htmlRuns STRIP_HTML_SIMPLE and sanitize.
/proc/strip_html_fullRuns STRIP_HTML_FULL and sanitize.
/proc/adminscrubRuns STRIP_HTML_SIMPLE and byond's sanitization proc.
/proc/htmlrendertextPerform a whitespace cleanup on the text, similar to what HTML renderers do
/proc/reject_bad_textReturns the text if properly formatted, or null else.
/proc/stripped_inputUsed to get a properly sanitized input. Returns null if cancel is pressed.
/proc/stripped_multiline_inputUsed to get a properly sanitized input in a larger box. Works very similarly to stripped_input.
/proc/reject_bad_nameFilters out undesirable characters from names.
/proc/permissive_sanitize_nameMuch more permissive version of reject_bad_name(). +Returns a trimmed string or null if the name is invalid. +Allows most characters except for IC chat prohibited words.
/proc/filter_name_icHelper proc to check if a name is valid for the IC filter
/proc/truncateTruncate a string to the given length
/proc/full_capitalizeReturns a string with the first letter of each word capitialized
/proc/int_to_wordsTakes a 1, 2 or 3 digit number and returns it in words. Don't call this directly, use convert_integer_to_words() instead.
/proc/convert_integer_to_wordsTakes an integer up to 999,999,999 and returns it in words. Works with negative numbers and 0.
/proc/siunitFormats a number to human readable form with the appropriate SI unit.
/proc/siunit_pressure
/proc/scramble_message_replace_charsSlightly expensive proc to scramble a message using equal probabilities of character replacement from a list. DOES NOT SUPPORT HTML!
/proc/piglatin_sentenceruns piglatin_word() proc on each word in a sentence. preserves caps and punctuation
/proc/piglatin_wordtakes "word", and returns it piglatinized.
/proc/reject_bad_chattextThe procedure to check the text of the entered text on ntnrc_client.dm
/proc/format_textProperly format a string of text by using replacetext()
/proc/weight_class_to_textReturns a string based on the weight class define used as argument
/proc/sanitize_css_class_nameRemoves all non-alphanumerics from the text, keep in mind this can lead to id conflicts
/proc/semver_to_listConverts a semver string into a list of numbers
/proc/endswithReturns TRUE if the input_text ends with the ending
/proc/starts_with_anyReturns TRUE if the input_text starts with any of the beginnings
/proc/grawlixGenerate a grawlix string of length of the text argument.
\ No newline at end of file diff --git a/code/__HELPERS/time.html b/code/__HELPERS/time.html new file mode 100644 index 0000000000000..fd358f7c06520 --- /dev/null +++ b/code/__HELPERS/time.html @@ -0,0 +1,4 @@ +code/__HELPERS/time.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/time.dm

/proc/weekday_to_isoReturns a string day as an integer in ISO format 1 (Monday) - 7 (Sunday)
/proc/iso_to_weekdayReturns an integer in ISO format 1 (Monday) - 7 (Sunday) as a string day
/proc/day_of_monthReturns the day (mon, tues, wen...) in number format, 1 (monday) - 7 (sunday) from the passed in date (year, month, day) +All inputs are expected indexed at 1
/proc/time_to_twelve_hourConverts a time expressed in deciseconds (like world.time) to the 12-hour time format. +the format arg is the format passed down to time2text() (e.g. "hh:mm" is hours and minutes but not seconds). +the timezone is the time value offset from the local time. It's to be applied outside time2text() to get the AM/PM right.
\ No newline at end of file diff --git a/code/__HELPERS/traits.html b/code/__HELPERS/traits.html new file mode 100644 index 0000000000000..5938c185537dc --- /dev/null +++ b/code/__HELPERS/traits.html @@ -0,0 +1 @@ +code/__HELPERS/traits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/traits.dm

/proc/___TraitAddDO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
/proc/___TraitRemoveDO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
\ No newline at end of file diff --git a/code/__HELPERS/turfs.html b/code/__HELPERS/turfs.html new file mode 100644 index 0000000000000..c496fb54b4437 --- /dev/null +++ b/code/__HELPERS/turfs.html @@ -0,0 +1,18 @@ +code/__HELPERS/turfs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/turfs.dm

/proc/get_teleport_locReturns location. Returns null if no location was found.
/proc/get_atom_on_turfReturns the top-most atom sitting on the turf. +For example, using this on a disk, which is in a bag, on a mob, +will return the mob because it's on the turf.
/proc/get_edge_target_turfReturns the turf located at the map edge in the specified direction relative to target_atom used for mass driver
/proc/get_ranged_target_turf_directGet ranged target turf, but with direct targets as opposed to directions
/proc/get_offset_target_turfreturns turf relative to target_atom offset in dx and dy tiles, bound to map limits
/proc/get_turf_pixelLets the turf this atom's ICON appears to inhabit +it takes into account: +Pixel_x/y +Matrix x/y +NOTE: if your atom has non-standard bounds then this proc +will handle it, but: +if the bounds are even, then there are an even amount of "middle" turfs, the one to the EAST, NORTH, or BOTH is picked +this may seem bad, but you're at least as close to the center of the atom as possible, better than byond's default loc being all the way off) +if the bounds are odd, the true middle turf of the atom is returned
/proc/get_visual_offsetReturns how visually "off" the atom is from its source turf as a list of x, y (in pixel steps) +it takes into account: +Pixel_x/y +Matrix x/y +Icon width/height
/proc/pixel_offset_turfTakes a turf, and a list of x and y pixel offsets and returns the turf that the offset position best lands in
/proc/parse_caught_click_modifiersReturns a turf based on text inputs, original turf and viewing client
/proc/screen_loc_to_turfAlmost identical to the params_to_turf(), but unused (remove?)
/proc/spiral_range_turfssimilar function to RANGE_TURFS(), but will search spiralling outwards from the center (like the above, but only turfs)
/proc/get_random_station_turfReturns a random turf on the station
/proc/get_safe_random_station_turfReturns a random turf on the station, excludes dense turfs (like walls) and areas that have valid_territory set to FALSE
/proc/valid_build_directionChecks whether the target turf is in a valid state to accept a directional construction +such as windows or railings.
/proc/is_type_on_turfChecks whether or not a particular typepath or subtype of it is present on a turf
/proc/get_blueprint_dataget_blueprint_data +Gets a list of turfs around a central turf and gets the blueprint data in a list +Args:
\ No newline at end of file diff --git a/code/__HELPERS/type2type.html b/code/__HELPERS/type2type.html new file mode 100644 index 0000000000000..54d468f9b56d4 --- /dev/null +++ b/code/__HELPERS/type2type.html @@ -0,0 +1,2 @@ +code/__HELPERS/type2type.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/type2type.dm

/proc/dir2offsetReturns a list(x, y), being the change in position required to step in the passed in direction
/proc/body_zone2cover_flagsFor finding out what body parts a body zone covers, the inverse of the below basically
/proc/url2htmlloaderReturn html to load a url. +for use inside of browse() calls to html assets that might be loaded on a cdn.
\ No newline at end of file diff --git a/code/__HELPERS/varset_callback.html b/code/__HELPERS/varset_callback.html new file mode 100644 index 0000000000000..6f512d6190845 --- /dev/null +++ b/code/__HELPERS/varset_callback.html @@ -0,0 +1,3 @@ +code/__HELPERS/varset_callback.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/varset_callback.dm

VARSET_WEAK_CALLBACKSame as VARSET_CALLBACK, but uses a weakref to the datum. +Use this if the timer is exceptionally long.

Define Details

VARSET_WEAK_CALLBACK

Same as VARSET_CALLBACK, but uses a weakref to the datum. +Use this if the timer is exceptionally long.

\ No newline at end of file diff --git a/code/__HELPERS/verbs.html b/code/__HELPERS/verbs.html new file mode 100644 index 0000000000000..2b8cbab18bd88 --- /dev/null +++ b/code/__HELPERS/verbs.html @@ -0,0 +1 @@ +code/__HELPERS/verbs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/verbs.dm

/proc/add_verbhandles adding verbs and updating the stat panel browser
/proc/remove_verbhandles removing verb and sending it to browser to update, use this for removing verbs
\ No newline at end of file diff --git a/code/__HELPERS/view.html b/code/__HELPERS/view.html new file mode 100644 index 0000000000000..4a14d7e80f055 --- /dev/null +++ b/code/__HELPERS/view.html @@ -0,0 +1,7 @@ +code/__HELPERS/view.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/view.dm

/proc/view_to_pixelsTakes a string or num view, and converts it to pixel width/height in a list(pixel_width, pixel_height)
DEFAULT_SIGHT_DISTANCEFrustrated with bugs in can_see(), this instead uses viewers for a much more effective approach.
CAN_I_SEEBasic check to see if the src object can see the target object.
CAN_THEY_SEEChecks the visibility between two other objects.
CAN_SEE_RANGEDFurther checks distance between source and target.

Define Details

CAN_I_SEE

Basic check to see if the src object can see the target object.

CAN_SEE_RANGED

Further checks distance between source and target.

CAN_THEY_SEE

Checks the visibility between two other objects.

DEFAULT_SIGHT_DISTANCE

Frustrated with bugs in can_see(), this instead uses viewers for a much more effective approach.

+

Things to note:

+
\ No newline at end of file diff --git a/code/__HELPERS/visual_effects.html b/code/__HELPERS/visual_effects.html new file mode 100644 index 0000000000000..e3417dd860c5b --- /dev/null +++ b/code/__HELPERS/visual_effects.html @@ -0,0 +1,9 @@ +code/__HELPERS/visual_effects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/visual_effects.dm

DO_FLOATING_ANIMCauses the passed atom / image to appear floating, +playing a simple animation where they move up and down by 2 pixels (looping)
STOP_FLOATING_ANIMStops the passed atom / image from appearing floating +(Living mobs also have a 'body_position_pixel_y_offset' variable that has to be taken into account here)
UPDATE_TRANSFORM_ANIMATION_TIMEThe duration of the animate call in mob/living/update_transform

Define Details

DO_FLOATING_ANIM

Causes the passed atom / image to appear floating, +playing a simple animation where they move up and down by 2 pixels (looping)

+

In most cases you should NOT call this manually, instead use /datum/element/movetype_handler! +This is just so you can apply the animation to things which can be animated but are not movables (like images)

STOP_FLOATING_ANIM

Stops the passed atom / image from appearing floating +(Living mobs also have a 'body_position_pixel_y_offset' variable that has to be taken into account here)

+

In most cases you should NOT call this manually, instead use /datum/element/movetype_handler! +This is just so you can apply the animation to things which can be animated but are not movables (like images)

UPDATE_TRANSFORM_ANIMATION_TIME

The duration of the animate call in mob/living/update_transform

\ No newline at end of file diff --git a/code/__HELPERS/weakref.html b/code/__HELPERS/weakref.html new file mode 100644 index 0000000000000..c6c955510264f --- /dev/null +++ b/code/__HELPERS/weakref.html @@ -0,0 +1 @@ +code/__HELPERS/weakref.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__HELPERS/weakref.dm

IS_WEAKREF_OFChecks if potential_weakref is a weakref of thing.

Define Details

IS_WEAKREF_OF

Checks if potential_weakref is a weakref of thing.

\ No newline at end of file diff --git a/code/__HELPERS/~skyrat_helpers/logging.html b/code/__HELPERS/~skyrat_helpers/logging.html new file mode 100644 index 0000000000000..70fdcb211dfcd --- /dev/null +++ b/code/__HELPERS/~skyrat_helpers/logging.html @@ -0,0 +1 @@ +code/__HELPERS/~skyrat_helpers/logging.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/~skyrat_helpers/logging.dm

/proc/log_subtleThis logs subtle emotes in game.log
/proc/log_subtlerThis logs subtler emotes in game.log, if the conflig flag in config\skyrat\skyrat_config.txt is true.
/proc/log_creatorThis logs character creator changes in debug.log
/proc/log_borer_evolutionLogging for borer evolutions
\ No newline at end of file diff --git a/code/__HELPERS/~skyrat_helpers/unsorted.html b/code/__HELPERS/~skyrat_helpers/unsorted.html new file mode 100644 index 0000000000000..62d053234391d --- /dev/null +++ b/code/__HELPERS/~skyrat_helpers/unsorted.html @@ -0,0 +1 @@ +code/__HELPERS/~skyrat_helpers/unsorted.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/__HELPERS/~skyrat_helpers/unsorted.dm

/proc/get_hearers_in_looc_range
/proc/is_factual_sprite_accessoryThis will check if SSaccessories.sprite_accessories[mutant_part]?[part_name] is associated with sprite accessory with factual TRUE.
\ No newline at end of file diff --git a/code/__byond_version_compat.html b/code/__byond_version_compat.html new file mode 100644 index 0000000000000..b3c3c3f9fb86b --- /dev/null +++ b/code/__byond_version_compat.html @@ -0,0 +1 @@ +code/__byond_version_compat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/__byond_version_compat.dm

PROC_REFCall by name proc references, checks if the proc exists on either this type () (AND ONLY THIS TYPE) or as a global proc.
VERB_REFCall by name verb references, checks if the verb exists on either this type or as a global verb.
TYPE_PROC_REFCall by name proc reference, checks if the proc exists on either the given type or as a global proc
TYPE_VERB_REFCall by name verb reference, checks if the verb exists on either the given type or as a global verb
GLOBAL_PROC_REFCall by name proc reference, checks if the proc is an existing global proc

Define Details

GLOBAL_PROC_REF

Call by name proc reference, checks if the proc is an existing global proc

PROC_REF

Call by name proc references, checks if the proc exists on either this type () (AND ONLY THIS TYPE) or as a global proc.

TYPE_PROC_REF

Call by name proc reference, checks if the proc exists on either the given type or as a global proc

TYPE_VERB_REF

Call by name verb reference, checks if the verb exists on either the given type or as a global verb

VERB_REF

Call by name verb references, checks if the verb exists on either this type or as a global verb.

\ No newline at end of file diff --git a/code/_compile_options.html b/code/_compile_options.html new file mode 100644 index 0000000000000..941c8d26cda3c --- /dev/null +++ b/code/_compile_options.html @@ -0,0 +1,19 @@ +code/_compile_options.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/_compile_options.dm

PRELOAD_RSCIf this is uncommented, we set up the ref tracker to be used in a live environment +And to log events to [log_dir]/harddels.log +Sets up the reftracker to be used locally, to hunt for hard deletions +Errors are logged to [log_dir]/harddels.log +If this is uncommented, Autowiki will generate edits and shut down the server. +Prefer the autowiki build target instead. +If this is uncommented, will profile mapload atom initializations +If this is uncommented, force our verb processing into just the 2% of a tick +We normally reserve for it +NEVER run this on live, it's for simulating highpop only

Define Details

PRELOAD_RSC

If this is uncommented, we set up the ref tracker to be used in a live environment +And to log events to [log_dir]/harddels.log +Sets up the reftracker to be used locally, to hunt for hard deletions +Errors are logged to [log_dir]/harddels.log +If this is uncommented, Autowiki will generate edits and shut down the server. +Prefer the autowiki build target instead. +If this is uncommented, will profile mapload atom initializations +If this is uncommented, force our verb processing into just the 2% of a tick +We normally reserve for it +NEVER run this on live, it's for simulating highpop only

\ No newline at end of file diff --git a/code/_globalvars/bitfields.html b/code/_globalvars/bitfields.html new file mode 100644 index 0000000000000..fa0596138f696 --- /dev/null +++ b/code/_globalvars/bitfields.html @@ -0,0 +1 @@ +code/_globalvars/bitfields.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_globalvars/bitfields.dm

/datum/bitfieldSpecifies a bitfield for smarter debugging
/proc/generate_bitfieldsTurns /datum/bitfield subtypes into a list for use in debugging
\ No newline at end of file diff --git a/code/_globalvars/lighting.html b/code/_globalvars/lighting.html new file mode 100644 index 0000000000000..c6dac7a8929e6 --- /dev/null +++ b/code/_globalvars/lighting.html @@ -0,0 +1 @@ +code/_globalvars/lighting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_globalvars/lighting.dm

/datum/light_templateLight templates. They describe how a light looks, and links that to names/icons that can be used when templating/debugging
/datum/light_template/read_lightTemplate that reads info off a light subtype
\ No newline at end of file diff --git a/code/_globalvars/lists/canisters.html b/code/_globalvars/lists/canisters.html new file mode 100644 index 0000000000000..7908043ece7cc --- /dev/null +++ b/code/_globalvars/lists/canisters.html @@ -0,0 +1 @@ +code/_globalvars/lists/canisters.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_globalvars/lists/canisters.dm

/proc/init_gas_id_to_canisterReturns a map of canister id to its type path
\ No newline at end of file diff --git a/code/_globalvars/lists/keybindings.html b/code/_globalvars/lists/keybindings.html new file mode 100644 index 0000000000000..e8e432835ca82 --- /dev/null +++ b/code/_globalvars/lists/keybindings.html @@ -0,0 +1 @@ +code/_globalvars/lists/keybindings.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_globalvars/lists/keybindings.dm

/proc/init_keybindingsCreates and sorts all the keybinding datums
/proc/add_keybindingAdds an instanced keybinding to the global tracker
\ No newline at end of file diff --git a/code/_globalvars/lists/reagents.html b/code/_globalvars/lists/reagents.html new file mode 100644 index 0000000000000..e211016263523 --- /dev/null +++ b/code/_globalvars/lists/reagents.html @@ -0,0 +1,6 @@ +code/_globalvars/lists/reagents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_globalvars/lists/reagents.dm

/proc/init_chemical_reagent_listInitialises all /datum/reagent into a list indexed by reagent id
/proc/build_chemical_reactions_listsChemical Reactions - Initialises all /datum/chemical_reaction into a list +It is filtered into multiple lists within a list. +For example: +chemical_reactions_list_reactant_index/datum/reagent/toxin/plasma is a list of all reactions relating to plasma +For chemical reaction list product index - indexes reactions based off the product reagent type - see get_recipe_from_reagent_product() in helpers +For chemical reactions list lookup list - creates a bit list of info passed to the UI. This is saved to reduce lag from new windows opening, since it's a lot of data.
/proc/build_name2reagentlistBuilds map of reagent name to its datum path
\ No newline at end of file diff --git a/code/_globalvars/logging.html b/code/_globalvars/logging.html new file mode 100644 index 0000000000000..76f4bd5d89ab8 --- /dev/null +++ b/code/_globalvars/logging.html @@ -0,0 +1,2 @@ +code/_globalvars/logging.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_globalvars/logging.dm

/proc/add_to_signaler_investigate_logUsed to add a text log to the signaler investigation log. +Do not add to the list directly; if the list is too large it can cause lag when an admin tries to view it.
\ No newline at end of file diff --git a/code/_globalvars/phobias.html b/code/_globalvars/phobias.html new file mode 100644 index 0000000000000..6f2be8ca3aca6 --- /dev/null +++ b/code/_globalvars/phobias.html @@ -0,0 +1,3 @@ +code/_globalvars/phobias.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_globalvars/phobias.dm

/proc/construct_phobia_regexCreates a regular expression to match against the given phobia +Capture group 2 = the scary word +Capture group 3 = an optional suffix on the scary word
\ No newline at end of file diff --git a/code/_globalvars/religion.html b/code/_globalvars/religion.html new file mode 100644 index 0000000000000..44be36a643468 --- /dev/null +++ b/code/_globalvars/religion.html @@ -0,0 +1 @@ +code/_globalvars/religion.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_globalvars/religion.dm

/proc/set_new_religious_sectSets a new religious sect used by all chaplains int he round
/proc/reset_religious_sectRemoves any existing religious sect from chaplains, allowing another to be selected
\ No newline at end of file diff --git a/code/_onclick/drag_drop.html b/code/_onclick/drag_drop.html new file mode 100644 index 0000000000000..bd09b7aef59e1 --- /dev/null +++ b/code/_onclick/drag_drop.html @@ -0,0 +1,5 @@ +code/_onclick/drag_drop.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/_onclick/drag_drop.dm

LENIENCY_DISTANCEDistance in pixels that we consider "acceptable" from the initial click to the release +Note: this does not account for the position of the object, just where it is on the screen
LENIENCY_TIMEAccepted time in seconds between the initial click and drag release +Go higher then this and we just don't care anymore

Define Details

LENIENCY_DISTANCE

Distance in pixels that we consider "acceptable" from the initial click to the release +Note: this does not account for the position of the object, just where it is on the screen

LENIENCY_TIME

Accepted time in seconds between the initial click and drag release +Go higher then this and we just don't care anymore

\ No newline at end of file diff --git a/code/_onclick/hud/action_button.html b/code/_onclick/hud/action_button.html new file mode 100644 index 0000000000000..b5f87d8e04abf --- /dev/null +++ b/code/_onclick/hud/action_button.html @@ -0,0 +1 @@ +code/_onclick/hud/action_button.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_onclick/hud/action_button.dm

/atom/movable/screen/action_landingExists so you have a place to put your buttons when you move them around
\ No newline at end of file diff --git a/code/_onclick/hud/alert.html b/code/_onclick/hud/alert.html new file mode 100644 index 0000000000000..cb7b8cb0c8ea0 --- /dev/null +++ b/code/_onclick/hud/alert.html @@ -0,0 +1 @@ +code/_onclick/hud/alert.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_onclick/hud/alert.dm

/atom/movable/screen/alert/succumbGives the player the option to succumb while in critical condition
\ No newline at end of file diff --git a/code/_onclick/hud/map_popups.html b/code/_onclick/hud/map_popups.html new file mode 100644 index 0000000000000..7f2a29d581985 --- /dev/null +++ b/code/_onclick/hud/map_popups.html @@ -0,0 +1,3 @@ +code/_onclick/hud/map_popups.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_onclick/hud/map_popups.dm

/atom/movable/screen/backgroundA generic background object. +It is also implicitly used to allocate a rectangle on the map, which will +be used for auto-scaling the map.
\ No newline at end of file diff --git a/code/_onclick/hud/parallax/random_layer.html b/code/_onclick/hud/parallax/random_layer.html new file mode 100644 index 0000000000000..1c44866fd3c13 --- /dev/null +++ b/code/_onclick/hud/parallax/random_layer.html @@ -0,0 +1 @@ +code/_onclick/hud/parallax/random_layer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_onclick/hud/parallax/random_layer.dm

/atom/movable/screen/parallax_layer/randomParallax layers that vary between rounds. Has some code to make sure we all have the same one
/atom/movable/screen/parallax_layer/random/space_gasGassy background with a few random colors
/atom/movable/screen/parallax_layer/random/space_gas/radioactiveSpace gas but green for the radioactive nebula station trait
/atom/movable/screen/parallax_layer/random/asteroidsBig asteroid rocks appear in the background
\ No newline at end of file diff --git a/code/_onclick/hud/radial.html b/code/_onclick/hud/radial.html new file mode 100644 index 0000000000000..531045d6987c4 --- /dev/null +++ b/code/_onclick/hud/radial.html @@ -0,0 +1 @@ +code/_onclick/hud/radial.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_onclick/hud/radial.dm

/datum/radial_menu_choiceCan be provided to choices in radial menus if you want to provide more information
\ No newline at end of file diff --git a/code/_onclick/hud/rendering/_render_readme.html b/code/_onclick/hud/rendering/_render_readme.html new file mode 100644 index 0000000000000..a6d1f186e220f --- /dev/null +++ b/code/_onclick/hud/rendering/_render_readme.html @@ -0,0 +1,41 @@ +code/_onclick/hud/rendering/_render_readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

The Render Readme

    +
  1. Byond internal functionality
  2. +
  3. Known internal snowflake
  4. +
  5. The rendering solution
  6. +
  7. Render plates
  8. +
+

Byond internal functionality

+

This part of the guide will assume that you have read the byond reference entry for rendering at www.byond.com/docs/ref//#/{notes}/renderer

+

When you create an atom, this will always create an internal byond structure called an "appearance". This appearance you will likely be familiar with, as it is exposed through the /atom/var/appearance var. This appearance var holds data on how to render the object, ie what icon/icon_state/color etc it is using. Note that appearance vars will always copy, and do not hold a reference. When you update a var, for example lets pretend we add a filter, the appearance will be updated to include the filter. Note that, however, vis_contents objets are uniquely excluded from appearances. Then, when the filter is updated, the appearance will be recreated, and the atom marked as "dirty". After it has been updated, the SendMaps() function (sometimes also called maptick), which is a internal byond function that iterates over all objects in a clients view and in the clients.mob.contents, checks for "dirty" atoms, then resends any "dirty" appearances to clients as needed and unmarks them as dirty. This function is notoriously slow, but we can see its tick usage through the world.map_cpu var. We can also avoid more complex checks checking whether an object is visible on a clients screen by using the TILE_BOUND appearance flag.

+

Finally, we arrive at clientside behavior, where we have two main clientside functions: GetMapIcons, and Render. GetMapIcons is responsible for actual rendering calculations on the clientside, such as "Group Icons and Set bounds", which performs clientside calculations for transform matrixes. Note that particles here are handled in a separate thread and are not displayed in the clientside profiler. Render handles the actual drawing of the screen.

+

For debugging rendering issues its recommended you do two things: +A) Talk to someone who has inside knowledge(like lummox) about it, most of this is undocumented and bugs often +B) Use the undocumented debug printer which reads of data on icons rendering, this is very dense but can be useful in some cases. To use: Right click top tab -> Options & Messages -> Client -> Command -> Enter ".debug profile mapicons" and press Enter -> go to your Byond directory and find BYOND/cfg/mapicons.json . Yes this is one giant one-line json.

+

Known internal snowflake

+

The following is an incomplete list of pitfalls that come from byond snowflake that are known, this list is obviously incomplete.

+
    +
  1. Transforms are very slow on clientside. This is not usually noticable, but if you start using large amounts of them it will grind you to a halt quickly, regardless of whether its on overlays or objs
  2. +
  3. The darkness plane. This is unused, as it doesn't work with our rendering format, so this section is purely academic. The darkness plane has specific variables it needs to render correctly, and these can be found in the plane masters file. it is composed internally of two parts, a black mask over the clients screen, and a non rendering mask that blocks all luminosity=0 turfs and their contents from rendering if the SEE_BLACKNESS flag is set properly. The blocker will always block rendering but the mask can be layered under other objects.
  4. +
  5. render_target/source. Render_target/source will only copy certain rendering instructions, and these are only defined as "etc." in the byond reference. Known non copied appearance vars include: blend_mode, plane, layer, vis_contents, mouse_opacity...
  6. +
  7. Large icons on the screen that peek over the edge will instead of only rendering partly like you would expect will instead stretch the screen while not adjusting the render buffer, which means that you can actively see as tiles and map objects are rendered. You can use this for an easy "offscreen" UI.
  8. +
  9. Numerically large filters on objects of any size will torpedo performance, even though large objects with small filters will perform massively better. (ie blur(size=20) BAD)
  10. +
  11. Texture Atlas: the texture atlas byond uses to render icons is very susceptible to corruption and can regularly replace icons with other icons or just not render at all. This can be exasperated by alt tabbing or pausing the dreamseeker process.
  12. +
  13. The renderer is awful code and lummox said he will try changing a large part of it for 515 so keep an eye on that
  14. +
  15. Byond uses DirectX 9 (Lummox said he wants to update to DirectX 11)
  16. +
  17. Particles are just fancy overlays and are not independent of their owner
  18. +
  19. Maptick items inside mob.contents are cheaper compared to most other movables
  20. +
  21. Displacement filter: The byond "displacement filter" does not, as the name would make you expect, use displacement maps, but instead uses normal maps.
  22. +
+

The rendering solution

+

One of the main issues with making pretty effects is how objects can only render to one plane, and how filters can only be applied to single objects. Quite simply it means we can't apply effects to multiple planes at once, and an effect to one plane only by treating it as a single unit:

+

+

A semi-fix to stop from having to apply effects to every single plane is to use the render controllers, to automatically apply filters and colors automatically onto their controlled planes.

+

The solution is thus instead we replace plane masters rendering directly to client with planes that render multiple planes onto them as objects in order to be able to affect multiple planes while treating them as a single object. This is done by relaying the plane using a "render relay" onto a "render plate" which acts as a plane master of plane masters of sorts, and since planes are rendered onto it as single objects any filters we apply to them will render over the planes, treating them as a single unit.

+

+

We can also choose to render these by decreasing the scaling all applied effects (effect_size/number_of_plates_rendered_to) then rendering it onto multiple planes:

+

+

Through these this allows us to treat planes as single objects, and lets us distort them as a single unit, most notably works wonders with the displacement filter. Specifically, here you can displacement_filter a plane onto a plate, which then will treat all the other planes rendered on that plate as a single unit.

+

Render plates

+

The rendering system uses two objects to unify planes: render_relay and render_plates. Render relays use render_target/source and the relay_render_to_plane proc to replicate the plane master on the render relay. This render relay is then rendered onto a render_plate, which is a plane master that renders the render_relays onto itself. This plate can then be hierarchically rendered with the same process until it reaches the master render_plate, which is the plate that will actually render to the player. These plates naturally in the byond style have quirks. For example, rendering to two plates will double any effects such as color or filters, and as such you need to carefully manage how you render them. Keep in mind as well that when sorting the layers for rendering on a plane that they should not be negative, this is handled automatically in relay_render_to_plane. When debugging note that mouse_opacity can act bizarrely with this method, such as only allowing you to click things that are layered over objects on a certain plane but automatically setting the mouse_opacity should be handling this. Note that if you decide to manipulate a plane with internal byond objects that you will have to manually extrapolate the vars that are set if you want to render them to another plane (See blackness plane for example), and that this is not documented anywhere.

+

Good luck and godspeed with coding +- Just another contributor

\ No newline at end of file diff --git a/code/_onclick/hud/rendering/plane_master_controller.html b/code/_onclick/hud/rendering/plane_master_controller.html new file mode 100644 index 0000000000000..8e66275283fe2 --- /dev/null +++ b/code/_onclick/hud/rendering/plane_master_controller.html @@ -0,0 +1,4 @@ +code/_onclick/hud/rendering/plane_master_controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_onclick/hud/rendering/plane_master_controller.dm

/atom/movable/plane_master_controllerAtom that manages and controls multiple planes. It's an atom so we can hook into add_filter etc. Multiple controllers can control one plane. +Of note: plane master controllers are currently not very extensively used, because render plates fill a semi similar niche +This could well change someday, and I'd like to keep this stuff around, so we use it for a few cases just out of convenience
/atom/movable/plane_master_controller/gameExists for convienience when referencing all game render plates
/atom/movable/plane_master_controller/non_masterExists for convienience when referencing all non-master render plates. +This is the whole game and the UI, but not the escape menu.
/atom/movable/plane_master_controller/colorblindExists for convienience when referencing all game render plates
\ No newline at end of file diff --git a/code/_onclick/hud/rendering/plane_master_group.html b/code/_onclick/hud/rendering/plane_master_group.html new file mode 100644 index 0000000000000..d841f8d6de9da --- /dev/null +++ b/code/_onclick/hud/rendering/plane_master_group.html @@ -0,0 +1,8 @@ +code/_onclick/hud/rendering/plane_master_group.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/_onclick/hud/rendering/plane_master_group.dm

/datum/plane_master_groupDatum that represents one "group" of plane masters +So all the main window planes would be in one, all the spyglass planes in another +Etc
/datum/plane_master_group/popupHolds plane masters for popups, like camera windows +Note: We do not scale this plane, even though we could +This is because it's annoying to get turfs to position inside it correctly +If you wanna try someday feel free, but I can't manage it
MAX_CLIENT_BUILD_WITH_WORKING_SECONDARY_MAPSThis is janky as hell but since something changed with CENTER positioning after build 1614 we have to switch to the bandaid LEFT,TOP positioning +using LEFT,TOP at or before 1614 will result in another broken offset for cameras
/datum/plane_master_group/mainHolds the main plane master
/datum/plane_master_group/hudlessHudless group. Exists for testing

Define Details

MAX_CLIENT_BUILD_WITH_WORKING_SECONDARY_MAPS

This is janky as hell but since something changed with CENTER positioning after build 1614 we have to switch to the bandaid LEFT,TOP positioning +using LEFT,TOP at or before 1614 will result in another broken offset for cameras

\ No newline at end of file diff --git a/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.html b/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.html new file mode 100644 index 0000000000000..b573edab0affa --- /dev/null +++ b/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.html @@ -0,0 +1,5 @@ +code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm

/atom/movable/screen/plane_master/parallaxContains space parallax
/atom/movable/screen/plane_master/floorContains just the floor
/atom/movable/screen/plane_master/defaultPlane master that byond will by default draw to +Shouldn't be used, exists to prevent people using plane 0 +NOTE: If we used SEE_BLACKNESS on a map format that wasn't SIDE_MAP, this is where its darkness would land +This would allow us to control it and do fun things. But we can't because side map doesn't support it, so this is just a stub
/atom/movable/screen/plane_master/turf_lightingContains all turf lighting
/atom/movable/screen/plane_master/o_light_visualThis will not work through multiz, because of a byond bug with BLEND_MULTIPLY +Bug report is up, waiting on a fix
/atom/movable/screen/plane_master/emissiveHandles emissive overlays and emissive blockers.
\ No newline at end of file diff --git a/code/_onclick/hud/rendering/render_plate.html b/code/_onclick/hud/rendering/render_plate.html new file mode 100644 index 0000000000000..93fbd85074f44 --- /dev/null +++ b/code/_onclick/hud/rendering/render_plate.html @@ -0,0 +1,10 @@ +code/_onclick/hud/rendering/render_plate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_onclick/hud/rendering/render_plate.dm

Custom rendering solution to allow for advanced effects +We (ab)use plane masters and render source/target to cheaply render 2+ planes as 1 +if you want to read more read the _render_readme.md

/atom/movable/render_plane_relayRender relay object assigned to a plane master to be able to relay its render onto other planes that are not its own
/atom/movable/screen/plane_master/rendering_plate
/atom/movable/screen/plane_master/rendering_plate/masterthis plate renders the final screen to show to the player
/atom/movable/screen/plane_master/rendering_plate/game_platerenders general in charachter game objects
/atom/movable/screen/plane_master/rendering_plate/unmasked_game_platerenders the parts of the plate unmasked by fov
/atom/movable/screen/plane_master/rendering_plate/masked_game_platerenders the parts of the plate masked by fov
/atom/movable/screen/plane_master/rendering_plate/game_worldContains most things in the game world
/atom/movable/screen/plane_master/rendering_plate/lightingContains all lighting objects

This system works by exploiting BYONDs color matrix filter to use layers to handle emissive blockers.

+

Emissive overlays are pasted with an atom color that converts them to be entirely some specific color. +Emissive blockers are pasted with an atom color that converts them to be entirely some different color. +Emissive overlays and emissive blockers are put onto the same plane. +The layers for the emissive overlays and emissive blockers cause them to mask eachother similar to normal BYOND objects. +A color matrix filter is applied to the emissive plane to mask out anything that isn't whatever the emissive color is. +This is then used to alpha mask the lighting plane.

+
/atom/movable/screen/plane_master/rendering_plate/non_gamerender plate for OOC stuff like ghosts, hud-screen effects, etc
\ No newline at end of file diff --git a/code/_onclick/hud/screen_object_holder.html b/code/_onclick/hud/screen_object_holder.html new file mode 100644 index 0000000000000..fee4521857371 --- /dev/null +++ b/code/_onclick/hud/screen_object_holder.html @@ -0,0 +1,2 @@ +code/_onclick/hud/screen_object_holder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_onclick/hud/screen_object_holder.dm

/datum/screen_object_holderA helper instance that will handle adding objects from the client's screen +to easily remove from later.
\ No newline at end of file diff --git a/code/_onclick/hud/screen_objects.html b/code/_onclick/hud/screen_objects.html new file mode 100644 index 0000000000000..c7ad909d73227 --- /dev/null +++ b/code/_onclick/hud/screen_objects.html @@ -0,0 +1 @@ +code/_onclick/hud/screen_objects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/_onclick/hud/screen_objects.dm

/atom/movable/screen/textUI obj holders for all your maptext needs
\ No newline at end of file diff --git a/code/controllers/configuration/config_entry.html b/code/controllers/configuration/config_entry.html new file mode 100644 index 0000000000000..a85a47626aeda --- /dev/null +++ b/code/controllers/configuration/config_entry.html @@ -0,0 +1 @@ +code/controllers/configuration/config_entry.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/configuration/config_entry.dm

/datum/config_entry/str_listList config entry, used for configuring a list of strings
\ No newline at end of file diff --git a/code/controllers/configuration/entries/dbconfig.html b/code/controllers/configuration/entries/dbconfig.html new file mode 100644 index 0000000000000..15bf953b14c0c --- /dev/null +++ b/code/controllers/configuration/entries/dbconfig.html @@ -0,0 +1,2 @@ +code/controllers/configuration/entries/dbconfig.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/configuration/entries/dbconfig.dm

/datum/config_entry/string/db_daemonThe exe for mariadbd.exe. +Shouldn't really be set on production servers, primarily for EZDB.
\ No newline at end of file diff --git a/code/controllers/configuration/entries/game_options.html b/code/controllers/configuration/entries/game_options.html new file mode 100644 index 0000000000000..c1f67cdcf60b2 --- /dev/null +++ b/code/controllers/configuration/entries/game_options.html @@ -0,0 +1,3 @@ +code/controllers/configuration/entries/game_options.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/configuration/entries/game_options.dm

/datum/config_entry/number/traitor_ideal_player_countDetermines the ideal player count for maximum progression per minute.
/datum/config_entry/number/traitor_scaling_multiplierDetermines how fast traitors scale in general.
/datum/config_entry/number/maximum_potential_objectivesDetermines how many potential objectives a traitor can have.
/datum/config_entry/number/outdated_movedelayOutdated move delay
/datum/config_entry/keyed_list/gateway_delays_by_idAn override to gateway_delay for specific maps or start points
/datum/config_entry/flag/silicon_asimov_superiority_overrideControls if Asimov Superiority appears as a perk for humans even if standard Asimov isn't the default AI lawset
/datum/config_entry/flag/disable_quirk_pointsDisables Quirk point balancing for the server and clients.
/datum/config_entry/number/max_positive_quirksThe maximum amount of positive quirks one character can have at roundstart.
/datum/config_entry/number/random_loot_weight_modifierA config that skews with the random spawners weights +If the value is lower than 1, it'll tend to even out the odds +If higher than 1, it'll lean toward common spawns even more.
\ No newline at end of file diff --git a/code/controllers/configuration/entries/general.html b/code/controllers/configuration/entries/general.html new file mode 100644 index 0000000000000..abf237bf9354e --- /dev/null +++ b/code/controllers/configuration/entries/general.html @@ -0,0 +1,5 @@ +code/controllers/configuration/entries/general.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/configuration/entries/general.dm

/datum/config_entry/flag/autoadminif autoadmin is enabled
/datum/config_entry/string/autoadmin_rankthe rank given to autoadmins
/datum/config_entry/string/servernameserver name (the name of the game window)
/datum/config_entry/string/serversqlnameshort form server name used for the DB
/datum/config_entry/string/stationnamestation name (the name of the station in-game)
/datum/config_entry/number/lobby_countdownCountdown between lobby and the round starting.
/datum/config_entry/number/round_end_countdownPost round murder death kill countdown.
/datum/config_entry/flag/hubif the game appears on the hub or not
/datum/config_entry/number/max_hub_popPop requirement for the server to be removed from the hub
/datum/config_entry/flag/log_ooclog messages sent in OOC
/datum/config_entry/flag/log_accesslog login/logout
/datum/config_entry/flag/log_suspicious_loginConfig entry which special logging of failed logins under suspicious circumstances.
/datum/config_entry/flag/log_saylog client say
/datum/config_entry/flag/log_adminlog admin actions
/datum/config_entry/flag/log_prayerlog prayers
/datum/config_entry/flag/log_internet_requestLog Music Requests
/datum/config_entry/flag/log_siliconlog silicons
/datum/config_entry/flag/log_toolslog usage of tools
/datum/config_entry/flag/log_gamelog game events
/datum/config_entry/flag/log_mechalog mech data
/datum/config_entry/flag/log_viruslog virology data
/datum/config_entry/flag/log_assetlog assets
/datum/config_entry/flag/log_votelog voting
/datum/config_entry/flag/log_zone_switchlog manual zone switching
/datum/config_entry/flag/log_whisperlog client whisper
/datum/config_entry/flag/log_attacklog attack messages
/datum/config_entry/flag/log_emotelog emotes
/datum/config_entry/flag/log_econlog economy actions
/datum/config_entry/flag/log_traitorlog traitor objectives
/datum/config_entry/flag/log_adminchatlog admin chat messages
/datum/config_entry/flag/log_pdalog pda messages
/datum/config_entry/flag/log_uplinklog uplink/spellbook/codex ciatrix purchases and refunds
/datum/config_entry/flag/log_telecommslog telecomms messages
/datum/config_entry/flag/log_speech_indicatorslog speech indicators(started/stopped speaking)
/datum/config_entry/flag/log_twitterlog certain expliotable parrots and other such fun things in a JSON file of twitter valid phrases.
/datum/config_entry/flag/log_world_topiclog all world.Topic() calls
/datum/config_entry/flag/log_manifestlog crew manifest to separate file
/datum/config_entry/flag/log_job_debuglog roundstart divide occupations debug information to a file
/datum/config_entry/flag/log_shuttlelog shuttle related actions, ie shuttle computers, shuttle manipulator, emergency console
/datum/config_entry/flag/log_timers_on_bucket_resetlogs all timers in buckets on automatic bucket reset (Useful for timer debugging)
/datum/config_entry/flag/log_as_human_readableLog human readable versions of json log entries
/datum/config_entry/flag/allow_admin_ooccolorallows admins with relevant permissions to have their own ooc colour
/datum/config_entry/flag/allow_admin_asaycolorallows admins with relevant permissions to have a personalized asay color
/datum/config_entry/flag/allow_vote_restartallow votes to restart
/datum/config_entry/flag/allow_vote_mapallow votes to change map
/datum/config_entry/flag/allow_rock_the_voteallow players to vote to re-do the map vote
/datum/config_entry/number/max_rocking_votesthe number of times we allow players to rock the vote
/datum/config_entry/number/vote_delayminimum time between voting sessions (deciseconds, 10 minute default)
/datum/config_entry/number/vote_periodlength of voting period (deciseconds, default 1 minute)
/datum/config_entry/flag/default_no_voteIf disabled, non-voters will automatically have their votes added to certain vote options +(For example: restart votes will default to "no restart", map votes will default to their preferred map / default map, rocking the vote will default to "no")
/datum/config_entry/flag/no_dead_votePrevents dead people from voting.
/datum/config_entry/flag/popup_admin_pmGives the ability to send players a maptext popup.
/datum/config_entry/flag/allow_respawnDetermines if a player can respawn after dying. +0 / RESPAWN_FLAG_DISABLED = Cannot respawn (default) +1 / RESPAWN_FLAG_FREE = Can respawn +2 / RESPAWN_FLAG_NEW_CHARACTER = Can respawn if choosing a different character
/datum/config_entry/number/respawn_delayDetermines how long (in deciseconds) before a player is allowed to respawn.
/datum/config_entry/flag/use_exp_restrictions_headsEnables head jobs time restrictions.
/datum/config_entry/flag/use_exp_restrictions_otherEnables non-head jobs time restrictions.
/datum/config_entry/flag/panic_bunker_interviewFlag for requiring players who would otherwise be denied access by the panic bunker to complete a written interview
/datum/config_entry/flag/forbid_preferences_exportAllows players to export their own preferences as a JSON file. Left as a config toggle in case it needs to be turned off due to server-specific needs.
/datum/config_entry/number/seconds_cooldown_for_preferences_exportThe number of seconds a player must wait between preference export attempts.
/datum/config_entry/flag/secure_chat_commandsvalidate ownership of admin flags for chat commands
/datum/config_entry/string/admin_2fa_urlURL for admins to be redirected to for 2FA
/datum/config_entry/number/map_vote_minimum_talliesThe minimum number of tallies a map vote entry can have.
/datum/config_entry/number/map_vote_flat_bonusThe flat amount all maps get by default
/datum/config_entry/number/map_vote_maximum_talliesThe maximum number of tallies a map vote entry can have.
/datum/config_entry/number/map_vote_tally_carryover_percentageThe number of tallies that are carried over between rounds.
\ No newline at end of file diff --git a/code/controllers/failsafe.html b/code/controllers/failsafe.html new file mode 100644 index 0000000000000..021fa8fb4c48c --- /dev/null +++ b/code/controllers/failsafe.html @@ -0,0 +1 @@ +code/controllers/failsafe.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/failsafe.dm

/var/FailsafeFailsafe
/proc/recover_all_SS_and_recreate_masterRecreate all SSs which will still cause data survive due to Recover(), the new Master will then find and take them from global.vars
/proc/delete_all_SS_and_recreate_masterDelete all existing SS to basically start over
\ No newline at end of file diff --git a/code/controllers/master.html b/code/controllers/master.html new file mode 100644 index 0000000000000..60dd5446ac7fc --- /dev/null +++ b/code/controllers/master.html @@ -0,0 +1 @@ +code/controllers/master.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/master.dm

/var/MasterStonedMC
\ No newline at end of file diff --git a/code/controllers/subsystem.html b/code/controllers/subsystem.html new file mode 100644 index 0000000000000..8a4b287242a46 --- /dev/null +++ b/code/controllers/subsystem.html @@ -0,0 +1 @@ +code/controllers/subsystem.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem.dm

/datum/controller/subsystemDefines a subsystem to be managed by the Master Controller
\ No newline at end of file diff --git a/code/controllers/subsystem/addiction.html b/code/controllers/subsystem/addiction.html new file mode 100644 index 0000000000000..b7ffedd88e957 --- /dev/null +++ b/code/controllers/subsystem/addiction.html @@ -0,0 +1 @@ +code/controllers/subsystem/addiction.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/addiction.dm

This subsystem mostly exists to populate and manage the withdrawal singletons.

\ No newline at end of file diff --git a/code/controllers/subsystem/ai_controllers.html b/code/controllers/subsystem/ai_controllers.html new file mode 100644 index 0000000000000..9b1abfd3e2269 --- /dev/null +++ b/code/controllers/subsystem/ai_controllers.html @@ -0,0 +1 @@ +code/controllers/subsystem/ai_controllers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/ai_controllers.dm

/var/SSai_controllersThe subsystem used to tick /datum/ai_controllers instances. Handling the re-checking of plans.
\ No newline at end of file diff --git a/code/controllers/subsystem/ambience.html b/code/controllers/subsystem/ambience.html new file mode 100644 index 0000000000000..7bcfeeec4d0f4 --- /dev/null +++ b/code/controllers/subsystem/ambience.html @@ -0,0 +1 @@ +code/controllers/subsystem/ambience.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/ambience.dm

/var/SSambienceThe subsystem used to play ambience to users every now and then, makes them real excited.
\ No newline at end of file diff --git a/code/controllers/subsystem/area_contents.html b/code/controllers/subsystem/area_contents.html new file mode 100644 index 0000000000000..43833401a08b0 --- /dev/null +++ b/code/controllers/subsystem/area_contents.html @@ -0,0 +1,5 @@ +code/controllers/subsystem/area_contents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/area_contents.dm

/var/SSarea_contentsResponsible for managing the sizes of area.contained_turfs and area.turfs_to_uncontain +These lists do not check for duplicates, which is fine, but it also means they can balloon in size over time +as a consequence of repeated changes in area in a space +They additionally may not always resolve often enough to avoid memory leaks +This is annoying, so lets keep an eye on them and cut them down to size if needed
\ No newline at end of file diff --git a/code/controllers/subsystem/asset_loading.html b/code/controllers/subsystem/asset_loading.html new file mode 100644 index 0000000000000..7e7399bf70b8c --- /dev/null +++ b/code/controllers/subsystem/asset_loading.html @@ -0,0 +1,3 @@ +code/controllers/subsystem/asset_loading.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/asset_loading.dm

/var/SSasset_loadingAllows us to lazyload asset datums +Anything inserted here will fully load if directly gotten +So this just serves to remove the requirement to load assets fully during init
\ No newline at end of file diff --git a/code/controllers/subsystem/ban_cache.html b/code/controllers/subsystem/ban_cache.html new file mode 100644 index 0000000000000..6c4389e164897 --- /dev/null +++ b/code/controllers/subsystem/ban_cache.html @@ -0,0 +1,2 @@ +code/controllers/subsystem/ban_cache.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/ban_cache.dm

/var/SSban_cacheSubsystem that batches a ban cache list for clients on initialize +This way we don't need to do ban checks in series later in the code
\ No newline at end of file diff --git a/code/controllers/subsystem/chat.html b/code/controllers/subsystem/chat.html new file mode 100644 index 0000000000000..4dca63a36bd34 --- /dev/null +++ b/code/controllers/subsystem/chat.html @@ -0,0 +1,2 @@ +code/controllers/subsystem/chat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/chat.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/controllers/subsystem/discord.html b/code/controllers/subsystem/discord.html new file mode 100644 index 0000000000000..642a377a5634b --- /dev/null +++ b/code/controllers/subsystem/discord.html @@ -0,0 +1 @@ +code/controllers/subsystem/discord.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/discord.dm

/var/SSdiscord
\ No newline at end of file diff --git a/code/controllers/subsystem/dynamic.html b/code/controllers/subsystem/dynamic.html new file mode 100644 index 0000000000000..6d6480a38c309 --- /dev/null +++ b/code/controllers/subsystem/dynamic.html @@ -0,0 +1,182 @@ +code/controllers/subsystem/dynamic/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Dynamic Mode

Roundstart

+

Dynamic rolls threat based on a special sauce formula:

+
+

[dynamic_curve_width][/datum/controller/global_vars/var/dynamic_curve_width] * tan((3.1416 * (rand() - 0.5) * 57.2957795)) + [dynamic_curve_centre][/datum/controller/global_vars/var/dynamic_curve_centre]

+
+

This threat is split into two separate budgets--round_start_budget and mid_round_budget. For example, a round with 50 threat might be split into a 30 roundstart budget, and a 20 midround budget. The roundstart budget is used to apply antagonists applied on readied players when the roundstarts (/datum/dynamic_ruleset/roundstart). The midround budget is used for two types of rulesets:

+
    +
  • /datum/dynamic_ruleset/midround - Rulesets that apply to either existing alive players, or to ghosts. Think Blob or Space Ninja, which poll ghosts asking if they want to play as these roles.
  • +
  • /datum/dynamic_ruleset/latejoin - Rulesets that apply to the next player that joins. Think Syndicate Infiltrator, which converts a player just joining an existing round into traitor.
  • +
+

This split is done with a similar method, known as the "lorentz distribution", exists to create a bell curve that ensures that while most rounds will have a threat level around ~50, chaotic and tame rounds still exist for variety.

+

The process of creating these numbers occurs in /datum/controller/subsystem/dynamic/proc/generate_threat (for creating the threat level) and /datum/controller/subsystem/dynamic/proc/generate_budgets (for splitting the threat level into budgets).

+

Deciding roundstart threats

+

In /datum/controller/subsystem/dynamic/proc/roundstart() (called when no admin chooses the rulesets explicitly), Dynamic uses the available roundstart budget to pick threats. This is done through the following system:

+
    +
  • All roundstart rulesets (remember, /datum/dynamic_ruleset/roundstart) are put into an associative list with their weight as the values (drafted_rules).
  • +
  • Until there is either no roundstart budget left, or until there is no ruleset we can choose from with the available threat, a pickweight is done based on the drafted_rules. If the same threat is picked twice, it will "scale up". The meaning of this depends on the ruleset itself, using the scaled_times variable; traitors for instance will create more the higher they scale. +
      +
    • If a ruleset is chosen with the HIGH_IMPACT_RULESET in its flags, then all other HIGH_IMPACT_RULESETs will be removed from drafted_rules. This is so that only one can ever be chosen.
    • +
    • If a ruleset has LONE_RULESET in its flags, then it will be removed from drafted_rules. This is to ensure it will only ever be picked once. An example of this in use is Wizard, to avoid creating multiple wizards.
    • +
    +
  • +
  • After all roundstart threats are chosen, /datum/dynamic_ruleset/proc/picking_roundstart_rule is called for each, passing in the ruleset and the number of times it is scaled. +
      +
    • In this stage, pre_execute is called, which is the function that will determine what players get what antagonists. If this function returns FALSE for whatever reason (in the case of an error), then its threat is refunded.
    • +
    +
  • +
+

After this process is done, any leftover roundstart threat will be given to the existing midround budget (done in /datum/controller/subsystem/dynamic/pre_setup()).

+

Deciding midround threats

Frequency

+

The frequency of midround threats is based on the midround threat of the round. The number of midround threats that will roll is threat_level / threat_per_midround_roll (configurable), rounded up. For example, if threat_per_midround_roll is set to 5, then for every 5 threat, one midround roll will be added. If you have 6 threat, with this configuration, you will get 2 midround rolls.

+

These midround roll points are then equidistantly spaced across the round, starting from midround_lower_bound (configurable) to midround_upper_bound (configurable), with a +/- of midround_roll_distance (configurable).

+

For example, if:

+
    +
  1. midround_lower_bound is 10 MINUTES
  2. +
  3. midround_upper_bound is 100 MINUTES
  4. +
  5. midround_roll_distance is 3 MINUTES
  6. +
  7. You have 5 midround rolls for the round
  8. +
+

...then those 5 midround rolls will be placed equidistantly (meaning equally apart) across the first 10-100 minutes of the round. Every individual roll will then be adjusted to either be 3 minutes earlier, or 3 minutes later.

+

Threat variety

+

Threats are split between heavy rulesets and light rulesets. A heavy ruleset includes major threats like space dragons or blobs, while light rulesets are ones that don't often cause shuttle calls when rolled, such as revenants or traitors (sleeper agents).

+

When a midround roll occurs, the decision to choose between light or heavy depends on the current round time. If it is less than midround_light_upper_bound (configurable), then it is guaranteed to be a light ruleset. If it is more than midround_heavy_lower_bound, then it is guaranteed to be a heavy ruleset. If it is any point in between, it will interpolate the value between those. This means that the longer the round goes on, the more likely you are to get a heavy ruleset.

+

If no heavy ruleset can run, such as not having enough threat, then a light ruleset is guaranteed to run.

+

Rule Processing

+

Calls rule_process on every rule which is in the current_rules list. +Every sixty seconds, update_playercounts() +Midround injection time is checked against world.time to see if an injection should happen. +If midround injection time is lower than world.time, it updates playercounts again, then tries to inject and generates a new cooldown regardless of whether a rule is picked.

+

Latejoin

+

make_antag_chance(newPlayer) -> (For each latespawn rule...) +-> acceptable(living players, threat_level) -> trim_candidates() -> ready(forced=FALSE) +**If true, add to drafted rules +**NOTE that acceptable uses threat_level not threat! +**NOTE Latejoin timer is ONLY reset if at least one rule was drafted. +**NOTE the new_player.dm AttemptLateSpawn() calls OnPostSetup for all roles (unless assigned role is MODE)

+

(After collecting all draftble rules...) +-> picking_latejoin_ruleset(drafted_rules) -> spend threat -> ruleset.execute()

+

Midround

+

process() -> (For each midround rule... +-> acceptable(living players, threat_level) -> trim_candidates() -> ready(forced=FALSE) +(After collecting all draftble rules...) +-> picking_midround_ruleset(drafted_rules) -> spend threat -> ruleset.execute()

+

Forced

+

For latejoin, it simply sets forced_latejoin_rule +make_antag_chance(newPlayer) -> trim_candidates() -> ready(forced=TRUE) **NOTE no acceptable() call

+

For midround, calls the below proc with forced = TRUE +picking_specific_rule(ruletype,forced) -> forced OR acceptable(living_players, threat_level) -> trim_candidates() -> ready(forced) -> spend threat -> execute() +**NOTE specific rule can be called by RS traitor->MR autotraitor w/ forced=FALSE +**NOTE that due to short circuiting acceptable() need not be called if forced.

+

Ruleset

+

acceptable(population,threat) just checks if enough threat_level for population indice. +**NOTE that we currently only send threat_level as the second arg, not threat. +ready(forced) checks if enough candidates and calls the map's map_ruleset(dynamic_ruleset) at the parent level

+

trim_candidates() varies significantly according to the ruleset type +Roundstart: All candidates are new_player mobs. Check them for standard stuff: connected, desire role, not banned, etc. +**NOTE Roundstart deals with both candidates (trimmed list of valid players) and mode.candidates (everyone readied up). Don't confuse them! +Latejoin: Only one candidate, the latejoiner. Standard checks. +Midround: Instead of building a single list candidates, candidates contains four lists: living, dead, observing, and living antags. Standard checks in trim_list(list).

+

Midround - Rulesets have additional types +/from_ghosts: execute() -> send_applications() -> review_applications() -> finish_applications() -> finish_setup(mob/newcharacter, index) -> setup_role(role) +**NOTE: execute() here adds dead players and observers to candidates list

+

Configuration and variables

Configuration

+

Configuration can be done through a config/dynamic.json file. One is provided as example in the codebase. This config file, loaded in /datum/controller/subsystem/dynamic/pre_setup(), directly overrides the values in the codebase, and so is perfect for making some rulesets harder/easier to get, turning them off completely, changing how much they cost, etc.

+

The format of this file is:

+
{
+	"Dynamic": {
+		/* Configuration in here will directly override `/datum/controller/subsystem/dynamic` itself. */
+		/* Keys are variable names, values are their new values. */
+	},
+
+	"Roundstart": {
+		/* Configuration in here will apply to `/datum/dynamic_ruleset/roundstart` instances. */
+		/* Keys are the ruleset names, values are another associative list with keys being variable names and values being new values. */
+		"Wizard": {
+			/* I, a head admin, have died to wizard, and so I made it cost a lot more threat than it does in the codebase. */
+			"cost": 80
+		}
+	},
+
+	"Midround": {
+		/* Same as "Roundstart", but for `/datum/dynamic_ruleset/midround` instead. */
+	},
+
+	"Latejoin": {
+		/* Same as "Roundstart", but for `/datum/dynamic_ruleset/latejoin` instead. */
+	},
+
+	"Station": {
+		/* Special threat reductions for dangerous station traits. Traits are selected before dynamic, so traits will always  */
+		/* reduce threat even if there's no threat for it available. Only "cost" can be modified */
+	}
+}
+
+

Note: Comments are not possible in this format, and are just in this document for the sake of readability.

+

Rulesets

+

Rulesets have the following variables notable to developers and those interested in tuning.

+
    +
  • required_candidates - The number of people that must be willing (in their preferences) to be an antagonist with this ruleset. If the candidates do not meet this requirement, then the ruleset will not bother to be drafted.
  • +
  • antag_cap - Judges the amount of antagonists to apply, for both solo and teams. Note that some antagonists (such as traitors, lings, heretics, etc) will add more based on how many times they've been scaled. Written as a linear equation--ceil(x/denominator) + offset, or as a fixed constant. If written as a linear equation, will be in the form of list("denominator" = denominator, "offset" = offset). +
      +
    • Examples include: +
        +
      • Traitor: antag_cap = list("denominator" = 24). This means that for every 24 players, 1 traitor will be added (assuming no scaling).
      • +
      • Nuclear Emergency: antag_cap = list("denominator" = 18, "offset" = 1). For every 18 players, 1 nuke op will be added. Starts at 1, meaning at 30 players, 3 nuke ops will be created, rather than 2.
      • +
      • Revolution: antag_cap = 3. There will always be 3 rev-heads, no matter what.
      • +
      +
    • +
    +
  • +
  • minimum_required_age - The minimum age in order to apply for the ruleset.
  • +
  • weight - How likely this ruleset is to be picked. A higher weight results in a higher chance of drafting.
  • +
  • cost - The initial cost of the ruleset. This cost is taken from either the roundstart or midround budget, depending on the ruleset.
  • +
  • scaling_cost - Cost for every additional application of this ruleset. +
      +
    • Suppose traitors has a cost of 8, and a scaling_cost of 5. This means that buying 1 application of the traitor ruleset costs 8 threat, but buying two costs 13 (8 + 5). Buying it a third time is 18 (8 + 5 + 5), etc.
    • +
    +
  • +
  • pop_per_requirement - The range of population each value in requirements represents. By default, this is 6. +
      +
    • If the value is five the range is 0-4, 5-9, 10-14, 15-19, 20-24, 25-29, 30-34, 35-39, 40-54, 45+.
    • +
    • If it is six the range is 0-5, 6-11, 12-17, 18-23, 24-29, 30-35, 36-41, 42-47, 48-53, 54+.
    • +
    • If it is seven the range is 0-6, 7-13, 14-20, 21-27, 28-34, 35-41, 42-48, 49-55, 56-62, 63+.
    • +
    +
  • +
  • requirements - A list that represents, per population range (see: pop_per_requirement), how much threat is required to consider this ruleset. This is independent of how much it'll actually cost. This uses threat level, not the budget--meaning if a round has 50 threat level, but only 10 points of round start threat, a ruleset with a requirement of 40 can still be picked if it can be bought. +
      +
    • Suppose wizard has a requirements of list(90,90,70,40,30,20,10,10,10,10). This means that, at 0-5 and 6-11 players, A station must have 90 threat in order for a wizard to be possible. At 12-17, 70 threat is required instead, etc.
    • +
    +
  • +
  • restricted_roles - A list of jobs that can't be drafted by this ruleset. For example, cyborgs cannot be changelings, and so are in the restricted_roles.
  • +
  • protected_roles - Serves the same purpose of restricted_roles, except it can be turned off through configuration (protect_roles_from_antagonist). For example, security officers shouldn't be made traitor, so they are in Traitor's protected_roles. +
      +
    • When considering putting a role in protected_roles or restricted_roles, the rule of thumb is if it is technically infeasible to support that job in that role. There's no technical reason a security officer can't be a traitor, and so they are simply in protected_roles. There are technical reasons a cyborg can't be a changeling, so they are in restricted_roles instead.
    • +
    +
  • +
+

This is not a complete list--search "configurable" in this README to learn more.

+

Dynamic

+

The "Dynamic" key has the following configurable values:

+
    +
  • pop_per_requirement - The default value of pop_per_requirement for any ruleset that does not explicitly set it. Defaults to 6.
  • +
  • latejoin_delay_min, latejoin_delay_max - The time range, in deciseconds (take your seconds, and multiply by 10), for a latejoin to attempt rolling. Once this timer is finished, a new one will be created within the same range. +
      +
    • Suppose you have a latejoin_delay_min of 600 (60 seconds, 1 minute) and a latejoin_delay_max of 1800 (180 seconds, 3 minutes). Once the round starts, a random number in this range will be picked--let's suppose 1.5 minutes. After 1.5 minutes, Dynamic will decide if a latejoin threat should be created (a probability of /datum/controller/subsystem/dynamic/proc/get_injection_chance()). Regardless of its decision, a new timer will be started within the range of 1 to 3 minutes, repeatedly.
    • +
    +
  • +
  • threat_curve_centre - A number between -5 and +5. A negative value will give a more peaceful round and a positive value will give a round with higher threat.
  • +
  • threat_curve_width - A number between 0.5 and 4. Higher value will favour extreme rounds and lower value rounds closer to the average.
  • +
  • roundstart_split_curve_centre - A number between -5 and +5. Equivalent to threat_curve_centre, but for the budget split. A negative value will weigh towards midround rulesets, and a positive value will weight towards roundstart ones.
  • +
  • roundstart_split_curve_width - A number between 0.5 and 4. Equivalent to threat_curve_width, but for the budget split. Higher value will favour more variance in splits and lower value rounds closer to the average.
  • +
  • random_event_hijack_minimum - The minimum amount of time for antag random events to be hijacked. (See Random Event Hijacking)
  • +
  • random_event_hijack_maximum - The maximum amount of time for antag random events to be hijacked. (See Random Event Hijacking)
  • +
  • hijacked_random_event_injection_chance - The amount of injection chance to give to Dynamic when a random event is hijacked. (See Random Event Hijacking)
  • +
  • max_threat_level - Sets the maximum amount of threat that can be rolled. Defaults to 100. You should only use this to lower the maximum threat, as raising it higher will not do anything.
  • +
+

Random Event "Hijacking"

+

Random events have the potential to be hijacked by Dynamic to keep the pace of midround injections, while also allowing greenshifts to contain some antagonists.

+

/datum/round_event_control/dynamic_should_hijack is a variable to random events to allow Dynamic to hijack them, and defaults to FALSE. This is set to TRUE for random events that spawn antagonists.

+

In /datum/controller/subsystem/dynamic/on_pre_random_event (in dynamic_hijacking.dm), Dynamic hooks to random events. If the dynamic_should_hijack variable is TRUE, the following sequence of events occurs:

+

Flow chart to describe the chain of events for Dynamic 2021 to take

+

n is a random value between random_event_hijack_minimum and random_event_hijack_maximum. Heavy injection chance, should it need to be raised, is increased by hijacked_random_event_injection_chance_modifier.

\ No newline at end of file diff --git a/code/controllers/subsystem/dynamic/dynamic_logging.html b/code/controllers/subsystem/dynamic/dynamic_logging.html new file mode 100644 index 0000000000000..bdac370fe6bd5 --- /dev/null +++ b/code/controllers/subsystem/dynamic/dynamic_logging.html @@ -0,0 +1,2 @@ +code/controllers/subsystem/dynamic/dynamic_logging.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/dynamic/dynamic_logging.dm

/datum/dynamic_snapshotA "snapshot" of dynamic at an important point in time. +Exported to JSON in the dynamic.json log file.
/datum/dynamic_snapshot_rulesetA ruleset chosen during a snapshot
\ No newline at end of file diff --git a/code/controllers/subsystem/dynamic/dynamic_rulesets_latejoin.html b/code/controllers/subsystem/dynamic/dynamic_rulesets_latejoin.html new file mode 100644 index 0000000000000..00cc9e6680560 --- /dev/null +++ b/code/controllers/subsystem/dynamic/dynamic_rulesets_latejoin.html @@ -0,0 +1 @@ +code/controllers/subsystem/dynamic/dynamic_rulesets_latejoin.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/dynamic/dynamic_rulesets_latejoin.dm

/datum/dynamic_ruleset/latejoin/stowaway_changelingRuleset for latejoin changelings
\ No newline at end of file diff --git a/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.html b/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.html new file mode 100644 index 0000000000000..3265621ad6bcf --- /dev/null +++ b/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.html @@ -0,0 +1 @@ +code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm

MALF_ION_PROBProbability the AI going malf will be accompanied by an ion storm announcement and some ion laws.
REPLACE_LAW_WITH_ION_PROBThe probability to replace an existing law with an ion law instead of adding a new ion law.
/datum/dynamic_ruleset/midroundMidround Rulesets
/datum/dynamic_ruleset/midround/from_livingsubtype to handle checking players
/datum/dynamic_ruleset/midround/from_living/autotraitorMidround Traitor Ruleset (From Living)
/datum/dynamic_ruleset/midround/malfMidround Malf AI Ruleset (From Living)
/datum/dynamic_ruleset/midround/from_ghosts/wizardMidround Wizard Ruleset (From Ghosts)
/datum/dynamic_ruleset/midround/from_ghosts/nuclearMidround Nuclear Operatives Ruleset (From Ghosts)
/datum/dynamic_ruleset/midround/from_ghosts/blobMidround Blob Ruleset (From Ghosts)
/datum/dynamic_ruleset/midround/from_living/blob_infectionMidround Blob Infection Ruleset (From Living)
/datum/dynamic_ruleset/midround/from_ghosts/xenomorphMidround Xenomorph Ruleset (From Ghosts)
/datum/dynamic_ruleset/midround/from_ghosts/nightmareMidround Nightmare Ruleset (From Ghosts)
/datum/dynamic_ruleset/midround/from_ghosts/space_dragonMidround Space Dragon Ruleset (From Ghosts)
/datum/dynamic_ruleset/midround/from_ghosts/space_ninjaMidround Space Ninja Ruleset (From Ghosts)
/datum/dynamic_ruleset/midround/spidersMidround Spiders Ruleset (From Ghosts)
/datum/dynamic_ruleset/midround/from_ghosts/revenantMidround Revenant Ruleset (From Ghosts)
/datum/dynamic_ruleset/midround/piratesMidround Space Pirates Ruleset (From Ghosts)
/datum/dynamic_ruleset/midround/dangerous_piratesDangerous Space Pirates ruleset
/datum/dynamic_ruleset/midround/from_living/obsessedMidround Obsessed Ruleset (From Living)
/datum/dynamic_ruleset/midround/from_ghosts/changeling_midroundMidround Space Changeling Ruleset (From Ghosts)
/datum/dynamic_ruleset/midround/from_ghosts/paradox_cloneMidround Paradox Clone Ruleset (From Ghosts)
/datum/dynamic_ruleset/midround/from_ghosts/voidwalkerMidround Voidwalker Ruleset (From Ghosts)

Define Details

MALF_ION_PROB

Probability the AI going malf will be accompanied by an ion storm announcement and some ion laws.

REPLACE_LAW_WITH_ION_PROB

The probability to replace an existing law with an ion law instead of adding a new ion law.

\ No newline at end of file diff --git a/code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.html b/code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.html new file mode 100644 index 0000000000000..b3cc1d4c7730f --- /dev/null +++ b/code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.html @@ -0,0 +1 @@ +code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.dm

/datum/dynamic_ruleset/roundstart/nationsRuleset for Nations
\ No newline at end of file diff --git a/code/controllers/subsystem/early_assets.html b/code/controllers/subsystem/early_assets.html new file mode 100644 index 0000000000000..47621fef80887 --- /dev/null +++ b/code/controllers/subsystem/early_assets.html @@ -0,0 +1,5 @@ +code/controllers/subsystem/early_assets.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/early_assets.dm

/var/SSearly_assetsInitializes any assets that need to be loaded ASAP. +This houses preference menu assets, since they can be loaded at any time, +most dangerously before the atoms SS initializes. +Thus, we want it to fail consistently in CI as if it would've if a player +opened it up early.
\ No newline at end of file diff --git a/code/controllers/subsystem/economy.html b/code/controllers/subsystem/economy.html new file mode 100644 index 0000000000000..9d7d0c9ef4eec --- /dev/null +++ b/code/controllers/subsystem/economy.html @@ -0,0 +1 @@ +code/controllers/subsystem/economy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/controllers/subsystem/economy.dm

ECON_DEPARTMENT_STEPProcessing step defines, to track what we've done so far

Define Details

ECON_DEPARTMENT_STEP

Processing step defines, to track what we've done so far

\ No newline at end of file diff --git a/code/controllers/subsystem/events.html b/code/controllers/subsystem/events.html new file mode 100644 index 0000000000000..bd6d09cde316c --- /dev/null +++ b/code/controllers/subsystem/events.html @@ -0,0 +1 @@ +code/controllers/subsystem/events.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/events.dm

/datum/controller/subsystem/eventsICES - Intensity Credit Events System
/proc/check_holidaysChecks that the passed holiday is located in the global holidays list.
/proc/fill_holidaysFills the holidays list if applicable, or leaves it an empty list.
\ No newline at end of file diff --git a/code/controllers/subsystem/explosions.html b/code/controllers/subsystem/explosions.html new file mode 100644 index 0000000000000..848feff74bc81 --- /dev/null +++ b/code/controllers/subsystem/explosions.html @@ -0,0 +1,4 @@ +code/controllers/subsystem/explosions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/controllers/subsystem/explosions.dm

/proc/dyn_explosionUsing default dyn_ex scale:
/proc/explosionMakes a given atom explode.
QUAKE_CREAK_PROBThe probability that a quaking explosion will make the station creak per unit. Maths!
ECHO_CREAK_PROBThe probability that an echoing explosion will make the station creak per unit.
CREAK_DELAYTime taken for the hull to begin to creak after an explosion, if applicable.
FAR_LOWERLower limit for far explosion SFX volume.
FAR_UPPERUpper limit for far explosion SFX volume.
FAR_SOUND_PROBThe probability that a distant explosion SFX will be a far explosion sound rather than an echo. (0-100)
NEAR_SHAKE_CAPThe upper limit on screenshake amplitude for nearby explosions.
FAR_SHAKE_CAPThe upper limit on screenshake amplifude for distant explosions.
NEAR_SHAKE_DURATIONThe duration of the screenshake for nearby explosions.
FAR_SHAKE_DURATIONThe duration of the screenshake for distant explosions.
FREQ_LOWERThe lower limit for the randomly selected hull creaking frequency.
FREQ_UPPERThe upper limit for the randomly selected hull creaking frequency.
/proc/prepare_explosion_turfsReturns a list of turfs in X range from the epicenter +Returns in a unique order, spiraling outwards +This is done to ensure our progressive cache of blast resistance is always valid +This is quite fast

Define Details

CREAK_DELAY

Time taken for the hull to begin to creak after an explosion, if applicable.

ECHO_CREAK_PROB

The probability that an echoing explosion will make the station creak per unit.

FAR_LOWER

Lower limit for far explosion SFX volume.

FAR_SHAKE_CAP

The upper limit on screenshake amplifude for distant explosions.

FAR_SHAKE_DURATION

The duration of the screenshake for distant explosions.

FAR_SOUND_PROB

The probability that a distant explosion SFX will be a far explosion sound rather than an echo. (0-100)

FAR_UPPER

Upper limit for far explosion SFX volume.

FREQ_LOWER

The lower limit for the randomly selected hull creaking frequency.

FREQ_UPPER

The upper limit for the randomly selected hull creaking frequency.

NEAR_SHAKE_CAP

The upper limit on screenshake amplitude for nearby explosions.

NEAR_SHAKE_DURATION

The duration of the screenshake for nearby explosions.

QUAKE_CREAK_PROB

The probability that a quaking explosion will make the station creak per unit. Maths!

\ No newline at end of file diff --git a/code/controllers/subsystem/fluids.html b/code/controllers/subsystem/fluids.html new file mode 100644 index 0000000000000..ff01676d05fb6 --- /dev/null +++ b/code/controllers/subsystem/fluids.html @@ -0,0 +1 @@ +code/controllers/subsystem/fluids.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/controllers/subsystem/fluids.dm

SS_PROCESSES_SPREADINGIndicates that a fluid subsystem processes fluid spreading.
SS_PROCESSES_EFFECTSIndicates that a fluid subsystem processes fluid effects.
/var/SSfluids
/var/SSsmokeThe subsystem responsible for processing smoke propagation and effects.
/var/SSfoamThe subsystem responsible for processing foam propagation and effects.

Define Details

SS_PROCESSES_EFFECTS

Indicates that a fluid subsystem processes fluid effects.

SS_PROCESSES_SPREADING

Indicates that a fluid subsystem processes fluid spreading.

\ No newline at end of file diff --git a/code/controllers/subsystem/garbage.html b/code/controllers/subsystem/garbage.html new file mode 100644 index 0000000000000..a0f5750c6ea31 --- /dev/null +++ b/code/controllers/subsystem/garbage.html @@ -0,0 +1,14 @@ +code/controllers/subsystem/garbage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/garbage.dm

Debugging GC issues

+

In order to debug qdel() failures, there are several tools available. +To enable these tools, define TESTING in _compile_options.dm.

+

First is a verb called "Find References", which lists every refererence to an object in the world. This allows you to track down any indirect or obfuscated references that you might have missed.

+

Complementing this is another verb, "qdel() then Find References". +This does exactly what you'd expect; it calls qdel() on the object and then it finds all references remaining. +This is great, because it means that Destroy() will have been called before it starts to find references, +so the only references you'll find will be the ones preventing the object from qdel()ing gracefully.

+

If you have a datum or something you are not destroying directly (say via the singulo), +the next tool is QDEL_HINT_FINDREFERENCE. You can return this in Destroy() (where you would normally return ..()), +to print a list of references once it enters the GC queue.

+

Finally is a verb, "Show qdel() Log", which shows the deletion log that the garbage subsystem keeps. This is helpful if you are having race conditions or need to review the order of deletions.

+

Note that for any of these tools to work TESTING must be defined. +By using these methods of finding references, you can make your life far, far easier when dealing with qdel() failures.

/datum/qdel_itemQdel Item: Holds statistics on each type that passes thru qdel
/proc/qdelShould be treated as a replacement for the 'del' keyword.
\ No newline at end of file diff --git a/code/controllers/subsystem/id_access.html b/code/controllers/subsystem/id_access.html new file mode 100644 index 0000000000000..9f8c6bb5b6e33 --- /dev/null +++ b/code/controllers/subsystem/id_access.html @@ -0,0 +1 @@ +code/controllers/subsystem/id_access.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/id_access.dm

/var/SSid_accessNon-processing subsystem that holds various procs and data structures to manage ID cards, trims and access.
\ No newline at end of file diff --git a/code/controllers/subsystem/init_profiler.html b/code/controllers/subsystem/init_profiler.html new file mode 100644 index 0000000000000..b607a6bf21079 --- /dev/null +++ b/code/controllers/subsystem/init_profiler.html @@ -0,0 +1,2 @@ +code/controllers/subsystem/init_profiler.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/init_profiler.dm

/var/SSinit_profilerSubsystem exists so we can separately log init time costs from the costs of general operation +Hopefully this makes sorting out what causes problems when easier
\ No newline at end of file diff --git a/code/controllers/subsystem/ipintel.html b/code/controllers/subsystem/ipintel.html new file mode 100644 index 0000000000000..dfcb76c7cc069 --- /dev/null +++ b/code/controllers/subsystem/ipintel.html @@ -0,0 +1 @@ +code/controllers/subsystem/ipintel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/ipintel.dm

/datum/ip_intelThe ip intel for a given address
\ No newline at end of file diff --git a/code/controllers/subsystem/lag_switch.html b/code/controllers/subsystem/lag_switch.html new file mode 100644 index 0000000000000..42cef392720d5 --- /dev/null +++ b/code/controllers/subsystem/lag_switch.html @@ -0,0 +1 @@ +code/controllers/subsystem/lag_switch.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/lag_switch.dm

/var/SSlag_switchThe subsystem for controlling drastic performance enhancements aimed at reducing server load for a smoother albeit slightly duller gaming experience
\ No newline at end of file diff --git a/code/controllers/subsystem/library.html b/code/controllers/subsystem/library.html new file mode 100644 index 0000000000000..b9f9e7ee34183 --- /dev/null +++ b/code/controllers/subsystem/library.html @@ -0,0 +1 @@ +code/controllers/subsystem/library.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/library.dm

/var/SSlibraryManages library data, loading bookselves, etc
\ No newline at end of file diff --git a/code/controllers/subsystem/materials.html b/code/controllers/subsystem/materials.html new file mode 100644 index 0000000000000..238ed07a84382 --- /dev/null +++ b/code/controllers/subsystem/materials.html @@ -0,0 +1,3 @@ +code/controllers/subsystem/materials.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/materials.dm

How material datums work +Materials are now instanced datums, with an associative list of them being kept in SSmaterials. We only instance the materials once and then re-use these instances for everything.

+

These materials call on_applied() on whatever item they are applied to, common effects are adding components, changing color and changing description. This allows us to differentiate items based on the material they are made out of.area

\ No newline at end of file diff --git a/code/controllers/subsystem/modular_computers.html b/code/controllers/subsystem/modular_computers.html new file mode 100644 index 0000000000000..f39ca78d7f39f --- /dev/null +++ b/code/controllers/subsystem/modular_computers.html @@ -0,0 +1 @@ +code/controllers/subsystem/modular_computers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/controllers/subsystem/modular_computers.dm

MAX_LOG_COUNTThe maximum amount of logs that can be generated before they start overwriting each other.

Define Details

MAX_LOG_COUNT

The maximum amount of logs that can be generated before they start overwriting each other.

\ No newline at end of file diff --git a/code/controllers/subsystem/mouse_entered.html b/code/controllers/subsystem/mouse_entered.html new file mode 100644 index 0000000000000..180262f0d23d7 --- /dev/null +++ b/code/controllers/subsystem/mouse_entered.html @@ -0,0 +1 @@ +code/controllers/subsystem/mouse_entered.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/mouse_entered.dm

/var/SSmouse_enteredDefers MouseEntered inputs to only apply to the most recently hovered over atom in the tick
\ No newline at end of file diff --git a/code/controllers/subsystem/movement/ai_movement.html b/code/controllers/subsystem/movement/ai_movement.html new file mode 100644 index 0000000000000..2d9c39818e53f --- /dev/null +++ b/code/controllers/subsystem/movement/ai_movement.html @@ -0,0 +1 @@ +code/controllers/subsystem/movement/ai_movement.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/movement/ai_movement.dm

/var/SSai_movementThe subsystem used to tick /datum/ai_movement instances. Handling the movement of individual AI instances
\ No newline at end of file diff --git a/code/controllers/subsystem/movement/cliff_falling.html b/code/controllers/subsystem/movement/cliff_falling.html new file mode 100644 index 0000000000000..c32e1c484a12d --- /dev/null +++ b/code/controllers/subsystem/movement/cliff_falling.html @@ -0,0 +1 @@ +code/controllers/subsystem/movement/cliff_falling.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/movement/cliff_falling.dm

/var/SScliff_fallingSubsystem to handle falling of off cliffs
\ No newline at end of file diff --git a/code/controllers/subsystem/movement/hyperspace_drift.html b/code/controllers/subsystem/movement/hyperspace_drift.html new file mode 100644 index 0000000000000..44f67dd1f6989 --- /dev/null +++ b/code/controllers/subsystem/movement/hyperspace_drift.html @@ -0,0 +1 @@ +code/controllers/subsystem/movement/hyperspace_drift.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/movement/hyperspace_drift.dm

/var/SShyperspace_driftThis subsystem handles the hyperspace shuttle pull movement loops
\ No newline at end of file diff --git a/code/controllers/subsystem/movement/movement_types.html b/code/controllers/subsystem/movement/movement_types.html new file mode 100644 index 0000000000000..e84d13713c357 --- /dev/null +++ b/code/controllers/subsystem/movement/movement_types.html @@ -0,0 +1,8 @@ +code/controllers/subsystem/movement/movement_types.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/movement/movement_types.dm

/datum/move_loopTemplate class of the movement datums, handles the timing portion of the loops
/datum/move_loop/moveReplacement for walk()
/datum/move_loop/has_target/force_moveUsed for force-move loops
/datum/move_loop/has_target/dist_boundBase class of move_to and move_away, deals with the distance and target aspect of things
/datum/move_loop/has_target/dist_bound/move_toWrapper around walk_to()
/datum/move_loop/has_target/dist_bound/move_awayWrapper around walk_away()
/datum/move_loop/has_target/move_towardsUsed as a alternative to walk_towards
/datum/move_loop/has_target/move_towards_budgetThe actual implementation of walk_towards()
/datum/move_loop/freezeAs close as you can get to a "do-nothing" move loop, the pure intention of this is to absolutely resist all and any automated movement until the move loop times out.
/datum/move_loop/move_randThis isn't actually the same as walk_rand +Because walk_rand is really more like walk_to_rand +It appears to pick a spot outside of range, and move towards it, then pick a new spot, etc. +I can't actually replicate this on our side, because of how bad our pathfinding is, and cause I'm not totally sure I know what it's doing. +I can just implement a random-walk though
/datum/move_loop/move_to_randWrapper around step_rand
/datum/move_loop/disposal_holderDisposal holders need to move through a chain of pipes +Rather then through the world. This supports this +If this ever changes, get rid of this, add drift component like logic to the holder +And move them to move()
\ No newline at end of file diff --git a/code/controllers/subsystem/movement/newtonian_movement.html b/code/controllers/subsystem/movement/newtonian_movement.html new file mode 100644 index 0000000000000..ed428e76b53d6 --- /dev/null +++ b/code/controllers/subsystem/movement/newtonian_movement.html @@ -0,0 +1 @@ +code/controllers/subsystem/movement/newtonian_movement.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/movement/newtonian_movement.dm

/var/SSnewtonian_movementThe subsystem is intended to tick things related to space/newtonian movement, such as constant sources of inertia
\ No newline at end of file diff --git a/code/controllers/subsystem/overlays.html b/code/controllers/subsystem/overlays.html new file mode 100644 index 0000000000000..5a4ecaaeb1558 --- /dev/null +++ b/code/controllers/subsystem/overlays.html @@ -0,0 +1,4 @@ +code/controllers/subsystem/overlays.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/overlays.dm

/proc/overlays2textConverts an overlay list into text for debug printing +Of note: overlays aren't actually mutable appearances, they're just appearances +Don't have access to that type tho, so this is the best you're gonna get
/atomThe base type for nearly all physical objects in SS13
/proc/realize_appearance_queueTakes a list of appearnces, makes them mutable so they can be properly vv'd and inspected
/proc/diff_appearancesTakes two appearances as args, prints out, logs, and returns a text representation of their differences +Including suboverlays
\ No newline at end of file diff --git a/code/controllers/subsystem/parallax.html b/code/controllers/subsystem/parallax.html new file mode 100644 index 0000000000000..bd5db07ecabbe --- /dev/null +++ b/code/controllers/subsystem/parallax.html @@ -0,0 +1 @@ +code/controllers/subsystem/parallax.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/controllers/subsystem/parallax.dm

PARALLAX_NONEDefine for the pickweight value where you get no parallax

Define Details

PARALLAX_NONE

Define for the pickweight value where you get no parallax

\ No newline at end of file diff --git a/code/controllers/subsystem/pathfinder.html b/code/controllers/subsystem/pathfinder.html new file mode 100644 index 0000000000000..a6fb0d403f2dd --- /dev/null +++ b/code/controllers/subsystem/pathfinder.html @@ -0,0 +1 @@ +code/controllers/subsystem/pathfinder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/pathfinder.dm

/var/SSpathfinderQueues and manages JPS pathfinding steps
/proc/path_map_passalongWe generate a path for the passed in callbacks, and then pipe it over
\ No newline at end of file diff --git a/code/controllers/subsystem/persistence/counter_delamination.html b/code/controllers/subsystem/persistence/counter_delamination.html new file mode 100644 index 0000000000000..bb5c47bd8705b --- /dev/null +++ b/code/controllers/subsystem/persistence/counter_delamination.html @@ -0,0 +1 @@ +code/controllers/subsystem/persistence/counter_delamination.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/controllers/subsystem/persistence/counter_delamination.dm

DELAMINATION_COUNT_FILEPATHLocation where we save the information about how many rounds it has been since the engine blew up

Define Details

DELAMINATION_COUNT_FILEPATH

Location where we save the information about how many rounds it has been since the engine blew up

\ No newline at end of file diff --git a/code/controllers/subsystem/persistence/counter_tram_hits.html b/code/controllers/subsystem/persistence/counter_tram_hits.html new file mode 100644 index 0000000000000..fa18f3a667926 --- /dev/null +++ b/code/controllers/subsystem/persistence/counter_tram_hits.html @@ -0,0 +1 @@ +code/controllers/subsystem/persistence/counter_tram_hits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/controllers/subsystem/persistence/counter_tram_hits.dm

TRAM_COUNT_FILEPATHLocation where we save the information about how many times the tram hit on previous round

Define Details

TRAM_COUNT_FILEPATH

Location where we save the information about how many times the tram hit on previous round

\ No newline at end of file diff --git a/code/controllers/subsystem/persistence/trophies.html b/code/controllers/subsystem/persistence/trophies.html new file mode 100644 index 0000000000000..0d0c07acf9828 --- /dev/null +++ b/code/controllers/subsystem/persistence/trophies.html @@ -0,0 +1 @@ +code/controllers/subsystem/persistence/trophies.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/persistence/trophies.dm

/datum/trophy_datatrophy data datum, for admin manipulation
\ No newline at end of file diff --git a/code/controllers/subsystem/ping.html b/code/controllers/subsystem/ping.html new file mode 100644 index 0000000000000..02c527f3d459f --- /dev/null +++ b/code/controllers/subsystem/ping.html @@ -0,0 +1,2 @@ +code/controllers/subsystem/ping.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/ping.dm

Copyright (c) 2022 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/controllers/subsystem/points_of_interest.html b/code/controllers/subsystem/points_of_interest.html new file mode 100644 index 0000000000000..3ca9934732e5d --- /dev/null +++ b/code/controllers/subsystem/points_of_interest.html @@ -0,0 +1 @@ +code/controllers/subsystem/points_of_interest.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/points_of_interest.dm

/var/SSpoints_of_interestSubsystem for managing all POIs.
/datum/point_of_interestSimple helper datum for points of interest.
\ No newline at end of file diff --git a/code/controllers/subsystem/processing/acid.html b/code/controllers/subsystem/processing/acid.html new file mode 100644 index 0000000000000..c740a5972a962 --- /dev/null +++ b/code/controllers/subsystem/processing/acid.html @@ -0,0 +1 @@ +code/controllers/subsystem/processing/acid.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/processing/acid.dm

/var/SSacidThe subsystem used to tick /datum/component/acid instances.
\ No newline at end of file diff --git a/code/controllers/subsystem/processing/ai_behaviors.html b/code/controllers/subsystem/processing/ai_behaviors.html new file mode 100644 index 0000000000000..ad5ef092f7d35 --- /dev/null +++ b/code/controllers/subsystem/processing/ai_behaviors.html @@ -0,0 +1 @@ +code/controllers/subsystem/processing/ai_behaviors.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/processing/ai_behaviors.dm

/var/SSai_behaviorsThe subsystem used to tick /datum/ai_behavior instances. Handling the individual actions an AI can take like punching someone in the fucking NUTS
\ No newline at end of file diff --git a/code/controllers/subsystem/processing/aura.html b/code/controllers/subsystem/processing/aura.html new file mode 100644 index 0000000000000..2b418014eaa33 --- /dev/null +++ b/code/controllers/subsystem/processing/aura.html @@ -0,0 +1 @@ +code/controllers/subsystem/processing/aura.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/processing/aura.dm

/var/SSauraThe subsystem used to tick auras (/datum/component/aura_healing and /datum/component/damage_aura).
\ No newline at end of file diff --git a/code/controllers/subsystem/processing/clock_component.html b/code/controllers/subsystem/processing/clock_component.html new file mode 100644 index 0000000000000..4fc0d92e87cf0 --- /dev/null +++ b/code/controllers/subsystem/processing/clock_component.html @@ -0,0 +1 @@ +code/controllers/subsystem/processing/clock_component.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/processing/clock_component.dm

/var/SSclock_componentThe subsystem used to tick /datum/component/acid instances.
\ No newline at end of file diff --git a/code/controllers/subsystem/processing/digital_clock.html b/code/controllers/subsystem/processing/digital_clock.html new file mode 100644 index 0000000000000..f347a0b697f0c --- /dev/null +++ b/code/controllers/subsystem/processing/digital_clock.html @@ -0,0 +1 @@ +code/controllers/subsystem/processing/digital_clock.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/processing/digital_clock.dm

/var/SSdigital_clockThe subsystem used to tick digital clocks
\ No newline at end of file diff --git a/code/controllers/subsystem/processing/fire_burning.html b/code/controllers/subsystem/processing/fire_burning.html new file mode 100644 index 0000000000000..c6ca77ba19cfd --- /dev/null +++ b/code/controllers/subsystem/processing/fire_burning.html @@ -0,0 +1 @@ +code/controllers/subsystem/processing/fire_burning.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/processing/fire_burning.dm

/var/SSburningThe subsystem used to tick /datum/component/burning instances.
\ No newline at end of file diff --git a/code/controllers/subsystem/processing/fishing.html b/code/controllers/subsystem/processing/fishing.html new file mode 100644 index 0000000000000..5ec959648d228 --- /dev/null +++ b/code/controllers/subsystem/processing/fishing.html @@ -0,0 +1 @@ +code/controllers/subsystem/processing/fishing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/processing/fishing.dm

/var/SSfishingsubsystem for the fishing minigame processing.
\ No newline at end of file diff --git a/code/controllers/subsystem/processing/singulo.html b/code/controllers/subsystem/processing/singulo.html new file mode 100644 index 0000000000000..6c61558e08c76 --- /dev/null +++ b/code/controllers/subsystem/processing/singulo.html @@ -0,0 +1 @@ +code/controllers/subsystem/processing/singulo.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/processing/singulo.dm

/var/SSsinguloprocessVery rare subsystem, provides any active singularities with the timings and seclusion they need to succeed
\ No newline at end of file diff --git a/code/controllers/subsystem/radioactive_nebula.html b/code/controllers/subsystem/radioactive_nebula.html new file mode 100644 index 0000000000000..d44312d7a0d70 --- /dev/null +++ b/code/controllers/subsystem/radioactive_nebula.html @@ -0,0 +1 @@ +code/controllers/subsystem/radioactive_nebula.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/controllers/subsystem/radioactive_nebula.dm

TRAIT_RADIOACTIVE_NEBULA_FAKE_IRRADIATEDTrait for tracking if something already has the fake irradiation effect, so we don't waste time on effect operations if otherwise unnecessary
/var/SSradioactive_nebulaControls making objects irradiated when Radioactive Nebula is in effect.

Define Details

TRAIT_RADIOACTIVE_NEBULA_FAKE_IRRADIATED

Trait for tracking if something already has the fake irradiation effect, so we don't waste time on effect operations if otherwise unnecessary

\ No newline at end of file diff --git a/code/controllers/subsystem/restaurant.html b/code/controllers/subsystem/restaurant.html new file mode 100644 index 0000000000000..4dedd435d2ede --- /dev/null +++ b/code/controllers/subsystem/restaurant.html @@ -0,0 +1 @@ +code/controllers/subsystem/restaurant.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/restaurant.dm

This subsystem exists to serve as a holder for important info for the restaurant system for chef and bartender.

\ No newline at end of file diff --git a/code/controllers/subsystem/shuttle.html b/code/controllers/subsystem/shuttle.html new file mode 100644 index 0000000000000..fac87ea3f82b2 --- /dev/null +++ b/code/controllers/subsystem/shuttle.html @@ -0,0 +1,3 @@ +code/controllers/subsystem/shuttle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/controllers/subsystem/shuttle.dm

MAX_TRANSIT_TILE_COUNTHow many turfs to allow before we stop blocking transit requests
SOFT_TRANSIT_RESERVATION_THRESHOLDHow many turfs to allow before we start freeing up existing "soft reserved" transit docks +If we're under load we want to allow for cycling, but if not we want to preserve already generated docks for use

Define Details

MAX_TRANSIT_TILE_COUNT

How many turfs to allow before we stop blocking transit requests

SOFT_TRANSIT_RESERVATION_THRESHOLD

How many turfs to allow before we start freeing up existing "soft reserved" transit docks +If we're under load we want to allow for cycling, but if not we want to preserve already generated docks for use

\ No newline at end of file diff --git a/code/controllers/subsystem/skills.html b/code/controllers/subsystem/skills.html new file mode 100644 index 0000000000000..b0796367ec2a8 --- /dev/null +++ b/code/controllers/subsystem/skills.html @@ -0,0 +1 @@ +code/controllers/subsystem/skills.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/skills.dm

This subsystem mostly exists to populate and manage the skill singletons.

\ No newline at end of file diff --git a/code/controllers/subsystem/spatial_gridmap.html b/code/controllers/subsystem/spatial_gridmap.html new file mode 100644 index 0000000000000..9490406e80f9e --- /dev/null +++ b/code/controllers/subsystem/spatial_gridmap.html @@ -0,0 +1,5 @@ +code/controllers/subsystem/spatial_gridmap.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/controllers/subsystem/spatial_gridmap.dm

NUMBER_OF_PREGENERATED_ORANGES_EARSthe subsystem creates this many /mob/oranges_ear mob instances during init. allocations that require more than this create more.
/datum/spatial_grid_cellused by /datum/controller/subsystem/spatial_grid to cover every z level so that the coordinates of every turf in the world corresponds to one of these in +the subsystems list of grid cells by z level. each one of these contains content lists holding all atoms meeting a certain criteria that is in our borders. +these datums shouldnt have significant behavior, they should just hold data. the lists are filled and emptied by the subsystem.
/var/SSspatial_grid
BOUNDING_BOX_MINthe left or bottom side index of a box composed of spatial grid cells with the given actual center x or y coordinate
BOUNDING_BOX_MAXthe right or upper side index of a box composed of spatial grid cells with the given center x or y coordinate. +outputted value cant exceed the number of cells on that axis

Define Details

BOUNDING_BOX_MAX

the right or upper side index of a box composed of spatial grid cells with the given center x or y coordinate. +outputted value cant exceed the number of cells on that axis

BOUNDING_BOX_MIN

the left or bottom side index of a box composed of spatial grid cells with the given actual center x or y coordinate

NUMBER_OF_PREGENERATED_ORANGES_EARS

the subsystem creates this many /mob/oranges_ear mob instances during init. allocations that require more than this create more.

\ No newline at end of file diff --git a/code/controllers/subsystem/speech_controller.html b/code/controllers/subsystem/speech_controller.html new file mode 100644 index 0000000000000..2a01062a3eca6 --- /dev/null +++ b/code/controllers/subsystem/speech_controller.html @@ -0,0 +1 @@ +code/controllers/subsystem/speech_controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/speech_controller.dm

/var/SSspeech_controllerverb_manager subsystem just for handling say's
\ No newline at end of file diff --git a/code/controllers/subsystem/sprite_accessories.html b/code/controllers/subsystem/sprite_accessories.html new file mode 100644 index 0000000000000..13adbfce824c0 --- /dev/null +++ b/code/controllers/subsystem/sprite_accessories.html @@ -0,0 +1,2 @@ +code/controllers/subsystem/sprite_accessories.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/controllers/subsystem/sprite_accessories.dm

DEFAULT_SPRITE_LISTThe non gender specific list that we get from init_sprite_accessory_subtypes()
MALE_SPRITE_LISTThe male specific list that we get from init_sprite_accessory_subtypes()
FEMALE_SPRITE_LISTThe female specific list that we get from init_sprite_accessory_subtypes()
/var/SSaccessoriessubsystem that just holds lists of sprite accessories for accession in generating said sprites. +A sprite accessory is something that we add to a human sprite to make them look different. This is hair, facial hair, underwear, mutant bits, etc.

Define Details

DEFAULT_SPRITE_LIST

The non gender specific list that we get from init_sprite_accessory_subtypes()

FEMALE_SPRITE_LIST

The female specific list that we get from init_sprite_accessory_subtypes()

MALE_SPRITE_LIST

The male specific list that we get from init_sprite_accessory_subtypes()

\ No newline at end of file diff --git a/code/controllers/subsystem/tgui.html b/code/controllers/subsystem/tgui.html new file mode 100644 index 0000000000000..d3dfa69ca2c82 --- /dev/null +++ b/code/controllers/subsystem/tgui.html @@ -0,0 +1,2 @@ +code/controllers/subsystem/tgui.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/tgui.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

/var/SStguitgui subsystem
\ No newline at end of file diff --git a/code/controllers/subsystem/timer.html b/code/controllers/subsystem/timer.html new file mode 100644 index 0000000000000..81d738ea6ac19 --- /dev/null +++ b/code/controllers/subsystem/timer.html @@ -0,0 +1,4 @@ +code/controllers/subsystem/timer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/controllers/subsystem/timer.dm

BUCKET_LENControls how many buckets should be kept, each representing a tick. (1 minutes worth)
BUCKET_POSHelper for getting the correct bucket for a given timer
TIMER_MAXGets the maximum time at which timers will be invoked from buckets, used for deferring to secondary queue
/var/SStimer
/datum/timedeventThis is the actual timer, it contains the callback and necessary data to maintain +the timer.
/proc/_addtimerCreate a new timer and insert it in the queue. +You should not call this directly, and should instead use the addtimer macro, which includes source information.
/proc/deltimerDelete a timer
/proc/timeleftGet the remaining deciseconds on a timer
/proc/updatetimedelayUpdate the delay on an existing LOOPING timer +Will come into effect on the next process

Define Details

BUCKET_LEN

Controls how many buckets should be kept, each representing a tick. (1 minutes worth)

BUCKET_POS

Helper for getting the correct bucket for a given timer

TIMER_MAX

Gets the maximum time at which timers will be invoked from buckets, used for deferring to secondary queue

\ No newline at end of file diff --git a/code/controllers/subsystem/tts.html b/code/controllers/subsystem/tts.html new file mode 100644 index 0000000000000..a43789944b28d --- /dev/null +++ b/code/controllers/subsystem/tts.html @@ -0,0 +1 @@ +code/controllers/subsystem/tts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/tts.dm

/datum/tts_requestA struct containing information on an individual player or mob who has made a TTS request
\ No newline at end of file diff --git a/code/controllers/subsystem/tutorials.html b/code/controllers/subsystem/tutorials.html new file mode 100644 index 0000000000000..85186c49e5fca --- /dev/null +++ b/code/controllers/subsystem/tutorials.html @@ -0,0 +1 @@ +code/controllers/subsystem/tutorials.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/tutorials.dm

/var/SStutorialsNamespace for housing code relating to giving contextual tutorials to users.
\ No newline at end of file diff --git a/code/controllers/subsystem/unplanned_controllers.html b/code/controllers/subsystem/unplanned_controllers.html new file mode 100644 index 0000000000000..2762913bc5463 --- /dev/null +++ b/code/controllers/subsystem/unplanned_controllers.html @@ -0,0 +1 @@ +code/controllers/subsystem/unplanned_controllers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/unplanned_controllers.dm

/var/SSunplanned_controllersHandles making mobs perform lightweight "idle" behaviors such as wandering around when they have nothing planned
\ No newline at end of file diff --git a/code/controllers/subsystem/verb_manager.html b/code/controllers/subsystem/verb_manager.html new file mode 100644 index 0000000000000..290fa26df350e --- /dev/null +++ b/code/controllers/subsystem/verb_manager.html @@ -0,0 +1,3 @@ +code/controllers/subsystem/verb_manager.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/verb_manager.dm

/var/SSverb_managerSSverb_manager, a subsystem that runs every tick and runs through its entire queue without yielding like SSinput. +this exists because of how the byond tick works and where user inputted verbs are put within it.
/proc/_queue_verbqueue a callback for the given verb/verblike proc and any given arguments to the specified verb subsystem, so that they process in the next tick. +intended to only work with verbs or verblike procs called directly from client input, use as part of TRY_QUEUE_VERB() and co.
\ No newline at end of file diff --git a/code/controllers/subsystem/vote.html b/code/controllers/subsystem/vote.html new file mode 100644 index 0000000000000..80c8553cb53ce --- /dev/null +++ b/code/controllers/subsystem/vote.html @@ -0,0 +1 @@ +code/controllers/subsystem/vote.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/controllers/subsystem/vote.dm

vote_fontDefine to mimic a span macro but for the purple font that vote specifically uses.
/datum/action/voteDatum action given to mobs that allows players to vote on the current vote.

Define Details

vote_font

Define to mimic a span macro but for the purple font that vote specifically uses.

\ No newline at end of file diff --git a/code/controllers/subsystem/wardrobe.html b/code/controllers/subsystem/wardrobe.html new file mode 100644 index 0000000000000..20a6dca0c9ac8 --- /dev/null +++ b/code/controllers/subsystem/wardrobe.html @@ -0,0 +1,7 @@ +code/controllers/subsystem/wardrobe.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/wardrobe.dm

/var/SSwardrobeThis subsystem strives to make loading large amounts of select objects as smooth at execution as possible +It preloads a set of types to store, and caches them until requested +Doesn't catch everything mind, this is intentional. There's many types that expect to either +A: Not sit in a list for 2 hours, or B: have extra context passed into them, or for their parent to be their location +You should absolutely not spam this system, it will break things in new and wonderful ways +S close enough for government work though. +Fuck you goonstation
\ No newline at end of file diff --git a/code/controllers/subsystem/weather.html b/code/controllers/subsystem/weather.html new file mode 100644 index 0000000000000..c965150326a87 --- /dev/null +++ b/code/controllers/subsystem/weather.html @@ -0,0 +1 @@ +code/controllers/subsystem/weather.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/weather.dm

/var/SSweatherUsed for all kinds of weather, ex. lavaland ash storms.
\ No newline at end of file diff --git a/code/controllers/subsystem/wiremod_composite.html b/code/controllers/subsystem/wiremod_composite.html new file mode 100644 index 0000000000000..bd5eb4b3b0015 --- /dev/null +++ b/code/controllers/subsystem/wiremod_composite.html @@ -0,0 +1,3 @@ +code/controllers/subsystem/wiremod_composite.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/controllers/subsystem/wiremod_composite.dm

/var/SSwiremod_compositeThis subsystem is to handle creating and storing +composite templates that are used to create composite datatypes +for integrated circuits
\ No newline at end of file diff --git a/code/datums/achievements/_achievement_data.html b/code/datums/achievements/_achievement_data.html new file mode 100644 index 0000000000000..5150e6a2047dd --- /dev/null +++ b/code/datums/achievements/_achievement_data.html @@ -0,0 +1 @@ +code/datums/achievements/_achievement_data.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/achievements/_achievement_data.dm

/datum/achievement_dataDatum that handles
\ No newline at end of file diff --git a/code/datums/achievements/_awards.html b/code/datums/achievements/_awards.html new file mode 100644 index 0000000000000..838fd9d4c18a9 --- /dev/null +++ b/code/datums/achievements/_awards.html @@ -0,0 +1 @@ +code/datums/achievements/_awards.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/achievements/_awards.dm

/datum/award/achievementAchievements are one-off awards for usually doing cool things.
/datum/award/scoreScores are for leaderboarded things, such as killcount of a specific boss
/datum/award/score/achievements_scoreDefining this here 'cause it's the first score a player should see in the Scores category.
\ No newline at end of file diff --git a/code/datums/achievements/mafia_achievements.html b/code/datums/achievements/mafia_achievements.html new file mode 100644 index 0000000000000..da59b628f9299 --- /dev/null +++ b/code/datums/achievements/mafia_achievements.html @@ -0,0 +1 @@ +code/datums/achievements/mafia_achievements.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/achievements/mafia_achievements.dm

/datum/award/achievement/mafia/assistantALL THE ACHIEVEMENTS FOR WINNING A ROUND AS A ROLE
/datum/award/achievement/mafia/universally_hatedALL THE ACHIEVEMENTS FOR MISC MAFIA ODDITIES
\ No newline at end of file diff --git a/code/datums/achievements/misc_scores.html b/code/datums/achievements/misc_scores.html new file mode 100644 index 0000000000000..34dcfec7c444d --- /dev/null +++ b/code/datums/achievements/misc_scores.html @@ -0,0 +1 @@ +code/datums/achievements/misc_scores.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/achievements/misc_scores.dm

/datum/award/score/hardcore_randomHow many times did we survive being a cripple?
/datum/award/score/maintenance_pillHow many maintenance pills did you eat?
/datum/award/score/intento_scoreHow high of a score on the Intento did we get?
/datum/award/score/style_scoreWhat's the highest amount of style points we've gotten?
\ No newline at end of file diff --git a/code/datums/actions/action.html b/code/datums/actions/action.html new file mode 100644 index 0000000000000..40f8365e7c6ad --- /dev/null +++ b/code/datums/actions/action.html @@ -0,0 +1 @@ +code/datums/actions/action.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/actions/action.dm

/datum/actionA simple base for an modular behavior attached to atom or datum.
\ No newline at end of file diff --git a/code/datums/actions/cooldown_action.html b/code/datums/actions/cooldown_action.html new file mode 100644 index 0000000000000..1b387bec76275 --- /dev/null +++ b/code/datums/actions/cooldown_action.html @@ -0,0 +1 @@ +code/datums/actions/cooldown_action.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/actions/cooldown_action.dm

/datum/action/cooldownPreset for an action that has a cooldown.
\ No newline at end of file diff --git a/code/datums/actions/items/stealth_box.html b/code/datums/actions/items/stealth_box.html new file mode 100644 index 0000000000000..595273438752e --- /dev/null +++ b/code/datums/actions/items/stealth_box.html @@ -0,0 +1 @@ +code/datums/actions/items/stealth_box.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/actions/items/stealth_box.dm

/datum/action/item_action/agent_boxMGS BOX!
\ No newline at end of file diff --git a/code/datums/actions/mobs/assume_form.html b/code/datums/actions/mobs/assume_form.html new file mode 100644 index 0000000000000..0b72357876264 --- /dev/null +++ b/code/datums/actions/mobs/assume_form.html @@ -0,0 +1,2 @@ +code/datums/actions/mobs/assume_form.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/actions/mobs/assume_form.dm

/datum/action/cooldown/mob_cooldown/assume_formAllows a mob to assume the form of another item or mob. +Warning, this will likely shit the bricks if you add this action to anything more sophisticated than a basic mob- this isn't built for anything carbon-wise.
\ No newline at end of file diff --git a/code/datums/actions/mobs/charge_apc.html b/code/datums/actions/mobs/charge_apc.html new file mode 100644 index 0000000000000..3a7c2ac9273cb --- /dev/null +++ b/code/datums/actions/mobs/charge_apc.html @@ -0,0 +1 @@ +code/datums/actions/mobs/charge_apc.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/actions/mobs/charge_apc.dm

CHARGE_AMOUNThow much charge are we giving off to an APC?

Define Details

CHARGE_AMOUNT

how much charge are we giving off to an APC?

\ No newline at end of file diff --git a/code/datums/actions/mobs/create_legion_turrets.html b/code/datums/actions/mobs/create_legion_turrets.html new file mode 100644 index 0000000000000..4488a46476dc3 --- /dev/null +++ b/code/datums/actions/mobs/create_legion_turrets.html @@ -0,0 +1 @@ +code/datums/actions/mobs/create_legion_turrets.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/actions/mobs/create_legion_turrets.dm

/obj/structure/legionturretA basic turret that shoots at nearby mobs. Intended to be used for the legion megafauna.
/obj/projectile/beam/legionUsed for the legion turret.
/obj/effect/projectile/tracer/legion/tracerUsed for the legion turret tracer.
/obj/effect/projectile/tracer/legionUsed for the legion turret beam.
\ No newline at end of file diff --git a/code/datums/actions/mobs/defensive_mode.html b/code/datums/actions/mobs/defensive_mode.html new file mode 100644 index 0000000000000..0dcd858931640 --- /dev/null +++ b/code/datums/actions/mobs/defensive_mode.html @@ -0,0 +1 @@ +code/datums/actions/mobs/defensive_mode.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/actions/mobs/defensive_mode.dm

/datum/action/cooldown/mob_cooldown/defensive_modeAn ability that allows the viper spider to get in an defensive mode at the cost of speed.
\ No newline at end of file diff --git a/code/datums/actions/mobs/fire_breath.html b/code/datums/actions/mobs/fire_breath.html new file mode 100644 index 0000000000000..3153f32cd0059 --- /dev/null +++ b/code/datums/actions/mobs/fire_breath.html @@ -0,0 +1 @@ +code/datums/actions/mobs/fire_breath.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/actions/mobs/fire_breath.dm

/datum/action/cooldown/mob_cooldown/fire_breath/coneShoot three lines of fire in a sort of fork pattern approximating a cone
/datum/action/cooldown/mob_cooldown/fire_breath/mass_fireShoot fire in a whole bunch of directions
\ No newline at end of file diff --git a/code/datums/actions/mobs/sign_language.html b/code/datums/actions/mobs/sign_language.html new file mode 100644 index 0000000000000..74e54503eef4c --- /dev/null +++ b/code/datums/actions/mobs/sign_language.html @@ -0,0 +1,6 @@ +code/datums/actions/mobs/sign_language.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/actions/mobs/sign_language.dm

/datum/action/innate/sign_languageAllows a Carbon to toggle sign language on/off. The button is invisible for mute Carbons. +Theory of Operation: +A. If TRAIT_SIGN_LANG is added/removed, and the button is visible, then update the button. +B. React to presence of trait TRAIT_MUTE for quality/convenience purposes: +C. If TRAIT_MUTE is added, then activate and hide the Action. +D. If TRAIT_MUTE is then removed, then show the Action.
\ No newline at end of file diff --git a/code/datums/ai.html b/code/datums/ai.html new file mode 100644 index 0000000000000..5bb21ec16aecd --- /dev/null +++ b/code/datums/ai.html @@ -0,0 +1,13 @@ +code/datums/ai/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

AI controllers

Introduction

+

Our AI controller system is an attempt at making it possible to create modularized AI that stores its behavior in datums, while keeping state and decision making in a controller. This allows a more versatile way of creating AI that doesn't rely on OOP as much, and doesn't clutter up the Life() code in Mobs.

+

AI Controllers

+

A datum that can be added to any atom in the game. Similarly to components, they might only support a given subtype (e.g. /mob/living), but the idea is that theoretically, you could apply a specific AI controller to a big a group of different types as possible and it would still work.

+

These datums handle both the normal movement of mobs, but also their decision making, deciding which actions they will take based on the checks you put into their SelectBehaviors proc.

+

If behaviors are selected, and the AI is in range, it will try to perform them. It runs all the behaviors it currently has in parallel; allowing for it to for example screech at someone while trying to attack them. As long as it has behaviors running, it will not try to generate new plans, making it not waste CPU when it already has an active goal.

+

They also hold data for any of the actions they might need to use, such as cooldowns, whether or not they're currently fighting, etcetera this is stored in the blackboard, more information on that below.

+

Blackboard

+

The blackboard is an associated list keyed with strings and with values of whatever you want. These store information the mob has such as "Am I attacking someone", "Do I have a weapon". By using an associated list like this, no data needs to be stored on the actions themselves, and you could make actions that work on multiple ai controllers if you so pleased by making the key to use a variable.

+

AI Behavior

+

AI behaviors are the actions an AI can take. These can range from "Do an emote" to "Attack this target until he is dead". They are singletons and should contain nothing but static data. Any dynamic data should be stored in the blackboard, to allow different controllers to use the same behaviors.

+

Guides:

+

Making Your AI: Quickly runs through how to make an ai controller for anything with a step by step development of one.

\ No newline at end of file diff --git a/code/datums/ai/_ai_behavior.html b/code/datums/ai/_ai_behavior.html new file mode 100644 index 0000000000000..62279e9ece7bc --- /dev/null +++ b/code/datums/ai/_ai_behavior.html @@ -0,0 +1 @@ +code/datums/ai/_ai_behavior.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/_ai_behavior.dm

/datum/ai_behaviorAbstract class for an action an AI can take, can range from movement to grabbing a nearby weapon.
\ No newline at end of file diff --git a/code/datums/ai/_ai_controller.html b/code/datums/ai/_ai_controller.html new file mode 100644 index 0000000000000..344bde17d7c50 --- /dev/null +++ b/code/datums/ai/_ai_controller.html @@ -0,0 +1,9 @@ +code/datums/ai/_ai_controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/ai/_ai_controller.dm

TRACK_AI_DATUM_TARGETUsed to manage references to datum by AI controllers
CLEAR_AI_DATUM_TARGETUsed to clear previously set reference handing by AI controllers
TRAIT_AI_TRACKINGUsed for above to track all the keys that have registered a signal

Define Details

CLEAR_AI_DATUM_TARGET

Used to clear previously set reference handing by AI controllers

+

TRACK_AI_DATUM_TARGET

Used to manage references to datum by AI controllers

+

TRAIT_AI_TRACKING

Used for above to track all the keys that have registered a signal

\ No newline at end of file diff --git a/code/datums/ai/_ai_planning_subtree.html b/code/datums/ai/_ai_planning_subtree.html new file mode 100644 index 0000000000000..82aca8ab092bf --- /dev/null +++ b/code/datums/ai/_ai_planning_subtree.html @@ -0,0 +1 @@ +code/datums/ai/_ai_planning_subtree.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/_ai_planning_subtree.dm

/datum/ai_planning_subtreeA subtree is attached to a controller and is occasionally called by /ai_controller/SelectBehaviors(), this mainly exists to act as a way to subtype and modify SelectBehaviors() without needing to subtype the ai controller itself
\ No newline at end of file diff --git a/code/datums/ai/_item_behaviors.html b/code/datums/ai/_item_behaviors.html new file mode 100644 index 0000000000000..dcfe1ec04291d --- /dev/null +++ b/code/datums/ai/_item_behaviors.html @@ -0,0 +1 @@ +code/datums/ai/_item_behaviors.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/_item_behaviors.dm

/datum/ai_behavior/item_escape_graspThis behavior is for obj/items, it is used to free themselves out of the hands of whoever is holding them
/datum/ai_behavior/item_move_close_and_attackThis behavior is for obj/items, it is used to move closer to a target and throw themselves towards them.
\ No newline at end of file diff --git a/code/datums/ai/babies/babies_behaviors.html b/code/datums/ai/babies/babies_behaviors.html new file mode 100644 index 0000000000000..3291290b0491b --- /dev/null +++ b/code/datums/ai/babies/babies_behaviors.html @@ -0,0 +1 @@ +code/datums/ai/babies/babies_behaviors.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/babies/babies_behaviors.dm

/datum/ai_behavior/find_partnerFind a compatible, living partner, if we're also alone.
/datum/ai_behavior/make_babiesReproduce.
\ No newline at end of file diff --git a/code/datums/ai/babies/babies_subtrees.html b/code/datums/ai/babies/babies_subtrees.html new file mode 100644 index 0000000000000..e5f08c7bc5ded --- /dev/null +++ b/code/datums/ai/babies/babies_subtrees.html @@ -0,0 +1 @@ +code/datums/ai/babies/babies_subtrees.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/babies/babies_subtrees.dm

/datum/ai_planning_subtree/make_babiesReproduce with a similar mob.
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/befriend_target.html b/code/datums/ai/basic_mobs/basic_ai_behaviors/befriend_target.html new file mode 100644 index 0000000000000..6575560a9caaf --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/befriend_target.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_ai_behaviors/befriend_target.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_ai_behaviors/befriend_target.dm

/datum/ai_behavior/befriend_targetbehavior to befriend any targets
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/nearest_targeting.html b/code/datums/ai/basic_mobs/basic_ai_behaviors/nearest_targeting.html new file mode 100644 index 0000000000000..835224962e233 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/nearest_targeting.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_ai_behaviors/nearest_targeting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_ai_behaviors/nearest_targeting.dm

/datum/ai_behavior/find_potential_targets/nearestPicks targets based on which one is closest to you, choice between targets at equal distance is arbitrary
/datum/ai_behavior/target_from_retaliate_list/nearestAs above but targets have been filtered from the 'retaliate' blackboard list
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/pick_up_item.html b/code/datums/ai/basic_mobs/basic_ai_behaviors/pick_up_item.html new file mode 100644 index 0000000000000..aeac2f32f713f --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/pick_up_item.html @@ -0,0 +1,3 @@ +code/datums/ai/basic_mobs/basic_ai_behaviors/pick_up_item.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_ai_behaviors/pick_up_item.dm

/datum/ai_behavior/pick_up_itemSimple behaviour for picking up an item we are already in range of. +The blackboard storage key isn't very safe because it doesn't make sense to register signals in here. +Use the AI held item component to manage this.
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/run_away_from_target.html b/code/datums/ai/basic_mobs/basic_ai_behaviors/run_away_from_target.html new file mode 100644 index 0000000000000..8907b4384fc63 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/run_away_from_target.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_ai_behaviors/run_away_from_target.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_ai_behaviors/run_away_from_target.dm

/datum/ai_behavior/run_away_from_targetMove to a position further away from your current target
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/step_towards_turf.html b/code/datums/ai/basic_mobs/basic_ai_behaviors/step_towards_turf.html new file mode 100644 index 0000000000000..76bbd462d12c5 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/step_towards_turf.html @@ -0,0 +1,3 @@ +code/datums/ai/basic_mobs/basic_ai_behaviors/step_towards_turf.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_ai_behaviors/step_towards_turf.dm

/datum/ai_behavior/step_towards_turfMoves a short distance towards a location repeatedly until you arrive at the destination. +You'd use this over travel_towards if you're travelling a long distance over a long time, because the AI controller has a maximum range.
/datum/ai_behavior/step_towards_turf/in_areaMoves a short distance towards a location in an area +Unlike step_towards_turf it will reacquire a new turf from the area if it loses its target
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/stop_and_stare.html b/code/datums/ai/basic_mobs/basic_ai_behaviors/stop_and_stare.html new file mode 100644 index 0000000000000..a1e0727ade43e --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/stop_and_stare.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_ai_behaviors/stop_and_stare.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_ai_behaviors/stop_and_stare.dm

/datum/ai_behavior/stop_and_stareMakes a mob simply stop and stare at a movable... yea...
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/targeted_mob_ability.html b/code/datums/ai/basic_mobs/basic_ai_behaviors/targeted_mob_ability.html new file mode 100644 index 0000000000000..7d5111616ad5a --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/targeted_mob_ability.html @@ -0,0 +1,2 @@ +code/datums/ai/basic_mobs/basic_ai_behaviors/targeted_mob_ability.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_ai_behaviors/targeted_mob_ability.dm

/datum/ai_behavior/targeted_mob_abilityAttempts to use a mob's cooldown ability on a target
/datum/ai_behavior/targeted_mob_ability/and_plan_executeAttempts to use a mob's cooldown ability on a target and then move the target into a special target blackboard datum +Doesn't need another subtype to clear BB_BASIC_MOB_EXECUTION_TARGET because it will be the target key for the normal action
/datum/ai_behavior/targeted_mob_ability/and_clear_targetAttempts to use a mob's cooldown ability on a target and releases the target when the action completes
/datum/ai_behavior/targeted_mob_ability/min_rangeAttempts to move into the provided range and then use a mob's cooldown ability on a target
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/targeting.html b/code/datums/ai/basic_mobs/basic_ai_behaviors/targeting.html new file mode 100644 index 0000000000000..d374d92bc2e1e --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/targeting.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_ai_behaviors/targeting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_ai_behaviors/targeting.dm

/datum/ai_behavior/find_potential_targets/prioritize_traitTargets with the trait specified by the BB_TARGET_PRIORITY_TRAIT blackboard key will be prioritized over the rest.
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/tipped_reaction.html b/code/datums/ai/basic_mobs/basic_ai_behaviors/tipped_reaction.html new file mode 100644 index 0000000000000..d33e30ae2d378 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/tipped_reaction.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_ai_behaviors/tipped_reaction.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_ai_behaviors/tipped_reaction.dm

/datum/ai_behavior/tipped_reactiontype of tipped reaction that is akin to puppy dog eyes
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/travel_towards.html b/code/datums/ai/basic_mobs/basic_ai_behaviors/travel_towards.html new file mode 100644 index 0000000000000..9bba66818bdc4 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/travel_towards.html @@ -0,0 +1,3 @@ +code/datums/ai/basic_mobs/basic_ai_behaviors/travel_towards.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_ai_behaviors/travel_towards.dm

/datum/ai_behavior/travel_towardsMoves towards the atom in the passed blackboard key. +Planning continues during this action so it can be interrupted by higher priority actions.
/datum/ai_behavior/travel_towards_atomTravel towards an atom you pass directly from the controller rather than a blackboard key. +You might need to do this to avoid repeating some checks in both a controller and an action.
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/ventcrawling.html b/code/datums/ai/basic_mobs/basic_ai_behaviors/ventcrawling.html new file mode 100644 index 0000000000000..e2e5fdea8e0be --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/ventcrawling.html @@ -0,0 +1,6 @@ +code/datums/ai/basic_mobs/basic_ai_behaviors/ventcrawling.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_ai_behaviors/ventcrawling.dm

/datum/ai_behavior/crawl_through_ventsWe hop into the vents through a vent outlet, and then crawl around a bit. Jolly good times. +This also assumes that we are on the turf that the vent outlet is on. If it isn't, shit. +Warning: this was really snowflake code lifted from an obscure feature that likely has not been touched for over five years years. +Something that isn't implemented is the ability to actually crawl through vents ourselves because I think that's just a waste of time for the same effect (instead of psuedo-teleportation, do REAL forceMoving) +If you are seriously considering using this component, it would be a great idea to extend this proc to be more versatile/less overpowered - the mobs that currently implement this benefit the most +since they are weak as shit with only five health. Up to you though, don't take what's written here as gospel.
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/wounded_targeting.html b/code/datums/ai/basic_mobs/basic_ai_behaviors/wounded_targeting.html new file mode 100644 index 0000000000000..9ad8a9f5c4785 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/wounded_targeting.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_ai_behaviors/wounded_targeting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_ai_behaviors/wounded_targeting.dm

/datum/ai_behavior/find_potential_targets/most_woundedPicks targets based on which one has the lowest health
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/attack_adjacent_target.html b/code/datums/ai/basic_mobs/basic_subtrees/attack_adjacent_target.html new file mode 100644 index 0000000000000..2e0d56ffdc413 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/attack_adjacent_target.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/attack_adjacent_target.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/attack_adjacent_target.dm

/datum/ai_planning_subtree/basic_melee_attack_subtree/opportunisticAttack something which is already adjacent to us, without ending planning
/datum/ai_behavior/basic_melee_attack/opportunisticAttack something which is already adjacent to us without moving
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/attack_obstacle_in_path.html b/code/datums/ai/basic_mobs/basic_subtrees/attack_obstacle_in_path.html new file mode 100644 index 0000000000000..1628b501bfc19 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/attack_obstacle_in_path.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/attack_obstacle_in_path.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/attack_obstacle_in_path.dm

/datum/ai_planning_subtree/attack_obstacle_in_pathIf there's something between us and our target then we need to queue a behaviour to make it not be there
/datum/ai_behavior/attack_obstructionsSomething is in our way, get it outta here
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/call_reinforcements.html b/code/datums/ai/basic_mobs/basic_subtrees/call_reinforcements.html new file mode 100644 index 0000000000000..d7fe3df5c9b24 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/call_reinforcements.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/call_reinforcements.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/call_reinforcements.dm

/datum/ai_planning_subtree/call_reinforcementsCalls all nearby mobs that share a faction to give backup in combat
/datum/ai_behavior/call_reinforcementsCall out to all mobs in the specified range for help
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/capricious_retaliate.html b/code/datums/ai/basic_mobs/basic_subtrees/capricious_retaliate.html new file mode 100644 index 0000000000000..9a0290b7f0c75 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/capricious_retaliate.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/capricious_retaliate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/capricious_retaliate.dm

/datum/ai_planning_subtree/capricious_retaliateAdd or remove people to our retaliation shitlist just on an arbitrary whim
/datum/ai_behavior/capricious_retaliateAdd or remove people to our retaliation shitlist just on an arbitrary whim
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/find_food.html b/code/datums/ai/basic_mobs/basic_subtrees/find_food.html new file mode 100644 index 0000000000000..3a54f5306e2e7 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/find_food.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/find_food.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/find_food.dm

/datum/ai_planning_subtree/find_foodsimilar to finding a target but looks for food types in the // the what?
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/find_targets_prioritize_traits.html b/code/datums/ai/basic_mobs/basic_subtrees/find_targets_prioritize_traits.html new file mode 100644 index 0000000000000..2a8ef13f90276 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/find_targets_prioritize_traits.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/find_targets_prioritize_traits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/find_targets_prioritize_traits.dm

/datum/ai_planning_subtree/find_target_prioritize_traitsFind something with a specific trait to run from
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/flee_target.html b/code/datums/ai/basic_mobs/basic_subtrees/flee_target.html new file mode 100644 index 0000000000000..13f1f0c029e28 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/flee_target.html @@ -0,0 +1,2 @@ +code/datums/ai/basic_mobs/basic_subtrees/flee_target.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/flee_target.dm

/datum/ai_planning_subtree/flee_targetTry to escape from your current target, without performing any other actions.
/datum/ai_planning_subtree/flee_target/from_flee_keyTry to escape from your current target, without performing any other actions. +Reads from some fleeing-specific targeting keys rather than the current mob target.
/datum/ai_planning_subtree/flee_target/from_fishermanA subtype that forces the mob to flee from targets with the scary fisherman trait anyway.
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/go_for_swim.html b/code/datums/ai/basic_mobs/basic_subtrees/go_for_swim.html new file mode 100644 index 0000000000000..877f4406db29d --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/go_for_swim.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/go_for_swim.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/go_for_swim.dm

/datum/ai_planning_subtree/go_for_swimsubtree to go and swim!
/datum/ai_behavior/find_and_set/swim_alternatefind land if its time to get out of water, otherwise find water
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/maintain_distance.html b/code/datums/ai/basic_mobs/basic_subtrees/maintain_distance.html new file mode 100644 index 0000000000000..fc6854812b6ad --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/maintain_distance.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/maintain_distance.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/maintain_distance.dm

/datum/ai_planning_subtree/maintain_distanceStep away if too close, or towards if too far
/datum/ai_behavior/step_awayTake one step away
/datum/ai_behavior/pursue_to_rangePursue a target until we are within a provided range
/datum/ai_behavior/cover_minimum_distanceinstead of taking a single step, we cover the entire distance
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/move_to_cardinal.html b/code/datums/ai/basic_mobs/basic_subtrees/move_to_cardinal.html new file mode 100644 index 0000000000000..19d28f2e280e9 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/move_to_cardinal.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/move_to_cardinal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/move_to_cardinal.dm

/datum/ai_planning_subtree/move_to_cardinalTry to line up with a cardinal direction of your target
/datum/ai_behavior/move_to_cardinalTry to line up with a cardinal direction of your target
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/opportunistic_ventcrawler.html b/code/datums/ai/basic_mobs/basic_subtrees/opportunistic_ventcrawler.html new file mode 100644 index 0000000000000..6da5c9f9d4844 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/opportunistic_ventcrawler.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/opportunistic_ventcrawler.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/opportunistic_ventcrawler.dm

/datum/ai_planning_subtree/opportunistic_ventcrawlerOpportunistically searches for and hides/scurries through vents.
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/prepare_travel_to_destination.html b/code/datums/ai/basic_mobs/basic_subtrees/prepare_travel_to_destination.html new file mode 100644 index 0000000000000..98ff545656690 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/prepare_travel_to_destination.html @@ -0,0 +1,2 @@ +code/datums/ai/basic_mobs/basic_subtrees/prepare_travel_to_destination.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/prepare_travel_to_destination.dm

/datum/ai_planning_subtree/prepare_travel_to_destinationSubtree that checks if we are on the target atom's tile, and sets it as a travel target if not +The target is taken from the blackboard. This one always requires a specific implementation.
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/ranged_skirmish.html b/code/datums/ai/basic_mobs/basic_subtrees/ranged_skirmish.html new file mode 100644 index 0000000000000..2954fce79a8e7 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/ranged_skirmish.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/ranged_skirmish.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/ranged_skirmish.dm

/datum/ai_planning_subtree/ranged_skirmishFire a ranged attack without interrupting movement.
/datum/ai_behavior/ranged_skirmishHow often will we try to perform our ranged attack?
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/run_emote.html b/code/datums/ai/basic_mobs/basic_subtrees/run_emote.html new file mode 100644 index 0000000000000..7b47dde214a92 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/run_emote.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/run_emote.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/run_emote.dm

/datum/ai_planning_subtree/run_emoteIntermittently run an emote
/datum/ai_behavior/run_emoteEmote from a blackboard key
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/shapechange_ambush.html b/code/datums/ai/basic_mobs/basic_subtrees/shapechange_ambush.html new file mode 100644 index 0000000000000..12236c294e5b1 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/shapechange_ambush.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/shapechange_ambush.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/shapechange_ambush.dm

/datum/ai_planning_subtree/shapechange_ambushShapeshift when we have no target, until someone has been nearby for long enough
/datum/ai_behavior/use_mob_ability/shapeshiftSelects a random shapeshift ability before shifting
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/simple_find_nearest_target_to_flee.html b/code/datums/ai/basic_mobs/basic_subtrees/simple_find_nearest_target_to_flee.html new file mode 100644 index 0000000000000..869a067df39ac --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/simple_find_nearest_target_to_flee.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/simple_find_nearest_target_to_flee.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/simple_find_nearest_target_to_flee.dm

/datum/ai_planning_subtree/simple_find_nearest_target_to_fleeFind the nearest thing which we assume is hostile and set it as the flee target
/datum/ai_planning_subtree/find_nearest_thing_which_attacked_me_to_fleeFind the nearest thing on our list of 'things which have done damage to me' and set it as the flee target
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/simple_find_wounded_target.html b/code/datums/ai/basic_mobs/basic_subtrees/simple_find_wounded_target.html new file mode 100644 index 0000000000000..954b6c60ef3c6 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/simple_find_wounded_target.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/simple_find_wounded_target.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/simple_find_wounded_target.dm

/datum/ai_planning_subtree/simple_find_wounded_targetSelects the most wounded potential target that we can see
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/sleep_with_no_target.html b/code/datums/ai/basic_mobs/basic_subtrees/sleep_with_no_target.html new file mode 100644 index 0000000000000..0a05bee093e71 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/sleep_with_no_target.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/sleep_with_no_target.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/sleep_with_no_target.dm

/datum/ai_planning_subtree/sleep_with_no_targetDisables AI after a certain amount of time spent with no target, you will have to enable the AI again somewhere else
/datum/ai_behavior/sleep_after_targetless_timeDisables AI after a certain amount of time spent with no target, you will have to enable the AI again somewhere else
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.html b/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.html new file mode 100644 index 0000000000000..71b95ab5b7137 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm

/datum/ai_planning_subtree/random_speech/rabbit/easterFor the easter subvariant of rabbits, these ones actually speak catchphrases.
/datum/ai_planning_subtree/random_speech/rabbit/easter/spaceThese ones have a space mask on, so their catchphrases are muffled.
/datum/ai_planning_subtree/random_speech/cow/wisdomunlike normal cows, wisdom cows speak of wisdom and won't shut the fuck up
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/stare_at_thing.html b/code/datums/ai/basic_mobs/basic_subtrees/stare_at_thing.html new file mode 100644 index 0000000000000..e6cbcaf3553cc --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/stare_at_thing.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/stare_at_thing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/stare_at_thing.dm

/datum/ai_planning_subtree/stare_at_thingLocate a thing (practically any atom) to stop and stare at.
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/target_retaliate.html b/code/datums/ai/basic_mobs/basic_subtrees/target_retaliate.html new file mode 100644 index 0000000000000..7e14aa9e622a7 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/target_retaliate.html @@ -0,0 +1,4 @@ +code/datums/ai/basic_mobs/basic_subtrees/target_retaliate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/target_retaliate.dm

/datum/ai_planning_subtree/target_retaliateSets the BB target to a mob which you can see and who has recently attacked you
/datum/ai_planning_subtree/target_retaliate/to_fleePlaces a mob which you can see and who has recently attacked you into some 'run away from this' AI keys +Can use a different targeting strategy than you use to select attack targets +Not required if fleeing is the only target behaviour or uses the same target datum
/datum/ai_behavior/target_from_retaliate_listPicks a target from a provided list of atoms who have been pissing you off +You will probably need /datum/element/ai_retaliate to take advantage of this unless you're populating the blackboard yourself
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/targeted_mob_ability.html b/code/datums/ai/basic_mobs/basic_subtrees/targeted_mob_ability.html new file mode 100644 index 0000000000000..8e113eb515737 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/targeted_mob_ability.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/targeted_mob_ability.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/targeted_mob_ability.dm

/datum/ai_planning_subtree/targeted_mob_abilityAttempts to use a mob ability on a target
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/teleport_away_from_target.html b/code/datums/ai/basic_mobs/basic_subtrees/teleport_away_from_target.html new file mode 100644 index 0000000000000..cf7069c6a57f1 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/teleport_away_from_target.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/teleport_away_from_target.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/teleport_away_from_target.dm

/datum/ai_planning_subtree/teleport_away_from_targetbehavior to activate ability to escape from target
/datum/ai_behavior/find_furthest_turf_from_targetfind furtherst turf target so we may teleport to it
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/tipped_subtree.html b/code/datums/ai/basic_mobs/basic_subtrees/tipped_subtree.html new file mode 100644 index 0000000000000..edd35d818dc93 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/tipped_subtree.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/tipped_subtree.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/tipped_subtree.dm

/datum/ai_planning_subtree/tip_reactionused by cows
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/travel_to_point.html b/code/datums/ai/basic_mobs/basic_subtrees/travel_to_point.html new file mode 100644 index 0000000000000..9632a63ceed54 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/travel_to_point.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/basic_subtrees/travel_to_point.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/travel_to_point.dm

/datum/ai_planning_subtree/travel_to_pointSimply walk to a location
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/basic_subtrees/use_mob_ability.html b/code/datums/ai/basic_mobs/basic_subtrees/use_mob_ability.html new file mode 100644 index 0000000000000..778e466669b46 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/use_mob_ability.html @@ -0,0 +1,2 @@ +code/datums/ai/basic_mobs/basic_subtrees/use_mob_ability.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/basic_subtrees/use_mob_ability.dm

/datum/ai_planning_subtree/use_mob_abilitySimple behaviours which simply try to use an ability whenever it is available. +For something which wants a target try targeted_mob_ability.
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/generic_controllers.html b/code/datums/ai/basic_mobs/generic_controllers.html new file mode 100644 index 0000000000000..13f1e92fa2b22 --- /dev/null +++ b/code/datums/ai/basic_mobs/generic_controllers.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/generic_controllers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/generic_controllers.dm

/datum/ai_controller/basic_controller/simple_hostileThe most basic AI tree which just finds a guy and then runs at them to click them
/datum/ai_controller/basic_controller/simple_hostile_obstaclesFind a target, walk at target, attack intervening obstacles
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/pet_commands/fetch.html b/code/datums/ai/basic_mobs/pet_commands/fetch.html new file mode 100644 index 0000000000000..32487843cdd28 --- /dev/null +++ b/code/datums/ai/basic_mobs/pet_commands/fetch.html @@ -0,0 +1,3 @@ +code/datums/ai/basic_mobs/pet_commands/fetch.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/pet_commands/fetch.dm

/datum/ai_behavior/fetch_seekTraverse to a target with the intention of picking it up. +If we can't do that, add it to a list of ignored items.
/datum/ai_behavior/deliver_fetched_itemThe second half of fetching, deliver the item to a target.
/datum/ai_behavior/eat_fetched_snackThe alternate second half of fetching, attack the item if we can eat it. +Or make pleading eyes at someone who has picked it up.
/datum/ai_behavior/forget_failed_fetchesClear our failed fetch list every so often
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/pet_commands/pet_command_planning.html b/code/datums/ai/basic_mobs/pet_commands/pet_command_planning.html new file mode 100644 index 0000000000000..18bc31fd81367 --- /dev/null +++ b/code/datums/ai/basic_mobs/pet_commands/pet_command_planning.html @@ -0,0 +1,4 @@ +code/datums/ai/basic_mobs/pet_commands/pet_command_planning.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/pet_commands/pet_command_planning.dm

/datum/ai_planning_subtree/pet_planningPerform behaviour based on what pet commands you have received. This is delegated to the pet command datum. +When a command is set, we blackboard a key to our currently active command. +The blackboard also has a weak reference to every command datum available to us. +We use the key to figure out which datum to run, then ask it to figure out how to execute its action.
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/pet_commands/pet_follow_friend.html b/code/datums/ai/basic_mobs/pet_commands/pet_follow_friend.html new file mode 100644 index 0000000000000..8ba235a3fbed4 --- /dev/null +++ b/code/datums/ai/basic_mobs/pet_commands/pet_follow_friend.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/pet_commands/pet_follow_friend.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/pet_commands/pet_follow_friend.dm

/datum/ai_behavior/pet_follow_friendJust keep following the target until the command is interrupted
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/pet_commands/pet_use_targeted_ability.html b/code/datums/ai/basic_mobs/pet_commands/pet_use_targeted_ability.html new file mode 100644 index 0000000000000..cd968505947d7 --- /dev/null +++ b/code/datums/ai/basic_mobs/pet_commands/pet_use_targeted_ability.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/pet_commands/pet_use_targeted_ability.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/pet_commands/pet_use_targeted_ability.dm

/datum/ai_behavior/pet_use_abilityPet owners can't see their pet's ability cooldowns so we keep attempting to use an ability until we succeed
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/pet_commands/play_dead.html b/code/datums/ai/basic_mobs/pet_commands/play_dead.html new file mode 100644 index 0000000000000..250e3f737eeee --- /dev/null +++ b/code/datums/ai/basic_mobs/pet_commands/play_dead.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/pet_commands/play_dead.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/pet_commands/play_dead.dm

/datum/ai_behavior/play_deadPretend to be dead
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/targeting_strategies/_targeting_strategy.html b/code/datums/ai/basic_mobs/targeting_strategies/_targeting_strategy.html new file mode 100644 index 0000000000000..c8dfd01292496 --- /dev/null +++ b/code/datums/ai/basic_mobs/targeting_strategies/_targeting_strategy.html @@ -0,0 +1,2 @@ +code/datums/ai/basic_mobs/targeting_strategies/_targeting_strategy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/targeting_strategies/_targeting_strategy.dm

/datum/targeting_strategyDatum for basic mobs to define what they can attack, +Global, just like ai_behaviors
/datum/targeting_strategy/fishingA very simple targeting strategy that checks that the target is a valid fishing spot.
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.html b/code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.html new file mode 100644 index 0000000000000..d68220df50b1a --- /dev/null +++ b/code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.html @@ -0,0 +1,2 @@ +code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.dm

/datum/targeting_strategy/basic/allow_itemsSubtype more forgiving for items. +Careful, this can go wrong and keep a mob hyper-focused on an item it can't lose aggro on
/datum/targeting_strategy/basic/of_sizeSubtype which searches for mobs of a size relative to ours
/datum/targeting_strategy/basic/same_factionMakes the mob only attack their own faction. Useful mostly if their attacks do something helpful (e.g. healing touch).
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/targeting_strategies/dont_target_friends.html b/code/datums/ai/basic_mobs/targeting_strategies/dont_target_friends.html new file mode 100644 index 0000000000000..198053329c5a6 --- /dev/null +++ b/code/datums/ai/basic_mobs/targeting_strategies/dont_target_friends.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/targeting_strategies/dont_target_friends.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/targeting_strategies/dont_target_friends.dm

/datum/targeting_strategy/basic/not_friendsDon't target an atom in our friends list (or turfs), anything else is fair game
/datum/targeting_strategy/basic/not_friends/allow_itemsSubtype that allows us to target items while deftly avoiding attacking our allies. Be careful when it comes to targeting items as an AI could get trapped targeting something it can't destroy.
\ No newline at end of file diff --git a/code/datums/ai/basic_mobs/targeting_strategies/with_object.html b/code/datums/ai/basic_mobs/targeting_strategies/with_object.html new file mode 100644 index 0000000000000..60fbedc3035c1 --- /dev/null +++ b/code/datums/ai/basic_mobs/targeting_strategies/with_object.html @@ -0,0 +1 @@ +code/datums/ai/basic_mobs/targeting_strategies/with_object.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/basic_mobs/targeting_strategies/with_object.dm

/datum/targeting_strategy/basic/holding_objectFind mobs who are holding the bb configurable object type
\ No newline at end of file diff --git a/code/datums/ai/cursed/cursed_controller.html b/code/datums/ai/cursed/cursed_controller.html new file mode 100644 index 0000000000000..306bb45150467 --- /dev/null +++ b/code/datums/ai/cursed/cursed_controller.html @@ -0,0 +1,3 @@ +code/datums/ai/cursed/cursed_controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/cursed/cursed_controller.dm

/datum/ai_controller/cursedHaunted AI tries to not be interacted with, and will attack people who do. +Cursed AI instead tries to be interacted with, and will attempt to equip itself onto people. +Added by /datum/element/cursed, and as such will try to remove this element and go dormant when it finds a victim to curse
\ No newline at end of file diff --git a/code/datums/ai/dog/dog_behaviors.html b/code/datums/ai/dog/dog_behaviors.html new file mode 100644 index 0000000000000..b0a2f060c07d7 --- /dev/null +++ b/code/datums/ai/dog/dog_behaviors.html @@ -0,0 +1,3 @@ +code/datums/ai/dog/dog_behaviors.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/dog/dog_behaviors.dm

/datum/ai_behavior/basic_melee_attack/dogPursue the target, growl if we're close, and bite if we're adjacent +Dogs are actually not very aggressive and won't attack unless you approach them +Adds a floor to the melee damage of the dog, as most pet dogs don't actually have any melee strength
\ No newline at end of file diff --git a/code/datums/ai/dog/dog_controller.html b/code/datums/ai/dog/dog_controller.html new file mode 100644 index 0000000000000..6071289309cdf --- /dev/null +++ b/code/datums/ai/dog/dog_controller.html @@ -0,0 +1 @@ +code/datums/ai/dog/dog_controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/dog/dog_controller.dm

/datum/ai_controller/basic_controller/dog/corgiSame thing but with make tiny corgis and use access cards.
\ No newline at end of file diff --git a/code/datums/ai/dog/dog_subtrees.html b/code/datums/ai/dog/dog_subtrees.html new file mode 100644 index 0000000000000..fdc7401356753 --- /dev/null +++ b/code/datums/ai/dog/dog_subtrees.html @@ -0,0 +1 @@ +code/datums/ai/dog/dog_subtrees.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/dog/dog_subtrees.dm

/datum/ai_planning_subtree/dog_harassmentFind someone we don't like and annoy them
\ No newline at end of file diff --git a/code/datums/ai/generic/find_and_set.html b/code/datums/ai/generic/find_and_set.html new file mode 100644 index 0000000000000..a1ab18879a4a8 --- /dev/null +++ b/code/datums/ai/generic/find_and_set.html @@ -0,0 +1 @@ +code/datums/ai/generic/find_and_set.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/generic/find_and_set.dm

/datum/ai_behavior/find_and_set*find and set
/datum/ai_behavior/find_and_set/pawn_must_hold_itemVariant of find and set that fails if the living pawn doesn't hold something
/datum/ai_behavior/find_and_set/edibleVariant of find and set that also requires the item to be edible. checks hands too
/datum/ai_behavior/find_and_set/in_handsVariant of find and set that only checks in hands, search range should be excluded for this
/datum/ai_behavior/find_and_set/in_listVariant of find and set that takes a list of things to find.
/datum/ai_behavior/find_and_set/in_list/turf_locationLike find_and_set/in_list, but we return the turf location of the item instead of the item itself.
/datum/ai_behavior/find_and_set/animatableVariant of find and set which returns an object which can be animated with a staff of change
/datum/ai_behavior/find_and_set/nearest_wallVariant of find and set which returns the nearest wall which isn't invulnerable
/datum/ai_behavior/find_and_set/friendly_corpsesVariant of find and set which returns corpses who share your faction
/datum/ai_behavior/find_and_set/conscious_personA variant that looks for a human who is not dead or incapacitated, and has a mind
\ No newline at end of file diff --git a/code/datums/ai/generic/generic_behaviors.html b/code/datums/ai/generic/generic_behaviors.html new file mode 100644 index 0000000000000..c153907fd7eab --- /dev/null +++ b/code/datums/ai/generic/generic_behaviors.html @@ -0,0 +1 @@ +code/datums/ai/generic/generic_behaviors.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/generic/generic_behaviors.dm

/datum/ai_behavior/move_to_targetMoves to target then finishes
/datum/ai_behavior/use_in_handUse in hand the currently held item
/datum/ai_behavior/use_on_objectUse the currently held item, or unarmed, on a weakref to an object in the world
/datum/ai_behavior/drop_itemDrops items in hands, very important for future behaviors that require the pawn to grab stuff
/datum/ai_behavior/attackThis behavior involves attacking a target.
/datum/ai_behavior/followThis behavior involves attacking a target.
\ No newline at end of file diff --git a/code/datums/ai/hunting_behavior/hunting_behaviors.html b/code/datums/ai/hunting_behavior/hunting_behaviors.html new file mode 100644 index 0000000000000..3e590709771b7 --- /dev/null +++ b/code/datums/ai/hunting_behavior/hunting_behaviors.html @@ -0,0 +1,2 @@ +code/datums/ai/hunting_behavior/hunting_behaviors.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/hunting_behavior/hunting_behaviors.dm

/datum/ai_planning_subtree/find_and_hunt_targetTells the AI to find a certain target nearby to hunt. +If a target has been found, we will start to move towards it, and eventually attack it.
/datum/ai_behavior/find_hunt_targetFinds a specific atom type to hunt.
/datum/ai_behavior/hunt_targetHunts down a specific atom type.
\ No newline at end of file diff --git a/code/datums/ai/hunting_behavior/hunting_corpses.html b/code/datums/ai/hunting_behavior/hunting_corpses.html new file mode 100644 index 0000000000000..9500612ef14bb --- /dev/null +++ b/code/datums/ai/hunting_behavior/hunting_corpses.html @@ -0,0 +1 @@ +code/datums/ai/hunting_behavior/hunting_corpses.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/hunting_behavior/hunting_corpses.dm

/datum/ai_planning_subtree/find_and_hunt_target/corpsesFind and attack corpses
/datum/ai_behavior/find_hunt_target/corpsesFind nearby dead mobs
/datum/ai_planning_subtree/find_and_hunt_target/corpses/humanFind and attack specifically human corpses
\ No newline at end of file diff --git a/code/datums/ai/idle_behaviors/idle_haunted.html b/code/datums/ai/idle_behaviors/idle_haunted.html new file mode 100644 index 0000000000000..8b01623be3c2d --- /dev/null +++ b/code/datums/ai/idle_behaviors/idle_haunted.html @@ -0,0 +1 @@ +code/datums/ai/idle_behaviors/idle_haunted.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/idle_behaviors/idle_haunted.dm

/datum/idle_behavior/idle_ghost_itemIf not held, teleport somewhere else
\ No newline at end of file diff --git a/code/datums/ai/idle_behaviors/idle_random_walk.html b/code/datums/ai/idle_behaviors/idle_random_walk.html new file mode 100644 index 0000000000000..60164f3301230 --- /dev/null +++ b/code/datums/ai/idle_behaviors/idle_random_walk.html @@ -0,0 +1 @@ +code/datums/ai/idle_behaviors/idle_random_walk.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/idle_behaviors/idle_random_walk.dm

/datum/idle_behavior/idle_random_walk/no_targetOnly walk if we don't have a target
/datum/idle_behavior/idle_random_walk/not_while_on_targetOnly walk if we are not on the target's location
/datum/idle_behavior/walk_near_targetwalk randomly however stick near a target
\ No newline at end of file diff --git a/code/datums/ai/learn_ai.html b/code/datums/ai/learn_ai.html new file mode 100644 index 0000000000000..acaef9e6cebb3 --- /dev/null +++ b/code/datums/ai/learn_ai.html @@ -0,0 +1,114 @@ +code/datums/ai/learn_ai.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Learn AI

In ye olde days, we designed mob AI, and we built it into simple animals as they were the "non player controlled" mobs. Made sense at the time. But by coding AI directly into the mob, there was so little ability to make unique or complicated AI, and even when it was pulled off the code was hacky and non-reusable. the datum AI system was made to rectify these problems, and expand AI beyond just mobs.

+

AI Controllers Attach

+

Any atom can have an AI controller, I'm choosing a basic mob for this guide, because basic mobs stand as a nice "blank canvas" for AI on mobs. Simple animals come with AI built into the mob, basic mobs don't, which is great for us adding AI on top of it.

+

Anyways, we just define the type of AI this mob has on the ai_controller var. It starts as a type, but is turned into an instance once the mob is instantiated.

+
/mob/living/basic/butterfly
+	name = "butterfly"
+	desc = "A colorful butterfly, how'd it get up here?"
+	// a lot more variables defining for us what a butterfly is
+
+	ai_controller = /datum/ai_controller/basic/butterfly
+
+

Controllers Themselves

+

First, let's look at the blackboard.

+
/datum/ai_controller/basic/cow
+	blackboard = list(
+		BB_TARGETING_STRATEGY = new /datum/targeting_strategy/basic/allow_items(),
+		BB_BASIC_MOB_TIP_REACTING = FALSE,
+		BB_BASIC_MOB_TIPPER = null,
+	)
+
+

Think of the blackboard as the unique format for variables. They are set initially, or by behaviors, but never in subtrees. Because we check blackboard[BB_SOME_KEY] instead of a variable, we can wipe out variables and slap new ones onto the AI as it runs. For example, this cow uses BB_BASIC_MOB_TIP_REACTING and BB_BASIC_MOB_TIPPER because cows can get tipped, and the AI needs to know that in the subtrees when it plans behavior. And in fact, those two keys aren't required to be defined initially, it's just for clarity that they are.

+

Speaking of subtrees, let's look at that now.

+
/datum/ai_controller/basic/cow
+
+	planning_subtrees = list(
+		/datum/ai_planning_subtree/tip_reaction, //<- goes first
+		/datum/ai_planning_subtree/find_and_eat_food, //<- goes second
+		/datum/ai_planning_subtree/random_speech/cow, //<- goes last! But at any point, a previous subtree can end the chain. If a cow is tipped over, it shouldn't make random noises or try finding food!
+	)
+	//and by the end for however many subtrees ran, each one that did may have planned behavior for the AI to act on.
+
+

AI's work by planning specific behaviors, and subtrees are datums that bundle the planning of behavior together. From top to bottom they run, and they can cancel future subtrees. As an example, cows have their very first consideration be tip_reaction, a subtree that prevents further subtrees like eating food and random speech, as well as planning out how the cow reacts (looking sad at the person who tipped it).

+
/datum/ai_controller/basic/cow
+	ai_traits = null
+	ai_movement = /datum/ai_movement/basic_avoidance
+	idle_behavior = null
+
+
+

Finally, we have some more minor things.

+
    +
  • ai_traits are flags for the AI, things like "STOP_MOVING_WHEN_PULLED" slightly modifying how the AI acts under some situations.
  • +
  • ai_movement is how the mob moves to its movement target. ranges from simple behaviors like ai_movement/dumb that awlays move in the direction of the target and hope there's nothing in the way, all the way to ai_movement/jps that plans and occasionally recalcuates more complicated paths, at the cost of more lag.
  • +
  • idle_behavior is just some simpler behavior to perform when nothing has been planned at all, like idle_behavior/idle_random_walk making a mob wander passively.
  • +
+

Subtrees and Behaviors

+

Okay, so we have blackboard variables, which are considered by subtrees to plan behaviors. Let's actually look at a subtree planning behaviors, and behaviors themselves.

+
/// this subtree checks if the mob has a target. if it doesn't, it plans looking for food. if it does, it tries to eat the food via attacking it.
+/datum/ai_planning_subtree/find_and_eat_food/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
+	//get things out of blackboard
+	var/datum/weakref/weak_target = controller.blackboard[BB_BASIC_MOB_CURRENT_TARGET]
+	var/atom/target = weak_target?.resolve()
+	var/list/wanted = controller.blackboard[BB_BASIC_FOODS]
+
+	//we see if we have a target (remember, anything can be in that blackboard, it's not a hard reference)
+	if(!target || QDELETED(target))
+		//we need to find some food
+		controller.queue_behavior(/datum/ai_behavior/find_and_set/in_list, BB_BASIC_MOB_CURRENT_TARGET, wanted)
+		return //this allows further subtrees to plan since we're doing a non-invasive behavior like checking the viscinity for food.
+
+	//now we know we have a target but should let a hostile subtree plan attacking humans. let's check if it's actually food
+	if(target in wanted)
+		controller.queue_behavior(/datum/ai_behavior/basic_melee_attack, BB_BASIC_MOB_CURRENT_TARGET, BB_TARGETING_STRATEGY, BB_BASIC_MOB_CURRENT_TARGET_HIDING_LOCATION)
+		return SUBTREE_RETURN_FINISH_PLANNING //this prevents further subtrees from planning since we want to focus on eating the food
+
+

And one of those behaviors, basic_melee_attack. As I have been doing so far, I've dumped in a bunch of comments explaining how this one behavior gets mobs to chase a target and slap it if in range.

+
///this behavior makes an AI get close to their movement target, and attack every time perform() is called.
+/datum/ai_behavior/basic_melee_attack
+	action_cooldown = 0.6 SECONDS
+	//flag tells the AI it needs to have a movement target to work, and since it doesn't have "AI_BEHAVIOR_MOVE_AND_PERFORM", it won't call perform() every 0.6 seconds until it is in melee range. Smart!
+	behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT
+
+/datum/ai_behavior/basic_melee_attack/setup(datum/ai_controller/controller, target_key, targeting_strategy_key, hiding_location_key)
+	. = ..()
+	//all this is doing in setup is setting the movement target. setup is called once when the behavior is first planned, and returning FALSE can cancel the behavior if something isn't right.
+
+	//Hiding location is priority
+	var/datum/weakref/weak_target = controller.blackboard[hiding_location_key] || controller.blackboard[target_key]
+	var/atom/target = weak_target?.resolve()
+	if(!target)
+		return FALSE
+	//now the AI_BEHAVIOR_REQUIRE_MOVEMENT flag will be happy, we have a target to always be moving towards.
+	controller.current_movement_target = target
+
+///perform will run every "action_cooldown" deciseconds as long as the conditions are good for it to do so (we set "AI_BEHAVIOR_REQUIRE_MOVEMENT", so it won't perform until in range).
+/datum/ai_behavior/basic_melee_attack/perform(seconds_per_tick, datum/ai_controller/controller, target_key, targeting_strategy_key, hiding_location_key)
+	. = ..()
+	var/mob/living/basic/basic_mob = controller.pawn
+	//targeting strategy will kill the action if not real anymore
+	var/datum/weakref/weak_target = controller.blackboard[target_key]
+	var/atom/target = weak_target?.resolve()
+	var/datum/targeting_strategy/targeting_strategy = controller.blackboard[targeting_strategy_key]
+
+	if(!targeting_strategy.can_attack(basic_mob, target))
+		///We have a target that is no longer valid to attack. Remember that returning doesn't end the behavior, JUST this single performance. So we call "finish_action" with whether it succeeded in doing what it wanted to do (it didn't, so FALSE) and the blackboard keys passed into this behavior.
+		finish_action(controller, FALSE, target_key)
+		return //don't forget to end the performance too
+
+	var/hiding_target = targeting_strategy.find_hidden_mobs(basic_mob, target) //If this is valid, theyre hidden in something!
+
+	controller.blackboard[hiding_location_key] = hiding_target
+
+	///and finally, we're in range, we have a valid target, we can attack. When they fall into crit, they will no longer be a valid target, to the melee behavior will end.
+	if(hiding_target) //Slap it!
+		basic_mob.melee_attack(hiding_target)
+	else
+		basic_mob.melee_attack(target)
+
+///and so the action has ended. we can now clean up the AI's blackboard based on the success of the action, and the keys passed in.
+/datum/ai_behavior/basic_melee_attack/finish_action(datum/ai_controller/controller, succeeded, target_key, targeting_strategy_key, hiding_location_key)
+	. = ..()
+	///if the behavior failed, the target is no longer valid, so we should lose aggro of them. We remove the target_key (which could be anything, it's whatever key was passed into the behavior by the subtree) from the blackboard. Couldn't do THAT with normal variables!
+	if(!succeeded)
+		controller.blackboard -= target_key
+
\ No newline at end of file diff --git a/code/datums/ai/monkey/monkey_controller.html b/code/datums/ai/monkey/monkey_controller.html new file mode 100644 index 0000000000000..66033d00d8ada --- /dev/null +++ b/code/datums/ai/monkey/monkey_controller.html @@ -0,0 +1 @@ +code/datums/ai/monkey/monkey_controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/monkey/monkey_controller.dm

/datum/ai_controller/monkeyOOK OOK OOK
\ No newline at end of file diff --git a/code/datums/ai/movement/_ai_movement.html b/code/datums/ai/movement/_ai_movement.html new file mode 100644 index 0000000000000..569e89f076879 --- /dev/null +++ b/code/datums/ai/movement/_ai_movement.html @@ -0,0 +1 @@ +code/datums/ai/movement/_ai_movement.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/movement/_ai_movement.dm

/datum/ai_movementThis datum is an abstract class that can be overridden for different types of movement
\ No newline at end of file diff --git a/code/datums/ai/movement/ai_movement_basic_avoidance.html b/code/datums/ai/movement/ai_movement_basic_avoidance.html new file mode 100644 index 0000000000000..7a11912f298c4 --- /dev/null +++ b/code/datums/ai/movement/ai_movement_basic_avoidance.html @@ -0,0 +1 @@ +code/datums/ai/movement/ai_movement_basic_avoidance.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/movement/ai_movement_basic_avoidance.dm

/datum/ai_movement/basic_avoidanceUses Byond's basic obstacle avoidance movement
/datum/ai_movement/basic_avoidance/backstepMove immediately and don't update our facing
\ No newline at end of file diff --git a/code/datums/ai/movement/ai_movement_complete_stop.html b/code/datums/ai/movement/ai_movement_complete_stop.html new file mode 100644 index 0000000000000..7cacf0f4e7b11 --- /dev/null +++ b/code/datums/ai/movement/ai_movement_complete_stop.html @@ -0,0 +1 @@ +code/datums/ai/movement/ai_movement_complete_stop.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/movement/ai_movement_complete_stop.dm

/datum/ai_movement/complete_stopCome to a complete stop for a set amount of time.
\ No newline at end of file diff --git a/code/datums/ai/movement/ai_movement_dumb.html b/code/datums/ai/movement/ai_movement_dumb.html new file mode 100644 index 0000000000000..9a7f38044f7a8 --- /dev/null +++ b/code/datums/ai/movement/ai_movement_dumb.html @@ -0,0 +1 @@ +code/datums/ai/movement/ai_movement_dumb.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/movement/ai_movement_dumb.dm

/datum/ai_movement/dumbThe most brain-dead type of movement, bee-line to the target with no concern of whats in front of us.
\ No newline at end of file diff --git a/code/datums/ai/movement/ai_movement_jps.html b/code/datums/ai/movement/ai_movement_jps.html new file mode 100644 index 0000000000000..0551f6b7b1389 --- /dev/null +++ b/code/datums/ai/movement/ai_movement_jps.html @@ -0,0 +1 @@ +code/datums/ai/movement/ai_movement_jps.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/movement/ai_movement_jps.dm

/datum/ai_movement/jpsThis movement datum represents smart-pathing
\ No newline at end of file diff --git a/code/datums/ai/objects/mod.html b/code/datums/ai/objects/mod.html new file mode 100644 index 0000000000000..fd43fbd80a259 --- /dev/null +++ b/code/datums/ai/objects/mod.html @@ -0,0 +1 @@ +code/datums/ai/objects/mod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/objects/mod.dm

/datum/ai_controller/modAn AI controller for the MODsuit pathfinder module. It's activated by implant and attaches itself to the user.
\ No newline at end of file diff --git a/code/datums/ai/objects/vending_machines/vending_machine_controller.html b/code/datums/ai/objects/vending_machines/vending_machine_controller.html new file mode 100644 index 0000000000000..af0fd4d0be239 --- /dev/null +++ b/code/datums/ai/objects/vending_machines/vending_machine_controller.html @@ -0,0 +1 @@ +code/datums/ai/objects/vending_machines/vending_machine_controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/objects/vending_machines/vending_machine_controller.dm

/datum/ai_controller/vending_machineAI controller for vending machine gone rogue, Don't try using this on anything else, it wont work.
\ No newline at end of file diff --git a/code/datums/ai/oldhostile/hostile_tameable.html b/code/datums/ai/oldhostile/hostile_tameable.html new file mode 100644 index 0000000000000..2df24a27ea663 --- /dev/null +++ b/code/datums/ai/oldhostile/hostile_tameable.html @@ -0,0 +1 @@ +code/datums/ai/oldhostile/hostile_tameable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ai/oldhostile/hostile_tameable.dm

/datum/ai_controller/hostile_friendThis code needs to be removed at some point as it doesn't actually utilize the AI.
\ No newline at end of file diff --git a/code/datums/ai_laws/ai_laws.html b/code/datums/ai_laws/ai_laws.html new file mode 100644 index 0000000000000..9c43cf32ba78a --- /dev/null +++ b/code/datums/ai_laws/ai_laws.html @@ -0,0 +1,2 @@ +code/datums/ai_laws/ai_laws.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/ai_laws/ai_laws.dm

/proc/get_round_default_lawsetA getter that sets up the round default if it has not been yet.
CONFIG_ASIMOVAlways make the round default asimov
CONFIG_CUSTOMSet to a custom lawset defined by another config value
CONFIG_RANDOMSet to a completely random ai law subtype, good, bad, it cares not. Careful with this one
CONFIG_WEIGHTEDSet to a configged weighted list of law types in the config. This lets server owners pick from a pool of sane laws, it is also the same process for ian law rerolls.
CONFIG_SPECIFIEDSet to a specific lawset in the game options.
/proc/setup_round_default_lawsfirst called when something wants round default laws for the first time in a round, considers config +returns a law datum that GLOB._round_default_lawset will be set to.
/proc/pick_weighted_lawsetreturns a law datum based off of config. will never roll asimov as the weighted datum if the station has a unique AI.
/proc/lawid_to_typereturns the law datum with the lawid in question, law boards and law datums should share this id.

Define Details

CONFIG_ASIMOV

Always make the round default asimov

CONFIG_CUSTOM

Set to a custom lawset defined by another config value

CONFIG_RANDOM

Set to a completely random ai law subtype, good, bad, it cares not. Careful with this one

CONFIG_SPECIFIED

Set to a specific lawset in the game options.

CONFIG_WEIGHTED

Set to a configged weighted list of law types in the config. This lets server owners pick from a pool of sane laws, it is also the same process for ian law rerolls.

\ No newline at end of file diff --git a/code/datums/alarm.html b/code/datums/alarm.html new file mode 100644 index 0000000000000..36e0d5ac932f1 --- /dev/null +++ b/code/datums/alarm.html @@ -0,0 +1 @@ +code/datums/alarm.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/alarm.dm

/datum/alarm_handlerRepresents a single source of alarms, one alarm handler will only ever count for one alarm per listener
\ No newline at end of file diff --git a/code/datums/announcers/_announcer.html b/code/datums/announcers/_announcer.html new file mode 100644 index 0000000000000..9e82d0acf60f0 --- /dev/null +++ b/code/datums/announcers/_announcer.html @@ -0,0 +1 @@ +code/datums/announcers/_announcer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/announcers/_announcer.dm

/datum/centcom_announcerData holder for the announcers that can be used in a game, this can be used to have alternative announcements outside of the default e.g.the intern
\ No newline at end of file diff --git a/code/datums/armor/_armor.html b/code/datums/armor/_armor.html new file mode 100644 index 0000000000000..ca0020c1f69fb --- /dev/null +++ b/code/datums/armor/_armor.html @@ -0,0 +1,2 @@ +code/datums/armor/_armor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/armor/_armor.dm

/proc/get_armor_by_typeGets an armor type datum using the given type by formatting it into the expected datum tag
/datum/armorThe armor datum holds information about different types of armor that an atom can have. +It also contains logic and helpers for calculating damage and effective damage
/datum/armor/noneA version of armor with no protections
/datum/armor/immuneA version of armor that cannot be modified and will always return itself when attempted to be modified
/proc/armor_to_protection_classRounds armor_value down to the nearest 10, divides it by 10 and then converts it to Roman numerals.
/proc/armor_to_protection_nameReturns the client readable name of an armor type
\ No newline at end of file diff --git a/code/datums/beam.html b/code/datums/beam.html new file mode 100644 index 0000000000000..42c5f46a31656 --- /dev/null +++ b/code/datums/beam.html @@ -0,0 +1 @@ +code/datums/beam.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/beam.dm

/datum/beam
/obj/effect/ebeam/reactingA beam subtype used for advanced beams, to react to atoms entering the beam
\ No newline at end of file diff --git a/code/datums/bodypart_overlays/bodypart_overlay.html b/code/datums/bodypart_overlays/bodypart_overlay.html new file mode 100644 index 0000000000000..0ca7d837476d3 --- /dev/null +++ b/code/datums/bodypart_overlays/bodypart_overlay.html @@ -0,0 +1,2 @@ +code/datums/bodypart_overlays/bodypart_overlay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/bodypart_overlays/bodypart_overlay.dm

/datum/bodypart_overlayBodypart ovarlay datum. These can be added to any limb to give them a proper overlay, that'll even stay if the limb gets removed +This is the abstract parent, don't use it!!
\ No newline at end of file diff --git a/code/datums/bodypart_overlays/emote_bodypart_overlay.html b/code/datums/bodypart_overlays/emote_bodypart_overlay.html new file mode 100644 index 0000000000000..1c6eac4a4d957 --- /dev/null +++ b/code/datums/bodypart_overlays/emote_bodypart_overlay.html @@ -0,0 +1 @@ +code/datums/bodypart_overlays/emote_bodypart_overlay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/bodypart_overlays/emote_bodypart_overlay.dm

/datum/bodypart_overlay/simple/emoteVariant of bodypart_overlay for displaying emote overlays. See /datum/emote/living/blush/run_emote for an example on how to use one of these.
\ No newline at end of file diff --git a/code/datums/bodypart_overlays/markings_bodypart_overlay.html b/code/datums/bodypart_overlays/markings_bodypart_overlay.html new file mode 100644 index 0000000000000..43a209d3af37d --- /dev/null +++ b/code/datums/bodypart_overlays/markings_bodypart_overlay.html @@ -0,0 +1 @@ +code/datums/bodypart_overlays/markings_bodypart_overlay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/bodypart_overlays/markings_bodypart_overlay.dm

/datum/bodypart_overlay/simple/body_markingFor body markings applied on the species, which need some extra code
\ No newline at end of file diff --git a/code/datums/bodypart_overlays/mutant_bodypart_overlay.html b/code/datums/bodypart_overlays/mutant_bodypart_overlay.html new file mode 100644 index 0000000000000..bc06d37292787 --- /dev/null +++ b/code/datums/bodypart_overlays/mutant_bodypart_overlay.html @@ -0,0 +1 @@ +code/datums/bodypart_overlays/mutant_bodypart_overlay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/bodypart_overlays/mutant_bodypart_overlay.dm

/datum/bodypart_overlay/mutantVariant of bodypart_overlay meant to work synchronously with external organs. Gets imprinted upon Insert in on_species_gain
\ No newline at end of file diff --git a/code/datums/bodypart_overlays/simple_bodypart_overlay.html b/code/datums/bodypart_overlays/simple_bodypart_overlay.html new file mode 100644 index 0000000000000..3fda95eca5511 --- /dev/null +++ b/code/datums/bodypart_overlays/simple_bodypart_overlay.html @@ -0,0 +1,2 @@ +code/datums/bodypart_overlays/simple_bodypart_overlay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/bodypart_overlays/simple_bodypart_overlay.dm

/datum/bodypart_overlay/simpleFor simple overlays that really dont need to be complicated. Sometimes icon_state and icon is enough +Remember to set the layers or shit wont work
/datum/bodypart_overlay/simple/sixpackA sixpack drawn on the chest
/datum/bodypart_overlay/simple/bagsbags drawn beneath the eyes
\ No newline at end of file diff --git a/code/datums/bodypart_overlays/texture_bodypart_overlay.html b/code/datums/bodypart_overlays/texture_bodypart_overlay.html new file mode 100644 index 0000000000000..be57bce97131e --- /dev/null +++ b/code/datums/bodypart_overlays/texture_bodypart_overlay.html @@ -0,0 +1 @@ +code/datums/bodypart_overlays/texture_bodypart_overlay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/bodypart_overlays/texture_bodypart_overlay.dm

/datum/bodypart_overlay/textureBodypart overlays focused on texturing limbs
\ No newline at end of file diff --git a/code/datums/brain_damage/split_personality.html b/code/datums/brain_damage/split_personality.html new file mode 100644 index 0000000000000..f60ce2b46ccd1 --- /dev/null +++ b/code/datums/brain_damage/split_personality.html @@ -0,0 +1 @@ +code/datums/brain_damage/split_personality.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/brain_damage/split_personality.dm

/datum/brain_trauma/severe/split_personality/brainwashingBRAINWASHING
\ No newline at end of file diff --git a/code/datums/browser.html b/code/datums/browser.html new file mode 100644 index 0000000000000..41243e080a0dc --- /dev/null +++ b/code/datums/browser.html @@ -0,0 +1 @@ +code/datums/browser.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/browser.dm

/proc/tgalertDEPRECATED: USE tgui_alert(...) INSTEAD
\ No newline at end of file diff --git a/code/datums/callback.html b/code/datums/callback.html new file mode 100644 index 0000000000000..df5a43ebc7d2c --- /dev/null +++ b/code/datums/callback.html @@ -0,0 +1 @@ +code/datums/callback.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/callback.dm

/datum/callbackA datum that holds a proc to be called on another object, used to track proccalls to other objects
/datum/callback_selectHelper datum for the select callbacks proc
/proc/callback_selectRuns a list of callbacks asyncronously, returning only when all have finished
\ No newline at end of file diff --git a/code/datums/candidate_poll.html b/code/datums/candidate_poll.html new file mode 100644 index 0000000000000..3e4ba62f2a556 --- /dev/null +++ b/code/datums/candidate_poll.html @@ -0,0 +1 @@ +code/datums/candidate_poll.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/candidate_poll.dm

/datum/candidate_pollThe datum that describes one instance of candidate polling
\ No newline at end of file diff --git a/code/datums/chat_payload.html b/code/datums/chat_payload.html new file mode 100644 index 0000000000000..bccb5e221759a --- /dev/null +++ b/code/datums/chat_payload.html @@ -0,0 +1 @@ +code/datums/chat_payload.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/chat_payload.dm

/datum/chat_payloadStores information about a chat payload
\ No newline at end of file diff --git a/code/datums/chatmessage.html b/code/datums/chatmessage.html new file mode 100644 index 0000000000000..259ecd4dcc4c9 --- /dev/null +++ b/code/datums/chatmessage.html @@ -0,0 +1 @@ +code/datums/chatmessage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/chatmessage.dm

CHAT_MESSAGE_SPAWN_TIMEHow long the chat message's spawn-in animation will occur for
CHAT_MESSAGE_LIFESPANHow long the chat message will exist prior to any exponential decay
CHAT_MESSAGE_EOL_FADEHow long the chat message's end of life fading animation will occur for
CHAT_MESSAGE_GRACE_PERIODGrace period for fade before we actually delete the chat message
CHAT_MESSAGE_EXP_DECAYFactor of how much the message index (number of messages) will account to exponential decay
CHAT_MESSAGE_HEIGHT_DECAYFactor of how much height will account to exponential decay
CHAT_MESSAGE_APPROX_LHEIGHTApproximate height in pixels of an 'average' line, used for height decay
CHAT_MESSAGE_WIDTHMax width of chat message in pixels
CHAT_MESSAGE_ICON_SIZEThe dimensions of the chat message icons
CHAT_LAYERBase layer of chat elements
CHAT_LAYER_MAXHighest possible layer of chat elements
CHAT_LAYER_Z_STEPMaximum precision of float before rounding errors occur (in this context)
CHAT_LAYER_MAX_ZThe number of z-layer 'slices' usable by the chat message layering
/datum/chatmessageDatum for generating a message overlay on the map

Define Details

CHAT_LAYER

Base layer of chat elements

CHAT_LAYER_MAX

Highest possible layer of chat elements

CHAT_LAYER_MAX_Z

The number of z-layer 'slices' usable by the chat message layering

CHAT_LAYER_Z_STEP

Maximum precision of float before rounding errors occur (in this context)

CHAT_MESSAGE_APPROX_LHEIGHT

Approximate height in pixels of an 'average' line, used for height decay

CHAT_MESSAGE_EOL_FADE

How long the chat message's end of life fading animation will occur for

CHAT_MESSAGE_EXP_DECAY

Factor of how much the message index (number of messages) will account to exponential decay

CHAT_MESSAGE_GRACE_PERIOD

Grace period for fade before we actually delete the chat message

CHAT_MESSAGE_HEIGHT_DECAY

Factor of how much height will account to exponential decay

CHAT_MESSAGE_ICON_SIZE

The dimensions of the chat message icons

CHAT_MESSAGE_LIFESPAN

How long the chat message will exist prior to any exponential decay

CHAT_MESSAGE_SPAWN_TIME

How long the chat message's spawn-in animation will occur for

CHAT_MESSAGE_WIDTH

Max width of chat message in pixels

\ No newline at end of file diff --git a/code/datums/cinematics/_cinematic.html b/code/datums/cinematics/_cinematic.html new file mode 100644 index 0000000000000..fc8c510a9d6a4 --- /dev/null +++ b/code/datums/cinematics/_cinematic.html @@ -0,0 +1 @@ +code/datums/cinematics/_cinematic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/cinematics/_cinematic.dm

/proc/play_cinematicPlays a cinematic, duh. Can be to a select few people, or everyone.
/atom/movable/screen/cinematicThe cinematic screen showed to everyone
/datum/cinematicCinematic datum. Used to show an animation to everyone.
\ No newline at end of file diff --git a/code/datums/cinematics/malf_doomsday.html b/code/datums/cinematics/malf_doomsday.html new file mode 100644 index 0000000000000..a954610ed0de5 --- /dev/null +++ b/code/datums/cinematics/malf_doomsday.html @@ -0,0 +1 @@ +code/datums/cinematics/malf_doomsday.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/cinematics/malf_doomsday.dm

/datum/cinematic/malfA malfunctioning AI has activated the doomsday device and wiped the station!
\ No newline at end of file diff --git a/code/datums/cinematics/narsie_summon.html b/code/datums/cinematics/narsie_summon.html new file mode 100644 index 0000000000000..7c88c69c007ad --- /dev/null +++ b/code/datums/cinematics/narsie_summon.html @@ -0,0 +1 @@ +code/datums/cinematics/narsie_summon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/cinematics/narsie_summon.dm

/datum/cinematic/cult_armA blood cult summoned Nar'sie, and most of the station was harvested or converted!
/datum/cinematic/cult_failA blood cult summoned Nar'sie, but some badass (or admin) managed to destroy Nar'sie themselves.
\ No newline at end of file diff --git a/code/datums/cinematics/nuke_cinematics.html b/code/datums/cinematics/nuke_cinematics.html new file mode 100644 index 0000000000000..895dcd610592b --- /dev/null +++ b/code/datums/cinematics/nuke_cinematics.html @@ -0,0 +1 @@ +code/datums/cinematics/nuke_cinematics.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/cinematics/nuke_cinematics.dm

/datum/cinematic/nukeSimple, base cinematic for all animations based around a nuke detonating.
/datum/cinematic/nuke/ops_victoryThe syndicate nuclear bomb was activated, and destroyed the station!
/datum/cinematic/nuke/ops_missThe syndicate nuclear bomb was activated, but just barely missed the station!
/datum/cinematic/nuke/self_destructThe self destruct, or another station-destroying entity like a blob, destroyed the station!
/datum/cinematic/nuke/self_destruct_missThe self destruct was activated, yet somehow avoided destroying the station!
/datum/cinematic/nuke/mutual_destructionThe syndicate nuclear bomb was activated, and the nuclear operatives failed to extract on their shuttle before it detonated on the station!
/datum/cinematic/nuke/cultA blood cult summoned Nar'sie, but central command deployed a nuclear package to stop them.
/datum/cinematic/nuke/fakeA fake version of the nuclear detonation, where it winds up, but doesn't explode.
/datum/cinematic/nuke/clownThe clown operative nuclear bomb was activated and clowned the station!
/datum/cinematic/nuke/no_coreA fake version of the nuclear detonation, where it winds up, but doesn't explode as the nuke core within was missing.
/datum/cinematic/nuke/far_explosionThe syndicate nuclear bomb was activated, but just missed the station by a whole z-level!
\ No newline at end of file diff --git a/code/datums/cogbar.html b/code/datums/cogbar.html new file mode 100644 index 0000000000000..5870975c54e5e --- /dev/null +++ b/code/datums/cogbar.html @@ -0,0 +1 @@ +code/datums/cogbar.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/cogbar.dm

/datum/cogbar
\ No newline at end of file diff --git a/code/datums/components.html b/code/datums/components.html new file mode 100644 index 0000000000000..962e64c389123 --- /dev/null +++ b/code/datums/components.html @@ -0,0 +1,3 @@ +code/datums/components/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Datum Component System (DCS)

Concept

+

Loosely adapted from /vg/. This is an entity component system for adding behaviours to datums when inheritance doesn't quite cut it. By using signals and events instead of direct inheritance, you can inject behaviours without hacky overloads. It requires a different method of thinking, but is not hard to use correctly. If a behaviour can have application across more than one thing. Make it generic, make it a component. Atom/mob/obj event? Give it a signal, and forward its arguments with a SendSignal() call. Now every component that want's to can also know about this happening.

+

HackMD page for an introduction to the system as a whole.

See/Define signals and their arguments in __DEFINES\components.dm

\ No newline at end of file diff --git a/code/datums/components/COMPONENT_TEMPLATE.html b/code/datums/components/COMPONENT_TEMPLATE.html new file mode 100644 index 0000000000000..030d074dd84f5 --- /dev/null +++ b/code/datums/components/COMPONENT_TEMPLATE.html @@ -0,0 +1,50 @@ +code/datums/components/COMPONENT_TEMPLATE.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Template file for your new component

See _component.dm for detailed explanations

+
/datum/component/mycomponent
+	//can_transfer = TRUE                   // Must have PostTransfer
+	//dupe_mode = COMPONENT_DUPE_ALLOWED    // code/__DEFINES/dcs/flags.dm
+	var/myvar
+
+/datum/component/mycomponent/Initialize(myargone, myargtwo)
+	if(myargone)
+		myvar = myargone
+	if(myargtwo)
+		send_to_playing_players(myargtwo)
+
+/datum/component/mycomponent/RegisterWithParent()
+	RegisterSignal(parent, COMSIG_NOT_REAL, PROC_REF(signalproc))                                    // RegisterSignal can take a signal name by itself,
+	RegisterSignal(parent, list(COMSIG_NOT_REAL_EITHER, COMSIG_ALMOST_REAL), PROC_REF(otherproc))    // or a list of them to assign to the same proc
+
+/datum/component/mycomponent/UnregisterFromParent()
+	UnregisterSignal(parent, COMSIG_NOT_REAL)          // UnregisterSignal has similar behavior
+	UnregisterSignal(parent, list(                     // But you can just include all registered signals in one call
+		COMSIG_NOT_REAL,
+		COMSIG_NOT_REAL_EITHER,
+		COMSIG_ALMOST_REAL,
+	))
+
+/datum/component/mycomponent/proc/signalproc(datum/source)
+	SIGNAL_HANDLER
+	send_to_playing_players("[source] signaled [src]!")
+
+/*
+/datum/component/mycomponent/InheritComponent(datum/component/mycomponent/old, i_am_original, list/arguments)
+	myvar = old.myvar
+
+	if(i_am_original)
+		send_to_playing_players("No parent should have to bury their child")
+*/
+
+/*
+/datum/component/mycomponent/PreTransfer()
+	send_to_playing_players("Goodbye [parent], I'm getting adopted")
+
+/datum/component/mycomponent/PostTransfer()
+	send_to_playing_players("Hello my new parent, [parent]! It's nice to meet you!")
+*/
+
+/*
+/datum/component/mycomponent/CheckDupeComponent(datum/mycomponent/new, myargone, myargtwo)
+	if(myargone == myvar)
+		return TRUE
+*/
+
\ No newline at end of file diff --git a/code/datums/components/_component.html b/code/datums/components/_component.html new file mode 100644 index 0000000000000..fe62d8df84111 --- /dev/null +++ b/code/datums/components/_component.html @@ -0,0 +1 @@ +code/datums/components/_component.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/_component.dm

/datum/componentThe component datum
\ No newline at end of file diff --git a/code/datums/components/acid.html b/code/datums/components/acid.html new file mode 100644 index 0000000000000..e2bbdd36688fe --- /dev/null +++ b/code/datums/components/acid.html @@ -0,0 +1,5 @@ +code/datums/components/acid.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/acid.dm

/datum/component/acidComponent representing acid applied to an object. +Must be attached to an atom. +Processes, repeatedly damaging whatever it is attached to. +If the parent atom is a turf it applies acid to the contents of the turf. +If not being applied to a mob or turf, the atom must use the integrity system.
\ No newline at end of file diff --git a/code/datums/components/action_item_overlay.html b/code/datums/components/action_item_overlay.html new file mode 100644 index 0000000000000..bcb1c498fe1b6 --- /dev/null +++ b/code/datums/components/action_item_overlay.html @@ -0,0 +1,2 @@ +code/datums/components/action_item_overlay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/action_item_overlay.dm

/datum/component/action_item_overlayApply to an action to allow it to take an item +and apply it as an overlay of the action button
\ No newline at end of file diff --git a/code/datums/components/adjust_fishing_difficulty.html b/code/datums/components/adjust_fishing_difficulty.html new file mode 100644 index 0000000000000..ea004a6999017 --- /dev/null +++ b/code/datums/components/adjust_fishing_difficulty.html @@ -0,0 +1 @@ +code/datums/components/adjust_fishing_difficulty.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/adjust_fishing_difficulty.dm

/datum/component/adjust_fishing_difficultyInfluences the difficulty of the minigame when worn or if buckled to.
\ No newline at end of file diff --git a/code/datums/components/admin_popup.html b/code/datums/components/admin_popup.html new file mode 100644 index 0000000000000..e7e8bed7ec8f5 --- /dev/null +++ b/code/datums/components/admin_popup.html @@ -0,0 +1,3 @@ +code/datums/components/admin_popup.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/admin_popup.dm

/datum/component/admin_popupApplied to clients when they receive an admin popup, alerting them to +their ticket.
/atom/movable/screen/admin_popupThe UI element for admin popups
/proc/give_admin_popupTries to give the target an admin popup. +If it fails, will send the error to the passed admin.
\ No newline at end of file diff --git a/code/datums/components/aggro_emote.html b/code/datums/components/aggro_emote.html new file mode 100644 index 0000000000000..8db2b0ee9268f --- /dev/null +++ b/code/datums/components/aggro_emote.html @@ -0,0 +1 @@ +code/datums/components/aggro_emote.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/aggro_emote.dm

/datum/component/aggro_emoteA component for ai-controlled atoms which plays a sound if they switch to a living target which they can attack
\ No newline at end of file diff --git a/code/datums/components/ai_has_target_timer.html b/code/datums/components/ai_has_target_timer.html new file mode 100644 index 0000000000000..16a09ecee6010 --- /dev/null +++ b/code/datums/components/ai_has_target_timer.html @@ -0,0 +1 @@ +code/datums/components/ai_has_target_timer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/ai_has_target_timer.dm

/datum/component/ai_target_timerIncrements a blackboard key while the attached mob is engaged with a particular target, does nothing else on its own
\ No newline at end of file diff --git a/code/datums/components/ai_listen_to_weather.html b/code/datums/components/ai_listen_to_weather.html new file mode 100644 index 0000000000000..992ee497cbeda --- /dev/null +++ b/code/datums/components/ai_listen_to_weather.html @@ -0,0 +1 @@ +code/datums/components/ai_listen_to_weather.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/ai_listen_to_weather.dm

/datum/component/ai_listen_to_weathergiven to a mob to set a key on or off when a storm is coming or ending
\ No newline at end of file diff --git a/code/datums/components/ai_retaliate_advanced.html b/code/datums/components/ai_retaliate_advanced.html new file mode 100644 index 0000000000000..542ce1b75b3d3 --- /dev/null +++ b/code/datums/components/ai_retaliate_advanced.html @@ -0,0 +1,3 @@ +code/datums/components/ai_retaliate_advanced.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/ai_retaliate_advanced.dm

/datum/component/ai_retaliate_advancedAttached to a mob with an AI controller, passes things which have damaged it to a blackboard. +The AI controller is responsible for doing anything with that information. +Differs from the element as it passes new entries through a callback.
\ No newline at end of file diff --git a/code/datums/components/amputating_limbs.html b/code/datums/components/amputating_limbs.html new file mode 100644 index 0000000000000..c856f6237e053 --- /dev/null +++ b/code/datums/components/amputating_limbs.html @@ -0,0 +1 @@ +code/datums/components/amputating_limbs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/amputating_limbs.dm

/datum/component/amputating_limbsThis component will intercept bare-handed attacks by the owner on sufficiently injured carbons and amputate random limbs instead
\ No newline at end of file diff --git a/code/datums/components/anti_magic.html b/code/datums/components/anti_magic.html new file mode 100644 index 0000000000000..4b05537384898 --- /dev/null +++ b/code/datums/components/anti_magic.html @@ -0,0 +1 @@ +code/datums/components/anti_magic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/anti_magic.dm

/datum/component/anti_magicThis provides different types of magic resistance on an object
\ No newline at end of file diff --git a/code/datums/components/appearance_on_aggro.html b/code/datums/components/appearance_on_aggro.html new file mode 100644 index 0000000000000..86ec32d40642a --- /dev/null +++ b/code/datums/components/appearance_on_aggro.html @@ -0,0 +1 @@ +code/datums/components/appearance_on_aggro.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/appearance_on_aggro.dm

/datum/component/appearance_on_aggroChanges visuals of the attached mob while it has a target
\ No newline at end of file diff --git a/code/datums/components/aquarium_content.html b/code/datums/components/aquarium_content.html new file mode 100644 index 0000000000000..573092605ba46 --- /dev/null +++ b/code/datums/components/aquarium_content.html @@ -0,0 +1 @@ +code/datums/components/aquarium_content.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/aquarium_content.dm

DEAD_FISH_BEAUTYMalus to the beauty value if the fish content is dead
MAX_DEAD_FISH_BEAUTYPrevents more impressive fishes from providing a positive beauty even when dead.
MIN_DEAD_FISH_BEAUTYSome fish are already so ugly, they can't get much worse when dead
MIN_AQUARIUM_BEAUTYDefines that clamp the beauty of the aquarium, to prevent it from making most areas great or horrid all by itself.
/datum/component/aquarium_contentAllows movables to be inserted/displayed in aquariums.
/obj/effect/aquariumThe visual overlay of the aquarium content. It holds a few vars that we can modity them during signals.

Define Details

DEAD_FISH_BEAUTY

Malus to the beauty value if the fish content is dead

MAX_DEAD_FISH_BEAUTY

Prevents more impressive fishes from providing a positive beauty even when dead.

MIN_AQUARIUM_BEAUTY

Defines that clamp the beauty of the aquarium, to prevent it from making most areas great or horrid all by itself.

MIN_DEAD_FISH_BEAUTY

Some fish are already so ugly, they can't get much worse when dead

\ No newline at end of file diff --git a/code/datums/components/area_based_godmode.html b/code/datums/components/area_based_godmode.html new file mode 100644 index 0000000000000..b8c44d6b6ece5 --- /dev/null +++ b/code/datums/components/area_based_godmode.html @@ -0,0 +1,2 @@ +code/datums/components/area_based_godmode.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/area_based_godmode.dm

/datum/component/area_based_godmodeArea-based godmode. +Gain and Lose message can only be set once, at initial component creation; adding a source will not update them.
\ No newline at end of file diff --git a/code/datums/components/area_sound_manager.html b/code/datums/components/area_sound_manager.html new file mode 100644 index 0000000000000..ba5965eeb0987 --- /dev/null +++ b/code/datums/components/area_sound_manager.html @@ -0,0 +1 @@ +code/datums/components/area_sound_manager.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/area_sound_manager.dm

/datum/component/area_sound_managerAllows you to set a theme for a set of areas without tying them to looping sounds explicitly
\ No newline at end of file diff --git a/code/datums/components/areabound.html b/code/datums/components/areabound.html new file mode 100644 index 0000000000000..e49ba631ef40c --- /dev/null +++ b/code/datums/components/areabound.html @@ -0,0 +1 @@ +code/datums/components/areabound.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/areabound.dm

/datum/component/areaboundMovables with this component will automatically return to their original turf if moved outside their initial area
\ No newline at end of file diff --git a/code/datums/components/atmos_reaction_recorder.html b/code/datums/components/atmos_reaction_recorder.html new file mode 100644 index 0000000000000..c8cee2c9dcc29 --- /dev/null +++ b/code/datums/components/atmos_reaction_recorder.html @@ -0,0 +1,3 @@ +code/datums/components/atmos_reaction_recorder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/atmos_reaction_recorder.dm

/datum/component/atmos_reaction_recorderComponent for atmos-related atoms to be able to record and transmit their reaction_results data +Use this ONLY for atoms, gasmixtures will be accessed by calling return air on the object. +Add this component after gasmixes has been initialized.
\ No newline at end of file diff --git a/code/datums/components/aura_healing.html b/code/datums/components/aura_healing.html new file mode 100644 index 0000000000000..27c4745a5c8ef --- /dev/null +++ b/code/datums/components/aura_healing.html @@ -0,0 +1,4 @@ +code/datums/components/aura_healing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/aura_healing.dm

/datum/component/aura_healingApplies healing to those in the area. +Will provide them with an alert while they're in range, as well as +give them a healing particle. +Can be applied to those only with a trait conditionally.
\ No newline at end of file diff --git a/code/datums/components/bakeable.html b/code/datums/components/bakeable.html new file mode 100644 index 0000000000000..67387eb59941d --- /dev/null +++ b/code/datums/components/bakeable.html @@ -0,0 +1 @@ +code/datums/components/bakeable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/bakeable.dm

/datum/component/bakeableThis component indicates this object can be baked in an oven.
\ No newline at end of file diff --git a/code/datums/components/banned_from_space.html b/code/datums/components/banned_from_space.html new file mode 100644 index 0000000000000..04f8287e4a3e8 --- /dev/null +++ b/code/datums/components/banned_from_space.html @@ -0,0 +1 @@ +code/datums/components/banned_from_space.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/banned_from_space.dm

/datum/component/banned_from_spaceFollowing recent tomfoolery, we've decided to ban you from space.
\ No newline at end of file diff --git a/code/datums/components/basic_inhands.html b/code/datums/components/basic_inhands.html new file mode 100644 index 0000000000000..39bf30d989c38 --- /dev/null +++ b/code/datums/components/basic_inhands.html @@ -0,0 +1 @@ +code/datums/components/basic_inhands.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/basic_inhands.dm

/datum/component/basic_inhandsBasic handling for showing held items in a mob's hands
\ No newline at end of file diff --git a/code/datums/components/basic_mob_attack_telegraph.html b/code/datums/components/basic_mob_attack_telegraph.html new file mode 100644 index 0000000000000..3b775467dcc2f --- /dev/null +++ b/code/datums/components/basic_mob_attack_telegraph.html @@ -0,0 +1 @@ +code/datums/components/basic_mob_attack_telegraph.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/basic_mob_attack_telegraph.dm

/datum/component/basic_mob_attack_telegraphDelays outgoing attacks which are directed at mobs to give players time to get out of the way
\ No newline at end of file diff --git a/code/datums/components/basic_ranged_ready_overlay.html b/code/datums/components/basic_ranged_ready_overlay.html new file mode 100644 index 0000000000000..27d641a9dc112 --- /dev/null +++ b/code/datums/components/basic_ranged_ready_overlay.html @@ -0,0 +1,2 @@ +code/datums/components/basic_ranged_ready_overlay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/basic_ranged_ready_overlay.dm

/datum/component/basic_ranged_ready_overlayFade in an overlay x seconds after a basic mob makes a ranged attack +Indicates that it will be ready to fire again
\ No newline at end of file diff --git a/code/datums/components/bayonet_attachable.html b/code/datums/components/bayonet_attachable.html new file mode 100644 index 0000000000000..192628af5eb68 --- /dev/null +++ b/code/datums/components/bayonet_attachable.html @@ -0,0 +1,2 @@ +code/datums/components/bayonet_attachable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/bayonet_attachable.dm

/datum/component/bayonet_attachableComponent which allows you to attach a bayonet to an item, +be it a piece of clothing or a tool.
\ No newline at end of file diff --git a/code/datums/components/blob_minion.html b/code/datums/components/blob_minion.html new file mode 100644 index 0000000000000..c25ed0cb76e17 --- /dev/null +++ b/code/datums/components/blob_minion.html @@ -0,0 +1 @@ +code/datums/components/blob_minion.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/blob_minion.dm

/datum/component/blob_minionCommon behaviour shared by things which are minions to a blob
\ No newline at end of file diff --git a/code/datums/components/blood_walk.html b/code/datums/components/blood_walk.html new file mode 100644 index 0000000000000..f9d00ad74a77f --- /dev/null +++ b/code/datums/components/blood_walk.html @@ -0,0 +1 @@ +code/datums/components/blood_walk.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/blood_walk.dm

/datum/component/blood_walkBlood walk, a component that causes you to make blood wherever you walk.
\ No newline at end of file diff --git a/code/datums/components/bloodysoles.html b/code/datums/components/bloodysoles.html new file mode 100644 index 0000000000000..98e77f03d12fb --- /dev/null +++ b/code/datums/components/bloodysoles.html @@ -0,0 +1 @@ +code/datums/components/bloodysoles.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/bloodysoles.dm

BLOOD_PERCENT_LOSS_ON_STEPThe percentage of blood we lose on each step
/datum/component/bloodysolesComponent for clothing items that can pick up blood from decals and spread it around everywhere when walking, such as shoes or suits with integrated shoes.
/datum/component/bloodysoles/feetLike its parent but can be applied to carbon mobs instead of clothing items

Define Details

BLOOD_PERCENT_LOSS_ON_STEP

The percentage of blood we lose on each step

\ No newline at end of file diff --git a/code/datums/components/boomerang.html b/code/datums/components/boomerang.html new file mode 100644 index 0000000000000..40261ddc73fa1 --- /dev/null +++ b/code/datums/components/boomerang.html @@ -0,0 +1,2 @@ +code/datums/components/boomerang.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/boomerang.dm

BOOMERANG_REBOUND_INTERVALThe cooldown period between last_boomerang_throw and its methods of implementing a rebound proc.
/datum/component/boomerangIf an ojvect is given the boomerang component, it should be thrown back to the thrower after either hitting its target, or landing on the thrown tile. +Thrown objects should be thrown back to the original thrower with this component, a number of tiles defined by boomerang_throw_range.

Define Details

BOOMERANG_REBOUND_INTERVAL

The cooldown period between last_boomerang_throw and its methods of implementing a rebound proc.

\ No newline at end of file diff --git a/code/datums/components/boss_music.html b/code/datums/components/boss_music.html new file mode 100644 index 0000000000000..e42a727f8b8c9 --- /dev/null +++ b/code/datums/components/boss_music.html @@ -0,0 +1 @@ +code/datums/components/boss_music.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/boss_music.dm

/datum/component/boss_musicAttaches to a hostile simplemob and plays that music while they have a target.
\ No newline at end of file diff --git a/code/datums/components/bullet_intercepting.html b/code/datums/components/bullet_intercepting.html new file mode 100644 index 0000000000000..d01a6ede58067 --- /dev/null +++ b/code/datums/components/bullet_intercepting.html @@ -0,0 +1 @@ +code/datums/components/bullet_intercepting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/bullet_intercepting.dm

/datum/component/bullet_interceptingComponent which allows an equipped item to occasionally absorb a projectile.
\ No newline at end of file diff --git a/code/datums/components/bumpattack.html b/code/datums/components/bumpattack.html new file mode 100644 index 0000000000000..d25d354da0b57 --- /dev/null +++ b/code/datums/components/bumpattack.html @@ -0,0 +1,5 @@ +code/datums/components/bumpattack.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/bumpattack.dm

COOLDOWN_BUMP_ATTACKAdd an auto attack on bump behaviour to item +valid_inventory_slot: the inventory slot the item could be held in while still bumpattacking with it +proxy_weapon: the weapon that will gain this behaviour

Define Details

COOLDOWN_BUMP_ATTACK

Add an auto attack on bump behaviour to item +valid_inventory_slot: the inventory slot the item could be held in while still bumpattacking with it +proxy_weapon: the weapon that will gain this behaviour

\ No newline at end of file diff --git a/code/datums/components/burning.html b/code/datums/components/burning.html new file mode 100644 index 0000000000000..2f1d14fdc7178 --- /dev/null +++ b/code/datums/components/burning.html @@ -0,0 +1,3 @@ +code/datums/components/burning.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/burning.dm

/datum/component/burningComponent representing an atom being on fire. +Should not be used on mobs, they use the fire stacks status effects. +Can only be used on atoms that use the integrity system.
\ No newline at end of file diff --git a/code/datums/components/butchering.html b/code/datums/components/butchering.html new file mode 100644 index 0000000000000..49ee5f13b8853 --- /dev/null +++ b/code/datums/components/butchering.html @@ -0,0 +1 @@ +code/datums/components/butchering.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/butchering.dm

/datum/component/butchering/recyclerSpecial snowflake component only used for the recycler.
\ No newline at end of file diff --git a/code/datums/components/callouts.html b/code/datums/components/callouts.html new file mode 100644 index 0000000000000..a7684ec78faf6 --- /dev/null +++ b/code/datums/components/callouts.html @@ -0,0 +1 @@ +code/datums/components/callouts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/callouts.dm

/datum/component/calloutsComponent that allows its owner/owner's wearer to use callouts system - their pointing is replaced with a fancy radial which allows them to summon glowing markers
\ No newline at end of file diff --git a/code/datums/components/caltrop.html b/code/datums/components/caltrop.html new file mode 100644 index 0000000000000..23297ccffdc1c --- /dev/null +++ b/code/datums/components/caltrop.html @@ -0,0 +1 @@ +code/datums/components/caltrop.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/caltrop.dm

/datum/component/caltropCaltrop element; for hurting people when they walk over this.
\ No newline at end of file diff --git a/code/datums/components/can_flash_from_behind.html b/code/datums/components/can_flash_from_behind.html new file mode 100644 index 0000000000000..0976d68676a10 --- /dev/null +++ b/code/datums/components/can_flash_from_behind.html @@ -0,0 +1 @@ +code/datums/components/can_flash_from_behind.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/can_flash_from_behind.dm

/datum/component/can_flash_from_behindThis mob can flash others from behind and still get at least a partial
\ No newline at end of file diff --git a/code/datums/components/chasm.html b/code/datums/components/chasm.html new file mode 100644 index 0000000000000..c9b696c582b74 --- /dev/null +++ b/code/datums/components/chasm.html @@ -0,0 +1,2 @@ +code/datums/components/chasm.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/chasm.dm

CHASM_REGISTER_SIGNALSDoesn't drop the movable, but registers a few signals to try again if the conditions change.
/obj/effect/abstract/chasm_storageAn abstract object which is basically just a bag that the chasm puts people inside
/proc/get_chasm_categoryReturns a key to store, remove and access fallen mobs depending on the z-level. +This stops rescuing people from places that are waaaaaaaay too far-fetched.

Define Details

CHASM_REGISTER_SIGNALS

Doesn't drop the movable, but registers a few signals to try again if the conditions change.

\ No newline at end of file diff --git a/code/datums/components/chuunibyou.html b/code/datums/components/chuunibyou.html new file mode 100644 index 0000000000000..ce296c21f7215 --- /dev/null +++ b/code/datums/components/chuunibyou.html @@ -0,0 +1 @@ +code/datums/components/chuunibyou.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/chuunibyou.dm

CHUUNIBYOU_HEAL_AMOUNThow much health healed from casting a chuuni spell
CHUUNIBYOU_COOLDOWN_TIMEcooldown between healing to prevent stuff like instant blink spell spam healing
/datum/component/chuunibyou

Define Details

CHUUNIBYOU_COOLDOWN_TIME

cooldown between healing to prevent stuff like instant blink spell spam healing

CHUUNIBYOU_HEAL_AMOUNT

how much health healed from casting a chuuni spell

\ No newline at end of file diff --git a/code/datums/components/cleaner.html b/code/datums/components/cleaner.html new file mode 100644 index 0000000000000..4067dd7a7bc2c --- /dev/null +++ b/code/datums/components/cleaner.html @@ -0,0 +1,4 @@ +code/datums/components/cleaner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/cleaner.dm

/datum/component/cleanerComponent that can be used to clean things. +Takes care of duration, cleaning skill and special cleaning interactions. +A callback can be set by the datum holding the cleaner to add custom functionality. +Soap uses a callback to decrease the amount of uses it has left after cleaning for example.
\ No newline at end of file diff --git a/code/datums/components/clickbox.html b/code/datums/components/clickbox.html new file mode 100644 index 0000000000000..8f8ec88b7ff2d --- /dev/null +++ b/code/datums/components/clickbox.html @@ -0,0 +1,5 @@ +code/datums/components/clickbox.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/clickbox.dm

/datum/component/clickboxThis component adds a near-invisible underlay to a movable target to expand the clickable surface of its icon without +resorting to MOUSE_OPACITY_OPAQUE. +The underlay ignores the parent's color and alpha and can be offset. +The name is a portmanteau of "click" and "hitbox", because technically this isn't an hitbox, +but it helps catch clicks, and I don't want to give it a loooong name like openspace_item_click_handler
\ No newline at end of file diff --git a/code/datums/components/clothing_fov_visor.html b/code/datums/components/clothing_fov_visor.html new file mode 100644 index 0000000000000..c3c9f0d76a233 --- /dev/null +++ b/code/datums/components/clothing_fov_visor.html @@ -0,0 +1 @@ +code/datums/components/clothing_fov_visor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/clothing_fov_visor.dm

/datum/component/clothing_fov_visorAn element to add a FOV trait to the wearer, removing it when an item is unequipped, but only as long as the visor is up.
\ No newline at end of file diff --git a/code/datums/components/codeword_hearing.html b/code/datums/components/codeword_hearing.html new file mode 100644 index 0000000000000..93f6ec2b8c0f9 --- /dev/null +++ b/code/datums/components/codeword_hearing.html @@ -0,0 +1 @@ +code/datums/components/codeword_hearing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/codeword_hearing.dm

/datum/component/codeword_hearingComponent that allows for highlighting of words or phrases in chat based on regular expressions.
\ No newline at end of file diff --git a/code/datums/components/combustible_flooder.html b/code/datums/components/combustible_flooder.html new file mode 100644 index 0000000000000..c4dc9a1d6a8e8 --- /dev/null +++ b/code/datums/components/combustible_flooder.html @@ -0,0 +1 @@ +code/datums/components/combustible_flooder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/combustible_flooder.dm

/datum/component/combustible_flooderComponent that floods gas when ignited by fire.
\ No newline at end of file diff --git a/code/datums/components/connect_containers.html b/code/datums/components/connect_containers.html new file mode 100644 index 0000000000000..b5dd16c1fa5b9 --- /dev/null +++ b/code/datums/components/connect_containers.html @@ -0,0 +1 @@ +code/datums/components/connect_containers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/connect_containers.dm

/datum/component/connect_containersThis component behaves similar to connect_loc_behalf, but it's nested and hooks a signal onto all MOVABLES containing this atom.
\ No newline at end of file diff --git a/code/datums/components/connect_loc_behalf.html b/code/datums/components/connect_loc_behalf.html new file mode 100644 index 0000000000000..bd766d160d2f0 --- /dev/null +++ b/code/datums/components/connect_loc_behalf.html @@ -0,0 +1,4 @@ +code/datums/components/connect_loc_behalf.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/connect_loc_behalf.dm

/datum/component/connect_loc_behalfThis component behaves similar to connect_loc, hooking into a signal on a tracked object's turf +It has the ability to react to that signal on behalf of a separate listener however +This has great use, primarily for components, but it carries with it some overhead +So we do it separately as it needs to hold state which is very likely to lead to bugs if it remains as an element.
\ No newline at end of file diff --git a/code/datums/components/connect_mob_behalf.html b/code/datums/components/connect_mob_behalf.html new file mode 100644 index 0000000000000..0da7cedbffa05 --- /dev/null +++ b/code/datums/components/connect_mob_behalf.html @@ -0,0 +1,3 @@ +code/datums/components/connect_mob_behalf.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/connect_mob_behalf.dm

/datum/component/connect_mob_behalfThis component behaves similar to connect_loc_behalf, but working off clients and mobs instead of loc +To be clear, we hook into a signal on a tracked client's mob +We retain the ability to react to that signal on a separate listener, which makes this quite powerful
\ No newline at end of file diff --git a/code/datums/components/connect_range.html b/code/datums/components/connect_range.html new file mode 100644 index 0000000000000..72cd3cf54ee9a --- /dev/null +++ b/code/datums/components/connect_range.html @@ -0,0 +1,3 @@ +code/datums/components/connect_range.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/connect_range.dm

/datum/component/connect_rangeThis component behaves similar to connect_loc_behalf but for all turfs in range, hooking into a signal on each of them. +Just like connect_loc_behalf, It can react to that signal on behalf of a separate listener. +Good for components, though it carries some overhead. Can't be an element as that may lead to bugs.
\ No newline at end of file diff --git a/code/datums/components/container_item/container_item.html b/code/datums/components/container_item/container_item.html new file mode 100644 index 0000000000000..37f6af07d2c90 --- /dev/null +++ b/code/datums/components/container_item/container_item.html @@ -0,0 +1 @@ +code/datums/components/container_item/container_item.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/container_item/container_item.dm

/datum/component/container_itemContainer item, an item which can be stored by specialized containers.
\ No newline at end of file diff --git a/code/datums/components/container_item/tank_holder.html b/code/datums/components/container_item/tank_holder.html new file mode 100644 index 0000000000000..756a0249852d0 --- /dev/null +++ b/code/datums/components/container_item/tank_holder.html @@ -0,0 +1 @@ +code/datums/components/container_item/tank_holder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/container_item/tank_holder.dm

/datum/component/container_item/tank_holderTank holder item - Added to an object which can be added to a tank holder.
\ No newline at end of file diff --git a/code/datums/components/conveyor_movement.html b/code/datums/components/conveyor_movement.html new file mode 100644 index 0000000000000..3e598c0a4935a --- /dev/null +++ b/code/datums/components/conveyor_movement.html @@ -0,0 +1,3 @@ +code/datums/components/conveyor_movement.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/conveyor_movement.dm

/datum/component/conveyManages the loop caused by being on a conveyor belt +Prevents movement while you're floating, etc +Takes the direction to move, delay between steps, and time before starting to move as arguments
\ No newline at end of file diff --git a/code/datums/components/cracked.html b/code/datums/components/cracked.html new file mode 100644 index 0000000000000..7e332ad07b42d --- /dev/null +++ b/code/datums/components/cracked.html @@ -0,0 +1 @@ +code/datums/components/cracked.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/cracked.dm

/datum/component/crackedTracks damage to add or remove crack overlays, when none are needed this components is qdeleted
\ No newline at end of file diff --git a/code/datums/components/crafting/equipment.html b/code/datums/components/crafting/equipment.html new file mode 100644 index 0000000000000..afa8aae31a4dc --- /dev/null +++ b/code/datums/components/crafting/equipment.html @@ -0,0 +1 @@ +code/datums/components/crafting/equipment.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/crafting/equipment.dm

/datum/crafting_recipe/clown_scanner_upgradeRecipe used for upgrading fake N-spect scanners to bananium HONK-spect scanners
\ No newline at end of file diff --git a/code/datums/components/crafting/guncrafting.html b/code/datums/components/crafting/guncrafting.html new file mode 100644 index 0000000000000..eb3bee30e2f40 --- /dev/null +++ b/code/datums/components/crafting/guncrafting.html @@ -0,0 +1 @@ +code/datums/components/crafting/guncrafting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/crafting/guncrafting.dm

/obj/item/weaponcrafting/gunkitThese gun kits are printed from the security protolathe to then be used in making new weapons
\ No newline at end of file diff --git a/code/datums/components/crate_carrier.html b/code/datums/components/crate_carrier.html new file mode 100644 index 0000000000000..6f9c02c428d7d --- /dev/null +++ b/code/datums/components/crate_carrier.html @@ -0,0 +1 @@ +code/datums/components/crate_carrier.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/crate_carrier.dm

/datum/component/crate_carrierComponent for simplemobs and basicmobs that allow them to carry crates.
\ No newline at end of file diff --git a/code/datums/components/curse_of_hunger.html b/code/datums/components/curse_of_hunger.html new file mode 100644 index 0000000000000..3d6257f15c8c7 --- /dev/null +++ b/code/datums/components/curse_of_hunger.html @@ -0,0 +1 @@ +code/datums/components/curse_of_hunger.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/curse_of_hunger.dm

HUNGER_THRESHOLD_WARNINGthe point where you can notice the item is hungry on examine.
HUNGER_THRESHOLD_TRY_EATINGthe point where the item has a chance to eat something on every tick. possibly you!
/datum/component/curse_of_hungercurse of hunger component; for very hungry items.

Define Details

HUNGER_THRESHOLD_TRY_EATING

the point where the item has a chance to eat something on every tick. possibly you!

HUNGER_THRESHOLD_WARNING

the point where you can notice the item is hungry on examine.

\ No newline at end of file diff --git a/code/datums/components/curse_of_polymorph.html b/code/datums/components/curse_of_polymorph.html new file mode 100644 index 0000000000000..0abbdfb7698b6 --- /dev/null +++ b/code/datums/components/curse_of_polymorph.html @@ -0,0 +1 @@ +code/datums/components/curse_of_polymorph.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/curse_of_polymorph.dm

/datum/component/curse_of_polymorphcurse of polymorph component;
\ No newline at end of file diff --git a/code/datums/components/customizable_reagent_holder.html b/code/datums/components/customizable_reagent_holder.html new file mode 100644 index 0000000000000..375ee5d81876f --- /dev/null +++ b/code/datums/components/customizable_reagent_holder.html @@ -0,0 +1,2 @@ +code/datums/components/customizable_reagent_holder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/customizable_reagent_holder.dm

/datum/component/customizable_reagent_holderWhen added to an atom, item ingredients can be put into that. +The sprite is updated and reagents are transferred.
\ No newline at end of file diff --git a/code/datums/components/damage_aura.html b/code/datums/components/damage_aura.html new file mode 100644 index 0000000000000..40b22bb7058cd --- /dev/null +++ b/code/datums/components/damage_aura.html @@ -0,0 +1,2 @@ +code/datums/components/damage_aura.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/damage_aura.dm

/datum/component/damage_auraApplies a status effect and deals damage to people in the area. +Will deal more damage the more people are present.
\ No newline at end of file diff --git a/code/datums/components/damage_chain.html b/code/datums/components/damage_chain.html new file mode 100644 index 0000000000000..df06ea471738e --- /dev/null +++ b/code/datums/components/damage_chain.html @@ -0,0 +1 @@ +code/datums/components/damage_chain.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/damage_chain.dm

/datum/component/damage_chainDraws a line between you and another atom, hurt anyone stood in the line
\ No newline at end of file diff --git a/code/datums/components/dart_insert.html b/code/datums/components/dart_insert.html new file mode 100644 index 0000000000000..0a1661476cce3 --- /dev/null +++ b/code/datums/components/dart_insert.html @@ -0,0 +1,5 @@ +code/datums/components/dart_insert.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/dart_insert.dm

/datum/component/dart_insertComponent for allowing items to be inserted into foam darts. +The parent can register signal handlers for COMSIG_DART_INSERT_ADDED, +COMSIG_DART_INSERT_REMOVED to define custom behavior for when the item +is added to/removed from a dart, and COMSIG_DART_INSERT_GET_VAR_MODIFIERS +to define the modifications the item makes to the vars of the fired projectile.
\ No newline at end of file diff --git a/code/datums/components/deadchat_control.html b/code/datums/components/deadchat_control.html new file mode 100644 index 0000000000000..0aca5e2c84ce2 --- /dev/null +++ b/code/datums/components/deadchat_control.html @@ -0,0 +1 @@ +code/datums/components/deadchat_control.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/deadchat_control.dm

/datum/component/deadchat_controlDeadchat Plays Things - The Componenting
\ No newline at end of file diff --git a/code/datums/components/death_linked.html b/code/datums/components/death_linked.html new file mode 100644 index 0000000000000..bf1cf2bd975b1 --- /dev/null +++ b/code/datums/components/death_linked.html @@ -0,0 +1 @@ +code/datums/components/death_linked.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/death_linked.dm

/datum/component/death_linked
\ No newline at end of file diff --git a/code/datums/components/dejavu.html b/code/datums/components/dejavu.html new file mode 100644 index 0000000000000..2fd2cf82d8079 --- /dev/null +++ b/code/datums/components/dejavu.html @@ -0,0 +1 @@ +code/datums/components/dejavu.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/dejavu.dm

/datum/component/dejavuA component to reset the parent to its previous state after some time passes
/datum/component/dejavu/timelinedifferently themed dejavu for modsuits.
\ No newline at end of file diff --git a/code/datums/components/deployable.html b/code/datums/components/deployable.html new file mode 100644 index 0000000000000..ce7f34345b841 --- /dev/null +++ b/code/datums/components/deployable.html @@ -0,0 +1 @@ +code/datums/components/deployable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/deployable.dm

/datum/component/deployableDeployable - Bring your big guns with you, and smack em' down where you want.
\ No newline at end of file diff --git a/code/datums/components/direct_explosive_trap.html b/code/datums/components/direct_explosive_trap.html new file mode 100644 index 0000000000000..6f3359e0573bd --- /dev/null +++ b/code/datums/components/direct_explosive_trap.html @@ -0,0 +1,2 @@ +code/datums/components/direct_explosive_trap.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/direct_explosive_trap.dm

/datum/component/direct_explosive_trapResponds to certain signals and 'explodes' on the person using the item. +Differs from interaction_booby_trap in that this doesn't actually explode, it just directly calls ex_act on one person.
\ No newline at end of file diff --git a/code/datums/components/egg_layer.html b/code/datums/components/egg_layer.html new file mode 100644 index 0000000000000..57d58d3f38c41 --- /dev/null +++ b/code/datums/components/egg_layer.html @@ -0,0 +1,3 @@ +code/datums/components/egg_layer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/egg_layer.dm

/datum/component/egg_layerComponent that manages how many eggs to lay, what can be fed to the mob to make them lay more, and what is actually laid. +Since the only real interaction with the component is an attackby, the nice part is that we're able to make this an atom level proc. +egg_layer will loudly fail if you do not provide it the arguments, as to encourage explicicy(?)
\ No newline at end of file diff --git a/code/datums/components/electrified_buckle.html b/code/datums/components/electrified_buckle.html new file mode 100644 index 0000000000000..3b6fa47c148a7 --- /dev/null +++ b/code/datums/components/electrified_buckle.html @@ -0,0 +1,2 @@ +code/datums/components/electrified_buckle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/electrified_buckle.dm

ELECTRIC_BUCKLE_SHOCK_STRENGTH_DIVISORdivide the power in the cable net under parent by this to determine the shock damage
ELECTRIC_BUCKLE_MINUMUM_POWERNET_STRENGTHit will not shock the mob buckled to parent if its required to use a cable to shock and the cable has less than this power availaible
/datum/component/electrified_buckleattach it to any atom/movable that can be buckled to in order to have it shock mobs buckled to it. by default it shocks mobs buckled to parent every shock_loop_time. +the parent is supposed to define its behavior with arguments in AddComponent

Define Details

ELECTRIC_BUCKLE_MINUMUM_POWERNET_STRENGTH

it will not shock the mob buckled to parent if its required to use a cable to shock and the cable has less than this power availaible

ELECTRIC_BUCKLE_SHOCK_STRENGTH_DIVISOR

divide the power in the cable net under parent by this to determine the shock damage

\ No newline at end of file diff --git a/code/datums/components/engraved.html b/code/datums/components/engraved.html new file mode 100644 index 0000000000000..0226128f45521 --- /dev/null +++ b/code/datums/components/engraved.html @@ -0,0 +1,3 @@ +code/datums/components/engraved.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/engraved.dm

/datum/component/engravedcomponent for walls that applies an engraved overlay and lets you examine it to read a story (+ art element yay) +new creations will get a high art value, cross round scrawlings will get a low one. +MUST be a component, though it doesn't look like it. SSPersistence demandeth
\ No newline at end of file diff --git a/code/datums/components/evolutionary_leap.html b/code/datums/components/evolutionary_leap.html new file mode 100644 index 0000000000000..68a55803af21b --- /dev/null +++ b/code/datums/components/evolutionary_leap.html @@ -0,0 +1 @@ +code/datums/components/evolutionary_leap.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/evolutionary_leap.dm

/datum/component/evolutionary_leap
\ No newline at end of file diff --git a/code/datums/components/explodable.html b/code/datums/components/explodable.html new file mode 100644 index 0000000000000..a668e1a0e12fd --- /dev/null +++ b/code/datums/components/explodable.html @@ -0,0 +1 @@ +code/datums/components/explodable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/explodable.dm

/datum/component/explodableComponent specifically for explosion sensetive things, currently only applies to heat based explosions but can later perhaps be used for things that are dangerous to handle carelessly like nitroglycerin.
\ No newline at end of file diff --git a/code/datums/components/explode_on_attack.html b/code/datums/components/explode_on_attack.html new file mode 100644 index 0000000000000..5ae2ff6f20933 --- /dev/null +++ b/code/datums/components/explode_on_attack.html @@ -0,0 +1 @@ +code/datums/components/explode_on_attack.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/explode_on_attack.dm

/datum/component/explode_on_attackBombs the user after an attack
\ No newline at end of file diff --git a/code/datums/components/face_decal.html b/code/datums/components/face_decal.html new file mode 100644 index 0000000000000..2ef6c55af9abb --- /dev/null +++ b/code/datums/components/face_decal.html @@ -0,0 +1 @@ +code/datums/components/face_decal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/face_decal.dm

/datum/component/face_decalFace decal component
\ No newline at end of file diff --git a/code/datums/components/faction_granter.html b/code/datums/components/faction_granter.html new file mode 100644 index 0000000000000..801d7a33e5d8c --- /dev/null +++ b/code/datums/components/faction_granter.html @@ -0,0 +1 @@ +code/datums/components/faction_granter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/faction_granter.dm

/datum/component/faction_granter
\ No newline at end of file diff --git a/code/datums/components/fantasy/suffixes.html b/code/datums/components/fantasy/suffixes.html new file mode 100644 index 0000000000000..fdedfc7f15db4 --- /dev/null +++ b/code/datums/components/fantasy/suffixes.html @@ -0,0 +1 @@ +code/datums/components/fantasy/suffixes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/fantasy/suffixes.dm

/datum/fantasy_affix/baneGood suffixes
/datum/fantasy_affix/foolBad suffixes
\ No newline at end of file diff --git a/code/datums/components/fertile_egg.html b/code/datums/components/fertile_egg.html new file mode 100644 index 0000000000000..140f2b638c85d --- /dev/null +++ b/code/datums/components/fertile_egg.html @@ -0,0 +1 @@ +code/datums/components/fertile_egg.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/fertile_egg.dm

/datum/component/fertile_egg
\ No newline at end of file diff --git a/code/datums/components/fish_growth.html b/code/datums/components/fish_growth.html new file mode 100644 index 0000000000000..b33435c7e153f --- /dev/null +++ b/code/datums/components/fish_growth.html @@ -0,0 +1 @@ +code/datums/components/fish_growth.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/fish_growth.dm

/datum/component/fish_growthA simple component that manages raising things from aquarium fish.
\ No newline at end of file diff --git a/code/datums/components/focused_attacker.html b/code/datums/components/focused_attacker.html new file mode 100644 index 0000000000000..1518b1f122d5d --- /dev/null +++ b/code/datums/components/focused_attacker.html @@ -0,0 +1,2 @@ +code/datums/components/focused_attacker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/focused_attacker.dm

/datum/component/focused_attackerIncreases our attack damage every time we attack the same target +Not compatible with any other component or status effect which modifies attack damage
\ No newline at end of file diff --git a/code/datums/components/food/decomposition.html b/code/datums/components/food/decomposition.html new file mode 100644 index 0000000000000..23f085fa9e8ec --- /dev/null +++ b/code/datums/components/food/decomposition.html @@ -0,0 +1 @@ +code/datums/components/food/decomposition.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/food/decomposition.dm

/datum/component/decompositionMakes things decompose when exposed to germs. Requires /datum/component/germ_sensitive to detect exposure.
\ No newline at end of file diff --git a/code/datums/components/food/edible.html b/code/datums/components/food/edible.html new file mode 100644 index 0000000000000..04d6694b2af2c --- /dev/null +++ b/code/datums/components/food/edible.html @@ -0,0 +1,9 @@ +code/datums/components/food/edible.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/food/edible.dm

This component makes it possible to make things edible. What this means is that you can take a bite or force someone to take a bite (in the case of items). +These items take a specific time to eat, and can do most of the things our original food items could.

+

Behavior that's still missing from this component that original food items had that should either be put into separate components or somewhere else: +Components: +Drying component (jerky etc) +Processable component (Slicing and cooking behavior essentialy, making it go from item A to B when conditions are met.)

+
Misc:
+Something for cakes (You can store things inside)
+
EAT_TIME_FORCE_FEEDNormal time to forcefeed someone something
EAT_TIME_VORACIOUS_MULTMultiplier for eat time if the eater has TRAIT_VORACIOUS
EAT_TIME_VORACIOUS_FULL_MULTMultiplier for how much longer it takes a voracious folk to eat while full

Define Details

EAT_TIME_FORCE_FEED

Normal time to forcefeed someone something

EAT_TIME_VORACIOUS_FULL_MULT

Multiplier for how much longer it takes a voracious folk to eat while full

EAT_TIME_VORACIOUS_MULT

Multiplier for eat time if the eater has TRAIT_VORACIOUS

\ No newline at end of file diff --git a/code/datums/components/food/germ_sensitive.html b/code/datums/components/food/germ_sensitive.html new file mode 100644 index 0000000000000..f35119cc6700c --- /dev/null +++ b/code/datums/components/food/germ_sensitive.html @@ -0,0 +1 @@ +code/datums/components/food/germ_sensitive.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/food/germ_sensitive.dm

GERM_EXPOSURE_DELAYTime needed for bacteria to infect the parent object
/datum/component/germ_sensitiveMakes items infective if left on floor, also sending corresponding signals to parent

Define Details

GERM_EXPOSURE_DELAY

Time needed for bacteria to infect the parent object

\ No newline at end of file diff --git a/code/datums/components/food/ghost_edible.html b/code/datums/components/food/ghost_edible.html new file mode 100644 index 0000000000000..52a49f0103fbf --- /dev/null +++ b/code/datums/components/food/ghost_edible.html @@ -0,0 +1,2 @@ +code/datums/components/food/ghost_edible.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/food/ghost_edible.dm

/datum/component/ghost_edibleAllows ghosts to eat this by orbiting it +They do this by consuming the reagents in the object, so if it doesn't have any then it won't work
\ No newline at end of file diff --git a/code/datums/components/food/golem_food.html b/code/datums/components/food/golem_food.html new file mode 100644 index 0000000000000..bcb8df358c0c8 --- /dev/null +++ b/code/datums/components/food/golem_food.html @@ -0,0 +1 @@ +code/datums/components/food/golem_food.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/food/golem_food.dm

/datum/component/golem_foodComponent which allows something to be eaten by a golem
/obj/item/food/golem_foodAbstract food item used to feed golems
\ No newline at end of file diff --git a/code/datums/components/food/ice_cream_holder.html b/code/datums/components/food/ice_cream_holder.html new file mode 100644 index 0000000000000..f964af929307f --- /dev/null +++ b/code/datums/components/food/ice_cream_holder.html @@ -0,0 +1 @@ +code/datums/components/food/ice_cream_holder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/food/ice_cream_holder.dm

/datum/component/ice_cream_holderIce Cream Holder: Allows the edible parent object to be used as an ice cream cone (or cup... in a next future).
/datum/ice_cream_flavour/vanillaOUR TYPES OF ICE CREAM, COME GET SOME.
\ No newline at end of file diff --git a/code/datums/components/food_storage.html b/code/datums/components/food_storage.html new file mode 100644 index 0000000000000..f00e72178b667 --- /dev/null +++ b/code/datums/components/food_storage.html @@ -0,0 +1,3 @@ +code/datums/components/food_storage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/food_storage.dm

/datum/component/food_storage--Food storage component-- +This component lets you slide one item into large foods, such as bread, cheese wheels, or cakes. +Consuming food storages with an item inside can cause unique interactions, such as eating glass shards.
\ No newline at end of file diff --git a/code/datums/components/force_move.html b/code/datums/components/force_move.html new file mode 100644 index 0000000000000..64f8957cb7c14 --- /dev/null +++ b/code/datums/components/force_move.html @@ -0,0 +1,3 @@ +code/datums/components/force_move.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/force_move.dm

/datum/component/force_moveForced directional movement, but with a twist +Let's block pressure and client movements while doing it so we can't be interrupted +Supports spinning on each move, for lube related reasons
\ No newline at end of file diff --git a/code/datums/components/fov_handler.html b/code/datums/components/fov_handler.html new file mode 100644 index 0000000000000..8f08996b6d264 --- /dev/null +++ b/code/datums/components/fov_handler.html @@ -0,0 +1 @@ +code/datums/components/fov_handler.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/fov_handler.dm

/datum/component/fov_handlerComponent which handles Field of View masking for clients. FoV attributes are at /mob/living
\ No newline at end of file diff --git a/code/datums/components/gas_leaker.html b/code/datums/components/gas_leaker.html new file mode 100644 index 0000000000000..120acb4dc0a6b --- /dev/null +++ b/code/datums/components/gas_leaker.html @@ -0,0 +1 @@ +code/datums/components/gas_leaker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/gas_leaker.dm

/datum/component/gas_leakerA component to leak gas over time from damaged objects with gas storage
\ No newline at end of file diff --git a/code/datums/components/geiger_sound.html b/code/datums/components/geiger_sound.html new file mode 100644 index 0000000000000..54e9af3835645 --- /dev/null +++ b/code/datums/components/geiger_sound.html @@ -0,0 +1 @@ +code/datums/components/geiger_sound.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/geiger_sound.dm

/datum/component/geiger_soundAtoms with this component will play sounds depending on nearby radiation
\ No newline at end of file diff --git a/code/datums/components/ghost_direct_control.html b/code/datums/components/ghost_direct_control.html new file mode 100644 index 0000000000000..4ef8399ef9456 --- /dev/null +++ b/code/datums/components/ghost_direct_control.html @@ -0,0 +1 @@ +code/datums/components/ghost_direct_control.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/ghost_direct_control.dm

/datum/component/ghost_direct_controlComponent which lets ghosts click on a mob to take control of it
\ No newline at end of file diff --git a/code/datums/components/glass_passer.html b/code/datums/components/glass_passer.html new file mode 100644 index 0000000000000..4004013c1839a --- /dev/null +++ b/code/datums/components/glass_passer.html @@ -0,0 +1 @@ +code/datums/components/glass_passer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/glass_passer.dm

/datum/component/glass_passerAllows us to move through glass but not electrified glass. Can also do a little slowdown before passing through
\ No newline at end of file diff --git a/code/datums/components/gps.html b/code/datums/components/gps.html new file mode 100644 index 0000000000000..e81e8b05fbe0e --- /dev/null +++ b/code/datums/components/gps.html @@ -0,0 +1 @@ +code/datums/components/gps.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/gps.dm

/datum/component/gpsGPS component. Atoms that have this show up on gps. Pretty simple stuff.
/datum/component/gps/itemGPS component subtype. Only gps/item's can be used to open the UI.
\ No newline at end of file diff --git a/code/datums/components/ground_sinking.html b/code/datums/components/ground_sinking.html new file mode 100644 index 0000000000000..aef33d2e32569 --- /dev/null +++ b/code/datums/components/ground_sinking.html @@ -0,0 +1,2 @@ +code/datums/components/ground_sinking.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/ground_sinking.dm

/datum/component/ground_sinkingA basic mob with this component will sink into the ground, once sinked into the ground it will regenerate and +might gain damage resistence. Can be combined with caltrop.
\ No newline at end of file diff --git a/code/datums/components/growth_and_differentiation.html b/code/datums/components/growth_and_differentiation.html new file mode 100644 index 0000000000000..235c0af50d192 --- /dev/null +++ b/code/datums/components/growth_and_differentiation.html @@ -0,0 +1 @@ +code/datums/components/growth_and_differentiation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/growth_and_differentiation.dm

/datum/component/growth_and_differentiation
\ No newline at end of file diff --git a/code/datums/components/gunpoint.html b/code/datums/components/gunpoint.html new file mode 100644 index 0000000000000..39114c5de788c --- /dev/null +++ b/code/datums/components/gunpoint.html @@ -0,0 +1 @@ +code/datums/components/gunpoint.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/gunpoint.dm

GUNPOINT_DELAY_STAGE_2How long it takes from the gunpoint is initiated to reach stage 2
GUNPOINT_DELAY_STAGE_3How long it takes from stage 2 starting to move up to stage 3
GUNPOINT_BASE_WOUND_BONUSIf the projectile doesn't have a wound_bonus of CANT_WOUND, we add (this * the stage mult) to their wound_bonus and bare_wound_bonus upon triggering
GUNPOINT_MULT_STAGE_1How much the damage and wound bonus mod is multiplied when you're on stage 1
GUNPOINT_MULT_STAGE_2As above, for stage 2
GUNPOINT_MULT_STAGE_3As above, for stage 3

Define Details

GUNPOINT_BASE_WOUND_BONUS

If the projectile doesn't have a wound_bonus of CANT_WOUND, we add (this * the stage mult) to their wound_bonus and bare_wound_bonus upon triggering

GUNPOINT_DELAY_STAGE_2

How long it takes from the gunpoint is initiated to reach stage 2

GUNPOINT_DELAY_STAGE_3

How long it takes from stage 2 starting to move up to stage 3

GUNPOINT_MULT_STAGE_1

How much the damage and wound bonus mod is multiplied when you're on stage 1

GUNPOINT_MULT_STAGE_2

As above, for stage 2

GUNPOINT_MULT_STAGE_3

As above, for stage 3

\ No newline at end of file diff --git a/code/datums/components/hazard_area.html b/code/datums/components/hazard_area.html new file mode 100644 index 0000000000000..80bbc23c8f692 --- /dev/null +++ b/code/datums/components/hazard_area.html @@ -0,0 +1,4 @@ +code/datums/components/hazard_area.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/hazard_area.dm

/datum/component/hazard_areaThis is a relatively simple component that attempts to deter the parent of the component away +from a specific area or areas. By default it simply applies a penalty where all movement is +four times slower than usual and any action that would affect your 'next move' has a penalty +multiplier of 4 attached.
/datum/status_effect/hazard_areaThe dedicated status effect for the hazard_area component - use with caution and know what it does!
\ No newline at end of file diff --git a/code/datums/components/healing_touch.html b/code/datums/components/healing_touch.html new file mode 100644 index 0000000000000..23dc4331f86e6 --- /dev/null +++ b/code/datums/components/healing_touch.html @@ -0,0 +1,2 @@ +code/datums/components/healing_touch.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/healing_touch.dm

/datum/component/healing_touchA mob with this component will be able to heal certain targets by attacking them. +This intercepts the attack and starts a do_after if the target is in its allowed type list.
\ No newline at end of file diff --git a/code/datums/components/health_scaling_effects.html b/code/datums/components/health_scaling_effects.html new file mode 100644 index 0000000000000..9311eb8c2bdbd --- /dev/null +++ b/code/datums/components/health_scaling_effects.html @@ -0,0 +1 @@ +code/datums/components/health_scaling_effects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/health_scaling_effects.dm

/datum/component/health_scaling_effects
\ No newline at end of file diff --git a/code/datums/components/heirloom.html b/code/datums/components/heirloom.html new file mode 100644 index 0000000000000..de1592314efef --- /dev/null +++ b/code/datums/components/heirloom.html @@ -0,0 +1 @@ +code/datums/components/heirloom.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/heirloom.dm

/datum/component/heirloomHeirloom component. For use with the family heirloom quirk, tracks that an item is someone's family heirloom.
\ No newline at end of file diff --git a/code/datums/components/hide_highest_offset.html b/code/datums/components/hide_highest_offset.html new file mode 100644 index 0000000000000..d08604ba601fb --- /dev/null +++ b/code/datums/components/hide_highest_offset.html @@ -0,0 +1,2 @@ +code/datums/components/hide_highest_offset.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/hide_highest_offset.dm

/datum/component/plane_hide_highest_offsetComponent that takes a plane master, and will hide it if it's the highest offset of its kind +This allows us to not show PMs to clients if they're not actively doing anything
\ No newline at end of file diff --git a/code/datums/components/holderloving.html b/code/datums/components/holderloving.html new file mode 100644 index 0000000000000..d4e0993aa397b --- /dev/null +++ b/code/datums/components/holderloving.html @@ -0,0 +1 @@ +code/datums/components/holderloving.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/holderloving.dm

/datum/component/holderloving
\ No newline at end of file diff --git a/code/datums/components/interaction_booby_trap.html b/code/datums/components/interaction_booby_trap.html new file mode 100644 index 0000000000000..1c9f03db863ce --- /dev/null +++ b/code/datums/components/interaction_booby_trap.html @@ -0,0 +1 @@ +code/datums/components/interaction_booby_trap.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/interaction_booby_trap.dm

/datum/component/interaction_booby_trapAttached to an atom, creates an explosion when it is interacted with
\ No newline at end of file diff --git a/code/datums/components/irradiated.html b/code/datums/components/irradiated.html new file mode 100644 index 0000000000000..c517ccf0d6a2f --- /dev/null +++ b/code/datums/components/irradiated.html @@ -0,0 +1,2 @@ +code/datums/components/irradiated.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/irradiated.dm

/datum/component/irradiatedThis atom is irradiated, and will glow green. +Humans will take toxin damage until all their toxin damage is cleared.
\ No newline at end of file diff --git a/code/datums/components/itembound.html b/code/datums/components/itembound.html new file mode 100644 index 0000000000000..e4460468ae45c --- /dev/null +++ b/code/datums/components/itembound.html @@ -0,0 +1 @@ +code/datums/components/itembound.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/itembound.dm

/datum/component/itemboundWhen a movable has this component AND they are in the contents of a container, they will no longer be able to use their hands and be immobilized until they are removed from the container. So far, this is only useful for smites.
\ No newline at end of file diff --git a/code/datums/components/itempicky.html b/code/datums/components/itempicky.html new file mode 100644 index 0000000000000..a890b540470dc --- /dev/null +++ b/code/datums/components/itempicky.html @@ -0,0 +1 @@ +code/datums/components/itempicky.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/itempicky.dm

/datum/component/itempickyYou can only hold whitelisted items
\ No newline at end of file diff --git a/code/datums/components/jousting.html b/code/datums/components/jousting.html new file mode 100644 index 0000000000000..d7d1908e9d9d6 --- /dev/null +++ b/code/datums/components/jousting.html @@ -0,0 +1 @@ +code/datums/components/jousting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/jousting.dm

MOVEMENT_RESET_COOLDOWN_TIMEAmount of time each timer has, used to reset the jousting back, indicating that the person has stopped moving.
/datum/component/jousting##jousting

Define Details

MOVEMENT_RESET_COOLDOWN_TIME

Amount of time each timer has, used to reset the jousting back, indicating that the person has stopped moving.

\ No newline at end of file diff --git a/code/datums/components/keep_me_secure.html b/code/datums/components/keep_me_secure.html new file mode 100644 index 0000000000000..d3cdca87502f1 --- /dev/null +++ b/code/datums/components/keep_me_secure.html @@ -0,0 +1 @@ +code/datums/components/keep_me_secure.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/keep_me_secure.dm

/datum/component/keep_me_secure
\ No newline at end of file diff --git a/code/datums/components/knockoff.html b/code/datums/components/knockoff.html new file mode 100644 index 0000000000000..7060a1b8c772c --- /dev/null +++ b/code/datums/components/knockoff.html @@ -0,0 +1,2 @@ +code/datums/components/knockoff.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/knockoff.dm

/datum/component/knockoffItems with this component will have a chance to get knocked off +(unequipped and sent to the ground) when the wearer is disarmed or knocked down.
\ No newline at end of file diff --git a/code/datums/components/leash.html b/code/datums/components/leash.html new file mode 100644 index 0000000000000..a26117b4ae480 --- /dev/null +++ b/code/datums/components/leash.html @@ -0,0 +1,2 @@ +code/datums/components/leash.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/leash.dm

/datum/component/leashKeeps the parent within the distance of its owner as naturally as possible, +but teleporting if necessary.
/obj/effect/spawner/debug_leashA debug spawner that will create a corgi leashed to a bike horn, plus a beam
\ No newline at end of file diff --git a/code/datums/components/life_link.html b/code/datums/components/life_link.html new file mode 100644 index 0000000000000..0c1bc169fedd4 --- /dev/null +++ b/code/datums/components/life_link.html @@ -0,0 +1,2 @@ +code/datums/components/life_link.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/life_link.dm

/datum/component/life_linkA mob with this component passes all damage (and healing) it takes to another mob, passed as a parameter +Essentially we use another mob's health bar as our health bar
\ No newline at end of file diff --git a/code/datums/components/light_eater.html b/code/datums/components/light_eater.html new file mode 100644 index 0000000000000..cb6ef97575ba0 --- /dev/null +++ b/code/datums/components/light_eater.html @@ -0,0 +1 @@ +code/datums/components/light_eater.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/light_eater.dm

/datum/component/light_eaterMakes anything it attaches to capable of removing something's ability to produce light until it is destroyed
\ No newline at end of file diff --git a/code/datums/components/ling_decoy_brain.html b/code/datums/components/ling_decoy_brain.html new file mode 100644 index 0000000000000..ef23dab0ea6f9 --- /dev/null +++ b/code/datums/components/ling_decoy_brain.html @@ -0,0 +1 @@ +code/datums/components/ling_decoy_brain.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/ling_decoy_brain.dm

/datum/component/ling_decoy_brainComponent applied to ling brains to make them into decoy brains, as ling brains are vestigial and don't do anything
\ No newline at end of file diff --git a/code/datums/components/listen_and_repeat.html b/code/datums/components/listen_and_repeat.html new file mode 100644 index 0000000000000..64700d611faf6 --- /dev/null +++ b/code/datums/components/listen_and_repeat.html @@ -0,0 +1,2 @@ +code/datums/components/listen_and_repeat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/listen_and_repeat.dm

MAX_SPEECH_BUFFER_SIZEThe maximum number of phrases we can store in our speech buffer
RADIO_IGNORE_CHANCETendency we have to ignore radio chatter
MESSAGE_LINEThe line we will re-iterate
MESSAGE_VOICEthe tts voice it should be said in
MESSAGE_PITCHthe tone it should be said in
/datum/component/listen_and_repeatSimple element that will deterministically set a value based on stuff that the source has heard and will then compel the source to repeat it. +Requires a valid AI Blackboard.

Define Details

MAX_SPEECH_BUFFER_SIZE

The maximum number of phrases we can store in our speech buffer

MESSAGE_LINE

The line we will re-iterate

MESSAGE_PITCH

the tone it should be said in

MESSAGE_VOICE

the tts voice it should be said in

RADIO_IGNORE_CHANCE

Tendency we have to ignore radio chatter

\ No newline at end of file diff --git a/code/datums/components/lock_on_cursor.html b/code/datums/components/lock_on_cursor.html new file mode 100644 index 0000000000000..84424841dca4d --- /dev/null +++ b/code/datums/components/lock_on_cursor.html @@ -0,0 +1 @@ +code/datums/components/lock_on_cursor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/lock_on_cursor.dm

/datum/component/lock_on_cursor
/atom/movable/screen/fullscreen/cursor_catcher/lock_onTracks cursor movement and passes clicks through to the turf under the cursor
\ No newline at end of file diff --git a/code/datums/components/lockable_storage.html b/code/datums/components/lockable_storage.html new file mode 100644 index 0000000000000..321b26d51bb46 --- /dev/null +++ b/code/datums/components/lockable_storage.html @@ -0,0 +1,4 @@ +code/datums/components/lockable_storage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/lockable_storage.dm

/datum/component/lockable_storage##lockable_storage +Adds a UI to the object that triggers when you use it in hand (if item) or attack (everything else). +The UI is a lock that, when unlocked, allows you to access the contents inside of it. +When using this, make sure you have icons for on_update_icon_state.
\ No newline at end of file diff --git a/code/datums/components/magnet.html b/code/datums/components/magnet.html new file mode 100644 index 0000000000000..5c463697d67ff --- /dev/null +++ b/code/datums/components/magnet.html @@ -0,0 +1 @@ +code/datums/components/magnet.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/magnet.dm

/datum/component/magnetAttracts items of a certain typepath
\ No newline at end of file diff --git a/code/datums/components/manual_heart.html b/code/datums/components/manual_heart.html new file mode 100644 index 0000000000000..64a02cd89133f --- /dev/null +++ b/code/datums/components/manual_heart.html @@ -0,0 +1,2 @@ +code/datums/components/manual_heart.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/manual_heart.dm

MANUAL_HEART_GRACE_PERIODIf a beat is missed, how long to give before the next is missed
/datum/component/manual_heartManual heart pumping component. Requires the holder to pump their heart manually every +so often or die.
/datum/action/cooldown/manual_heartAction to pump your heart. Cooldown will always be set to 1 second less than the pump delay.

Define Details

MANUAL_HEART_GRACE_PERIOD

If a beat is missed, how long to give before the next is missed

\ No newline at end of file diff --git a/code/datums/components/marionette.html b/code/datums/components/marionette.html new file mode 100644 index 0000000000000..8fe908cbb93de --- /dev/null +++ b/code/datums/components/marionette.html @@ -0,0 +1 @@ +code/datums/components/marionette.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/marionette.dm

/datum/component/marionetteMarionette component
\ No newline at end of file diff --git a/code/datums/components/martial_art_giver.html b/code/datums/components/martial_art_giver.html new file mode 100644 index 0000000000000..e3855cb30aab0 --- /dev/null +++ b/code/datums/components/martial_art_giver.html @@ -0,0 +1 @@ +code/datums/components/martial_art_giver.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/martial_art_giver.dm

/datum/component/martial_art_giverwhen equipped and unequipped this item gives a martial art
\ No newline at end of file diff --git a/code/datums/components/material/material_container.html b/code/datums/components/material/material_container.html new file mode 100644 index 0000000000000..2399fb58341be --- /dev/null +++ b/code/datums/components/material/material_container.html @@ -0,0 +1,7 @@ +code/datums/components/material/material_container.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/material/material_container.dm

This datum should be used for handling mineral contents of machines and whatever else is supposed to hold minerals and make use of them.

+

Variables: +amount - raw amount of the mineral this container is holding, calculated by the defined value SHEET_MATERIAL_AMOUNT=SHEET_MATERIAL_AMOUNT. +max_amount - max raw amount of mineral this container can hold. +sheet_type - type of the mineral sheet the container handles, used for output. +parent - object that this container is being used by, used for output. +MAX_STACK_SIZE - size of a stack of mineral sheets. Constant.

\ No newline at end of file diff --git a/code/datums/components/mind_linker.html b/code/datums/components/mind_linker.html new file mode 100644 index 0000000000000..5e7a5a5e23578 --- /dev/null +++ b/code/datums/components/mind_linker.html @@ -0,0 +1,4 @@ +code/datums/components/mind_linker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/mind_linker.dm

/datum/component/mind_linkerA component that handles linking multiple player's minds +into one network which allows them to talk directly to one another. +Like telepathy but for multiple people at once!
/datum/component/mind_linker/active_linkingSubtype of mind linker (I know) which is more active rather than passive, +which involves the master linking people manually rather than people being added automatically.
\ No newline at end of file diff --git a/code/datums/components/mob_chain.html b/code/datums/components/mob_chain.html new file mode 100644 index 0000000000000..bf33b3531d740 --- /dev/null +++ b/code/datums/components/mob_chain.html @@ -0,0 +1,2 @@ +code/datums/components/mob_chain.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/mob_chain.dm

/datum/component/mob_chainComponent allowing you to create a linked list of mobs. +These mobs will follow each other and attack as one, as well as sharing damage taken.
/datum/action/cooldown/worm_contractShrink the chain of mobs into one tile.
\ No newline at end of file diff --git a/code/datums/components/mob_harvest.html b/code/datums/components/mob_harvest.html new file mode 100644 index 0000000000000..1001cf2cac72c --- /dev/null +++ b/code/datums/components/mob_harvest.html @@ -0,0 +1 @@ +code/datums/components/mob_harvest.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/mob_harvest.dm

/datum/component/mob_harvestHarvesting component. Useful if you want to be able to harvest items from living mobs.
\ No newline at end of file diff --git a/code/datums/components/multiple_lives.html b/code/datums/components/multiple_lives.html new file mode 100644 index 0000000000000..1aaec872ec636 --- /dev/null +++ b/code/datums/components/multiple_lives.html @@ -0,0 +1,2 @@ +code/datums/components/multiple_lives.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/multiple_lives.dm

/datum/component/multiple_livesA simple component that spawns a mob of the same type and transfers itself to it when parent dies. +For more complex behaviors, use the COMSIG_ON_MULTIPLE_LIVES_RESPAWN comsig.
\ No newline at end of file diff --git a/code/datums/components/mutant_hands.html b/code/datums/components/mutant_hands.html new file mode 100644 index 0000000000000..90a4dbce6be4b --- /dev/null +++ b/code/datums/components/mutant_hands.html @@ -0,0 +1,2 @@ +code/datums/components/mutant_hands.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/mutant_hands.dm

/datum/component/mutant_hands
/obj/item/mutant_handGeneric mutant hand type for use with the mutant hands component +(Technically speaking, the component doesn't require you use this type. But it's here for posterity)
\ No newline at end of file diff --git a/code/datums/components/nuclear_bomb_operator.html b/code/datums/components/nuclear_bomb_operator.html new file mode 100644 index 0000000000000..c9eb6415c2ba4 --- /dev/null +++ b/code/datums/components/nuclear_bomb_operator.html @@ -0,0 +1,2 @@ +code/datums/components/nuclear_bomb_operator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/nuclear_bomb_operator.dm

/datum/component/nuclear_bomb_operatorComponent applied to handless non-carbon mobs to allow them to perform the function of a nuclear operative. +Effectively this means they need to be able to:
\ No newline at end of file diff --git a/code/datums/components/object_possession.html b/code/datums/components/object_possession.html new file mode 100644 index 0000000000000..58a94ecb46dda --- /dev/null +++ b/code/datums/components/object_possession.html @@ -0,0 +1 @@ +code/datums/components/object_possession.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/object_possession.dm

/datum/component/object_possessionComponent that allows a user to control any object as if it were a mob. Does give the user incorporeal movement.
\ No newline at end of file diff --git a/code/datums/components/omen.html b/code/datums/components/omen.html new file mode 100644 index 0000000000000..82595a79c97bb --- /dev/null +++ b/code/datums/components/omen.html @@ -0,0 +1,3 @@ +code/datums/components/omen.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/omen.dm

/datum/component/omenomen.dm: For when you want someone to have a really bad day
/datum/component/omen/smiteThe smite omen. Permanent.
/datum/component/omen/quirkThe quirk omen. Permanent. +Has only a 50% chance of bad things happening, and takes only 25% of normal damage.
/datum/component/omen/bibleThe bible omen. +While it lasts, parent gets a cursed aura filter.
\ No newline at end of file diff --git a/code/datums/components/onwear_mood.html b/code/datums/components/onwear_mood.html new file mode 100644 index 0000000000000..11b200edb5ded --- /dev/null +++ b/code/datums/components/onwear_mood.html @@ -0,0 +1 @@ +code/datums/components/onwear_mood.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/onwear_mood.dm

/datum/component/onwear_moodAdd to clothing to give the wearer a mood buff and a unique examine text
\ No newline at end of file diff --git a/code/datums/components/overlay_lighting.html b/code/datums/components/overlay_lighting.html new file mode 100644 index 0000000000000..d1a3091730c00 --- /dev/null +++ b/code/datums/components/overlay_lighting.html @@ -0,0 +1 @@ +code/datums/components/overlay_lighting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/overlay_lighting.dm

LIGHTING_ONFor switchable lights, is it on and currently emitting light?
LIGHTING_ATTACHEDIs the parent attached to something else, its loc? Then we need to keep an eye of this.
/datum/component/overlay_lightingMovable atom overlay-based lighting component.

Define Details

LIGHTING_ATTACHED

Is the parent attached to something else, its loc? Then we need to keep an eye of this.

LIGHTING_ON

For switchable lights, is it on and currently emitting light?

\ No newline at end of file diff --git a/code/datums/components/palette.html b/code/datums/components/palette.html new file mode 100644 index 0000000000000..a1cc8923e6067 --- /dev/null +++ b/code/datums/components/palette.html @@ -0,0 +1,4 @@ +code/datums/components/palette.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/palette.dm

/datum/component/paletteA component that stores colors for use by painting-related items like spraycans or palettes +which can be accessed through a radial menu by right clicking the item while it's held by the user mob. +Right-clicking a color will open a color input prompt to edit it. Left clicking will instead select it +and call set_painting_tool_color() on the parent for more specific object behavior.
\ No newline at end of file diff --git a/code/datums/components/parry.html b/code/datums/components/parry.html new file mode 100644 index 0000000000000..48c69a4df9e70 --- /dev/null +++ b/code/datums/components/parry.html @@ -0,0 +1 @@ +code/datums/components/parry.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/parry.dm

/datum/component/parriable_projectileAdd to a projectile to allow it to be parried by mobs with a certain trait (TRAIT_MINING_PARRYING by default)
\ No newline at end of file diff --git a/code/datums/components/payment.html b/code/datums/components/payment.html new file mode 100644 index 0000000000000..462ec34176887 --- /dev/null +++ b/code/datums/components/payment.html @@ -0,0 +1 @@ +code/datums/components/payment.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/payment.dm

/datum/component/paymentHandles simple payment operations where the cost of the object in question doesn't change.
\ No newline at end of file diff --git a/code/datums/components/pet_commands/fetch.html b/code/datums/components/pet_commands/fetch.html new file mode 100644 index 0000000000000..bf5d162f94f35 --- /dev/null +++ b/code/datums/components/pet_commands/fetch.html @@ -0,0 +1,2 @@ +code/datums/components/pet_commands/fetch.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/pet_commands/fetch.dm

/datum/pet_command/point_targeting/fetchWatch for someone throwing or pointing at something and then go get it and bring it back. +If it's food we might eat it instead.
\ No newline at end of file diff --git a/code/datums/components/pet_commands/obeys_commands.html b/code/datums/components/pet_commands/obeys_commands.html new file mode 100644 index 0000000000000..88438e2064764 --- /dev/null +++ b/code/datums/components/pet_commands/obeys_commands.html @@ -0,0 +1,2 @@ +code/datums/components/pet_commands/obeys_commands.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/pet_commands/obeys_commands.dm

/datum/component/obeys_commandsManages a list of pet command datums, allowing you to boss it around +Creates a radial menu of pet commands when this creature is alt-clicked, if it has any
\ No newline at end of file diff --git a/code/datums/components/pet_commands/pet_command.html b/code/datums/components/pet_commands/pet_command.html new file mode 100644 index 0000000000000..751856d48d2fc --- /dev/null +++ b/code/datums/components/pet_commands/pet_command.html @@ -0,0 +1,2 @@ +code/datums/components/pet_commands/pet_command.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/pet_commands/pet_command.dm

/datum/pet_commandSet some AI blackboard commands in response to receiving instructions +This is abstract and should be extended for actual behaviour
/datum/pet_command/point_targetingAs above but also listens for you pointing at something and marks it as a target
\ No newline at end of file diff --git a/code/datums/components/pet_commands/pet_commands_basic.html b/code/datums/components/pet_commands/pet_commands_basic.html new file mode 100644 index 0000000000000..24c67d08908ce --- /dev/null +++ b/code/datums/components/pet_commands/pet_commands_basic.html @@ -0,0 +1 @@ +code/datums/components/pet_commands/pet_commands_basic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/pet_commands/pet_commands_basic.dm

/datum/pet_command/idleTells a pet to resume its idle behaviour, usually staying put where you leave it
/datum/pet_command/freeTells a pet to exit command mode and resume its normal behaviour, which includes regular target-seeking and what have you
/datum/pet_command/followTells a pet to follow you until you tell it to do something else
/datum/pet_command/play_deadPretend to be dead for a random period of time
/datum/pet_command/good_boyReact if complimented
/datum/pet_command/untargeted_abilityUse an an ability that does not require any targets
/datum/pet_command/point_targeting/attackTells a pet to chase and bite the next thing you point at
/datum/pet_command/point_targeting/breed
/datum/pet_command/point_targeting/use_abilityTells a pet to use some kind of ability on the next thing you point at
/datum/pet_command/point_targeting/fish
\ No newline at end of file diff --git a/code/datums/components/phylactery.html b/code/datums/components/phylactery.html new file mode 100644 index 0000000000000..280fd851f602a --- /dev/null +++ b/code/datums/components/phylactery.html @@ -0,0 +1 @@ +code/datums/components/phylactery.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/phylactery.dm

/datum/component/phylactery
\ No newline at end of file diff --git a/code/datums/components/pinata.html b/code/datums/components/pinata.html new file mode 100644 index 0000000000000..8192bd16bff53 --- /dev/null +++ b/code/datums/components/pinata.html @@ -0,0 +1 @@ +code/datums/components/pinata.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/pinata.dm

/datum/component/pinataObjects or mobs with this component will drop items when taking damage.
\ No newline at end of file diff --git a/code/datums/components/pinnable_accessory.html b/code/datums/components/pinnable_accessory.html new file mode 100644 index 0000000000000..92fcd4dce0a4b --- /dev/null +++ b/code/datums/components/pinnable_accessory.html @@ -0,0 +1 @@ +code/datums/components/pinnable_accessory.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/pinnable_accessory.dm

/datum/component/pinnable_accessoryThis accessory can be pinned onto someone else
\ No newline at end of file diff --git a/code/datums/components/plumbing/filter.html b/code/datums/components/plumbing/filter.html new file mode 100644 index 0000000000000..2aaa3f5434e3c --- /dev/null +++ b/code/datums/components/plumbing/filter.html @@ -0,0 +1 @@ +code/datums/components/plumbing/filter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/plumbing/filter.dm

/datum/component/plumbing/filterThe magical plumbing component used by the chemical filters. The different supply connects behave differently depending on the filters set on the chemical filter
\ No newline at end of file diff --git a/code/datums/components/plumbing/reaction_chamber.html b/code/datums/components/plumbing/reaction_chamber.html new file mode 100644 index 0000000000000..ffdf0275a130f --- /dev/null +++ b/code/datums/components/plumbing/reaction_chamber.html @@ -0,0 +1 @@ +code/datums/components/plumbing/reaction_chamber.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/plumbing/reaction_chamber.dm

/datum/component/plumbing/acidic_inputSpecial connect that we currently use for reaction chambers. Being used so we can keep certain inputs separate, like into a special internal acid container
/datum/component/plumbing/alkaline_inputSpecial connect that we currently use for reaction chambers. Being used so we can keep certain inputs separate, like into a special internal base container
\ No newline at end of file diff --git a/code/datums/components/plumbing/simple_components.html b/code/datums/components/plumbing/simple_components.html new file mode 100644 index 0000000000000..9dedf1a0d0bad --- /dev/null +++ b/code/datums/components/plumbing/simple_components.html @@ -0,0 +1 @@ +code/datums/components/plumbing/simple_components.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/plumbing/simple_components.dm

/datum/component/plumbing/simple_demandhas one pipe input that only takes, example is manual output pipe
/datum/component/plumbing/simple_supplyhas one pipe output that only supplies. example is liquid pump and manual input pipe
/datum/component/plumbing/tankinput and output, like a holding tank
/datum/component/plumbing/aquariumLazily demand from any direction. Overlays won't look good, and the aquarium sprite occupies about the entire 32x32 area anyway.
/datum/component/plumbing/manifoldConnects different layer of ducts
\ No newline at end of file diff --git a/code/datums/components/plundering_attacks.html b/code/datums/components/plundering_attacks.html new file mode 100644 index 0000000000000..491e962a808eb --- /dev/null +++ b/code/datums/components/plundering_attacks.html @@ -0,0 +1,2 @@ +code/datums/components/plundering_attacks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/plundering_attacks.dm

/datum/component/plundering_attacksComponent that makes basic mobs' melee attacks steal money from the target's ID card. +Plundered money is stored and dropped on death or removal of the component.
\ No newline at end of file diff --git a/code/datums/components/profound_fisher.html b/code/datums/components/profound_fisher.html new file mode 100644 index 0000000000000..bbba365f0130f --- /dev/null +++ b/code/datums/components/profound_fisher.html @@ -0,0 +1 @@ +code/datums/components/profound_fisher.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/profound_fisher.dm

/datum/component/profound_fishercomponent that allows player mobs to play the fishing minigame without a rod equipped, non-player mobs will "pretend" fish
\ No newline at end of file diff --git a/code/datums/components/punchcooldown.html b/code/datums/components/punchcooldown.html new file mode 100644 index 0000000000000..a131791025823 --- /dev/null +++ b/code/datums/components/punchcooldown.html @@ -0,0 +1 @@ +code/datums/components/punchcooldown.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/punchcooldown.dm

/datum/component/wearertargeting/punchcooldownYour favourite Jojoke. Used for the gloves of the north star.
\ No newline at end of file diff --git a/code/datums/components/puzzgrid.html b/code/datums/components/puzzgrid.html new file mode 100644 index 0000000000000..b57bb09d3b5d1 --- /dev/null +++ b/code/datums/components/puzzgrid.html @@ -0,0 +1,5 @@ +code/datums/components/puzzgrid.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/puzzgrid.dm

/datum/component/puzzgridAttaches a puzzgrid to the atom. +You are expected to pass in the puzzgrid, likely from create_random_puzzgrid(). +This is so you can handle when a puzzgrid can't be generated, either because the +config does not exist, or because the config is not set up properly.
/proc/create_random_puzzgridReturns a random puzzgrid from config. +If config is empty, or no valid puzzgrids can be found in time, will return null.
/datum/puzzgridRepresents an individual puzzgrid
/datum/puzzgrid_groupRepresents an individual group in a puzzgrid
\ No newline at end of file diff --git a/code/datums/components/radiation_countdown.html b/code/datums/components/radiation_countdown.html new file mode 100644 index 0000000000000..c6ba5788316c3 --- /dev/null +++ b/code/datums/components/radiation_countdown.html @@ -0,0 +1,3 @@ +code/datums/components/radiation_countdown.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/radiation_countdown.dm

/datum/component/radiation_countdownBegins the countdown before a target can be irradiated. +Added by the radiation subsystem when a pulse information has a minimum exposure time. +Will clear itself out after a while.
\ No newline at end of file diff --git a/code/datums/components/radioactive_emitter.html b/code/datums/components/radioactive_emitter.html new file mode 100644 index 0000000000000..946f3641bc6fc --- /dev/null +++ b/code/datums/components/radioactive_emitter.html @@ -0,0 +1,3 @@ +code/datums/components/radioactive_emitter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/radioactive_emitter.dm

MIN_PULSE_COOLDOWNMinimum duration between pulses for the radioactive emitter component. +This is chosen arbitrarily. It can theoretically go down to 0.1 SECONDS but god please don't
/datum/component/radioactive_emitterSimple component that you can attach to something to make it emit radiation pulses over time.

Define Details

MIN_PULSE_COOLDOWN

Minimum duration between pulses for the radioactive emitter component. +This is chosen arbitrarily. It can theoretically go down to 0.1 SECONDS but god please don't

\ No newline at end of file diff --git a/code/datums/components/radioactive_exposure.html b/code/datums/components/radioactive_exposure.html new file mode 100644 index 0000000000000..bea43428dc0f3 --- /dev/null +++ b/code/datums/components/radioactive_exposure.html @@ -0,0 +1 @@ +code/datums/components/radioactive_exposure.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/radioactive_exposure.dm

/datum/component/radioactive_exposureFor directly applying to carbons to irradiate them, without pulses
\ No newline at end of file diff --git a/code/datums/components/ranged_attacks.html b/code/datums/components/ranged_attacks.html new file mode 100644 index 0000000000000..f1d6bc2d54441 --- /dev/null +++ b/code/datums/components/ranged_attacks.html @@ -0,0 +1 @@ +code/datums/components/ranged_attacks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/ranged_attacks.dm

/datum/component/ranged_attacksConfigurable ranged attack for basic mobs.
\ No newline at end of file diff --git a/code/datums/components/ranged_mob_full_auto.html b/code/datums/components/ranged_mob_full_auto.html new file mode 100644 index 0000000000000..7d09c03f83f1e --- /dev/null +++ b/code/datums/components/ranged_mob_full_auto.html @@ -0,0 +1 @@ +code/datums/components/ranged_mob_full_auto.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/ranged_mob_full_auto.dm

/datum/component/ranged_mob_full_autoAllows a mob to autofire by holding down the cursor
\ No newline at end of file diff --git a/code/datums/components/reagent_refiller.html b/code/datums/components/reagent_refiller.html new file mode 100644 index 0000000000000..ef0b7d8ae1277 --- /dev/null +++ b/code/datums/components/reagent_refiller.html @@ -0,0 +1 @@ +code/datums/components/reagent_refiller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/reagent_refiller.dm

/datum/component/reagent_refiller
\ No newline at end of file diff --git a/code/datums/components/recharging_attacks.html b/code/datums/components/recharging_attacks.html new file mode 100644 index 0000000000000..04273e7074e9f --- /dev/null +++ b/code/datums/components/recharging_attacks.html @@ -0,0 +1 @@ +code/datums/components/recharging_attacks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/recharging_attacks.dm

/datum/component/recharging_attacksReduces the cooldown of a given action upon landing attacks, critting, or killing mobs.
\ No newline at end of file diff --git a/code/datums/components/redirect_attack_hand_from_turf.html b/code/datums/components/redirect_attack_hand_from_turf.html new file mode 100644 index 0000000000000..88d9d0dd2c45d --- /dev/null +++ b/code/datums/components/redirect_attack_hand_from_turf.html @@ -0,0 +1 @@ +code/datums/components/redirect_attack_hand_from_turf.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/redirect_attack_hand_from_turf.dm

/datum/component/redirect_attack_hand_from_turfWill redirect touching the turf it is on with your hand to the attack_hand of the parent object.
\ No newline at end of file diff --git a/code/datums/components/reflection.html b/code/datums/components/reflection.html new file mode 100644 index 0000000000000..e5a1902b2fec6 --- /dev/null +++ b/code/datums/components/reflection.html @@ -0,0 +1,4 @@ +code/datums/components/reflection.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/reflection.dm

/datum/component/reflectionA simple-ish component that reflects the icons of movables on the parent like a mirror. +Sadly, there's no easy way to make the SOUTH dir reflection flip the visual so that you can see +the back NORTH dir of a target while it's facing SOUTH beside adding the VIS_INHERIT_DIR flag +to the target movable, which I'm not doing to spare eventual issues with other vis overlays in the future.
\ No newline at end of file diff --git a/code/datums/components/regenerative_shield.html b/code/datums/components/regenerative_shield.html new file mode 100644 index 0000000000000..ef15dc831f8e1 --- /dev/null +++ b/code/datums/components/regenerative_shield.html @@ -0,0 +1 @@ +code/datums/components/regenerative_shield.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/regenerative_shield.dm

/datum/component/regenerative_shieldgives the mobs a regenerative shield, it will tank hits for them and then need to recharge for a bit
\ No newline at end of file diff --git a/code/datums/components/regenerator.html b/code/datums/components/regenerator.html new file mode 100644 index 0000000000000..c84f788345798 --- /dev/null +++ b/code/datums/components/regenerator.html @@ -0,0 +1,2 @@ +code/datums/components/regenerator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/regenerator.dm

/datum/component/regeneratorA mob with this component will regenerate its health over time, as long as it has not received damage +in the last X seconds. Taking any damage will reset this cooldown.
\ No newline at end of file diff --git a/code/datums/components/religious_tool.html b/code/datums/components/religious_tool.html new file mode 100644 index 0000000000000..0f2126d19a151 --- /dev/null +++ b/code/datums/components/religious_tool.html @@ -0,0 +1 @@ +code/datums/components/religious_tool.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/religious_tool.dm

/datum/component/religious_toolAllows the parent to act similarly to the Altar of Gods with modularity. Invoke and Sect Selection is done via attacking with a bible. This means you cannot sacrifice Bibles (you shouldn't want to do this anyways although now that I mentioned it you probably will want to).
\ No newline at end of file diff --git a/code/datums/components/rename.html b/code/datums/components/rename.html new file mode 100644 index 0000000000000..7c2327193a6a8 --- /dev/null +++ b/code/datums/components/rename.html @@ -0,0 +1 @@ +code/datums/components/rename.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/rename.dm

/datum/component/renameThe rename component.
\ No newline at end of file diff --git a/code/datums/components/revenge_ability.html b/code/datums/components/revenge_ability.html new file mode 100644 index 0000000000000..6181a8ebf7b6c --- /dev/null +++ b/code/datums/components/revenge_ability.html @@ -0,0 +1,3 @@ +code/datums/components/revenge_ability.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/revenge_ability.dm

/datum/component/revenge_abilityAutomatically triggers a linked ability at a target who attacks us. +The ability might not necessarily be on our mob. +Make sure that /datum/element/relay_attackers is also present or you'll never receive the triggering signal.
\ No newline at end of file diff --git a/code/datums/components/riding/riding.html b/code/datums/components/riding/riding.html new file mode 100644 index 0000000000000..303b468e85a78 --- /dev/null +++ b/code/datums/components/riding/riding.html @@ -0,0 +1 @@ +code/datums/components/riding/riding.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/riding/riding.dm

/datum/component/ridingThis is the riding component, which is applied to a movable atom by the ridable element when a mob is successfully buckled to said movable.
\ No newline at end of file diff --git a/code/datums/components/riding/riding_mob.html b/code/datums/components/riding/riding_mob.html new file mode 100644 index 0000000000000..76f02ef207943 --- /dev/null +++ b/code/datums/components/riding/riding_mob.html @@ -0,0 +1 @@ +code/datums/components/riding/riding_mob.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/riding/riding_mob.dm

/datum/component/riding/creature/humanYes, I said humans. No, this won't end well...
\ No newline at end of file diff --git a/code/datums/components/riding/riding_vehicle.html b/code/datums/components/riding/riding_vehicle.html new file mode 100644 index 0000000000000..0ecc435db21c9 --- /dev/null +++ b/code/datums/components/riding/riding_vehicle.html @@ -0,0 +1 @@ +code/datums/components/riding/riding_vehicle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/riding/riding_vehicle.dm

/datum/component/riding/vehicle/scooter/skateboard/hoverThis one lets the rider ignore gravity, move in zero g and son on, but only on ground turfs or at most one z-level above them.
\ No newline at end of file diff --git a/code/datums/components/rot.html b/code/datums/components/rot.html new file mode 100644 index 0000000000000..df41e467daa1f --- /dev/null +++ b/code/datums/components/rot.html @@ -0,0 +1 @@ +code/datums/components/rot.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/rot.dm

/datum/component/rotMakes a thing rotting, carries with it a start delay and some things that can halt the rot, along with infection logic
\ No newline at end of file diff --git a/code/datums/components/scope.html b/code/datums/components/scope.html new file mode 100644 index 0000000000000..6c37fd228bd3b --- /dev/null +++ b/code/datums/components/scope.html @@ -0,0 +1 @@ +code/datums/components/scope.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/scope.dm

MOUSE_POINTER_OFFSET_MULTUsed to allow reaching the maximum offset range without exiting the boundaries of the game screen.
/datum/component/scopeA component that allows players to use the item to zoom out. Mainly intended for firearms, but now works with other items too.

Define Details

MOUSE_POINTER_OFFSET_MULT

Used to allow reaching the maximum offset range without exiting the boundaries of the game screen.

\ No newline at end of file diff --git a/code/datums/components/seclight_attachable.html b/code/datums/components/seclight_attachable.html new file mode 100644 index 0000000000000..f43de53126881 --- /dev/null +++ b/code/datums/components/seclight_attachable.html @@ -0,0 +1,2 @@ +code/datums/components/seclight_attachable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/seclight_attachable.dm

/datum/component/seclite_attachableComponent which allows you to attach a seclight to an item, +be it a piece of clothing or a tool.
\ No newline at end of file diff --git a/code/datums/components/sect_nullrod_bonus.html b/code/datums/components/sect_nullrod_bonus.html new file mode 100644 index 0000000000000..bbbe50faa7ff0 --- /dev/null +++ b/code/datums/components/sect_nullrod_bonus.html @@ -0,0 +1 @@ +code/datums/components/sect_nullrod_bonus.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/sect_nullrod_bonus.dm

/datum/component/sect_nullrod_bonussect nullrod bonus component; for sekret rite combos
\ No newline at end of file diff --git a/code/datums/components/security_vision.html b/code/datums/components/security_vision.html new file mode 100644 index 0000000000000..827b7e7f147d1 --- /dev/null +++ b/code/datums/components/security_vision.html @@ -0,0 +1 @@ +code/datums/components/security_vision.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/security_vision.dm

/datum/component/security_visionThis component allows you to judge someone's level of criminal activity by examining them
\ No newline at end of file diff --git a/code/datums/components/seethrough.html b/code/datums/components/seethrough.html new file mode 100644 index 0000000000000..a5dbe6bc2d22b --- /dev/null +++ b/code/datums/components/seethrough.html @@ -0,0 +1 @@ +code/datums/components/seethrough.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/seethrough.dm

/datum/component/seethroughA component that lets you turn an object invisible when you're standing on certain relative turfs to it, like behind a tree
\ No newline at end of file diff --git a/code/datums/components/seethrough_mob.html b/code/datums/components/seethrough_mob.html new file mode 100644 index 0000000000000..c0da55fbaa6f9 --- /dev/null +++ b/code/datums/components/seethrough_mob.html @@ -0,0 +1 @@ +code/datums/components/seethrough_mob.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/seethrough_mob.dm

/datum/component/seethrough_mobA component that lets you turn your character transparent in order to see and click through yourself.
\ No newline at end of file diff --git a/code/datums/components/shell.html b/code/datums/components/shell.html new file mode 100644 index 0000000000000..45946b80d4097 --- /dev/null +++ b/code/datums/components/shell.html @@ -0,0 +1 @@ +code/datums/components/shell.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/shell.dm

/datum/component/shellMakes an atom a shell that is able to take in an attached circuit.
\ No newline at end of file diff --git a/code/datums/components/shielded.html b/code/datums/components/shielded.html new file mode 100644 index 0000000000000..53110e6ee2b5d --- /dev/null +++ b/code/datums/components/shielded.html @@ -0,0 +1 @@ +code/datums/components/shielded.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/shielded.dm

/datum/component/shieldedThe shielded component causes the parent item to nullify a certain number of attacks against the wearer, see: shielded vests.
\ No newline at end of file diff --git a/code/datums/components/shovel_hands.html b/code/datums/components/shovel_hands.html new file mode 100644 index 0000000000000..3b9ce6462ba2f --- /dev/null +++ b/code/datums/components/shovel_hands.html @@ -0,0 +1 @@ +code/datums/components/shovel_hands.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/shovel_hands.dm

/datum/component/shovel_handsThis component lets mobs dig up the floor with their bare hands
\ No newline at end of file diff --git a/code/datums/components/shuttle_cling.html b/code/datums/components/shuttle_cling.html new file mode 100644 index 0000000000000..483ccfff78d9f --- /dev/null +++ b/code/datums/components/shuttle_cling.html @@ -0,0 +1,4 @@ +code/datums/components/shuttle_cling.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/shuttle_cling.dm

SUPER_NOT_HOLDING_ONInstead of a high move force we just get launched away dramatically because we're that hopeless
NOT_HOLDING_ONWe're not holdin on and will get thrown off
CLINGINGWe're holding on, but will be pulled slowly
ALL_GOODWe're holding on really well and aren't suffering from any pull
/datum/component/shuttle_clingGets added to all movables that enter hyperspace and are supposed to suffer from "hyperspace drift" +This lets people fly around shuttles during transit using jetpacks, or cling to the side if they got a spacesuit +Dumping into deepspace is handled by the hyperspace turf, not the component. +Not giving something this component while on hyperspace is safe, it just means free movement like carps

Define Details

ALL_GOOD

We're holding on really well and aren't suffering from any pull

CLINGING

We're holding on, but will be pulled slowly

NOT_HOLDING_ON

We're not holdin on and will get thrown off

SUPER_NOT_HOLDING_ON

Instead of a high move force we just get launched away dramatically because we're that hopeless

\ No newline at end of file diff --git a/code/datums/components/shy.html b/code/datums/components/shy.html new file mode 100644 index 0000000000000..410c527dae09a --- /dev/null +++ b/code/datums/components/shy.html @@ -0,0 +1 @@ +code/datums/components/shy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/shy.dm

/datum/component/shyYou can't use items on anyone other than yourself if there are other living mobs around you
\ No newline at end of file diff --git a/code/datums/components/shy_in_room.html b/code/datums/components/shy_in_room.html new file mode 100644 index 0000000000000..08a5bbe89e4e7 --- /dev/null +++ b/code/datums/components/shy_in_room.html @@ -0,0 +1 @@ +code/datums/components/shy_in_room.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/shy_in_room.dm

/datum/component/shy_in_roomYou can't use items on anyone other than yourself if you stand in a blacklisted room
\ No newline at end of file diff --git a/code/datums/components/sign_language.html b/code/datums/components/sign_language.html new file mode 100644 index 0000000000000..9313cfcf0f863 --- /dev/null +++ b/code/datums/components/sign_language.html @@ -0,0 +1,2 @@ +code/datums/components/sign_language.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/sign_language.dm

SIGN_OKAYDefines used to determine whether a sign language user can sign or not, and if not, why they cannot.
TONE_NEUTRALa statement
TONE_INQUISITIVEa question
TONE_EMPHATICan exclamation
TONE_INQUISITIVE_EMPHATICboth a question and an exclamation (interrobang)
/datum/component/sign_languageReactive Sign Language Component for Carbons. Allows Carbons to speak with sign language if they have the relevant traits. +Implements sign language by incrementally overriding several critical functions, variables, and argument lists.

Define Details

SIGN_OKAY

Defines used to determine whether a sign language user can sign or not, and if not, why they cannot.

TONE_EMPHATIC

an exclamation

TONE_INQUISITIVE

a question

TONE_INQUISITIVE_EMPHATIC

both a question and an exclamation (interrobang)

TONE_NEUTRAL

a statement

\ No newline at end of file diff --git a/code/datums/components/simple_access.html b/code/datums/components/simple_access.html new file mode 100644 index 0000000000000..f1f2bd950bfaf --- /dev/null +++ b/code/datums/components/simple_access.html @@ -0,0 +1 @@ +code/datums/components/simple_access.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/simple_access.dm

/datum/component/simple_accessThis component allows us to give a mob access without giving them an ID card.
\ No newline at end of file diff --git a/code/datums/components/simple_bodycam.html b/code/datums/components/simple_bodycam.html new file mode 100644 index 0000000000000..4c3f83aaf48e1 --- /dev/null +++ b/code/datums/components/simple_bodycam.html @@ -0,0 +1 @@ +code/datums/components/simple_bodycam.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/simple_bodycam.dm

/datum/component/simple_bodycamSimple component to integrate a bodycam into a mob
\ No newline at end of file diff --git a/code/datums/components/singularity.html b/code/datums/components/singularity.html new file mode 100644 index 0000000000000..7c899cb3b460c --- /dev/null +++ b/code/datums/components/singularity.html @@ -0,0 +1,2 @@ +code/datums/components/singularity.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/singularity.dm

FIELD_CONTAINMENT_DISTANCEThe range at which a singularity is considered "contained" to admins
CHANCE_TO_MOVE_TO_TARGETWhat's the chance that, when a normal singularity moves, it'll go to its target?
CHANCE_TO_MOVE_TO_TARGET_BLOODTHIRSTYWhat's the /bloodthirsty subtype chance it'll go to its target?
CHANCE_TO_CHANGE_TARGET_BLOODTHIRSTYwhat's the /bloodthirsty subtype chance it'll change targets to a closer one?
/datum/component/singularityThings that maybe move around and does stuff to things around them +Used for the singularity (duh) and Nar'Sie

Define Details

CHANCE_TO_CHANGE_TARGET_BLOODTHIRSTY

what's the /bloodthirsty subtype chance it'll change targets to a closer one?

CHANCE_TO_MOVE_TO_TARGET

What's the chance that, when a normal singularity moves, it'll go to its target?

CHANCE_TO_MOVE_TO_TARGET_BLOODTHIRSTY

What's the /bloodthirsty subtype chance it'll go to its target?

FIELD_CONTAINMENT_DISTANCE

The range at which a singularity is considered "contained" to admins

\ No newline at end of file diff --git a/code/datums/components/sisyphus_awarder.html b/code/datums/components/sisyphus_awarder.html new file mode 100644 index 0000000000000..73abc194e0009 --- /dev/null +++ b/code/datums/components/sisyphus_awarder.html @@ -0,0 +1,2 @@ +code/datums/components/sisyphus_awarder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/sisyphus_awarder.dm

/datum/component/sisyphus_awarderThis component awards the sisyphus achievement if you cart a boulder from lavaland to centcom +It's not really reusable but its a component just to encapsulate and destroy the behaviour neatly
\ No newline at end of file diff --git a/code/datums/components/slippery.html b/code/datums/components/slippery.html new file mode 100644 index 0000000000000..e3d0e8658c430 --- /dev/null +++ b/code/datums/components/slippery.html @@ -0,0 +1,2 @@ +code/datums/components/slippery.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/slippery.dm

/datum/component/slipperyAdd this component to an object to make it a slippery object, slippery objects make mobs that cross them fall over. +Items with this component that get picked up may give their parent mob the slip behaviour.
\ No newline at end of file diff --git a/code/datums/components/smooth_tunes.html b/code/datums/components/smooth_tunes.html new file mode 100644 index 0000000000000..e28e82c3127f0 --- /dev/null +++ b/code/datums/components/smooth_tunes.html @@ -0,0 +1,2 @@ +code/datums/components/smooth_tunes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/smooth_tunes.dm

/datum/component/smooth_tunesSmooth tunes component! Applied to musicians to give the songs they play special effects, according to a rite! +Comes with BARTICLES!!!
\ No newline at end of file diff --git a/code/datums/components/soul_stealer.html b/code/datums/components/soul_stealer.html new file mode 100644 index 0000000000000..6fe5e3e168566 --- /dev/null +++ b/code/datums/components/soul_stealer.html @@ -0,0 +1 @@ +code/datums/components/soul_stealer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/soul_stealer.dm

/datum/component/soul_stealer
\ No newline at end of file diff --git a/code/datums/components/sound_player.html b/code/datums/components/sound_player.html new file mode 100644 index 0000000000000..387b4c05b64fc --- /dev/null +++ b/code/datums/components/sound_player.html @@ -0,0 +1 @@ +code/datums/components/sound_player.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/sound_player.dm

/datum/component/sound_playerSound Player component
\ No newline at end of file diff --git a/code/datums/components/space_camo.html b/code/datums/components/space_camo.html new file mode 100644 index 0000000000000..cf1c3307c0384 --- /dev/null +++ b/code/datums/components/space_camo.html @@ -0,0 +1 @@ +code/datums/components/space_camo.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/space_camo.dm

/datum/component/space_camoCamouflage us when we enter space by increasing alpha and or changing color
\ No newline at end of file diff --git a/code/datums/components/space_dive.html b/code/datums/components/space_dive.html new file mode 100644 index 0000000000000..7e6c715a6230c --- /dev/null +++ b/code/datums/components/space_dive.html @@ -0,0 +1 @@ +code/datums/components/space_dive.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/space_dive.dm

/datum/component/space_diveLets us dive under the station from space
\ No newline at end of file diff --git a/code/datums/components/space_kidnap.html b/code/datums/components/space_kidnap.html new file mode 100644 index 0000000000000..bb7b47a83be89 --- /dev/null +++ b/code/datums/components/space_kidnap.html @@ -0,0 +1 @@ +code/datums/components/space_kidnap.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/space_kidnap.dm

/datum/component/space_kidnapComponent that lets us space kidnap people as the voidwalker with our HAAAADS
\ No newline at end of file diff --git a/code/datums/components/speechmod.html b/code/datums/components/speechmod.html new file mode 100644 index 0000000000000..ce739f647eb64 --- /dev/null +++ b/code/datums/components/speechmod.html @@ -0,0 +1,2 @@ +code/datums/components/speechmod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/speechmod.dm

/datum/component/speechmodUsed to apply certain speech patterns +Can be used on organs, wearables, mutations and mobs
\ No newline at end of file diff --git a/code/datums/components/spin2win.html b/code/datums/components/spin2win.html new file mode 100644 index 0000000000000..732352e402127 --- /dev/null +++ b/code/datums/components/spin2win.html @@ -0,0 +1 @@ +code/datums/components/spin2win.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/spin2win.dm

/datum/component/spin2win
\ No newline at end of file diff --git a/code/datums/components/spinny.html b/code/datums/components/spinny.html new file mode 100644 index 0000000000000..15e50205cdb03 --- /dev/null +++ b/code/datums/components/spinny.html @@ -0,0 +1 @@ +code/datums/components/spinny.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/spinny.dm

/datum/component/spinnyspinny.dm
\ No newline at end of file diff --git a/code/datums/components/spirit_holding.html b/code/datums/components/spirit_holding.html new file mode 100644 index 0000000000000..89ce61005a5c7 --- /dev/null +++ b/code/datums/components/spirit_holding.html @@ -0,0 +1 @@ +code/datums/components/spirit_holding.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/spirit_holding.dm

/datum/component/spirit_holdingspirit holding component; for items to have spirits inside of them for "advice"
\ No newline at end of file diff --git a/code/datums/components/splattercasting.html b/code/datums/components/splattercasting.html new file mode 100644 index 0000000000000..3145d065c9c53 --- /dev/null +++ b/code/datums/components/splattercasting.html @@ -0,0 +1,7 @@ +code/datums/components/splattercasting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/splattercasting.dm

COOLDOWN_TO_BLOOD_RATIOhow much we multiply cooldown (deciseconds) by to get the amount of blood to remove. +BLOOD_VOLUME_NORMAL is 560, expensive spells max out at around 60 seconds which is 600 deciseconds +removing 9/10ths of the cooldown from that puts us at 540 deciseconds, mult by 0.5 gives 270 blood taken +one second is worth 5 blood, roughly half of your normal amount of blood taken for a huge spell, seems fair
/datum/component/splattercastingComponent that makes casted spells cost blood from the user and dramatically lowers their cooldown.

Define Details

COOLDOWN_TO_BLOOD_RATIO

how much we multiply cooldown (deciseconds) by to get the amount of blood to remove. +BLOOD_VOLUME_NORMAL is 560, expensive spells max out at around 60 seconds which is 600 deciseconds +removing 9/10ths of the cooldown from that puts us at 540 deciseconds, mult by 0.5 gives 270 blood taken +one second is worth 5 blood, roughly half of your normal amount of blood taken for a huge spell, seems fair

\ No newline at end of file diff --git a/code/datums/components/squashable.html b/code/datums/components/squashable.html new file mode 100644 index 0000000000000..b006f49eed3ce --- /dev/null +++ b/code/datums/components/squashable.html @@ -0,0 +1 @@ +code/datums/components/squashable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/squashable.dm

/datum/component/squashableThis component allows something to be when crossed, for example for cockroaches.
\ No newline at end of file diff --git a/code/datums/components/stationloving.html b/code/datums/components/stationloving.html new file mode 100644 index 0000000000000..3d3a197644f4e --- /dev/null +++ b/code/datums/components/stationloving.html @@ -0,0 +1 @@ +code/datums/components/stationloving.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/stationloving.dm

/datum/component/stationlovingTeleports the movable atom back to a safe turf on the station if it leaves the z-level or becomes inaccessible.
\ No newline at end of file diff --git a/code/datums/components/sticker.html b/code/datums/components/sticker.html new file mode 100644 index 0000000000000..1a3aa5a240f46 --- /dev/null +++ b/code/datums/components/sticker.html @@ -0,0 +1 @@ +code/datums/components/sticker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/sticker.dm

/datum/component/sticker
\ No newline at end of file diff --git a/code/datums/components/storm_hating.html b/code/datums/components/storm_hating.html new file mode 100644 index 0000000000000..b49aa5d655b61 --- /dev/null +++ b/code/datums/components/storm_hating.html @@ -0,0 +1 @@ +code/datums/components/storm_hating.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/storm_hating.dm

/datum/component/storm_hatingThe parent of this component will be destroyed if it's on the ground during a storm
\ No newline at end of file diff --git a/code/datums/components/subtype_picker.html b/code/datums/components/subtype_picker.html new file mode 100644 index 0000000000000..ed08f6cce5390 --- /dev/null +++ b/code/datums/components/subtype_picker.html @@ -0,0 +1,2 @@ +code/datums/components/subtype_picker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/subtype_picker.dm

/datum/component/subtype_pickersubtype picker component allows for an item to transform into its subtypes (this is not enforced and you can turn in whatever types, but +i used this name as it was incredibly accurate for current usage of the behavior)
\ No newline at end of file diff --git a/code/datums/components/surgery_initiator.html b/code/datums/components/surgery_initiator.html new file mode 100644 index 0000000000000..7920dce1e50ee --- /dev/null +++ b/code/datums/components/surgery_initiator.html @@ -0,0 +1 @@ +code/datums/components/surgery_initiator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/surgery_initiator.dm

/datum/component/surgery_initiatorAllows an item to be used to initiate surgeries.
\ No newline at end of file diff --git a/code/datums/components/swabbing.html b/code/datums/components/swabbing.html new file mode 100644 index 0000000000000..b00752da5b088 --- /dev/null +++ b/code/datums/components/swabbing.html @@ -0,0 +1 @@ +code/datums/components/swabbing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/swabbing.dm

This component is used in vat growing to swab for microbiological samples which can then be mixed with reagents in a petridish to create a culture plate.

\ No newline at end of file diff --git a/code/datums/components/tackle.html b/code/datums/components/tackle.html new file mode 100644 index 0000000000000..e1b236af705fa --- /dev/null +++ b/code/datums/components/tackle.html @@ -0,0 +1 @@ +code/datums/components/tackle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/tackle.dm

MAX_TABLE_MESSEShow many things can we knock off a table at once by diving into it?
/datum/component/tacklerFor when you want to throw a person at something and have fun stuff happen

Define Details

MAX_TABLE_MESSES

how many things can we knock off a table at once by diving into it?

\ No newline at end of file diff --git a/code/datums/components/tactical.html b/code/datums/components/tactical.html new file mode 100644 index 0000000000000..ce3d887b0808c --- /dev/null +++ b/code/datums/components/tactical.html @@ -0,0 +1 @@ +code/datums/components/tactical.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/tactical.dm

/datum/component/tacticalA simple component that replacess the user's appearance with that of the parent item when equipped.
\ No newline at end of file diff --git a/code/datums/components/takes_reagent_appearance.html b/code/datums/components/takes_reagent_appearance.html new file mode 100644 index 0000000000000..40f816e5529cc --- /dev/null +++ b/code/datums/components/takes_reagent_appearance.html @@ -0,0 +1 @@ +code/datums/components/takes_reagent_appearance.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/takes_reagent_appearance.dm

/datum/component/takes_reagent_appearance
\ No newline at end of file diff --git a/code/datums/components/tameable.html b/code/datums/components/tameable.html new file mode 100644 index 0000000000000..08b9c7c287a67 --- /dev/null +++ b/code/datums/components/tameable.html @@ -0,0 +1 @@ +code/datums/components/tameable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/tameable.dm

/datum/component/tameableThis component lets you make specific mobs tameable by feeding them
\ No newline at end of file diff --git a/code/datums/components/tattoo.html b/code/datums/components/tattoo.html new file mode 100644 index 0000000000000..8231183d85cf5 --- /dev/null +++ b/code/datums/components/tattoo.html @@ -0,0 +1 @@ +code/datums/components/tattoo.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/tattoo.dm

/datum/component/tattoo
\ No newline at end of file diff --git a/code/datums/components/technointrovert.html b/code/datums/components/technointrovert.html new file mode 100644 index 0000000000000..5e256b1f6a5a7 --- /dev/null +++ b/code/datums/components/technointrovert.html @@ -0,0 +1 @@ +code/datums/components/technointrovert.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/technointrovert.dm

/datum/component/technointrovertYou can't use machines unless they are in a whitelist
\ No newline at end of file diff --git a/code/datums/components/technoshy.html b/code/datums/components/technoshy.html new file mode 100644 index 0000000000000..ef3cb7cc832b2 --- /dev/null +++ b/code/datums/components/technoshy.html @@ -0,0 +1 @@ +code/datums/components/technoshy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/technoshy.dm

/datum/component/technoshyYou can't use machines when they've been touched within the last [unused_duration], unless it was by a mob in [whitelist]
\ No newline at end of file diff --git a/code/datums/components/telegraph_ability.html b/code/datums/components/telegraph_ability.html new file mode 100644 index 0000000000000..81f60e82e219e --- /dev/null +++ b/code/datums/components/telegraph_ability.html @@ -0,0 +1 @@ +code/datums/components/telegraph_ability.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/telegraph_ability.dm

/datum/component/basic_mob_ability_telegraphComponent given to creatures to telegraph their abilities!
\ No newline at end of file diff --git a/code/datums/components/temporary_body.html b/code/datums/components/temporary_body.html new file mode 100644 index 0000000000000..1fca092749ff0 --- /dev/null +++ b/code/datums/components/temporary_body.html @@ -0,0 +1 @@ +code/datums/components/temporary_body.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/temporary_body.dm

/datum/component/temporary_body##temporary_body
\ No newline at end of file diff --git a/code/datums/components/temporary_description.html b/code/datums/components/temporary_description.html new file mode 100644 index 0000000000000..bc6fa54995403 --- /dev/null +++ b/code/datums/components/temporary_description.html @@ -0,0 +1,2 @@ +code/datums/components/temporary_description.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/temporary_description.dm

/datum/component/temporary_descriptionAdds examine text to something which is removed when receiving specified signals, by default the revive signal. +The default settings are set up to be applied to a corpse to add some kind of immersive storytelling text which goes away upon revival.
\ No newline at end of file diff --git a/code/datums/components/tether.html b/code/datums/components/tether.html new file mode 100644 index 0000000000000..b09424636015e --- /dev/null +++ b/code/datums/components/tether.html @@ -0,0 +1 @@ +code/datums/components/tether.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/tether.dm

/datum/component/tetherCreates a tether between two objects that limits movement range. Tether requires LOS and can be adjusted by left/right clicking its
\ No newline at end of file diff --git a/code/datums/components/tippable.html b/code/datums/components/tippable.html new file mode 100644 index 0000000000000..95426d9d6b667 --- /dev/null +++ b/code/datums/components/tippable.html @@ -0,0 +1 @@ +code/datums/components/tippable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/tippable.dm

/datum/component/tippableTippable component. For making mobs able to be tipped, like cows and medibots.
\ No newline at end of file diff --git a/code/datums/components/toggle_attached_clothing.html b/code/datums/components/toggle_attached_clothing.html new file mode 100644 index 0000000000000..a15c3fe5d9e28 --- /dev/null +++ b/code/datums/components/toggle_attached_clothing.html @@ -0,0 +1,2 @@ +code/datums/components/toggle_attached_clothing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/toggle_attached_clothing.dm

/datum/component/toggle_attached_clothingComponent which allows clothing to deploy a different kind of clothing onto you. +The simplest example is hooded suits deploying hoods onto your head.
\ No newline at end of file diff --git a/code/datums/components/torn_wall.html b/code/datums/components/torn_wall.html new file mode 100644 index 0000000000000..a14cd5e5098d2 --- /dev/null +++ b/code/datums/components/torn_wall.html @@ -0,0 +1,4 @@ +code/datums/components/torn_wall.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/torn_wall.dm

/datum/component/torn_wallComponent applied to a wall to progressively destroy it. +If component is applied to something which already has it, stage increases. +Wall is destroyed on third application. +Can be fixed using a welder
\ No newline at end of file diff --git a/code/datums/components/trader/trader.html b/code/datums/components/trader/trader.html new file mode 100644 index 0000000000000..66502843a8721 --- /dev/null +++ b/code/datums/components/trader/trader.html @@ -0,0 +1,2 @@ +code/datums/components/trader/trader.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/trader/trader.dm

/datum/component/traderManages the barks and the stocks of the traders +Also manages the interactive radial menu
\ No newline at end of file diff --git a/code/datums/components/trapdoor.html b/code/datums/components/trapdoor.html new file mode 100644 index 0000000000000..8fbc195641530 --- /dev/null +++ b/code/datums/components/trapdoor.html @@ -0,0 +1 @@ +code/datums/components/trapdoor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/components/trapdoor.dm

IS_OPENmakes this file more legible
TRAPDOOR_LINKING_SEARCH_RANGEdistance a trapdoor will accept a link request.
/datum/component/trapdoor
/obj/item/trapdoor_remote
/obj/item/trapdoor_remote/preloadedsubtype with internals already included. If you're giving a department a roundstart trapdoor, this is what you want
/obj/item/trapdoor_kittrapdoor parts kit, allows trapdoors to be made by players

Define Details

IS_OPEN

makes this file more legible

TRAPDOOR_LINKING_SEARCH_RANGE

distance a trapdoor will accept a link request.

\ No newline at end of file diff --git a/code/datums/components/twohanded.html b/code/datums/components/twohanded.html new file mode 100644 index 0000000000000..448c8e941c58d --- /dev/null +++ b/code/datums/components/twohanded.html @@ -0,0 +1 @@ +code/datums/components/twohanded.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/twohanded.dm

/datum/component/two_handedTwo Handed Component
/obj/item/offhandThe offhand dummy item for two handed items
\ No newline at end of file diff --git a/code/datums/components/udder.html b/code/datums/components/udder.html new file mode 100644 index 0000000000000..1fb41d322e1f7 --- /dev/null +++ b/code/datums/components/udder.html @@ -0,0 +1,2 @@ +code/datums/components/udder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/udder.dm

/datum/component/udderUdder component; for farm animals to generate milk.
/obj/item/udderAbstract item that is held in nullspace and manages reagents. Created by udder component. +While perhaps reagents created by udder component COULD be managed in the mob, it would be somewhat finnicky and I actually like the abstract udders.
/obj/item/udder/gutlunch
\ No newline at end of file diff --git a/code/datums/components/unobserved_actor.html b/code/datums/components/unobserved_actor.html new file mode 100644 index 0000000000000..11fcd8a45bef2 --- /dev/null +++ b/code/datums/components/unobserved_actor.html @@ -0,0 +1 @@ +code/datums/components/unobserved_actor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/unobserved_actor.dm

/datum/component/unobserved_actor
\ No newline at end of file diff --git a/code/datums/components/unusual_effect.html b/code/datums/components/unusual_effect.html new file mode 100644 index 0000000000000..2392b5bdf668a --- /dev/null +++ b/code/datums/components/unusual_effect.html @@ -0,0 +1,2 @@ +code/datums/components/unusual_effect.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/unusual_effect.dm

/datum/component/unusual_effectCreates a cool looking effect on the movable. +In the future, this could be expanded to have more interesting particles and effects.
\ No newline at end of file diff --git a/code/datums/components/uplink.html b/code/datums/components/uplink.html new file mode 100644 index 0000000000000..7967c0305aef4 --- /dev/null +++ b/code/datums/components/uplink.html @@ -0,0 +1 @@ +code/datums/components/uplink.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/uplink.dm

/datum/component/uplinkUplinks
\ No newline at end of file diff --git a/code/datums/components/usb_port.html b/code/datums/components/usb_port.html new file mode 100644 index 0000000000000..3956777c3a048 --- /dev/null +++ b/code/datums/components/usb_port.html @@ -0,0 +1 @@ +code/datums/components/usb_port.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/usb_port.dm

/datum/component/usb_portOpens up a USB port that can be connected to by circuits, creating registerable circuit components
\ No newline at end of file diff --git a/code/datums/components/vacuum.html b/code/datums/components/vacuum.html new file mode 100644 index 0000000000000..ba21fd3eefa48 --- /dev/null +++ b/code/datums/components/vacuum.html @@ -0,0 +1,2 @@ +code/datums/components/vacuum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/vacuum.dm

/datum/component/vacuumAdds a vacuum functionality to an atom, requires a trashbag to be linked +using signals
\ No newline at end of file diff --git a/code/datums/components/vision_hurting.html b/code/datums/components/vision_hurting.html new file mode 100644 index 0000000000000..b76f244a304f5 --- /dev/null +++ b/code/datums/components/vision_hurting.html @@ -0,0 +1 @@ +code/datums/components/vision_hurting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/vision_hurting.dm

/datum/component/vision_hurtingA component that damages eyes that look at the owner
\ No newline at end of file diff --git a/code/datums/components/weatherannouncer.html b/code/datums/components/weatherannouncer.html new file mode 100644 index 0000000000000..888a35611b8ec --- /dev/null +++ b/code/datums/components/weatherannouncer.html @@ -0,0 +1 @@ +code/datums/components/weatherannouncer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/components/weatherannouncer.dm

/datum/component/weather_announcerComponent which makes you yell about what the weather is
\ No newline at end of file diff --git a/code/datums/dash_weapon.html b/code/datums/dash_weapon.html new file mode 100644 index 0000000000000..cbe9656214d10 --- /dev/null +++ b/code/datums/dash_weapon.html @@ -0,0 +1 @@ +code/datums/dash_weapon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/dash_weapon.dm

/datum/action/innate/dashActions that you can use to dash (teleport) to places in view.
\ No newline at end of file diff --git a/code/datums/datum.html b/code/datums/datum.html new file mode 100644 index 0000000000000..659e5c89f769d --- /dev/null +++ b/code/datums/datum.html @@ -0,0 +1 @@ +code/datums/datum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/datum.dm

/datumThe absolute base class for everything
/proc/json_serialize_datumConvert a datum into a json blob
/proc/json_deserialize_datumConvert a list of json to datum
/proc/end_cooldownCallback called by a timer to end an associative-list-indexed cooldown.
/proc/reset_cooldownProc used by stoppable timers to end a cooldown before the time has ran out.
\ No newline at end of file diff --git a/code/datums/diseases/_disease.html b/code/datums/diseases/_disease.html new file mode 100644 index 0000000000000..b50b16ea12055 --- /dev/null +++ b/code/datums/diseases/_disease.html @@ -0,0 +1 @@ +code/datums/diseases/_disease.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/diseases/_disease.dm

/proc/disease_air_spread_walkHelper for checking if there is an air path between two turfs
\ No newline at end of file diff --git a/code/datums/diseases/advance/floor_diseases/carpellosis.html b/code/datums/diseases/advance/floor_diseases/carpellosis.html new file mode 100644 index 0000000000000..b1a81fdaf53ce --- /dev/null +++ b/code/datums/diseases/advance/floor_diseases/carpellosis.html @@ -0,0 +1 @@ +code/datums/diseases/advance/floor_diseases/carpellosis.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/diseases/advance/floor_diseases/carpellosis.dm

/datum/disease/advance/carpellosisCaused by dirty food. Makes you growl at people and bite them spontaneously.
\ No newline at end of file diff --git a/code/datums/diseases/advance/floor_diseases/gastritium.html b/code/datums/diseases/advance/floor_diseases/gastritium.html new file mode 100644 index 0000000000000..b20a19a7d2596 --- /dev/null +++ b/code/datums/diseases/advance/floor_diseases/gastritium.html @@ -0,0 +1 @@ +code/datums/diseases/advance/floor_diseases/gastritium.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/diseases/advance/floor_diseases/gastritium.dm

/datum/disease/advance/gastritiumCaused by dirty food. Makes you burp out Tritium, sometimes burning hot!
\ No newline at end of file diff --git a/code/datums/diseases/advance/floor_diseases/nebula_nausea.html b/code/datums/diseases/advance/floor_diseases/nebula_nausea.html new file mode 100644 index 0000000000000..4bcc6ebb2627a --- /dev/null +++ b/code/datums/diseases/advance/floor_diseases/nebula_nausea.html @@ -0,0 +1 @@ +code/datums/diseases/advance/floor_diseases/nebula_nausea.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/diseases/advance/floor_diseases/nebula_nausea.dm

/datum/disease/advance/nebula_nauseaCaused by dirty food. Makes you vomit stars.
\ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/beard.html b/code/datums/diseases/advance/symptoms/beard.html new file mode 100644 index 0000000000000..47ffdc074ec56 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/beard.html @@ -0,0 +1 @@ +code/datums/diseases/advance/symptoms/beard.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/diseases/advance/symptoms/beard.dm

/datum/symptom/beard
\ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/chills.html b/code/datums/diseases/advance/symptoms/chills.html new file mode 100644 index 0000000000000..0babf4ff79d59 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/chills.html @@ -0,0 +1 @@ +code/datums/diseases/advance/symptoms/chills.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/diseases/advance/symptoms/chills.dm

/datum/symptom/chills
\ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/choking.html b/code/datums/diseases/advance/symptoms/choking.html new file mode 100644 index 0000000000000..32decb5a6426a --- /dev/null +++ b/code/datums/diseases/advance/symptoms/choking.html @@ -0,0 +1 @@ +code/datums/diseases/advance/symptoms/choking.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/diseases/advance/symptoms/choking.dm

/datum/symptom/choking*Choking
\ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/confusion.html b/code/datums/diseases/advance/symptoms/confusion.html new file mode 100644 index 0000000000000..7006a34aefbca --- /dev/null +++ b/code/datums/diseases/advance/symptoms/confusion.html @@ -0,0 +1 @@ +code/datums/diseases/advance/symptoms/confusion.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/diseases/advance/symptoms/confusion.dm

/datum/symptom/confusion*Confusion
\ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/cough.html b/code/datums/diseases/advance/symptoms/cough.html new file mode 100644 index 0000000000000..4d8464bc8b46d --- /dev/null +++ b/code/datums/diseases/advance/symptoms/cough.html @@ -0,0 +1 @@ +code/datums/diseases/advance/symptoms/cough.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/diseases/advance/symptoms/cough.dm

/datum/symptom/cough*Coughing
\ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/deafness.html b/code/datums/diseases/advance/symptoms/deafness.html new file mode 100644 index 0000000000000..ea919b57c79c6 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/deafness.html @@ -0,0 +1 @@ +code/datums/diseases/advance/symptoms/deafness.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/diseases/advance/symptoms/deafness.dm

/datum/symptom/deafness*Deafness
\ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/disfiguration.html b/code/datums/diseases/advance/symptoms/disfiguration.html new file mode 100644 index 0000000000000..282150ee7909b --- /dev/null +++ b/code/datums/diseases/advance/symptoms/disfiguration.html @@ -0,0 +1 @@ +code/datums/diseases/advance/symptoms/disfiguration.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/diseases/advance/symptoms/disfiguration.dm

/datum/symptom/disfiguration*Disfiguration
\ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/dizzy.html b/code/datums/diseases/advance/symptoms/dizzy.html new file mode 100644 index 0000000000000..f71cbbe0c3250 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/dizzy.html @@ -0,0 +1 @@ +code/datums/diseases/advance/symptoms/dizzy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/diseases/advance/symptoms/dizzy.dm

/datum/symptom/dizzy*Dizziness
\ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/fever.html b/code/datums/diseases/advance/symptoms/fever.html new file mode 100644 index 0000000000000..e91223ee5fde1 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/fever.html @@ -0,0 +1 @@ +code/datums/diseases/advance/symptoms/fever.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/diseases/advance/symptoms/fever.dm

/datum/symptom/fever*Fever
\ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/fire.html b/code/datums/diseases/advance/symptoms/fire.html new file mode 100644 index 0000000000000..8eee33fab95b7 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/fire.html @@ -0,0 +1 @@ +code/datums/diseases/advance/symptoms/fire.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/diseases/advance/symptoms/fire.dm

/datum/symptom/fire*Spontaneous Combustion
\ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/heal.html b/code/datums/diseases/advance/symptoms/heal.html new file mode 100644 index 0000000000000..b19b814eb108d --- /dev/null +++ b/code/datums/diseases/advance/symptoms/heal.html @@ -0,0 +1 @@ +code/datums/diseases/advance/symptoms/heal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/diseases/advance/symptoms/heal.dm

HEALING_PER_MOLDetermines the rate at which Plasma Fixation heals based on the amount of plasma in the air
HEALING_PER_BREATH_PRESSUREDetermines the rate at which Plasma Fixation heals based on the amount of plasma being breathed through internals
MAX_HEAL_COEFFICIENT_INTERNALSDetermines the highest amount you can be healed for when breathing plasma from internals
MAX_HEAL_COEFFICIENT_ENVIRONMENTDetermines the highest amount you can be healed for from pulling plasma from the environment
MAX_HEAL_COEFFICIENT_BLOODSTREAMDetermines the highest amount you can be healed for when there is plasma in the bloodstream
BASE_HEAL_PLASMA_FIXATIONThis is the base heal amount before being multiplied by the healing coefficients
/datum/symptom/heal/radiationPlasma End

Define Details

BASE_HEAL_PLASMA_FIXATION

This is the base heal amount before being multiplied by the healing coefficients

HEALING_PER_BREATH_PRESSURE

Determines the rate at which Plasma Fixation heals based on the amount of plasma being breathed through internals

HEALING_PER_MOL

Determines the rate at which Plasma Fixation heals based on the amount of plasma in the air

MAX_HEAL_COEFFICIENT_BLOODSTREAM

Determines the highest amount you can be healed for when there is plasma in the bloodstream

MAX_HEAL_COEFFICIENT_ENVIRONMENT

Determines the highest amount you can be healed for from pulling plasma from the environment

MAX_HEAL_COEFFICIENT_INTERNALS

Determines the highest amount you can be healed for when breathing plasma from internals

\ No newline at end of file diff --git a/code/datums/dna.html b/code/datums/dna.html new file mode 100644 index 0000000000000..6fe72506d3d77 --- /dev/null +++ b/code/datums/dna.html @@ -0,0 +1 @@ +code/datums/dna.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/dna.dm

/datum/dnaDNA DATUM
\ No newline at end of file diff --git a/code/datums/drift_handler.html b/code/datums/drift_handler.html new file mode 100644 index 0000000000000..ce5a66fb03f00 --- /dev/null +++ b/code/datums/drift_handler.html @@ -0,0 +1,3 @@ +code/datums/drift_handler.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/drift_handler.dm

/datum/drift_handlerComponent that handles drifting +Manages a movement loop that actually does the legwork of moving someone +Alongside dealing with the post movement input blocking required to make things look nice
\ No newline at end of file diff --git a/code/datums/ductnet.html b/code/datums/ductnet.html new file mode 100644 index 0000000000000..abba849c4f5c9 --- /dev/null +++ b/code/datums/ductnet.html @@ -0,0 +1 @@ +code/datums/ductnet.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/ductnet.dm

/datum/ductnetWe handle the unity part of plumbing. We track who is connected to who.
\ No newline at end of file diff --git a/code/datums/eigenstate.html b/code/datums/eigenstate.html new file mode 100644 index 0000000000000..aac6a3a720fed --- /dev/null +++ b/code/datums/eigenstate.html @@ -0,0 +1 @@ +code/datums/eigenstate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/eigenstate.dm

/datum/eigenstate_managerA singleton used to teleport people to a linked web of itterative entries. If one entry is deleted, the 2 around it will forge a link instead.
\ No newline at end of file diff --git a/code/datums/elements/ELEMENT_TEMPLATE.html b/code/datums/elements/ELEMENT_TEMPLATE.html new file mode 100644 index 0000000000000..1f38c6870b661 --- /dev/null +++ b/code/datums/elements/ELEMENT_TEMPLATE.html @@ -0,0 +1,20 @@ +code/datums/elements/ELEMENT_TEMPLATE.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Template file for your new element

See _element.dm for detailed explanations

+
/datum/element/myelement
+	element_flags = ELEMENT_BESPOKE | ELEMENT_COMPLEX_DETACH | ELEMENT_DETACH_ON_HOST_DESTROY | ELEMENT_NOTAREALFLAG // code/__DEFINES/dcs/flags.dm
+	//argument_hash_start_idx = 2  // Use with ELEMENT_BESPOKE
+	var/list/myvar = list()
+
+/datum/element/myelement/Attach(datum/target)
+	if(!ismovable(target))
+		return COMPONENT_INCOMPATIBLE
+	RegisterSignal(target, COMSIG_MOVABLE_MOVED, myproc)
+	to_chat(target, "Hey, you're in your element.")
+
+/datum/element/myelement/Detach(datum/source)
+	UnregisterSignal(source, COMSIG_MOVABLE_MOVED)
+	to_chat(source, "You feel way out of your element.")
+
+/datum/element/myelement/proc/myproc(datum/source)
+	SIGNAL_HANDLER
+	playsound(source, 'sound/effects/gong.ogg', 50, TRUE)
+
\ No newline at end of file diff --git a/code/datums/elements/_element.html b/code/datums/elements/_element.html new file mode 100644 index 0000000000000..972bc237bbed0 --- /dev/null +++ b/code/datums/elements/_element.html @@ -0,0 +1 @@ +code/datums/elements/_element.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/_element.dm

/datum/elementA holder for simple behaviour that can be attached to many different types
\ No newline at end of file diff --git a/code/datums/elements/ai_control_examine.html b/code/datums/elements/ai_control_examine.html new file mode 100644 index 0000000000000..ec2a0c223b39a --- /dev/null +++ b/code/datums/elements/ai_control_examine.html @@ -0,0 +1 @@ +code/datums/elements/ai_control_examine.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/ai_control_examine.dm

/datum/element/ai_control_examineai control examine; which gives the pawn of the parent the noticable organs depending on AI status!
\ No newline at end of file diff --git a/code/datums/elements/ai_flee_while_injured.html b/code/datums/elements/ai_flee_while_injured.html new file mode 100644 index 0000000000000..7d52b1fb14a0a --- /dev/null +++ b/code/datums/elements/ai_flee_while_injured.html @@ -0,0 +1 @@ +code/datums/elements/ai_flee_while_injured.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/ai_flee_while_injured.dm

/datum/element/ai_flee_while_injuredAttached to a mob with an AI controller, simply sets a flag on whether or not to run away based on current health values.
\ No newline at end of file diff --git a/code/datums/elements/ai_held_item.html b/code/datums/elements/ai_held_item.html new file mode 100644 index 0000000000000..d981c4d2c5619 --- /dev/null +++ b/code/datums/elements/ai_held_item.html @@ -0,0 +1 @@ +code/datums/elements/ai_held_item.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/ai_held_item.dm

/datum/element/ai_held_itemManages holding an item for a mob which doesn't have hands but needs to for AI purposes.
\ No newline at end of file diff --git a/code/datums/elements/ai_retaliate.html b/code/datums/elements/ai_retaliate.html new file mode 100644 index 0000000000000..de11581aae237 --- /dev/null +++ b/code/datums/elements/ai_retaliate.html @@ -0,0 +1,2 @@ +code/datums/elements/ai_retaliate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/ai_retaliate.dm

/datum/element/ai_retaliateAttached to a mob with an AI controller, passes things which have damaged it to a blackboard. +The AI controller is responsible for doing anything with that information.
\ No newline at end of file diff --git a/code/datums/elements/ai_swap_combat_mode.html b/code/datums/elements/ai_swap_combat_mode.html new file mode 100644 index 0000000000000..120417ab53b62 --- /dev/null +++ b/code/datums/elements/ai_swap_combat_mode.html @@ -0,0 +1 @@ +code/datums/elements/ai_swap_combat_mode.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/ai_swap_combat_mode.dm

/datum/element/ai_swap_combat_modeAttached to a mob with an AI controller, updates combat mode when the affected mob acquires or loses targets
\ No newline at end of file diff --git a/code/datums/elements/ai_target_damagesource.html b/code/datums/elements/ai_target_damagesource.html new file mode 100644 index 0000000000000..4ecbf235f7547 --- /dev/null +++ b/code/datums/elements/ai_target_damagesource.html @@ -0,0 +1,2 @@ +code/datums/elements/ai_target_damagesource.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/ai_target_damagesource.dm

/datum/element/ai_target_damagesourceAttached to a mob with an AI controller, sets the blackboard current target to the most recent thing to attack this mob. +The AI controller is responsible for doing anything with that information.
\ No newline at end of file diff --git a/code/datums/elements/animal_variety.html b/code/datums/elements/animal_variety.html new file mode 100644 index 0000000000000..0bb3d31e51041 --- /dev/null +++ b/code/datums/elements/animal_variety.html @@ -0,0 +1,2 @@ +code/datums/elements/animal_variety.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/animal_variety.dm

/datum/element/animal_varietyElement that picks an suffix to append onto the icon state from a list given on creation, +among some pixel shifting stuff. Basically you will see VARIETY in a batch of animals.
\ No newline at end of file diff --git a/code/datums/elements/atmos_requirements.html b/code/datums/elements/atmos_requirements.html new file mode 100644 index 0000000000000..855e1d223532d --- /dev/null +++ b/code/datums/elements/atmos_requirements.html @@ -0,0 +1 @@ +code/datums/elements/atmos_requirements.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/atmos_requirements.dm

/datum/element/atmos_requirements
\ No newline at end of file diff --git a/code/datums/elements/attack_equip.html b/code/datums/elements/attack_equip.html new file mode 100644 index 0000000000000..86861250f2a16 --- /dev/null +++ b/code/datums/elements/attack_equip.html @@ -0,0 +1 @@ +code/datums/elements/attack_equip.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/attack_equip.dm

/datum/element/attack_equipAttached to an item, when the item is used to attack a human, and the attacker isn't in combat mode, attempts to equip the item to the target after the normal delay.
\ No newline at end of file diff --git a/code/datums/elements/attack_zone_randomiser.html b/code/datums/elements/attack_zone_randomiser.html new file mode 100644 index 0000000000000..a4575ed7cd0a0 --- /dev/null +++ b/code/datums/elements/attack_zone_randomiser.html @@ -0,0 +1 @@ +code/datums/elements/attack_zone_randomiser.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/attack_zone_randomiser.dm

/datum/element/attack_zone_randomiserPick a random attack zone before you attack something
\ No newline at end of file diff --git a/code/datums/elements/backblast.html b/code/datums/elements/backblast.html new file mode 100644 index 0000000000000..90e8a27f96976 --- /dev/null +++ b/code/datums/elements/backblast.html @@ -0,0 +1 @@ +code/datums/elements/backblast.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/backblast.dm

/datum/element/backblastWhen attached to a gun and the gun is successfully fired, this element creates a "backblast", like you'd find in a rocket launcher or recoilless rifle
\ No newline at end of file diff --git a/code/datums/elements/bane.html b/code/datums/elements/bane.html new file mode 100644 index 0000000000000..c36025795c2cb --- /dev/null +++ b/code/datums/elements/bane.html @@ -0,0 +1,4 @@ +code/datums/elements/bane.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/bane.dm

/datum/element/baneDeals extra damage to mobs of a certain type, species, or biotype. +This doesn't directly modify the normal damage of the weapon, instead it applies its own damage separately ON TOP of normal damage +ie. a sword that does 10 damage with a bane element attached that has a 0.5 damage_multiplier will do: +10 damage from the swords normal attack + 5 damage (50%) from the bane element
\ No newline at end of file diff --git a/code/datums/elements/basic_eating.html b/code/datums/elements/basic_eating.html new file mode 100644 index 0000000000000..8d202666b5780 --- /dev/null +++ b/code/datums/elements/basic_eating.html @@ -0,0 +1 @@ +code/datums/elements/basic_eating.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/basic_eating.dm

/datum/element/basic_eating
\ No newline at end of file diff --git a/code/datums/elements/basic_health_examine.html b/code/datums/elements/basic_health_examine.html new file mode 100644 index 0000000000000..3ae2733f19a08 --- /dev/null +++ b/code/datums/elements/basic_health_examine.html @@ -0,0 +1 @@ +code/datums/elements/basic_health_examine.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/basic_health_examine.dm

/datum/element/basic_health_examineA simple element for basic mobs that prints out a custom damaged state message
\ No newline at end of file diff --git a/code/datums/elements/beauty.html b/code/datums/elements/beauty.html new file mode 100644 index 0000000000000..be38d12183b32 --- /dev/null +++ b/code/datums/elements/beauty.html @@ -0,0 +1,3 @@ +code/datums/elements/beauty.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/beauty.dm

/datum/element/beautyBeauty element. It makes the indoor area the parent is in prettier or uglier depending on the beauty var value. +Clean and well decorated areas lead to positive moodlets for passerbies; +Shabbier, dirtier ones lead to negative moodlets EXCLUSIVE to characters with the snob quirk.
\ No newline at end of file diff --git a/code/datums/elements/bed_tucking.html b/code/datums/elements/bed_tucking.html new file mode 100644 index 0000000000000..e4e3724392054 --- /dev/null +++ b/code/datums/elements/bed_tucking.html @@ -0,0 +1 @@ +code/datums/elements/bed_tucking.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/bed_tucking.dm

/datum/element/bed_tuckableTucking element, for things that can be tucked into bed.
\ No newline at end of file diff --git a/code/datums/elements/befriend_petting.html b/code/datums/elements/befriend_petting.html new file mode 100644 index 0000000000000..303e695000e0d --- /dev/null +++ b/code/datums/elements/befriend_petting.html @@ -0,0 +1 @@ +code/datums/elements/befriend_petting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/befriend_petting.dm

/datum/element/befriend_pettingElement which makes a mob befriend you if you pet it enough.
\ No newline at end of file diff --git a/code/datums/elements/block_turf_fingerprints.html b/code/datums/elements/block_turf_fingerprints.html new file mode 100644 index 0000000000000..eb754f1400d5d --- /dev/null +++ b/code/datums/elements/block_turf_fingerprints.html @@ -0,0 +1 @@ +code/datums/elements/block_turf_fingerprints.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/block_turf_fingerprints.dm

/datum/element/block_turf_fingerprints
\ No newline at end of file diff --git a/code/datums/elements/blocks_explosives.html b/code/datums/elements/blocks_explosives.html new file mode 100644 index 0000000000000..ce8780cb904bf --- /dev/null +++ b/code/datums/elements/blocks_explosives.html @@ -0,0 +1,2 @@ +code/datums/elements/blocks_explosives.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/blocks_explosives.dm

/datum/element/blocks_explosivesApply this element to a movable atom when you want it to block explosions +It will mirror the blocking down to that movable's turf, keeping explosion work cheap
\ No newline at end of file diff --git a/code/datums/elements/body_temp_sensitive.html b/code/datums/elements/body_temp_sensitive.html new file mode 100644 index 0000000000000..71df2451dc81e --- /dev/null +++ b/code/datums/elements/body_temp_sensitive.html @@ -0,0 +1 @@ +code/datums/elements/body_temp_sensitive.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/body_temp_sensitive.dm

/datum/element/body_temp_sensitiveWhen attached to a basic mob, it gives it the ability to be hurt by cold/hot body temperatures
\ No newline at end of file diff --git a/code/datums/elements/bombable_turf.html b/code/datums/elements/bombable_turf.html new file mode 100644 index 0000000000000..4b1fda8fbbad3 --- /dev/null +++ b/code/datums/elements/bombable_turf.html @@ -0,0 +1,3 @@ +code/datums/elements/bombable_turf.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/bombable_turf.dm

/datum/element/bombable_turfApply this to a turf (usually a wall) and it will be destroyed instantly by any explosion. +Most walls can already be destroyed by explosions so this is largely for usually indestructible ones. +For applying it in a map editor, use /obj/effect/mapping_helpers/bombable_wall
\ No newline at end of file diff --git a/code/datums/elements/bonus_damage.html b/code/datums/elements/bonus_damage.html new file mode 100644 index 0000000000000..8a5ade051de8d --- /dev/null +++ b/code/datums/elements/bonus_damage.html @@ -0,0 +1 @@ +code/datums/elements/bonus_damage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/bonus_damage.dm

/datum/element/bonus_damageAttached to a mob that will then deal bonus damage to a victim with low, or potentially in the future, high health.
\ No newline at end of file diff --git a/code/datums/elements/bugkiller_reagent.html b/code/datums/elements/bugkiller_reagent.html new file mode 100644 index 0000000000000..c982ffcc23c39 --- /dev/null +++ b/code/datums/elements/bugkiller_reagent.html @@ -0,0 +1,4 @@ +code/datums/elements/bugkiller_reagent.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/bugkiller_reagent.dm

/datum/element/bugkiller_reagentSimple element to be applied to reagents +When those reagents are exposed to mobs with the bug biotype, causes toxins damage +If this delivers the killing blow on a non-humanoid mob, it applies a special status effect that does a funny animation
/datum/status_effect/bugkiller_deathIf bugkiller delivers a lethal dosage, applies this effect which does a funny animation THEN kills 'em +Also makes it so simplemobs / basicmobs no longer delete when they die (if they do)
\ No newline at end of file diff --git a/code/datums/elements/bump_click.html b/code/datums/elements/bump_click.html new file mode 100644 index 0000000000000..9d69175eb5a68 --- /dev/null +++ b/code/datums/elements/bump_click.html @@ -0,0 +1 @@ +code/datums/elements/bump_click.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/bump_click.dm

/datum/element/bump_clickBump click bespoke element
\ No newline at end of file diff --git a/code/datums/elements/can_shatter.html b/code/datums/elements/can_shatter.html new file mode 100644 index 0000000000000..7afd82d0ccb09 --- /dev/null +++ b/code/datums/elements/can_shatter.html @@ -0,0 +1,2 @@ +code/datums/elements/can_shatter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/can_shatter.dm

/datum/element/can_shatterWhen attached to something, will make that thing shatter into shards on throw impact or z level falling +Or even when used as a weapon if the 'shatters_as_weapon' arg is TRUE
\ No newline at end of file diff --git a/code/datums/elements/caseless.html b/code/datums/elements/caseless.html new file mode 100644 index 0000000000000..b2d29691cc726 --- /dev/null +++ b/code/datums/elements/caseless.html @@ -0,0 +1,3 @@ +code/datums/elements/caseless.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/caseless.dm

/datum/element/caselessAn element that deletes the casing when fired and, if reusable is true, adds the projectile_drop element to the bullet. +Just make sure to not add components or elements that also use COMSIG_FIRE_CASING after this one. +Not compatible with pellets (how the eff would that work in a senible way tho?).
\ No newline at end of file diff --git a/code/datums/elements/chemical_transfer.html b/code/datums/elements/chemical_transfer.html new file mode 100644 index 0000000000000..2ef1557c7276e --- /dev/null +++ b/code/datums/elements/chemical_transfer.html @@ -0,0 +1 @@ +code/datums/elements/chemical_transfer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/chemical_transfer.dm

/datum/element/chemical_transfer
\ No newline at end of file diff --git a/code/datums/elements/chewable.html b/code/datums/elements/chewable.html new file mode 100644 index 0000000000000..bf5ec7cbe013d --- /dev/null +++ b/code/datums/elements/chewable.html @@ -0,0 +1,2 @@ +code/datums/elements/chewable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/chewable.dm

/datum/element/chewableAnything with this element will provide the reagents inside the +item to the user when it is equipped.
\ No newline at end of file diff --git a/code/datums/elements/cliff_walker.html b/code/datums/elements/cliff_walker.html new file mode 100644 index 0000000000000..5d3eaf8a409bd --- /dev/null +++ b/code/datums/elements/cliff_walker.html @@ -0,0 +1 @@ +code/datums/elements/cliff_walker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/cliff_walker.dm

/datum/element/cliff_walkingLets a mob walk cliffs and keeps track of if they're alive or not to add/remove the trait
\ No newline at end of file diff --git a/code/datums/elements/connect_loc.html b/code/datums/elements/connect_loc.html new file mode 100644 index 0000000000000..79cf16f453678 --- /dev/null +++ b/code/datums/elements/connect_loc.html @@ -0,0 +1,2 @@ +code/datums/elements/connect_loc.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/connect_loc.dm

/datum/element/connect_locThis element hooks a signal onto the loc the current object is on. +When the object moves, it will unhook the signal and rehook it to the new object.
\ No newline at end of file diff --git a/code/datums/elements/consumable_mob.html b/code/datums/elements/consumable_mob.html new file mode 100644 index 0000000000000..b6c0eb610b361 --- /dev/null +++ b/code/datums/elements/consumable_mob.html @@ -0,0 +1 @@ +code/datums/elements/consumable_mob.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/consumable_mob.dm

/datum/element/consumable_mobelement for mobs that can be consumed!
\ No newline at end of file diff --git a/code/datums/elements/content_barfer.html b/code/datums/elements/content_barfer.html new file mode 100644 index 0000000000000..35b8f7032532e --- /dev/null +++ b/code/datums/elements/content_barfer.html @@ -0,0 +1 @@ +code/datums/elements/content_barfer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/content_barfer.dm

/datum/element/content_barferContent Barfer; which expels the contents of a mob when it dies, or is transformed
\ No newline at end of file diff --git a/code/datums/elements/corrupted_organ.html b/code/datums/elements/corrupted_organ.html new file mode 100644 index 0000000000000..a1c03dd8f643e --- /dev/null +++ b/code/datums/elements/corrupted_organ.html @@ -0,0 +1,2 @@ +code/datums/elements/corrupted_organ.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/corrupted_organ.dm

/datum/element/corrupted_organComponent applying shared behaviour by cursed organs granted when sacrificed by a heretic +Mostly just does something spooky when it is removed
\ No newline at end of file diff --git a/code/datums/elements/crackable.html b/code/datums/elements/crackable.html new file mode 100644 index 0000000000000..ee9866febb571 --- /dev/null +++ b/code/datums/elements/crackable.html @@ -0,0 +1 @@ +code/datums/elements/crackable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/crackable.dm

/datum/element/crackableAdds crack overlays to an object when integrity gets low
\ No newline at end of file diff --git a/code/datums/elements/crusher_loot.html b/code/datums/elements/crusher_loot.html new file mode 100644 index 0000000000000..67c07b21f96f9 --- /dev/null +++ b/code/datums/elements/crusher_loot.html @@ -0,0 +1 @@ +code/datums/elements/crusher_loot.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/crusher_loot.dm

/datum/element/crusher_lootCrusher Loot; which makes the attached mob drop a crusher trophy of some type if the majority damage was from a crusher!
\ No newline at end of file diff --git a/code/datums/elements/cuffsnapping.html b/code/datums/elements/cuffsnapping.html new file mode 100644 index 0000000000000..6b14d6e40890c --- /dev/null +++ b/code/datums/elements/cuffsnapping.html @@ -0,0 +1 @@ +code/datums/elements/cuffsnapping.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/cuffsnapping.dm

/datum/element/cuffsnappingcuffsnapping element replaces the item's secondary attack with an aimed attack at the kneecaps under certain circumstances.
\ No newline at end of file diff --git a/code/datums/elements/cult_eyes.html b/code/datums/elements/cult_eyes.html new file mode 100644 index 0000000000000..12acf5784e870 --- /dev/null +++ b/code/datums/elements/cult_eyes.html @@ -0,0 +1 @@ +code/datums/elements/cult_eyes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/cult_eyes.dm

/datum/element/cult_eyesApplies and removes the glowing cult eyes
\ No newline at end of file diff --git a/code/datums/elements/cult_halo.html b/code/datums/elements/cult_halo.html new file mode 100644 index 0000000000000..9295b4379c11f --- /dev/null +++ b/code/datums/elements/cult_halo.html @@ -0,0 +1 @@ +code/datums/elements/cult_halo.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/cult_halo.dm

/datum/element/cult_haloApplies and removes the cult halo
\ No newline at end of file diff --git a/code/datums/elements/curse_announcement.html b/code/datums/elements/curse_announcement.html new file mode 100644 index 0000000000000..00cfa391d0799 --- /dev/null +++ b/code/datums/elements/curse_announcement.html @@ -0,0 +1,3 @@ +code/datums/elements/curse_announcement.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/curse_announcement.dm

/datum/element/curse_announcementBespoke element that sends a harrowing message when you first pick up an item, applying a spooky color outline and renaming the item. +For most items, it will announce when picked up. If the item can be equipped, though, it will only announce when the item is worn. +Possible improvements for the future: add an option to allow the cursed affix to be a prefix. right now only coded for suffixes
\ No newline at end of file diff --git a/code/datums/elements/cursed.html b/code/datums/elements/cursed.html new file mode 100644 index 0000000000000..51966bcc08402 --- /dev/null +++ b/code/datums/elements/cursed.html @@ -0,0 +1 @@ +code/datums/elements/cursed.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/cursed.dm

/datum/element/cursedAttaching this element to something will make it float, and get a special ai controller!
\ No newline at end of file diff --git a/code/datums/elements/damage_threshold.html b/code/datums/elements/damage_threshold.html new file mode 100644 index 0000000000000..6fc684408afa9 --- /dev/null +++ b/code/datums/elements/damage_threshold.html @@ -0,0 +1,3 @@ +code/datums/elements/damage_threshold.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/damage_threshold.dm

/datum/element/damage_thresholdApplied to living mobs. +Adds a force threshold for which attacks will be blocked entirely. +IE, if they are hit with an attack that deals less than X damage, the attack does nothing.
\ No newline at end of file diff --git a/code/datums/elements/dangerous_surgical_removal.html b/code/datums/elements/dangerous_surgical_removal.html new file mode 100644 index 0000000000000..c0ee19eb6e59b --- /dev/null +++ b/code/datums/elements/dangerous_surgical_removal.html @@ -0,0 +1 @@ +code/datums/elements/dangerous_surgical_removal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/dangerous_surgical_removal.dm

/datum/element/dangerous_surgical_removal
\ No newline at end of file diff --git a/code/datums/elements/death_drops.html b/code/datums/elements/death_drops.html new file mode 100644 index 0000000000000..9c3310e5b1541 --- /dev/null +++ b/code/datums/elements/death_drops.html @@ -0,0 +1 @@ +code/datums/elements/death_drops.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/death_drops.dm

/datum/element/death_drops
\ No newline at end of file diff --git a/code/datums/elements/death_explosion.html b/code/datums/elements/death_explosion.html new file mode 100644 index 0000000000000..c760a02dd85ad --- /dev/null +++ b/code/datums/elements/death_explosion.html @@ -0,0 +1 @@ +code/datums/elements/death_explosion.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/death_explosion.dm

/datum/element/death_explosion
\ No newline at end of file diff --git a/code/datums/elements/death_gases.html b/code/datums/elements/death_gases.html new file mode 100644 index 0000000000000..4a6658e76eb57 --- /dev/null +++ b/code/datums/elements/death_gases.html @@ -0,0 +1 @@ +code/datums/elements/death_gases.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/death_gases.dm

/datum/element/death_gases
\ No newline at end of file diff --git a/code/datums/elements/delete_on_drop.html b/code/datums/elements/delete_on_drop.html new file mode 100644 index 0000000000000..c489a8f2ba77f --- /dev/null +++ b/code/datums/elements/delete_on_drop.html @@ -0,0 +1 @@ +code/datums/elements/delete_on_drop.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/delete_on_drop.dm

/datum/element/delete_on_dropAttaches to an item, if that item is dropped on the floor delete it
\ No newline at end of file diff --git a/code/datums/elements/deliver_first.html b/code/datums/elements/deliver_first.html new file mode 100644 index 0000000000000..0a574a073ff0f --- /dev/null +++ b/code/datums/elements/deliver_first.html @@ -0,0 +1,4 @@ +code/datums/elements/deliver_first.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/elements/deliver_first.dm

DENY_SOUND_COOLDOWN

Define Details

DENY_SOUND_COOLDOWN

deliver first element!

+

bespoke element (1 per set of specific arguments in existence) that makes crates unable to be sold UNTIL they are opened once (to where this element, and the block, are removed) +Used for non-cargo orders to not get turned into a quick buck

+

for the future coders or just me: please convert this into a component to allow for more feedback on the crate's status (clicking when unlocked, overlays, etc)

\ No newline at end of file diff --git a/code/datums/elements/dextrous.html b/code/datums/elements/dextrous.html new file mode 100644 index 0000000000000..77387ad40248c --- /dev/null +++ b/code/datums/elements/dextrous.html @@ -0,0 +1,2 @@ +code/datums/elements/dextrous.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/dextrous.dm

/datum/element/dextrousSets up the attachee to have hands and manages things like dropping items on death and displaying them on examine +Actual hand performance is managed by code on /living/ and not encapsulated here, we just enable it
\ No newline at end of file diff --git a/code/datums/elements/diggable.html b/code/datums/elements/diggable.html new file mode 100644 index 0000000000000..b18763203c1ee --- /dev/null +++ b/code/datums/elements/diggable.html @@ -0,0 +1 @@ +code/datums/elements/diggable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/diggable.dm

/datum/element/diggableLets you make hitting a turf with a shovel pop something out, and scrape the turf
\ No newline at end of file diff --git a/code/datums/elements/disarm_attack.html b/code/datums/elements/disarm_attack.html new file mode 100644 index 0000000000000..6cbc6d6ddf7f0 --- /dev/null +++ b/code/datums/elements/disarm_attack.html @@ -0,0 +1 @@ +code/datums/elements/disarm_attack.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/disarm_attack.dm

/datum/element/disarm_attackAn element that allows items to be used to shove people around just like right-clicking would.
\ No newline at end of file diff --git a/code/datums/elements/door_pryer.html b/code/datums/elements/door_pryer.html new file mode 100644 index 0000000000000..795f24bbdc47f --- /dev/null +++ b/code/datums/elements/door_pryer.html @@ -0,0 +1,2 @@ +code/datums/elements/door_pryer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/door_pryer.dm

/datum/element/door_pryerAttached to a basic mob. +Causes attacks on doors to attempt to open them.
\ No newline at end of file diff --git a/code/datums/elements/drag_pickup.html b/code/datums/elements/drag_pickup.html new file mode 100644 index 0000000000000..00236a445ec45 --- /dev/null +++ b/code/datums/elements/drag_pickup.html @@ -0,0 +1 @@ +code/datums/elements/drag_pickup.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/drag_pickup.dm

/datum/element/drag_pickupdrag_pickup element; for allowing things to be picked up by dragging.
\ No newline at end of file diff --git a/code/datums/elements/elevation.html b/code/datums/elements/elevation.html new file mode 100644 index 0000000000000..76cfd3d9063c6 --- /dev/null +++ b/code/datums/elements/elevation.html @@ -0,0 +1,2 @@ +code/datums/elements/elevation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/elevation.dm

/datum/element/elevationManages the elevation of the turf the source is on (can be the turf itself) +The atom with the highest pixel_shift gets to set the elevation of the turf to that value.
/datum/element/elevation_coreThe core element attached to the turf itself. Do not use this directly!
\ No newline at end of file diff --git a/code/datums/elements/envenomable_casing.html b/code/datums/elements/envenomable_casing.html new file mode 100644 index 0000000000000..dedae6805996d --- /dev/null +++ b/code/datums/elements/envenomable_casing.html @@ -0,0 +1 @@ +code/datums/elements/envenomable_casing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/envenomable_casing.dm

/datum/element/envenomable_casing
\ No newline at end of file diff --git a/code/datums/elements/eyestab.html b/code/datums/elements/eyestab.html new file mode 100644 index 0000000000000..99fdc1707ff8e --- /dev/null +++ b/code/datums/elements/eyestab.html @@ -0,0 +1 @@ +code/datums/elements/eyestab.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/elements/eyestab.dm

CLUMSY_ATTACK_SELF_CHANCEWhat's the probability a clumsy person stabs themselves in the eyes?
EYESTAB_BLEEDING_THRESHOLDThe damage threshold (of the victim's eyes) after which they start taking more serious effects
EYESTAB_MAX_BLURHow much blur we can apply
/datum/element/eyestabAn element that lets you stab people in the eyes when targeting them

Define Details

CLUMSY_ATTACK_SELF_CHANCE

What's the probability a clumsy person stabs themselves in the eyes?

EYESTAB_BLEEDING_THRESHOLD

The damage threshold (of the victim's eyes) after which they start taking more serious effects

EYESTAB_MAX_BLUR

How much blur we can apply

\ No newline at end of file diff --git a/code/datums/elements/falling_hazard.html b/code/datums/elements/falling_hazard.html new file mode 100644 index 0000000000000..f6c7db9628927 --- /dev/null +++ b/code/datums/elements/falling_hazard.html @@ -0,0 +1 @@ +code/datums/elements/falling_hazard.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/falling_hazard.dm

/datum/element/falling_hazardAn element that will make a target thing do damage to any mob that it falls on from a z-level above
\ No newline at end of file diff --git a/code/datums/elements/firestacker.html b/code/datums/elements/firestacker.html new file mode 100644 index 0000000000000..e0b4eca233099 --- /dev/null +++ b/code/datums/elements/firestacker.html @@ -0,0 +1 @@ +code/datums/elements/firestacker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/firestacker.dm

/datum/element/firestackerCan be applied to /atom/movable subtypes to make them apply fire stacks to things they hit
\ No newline at end of file diff --git a/code/datums/elements/fish_safe_storage.html b/code/datums/elements/fish_safe_storage.html new file mode 100644 index 0000000000000..b85f307e1abd2 --- /dev/null +++ b/code/datums/elements/fish_safe_storage.html @@ -0,0 +1 @@ +code/datums/elements/fish_safe_storage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/fish_safe_storage.dm

/datum/element/fish_safe_storageAn element that puts in stasis any fish that enters the atom.
\ No newline at end of file diff --git a/code/datums/elements/floorloving.html b/code/datums/elements/floorloving.html new file mode 100644 index 0000000000000..2d87755865606 --- /dev/null +++ b/code/datums/elements/floorloving.html @@ -0,0 +1 @@ +code/datums/elements/floorloving.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/floorloving.dm

/datum/element/floor_lovingPrevents a movable atom from moving to somewhere which isn't an open turf with floor on it
\ No newline at end of file diff --git a/code/datums/elements/food/foodlike_drink.html b/code/datums/elements/food/foodlike_drink.html new file mode 100644 index 0000000000000..3b9b0f6a21494 --- /dev/null +++ b/code/datums/elements/food/foodlike_drink.html @@ -0,0 +1 @@ +code/datums/elements/food/foodlike_drink.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/food/foodlike_drink.dm

/datum/element/foodlike_drinkThis element can be attached to a reagent container to make it loop after drinking like a food item
\ No newline at end of file diff --git a/code/datums/elements/food/fried_item.html b/code/datums/elements/food/fried_item.html new file mode 100644 index 0000000000000..524687f7cf476 --- /dev/null +++ b/code/datums/elements/food/fried_item.html @@ -0,0 +1 @@ +code/datums/elements/food/fried_item.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/food/fried_item.dm

/datum/element/fried_itemItems fried through the deep fryer.
\ No newline at end of file diff --git a/code/datums/elements/food/grilled_item.html b/code/datums/elements/food/grilled_item.html new file mode 100644 index 0000000000000..b2cd79ad799ba --- /dev/null +++ b/code/datums/elements/food/grilled_item.html @@ -0,0 +1 @@ +code/datums/elements/food/grilled_item.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/food/grilled_item.dm

/datum/element/grilled_itemItems grilled through the grill.
\ No newline at end of file diff --git a/code/datums/elements/food/microwavable.html b/code/datums/elements/food/microwavable.html new file mode 100644 index 0000000000000..b86c65b11f177 --- /dev/null +++ b/code/datums/elements/food/microwavable.html @@ -0,0 +1 @@ +code/datums/elements/food/microwavable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/food/microwavable.dm

/datum/element/microwavableAtoms that can be microwaved from one type to another.
\ No newline at end of file diff --git a/code/datums/elements/food/venue_price.html b/code/datums/elements/food/venue_price.html new file mode 100644 index 0000000000000..47f5f7fd7fe41 --- /dev/null +++ b/code/datums/elements/food/venue_price.html @@ -0,0 +1 @@ +code/datums/elements/food/venue_price.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/food/venue_price.dm

/datum/element/venue_priceThis component can be used to give something value for venues
\ No newline at end of file diff --git a/code/datums/elements/footstep.html b/code/datums/elements/footstep.html new file mode 100644 index 0000000000000..1aa6b4fd50f01 --- /dev/null +++ b/code/datums/elements/footstep.html @@ -0,0 +1 @@ +code/datums/elements/footstep.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/footstep.dm

/datum/element/footstepFootstep element. Plays footsteps at parents location when it is appropriate.
\ No newline at end of file diff --git a/code/datums/elements/footstep_override.html b/code/datums/elements/footstep_override.html new file mode 100644 index 0000000000000..13d971f26bf9f --- /dev/null +++ b/code/datums/elements/footstep_override.html @@ -0,0 +1 @@ +code/datums/elements/footstep_override.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/footstep_override.dm

/datum/element/footstep_overrideWhen attached, the footstep sound played by the footstep element will be replaced by this one's
\ No newline at end of file diff --git a/code/datums/elements/frozen.html b/code/datums/elements/frozen.html new file mode 100644 index 0000000000000..a02d93f44a536 --- /dev/null +++ b/code/datums/elements/frozen.html @@ -0,0 +1 @@ +code/datums/elements/frozen.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/frozen.dm

/datum/element/frozensimple element to handle frozen obj's
\ No newline at end of file diff --git a/code/datums/elements/gags_recolorable.html b/code/datums/elements/gags_recolorable.html new file mode 100644 index 0000000000000..938c20c98287a --- /dev/null +++ b/code/datums/elements/gags_recolorable.html @@ -0,0 +1 @@ +code/datums/elements/gags_recolorable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/gags_recolorable.dm

/datum/element/gags_recolorableAn element that lets players recolor the item through the greyscale menu with the help of a spraycan.
\ No newline at end of file diff --git a/code/datums/elements/give_turf_traits.html b/code/datums/elements/give_turf_traits.html new file mode 100644 index 0000000000000..18247cb011c4c --- /dev/null +++ b/code/datums/elements/give_turf_traits.html @@ -0,0 +1 @@ +code/datums/elements/give_turf_traits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/give_turf_traits.dm

/datum/element/give_turf_traitsA bespoke element that adds a set of traits to the turf while occupied by at least one attached movabled.
\ No newline at end of file diff --git a/code/datums/elements/glass_pacifist.html b/code/datums/elements/glass_pacifist.html new file mode 100644 index 0000000000000..f5e55049be9f6 --- /dev/null +++ b/code/datums/elements/glass_pacifist.html @@ -0,0 +1 @@ +code/datums/elements/glass_pacifist.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/glass_pacifist.dm

/datum/element/glass_pacifistPrevents the living from attacking windows
\ No newline at end of file diff --git a/code/datums/elements/gravedigger.html b/code/datums/elements/gravedigger.html new file mode 100644 index 0000000000000..9c34d6bb021b9 --- /dev/null +++ b/code/datums/elements/gravedigger.html @@ -0,0 +1 @@ +code/datums/elements/gravedigger.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/gravedigger.dm

/datum/element/gravediggerGravedigger element. Allows for graves to be dug from certain tiles
\ No newline at end of file diff --git a/code/datums/elements/hat_wearer.html b/code/datums/elements/hat_wearer.html new file mode 100644 index 0000000000000..60f365b014f8e --- /dev/null +++ b/code/datums/elements/hat_wearer.html @@ -0,0 +1 @@ +code/datums/elements/hat_wearer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/hat_wearer.dm

/datum/element/hat_wearer
\ No newline at end of file diff --git a/code/datums/elements/haunted.html b/code/datums/elements/haunted.html new file mode 100644 index 0000000000000..f71b680bcf3d7 --- /dev/null +++ b/code/datums/elements/haunted.html @@ -0,0 +1 @@ +code/datums/elements/haunted.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/haunted.dm

/datum/element/hauntedAttaching this element to something will make it float, get a special ai controller, and gives it a spooky outline.
\ No newline at end of file diff --git a/code/datums/elements/high_fiver.html b/code/datums/elements/high_fiver.html new file mode 100644 index 0000000000000..f028427654080 --- /dev/null +++ b/code/datums/elements/high_fiver.html @@ -0,0 +1 @@ +code/datums/elements/high_fiver.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/high_fiver.dm

/datum/element/high_fiverAttach to an item to make it offer a "high five" when offered to people
\ No newline at end of file diff --git a/code/datums/elements/honkspam.html b/code/datums/elements/honkspam.html new file mode 100644 index 0000000000000..c36562bcb600c --- /dev/null +++ b/code/datums/elements/honkspam.html @@ -0,0 +1 @@ +code/datums/elements/honkspam.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/honkspam.dm

/datum/element/honkspamAttachable to items. Plays a bikehorn sound whenever attack_self is called (with a cooldown).
\ No newline at end of file diff --git a/code/datums/elements/hostile_machine.html b/code/datums/elements/hostile_machine.html new file mode 100644 index 0000000000000..7ce22e501b2d0 --- /dev/null +++ b/code/datums/elements/hostile_machine.html @@ -0,0 +1 @@ +code/datums/elements/hostile_machine.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/hostile_machine.dm

/datum/element/hostile_machineAIs will attack this as a potential target if they see it
\ No newline at end of file diff --git a/code/datums/elements/human_biter.html b/code/datums/elements/human_biter.html new file mode 100644 index 0000000000000..0b1d3ae4879be --- /dev/null +++ b/code/datums/elements/human_biter.html @@ -0,0 +1 @@ +code/datums/elements/human_biter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/human_biter.dm

/datum/element/human_biterAllows carbons with heads to attempt to bite mobs if attacking with cuffed hands / missing arms
\ No newline at end of file diff --git a/code/datums/elements/immerse.html b/code/datums/elements/immerse.html new file mode 100644 index 0000000000000..cac386f260eaf --- /dev/null +++ b/code/datums/elements/immerse.html @@ -0,0 +1 @@ +code/datums/elements/immerse.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/immerse.dm

/datum/element/immerseA visual element that makes movables entering the attached turfs look immersed into that turf.
/atom/movable/immerse_overlayThe not-quite-perfect movable used by the immerse element for its nefarious deeds.
\ No newline at end of file diff --git a/code/datums/elements/item_fov.html b/code/datums/elements/item_fov.html new file mode 100644 index 0000000000000..55e7a180bc2aa --- /dev/null +++ b/code/datums/elements/item_fov.html @@ -0,0 +1 @@ +code/datums/elements/item_fov.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/item_fov.dm

/datum/element/item_fovAn element to unconditonally add a FOV trait to the wearer, removing it when an item is unequipped
\ No newline at end of file diff --git a/code/datums/elements/item_scaling.html b/code/datums/elements/item_scaling.html new file mode 100644 index 0000000000000..39c19bfd7b8cb --- /dev/null +++ b/code/datums/elements/item_scaling.html @@ -0,0 +1 @@ +code/datums/elements/item_scaling.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/item_scaling.dm

/datum/element/item_scalingElement for scaling item appearances in the overworld or in inventory/storage.
\ No newline at end of file diff --git a/code/datums/elements/kneecapping.html b/code/datums/elements/kneecapping.html new file mode 100644 index 0000000000000..e84edd54da27c --- /dev/null +++ b/code/datums/elements/kneecapping.html @@ -0,0 +1 @@ +code/datums/elements/kneecapping.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/kneecapping.dm

/datum/element/kneecappingKneecapping element replaces the item's secondary attack with an aimed attack at the kneecaps under certain circumstances.
\ No newline at end of file diff --git a/code/datums/elements/kneejerk.html b/code/datums/elements/kneejerk.html new file mode 100644 index 0000000000000..ddc7c20d99bce --- /dev/null +++ b/code/datums/elements/kneejerk.html @@ -0,0 +1 @@ +code/datums/elements/kneejerk.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/kneejerk.dm

/datum/element/kneejerkAn element which enables certain items to tap people on their knees to measure brain health
\ No newline at end of file diff --git a/code/datums/elements/knockback.html b/code/datums/elements/knockback.html new file mode 100644 index 0000000000000..ff459e5a6ba23 --- /dev/null +++ b/code/datums/elements/knockback.html @@ -0,0 +1,2 @@ +code/datums/elements/knockback.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/knockback.dm

/datum/element/knockbackMobs and items with this element will knock movable targets they hit away from them. +Guns and turrets will instead fire projectiles with similar effects.
\ No newline at end of file diff --git a/code/datums/elements/lazy_fishing_spot.html b/code/datums/elements/lazy_fishing_spot.html new file mode 100644 index 0000000000000..9b2fa1f20b378 --- /dev/null +++ b/code/datums/elements/lazy_fishing_spot.html @@ -0,0 +1,2 @@ +code/datums/elements/lazy_fishing_spot.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/lazy_fishing_spot.dm

/datum/element/lazy_fishing_spotLazy fishing spot element so fisheable turfs do not have a component each since +they're usually pretty common on their respective maps (lava/water/etc)
\ No newline at end of file diff --git a/code/datums/elements/leeching_walk.html b/code/datums/elements/leeching_walk.html new file mode 100644 index 0000000000000..6bf167e70d204 --- /dev/null +++ b/code/datums/elements/leeching_walk.html @@ -0,0 +1 @@ +code/datums/elements/leeching_walk.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/leeching_walk.dm

/datum/element/leeching_walkBuffs and heals the target while standing on rust.
\ No newline at end of file diff --git a/code/datums/elements/lifesteal.html b/code/datums/elements/lifesteal.html new file mode 100644 index 0000000000000..10dce353974b8 --- /dev/null +++ b/code/datums/elements/lifesteal.html @@ -0,0 +1,2 @@ +code/datums/elements/lifesteal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/lifesteal.dm

/datum/element/lifestealHeals the user (if attached to an item) or the mob itself (if attached to a hostile simple mob) +by a flat amount whenever a successful attack is performed against another living mob.
\ No newline at end of file diff --git a/code/datums/elements/light_blocking.html b/code/datums/elements/light_blocking.html new file mode 100644 index 0000000000000..a06be63934243 --- /dev/null +++ b/code/datums/elements/light_blocking.html @@ -0,0 +1 @@ +code/datums/elements/light_blocking.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/light_blocking.dm

/datum/element/light_blockingAttached to movable atoms with opacity. Listens to them move and updates their old and new turf loc's opacity accordingly.
\ No newline at end of file diff --git a/code/datums/elements/light_eaten.html b/code/datums/elements/light_eaten.html new file mode 100644 index 0000000000000..87f261c7e44e1 --- /dev/null +++ b/code/datums/elements/light_eaten.html @@ -0,0 +1 @@ +code/datums/elements/light_eaten.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/light_eaten.dm

/datum/element/light_eatenMakes anything that it attaches to incapable of producing light
\ No newline at end of file diff --git a/code/datums/elements/light_eater.html b/code/datums/elements/light_eater.html new file mode 100644 index 0000000000000..8ea0b794320f1 --- /dev/null +++ b/code/datums/elements/light_eater.html @@ -0,0 +1 @@ +code/datums/elements/light_eater.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/light_eater.dm

/datum/element/light_eaterMakes anything it attaches to capable of permanently removing something's ability to produce light.
\ No newline at end of file diff --git a/code/datums/elements/living_limb_initialiser.html b/code/datums/elements/living_limb_initialiser.html new file mode 100644 index 0000000000000..c30f646fb12c1 --- /dev/null +++ b/code/datums/elements/living_limb_initialiser.html @@ -0,0 +1 @@ +code/datums/elements/living_limb_initialiser.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/living_limb_initialiser.dm

/datum/element/living_limb_initialiserSpawns a living limb mob inside a limb upon attachment if it doesn't have one
\ No newline at end of file diff --git a/code/datums/elements/loomable.html b/code/datums/elements/loomable.html new file mode 100644 index 0000000000000..ef270e3e94229 --- /dev/null +++ b/code/datums/elements/loomable.html @@ -0,0 +1 @@ +code/datums/elements/loomable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/loomable.dm

/datum/element/loomableElement that makes items turn into other items when you use them on a loom (or any other thing really if you change the var)
\ No newline at end of file diff --git a/code/datums/elements/lube_walking.html b/code/datums/elements/lube_walking.html new file mode 100644 index 0000000000000..890f2f4f239c2 --- /dev/null +++ b/code/datums/elements/lube_walking.html @@ -0,0 +1,2 @@ +code/datums/elements/lube_walking.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/lube_walking.dm

/datum/element/lube_walkingMakes a mob cause a turf to get wet as they walk, requires lying down. +Has configurable args for wet flags, time, and resting requirements.
\ No newline at end of file diff --git a/code/datums/elements/mirage_border.html b/code/datums/elements/mirage_border.html new file mode 100644 index 0000000000000..8e023536deae3 --- /dev/null +++ b/code/datums/elements/mirage_border.html @@ -0,0 +1 @@ +code/datums/elements/mirage_border.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/mirage_border.dm

/datum/element/mirage_borderCreates a mirage effect allowing you to see around the world border, by adding the opposite side to its vis_contents.
\ No newline at end of file diff --git a/code/datums/elements/mob_access.html b/code/datums/elements/mob_access.html new file mode 100644 index 0000000000000..1a21eb49abc2a --- /dev/null +++ b/code/datums/elements/mob_access.html @@ -0,0 +1 @@ +code/datums/elements/mob_access.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/mob_access.dm

/datum/element/mob_accesselement given to mobs that have levels of access
\ No newline at end of file diff --git a/code/datums/elements/mob_grabber.html b/code/datums/elements/mob_grabber.html new file mode 100644 index 0000000000000..84e4cfbba170d --- /dev/null +++ b/code/datums/elements/mob_grabber.html @@ -0,0 +1 @@ +code/datums/elements/mob_grabber.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/mob_grabber.dm

/datum/element/mob_grabberGrab onto mobs we attack
\ No newline at end of file diff --git a/code/datums/elements/mob_killed_tally.html b/code/datums/elements/mob_killed_tally.html new file mode 100644 index 0000000000000..3c0bca8145624 --- /dev/null +++ b/code/datums/elements/mob_killed_tally.html @@ -0,0 +1 @@ +code/datums/elements/mob_killed_tally.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/mob_killed_tally.dm

/datum/element/mob_killed_tallyMob Killed Tally; which ticks up a blackbox when the mob dies
\ No newline at end of file diff --git a/code/datums/elements/move_force_on_death.html b/code/datums/elements/move_force_on_death.html new file mode 100644 index 0000000000000..5f9e6ea0645f7 --- /dev/null +++ b/code/datums/elements/move_force_on_death.html @@ -0,0 +1 @@ +code/datums/elements/move_force_on_death.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/move_force_on_death.dm

/datum/element/change_force_on_deathElement to change a mob's move forces on death and reset them on living
\ No newline at end of file diff --git a/code/datums/elements/movement_turf_changer.html b/code/datums/elements/movement_turf_changer.html new file mode 100644 index 0000000000000..50e6754c27b34 --- /dev/null +++ b/code/datums/elements/movement_turf_changer.html @@ -0,0 +1 @@ +code/datums/elements/movement_turf_changer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/movement_turf_changer.dm

/datum/element/movement_turf_changermovement_turf_changer element; which makes the movement of a movable atom change the turf it moved to
\ No newline at end of file diff --git a/code/datums/elements/movetype_handler.html b/code/datums/elements/movetype_handler.html new file mode 100644 index 0000000000000..3c518e1b0f5fd --- /dev/null +++ b/code/datums/elements/movetype_handler.html @@ -0,0 +1,4 @@ +code/datums/elements/movetype_handler.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/movetype_handler.dm

/datum/element/movetype_handlerAn element that enables and disables movetype bitflags whenever the relative traits are added or removed. +It also handles the +2/-2 pixel y anim loop typical of mobs possessing the FLYING or FLOATING movetypes. +This element is necessary for the TRAIT_MOVE_ traits to work correctly, so make sure to attach this element +before adding them to non-living movables.
\ No newline at end of file diff --git a/code/datums/elements/nerfed_pulling.html b/code/datums/elements/nerfed_pulling.html new file mode 100644 index 0000000000000..c73fc44e35fc2 --- /dev/null +++ b/code/datums/elements/nerfed_pulling.html @@ -0,0 +1 @@ +code/datums/elements/nerfed_pulling.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/nerfed_pulling.dm

/datum/element/nerfed_pullingThis living will be slower when pulling/moving anything in the given typecache
\ No newline at end of file diff --git a/code/datums/elements/no_crit_hitting.html b/code/datums/elements/no_crit_hitting.html new file mode 100644 index 0000000000000..f3ed25aebd5fd --- /dev/null +++ b/code/datums/elements/no_crit_hitting.html @@ -0,0 +1 @@ +code/datums/elements/no_crit_hitting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/no_crit_hitting.dm

/datum/element/no_crit_hittingStops a mob from hitting someone in crit. doesn't account for projectiles or spells
\ No newline at end of file diff --git a/code/datums/elements/noticable_organ.html b/code/datums/elements/noticable_organ.html new file mode 100644 index 0000000000000..0e2618a84a265 --- /dev/null +++ b/code/datums/elements/noticable_organ.html @@ -0,0 +1 @@ +code/datums/elements/noticable_organ.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/noticable_organ.dm

/datum/element/noticable_organnoticable organ element; which makes organs have a special description added to the person with the organ, if certain body zones aren't covered.
/datum/element/noticable_organ/ai_controlSubtype of noticable organs for AI control, that will make a few more ai status checks before forking over the examine.
\ No newline at end of file diff --git a/code/datums/elements/obj_regen.html b/code/datums/elements/obj_regen.html new file mode 100644 index 0000000000000..60ea99832f938 --- /dev/null +++ b/code/datums/elements/obj_regen.html @@ -0,0 +1 @@ +code/datums/elements/obj_regen.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/obj_regen.dm

/datum/element/obj_regenObject integrity regeneration element added by alien alloy.
\ No newline at end of file diff --git a/code/datums/elements/on_hit_effect.html b/code/datums/elements/on_hit_effect.html new file mode 100644 index 0000000000000..03787ab6562d7 --- /dev/null +++ b/code/datums/elements/on_hit_effect.html @@ -0,0 +1 @@ +code/datums/elements/on_hit_effect.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/on_hit_effect.dm

/datum/element/on_hit_effect
\ No newline at end of file diff --git a/code/datums/elements/only_pull_living.html b/code/datums/elements/only_pull_living.html new file mode 100644 index 0000000000000..500b5d0336d04 --- /dev/null +++ b/code/datums/elements/only_pull_living.html @@ -0,0 +1 @@ +code/datums/elements/only_pull_living.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/only_pull_living.dm

/datum/element/only_pull_livingElement for only letting a living pull other livings
\ No newline at end of file diff --git a/code/datums/elements/openspace_item_click_handler.html b/code/datums/elements/openspace_item_click_handler.html new file mode 100644 index 0000000000000..5e98e6db89554 --- /dev/null +++ b/code/datums/elements/openspace_item_click_handler.html @@ -0,0 +1,2 @@ +code/datums/elements/openspace_item_click_handler.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/openspace_item_click_handler.dm

/datum/element/openspace_item_click_handlerallow players to easily use items such as iron rods, rcds on open space without +having to pixelhunt for portions not occupied by object or mob visuals.
\ No newline at end of file diff --git a/code/datums/elements/organ_set_bonus.html b/code/datums/elements/organ_set_bonus.html new file mode 100644 index 0000000000000..6ce564f83d4e6 --- /dev/null +++ b/code/datums/elements/organ_set_bonus.html @@ -0,0 +1 @@ +code/datums/elements/organ_set_bonus.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/organ_set_bonus.dm

/datum/element/organ_set_bonusorgan set bonus element; which makes organs in the same set, all in one person, provide a unique bonus!
\ No newline at end of file diff --git a/code/datums/elements/permanent_fire_overlay.html b/code/datums/elements/permanent_fire_overlay.html new file mode 100644 index 0000000000000..bfa8cac976f4c --- /dev/null +++ b/code/datums/elements/permanent_fire_overlay.html @@ -0,0 +1 @@ +code/datums/elements/permanent_fire_overlay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/permanent_fire_overlay.dm

/datum/element/perma_fire_overlayWhen applied to a mob, they will always have a fire overlay regardless of if they are actually on fire.
\ No newline at end of file diff --git a/code/datums/elements/pet_bonus.html b/code/datums/elements/pet_bonus.html new file mode 100644 index 0000000000000..94fc528167500 --- /dev/null +++ b/code/datums/elements/pet_bonus.html @@ -0,0 +1,2 @@ +code/datums/elements/pet_bonus.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/pet_bonus.dm

/datum/element/pet_bonusBespoke element that plays a fun message, sends a heart out, and gives a stronger mood bonus when you pet this animal. +I may have been able to make this work for carbons, but it would have been interjecting on some help mode interactions anyways.
\ No newline at end of file diff --git a/code/datums/elements/plant_backfire.html b/code/datums/elements/plant_backfire.html new file mode 100644 index 0000000000000..cfe88ced4fdcd --- /dev/null +++ b/code/datums/elements/plant_backfire.html @@ -0,0 +1,4 @@ +code/datums/elements/plant_backfire.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/plant_backfire.dm

/datum/element/plant_backfire-- Plant backfire element -- +Certain high-danger plants, like death-nettles, will backfire and harm the holder if they're not properly protected. +If a user is protected with something like leather gloves, they can handle them normally. +If they're not protected properly, we invoke a callback on the user, harming or inconveniencing them.
\ No newline at end of file diff --git a/code/datums/elements/point_of_interest.html b/code/datums/elements/point_of_interest.html new file mode 100644 index 0000000000000..724b181481ffe --- /dev/null +++ b/code/datums/elements/point_of_interest.html @@ -0,0 +1 @@ +code/datums/elements/point_of_interest.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/point_of_interest.dm

/datum/element/point_of_interestDesignates the atom as a "point of interest", meaning it can be directly orbited
\ No newline at end of file diff --git a/code/datums/elements/poster_tearer.html b/code/datums/elements/poster_tearer.html new file mode 100644 index 0000000000000..4f02df8b1731f --- /dev/null +++ b/code/datums/elements/poster_tearer.html @@ -0,0 +1 @@ +code/datums/elements/poster_tearer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/poster_tearer.dm

/datum/element/poster_tearerAllows mobs with this element attached to just simply tear down any poster they desire to.
\ No newline at end of file diff --git a/code/datums/elements/prevent_attacking_of_types.html b/code/datums/elements/prevent_attacking_of_types.html new file mode 100644 index 0000000000000..e9ad1aa02c220 --- /dev/null +++ b/code/datums/elements/prevent_attacking_of_types.html @@ -0,0 +1,2 @@ +code/datums/elements/prevent_attacking_of_types.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/prevent_attacking_of_types.dm

/datum/element/prevent_attacking_of_typesThis hostile will not be able to attack a given typecache, and will receive +a balloon alert when it tries to.
\ No newline at end of file diff --git a/code/datums/elements/proficient_miner.html b/code/datums/elements/proficient_miner.html new file mode 100644 index 0000000000000..90e7428158105 --- /dev/null +++ b/code/datums/elements/proficient_miner.html @@ -0,0 +1 @@ +code/datums/elements/proficient_miner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/proficient_miner.dm

/datum/element/proficient_minerelement given to mobs that can mine when moving
\ No newline at end of file diff --git a/code/datums/elements/projectile_drop.html b/code/datums/elements/projectile_drop.html new file mode 100644 index 0000000000000..3dec54d98ec0a --- /dev/null +++ b/code/datums/elements/projectile_drop.html @@ -0,0 +1,3 @@ +code/datums/elements/projectile_drop.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/projectile_drop.dm

/datum/element/projectile_dropA simple element that spawns an atom when the bullet hits an object or reaches the end of its range +If the projectile has embedding and it can embed into the target, then it won't spawn the drop, +since embedding the embed element already handles that.
\ No newline at end of file diff --git a/code/datums/elements/quality_food_ingredient.html b/code/datums/elements/quality_food_ingredient.html new file mode 100644 index 0000000000000..11d22866774c8 --- /dev/null +++ b/code/datums/elements/quality_food_ingredient.html @@ -0,0 +1 @@ +code/datums/elements/quality_food_ingredient.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/quality_food_ingredient.dm

/datum/element/quality_food_ingredientAn element that adds extra food quality to any edible that was made from an atom with this attached.
\ No newline at end of file diff --git a/code/datums/elements/radiation_protected_clothing.html b/code/datums/elements/radiation_protected_clothing.html new file mode 100644 index 0000000000000..5f844d312a64f --- /dev/null +++ b/code/datums/elements/radiation_protected_clothing.html @@ -0,0 +1,3 @@ +code/datums/elements/radiation_protected_clothing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/radiation_protected_clothing.dm

/datum/element/radiation_protected_clothingMarks the item as being radiation protected. +Adds the TRAIT_RADIATION_PROTECTED_CLOTHING trait, as well as adding an +extra bit to the examine descrpition.
\ No newline at end of file diff --git a/code/datums/elements/radioactive.html b/code/datums/elements/radioactive.html new file mode 100644 index 0000000000000..90e27b9f8c551 --- /dev/null +++ b/code/datums/elements/radioactive.html @@ -0,0 +1 @@ +code/datums/elements/radioactive.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/radioactive.dm

/datum/element/radioactiveThis atom will regularly pulse radiation.
\ No newline at end of file diff --git a/code/datums/elements/ranged_armour.html b/code/datums/elements/ranged_armour.html new file mode 100644 index 0000000000000..86059b7d73a92 --- /dev/null +++ b/code/datums/elements/ranged_armour.html @@ -0,0 +1 @@ +code/datums/elements/ranged_armour.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/ranged_armour.dm

/datum/element/ranged_armourReduces or nullifies damage from ranged weaponry with force below a certain value
\ No newline at end of file diff --git a/code/datums/elements/relay_attackers.html b/code/datums/elements/relay_attackers.html new file mode 100644 index 0000000000000..c6b25869421bf --- /dev/null +++ b/code/datums/elements/relay_attackers.html @@ -0,0 +1,3 @@ +code/datums/elements/relay_attackers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/relay_attackers.dm

/datum/element/relay_attackersThis element registers to a shitload of signals which can signify "someone attacked me". +If anyone does it sends a single "someone attacked me" signal containing details about who done it. +This prevents other components and elements from having to register to the same list of a million signals, should be more maintainable in one place.
\ No newline at end of file diff --git a/code/datums/elements/ridable.html b/code/datums/elements/ridable.html new file mode 100644 index 0000000000000..ee0a4583baa12 --- /dev/null +++ b/code/datums/elements/ridable.html @@ -0,0 +1,2 @@ +code/datums/elements/ridable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/ridable.dm

/datum/element/ridableThis element is used to indicate that a movable atom can be mounted by mobs in order to ride it. The movable is considered mounted when a mob is buckled to it, +at which point a riding component is created on the movable, and that component handles the actual riding behavior.
\ No newline at end of file diff --git a/code/datums/elements/rust.html b/code/datums/elements/rust.html new file mode 100644 index 0000000000000..4d18d0237dcc0 --- /dev/null +++ b/code/datums/elements/rust.html @@ -0,0 +1,2 @@ +code/datums/elements/rust.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/rust.dm

/datum/element/rustAdding this element to an atom will have it automatically render an overlay. +The overlay can be specified in new as the first paramter; if not set it defaults to rust_overlay's rust_default
/datum/element/rust/hereticFor rust applied by heretics
\ No newline at end of file diff --git a/code/datums/elements/screentips.html b/code/datums/elements/screentips.html new file mode 100644 index 0000000000000..aedbf58081a11 --- /dev/null +++ b/code/datums/elements/screentips.html @@ -0,0 +1,91 @@ +code/datums/elements/screentips/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Contextual screentips (and when to not use this folder)

Contextual screentips provide information in the form of text at the top of your screen to inform you of the possibilities of an item. The "contextual" here refers to this being handled entirely through code, what it displays and when is completely up to you.

+

The elements (and this folder)

+

This folder provides several useful shortcuts to be able to handle 95% of situations.

+

/datum/element/contextual_screentip_bare_hands

+

This element is used to display screentips when the user hovers over the object with nothing in their active hand.

+

It takes parameters in the form of both non-combat mode and, optionally, combat mode.

+

Example:

+
/obj/machinery/firealarm/Initialize(mapload)
+	. = ..()
+
+	AddElement( \
+		/datum/element/contextual_screentip_bare_hands, \
+		lmb_text = "Turn on", \
+		rmb_text = "Turn off", \
+	)
+
+

This will display "LMB: Turn on | RMB: Turn off" when the user hovers over a fire alarm with an empty active hand.

+

/datum/element/contextual_screentip_tools

+

This element takes a map of tool behaviors to context lists. These will be displayed when the user hovers over the object with an item that has the tool behavior.

+

Example:

+
/obj/structure/table/Initialize(mapload)
+	var/static/list/tool_behaviors = list(
+		TOOL_SCREWDRIVER = list(
+			SCREENTIP_CONTEXT_RMB = "Disassemble",
+		),
+
+		TOOL_WRENCH = list(
+			SCREENTIP_CONTEXT_RMB = "Deconstruct",
+		),
+	)
+
+	AddElement(/datum/element/contextual_screentip_tools, tool_behaviors)
+
+

This will display "RMB: Deconstruct" when the user hovers over a table with a wrench.

+

/datum/element/contextual_screentip_item_typechecks

+

This element takes a map of item typepaths to context lists. These will be displayed when the user hovers over the object with the selected item.

+

Example:

+
/obj/item/restraints/handcuffs/cable/Initialize(mapload)
+	. = ..()
+
+	var/static/list/hovering_item_typechecks = list(
+		/obj/item/stack/rods = list(
+			SCREENTIP_CONTEXT_LMB = "Craft wired rod",
+		),
+
+		/obj/item/stack/sheet/iron = list(
+			SCREENTIP_CONTEXT_LMB = "Craft bola",
+		),
+	)
+
+	AddElement(/datum/element/contextual_screentip_item_typechecks, hovering_item_typechecks)
+
+

This will display "LMB: Craft bola" when the user hovers over cable restraints with metal in their hand.

+

The basic system (and when to not use this folder)

+

The basic system acknowledges the following two interactions:

+

Self-defining items (Type A)

+

These are items that are defined by their behavior. These should define their contextual text within themselves, and not in their targets.

+
    +
  • Stun batons (LMB to stun, RMB to harm)
  • +
  • Syringes (LMB to inject, RMB to draw)
  • +
  • Health analyzers (LMB to scan for health/wounds [another piece of context], RMB to scans for chemicals)
  • +
+

Receiving action defining objects (Type B)

+

These are objects (not necessarily items) that are defined by what happens to them. These should define their contextual text within themselves, and not in their operating tools.

+
    +
  • Tables (RMB with wrench to deconstruct)
  • +
  • Construction objects (LMB with glass to put in screen for computers)
  • +
  • Carbon copies (RMB to take a copy)
  • +
+
+

Both of these are supported, and can be hooked to through several means.

+

Note that you must return CONTEXTUAL_SCREENTIP_SET if you change the contextual screentip at all, otherwise you may not see it.

+

COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET

+

This signal is registered on items, and receives the hovering object, provided in the form of obj/item/source, list/context, atom/target, mob/living/user.

+

/atom/proc/register_item_context(), and /atom/proc/add_item_context()

+

/atom/proc/add_item_context() is a proc intended to be overridden to easily create Type-B interactions (ones where atoms are hovered over by items). It receives the exact same arguments as COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET: obj/item/source, list/context, atom/target, mob/living/user.

+

In order for your add_item_context() method to be run, you must call register_item_context().

+

COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM

+

This signal is registered on atoms, and receives what the user is hovering with, provided in the form of atom/source, list/context, obj/item/held_item, mob/living/user.

+

/atom/proc/register_context(), and /atom/proc/add_context()

+

/atom/proc/add_context() is a proc intended to be overridden to easily create Type-B interactions (ones where atoms are hovered over by items). It receives the exact same arguments as COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM: atom/source, list/context, obj/item/held_item, mob/living/user.

+

In order for your add_context() method to be run, you must call register_context().

+
+

When using any of these methods, you will receive a mutable context list.

+

Context lists

+

Context lists are lists with keys mapping from SCREENTIP_CONTEXT_* to a string. You can find these keys in code/__DEFINES/screentips.dm.

+

The signals and add_context() variants mutate the list directly, while shortcut elements will just have you pass them in directly.

+

For example:

+
context[SCREENTIP_CONTEXT_LMB] = "Open"
+context[SCREENTIP_CONTEXT_RMB] = "Destroy"
+
\ No newline at end of file diff --git a/code/datums/elements/screentips/contextual_screentip_bare_hands.html b/code/datums/elements/screentips/contextual_screentip_bare_hands.html new file mode 100644 index 0000000000000..534065cbcb40f --- /dev/null +++ b/code/datums/elements/screentips/contextual_screentip_bare_hands.html @@ -0,0 +1,3 @@ +code/datums/elements/screentips/contextual_screentip_bare_hands.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/screentips/contextual_screentip_bare_hands.dm

/datum/element/contextual_screentip_bare_handsApply basic contextual screentips when the user hovers over this item with an empty hand. +A "Type B" interaction. +This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
\ No newline at end of file diff --git a/code/datums/elements/screentips/contextual_screentip_item_typechecks.html b/code/datums/elements/screentips/contextual_screentip_item_typechecks.html new file mode 100644 index 0000000000000..77f1379fc9a2c --- /dev/null +++ b/code/datums/elements/screentips/contextual_screentip_item_typechecks.html @@ -0,0 +1,3 @@ +code/datums/elements/screentips/contextual_screentip_item_typechecks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/screentips/contextual_screentip_item_typechecks.dm

/datum/element/contextual_screentip_item_typechecksApply basic contextual screentips when the user hovers over this item with a provided item. +A "Type B" interaction. +This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
\ No newline at end of file diff --git a/code/datums/elements/screentips/contextual_screentip_mob_typechecks.html b/code/datums/elements/screentips/contextual_screentip_mob_typechecks.html new file mode 100644 index 0000000000000..1abdc8bc4bb74 --- /dev/null +++ b/code/datums/elements/screentips/contextual_screentip_mob_typechecks.html @@ -0,0 +1,3 @@ +code/datums/elements/screentips/contextual_screentip_mob_typechecks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/screentips/contextual_screentip_mob_typechecks.dm

/datum/element/contextual_screentip_mob_typechecksApply basic contextual screentips when a user of a specific typepath hovers over us. +A "Type B" interaction. +This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
\ No newline at end of file diff --git a/code/datums/elements/screentips/contextual_screentip_sharpness.html b/code/datums/elements/screentips/contextual_screentip_sharpness.html new file mode 100644 index 0000000000000..d134d67d56180 --- /dev/null +++ b/code/datums/elements/screentips/contextual_screentip_sharpness.html @@ -0,0 +1,3 @@ +code/datums/elements/screentips/contextual_screentip_sharpness.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/screentips/contextual_screentip_sharpness.dm

/datum/element/contextual_screentip_sharpnessApply basic contextual screentips when the user hovers over this item with an item of the given tool behavior. +A "Type B" interaction. +This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
\ No newline at end of file diff --git a/code/datums/elements/screentips/contextual_screentip_tools.html b/code/datums/elements/screentips/contextual_screentip_tools.html new file mode 100644 index 0000000000000..b68f811da4110 --- /dev/null +++ b/code/datums/elements/screentips/contextual_screentip_tools.html @@ -0,0 +1,3 @@ +code/datums/elements/screentips/contextual_screentip_tools.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/screentips/contextual_screentip_tools.dm

/datum/element/contextual_screentip_toolsApply basic contextual screentips when the user hovers over this item with an item of the given tool behavior. +A "Type B" interaction. +This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
\ No newline at end of file diff --git a/code/datums/elements/series.html b/code/datums/elements/series.html new file mode 100644 index 0000000000000..dbdc3e449ea11 --- /dev/null +++ b/code/datums/elements/series.html @@ -0,0 +1 @@ +code/datums/elements/series.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/series.dm

/datum/element/series
\ No newline at end of file diff --git a/code/datums/elements/sideway_movement.html b/code/datums/elements/sideway_movement.html new file mode 100644 index 0000000000000..fc5f7b2440788 --- /dev/null +++ b/code/datums/elements/sideway_movement.html @@ -0,0 +1 @@ +code/datums/elements/sideway_movement.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/sideway_movement.dm

/datum/element/sideway_movementA simple element that forces the mob to face a perpendicular direction when moving, like crabs.
\ No newline at end of file diff --git a/code/datums/elements/simple_flying.html b/code/datums/elements/simple_flying.html new file mode 100644 index 0000000000000..ed124651e60f6 --- /dev/null +++ b/code/datums/elements/simple_flying.html @@ -0,0 +1,2 @@ +code/datums/elements/simple_flying.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/simple_flying.dm

/datum/element/simple_flyingNon bespoke element (1 in existence) that makes animals fly while living and... not while dead! +Note: works for carbons and above, but please do something better. humans have wings got dangit!
\ No newline at end of file diff --git a/code/datums/elements/skill_reward.html b/code/datums/elements/skill_reward.html new file mode 100644 index 0000000000000..0fe5228cffb9a --- /dev/null +++ b/code/datums/elements/skill_reward.html @@ -0,0 +1,2 @@ +code/datums/elements/skill_reward.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/skill_reward.dm

/datum/element/skill_rewardAn element that forbids mobs without a required skill level from equipping the item.
/datum/element/skill_reward/veteranWelp, the code is pretty much the same, except for one tiny detail, I suppose it's ok to make a subtype of this element. +That tiny detail is that we don't check for skills, but if the player has played for thousands of hours.
\ No newline at end of file diff --git a/code/datums/elements/slapcrafting.html b/code/datums/elements/slapcrafting.html new file mode 100644 index 0000000000000..a4a8c45daea09 --- /dev/null +++ b/code/datums/elements/slapcrafting.html @@ -0,0 +1 @@ +code/datums/elements/slapcrafting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/slapcrafting.dm

/datum/element/slapcraftingSlapcrafting component!
\ No newline at end of file diff --git a/code/datums/elements/soft_landing.html b/code/datums/elements/soft_landing.html new file mode 100644 index 0000000000000..97583fd147387 --- /dev/null +++ b/code/datums/elements/soft_landing.html @@ -0,0 +1 @@ +code/datums/elements/soft_landing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/soft_landing.dm

/datum/element/soft_landing
\ No newline at end of file diff --git a/code/datums/elements/squish.html b/code/datums/elements/squish.html new file mode 100644 index 0000000000000..13bb158edc842 --- /dev/null +++ b/code/datums/elements/squish.html @@ -0,0 +1 @@ +code/datums/elements/squish.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/squish.dm

/datum/element/squishsquish.dm
\ No newline at end of file diff --git a/code/datums/elements/squish_sound.html b/code/datums/elements/squish_sound.html new file mode 100644 index 0000000000000..b38c310b85c3a --- /dev/null +++ b/code/datums/elements/squish_sound.html @@ -0,0 +1 @@ +code/datums/elements/squish_sound.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/squish_sound.dm

/datum/element/squish_soundPlays a sound when walked into, lower sounding if the person walking into it has light stepping.
\ No newline at end of file diff --git a/code/datums/elements/strippable.html b/code/datums/elements/strippable.html new file mode 100644 index 0000000000000..793648c80aa1e --- /dev/null +++ b/code/datums/elements/strippable.html @@ -0,0 +1 @@ +code/datums/elements/strippable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/strippable.dm

/datum/element/strippableAn element for atoms that, when dragged and dropped onto a mob, opens a strip panel.
/datum/strippable_itemA representation of an item that can be stripped down
/datum/strippable_item/mob_item_slotA preset for equipping items onto mob slots
/proc/finish_equip_mobA utility function for /datum/strippable_items to finish equipping an item to a mob.
/proc/start_unequip_mobA utility function for /datum/strippable_items to start unequipping an item from a mob.
/proc/finish_unequip_mobA utility function for /datum/strippable_items to finish unequipping an item from a mob.
/datum/strip_menuA representation of the stripping UI
/proc/create_strippable_listCreates an assoc list of keys to /datum/strippable_item
\ No newline at end of file diff --git a/code/datums/elements/structure_repair.html b/code/datums/elements/structure_repair.html new file mode 100644 index 0000000000000..8517b3b99b8df --- /dev/null +++ b/code/datums/elements/structure_repair.html @@ -0,0 +1 @@ +code/datums/elements/structure_repair.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/structure_repair.dm

/datum/element/structure_repairIntercepts attacks from mobs with this component to instead repair specified structures.
\ No newline at end of file diff --git a/code/datums/elements/swabbable.html b/code/datums/elements/swabbable.html new file mode 100644 index 0000000000000..3121f836de204 --- /dev/null +++ b/code/datums/elements/swabbable.html @@ -0,0 +1 @@ +code/datums/elements/swabbable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/swabbable.dm

This element is used in vat growing to allow for the object to be

\ No newline at end of file diff --git a/code/datums/elements/temporary_atom.html b/code/datums/elements/temporary_atom.html new file mode 100644 index 0000000000000..38b30f6b8e806 --- /dev/null +++ b/code/datums/elements/temporary_atom.html @@ -0,0 +1 @@ +code/datums/elements/temporary_atom.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/temporary_atom.dm

/datum/element/temporary_atomDeletes the atom with a little fading out animation after a specified time
\ No newline at end of file diff --git a/code/datums/elements/tenacious.html b/code/datums/elements/tenacious.html new file mode 100644 index 0000000000000..49b7ab900f5dd --- /dev/null +++ b/code/datums/elements/tenacious.html @@ -0,0 +1 @@ +code/datums/elements/tenacious.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/tenacious.dm

/datum/element/tenacioustenacious element; which makes the parent move faster while crawling
\ No newline at end of file diff --git a/code/datums/elements/tiny_mob_hunter.html b/code/datums/elements/tiny_mob_hunter.html new file mode 100644 index 0000000000000..f02598471dee0 --- /dev/null +++ b/code/datums/elements/tiny_mob_hunter.html @@ -0,0 +1 @@ +code/datums/elements/tiny_mob_hunter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/tiny_mob_hunter.dm

/datum/element/tiny_mob_hunterDeals bonus brute damage to smaller mobs
\ No newline at end of file diff --git a/code/datums/elements/tool_flash.html b/code/datums/elements/tool_flash.html new file mode 100644 index 0000000000000..80a30ee7dd723 --- /dev/null +++ b/code/datums/elements/tool_flash.html @@ -0,0 +1 @@ +code/datums/elements/tool_flash.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/tool_flash.dm

/datum/element/tool_flashTool flash bespoke element
\ No newline at end of file diff --git a/code/datums/elements/tool_renaming.html b/code/datums/elements/tool_renaming.html new file mode 100644 index 0000000000000..f842812aab36d --- /dev/null +++ b/code/datums/elements/tool_renaming.html @@ -0,0 +1 @@ +code/datums/elements/tool_renaming.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/tool_renaming.dm

/datum/element/tool_renamingRenaming tool element
\ No newline at end of file diff --git a/code/datums/elements/toy_talk.html b/code/datums/elements/toy_talk.html new file mode 100644 index 0000000000000..48bf5f85262dd --- /dev/null +++ b/code/datums/elements/toy_talk.html @@ -0,0 +1 @@ +code/datums/elements/toy_talk.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/toy_talk.dm

/datum/element/toy_talkAllows people to talk via the item with .l or .r
\ No newline at end of file diff --git a/code/datums/elements/turf_transparency.html b/code/datums/elements/turf_transparency.html new file mode 100644 index 0000000000000..0af1301a07237 --- /dev/null +++ b/code/datums/elements/turf_transparency.html @@ -0,0 +1,3 @@ +code/datums/elements/turf_transparency.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/turf_transparency.dm

/proc/request_z_pillarReturns a z pillar to insert turfs into
/obj/effect/abstract/z_holderExists to be placed on the turf of walls and such to hold the vis_contents of the tile below +Otherwise the lower turf might get shifted around, which is dumb. do this instead.
/datum/z_pillarGrouping datum that manages transparency for a block of space +Setup to ease debugging, and to make add/remove operations cheaper
\ No newline at end of file diff --git a/code/datums/elements/undertile.html b/code/datums/elements/undertile.html new file mode 100644 index 0000000000000..db725a86b1b60 --- /dev/null +++ b/code/datums/elements/undertile.html @@ -0,0 +1 @@ +code/datums/elements/undertile.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/elements/undertile.dm

ALPHA_UNDERTILEThe alpha we give to stuff under tiles, if they want it
/datum/element/undertileAdd to an object if you want to be able to be hidden under tiles

Define Details

ALPHA_UNDERTILE

The alpha we give to stuff under tiles, if they want it

\ No newline at end of file diff --git a/code/datums/elements/unfriend_attacker.html b/code/datums/elements/unfriend_attacker.html new file mode 100644 index 0000000000000..e220ed4da0a54 --- /dev/null +++ b/code/datums/elements/unfriend_attacker.html @@ -0,0 +1,2 @@ +code/datums/elements/unfriend_attacker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/unfriend_attacker.dm

/datum/element/unfriend_attackerElement which makes a mob remove you from its friends list you if you hurt it. +Doesn't make a callout post because we don't have twitter integration.
\ No newline at end of file diff --git a/code/datums/elements/update_icon_blocker.html b/code/datums/elements/update_icon_blocker.html new file mode 100644 index 0000000000000..a03195ac37ad4 --- /dev/null +++ b/code/datums/elements/update_icon_blocker.html @@ -0,0 +1 @@ +code/datums/elements/update_icon_blocker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/update_icon_blocker.dm

/datum/element/update_icon_blockerPrevents calling anything in update_icon() like update_icon_state() or update_overlays()
\ No newline at end of file diff --git a/code/datums/elements/uplink_reimburse.html b/code/datums/elements/uplink_reimburse.html new file mode 100644 index 0000000000000..93ae582164425 --- /dev/null +++ b/code/datums/elements/uplink_reimburse.html @@ -0,0 +1,2 @@ +code/datums/elements/uplink_reimburse.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/uplink_reimburse.dm

/datum/element/uplink_reimburseUplink Reimburse element. +When element is applied onto items, it allows them to be reimbursed if an user pokes an item with a uplink component with them.
\ No newline at end of file diff --git a/code/datums/elements/venomous.html b/code/datums/elements/venomous.html new file mode 100644 index 0000000000000..b14fe3fd70ce8 --- /dev/null +++ b/code/datums/elements/venomous.html @@ -0,0 +1 @@ +code/datums/elements/venomous.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/venomous.dm

/datum/element/venomousVenomous element; which makes the attacks of the simplemob attached poison the enemy.
\ No newline at end of file diff --git a/code/datums/elements/volatile_gas_storage.html b/code/datums/elements/volatile_gas_storage.html new file mode 100644 index 0000000000000..c98fa073478d5 --- /dev/null +++ b/code/datums/elements/volatile_gas_storage.html @@ -0,0 +1 @@ +code/datums/elements/volatile_gas_storage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/volatile_gas_storage.dm

/datum/element/volatile_gas_storageAn element to make an /obj explode based on gas pressure when broken
\ No newline at end of file diff --git a/code/datums/elements/wall_engraver.html b/code/datums/elements/wall_engraver.html new file mode 100644 index 0000000000000..429a82e504bc8 --- /dev/null +++ b/code/datums/elements/wall_engraver.html @@ -0,0 +1 @@ +code/datums/elements/wall_engraver.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/wall_engraver.dm

/datum/element/wall_engraverAn element that lets you engrave walls when right click is used
\ No newline at end of file diff --git a/code/datums/elements/wall_smasher.html b/code/datums/elements/wall_smasher.html new file mode 100644 index 0000000000000..410d436c687b4 --- /dev/null +++ b/code/datums/elements/wall_smasher.html @@ -0,0 +1,2 @@ +code/datums/elements/wall_smasher.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/wall_smasher.dm

/datum/element/wall_smasherAn element you put on mobs to let their attacks break walls +If put in the hands of a player this can cause a lot of problems, be careful
\ No newline at end of file diff --git a/code/datums/elements/wall_tearer.html b/code/datums/elements/wall_tearer.html new file mode 100644 index 0000000000000..e9829b442f1f5 --- /dev/null +++ b/code/datums/elements/wall_tearer.html @@ -0,0 +1 @@ +code/datums/elements/wall_tearer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/elements/wall_tearer.dm

WALL_TEAR_ALLOWEDReturned if we can rip up this target
WALL_TEAR_INVALIDReturned if we can't rip up this target
WALL_TEAR_FAIL_CANCEL_CHAINReturned if we can't rip up the target but still don't want to attack it
/datum/element/wall_tearerAllows attached mobs to destroy walls over time, a little less unreasonable than the instant wall deletion of wall_smasher

Define Details

WALL_TEAR_ALLOWED

Returned if we can rip up this target

WALL_TEAR_FAIL_CANCEL_CHAIN

Returned if we can't rip up the target but still don't want to attack it

WALL_TEAR_INVALID

Returned if we can't rip up this target

\ No newline at end of file diff --git a/code/datums/elements/wall_walker.html b/code/datums/elements/wall_walker.html new file mode 100644 index 0000000000000..34ffc872281c5 --- /dev/null +++ b/code/datums/elements/wall_walker.html @@ -0,0 +1 @@ +code/datums/elements/wall_walker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/wall_walker.dm

/datum/element/wall_walkerThis element will allow the mob it's attached to to pass through a specified type of wall, and drag anything through it.
\ No newline at end of file diff --git a/code/datums/elements/weapon_description.html b/code/datums/elements/weapon_description.html new file mode 100644 index 0000000000000..46282c232b6f5 --- /dev/null +++ b/code/datums/elements/weapon_description.html @@ -0,0 +1,2 @@ +code/datums/elements/weapon_description.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/weapon_description.dm

/datum/element/weapon_descriptionThe purpose of this element is to widely provide the ability to examine an object and determine its stats, with the ability to add +additional notes or information based on type or other factors
\ No newline at end of file diff --git a/code/datums/elements/wearable_client_colour.html b/code/datums/elements/wearable_client_colour.html new file mode 100644 index 0000000000000..0d0eeac1d46f9 --- /dev/null +++ b/code/datums/elements/wearable_client_colour.html @@ -0,0 +1 @@ +code/datums/elements/wearable_client_colour.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/wearable_client_colour.dm

/datum/element/wearable_client_colourAn element that adds a client colour to the wearer when equipped to the right slot, under the right conditions.
\ No newline at end of file diff --git a/code/datums/elements/weather_listener.html b/code/datums/elements/weather_listener.html new file mode 100644 index 0000000000000..e99d44e55e6f6 --- /dev/null +++ b/code/datums/elements/weather_listener.html @@ -0,0 +1 @@ +code/datums/elements/weather_listener.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/weather_listener.dm

/datum/element/weather_listenerThis element just handles creating and destroying an area sound manager that's hooked into weather stuff
\ No newline at end of file diff --git a/code/datums/elements/web_walker.html b/code/datums/elements/web_walker.html new file mode 100644 index 0000000000000..9c2ad46cd27d9 --- /dev/null +++ b/code/datums/elements/web_walker.html @@ -0,0 +1 @@ +code/datums/elements/web_walker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/web_walker.dm

/datum/element/web_walkerA mob with this element will move more slowly when it's not stood on a webbed turf.
\ No newline at end of file diff --git a/code/datums/elements/wheel.html b/code/datums/elements/wheel.html new file mode 100644 index 0000000000000..f9286d5b4c8d9 --- /dev/null +++ b/code/datums/elements/wheel.html @@ -0,0 +1 @@ +code/datums/elements/wheel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/wheel.dm

/datum/element/wheelElement which spins you as you move
\ No newline at end of file diff --git a/code/datums/elements/window_smash.html b/code/datums/elements/window_smash.html new file mode 100644 index 0000000000000..544ac93242f93 --- /dev/null +++ b/code/datums/elements/window_smash.html @@ -0,0 +1,2 @@ +code/datums/elements/window_smash.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/elements/window_smash.dm

/datum/element/window_smashingAn element you put on mobs to let them smash through walls on movement +For example, throwing someone through a glass window
\ No newline at end of file diff --git a/code/datums/emotes.html b/code/datums/emotes.html new file mode 100644 index 0000000000000..64dc43c30d2aa --- /dev/null +++ b/code/datums/emotes.html @@ -0,0 +1 @@ +code/datums/emotes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/emotes.dm

/datum/emoteMost of the text that's not someone talking is based off of this.
\ No newline at end of file diff --git a/code/datums/greyscale.html b/code/datums/greyscale.html new file mode 100644 index 0000000000000..1db32e902b36e --- /dev/null +++ b/code/datums/greyscale.html @@ -0,0 +1,135 @@ +code/datums/greyscale/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Greyscale Auto-Generated Sprites (GAGS)

If you're wanting to add easy recolors for your sprite then this is the system for you. Features include:

+
    +
  • Multiple color layers so your sprite can be generated from more than one color.
  • +
  • Mixed greyscale and colored sprite layers; You can choose to only greyscale a part of the sprite or have premade filters applied to layers.
  • +
  • Blend modes; Instead of just putting layers of sprites on top of each other you can use the more advanced blend modes.
  • +
  • Reusable configurations; You can reference greyscale sprites from within the configuration of another, allowing you to have a bunch of styles with minimal additional configuration.
  • +
+

Other Documents

+ +

Broad overview

+

There are three main parts to GAGS that you'll need to be aware of when adding a new greyscale sprite:

+
    +
  • The json configuration
  • +
+

All configuration files can be found in code/datums/greyscale/json_configs and is where you control how your icons are combined together along with the colors specified from in code.

+
    +
  • The dmi file
  • +
+

It contains the sprites that will be used as the basis for the rest of the generation process. You can only have one dmi file specified per configuration but if you want to split up your sprites you can reference other configurations instead.

+
    +
  • The configuration type
  • +
+

This is simply some pointers in the code linking together your dmi and the json configuration.

+

Json Configuration File

+

The json is made up of some metadata and a list of layers used while creating the sprite. Inner lists are processed as their own chunk before being applied elsewhere, this is useful when you start using more advanced blend modes. Most of the time though you're just going to want a list of icons overlaid on top of each other.

+
{
+	"icon_state_name": [
+		{
+			"type": "reference",
+			"reference_type": "/datum/greyscale_config/some_other_config",
+			"blend_mode": "overlay",
+			"color_ids": [ 1 ]
+		},
+		[
+			{
+				"type": "icon_state",
+				"icon_state": "highlights",
+				"blend_mode": "overlay",
+				"color_ids": [ 2 ]
+			},
+			{
+				"type": "reference",
+				"reference_type": "/datum/greyscale_config/sparkle_effect",
+				"blend_mode": "add"
+			}
+		]
+	]
+}
+
+

In this example, we start off by creating a sprite specified by a different configuration. The "type" key is required to specify the kind of layer you defining. Once that is done, the next two layers are grouped together, so they will be generated into one sprite before being applied to any sprites outside their group. You can think of it as an order of operations.

+

The first of the two in the inner group is an "icon_state", this means that the icon will be retrieved from the associated dmi file using the "icon_state" key.

+

Note that you don't need to give colors to every layer if the layer does not need any colors applied to it, such as if it's a pre-colored component. +In this example, the last layer is one such example, referencing a separately colored config.

+

"blend_mode" and "color_ids" are special, all layer types have them. The blend mode is what controls how that layer's finished product gets merged together with the rest of the sprite. The color ids control what colors are passed in to the layer.

+

Once it is done generating it will be placed in an icon file with the icon state of "icon_state_name". You can use any name you like here.

+

Most commonly, we'll only use the "icon_state" type... +Thus, this will be the most common layout:

+
{
+	"full_icon_state_name": [
+		{
+			"type": "icon_state",
+			"icon_state": "component_state_1",
+			"blend_mode": "overlay",
+			"color_ids": [ 1 ]
+		},
+		{
+			"type": "icon_state",
+			"icon_state": "component_state_2",
+			"blend_mode": "overlay",
+			"color_ids": [ 2 ]
+		},
+		{
+			"type": "icon_state",
+			"icon_state": "non_colorable_component_state",
+			"blend_mode": "overlay",
+		}
+	]
+}
+
+

Dmi File

+

There are no special requirements from the dmi file to work with this system. You just need to specify the icon file in code and the icon_state in the json configuration. +Additionally, for the sake of mappers, it's appreciated if there's a pre-made obj icon of the same name as the item's icon_state; this way, the item will appear in mapping software.

+

Dm Code

+

While the amount of dm code required to make a greyscale sprite was minimized as much as possible, some small amount is required anyway if you want anything to use it.

+

As an example:

+
/datum/greyscale_config/canister
+	name = "Canister" //Required for debugging, will runtime without one!
+	icon_file = 'icons/obj/pipes_n_cables/canisters/default.dmi'
+	json_config = 'code/datums/greyscale/json_configs/canister_default.json'
+
+

And that's all you need to make it usable by other code:

+
/obj/machinery/portable_atmospherics/canister
+	...
+	greyscale_config = /datum/greyscale_config/canister
+	greyscale_colors = "#ee4242"
+
+

More configurations can be found in the greyscale_configs folder [code/datums/greyscale/config_types/greyscale_configs/greyscale_unsorted.dm] (./config_types/greyscale_configs/greyscale_unsorted.dm)

+

While creating a greyscale config, be sure to take subtypes into account! Rather than create several unique configs that all link to the same icon file, you can make the variants all a subtype of one base config:

+
/datum/greyscale_config/tablet
+	name = "PDA"
+	icon_file = 'icons/obj/devices/modular_pda.dmi'
+	json_config = 'code/datums/greyscale/json_configs/pda.json'
+
+/datum/greyscale_config/tablet/chaplain
+	name = "Chaplain PDA"
+	json_config = 'code/datums/greyscale/json_configs/pda_chaplain.json'
+
+

Building on this, if your obj and worn sprites have the same amount of component states, then instead of making separate .json configs for obj and worn, link to two separate .dmi's while still using the same .json config! For example:

+
/datum/greyscale_config/trek
+	name = "Trek Uniform"
+	icon_file = 'icons/obj/clothing/under/trek.dmi'
+	json_config = 'code/datums/greyscale/json_configs/trek.json'
+
+/datum/greyscale_config/trek/worn
+	name = "Worn Trek Uniform"
+	icon_file = 'icons/mob/clothing/under/trek.dmi'
+	//The worn json is exactly the same, and both icon files use identically-named component states; so, we can just inherit the json!
+
+

If you want your item to be colorable in a vending machine (or other places if there's ever any support added for that), you should do it like this:

+
/obj/item/clothing/head/beret
+	...
+	flags_1 = IS_PLAYER_COLORABLE_1
+
+

However, be extremely careful, as this requires that you put all of the object's flags_1 flags in that statement all over again. It's ugly, I know, but there's no +better way to do this with BYOND just yet. You can put multiple flags like this (not real flags):

+
/obj/item/clothing/head/beret
+	...
+	flags_1 = IS_PLAYER_COLORABLE_1 | THIS_IS_A_FAKE_FLAG | THIS_IS_ANOTHER_FAKE_FLAG
+
+

Debugging

+

If you're making a new greyscale sprite you sometimes want to be able to see how layers got generated or maybe you're just tweaking some colors. Rather than rebooting the server with every change there is a greyscale modification menu that can be found in the vv dropdown menu for the greyscale object. Here you can change colors, preview the results, and reload everything from their files.

\ No newline at end of file diff --git a/code/datums/greyscale/_greyscale_config.html b/code/datums/greyscale/_greyscale_config.html new file mode 100644 index 0000000000000..89854d272ce73 --- /dev/null +++ b/code/datums/greyscale/_greyscale_config.html @@ -0,0 +1 @@ +code/datums/greyscale/_greyscale_config.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/greyscale/_greyscale_config.dm

/datum/greyscale_configA datum tying together a greyscale configuration and dmi file. Required for using GAGS and handles the code interactions.
\ No newline at end of file diff --git a/code/datums/greyscale/json_reader.html b/code/datums/greyscale/json_reader.html new file mode 100644 index 0000000000000..673b69e9c59c1 --- /dev/null +++ b/code/datums/greyscale/json_reader.html @@ -0,0 +1,2 @@ +code/datums/greyscale/json_reader.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/greyscale/json_reader.dm

/datum/json_readerTakes a json list and extracts a single value. +Subtypes represent different conversions of that value.
\ No newline at end of file diff --git a/code/datums/greyscale/layer.html b/code/datums/greyscale/layer.html new file mode 100644 index 0000000000000..debb7cc6b02a9 --- /dev/null +++ b/code/datums/greyscale/layer.html @@ -0,0 +1 @@ +code/datums/greyscale/layer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/greyscale/layer.dm

/datum/greyscale_layer/icon_stateThe most basic greyscale layer; a layer which is created from a single icon_state in the given icon file
/datum/greyscale_layer/color_matrixA layer to modify the previous layer's colors with a color matrix
/datum/greyscale_layer/referenceA layer created by using another greyscale icon's configuration
\ No newline at end of file diff --git a/code/datums/helper_datums/stack_end_detector.html b/code/datums/helper_datums/stack_end_detector.html new file mode 100644 index 0000000000000..c45a9d0024def --- /dev/null +++ b/code/datums/helper_datums/stack_end_detector.html @@ -0,0 +1,2 @@ +code/datums/helper_datums/stack_end_detector.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/helper_datums/stack_end_detector.dm

/datum/stack_end_detectorStack End Detector. +Can detect if a given code stack has exited, used by the mc for stack overflow detection.
/datum/stack_canaryStack canary. Will go away if the stack it was primed by is ended by byond for return or stack overflow reasons.
\ No newline at end of file diff --git a/code/datums/helper_datums/teleport.html b/code/datums/helper_datums/teleport.html new file mode 100644 index 0000000000000..cdd1fe5f96359 --- /dev/null +++ b/code/datums/helper_datums/teleport.html @@ -0,0 +1 @@ +code/datums/helper_datums/teleport.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/helper_datums/teleport.dm

/proc/is_safe_turfChecks if a given turf is a "safe" location
/proc/check_teleport_validValidates that the teleport being attempted is valid or not
\ No newline at end of file diff --git a/code/datums/id_trim/_id_trim.html b/code/datums/id_trim/_id_trim.html new file mode 100644 index 0000000000000..d617fc9ea4b63 --- /dev/null +++ b/code/datums/id_trim/_id_trim.html @@ -0,0 +1 @@ +code/datums/id_trim/_id_trim.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/id_trim/_id_trim.dm

/datum/id_trimSimple datum that holds the basic information associated with an ID card trim.
\ No newline at end of file diff --git a/code/datums/id_trim/admin.html b/code/datums/id_trim/admin.html new file mode 100644 index 0000000000000..ff906cae12f68 --- /dev/null +++ b/code/datums/id_trim/admin.html @@ -0,0 +1 @@ +code/datums/id_trim/admin.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/id_trim/admin.dm

/datum/id_trim/adminTrim for admins and debug cards. Has every single access in the game.
/datum/id_trim/highlanderTrim for highlander cards, used during the highlander adminbus event.
\ No newline at end of file diff --git a/code/datums/id_trim/centcom.html b/code/datums/id_trim/centcom.html new file mode 100644 index 0000000000000..dbaeeb62fd416 --- /dev/null +++ b/code/datums/id_trim/centcom.html @@ -0,0 +1 @@ +code/datums/id_trim/centcom.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/id_trim/centcom.dm

/datum/id_trim/centcomTrim for basic Centcom cards.
/datum/id_trim/centcom/vipTrim for Centcom VIPs
/datum/id_trim/centcom/custodianTrim for Centcom Custodians.
/datum/id_trim/centcom/thunderdome_overseerTrim for Centcom Thunderdome Overseers.
/datum/id_trim/centcom/officialTrim for Centcom Officials.
/datum/id_trim/centcom/internTrim for Centcom Interns.
/datum/id_trim/centcom/intern/headTrim for Centcom Head Interns. Different assignment, common station access added on.
/datum/id_trim/centcom/bounty_hunterTrim for Bounty Hunters hired by centcom.
/datum/id_trim/centcom/bartenderTrim for Centcom Bartenders.
/datum/id_trim/centcom/medical_officerTrim for Centcom Medical Officers.
/datum/id_trim/centcom/research_officerTrim for Centcom Research Officers.
/datum/id_trim/centcom/specops_officerTrim for Centcom Specops Officers. All Centcom and Station Access.
/datum/id_trim/centcom/admiralTrim for Centcom (Soviet) Admirals. All Centcom and Station Access.
/datum/id_trim/centcom/commanderTrim for Centcom Commanders. All Centcom and Station Access.
/datum/id_trim/centcom/deathsquadTrim for Deathsquad officers. All Centcom and Station Access.
/datum/id_trim/centcom/ertTrim for generic ERT interns. No universal ID card changing access.
/datum/id_trim/centcom/ert/commanderTrim for ERT Commanders. All station and centcom access.
/datum/id_trim/centcom/ert/securityTrim for generic ERT seccies. No universal ID card changing access.
/datum/id_trim/centcom/ert/engineerTrim for generic ERT engineers. No universal ID card changing access.
/datum/id_trim/centcom/ert/medicalTrim for generic ERT medics. No universal ID card changing access.
/datum/id_trim/centcom/ert/chaplainTrim for generic ERT chaplains. No universal ID card changing access.
/datum/id_trim/centcom/ert/janitorTrim for generic ERT janitors. No universal ID card changing access.
/datum/id_trim/centcom/ert/clownTrim for generic ERT clowns. No universal ID card changing access.
\ No newline at end of file diff --git a/code/datums/id_trim/jobs.html b/code/datums/id_trim/jobs.html new file mode 100644 index 0000000000000..dadfad471ae55 --- /dev/null +++ b/code/datums/id_trim/jobs.html @@ -0,0 +1,3 @@ +code/datums/id_trim/jobs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/id_trim/jobs.dm

/datum/id_trim/jobThis file contains all the trims associated with station jobs. +It also contains special prisoner trims and the miner's spare ID trim. +ID Trims for station jobs.
/datum/id_trim/job/security_officerSec officers have departmental variants. They each have their own trims with bonus departmental accesses.
/datum/id_trim/job/shaft_miner/spareID card obtained from the mining Disney dollar points vending machine.
\ No newline at end of file diff --git a/code/datums/id_trim/outfits.html b/code/datums/id_trim/outfits.html new file mode 100644 index 0000000000000..720bccb25f3e4 --- /dev/null +++ b/code/datums/id_trim/outfits.html @@ -0,0 +1,2 @@ +code/datums/id_trim/outfits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/id_trim/outfits.dm

/datum/id_trim/reaper_assassinThis file contains all the trims associated with outfits. +Trim for the assassin outfit.
/datum/id_trim/mobsterTrim for the mobster outfit.
/datum/id_trim/vrTrim for VR outfits.
/datum/id_trim/vr/operativeTrim for VR outfits.
/datum/id_trim/tunnel_clownTrim for the Tunnel Clown! outfit. Has all access.
/datum/id_trim/bounty_hunterTrim for Bounty Hunters NOT hired by centcom. (?)
/datum/id_trim/bit_avatarTrim for player controlled avatars in the Virtual Domain.
/datum/id_trim/cyber_policeTrim for cyber police in the Virtual Domain.
\ No newline at end of file diff --git a/code/datums/id_trim/ruins.html b/code/datums/id_trim/ruins.html new file mode 100644 index 0000000000000..b73b86270c9c7 --- /dev/null +++ b/code/datums/id_trim/ruins.html @@ -0,0 +1 @@ +code/datums/id_trim/ruins.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/id_trim/ruins.dm

/datum/id_trim/awayGeneric away/offstation trim.
/datum/id_trim/away/hotelTrim for the hotel ruin. Not Hilbert's Hotel.
/datum/id_trim/away/hotel/securityTrim for the hotel ruin. Not Hilbert's Hotel.
/datum/id_trim/away/old/secTrim for the oldstation ruin/Charlie station
/datum/id_trim/away/old/sciTrim for the oldstation ruin/Charlie station
/datum/id_trim/away/old/engTrim for the oldstation ruin/Charlie station
/datum/id_trim/away/old/equipmentTrim for the oldstation ruin/Charlie station to access APCs and other equipment
/datum/id_trim/away/old/roboTrim for the oldstation ruin/Charlie station to access robots, and downloading of paper publishing software for experiments
/datum/id_trim/away/cat_surgeonTrim for the cat surgeon ruin.
/datum/id_trim/away/hilbertTrim for Hilbert in Hilbert's Hotel.
/datum/id_trim/lifeguardTrim for beach bum lifeguards.
/datum/id_trim/space_bartenderTrim for beach bum bartenders.
/datum/id_trim/centcom/corpse/bridge_officerTrim for various Centcom corpses.
/datum/id_trim/centcom/corpse/commanderTrim for various Centcom corpses.
/datum/id_trim/centcom/corpse/private_securityTrim for various Centcom corpses.
/datum/id_trim/centcom/corpse/private_security/tradepost_officerTrim for various Centcom corpses.
/datum/id_trim/centcom/corpse/assaultTrim for various Centcom corpses.
/datum/id_trim/engioutpostTrim for various various ruins.
/datum/id_trim/job/station_engineer/gunnerTrim for various various ruins.
/datum/id_trim/pirateTrim for pirates.
/datum/id_trim/pirate/captainTrim for the pirate captain.
\ No newline at end of file diff --git a/code/datums/id_trim/syndicate.html b/code/datums/id_trim/syndicate.html new file mode 100644 index 0000000000000..4a7ce022594da --- /dev/null +++ b/code/datums/id_trim/syndicate.html @@ -0,0 +1 @@ +code/datums/id_trim/syndicate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/id_trim/syndicate.dm

/datum/id_trim/syndicomTrim for Syndicate mobs, outfits and corpses.
/datum/id_trim/syndicom/crewTrim for Syndicate mobs, outfits and corpses.
/datum/id_trim/syndicom/Interdyne/pharmacistInterdyne medical Staff
/datum/id_trim/syndicom/Interdyne/pharmacist_directorInterdyne head medical Staff
/datum/id_trim/syndicom/irsTrim for the space IRS agents (why are they syndie access? I wouldn't worry about it.)
/datum/id_trim/syndicom/captainTrim for Syndicate mobs, outfits and corpses.
/datum/id_trim/battlecruiserTrim for Syndicate mobs, outfits and corpses.
/datum/id_trim/battlecruiser/captainTrim for Syndicate mobs, outfits and corpses.
/datum/id_trim/chameleonTrim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards.
/datum/id_trim/chameleon/operativeTrim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards.
/datum/id_trim/chameleon/operative/nuke_leaderTrim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards.
/datum/id_trim/chameleon/operative/clownTrim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards.
/datum/id_trim/chameleon/operative/clown_leaderTrim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards.
\ No newline at end of file diff --git a/code/datums/instability_meltdown.html b/code/datums/instability_meltdown.html new file mode 100644 index 0000000000000..265f767a6d7e8 --- /dev/null +++ b/code/datums/instability_meltdown.html @@ -0,0 +1 @@ +code/datums/instability_meltdown.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/instability_meltdown.dm

/datum/instability_meltdownA possible genetic meltdown that occurs when someone exceeds 100 genetic instability
/datum/instability_meltdown/monkeyTurns you into a monkey
/datum/instability_meltdown/paraplegicGives you brain trauma that makes your legs disfunctional and gifts you a wheelchair
/datum/instability_meltdown/corgiTurns you into a corgi
/datum/instability_meltdown/alrightDoes nothing
/datum/instability_meltdown/not_alrightGives you the same text as above but now when you're hit you take 200 times more damage
/datum/instability_meltdown/slimeTurns you into a slime
/datum/instability_meltdown/yeetMakes you phase through walls into a random direction
/datum/instability_meltdown/decloningMakes you take cell damage and gibs you after some time
/datum/instability_meltdown/organ_vomitMakes you vomit up a random organ
/datum/instability_meltdown/snailTurns you into a snail
/datum/instability_meltdown/crabTurns you into the ultimate lifeform
/datum/instability_meltdown/fatal/gibInstantly gibs you
/datum/instability_meltdown/fatal/dustDusts you
/datum/instability_meltdown/fatal/petrifyTurns you into a statue
/datum/instability_meltdown/fatal/dismemberEither dismembers you, or if unable to, gibs you
/datum/instability_meltdown/fatal/skeletonizeTurns you into a skeleton, with a high chance of killing you soon after
/datum/instability_meltdown/fatal/ceilingMakes you look up and melts out your eyes
/datum/instability_meltdown/fatal/psykerSlowly turns you into a psyker
\ No newline at end of file diff --git a/code/datums/job_configs/_job_configs.html b/code/datums/job_configs/_job_configs.html new file mode 100644 index 0000000000000..830013c6cf8f3 --- /dev/null +++ b/code/datums/job_configs/_job_configs.html @@ -0,0 +1 @@ +code/datums/job_configs/_job_configs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/job_configs/_job_configs.dm

/datum/job_config_typeLightweight datum simply used to store the applicable config type for each job such that the whole system is a tad bit more flexible.
\ No newline at end of file diff --git a/code/datums/job_configs/default_positions.html b/code/datums/job_configs/default_positions.html new file mode 100644 index 0000000000000..2cf0b52ea2ae6 --- /dev/null +++ b/code/datums/job_configs/default_positions.html @@ -0,0 +1 @@ +code/datums/job_configs/default_positions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/job_configs/default_positions.dm

/datum/job_config_type/default_positionsThe number of positions a job can have at any given time.
\ No newline at end of file diff --git a/code/datums/job_configs/playtime_requirements.html b/code/datums/job_configs/playtime_requirements.html new file mode 100644 index 0000000000000..fec80305efacc --- /dev/null +++ b/code/datums/job_configs/playtime_requirements.html @@ -0,0 +1 @@ +code/datums/job_configs/playtime_requirements.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/job_configs/playtime_requirements.dm

/datum/job_config_type/playtime_requirementsThe amount of playtime required to join a job (minutes).
\ No newline at end of file diff --git a/code/datums/job_configs/required_account_age.html b/code/datums/job_configs/required_account_age.html new file mode 100644 index 0000000000000..2656c71e9d0e5 --- /dev/null +++ b/code/datums/job_configs/required_account_age.html @@ -0,0 +1 @@ +code/datums/job_configs/required_account_age.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/job_configs/required_account_age.dm

/datum/job_config_type/required_account_ageThe amount of time required to have an account to join a job (days).
\ No newline at end of file diff --git a/code/datums/job_configs/required_character_age.html b/code/datums/job_configs/required_character_age.html new file mode 100644 index 0000000000000..f51f15eba3dcc --- /dev/null +++ b/code/datums/job_configs/required_character_age.html @@ -0,0 +1 @@ +code/datums/job_configs/required_character_age.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/job_configs/required_character_age.dm

/datum/job_config_type/required_character_ageThe required age a character must be to join a job (which is in years).
\ No newline at end of file diff --git a/code/datums/job_configs/starting_positions.html b/code/datums/job_configs/starting_positions.html new file mode 100644 index 0000000000000..a8d2c93f08af9 --- /dev/null +++ b/code/datums/job_configs/starting_positions.html @@ -0,0 +1 @@ +code/datums/job_configs/starting_positions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/job_configs/starting_positions.dm

/datum/job_config_type/starting_positionsThe number of positions a job can have at the start of the round.
\ No newline at end of file diff --git a/code/datums/json_database.html b/code/datums/json_database.html new file mode 100644 index 0000000000000..ce2a1e845187d --- /dev/null +++ b/code/datums/json_database.html @@ -0,0 +1,4 @@ +code/datums/json_database.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/json_database.dm

/datum/json_databaseRepresents a json file being used as a database in the data/ folder. +Changes made here will save back to the associated file, with recovery. +Will defer writes until later if multiple happen in the same tick. +Do not add an extra cache on top of this. This IS your cache.
\ No newline at end of file diff --git a/code/datums/json_savefile.html b/code/datums/json_savefile.html new file mode 100644 index 0000000000000..8a16ee875bd49 --- /dev/null +++ b/code/datums/json_savefile.html @@ -0,0 +1,3 @@ +code/datums/json_savefile.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/json_savefile.dm

/datum/json_savefileA savefile implementation that handles all data using json. +Also saves it using JSON too, fancy. +If you pass in a null path, it simply acts as a memory tree instead, and cannot be saved.
\ No newline at end of file diff --git a/code/datums/lazy_template.html b/code/datums/lazy_template.html new file mode 100644 index 0000000000000..8a3f4ebe075ec --- /dev/null +++ b/code/datums/lazy_template.html @@ -0,0 +1,2 @@ +code/datums/lazy_template.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/lazy_template.dm

/datum/lazy_templateDatum used to designate certain areas that do not need to exist nor be loaded at world start +but do want to be loaded under certain circumstances. Use this for stuff like the nukie base or wizden, aka stuff that only matters when their antag is rolled.
\ No newline at end of file diff --git a/code/datums/looping_sounds/_looping_sound.html b/code/datums/looping_sounds/_looping_sound.html new file mode 100644 index 0000000000000..5becbe097bde8 --- /dev/null +++ b/code/datums/looping_sounds/_looping_sound.html @@ -0,0 +1 @@ +code/datums/looping_sounds/_looping_sound.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/looping_sounds/_looping_sound.dm

/datum/looping_soundA datum for sounds that need to loop, with a high amount of configurability.
\ No newline at end of file diff --git a/code/datums/looping_sounds/acid.html b/code/datums/looping_sounds/acid.html new file mode 100644 index 0000000000000..f5f907acb67e3 --- /dev/null +++ b/code/datums/looping_sounds/acid.html @@ -0,0 +1 @@ +code/datums/looping_sounds/acid.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/looping_sounds/acid.dm

/datum/looping_sound/acidSoundloop for the acid component.
\ No newline at end of file diff --git a/code/datums/looping_sounds/burning.html b/code/datums/looping_sounds/burning.html new file mode 100644 index 0000000000000..f57221ad0a7b0 --- /dev/null +++ b/code/datums/looping_sounds/burning.html @@ -0,0 +1 @@ +code/datums/looping_sounds/burning.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/looping_sounds/burning.dm

/datum/looping_sound/burningSoundloop for the fire (bonfires, fireplaces, etc.)
\ No newline at end of file diff --git a/code/datums/map_config.html b/code/datums/map_config.html new file mode 100644 index 0000000000000..022049d499531 --- /dev/null +++ b/code/datums/map_config.html @@ -0,0 +1,2 @@ +code/datums/map_config.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/map_config.dm

/proc/load_default_map_configProc that simply loads the default map config, which should always be functional.
/proc/load_map_configProc handling the loading of map configs. Will return the default map config using /proc/load_default_map_config if the loading of said file fails for any reason whatsoever, so we always have a working map for the server to run. +Arguments:
\ No newline at end of file diff --git a/code/datums/mapgen/CaveGenerator.html b/code/datums/mapgen/CaveGenerator.html new file mode 100644 index 0000000000000..f2843012615fa --- /dev/null +++ b/code/datums/mapgen/CaveGenerator.html @@ -0,0 +1 @@ +code/datums/mapgen/CaveGenerator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/mapgen/CaveGenerator.dm

BIOME_RANDOM_SQUARE_DRIFTThe random offset applied to square coordinates, causes intermingling at biome borders

Define Details

BIOME_RANDOM_SQUARE_DRIFT

The random offset applied to square coordinates, causes intermingling at biome borders

\ No newline at end of file diff --git a/code/datums/mapgen/Cavegens/IcemoonCaves.html b/code/datums/mapgen/Cavegens/IcemoonCaves.html new file mode 100644 index 0000000000000..ff1122daa991d --- /dev/null +++ b/code/datums/mapgen/Cavegens/IcemoonCaves.html @@ -0,0 +1 @@ +code/datums/mapgen/Cavegens/IcemoonCaves.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/mapgen/Cavegens/IcemoonCaves.dm

/datum/map_generator/cave_generator/icemoon/surface/forestedSurface snow generator variant for forested station trait, WITH FORESTSSSS
\ No newline at end of file diff --git a/code/datums/mapgen/JungleGenerator.html b/code/datums/mapgen/JungleGenerator.html new file mode 100644 index 0000000000000..b9ee68cb7a6d8 --- /dev/null +++ b/code/datums/mapgen/JungleGenerator.html @@ -0,0 +1 @@ +code/datums/mapgen/JungleGenerator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/mapgen/JungleGenerator.dm

/turf/open/genturfThis turf doesn't actually do anything beyond provide contrast for mappers and be very visible when stuff breaks in game. The actual areas are what drive cave generation.
\ No newline at end of file diff --git a/code/datums/mapgen/biomes/_biome.html b/code/datums/mapgen/biomes/_biome.html new file mode 100644 index 0000000000000..3d10b598787ec --- /dev/null +++ b/code/datums/mapgen/biomes/_biome.html @@ -0,0 +1 @@ +code/datums/mapgen/biomes/_biome.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/mapgen/biomes/_biome.dm

/datum/biomeThis datum handles the transitioning from a turf to a specific biome, and handles spawning decorative structures and mobs.
\ No newline at end of file diff --git a/code/datums/martial/boxing.html b/code/datums/martial/boxing.html new file mode 100644 index 0000000000000..e10726ba6a5a2 --- /dev/null +++ b/code/datums/martial/boxing.html @@ -0,0 +1,4 @@ +code/datums/martial/boxing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/martial/boxing.dm

/datum/martial_art/boxing/evilEvil Boxing; for sick, evil scoundrels. Has no honor, making it more lethal (therefore unable to be used by pacifists). +Grants Strength and Stimmed to speed up any experience gain.
/datum/martial_art/boxing/hunterHunter Boxing: for the uncaring, completely deranged one-spacer ecological disaster. +The honor check accepts boxing ready targets, OR various biotypes as valid targets. Uses a special crit effect rather than the standard one (against monsters). +I guess technically, this allows for lethal boxing. If you want.
\ No newline at end of file diff --git a/code/datums/martial/cqc.html b/code/datums/martial/cqc.html new file mode 100644 index 0000000000000..307468c3004db --- /dev/null +++ b/code/datums/martial/cqc.html @@ -0,0 +1 @@ +code/datums/martial/cqc.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/martial/cqc.dm

/datum/martial_art/cqc/under_siegeSubtype of CQC. Only used for the chef.
\ No newline at end of file diff --git a/code/datums/materials/_material.html b/code/datums/materials/_material.html new file mode 100644 index 0000000000000..a6dab98851c90 --- /dev/null +++ b/code/datums/materials/_material.html @@ -0,0 +1,2 @@ +code/datums/materials/_material.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/materials/_material.dm

Material datum

+

Simple datum which is instanced once per type and is used for every object of said material. It has a variety of variables that define behavior. Subtyping from this makes it easier to create your own materials.

\ No newline at end of file diff --git a/code/datums/materials/alloys.html b/code/datums/materials/alloys.html new file mode 100644 index 0000000000000..10af3d9ec369f --- /dev/null +++ b/code/datums/materials/alloys.html @@ -0,0 +1 @@ +code/datums/materials/alloys.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/materials/alloys.dm

/datum/material/alloyMaterials made from other materials.
/datum/material/alloy/plasteel
/datum/material/alloy/plastitanium
/datum/material/alloy/plasmaglass
/datum/material/alloy/titaniumglass
/datum/material/alloy/plastitaniumglass
/datum/material/alloy/alien
\ No newline at end of file diff --git a/code/datums/materials/basemats.html b/code/datums/materials/basemats.html new file mode 100644 index 0000000000000..2b8cd0a4512f7 --- /dev/null +++ b/code/datums/materials/basemats.html @@ -0,0 +1 @@ +code/datums/materials/basemats.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/materials/basemats.dm

/datum/material/ironHas no special properties.
/datum/material/glassBreaks extremely easily but is transparent.
/datum/material/silverHas no special properties. Could be good against vampires in the future perhaps.
/datum/material/goldSlight force increase
/datum/material/diamondHas no special properties
/datum/material/uraniumIs slightly radioactive
/datum/material/plasmaAdds firestacks on hit (Still needs support to turn into gas on destruction)
/datum/material/bluespaceCan cause bluespace effects on use. (Teleportation) (Not yet implemented)
/datum/material/bananiumHonks and slips
/datum/material/titaniumMediocre force increase
/datum/material/plasticForce decrease
/datum/material/biomassForce decrease and mushy sound effect. (Not yet implemented)
/datum/material/adamantineStronk force increase
/datum/material/mythrilRPG Magic.
\ No newline at end of file diff --git a/code/datums/materials/meat.html b/code/datums/materials/meat.html new file mode 100644 index 0000000000000..bb640d476e025 --- /dev/null +++ b/code/datums/materials/meat.html @@ -0,0 +1 @@ +code/datums/materials/meat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/materials/meat.dm

/datum/material/meatIt's gross, gets the name of its owner, and is all kinds of fucked up
\ No newline at end of file diff --git a/code/datums/memory/_memory.html b/code/datums/memory/_memory.html new file mode 100644 index 0000000000000..ef245f2002fbf --- /dev/null +++ b/code/datums/memory/_memory.html @@ -0,0 +1 @@ +code/datums/memory/_memory.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/memory/_memory.dm

/datum/memoryLittle tidbits of past events generated by the player doing things.
\ No newline at end of file diff --git a/code/datums/memory/general_memories.html b/code/datums/memory/general_memories.html new file mode 100644 index 0000000000000..892840b8293bd --- /dev/null +++ b/code/datums/memory/general_memories.html @@ -0,0 +1,2 @@ +code/datums/memory/general_memories.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/memory/general_memories.dm

/datum/memory/surgeryA doctor successfuly completed a surgery on someone.
/datum/memory/bomb_plantedPlanted a bomb.
/datum/memory/bomb_planted/syndicatePlanted a SYNDICATE bomb.
/datum/memory/bomb_planted/nukePlanted a NUKE!
/datum/memory/high_fiveGot a sweet high five.
/datum/memory/was_cyborgedWas cyborgized.
/datum/memory/witnessed_deathWitnessed someone die nearby.
/datum/memory/witnessed_creampieWitnessed someone get creampied nearby.
/datum/memory/witnessed_inkingWitnessed someone get splashed with squid ink.
/datum/memory/was_slippedGot slipped by something.
/datum/memory/lost_spaghettiHad spaghetti fall from their pockets.
/datum/memory/kissedGot kissed! AHHHHH!
/datum/memory/good_foodHad some good food.
/datum/memory/good_drinkHad a good drink.
/datum/memory/was_burningWas set on fire and started to burn.
/datum/memory/was_dismemberedGot a limb removed by force.
/datum/memory/pet_diedOur pet died...
/datum/memory/revolution_rev_victoryThe revolution was triumphant! +Given to head revs and those nearby when the revs win a revolution.
/datum/memory/revolution_heads_defeatedGiven to heads of staff if they lose a revolution and are alive still.
/datum/memory/revolution_rev_defeatGiven to head revs for failing the revolution!
/datum/memory/revolution_heads_victoryGiven to heads of staff, and those around them, upon defeating the revolutionaries.
/datum/memory/received_medalWatched someone receive a commendation medal
/datum/memory/megafauna_slayerKilled a Megafauna
/datum/memory/held_at_gunpointGot held at gunpoint by someone!
/datum/memory/witness_gibSaw someone get gibbed.
/datum/memory/witness_vendor_crushSaw someone get crushed by a vending machine.
/datum/memory/witness_supermatter_dustingSaw someone get dusted by the supermatter.
/datum/memory/playing_cardsPlayed cards with another person.
/datum/memory/playing_card_pickupPlayed 52 card pickup with another person.
/datum/memory/witnessed_russian_rouletteSaw someone play Russian Roulette.
/datum/memory/heretic_knowledge_ritualWhen a heretic finishes their ritual of knowledge
/datum/memory/bomb_defuse_failureFailed to defuse a bomb, by triggering it early.
/datum/memory/bomb_defuse_successSucceeded in defusing a bomb!
/datum/memory/caught_fishCatching a fish
/datum/memory/dna_infusionBecoming a mutant via infusion
/datum/memory/recruited_by_headrevWho rev'd me, so if a mindreader reads a rev, they have a clue on who to hunt down
/datum/memory/recruited_by_blood_brotherWho converted into a blood brother
/datum/memory/witnessed_gods_wrathSaw someone play Russian Roulette.
\ No newline at end of file diff --git a/code/datums/memory/key_memories.html b/code/datums/memory/key_memories.html new file mode 100644 index 0000000000000..02c4e40537097 --- /dev/null +++ b/code/datums/memory/key_memories.html @@ -0,0 +1 @@ +code/datums/memory/key_memories.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/memory/key_memories.dm

/datum/memory/keyI am affectionally titling these "key memories"
/datum/memory/key/accountYour bank account ID, can't get into it without it
/datum/memory/key/captains_spare_codeThe code to the captain's spare ID, ONLY give to the real captain.
/datum/memory/key/nuke_codeThe nuclear bomb code, for nuke ops
/datum/memory/key/quirk_allergyTracks what medicines someone with the "allergies" quirk is allergic to
/datum/memory/key/quirk_smokerTracks what brand a smoker quirk user likes
/datum/memory/key/quirk_alcoholicTracks what beverage an alcoholic quirk user likes
/datum/memory/key/traitor_uplinkWhere our traitor uplink is, and what is its code
\ No newline at end of file diff --git a/code/datums/mergers/_merger.html b/code/datums/mergers/_merger.html new file mode 100644 index 0000000000000..b80deeb00522d --- /dev/null +++ b/code/datums/mergers/_merger.html @@ -0,0 +1 @@ +code/datums/mergers/_merger.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/mergers/_merger.dm

/datum/mergerA datum that tracks a type or types of objects in a cluster
\ No newline at end of file diff --git a/code/datums/mocking/client.html b/code/datums/mocking/client.html new file mode 100644 index 0000000000000..f38d82a1d3a5d --- /dev/null +++ b/code/datums/mocking/client.html @@ -0,0 +1 @@ +code/datums/mocking/client.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/mocking/client.dm

/datum/client_interfaceThis should match the interface of /client wherever necessary.
\ No newline at end of file diff --git a/code/datums/mood.html b/code/datums/mood.html new file mode 100644 index 0000000000000..3eb8b211dfe82 --- /dev/null +++ b/code/datums/mood.html @@ -0,0 +1 @@ +code/datums/mood.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/mood.dm

/datum/moodMood datum
\ No newline at end of file diff --git a/code/datums/mood_events/area_events.html b/code/datums/mood_events/area_events.html new file mode 100644 index 0000000000000..7ddbd9325e96f --- /dev/null +++ b/code/datums/mood_events/area_events.html @@ -0,0 +1 @@ +code/datums/mood_events/area_events.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/mood_events/area_events.dm

/datum/mood_event/area
\ No newline at end of file diff --git a/code/datums/mood_events/generic_negative_events.html b/code/datums/mood_events/generic_negative_events.html new file mode 100644 index 0000000000000..e758c6e2284c8 --- /dev/null +++ b/code/datums/mood_events/generic_negative_events.html @@ -0,0 +1 @@ +code/datums/mood_events/generic_negative_events.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/mood_events/generic_negative_events.dm

/datum/mood_event/madness_despairWizard cheesy grand finale - what everyone but the wizard gets
\ No newline at end of file diff --git a/code/datums/mood_events/generic_positive_events.html b/code/datums/mood_events/generic_positive_events.html new file mode 100644 index 0000000000000..3be6ec1b295db --- /dev/null +++ b/code/datums/mood_events/generic_positive_events.html @@ -0,0 +1 @@ +code/datums/mood_events/generic_positive_events.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/mood_events/generic_positive_events.dm

/datum/mood_event/madness_elationWizard cheesy grand finale - what the wizard gets
\ No newline at end of file diff --git a/code/datums/move_manager.html b/code/datums/move_manager.html new file mode 100644 index 0000000000000..b8892f937f0f0 --- /dev/null +++ b/code/datums/move_manager.html @@ -0,0 +1 @@ +code/datums/move_manager.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/move_manager.dm

/datum/move_managerActs as a namespace for movement packet/type related procs
/datum/movement_packetA packet of information that describes the current state of a moving object
\ No newline at end of file diff --git a/code/datums/movement_detector.html b/code/datums/movement_detector.html new file mode 100644 index 0000000000000..a8ae1528f033e --- /dev/null +++ b/code/datums/movement_detector.html @@ -0,0 +1 @@ +code/datums/movement_detector.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/movement_detector.dm

/datum/movement_detectorA datum to handle the busywork of registering signals to handle in depth tracking of a movable
\ No newline at end of file diff --git a/code/datums/mutable_appearance.html b/code/datums/mutable_appearance.html new file mode 100644 index 0000000000000..a3417362c57be --- /dev/null +++ b/code/datums/mutable_appearance.html @@ -0,0 +1 @@ +code/datums/mutable_appearance.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/mutable_appearance.dm

/proc/mutable_appearance
\ No newline at end of file diff --git a/code/datums/mutations/_mutations.html b/code/datums/mutations/_mutations.html new file mode 100644 index 0000000000000..9f8462cc0e73b --- /dev/null +++ b/code/datums/mutations/_mutations.html @@ -0,0 +1 @@ +code/datums/mutations/_mutations.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/mutations/_mutations.dm

NEGATIVE_STABILITY_MININegatives that are virtually harmless and mostly just funny (language)
NEGATIVE_STABILITY_MINORNegatives that are slightly annoying (unused)
NEGATIVE_STABILITY_MODERATENegatives that present an uncommon or weak, consistent hindrance to gameplay (cough, paranoia)
NEGATIVE_STABILITY_MAJORNegatives that present a major consistent hindrance to gameplay (deaf, mute, acid flesh)
POSITIVE_INSTABILITY_MINIPositives that provide basically no benefit (glowy)
POSITIVE_INSTABILITY_MINORPositives that are niche in application or useful in rare circumstances (parlor tricks, geladikinesis, autotomy)
POSITIVE_INSTABILITY_MODERATEPositives that provide a new ability that's roughly par with station equipment (insulated, cryokinesis)
POSITIVE_INSTABILITY_MAJORPositives that are unique, very powerful, and noticeably change combat/gameplay (hulk, tk)

Define Details

NEGATIVE_STABILITY_MAJOR

Negatives that present a major consistent hindrance to gameplay (deaf, mute, acid flesh)

NEGATIVE_STABILITY_MINI

Negatives that are virtually harmless and mostly just funny (language)

NEGATIVE_STABILITY_MINOR

Negatives that are slightly annoying (unused)

NEGATIVE_STABILITY_MODERATE

Negatives that present an uncommon or weak, consistent hindrance to gameplay (cough, paranoia)

POSITIVE_INSTABILITY_MAJOR

Positives that are unique, very powerful, and noticeably change combat/gameplay (hulk, tk)

POSITIVE_INSTABILITY_MINI

Positives that provide basically no benefit (glowy)

POSITIVE_INSTABILITY_MINOR

Positives that are niche in application or useful in rare circumstances (parlor tricks, geladikinesis, autotomy)

POSITIVE_INSTABILITY_MODERATE

Positives that provide a new ability that's roughly par with station equipment (insulated, cryokinesis)

\ No newline at end of file diff --git a/code/datums/mutations/chameleon.html b/code/datums/mutations/chameleon.html new file mode 100644 index 0000000000000..6ed089b6be419 --- /dev/null +++ b/code/datums/mutations/chameleon.html @@ -0,0 +1 @@ +code/datums/mutations/chameleon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/mutations/chameleon.dm

/datum/mutation/human/chameleon/changelingSKYRAT EDIT END
\ No newline at end of file diff --git a/code/datums/mutations/cold.html b/code/datums/mutations/cold.html new file mode 100644 index 0000000000000..a13688d8f811b --- /dev/null +++ b/code/datums/mutations/cold.html @@ -0,0 +1 @@ +code/datums/mutations/cold.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/mutations/cold.dm

/datum/mutation/human/geladikinesisSKYRAT EDIT END
\ No newline at end of file diff --git a/code/datums/mutations/hulk.html b/code/datums/mutations/hulk.html new file mode 100644 index 0000000000000..c2e76005df9cc --- /dev/null +++ b/code/datums/mutations/hulk.html @@ -0,0 +1 @@ +code/datums/mutations/hulk.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/mutations/hulk.dm

HULK_TAILTHROW_STEPSHow many steps it takes to throw the mob

Define Details

HULK_TAILTHROW_STEPS

How many steps it takes to throw the mob

\ No newline at end of file diff --git a/code/datums/mutations/reach.html b/code/datums/mutations/reach.html new file mode 100644 index 0000000000000..6f798a92581da --- /dev/null +++ b/code/datums/mutations/reach.html @@ -0,0 +1 @@ +code/datums/mutations/reach.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/mutations/reach.dm

/datum/mutation/human/telekinesisTelekinesis lets you interact with objects from range, and gives you a light blue halo around your head.
\ No newline at end of file diff --git a/code/datums/mutations/sight.html b/code/datums/mutations/sight.html new file mode 100644 index 0000000000000..76f286c45e87b --- /dev/null +++ b/code/datums/mutations/sight.html @@ -0,0 +1 @@ +code/datums/mutations/sight.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/mutations/sight.dm

/datum/mutation/human/blindBlind makes you blind. Who knew?
/datum/mutation/human/thermalThermal Vision lets you see mobs through walls
/datum/mutation/human/xrayX-ray Vision lets you see through walls.
/datum/mutation/human/laser_eyesLaser Eyes lets you shoot lasers from your eyes!
/obj/projectile/beam/laser/laser_eyesProjectile type used by laser eyes
\ No newline at end of file diff --git a/code/datums/mutations/void_magnet.html b/code/datums/mutations/void_magnet.html new file mode 100644 index 0000000000000..f866a9fd570ba --- /dev/null +++ b/code/datums/mutations/void_magnet.html @@ -0,0 +1 @@ +code/datums/mutations/void_magnet.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/mutations/void_magnet.dm

/datum/action/cooldown/spell/voidThe base "void invocation" action. No side effects.
/datum/action/cooldown/spell/void/cursedThe cursed "void invocation" action, that has a chance of casting itself on its owner randomly on life ticks.
\ No newline at end of file diff --git a/code/datums/outfit.html b/code/datums/outfit.html new file mode 100644 index 0000000000000..4397b9b8ec35f --- /dev/null +++ b/code/datums/outfit.html @@ -0,0 +1,2 @@ +code/datums/outfit.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/outfit.dm

/datum/outfitThis is a clean system of applying outfits to mobs, if you need to equip someone in a uniform +this is the way to do it cleanly and properly.
\ No newline at end of file diff --git a/code/datums/pod_style.html b/code/datums/pod_style.html new file mode 100644 index 0000000000000..ce56a64cc30b7 --- /dev/null +++ b/code/datums/pod_style.html @@ -0,0 +1,2 @@ +code/datums/pod_style.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/pod_style.dm

/datum/pod_styleDatum holding information about pod type visuals, VFX, name and description +These are not created anywhere and thus should not be assigned procs, only being used as data storage
\ No newline at end of file diff --git a/code/datums/position_point_vector.html b/code/datums/position_point_vector.html new file mode 100644 index 0000000000000..fc7d8d5579524 --- /dev/null +++ b/code/datums/position_point_vector.html @@ -0,0 +1 @@ +code/datums/position_point_vector.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/position_point_vector.dm

/datum/positionFor positions with map x/y/z and pixel x/y so you don't have to return lists. Could use addition/subtraction in the future I guess.
/datum/pointA precise point on the map in absolute pixel locations based on world.icon_size. Pixels are FROM THE EDGE OF THE MAP!
\ No newline at end of file diff --git a/code/datums/proximity_monitor/field.html b/code/datums/proximity_monitor/field.html new file mode 100644 index 0000000000000..0cd0988f78d6a --- /dev/null +++ b/code/datums/proximity_monitor/field.html @@ -0,0 +1,3 @@ +code/datums/proximity_monitor/field.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/proximity_monitor/field.dm

/datum/proximity_monitor/advancedMovable and easily code-modified fields! Allows for custom AOE effects that affect movement +and anything inside of them, and can do custom turf effects! +Supports automatic recalculation/reset on movement.
\ No newline at end of file diff --git a/code/datums/proximity_monitor/fields/timestop.html b/code/datums/proximity_monitor/fields/timestop.html new file mode 100644 index 0000000000000..f143d37d9fec4 --- /dev/null +++ b/code/datums/proximity_monitor/fields/timestop.html @@ -0,0 +1 @@ +code/datums/proximity_monitor/fields/timestop.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/proximity_monitor/fields/timestop.dm

/obj/effect/timestop/channelledindefinite version, but only if no immune atoms move.
\ No newline at end of file diff --git a/code/datums/proximity_monitor/fields/void_storm.html b/code/datums/proximity_monitor/fields/void_storm.html new file mode 100644 index 0000000000000..d4c717f62a60a --- /dev/null +++ b/code/datums/proximity_monitor/fields/void_storm.html @@ -0,0 +1,2 @@ +code/datums/proximity_monitor/fields/void_storm.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/proximity_monitor/fields/void_storm.dm

Void storm for the void heretic ascension

+

Follows the heretic around and acts like an aura with damaging effects for non-heretics

\ No newline at end of file diff --git a/code/datums/quirks/_quirk.html b/code/datums/quirks/_quirk.html new file mode 100644 index 0000000000000..9b3618e73a01b --- /dev/null +++ b/code/datums/quirks/_quirk.html @@ -0,0 +1 @@ +code/datums/quirks/_quirk.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/quirks/_quirk.dm

/datum/quirk/item_quirkSubtype quirk that has some bonus logic to spawn items for the player.
\ No newline at end of file diff --git a/code/datums/quirks/_quirk_constant_data.html b/code/datums/quirks/_quirk_constant_data.html new file mode 100644 index 0000000000000..979ebc91d61f4 --- /dev/null +++ b/code/datums/quirks/_quirk_constant_data.html @@ -0,0 +1 @@ +code/datums/quirks/_quirk_constant_data.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/quirks/_quirk_constant_data.dm

/proc/generate_quirk_constant_dataConstructs [GLOB.all_quirk_constant_data] by iterating through a typecache of pregen data, ignoring abstract types, and instantiating the rest.
/datum/quirk_constant_dataA singleton datum representing constant data and procs used by quirks.
\ No newline at end of file diff --git a/code/datums/quirks/negative_quirks/addict.html b/code/datums/quirks/negative_quirks/addict.html new file mode 100644 index 0000000000000..ab8d3e69bc71f --- /dev/null +++ b/code/datums/quirks/negative_quirks/addict.html @@ -0,0 +1 @@ +code/datums/quirks/negative_quirks/addict.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/quirks/negative_quirks/addict.dm

/datum/quirk/item_quirk/addict/junkieMax that shit out
\ No newline at end of file diff --git a/code/datums/records/crime.html b/code/datums/records/crime.html new file mode 100644 index 0000000000000..61e7cd91e0e70 --- /dev/null +++ b/code/datums/records/crime.html @@ -0,0 +1 @@ +code/datums/records/crime.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/records/crime.dm

/datum/crimeCrime data. Used to store information about crimes.
\ No newline at end of file diff --git a/code/datums/records/data.html b/code/datums/records/data.html new file mode 100644 index 0000000000000..d70f5562b6d65 --- /dev/null +++ b/code/datums/records/data.html @@ -0,0 +1 @@ +code/datums/records/data.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/records/data.dm

/datum/dataCurrently used for experiments, vending products.
\ No newline at end of file diff --git a/code/datums/records/manifest.html b/code/datums/records/manifest.html new file mode 100644 index 0000000000000..671b35e0378a8 --- /dev/null +++ b/code/datums/records/manifest.html @@ -0,0 +1 @@ +code/datums/records/manifest.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/records/manifest.dm

/datum/manifestStores crew records.
\ No newline at end of file diff --git a/code/datums/records/medical_note.html b/code/datums/records/medical_note.html new file mode 100644 index 0000000000000..b1d44fc546b68 --- /dev/null +++ b/code/datums/records/medical_note.html @@ -0,0 +1 @@ +code/datums/records/medical_note.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/records/medical_note.dm

/datum/medical_notePlayer-written medical note.
\ No newline at end of file diff --git a/code/datums/records/record.html b/code/datums/records/record.html new file mode 100644 index 0000000000000..b04ac53fc1312 --- /dev/null +++ b/code/datums/records/record.html @@ -0,0 +1 @@ +code/datums/records/record.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/records/record.dm

/datum/recordRecord datum. Used for crew records and admin locked records.
/datum/record/crewCrew record datum
/datum/record/lockedAdmin locked record
\ No newline at end of file diff --git a/code/datums/skills/fishing.html b/code/datums/skills/fishing.html new file mode 100644 index 0000000000000..d03db6e4fdc7a --- /dev/null +++ b/code/datums/skills/fishing.html @@ -0,0 +1,2 @@ +code/datums/skills/fishing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/skills/fishing.dm

/datum/skill/fishingskill associated with the fishing feature. It modifies the fishing minigame difficulty +and is gained each time one is completed.
\ No newline at end of file diff --git a/code/datums/sprite_accessories.html b/code/datums/sprite_accessories.html new file mode 100644 index 0000000000000..0d7200680d901 --- /dev/null +++ b/code/datums/sprite_accessories.html @@ -0,0 +1 @@ +code/datums/sprite_accessories.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/sprite_accessories.dm

/datum/sprite_accessory/lizard_markings.
/datum/sprite_accessory/wingsWings!
\ No newline at end of file diff --git a/code/datums/station_integrity.html b/code/datums/station_integrity.html new file mode 100644 index 0000000000000..e21a3b8d40309 --- /dev/null +++ b/code/datums/station_integrity.html @@ -0,0 +1 @@ +code/datums/station_integrity.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/station_integrity.dm

/datum/station_stateFor counting up how much of the station exists at the start of the shift, and how much is left behind by the end of it.
\ No newline at end of file diff --git a/code/datums/station_traits/_station_trait.html b/code/datums/station_traits/_station_trait.html new file mode 100644 index 0000000000000..f4e64cd913d8f --- /dev/null +++ b/code/datums/station_traits/_station_trait.html @@ -0,0 +1 @@ +code/datums/station_traits/_station_trait.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/station_traits/_station_trait.dm

/datum/station_traitBase class of station traits. These are used to influence rounds in one way or the other by influencing the levers of the station.
/proc/request_station_colorsCalled by decals if they can be colored, to see if we got some cool colors for them. Only takes the first station trait
\ No newline at end of file diff --git a/code/datums/station_traits/job_traits.html b/code/datums/station_traits/job_traits.html new file mode 100644 index 0000000000000..35a4f474d409b --- /dev/null +++ b/code/datums/station_traits/job_traits.html @@ -0,0 +1,2 @@ +code/datums/station_traits/job_traits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/station_traits/job_traits.dm

/datum/station_trait/jobA station trait which enables a temporary job +Generally speaking these should always all be mutually exclusive, don't have too many at once
/datum/station_trait/job/cargorillaAdds a gorilla to the cargo department, replacing the sloth and the mech
\ No newline at end of file diff --git a/code/datums/station_traits/negative_traits.html b/code/datums/station_traits/negative_traits.html new file mode 100644 index 0000000000000..e80ba6a06c1ca --- /dev/null +++ b/code/datums/station_traits/negative_traits.html @@ -0,0 +1 @@ +code/datums/station_traits/negative_traits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/station_traits/negative_traits.dm

/datum/station_trait/mail_blockedA negative trait that stops mail from arriving (or the inverse if on holiday). It also enables a specific shuttle loan situation.
/datum/station_trait/vending_shortageA negative trait that reduces the amount of products available from vending machines throughout the station.
/datum/station_trait/nebulaStation traits that influence the space background and apply some unique effects!
/datum/station_trait/nebula/hostileStation nebula that incur some sort of effect if no shielding is created
/datum/station_trait/nebula/hostile/radiationThe station will be inside a radioactive nebula! Space is radioactive and the station needs to start setting up nebula shielding
/datum/station_trait/stormStarts a storm on roundstart
/datum/station_trait/storm/foreverstormCalls down an eternal storm on planetary stations
\ No newline at end of file diff --git a/code/datums/station_traits/neutral_traits.html b/code/datums/station_traits/neutral_traits.html new file mode 100644 index 0000000000000..2b5ad5055a946 --- /dev/null +++ b/code/datums/station_traits/neutral_traits.html @@ -0,0 +1 @@ +code/datums/station_traits/neutral_traits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/station_traits/neutral_traits.dm

/datum/station_trait/bananium_shipmentThis station traits gives 5 bananium sheets to the clown (and every dead clown out there in deep space or lavaland).
/datum/station_trait/forestedTells the area map generator to ADD MORE TREEEES
/datum/station_trait/skubA trait that lets players choose whether they want pro-skub or anti-skub (or neither), and receive the appropriate equipment.
/obj/item/storage/box/stickers/skubA box containing a skub, for easier carry because skub is a bulky item.
/datum/station_trait/background_checksCrew don't ever spawn as enemies of the station. Obsesseds, blob infection, space changelings etc can still happen though
\ No newline at end of file diff --git a/code/datums/station_traits/positive_traits.html b/code/datums/station_traits/positive_traits.html new file mode 100644 index 0000000000000..c4aa0a9a9d254 --- /dev/null +++ b/code/datums/station_traits/positive_traits.html @@ -0,0 +1 @@ +code/datums/station_traits/positive_traits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/station_traits/positive_traits.dm

/datum/station_trait/glowsticksA positive station trait that scatters a bunch of lit glowsticks throughout maintenance
/datum/station_trait/assistant_gimmicksSpawns assistants with some gear, either gimmicky or functional. Maybe, one day, it will inspire an assistant to do something productive or fun
\ No newline at end of file diff --git a/code/datums/status_effects/_status_effect.html b/code/datums/status_effects/_status_effect.html new file mode 100644 index 0000000000000..f01e35cdbd93d --- /dev/null +++ b/code/datums/status_effects/_status_effect.html @@ -0,0 +1,2 @@ +code/datums/status_effects/_status_effect.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/_status_effect.dm

/datum/status_effectStatus effects are used to apply temporary or permanent effects to mobs. +This file contains their code, plus code for applying and removing them.
/atom/movable/screen/alert/status_effectAlert base type for status effect alerts
\ No newline at end of file diff --git a/code/datums/status_effects/buffs.html b/code/datums/status_effects/buffs.html new file mode 100644 index 0000000000000..21253bbb0e12a --- /dev/null +++ b/code/datums/status_effects/buffs.html @@ -0,0 +1,2 @@ +code/datums/status_effects/buffs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/buffs.dm

/datum/status_effect/limited_buff/health_buffthis buff provides a max health buff and a heal.
/datum/status_effect/blessing_of_insanityGranted to wizards upon satisfying the cheese sacrifice during grand rituals. +Halves incoming damage and makes the owner stun immune, damage slow immune, levitating(even in space and hyperspace!) and glowing.
/datum/status_effect/jump_jetGives you a brief period of anti-gravity
/datum/status_effect/radiation_immunityMakes the mob immune to radiation for a short bit to help with safely spawning in hazardous areas
/datum/status_effect/shadow_regenerationHeal in darkness and potentially trigger other effects, persists for a short duration after leaving
\ No newline at end of file diff --git a/code/datums/status_effects/buffs/bioware/_bioware.html b/code/datums/status_effects/buffs/bioware/_bioware.html new file mode 100644 index 0000000000000..6bd8d284dc76d --- /dev/null +++ b/code/datums/status_effects/buffs/bioware/_bioware.html @@ -0,0 +1 @@ +code/datums/status_effects/buffs/bioware/_bioware.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/buffs/bioware/_bioware.dm

/datum/status_effect/bioware
\ No newline at end of file diff --git a/code/datums/status_effects/buffs/bioware/circulation.html b/code/datums/status_effects/buffs/bioware/circulation.html new file mode 100644 index 0000000000000..b5834826b58e4 --- /dev/null +++ b/code/datums/status_effects/buffs/bioware/circulation.html @@ -0,0 +1 @@ +code/datums/status_effects/buffs/bioware/circulation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/buffs/bioware/circulation.dm

/datum/status_effect/bioware/heart/muscled_veinsMuscled veins - Removes the need to have a heart
/datum/status_effect/bioware/heart/threaded_veinsThreaded veins - Bleed way less
\ No newline at end of file diff --git a/code/datums/status_effects/buffs/food/_food_effect.html b/code/datums/status_effects/buffs/food/_food_effect.html new file mode 100644 index 0000000000000..3e1c89144d67b --- /dev/null +++ b/code/datums/status_effects/buffs/food/_food_effect.html @@ -0,0 +1 @@ +code/datums/status_effects/buffs/food/_food_effect.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/buffs/food/_food_effect.dm

/datum/status_effect/foodBuffs given by eating hand-crafted food. The duration scales with consumable reagents purity.
\ No newline at end of file diff --git a/code/datums/status_effects/buffs/food/chilling.html b/code/datums/status_effects/buffs/food/chilling.html new file mode 100644 index 0000000000000..3931aff5a2d2e --- /dev/null +++ b/code/datums/status_effects/buffs/food/chilling.html @@ -0,0 +1 @@ +code/datums/status_effects/buffs/food/chilling.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/buffs/food/chilling.dm

/datum/status_effect/food/chillingfood effect applied by ice cream and frozen treats
\ No newline at end of file diff --git a/code/datums/status_effects/buffs/food/grant_trait.html b/code/datums/status_effects/buffs/food/grant_trait.html new file mode 100644 index 0000000000000..316bad199fd93 --- /dev/null +++ b/code/datums/status_effects/buffs/food/grant_trait.html @@ -0,0 +1 @@ +code/datums/status_effects/buffs/food/grant_trait.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/buffs/food/grant_trait.dm

/datum/status_effect/food/traitMakes you gain a trait
\ No newline at end of file diff --git a/code/datums/status_effects/buffs/food/haste.html b/code/datums/status_effects/buffs/food/haste.html new file mode 100644 index 0000000000000..cf883dbcbc91f --- /dev/null +++ b/code/datums/status_effects/buffs/food/haste.html @@ -0,0 +1 @@ +code/datums/status_effects/buffs/food/haste.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/buffs/food/haste.dm

/datum/status_effect/food/hasteHaste makes the eater move and act faster
\ No newline at end of file diff --git a/code/datums/status_effects/buffs/food/speech.html b/code/datums/status_effects/buffs/food/speech.html new file mode 100644 index 0000000000000..d07f51468ff3e --- /dev/null +++ b/code/datums/status_effects/buffs/food/speech.html @@ -0,0 +1 @@ +code/datums/status_effects/buffs/food/speech.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/buffs/food/speech.dm

/datum/status_effect/food/speechTemporary modifies the speech using the /datum/component/speechmod
\ No newline at end of file diff --git a/code/datums/status_effects/buffs/stun_absorption.html b/code/datums/status_effects/buffs/stun_absorption.html new file mode 100644 index 0000000000000..80b64a5d66888 --- /dev/null +++ b/code/datums/status_effects/buffs/stun_absorption.html @@ -0,0 +1,2 @@ +code/datums/status_effects/buffs/stun_absorption.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/buffs/stun_absorption.dm

/datum/status_effect/stun_absorptionA status effect effectively functions as TRAIT_STUNIMMUNE, but with additional effects tied to it, +such as showing a message on trigger / examine, or only blocking a limited amount of stuns.
\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/blindness.html b/code/datums/status_effects/debuffs/blindness.html new file mode 100644 index 0000000000000..9c8cac17d72d8 --- /dev/null +++ b/code/datums/status_effects/debuffs/blindness.html @@ -0,0 +1,3 @@ +code/datums/status_effects/debuffs/blindness.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/status_effects/debuffs/blindness.dm

CAN_BE_BLINDHelper macro, for ease of expanding checks for mobs which cannot be blinded +There are no reason why these cannot be blinded, it is simply for "design reasons" (these things shouldn't be blinded)
/datum/status_effect/grouped/nearsightedNearsighted
/datum/status_effect/grouped/blindnessBlindness
/datum/status_effect/temporary_blindnessThis status effect handles applying a temporary blind to the mob.

Define Details

CAN_BE_BLIND

Helper macro, for ease of expanding checks for mobs which cannot be blinded +There are no reason why these cannot be blinded, it is simply for "design reasons" (these things shouldn't be blinded)

\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/confusion.html b/code/datums/status_effects/debuffs/confusion.html new file mode 100644 index 0000000000000..fccdd33cc733a --- /dev/null +++ b/code/datums/status_effects/debuffs/confusion.html @@ -0,0 +1 @@ +code/datums/status_effects/debuffs/confusion.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/status_effects/debuffs/confusion.dm

CONFUSION_FULL_THRESHOLDThe threshold in which all of our movements are fully randomized, in seconds.
CONFUSION_SIDEWAYS_MOVE_PROB_PER_SECONDA multiplier applied on how much time is left (in seconds) that determines the chance of moving sideways randomly
CONFUSION_DIAGONAL_MOVE_PROB_PER_SECONDA multiplier applied on how much time is left (in seconds) that determines the chance of moving diagonally randomly
/datum/status_effect/confusionA status effect used for adding confusion to a mob.

Define Details

CONFUSION_DIAGONAL_MOVE_PROB_PER_SECOND

A multiplier applied on how much time is left (in seconds) that determines the chance of moving diagonally randomly

CONFUSION_FULL_THRESHOLD

The threshold in which all of our movements are fully randomized, in seconds.

CONFUSION_SIDEWAYS_MOVE_PROB_PER_SECOND

A multiplier applied on how much time is left (in seconds) that determines the chance of moving sideways randomly

\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/cursed.html b/code/datums/status_effects/debuffs/cursed.html new file mode 100644 index 0000000000000..20e0855b03a7f --- /dev/null +++ b/code/datums/status_effects/debuffs/cursed.html @@ -0,0 +1,2 @@ +code/datums/status_effects/debuffs/cursed.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/debuffs/cursed.dm

/datum/status_effect/grouped/cursedStatus effect that gives the target miscellanous debuffs while throwing a status alert and causing them to smoke from the damage they're incurring. +Purposebuilt for cursed slot machines.
\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/cyborg.html b/code/datums/status_effects/debuffs/cyborg.html new file mode 100644 index 0000000000000..a78b2cde15c34 --- /dev/null +++ b/code/datums/status_effects/debuffs/cyborg.html @@ -0,0 +1 @@ +code/datums/status_effects/debuffs/cyborg.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/debuffs/cyborg.dm

/datum/status_effect/borg_throw_slowReduce a cyborg's speed when you throw things at it
\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/debuffs.html b/code/datums/status_effects/debuffs/debuffs.html new file mode 100644 index 0000000000000..3def265d96616 --- /dev/null +++ b/code/datums/status_effects/debuffs/debuffs.html @@ -0,0 +1 @@ +code/datums/status_effects/debuffs/debuffs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/status_effects/debuffs/debuffs.dm

HEALING_SLEEP_DEFAULTThe damage healed per tick while sleeping without any modifiers
HEALING_SLEEP_ORGAN_MULTIPLIERThe sleep healing multiplier for organ passive healing (since organs heal slowly)
SLEEP_QUALITY_WORKOUT_MULTIPLERThe sleep multiplier for fitness xp conversion
/datum/status_effect/incapacitating/incapacitatedThis status effect represents anything that leaves a character unable to perform basic tasks (interrupting do-afters, for example), but doesn't incapacitate them further than that (no stuns etc..)
/datum/status_effect/teleport_madnessMaddly teleports the victim around all of space for 10 seconds

Define Details

HEALING_SLEEP_DEFAULT

The damage healed per tick while sleeping without any modifiers

HEALING_SLEEP_ORGAN_MULTIPLIER

The sleep healing multiplier for organ passive healing (since organs heal slowly)

SLEEP_QUALITY_WORKOUT_MULTIPLER

The sleep multiplier for fitness xp conversion

\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/decloning.html b/code/datums/status_effects/debuffs/decloning.html new file mode 100644 index 0000000000000..c6554857c222b --- /dev/null +++ b/code/datums/status_effects/debuffs/decloning.html @@ -0,0 +1 @@ +code/datums/status_effects/debuffs/decloning.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/status_effects/debuffs/decloning.dm

MUTADONE_HEALThe amount of mutadone we can process for strike recovery at once.

Define Details

MUTADONE_HEAL

The amount of mutadone we can process for strike recovery at once.

\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/dna_transformation.html b/code/datums/status_effects/debuffs/dna_transformation.html new file mode 100644 index 0000000000000..9f2e2e021b988 --- /dev/null +++ b/code/datums/status_effects/debuffs/dna_transformation.html @@ -0,0 +1,2 @@ +code/datums/status_effects/debuffs/dna_transformation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/debuffs/dna_transformation.dm

/datum/status_effect/temporary_transformationTransforms a carbon mob into a new DNA for a set amount of time, +then turns them back to how they were before transformation.
\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/drugginess.html b/code/datums/status_effects/debuffs/drugginess.html new file mode 100644 index 0000000000000..abaf5c7c25bd6 --- /dev/null +++ b/code/datums/status_effects/debuffs/drugginess.html @@ -0,0 +1 @@ +code/datums/status_effects/debuffs/drugginess.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/debuffs/drugginess.dm

/datum/status_effect/drugginessDrugginess / "high" effect, makes your screen rainbow
/atom/movable/screen/alert/status_effect/highThe status effect for "drugginess"
\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/drunk.html b/code/datums/status_effects/debuffs/drunk.html new file mode 100644 index 0000000000000..3c6b62565d38b --- /dev/null +++ b/code/datums/status_effects/debuffs/drunk.html @@ -0,0 +1,4 @@ +code/datums/status_effects/debuffs/drunk.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/status_effects/debuffs/drunk.dm

TIPSY_THRESHOLDThe threshld which determine if someone is tipsy vs drunk
/datum/status_effect/inebriatedThe drunk status effect. +Slowly decreases in drunk_value over time, causing effects based on that value.
/datum/status_effect/inebriated/tipsyStage 1 of drunk, applied at drunk values between 0 and 6. +Basically is the "drunk but no side effects" stage.
/datum/status_effect/inebriated/drunkStage 2 of being drunk, applied at drunk values between 6 and onward. +Has all the main side effects of being drunk, scaling up as they get more drunk.
/atom/movable/screen/alert/status_effect/drunkStatus effect for being fully drunk (not tipsy).

Define Details

TIPSY_THRESHOLD

The threshld which determine if someone is tipsy vs drunk

\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/hallucination.html b/code/datums/status_effects/debuffs/hallucination.html new file mode 100644 index 0000000000000..88e4937db1734 --- /dev/null +++ b/code/datums/status_effects/debuffs/hallucination.html @@ -0,0 +1,2 @@ +code/datums/status_effects/debuffs/hallucination.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/debuffs/hallucination.dm

/datum/status_effect/hallucinationHallucination status effect. How most hallucinations end up happening. +Hallucinations are drawn from the global weighted list, random_hallucination_weighted_list
\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/hooked.html b/code/datums/status_effects/debuffs/hooked.html new file mode 100644 index 0000000000000..4f4c4497f593b --- /dev/null +++ b/code/datums/status_effects/debuffs/hooked.html @@ -0,0 +1 @@ +code/datums/status_effects/debuffs/hooked.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/debuffs/hooked.dm

/datum/status_effect/grouped/hookedStatus effect applied when casting a fishing rod at someone, provided the attached fishing hook allows it.
/datum/status_effect/grouped/hooked/jawsVersion used by the jawed fishing hook, which also applies slowdown
\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/screen_blur.html b/code/datums/status_effects/debuffs/screen_blur.html new file mode 100644 index 0000000000000..30b5ad49f93c8 --- /dev/null +++ b/code/datums/status_effects/debuffs/screen_blur.html @@ -0,0 +1,3 @@ +code/datums/status_effects/debuffs/screen_blur.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/status_effects/debuffs/screen_blur.dm

BLUR_DURATION_TO_INTENSITYThis number is multiplied by the duration remaining (IN SECONDS, NOT DECISECONDS) +of the eye blur status effect to determine the intensity of the blur on the user
/datum/status_effect/eye_blurApplies a blur to the user's screen, increasing in strength depending on duration remaining.

Define Details

BLUR_DURATION_TO_INTENSITY

This number is multiplied by the duration remaining (IN SECONDS, NOT DECISECONDS) +of the eye blur status effect to determine the intensity of the blur on the user

\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/screwy_hud.html b/code/datums/status_effects/debuffs/screwy_hud.html new file mode 100644 index 0000000000000..3647283fae925 --- /dev/null +++ b/code/datums/status_effects/debuffs/screwy_hud.html @@ -0,0 +1 @@ +code/datums/status_effects/debuffs/screwy_hud.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/debuffs/screwy_hud.dm

/datum/status_effect/grouped/screwy_hudScrewy hud status.
\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/slime/slime_food.html b/code/datums/status_effects/debuffs/slime/slime_food.html new file mode 100644 index 0000000000000..932409bc0d0f7 --- /dev/null +++ b/code/datums/status_effects/debuffs/slime/slime_food.html @@ -0,0 +1 @@ +code/datums/status_effects/debuffs/slime/slime_food.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/debuffs/slime/slime_food.dm

/datum/status_effect/slime_foodAdds pheromones to a mob. If the target slime drains the mob to death, they might befriend the user
\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/slime/slimed.html b/code/datums/status_effects/debuffs/slime/slimed.html new file mode 100644 index 0000000000000..d1a198d7d2613 --- /dev/null +++ b/code/datums/status_effects/debuffs/slime/slimed.html @@ -0,0 +1 @@ +code/datums/status_effects/debuffs/slime/slimed.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/status_effects/debuffs/slime/slimed.dm

MIN_WATER_STACKSThe minimum amount of water stacks needed to start washing off the slime.
MIN_HEALTHThe minimum amount of health a mob has to have before the status effect is removed.

Define Details

MIN_HEALTH

The minimum amount of health a mob has to have before the status effect is removed.

MIN_WATER_STACKS

The minimum amount of water stacks needed to start washing off the slime.

\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/staggered.html b/code/datums/status_effects/debuffs/staggered.html new file mode 100644 index 0000000000000..c33652908d208 --- /dev/null +++ b/code/datums/status_effects/debuffs/staggered.html @@ -0,0 +1,4 @@ +code/datums/status_effects/debuffs/staggered.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/debuffs/staggered.dm

/datum/status_effect/staggeredStaggered, Next Shove Stuns, No Side Kick +Status effects related to shoving effects and collisions due to shoving +Staggered can occur most often via shoving, but can also occur in other places too.
/datum/status_effect/next_shove_stunsStatus effect specifically for instances where someone is vulnerable to being stunned when shoved.
/datum/status_effect/no_side_kickStatus effect to prevent stuns from a shove +Only applied by shoving someone to paralyze them
\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/strandling.html b/code/datums/status_effects/debuffs/strandling.html new file mode 100644 index 0000000000000..2c6ad17866af5 --- /dev/null +++ b/code/datums/status_effects/debuffs/strandling.html @@ -0,0 +1 @@ +code/datums/status_effects/debuffs/strandling.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/status_effects/debuffs/strandling.dm

STRANGLING_TOOL_MULTIPLIERA multiplier to the time it takes to remove durathread strangling when using a tool instead of your hands

Define Details

STRANGLING_TOOL_MULTIPLIER

A multiplier to the time it takes to remove durathread strangling when using a tool instead of your hands

\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/terrified.html b/code/datums/status_effects/debuffs/terrified.html new file mode 100644 index 0000000000000..ba4e18c2b0833 --- /dev/null +++ b/code/datums/status_effects/debuffs/terrified.html @@ -0,0 +1 @@ +code/datums/status_effects/debuffs/terrified.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/status_effects/debuffs/terrified.dm

DARKNESS_TERROR_AMOUNTAmount of terror passively generated (or removed) on every tick based on lighting.
PANIC_ATTACK_TERROR_AMOUNTHow much terror a random panic attack will give the victim.
HUG_TERROR_AMOUNTAmount of terror actively removed (or generated) upon being hugged.
STACK_TERROR_AMOUNTAmount of terror caused by subsequent casting of the Terrify spell.
DARKNESS_TERROR_CAPThe soft cap on how much passively generated terror you can have. Takes about 30 seconds to reach without the victim being actively terrorized.
TERROR_FEAR_THRESHOLDThe terror_buildup threshold for minor fear effects to occur.
TERROR_PANIC_THRESHOLDThe terror_buildup threshold for the more serious effects. Takes about 20 seconds of darkness buildup to reach.
TERROR_HEART_ATTACK_THRESHOLDTerror buildup will cause a heart attack and knock them out, removing the status effect.
/atom/movable/screen/alert/status_effect/terrifiedThe status effect popup for the terror status effect

Define Details

DARKNESS_TERROR_AMOUNT

Amount of terror passively generated (or removed) on every tick based on lighting.

DARKNESS_TERROR_CAP

The soft cap on how much passively generated terror you can have. Takes about 30 seconds to reach without the victim being actively terrorized.

HUG_TERROR_AMOUNT

Amount of terror actively removed (or generated) upon being hugged.

PANIC_ATTACK_TERROR_AMOUNT

How much terror a random panic attack will give the victim.

STACK_TERROR_AMOUNT

Amount of terror caused by subsequent casting of the Terrify spell.

TERROR_FEAR_THRESHOLD

The terror_buildup threshold for minor fear effects to occur.

TERROR_HEART_ATTACK_THRESHOLD

Terror buildup will cause a heart attack and knock them out, removing the status effect.

TERROR_PANIC_THRESHOLD

The terror_buildup threshold for the more serious effects. Takes about 20 seconds of darkness buildup to reach.

\ No newline at end of file diff --git a/code/datums/status_effects/debuffs/tox_vomit.html b/code/datums/status_effects/debuffs/tox_vomit.html new file mode 100644 index 0000000000000..1667154baf567 --- /dev/null +++ b/code/datums/status_effects/debuffs/tox_vomit.html @@ -0,0 +1 @@ +code/datums/status_effects/debuffs/tox_vomit.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/debuffs/tox_vomit.dm

/datum/status_effect/tox_vomitSimple status effect applied when a mob has high toxins and starts to vomit regularly
\ No newline at end of file diff --git a/code/datums/status_effects/grouped_effect.html b/code/datums/status_effects/grouped_effect.html new file mode 100644 index 0000000000000..60474d22bd8a8 --- /dev/null +++ b/code/datums/status_effects/grouped_effect.html @@ -0,0 +1 @@ +code/datums/status_effects/grouped_effect.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/grouped_effect.dm

/datum/status_effect/groupedStatus effect from multiple sources, when all sources are removed, so is the effect
\ No newline at end of file diff --git a/code/datums/status_effects/limited_effect.html b/code/datums/status_effects/limited_effect.html new file mode 100644 index 0000000000000..19966bb3053a2 --- /dev/null +++ b/code/datums/status_effects/limited_effect.html @@ -0,0 +1 @@ +code/datums/status_effects/limited_effect.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/limited_effect.dm

/datum/status_effect/limited_buffThese effects reapply their on_apply() effect when refreshed while stacks < max_stacks.
\ No newline at end of file diff --git a/code/datums/status_effects/neutral.html b/code/datums/status_effects/neutral.html new file mode 100644 index 0000000000000..40fd2e27bb854 --- /dev/null +++ b/code/datums/status_effects/neutral.html @@ -0,0 +1,5 @@ +code/datums/status_effects/neutral.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/neutral.dm

/datum/status_effect/offering/no_item_receivedThis status effect is meant only for items that you don't actually receive +when offered, mostly useful for /obj/item/hand_item subtypes.
/datum/status_effect/offering/no_item_received/needs_restingThis status effect is meant only to be used for offerings that require the target to +be resting (like when you're trying to give them a hand to help them up). +Also doesn't require them to have their hands free (since you're not giving them +anything).
/datum/status_effect/offering/no_item_received/high_fiveSubtype for high fives, so we can fake out people
/datum/status_effect/surrender_timedFor when you need to make someone be prompted for surrender, but not forever
/datum/status_effect/tinlux_lightMakes the mob luminescent for the duration of the effect.
\ No newline at end of file diff --git a/code/datums/status_effects/song_effects.html b/code/datums/status_effects/song_effects.html new file mode 100644 index 0000000000000..f2c511ed3da88 --- /dev/null +++ b/code/datums/status_effects/song_effects.html @@ -0,0 +1 @@ +code/datums/status_effects/song_effects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/song_effects.dm

/datum/status_effect/songType of status effect applied by music played by the festival sect. Stacks upon itself, and removes all other song subtypes other than itself.
\ No newline at end of file diff --git a/code/datums/status_effects/stacking_effect.html b/code/datums/status_effects/stacking_effect.html new file mode 100644 index 0000000000000..b001b95f8ca50 --- /dev/null +++ b/code/datums/status_effects/stacking_effect.html @@ -0,0 +1 @@ +code/datums/status_effects/stacking_effect.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/stacking_effect.dm

/datum/status_effect/stackingStatus effects that can stack.
\ No newline at end of file diff --git a/code/datums/status_effects/wound_effects.html b/code/datums/status_effects/wound_effects.html new file mode 100644 index 0000000000000..ca49f081af02b --- /dev/null +++ b/code/datums/status_effects/wound_effects.html @@ -0,0 +1 @@ +code/datums/status_effects/wound_effects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/status_effects/wound_effects.dm

/atom/movable/screen/alert/status_effect/woundWOUNDS
\ No newline at end of file diff --git a/code/datums/storage/storage.html b/code/datums/storage/storage.html new file mode 100644 index 0000000000000..abe9afa4efce4 --- /dev/null +++ b/code/datums/storage/storage.html @@ -0,0 +1,4 @@ +code/datums/storage/storage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/storage/storage.dm

/datum/storageDatumized Storage +Eliminates the need for custom signals specifically for the storage component, and attaches a storage variable (atom_storage) to every atom. +The parent and real_location variables are both weakrefs, so they must be resolved before they can be used. +If you're looking to create custom storage type behaviors, check ../subtypes
\ No newline at end of file diff --git a/code/datums/storage/storage_interface.html b/code/datums/storage/storage_interface.html new file mode 100644 index 0000000000000..bff6ecc6988fd --- /dev/null +++ b/code/datums/storage/storage_interface.html @@ -0,0 +1 @@ +code/datums/storage/storage_interface.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/storage/storage_interface.dm

/datum/storage_interfaceDatum tracker for storage UI
\ No newline at end of file diff --git a/code/datums/storage/subtypes/cards.html b/code/datums/storage/subtypes/cards.html new file mode 100644 index 0000000000000..b65c226cd1aac --- /dev/null +++ b/code/datums/storage/subtypes/cards.html @@ -0,0 +1 @@ +code/datums/storage/subtypes/cards.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/storage/subtypes/cards.dm

/datum/storage/tcgA storage component to be used on card piles, for use as hands/decks/discard piles. Don't use on something that's not a card pile!
\ No newline at end of file diff --git a/code/datums/storage/subtypes/rped.html b/code/datums/storage/subtypes/rped.html new file mode 100644 index 0000000000000..6e70f56adfd2b --- /dev/null +++ b/code/datums/storage/subtypes/rped.html @@ -0,0 +1 @@ +code/datums/storage/subtypes/rped.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/storage/subtypes/rped.dm

MAX_STACK_PICKUPStorage component used for RPEDs. Rather than manually setting everything with a get_part_rating() value, we just check if it has the variable required for insertion.

Define Details

MAX_STACK_PICKUP

Storage component used for RPEDs. Rather than manually setting everything with a get_part_rating() value, we just check if it has the variable required for insertion.

\ No newline at end of file diff --git a/code/datums/verb_callbacks.html b/code/datums/verb_callbacks.html new file mode 100644 index 0000000000000..748da90304ad0 --- /dev/null +++ b/code/datums/verb_callbacks.html @@ -0,0 +1,2 @@ +code/datums/verb_callbacks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/verb_callbacks.dm

/datum/callback/verb_callbacklike normal callbacks but they also record their creation time for measurement purposes +they also require the same usr/user that made the callback to both still exist and to still have a client in order to execute
\ No newline at end of file diff --git a/code/datums/view.html b/code/datums/view.html new file mode 100644 index 0000000000000..8077ca796b5b5 --- /dev/null +++ b/code/datums/view.html @@ -0,0 +1 @@ +code/datums/view.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/view.dm

/datum/view_dataContainer for client viewsize
\ No newline at end of file diff --git a/code/datums/visual_data.html b/code/datums/visual_data.html new file mode 100644 index 0000000000000..83c7ab231d179 --- /dev/null +++ b/code/datums/visual_data.html @@ -0,0 +1,2 @@ +code/datums/visual_data.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/visual_data.dm

/datum/visual_data/trackingTracks but does not relay updates to someone's visual data +Accepts a second visual data datum to use as a source of truth for the mob's values
/datum/visual_data/mirroringTracks and updates another mob with our mob's visual data
\ No newline at end of file diff --git a/code/datums/voice_of_god_command.html b/code/datums/voice_of_god_command.html new file mode 100644 index 0000000000000..0302a38d805e6 --- /dev/null +++ b/code/datums/voice_of_god_command.html @@ -0,0 +1,2 @@ +code/datums/voice_of_god_command.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/voice_of_god_command.dm

/datum/voice_of_god_commandVoice of god command datums that are used in [/proc/voice_of_god()]
/datum/voice_of_god_command/knockdownThis command knocks the listeners down.
/datum/voice_of_god_command/immobilizeThis command stops the listeners from moving.
/datum/voice_of_god_command/vomitThis command makes carbon listeners throw up like Mr. Creosote.
/datum/voice_of_god_command/silenceThis command silences the listeners. Thrice as effective is the user is a mime or curator.
/datum/voice_of_god_command/hallucinateThis command makes the listeners see others as corgis, carps, skellies etcetera etcetera.
/datum/voice_of_god_command/wake_upThis command wakes up the listeners.
/datum/voice_of_god_command/healThis command heals the listeners for 10 points of total damage.
/datum/voice_of_god_command/bruteThis command applies 15 points of brute damage to the listeners. There's subtle theological irony in this being more powerful than healing.
/datum/voice_of_god_command/bleedThis command makes carbon listeners bleed from a random body part.
/datum/voice_of_god_command/burnThis command sets the listeners ablaze.
/datum/voice_of_god_command/hotThis command heats the listeners up like boiling water.
/datum/voice_of_god_command/coldThis command cools the listeners down like freezing water.
/datum/voice_of_god_command/repulseThis command throws the listeners away from the user.
/datum/voice_of_god_command/attractThis command throws the listeners at the user.
/datum/voice_of_god_command/who_are_youThis command forces the listeners to say their true name (so masks and hoods won't help). +Basic and simple mobs who are forced to state their name and don't have one already will... reveal their actual one!
/datum/voice_of_god_command/say_my_nameThis command forces the listeners to say the user's name
/datum/voice_of_god_command/knock_knockThis command forces the listeners to say "Who's there?".
/datum/voice_of_god_command/state_lawsThis command forces silicon listeners to state all their laws.
/datum/voice_of_god_command/moveThis command forces the listeners to take step in a direction chosen by the user, otherwise a random cardinal one.
/datum/voice_of_god_command/walkThis command forces the listeners to switch to walk intent.
/datum/voice_of_god_command/runThis command forces the listeners to switch to run intent.
/datum/voice_of_god_command/throw_catchThis command turns the listeners' throw mode on.
/datum/voice_of_god_command/speakThis command forces the listeners to say a brain damage line.
/datum/voice_of_god_command/getupThis command forces the listeners to get the fuck up, resetting all stuns.
/datum/voice_of_god_command/sitThis command forces each listener to buckle to a chair found on the same tile.
/datum/voice_of_god_command/standThis command forces each listener to unbuckle from whatever they are buckled to.
/datum/voice_of_god_command/jumpThis command forces the listener to do the jump emote 3/4 of the times or reply "HOW HIGH?!!".
/datum/voice_of_god_command/honkThis command plays a bikehorn sound after 2 seconds and a half have passed, and also slips listeners if the user is a clown.
/datum/voice_of_god_command/multispinThis command spins the listeners 1800° degrees clockwise.
/datum/voice_of_god_command/emoteSupertype of all those commands that make people emote and nothing else. Fuck copypasta.
\ No newline at end of file diff --git a/code/datums/votes/_vote_datum.html b/code/datums/votes/_vote_datum.html new file mode 100644 index 0000000000000..c88bf46b7e492 --- /dev/null +++ b/code/datums/votes/_vote_datum.html @@ -0,0 +1 @@ +code/datums/votes/_vote_datum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/votes/_vote_datum.dm

/datum/voteA singleton datum that represents a type of vote for the voting subsystem.
\ No newline at end of file diff --git a/code/datums/votes/custom_vote.html b/code/datums/votes/custom_vote.html new file mode 100644 index 0000000000000..34117f4df69f7 --- /dev/null +++ b/code/datums/votes/custom_vote.html @@ -0,0 +1 @@ +code/datums/votes/custom_vote.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/datums/votes/custom_vote.dm

MAX_CUSTOM_VOTE_OPTIONSThe max amount of options someone can have in a custom vote.

Define Details

MAX_CUSTOM_VOTE_OPTIONS

The max amount of options someone can have in a custom vote.

\ No newline at end of file diff --git a/code/datums/weakrefs.html b/code/datums/weakrefs.html new file mode 100644 index 0000000000000..2528553f6b1e7 --- /dev/null +++ b/code/datums/weakrefs.html @@ -0,0 +1,3 @@ +code/datums/weakrefs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/weakrefs.dm

/proc/WEAKREFCreates a weakref to the given input. +See /datum/weakref's documentation for more information.
/datum/weakrefA weakref holds a non-owning reference to a datum. +The datum can be referenced again using resolve().
\ No newline at end of file diff --git a/code/datums/weather/weather.html b/code/datums/weather/weather.html new file mode 100644 index 0000000000000..725e7829a08fd --- /dev/null +++ b/code/datums/weather/weather.html @@ -0,0 +1 @@ +code/datums/weather/weather.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/weather/weather.dm

/datum/weatherCauses weather to occur on a z level in certain area types
\ No newline at end of file diff --git a/code/datums/weather/weather_types/radiation_storm.html b/code/datums/weather/weather_types/radiation_storm.html new file mode 100644 index 0000000000000..8a42a24af199f --- /dev/null +++ b/code/datums/weather/weather_types/radiation_storm.html @@ -0,0 +1 @@ +code/datums/weather/weather_types/radiation_storm.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/weather/weather_types/radiation_storm.dm

/datum/weather/rad_storm/nebulaUsed by the radioactive nebula when the station doesnt have enough shielding
\ No newline at end of file diff --git a/code/datums/weather/weather_types/snow_storm.html b/code/datums/weather/weather_types/snow_storm.html new file mode 100644 index 0000000000000..d3e375837149f --- /dev/null +++ b/code/datums/weather/weather_types/snow_storm.html @@ -0,0 +1 @@ +code/datums/weather/weather_types/snow_storm.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/weather/weather_types/snow_storm.dm

/datum/weather/snow_storm/forever_stormA storm that doesn't stop storming, and is a bit stronger
\ No newline at end of file diff --git a/code/datums/wounds/_wound_static_data.html b/code/datums/wounds/_wound_static_data.html new file mode 100644 index 0000000000000..5349a154b9cff --- /dev/null +++ b/code/datums/wounds/_wound_static_data.html @@ -0,0 +1 @@ +code/datums/wounds/_wound_static_data.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/wounds/_wound_static_data.dm

/datum/wound_pregen_dataA singleton datum that holds pre-gen and static data about a wound. Each wound datum should have a corresponding wound_pregen_data.
\ No newline at end of file diff --git a/code/datums/wounds/bones.html b/code/datums/wounds/bones.html new file mode 100644 index 0000000000000..3eb84409aafc6 --- /dev/null +++ b/code/datums/wounds/bones.html @@ -0,0 +1 @@ +code/datums/wounds/bones.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/wounds/bones.dm

/datum/wound/blunt/bone/moderateJoint Dislocation (Moderate Blunt)
/datum/wound/blunt/bone/criticalCompound Fracture (Critical Blunt)
\ No newline at end of file diff --git a/code/datums/wounds/burns.html b/code/datums/wounds/burns.html new file mode 100644 index 0000000000000..21b2ddfb3cc2f --- /dev/null +++ b/code/datums/wounds/burns.html @@ -0,0 +1 @@ +code/datums/wounds/burns.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/wounds/burns.dm

/datum/wound/burn/flesh/severe/brandspecial severe wound caused by sparring interference or other god related punishments.
/datum/wound/burn/flesh/severe/cursed_brandspecial severe wound caused by the cursed slot machine.
\ No newline at end of file diff --git a/code/datums/wounds/cranial_fissure.html b/code/datums/wounds/cranial_fissure.html new file mode 100644 index 0000000000000..ab40de23c971e --- /dev/null +++ b/code/datums/wounds/cranial_fissure.html @@ -0,0 +1,3 @@ +code/datums/wounds/cranial_fissure.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/wounds/cranial_fissure.dm

/datum/wound/cranial_fissureA wound applied when receiving significant enough damage to the head. +Will allow other players to take your eyes out of your head, and slipping +will cause your brain to fall out of your head.
\ No newline at end of file diff --git a/code/datums/wounds/scars/_scars.html b/code/datums/wounds/scars/_scars.html new file mode 100644 index 0000000000000..83965711aa8ae --- /dev/null +++ b/code/datums/wounds/scars/_scars.html @@ -0,0 +1,2 @@ +code/datums/wounds/scars/_scars.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/datums/wounds/scars/_scars.dm

/datum/scarscars are cosmetic datums that are assigned to bodyparts once they recover from wounds. Each wound type and severity have their own descriptions for what the scars +look like, and then each body part has a list of "specific locations" like your elbow or wrist or wherever the scar can appear, to make it more interesting than "right arm"
\ No newline at end of file diff --git a/code/game/area/areas.html b/code/game/area/areas.html new file mode 100644 index 0000000000000..35f1a2276f9bb --- /dev/null +++ b/code/game/area/areas.html @@ -0,0 +1,2 @@ +code/game/area/areas.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/area/areas.dm

/areaA grouping of tiles into a logical space, mostly used by map editors
/proc/process_teleport_locsGenerate a list of turfs you can teleport to from the areas list
/area/golemA blank area subtype solely used by the golem area editor for the purpose of +allowing golems to create new areas without suffering from the hazard_area debuffs.
\ No newline at end of file diff --git a/code/game/area/areas/ai_monitored.html b/code/game/area/areas/ai_monitored.html new file mode 100644 index 0000000000000..1615af3a71c8c --- /dev/null +++ b/code/game/area/areas/ai_monitored.html @@ -0,0 +1,3 @@ +code/game/area/areas/ai_monitored.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/area/areas/ai_monitored.dm

/area/station/ai_monitored/command/storage/evaSet the areas that will receive expanded access for the engineers on an orange alert +Maintenance, bridge, departmental lobbies and inner rooms. No access to security. +Sensitive areas like the vault, command quarters, heads' offices, etc. are not applicable.
\ No newline at end of file diff --git a/code/game/area/areas/mining.html b/code/game/area/areas/mining.html new file mode 100644 index 0000000000000..6d8cce1517258 --- /dev/null +++ b/code/game/area/areas/mining.html @@ -0,0 +1 @@ +code/game/area/areas/mining.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/area/areas/mining.dm

/area/mineMine areas
/area/lavalandLavaland Areas
/area/lavaland/surface/outdoors/unexplored/danger/no_ruinsSame thing as parent, but uses a different map generator for the icemoon ruin that needs it.
/area/icemoonIce Moon Areas
/area/icemoon/surface/outdoors/nospawnthis is the area you use for stuff to not spawn, but if you still want weather.
\ No newline at end of file diff --git a/code/game/area/areas/ruins/space.html b/code/game/area/areas/ruins/space.html new file mode 100644 index 0000000000000..eb6e34576a1c6 --- /dev/null +++ b/code/game/area/areas/ruins/space.html @@ -0,0 +1 @@ +code/game/area/areas/ruins/space.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/area/areas/ruins/space.dm

/area/ruin/space/has_grav/atmosasteroidThe Atmos Asteroid Ruin, has a subtype for rapid identification since this has some unique atmospherics properties and we can easily detect it if something goes wonky.
\ No newline at end of file diff --git a/code/game/area/areas/shuttles.html b/code/game/area/areas/shuttles.html new file mode 100644 index 0000000000000..ea84998508799 --- /dev/null +++ b/code/game/area/areas/shuttles.html @@ -0,0 +1,2 @@ +code/game/area/areas/shuttles.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/area/areas/shuttles.dm

/area/shuttle/syndicateMulti-area shuttles +Syndicate infiltrator
/area/shuttle/piratePirate Shuttle
/area/shuttle/hunterBounty Hunter Shuttles
/area/shuttle/abandonedWhite Ship
/area/shuttle/transitSingle-area shuttles
/area/shuttle/ruin/caravanSpecial shuttles made for the Caravan Ambush ruin.
\ No newline at end of file diff --git a/code/game/atom.html b/code/game/atom.html new file mode 100644 index 0000000000000..215666f7d28a7 --- /dev/null +++ b/code/game/atom.html @@ -0,0 +1 @@ +code/game/atom/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Core /atom Systems

This is a folder of basic systems that apply to all /atom types, split into relevant files. Keep the files named fittingly and don't put anything in _atom.dm if you can avoid it.

\ No newline at end of file diff --git a/code/game/atom/atom_examine.html b/code/game/atom/atom_examine.html new file mode 100644 index 0000000000000..dda95913e69d3 --- /dev/null +++ b/code/game/atom/atom_examine.html @@ -0,0 +1 @@ +code/game/atom/atom_examine.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/atom/atom_examine.dm

/mob/living/carbon/humanAny humanoid (non-Xeno) mob, such as humans, plasmamen, lizards.
/mob/living/silicon/robotThe Shrinkening
\ No newline at end of file diff --git a/code/game/atoms_movable.html b/code/game/atoms_movable.html new file mode 100644 index 0000000000000..10764d4264771 --- /dev/null +++ b/code/game/atoms_movable.html @@ -0,0 +1,3 @@ +code/game/atoms_movable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/atoms_movable.dm

/proc/generate_space_underlayGenerates a space underlay for a turf +This provides proper lighting support alongside just looking nice +Accepts the appearance to make "spaceish", and the turf we're doing this for
\ No newline at end of file diff --git a/code/game/data_huds.html b/code/game/data_huds.html new file mode 100644 index 0000000000000..c1d2d47009008 --- /dev/null +++ b/code/game/data_huds.html @@ -0,0 +1 @@ +code/game/data_huds.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/data_huds.dm

/proc/update_matching_security_hudsUpdates the visual security huds on all mobs in GLOB.human_list that match the name passed to it.
/proc/update_all_security_hudsUpdates the visual security huds on all mobs in GLOB.human_list
/proc/RoundDiagBarDiagnostic HUDs!
\ No newline at end of file diff --git a/code/game/gamemodes/events.html b/code/game/gamemodes/events.html new file mode 100644 index 0000000000000..32f789e440569 --- /dev/null +++ b/code/game/gamemodes/events.html @@ -0,0 +1 @@ +code/game/gamemodes/events.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/gamemodes/events.dm

/proc/power_failureCauses a power failure across the station.
/proc/power_restoreRestores power to all rooms on the station.
/proc/power_restore_quickA quicker version of /proc/power_restore that only handles recharging SMESs.
\ No newline at end of file diff --git a/code/game/gamemodes/objective.html b/code/game/gamemodes/objective.html new file mode 100644 index 0000000000000..a5195fa2788f7 --- /dev/null +++ b/code/game/gamemodes/objective.html @@ -0,0 +1 @@ +code/game/gamemodes/objective.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/gamemodes/objective.dm

/proc/considered_escapedChecks if the passed mind is considered "escaped".
\ No newline at end of file diff --git a/code/game/machinery/PDApainter.html b/code/game/machinery/PDApainter.html new file mode 100644 index 0000000000000..1126f0d5a463a --- /dev/null +++ b/code/game/machinery/PDApainter.html @@ -0,0 +1 @@ +code/game/machinery/PDApainter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/PDApainter.dm

/obj/machinery/pdapainterBasic machine used to paint PDAs and re-trim ID cards.
/obj/machinery/pdapainter/securitySecurity departmental variant. Limited to PDAs defined in the SSid_access.sub_department_managers_tgui data structure.
/obj/machinery/pdapainter/medbayMedical departmental variant. Limited to PDAs defined in the SSid_access.sub_department_managers_tgui data structure.
/obj/machinery/pdapainter/researchScience departmental variant. Limited to PDAs defined in the SSid_access.sub_department_managers_tgui data structure.
/obj/machinery/pdapainter/engineeringEngineering departmental variant. Limited to PDAs defined in the SSid_access.sub_department_managers_tgui data structure.
/obj/machinery/pdapainter/supplySupply departmental variant. Limited to PDAs defined in the SSid_access.sub_department_managers_tgui data structure.
\ No newline at end of file diff --git a/code/game/machinery/_machinery.html b/code/game/machinery/_machinery.html new file mode 100644 index 0000000000000..1ea957aef10c3 --- /dev/null +++ b/code/game/machinery/_machinery.html @@ -0,0 +1 @@ +code/game/machinery/_machinery.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/_machinery.dm

/obj/machineryMachines in the world, such as computers, pipes, and airlocks.
\ No newline at end of file diff --git a/code/game/machinery/big_manipulator.html b/code/game/machinery/big_manipulator.html new file mode 100644 index 0000000000000..9fb6e161f1ae2 --- /dev/null +++ b/code/game/machinery/big_manipulator.html @@ -0,0 +1 @@ +code/game/machinery/big_manipulator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/big_manipulator.dm

/obj/machinery/big_manipulatorManipulator Core. Main part of the mechanism that carries out the entire process.
/obj/effect/big_manipulator_handManipulator hand. Effect we animate to show that the manipulator is working and moving something.
\ No newline at end of file diff --git a/code/game/machinery/buttons.html b/code/game/machinery/buttons.html new file mode 100644 index 0000000000000..1e1e3eadd7920 --- /dev/null +++ b/code/game/machinery/buttons.html @@ -0,0 +1 @@ +code/game/machinery/buttons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/buttons.dm

/obj/machinery/button/doorMAPPING PRESETS
\ No newline at end of file diff --git a/code/game/machinery/camera/camera.html b/code/game/machinery/camera/camera.html new file mode 100644 index 0000000000000..ef81e30e1b5ac --- /dev/null +++ b/code/game/machinery/camera/camera.html @@ -0,0 +1,2 @@ +code/game/machinery/camera/camera.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/camera/camera.dm

/obj/item/wallframe/cameraCamera assembly frame +Putting this on a wall will put a deconstructed camera machine on the wall.
\ No newline at end of file diff --git a/code/game/machinery/camera/presets.html b/code/game/machinery/camera/presets.html new file mode 100644 index 0000000000000..6c4cf8bf5c16e --- /dev/null +++ b/code/game/machinery/camera/presets.html @@ -0,0 +1,10 @@ +code/game/machinery/camera/presets.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/camera/presets.dm

/obj/machinery/camera/autoname/deconstructedDeconstructed Camera +Used by wallmounted cameras, starts off deconstructed and requires building by a player.
/obj/machinery/camera/emp_proofEMP Proof +Starts off with the EMP protection upgrade, and can't start unactivated.
/obj/machinery/camera/xrayX-Ray Cameras +Starts off with x-ray, and can't start deactivated.
/obj/machinery/camera/motionMotion camera +Starts off with the motion detector and can't be disablede on roundstart.
/obj/machinery/camera/allAll camera +Has all upgrades by default, can't be disabled roundstart.
/obj/machinery/camera/autonameAutonaming camera +Automatically names itself after the area it's in during post_machine_initialize, +good for mappers who don't want to manually name them all.
/obj/machinery/camera/preset/ordnanceBomb preset +Can't be disabled, sees further, doesn't cost power, can be seen by ordnance +cameras, and is indestructible (so bomb-proof).
/obj/machinery/camera/exosuitThe internal camera object for exosuits, applied by the camera upgrade
\ No newline at end of file diff --git a/code/game/machinery/camera/trackable.html b/code/game/machinery/camera/trackable.html new file mode 100644 index 0000000000000..29bba8aa0dc69 --- /dev/null +++ b/code/game/machinery/camera/trackable.html @@ -0,0 +1 @@ +code/game/machinery/camera/trackable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/camera/trackable.dm

CAMERA_TICK_LIMITHow many ticks to try to find a target before giving up.

Define Details

CAMERA_TICK_LIMIT

How many ticks to try to find a target before giving up.

\ No newline at end of file diff --git a/code/game/machinery/civilian_bounties.html b/code/game/machinery/civilian_bounties.html new file mode 100644 index 0000000000000..68ac132313c57 --- /dev/null +++ b/code/game/machinery/civilian_bounties.html @@ -0,0 +1 @@ +code/game/machinery/civilian_bounties.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/civilian_bounties.dm

CIV_BOUNTY_SPLITPercentage of a civilian bounty the civilian will make.
/obj/machinery/piratepad/civilianPad for the Civilian Bounty Control.
/obj/machinery/computer/piratepad_control/civilianComputer for assigning new civilian bounties, and sending bounties for collection.
/obj/item/bounty_cubeUpon completion of a civilian bounty, one of these is created. It is sold to cargo to give the cargo budget bounty money, and the person who completed it cash.
/obj/item/civ_bounty_beaconBeacon to launch a new bounty setup when activated.

Define Details

CIV_BOUNTY_SPLIT

Percentage of a civilian bounty the civilian will make.

\ No newline at end of file diff --git a/code/game/machinery/computer/arcade/amputation.html b/code/game/machinery/computer/arcade/amputation.html new file mode 100644 index 0000000000000..c8d0a1a593484 --- /dev/null +++ b/code/game/machinery/computer/arcade/amputation.html @@ -0,0 +1 @@ +code/game/machinery/computer/arcade/amputation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/computer/arcade/amputation.dm

/obj/machinery/computer/arcade/amputation/festiveDispenses wrapped gifts instead of arcade prizes, also known as the ancap christmas tree
\ No newline at end of file diff --git a/code/game/machinery/computer/arcade/battle.html b/code/game/machinery/computer/arcade/battle.html new file mode 100644 index 0000000000000..fa3e4c8183952 --- /dev/null +++ b/code/game/machinery/computer/arcade/battle.html @@ -0,0 +1 @@ +code/game/machinery/computer/arcade/battle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/computer/arcade/battle.dm

WORLD_ENEMY_BOSSHow many enemies needs to be defeated until the 'Boss' of the stage appears.
DEFAULT_EXP_GAINThe default amount of EXP you gain from killing an enemy, modifiers stacked on top of this.
DEFAULT_ITEM_PRICEThe default cost to purchase an item. Sleeping at the Inn is half of this.
PLAYER_MAX_HPThe max HP the player can have at any time.
PLAYER_MAX_MPThe max MP the player can have at any time.
SPELL_MP_COSTThe default cost of a spell, in MP. Defending will instead restore this amount.
UI_PANEL_SHOPThe player is currently in the Shop.
UI_PANEL_WORLD_MAPThe player is currently in the World Map.
UI_PANEL_BATTLEThe player is currently in Batle.
UI_PANEL_BETWEEN_FIGHTSThe player is currently between battles.
UI_PANEL_GAMEOVERThe player is currently Game Overed.
BATTLE_ATTACK_FLAG_COUNTERATTACKThe player is set to counterattack the enemy's next move.
BATTLE_ATTACK_FLAG_DEFENDThe player is set to defend against the enemy's next move.
BATTLE_ARCADE_PLAYER_ATTACKThe player is trying to Attack the Enemy.
BATTLE_ARCADE_PLAYER_HEAVY_ATTACKThe player is trying to Attack the Enemy with an MP boost.
BATTLE_ARCADE_PLAYER_COUNTERATTACKThe player is setting themselves to counterattack a potential incoming Enemy attack.
BATTLE_ARCADE_PLAYER_DEFENDThe player is defending against the Enemy and restoring MP.

Define Details

BATTLE_ARCADE_PLAYER_ATTACK

The player is trying to Attack the Enemy.

BATTLE_ARCADE_PLAYER_COUNTERATTACK

The player is setting themselves to counterattack a potential incoming Enemy attack.

BATTLE_ARCADE_PLAYER_DEFEND

The player is defending against the Enemy and restoring MP.

BATTLE_ARCADE_PLAYER_HEAVY_ATTACK

The player is trying to Attack the Enemy with an MP boost.

BATTLE_ATTACK_FLAG_COUNTERATTACK

The player is set to counterattack the enemy's next move.

BATTLE_ATTACK_FLAG_DEFEND

The player is set to defend against the enemy's next move.

DEFAULT_EXP_GAIN

The default amount of EXP you gain from killing an enemy, modifiers stacked on top of this.

DEFAULT_ITEM_PRICE

The default cost to purchase an item. Sleeping at the Inn is half of this.

PLAYER_MAX_HP

The max HP the player can have at any time.

PLAYER_MAX_MP

The max MP the player can have at any time.

SPELL_MP_COST

The default cost of a spell, in MP. Defending will instead restore this amount.

UI_PANEL_BATTLE

The player is currently in Batle.

UI_PANEL_BETWEEN_FIGHTS

The player is currently between battles.

UI_PANEL_GAMEOVER

The player is currently Game Overed.

UI_PANEL_SHOP

The player is currently in the Shop.

UI_PANEL_WORLD_MAP

The player is currently in the World Map.

WORLD_ENEMY_BOSS

How many enemies needs to be defeated until the 'Boss' of the stage appears.

\ No newline at end of file diff --git a/code/game/machinery/computer/arcade/orion.html b/code/game/machinery/computer/arcade/orion.html new file mode 100644 index 0000000000000..4a56dca0e0807 --- /dev/null +++ b/code/game/machinery/computer/arcade/orion.html @@ -0,0 +1 @@ +code/game/machinery/computer/arcade/orion.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/computer/arcade/orion.dm

/obj/item/orion_shipA minibomb achieved from winning at emagged Orion.
\ No newline at end of file diff --git a/code/game/machinery/computer/arcade/orion_event.html b/code/game/machinery/computer/arcade/orion_event.html new file mode 100644 index 0000000000000..6a38a8b241abe --- /dev/null +++ b/code/game/machinery/computer/arcade/orion_event.html @@ -0,0 +1 @@ +code/game/machinery/computer/arcade/orion_event.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/computer/arcade/orion_event.dm

/datum/orion_event/engine_partEngine Breakdown - spend one engine part or wait 3 days (harmless emag effect)
/datum/orion_event/electronic_partMalfunction - spend one engine part or wait 3 days (emag effect randomizes some stats)
/datum/orion_event/hull_partCollision - spend one engine part or wait 3 days (has a nasty emag effect)
/datum/orion_event/black_holeBlack Hole - final (emag can spawn singulo, see death event)
/datum/orion_event/black_hole_deathYou died to a black hole, have some fluff text
/datum/orion_event/space_portYou found a space port!
/datum/orion_event/space_port/tau_cetiYou found the midway mark!
/datum/orion_event/space_port_raidYou raided a space port!
\ No newline at end of file diff --git a/code/game/machinery/computer/atmos_computers/__identifiers.html b/code/game/machinery/computer/atmos_computers/__identifiers.html new file mode 100644 index 0000000000000..fea7b532cc6a4 --- /dev/null +++ b/code/game/machinery/computer/atmos_computers/__identifiers.html @@ -0,0 +1 @@ +code/game/machinery/computer/atmos_computers/__identifiers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/computer/atmos_computers/__identifiers.dm

CHAMBER_INPUT_FROM_IDmaps an air sensor's chamber id to its input valve[ i.e. outlet_injector] id
CHAMBER_OUTPUT_FROM_IDmaps an air sensor's chamber id to its output valve[i.e. vent pump] id

Define Details

CHAMBER_INPUT_FROM_ID

maps an air sensor's chamber id to its input valve[ i.e. outlet_injector] id

CHAMBER_OUTPUT_FROM_ID

maps an air sensor's chamber id to its output valve[i.e. vent pump] id

\ No newline at end of file diff --git a/code/game/machinery/computer/atmos_computers/_air_sensor.html b/code/game/machinery/computer/atmos_computers/_air_sensor.html new file mode 100644 index 0000000000000..25ae253308be9 --- /dev/null +++ b/code/game/machinery/computer/atmos_computers/_air_sensor.html @@ -0,0 +1,5 @@ +code/game/machinery/computer/atmos_computers/_air_sensor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/computer/atmos_computers/_air_sensor.dm

/obj/machinery/air_sensorGas tank air sensor. +These always hook to monitors, be mindful of them
/obj/item/air_sensorA portable version of the /obj/machinery/air_sensor +Wrenching it & turning it on will convert it back to /obj/machinery/air_sensor +Unwelding /obj/machinery/air_sensor will turn it back to /obj/item/air_sensor +The logic is same as meters
\ No newline at end of file diff --git a/code/game/machinery/computer/atmos_computers/_atmos_control.html b/code/game/machinery/computer/atmos_computers/_atmos_control.html new file mode 100644 index 0000000000000..425876f02d28d --- /dev/null +++ b/code/game/machinery/computer/atmos_computers/_atmos_control.html @@ -0,0 +1 @@ +code/game/machinery/computer/atmos_computers/_atmos_control.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/computer/atmos_computers/_atmos_control.dm

/obj/machinery/computer/atmos_controlGENERAL AIR CONTROL (a.k.a atmos computer)
/obj/machinery/computer/atmos_control/fixedVegetable
\ No newline at end of file diff --git a/code/game/machinery/computer/buildandrepair.html b/code/game/machinery/computer/buildandrepair.html new file mode 100644 index 0000000000000..db0197122da8b --- /dev/null +++ b/code/game/machinery/computer/buildandrepair.html @@ -0,0 +1 @@ +code/game/machinery/computer/buildandrepair.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/computer/buildandrepair.dm

/obj/structure/frame/computer/rcdHelpers for rcd
\ No newline at end of file diff --git a/code/game/machinery/computer/communications.html b/code/game/machinery/computer/communications.html new file mode 100644 index 0000000000000..0b9aba839c111 --- /dev/null +++ b/code/game/machinery/computer/communications.html @@ -0,0 +1 @@ +code/game/machinery/computer/communications.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/computer/communications.dm

HACK_PIRATEDefines for the various hack results.
MIN_GHOSTS_FOR_PIRATESThe minimum number of ghosts / observers to have the chance of spawning pirates.
MIN_GHOSTS_FOR_FUGITIVESThe minimum number of ghosts / observers to have the chance of spawning fugitives.
MAX_PERCENT_GHOSTS_FOR_SLEEPERThe maximum percentage of the population to be ghosts before we no longer have the chance of spawning Sleeper Agents.

Define Details

HACK_PIRATE

Defines for the various hack results.

MAX_PERCENT_GHOSTS_FOR_SLEEPER

The maximum percentage of the population to be ghosts before we no longer have the chance of spawning Sleeper Agents.

MIN_GHOSTS_FOR_FUGITIVES

The minimum number of ghosts / observers to have the chance of spawning fugitives.

MIN_GHOSTS_FOR_PIRATES

The minimum number of ghosts / observers to have the chance of spawning pirates.

\ No newline at end of file diff --git a/code/game/machinery/computer/crew.html b/code/game/machinery/computer/crew.html new file mode 100644 index 0000000000000..26894a690e599 --- /dev/null +++ b/code/game/machinery/computer/crew.html @@ -0,0 +1 @@ +code/game/machinery/computer/crew.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/computer/crew.dm

SENSORS_UPDATE_PERIODHow often the sensor data is updated
UNKNOWN_JOB_IDThe job sorting ID associated with otherwise unknown jobs

Define Details

SENSORS_UPDATE_PERIOD

How often the sensor data is updated

UNKNOWN_JOB_ID

The job sorting ID associated with otherwise unknown jobs

\ No newline at end of file diff --git a/code/game/machinery/computer/dna_console.html b/code/game/machinery/computer/dna_console.html new file mode 100644 index 0000000000000..6089bcca9d25b --- /dev/null +++ b/code/game/machinery/computer/dna_console.html @@ -0,0 +1 @@ +code/game/machinery/computer/dna_console.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/computer/dna_console.dm

MIN_ACTIVATOR_TIMEOUTBase timeout for creating mutation activators
ACTIVATOR_COOLDOWN_MULTIPLIERBase cooldown multiplier for activator upgrades
MIN_INJECTOR_TIMEOUTBase timeout for creating mutation injectors
INJECTOR_COOLDOWN_MULTIPLIERBase cooldown multiplier for injecotr upgrades
MIN_ADVANCED_TIMEOUTBase timeout for creating advanced injectors
ADVANCED_COOLDOWN_MULTIPLIERBase cooldown multiplier for advanced injector upgrades
MISC_INJECTOR_TIMEOUTUsed for other things like UI/UE/Initial CD
NUMBER_OF_BUFFERSMaximum number of genetic makeup storage slots in DNA Console
SCRAMBLE_TIMEOUTTimeout for DNA Scramble in DNA Consoles
JOKER_TIMEOUTTimeout for using the Joker feature to solve a gene in DNA Console
JOKER_UPGRADEHow much time DNA Scanner upgrade tiers remove from JOKER_TIMEOUT
GENETIC_DAMAGE_STRENGTH_MAXMaximum value for genetic damage strength when pulsing enzymes
GENETIC_DAMAGE_STRENGTH_MULTIPLIERLarger multipliers will affect the range of values when pulsing enzymes
GENETIC_DAMAGE_DURATION_MAXMaximum value for the genetic damage pulse duration when pulsing enzymes
GENETIC_DAMAGE_ACCURACY_MULTIPLIERLarge values reduce pulse accuracy and may pulse other enzymes than selected
STATUS_TRANSFORMINGSpecial status indicating a scanner occupant is transforming eg. from monkey to human
GENETIC_DAMAGE_IRGENETIC_DAMAGE_MULTIPLIERMultiplier for how much genetic damage received from DNA Console functionality
SEARCH_OCCUPANTFlag for the mutation ref search system. Search will include scanner occupant
SEARCH_STOREDFlag for the mutation ref search system. Search will include console storage
SEARCH_DISKETTEFlag for the mutation ref search system. Search will include diskette storage
SEARCH_ADV_INJFlag for the mutation ref search system. Search will include advanced injector mutations
ENZYME_COPY_BASE_COOLDOWNThe base cooldown of the ability to copy enzymes and genetic makeup to people.
CLEAR_GENEInput from tgui interface. X the gene out.
NEXT_GENEInput from tgui interface. Progress to the next gene.
PREV_GENEInput from tgui interface. Progress to previous gene.

Define Details

ACTIVATOR_COOLDOWN_MULTIPLIER

Base cooldown multiplier for activator upgrades

ADVANCED_COOLDOWN_MULTIPLIER

Base cooldown multiplier for advanced injector upgrades

CLEAR_GENE

Input from tgui interface. X the gene out.

ENZYME_COPY_BASE_COOLDOWN

The base cooldown of the ability to copy enzymes and genetic makeup to people.

GENETIC_DAMAGE_ACCURACY_MULTIPLIER

Large values reduce pulse accuracy and may pulse other enzymes than selected

GENETIC_DAMAGE_DURATION_MAX

Maximum value for the genetic damage pulse duration when pulsing enzymes

GENETIC_DAMAGE_IRGENETIC_DAMAGE_MULTIPLIER

Multiplier for how much genetic damage received from DNA Console functionality

GENETIC_DAMAGE_STRENGTH_MAX

Maximum value for genetic damage strength when pulsing enzymes

GENETIC_DAMAGE_STRENGTH_MULTIPLIER

Larger multipliers will affect the range of values when pulsing enzymes

INJECTOR_COOLDOWN_MULTIPLIER

Base cooldown multiplier for injecotr upgrades

JOKER_TIMEOUT

Timeout for using the Joker feature to solve a gene in DNA Console

JOKER_UPGRADE

How much time DNA Scanner upgrade tiers remove from JOKER_TIMEOUT

MIN_ACTIVATOR_TIMEOUT

Base timeout for creating mutation activators

MIN_ADVANCED_TIMEOUT

Base timeout for creating advanced injectors

MIN_INJECTOR_TIMEOUT

Base timeout for creating mutation injectors

MISC_INJECTOR_TIMEOUT

Used for other things like UI/UE/Initial CD

NEXT_GENE

Input from tgui interface. Progress to the next gene.

NUMBER_OF_BUFFERS

Maximum number of genetic makeup storage slots in DNA Console

PREV_GENE

Input from tgui interface. Progress to previous gene.

SCRAMBLE_TIMEOUT

Timeout for DNA Scramble in DNA Consoles

SEARCH_ADV_INJ

Flag for the mutation ref search system. Search will include advanced injector mutations

SEARCH_DISKETTE

Flag for the mutation ref search system. Search will include diskette storage

SEARCH_OCCUPANT

Flag for the mutation ref search system. Search will include scanner occupant

SEARCH_STORED

Flag for the mutation ref search system. Search will include console storage

STATUS_TRANSFORMING

Special status indicating a scanner occupant is transforming eg. from monkey to human

\ No newline at end of file diff --git a/code/game/machinery/computer/orders/order_computer/mining_order.html b/code/game/machinery/computer/orders/order_computer/mining_order.html new file mode 100644 index 0000000000000..807932006febc --- /dev/null +++ b/code/game/machinery/computer/orders/order_computer/mining_order.html @@ -0,0 +1 @@ +code/game/machinery/computer/orders/order_computer/mining_order.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/computer/orders/order_computer/mining_order.dm

/obj/item/mining_voucherMining Equipment Voucher
TO_USER_IDMining Point Card

Define Details

TO_USER_ID

Mining Point Card

\ No newline at end of file diff --git a/code/game/machinery/computer/orders/order_items/order_datum.html b/code/game/machinery/computer/orders/order_items/order_datum.html new file mode 100644 index 0000000000000..864704e9ccd53 --- /dev/null +++ b/code/game/machinery/computer/orders/order_items/order_datum.html @@ -0,0 +1 @@ +code/game/machinery/computer/orders/order_items/order_datum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/computer/orders/order_items/order_datum.dm

/datum/orderable_itemA datum for chef ordering options from the chef's computer.
\ No newline at end of file diff --git a/code/game/machinery/computer/records/records.html b/code/game/machinery/computer/records/records.html new file mode 100644 index 0000000000000..e07350218cdd4 --- /dev/null +++ b/code/game/machinery/computer/records/records.html @@ -0,0 +1 @@ +code/game/machinery/computer/records/records.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/computer/records/records.dm

/obj/machinery/computer/recordsRecords subtype for the shared functionality between medical/security/warrant consoles.
\ No newline at end of file diff --git a/code/game/machinery/computer/records/security.html b/code/game/machinery/computer/records/security.html new file mode 100644 index 0000000000000..695dda1b4e2dd --- /dev/null +++ b/code/game/machinery/computer/records/security.html @@ -0,0 +1 @@ +code/game/machinery/computer/records/security.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/computer/records/security.dm

MAX_CRIME_NAME_LENEditing this will cause UI issues.
/obj/item/circuit_component/arrest_console_dataSecurity circuit component

Define Details

MAX_CRIME_NAME_LEN

Editing this will cause UI issues.

\ No newline at end of file diff --git a/code/game/machinery/computer/telescreen.html b/code/game/machinery/computer/telescreen.html new file mode 100644 index 0000000000000..868265c1914e5 --- /dev/null +++ b/code/game/machinery/computer/telescreen.html @@ -0,0 +1,2 @@ +code/game/machinery/computer/telescreen.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/computer/telescreen.dm

/proc/start_broadcasting_networkAdds a camera network to all entertainment monitors.
/proc/stop_broadcasting_networkRemoves a camera network from all entertainment monitors.
/proc/set_network_broadcast_statusSets the camera network status on all entertainment monitors. +A way to force a network to a status if you are unsure of the current state.
/obj/machinery/button/showtimeA button that adds a camera network to the entertainment monitors
\ No newline at end of file diff --git a/code/game/machinery/deployable.html b/code/game/machinery/deployable.html new file mode 100644 index 0000000000000..760d271a6e3b7 --- /dev/null +++ b/code/game/machinery/deployable.html @@ -0,0 +1 @@ +code/game/machinery/deployable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/deployable.dm

/obj/structure/barricade/woodenBARRICADE TYPES
\ No newline at end of file diff --git a/code/game/machinery/dna_infuser/dna_infuser.html b/code/game/machinery/dna_infuser/dna_infuser.html new file mode 100644 index 0000000000000..6116dc6466099 --- /dev/null +++ b/code/game/machinery/dna_infuser/dna_infuser.html @@ -0,0 +1 @@ +code/game/machinery/dna_infuser/dna_infuser.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/dna_infuser/dna_infuser.dm

INFUSING_TIMEhow long it takes to infuse
SCREAM_TIMEwe throw in a scream along the way.

Define Details

INFUSING_TIME

how long it takes to infuse

SCREAM_TIME

we throw in a scream along the way.

\ No newline at end of file diff --git a/code/game/machinery/dna_infuser/infuser_entry.html b/code/game/machinery/dna_infuser/infuser_entry.html new file mode 100644 index 0000000000000..251fadd2b4d2b --- /dev/null +++ b/code/game/machinery/dna_infuser/infuser_entry.html @@ -0,0 +1 @@ +code/game/machinery/dna_infuser/infuser_entry.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/dna_infuser/infuser_entry.dm

/proc/prepare_infuser_entriesGlobal proc that sets up each /datum/infuser_entry sub-type as singleton instances in a list, and returns it.
\ No newline at end of file diff --git a/code/game/machinery/dna_infuser/organ_sets/carp_organs.html b/code/game/machinery/dna_infuser/organ_sets/carp_organs.html new file mode 100644 index 0000000000000..24d5488acc86c --- /dev/null +++ b/code/game/machinery/dna_infuser/organ_sets/carp_organs.html @@ -0,0 +1,2 @@ +code/game/machinery/dna_infuser/organ_sets/carp_organs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/dna_infuser/organ_sets/carp_organs.dm

/datum/status_effect/organ_set_bonus/carpbonus of the carp: you can swim through space!
/obj/item/organ/internal/lungs/carpCarp lungs! You can breathe in space! Oh... you can't breathe on the station, you need low oxygen environments. +Inverts behavior of lungs. Bypasses suffocation due to space / lack of gas, but also allows Oxygen to suffocate.
/obj/item/organ/internal/tongue/carpoccasionally sheds carp teeth, stronger melee (bite) attacks, but you can't cover your mouth anymore.
/obj/item/organ/internal/brain/carpcarp brain. you need to occasionally go to a new zlevel. think of it as... walking your dog!
/obj/item/organ/internal/heart/carpmakes you cold resistant, but heat-weak.
\ No newline at end of file diff --git a/code/game/machinery/dna_infuser/organ_sets/fly_organs.html b/code/game/machinery/dna_infuser/organ_sets/fly_organs.html new file mode 100644 index 0000000000000..fac56d117cec2 --- /dev/null +++ b/code/game/machinery/dna_infuser/organ_sets/fly_organs.html @@ -0,0 +1 @@ +code/game/machinery/dna_infuser/organ_sets/fly_organs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/dna_infuser/organ_sets/fly_organs.dm

/datum/status_effect/organ_set_bonus/flybonus of the fly: you... are a flyperson now. sorry.
\ No newline at end of file diff --git a/code/game/machinery/dna_infuser/organ_sets/goliath_organs.html b/code/game/machinery/dna_infuser/organ_sets/goliath_organs.html new file mode 100644 index 0000000000000..4d3acd167c422 --- /dev/null +++ b/code/game/machinery/dna_infuser/organ_sets/goliath_organs.html @@ -0,0 +1 @@ +code/game/machinery/dna_infuser/organ_sets/goliath_organs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/dna_infuser/organ_sets/goliath_organs.dm

/datum/status_effect/organ_set_bonus/goliathbonus of the goliath: you can swim through space!
/obj/item/organ/internal/eyes/night_vision/goliathgoliath eyes, simple night vision
/obj/item/organ/internal/lungs/lavaland/goliathgoliath lungs! You can breathe lavaland air mix but can't breath pure O2 from a tank anymore.
/obj/item/organ/internal/brain/goliathgoliath brain. you can't use gloves but one of your arms becomes a tendril hammer that can be used to mine!
/obj/item/organ/internal/heart/goliathgoliath heart gives you the ability to survive ash storms.
\ No newline at end of file diff --git a/code/game/machinery/dna_infuser/organ_sets/gondola_organs.html b/code/game/machinery/dna_infuser/organ_sets/gondola_organs.html new file mode 100644 index 0000000000000..9e3f2ca48bca0 --- /dev/null +++ b/code/game/machinery/dna_infuser/organ_sets/gondola_organs.html @@ -0,0 +1 @@ +code/game/machinery/dna_infuser/organ_sets/gondola_organs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/dna_infuser/organ_sets/gondola_organs.dm

/datum/status_effect/organ_set_bonus/gondolabonus of the observing gondola: you can ignore environmental hazards
/obj/item/organ/internal/heart/gondolamakes you a pacifist and turns most mobs neutral towards you
/obj/item/organ/internal/tongue/gondolaZen (tounge): You can no longer speak, but get a powerful positive moodlet
/obj/item/organ/internal/liver/gondolaLoving arms: your hands become unable to hold much of anything but your hugs now infuse the subject with pax.
\ No newline at end of file diff --git a/code/game/machinery/dna_infuser/organ_sets/rat_organs.html b/code/game/machinery/dna_infuser/organ_sets/rat_organs.html new file mode 100644 index 0000000000000..d608a324f11b3 --- /dev/null +++ b/code/game/machinery/dna_infuser/organ_sets/rat_organs.html @@ -0,0 +1 @@ +code/game/machinery/dna_infuser/organ_sets/rat_organs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/dna_infuser/organ_sets/rat_organs.dm

/datum/status_effect/organ_set_bonus/ratbonus of the rat: you can ventcrawl!
/obj/item/organ/internal/eyes/night_vision/ratway better night vision, super sensitive. lotta things work like this, huh?
/obj/item/organ/internal/stomach/ratincreases hunger, disgust recovers quicker, expands what is defined as "food"
/obj/item/organ/internal/heart/ratmakes you smaller, walk over tables, and take 1.5x damage
/obj/item/organ/internal/tongue/ratyou occasionally squeak, and have some rat related verbal tics
\ No newline at end of file diff --git a/code/game/machinery/dna_infuser/organ_sets/roach_organs.html b/code/game/machinery/dna_infuser/organ_sets/roach_organs.html new file mode 100644 index 0000000000000..4818ae0753a74 --- /dev/null +++ b/code/game/machinery/dna_infuser/organ_sets/roach_organs.html @@ -0,0 +1,7 @@ +code/game/machinery/dna_infuser/organ_sets/roach_organs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/dna_infuser/organ_sets/roach_organs.dm

/obj/item/organ/internal/heart/roachRoach heart: +Reduces damage taken from brute attacks from behind, +but increases duration of knockdowns
/obj/item/organ/internal/stomach/roachRoach stomach: +Makes disgust a non-issue, very slightly worse at passing off reagents +Also makes you more hungry
/obj/item/organ/internal/liver/roachRoach liver: +Purges toxins at a higher threshold, but takes more damage from them if not purged
/obj/item/organ/internal/appendix/roachRoach appendix: +No appendicitus! weee!
\ No newline at end of file diff --git a/code/game/machinery/doors/airlock.html b/code/game/machinery/doors/airlock.html new file mode 100644 index 0000000000000..1f9b345bf2433 --- /dev/null +++ b/code/game/machinery/doors/airlock.html @@ -0,0 +1,6 @@ +code/game/machinery/doors/airlock.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/doors/airlock.dm

/proc/get_airlock_overlayOverlay cache. Why isn't this just in /obj/machinery/door/airlock? Because its used just a +tiny bit in door_assembly.dm Refactored so you don't have to make a null copy of airlock +to get to the damn thing +Someone, for the love of god, profile this. Is there a reason to cache mutable_appearance +if so, why are we JUST doing the airlocks when we can put this in mutable_appearance.dm for +everything
\ No newline at end of file diff --git a/code/game/machinery/doors/brigdoors.html b/code/game/machinery/doors/brigdoors.html new file mode 100644 index 0000000000000..3f57ef86ef657 --- /dev/null +++ b/code/game/machinery/doors/brigdoors.html @@ -0,0 +1 @@ +code/game/machinery/doors/brigdoors.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/doors/brigdoors.dm

/obj/machinery/status_display/door_timerBrig Door control displays.
\ No newline at end of file diff --git a/code/game/machinery/doors/firedoor.html b/code/game/machinery/doors/firedoor.html new file mode 100644 index 0000000000000..08a69747236bf --- /dev/null +++ b/code/game/machinery/doors/firedoor.html @@ -0,0 +1 @@ +code/game/machinery/doors/firedoor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/doors/firedoor.dm

DEFAULT_STEP_TIMEdefault time for each step

Define Details

DEFAULT_STEP_TIME

default time for each step

\ No newline at end of file diff --git a/code/game/machinery/flatpacker.html b/code/game/machinery/flatpacker.html new file mode 100644 index 0000000000000..ac677b43c9cfd --- /dev/null +++ b/code/game/machinery/flatpacker.html @@ -0,0 +1 @@ +code/game/machinery/flatpacker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/flatpacker.dm

CREATE_AND_INCREMENTIncremets an an value assosiated by an key in the list creating that value if nessassary
MAX_FLAT_PACKSMaximum number of flatpacks in a cart

Define Details

CREATE_AND_INCREMENT

Incremets an an value assosiated by an key in the list creating that value if nessassary

MAX_FLAT_PACKS

Maximum number of flatpacks in a cart

\ No newline at end of file diff --git a/code/game/machinery/incident_display.html b/code/game/machinery/incident_display.html new file mode 100644 index 0000000000000..17c2d34eb2262 --- /dev/null +++ b/code/game/machinery/incident_display.html @@ -0,0 +1 @@ +code/game/machinery/incident_display.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/incident_display.dm

DISPLAY_DELAMDisplay days since last delam on incident sign
DISPLAY_TRAMDisplay current number of tram hits on incident sign

Define Details

DISPLAY_DELAM

Display days since last delam on incident sign

DISPLAY_TRAM

Display current number of tram hits on incident sign

\ No newline at end of file diff --git a/code/game/machinery/iv_drip.html b/code/game/machinery/iv_drip.html new file mode 100644 index 0000000000000..c264745ca82ee --- /dev/null +++ b/code/game/machinery/iv_drip.html @@ -0,0 +1 @@ +code/game/machinery/iv_drip.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/iv_drip.dm

IV_TAKINGIV drip operation mode when it sucks blood from the object
IV_INJECTINGIV drip operation mode when it injects reagents into the object
IV_TRANSFER_RATE_STEPWhat the transfer rate value is rounded to
MIN_IV_TRANSFER_RATEMinimum possible IV drip transfer rate in units per second
MAX_IV_TRANSFER_RATEMaximum possible IV drip transfer rate in units per second
DEFAULT_IV_TRANSFER_RATEDefault IV drip transfer rate in units per second
/obj/machinery/iv_dripUniversal IV that can drain blood or feed reagents over a period of time from or to a replaceable container

Define Details

DEFAULT_IV_TRANSFER_RATE

Default IV drip transfer rate in units per second

IV_INJECTING

IV drip operation mode when it injects reagents into the object

IV_TAKING

IV drip operation mode when it sucks blood from the object

IV_TRANSFER_RATE_STEP

What the transfer rate value is rounded to

MAX_IV_TRANSFER_RATE

Maximum possible IV drip transfer rate in units per second

MIN_IV_TRANSFER_RATE

Minimum possible IV drip transfer rate in units per second

\ No newline at end of file diff --git a/code/game/machinery/lightswitch.html b/code/game/machinery/lightswitch.html new file mode 100644 index 0000000000000..555f3bdfd9e5a --- /dev/null +++ b/code/game/machinery/lightswitch.html @@ -0,0 +1 @@ +code/game/machinery/lightswitch.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/lightswitch.dm

/obj/machinery/light_switchThe light switch. Can have multiple per area.
\ No newline at end of file diff --git a/code/game/machinery/limbgrower.html b/code/game/machinery/limbgrower.html new file mode 100644 index 0000000000000..7482bdd0c261e --- /dev/null +++ b/code/game/machinery/limbgrower.html @@ -0,0 +1,2 @@ +code/game/machinery/limbgrower.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/limbgrower.dm

/obj/machinery/limbgrowerThe limbgrower. Makes organd and limbs with synthflesh and chems. +See [limbgrower_designs.dm] for everything we can make.
\ No newline at end of file diff --git a/code/game/machinery/medical_kiosk.html b/code/game/machinery/medical_kiosk.html new file mode 100644 index 0000000000000..6e58ed3e62a06 --- /dev/null +++ b/code/game/machinery/medical_kiosk.html @@ -0,0 +1 @@ +code/game/machinery/medical_kiosk.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/medical_kiosk.dm

KIOSK_SCANNING_GENERALShows if the machine is being used for a general scan.
KIOSK_SCANNING_SYMPTOMSShows if the machine is being used for a disease scan.
KIOSK_SCANNING_NEURORADShows if the machine is being used for a radiation/brain trauma scan.
KIOSK_SCANNING_REAGENTSShows if the machine is being used for a reagent scan.

Define Details

KIOSK_SCANNING_GENERAL

Shows if the machine is being used for a general scan.

KIOSK_SCANNING_NEURORAD

Shows if the machine is being used for a radiation/brain trauma scan.

KIOSK_SCANNING_REAGENTS

Shows if the machine is being used for a reagent scan.

KIOSK_SCANNING_SYMPTOMS

Shows if the machine is being used for a disease scan.

\ No newline at end of file diff --git a/code/game/machinery/mining_weather_monitor.html b/code/game/machinery/mining_weather_monitor.html new file mode 100644 index 0000000000000..8eca007d88f5e --- /dev/null +++ b/code/game/machinery/mining_weather_monitor.html @@ -0,0 +1 @@ +code/game/machinery/mining_weather_monitor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/mining_weather_monitor.dm

/obj/machinery/mining_weather_monitorWall mounted mining weather tracker
\ No newline at end of file diff --git a/code/game/machinery/modular_shield.html b/code/game/machinery/modular_shield.html new file mode 100644 index 0000000000000..9995e9cb003b1 --- /dev/null +++ b/code/game/machinery/modular_shield.html @@ -0,0 +1 @@ +code/game/machinery/modular_shield.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/modular_shield.dm

/obj/machinery/modular_shield/moduleThe general code used for machines that want to connect to the network
\ No newline at end of file diff --git a/code/game/machinery/nebula_shielding.html b/code/game/machinery/nebula_shielding.html new file mode 100644 index 0000000000000..8aa0a9b786aa9 --- /dev/null +++ b/code/game/machinery/nebula_shielding.html @@ -0,0 +1 @@ +code/game/machinery/nebula_shielding.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/nebula_shielding.dm

/obj/machinery/nebula_shieldingMachinery that block nebulas. This type is for convenience, you can set nebula shielding on other objects as well using add_to_nebula_shielding()
/obj/machinery/nebula_shielding/emergencyShort-lived nebula shielding sent by centcom in-case there hasn't been shielding for a while
/obj/machinery/nebula_shielding/radiationWe shield against the radioactive nebula and passively generate tritium
/obj/machinery/nebula_shielding/emergency/radiationEmergency shielding so people aren't permanently in a radstorm if shit goes very wrong in engineering
/obj/item/paper/fluff/radiation_nebulaSmall explanation for engineering on how to set-up the radioactive nebula shielding
/obj/item/paper/fluff/radiation_nebula_virologistWarns medical that they can't use radioactive resonance
\ No newline at end of file diff --git a/code/game/machinery/newscaster/newscaster_data.html b/code/game/machinery/newscaster/newscaster_data.html new file mode 100644 index 0000000000000..e7fce5907e088 --- /dev/null +++ b/code/game/machinery/newscaster/newscaster_data.html @@ -0,0 +1,2 @@ +code/game/machinery/newscaster/newscaster_data.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/newscaster/newscaster_data.dm

/datum/station_requestA combined all in one datum that stores everything about the request, the requester's account, as well as the requestee's account +All of this is passed to the Request Console UI in order to present in organized way.
\ No newline at end of file diff --git a/code/game/machinery/newscaster/newspaper.html b/code/game/machinery/newscaster/newspaper.html new file mode 100644 index 0000000000000..45c2720bcfd38 --- /dev/null +++ b/code/game/machinery/newscaster/newspaper.html @@ -0,0 +1,3 @@ +code/game/machinery/newscaster/newspaper.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/newscaster/newspaper.dm

/obj/item/newspaperNewspapers +A static version of the newscaster, that won't update as new stories are added. +Can be scribbed upon to add extra text for future readers.
\ No newline at end of file diff --git a/code/game/machinery/photobooth.html b/code/game/machinery/photobooth.html new file mode 100644 index 0000000000000..ae4ef02532d46 --- /dev/null +++ b/code/game/machinery/photobooth.html @@ -0,0 +1,6 @@ +code/game/machinery/photobooth.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/photobooth.dm

/obj/machinery/photoboothPhotobooth +A machine used to change occupant's security record photos, working similarly to a +camera, but doesn't give any physical photo to the user. +Links to buttons for remote control.
/obj/machinery/photobooth/securitySecurity photobooth +Adds a height chart in the background, used for people you want to evidently stick out as prisoners. +Good for people you plan on putting in the permabrig.
\ No newline at end of file diff --git a/code/game/machinery/porta_turret/portable_turret_cover.html b/code/game/machinery/porta_turret/portable_turret_cover.html new file mode 100644 index 0000000000000..fafb6ad3963a8 --- /dev/null +++ b/code/game/machinery/porta_turret/portable_turret_cover.html @@ -0,0 +1 @@ +code/game/machinery/porta_turret/portable_turret_cover.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/porta_turret/portable_turret_cover.dm

/obj/machinery/porta_turret_coverPORTABLE TURRET COVER
\ No newline at end of file diff --git a/code/game/machinery/roulette_machine.html b/code/game/machinery/roulette_machine.html new file mode 100644 index 0000000000000..d026deac5e201 --- /dev/null +++ b/code/game/machinery/roulette_machine.html @@ -0,0 +1 @@ +code/game/machinery/roulette_machine.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/roulette_machine.dm

/obj/machinery/rouletteMachine that lets you play roulette. Odds are pre-defined to be the same as European Roulette without the "En Prison" rule
\ No newline at end of file diff --git a/code/game/machinery/shieldgen.html b/code/game/machinery/shieldgen.html new file mode 100644 index 0000000000000..ed8989fb95869 --- /dev/null +++ b/code/game/machinery/shieldgen.html @@ -0,0 +1 @@ +code/game/machinery/shieldgen.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/shieldgen.dm

/obj/structure/emergency_shield/regeneratingSubtype of shields that repair over time after sustaining integrity damage
/obj/machinery/shieldwallContainment Field START
\ No newline at end of file diff --git a/code/game/machinery/sleepers.html b/code/game/machinery/sleepers.html new file mode 100644 index 0000000000000..92816eb5288cc --- /dev/null +++ b/code/game/machinery/sleepers.html @@ -0,0 +1,2 @@ +code/game/machinery/sleepers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/sleepers.dm

/obj/machinery/sleeper/syndieSyndicate version +Can be controlled from the inside and can be deconstructed.
/obj/machinery/sleeper/syndie/fullupgradeFully upgraded variant, the circuit using tier 4 parts.
/obj/machinery/sleeper/syndie/fullupgrade/ntFully upgraded, not deconstructable, while using the normal sprite.
\ No newline at end of file diff --git a/code/game/machinery/slotmachine.html b/code/game/machinery/slotmachine.html new file mode 100644 index 0000000000000..400c73fce558e --- /dev/null +++ b/code/game/machinery/slotmachine.html @@ -0,0 +1,9 @@ +code/game/machinery/slotmachine.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/slotmachine.dm

SPIN_PRICE*
+| Slot Machines | +| Original code by Glloyd | +| Tgstation port by Miauw | +*

Define Details

SPIN_PRICE

*
+| Slot Machines | +| Original code by Glloyd | +| Tgstation port by Miauw | +*

\ No newline at end of file diff --git a/code/game/machinery/spaceheater.html b/code/game/machinery/spaceheater.html new file mode 100644 index 0000000000000..324b11291fc74 --- /dev/null +++ b/code/game/machinery/spaceheater.html @@ -0,0 +1 @@ +code/game/machinery/spaceheater.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/spaceheater.dm

/obj/machinery/space_heater/improvised_chem_heaterFor use with heating reagents in a ghetto way
\ No newline at end of file diff --git a/code/game/machinery/status_display.html b/code/game/machinery/status_display.html new file mode 100644 index 0000000000000..137c5f3a47b64 --- /dev/null +++ b/code/game/machinery/status_display.html @@ -0,0 +1 @@ +code/game/machinery/status_display.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/status_display.dm

/obj/machinery/status_displayStatus display which can show images and scrolling text.
/obj/effect/overlay/status_display_textNice overlay to make text smoothly scroll with no client updates after setup.
/obj/machinery/status_display/evacEvac display which shows shuttle timer or message set by Command.
/obj/machinery/status_display/supplySupply display which shows the status of the supply shuttle.
/obj/machinery/status_display/shuttleGeneral-purpose shuttle status display.
/obj/machinery/status_display/aiPictograph display which the AI can use to emote.
\ No newline at end of file diff --git a/code/game/machinery/syndicatebomb.html b/code/game/machinery/syndicatebomb.html new file mode 100644 index 0000000000000..b09f0805e9af4 --- /dev/null +++ b/code/game/machinery/syndicatebomb.html @@ -0,0 +1,2 @@ +code/game/machinery/syndicatebomb.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/syndicatebomb.dm

/obj/machinery/syndicatebomb/trainingBomb Subtypes
/obj/item/bombcoreBomb Cores
/obj/item/bombcore/syndicateBomb Core Subtypes/// +Subtype for the bomb cores found inside syndicate bombs, which will not detonate due to explosion/burning.
/obj/item/syndicatedetonatorSyndicate Detonator (aka the big red button)
\ No newline at end of file diff --git a/code/game/machinery/teambuilder.html b/code/game/machinery/teambuilder.html new file mode 100644 index 0000000000000..e0d16a4d22f10 --- /dev/null +++ b/code/game/machinery/teambuilder.html @@ -0,0 +1 @@ +code/game/machinery/teambuilder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/teambuilder.dm

/obj/machinery/teambuilderSimple admin tool that enables players to be assigned to a VERY SHITTY, very visually distinct team, quickly and affordably.
\ No newline at end of file diff --git a/code/game/machinery/telecomms/broadcasting.html b/code/game/machinery/telecomms/broadcasting.html new file mode 100644 index 0000000000000..3c65f0fbed17d --- /dev/null +++ b/code/game/machinery/telecomms/broadcasting.html @@ -0,0 +1,3 @@ +code/game/machinery/telecomms/broadcasting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/machinery/telecomms/broadcasting.dm

COMPRESSION_REPLACE_CHARACTER_THRESHOLDPast this amount of compression, the resulting gibberish will actually +replace characters, making it even harder to understand.

Define Details

COMPRESSION_REPLACE_CHARACTER_THRESHOLD

Past this amount of compression, the resulting gibberish will actually +replace characters, making it even harder to understand.

\ No newline at end of file diff --git a/code/game/machinery/telecomms/computers/message.html b/code/game/machinery/telecomms/computers/message.html new file mode 100644 index 0000000000000..a357ae2875689 --- /dev/null +++ b/code/game/machinery/telecomms/computers/message.html @@ -0,0 +1 @@ +code/game/machinery/telecomms/computers/message.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/telecomms/computers/message.dm

/obj/item/paper/monitorkeyMonitor decryption key paper
\ No newline at end of file diff --git a/code/game/machinery/telecomms/machine_interactions.html b/code/game/machinery/telecomms/machine_interactions.html new file mode 100644 index 0000000000000..d4a705dcc3432 --- /dev/null +++ b/code/game/machinery/telecomms/machine_interactions.html @@ -0,0 +1,2 @@ +code/game/machinery/telecomms/machine_interactions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/telecomms/machine_interactions.dm

/obj/machinery/telecommsThe basic telecomms machinery type, implementing all of the logic that's +shared between all of the telecomms machinery.
\ No newline at end of file diff --git a/code/game/machinery/telecomms/machines/allinone.html b/code/game/machinery/telecomms/machines/allinone.html new file mode 100644 index 0000000000000..5ee1735063216 --- /dev/null +++ b/code/game/machinery/telecomms/machines/allinone.html @@ -0,0 +1,2 @@ +code/game/machinery/telecomms/machines/allinone.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/telecomms/machines/allinone.dm

/obj/machinery/telecomms/allinoneBasically just an empty shell for receiving and broadcasting radio messages. Not +very flexible, but it gets the job done.
\ No newline at end of file diff --git a/code/game/machinery/telecomms/machines/broadcaster.html b/code/game/machinery/telecomms/machines/broadcaster.html new file mode 100644 index 0000000000000..eef5d8a1817e9 --- /dev/null +++ b/code/game/machinery/telecomms/machines/broadcaster.html @@ -0,0 +1,4 @@ +code/game/machinery/telecomms/machines/broadcaster.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/telecomms/machines/broadcaster.dm

/obj/machinery/telecomms/broadcasterThe broadcaster sends processed messages to all radio devices in the game. They +do not have to be headsets; intercoms and station-bounced radios suffice.
/proc/end_message_delaySimply resets the message delay and the recent messages list, to ensure that +recent messages can be sent again. Is called on a one second timer after a +delay is set, from /obj/machinery/telecomms/broadcaster/receive_information()
\ No newline at end of file diff --git a/code/game/machinery/telecomms/machines/bus.html b/code/game/machinery/telecomms/machines/bus.html new file mode 100644 index 0000000000000..8bea6a0671d7d --- /dev/null +++ b/code/game/machinery/telecomms/machines/bus.html @@ -0,0 +1,2 @@ +code/game/machinery/telecomms/machines/bus.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/telecomms/machines/bus.dm

/obj/machinery/telecomms/busThe bus mainframe idles and waits for hubs to relay them signals. They act +as junctions for the network.
\ No newline at end of file diff --git a/code/game/machinery/telecomms/machines/hub.html b/code/game/machinery/telecomms/machines/hub.html new file mode 100644 index 0000000000000..ca6ec9e16b975 --- /dev/null +++ b/code/game/machinery/telecomms/machines/hub.html @@ -0,0 +1,2 @@ +code/game/machinery/telecomms/machines/hub.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/telecomms/machines/hub.dm

/obj/machinery/telecomms/hubThe HUB idles until it receives information. It then passes on that information +depending on where it came from.
\ No newline at end of file diff --git a/code/game/machinery/telecomms/machines/message_server.html b/code/game/machinery/telecomms/machines/message_server.html new file mode 100644 index 0000000000000..21d9bfcf6b319 --- /dev/null +++ b/code/game/machinery/telecomms/machines/message_server.html @@ -0,0 +1,4 @@ +code/game/machinery/telecomms/machines/message_server.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/telecomms/machines/message_server.dm

/obj/machinery/telecomms/message_serverThe equivalent of the server, for PDA and request console messages. +Without it, PDA and request console messages cannot be transmitted. +PDAs require the rest of the telecomms setup, but request consoles only +require the message server.
/datum/data_tablet_msgLog datums stored by the message server.
\ No newline at end of file diff --git a/code/game/machinery/telecomms/machines/processor.html b/code/game/machinery/telecomms/machines/processor.html new file mode 100644 index 0000000000000..4f47d1a9f6ad1 --- /dev/null +++ b/code/game/machinery/telecomms/machines/processor.html @@ -0,0 +1,3 @@ +code/game/machinery/telecomms/machines/processor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/telecomms/machines/processor.dm

/obj/machinery/telecomms/processorThe processor is a very simple machine that decompresses subspace signals and +transfers them back to the original bus. It is essential in producing audible +data.
\ No newline at end of file diff --git a/code/game/machinery/telecomms/machines/receiver.html b/code/game/machinery/telecomms/machines/receiver.html new file mode 100644 index 0000000000000..a6eea1e43a72f --- /dev/null +++ b/code/game/machinery/telecomms/machines/receiver.html @@ -0,0 +1,3 @@ +code/game/machinery/telecomms/machines/receiver.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/telecomms/machines/receiver.dm

/obj/machinery/telecomms/receiverThe receiver idles and receives messages from subspace-compatible radio equipment, +primarily headsets. Then they just relay this information to all linked devices, +which would usually be through the telecommunications hub.
\ No newline at end of file diff --git a/code/game/machinery/telecomms/machines/relay.html b/code/game/machinery/telecomms/machines/relay.html new file mode 100644 index 0000000000000..d4ea438dd751e --- /dev/null +++ b/code/game/machinery/telecomms/machines/relay.html @@ -0,0 +1,2 @@ +code/game/machinery/telecomms/machines/relay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/telecomms/machines/relay.dm

/obj/machinery/telecomms/relayThe relay idles until it receives information. It then passes on that information +depending on where it came from.
\ No newline at end of file diff --git a/code/game/machinery/telecomms/machines/server.html b/code/game/machinery/telecomms/machines/server.html new file mode 100644 index 0000000000000..94fcded466920 --- /dev/null +++ b/code/game/machinery/telecomms/machines/server.html @@ -0,0 +1,2 @@ +code/game/machinery/telecomms/machines/server.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/machinery/telecomms/machines/server.dm

/obj/machinery/telecomms/serverThe server logs all traffic and signal data. Once it records the signal, it +sends it to the subspace broadcaster.
/datum/comm_log_entrySimple log entry datum for the telecommunication server
\ No newline at end of file diff --git a/code/game/objects/effects/anomalies/anomalies_bioscrambler.html b/code/game/objects/effects/anomalies/anomalies_bioscrambler.html new file mode 100644 index 0000000000000..52c4221cc35c5 --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_bioscrambler.html @@ -0,0 +1 @@ +code/game/objects/effects/anomalies/anomalies_bioscrambler.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/anomalies/anomalies_bioscrambler.dm

/obj/effect/anomaly/bioscrambler/docileA bioscrambler anomaly subtype which does not pursue people, for purposes of a space ruin
/obj/effect/temp_visual/circle_waveVisual effect spawned when the bioscrambler scrambles your bio
\ No newline at end of file diff --git a/code/game/objects/effects/anomalies/anomalies_bluespace.html b/code/game/objects/effects/anomalies/anomalies_bluespace.html new file mode 100644 index 0000000000000..f712961f35e6e --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_bluespace.html @@ -0,0 +1 @@ +code/game/objects/effects/anomalies/anomalies_bluespace.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/anomalies/anomalies_bluespace.dm

/obj/effect/anomaly/bluespace/bigBigger, meaner, immortal bluespace anomaly
\ No newline at end of file diff --git a/code/game/objects/effects/anomalies/anomalies_dimensional_themes.html b/code/game/objects/effects/anomalies/anomalies_dimensional_themes.html new file mode 100644 index 0000000000000..4e8209c1a3837 --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_dimensional_themes.html @@ -0,0 +1 @@ +code/game/objects/effects/anomalies/anomalies_dimensional_themes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/anomalies/anomalies_dimensional_themes.dm

/datum/dimension_themeDatum which describes a theme and replaces turfs and objects in specified locations to match that theme
\ No newline at end of file diff --git a/code/game/objects/effects/anomalies/anomalies_ectoplasm.html b/code/game/objects/effects/anomalies/anomalies_ectoplasm.html new file mode 100644 index 0000000000000..ab6d96fa0a910 --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_ectoplasm.html @@ -0,0 +1 @@ +code/game/objects/effects/anomalies/anomalies_ectoplasm.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/anomalies/anomalies_ectoplasm.dm

/proc/cleanup_ghostsGives a farewell message and deletes the ghosts produced by a ghost portal structure.
\ No newline at end of file diff --git a/code/game/objects/effects/anomalies/anomalies_flux.html b/code/game/objects/effects/anomalies/anomalies_flux.html new file mode 100644 index 0000000000000..2c29dd5f373c4 --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_flux.html @@ -0,0 +1 @@ +code/game/objects/effects/anomalies/anomalies_flux.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/anomalies/anomalies_flux.dm

/obj/effect/anomaly/flux/minorA flux anomaly which doesn't explode or produce a core
/obj/effect/anomaly/flux/bigBigger, meaner, immortal flux anomaly
\ No newline at end of file diff --git a/code/game/objects/effects/anomalies/anomalies_gravity.html b/code/game/objects/effects/anomalies/anomalies_gravity.html new file mode 100644 index 0000000000000..087baf8e2e457 --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_gravity.html @@ -0,0 +1 @@ +code/game/objects/effects/anomalies/anomalies_gravity.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/anomalies/anomalies_gravity.dm

/obj/effect/anomaly/grav/high/bigBigger, meaner, immortal gravity anomaly. although this is just the super grav anomaly but bigger and shattering move force
\ No newline at end of file diff --git a/code/game/objects/effects/anomalies/anomalies_pyroclastic.html b/code/game/objects/effects/anomalies/anomalies_pyroclastic.html new file mode 100644 index 0000000000000..7aa9decbd3fda --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_pyroclastic.html @@ -0,0 +1 @@ +code/game/objects/effects/anomalies/anomalies_pyroclastic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/anomalies/anomalies_pyroclastic.dm

/obj/effect/anomaly/pyro/bigBigger, meaner, immortal pyro anomaly
\ No newline at end of file diff --git a/code/game/objects/effects/bump_teleporter.html b/code/game/objects/effects/bump_teleporter.html new file mode 100644 index 0000000000000..93964286a1062 --- /dev/null +++ b/code/game/objects/effects/bump_teleporter.html @@ -0,0 +1 @@ +code/game/objects/effects/bump_teleporter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/bump_teleporter.dm

/obj/effect/bump_teleporterAbstract effect, that when a mob touches it, it will forceMove them to the teleporter-exit point (that matches the ID set map-side).
/obj/effect/bump_teleporter/filteringSubtype that uses do_teleport instead, to leverage any NO_TELEPORT traits that you might need to add in a given map
\ No newline at end of file diff --git a/code/game/objects/effects/cursor_catcher.html b/code/game/objects/effects/cursor_catcher.html new file mode 100644 index 0000000000000..da3a1564b1ed5 --- /dev/null +++ b/code/game/objects/effects/cursor_catcher.html @@ -0,0 +1 @@ +code/game/objects/effects/cursor_catcher.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/cursor_catcher.dm

/atom/movable/screen/fullscreen/cursor_catcherAn effect which tracks the cursor's location on the screen
\ No newline at end of file diff --git a/code/game/objects/effects/decals/cleanable/misc.html b/code/game/objects/effects/decals/cleanable/misc.html new file mode 100644 index 0000000000000..182c2622596d7 --- /dev/null +++ b/code/game/objects/effects/decals/cleanable/misc.html @@ -0,0 +1 @@ +code/game/objects/effects/decals/cleanable/misc.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/decals/cleanable/misc.dm

/obj/effect/decal/cleanable/vomit/nebula/wormsNebula vomit with extra guests
\ No newline at end of file diff --git a/code/game/objects/effects/decals/crayon.html b/code/game/objects/effects/decals/crayon.html new file mode 100644 index 0000000000000..7b5867edd82d2 --- /dev/null +++ b/code/game/objects/effects/decals/crayon.html @@ -0,0 +1 @@ +code/game/objects/effects/decals/crayon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/decals/crayon.dm

/obj/effect/decal/cleanable/crayon/rune4Common crayon decals in map.
\ No newline at end of file diff --git a/code/game/objects/effects/decals/remains.html b/code/game/objects/effects/decals/remains.html new file mode 100644 index 0000000000000..6c4232acca657 --- /dev/null +++ b/code/game/objects/effects/decals/remains.html @@ -0,0 +1 @@ +code/game/objects/effects/decals/remains.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/decals/remains.dm

/obj/effect/decal/remains/human/smokey/maintenanceSubtype of smokey remains used for rare maintenance spawns.
\ No newline at end of file diff --git a/code/game/objects/effects/decals/turfdecal/markings.html b/code/game/objects/effects/decals/turfdecal/markings.html new file mode 100644 index 0000000000000..7ee37630f6c16 --- /dev/null +++ b/code/game/objects/effects/decals/turfdecal/markings.html @@ -0,0 +1 @@ +code/game/objects/effects/decals/turfdecal/markings.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/decals/turfdecal/markings.dm

/obj/effect/turf_decal/raven_ship_signNTSS RAVEN EMERGENCY SHUTTLE LOGO
/obj/effect/turf_decal/syndicateemblem/bottom/leftSYNDICATE EMBLEM
/obj/effect/turf_decal/board_number/oneALPHANUMERIC DECALS (SO FAR ONLY FOR CHESS ALGEBRAIC NOTATION)
\ No newline at end of file diff --git a/code/game/objects/effects/decals/turfdecal/tilecoloring.html b/code/game/objects/effects/decals/turfdecal/tilecoloring.html new file mode 100644 index 0000000000000..4f5db0940e76d --- /dev/null +++ b/code/game/objects/effects/decals/turfdecal/tilecoloring.html @@ -0,0 +1,2 @@ +code/game/objects/effects/decals/turfdecal/tilecoloring.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/effects/decals/turfdecal/tilecoloring.dm

TILE_DECAL_SUBTYPE_HELPERAutomatically generates all subtypes for a decal with the given path.
/obj/effect/turf_decal/tile/blueBlue tiles
/obj/effect/turf_decal/tile/dark_blueDark blue tiles
/obj/effect/turf_decal/tile/greenGreen tiles
/obj/effect/turf_decal/tile/dark_greenDark green tiles
/obj/effect/turf_decal/tile/yellowYellow tiles
/obj/effect/turf_decal/tile/redRed tiles
/obj/effect/turf_decal/tile/red/opposingcornersBar tiles
/obj/effect/turf_decal/tile/dark_redDark red tiles +Dark red tiles
/obj/effect/turf_decal/tile/barBar tiles
/obj/effect/turf_decal/tile/purplePurple tiles
/obj/effect/turf_decal/tile/brownBrown tiles
/obj/effect/turf_decal/tile/neutralNeutral tiles
/obj/effect/turf_decal/tile/darkDark tiles
/obj/effect/turf_decal/tile/holidayDate-specific tiles
/obj/effect/turf_decal/tile/holiday/rainbowPattern tiles
/obj/effect/turf_decal/trimlineTrimlines
/obj/effect/turf_decal/trimline/tramTram trimlines
TRIMLINE_SUBTYPE_HELPERAutomatically generates all trimlines for a decal with the given path.
/obj/effect/turf_decal/trimline/whiteWhite trimlines
/obj/effect/turf_decal/trimline/redRed trimlines
/obj/effect/turf_decal/trimline/dark_redDark red trimlines
/obj/effect/turf_decal/trimline/greenGreen trimlines
/obj/effect/turf_decal/trimline/dark_greenDark green Trimlines
/obj/effect/turf_decal/trimline/blueBlue trimlines
/obj/effect/turf_decal/trimline/dark_blueDark blue trimlines
/obj/effect/turf_decal/trimline/yellowYellow trimlines
/obj/effect/turf_decal/trimline/purplePurple trimlines
/obj/effect/turf_decal/trimline/brownBrown trimlines
/obj/effect/turf_decal/trimline/neutralNeutral trimlines
/obj/effect/turf_decal/trimline/darkDark trimlines

Define Details

TILE_DECAL_SUBTYPE_HELPER

Automatically generates all subtypes for a decal with the given path.

TRIMLINE_SUBTYPE_HELPER

Automatically generates all trimlines for a decal with the given path.

\ No newline at end of file diff --git a/code/game/objects/effects/effect_system/effects_other.html b/code/game/objects/effects/effect_system/effects_other.html new file mode 100644 index 0000000000000..bc01e59d1eeb8 --- /dev/null +++ b/code/game/objects/effects/effect_system/effects_other.html @@ -0,0 +1,4 @@ +code/game/objects/effects/effect_system/effects_other.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/effect_system/effects_other.dm

/datum/effect_system/trail_follow///// Attach a trail to any object, that spawns when it moves (like for the jetpack) +just pass in the object to attach it to in set_up +Then do start() to start it and stop() to stop it, obviously +and don't call start() in a loop that will be repeated otherwise it'll get spammed!
\ No newline at end of file diff --git a/code/game/objects/effects/effect_system/effects_water.html b/code/game/objects/effects/effect_system/effects_water.html new file mode 100644 index 0000000000000..006d4c5c3ad57 --- /dev/null +++ b/code/game/objects/effects/effect_system/effects_water.html @@ -0,0 +1 @@ +code/game/objects/effects/effect_system/effects_water.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/effect_system/effects_water.dm

/obj/effect/particle_effect/water/extinguisherExtinguisher snowflake
\ No newline at end of file diff --git a/code/game/objects/effects/effect_system/fluid_spread/_fluid_spread.html b/code/game/objects/effects/effect_system/fluid_spread/_fluid_spread.html new file mode 100644 index 0000000000000..8184fc8911303 --- /dev/null +++ b/code/game/objects/effects/effect_system/fluid_spread/_fluid_spread.html @@ -0,0 +1,2 @@ +code/game/objects/effects/effect_system/fluid_spread/_fluid_spread.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/effect_system/fluid_spread/_fluid_spread.dm

/datum/fluid_groupSMOKE SYSTEMS +A group of fluid objects.
/obj/effect/particle_effect/fluidA particle effect that belongs to a fluid group.
/datum/effect_system/fluid_spreadA factory which produces fluid groups.
\ No newline at end of file diff --git a/code/game/objects/effects/effect_system/fluid_spread/effects_foam.html b/code/game/objects/effects/effect_system/fluid_spread/effects_foam.html new file mode 100644 index 0000000000000..0d39c04138530 --- /dev/null +++ b/code/game/objects/effects/effect_system/fluid_spread/effects_foam.html @@ -0,0 +1 @@ +code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm

MINIMUM_FOAM_DILUTION_RANGEThe minimum foam range required to start diluting the reagents past the minimum dilution rate.
MINIMUM_FOAM_DILUTIONThe minumum foam-area based divisor used to decrease foam exposure volume.
FOAM_REAGENT_SCALEThe effective scaling of the reagents in the foam. (Total delivered at or below MINIMUM_FOAM_DILUTION)
/obj/effect/particle_effect/fluid/foam
/datum/effect_system/fluid_spread/foamA factory for foam fluid floods.
/obj/effect/particle_effect/fluid/foam/short_lifeA foam variant which dissipates quickly.
/obj/effect/particle_effect/fluid/foam/long_lifeA foam variant which lasts for an extended amount of time.
/datum/effect_system/fluid_spread/foam/longA factory which produces foam with an extended lifespan.
/obj/effect/particle_effect/fluid/foam/firefightingA variant of foam which absorbs plasma in the air if there is a fire.
/datum/effect_system/fluid_spread/foam/firefightingA factory which produces firefighting foam
/obj/effect/particle_effect/fluid/foam/metalA foam variant which
/datum/effect_system/fluid_spread/foam/metalA factory which produces aluminium metal foam.
/obj/structure/foamedmetalFOAM STRUCTURE. Formed by metal foams. Dense and opaque, but easy to break
/obj/effect/particle_effect/fluid/foam/metal/ironA metal foam variant which produces slightly sturdier walls.
/datum/effect_system/fluid_spread/foam/metal/ironA factory which produces iron metal foam.
/obj/structure/foamedmetal/ironA variant of metal foam walls with higher durability.
/obj/effect/particle_effect/fluid/foam/metal/smartA variant of metal foam which only produces walls at area boundaries.
/datum/effect_system/fluid_spread/foam/metal/smartA factory which produces smart aluminium metal foam.
/obj/effect/particle_effect/fluid/foam/metal/resinA foam variant which produces atmos resin walls.
/obj/structure/foamedmetal/resinAtmos Backpack Resin, transparent, prevents atmos and filters the air
/obj/effect/particle_effect/fluid/foam/metal/resin/halonA variant of resin foam that is created from halon combustion. It does not dissolve in heat to allow the gas to spread before foaming.

Define Details

FOAM_REAGENT_SCALE

The effective scaling of the reagents in the foam. (Total delivered at or below MINIMUM_FOAM_DILUTION)

MINIMUM_FOAM_DILUTION

The minumum foam-area based divisor used to decrease foam exposure volume.

MINIMUM_FOAM_DILUTION_RANGE

The minimum foam range required to start diluting the reagents past the minimum dilution rate.

\ No newline at end of file diff --git a/code/game/objects/effects/effect_system/fluid_spread/effects_smoke.html b/code/game/objects/effects/effect_system/fluid_spread/effects_smoke.html new file mode 100644 index 0000000000000..f9ea9d1445aee --- /dev/null +++ b/code/game/objects/effects/effect_system/fluid_spread/effects_smoke.html @@ -0,0 +1 @@ +code/game/objects/effects/effect_system/fluid_spread/effects_smoke.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/effect_system/fluid_spread/effects_smoke.dm

/obj/effect/particle_effect/fluid/smokeA fluid which spreads through the air affecting every mob it engulfs.
/datum/effect_system/fluid_spread/smokeA factory which produces clouds of smoke.
/datum/effect_system/fluid_spread/smoke/transparentSame as the base type, but the smoke produced is not opaque
/obj/effect/particle_effect/fluid/smoke/transparentSame as the base type, but is not opaque.
/proc/do_smokeA helper proc used to spawn small puffs of smoke.
/obj/effect/particle_effect/fluid/smoke/quickSmoke that dissipates as quickly as possible.
/datum/effect_system/fluid_spread/smoke/quickA factory which produces smoke that dissipates as quickly as possible.
/obj/effect/particle_effect/fluid/smoke/badSmoke that makes you cough and reduces the power of lasers.
/datum/effect_system/fluid_spread/smoke/badA factory which produces smoke that makes you cough.
/obj/effect/particle_effect/fluid/smoke/bad/greenGreen smoke that makes you cough.
/datum/effect_system/fluid_spread/smoke/bad/greenA factory which produces green smoke that makes you cough.
/obj/effect/particle_effect/fluid/smoke/bad/blackBlack smoke that makes you cough. (Actually dark grey)
/datum/effect_system/fluid_spread/smoke/bad/blackA factory which produces black smoke that makes you cough.
/obj/effect/particle_effect/fluid/smoke/freezingLight blue, transparent smoke which is usually paired with a blast that chills every turf in the area.
/datum/effect_system/fluid_spread/smoke/freezingA factory which produces light blue, transparent smoke and a blast that chills every turf in the area.
/datum/effect_system/fluid_spread/smoke/freezing/deconA variant of the base freezing smoke formerly used by the vent decontamination event.
/obj/effect/particle_effect/fluid/smoke/sleepingSmoke which knocks you out if you breathe it in.
/datum/effect_system/fluid_spread/smoke/sleepingA factory which produces sleeping smoke.
/obj/effect/particle_effect/fluid/smoke/chemSmoke which contains reagents which it applies to everything it comes into contact with.
/proc/do_chem_smokeHelper to quickly create a cloud of reagent smoke
/datum/effect_system/fluid_spread/smoke/chemA factory which produces clouds of chemical bearing smoke.
/obj/effect/particle_effect/fluid/smoke/chem/quickA version of chemical smoke with a very short lifespan.
\ No newline at end of file diff --git a/code/game/objects/effects/effects.html b/code/game/objects/effects/effects.html new file mode 100644 index 0000000000000..f929980f81bd4 --- /dev/null +++ b/code/game/objects/effects/effects.html @@ -0,0 +1 @@ +code/game/objects/effects/effects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/effects.dm

/obj/effect/abstractThe abstract effect ignores even more effects and is often typechecked for atoms that should truly not be fucked with.
\ No newline at end of file diff --git a/code/game/objects/effects/forcefields.html b/code/game/objects/effects/forcefields.html new file mode 100644 index 0000000000000..a262e7e988771 --- /dev/null +++ b/code/game/objects/effects/forcefields.html @@ -0,0 +1,2 @@ +code/game/objects/effects/forcefields.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/forcefields.dm

/obj/effect/forcefield/wizardThe wizard's forcefield, summoned by forcewall
/obj/effect/forcefield/cultCult forcefields
/obj/effect/forcefield/cult/permanentA form of the cult forcefield that lasts permanently. +Used on the Shuttle 667.
/obj/effect/forcefield/mimeMime forcefields (invisible walls)
/obj/effect/forcefield/psychicPsyker forcefield
/obj/effect/forcefield/cosmic_fieldThe cosmic heretics forcefield
\ No newline at end of file diff --git a/code/game/objects/effects/glowshroom.html b/code/game/objects/effects/glowshroom.html new file mode 100644 index 0000000000000..8c7cabcf7ca9c --- /dev/null +++ b/code/game/objects/effects/glowshroom.html @@ -0,0 +1 @@ +code/game/objects/effects/glowshroom.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/glowshroom.dm

/obj/structure/glowshroom/singleMapping object, a glowshroom that doesn't spread or die
\ No newline at end of file diff --git a/code/game/objects/effects/info.html b/code/game/objects/effects/info.html new file mode 100644 index 0000000000000..c461368eb93b0 --- /dev/null +++ b/code/game/objects/effects/info.html @@ -0,0 +1 @@ +code/game/objects/effects/info.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/info.dm

/obj/effect/abstract/infoAn info button that, when clicked, puts some text in the user's chat
\ No newline at end of file diff --git a/code/game/objects/effects/landmarks.html b/code/game/objects/effects/landmarks.html new file mode 100644 index 0000000000000..0d65dafe3e350 --- /dev/null +++ b/code/game/objects/effects/landmarks.html @@ -0,0 +1,3 @@ +code/game/objects/effects/landmarks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/landmarks.dm

/obj/effect/landmark/event_spawnGeneric event spawn points
/obj/effect/landmark/unit_test_bottom_leftMarks the bottom left of the testing zone. +In landmarks.dm and not unit_test.dm so it is always active in the mapping tools.
/obj/effect/landmark/unit_test_top_rightMarks the top right of the testing zone. +In landmarks.dm and not unit_test.dm so it is always active in the mapping tools.
\ No newline at end of file diff --git a/code/game/objects/effects/landmarks/atmospherics_sanity_landmarks.html b/code/game/objects/effects/landmarks/atmospherics_sanity_landmarks.html new file mode 100644 index 0000000000000..08c61a1d85019 --- /dev/null +++ b/code/game/objects/effects/landmarks/atmospherics_sanity_landmarks.html @@ -0,0 +1 @@ +code/game/objects/effects/landmarks/atmospherics_sanity_landmarks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/landmarks/atmospherics_sanity_landmarks.dm

/obj/effect/landmark/atmospheric_sanityAtmospheric Sanity Landmark - base
/obj/effect/landmark/atmospheric_sanity/mark_all_station_areas_as_goalMarks ALL station areas as a goal, ignoring any other goals.
/obj/effect/landmark/atmospheric_sanity/start_areaMarks an area as a starting point for crawling atmospheric connectivity.
/obj/effect/landmark/atmospheric_sanity/goal_areaMarks an area as a goal for atmospheric connectivity; ignored if the map contains the mark all station areas landmark!
/obj/effect/landmark/atmospheric_sanity/ignore_areaMarks an area as ignored for purposes of default station connectivity.
\ No newline at end of file diff --git a/code/game/objects/effects/lighting.html b/code/game/objects/effects/lighting.html new file mode 100644 index 0000000000000..f2027e2072dc2 --- /dev/null +++ b/code/game/objects/effects/lighting.html @@ -0,0 +1 @@ +code/game/objects/effects/lighting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/lighting.dm

/obj/effect/dummy/lighting_objBasically, a fake object that emits light.
\ No newline at end of file diff --git a/code/game/objects/effects/material_insert.html b/code/game/objects/effects/material_insert.html new file mode 100644 index 0000000000000..6370f1a6b182c --- /dev/null +++ b/code/game/objects/effects/material_insert.html @@ -0,0 +1,2 @@ +code/game/objects/effects/material_insert.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/material_insert.dm

/proc/material_insertion_animationCreates a mutable appearance with the material color applied for its insertion animation into an autolathe or techfab +Arguments
\ No newline at end of file diff --git a/code/game/objects/effects/mines.html b/code/game/objects/effects/mines.html new file mode 100644 index 0000000000000..a2f3e1ce87e79 --- /dev/null +++ b/code/game/objects/effects/mines.html @@ -0,0 +1 @@ +code/game/objects/effects/mines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/mines.dm

/obj/effect/mine/shrapnelThese mines spawn pellet_clouds around them when triggered
\ No newline at end of file diff --git a/code/game/objects/effects/overlays.html b/code/game/objects/effects/overlays.html new file mode 100644 index 0000000000000..87af86ab6d35e --- /dev/null +++ b/code/game/objects/effects/overlays.html @@ -0,0 +1 @@ +code/game/objects/effects/overlays.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/overlays.dm

/obj/effect/overlay/closet_doorDoor overlay for animating closets
\ No newline at end of file diff --git a/code/game/objects/effects/particle_holder.html b/code/game/objects/effects/particle_holder.html new file mode 100644 index 0000000000000..c49640d0133bf --- /dev/null +++ b/code/game/objects/effects/particle_holder.html @@ -0,0 +1,2 @@ +code/game/objects/effects/particle_holder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/particle_holder.dm

/obj/effect/abstract/particle_holderobjects can only have one particle on them at a time, so we use these abstract effects to hold and display the effects. You know, so multiple particle effects can exist at once. +also because some objects do not display particles due to how their visuals are built
\ No newline at end of file diff --git a/code/game/objects/effects/particles/note_particles.html b/code/game/objects/effects/particles/note_particles.html new file mode 100644 index 0000000000000..dd2ca21aad8ab --- /dev/null +++ b/code/game/objects/effects/particles/note_particles.html @@ -0,0 +1 @@ +code/game/objects/effects/particles/note_particles.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/particles/note_particles.dm

/particles/musical_notesmusical notes! Try to use these sparingly, gents.
\ No newline at end of file diff --git a/code/game/objects/effects/particles/slime.html b/code/game/objects/effects/particles/slime.html new file mode 100644 index 0000000000000..35ffd83a40ff1 --- /dev/null +++ b/code/game/objects/effects/particles/slime.html @@ -0,0 +1 @@ +code/game/objects/effects/particles/slime.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/particles/slime.dm

/particles/slimeSlime particles.
/particles/slime/rainbowRainbow slime particles.
\ No newline at end of file diff --git a/code/game/objects/effects/portals.html b/code/game/objects/effects/portals.html new file mode 100644 index 0000000000000..e39213b7178d1 --- /dev/null +++ b/code/game/objects/effects/portals.html @@ -0,0 +1 @@ +code/game/objects/effects/portals.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/portals.dm

/obj/effect/temp_visual/portal_animationAnimation used for transitioning atoms which are teleporting somewhere via a portal
\ No newline at end of file diff --git a/code/game/objects/effects/poster_demotivational.html b/code/game/objects/effects/poster_demotivational.html new file mode 100644 index 0000000000000..f4771e18b9331 --- /dev/null +++ b/code/game/objects/effects/poster_demotivational.html @@ -0,0 +1 @@ +code/game/objects/effects/poster_demotivational.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/poster_demotivational.dm

/obj/structure/sign/poster/traitor/festivesyndicate can get festive too
\ No newline at end of file diff --git a/code/game/objects/effects/posters/contraband.html b/code/game/objects/effects/posters/contraband.html new file mode 100644 index 0000000000000..7cde6acb7efb0 --- /dev/null +++ b/code/game/objects/effects/posters/contraband.html @@ -0,0 +1 @@ +code/game/objects/effects/posters/contraband.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/posters/contraband.dm

/obj/structure/sign/poster/contraband/fake_bombablea special poster meant to fool people into thinking this is a bombable wall at a glance.
\ No newline at end of file diff --git a/code/game/objects/effects/posters/poster.html b/code/game/objects/effects/posters/poster.html new file mode 100644 index 0000000000000..6f0ecfbb87b31 --- /dev/null +++ b/code/game/objects/effects/posters/poster.html @@ -0,0 +1 @@ +code/game/objects/effects/posters/poster.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/posters/poster.dm

/obj/item/posterThe rolled up item form of a poster
/obj/structure/sign/posterThe structure form of a poster.
\ No newline at end of file diff --git a/code/game/objects/effects/rcd.html b/code/game/objects/effects/rcd.html new file mode 100644 index 0000000000000..d02d0c76fc6bb --- /dev/null +++ b/code/game/objects/effects/rcd.html @@ -0,0 +1 @@ +code/game/objects/effects/rcd.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/effects/rcd.dm

RCD_DESTRUCTIVE_SCAN_RANGEHow many tiles within player radius does it perform a rcd scan in
/proc/rcd_scanGlobal proc that generates RCD hologram in a range.

Define Details

RCD_DESTRUCTIVE_SCAN_RANGE

How many tiles within player radius does it perform a rcd scan in

\ No newline at end of file diff --git a/code/game/objects/effects/spawners/bombspawner.html b/code/game/objects/effects/spawners/bombspawner.html new file mode 100644 index 0000000000000..fd23b6969239e --- /dev/null +++ b/code/game/objects/effects/spawners/bombspawner.html @@ -0,0 +1 @@ +code/game/objects/effects/spawners/bombspawner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/spawners/bombspawner.dm

/obj/effect/spawner/newbombSpawns a TTV.
\ No newline at end of file diff --git a/code/game/objects/effects/spawners/random.html b/code/game/objects/effects/spawners/random.html new file mode 100644 index 0000000000000..73922c571f214 --- /dev/null +++ b/code/game/objects/effects/spawners/random.html @@ -0,0 +1,314 @@ +code/game/objects/effects/spawners/random/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Random Spawners

About

+

Random spawners are an organized tool primarily for mapping to enhance replayability. The spawners can create objects, effects, and structures with different tweakable settings to get the desired outcome. You can make a spawner determine direction, rarity, number of items to spawn, pixel spacing between items, and even spread it over a large tile radius. This lets you control the atmosphere of a location. You could for instance spawn different piles of trash in maint or spawn decoration items for a room to give it more randomized flavor. The choice is yours!

+

(note the audience of this README is directed towards mappers who lack knowledge of coding)

+

Variables

+

The following variables are defined in code/game/objects/effects/spawners/random/random.dm that control how a spawner works.

+
    +
  • loot - a list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect)
  • +
  • loot_type_path - this combines the subtypes AND type list with the loot list
  • +
  • loot_subtype_path - this combines ONLY the subtypes (excludes the loot_subtype_path) with the loot list
  • +
  • spawn_loot_count - how many items will be spawned
  • +
  • spawn_loot_double - if the same item can be spawned twice from the loot list
  • +
  • spawn_loot_split - whether the items should be distributed to offsets 0,1,-1,2,-2,3,-3.. This overrides pixel_x/y on the spawner itself
  • +
  • spawn_all_loot - whether the spawner should spawn all the loot in the list (ignores spawn_loot_count)
  • +
  • spawn_loot_chance - the chance for the spawner to create loot (ignores spawn_loot_count)
  • +
  • spawn_scatter_radius - determines how big of a range (in tiles) we should scatter things in
  • +
+

These variables are set to the following default values for the base random.dm object that all objects inherit from:

+
	/// these three loot values are all empty
+	var/list/loot
+	var/loot_type_path
+	var/loot_subtype_path
+
+	var/spawn_loot_count = 1 // by default one item will be selected from the loot list
+	var/spawn_loot_double = TRUE // by default duplicate items CAN be spawned from the loot list
+	var/spawn_loot_split = FALSE // by default items will NOT spread out on the same tile
+	var/spawn_all_loot = FALSE // by default the spawner will only spawn the number of items set in spawn_loot_count
+	var/spawn_loot_chance = 100 // by default the spawner has a 100% chance to spawn the item(s)
+	var/spawn_scatter_radius = 0 // by default the spawner will spawn the items ONLY on the tile it is on
+
+

However there are some categories that overwrite these default values so pay attention to the folder or category you group your spawner in. For instance the obj/effect/spawner/random/techstorage category overwrites the spawn_all_loot and the spawn_loot_split variables.

+
// Tech storage circuit board spawners
+/obj/effect/spawner/random/techstorage
+	name = "generic circuit board spawner"
+	spawn_loot_split = TRUE
+	spawn_all_loot = TRUE
+
+

This means any spawner you create under the techstorage will also have those variables set to that by default. This can be overridden quite easily just be resetting the variables back to the normal state like so:

+
/obj/effect/spawner/random/techstorage/data_disk
+	name = "data disk spawner"
+	spawn_all_loot = FALSE // now our loot won't all be spawned
+	loot = list(
+		/obj/item/disk/data = 49,
+		/obj/item/disk/nuclear/fake/obvious = 1,
+	)
+
+

Template

+

All the random spawners follow the same template format to keep things consistent and unison.

+
/obj/effect/spawner/random/INSERT_SPAWNER_GROUP/INSERT_SPAWNER_NAME
+	name = "INSERT_SPAWNER_NAME spawner"
+	loot = list(
+		/obj/item/PATH/INSERT_OBJ_1,
+		/obj/item/PATH/INSERT_OBJ_2,
+		/obj/item/PATH/INSERT_OBJ_3,
+	)
+
+

All the capitalized code is the parts where you are supposed to swap out with your objects like so:

+
/obj/effect/spawner/random/medical/minor_healing
+	name = "minor healing spawner"
+	loot = list(
+		/obj/item/stack/medical/suture,
+		/obj/item/stack/medical/mesh,
+		/obj/item/stack/medical/gauze,
+	)
+
+

Find the path to different objects and add them to the list but try to be consistent with the types of the object and the spawner. For example a medical spawner shouldn't have a emag in the loot list. (use an antag spawner for that instead!)

+

Probability

+

Be aware that the loot list uses a weighted chance formula to determine probability. So if there are no numbers set in the loot list then each object defaults to 1 and has the same probability to be selected. For our above example for the minor_healing spawner each medical item has a 1/3 chance to be spawned. But if we rearranged the values to this:

+
/obj/effect/spawner/random/medical/minor_healing
+	name = "minor healing spawner"
+	loot = list(
+		/obj/item/stack/medical/suture = 2,
+		/obj/item/stack/medical/mesh = 1,
+		/obj/item/stack/medical/gauze = 1,
+	)
+
+

Then now suture has a 50% chance of being spawned (2/4), mesh has a 25% chance of being spawned (1/4), and gauze also has a 25% chance of being spawned (1/4). If we add another item into the mix then we get the following:

+
/obj/effect/spawner/random/medical/minor_healing
+	name = "minor healing spawner"
+	loot = list(
+		/obj/item/stack/medical/suture = 2,
+		/obj/item/stack/medical/mesh = 1,
+		/obj/item/stack/medical/gauze = 1,
+		/obj/item/reagent_containers/syringe = 1,
+	)
+
+

Suture is 40% (2/5), Mesh is 20% (1/5), Gauze is 20% (1/5), and Syringe is 20% (1/5). A weighted list has the advantage of not needing to update every item in the list when adding a new item. If the list was based on a straight percent values, then each new item would require to manually go and edit ALL the items in the list. For big lists that would become very tedious. This is why we use weighted lists to determine probability!

+

Style

+

Here are some simple guidelines that you should stick to when making a new spawner:

+

If ALL the items have the same chance, we should not set a weighted value to the item

+

Do not put /obj/item/ = 1 unless other items have different spawn chances

+

Good:

+
/obj/effect/spawner/random/medical/minor_healing
+	name = "minor healing spawner"
+	loot = list(
+		/obj/item/stack/medical/suture = 2,
+		/obj/item/stack/medical/mesh = 1,
+		/obj/item/stack/medical/gauze = 1,
+		/obj/item/reagent_containers/syringe = 1,
+	)
+
+

Also Good:

+
/obj/effect/spawner/random/medical/minor_healing
+	name = "minor healing spawner"
+	loot = list(
+		/obj/item/stack/medical/suture,
+		/obj/item/stack/medical/mesh,
+		/obj/item/stack/medical/gauze,
+		/obj/item/reagent_containers/syringe,
+	)
+
+

Bad:

+
/obj/effect/spawner/random/medical/minor_healing
+	name = "minor healing spawner"
+	loot = list(
+		/obj/item/stack/medical/suture = 1,
+		/obj/item/stack/medical/mesh = 1,
+		/obj/item/stack/medical/gauze = 1,
+		/obj/item/reagent_containers/syringe = 1,
+	)
+
+

Sort the list from highest probability to lowest

+

Sort from top to bottom. The rarest items for your spawner should be at the bottom of the list.

+

Good:

+
/obj/effect/spawner/random/contraband/armory
+	name = "armory loot spawner"
+	loot = list(
+		/obj/item/gun/ballistic/automatic/pistol = 8,
+		/obj/item/gun/ballistic/shotgun/automatic/combat = 5,
+		/obj/item/storage/box/syndie_kit/throwing_weapons = 3,
+		/obj/item/grenade/clusterbuster/teargas = 2,
+		/obj/item/grenade/clusterbuster = 2,
+		/obj/item/gun/ballistic/automatic/pistol/deagle = 1,
+		/obj/item/gun/ballistic/revolver/mateba = 1,
+	)
+
+

Bad:

+
/obj/effect/spawner/random/contraband/armory
+	name = "armory loot spawner"
+	loot = list(
+		/obj/item/storage/box/syndie_kit/throwing_weapons = 3,
+		/obj/item/gun/ballistic/automatic/pistol = 8,
+		/obj/item/gun/ballistic/revolver/mateba = 1,
+		/obj/item/grenade/clusterbuster/teargas = 2,
+		/obj/item/gun/ballistic/automatic/pistol/deagle = 1,
+		/obj/item/grenade/clusterbuster = 2,
+		/obj/item/gun/ballistic/shotgun/automatic/combat = 5,
+	)
+
+

Always put the loot list at the bottom of your spawner

+

This is just to keep things organized.

+

Good:

+
/obj/effect/spawner/random/food_or_drink/donkpockets
+	name = "donk pocket box spawner"
+	spawn_loot_double = FALSE
+	loot = list(
+		/obj/item/storage/box/donkpockets/donkpocketspicy,
+		/obj/item/storage/box/donkpockets/donkpocketteriyaki,
+		/obj/item/storage/box/donkpockets/donkpocketpizza,
+		/obj/item/storage/box/donkpockets/donkpocketberry,
+		/obj/item/storage/box/donkpockets/donkpockethonk,
+	)
+
+

Bad:

+
/obj/effect/spawner/random/food_or_drink/donkpockets
+	name = "donk pocket box spawner"
+	loot = list(
+		/obj/item/storage/box/donkpockets/donkpocketspicy,
+		/obj/item/storage/box/donkpockets/donkpocketteriyaki,
+		/obj/item/storage/box/donkpockets/donkpocketpizza,
+		/obj/item/storage/box/donkpockets/donkpocketberry,
+		/obj/item/storage/box/donkpockets/donkpockethonk,
+	)
+	spawn_loot_double = FALSE
+
+

Always put a comma at the last item in the loot list

+

This will make it easier for people to add items to your spawner later without getting frustrating code errors.

+

Good:

+
/obj/effect/spawner/random/medical/minor_healing
+	name = "minor healing spawner"
+	loot = list(
+		/obj/item/stack/medical/suture,
+		/obj/item/stack/medical/mesh,
+		/obj/item/stack/medical/gauze,
+	)
+
+

Bad:

+
/obj/effect/spawner/random/medical/minor_healing
+	name = "minor healing spawner"
+	loot = list(
+		/obj/item/stack/medical/suture,
+		/obj/item/stack/medical/mesh,
+		/obj/item/stack/medical/gauze  // if someone adds an item to the list later it will cause an error
+	)
+
+

Keep the same tab formatting for the loot list (unless there is only one item)

+

Again, this is just good code organization. If there is only one item, then encase that item in loot = list(item)

+

Good:

+
/obj/effect/spawner/random/medical/minor_healing
+	name = "minor healing spawner"
+	loot = list(
+		/obj/item/stack/medical/suture,
+		/obj/item/stack/medical/mesh,
+		/obj/item/stack/medical/gauze,
+	)
+
+

Also Good:

+
/obj/effect/spawner/random/structure/crate_abandoned
+	icon = 'icons/effects/landmarks_static.dmi'
+	icon_state = "loot_site"
+	spawn_loot_chance = 20
+	loot = list(/obj/structure/closet/crate/secure/loot)
+
+

Bad:

+
/obj/effect/spawner/random/medical/minor_healing
+	name = "minor healing spawner"
+	loot = list(
+	/obj/item/stack/medical/suture,
+	/obj/item/stack/medical/mesh,
+	/obj/item/stack/medical/gauze,
+	)
+
+

Also Bad:

+
/obj/effect/spawner/random/medical/minor_healing
+	name = "minor healing spawner"
+	loot = list(/obj/item/stack/medical/suture,
+		/obj/item/stack/medical/mesh,
+		/obj/item/stack/medical/gauze,)
+
+

Try to keep the total combined weight of your loot list to sane values (Aim for 5, 10, 20, 50, or 100)

+

This makes the math probability easier for people to calculate. (this is recommended, but not always possible)

+

Good:

+
/obj/effect/spawner/random/trash/cigbutt
+	name = "cigarette butt spawner"
+	loot = list(
+		/obj/item/cigbutt = 65,
+		/obj/item/cigbutt/roach = 20,
+		/obj/item/cigbutt/cigarbutt = 15,
+	)
+
+

Also Good:

+
/obj/effect/spawner/random/trash/botanical_waste
+	name = "botanical waste spawner"
+	loot = list(
+		/obj/item/grown/bananapeel = 6,
+		/obj/item/grown/corncob = 3,
+		/obj/item/food/grown/bungopit = 1,
+	)
+
+

Bad:

+
/obj/effect/spawner/random/entertainment/money_large
+	name = "large money spawner"
+	loot = list(
+		/obj/item/stack/spacecash/c1 = 521,
+		/obj/item/stack/spacecash/c10 = 378,
+		/obj/item/stack/spacecash/c20 = 212,
+		/obj/item/stack/spacecash/c50 = 205,
+		/obj/item/stack/spacecash/c100 = 71,
+		/obj/item/stack/spacecash/c200 = 60,
+		/obj/item/stack/spacecash/c500 = 57,
+		/obj/item/stack/spacecash/c1000 = 41,
+		/obj/item/stack/spacecash/c10000 = 12,
+	)
+
+

Do not put empty items in the loot list

+

Instead use the spawn_loot_chance var to control the chance for the spawner to spawn nothing.

+

Good:

+
/obj/effect/spawner/random/structure/crate_abandoned
+	name = "locked crate spawner"
+	spawn_loot_chance = 20
+	loot = list(/obj/structure/closet/crate/secure/loot)
+
+

Bad:

+
/obj/effect/spawner/lootdrop/crate_spawner
+	name = "lootcrate spawner"
+	loot = list(
+		"" = 80
+		/obj/structure/closet/crate/secure/loot = 20,
+	)
+
+

Avoid making a spawner that is a duplicate

+

We don't want copy-cat spawners that are almost identical. Instead merge spawners together if possible.

+

Good:

+
/obj/effect/spawner/random/contraband/armory
+	name = "armory loot spawner"
+	icon_state = "pistol"
+	loot = list(
+		/obj/item/gun/ballistic/automatic/pistol = 8,
+		/obj/item/gun/ballistic/shotgun/automatic/combat = 5,
+		/obj/item/storage/box/syndie_kit/throwing_weapons = 3,
+		/obj/item/grenade/clusterbuster/teargas = 2,
+		/obj/item/grenade/clusterbuster = 2,
+		/obj/item/gun/ballistic/automatic/pistol/deagle,
+		/obj/item/gun/ballistic/revolver/mateba,
+	)
+
+

Bad:

+
/obj/effect/spawner/lootdrop/armory_contraband
+	loot = list(
+		/obj/item/gun/ballistic/automatic/pistol = 8,
+		/obj/item/gun/ballistic/shotgun/automatic/combat = 5,
+		/obj/item/gun/ballistic/automatic/pistol/deagle,
+		/obj/item/gun/ballistic/revolver/mateba
+	)
+
+/obj/effect/spawner/lootdrop/armory_contraband/metastation
+	loot = list(
+		/obj/item/gun/ballistic/automatic/pistol = 8,
+		/obj/item/gun/ballistic/shotgun/automatic/combat = 5,
+		/obj/item/storage/box/syndie_kit/throwing_weapons = 3,
+		/obj/item/gun/ballistic/automatic/pistol/deagle,
+		/obj/item/gun/ballistic/revolver/mateba
+	)
+
+
\ No newline at end of file diff --git a/code/game/objects/effects/spawners/random/ai_module.html b/code/game/objects/effects/spawners/random/ai_module.html new file mode 100644 index 0000000000000..5c8b663cc33d0 --- /dev/null +++ b/code/game/objects/effects/spawners/random/ai_module.html @@ -0,0 +1 @@ +code/game/objects/effects/spawners/random/ai_module.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/spawners/random/ai_module.dm

/obj/effect/spawner/random/aimodule/harmlessAI uploads have the ai_module/reset , ai_module/supplied/freeform , ai_module/reset/purge , and ai_module/core/full/asimov directly mapped in
\ No newline at end of file diff --git a/code/game/objects/effects/spawners/random/food_or_drink.html b/code/game/objects/effects/spawners/random/food_or_drink.html new file mode 100644 index 0000000000000..a8316e1dab5a2 --- /dev/null +++ b/code/game/objects/effects/spawners/random/food_or_drink.html @@ -0,0 +1 @@ +code/game/objects/effects/spawners/random/food_or_drink.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/spawners/random/food_or_drink.dm

/obj/effect/spawner/random/food_or_drink/cake_ingredientsUsed for the employee birthday station trait
\ No newline at end of file diff --git a/code/game/objects/effects/spawners/random/lavaland_mobs.html b/code/game/objects/effects/spawners/random/lavaland_mobs.html new file mode 100644 index 0000000000000..43e16ae7d532f --- /dev/null +++ b/code/game/objects/effects/spawners/random/lavaland_mobs.html @@ -0,0 +1 @@ +code/game/objects/effects/spawners/random/lavaland_mobs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/spawners/random/lavaland_mobs.dm

/obj/effect/spawner/random/lavaland_mobFor map generation, has a chance to instantiate as a special subtype
/obj/effect/spawner/random/lavaland_mob/watcherSpawns random watcher variants during map generation
/obj/effect/spawner/random/lavaland_mob/goliathSpawns random goliath variants during map generation
/obj/effect/spawner/random/lavaland_mob/legionSpawns random legion variants during map generation
\ No newline at end of file diff --git a/code/game/objects/effects/spawners/random/maintenance.html b/code/game/objects/effects/spawners/random/maintenance.html new file mode 100644 index 0000000000000..912ad4045e0a9 --- /dev/null +++ b/code/game/objects/effects/spawners/random/maintenance.html @@ -0,0 +1,2 @@ +code/game/objects/effects/spawners/random/maintenance.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/spawners/random/maintenance.dm

/obj/effect/spawner/random/maintenance/no_decalsA subtype of maintenance loot spawner that does not spawn any decals, for when you want to place them on chasm turfs and such +decals such as ashes will cause NeverShouldHaveComeHere() to fail on such turfs, which creates annoying rng based CI failures
\ No newline at end of file diff --git a/code/game/objects/effects/spawners/random/random.html b/code/game/objects/effects/spawners/random/random.html new file mode 100644 index 0000000000000..7a4d10a22da85 --- /dev/null +++ b/code/game/objects/effects/spawners/random/random.html @@ -0,0 +1 @@ +code/game/objects/effects/spawners/random/random.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/spawners/random/random.dm

/obj/effect/spawner/randomBase class for all random spawners.
\ No newline at end of file diff --git a/code/game/objects/effects/spawners/random/structure.html b/code/game/objects/effects/spawners/random/structure.html new file mode 100644 index 0000000000000..61f8ed1acdebb --- /dev/null +++ b/code/game/objects/effects/spawners/random/structure.html @@ -0,0 +1 @@ +code/game/objects/effects/spawners/random/structure.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/spawners/random/structure.dm

/obj/effect/spawner/random/structure/twelve_percent_spirit_board12% chance to spawn a ouija board, or a potted plant. Btw, Wawastation has a guaranteed board.
\ No newline at end of file diff --git a/code/game/objects/effects/spiderwebs.html b/code/game/objects/effects/spiderwebs.html new file mode 100644 index 0000000000000..2ab82a13213b6 --- /dev/null +++ b/code/game/objects/effects/spiderwebs.html @@ -0,0 +1 @@ +code/game/objects/effects/spiderwebs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/spiderwebs.dm

/obj/structure/spider/stickyweb/geneticWeb made by geneticists, needs special handling to allow them to pass through their own webs
/obj/structure/spider/stickyweb/very_stickyWeb with a 100% chance to intercept movement
/obj/structure/spider/stickyweb/sealedWeb 'wall'
/obj/structure/spider/stickyweb/sealed/reflectorWalls which reflects lasers
/obj/structure/spider/stickyweb/sealed/toughOpaque and durable web 'wall'
/obj/structure/spider/passageWeb 'door', blocks atmos but not movement
/obj/structure/spider/spikesWeb caltrops
\ No newline at end of file diff --git a/code/game/objects/effects/temporary_visuals/effect_trail.html b/code/game/objects/effects/temporary_visuals/effect_trail.html new file mode 100644 index 0000000000000..85825e7c272ea --- /dev/null +++ b/code/game/objects/effects/temporary_visuals/effect_trail.html @@ -0,0 +1 @@ +code/game/objects/effects/temporary_visuals/effect_trail.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/temporary_visuals/effect_trail.dm

/obj/effect/temp_visual/effect_trailAn invisible effect which chases a target, spawning spikes every so often.
\ No newline at end of file diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.html b/code/game/objects/effects/temporary_visuals/miscellaneous.html new file mode 100644 index 0000000000000..8fa0c36c06046 --- /dev/null +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.html @@ -0,0 +1 @@ +code/game/objects/effects/temporary_visuals/miscellaneous.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/temporary_visuals/miscellaneous.dm

/obj/effect/temp_visual/despawn_effectPlays a dispersing animation on hivelord and legion minions so they don't just vanish
\ No newline at end of file diff --git a/code/game/objects/effects/temporary_visuals/temporary_visual.html b/code/game/objects/effects/temporary_visuals/temporary_visual.html new file mode 100644 index 0000000000000..97f66752a98ce --- /dev/null +++ b/code/game/objects/effects/temporary_visuals/temporary_visual.html @@ -0,0 +1 @@ +code/game/objects/effects/temporary_visuals/temporary_visual.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/effects/temporary_visuals/temporary_visual.dm

/obj/effect/temp_visualtemporary visual effects
\ No newline at end of file diff --git a/code/game/objects/items.html b/code/game/objects/items.html new file mode 100644 index 0000000000000..5b4f08d7b7473 --- /dev/null +++ b/code/game/objects/items.html @@ -0,0 +1 @@ +code/game/objects/items.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items.dm

/obj/itemAnything you can pick up and hold.
MAX_MATS_PER_BITEHow many different types of mats will be counted in a bite?
/proc/is_matching_baitHelper proc that checks if a bait matches identifier from fav/disliked bait list

Define Details

MAX_MATS_PER_BITE

How many different types of mats will be counted in a bite?

\ No newline at end of file diff --git a/code/game/objects/items/AI_modules/_AI_modules.html b/code/game/objects/items/AI_modules/_AI_modules.html new file mode 100644 index 0000000000000..a58b75c11c72f --- /dev/null +++ b/code/game/objects/items/AI_modules/_AI_modules.html @@ -0,0 +1,2 @@ +code/game/objects/items/AI_modules/_AI_modules.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/AI_modules/_AI_modules.dm

SHOULD_QDEL_MODULEdefined truthy result for handle_unique_ai(), which makes initialize return INITIALIZE_HINT_QDEL
/obj/item/ai_module/core/round_default_fallbackWhen the default lawset spawner cannot find a module object to spawn, it will spawn this, and this sets itself to the round default. +This is so /datum/lawsets can be picked even if they have no module for themselves.

Define Details

SHOULD_QDEL_MODULE

defined truthy result for handle_unique_ai(), which makes initialize return INITIALIZE_HINT_QDEL

\ No newline at end of file diff --git a/code/game/objects/items/AI_modules/hacked.html b/code/game/objects/items/AI_modules/hacked.html new file mode 100644 index 0000000000000..02a7b1c734de6 --- /dev/null +++ b/code/game/objects/items/AI_modules/hacked.html @@ -0,0 +1 @@ +code/game/objects/items/AI_modules/hacked.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/AI_modules/hacked.dm

/obj/item/ai_module/malfMakes the AI Malf, as well as give it syndicate laws.
\ No newline at end of file diff --git a/code/game/objects/items/blueprints.html b/code/game/objects/items/blueprints.html new file mode 100644 index 0000000000000..09a75a78c8d76 --- /dev/null +++ b/code/game/objects/items/blueprints.html @@ -0,0 +1,4 @@ +code/game/objects/items/blueprints.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/blueprints.dm

AREA_STATIONThe area is a "Station" area, showing no special text.
AREA_OUTDOORSThe area is in outdoors (lavaland/icemoon/jungle/space), therefore unclaimed territories.
AREA_SPECIALThe area is special (shuttles/centcom), therefore can't be claimed.
LEGEND_VIEWING_LISTThe blueprints are currently reading the list of all wire datums.
LEGEND_OFFThe blueprints are on the main page.
/obj/item/blueprintsBlueprints +Used to see the wires of machines on the station, the roundstart layout of pipes/cables/tubes, +as well as allowing you to rename existing areas and create new ones. +Used by the station, cyborgs, and golems.
/obj/item/blueprints/cyborgCyborg blueprints - The same as regular but with a different fluff text.
/obj/item/blueprints/golemGolem blueprints - Used to make golem areas that won't give the hazardous area debuffs.
/obj/item/blueprints/slimeSlime blueprints - Makes areas colored and compatible with xenobiology camera consoles, one time use.

Define Details

AREA_OUTDOORS

The area is in outdoors (lavaland/icemoon/jungle/space), therefore unclaimed territories.

AREA_SPECIAL

The area is special (shuttles/centcom), therefore can't be claimed.

AREA_STATION

The area is a "Station" area, showing no special text.

LEGEND_OFF

The blueprints are on the main page.

LEGEND_VIEWING_LIST

The blueprints are currently reading the list of all wire datums.

\ No newline at end of file diff --git a/code/game/objects/items/broom.html b/code/game/objects/items/broom.html new file mode 100644 index 0000000000000..234d55137d80a --- /dev/null +++ b/code/game/objects/items/broom.html @@ -0,0 +1,2 @@ +code/game/objects/items/broom.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/broom.dm

BROOM_PUSH_LIMITMax number of atoms a broom can sweep at once
/proc/do_sweepSweep objects in the direction we're facing towards our direction +Arguments

Define Details

BROOM_PUSH_LIMIT

Max number of atoms a broom can sweep at once

\ No newline at end of file diff --git a/code/game/objects/items/cards_ids.html b/code/game/objects/items/cards_ids.html new file mode 100644 index 0000000000000..d1190805d8249 --- /dev/null +++ b/code/game/objects/items/cards_ids.html @@ -0,0 +1,4 @@ +code/game/objects/items/cards_ids.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/cards_ids.dm

INTERN_THRESHOLD_FALLBACK_HOURSFallback time if none of the config entries are set for USE_LOW_LIVING_HOUR_INTERN
HOLOPAY_PROJECTION_INTERVALMax time interval between projecting holopays
/obj/item/card/id"Retro" ID card that renders itself as the icon state with no overlays.
/obj/item/card/id/advanced/plainclothesAn ID that you can flip with attack_self_secondary, overriding the appearance of the ID (useful for plainclothes detectives for example).
/obj/item/card/id/advanced/chameleon/blackA special variant of the classic chameleon ID card which accepts all access.
/obj/item/card/cardboardA fake ID card any silly-willy can craft with wirecutters, cardboard and a writing utensil +Beside the gimmick of changing the visible name when worn, they do nothing. They cannot have an account. +They don't fit in PDAs nor wallets, They have no access. They won't trick securitrons. They won't work with chameleon masks. +Etcetera etcetera. Furthermore, talking, or getting examined on will pretty much give it away.

Define Details

HOLOPAY_PROJECTION_INTERVAL

Max time interval between projecting holopays

INTERN_THRESHOLD_FALLBACK_HOURS

Fallback time if none of the config entries are set for USE_LOW_LIVING_HOUR_INTERN

\ No newline at end of file diff --git a/code/game/objects/items/devices/aicard_evil.html b/code/game/objects/items/devices/aicard_evil.html new file mode 100644 index 0000000000000..3a700b1025263 --- /dev/null +++ b/code/game/objects/items/devices/aicard_evil.html @@ -0,0 +1 @@ +code/game/objects/items/devices/aicard_evil.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/devices/aicard_evil.dm

/obj/item/aicard/syndieOne use AI card which downloads a ghost as a syndicate AI to put in your MODsuit
/obj/item/computer_disk/syndie_ai_upgradeUpgrade disk used to increase the range of a syndicate AI
\ No newline at end of file diff --git a/code/game/objects/items/devices/anomaly_releaser.html b/code/game/objects/items/devices/anomaly_releaser.html new file mode 100644 index 0000000000000..522ac53602fbb --- /dev/null +++ b/code/game/objects/items/devices/anomaly_releaser.html @@ -0,0 +1 @@ +code/game/objects/items/devices/anomaly_releaser.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/devices/anomaly_releaser.dm

/obj/item/anomaly_releaserUse on an anomaly core to "awake" the anomaly and stabilize it
\ No newline at end of file diff --git a/code/game/objects/items/devices/battle_royale.html b/code/game/objects/items/devices/battle_royale.html new file mode 100644 index 0000000000000..6eefba823281b --- /dev/null +++ b/code/game/objects/items/devices/battle_royale.html @@ -0,0 +1 @@ +code/game/objects/items/devices/battle_royale.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/devices/battle_royale.dm

/obj/item/royale_implanterQuietly implants people with battle royale implants
/obj/item/royale_remoteActivates implants implanted by linked royale implanter
/datum/battle_royale_masterBasically just exists to hold references to datums so that they don't GC
/datum/battle_royale_controllerDatum which controls the conflict
\ No newline at end of file diff --git a/code/game/objects/items/devices/multitool.html b/code/game/objects/items/devices/multitool.html new file mode 100644 index 0000000000000..c0a9d0fddeaa9 --- /dev/null +++ b/code/game/objects/items/devices/multitool.html @@ -0,0 +1 @@ +code/game/objects/items/devices/multitool.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/devices/multitool.dm

/obj/item/multitoolMultitool -- A multitool is used for hacking electronic devices.
\ No newline at end of file diff --git a/code/game/objects/items/devices/radio/radio.html b/code/game/objects/items/devices/radio/radio.html new file mode 100644 index 0000000000000..c352798bf16d1 --- /dev/null +++ b/code/game/objects/items/devices/radio/radio.html @@ -0,0 +1 @@ +code/game/objects/items/devices/radio/radio.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/devices/radio/radio.dm

/obj/item/radio/borgBorg Radios
\ No newline at end of file diff --git a/code/game/objects/items/devices/scanners/gas_analyzer.html b/code/game/objects/items/devices/scanners/gas_analyzer.html new file mode 100644 index 0000000000000..8c076d8d553be --- /dev/null +++ b/code/game/objects/items/devices/scanners/gas_analyzer.html @@ -0,0 +1 @@ +code/game/objects/items/devices/scanners/gas_analyzer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/devices/scanners/gas_analyzer.dm

/proc/atmos_scanOutputs a message to the user describing the target's gasmixes.
\ No newline at end of file diff --git a/code/game/objects/items/devices/scanners/health_analyzer.html b/code/game/objects/items/devices/scanners/health_analyzer.html new file mode 100644 index 0000000000000..c2ae44d158855 --- /dev/null +++ b/code/game/objects/items/devices/scanners/health_analyzer.html @@ -0,0 +1,9 @@ +code/game/objects/items/devices/scanners/health_analyzer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/devices/scanners/health_analyzer.dm

/proc/healthscanhealthscan +returns a list of everything a health scan should give to a player. +Examples of where this is used is Health Analyzer and the Physical Scanner tablet app. +Args: +user - The person with the scanner +target - The person being scanned +mode - Uses SCANNER_CONDENSED or SCANNER_VERBOSE to decide whether to give a list of all individual limb damage +advanced - Whether it will give more advanced details, such as husk source. +tochat - Whether to immediately post the result into the chat of the user, otherwise it will return the results.
/proc/woundscanDisplays wounds with extended information on their status vs medscanners
/proc/diseasescanChecks the individual for any diseases that are visible to the scanner, and displays the diseases in the attacked to the attacker.
\ No newline at end of file diff --git a/code/game/objects/items/devices/table_clock.html b/code/game/objects/items/devices/table_clock.html new file mode 100644 index 0000000000000..a0e0407fe17ee --- /dev/null +++ b/code/game/objects/items/devices/table_clock.html @@ -0,0 +1 @@ +code/game/objects/items/devices/table_clock.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/devices/table_clock.dm

MAX_CLOCK_REPAIRSMaximum amount of times a clock can be repaired until it's destroyed beyond repair.

Define Details

MAX_CLOCK_REPAIRS

Maximum amount of times a clock can be repaired until it's destroyed beyond repair.

\ No newline at end of file diff --git a/code/game/objects/items/devices/traitordevices.html b/code/game/objects/items/devices/traitordevices.html new file mode 100644 index 0000000000000..a2a66de301af7 --- /dev/null +++ b/code/game/objects/items/devices/traitordevices.html @@ -0,0 +1 @@ +code/game/objects/items/devices/traitordevices.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/devices/traitordevices.dm

/proc/is_within_radio_jammer_rangeChecks if a given atom is in range of a radio jammer, returns TRUE if it is.
\ No newline at end of file diff --git a/code/game/objects/items/dice.html b/code/game/objects/items/dice.html new file mode 100644 index 0000000000000..4e7a5ebcec16d --- /dev/null +++ b/code/game/objects/items/dice.html @@ -0,0 +1 @@ +code/game/objects/items/dice.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/dice.dm

/obj/item/storage/diceholding bag for dice
/obj/item/dicethis is a prototype for dice, for a real d6 use "/obj/item/dice/d6"
\ No newline at end of file diff --git a/code/game/objects/items/dna_injector.html b/code/game/objects/items/dna_injector.html new file mode 100644 index 0000000000000..82fda6abfd294 --- /dev/null +++ b/code/game/objects/items/dna_injector.html @@ -0,0 +1 @@ +code/game/objects/items/dna_injector.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/dna_injector.dm

/obj/item/dnainjector/acidfleshDNA INJECTORS
\ No newline at end of file diff --git a/code/game/objects/items/dna_probe.html b/code/game/objects/items/dna_probe.html new file mode 100644 index 0000000000000..302660fe2f103 --- /dev/null +++ b/code/game/objects/items/dna_probe.html @@ -0,0 +1 @@ +code/game/objects/items/dna_probe.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/dna_probe.dm

/obj/item/dna_probeDNA Probe
/obj/item/dna_probe/carp_scannerUsed for scanning carps, and then turning yourself into one.
\ No newline at end of file diff --git a/code/game/objects/items/eightball.html b/code/game/objects/items/eightball.html new file mode 100644 index 0000000000000..eca4cb4c53c66 --- /dev/null +++ b/code/game/objects/items/eightball.html @@ -0,0 +1 @@ +code/game/objects/items/eightball.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/eightball.dm

/obj/item/toy/eightballApplies a gradient and a gradient color to a mob.
\ No newline at end of file diff --git a/code/game/objects/items/food/_food.html b/code/game/objects/items/food/_food.html new file mode 100644 index 0000000000000..939198d28138b --- /dev/null +++ b/code/game/objects/items/food/_food.html @@ -0,0 +1 @@ +code/game/objects/items/food/_food.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/food/_food.dm

/obj/item/foodAbstract class to allow us to easily create all the generic "normal" food without too much copy pasta of adding more components
\ No newline at end of file diff --git a/code/game/objects/items/food/bait.html b/code/game/objects/items/food/bait.html new file mode 100644 index 0000000000000..b958fad6b1534 --- /dev/null +++ b/code/game/objects/items/food/bait.html @@ -0,0 +1,5 @@ +code/game/objects/items/food/bait.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/food/bait.dm

/obj/item/food/bait/doughball/syntheticThe abstract synthetic doughball type.
/obj/item/food/bait/doughball/synthetic/superFound in the can of omni-baits, only available from the super fishing toolbox, from the fishing mystery box.
/obj/item/food/bait/doughball/syntethic/unconsumableBound to the tech fishing rod, from which cannot be removed, +Bait-related preferences and traits, both negative and positive, +should be ignored by this bait. +Otherwise it'd be hard/impossible to cath some fish with it, +making that rod a shoddy choice in the long run.
\ No newline at end of file diff --git a/code/game/objects/items/food/bread.html b/code/game/objects/items/food/bread.html new file mode 100644 index 0000000000000..fd8a21127f318 --- /dev/null +++ b/code/game/objects/items/food/bread.html @@ -0,0 +1 @@ +code/game/objects/items/food/bread.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/food/bread.dm

/obj/item/food/breadAbstract parent object for bread items. Should not be made obtainable in game.
/obj/item/food/baguette/combatDeadly bread used by a mime
\ No newline at end of file diff --git a/code/game/objects/items/food/cheese.html b/code/game/objects/items/food/cheese.html new file mode 100644 index 0000000000000..294ed7978d8eb --- /dev/null +++ b/code/game/objects/items/food/cheese.html @@ -0,0 +1 @@ +code/game/objects/items/food/cheese.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/food/cheese.dm

/obj/item/food/cheeseEverything that is a subclass of this counts as cheese for regal rats.
\ No newline at end of file diff --git a/code/game/objects/items/food/donkpocket.html b/code/game/objects/items/food/donkpocket.html new file mode 100644 index 0000000000000..041b72f3d35f4 --- /dev/null +++ b/code/game/objects/items/food/donkpocket.html @@ -0,0 +1 @@ +code/game/objects/items/food/donkpocket.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/food/donkpocket.dm

/obj/item/food/donkpocketDONK POCKETS
\ No newline at end of file diff --git a/code/game/objects/items/food/donuts.html b/code/game/objects/items/food/donuts.html new file mode 100644 index 0000000000000..3ac8a32cf2e09 --- /dev/null +++ b/code/game/objects/items/food/donuts.html @@ -0,0 +1 @@ +code/game/objects/items/food/donuts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/food/donuts.dm

/obj/item/food/donut/jellyJELLY DONUTS
/obj/item/food/donut/jelly/slimejellySLIME DONUTS
\ No newline at end of file diff --git a/code/game/objects/items/food/egg.html b/code/game/objects/items/food/egg.html new file mode 100644 index 0000000000000..3cb3ca960a14d --- /dev/null +++ b/code/game/objects/items/food/egg.html @@ -0,0 +1 @@ +code/game/objects/items/food/egg.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/food/egg.dm

/obj/item/food/chocolateeggEGGS
\ No newline at end of file diff --git a/code/game/objects/items/food/meatdish.html b/code/game/objects/items/food/meatdish.html new file mode 100644 index 0000000000000..621d2e36f3ee3 --- /dev/null +++ b/code/game/objects/items/food/meatdish.html @@ -0,0 +1 @@ +code/game/objects/items/food/meatdish.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/food/meatdish.dm

/obj/item/food/cubancarpFISH
/obj/item/food/fishmeat/gunner_jellyfish/supplyPremade gunner jellyfish fillets from supply orders. Contains the halluginogen that'd be normally from the fish trait.
/obj/item/food/fishmeat/donkfishdonkfish fillets. The yuck reagent is now added by the fish trait of the same name.
/obj/item/food/tempehMEATS AND ALIKE
/obj/item/food/patty/plainExists purely for the crafting recipe (because it'll take subtypes)
/obj/item/food/nugget/fishsubtype harvested from fish caught from, you guess it, the deepfryer
/obj/item/food/kebabKEBABS AND OTHER SKEWERS
\ No newline at end of file diff --git a/code/game/objects/items/food/meatslab.html b/code/game/objects/items/food/meatslab.html new file mode 100644 index 0000000000000..43659e7f66b16 --- /dev/null +++ b/code/game/objects/items/food/meatslab.html @@ -0,0 +1 @@ +code/game/objects/items/food/meatslab.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/food/meatslab.dm

/obj/item/food/meat/slab/humanHUMAN MEATS
/obj/item/food/meat/slab/synthmeatOTHER MEATS
/obj/item/food/meat/steakMEAT STEAKS
/obj/item/food/meat/rawcutletMEAT CUTLETS
\ No newline at end of file diff --git a/code/game/objects/items/food/misc.html b/code/game/objects/items/food/misc.html new file mode 100644 index 0000000000000..1db98b1a70d6e --- /dev/null +++ b/code/game/objects/items/food/misc.html @@ -0,0 +1 @@ +code/game/objects/items/food/misc.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/food/misc.dm

/obj/item/food/watermelonsliceOTHER
/obj/item/food/ink_sacExtracted from squids, or any fish with the ink fish trait.
\ No newline at end of file diff --git a/code/game/objects/items/food/pastries.html b/code/game/objects/items/food/pastries.html new file mode 100644 index 0000000000000..d68c9aaf883eb --- /dev/null +++ b/code/game/objects/items/food/pastries.html @@ -0,0 +1 @@ +code/game/objects/items/food/pastries.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/food/pastries.dm

/obj/item/food/muffinMUFFINS
/obj/item/food/wafflesWAFFLES
/obj/item/food/cookieOTHER
\ No newline at end of file diff --git a/code/game/objects/items/food/salad.html b/code/game/objects/items/food/salad.html new file mode 100644 index 0000000000000..af299b4126a4d --- /dev/null +++ b/code/game/objects/items/food/salad.html @@ -0,0 +1 @@ +code/game/objects/items/food/salad.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/food/salad.dm

/obj/item/food/saladSALAD
\ No newline at end of file diff --git a/code/game/objects/items/food/snacks.html b/code/game/objects/items/food/snacks.html new file mode 100644 index 0000000000000..2913e4d2e246e --- /dev/null +++ b/code/game/objects/items/food/snacks.html @@ -0,0 +1 @@ +code/game/objects/items/food/snacks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/food/snacks.dm

/obj/item/food/candySNACKS FROM VENDING MACHINES
\ No newline at end of file diff --git a/code/game/objects/items/food/spaghetti.html b/code/game/objects/items/food/spaghetti.html new file mode 100644 index 0000000000000..a2c1ef904ca17 --- /dev/null +++ b/code/game/objects/items/food/spaghetti.html @@ -0,0 +1 @@ +code/game/objects/items/food/spaghetti.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/food/spaghetti.dm

/obj/item/food/spaghettispaghetti prototype used by all subtypes
\ No newline at end of file diff --git a/code/game/objects/items/gift.html b/code/game/objects/items/gift.html new file mode 100644 index 0000000000000..7479b57e0d16b --- /dev/null +++ b/code/game/objects/items/gift.html @@ -0,0 +1 @@ +code/game/objects/items/gift.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/gift.dm

/obj/item/giftGifts to give to players, will contain a nice toy or other fun item for them to play with.
/obj/item/gift/anythingGifts that typically only very OP stuff or admins or Santa Claus himself should be giving out, as they contain ANY valid subtype of /obj/item, including stuff like instagib rifles. Wow!
\ No newline at end of file diff --git a/code/game/objects/items/granters/_granters.html b/code/game/objects/items/granters/_granters.html new file mode 100644 index 0000000000000..29b12a7421bd3 --- /dev/null +++ b/code/game/objects/items/granters/_granters.html @@ -0,0 +1 @@ +code/game/objects/items/granters/_granters.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/granters/_granters.dm

/obj/item/book/granterBooks that teach things.
\ No newline at end of file diff --git a/code/game/objects/items/granters/chuuni_granter.html b/code/game/objects/items/granters/chuuni_granter.html new file mode 100644 index 0000000000000..7091049d8e6b4 --- /dev/null +++ b/code/game/objects/items/granters/chuuni_granter.html @@ -0,0 +1 @@ +code/game/objects/items/granters/chuuni_granter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/granters/chuuni_granter.dm

/obj/item/book/granter/chuunibyouTurns the user into a chuunibyou.
\ No newline at end of file diff --git a/code/game/objects/items/granters/magic/_spell_granter.html b/code/game/objects/items/granters/magic/_spell_granter.html new file mode 100644 index 0000000000000..d5b9afbd606a7 --- /dev/null +++ b/code/game/objects/items/granters/magic/_spell_granter.html @@ -0,0 +1 @@ +code/game/objects/items/granters/magic/_spell_granter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/granters/magic/_spell_granter.dm

/obj/item/book/granter/action/spell/randomSimple granter that's replaced with a random spell granter on Initialize.
/obj/item/book/granter/action/spell/true_randomA more volatile granter that can potentially have any spell within. Use wisely.
\ No newline at end of file diff --git a/code/game/objects/items/granters/sign_language.html b/code/game/objects/items/granters/sign_language.html new file mode 100644 index 0000000000000..e037b2608d25b --- /dev/null +++ b/code/game/objects/items/granters/sign_language.html @@ -0,0 +1,2 @@ +code/game/objects/items/granters/sign_language.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/granters/sign_language.dm

/obj/item/book/granter/sign_languageSign language book adds the sign language component to the reading Human. +Grants reader the ability to toggle sign language using a HUD button.
\ No newline at end of file diff --git a/code/game/objects/items/grenades/_grenade.html b/code/game/objects/items/grenades/_grenade.html new file mode 100644 index 0000000000000..a4415bae9fe73 --- /dev/null +++ b/code/game/objects/items/grenades/_grenade.html @@ -0,0 +1 @@ +code/game/objects/items/grenades/_grenade.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/grenades/_grenade.dm

/obj/item/grenadeBase class for all grenades.
\ No newline at end of file diff --git a/code/game/objects/items/grenades/chem_grenade.html b/code/game/objects/items/grenades/chem_grenade.html new file mode 100644 index 0000000000000..76d8ac2d45299 --- /dev/null +++ b/code/game/objects/items/grenades/chem_grenade.html @@ -0,0 +1 @@ +code/game/objects/items/grenades/chem_grenade.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/grenades/chem_grenade.dm

/obj/item/grenade/chem_grenade/metalfoamPREMADE GRENADES
\ No newline at end of file diff --git a/code/game/objects/items/grenades/smokebomb.html b/code/game/objects/items/grenades/smokebomb.html new file mode 100644 index 0000000000000..cd2c25fc70220 --- /dev/null +++ b/code/game/objects/items/grenades/smokebomb.html @@ -0,0 +1,3 @@ +code/game/objects/items/grenades/smokebomb.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/grenades/smokebomb.dm

/obj/item/grenade/smokebombThis is smoke bomb, mezum koman. It is a grenade subtype. All craftmanship is of the highest quality. +It menaces with spikes of iron. On it is a depiction of an assistant. +The assistant is bleeding. The assistant has a painful expression. The assistant is dead.
\ No newline at end of file diff --git a/code/game/objects/items/hand_items.html b/code/game/objects/items/hand_items.html new file mode 100644 index 0000000000000..d4017d03ddacd --- /dev/null +++ b/code/game/objects/items/hand_items.html @@ -0,0 +1 @@ +code/game/objects/items/hand_items.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/hand_items.dm

/obj/item/hand_itemFor all of the items that are really just the user's hand used in different ways, mostly (all, really) from emotes
\ No newline at end of file diff --git a/code/game/objects/items/handcuffs.html b/code/game/objects/items/handcuffs.html new file mode 100644 index 0000000000000..0fd4c714f284d --- /dev/null +++ b/code/game/objects/items/handcuffs.html @@ -0,0 +1 @@ +code/game/objects/items/handcuffs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/handcuffs.dm

/obj/item/restraintsParent class for handcuffs and handcuff accessories
/obj/item/restraints/handcuffsStuff that makes humans unable to use hands
/obj/item/restraints/handcuffs/alienAbductor reskin of the handcuffs.
/obj/item/restraints/handcuffs/fakeFake handcuffs that can be removed near-instantly.
/obj/item/restraints/handcuffs/cableGhetto handcuffs. Removing those is faster.
/obj/item/restraints/handcuffs/cable/sinewPrimal ghetto handcuffs
/obj/item/restraints/handcuffs/cable/redRed cable restraints
/obj/item/restraints/handcuffs/cable/yellowYellow cable restraints
/obj/item/restraints/handcuffs/cable/blueBlue cable restraints
/obj/item/restraints/handcuffs/cable/greenGreen cable restraints
/obj/item/restraints/handcuffs/cable/pinkPink cable restraints
/obj/item/restraints/handcuffs/cable/orangeOrange (the color) cable restraints
/obj/item/restraints/handcuffs/cable/cyanCyan cable restraints
/obj/item/restraints/handcuffs/cable/whiteWhite cable restraints
/obj/item/restraints/handcuffs/cable/ziptiesOne-use handcuffs that take 45 seconds to resist out of instead of one minute. This turns into the used version when applied.
/obj/item/restraints/handcuffs/cable/zipties/usedWhat zipties turn into when applied. These can't be used to cuff people.
/obj/item/restraints/handcuffs/cable/zipties/fakeOne-use handcuffs that is very easy to break out of, meant as a one-use alternative to regular fake handcuffs.
/obj/item/restraints/legcuffsParent class for everything that can legcuff carbons. Can't legcuff anything itself.
/obj/item/restraints/legcuffs/beartrapThis opens, closes, and bites people's legs.
/obj/item/restraints/legcuffs/beartrap/energyThis closes on people's legs.
/obj/item/restraints/legcuffs/bola/tacticalA traitor variant of the bola.
/obj/item/restraints/legcuffs/bola/energyA security variant of the bola.
/obj/item/restraints/legcuffs/bola/gonbolaA pacifying variant of the bola.
\ No newline at end of file diff --git a/code/game/objects/items/implants/implant.html b/code/game/objects/items/implants/implant.html new file mode 100644 index 0000000000000..a65d9d0d4a1ff --- /dev/null +++ b/code/game/objects/items/implants/implant.html @@ -0,0 +1 @@ +code/game/objects/items/implants/implant.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/implants/implant.dm

/obj/item/implantParent class for all implants
\ No newline at end of file diff --git a/code/game/objects/items/implants/implant_battle_royale.html b/code/game/objects/items/implants/implant_battle_royale.html new file mode 100644 index 0000000000000..6ede9a720c602 --- /dev/null +++ b/code/game/objects/items/implants/implant_battle_royale.html @@ -0,0 +1 @@ +code/game/objects/items/implants/implant_battle_royale.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/implants/implant_battle_royale.dm

/obj/item/implant/explosive/battle_royaleImplant used by the traitor Battle Royale objective, is not active immediately
\ No newline at end of file diff --git a/code/game/objects/items/implants/implant_clown.html b/code/game/objects/items/implants/implant_clown.html new file mode 100644 index 0000000000000..c3e3bb926c0a2 --- /dev/null +++ b/code/game/objects/items/implants/implant_clown.html @@ -0,0 +1 @@ +code/game/objects/items/implants/implant_clown.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/implants/implant_clown.dm

/obj/item/implant/sad_tromboneA passive implant that plays sound/misc/sadtrombone.ogg when you deathgasp for any reason
/obj/item/implanter/sad_tromboneImplanter that spawns with a sad trombone implant, as well as an appropriate name
/obj/item/implantcase/sad_tromboneImplant case that spawns with a sad trombone implant, as well as an appropriate name and description
\ No newline at end of file diff --git a/code/game/objects/items/implants/implant_explosive.html b/code/game/objects/items/implants/implant_explosive.html new file mode 100644 index 0000000000000..8a05f99d8dab3 --- /dev/null +++ b/code/game/objects/items/implants/implant_explosive.html @@ -0,0 +1,5 @@ +code/game/objects/items/implants/implant_explosive.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/implants/implant_explosive.dm

MICROBOMB_DELAYNote that we can stack explosive implants and thus increase the payload's devastation radius. (https://github.com/tgstation/tgstation/pull/50674) +That's why the three devastation values for the microbomb implant are balanced around in such a way +that buying one macrobomb equals to buying 10 microbombs and stacking them.
/obj/item/implant/explosive/macroMacrobomb has the strength and delay of 10 microbombs
/obj/item/implant/explosive/deniabilityMicrobomb which prevents you from going into critical condition but also explodes after a timer when you reach critical condition in the first place.

Define Details

MICROBOMB_DELAY

Note that we can stack explosive implants and thus increase the payload's devastation radius. (https://github.com/tgstation/tgstation/pull/50674) +That's why the three devastation values for the microbomb implant are balanced around in such a way +that buying one macrobomb equals to buying 10 microbombs and stacking them.

\ No newline at end of file diff --git a/code/game/objects/items/implants/implantcase.html b/code/game/objects/items/implants/implantcase.html new file mode 100644 index 0000000000000..87cdf659c859b --- /dev/null +++ b/code/game/objects/items/implants/implantcase.html @@ -0,0 +1 @@ +code/game/objects/items/implants/implantcase.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/implants/implantcase.dm

/obj/item/implantcaseItem used to store implants. Can be renamed with a pen. Implants are moved between those and implanters when a mob uses an implanter on a case.
/obj/item/implantcase/trackingAn implant case that spawns with a tracking implant, as well as an appropriate name and description.
/obj/item/implantcase/weapons_authAn implant case that spawns with a firearms authentication implant, as well as an appropriate name and description.
\ No newline at end of file diff --git a/code/game/objects/items/implants/implanter.html b/code/game/objects/items/implants/implanter.html new file mode 100644 index 0000000000000..9486ac23b2a9b --- /dev/null +++ b/code/game/objects/items/implants/implanter.html @@ -0,0 +1 @@ +code/game/objects/items/implants/implanter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/implants/implanter.dm

/obj/item/implanterPlayers can use this item to put obj/item/implant's in living mobs. Can be renamed with a pen.
\ No newline at end of file diff --git a/code/game/objects/items/implants/security/implant_beacon.html b/code/game/objects/items/implants/security/implant_beacon.html new file mode 100644 index 0000000000000..4930c10033f67 --- /dev/null +++ b/code/game/objects/items/implants/security/implant_beacon.html @@ -0,0 +1 @@ +code/game/objects/items/implants/security/implant_beacon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/implants/security/implant_beacon.dm

/obj/item/implant/beaconEssentially, just turns the implantee into a teleport beacon.
\ No newline at end of file diff --git a/code/game/objects/items/implants/security/implant_exile.html b/code/game/objects/items/implants/security/implant_exile.html new file mode 100644 index 0000000000000..2de9ce221d71a --- /dev/null +++ b/code/game/objects/items/implants/security/implant_exile.html @@ -0,0 +1 @@ +code/game/objects/items/implants/security/implant_exile.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/implants/security/implant_exile.dm

/obj/item/implant/exile/noteleportUsed to help the staff of the space hotel resist the urge to use the space hotel's incredibly alluring roundstart teleporter to ignore their flavor/greeting text and come to the station.
\ No newline at end of file diff --git a/code/game/objects/items/implants/security/implant_noteleport.html b/code/game/objects/items/implants/security/implant_noteleport.html new file mode 100644 index 0000000000000..7ab59d5b0a2b9 --- /dev/null +++ b/code/game/objects/items/implants/security/implant_noteleport.html @@ -0,0 +1 @@ +code/game/objects/items/implants/security/implant_noteleport.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/implants/security/implant_noteleport.dm

/obj/item/implant/teleport_blockerBlocks the implantee from being teleported
\ No newline at end of file diff --git a/code/game/objects/items/inspector.html b/code/game/objects/items/inspector.html new file mode 100644 index 0000000000000..71fa0ba05d3d9 --- /dev/null +++ b/code/game/objects/items/inspector.html @@ -0,0 +1 @@ +code/game/objects/items/inspector.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/inspector.dm

ENERGY_TO_SPEAKEnergy used to say an error message.
/obj/item/inspectorCreates reports for area inspection bounties.
/obj/item/inspector/clownA clown variant of the N-spect scanner
/obj/item/inspector/clown/bananiumAn upgraded version of the fake N-spect scanner
/obj/item/paper/fake_reportReports printed by fake N-spect scanner
/obj/item/paper/fake_report/waterFake report but it turns into water under certain circumstances.

Define Details

ENERGY_TO_SPEAK

Energy used to say an error message.

\ No newline at end of file diff --git a/code/game/objects/items/janitor_key.html b/code/game/objects/items/janitor_key.html new file mode 100644 index 0000000000000..fd0e48d49fb19 --- /dev/null +++ b/code/game/objects/items/janitor_key.html @@ -0,0 +1 @@ +code/game/objects/items/janitor_key.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/janitor_key.dm

ACCESS_TIMER_LIMITThe time limit on the keys before the access it's been given clears itself.

Define Details

ACCESS_TIMER_LIMIT

The time limit on the keys before the access it's been given clears itself.

\ No newline at end of file diff --git a/code/game/objects/items/machine_wand.html b/code/game/objects/items/machine_wand.html new file mode 100644 index 0000000000000..7ad17bbcfc27a --- /dev/null +++ b/code/game/objects/items/machine_wand.html @@ -0,0 +1 @@ +code/game/objects/items/machine_wand.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/machine_wand.dm

EMP_TIMEOUT_DURATIONWhen EMPed, how long the remote will be disabled for by default.
/obj/effect/bug_movingThe effect of the bug moving towards the selected machinery to mess with.

Define Details

EMP_TIMEOUT_DURATION

When EMPed, how long the remote will be disabled for by default.

\ No newline at end of file diff --git a/code/game/objects/items/mail.html b/code/game/objects/items/mail.html new file mode 100644 index 0000000000000..44825743bb09e --- /dev/null +++ b/code/game/objects/items/mail.html @@ -0,0 +1 @@ +code/game/objects/items/mail.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/mail.dm

/obj/item/mailMail is tamper-evident and unresealable, postmarked by CentCom for an individual recepient.
/obj/structure/closet/crate/mailCrate for mail from CentCom.
/obj/structure/closet/crate/mail/fullCrate for mail that automatically generates a lot of mail. Usually only normal mail, but on lowpop it may end up just being junk.
/obj/structure/closet/crate/mail/full/mail_strikeUsed in the mail strike shuttle loan event
/obj/structure/closet/crate/mail/preopenOpened mail crate
/obj/item/storage/bag/mailMailbag.
/obj/item/mail/mail_strikeGeneric mail used in the mail strike shuttle loan event
/obj/item/mail/traitor/mail_strikeAlso found in the mail strike shuttle loan. It contains a random grenade that'll be triggered when unwrapped
/obj/item/storage/mail_counterfeit_device/advancedUnobtainable item mostly for (b)admin purposes.
/obj/item/storage/mail_counterfeit_device/bluespaceUnobtainable item mostly for (b)admin purposes.
\ No newline at end of file diff --git a/code/game/objects/items/manuals.html b/code/game/objects/items/manuals.html new file mode 100644 index 0000000000000..faa111c527001 --- /dev/null +++ b/code/game/objects/items/manuals.html @@ -0,0 +1 @@ +code/game/objects/items/manuals.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/manuals.dm

/obj/item/book/manualMANUALS (BOOKS)
\ No newline at end of file diff --git a/code/game/objects/items/melee/energy.html b/code/game/objects/items/melee/energy.html new file mode 100644 index 0000000000000..60c0ca70eab71 --- /dev/null +++ b/code/game/objects/items/melee/energy.html @@ -0,0 +1 @@ +code/game/objects/items/melee/energy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/melee/energy.dm

/obj/item/melee/energy/axeEnergy axe - extremely strong.
/datum/embed_data/eswordEnergy swords.
/obj/item/melee/energy/bladeEnergy blades, which are effectively perma-extended energy swords
\ No newline at end of file diff --git a/code/game/objects/items/piggy_bank.html b/code/game/objects/items/piggy_bank.html new file mode 100644 index 0000000000000..b3da6effb3c53 --- /dev/null +++ b/code/game/objects/items/piggy_bank.html @@ -0,0 +1,2 @@ +code/game/objects/items/piggy_bank.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/piggy_bank.dm

/obj/item/piggy_bankPiggy banks. They store your hard-earned money until you or someone destroys it. +If the persistence id is set, money will be carried between rounds until broken.
\ No newline at end of file diff --git a/code/game/objects/items/pitchfork.html b/code/game/objects/items/pitchfork.html new file mode 100644 index 0000000000000..804160eab82b6 --- /dev/null +++ b/code/game/objects/items/pitchfork.html @@ -0,0 +1 @@ +code/game/objects/items/pitchfork.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/pitchfork.dm

/obj/item/pitchforkPitchfork item
\ No newline at end of file diff --git a/code/game/objects/items/pneumaticCannon.html b/code/game/objects/items/pneumaticCannon.html new file mode 100644 index 0000000000000..12eaabace4204 --- /dev/null +++ b/code/game/objects/items/pneumaticCannon.html @@ -0,0 +1 @@ +code/game/objects/items/pneumaticCannon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/pneumaticCannon.dm

LOW_PRESSUREDefines for the pressure strength of the cannon

Define Details

LOW_PRESSURE

Defines for the pressure strength of the cannon

\ No newline at end of file diff --git a/code/game/objects/items/powerfist.html b/code/game/objects/items/powerfist.html new file mode 100644 index 0000000000000..e8b8b0634bc56 --- /dev/null +++ b/code/game/objects/items/powerfist.html @@ -0,0 +1 @@ +code/game/objects/items/powerfist.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/powerfist.dm

LOW_PRESSUREDefines for the pressure strength of the fist
TANK_INSERTINGDefines for the tank change action

Define Details

LOW_PRESSURE

Defines for the pressure strength of the fist

TANK_INSERTING

Defines for the tank change action

\ No newline at end of file diff --git a/code/game/objects/items/puzzle_pieces.html b/code/game/objects/items/puzzle_pieces.html new file mode 100644 index 0000000000000..29ba9902dd992 --- /dev/null +++ b/code/game/objects/items/puzzle_pieces.html @@ -0,0 +1 @@ +code/game/objects/items/puzzle_pieces.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/puzzle_pieces.dm

/obj/structure/puzzle_blockadeblockades destroy themselves if they receive COMSIG_GLOB_PUZZLE_COMPLETED with their ID
/obj/effect/decal/puzzle_dotsA dotted board that can be used as clue for PIN puzzle machinery
\ No newline at end of file diff --git a/code/game/objects/items/rcd/RCD.html b/code/game/objects/items/rcd/RCD.html new file mode 100644 index 0000000000000..ad998f2730924 --- /dev/null +++ b/code/game/objects/items/rcd/RCD.html @@ -0,0 +1 @@ +code/game/objects/items/rcd/RCD.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/rcd/RCD.dm

FREQUENT_USE_DEBUFF_MULTIPLIERMultiplier applied on construction & deconstruction time when building multiple structures
MASS_TO_ENERGYHow much charge is used up for each matter unit.

Define Details

FREQUENT_USE_DEBUFF_MULTIPLIER

Multiplier applied on construction & deconstruction time when building multiple structures

MASS_TO_ENERGY

How much charge is used up for each matter unit.

\ No newline at end of file diff --git a/code/game/objects/items/rcd/RPD.html b/code/game/objects/items/rcd/RPD.html new file mode 100644 index 0000000000000..4d9a449e848a4 --- /dev/null +++ b/code/game/objects/items/rcd/RPD.html @@ -0,0 +1 @@ +code/game/objects/items/rcd/RPD.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/rcd/RPD.dm

RPD_USE_SOUNDSound to make when we use the item to build/destroy something

Define Details

RPD_USE_SOUND

Sound to make when we use the item to build/destroy something

\ No newline at end of file diff --git a/code/game/objects/items/rcd/RPLD.html b/code/game/objects/items/rcd/RPLD.html new file mode 100644 index 0000000000000..22af3acd7f4e8 --- /dev/null +++ b/code/game/objects/items/rcd/RPLD.html @@ -0,0 +1 @@ +code/game/objects/items/rcd/RPLD.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/rcd/RPLD.dm

/obj/item/construction/plumbingThe plumbing RCD. All the blueprints are located in _globalvars > lists > construction.dm
\ No newline at end of file diff --git a/code/game/objects/items/rcd/RSF.html b/code/game/objects/items/rcd/RSF.html new file mode 100644 index 0000000000000..a43625590cdfc --- /dev/null +++ b/code/game/objects/items/rcd/RSF.html @@ -0,0 +1 @@ +code/game/objects/items/rcd/RSF.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/rcd/RSF.dm

OBJECT_OR_LIST_ELEMENTExtracts the related object from an associated list of objects and values, or lists and objects.

Define Details

OBJECT_OR_LIST_ELEMENT

Extracts the related object from an associated list of objects and values, or lists and objects.

\ No newline at end of file diff --git a/code/game/objects/items/rcd/RTD.html b/code/game/objects/items/rcd/RTD.html new file mode 100644 index 0000000000000..2408027c86c10 --- /dev/null +++ b/code/game/objects/items/rcd/RTD.html @@ -0,0 +1,5 @@ +code/game/objects/items/rcd/RTD.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/rcd/RTD.dm

CONSTRUCTION_TIMEtime taken to create tile
DECONSTRUCTION_TIMEtime taken to destroy a tile
/obj/item/construction/rtdAn tool used to create, destroy, and copy & clear decals of floor tiles +Great for janitor but can be made only in engineering +Supports silo link upgrade and refill with glass, plasteel & iron
/datum/tile_infostores the name, type, icon & cost for each tile type
/datum/overlay_infoStores the decal & overlays on the floor to preserve texture of the design +in short its just an wrapper for mutable appearance where we retrieve the nessassary information +to recreate an mutable appearance

Define Details

CONSTRUCTION_TIME

time taken to create tile

DECONSTRUCTION_TIME

time taken to destroy a tile

\ No newline at end of file diff --git a/code/game/objects/items/robot/ai_upgrades.html b/code/game/objects/items/robot/ai_upgrades.html new file mode 100644 index 0000000000000..92b365586467f --- /dev/null +++ b/code/game/objects/items/robot/ai_upgrades.html @@ -0,0 +1 @@ +code/game/objects/items/robot/ai_upgrades.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/robot/ai_upgrades.dm

/obj/item/aiupgradeAI Upgrades
\ No newline at end of file diff --git a/code/game/objects/items/robot/items/generic.html b/code/game/objects/items/robot/items/generic.html new file mode 100644 index 0000000000000..4332777b5ca50 --- /dev/null +++ b/code/game/objects/items/robot/items/generic.html @@ -0,0 +1 @@ +code/game/objects/items/robot/items/generic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/robot/items/generic.dm

CYBORG_STUN_CHARGE_COSTCost to use the stun arm

Define Details

CYBORG_STUN_CHARGE_COST

Cost to use the stun arm

\ No newline at end of file diff --git a/code/game/objects/items/robot/items/hypo.html b/code/game/objects/items/robot/items/hypo.html new file mode 100644 index 0000000000000..7b39498769ef2 --- /dev/null +++ b/code/game/objects/items/robot/items/hypo.html @@ -0,0 +1 @@ +code/game/objects/items/robot/items/hypo.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/robot/items/hypo.dm

BASE_MEDICAL_REAGENTSAll of the default reagent lists for each hypospray (+ hacked variants)
/obj/item/reagent_containers/borghypoBorg Hypospray
/obj/item/reagent_containers/borghypo/medicalDefault Medborg Hypospray
/obj/item/reagent_containers/borghypo/peacePeacekeeper hypospray
/obj/item/reagent_containers/borghypo/clownClownborg hypospray
/obj/item/reagent_containers/borghypo/syndicateSyndicate medborg hypospray
/obj/item/reagent_containers/borghypo/borgshakerBorg Shaker for the serviceborgs

Define Details

BASE_MEDICAL_REAGENTS

All of the default reagent lists for each hypospray (+ hacked variants)

\ No newline at end of file diff --git a/code/game/objects/items/robot/items/storage.html b/code/game/objects/items/robot/items/storage.html new file mode 100644 index 0000000000000..7fe531b374be1 --- /dev/null +++ b/code/game/objects/items/robot/items/storage.html @@ -0,0 +1 @@ +code/game/objects/items/robot/items/storage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/robot/items/storage.dm

/obj/item/borg/apparatus/beaker/drinkUsed by the service borg drink apparatus upgrade, holds drink-related items
/obj/item/borg/apparatus/organ_storageallows medical cyborgs to manipulate organs without hands
/obj/item/borg/apparatus/sheet_manipulatorApparatus to allow Engineering/Sabo borgs to manipulate any material sheets.
/obj/item/borg/apparatus/circuitApparatus allowing Engineer/Sabo borgs to manipulate Machine and Computer circuit boards
\ No newline at end of file diff --git a/code/game/objects/items/robot/robot_upgrades.html b/code/game/objects/items/robot/robot_upgrades.html new file mode 100644 index 0000000000000..0534177962d02 --- /dev/null +++ b/code/game/objects/items/robot/robot_upgrades.html @@ -0,0 +1 @@ +code/game/objects/items/robot/robot_upgrades.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/robot/robot_upgrades.dm

/obj/item/borg/upgrade/defib/backpackA version of the above that also acts as a holder of an actual defibrillator item used in place of the upgrade chip.
/obj/item/borg_restart_boardThis isn't an upgrade or part of the same path, but I'm gonna just stick it here because it's a tool used on cyborgs.
\ No newline at end of file diff --git a/code/game/objects/items/secret_documents.html b/code/game/objects/items/secret_documents.html new file mode 100644 index 0000000000000..96fcf470dca75 --- /dev/null +++ b/code/game/objects/items/secret_documents.html @@ -0,0 +1 @@ +code/game/objects/items/secret_documents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/secret_documents.dm

/obj/item/documentsIndestructible antag objective that can be photocopied.
/obj/item/documents/nanotrasenNanotrasen documents
/obj/item/documents/syndicateSyndicate documents
/obj/item/documents/syndicate/redSyndicate documents with a red seal
/obj/item/documents/syndicate/blueSyndicate documents with a blue seal
/obj/item/documents/syndicate/miningSyndicate mining documents
/obj/item/documents/photocopyOutcome of photocopying documents. Can be copied, and can have a blue/red seal forged.
\ No newline at end of file diff --git a/code/game/objects/items/sharpener.html b/code/game/objects/items/sharpener.html new file mode 100644 index 0000000000000..731ec1808ae97 --- /dev/null +++ b/code/game/objects/items/sharpener.html @@ -0,0 +1 @@ +code/game/objects/items/sharpener.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/sharpener.dm

/obj/item/sharpenerItems used for sharpening stuff
/obj/item/sharpener/superExtremely powerful admin-only whetstone
\ No newline at end of file diff --git a/code/game/objects/items/stacks/golem_food/golem_food_buff.html b/code/game/objects/items/stacks/golem_food/golem_food_buff.html new file mode 100644 index 0000000000000..97a0404e45f33 --- /dev/null +++ b/code/game/objects/items/stacks/golem_food/golem_food_buff.html @@ -0,0 +1 @@ +code/game/objects/items/stacks/golem_food/golem_food_buff.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/stacks/golem_food/golem_food_buff.dm

/datum/golem_food_buffAn effect you gain from eating minerals
/datum/golem_food_buff/glassCan eat at any time, but isn't very nutritious
/datum/golem_food_buff/ironMore filling, and heals you
\ No newline at end of file diff --git a/code/game/objects/items/stacks/golem_food/golem_hand_actions.html b/code/game/objects/items/stacks/golem_food/golem_hand_actions.html new file mode 100644 index 0000000000000..6679f2d4331f9 --- /dev/null +++ b/code/game/objects/items/stacks/golem_food/golem_hand_actions.html @@ -0,0 +1 @@ +code/game/objects/items/stacks/golem_food/golem_hand_actions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/stacks/golem_food/golem_hand_actions.dm

GIBTONITE_GOLEM_HOLD_TIMEHow long can you hold onto gibtonite before you need to let it go?
BLUESPACE_GLOW_FILTERID for a filter we apply so we can remove it again
/obj/item/gibtonite_handLets you hold a gibtonite ore in one hand and shoot it like a gun
/obj/item/bluespace_fingerPoint at a target and teleport somewhere vaguely close to it

Define Details

BLUESPACE_GLOW_FILTER

ID for a filter we apply so we can remove it again

GIBTONITE_GOLEM_HOLD_TIME

How long can you hold onto gibtonite before you need to let it go?

\ No newline at end of file diff --git a/code/game/objects/items/stacks/golem_food/golem_status_effects.html b/code/game/objects/items/stacks/golem_food/golem_status_effects.html new file mode 100644 index 0000000000000..33064ac9b4c3f --- /dev/null +++ b/code/game/objects/items/stacks/golem_food/golem_status_effects.html @@ -0,0 +1 @@ +code/game/objects/items/stacks/golem_food/golem_status_effects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/stacks/golem_food/golem_status_effects.dm

/datum/status_effect/golemAbstract holder for golem status effects, you should never have more than one of these active
/datum/bodypart_overlay/simple/golem_overlayBody part overlays applied by golem status effects
/datum/status_effect/golem/uraniumFreezes hunger for the duration
/datum/status_effect/golem/silverMagic immunity
ENERGY_PER_DAMAGEWhat do we multiply our damage by to convert it into power?
BURN_MULTIPLIERMultiplier to apply to burn damage, not 0 so that we can reverse it more easily
/datum/status_effect/golem/plasmaHeat immunity, turns heat damage into local power
/datum/status_effect/golem/plasteelMakes you spaceproof
/datum/status_effect/golem/goldMakes you reflect energy projectiles
/datum/status_effect/golem/diamondMakes you hard to see
/datum/status_effect/golem/titaniumMakes you tougher
/datum/status_effect/golem/bananiumMakes you slippery
/datum/status_effect/golem_lightbulbLights up the golem, NOT using the golem subtype because it is not exclusive with other status effects

Define Details

BURN_MULTIPLIER

Multiplier to apply to burn damage, not 0 so that we can reverse it more easily

ENERGY_PER_DAMAGE

What do we multiply our damage by to convert it into power?

\ No newline at end of file diff --git a/code/game/objects/items/stacks/stack.html b/code/game/objects/items/stacks/stack.html new file mode 100644 index 0000000000000..e941996468bf4 --- /dev/null +++ b/code/game/objects/items/stacks/stack.html @@ -0,0 +1 @@ +code/game/objects/items/stacks/stack.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/stacks/stack.dm

FULL_LISTThe key / title for a radial option that shows the entire list of buildables (uses the old menu)

Define Details

FULL_LIST

The key / title for a radial option that shows the entire list of buildables (uses the old menu)

\ No newline at end of file diff --git a/code/game/objects/items/stacks/tiles/tile_types.html b/code/game/objects/items/stacks/tiles/tile_types.html new file mode 100644 index 0000000000000..63e9f115f3b5f --- /dev/null +++ b/code/game/objects/items/stacks/tiles/tile_types.html @@ -0,0 +1 @@ +code/game/objects/items/stacks/tiles/tile_types.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/stacks/tiles/tile_types.dm

/obj/item/stack/tileTILE STACKS
/obj/item/stack/tile/emissive_testFloor tiles used to test emissive turfs.
\ No newline at end of file diff --git a/code/game/objects/items/stickers.html b/code/game/objects/items/stickers.html new file mode 100644 index 0000000000000..4270683ab18bb --- /dev/null +++ b/code/game/objects/items/stickers.html @@ -0,0 +1 @@ +code/game/objects/items/stickers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/stickers.dm

/obj/item/stickerWhat stickers can do?
\ No newline at end of file diff --git a/code/game/objects/items/storage/boxes/_boxes.html b/code/game/objects/items/storage/boxes/_boxes.html new file mode 100644 index 0000000000000..4d59174d02897 --- /dev/null +++ b/code/game/objects/items/storage/boxes/_boxes.html @@ -0,0 +1 @@ +code/game/objects/items/storage/boxes/_boxes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/storage/boxes/_boxes.dm

/obj/item/storage/boxThe common cardboard box.
\ No newline at end of file diff --git a/code/game/objects/items/storage/briefcase.html b/code/game/objects/items/storage/briefcase.html new file mode 100644 index 0000000000000..be9c1a7ff41dc --- /dev/null +++ b/code/game/objects/items/storage/briefcase.html @@ -0,0 +1,2 @@ +code/game/objects/items/storage/briefcase.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/storage/briefcase.dm

/obj/item/storage/briefcase/secureSecure briefcase +Uses the lockable storage component to give it a lock.
/obj/item/storage/briefcase/secure/syndieSyndie variant of Secure Briefcase. Contains space cash, slightly more robust.
/obj/item/storage/briefcase/secure/richesA briefcase that contains various sought-after spoils
\ No newline at end of file diff --git a/code/game/objects/items/storage/medkit.html b/code/game/objects/items/storage/medkit.html new file mode 100644 index 0000000000000..dad50950fd594 --- /dev/null +++ b/code/game/objects/items/storage/medkit.html @@ -0,0 +1 @@ +code/game/objects/items/storage/medkit.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/storage/medkit.dm

/obj/item/storage/pill_bottle/happinesspsychPsychologist inventory pillbottles
/obj/item/storage/organboxA box which takes in coolant and uses it to preserve organs and body parts
/obj/item/storage/organbox/preloadedA subtype of organ storage box which starts with a full coolant tank
\ No newline at end of file diff --git a/code/game/objects/items/storage/uplink_kits.html b/code/game/objects/items/storage/uplink_kits.html new file mode 100644 index 0000000000000..d1fc77651f6c0 --- /dev/null +++ b/code/game/objects/items/storage/uplink_kits.html @@ -0,0 +1 @@ +code/game/objects/items/storage/uplink_kits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/storage/uplink_kits.dm

/obj/item/storage/box/syndicatelast audited december 2022
/obj/item/storage/box/syndie_kit/sniper_surplusSurplus Ammo Box
/obj/item/storage/backpack/duffelbag/syndie/sabotageSubtype for the sabotage bundle. Contains three C4, two X4 and 6 signalers
\ No newline at end of file diff --git a/code/game/objects/items/storage/wallets.html b/code/game/objects/items/storage/wallets.html new file mode 100644 index 0000000000000..57807df779778 --- /dev/null +++ b/code/game/objects/items/storage/wallets.html @@ -0,0 +1 @@ +code/game/objects/items/storage/wallets.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/storage/wallets.dm

/obj/item/storage/wallet/moneyUsed by the toilet fish source.
\ No newline at end of file diff --git a/code/game/objects/items/surgery_tray.html b/code/game/objects/items/surgery_tray.html new file mode 100644 index 0000000000000..8988113c9e49d --- /dev/null +++ b/code/game/objects/items/surgery_tray.html @@ -0,0 +1,3 @@ +code/game/objects/items/surgery_tray.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/surgery_tray.dm

/obj/item/surgery_traySurgery Trays +A storage object that displays tools in its contents based on tier, better tools are more visible. +Can be folded up and carried. Click it to draw a random tool.
/obj/item/surgery_tray/full/advancedSurgery tray with advanced tools for debug
\ No newline at end of file diff --git a/code/game/objects/items/tanks/tanks.html b/code/game/objects/items/tanks/tanks.html new file mode 100644 index 0000000000000..6b5baad1fd67f --- /dev/null +++ b/code/game/objects/items/tanks/tanks.html @@ -0,0 +1,2 @@ +code/game/objects/items/tanks/tanks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/tanks/tanks.dm

ASSUME_AIR_DT_FACTORHow much time (in seconds) is assumed to pass while assuming air. Used to scale overpressure/overtemp damage when assuming air.
ASSEMBLY_BOMB_COEFFICIENTMultiplies the pressure of assembly bomb explosions before it's put through THE LOGARITHM
ASSEMBLY_BOMB_BASEBase of the logarithmic function used to calculate assembly bomb explosion size
/obj/item/tankHandheld gas canisters +Can rupture explosively if overpressurized
/datum/armor/item_tankCloses the tank if dropped while open.

Define Details

ASSEMBLY_BOMB_BASE

Base of the logarithmic function used to calculate assembly bomb explosion size

ASSEMBLY_BOMB_COEFFICIENT

Multiplies the pressure of assembly bomb explosions before it's put through THE LOGARITHM

ASSUME_AIR_DT_FACTOR

How much time (in seconds) is assumed to pass while assuming air. Used to scale overpressure/overtemp damage when assuming air.

\ No newline at end of file diff --git a/code/game/objects/items/tcg/tcg.html b/code/game/objects/items/tcg/tcg.html new file mode 100644 index 0000000000000..a716ece52eb00 --- /dev/null +++ b/code/game/objects/items/tcg/tcg.html @@ -0,0 +1,2 @@ +code/game/objects/items/tcg/tcg.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/tcg/tcg.dm

/obj/item/tcgcard_deckA stack item that's not actually a stack because ORDER MATTERS with a deck of cards! +The "top" card of the deck will always be the bottom card in the stack for our purposes.
\ No newline at end of file diff --git a/code/game/objects/items/tcg/tcg_machines.html b/code/game/objects/items/tcg/tcg_machines.html new file mode 100644 index 0000000000000..8d4d05f4ac5bb --- /dev/null +++ b/code/game/objects/items/tcg/tcg_machines.html @@ -0,0 +1 @@ +code/game/objects/items/tcg/tcg_machines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/tcg/tcg_machines.dm

/obj/machinery/trading_card_buttonA button that generates a player manipulable bar of icons, in this case a mana bar.
/obj/effect/trading_card_panelA display panel that renders a set of icons (in this case mana crystals), this is generated by /obj/machinery/trading_card_button and can be manipulated by the button which generates it.
/obj/effect/trading_card_panel/healthA variant of the display panel for life shards, this one is set up to display two columns.
\ No newline at end of file diff --git a/code/game/objects/items/teleportation.html b/code/game/objects/items/teleportation.html new file mode 100644 index 0000000000000..84d3a19bbc9ac --- /dev/null +++ b/code/game/objects/items/teleportation.html @@ -0,0 +1 @@ +code/game/objects/items/teleportation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/teleportation.dm

/obj/effect/temp_visual/circle_wave/syndi_teleporterVisual effect spawned when teleporting
\ No newline at end of file diff --git a/code/game/objects/items/tongs.html b/code/game/objects/items/tongs.html new file mode 100644 index 0000000000000..b391e83991c52 --- /dev/null +++ b/code/game/objects/items/tongs.html @@ -0,0 +1 @@ +code/game/objects/items/tongs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/tongs.dm

/obj/item/kitchen/tongsTongs, let you pick up and feed people food from further away.
\ No newline at end of file diff --git a/code/game/objects/items/tools/wirebrush.html b/code/game/objects/items/tools/wirebrush.html new file mode 100644 index 0000000000000..44e2f3ac12f6d --- /dev/null +++ b/code/game/objects/items/tools/wirebrush.html @@ -0,0 +1,2 @@ +code/game/objects/items/tools/wirebrush.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/items/tools/wirebrush.dm

/obj/item/wirebrushThe wirebrush is a tool whose sole purpose is to remove rust from anything that is rusty. +Because of the inherent nature of hard countering rust heretics it does it very slowly.
\ No newline at end of file diff --git a/code/game/objects/items/toy_mechs.html b/code/game/objects/items/toy_mechs.html new file mode 100644 index 0000000000000..cd7dc17f9f1d4 --- /dev/null +++ b/code/game/objects/items/toy_mechs.html @@ -0,0 +1,3 @@ +code/game/objects/items/toy_mechs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/items/toy_mechs.dm

SPECIAL_ATTACK_HEALMech prizes + MECHA COMBAT!! +Mech battle special attack types.
MAX_BATTLE_LENGTHMax length of a mech battle

Define Details

MAX_BATTLE_LENGTH

Max length of a mech battle

SPECIAL_ATTACK_HEAL

Mech prizes + MECHA COMBAT!! +Mech battle special attack types.

\ No newline at end of file diff --git a/code/game/objects/structures.html b/code/game/objects/structures.html new file mode 100644 index 0000000000000..5dd6d4f07e5c6 --- /dev/null +++ b/code/game/objects/structures.html @@ -0,0 +1 @@ +code/game/objects/structures.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures.dm

/obj/structureInert structures, such as girders, machine frames, and crates/lockers.
\ No newline at end of file diff --git a/code/game/objects/structures/aliens.html b/code/game/objects/structures/aliens.html new file mode 100644 index 0000000000000..e086f643e9451 --- /dev/null +++ b/code/game/objects/structures/aliens.html @@ -0,0 +1 @@ +code/game/objects/structures/aliens.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/aliens.dm

/obj/structure/alien/resin/wall/immovablemeant for one lavaland ruin or anywhere that has simplemobs who can push aside structures
/obj/structure/alien/resin/membrane/creatureUsed in the big derelict ruin exclusively.
\ No newline at end of file diff --git a/code/game/objects/structures/beds_chairs/bed.html b/code/game/objects/structures/beds_chairs/bed.html new file mode 100644 index 0000000000000..1e57515b84b75 --- /dev/null +++ b/code/game/objects/structures/beds_chairs/bed.html @@ -0,0 +1 @@ +code/game/objects/structures/beds_chairs/bed.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/beds_chairs/bed.dm

/obj/structure/bedBeds
/obj/structure/bed/medicalMedical beds
/obj/structure/bed/dogbedDog bed
\ No newline at end of file diff --git a/code/game/objects/structures/beds_chairs/chair.html b/code/game/objects/structures/beds_chairs/chair.html new file mode 100644 index 0000000000000..3f64220876097 --- /dev/null +++ b/code/game/objects/structures/beds_chairs/chair.html @@ -0,0 +1 @@ +code/game/objects/structures/beds_chairs/chair.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/beds_chairs/chair.dm

/obj/structure/chair/greyscaleMaterial chair
\ No newline at end of file diff --git a/code/game/objects/structures/beds_chairs/sofa.html b/code/game/objects/structures/beds_chairs/sofa.html new file mode 100644 index 0000000000000..e92779dac4817 --- /dev/null +++ b/code/game/objects/structures/beds_chairs/sofa.html @@ -0,0 +1 @@ +code/game/objects/structures/beds_chairs/sofa.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/structures/beds_chairs/sofa.dm

COLORED_SOFACreate colored subtypes for sofas

Define Details

COLORED_SOFA

Create colored subtypes for sofas

\ No newline at end of file diff --git a/code/game/objects/structures/bonfire.html b/code/game/objects/structures/bonfire.html new file mode 100644 index 0000000000000..ba3b1bc7d72af --- /dev/null +++ b/code/game/objects/structures/bonfire.html @@ -0,0 +1 @@ +code/game/objects/structures/bonfire.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/structures/bonfire.dm

BONFIRE_FIRE_STACK_STRENGTHhow many fire stacks are applied when you step into a bonfire
/obj/structure/bonfire

Define Details

BONFIRE_FIRE_STACK_STRENGTH

how many fire stacks are applied when you step into a bonfire

\ No newline at end of file diff --git a/code/game/objects/structures/cannons/cannon.html b/code/game/objects/structures/cannons/cannon.html new file mode 100644 index 0000000000000..d8bfae975d07d --- /dev/null +++ b/code/game/objects/structures/cannons/cannon.html @@ -0,0 +1 @@ +code/game/objects/structures/cannons/cannon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/structures/cannons/cannon.dm

BAD_FUEL_DAMAGE_TAXhow much projectile damage is lost when using a bad fuel
BAD_FUEL_EXPLODE_PROBABILTYextra chance it explodes upon firing
/obj/structure/cannon/mystery_boxA cannon found from the fishing mystery box.

Define Details

BAD_FUEL_DAMAGE_TAX

how much projectile damage is lost when using a bad fuel

BAD_FUEL_EXPLODE_PROBABILTY

extra chance it explodes upon firing

\ No newline at end of file diff --git a/code/game/objects/structures/construction_console/construction_actions.html b/code/game/objects/structures/construction_console/construction_actions.html new file mode 100644 index 0000000000000..1d2fd56cac15d --- /dev/null +++ b/code/game/objects/structures/construction_console/construction_actions.html @@ -0,0 +1 @@ +code/game/objects/structures/construction_console/construction_actions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/construction_console/construction_actions.dm

/datum/action/innate/constructionGeneric construction action for base construction consoles.
/datum/action/innate/construction/place_structureGeneric action used with base construction consoles to build anything that can't be built with an RCD
\ No newline at end of file diff --git a/code/game/objects/structures/construction_console/construction_console.html b/code/game/objects/structures/construction_console/construction_console.html new file mode 100644 index 0000000000000..64355abc8763d --- /dev/null +++ b/code/game/objects/structures/construction_console/construction_console.html @@ -0,0 +1 @@ +code/game/objects/structures/construction_console/construction_console.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/construction_console/construction_console.dm

/obj/machinery/computer/camera_advanced/base_constructionCamera console used to control a base building drone
/mob/camera/ai_eye/remote/base_constructionA mob used by /obj/machinery/computer/camera_advanced/base_construction for building in specific areas.
/obj/item/construction/rcd/internalBase console's internal RCD. Has a large material capacity and a fast buildspeed.
\ No newline at end of file diff --git a/code/game/objects/structures/construction_console/construction_console_aux.html b/code/game/objects/structures/construction_console/construction_console_aux.html new file mode 100644 index 0000000000000..03389d11844e3 --- /dev/null +++ b/code/game/objects/structures/construction_console/construction_console_aux.html @@ -0,0 +1 @@ +code/game/objects/structures/construction_console/construction_console_aux.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/construction_console/construction_console_aux.dm

/obj/machinery/computer/camera_advanced/base_construction/auxbase consturctino console subtype for the mining aux base
\ No newline at end of file diff --git a/code/game/objects/structures/construction_console/construction_console_centcom.html b/code/game/objects/structures/construction_console/construction_console_centcom.html new file mode 100644 index 0000000000000..9781cdb5c37a7 --- /dev/null +++ b/code/game/objects/structures/construction_console/construction_console_centcom.html @@ -0,0 +1 @@ +code/game/objects/structures/construction_console/construction_console_centcom.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/construction_console/construction_console_centcom.dm

/obj/machinery/computer/camera_advanced/base_construction/centcomadmin-only base consturctino console subtype for building anywhere!
\ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/bodybag.html b/code/game/objects/structures/crates_lockers/closets/bodybag.html new file mode 100644 index 0000000000000..5d2519962f7e0 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/bodybag.html @@ -0,0 +1 @@ +code/game/objects/structures/crates_lockers/closets/bodybag.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/crates_lockers/closets/bodybag.dm

/obj/structure/closet/body_bag/environmentalEnvironmental bags. They protect against bad weather.
/obj/structure/closet/body_bag/environmental/prisonerSecurable enviro. bags
\ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/crates.html b/code/game/objects/structures/crates_lockers/crates.html new file mode 100644 index 0000000000000..b865772903db0 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/crates.html @@ -0,0 +1 @@ +code/game/objects/structures/crates_lockers/crates.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/crates_lockers/crates.dm

/obj/structure/closet/crateFrom crate.dm
\ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/crates/syndicrate.html b/code/game/objects/structures/crates_lockers/crates/syndicrate.html new file mode 100644 index 0000000000000..2ed4ffde303fb --- /dev/null +++ b/code/game/objects/structures/crates_lockers/crates/syndicrate.html @@ -0,0 +1 @@ +code/game/objects/structures/crates_lockers/crates/syndicrate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/crates_lockers/crates/syndicrate.dm

/datum/armor/crate_syndicrateif the crate takes damage it will explode 25% of the time
\ No newline at end of file diff --git a/code/game/objects/structures/curtains.html b/code/game/objects/structures/curtains.html new file mode 100644 index 0000000000000..d15451b9531f0 --- /dev/null +++ b/code/game/objects/structures/curtains.html @@ -0,0 +1 @@ +code/game/objects/structures/curtains.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/curtains.dm

/obj/structure/curtainShower Curtains
\ No newline at end of file diff --git a/code/game/objects/structures/deployable_turret.html b/code/game/objects/structures/deployable_turret.html new file mode 100644 index 0000000000000..9bf6cf726a774 --- /dev/null +++ b/code/game/objects/structures/deployable_turret.html @@ -0,0 +1 @@ +code/game/objects/structures/deployable_turret.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/deployable_turret.dm

/obj/machinery/deployable_turretDEPLOYABLE TURRET (FORMERLY MANNED TURRET)
\ No newline at end of file diff --git a/code/game/objects/structures/fake_stairs.html b/code/game/objects/structures/fake_stairs.html new file mode 100644 index 0000000000000..73fd165cc2648 --- /dev/null +++ b/code/game/objects/structures/fake_stairs.html @@ -0,0 +1 @@ +code/game/objects/structures/fake_stairs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/fake_stairs.dm

/obj/structure/fake_stairsStairs but they are FAKE and dont have any of the Z-changing behavior. DO NOT MAP THESE NEXT TO REAL STAIRS
\ No newline at end of file diff --git a/code/game/objects/structures/flora.html b/code/game/objects/structures/flora.html new file mode 100644 index 0000000000000..e7ad047464ac4 --- /dev/null +++ b/code/game/objects/structures/flora.html @@ -0,0 +1 @@ +code/game/objects/structures/flora.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/flora.dm

/obj/structure/flora/treeTrees
/obj/structure/flora/tree/pinePine Trees
/obj/structure/flora/coconutsPalm Trees
/obj/structure/flora/grassGrass
/obj/structure/flora/bushBushes
/obj/structure/flora/rockRocks
\ No newline at end of file diff --git a/code/game/objects/structures/fluff.html b/code/game/objects/structures/fluff.html new file mode 100644 index 0000000000000..cce83fe4e4b31 --- /dev/null +++ b/code/game/objects/structures/fluff.html @@ -0,0 +1 @@ +code/game/objects/structures/fluff.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/fluff.dm

/obj/structure/fluffFluff structures serve no purpose and exist only for enriching the environment. By default, they can be deconstructed with a wrench.
/obj/structure/fluff/empty_terrariumEmpty terrariums are created when a preserved terrarium in a lavaland seed vault is activated.
/obj/structure/fluff/empty_sleeperEmpty sleepers are created by a good few ghost roles in lavaland.
/obj/structure/fluff/empty_cryostasis_sleeperEmpty cryostasis sleepers are created when a malfunctioning cryostasis sleeper in a lavaland shelter is activated.
/obj/structure/fluff/drake_statueAsh drake status spawn on either side of the necropolis gate in lavaland.
/obj/structure/fluff/shower_drainshower drain placed usually under showers just so it looks like something picks the water up.
/obj/structure/fluff/drake_statue/fallingA variety of statue in disrepair; parts are broken off and a gemstone is missing
\ No newline at end of file diff --git a/code/game/objects/structures/girders.html b/code/game/objects/structures/girders.html new file mode 100644 index 0000000000000..a42793377f3a8 --- /dev/null +++ b/code/game/objects/structures/girders.html @@ -0,0 +1 @@ +code/game/objects/structures/girders.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/girders.dm

/obj/structure/girder/cultcult girder
\ No newline at end of file diff --git a/code/game/objects/structures/grille.html b/code/game/objects/structures/grille.html new file mode 100644 index 0000000000000..ab564be4203a5 --- /dev/null +++ b/code/game/objects/structures/grille.html @@ -0,0 +1 @@ +code/game/objects/structures/grille.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/structures/grille.dm

CLEAR_TILE_MOVE_LIMITMax number of unanchored items that will be moved from a tile when attempting to add a window to a grille.

Define Details

CLEAR_TILE_MOVE_LIMIT

Max number of unanchored items that will be moved from a tile when attempting to add a window to a grille.

\ No newline at end of file diff --git a/code/game/objects/structures/guillotine.html b/code/game/objects/structures/guillotine.html new file mode 100644 index 0000000000000..556df8a1f72c5 --- /dev/null +++ b/code/game/objects/structures/guillotine.html @@ -0,0 +1 @@ +code/game/objects/structures/guillotine.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/structures/guillotine.dm

GUILLOTINE_ACTION_IDLEThe guillotine is not being interacted with at the moment
GUILLOTINE_BLADE_RAISEDThe blade is ready to be dropped
GUILLOTINE_BLADE_MOVINGThe blade is moving
GUILLOTINE_BLADE_DROPPEDThe blade has landed in the stocks
GUILLOTINE_BLADE_SHARPENINGThe blade is being sharpened
GUILLOTINE_ACTION_INUSEThe guillotine blade is being interacted with by the executor
GUILLOTINE_ACTION_WRENCHThe guillotine is being unfastened
GUILLOTINE_BLADE_MAX_SHARPThis is maxiumum sharpness and will decapitate without failure
GUILLOTINE_DECAP_MIN_SHARPMinimum amount of sharpness for decapitation. Any less and it will just do severe brute damage
GUILLOTINE_ANIMATION_LENGTHHow long the guillotine animation lasts
GUILLOTINE_HEAD_OFFSETHow much we need to move the player to center their head
GUILLOTINE_LAYER_DIFFHow much to increase/decrease a head when it's buckled/unbuckled
GUILLOTINE_ACTIVATE_DELAYDelay for executing someone
GUILLOTINE_WRENCH_DELAYDelay for wrenching the guillotine

Define Details

GUILLOTINE_ACTION_IDLE

The guillotine is not being interacted with at the moment

GUILLOTINE_ACTION_INUSE

The guillotine blade is being interacted with by the executor

GUILLOTINE_ACTION_WRENCH

The guillotine is being unfastened

GUILLOTINE_ACTIVATE_DELAY

Delay for executing someone

GUILLOTINE_ANIMATION_LENGTH

How long the guillotine animation lasts

GUILLOTINE_BLADE_DROPPED

The blade has landed in the stocks

GUILLOTINE_BLADE_MAX_SHARP

This is maxiumum sharpness and will decapitate without failure

GUILLOTINE_BLADE_MOVING

The blade is moving

GUILLOTINE_BLADE_RAISED

The blade is ready to be dropped

GUILLOTINE_BLADE_SHARPENING

The blade is being sharpened

GUILLOTINE_DECAP_MIN_SHARP

Minimum amount of sharpness for decapitation. Any less and it will just do severe brute damage

GUILLOTINE_HEAD_OFFSET

How much we need to move the player to center their head

GUILLOTINE_LAYER_DIFF

How much to increase/decrease a head when it's buckled/unbuckled

GUILLOTINE_WRENCH_DELAY

Delay for wrenching the guillotine

\ No newline at end of file diff --git a/code/game/objects/structures/gym/weight_machine.html b/code/game/objects/structures/gym/weight_machine.html new file mode 100644 index 0000000000000..88653b9e82732 --- /dev/null +++ b/code/game/objects/structures/gym/weight_machine.html @@ -0,0 +1 @@ +code/game/objects/structures/gym/weight_machine.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/structures/gym/weight_machine.dm

WORKOUT_LENGTHroughly 8 seconds for 1 workout rep
/obj/structure/weightmachine/weightlifterWeight lifter subtype

Define Details

WORKOUT_LENGTH

roughly 8 seconds for 1 workout rep

\ No newline at end of file diff --git a/code/game/objects/structures/gym/weight_machine_action.html b/code/game/objects/structures/gym/weight_machine_action.html new file mode 100644 index 0000000000000..828f632676b65 --- /dev/null +++ b/code/game/objects/structures/gym/weight_machine_action.html @@ -0,0 +1,2 @@ +code/game/objects/structures/gym/weight_machine_action.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/gym/weight_machine_action.dm

/datum/action/push_weightsThe action button given by the weight machine's buckle. +This allows users to manually trigger working out.
\ No newline at end of file diff --git a/code/game/objects/structures/lavaland/geyser.html b/code/game/objects/structures/lavaland/geyser.html new file mode 100644 index 0000000000000..8301831b324fd --- /dev/null +++ b/code/game/objects/structures/lavaland/geyser.html @@ -0,0 +1 @@ +code/game/objects/structures/lavaland/geyser.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/lavaland/geyser.dm

/obj/structure/geyserA lavaland geyser that spawns chems and can be mining scanned for points. Made to work with the plumbing pump to extract that sweet rare nectar
/obj/item/plungerA wearable tool that lets you empty plumbing machinery and some other stuff
/obj/item/plunger/reinforcedA faster reinforced plunger
\ No newline at end of file diff --git a/code/game/objects/structures/lavaland/gulag_vent.html b/code/game/objects/structures/lavaland/gulag_vent.html new file mode 100644 index 0000000000000..1a76ea11ae8f0 --- /dev/null +++ b/code/game/objects/structures/lavaland/gulag_vent.html @@ -0,0 +1,2 @@ +code/game/objects/structures/lavaland/gulag_vent.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/lavaland/gulag_vent.dm

/obj/structure/gulag_ventA boulder-spawning structure superficially similar to an ore vent which doesnt share any of its behaviour +Prisoners can haul boulders up out of it in case the actual mining area is totally spent
\ No newline at end of file diff --git a/code/game/objects/structures/loom.html b/code/game/objects/structures/loom.html new file mode 100644 index 0000000000000..b9add1fbd64bd --- /dev/null +++ b/code/game/objects/structures/loom.html @@ -0,0 +1 @@ +code/game/objects/structures/loom.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/loom.dm

/obj/structure/loomThis is a loom. It's usually made out of wood and used to weave fabric like durathread or cotton into their respective cloth types.
\ No newline at end of file diff --git a/code/game/objects/structures/maintenance.html b/code/game/objects/structures/maintenance.html new file mode 100644 index 0000000000000..28ab48c904291 --- /dev/null +++ b/code/game/objects/structures/maintenance.html @@ -0,0 +1 @@ +code/game/objects/structures/maintenance.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/maintenance.dm

/obj/structure/moisture_trap
/obj/structure/steam_ventSpawns in maint shafts, and blocks lines of sight perodically when active.
\ No newline at end of file diff --git a/code/game/objects/structures/mannequin.html b/code/game/objects/structures/mannequin.html new file mode 100644 index 0000000000000..e069790c641a4 --- /dev/null +++ b/code/game/objects/structures/mannequin.html @@ -0,0 +1 @@ +code/game/objects/structures/mannequin.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/mannequin.dm

/obj/structure/mannequinA mannequin! A structure that can display clothing on itself.
\ No newline at end of file diff --git a/code/game/objects/structures/morgue.html b/code/game/objects/structures/morgue.html new file mode 100644 index 0000000000000..510175424c676 --- /dev/null +++ b/code/game/objects/structures/morgue.html @@ -0,0 +1 @@ +code/game/objects/structures/morgue.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/structures/morgue.dm

BREAKOUT_COOLDOWNThe cooldown between messages when attempting to break out of a morgue tray.
BREAKDOWN_TIMEThe amount of time it takes to break out of a morgue tray.
/obj/effect/temp_visual/morgue_contentUsed to mimic the appearance of an object sliding into a morgue tray.

Define Details

BREAKDOWN_TIME

The amount of time it takes to break out of a morgue tray.

BREAKOUT_COOLDOWN

The cooldown between messages when attempting to break out of a morgue tray.

\ No newline at end of file diff --git a/code/game/objects/structures/mystery_box.html b/code/game/objects/structures/mystery_box.html new file mode 100644 index 0000000000000..4308ba3f3294d --- /dev/null +++ b/code/game/objects/structures/mystery_box.html @@ -0,0 +1 @@ +code/game/objects/structures/mystery_box.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/structures/mystery_box.dm

MYSTERY_BOX_COOLING_DOWNClosed, can't interact
MYSTERY_BOX_STANDBYClosed, ready to be interacted with
MYSTERY_BOX_CHOOSINGThe box is choosing the prize
MYSTERY_BOX_PRESENTINGThe box is presenting the prize, for someone to claim it
MBOX_DURATION_CHOOSINGHow long the box takes to decide what the prize is
MBOX_DURATION_PRESENTINGHow long the box takes to start expiring the offer, though it's still valid until MBOX_DURATION_EXPIRING finishes. Timed to the sound clips
MBOX_DURATION_EXPIRINGHow long the box takes to start lowering the prize back into itself. When this finishes, the prize is gone
MBOX_DURATION_STANDBYHow long after the box closes until it can go again
/obj/structure/mystery_box/fishingOne of a kind, rarely found by fishing in the ocean.
/obj/mystery_box_itemThis represents the item that comes out of the box and is constantly changing before the box finishes deciding. Can probably be just an /atom or /movable.

Define Details

MBOX_DURATION_CHOOSING

How long the box takes to decide what the prize is

MBOX_DURATION_EXPIRING

How long the box takes to start lowering the prize back into itself. When this finishes, the prize is gone

MBOX_DURATION_PRESENTING

How long the box takes to start expiring the offer, though it's still valid until MBOX_DURATION_EXPIRING finishes. Timed to the sound clips

MBOX_DURATION_STANDBY

How long after the box closes until it can go again

MYSTERY_BOX_CHOOSING

The box is choosing the prize

MYSTERY_BOX_COOLING_DOWN

Closed, can't interact

MYSTERY_BOX_PRESENTING

The box is presenting the prize, for someone to claim it

MYSTERY_BOX_STANDBY

Closed, ready to be interacted with

\ No newline at end of file diff --git a/code/game/objects/structures/ore_containers.html b/code/game/objects/structures/ore_containers.html new file mode 100644 index 0000000000000..b2bb055a0ceb1 --- /dev/null +++ b/code/game/objects/structures/ore_containers.html @@ -0,0 +1 @@ +code/game/objects/structures/ore_containers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/ore_containers.dm

/obj/structure/ore_containerstructure to contain ores
\ No newline at end of file diff --git a/code/game/objects/structures/pinatas.html b/code/game/objects/structures/pinatas.html new file mode 100644 index 0000000000000..f305550b5d60f --- /dev/null +++ b/code/game/objects/structures/pinatas.html @@ -0,0 +1 @@ +code/game/objects/structures/pinatas.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/pinatas.dm

/obj/structure/pinataA pinata that has a chance to drop candy items when struck with a melee weapon that deals at least 10 damage
/obj/item/pinataAn item that when used inhand spawns an immovable pinata
\ No newline at end of file diff --git a/code/game/objects/structures/safe.html b/code/game/objects/structures/safe.html new file mode 100644 index 0000000000000..b454338b03c47 --- /dev/null +++ b/code/game/objects/structures/safe.html @@ -0,0 +1 @@ +code/game/objects/structures/safe.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/structures/safe.dm

SOUND_CHANCEChance for a sound clue
BROKEN_THRESHOLDExplosion number threshold for opening safe
/obj/structure/safe/vaultSpecial safe for the station's vault. Not explicitly required, but the piggy bank inside it is.

Define Details

BROKEN_THRESHOLD

Explosion number threshold for opening safe

SOUND_CHANCE

Chance for a sound clue

\ No newline at end of file diff --git a/code/game/objects/structures/secure_safe.html b/code/game/objects/structures/secure_safe.html new file mode 100644 index 0000000000000..be8203a822ff3 --- /dev/null +++ b/code/game/objects/structures/secure_safe.html @@ -0,0 +1,3 @@ +code/game/objects/structures/secure_safe.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/secure_safe.dm

/obj/structure/secure_safeWall safes +Holds items and uses the lockable storage component +to allow people to lock items up.
/obj/structure/secure_safe/caps_spareThis safe is meant to be damn robust. To break in, you're supposed to get creative, or use acid or an explosion.
\ No newline at end of file diff --git a/code/game/objects/structures/shower.html b/code/game/objects/structures/shower.html new file mode 100644 index 0000000000000..af0e704d63d7c --- /dev/null +++ b/code/game/objects/structures/shower.html @@ -0,0 +1 @@ +code/game/objects/structures/shower.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/objects/structures/shower.dm

SHOWER_SPRAY_VOLUMEThe volume of its internal reagents the shower applies to everything it sprays.
SHOWER_EXPOSURE_MULTIPLIERHow much the volume of the shower's spay reagents are amplified by when it sprays something.
SHOWER_TIMED_LENGTHHow long we run in TIMED mode
SHOWER_MODE_UNTIL_EMPTYRun the shower until we run out of reagents.
SHOWER_MODE_TIMEDRun the shower for SHOWER_TIMED_LENGTH time, or until we run out of reagents.
SHOWER_MODE_FOREVERRun the shower forever, pausing when we run out of liquid, and then resuming later.
SHOWER_MODE_COUNTNumber of modes to cycle through

Define Details

SHOWER_EXPOSURE_MULTIPLIER

How much the volume of the shower's spay reagents are amplified by when it sprays something.

SHOWER_MODE_COUNT

Number of modes to cycle through

SHOWER_MODE_FOREVER

Run the shower forever, pausing when we run out of liquid, and then resuming later.

SHOWER_MODE_TIMED

Run the shower for SHOWER_TIMED_LENGTH time, or until we run out of reagents.

SHOWER_MODE_UNTIL_EMPTY

Run the shower until we run out of reagents.

SHOWER_SPRAY_VOLUME

The volume of its internal reagents the shower applies to everything it sprays.

SHOWER_TIMED_LENGTH

How long we run in TIMED mode

\ No newline at end of file diff --git a/code/game/objects/structures/signs/_signs.html b/code/game/objects/structures/signs/_signs.html new file mode 100644 index 0000000000000..9fecbe02c3066 --- /dev/null +++ b/code/game/objects/structures/signs/_signs.html @@ -0,0 +1 @@ +code/game/objects/structures/signs/_signs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/signs/_signs.dm

/proc/populate_editable_sign_typesThis proc populates GLOBAL_LIST_EMPTY(editable_sign_types)
\ No newline at end of file diff --git a/code/game/objects/structures/signs/signs_departments.html b/code/game/objects/structures/signs/signs_departments.html new file mode 100644 index 0000000000000..c1d97c699e2e8 --- /dev/null +++ b/code/game/objects/structures/signs/signs_departments.html @@ -0,0 +1 @@ +code/game/objects/structures/signs/signs_departments.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/signs/signs_departments.dm

/obj/structure/sign/departments/medMEDBAY
/obj/structure/sign/departments/engineeringENGINEERING
/obj/structure/sign/departments/scienceSCIENCE
/obj/structure/sign/departments/botanySERVICE
/obj/structure/sign/departments/cargoSUPPLY
/obj/structure/sign/departments/securitySECURITY
/obj/structure/sign/departments/restroomMISC LOCATIONS
\ No newline at end of file diff --git a/code/game/objects/structures/signs/signs_warning.html b/code/game/objects/structures/signs/signs_warning.html new file mode 100644 index 0000000000000..2a63fbad1aa95 --- /dev/null +++ b/code/game/objects/structures/signs/signs_warning.html @@ -0,0 +1 @@ +code/game/objects/structures/signs/signs_warning.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/signs/signs_warning.dm

/obj/structure/sign/warningDANGEROUS THINGS
/obj/structure/sign/warning/podsMISC LOCATIONS
\ No newline at end of file diff --git a/code/game/objects/structures/syndicate_uplink_beacon.html b/code/game/objects/structures/syndicate_uplink_beacon.html new file mode 100644 index 0000000000000..f8faa074f53ee --- /dev/null +++ b/code/game/objects/structures/syndicate_uplink_beacon.html @@ -0,0 +1 @@ +code/game/objects/structures/syndicate_uplink_beacon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/syndicate_uplink_beacon.dm

/obj/structure/syndicate_uplink_beaconDevice that traitors can craft in order to be sent a new, undisguised uplink
\ No newline at end of file diff --git a/code/game/objects/structures/tables_racks.html b/code/game/objects/structures/tables_racks.html new file mode 100644 index 0000000000000..74be58fded731 --- /dev/null +++ b/code/game/objects/structures/tables_racks.html @@ -0,0 +1 @@ +code/game/objects/structures/tables_racks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/tables_racks.dm

/obj/structure/table/rollingTable on wheels
\ No newline at end of file diff --git a/code/game/objects/structures/tank_holder.html b/code/game/objects/structures/tank_holder.html new file mode 100644 index 0000000000000..9bcd97cfb252d --- /dev/null +++ b/code/game/objects/structures/tank_holder.html @@ -0,0 +1 @@ +code/game/objects/structures/tank_holder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/tank_holder.dm

/obj/structure/tank_holder?
\ No newline at end of file diff --git a/code/game/objects/structures/training_machine.html b/code/game/objects/structures/training_machine.html new file mode 100644 index 0000000000000..0a71356433a57 --- /dev/null +++ b/code/game/objects/structures/training_machine.html @@ -0,0 +1 @@ +code/game/objects/structures/training_machine.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/objects/structures/training_machine.dm

/obj/structure/training_machineMachine that runs around wildly so people can practice clickin on things
/obj/item/training_toolboxDevice that simply counts the number of times you've hit a mob or target with. Looks like a toolbox but isn't.
\ No newline at end of file diff --git a/code/game/say.html b/code/game/say.html new file mode 100644 index 0000000000000..6867199e8cbba --- /dev/null +++ b/code/game/say.html @@ -0,0 +1 @@ +code/game/say.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/say.dm

ENCODE_HTML_EMPHASISTransforms the speech emphasis mods from /atom/movable/proc/say_emphasis into the appropriate HTML tags. Includes escaping.

Define Details

ENCODE_HTML_EMPHASIS

Transforms the speech emphasis mods from /atom/movable/proc/say_emphasis into the appropriate HTML tags. Includes escaping.

\ No newline at end of file diff --git a/code/game/shuttle_engines.html b/code/game/shuttle_engines.html new file mode 100644 index 0000000000000..0aba03fc161ff --- /dev/null +++ b/code/game/shuttle_engines.html @@ -0,0 +1 @@ +code/game/shuttle_engines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/shuttle_engines.dm

ENGINE_WELDTIMEHow long it takes to weld/unweld an engine in place.

Define Details

ENGINE_WELDTIME

How long it takes to weld/unweld an engine in place.

\ No newline at end of file diff --git a/code/game/sound.html b/code/game/sound.html new file mode 100644 index 0000000000000..dc97313dd2ab8 --- /dev/null +++ b/code/game/sound.html @@ -0,0 +1 @@ +code/game/sound.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/sound.dm

/soundDefault override for echo
/proc/playsoundplaysound is a proc used to play a 3D sound in a specific range. This uses SOUND_RANGE + extra_range to determine that.
/proc/get_sfxUsed to convert a SFX define into a .ogg so we can add some variance to sounds. If soundin is already a .ogg, we simply return it
\ No newline at end of file diff --git a/code/game/turfs/closed/minerals.html b/code/game/turfs/closed/minerals.html new file mode 100644 index 0000000000000..4b5e93dafb740 --- /dev/null +++ b/code/game/turfs/closed/minerals.html @@ -0,0 +1 @@ +code/game/turfs/closed/minerals.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/turfs/closed/minerals.dm

/turf/closed/mineralMineral deposits
/turf/closed/mineral/snowmountain/do_not_chasmNear exact same subtype as parent, just used in ruins to prevent other ruins/chasms from spawning on top of it.
/turf/closed/mineral/snowmountain/icemoon/unscrapeableThis snowy mountain will never be scraped away for any reason what so ever.
\ No newline at end of file diff --git a/code/game/turfs/closed/wall/mineral_walls.html b/code/game/turfs/closed/wall/mineral_walls.html new file mode 100644 index 0000000000000..cfd81ee3d43ca --- /dev/null +++ b/code/game/turfs/closed/wall/mineral_walls.html @@ -0,0 +1 @@ +code/game/turfs/closed/wall/mineral_walls.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/turfs/closed/wall/mineral_walls.dm

/turf/closed/wall/mineral/titaniumTitanium walls
/turf/closed/wall/mineral/plastitaniumPlastitanium walls
\ No newline at end of file diff --git a/code/game/turfs/open/asteroid.html b/code/game/turfs/open/asteroid.html new file mode 100644 index 0000000000000..0ff322ab3d4cd --- /dev/null +++ b/code/game/turfs/open/asteroid.html @@ -0,0 +1,2 @@ +code/game/turfs/open/asteroid.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/turfs/open/asteroid.dm

/turf/open/misc/asteroidAsteroid +No breaking the glass (doesn't leave plating behind)
/turf/open/misc/asteroid/basalt/lava_land_surfaceSurface. The surface is warm, but survivable without a suit. Internals are required. The floors break to chasms, which drop you into the underground.
/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruinsUsed for the lavaland icemoon ruin.
/turf/closed/mineral/volcanic/lava_land_surface/do_not_chasmA turf that can't we can't build openspace chasms on or spawn ruins in.
/turf/open/misc/asteroid/snow/icemoon/do_not_chasmExact subtype as parent, just used in ruins to prevent other ruins/chasms from spawning on top of it.
\ No newline at end of file diff --git a/code/game/turfs/open/cliff.html b/code/game/turfs/open/cliff.html new file mode 100644 index 0000000000000..9bcd40883c5a5 --- /dev/null +++ b/code/game/turfs/open/cliff.html @@ -0,0 +1 @@ +code/game/turfs/open/cliff.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/turfs/open/cliff.dm

/turf/open/cliffA cliff tile from where people can fall. Should generally fall downwards, but you can change it if you want
/turf/open/cliff/snowrockSnowy cliff!
\ No newline at end of file diff --git a/code/game/turfs/open/floor.html b/code/game/turfs/open/floor.html new file mode 100644 index 0000000000000..fd775d6555493 --- /dev/null +++ b/code/game/turfs/open/floor.html @@ -0,0 +1 @@ +code/game/turfs/open/floor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/turfs/open/floor.dm

/turf/open/floorAnything above a lattice should go here.
\ No newline at end of file diff --git a/code/game/turfs/open/floor/catwalk_plating.html b/code/game/turfs/open/floor/catwalk_plating.html new file mode 100644 index 0000000000000..26c95efcabbba --- /dev/null +++ b/code/game/turfs/open/floor/catwalk_plating.html @@ -0,0 +1 @@ +code/game/turfs/open/floor/catwalk_plating.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/turfs/open/floor/catwalk_plating.dm

/turf/open/floor/catwalk_floor
\ No newline at end of file diff --git a/code/game/turfs/open/floor/fancy_floor.html b/code/game/turfs/open/floor/fancy_floor.html new file mode 100644 index 0000000000000..2f8ec3a911959 --- /dev/null +++ b/code/game/turfs/open/floor/fancy_floor.html @@ -0,0 +1 @@ +code/game/turfs/open/floor/fancy_floor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/turfs/open/floor/fancy_floor.dm

/turf/open/floor/emissive_testAn emissive turf used to test emissive turfs.
\ No newline at end of file diff --git a/code/game/turfs/open/floor/glass.html b/code/game/turfs/open/floor/glass.html new file mode 100644 index 0000000000000..1b243bea01a67 --- /dev/null +++ b/code/game/turfs/open/floor/glass.html @@ -0,0 +1 @@ +code/game/turfs/open/floor/glass.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/turfs/open/floor/glass.dm

/turf/open/floor/glassNo breaking the plating
\ No newline at end of file diff --git a/code/game/turfs/open/floor/plating.html b/code/game/turfs/open/floor/plating.html new file mode 100644 index 0000000000000..4c9d68682ce39 --- /dev/null +++ b/code/game/turfs/open/floor/plating.html @@ -0,0 +1 @@ +code/game/turfs/open/floor/plating.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/turfs/open/floor/plating.dm

/turf/open/floor/platingPLATINGS
/turf/open/floor/plating/rcdnot an actual turf its used just for rcd ui purposes
\ No newline at end of file diff --git a/code/game/turfs/open/lava.html b/code/game/turfs/open/lava.html new file mode 100644 index 0000000000000..bdda94dd7b795 --- /dev/null +++ b/code/game/turfs/open/lava.html @@ -0,0 +1 @@ +code/game/turfs/open/lava.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/turfs/open/lava.dm

LAVA_BE_IGNORINGGeneric return value of the can_burn_stuff() proc. Does nothing.
LAVA_BE_PROCESSINGAnother. Won't burn the target but will make the turf start processing.
LAVA_BE_BURNINGBurns the target and makes the turf process (depending on the return value of do_burn()).

Define Details

LAVA_BE_BURNING

Burns the target and makes the turf process (depending on the return value of do_burn()).

LAVA_BE_IGNORING

Generic return value of the can_burn_stuff() proc. Does nothing.

LAVA_BE_PROCESSING

Another. Won't burn the target but will make the turf start processing.

\ No newline at end of file diff --git a/code/game/turfs/open/misc.html b/code/game/turfs/open/misc.html new file mode 100644 index 0000000000000..dc9d431d7145c --- /dev/null +++ b/code/game/turfs/open/misc.html @@ -0,0 +1,3 @@ +code/game/turfs/open/misc.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/turfs/open/misc.dm

/turf/open/miscUsed as a parent type for types that want to allow construction, but do not want to be floors +I wish I could use components for turfs at scale +Please do not bloat this. Love you <3
\ No newline at end of file diff --git a/code/game/turfs/open/space/transit.html b/code/game/turfs/open/space/transit.html new file mode 100644 index 0000000000000..bb43293e542bc --- /dev/null +++ b/code/game/turfs/open/space/transit.html @@ -0,0 +1 @@ +code/game/turfs/open/space/transit.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/turfs/open/space/transit.dm

/proc/dump_in_spaceDump a movable in a random valid spacetile
\ No newline at end of file diff --git a/code/game/turfs/turf.html b/code/game/turfs/turf.html new file mode 100644 index 0000000000000..0fe6ad1e530c6 --- /dev/null +++ b/code/game/turfs/turf.html @@ -0,0 +1 @@ +code/game/turfs/turf.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/game/turfs/turf.dm

/turfAny floor or wall. What makes up the station and the rest of the map.
\ No newline at end of file diff --git a/code/game/world.html b/code/game/world.html new file mode 100644 index 0000000000000..4cef5f63df19c --- /dev/null +++ b/code/game/world.html @@ -0,0 +1 @@ +code/game/world.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/game/world.dm

USE_TRACY_PARAMETERLoad byond-tracy. If USE_BYOND_TRACY is defined, then this is ignored and byond-tracy is always loaded.
OVERRIDE_LOG_DIRECTORY_PARAMETERForce the log directory to be something specific in the data/logs folder
NO_INIT_PARAMETERPrevent the master controller from starting automatically

Define Details

NO_INIT_PARAMETER

Prevent the master controller from starting automatically

OVERRIDE_LOG_DIRECTORY_PARAMETER

Force the log directory to be something specific in the data/logs folder

USE_TRACY_PARAMETER

Load byond-tracy. If USE_BYOND_TRACY is defined, then this is ignored and byond-tracy is always loaded.

\ No newline at end of file diff --git a/code/modules/NTNet/relays.html b/code/modules/NTNet/relays.html new file mode 100644 index 0000000000000..337aecf88b760 --- /dev/null +++ b/code/modules/NTNet/relays.html @@ -0,0 +1 @@ +code/modules/NTNet/relays.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/NTNet/relays.dm

/proc/find_functional_ntnet_relayChecks whether NTNet is available by ensuring at least one relay exists and is operational.
\ No newline at end of file diff --git a/code/modules/actionspeed/_actionspeed_modifier.html b/code/modules/actionspeed/_actionspeed_modifier.html new file mode 100644 index 0000000000000..6c94982d2968b --- /dev/null +++ b/code/modules/actionspeed/_actionspeed_modifier.html @@ -0,0 +1,19 @@ +code/modules/actionspeed/_actionspeed_modifier.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/actionspeed/_actionspeed_modifier.dm

Actionspeed modification datums.

+
How action speed for mobs works
+
+

Action speed is now calculated by using modifier datums which are added to mobs. Some of them (nonvariable ones) are globally cached, the variable ones are instanced and changed based on need.

+

This gives us the ability to have multiple sources of actionspeed, reliabily keep them applied and remove them when they should be

+

THey can have unique sources and a bunch of extra fancy flags that control behaviour

+

Previously trying to update action speed was a shot in the dark that usually meant mobs got stuck going faster or slower

+

Actionspeed modification list is a simple key = datum system. Key will be the datum's ID if it is overridden to not be null, or type if it is not.

+

DO NOT override datum IDs unless you are going to have multiple types that must overwrite each other. It's more efficient to use types, ID functionality is only kept for cases where dynamic creation of modifiers need to be done.

+

When update actionspeed is called, the list of items is iterated, according to flags priority and a bunch of conditions +this spits out a final calculated value which is used as a modifer to last_move + modifier for calculating when a mob +can next move

/proc/get_cached_actionspeed_modifierGrabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO!

Used for variable slowdowns like hunger/health loss/etc, works somewhat like the old list-based modification adds. Returns the modifier datum if successful +How this SHOULD work is: +1. Ensures type_id_datum one way or another refers to a /variable datum. This makes sure it can't be cached. This includes if it's already in the modification list. +2. Instantiate a new datum if type_id_datum isn't already instantiated + in the list, using the type. Obviously, wouldn't work for ID only. +3. Add the datum if necessary using the regular add proc +4. If any of the rest of the args are not null (see: multiplicative slowdown), modify the datum +5. Update if necessary

+
/proc/actionspeed_data_null_checkChecks if a action speed modifier is valid and not missing any data
\ No newline at end of file diff --git a/code/modules/actionspeed/modifiers/status_effects.html b/code/modules/actionspeed/modifiers/status_effects.html new file mode 100644 index 0000000000000..9ba0059b545be --- /dev/null +++ b/code/modules/actionspeed/modifiers/status_effects.html @@ -0,0 +1 @@ +code/modules/actionspeed/modifiers/status_effects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/actionspeed/modifiers/status_effects.dm

/datum/actionspeed_modifier/status_effect/midas_blightGet slower the more gold is in your system.
\ No newline at end of file diff --git a/code/modules/admin/admin.html b/code/modules/admin/admin.html new file mode 100644 index 0000000000000..24c66e584e399 --- /dev/null +++ b/code/modules/admin/admin.html @@ -0,0 +1 @@ +code/modules/admin/admin.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/admin.dm

/datum/admin_verb/spawn_atomADMIN HELPER PROCS
\ No newline at end of file diff --git a/code/modules/admin/admin_fax_panel.html b/code/modules/admin/admin_fax_panel.html new file mode 100644 index 0000000000000..35ad4c97579e4 --- /dev/null +++ b/code/modules/admin/admin_fax_panel.html @@ -0,0 +1 @@ +code/modules/admin/admin_fax_panel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/admin_fax_panel.dm

/datum/fax_panel_interfaceAdmin Fax Panel. Tool for sending fax messages faster.
\ No newline at end of file diff --git a/code/modules/admin/admin_pda_message.html b/code/modules/admin/admin_pda_message.html new file mode 100644 index 0000000000000..a8de8779e4f6d --- /dev/null +++ b/code/modules/admin/admin_pda_message.html @@ -0,0 +1 @@ +code/modules/admin/admin_pda_message.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/admin_pda_message.dm

/datum/admin_pda_panelPanel
\ No newline at end of file diff --git a/code/modules/admin/admin_ranks.html b/code/modules/admin/admin_ranks.html new file mode 100644 index 0000000000000..9aac8201b193e --- /dev/null +++ b/code/modules/admin/admin_ranks.html @@ -0,0 +1,3 @@ +code/modules/admin/admin_ranks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/admin_ranks.dm

/proc/load_admin_ranksLoads admin ranks. +Return a list containing the backup data if they were loaded from the database backup json
/proc/ranks_from_rank_nameConverts a rank name (such as "Coder+Moth") into a list of /datum/admin_rank
/proc/join_admin_ranksTakes a list of rank names and joins them with +
/proc/load_admins(Re)Loads the admin list. +returns TRUE if database admins had to be loaded from the backup json
\ No newline at end of file diff --git a/code/modules/admin/admin_verbs.html b/code/modules/admin/admin_verbs.html new file mode 100644 index 0000000000000..15af5310b2b89 --- /dev/null +++ b/code/modules/admin/admin_verbs.html @@ -0,0 +1 @@ +code/modules/admin/admin_verbs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/admin_verbs.dm

/proc/findTrueKeyTakes a stealthed ckey as input, returns the true key it represents
/proc/generateStealthCkeyHands back a stealth ckey to use, guarenteed to be unique
\ No newline at end of file diff --git a/code/modules/admin/callproc/callproc.html b/code/modules/admin/callproc/callproc.html new file mode 100644 index 0000000000000..e0f686964c541 --- /dev/null +++ b/code/modules/admin/callproc/callproc.html @@ -0,0 +1,3 @@ +code/modules/admin/callproc/callproc.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/callproc/callproc.dm

/mob/proccall_handlerUsed to handle proccalls called indirectly by an admin (e.g. tgs, circuits). +Has to be a mob because IsAdminAdvancedProcCall() checks usr, which is a mob variable. +So usr is set to this for any proccalls that don't have any usr mob/client to refer to.
/proc/HandleUserlessProcCallHandles a userless proccall, used by circuits.
/proc/HandleUserlessSDQLHandles a userless sdql, used by circuits and tgs.
/proc/WrapAdminProcCallWrapper for proccalls where the datum is flagged as vareditted
\ No newline at end of file diff --git a/code/modules/admin/chat_commands.html b/code/modules/admin/chat_commands.html new file mode 100644 index 0000000000000..07937df4dfe27 --- /dev/null +++ b/code/modules/admin/chat_commands.html @@ -0,0 +1 @@ +code/modules/admin/chat_commands.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/chat_commands.dm

/datum/tgs_chat_command/reload_adminsReload admins tgs chat command. Intentionally not validated.
/datum/tgs_chat_command/validatedsubtype tgs chat command with validated admin ranks. Only supports discord.
\ No newline at end of file diff --git a/code/modules/admin/create_mob.html b/code/modules/admin/create_mob.html new file mode 100644 index 0000000000000..b2c8b08fcc5a4 --- /dev/null +++ b/code/modules/admin/create_mob.html @@ -0,0 +1 @@ +code/modules/admin/create_mob.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/create_mob.dm

/proc/randomize_human_normieRandomizes a human, but produces someone who looks exceedingly average (by most standards).
\ No newline at end of file diff --git a/code/modules/admin/force_event.html b/code/modules/admin/force_event.html new file mode 100644 index 0000000000000..5a04066225580 --- /dev/null +++ b/code/modules/admin/force_event.html @@ -0,0 +1 @@ +code/modules/admin/force_event.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/force_event.dm

/datum/force_eventForce Event Panel
\ No newline at end of file diff --git a/code/modules/admin/greyscale_modify_menu.html b/code/modules/admin/greyscale_modify_menu.html new file mode 100644 index 0000000000000..2d556b323427a --- /dev/null +++ b/code/modules/admin/greyscale_modify_menu.html @@ -0,0 +1,2 @@ +code/modules/admin/greyscale_modify_menu.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/greyscale_modify_menu.dm

/datum/greyscale_modify_menuThe controller for the ui in charge of all runtime greyscale configuration/debug. +If Unlock() is not called the menu is safe for players to use.
/datum/greyscale_modify_menu/spray_paintUsed for spray painting items in the gags_recolorable component
\ No newline at end of file diff --git a/code/modules/admin/painting_manager.html b/code/modules/admin/painting_manager.html new file mode 100644 index 0000000000000..9ab4c07516da7 --- /dev/null +++ b/code/modules/admin/painting_manager.html @@ -0,0 +1 @@ +code/modules/admin/painting_manager.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/painting_manager.dm

/datum/paintings_managerPainting Admin Management Panel
\ No newline at end of file diff --git a/code/modules/admin/poll_management.html b/code/modules/admin/poll_management.html new file mode 100644 index 0000000000000..6050cec65525d --- /dev/null +++ b/code/modules/admin/poll_management.html @@ -0,0 +1 @@ +code/modules/admin/poll_management.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/poll_management.dm

/datum/poll_questionDatum which holds details of a running poll loaded from the database and supplementary info.
/datum/poll_optionDatum which holds details of a poll option loaded from the database.
/proc/load_poll_dataLoads all current and future server polls and their options to store both as datums.
\ No newline at end of file diff --git a/code/modules/admin/smites/bad_luck.html b/code/modules/admin/smites/bad_luck.html new file mode 100644 index 0000000000000..2893b7f4ba8d2 --- /dev/null +++ b/code/modules/admin/smites/bad_luck.html @@ -0,0 +1 @@ +code/modules/admin/smites/bad_luck.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/bad_luck.dm

/datum/smite/bad_luckGives the target bad luck, optionally permanently
\ No newline at end of file diff --git a/code/modules/admin/smites/become_object.html b/code/modules/admin/smites/become_object.html new file mode 100644 index 0000000000000..9e959c61dc886 --- /dev/null +++ b/code/modules/admin/smites/become_object.html @@ -0,0 +1 @@ +code/modules/admin/smites/become_object.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/become_object.dm

/datum/smite/objectifyTurns the target into an object (for instance bread)
\ No newline at end of file diff --git a/code/modules/admin/smites/berforate.html b/code/modules/admin/smites/berforate.html new file mode 100644 index 0000000000000..265a082455e79 --- /dev/null +++ b/code/modules/admin/smites/berforate.html @@ -0,0 +1 @@ +code/modules/admin/smites/berforate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/berforate.dm

/datum/smite/berforateFires an absurd amount of bullets at the target
\ No newline at end of file diff --git a/code/modules/admin/smites/bloodless.html b/code/modules/admin/smites/bloodless.html new file mode 100644 index 0000000000000..23e4e586729d4 --- /dev/null +++ b/code/modules/admin/smites/bloodless.html @@ -0,0 +1 @@ +code/modules/admin/smites/bloodless.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/bloodless.dm

/datum/smite/bloodlessSlashes up the target
\ No newline at end of file diff --git a/code/modules/admin/smites/boneless.html b/code/modules/admin/smites/boneless.html new file mode 100644 index 0000000000000..25ac2c9c2a050 --- /dev/null +++ b/code/modules/admin/smites/boneless.html @@ -0,0 +1 @@ +code/modules/admin/smites/boneless.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/boneless.dm

/datum/smite/bonelessGives the target critically bad wounds
\ No newline at end of file diff --git a/code/modules/admin/smites/brain_damage.html b/code/modules/admin/smites/brain_damage.html new file mode 100644 index 0000000000000..8a80c4c752bfb --- /dev/null +++ b/code/modules/admin/smites/brain_damage.html @@ -0,0 +1 @@ +code/modules/admin/smites/brain_damage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/brain_damage.dm

/datum/smite/brain_damageInflicts crippling brain damage on the target
\ No newline at end of file diff --git a/code/modules/admin/smites/bsa.html b/code/modules/admin/smites/bsa.html new file mode 100644 index 0000000000000..c17c0ce37560b --- /dev/null +++ b/code/modules/admin/smites/bsa.html @@ -0,0 +1 @@ +code/modules/admin/smites/bsa.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/bsa.dm

/datum/smite/bsaFires the BSA at the target
\ No newline at end of file diff --git a/code/modules/admin/smites/curse_of_babel.html b/code/modules/admin/smites/curse_of_babel.html new file mode 100644 index 0000000000000..b550c0a5d9fe3 --- /dev/null +++ b/code/modules/admin/smites/curse_of_babel.html @@ -0,0 +1 @@ +code/modules/admin/smites/curse_of_babel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/curse_of_babel.dm

/datum/smite/curse_of_babelStrikes the target with a lightning bolt
\ No newline at end of file diff --git a/code/modules/admin/smites/dock_pay.html b/code/modules/admin/smites/dock_pay.html new file mode 100644 index 0000000000000..6d6fd0959c05a --- /dev/null +++ b/code/modules/admin/smites/dock_pay.html @@ -0,0 +1 @@ +code/modules/admin/smites/dock_pay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/dock_pay.dm

/datum/smite/dock_payDocks the target's pay
\ No newline at end of file diff --git a/code/modules/admin/smites/fake_bwoink.html b/code/modules/admin/smites/fake_bwoink.html new file mode 100644 index 0000000000000..1c1b3409d8048 --- /dev/null +++ b/code/modules/admin/smites/fake_bwoink.html @@ -0,0 +1 @@ +code/modules/admin/smites/fake_bwoink.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/fake_bwoink.dm

/datum/smite/fake_bwoinkSends the target a fake adminhelp sound
\ No newline at end of file diff --git a/code/modules/admin/smites/fat.html b/code/modules/admin/smites/fat.html new file mode 100644 index 0000000000000..941ac5bc8dcbc --- /dev/null +++ b/code/modules/admin/smites/fat.html @@ -0,0 +1 @@ +code/modules/admin/smites/fat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/fat.dm

/datum/smite/fatFattens the target
\ No newline at end of file diff --git a/code/modules/admin/smites/fireball.html b/code/modules/admin/smites/fireball.html new file mode 100644 index 0000000000000..095d48d129c45 --- /dev/null +++ b/code/modules/admin/smites/fireball.html @@ -0,0 +1 @@ +code/modules/admin/smites/fireball.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/fireball.dm

/datum/smite/fireballThrows a fireball down at the target
\ No newline at end of file diff --git a/code/modules/admin/smites/gib.html b/code/modules/admin/smites/gib.html new file mode 100644 index 0000000000000..d3d341be4f58d --- /dev/null +++ b/code/modules/admin/smites/gib.html @@ -0,0 +1 @@ +code/modules/admin/smites/gib.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/gib.dm

/datum/smite/gibGibs the target
\ No newline at end of file diff --git a/code/modules/admin/smites/imaginary_friend_special.html b/code/modules/admin/smites/imaginary_friend_special.html new file mode 100644 index 0000000000000..8640c47605d8a --- /dev/null +++ b/code/modules/admin/smites/imaginary_friend_special.html @@ -0,0 +1 @@ +code/modules/admin/smites/imaginary_friend_special.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/imaginary_friend_special.dm

/datum/smite/custom_imaginary_friendCustom imaginary friend.
\ No newline at end of file diff --git a/code/modules/admin/smites/immerse.html b/code/modules/admin/smites/immerse.html new file mode 100644 index 0000000000000..5e30decd96124 --- /dev/null +++ b/code/modules/admin/smites/immerse.html @@ -0,0 +1 @@ +code/modules/admin/smites/immerse.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/immerse.dm

/datum/smite/immerse"Fully immerses" the player, making them manually breathe and blink
\ No newline at end of file diff --git a/code/modules/admin/smites/knot_shoes.html b/code/modules/admin/smites/knot_shoes.html new file mode 100644 index 0000000000000..6b71e8571fe8e --- /dev/null +++ b/code/modules/admin/smites/knot_shoes.html @@ -0,0 +1 @@ +code/modules/admin/smites/knot_shoes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/knot_shoes.dm

/datum/smite/knot_shoesTies the target's shoes
\ No newline at end of file diff --git a/code/modules/admin/smites/lightning.html b/code/modules/admin/smites/lightning.html new file mode 100644 index 0000000000000..2716c8ee3597a --- /dev/null +++ b/code/modules/admin/smites/lightning.html @@ -0,0 +1 @@ +code/modules/admin/smites/lightning.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/lightning.dm

/datum/smite/lightningStrikes the target with a lightning bolt
/proc/lightningboltthis is the actual bolt effect and damage, made into its own proc because it is used elsewhere
\ No newline at end of file diff --git a/code/modules/admin/smites/nugget.html b/code/modules/admin/smites/nugget.html new file mode 100644 index 0000000000000..d70db31de7665 --- /dev/null +++ b/code/modules/admin/smites/nugget.html @@ -0,0 +1 @@ +code/modules/admin/smites/nugget.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/nugget.dm

/datum/smite/nuggetRips off all the limbs of the target
\ No newline at end of file diff --git a/code/modules/admin/smites/petrify.html b/code/modules/admin/smites/petrify.html new file mode 100644 index 0000000000000..471563eb25272 --- /dev/null +++ b/code/modules/admin/smites/petrify.html @@ -0,0 +1 @@ +code/modules/admin/smites/petrify.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/petrify.dm

/datum/smite/petrifyTurn pur target to stone, forever
\ No newline at end of file diff --git a/code/modules/admin/smites/phobia_ocky_icky.html b/code/modules/admin/smites/phobia_ocky_icky.html new file mode 100644 index 0000000000000..4bd19b247c2cf --- /dev/null +++ b/code/modules/admin/smites/phobia_ocky_icky.html @@ -0,0 +1 @@ +code/modules/admin/smites/phobia_ocky_icky.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/phobia_ocky_icky.dm

/datum/smite/ocky_icky"Immerses" the player, making them unable to use some OOC terms IC
\ No newline at end of file diff --git a/code/modules/admin/smites/puzzgrid.html b/code/modules/admin/smites/puzzgrid.html new file mode 100644 index 0000000000000..cb2170010a8a6 --- /dev/null +++ b/code/modules/admin/smites/puzzgrid.html @@ -0,0 +1 @@ +code/modules/admin/smites/puzzgrid.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/puzzgrid.dm

/datum/smite/puzzgridTurns the user into a puzzgrid
\ No newline at end of file diff --git a/code/modules/admin/smites/puzzle.html b/code/modules/admin/smites/puzzle.html new file mode 100644 index 0000000000000..932d2ea7ab83f --- /dev/null +++ b/code/modules/admin/smites/puzzle.html @@ -0,0 +1 @@ +code/modules/admin/smites/puzzle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/puzzle.dm

/datum/smite/puzzleTurns the user into a sliding puzzle
\ No newline at end of file diff --git a/code/modules/admin/smites/rod.html b/code/modules/admin/smites/rod.html new file mode 100644 index 0000000000000..527c4f063ee56 --- /dev/null +++ b/code/modules/admin/smites/rod.html @@ -0,0 +1 @@ +code/modules/admin/smites/rod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/rod.dm

/datum/smite/rodThrow an immovable rod at the target
\ No newline at end of file diff --git a/code/modules/admin/smites/scarify.html b/code/modules/admin/smites/scarify.html new file mode 100644 index 0000000000000..42c921f5e98f2 --- /dev/null +++ b/code/modules/admin/smites/scarify.html @@ -0,0 +1 @@ +code/modules/admin/smites/scarify.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/scarify.dm

/datum/smite/scarifyGives the target fake scars
\ No newline at end of file diff --git a/code/modules/admin/smites/smite.html b/code/modules/admin/smites/smite.html new file mode 100644 index 0000000000000..056f42c6d1d05 --- /dev/null +++ b/code/modules/admin/smites/smite.html @@ -0,0 +1 @@ +code/modules/admin/smites/smite.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/smite.dm

/datum/smiteA smite, used by admins to punish players, or for their own amusement
\ No newline at end of file diff --git a/code/modules/admin/smites/supply_pod.html b/code/modules/admin/smites/supply_pod.html new file mode 100644 index 0000000000000..bbca87f17fe11 --- /dev/null +++ b/code/modules/admin/smites/supply_pod.html @@ -0,0 +1 @@ +code/modules/admin/smites/supply_pod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/supply_pod.dm

/datum/smite/supply_podThrows a supply pod at the target, with no item inside
\ No newline at end of file diff --git a/code/modules/admin/smites/supply_pod_quick.html b/code/modules/admin/smites/supply_pod_quick.html new file mode 100644 index 0000000000000..d0c5c33b67389 --- /dev/null +++ b/code/modules/admin/smites/supply_pod_quick.html @@ -0,0 +1 @@ +code/modules/admin/smites/supply_pod_quick.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/smites/supply_pod_quick.dm

/datum/smite/supply_pod_quickQuickly throws a supply pod at the target, optionally with an item
\ No newline at end of file diff --git a/code/modules/admin/sql_ban_system.html b/code/modules/admin/sql_ban_system.html new file mode 100644 index 0000000000000..afc3c045a1334 --- /dev/null +++ b/code/modules/admin/sql_ban_system.html @@ -0,0 +1,4 @@ +code/modules/admin/sql_ban_system.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/sql_ban_system.dm

/proc/is_banned_fromChecks client ban cache or, if it doesn't exist, queries the DB ban table to see if the player's +ckey is banned from at least one of the provided roles.
/proc/retrieve_ban_cacheGets the ban cache of the passed in client +If the cache has not been generated, we start off a query +If we still have a query going for this request, we just sleep until it's received back
\ No newline at end of file diff --git a/code/modules/admin/sql_message_system.html b/code/modules/admin/sql_message_system.html new file mode 100644 index 0000000000000..04813a1fedebc --- /dev/null +++ b/code/modules/admin/sql_message_system.html @@ -0,0 +1 @@ +code/modules/admin/sql_message_system.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/sql_message_system.dm

/datum/admin_messageRepresents a message stored in the db
\ No newline at end of file diff --git a/code/modules/admin/tag.html b/code/modules/admin/tag.html new file mode 100644 index 0000000000000..335bf311bbcee --- /dev/null +++ b/code/modules/admin/tag.html @@ -0,0 +1 @@ +code/modules/admin/tag.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/admin/tag.dm

TAG_DELQuick define for readability

Define Details

TAG_DEL

Quick define for readability

\ No newline at end of file diff --git a/code/modules/admin/trophy_manager.html b/code/modules/admin/trophy_manager.html new file mode 100644 index 0000000000000..22fe2a24a1a0f --- /dev/null +++ b/code/modules/admin/trophy_manager.html @@ -0,0 +1 @@ +code/modules/admin/trophy_manager.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/trophy_manager.dm

/datum/trophy_managerTrophy Admin Management Panel
\ No newline at end of file diff --git a/code/modules/admin/verb_datums/_admin_verb_datum.html b/code/modules/admin/verb_datums/_admin_verb_datum.html new file mode 100644 index 0000000000000..d1613c1b409ed --- /dev/null +++ b/code/modules/admin/verb_datums/_admin_verb_datum.html @@ -0,0 +1,3 @@ +code/modules/admin/verb_datums/_admin_verb_datum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verb_datums/_admin_verb_datum.dm

/datum/admin_verbThis is the admin verb datum. It is used to store the verb's information and handle the verb's functionality. +All of this is setup for you, and you should not be defining this manually. +That means you reader.
\ No newline at end of file diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.html b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.html new file mode 100644 index 0000000000000..19dcbade4b09d --- /dev/null +++ b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.html @@ -0,0 +1,11 @@ +code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm

/proc/_pick_listAllow me to explain +for some reason, if pick() is passed arglist(args) directly and args contains only one list +it considers it to be a list of lists +this means something like _pick(list) would fail +need to do this instead
/proc/_animate_filterAuxtools REALLY doesn't know how to handle filters as values; +when passed as arguments to auxtools-called procs, they aren't simply treated as nulls - +they don't even count towards the length of args. +For example, calling some_proc([a filter], foo, bar) from auxtools +is equivalent to calling some_proc(foo, bar). Thus, we can't use _animate directly on filters. +Use this to perform animation steps on a filter. Consecutive steps on the same filter can be +achieved by calling _animate with no target.
\ No newline at end of file diff --git a/code/modules/admin/verbs/adminfun.html b/code/modules/admin/verbs/adminfun.html new file mode 100644 index 0000000000000..d72ff3e7755be --- /dev/null +++ b/code/modules/admin/verbs/adminfun.html @@ -0,0 +1 @@ +code/modules/admin/verbs/adminfun.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/adminfun.dm

/proc/objectify"Turns" people into objects. Really, we just add them to the contents of the item.
/proc/firing_squadfiring_squad is a proc for the :B:erforate smite to shoot each individual bullet at them, so that we can add actual delays without sleep() nonsense
\ No newline at end of file diff --git a/code/modules/admin/verbs/adminhelp.html b/code/modules/admin/verbs/adminhelp.html new file mode 100644 index 0000000000000..fa1aaaedb3db2 --- /dev/null +++ b/code/modules/admin/verbs/adminhelp.html @@ -0,0 +1,5 @@ +code/modules/admin/verbs/adminhelp.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/adminhelp.dm

/datum/admin_help_tickets
/datum/admin_help
/proc/admin_ticket_logUse this proc when an admin takes action that may be related to an open ticket on what +what can be a client, ckey, or mob +player_message: If the message should be shown in the player ticket panel, fill this out +log_in_blackbox: Whether or not this message with the blackbox system. +If disabled, this message should be logged with a different proc call
/proc/send2otherserverSends a message to a set of cross-communications-enabled servers using world topic calls
/proc/check_asay_linksChecks a given message to see if any of the words are something we want to treat specially, as detailed below.
\ No newline at end of file diff --git a/code/modules/admin/verbs/adminpm.html b/code/modules/admin/verbs/adminpm.html new file mode 100644 index 0000000000000..d594788021dfd --- /dev/null +++ b/code/modules/admin/verbs/adminpm.html @@ -0,0 +1,3 @@ +code/modules/admin/verbs/adminpm.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/adminpm.dm

/proc/GetTgsStealthKeyGets TGS's stealth key, generates one if none is found
/proc/disambiguate_clientTakes an argument which could be either a ckey, /client, or IRC marker, and returns a client if possible +Returns [EXTERNAL_PM_USER] if an IRC marker is detected +Otherwise returns null
\ No newline at end of file diff --git a/code/modules/admin/verbs/ai_triumvirate.html b/code/modules/admin/verbs/ai_triumvirate.html new file mode 100644 index 0000000000000..eed74bb507263 --- /dev/null +++ b/code/modules/admin/verbs/ai_triumvirate.html @@ -0,0 +1,3 @@ +code/modules/admin/verbs/ai_triumvirate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/ai_triumvirate.dm

/datum/triple_ai_controllerThe triple ai controller handles the admin triple AI mode, if enabled. +It is first created when "Toggle AI Triumvirate" triggers it, and it can be referenced from GLOB.triple_ai_controller +After it handles roundstart business, it cleans itself up.
\ No newline at end of file diff --git a/code/modules/admin/verbs/color_blind_test.html b/code/modules/admin/verbs/color_blind_test.html new file mode 100644 index 0000000000000..bd46dc8a6c840 --- /dev/null +++ b/code/modules/admin/verbs/color_blind_test.html @@ -0,0 +1,5 @@ +code/modules/admin/verbs/color_blind_test.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/color_blind_test.dm

/datum/colorblind_testerUsed to test the game for issues with different types of color blindness +WARNING ASSHOLE: Because we can only apply matrixes, and can't preform gamma correction +https://web.archive.org/web/20220227030606/https://ixora.io/projects/colorblindness/color-blindness-simulation-research/ +The results of this tool aren't perfect. It's way better then nothing, but IT IS NOT A PROPER SIMULATION +Please do not make us look like assholes by assuming it is. Thanks.
\ No newline at end of file diff --git a/code/modules/admin/verbs/commandreport.html b/code/modules/admin/verbs/commandreport.html new file mode 100644 index 0000000000000..a7017c4d447db --- /dev/null +++ b/code/modules/admin/verbs/commandreport.html @@ -0,0 +1 @@ +code/modules/admin/verbs/commandreport.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/admin/verbs/commandreport.dm

DEFAULT_ANNOUNCEMENT_SOUNDThe default command report announcement sound.
CENTCOM_PRESETPreset central command names to chose from for centcom reports.
/datum/admin_verb/create_command_reportVerb to open the create command report window and send command reports.
/datum/command_report_menuDatum for holding the TGUI window for command reports.

Define Details

CENTCOM_PRESET

Preset central command names to chose from for centcom reports.

DEFAULT_ANNOUNCEMENT_SOUND

The default command report announcement sound.

\ No newline at end of file diff --git a/code/modules/admin/verbs/ert.html b/code/modules/admin/verbs/ert.html new file mode 100644 index 0000000000000..f105c757082a7 --- /dev/null +++ b/code/modules/admin/verbs/ert.html @@ -0,0 +1 @@ +code/modules/admin/verbs/ert.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/admin/verbs/ert.dm

ERT_EXPERIENCED_LEADER_CHOOSE_TOPIf we spawn an ERT with the "choose experienced leader" option, select the leader from the top X playtimes
DUMMY_HUMAN_SLOT_ADMINDummy mob reserve slot for admin use

Define Details

DUMMY_HUMAN_SLOT_ADMIN

Dummy mob reserve slot for admin use

ERT_EXPERIENCED_LEADER_CHOOSE_TOP

If we spawn an ERT with the "choose experienced leader" option, select the leader from the top X playtimes

\ No newline at end of file diff --git a/code/modules/admin/verbs/highlander_datum.html b/code/modules/admin/verbs/highlander_datum.html new file mode 100644 index 0000000000000..14ac20349b85e --- /dev/null +++ b/code/modules/admin/verbs/highlander_datum.html @@ -0,0 +1,2 @@ +code/modules/admin/verbs/highlander_datum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/highlander_datum.dm

/datum/highlander_controllerThe highlander controller handles the admin highlander mode, if enabled. +It is first created when "there can only be one" triggers it, and it can be referenced from GLOB.highlander_controller
\ No newline at end of file diff --git a/code/modules/admin/verbs/light_debug.html b/code/modules/admin/verbs/light_debug.html new file mode 100644 index 0000000000000..718f18bc9aa2a --- /dev/null +++ b/code/modules/admin/verbs/light_debug.html @@ -0,0 +1,2 @@ +code/modules/admin/verbs/light_debug.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/light_debug.dm

/proc/isolate_lightHides all the lights around a source temporarially, for the sake of figuring out how bad a light bleeds +(Except for turf lights, because they're a part of the "scene" and rarely modified)
\ No newline at end of file diff --git a/code/modules/admin/verbs/lua.html b/code/modules/admin/verbs/lua.html new file mode 100644 index 0000000000000..669216e22dffe --- /dev/null +++ b/code/modules/admin/verbs/lua.html @@ -0,0 +1,202 @@ +code/modules/admin/verbs/lua/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Objects

Datums, lists, typepaths, static appearances, and some other objects are represented in Luau as userdata. Certain operations can be performed on these types of objects.

+

Common metamethods

+

The following metamethods are defined for all objects.

+

__tostring(): string

+

Returns the string representation of the object. This uses BYOND's internal string conversion function.

+

__eq(other: any): boolean

+

Compare the equality of two objects. While passing the same object into luau twice will return two references to the same userdata, some DM projects may override the equality operator using an __operator== proc definition.

+

Datum-like Objects

+

Datum-like objects include datums themselves, clients (if they have not been redefined to be children of /datum), static appearances, and the world.

+

__index(index: string): any

+

Access the member specified by index.

+

If index is a valid var for the object, the index operation will return that var's value. +If the var getting wrapper proc is set, the operation will instead call that proc with the arguments (object, index).

+

For objects other than static appearances, if index is a valid proc for the object, the operation will return a wrapper for that proc that can be invoked using call syntax (e.g. object:proc(...arguments)). If the object proc calling wrapper is set, calling the returned function will instead call the wrapper proc with the arguments (object, proc, {...arguments}). Note that vars will be shadowed by procs with the same name. To work around this, use the dm.get_var function.

+

__newindex(index: string, value: any): ()

+

Set the var specified by index to value, if that var exists on the object.

+

If the var setting wrapper proc is set, the operation will instead call that proc with the arguments (object, index, value).

+

Lists

+

Lists are syntactically similar to tables, with one crucial difference. +Unlike tables, numeric indices must be non-zero integers within the bounds of the list.

+

__index(index: any): any

+

Read the list at index. This works both for numeric indices and assoc keys. +Vars lists cannot be directly read this way if the var getting wrapper proc is set.

+

__newindex(index: any, value: any): any

+

Write value to the list at index. This works both for writing numeric indices and assoc keys. +Vars lists cannot be directly written this way if the var setting wrapper proc is set.

+

__len(): integer

+

Returns the length of the list, similarly to the length builtin in DM.

+

Iteration

+

Lists support Luau's generalized iteration. Iteration this way returns pairs of numeric indices and list values. +For example, the statement for _, v in L do is logically equivalent to the DM statement for(var/v in L).

+

Global Fields and Modules

+

In addition to the full extent of Luau's standard library modules, some extra functions and modules have been added.

+

Global-Level Fields

sleep(): ()

+

Yields the active thread, without worrying about passing data into or out of the state.

+

Threads yielded this way are placed at the end of a queue. Call the awaken hook function from DM to execute the thread at the front of the queue.

+

loadstring(code: string): function

+

Luau does not inherently include the loadstring function common to a number of other versions of lua. This is an effective reimplementation of loadstring.

+ +

Calls the print wrapper with the passed in arguments. +Raises an error if no print wrapper is set, as that means there is nothing to print with.

+

_state_id: integer

+

The handle to the underlying luau state in the dreamluau binary.

+

_exec

+

The _exec module includes volatile fields related to the current execution context.

+

_next_yield_index: integer

+

When yielding a thread with coroutine.yield, it will be inserted into an internal table at the first open integer index. +This field corresponds to that first open integer index.

+

_limit: integer?

+

If set, the execution limit, rounded to the nearest millisecond.

+

_time: integer

+

The length of successive time luau code has been executed, including recursive calls to DM and back into luau, rounded to the nearest millisecond.

+

dm

+

The dm module includes fields and functions for basic interaction with DM.

+

world: userdata

+

A static reference to the DM world.

+

global_vars: userdata

+

A static reference that functions like the DM keyword global. This can be indexed to read/write global vars.

+

global_procs: table

+

A table that can be indexed by string for functions that wrap global procs.

+

Due to BYOND limitations, attempting to index an invalid proc returns a function logically equivalent to a no-op.

+

get_var(object: userdata, var: string): function

+

Reads the var var on object. This function can be used to get vars that are shadowed by procs declared with the same name.

+

new(path: string, ...any): userdata

+

Creates an instance of the object specified by path, with ... as its arguments. +If the "new" wrapper is set, that proc will be called instead, with the arguments (path, {...}).

+

is_valid_ref(ref: any): boolean

+

Returns true if the value passed in corresponds to a valid reference-counted DM object.

+

usr: userdata?

+

Corresponds to the DM var usr.

+

list

+

The list module contains wrappers for the builtin list procs, along with several other utility functions for working with lists.

+

add(list: userdata, ...any): ()

+

Logically equivalent to the DM statement list.Add(...).

+

copy(list: userdata, start?: integer, end?: integer): userdata

+

Logically equivalent to the DM statement list.Copy(start, end).

+

cut(list: userdata, start?: integer, end?: integer): userdata

+

Logically equivalent to the DM statement list.Cut(start, end).

+

find(list: userdata, item: any, start?: integer, end?: integer): integer

+

Logically equivalent to the DM statement list.Find(item, start, end).

+

insert(list: userdata, index: integer, ...any): integer

+

Logically equivalent to the DM statement list.Insert(item, ...).

+

join(list: userdata, glue: string, start?: integer, end?: integer): string

+

Logically equivalent to the statement list.Join(glue, start, end).

+

remove(list: userdata, ...any): integer

+

Logically equivalent to the DM statement list.Remove(...).

+

remove_all(list: userdata, ...any): integer

+

Logically equivalent to the DM statement list.RemoveAll(...).

+

splice(list: userdata, start?: integer, end?: integer, ...any): ()

+

Logically equivalent to the DM statement list.Splice(start, end, ...).

+

swap(list: userdata, index_1: integer, index_2: integer): ()

+

Logically equivalent to the DM statement list.Swap(index_1, index_2).

+

to_table(list: userdata, deep?: boolean): table

+

Creates a table that is a copy of list. If deep is true, to_table will be called on any lists inside that list.

+

from_table(table: table): userdata

+

Creates a list that is a copy of table. This is not strictly necessary, as tables are automatically converted to lists when passed back into DM, using the same internal logic as from_table.

+

filter(list: userdata, path: string): userdata

+

Returns a copy of list, containing only elements that are objects descended from path.

+

pointer

+

The pointer module contains utility functions for interacting with pointers. +Keep in mind that passing DM pointers into luau and manipulating them in this way can bypass wrapper procs.

+

read(pointer: userdata): any

+

Gets the underlying data the pointer references.

+

write(pointer: userdata, value: any): ()

+

Writes value to the underlying data the pointer references.

+

unwrap(possible_pointer: any): any

+

If possible_pointer is a pointer, reads it. Otherwise, it is returned as-is.

+

The SS13 package

+

The SS13 package contains various helper functions that use code specific to tgstation.

+

SS13.state

+

A reference to the state datum (/datum/lua_state) handling this Lua state.

+

SS13.get_runner_ckey()

+

The ckey of the user who ran the lua script in the current context. Can be unreliable if accessed after sleeping.

+

SS13.get_runner_client()

+

Returns the client of the user who ran the lua script in the current context. Can be unreliable if accessed after sleeping.

+

SS13.global_proc

+

A wrapper for the magic string used to tell WrapAdminProcCall to call a global proc. +For instance, /datum/callback must be instantiated with SS13.global_proc as its first argument to specify that it will be invoking a global proc. +The following example declares a callback which will execute the global proc to_chat:

+
local callback = SS13.new("/datum/callback", SS13.global_proc, "to_chat", dm.world, "Hello World")
+
+

SS13.istype(thing, type)

+

Equivalent to the DM statement istype(thing, text2path(type)).

+

SS13.new(type, ...)

+

An alias for dm.new

+

SS13.is_valid(datum)

+

Can be used to determine if the datum passed is not nil, not undefined and not qdel'd all in one. A helper function that allows you to check the validity from only one function. +Example usage:

+
local datum = SS13.new("/datum")
+dm.global_procs.qdel(datum)
+print(SS13.is_valid(datum)) -- false
+
+local null = nil
+print(SS13.is_valid(null)) -- false
+
+local datum = SS13.new("/datum")
+print(SS13.is_valid(datum)) -- true
+
+

SS13.type(string)

+

Converts a string into a typepath. Equivalent to doing dm.global_proc("_text2path", "/path/to/type")

+

SS13.qdel(datum)

+

Deletes a datum. You shouldn't try to reference it after calling this function. Equivalent to doing dm.global_proc("qdel", datum)

+

SS13.await(thing_to_call, proc_to_call, ...)

+

Calls proc_to_call on thing_to_call, with ... as its arguments, and sleeps until that proc returns. +Returns two return values - the first is the return value of the proc, and the second is the message of any runtime exception thrown by the called proc. +The following example calls and awaits the return of poll_ghost_candidates:

+
local ghosts, runtime = SS13.await(SS13.global_proc, "poll_ghost_candidates", "Would you like to be considered for something?")
+
+

SS13.wait(time, timer)

+

Waits for a number of seconds specified with the time argument. You can optionally specify a timer subsystem using the timer argument.

+

Internally, this function creates a timer that will resume the current task after time seconds, then yields the current task by calling coroutine.yield with no arguments and ignores the return values. If the task is prematurely resumed, the timer will be safely deleted.

+

SS13.register_signal(datum, signal, func)

+

Registers the Lua function func as a handler for signal on datum.

+

Like with signal handlers written in DM, Lua signal handlers should not sleep (either by calling sleep or coroutine.yield).

+

This function returns whether the signal registration was successful.

+

The following example defines a function which will register a signal that makes target make a honking sound any time it moves:

+
function honk(target)
+	SS13.register_signal(target, "movable_moved", function(source)
+		dm.global_procs.playsound(target, "sound/items/bikehorn.ogg", 100, true)
+	end)
+end
+
+

NOTE: if func is an anonymous function declared inside the call to SS13.register_signal, it cannot be referenced in order to unregister that signal with SS13.unregister_signal

+

SS13.unregister_signal(datum, signal, func)

+

Unregister a signal previously registered using SS13.register_signal. func must be a function for which a handler for the specified signal has already been registered. If func is nil, all handlers for that signal will be unregistered.

+

SS13.set_timeout(time, func)

+

Creates a timer which will execute func after time seconds. func should not expect to be passed any arguments, as it will not be passed any. Unlike SS13.wait, SS13.set_timeout does not yield or sleep the current task, making it suitable for use in signal handlers for SS13.register_signal

+

The following example will output a message to chat after 5 seconds:

+
SS13.set_timeout(5, function()
+	dm.global_procs.to_chat(dm.world, "Hello World!")
+end)
+
+

SS13.start_loop(time, amount, func)

+

Creates a timer which will execute func after time seconds. func should not expect to be passed any arguments, as it will not be passed any. Works exactly the same as SS13.set_timeout except it will loop the timer amount times. If amount is set to -1, it will loop indefinitely. Returns a number value, which represents the timer's id. Can be stopped with SS13.end_loop +Returns a number, the timer id, which is needed to stop indefinite timers. +The following example will output a message to chat every 5 seconds, repeating 10 times:

+
SS13.start_loop(5, 10, function()
+	dm.global_procs.to_chat(dm.world, "Hello World!")
+end)
+
+

The following example will output a message to chat every 5 seconds, until SS13.end_loop(timerid) is called:

+
local timerid = SS13.start_loop(5, -1, function()
+	dm.global_proc.to_chat(dm.world, "Hello World!")
+end)
+
+

SS13.end_loop(id)

+

Prematurely ends a loop that hasn't ended yet, created with SS13.start_loop. Silently fails if there is no started loop with the specified id. +The following example will output a message to chat every 5 seconds and delete it after it has repeated 20 times:

+
local repeated_amount = 0
+-- timerid won't be in the looping function's scope if declared before the function is declared.
+local timerid
+timerid = SS13.start_loop(5, -1, function()
+	dm.global_procs.to_chat(dm.world, "Hello World!")
+	repeated_amount += 1
+	if repeated_amount >= 20 then
+		SS13.end_loop(timerid)
+	end
+end)
+
+

SS13.stop_all_loops()

+

Stops all current running loops that haven't ended yet. +Useful in case you accidentally left a indefinite loop running without storing the id anywhere.

\ No newline at end of file diff --git a/code/modules/admin/verbs/lua/_hooks.html b/code/modules/admin/verbs/lua/_hooks.html new file mode 100644 index 0000000000000..84dbf68abdcdc --- /dev/null +++ b/code/modules/admin/verbs/lua/_hooks.html @@ -0,0 +1,5 @@ +code/modules/admin/verbs/lua/_hooks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/lua/_hooks.dm

/proc/__lua_set_set_var_wrapperSets a global proc to call in place of just outright setting a datum's var to a given value
/proc/__lua_set_datum_proc_call_wrapperSets a global proc to call in place of just outright calling a given proc on a datum
/proc/__lua_set_global_proc_call_wrapperSets a global proc to call in place of just outright calling a given global proc
/proc/__lua_set_print_wrapperSets a global proc as a wrapper for lua's print function
/proc/__lua_set_execution_limitSets the maximum amount of time a lua chunk or function can execute without sleeping or yielding. +Chunks/functions that exceed this duration will produce an error.
/proc/__lua_new_stateCreates a new lua state.
/proc/__lua_loadLoads a chunk of lua source code and executes it
/proc/__lua_callCalls a lua function
/proc/__lua_awakenDequeues the task at the front of the sleep queue and resumes it
/proc/__lua_resumeRemoves the task at the specified index from the yield table +and resumes it
/proc/__lua_get_globalsGet the variables within a state's environment. +Values not convertible to DM values are substituted +for their types as text
/proc/__lua_get_tasksGet a list of all tasks currently in progress within a state
/proc/__lua_kill_taskKills a task in progress
\ No newline at end of file diff --git a/code/modules/admin/verbs/lua/helpers.html b/code/modules/admin/verbs/lua/helpers.html new file mode 100644 index 0000000000000..dadc52bcc0b0a --- /dev/null +++ b/code/modules/admin/verbs/lua/helpers.html @@ -0,0 +1,4 @@ +code/modules/admin/verbs/lua/helpers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/lua/helpers.dm

/datum/promiseByondapi hooks act as "set waitfor = 0" procs. This means that whenever +a proc directly called from an external library sleeps, the hook returns with whatever +the called proc had as its return value at the moment it slept. This may not +be desired behavior, so this datum exists to wrap these procs.
\ No newline at end of file diff --git a/code/modules/admin/verbs/map_export.html b/code/modules/admin/verbs/map_export.html new file mode 100644 index 0000000000000..88323b624f108 --- /dev/null +++ b/code/modules/admin/verbs/map_export.html @@ -0,0 +1,2 @@ +code/modules/admin/verbs/map_export.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/map_export.dm

/proc/send_exported_mapA procedure for saving DMM text to a file and then sending it to the user. +Arguments:
/proc/tgm_encodeTakes a constant, encodes it into a TGM valid string
/proc/write_mapProcedure for converting a coordinate-selected part of the map into text for the .dmi format
/proc/calculate_tgm_header_indexGenerates a key matching our index
\ No newline at end of file diff --git a/code/modules/admin/verbs/mapping.html b/code/modules/admin/verbs/mapping.html new file mode 100644 index 0000000000000..5c66730777c84 --- /dev/null +++ b/code/modules/admin/verbs/mapping.html @@ -0,0 +1 @@ +code/modules/admin/verbs/mapping.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/mapping.dm

/proc/gather_z_level_informationReturns all necessary z-level information. Argument append_grid allows the user to see a table showing all of the z-level linkages, which is only visible and useful in-game.
\ No newline at end of file diff --git a/code/modules/admin/verbs/plane_debugger.html b/code/modules/admin/verbs/plane_debugger.html new file mode 100644 index 0000000000000..858945846f9fb --- /dev/null +++ b/code/modules/admin/verbs/plane_debugger.html @@ -0,0 +1 @@ +code/modules/admin/verbs/plane_debugger.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/plane_debugger.dm

/datum/plane_master_debugUsed for testing/debugger plane masters and their associated rendering plates
\ No newline at end of file diff --git a/code/modules/admin/verbs/player_ticket_history.html b/code/modules/admin/verbs/player_ticket_history.html new file mode 100644 index 0000000000000..226e1ac310066 --- /dev/null +++ b/code/modules/admin/verbs/player_ticket_history.html @@ -0,0 +1 @@ +code/modules/admin/verbs/player_ticket_history.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/player_ticket_history.dm

/datum/ticket_historyHolds information about a ticket
\ No newline at end of file diff --git a/code/modules/admin/verbs/playsound.html b/code/modules/admin/verbs/playsound.html new file mode 100644 index 0000000000000..4d62231d8f2ba --- /dev/null +++ b/code/modules/admin/verbs/playsound.html @@ -0,0 +1 @@ +code/modules/admin/verbs/playsound.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/playsound.dm

/proc/web_soundTakes an input from either proc/play_web_sound or the request manager and runs it through yt-dlp and prompts the user before playing it to the server.
\ No newline at end of file diff --git a/code/modules/admin/verbs/pray.html b/code/modules/admin/verbs/pray.html new file mode 100644 index 0000000000000..4db688c811048 --- /dev/null +++ b/code/modules/admin/verbs/pray.html @@ -0,0 +1 @@ +code/modules/admin/verbs/pray.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/pray.dm

/proc/message_centcomUsed by communications consoles to message CentCom
/proc/message_syndicateUsed by communications consoles to message the Syndicate
/proc/nuke_requestUsed by communications consoles to request the nuclear launch codes
\ No newline at end of file diff --git a/code/modules/admin/verbs/secrets.html b/code/modules/admin/verbs/secrets.html new file mode 100644 index 0000000000000..cf58149b73e88 --- /dev/null +++ b/code/modules/admin/verbs/secrets.html @@ -0,0 +1,2 @@ +code/modules/admin/verbs/secrets.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/verbs/secrets.dm

/proc/doPortalSpawnSpawns a portal storm that spawns in sentient/non sentient mobs +portal_appearance is a list in the form (turf's plane offset + 1) -> appearance to use
\ No newline at end of file diff --git a/code/modules/admin/view_variables/debug_variables.html b/code/modules/admin/view_variables/debug_variables.html new file mode 100644 index 0000000000000..2f6d1b2a85a98 --- /dev/null +++ b/code/modules/admin/view_variables/debug_variables.html @@ -0,0 +1 @@ +code/modules/admin/view_variables/debug_variables.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/view_variables/debug_variables.dm

/proc/debug_variableGet displayed variable in VV variable list
\ No newline at end of file diff --git a/code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.html b/code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.html new file mode 100644 index 0000000000000..c26e2a5cf3049 --- /dev/null +++ b/code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.html @@ -0,0 +1 @@ +code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.dm

/datum/nobody_wants_to_learn_matrix_math
\ No newline at end of file diff --git a/code/modules/admin/view_variables/view_variables.html b/code/modules/admin/view_variables/view_variables.html new file mode 100644 index 0000000000000..29ff9894456b3 --- /dev/null +++ b/code/modules/admin/view_variables/view_variables.html @@ -0,0 +1 @@ +code/modules/admin/view_variables/view_variables.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/admin/view_variables/view_variables.dm

ICON_STATE_CHECKEDthis dmi is checked. We don't check this one anymore.
ICON_STATE_NULLthis dmi has null-named icon_state, allowing it to show a sprite on vv editor.

Define Details

ICON_STATE_CHECKED

this dmi is checked. We don't check this one anymore.

ICON_STATE_NULL

this dmi has null-named icon_state, allowing it to show a sprite on vv editor.

\ No newline at end of file diff --git a/code/modules/antagonists/_common/antag_datum.html b/code/modules/antagonists/_common/antag_datum.html new file mode 100644 index 0000000000000..cc215cf54eafe --- /dev/null +++ b/code/modules/antagonists/_common/antag_datum.html @@ -0,0 +1 @@ +code/modules/antagonists/_common/antag_datum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/_common/antag_datum.dm

CUSTOM_OBJECTIVE_MAX_LENGTHMax length of custom objective text

Define Details

CUSTOM_OBJECTIVE_MAX_LENGTH

Max length of custom objective text

\ No newline at end of file diff --git a/code/modules/antagonists/_common/antag_helpers.html b/code/modules/antagonists/_common/antag_helpers.html new file mode 100644 index 0000000000000..4231b56d72ad9 --- /dev/null +++ b/code/modules/antagonists/_common/antag_helpers.html @@ -0,0 +1,2 @@ +code/modules/antagonists/_common/antag_helpers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/_common/antag_helpers.dm

/proc/get_antag_mindsReturns MINDS of the assigned antags of given type/subtypes +Supplying no antag type grants all minds with antag datums
/proc/get_most_experiencedFrom a list of players (minds, mobs or clients), finds the one with the highest playtime (either from a specific role or overall living) and returns it.
\ No newline at end of file diff --git a/code/modules/antagonists/_common/antag_hud.html b/code/modules/antagonists/_common/antag_hud.html new file mode 100644 index 0000000000000..00e335c5c902b --- /dev/null +++ b/code/modules/antagonists/_common/antag_hud.html @@ -0,0 +1 @@ +code/modules/antagonists/_common/antag_hud.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/_common/antag_hud.dm

/datum/atom_hud/alternate_appearance/basic/has_antagonistAn alternate appearance that will only show if you have the antag datum
/datum/atom_hud/alternate_appearance/basic/antagonist_hudAn alternate appearance that will show all the antagonists this mob has
\ No newline at end of file diff --git a/code/modules/antagonists/_common/antag_spawner.html b/code/modules/antagonists/_common/antag_spawner.html new file mode 100644 index 0000000000000..f436be764988e --- /dev/null +++ b/code/modules/antagonists/_common/antag_spawner.html @@ -0,0 +1,2 @@ +code/modules/antagonists/_common/antag_spawner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/_common/antag_spawner.dm

/obj/item/antag_spawner/contractWIZARD
/obj/item/antag_spawner/nuke_opsBORGS AND OPERATIVES +Device to request reinforcments from ghost pop
/obj/item/antag_spawner/nuke_ops/clownCLOWN OP
/obj/item/antag_spawner/nuke_ops/borg_teleSYNDICATE BORG
/obj/item/antag_spawner/slaughter_demonSLAUGHTER DEMON
/obj/item/antag_spawner/loadoutA subtype meant for 'normal' antag spawner items so as to reduce the amount of required hardcoding.
\ No newline at end of file diff --git a/code/modules/antagonists/abductor/abductee/abductee.html b/code/modules/antagonists/abductor/abductee/abductee.html new file mode 100644 index 0000000000000..2a7fec11cc53d --- /dev/null +++ b/code/modules/antagonists/abductor/abductee/abductee.html @@ -0,0 +1 @@ +code/modules/antagonists/abductor/abductee/abductee.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/abductor/abductee/abductee.dm

/datum/antagonist/abductee
\ No newline at end of file diff --git a/code/modules/antagonists/blob/blob_antag.html b/code/modules/antagonists/blob/blob_antag.html new file mode 100644 index 0000000000000..c671c2bdb27b7 --- /dev/null +++ b/code/modules/antagonists/blob/blob_antag.html @@ -0,0 +1 @@ +code/modules/antagonists/blob/blob_antag.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/blob/blob_antag.dm

/datum/antagonist/blob/infectionA subtype of blob meant to represent the infective version.
\ No newline at end of file diff --git a/code/modules/antagonists/changeling/changeling.html b/code/modules/antagonists/changeling/changeling.html new file mode 100644 index 0000000000000..c2503808d1adc --- /dev/null +++ b/code/modules/antagonists/changeling/changeling.html @@ -0,0 +1 @@ +code/modules/antagonists/changeling/changeling.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/changeling/changeling.dm

FORMAT_CHEM_CHARGES_TEXTHelper to format the text that gets thrown onto the chem hud element.

Define Details

FORMAT_CHEM_CHARGES_TEXT

Helper to format the text that gets thrown onto the chem hud element.

\ No newline at end of file diff --git a/code/modules/antagonists/changeling/fallen_changeling.html b/code/modules/antagonists/changeling/fallen_changeling.html new file mode 100644 index 0000000000000..48ae6105998b8 --- /dev/null +++ b/code/modules/antagonists/changeling/fallen_changeling.html @@ -0,0 +1 @@ +code/modules/antagonists/changeling/fallen_changeling.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/changeling/fallen_changeling.dm

/datum/antagonist/fallen_changelinga changeling that has lost their powers. does nothing, other than signify they suck
\ No newline at end of file diff --git a/code/modules/antagonists/changeling/headslug_eggs.html b/code/modules/antagonists/changeling/headslug_eggs.html new file mode 100644 index 0000000000000..1c4c72985bb53 --- /dev/null +++ b/code/modules/antagonists/changeling/headslug_eggs.html @@ -0,0 +1 @@ +code/modules/antagonists/changeling/headslug_eggs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/changeling/headslug_eggs.dm

/obj/item/organ/internal/body_egg/changeling_eggThe actual organ that the changeling headslug implants into a dead host.
\ No newline at end of file diff --git a/code/modules/antagonists/changeling/powers/mutations.html b/code/modules/antagonists/changeling/powers/mutations.html new file mode 100644 index 0000000000000..3c2c7d911db2e --- /dev/null +++ b/code/modules/antagonists/changeling/powers/mutations.html @@ -0,0 +1,10 @@ +code/modules/antagonists/changeling/powers/mutations.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/changeling/powers/mutations.dm

/datum/action/changeling/weapon/arm_blade*
+|ARM BLADE| +*
/datum/action/changeling/weapon/tentacle
+|COMBAT TENTACLES
| +*
*
/datum/action/changeling/weapon/shield
+|SHIELD
| +*
/datum/action/changeling/suit/armor*
+|ARMOR| +*
/obj/item/clothing/suit/armor/changelingNONE(Squash) +Clothing that does not have a digitigrade version, and thus will squash legs to fit.
\ No newline at end of file diff --git a/code/modules/antagonists/changeling/powers/transform.html b/code/modules/antagonists/changeling/powers/transform.html new file mode 100644 index 0000000000000..365b11382f9bd --- /dev/null +++ b/code/modules/antagonists/changeling/powers/transform.html @@ -0,0 +1,3 @@ +code/modules/antagonists/changeling/powers/transform.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/changeling/powers/transform.dm

/obj/item/clothing/glasses/changelingNO NEW ICON +Clothing that do not require a new icon to function correctly, think, big jackets.
/obj/item/clothing/shoes/changelingNO NEW ICON +Clothing that do not require a new icon to function correctly, think, big jackets.
\ No newline at end of file diff --git a/code/modules/antagonists/clown_ops/bananium_bomb.html b/code/modules/antagonists/clown_ops/bananium_bomb.html new file mode 100644 index 0000000000000..58f0422648181 --- /dev/null +++ b/code/modules/antagonists/clown_ops/bananium_bomb.html @@ -0,0 +1 @@ +code/modules/antagonists/clown_ops/bananium_bomb.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/clown_ops/bananium_bomb.dm

/proc/make_into_clownHelper proc that handles making someone into a clown after a bananium nuke goes off.
\ No newline at end of file diff --git a/code/modules/antagonists/clown_ops/clown_weapons.html b/code/modules/antagonists/clown_ops/clown_weapons.html new file mode 100644 index 0000000000000..1a96b46629806 --- /dev/null +++ b/code/modules/antagonists/clown_ops/clown_weapons.html @@ -0,0 +1 @@ +code/modules/antagonists/clown_ops/clown_weapons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/clown_ops/clown_weapons.dm

BANANA_SHOES_RECHARGE_RATERecharging rate in PPS (peels per second)

Define Details

BANANA_SHOES_RECHARGE_RATE

Recharging rate in PPS (peels per second)

\ No newline at end of file diff --git a/code/modules/antagonists/cult/blood_magic.html b/code/modules/antagonists/cult/blood_magic.html new file mode 100644 index 0000000000000..b892ecc1e0997 --- /dev/null +++ b/code/modules/antagonists/cult/blood_magic.html @@ -0,0 +1 @@ +code/modules/antagonists/cult/blood_magic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/cult/blood_magic.dm

USES_TO_BLOODhow many units of blood one charge of blood rites is worth
BLOOD_DRAIN_GAINblood rites charges gained from sapping blood from a victim
SELF_HEAL_PENALTYpenalty for self healing, 1 point of damage * this # = charges required

Define Details

BLOOD_DRAIN_GAIN

blood rites charges gained from sapping blood from a victim

SELF_HEAL_PENALTY

penalty for self healing, 1 point of damage * this # = charges required

USES_TO_BLOOD

how many units of blood one charge of blood rites is worth

\ No newline at end of file diff --git a/code/modules/antagonists/cult/cult_comms.html b/code/modules/antagonists/cult/cult_comms.html new file mode 100644 index 0000000000000..a04aff3d55544 --- /dev/null +++ b/code/modules/antagonists/cult/cult_comms.html @@ -0,0 +1 @@ +code/modules/antagonists/cult/cult_comms.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/cult/cult_comms.dm

/proc/start_poll_cultists_for_leaderStart the poll for Cult Leaeder.
/proc/poll_cultists_for_leaderPolls all Cultists on whether the person putting themselves forward should be made the Cult Leader, if they can actually be such.
/datum/action/innate/cult/master/pulseELDRITCH PULSE
\ No newline at end of file diff --git a/code/modules/antagonists/cult/cult_items.html b/code/modules/antagonists/cult/cult_items.html new file mode 100644 index 0000000000000..8c89a439091c1 --- /dev/null +++ b/code/modules/antagonists/cult/cult_items.html @@ -0,0 +1 @@ +code/modules/antagonists/cult/cult_items.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/cult/cult_items.dm

MAX_SHUTTLE_CURSEShow many times can the shuttle be cursed?
SHUTTLE_CURSE_OMFG_TIMESPANif the max number of shuttle curses are used within this duration, the entire cult gets an achievement

Define Details

MAX_SHUTTLE_CURSES

how many times can the shuttle be cursed?

SHUTTLE_CURSE_OMFG_TIMESPAN

if the max number of shuttle curses are used within this duration, the entire cult gets an achievement

\ No newline at end of file diff --git a/code/modules/antagonists/cult/cult_other.html b/code/modules/antagonists/cult/cult_other.html new file mode 100644 index 0000000000000..9b964ce65ca81 --- /dev/null +++ b/code/modules/antagonists/cult/cult_other.html @@ -0,0 +1 @@ +code/modules/antagonists/cult/cult_other.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/cult/cult_other.dm

/proc/is_convertable_to_cultReturns whether the given mob is convertable to the blood cult
\ No newline at end of file diff --git a/code/modules/antagonists/cult/cult_structure_altar.html b/code/modules/antagonists/cult/cult_structure_altar.html new file mode 100644 index 0000000000000..393354e17085f --- /dev/null +++ b/code/modules/antagonists/cult/cult_structure_altar.html @@ -0,0 +1 @@ +code/modules/antagonists/cult/cult_structure_altar.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/cult/cult_structure_altar.dm

ELDRITCH_WHETSTONESome defines for items the cult altar can create.

Define Details

ELDRITCH_WHETSTONE

Some defines for items the cult altar can create.

\ No newline at end of file diff --git a/code/modules/antagonists/cult/cult_structure_archives.html b/code/modules/antagonists/cult/cult_structure_archives.html new file mode 100644 index 0000000000000..5008c6a06cb6b --- /dev/null +++ b/code/modules/antagonists/cult/cult_structure_archives.html @@ -0,0 +1 @@ +code/modules/antagonists/cult/cult_structure_archives.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/cult/cult_structure_archives.dm

CULT_BLINDFOLDSome defines for items the cult archives can create.

Define Details

CULT_BLINDFOLD

Some defines for items the cult archives can create.

\ No newline at end of file diff --git a/code/modules/antagonists/cult/cult_structure_forge.html b/code/modules/antagonists/cult/cult_structure_forge.html new file mode 100644 index 0000000000000..36bcbb23d4cae --- /dev/null +++ b/code/modules/antagonists/cult/cult_structure_forge.html @@ -0,0 +1 @@ +code/modules/antagonists/cult/cult_structure_forge.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/cult/cult_structure_forge.dm

NARSIE_ARMORSome defines for items the daemon forge can create.

Define Details

NARSIE_ARMOR

Some defines for items the daemon forge can create.

\ No newline at end of file diff --git a/code/modules/antagonists/cult/runes.html b/code/modules/antagonists/cult/runes.html new file mode 100644 index 0000000000000..65c5c40ee8b72 --- /dev/null +++ b/code/modules/antagonists/cult/runes.html @@ -0,0 +1 @@ +code/modules/antagonists/cult/runes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/cult/runes.dm

/proc/generate_cult_rune_typesReturns an associated list of rune types. [rune.cultist_name] = [typepath]
/proc/started_narsie_summonWhen narsie begins to be summoned, slowly dim the saturation of parallax and starlight
/proc/failed_narsie_summonSummon failed, time to work backwards
\ No newline at end of file diff --git a/code/modules/antagonists/fugitive/hunters/hunter_gear.html b/code/modules/antagonists/fugitive/hunters/hunter_gear.html new file mode 100644 index 0000000000000..bbc9d9a69014d --- /dev/null +++ b/code/modules/antagonists/fugitive/hunters/hunter_gear.html @@ -0,0 +1 @@ +code/modules/antagonists/fugitive/hunters/hunter_gear.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/fugitive/hunters/hunter_gear.dm

/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter/psykerPsyker-friendly shuttle gear!
/obj/item/reagent_containers/hypospray/medipen/gorePsyker gear
/obj/machinery/fugitive_locatorLocates a random, living fugitive and reports their name/location on a 40 second cooldown.
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/heretic_antag.html b/code/modules/antagonists/heretic/heretic_antag.html new file mode 100644 index 0000000000000..84fe7b117a759 --- /dev/null +++ b/code/modules/antagonists/heretic/heretic_antag.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/heretic_antag.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/heretic_antag.dm

/datum/antagonist/hereticThe heretic antagonist itself.
/datum/objective/minor_sacrificeHeretic's minor sacrifice objective. "Minor sacrifices" includes anyone.
/datum/objective/major_sacrificeHeretic's major sacrifice objective. "Major sacrifices" are heads of staff.
/datum/objective/heretic_researchHeretic's research objective. "Research" is heretic knowledge nodes (You start with some).
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/heretic_focus.html b/code/modules/antagonists/heretic/heretic_focus.html new file mode 100644 index 0000000000000..78650c17eb701 --- /dev/null +++ b/code/modules/antagonists/heretic/heretic_focus.html @@ -0,0 +1,2 @@ +code/modules/antagonists/heretic/heretic_focus.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/heretic_focus.dm

/datum/element/heretic_focusHeretic focus element, simple element for making an item a heretic focus, +allowing heretics to cast advanced spells (examine message included).
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/heretic_knowledge.html b/code/modules/antagonists/heretic/heretic_knowledge.html new file mode 100644 index 0000000000000..62860985392e5 --- /dev/null +++ b/code/modules/antagonists/heretic/heretic_knowledge.html @@ -0,0 +1,6 @@ +code/modules/antagonists/heretic/heretic_knowledge.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/heretic/heretic_knowledge.dm

/datum/heretic_knowledgeThe datums that allow heretics to progress and learn new spells and rituals.
/datum/heretic_knowledge/spellA knowledge subtype that grants the heretic a certain spell.
/datum/heretic_knowledge/limited_amountA knowledge subtype for knowledge that can only +have a limited amount of its resulting atoms +created at once.
/datum/heretic_knowledge/limited_amount/startingA knowledge subtype for limited_amount knowledge +used for base knowledge (the ones that make blades)
/datum/heretic_knowledge/markA knowledge subtype for heretic knowledge +that applies a mark on use.
/datum/heretic_knowledge/blade_upgradeA knowledge subtype for heretic knowledge that +upgrades their sickly blade, either on melee or range.
/datum/heretic_knowledge/curseA knowledge subtype lets the heretic curse someone with a ritual.
/datum/heretic_knowledge/summonA knowledge subtype lets the heretic summon a monster with the ritual.
KNOWLEDGE_RITUAL_POINTSThe amount of knowledge points the knowledge ritual gives on success.
/datum/heretic_knowledge/knowledge_ritualA subtype of knowledge that generates random ritual components.
/datum/heretic_knowledge/ultimateThe special final tier of knowledges that unlocks ASCENSION.

Define Details

KNOWLEDGE_RITUAL_POINTS

The amount of knowledge points the knowledge ritual gives on success.

\ No newline at end of file diff --git a/code/modules/antagonists/heretic/heretic_living_heart.html b/code/modules/antagonists/heretic/heretic_living_heart.html new file mode 100644 index 0000000000000..a18fca809e33c --- /dev/null +++ b/code/modules/antagonists/heretic/heretic_living_heart.html @@ -0,0 +1,3 @@ +code/modules/antagonists/heretic/heretic_living_heart.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/heretic_living_heart.dm

/datum/component/living_heartApplied to a heart to turn it into a heretic's 'living heart'. +The living heart is what they use to track people they need to sacrifice.
/datum/action/cooldown/track_targetThe action associated with the living heart. +Allows a heretic to track sacrifice targets.
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/heretic_monsters.html b/code/modules/antagonists/heretic/heretic_monsters.html new file mode 100644 index 0000000000000..051798307ef34 --- /dev/null +++ b/code/modules/antagonists/heretic/heretic_monsters.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/heretic_monsters.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/heretic_monsters.dm

/datum/antagonist/heretic_monsterTracking reasons
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/influences.html b/code/modules/antagonists/heretic/influences.html new file mode 100644 index 0000000000000..9942cdaed1954 --- /dev/null +++ b/code/modules/antagonists/heretic/influences.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/influences.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/heretic/influences.dm

NUM_INFLUENCES_PER_HERETICThe number of influences spawned per heretic
/datum/reality_smash_tracker#Reality smash tracker
/datum/atom_hud/alternate_appearance/basic/has_antagonist/hereticHud used for heretics to see influences

Define Details

NUM_INFLUENCES_PER_HERETIC

The number of influences spawned per heretic

\ No newline at end of file diff --git a/code/modules/antagonists/heretic/items/corrupted_organs.html b/code/modules/antagonists/heretic/items/corrupted_organs.html new file mode 100644 index 0000000000000..8b51371ff9a9c --- /dev/null +++ b/code/modules/antagonists/heretic/items/corrupted_organs.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/items/corrupted_organs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/items/corrupted_organs.dm

/obj/item/organ/internal/eyes/corruptRenders you unable to see people who were heretics at the time that this organ is gained
/obj/item/organ/internal/tongue/corruptSometimes speak in incomprehensible tongues
/obj/item/organ/internal/liver/corruptRandomly secretes alcohol or hallucinogens when you're drinking something
/obj/item/organ/internal/stomach/corruptRapidly become hungry if you are not digesting blood
/obj/item/organ/internal/heart/corruptOccasionally bombards you with spooky hands and lets everyone hear your pulse.
/obj/item/organ/internal/lungs/corruptSometimes cough out some kind of dangerous gas
/obj/item/organ/internal/appendix/corruptIt's full of worms
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/items/hunter_rifle.html b/code/modules/antagonists/heretic/items/hunter_rifle.html new file mode 100644 index 0000000000000..43f73d56befe7 --- /dev/null +++ b/code/modules/antagonists/heretic/items/hunter_rifle.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/items/hunter_rifle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/heretic/items/hunter_rifle.dm

MAX_LIONHUNTER_RANGEThe max range we can zoom in on people from.

Define Details

MAX_LIONHUNTER_RANGE

The max range we can zoom in on people from.

\ No newline at end of file diff --git a/code/modules/antagonists/heretic/items/keyring.html b/code/modules/antagonists/heretic/items/keyring.html new file mode 100644 index 0000000000000..79a6f34aa155e --- /dev/null +++ b/code/modules/antagonists/heretic/items/keyring.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/items/keyring.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/items/keyring.dm

/obj/item/card/id/advanced/hereticAn ID card capable of shapeshifting to other IDs given by the Key Keepers Burden knowledge
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/items/labyrinth_handbook.html b/code/modules/antagonists/heretic/items/labyrinth_handbook.html new file mode 100644 index 0000000000000..771fd8acad47b --- /dev/null +++ b/code/modules/antagonists/heretic/items/labyrinth_handbook.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/items/labyrinth_handbook.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/items/labyrinth_handbook.dm

/obj/item/heretic_labyrinth_handbookA heretic item that spawns a barrier at the clicked turf, 3 uses
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/knowledge/ash_lore.html b/code/modules/antagonists/heretic/knowledge/ash_lore.html new file mode 100644 index 0000000000000..5c97c605cfc8e --- /dev/null +++ b/code/modules/antagonists/heretic/knowledge/ash_lore.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/knowledge/ash_lore.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/knowledge/ash_lore.dm

/datum/heretic_knowledge/limited_amount/starting/base_ashGoes as follows:
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/knowledge/blade_lore.html b/code/modules/antagonists/heretic/knowledge/blade_lore.html new file mode 100644 index 0000000000000..671debfb37d03 --- /dev/null +++ b/code/modules/antagonists/heretic/knowledge/blade_lore.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/knowledge/blade_lore.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/heretic/knowledge/blade_lore.dm

/datum/heretic_knowledge/limited_amount/starting/base_bladeGoes as follows:
BLADE_DANCE_COOLDOWNThe cooldown duration between trigers of blade dance
BLOOD_FLOW_PER_SEVEIRTYThe amount of blood flow reduced per level of severity of gained bleeding wounds for Stance of the Torn Champion.

Define Details

BLADE_DANCE_COOLDOWN

The cooldown duration between trigers of blade dance

BLOOD_FLOW_PER_SEVEIRTY

The amount of blood flow reduced per level of severity of gained bleeding wounds for Stance of the Torn Champion.

\ No newline at end of file diff --git a/code/modules/antagonists/heretic/knowledge/cosmic_lore.html b/code/modules/antagonists/heretic/knowledge/cosmic_lore.html new file mode 100644 index 0000000000000..e0f1ed4d661c4 --- /dev/null +++ b/code/modules/antagonists/heretic/knowledge/cosmic_lore.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/knowledge/cosmic_lore.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/knowledge/cosmic_lore.dm

/datum/heretic_knowledge/limited_amount/starting/base_cosmicGoes as follows:
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/knowledge/flesh_lore.html b/code/modules/antagonists/heretic/knowledge/flesh_lore.html new file mode 100644 index 0000000000000..0ae8289614bf5 --- /dev/null +++ b/code/modules/antagonists/heretic/knowledge/flesh_lore.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/knowledge/flesh_lore.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/heretic/knowledge/flesh_lore.dm

GHOUL_MAX_HEALTHThe max amount of health a ghoul has.
MUTE_MAX_HEALTHThe max amount of health a voiceless dead has.
/datum/heretic_knowledge/limited_amount/starting/base_fleshGoes as follows:

Define Details

GHOUL_MAX_HEALTH

The max amount of health a ghoul has.

MUTE_MAX_HEALTH

The max amount of health a voiceless dead has.

\ No newline at end of file diff --git a/code/modules/antagonists/heretic/knowledge/lock_lore.html b/code/modules/antagonists/heretic/knowledge/lock_lore.html new file mode 100644 index 0000000000000..61d1a26ae5024 --- /dev/null +++ b/code/modules/antagonists/heretic/knowledge/lock_lore.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/knowledge/lock_lore.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/knowledge/lock_lore.dm

/datum/heretic_knowledge/limited_amount/starting/base_knockGoes as follows:
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/knowledge/moon_lore.html b/code/modules/antagonists/heretic/knowledge/moon_lore.html new file mode 100644 index 0000000000000..8c3109261cf2f --- /dev/null +++ b/code/modules/antagonists/heretic/knowledge/moon_lore.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/knowledge/moon_lore.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/knowledge/moon_lore.dm

/datum/heretic_knowledge/limited_amount/starting/base_moonGoes as follows:
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/knowledge/rust_lore.html b/code/modules/antagonists/heretic/knowledge/rust_lore.html new file mode 100644 index 0000000000000..dbc16b82c37dc --- /dev/null +++ b/code/modules/antagonists/heretic/knowledge/rust_lore.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/knowledge/rust_lore.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/knowledge/rust_lore.dm

/datum/heretic_knowledge/limited_amount/starting/base_rustGoes as follows:
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_buff.html b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_buff.html new file mode 100644 index 0000000000000..0986ccec32877 --- /dev/null +++ b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_buff.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_buff.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_buff.dm

/atom/movable/screen/alert/status_effect/unholy_determinationScreen alert for the below status effect.
/datum/status_effect/unholy_determinationThe buff given to people within the shadow realm to assist them in surviving.
/proc/fire_curse_handTorment the target with a frightening hand
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_curse.html b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_curse.html new file mode 100644 index 0000000000000..dadefc495f164 --- /dev/null +++ b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_curse.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_curse.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_curse.dm

/datum/status_effect/heretic_curseA curse given to people to disencourage them from retaliating against someone who sacrificed them
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_knowledge.html b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_knowledge.html new file mode 100644 index 0000000000000..192e5078cfd66 --- /dev/null +++ b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_knowledge.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_knowledge.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_knowledge.dm

SACRIFICE_SLEEP_DURATIONHow long we put the target so sleep for (during sacrifice).
SACRIFICE_REALM_DURATIONHow long sacrifices must stay in the shadow realm to survive.
/datum/heretic_knowledge/hunt_and_sacrificeAllows the heretic to sacrifice living heart targets.

Define Details

SACRIFICE_REALM_DURATION

How long sacrifices must stay in the shadow realm to survive.

SACRIFICE_SLEEP_DURATION

How long we put the target so sleep for (during sacrifice).

\ No newline at end of file diff --git a/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_map.html b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_map.html new file mode 100644 index 0000000000000..7aa70e0d9ba56 --- /dev/null +++ b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_map.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_map.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_map.dm

/obj/effect/landmark/hereticLardmarks meant to designate where heretic sacrifices are sent.
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/knowledge/side_void_blade.html b/code/modules/antagonists/heretic/knowledge/side_void_blade.html new file mode 100644 index 0000000000000..4237392f3963a --- /dev/null +++ b/code/modules/antagonists/heretic/knowledge/side_void_blade.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/knowledge/side_void_blade.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/heretic/knowledge/side_void_blade.dm

RISEN_MAX_HEALTHThe max health given to Shattered Risen
/obj/item/mutant_hand/shattered_risenThe "hand" "weapon" used by shattered risen

Define Details

RISEN_MAX_HEALTH

The max health given to Shattered Risen

\ No newline at end of file diff --git a/code/modules/antagonists/heretic/knowledge/starting_lore.html b/code/modules/antagonists/heretic/knowledge/starting_lore.html new file mode 100644 index 0000000000000..a25b59a7b9711 --- /dev/null +++ b/code/modules/antagonists/heretic/knowledge/starting_lore.html @@ -0,0 +1,7 @@ +code/modules/antagonists/heretic/knowledge/starting_lore.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/knowledge/starting_lore.dm

/proc/initialize_starting_knowledgeReturns a list of all heretic knowledge TYPEPATHS +that have route set to PATH_START.
/datum/heretic_knowledge/living_heartThe Living Heart heretic knowledge.
/datum/heretic_knowledge/amber_focusAllows the heretic to craft a spell focus. +They require a focus to cast advanced spells.
/datum/heretic_knowledge/codex_cicatrixCodex Cicatrixi is available at the start: +This allows heretics to choose if they want to rush all the influences and take them stealthily, or +Construct a codex and take what's left with more points. +Another downside to having the book is strip searches, which means that it's not just a free nab, at least until you get exposed - and when you do, you'll probably need the faster drawing speed. +Overall, it's a tradeoff between speed and stealth or power.
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/knowledge/void_lore.html b/code/modules/antagonists/heretic/knowledge/void_lore.html new file mode 100644 index 0000000000000..da04ce6c3a98c --- /dev/null +++ b/code/modules/antagonists/heretic/knowledge/void_lore.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/knowledge/void_lore.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/knowledge/void_lore.dm

/datum/heretic_knowledge/limited_amount/starting/base_voidGoes as follows:
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/magic/ash_ascension.html b/code/modules/antagonists/heretic/magic/ash_ascension.html new file mode 100644 index 0000000000000..b7d8b51b38353 --- /dev/null +++ b/code/modules/antagonists/heretic/magic/ash_ascension.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/magic/ash_ascension.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/magic/ash_ascension.dm

/datum/action/cooldown/spell/fire_swornCreates a constant Ring of Fire around the caster for a set duration of time, which follows them.
/datum/status_effect/fire_ringSimple status effect for adding a ring of fire around a mob.
/datum/action/cooldown/spell/fire_cascadeCreates one, large, expanding ring of fire around the caster, which does not follow them.
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/magic/cosmic_runes.html b/code/modules/antagonists/heretic/magic/cosmic_runes.html new file mode 100644 index 0000000000000..5d5b6c590b43a --- /dev/null +++ b/code/modules/antagonists/heretic/magic/cosmic_runes.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/magic/cosmic_runes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/magic/cosmic_runes.dm

/obj/effect/cosmic_runeA rune that allows you to teleport to the location of a linked rune.
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/magic/fire_blast.html b/code/modules/antagonists/heretic/magic/fire_blast.html new file mode 100644 index 0000000000000..e901b4830e3de --- /dev/null +++ b/code/modules/antagonists/heretic/magic/fire_blast.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/magic/fire_blast.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/magic/fire_blast.dm

/datum/status_effect/fire_blastedStatus effect applied when someone's hit by the fire blast.
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/magic/shadow_cloak.html b/code/modules/antagonists/heretic/magic/shadow_cloak.html new file mode 100644 index 0000000000000..4e4235fcd2850 --- /dev/null +++ b/code/modules/antagonists/heretic/magic/shadow_cloak.html @@ -0,0 +1,2 @@ +code/modules/antagonists/heretic/magic/shadow_cloak.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/magic/shadow_cloak.dm

/datum/status_effect/shadow_cloakShadow cloak effect. Conceals the owner in a cloud of purple smoke, making them unidentifiable. +Also comes with some other buffs and debuffs - faster movespeed, slower actionspeed, etc.
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/magic/space_crawl.html b/code/modules/antagonists/heretic/magic/space_crawl.html new file mode 100644 index 0000000000000..e5662ec7ed673 --- /dev/null +++ b/code/modules/antagonists/heretic/magic/space_crawl.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/magic/space_crawl.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/magic/space_crawl.dm

/datum/action/cooldown/spell/jaunt/space_crawl
/obj/item/space_crawlSpacecrawl "hands", prevent the user from holding items in spacecrawl
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/soultrapped_heretic.html b/code/modules/antagonists/heretic/soultrapped_heretic.html new file mode 100644 index 0000000000000..9f51a219ddde5 --- /dev/null +++ b/code/modules/antagonists/heretic/soultrapped_heretic.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/soultrapped_heretic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/soultrapped_heretic.dm

/datum/antagonist/soultrapped_heretica heretic that got soultrapped by cultists. does nothing, other than signify they suck
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/status_effects/buffs.html b/code/modules/antagonists/heretic/status_effects/buffs.html new file mode 100644 index 0000000000000..7a950c36ff668 --- /dev/null +++ b/code/modules/antagonists/heretic/status_effects/buffs.html @@ -0,0 +1,3 @@ +code/modules/antagonists/heretic/status_effects/buffs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/status_effects/buffs.dm

/datum/status_effect/protective_bladesSummons multiple foating knives around the owner. +Each knife will block an attack straight up.
/datum/status_effect/protective_blades/rechargingA subtype that doesn't self-delete / disappear when all blades are gone +It instead regenerates over time back to the max after blades are consumed
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/status_effects/debuffs.html b/code/modules/antagonists/heretic/status_effects/debuffs.html new file mode 100644 index 0000000000000..2155be50afab7 --- /dev/null +++ b/code/modules/antagonists/heretic/status_effects/debuffs.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/status_effects/debuffs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/status_effects/debuffs.dm

/datum/status_effect/moon_convertedUsed by moon heretics to make people mad
\ No newline at end of file diff --git a/code/modules/antagonists/heretic/status_effects/void_chill.html b/code/modules/antagonists/heretic/status_effects/void_chill.html new file mode 100644 index 0000000000000..07531c365cb65 --- /dev/null +++ b/code/modules/antagonists/heretic/status_effects/void_chill.html @@ -0,0 +1,2 @@ +code/modules/antagonists/heretic/status_effects/void_chill.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/status_effects/void_chill.dm

Contains the "Void Chill" status effect. Harmful debuff which freezes and slows down non-heretics +Cannot affect silicons (How are you gonna freeze a robot?)

\ No newline at end of file diff --git a/code/modules/antagonists/heretic/transmutation_rune.html b/code/modules/antagonists/heretic/transmutation_rune.html new file mode 100644 index 0000000000000..3aae1c4765d72 --- /dev/null +++ b/code/modules/antagonists/heretic/transmutation_rune.html @@ -0,0 +1 @@ +code/modules/antagonists/heretic/transmutation_rune.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/heretic/transmutation_rune.dm

/obj/effect/heretic_runeThe heretic's rune, which they use to complete transmutation rituals.
/obj/effect/heretic_rune/bigA 3x3 heretic rune. The kind heretics actually draw in game.
\ No newline at end of file diff --git a/code/modules/antagonists/hypnotized/hypnotized.html b/code/modules/antagonists/hypnotized/hypnotized.html new file mode 100644 index 0000000000000..fd805f5362f72 --- /dev/null +++ b/code/modules/antagonists/hypnotized/hypnotized.html @@ -0,0 +1 @@ +code/modules/antagonists/hypnotized/hypnotized.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/hypnotized/hypnotized.dm

/datum/antagonist/hypnotizedAntag datum associated with the hypnosis brain trauma, used for displaying objectives and antag hud
\ No newline at end of file diff --git a/code/modules/antagonists/malf_ai/malf_ai.html b/code/modules/antagonists/malf_ai/malf_ai.html new file mode 100644 index 0000000000000..05b71711f5b3f --- /dev/null +++ b/code/modules/antagonists/malf_ai/malf_ai.html @@ -0,0 +1 @@ +code/modules/antagonists/malf_ai/malf_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/malf_ai/malf_ai.dm

PROB_SPECIALChance the malf AI gets a single special objective that isn't assassinate.

Define Details

PROB_SPECIAL

Chance the malf AI gets a single special objective that isn't assassinate.

\ No newline at end of file diff --git a/code/modules/antagonists/malf_ai/malf_ai_module_picker.html b/code/modules/antagonists/malf_ai/malf_ai_module_picker.html new file mode 100644 index 0000000000000..826f0944dc596 --- /dev/null +++ b/code/modules/antagonists/malf_ai/malf_ai_module_picker.html @@ -0,0 +1 @@ +code/modules/antagonists/malf_ai/malf_ai_module_picker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/malf_ai/malf_ai_module_picker.dm

/datum/module_pickerThe datum and interface for the malf unlock menu, which lets them choose actions to unlock.
\ No newline at end of file diff --git a/code/modules/antagonists/malf_ai/malf_ai_modules.html b/code/modules/antagonists/malf_ai/malf_ai_modules.html new file mode 100644 index 0000000000000..b7689d86ddde3 --- /dev/null +++ b/code/modules/antagonists/malf_ai/malf_ai_modules.html @@ -0,0 +1 @@ +code/modules/antagonists/malf_ai/malf_ai_modules.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/malf_ai/malf_ai_modules.dm

/datum/action/innate/aiThe malf AI action subtype. All malf actions are subtypes of this.
/datum/action/innate/ai/rangedFramework for ranged abilities that can have different effects by left-clicking stuff.
/datum/ai_moduleThe base module type, which holds info about each ability.
/datum/ai_module/malf/destructiveModules causing destruction
/datum/ai_module/malf/utilityModules with stealthy and utility uses
/datum/ai_module/malf/upgradeModules that are improving AI abilities and assets
/datum/ai_module/malf/destructive/nuke_stationDoomsday Device: Starts the self-destruct timer. It can only be stopped by killing the AI completely.
/datum/ai_module/malf/destructive/lockdownHostile Station Lockdown: Locks, bolts, and electrifies every airlock on the station. After 90 seconds, the doors reset.
/proc/_malf_ai_undo_lockdownFor Lockdown malf AI ability. Opens all doors on the station.
/datum/ai_module/malf/destructive/override_machineOverride Machine: Allows the AI to override a machine, animating it into an angry, living version of itself.
/datum/ai_module/malf/destructive/destroy_rcdDestroy RCDs: Detonates all non-cyborg RCDs on the station.
/datum/ai_module/malf/destructive/overload_machineOverload Machine: Allows the AI to overload a machine, detonating it after a delay. Two uses per purchase.
/datum/ai_module/malf/destructive/blackoutBlackout: Overloads a random number of lights across the station. Three uses.
/datum/ai_module/malf/destructive/megahonkHIGH IMPACT HONKING
/datum/ai_module/malf/utility/place_cyborg_transformerRobotic Factory: Places a large machine that converts humans that go through it into cyborgs. Unlocking this ability removes shunting.
/datum/ai_module/malf/utility/break_air_alarmsAir Alarm Safety Override: Unlocks the ability to enable dangerous modes on all air alarms.
/datum/ai_module/malf/utility/break_fire_alarmsThermal Sensor Override: Unlocks the ability to disable all fire alarms from doing their job.
/datum/ai_module/malf/utility/emergency_lightsDisable Emergency Lights
/datum/ai_module/malf/utility/reactivate_camerasReactivate Camera Network: Reactivates up to 30 cameras across the station.
/datum/ai_module/malf/upgrade/upgrade_camerasUpgrade Camera Network: EMP-proofs all cameras, in addition to giving them X-ray vision.
/datum/ai_module/malf/upgrade/upgrade_turretsAI Turret Upgrade: Increases the health and damage of all turrets.
/datum/ai_module/malf/upgrade/eavesdropEnhanced Surveillance: Enables AI to hear conversations going on near its active vision.
/datum/ai_module/malf/upgrade/mecha_dominationUnlock Mech Domination: Unlocks the ability to dominate mechs. Big shocker, right?
\ No newline at end of file diff --git a/code/modules/antagonists/nightmare/nightmare_equipment.html b/code/modules/antagonists/nightmare/nightmare_equipment.html new file mode 100644 index 0000000000000..e3a3804eab9d7 --- /dev/null +++ b/code/modules/antagonists/nightmare/nightmare_equipment.html @@ -0,0 +1 @@ +code/modules/antagonists/nightmare/nightmare_equipment.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/nightmare/nightmare_equipment.dm

/obj/item/light_eaterAn armblade that instantly snuffs out lights
\ No newline at end of file diff --git a/code/modules/antagonists/nightmare/nightmare_organs.html b/code/modules/antagonists/nightmare/nightmare_organs.html new file mode 100644 index 0000000000000..1021d5ee1f6e2 --- /dev/null +++ b/code/modules/antagonists/nightmare/nightmare_organs.html @@ -0,0 +1 @@ +code/modules/antagonists/nightmare/nightmare_organs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/nightmare/nightmare_organs.dm

HEART_RESPAWN_THRESHHOLDHow many life ticks are required for the nightmare's heart to revive the nightmare.
HEART_SPECIAL_SHADOWIFYA special flag value used to make a nightmare heart not grant a light eater. Appears to be unused.

Define Details

HEART_RESPAWN_THRESHHOLD

How many life ticks are required for the nightmare's heart to revive the nightmare.

HEART_SPECIAL_SHADOWIFY

A special flag value used to make a nightmare heart not grant a light eater. Appears to be unused.

\ No newline at end of file diff --git a/code/modules/antagonists/nightmare/nightmare_species.html b/code/modules/antagonists/nightmare/nightmare_species.html new file mode 100644 index 0000000000000..5af49431261b3 --- /dev/null +++ b/code/modules/antagonists/nightmare/nightmare_species.html @@ -0,0 +1 @@ +code/modules/antagonists/nightmare/nightmare_species.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/nightmare/nightmare_species.dm

/datum/species/shadow/nightmareA highly aggressive subset of shadowlings
\ No newline at end of file diff --git a/code/modules/antagonists/ninja/energy_katana.html b/code/modules/antagonists/ninja/energy_katana.html new file mode 100644 index 0000000000000..cca8ffccf4cf4 --- /dev/null +++ b/code/modules/antagonists/ninja/energy_katana.html @@ -0,0 +1 @@ +code/modules/antagonists/ninja/energy_katana.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/ninja/energy_katana.dm

/obj/item/energy_katanaThe space ninja's katana.
\ No newline at end of file diff --git a/code/modules/antagonists/ninja/energy_net_nets.html b/code/modules/antagonists/ninja/energy_net_nets.html new file mode 100644 index 0000000000000..c39030a768ec2 --- /dev/null +++ b/code/modules/antagonists/ninja/energy_net_nets.html @@ -0,0 +1 @@ +code/modules/antagonists/ninja/energy_net_nets.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/ninja/energy_net_nets.dm

/obj/structure/energy_netEnergy net which ensnares prey until it is destroyed. Used by space ninjas.
\ No newline at end of file diff --git a/code/modules/antagonists/ninja/ninjaDrainAct.html b/code/modules/antagonists/ninja/ninjaDrainAct.html new file mode 100644 index 0000000000000..8b8ac3e9ea120 --- /dev/null +++ b/code/modules/antagonists/ninja/ninjaDrainAct.html @@ -0,0 +1 @@ +code/modules/antagonists/ninja/ninjaDrainAct.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/ninja/ninjaDrainAct.dm

NINJA_MIN_DRAINMinimum amount of energy we can drain in a single drain action
NINJA_MAX_DRAINMaximum amount of energy we can drain in a single drain action

Define Details

NINJA_MAX_DRAIN

Maximum amount of energy we can drain in a single drain action

NINJA_MIN_DRAIN

Minimum amount of energy we can drain in a single drain action

\ No newline at end of file diff --git a/code/modules/antagonists/ninja/ninja_clothing.html b/code/modules/antagonists/ninja/ninja_clothing.html new file mode 100644 index 0000000000000..6332efa3f019a --- /dev/null +++ b/code/modules/antagonists/ninja/ninja_clothing.html @@ -0,0 +1 @@ +code/modules/antagonists/ninja/ninja_clothing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/ninja/ninja_clothing.dm

/obj/item/clothing/mask/gas/ninjaSpace ninja's mask. Other than looking cool, doesn't do anything.
\ No newline at end of file diff --git a/code/modules/antagonists/ninja/ninja_explosive.html b/code/modules/antagonists/ninja/ninja_explosive.html new file mode 100644 index 0000000000000..c2d42da6c3b0f --- /dev/null +++ b/code/modules/antagonists/ninja/ninja_explosive.html @@ -0,0 +1,3 @@ +code/modules/antagonists/ninja/ninja_explosive.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/ninja/ninja_explosive.dm

/obj/item/grenade/c4/ninjaA unique version of c4 possessed only by the space ninja. Has a stronger blast radius. +Can only be detonated by space ninjas with the bombing objective. Can only be set up where the objective says it can. +When it primes, the space ninja responsible will have their objective set to complete.
\ No newline at end of file diff --git a/code/modules/antagonists/ninja/ninja_stars.html b/code/modules/antagonists/ninja/ninja_stars.html new file mode 100644 index 0000000000000..7606ae0c353b3 --- /dev/null +++ b/code/modules/antagonists/ninja/ninja_stars.html @@ -0,0 +1 @@ +code/modules/antagonists/ninja/ninja_stars.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/ninja/ninja_stars.dm

/obj/item/throwing_star/stamina/ninjaa throwing star which specifically makes sure you know it came from a real ninja.
\ No newline at end of file diff --git a/code/modules/antagonists/nukeop/datums/operative_team.html b/code/modules/antagonists/nukeop/datums/operative_team.html new file mode 100644 index 0000000000000..8445297f716c0 --- /dev/null +++ b/code/modules/antagonists/nukeop/datums/operative_team.html @@ -0,0 +1 @@ +code/modules/antagonists/nukeop/datums/operative_team.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/nukeop/datums/operative_team.dm

/proc/is_infiltrator_docked_at_syndiebaseReturns whether or not syndicate operatives escaped.
\ No newline at end of file diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.html b/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.html new file mode 100644 index 0000000000000..5b6e375073aab --- /dev/null +++ b/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.html @@ -0,0 +1 @@ +code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm

/proc/nuke_gibHelper proc that handles gibbing someone who has been nuked.
/proc/callback_on_everyone_on_zInvokes a callback on every living mob on the provided z level.
\ No newline at end of file diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_bomb/beer_nuke.html b/code/modules/antagonists/nukeop/equipment/nuclear_bomb/beer_nuke.html new file mode 100644 index 0000000000000..d0cd9c604bdac --- /dev/null +++ b/code/modules/antagonists/nukeop/equipment/nuclear_bomb/beer_nuke.html @@ -0,0 +1 @@ +code/modules/antagonists/nukeop/equipment/nuclear_bomb/beer_nuke.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/nukeop/equipment/nuclear_bomb/beer_nuke.dm

/obj/machinery/nuclearbomb/beerA fake nuke that actually contains beer.
\ No newline at end of file diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.html b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.html new file mode 100644 index 0000000000000..c1eb0cc8e9b27 --- /dev/null +++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.html @@ -0,0 +1 @@ +code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm

/obj/item/nuclear_challenge/literally_just_does_the_messageSubtype that does nothing but plays the war op message. Intended for debugging
\ No newline at end of file diff --git a/code/modules/antagonists/nukeop/equipment/overwatch_tools.html b/code/modules/antagonists/nukeop/equipment/overwatch_tools.html new file mode 100644 index 0000000000000..17f9030f4841d --- /dev/null +++ b/code/modules/antagonists/nukeop/equipment/overwatch_tools.html @@ -0,0 +1 @@ +code/modules/antagonists/nukeop/equipment/overwatch_tools.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/nukeop/equipment/overwatch_tools.dm

/obj/item/paper/fluff/overwatchOne of the special items that spawns in the overwatch agent's room.
\ No newline at end of file diff --git a/code/modules/antagonists/obsessed/obsessed.html b/code/modules/antagonists/obsessed/obsessed.html new file mode 100644 index 0000000000000..bc1c0ce996885 --- /dev/null +++ b/code/modules/antagonists/obsessed/obsessed.html @@ -0,0 +1 @@ +code/modules/antagonists/obsessed/obsessed.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/obsessed/obsessed.dm

/datum/antagonist/former_obsessedDummy antag datum that will show the cured obsessed to admins
/datum/objective/assassinate/obsessedCREEPY objectives (few chosen per obsession)
\ No newline at end of file diff --git a/code/modules/antagonists/paradox_clone/paradox_clone.html b/code/modules/antagonists/paradox_clone/paradox_clone.html new file mode 100644 index 0000000000000..a9583030fd31d --- /dev/null +++ b/code/modules/antagonists/paradox_clone/paradox_clone.html @@ -0,0 +1,2 @@ +code/modules/antagonists/paradox_clone/paradox_clone.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/paradox_clone/paradox_clone.dm

/datum/objective/assassinate/paradox_cloneParadox clone assassinate objective +Similar to the original, but with a different flavortext.
/obj/effect/bluespace_streamStatic bluespace stream used in its ghost poll icon.
\ No newline at end of file diff --git a/code/modules/antagonists/pirate/pirate_gangs.html b/code/modules/antagonists/pirate/pirate_gangs.html new file mode 100644 index 0000000000000..d0165a95470ad --- /dev/null +++ b/code/modules/antagonists/pirate/pirate_gangs.html @@ -0,0 +1 @@ +code/modules/antagonists/pirate/pirate_gangs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/pirate/pirate_gangs.dm

/proc/init_pirate_gangsinitializes the pirate gangs glob list, adding all subtypes that can roll today.
/datum/pirate_gangdatum for a pirate team that is spawning to attack the station.
/datum/pirate_gang/roguesclassic FTL-esque space pirates.
/datum/pirate_gang/silverscalesaristocrat lizards looking to hunt the serfs
/datum/pirate_gang/skeletonsundead skeleton crew looking for booty
/datum/pirate_gang/interdyneExpirienced formed employes of Interdyne Pharmaceutics now in a path of thievery and reckoning
/datum/pirate_gang/greyPrevious Nanotrasen Assitant workers fired for many reasons now looking for revenge and your bank account.
/datum/pirate_gang/irsAgents from the space I.R.S. heavily armed to stea- I mean, collect the station's tax dues
\ No newline at end of file diff --git a/code/modules/antagonists/pirate/pirate_shuttle_equipment.html b/code/modules/antagonists/pirate/pirate_shuttle_equipment.html new file mode 100644 index 0000000000000..8f27329fdd1b5 --- /dev/null +++ b/code/modules/antagonists/pirate/pirate_shuttle_equipment.html @@ -0,0 +1 @@ +code/modules/antagonists/pirate/pirate_shuttle_equipment.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/pirate/pirate_shuttle_equipment.dm

/obj/item/disk/surgery/irsSurgery disk for the space IRS (I don't know where to dump them anywhere else)
\ No newline at end of file diff --git a/code/modules/antagonists/revenant/haunted_item.html b/code/modules/antagonists/revenant/haunted_item.html new file mode 100644 index 0000000000000..a5810dd557bbc --- /dev/null +++ b/code/modules/antagonists/revenant/haunted_item.html @@ -0,0 +1,2 @@ +code/modules/antagonists/revenant/haunted_item.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/revenant/haunted_item.dm

/datum/component/haunted_itemMakes our item SUPER spooky! +Adds the haunted element and some other bonuses
/proc/haunt_outburstTakes a given area and chance, applying the haunted_item component to objects in the area.
\ No newline at end of file diff --git a/code/modules/antagonists/revolution/enemy_of_the_state.html b/code/modules/antagonists/revolution/enemy_of_the_state.html new file mode 100644 index 0000000000000..376fa7e722e5a --- /dev/null +++ b/code/modules/antagonists/revolution/enemy_of_the_state.html @@ -0,0 +1,2 @@ +code/modules/antagonists/revolution/enemy_of_the_state.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/revolution/enemy_of_the_state.dm

/datum/antagonist/enemy_of_the_stateWhen the station wins, any remaining living headrevs become Enemies of the State, a small solo antagonist. +They either have the choice to fuck off and do their own thing, or try and regain their honor with a hijack.
\ No newline at end of file diff --git a/code/modules/antagonists/separatist/nation_creation.html b/code/modules/antagonists/separatist/nation_creation.html new file mode 100644 index 0000000000000..1934e46402592 --- /dev/null +++ b/code/modules/antagonists/separatist/nation_creation.html @@ -0,0 +1 @@ +code/modules/antagonists/separatist/nation_creation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/separatist/nation_creation.dm

/proc/create_separatist_nation
\ No newline at end of file diff --git a/code/modules/antagonists/shade/shade_minion.html b/code/modules/antagonists/shade/shade_minion.html new file mode 100644 index 0000000000000..5c3b03345a94b --- /dev/null +++ b/code/modules/antagonists/shade/shade_minion.html @@ -0,0 +1,4 @@ +code/modules/antagonists/shade/shade_minion.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/shade/shade_minion.dm

/datum/antagonist/shade_minionThis datum is for use by shades who have a master but are not cultists. +Cult shades don't get it because they get the cult datum instead. +They are bound to follow the orders of their creator, probably a chaplain or miner. +Technically they're not 'antagonists' but they have antagonist-like properties.
\ No newline at end of file diff --git a/code/modules/antagonists/space_dragon/carp_rift.html b/code/modules/antagonists/space_dragon/carp_rift.html new file mode 100644 index 0000000000000..8839e57b81378 --- /dev/null +++ b/code/modules/antagonists/space_dragon/carp_rift.html @@ -0,0 +1 @@ +code/modules/antagonists/space_dragon/carp_rift.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/space_dragon/carp_rift.dm

CHARGE_ONGOINGThe carp rift is currently charging.
CHARGE_FINALWARNINGThe carp rift is currently charging and has output a final warning.
CHARGE_COMPLETEDThe carp rift is now fully charged.
/obj/structure/carp_riftThe portals Space Dragon summons to bring carp onto the station.

Define Details

CHARGE_COMPLETED

The carp rift is now fully charged.

CHARGE_FINALWARNING

The carp rift is currently charging and has output a final warning.

CHARGE_ONGOING

The carp rift is currently charging.

\ No newline at end of file diff --git a/code/modules/antagonists/spiders/spiders.html b/code/modules/antagonists/spiders/spiders.html new file mode 100644 index 0000000000000..24baf3ffd7841 --- /dev/null +++ b/code/modules/antagonists/spiders/spiders.html @@ -0,0 +1 @@ +code/modules/antagonists/spiders/spiders.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/spiders/spiders.dm

/datum/antagonist/spider/fleshSubtype for flesh spiders who don't have a queen
\ No newline at end of file diff --git a/code/modules/antagonists/spy/spy_bounty.html b/code/modules/antagonists/spy/spy_bounty.html new file mode 100644 index 0000000000000..dd8b43904f4a4 --- /dev/null +++ b/code/modules/antagonists/spy/spy_bounty.html @@ -0,0 +1 @@ +code/modules/antagonists/spy/spy_bounty.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/spy/spy_bounty.dm

/datum/spy_bounty
/datum/spy_bounty/objective_itemSteal an item
/datum/spy_bounty/targets_personSubtype for a bounty that targets a specific crew member
/datum/spy_bounty/targets_person/some_itemSubtype for a bounty that targets a specific crew member and a specific item on them
\ No newline at end of file diff --git a/code/modules/antagonists/spy/spy_bounty_handler.html b/code/modules/antagonists/spy/spy_bounty_handler.html new file mode 100644 index 0000000000000..3f4259828ef05 --- /dev/null +++ b/code/modules/antagonists/spy/spy_bounty_handler.html @@ -0,0 +1 @@ +code/modules/antagonists/spy/spy_bounty_handler.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/spy/spy_bounty_handler.dm

/datum/spy_bounty_handler
\ No newline at end of file diff --git a/code/modules/antagonists/spy/spy_uplink.html b/code/modules/antagonists/spy/spy_uplink.html new file mode 100644 index 0000000000000..e0344d322ec57 --- /dev/null +++ b/code/modules/antagonists/spy/spy_uplink.html @@ -0,0 +1 @@ +code/modules/antagonists/spy/spy_uplink.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/spy/spy_uplink.dm

/datum/component/spy_uplink
\ No newline at end of file diff --git a/code/modules/antagonists/survivalist/survivalist.html b/code/modules/antagonists/survivalist/survivalist.html new file mode 100644 index 0000000000000..29ba6f5b1e29a --- /dev/null +++ b/code/modules/antagonists/survivalist/survivalist.html @@ -0,0 +1 @@ +code/modules/antagonists/survivalist/survivalist.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/survivalist/survivalist.dm

/datum/antagonist/survivalist/battle_royaleApplied by the battle royale objective
\ No newline at end of file diff --git a/code/modules/antagonists/traitor.html b/code/modules/antagonists/traitor.html new file mode 100644 index 0000000000000..9bcd5779b3859 --- /dev/null +++ b/code/modules/antagonists/traitor.html @@ -0,0 +1,42 @@ +code/modules/antagonists/traitor/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Progression Traitor Balance Guide

This guide will explain how the values for progression traitor works, how to balance progression traitors and what you should NOT do when balancing. +This guide will only explain progression values.

+

Definitions

+
    +
  • Progression points OR Progression - A currency that controls what uplink items a player can purchase and what objectives they have accessible to them. Gained passively or by completing objectives and has diminishing returns as it strays from the expected progression
  • +
  • Expected Progression - A global value that increments by a value of 1 minute every minute, representing the 'time' that a player should be at if they had not completed any objectives.
  • +
  • Objectives - An activity or job that a player can take for rewards such as TC and progression points.
  • +
  • Player - The user(s) that are playing as the antagonist in this new system.
  • +
  • Expected deviance - The amount of deviance that can be expected from the minimum and maximum progressions. Usually calculated by progression_scaling_deviance + progression_scaling_deviance * global_progression_deviance_required (explained further down)
  • +
+

How it works

+

This section will explain how the entire balance system works. This is an overview of the entire system.

+

Progression

+

Progression points is passively given to a player, and are represented as minutes (or time values) in code. The round has its own 'expected progression', which is the progression value that you'd normally have if you hadn't completed any objectives whatsoever. This is the baseline progression that all players will be at unless they're a latejoiner, and it acts as the basis for determining how much progression points a player should get over time and the cost of objectives for a specific player, if they deviate too much from this value. The idea is that they will slowly drift back towards the expected progression if they do nothing and it becomes harder for them to progress as they deviate further from the expected progression. The amount that is passively given can also vary depending on how many players there are, so that at lower populations, expected progression rises more slowly.

+

Objectives

+

Objectives are worth a certain amount of progression points, determined by the code. However, this can be scaled to be less if the player taking them is ahead of the expected progression. This scales exponentially, so that as a player deviates further from the expected progression, the reward diminishes exponentially, up to a reduced value of 90%. The similar thing happens in the opposite direction, with people who are lower than the expected progression getting more progression than usual for completing objectives.

+

How to balance

The traitor subsystem

+
    +
  • newjoin_progression_coeff - The coefficient multiplied by the expected progression for new joining traitors to calculate their starting progression, so that they don't start from scratch
  • +
  • progression_scaling_deviance - The value that the entire system revolves around. This determines how your disadvantages are calculated, if you stray from the expected progression. Having a progression value that is progression_scaling_deviance minutes off of the expected progression means that you won't get any progression at all, and if objectives were configured to suit this, you'd have the highest reduction you can possibly get. From the expected progression to this value, it scales linearly and it also works in the opposite direction.
  • +
  • current_progression_scaling - Defined at compile time, this determines how fast expected progression scales. So if you have it set to 0.5 MINUTES, it'll take twice as long to unlock uplink items and new objectives.
  • +
  • CONFIG:TRAITOR_IDEAL_PLAYER_COUNT - The ideal player count before expected progression stops increasing. If the living player list gets below this value, the current progression scaling will be multiplied by player_count/traitor_ideal_player_count. In essence, this makes it so that progression scales more slowly when there isn't a lot of people alive.
  • +
+

If you want to balance how fast the system progresses, you should look at modifying current_progression_scaling. If you want to balance how far someone should be allowed to deviate, you should look at modifying progression-scaling-deviance

+

Objectives

+
    +
  • progression_minimum - The minimum number of progression points required before this objective can show up as a potential objective
  • +
  • progression_maximum - The maximum number of progression points before this objective stops showing up as a potential objective, used to prevent roundstart objectives from showing up during the late game.
  • +
  • progression_reward - The progression reward you get from completing an objective. This is the base value, and can also be a two element list of numbers if you want it to be random. This value is then scaled depending on whether a player is ahead or behind the expected progression
  • +
  • global_progression_influence_intensity - Determines how influential expected progression will affect the progression reward of this objective. Set to 0 to disable.
  • +
  • global_progression_deviance_required - Determines how much deviance is required before the scaling kicks in, to give objectives more leeway so that at the progression_scaling_deviance, it doesn't scale to 90% immediately.
  • +
  • progression_cost_coeff_deviance - This determines the randomness of the progression reward, to prevent all of the scaling from looking the same. Becomes a lot less significant as the scaling variable gets closer to 1.
  • +
+

If you want to balance the expected timeframe an objective should be available, you should look at changing the progression_minimum or progression_maximum. If you want to balance how much objectives reward, you may want to look at modifying progression_reward. If you want to look at balancing the cost of an objective depending on the expected progression, you may want to look at global_progression_influence_intensity. If you want to look at decreasing or increasing the deviance allowed before objectives become worthless progression-wise, you may want to look at modifying global_progression_deviance_required

+ +
    +
  • progression_minimum - The minimum number of progression points required to purchase this uplink item.
  • +
+

What NOT to do when balancing

Overcompensate

+

You do not want to overcompensate variables such as progression_minimum and progression_maximum. Such values need to be an accurate representation of roughly around the time a player should unlock the objective or uplink item. progression_scaling_deviance is supposed to represents the limit that a casual player can be at before it becomes significantly harder for them to progress throughout. You should expect people to be within progression_scaling_deviance + progression_scaling_deviance * global_progression_deviance_required. (Assuming progression_scaling_deviance is 20 minutes and progression_scaling_deviance_required is 0.5, 20 + 0.5 * 20 = 30; this gives us a value of 30 minutes). This is the expected deviance.

+

Reward large amounts of progression points

+

Progression points are passively gained, so rewarding large amounts of progression points will let people bypass the scaling as they'll immediately jump to an absurd value. A good rule of thumb is to always keep the reward within or below the expected deviance.

\ No newline at end of file diff --git a/code/modules/antagonists/traitor/components/demoraliser.html b/code/modules/antagonists/traitor/components/demoraliser.html new file mode 100644 index 0000000000000..558b347998896 --- /dev/null +++ b/code/modules/antagonists/traitor/components/demoraliser.html @@ -0,0 +1,2 @@ +code/modules/antagonists/traitor/components/demoraliser.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/traitor/components/demoraliser.dm

/datum/demoralise_moodsMood application categories for this objective +Used to reduce duplicate code for applying moods to players based on their state
\ No newline at end of file diff --git a/code/modules/antagonists/traitor/components/traitor_objective_helpers.html b/code/modules/antagonists/traitor/components/traitor_objective_helpers.html new file mode 100644 index 0000000000000..2807e1bb3adee --- /dev/null +++ b/code/modules/antagonists/traitor/components/traitor_objective_helpers.html @@ -0,0 +1,2 @@ +code/modules/antagonists/traitor/components/traitor_objective_helpers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/traitor/components/traitor_objective_helpers.dm

/datum/component/traitor_objective_registerHelper component that registers signals on an object +This is not necessary to use and gives little control over the conditions
\ No newline at end of file diff --git a/code/modules/antagonists/traitor/components/traitor_objective_limit_per_time.html b/code/modules/antagonists/traitor/components/traitor_objective_limit_per_time.html new file mode 100644 index 0000000000000..af199f7083482 --- /dev/null +++ b/code/modules/antagonists/traitor/components/traitor_objective_limit_per_time.html @@ -0,0 +1 @@ +code/modules/antagonists/traitor/components/traitor_objective_limit_per_time.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/traitor/components/traitor_objective_limit_per_time.dm

/datum/component/traitor_objective_limit_per_timeHelper component to track events on
\ No newline at end of file diff --git a/code/modules/antagonists/traitor/components/traitor_objective_mind_tracker.html b/code/modules/antagonists/traitor/components/traitor_objective_mind_tracker.html new file mode 100644 index 0000000000000..a04b2dee8ad09 --- /dev/null +++ b/code/modules/antagonists/traitor/components/traitor_objective_mind_tracker.html @@ -0,0 +1 @@ +code/modules/antagonists/traitor/components/traitor_objective_mind_tracker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/traitor/components/traitor_objective_mind_tracker.dm

/datum/component/traitor_objective_mind_trackerHelper component to track events on
\ No newline at end of file diff --git a/code/modules/antagonists/traitor/contractor/contract_teammate.html b/code/modules/antagonists/traitor/contractor/contract_teammate.html new file mode 100644 index 0000000000000..109674113bd8b --- /dev/null +++ b/code/modules/antagonists/traitor/contractor/contract_teammate.html @@ -0,0 +1 @@ +code/modules/antagonists/traitor/contractor/contract_teammate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/traitor/contractor/contract_teammate.dm

/datum/antagonist/traitor/contractor_supportSupport unit gets it's own very basic antag datum for admin logging.
\ No newline at end of file diff --git a/code/modules/antagonists/traitor/datum_traitor.html b/code/modules/antagonists/traitor/datum_traitor.html new file mode 100644 index 0000000000000..829da3b32ac5e --- /dev/null +++ b/code/modules/antagonists/traitor/datum_traitor.html @@ -0,0 +1 @@ +code/modules/antagonists/traitor/datum_traitor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/traitor/datum_traitor.dm

FLAVOR_FACTION_SYNDICATEall the employers that are syndicate
FLAVOR_FACTION_NANOTRASENall the employers that are Nanotrasen

Define Details

FLAVOR_FACTION_NANOTRASEN

all the employers that are Nanotrasen

FLAVOR_FACTION_SYNDICATE

all the employers that are syndicate

\ No newline at end of file diff --git a/code/modules/antagonists/traitor/objective_category.html b/code/modules/antagonists/traitor/objective_category.html new file mode 100644 index 0000000000000..87c5e4fdd4c31 --- /dev/null +++ b/code/modules/antagonists/traitor/objective_category.html @@ -0,0 +1,4 @@ +code/modules/antagonists/traitor/objective_category.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/traitor/objective_category.dm

/datum/traitor_category_handlerThe traitor category handler. This is where the probability of all objectives are managed.
/datum/traitor_objective_categoryThe objective category. +Used to group up entire objectives into 1 weight objects to prevent having a +higher chance of getting an objective due to an increased number of different objective subtypes. +These are nothing but informational holders and will have no other purpose.
\ No newline at end of file diff --git a/code/modules/antagonists/traitor/objectives/abstract/target_player.html b/code/modules/antagonists/traitor/objectives/abstract/target_player.html new file mode 100644 index 0000000000000..0bd60b5dc62c0 --- /dev/null +++ b/code/modules/antagonists/traitor/objectives/abstract/target_player.html @@ -0,0 +1,3 @@ +code/modules/antagonists/traitor/objectives/abstract/target_player.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/traitor/objectives/abstract/target_player.dm

/datum/traitor_objective/target_playerThe point of this datum is to act as a means to group target player objectives +Not all 'target player' objectives have to be under this subtype, it's only used if you don't want duplicates among the current +children types under this type.
\ No newline at end of file diff --git a/code/modules/antagonists/traitor/objectives/destroy_heirloom.html b/code/modules/antagonists/traitor/objectives/destroy_heirloom.html new file mode 100644 index 0000000000000..975fa3aa0776e --- /dev/null +++ b/code/modules/antagonists/traitor/objectives/destroy_heirloom.html @@ -0,0 +1 @@ +code/modules/antagonists/traitor/objectives/destroy_heirloom.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/traitor/objectives/destroy_heirloom.dm

/datum/traitor_objective/destroy_heirloom/common/assistantThis is only for assistants, because the syndies are a lot less likely to give a shit about what an assistant does, so they're a lot less likely to appear
\ No newline at end of file diff --git a/code/modules/antagonists/traitor/objectives/destroy_item.html b/code/modules/antagonists/traitor/objectives/destroy_item.html new file mode 100644 index 0000000000000..02607b9e888b5 --- /dev/null +++ b/code/modules/antagonists/traitor/objectives/destroy_item.html @@ -0,0 +1 @@ +code/modules/antagonists/traitor/objectives/destroy_item.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/traitor/objectives/destroy_item.dm

/datum/traitor_objective/destroy_item/demoraliseSuper early-game destroy objective intended to be items easily tided that the crew tends to value.
\ No newline at end of file diff --git a/code/modules/antagonists/traitor/objectives/sabotage_machinery.html b/code/modules/antagonists/traitor/objectives/sabotage_machinery.html new file mode 100644 index 0000000000000..307bd4bc699f1 --- /dev/null +++ b/code/modules/antagonists/traitor/objectives/sabotage_machinery.html @@ -0,0 +1 @@ +code/modules/antagonists/traitor/objectives/sabotage_machinery.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/traitor/objectives/sabotage_machinery.dm

/proc/add_sabotage_machineMarks a machine as a possible traitor sabotage target
/datum/traitor_objective_category/sabotage_machineryTraitor objective to destroy a machine the crew cares about
/obj/item/traitor_machine_trapperItem which you use on a machine to cause it to explode next time someone interacts with it
/datum/objective_target_machine_handlerDatum which manages references to things we are instructed to destroy
\ No newline at end of file diff --git a/code/modules/antagonists/traitor/traitor_objective.html b/code/modules/antagonists/traitor/traitor_objective.html new file mode 100644 index 0000000000000..742b1ba354c18 --- /dev/null +++ b/code/modules/antagonists/traitor/traitor_objective.html @@ -0,0 +1,3 @@ +code/modules/antagonists/traitor/traitor_objective.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/traitor/traitor_objective.dm

/datum/traitor_objectiveA traitor objective. Traitor objectives should not be deleted after they have been created and established, only failed. +If a traitor objective needs to be removed from the failed/completed objective list of their handler, then you are doing something wrong +and you should reconsider. When an objective is failed/completed, that is final and the only way you can change that is by refactoring the code.
\ No newline at end of file diff --git a/code/modules/antagonists/traitor/uplink_handler.html b/code/modules/antagonists/traitor/uplink_handler.html new file mode 100644 index 0000000000000..cc92a2d878c19 --- /dev/null +++ b/code/modules/antagonists/traitor/uplink_handler.html @@ -0,0 +1 @@ +code/modules/antagonists/traitor/uplink_handler.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/traitor/uplink_handler.dm

/datum/uplink_handlerUplink Handler
\ No newline at end of file diff --git a/code/modules/antagonists/voidwalker/voidwalker.html b/code/modules/antagonists/voidwalker/voidwalker.html new file mode 100644 index 0000000000000..c497196f5ff1b --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker.html @@ -0,0 +1 @@ +code/modules/antagonists/voidwalker/voidwalker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/voidwalker/voidwalker.dm

/datum/antagonist/voidwalkerSpace antagonist that harasses people near space and cursed them if they get the chance
\ No newline at end of file diff --git a/code/modules/antagonists/voidwalker/voidwalker_abilities.html b/code/modules/antagonists/voidwalker/voidwalker_abilities.html new file mode 100644 index 0000000000000..23f69950df75b --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_abilities.html @@ -0,0 +1 @@ +code/modules/antagonists/voidwalker/voidwalker_abilities.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/voidwalker/voidwalker_abilities.dm

/datum/action/cooldown/spell/pointed/unsettleRemain in someones view without breaking line of sight
\ No newline at end of file diff --git a/code/modules/antagonists/voidwalker/voidwalker_bodyparts.html b/code/modules/antagonists/voidwalker/voidwalker_bodyparts.html new file mode 100644 index 0000000000000..1ee290a38d0aa --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_bodyparts.html @@ -0,0 +1 @@ +code/modules/antagonists/voidwalker/voidwalker_bodyparts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/voidwalker/voidwalker_bodyparts.dm

GLASSY_OVERLAY_MATRIXTurn the damage overlays glassy

Define Details

GLASSY_OVERLAY_MATRIX

Turn the damage overlays glassy

\ No newline at end of file diff --git a/code/modules/antagonists/voidwalker/voidwalker_kidnap.html b/code/modules/antagonists/voidwalker/voidwalker_kidnap.html new file mode 100644 index 0000000000000..d0bf7bd5bc9b5 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_kidnap.html @@ -0,0 +1 @@ +code/modules/antagonists/voidwalker/voidwalker_kidnap.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/voidwalker/voidwalker_kidnap.dm

/obj/effect/landmark/voidwalker_voidLardmarks meant to designate where voidwalker kidnapees are sent
/area/centcom/voidwalker_voidVoidwalker void where the people go
/obj/effect/wisp_mobileMini car where people drive around in in their mangled corpse to heal a bit before they get dumped back on station
/obj/effect/wisp_foodwe only exist to be eaten by wisps for food 😔👊
\ No newline at end of file diff --git a/code/modules/antagonists/voidwalker/voidwalker_loot.html b/code/modules/antagonists/voidwalker/voidwalker_loot.html new file mode 100644 index 0000000000000..35edf72f4f397 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_loot.html @@ -0,0 +1 @@ +code/modules/antagonists/voidwalker/voidwalker_loot.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/voidwalker/voidwalker_loot.dm

/obj/item/cosmic_skullGives someone the stable voided trauma and then self destructs
\ No newline at end of file diff --git a/code/modules/antagonists/voidwalker/voidwalker_organs.html b/code/modules/antagonists/voidwalker/voidwalker_organs.html new file mode 100644 index 0000000000000..375590f5a7312 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_organs.html @@ -0,0 +1 @@ +code/modules/antagonists/voidwalker/voidwalker_organs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/voidwalker/voidwalker_organs.dm

/obj/item/organ/internal/eyes/voidwalkerVoidwalker eyes with nightvision and thermals
/obj/item/organ/internal/brain/voidwalkerVoidwalker brain stacked with a lot of the abilities
\ No newline at end of file diff --git a/code/modules/antagonists/voidwalker/voidwalker_species.html b/code/modules/antagonists/voidwalker/voidwalker_species.html new file mode 100644 index 0000000000000..2992ae6d7da23 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_species.html @@ -0,0 +1 @@ +code/modules/antagonists/voidwalker/voidwalker_species.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/voidwalker/voidwalker_species.dm

/datum/species/voidwalkerSpecies for the voidwalker antagonist
\ No newline at end of file diff --git a/code/modules/antagonists/voidwalker/voidwalker_status_effects.html b/code/modules/antagonists/voidwalker/voidwalker_status_effects.html new file mode 100644 index 0000000000000..475cd728bf30e --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_status_effects.html @@ -0,0 +1 @@ +code/modules/antagonists/voidwalker/voidwalker_status_effects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/voidwalker/voidwalker_status_effects.dm

/datum/movespeed_modifier/grounded_voidwalkerTHE GRAVITY!!! IT WEIGHS!!!
/datum/status_effect/space_regenerationRegenerate in space
\ No newline at end of file diff --git a/code/modules/antagonists/voidwalker/voidwalker_traumas.html b/code/modules/antagonists/voidwalker/voidwalker_traumas.html new file mode 100644 index 0000000000000..2095cf3cbe106 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_traumas.html @@ -0,0 +1 @@ +code/modules/antagonists/voidwalker/voidwalker_traumas.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/voidwalker/voidwalker_traumas.dm

/datum/brain_trauma/voidedCurse brain trauma that makes someone space textured, mute, pacifist and forbids them from entering space
/datum/brain_trauma/voided/stablePositive version of the previous. Get space immunity and the ability to slowly move through glass (but you still get muted)
\ No newline at end of file diff --git a/code/modules/antagonists/voidwalker/voidwalker_void_eater.html b/code/modules/antagonists/voidwalker/voidwalker_void_eater.html new file mode 100644 index 0000000000000..6375c720076b8 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_void_eater.html @@ -0,0 +1 @@ +code/modules/antagonists/voidwalker/voidwalker_void_eater.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/voidwalker/voidwalker_void_eater.dm

/obj/item/void_eaterAn armblade that pops windows
\ No newline at end of file diff --git a/code/modules/antagonists/wizard/equipment/artefact.html b/code/modules/antagonists/wizard/equipment/artefact.html new file mode 100644 index 0000000000000..d0153e4738f5b --- /dev/null +++ b/code/modules/antagonists/wizard/equipment/artefact.html @@ -0,0 +1 @@ +code/modules/antagonists/wizard/equipment/artefact.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/wizard/equipment/artefact.dm

/obj/item/veilrenderVeil Render
/obj/tear_in_realityTear in reality, spawned by the veil render
/obj/item/scryingScrying
/obj/item/necromantic_stoneNecromantic Stone
/obj/item/warp_whistleWarp whistle, spawns a tornado that teleports you
/obj/effect/temp_visual/teleporting_tornadoTeleporting tornado, spawned by warp whistle, teleports the user if they manage to pick them up.
RUNIC_SCEPTER_MAX_CHARGESScepter of Vendormancy

Define Details

RUNIC_SCEPTER_MAX_CHARGES

Scepter of Vendormancy

\ No newline at end of file diff --git a/code/modules/antagonists/wizard/equipment/enchanted_clown_suit.html b/code/modules/antagonists/wizard/equipment/enchanted_clown_suit.html new file mode 100644 index 0000000000000..bc4a2376a0a3e --- /dev/null +++ b/code/modules/antagonists/wizard/equipment/enchanted_clown_suit.html @@ -0,0 +1 @@ +code/modules/antagonists/wizard/equipment/enchanted_clown_suit.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/wizard/equipment/enchanted_clown_suit.dm

/datum/action/cooldown/spell/conjure_item/clown_pocketsA spell which gives you a clown item
/datum/action/cooldown/spell/conjure_item/clown_pockets/enchantmentLonger cooldown variant which is attached to the enchanted clown suit
/obj/item/clothing/under/rank/civilian/clown/magicEnchanted clown suit
/obj/item/clothing/under/plasmaman/clown/magicEnchanted plasmaman clown suit
\ No newline at end of file diff --git a/code/modules/antagonists/wizard/equipment/soulstone.html b/code/modules/antagonists/wizard/equipment/soulstone.html new file mode 100644 index 0000000000000..5a2904b3a904e --- /dev/null +++ b/code/modules/antagonists/wizard/equipment/soulstone.html @@ -0,0 +1 @@ +code/modules/antagonists/wizard/equipment/soulstone.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/wizard/equipment/soulstone.dm

/obj/structure/constructshellTransferring to constructs
\ No newline at end of file diff --git a/code/modules/antagonists/wizard/equipment/spellbook_entries/_entry.html b/code/modules/antagonists/wizard/equipment/spellbook_entries/_entry.html new file mode 100644 index 0000000000000..784594dad8ecb --- /dev/null +++ b/code/modules/antagonists/wizard/equipment/spellbook_entries/_entry.html @@ -0,0 +1 @@ +code/modules/antagonists/wizard/equipment/spellbook_entries/_entry.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/wizard/equipment/spellbook_entries/_entry.dm

/datum/spellbook_entry
/datum/spellbook_entry/itemItem summons, they give you an item.
/datum/spellbook_entry/summonRitual, these cause station wide effects and are (pretty much) a blank slate to implement stuff in
/datum/spellbook_entry/challengeNon-purchasable flavor spells to populate the spell book with, for style.
\ No newline at end of file diff --git a/code/modules/antagonists/wizard/equipment/spellbook_entries/summons.html b/code/modules/antagonists/wizard/equipment/spellbook_entries/summons.html new file mode 100644 index 0000000000000..3cf1e9e45f7c7 --- /dev/null +++ b/code/modules/antagonists/wizard/equipment/spellbook_entries/summons.html @@ -0,0 +1,2 @@ +code/modules/antagonists/wizard/equipment/spellbook_entries/summons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/wizard/equipment/spellbook_entries/summons.dm

MINIMUM_THREAT_FOR_RITUALSHow much threat we need to let these rituals happen on dynamic
/datum/spellbook_entry/summon/specific_spellA wizard ritual that allows the wizard to teach a specific spellbook enty to everyone on the station. +This includes item entries (which will be given to everyone) but disincludes other rituals like itself

Define Details

MINIMUM_THREAT_FOR_RITUALS

How much threat we need to let these rituals happen on dynamic

\ No newline at end of file diff --git a/code/modules/antagonists/wizard/equipment/teleport_rod.html b/code/modules/antagonists/wizard/equipment/teleport_rod.html new file mode 100644 index 0000000000000..da434d3e5aeb3 --- /dev/null +++ b/code/modules/antagonists/wizard/equipment/teleport_rod.html @@ -0,0 +1,2 @@ +code/modules/antagonists/wizard/equipment/teleport_rod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/wizard/equipment/teleport_rod.dm

/obj/item/teleport_rodTotally NOT a Rod of Discord +Teleports you to where you click!
/obj/effect/temp_visual/teleport_fluxTemp visual displayed on both sides of a teleport rod teleport
/datum/status_effect/teleport_fluxStatus effect applied to users of a Teleport Rod, damages them when they teleport
/atom/movable/screen/alert/status_effect/teleport_fluxAlert for the Teleport Flux status effect
/particles/teleport_fluxParticles for Teleport Flux and other similar effects
\ No newline at end of file diff --git a/code/modules/antagonists/wizard/grand_ritual/finales/all_access.html b/code/modules/antagonists/wizard/grand_ritual/finales/all_access.html new file mode 100644 index 0000000000000..c1c5ce8c0f077 --- /dev/null +++ b/code/modules/antagonists/wizard/grand_ritual/finales/all_access.html @@ -0,0 +1 @@ +code/modules/antagonists/wizard/grand_ritual/finales/all_access.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/wizard/grand_ritual/finales/all_access.dm

/datum/grand_finale/all_accessOpen all of the doors
\ No newline at end of file diff --git a/code/modules/antagonists/wizard/grand_ritual/finales/armageddon.html b/code/modules/antagonists/wizard/grand_ritual/finales/armageddon.html new file mode 100644 index 0000000000000..168ea95167c97 --- /dev/null +++ b/code/modules/antagonists/wizard/grand_ritual/finales/armageddon.html @@ -0,0 +1 @@ +code/modules/antagonists/wizard/grand_ritual/finales/armageddon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/wizard/grand_ritual/finales/armageddon.dm

/datum/grand_finale/armageddonKill yourself and probably a bunch of other people
\ No newline at end of file diff --git a/code/modules/antagonists/wizard/grand_ritual/finales/captaincy.html b/code/modules/antagonists/wizard/grand_ritual/finales/captaincy.html new file mode 100644 index 0000000000000..b462129bb50ab --- /dev/null +++ b/code/modules/antagonists/wizard/grand_ritual/finales/captaincy.html @@ -0,0 +1 @@ +code/modules/antagonists/wizard/grand_ritual/finales/captaincy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/wizard/grand_ritual/finales/captaincy.dm

/datum/grand_finale/usurpBecome the official Captain of the station
/datum/outfit/job/wizard_captainAn outfit which replaces parts of a wizard's clothes with captain's clothes but keeps the robes
\ No newline at end of file diff --git a/code/modules/antagonists/wizard/grand_ritual/finales/cheese.html b/code/modules/antagonists/wizard/grand_ritual/finales/cheese.html new file mode 100644 index 0000000000000..d6f3e0692e65b --- /dev/null +++ b/code/modules/antagonists/wizard/grand_ritual/finales/cheese.html @@ -0,0 +1,3 @@ +code/modules/antagonists/wizard/grand_ritual/finales/cheese.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/wizard/grand_ritual/finales/cheese.dm

/datum/grand_finale/cheeseGives the wizard a defensive/mood buff and a Wabbajack, a juiced up chaos staff that will surely break something. +Everyone but the wizard goes crazy, suffers major brain damage, and is given a vendetta against the wizard. +Already insane people are instead cured of their madness, ignoring any other effects as the station around them loses its marbles.
\ No newline at end of file diff --git a/code/modules/antagonists/wizard/grand_ritual/finales/clown.html b/code/modules/antagonists/wizard/grand_ritual/finales/clown.html new file mode 100644 index 0000000000000..f9b04747a8e3d --- /dev/null +++ b/code/modules/antagonists/wizard/grand_ritual/finales/clown.html @@ -0,0 +1,2 @@ +code/modules/antagonists/wizard/grand_ritual/finales/clown.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/wizard/grand_ritual/finales/clown.dm

/datum/grand_finale/clownDress the crew as magical clowns
/datum/mood_event/clown_worldClown enjoyers who are effected by this become ecstatic, they have achieved their life's dream. +This moodlet is equivalent to the one for simply being a traitor.
\ No newline at end of file diff --git a/code/modules/antagonists/wizard/grand_ritual/finales/grand_ritual_finale.html b/code/modules/antagonists/wizard/grand_ritual/finales/grand_ritual_finale.html new file mode 100644 index 0000000000000..421776de761e5 --- /dev/null +++ b/code/modules/antagonists/wizard/grand_ritual/finales/grand_ritual_finale.html @@ -0,0 +1,2 @@ +code/modules/antagonists/wizard/grand_ritual/finales/grand_ritual_finale.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/wizard/grand_ritual/finales/grand_ritual_finale.dm

/datum/grand_finaleA big final event to run when you complete seven rituals
/datum/antagonist/wizard_prank_vendettaAntag datum to give to people who want to kill the wizard. +This doesn't preclude other people choosing to want to kill the wizard, just these people are rewarded for it.
/datum/grand_finale/magicGive everyone magic items, its so simple it feels pointless to give it its own file
\ No newline at end of file diff --git a/code/modules/antagonists/wizard/grand_ritual/finales/immortality.html b/code/modules/antagonists/wizard/grand_ritual/finales/immortality.html new file mode 100644 index 0000000000000..55f19df5c57eb --- /dev/null +++ b/code/modules/antagonists/wizard/grand_ritual/finales/immortality.html @@ -0,0 +1,2 @@ +code/modules/antagonists/wizard/grand_ritual/finales/immortality.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/wizard/grand_ritual/finales/immortality.dm

IMMORTAL_PRE_ACTIVATION_TIMEAmount of time to wait after someone dies to steal their body from their killers
IMMORTAL_RESURRECT_TIMEAmount of time it takes a mob to return to the living world
/datum/grand_finale/immortalityNobody will ever die ever again +Or if they do, they will be back
/datum/human_appearance_profileStore of data we use to recreate someone who was gibbed, like a simplified version of changeling profiles
/obj/effect/spectre_of_resurrectionA ghostly image of a mob showing where and what is going to respawn
/obj/effect/spectre_of_resurrection/humanA ressurection spectre with extra behaviour for humans
/obj/effect/temp_visual/immortality_blastVisual flair on the wizard when cast
/obj/effect/temp_visual/immortality_pulseVisual flair on living creatures who have become immortal

Define Details

IMMORTAL_PRE_ACTIVATION_TIME

Amount of time to wait after someone dies to steal their body from their killers

IMMORTAL_RESURRECT_TIME

Amount of time it takes a mob to return to the living world

\ No newline at end of file diff --git a/code/modules/antagonists/wizard/grand_ritual/finales/midas.html b/code/modules/antagonists/wizard/grand_ritual/finales/midas.html new file mode 100644 index 0000000000000..71ce9d0534c4c --- /dev/null +++ b/code/modules/antagonists/wizard/grand_ritual/finales/midas.html @@ -0,0 +1 @@ +code/modules/antagonists/wizard/grand_ritual/finales/midas.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/wizard/grand_ritual/finales/midas.dm

/datum/grand_finale/midasCompletely transform the station
\ No newline at end of file diff --git a/code/modules/antagonists/wizard/grand_ritual/fluff.html b/code/modules/antagonists/wizard/grand_ritual/fluff.html new file mode 100644 index 0000000000000..0b6545ea8d1bf --- /dev/null +++ b/code/modules/antagonists/wizard/grand_ritual/fluff.html @@ -0,0 +1 @@ +code/modules/antagonists/wizard/grand_ritual/fluff.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/wizard/grand_ritual/fluff.dm

/obj/item/book/manual/ancient_parchmentFluff book to hint at the cheesy grand ritual.
\ No newline at end of file diff --git a/code/modules/antagonists/wizard/grand_ritual/grand_ritual.html b/code/modules/antagonists/wizard/grand_ritual/grand_ritual.html new file mode 100644 index 0000000000000..b4614136346ae --- /dev/null +++ b/code/modules/antagonists/wizard/grand_ritual/grand_ritual.html @@ -0,0 +1,8 @@ +code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm

CHEESE_SACRIFICE_GOALTotal cheese goal to sacrifice to [REDACTED] during wizard grand rituals. +The easiest way for a wizard to procure cheese is with Summon Cheese spell, which summons 9 per cast. +The wizard needs to complete 7 rituals, so let's give them some breathing room with cheese offerings. +7 * 9 = 63, so the wizard can potentially miss two casts worth of cheese if they summon cheese on each rune.
/datum/action/cooldown/grand_ritualThe Grand Ritual is the Wizard's alternate victory condition +and also a tool to make funny distractions and progress the round state.
/obj/effect/temp_visual/wizard_runeAbstract holder for shared animation behaviour
/obj/effect/temp_visual/wizard_rune/drawingAnimates drawing a cool rune
/obj/effect/temp_visual/wizard_rune/failedDisplayed if you stop drawing it
/obj/effect/temp_visual/wizard_rune/drawing/cheeseCheese drawing
/obj/effect/temp_visual/wizard_rune/failed/cheeseCheese fail

Define Details

CHEESE_SACRIFICE_GOAL

Total cheese goal to sacrifice to [REDACTED] during wizard grand rituals. +The easiest way for a wizard to procure cheese is with Summon Cheese spell, which summons 9 per cast. +The wizard needs to complete 7 rituals, so let's give them some breathing room with cheese offerings. +7 * 9 = 63, so the wizard can potentially miss two casts worth of cheese if they summon cheese on each rune.

\ No newline at end of file diff --git a/code/modules/antagonists/wizard/grand_ritual/grand_rune.html b/code/modules/antagonists/wizard/grand_ritual/grand_rune.html new file mode 100644 index 0000000000000..ef90e784bc0de --- /dev/null +++ b/code/modules/antagonists/wizard/grand_ritual/grand_rune.html @@ -0,0 +1,5 @@ +code/modules/antagonists/wizard/grand_ritual/grand_rune.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/wizard/grand_ritual/grand_rune.dm

GRAND_RUNE_INVOKES_TO_COMPLETENumber of times you need to cast on the rune to complete it
BASE_INVOKE_TIMEBase time to take to invoke one stage of the rune. This is done three times to complete the rune.
ADD_INVOKE_TIMETime to add on to each step every time a previous rune is completed.
/obj/effect/grand_runeMagic rune used in the grand ritual. +A wizard sits themselves on this thing and waves their hands for a while shouting silly words. +Then something (usually bad) happens.
/obj/effect/grand_rune/finaleVariant rune used for the Final Ritual
/obj/effect/grand_rune/finale/cheesySpawned when 50 or more cheese was sacrificed during previous grand rituals. +Will spawn instead of the usual grand ritual rune, and its effect is already set and can't be changed. +Sorry, no narwal fighting on the open ocean this time.
/obj/effect/decal/cleanable/grand_remainsSpawned when we are done with the rune

Define Details

ADD_INVOKE_TIME

Time to add on to each step every time a previous rune is completed.

BASE_INVOKE_TIME

Base time to take to invoke one stage of the rune. This is done three times to complete the rune.

GRAND_RUNE_INVOKES_TO_COMPLETE

Number of times you need to cast on the rune to complete it

\ No newline at end of file diff --git a/code/modules/antagonists/wizard/grand_ritual/grand_side_effect.html b/code/modules/antagonists/wizard/grand_ritual/grand_side_effect.html new file mode 100644 index 0000000000000..01588f46b828d --- /dev/null +++ b/code/modules/antagonists/wizard/grand_ritual/grand_side_effect.html @@ -0,0 +1 @@ +code/modules/antagonists/wizard/grand_ritual/grand_side_effect.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/wizard/grand_ritual/grand_side_effect.dm

/datum/grand_side_effectDescribes something which can happen in a local area when the grand ritual is completed.
/datum/grand_side_effect/spellA side effect which just casts a spell at its position
/datum/grand_side_effect/scramble_turfsCasts dimensional instability on the area
/datum/grand_side_effect/transmogrify_areaTransform the surrounding area into something else.
MIN_ANOMALIES_CREATEDMinimum number of anomalies to create
MAX_ANOMALIES_CREATEDMaximum number of anomalies to create
/datum/grand_side_effect/create_anomaliesSpawn some anomalies in the area, ones which are not too dangerous
/datum/grand_side_effect/empEMP nearby machines
/datum/grand_side_effect/translocateSwap locations of nearby mobs arbitrarily and confuse them
/datum/grand_side_effect/slipperySpawn lube in the area
/datum/grand_side_effect/summon_crewmateGrabs one person and pulls them to this location, after a delay
/datum/grand_side_effect/smokeCreate colourful smoke
/datum/effect_system/fluid_spread/smoke/colourfulSpawns randomly coloured smoke
/obj/effect/particle_effect/fluid/smoke/colourfulRandomly coloured smoke
/datum/grand_side_effect/goreMake a bloody mess
/datum/grand_side_effect/create_foodRain food in the area
/obj/effect/abstract/local_food_rainMakes food land near it until it expires
/datum/grand_side_effect/spawn_delayed_mobsSpawn some mobs after a delay
/obj/effect/temp_visual/delayed_mob_portalSpawns a mob when it expires
/datum/grand_side_effect/orchestraProvides musical accompaniment

Define Details

MAX_ANOMALIES_CREATED

Maximum number of anomalies to create

MIN_ANOMALIES_CREATED

Minimum number of anomalies to create

\ No newline at end of file diff --git a/code/modules/antagonists/wizard/imp_antag.html b/code/modules/antagonists/wizard/imp_antag.html new file mode 100644 index 0000000000000..9a56b71ec1d16 --- /dev/null +++ b/code/modules/antagonists/wizard/imp_antag.html @@ -0,0 +1 @@ +code/modules/antagonists/wizard/imp_antag.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/antagonists/wizard/imp_antag.dm

/datum/antagonist/imp
\ No newline at end of file diff --git a/code/modules/antagonists/xeno/xeno.html b/code/modules/antagonists/xeno/xeno.html new file mode 100644 index 0000000000000..00ae867117790 --- /dev/null +++ b/code/modules/antagonists/xeno/xeno.html @@ -0,0 +1 @@ +code/modules/antagonists/xeno/xeno.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/antagonists/xeno/xeno.dm

CAPTIVE_XENO_DEADCaptive Xeno has been found dead, regardless of location.
CAPTIVE_XENO_FAILCaptive Xeno has been found alive and within the captivity area.
CAPTIVE_XENO_PASSCaptive Xeno has been found alive and outside of the captivity area.
/datum/team/xeno/captiveCaptive Xenomorphs team

Define Details

CAPTIVE_XENO_DEAD

Captive Xeno has been found dead, regardless of location.

CAPTIVE_XENO_FAIL

Captive Xeno has been found alive and within the captivity area.

CAPTIVE_XENO_PASS

Captive Xeno has been found alive and outside of the captivity area.

\ No newline at end of file diff --git a/code/modules/art/paintings.html b/code/modules/art/paintings.html new file mode 100644 index 0000000000000..23d828d5b4e0f --- /dev/null +++ b/code/modules/art/paintings.html @@ -0,0 +1 @@ +code/modules/art/paintings.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/art/paintings.dm

/obj/item/paint_paletteSimple painting utility.
\ No newline at end of file diff --git a/code/modules/art/statues.html b/code/modules/art/statues.html new file mode 100644 index 0000000000000..9e4c28c2f3027 --- /dev/null +++ b/code/modules/art/statues.html @@ -0,0 +1,4 @@ +code/modules/art/statues.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/art/statues.dm

SCULPT_SOUND_INCREMENTThis controls the delay for the sculpt rock breaking sound +Every 4th iterator while sculpting will emit a sound (rougly every couple of seconds)
/obj/structure/statue/uranium//////////////STATUES////////////////////////// +uranium
/obj/structure/statue/plasmaplasma
/obj/structure/statue/goldgold
/obj/structure/statue/silversilver
/obj/structure/statue/diamonddiamond
/obj/structure/statue/bananiumbananium
/obj/structure/statue/sandstonesandstone
/obj/structure/statue/snowsnow
/obj/structure/statue/bronzebronze
/obj/structure/statue/elder_atmosianElder Atmosian
/obj/structure/statue/goliathGoliath
/obj/item/chiselOther Stuff

Define Details

SCULPT_SOUND_INCREMENT

This controls the delay for the sculpt rock breaking sound +Every 4th iterator while sculpting will emit a sound (rougly every couple of seconds)

\ No newline at end of file diff --git a/code/modules/asset_cache.html b/code/modules/asset_cache.html new file mode 100644 index 0000000000000..27ee253f7d453 --- /dev/null +++ b/code/modules/asset_cache.html @@ -0,0 +1,17 @@ +code/modules/asset_cache/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Asset cache system

Framework for managing browser assets (javascript,css,images,etc)

+

This manages getting the asset to the client without doing unneeded re-sends, as well as utilizing any configured cdns.

+

There are two frameworks for using this system:

+

Asset datum:

+

Make a datum in asset_list_items.dm with your browser assets for your thing.

+

Checkout asset_list.dm for the helper subclasses

+

The simple subclass will most likely be of use for most cases.

+

Call get_asset_datum() with the type of the datum you created to get your asset cache datum

+

Call .send(client|usr) on that datum to send the asset to the client. Depending on the asset transport this may or may not block.

+

Call .get_url_mappings() to get an associated list with the urls your assets can be found at.

+

Manual backend:

+

See the documentation for /datum/asset_transport for the backend api the asset datums utilize.

+

The global variable SSassets.transport contains the currently configured transport.

+

Notes:

+

Because byond browse() calls use non-blocking queues, if your code uses output() (which bypasses all of these queues) to invoke javascript functions you will need to first have the javascript announce to the server it has loaded before trying to invoke js functions.

+

To make your code work with any CDNs configured by the server, you must make sure assets are referenced from the url returned by get_url_mappings() or by asset_transport's get_asset_url(). (TGUI also has helpers for this.) If this can not be easily done, you can bypass the cdn using legacy assets, see the simple asset datum for details.

+

CSS files that use url() can be made to use the CDN without needing to rewrite all url() calls in code by using the namespaced helper datum. See the documentation for /datum/asset/simple/namespaced for details.

\ No newline at end of file diff --git a/code/modules/asset_cache/asset_cache_item.html b/code/modules/asset_cache/asset_cache_item.html new file mode 100644 index 0000000000000..8b3a758dc1053 --- /dev/null +++ b/code/modules/asset_cache/asset_cache_item.html @@ -0,0 +1 @@ +code/modules/asset_cache/asset_cache_item.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/asset_cache/asset_cache_item.dm

/datum/asset_cache_itemAn internal datum containing info on items in the asset cache. Mainly used to cache md5 info for speed.
\ No newline at end of file diff --git a/code/modules/asset_cache/asset_list.html b/code/modules/asset_cache/asset_list.html new file mode 100644 index 0000000000000..2bb6dbed7b65b --- /dev/null +++ b/code/modules/asset_cache/asset_list.html @@ -0,0 +1,5 @@ +code/modules/asset_cache/asset_list.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/asset_cache/asset_list.dm

/datum/asset/simpleIf you don't need anything complicated.
/datum/asset/simple/namespacedNamespace'ed assets (for static css and html files) +When sent over a cdn transport, all assets in the same asset datum will exist in the same folder, as their plain names. +Used to ensure css files can reference files by url() without having to generate the css at runtime, both the css file and the files it depends on must exist in the same namespace asset datum. (Also works for html) +For example blah.css with asset blah.png will get loaded as namespaces/a3d..14f/f12..d3c.css and namespaces/a3d..14f/blah.png. allowing the css file to load blah.png by a relative url rather then compute the generated url with get_url_mappings(). +The namespace folder's name will change if any of the assets change. (excluding parent assets)
/datum/asset/jsonA subtype to generate a JSON file from a list
\ No newline at end of file diff --git a/code/modules/asset_cache/assets/body_zones.html b/code/modules/asset_cache/assets/body_zones.html new file mode 100644 index 0000000000000..bfeee2467fd65 --- /dev/null +++ b/code/modules/asset_cache/assets/body_zones.html @@ -0,0 +1 @@ +code/modules/asset_cache/assets/body_zones.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/asset_cache/assets/body_zones.dm

/datum/asset/simple/body_zonesSpritesheet for body zones. Necessary if your tgui uses BodyZoneSelector
\ No newline at end of file diff --git a/code/modules/asset_cache/assets/chemmaster.html b/code/modules/asset_cache/assets/chemmaster.html new file mode 100644 index 0000000000000..02132a3ae08ee --- /dev/null +++ b/code/modules/asset_cache/assets/chemmaster.html @@ -0,0 +1 @@ +code/modules/asset_cache/assets/chemmaster.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/asset_cache/assets/chemmaster.dm

/datum/asset/spritesheet/chemmasterIcons for containers printed in ChemMaster
\ No newline at end of file diff --git a/code/modules/asset_cache/assets/crafting.html b/code/modules/asset_cache/assets/crafting.html new file mode 100644 index 0000000000000..78dadb0a18ce5 --- /dev/null +++ b/code/modules/asset_cache/assets/crafting.html @@ -0,0 +1 @@ +code/modules/asset_cache/assets/crafting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/asset_cache/assets/crafting.dm

/datum/asset/spritesheet/craftingRepresentative icons for the contents of each crafting recipe
\ No newline at end of file diff --git a/code/modules/asset_cache/assets/icon_ref_map.html b/code/modules/asset_cache/assets/icon_ref_map.html new file mode 100644 index 0000000000000..2dc4c186b59f4 --- /dev/null +++ b/code/modules/asset_cache/assets/icon_ref_map.html @@ -0,0 +1 @@ +code/modules/asset_cache/assets/icon_ref_map.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/asset_cache/assets/icon_ref_map.dm

/datum/asset/json/icon_ref_mapMaps icon names to ref values
\ No newline at end of file diff --git a/code/modules/asset_cache/assets/uplink.html b/code/modules/asset_cache/assets/uplink.html new file mode 100644 index 0000000000000..8b239d79f54ce --- /dev/null +++ b/code/modules/asset_cache/assets/uplink.html @@ -0,0 +1 @@ +code/modules/asset_cache/assets/uplink.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/asset_cache/assets/uplink.dm

/datum/asset/json/uplinkSends information needed for uplinks
\ No newline at end of file diff --git a/code/modules/asset_cache/transports/asset_transport.html b/code/modules/asset_cache/transports/asset_transport.html new file mode 100644 index 0000000000000..b9c443e2d4e14 --- /dev/null +++ b/code/modules/asset_cache/transports/asset_transport.html @@ -0,0 +1 @@ +code/modules/asset_cache/transports/asset_transport.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/asset_cache/transports/asset_transport.dm

ASSET_CACHE_TELL_CLIENT_AMOUNTWhen sending mutiple assets, how many before we give the client a quaint little sending resources message
/datum/asset_transportBase browse_rsc asset transport

Define Details

ASSET_CACHE_TELL_CLIENT_AMOUNT

When sending mutiple assets, how many before we give the client a quaint little sending resources message

\ No newline at end of file diff --git a/code/modules/asset_cache/transports/webroot_transport.html b/code/modules/asset_cache/transports/webroot_transport.html new file mode 100644 index 0000000000000..20a08ea5e4adc --- /dev/null +++ b/code/modules/asset_cache/transports/webroot_transport.html @@ -0,0 +1 @@ +code/modules/asset_cache/transports/webroot_transport.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/asset_cache/transports/webroot_transport.dm

/datum/asset_transport/webrootCDN Webroot asset transport.
\ No newline at end of file diff --git a/code/modules/atmospherics/Atmospherics.html b/code/modules/atmospherics/Atmospherics.html new file mode 100644 index 0000000000000..09c8a6ab957f0 --- /dev/null +++ b/code/modules/atmospherics/Atmospherics.html @@ -0,0 +1,352 @@ +code/modules/atmospherics/Atmospherics.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Atmospherics

1. Preamble

+

This file will be written in the first person in the interest of having a laid back style, as some of the concepts here would be ass to read as technical writing. Understand that this isn't the work of one person, but the combined efforts of several contributors. It is a living document, and one you should strive to keep up to date.

+

I have stolen adapted this document from the work of duncathan, an off and on maintainer who is responsible for the majority of the quality of the current atmos system. Hii pushed through several code cleanliness and sanity refactors to the system, and wrote the rundown of gas mixtures you'll find in this document. See the original for his draft.

+

Now, the purpose of this bit of documentation.

+

Over the history of /tg/ there have been several periods where one or no active coders understood how atmospherics works, or even how it was intended to work. We've lost several major pieces of functionality, not because none knew how they worked, but because none knew that they should work, or even that they existed.

+

Atmospherics tends to be a somewhat cloudy corner of our codebase, unless you know exactly what to look for noticing that something is broken can be a feat in and of itself.

+

My goal here is to solve that problem once and for all. Not everything will be documented in this file, I won't go line by line. I will however describe how things ought to work, and how some of the more complex stuff is meant to run.

+

Atmospherics is a very complicated and intimidating system of SS13, and as such very few contributors have ever made changes to it. Even fewer is the number of contributors who have made changes to the more fundamental aspects of atmos, such as Environmental Atmos or gas mixtures. There are several other factors for this, of course. In the case of Environmental, its arcane nature coupled with its extremely important gameplay effects leave it a very undesirable target for even the least sane coder. As for gas mixtures, they were virtually untouchable without extensive reworks of the code. This paste-bin is a good example; it lists all the files one would need to make changes in order to add a new type of gas in the old system. As you can imagine, the sheer bulk of work one would need to do to accomplish this essentially invalidated any such attempts. However, my primary goal is to bring atmos to a state where any coder will be able to understand how and why it works, as well as cleanly and relatively easily make changes or additions to the system. While much progress to this end has been achieved, still very few have taken advantage of the new frameworks to try to implement meaningful features or changes. The purpose of this document is to lay out the inner workings of the entire atmos system, such that someone who does not have an intimate understand of the system like myself will be able to contribute to the system nonetheless.

+

Recognizing this desire, I hope and believe that you who are reading this are willing to learn and contribute.

+

Thank you.

+

2. Introduction to Atmos

+

Hello! So glad you could join us.

+

Atmospherics is the system we use to simulate gases. Might as well get that out of the way. It is made up of several major parts, and a few more minor ones. We'll be covering the air subsystem, gas mixtures, reactions, environmental flow, and pipenets in the document.

+

If you'd like to understand more about how environmental atmos works after reading the relevant subsection, go to Appendix B. It discusses how to properly visualize the system, and what different behavior looks like.

+

Now then, into the breach.

+

3. The Air Controller

+

Cyclical graph of one atmos tick

+

Figure 3.1: The structure of one air controller tick. Not totally accurate, but it will do

+

The air controller is, at its core, quite simple, yet it is absolutely fundamental to the atmospheric system. The air controller is the clock which triggers all continuous actions within the atmos system, such as vents distributing air or gas moving between tiles. The actions taken by the air controller are quite simple, and will be enumerated here. Much of the substance of the air ticker is due to the game's master controller, whose intricacies I will not delve into for this document. I will however go into more detail about how SSAir in particular works in Chapter 6. In any case, this is a simplified list of the air controller's actions in a single tick:

+
    +
  1. Rebuild Pipenets +
      +
    • Runs each time SSAir processes, sometimes out of order. It ensures that no pipeline sit unresolved or unbuilt
    • +
    • Processes the rebuild_queue list into the expansion_queue list, and then builds a full pipeline piecemeal. We do a ton of fenagling here to reduce overrun
    • +
    +
  2. +
  3. Pipenets +
      +
    • Updates the internal gasmixes of attached pipe machinery, and reacts the gases in a pipeline
    • +
    • Calls process() on each /datum/pipenet in the networks list
    • +
    +
  4. +
  5. Machinery +
      +
    • Handles machines that effect atmospherics, think vents, the supermatter, pumps, all that
    • +
    • Calls process_atmos() on each /obj/machinery (typically /obj/machinery/atmospherics) in the atmos_machinery list
    • +
    • May remove the machinery from said list if process_atmos() returns PROCESS_KILL
    • +
    +
  6. +
  7. Active turfs +
      +
    • This is the heart and soul of environmental atmos, see more details below
    • +
    • All you need to know right now is it manages moving gas from tile to tile
    • +
    • Calls process_cell() on each /turf/open in the active_turfs list
    • +
    +
  8. +
  9. Excited groups +
      +
    • Manages excited groups, which are core to working flow simulation
    • +
    • More details to come, they handle differences between gasmixtures when active turfs can't do the job
    • +
    • Increases the breakdown_cooldown and dismantle_cooldown for each /datum/excited_group in the excited_groups list
    • +
    • If either cooldown for a given excited group has passed its threshold
    • +
    • Calls self_breakdown() or dismantle() appropriately on the excited group.
    • +
    +
  10. +
  11. High pressure deltas +
      +
    • Takes the gas movement from Active Turfs and uses it to move objects on said turfs
    • +
    • Calls high_pressure_movements() on each /turf/open in the high_pressure_delta list.
    • +
    • Sets each turf's pressure_difference to 0
    • +
    +
  12. +
  13. Hotspots +
      +
    • These are what you might know as fire, at least the effect of it.
    • +
    • They deal with burning things, and color calculations, lots of color calculations
    • +
    • Calls process() on each /obj/effect/hotspot in the hotspots list
    • +
    +
  14. +
  15. Superconductivity +
      +
    • Moves heat through turfs that don't allow gas to pass
    • +
    • Deals with heating up the floor below windows, and some other more painful heat stuff
    • +
    • Calls super_conduct() on each /turf in the active_super_conductivity list
    • +
    +
  16. +
  17. Atoms +
      +
    • Processes things in the world that should know about gas changes, used to account for turfs sleeping, I'll get more into that in a bit
    • +
    • Calls process_exposure() on each /atom in the atom_process list
    • +
    +
  18. +
+

4. Gas Mixtures

+

If the air controller is the heart of atmos, then gas mixtures make up its blood. The bulk of all atmos calculations are performed within a given gas mixture datum (an instance of /datum/gas_mixture), be it within a turf or within an emergency oxygen tank or within a pipe. In particular, /datum/gas_mixture/proc/share() is the cornerstone of atmos simulation, as it and its stack perform all the calculations for equalizing two gas mixtures.

+

Gas mixtures contain some of the oldest code still in our codebase, and it is remarkable that overall, the logic behind the majority of gas mixture procs has gone unchanged since the days of Exadv1. Despite being in some sense "oldcode", the logic itself is quite robust and based in real world physics. Thankfully, gas mixtures already are quite well documented in terms of their behavior. Their file is well commented and kept up to date. I will, however, elaborate on some of the less obvious operations here. Additionally, I will document the structure of gas lists, and how one should interface with a gas mixture should you choose to use one in other code.

+

Now don't be scared by the code mind, it's SPOOKY PHYSICS but it's not the devil, we can break it down into component parts to understand it.

+
//transfer of thermal energy (via changed heat capacity) between self and sharer
+		if(new_self_heat_capacity > MINIMUM_HEAT_CAPACITY)
+			temperature = (old_self_heat_capacity*temperature - heat_capacity_self_to_sharer*temperature_archived + heat_capacity_sharer_to_self*sharer.temperature_archived)/new_self_heat_capacity
+
+

Snippet 4.1: excerpt from /datum/gas_mixture/proc/share()

+

The snippet above is an example of one particularly strange looking calculation. This part of share() is updating the temperature of a gas mixture to account for lost or gained thermal energy as gas moves to/from the mixture, since gases themselves carry heat. To understand this snippet, it is important to understand the difference between heat and temperature. For the most part, the average coder need only concern himself with temperature, as it is a familiar experience for anybody. However, internally in atmos, heat (thermal energy) is the truly important quantity. Heat is defined as temperature multiplied by heat capacity, and is measured in joules. Typically within atmos, we are more concerned with manipulating heat than temperature; however, temperature is tracked rather than heat largely to make interfacing with the system simpler for the average coder. Thus, this snippet modifies heat in terms of temperature - it adds/subtracts three terms, each of which measure heat, to determine the new heat in the gas mixture. This heat is then divided by the mixture's heat capacity in order to determine temperature.

+

One trick to understanding passages like this is to do some simple dimensional analysis. Look only at the units, and ensure that whenever a variable is assigned that it is being assigned the appropriate unit. The snippet previously discussed can be represented with the following units: temperature = ((J/K)*K - (J/K)*K + (J/K)*K)/(J/K). Simplified, you get (J-J+J)*K/J and then simply J*K/J and K, verifying that temperature is being set to a value in kelvins. This trick has proven invaluable to me when debugging the inner workings of gas mixtures.

+

Gases

+

The true beauty of the gas mixture datum is how it represents the gases it contains. A bit of history: gas mixtures used to represent gas in two ways - there were the four primary gases (oxygen, nitrogen, carbon dioxide, and plasma) which were hardcoded. Each gas mixture had two vars (moles and archived moles, a concept to be explained later) to represent each of these gases. Calculations such as thermal energy made use of predefined constants for these hardcoded gases. The benefit of this was that they were extremely quick - only a single datum var access was needed for each one. In contrast, there were trace gases, for which there were a list of gas datums. The only trace gas available in normal gameplay was nitrous oxide (N2O or sleeping agent), though through adminnery it was possible to create oxygen agent B and volatile fuel, curious gases which will be described later for historical reasons. Trace gases, in contrast to hardcoded gases, were quite modular. To add a new trace gas one needed only to define a new subtype of /datum/gas and add appropriate behavior wherever desired, such as breath code. Unfortunately, of course, trace gases were slooooow. Calculations on trace gases were significantly more costly than hardcoded gases. The problem was obvious - it seemed impossible to have a gas definition which shared the modularity of trace gases without sacrificing too much of the performance of the hardcoded gases.

+

What then to do? There was no option to port an improvement from another codebase. As far as I am aware, there have been no significant downstream improvements to gas mixtures. The other major upstream codebase, Baystation12, uses a very different atmos system; in particular, their XGM gas mixtures have their own solution to this problem. To summarize XGM, there is a singleton which has associative lists of gas metadata (information such as specific heat, or which overlay to display when the gas is present) which gets accessed whenever such information is needed. To count moles, each gas mixture has an associative list of gas ids mapped to mole counts. There were a couple of problems with this approach: 1. There was no measure of archived moles. While it would be easy to simply add a second associative list, this has non-trivial memory implications as well as a potential increase to total datum var accesses within internal atmos calculations. 2. The singleton used for storing metadata helps with the memory impact that using full datums would have, but does not properly address the cost of datum var accesses, as to access metadata you must still access a datum var on the singleton.

+

For some time, without a clear solution, we simply stuck to the status quo and left gases non-modular. Eventually, however, there was an idea.

+

Enter Listmos.

+

The Gas List

+

The solution we came to was beautifully simple, but founded on some unintuitive principles. While datum var accesses are quite slow, proc var accesses are acceptable. If we use a reference for a given var, this can be exploited by "caching" the reference inside of a proc var. How can we take advantage of this without using a datum, thus nullifying the benefit?

+

The answer was to use a list. The critical realization was that a gas datum functioned more so as a struct than as a class. There were no procs attached to gas datums; only vars. While DM lacks a true struct with quick lookup times, a list works very well to perform the same function. Thus, the current structure of gas was created, under the name Listmos.

+

Each gas mixture has an associative list, gases, which maps according to a key to a particular gas. This gas is itself a list (not an associative list, mind) with three elements; these elements correspond to the moles, archived moles, and to another list. This final list is a singleton - only one instance of it exists per gas, and all gas instances of a particular type point to this same list as their third element. The final list contains the metadata for the gas, such as specific heat or the name of the gas. The structure of the metadata list varies according to how many attributes are defined overall for all gases, but it is also non-associative since the structure can never change post-compile, so we save a little bit of performance by avoiding associative lookups.

+

Each type of gas is defined by defining a new subtype of /datum/gas. These datums do not get instantiated; they merely serve as a convenient and familiar means for a coder unfamiliar with the inner workings of listmos to define a new gas. Additionally, the type paths serve a second use as the keys used to access a particular gas within the gases list. It is easiest to demonstrate the manipulation of gas, including these list accesses, with an example.

+

Interfacing with a Gas Mixture

+
var/datum/gas_mixture/air = new
+air.assert_gas(/datum/gas/oxygen)
+air.gases[/datum/gas/oxygen][MOLES] = 100
+world << air.gases[/datum/gas/oxygen][GAS_META][META_GAS_NAME] //outputs "Oxygen"
+world << air.gases.heat_capacity() //outputs 2000 (100 mol * 20 J/K/mol)
+air.gases[/datum/gas/oxygen][MOLES] -= 110
+air.garbage_collect() //oxygen is now removed from the gases list, since it was empty
+
+

Snippet 4.2: gas mixture usage examples

+

Of particular note in this snippet are the two procs assert_gas() and garbage_collect(). These procs are very important while interfacing with gas mixtures. If you are uncertain about whether a given mixture has a particular gas, you must use assert_gas() before any reads or writes from the gas. If you fail to use assert_gas() then there will be runtime errors when you try to access the inner lists. When you remove any number of moles from a given gas, be sure to call garbage_collect(). This proc removes all gases which have mole counts less than or equal to 0. This is a memory and performance enhancement for list accesses achieved by reducing the size of the list, and also saves us from having to do sanity checks for negative moles whenever gas is removed. As a quick reference, here is a list of common procs/vars/list indices which the average coder may wish to use when interfacing with a gas mixture.

+
Gas Mixture Datum
+
    +
  • /datum/gas_mixture/proc/assert_gas() - Used before accessing a particular type of gas.
  • +
  • /datum/gas_mixture/proc/assert_gases() - Shorthand for calling assert_gas() multiple times.
  • +
  • /datum/gas_mixture/proc/garbage_collect() - Used after removing any number of moles from a mixture.
  • +
  • /datum/gas_mixture/proc/return_pressure() - Pressure is what should be displayed to players to quantify gas; measured in kilopascals.
  • +
  • /datum/gas_mixture/var/temperature - Measured in kelvins. Useful constants are T0C and T20C for 0 and 20 degrees Celsius respectively, and TCMB,the temperature of space and the lower bound for temperature in atmos.
  • +
  • /datum/gas_mixture/var/volume - Measured in liters.
  • +
+

While we're on the subject, /datum/gas_mixture has two subtypes. +The first is /datum/gas_mixture/turf, which exists for literally one purpose. When a turf is empty, we want it to have the same heat capacity as space. This lets us achieve that by overriding heat_capacity()

+

The second is /datum/gas_mixture/immutable, which itself has two subtypes. +The type is built to allow for gasmixtures that serve as infinite sources of "something", which can't be changed or mutated. +It's used by /datum/gas_mixture/immutable/space, which implements some particular things for heat_capacity() and some optimizations for gas operations. +It's also implemented by /datum/gas_mixture/immutable/planetary, which is used for planetary turfs, and has some code that makes actually having a gasmix possible.

+
Gas List
+
    +
  • gases[path][MOLES] - Quantity of a particular gas within a mixture.
  • +
  • gases[path][GAS_META][META_GAS_NAME] - The long name of a gas, ex. "Oxygen" or "Hyper-noblium"
  • +
  • gases[path][GAS_META][META_GAS_ID] - The internal ID of a given gas, ex. "o2" or "nob"
  • +
+

Reactions

+

While defining a new gas on its own is very simple, there is no gas-specific behavior defined within /datum/gas. This behavior gets defined in a few places, notably breath code (to be discussed later) and in reactions. The most important and well known reaction in SS13 is fire - the combustion of plasma. Reactions are used for several things - in particular, it is conventional (though by no means enforced) that to form a gas, a reaction must occur. Creating a new reaction is fairly simple, this is the area of atmos that has received the most attention over the last few years, and the best place to start. Don't be scared of the size of reactions.dm, it's not that complex.

+

There are two procs needed when defining a new reaction, /datum/gas_reaction/proc/init_reqs() and /datum/gas_reaction/proc/react(). init_reqs() initializes the requirements for the reaction to occur. There is a list, min_requirements, which maps gas paths to required amount of moles. It also maps three specific strings ("TEMP", "MAX_TEMP" and "ENER") to temperature in kelvins and thermal energy in joules. More behavior could easily be added here, but it hasn't yet for performance reasons because no reactions have need of it.

+

As for react(), it is where all the behavior of the reaction is defined. The proc must return one of NO_REACTION, REACTING, or STOP_REACTIONS. The proc takes one or optionally two arguments. The first, mandatory, argument is a gas mixture on which to perform calculations; this mixture is what is reacting. The second, optional, argument is a turf or pipenet, specifically the thing which contains the gas mixture. You may choose for the reaction to affect the object in some way. Note that it is conventional for constants within reactions to be #define'd at the top of the file and #undef'd at the end.

+

5. Environmental Atmos

+

This is a rather large subject, we will need to cover gas flow, turf sleeping, superconduction, and much more. Strap in and enjoy the ride!

+

A Word On Share()

+

Each pair of turfs will only ever call share() on each other once. They use an archived cycle to keep track of +this ordering

+

That means turf A calling share on turf B should work the same as turf B calling share on turf A

+

The key idea of FEA, the core sharing system we use is that neighboring cells should effectively equalize with each other. +So taken on a line, you'd have two sharing partners, the cells to your left and right. The end goal of the simulation is for all the tiles on the line to have the same mix. But we can't just jump to that. So each "tick" we take our mix and average it with the mixes of the two tiles next to us.

+

There's an equation for this that's considered standard in heat simulation. (Watch this video: https://www.youtube.com/watch?v=ly4S0oi3Yz8) +We can't use it because means each pair of turfs needs to talk to each other twice, which is pain expensive. That and I'm pretty sure it would prevent us from yielding

+

So instead of a complex form of averaging, we portion up tiles. So if you have two neighbors and you have something they don't, you can give them each a third. Have to keep one for ourselves mind, because otherwise we'll run out of gas. They can then act on this portion however they like, and we can likewise act on a portion of them to our liking.

+

We know how much gas a tile had at the outset because of the archived moles list index. If we take more then we're owed in any shares before all other turfs have had their say, we could end up with negative moles. We expend a lot of effort to avoid this.

+

The math for this looks like (totaldeltagas)/(neighborcount + 1)

+

You may notice something like this in process_cell(). It's not quite the same though.

+

Back in the old FEA days, neighbor count was hardcoded to 4 (Likely because this is what cell sharing on an infinite grid would look like). This means that turf A -> turf B is the same as turf B -> turf A, because they're each portioning up the gas in the same way.

+

But when we moved to LINDA, we started using the length of our atmos_adjacent_turfs list (or an analog). +We need this so things like multiz can work, and so tiles in a corner share in a way that makes sense.

+

Because of this, turf A -> turf B was no longer the same as turf B -> turf A, assuming one of those turfs had a different neighbor count, from I DON'T KNOW WALLS?

+

The fix for this was to use our neighbor count when moving gas from our tile to someone else's, and use the sharer's neighbor count when taking from it.

+

This makes sense intuitively if you think of it like portioning up a tile, but I've included a rundown to make +it a bit easier to prove to yourself.

+
+Take a look +

I have 10 +You have 20 +let's share +I've got 2 partners +you've got 3 partners +so you want to give me 1/4th of your gas +I want to give you 1/3rd of my gas

+

the total gas diff between me and you is -10 +since it's negative you get to decide how to portion it +so the total amount to share is -2.5 +I end up with 12.5 +you end up with 17.5

+

again

+

total diff is -5 +to share is 1.25 +I end up with 13.75 +you end up with 16.25

+

again

+

total diff is -2.5 +to share is 0.3125 +I end up with 14.0625 +you end up with 15.9375

+
+

We need to do this because if the portions get mixed up, our archived gas list ends up lying about how much of each gas type we have available to share. +This can lead to negative moles, which the system is not prepared for.

+

This is also why we queue space's sucking till the end of a tile's process_cell() btw, by that point we can ensure that no other tile will need to check for our mix, so we can freely violate our portioning.

+

Active Turfs

+

+

Figure 5.1: A visual of the algorithm process_cell() implements, ignoring our optimizations

+

Active turfs are the backbone of how gas moves from tile to tile. While most of process_cell() should be easy enough to understand, I am going to go into some detail about archiving, since I think it's a common source of hiccups.

+
    +
  • archived_cycle this var stores the last cycle of the atmos loop that the turf processed on. The key point to notice here is that when processing a turf, we don't share with all its neighbors, we only talk to those who haven't processed yet. This is because the remainder of process_cell() and especially share() are like addition. We can add in any order we like, and we only need to add once. This is what archived gases are for by the way, they store the state of the relevant tile before any processing occurs.
  • +
+

Alright then, with that out of the way, what is an active turf.

+

This is actually the main success of LINDA, the math for gas movement is r4407 goon code or older, but that implementation (FEA) had a glaring issue. All turfs processed, or rather, all /simulated turfs processed. There was a separate type for /unsimulated turfs, but that was mostly used for things like centcom or space. Aside from that all the turfs that could in theory have gas on them needed to process each tick. process_cell() didn't quite look how it does now mind, but this was still a horrible state of affairs.

+

The major difference between then and now is our turfs will stop processing. They sit idle most of the round, wake up when something changes around them, process until no major changes are happening, and then go to sleep.

+

Active turfs also poke all the listening objects sitting on them, and start to process them so they can react to heat or gas changes. We do this so objects don't need to process when nothing has changed, but they also can operate through a turf sleeping. In essence this is like waking up things that ought to be listening to us.

+

If we just used active turfs sleeping would be easy as pie, we could do it turf by turf. But we don't.

+

Excited Groups

+

+

+

Figure 5.2.1-5.2.2: Settled VS Unsettled gases, this is what excited groups do

+

I didn't mention this above, but active turf processing, or really share(), has a fatal flaw. The amount of gas moved per tick goes down exponentially the further away a turf is from the source of changes, or diffs.

+

With only active turfs breaches would never settle, and as soon as a tile becomes active it would never rest again. (This is one of the reasons I wrote this document by the way, excited groups nearly totally broke around about 2016, and none at the time noticed because the code was so twisted none knew how it ought to work, so it persisted for 4 years past that)

+

So active turfs are bad at evening out diffs. What can we do to solve this?

+

Enter the excited group. We hold a list of all the turfs that have talked to each other, then we keep track of how active those turfs are. When they start to wind down, we spread all the gas out evenly between them, and the group starts to spread again. They tend to fill the space given to them, so be careful with open plan stations.

+

This is self_breakdown(), our equalization step. It cuts down on churn, and keeps things flowing smoothly.

+

I've been talking kinda abstractly about turfs sleeping. That's because turfs on their own don't stop waiting to process once they have an excited group. Groups have secondary roles as the grim reaper of active turfs. When a group is totally inactive, and nothing whatsoever is going on, it will dismantle(), putting all of the turfs inside it to sleep, and killing itself.

+

A brief romp to talk about excited groups and LAST_SHARE_CHECK

+

Excited groups can tell the amount of diff being shared by hooking into a value share() sets on gasmixes, the absolute amount of gas shared by each tile. The issue is this isn't pressure, its molar count. So heat being shared in a sealed room causes excited groups to break down, then reform from sources. This isn't a major issue due to how breakdown evens things out, but it's worth knowing.

+

Back to the main thread

+

Now this would all be fine, but as I'm sure you've noticed, there's a crouching pile of lag hiding here. What happens if the excited group has turfs with a fire on them over in cargo, but the flow of gas started in medical? There's no point processing the majority of the tiles, but we still want to keep the group alive for equalization.

+

Turfs can have a little nap

+

Originally LINDA only had the above 2 constructions, but we ran into a problem when making planetary turfs. The old implementation was mutable, but shared with a copy of its initial mix each tick. This lead to problems. In essence, the groups never stopped spreading so long as a source of diffs existed. This is because the job of excited groups is to move the diffs from the source, to the edges of the group. But we put these mixes on huge open planets. Doesn't really work out so well.

+

To combat this, a timer was added to each turf. It reset when a significant share was made, but otherwise if enough time passed the turf was forcibly removed from the active_turfs list. Unfortunately for us, this had unintended side effects.

+

When a turf is removed from active, the excited group is broken down, as it's assumed that the proc will only be called when the landscape of the map itself has changed. You begin to see the issue. With large enough space, excited groups broke, totally. Constant rebuilds into dismantles, cycling forever.

+

Now this issue here is we'd like to keep this napping, but we don't want to garbage_collect() the excited group constantly.

+

So, a new proc was added, sleep_active_turf(). It removes the active turf from processing, but doesn't garbage_collect() the group.

+

You'd think this would cause issues with maintaining the shape of an excited group, however this isn't actually a priority, since garbage_collect() and the subsequent rebuild in process_cell() causes turfs that are actually active to reform, just as it always has. This has benefits, as it lessens the tendency of one group to cover a huge space, equalize all at once, and fuck with things.

+

There's another issue here however, how do we deal with things that react to heat? A firelock shouldn't just open because the turf that the alarm is on went to sleep. Thus, atom_process, as I mentioned before, a list of atoms with requirements and things to do. It processes them until their requirements are not met, then it removes them from its list them.

+

There's one more major aspect of environmental atmos to cover, and while it's not the most misunderstood, it is the code with the worst set dressing.

+

Superconduction, or why var names really matter

+

+

Figure 5.3: The death of a pug, and a visual description of what superconduction does

+

Superconduction, an odd name really, it doesn't really describe much of anything aside from something to do with heat. It gets worse, trust me.

+

Superconduction is the system that makes heat move through solid objects, so in theory walls, windows, airlocks, so on. This is another one that just broke one day, and none noticed cause none knew what it was meant to do.

+

There's another issue with it, the var names don't mean what you think, and it is very old code, so it's hard to grasp. You can do it, you've made it this far.

+

So then, what does superconduction do, and what do all these damn vars mean.

+

What does superconduction do?

+

As I mentioned above, superconduction shares heat where heat can't normally travel. It does this by heating up the turf the heat is in, not the gasmix, the turf itself. This temperature is then shared with adjacent turfs, based on thermal_conductivity, a value between 0 and 1 that slows the heat share. Turfs also have a heat_capacity, which is how hard it is to heat, along with providing a threshold for the lowest temperature that can melt the turf.

+

There's one more, and it's a doozy. atmos_superconductivity is a set of directions that we cannot share with. I know. It's set in can_atmos_pass(), a rather heady set of procs that build atmos_adjacent_turfs, and also modify atmos_superconductivity.

+

So then, a review.

+
    +
  • thermal_conductivity Ranges from 0 to 1, effects how easy it is for a turf to receive heat
  • +
  • heat_capacity Large numbers mean it's harder to heat, but holds more heat. You get it. Also used for turf melting
  • +
  • atmos_supeconductivity Bitfield of directions we can't share in, this is often set by firelocks and such
  • +
+

One more thing, turfs will superconduct until they either run out of energy, or temperature. This is a stable system because turfs "conduct" with space, which is why floods of heat will equalize to about 690k over time.

+

6. Processing time, Dynamic scaling, and what slows us down the most

+

This will require/impart a light understanding of the master controller, I will go over what makes the atmos subsystem slow, what can be done, and what it effects.

+

First, some new vocab.

+
    +
  • wait Subsystem var, it is the amount of time to "wait" between each fire, or process. Measured in deciseconds.
  • +
  • MC_TICK_CHECK A define that checks to see if the subsystem has taken more then it's allotted time. In the case of SSAir we use it to allow for dynamic scaling
  • +
+

The MC entry for SSAir is very helpful for debugging, and it is good to understand before I talk about cost.

+

+

Figure 6.1: SSAir sitting doing little to nothing turf wise, only processing pipenets and atmos machines

+

If you aren't familiar with the default subsystem stats, you can see them explained here: [][http://codedocs.tgstation13.org/.github/guides/MC_tab.md]

+

The second line is the cost each subprocess contributed per full cycle, this is a rolling average. It'll give you a good feel for what is misbehaving. (The only exception to this is pipenet rebuilds, the last entry. Because of its nature as something that can happen at any time, it doesn't have a rolling average, instead it just displays the time it used last process)

+

The third line is the amount of "whatever" in each subprocess. Handy for noticing dupe bugs and crying at active turf cost. Speaking of, the last entry is the active turfs per overall cost. Not a great metric, but larger is better.

+

Now then, what the hell is going on in that image.

+

Dynamic scaling

+

SSAir has a wait of 5 deciseconds, or 500ms. This means it wants to fire roughly twice a second. You'll see in a moment why this hardly ever happens.

+

See that image from before? Notice how the cost of SSAir at rest is about 40ms? yeahhhhh.

+

The atmos subsystem was used as a testing ground for the robustness of the master-controller. It used to have a wait of 2 seconds, but that was lowered to 0.5 as it was thought that the system could handle it. It can! But this can have annoying side effects. As you know, we edge right up against 1/10th of the wait when sitting at rest, and if we start to make diffs...

+

+

Figure 6.2: SSAir when a high amount of active turfs are operating, with a large selection of gastypes for each tile

+

As you can see, active turfs can be really slow. Oh but it gets so much worse.

+

Active turf cost is mostly held up in react(), share() and compare(). react() and share() scale directly with the amount of gas in the air. compare() does better, but none of them do that great.

+

For this reason, and because excited groups spread gas out so much, we want to keep the variation of gastypes in the air relatively low.

+

react() is called for every active turf, and every pipenet. On each react call for reasons I don't want to go into right now, we need to iterate over every reaction and do a preliminary test. Therefor, the more datum reactions we have, the slower those two processes go.

+

+

Figure 6.3: The effects of a large excited group on overtime

+

It's hard to tell here because I took the picture right as it happen, but when large excited groups go through self_breakdown() they can overtime by a significant deal. This is because self_breakdown() can't be delayed, or done in two parts. We can't let an older gasmix that's already been collected have say 1000 mols of plasma added, then go into breakdown and delete it all. Thus, the overtime cost. This was with a excited group 900 tiles large though, so it isn't nearly ever this bad. It also scales with the amount of gases in the same way that share() does.

+

On the whole excited groups are the only major source of overrun, consider this a treatise on why that 900ms cost number next to atmos isn't making the server die. It's really that excited group mass equalizing constantly.

+

7. What we want atmos code to be

+

+

Figure 7.1: Diffs settling out as they should, around their sources

+

Our goal is not to simulate real life atmospherics. It is instead to put on a show of doing so. To sleep wherever we can, and fake it as hard as possible.

+

This is matters the most with environmental stuff, but it's everywhere you look.

+

The goal of active turfs, excited groups, and sleeping is to isolate the processing that needs to happen, and move diffs from their source to a consumer as much as we can. We don't simulate every tile, and most of the changes to LINDA have been directed at simulating as little as we can get away with.

+

Hell, space being cold is a hack we use to make gameplay interesting. There's a lot more stuff like this, because this isn't a simulator, it's a theater production.

+

Performance and gameplay are much more important then realism. In all your work on the subsystem, keep this in mind, and you'll build fast and quality code.

+

8. Pipelines and pipeline machinery

+

+

Figure 8.1: The structure of pipelines shown in color, components are a mix

+

/datum/pipeline handles the simulation of piping and such. It has 2 main actions, one of which you should know very well. The other is slightly more of a hurdle.

+

To understand pipelines you'll first need to understand how we process things like pumps or vents, atmos components that is. +To start with, a set of pipes is treated as one gas mixture, however several different components draw from this mix. Think pumps, heaters, mixers, vents, etc.

+

Since these components change the mix itself, we can't just let them all act on the mix at once, because that would cause concerns around the order in which things process, and so on. +We don't want canisters that blow up half the time, and the other half of the time don't. Better then to give each component its own gas mix that it alone can act on, that will be shared with the pipeline as a whole. Pipelines do something similar to active turfs by the way, they won't re-equalize their mix if nothing about the state of things has changed.

+

We do this sharing based on the proportion of volume between all the components. So if you want a component to consume more gas, give it a higher volume.

+

On that note, I'd like to be clear about something. In lines of connected pipes, each pipe doesn't have its own gasmix, they instead share mixes, as the pipes themselves won't have any effect on the state of the mix.

+

Oh, and pipelines react the gas mixture inside them, thought I should mention that.

+

A short note on rebuilding

+

Everything that needs a pipeline should have it before it's allowed to do any processing. This is to prevent runtimes and shitcode related things.

+

The act of rebuilding a pipeline is quite expensive however, since it involves iterating over all the connected pipes/components. +That's why we go to such great pains to make sure no large amount of work is allowed to happen at once. It's in an attempt to avoid the excited group settling type of lag I discussed above. It's ok for atmos to lock up for a short period if the system isn't killing the game as a whole.

+

All the other behavior of pipes and pipe components are handled by atmos machinery. I'll give a brief rundown of how they're classified, but the details of each machine are left as an exercise to the reader.

+

Pipes

+

The raw pipes. They have some amount of nuance, mostly around layers, but it's not too tricky to deal with.

+
Heat Exchange
+

The HE pipes, used to transfer heat from the pipe to the turf it's sitting on. These work directly with the pipeline's mix, which is ehhhh? Might need some touching up, perhaps making them subnets that do one heat transfer. Not too big a deal in any case, since they're the only thing that acts directly on a pipeline mix. They have some other behavior, like glowing when hot, but it's minor.

+

Components

+

These are the components I described above, they have some sort of internal gas mix that they act on in some manner.

+

The following classifications are very simple, but I'll run them over anyhow

+
Unary
+

Unary devices can only interact with one pipeline, aside from some exceptions, like the heat exchanger. The type path comes from the amount of pipelines a device expects gas-mixtures from. I'm sure you can see where this is going.

+
Binary
+

Binary devices connect to 2 pipelines.

+
Trinary
+

Trinary devices connect to 3 p- Listen you get it already.

+
Fusion
+

Finally something more interesting. Unfortunately I'm not familiar with the inner workings of this machine, but this folder deals with hypertorus code.

+

Other

+

This is for the oddballs, the one offs, the half useless things. Things that are tied to the module, but that we don't have a better spot for. Think meters, stuff like that.

+

Portable

+

These are the atmos machines you can move around. They interface with connectors to talk to pipelines, and can contain tanks. Not a whole lot more to discuss here.

+

9. A word on processing

+

You may have noticed that a large portion of the optimizations we do are focused around not checking to see if we need to do work.

+

This is essentially what active turfs are built around, and it's a somewhat unfinished project. There's still quite a few things in atmos, mostly machinery, that check each fire to see if they should be doing work. There's a general pattern to solving this sort of thing by the way, centralize the ways a bit of outside code can interact with a "thing", and then when the outside code does something that might warrant processing, start processing.

+

This attitude needs to be applied to a few large targets, and you may see it crop up when reading through the code. Keep this in mind, and make sure to respect the rules that describe how to work with the object, or things will go to shit.

+

Appendix A - Glossary

+
    +
  • LINDA - Our environmental gas system, created by Aranclanos, allegedly Beautiful in Spanish
  • +
  • Naps - A healthy pastime
  • +
  • Gas mixtures - The datums that store gas information, key to listmos and our underlying method of handling well gas
  • +
  • Diffs - The differences between gasmixes. We want to get rid of these over time, and clump them up with their sources so we don't need to process too many turfs
  • +
  • FEA - Finite Element Analysis, the underlying system our atmos is built on top of. Ugly in Spanish
  • +
  • Pipelines - The datum that represents and handles the gasmixtures of a set of pipes and their components
  • +
  • Components - Atmos machines that act on pipelines, modifying their mix
  • +
  • Active Turfs - An optimization of FEA implemented in LINDA that causes processing to only occur when differences are equalizing
  • +
  • Excited Groups - Evens out groups of active turfs to compensate for the way share() works
  • +
  • Carbon dioxide - What the fuck is this?]
  • +
  • MC - The master controller, makes sure all subsystems get the time they need to process, prevents lockups from one subsystem having a lot of work
  • +
+

Appendix B - How to test environmental atmos

+

If you really want to get a feeling for how flow works you'll need to load up the game and make some diffs. What follows is a short description of how to set up testing.

+

To start with, you should enable the TESTING define in compile_options.dm, this toggles VISUALIZE_ACTIVE_TURFS and TRACK_MAX_SHARE. These two debug methods are very helpful for understanding flow, but they aren't cheap, so we make them a compile time option. Active turfs will show up as green, don't worry about the second define, it's coming right up.

+

Past that you'll want to turn on excited group highlighting, to do this open the atmos control panel in the debug tab and toggle both personal view and display all. Display all makes turfs display their group and personal view shows/hides the groups from you, it's faster to toggle this, and this way you don't piss off the other debuggers on live.

+

+

Figure B.1: The atmospherics control panel

+

To go into more detail about the control panel, it is split into two parts. At the top there's a readout of some relevant stats, the amount of active turfs, how many times the subsystem has fired, etc. You can get the same information from the SSAir MC entry, but it's a bit harder to read. I detail this in the section on performance in environmental atmos. There's a button that turns the subsystem on/off in the top left, it's handy for debugging and seeing how things work step by step. Use it if you need to slow things down.

+

The rest of the panel is where things get more interesting, it's a readout of excited groups, sorted by area name. Most of it ought to be obvious, this is where TRACK_MAX_SHARE comes into effect. If it's defined, excited groups will have an extra entry which displays the largest molar diff in the group. This is useful for diagnosing group breakdown issues, and getting a feel for when a group will next breakdown. You can also toggle the visibility of each individual group here, and teleport to the group by clicking on the area name.

+

What to look for

+

+

An excited group can contain 2 things, sources of diffs, and dead tiles.

+

+

Of course, if left unchecked active turfs will spread further and further out, slowly lowering the amount of dead tiles.

+

+

Excited group breakdown causes them to recede and wrap around the things causing them

+

+

Cleanup causes a major recession due to turfs becoming suddenly no longer having an excited group

+

+

+

Due to how process_cell() works, active turfs will spread strangely when low on diffs

+

+

They will also occasionally nap, then immediately wake back up. This is either because of a discrepancy between compare() and LAST_SHARE_CHECK, or just the result of sleeping being a thing.

\ No newline at end of file diff --git a/code/modules/atmospherics/environmental/LINDA_fire.html b/code/modules/atmospherics/environmental/LINDA_fire.html new file mode 100644 index 0000000000000..44af83de7dd23 --- /dev/null +++ b/code/modules/atmospherics/environmental/LINDA_fire.html @@ -0,0 +1,2 @@ +code/modules/atmospherics/environmental/LINDA_fire.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/atmospherics/environmental/LINDA_fire.dm

/proc/init_hotspot_reactionsReturns reactions which will contribute to a hotspot's size.
/obj/effect/hotspotHotspot objects interfaces with the temperature of turf gasmixtures while also providing visual effects. +One important thing to note about hotspots are that they can roughly be divided into two categories based on the bypassing variable.
\ No newline at end of file diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.html b/code/modules/atmospherics/environmental/LINDA_turf_tile.html new file mode 100644 index 0000000000000..a376b315c0f89 --- /dev/null +++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.html @@ -0,0 +1 @@ +code/modules/atmospherics/environmental/LINDA_turf_tile.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/atmospherics/environmental/LINDA_turf_tile.dm

LAST_SHARE_CHECKSIMULATION
/datum/excited_groupEXCITED GROUPS

Define Details

LAST_SHARE_CHECK

SIMULATION

\ No newline at end of file diff --git a/code/modules/atmospherics/gasmixtures/reactions.html b/code/modules/atmospherics/gasmixtures/reactions.html new file mode 100644 index 0000000000000..56e8d9f05f216 --- /dev/null +++ b/code/modules/atmospherics/gasmixtures/reactions.html @@ -0,0 +1 @@ +code/modules/atmospherics/gasmixtures/reactions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/atmospherics/gasmixtures/reactions.dm

/datum/gas_reaction/water_vaporSteam Condensation/Deposition:
/datum/gas_reaction/miasterDry Heat Sterilization:
/datum/gas_reaction/plasmafirePlasma combustion:
/datum/gas_reaction/h2fireHydrogen combustion:
/datum/gas_reaction/tritfireTritium combustion:
/datum/gas_reaction/freonfireFreon combustion:
/datum/gas_reaction/nitrousformationNitrous oxide Formation:
/datum/gas_reaction/nitrous_decompNitrous Oxide Decomposition
/datum/gas_reaction/bzformationBZ Formation
/datum/gas_reaction/pluox_formationPluoxium Formation:
/datum/gas_reaction/nitrium_formationNitrium Formation:
/datum/gas_reaction/nitrium_decompositionNitrium Decomposition:
/datum/gas_reaction/freonformationFreon formation:
/datum/gas_reaction/nobliumformationHyper-Noblium Formation:
/datum/gas_reaction/halon_o2removalHalon Combustion:
/datum/gas_reaction/healium_formationHealium Formation:
/datum/gas_reaction/zauker_formationZauker Formation:
/datum/gas_reaction/zauker_decompZauker Decomposition:
/datum/gas_reaction/proto_nitrate_formationProto-Nitrate formation:
/datum/gas_reaction/proto_nitrate_hydrogen_responseProto-Nitrate Hydrogen Conversion
/datum/gas_reaction/proto_nitrate_tritium_responseProto-Nitrate Tritium De-irradiation
/datum/gas_reaction/proto_nitrate_bz_responseProto-Nitrate BZase Action
\ No newline at end of file diff --git a/code/modules/atmospherics/machinery/air_alarm/air_alarm_modes.html b/code/modules/atmospherics/machinery/air_alarm/air_alarm_modes.html new file mode 100644 index 0000000000000..5627720cf534e --- /dev/null +++ b/code/modules/atmospherics/machinery/air_alarm/air_alarm_modes.html @@ -0,0 +1 @@ +code/modules/atmospherics/machinery/air_alarm/air_alarm_modes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/atmospherics/machinery/air_alarm/air_alarm_modes.dm

/datum/air_alarm_modeVarious modes that an /obj/machinery/airalarm can assume.
/datum/air_alarm_mode/filteringThe default.
\ No newline at end of file diff --git a/code/modules/atmospherics/machinery/bluespace_vendor.html b/code/modules/atmospherics/machinery/bluespace_vendor.html new file mode 100644 index 0000000000000..6bee11500e5bc --- /dev/null +++ b/code/modules/atmospherics/machinery/bluespace_vendor.html @@ -0,0 +1 @@ +code/modules/atmospherics/machinery/bluespace_vendor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/atmospherics/machinery/bluespace_vendor.dm

BS_MODE_OFFDefines for the mode of the vendor

Define Details

BS_MODE_OFF

Defines for the mode of the vendor

\ No newline at end of file diff --git a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.html b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.html new file mode 100644 index 0000000000000..3b41c017d596b --- /dev/null +++ b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.html @@ -0,0 +1 @@ +code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm

OUTPUT_MAXpressure_checks defines for external_pressure_bound and input_pressure_min

Define Details

OUTPUT_MAX

pressure_checks defines for external_pressure_bound and input_pressure_min

\ No newline at end of file diff --git a/code/modules/atmospherics/machinery/components/fusion/_hfr_defines.html b/code/modules/atmospherics/machinery/components/fusion/_hfr_defines.html new file mode 100644 index 0000000000000..d79d6edf13641 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/fusion/_hfr_defines.html @@ -0,0 +1 @@ +code/modules/atmospherics/machinery/components/fusion/_hfr_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/atmospherics/machinery/components/fusion/_hfr_defines.dm

LIGHT_SPEEDSpeed of light, in m/s
PLANCK_LIGHT_CONSTANTCalculation between the plank constant and the lambda of the lightwave
CALCULATED_H2RADIUSRadius of the h2 calculated based on the amount of number of atom in a mole (and some addition for balancing issues)
CALCULATED_TRITRADIUSRadius of the trit calculated based on the amount of number of atom in a mole (and some addition for balancing issues)
VOID_CONDUCTIONPower conduction in the void, used to calculate the efficiency of the reaction
FUSION_MOLE_THRESHOLDMole count required (tritium/hydrogen) to start a fusion reaction
INSTABILITY_GAS_POWER_FACTORUsed to reduce the gas_power to a more useful amount
TOROID_VOLUME_BREAKEVENUsed to calculate the toroidal_size for the instability
PARTICLE_CHANCE_CONSTANTConstant used when calculating the chance of emitting a radioactive particle
METALLIC_VOID_CONDUCTIVITYConduction of heat inside the fusion reactor
HIGH_EFFICIENCY_CONDUCTIVITYConduction of heat near the external cooling loop
MIN_POWER_USAGESets the minimum amount of power the machine uses
DAMAGE_CAP_MULTIPLIERSets the multiplier for the damage
HALLUCINATION_HFRSets the range of the hallucinations
IRON_CHANCE_PER_FUSION_LEVELChance in percentage points per fusion level of iron accumulation when operating at unsafe levels
IRON_ACCUMULATED_PER_SECONDAmount of iron accumulated per second whenever we fail our saving throw, using the chance above
IRON_OXYGEN_HEAL_PER_SECONDMaximum amount of iron that can be healed per second. Calculated to mostly keep up with fusion level 5.
OXYGEN_MOLES_CONSUMED_PER_IRON_HEALAmount of oxygen in moles required to fully remove 100% iron content. Currently about 2409mol. Calculated to consume at most 10mol/s.
HYPERTORUS_ACCENT_SOUND_MIN_COOLDOWNto prevent accent sounds from layering
HYPERTORUS_OVERFULL_MIN_POWER_LEVELStart taking overfull damage at this power level
HYPERTORUS_OVERFULL_MAX_SAFE_COLD_FUSION_MOLESTake 0 damage beneath this much fusion mass at 1 degree Kelvin
HYPERTORUS_OVERFULL_MAX_SAFE_HOT_FUSION_MOLESTake 0 damage beneath this much fusion mass at FUSION_TEMPERATURE_MAX degrees Kelvin
HYPERTORUS_OVERFULL_MOLAR_SLOPEEvery 200 moles, 1 point of damage per second
HYPERTORUS_SUBCRITICAL_MOLESStart healing when fusion mass is below this threshold
HYPERTORUS_SUBCRITICAL_SCALEHeal one point per second per this many moles under the threshold
HYPERTORUS_COLD_COOLANT_MAX_RESTOREHeal up to this many points of damage per second at 1 degree kelvin
HYPERTORUS_COLD_COOLANT_THRESHOLDStart healing below this temperature
HYPERTORUS_MAX_SAFE_IRONStart taking damage over this threshold, up to a maximum of (1 - HYPERTORUS_MAX_SAFE_IRON) per tick at 100% iron
HYPERTORUS_HYPERCRITICAL_MOLESStart taking damage over this threshold
HYPERTORUS_HYPERCRITICAL_SCALETake this much damage per mole over the threshold per second
HYPERTORUS_HYPERCRITICAL_MAX_DAMAGETake at most this much damage per second
HYPERTORUS_MEDIUM_SPILL_PRESSUREStart spilling superhot moderator gas when over this pressure threshold
HYPERTORUS_MEDIUM_SPILL_INITIALHow much we should spill initially
HYPERTORUS_MEDIUM_SPILL_RATEHow much of the moderator mix we should spill per second until mended
HYPERTORUS_STRONG_SPILL_PRESSUREIf the moderator gas goes over this threshold, REALLY spill it
HYPERTORUS_STRONG_SPILL_INITIALHow much we should spill initially
HYPERTORUS_STRONG_SPILL_RATEHow much of the moderator mix we should spill per second until mended
HYPERTORUS_FLAG_HIGH_POWER_DAMAGEHigh power damage
HYPERTORUS_FLAG_HIGH_FUEL_MIX_MOLEHigh fuel mix mole
HYPERTORUS_FLAG_IRON_CONTENT_DAMAGEiron content damage
HYPERTORUS_FLAG_IRON_CONTENT_INCREASEIron content increasing
HYPERTORUS_FLAG_EMPEDEmped hypertorus

Define Details

CALCULATED_H2RADIUS

Radius of the h2 calculated based on the amount of number of atom in a mole (and some addition for balancing issues)

CALCULATED_TRITRADIUS

Radius of the trit calculated based on the amount of number of atom in a mole (and some addition for balancing issues)

DAMAGE_CAP_MULTIPLIER

Sets the multiplier for the damage

FUSION_MOLE_THRESHOLD

Mole count required (tritium/hydrogen) to start a fusion reaction

HALLUCINATION_HFR

Sets the range of the hallucinations

HIGH_EFFICIENCY_CONDUCTIVITY

Conduction of heat near the external cooling loop

HYPERTORUS_ACCENT_SOUND_MIN_COOLDOWN

to prevent accent sounds from layering

HYPERTORUS_COLD_COOLANT_MAX_RESTORE

Heal up to this many points of damage per second at 1 degree kelvin

HYPERTORUS_COLD_COOLANT_THRESHOLD

Start healing below this temperature

HYPERTORUS_FLAG_EMPED

Emped hypertorus

HYPERTORUS_FLAG_HIGH_FUEL_MIX_MOLE

High fuel mix mole

HYPERTORUS_FLAG_HIGH_POWER_DAMAGE

High power damage

HYPERTORUS_FLAG_IRON_CONTENT_DAMAGE

iron content damage

HYPERTORUS_FLAG_IRON_CONTENT_INCREASE

Iron content increasing

HYPERTORUS_HYPERCRITICAL_MAX_DAMAGE

Take at most this much damage per second

HYPERTORUS_HYPERCRITICAL_MOLES

Start taking damage over this threshold

HYPERTORUS_HYPERCRITICAL_SCALE

Take this much damage per mole over the threshold per second

HYPERTORUS_MAX_SAFE_IRON

Start taking damage over this threshold, up to a maximum of (1 - HYPERTORUS_MAX_SAFE_IRON) per tick at 100% iron

HYPERTORUS_MEDIUM_SPILL_INITIAL

How much we should spill initially

HYPERTORUS_MEDIUM_SPILL_PRESSURE

Start spilling superhot moderator gas when over this pressure threshold

HYPERTORUS_MEDIUM_SPILL_RATE

How much of the moderator mix we should spill per second until mended

HYPERTORUS_OVERFULL_MAX_SAFE_COLD_FUSION_MOLES

Take 0 damage beneath this much fusion mass at 1 degree Kelvin

HYPERTORUS_OVERFULL_MAX_SAFE_HOT_FUSION_MOLES

Take 0 damage beneath this much fusion mass at FUSION_TEMPERATURE_MAX degrees Kelvin

HYPERTORUS_OVERFULL_MIN_POWER_LEVEL

Start taking overfull damage at this power level

HYPERTORUS_OVERFULL_MOLAR_SLOPE

Every 200 moles, 1 point of damage per second

HYPERTORUS_STRONG_SPILL_INITIAL

How much we should spill initially

HYPERTORUS_STRONG_SPILL_PRESSURE

If the moderator gas goes over this threshold, REALLY spill it

HYPERTORUS_STRONG_SPILL_RATE

How much of the moderator mix we should spill per second until mended

HYPERTORUS_SUBCRITICAL_MOLES

Start healing when fusion mass is below this threshold

HYPERTORUS_SUBCRITICAL_SCALE

Heal one point per second per this many moles under the threshold

INSTABILITY_GAS_POWER_FACTOR

Used to reduce the gas_power to a more useful amount

IRON_ACCUMULATED_PER_SECOND

Amount of iron accumulated per second whenever we fail our saving throw, using the chance above

IRON_CHANCE_PER_FUSION_LEVEL

Chance in percentage points per fusion level of iron accumulation when operating at unsafe levels

IRON_OXYGEN_HEAL_PER_SECOND

Maximum amount of iron that can be healed per second. Calculated to mostly keep up with fusion level 5.

LIGHT_SPEED

Speed of light, in m/s

METALLIC_VOID_CONDUCTIVITY

Conduction of heat inside the fusion reactor

MIN_POWER_USAGE

Sets the minimum amount of power the machine uses

OXYGEN_MOLES_CONSUMED_PER_IRON_HEAL

Amount of oxygen in moles required to fully remove 100% iron content. Currently about 2409mol. Calculated to consume at most 10mol/s.

PARTICLE_CHANCE_CONSTANT

Constant used when calculating the chance of emitting a radioactive particle

PLANCK_LIGHT_CONSTANT

Calculation between the plank constant and the lambda of the lightwave

TOROID_VOLUME_BREAKEVEN

Used to calculate the toroidal_size for the instability

VOID_CONDUCTION

Power conduction in the void, used to calculate the efficiency of the reaction

\ No newline at end of file diff --git a/code/modules/atmospherics/machinery/components/fusion/hfr_core.html b/code/modules/atmospherics/machinery/components/fusion/hfr_core.html new file mode 100644 index 0000000000000..a1149f0bbf9e4 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/fusion/hfr_core.html @@ -0,0 +1 @@ +code/modules/atmospherics/machinery/components/fusion/hfr_core.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/atmospherics/machinery/components/fusion/hfr_core.dm

/obj/machinery/atmospherics/components/unary/hypertorus/coreThis section contain the hfr core with all the variables and the Initialize() and Destroy() procs
\ No newline at end of file diff --git a/code/modules/atmospherics/machinery/components/fusion/hfr_parts.html b/code/modules/atmospherics/machinery/components/fusion/hfr_parts.html new file mode 100644 index 0000000000000..de9aa176082bb --- /dev/null +++ b/code/modules/atmospherics/machinery/components/fusion/hfr_parts.html @@ -0,0 +1,2 @@ +code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm

/obj/machinery/atmospherics/components/unary/hypertorusThis file contain the eight parts surrounding the main core, those are: fuel input, moderator input, waste output, interface and the corners +The file also contain the guicode of the machine
\ No newline at end of file diff --git a/code/modules/atmospherics/machinery/components/unary_devices/airlock_pump.html b/code/modules/atmospherics/machinery/components/unary_devices/airlock_pump.html new file mode 100644 index 0000000000000..a9de61769e748 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/unary_devices/airlock_pump.html @@ -0,0 +1,5 @@ +code/modules/atmospherics/machinery/components/unary_devices/airlock_pump.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/atmospherics/machinery/components/unary_devices/airlock_pump.dm

/obj/machinery/atmospherics/components/unary/airlock_pumpThe pump looks up for the airlocks automatically based on airlock_pump_distance_limit and airlock_group_distance_limit values. +When placed, the dir value (direction where the pipes are coming from) is considered as a direction towards the station (internal). The opposite direction is external. +The airlock then tries to find airlocks or walls towards these directions until airlock_pump_distance_limit number of tiles reached. +When it finds a valid object, then it tries to find airlocks, in directions perpendicular to the found tiles. +And then adds them to the corresponding group (external/internal) until airlock_group_distance_limit number of tiles reached
\ No newline at end of file diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.html b/code/modules/atmospherics/machinery/components/unary_devices/cryo.html new file mode 100644 index 0000000000000..82ff2c42c5e15 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.html @@ -0,0 +1 @@ +code/modules/atmospherics/machinery/components/unary_devices/cryo.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/atmospherics/machinery/components/unary_devices/cryo.dm

MAX_TEMPERATUREMax temperature allowed inside the cryotube, should break before reaching this heat
/atom/movable/visual/cryo_occupantThis is a visual helper that shows the occupant inside the cryo cell.
/obj/machinery/cryo_cellCryo cell

Define Details

MAX_TEMPERATURE

Max temperature allowed inside the cryotube, should break before reaching this heat

\ No newline at end of file diff --git a/code/modules/atmospherics/machinery/components/unary_devices/machine_connector.html b/code/modules/atmospherics/machinery/components/unary_devices/machine_connector.html new file mode 100644 index 0000000000000..c36a11c21fd32 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/unary_devices/machine_connector.html @@ -0,0 +1 @@ +code/modules/atmospherics/machinery/components/unary_devices/machine_connector.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/atmospherics/machinery/components/unary_devices/machine_connector.dm

/datum/gas_machine_connectorTo be used when there is the need of an atmos connection without repathing everything (eg: cryo.dm)
\ No newline at end of file diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.html b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.html new file mode 100644 index 0000000000000..fb35e730f749b --- /dev/null +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.html @@ -0,0 +1 @@ +code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm

MINIMUM_MOLES_TO_SCRUBfiltered gases at or below this amount automatically get removed from the mix

Define Details

MINIMUM_MOLES_TO_SCRUB

filtered gases at or below this amount automatically get removed from the mix

\ No newline at end of file diff --git a/code/modules/atmospherics/machinery/pipes/multiz.html b/code/modules/atmospherics/machinery/pipes/multiz.html new file mode 100644 index 0000000000000..335924a083058 --- /dev/null +++ b/code/modules/atmospherics/machinery/pipes/multiz.html @@ -0,0 +1 @@ +code/modules/atmospherics/machinery/pipes/multiz.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/atmospherics/machinery/pipes/multiz.dm

/obj/machinery/atmospherics/pipe/multizThis is an atmospherics pipe which can relay air up/down a deck.
\ No newline at end of file diff --git a/code/modules/atmospherics/machinery/portable/canister.html b/code/modules/atmospherics/machinery/portable/canister.html new file mode 100644 index 0000000000000..34fb923d8b8a0 --- /dev/null +++ b/code/modules/atmospherics/machinery/portable/canister.html @@ -0,0 +1 @@ +code/modules/atmospherics/machinery/portable/canister.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/atmospherics/machinery/portable/canister.dm

CAN_DEFAULT_RELEASE_PRESSUREThe default pressure for releasing air into an holding tank or the turf
TEMPERATURE_RESISTANCEThe temperature resistance of this canister

Define Details

CAN_DEFAULT_RELEASE_PRESSURE

The default pressure for releasing air into an holding tank or the turf

TEMPERATURE_RESISTANCE

The temperature resistance of this canister

\ No newline at end of file diff --git a/code/modules/autowiki/autowiki.html b/code/modules/autowiki/autowiki.html new file mode 100644 index 0000000000000..65f31e3a6bbff --- /dev/null +++ b/code/modules/autowiki/autowiki.html @@ -0,0 +1 @@ +code/modules/autowiki/autowiki.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/autowiki/autowiki.dm

/proc/generate_autowiki_outputReturns a string of the autowiki output file
\ No newline at end of file diff --git a/code/modules/autowiki/pages/base.html b/code/modules/autowiki/pages/base.html new file mode 100644 index 0000000000000..0d3b63b5d41bd --- /dev/null +++ b/code/modules/autowiki/pages/base.html @@ -0,0 +1 @@ +code/modules/autowiki/pages/base.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/autowiki/pages/base.dm

/datum/autowikiA representation of an automated wiki page.
\ No newline at end of file diff --git a/code/modules/autowiki/pages/fishing.html b/code/modules/autowiki/pages/fishing.html new file mode 100644 index 0000000000000..68c6d5328aff8 --- /dev/null +++ b/code/modules/autowiki/pages/fishing.html @@ -0,0 +1 @@ +code/modules/autowiki/pages/fishing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/autowiki/pages/fishing.dm

/proc/cmp_autowiki_fish_sources_contentSort the autowiki fish entries by their weight. However, duds always come first.
\ No newline at end of file diff --git a/code/modules/autowiki/pages/stockparts.html b/code/modules/autowiki/pages/stockparts.html new file mode 100644 index 0000000000000..385b3879b3e89 --- /dev/null +++ b/code/modules/autowiki/pages/stockparts.html @@ -0,0 +1 @@ +code/modules/autowiki/pages/stockparts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/autowiki/pages/stockparts.dm

/datum/autowiki/stock_partsAutomtically generated string list of stock part templates and relevant data for the /tg/station wiki
\ No newline at end of file diff --git a/code/modules/awaymissions/away_props.html b/code/modules/awaymissions/away_props.html new file mode 100644 index 0000000000000..29366a8930b57 --- /dev/null +++ b/code/modules/awaymissions/away_props.html @@ -0,0 +1 @@ +code/modules/awaymissions/away_props.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/awaymissions/away_props.dm

/obj/effect/playeronly_barrieronly player mobs (has ckey) may pass, reverse for the opposite
\ No newline at end of file diff --git a/code/modules/awaymissions/cordon.html b/code/modules/awaymissions/cordon.html new file mode 100644 index 0000000000000..665e44608dda8 --- /dev/null +++ b/code/modules/awaymissions/cordon.html @@ -0,0 +1 @@ +code/modules/awaymissions/cordon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/awaymissions/cordon.dm

/turf/cordonTurf type that appears to be a world border, completely impassable and non-interactable to all physical (alive) entities.
/area/misc/cordonArea used in conjunction with the cordon turf to create a fully functioning world border.
/turf/cordon/secretThis type of cordon will block ghosts from passing through it. Useful for stuff like Away Missions, where you feasibly want to block ghosts from entering to keep a certain map section a secret.
\ No newline at end of file diff --git a/code/modules/awaymissions/gateway.html b/code/modules/awaymissions/gateway.html new file mode 100644 index 0000000000000..1d6b8a9f0416f --- /dev/null +++ b/code/modules/awaymissions/gateway.html @@ -0,0 +1 @@ +code/modules/awaymissions/gateway.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/awaymissions/gateway.dm

/datum/gateway_destinationCorresponds to single entry in gateway control.
\ No newline at end of file diff --git a/code/modules/awaymissions/mission_code/snowdin.html b/code/modules/awaymissions/mission_code/snowdin.html new file mode 100644 index 0000000000000..ef8e43d43fc8f --- /dev/null +++ b/code/modules/awaymissions/mission_code/snowdin.html @@ -0,0 +1 @@ +code/modules/awaymissions/mission_code/snowdin.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/awaymissions/mission_code/snowdin.dm

/obj/item/paper/crumpled/ruins/snowdin/foreshadowingpapers
\ No newline at end of file diff --git a/code/modules/awaymissions/zlevel.html b/code/modules/awaymissions/zlevel.html new file mode 100644 index 0000000000000..9747c3df72e9a --- /dev/null +++ b/code/modules/awaymissions/zlevel.html @@ -0,0 +1 @@ +code/modules/awaymissions/zlevel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/awaymissions/zlevel.dm

/proc/generate_map_list_from_directoryReturns a list of all maps to be found in the directory that is passed in.
\ No newline at end of file diff --git a/code/modules/balloon_alert/balloon_alert.html b/code/modules/balloon_alert/balloon_alert.html new file mode 100644 index 0000000000000..f3a2d481c1dbf --- /dev/null +++ b/code/modules/balloon_alert/balloon_alert.html @@ -0,0 +1 @@ +code/modules/balloon_alert/balloon_alert.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/balloon_alert/balloon_alert.dm

BALLOON_TEXT_CHAR_LIFETIME_INCREASE_MULTThe increase in duration per character in seconds
BALLOON_TEXT_CHAR_LIFETIME_INCREASE_MINThe amount of characters needed before this increase takes into effect

Define Details

BALLOON_TEXT_CHAR_LIFETIME_INCREASE_MIN

The amount of characters needed before this increase takes into effect

BALLOON_TEXT_CHAR_LIFETIME_INCREASE_MULT

The increase in duration per character in seconds

\ No newline at end of file diff --git a/code/modules/basketball/controller.html b/code/modules/basketball/controller.html new file mode 100644 index 0000000000000..8954d7a98f2cf --- /dev/null +++ b/code/modules/basketball/controller.html @@ -0,0 +1,2 @@ +code/modules/basketball/controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/basketball/controller.dm

BASKETBALL_MIN_PLAYER_COUNThow many people can play basketball without issues (running out of spawns, procs not expecting more than this amount of people, etc)
/datum/basketball_controllerThe basketball controller handles the basketball minigame in progress. +It is first created when the first ghost signs up to play.
/proc/create_basketball_gameCreates the global datum for playing basketball games, destroys the last if that's required and returns the new.

Define Details

BASKETBALL_MIN_PLAYER_COUNT

how many people can play basketball without issues (running out of spawns, procs not expecting more than this amount of people, etc)

\ No newline at end of file diff --git a/code/modules/bitrunning/abilities.html b/code/modules/bitrunning/abilities.html new file mode 100644 index 0000000000000..7df46e8721b6d --- /dev/null +++ b/code/modules/bitrunning/abilities.html @@ -0,0 +1 @@ +code/modules/bitrunning/abilities.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/bitrunning/abilities.dm

/datum/action/avatar_domain_infoDisplays information about the current virtual domain.
\ No newline at end of file diff --git a/code/modules/bitrunning/areas.html b/code/modules/bitrunning/areas.html new file mode 100644 index 0000000000000..6fdd4617acbcb --- /dev/null +++ b/code/modules/bitrunning/areas.html @@ -0,0 +1 @@ +code/modules/bitrunning/areas.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/bitrunning/areas.dm

/area/station/cargo/bitrunningStation side
/area/virtual_domainVDOM
/area/virtual_domain/safehouseSafehouse
/area/lavaland/surface/outdoors/virtual_domainCustom subtypes
/area/virtual_domain/protected_spaceAreas that virtual entities should not be in
\ No newline at end of file diff --git a/code/modules/bitrunning/components/avatar_connection.html b/code/modules/bitrunning/components/avatar_connection.html new file mode 100644 index 0000000000000..b53d24bd3fd28 --- /dev/null +++ b/code/modules/bitrunning/components/avatar_connection.html @@ -0,0 +1,2 @@ +code/modules/bitrunning/components/avatar_connection.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/bitrunning/components/avatar_connection.dm

/datum/component/avatar_connectionEssentially temporary body with a twist - the virtual domain variant uses damage connections, +listens for vdom relevant signals.
\ No newline at end of file diff --git a/code/modules/bitrunning/components/bitrunning_points.html b/code/modules/bitrunning/components/bitrunning_points.html new file mode 100644 index 0000000000000..d2d93b03f2a29 --- /dev/null +++ b/code/modules/bitrunning/components/bitrunning_points.html @@ -0,0 +1 @@ +code/modules/bitrunning/components/bitrunning_points.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/bitrunning/components/bitrunning_points.dm

/datum/component/bitrunning_pointsAttaches to a turf so it spawns a crate when a certain amount of points are added to it.
\ No newline at end of file diff --git a/code/modules/bitrunning/components/npc_friendly.html b/code/modules/bitrunning/components/npc_friendly.html new file mode 100644 index 0000000000000..04abd0a428c9d --- /dev/null +++ b/code/modules/bitrunning/components/npc_friendly.html @@ -0,0 +1 @@ +code/modules/bitrunning/components/npc_friendly.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/bitrunning/components/npc_friendly.dm

/datum/component/npc_friendlyMakes a mob friendly with most NPC factions
\ No newline at end of file diff --git a/code/modules/bitrunning/components/virtual_entity.html b/code/modules/bitrunning/components/virtual_entity.html new file mode 100644 index 0000000000000..cf7b98855dbf8 --- /dev/null +++ b/code/modules/bitrunning/components/virtual_entity.html @@ -0,0 +1 @@ +code/modules/bitrunning/components/virtual_entity.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/bitrunning/components/virtual_entity.dm

/datum/component/virtual_entityHandles all special considerations for "virtual entities" such as bitrunning ghost roles or digital anomaly antagonists.
\ No newline at end of file diff --git a/code/modules/bitrunning/designs.html b/code/modules/bitrunning/designs.html new file mode 100644 index 0000000000000..8ceb233103d2e --- /dev/null +++ b/code/modules/bitrunning/designs.html @@ -0,0 +1,2 @@ +code/modules/bitrunning/designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/bitrunning/designs.dm

/obj/item/circuitboard/machine/netpodquantum server design +are you absolutely sure??
\ No newline at end of file diff --git a/code/modules/bitrunning/objects/disks.html b/code/modules/bitrunning/objects/disks.html new file mode 100644 index 0000000000000..022139f85c183 --- /dev/null +++ b/code/modules/bitrunning/objects/disks.html @@ -0,0 +1,4 @@ +code/modules/bitrunning/objects/disks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/bitrunning/objects/disks.dm

/obj/item/bitrunning_diskBitrunning tech disks which let you load items or programs into the vdom on first avatar generation. +For the record: Balance shouldn't be a primary concern. +You can make the custom cheese spells you've always wanted. +Just make it fun and engaging, it's PvE content.
/obj/item/bitrunning_disk/ability/tier1Tier 1 programs. Simple, funny, or helpful.
/obj/item/bitrunning_disk/ability/tier2Tier 2 programs. More complex, powerful, or useful.
/obj/item/bitrunning_disk/ability/tier3Tier 3 abilities. Very powerful, game breaking.
/obj/item/bitrunning_disk/item/tier1Tier 1 items. Simple, funny, or helpful.
/obj/item/bitrunning_disk/item/tier2Tier 2 items. More complex, powerful, or useful.
/obj/item/bitrunning_disk/item/tier3Tier 3 items. Very powerful, game breaking.
/obj/item/bitrunning_disk/item/pka_modsproto-kinetic accelerator mods, to be applied to pka's given inside domains
/obj/item/bitrunning_disk/item/pkc_modsproto-kinetic crusher trophies, to be applied to pkc's given inside domains
\ No newline at end of file diff --git a/code/modules/bitrunning/objects/landmarks.html b/code/modules/bitrunning/objects/landmarks.html new file mode 100644 index 0000000000000..36e7435746737 --- /dev/null +++ b/code/modules/bitrunning/objects/landmarks.html @@ -0,0 +1,2 @@ +code/modules/bitrunning/objects/landmarks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/bitrunning/objects/landmarks.dm

/obj/effect/landmark/bitrunning/loot_signalIn case you want to gate the crate behind a special condition.
/obj/effect/landmark/bitrunning/hololadder_spawnWhere the exit hololadder spawns
/obj/effect/landmark/bitrunning/permanent_exitA permanent exit for the domain
/obj/effect/landmark/bitrunning/cache_goal_turfWhere the crates need to be taken
/obj/effect/landmark/bitrunning/cache_spawnWhere you want the crate to spawn
/obj/effect/landmark/bitrunning/curiosity_spawnWhere you want secondary objectives to spawn
/obj/effect/landmark/bitrunning/crate_replacerSwaps the locations of an encrypted crate in the area with another randomly selected crate. +Randomizes names, so you have to inspect crates manually.
/obj/effect/landmark/bitrunning/mob_segmentA location for mobs to spawn.
/obj/modular_map_root/safehouseBitrunning safehouses. Typically 7x6 rooms with a single entrance.
\ No newline at end of file diff --git a/code/modules/bitrunning/objects/loot_crate.html b/code/modules/bitrunning/objects/loot_crate.html new file mode 100644 index 0000000000000..7ceeb67f58519 --- /dev/null +++ b/code/modules/bitrunning/objects/loot_crate.html @@ -0,0 +1 @@ +code/modules/bitrunning/objects/loot_crate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/bitrunning/objects/loot_crate.dm

/obj/structure/closet/crate/secure/bitrunning/encryptedThe virtual domain - side of the bitrunning crate. Deliver to the send location.
/obj/structure/closet/crate/secure/bitrunning/decryptedThe bitrunner den - side of the bitrunning crate. Appears in the receive location.
\ No newline at end of file diff --git a/code/modules/bitrunning/server/_parent.html b/code/modules/bitrunning/server/_parent.html new file mode 100644 index 0000000000000..b7e11ca77df91 --- /dev/null +++ b/code/modules/bitrunning/server/_parent.html @@ -0,0 +1 @@ +code/modules/bitrunning/server/_parent.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/bitrunning/server/_parent.dm

/obj/machinery/quantum_serverThe base object for the quantum server
\ No newline at end of file diff --git a/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.html b/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.html new file mode 100644 index 0000000000000..e7343b8c290ac --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.html @@ -0,0 +1 @@ +code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.dm

/obj/structure/closet/crate/secure/bitrunning/encrypted/gondolaVery pushy gondolas, great for moving loot crates.
\ No newline at end of file diff --git a/code/modules/bitrunning/virtual_domain/domains/test_only.html b/code/modules/bitrunning/virtual_domain/domains/test_only.html new file mode 100644 index 0000000000000..9303a918a79ff --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/test_only.html @@ -0,0 +1 @@ +code/modules/bitrunning/virtual_domain/domains/test_only.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/bitrunning/virtual_domain/domains/test_only.dm

/datum/lazy_template/virtual_domain/test_onlyUsed for unit tests only. Skipped in UI.
\ No newline at end of file diff --git a/code/modules/bitrunning/virtual_domain/modular_mob_segment.html b/code/modules/bitrunning/virtual_domain/modular_mob_segment.html new file mode 100644 index 0000000000000..0c93e4365f6fb --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/modular_mob_segment.html @@ -0,0 +1 @@ +code/modules/bitrunning/virtual_domain/modular_mob_segment.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/bitrunning/virtual_domain/modular_mob_segment.dm

/datum/modular_mob_segmentA list for mob spawning landmarks to use.
\ No newline at end of file diff --git a/code/modules/bitrunning/virtual_domain/virtual_domain.html b/code/modules/bitrunning/virtual_domain/virtual_domain.html new file mode 100644 index 0000000000000..e1c5029aa5bed --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/virtual_domain.html @@ -0,0 +1 @@ +code/modules/bitrunning/virtual_domain/virtual_domain.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/bitrunning/virtual_domain/virtual_domain.dm

/datum/lazy_template/virtual_domainCreate your own: Read the readme file in the '_maps/virtual_domains' folder.
\ No newline at end of file diff --git a/code/modules/buildmode.html b/code/modules/buildmode.html new file mode 100644 index 0000000000000..ecba9fc026b7e --- /dev/null +++ b/code/modules/buildmode.html @@ -0,0 +1,204 @@ +code/modules/buildmode/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Buildmode

Code layout

Buildmode

+

Manager for buildmode modes. Contains logic to manage switching between each mode, and presenting a suitable user interface.

+

Effects

+

Special graphics used by buildmode modes for user interface purposes.

+

Buildmode Mode

+

Implementer of buildmode behaviors.

+

Existing varieties:

+
    +
  • +

    Basic

    +

    Description:

    +

    Allows creation of simple structures consisting of floors, walls, windows, and airlocks.

    +

    Controls:

    +
      +
    • +

      Left click a turf:

      +

      "Upgrades" the turf based on the following rules below:

      +
        +
      • Space -> Tiled floor
      • +
      • Simulated floor -> Regular wall
      • +
      • Wall -> Reinforced wall
      • +
      +
    • +
    • +

      Right click a turf:

      +

      "Downgrades" the turf based on the following rules below:

      +
        +
      • Reinforced wall -> Regular wall
      • +
      • Wall -> Tiled floor
      • +
      • Simulated floor -> Space
      • +
      +
    • +
    • +

      Right click an object:

      +

      Deletes the clicked object.

      +
    • +
    • +

      Alt+Left click a location:

      +

      Places an airlock at the clicked location.

      +
    • +
    • +

      Ctrl+Left click a location:

      +

      Places a window at the clicked location.

      +
    • +
    +
  • +
  • +

    Advanced

    +

    Description:

    +

    Creates an instance of a configurable atom path where you click.

    +

    Controls:

    +
      +
    • +

      Right click on the mode selector:

      +

      Choose a path to spawn.

      +
    • +
    • +

      Left click a location (requires chosen path):

      +

      Place an instance of the chosen path at the location.

      +
    • +
    • +

      Right click an object:

      +

      Delete the object.

      +
    • +
    +
  • +
  • +

    Fill

    +

    Description:

    +

    Creates an instance of an atom path on every tile in a chosen region.

    +

    With a special control input, instead deletes everything within the region.

    +

    Controls:

    +
      +
    • +

      Right click on the mode selector:

      +

      Choose a path to spawn.

      +
    • +
    • +

      Left click on a region (requires chosen path):

      +

      Fill the region with the chosen path.

      +
    • +
    • +

      Alt+Left click on a region:

      +

      Deletes everything within the region.

      +
    • +
    • +

      Right click during region selection:

      +

      Cancel region selection.

      +
    • +
    +
  • +
  • +

    Copy

    +

    Description:

    +

    Take an existing object in the world, and place duplicates with identical attributes where you click.

    +

    May not always work nicely - "deep" variables such as lists or datums may malfunction.

    +

    Controls:

    +
      +
    • +

      Right click an existing object:

      +

      Select the clicked object as a template.

      +
    • +
    • +

      Left click a location (Requires a selected object as template):

      +

      Place a duplicate of the template at the clicked location.

      +
    • +
    +
  • +
  • +

    Area Edit

    +

    Description:

    +

    Modifies and creates areas.

    +

    The active area will be highlighted in yellow.

    +

    Controls:

    +
      +
    • +

      Right click the mode selector:

      +

      Create a new area, and make it active.

      +
    • +
    • +

      Right click an existing area:

      +

      Make the clicked area active.

      +
    • +
    • +

      Left click a turf:

      +

      When an area is active, adds the turf to the active area.

      +
    • +
    +
  • +
  • +

    Var Edit

    +

    Description:

    +

    Allows for setting and resetting variables of objects with a click.

    +

    If the object does not have the var, will do nothing and print a warning message.

    +

    Controls:

    +
      +
    • +

      Right click the mode selector:

      +

      Choose which variable to set, and what to set it to.

      +
    • +
    • +

      Left click an atom:

      +

      Change the clicked atom's variables as configured.

      +
    • +
    • +

      Right click an atom:

      +

      Reset the targeted variable to its original value in the code.

      +
    • +
    +
  • +
  • +

    Map Generator

    +

    Description:

    +

    Fills rectangular regions with algorithmically generated content. Right click during region selection to cancel.

    +

    See the procedural_mapping module for the generators themselves.

    +

    Controls:

    +
      +
    • +

      Right-click on the mode selector:

      +

      Select a map generator from all the generators present in the codebase.

      +
    • +
    • +

      Left click two corners of an area:

      +

      Use the generator to populate the region.

      +
    • +
    • +

      Right click during region selection:

      +

      Cancel region selection.

      +
    • +
    +
  • +
  • +

    Throwing

    +

    Description:

    +

    Select an object with left click, and right click to throw it towards where you clicked.

    +

    Controls:

    +
      +
    • +

      Left click on a movable atom:

      +

      Select the atom for throwing.

      +
    • +
    • +

      Right click on a location:

      +

      Throw the selected atom towards that location.

      +
    • +
    +
  • +
  • +

    Boom

    +

    Description:

    +

    Make explosions where you click.

    +

    Controls:

    +
      +
    • +

      Right click the mode selector:

      +

      Configure the explosion size.

      +
    • +
    • +

      Left click a location:

      +

      Cause an explosion where you clicked.

      +
    • +
    +
  • +
\ No newline at end of file diff --git a/code/modules/buildmode/bm_mode.html b/code/modules/buildmode/bm_mode.html new file mode 100644 index 0000000000000..7fe34959fa44b --- /dev/null +++ b/code/modules/buildmode/bm_mode.html @@ -0,0 +1 @@ +code/modules/buildmode/bm_mode.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/buildmode/bm_mode.dm

AREASELECT_CORNERACorner A area section for buildmode
AREASELECT_CORNERBCorner B area selection for buildmode

Define Details

AREASELECT_CORNERA

Corner A area section for buildmode

AREASELECT_CORNERB

Corner B area selection for buildmode

\ No newline at end of file diff --git a/code/modules/buildmode/submodes/map_export.html b/code/modules/buildmode/submodes/map_export.html new file mode 100644 index 0000000000000..c9462298fc282 --- /dev/null +++ b/code/modules/buildmode/submodes/map_export.html @@ -0,0 +1 @@ +code/modules/buildmode/submodes/map_export.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/buildmode/submodes/map_export.dm

/proc/_save_mapHey bud don't call this directly, it exists so we can invoke async and prevent the buildmode datum being qdel'd from halting this proc
\ No newline at end of file diff --git a/code/modules/capture_the_flag/ctf_controller.html b/code/modules/capture_the_flag/ctf_controller.html new file mode 100644 index 0000000000000..b486422c435ee --- /dev/null +++ b/code/modules/capture_the_flag/ctf_controller.html @@ -0,0 +1 @@ +code/modules/capture_the_flag/ctf_controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/capture_the_flag/ctf_controller.dm

/datum/ctf_controllerThe CTF controller acts as a manager for an individual CTF game, each CTF game should have its own, the controller should handle all game-wide functionality.
/datum/ctf_teamA datum that holds details about individual CTF teams, any team specific CTF functionality should be implemented here.
/proc/create_ctf_gameCreates a CTF game with the provided team ID then returns a reference to the new controller. If a controller already exists provides a reference to it.
\ No newline at end of file diff --git a/code/modules/capture_the_flag/ctf_game.html b/code/modules/capture_the_flag/ctf_game.html new file mode 100644 index 0000000000000..c4e551631b2db --- /dev/null +++ b/code/modules/capture_the_flag/ctf_game.html @@ -0,0 +1 @@ +code/modules/capture_the_flag/ctf_game.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/capture_the_flag/ctf_game.dm

/obj/machinery/ctfBase CTF machines, if spawned in creates a CTF game with the provided game_id unless one already exists. If one exists associates itself with it.
/obj/machinery/ctf/spawnerA spawn point for CTF, ghosts can interact with this to vote for CTF or spawn in if a game is running.
/obj/item/ctf_flagA flag used for the CTF minigame.
/obj/machinery/ctf/control_pointControl point used for CTF for king of the hill or control point game modes. Teams need to maintain control of the point for a set time to win.
/obj/structure/trap/ctfA trap that when stepped on kills anyone who is not part of the associated CTF team.
/obj/structure/barricade/security/ctfA type of barricade that can be destroyed by CTF weapons and respawns at the end of CTF matches.
/proc/toggle_id_ctfProc that handles toggling and unloading CTF.
/proc/is_ctf_targetProc that identifies if something is a valid target for CTF related checks, checks if an object is a ctf barrier or has ctf component if they are a player.
\ No newline at end of file diff --git a/code/modules/capture_the_flag/ctf_player_component.html b/code/modules/capture_the_flag/ctf_player_component.html new file mode 100644 index 0000000000000..4e5653345517d --- /dev/null +++ b/code/modules/capture_the_flag/ctf_player_component.html @@ -0,0 +1 @@ +code/modules/capture_the_flag/ctf_player_component.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/capture_the_flag/ctf_player_component.dm

/datum/component/ctf_playerA component added to the mind of anyone who is playing in an ongoing CTF match. Any player specific CTF functionality should be implemented here. (someone should implement score tracking here)
\ No newline at end of file diff --git a/code/modules/capture_the_flag/ctf_voting.html b/code/modules/capture_the_flag/ctf_voting.html new file mode 100644 index 0000000000000..cab216c248017 --- /dev/null +++ b/code/modules/capture_the_flag/ctf_voting.html @@ -0,0 +1 @@ +code/modules/capture_the_flag/ctf_voting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/capture_the_flag/ctf_voting.dm

/proc/get_ctf_voting_controllerReturns the existing /datum/ctf_voting_controller for the given ID, or makes one
\ No newline at end of file diff --git a/code/modules/capture_the_flag/medieval_sim/medisim_game.html b/code/modules/capture_the_flag/medieval_sim/medisim_game.html new file mode 100644 index 0000000000000..81fda4290c661 --- /dev/null +++ b/code/modules/capture_the_flag/medieval_sim/medisim_game.html @@ -0,0 +1 @@ +code/modules/capture_the_flag/medieval_sim/medisim_game.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/capture_the_flag/medieval_sim/medisim_game.dm

REDFIELD_TEAMThese are for the medisim shuttle
/obj/machinery/ctf/spawner/medisimVariant of the CTF spawner used for the medieval simulation shuttle.

Define Details

REDFIELD_TEAM

These are for the medisim shuttle

\ No newline at end of file diff --git a/code/modules/cards/cards.html b/code/modules/cards/cards.html new file mode 100644 index 0000000000000..57255b6807a17 --- /dev/null +++ b/code/modules/cards/cards.html @@ -0,0 +1 @@ +code/modules/cards/cards.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cards/cards.dm

/datum/deck_cardA basic interface for creating a card for a deck that isn't just a name.
/datum/deck_card/of_typeA /datum/deck_card that just creates a card of the given type
\ No newline at end of file diff --git a/code/modules/cargo/bounties/assistant.html b/code/modules/cargo/bounties/assistant.html new file mode 100644 index 0000000000000..24f891d131743 --- /dev/null +++ b/code/modules/cargo/bounties/assistant.html @@ -0,0 +1 @@ +code/modules/cargo/bounties/assistant.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/bounties/assistant.dm

/datum/bounty/item/assistant/fish/fluidA subtype of the fish bounty that requires fish with a specific fluid type
\ No newline at end of file diff --git a/code/modules/cargo/bounties/security.html b/code/modules/cargo/bounties/security.html new file mode 100644 index 0000000000000..5f55906ca6612 --- /dev/null +++ b/code/modules/cargo/bounties/security.html @@ -0,0 +1 @@ +code/modules/cargo/bounties/security.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/bounties/security.dm

/datum/bounty/item/security/paperworkBounties that require you to perform documentation and inspection of your department to send to centcom.
\ No newline at end of file diff --git a/code/modules/cargo/bounty.html b/code/modules/cargo/bounty.html new file mode 100644 index 0000000000000..b8da9a1ba29a8 --- /dev/null +++ b/code/modules/cargo/bounty.html @@ -0,0 +1 @@ +code/modules/cargo/bounty.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/cargo/bounty.dm

MAXIMUM_BOUNTY_JOBSHow many jobs have bounties, minus the random civ bounties. PLEASE INCREASE THIS NUMBER AS MORE DEPTS ARE ADDED TO BOUNTIES.
/proc/random_bounty

Define Details

MAXIMUM_BOUNTY_JOBS

How many jobs have bounties, minus the random civ bounties. PLEASE INCREASE THIS NUMBER AS MORE DEPTS ARE ADDED TO BOUNTIES.

\ No newline at end of file diff --git a/code/modules/cargo/coupon.html b/code/modules/cargo/coupon.html new file mode 100644 index 0000000000000..853b64818d5b0 --- /dev/null +++ b/code/modules/cargo/coupon.html @@ -0,0 +1 @@ +code/modules/cargo/coupon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/coupon.dm

/datum/coupon_codedatum used by the Coupon Master PDA app to generate coupon items redeemed by a bank account.
\ No newline at end of file diff --git a/code/modules/cargo/exports.html b/code/modules/cargo/exports.html new file mode 100644 index 0000000000000..9a4c5d9ab4bbb --- /dev/null +++ b/code/modules/cargo/exports.html @@ -0,0 +1 @@ +code/modules/cargo/exports.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/exports.dm

/proc/init_exportMakes sure the exports list is populated and that the report isn't null.
/proc/export_single_itemIt works like export_item_and_contents(), however it ignores the contents. Meaning only exported_atom will be valued.
/proc/_export_loopThe main bit responsible for selling the item. Shared by export_single_item() and export_item_and_contents()
/proc/setupExportsCalled when the global exports_list is empty, and sets it up.
\ No newline at end of file diff --git a/code/modules/cargo/exports/food_and_drink.html b/code/modules/cargo/exports/food_and_drink.html new file mode 100644 index 0000000000000..026ca7701df55 --- /dev/null +++ b/code/modules/cargo/exports/food_and_drink.html @@ -0,0 +1,2 @@ +code/modules/cargo/exports/food_and_drink.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/exports/food_and_drink.dm

/datum/export/foodOriginal Food export file got eaten somewhere along the line and I have no idea when or where it got completely deleted. +Foods given a venue value are exportable to cargo as a backup to selling from venues, however at the expense of elasticity.
\ No newline at end of file diff --git a/code/modules/cargo/exports/large_objects.html b/code/modules/cargo/exports/large_objects.html new file mode 100644 index 0000000000000..11b1609d19de6 --- /dev/null +++ b/code/modules/cargo/exports/large_objects.html @@ -0,0 +1,4 @@ +code/modules/cargo/exports/large_objects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/exports/large_objects.dm

/datum/export/large/gas_canisterGas canister exports. +I'm going to put a quick aside here as this has been a pain to balance for several years now, and I'd like to at least break how to keep gas exports tame. +So: Gasses are sold in canisters below, which have a variable amount of maximum pressure before they start to break. The largest of which is 9.2e13 kPa. +This means we can determine a theoretical maximum value for gas sale prices using the ideal gas laws, as we know we have a minimum gas temperature of 2.7 kelvin.
\ No newline at end of file diff --git a/code/modules/cargo/markets/market_items/hostages.html b/code/modules/cargo/markets/market_items/hostages.html new file mode 100644 index 0000000000000..45ecebc0b059c --- /dev/null +++ b/code/modules/cargo/markets/market_items/hostages.html @@ -0,0 +1 @@ +code/modules/cargo/markets/market_items/hostages.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/markets/market_items/hostages.dm

/datum/market_item/hostageA special category for mobs captured by pirates, tots and contractors, should someone ever want to get them back in advance.
\ No newline at end of file diff --git a/code/modules/cargo/markets/market_items/local_goods.html b/code/modules/cargo/markets/market_items/local_goods.html new file mode 100644 index 0000000000000..75ad55ba7add2 --- /dev/null +++ b/code/modules/cargo/markets/market_items/local_goods.html @@ -0,0 +1 @@ +code/modules/cargo/markets/market_items/local_goods.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/markets/market_items/local_goods.dm

/datum/market_item/local_goodA special category for goods placed on the market by station by someone with the LTSRBT.
\ No newline at end of file diff --git a/code/modules/cargo/markets/market_items/stolen_goods.html b/code/modules/cargo/markets/market_items/stolen_goods.html new file mode 100644 index 0000000000000..c3200d0d5ed1d --- /dev/null +++ b/code/modules/cargo/markets/market_items/stolen_goods.html @@ -0,0 +1 @@ +code/modules/cargo/markets/market_items/stolen_goods.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/markets/market_items/stolen_goods.dm

/datum/market_item/stolen_goodA special category for goods stolen by spies for their bounties.
\ No newline at end of file diff --git a/code/modules/cargo/markets/market_items/tools.html b/code/modules/cargo/markets/market_items/tools.html new file mode 100644 index 0000000000000..83e0177114b1d --- /dev/null +++ b/code/modules/cargo/markets/market_items/tools.html @@ -0,0 +1 @@ +code/modules/cargo/markets/market_items/tools.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/markets/market_items/tools.dm

/datum/market_item/tool/fake_scanner
\ No newline at end of file diff --git a/code/modules/cargo/materials_market.html b/code/modules/cargo/materials_market.html new file mode 100644 index 0000000000000..f9fc0035699ab --- /dev/null +++ b/code/modules/cargo/materials_market.html @@ -0,0 +1 @@ +code/modules/cargo/materials_market.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/cargo/materials_market.dm

MAX_STACK_LIMITThe maximum number of stacks you can place in 1 order
GALATIC_MATERIAL_ORDERThe order rank for all galactic material market orders

Define Details

GALATIC_MATERIAL_ORDER

The order rank for all galactic material market orders

MAX_STACK_LIMIT

The maximum number of stacks you can place in 1 order

\ No newline at end of file diff --git a/code/modules/cargo/order.html b/code/modules/cargo/order.html new file mode 100644 index 0000000000000..13ec150b32b8e --- /dev/null +++ b/code/modules/cargo/order.html @@ -0,0 +1 @@ +code/modules/cargo/order.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/cargo/order.dm

MANIFEST_ERROR_CHANCEThe chance for a manifest or crate to be created with errors
MANIFEST_ERROR_NAMEDetermines if the station name will be incorrect on the manifest
MANIFEST_ERROR_CONTENTSDetermines if contents will be deleted from the manifest but still be present in the crate
MANIFEST_ERROR_ITEMDetermines if contents will be deleted from the crate but still be present in the manifest
/datum/supply_order/disposableCustom type of order who's supply pack can be safely deleted
/datum/supply_order/disposable/materialsCustom material order to append cargo crate value to the final order cost

Define Details

MANIFEST_ERROR_CHANCE

The chance for a manifest or crate to be created with errors

MANIFEST_ERROR_CONTENTS

Determines if contents will be deleted from the manifest but still be present in the crate

MANIFEST_ERROR_ITEM

Determines if contents will be deleted from the crate but still be present in the manifest

MANIFEST_ERROR_NAME

Determines if the station name will be incorrect on the manifest

\ No newline at end of file diff --git a/code/modules/cargo/packs/_packs.html b/code/modules/cargo/packs/_packs.html new file mode 100644 index 0000000000000..bd01ae2c580f0 --- /dev/null +++ b/code/modules/cargo/packs/_packs.html @@ -0,0 +1,3 @@ +code/modules/cargo/packs/_packs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/packs/_packs.dm

/proc/send_supply_pod_to_areaEasily send a supplypod to an area
/datum/supply_pack/customCustom supply pack +The contents are given on New rather than being static +This is for adding custom orders to the Cargo console (like order consoles)
\ No newline at end of file diff --git a/code/modules/cargo/packs/engineering.html b/code/modules/cargo/packs/engineering.html new file mode 100644 index 0000000000000..2825611d388be --- /dev/null +++ b/code/modules/cargo/packs/engineering.html @@ -0,0 +1 @@ +code/modules/cargo/packs/engineering.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/packs/engineering.dm

/datum/supply_pack/engineEngine Construction
\ No newline at end of file diff --git a/code/modules/cargo/packs/exploration.html b/code/modules/cargo/packs/exploration.html new file mode 100644 index 0000000000000..6c0dfa86ab638 --- /dev/null +++ b/code/modules/cargo/packs/exploration.html @@ -0,0 +1 @@ +code/modules/cargo/packs/exploration.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/packs/exploration.dm

/datum/supply_pack/explorationExploration drone unlockables
\ No newline at end of file diff --git a/code/modules/cargo/packs/general.html b/code/modules/cargo/packs/general.html new file mode 100644 index 0000000000000..837d3bb130f6d --- /dev/null +++ b/code/modules/cargo/packs/general.html @@ -0,0 +1 @@ +code/modules/cargo/packs/general.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/packs/general.dm

/datum/supply_pack/misc/syndicateSpecial supply crate that generates random syndicate gear up to a determined TC value
/datum/supply_pack/misc/syndicate/custom_valueSyndicate supply crate that can have its contents value changed by admins, uses a seperate datum to avoid having admins touch the original one.
\ No newline at end of file diff --git a/code/modules/cargo/packs/imports.html b/code/modules/cargo/packs/imports.html new file mode 100644 index 0000000000000..cd3686532dbb7 --- /dev/null +++ b/code/modules/cargo/packs/imports.html @@ -0,0 +1,6 @@ +code/modules/cargo/packs/imports.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/packs/imports.dm

/datum/supply_pack/importsImports category. +This is for crates not intended for goodies, but also not intended for departmental orders. +This allows us to have a few crates meant for deliberate purchase through cargo, and for cargo to have a few items +they explicitly control. It also holds all of the black market material and contraband material, including items +meant for purchase only through emagging the console.
/datum/supply_pack/imports/blackmarket_telepadThe Long To Short Range Bluespace Teleporter, used to deliver (black) market purchases more effiiently +It can also be used to restock it, if you hit it with enough credits.
\ No newline at end of file diff --git a/code/modules/cargo/packs/security.html b/code/modules/cargo/packs/security.html new file mode 100644 index 0000000000000..82fb88085636c --- /dev/null +++ b/code/modules/cargo/packs/security.html @@ -0,0 +1 @@ +code/modules/cargo/packs/security.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/packs/security.dm

/datum/supply_pack/security/armoryArmory packs
\ No newline at end of file diff --git a/code/modules/cargo/packs/service.html b/code/modules/cargo/packs/service.html new file mode 100644 index 0000000000000..442bca8601985 --- /dev/null +++ b/code/modules/cargo/packs/service.html @@ -0,0 +1 @@ +code/modules/cargo/packs/service.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/packs/service.dm

/datum/supply_pack/service/greyidboxBox of 7 grey IDs.
/datum/supply_pack/service/silveridSingle silver ID.
/datum/supply_pack/service/bar_signSpare bar sign wallmount
\ No newline at end of file diff --git a/code/modules/cargo/packs/vending_restock.html b/code/modules/cargo/packs/vending_restock.html new file mode 100644 index 0000000000000..88c5d29db29aa --- /dev/null +++ b/code/modules/cargo/packs/vending_restock.html @@ -0,0 +1 @@ +code/modules/cargo/packs/vending_restock.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/cargo/packs/vending_restock.dm

/datum/supply_pack/vending/wardrobes/autodrobeClothing Vending Restocks
\ No newline at end of file diff --git a/code/modules/chatter/chatter.html b/code/modules/chatter/chatter.html new file mode 100644 index 0000000000000..a2c947afab5f5 --- /dev/null +++ b/code/modules/chatter/chatter.html @@ -0,0 +1,3 @@ +code/modules/chatter/chatter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/chatter/chatter.dm

/proc/chatter_speakWe're going to take a list that dictates the pace of speech, and a sentence fragment to say +Then say() that fragment at that pace +You can pass in a starting delay to wait before speaking the next sound
\ No newline at end of file diff --git a/code/modules/client/client_colour.html b/code/modules/client/client_colour.html new file mode 100644 index 0000000000000..02049178b273f --- /dev/null +++ b/code/modules/client/client_colour.html @@ -0,0 +1,10 @@ +code/modules/client/client_colour.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/client/client_colour.dm

/datum/client_colourClient Colour Priority System By RemieRichards (then refactored by another contributor) +A System that gives finer control over which client.colour value to display on screen +so that the "highest priority" one is always displayed as opposed to the default of +"whichever was set last is displayed".
MIX_CLIENT_COLOURGets the resulting colour/tone from client_colours. +In the case of multiple colours, they'll be converted to RGBA matrices for compatibility, +summed together, and then each element divided by the number of matrices. (except we do this with lists because byond) +target is the target variable.
/datum/client_colour/halloween_helmetA client colour that makes the screen look a bit more grungy, halloweenesque even.

Define Details

MIX_CLIENT_COLOUR

Gets the resulting colour/tone from client_colours. +In the case of multiple colours, they'll be converted to RGBA matrices for compatibility, +summed together, and then each element divided by the number of matrices. (except we do this with lists because byond) +target is the target variable.

\ No newline at end of file diff --git a/code/modules/client/client_defines.html b/code/modules/client/client_defines.html new file mode 100644 index 0000000000000..c4cf5c6c965ee --- /dev/null +++ b/code/modules/client/client_defines.html @@ -0,0 +1 @@ +code/modules/client/client_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/client_defines.dm

/clientClient datum
\ No newline at end of file diff --git a/code/modules/client/player_details.html b/code/modules/client/player_details.html new file mode 100644 index 0000000000000..e1841a8700592 --- /dev/null +++ b/code/modules/client/player_details.html @@ -0,0 +1,2 @@ +code/modules/client/player_details.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/player_details.dm

/datum/player_detailsTracks information about a client between log in and log outs
/proc/log_played_namesAdds the new names to the player's played_names list on their /datum/player_details for use of admins. +ckey should be their ckey, and data should be an associative list with the keys being the names they played under and the values being the unique mob ID tied to that name.
\ No newline at end of file diff --git a/code/modules/client/preferences.html b/code/modules/client/preferences.html new file mode 100644 index 0000000000000..67a55ff36dfe7 --- /dev/null +++ b/code/modules/client/preferences.html @@ -0,0 +1,336 @@ +code/modules/client/preferences/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Preferences (by Mothblocks)

This does not contain all the information on specific values--you can find those as doc-comments in relevant paths, such as /datum/preference. Rather, this gives you an overview for creating most preferences, and getting your foot in the door to create more advanced ones.

+

Anatomy of a preference (A.K.A. how do I make one?)

+

Most preferences consist of two parts:

+
    +
  1. A /datum/preference type.
  2. +
  3. A tgui representation in a TypeScript file.
  4. +
+

Every /datum/preference requires these three values be set:

+
    +
  1. category - See Categories.
  2. +
  3. savefile_key - The value which will be saved in the savefile. This will also be the identifier for tgui.
  4. +
  5. savefile_identifier - Whether or not this is a character specific preference (PREFERENCE_CHARACTER) or one that affects the player (PREFERENCE_PLAYER). As an example: hair color is PREFERENCE_CHARACTER while your UI settings are PREFERENCE_PLAYER, since they do not change between characters.
  6. +
+

For the tgui representation, most preferences will create a .tsx file in tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/. If your preference is a character preference, make a new file in character_preferences. Otherwise, put it in game_preferences. The filename does not matter, and this file can hold multiple relevant preferences if you would like.

+

From here, you will want to write code resembling:

+
import { Feature } from "../base";
+
+export const savefile_key_here: Feature<T> = {
+  name: "Preference Name Here",
+  component: Component,
+
+  // Necessary for game preferences, unused for others
+  category: "CATEGORY",
+
+  // Optional, shown as a tooltip
+  description: "This preference will blow your mind!",
+}
+
+

T and Component depend on the type of preference you're making. Here are all common examples...

+

Numeric preferences

+

Examples include age and FPS.

+

A numeric preference derives from /datum/preference/numeric.

+
/datum/preference/numeric/legs
+	category = PREFERENCE_CATEGORY_NON_CONTEXTUAL
+	savefile_identifier = PREFERENCE_CHARACTER
+	savefile_key = "legs"
+
+	minimum = 1
+	maximum = 8
+
+

You can optionally provide a step field. This value is 1 by default, meaning only integers are accepted.

+

Your .tsx file would look like:

+
import { Feature, FeatureNumberInput } from "../base";
+
+export const legs: Feature<number> = {
+  name: "Legs",
+  component: FeatureNumberInput,
+}
+
+

Toggle preferences

+

Examples include enabling tooltips.

+
/datum/preference/toggle/enable_breathing
+	category = PREFERENCE_CATEGORY_NON_CONTEXTUAL
+	savefile_identifier = PREFERENCE_CHARACTER
+	savefile_key = "enable_breathing"
+
+	// Optional, TRUE by default
+	default_value = FALSE
+
+

Your .tsx file would look like:

+
import { CheckboxInput, FeatureToggle } from "../base";
+
+export const enable_breathing: FeatureToggle = {
+  name: "Enable breathing",
+  component: CheckboxInput,
+}
+
+

Choiced preferences

+

A choiced preference is one where the only options are in a distinct few amount of choices. Examples include skin tone, shirt, and UI style.

+

To create one, derive from /datum/preference/choiced.

+
/datum/preference/choiced/favorite_drink
+	category = PREFERENCE_CATEGORY_NON_CONTEXTUAL
+	savefile_identifier = PREFERENCE_CHARACTER
+	savefile_key = "favorite_drink"
+
+

Now we need to tell the game what the choices are. We do this by overriding init_possible_values(). This will return a list of possible options.

+
/datum/preference/choiced/favorite_drink/init_possible_values()
+	return list(
+		"Milk",
+		"Cola",
+		"Water",
+	)
+
+

Your .tsx file would then look like:

+
import { FeatureChoiced, FeatureDropdownInput } from "../base";
+
+export const favorite_drink: FeatureChoiced = {
+  name: "Favorite drink",
+  component: FeatureDropdownInput,
+};
+
+

This will create a dropdown input for your preference.

+

Choiced preferences - Icons

+

Choiced preferences can generate icons. This is how the clothing/species preferences work, for instance. However, if we just want a basic dropdown input with icons, it would look like this:

+
/datum/preference/choiced/favorite_drink
+	category = PREFERENCE_CATEGORY_NON_CONTEXTUAL
+	savefile_identifier = PREFERENCE_CHARACTER
+	savefile_key = "favorite_drink"
+	should_generate_icons = TRUE // NEW! This is necessary.
+
+/datum/preference/choiced/favorite_drink/init_possible_values()
+	return list("Milk", "Cola", "Water")
+
+// New! This proc will get called for every value.
+/datum/preference/choiced/favorite_drink/icon_for(value)
+	switch (value)
+		if ("Milk")
+			return icon('drinks.dmi', "milk")
+		if ("Cola")
+			return icon('drinks.dmi', "cola")
+		if ("Water")
+			return icon('drinks.dmi', "water")
+
+

Then, change your .tsx file to look like:

+
import { FeatureChoiced, FeatureIconnedDropdownInput } from "../base";
+
+export const favorite_drink: FeatureChoiced = {
+  name: "Favorite drink",
+  component: FeatureIconnedDropdownInput,
+};
+
+

Choiced preferences - Display names

+

Sometimes the values you want to save in code aren't the same as the ones you want to display. You can specify display names to change this.

+

The only thing you will add is "compiled data".

+
/datum/preference/choiced/favorite_drink/compile_constant_data()
+	var/list/data = ..()
+
+	// An assoc list of values to display names
+	data[CHOICED_PREFERENCE_DISPLAY_NAMES] = list(
+		"Milk" = "Delicious Milk",
+		"Cola" = "Crisp Cola",
+		"Water" = "Plain Ol' Water",
+	)
+
+	return data
+
+

Your .tsx file does not change. The UI will figure it out for you!

+

Color preferences

+

These refer to colors, such as your OOC color. When read, these values will be given as 6 hex digits, without the pound sign.

+
/datum/preference/color/eyeliner_color
+	category = PREFERENCE_CATEGORY_NON_CONTEXTUAL
+	savefile_identifier = PREFERENCE_CHARACTER
+	savefile_key = "eyeliner_color"
+
+

Your .tsx file would look like:

+
import { FeatureColorInput, Feature } from "../base";
+
+export const eyeliner_color: Feature<string> = {
+  name: "Eyeliner color",
+  component: FeatureColorInput,
+};
+
+

Name preferences

+

These refer to an alternative name. Examples include AI names and backup human names.

+

These exist in code/modules/client/preferences/names.dm.

+

These do not need a .ts file, and will be created in the UI automatically.

+
/datum/preference/name/doctor
+	savefile_key = "doctor_name"
+
+	// The name on the UI
+	explanation = "Doctor name"
+
+	// This groups together with anything else with the same group
+	group = "medicine"
+
+	// Optional, if specified the UI will show this name actively
+	// when the player is a medical doctor.
+	relevant_job = /datum/job/medical_doctor
+
+

Making your preference do stuff

+

There are a handful of procs preferences can use to act on their own:

+
/// Apply this preference onto the given client.
+/// Called when the savefile_identifier == PREFERENCE_PLAYER.
+/datum/preference/proc/apply_to_client(client/client, value)
+
+/// Fired when the preference is updated.
+/// Calls apply_to_client by default, but can be overridden.
+/datum/preference/proc/apply_to_client_updated(client/client, value)
+
+/// Apply this preference onto the given human.
+/// Must be overriden by subtypes.
+/// Called when the savefile_identifier == PREFERENCE_CHARACTER.
+/datum/preference/proc/apply_to_human(mob/living/carbon/human/target, value)
+
+

For example, /datum/preference/numeric/age contains:

+
/datum/preference/numeric/age/apply_to_human(mob/living/carbon/human/target, value)
+	target.age = value
+
+

If your preference is PREFERENCE_CHARACTER, it MUST override apply_to_human, even if just to immediately return.

+

You can also read preferences directly with prefs.read_preference(/datum/preference/type/here), which will return the stored value.

+

Categories

+

Every preference needs to be in a category. These can be found in code/__DEFINES/preferences.dm.

+
/// These will be shown in the character sidebar, but at the bottom.
+#define PREFERENCE_CATEGORY_FEATURES "features"
+
+/// Any preferences that will show to the sides of the character in the setup menu.
+#define PREFERENCE_CATEGORY_CLOTHING "clothing"
+
+/// Preferences that will be put into the 3rd list, and are not contextual.
+#define PREFERENCE_CATEGORY_NON_CONTEXTUAL "non_contextual"
+
+/// Will be put under the game preferences window.
+#define PREFERENCE_CATEGORY_GAME_PREFERENCES "game_preferences"
+
+/// These will show in the list to the right of the character preview.
+#define PREFERENCE_CATEGORY_SECONDARY_FEATURES "secondary_features"
+
+/// These are preferences that are supplementary for main features,
+/// such as hair color being affixed to hair.
+#define PREFERENCE_CATEGORY_SUPPLEMENTAL_FEATURES "supplemental_features"
+
+

Preference categories for the main page

+
+

SECONDARY_FEATURES or NON_CONTEXTUAL?

+
+

Secondary features tend to be species specific. Non contextual features shouldn't change much from character to character.

+

Default values and randomization

+

There are three procs to be aware of in regards to this topic:

+
    +
  • create_default_value(). This is used when a value deserializes improperly or when a new character is created.
  • +
  • create_informed_default_value(datum/preferences/preferences) - Used for more complicated default values, like how names require the gender. Will call create_default_value() by default.
  • +
  • create_random_value(datum/preferences/preferences) - Explicitly used for random values, such as when a character is being randomized.
  • +
+

create_default_value() in most preferences will create a random value. If this is a problem (like how default characters should always be human), you can override create_default_value(). By default (without overriding create_random_value), random values are just default values.

+

Advanced - Server data

+

As previewed in the display names implementation, there exists a compile_constant_data() proc you can override.

+

Compiled data is used wherever the server needs to give the client some value it can't figure out on its own. Skin tones use this to tell the client what colors they represent, for example.

+

Compiled data is sent to the serverData field in the FeatureValueProps.

+

Advanced - Creating your own tgui component

+

If you have good knowledge with tgui (especially TypeScript), you'll be able to create your own component to represent preferences.

+

The component field in a feature accepts any component that accepts FeatureValueProps<TReceiving, TSending = TReceiving, TServerData = undefined>.

+

This will give you the fields:

+
act: typeof sendAct,
+featureId: string,
+handleSetValue: (newValue: TSending) => void,
+serverData: TServerData | undefined,
+shrink?: boolean,
+value: TReceiving,
+
+

act is the same as the one you get from useBackend.

+

featureId is the savefile_key of the feature.

+

handleSetValue is a function that, when called, will tell the server the new value, as well as changing the value immediately locally.

+

serverData is the server data, if it has been fetched yet (and exists).

+

shrink is whether or not the UI should appear smaller. This is only used for supplementary features.

+

value is the current value, could be predicted (meaning that the value was changed locally, but has not yet reached the server).

+

For a basic example of how this can look, observe CheckboxInput:

+
export const CheckboxInput = (
+  props: FeatureValueProps<BooleanLike, boolean>
+) => {
+  return (<Button.Checkbox
+    checked={!!props.value}
+    onClick={() => {
+      props.handleSetValue(!props.value);
+    }}
+  />);
+};
+
+

Advanced - Middleware

+

A /datum/preference_middleware is a way to inject your own data at specific points, as well as hijack actions.

+

Middleware can hijack actions by specifying action_delegations:

+
/datum/preference_middleware/congratulations
+	action_delegations = list(
+		"congratulate_me" = PROC_REF(congratulate_me),
+	)
+
+/datum/preference_middleware/congratulations/proc/congratulate_me(list/params, mob/user)
+	to_chat(user, span_notice("Wow, you did a great job learning about middleware!"))
+
+	return TRUE
+
+

Middleware can inject its own data at several points, such as providing new UI assets, compiled data (used by middleware such as quirks to tell the client what quirks exist), etc. Look at code/modules/client/preferences/middleware/_middleware.dm for full information.

+
+

Antagonists

+

In order to make an antagonist selectable, you must do a few things:

+
    +
  1. Your antagonist needs an icon.
  2. +
  3. Your antagonist must be in a Dynamic ruleset. The ruleset must specify the antagonist as its antag_flag.
  4. +
  5. Your antagonist needs a file in tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/filename.ts. This file name MUST be the antag_flag of your ruleset, with nothing but letters remaining (e.g. "Nuclear Operative" -> nuclearoperative).
  6. +
  7. Add it to special_roles.
  8. +
+

Creating icons

+

If you are satisfied with your icon just being a dude with some clothes, then you can specify preview_outfit in your /datum/antagonist.

+

Space Ninja, for example, looks like:

+
/datum/antagonist/ninja
+	preview_outift = /datum/outfit/ninja
+
+

However, if you want to get creative, you can override /get_preview_icon(). This proc should return an icon of size ANTAGONIST_PREVIEW_ICON_SIZExANTAGONIST_PREVIEW_ICON_SIZE.

+

There are some helper procs you can use as well. render_preview_outfit(outfit_type) will take an outfit and give you an icon of someone wearing those clothes. finish_preview_outfit will, given an icon, resize it appropriately and zoom in on the head. Note that this will look bad on anything that isn't a human, so if you have a non-human antagonist (such as sentient disease), just run icon.Scale(ANTAGONIST_PREVIEW_ICON_SIZE, ANTAGONIST_PREVIEW_ICON_SIZE).

+

For inspiration, here is changeling's:

+
/datum/antagonist/changeling/get_preview_icon()
+	var/icon/final_icon = render_preview_outfit(/datum/outfit/changeling)
+	var/icon/split_icon = render_preview_outfit(/datum/outfit/job/engineer)
+
+	final_icon.Shift(WEST, ICON_SIZE_X / 2)
+	final_icon.Shift(EAST, ICON_SIZE_X / 2)
+
+	split_icon.Shift(EAST, ICON_SIZE_X / 2)
+	split_icon.Shift(WEST, ICON_SIZE_X / 2)
+
+	final_icon.Blend(split_icon, ICON_OVERLAY)
+
+	return finish_preview_icon(final_icon)
+
+

...which creates:

+

Changeling icon

+

Creating the tgui representation

+

In the .ts file you created earlier, you must now give the information of your antagonist. For reference, this is the changeling's:

+
import { Antagonist, Category } from "../base";
+import { multiline } from "common/string";
+
+const Changeling: Antagonist = {
+  key: "changeling", // This must be the same as your filename
+  name: "Changeling",
+  description: [
+    multiline`
+      A highly intelligent alien predator that is capable of altering their
+      shape to flawlessly resemble a human.
+    `,
+
+    multiline`
+      Transform yourself or others into different identities, and buy from an
+      arsenal of biological weaponry with the DNA you collect.
+    `,
+  ],
+  category: Category.Roundstart, // Category.Roundstart, Category.Midround, or Category.Latejoin
+};
+
+export default Changeling;
+
+

Readying the Dynamic ruleset

+

You already need to create a Dynamic ruleset, so in order to get your antagonist recognized, you just need to specify antag_flag. This must be unique per ruleset.

+

Two other values to note are antag_flag_override and antag_preference.

+

antag_flag_override exists for cases where you want the banned antagonist to be separate from antag_flag. As an example: roundstart, midround, and latejoin traitors have separate antag_flag, but all have antag_flag_override = ROLE_TRAITOR. This is because admins want to ban a player from Traitor altogether, not specific rulesets.

+

If antag_preference is set, it will refer to that preference instead of antag_flag. This is used for clown operatives, which we want to be on the same preference as standard nuke ops, but must specify a unique antag_flag for.

+

Updating special_roles

+

In code/__DEFINES/role_preferences.dm (the same place you'll need to make your ROLE_* defined), simply add your antagonist to the special_roles assoc list. The key is your ROLE, the value is the number of days since your first game in order to play as that antagonist.

/atom/movable/screen/map_view/char_previewA preview of a character for use in the preferences menu
/proc/safe_read_prefSafely read a given preference datum from a given client.
/proc/get_chat_togglesGet the given client's chat toggle prefs.
\ No newline at end of file diff --git a/code/modules/client/preferences/_preference.html b/code/modules/client/preferences/_preference.html new file mode 100644 index 0000000000000..8ffdc75d66574 --- /dev/null +++ b/code/modules/client/preferences/_preference.html @@ -0,0 +1,13 @@ +code/modules/client/preferences/_preference.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/client/preferences/_preference.dm

PREFERENCE_PRIORITY_DEFAULTThe default priority level
PREFERENCE_PRIORITY_SPECIESThe priority at which species runs, needed for external organs to apply properly.
PREFERENCE_PRIORITY_BODYPARTSSome preferences get applied directly to bodyparts (anything head_flags related right now). +These must apply after species, as species gaining might replace the bodyparts of the human.
PREFERENCE_PRIORITY_GENDERThe priority at which gender is determined, needed for proper randomization.
PREFERENCE_PRIORITY_BODY_TYPEThe priority at which body type is decided, applied after gender so we can +support the "use gender" option.
PREFERENCE_PRORITY_LATE_BODY_TYPEUsed for preferences that rely on body setup being finalized.
PREFERENCE_PRIORITY_LOADOUTEqupping items based on preferences. +Should happen after species and body type to make sure it looks right. +Mostly redundant, but a safety net for saving/loading.
PREFERENCE_PRIORITY_NAMESThe priority at which names are decided, needed for proper randomization.
PREFERENCE_PRIORITY_NAME_MODIFICATIONSPreferences that aren't names, but change the name changes set by PREFERENCE_PRIORITY_NAMES.
MAX_PREFERENCE_PRIORITYThe maximum preference priority, keep this updated, but don't use it for priority.
CHOICED_PREFERENCE_DISPLAY_NAMESFor choiced preferences, this key will be used to set display names in constant data.
SUPPLEMENTAL_FEATURE_KEYFor main feature preferences, this key refers to a feature considered supplemental. +For instance, hair color being supplemental to hair.
/proc/get_preferences_in_priority_orderReturns a flat list of preferences in order of their priority
/datum/preferenceRepresents an individual preference.
/datum/preference/choicedA preference that is a choice of one option among a fixed set. +Used for preferences such as clothing.
/datum/preference/colorA preference that represents an RGB color of something. +Will give the value as 6 hex digits, without a hash.
/datum/preference/numericA numeric preference with a minimum and maximum value
/datum/preference/toggleA preference whose value is always TRUE or FALSE
/datum/preference/textA string-based preference accepting arbitrary string values entered by the user, with a maximum length.

Define Details

CHOICED_PREFERENCE_DISPLAY_NAMES

For choiced preferences, this key will be used to set display names in constant data.

MAX_PREFERENCE_PRIORITY

The maximum preference priority, keep this updated, but don't use it for priority.

PREFERENCE_PRIORITY_BODYPARTS

Some preferences get applied directly to bodyparts (anything head_flags related right now). +These must apply after species, as species gaining might replace the bodyparts of the human.

PREFERENCE_PRIORITY_BODY_TYPE

The priority at which body type is decided, applied after gender so we can +support the "use gender" option.

PREFERENCE_PRIORITY_DEFAULT

The default priority level

PREFERENCE_PRIORITY_GENDER

The priority at which gender is determined, needed for proper randomization.

PREFERENCE_PRIORITY_LOADOUT

Equpping items based on preferences. +Should happen after species and body type to make sure it looks right. +Mostly redundant, but a safety net for saving/loading.

PREFERENCE_PRIORITY_NAMES

The priority at which names are decided, needed for proper randomization.

PREFERENCE_PRIORITY_NAME_MODIFICATIONS

Preferences that aren't names, but change the name changes set by PREFERENCE_PRIORITY_NAMES.

PREFERENCE_PRIORITY_SPECIES

The priority at which species runs, needed for external organs to apply properly.

PREFERENCE_PRORITY_LATE_BODY_TYPE

Used for preferences that rely on body setup being finalized.

SUPPLEMENTAL_FEATURE_KEY

For main feature preferences, this key refers to a feature considered supplemental. +For instance, hair color being supplemental to hair.

\ No newline at end of file diff --git a/code/modules/client/preferences/admin.html b/code/modules/client/preferences/admin.html new file mode 100644 index 0000000000000..7fd488aa13695 --- /dev/null +++ b/code/modules/client/preferences/admin.html @@ -0,0 +1 @@ +code/modules/client/preferences/admin.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/admin.dm

/datum/preference/choiced/brief_outfitWhat outfit to equip when spawning as a briefing officer for an ERT
/datum/preference/toggle/ghost_roles_as_adminWhen enabled, prevents any and all ghost role pop-ups WHILE ADMINNED.
\ No newline at end of file diff --git a/code/modules/client/preferences/ai_core_display.html b/code/modules/client/preferences/ai_core_display.html new file mode 100644 index 0000000000000..9e7d8dc8acb47 --- /dev/null +++ b/code/modules/client/preferences/ai_core_display.html @@ -0,0 +1 @@ +code/modules/client/preferences/ai_core_display.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/ai_core_display.dm

/datum/preference/choiced/ai_core_displayWhat to show on the AI screen
\ No newline at end of file diff --git a/code/modules/client/preferences/ai_emote_display.html b/code/modules/client/preferences/ai_emote_display.html new file mode 100644 index 0000000000000..94f81e26b6360 --- /dev/null +++ b/code/modules/client/preferences/ai_emote_display.html @@ -0,0 +1 @@ +code/modules/client/preferences/ai_emote_display.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/ai_emote_display.dm

/datum/preference/choiced/ai_emote_displayWhat to show on the AI monitor
\ No newline at end of file diff --git a/code/modules/client/preferences/ai_hologram_display.html b/code/modules/client/preferences/ai_hologram_display.html new file mode 100644 index 0000000000000..038fe194b7ed9 --- /dev/null +++ b/code/modules/client/preferences/ai_hologram_display.html @@ -0,0 +1 @@ +code/modules/client/preferences/ai_hologram_display.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/ai_hologram_display.dm

/datum/preference/choiced/ai_hologram_displayWhat to show on the AI hologram
\ No newline at end of file diff --git a/code/modules/client/preferences/ambient_occlusion.html b/code/modules/client/preferences/ambient_occlusion.html new file mode 100644 index 0000000000000..f3e997e6e426d --- /dev/null +++ b/code/modules/client/preferences/ambient_occlusion.html @@ -0,0 +1 @@ +code/modules/client/preferences/ambient_occlusion.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/ambient_occlusion.dm

/datum/preference/toggle/ambient_occlusionWhether or not to toggle ambient occlusion, the shadows around people
\ No newline at end of file diff --git a/code/modules/client/preferences/assets.html b/code/modules/client/preferences/assets.html new file mode 100644 index 0000000000000..8298fb0b004f7 --- /dev/null +++ b/code/modules/client/preferences/assets.html @@ -0,0 +1 @@ +code/modules/client/preferences/assets.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/assets.dm

/datum/asset/spritesheet/preferencesAssets generated from /datum/preference icons
/datum/asset/json/preferencesSends information needed for shared details on individual preferences
\ No newline at end of file diff --git a/code/modules/client/preferences/blindfold_color.html b/code/modules/client/preferences/blindfold_color.html new file mode 100644 index 0000000000000..7165eab217245 --- /dev/null +++ b/code/modules/client/preferences/blindfold_color.html @@ -0,0 +1 @@ +code/modules/client/preferences/blindfold_color.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/blindfold_color.dm

/datum/preference/color/blindfold_colorPreference for the roundstart color of the blindfold given by the Blindness quirk.
\ No newline at end of file diff --git a/code/modules/client/preferences/broadcast_login_logout.html b/code/modules/client/preferences/broadcast_login_logout.html new file mode 100644 index 0000000000000..7af2a46e63059 --- /dev/null +++ b/code/modules/client/preferences/broadcast_login_logout.html @@ -0,0 +1 @@ +code/modules/client/preferences/broadcast_login_logout.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/broadcast_login_logout.dm

/datum/preference/toggle/broadcast_login_logoutWhether or not to announce when the player logs in or out.
\ No newline at end of file diff --git a/code/modules/client/preferences/clothing.html b/code/modules/client/preferences/clothing.html new file mode 100644 index 0000000000000..0cab5b68ec827 --- /dev/null +++ b/code/modules/client/preferences/clothing.html @@ -0,0 +1 @@ +code/modules/client/preferences/clothing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/clothing.dm

/datum/preference/choiced/backpackBackpack preference
/datum/preference/choiced/jumpsuitJumpsuit preference
/datum/preference/choiced/socksSocks preference
/datum/preference/choiced/undershirtUndershirt preference
/datum/preference/choiced/underwearUnderwear preference
\ No newline at end of file diff --git a/code/modules/client/preferences/darkened_flash.html b/code/modules/client/preferences/darkened_flash.html new file mode 100644 index 0000000000000..7fee0fc089166 --- /dev/null +++ b/code/modules/client/preferences/darkened_flash.html @@ -0,0 +1 @@ +code/modules/client/preferences/darkened_flash.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/darkened_flash.dm

/datum/preference/toggle/darkened_flashWhen toggled, being flashed will show a dark screen rather than a light one.
\ No newline at end of file diff --git a/code/modules/client/preferences/gender.html b/code/modules/client/preferences/gender.html new file mode 100644 index 0000000000000..28021821ca4f7 --- /dev/null +++ b/code/modules/client/preferences/gender.html @@ -0,0 +1 @@ +code/modules/client/preferences/gender.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/gender.dm

/datum/preference/choiced/genderGender preference
\ No newline at end of file diff --git a/code/modules/client/preferences/ghost.html b/code/modules/client/preferences/ghost.html new file mode 100644 index 0000000000000..3e8a30561589a --- /dev/null +++ b/code/modules/client/preferences/ghost.html @@ -0,0 +1 @@ +code/modules/client/preferences/ghost.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/ghost.dm

/datum/preference/choiced/ghost_accessoriesDetermines what accessories your ghost will look like they have.
/datum/preference/choiced/ghost_formDetermines the appearance of your ghost to others, when you are a BYOND member
/datum/preference/toggle/ghost_hudToggles the HUD for ghosts
/datum/preference/choiced/ghost_orbitDetermines what ghosts orbiting look like to you.
/datum/preference/choiced/ghost_othersDetermines how to show other ghosts
/datum/preference/toggle/inquisitive_ghostWhether or not ghosts can examine things by clicking on them.
/datum/preference/toggle/ghost_rolesWhen enabled, prevents any and all ghost role pop-ups.
\ No newline at end of file diff --git a/code/modules/client/preferences/ghost_lighting.html b/code/modules/client/preferences/ghost_lighting.html new file mode 100644 index 0000000000000..68794d68e212b --- /dev/null +++ b/code/modules/client/preferences/ghost_lighting.html @@ -0,0 +1 @@ +code/modules/client/preferences/ghost_lighting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/ghost_lighting.dm

/datum/preference/choiced/ghost_lightingHow bright a ghost's lighting plane is
\ No newline at end of file diff --git a/code/modules/client/preferences/middleware/_middleware.html b/code/modules/client/preferences/middleware/_middleware.html new file mode 100644 index 0000000000000..c6cdaee5adb87 --- /dev/null +++ b/code/modules/client/preferences/middleware/_middleware.html @@ -0,0 +1 @@ +code/modules/client/preferences/middleware/_middleware.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/middleware/_middleware.dm

/datum/preference_middlewarePreference middleware is code that helps to decentralize complicated preference features.
\ No newline at end of file diff --git a/code/modules/client/preferences/middleware/antags.html b/code/modules/client/preferences/middleware/antags.html new file mode 100644 index 0000000000000..8c26747e4452b --- /dev/null +++ b/code/modules/client/preferences/middleware/antags.html @@ -0,0 +1 @@ +code/modules/client/preferences/middleware/antags.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/middleware/antags.dm

/datum/asset/spritesheet/antagonistsSprites generated for the antagonists panel
/proc/serialize_antag_nameSerializes an antag name to be used for preferences UI
\ No newline at end of file diff --git a/code/modules/client/preferences/middleware/keybindings.html b/code/modules/client/preferences/middleware/keybindings.html new file mode 100644 index 0000000000000..696b943471e54 --- /dev/null +++ b/code/modules/client/preferences/middleware/keybindings.html @@ -0,0 +1 @@ +code/modules/client/preferences/middleware/keybindings.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/middleware/keybindings.dm

/datum/preference_middleware/keybindingsMiddleware to handle keybindings
\ No newline at end of file diff --git a/code/modules/client/preferences/middleware/legacy_toggles.html b/code/modules/client/preferences/middleware/legacy_toggles.html new file mode 100644 index 0000000000000..b9b181456c07c --- /dev/null +++ b/code/modules/client/preferences/middleware/legacy_toggles.html @@ -0,0 +1,6 @@ +code/modules/client/preferences/middleware/legacy_toggles.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/middleware/legacy_toggles.dm

/datum/preference_middleware/legacy_togglesIn the before times, toggles were all stored in one bitfield. +In order to preserve this existing data (and code) without massive +migrations, this middleware attempts to handle this in a way +transparent to the preferences UI itself. +In the future, the existing toggles data should just be migrated to +individual /datum/preference/toggles.
\ No newline at end of file diff --git a/code/modules/client/preferences/middleware/names.html b/code/modules/client/preferences/middleware/names.html new file mode 100644 index 0000000000000..42ad6394c635f --- /dev/null +++ b/code/modules/client/preferences/middleware/names.html @@ -0,0 +1,2 @@ +code/modules/client/preferences/middleware/names.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/middleware/names.dm

/datum/preference_middleware/namesMiddleware that handles telling the UI which name to show, and waht names +they have.
\ No newline at end of file diff --git a/code/modules/client/preferences/middleware/quirks.html b/code/modules/client/preferences/middleware/quirks.html new file mode 100644 index 0000000000000..b34e51cc10106 --- /dev/null +++ b/code/modules/client/preferences/middleware/quirks.html @@ -0,0 +1 @@ +code/modules/client/preferences/middleware/quirks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/middleware/quirks.dm

/datum/preference_middleware/quirksMiddleware to handle quirks
\ No newline at end of file diff --git a/code/modules/client/preferences/middleware/random.html b/code/modules/client/preferences/middleware/random.html new file mode 100644 index 0000000000000..4f7343cfc8a72 --- /dev/null +++ b/code/modules/client/preferences/middleware/random.html @@ -0,0 +1 @@ +code/modules/client/preferences/middleware/random.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/middleware/random.dm

/datum/preference_middleware/randomMiddleware for handling randomization preferences
\ No newline at end of file diff --git a/code/modules/client/preferences/middleware/species.html b/code/modules/client/preferences/middleware/species.html new file mode 100644 index 0000000000000..7ae97173084b3 --- /dev/null +++ b/code/modules/client/preferences/middleware/species.html @@ -0,0 +1 @@ +code/modules/client/preferences/middleware/species.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/middleware/species.dm

/datum/preference_middleware/speciesHandles the assets for species icons
\ No newline at end of file diff --git a/code/modules/client/preferences/middleware/tts.html b/code/modules/client/preferences/middleware/tts.html new file mode 100644 index 0000000000000..80b7da54aa971 --- /dev/null +++ b/code/modules/client/preferences/middleware/tts.html @@ -0,0 +1 @@ +code/modules/client/preferences/middleware/tts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/middleware/tts.dm

/datum/preference_middleware/ttsMiddleware to handle quirks
\ No newline at end of file diff --git a/code/modules/client/preferences/mod_select.html b/code/modules/client/preferences/mod_select.html new file mode 100644 index 0000000000000..080aef3a90418 --- /dev/null +++ b/code/modules/client/preferences/mod_select.html @@ -0,0 +1 @@ +code/modules/client/preferences/mod_select.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/mod_select.dm

/datum/preference/choiced/mod_selectSwitches between mouse buttons for MODsuit active modules
\ No newline at end of file diff --git a/code/modules/client/preferences/multiz_parallax.html b/code/modules/client/preferences/multiz_parallax.html new file mode 100644 index 0000000000000..9f61b9e73f54f --- /dev/null +++ b/code/modules/client/preferences/multiz_parallax.html @@ -0,0 +1 @@ +code/modules/client/preferences/multiz_parallax.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/multiz_parallax.dm

/datum/preference/toggle/multiz_parallaxWhether or not to toggle multiz parallax, the parallax effect for lower z-levels.
\ No newline at end of file diff --git a/code/modules/client/preferences/multiz_performance.html b/code/modules/client/preferences/multiz_performance.html new file mode 100644 index 0000000000000..ac2f09f8e80cf --- /dev/null +++ b/code/modules/client/preferences/multiz_performance.html @@ -0,0 +1 @@ +code/modules/client/preferences/multiz_performance.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/multiz_performance.dm

/datum/preference/numeric/multiz_performanceBoundary for how many z levels down to render properly before we start going cheapo mode
\ No newline at end of file diff --git a/code/modules/client/preferences/names.html b/code/modules/client/preferences/names.html new file mode 100644 index 0000000000000..fb06a51e4f885 --- /dev/null +++ b/code/modules/client/preferences/names.html @@ -0,0 +1 @@ +code/modules/client/preferences/names.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/names.dm

/datum/preference/nameA preference for a name. Used not just for normal names, but also for clown names, etc.
/datum/preference/name/real_nameA character's real name
/datum/preference/name/backup_humanThe name for a backup human, when nonhumans are made into head of staff
/datum/preference/name/operative_aliasThe first name given to nuclear operative antagonists. The last name will be chosen by the team leader.
/datum/preference/name/hacker_aliasThe name to use while bitrunning
\ No newline at end of file diff --git a/code/modules/client/preferences/ooc.html b/code/modules/client/preferences/ooc.html new file mode 100644 index 0000000000000..c6a4458d2f084 --- /dev/null +++ b/code/modules/client/preferences/ooc.html @@ -0,0 +1 @@ +code/modules/client/preferences/ooc.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/ooc.dm

/datum/preference/color/ooc_colorThe color admins will speak in for OOC.
\ No newline at end of file diff --git a/code/modules/client/preferences/operative_species.html b/code/modules/client/preferences/operative_species.html new file mode 100644 index 0000000000000..e9a4b7280204a --- /dev/null +++ b/code/modules/client/preferences/operative_species.html @@ -0,0 +1,2 @@ +code/modules/client/preferences/operative_species.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/operative_species.dm

/datum/preference/toggle/nuke_ops_speciesWhen TRUE, will spawn you as a human when selected for an operative role +When FALSE, players will be placed into the game as their character's species
\ No newline at end of file diff --git a/code/modules/client/preferences/paint_color.html b/code/modules/client/preferences/paint_color.html new file mode 100644 index 0000000000000..a626a3733e9ad --- /dev/null +++ b/code/modules/client/preferences/paint_color.html @@ -0,0 +1 @@ +code/modules/client/preferences/paint_color.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/paint_color.dm

/datum/preference/color/paint_colorPreference for the roundstart color of the spraycan given by the Tagger quirk.
\ No newline at end of file diff --git a/code/modules/client/preferences/parallax.html b/code/modules/client/preferences/parallax.html new file mode 100644 index 0000000000000..8684f6bd7481c --- /dev/null +++ b/code/modules/client/preferences/parallax.html @@ -0,0 +1 @@ +code/modules/client/preferences/parallax.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/parallax.dm

/datum/preference/choiced/parallaxDetermines parallax, "fancy space"
\ No newline at end of file diff --git a/code/modules/client/preferences/pda.html b/code/modules/client/preferences/pda.html new file mode 100644 index 0000000000000..ba293478ca18f --- /dev/null +++ b/code/modules/client/preferences/pda.html @@ -0,0 +1,3 @@ +code/modules/client/preferences/pda.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/pda.dm

/datum/preference/text/pda_ringtoneThis is the preference for the player's SpaceMessenger ringtone. +Currently only applies to humans spawned in with a job, as it's hooked +into /datum/job/proc/after_spawn().
/datum/preference/choiced/pda_themePDA theme
\ No newline at end of file diff --git a/code/modules/client/preferences/playtime_reward_cloak.html b/code/modules/client/preferences/playtime_reward_cloak.html new file mode 100644 index 0000000000000..9a73a930180dc --- /dev/null +++ b/code/modules/client/preferences/playtime_reward_cloak.html @@ -0,0 +1,3 @@ +code/modules/client/preferences/playtime_reward_cloak.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/playtime_reward_cloak.dm

/datum/preference/toggle/playtime_reward_cloakThis can be set to TRUE from the prefs menu only once the user has +gained over 5K playtime hours. +If true, it allows the user to get a cool looking roundstart cloak.
\ No newline at end of file diff --git a/code/modules/client/preferences/preferred_map.html b/code/modules/client/preferences/preferred_map.html new file mode 100644 index 0000000000000..b4728378d8184 --- /dev/null +++ b/code/modules/client/preferences/preferred_map.html @@ -0,0 +1 @@ +code/modules/client/preferences/preferred_map.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/preferred_map.dm

/datum/preference/choiced/preferred_mapDuring map rotation, this will help determine the chosen map.
\ No newline at end of file diff --git a/code/modules/client/preferences/prisoner_crime.html b/code/modules/client/preferences/prisoner_crime.html new file mode 100644 index 0000000000000..519403acb375b --- /dev/null +++ b/code/modules/client/preferences/prisoner_crime.html @@ -0,0 +1 @@ +code/modules/client/preferences/prisoner_crime.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/prisoner_crime.dm

/datum/preference/choiced/prisoner_crimeWhich crime is the prisoner permabrigged for. For fluff!
\ No newline at end of file diff --git a/code/modules/client/preferences/scaling_method.html b/code/modules/client/preferences/scaling_method.html new file mode 100644 index 0000000000000..3d98562ab6d98 --- /dev/null +++ b/code/modules/client/preferences/scaling_method.html @@ -0,0 +1 @@ +code/modules/client/preferences/scaling_method.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/scaling_method.dm

/datum/preference/choiced/scaling_methodThe scaling method to show the world in, e.g. nearest neighbor
\ No newline at end of file diff --git a/code/modules/client/preferences/security_department.html b/code/modules/client/preferences/security_department.html new file mode 100644 index 0000000000000..6dee928096155 --- /dev/null +++ b/code/modules/client/preferences/security_department.html @@ -0,0 +1 @@ +code/modules/client/preferences/security_department.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/security_department.dm

/datum/preference/choiced/security_departmentWhich department to put security officers in, when the config is enabled
\ No newline at end of file diff --git a/code/modules/client/preferences/sounds.html b/code/modules/client/preferences/sounds.html new file mode 100644 index 0000000000000..18983bd4f7f79 --- /dev/null +++ b/code/modules/client/preferences/sounds.html @@ -0,0 +1 @@ +code/modules/client/preferences/sounds.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/sounds.dm

/datum/preference/toggle/sound_ambienceControls hearing ambience
/datum/preference/toggle/sound_announcementsControls hearing announcement sounds
/datum/preference/toggle/sound_combatmodeControls hearing the combat mode toggle sound
/datum/preference/toggle/sound_endofroundControls hearing round end sounds
/datum/preference/toggle/sound_instrumentsControls hearing instruments
/datum/preference/toggle/sound_jukeboxControls hearing dance machines
/datum/preference/toggle/sound_lobbyControls hearing lobby music
/datum/preference/toggle/sound_midiControls hearing admin music
/datum/preference/toggle/sound_ship_ambienceControls hearing ship ambience
/datum/preference/toggle/sound_elevatorControls hearing elevator music
/datum/preference/toggle/radio_noiseControls hearing radio noise
\ No newline at end of file diff --git a/code/modules/client/preferences/species.html b/code/modules/client/preferences/species.html new file mode 100644 index 0000000000000..f945517cb4707 --- /dev/null +++ b/code/modules/client/preferences/species.html @@ -0,0 +1 @@ +code/modules/client/preferences/species.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/species.dm

/datum/preference/choiced/speciesSpecies preference
\ No newline at end of file diff --git a/code/modules/client/preferences/tgui.html b/code/modules/client/preferences/tgui.html new file mode 100644 index 0000000000000..b1c4f797cc0e1 --- /dev/null +++ b/code/modules/client/preferences/tgui.html @@ -0,0 +1 @@ +code/modules/client/preferences/tgui.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/tgui.dm

/datum/preference/toggle/tgui_input_largeLarge button preference. Error text is in tooltip.
/datum/preference/toggle/tgui_input_swappedSwapped button state - sets buttons to SS13 traditional SUBMIT/CANCEL
/datum/preference/toggle/tgui_say_light_modeLight mode for tgui say
\ No newline at end of file diff --git a/code/modules/client/preferences/ui_style.html b/code/modules/client/preferences/ui_style.html new file mode 100644 index 0000000000000..04875d4c0025b --- /dev/null +++ b/code/modules/client/preferences/ui_style.html @@ -0,0 +1 @@ +code/modules/client/preferences/ui_style.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/ui_style.dm

/datum/preference/choiced/ui_styleUI style preference
\ No newline at end of file diff --git a/code/modules/client/preferences/voice.html b/code/modules/client/preferences/voice.html new file mode 100644 index 0000000000000..c63542051e6ed --- /dev/null +++ b/code/modules/client/preferences/voice.html @@ -0,0 +1 @@ +code/modules/client/preferences/voice.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/voice.dm

/datum/preference/choiced/voiceTTS voice preference
\ No newline at end of file diff --git a/code/modules/client/preferences/window_flashing.html b/code/modules/client/preferences/window_flashing.html new file mode 100644 index 0000000000000..c48109a9b57b7 --- /dev/null +++ b/code/modules/client/preferences/window_flashing.html @@ -0,0 +1 @@ +code/modules/client/preferences/window_flashing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/preferences/window_flashing.dm

/datum/preference/toggle/window_flashingEnables flashing the window in your task tray for important events
\ No newline at end of file diff --git a/code/modules/client/verbs/who.html b/code/modules/client/verbs/who.html new file mode 100644 index 0000000000000..29a21d3e82629 --- /dev/null +++ b/code/modules/client/verbs/who.html @@ -0,0 +1,4 @@ +code/modules/client/verbs/who.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/client/verbs/who.dm

/proc/get_list_of_adminsProc that returns a list of cliented admins. Remember that this list can contain nulls! +Also, will return null if we don't have any admins.
/proc/get_linked_admin_nameProc that will return the applicable display name, linkified or not, based on the input client reference.
/proc/get_general_adminwho_informationProc that gathers adminwho information for a general player, which will only give information if an admin isn't AFK, and handles potential fakekeying. +Will return a list of strings.
/proc/get_sensitive_adminwho_informationProc that gathers adminwho information for admins, which will contain information on if the admin is AFK, readied to join, etc. Only arg is a list of clients to use. +Will return a list of strings.
\ No newline at end of file diff --git a/code/modules/clothing/belts/polymorph_belt.html b/code/modules/clothing/belts/polymorph_belt.html new file mode 100644 index 0000000000000..1d6e9a99638cb --- /dev/null +++ b/code/modules/clothing/belts/polymorph_belt.html @@ -0,0 +1 @@ +code/modules/clothing/belts/polymorph_belt.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/belts/polymorph_belt.dm

/obj/item/polymorph_beltBelt which can turn you into a beast, once an anomaly core is inserted
/obj/item/polymorph_belt/functioningPre-activated polymorph belt
/datum/action/cooldown/spell/shapeshift/polymorph_beltAbility provided by the polymorph belt
\ No newline at end of file diff --git a/code/modules/clothing/chameleon/_chameleon_action.html b/code/modules/clothing/chameleon/_chameleon_action.html new file mode 100644 index 0000000000000..6329c678033ed --- /dev/null +++ b/code/modules/clothing/chameleon/_chameleon_action.html @@ -0,0 +1 @@ +code/modules/clothing/chameleon/_chameleon_action.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/clothing/chameleon/_chameleon_action.dm

EMP_RANDOMISE_TIMEDefault duration of an EMP randomisation on a chameleon item

Define Details

EMP_RANDOMISE_TIME

Default duration of an EMP randomisation on a chameleon item

\ No newline at end of file diff --git a/code/modules/clothing/chameleon/chameleon_scanner.html b/code/modules/clothing/chameleon/chameleon_scanner.html new file mode 100644 index 0000000000000..c018451e2ab90 --- /dev/null +++ b/code/modules/clothing/chameleon/chameleon_scanner.html @@ -0,0 +1 @@ +code/modules/clothing/chameleon/chameleon_scanner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/chameleon/chameleon_scanner.dm

/obj/item/chameleon_scannerSmall handheld chameleon item that allows a user to mimic the outfit of another person quickly.
\ No newline at end of file diff --git a/code/modules/clothing/glasses/_glasses.html b/code/modules/clothing/glasses/_glasses.html new file mode 100644 index 0000000000000..b11c28af7b526 --- /dev/null +++ b/code/modules/clothing/glasses/_glasses.html @@ -0,0 +1 @@ +code/modules/clothing/glasses/_glasses.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/glasses/_glasses.dm

/obj/item/clothing/glasses/eyepatch/medical/chuuniwizard version
/obj/item/syndicate_contactsSyndicate item that upgrades the flash protection of your eyes.
\ No newline at end of file diff --git a/code/modules/clothing/gloves/special.html b/code/modules/clothing/gloves/special.html new file mode 100644 index 0000000000000..5280afbf40d60 --- /dev/null +++ b/code/modules/clothing/gloves/special.html @@ -0,0 +1 @@ +code/modules/clothing/gloves/special.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/gloves/special.dm

/obj/item/clothing/gloves/fishingA pair of gloves that both allow the user to fish without the need of a held fishing rod and provides athletics experience.
/obj/item/fishing_rod/mob_fisher/athleticThe internal fishing rod of the athletic fishing gloves. The more athletic you're, the easier the minigame will be.
\ No newline at end of file diff --git a/code/modules/clothing/head/costume.html b/code/modules/clothing/head/costume.html new file mode 100644 index 0000000000000..36324ae9fa1a7 --- /dev/null +++ b/code/modules/clothing/head/costume.html @@ -0,0 +1,2 @@ +code/modules/clothing/head/costume.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/head/costume.dm

/obj/item/clothing/head/costume/irsNONE(Squash) +Clothing that does not have a digitigrade version, and thus will squash legs to fit.
\ No newline at end of file diff --git a/code/modules/clothing/head/hat.html b/code/modules/clothing/head/hat.html new file mode 100644 index 0000000000000..1d2737ffc5114 --- /dev/null +++ b/code/modules/clothing/head/hat.html @@ -0,0 +1 @@ +code/modules/clothing/head/hat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/head/hat.dm

/obj/item/clothing/head/cowboy/bountyBounty hunter's hat, very likely to intercept bullets
/obj/item/clothing/head/cowboy/black/syndicateMore likely to intercept bullets, since you're likely to not be wearing your modsuit with this on
\ No newline at end of file diff --git a/code/modules/clothing/head/jobs.html b/code/modules/clothing/head/jobs.html new file mode 100644 index 0000000000000..acf288444547f --- /dev/null +++ b/code/modules/clothing/head/jobs.html @@ -0,0 +1 @@ +code/modules/clothing/head/jobs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/head/jobs.dm

/obj/item/clothing/head/utility/chefhat/i_am_assuming_direct_controlAdmin variant of the chef hat where every mouse pilot input will always be transferred to the wearer
/obj/item/clothing/head/fedora/inspector_hatDetectives Fedora, but like Inspector Gadget. Not a subtype to not inherit candy corn stuff
\ No newline at end of file diff --git a/code/modules/clothing/masks/animal_masks.html b/code/modules/clothing/masks/animal_masks.html new file mode 100644 index 0000000000000..028cd76dd68b2 --- /dev/null +++ b/code/modules/clothing/masks/animal_masks.html @@ -0,0 +1 @@ +code/modules/clothing/masks/animal_masks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/masks/animal_masks.dm

/obj/item/clothing/mask/animal/frogfrog mask - reeee!!
\ No newline at end of file diff --git a/code/modules/clothing/masks/gas_filter.html b/code/modules/clothing/masks/gas_filter.html new file mode 100644 index 0000000000000..3104ae806f40a --- /dev/null +++ b/code/modules/clothing/masks/gas_filter.html @@ -0,0 +1 @@ +code/modules/clothing/masks/gas_filter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/clothing/masks/gas_filter.dm

HIGH_FILTERING_RATIOFiltering ratio for high amounts of gas
LOW_FILTERING_RATIOFiltering ratio for min amount of gas
HIGH_FILTERING_MOLESMin amount of high filtering gases for high filtering ratio
MID_FILTERING_MOLESMin amount of mid filtering gases for high filtering ratio
LOW_FILTERING_MOLESMin amount of low filtering gases for high filtering ratio
FILTERS_CONSTANT_WEARMin amount of wear that the filter gets when used

Define Details

FILTERS_CONSTANT_WEAR

Min amount of wear that the filter gets when used

HIGH_FILTERING_MOLES

Min amount of high filtering gases for high filtering ratio

HIGH_FILTERING_RATIO

Filtering ratio for high amounts of gas

LOW_FILTERING_MOLES

Min amount of low filtering gases for high filtering ratio

LOW_FILTERING_RATIO

Filtering ratio for min amount of gas

MID_FILTERING_MOLES

Min amount of mid filtering gases for high filtering ratio

\ No newline at end of file diff --git a/code/modules/clothing/masks/gasmask.html b/code/modules/clothing/masks/gasmask.html new file mode 100644 index 0000000000000..9255f1eefaedd --- /dev/null +++ b/code/modules/clothing/masks/gasmask.html @@ -0,0 +1,3 @@ +code/modules/clothing/masks/gasmask.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/masks/gasmask.dm

/obj/item/clothing/mask/gas/hunterNO NEW ICON +Clothing that do not require a new icon to function correctly, think, big jackets.
/obj/item/clothing/mask/gas/driscollNONE(Squash) +Clothing that does not have a digitigrade version, and thus will squash legs to fit.
\ No newline at end of file diff --git a/code/modules/clothing/neck/collar_bomb.html b/code/modules/clothing/neck/collar_bomb.html new file mode 100644 index 0000000000000..e165717e4f5fe --- /dev/null +++ b/code/modules/clothing/neck/collar_bomb.html @@ -0,0 +1 @@ +code/modules/clothing/neck/collar_bomb.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/neck/collar_bomb.dm

/obj/item/clothing/neck/collar_bombSpecial neckwear that kills its wearer if triggered, by either its specific remote or assemblies.
/obj/item/collar_bomb_buttonThe button that detonates the collar.
\ No newline at end of file diff --git a/code/modules/clothing/outfits/ert.html b/code/modules/clothing/outfits/ert.html new file mode 100644 index 0000000000000..60ac2159054e6 --- /dev/null +++ b/code/modules/clothing/outfits/ert.html @@ -0,0 +1 @@ +code/modules/clothing/outfits/ert.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/outfits/ert.dm

/datum/mod_theme/medical/corpsmanIdentical to medical MODsuit, but uses the alternate skin by default.
\ No newline at end of file diff --git a/code/modules/clothing/shoes/cowboy.html b/code/modules/clothing/shoes/cowboy.html new file mode 100644 index 0000000000000..37dd6f2bbd867 --- /dev/null +++ b/code/modules/clothing/shoes/cowboy.html @@ -0,0 +1 @@ +code/modules/clothing/shoes/cowboy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/shoes/cowboy.dm

/obj/item/clothing/shoes/cowboy/black/syndicateShoes for the nuke-ops cowboy fit
\ No newline at end of file diff --git a/code/modules/clothing/spacesuits/_spacesuits.html b/code/modules/clothing/spacesuits/_spacesuits.html new file mode 100644 index 0000000000000..3ea6cf501b4a2 --- /dev/null +++ b/code/modules/clothing/spacesuits/_spacesuits.html @@ -0,0 +1 @@ +code/modules/clothing/spacesuits/_spacesuits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/clothing/spacesuits/_spacesuits.dm

THERMAL_REGULATOR_COSTCharge per tick consumed by the thermal regulator

Define Details

THERMAL_REGULATOR_COST

Charge per tick consumed by the thermal regulator

\ No newline at end of file diff --git a/code/modules/clothing/suits/bio.html b/code/modules/clothing/suits/bio.html new file mode 100644 index 0000000000000..86cee60e7b9da --- /dev/null +++ b/code/modules/clothing/suits/bio.html @@ -0,0 +1,2 @@ +code/modules/clothing/suits/bio.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/suits/bio.dm

/obj/item/clothing/suit/bio_suit/plaguedoctorsuitNONE(Squash) +Clothing that does not have a digitigrade version, and thus will squash legs to fit.
\ No newline at end of file diff --git a/code/modules/clothing/suits/reactive_armour_dimensional_themes.html b/code/modules/clothing/suits/reactive_armour_dimensional_themes.html new file mode 100644 index 0000000000000..ed849c91eec94 --- /dev/null +++ b/code/modules/clothing/suits/reactive_armour_dimensional_themes.html @@ -0,0 +1,2 @@ +code/modules/clothing/suits/reactive_armour_dimensional_themes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/suits/reactive_armour_dimensional_themes.dm

/datum/armour_dimensional_themeDatum describing a 'theme' which transforms a 3x3 area's turfs when applied. +It also creates a number of themed barriers in that area.
/datum/armour_dimensional_theme/safeThemes which will largely be probably useful for the user
/datum/armour_dimensional_theme/dangerousDangerous themes can potentially impede the user as much as people pursuing them
\ No newline at end of file diff --git a/code/modules/clothing/suits/toggles.html b/code/modules/clothing/suits/toggles.html new file mode 100644 index 0000000000000..4b6629587317c --- /dev/null +++ b/code/modules/clothing/suits/toggles.html @@ -0,0 +1,2 @@ +code/modules/clothing/suits/toggles.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/suits/toggles.dm

/obj/item/clothing/suit/hoodedSubtype with support for hoods +You no longer actually need to extend this and can just add the component yourself without a lot of this boilerplate code
\ No newline at end of file diff --git a/code/modules/clothing/suits/wiz_robe.html b/code/modules/clothing/suits/wiz_robe.html new file mode 100644 index 0000000000000..3e70051582d46 --- /dev/null +++ b/code/modules/clothing/suits/wiz_robe.html @@ -0,0 +1,2 @@ +code/modules/clothing/suits/wiz_robe.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/suits/wiz_robe.dm

/obj/item/clothing/suit/wizrobe/magusblueSUBTYPE WITH NEW ICON +Clothing that has a digitigrade version, but its parent was set to something else earlier in this file or elsewhere entirely.
\ No newline at end of file diff --git a/code/modules/clothing/under/accessories/_accessories.html b/code/modules/clothing/under/accessories/_accessories.html new file mode 100644 index 0000000000000..308a3b825d150 --- /dev/null +++ b/code/modules/clothing/under/accessories/_accessories.html @@ -0,0 +1 @@ +code/modules/clothing/under/accessories/_accessories.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/under/accessories/_accessories.dm

/obj/item/clothing/accessoryClothing accessories.
\ No newline at end of file diff --git a/code/modules/clothing/under/accessories/badges.html b/code/modules/clothing/under/accessories/badges.html new file mode 100644 index 0000000000000..b6740314b195f --- /dev/null +++ b/code/modules/clothing/under/accessories/badges.html @@ -0,0 +1 @@ +code/modules/clothing/under/accessories/badges.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/under/accessories/badges.dm

/obj/item/clothing/accessory/debt_payer_pinAwarded for being dutiful and extinguishing the debt from the "Indebted" quirk.
/obj/item/clothing/accessory/anti_sec_pinSelf-identify as a dangerous subversive
\ No newline at end of file diff --git a/code/modules/clothing/under/color.html b/code/modules/clothing/under/color.html new file mode 100644 index 0000000000000..1595fe8a94e7e --- /dev/null +++ b/code/modules/clothing/under/color.html @@ -0,0 +1 @@ +code/modules/clothing/under/color.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/under/color.dm

/obj/item/clothing/under/colorGAGS below here
/proc/get_random_jumpsuitReturns a random, acceptable jumpsuit typepath
/proc/get_random_jumpskirtReturns a random, acceptable jumpskirt typepath
\ No newline at end of file diff --git a/code/modules/clothing/under/costume.html b/code/modules/clothing/under/costume.html new file mode 100644 index 0000000000000..17e8bb813fe9f --- /dev/null +++ b/code/modules/clothing/under/costume.html @@ -0,0 +1,2 @@ +code/modules/clothing/under/costume.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/under/costume.dm

/obj/item/clothing/under/costume/gladiator/ash_walkerNO NEW ICON +Clothing that do not require a new icon to function correctly, think, big jackets.
\ No newline at end of file diff --git a/code/modules/clothing/under/jobs/station_trait.html b/code/modules/clothing/under/jobs/station_trait.html new file mode 100644 index 0000000000000..fd498329b2237 --- /dev/null +++ b/code/modules/clothing/under/jobs/station_trait.html @@ -0,0 +1 @@ +code/modules/clothing/under/jobs/station_trait.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/under/jobs/station_trait.dm

/obj/item/clothing/under/rank/station_traitOutfits limited to station trait jobs
\ No newline at end of file diff --git a/code/modules/clothing/under/miscellaneous.html b/code/modules/clothing/under/miscellaneous.html new file mode 100644 index 0000000000000..06b0771f4eebe --- /dev/null +++ b/code/modules/clothing/under/miscellaneous.html @@ -0,0 +1,2 @@ +code/modules/clothing/under/miscellaneous.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/clothing/under/miscellaneous.dm

/obj/item/clothing/under/misc/bouncerSUBTYPE WITH NEW ICON +Clothing that has a digitigrade version, but its parent was set to something else earlier in this file.
\ No newline at end of file diff --git a/code/modules/deathmatch/deathmatch_loadouts.html b/code/modules/deathmatch/deathmatch_loadouts.html new file mode 100644 index 0000000000000..21d699c9543e2 --- /dev/null +++ b/code/modules/deathmatch/deathmatch_loadouts.html @@ -0,0 +1 @@ +code/modules/deathmatch/deathmatch_loadouts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/deathmatch/deathmatch_loadouts.dm

/datum/outfit/deathmatch_loadout/battlerbattlers
/datum/outfit/deathmatch_loadout/wizardwizards
\ No newline at end of file diff --git a/code/modules/deathmatch/deathmatch_modifier.html b/code/modules/deathmatch/deathmatch_modifier.html new file mode 100644 index 0000000000000..9b6bce9e5b26e --- /dev/null +++ b/code/modules/deathmatch/deathmatch_modifier.html @@ -0,0 +1 @@ +code/modules/deathmatch/deathmatch_modifier.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/deathmatch/deathmatch_modifier.dm

/datum/deathmatch_modifierDeathmatch modifiers are little options the host can choose to spice the match a bit.
\ No newline at end of file diff --git a/code/modules/discord/discord_embed.html b/code/modules/discord/discord_embed.html new file mode 100644 index 0000000000000..cccf3b5e7e6a4 --- /dev/null +++ b/code/modules/discord/discord_embed.html @@ -0,0 +1,3 @@ +code/modules/discord/discord_embed.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/discord/discord_embed.dm

/datum/discord_embedDocumentation for the embed object and all of its variables can be found at +https://discord.com/developers/docs/resources/channel#embed-object +It is recommended to read the documentation on the discord website, as the information below could become outdated in the future.
\ No newline at end of file diff --git a/code/modules/discord/discord_link_record.html b/code/modules/discord/discord_link_record.html new file mode 100644 index 0000000000000..227fff2afbab1 --- /dev/null +++ b/code/modules/discord/discord_link_record.html @@ -0,0 +1 @@ +code/modules/discord/discord_link_record.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/discord/discord_link_record.dm

/datum/discord_link_recordRepresents a record from the discord link table in a nicer format
\ No newline at end of file diff --git a/code/modules/escape_menu.html b/code/modules/escape_menu.html new file mode 100644 index 0000000000000..a3e07c0bf012d --- /dev/null +++ b/code/modules/escape_menu.html @@ -0,0 +1,2 @@ +code/modules/escape_menu/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/escape_menu/readme.md

Skyrat Edit: +leave_body.dm - removed suicide menu option

\ No newline at end of file diff --git a/code/modules/escape_menu/details.html b/code/modules/escape_menu/details.html new file mode 100644 index 0000000000000..f12b71c742e7c --- /dev/null +++ b/code/modules/escape_menu/details.html @@ -0,0 +1 @@ +code/modules/escape_menu/details.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/escape_menu/details.dm

/proc/give_escape_menu_detailsProvides a singleton for the escape menu details screen.
\ No newline at end of file diff --git a/code/modules/escape_menu/subsystem.html b/code/modules/escape_menu/subsystem.html new file mode 100644 index 0000000000000..6c740f48722df --- /dev/null +++ b/code/modules/escape_menu/subsystem.html @@ -0,0 +1 @@ +code/modules/escape_menu/subsystem.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/escape_menu/subsystem.dm

/var/SSescape_menuSubsystem for controlling anything related to the escape menu
\ No newline at end of file diff --git a/code/modules/escape_menu/title.html b/code/modules/escape_menu/title.html new file mode 100644 index 0000000000000..b9c0be54a26ae --- /dev/null +++ b/code/modules/escape_menu/title.html @@ -0,0 +1 @@ +code/modules/escape_menu/title.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/escape_menu/title.dm

/proc/give_escape_menu_titleProvides a singleton for the escape menu details screen.
\ No newline at end of file diff --git a/code/modules/events/_event.html b/code/modules/events/_event.html new file mode 100644 index 0000000000000..c43d9483a9ada --- /dev/null +++ b/code/modules/events/_event.html @@ -0,0 +1 @@ +code/modules/events/_event.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/events/_event.dm

/datum/round_event_controlICES - Intensity Credit Events System
\ No newline at end of file diff --git a/code/modules/events/_event_admin_setup.html b/code/modules/events/_event_admin_setup.html new file mode 100644 index 0000000000000..7da9cfd995b10 --- /dev/null +++ b/code/modules/events/_event_admin_setup.html @@ -0,0 +1,4 @@ +code/modules/events/_event_admin_setup.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/events/_event_admin_setup.dm

/datum/event_admin_setupDatum that holds a proc for additional options when running an event. +Prototypes are declared here, non-prototypes on the event files.
/datum/event_admin_setup/listed_optionsA very common pattern is picking from a tgui list input, so this does that. +Supply a list in get_list and prompt admins will have the admin pick from it or cancel.
/datum/event_admin_setup/text_inputFor admin setups that want a custom string. Suggests what the event would have picked normally.
/datum/event_admin_setup/warn_adminSome events are not always a good idea when a game state is in a certain situation. +This runs a check and warns the admin.
/datum/event_admin_setup/minimum_candidate_requirementFor events that mandate a set number of candidates to function
/datum/event_admin_setup/questionFor events that require a true/false question
\ No newline at end of file diff --git a/code/modules/events/disease_outbreak.html b/code/modules/events/disease_outbreak.html new file mode 100644 index 0000000000000..9ba2cc10b44bd --- /dev/null +++ b/code/modules/events/disease_outbreak.html @@ -0,0 +1 @@ +code/modules/events/disease_outbreak.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/events/disease_outbreak.dm

ADV_MIN_SYMPTOMSAdvanced virus lower limit for symptoms
ADV_MAX_SYMPTOMSAdvanced virus upper limit for symptoms
ADV_ANNOUNCE_DELAYHow long the virus stays hidden before announcement
ADV_DISEASE_MEDIUMNumerical define for medium severity advanced virus
ADV_DISEASE_HARMFULNumerical define for harmful severity advanced virus
ADV_DISEASE_DANGEROUSNumerical define for dangerous severity advanced virus
ADV_RNG_LOWPercentile for low severity advanced virus
ADV_RNG_MIDPercentile for mid severity advanced virus
ADV_SPREAD_THRESHOLDPercentile for high vs. low transmissibility
ADV_SPREAD_FORCED_LOWAdmin custom low spread
ADV_SPREAD_FORCED_MIDAdmin custom med spread
ADV_SPREAD_FORCED_HIGHAdmin custom high spread
/datum/event_admin_setup/minimum_candidate_requirement/disease_outbreakHandles checking and alerting admins about the number of valid candidates
/datum/event_admin_setup/listed_options/disease_outbreakHandles actually selecting whicch disease will spawn.
/datum/event_admin_setup/listed_options/disease_outbreak_advanced/severityAdmin virus customization

Define Details

ADV_ANNOUNCE_DELAY

How long the virus stays hidden before announcement

ADV_DISEASE_DANGEROUS

Numerical define for dangerous severity advanced virus

ADV_DISEASE_HARMFUL

Numerical define for harmful severity advanced virus

ADV_DISEASE_MEDIUM

Numerical define for medium severity advanced virus

ADV_MAX_SYMPTOMS

Advanced virus upper limit for symptoms

ADV_MIN_SYMPTOMS

Advanced virus lower limit for symptoms

ADV_RNG_LOW

Percentile for low severity advanced virus

ADV_RNG_MID

Percentile for mid severity advanced virus

ADV_SPREAD_FORCED_HIGH

Admin custom high spread

ADV_SPREAD_FORCED_LOW

Admin custom low spread

ADV_SPREAD_FORCED_MID

Admin custom med spread

ADV_SPREAD_THRESHOLD

Percentile for high vs. low transmissibility

\ No newline at end of file diff --git a/code/modules/events/earthquake.html b/code/modules/events/earthquake.html new file mode 100644 index 0000000000000..4d30acd17b061 --- /dev/null +++ b/code/modules/events/earthquake.html @@ -0,0 +1,4 @@ +code/modules/events/earthquake.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/events/earthquake.dm

/datum/round_event_control/earthquakeEarthquake random event. +Draws a curve of turfs between a high and low point. These turfs will shake and eventually "collapse", forming a cut in the station that drops to the z-level below. +Much of the actual structural damage is done through the explosions subsystem. Objects, machines, and especially people +that aren't moved out of the epicenter area (indicated by the wobbly tiles) will not just be thrown down a z-level, but also be destroyed/maimed in the process.
\ No newline at end of file diff --git a/code/modules/events/holiday/xmas.html b/code/modules/events/holiday/xmas.html new file mode 100644 index 0000000000000..15f9771905a59 --- /dev/null +++ b/code/modules/events/holiday/xmas.html @@ -0,0 +1,2 @@ +code/modules/events/holiday/xmas.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/events/holiday/xmas.dm

/obj/item/clothing/head/costume/festiveNONE(Squash) +Clothing that does not have a digitigrade version, and thus will squash legs to fit.
\ No newline at end of file diff --git a/code/modules/events/immovable_rod/immovable_rod.html b/code/modules/events/immovable_rod/immovable_rod.html new file mode 100644 index 0000000000000..9f1cc182758f2 --- /dev/null +++ b/code/modules/events/immovable_rod/immovable_rod.html @@ -0,0 +1 @@ +code/modules/events/immovable_rod/immovable_rod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/events/immovable_rod/immovable_rod.dm

/obj/effect/immovablerod"What the fuck was that?!"
\ No newline at end of file diff --git a/code/modules/events/immovable_rod/immovable_rod_event.html b/code/modules/events/immovable_rod/immovable_rod_event.html new file mode 100644 index 0000000000000..efdcd17d51a91 --- /dev/null +++ b/code/modules/events/immovable_rod/immovable_rod_event.html @@ -0,0 +1,2 @@ +code/modules/events/immovable_rod/immovable_rod_event.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/events/immovable_rod/immovable_rod_event.dm

/datum/round_event_control/immovable_rodImmovable rod random event. +The rod will spawn at some location outside the station, and travel in a straight line to the opposite side of the station
/datum/event_admin_setup/set_location/immovable_rodAdmins can pick a spot the rod will aim for
/datum/event_admin_setup/question/immovable_rodAdmins can also force it to loop around forever, or at least until the RD gets their hands on it.
\ No newline at end of file diff --git a/code/modules/events/market_crash.html b/code/modules/events/market_crash.html new file mode 100644 index 0000000000000..037516f627823 --- /dev/null +++ b/code/modules/events/market_crash.html @@ -0,0 +1 @@ +code/modules/events/market_crash.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/events/market_crash.dm

/datum/round_event_control/market_crashAn event which decreases the station target temporarily, causing the inflation var to increase heavily.
\ No newline at end of file diff --git a/code/modules/events/sandstorm.html b/code/modules/events/sandstorm.html new file mode 100644 index 0000000000000..e0e42586cddb1 --- /dev/null +++ b/code/modules/events/sandstorm.html @@ -0,0 +1,4 @@ +code/modules/events/sandstorm.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/events/sandstorm.dm

/datum/round_event_control/sandstormSandstorm Event: Throws dust/sand at one side of the station. High-intensity and relatively short, +however the incoming direction is given along with time to prepare. Damages can be reduced or +mitigated with a few people actively working to fix things as the storm hits, but leaving the event to run on its own can lead to widespread breaches.
/datum/round_event_control/sandstorm_classicThe original sandstorm event. An admin-only disasterfest that sands down all sides of the station +Uses space dust, meaning walls/rwalls are quickly chewed up very quickly.
\ No newline at end of file diff --git a/code/modules/events/shuttle_loan/shuttle_loan_datum.html b/code/modules/events/shuttle_loan/shuttle_loan_datum.html new file mode 100644 index 0000000000000..5e100cf83c6f7 --- /dev/null +++ b/code/modules/events/shuttle_loan/shuttle_loan_datum.html @@ -0,0 +1,2 @@ +code/modules/events/shuttle_loan/shuttle_loan_datum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/events/shuttle_loan/shuttle_loan_datum.dm

/datum/shuttle_loan_situationOne of the potential shuttle loans you might receive.
/datum/shuttle_loan_situation/mail_strikeA special shuttle loan situation enabled by the 'mail blocked' station trait. +It sends back a lot of mail to the station, at the cost of wrecking the cargo shuttle a little.
\ No newline at end of file diff --git a/code/modules/events/space_vines/vine_controller.html b/code/modules/events/space_vines/vine_controller.html new file mode 100644 index 0000000000000..f6b597efc9f05 --- /dev/null +++ b/code/modules/events/space_vines/vine_controller.html @@ -0,0 +1,2 @@ +code/modules/events/space_vines/vine_controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/events/space_vines/vine_controller.dm

/proc/isvineimmuneUsed to determine whether the mob is immune to actions by the vine. +Use cases: Stops vine from attacking itself, other plants.
\ No newline at end of file diff --git a/code/modules/events/stray_cargo.html b/code/modules/events/stray_cargo.html new file mode 100644 index 0000000000000..e2dae8545959c --- /dev/null +++ b/code/modules/events/stray_cargo.html @@ -0,0 +1 @@ +code/modules/events/stray_cargo.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/events/stray_cargo.dm

/datum/round_event_control/stray_cargoSpawns a cargo pod containing a random cargo supply pack on a random area of the station
/datum/round_event/stray_cargoSpawns a cargo pod containing a random cargo supply pack on a random area of the station
/datum/round_event_control/stray_cargo/syndicateA rare variant that drops a crate containing syndicate uplink items
\ No newline at end of file diff --git a/code/modules/events/supermatter_surge.html b/code/modules/events/supermatter_surge.html new file mode 100644 index 0000000000000..9bc0da759ca6f --- /dev/null +++ b/code/modules/events/supermatter_surge.html @@ -0,0 +1 @@ +code/modules/events/supermatter_surge.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/events/supermatter_surge.dm

SURGE_BULLET_ENERGY_ADDITIONThe amount of bullet energy we add for the duration of the SM surge
SURGE_BASE_POWERLOSS_INHIBITIONThe amount of powerloss inhibition (energy retention) we add for the duration of the SM surge
SURGE_POWERLOSS_INHIBITION_MODIFIERThe powerloss inhibition scaling based on surge severity
SURGE_POWER_GENERATION_MODIFIERThe power generation scaling based on surge severity
SURGE_HEAT_MODIFIERThe heat modifier scaling based on surge severity
/datum/round_event_control/supermatter_surgeSupermatter Surge

Define Details

SURGE_BASE_POWERLOSS_INHIBITION

The amount of powerloss inhibition (energy retention) we add for the duration of the SM surge

SURGE_BULLET_ENERGY_ADDITION

The amount of bullet energy we add for the duration of the SM surge

SURGE_HEAT_MODIFIER

The heat modifier scaling based on surge severity

SURGE_POWERLOSS_INHIBITION_MODIFIER

The powerloss inhibition scaling based on surge severity

SURGE_POWER_GENERATION_MODIFIER

The power generation scaling based on surge severity

\ No newline at end of file diff --git a/code/modules/events/wizard/curseditems.html b/code/modules/events/wizard/curseditems.html new file mode 100644 index 0000000000000..1eaf839a45d54 --- /dev/null +++ b/code/modules/events/wizard/curseditems.html @@ -0,0 +1 @@ +code/modules/events/wizard/curseditems.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/events/wizard/curseditems.dm

WIZARD_MIMICRYTurns them into a psuedo-wizard costume.
CURSED_SWORDSGives them a cursed sword.
BIG_FAT_DOOBIEGives them a blunt that they need to smoke
BOXINGGives them boxing gloves and a luchador mask
VOICE_MODULATORSGives them a chameleon mask
CATGIRLS_2015Gives them kitty ears and also modifies their gender to FEMALE

Define Details

BIG_FAT_DOOBIE

Gives them a blunt that they need to smoke

BOXING

Gives them boxing gloves and a luchador mask

CATGIRLS_2015

Gives them kitty ears and also modifies their gender to FEMALE

CURSED_SWORDS

Gives them a cursed sword.

VOICE_MODULATORS

Gives them a chameleon mask

WIZARD_MIMICRY

Turns them into a psuedo-wizard costume.

\ No newline at end of file diff --git a/code/modules/events/wizard/departmentrevolt.html b/code/modules/events/wizard/departmentrevolt.html new file mode 100644 index 0000000000000..e4ac7fae9820d --- /dev/null +++ b/code/modules/events/wizard/departmentrevolt.html @@ -0,0 +1 @@ +code/modules/events/wizard/departmentrevolt.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/events/wizard/departmentrevolt.dm

/datum/event_admin_setup/listed_options/departmental_revoltwhich department is revolting?
/datum/event_admin_setup/question/departmental_revolt_annouceAnnounce the separatist nation to the round?
/datum/event_admin_setup/question/departmental_revolt_dangerousIs it going to try fighting other nations?
\ No newline at end of file diff --git a/code/modules/events/wizard/embeddies.html b/code/modules/events/wizard/embeddies.html new file mode 100644 index 0000000000000..55331e0a1711f --- /dev/null +++ b/code/modules/events/wizard/embeddies.html @@ -0,0 +1 @@ +code/modules/events/wizard/embeddies.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/events/wizard/embeddies.dm

/datum/global_funny_embedding
/datum/global_funny_embedding/pointyeverything will be... POINTY!!!!
/datum/global_funny_embedding/stickyeverything will be... sticky? sure, why not
\ No newline at end of file diff --git a/code/modules/events/wizard/rpgloot.html b/code/modules/events/wizard/rpgloot.html new file mode 100644 index 0000000000000..606272683f42d --- /dev/null +++ b/code/modules/events/wizard/rpgloot.html @@ -0,0 +1 @@ +code/modules/events/wizard/rpgloot.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/events/wizard/rpgloot.dm

/datum/rpgloot_controller
\ No newline at end of file diff --git a/code/modules/experisci/destructive_scanner.html b/code/modules/experisci/destructive_scanner.html new file mode 100644 index 0000000000000..2b2a14abaf5c3 --- /dev/null +++ b/code/modules/experisci/destructive_scanner.html @@ -0,0 +1 @@ +code/modules/experisci/destructive_scanner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/experisci/destructive_scanner.dm

/obj/machinery/destructive_scannerPlaced machine that handles destructive experiments (but can also do the normal ones)
\ No newline at end of file diff --git a/code/modules/experisci/experiment/experiments.html b/code/modules/experisci/experiment/experiments.html new file mode 100644 index 0000000000000..361ad31154d04 --- /dev/null +++ b/code/modules/experisci/experiment/experiments.html @@ -0,0 +1 @@ +code/modules/experisci/experiment/experiments.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/experisci/experiment/experiments.dm

/datum/experiment/scanning/people/mutantScan a person with any mutation
/datum/experiment/scanning/people/novel_organsScan for organs you didn't start the round with
/datum/experiment/scanning/people/augmented_organsScan for cybernetic organs
/datum/experiment/scanning/people/skillchipScan for skillchips
/datum/experiment/scanning/people/androidScan an android
\ No newline at end of file diff --git a/code/modules/experisci/experiment/handlers/experiment_handler.html b/code/modules/experisci/experiment/handlers/experiment_handler.html new file mode 100644 index 0000000000000..44ffed483c62d --- /dev/null +++ b/code/modules/experisci/experiment/handlers/experiment_handler.html @@ -0,0 +1,3 @@ +code/modules/experisci/experiment/handlers/experiment_handler.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/experisci/experiment/handlers/experiment_handler.dm

/datum/component/experiment_handlerThis is the component for interacting with experiments from a connected techweb. It is generic +and should be set-up to automatically work on any class it is attached to without outside code +(Excluding potential callbacks)
\ No newline at end of file diff --git a/code/modules/experisci/experiment/types/experiment.html b/code/modules/experisci/experiment/types/experiment.html new file mode 100644 index 0000000000000..020a64128a476 --- /dev/null +++ b/code/modules/experisci/experiment/types/experiment.html @@ -0,0 +1 @@ +code/modules/experisci/experiment/types/experiment.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/experisci/experiment/types/experiment.dm

/datum/experimentThis is the base datum for experiments, storing the base definition.
\ No newline at end of file diff --git a/code/modules/experisci/experiment/types/ordnance.html b/code/modules/experisci/experiment/types/ordnance.html new file mode 100644 index 0000000000000..58a2618fe542a --- /dev/null +++ b/code/modules/experisci/experiment/types/ordnance.html @@ -0,0 +1,3 @@ +code/modules/experisci/experiment/types/ordnance.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/experisci/experiment/types/ordnance.dm

/datum/experiment/ordnanceA ordnance experiment datum. What gives the science in the first place. +One is instantiated by the techweb, another one is also kept on SSresearch for the briefing. +A disk should contain several of these in a list. Only one should get picked for the final paper.
\ No newline at end of file diff --git a/code/modules/experisci/experiment/types/scanning.html b/code/modules/experisci/experiment/types/scanning.html new file mode 100644 index 0000000000000..c6103e59689b7 --- /dev/null +++ b/code/modules/experisci/experiment/types/scanning.html @@ -0,0 +1 @@ +code/modules/experisci/experiment/types/scanning.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/experisci/experiment/types/scanning.dm

/datum/experiment/scanningThis is the base implementation of scanning experiments.
\ No newline at end of file diff --git a/code/modules/experisci/experiment/types/scanning_fish.html b/code/modules/experisci/experiment/types/scanning_fish.html new file mode 100644 index 0000000000000..d2ed665bf3061 --- /dev/null +++ b/code/modules/experisci/experiment/types/scanning_fish.html @@ -0,0 +1,3 @@ +code/modules/experisci/experiment/types/scanning_fish.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/experisci/experiment/types/scanning_fish.dm

/datum/experiment/scanning/fishA special scanning experiment that unlocks further settings for the fishing portal generator. +Mainly as an inventive solution to many a fish source being limited to maps that have it, +and to make the fishing portal generator a bit than just gubby and goldfish.
\ No newline at end of file diff --git a/code/modules/experisci/experiment/types/scanning_machinery.html b/code/modules/experisci/experiment/types/scanning_machinery.html new file mode 100644 index 0000000000000..d46ae651a1f38 --- /dev/null +++ b/code/modules/experisci/experiment/types/scanning_machinery.html @@ -0,0 +1,3 @@ +code/modules/experisci/experiment/types/scanning_machinery.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/experisci/experiment/types/scanning_machinery.dm

/datum/experiment/scanning/points/machinery_tiered_scanThis experiment type will turn up TRUE if at least one of the stock parts in the scanned machine is of the required_tier. +Pretend to upgrade security's techfab but in reality apply only one better matter bin! +Note that a stock part in a machine can either be an object, or a datum.
\ No newline at end of file diff --git a/code/modules/experisci/experiment/types/scanning_people.html b/code/modules/experisci/experiment/types/scanning_people.html new file mode 100644 index 0000000000000..bbe5d8c77eeed --- /dev/null +++ b/code/modules/experisci/experiment/types/scanning_people.html @@ -0,0 +1 @@ +code/modules/experisci/experiment/types/scanning_people.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/experisci/experiment/types/scanning_people.dm

/datum/experiment/scanning/peopleAn experiment where you scan your fellow humans
\ No newline at end of file diff --git a/code/modules/experisci/experiment/types/scanning_reagent.html b/code/modules/experisci/experiment/types/scanning_reagent.html new file mode 100644 index 0000000000000..9900a900d909c --- /dev/null +++ b/code/modules/experisci/experiment/types/scanning_reagent.html @@ -0,0 +1 @@ +code/modules/experisci/experiment/types/scanning_reagent.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/experisci/experiment/types/scanning_reagent.dm

/datum/experiment/scanning/reagentAn experiment where you scan a container with a specified reagent of certain purity
\ No newline at end of file diff --git a/code/modules/experisci/handheld_scanner.html b/code/modules/experisci/handheld_scanner.html new file mode 100644 index 0000000000000..4d80a335176f5 --- /dev/null +++ b/code/modules/experisci/handheld_scanner.html @@ -0,0 +1 @@ +code/modules/experisci/handheld_scanner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/experisci/handheld_scanner.dm

/obj/item/experi_scannerHandheld scanning unit to perform scanning experiments
\ No newline at end of file diff --git a/code/modules/explorer_drone/adventure.html b/code/modules/explorer_drone/adventure.html new file mode 100644 index 0000000000000..3d2fde5ab616a --- /dev/null +++ b/code/modules/explorer_drone/adventure.html @@ -0,0 +1 @@ +code/modules/explorer_drone/adventure.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/explorer_drone/adventure.dm

/proc/load_adventuresLoads all adventures from DB
/datum/adventuretext adventure instance, holds data about nodes/choices/etc and of current play state.
\ No newline at end of file diff --git a/code/modules/explorer_drone/exodrone.html b/code/modules/explorer_drone/exodrone.html new file mode 100644 index 0000000000000..8f0e95f4baded --- /dev/null +++ b/code/modules/explorer_drone/exodrone.html @@ -0,0 +1 @@ +code/modules/explorer_drone/exodrone.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/explorer_drone/exodrone.dm

EXODRONE_LOG_SIZEHow many lines of log we keep
EXODRONE_CARGO_SLOTSSize of drone storage shared between loot and tools.
/obj/item/exodroneExploration drone
/obj/machinery/exodrone_launcherExploration drone launcher

Define Details

EXODRONE_CARGO_SLOTS

Size of drone storage shared between loot and tools.

EXODRONE_LOG_SIZE

How many lines of log we keep

\ No newline at end of file diff --git a/code/modules/explorer_drone/exploration_events/_exploration_event.html b/code/modules/explorer_drone/exploration_events/_exploration_event.html new file mode 100644 index 0000000000000..7fa14c4848c4d --- /dev/null +++ b/code/modules/explorer_drone/exploration_events/_exploration_event.html @@ -0,0 +1 @@ +code/modules/explorer_drone/exploration_events/_exploration_event.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/explorer_drone/exploration_events/_exploration_event.dm

/datum/exploration_eventExploration event
/datum/exploration_event/simpleSimple events, not a full fledged adventure, consist only of single encounter screen
\ No newline at end of file diff --git a/code/modules/explorer_drone/exploration_events/adventure.html b/code/modules/explorer_drone/exploration_events/adventure.html new file mode 100644 index 0000000000000..076e78ec0d425 --- /dev/null +++ b/code/modules/explorer_drone/exploration_events/adventure.html @@ -0,0 +1 @@ +code/modules/explorer_drone/exploration_events/adventure.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/explorer_drone/exploration_events/adventure.dm

/datum/exploration_event/adventureAdventure wrapper event
\ No newline at end of file diff --git a/code/modules/explorer_drone/exploration_events/danger.html b/code/modules/explorer_drone/exploration_events/danger.html new file mode 100644 index 0000000000000..017cc2e2c49e6 --- /dev/null +++ b/code/modules/explorer_drone/exploration_events/danger.html @@ -0,0 +1 @@ +code/modules/explorer_drone/exploration_events/danger.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/explorer_drone/exploration_events/danger.dm

/datum/exploration_event/simple/dangerDanger event - unskippable, if you have appriopriate tool you can mitigate damage.
/datum/exploration_event/simple/danger/carpDanger events
/datum/exploration_event/simple/danger/carp/surface_varietyThey get everywhere
\ No newline at end of file diff --git a/code/modules/explorer_drone/exploration_events/fluff.html b/code/modules/explorer_drone/exploration_events/fluff.html new file mode 100644 index 0000000000000..7557ac2868ca1 --- /dev/null +++ b/code/modules/explorer_drone/exploration_events/fluff.html @@ -0,0 +1 @@ +code/modules/explorer_drone/exploration_events/fluff.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/explorer_drone/exploration_events/fluff.dm

/datum/exploration_event/fluffJust a message in the log nothing more
\ No newline at end of file diff --git a/code/modules/explorer_drone/exploration_events/resource.html b/code/modules/explorer_drone/exploration_events/resource.html new file mode 100644 index 0000000000000..9a6faea7a4305 --- /dev/null +++ b/code/modules/explorer_drone/exploration_events/resource.html @@ -0,0 +1 @@ +code/modules/explorer_drone/exploration_events/resource.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/explorer_drone/exploration_events/resource.dm

/datum/exploration_event/simple/resourceSimple event type that checks if you have a tool and after a retrieval delay adds loot to drone.
/datum/exploration_event/simple/resource/concealed_cacheResource Events
\ No newline at end of file diff --git a/code/modules/explorer_drone/exploration_events/trader.html b/code/modules/explorer_drone/exploration_events/trader.html new file mode 100644 index 0000000000000..131c7f548b123 --- /dev/null +++ b/code/modules/explorer_drone/exploration_events/trader.html @@ -0,0 +1 @@ +code/modules/explorer_drone/exploration_events/trader.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/explorer_drone/exploration_events/trader.dm

/datum/exploration_event/simple/traderTrader events - If drone is loaded with X exchanges it for Y, might require translator tool.
/datum/exploration_event/simple/trader/vendor_aiTrade events
\ No newline at end of file diff --git a/code/modules/explorer_drone/exploration_site.html b/code/modules/explorer_drone/exploration_site.html new file mode 100644 index 0000000000000..1a3d5ed34f9ae --- /dev/null +++ b/code/modules/explorer_drone/exploration_site.html @@ -0,0 +1 @@ +code/modules/explorer_drone/exploration_site.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/explorer_drone/exploration_site.dm

/datum/exploration_siteExploration site, drone travel destination representing interesting zone for exploration.
/proc/build_exploration_site_ui_dataHelper proc for exploration site listings in ui.
/datum/exploration_site/abandoned_refueling_stationSites
\ No newline at end of file diff --git a/code/modules/explorer_drone/loot.html b/code/modules/explorer_drone/loot.html new file mode 100644 index 0000000000000..f66311ecd76b8 --- /dev/null +++ b/code/modules/explorer_drone/loot.html @@ -0,0 +1 @@ +code/modules/explorer_drone/loot.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/explorer_drone/loot.dm

/proc/generate_generator_indexCreates generator__id => type map.
/datum/adventure_loot_generatorAdventure loot category identified by ID
/datum/adventure_loot_generator/maintenanceUses manintenance loot generators
/datum/adventure_loot_generator/cargoUnlocks special cargo crates
/datum/adventure_loot_generator/simpleJust picks and instatiates the path from the list
/datum/adventure_loot_generator/simple/uniqueUnique exploration-only rewards - this is contextless
/datum/adventure_loot_generator/simple/cashValuables
/datum/adventure_loot_generator/simple/drugsDrugs
/datum/adventure_loot_generator/simple/materialsRare minerals/materials
/datum/adventure_loot_generator/simple/weaponsAssorted weaponry
/datum/adventure_loot_generator/simple/syndicate_fishRare fish! Of the syndicate variety
/datum/adventure_loot_generator/petPets and pet accesories in carriers
/obj/item/trade_chipSupply pack unlocker chip
/obj/item/firelanceTwo handed fire lance. Melts wall after short windup.
\ No newline at end of file diff --git a/code/modules/explorer_drone/manager.html b/code/modules/explorer_drone/manager.html new file mode 100644 index 0000000000000..0544278f1f68b --- /dev/null +++ b/code/modules/explorer_drone/manager.html @@ -0,0 +1 @@ +code/modules/explorer_drone/manager.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/explorer_drone/manager.dm

/datum/adventure_browserAdmin adventure manager
\ No newline at end of file diff --git a/code/modules/explorer_drone/scanner_array.html b/code/modules/explorer_drone/scanner_array.html new file mode 100644 index 0000000000000..d6259ef11681a --- /dev/null +++ b/code/modules/explorer_drone/scanner_array.html @@ -0,0 +1 @@ +code/modules/explorer_drone/scanner_array.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/explorer_drone/scanner_array.dm

/datum/exoscanRepresents scan in progress, only one globally for now, todo later split per z or allow partial dish swarm usage
/datum/scanner_controllerHelper datum to calculate and store scanning power and track in progress scans
/datum/scan_conditionScan condition, these require some specific setup for the dish to count for the scan power for the given site
\ No newline at end of file diff --git a/code/modules/fishing/aquarium/aquarium.html b/code/modules/fishing/aquarium/aquarium.html new file mode 100644 index 0000000000000..21532f14f2eaa --- /dev/null +++ b/code/modules/fishing/aquarium/aquarium.html @@ -0,0 +1 @@ +code/modules/fishing/aquarium/aquarium.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/fishing/aquarium/aquarium.dm

AQUARIUM_MIN_OFFSETAquarium content layer offsets
AQUARIUM_GLASS_LAYERThe layer of the glass overlay
AQUARIUM_BORDERS_LAYERThe layer of the aquarium pane borders
AQUARIUM_BELOW_GLASS_LAYERLayer for stuff rendered below the glass overlay

Define Details

AQUARIUM_BELOW_GLASS_LAYER

Layer for stuff rendered below the glass overlay

AQUARIUM_BORDERS_LAYER

The layer of the aquarium pane borders

AQUARIUM_GLASS_LAYER

The layer of the glass overlay

AQUARIUM_MIN_OFFSET

Aquarium content layer offsets

\ No newline at end of file diff --git a/code/modules/fishing/aquarium/aquarium_kit.html b/code/modules/fishing/aquarium/aquarium_kit.html new file mode 100644 index 0000000000000..73cba9d2d93cb --- /dev/null +++ b/code/modules/fishing/aquarium/aquarium_kit.html @@ -0,0 +1,3 @@ +code/modules/fishing/aquarium/aquarium_kit.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/fishing/aquarium/aquarium_kit.dm

/obj/item/fish_feedFish feed can
/obj/item/storage/fish_caseStasis fish case container for moving fish between aquariums safely. +Their w_class scales with that of the fish inside it. +Most subtypes of this also start with a fish already inside.
/obj/item/storage/fish_case/blackmarketSubtype bought from the blackmarket at a gratuitously cheap price. The catch? The fish inside it is dead.
\ No newline at end of file diff --git a/code/modules/fishing/aquarium/aquarium_upgrades.html b/code/modules/fishing/aquarium/aquarium_upgrades.html new file mode 100644 index 0000000000000..eab9c0dc77782 --- /dev/null +++ b/code/modules/fishing/aquarium/aquarium_upgrades.html @@ -0,0 +1 @@ +code/modules/fishing/aquarium/aquarium_upgrades.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/fishing/aquarium/aquarium_upgrades.dm

/obj/item/aquarium_upgradeAquarium upgrades, can be applied to a basic aquarium to upgrade it into an advanced subtype.
\ No newline at end of file diff --git a/code/modules/fishing/aquarium/fish_analyzer.html b/code/modules/fishing/aquarium/fish_analyzer.html new file mode 100644 index 0000000000000..a3d62316333d8 --- /dev/null +++ b/code/modules/fishing/aquarium/fish_analyzer.html @@ -0,0 +1 @@ +code/modules/fishing/aquarium/fish_analyzer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/fishing/aquarium/fish_analyzer.dm

/obj/item/fish_analyzerAn item that can be used to gather information on the fish, such as but not limited to: health, hunger and traits.
\ No newline at end of file diff --git a/code/modules/fishing/fish/_fish.html b/code/modules/fishing/fish/_fish.html new file mode 100644 index 0000000000000..aeb0a9904769e --- /dev/null +++ b/code/modules/fishing/fish/_fish.html @@ -0,0 +1,7 @@ +code/modules/fishing/fish/_fish.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/fishing/fish/_fish.dm

FISH_GROWTH_MULTBase multiplier of the difference between current size and weight and their maximum value +Used to calculate how much fish grow each time they're fed, alongside with the current hunger, +and the current size and weight, meaning bigger fish naturally tend to grow way more slowly +Growth peaks at 45% hunger but very rapidly wanes past that.
/proc/random_fish_typeReturns random fish, using random_case_rarity probabilities.

Define Details

FISH_GROWTH_MULT

Base multiplier of the difference between current size and weight and their maximum value +Used to calculate how much fish grow each time they're fed, alongside with the current hunger, +and the current size and weight, meaning bigger fish naturally tend to grow way more slowly +Growth peaks at 45% hunger but very rapidly wanes past that.

\ No newline at end of file diff --git a/code/modules/fishing/fish/chasm_detritus.html b/code/modules/fishing/fish/chasm_detritus.html new file mode 100644 index 0000000000000..43fd52bd778e1 --- /dev/null +++ b/code/modules/fishing/fish/chasm_detritus.html @@ -0,0 +1,2 @@ +code/modules/fishing/fish/chasm_detritus.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/fishing/fish/chasm_detritus.dm

NORMAL_CONTENTSRegular default contents.
BODIES_ONLYBodies-only default contents.
NO_CORPSESNo corpses (so there's still lobstrosities because they're the main threat with this).
/datum/chasm_detritusA datum that retrieves something which fell into a chasm.
/datum/chasm_detritus/restrictedVariant of the chasm detritus that allows for an easier time at fishing out +bodies, and sometimes less desireable monsters too.

Define Details

BODIES_ONLY

Bodies-only default contents.

NORMAL_CONTENTS

Regular default contents.

NO_CORPSES

No corpses (so there's still lobstrosities because they're the main threat with this).

\ No newline at end of file diff --git a/code/modules/fishing/fish/fish_evolution.html b/code/modules/fishing/fish/fish_evolution.html new file mode 100644 index 0000000000000..0026c6cf007ee --- /dev/null +++ b/code/modules/fishing/fish/fish_evolution.html @@ -0,0 +1 @@ +code/modules/fishing/fish/fish_evolution.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/fishing/fish/fish_evolution.dm

/datum/fish_evolutionFish evolution datums
\ No newline at end of file diff --git a/code/modules/fishing/fish/fish_traits.html b/code/modules/fishing/fish/fish_traits.html new file mode 100644 index 0000000000000..a42b0cd7d4b19 --- /dev/null +++ b/code/modules/fishing/fish/fish_traits.html @@ -0,0 +1,4 @@ +code/modules/fishing/fish/fish_traits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/fishing/fish/fish_traits.dm

/datum/fish_trait/no_matingUseful for those species with the parthenogenesis trait if you don't want them to mate with each other, +or for similar shenanigans, I don't know. +Otherwise you could just set the stable_population to 1.
/datum/fish_trait/recessivePrevent offsprings of fish with this trait from being of the same type (unless self-mating or the partner also has the trait)
/datum/fish_trait/anxietyAnxiety means the fish will die if in a location with more than 3 fish (including itself) +This is just barely enough to crossbreed out of anxiety, but it severely limits the potential of
\ No newline at end of file diff --git a/code/modules/fishing/fish/types/mining.html b/code/modules/fishing/fish/types/mining.html new file mode 100644 index 0000000000000..c2ca175b7327c --- /dev/null +++ b/code/modules/fishing/fish/types/mining.html @@ -0,0 +1 @@ +code/modules/fishing/fish/types/mining.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/fishing/fish/types/mining.dm

/obj/item/fish/chasm_crabCommonly found on the mining fishing spots. Can be grown into lobstrosities
\ No newline at end of file diff --git a/code/modules/fishing/fish/types/ruins.html b/code/modules/fishing/fish/types/ruins.html new file mode 100644 index 0000000000000..53a48008298d1 --- /dev/null +++ b/code/modules/fishing/fish/types/ruins.html @@ -0,0 +1 @@ +code/modules/fishing/fish/types/ruins.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/fishing/fish/types/ruins.dm

/obj/item/fish/mastodonFrom oil puddles from the elephant graveyard. Also an evolution of the "unmarine bonemass"
/obj/item/fish/soulFrom the cursed spring
/obj/item/fish/skin_crabFrom the cursed spring
\ No newline at end of file diff --git a/code/modules/fishing/fish/types/syndicate.html b/code/modules/fishing/fish/types/syndicate.html new file mode 100644 index 0000000000000..220fa1b11e23c --- /dev/null +++ b/code/modules/fishing/fish/types/syndicate.html @@ -0,0 +1 @@ +code/modules/fishing/fish/types/syndicate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/fishing/fish/types/syndicate.dm

/obj/item/fish/emulsijackContains fish that can be found in the syndicate fishing portal setting as well as the ominous fish case.
\ No newline at end of file diff --git a/code/modules/fishing/fish_catalog.html b/code/modules/fishing/fish_catalog.html new file mode 100644 index 0000000000000..8253801b33dd0 --- /dev/null +++ b/code/modules/fishing/fish_catalog.html @@ -0,0 +1 @@ +code/modules/fishing/fish_catalog.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/fishing/fish_catalog.dm

/obj/item/book/manual/fish_catalogBook detailing where to get the fish and their properties.
\ No newline at end of file diff --git a/code/modules/fishing/fish_movement.html b/code/modules/fishing/fish_movement.html new file mode 100644 index 0000000000000..11a5c6d8668e8 --- /dev/null +++ b/code/modules/fishing/fish_movement.html @@ -0,0 +1 @@ +code/modules/fishing/fish_movement.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/fishing/fish_movement.dm

FISH_TARGET_MIN_DISTANCEAny lower than this, and the target position of the fish is considered null
FISH_FRICTION_MULTThe friction applied to fish jumps, so that it decelerates over time
FISH_SHORT_JUMP_MIN_DISTANCEUsed to decide whether the fish can jump in a certain direction
FISH_SHORT_JUMP_MAX_DISTANCEThe maximum distance for a short jump
/datum/fish_movementFish movements are simple datums, generated by the fishing minigame, that represent how the fish moves suring the minigame.
/datum/fish_movement/slowGeneric fish movement datum that only performs slow, uninterrupted long jumps
/datum/fish_movement/zippyGeneric fish movement datum with triple the short jump chance.
/datum/fish_movement/accelerandofish movement datum that progressively gets faster until acceleration and velocity are double the starting ones.
/datum/fish_movement/choppyFish movement datum that updates the fish position twice per second.
/datum/fish_movement/plungerFish movement datum that weakly pushes the fish up and then down with greater force once it reaches the top of the minigame.

Define Details

FISH_FRICTION_MULT

The friction applied to fish jumps, so that it decelerates over time

FISH_SHORT_JUMP_MAX_DISTANCE

The maximum distance for a short jump

FISH_SHORT_JUMP_MIN_DISTANCE

Used to decide whether the fish can jump in a certain direction

FISH_TARGET_MIN_DISTANCE

Any lower than this, and the target position of the fish is considered null

\ No newline at end of file diff --git a/code/modules/fishing/fishing_equipment.html b/code/modules/fishing/fishing_equipment.html new file mode 100644 index 0000000000000..3c733a101ff3c --- /dev/null +++ b/code/modules/fishing/fishing_equipment.html @@ -0,0 +1,5 @@ +code/modules/fishing/fishing_equipment.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/fishing/fishing_equipment.dm

MAGNET_HOOK_BONUS_MULTIPLIERMultipilier to the fishing weights of anything that's not a fish nor a dud +for the magnet hook.
RESCUE_HOOK_FISH_MULTIPLIERMultiplier for the fishing weights of fish for the rescue hook.
/obj/item/fishing_line/auto_reelA special line reel that let you skip the biting phase of the minigame, netting you a completion bonus, +and thrown hooked items at you, so you can rapidly catch them from afar. +It may also work on mobs if the right hook is attached.
/obj/item/paper/paperslip/fishing_tipUsed to give the average player info about fishing stuff that's unknown to many.
/obj/item/storage/box/fish_revival_kitFrom the fishing mystery box. It's basically a lazarus and a few bottles of strange reagents.

Define Details

MAGNET_HOOK_BONUS_MULTIPLIER

Multipilier to the fishing weights of anything that's not a fish nor a dud +for the magnet hook.

RESCUE_HOOK_FISH_MULTIPLIER

Multiplier for the fishing weights of fish for the rescue hook.

\ No newline at end of file diff --git a/code/modules/fishing/fishing_minigame.html b/code/modules/fishing/fishing_minigame.html new file mode 100644 index 0000000000000..3e45d9f9101a0 --- /dev/null +++ b/code/modules/fishing/fishing_minigame.html @@ -0,0 +1 @@ +code/modules/fishing/fishing_minigame.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/fishing/fishing_minigame.dm

BAIT_MIN_VELOCITY_BOUNCEThe minimum velocity required for the bait to bounce
BAIT_DECELERATION_MULTThe extra deceleration of velocity that happens when the bait switches direction
MAX_FISH_COMPLETION_MALUSReduce initial completion rate depending on difficulty
BITING_TIME_WINDOWThe window of time between biting phase and back to baiting phase
BAIT_HEIGHT_DIFFICULTY_MALUSThe multiplier of how much the difficulty negatively impacts the bait height
REELING_STATE_IDLEDefines to know how the bait is moving on the minigame slider.
MINIGAME_SLIDER_HEIGHTThe pixel height of the minigame bar
MINIGAME_BAIT_HEIGHTThe standard pixel height of the bait
MINIGAME_FISH_HEIGHTThe standard pixel height of the fish (minus a pixel on each direction for the sake of a better looking sprite)
EXPERIENCE_MALUS_MULTThe multiplier of the fishing experience malus if the user's level is substantially above the difficulty.
FISH_DAMAGE_PER_SECONDThe damage dealt per second to the fish when FISHING_MINIGAME_RULE_KILL is active.
/atom/movable/screen/fishing_hudThe screen object which bait, fish, and completion bar are visually attached to.
/obj/effect/fishing_floatThe visual that appears over the fishing spot

Define Details

BAIT_DECELERATION_MULT

The extra deceleration of velocity that happens when the bait switches direction

BAIT_HEIGHT_DIFFICULTY_MALUS

The multiplier of how much the difficulty negatively impacts the bait height

BAIT_MIN_VELOCITY_BOUNCE

The minimum velocity required for the bait to bounce

BITING_TIME_WINDOW

The window of time between biting phase and back to baiting phase

EXPERIENCE_MALUS_MULT

The multiplier of the fishing experience malus if the user's level is substantially above the difficulty.

FISH_DAMAGE_PER_SECOND

The damage dealt per second to the fish when FISHING_MINIGAME_RULE_KILL is active.

MAX_FISH_COMPLETION_MALUS

Reduce initial completion rate depending on difficulty

MINIGAME_BAIT_HEIGHT

The standard pixel height of the bait

MINIGAME_FISH_HEIGHT

The standard pixel height of the fish (minus a pixel on each direction for the sake of a better looking sprite)

MINIGAME_SLIDER_HEIGHT

The pixel height of the minigame bar

REELING_STATE_IDLE

Defines to know how the bait is moving on the minigame slider.

\ No newline at end of file diff --git a/code/modules/fishing/fishing_rod.html b/code/modules/fishing/fishing_rod.html new file mode 100644 index 0000000000000..552ca11e44f7e --- /dev/null +++ b/code/modules/fishing/fishing_rod.html @@ -0,0 +1 @@ +code/modules/fishing/fishing_rod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/fishing/fishing_rod.dm

/obj/item/fishing_rod/unslottedFound in the fishing toolbox (the hook and line are separate items)
\ No newline at end of file diff --git a/code/modules/fishing/sources/_fish_source.html b/code/modules/fishing/sources/_fish_source.html new file mode 100644 index 0000000000000..f75abdd71ba67 --- /dev/null +++ b/code/modules/fishing/sources/_fish_source.html @@ -0,0 +1,2 @@ +code/modules/fishing/sources/_fish_source.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/fishing/sources/_fish_source.dm

/datum/fish_sourceWhere the fish actually come from - every fishing spot has one assigned but multiple fishing holes +can share single source, ie single shared one for ocean/lavaland river
\ No newline at end of file diff --git a/code/modules/fishing/sources/source_types.html b/code/modules/fishing/sources/source_types.html new file mode 100644 index 0000000000000..c2d9774cd9335 --- /dev/null +++ b/code/modules/fishing/sources/source_types.html @@ -0,0 +1,2 @@ +code/modules/fishing/sources/source_types.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/fishing/sources/source_types.dm

/datum/fish_source/portal/syndicateUnlocked by emagging the fishing portal generator with an emag.
/datum/fish_source/portal/randomA special portal fish source which fish table is populated on init with the contents of all +portal fish sources, except for FISHING_DUD, and a couple more caveats.
\ No newline at end of file diff --git a/code/modules/flufftext/Dreaming.html b/code/modules/flufftext/Dreaming.html new file mode 100644 index 0000000000000..646ff15ec272f --- /dev/null +++ b/code/modules/flufftext/Dreaming.html @@ -0,0 +1,2 @@ +code/modules/flufftext/Dreaming.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/flufftext/Dreaming.dm

/datum/dreamContains all the behavior needed to play a kind of dream. +All dream types get randomly selected from based on weight when an appropriate mobs dreams.
/datum/dream/randomThe classic random dream of various words that might form a cohesive narrative, but usually wont
/datum/dream/hear_somethingDream plays a random sound at you, chosen from all sounds in the folder
\ No newline at end of file diff --git a/code/modules/food_and_drinks/machinery/deep_fryer.html b/code/modules/food_and_drinks/machinery/deep_fryer.html new file mode 100644 index 0000000000000..6567a8e9dca1e --- /dev/null +++ b/code/modules/food_and_drinks/machinery/deep_fryer.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/machinery/deep_fryer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/food_and_drinks/machinery/deep_fryer.dm

DEEPFRYER_COOKTIMEThe deep fryer pings after this long, letting people know it's "perfect"
DEEPFRYER_BURNTIMEThe deep fryer pings after this long, reminding people that there's a very burnt object inside

Define Details

DEEPFRYER_BURNTIME

The deep fryer pings after this long, reminding people that there's a very burnt object inside

DEEPFRYER_COOKTIME

The deep fryer pings after this long, letting people know it's "perfect"

\ No newline at end of file diff --git a/code/modules/food_and_drinks/machinery/grill.html b/code/modules/food_and_drinks/machinery/grill.html new file mode 100644 index 0000000000000..de21b282af21f --- /dev/null +++ b/code/modules/food_and_drinks/machinery/grill.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/machinery/grill.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/food_and_drinks/machinery/grill.dm

GRILL_FUELUSAGE_IDLEThe fuel amount wasted as heat
GRILL_FUELUSAGE_ACTIVEThe fuel amount used to actually grill the item

Define Details

GRILL_FUELUSAGE_ACTIVE

The fuel amount used to actually grill the item

GRILL_FUELUSAGE_IDLE

The fuel amount wasted as heat

\ No newline at end of file diff --git a/code/modules/food_and_drinks/machinery/icecream_vat.html b/code/modules/food_and_drinks/machinery/icecream_vat.html new file mode 100644 index 0000000000000..be5ee51c523af --- /dev/null +++ b/code/modules/food_and_drinks/machinery/icecream_vat.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/machinery/icecream_vat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/food_and_drinks/machinery/icecream_vat.dm

CONE_REAGENT_NEEDEDHow many units of a reagent is needed to make a cone.
VAT_MODE_ICECREAMThe vat is set to dispense ice cream.
VAT_MODE_CONESThe vat is set to dispense cones.

Define Details

CONE_REAGENT_NEEDED

How many units of a reagent is needed to make a cone.

VAT_MODE_CONES

The vat is set to dispense cones.

VAT_MODE_ICECREAM

The vat is set to dispense ice cream.

\ No newline at end of file diff --git a/code/modules/food_and_drinks/machinery/microwave.html b/code/modules/food_and_drinks/machinery/microwave.html new file mode 100644 index 0000000000000..023eeba832ddd --- /dev/null +++ b/code/modules/food_and_drinks/machinery/microwave.html @@ -0,0 +1,2 @@ +code/modules/food_and_drinks/machinery/microwave.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/food_and_drinks/machinery/microwave.dm

MICROWAVE_NORMALValues based on microwave success
NOT_BROKENValues for how broken the microwave is
MAX_MICROWAVE_DIRTINESSThe max amount of dirtiness a microwave can be
TIER_1_CELL_CHARGE_RATEFor the wireless version, and display fluff
/obj/machinery/microwave/hellType of microwave that automatically turns it self on erratically. Probably don't use this outside of the holodeck program "Microwave Paradise". +You could also live your life with a microwave that will continously run in the background of everything while also not having any power draw. I think the former makes more sense.

Define Details

MAX_MICROWAVE_DIRTINESS

The max amount of dirtiness a microwave can be

MICROWAVE_NORMAL

Values based on microwave success

NOT_BROKEN

Values for how broken the microwave is

TIER_1_CELL_CHARGE_RATE

For the wireless version, and display fluff

\ No newline at end of file diff --git a/code/modules/food_and_drinks/machinery/smartfridge.html b/code/modules/food_and_drinks/machinery/smartfridge.html new file mode 100644 index 0000000000000..2534a18a96915 --- /dev/null +++ b/code/modules/food_and_drinks/machinery/smartfridge.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/machinery/smartfridge.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/machinery/smartfridge.dm

/obj/machinery/smartfridge/drying/rackWooden version
\ No newline at end of file diff --git a/code/modules/food_and_drinks/machinery/stove_component.html b/code/modules/food_and_drinks/machinery/stove_component.html new file mode 100644 index 0000000000000..a0313e2953f39 --- /dev/null +++ b/code/modules/food_and_drinks/machinery/stove_component.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/machinery/stove_component.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/machinery/stove_component.dm

/datum/component/stoveMakes the attached object a stove
\ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/drinks/drinks_alcoholic.html b/code/modules/food_and_drinks/recipes/drinks/drinks_alcoholic.html new file mode 100644 index 0000000000000..f1ff3930e7953 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/drinks/drinks_alcoholic.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/recipes/drinks/drinks_alcoholic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/recipes/drinks/drinks_alcoholic.dm

/datum/chemical_reaction/drinkDrink recipe base
\ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/food_mixtures.html b/code/modules/food_and_drinks/recipes/food_mixtures.html new file mode 100644 index 0000000000000..df389499a336e --- /dev/null +++ b/code/modules/food_and_drinks/recipes/food_mixtures.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/recipes/food_mixtures.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/recipes/food_mixtures.dm

/datum/chemical_reaction/foodFOOD MIXTURES
\ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/soup_mixtures.html b/code/modules/food_and_drinks/recipes/soup_mixtures.html new file mode 100644 index 0000000000000..c9d3820acbadc --- /dev/null +++ b/code/modules/food_and_drinks/recipes/soup_mixtures.html @@ -0,0 +1,8 @@ +code/modules/food_and_drinks/recipes/soup_mixtures.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/recipes/soup_mixtures.dm

/datum/reagent/consumable/nutriment/soupAbstract parent for soup reagents. +These are the majority result from soup recipes, +but bear in mind it will(should) have other reagents along side it.
/datum/chemical_reaction/food/soup
/obj/item/reagent_containers/cup/bowl/soupThis subtype is only for easy mapping / spawning in specific types of soup. +Do not use it anywhere else.
/datum/glass_style/has_foodtype/soup/watery_soupThis style runs dual purpose - +Primarily it's just a bowl style for water, +but secondarily it lets chefs know if their soup had too much water in it
/datum/chemical_reaction/food/soup/customSo this one's kind of a "failed" result, but also a "custom" result +Getting to this temperature and having no other soup reaction made means you're either messing something up +or you simply aren't following a recipe. So it'll just combine
\ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.html new file mode 100644 index 0000000000000..62202911a3ca1 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm

/datum/crafting_recipe/food/meatbreadBREAD
/datum/crafting_recipe/food/slimetoastTOAST
\ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.html new file mode 100644 index 0000000000000..b090aede56622 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm

/datum/crafting_recipe/food/humanburgerBURGERS
\ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.html new file mode 100644 index 0000000000000..3ada6ee4e8b58 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm

/datum/crafting_recipe/food/carrotcakeCAKE
\ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.html new file mode 100644 index 0000000000000..aa5894565bd5b --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm

/datum/crafting_recipe/bottledAbstract types for all drink recipes that use bottles and result in another bottle, so that the message_in_a_bottle item is properly transferred.
/datum/crafting_recipe/lizardwineBooze & Bottles
/datum/crafting_recipe/bottled/holybottleNon-alcoholic recipes
\ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.html new file mode 100644 index 0000000000000..d2d0246b0875e --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm

/datum/crafting_recipe/food/sausageeggEGG RECIPE's
\ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.html new file mode 100644 index 0000000000000..9cee6c5770563 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm

/datum/crafting_recipe/food/flavorless_scSNOW CONES
/datum/crafting_recipe/food/orange_popsiclePOPSICLES
\ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.html new file mode 100644 index 0000000000000..7931ad0c95d24 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm

/datum/crafting_recipe/food/humankebabKEBABS
/datum/crafting_recipe/food/spidereggshamMR SPIDER
/datum/crafting_recipe/food/tempehstarterMISC RECIPE's
\ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.html new file mode 100644 index 0000000000000..c4f2ce2cfface --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm

/datum/crafting_recipe/food/donutDONUTS
/datum/crafting_recipe/food/donut/jelly/berryJELLY DONUTS
/datum/crafting_recipe/food/donut/slimejelly/berrySLIME DONUTS
/datum/crafting_recipe/food/wafflesWAFFLES
/datum/crafting_recipe/food/donkpocketDONKPOCCKETS
/datum/crafting_recipe/food/muffinMUFFINS
/datum/crafting_recipe/food/khachapuriOTHER
\ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.html new file mode 100644 index 0000000000000..1cb7d9a53bfdd --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm

/datum/crafting_recipe/food/bananacreampiePIES
\ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.html new file mode 100644 index 0000000000000..30646cb1a6a36 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm

/datum/crafting_recipe/food/margheritapizzaPIZZA!!!
\ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.html new file mode 100644 index 0000000000000..8e8372b40303f --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm

/datum/crafting_recipe/food/herbsaladSALADS
\ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.html new file mode 100644 index 0000000000000..66fada58e148b --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm

/datum/crafting_recipe/food/sandwichSANDWICHES
\ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.html new file mode 100644 index 0000000000000..3abb81c1bafb2 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm

/datum/crafting_recipe/food/tomatopastaSPAGHETTI
\ No newline at end of file diff --git a/code/modules/food_and_drinks/restaurant/_venue.html b/code/modules/food_and_drinks/restaurant/_venue.html new file mode 100644 index 0000000000000..e0bd96b61cb38 --- /dev/null +++ b/code/modules/food_and_drinks/restaurant/_venue.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/restaurant/_venue.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/restaurant/_venue.dm

/datum/venueRepresents the abstract concept of a food venue in the code.
\ No newline at end of file diff --git a/code/modules/food_and_drinks/restaurant/custom_order.html b/code/modules/food_and_drinks/restaurant/custom_order.html new file mode 100644 index 0000000000000..d15b5be532a34 --- /dev/null +++ b/code/modules/food_and_drinks/restaurant/custom_order.html @@ -0,0 +1,3 @@ +code/modules/food_and_drinks/restaurant/custom_order.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/restaurant/custom_order.dm

/datum/custom_ordercustom order datums +Used for less generic orders (ice cream for example) +without snowflaking venue and customer code too much.
\ No newline at end of file diff --git a/code/modules/food_and_drinks/restaurant/customers/_customer.html b/code/modules/food_and_drinks/restaurant/customers/_customer.html new file mode 100644 index 0000000000000..e6c0398295874 --- /dev/null +++ b/code/modules/food_and_drinks/restaurant/customers/_customer.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/restaurant/customers/_customer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/restaurant/customers/_customer.dm

/datum/customer_data/malfunctionMALFUNCTIONING - only shows up once per venue, very rare
\ No newline at end of file diff --git a/code/modules/food_and_drinks/restaurant/generic_venues.html b/code/modules/food_and_drinks/restaurant/generic_venues.html new file mode 100644 index 0000000000000..cd6881a1c2751 --- /dev/null +++ b/code/modules/food_and_drinks/restaurant/generic_venues.html @@ -0,0 +1 @@ +code/modules/food_and_drinks/restaurant/generic_venues.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/food_and_drinks/restaurant/generic_venues.dm

/datum/venue/restaurantRESTAURANT
/datum/venue/barBAR
\ No newline at end of file diff --git a/code/modules/forensics/_forensics.html b/code/modules/forensics/_forensics.html new file mode 100644 index 0000000000000..a9cc8d5e7fa03 --- /dev/null +++ b/code/modules/forensics/_forensics.html @@ -0,0 +1 @@ +code/modules/forensics/_forensics.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/forensics/_forensics.dm

/datum/forensicsForensics datum
\ No newline at end of file diff --git a/code/modules/hallucination/_hallucination.html b/code/modules/hallucination/_hallucination.html new file mode 100644 index 0000000000000..6721b07a2c4c2 --- /dev/null +++ b/code/modules/hallucination/_hallucination.html @@ -0,0 +1,3 @@ +code/modules/hallucination/_hallucination.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/_hallucination.dm

/datum/hallucinationHandles effects of a hallucination on a living mob. +Created and triggered via the [cause hallucination proc][/mob/living/proc/cause_hallucination].
/obj/effect/client_image_holderSimple effect that holds an image +to be shown to one or multiple clients only.
/obj/effect/client_image_holder/hallucinationA client-side image effect tied to the existence of a hallucination.
\ No newline at end of file diff --git a/code/modules/hallucination/battle.html b/code/modules/hallucination/battle.html new file mode 100644 index 0000000000000..259d207811cd9 --- /dev/null +++ b/code/modules/hallucination/battle.html @@ -0,0 +1 @@ +code/modules/hallucination/battle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/battle.dm

/datum/hallucination/battleBattle hallucination, makes it sound like a melee or gun battle is going on in the background.
/datum/hallucination/battle/gunSubtype of battle hallucination for gun based battles, where it sounds like someone is being shot.
/datum/hallucination/battle/gun/disablerGun battle hallucination that sounds like disabler fire.
/datum/hallucination/battle/gun/laserGun battle hallucination that sounds like laser fire.
/datum/hallucination/battle/stun_prodA hallucination of someone being hit with a stun prod, followed by cable cuffing.
/datum/hallucination/battle/harm_batonA hallucination of someone being stun batonned, and subsequently harmbatonned.
/datum/hallucination/battle/e_swordA hallucination of someone unsheathing an energy sword, going to town, and sheathing it again.
/datum/hallucination/battle/bombA hallucination of a syndicate bomb ticking down.
\ No newline at end of file diff --git a/code/modules/hallucination/body.html b/code/modules/hallucination/body.html new file mode 100644 index 0000000000000..c0b7a62d15cc5 --- /dev/null +++ b/code/modules/hallucination/body.html @@ -0,0 +1 @@ +code/modules/hallucination/body.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/body.dm

/datum/hallucination/bodyMakes a random body appear and disappear quickly in view of the hallucinator.
\ No newline at end of file diff --git a/code/modules/hallucination/bubblegum_attack.html b/code/modules/hallucination/bubblegum_attack.html new file mode 100644 index 0000000000000..098c55c2e15fa --- /dev/null +++ b/code/modules/hallucination/bubblegum_attack.html @@ -0,0 +1 @@ +code/modules/hallucination/bubblegum_attack.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/bubblegum_attack.dm

/datum/hallucination/oh_yeahSends a fake bubblegum charging through a nearby wall to our target.
/obj/effect/client_image_holder/hallucination/bubblegumFake bubblegum hallucination effect for the oh yeah hallucination
\ No newline at end of file diff --git a/code/modules/hallucination/delusions.html b/code/modules/hallucination/delusions.html new file mode 100644 index 0000000000000..13b093f4009ec --- /dev/null +++ b/code/modules/hallucination/delusions.html @@ -0,0 +1 @@ +code/modules/hallucination/delusions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/delusions.dm

/datum/hallucination/delusionA hallucination that makes us and (possibly) other people look like something else.
/datum/hallucination/delusion/customUsed for making custom delusions.
/datum/hallucination/delusion/preset/mareHallucination used by the nightmare vision goggles to turn everyone except you into mares
/datum/hallucination/delusion/preset/moonHallucination used by the path of moon heretic to turn everyone into a lunar mass
\ No newline at end of file diff --git a/code/modules/hallucination/fake_alert.html b/code/modules/hallucination/fake_alert.html new file mode 100644 index 0000000000000..dd2b66df33b3a --- /dev/null +++ b/code/modules/hallucination/fake_alert.html @@ -0,0 +1 @@ +code/modules/hallucination/fake_alert.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/fake_alert.dm

/datum/hallucination/fake_alertFake alert hallucination. Causes a fake alert to be thrown to the hallucinator.
\ No newline at end of file diff --git a/code/modules/hallucination/fake_chat.html b/code/modules/hallucination/fake_chat.html new file mode 100644 index 0000000000000..78f3f475f870e --- /dev/null +++ b/code/modules/hallucination/fake_chat.html @@ -0,0 +1 @@ +code/modules/hallucination/fake_chat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/fake_chat.dm

/datum/hallucination/chatSends a fake chat message to the hallucinator.
\ No newline at end of file diff --git a/code/modules/hallucination/fake_plasmaflood.html b/code/modules/hallucination/fake_plasmaflood.html new file mode 100644 index 0000000000000..f982f282a4339 --- /dev/null +++ b/code/modules/hallucination/fake_plasmaflood.html @@ -0,0 +1 @@ +code/modules/hallucination/fake_plasmaflood.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/fake_plasmaflood.dm

/datum/hallucination/fake_floodPlasma starts flooding from the nearby vent
\ No newline at end of file diff --git a/code/modules/hallucination/fake_sound.html b/code/modules/hallucination/fake_sound.html new file mode 100644 index 0000000000000..9dbf3731330a9 --- /dev/null +++ b/code/modules/hallucination/fake_sound.html @@ -0,0 +1 @@ +code/modules/hallucination/fake_sound.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/fake_sound.dm

/datum/hallucination/fake_soundHallucination that plays a fake sound somewhere nearby.
\ No newline at end of file diff --git a/code/modules/hallucination/hazard.html b/code/modules/hallucination/hazard.html new file mode 100644 index 0000000000000..0ced9acad5d4c --- /dev/null +++ b/code/modules/hallucination/hazard.html @@ -0,0 +1 @@ +code/modules/hallucination/hazard.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/hazard.dm

/datum/hallucination/hazardHallucinations that create a hazard somewhere nearby that actually has a danger associated.
/obj/effect/client_image_holder/hallucination/dangerThese hallucination effects cause side effects when the hallucinator walks into them.
\ No newline at end of file diff --git a/code/modules/hallucination/hud_screw.html b/code/modules/hallucination/hud_screw.html new file mode 100644 index 0000000000000..2b54bf2626df4 --- /dev/null +++ b/code/modules/hallucination/hud_screw.html @@ -0,0 +1 @@ +code/modules/hallucination/hud_screw.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/hud_screw.dm

/datum/hallucination/screwy_hudScrewyhud, makes the user's health bar hud wonky
\ No newline at end of file diff --git a/code/modules/hallucination/ice_cube.html b/code/modules/hallucination/ice_cube.html new file mode 100644 index 0000000000000..d7a143b5f9d4a --- /dev/null +++ b/code/modules/hallucination/ice_cube.html @@ -0,0 +1 @@ +code/modules/hallucination/ice_cube.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/ice_cube.dm

/datum/hallucination/iceCauses the hallucinator to believe themselves frozen in ice. Man am I glad he's frozen in there etc etc
\ No newline at end of file diff --git a/code/modules/hallucination/inhand_fake_item.html b/code/modules/hallucination/inhand_fake_item.html new file mode 100644 index 0000000000000..e1f78ff8f18d2 --- /dev/null +++ b/code/modules/hallucination/inhand_fake_item.html @@ -0,0 +1 @@ +code/modules/hallucination/inhand_fake_item.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/inhand_fake_item.dm

/datum/hallucination/fake_itemHallucinates a fake item in our hands, pockets, or belt or whatever.
\ No newline at end of file diff --git a/code/modules/hallucination/mother.html b/code/modules/hallucination/mother.html new file mode 100644 index 0000000000000..37b2612d440b1 --- /dev/null +++ b/code/modules/hallucination/mother.html @@ -0,0 +1 @@ +code/modules/hallucination/mother.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/mother.dm

/datum/hallucination/your_motherYour mother appears to scold you.
\ No newline at end of file diff --git a/code/modules/hallucination/nearby_fake_item.html b/code/modules/hallucination/nearby_fake_item.html new file mode 100644 index 0000000000000..4fe4fb9171c22 --- /dev/null +++ b/code/modules/hallucination/nearby_fake_item.html @@ -0,0 +1 @@ +code/modules/hallucination/nearby_fake_item.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/nearby_fake_item.dm

/datum/hallucination/nearby_fake_itemA hallucination that delivers the illusion that someone nearby has pulled out a weapon or item.
\ No newline at end of file diff --git a/code/modules/hallucination/screwy_health_doll.html b/code/modules/hallucination/screwy_health_doll.html new file mode 100644 index 0000000000000..96ae47aa4462e --- /dev/null +++ b/code/modules/hallucination/screwy_health_doll.html @@ -0,0 +1 @@ +code/modules/hallucination/screwy_health_doll.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/screwy_health_doll.dm

/datum/hallucination/fake_health_dollCauses the target to see incorrect health damages on the healthdoll
\ No newline at end of file diff --git a/code/modules/hallucination/shock.html b/code/modules/hallucination/shock.html new file mode 100644 index 0000000000000..b7c1c9b74a282 --- /dev/null +++ b/code/modules/hallucination/shock.html @@ -0,0 +1 @@ +code/modules/hallucination/shock.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/shock.dm

/datum/hallucination/shockCauses a fake "zap" to the hallucinator.
\ No newline at end of file diff --git a/code/modules/hallucination/stray_bullet.html b/code/modules/hallucination/stray_bullet.html new file mode 100644 index 0000000000000..9bc73e910df18 --- /dev/null +++ b/code/modules/hallucination/stray_bullet.html @@ -0,0 +1 @@ +code/modules/hallucination/stray_bullet.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/stray_bullet.dm

/datum/hallucination/stray_bulletShoots a random, fake projectile to the hallucinator
/obj/projectile/hallucinationHallucinated projectiles.
\ No newline at end of file diff --git a/code/modules/hallucination/xeno_attack.html b/code/modules/hallucination/xeno_attack.html new file mode 100644 index 0000000000000..8153ce7622ba4 --- /dev/null +++ b/code/modules/hallucination/xeno_attack.html @@ -0,0 +1 @@ +code/modules/hallucination/xeno_attack.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hallucination/xeno_attack.dm

/datum/hallucination/xeno_attackXeno crawls from nearby vent, jumps at you, and goes back in.
/obj/effect/client_image_holder/hallucination/xenoThe xeno hallucination that goes with the xeno attack hallucination.
\ No newline at end of file diff --git a/code/modules/holiday/holidays.html b/code/modules/holiday/holidays.html new file mode 100644 index 0000000000000..58a4431b7b6b4 --- /dev/null +++ b/code/modules/holiday/holidays.html @@ -0,0 +1,5 @@ +code/modules/holiday/holidays.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/holiday/holidays.dm

/datum/holiday/garbagedayGarbage DAYYYYY +Huh?.... NOOOO +GUNSHOT +AHHHGHHHHHHH
/proc/poll_holidayTakes a holiday datum, a starting month, ending month, max amount of days to test in, and min/max year as input +Returns a list in the form list("yyyy/m/d", ...) representing all days the holiday runs on in the tested range
/proc/print_holidayDoes the same as /proc/poll_holiday, but prints the output to admins instead of returning it
\ No newline at end of file diff --git a/code/modules/holiday/nth_week.html b/code/modules/holiday/nth_week.html new file mode 100644 index 0000000000000..6183246ddad1c --- /dev/null +++ b/code/modules/holiday/nth_week.html @@ -0,0 +1 @@ +code/modules/holiday/nth_week.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/holiday/nth_week.dm

/datum/holiday/nth_weekA holiday lasting one day only that falls on the nth weekday in a month i.e. 3rd Wednesday of February.
\ No newline at end of file diff --git a/code/modules/hydroponics/beekeeping/bee_smoker.html b/code/modules/hydroponics/beekeeping/bee_smoker.html new file mode 100644 index 0000000000000..b0e56bf1a53c4 --- /dev/null +++ b/code/modules/hydroponics/beekeeping/bee_smoker.html @@ -0,0 +1 @@ +code/modules/hydroponics/beekeeping/bee_smoker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/hydroponics/beekeeping/bee_smoker.dm

WEED_WINE_MULTIPLIERmultiplier to decide how much fuel we add to a smoker

Define Details

WEED_WINE_MULTIPLIER

multiplier to decide how much fuel we add to a smoker

\ No newline at end of file diff --git a/code/modules/hydroponics/biogenerator.html b/code/modules/hydroponics/biogenerator.html new file mode 100644 index 0000000000000..8a194baf9d180 --- /dev/null +++ b/code/modules/hydroponics/biogenerator.html @@ -0,0 +1 @@ +code/modules/hydroponics/biogenerator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/hydroponics/biogenerator.dm

MAX_ITEMS_PER_RATINGHow many more items does max_items get increased by per rating point.
PROCESSED_ITEMS_PER_RATINGHow many items are converted per cycle, per rating point of the manipulator used.

Define Details

MAX_ITEMS_PER_RATING

How many more items does max_items get increased by per rating point.

PROCESSED_ITEMS_PER_RATING

How many items are converted per cycle, per rating point of the manipulator used.

\ No newline at end of file diff --git a/code/modules/hydroponics/fermenting_barrel.html b/code/modules/hydroponics/fermenting_barrel.html new file mode 100644 index 0000000000000..6e4e639c9f3f8 --- /dev/null +++ b/code/modules/hydroponics/fermenting_barrel.html @@ -0,0 +1 @@ +code/modules/hydroponics/fermenting_barrel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hydroponics/fermenting_barrel.dm

/obj/structure/fermenting_barrel/gunpowderLil gunpowder barrel fer pirates since it's a nice reagent holder
/obj/structure/fermenting_barrel/thermiteMedieval pirates can have a barrel as a treat
\ No newline at end of file diff --git a/code/modules/hydroponics/grafts.html b/code/modules/hydroponics/grafts.html new file mode 100644 index 0000000000000..21a0dbbb1224e --- /dev/null +++ b/code/modules/hydroponics/grafts.html @@ -0,0 +1 @@ +code/modules/hydroponics/grafts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hydroponics/grafts.dm

/obj/item/graftA new subsystem for hydroponics, as a way to share specific traits into plants, as a way to phase out the DNA manipulator.
\ No newline at end of file diff --git a/code/modules/hydroponics/grown.html b/code/modules/hydroponics/grown.html new file mode 100644 index 0000000000000..6a23c71a8f50c --- /dev/null +++ b/code/modules/hydroponics/grown.html @@ -0,0 +1 @@ +code/modules/hydroponics/grown.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/hydroponics/grown.dm

BITE_SIZE_POTENCY_MULTIPLIERWhen calculating bite size, potency is multiplied by this number.
BITE_SIZE_VOLUME_MULTIPLIERWhen calculating bite size, max_volume is multiplied by this number.

Define Details

BITE_SIZE_POTENCY_MULTIPLIER

When calculating bite size, potency is multiplied by this number.

BITE_SIZE_VOLUME_MULTIPLIER

When calculating bite size, max_volume is multiplied by this number.

\ No newline at end of file diff --git a/code/modules/hydroponics/grown/flowers.html b/code/modules/hydroponics/grown/flowers.html new file mode 100644 index 0000000000000..34bbeacf13973 --- /dev/null +++ b/code/modules/hydroponics/grown/flowers.html @@ -0,0 +1 @@ +code/modules/hydroponics/grown/flowers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hydroponics/grown/flowers.dm

/obj/item/seeds/poppy/geranium/fraxinellaFraxinella seeds.
/obj/item/food/grown/poppy/geranium/fraxinellaFraxinella Flowers.
\ No newline at end of file diff --git a/code/modules/hydroponics/grown/hedges.html b/code/modules/hydroponics/grown/hedges.html new file mode 100644 index 0000000000000..2535455686930 --- /dev/null +++ b/code/modules/hydroponics/grown/hedges.html @@ -0,0 +1 @@ +code/modules/hydroponics/grown/hedges.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hydroponics/grown/hedges.dm

/obj/structure/hedgethe structure placed by the shrubs
/obj/structure/hedge/opaqueuseful for mazes and such
\ No newline at end of file diff --git a/code/modules/hydroponics/grown/melon.html b/code/modules/hydroponics/grown/melon.html new file mode 100644 index 0000000000000..930798afbafe1 --- /dev/null +++ b/code/modules/hydroponics/grown/melon.html @@ -0,0 +1 @@ +code/modules/hydroponics/grown/melon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hydroponics/grown/melon.dm

/obj/item/seeds/watermelon/barrelBarrel melon Seeds
/obj/item/food/grown/barrelmelonBarrel melon Fruit
\ No newline at end of file diff --git a/code/modules/hydroponics/grown/replicapod.html b/code/modules/hydroponics/grown/replicapod.html new file mode 100644 index 0000000000000..879fa82e8d8fe --- /dev/null +++ b/code/modules/hydroponics/grown/replicapod.html @@ -0,0 +1 @@ +code/modules/hydroponics/grown/replicapod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hydroponics/grown/replicapod.dm

/obj/item/seeds/replicapodThe actual replica pods themselves!
\ No newline at end of file diff --git a/code/modules/hydroponics/grown/sugarcane.html b/code/modules/hydroponics/grown/sugarcane.html new file mode 100644 index 0000000000000..6504a545665e0 --- /dev/null +++ b/code/modules/hydroponics/grown/sugarcane.html @@ -0,0 +1 @@ +code/modules/hydroponics/grown/sugarcane.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hydroponics/grown/sugarcane.dm

/obj/item/seeds/bambooand bamboo!
\ No newline at end of file diff --git a/code/modules/hydroponics/hydroponics.html b/code/modules/hydroponics/hydroponics.html new file mode 100644 index 0000000000000..20aa87116f986 --- /dev/null +++ b/code/modules/hydroponics/hydroponics.html @@ -0,0 +1 @@ +code/modules/hydroponics/hydroponics.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hydroponics/hydroponics.dm

/datum/component/plumbing/hydroponicsSpecial demand connector that consumes as normal, but redirects water into the magical water space.
/obj/item/circuit_component/hydroponicsThe usb port circuit
\ No newline at end of file diff --git a/code/modules/hydroponics/plant_genes.html b/code/modules/hydroponics/plant_genes.html new file mode 100644 index 0000000000000..6e47f875b85a6 --- /dev/null +++ b/code/modules/hydroponics/plant_genes.html @@ -0,0 +1,6 @@ +code/modules/hydroponics/plant_genes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hydroponics/plant_genes.dm

/datum/plant_genePlant gene datums - things that build and modify a plant or seed.
/datum/plant_gene/reagentReagent genes store a reagent ID and reagent ratio.
/datum/plant_gene/traitTraits that affect the grown product.
/datum/plant_gene/trait/squashAllows the plant to be squashed when thrown or slipped on, leaving a colored mess and trash type item behind.
/datum/plant_gene/trait/glow/whiteColored versions of bioluminescence. +White
/datum/plant_gene/trait/glow/redRed
/datum/plant_gene/trait/glow/yellowYellow (not the disgusting glowshroom yellow hopefully)
/datum/plant_gene/trait/glow/greenGreen (oh no, now i'm radioactive)
/datum/plant_gene/trait/glow/blueBlue (the best one)
/datum/plant_gene/trait/glow/purplePurple (did you know that notepad++ doesnt think bioluminescence is a word) (was the person who wrote this using notepad++ for dm?)
/datum/plant_gene/trait/maxchemA plant trait that causes the plant's capacity to double.
/datum/plant_gene/trait/repeated_harvestAllows a plant to be harvested multiple times.
/datum/plant_gene/trait/smokeExplodes into reagent-filled smoke when squashed.
/datum/plant_gene/trait/fire_resistanceMakes the plant and its seeds fireproof. From lavaland plants.
/datum/plant_gene/trait/invasiveInvasive spreading lets the plant jump to other trays, and the spreading plant won't replace plants of the same type.
/datum/plant_gene/trait/brewingA plant trait that causes the plant's food reagents to ferment instead.
/datum/plant_gene/trait/juicingSimilar to auto-distilling, but instead of brewing the plant's contents it juices it.
/datum/plant_gene/trait/plant_laughterPlays a laughter sound when someone slips on it. +Like the sitcom component but for plants. +Just like slippery skin, if we have a trash type this only functions on that. (Banana peels)
/datum/plant_gene/trait/eyesA plant trait that causes the plant to gain aesthetic googly eyes.
/datum/plant_gene/trait/stickyMakes the plant embed on thrown impact.
/datum/plant_gene/trait/chem_heatingThis trait automatically heats up the plant's chemical contents when harvested. +This requires nutriment to fuel. 1u nutriment = 25 K.
/datum/plant_gene/trait/chem_coolingThis trait is the opposite of above - it cools down the plant's chemical contents on harvest. +This requires nutriment to fuel. 1u nutriment = -5 K.
/datum/plant_gene/trait/never_mutatePrevents species mutation, while still allowing wild mutation harvest and Floral Somatoray species mutation. Trait acts as a tag for hydroponics.dm to recognise.
/datum/plant_gene/trait/stable_statsPrevents stat mutation caused by instability. Trait acts as a tag for hydroponics.dm to recognise.
/datum/plant_gene/trait/preservedTraits for flowers, makes plants not decompose.
/datum/plant_gene/trait/plant_typePlant type traits. Incompatible with one another.
/datum/plant_gene/trait/plant_type/weed_hardyWeeds don't get annoyed by weeds in their tray.
/datum/plant_gene/trait/plant_type/fungal_metabolismMushrooms need less light and have a minimum yield.
/datum/plant_gene/trait/plant_type/alien_propertiesCurrently unused and does nothing. Appears in strange seeds.
\ No newline at end of file diff --git a/code/modules/hydroponics/seed_extractor.html b/code/modules/hydroponics/seed_extractor.html new file mode 100644 index 0000000000000..dbdbf102b3505 --- /dev/null +++ b/code/modules/hydroponics/seed_extractor.html @@ -0,0 +1 @@ +code/modules/hydroponics/seed_extractor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hydroponics/seed_extractor.dm

/proc/seedifyFinds and extracts seeds from an object
\ No newline at end of file diff --git a/code/modules/hydroponics/unique_plant_genes.html b/code/modules/hydroponics/unique_plant_genes.html new file mode 100644 index 0000000000000..0cea78ca4605f --- /dev/null +++ b/code/modules/hydroponics/unique_plant_genes.html @@ -0,0 +1,2 @@ +code/modules/hydroponics/unique_plant_genes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/hydroponics/unique_plant_genes.dm

/datum/plant_gene/trait/anti_magicHolymelon's anti-magic trait. Charges based on potency.
/datum/plant_gene/trait/attackTraits that turn a plant into a weapon, giving them force and effects on attack.
/datum/plant_gene/trait/attack/novaflower_attackNovaflower's attack effects (sets people on fire) + degradation on attack
/datum/plant_gene/trait/attack/sunflower_attackSunflower's attack effect (shows cute text)
/datum/plant_gene/trait/attack/nettle_attackNormal nettle's force + degradation on attack
/datum/plant_gene/trait/attack/nettle_attack/deathDeathnettle force + degradation on attack
/datum/plant_gene/trait/backfireTraits for plants with backfire effects. These are negative effects that occur when a plant is handled without gloves/unsafely.
/datum/plant_gene/trait/backfire/rose_thornsRose's prick on backfire
/datum/plant_gene/trait/backfire/novaflower_heatNovaflower's hand burn on backfire
/datum/plant_gene/trait/backfire/nettle_burnNormal Nettle hannd burn on backfire
/datum/plant_gene/trait/backfire/nettle_burn/deathDeathnettle hand burn + stun on backfire
/datum/plant_gene/trait/backfire/chili_heatGhost-Chili heating up on backfire
/datum/plant_gene/trait/backfire/bluespaceBluespace Tomato squashing on the user on backfire
/datum/plant_gene/trait/mob_transformationTraits for plants that can be activated to turn into a mob.
/datum/plant_gene/trait/mob_transformation/tomatoKiller Tomato's transformation gene.
/datum/plant_gene/trait/mob_transformation/shroomWalking Mushroom's transformation gene
/datum/plant_gene/trait/one_biteTraiit for plants eaten in 1 bite.
/datum/plant_gene/trait/modified_volumeTraits for plants with a different base max_volume.
/datum/plant_gene/trait/modified_volume/omega_weedOmegaweed's funny 420 max volume gene
/datum/plant_gene/trait/modified_volume/cherry_bombCherry Bomb's increased max volume gene
/datum/plant_gene/trait/bomb_plantPlants that explode when used (based on their reagent contents)
/datum/plant_gene/trait/bomb_plant/potency_basedA subtype of bomb plants that have their boom sized based on potency instead of reagent contents.
/datum/plant_gene/trait/gas_productionCorpseflower's miasma production. +Can be generalized in the future to spawn any gas, but I don't think that's necessarily a good idea.
/datum/plant_gene/trait/invasive/galaxythistleStarthistle's essential invasive spreading
/datum/plant_gene/trait/carnivory/jupitercupJupitercup's essential carnivory
/datum/plant_gene/reagent/presetPreset plant reagent genes that are unremovable from a plant.
/datum/plant_gene/reagent/preset/polypyrSpaceman's Trumpet fragile Polypyrylium Oligomers
/datum/plant_gene/reagent/preset/liquidelectricityJupitercup's fragile Liquid Electricity
/datum/plant_gene/reagent/preset/carbonCarbon Roses's fragile Carbon
\ No newline at end of file diff --git a/code/modules/instruments/instrument_data/_instrument_data.html b/code/modules/instruments/instrument_data/_instrument_data.html new file mode 100644 index 0000000000000..a5294461c43db --- /dev/null +++ b/code/modules/instruments/instrument_data/_instrument_data.html @@ -0,0 +1 @@ +code/modules/instruments/instrument_data/_instrument_data.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/instruments/instrument_data/_instrument_data.dm

/proc/get_allowed_instrument_idsGet all non admin_only instruments as a list of text ids.
/datum/instrumentInstrument datums hold the data for any given instrument, as well as data on how to play it and what bounds there are to playing it.
\ No newline at end of file diff --git a/code/modules/instruments/instrument_data/_instrument_key.html b/code/modules/instruments/instrument_data/_instrument_key.html new file mode 100644 index 0000000000000..b1fd691c91028 --- /dev/null +++ b/code/modules/instruments/instrument_data/_instrument_key.html @@ -0,0 +1,2 @@ +code/modules/instruments/instrument_data/_instrument_key.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/instruments/instrument_data/_instrument_key.dm

/datum/instrument_keyInstrument key datums contain everything needed to know how to play a specific +note of an instrument.*
\ No newline at end of file diff --git a/code/modules/instruments/songs/_song.html b/code/modules/instruments/songs/_song.html new file mode 100644 index 0000000000000..3a36289cd90a3 --- /dev/null +++ b/code/modules/instruments/songs/_song.html @@ -0,0 +1,2 @@ +code/modules/instruments/songs/_song.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/instruments/songs/_song.dm

/datum/songThese are the actual backend behind instruments. +They attach to an atom and provide the editor + playback functionality.
\ No newline at end of file diff --git a/code/modules/interview/interview.html b/code/modules/interview/interview.html new file mode 100644 index 0000000000000..0418102de3323 --- /dev/null +++ b/code/modules/interview/interview.html @@ -0,0 +1 @@ +code/modules/interview/interview.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/interview/interview.dm

/datum/interviewRepresents a new-player interview form
\ No newline at end of file diff --git a/code/modules/interview/interview_manager.html b/code/modules/interview/interview_manager.html new file mode 100644 index 0000000000000..521e705c48b02 --- /dev/null +++ b/code/modules/interview/interview_manager.html @@ -0,0 +1,2 @@ +code/modules/interview/interview_manager.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/interview/interview_manager.dm

/datum/interview_managerHandles all interviews in the duration of a round, includes the primary functionality for +handling the interview queue.
\ No newline at end of file diff --git a/code/modules/jobs/departments/departments.html b/code/modules/jobs/departments/departments.html new file mode 100644 index 0000000000000..495fa110f0444 --- /dev/null +++ b/code/modules/jobs/departments/departments.html @@ -0,0 +1 @@ +code/modules/jobs/departments/departments.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/jobs/departments/departments.dm

/datum/job_departmentSingleton representing a category of jobs forming a department.
/datum/job_department/assistantA special assistant only department, primarily for use by the preferences menu
/datum/job_department/captainA special captain only department, for use by the preferences menu
/datum/job_department/undefinedCatch-all department for undefined jobs.
\ No newline at end of file diff --git a/code/modules/jobs/job_types/_job.html b/code/modules/jobs/job_types/_job.html new file mode 100644 index 0000000000000..e279f4e26a1c0 --- /dev/null +++ b/code/modules/jobs/job_types/_job.html @@ -0,0 +1,3 @@ +code/modules/jobs/job_types/_job.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/jobs/job_types/_job.dm

/datum/jobThis is the file you should use to add alternate titles for each job, just +follow the way they're done here, it's easy enough and shouldn't take any +time at all to add more or add some for a job that doesn't have any.
\ No newline at end of file diff --git a/code/modules/jobs/job_types/assistant/colorful_assistants.html b/code/modules/jobs/job_types/assistant/colorful_assistants.html new file mode 100644 index 0000000000000..ab06b529319e8 --- /dev/null +++ b/code/modules/jobs/job_types/assistant/colorful_assistants.html @@ -0,0 +1,2 @@ +code/modules/jobs/job_types/assistant/colorful_assistants.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/jobs/job_types/assistant/colorful_assistants.dm

/datum/colored_assistantDefines a style of jumpsuit/jumpskirt for assistants. +Jumpsuit and jumpskirt lists should match in colors, as they are used interchangably.
/datum/colored_assistant/solidWill pick one color, and stick with it
\ No newline at end of file diff --git a/code/modules/jobs/job_types/assistant/gimmick_assistants.html b/code/modules/jobs/job_types/assistant/gimmick_assistants.html new file mode 100644 index 0000000000000..552f18be692c4 --- /dev/null +++ b/code/modules/jobs/job_types/assistant/gimmick_assistants.html @@ -0,0 +1 @@ +code/modules/jobs/job_types/assistant/gimmick_assistants.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/jobs/job_types/assistant/gimmick_assistants.dm

/datum/outfit/job/assistant/gimmickParent type of gimmick loadouts for assistants for the functional assistant station traits
\ No newline at end of file diff --git a/code/modules/jobs/job_types/chaplain/chaplain_costumes.html b/code/modules/jobs/job_types/chaplain/chaplain_costumes.html new file mode 100644 index 0000000000000..9e438700a83b2 --- /dev/null +++ b/code/modules/jobs/job_types/chaplain/chaplain_costumes.html @@ -0,0 +1,2 @@ +code/modules/jobs/job_types/chaplain/chaplain_costumes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/jobs/job_types/chaplain/chaplain_costumes.dm

/obj/item/clothing/head/helmet/chaplainNEW ICON +Clothing that has a muzzled version, but its parent was set to something else earlier in this file or elsewhere entirely.
\ No newline at end of file diff --git a/code/modules/jobs/job_types/chaplain/chaplain_divine_archer.html b/code/modules/jobs/job_types/chaplain/chaplain_divine_archer.html new file mode 100644 index 0000000000000..27e66892be4a6 --- /dev/null +++ b/code/modules/jobs/job_types/chaplain/chaplain_divine_archer.html @@ -0,0 +1 @@ +code/modules/jobs/job_types/chaplain/chaplain_divine_archer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/jobs/job_types/chaplain/chaplain_divine_archer.dm

/obj/item/clothing/under/rank/civilian/chaplain/divine_archerundersuit
/obj/item/clothing/suit/hooded/chaplain_hoodie/divine_archersuit
/obj/item/clothing/head/hooded/chaplain_hood/divine_archerhood
/obj/item/clothing/gloves/divine_archergloves
/obj/item/clothing/shoes/divine_archerboots
\ No newline at end of file diff --git a/code/modules/jobs/job_types/chaplain/chaplain_nullrod.html b/code/modules/jobs/job_types/chaplain/chaplain_nullrod.html new file mode 100644 index 0000000000000..8fe34739424ad --- /dev/null +++ b/code/modules/jobs/job_types/chaplain/chaplain_nullrod.html @@ -0,0 +1,4 @@ +code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm

/obj/item/nullrod/claymoreClaymore Variant +This subtype possesses a block chance and is sharp.
/obj/item/nullrod/vibroVibro Variant +This subtype possesses armor penetration and is sharp.
/obj/item/nullrod/godhandOther Variants +Not a special category on their own, but usually possess more unique mechanics
\ No newline at end of file diff --git a/code/modules/jobs/job_types/scientist.html b/code/modules/jobs/job_types/scientist.html new file mode 100644 index 0000000000000..88a040fd37617 --- /dev/null +++ b/code/modules/jobs/job_types/scientist.html @@ -0,0 +1 @@ +code/modules/jobs/job_types/scientist.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/jobs/job_types/scientist.dm

/datum/outfit/job/scientist/consistentA version of the scientist outfit that is guaranteed to be the same every time
\ No newline at end of file diff --git a/code/modules/jobs/job_types/security_officer.html b/code/modules/jobs/job_types/security_officer.html new file mode 100644 index 0000000000000..34dc44814e1b7 --- /dev/null +++ b/code/modules/jobs/job_types/security_officer.html @@ -0,0 +1,2 @@ +code/modules/jobs/job_types/security_officer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/jobs/job_types/security_officer.dm

/proc/get_officer_departmentsReturns the distribution of splitting the given security officers into departments. +Return value is an assoc list of candidate => SEC_DEPT_*.
\ No newline at end of file diff --git a/code/modules/jobs/job_types/station_trait/pun_pun.html b/code/modules/jobs/job_types/station_trait/pun_pun.html new file mode 100644 index 0000000000000..00c6a050e72c0 --- /dev/null +++ b/code/modules/jobs/job_types/station_trait/pun_pun.html @@ -0,0 +1 @@ +code/modules/jobs/job_types/station_trait/pun_pun.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/jobs/job_types/station_trait/pun_pun.dm

/datum/job/pun_punSpecial job, active during monkey day.
\ No newline at end of file diff --git a/code/modules/jobs/job_types/unassigned.html b/code/modules/jobs/job_types/unassigned.html new file mode 100644 index 0000000000000..93a26a271c3d3 --- /dev/null +++ b/code/modules/jobs/job_types/unassigned.html @@ -0,0 +1,3 @@ +code/modules/jobs/job_types/unassigned.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/jobs/job_types/unassigned.dm

/datum/job/unassignedThis type is used to indicate a lack of a job. +The mind variable assigned_role will point here by default. +As any other job datum, this is a singleton.
\ No newline at end of file diff --git a/code/modules/keybindings.html b/code/modules/keybindings.html new file mode 100644 index 0000000000000..a3d118db2570f --- /dev/null +++ b/code/modules/keybindings.html @@ -0,0 +1,34 @@ +code/modules/keybindings/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

In-code keypress handling system

This whole system is heavily based off of forum_account's keyboard library. +Thanks to forum_account for saving the day, the library can be found +here!

+

.dmf macros have some very serious shortcomings. For example, they do not allow reusing parts +of one macro in another, so giving cyborgs their own shortcuts to swap active module couldn't +inherit the movement that all mobs should have anyways. The webclient only supports one macro, +so having more than one was problematic. Additionally each keybind has to call an actual +verb, which meant a lot of hidden verbs that just call one other proc. Also our existing +macro was really bad and tied unrelated behavior into Northeast(), Southeast(), Northwest(), +and Southwest().

+

The basic premise of this system is to not screw with .dmf macro setup at all and handle +pressing those keys in the code instead. We have every key call client.keyDown() +or client.keyUp() with the pressed key as an argument. Certain keys get processed +directly by the client because they should be doable at any time, then we call +keyDown() or keyUp() on the client's holder and the client's mob's focus. +By default mob.focus is the mob itself, but you can set it to any datum to give control of a +client's keypresses to another object. This would be a good way to handle a menu or driving +a mech. You can also set it to null to disregard input from a certain user.

+

Movement is handled by having each client call client.keyLoop() every game tick. +As above, this calls holder and focus.keyLoop(). atom/movable/keyLoop() handles movement +Try to keep the calculations in this proc light. It runs every tick for every client after all!

+

You can also tell which keys are being held down now. Each client a list of keys pressed called +keys_held. Each entry is a key as a text string associated with the world.time when it was +pressed.

+

No client-set keybindings at this time, but it shouldn't be too hard if someone wants.

+

Notes about certain keys:

+
    +
  • Tab has client-sided behavior but acts normally
  • +
  • T, O, and M move focus to the input when pressed. This fires the keyUp macro right away.
  • +
  • \ needs to be escaped in the dmf so any usage is \\
  • +
+

You cannot TICK_CHECK or check world.tick_usage inside of procs called by key down and up +events. They happen outside of a byond tick and have no meaning there. Key looping +works correctly since it's part of a subsystem, not direct input.

\ No newline at end of file diff --git a/code/modules/language/_language.html b/code/modules/language/_language.html new file mode 100644 index 0000000000000..cdff32ae50cd7 --- /dev/null +++ b/code/modules/language/_language.html @@ -0,0 +1 @@ +code/modules/language/_language.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/language/_language.dm

SCRAMBLE_CACHE_LENmaximum of 50 specific scrambled lines per language
/datum/languageDatum based languages. Easily editable and modular.

Define Details

SCRAMBLE_CACHE_LEN

maximum of 50 specific scrambled lines per language

\ No newline at end of file diff --git a/code/modules/language/_language_holder.html b/code/modules/language/_language_holder.html new file mode 100644 index 0000000000000..c0c2425f110ba --- /dev/null +++ b/code/modules/language/_language_holder.html @@ -0,0 +1,34 @@ +code/modules/language/_language_holder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/language/_language_holder.dm

Language holders will either exist in an atom/movable. Creation of language holders happens +automatically when they are needed, for example when something tries to speak. +Where a mind is available, the mind language holder will be the one "in charge". The mind holder +will update its languages based on the atom holder, and will get updated as part of +transformations and other events that cause new languages to become available.

+

Every language holder has three lists of languages (and sources for each of them):

+
    +
  • understood_languages
  • +
  • spoken_languages
  • +
  • blocked_languages
  • +
+

Understood languages let you understand them, spoken languages lets you speak them +(if your tongue is compatible), and blocked languages will let you do neither no matter +what the source of the language is.

+

Language holders are designed to mostly only ever require the use the helpers in atom/movable +to achieve your goals, but it is also possible to work on them directly if needed. Any adding +and removing of languages and sources should only happen through the procs, as directly changing +these will mess something up somewhere down the line.

+

All atom movables have the initial_language_holder var which allows you to set the default language +holder to create. For example, /datum/language_holder/alien will give you xenocommon and a block for +galactic common. Human species also have a default language holder var that will be updated on +species change, initial_species_holder.

+

Key procs

+
/proc/init_language_holder_prototypesInits the global list of language holder prototypes.
/datum/language_holder/syntheticModularized the Cyborg and AI language_holder, add here the languages that you want them to be able to speak and understand.
\ No newline at end of file diff --git a/code/modules/library/admin_only.html b/code/modules/library/admin_only.html new file mode 100644 index 0000000000000..b5dc71a4f047a --- /dev/null +++ b/code/modules/library/admin_only.html @@ -0,0 +1 @@ +code/modules/library/admin_only.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/library/admin_only.dm

/datum/book_history_entryThis mostly exists to document the form of the library_action table, since it doesn't do that good a job on its own
/datum/admin_book_viewerWeaps around a book's sql data, feeds it into a ui that allows us to at base view the contents of the book
\ No newline at end of file diff --git a/code/modules/library/book_info.html b/code/modules/library/book_info.html new file mode 100644 index 0000000000000..14125764cad59 --- /dev/null +++ b/code/modules/library/book_info.html @@ -0,0 +1 @@ +code/modules/library/book_info.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/library/book_info.dm

/datum/book_infoA datum which contains all the metadata of a book
\ No newline at end of file diff --git a/code/modules/library/lib_machines.html b/code/modules/library/lib_machines.html new file mode 100644 index 0000000000000..ea7ea48794e4e --- /dev/null +++ b/code/modules/library/lib_machines.html @@ -0,0 +1 @@ +code/modules/library/lib_machines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/library/lib_machines.dm

/proc/library_updatedIncrements every time WE update the library db table, causes all existing consoles to repull when they next check
\ No newline at end of file diff --git a/code/modules/library/skill_learning/generic_skillchips/point.html b/code/modules/library/skill_learning/generic_skillchips/point.html new file mode 100644 index 0000000000000..76284b2cfb283 --- /dev/null +++ b/code/modules/library/skill_learning/generic_skillchips/point.html @@ -0,0 +1,2 @@ +code/modules/library/skill_learning/generic_skillchips/point.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/library/skill_learning/generic_skillchips/point.dm

/obj/item/skillchip/big_pointerA skillchip that gives the user bigger arrows when pointing at things (like some id trims do). +As a bonus, they can costumize the color of the arrow/pointer too.
\ No newline at end of file diff --git a/code/modules/lighting/lighting_atom.html b/code/modules/lighting/lighting_atom.html new file mode 100644 index 0000000000000..447278caab661 --- /dev/null +++ b/code/modules/lighting/lighting_atom.html @@ -0,0 +1 @@ +code/modules/lighting/lighting_atom.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/lighting/lighting_atom.dm

/proc/calculate_light_offsetReturns a list of x and y offsets to apply to our visual lighting position
\ No newline at end of file diff --git a/code/modules/lighting/lighting_corner.html b/code/modules/lighting/lighting_corner.html new file mode 100644 index 0000000000000..bac981df341b2 --- /dev/null +++ b/code/modules/lighting/lighting_corner.html @@ -0,0 +1 @@ +code/modules/lighting/lighting_corner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/lighting/lighting_corner.dm

/proc/display_cornersMakes all lighting corners visible, debug to aid in understanding
\ No newline at end of file diff --git a/code/modules/lighting/lighting_source.html b/code/modules/lighting/lighting_source.html new file mode 100644 index 0000000000000..893dae033ddbf --- /dev/null +++ b/code/modules/lighting/lighting_source.html @@ -0,0 +1,4 @@ +code/modules/lighting/lighting_source.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/lighting/lighting_source.dm

/proc/read_sheetDebug proc, for when lighting sheets fuck up +Accepts the sheet (2 or 3 (multiz) dimensional list of lighting values at some offset) +alongside x and y delta values and the sheet's "offset", which is the amount required to ensure everything indexes at 1 +Optionally, you can pass similar values for multiz stuff
\ No newline at end of file diff --git a/code/modules/loadout/categories/accessories.html b/code/modules/loadout/categories/accessories.html new file mode 100644 index 0000000000000..ad2dd25ee9f66 --- /dev/null +++ b/code/modules/loadout/categories/accessories.html @@ -0,0 +1 @@ +code/modules/loadout/categories/accessories.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/loadout/categories/accessories.dm

/datum/loadout_category/accessoriesAccessory Items (Moves overrided items to backpack)
\ No newline at end of file diff --git a/code/modules/loadout/categories/glasses.html b/code/modules/loadout/categories/glasses.html new file mode 100644 index 0000000000000..7ed605c4595d2 --- /dev/null +++ b/code/modules/loadout/categories/glasses.html @@ -0,0 +1 @@ +code/modules/loadout/categories/glasses.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/loadout/categories/glasses.dm

/datum/loadout_category/glassesGlasses Slot Items (Moves overrided items to backpack)
\ No newline at end of file diff --git a/code/modules/loadout/categories/heads.html b/code/modules/loadout/categories/heads.html new file mode 100644 index 0000000000000..d421c9736ccda --- /dev/null +++ b/code/modules/loadout/categories/heads.html @@ -0,0 +1 @@ +code/modules/loadout/categories/heads.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/loadout/categories/heads.dm

/datum/loadout_category/headHead Slot Items (Deletes overrided items)
\ No newline at end of file diff --git a/code/modules/loadout/categories/inhands.html b/code/modules/loadout/categories/inhands.html new file mode 100644 index 0000000000000..dcc3cb571d9b2 --- /dev/null +++ b/code/modules/loadout/categories/inhands.html @@ -0,0 +1 @@ +code/modules/loadout/categories/inhands.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/loadout/categories/inhands.dm

/datum/loadout_category/inhandsInhand items (Moves overrided items to backpack)
\ No newline at end of file diff --git a/code/modules/loadout/categories/neck.html b/code/modules/loadout/categories/neck.html new file mode 100644 index 0000000000000..afa5b02378400 --- /dev/null +++ b/code/modules/loadout/categories/neck.html @@ -0,0 +1 @@ +code/modules/loadout/categories/neck.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/loadout/categories/neck.dm

/datum/loadout_category/neckNeck Slot Items (Deletes overrided items)
\ No newline at end of file diff --git a/code/modules/loadout/categories/pocket.html b/code/modules/loadout/categories/pocket.html new file mode 100644 index 0000000000000..5e45ae5b31072 --- /dev/null +++ b/code/modules/loadout/categories/pocket.html @@ -0,0 +1 @@ +code/modules/loadout/categories/pocket.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/loadout/categories/pocket.dm

/datum/loadout_category/pocketPocket items (Moved to backpack)
\ No newline at end of file diff --git a/code/modules/loadout/loadout_categories.html b/code/modules/loadout/loadout_categories.html new file mode 100644 index 0000000000000..f7aba686f679e --- /dev/null +++ b/code/modules/loadout/loadout_categories.html @@ -0,0 +1 @@ +code/modules/loadout/loadout_categories.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/loadout/loadout_categories.dm

/datum/loadout_categoryLoadout categories are singletons used to group loadout items together in the loadout screen.
\ No newline at end of file diff --git a/code/modules/loadout/loadout_helpers.html b/code/modules/loadout/loadout_helpers.html new file mode 100644 index 0000000000000..b04df52ac8ef4 --- /dev/null +++ b/code/modules/loadout/loadout_helpers.html @@ -0,0 +1,2 @@ +code/modules/loadout/loadout_helpers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/loadout/loadout_helpers.dm

/proc/loadout_list_to_datumsTakes a list of paths (such as a loadout list) +and returns a list of their singleton loadout item datums
\ No newline at end of file diff --git a/code/modules/loadout/loadout_items.html b/code/modules/loadout/loadout_items.html new file mode 100644 index 0000000000000..26ed85964d33b --- /dev/null +++ b/code/modules/loadout/loadout_items.html @@ -0,0 +1,2 @@ +code/modules/loadout/loadout_items.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/loadout/loadout_items.dm

/proc/init_loadout_categoriesInits the global list of loadout category singletons +Also inits loadout item singletons
/datum/loadout_itemSingleton that holds all the information about each loadout items, and how to equip them.
\ No newline at end of file diff --git a/code/modules/logging/log_category.html b/code/modules/logging/log_category.html new file mode 100644 index 0000000000000..5f0942d819622 --- /dev/null +++ b/code/modules/logging/log_category.html @@ -0,0 +1 @@ +code/modules/logging/log_category.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/logging/log_category.dm

/datum/log_categoryThe main datum that contains all log entries for a category
\ No newline at end of file diff --git a/code/modules/logging/log_entry.html b/code/modules/logging/log_entry.html new file mode 100644 index 0000000000000..5221cab3257f6 --- /dev/null +++ b/code/modules/logging/log_entry.html @@ -0,0 +1 @@ +code/modules/logging/log_entry.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/logging/log_entry.dm

/datum/log_entryA datum which contains log information.
\ No newline at end of file diff --git a/code/modules/logging/log_holder.html b/code/modules/logging/log_holder.html new file mode 100644 index 0000000000000..a9e1a54d991c6 --- /dev/null +++ b/code/modules/logging/log_holder.html @@ -0,0 +1 @@ +code/modules/logging/log_holder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/logging/log_holder.dm

/datum/log_holderMain datum to manage logging actions
LOG_CATEGORY_RESET_FILE_MARKERLog entry header used to mark a file is being reset

Define Details

LOG_CATEGORY_RESET_FILE_MARKER

Log entry header used to mark a file is being reset

\ No newline at end of file diff --git a/code/modules/lootpanel/_lootpanel.html b/code/modules/lootpanel/_lootpanel.html new file mode 100644 index 0000000000000..5609bfc1f4332 --- /dev/null +++ b/code/modules/lootpanel/_lootpanel.html @@ -0,0 +1 @@ +code/modules/lootpanel/_lootpanel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/lootpanel/_lootpanel.dm

/datum/lootpanel
\ No newline at end of file diff --git a/code/modules/lootpanel/search_object.html b/code/modules/lootpanel/search_object.html new file mode 100644 index 0000000000000..9f60190bb30d1 --- /dev/null +++ b/code/modules/lootpanel/search_object.html @@ -0,0 +1 @@ +code/modules/lootpanel/search_object.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/lootpanel/search_object.dm

/datum/search_object
\ No newline at end of file diff --git a/code/modules/lootpanel/ss_looting.html b/code/modules/lootpanel/ss_looting.html new file mode 100644 index 0000000000000..7bfbd42f89d6f --- /dev/null +++ b/code/modules/lootpanel/ss_looting.html @@ -0,0 +1 @@ +code/modules/lootpanel/ss_looting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/lootpanel/ss_looting.dm

/var/SSlootingQueues image generation for search objects without icons
\ No newline at end of file diff --git a/code/modules/mafia/_defines.html b/code/modules/mafia/_defines.html new file mode 100644 index 0000000000000..ebe317dd760ca --- /dev/null +++ b/code/modules/mafia/_defines.html @@ -0,0 +1 @@ +code/modules/mafia/_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mafia/_defines.dm

MAFIA_MIN_PLAYER_COUNTThe amount of players required to start a Mafia game
MAFIA_MAX_PLAYER_COUNThow many people can play mafia without issues (running out of spawns, procs not expecting more than this amount of people, etc)
FIRST_DAY_PERIOD_LENGTHThe time spent during the first day, which is shorter due to not having a voting period.
DAY_PERIOD_LENGTHThe length of a Day period
VOTING_PERIOD_LENGTHThe length of a Voting period, when people decide who they want to put up for hanging that day.
JUDGEMENT_PERIOD_LENGTHThe length of the judgment period, where people vote on whether to lynch the person they voted up.
LYNCH_PERIOD_LENGTHThe length of the lynch period, if the judged person is deemed guilty and is sentenced to death.
NIGHT_PERIOD_LENGTHThe length of the night period where people can do their night abilities and speak with their mafia team.
VICTORY_LAP_PERIOD_LENGTHThe length of the roundend report, where people can look over the round and the details.
MAFIA_NOTE_SENDING_COOLDOWNThe cooldown between being able to send your notes in chat.
MAFIA_SPEEDUP_INCREASEHow fast the game will speed up when half the players are gone.
TOWN_OVERFLOWAdd this if you don't want a role to be a choice in the selection
TOWN_INVESTroles that learn info about others in the game (chaplain, detective, psych)
TOWN_PROTECTroles that keep other roles safe (doctor, sec officer, and weirdly enough lawyer counts)
TOWN_KILLINGroles that are only there to kill bad guys.
TOWN_SUPPORTroles that don't fit into anything else (hop)
MAFIA_REGULARnormal vote kill changelings
MAFIA_SPECIALevery other changeling role that has extra abilities
NEUTRAL_KILLrole that wins solo that nobody likes
NEUTRAL_DISRUPTrole that upsets the game aka obsessed, usually worse for town than mafia but they can vote against mafia
ROLE_UNDETECTABLEto all forms of detection, shows themselves as an assistant.
ROLE_CAN_KILLhas the ability to theoretically kill someone singlehandedly, blocks their team from losing against another teams.
ROLE_UNIQUEcan only be one in a randomly generated game
ROLE_REVEALEDrole is public to all other players in the game.
ROLE_VULNERABLEcan not be defended, protected, or any other form of protection. all kills succeed no matter what.
ROLE_ROLEBLOCKEDcannot perform any actions that night, preselected actions fail
CAN_USE_ON_OTHERSFlag that decides whether the Mafia ability can be used on other people.
CAN_USE_ON_SELFFlag that decides whether the Mafia ability can be used on themselves.
CAN_USE_ON_DEADFlag that decides whether the Mafia ability can be used on dead players.
COMSIG_MAFIA_SUNDOWNSends all signals that must go immediately as night starts.
COMSIG_MAFIA_NIGHT_PRE_ACTION_PHASESends all signals that must go first, aka roleblocks.
COMSIG_MAFIA_NIGHT_ACTION_PHASESends the signal that all regular actions must go, such as
COMSIG_MAFIA_NIGHT_KILL_PHASEnow killing happens from the roles that do that. the reason this is post action phase is to ensure doctors can protect and lawyers can block
COMSIG_MAFIA_NIGHT_ENDnow clearing refs to prepare for the next day. Do not do any actions here, it's just for ref clearing.
COMSIG_MAFIA_GAME_STARTsignal sent to roles when the game is confirmed starting
COMSIG_MAFIA_GAME_ENDsignal sent to roles when the game is confirmed ending

Define Details

CAN_USE_ON_DEAD

Flag that decides whether the Mafia ability can be used on dead players.

CAN_USE_ON_OTHERS

Flag that decides whether the Mafia ability can be used on other people.

CAN_USE_ON_SELF

Flag that decides whether the Mafia ability can be used on themselves.

COMSIG_MAFIA_GAME_END

signal sent to roles when the game is confirmed ending

COMSIG_MAFIA_GAME_START

signal sent to roles when the game is confirmed starting

COMSIG_MAFIA_NIGHT_ACTION_PHASE

Sends the signal that all regular actions must go, such as

COMSIG_MAFIA_NIGHT_END

now clearing refs to prepare for the next day. Do not do any actions here, it's just for ref clearing.

COMSIG_MAFIA_NIGHT_KILL_PHASE

now killing happens from the roles that do that. the reason this is post action phase is to ensure doctors can protect and lawyers can block

COMSIG_MAFIA_NIGHT_PRE_ACTION_PHASE

Sends all signals that must go first, aka roleblocks.

COMSIG_MAFIA_SUNDOWN

Sends all signals that must go immediately as night starts.

DAY_PERIOD_LENGTH

The length of a Day period

FIRST_DAY_PERIOD_LENGTH

The time spent during the first day, which is shorter due to not having a voting period.

JUDGEMENT_PERIOD_LENGTH

The length of the judgment period, where people vote on whether to lynch the person they voted up.

LYNCH_PERIOD_LENGTH

The length of the lynch period, if the judged person is deemed guilty and is sentenced to death.

MAFIA_MAX_PLAYER_COUNT

how many people can play mafia without issues (running out of spawns, procs not expecting more than this amount of people, etc)

MAFIA_MIN_PLAYER_COUNT

The amount of players required to start a Mafia game

MAFIA_NOTE_SENDING_COOLDOWN

The cooldown between being able to send your notes in chat.

MAFIA_REGULAR

normal vote kill changelings

MAFIA_SPECIAL

every other changeling role that has extra abilities

MAFIA_SPEEDUP_INCREASE

How fast the game will speed up when half the players are gone.

NEUTRAL_DISRUPT

role that upsets the game aka obsessed, usually worse for town than mafia but they can vote against mafia

NEUTRAL_KILL

role that wins solo that nobody likes

NIGHT_PERIOD_LENGTH

The length of the night period where people can do their night abilities and speak with their mafia team.

ROLE_CAN_KILL

has the ability to theoretically kill someone singlehandedly, blocks their team from losing against another teams.

ROLE_REVEALED

role is public to all other players in the game.

ROLE_ROLEBLOCKED

cannot perform any actions that night, preselected actions fail

ROLE_UNDETECTABLE

to all forms of detection, shows themselves as an assistant.

ROLE_UNIQUE

can only be one in a randomly generated game

ROLE_VULNERABLE

can not be defended, protected, or any other form of protection. all kills succeed no matter what.

TOWN_INVEST

roles that learn info about others in the game (chaplain, detective, psych)

TOWN_KILLING

roles that are only there to kill bad guys.

TOWN_OVERFLOW

Add this if you don't want a role to be a choice in the selection

TOWN_PROTECT

roles that keep other roles safe (doctor, sec officer, and weirdly enough lawyer counts)

TOWN_SUPPORT

roles that don't fit into anything else (hop)

VICTORY_LAP_PERIOD_LENGTH

The length of the roundend report, where people can look over the round and the details.

VOTING_PERIOD_LENGTH

The length of a Voting period, when people decide who they want to put up for hanging that day.

\ No newline at end of file diff --git a/code/modules/mafia/abilities/investigative/investigate.html b/code/modules/mafia/abilities/investigative/investigate.html new file mode 100644 index 0000000000000..36d73026ba0b3 --- /dev/null +++ b/code/modules/mafia/abilities/investigative/investigate.html @@ -0,0 +1 @@ +code/modules/mafia/abilities/investigative/investigate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mafia/abilities/investigative/investigate.dm

/datum/mafia_ability/investigateInvestigate
\ No newline at end of file diff --git a/code/modules/mafia/abilities/investigative/pray.html b/code/modules/mafia/abilities/investigative/pray.html new file mode 100644 index 0000000000000..9541cff954066 --- /dev/null +++ b/code/modules/mafia/abilities/investigative/pray.html @@ -0,0 +1 @@ +code/modules/mafia/abilities/investigative/pray.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mafia/abilities/investigative/pray.dm

/datum/mafia_ability/seancePray
\ No newline at end of file diff --git a/code/modules/mafia/abilities/investigative/reveal.html b/code/modules/mafia/abilities/investigative/reveal.html new file mode 100644 index 0000000000000..506d85f02000c --- /dev/null +++ b/code/modules/mafia/abilities/investigative/reveal.html @@ -0,0 +1 @@ +code/modules/mafia/abilities/investigative/reveal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mafia/abilities/investigative/reveal.dm

/datum/mafia_ability/reaveal_roleReveal
\ No newline at end of file diff --git a/code/modules/mafia/abilities/investigative/thoughtfeed.html b/code/modules/mafia/abilities/investigative/thoughtfeed.html new file mode 100644 index 0000000000000..96ce76d4b4584 --- /dev/null +++ b/code/modules/mafia/abilities/investigative/thoughtfeed.html @@ -0,0 +1 @@ +code/modules/mafia/abilities/investigative/thoughtfeed.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mafia/abilities/investigative/thoughtfeed.dm

/datum/mafia_ability/thoughtfeederThoughtfeeding
\ No newline at end of file diff --git a/code/modules/mafia/abilities/killing/alert.html b/code/modules/mafia/abilities/killing/alert.html new file mode 100644 index 0000000000000..48cb3d2052fea --- /dev/null +++ b/code/modules/mafia/abilities/killing/alert.html @@ -0,0 +1 @@ +code/modules/mafia/abilities/killing/alert.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mafia/abilities/killing/alert.dm

/datum/mafia_ability/attack_visitorsAlert
\ No newline at end of file diff --git a/code/modules/mafia/abilities/killing/flicker_rampage.html b/code/modules/mafia/abilities/killing/flicker_rampage.html new file mode 100644 index 0000000000000..190288fa48ecc --- /dev/null +++ b/code/modules/mafia/abilities/killing/flicker_rampage.html @@ -0,0 +1 @@ +code/modules/mafia/abilities/killing/flicker_rampage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mafia/abilities/killing/flicker_rampage.dm

/datum/mafia_ability/flicker_rampageFlicker/Rampage
\ No newline at end of file diff --git a/code/modules/mafia/abilities/killing/kill.html b/code/modules/mafia/abilities/killing/kill.html new file mode 100644 index 0000000000000..15a2d9d4dc62c --- /dev/null +++ b/code/modules/mafia/abilities/killing/kill.html @@ -0,0 +1 @@ +code/modules/mafia/abilities/killing/kill.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mafia/abilities/killing/kill.dm

/datum/mafia_ability/attack_playerAttack
\ No newline at end of file diff --git a/code/modules/mafia/abilities/protective/heal.html b/code/modules/mafia/abilities/protective/heal.html new file mode 100644 index 0000000000000..a9c6829d954f8 --- /dev/null +++ b/code/modules/mafia/abilities/protective/heal.html @@ -0,0 +1,2 @@ +code/modules/mafia/abilities/protective/heal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mafia/abilities/protective/heal.dm

/datum/mafia_ability/healHeal
/datum/mafia_ability/heal/defendDefend subtype +Kills both players when successfully defending.
\ No newline at end of file diff --git a/code/modules/mafia/abilities/protective/vest.html b/code/modules/mafia/abilities/protective/vest.html new file mode 100644 index 0000000000000..77a87749e4ab2 --- /dev/null +++ b/code/modules/mafia/abilities/protective/vest.html @@ -0,0 +1 @@ +code/modules/mafia/abilities/protective/vest.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mafia/abilities/protective/vest.dm

STARTING_VEST_AMOUNTThe amount of vests that you get by default to use, lowers as you use them.
/datum/mafia_ability/vestVest

Define Details

STARTING_VEST_AMOUNT

The amount of vests that you get by default to use, lowers as you use them.

\ No newline at end of file diff --git a/code/modules/mafia/abilities/support/roleblock.html b/code/modules/mafia/abilities/support/roleblock.html new file mode 100644 index 0000000000000..4143e2d5715b8 --- /dev/null +++ b/code/modules/mafia/abilities/support/roleblock.html @@ -0,0 +1 @@ +code/modules/mafia/abilities/support/roleblock.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mafia/abilities/support/roleblock.dm

/datum/mafia_ability/roleblockRoleblock
\ No newline at end of file diff --git a/code/modules/mafia/abilities/support/self_reveal.html b/code/modules/mafia/abilities/support/self_reveal.html new file mode 100644 index 0000000000000..80ace8dff648e --- /dev/null +++ b/code/modules/mafia/abilities/support/self_reveal.html @@ -0,0 +1 @@ +code/modules/mafia/abilities/support/self_reveal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mafia/abilities/support/self_reveal.dm

/datum/mafia_ability/self_revealSelf reveal
\ No newline at end of file diff --git a/code/modules/mafia/abilities/voting/changeling_kill.html b/code/modules/mafia/abilities/voting/changeling_kill.html new file mode 100644 index 0000000000000..4b7a82487adcc --- /dev/null +++ b/code/modules/mafia/abilities/voting/changeling_kill.html @@ -0,0 +1 @@ +code/modules/mafia/abilities/voting/changeling_kill.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mafia/abilities/voting/changeling_kill.dm

/datum/mafia_ability/changeling_killChangeling kill
\ No newline at end of file diff --git a/code/modules/mafia/abilities/voting/day_voting.html b/code/modules/mafia/abilities/voting/day_voting.html new file mode 100644 index 0000000000000..81c0a79d8b64a --- /dev/null +++ b/code/modules/mafia/abilities/voting/day_voting.html @@ -0,0 +1 @@ +code/modules/mafia/abilities/voting/day_voting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mafia/abilities/voting/day_voting.dm

/datum/mafia_ability/votingVoting
\ No newline at end of file diff --git a/code/modules/mafia/controller.html b/code/modules/mafia/controller.html new file mode 100644 index 0000000000000..0c9c5ad903a11 --- /dev/null +++ b/code/modules/mafia/controller.html @@ -0,0 +1,2 @@ +code/modules/mafia/controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mafia/controller.dm

UNIVERSALLY_HATED_REQUIREMENTHow many votes are needed to unlock the 'Universally Hated' achievement.
/datum/mafia_controllerThe mafia controller handles the mafia minigame in progress. +It is first created when the first ghost signs up to play.
/atom/movable/screen/mafia_popupThe popup used for sending important messages to players.
/proc/create_mafia_gameCreates the global datum for playing mafia games, destroys the last if that's required and returns the new.

Define Details

UNIVERSALLY_HATED_REQUIREMENT

How many votes are needed to unlock the 'Universally Hated' achievement.

\ No newline at end of file diff --git a/code/modules/mafia/outfits.html b/code/modules/mafia/outfits.html new file mode 100644 index 0000000000000..a82cbf2e30f9d --- /dev/null +++ b/code/modules/mafia/outfits.html @@ -0,0 +1 @@ +code/modules/mafia/outfits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mafia/outfits.dm

/datum/outfit/mafia/abducteeMap-specific custom outfits
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/generic.html b/code/modules/mapfluff/ruins/generic.html new file mode 100644 index 0000000000000..9e56a1e856925 --- /dev/null +++ b/code/modules/mapfluff/ruins/generic.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/generic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/generic.dm

/obj/modular_map_root/genericGeneric maps with several available biomes.
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/icemoonruin_code/hotsprings.html b/code/modules/mapfluff/ruins/icemoonruin_code/hotsprings.html new file mode 100644 index 0000000000000..1561534ede1e6 --- /dev/null +++ b/code/modules/mapfluff/ruins/icemoonruin_code/hotsprings.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/icemoonruin_code/hotsprings.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/icemoonruin_code/hotsprings.dm

/turf/open/water/cursed_springTurns whoever enters into a mob or random person
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/lavaland_ruin_code.html b/code/modules/mapfluff/ruins/lavaland_ruin_code.html new file mode 100644 index 0000000000000..eaaad6449d539 --- /dev/null +++ b/code/modules/mapfluff/ruins/lavaland_ruin_code.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/lavaland_ruin_code.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/lavaland_ruin_code.dm

/obj/item/disk/design_disk/knight_gearWizard tower item
/obj/item/golem_shell/servantmade with xenobiology, the golem obeys its creator
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/lavalandruin_code/biodome_clown_planet.html b/code/modules/mapfluff/ruins/lavalandruin_code/biodome_clown_planet.html new file mode 100644 index 0000000000000..03dc77310ebf5 --- /dev/null +++ b/code/modules/mapfluff/ruins/lavalandruin_code/biodome_clown_planet.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/lavalandruin_code/biodome_clown_planet.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/lavalandruin_code/biodome_clown_planet.dm

/obj/item/paper/crumpled/bloody/ruins/lavaland/clown_planet/escapelavaland clown planet papers
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.html b/code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.html new file mode 100644 index 0000000000000..d98b5374c959c --- /dev/null +++ b/code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.dm

/obj/structure/closet/crate/gravehas no items inside unless you use the filled subtype
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/lavalandruin_code/sloth.html b/code/modules/mapfluff/ruins/lavalandruin_code/sloth.html new file mode 100644 index 0000000000000..69f9b82ccd442 --- /dev/null +++ b/code/modules/mapfluff/ruins/lavalandruin_code/sloth.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/lavalandruin_code/sloth.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/lavalandruin_code/sloth.dm

/obj/item/paper/fluff/stations/lavaland/sloth/notelavaland slot ruin items
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/lavalandruin_code/surface.html b/code/modules/mapfluff/ruins/lavalandruin_code/surface.html new file mode 100644 index 0000000000000..128723abd9a2e --- /dev/null +++ b/code/modules/mapfluff/ruins/lavalandruin_code/surface.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/lavalandruin_code/surface.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/lavalandruin_code/surface.dm

/obj/item/paper/fluff/stations/lavaland/surface/henderson_reportlavaland surface papers
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/lavalandruin_code/watcher_grave.html b/code/modules/mapfluff/ruins/lavalandruin_code/watcher_grave.html new file mode 100644 index 0000000000000..e2311f7de6e7c --- /dev/null +++ b/code/modules/mapfluff/ruins/lavalandruin_code/watcher_grave.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/lavalandruin_code/watcher_grave.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/lavalandruin_code/watcher_grave.dm

/obj/item/food/egg/watcherEgg which hatches into a helpful pet. Or you can eat it if you want.
/obj/item/watcher_hatchlingA cute pet who will occasionally attack lavaland mobs for you
/obj/effect/watcher_orbiterOrbiting visual which shoots at mining mobs
/obj/projectile/baby_watcher_blastBeam fired by a baby watcher, doesn't actually do less damage than its parent
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/objects_and_mobs/cursed_slot_machine.html b/code/modules/mapfluff/ruins/objects_and_mobs/cursed_slot_machine.html new file mode 100644 index 0000000000000..4f00b2dda804b --- /dev/null +++ b/code/modules/mapfluff/ruins/objects_and_mobs/cursed_slot_machine.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/objects_and_mobs/cursed_slot_machine.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/objects_and_mobs/cursed_slot_machine.dm

/obj/structure/cursed_slot_machineGreed's slot machine: Used in the Greed ruin. Deals damage on each use, with a successful use giving a d20 of fate.
/obj/structure/cursed_moneyPrize given out by the cursed slot machine that will give the user one Die of Fate and then delete itself.
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/objects_and_mobs/museum.html b/code/modules/mapfluff/ruins/objects_and_mobs/museum.html new file mode 100644 index 0000000000000..0e0f7229543eb --- /dev/null +++ b/code/modules/mapfluff/ruins/objects_and_mobs/museum.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/objects_and_mobs/museum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/objects_and_mobs/museum.dm

/obj/structure/toilet/museumDo not place these beyond the cafeteria shutters, or you might lock people out of reaching it.
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/DJstation.html b/code/modules/mapfluff/ruins/spaceruin_code/DJstation.html new file mode 100644 index 0000000000000..0b81574d4f665 --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/DJstation.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/DJstation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/DJstation.dm

/obj/item/paper/fluff/ruins/djstationdjstation items
/obj/modular_map_root/djstationdjstation module roots
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.html b/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.html new file mode 100644 index 0000000000000..f271f86347f81 --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.html @@ -0,0 +1,5 @@ +code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm

/obj/item/paper/fluff/ruins/thederelict/equipmentthederelict items
/obj/machinery/computer/terminal/derelict/bridgeThe Derelict Terminals
/obj/machinery/computer/vaultcontrollerVault controller for use on the derelict/KS13.
/obj/machinery/door/airlock/vault/derelictAirlock that can't be deconstructed, broken or hacked.
/obj/item/tape/captains_logCaptain's log +Credits to goonstation13 for orginal SS13 lore +https://wiki.ss13.co/Storyline +https://www.youtube.com/watch?v=7M-JPH5SOmI (old video) +https://www.youtube.com/watch?v=FHH1vfY6HTA (new video)
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/anomalyresearch.html b/code/modules/mapfluff/ruins/spaceruin_code/anomalyresearch.html new file mode 100644 index 0000000000000..4b40fdabffad2 --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/anomalyresearch.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/anomalyresearch.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/anomalyresearch.dm

/obj/effect/spawner/random/big_anomalySpawns a big, amped up fat anomaly
/obj/effect/spawner/random/environmentally_safe_anomalySpawns a stable anomally that doesnt drop cores and doesn't destroy or alter the environment
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/asteroid4.html b/code/modules/mapfluff/ruins/spaceruin_code/asteroid4.html new file mode 100644 index 0000000000000..ff2fcd66428fd --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/asteroid4.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/asteroid4.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/asteroid4.dm

/obj/item/paper/fluff/ruins/asteroid4/extractionasteroid4 items
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/atmos_asteroid.html b/code/modules/mapfluff/ruins/spaceruin_code/atmos_asteroid.html new file mode 100644 index 0000000000000..fe1e2dfe4ecac --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/atmos_asteroid.html @@ -0,0 +1,2 @@ +code/modules/mapfluff/ruins/spaceruin_code/atmos_asteroid.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mapfluff/ruins/spaceruin_code/atmos_asteroid.dm

CO2_PRESSURIZED_MIX

Define Details

CO2_PRESSURIZED_MIX

A bunch of turf subtypes used to really make this ruin work.

+

Define of the specific gas mix we want across all of the turfs.

\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/bigderelict1.html b/code/modules/mapfluff/ruins/spaceruin_code/bigderelict1.html new file mode 100644 index 0000000000000..3b5db3ebf68bf --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/bigderelict1.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/bigderelict1.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/bigderelict1.dm

/obj/item/paper/crumpled/ruins/bigderelict1/manifestbigderelict1 items
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/clericsden.html b/code/modules/mapfluff/ruins/spaceruin_code/clericsden.html new file mode 100644 index 0000000000000..9c6443f9aedba --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/clericsden.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/clericsden.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/clericsden.dm

/obj/item/disk/design_disk/cleric_macecleric's den items.
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/crashedclownship.html b/code/modules/mapfluff/ruins/spaceruin_code/crashedclownship.html new file mode 100644 index 0000000000000..bb6f8480c7817 --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/crashedclownship.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/crashedclownship.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/crashedclownship.dm

/obj/item/paper/fluff/ruins/crashedclownship/true_nationcrashedclownship items
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/cyborgmothership.html b/code/modules/mapfluff/ruins/spaceruin_code/cyborgmothership.html new file mode 100644 index 0000000000000..29d0b7dfa6ab1 --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/cyborgmothership.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/cyborgmothership.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/cyborgmothership.dm

/obj/machinery/computer/shuttle/cyborg_mothership/bridgeConsole used on the cyborg_mothership bridge. Comes with GPS pre-baked.
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/dangerous_research.html b/code/modules/mapfluff/ruins/spaceruin_code/dangerous_research.html new file mode 100644 index 0000000000000..89747f9819162 --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/dangerous_research.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/dangerous_research.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/dangerous_research.dm

/obj/item/paper/fluff/ruins/dangerous_research/manifestPaper Fluff Lore
/obj/item/paper/fluff/ruins/dangerous_research/beaches_journal_1Dream-Of-Beaches Journal
/obj/item/paper/fluff/ruins/dangerous_research/armstrong_memo_1Armstrong Memos
/obj/machinery/computer/terminal/dangerous_research/front_deskLore Terminals
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/deepstorage.html b/code/modules/mapfluff/ruins/spaceruin_code/deepstorage.html new file mode 100644 index 0000000000000..a9f4c1f6d1e8d --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/deepstorage.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/deepstorage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/deepstorage.dm

/obj/item/paper/fluff/ruins/deepstorage/water_concerndeepstorage items
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/derelict_sulaco.html b/code/modules/mapfluff/ruins/spaceruin_code/derelict_sulaco.html new file mode 100644 index 0000000000000..57594e35c97da --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/derelict_sulaco.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/derelict_sulaco.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/derelict_sulaco.dm

/obj/item/paper/crumpled/ruins/derelict_sulaco/captainderelictsulaco items
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/forgottenship.html b/code/modules/mapfluff/ruins/spaceruin_code/forgottenship.html new file mode 100644 index 0000000000000..f3dea48569dfd --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/forgottenship.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/forgottenship.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/forgottenship.dm

/obj/machinery/door/password/voice/sfcforgottenship objects
/obj/item/paper/fluff/ruins/forgottenship/passwordforgottenship lore
/obj/item/disk/surgery/forgottenshipforgottenship items
/obj/item/ai_module/core/full/cybersunAI Laws
/area/ruin/space/has_grav/syndicate_forgotten_shipforgottenship areas
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/interdyne.html b/code/modules/mapfluff/ruins/spaceruin_code/interdyne.html new file mode 100644 index 0000000000000..1745b4406f945 --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/interdyne.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/interdyne.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/interdyne.dm

/obj/item/paper/fluff/ruins/interdyne/receptionResearch notes
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/listeningstation.html b/code/modules/mapfluff/ruins/spaceruin_code/listeningstation.html new file mode 100644 index 0000000000000..77a43bf5b98c6 --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/listeningstation.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/listeningstation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/listeningstation.dm

/obj/item/paper/fluff/ruins/listeningstation/reportsPapers used in The Listening Station ruin.
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/meateor.html b/code/modules/mapfluff/ruins/spaceruin_code/meateor.html new file mode 100644 index 0000000000000..e96d97b1b9868 --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/meateor.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/meateor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/meateor.dm

/obj/effect/mob_spawn/corpse/human/tigercultist/perforatedTiger cultist corpse but with an exit wound
/obj/item/reagent_containers/cup/glass/bottle/ritual_wineA fun drink enjoyed by the tiger cooperative, might corrode your brain if you drink the whole bottle
/obj/structure/meateor_fluffAbstract holder object for shared behaviour
/obj/structure/meateor_fluff/flesh_podA sort of loot box for organs, cut it open and find a prize
/obj/structure/meateor_fluff/abandoned_headcrab_eggDecorative fluff egg object
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_fluff.html b/code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_fluff.html new file mode 100644 index 0000000000000..a8870035603ba --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_fluff.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_fluff.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_fluff.dm

/obj/item/paper/fluff/ruins/oldstationOldstation items
/obj/item/paper/fluff/ruins/oldstation/protosupermatterSupermatter crystal fluff paper used in Charlie station ruin
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_rnd.html b/code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_rnd.html new file mode 100644 index 0000000000000..5b087d4488592 --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_rnd.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_rnd.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_rnd.dm

/obj/machinery/computer/operating/oldstationAncient computer that starts with dissection to tell players they have it.
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/originalcontent.html b/code/modules/mapfluff/ruins/spaceruin_code/originalcontent.html new file mode 100644 index 0000000000000..2a98dc8235c79 --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/originalcontent.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/originalcontent.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/originalcontent.dm

/obj/item/paper/crumpled/ruins/originalcontentoriginalcontent items
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/spacehotel.html b/code/modules/mapfluff/ruins/spaceruin_code/spacehotel.html new file mode 100644 index 0000000000000..72ea81a0410da --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/spacehotel.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/spacehotel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/spacehotel.dm

/obj/item/paper/fluff/ruins/spacehotel/noticespacehotel items
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/the_Outlet.html b/code/modules/mapfluff/ruins/spaceruin_code/the_Outlet.html new file mode 100644 index 0000000000000..f18b1a5951c2b --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/the_Outlet.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/the_Outlet.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/the_Outlet.dm

/obj/item/paper/fluff/ruins/the_outlet/amos_notelore papers
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/waystation.html b/code/modules/mapfluff/ruins/spaceruin_code/waystation.html new file mode 100644 index 0000000000000..a1df7c46de9aa --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/waystation.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/waystation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/waystation.dm

/obj/item/paper/fluff/ruins/waystation/menuDorms Room Papers
/obj/item/paper/fluff/ruins/waystation/sopCargo Bay Paper
/obj/item/paper/fluff/ruins/waystation/memoVault Paper
/obj/item/disk/holodisk/ruin/waystationSyndicate Holodisk
\ No newline at end of file diff --git a/code/modules/mapfluff/ruins/spaceruin_code/whiteshipruin_box.html b/code/modules/mapfluff/ruins/spaceruin_code/whiteshipruin_box.html new file mode 100644 index 0000000000000..5bc017bb92a04 --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/whiteshipruin_box.html @@ -0,0 +1 @@ +code/modules/mapfluff/ruins/spaceruin_code/whiteshipruin_box.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapfluff/ruins/spaceruin_code/whiteshipruin_box.dm

/obj/item/circuitboard/computer/white_ship/ruinruined whiteship
\ No newline at end of file diff --git a/code/modules/mapping.html b/code/modules/mapping.html new file mode 100644 index 0000000000000..e8c514b03fe9d --- /dev/null +++ b/code/modules/mapping.html @@ -0,0 +1,53 @@ +code/modules/mapping/README.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapping/README.txt

The code in this module originally evolved from dmm_suite and has since been
+specialized for SS13 and otherwise tweaked to fit /tg/station's needs.
+
+dmm_suite version 1.0
+	Released January 30th, 2011.
+
+NOTE: Map saving functionality removed
+
+defines the object /dmm_suite
+	- Provides the proc load_map()
+		- Loads the specified map file onto the specified z-level.
+	- provides the proc write_map()
+		- Returns a text string of the map in dmm format
+			ready for output to a file.
+	- provides the proc save_map()
+		- Returns a .dmm file if map is saved
+		- Returns FALSE if map fails to save
+
+The dmm_suite provides saving and loading of map files in BYOND's native DMM map
+format. It approximates the map saving and loading processes of the Dream Maker
+and Dream Seeker programs so as to allow editing, saving, and loading of maps at
+runtime.
+
+------------------------
+
+To save a map at runtime, create an instance of /dmm_suite, and then call
+write_map(), which accepts three arguments:
+	- A turf representing one corner of a three dimensional grid (Required).
+	- Another turf representing the other corner of the same grid (Required).
+	- Any, or a combination, of several bit flags (Optional, see documentation).
+
+The order in which the turfs are supplied does not matter, the /dmm_writer will
+determine the grid containing both, in much the same way as DM's block() function.
+write_map() will then return a string representing the saved map in dmm format;
+this string can then be saved to a file, or used for any other purose.
+
+------------------------
+
+To load a map at runtime, create an instance of /dmm_suite, and then call load_map(),
+which accepts two arguments:
+	- A .dmm file to load (Required).
+	- A number representing the z-level on which to start loading the map (Optional).
+
+The /dmm_suite will load the map file starting on the specified z-level. If no
+z-level	was specified, world.maxz will be increased so as to fit the map. Note
+that if you wish to load a map onto a z-level that already has objects on it,
+you will have to handle the removal of those objects. Otherwise the new map will
+simply load the new objects on top of the old ones.
+
+Also note that all type paths specified in the .dmm file must exist in the world's
+code, and that the /dmm_reader trusts that files to be loaded are in fact valid
+.dmm files. Errors in the .dmm format will cause runtime errors.
+
\ No newline at end of file diff --git a/code/modules/mapping/mapping_helpers.html b/code/modules/mapping/mapping_helpers.html new file mode 100644 index 0000000000000..fd5599b1ea4fb --- /dev/null +++ b/code/modules/mapping/mapping_helpers.html @@ -0,0 +1 @@ +code/modules/mapping/mapping_helpers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapping/mapping_helpers.dm

/obj/effect/mapping_errorUsed for marking mapping errors. These should only be created by cases explicitly caught by unit tests, and should NEVER actually appear in production.
/obj/effect/mapping_helpers/atom_injectorHelpers used for injecting stuff into atoms on the map.
/obj/effect/mapping_helpers/atom_injector/component_injectorThis helper applies components to things on the map directly.
/obj/effect/mapping_helpers/atom_injector/element_injectorThis helper applies elements to things on the map directly.
/obj/effect/mapping_helpers/atom_injector/trait_injectorThis helper applies traits to things on the map directly.
/obj/effect/mapping_helpers/atom_injector/human_icon_injectorThis helper applies dynamic human icons to things on the map
/obj/effect/mapping_helpers/atom_injector/custom_iconFetches an external dmi and applies to the target object
/obj/effect/mapping_helpers/atom_injector/custom_soundFetches an external sound and applies to the target object
/obj/effect/mapping_helpers/trapdoor_placer
/obj/effect/mapping_helpers/broken_machineApplies BROKEN flag to the first found machine on a tile
/obj/effect/mapping_helpers/damaged_windowDeals random damage to the first window found on a tile to appear cracked
/obj/effect/mapping_helpers/bombable_wallApply to a wall (or floor, technically) to ensure it is instantly destroyed by any explosion, even if usually invulnerable
/obj/effect/mapping_helpers/mob_bucklerthis helper buckles all mobs on the tile to the first buckleable object
/obj/effect/mapping_helpers/basic_mob_flagsBasic mob flag helpers for things like deleting on death.
\ No newline at end of file diff --git a/code/modules/mapping/modular_map_loader.html b/code/modules/mapping/modular_map_loader.html new file mode 100644 index 0000000000000..56091e8062dbb --- /dev/null +++ b/code/modules/mapping/modular_map_loader.html @@ -0,0 +1,89 @@ +code/modules/mapping/modular_map_loader/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Modular Map Loader

Concept

+

Modular map loading is a system to allow maps to be generated with random variants by selecting from a set of pre-made modules. The system is designed to be as simple as possible for mappers to use, with a minimum of interaction with the code required.

+

Implementation

/obj/modular_map_root

+

This root object handled picking and loading in map modules. It has two variables, and one proc.

+
    +
  • var/config_file - A string, points to a TOML configuration file, which is used to hold the information necessary to pull the correct map files and place them on the correct roots. This will be the same for all roots on a map.
  • +
  • var/key - A string, used to pull a list of .dmm files from the configuration file.
  • +
  • load_map() - Called asynchronously in the root's Initialize(). This proc creates a new instance of /datum/map_template/map_module, ingests the configuration file config_file points to, and picks a .dmm file path which maps to the root's key, by picking a random filename from among those which key maps to, and appending it to a folder path. This file path is passed into the map templace instance's load(), and the template takes over.
  • +
+

INITIALIZE_IMMEDIATE is used to ensure the ruins are loaded at the right time to avoid runtime errors related to lighting.

+

/datum/map_template/map_module

+

This map templace subtype is responsible for loading in the module, it has two variables and two relevant procs.

+
    +
  • var/x_offset and var/y_offset - Integers, used to store the offsets used to correctly align the module when it is loaded.
  • +
  • load() - Extends the functionality of the general map template's load() to allow a map to be specified at runtime. This means preload_size() must be called again here as the template's map file has been changed. The origin turf for the map to be loaded from is set using the offsets, and the map is loaded as per the parent.
  • +
  • preload_size() - Extends the functionality of the general map template's preload_size() to run the discover_offset proc, calculating the offset of /obj/modular_map_connector and setting the offset variables accordingly.
  • +
+

/obj/modular_map_connector

+

This object is used only to determine the offsets to be used on loading, and has no other functionality.

+

TOML configuration

+

This TOML file is used to map between a list of .dmm files and a string key. The file consists of two parts. The first is a line

+
directory = "_maps/etc/"
+
+

which points at a folder containing the .dmm files of the modules used in the map. The second is a series of tables

+
[rooms.example]
+modules = ["example_1.dmm", "example_2.dmm"]
+
+

which contains the mapping between the key "example" and the list of filenames ["example_1.dmm", "example_2.dmm"].

+

/datum/unit_test/modular_map_loader

+

This is the unit test for modular map loading. It performs two checks on every subtype of /obj/modular_map_root. First it checks if the file config_file points at, and if it does not the test is failed because the file does not exist. If it does exist, it then attempts to read the file, if this is null it means the fild is not valid TOML, and the test is failed because the TOML file is invalid.

+

How-To

+

This section will cover the basics of how to use map modules as a mapper. If you want a concrete example to look at, the space ruin _maps/RandomRuins/SpaceRuins/DJstation.dmm and its associated code, configuration and modules employ all the techniques covered in this tutorial.

+

The Main Map

+

First we need to create a map, as we usually would. Let's say we want to create a new space ruin foobar.dmm, and we put it in the appropriate folder as usual, _maps/RandomRuins/SpaceRuins/foobar.dmm. We now need to create three more things.

+
    +
  • code/modules/ruins/spaceruin_code/foobar.dm - A code file like would be used to store any code specific to this map.
  • +
  • strings/modular_maps/foobar.toml- A configuration file, this will be looked at in more detail later.
  • +
  • _maps/RandomRuins/SpaceRuins/foobar/ - A new subfolder, which is where we will put the .dmm files for the modules.
  • +
+

In code/modules/ruins/spaceruin_code/foobar.dm we need to add a small piece of code to define a new modular map root type for our map, which should look like this

+
/obj/modular_map_root/foobar
+	config_file = "strings/modular_maps/foobar.toml"
+
+

This means when we place root objects /obj/modular_map_root in our new map, we use this subtype that points to the correct configuration file.

+

When creating our main map, we place one of these roots in the location we want to generate a module at. Typically this would be placed at a natural landmark, such as a doorway. We then edit the varaibles of the placed root object, and set the key var to some string, let's use key = vault. Make the rest of the map, ensuring that every root you want to use a unique set of modules has a unique key.

+

Module Maps

+

Now we need to make the modules to be placed on our roots. These will be saved in the folder we created earlier, _maps/RandomRuins/SpaceRuins/foobar/. Modules do not have to be the same size, so long as all modules will fit properly on the root without running into other parts of the map.

+

When making a module, you need to include a connector object /obj/modular_map_connector. When the module is loaded, it will be offset so this connector is placed on top of the root on the main map.

+

We will be making the first variant of our vault module, so we save this as vault_1.dmm, following the format [key]_[number].dmm. Keep doing this until all your modules have been made.

+

If you wish, you can also place another root on a module, if for some reason that module's position is dependent on the current one. IF you do this, make sure you've placed a root with the same key on every variant of the current module (unless you only want it to appear on certain varaints of this one.)

+

Configuration

+

Now we go back to our configuration file strings/modular_maps/foobar.toml. Say we ended up using three different sets of modules in our map, vault, airlock and bathroom, each of which have two variants. We want our .toml file to look like this

+
directory = "_maps/RandomRuins/SpaceRuins/foobar/"
+
+[rooms.vault]
+modules = ["vault_1.dmm", "vault_2.dmm"]
+
+[rooms.airlock]
+modules = ["airlock_1.dmm", "airlock_2.dmm"]
+
+[rooms.bathroom]
+modules = ["bathroom_1.dmm", "bathroom_2.dmm"]
+
+

Let's break down what is happening here.

+

directory = "_maps/RandomRuins/SpaceRuins/foobar/" points to the folder where our modules are stored.

+

[rooms.vault] identifies the following line as being the modules for a root with key = vault.

+

modules = ["vault_1.dmm", "vault_2.dmm"] specifies which map files within the folder are to be associated with this key.

+

Once this configuration is done, the map should be fully functional. Compile and run, place your map somewhere, and continue doing this until you have satisfied yourself that everything looks how you expected it to. Remember to do everything else you need to do when adding any new ruin, or whatever kind of map you made.

+

Common Mistakes

+
+

My map has modules that didn't load!

+
+

Check your configuration is correct. Do the filenames given for the problem root match the names of the map files? Is the key specified in the configuration file the same as the one on the root in the map?

+
+

A module is loading in the wrong location!

+
+

Check the positioning of the connector is correct, and that only one is placed on the module.

+
+

My ruin is spawning too close to or overlapping with something!

+
+

Make sure your main map is large enough to fully contain the most expansive variation that can possibly be chosen.

+
+

Parts of my map are overlapping with each other!

+
+

Make sure modules placed adjacent or close to each other have no combination of variants which can overlap with each other, this may take some trial and error in complicated cases.

+
+

My map still isn't working and I don't know what's wrong!

+
+

Ping Thunder12345#9999 in the #coding-general channel of our discord if you need help with any problems.

\ No newline at end of file diff --git a/code/modules/mapping/preloader.html b/code/modules/mapping/preloader.html new file mode 100644 index 0000000000000..7f306664f2c37 --- /dev/null +++ b/code/modules/mapping/preloader.html @@ -0,0 +1,3 @@ +code/modules/mapping/preloader.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapping/preloader.dm

/datum/map_preloaderPreloader datum
/area/template_noopTemplate noop (no operation) is used to skip a turf or area when the template is loaded this allows for template transparency +ex. if a ship has gaps in its design, you would use template_noop to fill these in so that when the ship moves z-level, any +tiles these gaps land on will not be deleted and replaced with the ships (empty) tiles
/turf/template_noopSee above explanation
\ No newline at end of file diff --git a/code/modules/mapping/reader.html b/code/modules/mapping/reader.html new file mode 100644 index 0000000000000..5970b81a16edc --- /dev/null +++ b/code/modules/mapping/reader.html @@ -0,0 +1,44 @@ +code/modules/mapping/reader.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mapping/reader.dm

MAP_DMMDMM SPEC: +DMM is split into two parts. First we have strings of text linked to lists of paths and their modifications (I will call this the cache) +We call these strings "keys" and the things they point to members. Keys have a static length
MAP_TGMTGM SPEC: +TGM is a derevation of DMM, with restrictions placed on it +to make it easier to parse and to reduce merge conflicts/ease their resolution
/proc/load_mapHelper and recommened way to load a map file

Define Details

MAP_DMM

DMM SPEC: +DMM is split into two parts. First we have strings of text linked to lists of paths and their modifications (I will call this the cache) +We call these strings "keys" and the things they point to members. Keys have a static length

+

The second part is a list of locations matched to a string of keys. (I'll be calling this the grid) +These are used to lookup the cache we built earlier. +We store location lists as grid_sets. the lines represent different things depending on the spec

+

In standard DMM (which you can treat as the base case, since it also covers weird modifications) each line +represents an x file, and there's typically only one grid set per z level. +The meme is you can look at a DMM formatted map and literally see what it should roughly look like +This differs in TGM, and we can pull some performance from this

+

Any restrictions here also apply to TGM

+

/tg/ Restrictions: +Paths have a specified order. First atoms in the order in which they should be loaded, then a single turf, then the area of the cell +DMM technically supports turf stacking, but this is deprecated for all formats

MAP_TGM

TGM SPEC: +TGM is a derevation of DMM, with restrictions placed on it +to make it easier to parse and to reduce merge conflicts/ease their resolution

+

Requirements: +Each "statement" in a key's details ends with a new line, and wrapped in (...) +All paths end with either a comma or occasionally a {, then a new line +Excepting the area, who is listed last and ends with a ) to mark the end of the key

+

{} denotes a list of variable edits applied to the path that came before the first { +the final } is followed by a comma, and then a new line +Variable edits have the form \tname = value;\n +Except the last edit, which has no final ;, and just ends in a newline +No extra padding is permitted +Many values are supported. See parse_constant() +Strings must be wrapped in "...", files in '...', and lists in list(...) +Files are kinda susy, and may not actually work. buyer beware +Lists support assoc values as expected +These constants can be further embedded into lists

+

There can be no padding in front of, or behind a path

+

Therefore: +"key" = ( +/path, +/other/path{ +var = list("name" = 'filepath'); +other_var = /path +}, +/turf, +/area)

\ No newline at end of file diff --git a/code/modules/mapping/ruins.html b/code/modules/mapping/ruins.html new file mode 100644 index 0000000000000..f45ee2be8e566 --- /dev/null +++ b/code/modules/mapping/ruins.html @@ -0,0 +1,8 @@ +code/modules/mapping/ruins.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapping/ruins.dm

/proc/seedRuinsLoads the ruins for a given z level. +@param z_levels The z levels to load ruins on. +@param budget The budget to spend on ruins. Compare against the cost of the ruins in /datum/map_template/ruin. +@param whitelist A list of areas to allow ruins to be placed in. +@param potentialRuins A list of ruins to choose from. +@param clear_below Whether to clear the area below the ruin. Used for multiz ruins. +@param mineral_budget The budget to spend on ruins that spawn ore vents. Map templates with vents have that defined by mineral_cost. +@param mineral_budget_update What type of ore distribution should spawn from ruins picked by this cave generator? This list is copied from ores_spawned.dm into SSore_generation.ore_vent_minerals.
\ No newline at end of file diff --git a/code/modules/mapping/verify.html b/code/modules/mapping/verify.html new file mode 100644 index 0000000000000..59a737bf4336b --- /dev/null +++ b/code/modules/mapping/verify.html @@ -0,0 +1 @@ +code/modules/mapping/verify.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mapping/verify.dm

/datum/map_reportAn error report generated by /datum/parsed_map/proc/check_for_errors.
\ No newline at end of file diff --git a/code/modules/meteors/meteor_dark_matteor.html b/code/modules/meteors/meteor_dark_matteor.html new file mode 100644 index 0000000000000..2844934545646 --- /dev/null +++ b/code/modules/meteors/meteor_dark_matteor.html @@ -0,0 +1 @@ +code/modules/meteors/meteor_dark_matteor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/meteors/meteor_dark_matteor.dm

/obj/effect/meteor/dark_matteorThe dark matt-eor. Only attracted by emagging 10 satellites and maximizing meteor chances, and it drops a singulo. Otherwise, it's not that bad.
\ No newline at end of file diff --git a/code/modules/meteors/meteor_spawning.html b/code/modules/meteors/meteor_spawning.html new file mode 100644 index 0000000000000..221ccc840f88b --- /dev/null +++ b/code/modules/meteors/meteor_spawning.html @@ -0,0 +1 @@ +code/modules/meteors/meteor_spawning.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/meteors/meteor_spawning.dm

/proc/generate_changeling_meteorReceives a mob candidate, transforms them into a changeling, and hurls them at the station inside of a changeling meteor
\ No newline at end of file diff --git a/code/modules/mining/aux_base.html b/code/modules/mining/aux_base.html new file mode 100644 index 0000000000000..f26687dedb22f --- /dev/null +++ b/code/modules/mining/aux_base.html @@ -0,0 +1 @@ +code/modules/mining/aux_base.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mining/aux_base.dm

ZONE_SETMining Base

Define Details

ZONE_SET

Mining Base

\ No newline at end of file diff --git a/code/modules/mining/boulder_processing/beacon.html b/code/modules/mining/boulder_processing/beacon.html new file mode 100644 index 0000000000000..14c81e84b7e31 --- /dev/null +++ b/code/modules/mining/boulder_processing/beacon.html @@ -0,0 +1 @@ +code/modules/mining/boulder_processing/beacon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/boulder_processing/beacon.dm

/obj/item/boulder_beaconBeacon to launch a new mining setup when activated. For testing and speed!
\ No newline at end of file diff --git a/code/modules/mining/boulder_processing/boulder.html b/code/modules/mining/boulder_processing/boulder.html new file mode 100644 index 0000000000000..bdd02bdaa94a9 --- /dev/null +++ b/code/modules/mining/boulder_processing/boulder.html @@ -0,0 +1 @@ +code/modules/mining/boulder_processing/boulder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/boulder_processing/boulder.dm

/obj/item/boulderThe objects that ore vents produce, which is refined into minerals.
\ No newline at end of file diff --git a/code/modules/mining/boulder_processing/boulder_types.html b/code/modules/mining/boulder_processing/boulder_types.html new file mode 100644 index 0000000000000..19b8af883681b --- /dev/null +++ b/code/modules/mining/boulder_processing/boulder_types.html @@ -0,0 +1 @@ +code/modules/mining/boulder_processing/boulder_types.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/boulder_processing/boulder_types.dm

/obj/item/boulder/artifactBoulders with special artificats that can give higher mining points
/obj/item/boulder/gulagBoulders usually spawned in lavaland labour camp area
/obj/item/boulder/gulag_expandedBoulders usually spawned in lavaland labour camp area but with bluespace material
/obj/item/boulder/shabbylowgrade boulder, most commonly spawned
\ No newline at end of file diff --git a/code/modules/mining/boulder_processing/brm.html b/code/modules/mining/boulder_processing/brm.html new file mode 100644 index 0000000000000..2009f6785e743 --- /dev/null +++ b/code/modules/mining/boulder_processing/brm.html @@ -0,0 +1 @@ +code/modules/mining/boulder_processing/brm.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mining/boulder_processing/brm.dm

MANUAL_TELEPORT_SOUNDSound played when boulders are teleported manually by hand
AUTO_TELEPORT_SOUNDSound played when boulders are teleported automatically in process()
TELEPORTATION_TIMETime taken to spawn a boulder, also the cooldown applied before the next manual teleportation
BATCH_COOLDOWNCooldown for automatic teleportation after processing boulders_processing_max number of boulders
TURF_BLOCKED_BY_BOULDERSpecial case when we are trying to teleport a boulder but there is already another boulder in our loc

Define Details

AUTO_TELEPORT_SOUND

Sound played when boulders are teleported automatically in process()

BATCH_COOLDOWN

Cooldown for automatic teleportation after processing boulders_processing_max number of boulders

MANUAL_TELEPORT_SOUND

Sound played when boulders are teleported manually by hand

TELEPORTATION_TIME

Time taken to spawn a boulder, also the cooldown applied before the next manual teleportation

TURF_BLOCKED_BY_BOULDER

Special case when we are trying to teleport a boulder but there is already another boulder in our loc

\ No newline at end of file diff --git a/code/modules/mining/boulder_processing/refinery.html b/code/modules/mining/boulder_processing/refinery.html new file mode 100644 index 0000000000000..fd8ac3f09e948 --- /dev/null +++ b/code/modules/mining/boulder_processing/refinery.html @@ -0,0 +1,5 @@ +code/modules/mining/boulder_processing/refinery.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/boulder_processing/refinery.dm

/obj/machinery/bouldertech/refineryYour new favorite industrial waste magnet! +Accepts boulders and produces sheets of non-metalic materials. +When upgraded, it can hold more boulders and process more at once.
/obj/machinery/bouldertech/refinery/smelterYour other new favorite industrial waste magnet! +Accepts boulders and produces sheets of metalic materials. +When upgraded, it can hold more boulders and process more at once.
\ No newline at end of file diff --git a/code/modules/mining/equipment/explorer_gear.html b/code/modules/mining/equipment/explorer_gear.html new file mode 100644 index 0000000000000..6a7cf78e8d5e6 --- /dev/null +++ b/code/modules/mining/equipment/explorer_gear.html @@ -0,0 +1 @@ +code/modules/mining/equipment/explorer_gear.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/equipment/explorer_gear.dm

/obj/item/clothing/suit/hooded/explorerExplorer's Suit and Mask
\ No newline at end of file diff --git a/code/modules/mining/equipment/kheiral_cuffs.html b/code/modules/mining/equipment/kheiral_cuffs.html new file mode 100644 index 0000000000000..65e4621690245 --- /dev/null +++ b/code/modules/mining/equipment/kheiral_cuffs.html @@ -0,0 +1,2 @@ +code/modules/mining/equipment/kheiral_cuffs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/equipment/kheiral_cuffs.dm

/obj/item/kheiral_cuffsKheiral Cuffs +Acts as a GPS beacon & connects to station crew monitors from lavaland
\ No newline at end of file diff --git a/code/modules/mining/equipment/lazarus_injector.html b/code/modules/mining/equipment/lazarus_injector.html new file mode 100644 index 0000000000000..0c1d62750bc81 --- /dev/null +++ b/code/modules/mining/equipment/lazarus_injector.html @@ -0,0 +1 @@ +code/modules/mining/equipment/lazarus_injector.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/equipment/lazarus_injector.dm

/obj/item/lazarus_injectorPlayers can revive simplemobs with this.
\ No newline at end of file diff --git a/code/modules/mining/equipment/mineral_scanner.html b/code/modules/mining/equipment/mineral_scanner.html new file mode 100644 index 0000000000000..a34f66e1f023c --- /dev/null +++ b/code/modules/mining/equipment/mineral_scanner.html @@ -0,0 +1 @@ +code/modules/mining/equipment/mineral_scanner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/equipment/mineral_scanner.dm

/obj/item/mining_scannerMining Scanners
\ No newline at end of file diff --git a/code/modules/mining/equipment/mining_tools.html b/code/modules/mining/equipment/mining_tools.html new file mode 100644 index 0000000000000..4a3f0e0d7ed88 --- /dev/null +++ b/code/modules/mining/equipment/mining_tools.html @@ -0,0 +1 @@ +code/modules/mining/equipment/mining_tools.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/equipment/mining_tools.dm

/obj/item/pickaxePickaxes & Drills & Shovels
\ No newline at end of file diff --git a/code/modules/mining/equipment/miningradio.html b/code/modules/mining/equipment/miningradio.html new file mode 100644 index 0000000000000..9b40df3c14d03 --- /dev/null +++ b/code/modules/mining/equipment/miningradio.html @@ -0,0 +1 @@ +code/modules/mining/equipment/miningradio.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/equipment/miningradio.dm

/obj/item/radio/weather_monitorPortable mining radio purchasable by miners
\ No newline at end of file diff --git a/code/modules/mining/equipment/monster_organs/brimdust_sac.html b/code/modules/mining/equipment/monster_organs/brimdust_sac.html new file mode 100644 index 0000000000000..eebb95ae5ae22 --- /dev/null +++ b/code/modules/mining/equipment/monster_organs/brimdust_sac.html @@ -0,0 +1,6 @@ +code/modules/mining/equipment/monster_organs/brimdust_sac.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mining/equipment/monster_organs/brimdust_sac.dm

BRIMDUST_LIFE_APPLY_COOLDOWNInterval between passively gaining stacks on lavaland if organ is implanted
BRIMDUST_STACKS_ON_LIFENumber of stacks to add over time
BRIMDUST_STACKS_ON_USENumber of stacks to add if you activate the item in hand
/obj/item/organ/internal/monster_core/brimdust_sacGives you three stacks of Brimdust Coating, when you get hit by anything it will make a short ranged explosion. +If this happens on the station it does much less damage, and slows down the bearer. +If implanted, you can shake off a cloud of brimdust to give this buff to people around you.area +It will also automatically grant you one stack every 30 seconds if you are on lavaland.
/obj/effect/particle_effect/fluid/smoke/bad/brimdustSmoke which applies brimdust to you, and is also bad for your lungs
/datum/status_effect/stacking/brimdust_coatingIf you take brute damage with this buff, hurt and push everyone next to you. +If you catch fire and or on the space station, detonate all remaining stacks in a way which hurts you. +Washes off if you get wet.
/datum/status_effect/brimdust_concussionSlowdown applied when you are detonated on the space station
/datum/action/cooldown/monster_core_action/exhale_brimdustAction used by the brimdust sac

Define Details

BRIMDUST_LIFE_APPLY_COOLDOWN

Interval between passively gaining stacks on lavaland if organ is implanted

BRIMDUST_STACKS_ON_LIFE

Number of stacks to add over time

BRIMDUST_STACKS_ON_USE

Number of stacks to add if you activate the item in hand

\ No newline at end of file diff --git a/code/modules/mining/equipment/monster_organs/monster_organ.html b/code/modules/mining/equipment/monster_organs/monster_organ.html new file mode 100644 index 0000000000000..7f75c5accdf32 --- /dev/null +++ b/code/modules/mining/equipment/monster_organs/monster_organ.html @@ -0,0 +1,4 @@ +code/modules/mining/equipment/monster_organs/monster_organ.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/equipment/monster_organs/monster_organ.dm

/obj/item/mining_stabilizerStabilising serum prevents monster organs from decaying before you can use them.
/obj/item/organ/internal/monster_coreUseful organs which drop as loot from a mining creature. +Generalised behaviour is that they will decay and become useless unless provided with serum. +These should usually do something both when used in-hand, or when implanted into someone.
/datum/action/cooldown/monster_core_actionBoilerplate to set the name and icon of the cooldown action. +Makes it call 'ui_action_click' when the action is activated.
\ No newline at end of file diff --git a/code/modules/mining/equipment/monster_organs/regenerative_core.html b/code/modules/mining/equipment/monster_organs/regenerative_core.html new file mode 100644 index 0000000000000..a9e42509d5d26 --- /dev/null +++ b/code/modules/mining/equipment/monster_organs/regenerative_core.html @@ -0,0 +1,2 @@ +code/modules/mining/equipment/monster_organs/regenerative_core.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/equipment/monster_organs/regenerative_core.dm

/obj/item/organ/internal/monster_core/regenerative_coreOn use in hand, heals you over time and removes injury movement debuffs. Also makes you a bit sad. +On use when implanted, fully heals. Automatically fully heals if you would enter crit.
/obj/item/organ/internal/monster_core/regenerative_core/legionDifferent graphics/desc for the lavaland legion
/datum/action/cooldown/monster_core_action/regenerative_coreAction used by the regenerative core
\ No newline at end of file diff --git a/code/modules/mining/equipment/monster_organs/rush_gland.html b/code/modules/mining/equipment/monster_organs/rush_gland.html new file mode 100644 index 0000000000000..a01016fd2e6ce --- /dev/null +++ b/code/modules/mining/equipment/monster_organs/rush_gland.html @@ -0,0 +1,4 @@ +code/modules/mining/equipment/monster_organs/rush_gland.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mining/equipment/monster_organs/rush_gland.dm

HEALTH_DANGER_ZONEHealth under which implanted gland will automatically activate
/obj/item/organ/internal/monster_core/rush_glandOn use in hand, makes you run really fast for 5 seconds and ignore injury movement decrease. +On use when implanted, run for longer and ignore all negative movement. Automatically triggers if health is low (to escape).
/datum/status_effect/lobster_rushStatus effect: Makes you run really fast and ignore speed penalties for a short duration. +If you run into a wall indoors you will fall over and lose the buff. +If you run into someone you both fall over.
/datum/status_effect/lobster_rush/extendedYou get a longer buff if you take the time to implant it in yourself
/datum/action/cooldown/monster_core_action/adrenal_boostAction used by the rush gland

Define Details

HEALTH_DANGER_ZONE

Health under which implanted gland will automatically activate

\ No newline at end of file diff --git a/code/modules/mining/equipment/resonator.html b/code/modules/mining/equipment/resonator.html new file mode 100644 index 0000000000000..758e897230182 --- /dev/null +++ b/code/modules/mining/equipment/resonator.html @@ -0,0 +1 @@ +code/modules/mining/equipment/resonator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/equipment/resonator.dm

/obj/item/resonatorResonator
\ No newline at end of file diff --git a/code/modules/mining/equipment/survival_pod.html b/code/modules/mining/equipment/survival_pod.html new file mode 100644 index 0000000000000..8e37d14fd167d --- /dev/null +++ b/code/modules/mining/equipment/survival_pod.html @@ -0,0 +1 @@ +code/modules/mining/equipment/survival_pod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/equipment/survival_pod.dm

/area/misc/survivalpodSurvival Pod
\ No newline at end of file diff --git a/code/modules/mining/equipment/wormhole_jaunter.html b/code/modules/mining/equipment/wormhole_jaunter.html new file mode 100644 index 0000000000000..8231979071586 --- /dev/null +++ b/code/modules/mining/equipment/wormhole_jaunter.html @@ -0,0 +1 @@ +code/modules/mining/equipment/wormhole_jaunter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/equipment/wormhole_jaunter.dm

/obj/item/wormhole_jaunterJaunter
\ No newline at end of file diff --git a/code/modules/mining/laborcamp/laborstacker.html b/code/modules/mining/laborcamp/laborstacker.html new file mode 100644 index 0000000000000..11f40bdd4bf1d --- /dev/null +++ b/code/modules/mining/laborcamp/laborstacker.html @@ -0,0 +1 @@ +code/modules/mining/laborcamp/laborstacker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/laborcamp/laborstacker.dm

/obj/machinery/mineral/labor_claim_consolePrisoners' Console
/obj/machinery/mineral/stacking_machine/laborstackerPrisoner Collection Unit
/obj/machinery/mineral/labor_points_checkerPoint Lookup Console
\ No newline at end of file diff --git a/code/modules/mining/lavaland/ash_flora.html b/code/modules/mining/lavaland/ash_flora.html new file mode 100644 index 0000000000000..a530458c7ea34 --- /dev/null +++ b/code/modules/mining/lavaland/ash_flora.html @@ -0,0 +1 @@ +code/modules/mining/lavaland/ash_flora.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/lavaland/ash_flora.dm

/obj/structure/flora/ash/chillySnow flora to exist on icebox.
/obj/item/seeds/star_cactusStar Cactus seeds, mutation of lavaland cactus.
/obj/item/food/grown/star_cactusStar Cactus Plants.
\ No newline at end of file diff --git a/code/modules/mining/machine_processing.html b/code/modules/mining/machine_processing.html new file mode 100644 index 0000000000000..452a353ff260b --- /dev/null +++ b/code/modules/mining/machine_processing.html @@ -0,0 +1 @@ +code/modules/mining/machine_processing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mining/machine_processing.dm

SMELT_AMOUNTSmelt amount per second
/obj/machinery/mineralMineral processing unit console
/obj/machinery/mineral/processing_unitMineral processing unit
/obj/machinery/mineral/processing_unit/gulagOnly accepts ore, for the work camp

Define Details

SMELT_AMOUNT

Smelt amount per second

\ No newline at end of file diff --git a/code/modules/mining/machine_redemption.html b/code/modules/mining/machine_redemption.html new file mode 100644 index 0000000000000..5eedfb09ec7c9 --- /dev/null +++ b/code/modules/mining/machine_redemption.html @@ -0,0 +1 @@ +code/modules/mining/machine_redemption.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/machine_redemption.dm

/obj/machinery/mineral/ore_redemptionOre Redemption Unit (ORM)
\ No newline at end of file diff --git a/code/modules/mining/machine_silo.html b/code/modules/mining/machine_silo.html new file mode 100644 index 0000000000000..f8dbd7e46eb07 --- /dev/null +++ b/code/modules/mining/machine_silo.html @@ -0,0 +1 @@ +code/modules/mining/machine_silo.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/machine_silo.dm

/datum/ore_silo_logThe log entry for an ore silo action
\ No newline at end of file diff --git a/code/modules/mining/machine_stacking.html b/code/modules/mining/machine_stacking.html new file mode 100644 index 0000000000000..8b7341b4f2946 --- /dev/null +++ b/code/modules/mining/machine_stacking.html @@ -0,0 +1 @@ +code/modules/mining/machine_stacking.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/machine_stacking.dm

/obj/machinery/mineral/stacking_unit_consoleMineral stacking unit console
/obj/machinery/mineral/stacking_machineMineral stacking unit
\ No newline at end of file diff --git a/code/modules/mining/machine_unloading.html b/code/modules/mining/machine_unloading.html new file mode 100644 index 0000000000000..479d7fb53971b --- /dev/null +++ b/code/modules/mining/machine_unloading.html @@ -0,0 +1 @@ +code/modules/mining/machine_unloading.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/machine_unloading.dm

/obj/machinery/mineral/unloading_machineUnloading unit
\ No newline at end of file diff --git a/code/modules/mining/mine_items.html b/code/modules/mining/mine_items.html new file mode 100644 index 0000000000000..7cc83698259a3 --- /dev/null +++ b/code/modules/mining/mine_items.html @@ -0,0 +1 @@ +code/modules/mining/mine_items.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/mine_items.dm

/obj/effect/light_emitterLight
/obj/structure/closet/wardrobe/minerMiner Lockers
/obj/machinery/computer/shuttle/miningShuttle Computer
\ No newline at end of file diff --git a/code/modules/mining/money_bag.html b/code/modules/mining/money_bag.html new file mode 100644 index 0000000000000..d1554eccd1c33 --- /dev/null +++ b/code/modules/mining/money_bag.html @@ -0,0 +1 @@ +code/modules/mining/money_bag.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/money_bag.dm

/obj/item/storage/bag/moneyMoney bag
\ No newline at end of file diff --git a/code/modules/mining/ores_coins.html b/code/modules/mining/ores_coins.html new file mode 100644 index 0000000000000..a07ea3a0095af --- /dev/null +++ b/code/modules/mining/ores_coins.html @@ -0,0 +1 @@ +code/modules/mining/ores_coins.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/ores_coins.dm

/obj/item/stack/oreMineral ores
/obj/item/coinCoin
/obj/item/coin/silver/doubloonCoins used in the dutchmen money bag.
\ No newline at end of file diff --git a/code/modules/mining/satchel_ore_box.html b/code/modules/mining/satchel_ore_box.html new file mode 100644 index 0000000000000..9f00450166da1 --- /dev/null +++ b/code/modules/mining/satchel_ore_box.html @@ -0,0 +1 @@ +code/modules/mining/satchel_ore_box.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/satchel_ore_box.dm

/obj/structure/ore_boxOre box
\ No newline at end of file diff --git a/code/modules/mining/voucher_sets.html b/code/modules/mining/voucher_sets.html new file mode 100644 index 0000000000000..e4f145ca4c7af --- /dev/null +++ b/code/modules/mining/voucher_sets.html @@ -0,0 +1 @@ +code/modules/mining/voucher_sets.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mining/voucher_sets.dm

/datum/voucher_setA set consisting of a various equipment that can be then used as a reward for redeeming a mining voucher.
\ No newline at end of file diff --git a/code/modules/mob/dead/new_player/new_player.html b/code/modules/mob/dead/new_player/new_player.html new file mode 100644 index 0000000000000..ab42519b749c0 --- /dev/null +++ b/code/modules/mob/dead/new_player/new_player.html @@ -0,0 +1 @@ +code/modules/mob/dead/new_player/new_player.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/dead/new_player/new_player.dm

RESET_HUD_INTERVALCooldown for the Reset Lobby Menu HUD verb

Define Details

RESET_HUD_INTERVAL

Cooldown for the Reset Lobby Menu HUD verb

\ No newline at end of file diff --git a/code/modules/mob/emote.html b/code/modules/mob/emote.html new file mode 100644 index 0000000000000..8216415cc8567 --- /dev/null +++ b/code/modules/mob/emote.html @@ -0,0 +1 @@ +code/modules/mob/emote.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/emote.dm

BEYBLADE_PUKE_THRESHOLDHow confused a carbon must be before they will vomit
BEYBLADE_PUKE_NUTRIENT_LOSSHow must nutrition is lost when a carbon pukes
BEYBLADE_DIZZINESS_PROBABILITYHow often a carbon becomes penalized
BEYBLADE_DIZZINESS_DURATIONHow long the screenshake lasts
BEYBLADE_CONFUSION_INCREMENTHow much confusion a carbon gets every time they are penalized
BEYBLADE_CONFUSION_LIMITA max for how much confusion a carbon will be for beyblading

Define Details

BEYBLADE_CONFUSION_INCREMENT

How much confusion a carbon gets every time they are penalized

BEYBLADE_CONFUSION_LIMIT

A max for how much confusion a carbon will be for beyblading

BEYBLADE_DIZZINESS_DURATION

How long the screenshake lasts

BEYBLADE_DIZZINESS_PROBABILITY

How often a carbon becomes penalized

BEYBLADE_PUKE_NUTRIENT_LOSS

How must nutrition is lost when a carbon pukes

BEYBLADE_PUKE_THRESHOLD

How confused a carbon must be before they will vomit

\ No newline at end of file diff --git a/code/modules/mob/living/basic/alien/alien_ai.html b/code/modules/mob/living/basic/alien/alien_ai.html new file mode 100644 index 0000000000000..a360395019d21 --- /dev/null +++ b/code/modules/mob/living/basic/alien/alien_ai.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/alien/alien_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/alien/alien_ai.dm

/datum/ai_planning_subtree/basic_ranged_attack_subtree/alienAlien projectile +Try to avoid friendly fire, and has a 3 second delay.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/alien/maid.html b/code/modules/mob/living/basic/alien/maid.html new file mode 100644 index 0000000000000..0ce807c3e1201 --- /dev/null +++ b/code/modules/mob/living/basic/alien/maid.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/alien/maid.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/alien/maid.dm

/mob/living/basic/alien/maid/barmaidBarmaid special type +Spawns on emergency shuttles, has access to them and godmode while inside of them.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/basic.html b/code/modules/mob/living/basic/basic.html new file mode 100644 index 0000000000000..ce4cff4d29091 --- /dev/null +++ b/code/modules/mob/living/basic/basic.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/basic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/basic.dm

/mob/living/basicSimple animals 2.0, This time, let's really try to keep it simple. This basetype should purely be used as a base-level for implementing simplified behaviours for things such as damage and attacks. Everything else should be in components or AI behaviours.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/blob_minions/blob_ai.html b/code/modules/mob/living/basic/blob_minions/blob_ai.html new file mode 100644 index 0000000000000..dbfc32d9eb090 --- /dev/null +++ b/code/modules/mob/living/basic/blob_minions/blob_ai.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/blob_minions/blob_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/blob_minions/blob_ai.dm

/datum/ai_controller/basic_controller/blobbernautExtremely simple AI, this isn't a very smart boy +Only notable quirk is that it uses JPS movement, simple avoidance would fail to realise it can path through blobs
/datum/ai_controller/basic_controller/blob_zombieMove to a point designated by the overmind, otherwise just slap people nearby
/datum/ai_controller/basic_controller/blob_sporeAs blob zombie but will prioritise attacking corpses to zombify them
\ No newline at end of file diff --git a/code/modules/mob/living/basic/blob_minions/blob_mob.html b/code/modules/mob/living/basic/blob_minions/blob_mob.html new file mode 100644 index 0000000000000..aaf34085c040f --- /dev/null +++ b/code/modules/mob/living/basic/blob_minions/blob_mob.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/blob_minions/blob_mob.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/blob_minions/blob_mob.dm

/mob/living/basic/blob_minionRoot of shared behaviour for mobs spawned by blobs, is abstract and should not be spawned
\ No newline at end of file diff --git a/code/modules/mob/living/basic/blob_minions/blob_spore.html b/code/modules/mob/living/basic/blob_minions/blob_spore.html new file mode 100644 index 0000000000000..76eb821d2df63 --- /dev/null +++ b/code/modules/mob/living/basic/blob_minions/blob_spore.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/blob_minions/blob_spore.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/blob_minions/blob_spore.dm

/mob/living/basic/blob_minion/sporeA floating fungus which turns people into zombies and explodes into reagent clouds upon death.
/mob/living/basic/blob_minion/spore/minionVariant of the blob spore which is actually spawned by blob factories
/mob/living/basic/blob_minion/spore/minion/weakWeakened spore spawned by distributed neurons, can't zombify people and makes a teeny explosion
\ No newline at end of file diff --git a/code/modules/mob/living/basic/blob_minions/blob_zombie.html b/code/modules/mob/living/basic/blob_minions/blob_zombie.html new file mode 100644 index 0000000000000..5b49ecd9675a4 --- /dev/null +++ b/code/modules/mob/living/basic/blob_minions/blob_zombie.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/blob_minions/blob_zombie.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/blob_minions/blob_zombie.dm

/mob/living/basic/blob_minion/zombieA shambling mob made out of a crew member
/mob/living/basic/blob_minion/zombie/controlledBlob-created zombies will ping for player control when they make a zombie
\ No newline at end of file diff --git a/code/modules/mob/living/basic/blob_minions/blobbernaut.html b/code/modules/mob/living/basic/blob_minions/blobbernaut.html new file mode 100644 index 0000000000000..9f5dbafde8b34 --- /dev/null +++ b/code/modules/mob/living/basic/blob_minions/blobbernaut.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/blob_minions/blobbernaut.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/blob_minions/blobbernaut.dm

/mob/living/basic/blob_minion/blobbernautPlayer-piloted brute mob. Mostly just a "move and click" kind of guy. +Has a variant which takes damage when away from blob tiles
/mob/living/basic/blob_minion/blobbernaut/minionThis variant is the one actually spawned by blob factories, takes damage when away from blob tiles
\ No newline at end of file diff --git a/code/modules/mob/living/basic/bots/bot_ai.html b/code/modules/mob/living/basic/bots/bot_ai.html new file mode 100644 index 0000000000000..b16a087dfc00b --- /dev/null +++ b/code/modules/mob/living/basic/bots/bot_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/bots/bot_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/bots/bot_ai.dm

/datum/ai_planning_subtree/manage_unreachable_listsubtree to manage our list of unreachables, we reset it every 15 seconds
/datum/ai_behavior/bot_speechbehavior to make our bot talk
\ No newline at end of file diff --git a/code/modules/mob/living/basic/bots/dedbot.html b/code/modules/mob/living/basic/bots/dedbot.html new file mode 100644 index 0000000000000..e524c0b4534a6 --- /dev/null +++ b/code/modules/mob/living/basic/bots/dedbot.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/bots/dedbot.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/basic/bots/dedbot.dm

SPIN_SLASH_ABILITY_TYPEPATHDonk Exenteration Drone - DED

Define Details

SPIN_SLASH_ABILITY_TYPEPATH

Donk Exenteration Drone - DED

\ No newline at end of file diff --git a/code/modules/mob/living/basic/bots/firebot/firebot_ai.html b/code/modules/mob/living/basic/bots/firebot/firebot_ai.html new file mode 100644 index 0000000000000..d70d268e2ec7b --- /dev/null +++ b/code/modules/mob/living/basic/bots/firebot/firebot_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/bots/firebot/firebot_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/bots/firebot/firebot_ai.dm

/datum/ai_planning_subtree/extinguishing_peoplesubtree for extinguishing people
/datum/ai_behavior/bot_search/people_on_firebehavior for finding people on fire
/datum/ai_planning_subtree/extinguishing_turfssubtree for finding turfs to extinguish
/datum/ai_behavior/search_burning_turfsbehavior to find burning turfs
/datum/ai_behavior/basic_melee_attack/interact_once/extinguishbehavior to extinguish mobs or turfs
/datum/ai_planning_subtree/firebot_speechsubtree to make us say funny idle lines
\ No newline at end of file diff --git a/code/modules/mob/living/basic/bots/vibebot/vibebot_abilities.html b/code/modules/mob/living/basic/bots/vibebot/vibebot_abilities.html new file mode 100644 index 0000000000000..9540cf66c45bf --- /dev/null +++ b/code/modules/mob/living/basic/bots/vibebot/vibebot_abilities.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/bots/vibebot/vibebot_abilities.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/basic/bots/vibebot/vibebot_abilities.dm

VIBE_MOOD_TIMERVibebot's vibe ability

Define Details

VIBE_MOOD_TIMER

Vibebot's vibe ability

+

Given to vibebots so sentient ones can change/reset thier colors at will.

\ No newline at end of file diff --git a/code/modules/mob/living/basic/bots/vibebot/vibebot_ai.html b/code/modules/mob/living/basic/bots/vibebot/vibebot_ai.html new file mode 100644 index 0000000000000..e257570fad348 --- /dev/null +++ b/code/modules/mob/living/basic/bots/vibebot/vibebot_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/bots/vibebot/vibebot_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/bots/vibebot/vibebot_ai.dm

/datum/ai_planning_subtree/find_party_friendssubtree we use to find party friends in general
/datum/ai_behavior/targeted_mob_ability/and_clear_target/vibebot_partybehavior we use to party with people
/datum/ai_behavior/bot_search/party_friendsbehavior that searches for party friends
\ No newline at end of file diff --git a/code/modules/mob/living/basic/clown/clown.html b/code/modules/mob/living/basic/clown/clown.html new file mode 100644 index 0000000000000..cd8e66c1f14e6 --- /dev/null +++ b/code/modules/mob/living/basic/clown/clown.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/clown/clown.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/clown/clown.dm

/datum/action/cooldown/regurgitateThis ability will let you fire one random item from your pouch,
/datum/action/cooldown/rustledrops peels around the mob when activated
/datum/action/cooldown/exquisite_bunchspawns a plumb bunch of bananas imbued with mystical power.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/cult/constructs/_construct.html b/code/modules/mob/living/basic/cult/constructs/_construct.html new file mode 100644 index 0000000000000..f847c7001c8c4 --- /dev/null +++ b/code/modules/mob/living/basic/cult/constructs/_construct.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/cult/constructs/_construct.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/cult/constructs/_construct.dm

/obj/item/ectoplasm/constructConstruct ectoplasm. Largely a placeholder, since the death drop element needs a unique list.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/cult/constructs/artificer.html b/code/modules/mob/living/basic/cult/constructs/artificer.html new file mode 100644 index 0000000000000..1d9416c5119b0 --- /dev/null +++ b/code/modules/mob/living/basic/cult/constructs/artificer.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/cult/constructs/artificer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/cult/constructs/artificer.dm

/mob/living/basic/construct/artificer/hostileHostile NPC version. Heals nearby constructs and cult structures, avoids targets that aren't extremely hurt.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/cult/constructs/construct_ai.html b/code/modules/mob/living/basic/cult/constructs/construct_ai.html new file mode 100644 index 0000000000000..7748404ffbf7a --- /dev/null +++ b/code/modules/mob/living/basic/cult/constructs/construct_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/cult/constructs/construct_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/cult/constructs/construct_ai.dm

/datum/ai_controller/basic_controller/artificerArtificers
/datum/ai_controller/basic_controller/juggernautJuggernauts
/datum/ai_controller/basic_controller/proteonProteons
/datum/ai_controller/basic_controller/wraithWraiths
/datum/targeting_strategy/basic/same_faction/constructTargeting strategy that will only allow mobs that constructs can heal.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/cult/constructs/juggernaut.html b/code/modules/mob/living/basic/cult/constructs/juggernaut.html new file mode 100644 index 0000000000000..d35b4ec270d31 --- /dev/null +++ b/code/modules/mob/living/basic/cult/constructs/juggernaut.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/cult/constructs/juggernaut.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/cult/constructs/juggernaut.dm

/mob/living/basic/construct/juggernaut/hostileHostile NPC version. Pretty dumb, just attacks whoever is near.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/cult/constructs/proteon.html b/code/modules/mob/living/basic/cult/constructs/proteon.html new file mode 100644 index 0000000000000..de3a8a6ed59fd --- /dev/null +++ b/code/modules/mob/living/basic/cult/constructs/proteon.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/cult/constructs/proteon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/cult/constructs/proteon.dm

/mob/living/basic/construct/proteonProteon - a very weak construct that only appears in NPC form in various ruins.
/mob/living/basic/construct/proteon/hostileHostile NPC version
\ No newline at end of file diff --git a/code/modules/mob/living/basic/cult/constructs/wraith.html b/code/modules/mob/living/basic/cult/constructs/wraith.html new file mode 100644 index 0000000000000..1838091a00379 --- /dev/null +++ b/code/modules/mob/living/basic/cult/constructs/wraith.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/cult/constructs/wraith.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/cult/constructs/wraith.dm

/mob/living/basic/construct/wraith/hostileHostile NPC version. Attempts to kill the lowest-health mob it can see.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/drone/_drone.html b/code/modules/mob/living/basic/drone/_drone.html new file mode 100644 index 0000000000000..b05defbef2ad7 --- /dev/null +++ b/code/modules/mob/living/basic/drone/_drone.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/drone/_drone.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/drone/_drone.dm

/mob/living/basic/droneMaintenance Drone
\ No newline at end of file diff --git a/code/modules/mob/living/basic/drone/drone_say.html b/code/modules/mob/living/basic/drone/drone_say.html new file mode 100644 index 0000000000000..5fab997a030e7 --- /dev/null +++ b/code/modules/mob/living/basic/drone/drone_say.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/drone/drone_say.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/drone/drone_say.dm

/proc/_alert_dronesBroadcast a message to all drones in a faction
\ No newline at end of file diff --git a/code/modules/mob/living/basic/drone/drones_as_items.html b/code/modules/mob/living/basic/drone/drones_as_items.html new file mode 100644 index 0000000000000..c2c4b770e86c7 --- /dev/null +++ b/code/modules/mob/living/basic/drone/drones_as_items.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/drone/drones_as_items.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/drone/drones_as_items.dm

/obj/effect/mob_spawn/ghost_role/drone
\ No newline at end of file diff --git a/code/modules/mob/living/basic/drone/extra_drone_types.html b/code/modules/mob/living/basic/drone/extra_drone_types.html new file mode 100644 index 0000000000000..c0963050c419f --- /dev/null +++ b/code/modules/mob/living/basic/drone/extra_drone_types.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/drone/extra_drone_types.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/drone/extra_drone_types.dm

/mob/living/basic/drone/syndroneA Syndicate drone, tasked to cause chaos on the station. +Has a lot more health and its own uplink with 10 TC.
/mob/living/basic/drone/syndrone/badassA version of the syndrone that gets a nuclear uplink, a firearms implant, and 30 TC.
/mob/living/basic/drone/snowflakeA drone that spawns with a chameleon hat for fashion purposes.
/mob/living/basic/drone/polymorphedA free drone that people can be turned into via wabbajack.
/mob/living/basic/drone/classic"Classic" drones, which are not shy and get a duffelbag of tools instead of built-in tools.
/mob/living/basic/drone/derelictDerelict drones, a ghost role tasked with repairing KS13. Get gibbed if they leave.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/farm_animals/bee/_bee.html b/code/modules/mob/living/basic/farm_animals/bee/_bee.html new file mode 100644 index 0000000000000..2bdd772d80475 --- /dev/null +++ b/code/modules/mob/living/basic/farm_animals/bee/_bee.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/farm_animals/bee/_bee.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/basic/farm_animals/bee/_bee.dm

BEE_TRAY_RECENT_VISITHow long in deciseconds until a tray can be visited by a bee again
BEE_DEFAULT_COLOURthe colour we make the stripes of the bee if our reagent has no colour (or we have no reagent)
BEE_POLLINATE_YIELD_CHANCEchance to increase yield of plant
BEE_POLLINATE_PEST_CHANCEchance to decrease pest of plant
BEE_POLLINATE_POTENCY_CHANCEchance to increase potancy of plant
BEE_FOODGROUPSthe bee food contents
/mob/living/basic/bee/timedA bee which despawns after a short amount of time (beespawns?)

Define Details

BEE_DEFAULT_COLOUR

the colour we make the stripes of the bee if our reagent has no colour (or we have no reagent)

BEE_FOODGROUPS

the bee food contents

BEE_POLLINATE_PEST_CHANCE

chance to decrease pest of plant

BEE_POLLINATE_POTENCY_CHANCE

chance to increase potancy of plant

BEE_POLLINATE_YIELD_CHANCE

chance to increase yield of plant

BEE_TRAY_RECENT_VISIT

How long in deciseconds until a tray can be visited by a bee again

\ No newline at end of file diff --git a/code/modules/mob/living/basic/farm_animals/bee/bee_ai_behavior.html b/code/modules/mob/living/basic/farm_animals/bee/bee_ai_behavior.html new file mode 100644 index 0000000000000..46364755d23cf --- /dev/null +++ b/code/modules/mob/living/basic/farm_animals/bee/bee_ai_behavior.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/farm_animals/bee/bee_ai_behavior.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/basic/farm_animals/bee/bee_ai_behavior.dm

AGGRO_DISTANCE_FROM_HIVEif we have a hive, this will be our aggro distance
/datum/pet_command/follow/beepet commands
/datum/pet_command/point_targeting/attack/swirlswirl around the owner in menacing fashion

Define Details

AGGRO_DISTANCE_FROM_HIVE

if we have a hive, this will be our aggro distance

\ No newline at end of file diff --git a/code/modules/mob/living/basic/farm_animals/chicken/chick.html b/code/modules/mob/living/basic/farm_animals/chicken/chick.html new file mode 100644 index 0000000000000..2cd2cfe2f8518 --- /dev/null +++ b/code/modules/mob/living/basic/farm_animals/chicken/chick.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/farm_animals/chicken/chick.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/farm_animals/chicken/chick.dm

/mob/living/basic/chick
/mob/living/basic/chick/permanentVariant of chick that just spawns in the holodeck so you can pet it. Doesn't grow up.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/farm_animals/cow/cow_moonicorn.html b/code/modules/mob/living/basic/farm_animals/cow/cow_moonicorn.html new file mode 100644 index 0000000000000..e819eccf61245 --- /dev/null +++ b/code/modules/mob/living/basic/farm_animals/cow/cow_moonicorn.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/farm_animals/cow/cow_moonicorn.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/farm_animals/cow/cow_moonicorn.dm

/mob/living/basic/cow/moonicornmoonicorn subtype, very hostile unless there's some food to be eatin'
/datum/targeting_strategy/basic/allow_items/moonicornmoonicorns will not attack people holding something that could tame them.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/farm_animals/cow/cow_wisdom.html b/code/modules/mob/living/basic/farm_animals/cow/cow_wisdom.html new file mode 100644 index 0000000000000..2433dba53ed10 --- /dev/null +++ b/code/modules/mob/living/basic/farm_animals/cow/cow_wisdom.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/farm_animals/cow/cow_wisdom.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/farm_animals/cow/cow_wisdom.dm

/mob/living/basic/cow/wisdomWisdom cow, gives XP to a random skill and speaks wisdoms
\ No newline at end of file diff --git a/code/modules/mob/living/basic/farm_animals/deer/deer.html b/code/modules/mob/living/basic/farm_animals/deer/deer.html new file mode 100644 index 0000000000000..66d59bf7a9155 --- /dev/null +++ b/code/modules/mob/living/basic/farm_animals/deer/deer.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/farm_animals/deer/deer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/farm_animals/deer/deer.dm

/mob/living/basic/deer/iceCold resistent and doesn't need to breathe
\ No newline at end of file diff --git a/code/modules/mob/living/basic/farm_animals/deer/deer_ai.html b/code/modules/mob/living/basic/farm_animals/deer/deer_ai.html new file mode 100644 index 0000000000000..37e1890998b87 --- /dev/null +++ b/code/modules/mob/living/basic/farm_animals/deer/deer_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/farm_animals/deer/deer_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/farm_animals/deer/deer_ai.dm

/datum/ai_planning_subtree/find_and_hunt_target/drink_watersubtree to go around drinking water
/datum/ai_planning_subtree/find_and_hunt_target/grazesubtree to go around grazing
/datum/ai_planning_subtree/play_with_friendssubtree to go around playing with other deers
/datum/ai_planning_subtree/find_and_hunt_target/mark_territorysubtree to mark trees as territories
\ No newline at end of file diff --git a/code/modules/mob/living/basic/farm_animals/goat/_goat.html b/code/modules/mob/living/basic/farm_animals/goat/_goat.html new file mode 100644 index 0000000000000..22f1f39f1a809 --- /dev/null +++ b/code/modules/mob/living/basic/farm_animals/goat/_goat.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/farm_animals/goat/_goat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/farm_animals/goat/_goat.dm

/mob/living/basic/goatThe Greatest (animal) Of All Time. Cud chewing, shin-kicking, kitchen-dwelling nuisance.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/farm_animals/goat/goat_ai.html b/code/modules/mob/living/basic/farm_animals/goat/goat_ai.html new file mode 100644 index 0000000000000..322145f144dbb --- /dev/null +++ b/code/modules/mob/living/basic/farm_animals/goat/goat_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/farm_animals/goat/goat_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/farm_animals/goat/goat_ai.dm

/datum/ai_controller/basic_controller/goatGoats are normally content to sorta hang around and crunch any plant in sight, but they will go ape on someone who attacks them.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla.html b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla.html new file mode 100644 index 0000000000000..66a9948c07e14 --- /dev/null +++ b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/farm_animals/gorilla/gorilla.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/basic/farm_animals/gorilla/gorilla.dm

GORILLA_HANDS_LAYERWhere do we draw gorilla held overlays?
/mob/living/basic/gorillaLike a bigger monkey +They make a lot of noise and punch limbs off unconscious folks
/datum/movespeed_modifier/gorilla_standingGorillas are slower when carrying something
/mob/living/basic/gorilla/lesserA smaller gorilla summoned via magic
/mob/living/basic/gorilla/cargorillaCargo's wonderful mascot, the tranquil box-carrying ape
/mob/living/basic/gorilla/geneticsA version of the gorilla achieved by reaching enough genetic damage as a monkey

Define Details

GORILLA_HANDS_LAYER

Where do we draw gorilla held overlays?

\ No newline at end of file diff --git a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_accessories.html b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_accessories.html new file mode 100644 index 0000000000000..3f5ee5537e777 --- /dev/null +++ b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_accessories.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/farm_animals/gorilla/gorilla_accessories.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/farm_animals/gorilla/gorilla_accessories.dm

/obj/item/card/id/advanced/cargo_gorillaCargorilla's ID card
\ No newline at end of file diff --git a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.html b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.html new file mode 100644 index 0000000000000..71b2ec421370b --- /dev/null +++ b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.dm

/datum/ai_controller/basic_controller/gorillaPretty basic, just click people to death. Also hunt and eat bananas.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/farm_animals/rabbit.html b/code/modules/mob/living/basic/farm_animals/rabbit.html new file mode 100644 index 0000000000000..82ecc208a4f93 --- /dev/null +++ b/code/modules/mob/living/basic/farm_animals/rabbit.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/farm_animals/rabbit.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/farm_animals/rabbit.dm

/mob/living/basic/rabbit
/mob/living/basic/rabbit/easterThe easter subtype of rabbits, will lay eggs and say Eastery catchphrases.
/mob/living/basic/rabbit/easter/spaceSame deal as the standard easter subtype, but these ones are able to brave the cold of space with their handy gas mask.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/festivus_pole.html b/code/modules/mob/living/basic/festivus_pole.html new file mode 100644 index 0000000000000..322f48a9cd20c --- /dev/null +++ b/code/modules/mob/living/basic/festivus_pole.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/festivus_pole.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/basic/festivus_pole.dm

FESTIVUS_RECHARGE_VALUEhow much charge we give off to cells around us when rubbed

Define Details

FESTIVUS_RECHARGE_VALUE

how much charge we give off to cells around us when rubbed

\ No newline at end of file diff --git a/code/modules/mob/living/basic/guardian/guardian.html b/code/modules/mob/living/basic/guardian/guardian.html new file mode 100644 index 0000000000000..4346d9d8efcc8 --- /dev/null +++ b/code/modules/mob/living/basic/guardian/guardian.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/guardian/guardian.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/guardian/guardian.dm

/mob/living/basic/guardianA mob which acts as a guardian angel to another mob, sharing health but protecting them using special powers. +Usually either obtained in magical form by a wizard, or technological form by a traitor. Sometimes found by miners.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/guardian/guardian_creator.html b/code/modules/mob/living/basic/guardian/guardian_creator.html new file mode 100644 index 0000000000000..c53e2aff1cb0b --- /dev/null +++ b/code/modules/mob/living/basic/guardian/guardian_creator.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/guardian/guardian_creator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/guardian/guardian_creator.dm

/obj/item/guardian_creatorAn item which grants you your very own soul buddy
/obj/item/guardian_creator/wizardGuardian creator available in the wizard spellbook. All but support are available.
/obj/item/guardian_creator/techGuardian creator available in the traitor uplink. All but dextrous are available, you can pick which you want, and changelings cannot use it.
/obj/item/guardian_creator/carpGuardian creator only spawned by admins, which creates a holographic fish. You can have several of them.
/obj/item/guardian_creator/minerGuardian creator available to miners from chests, very limited selection and randomly assigned.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/guardian/guardian_fluff.html b/code/modules/mob/living/basic/guardian/guardian_fluff.html new file mode 100644 index 0000000000000..117bf1365cb08 --- /dev/null +++ b/code/modules/mob/living/basic/guardian/guardian_fluff.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/guardian/guardian_fluff.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/guardian/guardian_fluff.dm

/datum/guardian_fluffDefines a theme used by guardian mobs for visuals and some text output +The default is used for ones created by wizards
/datum/guardian_fluff/techUsed by holoparasites in the Traitor uplink
/datum/guardian_fluff/minerUsed by powerminers found in necropolis chests
/datum/guardian_fluff/carpUsed by holocarp spawned by admins
\ No newline at end of file diff --git a/code/modules/mob/living/basic/guardian/guardian_types/assassin.html b/code/modules/mob/living/basic/guardian/guardian_types/assassin.html new file mode 100644 index 0000000000000..f6d00d17671f4 --- /dev/null +++ b/code/modules/mob/living/basic/guardian/guardian_types/assassin.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/guardian/guardian_types/assassin.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/guardian/guardian_types/assassin.dm

/mob/living/basic/guardian/assassinCan enter stealth mode to become invisible and deal bonus damage on their next attack, an ambush predator.
/datum/status_effect/guardian_stealthStatus effect which makes us sneakier and do bonus damage
\ No newline at end of file diff --git a/code/modules/mob/living/basic/guardian/guardian_types/charger.html b/code/modules/mob/living/basic/guardian/guardian_types/charger.html new file mode 100644 index 0000000000000..df95732539aa0 --- /dev/null +++ b/code/modules/mob/living/basic/guardian/guardian_types/charger.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/guardian/guardian_types/charger.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/guardian/guardian_types/charger.dm

/mob/living/basic/guardian/chargerVery fast, has a charging attack, and most importantly can be ridden like a horse.
/datum/action/cooldown/mob_cooldown/charge/basic_charge/guardianGuardian charger's charging attack, it knocks items out of people's hands
\ No newline at end of file diff --git a/code/modules/mob/living/basic/guardian/guardian_types/dextrous.html b/code/modules/mob/living/basic/guardian/guardian_types/dextrous.html new file mode 100644 index 0000000000000..a4376ae85e5f1 --- /dev/null +++ b/code/modules/mob/living/basic/guardian/guardian_types/dextrous.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/guardian/guardian_types/dextrous.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/guardian/guardian_types/dextrous.dm

/mob/living/basic/guardian/dextrousDextrous guardians have some of the most powerful abilities of all: hands and pockets
\ No newline at end of file diff --git a/code/modules/mob/living/basic/guardian/guardian_types/explosive.html b/code/modules/mob/living/basic/guardian/guardian_types/explosive.html new file mode 100644 index 0000000000000..1a10860ca4cd4 --- /dev/null +++ b/code/modules/mob/living/basic/guardian/guardian_types/explosive.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/guardian/guardian_types/explosive.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/guardian/guardian_types/explosive.dm

/mob/living/basic/guardian/explosiveA durable guardian which can convert objects into hidden explosives.
/datum/action/cooldown/mob_cooldown/explosive_booby_trapAn ability which can turn an object into a bomb
\ No newline at end of file diff --git a/code/modules/mob/living/basic/guardian/guardian_types/gaseous.html b/code/modules/mob/living/basic/guardian/guardian_types/gaseous.html new file mode 100644 index 0000000000000..a325d4331d69b --- /dev/null +++ b/code/modules/mob/living/basic/guardian/guardian_types/gaseous.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/guardian/guardian_types/gaseous.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/guardian/guardian_types/gaseous.dm

/mob/living/basic/guardian/gaseousNot particularly resistant, but versatile due to the selection of gases it can generate.
/datum/action/cooldown/mob_cooldown/expel_gasExpel a range of gases
\ No newline at end of file diff --git a/code/modules/mob/living/basic/guardian/guardian_types/gravitokinetic.html b/code/modules/mob/living/basic/guardian/guardian_types/gravitokinetic.html new file mode 100644 index 0000000000000..6a718a07dee51 --- /dev/null +++ b/code/modules/mob/living/basic/guardian/guardian_types/gravitokinetic.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/guardian/guardian_types/gravitokinetic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/guardian/guardian_types/gravitokinetic.dm

/mob/living/basic/guardian/gravitokineticSomewhat durable guardian who can increase gravity in an area
\ No newline at end of file diff --git a/code/modules/mob/living/basic/guardian/guardian_types/lightning.html b/code/modules/mob/living/basic/guardian/guardian_types/lightning.html new file mode 100644 index 0000000000000..ccf7539b51fd3 --- /dev/null +++ b/code/modules/mob/living/basic/guardian/guardian_types/lightning.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/guardian/guardian_types/lightning.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/guardian/guardian_types/lightning.dm

/mob/living/basic/guardian/lightningA reasonably durable guardian linked to you by a chain of lightning, zapping people who get between you
/obj/effect/ebeam/chainBeam definition for our lightning chain
\ No newline at end of file diff --git a/code/modules/mob/living/basic/guardian/guardian_types/protector.html b/code/modules/mob/living/basic/guardian/guardian_types/protector.html new file mode 100644 index 0000000000000..9c8804eca78cd --- /dev/null +++ b/code/modules/mob/living/basic/guardian/guardian_types/protector.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/guardian/guardian_types/protector.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/guardian/guardian_types/protector.dm

/mob/living/basic/guardian/protectorVery durable, and reverses the usual leash dynamic. Can slow down to become extremely durable.
/datum/action/cooldown/mob_cooldown/protector_shieldToggle a status effect which makes you slow but defensive
/datum/status_effect/protector_shieldMakes the guardian even more durable, but slower
\ No newline at end of file diff --git a/code/modules/mob/living/basic/guardian/guardian_types/ranged.html b/code/modules/mob/living/basic/guardian/guardian_types/ranged.html new file mode 100644 index 0000000000000..695dfa5108630 --- /dev/null +++ b/code/modules/mob/living/basic/guardian/guardian_types/ranged.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/guardian/guardian_types/ranged.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/guardian/guardian_types/ranged.dm

/mob/living/basic/guardian/rangedA ranged guardian can fling shards of glass at people very very quickly. It can also enter a long-range scouting mode.
/datum/status_effect/guardian_scout_modeBecome an incorporeal scout
/datum/action/cooldown/mob_cooldown/guardian_alarm_snarePlace an invisible trap which alerts the guardian when it is crossed
/obj/effect/abstract/surveillance_snareAn invisible marker placed by a ranged guardian, alerts the owner when crossed
/obj/projectile/guardianThe glass shards we throw as a guardian. They have low damage because you can fire them very very quickly.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/guardian/guardian_types/standard.html b/code/modules/mob/living/basic/guardian/guardian_types/standard.html new file mode 100644 index 0000000000000..e350ac86109c9 --- /dev/null +++ b/code/modules/mob/living/basic/guardian/guardian_types/standard.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/guardian/guardian_types/standard.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/guardian/guardian_types/standard.dm

/mob/living/basic/guardian/standardPlain, but durable and strong. Can destroy walls.
/datum/action/select_guardian_battlecryAction to change our battlecry
\ No newline at end of file diff --git a/code/modules/mob/living/basic/guardian/guardian_types/support.html b/code/modules/mob/living/basic/guardian/guardian_types/support.html new file mode 100644 index 0000000000000..6a85770e13a96 --- /dev/null +++ b/code/modules/mob/living/basic/guardian/guardian_types/support.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/guardian/guardian_types/support.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/guardian/guardian_types/support.dm

/mob/living/basic/guardian/supportQuick-moving mob which can teleport things to a beacon and heal its allies
/datum/action/cooldown/mob_cooldown/guardian_bluespace_beaconPlace a beacon and then listen for clicks to teleport people to it
/obj/structure/guardian_beaconStructure which acts as the landing point for a support guardian's teleportation effects
\ No newline at end of file diff --git a/code/modules/mob/living/basic/guardian/guardian_verbs.html b/code/modules/mob/living/basic/guardian/guardian_verbs.html new file mode 100644 index 0000000000000..5d3c956de9c21 --- /dev/null +++ b/code/modules/mob/living/basic/guardian/guardian_verbs.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/guardian/guardian_verbs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/guardian/guardian_verbs.dm

/datum/action/cooldown/mob_cooldown/guardian_commsSpeak with your guardian(s) at a distance.
/datum/action/cooldown/mob_cooldown/recall_guardianTell your slacking or distracted guardian to come home.
/datum/action/cooldown/mob_cooldown/replace_guardianReplace an annoying griefer you were paired up to with a different but probably no less annoying player.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/heretic/ash_spirit.html b/code/modules/mob/living/basic/heretic/ash_spirit.html new file mode 100644 index 0000000000000..4a23f1af92fad --- /dev/null +++ b/code/modules/mob/living/basic/heretic/ash_spirit.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/heretic/ash_spirit.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/heretic/ash_spirit.dm

/mob/living/basic/heretic_summon/ash_spiritPlayer-only mob which is fast, can jaunt a short distance, and is dangerous at close range
\ No newline at end of file diff --git a/code/modules/mob/living/basic/heretic/flesh_stalker.html b/code/modules/mob/living/basic/heretic/flesh_stalker.html new file mode 100644 index 0000000000000..d18d5d47b8845 --- /dev/null +++ b/code/modules/mob/living/basic/heretic/flesh_stalker.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/heretic/flesh_stalker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/heretic/flesh_stalker.dm

/mob/living/basic/heretic_summon/stalkerDurable ambush mob with an EMP ability
/datum/ai_controller/basic_controller/stalkerChanges shape and lies in wait when it has no target, uses EMP and attacks once it does
\ No newline at end of file diff --git a/code/modules/mob/living/basic/heretic/flesh_worm.html b/code/modules/mob/living/basic/heretic/flesh_worm.html new file mode 100644 index 0000000000000..13496988e2c3b --- /dev/null +++ b/code/modules/mob/living/basic/heretic/flesh_worm.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/heretic/flesh_worm.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/basic/heretic/flesh_worm.dm

MINIMUM_ARMSY_LENGTHArmsy starts to look a bit funky if he's shorter than this
/mob/living/basic/heretic_summon/armsyThe "Terror of the Night" / Armsy, a large worm made of multiple bodyparts that occupies multiple tiles

Define Details

MINIMUM_ARMSY_LENGTH

Armsy starts to look a bit funky if he's shorter than this

\ No newline at end of file diff --git a/code/modules/mob/living/basic/heretic/maid_in_the_mirror.html b/code/modules/mob/living/basic/heretic/maid_in_the_mirror.html new file mode 100644 index 0000000000000..ba696c9e47db3 --- /dev/null +++ b/code/modules/mob/living/basic/heretic/maid_in_the_mirror.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/heretic/maid_in_the_mirror.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/heretic/maid_in_the_mirror.dm

/mob/living/basic/heretic_summon/maid_in_the_mirrorScout and assassin who can appear and disappear from glass surfaces. Damaged by being examined.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/heretic/raw_prophet.html b/code/modules/mob/living/basic/heretic/raw_prophet.html new file mode 100644 index 0000000000000..4e875594a7461 --- /dev/null +++ b/code/modules/mob/living/basic/heretic/raw_prophet.html @@ -0,0 +1,3 @@ +code/modules/mob/living/basic/heretic/raw_prophet.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/heretic/raw_prophet.dm

/mob/living/basic/heretic_summon/raw_prophetA funny little rolling guy who is great at scouting. +It can see through walls, jaunt, and create a psychic network to report its findings. +It can blind people to make a getaway, but also get stronger if it attacks the same target consecutively.
/mob/living/basic/heretic_summon/raw_prophet/ascendedVariant raw prophet used by eldritch transformation with more base attack power
/mob/living/basic/heretic_summon/raw_prophet/ruinsNPC variant with a less bullshit ability
/datum/ai_controller/basic_controller/raw_prophetWalk and attack people, blind them when we can
\ No newline at end of file diff --git a/code/modules/mob/living/basic/heretic/rust_walker.html b/code/modules/mob/living/basic/heretic/rust_walker.html new file mode 100644 index 0000000000000..4fa8ccf565aa3 --- /dev/null +++ b/code/modules/mob/living/basic/heretic/rust_walker.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/heretic/rust_walker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/heretic/rust_walker.dm

/mob/living/basic/heretic_summon/rust_walkerPretty simple mob which creates areas of rust and has a rust-creating projectile spell
/datum/ai_controller/basic_controller/rust_walkerConverts unconverted terrain, sprays pocket sand around
/datum/idle_behavior/idle_random_walk/rustMoves a lot if healthy and on rust (to find more tiles to rust) or unhealthy and not on rust (to find healing rust) +Still moving in random directions though we're not really seeking it out
/datum/ai_planning_subtree/use_mob_ability/rust_walkerUse if we're not stood on rust right now
\ No newline at end of file diff --git a/code/modules/mob/living/basic/icemoon/ice_demon/ice_demon.html b/code/modules/mob/living/basic/icemoon/ice_demon/ice_demon.html new file mode 100644 index 0000000000000..0fc29bf4dfe9b --- /dev/null +++ b/code/modules/mob/living/basic/icemoon/ice_demon/ice_demon.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/icemoon/ice_demon/ice_demon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/icemoon/ice_demon/ice_demon.dm

/mob/living/basic/mining/demon_afterimage/crusherafterimage subtypes summoned by the crusher
\ No newline at end of file diff --git a/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp_abilities.html b/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp_abilities.html new file mode 100644 index 0000000000000..18da42c6b9729 --- /dev/null +++ b/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp_abilities.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp_abilities.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp_abilities.dm

/datum/action/cooldown/mob_cooldown/fire_breath/iceBreathe "fire" in a line (it's freezing cold)
/datum/action/cooldown/mob_cooldown/fire_breath/ice/crossBreathe really cold fire in a plus shape, like bomberman
\ No newline at end of file diff --git a/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp_ai.html b/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp_ai.html new file mode 100644 index 0000000000000..6a6525bf1d6b3 --- /dev/null +++ b/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp_ai.dm

/datum/ai_planning_subtree/sculpt_statuessubtree to find icy rocks and create sculptures out of them
/datum/ai_planning_subtree/burn_treessubtree to look for trees and burn them with our flamethrower
\ No newline at end of file diff --git a/code/modules/mob/living/basic/jungle/leaper/leaper_ai.html b/code/modules/mob/living/basic/jungle/leaper/leaper_ai.html new file mode 100644 index 0000000000000..ce54e12fd6211 --- /dev/null +++ b/code/modules/mob/living/basic/jungle/leaper/leaper_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/jungle/leaper/leaper_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/jungle/leaper/leaper_ai.dm

/datum/ai_controller/basic_controller/leaperso they dont attack the leaper or the wizard master
\ No newline at end of file diff --git a/code/modules/mob/living/basic/jungle/mega_arachnid/mega_arachnid_ai.html b/code/modules/mob/living/basic/jungle/mega_arachnid/mega_arachnid_ai.html new file mode 100644 index 0000000000000..92f0b14f3144b --- /dev/null +++ b/code/modules/mob/living/basic/jungle/mega_arachnid/mega_arachnid_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/jungle/mega_arachnid/mega_arachnid_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/jungle/mega_arachnid/mega_arachnid_ai.dm

/datum/ai_planning_subtree/find_and_hunt_target/destroy_surveillancedestroy surveillance objects to boost our stealth
/datum/ai_planning_subtree/flee_target/mega_arachnidspray slippery acid as we flee!
/datum/ai_planning_subtree/basic_melee_attack_subtree/mega_arachnidonly engage in melee combat against cuffed targets, otherwise keep throwing restraints at them
\ No newline at end of file diff --git a/code/modules/mob/living/basic/jungle/seedling/seedling.html b/code/modules/mob/living/basic/jungle/seedling/seedling.html new file mode 100644 index 0000000000000..765f2f3ba90a7 --- /dev/null +++ b/code/modules/mob/living/basic/jungle/seedling/seedling.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/jungle/seedling/seedling.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/jungle/seedling/seedling.dm

/mob/living/basic/seedlingA mobile plant with a rapid ranged attack. +It can pick up watering cans and look after plants.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/jungle/seedling/seedling_ai.html b/code/modules/mob/living/basic/jungle/seedling/seedling_ai.html new file mode 100644 index 0000000000000..a8838c95052c9 --- /dev/null +++ b/code/modules/mob/living/basic/jungle/seedling/seedling_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/jungle/seedling/seedling_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/jungle/seedling/seedling_ai.dm

/datum/pet_command/point_targeting/use_ability/solarbeampet commands
\ No newline at end of file diff --git a/code/modules/mob/living/basic/jungle/venus_human_trap.html b/code/modules/mob/living/basic/jungle/venus_human_trap.html new file mode 100644 index 0000000000000..2c59888363f75 --- /dev/null +++ b/code/modules/mob/living/basic/jungle/venus_human_trap.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/jungle/venus_human_trap.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/jungle/venus_human_trap.dm

/obj/structure/alien/resin/flower_budKudzu Flower Bud
/mob/living/basic/venus_human_trapVenus Human Trap
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/basilisk/basilisk.html b/code/modules/mob/living/basic/lavaland/basilisk/basilisk.html new file mode 100644 index 0000000000000..cd6f326a7fa50 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/basilisk/basilisk.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/basilisk/basilisk.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/basilisk/basilisk.dm

/mob/living/basic/mining/basiliskWatchers' ground-dwelling cousins, they shoot at you until they get into melee and absorb laser fire to power up.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/basilisk/basilisk_overheat.html b/code/modules/mob/living/basic/lavaland/basilisk/basilisk_overheat.html new file mode 100644 index 0000000000000..f963315a83b98 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/basilisk/basilisk_overheat.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/basilisk/basilisk_overheat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/basilisk/basilisk_overheat.dm

/datum/status_effect/basilisk_overheatStatus effect gained by basilisks when they touch something hot
/obj/projectile/basilisk_hotProjectile basilisks use when hot
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.html b/code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.html new file mode 100644 index 0000000000000..2897c9dcfc747 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.dm

/datum/action/cooldown/mob_cooldown/brimbeamFires a bloody beam. Brimdemon Blast!
/obj/effect/brimbeamSegments of the actual beam, these hurt if you stand in them
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon.html b/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon.html new file mode 100644 index 0000000000000..226add70dbc7a --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/brimdemon/brimdemon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/brimdemon/brimdemon.dm

/mob/living/basic/mining/brimdemonLavaland mob which tries to line up with its target and fire a laser
/obj/effect/temp_visual/brim_burstShow a funny animation before doing an explosion
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_ai.html b/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_ai.html new file mode 100644 index 0000000000000..4903d3829b000 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_ai.dm

/datum/ai_controller/basic_controller/brimdemonSlap someone who is nearby, line up with target, blast with a beam
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_loot.html b/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_loot.html new file mode 100644 index 0000000000000..f6be996bd948a --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_loot.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_loot.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_loot.dm

/obj/item/crusher_trophy/brimdemon_fangBrimdemon crusher trophy, it... makes a funny sound?
/obj/effect/decal/cleanable/brimdustReagent pool left by dying brimdemon
/obj/item/ore_sensorAshwalker ore sensor crafted from brimdemon ash
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/goldgrub/goldgrub_ai.html b/code/modules/mob/living/basic/lavaland/goldgrub/goldgrub_ai.html new file mode 100644 index 0000000000000..ec4814a0c27a3 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/goldgrub/goldgrub_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/goldgrub/goldgrub_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/goldgrub/goldgrub_ai.dm

/datum/ai_planning_subtree/find_and_hunt_target/hunt_oresconsume food!
/datum/ai_planning_subtree/find_and_hunt_target/harvest_ventsbreak boulders so that we can find more food!
/datum/ai_planning_subtree/find_and_hunt_target/break_bouldersbreak boulders so that we can find more food!
/datum/ai_planning_subtree/find_and_hunt_target/baby_eggfind our child's egg and pull it!
/datum/ai_planning_subtree/dig_away_from_dangeronly dig away if storm is coming or if humans are around
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/goliath/goliath.html b/code/modules/mob/living/basic/lavaland/goliath/goliath.html new file mode 100644 index 0000000000000..8f1fc05cb19f5 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/goliath/goliath.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/goliath/goliath.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/goliath/goliath.dm

/mob/living/basic/mining/goliathSlow moving mob which attempts to immobilise its target
/mob/living/basic/mining/goliath/deathmatchVersion of the goliath that already starts saddled and doesn't require a lasso to be ridden.
/mob/living/basic/mining/goliath/ancientLegacy Goliath mob with different sprites, largely the same behaviour
/mob/living/basic/mining/goliath/ancient/immortalRare Goliath variant which occasionally replaces the normal mining mob, releases shitloads of tentacles
/obj/item/goliath_saddleUse this to ride a goliath
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/goliath/goliath_actions.html b/code/modules/mob/living/basic/lavaland/goliath/goliath_actions.html new file mode 100644 index 0000000000000..973da9045f88a --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/goliath/goliath_actions.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/goliath/goliath_actions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/goliath/goliath_actions.dm

/datum/action/cooldown/mob_cooldown/goliath_tentaclesPlace some grappling tentacles underfoot
/datum/action/cooldown/mob_cooldown/tentacle_burstPlace grappling tentacles around you to grab attackers
/datum/action/cooldown/mob_cooldown/tentacle_graspSummon a line of tentacles towards the target
/obj/effect/temp_visual/effect_trail/burrowed_tentacleAn invisible effect which chases a target, spawning tentacles every so often.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/goliath/goliath_ai.html b/code/modules/mob/living/basic/lavaland/goliath/goliath_ai.html new file mode 100644 index 0000000000000..efcc35a221005 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/goliath/goliath_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/goliath/goliath_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/basic/lavaland/goliath/goliath_ai.dm

MIN_TIME_TO_TENTACLEWe won't use tentacles unless we have had the same target for this long
/datum/ai_behavior/basic_melee_attack/goliathGo for the tentacles if they're available
/datum/ai_planning_subtree/goliath_find_diggable_turfIf we got nothing better to do, find a turf we can search for tasty roots and such
/datum/ai_behavior/goliath_digIf we got nothing better to do, dig a little hole

Define Details

MIN_TIME_TO_TENTACLE

We won't use tentacles unless we have had the same target for this long

\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/goliath/goliath_trophy.html b/code/modules/mob/living/basic/lavaland/goliath/goliath_trophy.html new file mode 100644 index 0000000000000..6bbcf04e66239 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/goliath/goliath_trophy.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/goliath/goliath_trophy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/goliath/goliath_trophy.dm

/obj/item/crusher_trophy/goliath_tentacleMining crusher trophy from a goliath. Increases damage as your health decreases.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/goliath/tentacle.html b/code/modules/mob/living/basic/lavaland/goliath/tentacle.html new file mode 100644 index 0000000000000..5fb06435e72a2 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/goliath/tentacle.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/goliath/tentacle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/goliath/tentacle.dm

/obj/effect/goliath_tentacleA tentacle which grabs you if you don't get away from it
/datum/status_effect/incapacitating/stun/goliath_tentacledGoliath tentacle stun with special removal conditions
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers_ai.html b/code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers_ai.html new file mode 100644 index 0000000000000..87a611cfb6ba2 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers_ai.dm

/datum/ai_planning_subtree/befriend_ashwalkersfind ashwalkers and add them to the list of masters
/datum/ai_planning_subtree/find_and_hunt_target/food_troughconsume food!
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers_inherit_datum.html b/code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers_inherit_datum.html new file mode 100644 index 0000000000000..a5c610a44736f --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers_inherit_datum.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers_inherit_datum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers_inherit_datum.dm

/datum/gutlunch_inherited_statsstats we inherit from the parent
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/hivelord/hivelord.html b/code/modules/mob/living/basic/lavaland/hivelord/hivelord.html new file mode 100644 index 0000000000000..daa48a2c7eb88 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/hivelord/hivelord.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm

/mob/living/basic/mining/hivelordMob which retreats and spawns annoying sub-mobs to attack you
/mob/living/basic/hivelord_broodAttack worms spawned by the hivelord
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/hivelord/hivelord_ai.html b/code/modules/mob/living/basic/lavaland/hivelord/hivelord_ai.html new file mode 100644 index 0000000000000..00471558d434a --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/hivelord/hivelord_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/hivelord/hivelord_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/hivelord/hivelord_ai.dm

/datum/ai_controller/basic_controller/hivelordBasically just keep away and shit out worms
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/hivelord/spawn_hivelord_brood.html b/code/modules/mob/living/basic/lavaland/hivelord/spawn_hivelord_brood.html new file mode 100644 index 0000000000000..d1c0226a444f4 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/hivelord/spawn_hivelord_brood.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/hivelord/spawn_hivelord_brood.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/hivelord/spawn_hivelord_brood.dm

/datum/action/cooldown/mob_cooldown/hivelord_spawnSpawns a little worm nearby
/obj/effect/temp_visual/hivebrood_spawnFast animation to show a worm spawning
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/legion/legion.html b/code/modules/mob/living/basic/lavaland/legion/legion.html new file mode 100644 index 0000000000000..e494fb05f00ee --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/legion/legion.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/lavaland/legion/legion.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/legion/legion.dm

/mob/living/basic/mining/legionAvoids players while throwing skulls at them. +Legion skulls heal allies, bite enemies, and infest dying humans to make more legions.
/mob/living/basic/mining/legion/snowLike a Legion but it's an adorable snowman
/mob/living/basic/mining/legion/snow/spawner_madeAs Snow Legion but spawns corpses which don't have any exciting loot
/mob/living/basic/mining/legion/dwarfLike a Legion but shorter and faster
/mob/living/basic/mining/legion/largeLike a Legion but larger and spawns regular Legions, not currently used anywhere and very soulful
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/legion/legion_ai.html b/code/modules/mob/living/basic/lavaland/legion/legion_ai.html new file mode 100644 index 0000000000000..f0564ea179e0b --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/legion/legion_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/legion/legion_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/legion/legion_ai.dm

/datum/ai_controller/basic_controller/legionKeep away and launch skulls at every opportunity, prioritising injured allies
/datum/ai_controller/basic_controller/legion_broodChase and attack whatever we are targeting, if it's friendly we will heal them
/datum/targeting_strategy/basic/legionTarget nearby friendlies if they are hurt (and are not themselves Legions)
/datum/ai_planning_subtree/flee_target/legionDon't run away from friendlies
/datum/ai_planning_subtree/random_speech/legionMake spooky sounds, if we have a corpse inside then impersonate them
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/legion/legion_brood.html b/code/modules/mob/living/basic/lavaland/legion/legion_brood.html new file mode 100644 index 0000000000000..977d2120a3067 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/legion/legion_brood.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/legion/legion_brood.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/legion/legion_brood.dm

/mob/living/basic/legion_broodA spooky skull which heals lavaland mobs, attacks miners, and infests their bodies
/mob/living/basic/legion_brood/snowLike the Legion's summoned skull but funnier (it's snow now)
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/legion/legion_monkey.html b/code/modules/mob/living/basic/lavaland/legion/legion_monkey.html new file mode 100644 index 0000000000000..8a3c66221f777 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/legion/legion_monkey.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/legion/legion_monkey.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/legion/legion_monkey.dm

/mob/living/basic/mining/legion/monkeyWeak mob spawned if a legion infests a monkey
/mob/living/basic/mining/legion/monkey/snowIcebox variant
/datum/ai_controller/basic_controller/legion_monkeyOpportunistically hops in and out of vents, if it can find one and is not biting someone.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/legion/legion_tumour.html b/code/modules/mob/living/basic/lavaland/legion/legion_tumour.html new file mode 100644 index 0000000000000..7f24f51732d3a --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/legion/legion_tumour.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/legion/legion_tumour.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/legion/legion_tumour.dm

/obj/item/organ/internal/legion_tumourLeft behind when a legion infects you, for medical enrichment
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/legion/spawn_legions.html b/code/modules/mob/living/basic/lavaland/legion/spawn_legions.html new file mode 100644 index 0000000000000..5bbddee3aee05 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/legion/spawn_legions.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/legion/spawn_legions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/legion/spawn_legions.dm

/datum/action/cooldown/mob_cooldown/skull_launcherSpawns a little worm nearby
/obj/effect/temp_visual/legion_skull_departAnimation for launching a skull
/obj/effect/temp_visual/legion_skull_landAnimation for landing a skull
/obj/effect/temp_visual/legion_brood_indicatorA skull is going to be here! Oh no!
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.html b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.html new file mode 100644 index 0000000000000..4f550352e3769 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm

/mob/living/basic/mining/lobstrosityCowardly mob with a charging attack
/mob/living/basic/mining/lobstrosity/lavaLavaland lobster variant, it basically just looks different
/datum/action/cooldown/mob_cooldown/charge/basic_charge/lobsterCharge a long way, knock down for longer, and perform an instant melee attack
/mob/living/basic/mining/lobstrosity/juvenileA weaker, yet somewhat faster lobstrosity. Sources include aquarium chasm chrabs, chasms, plasma rivers and perhaps xenobio.
/datum/action/cooldown/mob_cooldown/charge/basic_charge/lobster/shrimpShorter, weaker version of the Lobster Rush
/datum/pet_command/point_targeting/use_ability/lob_chargeCommand the lobster to charge at someone.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.html b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.html new file mode 100644 index 0000000000000..32c1bd7a2788a --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.dm

/datum/ai_controller/basic_controller/lobstrosity/juvenileEnsure that juveline lobstrosities witll charge at things they can reach.
/datum/ai_controller/basic_controller/lobstrosity/juvenile/calmA subtype of juvenile lobster AI that has the target_retaliate behaviour instead of simple_find_target
/datum/ai_controller/basic_controller/lobstrosity/juvenile/capriciousA subtype of juvenile lobster AI that has the capricious_retaliate behaviour instead of simple_find_target
/datum/ai_planning_subtree/targeted_mob_ability/lobsterDon't use charge ability on an adjacent target, and make sure you're visible before you start
/datum/ai_planning_subtree/find_fingersLook for loose arms lying around
/datum/ai_planning_subtree/hoard_fingersIf you see an arm, grab it and run
/datum/ai_behavior/grab_fingersIf our target is an arm then move over and drag it
FLEE_TO_RANGEHow far we'll try to go before eating an arm
MAX_LOBSTROSITY_PATIENCEHow many times we'll attempt to move before giving up
/datum/ai_behavior/hoard_fingersIf we are dragging an arm then run away until we are out of range and feast

Define Details

FLEE_TO_RANGE

How far we'll try to go before eating an arm

MAX_LOBSTROSITY_PATIENCE

How many times we'll attempt to move before giving up

\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_trophy.html b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_trophy.html new file mode 100644 index 0000000000000..9b5cd0a606a9d --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_trophy.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_trophy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_trophy.dm

/obj/item/crusher_trophy/lobster_clawLobstrosity crusher trophy. Rebukes targets, increasing their click cooldown.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/mining.html b/code/modules/mob/living/basic/lavaland/mining.html new file mode 100644 index 0000000000000..45434c73fe0cf --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/mining.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/mining.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/mining.dm

/mob/living/basic/miningprototype for mining mobs
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/mook/mook_ai.html b/code/modules/mob/living/basic/lavaland/mook/mook_ai.html new file mode 100644 index 0000000000000..de0380bcdd773 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/mook/mook_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/mook/mook_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/mook/mook_ai.dm

/datum/ai_planning_subtree/find_and_hunt_target/hunt_ores/mookhunt ores that we will haul off back to the village
/datum/ai_planning_subtree/find_and_hunt_target/material_standdeposit ores into the stand!
/datum/ai_planning_subtree/look_for_villagelook for our village
/datum/ai_planning_subtree/wander_away_from_villageexplore the lands away from the village to look for ore
/datum/ai_controller/basic_controller/mook/bardbard mook plays nice music for the village
/datum/ai_planning_subtree/play_music_for_visitorfind an audience to follow and play music for!
/datum/ai_controller/basic_controller/mook/supporthealer mooks guard the village from intruders and heal the miner mooks when they come home
/datum/ai_planning_subtree/find_and_hunt_target/injured_mooksfind injured miner mooks after they come home from a long day of work
/datum/ai_controller/basic_controller/mook/tribal_chiefthe chief would rather command his mooks to attack people than attack them himself
/datum/ai_planning_subtree/find_and_hunt_target/hunt_ores/tribal_chieffind an ore, only pick it up when a mook brings it close to us
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/mook/mook_village.html b/code/modules/mob/living/basic/lavaland/mook/mook_village.html new file mode 100644 index 0000000000000..ebb3b17061b4d --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/mook/mook_village.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/mook/mook_village.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/mook/mook_village.dm

/obj/structure/ore_container/material_standunique items that spawn at the mook village
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/node_drone/node_drone.html b/code/modules/mob/living/basic/lavaland/node_drone/node_drone.html new file mode 100644 index 0000000000000..4b86a2d971e8f --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/node_drone/node_drone.html @@ -0,0 +1,4 @@ +code/modules/mob/living/basic/lavaland/node_drone/node_drone.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/node_drone/node_drone.dm

/mob/living/basic/node_droneMining drones that are spawned when starting a ore vent's wave defense minigame. +They will latch onto the vent to defend it from lavaland mobs, and will flee if attacked by lavaland mobs. +If the drone survives, they will fly away to safety as the vent spawns ores. +If the drone dies, the wave defense will fail.
/datum/ai_controller/basic_controller/node_droneThe node drone AI controller
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/watcher/watcher.html b/code/modules/mob/living/basic/lavaland/watcher/watcher.html new file mode 100644 index 0000000000000..806d569758384 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/watcher/watcher.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/watcher/watcher.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/watcher/watcher.dm

/mob/living/basic/mining/watcherA floating eyeball which keeps its distance and sometimes make you look away.
/mob/living/basic/mining/watcher/magmawingMore durable, burning projectiles
/mob/living/basic/mining/watcher/icewingLess durable, freezing projectiles
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/watcher/watcher_gaze.html b/code/modules/mob/living/basic/lavaland/watcher/watcher_gaze.html new file mode 100644 index 0000000000000..77f6bf9bd9090 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/watcher/watcher_gaze.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/watcher/watcher_gaze.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/watcher/watcher_gaze.dm

/datum/action/cooldown/mob_cooldown/watcher_gazeDo something nasty to everyone nearby if they're looking at us.
/datum/action/cooldown/mob_cooldown/watcher_gaze/fireMagmawing glare burns you
/datum/action/cooldown/mob_cooldown/watcher_gaze/iceIcewing glare freezes you
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/watcher/watcher_overwatch.html b/code/modules/mob/living/basic/lavaland/watcher/watcher_overwatch.html new file mode 100644 index 0000000000000..a9341e624c3c1 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/watcher/watcher_overwatch.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/lavaland/watcher/watcher_overwatch.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/watcher/watcher_overwatch.dm

/datum/action/cooldown/mob_cooldown/watcher_overwatchAutomatically shoot at a target if they do anything while this is active on them. +Currently not given to any mob, but retained so admins can use it.
/datum/status_effect/overwatchStatus effect which tracks whether our overwatched mob moves or acts
/datum/status_effect/overwatch_immuneBlocks further applications of the ability for a little while
\ No newline at end of file diff --git a/code/modules/mob/living/basic/lavaland/watcher/watcher_projectiles.html b/code/modules/mob/living/basic/lavaland/watcher/watcher_projectiles.html new file mode 100644 index 0000000000000..51065c005385a --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/watcher/watcher_projectiles.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/lavaland/watcher/watcher_projectiles.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/lavaland/watcher/watcher_projectiles.dm

/obj/projectile/temp/watcherChilling projectile, hurts and slows you down
/obj/projectile/temp/watcher/magma_wingLava projectile, ignites you
/obj/projectile/temp/watcher/ice_wingFreezing projectile, freezes you
\ No newline at end of file diff --git a/code/modules/mob/living/basic/minebots/minebot_ai.html b/code/modules/mob/living/basic/minebots/minebot_ai.html new file mode 100644 index 0000000000000..2801251f9a893 --- /dev/null +++ b/code/modules/mob/living/basic/minebots/minebot_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/minebots/minebot_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/minebots/minebot_ai.dm

/datum/ai_planning_subtree/basic_ranged_attack_subtree/minebotoperational datums is null because we dont use a ranged component, we use a gun in our contents
/datum/ai_planning_subtree/find_and_hunt_target/hunt_ores/minebotstore ores in our body
/datum/pet_command/free/minebotpet commands
\ No newline at end of file diff --git a/code/modules/mob/living/basic/pets/dog/_dog.html b/code/modules/mob/living/basic/pets/dog/_dog.html new file mode 100644 index 0000000000000..b584ee85ee03b --- /dev/null +++ b/code/modules/mob/living/basic/pets/dog/_dog.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/pets/dog/_dog.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/pets/dog/_dog.dm

/obj/item/dog_boneA dog bone fully heals a dog, and befriends it if it's not your friend.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/pets/gondolas/gondolapod.html b/code/modules/mob/living/basic/pets/gondolas/gondolapod.html new file mode 100644 index 0000000000000..0bbe79e6d200e --- /dev/null +++ b/code/modules/mob/living/basic/pets/gondolas/gondolapod.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/pets/gondolas/gondolapod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/pets/gondolas/gondolapod.dm

/datum/action/innate/deliver_gondola_packageOpens the gondola pod and delivers its package, one-time use as it removes all delivery-related actions.
/datum/action/innate/check_gondola_contentsChecks the contents of the gondola and lets them know what they're holding.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/pets/orbie/orbie_ai.html b/code/modules/mob/living/basic/pets/orbie/orbie_ai.html new file mode 100644 index 0000000000000..2bf74a697128d --- /dev/null +++ b/code/modules/mob/living/basic/pets/orbie/orbie_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/pets/orbie/orbie_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/pets/orbie/orbie_ai.dm

/datum/ai_planning_subtree/find_playmatesai behavior that lets us search for other orbies to play with
/datum/pet_command/untargeted_ability/pet_lightscommand to make our pet turn its lights on, we need to be level 2 to activate this ability
\ No newline at end of file diff --git a/code/modules/mob/living/basic/pets/parrot/_parrot.html b/code/modules/mob/living/basic/pets/parrot/_parrot.html new file mode 100644 index 0000000000000..be585d55d217f --- /dev/null +++ b/code/modules/mob/living/basic/pets/parrot/_parrot.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/pets/parrot/_parrot.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/pets/parrot/_parrot.dm

/mob/living/basic/parrotParrots! Klepto bastards that imitate your speech and hoard your shit.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/pets/parrot/parrot_ai/ghost_parrot_controller.html b/code/modules/mob/living/basic/pets/parrot/parrot_ai/ghost_parrot_controller.html new file mode 100644 index 0000000000000..8550663645f12 --- /dev/null +++ b/code/modules/mob/living/basic/pets/parrot/parrot_ai/ghost_parrot_controller.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/pets/parrot/parrot_ai/ghost_parrot_controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/pets/parrot/parrot_ai/ghost_parrot_controller.dm

/datum/ai_controller/basic_controller/parrot/ghostUsed for ghost poly.
/datum/ai_planning_subtree/possess_humanssubtree to possess humans
\ No newline at end of file diff --git a/code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_hoarding.html b/code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_hoarding.html new file mode 100644 index 0000000000000..ab413374e3a39 --- /dev/null +++ b/code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_hoarding.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_hoarding.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_hoarding.dm

/datum/ai_planning_subtree/hoard_itemssubtree to steal items
\ No newline at end of file diff --git a/code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_perching.html b/code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_perching.html new file mode 100644 index 0000000000000..251f516f87346 --- /dev/null +++ b/code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_perching.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_perching.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_perching.dm

/datum/ai_planning_subtree/perch_on_targetsubtree to perch on targets
/datum/ai_behavior/perch_on_targetParrot behavior that allows them to perch on a target.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/pets/parrot/parrot_ai/parroting_action.html b/code/modules/mob/living/basic/pets/parrot/parrot_ai/parroting_action.html new file mode 100644 index 0000000000000..5d6c555af1b8e --- /dev/null +++ b/code/modules/mob/living/basic/pets/parrot/parrot_ai/parroting_action.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/pets/parrot/parrot_ai/parroting_action.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/pets/parrot/parrot_ai/parroting_action.dm

/datum/ai_planning_subtree/parrot_as_in_repeatWhen a parrot... parrots...
\ No newline at end of file diff --git a/code/modules/mob/living/basic/pets/parrot/parrot_subtypes.html b/code/modules/mob/living/basic/pets/parrot/parrot_subtypes.html new file mode 100644 index 0000000000000..d3af6254641c1 --- /dev/null +++ b/code/modules/mob/living/basic/pets/parrot/parrot_subtypes.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/pets/parrot/parrot_subtypes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/pets/parrot/parrot_subtypes.dm

/mob/living/basic/parrot/headsettedParrot that will just randomly spawn with a headset. Nothing too special beyond that.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/pets/parrot/poly.html b/code/modules/mob/living/basic/pets/parrot/poly.html new file mode 100644 index 0000000000000..5e1e3e6e30a5d --- /dev/null +++ b/code/modules/mob/living/basic/pets/parrot/poly.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/pets/parrot/poly.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/basic/pets/parrot/poly.dm

POLY_DEFAULTDefault poly, presumably died the last shift and has no special traits.
POLY_LONGEST_SURVIVALPoly has survived a number of rounds equivalent to the longest survival of his being.
POLY_BEATING_DEATHSTREAKPoly has survived a number of rounds equivalent to the longest deathstreak of his being.
POLY_CONSECUTIVE_ROUNDPoly has only just survived a round, and is doing a consecutive one.
POLY_POSSESS_FILTERhaunt filter we apply to who we possess
POLY_POSSESS_GLOWhaunt filter color we apply to who we possess
/mob/living/basic/parrot/polyThe classically famous compadre to the Chief Engineer, Poly.

Define Details

POLY_BEATING_DEATHSTREAK

Poly has survived a number of rounds equivalent to the longest deathstreak of his being.

POLY_CONSECUTIVE_ROUND

Poly has only just survived a round, and is doing a consecutive one.

POLY_DEFAULT

Default poly, presumably died the last shift and has no special traits.

POLY_LONGEST_SURVIVAL

Poly has survived a number of rounds equivalent to the longest survival of his being.

POLY_POSSESS_FILTER

haunt filter we apply to who we possess

POLY_POSSESS_GLOW

haunt filter color we apply to who we possess

\ No newline at end of file diff --git a/code/modules/mob/living/basic/pets/pet_cult/pet_cult_ai.html b/code/modules/mob/living/basic/pets/pet_cult/pet_cult_ai.html new file mode 100644 index 0000000000000..1e6a4176cdb71 --- /dev/null +++ b/code/modules/mob/living/basic/pets/pet_cult/pet_cult_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/pets/pet_cult/pet_cult_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/pets/pet_cult/pet_cult_ai.dm

/datum/targeting_strategy/basic/cultisttargeting strat to attack non cultists
/datum/ai_planning_subtree/befriend_cultistsbefriend all cultists around us!
/datum/ai_behavior/find_and_set/friendly_cultistbehavior to find cultists that we befriend
/datum/ai_planning_subtree/find_occupied_runesubtree to find a rune with a viable target on it, so we can go activate it
/datum/ai_planning_subtree/find_dead_cultistfind targets that we can revive
/datum/ai_behavior/drag_target_to_runebehavior to drag the target onto the rune
/datum/pet_command/untargeted_ability/draw_runecommand ability to draw runes
\ No newline at end of file diff --git a/code/modules/mob/living/basic/pets/sloth.html b/code/modules/mob/living/basic/pets/sloth.html new file mode 100644 index 0000000000000..a2bc1b861bf61 --- /dev/null +++ b/code/modules/mob/living/basic/pets/sloth.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/pets/sloth.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/pets/sloth.dm

/datum/ai_controller/basic_controller/slothThey're really passive in game, so they just wanna get away if you start smacking them. No trees in space from them to use for clawing your eyes out, but they will try if desperate.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/ruin_defender/cybersun_aicore.html b/code/modules/mob/living/basic/ruin_defender/cybersun_aicore.html new file mode 100644 index 0000000000000..d3ba30dd42bc0 --- /dev/null +++ b/code/modules/mob/living/basic/ruin_defender/cybersun_aicore.html @@ -0,0 +1,3 @@ +code/modules/mob/living/basic/ruin_defender/cybersun_aicore.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/basic/ruin_defender/cybersun_aicore.dm

LIGHTNING_ABILITY_TYPEPATHBoss for the hauntedtradingpost space ruin +It's a stationary AI core that casts spells
/datum/ai_controller/basic_controller/cybersun_ai_corehow the ai core thinks
/datum/ai_planning_subtree/targeted_mob_ability/lightning_strikeDA SPELLS!

Define Details

LIGHTNING_ABILITY_TYPEPATH

Boss for the hauntedtradingpost space ruin +It's a stationary AI core that casts spells

\ No newline at end of file diff --git a/code/modules/mob/living/basic/ruin_defender/skeleton.html b/code/modules/mob/living/basic/ruin_defender/skeleton.html new file mode 100644 index 0000000000000..930647b959783 --- /dev/null +++ b/code/modules/mob/living/basic/ruin_defender/skeleton.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/ruin_defender/skeleton.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/ruin_defender/skeleton.dm

/datum/ai_controller/basic_controller/skeletonSkeletons mostly just beat people to death, but they'll also find and drink milk.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/ruin_defender/wizard/wizard.html b/code/modules/mob/living/basic/ruin_defender/wizard/wizard.html new file mode 100644 index 0000000000000..654ad468b1fe8 --- /dev/null +++ b/code/modules/mob/living/basic/ruin_defender/wizard/wizard.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/ruin_defender/wizard/wizard.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/ruin_defender/wizard/wizard.dm

/mob/living/basic/wizard/classicUses the colors and loadout of the original wizard simplemob
\ No newline at end of file diff --git a/code/modules/mob/living/basic/ruin_defender/wizard/wizard_ai.html b/code/modules/mob/living/basic/ruin_defender/wizard/wizard_ai.html new file mode 100644 index 0000000000000..02989d4c59b1a --- /dev/null +++ b/code/modules/mob/living/basic/ruin_defender/wizard/wizard_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/ruin_defender/wizard/wizard_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/ruin_defender/wizard/wizard_ai.dm

/datum/ai_controller/basic_controller/wizardWizards run away from their targets while flinging spells at them and blinking constantly.
/datum/ai_planning_subtree/targeted_mob_ability/wizard_spellCast a wizard spell. There is a minimum cooldown between spellcasts to prevent overwhelming spam.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/ruin_defender/wizard/wizard_spells.html b/code/modules/mob/living/basic/ruin_defender/wizard/wizard_spells.html new file mode 100644 index 0000000000000..7b23310112509 --- /dev/null +++ b/code/modules/mob/living/basic/ruin_defender/wizard/wizard_spells.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/ruin_defender/wizard/wizard_spells.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/ruin_defender/wizard/wizard_spells.dm

/datum/action/cooldown/spell/pointed/projectile/fireball/lesserLesser fireball, which is slightly less "instant death" than the normal one
/datum/action/cooldown/spell/teleport/radius_turf/blink/lesserLesser Blink, shorter range than the normal blink spell
\ No newline at end of file diff --git a/code/modules/mob/living/basic/slime/slime.html b/code/modules/mob/living/basic/slime/slime.html new file mode 100644 index 0000000000000..9695abbb45ae8 --- /dev/null +++ b/code/modules/mob/living/basic/slime/slime.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/slime/slime.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/slime/slime.dm

/mob/living/basic/slime/randomRandom slime subtype
/mob/living/basic/slime/petFriendly docile subtype
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp.html b/code/modules/mob/living/basic/space_fauna/carp/carp.html new file mode 100644 index 0000000000000..78cf06664b74d --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/carp/carp.html @@ -0,0 +1,4 @@ +code/modules/mob/living/basic/space_fauna/carp/carp.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/basic/space_fauna/carp/carp.dm

/mob/living/basic/carp
/mob/living/basic/carp/holographicHolographic carp from the holodeck
/mob/living/basic/carp/petPet carp, abstract carp which just holds some shared properties.
/mob/living/basic/carp/pet/liaLia - Sometimes the pet of the Head of Security. +Has a lot more health than a normal carp because she's meant to be a mildly more threatening pet to have to assassinate than an aging corgi.
RARE_CAYENNE_CHANCEBoosted chance for Cayenne to be silver
/mob/living/basic/carp/pet/cayenneCayenne - Loyal member of the nuclear operatives. +Spawns in the nuke op shuttle, can be made sapient if they want to do that for some reason. +Is very talented and also capable of holding the nuclear disk.
/mob/living/basic/carp/ellaCarp-parasite from carpellosis disease
/mob/living/basic/carp/passiveWild carp that just vibe ya know

Define Details

RARE_CAYENNE_CHANCE

Boosted chance for Cayenne to be silver

\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp_abilities.html b/code/modules/mob/living/basic/space_fauna/carp/carp_abilities.html new file mode 100644 index 0000000000000..4c8b0c54bfcd2 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/carp/carp_abilities.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/space_fauna/carp/carp_abilities.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/carp/carp_abilities.dm

/datum/action/cooldown/mob_cooldown/projectile_attack/magicarp_boltHolder ability simply for "firing a projectile with a cooldown". +Probably won't do anything if assigned via VV unless you also VV in a projectile for it.
/datum/action/cooldown/mob_cooldown/projectile_attack/magicarp_bolt/chaosChaos variant picks one from a list
/datum/action/cooldown/mob_cooldown/lesser_carp_riftTeleport a short distance and leave a short-lived portal for people to follow through
/obj/effect/temp_visual/lesser_carp_riftIf you touch the entrance you are teleported to the exit, exit doesn't do anything
/obj/effect/temp_visual/lesser_carp_rift/entranceIf you touch this you are taken to the exit
/obj/effect/temp_visual/lesser_carp_rift/exitDoesn't actually do anything, just a visual marker
/obj/effect/temp_visual/lesser_carp_rift_dissipatingJust an animation
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp_ai_actions.html b/code/modules/mob/living/basic/space_fauna/carp/carp_ai_actions.html new file mode 100644 index 0000000000000..e9229528ff7be --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/carp/carp_ai_actions.html @@ -0,0 +1,3 @@ +code/modules/mob/living/basic/space_fauna/carp/carp_ai_actions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/carp/carp_ai_actions.dm

/datum/ai_planning_subtree/basic_melee_attack_subtree/magicarpAs basic attack tree but interrupt if your health gets low or if your spell is off cooldown
/datum/ai_behavior/basic_melee_attack/magicarpInterrupt your attack chain if: you have a spell, it's not on cooldown, and it has a target
/datum/ai_planning_subtree/find_nearest_magicarp_spell_targetFind a target for the magicarp's spell +This gets weird because different spells want different targeting +but I didn't want a new ai controller for every different spell
/datum/ai_behavior/find_potential_targets/nearest/magicarpThis subtype only exists because if you queue multiple of the same action with different arguments it deletes their stored arguments
/datum/ai_planning_subtree/targeted_mob_ability/magicarpThen use it on that target
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp_ai_migration.html b/code/modules/mob/living/basic/space_fauna/carp/carp_ai_migration.html new file mode 100644 index 0000000000000..528ec684f966a --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/carp/carp_ai_migration.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/carp/carp_ai_migration.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/basic/space_fauna/carp/carp_ai_migration.dm

CARP_DESTINATION_SEARCH_RANGEHow close you need to get to the destination in order to consider yourself there
CARP_PORTAL_SEARCH_RANGEIf there's a portal this close to us we'll enter it just on the basis that the carp who made it probably knew where they were going
/datum/ai_planning_subtree/carp_migrationWill try to plan a path between a list of locations for carp to travel through
/datum/ai_behavior/find_next_carp_migration_stepRecords the next turf we want to travel to into the blackboard for other actions

Define Details

CARP_DESTINATION_SEARCH_RANGE

How close you need to get to the destination in order to consider yourself there

CARP_PORTAL_SEARCH_RANGE

If there's a portal this close to us we'll enter it just on the basis that the carp who made it probably knew where they were going

\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp_ai_rift_actions.html b/code/modules/mob/living/basic/space_fauna/carp/carp_ai_rift_actions.html new file mode 100644 index 0000000000000..3ea3f64a7c28b --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/carp/carp_ai_rift_actions.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/carp/carp_ai_rift_actions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/carp/carp_ai_rift_actions.dm

/datum/ai_planning_subtree/make_carp_riftPlan a carp rift action, so basically teleport somewhere if the action is available
/datum/ai_planning_subtree/make_carp_rift/panic_teleportPlan to teleport away from our target so they can't fuck us up
/datum/ai_planning_subtree/make_carp_rift/aggressive_teleportPlan to teleport towards our target so we can fuck them up
/datum/ai_behavior/make_carp_riftMake a carp rift somewhere
/datum/ai_behavior/make_carp_rift/awayMake a rift bringing you further away from your target
/datum/ai_behavior/make_carp_rift/towardsMake a rift bringing you closer to your target
/datum/ai_behavior/make_carp_rift/towards/aggressiveMake a rift towards your target if you are blocked from moving or if it is far away
/datum/ai_behavior/make_carp_rift/towards/unvalidatedSkip validation checks because we already did them in the controller
/datum/ai_planning_subtree/shortcut_to_target_through_carp_riftIf there's a carp rift heading your way, plan to ride it to your target
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.html b/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.html new file mode 100644 index 0000000000000..d3f560f346417 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.html @@ -0,0 +1,5 @@ +code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm

/datum/ai_controller/basic_controller/carpAI controller for carp +Expected flow is:
/datum/ai_controller/basic_controller/carp/megaMegacarps. The only difference is that they don't flee from scary fishermen and prioritize them.
/datum/ai_controller/basic_controller/carp/petCarp which bites back, but doesn't look for targets. +'Not hunting targets' includes food (and can rings), because they have been well trained.
/datum/ai_controller/basic_controller/carp/rangedAI for carp with a spell. +Flow is basically the same as regular carp, except it will try and cast a spell at its target whenever possible and not fleeing.
/datum/ai_controller/basic_controller/carp/passiveCarp which bites back, but doesn't look for targets and doesnt do as much damage +Still migrate and stuff
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/carp/magicarp.html b/code/modules/mob/living/basic/space_fauna/carp/magicarp.html new file mode 100644 index 0000000000000..f6c530b76e20f --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/carp/magicarp.html @@ -0,0 +1,5 @@ +code/modules/mob/living/basic/space_fauna/carp/magicarp.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/carp/magicarp.dm

/mob/living/basic/carp/magicCarp who can cast spells! +Mostly created via wizard event or transformation. +Come in 'does one thing' and 'does random things' varieties.
/mob/living/basic/carp/magic/chaosFires a random spell (and changes colour) every time, also beefier. +Sometimes actually more durable than the much larger megacarp. That's magic for you. +They trade off for this with a tendency to fireball themselves.
/mob/living/basic/carp/magic/xenobiologyHas a more limited spell pool but can appear from gold slime cores
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/carp/megacarp.html b/code/modules/mob/living/basic/space_fauna/carp/megacarp.html new file mode 100644 index 0000000000000..7da31c79ebd03 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/carp/megacarp.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/carp/megacarp.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/carp/megacarp.dm

/mob/living/basic/carp/mega
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/cat_surgeon.html b/code/modules/mob/living/basic/space_fauna/cat_surgeon.html new file mode 100644 index 0000000000000..da36cea5cc028 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/cat_surgeon.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/cat_surgeon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/cat_surgeon.dm

/mob/living/basic/cat_butcherer
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/changeling/flesh_spider.html b/code/modules/mob/living/basic/space_fauna/changeling/flesh_spider.html new file mode 100644 index 0000000000000..4040867d338cb --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/changeling/flesh_spider.html @@ -0,0 +1,3 @@ +code/modules/mob/living/basic/space_fauna/changeling/flesh_spider.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/changeling/flesh_spider.dm

/mob/living/basic/flesh_spiderSpider-esque mob summoned by changelings. Exclusively player-controlled. +An independent hit-and-run antagonist which can make webs and heals itself if left undamaged for a few seconds. +Not a spider subtype because it keeps getting hit by unrelated balance changes intended for the Giant Spiders gamemode.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/changeling/headslug.html b/code/modules/mob/living/basic/space_fauna/changeling/headslug.html new file mode 100644 index 0000000000000..efc4ddf35d5d2 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/changeling/headslug.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/space_fauna/changeling/headslug.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/changeling/headslug.dm

/mob/living/basic/headslug
/datum/ai_controller/basic_controller/headslugThis is a bit neutered since these aren't intended to exist outside of player control, but it's a bit weird to just have these guys be completely stationary. +No attacking or anything like that, though. Just something so they seem alive.
/mob/living/basic/headslug/beaklessNeutered version to prevent people from turning themselves into changelings with sentience potions or transformation
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/demon/demon.html b/code/modules/mob/living/basic/space_fauna/demon/demon.html new file mode 100644 index 0000000000000..c1d20581b5c9c --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/demon/demon.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/demon/demon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/demon/demon.dm

/mob/living/basic/demonPlayer controlled mobs that rip and tear, typically summoned by wizards.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/demon/demon_items.html b/code/modules/mob/living/basic/space_fauna/demon/demon_items.html new file mode 100644 index 0000000000000..8fa17f55aa9dc --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/demon/demon_items.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/demon/demon_items.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/demon/demon_items.dm

/obj/item/organ/internal/heart/demonThe loot from killing a slaughter demon - can be consumed to allow the user to blood crawl
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/demon/demon_subtypes.html b/code/modules/mob/living/basic/space_fauna/demon/demon_subtypes.html new file mode 100644 index 0000000000000..b7e4b71b2f73b --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/demon/demon_subtypes.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/demon/demon_subtypes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/demon/demon_subtypes.dm

/mob/living/basic/demon/slaughterThe famous blood-crawling slaughter demons of wizardry fame.
/mob/living/basic/demon/slaughter/laughterThe laughter demon! It's everyone's best friend! It just wants to hug them so much, it wants to hug everyone at once!
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/ghost.html b/code/modules/mob/living/basic/space_fauna/ghost.html new file mode 100644 index 0000000000000..393cc9716d51b --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/ghost.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/ghost.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/ghost.dm

/mob/living/basic/ghost/swarmWeaker variant of ghosts. Meant to be summoned in swarms via the ectoplasmic anomaly and associated ghost portal.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/hivebot/hivebot_behavior.html b/code/modules/mob/living/basic/space_fauna/hivebot/hivebot_behavior.html new file mode 100644 index 0000000000000..2321997c9bcd0 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/hivebot/hivebot_behavior.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/hivebot/hivebot_behavior.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/hivebot/hivebot_behavior.dm

/datum/ai_behavior/relay_messagebehavior that allow us to go communicate with other hivebots
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/lightgeist.html b/code/modules/mob/living/basic/space_fauna/lightgeist.html new file mode 100644 index 0000000000000..511385d5eecd4 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/lightgeist.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/lightgeist.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/lightgeist.dm

/mob/living/basic/lightgeist
/datum/targeting_strategy/lightgeistAttack only mobs who have damage that we can heal, I think this is specific enough not to be a generic type
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/meteor_heart/chasing_spikes.html b/code/modules/mob/living/basic/space_fauna/meteor_heart/chasing_spikes.html new file mode 100644 index 0000000000000..8d1bcd154d23d --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/meteor_heart/chasing_spikes.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/meteor_heart/chasing_spikes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/meteor_heart/chasing_spikes.dm

/datum/action/cooldown/mob_cooldown/chasing_spikesAn ability which makes spikes come out of the ground towards your target
/obj/effect/temp_visual/effect_trail/spike_chaserAn invisible effect which chases a target, spawning spikes every so often.
/obj/effect/temp_visual/emerging_ground_spikeA spike comes out of the ground, dealing damage after a short delay
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_eyeball.html b/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_eyeball.html new file mode 100644 index 0000000000000..09a598b01d795 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_eyeball.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_eyeball.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_eyeball.dm

/obj/structure/meateor_fluff/eyeballBasically just an organic floor light
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_heart.html b/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_heart.html new file mode 100644 index 0000000000000..6d1d49fe9d3e4 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_heart.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_heart.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_heart.dm

/obj/effect/temp_visual/meteor_heart_deathDramatic death animation for the meteor heart mob
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_heart_ai.html b/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_heart_ai.html new file mode 100644 index 0000000000000..62193479c783e --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_heart_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_heart_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_heart_ai.dm

/datum/ai_controller/basic_controller/meteor_heartA spellcasting AI which does not move
/datum/ai_planning_subtree/sleep_with_no_target/meteor_heartAfter enough time with no target, deaggro and change animation state
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/meteor_heart/spine_traps.html b/code/modules/mob/living/basic/space_fauna/meteor_heart/spine_traps.html new file mode 100644 index 0000000000000..6609bc47d004e --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/meteor_heart/spine_traps.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/meteor_heart/spine_traps.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/meteor_heart/spine_traps.dm

/datum/action/cooldown/mob_cooldown/spine_trapsMarks several areas with thrusting spines which damage and slow people
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/morph.html b/code/modules/mob/living/basic/space_fauna/morph.html new file mode 100644 index 0000000000000..d86665125dcd7 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/morph.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/space_fauna/morph.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/morph.dm

/mob/living/basic/morphThe classic morph, Corpus Accipientis (or "The body of the recipient"). It's a blob that can disguise itself as other things simply put.
/datum/ai_controller/basic_controller/morphNo fleshed out AI implementation, just something that make these fellers seem lively if they're just dropped into a station. +Only real human-powered intelligence is capable of playing prop hunt in SS13 (until further notice).
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/netherworld/creature.html b/code/modules/mob/living/basic/space_fauna/netherworld/creature.html new file mode 100644 index 0000000000000..f125c204dc294 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/netherworld/creature.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/netherworld/creature.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/netherworld/creature.dm

/datum/action/cooldown/spell/jaunt/creature_teleportJaunt spell used by creature. Can only jaunt or unjaunt if nothing can see you.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/netherworld/migo.html b/code/modules/mob/living/basic/space_fauna/netherworld/migo.html new file mode 100644 index 0000000000000..1a3f61e5c338c --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/netherworld/migo.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/netherworld/migo.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/netherworld/migo.dm

/mob/living/basic/migo/hatsuneThe special hatsune miku themed mi-go.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.html b/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.html new file mode 100644 index 0000000000000..fae5fe8127185 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm

/mob/living/basic/regal_ratThe cheesiest, most crowned rat of them all. Regent superior of all rats in maintenance... at least until someone else tries to encroach on their claim.
/mob/living/basic/regal_rat/controlledRegal rat subtype which can be possessed by ghosts
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat_actions.html b/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat_actions.html new file mode 100644 index 0000000000000..a93b1dfba2651 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat_actions.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat_actions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat_actions.dm

/datum/action/cooldown/mob_cooldown/domainIncrease the rat king's domain
/datum/action/cooldown/mob_cooldown/riotThis action checks some nearby maintenance animals and makes them your minions. +If none are nearby, creates a new mouse.
/datum/reagent/rat_spitSpittle; harmless reagent that is added by rat king, and makes you disgusted.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/revenant/_revenant.html b/code/modules/mob/living/basic/space_fauna/revenant/_revenant.html new file mode 100644 index 0000000000000..88670a1f5429e --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/revenant/_revenant.html @@ -0,0 +1,3 @@ +code/modules/mob/living/basic/space_fauna/revenant/_revenant.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/basic/space_fauna/revenant/_revenant.dm

REVENANT_STUNNED_TRAITSource for a trait we get when we're stunned
/mob/living/basic/revenantRevenants: "Ghosts" that are invisible and move like ghosts, cannot take damage while invisible +Can hear deadchat, but are NOT normal ghosts and do NOT have x-ray vision +Admin-spawn or random event

Define Details

REVENANT_STUNNED_TRAIT

Source for a trait we get when we're stunned

\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/revenant/revenant_effects.html b/code/modules/mob/living/basic/space_fauna/revenant/revenant_effects.html new file mode 100644 index 0000000000000..4f5cf517362dd --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/revenant/revenant_effects.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/revenant/revenant_effects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/revenant/revenant_effects.dm

/datum/status_effect/revenantParent type for all unique revenant status effects
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/robot_customer.html b/code/modules/mob/living/basic/space_fauna/robot_customer.html new file mode 100644 index 0000000000000..64a2d8f35017d --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/robot_customer.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/robot_customer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/robot_customer.dm

/mob/living/basic/robot_customerRobot customers
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/snake/snake.html b/code/modules/mob/living/basic/space_fauna/snake/snake.html new file mode 100644 index 0000000000000..b5f799d5eebed --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/snake/snake.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/snake/snake.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/snake/snake.dm

/datum/ai_controller/basic_controller/snakeSnakes are primarily concerned with getting those tasty, tasty mice, but aren't afraid to strike back at those who attack them
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/space_dragon/dragon_breath.html b/code/modules/mob/living/basic/space_fauna/space_dragon/dragon_breath.html new file mode 100644 index 0000000000000..9eb68a6a8f36a --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/space_dragon/dragon_breath.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/space_dragon/dragon_breath.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/space_dragon/dragon_breath.dm

/datum/action/cooldown/mob_cooldown/fire_breath/carpA space dragon's fire breath, toasts lunch AND buffs your friends
/datum/status_effect/carp_invigorationMakes you run faster for the duration
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/space_dragon/dragon_gust.html b/code/modules/mob/living/basic/space_fauna/space_dragon/dragon_gust.html new file mode 100644 index 0000000000000..c229e9bff8412 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/space_dragon/dragon_gust.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/space_dragon/dragon_gust.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/basic/space_fauna/space_dragon/dragon_gust.dm

DEFAULT_ACTIVATED_ENDLAGDefault additional time to spend stunned per usage of ability
/datum/action/cooldown/mob_cooldown/wing_buffetRise into the air and slam down, knocking people away. No real cooldown but has escalating endlag if used in quick succession.

Define Details

DEFAULT_ACTIVATED_ENDLAG

Default additional time to spend stunned per usage of ability

\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.html b/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.html new file mode 100644 index 0000000000000..d2da0c866390f --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.html @@ -0,0 +1,3 @@ +code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm

REJECT_DARK_COLOUR_THRESHOLDYou can't make a dragon darker than this, it'd be hard to see
DOAFTER_SOURCE_SPACE_DRAGON_INTERACTIONAny interactions executed by the space dragon
/mob/living/basic/space_dragonAdvanced stage of the space carp life cycle, spawned as a midround antagonist +Can eat corpses to heal, blow people back with its wings, and obviously as a dragon it breathes fire. It can even tear through walls. +The midround even version also creates rifts which summon carp, and heals when near them.
/mob/living/basic/space_dragon/spawn_with_antagSubtype used by the midround/event

Define Details

DOAFTER_SOURCE_SPACE_DRAGON_INTERACTION

Any interactions executed by the space dragon

REJECT_DARK_COLOUR_THRESHOLD

You can't make a dragon darker than this, it'd be hard to see

\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spider_ai.html b/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spider_ai.html new file mode 100644 index 0000000000000..d86643df2b8ee --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spider_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spider_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spider_ai.dm

/datum/ai_controller/basic_controller/giant_spiderAttacks people it can see, spins webs if it can't see anything to attack.
/datum/ai_controller/basic_controller/giant_spider/weakGiant spider which won't attack structures
/datum/ai_controller/basic_controller/giant_spider/retaliateUsed by Araneus, who only attacks those who attack first. He is house-trained and will not web up the HoS office.
/datum/ai_controller/basic_controller/giant_spider/pestRetaliates, hunts other maintenance creatures, runs away from larger attackers, and spins webs.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spider_subtrees.html b/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spider_subtrees.html new file mode 100644 index 0000000000000..0439bb57772c1 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spider_subtrees.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spider_subtrees.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spider_subtrees.dm

/datum/ai_planning_subtree/find_unwebbed_turfSearch for a nearby location to put webs on
/datum/ai_behavior/find_unwebbed_turfFind an unwebbed nearby turf and store it
/datum/ai_planning_subtree/spin_webRun the spin web behaviour if we have an ability to use for it
/datum/ai_behavior/spin_webMove to an unwebbed nearby turf and web it up
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spiders.html b/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spiders.html new file mode 100644 index 0000000000000..0ebd14dcdb013 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spiders.html @@ -0,0 +1,3 @@ +code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spiders.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spiders.dm

/mob/living/basic/spider/giantA mob which can be created by dynamic event, botany, or xenobiology. +The basic type is the guard, which is slow but sturdy and outputs good damage. +All spiders can produce webbing.
/mob/living/basic/spider/giant/ambush
/mob/living/basic/spider/giant/guard
/mob/living/basic/spider/giant/hunter
/mob/living/basic/spider/giant/hunter/away_cavesUsed in the caves away mission.
/mob/living/basic/spider/giant/scout
/mob/living/basic/spider/giant/nurse
/mob/living/basic/spider/giant/nurse/away_cavesUsed in the caves away mission.
/mob/living/basic/spider/giant/tangle
/mob/living/basic/spider/giant/tank
/mob/living/basic/spider/giant/breacher
/mob/living/basic/spider/giant/tarantula
/mob/living/basic/spider/giant/viper
/mob/living/basic/spider/giant/midwife
/mob/living/basic/spider/giant/ice
/mob/living/basic/spider/giant/nurse/ice
/mob/living/basic/spider/giant/hunter/ice
/mob/living/basic/spider/giant/hunter/scrawny
/mob/living/basic/spider/giant/tarantula/scrawny
/mob/living/basic/spider/giant/nurse/scrawny
/mob/living/basic/spider/giant/viper/wizard
/mob/living/basic/spider/giant/sgt_araneus
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/spider/spider.html b/code/modules/mob/living/basic/space_fauna/spider/spider.html new file mode 100644 index 0000000000000..c9553ee0f3974 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/spider/spider.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/spider/spider.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/spider/spider.dm

/mob/living/basic/spiderBase type of various spider life stages
/mob/living/basic/spider/growingSpider which turns into another spider over time
/mob/living/basic/spider/maintenance
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/spider/spider_abilities/hivemind.html b/code/modules/mob/living/basic/space_fauna/spider/spider_abilities/hivemind.html new file mode 100644 index 0000000000000..308ea7560deb6 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/spider/spider_abilities/hivemind.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/space_fauna/spider/spider_abilities/hivemind.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/spider/spider_abilities/hivemind.dm

/datum/action/cooldown/mob_cooldown/set_spider_directiveSets a directive to be given to all future spiders created by the user. +This will be overwritten if used again.
/datum/action/cooldown/mob_cooldown/command_spidersSends a message to all currently living spiders.
/datum/action/cooldown/mob_cooldown/command_spiders/communication_spidersSends a small message to all currently living spiders.
/datum/action/cooldown/mob_cooldown/command_spiders/warning_spidersSends a smaller message to all currently living spiders.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/spider/spider_abilities/web.html b/code/modules/mob/living/basic/space_fauna/spider/spider_abilities/web.html new file mode 100644 index 0000000000000..99f3b23116432 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/spider/spider_abilities/web.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/spider/spider_abilities/web.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/spider/spider_abilities/web.dm

/datum/action/cooldown/mob_cooldown/lay_webMake a sticky web under yourself for area fortification
/datum/action/cooldown/mob_cooldown/lay_web/geneticVariant for genetics, created webs only allow the creator passage
/datum/action/cooldown/mob_cooldown/lay_web/sealerVariant which allows webs to be stacked into walls
/datum/action/cooldown/mob_cooldown/web_effigyMakes a solid statue which you can use as cover
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/spider/spiderlings/spiderling.html b/code/modules/mob/living/basic/space_fauna/spider/spiderlings/spiderling.html new file mode 100644 index 0000000000000..60706720b7e5e --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/spider/spiderlings/spiderling.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/space_fauna/spider/spiderlings/spiderling.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/spider/spiderlings/spiderling.dm

/mob/living/basic/spider/growing/spiderlingBaby spiders that are generated through a variety of means (like botany for instance). +Able to vent-crawl and eventually grow into a full fledged giant spider.
/datum/ai_controller/basic_controller/spiderlingOpportunistically hops in and out of vents, if it can find one. We aren't interested in attacking due to how weak we are, we gotta be quick and hidey.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/spider/spiderlings/spiderling_subtypes.html b/code/modules/mob/living/basic/space_fauna/spider/spiderlings/spiderling_subtypes.html new file mode 100644 index 0000000000000..49566d2929c5f --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/spider/spiderlings/spiderling_subtypes.html @@ -0,0 +1,2 @@ +code/modules/mob/living/basic/space_fauna/spider/spiderlings/spiderling_subtypes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/spider/spiderlings/spiderling_subtypes.dm

/mob/living/basic/spider/growing/spiderling/guardThis whole file is just a container for the spiderling subtypes that actually differentiate into different young spiders. None of them are particularly special as of now. +Will differentiate into the base young spider (known colloquially as the "guard" spider).
/mob/living/basic/spider/growing/spiderling/ambushWill differentiate into the "ambush" young spider.
/mob/living/basic/spider/growing/spiderling/scoutWill differentiate into the "scout" young spider.
/mob/living/basic/spider/growing/spiderling/hunterWill differentiate into the "hunter" young spider.
/mob/living/basic/spider/growing/spiderling/nurseWill differentiate into the "nurse" young spider.
/mob/living/basic/spider/growing/spiderling/tangleWill differentiate into the "tangle" young spider.
/mob/living/basic/spider/growing/spiderling/tankWill differentiate into the "tank" young spider.
/mob/living/basic/spider/growing/spiderling/breacherWill differentiate into the "breacher" young spider.
/mob/living/basic/spider/growing/spiderling/midwifeWill differentiate into the "midwife" young spider.
/mob/living/basic/spider/growing/spiderling/viperWill differentiate into the "viper" young spider.
/mob/living/basic/spider/growing/spiderling/tarantulaWill differentiate into the "tarantula" young spider.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/spider/young_spider/young_spider.html b/code/modules/mob/living/basic/space_fauna/spider/young_spider/young_spider.html new file mode 100644 index 0000000000000..914816e5180d4 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/spider/young_spider/young_spider.html @@ -0,0 +1,3 @@ +code/modules/mob/living/basic/space_fauna/spider/young_spider/young_spider.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/spider/young_spider/young_spider.dm

/mob/living/basic/spider/growing/youngA mob which can be created by spiderlings/spider eggs. +The basic type is the guard, which is slow but sturdy and outputs good damage. +All spiders can produce webbing.
/datum/ai_controller/basic_controller/young_spiderUsed by all young spiders if they ever appear.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/spider/young_spider/young_spider_subtypes.html b/code/modules/mob/living/basic/space_fauna/spider/young_spider/young_spider_subtypes.html new file mode 100644 index 0000000000000..68e892e259566 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/spider/young_spider/young_spider_subtypes.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/spider/young_spider/young_spider_subtypes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/spider/young_spider/young_spider_subtypes.dm

/mob/living/basic/spider/growing/young/guardWill differentiate into the base giant spider (known colloquially as the "guard" spider).
/mob/living/basic/spider/growing/young/ambushWill differentiate into the "ambush" giant spider.
/mob/living/basic/spider/growing/young/scoutWill differentiate into the "scout" giant spider.
/mob/living/basic/spider/growing/young/hunterWill differentiate into the "hunter" giant spider.
/mob/living/basic/spider/growing/young/nurseWill differentiate into the "nurse" giant spider.
/mob/living/basic/spider/growing/young/tangleWill differentiate into the "tangle" giant spider.
/mob/living/basic/spider/growing/young/tankWill differentiate into the "tank" giant spider.
/mob/living/basic/spider/growing/young/breacherWill differentiate into the "breacher" giant spider.
/mob/living/basic/spider/growing/young/midwifeWill differentiate into the "midwife" giant spider.
/mob/living/basic/spider/growing/young/viperWill differentiate into the "viper" giant spider.
/mob/living/basic/spider/growing/young/tarantulaWill differentiate into the "tarantula" giant spider.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/supermatter_spider.html b/code/modules/mob/living/basic/space_fauna/supermatter_spider.html new file mode 100644 index 0000000000000..57b45fd2eaddb --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/supermatter_spider.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/supermatter_spider.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/supermatter_spider.dm

/mob/living/basic/supermatter_spiderA nasty little robotic bug that dusts people on attack. Jeepers. This should be a very, very, very rare spawn.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/wumborian_fugu/fugu_gland.html b/code/modules/mob/living/basic/space_fauna/wumborian_fugu/fugu_gland.html new file mode 100644 index 0000000000000..fb25e7a092c5a --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/wumborian_fugu/fugu_gland.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/wumborian_fugu/fugu_gland.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/wumborian_fugu/fugu_gland.dm

/obj/item/fugu_glandItem you use on a mob to make it bigger and stronger
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/wumborian_fugu/inflation.html b/code/modules/mob/living/basic/space_fauna/wumborian_fugu/inflation.html new file mode 100644 index 0000000000000..966751ab2b2bc --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/wumborian_fugu/inflation.html @@ -0,0 +1,3 @@ +code/modules/mob/living/basic/space_fauna/wumborian_fugu/inflation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/wumborian_fugu/inflation.dm

/datum/action/cooldown/fugu_expandAction which inflates you, making you larger and stronger for the duration. Also invulnerable. +This is pretty much all just handled by a status effect. +Unfortunately the requirements here are specific enough that it kind of only works for the mob it is designed for.
/datum/status_effect/inflatedStatus effect from the Expand action, makes you big and round and strong.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/wumborian_fugu/wumborian_ai.html b/code/modules/mob/living/basic/space_fauna/wumborian_fugu/wumborian_ai.html new file mode 100644 index 0000000000000..5b09cbd2f4ec4 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/wumborian_fugu/wumborian_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/space_fauna/wumborian_fugu/wumborian_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/wumborian_fugu/wumborian_ai.dm

/datum/ai_controller/basic_controller/wumborian_fuguCowardly when small, aggressive when big. Tries to transform whenever possible.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/space_fauna/wumborian_fugu/wumborian_fugu.html b/code/modules/mob/living/basic/space_fauna/wumborian_fugu/wumborian_fugu.html new file mode 100644 index 0000000000000..eedf2a261b372 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/wumborian_fugu/wumborian_fugu.html @@ -0,0 +1,3 @@ +code/modules/mob/living/basic/space_fauna/wumborian_fugu/wumborian_fugu.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/wumborian_fugu/wumborian_fugu.dm

/mob/living/basic/wumborian_fuguA strange alien creature capable of increasing its mass when threatened, when not inflated it is virtually defenceless. +Mostly only appears from xenobiology, or the occasional wizard. +On death, the "fugu gland" is dropped, which can be used on mobs to increase their size, health, strength, and lets them smash walls.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/trader/trader_ai.html b/code/modules/mob/living/basic/trader/trader_ai.html new file mode 100644 index 0000000000000..96240b5887c8d --- /dev/null +++ b/code/modules/mob/living/basic/trader/trader_ai.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/trader/trader_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/trader/trader_ai.dm

/datum/ai_planning_subtree/setup_shopSubtree to find our very first customer and set up our shop after walking right into their face
/datum/ai_behavior/setup_shopThe ai will create a shop the moment they see a potential costumer
/datum/ai_planning_subtree/setup_shop/jumpscareVersion of setup show where the trader will run at you to assault you with incredible deals
\ No newline at end of file diff --git a/code/modules/mob/living/basic/trader/trader_data.html b/code/modules/mob/living/basic/trader/trader_data.html new file mode 100644 index 0000000000000..3ac88aaba4e73 --- /dev/null +++ b/code/modules/mob/living/basic/trader/trader_data.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/trader/trader_data.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/trader/trader_data.dm

/datum/trader_dataUsed to contain the traders initial wares, and speech
\ No newline at end of file diff --git a/code/modules/mob/living/basic/trader/trader_items.html b/code/modules/mob/living/basic/trader/trader_items.html new file mode 100644 index 0000000000000..d0ae8a3c6f2d1 --- /dev/null +++ b/code/modules/mob/living/basic/trader/trader_items.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/trader/trader_items.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/trader/trader_items.dm

/obj/structure/trader_signSale signs
/obj/effect/mob_spawn/corpse/human/skeleton/mrbonesSpawners for outfits
\ No newline at end of file diff --git a/code/modules/mob/living/basic/trooper/abductor.html b/code/modules/mob/living/basic/trooper/abductor.html new file mode 100644 index 0000000000000..b024d893278fe --- /dev/null +++ b/code/modules/mob/living/basic/trooper/abductor.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/trooper/abductor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/trooper/abductor.dm

/mob/living/basic/trooper/abductorAbductor troopers
\ No newline at end of file diff --git a/code/modules/mob/living/basic/trooper/nanotrasen.html b/code/modules/mob/living/basic/trooper/nanotrasen.html new file mode 100644 index 0000000000000..9081a98c46bac --- /dev/null +++ b/code/modules/mob/living/basic/trooper/nanotrasen.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/trooper/nanotrasen.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/trooper/nanotrasen.dm

/mob/living/basic/trooper/nanotrasenNanotrasen Private Security forces
/mob/living/basic/trooper/nanotrasen/screamingA variant that calls for reinforcements on spotting a target
/mob/living/basic/trooper/nanotrasen/peacefulA more peaceful variant that will only attack when attacked, or when another Nanotrasen officer calls for help.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/trooper/pirate.html b/code/modules/mob/living/basic/trooper/pirate.html new file mode 100644 index 0000000000000..e1a6d9cd139d9 --- /dev/null +++ b/code/modules/mob/living/basic/trooper/pirate.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/trooper/pirate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/trooper/pirate.dm

/mob/living/basic/trooper/piratePirate trooper subtype
\ No newline at end of file diff --git a/code/modules/mob/living/basic/trooper/russian.html b/code/modules/mob/living/basic/trooper/russian.html new file mode 100644 index 0000000000000..0b85dbf443d07 --- /dev/null +++ b/code/modules/mob/living/basic/trooper/russian.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/trooper/russian.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/trooper/russian.dm

/mob/living/basic/trooper/russianRussian trooper subtype
\ No newline at end of file diff --git a/code/modules/mob/living/basic/trooper/syndicate.html b/code/modules/mob/living/basic/trooper/syndicate.html new file mode 100644 index 0000000000000..2475aa5357949 --- /dev/null +++ b/code/modules/mob/living/basic/trooper/syndicate.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/trooper/syndicate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/trooper/syndicate.dm

/mob/living/basic/trooper/syndicateSyndicate troopers
/mob/living/basic/trooper/syndicate/rangedGuns
/mob/living/basic/trooper/syndicate/ranged/smg/orionSpawns from an emagged orion trail machine set to kill the player.
/mob/living/basic/visceratorMisc
\ No newline at end of file diff --git a/code/modules/mob/living/basic/vermin/crab.html b/code/modules/mob/living/basic/vermin/crab.html new file mode 100644 index 0000000000000..9a88265639905 --- /dev/null +++ b/code/modules/mob/living/basic/vermin/crab.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/vermin/crab.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/vermin/crab.dm

/datum/ai_controller/basic_controller/crabThe basic ai controller for crabs
\ No newline at end of file diff --git a/code/modules/mob/living/basic/vermin/lizard.html b/code/modules/mob/living/basic/vermin/lizard.html new file mode 100644 index 0000000000000..fc71e6a4dc8e9 --- /dev/null +++ b/code/modules/mob/living/basic/vermin/lizard.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/vermin/lizard.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/vermin/lizard.dm

/mob/living/basic/lizard/spaceLizards that can survive in space.
/mob/living/basic/lizard/wags_his_tailJanitor's pet lizard.
/mob/living/basic/lizard/eats_the_roachesAnother pet lizard for the janitor.
\ No newline at end of file diff --git a/code/modules/mob/living/basic/vermin/mouse.html b/code/modules/mob/living/basic/vermin/mouse.html new file mode 100644 index 0000000000000..258e0a6607482 --- /dev/null +++ b/code/modules/mob/living/basic/vermin/mouse.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/vermin/mouse.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/vermin/mouse.dm

/obj/item/food/deadmouseMice turn into food when they die
/datum/ai_controller/basic_controller/mouseThe mouse AI controller
/datum/ai_planning_subtree/flee_target/mouseDon't look for anything to run away from if you are distracted by being adjacent to cheese
/datum/ai_controller/basic_controller/mouse/ratAI controller for rats, slightly more complex than mice becuase they attack people
\ No newline at end of file diff --git a/code/modules/mob/living/basic/vermin/space_bat.html b/code/modules/mob/living/basic/vermin/space_bat.html new file mode 100644 index 0000000000000..4e436bfd20994 --- /dev/null +++ b/code/modules/mob/living/basic/vermin/space_bat.html @@ -0,0 +1 @@ +code/modules/mob/living/basic/vermin/space_bat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/vermin/space_bat.dm

/datum/ai_controller/basic_controller/space_batController for space bats, has nothing unique, just retaliation.
/mob/living/basic/bat/away_cavesSubtype used in the caves away mission
\ No newline at end of file diff --git a/code/modules/mob/living/brain/posibrain.html b/code/modules/mob/living/brain/posibrain.html new file mode 100644 index 0000000000000..f3b953dec2765 --- /dev/null +++ b/code/modules/mob/living/brain/posibrain.html @@ -0,0 +1 @@ +code/modules/mob/living/brain/posibrain.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/brain/posibrain.dm

/obj/item/mmi/posibrain/spherePosibrains but spherical. They can roll around and you can kick them
\ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/organs.html b/code/modules/mob/living/carbon/alien/organs.html new file mode 100644 index 0000000000000..d2aede916c302 --- /dev/null +++ b/code/modules/mob/living/carbon/alien/organs.html @@ -0,0 +1 @@ +code/modules/mob/living/carbon/alien/organs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/carbon/alien/organs.dm

/obj/item/organ/internal/stomach/alienThe stomach that lets aliens eat people/things
\ No newline at end of file diff --git a/code/modules/mob/living/carbon/carbon_defense.html b/code/modules/mob/living/carbon/carbon_defense.html new file mode 100644 index 0000000000000..84d5b8cec1562 --- /dev/null +++ b/code/modules/mob/living/carbon/carbon_defense.html @@ -0,0 +1 @@ +code/modules/mob/living/carbon/carbon_defense.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/carbon/carbon_defense.dm

/obj/item/hand_item/self_graspan abstract item representing you holding your own limb to staunch the bleeding, see /mob/living/carbon/proc/grabbedby will probably need to find somewhere else to put this.
\ No newline at end of file diff --git a/code/modules/mob/living/carbon/carbon_stripping.html b/code/modules/mob/living/carbon/carbon_stripping.html new file mode 100644 index 0000000000000..1f58b2e27b4c8 --- /dev/null +++ b/code/modules/mob/living/carbon/carbon_stripping.html @@ -0,0 +1 @@ +code/modules/mob/living/carbon/carbon_stripping.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/carbon/carbon_stripping.dm

/datum/strippable_item/handA strippable item for a hand
\ No newline at end of file diff --git a/code/modules/mob/living/carbon/carbon_update_icons.html b/code/modules/mob/living/carbon/carbon_update_icons.html new file mode 100644 index 0000000000000..14387f2227486 --- /dev/null +++ b/code/modules/mob/living/carbon/carbon_update_icons.html @@ -0,0 +1,5 @@ +code/modules/mob/living/carbon/carbon_update_icons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/carbon/carbon_update_icons.dm

/proc/build_planeed_apperance_queueTakes a list of mutable appearances +Returns a list in the form: +1 - a list of all mutable appearances that would need to be updated to change planes in the event of a z layer change, alnongside the commands required +to properly track parents to update +2 - a list of all parents that will require updating
\ No newline at end of file diff --git a/code/modules/mob/living/carbon/examine.html b/code/modules/mob/living/carbon/examine.html new file mode 100644 index 0000000000000..0be7bf2b7a9a6 --- /dev/null +++ b/code/modules/mob/living/carbon/examine.html @@ -0,0 +1 @@ +code/modules/mob/living/carbon/examine.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/carbon/examine.dm

ADD_NEWLINE_IF_NECESSARYAdds a newline to the examine list if the above entry is not empty and it is not the first element in the list

Define Details

ADD_NEWLINE_IF_NECESSARY

Adds a newline to the examine list if the above entry is not empty and it is not the first element in the list

\ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/_species.html b/code/modules/mob/living/carbon/human/_species.html new file mode 100644 index 0000000000000..5aa4714a6b865 --- /dev/null +++ b/code/modules/mob/living/carbon/human/_species.html @@ -0,0 +1 @@ +code/modules/mob/living/carbon/human/_species.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/carbon/human/_species.dm

/datum/speciesDatum that handles different species in the game.
/proc/get_selectable_speciesGets a list of all species available to choose in roundstart.
/proc/generate_selectable_species_and_languagesGenerates species available to choose in character setup at roundstart
\ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/dummy.html b/code/modules/mob/living/carbon/human/dummy.html new file mode 100644 index 0000000000000..c931418b77d9f --- /dev/null +++ b/code/modules/mob/living/carbon/human/dummy.html @@ -0,0 +1,2 @@ +code/modules/mob/living/carbon/human/dummy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/carbon/human/dummy.dm

/proc/get_consistent_feature_entryTakes in an accessory list and returns the first entry from that list, ensuring that we dont return SPRITE_ACCESSORY_NONE in the process.
/mob/living/carbon/human/dummy/consistentProvides a dummy that is consistently bald, white, naked, etc.
/mob/living/carbon/human/consistentProvides a dummy for unit_tests that functions like a normal human, but with a standardized appearance +Copies the stock dna setup from the dummy/consistent type
\ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/emote.html b/code/modules/mob/living/carbon/human/emote.html new file mode 100644 index 0000000000000..410ab0e86d165 --- /dev/null +++ b/code/modules/mob/living/carbon/human/emote.html @@ -0,0 +1 @@ +code/modules/mob/living/carbon/human/emote.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/carbon/human/emote.dm

/datum/emote/living/carbon/human/monkeySnowflake emotes only for le epic chimp
\ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human_suicide.html b/code/modules/mob/living/carbon/human/human_suicide.html new file mode 100644 index 0000000000000..998fe51a5ba62 --- /dev/null +++ b/code/modules/mob/living/carbon/human/human_suicide.html @@ -0,0 +1,3 @@ +code/modules/mob/living/carbon/human/human_suicide.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/carbon/human/human_suicide.dm

HUMAN_BRAIN_DAMAGE_SUICIDE_MESSAGEThis file handles anything related to suicide related to humans, as it's a bit more involved/complex than suicide on any other type of mob. +Defines for all the types of messages we can dispatch.

Define Details

HUMAN_BRAIN_DAMAGE_SUICIDE_MESSAGE

This file handles anything related to suicide related to humans, as it's a bit more involved/complex than suicide on any other type of mob. +Defines for all the types of messages we can dispatch.

\ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species_types/golems.html b/code/modules/mob/living/carbon/human/species_types/golems.html new file mode 100644 index 0000000000000..89a36748a3217 --- /dev/null +++ b/code/modules/mob/living/carbon/human/species_types/golems.html @@ -0,0 +1 @@ +code/modules/mob/living/carbon/human/species_types/golems.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/carbon/human/species_types/golems.dm

/datum/species/golemAnimated beings of stone. They have increased defenses, and do not need to breathe. They must eat minerals to live, which give additional buffs.
\ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.html b/code/modules/mob/living/carbon/human/species_types/jellypeople.html new file mode 100644 index 0000000000000..b15243607c1ec --- /dev/null +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.html @@ -0,0 +1 @@ +code/modules/mob/living/carbon/human/species_types/jellypeople.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/carbon/human/species_types/jellypeople.dm

JELLY_REGEN_RATEThe rate at which slimes regenerate their jelly normally
JELLY_REGEN_RATE_EMPTYThe rate at which slimes regenerate their jelly when they completely run out of it and start taking damage, usually after having cannibalized all their limbs already
BLOOD_VOLUME_LOSE_NUTRITIONThe blood volume at which slimes begin to start losing nutrition -- so that IV drips can work for blood deficient slimes
/datum/species/jelly/slimeSLIMEPEOPLE
/datum/species/jelly/luminescentLUMINESCENTS
/datum/species/jelly/stargazerSTARGAZERS

Define Details

BLOOD_VOLUME_LOSE_NUTRITION

The blood volume at which slimes begin to start losing nutrition -- so that IV drips can work for blood deficient slimes

JELLY_REGEN_RATE

The rate at which slimes regenerate their jelly normally

JELLY_REGEN_RATE_EMPTY

The rate at which slimes regenerate their jelly when they completely run out of it and start taking damage, usually after having cannibalized all their limbs already

\ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species_types/mushpeople.html b/code/modules/mob/living/carbon/human/species_types/mushpeople.html new file mode 100644 index 0000000000000..2204a7e42aa2b --- /dev/null +++ b/code/modules/mob/living/carbon/human/species_types/mushpeople.html @@ -0,0 +1 @@ +code/modules/mob/living/carbon/human/species_types/mushpeople.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/carbon/human/species_types/mushpeople.dm

/obj/item/organ/external/mushroom_capA mushpersons mushroom cap organ
/datum/bodypart_overlay/mutant/mushroom_capBodypart overlay for the mushroom cap organ
\ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.html b/code/modules/mob/living/carbon/human/species_types/shadowpeople.html new file mode 100644 index 0000000000000..1c815e2424bb8 --- /dev/null +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.html @@ -0,0 +1 @@ +code/modules/mob/living/carbon/human/species_types/shadowpeople.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/carbon/human/species_types/shadowpeople.dm

/obj/item/organ/internal/brain/shadowthe key to some of their powers
\ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.html b/code/modules/mob/living/carbon/human/species_types/vampire.html new file mode 100644 index 0000000000000..25c887bb470bb --- /dev/null +++ b/code/modules/mob/living/carbon/human/species_types/vampire.html @@ -0,0 +1 @@ +code/modules/mob/living/carbon/human/species_types/vampire.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/carbon/human/species_types/vampire.dm

VAMPIRES_PER_HOUSEhow many vampires exist in each house
VAMP_DRAIN_AMOUNTmaximum a vampire will drain, they will drain less if they hit their cap

Define Details

VAMPIRES_PER_HOUSE

how many vampires exist in each house

VAMP_DRAIN_AMOUNT

maximum a vampire will drain, they will drain less if they hit their cap

\ No newline at end of file diff --git a/code/modules/mob/living/emote.html b/code/modules/mob/living/emote.html new file mode 100644 index 0000000000000..726c5d903c2e8 --- /dev/null +++ b/code/modules/mob/living/emote.html @@ -0,0 +1 @@ +code/modules/mob/living/emote.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/emote.dm

YAWN_PROPAGATE_CHANCE_BASEThe base chance for your yawn to propagate to someone else if they're on the same tile as you
YAWN_PROPAGATE_CHANCE_DECAYThe amount the base chance to propagate yawns falls for each tile of distance

Define Details

YAWN_PROPAGATE_CHANCE_BASE

The base chance for your yawn to propagate to someone else if they're on the same tile as you

YAWN_PROPAGATE_CHANCE_DECAY

The amount the base chance to propagate yawns falls for each tile of distance

\ No newline at end of file diff --git a/code/modules/mob/living/life.html b/code/modules/mob/living/life.html new file mode 100644 index 0000000000000..9f48496216d3a --- /dev/null +++ b/code/modules/mob/living/life.html @@ -0,0 +1 @@ +code/modules/mob/living/life.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/life.dm

BODYTEMP_DIVISORThis divisor controls how fast body temperature changes to match the environment

Define Details

BODYTEMP_DIVISOR

This divisor controls how fast body temperature changes to match the environment

\ No newline at end of file diff --git a/code/modules/mob/living/living.html b/code/modules/mob/living/living.html new file mode 100644 index 0000000000000..e668efd444824 --- /dev/null +++ b/code/modules/mob/living/living.html @@ -0,0 +1 @@ +code/modules/mob/living/living.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/living.dm

/datum/movespeed_modifier/landed_on_feetModifier for mobs landing on their feet after a fall
\ No newline at end of file diff --git a/code/modules/mob/living/living_fov.html b/code/modules/mob/living/living_fov.html new file mode 100644 index 0000000000000..6a654a72f4bcf --- /dev/null +++ b/code/modules/mob/living/living_fov.html @@ -0,0 +1 @@ +code/modules/mob/living/living_fov.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/living_fov.dm

/proc/play_fov_effectPlays a visual effect representing a sound cue for people with vision obstructed by FOV or blindness
\ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/_preferences.html b/code/modules/mob/living/silicon/ai/_preferences.html new file mode 100644 index 0000000000000..d02f1c45040e6 --- /dev/null +++ b/code/modules/mob/living/silicon/ai/_preferences.html @@ -0,0 +1,2 @@ +code/modules/mob/living/silicon/ai/_preferences.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/silicon/ai/_preferences.dm

/proc/resolve_ai_icon_syncA form of resolve_ai_icon that is guaranteed to never sleep. +Not always accurate, but always synchronous.
\ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/ai_portrait_picker.html b/code/modules/mob/living/silicon/ai/ai_portrait_picker.html new file mode 100644 index 0000000000000..f0c0b640f382d --- /dev/null +++ b/code/modules/mob/living/silicon/ai/ai_portrait_picker.html @@ -0,0 +1 @@ +code/modules/mob/living/silicon/ai/ai_portrait_picker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/silicon/ai/ai_portrait_picker.dm

/datum/portrait_picker
\ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/freelook.html b/code/modules/mob/living/silicon/ai/freelook.html new file mode 100644 index 0000000000000..6b5a9faefda42 --- /dev/null +++ b/code/modules/mob/living/silicon/ai/freelook.html @@ -0,0 +1,50 @@ +code/modules/mob/living/silicon/ai/freelook/README.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/silicon/ai/freelook/README.txt

CREDITS
+
+Initial code credit for this goes to Uristqwerty.
+Debugging, functionality, all comments and porting by Giacom.
+
+Everything about freelook (or what we can put in here) will be stored here.
+
+
+WHAT IS THIS?
+
+This is a replacement for the current camera movement system, of the AI. Before this, the AI had to move between cameras and could
+only see what the cameras could see. Not only this but the cameras could see through walls, which created problems.
+With this, the AI controls an "AI Eye" mob, which moves just like a ghost; such as moving through walls and being invisible to players.
+The AI's eye is set to this mob and then we use a system (explained below) to determine what the cameras around the AI Eye can and
+cannot see. If the camera cannot see a turf, it will black it out, otherwise it won't and the AI will be able to see it.
+This creates several features, such as.. no more see-through-wall cameras, easier to control camera movement, easier tracking,
+the AI only being able to track mobs which are visible to a camera, only trackable mobs appearing on the mob list and many more.
+
+
+HOW IT WORKS
+
+It works by first creating a camera network datum. Inside of this camera network are "chunks" (which will be
+explained later) and "cameras". The cameras list is kept up to date by obj/machinery/camera/New() and Del().
+
+Next the camera network has chunks. These chunks are a 16x16 tile block of turfs and cameras contained inside the chunk.
+These turfs are then sorted out based on what the cameras can and cannot see. If none of the cameras can see the turf, inside
+the 16x16 block, it is listed as an "obscured" turf. Meaning the AI won't be able to see it.
+
+
+HOW IT UPDATES
+
+The camera network uses a streaming method in order to effeciently update chunks. Since the server will have doors opening, doors closing,
+turf being destroyed and other lag inducing stuff, we want to update it under certain conditions and not every tick.
+
+The chunks are not created straight away, only when an AI eye moves into its area is when it gets created.
+One a chunk is created, when a non glass door opens/closes or an opacity turf is destroyed, we check to see if an AI Eye is looking in the area.
+We do this with the "seenby" list, which updates everytime an AI is near a chunk. If there is an AI eye inside the area, we update the chunk
+that the changed atom is inside and all surrounding chunks, since a camera's vision could leak onto another chunk. If there is no AI Eye, we instead
+flag the chunk to update whenever it is loaded by an AI Eye. This is basically how the chunks update and keep it in sync. We then add some lag reducing
+measures, such as an UPDATE_BUFFER which stops a chunk from updating too many times in a certain time-frame, only updating if the changed atom was blocking
+sight; for example, we don't update glass airlocks or floors.
+
+
+WHERE IS EVERYTHING?
+
+cameranet.dm    =	Everything about the cameranet datum.
+chunk.dm        =	Everything about the chunk datum.
+eye.dm          =	Everything about the AI and the AIEye.
+updating.dm     =	Everything about triggers that will update chunks.
+
\ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot_defines.html b/code/modules/mob/living/silicon/robot/robot_defines.html new file mode 100644 index 0000000000000..5041319a51495 --- /dev/null +++ b/code/modules/mob/living/silicon/robot/robot_defines.html @@ -0,0 +1 @@ +code/modules/mob/living/silicon/robot/robot_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/silicon/robot/robot_defines.dm

/mob/living/silicon/robot/nocellThis is the subtype that gets created by robot suits. It's needed so that those kind of borgs don't have a useless cell in them
\ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot_model.html b/code/modules/mob/living/silicon/robot/robot_model.html new file mode 100644 index 0000000000000..394b01b807021 --- /dev/null +++ b/code/modules/mob/living/silicon/robot/robot_model.html @@ -0,0 +1,3 @@ +code/modules/mob/living/silicon/robot/robot_model.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/silicon/robot/robot_model.dm

/obj/item/robot_modelDefinition of /obj/item/robot_model, which defines behavior for each model. +Deals with the creation and deletion of modules (tools). +Assigns modules and traits to a borg with a specific model selected.
\ No newline at end of file diff --git a/code/modules/mob/living/silicon/silicon_movement.html b/code/modules/mob/living/silicon/silicon_movement.html new file mode 100644 index 0000000000000..c0b1a1fe92716 --- /dev/null +++ b/code/modules/mob/living/silicon/silicon_movement.html @@ -0,0 +1 @@ +code/modules/mob/living/silicon/silicon_movement.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/silicon/silicon_movement.dm

SILICON_CAMERA_BUFFERThe static update delay on movement of the camera in a borg we use

Define Details

SILICON_CAMERA_BUFFER

The static update delay on movement of the camera in a borg we use

\ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/bot/bot_announcement.html b/code/modules/mob/living/simple_animal/bot/bot_announcement.html new file mode 100644 index 0000000000000..562136b77ede1 --- /dev/null +++ b/code/modules/mob/living/simple_animal/bot/bot_announcement.html @@ -0,0 +1 @@ +code/modules/mob/living/simple_animal/bot/bot_announcement.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/simple_animal/bot/bot_announcement.dm

/datum/action/cooldown/bot_announcementSay something and play a corresponding sound effect
\ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/illusion.html b/code/modules/mob/living/simple_animal/hostile/illusion.html new file mode 100644 index 0000000000000..9139cffcd38bd --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/illusion.html @@ -0,0 +1 @@ +code/modules/mob/living/simple_animal/hostile/illusion.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/simple_animal/hostile/illusion.dm

/mob/living/simple_animal/hostile/illusion/escapeActual Types
\ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.html b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.html new file mode 100644 index 0000000000000..d869a0dff248a --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.html @@ -0,0 +1 @@ +code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm

/mob/living/simple_animal/hostile/megafauna/colossusCOLOSSUS
ACTIVATE_TOUCHAnomolous Crystal
/obj/machinery/anomalous_crystal/theme_warpTransforms the area to look like a new one

Define Details

ACTIVATE_TOUCH

Anomolous Crystal

\ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.html b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.html new file mode 100644 index 0000000000000..c95f62b8e6ea9 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.html @@ -0,0 +1 @@ +code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm

DRAKE_ENRAGEDused to see if the drake is enraged or not

Define Details

DRAKE_ENRAGED

used to see if the drake is enraged or not

\ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.html b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.html new file mode 100644 index 0000000000000..96103147344dd --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.html @@ -0,0 +1,11 @@ +code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm

LEGION_LARGELEGION

Define Details

LEGION_LARGE

LEGION

+

Legion spawns from the necropolis gate in the far north of lavaland. It is the guardian of the Necropolis and emerges from within whenever an intruder tries to enter through its gate. +Whenever Legion emerges, everything in lavaland will receive a notice via color, audio, and text. This is because Legion is powerful enough to slaughter the entirety of lavaland with little effort. LOL

+

It has three attacks. +Spawn Skull. Most of the time it will use this attack. Spawns a single legion skull. +Spawn Sentinel. The legion will spawn up to three sentinels, depending on its size. +CHARGE! The legion starts spinning and tries to melee the player. It will try to flick itself towards the player, dealing some damage if it hits.

+

When Legion dies, it will split into three smaller skulls up to three times. +If you kill all of the smaller ones it drops a staff of storms, which allows its wielder to call and disperse ash storms at will and functions as a powerful melee weapon.

+

Difficulty: Medium

+

SHITCODE AHEAD. BE ADVISED. Also comment extravaganza

\ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.html b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.html new file mode 100644 index 0000000000000..ad3b8a7c1894f --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.html @@ -0,0 +1,3 @@ +code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm

/mob/living/simple_animal/hostile/asteroid/elite/broodmotherA stronger, faster variation of the goliath. Has the ability to spawn baby goliaths, which it can later detonate at will. +When its health is below half, tendrils will spawn randomly around it. When it is below a quarter of health, this effect is doubled. +Its attacks are as follows:
\ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.html b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.html new file mode 100644 index 0000000000000..d24c3c8c594a4 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.html @@ -0,0 +1,3 @@ +code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm

/mob/living/simple_animal/hostile/asteroid/elite/heraldA slow-moving projectile user with a few tricks up its sleeve. Less unga-bunga than Colossus, with more cleverness in its fighting style. +As its health gets lower, the amount of projectiles fired per-attack increases. +Its attacks are as follows:
\ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.html b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.html new file mode 100644 index 0000000000000..dbcd702d0a78e --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.html @@ -0,0 +1,3 @@ +code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm

/mob/living/simple_animal/hostile/asteroid/elite/legionnaireA towering skeleton, embodying the power of Legion. +As its health gets lower, the head does more damage. +Its attacks are as follows:
\ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.html b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.html new file mode 100644 index 0000000000000..557ad9aae1e0a --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.html @@ -0,0 +1,3 @@ +code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm

/mob/living/simple_animal/hostile/asteroid/elite/pandoraA box with a similar design to the Hierophant which trades large, single attacks for more frequent smaller ones. +As its health gets lower, the time between its attacks decrease. +Its attacks are as follows:
\ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/ooze.html b/code/modules/mob/living/simple_animal/hostile/ooze.html new file mode 100644 index 0000000000000..2bbc2050ef908 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/ooze.html @@ -0,0 +1 @@ +code/modules/mob/living/simple_animal/hostile/ooze.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/simple_animal/hostile/ooze.dm

/mob/living/simple_animal/hostile/oozeOozes are slime-esque creatures, they are highly gluttonous creatures primarily intended for player controll.
/mob/living/simple_animal/hostile/ooze/gelatinous
/datum/action/cooldown/metabolicboostThis ability lets the gelatinious ooze speed up for a little bit
/datum/action/consumeThis action lets you consume the mob you're currently pulling. I'M GONNA CONSUUUUUME (this is considered one of the funny memes in the 2019-2020 era)
/mob/living/simple_animal/hostile/ooze/grapes
/datum/action/cooldown/globulesAbility that allows the owner to fire healing globules at mobs, targeting specific limbs.
/obj/projectile/globuleThis projectile embeds into mobs and heals them over time.
/obj/item/mending_globuleThis item is what is embedded into the mob, and actually handles healing of mending globules
/datum/action/cooldown/gel_cocoonThis action lets you put a mob inside of a cacoon that will inject it with some chemicals.
\ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/vatbeast.html b/code/modules/mob/living/simple_animal/hostile/vatbeast.html new file mode 100644 index 0000000000000..bc01fd9eee1ed --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/vatbeast.html @@ -0,0 +1,2 @@ +code/modules/mob/living/simple_animal/hostile/vatbeast.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/simple_animal/hostile/vatbeast.dm

/mob/living/simple_animal/hostile/vatbeastVatbeasts are creatures from vatgrowing and are literaly a beast in a vat, yup. They are designed to be a powerful mount roughly equal to a gorilla in power.
/datum/action/cooldown/tentacle_slapAbility that allows the owner to slap other mobs a short distance away. +For vatbeats, this ability is shared with the rider.
\ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/simple_animal.html b/code/modules/mob/living/simple_animal/simple_animal.html new file mode 100644 index 0000000000000..50cab36e46636 --- /dev/null +++ b/code/modules/mob/living/simple_animal/simple_animal.html @@ -0,0 +1 @@ +code/modules/mob/living/simple_animal/simple_animal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/living/simple_animal/simple_animal.dm

/mob/living/simple_animalSimple, mostly AI-controlled critters, such as pets, bots, and drones.
\ No newline at end of file diff --git a/code/modules/mob/living/sneeze.html b/code/modules/mob/living/sneeze.html new file mode 100644 index 0000000000000..a43f9c75e7103 --- /dev/null +++ b/code/modules/mob/living/sneeze.html @@ -0,0 +1 @@ +code/modules/mob/living/sneeze.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/living/sneeze.dm

SNEEZE_CONEHow many degrees, up and down, can our sneeze deviate from our facing direction?
/obj/projectile/sneezeSneeze projectile launched by sneezing. gross

Define Details

SNEEZE_CONE

How many degrees, up and down, can our sneeze deviate from our facing direction?

\ No newline at end of file diff --git a/code/modules/mob/mob_defines.html b/code/modules/mob/mob_defines.html new file mode 100644 index 0000000000000..c1da249096895 --- /dev/null +++ b/code/modules/mob/mob_defines.html @@ -0,0 +1 @@ +code/modules/mob/mob_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/mob_defines.dm

/mobThe mob, usually meant to be a creature of some type
\ No newline at end of file diff --git a/code/modules/mob/mob_helpers.html b/code/modules/mob/mob_helpers.html new file mode 100644 index 0000000000000..ed9fa406ca6dc --- /dev/null +++ b/code/modules/mob/mob_helpers.html @@ -0,0 +1,8 @@ +code/modules/mob/mob_helpers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob/mob_helpers.dm

/proc/check_zoneConvert a PRECISE ZONE into the BODY_ZONE
/proc/ran_zoneReturn the zone or randomly, another valid zone
/proc/above_neckWould this zone be above the neck
/proc/starsConvert random parts of a passed in message to stars
/proc/stifledFor when you're only able to speak a limited amount of words +phrase - the string to convert +definitive_limit - the amount of words to limit the phrase to, optional
/proc/GibberishTurn text into complete gibberish!
/proc/shake_cameraShake the camera of the person viewing the mob SO REAL! +Takes the mob to shake, the time span to shake for, and the amount of tiles we're allowed to shake by in tiles +Duration isn't taken as a strict limit, since we don't trust our coders to not make things feel shitty. So it's more like a soft cap.
/proc/findnameFind if the message has the real name of any user mob in the mob_list
/proc/is_special_characterReturns TRUE if the game has started and we're either an AI with a 0th law, or we're someone with a special role/antag datum +If allow_fake_antags is set to FALSE, Valentines, ERTs, and any such roles with FLAG_FAKE_ANTAG won't pass.
/proc/notify_ghostsFancy notifications for ghosts
/proc/isAdminObserverIs the passed in mob a ghost with admin powers, doesn't check for AI interact like isAdminGhost() used to
/proc/isAdminGhostAIReturns TRUE/FALSE on whether the mob is an Admin Ghost AI. +This requires this snowflake check because AI interact gives the access to the mob's client, rather +than the mob like everyone else, and we keep it that way so they can't accidentally give someone Admin AI access.
/proc/offer_controlOffer control of the passed in mob to dead player
/proc/get_path_by_slotReturns a generic path of the object based on the slot
/proc/get_player_clientReturns a client from a mob, mind or client
\ No newline at end of file diff --git a/code/modules/mob/mob_say.html b/code/modules/mob/mob_say.html new file mode 100644 index 0000000000000..11e58552549f1 --- /dev/null +++ b/code/modules/mob/mob_say.html @@ -0,0 +1 @@ +code/modules/mob/mob_say.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/mob_say.dm

MESSAGE_MODS_LENGTHThe amount of items we are looking for in the message

Define Details

MESSAGE_MODS_LENGTH

The amount of items we are looking for in the message

\ No newline at end of file diff --git a/code/modules/mob/say_readme.html b/code/modules/mob/say_readme.html new file mode 100644 index 0000000000000..da7ce907835e9 --- /dev/null +++ b/code/modules/mob/say_readme.html @@ -0,0 +1,162 @@ +code/modules/mob/say_readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Say code basics

This document is a little dated but I believe it's accurate mostly (oranges 2019)

+

MIAUW'S SAY REWRITE

+

This is a basic explanation of how say() works. Read this if you don't understand something.

+

The basic "flow" of say() is that a speaker says a message, which is heard by hearers. What appears on screen +is constructed by each hearer separately, and not by the speaker.

+

This rewrite was needed, but is far from perfect. Report any bugs you come across and feel free to fix things up. +Radio code, while very much related to saycode, is not something I wanted to touch, so the code related to that may be messy.

+

If you came here to see how to use saycode, all you will ever really need to call is say(message). +To have things react when other things speak around them, add the HEAR_1 flag to their flags variable and +override their Hear() proc.

+

PROCS & VARIABLES

+

Here follows a list of say()-related procs and variables.

+
global procs
+	get_radio_span(freq)
+		Returns the span class associated with that frequency.
+
+	get_radio_name(freq)
+		Returns the name of that frequency.
+
+	get_hearers_in_view(R, atom/source)
+		Self-explanatory. Calls get_hear() and then calls recursive_hear_check on everything that get_hear() returns.
+
+	recursive_hear_check(atom/O)
+		Checks for hearers by looping through the contents of O and the contents of the contents of O and etc and checking
+		each object for the HEAR_1 flag. Returns a list of objects with the HEAR_1 flag.
+
+	get_hear(range, atom/source)
+		Like view(), but ignores luminosity.
+
+	message_spans_start(spans)
+		Turns each element of spans into a span class.
+
+	attach_spans(input, spans)
+		Attaches span classes around input.
+
+/atom/movable
+	flags
+		The HEAR_1 flag determines whether something is a hearer or not.
+		Hear() is only called on procs with this flag.
+
+	languages
+		languages live either in datum/languages_holder or in the mind.
+
+	verb_say/verb_ask/verb_exclaim/verb_yell/verb_sing
+		These determine what the verb is for their respective action. Used in say_quote().
+
+	say(message, bubble_type, var/list/spans, sanitize, datum/language/language, ignore_spam, forced)
+		Say() is the "mother-proc". It calls all the other procs required for speaking, but does little itself.
+		At the atom/movable level, say() just calls send_speech.
+
+	try_speak()
+		Checks that our atom can speak the passed messages.
+		Includes feedback to the speaker if they cannot speak.
+
+	can_speak()
+		Checks that our atom can vocally speak at all.
+		Does not (and should not) include any feedback on its own.
+
+	Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans, message_mods, message_range)
+		This proc handles hearing. What it does varies. For mobs, it treats the message with hearer-specific things
+		like language and deafness, then outputs it to the hearer.
+
+		IMPORTANT NOTE: If radio_freq is not null, the code will assume that the speaker is virtual! (more info on this in the Radios section below)
+
+	send_speech(message, range, source, bubble_type, spans, list/message_mods)
+		This proc composes a list of hearers (things with the HEAR_1 flag + dead people) and calls Hear() on them.
+		Message treatment or composition of output are not done by this proc, these are handled by the rest of
+		say() and the hearer respectively.
+
+	translate_language(message, atom/movable/speaker, message_langs, raw_message)
+		Modifies the message by comparing the languages of the speaker with the languages of the hearer.
+		Called on the hearer.
+
+	say_quote(input, spans, list/message_mods)
+		Adds a verb and quotes to a message. Also attaches span classes to a message.
+		Verbs are determined by verb_say/verb_ask/verb_yell/verb_sing variables. Called on the speaker.
+
+/mob
+	say_dead(message)
+		Sends a message to all dead people. Does not use Hear().
+
+	compose_message(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans, list/message_mods)
+		Composes the message mobs see on their screen when they hear something.
+
+	compose_track_href(message, atom/movable/speaker, message_langs, raw_message, radio_freq)
+		Composes the href tags used by the AI for tracking. Returns "" for all mobs except AIs.
+
+	compose_job(message, atom/movable/speaker, message_langs, raw_message, radio_freq)
+		Composes the job and the end tag for tracking hrefs. Returns "" for all mobs except AIs.
+
+	hivecheck()
+		Returns TRUE if the mob can hear and talk in the alien hivemind.
+
+/mob/living
+	say(message, bubble_type, var/list/spans, sanitize, datum/language/languag, ignore_spam, forced)
+		The say() of mob_living is significantly more complex than that of objects.
+		Most of the extra code has to do with radios and message treatment.
+
+	send_speech(message, range, source, bubble_type, spans, list/message_mods)
+		mob/living's send_speech allows mobs one tile outside of the defined range to still hear the message,
+		but starred with the stars() proc.
+
+	check_emote(message)
+		Checks if the message begins with an * and is thus an emote.
+
+	get_message_mods(message, list/message_mods)
+		Checks the start of the message for each of the components it could contain, stores that info in mods, and returns a trimmed list
+
+	treat_message(message)
+		What it says on the tin. Treats the message according to flags set on the mob.
+		Also handles captilization of the message
+
+	radio(message, list/message_mods = list(), spans)
+		Handles talking into radios. Uses a switch to determine what radio to speak into and in which manner to do so.
+
+		Return is a bitflag.
+		NOPASS = terminate say()
+		ITALICS = add italics to the message
+		REDUCE_RANGE = reduce the message range to one tile.
+
+		Return 0 if no radio was spoken into.
+		IMPORTANT: remember to call ..() and check for ..()'s return value properly!
+
+/datum/saymode
+	This is made to handle things like admin or alien chat.
+	Features that look like radio, but aren't quite
+
+	key
+		The key used to talk on this channel, in combination with : or .
+	mode
+		The UID we use for this channel
+
+	handle_message(message, list/message_mods, datum/language/language)
+		Intercepts say() after it's done all of it's message building.
+		If this returns true we stop say(), if it returns false we keep going
+
+

RADIOS

+

I did not want to interfere with radios too much, but I sort of had to. +For future generations, here is how radio code works: +First, talk_into() is called on a radio. This sends a signal datum into the magic machine that is tcomms, which +eventually results in broadcast_message() being called.

+

Broadcast_message() does NOT call say() on radios, but rather calls Hear() on everyone in range of a radio. +This is because the system does not like repeating says.

+

Furthermore, I changed radios to not be in the SSradio. Instead, they are in a global list called all_radios. +This is an associative list, and the numbers as strings are the keys. The values are lists of radios that can hear said frequency.

+

To add a radio, simply use add_radio(radio, frequency). To remove a radio, use remove_radio(radio, frequency). +To remove a radio from ALL frequencies, use remove_radio_all(radio).

+

VIRTUAL SPEAKERS:

+

Virtual speakers are simply atom/movables with a few extra variables. +If radio_freq is not null, the code will rely on the fact that the speaker is virtual. This means that several procs will return something:

+
	(all of these procs are defined at the atom/movable level and return "" at that level.)
+	GetJob()
+		Returns the job string variable of the virtual speaker.
+	GetTrack()
+		Returns wether the tracking href should be fake or not.
+	GetSource()
+		Returns the source of the virtual speaker.
+	GetRadio()
+		Returns the radio that was spoken through by the source. Needed for AI tracking.
+
+

This is fairly hacky, but it means that I can advoid using istypes. It's mainly relevant for AI tracking and AI job display.

+

That's all, folks!

\ No newline at end of file diff --git a/code/modules/mob/transform_procs.html b/code/modules/mob/transform_procs.html new file mode 100644 index 0000000000000..dfc786adf7e0b --- /dev/null +++ b/code/modules/mob/transform_procs.html @@ -0,0 +1 @@ +code/modules/mob/transform_procs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mob/transform_procs.dm

TEMPORARY_TRANSFORMATION_TRAITWill be removed once the transformation is complete.
PERMANENT_TRANSFORMATION_TRAITConsidered "permanent" since we'll be deleting the old mob and the client will be inserted into a new one (without this trait)

Define Details

PERMANENT_TRANSFORMATION_TRAIT

Considered "permanent" since we'll be deleting the old mob and the client will be inserted into a new one (without this trait)

TEMPORARY_TRANSFORMATION_TRAIT

Will be removed once the transformation is complete.

\ No newline at end of file diff --git a/code/modules/mob_spawn/corpses/mining_corpses.html b/code/modules/mob_spawn/corpses/mining_corpses.html new file mode 100644 index 0000000000000..e586289753c0c --- /dev/null +++ b/code/modules/mob_spawn/corpses/mining_corpses.html @@ -0,0 +1 @@ +code/modules/mob_spawn/corpses/mining_corpses.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob_spawn/corpses/mining_corpses.dm

/obj/effect/mob_spawn/corpse/human/legioninfestedMob spawner used by Legion to spawn costumed bodies
/obj/effect/mob_spawn/corpse/human/legioninfested/dwarfCorpse spawner used by dwarf legions to make small corpses
/obj/effect/mob_spawn/corpse/human/legioninfested/snowCorpse spawner used by snow legions with alternate costumes
/obj/effect/mob_spawn/corpse/human/legioninfested/skeletonCreates a dead legion-infested skeleton
/obj/effect/mob_spawn/corpse/human/legioninfested/skeleton/charredCreates a dead and burned legion-infested skeleton
\ No newline at end of file diff --git a/code/modules/mob_spawn/corpses/mob_corpses.html b/code/modules/mob_spawn/corpses/mob_corpses.html new file mode 100644 index 0000000000000..63718329571b8 --- /dev/null +++ b/code/modules/mob_spawn/corpses/mob_corpses.html @@ -0,0 +1 @@ +code/modules/mob_spawn/corpses/mob_corpses.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob_spawn/corpses/mob_corpses.dm

/obj/effect/mob_spawn/corpse/human/syndicatesoldierall the corpses meant as mob drops yes, these definitely could be sorted properly. i invite (you) to do it!!
\ No newline at end of file diff --git a/code/modules/mob_spawn/corpses/nonhuman_corpses.html b/code/modules/mob_spawn/corpses/nonhuman_corpses.html new file mode 100644 index 0000000000000..b67e57a701d1d --- /dev/null +++ b/code/modules/mob_spawn/corpses/nonhuman_corpses.html @@ -0,0 +1 @@ +code/modules/mob_spawn/corpses/nonhuman_corpses.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob_spawn/corpses/nonhuman_corpses.dm

/obj/effect/mob_spawn/corpse/aidead ai, blue screen and everything.
/obj/effect/mob_spawn/corpse/slimedead slimes, with a var for whatever color you want.
/obj/effect/mob_spawn/corpse/facehuggerdead facehuggers, great for xeno ruins so you can have a cool ruin without spiraling the entire round into xenomorph hell. also, this is a terrible terrible artifact of time
/obj/effect/mob_spawn/corpse/goliathdead goliath spawner
/obj/effect/mob_spawn/corpse/headcrabDead headcrab for changeling-themed ruins
\ No newline at end of file diff --git a/code/modules/mob_spawn/ghost_roles/mining_roles.html b/code/modules/mob_spawn/ghost_roles/mining_roles.html new file mode 100644 index 0000000000000..41d5f2cd051a7 --- /dev/null +++ b/code/modules/mob_spawn/ghost_roles/mining_roles.html @@ -0,0 +1 @@ +code/modules/mob_spawn/ghost_roles/mining_roles.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob_spawn/ghost_roles/mining_roles.dm

/obj/effect/mob_spawn/ghost_role/human/lavaland_syndicateSyndicate Listening Post
/obj/effect/mob_spawn/ghost_role/human/lavaland_syndicate/comms/icemoonIcemoon Syndicate Comms Agent
\ No newline at end of file diff --git a/code/modules/mob_spawn/ghost_roles/space_roles.html b/code/modules/mob_spawn/ghost_roles/space_roles.html new file mode 100644 index 0000000000000..f3c2b7d0dadd9 --- /dev/null +++ b/code/modules/mob_spawn/ghost_roles/space_roles.html @@ -0,0 +1 @@ +code/modules/mob_spawn/ghost_roles/space_roles.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob_spawn/ghost_roles/space_roles.dm

/obj/effect/mob_spawn/ghost_role/human/lavaland_syndicate/comms/spaceasteroid comms agent
/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiserbattlecruiser stuff
\ No newline at end of file diff --git a/code/modules/mob_spawn/ghost_roles/venus_human_trap.html b/code/modules/mob_spawn/ghost_roles/venus_human_trap.html new file mode 100644 index 0000000000000..545f9163d6cf5 --- /dev/null +++ b/code/modules/mob_spawn/ghost_roles/venus_human_trap.html @@ -0,0 +1 @@ +code/modules/mob_spawn/ghost_roles/venus_human_trap.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob_spawn/ghost_roles/venus_human_trap.dm

/obj/effect/mob_spawn/ghost_role/venus_human_trapHandles logic for ghost spawning code, visible object in game is handled by /obj/structure/alien/resin/flower_bud
\ No newline at end of file diff --git a/code/modules/mob_spawn/mob_spawn.html b/code/modules/mob_spawn/mob_spawn.html new file mode 100644 index 0000000000000..52d37fce5c9e8 --- /dev/null +++ b/code/modules/mob_spawn/mob_spawn.html @@ -0,0 +1 @@ +code/modules/mob_spawn/mob_spawn.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mob_spawn/mob_spawn.dm

/obj/effect/mob_spawn/ghost_rolethese mob spawn subtypes do not trigger until attacked by a ghost.
/obj/effect/mob_spawn/corpsethese mob spawn subtypes trigger immediately (New or Initialize) and are not player controlled... since they're dead, you know?
\ No newline at end of file diff --git a/code/modules/mod/adding_new_mod.html b/code/modules/mod/adding_new_mod.html new file mode 100644 index 0000000000000..3957843229176 --- /dev/null +++ b/code/modules/mod/adding_new_mod.html @@ -0,0 +1,264 @@ +code/modules/mod/adding_new_mod.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/adding_new_mod.md

Introduction

+

This is a step by step guide for creating a MODsuit theme, skin and module.

+

Theme

+

This is pretty simple, we go here and add a new definition, let's go with a Psychologist theme as an example.
+Their names should be like model names or use similar adjectives, like "magnate" or simply "engineering", so we'll go with "psychological".
+After that, it's good to decide what company is manufacturing the suit, and a basic description of what it offers, we'll write that down in the desc.
+So, let's our suit should be a low-power usage with lowered module capacity. We'd go with something like this.

+
/datum/mod_theme/psychological
+	name = "psychological"
+	desc = "A DeForest Medical Corporation power-saving psychological suit, limiting its' module capacity."
+
+

For people that want to see additional stuff, we add an extended description with some more insight into what the suit does. We also set the default skin to usually the theme name, like so.

+
/datum/mod_theme/psychological
+	name = "psychological"
+	desc = "A DeForest Medical Corporation power-saving psychological suit, limiting its' module capacity."
+	extended_desc = "DeForest Medical Corporation's prototype suit, based off the work of \
+		Nakamura Engineering. The suit has been modified to save power compared to regular suits, \
+		for operating at lower power levels, keeping people sane. As consequence, the capacity \
+		of the suit has decreased, not being able to fit many modules at all."
+	default_skin = "psychological"
+
+

Next we want to set the statistics, you can view them all in the theme file, so let's just grab our relevant ones, armor, charge and capacity and set them to what we establilished.
+Currently crew MODsuits should be lightly armored in combat relevant stats.

+
/datum/mod_theme/psychological
+	name = "psychological"
+	desc = "A DeForest Medical Corporation power-saving psychological suit, limiting its' module capacity."
+	extended_desc = "DeForest Medical Corporation's prototype suit, based off the work of \
+		Nakamura Engineering. The suit has been modified to save power compared to regular suits, \
+		for operating at lower power levels, keeping people sane. As consequence, the capacity \
+		of the suit has decreased, not being able to fit many modules at all."
+	default_skin = "psychological"
+	armor_type = /datum/armor/modtheme_psychological
+	complexity_max = DEFAULT_MAX_COMPLEXITY - 7
+	charge_drain = DEFAULT_CHARGE_DRAIN * 0.5
+
+

Now we have a basic theme, it lacks a skin which will be covered in the next section, and an item, which we will add right now.
+Let's go into here. It's as simple as adding a new suit type with the appropriate modules you want.

+
/obj/item/mod/control/pre_equipped/psychological
+	theme = /datum/mod_theme/psychological
+	initial_modules = list(
+		/obj/item/mod/module/storage,
+		/obj/item/mod/module/flashlight,
+	)
+
+

This will create our psychological suit, equipped with a storage and flashlight modules by default. We might also want to make it craftable, in which case we go here and set this.

+
/obj/item/mod/construction/armor/psychological
+	theme = /datum/mod_theme/psychological
+
+

After that we put it in the techweb or whatever other source we want. Now our suit is almost ready, it just needs a skin.

+

Skin

+

So, now that we have our theme, we want to add a skin to it (or another theme of our choosing). Let's start with a basis.

+
/datum/mod_theme/psychological
+	name = "psychological"
+	desc = "A DeForest Medical Corporation power-saving psychological suit, limiting its' module capacity."
+	extended_desc = "DeForest Medical Corporation's prototype suit, based off the work of \
+		Nakamura Engineering. The suit has been modified to save power compared to regular suits, \
+		for operating at lower power levels, keeping people sane. As consequence, the capacity \
+		of the suit has decreased, not being able to fit many modules at all."
+	default_skin = "psychological"
+	armor_type = /datum/armor/modtheme_psychological
+	complexity_max = DEFAULT_MAX_COMPLEXITY - 7
+	charge_drain = DEFAULT_CHARGE_DRAIN * 0.5
+	variants = list(
+		"psychological" = list(
+			/obj/item/clothing/head/mod = list(
+			),
+			/obj/item/clothing/suit/mod = list(
+			),
+			/obj/item/clothing/gloves/mod = list(
+			),
+			/obj/item/clothing/shoes/mod = list(
+			),
+		),
+	)
+
+

We now have a psychological skin, this will apply the psychological icons to every part of the suit. Next we'll be looking at the flags. Boots, gauntlets and the chestplate are usually very standard, we set their thickmaterial and pressureproofness while hiding the jumpsuit on the chestplate. On the helmet however, we'll actually look at its' icon.
+For example, if our helmet's icon covers the full head (like the research skin), we want to do something like this.

+
			/obj/item/clothing/head/mod = list(
+				UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL,
+				SEALED_CLOTHING = STOPSPRESSUREDAMAGE|BLOCK_GAS_SMOKE_EFFECT,
+				UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
+				UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF,
+			),
+
+

Otherwise, with an open helmet that becomes closed (like the engineering skin), we'd do this.

+
			/obj/item/clothing/head/mod = list(
+				UNSEALED_LAYER = NECK_LAYER
+				UNSEALED_CLOTHING = SNUG_FIT,
+				SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+				UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
+				SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
+				SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF,
+			),
+
+

There are specific cases of helmets that semi-cover the head, like the cosmohonk, apocryphal and whatnot. You can look at these for more specific suits. So let's say our suit is an open helmet design, and also add an alternate skin with a closed helmet called psychotherapeutic. It'd look something like this.

+
/datum/mod_theme/psychological
+	name = "psychological"
+	desc = "A DeForest Medical Corporation power-saving psychological suit, limiting its' module capacity."
+	extended_desc = "DeForest Medical Corporation's prototype suit, based off the work of \
+		Nakamura Engineering. The suit has been modified to save power compared to regular suits, \
+		for operating at lower power levels, keeping people sane. As consequence, the capacity \
+		of the suit has decreased, not being able to fit many modules at all."
+	default_skin = "psychological"
+	armor_type = /datum/armor/modtheme_psychological
+	complexity_max = DEFAULT_MAX_COMPLEXITY - 7
+	charge_drain = DEFAULT_CHARGE_DRAIN * 0.5
+	variants = list(
+		"psychological" = list(
+			/obj/item/clothing/head/mod = list(
+				UNSEALED_LAYER = NECK_LAYER
+				UNSEALED_CLOTHING = SNUG_FIT,
+				SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+				UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
+				SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
+				SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF,
+			),
+			/obj/item/clothing/suit/mod = list(
+				UNSEALED_CLOTHING = THICKMATERIAL,
+				SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+				SEALED_INVISIBILITY = HIDEJUMPSUIT,
+			),
+			/obj/item/clothing/gloves/mod = list(
+				UNSEALED_CLOTHING = THICKMATERIAL,
+				SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+			),
+			/obj/item/clothing/shoes/mod = list(
+				UNSEALED_CLOTHING = THICKMATERIAL,
+				SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+			),
+		"psychotherapeutic" = list(
+			/obj/item/clothing/head/mod = list(
+				UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL,
+				SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+				UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
+				UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF,
+			),
+			/obj/item/clothing/suit/mod = list(
+				UNSEALED_CLOTHING = THICKMATERIAL,
+				SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+				SEALED_INVISIBILITY = HIDEJUMPSUIT,
+			),
+			/obj/item/clothing/gloves/mod = list(
+				UNSEALED_CLOTHING = THICKMATERIAL,
+				SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+			),
+			/obj/item/clothing/shoes/mod = list(
+				UNSEALED_CLOTHING = THICKMATERIAL,
+				SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+			),
+		),
+	)
+
+

Thus we finished our codeside. Now we go to the icon files for the suits and simply add our new skin's icons.
+Now our suit is finished. But let's say we want to give it an unique module.

+

Module

+

So, for our psychological suit, let's say we want a module that heals the brain damage of everyone in range.
+As it's a medical module, we'll put it here. Let's start with the object definition.

+
/obj/item/mod/module/neuron_healer
+	name = "MOD neuron healer module"
+	desc = "A module made experimentally by DeForest Medical Corporation. On demand it releases waves \
+		that heal neuron damage of everyone nearby, getting their brains to a better state."
+	icon_state = "neuron_healer"
+
+

As we want this effect to be on demand, we probably want this to be an usable module. There are four types of modules:

+
    +
  • Passive: These have a passive effect.
  • +
  • Togglable: You can turn these on and off.
  • +
  • Usable: You can use these for a one time effect.
  • +
  • Active: You can only have one selected at a time. It gives you a special click effect.
  • +
+

As we have an usable module, we want to set a cooldown time. All modules are also incompatible with themselves, have a specific power cost and complexity varying on how powerful they are, and are equippable to certain slots, so let's update our definition, and also add a new variable for how much brain damage we'll heal.

+
/obj/item/mod/module/neuron_healer
+	name = "MOD neuron healer module"
+	desc = "A module made experimentally by DeForest Medical Corporation. On demand it releases waves \
+		that heal neuron damage of everyone nearby, getting their brains to a better state."
+	icon_state = "neuron_healer"
+	module_type = MODULE_USABLE
+	complexity = 3
+	use_energy_cost = DEFAULT_CHARGE_DRAIN
+	incompatible_modules = list(/obj/item/mod/module/neuron_healer)
+	cooldown_time = 15 SECONDS
+	required_slot = list(ITEM_SLOT_HEAD)
+	var/brain_damage_healed = 25
+
+

Now, we want to override the on_use proc for our new effect. You can read about most procs and variables by reading this

+
/obj/item/mod/module/neuron_healer/on_use()
+
+

After this, we want to put our special code, a basic effect of healing all mobs nearby for their brain damage and creating a beam to them.

+
/obj/item/mod/module/neuron_healer/on_use()
+	for(var/mob/living/carbon/carbon_mob in range(5, src))
+		if(carbon_mob == mod.wearer)
+			continue
+		carbon_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -brain_damage_healed)
+		mod.wearer.Beam(carbon_mob, icon_state = "plasmabeam", time = 1.5 SECONDS)
+	playsound(src, 'sound/effects/magic.ogg', 100, TRUE)
+	drain_power(use_energy_cost)
+
+

We now have a basic module, we can add it to the techwebs to make it printable ingame, and we can add an inbuilt, advanced version of it for our psychological suit. We'll give it more healing power, no complexity and make it unremovable.

+
/obj/item/mod/module/neuron_healer/advanced
+	name = "MOD advanced neuron healer module"
+	complexity = 0
+	brain_damage_healed = 50
+
+

Now we want to add it to the psychological theme, which is very simple, finishing with this:

+
/datum/mod_theme/psychological
+	name = "psychological"
+	desc = "A DeForest Medical Corporation power-saving psychological suit, limiting its' module capacity."
+	extended_desc = "DeForest Medical Corporation's prototype suit, based off the work of \
+		Nakamura Engineering. The suit has been modified to save power compared to regular suits, \
+		for operating at lower power levels, keeping people sane. As consequence, the capacity \
+		of the suit has decreased, not being able to fit many modules at all."
+	default_skin = "psychological"
+	armor_type = /datum/armor/modtheme_psychological
+	complexity_max = DEFAULT_MAX_COMPLEXITY - 7
+	charge_drain = DEFAULT_CHARGE_DRAIN * 0.5
+	inbuilt_modules = list(/obj/item/mod/module/neuron_healer/advanced)
+	variants = list(
+		"psychological" = list(
+			/obj/item/clothing/head/mod = list(
+				UNSEALED_LAYER = NECK_LAYER
+				UNSEALED_CLOTHING = SNUG_FIT,
+				SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+				UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
+				SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
+				SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF,
+			),
+			/obj/item/clothing/suit/mod = list(
+				UNSEALED_CLOTHING = THICKMATERIAL,
+				SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+				SEALED_INVISIBILITY = HIDEJUMPSUIT,
+			),
+			/obj/item/clothing/gloves/mod = list(
+				UNSEALED_CLOTHING = THICKMATERIAL,
+				SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+			),
+			/obj/item/clothing/shoes/mod = list(
+				UNSEALED_CLOTHING = THICKMATERIAL,
+				SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+			),
+		"psychotherapeutic" = list(
+			/obj/item/clothing/head/mod = list(
+				UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL,
+				SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+				UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
+				UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF,
+			),
+			/obj/item/clothing/suit/mod = list(
+				UNSEALED_CLOTHING = THICKMATERIAL,
+				SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+				SEALED_INVISIBILITY = HIDEJUMPSUIT,
+			),
+			/obj/item/clothing/gloves/mod = list(
+				UNSEALED_CLOTHING = THICKMATERIAL,
+				SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+			),
+			/obj/item/clothing/shoes/mod = list(
+				UNSEALED_CLOTHING = THICKMATERIAL,
+				SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+			),
+		),
+	)
+
+

Ending

+

This finishes this hopefully easy to follow along tutorial. You should now know how to make a basic theme, a skin for it, and a module.

\ No newline at end of file diff --git a/code/modules/mod/mod_control.html b/code/modules/mod/mod_control.html new file mode 100644 index 0000000000000..3121816b71817 --- /dev/null +++ b/code/modules/mod/mod_control.html @@ -0,0 +1 @@ +code/modules/mod/mod_control.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/mod_control.dm

/obj/item/modMODsuits, trade-off between armor and utility
/obj/item/mod/controlMisc stuff to avoid having files with three lines in them.
\ No newline at end of file diff --git a/code/modules/mod/mod_link.html b/code/modules/mod/mod_link.html new file mode 100644 index 0000000000000..a153c1350e066 --- /dev/null +++ b/code/modules/mod/mod_link.html @@ -0,0 +1 @@ +code/modules/mod/mod_link.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/mod_link.dm

/datum/mod_linkA MODlink datum, used to handle unique functions that will be used in the MODlink call.
/datum/mod_link_callA MODlink call datum, used to handle the call between two MODlinks.
\ No newline at end of file diff --git a/code/modules/mod/mod_part.html b/code/modules/mod/mod_part.html new file mode 100644 index 0000000000000..1c68de17596e6 --- /dev/null +++ b/code/modules/mod/mod_part.html @@ -0,0 +1 @@ +code/modules/mod/mod_part.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/mod_part.dm

/datum/mod_partDatum to handle interactions between a MODsuit and its parts.
\ No newline at end of file diff --git a/code/modules/mod/mod_theme.html b/code/modules/mod/mod_theme.html new file mode 100644 index 0000000000000..08dd473c1423f --- /dev/null +++ b/code/modules/mod/mod_theme.html @@ -0,0 +1 @@ +code/modules/mod/mod_theme.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/mod_theme.dm

/proc/setup_mod_themesGlobal proc that sets up all MOD themes as singletons in a list and returns it.
/datum/mod_themeMODsuit theme, instanced once and then used by MODsuits to grab various statistics.
\ No newline at end of file diff --git a/code/modules/mod/modules/_module.html b/code/modules/mod/modules/_module.html new file mode 100644 index 0000000000000..a1448ca591896 --- /dev/null +++ b/code/modules/mod/modules/_module.html @@ -0,0 +1 @@ +code/modules/mod/modules/_module.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/modules/_module.dm

/obj/item/mod/moduleMOD Module - A special device installed in a MODsuit allowing the suit to do new stuff.
/obj/item/mod/module/anomaly_lockedAnomaly Locked - Causes the module to not function without an anomaly.
\ No newline at end of file diff --git a/code/modules/mod/modules/module_kinesis.html b/code/modules/mod/modules/module_kinesis.html new file mode 100644 index 0000000000000..267d0ffa1440e --- /dev/null +++ b/code/modules/mod/modules/module_kinesis.html @@ -0,0 +1 @@ +code/modules/mod/modules/module_kinesis.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/modules/module_kinesis.dm

/obj/item/mod/module/anomaly_locked/kinesisKinesis - Gives you the ability to move and launch objects.
/obj/item/mod/module/anomaly_locked/kinesis/adminAdmin suit version of kinesis. Can grab anything at any range, may enable phasing through walls.
\ No newline at end of file diff --git a/code/modules/mod/modules/module_pathfinder.html b/code/modules/mod/modules/module_pathfinder.html new file mode 100644 index 0000000000000..3450582066937 --- /dev/null +++ b/code/modules/mod/modules/module_pathfinder.html @@ -0,0 +1 @@ +code/modules/mod/modules/module_pathfinder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/modules/module_pathfinder.dm

/obj/item/mod/module/pathfinderPathfinder - Can fly the suit from a long distance to an implant installed in someone.
\ No newline at end of file diff --git a/code/modules/mod/modules/modules_antag.html b/code/modules/mod/modules/modules_antag.html new file mode 100644 index 0000000000000..375c355c56863 --- /dev/null +++ b/code/modules/mod/modules/modules_antag.html @@ -0,0 +1 @@ +code/modules/mod/modules/modules_antag.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/modules/modules_antag.dm

/obj/item/mod/module/armor_boosterArmor Booster - Grants your suit more armor and speed in exchange for EVA protection. Also acts as a welding screen.
/obj/item/mod/module/energy_shieldEnergy Shield - Gives you a rechargeable energy shield that nullifies attacks.
/obj/item/mod/module/anti_magicMagic Nullifier - Protects you from magic.
/obj/item/mod/module/insigniaInsignia - Gives you a skin specific stripe.
/obj/item/mod/module/noslipAnti Slip - Prevents you from slipping on water.
/obj/item/mod/module/flamethrowerFlamethrower - Launches fire across the area.
/obj/item/mod/module/power_kickPower kick - Lets the user launch themselves at someone to kick them.
/obj/item/mod/module/chameleonChameleon - lets the suit disguise as any item that would fit on that slot.
/obj/item/mod/module/plate_compressionPlate Compression - Compresses the suit to normal size
/obj/item/mod/module/medbeamMedbeam - Medbeam but built into a modsuit
\ No newline at end of file diff --git a/code/modules/mod/modules/modules_engineering.html b/code/modules/mod/modules/modules_engineering.html new file mode 100644 index 0000000000000..ab4b542f0e68f --- /dev/null +++ b/code/modules/mod/modules/modules_engineering.html @@ -0,0 +1 @@ +code/modules/mod/modules/modules_engineering.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/modules/modules_engineering.dm

/obj/item/mod/module/weldingWelding Protection - Makes the helmet protect from flashes and welding.
/obj/item/mod/module/t_rayT-Ray Scan - Scans the terrain for undertile objects.
/obj/item/mod/module/magbootMagnetic Stability - Gives the user a slowdown but makes them negate gravity and be immune to slips.
/obj/item/mod/module/tetherEmergency Tether - Shoots a grappling hook projectile in 0g that throws the user towards it.
/obj/item/mod/module/rad_protectionRadiation Protection - Protects the user from radiation, gives them a geiger counter and rad info in the panel.
/obj/item/mod/module/constructorConstructor - Lets you build quicker and create RCD holograms.
/obj/item/mod/module/headprotectorSafety-First Head Protection - Protects your brain matter from sudden impacts.
/obj/item/mod/module/misterMister - Sprays water over an area.
/obj/item/mod/module/mister/atmosResin Mister - Sprays resin over an area.
\ No newline at end of file diff --git a/code/modules/mod/modules/modules_general.html b/code/modules/mod/modules/modules_general.html new file mode 100644 index 0000000000000..05e22b6d7406d --- /dev/null +++ b/code/modules/mod/modules/modules_general.html @@ -0,0 +1 @@ +code/modules/mod/modules/modules_general.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mod/modules/modules_general.dm

/obj/item/mod/module/storageStorage - Adds a storage component to the suit.
/obj/item/mod/module/jetpackIon Jetpack - Lets the user fly freely through space using battery charge.
FAILED_ACTIVATION_COOLDOWNCooldown to use if we didn't actually launch a jump jet
/obj/item/mod/module/jump_jetJump Jet - Briefly removes the effect of gravity and pushes you up one z-level if possible.
/obj/item/mod/module/status_readoutStatus Readout - Puts a lot of information including health, nutrition, fingerprints, temperature to the suit TGUI.
/obj/item/mod/module/mouthholeEating Apparatus - Lets the user eat/drink with the suit on.
/obj/item/mod/module/emp_shieldEMP Shield - Protects the suit from EMPs.
/obj/item/mod/module/flashlightFlashlight - Gives the suit a customizable flashlight.
/obj/item/mod/module/flashlight/darknessLike the flashlight module, except the light color is stuck to black and cannot be changed.
/obj/item/mod/module/dispenserDispenser - Dispenses an item after a time passes.
/obj/item/mod/module/longfallLongfall - Nullifies fall damage, removing charge instead.
/obj/item/mod/module/thermal_regulatorThermal Regulator - Regulates the wearer's core temperature.
/obj/item/mod/module/dna_lockDNA Lock - Prevents people without the set DNA from activating the suit.
/obj/item/mod/module/plasma_stabilizerPlasma Stabilizer - Prevents plasmamen from igniting in the suit
/obj/item/mod/module/hat_stabilizerHat Stabilizer - Allows displaying a hat over the MOD-helmet, à la plasmamen helmets.
/obj/item/mod/module/signlang_radioSign Language Translator - allows people to sign over comms using the modsuit's gloves.
/obj/item/mod/module/joint_torsionA module that recharges the suit by an itsy tiny bit whenever the user takes a step. Originally called "magneto module" but the videogame reference sounds cooler.
/obj/item/mod/module/recyclerModule that shoves garbage inside its material container when the user crosses it, and eject the recycled material with MMB.
/obj/item/mod/module/recycler/donkA black market variant of the above that dispenses riot foam dart boxes

Define Details

FAILED_ACTIVATION_COOLDOWN

Cooldown to use if we didn't actually launch a jump jet

\ No newline at end of file diff --git a/code/modules/mod/modules/modules_maint.html b/code/modules/mod/modules/modules_maint.html new file mode 100644 index 0000000000000..44b38ffbe79be --- /dev/null +++ b/code/modules/mod/modules/modules_maint.html @@ -0,0 +1 @@ +code/modules/mod/modules/modules_maint.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/modules/modules_maint.dm

/obj/item/mod/module/springlockSpringlock Mechanism - allows your modsuit to activate faster, but reagents are very dangerous.
/obj/item/mod/module/tannerTanner - Tans you with spraytan.
/obj/item/mod/module/balloonBalloon Blower - Blows a balloon.
/obj/item/mod/module/paper_dispenserPaper Dispenser - Dispenses (sometimes burning) paper sheets.
/obj/item/mod/module/stampStamper - Extends a stamp that can switch between accept/deny modes.
/obj/item/mod/module/atrocinatorAtrocinator - Flips your gravity.
\ No newline at end of file diff --git a/code/modules/mod/modules/modules_medical.html b/code/modules/mod/modules/modules_medical.html new file mode 100644 index 0000000000000..69378dd23aba2 --- /dev/null +++ b/code/modules/mod/modules/modules_medical.html @@ -0,0 +1 @@ +code/modules/mod/modules/modules_medical.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/modules/modules_medical.dm

/obj/item/mod/module/health_analyzerHealth Analyzer - Gives the user a ranged health analyzer and their health status in the panel.
/obj/item/mod/module/quick_carryQuick Carry - Lets the user carry bodies quicker.
/obj/item/mod/module/injectorInjector - Gives the suit an extendable large-capacity piercing syringe.
/obj/item/mod/module/organizerOrganizer - Lets you shoot organs, immediately replacing them if the target has the organ manipulation surgery.
/obj/item/mod/module/criminalcapture/patienttransportPatrient Transport - Generates hardlight bags you can put people in.
/obj/item/mod/module/defibrillatorDefibrillator - Gives the suit an extendable pair of shock paddles.
/obj/item/mod/module/thread_ripperThread Ripper - Temporarily rips apart clothing to make it not cover the body.
/obj/item/mod/module/surgical_processorSurgical Processor - Lets you do advanced surgeries portably.
\ No newline at end of file diff --git a/code/modules/mod/modules/modules_ninja.html b/code/modules/mod/modules/modules_ninja.html new file mode 100644 index 0000000000000..b1bcc73ed6a02 --- /dev/null +++ b/code/modules/mod/modules/modules_ninja.html @@ -0,0 +1 @@ +code/modules/mod/modules/modules_ninja.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/modules/modules_ninja.dm

/obj/item/mod/module/stealthCloaking - Lowers the user's visibility, can be interrupted by being touched or attacked.
/obj/item/mod/module/welding/camera_visionCamera Vision - Prevents flashes, blocks tracking.
/obj/item/mod/module/hackerHacker - This module hooks onto your right-clicks with empty hands and causes ninja actions.
/obj/item/mod/module/weapon_recallWeapon Recall - Teleports your katana to you, prevents gun use.
/obj/item/mod/module/status_readout/ninjaNinja Status Readout - Like the normal status display (see the base type), but with a clock.
/obj/item/mod/module/energy_netEnergy Net - Ensnares enemies in a net that prevents movement.
/obj/item/mod/module/adrenaline_boostAdrenaline Boost - Stops all stuns the ninja is affected with, increases his speed.
\ No newline at end of file diff --git a/code/modules/mod/modules/modules_science.html b/code/modules/mod/modules/modules_science.html new file mode 100644 index 0000000000000..5545941b479fc --- /dev/null +++ b/code/modules/mod/modules/modules_science.html @@ -0,0 +1 @@ +code/modules/mod/modules/modules_science.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/modules/modules_science.dm

/obj/item/mod/module/reagent_scannerReagent Scanner - Lets the user scan reagents.
/obj/item/mod/module/anomaly_locked/antigravAnti-Gravity - Makes the user weightless.
/obj/item/mod/module/anomaly_locked/teleporterTeleporter - Lets the user teleport to a nearby location.
\ No newline at end of file diff --git a/code/modules/mod/modules/modules_security.html b/code/modules/mod/modules/modules_security.html new file mode 100644 index 0000000000000..3c66498ac0a5c --- /dev/null +++ b/code/modules/mod/modules/modules_security.html @@ -0,0 +1,4 @@ +code/modules/mod/modules/modules_security.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/modules/modules_security.dm

/obj/item/mod/module/magnetic_harnessMagnetic Harness - Automatically puts guns in your suit storage when you drop them.
/obj/item/mod/module/pepper_shouldersPepper Shoulders - When hit, reacts with a spray of pepper spray around the user.
/obj/item/mod/module/holsterHolster - Instantly holsters any not huge gun.
/obj/item/mod/module/megaphoneMegaphone - Lets you speak loud.
/obj/item/mod/module/criminalcaptureCriminal Capture - Generates hardlight bags you can put people in and sinch.
/obj/item/mod/module/dispenser/mirageMirage grenade dispenser - Dispenses grenades that copy the user's appearance.
/obj/item/mod/module/projectile_dampenerProjectile Dampener - Weakens projectiles in range.
/obj/item/mod/module/active_sonarActive Sonar - Displays a hud circle on the turf of any living creatures in the given radius
/obj/item/mod/module/shooting_assistantA module that enhances the user's ability with firearms, with a couple drawbacks: +In 'Stormtrooper' mode, the user will be given faster firerate, but lower accuracy. +In 'Sharpshooter' mode, the user will have better accuracy and ricochet to his shots, but slower movement speed. +Both modes prevent the user from dual wielding guns.
\ No newline at end of file diff --git a/code/modules/mod/modules/modules_service.html b/code/modules/mod/modules/modules_service.html new file mode 100644 index 0000000000000..e47457274fb8f --- /dev/null +++ b/code/modules/mod/modules/modules_service.html @@ -0,0 +1 @@ +code/modules/mod/modules/modules_service.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/modules/modules_service.dm

/obj/item/mod/module/bikehornBike Horn - Plays a bike horn sound.
/obj/item/mod/module/balloon/advancedAdvanced Balloon Blower - Blows a long balloon.
/obj/item/mod/module/microwave_beamMicrowave Beam - Microwaves items instantly.
\ No newline at end of file diff --git a/code/modules/mod/modules/modules_supply.html b/code/modules/mod/modules/modules_supply.html new file mode 100644 index 0000000000000..18fc7e9d80dd2 --- /dev/null +++ b/code/modules/mod/modules/modules_supply.html @@ -0,0 +1 @@ +code/modules/mod/modules/modules_supply.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/modules/modules_supply.dm

/obj/item/mod/module/gpsInternal GPS - Extends a GPS you can use.
/obj/item/mod/module/clampHydraulic Clamp - Lets you pick up and drop crates.
/obj/item/mod/module/drillDrill - Lets you dig through rock and basalt.
/obj/item/mod/module/orebagOre Bag - Lets you pick up ores and drop them from the suit.
\ No newline at end of file diff --git a/code/modules/mod/modules/modules_timeline.html b/code/modules/mod/modules/modules_timeline.html new file mode 100644 index 0000000000000..c250b2910f8f2 --- /dev/null +++ b/code/modules/mod/modules/modules_timeline.html @@ -0,0 +1 @@ +code/modules/mod/modules/modules_timeline.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/mod/modules/modules_timeline.dm

CHRONO_BEAM_RANGErange of the chrono beam!
CHRONO_FRAME_COUNThow many frames the chronofield needs before it eradicates someone.
/obj/item/mod/module/eradication_lockEradication lock - Prevents people who aren't the owner of the suit from existing on the timeline via eradicating the suit with the intruder inside
/obj/item/mod/module/rewinderRewinder - Activating saves a point in time, after 10 seconds you will jump back to that state.
/obj/item/mod/module/timestopperTimestopper - Need I really explain? It's the wizard's time stop, but the user channels it by not moving instead of a duration.
/obj/item/mod/module/timeline_jumperTimeline Jumper - Infinite phasing. needs some special effects
/obj/effect/dummy/phased_mob/chronospecial subtype for phased mobs.
/obj/item/mod/module/temTEM - Lets you eradicate people.

Define Details

CHRONO_BEAM_RANGE

range of the chrono beam!

CHRONO_FRAME_COUNT

how many frames the chronofield needs before it eradicates someone.

\ No newline at end of file diff --git a/code/modules/mod/modules/modules_visor.html b/code/modules/mod/modules/modules_visor.html new file mode 100644 index 0000000000000..0a50b522144ca --- /dev/null +++ b/code/modules/mod/modules/modules_visor.html @@ -0,0 +1 @@ +code/modules/mod/modules/modules_visor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/mod/modules/modules_visor.dm

/obj/item/mod/module/visorBase Visor - Adds a specific HUD and traits to you.
\ No newline at end of file diff --git a/code/modules/modular_computers/computers/item/computer.html b/code/modules/modular_computers/computers/item/computer.html new file mode 100644 index 0000000000000..29222396bc7dd --- /dev/null +++ b/code/modules/modular_computers/computers/item/computer.html @@ -0,0 +1,2 @@ +code/modules/modular_computers/computers/item/computer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/modular_computers/computers/item/computer.dm

/obj/item/modular_computer/debugDebug ModPC +Used to spawn all programs for Create and Destroy unit test.
\ No newline at end of file diff --git a/code/modules/modular_computers/computers/item/computer_circuit.html b/code/modules/modular_computers/computers/item/computer_circuit.html new file mode 100644 index 0000000000000..dc7a6bb50c650 --- /dev/null +++ b/code/modules/modular_computers/computers/item/computer_circuit.html @@ -0,0 +1 @@ +code/modules/modular_computers/computers/item/computer_circuit.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/modular_computers/computers/item/computer_circuit.dm

/obj/item/circuit_component/modpcA simple circuit component compatible with stationary consoles, laptops and PDAs, independent from programs.
\ No newline at end of file diff --git a/code/modules/modular_computers/computers/item/computer_power.html b/code/modules/modular_computers/computers/item/computer_power.html new file mode 100644 index 0000000000000..4ec01f7da25da --- /dev/null +++ b/code/modules/modular_computers/computers/item/computer_power.html @@ -0,0 +1 @@ +code/modules/modular_computers/computers/item/computer_power.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/modular_computers/computers/item/computer_power.dm

FLASHLIGHT_DRAIN_MULTIPLIERThe multiplier given to the base overtime charge drain value if its flashlight is on.

Define Details

FLASHLIGHT_DRAIN_MULTIPLIER

The multiplier given to the base overtime charge drain value if its flashlight is on.

\ No newline at end of file diff --git a/code/modules/modular_computers/computers/item/disks/maintenance_disks.html b/code/modules/modular_computers/computers/item/disks/maintenance_disks.html new file mode 100644 index 0000000000000..450c0a020fcb2 --- /dev/null +++ b/code/modules/modular_computers/computers/item/disks/maintenance_disks.html @@ -0,0 +1 @@ +code/modules/modular_computers/computers/item/disks/maintenance_disks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/modular_computers/computers/item/disks/maintenance_disks.dm

/obj/item/computer_disk/maintenance/scannerMedical health analyzer app
/obj/item/computer_disk/maintenance/cameraCamera app, forced to always have largest image size
/obj/item/computer_disk/maintenance/modsuit_controlMODsuit UI, in your PDA!
/obj/item/computer_disk/maintenance/spectre_meterReturns A 'spookiness' value based on the number of ghastly creature and hauntium and their distance from the PC.
/obj/item/computer_disk/maintenance/arcadeA version of the arcade program with less HP/MP for the enemy and more for the player
\ No newline at end of file diff --git a/code/modules/modular_computers/computers/item/disks/role_disks.html b/code/modules/modular_computers/computers/item/disks/role_disks.html new file mode 100644 index 0000000000000..abc8225f258b0 --- /dev/null +++ b/code/modules/modular_computers/computers/item/disks/role_disks.html @@ -0,0 +1 @@ +code/modules/modular_computers/computers/item/disks/role_disks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/modular_computers/computers/item/disks/role_disks.dm

/obj/item/computer_disk/commandCommand
/obj/item/computer_disk/securitySecurity
/obj/item/computer_disk/medicalMedical
/obj/item/computer_disk/quartermasterSupply
/obj/item/computer_disk/ordnanceScience
/obj/item/computer_disk/engineeringEngineering
\ No newline at end of file diff --git a/code/modules/modular_computers/computers/item/disks/virus_disk.html b/code/modules/modular_computers/computers/item/disks/virus_disk.html new file mode 100644 index 0000000000000..a68b67ab7bf44 --- /dev/null +++ b/code/modules/modular_computers/computers/item/disks/virus_disk.html @@ -0,0 +1,8 @@ +code/modules/modular_computers/computers/item/disks/virus_disk.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/modular_computers/computers/item/disks/virus_disk.dm

/obj/item/computer_disk/virusVirus disk +Can't hold apps, instead does unique actions.
/obj/item/computer_disk/virus/clownClown virus +Makes people's PDA honk +Can also be used on open panel airlocks to make them honk on opening.
/obj/item/computer_disk/virus/mimeMime virus +Makes PDA's silent, removing their ringtone.
/obj/item/computer_disk/virus/detomatixDetomatix virus +Sends a false message, and blows the PDA up if the target responds to it (or opens their messenger before a timer)
/obj/item/computer_disk/virus/frameFrame cartridge +Creates and opens a false uplink on someone's PDA +Can be loaded with TC to show up on the false uplink.
\ No newline at end of file diff --git a/code/modules/modular_computers/computers/item/pda.html b/code/modules/modular_computers/computers/item/pda.html new file mode 100644 index 0000000000000..5721a9b488a35 --- /dev/null +++ b/code/modules/modular_computers/computers/item/pda.html @@ -0,0 +1 @@ +code/modules/modular_computers/computers/item/pda.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/modular_computers/computers/item/pda.dm

/obj/item/modular_computer/pda/nukeopsNuclear PDA
/obj/item/modular_computer/pda/siliconSilicon PDA
\ No newline at end of file diff --git a/code/modules/modular_computers/computers/item/role_tablet_presets.html b/code/modules/modular_computers/computers/item/role_tablet_presets.html new file mode 100644 index 0000000000000..df2d1993106d6 --- /dev/null +++ b/code/modules/modular_computers/computers/item/role_tablet_presets.html @@ -0,0 +1 @@ +code/modules/modular_computers/computers/item/role_tablet_presets.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/modular_computers/computers/item/role_tablet_presets.dm

/obj/item/modular_computer/pda/headsCommand
/obj/item/modular_computer/pda/securitySecurity
/obj/item/modular_computer/pda/engineeringEngineering
/obj/item/modular_computer/pda/scienceScience
/obj/item/modular_computer/pda/medicalMedical
/obj/item/modular_computer/pda/cargoSupply
/obj/item/modular_computer/pda/janitorService
/obj/item/modular_computer/pda/assistantNo Department/Station Trait
/obj/item/modular_computer/pda/syndicateNon-roles
\ No newline at end of file diff --git a/code/modules/modular_computers/file_system/data.html b/code/modules/modular_computers/file_system/data.html new file mode 100644 index 0000000000000..ba7267a439ef3 --- /dev/null +++ b/code/modules/modular_computers/file_system/data.html @@ -0,0 +1,6 @@ +code/modules/modular_computers/file_system/data.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/modular_computers/file_system/data.dm

BLOCK_SIZEUsed to calculate how large a text file is.
/datum/computer_file/dataBase DATA file type +Doesn't do anything, mostly here for organization.
/datum/computer_file/data/textHolds data in string format.
/datum/computer_file/data/text/logfileA text file with a different filetype +Used for flavortext
/datum/computer_file/data/ordnanceOrdnance data +Holds possible experiments to do
/datum/computer_file/data/ordnance/explosiveExplosive data +Holds a specific taychon record.
/datum/computer_file/data/ordnance/gaseousGaseous data +Holds a specific compressor record.

Define Details

BLOCK_SIZE

Used to calculate how large a text file is.

\ No newline at end of file diff --git a/code/modules/modular_computers/file_system/picture_file.html b/code/modules/modular_computers/file_system/picture_file.html new file mode 100644 index 0000000000000..517f1c24f887d --- /dev/null +++ b/code/modules/modular_computers/file_system/picture_file.html @@ -0,0 +1,2 @@ +code/modules/modular_computers/file_system/picture_file.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/modular_computers/file_system/picture_file.dm

/datum/computer_file/picturePNG file type +Stores a picture which can be used by other programs.
\ No newline at end of file diff --git a/code/modules/modular_computers/file_system/program_circuit.html b/code/modules/modular_computers/file_system/program_circuit.html new file mode 100644 index 0000000000000..b28a00059a680 --- /dev/null +++ b/code/modules/modular_computers/file_system/program_circuit.html @@ -0,0 +1,3 @@ +code/modules/modular_computers/file_system/program_circuit.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/modular_computers/file_system/program_circuit.dm

/obj/item/circuit_component/mod_programCircuit components of modular programs are special. +They're added to the unremovable components of the shell when the prog is installed and deleted if uninstalled. +This means they don't work like normal unremovable comps that live and die along with their shell.
\ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/arcade.html b/code/modules/modular_computers/file_system/programs/arcade.html new file mode 100644 index 0000000000000..0168e429c6236 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/arcade.html @@ -0,0 +1 @@ +code/modules/modular_computers/file_system/programs/arcade.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/modular_computers/file_system/programs/arcade.dm

/datum/computer_file/program/arcade/eazyLazy version of the arade that can be found in maintenance disks
\ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/atmosscan.html b/code/modules/modular_computers/file_system/programs/atmosscan.html new file mode 100644 index 0000000000000..6a070f9705cc3 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/atmosscan.html @@ -0,0 +1 @@ +code/modules/modular_computers/file_system/programs/atmosscan.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/modular_computers/file_system/programs/atmosscan.dm

ATMOZPHERE_SCAN_ENVScan the turf where the computer is on.
ATMOZPHERE_SCAN_CLICKScan the objects that the tablet clicks.

Define Details

ATMOZPHERE_SCAN_CLICK

Scan the objects that the tablet clicks.

ATMOZPHERE_SCAN_ENV

Scan the turf where the computer is on.

\ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/coupon.html b/code/modules/modular_computers/file_system/programs/coupon.html new file mode 100644 index 0000000000000..8e643a9421f87 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/coupon.html @@ -0,0 +1 @@ +code/modules/modular_computers/file_system/programs/coupon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/modular_computers/file_system/programs/coupon.dm

/datum/computer_file/program/couponA program that enables the user to redeem randomly generated coupons for several cargo packs (mostly goodies).
\ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/emojipedia.html b/code/modules/modular_computers/file_system/programs/emojipedia.html new file mode 100644 index 0000000000000..3429969522f99 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/emojipedia.html @@ -0,0 +1 @@ +code/modules/modular_computers/file_system/programs/emojipedia.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/modular_computers/file_system/programs/emojipedia.dm

/datum/computer_file/program/emojipediaA tablet app that lets anyone see all the valid emoji they can send via a PDA message (and even OOC!)
\ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/maintenance/_maintenance_program.html b/code/modules/modular_computers/file_system/programs/maintenance/_maintenance_program.html new file mode 100644 index 0000000000000..25621760cc5e5 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/maintenance/_maintenance_program.html @@ -0,0 +1 @@ +code/modules/modular_computers/file_system/programs/maintenance/_maintenance_program.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/modular_computers/file_system/programs/maintenance/_maintenance_program.dm

/datum/computer_file/program/maintenanceMaintenance programs
\ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/messenger/messenger_data.html b/code/modules/modular_computers/file_system/programs/messenger/messenger_data.html new file mode 100644 index 0000000000000..4151b9c336a8d --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/messenger/messenger_data.html @@ -0,0 +1,2 @@ +code/modules/modular_computers/file_system/programs/messenger/messenger_data.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/modular_computers/file_system/programs/messenger/messenger_data.dm

/proc/add_messengerRegisters an NTMessenger instance to the list of pda_messengers.
/proc/remove_messengerUnregisters an NTMessenger instance from the pda_messengers table.
/proc/get_messengers_sorted_by_nameGets all messengers, sorted by their name
/proc/get_messengers_sorted_by_jobGets all messengers, sorted by their job
/proc/get_messenger_nameGet the display name of a messenger instance
/datum/pda_chatChat log data type, stores information about the recipient, +the messages themselves and other metadata.
/datum/pda_messageChat message data type, stores data about messages themselves.
\ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.html b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.html new file mode 100644 index 0000000000000..134a9b9ad7e63 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.html @@ -0,0 +1 @@ +code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm

TEMP_IMAGE_PATHUsed to generate an asset key for a temporary image unique to this user.
MAX_PDA_MESSAGE_LENPurpose is evident by the name, hopefully.
PDA_MESSAGE_TIMESTAMP_FORMATFormat of message timestamps.

Define Details

MAX_PDA_MESSAGE_LEN

Purpose is evident by the name, hopefully.

PDA_MESSAGE_TIMESTAMP_FORMAT

Format of message timestamps.

TEMP_IMAGE_PATH

Used to generate an asset key for a temporary image unique to this user.

\ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/portrait_printer.html b/code/modules/modular_computers/file_system/programs/portrait_printer.html new file mode 100644 index 0000000000000..e2d7dc054a073 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/portrait_printer.html @@ -0,0 +1 @@ +code/modules/modular_computers/file_system/programs/portrait_printer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/modular_computers/file_system/programs/portrait_printer.dm

CANVAS_PAPER_COSThow much paper it takes from the printer to create a canvas.
/datum/computer_file/program/portrait_printer

Define Details

CANVAS_PAPER_COST

how much paper it takes from the printer to create a canvas.

\ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/radar.html b/code/modules/modular_computers/file_system/programs/radar.html new file mode 100644 index 0000000000000..1f21a5ed3d51b --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/radar.html @@ -0,0 +1,3 @@ +code/modules/modular_computers/file_system/programs/radar.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/modular_computers/file_system/programs/radar.dm

RADAR_NOT_TRACKABLEThe selected target is not trackable
RADAR_TRACKABLEThe selected target is trackable
RADAR_TRACKABLE_ANYWAYThe selected target is trackable, even if subtypes would normally consider it untrackable.
MAX_RADAR_CIRCUIT_DISTANCEIf the target is something it shouldn't be normally tracking, this is the maximum distance within with it an be tracked.
/datum/computer_file/program/radar/lifelineA program that tracks crew members via suit sensors
/datum/computer_file/program/radar/custodial_locatorTracks all janitor equipment
/datum/computer_file/program/radar/fission360A program that tracks nukes and nuclear accessories
/obj/item/circuit_component/mod_program/radarBase circuit for the radar program. +The abstract radar doesn't have this, nor this one is associated to it, so +make sure to specify the associate_program and circuit_comp_type of subtypes,

Define Details

MAX_RADAR_CIRCUIT_DISTANCE

If the target is something it shouldn't be normally tracking, this is the maximum distance within with it an be tracked.

RADAR_NOT_TRACKABLE

The selected target is not trackable

RADAR_TRACKABLE

The selected target is trackable

RADAR_TRACKABLE_ANYWAY

The selected target is trackable, even if subtypes would normally consider it untrackable.

\ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/secureye.html b/code/modules/modular_computers/file_system/programs/secureye.html new file mode 100644 index 0000000000000..2c3b5a8db907e --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/secureye.html @@ -0,0 +1 @@ +code/modules/modular_computers/file_system/programs/secureye.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/modular_computers/file_system/programs/secureye.dm

/datum/computer_file/program/secureye/syndicateSyndicate subtype that has no access restrictions and is available on Syndinet
\ No newline at end of file diff --git a/code/modules/movespeed/_movespeed_modifier.html b/code/modules/movespeed/_movespeed_modifier.html new file mode 100644 index 0000000000000..df018905256d5 --- /dev/null +++ b/code/modules/movespeed/_movespeed_modifier.html @@ -0,0 +1,26 @@ +code/modules/movespeed/_movespeed_modifier.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/movespeed/_movespeed_modifier.dm

Movespeed modification datums.

+
How move speed for mobs works
+
+

Move speed is now calculated by using modifier datums which are added to mobs. Some of them (nonvariable ones) are globally cached, the variable ones are instanced and changed based on need.

+

This gives us the ability to have multiple sources of movespeed, reliabily keep them applied and remove them when they should be

+

THey can have unique sources and a bunch of extra fancy flags that control behaviour

+

Previously trying to update move speed was a shot in the dark that usually meant mobs got stuck going faster or slower

+

Movespeed modification list is a simple key = datum system. Key will be the datum's ID if it is overridden to not be null, or type if it is not.

+

DO NOT override datum IDs unless you are going to have multiple types that must overwrite each other. It's more efficient to use types, ID functionality is only kept for cases where dynamic creation of modifiers need to be done.

+

When update movespeed is called, the list of items is iterated, according to flags priority and a bunch of conditions +this spits out a final calculated value which is used as a modifer to last_move + modifier for calculating when a mob +can next move

+

Key procs

+
/proc/get_cached_movespeed_modifierGrabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO!

Used for variable slowdowns like hunger/health loss/etc, works somewhat like the old list-based modification adds. Returns the modifier datum if successful +How this SHOULD work is: +1. Ensures type_id_datum one way or another refers to a /variable datum. This makes sure it can't be cached. This includes if it's already in the modification list. +2. Instantiate a new datum if type_id_datum isn't already instantiated + in the list, using the type. Obviously, wouldn't work for ID only. +3. Add the datum if necessary using the regular add proc +4. If any of the rest of the args are not null (see: multiplicative slowdown), modify the datum +5. Update if necessary

+
/proc/movespeed_data_null_checkChecks if a move speed modifier is valid and not missing any data
\ No newline at end of file diff --git a/code/modules/movespeed/modifiers/innate.html b/code/modules/movespeed/modifiers/innate.html new file mode 100644 index 0000000000000..ea5a04499d36e --- /dev/null +++ b/code/modules/movespeed/modifiers/innate.html @@ -0,0 +1 @@ +code/modules/movespeed/modifiers/innate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/movespeed/modifiers/innate.dm

/datum/movespeed_modifier/heavy_fishThe movespeed modifier from the heavy fish trait when applied to mobs.
\ No newline at end of file diff --git a/code/modules/movespeed/modifiers/mobs.html b/code/modules/movespeed/modifiers/mobs.html new file mode 100644 index 0000000000000..3ba1c678dc7a7 --- /dev/null +++ b/code/modules/movespeed/modifiers/mobs.html @@ -0,0 +1 @@ +code/modules/movespeed/modifiers/mobs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/movespeed/modifiers/mobs.dm

/datum/movespeed_modifier/equipment_speedmodMovespeed modifier applied by worn equipment.
/datum/movespeed_modifier/equipment_speedmod/immutableMovespeed modifier applied by immutably slow worn equipment. Should never be ignored, because that's the point.
\ No newline at end of file diff --git a/code/modules/movespeed/modifiers/status_effects.html b/code/modules/movespeed/modifiers/status_effects.html new file mode 100644 index 0000000000000..3d1108cc7c0e2 --- /dev/null +++ b/code/modules/movespeed/modifiers/status_effects.html @@ -0,0 +1 @@ +code/modules/movespeed/modifiers/status_effects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/movespeed/modifiers/status_effects.dm

/datum/movespeed_modifier/status_effect/midas_blightGet slower the more gold is in your system.
\ No newline at end of file diff --git a/code/modules/pai/candidate.html b/code/modules/pai/candidate.html new file mode 100644 index 0000000000000..82e976ee8248e --- /dev/null +++ b/code/modules/pai/candidate.html @@ -0,0 +1 @@ +code/modules/pai/candidate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/pai/candidate.dm

/datum/pai_candidate#pAI Candidate
\ No newline at end of file diff --git a/code/modules/paperwork/clipboard.html b/code/modules/paperwork/clipboard.html new file mode 100644 index 0000000000000..f1d11abfdeab3 --- /dev/null +++ b/code/modules/paperwork/clipboard.html @@ -0,0 +1 @@ +code/modules/paperwork/clipboard.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/paperwork/clipboard.dm

/obj/item/clipboardClipboard
\ No newline at end of file diff --git a/code/modules/paperwork/fax.html b/code/modules/paperwork/fax.html new file mode 100644 index 0000000000000..25422eadc439f --- /dev/null +++ b/code/modules/paperwork/fax.html @@ -0,0 +1,2 @@ +code/modules/paperwork/fax.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/paperwork/fax.dm

/proc/send_fax_to_areaSends a fax to a fax machine in an area! fax_area is a type, where all subtypes are also queried. If multiple machines, one is randomly picked +If force is TRUE, we send a droppod with a fax machine and fax the message to that fax machine
\ No newline at end of file diff --git a/code/modules/paperwork/handlabeler.html b/code/modules/paperwork/handlabeler.html new file mode 100644 index 0000000000000..afbf3184a8fb2 --- /dev/null +++ b/code/modules/paperwork/handlabeler.html @@ -0,0 +1 @@ +code/modules/paperwork/handlabeler.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/paperwork/handlabeler.dm

/obj/item/hand_labelerA mini-tool used to apply label items onto something to modify its name.
/obj/item/labelThe label item applied when labelling something
\ No newline at end of file diff --git a/code/modules/paperwork/paper.html b/code/modules/paperwork/paper.html new file mode 100644 index 0000000000000..d27ef5497ad68 --- /dev/null +++ b/code/modules/paperwork/paper.html @@ -0,0 +1,2 @@ +code/modules/paperwork/paper.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/paperwork/paper.dm

/obj/item/paperPaper +also scraps of paper
/datum/paper_inputA single instance of a saved raw input onto paper.
/datum/paper_stampA single instance of a saved stamp on paper.
/datum/paper_fieldA reference to some data that replaces a modifiable input field at some given index in paper raw input parsing.
\ No newline at end of file diff --git a/code/modules/paperwork/paper_premade.html b/code/modules/paperwork/paper_premade.html new file mode 100644 index 0000000000000..69113ce2a78cc --- /dev/null +++ b/code/modules/paperwork/paper_premade.html @@ -0,0 +1 @@ +code/modules/paperwork/paper_premade.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/paperwork/paper_premade.dm

/obj/item/paper/guides/jobs/hydroponicsJob guides n' fluff
/obj/item/paper/fluff/stations/centcom/disk_memoCentCom
/obj/item/paper/fluff/stations/lavaland/orm_noticeLavaland
/obj/item/paper/fluff/spaceruins/lizardsgas/memorandumSpace Ruins
/obj/item/paper/fluff/operativeinstructions for nuclear operatives on how to use their medipen
\ No newline at end of file diff --git a/code/modules/paperwork/paperwork.html b/code/modules/paperwork/paperwork.html new file mode 100644 index 0000000000000..c894cbc83bb73 --- /dev/null +++ b/code/modules/paperwork/paperwork.html @@ -0,0 +1 @@ +code/modules/paperwork/paperwork.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/paperwork/paperwork.dm

/obj/item/paperworkPaperwork documents that can be stamped by their associated stamp to provide a bonus to cargo.
\ No newline at end of file diff --git a/code/modules/paperwork/photocopier.html b/code/modules/paperwork/photocopier.html new file mode 100644 index 0000000000000..afcbe905c98f3 --- /dev/null +++ b/code/modules/paperwork/photocopier.html @@ -0,0 +1 @@ +code/modules/paperwork/photocopier.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/paperwork/photocopier.dm

BLANKS_FILE_NAMEName of the blanks file
PHOTO_GREYSCALEFor use with the color_mode var. Photos will be printed in greyscale while the var has this value.
PHOTO_COLORFor use with the color_mode var. Photos will be printed in full color while the var has this value.
PAPER_TONER_USEHow much toner is used for making a copy of a paper.
PHOTO_TONER_USEHow much toner is used for making a copy of a photo.
DOCUMENT_TONER_USEHow much toner is used for making a copy of a document.
ASS_TONER_USEHow much toner is used for making a copy of an ass.
PAPERWORK_TONER_USEHow much toner is used for making a copy of paperwork.
TONER_CHARGE_LOW_AMOUNTAt which toner charge amount we start losing color. Toner cartridges are scams.
PAPER_PAPER_USEHow much paper is used for making a copy of paper. What, are you seriously surprised by this?
PHOTO_PAPER_USEHow much paper is used for making a copy of a photo.
DOCUMENT_PAPER_USEHow much paper is used for making a copy of a document.
ASS_PAPER_USEHow much paper is used for making a copy of a photo.
PAPERWORK_PAPER_USEHow much paper is used for making a copy of paperwork.
MAX_PAPER_CAPACITYMaximum capacity of a photocopier
MAX_COPIES_AT_ONCEThe maximum amount of copies you can make with one press of the copy button.
PHOTOCOPIER_FEEPhotocopier copy fee.
/obj/machinery/photocopier/gratisSubtype of photocopier that is free to use.

Define Details

ASS_PAPER_USE

How much paper is used for making a copy of a photo.

ASS_TONER_USE

How much toner is used for making a copy of an ass.

BLANKS_FILE_NAME

Name of the blanks file

DOCUMENT_PAPER_USE

How much paper is used for making a copy of a document.

DOCUMENT_TONER_USE

How much toner is used for making a copy of a document.

MAX_COPIES_AT_ONCE

The maximum amount of copies you can make with one press of the copy button.

MAX_PAPER_CAPACITY

Maximum capacity of a photocopier

PAPERWORK_PAPER_USE

How much paper is used for making a copy of paperwork.

PAPERWORK_TONER_USE

How much toner is used for making a copy of paperwork.

PAPER_PAPER_USE

How much paper is used for making a copy of paper. What, are you seriously surprised by this?

PAPER_TONER_USE

How much toner is used for making a copy of a paper.

PHOTOCOPIER_FEE

Photocopier copy fee.

PHOTO_COLOR

For use with the color_mode var. Photos will be printed in full color while the var has this value.

PHOTO_GREYSCALE

For use with the color_mode var. Photos will be printed in greyscale while the var has this value.

PHOTO_PAPER_USE

How much paper is used for making a copy of a photo.

PHOTO_TONER_USE

How much toner is used for making a copy of a photo.

TONER_CHARGE_LOW_AMOUNT

At which toner charge amount we start losing color. Toner cartridges are scams.

\ No newline at end of file diff --git a/code/modules/photography/photos/frame.html b/code/modules/photography/photos/frame.html new file mode 100644 index 0000000000000..172456e9593e7 --- /dev/null +++ b/code/modules/photography/photos/frame.html @@ -0,0 +1 @@ +code/modules/photography/photos/frame.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/photography/photos/frame.dm

/obj/structure/sign/picture_frame/portraitThis used to be a plaque portrait of a monkey. Now it's been revamped into something more.
\ No newline at end of file diff --git a/code/modules/plumbing/plumbers/_plumb_machinery.html b/code/modules/plumbing/plumbers/_plumb_machinery.html new file mode 100644 index 0000000000000..602ff5cedc78b --- /dev/null +++ b/code/modules/plumbing/plumbers/_plumb_machinery.html @@ -0,0 +1,5 @@ +code/modules/plumbing/plumbers/_plumb_machinery.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/plumbing/plumbers/_plumb_machinery.dm

/obj/machinery/plumbingBasic plumbing object. +It doesn't really hold anything special, YET. +Objects that are plumbing but not a subtype are as of writing liquid pumps and the reagent_dispenser tank +Also please note that the plumbing component is toggled on and off by the component using a signal from default_unfasten_wrench, so dont worry about it
/datum/reagents/plumbingSpecialized reagent container for plumbing. Uses the round robin approach of transferring reagents +so transfer 5 from 15 water, 15 sugar and 15 plasma becomes 10, 15, 15 instead of 13.3333, 13.3333 13.3333. Good if you hate floating point errors
\ No newline at end of file diff --git a/code/modules/plumbing/plumbers/acclimator.html b/code/modules/plumbing/plumbers/acclimator.html new file mode 100644 index 0000000000000..9b37ec9c50e07 --- /dev/null +++ b/code/modules/plumbing/plumbers/acclimator.html @@ -0,0 +1 @@ +code/modules/plumbing/plumbers/acclimator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/plumbing/plumbers/acclimator.dm

HEATER_COEFFICIENTcool/heat power. converts temperature into joules
/obj/machinery/plumbing/acclimatorthis the plumbing version of a heater/freezer.

Define Details

HEATER_COEFFICIENT

cool/heat power. converts temperature into joules

\ No newline at end of file diff --git a/code/modules/plumbing/plumbers/filter.html b/code/modules/plumbing/plumbers/filter.html new file mode 100644 index 0000000000000..49a2256021a25 --- /dev/null +++ b/code/modules/plumbing/plumbers/filter.html @@ -0,0 +1 @@ +code/modules/plumbing/plumbers/filter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/plumbing/plumbers/filter.dm

/obj/machinery/plumbing/filterchemical plumbing filter. If it's not filtered by left and right, it goes straight.
\ No newline at end of file diff --git a/code/modules/plumbing/plumbers/iv_drip.html b/code/modules/plumbing/plumbers/iv_drip.html new file mode 100644 index 0000000000000..0c39133667fab --- /dev/null +++ b/code/modules/plumbing/plumbers/iv_drip.html @@ -0,0 +1 @@ +code/modules/plumbing/plumbers/iv_drip.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/plumbing/plumbers/iv_drip.dm

/obj/machinery/iv_drip/plumbingmodified IV that can be anchored and takes plumbing in- and output
\ No newline at end of file diff --git a/code/modules/plumbing/plumbers/pill_press.html b/code/modules/plumbing/plumbers/pill_press.html new file mode 100644 index 0000000000000..fcf97c7ab4236 --- /dev/null +++ b/code/modules/plumbing/plumbers/pill_press.html @@ -0,0 +1 @@ +code/modules/plumbing/plumbers/pill_press.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/plumbing/plumbers/pill_press.dm

MIN_VOLUMEthe minimum size of a pill or patch
MAX_VOLUMEthe maximum size a pill or patch can be
MAX_FLOOR_PRODUCTSmax amount of pills allowed on our tile before we start storing them instead
/obj/machinery/plumbing/pill_pressWe take a constant input of reagents, and produce a pill once a set volume is reached

Define Details

MAX_FLOOR_PRODUCTS

max amount of pills allowed on our tile before we start storing them instead

MAX_VOLUME

the maximum size a pill or patch can be

MIN_VOLUME

the minimum size of a pill or patch

\ No newline at end of file diff --git a/code/modules/plumbing/plumbers/pumps.html b/code/modules/plumbing/plumbers/pumps.html new file mode 100644 index 0000000000000..c15d2ed0167cc --- /dev/null +++ b/code/modules/plumbing/plumbers/pumps.html @@ -0,0 +1 @@ +code/modules/plumbing/plumbers/pumps.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/plumbing/plumbers/pumps.dm

/obj/machinery/plumbing/liquid_pumpWe pump liquids from activated(plungerated) geysers to a plumbing outlet. We need to be wired.
\ No newline at end of file diff --git a/code/modules/plumbing/plumbers/reaction_chamber.html b/code/modules/plumbing/plumbers/reaction_chamber.html new file mode 100644 index 0000000000000..36c907cdfa70e --- /dev/null +++ b/code/modules/plumbing/plumbers/reaction_chamber.html @@ -0,0 +1,3 @@ +code/modules/plumbing/plumbers/reaction_chamber.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/plumbing/plumbers/reaction_chamber.dm

HEATER_COEFFICIENTa reaction chamber for plumbing. pretty much everything can react, but this one keeps the reagents separated and only reacts under your given terms +coefficient to convert temperature to joules. same lvl as acclimator
/obj/machinery/plumbing/reaction_chamber/chemChemistry version of reaction chamber that allows for acid and base buffers to be used while reacting

Define Details

HEATER_COEFFICIENT

a reaction chamber for plumbing. pretty much everything can react, but this one keeps the reagents separated and only reacts under your given terms +coefficient to convert temperature to joules. same lvl as acclimator

\ No newline at end of file diff --git a/code/modules/plumbing/plumbers/simple_machines.html b/code/modules/plumbing/plumbers/simple_machines.html new file mode 100644 index 0000000000000..a1a2b13000bf7 --- /dev/null +++ b/code/modules/plumbing/plumbers/simple_machines.html @@ -0,0 +1 @@ +code/modules/plumbing/plumbers/simple_machines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/plumbing/plumbers/simple_machines.dm

/obj/machinery/plumbing/inputWe can empty beakers in here and everything
/obj/machinery/plumbing/outputWe can fill beakers in here and everything. we dont inheret from input because it has nothing that we need
/obj/machinery/plumbing/output/tapFor pouring reagents from ducts directly into cups
/obj/machinery/plumbing/tankFor storing large volume of reagents
/obj/machinery/plumbing/layer_manifoldLayer manifold machine that connects a bunch of layers
\ No newline at end of file diff --git a/code/modules/plumbing/plumbers/splitters.html b/code/modules/plumbing/plumbers/splitters.html new file mode 100644 index 0000000000000..338febe57112c --- /dev/null +++ b/code/modules/plumbing/plumbers/splitters.html @@ -0,0 +1 @@ +code/modules/plumbing/plumbers/splitters.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/plumbing/plumbers/splitters.dm

/obj/machinery/plumbing/splitterit splits the reagents however you want. So you can "every 60 units, 45 goes left and 15 goes straight". The side direction is EAST, you can change this in the component
\ No newline at end of file diff --git a/code/modules/plumbing/plumbers/synthesizer.html b/code/modules/plumbing/plumbers/synthesizer.html new file mode 100644 index 0000000000000..00dfe109e5389 --- /dev/null +++ b/code/modules/plumbing/plumbers/synthesizer.html @@ -0,0 +1 @@ +code/modules/plumbing/plumbers/synthesizer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/plumbing/plumbers/synthesizer.dm

/obj/machinery/plumbing/synthesizerA single machine that produces a single chem. Can be placed in unison with others through plumbing to create chemical factories
\ No newline at end of file diff --git a/code/modules/plumbing/plumbers/teleporter.html b/code/modules/plumbing/plumbers/teleporter.html new file mode 100644 index 0000000000000..50c4cc3068a35 --- /dev/null +++ b/code/modules/plumbing/plumbers/teleporter.html @@ -0,0 +1 @@ +code/modules/plumbing/plumbers/teleporter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/plumbing/plumbers/teleporter.dm

/obj/machinery/plumbing/senderA bluespace input pipe for plumbing
/obj/machinery/plumbing/receiverA bluespace output pipe for plumbing. Supports multiple recipients. Must be constructed with a circuit board
\ No newline at end of file diff --git a/code/modules/power/apc/apc_attack.html b/code/modules/power/apc/apc_attack.html new file mode 100644 index 0000000000000..1c8f0782b5232 --- /dev/null +++ b/code/modules/power/apc/apc_attack.html @@ -0,0 +1 @@ +code/modules/power/apc/apc_attack.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/power/apc/apc_attack.dm

ETHEREAL_APC_DRAIN_TIMEHow long it takes an ethereal to drain or charge APCs. Also used as a spam limiter.
ETHEREAL_APC_POWER_GAINHow much power ethereals gain/drain from APCs.

Define Details

ETHEREAL_APC_DRAIN_TIME

How long it takes an ethereal to drain or charge APCs. Also used as a spam limiter.

ETHEREAL_APC_POWER_GAIN

How much power ethereals gain/drain from APCs.

\ No newline at end of file diff --git a/code/modules/power/apc/apc_main.html b/code/modules/power/apc/apc_main.html new file mode 100644 index 0000000000000..014c871406186 --- /dev/null +++ b/code/modules/power/apc/apc_main.html @@ -0,0 +1 @@ +code/modules/power/apc/apc_main.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/power/apc/apc_main.dm

CHARGELEVELCap for how fast cells charge, as a percentage per second (.01 means cellcharge is capped to 1% per second)
APC_CHANNEL_LIGHT_TRESHOLDCharge percentage at which the lights channel stops working
APC_CHANNEL_EQUIP_TRESHOLDCharge percentage at which the equipment channel stops working
APC_CHANNEL_ALARM_TRESHOLDCharge percentage at which the APC icon indicates discharging

Define Details

APC_CHANNEL_ALARM_TRESHOLD

Charge percentage at which the APC icon indicates discharging

APC_CHANNEL_EQUIP_TRESHOLD

Charge percentage at which the equipment channel stops working

APC_CHANNEL_LIGHT_TRESHOLD

Charge percentage at which the lights channel stops working

CHARGELEVEL

Cap for how fast cells charge, as a percentage per second (.01 means cellcharge is capped to 1% per second)

\ No newline at end of file diff --git a/code/modules/power/apc/apc_mapping.html b/code/modules/power/apc/apc_mapping.html new file mode 100644 index 0000000000000..351671495704a --- /dev/null +++ b/code/modules/power/apc/apc_mapping.html @@ -0,0 +1 @@ +code/modules/power/apc/apc_mapping.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/power/apc/apc_mapping.dm

/obj/machinery/power/apc/worn_outUsed to change name for apcs on away missions
\ No newline at end of file diff --git a/code/modules/power/cable.html b/code/modules/power/cable.html new file mode 100644 index 0000000000000..51c292088684e --- /dev/null +++ b/code/modules/power/cable.html @@ -0,0 +1 @@ +code/modules/power/cable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/power/cable.dm

/obj/structure/cable/multilayermultilayer cable to connect different layers
\ No newline at end of file diff --git a/code/modules/power/cell.html b/code/modules/power/cell.html new file mode 100644 index 0000000000000..745e208660262 --- /dev/null +++ b/code/modules/power/cell.html @@ -0,0 +1 @@ +code/modules/power/cell.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/power/cell.dm

/obj/item/stock_parts/power_store/cellPower cells, used primarily for handheld and portable things. Holds a reasonable amount of power.
\ No newline at end of file diff --git a/code/modules/power/energy_accumulator.html b/code/modules/power/energy_accumulator.html new file mode 100644 index 0000000000000..649613604aa80 --- /dev/null +++ b/code/modules/power/energy_accumulator.html @@ -0,0 +1,16 @@ +code/modules/power/energy_accumulator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/power/energy_accumulator.dm

ACCUMULATOR_PROPORTIONAL_COEFFICIENTThe coefficient of the proportionate power output. +Doesn't change output total, lower numbers just increases the smoothing - taking longer to ramp up, and longer to drop away. +4% means an accumulator, when starting up for the first time:
ACCUMULATOR_CONSTANT_COEFFICIENTThe coefficient for the constant power output.
/obj/machinery/power/energy_accumulatorAbstract type for generators that accumulate energy over time and slowly release it +eg. radiation collectors, tesla coils

Define Details

ACCUMULATOR_CONSTANT_COEFFICIENT

The coefficient for the constant power output.

ACCUMULATOR_PROPORTIONAL_COEFFICIENT

The coefficient of the proportionate power output. +Doesn't change output total, lower numbers just increases the smoothing - taking longer to ramp up, and longer to drop away. +4% means an accumulator, when starting up for the first time:

+
\ No newline at end of file diff --git a/code/modules/power/gravitygenerator.html b/code/modules/power/gravitygenerator.html new file mode 100644 index 0000000000000..dfe1a196340ff --- /dev/null +++ b/code/modules/power/gravitygenerator.html @@ -0,0 +1 @@ +code/modules/power/gravitygenerator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/power/gravitygenerator.dm

/obj/machinery/gravity_generator/partGenerator part
/obj/machinery/gravity_generator/mainMain gravity generator
/obj/machinery/gravity_generator/main/offStation generator that spawns with gravity turned off.
/obj/item/paper/guides/jobs/engi/gravity_genGravity generator instruction guide
\ No newline at end of file diff --git a/code/modules/power/lighting/light.html b/code/modules/power/lighting/light.html new file mode 100644 index 0000000000000..4d83d30ad742b --- /dev/null +++ b/code/modules/power/lighting/light.html @@ -0,0 +1 @@ +code/modules/power/lighting/light.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/power/lighting/light.dm

NIGHTSHIFT_LIGHT_MODIFIERDynamically calculate nightshift brightness

Define Details

NIGHTSHIFT_LIGHT_MODIFIER

Dynamically calculate nightshift brightness

\ No newline at end of file diff --git a/code/modules/power/power.html b/code/modules/power/power.html new file mode 100644 index 0000000000000..871d03298a732 --- /dev/null +++ b/code/modules/power/power.html @@ -0,0 +1 @@ +code/modules/power/power.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/power/power.dm

/proc/propagate_networkremove the old powernet and replace it with a new one throughout the network.
/proc/get_powernet_info_from_sourceExtracts the powernet and cell of the provided power source
\ No newline at end of file diff --git a/code/modules/power/power_store.html b/code/modules/power/power_store.html new file mode 100644 index 0000000000000..e734bf6002a5a --- /dev/null +++ b/code/modules/power/power_store.html @@ -0,0 +1 @@ +code/modules/power/power_store.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/power/power_store.dm

/obj/item/stock_parts/power_storeAbstract type for a stock part that holds power.
\ No newline at end of file diff --git a/code/modules/power/singularity/dark_matter_singularity.html b/code/modules/power/singularity/dark_matter_singularity.html new file mode 100644 index 0000000000000..9deeed9d71ea9 --- /dev/null +++ b/code/modules/power/singularity/dark_matter_singularity.html @@ -0,0 +1 @@ +code/modules/power/singularity/dark_matter_singularity.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/power/singularity/dark_matter_singularity.dm

/obj/singularity/dark_matterThis type of singularity cannot grow as big, but it constantly hunts down living targets.
\ No newline at end of file diff --git a/code/modules/power/singularity/narsie.html b/code/modules/power/singularity/narsie.html new file mode 100644 index 0000000000000..e3d627183464e --- /dev/null +++ b/code/modules/power/singularity/narsie.html @@ -0,0 +1,3 @@ +code/modules/power/singularity/narsie.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/power/singularity/narsie.dm

/obj/narsieNar'Sie, the God of the blood cultists
/proc/begin_the_endBegins the process of ending the round via cult narsie win +Consists of later called procs (in order of called):
/proc/narsie_end_begin_checkFirst crew last second win check and flufftext for [/proc/begin_the_end()]
/proc/narsie_end_second_checkSecond crew last second win check and flufftext for [/proc/begin_the_end()]
/proc/narsie_start_destroy_stationsecurity level and shuttle lockdowns for [/proc/begin_the_end()]
/proc/narsie_apocalypseThird crew last second win check and flufftext for [/proc/begin_the_end()]
/proc/narsie_last_second_winCalled only if the crew managed to destroy narsie at the very last second for [/proc/begin_the_end()]
/proc/ending_helperHelper to set the round to end asap. Current usage Cult round end code
/proc/cult_ending_helperSelects cinematic to play as part of the cult end depending on the outcome then ends the round afterward +called either when narsie eats everyone, or when [/proc/begin_the_end()] reaches its conclusion
\ No newline at end of file diff --git a/code/modules/power/singularity/reality_tear.html b/code/modules/power/singularity/reality_tear.html new file mode 100644 index 0000000000000..15cfbe88a2674 --- /dev/null +++ b/code/modules/power/singularity/reality_tear.html @@ -0,0 +1 @@ +code/modules/power/singularity/reality_tear.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/power/singularity/reality_tear.dm

/obj/reality_tearTear in the Fabric of Reality
\ No newline at end of file diff --git a/code/modules/power/singularity/singularity.html b/code/modules/power/singularity/singularity.html new file mode 100644 index 0000000000000..b7322bbb1e91e --- /dev/null +++ b/code/modules/power/singularity/singularity.html @@ -0,0 +1 @@ +code/modules/power/singularity/singularity.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/power/singularity/singularity.dm

/obj/singularityThe gravitational singularity
/obj/singularity/shuttle_eventSpecial singularity that spawns for shuttle events only
/obj/singularity/orionSpecial singularity spawned by being sucked into a black hole during emagged orion trail.
\ No newline at end of file diff --git a/code/modules/power/smes_portable.html b/code/modules/power/smes_portable.html new file mode 100644 index 0000000000000..9922b220a303d --- /dev/null +++ b/code/modules/power/smes_portable.html @@ -0,0 +1 @@ +code/modules/power/smes_portable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/power/smes_portable.dm

/obj/machinery/power/smesbankThe actual portable part of the portable SMES system. Pretty useless without an actual connector.
\ No newline at end of file diff --git a/code/modules/power/supermatter/supermatter_delamination/_sm_delam.html b/code/modules/power/supermatter/supermatter_delamination/_sm_delam.html new file mode 100644 index 0000000000000..2559e316070ea --- /dev/null +++ b/code/modules/power/supermatter/supermatter_delamination/_sm_delam.html @@ -0,0 +1,2 @@ +code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm

/datum/sm_delamLogic holder for supermatter delaminations, goes off the strategy design pattern. +Selected by /obj/machinery/power/supermatter_crystal/proc/set_delam
\ No newline at end of file diff --git a/code/modules/power/supermatter/supermatter_delamination/common_delams.html b/code/modules/power/supermatter/supermatter_delamination/common_delams.html new file mode 100644 index 0000000000000..87a82d3da7e6f --- /dev/null +++ b/code/modules/power/supermatter/supermatter_delamination/common_delams.html @@ -0,0 +1 @@ +code/modules/power/supermatter/supermatter_delamination/common_delams.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/power/supermatter/supermatter_delamination/common_delams.dm

/datum/sm_delam/singularityWhen we have too much gas.
/datum/sm_delam/teslaWhen we have too much power.
/datum/sm_delam/explosiveDefault delam.
\ No newline at end of file diff --git a/code/modules/power/supermatter/supermatter_gas.html b/code/modules/power/supermatter/supermatter_gas.html new file mode 100644 index 0000000000000..94a32e89383c5 --- /dev/null +++ b/code/modules/power/supermatter/supermatter_gas.html @@ -0,0 +1,4 @@ +code/modules/power/supermatter/supermatter_gas.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/power/supermatter/supermatter_gas.dm

/proc/sm_gas_dataReturn a list info of the SM gases. +Can only run after init_sm_gas
/datum/sm_gasContains effects of gases when absorbed by the sm. +If the gas has no effects you do not need to add another sm_gas subtype, +We already guard for nulls in /obj/machinery/power/supermatter_crystal/proc/calculate_gases
\ No newline at end of file diff --git a/code/modules/power/supermatter/supermatter_variants.html b/code/modules/power/supermatter/supermatter_variants.html new file mode 100644 index 0000000000000..97af4d3640be0 --- /dev/null +++ b/code/modules/power/supermatter/supermatter_variants.html @@ -0,0 +1 @@ +code/modules/power/supermatter/supermatter_variants.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/power/supermatter/supermatter_variants.dm

/obj/machinery/power/supermatter_crystal/hugboxNormal SM with it's processing disabled.
/obj/machinery/power/supermatter_crystal/engineNormal SM designated as main engine.
/obj/machinery/power/supermatter_crystal/shardShard SM.
/obj/machinery/power/supermatter_crystal/shard/hugboxShard SM with it's processing disabled.
/obj/machinery/power/supermatter_crystal/shard/engineShard SM designated as the main engine.
\ No newline at end of file diff --git a/code/modules/power/tesla/energy_ball.html b/code/modules/power/tesla/energy_ball.html new file mode 100644 index 0000000000000..0e3d1124eb52d --- /dev/null +++ b/code/modules/power/tesla/energy_ball.html @@ -0,0 +1 @@ +code/modules/power/tesla/energy_ball.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/power/tesla/energy_ball.dm

/obj/energy_ballThe Tesla engine
\ No newline at end of file diff --git a/code/modules/procedural_mapping.html b/code/modules/procedural_mapping.html new file mode 100644 index 0000000000000..6e6631b8560a8 --- /dev/null +++ b/code/modules/procedural_mapping.html @@ -0,0 +1,140 @@ +code/modules/procedural_mapping/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Procedural Mapping

With Regards To RemieRichards

+
+

Coder Informative Readme

mapGenerator:

+

Desc: a mapGenerator is a master datum that collects and syncs all mapGeneratorModules in its modules list.

+

defineRegion(var/turf/Start, turf/End, replace = 0)

+

Example: defineRegion(locate(1,1,1),locate(5,5,5),0)

+

Desc: Sets the bounds of the mapGenerator's "map".

+

defineCircularRegion(var/turf/Start, turf/End, replace = 0)

+

Example: defineCircularRegion(locate(1,1,1),locate(5,5,5),0)

+

Desc: Sets the mapGenerator's "map" as a circle, with center in the middle of Start and End's X,Y,Z coordinates.

+

undefineRegion()

+

Example: undefineRegion()

+

Desc: Empties the map generator list.

+

checkRegion(var/turf/Start, turf/End)

+

Example: checkRegion(locate(1,1,1), locate(5,5,5))

+

Desc: Checks if a rectangle between Start's coords and End's coords is valid.

+

Existing Calls: mapGenerator/defineRegion(), mapGenerator/defineCircularRegion()

+

generate()

+

Example: generate()

+

Desc: Orders all mapGeneratorModules in the modules list to generate().

+

generateOneTurf(var/turf/T)

+

Example: generateOneTurf(locate(1,1,1))

+

Desc: Orders all mapGeneratorModules in the modules list to place(T) on this turf.

+

initialiseModules()

+

Example: initialiseModules()

+

Desc: Replaces all typepaths in the modules list with actual /datum/map_generator/Module types.

+

Existing Calls: mapGenerator/New()

+

syncModules()

+

Example: syncModules()

+

Desc: Sets the Mother variable on all mapGeneratorModules in the modules list to this mapGenerator.

+

Existing Calls: initialiseModules(),generate(),generateOneTurf()

+
+

mapGeneratorModule

+

Desc: a mapGeneratorModule has spawnableAtoms and spawnableTurfs lists which it will generate on turfs in its mother's map based on cluster variables.

+

sync(var/datum/map_generator/mum)

+

Example: sync(a_mapGenerator_as_a_variable)

+

Desc: Sets the Mother variable to the mum argument.

+

Existing Calls: mapGenerator/syncModules()

+

generate()

+

Example: generate()

+

Desc: Calls place(T) on all turfs in its mother's map

+

Existing Calls: mapGenerator/generate()

+

place(var/turf/T)

+

Example: place(locate(1,1,1)) +Desc: Run this mapGeneratorModule's effects on this turf (Spawning atoms, Changing turfs).

+

Existing Calls: mapGenerator/generate(), mapGenerator/generateOneTurf()

+

checkPlaceAtom(var/turf/T)

+

Example: checkPlace(locate(1,1,1))

+

Desc: Checks if the turf is valid for placing atoms.

+

Existing Calls: place()

+
+

Mapper Friendly Readme

+

Simple Workflow:

+
    +
  1. Define a/some mapGeneratorModule(s) to your liking, choosing atoms and turfs to spawn
  2. +
+
    +
  • I chose to split Turfs and Atoms off into separate modules, but this is NOT required.
  • +
  • A mapGeneratorModule may have turfs AND atoms, so long as each is in its appropriate list
  • +
+
    +
  1. Define a mapGenerator type who's modules list contains the typepath(s) of all the module(s) you wish to use
  2. +
+
    +
  • The order of the typepaths in the modules list is the order they will happen in, this is important for clusterCheckFlags.
  • +
+
    +
  1. Take notes of the Bottom Left and Top Right turfs of your rectangular "map"'s coordinates
  2. +
+
    +
  • X, Y, AND Z. Yes, you can create 3D "maps" by having differing Z coordinates
  • +
+
    +
  1. +

    Create the mapGenerator type you created

    +
  2. +
  3. +

    Call yourMapGeneratorType.defineRegion(locate(X,Y,Z), locate(X,Y,Z))

    +
  4. +
+
    +
  • The above X/Y/Zs are the coordinates of the start and end turfs, the locate() simply finds the turf for the code
  • +
+
    +
  1. Call yourMapGeneratorType.generate(), this will cause all the modules in the generator to build within the map bounds
  2. +
+

Option Suggestions:

+
    +
  • Have separate modules for Turfs and Atoms, this is not enforced, but it is how I have structured my nature example.
  • +
  • If your map doesn't look quite to your liking, simply jiggle with the variables on your modules and the type probabilities.
  • +
  • You can mix and map premade areas with the procedural generation, for example mapping an entire flat land but having code generate just the grass tufts.
  • +
+

Using the Modules list

+

Simply think of it like each module is a layer in a graphics editing program!

+

To help you do this templates such as /mapGeneratorModule/bottomLayer have been provided with appropriate default settings.

+

These are located near the bottom of mapGeneratorModule.dm. You would order your list left to right, top to bottom. For example: modules = list(bottomLayer,nextLayer,nextNextLayer), etc.

+

Variable Breakdown (For Mappers):

+

mapGenerator

+
    +
  • map - INTERNAL, do not touch
  • +
  • modules - A list of typepaths of mapGeneratorModules
  • +
+

mapGeneratorModule

+
    +
  • +

    mother - INTERNAL, do not touch

    +
  • +
  • +

    spawnableAtoms - A list of typepaths and their probability to spawn, eg: spawnableAtoms = list(/obj/structure/flora/tree/pine = 30)

    +
  • +
  • +

    spawnableTurfs - A list of typepaths and their probability to spawn, eg: spawnableTurfs = list(/turf/unsimulated/floor/grass = 100)

    +
  • +
  • +

    clusterMax - The max range to check for something being "too close" for this atom/turf to spawn, the true value is random between clusterMin and clusterMax

    +
  • +
  • +

    clusterMin - The min range to check for something being "too close" for this atom/turf to spawn, the true value is random between clusterMin and clusterMax

    +
  • +
  • +

    clusterCheckFlags - A Bitfield that controls how the cluster checks work, All based on clusterMin and clusterMax guides

    +
  • +
  • +

    allowAtomsOnSpace - A Boolean for if we allow atoms to spawn on space tiles

    +
  • +
+

clusterCheckFlags flags:

+
CLUSTER_CHECK_NONE				0   //No checks are done, cluster as much as possible
+CLUSTER_CHECK_DIFFERENT_TURFS			2  //Don't let turfs of DIFFERENT types cluster
+CLUSTER_CHECK_DIFFERENT_ATOMS			4  //Don't let atoms of DIFFERENT types cluster
+CLUSTER_CHECK_SAME_TURFS			8  //Don't let turfs of the SAME type cluster
+CLUSTER_CHECK_SAME_ATOMS			16 //Don't let atoms of the SAME type cluster
+
+CLUSTER_CHECK_SAMES				24 //Don't let any of the same type cluster
+CLUSTER_CHECK_DIFFERENTS			6  //Don't let any different types cluster
+CLUSTER_CHECK_ALL_TURFS				10 //Don't let ANY turfs cluster same and different types
+CLUSTER_CHECK_ALL_ATOMS				20 //Don't let ANY atoms cluster same and different types
+
+CLUSTER_CHECK_ALL				30 //Don't let anything cluster, like, at all
+
\ No newline at end of file diff --git a/code/modules/procedural_mapping/mapGenerator.html b/code/modules/procedural_mapping/mapGenerator.html new file mode 100644 index 0000000000000..00e148b513779 --- /dev/null +++ b/code/modules/procedural_mapping/mapGenerator.html @@ -0,0 +1,2 @@ +code/modules/procedural_mapping/mapGenerator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/procedural_mapping/mapGenerator.dm

/datum/map_generatorThis type is responsible for any map generation behavior that is done in areas, override this to allow for +area-specific map generation. This generation is ran by areas in initialize.
\ No newline at end of file diff --git a/code/modules/projectiles/ammunition/energy/laser.html b/code/modules/projectiles/ammunition/energy/laser.html new file mode 100644 index 0000000000000..bbf1038a9dc84 --- /dev/null +++ b/code/modules/projectiles/ammunition/energy/laser.html @@ -0,0 +1 @@ +code/modules/projectiles/ammunition/energy/laser.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/ammunition/energy/laser.dm

/obj/item/ammo_casing/lasernot exactly an energy ammo casing, but it's used by the laser gatling.
\ No newline at end of file diff --git a/code/modules/projectiles/guns/ballistic.html b/code/modules/projectiles/guns/ballistic.html new file mode 100644 index 0000000000000..de5678787fc75 --- /dev/null +++ b/code/modules/projectiles/guns/ballistic.html @@ -0,0 +1,2 @@ +code/modules/projectiles/guns/ballistic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/guns/ballistic.dm

/obj/item/gun/ballisticSubtype for any kind of ballistic gun +This has a shitload of vars on it, and I'm sorry for that, but it does make making new subtypes really easy
\ No newline at end of file diff --git a/code/modules/projectiles/guns/ballistic/automatic.html b/code/modules/projectiles/guns/ballistic/automatic.html new file mode 100644 index 0000000000000..b7405afb035ae --- /dev/null +++ b/code/modules/projectiles/guns/ballistic/automatic.html @@ -0,0 +1,3 @@ +code/modules/projectiles/guns/ballistic/automatic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/guns/ballistic/automatic.dm

/obj/item/gun/ballistic/automatic/mini_uzi/chimpgunWeak uzi for syndicate chimps. It comes in a 4 TC kit. +Roughly 9 damage per bullet every 0.2 seconds, equaling out to downing an opponent in a bit over a second, if they have no armor.
/obj/item/gun/ballistic/automatic/tommygun/chimpgunWeak tommygun for syndicate chimps. It comes in a 4 TC kit. +Roughly 9 damage per bullet every 0.2 seconds, equaling out to downing an opponent in a bit over a second, if they have no armor.
\ No newline at end of file diff --git a/code/modules/projectiles/guns/ballistic/bows/bow_arrows.html b/code/modules/projectiles/guns/ballistic/bows/bow_arrows.html new file mode 100644 index 0000000000000..d7e890f7a4bc7 --- /dev/null +++ b/code/modules/projectiles/guns/ballistic/bows/bow_arrows.html @@ -0,0 +1,2 @@ +code/modules/projectiles/guns/ballistic/bows/bow_arrows.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/guns/ballistic/bows/bow_arrows.dm

/obj/item/ammo_casing/arrowbase arrow
/obj/projectile/bullet/arrowbase arrow projectile
/obj/item/ammo_casing/arrow/stickysticky arrows
/obj/projectile/bullet/arrow/stickysticky arrow projectile
/obj/item/ammo_casing/arrow/poisonpoison arrows
/obj/projectile/bullet/arrow/poisonpoison arrow projctile
/obj/item/ammo_casing/arrow/holyholy arrows
/obj/projectile/bullet/arrow/holyholy arrow projectile
/obj/item/ammo_casing/arrow/plasticplastic arrows
/obj/projectile/bullet/arrow/plasticplastic arrow projectile
/obj/item/ammo_casing/arrow/holy/blazingspecial pyre sect arrow +in the future, this needs a special sprite, but bows don't support non-hardcoded arrow sprites
\ No newline at end of file diff --git a/code/modules/projectiles/guns/ballistic/bows/bow_types.html b/code/modules/projectiles/guns/ballistic/bows/bow_types.html new file mode 100644 index 0000000000000..34b4888bbfa9b --- /dev/null +++ b/code/modules/projectiles/guns/ballistic/bows/bow_types.html @@ -0,0 +1 @@ +code/modules/projectiles/guns/ballistic/bows/bow_types.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/guns/ballistic/bows/bow_types.dm

/obj/item/gun/ballistic/bow/longbowbasic bow, used for medieval sim
/obj/item/gun/ballistic/bow/shortbowShortbow, made via the crafting recipe
/obj/item/gun/ballistic/bow/divinechaplain's divine archer bow
\ No newline at end of file diff --git a/code/modules/projectiles/guns/ballistic/pistol.html b/code/modules/projectiles/guns/ballistic/pistol.html new file mode 100644 index 0000000000000..934a91562f9b1 --- /dev/null +++ b/code/modules/projectiles/guns/ballistic/pistol.html @@ -0,0 +1,2 @@ +code/modules/projectiles/guns/ballistic/pistol.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/guns/ballistic/pistol.dm

/obj/item/gun/ballistic/automatic/pistol/m1911/chimpgunWeak 1911 for syndicate chimps. It comes in a 4 TC kit. +15 damage every.. second? 7 shots to kill. Not fast.
\ No newline at end of file diff --git a/code/modules/projectiles/guns/ballistic/rifle.html b/code/modules/projectiles/guns/ballistic/rifle.html new file mode 100644 index 0000000000000..fcf9fd1e78453 --- /dev/null +++ b/code/modules/projectiles/guns/ballistic/rifle.html @@ -0,0 +1 @@ +code/modules/projectiles/guns/ballistic/rifle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/guns/ballistic/rifle.dm

/obj/item/gun/ballistic/rifle/boltaction/pipegunPIPE GUNS
/obj/item/gun/ballistic/rifle/enchantedMAGICAL BOLT ACTIONS
\ No newline at end of file diff --git a/code/modules/projectiles/guns/ballistic/shotgun.html b/code/modules/projectiles/guns/ballistic/shotgun.html new file mode 100644 index 0000000000000..30d595856c826 --- /dev/null +++ b/code/modules/projectiles/guns/ballistic/shotgun.html @@ -0,0 +1 @@ +code/modules/projectiles/guns/ballistic/shotgun.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/guns/ballistic/shotgun.dm

/obj/item/gun/ballistic/shotgun/monkeyAn underpowered shotgun given to Pun Pun when the station job trait roll.
\ No newline at end of file diff --git a/code/modules/projectiles/guns/bolt_types_explained.html b/code/modules/projectiles/guns/bolt_types_explained.html new file mode 100644 index 0000000000000..12d743476c91b --- /dev/null +++ b/code/modules/projectiles/guns/bolt_types_explained.html @@ -0,0 +1,17 @@ +code/modules/projectiles/guns/bolt_types_explained.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Balistic gun icon states explained

For a unknown period of time, /obj/item/gun/ballistic used the wrong icon state for its bolt_type and so, if you tried to copy how it worked to make your own gun, you'd get a broken sprite. This documentation is intended to explain in detail what some of the variables and functions do, and how to make your own gun subtypes that work properly.

+

Bolt Types

+

The easiest thing to screw up. For a long time, /obj/item/gun/ballistic had bolt_type set to BOLT_TYPE_STANDARD when the sprite was configured to use BOLT_TYPE_LOCKING sprites. Nobody noticed, because it wasn't obtainable through normal gameplay, and the Mosin which was broken by it only has like 3 pixels missing.

+

BOLT_TYPE_STANDARD

+

This is for guns that don't lock their slides back. Visually, it usually means guns that have an internal bolt that isn't visible, like the c20r or ARG Boarder. The base icon state is all you need to make it work.

+

BOLT_TYPE_OPEN

+

Pretty much like the Standard, but it takes rounds directly from the magazine without holding them in the chaimber first. This means that when you remove the mag, there isn't going to still be a bullet in the chaimber.

+

BOLT_TYPE_NO_BOLT

+

This is your revolvers and some(?) break action shotguns. When you click to reload them, they'll drop all the bullets inside of the gun, unspent or not.

+

BOLT_TYPE_LOCKING

+

The complicated one. This is what most pistols and bolt action rifles are. When you cycle (or fire) it on empty, it will lock back the slide, and you'll have to click it again to send the slide home. For rifles with semi_auto = FALSE, they don't feed automatically, so you have to rack the slide after every shot. (Like the Mosin)

+

Now, for the sprites, your base sprite should be the gun without a slide or bolt. Take a look at the APS, deagle, or Mosin sprites. If your icon state is handcannon you need to have a sprite for the slide as handcannon_bolt, and then a sprite for the bolt being locked back as handcannon_bolt_locked.

+

Sawing off

+

For guns that have can_be_sawn_off = TRUE, you'll need to make an entire second set of sprites. For BOLT_TYPE_LOCKING, this will look like the Mosin. If you're making a sawn off version of handcannon, you'll need hancannon_sawn for the base, and then hancannon_sawn_bolt and hancannon_sawn_bolt_locked.

+

Ammo display

+

You'll need mag_display = TRUE and a sprite called handcannon_mag to show the gun as having a magazine inserted into it. It's set to true by default, though.

+

Perhaps you want to make some kind visual depiction of ammunition feed. You can overlay over top of the magazine sprite of 100%, 80%, 60%, 40%, and 20% by having mag_display_ammo = TRUE. Use handcannon_mag_100, handcannon_mag_80, ect... to display these. There is no zero. You can use a overlaying sprite for showing the gun as empty called handcannon_empty. Take a look at the c20r as an example.

\ No newline at end of file diff --git a/code/modules/projectiles/guns/energy/laser.html b/code/modules/projectiles/guns/energy/laser.html new file mode 100644 index 0000000000000..3e05a52ff4988 --- /dev/null +++ b/code/modules/projectiles/guns/energy/laser.html @@ -0,0 +1 @@ +code/modules/projectiles/guns/energy/laser.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/guns/energy/laser.dm

/obj/item/gun/energy/lasercannonLaser Cannon
/obj/item/gun/energy/xrayX-ray gun
/obj/item/gun/energy/laser/bluetagLaser Tag
\ No newline at end of file diff --git a/code/modules/projectiles/guns/energy/recharge.html b/code/modules/projectiles/guns/energy/recharge.html new file mode 100644 index 0000000000000..31e7a9e66744d --- /dev/null +++ b/code/modules/projectiles/guns/energy/recharge.html @@ -0,0 +1 @@ +code/modules/projectiles/guns/energy/recharge.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/guns/energy/recharge.dm

/obj/item/gun/energy/recharge/fisherA silly gun that does literally zero damage, but disrupts electrical sources of light, like flashlights.
\ No newline at end of file diff --git a/code/modules/projectiles/guns/energy/special.html b/code/modules/projectiles/guns/energy/special.html new file mode 100644 index 0000000000000..c7ea0fcfea60c --- /dev/null +++ b/code/modules/projectiles/guns/energy/special.html @@ -0,0 +1 @@ +code/modules/projectiles/guns/energy/special.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/projectiles/guns/energy/special.dm

/obj/item/gun/energy/ionrifleGUN SPRITE OVERWRITES
PLASMA_CUTTER_CHARGE_WELDamount of charge used up to start action (multiplied by amount) and per progress_flash_divisor ticks of welding

Define Details

PLASMA_CUTTER_CHARGE_WELD

amount of charge used up to start action (multiplied by amount) and per progress_flash_divisor ticks of welding

\ No newline at end of file diff --git a/code/modules/projectiles/guns/magic/staff.html b/code/modules/projectiles/guns/magic/staff.html new file mode 100644 index 0000000000000..8ebd579387f35 --- /dev/null +++ b/code/modules/projectiles/guns/magic/staff.html @@ -0,0 +1,3 @@ +code/modules/projectiles/guns/magic/staff.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/guns/magic/staff.dm

/obj/item/gun/magic/staff/chaos/true_wabbajackStaff of chaos given to the wizard upon completing a cheesy grand ritual. Is completely evil and if something +breaks, it's completely intended. Fuck off. +Also can be used by everyone, because why not.
\ No newline at end of file diff --git a/code/modules/projectiles/guns/special/blastcannon.html b/code/modules/projectiles/guns/special/blastcannon.html new file mode 100644 index 0000000000000..0e7910ffd5f88 --- /dev/null +++ b/code/modules/projectiles/guns/special/blastcannon.html @@ -0,0 +1 @@ +code/modules/projectiles/guns/special/blastcannon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/projectiles/guns/special/blastcannon.dm

BLASTCANNON_RANGE_EXPHow much to scale the explosion ranges for blastcannon shots.
BLASTCANNON_RANGE_SCALEHow much to scale the explosion ranges for blastcannon shots.
/obj/item/gun/blastcannonA gun that consumes a TTV to shoot an projectile with equivalent power.
/obj/projectile/blastwaveThe projectile used by the blastcannon

Define Details

BLASTCANNON_RANGE_EXP

How much to scale the explosion ranges for blastcannon shots.

BLASTCANNON_RANGE_SCALE

How much to scale the explosion ranges for blastcannon shots.

\ No newline at end of file diff --git a/code/modules/projectiles/guns/special/meat_hook.html b/code/modules/projectiles/guns/special/meat_hook.html new file mode 100644 index 0000000000000..32170939597b4 --- /dev/null +++ b/code/modules/projectiles/guns/special/meat_hook.html @@ -0,0 +1,2 @@ +code/modules/projectiles/guns/special/meat_hook.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/projectiles/guns/special/meat_hook.dm

IMMOBILIZATION_TIMERHow long we immobilize the firer after firing - we do cancel the immobilization early if nothing is hit.
/obj/item/gun/magic/hookMeat Hook
/datum/hook_and_moveLightweight datum that just handles moving a target for the hook. +For the love of God, do not use this outside this file.
/obj/item/gun/magic/hook/debugDebug hook for fun (AKA admin abuse). doesn't do any more damage or anything just lets you wildfire it.

Define Details

IMMOBILIZATION_TIMER

How long we immobilize the firer after firing - we do cancel the immobilization early if nothing is hit.

\ No newline at end of file diff --git a/code/modules/projectiles/guns/special/medbeam.html b/code/modules/projectiles/guns/special/medbeam.html new file mode 100644 index 0000000000000..44d5044810ba1 --- /dev/null +++ b/code/modules/projectiles/guns/special/medbeam.html @@ -0,0 +1 @@ +code/modules/projectiles/guns/special/medbeam.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/guns/special/medbeam.dm

/obj/item/gun/medbeam/mechMech Version
\ No newline at end of file diff --git a/code/modules/projectiles/projectile.html b/code/modules/projectiles/projectile.html new file mode 100644 index 0000000000000..fc15e5b9c7913 --- /dev/null +++ b/code/modules/projectiles/projectile.html @@ -0,0 +1 @@ +code/modules/projectiles/projectile.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/projectile.dm

/proc/calculate_projectile_angle_and_pixel_offsetsCalculates the pixel offsets and angle that a projectile should be launched at.
\ No newline at end of file diff --git a/code/modules/projectiles/projectile/bullets/_incendiary.html b/code/modules/projectiles/projectile/bullets/_incendiary.html new file mode 100644 index 0000000000000..132709affa0c7 --- /dev/null +++ b/code/modules/projectiles/projectile/bullets/_incendiary.html @@ -0,0 +1 @@ +code/modules/projectiles/projectile/bullets/_incendiary.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/projectiles/projectile/bullets/_incendiary.dm

/obj/projectile/bullet/incendiary/fireIncendiary bullet that more closely resembles a real flamethrower sorta deal, no visible bullet, just flames.
/obj/projectile/bullet/incendiary/fire/backblastUsed in the backblast element
BACKBLAST_MAX_ITEM_KNOCKBACKwe only try to knock back the first 6 items per tile

Define Details

BACKBLAST_MAX_ITEM_KNOCKBACK

we only try to knock back the first 6 items per tile

\ No newline at end of file diff --git a/code/modules/projectiles/projectile/bullets/shotgun.html b/code/modules/projectiles/projectile/bullets/shotgun.html new file mode 100644 index 0000000000000..82ea9934af43f --- /dev/null +++ b/code/modules/projectiles/projectile/bullets/shotgun.html @@ -0,0 +1,2 @@ +code/modules/projectiles/projectile/bullets/shotgun.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/projectile/bullets/shotgun.dm

/obj/projectile/bullet/pellet/shotgun_buckshot/oldA slightly weaker version of the buckshot, available from the blackmarket. +The casings they're in have a very small chance to misfire and will gradually damage the firearm, making it weaker.
\ No newline at end of file diff --git a/code/modules/projectiles/projectile/bullets/special.html b/code/modules/projectiles/projectile/bullets/special.html new file mode 100644 index 0000000000000..edb5b62ef88b5 --- /dev/null +++ b/code/modules/projectiles/projectile/bullets/special.html @@ -0,0 +1 @@ +code/modules/projectiles/projectile/bullets/special.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/projectile/bullets/special.dm

/obj/projectile/bullet/marksmanMarksman Shot
/obj/projectile/bullet/coinMarksman Coin
\ No newline at end of file diff --git a/code/modules/projectiles/projectile/magic.html b/code/modules/projectiles/projectile/magic.html new file mode 100644 index 0000000000000..84afbaa00cb92 --- /dev/null +++ b/code/modules/projectiles/projectile/magic.html @@ -0,0 +1 @@ +code/modules/projectiles/projectile/magic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/projectile/magic.dm

/obj/projectile/magic/aoeGives magic projectiles an area of effect radius that will bump into any nearby mobs
\ No newline at end of file diff --git a/code/modules/projectiles/projectile/special/rocket.html b/code/modules/projectiles/projectile/special/rocket.html new file mode 100644 index 0000000000000..cdead1ea4d54a --- /dev/null +++ b/code/modules/projectiles/projectile/special/rocket.html @@ -0,0 +1,4 @@ +code/modules/projectiles/projectile/special/rocket.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/projectiles/projectile/special/rocket.dm

/obj/projectile/bullet/rocketPM9 standard HE rocket
/obj/projectile/bullet/rocket/heapPM9 HEAP rocket - the anti-anything missile you always craved.
/obj/projectile/bullet/rocket/weakPM9 weak rocket - just kind of a failure
/obj/projectile/bullet/rocket/srmSRM-8 Missile - Used by the SRM-8 Exosuit missile rack. +Employed by Nuclear Operatives Maulers and Nanotrasen Marauders and Seraphs to kill everything and anyone.
/obj/projectile/bullet/rocket/pepPEP-6 Missile - Used by the PEP-6 Exosuit missile rack. +Employed by Roboticists out of spite to put down enemy hereteks, mechanized nuclear operatives, the janitor's hot rod, +the clown's 'taxi service', uppity borgs, vengeful ais, doors they don't like, the escape shuttle's hull, and more!
\ No newline at end of file diff --git a/code/modules/reagents/chem_splash.html b/code/modules/reagents/chem_splash.html new file mode 100644 index 0000000000000..68ef9268d2259 --- /dev/null +++ b/code/modules/reagents/chem_splash.html @@ -0,0 +1,6 @@ +code/modules/reagents/chem_splash.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chem_splash.dm

/proc/chem_splashThe basic chemical bomb proc. +Combines a set of reagent holders into one holder and reacts it. +If there are any reagents left over it spreads them across the surrounding environment. +The maximum volume of the holder is temporarily adjusted to allow for reactions which increase total volume to work at full effectiveness. +The maximum volume of the holder is then reset to its original value.
/proc/spread_reagentsExposes all accessible atoms within some distance of an epicenter to some reagents. +Does not clear the source reagent holder; that must be done manually if it is desired.
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/chem_wiki_render.html b/code/modules/reagents/chemistry/chem_wiki_render.html new file mode 100644 index 0000000000000..56e3cd5ca3ad9 --- /dev/null +++ b/code/modules/reagents/chemistry/chem_wiki_render.html @@ -0,0 +1,2 @@ +code/modules/reagents/chemistry/chem_wiki_render.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/chem_wiki_render.dm

/proc/generate_chemwiki_lineGenerate the big list of reagent based reactions. +style='background-color:#FFEE88;'|{{anchor|Synthetic-derived growth factor}}Synthetic-derived growth factor
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/fermi_readme.html b/code/modules/reagents/chemistry/fermi_readme.html new file mode 100644 index 0000000000000..628fc4c062160 --- /dev/null +++ b/code/modules/reagents/chemistry/fermi_readme.html @@ -0,0 +1,164 @@ +code/modules/reagents/chemistry/fermi_readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

How to make fermi reactions from a code perspective

How purity works

+

Purity by default only splits on a mob’s consumption unless reaction_flags in the recipe is set to one of the CLEAR_CONVERT defines. Here is a bad flowchart for the on mob process.

+

I am not good at flowcharts sorry.

+

image

+

Essentially +For purity: +If 1: normal +If above inverse_chem_val: normal + impure +If below: inverse

+

How reactions mechanics work

+

For the effects starting/during/at the end of a reaction see below:

+

image

+

Maybe this makes no sense.

+

In brief:

+

Holder.dm now sets up reactions, while equilibrium.dm runs them. Holder itself is processed when there is a list of reactions, but the equilibrium does the calculating. In essence, it holds onto a list of objects to run. Handle_reactions() is used to update the reaction list, with a few checks at the start to prevent any unnecessary updates.

+

When a reaction is detected:

+
    +
  • If it’s REACTION_INSTANT then it’ll use a method similar to the old mechanics.
  • +
  • If not then it’ll set up an equilibrium, which checks to see if the reaction is valid on creation.
  • +
  • If it’s valid, then on_reaction is called.
  • +
  • If the reaction’s temperature is over the overheat_temp overheated() is called
  • +
  • When equilibriums detect they’re invalid, they flag for deletion and holder.dm deletes them.
  • +
  • If there’s a list of reactions, then the holder starts processing.
  • +
+

When holder is processing:

+
    +
  • Each equilibrium is processed, and it handles it’s own reaction. For each step it handles every reaction.
  • +
  • At the start, the equilibrium checks it’s conditions and calculates how much it can make in this step.
  • +
  • It checks the temp, reagents and catalyst.
  • +
  • If it’s overheated, call overheated()
  • +
  • If it’s too impure call overly_impure()
  • +
  • The offset of optimal pH and temp is calculated, and these correlate with purity and yield.
  • +
+

How a holder stops reacting:

+

When one of the checks fails in the equilibrium object, it is flagged for deletion. The holder will detect this and call reaction_finish() and delete the equilibrium object – ending that reaction.

+

Recipe and processing mechanics

+

Lets go over the reaction vars below. These can be edited and set on a per chemical_reaction basis

+
/datum/chemical_reaction
+	...
+    var/required_temp			= 100
+    var/optimal_temp			= 500			// Upper end for above
+	var/overheat_temp 			= 900 			// Temperature at which reaction explodes - If any reaction is this hot, it procs overheated()
+	var/optimal_ph_min 			= 5         	// Lowest value of pH determining pH a 1 value for pH based rate reactions (Plateu phase)
+	var/optimal_ph_max 			= 9	        	// Higest value for above
+	var/determin_ph_range 		= 4         	// How far out pH wil react, giving impurity place (Exponential phase)
+	var/temp_exponent_factor 	= 2         	// How sharp the temperature exponential curve is (to the power of value)
+	var/ph_exponent_factor 		= 1         	// How sharp the pH exponential curve is (to the power of value)
+	var/thermic_constant		= 1         	// Temperature change per 1u produced
+	var/H_ion_release 			= 0.01       	// pH change per 1u reaction
+	var/rate_up_lim 			= 20			// Optimal/max rate possible if all conditions are perfect
+	var/purity_min 				= 0.15 			// If purity is below 0.15, it calls OverlyImpure() too. Set to 0 to disable this.
+	var/reaction_flags							// bitflags for clear conversions; REACTION_CLEAR_IMPURE, REACTION_CLEAR_INVERSE, REACTION_CLEAR_RETAIN, REACTION_INSTANT
+
+

How temperature ranges are set and how reaction rate is determined

+

Reaction rates are determined by the current temperature of the reagents holder. There are a few variables related to this:

+
/datum/chemical_reaction
+    var/required_temp			= 100
+    var/optimal_temp			= 500			// Upper end for above
+	var/overheat_temp 			= 900 			// Temperature at which reaction explodes - If any reaction is this hot, it procs overheated()
+	var/temp_exponent_factor 	= 2         	// How sharp the temperature exponential curve is (to the power of value)
+	var/rate_up_lim 			= 20			// Optimal/max rate possible if all conditions are perfect
+
+

The amount added is based off the recipies’ required_temp, optimal_temp, overheat_temp and temp_exponent_factor. See below: +image

+

the y axis is the normalised value of growth, which is then muliplied by the rate_up_lim. You can see that temperatures below the required_temp produce no result (the reaction doesn't start, or if it is reacting, the reaction will stop). Between the required and optimal is a region that is defined by the temp_exponent_factor, so in this case the value is ^2, so we see exponential growth. Between the optimal_temp and the overheat_temp is the optimal phase - where the rate factor is 1. After that it continues to react, but will call overheated() per timestep. Presently the default for overheated() is to reduce the yield of the product (i.e. it's faster but you get less). The rate_up_lim is the maximum rate the reaction can go at optimal temperatures, so in this case a rate factor of 1 i.e. a temperature between 500+ will produce 10u, or a temperature of 400 will roughly produce 4u per step (independant of product ratio produced, if you put 10, it will only create 10 maximum regardless of how much product is defined in the results list).

+

How pH ranges are set and what pH mechanics do

+

Optimal pH ranges are set on a per recipe basis - though at the moment all recipes use a default recipe, so they all have the same window (except for the buffers). Hopefully either as a community effort/or in future PRs we can create unique profiles for the present reactions in the game.

+

As for how you define the reaction variables for a reaction, there are a few new variables for the chemical_recipe datum. I'll go over specifically how pH works for the default reaction.

+
/datum/chemical_reaction
+	...
+	var/optimal_ph_min 			= 5         	// Lowest value of pH determining pH a 1 value for pH based rate reactions (Plateu phase)
+	var/optimal_ph_max 			= 9	        	// Higest value for above
+	var/determin_ph_range 		= 4         	// How far out pH wil react, giving impurity place (Exponential phase)
+	var/ph_exponent_factor 		= 1         	// How sharp the pH exponential curve is (to the power of value)
+	var/purity_min 				= 0.15 			// If purity is below 0.15, it calls overly_impure(). In addition, if the product's purity is below this value at the end, the product will be 100% converted into the reagent's failed_chem. Set to 0 to disable this.
+
+

For this default reaction, the curve looks like this: +image

+

The y axis is the purity of the product made for that time step. This is recalculated based off the beaker's sum pH for every tick in the reaction. The rate in which your product is made based off the temperature (If you want me to describe that too I can.) So say our reaction has 10u of a purity 1 of product in there, and for our step we're making another 10u with our pH at (roughly) 3, from the curve our purity is (roughly) 0.5. So we will be adding 10u of 0.5 purity to 10u of 1 purity, resulting in 20u of 0.75 purity product. (Though - to note the reactant's purities also modify the purity of volume created on top of this).

+

If you're designing a reaction you can define an optimal range between the OptimalpHMin to OptimalpHMax (5 - 7 in this case) and a deterministic region set by the ReactpHLim (5 - 4, 9 + 4 aka between 1 to 5 and 9 to 13). This deterministic region is exponential, so if you set it to 2 then it’ll exponentially grow, but since our CurveSharpph = 1, it’s linear (basically normalise the range in the determinsitic region, then put that to the power of CurveSharppH). Finally values outside of these ranges will prevent reactions from starting, but if a reaction drifts out during a reaction, the purity of volume created for each step will be 0 (It does not stop ongoing reactions). It’s entirely possible to design a reaction without a deterministic or optimal phase if you wanted.

+

Though to note; if your purity dips below the PurityMin of a reaction it’ll call the overly_impure() function – which by default reduces the purity of all reagents in the beaker. Additionally, if the purity at the end of a reaction is below the PurityMin, it’ll convert into the failed chem defined by the product’s failed_chem defined in its reagent datum. For default the PurityMin is 0.15, and is pretty difficult to fail. This is all customisable however, if you wanted to use these hooks to design a even more unique reaction, just don’t call the parent proc when using methods.

+

Conditional changes in reagents datum per timestep

+
/datum/chemical_reaction
+	...
+	var/thermic_constant		= 1         	// Temperature change per 1u produced
+	var/H_ion_release 			= 0.01       	// pH change per 1u reaction
+
+

The thermic_constant is how much the temperature changes per u created, so for 10u created the temperature will increase by 10K. The H_ion_release is how much the pH changes per u created, for 10u created the pH will increase by 0.1. During a reaction this is the only factor in pH changes - presently the addition/removal of reagents tie to the reaction won't affect this, though other reactions ongoing in the beaker will also affect pH, as well as the removal/addition of reagents outside of the reaction.

+

Reaction flags

+

Reaction_flags can be used to set these defines:

+
#define REACTION_CLEAR_IMPURE   //Convert into impure/pure on reaction completion in the datum/reagents holder instead of on consumption
+#define REACTION_CLEAR_INVERSE  //Convert into inverse on reaction completion when purity is low enough in the datum/reagents holder instead of on consumption
+#define REACTION_CLEAR_RETAIN	//Clear converted chems retain their purities/inverted purities. Requires 1 or both of the above. This is so that it can split again after splitting from a reaction (i.e. if your impure_chem or inverse_chem has its own impure_chem/inverse_chem and you want it to split again on consumption).
+#define REACTION_INSTANT        //Used to create instant reactions
+
+/datum/chemical_reaction
+	var/reaction_flags
+
+

For REACTION_CLEAR – this causes the purity mechanics to resolve in the beaker at the end of the reaction, instead of when added to a mob.

+

A note on cold recipies

+

Is_cold_recipie requires you to set your overheat_temp and optimal_temp descend instead. +Eg:

+
/datum/chemical_reaction
+	...
+	var/required_temp			= 300
+	var/optimal_temp			= 200
+	var/overheat_temp 			= 50
+
+

Reagents

+

The new vars that are introduced are below:

+
/datum/reagent
+	/// pH of the reagent
+	var/ph = 7
+	///Purity of the reagent
+	var/purity = 1
+	///the purity of the reagent on creation (i.e. when it's added to a mob and its purity split it into 2 chems; the purity of the resultant chems are kept as 1, this tracks what the purity was before that)
+	var/creation_purity = 1
+	//impure chem values (see fermi_readme.dm for more details):
+	var/impure_chem		 = /datum/reagent/impurity			// What chemical path is made when metabolised as a function of purity
+	var/inverse_chem_val = 0.2								// If the impurity is below 0.5, replace ALL of the chem with inverse_chem upon metabolising
+	var/inverse_chem	 = /datum/reagent/impurity/toxic		// What chem is metabolised when purity is below inverse_chem_val
+	var/failed_chem		 = /datum/reagent/consumable/failed_reaction //what chem is made at the end of a reaction IF the purity is below the recipies purity_min
+    var/chemical_flags
+
+
    +
  • pH is the innate pH of the reagent and is used to calculate the pH of a reagents datum on addition/removal. This does not change and is a reference value. The reagents datum pH changes.
  • +
  • purity is the INTERNAL value for splitting. This is set to 1 after splitting so that it doesn't infinite split
  • +
  • creation_purity is the purity of the reagent on creation. This won't change. If you want to write code that checks the purity in any of the methods, use this.
  • +
  • impure_chem is the datum type that is created provided that its creation_purity is above the inverse_chem_val. When the reagent is consumed it will split into this OR if the associated datum/chemical_recipe has a REACTION_CLEAR_IMPURE flag it will split at the end of the reaction in the datum/reagents holder
  • +
  • inverse_chem_val if a reagent's purity is below this value it will 100% convert into inverse_chem. If above it will split into impure_chem. See the note on purity effects above
  • +
  • inverse_chem is the datum type that is created provided that its creation_purity is below the inverse_chem_val. When the reagent is consumed it will 100% convert into this OR if the associated datum/chemical_recipe has a REACTION_CLEAR_INVERSE flag it will 100% convert at the end of the reaction in the datum/reagents holder
  • +
  • failed_chem is the chem that the product is 100% converted into if the purity is below the associated datum/chemical_recipies' PurityMin AT THE END OF A REACTION.
  • +
+

When writing any reagent code ALWAYS use creation_purity. Purity is kept for internal mechanics only and won’t reflect the purity on creation.

+

See above for purity mechanics, but this is where you set the reagents that are created. If you’re making an impure reagent I recommend looking at impure_reagents.dm to see how they’re set up and consider using the datum/reagents/impure as a parent.

+

The flags you can set for var/chemical_flags are:

+
#define REAGENT_DEAD_PROCESS		(1<<0)	//allows on_mob_dead() if present in a dead body
+#define REAGENT_DONOTSPLIT			(1<<1)	//Do not split the chem at all during processing - ignores all purity effects
+#define REAGENT_INVISIBLE			(1<<2)	//Doesn't appear on handheld health analyzers.
+#define REAGENT_SNEAKYNAME          (1<<3)  //When inverted, the inverted chem uses the name of the original chem
+#define REAGENT_SPLITRETAINVOL      (1<<4)  //Retains initial volume of chem when splitting for purity effects
+
+/datum/reagent
+	var/chemical_flags
+
+

While you might think reagent_flags is a more sensible name - it is already used for beakers. Hopefully this doesn't trip anyone up.

+

Relivant vars from the holder.dm / reagents datum

+

There are a few variables that are useful to know about

+
/datum/reagents
+	/// Current temp of the holder volume
+	var/chem_temp = 150
+	///pH of the whole system
+	var/ph = CHEMICAL_NORMAL_PH //aka 7
+	///cached list of reagents
+	var/list/datum/reagent/previous_reagent_list = new/list()
+	///Hard check to see if the reagents is presently reacting
+	var/is_reacting = FALSE
+
+
    +
  • chem_temp is the temperature used in the datum/chemical_recipe
  • +
  • pH is a result of the sum of all reagents, as well as any changes from buffers and reactions. This is the pH used in datum/chemical_recipe.
  • +
  • isReacting is a bool that can be used outside to ensure that you don't touch a reagents that is reacting.
  • +
  • previous_reagent_list is a list of the previous reagents (just the typepaths, not the objects) that was present on the last handle_reactions() method. This is to prevent pointless method calls.
  • +
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/holder/holder.html b/code/modules/reagents/chemistry/holder/holder.html new file mode 100644 index 0000000000000..09fd29e28277e --- /dev/null +++ b/code/modules/reagents/chemistry/holder/holder.html @@ -0,0 +1,2 @@ +code/modules/reagents/chemistry/holder/holder.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/holder/holder.dm

/datum/reagents////////////////////////////Main reagents code///////////////////////////////////////////// +Holder for a bunch of /datum/reagent
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/items.html b/code/modules/reagents/chemistry/items.html new file mode 100644 index 0000000000000..b8ff74b55ae4d --- /dev/null +++ b/code/modules/reagents/chemistry/items.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/items.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/reagents/chemistry/items.dm

DETAILED_CHEM_OUTPUTif the ph_meter gives a detailed output
SHORTENED_CHEM_OUTPUTif the pH meter gives a shorter output

Define Details

DETAILED_CHEM_OUTPUT

if the ph_meter gives a detailed output

SHORTENED_CHEM_OUTPUT

if the pH meter gives a shorter output

\ No newline at end of file diff --git a/code/modules/reagents/chemistry/machinery/chem_recipe_debug.html b/code/modules/reagents/chemistry/machinery/chem_recipe_debug.html new file mode 100644 index 0000000000000..109c64ba08442 --- /dev/null +++ b/code/modules/reagents/chemistry/machinery/chem_recipe_debug.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/machinery/chem_recipe_debug.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/reagents/chemistry/machinery/chem_recipe_debug.dm

USE_REACTION_TEMPERATUREdon't alter the temperatrue of the reaction
USE_USER_TEMPERATUREforce a user specified value for temperature on the reaction
USE_MINIMUM_TEMPERATUREforce the minimum required temperature for the reaction to start on the reaction
USE_OPTIMAL_TEMPERATUREforce the optimal temperature for the reaction
USE_OVERHEAT_TEMPERATUREforce the overheat temperature for the reaction. At this point reagents start to decrease
PLAY_NEXT_REACTIONPlay the next reaction i.e. increment current_reaction_index
PLAY_PREVIOUS_REACTIONPlay the previous reaction i.e. decrement current_reaction_index
PLAY_USER_REACTIONPick a reaction at random i.e. user decides via input list what the value of current_reaction_index should be
MAXIMUM_HOLDER_VOLUMEMaximum volume of reagents this machine & its required container can hold

Define Details

MAXIMUM_HOLDER_VOLUME

Maximum volume of reagents this machine & its required container can hold

PLAY_NEXT_REACTION

Play the next reaction i.e. increment current_reaction_index

PLAY_PREVIOUS_REACTION

Play the previous reaction i.e. decrement current_reaction_index

PLAY_USER_REACTION

Pick a reaction at random i.e. user decides via input list what the value of current_reaction_index should be

USE_MINIMUM_TEMPERATURE

force the minimum required temperature for the reaction to start on the reaction

USE_OPTIMAL_TEMPERATURE

force the optimal temperature for the reaction

USE_OVERHEAT_TEMPERATURE

force the overheat temperature for the reaction. At this point reagents start to decrease

USE_REACTION_TEMPERATURE

don't alter the temperatrue of the reaction

USE_USER_TEMPERATURE

force a user specified value for temperature on the reaction

\ No newline at end of file diff --git a/code/modules/reagents/chemistry/machinery/chem_separator.html b/code/modules/reagents/chemistry/machinery/chem_separator.html new file mode 100644 index 0000000000000..c208fccdcf830 --- /dev/null +++ b/code/modules/reagents/chemistry/machinery/chem_separator.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/machinery/chem_separator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/reagents/chemistry/machinery/chem_separator.dm

MAX_BURNER_KNOB_SETTINGSThe maximum number of settings on a burner knob

Define Details

MAX_BURNER_KNOB_SETTINGS

The maximum number of settings on a burner knob

\ No newline at end of file diff --git a/code/modules/reagents/chemistry/machinery/smoke_machine.html b/code/modules/reagents/chemistry/machinery/smoke_machine.html new file mode 100644 index 0000000000000..d00a281b96682 --- /dev/null +++ b/code/modules/reagents/chemistry/machinery/smoke_machine.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/machinery/smoke_machine.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/reagents/chemistry/machinery/smoke_machine.dm

REAGENTS_BASE_VOLUMEActual volume is REAGENTS_BASE_VOLUME plus REAGENTS_BASE_VOLUME * rating for each matterbin
/datum/effect_system/fluid_spread/smoke/chem/smoke_machineA factory which produces clouds of smoke for the smoke machine.
/obj/effect/particle_effect/fluid/smoke/chem/smoke_machineSmoke which is produced by the smoke machine. Slightly transparent and does not block line of sight.

Define Details

REAGENTS_BASE_VOLUME

Actual volume is REAGENTS_BASE_VOLUME plus REAGENTS_BASE_VOLUME * rating for each matterbin

\ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents.html b/code/modules/reagents/chemistry/reagents.html new file mode 100644 index 0000000000000..cc4abb75e09a0 --- /dev/null +++ b/code/modules/reagents/chemistry/reagents.html @@ -0,0 +1,2 @@ +code/modules/reagents/chemistry/reagents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/reagents.dm

/datum/reagentA single reagent
/proc/pretty_string_from_reagent_listInput a reagent_list, outputs pretty readable text! +Default output will be formatted as
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.html b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.html new file mode 100644 index 0000000000000..b1606615879c7 --- /dev/null +++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm

/datum/reagent/medicine/c2/helbitalBRUTE
/datum/reagent/medicine/c2/lenturiBURN
CONVERMOL_RATIOOXY
/datum/reagent/medicine/c2/seiverTOXIN
/datum/reagent/medicine/c2/synthfleshCOMBOS
/datum/reagent/medicine/c2/penthriteORGAN HEALING

Define Details

CONVERMOL_RATIO

OXY

\ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/catalyst_reagents.html b/code/modules/reagents/chemistry/reagents/catalyst_reagents.html new file mode 100644 index 0000000000000..527226ebe7913 --- /dev/null +++ b/code/modules/reagents/chemistry/reagents/catalyst_reagents.html @@ -0,0 +1,2 @@ +code/modules/reagents/chemistry/reagents/catalyst_reagents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/reagents/catalyst_reagents.dm

/datum/reagent/catalyst_agentNICHE +These alter reaction conditions while they're in the beaker
/datum/reagent/catalyst_agent/speed/medicineThese affect medicines
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.html b/code/modules/reagents/chemistry/reagents/drug_reagents.html new file mode 100644 index 0000000000000..96ff76dd6d845 --- /dev/null +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/reagents/drug_reagents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/reagents/drug_reagents.dm

/datum/reagent/drug/kronkaine/goredirty kronkaine, aka gore. far worse overdose effects.
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.html b/code/modules/reagents/chemistry/reagents/food_reagents.html new file mode 100644 index 0000000000000..48964e68181ab --- /dev/null +++ b/code/modules/reagents/chemistry/reagents/food_reagents.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/reagents/food_reagents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/reagents/food_reagents.dm

/datum/reagent/consumable/nutriment/proteinThe basic resource of vat growing.
/datum/reagent/consumable/entpolyLavaland Flora Reagents
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.html b/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.html new file mode 100644 index 0000000000000..865635ff661a5 --- /dev/null +++ b/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.html @@ -0,0 +1,5 @@ +code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm

/datum/reagent/impurity/healing/medicine_failureMEDICINES
/datum/reagent/inverse/penthriteCan bring a corpse back to life temporarily (if heart is intact) +Makes wounds bleed more, if it brought someone back, they take additional brute and heart damage +They can't die during this, but if they're past crit then take increasing stamina damage +If they're past fullcrit, their movement is slowed by half +If they OD, their heart explodes (if they were brought back from the dead)
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/impure_reagents/impure_toxin_reagents.html b/code/modules/reagents/chemistry/reagents/impure_reagents/impure_toxin_reagents.html new file mode 100644 index 0000000000000..e21550adb7a2c --- /dev/null +++ b/code/modules/reagents/chemistry/reagents/impure_reagents/impure_toxin_reagents.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/reagents/impure_reagents/impure_toxin_reagents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/reagents/impure_reagents/impure_toxin_reagents.dm

/datum/reagent/impurity/ipecacideTOXINS
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.html b/code/modules/reagents/chemistry/reagents/other_reagents.html new file mode 100644 index 0000000000000..ab9295b210f9e --- /dev/null +++ b/code/modules/reagents/chemistry/reagents/other_reagents.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/reagents/other_reagents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/reagents/chemistry/reagents/other_reagents.dm

WATER_TO_WET_STACKS_FACTOR_TOUCHHow many wet stacks you get per units of water when it's applied by touch.
WATER_TO_WET_STACKS_FACTOR_VAPORHow many wet stacks you get per unit of water when it's applied by vapor. Much less effective than by touch, of course.
/datum/reagent/lubeUsed for clownery
/datum/reagent/lube/superlubeStronger kind of lube. Applies TURF_WET_SUPERLUBE.
CYCLES_TO_TURNthe current_cycle threshold / iterations needed before one can transform
CYCLES_MSG_IMMEDIATEthe cycle at which 'immediate' mutation text begins displaying
CYCLES_MSG_EXTENDEDthe cycle at which 'extended' mutation text begins displaying
/datum/reagent/colorful_reagent/powderColorful Powder
/datum/reagent/plantnutrimentHydroponics stuff
/datum/reagent/yuckImprovised reagent that induces vomiting. Created by dipping a dead mouse in welder fluid.

Define Details

CYCLES_MSG_EXTENDED

the cycle at which 'extended' mutation text begins displaying

CYCLES_MSG_IMMEDIATE

the cycle at which 'immediate' mutation text begins displaying

CYCLES_TO_TURN

the current_cycle threshold / iterations needed before one can transform

WATER_TO_WET_STACKS_FACTOR_TOUCH

How many wet stacks you get per units of water when it's applied by touch.

WATER_TO_WET_STACKS_FACTOR_VAPOR

How many wet stacks you get per unit of water when it's applied by vapor. Much less effective than by touch, of course.

\ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.html b/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.html new file mode 100644 index 0000000000000..0db8c24ec046e --- /dev/null +++ b/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm

SPEED_REAGENT_STRENGTHHow much the reaction speed is sped up by - for 5u added to 100u, an additional step of 1 will be done up to a max of 2x

Define Details

SPEED_REAGENT_STRENGTH

How much the reaction speed is sped up by - for 5u added to 100u, an additional step of 1 will be done up to a max of 2x

\ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.html b/code/modules/reagents/chemistry/reagents/toxin_reagents.html new file mode 100644 index 0000000000000..56810b7689f50 --- /dev/null +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/reagents/toxin_reagents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/reagents/toxin_reagents.dm

/datum/reagent/toxinPoison stuff (Toxins & Acids)
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/recipes.html b/code/modules/reagents/chemistry/recipes.html new file mode 100644 index 0000000000000..9f1faf6c36ac3 --- /dev/null +++ b/code/modules/reagents/chemistry/recipes.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/recipes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/recipes.dm

/datum/chemical_reaction#Chemical Reaction
/proc/goonchem_vortexMagical move-wooney that happens sometimes.
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/recipes/cat2_medicines.html b/code/modules/reagents/chemistry/recipes/cat2_medicines.html new file mode 100644 index 0000000000000..18bd1408c1b51 --- /dev/null +++ b/code/modules/reagents/chemistry/recipes/cat2_medicines.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/recipes/cat2_medicines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/recipes/cat2_medicines.dm

/datum/chemical_reaction/medicine/helbitalBRUTE
/datum/chemical_reaction/medicine/lenturiBURN
/datum/chemical_reaction/medicine/convermolOXY
/datum/chemical_reaction/medicine/seiverTOX
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/recipes/catalysts.html b/code/modules/reagents/chemistry/recipes/catalysts.html new file mode 100644 index 0000000000000..e36ed7c840137 --- /dev/null +++ b/code/modules/reagents/chemistry/recipes/catalysts.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/recipes/catalysts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/recipes/catalysts.dm

/datum/chemical_reaction/medical_speed_catalystMEDICINES
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/recipes/medicine.html b/code/modules/reagents/chemistry/recipes/medicine.html new file mode 100644 index 0000000000000..844ba8f4a4441 --- /dev/null +++ b/code/modules/reagents/chemistry/recipes/medicine.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/recipes/medicine.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/recipes/medicine.dm

/datum/chemical_reaction/medicine/medsuturemedical stacks
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/recipes/others.html b/code/modules/reagents/chemistry/recipes/others.html new file mode 100644 index 0000000000000..cb0df3c7cfd4f --- /dev/null +++ b/code/modules/reagents/chemistry/recipes/others.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/recipes/others.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/recipes/others.dm

/datum/chemical_reaction/virus_foodVIROLOGY
/datum/chemical_reaction/surfactantfoam and foam precursor
/datum/chemical_reaction/ammoniaCleaning and hydroponics
/datum/chemical_reaction/acetoneOther goon stuff
/datum/chemical_reaction/iceIce and water
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/recipes/reaction_agents.html b/code/modules/reagents/chemistry/recipes/reaction_agents.html new file mode 100644 index 0000000000000..c20f6ba388251 --- /dev/null +++ b/code/modules/reagents/chemistry/recipes/reaction_agents.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/recipes/reaction_agents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/recipes/reaction_agents.dm

/datum/chemical_reaction/prefactor_aExample competitive reaction (REACTION_COMPETITIVE)
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.html b/code/modules/reagents/chemistry/recipes/slime_extracts.html new file mode 100644 index 0000000000000..c8d25ef410479 --- /dev/null +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/recipes/slime_extracts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/recipes/slime_extracts.dm

/datum/chemical_reaction/slimeEnd example
\ No newline at end of file diff --git a/code/modules/reagents/chemistry/recipes/special.html b/code/modules/reagents/chemistry/recipes/special.html new file mode 100644 index 0000000000000..334f1d35ed777 --- /dev/null +++ b/code/modules/reagents/chemistry/recipes/special.html @@ -0,0 +1 @@ +code/modules/reagents/chemistry/recipes/special.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/chemistry/recipes/special.dm

/proc/build_medicine_reagentsJust grab every craftable medicine you can think off
/datum/chemical_reaction/randomized/metalgenRandom recipe for meme chem metalgen. Always requires wittel and resets every 3 days
\ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/condiment.html b/code/modules/reagents/reagent_containers/condiment.html new file mode 100644 index 0000000000000..d6c9961c28945 --- /dev/null +++ b/code/modules/reagents/reagent_containers/condiment.html @@ -0,0 +1 @@ +code/modules/reagents/reagent_containers/condiment.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/reagent_containers/condiment.dm

/obj/item/reagent_containers/condimentCondiments
\ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/cups/_cup.html b/code/modules/reagents/reagent_containers/cups/_cup.html new file mode 100644 index 0000000000000..9cc892ead0c75 --- /dev/null +++ b/code/modules/reagents/reagent_containers/cups/_cup.html @@ -0,0 +1 @@ +code/modules/reagents/reagent_containers/cups/_cup.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/reagent_containers/cups/_cup.dm

/obj/item/reagent_containers/cup/tubeTest tubes created by chem master and pandemic and placed in racks
\ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/cups/_glass_datum.html b/code/modules/reagents/reagent_containers/cups/_glass_datum.html new file mode 100644 index 0000000000000..cd486cd09cb2b --- /dev/null +++ b/code/modules/reagents/reagent_containers/cups/_glass_datum.html @@ -0,0 +1 @@ +code/modules/reagents/reagent_containers/cups/_glass_datum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/reagent_containers/cups/_glass_datum.dm

/proc/create_glass_stylesConstructs a nested list of glass style singletons
/datum/glass_style
\ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/cups/drinks.html b/code/modules/reagents/reagent_containers/cups/drinks.html new file mode 100644 index 0000000000000..39ba621aebd05 --- /dev/null +++ b/code/modules/reagents/reagent_containers/cups/drinks.html @@ -0,0 +1 @@ +code/modules/reagents/reagent_containers/cups/drinks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/reagent_containers/cups/drinks.dm

/obj/item/reagent_containers/cup/glassDrinks.
/obj/item/reagent_containers/cup/glass/coffeeDrinks
/obj/item/reagent_containers/cup/glass/shakerdrinkingglass and shaker
\ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/cups/glassbottle.html b/code/modules/reagents/reagent_containers/cups/glassbottle.html new file mode 100644 index 0000000000000..a6da3ab6657ad --- /dev/null +++ b/code/modules/reagents/reagent_containers/cups/glassbottle.html @@ -0,0 +1,4 @@ +code/modules/reagents/reagent_containers/cups/glassbottle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/reagent_containers/cups/glassbottle.dm

/proc/init_alcohol_containers////////////////////////////////////////////Alchohol bottles! -Agouri ////////////////////////// +Initializes GLOB.alcohol_containers, only containers that actually have reagents are added to the list.
/obj/item/reagent_containers/cup/glass/bottle/molotovMOLOTOV
/obj/item/reagent_containers/cup/glass/bottle/juiceCartons +Subtype of glass that don't break, and share a common carton hand state. +Meant to be a subtype for use in Molotovs
\ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/cups/soda.html b/code/modules/reagents/reagent_containers/cups/soda.html new file mode 100644 index 0000000000000..359bb4f74e7cb --- /dev/null +++ b/code/modules/reagents/reagent_containers/cups/soda.html @@ -0,0 +1,3 @@ +code/modules/reagents/reagent_containers/cups/soda.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/reagents/reagent_containers/cups/soda.dm

SODA_FIZZINESS_THROWN///////////////////////soda_cans// +How much fizziness is added to the can of soda by throwing it, in percentage points
SODA_FIZZINESS_SHAKEHow much fizziness is added to the can of soda by shaking it, in percentage points

Define Details

SODA_FIZZINESS_SHAKE

How much fizziness is added to the can of soda by shaking it, in percentage points

SODA_FIZZINESS_THROWN

///////////////////////soda_cans// +How much fizziness is added to the can of soda by throwing it, in percentage points

\ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/pill.html b/code/modules/reagents/reagent_containers/pill.html new file mode 100644 index 0000000000000..51ecf87746929 --- /dev/null +++ b/code/modules/reagents/reagent_containers/pill.html @@ -0,0 +1 @@ +code/modules/reagents/reagent_containers/pill.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/reagent_containers/pill.dm

/obj/item/reagent_containers/pill/shadowtoxinthis pill is used only in a legion mob drop
/obj/item/reagent_containers/pill/happinesspsychPsychologist inventory pills
/obj/item/reagent_containers/pill/zoomdrugs
/obj/item/reagent_containers/pill/maintenanceBlack and white pills that spawn in maintenance and have random reagent contents
\ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/spray.html b/code/modules/reagents/reagent_containers/spray.html new file mode 100644 index 0000000000000..0ddb1ecc53c53 --- /dev/null +++ b/code/modules/reagents/reagent_containers/spray.html @@ -0,0 +1 @@ +code/modules/reagents/reagent_containers/spray.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/reagent_containers/spray.dm

/obj/item/reagent_containers/spray/waterflower/superlubeSubtype used for the lavaland clown ruin.
\ No newline at end of file diff --git a/code/modules/reagents/reagent_dispenser.html b/code/modules/reagents/reagent_dispenser.html new file mode 100644 index 0000000000000..f221726818f35 --- /dev/null +++ b/code/modules/reagents/reagent_dispenser.html @@ -0,0 +1 @@ +code/modules/reagents/reagent_dispenser.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/reagent_dispenser.dm

/obj/structure/reagent_dispensers/wallWall mounted dispeners, like pepper spray or virus food. Not a normal tank, and shouldn't be able to be turned into a plumbed stationary one.
\ No newline at end of file diff --git a/code/modules/reagents/withdrawal/_addiction.html b/code/modules/reagents/withdrawal/_addiction.html new file mode 100644 index 0000000000000..ef00660508e79 --- /dev/null +++ b/code/modules/reagents/withdrawal/_addiction.html @@ -0,0 +1 @@ +code/modules/reagents/withdrawal/_addiction.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/withdrawal/_addiction.dm

/datum/addictionbase class for addiction, handles when you become addicted and what the effects of that are. By default you become addicted when you hit a certain threshold, and stop being addicted once you go below another one.
\ No newline at end of file diff --git a/code/modules/reagents/withdrawal/generic_addictions.html b/code/modules/reagents/withdrawal/generic_addictions.html new file mode 100644 index 0000000000000..80469df4cfd1d --- /dev/null +++ b/code/modules/reagents/withdrawal/generic_addictions.html @@ -0,0 +1 @@ +code/modules/reagents/withdrawal/generic_addictions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/reagents/withdrawal/generic_addictions.dm

/datum/addiction/opioidsOpioids
/datum/addiction/stimulantsStimulants
/datum/addiction/alcoholAlcohol
/datum/addiction/medicineMakes you a hypochondriac - I'd like to call it hypochondria, but "I could use some hypochondria" doesn't work
\ No newline at end of file diff --git a/code/modules/recycling/conveyor.html b/code/modules/recycling/conveyor.html new file mode 100644 index 0000000000000..8438e56bc234e --- /dev/null +++ b/code/modules/recycling/conveyor.html @@ -0,0 +1 @@ +code/modules/recycling/conveyor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/recycling/conveyor.dm

MAX_CONVEYOR_ITEMS_MOVEMaximum amount of items a conveyor can move at once.
CONVEYOR_OFFConveyor is currently off.
CONVEYOR_FORWARDConveyor is currently configured to move items forward.
CONVEYOR_BACKWARDSConveyor is currently configured to move items backwards.

Define Details

CONVEYOR_BACKWARDS

Conveyor is currently configured to move items backwards.

CONVEYOR_FORWARD

Conveyor is currently configured to move items forward.

CONVEYOR_OFF

Conveyor is currently off.

MAX_CONVEYOR_ITEMS_MOVE

Maximum amount of items a conveyor can move at once.

\ No newline at end of file diff --git a/code/modules/recycling/disposal/multiz.html b/code/modules/recycling/disposal/multiz.html new file mode 100644 index 0000000000000..08634733ba70b --- /dev/null +++ b/code/modules/recycling/disposal/multiz.html @@ -0,0 +1 @@ +code/modules/recycling/disposal/multiz.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/recycling/disposal/multiz.dm

MULTIZ_PIPE_UPDefines for determining which way a multiz disposal element should travel
MULTIZ_PIPE_DOWNDefines for determining which way a multiz disposal element should travel
/obj/structure/disposalpipe/trunk/multiz/downSet the multiz direction of your trunk. 1 = up, 2 = down

Define Details

MULTIZ_PIPE_DOWN

Defines for determining which way a multiz disposal element should travel

MULTIZ_PIPE_UP

Defines for determining which way a multiz disposal element should travel

\ No newline at end of file diff --git a/code/modules/recycling/disposal/outlet.html b/code/modules/recycling/disposal/outlet.html new file mode 100644 index 0000000000000..7e4983bc70577 --- /dev/null +++ b/code/modules/recycling/disposal/outlet.html @@ -0,0 +1 @@ +code/modules/recycling/disposal/outlet.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/recycling/disposal/outlet.dm

EJECT_SPEED_SLOWThe slowest setting for disposal eject speed
EJECT_SPEED_MEDThe default setting for disposal eject speed
EJECT_SPEED_FASTThe fast setting for disposal eject speed
EJECT_SPEED_YEETThe fastest, emag exclusive setting for disposal eject speed

Define Details

EJECT_SPEED_FAST

The fast setting for disposal eject speed

EJECT_SPEED_MED

The default setting for disposal eject speed

EJECT_SPEED_SLOW

The slowest setting for disposal eject speed

EJECT_SPEED_YEET

The fastest, emag exclusive setting for disposal eject speed

\ No newline at end of file diff --git a/code/modules/recycling/sortingmachinery.html b/code/modules/recycling/sortingmachinery.html new file mode 100644 index 0000000000000..573c6144da29f --- /dev/null +++ b/code/modules/recycling/sortingmachinery.html @@ -0,0 +1 @@ +code/modules/recycling/sortingmachinery.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/recycling/sortingmachinery.dm

/obj/item/delivery/bigSome override that didn't belong anywhere else.
/obj/item/delivery/small
\ No newline at end of file diff --git a/code/modules/religion/burdened/burdened_trauma.html b/code/modules/religion/burdened/burdened_trauma.html new file mode 100644 index 0000000000000..d6b72e183c614 --- /dev/null +++ b/code/modules/religion/burdened/burdened_trauma.html @@ -0,0 +1 @@ +code/modules/religion/burdened/burdened_trauma.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/religion/burdened/burdened_trauma.dm

/datum/brain_trauma/special/burdenedBurdened grants some mutations upon injuring yourself sufficiently
\ No newline at end of file diff --git a/code/modules/religion/burdened/psyker.html b/code/modules/religion/burdened/psyker.html new file mode 100644 index 0000000000000..033ec6e5522db --- /dev/null +++ b/code/modules/religion/burdened/psyker.html @@ -0,0 +1 @@ +code/modules/religion/burdened/psyker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/religion/burdened/psyker.dm

/datum/status_effect/psychic_projectionStatus effect that adds a weird view to its owner and causes them to rapidly shoot a firearm in their general direction.
\ No newline at end of file diff --git a/code/modules/religion/festival/instrument_rites.html b/code/modules/religion/festival/instrument_rites.html new file mode 100644 index 0000000000000..3918b7c4c1b80 --- /dev/null +++ b/code/modules/religion/festival/instrument_rites.html @@ -0,0 +1 @@ +code/modules/religion/festival/instrument_rites.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/religion/festival/instrument_rites.dm

/datum/religion_rites/song_tunerprototype for rites that tune a song.
\ No newline at end of file diff --git a/code/modules/religion/honorbound/honorbound_rites.html b/code/modules/religion/honorbound/honorbound_rites.html new file mode 100644 index 0000000000000..4f2c4b235b80f --- /dev/null +++ b/code/modules/religion/honorbound/honorbound_rites.html @@ -0,0 +1 @@ +code/modules/religion/honorbound/honorbound_rites.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/religion/honorbound/honorbound_rites.dm

DEACONIZE_FAVOR_GAINhow much favor is gained when someone joins the crusade and is deaconized
/datum/religion_rites/deaconizeMakes the person holy, but they now also have to follow the honorbound code (CBT). Actually earns favor, convincing others to uphold the code (tm) is not easy
/datum/religion_rites/forgiveMostly useless funny rite for forgiving someone, making them innocent once again.

Define Details

DEACONIZE_FAVOR_GAIN

how much favor is gained when someone joins the crusade and is deaconized

\ No newline at end of file diff --git a/code/modules/religion/honorbound/honorbound_trauma.html b/code/modules/religion/honorbound/honorbound_trauma.html new file mode 100644 index 0000000000000..b9e2557a7a652 --- /dev/null +++ b/code/modules/religion/honorbound/honorbound_trauma.html @@ -0,0 +1 @@ +code/modules/religion/honorbound/honorbound_trauma.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/religion/honorbound/honorbound_trauma.dm

GUILT_REASON_DECLARATIONone reason for declaring guilty is specifically checked for, keeping it as a define to avoid future mistakes
/datum/brain_trauma/special/honorboundHonorbound prevents you from attacking the unready, the just, or the innocent

Define Details

GUILT_REASON_DECLARATION

one reason for declaring guilty is specifically checked for, keeping it as a define to avoid future mistakes

\ No newline at end of file diff --git a/code/modules/religion/religion_sects.html b/code/modules/religion/religion_sects.html new file mode 100644 index 0000000000000..43e0762e920e3 --- /dev/null +++ b/code/modules/religion/religion_sects.html @@ -0,0 +1 @@ +code/modules/religion/religion_sects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/religion/religion_sects.dm

/datum/religion_sectReligious Sects are a way to convert the fun of having an active 'god' (admin) to code-mechanics so you aren't having to press adminwho.
/datum/religion_sect/puritanismNanotrasen Approved God
/datum/religion_sect/mechanicalMechanical God
/datum/religion_sect/pyrePyre God
\ No newline at end of file diff --git a/code/modules/religion/rites.html b/code/modules/religion/rites.html new file mode 100644 index 0000000000000..fbf062be9bdc5 --- /dev/null +++ b/code/modules/religion/rites.html @@ -0,0 +1,2 @@ +code/modules/religion/rites.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/religion/rites.dm

/datum/religion_rites/synthconversionMechanical God
/datum/religion_rites/greedGreedy God +all greed rites cost money instead
/datum/religion_rites/maint_adaptationMaintenance God
/datum/religion_rites/sparring_contractsparring god rites
\ No newline at end of file diff --git a/code/modules/religion/sparring/ceremonial_gear.html b/code/modules/religion/sparring/ceremonial_gear.html new file mode 100644 index 0000000000000..337371c1b4a78 --- /dev/null +++ b/code/modules/religion/sparring/ceremonial_gear.html @@ -0,0 +1 @@ +code/modules/religion/sparring/ceremonial_gear.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/religion/sparring/ceremonial_gear.dm

/obj/item/ceremonial_bladeritual weapons. they're really bad, but they become normal weapons when sparring.
\ No newline at end of file diff --git a/code/modules/requests/request.html b/code/modules/requests/request.html new file mode 100644 index 0000000000000..3d779b234af86 --- /dev/null +++ b/code/modules/requests/request.html @@ -0,0 +1 @@ +code/modules/requests/request.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/requests/request.dm

/datum/requestA representation of an in-game request, such as a prayer.
\ No newline at end of file diff --git a/code/modules/requests/request_manager.html b/code/modules/requests/request_manager.html new file mode 100644 index 0000000000000..177ddce4539b3 --- /dev/null +++ b/code/modules/requests/request_manager.html @@ -0,0 +1,2 @@ +code/modules/requests/request_manager.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/requests/request_manager.dm

REQUEST_PRAYERRequests from prayers
REQUEST_CENTCOMRequests for Centcom
REQUEST_SYNDICATERequests for the Syndicate
REQUEST_NUKERequests for the nuke code
REQUEST_FAXRequests somebody from fax
REQUEST_INTERNET_SOUNDRequests from Request Music
/datum/request_managerHandles all player requests (prayers, centcom requests, syndicate requests) +that occur in the duration of a round.

Define Details

REQUEST_CENTCOM

Requests for Centcom

REQUEST_FAX

Requests somebody from fax

REQUEST_INTERNET_SOUND

Requests from Request Music

REQUEST_NUKE

Requests for the nuke code

REQUEST_PRAYER

Requests from prayers

REQUEST_SYNDICATE

Requests for the Syndicate

\ No newline at end of file diff --git a/code/modules/research/anomaly/anomaly_refinery.html b/code/modules/research/anomaly/anomaly_refinery.html new file mode 100644 index 0000000000000..66eedcbb6786f --- /dev/null +++ b/code/modules/research/anomaly/anomaly_refinery.html @@ -0,0 +1 @@ +code/modules/research/anomaly/anomaly_refinery.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/research/anomaly/anomaly_refinery.dm

COMPRESSION_TEST_TIMEHow long the compression test can last before the machine just gives up and ejects the items.
/obj/machinery/research/anomaly_refineryThe explosive compressor machine used in anomaly core production.

Define Details

COMPRESSION_TEST_TIME

How long the compression test can last before the machine just gives up and ejects the items.

\ No newline at end of file diff --git a/code/modules/research/anomaly/raw_anomaly.html b/code/modules/research/anomaly/raw_anomaly.html new file mode 100644 index 0000000000000..770fa9b65a811 --- /dev/null +++ b/code/modules/research/anomaly/raw_anomaly.html @@ -0,0 +1 @@ +code/modules/research/anomaly/raw_anomaly.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/anomaly/raw_anomaly.dm

/obj/item/raw_anomaly_coreThe current precursor to anomaly cores, these are manufactured into 'finished' anomaly cores for use in research, items, and more.
/obj/item/inert_anomalyDoesn't do anything, consolation prize if you neu
\ No newline at end of file diff --git a/code/modules/research/designs.html b/code/modules/research/designs.html new file mode 100644 index 0000000000000..4e44a5a1c8c6c --- /dev/null +++ b/code/modules/research/designs.html @@ -0,0 +1,3 @@ +code/modules/research/designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs.dm

/datum/designDesign Datums +All the data for building stuff.
/obj/item/disk/design_disk/bepis/remove_techSubtype of Bepis tech disk +Removes the tech disk that's held on it from the experimental node list, making them not show up in future disks.
\ No newline at end of file diff --git a/code/modules/research/designs/AI_module_designs.html b/code/modules/research/designs/AI_module_designs.html new file mode 100644 index 0000000000000..84bea5e75abe0 --- /dev/null +++ b/code/modules/research/designs/AI_module_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/AI_module_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/AI_module_designs.dm

/datum/design/board/aicoreAI Module Disks
\ No newline at end of file diff --git a/code/modules/research/designs/biogenerator_designs.html b/code/modules/research/designs/biogenerator_designs.html new file mode 100644 index 0000000000000..16686236585f3 --- /dev/null +++ b/code/modules/research/designs/biogenerator_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/biogenerator_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/biogenerator_designs.dm

/datum/design/milkBiogenerator Designs
\ No newline at end of file diff --git a/code/modules/research/designs/bluespace_designs.html b/code/modules/research/designs/bluespace_designs.html new file mode 100644 index 0000000000000..b08f3aed17508 --- /dev/null +++ b/code/modules/research/designs/bluespace_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/bluespace_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/bluespace_designs.dm

/datum/design/beaconBluespace
\ No newline at end of file diff --git a/code/modules/research/designs/comp_board_designs.html b/code/modules/research/designs/comp_board_designs.html new file mode 100644 index 0000000000000..707d761e53bef --- /dev/null +++ b/code/modules/research/designs/comp_board_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/comp_board_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/comp_board_designs.dm

/datum/design/boardComputer Boards
\ No newline at end of file diff --git a/code/modules/research/designs/computer_part_designs.html b/code/modules/research/designs/computer_part_designs.html new file mode 100644 index 0000000000000..a6e4de8f43ac2 --- /dev/null +++ b/code/modules/research/designs/computer_part_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/computer_part_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/computer_part_designs.dm

/datum/design/portabledrive/basicComputer Parts
\ No newline at end of file diff --git a/code/modules/research/designs/electronics_designs.html b/code/modules/research/designs/electronics_designs.html new file mode 100644 index 0000000000000..e762887343b36 --- /dev/null +++ b/code/modules/research/designs/electronics_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/electronics_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/electronics_designs.dm

/datum/design/intellicardNon-Board Computer Stuff
/datum/design/tech_diskDisk Construction Disks
\ No newline at end of file diff --git a/code/modules/research/designs/limbgrower_designs.html b/code/modules/research/designs/limbgrower_designs.html new file mode 100644 index 0000000000000..ecdd3824c4f88 --- /dev/null +++ b/code/modules/research/designs/limbgrower_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/limbgrower_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/limbgrower_designs.dm

/datum/design/leftarmDesigns
/obj/item/disk/design_disk/limbsDesign disks and designs - for adding limbs and organs to the limbgrower.
\ No newline at end of file diff --git a/code/modules/research/designs/machine_designs.html b/code/modules/research/designs/machine_designs.html new file mode 100644 index 0000000000000..8b620857c9249 --- /dev/null +++ b/code/modules/research/designs/machine_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/machine_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/machine_designs.dm

/datum/design/board/electrolyzerMISC Boards
\ No newline at end of file diff --git a/code/modules/research/designs/mecha_designs.html b/code/modules/research/designs/mecha_designs.html new file mode 100644 index 0000000000000..044b51f73e351 --- /dev/null +++ b/code/modules/research/designs/mecha_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/mecha_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/mecha_designs.dm

/datum/design/board/ripley_mainMecha Module Disks
/datum/design/mech_scattershotMecha Equpment
\ No newline at end of file diff --git a/code/modules/research/designs/mechfabricator_designs.html b/code/modules/research/designs/mechfabricator_designs.html new file mode 100644 index 0000000000000..ba4f6a00eca20 --- /dev/null +++ b/code/modules/research/designs/mechfabricator_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/mechfabricator_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/mechfabricator_designs.dm

/datum/design/borg_upgrade_renameBorg Upgrades
\ No newline at end of file diff --git a/code/modules/research/designs/medical_designs.html b/code/modules/research/designs/medical_designs.html new file mode 100644 index 0000000000000..e634947a7b402 --- /dev/null +++ b/code/modules/research/designs/medical_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/medical_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/medical_designs.dm

/datum/design/healthanalyzerMedical Tools
/datum/design/cyberimp_breatherCybernetic Implants
/datum/design/implanterRegular Implants
/datum/design/surgerySurgery Designs
\ No newline at end of file diff --git a/code/modules/research/designs/mining_designs.html b/code/modules/research/designs/mining_designs.html new file mode 100644 index 0000000000000..c6f578219756a --- /dev/null +++ b/code/modules/research/designs/mining_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/mining_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/mining_designs.dm

/datum/design/cargo_expressMining
\ No newline at end of file diff --git a/code/modules/research/designs/power_designs.html b/code/modules/research/designs/power_designs.html new file mode 100644 index 0000000000000..b2fa49800a5f7 --- /dev/null +++ b/code/modules/research/designs/power_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/power_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/power_designs.dm

/datum/design/basic_cellPower
\ No newline at end of file diff --git a/code/modules/research/designs/smelting_designs.html b/code/modules/research/designs/smelting_designs.html new file mode 100644 index 0000000000000..2b77fbc6fe326 --- /dev/null +++ b/code/modules/research/designs/smelting_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/smelting_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/smelting_designs.dm

/datum/design/plasteel_alloySMELTABLE ALLOYS
\ No newline at end of file diff --git a/code/modules/research/designs/stock_parts_designs.html b/code/modules/research/designs/stock_parts_designs.html new file mode 100644 index 0000000000000..1ea9097d6ede6 --- /dev/null +++ b/code/modules/research/designs/stock_parts_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/stock_parts_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/stock_parts_designs.dm

/datum/design/rpedStock Parts
\ No newline at end of file diff --git a/code/modules/research/designs/telecomms_designs.html b/code/modules/research/designs/telecomms_designs.html new file mode 100644 index 0000000000000..4f7f0222e287f --- /dev/null +++ b/code/modules/research/designs/telecomms_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/telecomms_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/telecomms_designs.dm

/datum/design/board/subspace_receiverSubspace Telecomms
\ No newline at end of file diff --git a/code/modules/research/designs/tool_designs.html b/code/modules/research/designs/tool_designs.html new file mode 100644 index 0000000000000..1e24e5b225710 --- /dev/null +++ b/code/modules/research/designs/tool_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/tool_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/tool_designs.dm

/datum/design/fire_extinguisher_advancedTools
/datum/design/alienwrenchAlien Tools
/datum/design/alienscalpelAlien Surgical Tools
\ No newline at end of file diff --git a/code/modules/research/designs/weapon_designs.html b/code/modules/research/designs/weapon_designs.html new file mode 100644 index 0000000000000..f0e1b657c0af6 --- /dev/null +++ b/code/modules/research/designs/weapon_designs.html @@ -0,0 +1 @@ +code/modules/research/designs/weapon_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/designs/weapon_designs.dm

/datum/design/c38/secWeapons
\ No newline at end of file diff --git a/code/modules/research/destructive_analyzer.html b/code/modules/research/destructive_analyzer.html new file mode 100644 index 0000000000000..581c8589bdb5e --- /dev/null +++ b/code/modules/research/destructive_analyzer.html @@ -0,0 +1 @@ +code/modules/research/destructive_analyzer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/research/destructive_analyzer.dm

DESTRUCTIVE_ANALYZER_POWER_USAGEHow much power it costs to deconstruct an item.
DESTRUCTIVE_ANALYZER_DESTROY_POINTSThe 'ID' for deconstructing items for Research points instead of nodes.
/obj/machinery/rnd/destructive_analyzer

Define Details

DESTRUCTIVE_ANALYZER_DESTROY_POINTS

The 'ID' for deconstructing items for Research points instead of nodes.

DESTRUCTIVE_ANALYZER_POWER_USAGE

How much power it costs to deconstruct an item.

\ No newline at end of file diff --git a/code/modules/research/machinery/protolathe.html b/code/modules/research/machinery/protolathe.html new file mode 100644 index 0000000000000..17ed2260e6c25 --- /dev/null +++ b/code/modules/research/machinery/protolathe.html @@ -0,0 +1 @@ +code/modules/research/machinery/protolathe.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/machinery/protolathe.dm

/obj/machinery/rnd/production/protolathe/offstationSpecial subtype protolathe for offstation use. Has a more limited available design selection.
\ No newline at end of file diff --git a/code/modules/research/ordnance/_scipaper.html b/code/modules/research/ordnance/_scipaper.html new file mode 100644 index 0000000000000..3dcddae4c2a95 --- /dev/null +++ b/code/modules/research/ordnance/_scipaper.html @@ -0,0 +1 @@ +code/modules/research/ordnance/_scipaper.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/ordnance/_scipaper.dm

/datum/scientific_paperScientific paper datum for retrieval and re-reading. A lot of the variables are there for fluff & flavor.
/datum/scientific_partnerVarious informations on companies/scientific programs/journals etc that the players can sign on to.
\ No newline at end of file diff --git a/code/modules/research/ordnance/tank_compressor.html b/code/modules/research/ordnance/tank_compressor.html new file mode 100644 index 0000000000000..29ce7a3a40d90 --- /dev/null +++ b/code/modules/research/ordnance/tank_compressor.html @@ -0,0 +1 @@ +code/modules/research/ordnance/tank_compressor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/ordnance/tank_compressor.dm

/datum/data/compressor_recordStores the record of the gas data for a significant enough tank leak
\ No newline at end of file diff --git a/code/modules/research/server.html b/code/modules/research/server.html new file mode 100644 index 0000000000000..f9904199a2d80 --- /dev/null +++ b/code/modules/research/server.html @@ -0,0 +1 @@ +code/modules/research/server.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/research/server.dm

HDD_PANEL_CLOSEDDefault master server machine state. Use a special screwdriver to get to the next state.
HDD_PANEL_OPENFront master server HDD panel has been removed. Use a special crowbar to get to the next state.
HDD_PRIEDMaster server HDD has been pried loose and is held in by only cables. Use a special set of wirecutters to finish stealing the objective.
HDD_CUT_LOOSEMaster server HDD has been cut loose.
HDD_OVERLOADEDThe ninja has blown the HDD up.
/obj/machinery/rnd/server/masterMaster R&D server. As long as this still exists and still holds the HDD for the theft objective, research points generate at normal speed. Destroy it or an antag steals the HDD? Half research speed.

Define Details

HDD_CUT_LOOSE

Master server HDD has been cut loose.

HDD_OVERLOADED

The ninja has blown the HDD up.

HDD_PANEL_CLOSED

Default master server machine state. Use a special screwdriver to get to the next state.

HDD_PANEL_OPEN

Front master server HDD panel has been removed. Use a special crowbar to get to the next state.

HDD_PRIED

Master server HDD has been pried loose and is held in by only cables. Use a special set of wirecutters to finish stealing the objective.

\ No newline at end of file diff --git a/code/modules/research/stock_parts/stock_part_datum.html b/code/modules/research/stock_parts/stock_part_datum.html new file mode 100644 index 0000000000000..ebc762a01dcdb --- /dev/null +++ b/code/modules/research/stock_parts/stock_part_datum.html @@ -0,0 +1,6 @@ +code/modules/research/stock_parts/stock_part_datum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/stock_parts/stock_part_datum.dm

/datum/stock_partRepresents the concept of a stock part. +One is created for every stock part type for every level. +Machines have these inside their component_parts. +For example, scanning modules use /datum/stock_part/scanning_module. +In machines, you can perform a loop through something like +for (var/datum/stock_part/scanning_module/part in component_parts)
/datum/stock_part/ansibleSubspace stock parts
\ No newline at end of file diff --git a/code/modules/research/techweb/__techweb_helpers.html b/code/modules/research/techweb/__techweb_helpers.html new file mode 100644 index 0000000000000..a201f19895ae1 --- /dev/null +++ b/code/modules/research/techweb/__techweb_helpers.html @@ -0,0 +1 @@ +code/modules/research/techweb/__techweb_helpers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/techweb/__techweb_helpers.dm

/proc/techweb_item_unlock_checkReturns an associative list of techweb node datums with values of the nodes it unlocks.
\ No newline at end of file diff --git a/code/modules/research/techweb/_techweb.html b/code/modules/research/techweb/_techweb.html new file mode 100644 index 0000000000000..30ba4a31176f6 --- /dev/null +++ b/code/modules/research/techweb/_techweb.html @@ -0,0 +1 @@ +code/modules/research/techweb/_techweb.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/techweb/_techweb.dm

/datum/techwebA datum representing a research techweb
\ No newline at end of file diff --git a/code/modules/research/techweb/_techweb_node.html b/code/modules/research/techweb/_techweb_node.html new file mode 100644 index 0000000000000..ee7cbefa0c201 --- /dev/null +++ b/code/modules/research/techweb/_techweb_node.html @@ -0,0 +1 @@ +code/modules/research/techweb/_techweb_node.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/techweb/_techweb_node.dm

/datum/techweb_nodeA datum representing a researchable node in the techweb.
\ No newline at end of file diff --git a/code/modules/research/techweb/techweb_types.html b/code/modules/research/techweb/techweb_types.html new file mode 100644 index 0000000000000..e6a676b0734fc --- /dev/null +++ b/code/modules/research/techweb/techweb_types.html @@ -0,0 +1,4 @@ +code/modules/research/techweb/techweb_types.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/techweb/techweb_types.dm

/datum/techweb/scienceGlobal Science techweb for RND consoles
/datum/techweb/adminAdmin techweb that has everything unlocked by default
/datum/techweb/diskTechweb made through tech disks +Contains nothing, subtype mostly meant to make it easy for admins to see.
/datum/techweb/autounlockingTechweb node that automatically unlocks a given buildtype. +Saved in GLOB.autounlock_techwebs and used to prevent +creating new ones each time it's needed.
\ No newline at end of file diff --git a/code/modules/research/xenobiology/crossbreeding/__corecross.html b/code/modules/research/xenobiology/crossbreeding/__corecross.html new file mode 100644 index 0000000000000..6cc7d15a04b07 --- /dev/null +++ b/code/modules/research/xenobiology/crossbreeding/__corecross.html @@ -0,0 +1 @@ +code/modules/research/xenobiology/crossbreeding/__corecross.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/xenobiology/crossbreeding/__corecross.dm

/obj/item/slimecrossSLIME CROSSBREEDS
\ No newline at end of file diff --git a/code/modules/research/xenobiology/crossbreeding/_mobs.html b/code/modules/research/xenobiology/crossbreeding/_mobs.html new file mode 100644 index 0000000000000..9d21ba05c9e6a --- /dev/null +++ b/code/modules/research/xenobiology/crossbreeding/_mobs.html @@ -0,0 +1 @@ +code/modules/research/xenobiology/crossbreeding/_mobs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/xenobiology/crossbreeding/_mobs.dm

/datum/action/cooldown/spell/shapeshift/slime_formSlime transformation power - from Burning Black
/mob/living/basic/slime/transformed_slimeTransformed slime - from Burning Black
\ No newline at end of file diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.html b/code/modules/research/xenobiology/crossbreeding/_status_effects.html new file mode 100644 index 0000000000000..5c85ad3666ee0 --- /dev/null +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.html @@ -0,0 +1,3 @@ +code/modules/research/xenobiology/crossbreeding/_status_effects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/research/xenobiology/crossbreeding/_status_effects.dm

/datum/status_effect/firecookieCONSUMING EXTRACTS
/datum/status_effect/stabilizedSTABILIZED EXTRACTS
DRAIN_DAMAGE_MULTIPLIERHow much damage is dealt per healing done for the stabilized back. +This multiplier is applied to prevent two people from converting each other's damage away.

Define Details

DRAIN_DAMAGE_MULTIPLIER

How much damage is dealt per healing done for the stabilized back. +This multiplier is applied to prevent two people from converting each other's damage away.

\ No newline at end of file diff --git a/code/modules/research/xenobiology/vatgrowing/biopsy_tool.html b/code/modules/research/xenobiology/vatgrowing/biopsy_tool.html new file mode 100644 index 0000000000000..8896ca015b4de --- /dev/null +++ b/code/modules/research/xenobiology/vatgrowing/biopsy_tool.html @@ -0,0 +1 @@ +code/modules/research/xenobiology/vatgrowing/biopsy_tool.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/xenobiology/vatgrowing/biopsy_tool.dm

/obj/item/biopsy_toolTool capable of taking biological samples from mobs
\ No newline at end of file diff --git a/code/modules/research/xenobiology/vatgrowing/petri_dish.html b/code/modules/research/xenobiology/vatgrowing/petri_dish.html new file mode 100644 index 0000000000000..731efde7885bc --- /dev/null +++ b/code/modules/research/xenobiology/vatgrowing/petri_dish.html @@ -0,0 +1 @@ +code/modules/research/xenobiology/vatgrowing/petri_dish.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/xenobiology/vatgrowing/petri_dish.dm

/obj/item/petri_dishHolds a biological sample which can then be put into the growing vat
/obj/item/petri_dish/randomPetri dish with random sample already in it.
\ No newline at end of file diff --git a/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.html b/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.html new file mode 100644 index 0000000000000..56ced79cd17dd --- /dev/null +++ b/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.html @@ -0,0 +1 @@ +code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm

/datum/micro_organismA single type of growth.
/datum/micro_organism/cell_lineA "mob" cell. Can grow into a mob in a growing vat.
\ No newline at end of file diff --git a/code/modules/research/xenobiology/vatgrowing/samples/_sample.html b/code/modules/research/xenobiology/vatgrowing/samples/_sample.html new file mode 100644 index 0000000000000..7765e85b5db83 --- /dev/null +++ b/code/modules/research/xenobiology/vatgrowing/samples/_sample.html @@ -0,0 +1 @@ +code/modules/research/xenobiology/vatgrowing/samples/_sample.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/xenobiology/vatgrowing/samples/_sample.dm

/datum/biological_sampleThis datum is a simple holder for the micro_organisms in a sample.
\ No newline at end of file diff --git a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.html b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.html new file mode 100644 index 0000000000000..3efc4d6e4fb24 --- /dev/null +++ b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.html @@ -0,0 +1 @@ +code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm

/datum/micro_organism/cell_line/mouseVERTEBRATES
/datum/micro_organism/cell_line/slimeSLIMES, OOZES & BLOBS
/datum/micro_organism/cell_line/cockroachMISC
\ No newline at end of file diff --git a/code/modules/research/xenobiology/vatgrowing/samples/viruses/_virus.html b/code/modules/research/xenobiology/vatgrowing/samples/viruses/_virus.html new file mode 100644 index 0000000000000..4c70c826e9f24 --- /dev/null +++ b/code/modules/research/xenobiology/vatgrowing/samples/viruses/_virus.html @@ -0,0 +1 @@ +code/modules/research/xenobiology/vatgrowing/samples/viruses/_virus.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/xenobiology/vatgrowing/samples/viruses/_virus.dm

/datum/micro_organism/virusA micro_organism that supports the ability to be converted to a real virus, allowing virology to get new symptoms
\ No newline at end of file diff --git a/code/modules/research/xenobiology/vatgrowing/swab.html b/code/modules/research/xenobiology/vatgrowing/swab.html new file mode 100644 index 0000000000000..c41c95795bebe --- /dev/null +++ b/code/modules/research/xenobiology/vatgrowing/swab.html @@ -0,0 +1 @@ +code/modules/research/xenobiology/vatgrowing/swab.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/xenobiology/vatgrowing/swab.dm

/obj/item/swabTool capable of taking biological samples from mobs
\ No newline at end of file diff --git a/code/modules/research/xenobiology/vatgrowing/vatgrower.html b/code/modules/research/xenobiology/vatgrowing/vatgrower.html new file mode 100644 index 0000000000000..1911570c39d4f --- /dev/null +++ b/code/modules/research/xenobiology/vatgrowing/vatgrower.html @@ -0,0 +1 @@ +code/modules/research/xenobiology/vatgrowing/vatgrower.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/xenobiology/vatgrowing/vatgrower.dm

/obj/machinery/vatgrowerUsed to make mobs from microbiological samples. Grow grow grow.
\ No newline at end of file diff --git a/code/modules/research/xenobiology/xenobiology.html b/code/modules/research/xenobiology/xenobiology.html new file mode 100644 index 0000000000000..4d41425693c3d --- /dev/null +++ b/code/modules/research/xenobiology/xenobiology.html @@ -0,0 +1,2 @@ +code/modules/research/xenobiology/xenobiology.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/research/xenobiology/xenobiology.dm

/obj/item/slime_extractSlime Extracts
/obj/item/slimepotionSlime-derived potions +#Slime potions
/obj/item/stack/tile/bluespaceDefinitions for slime products that don't have anywhere else to go (Floor tiles, blueprints).
\ No newline at end of file diff --git a/code/modules/security_levels/keycard_authentication.html b/code/modules/security_levels/keycard_authentication.html new file mode 100644 index 0000000000000..9eb52a4ac3d3b --- /dev/null +++ b/code/modules/security_levels/keycard_authentication.html @@ -0,0 +1,3 @@ +code/modules/security_levels/keycard_authentication.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/security_levels/keycard_authentication.dm

/obj/machinery/keycard_auth/wall_mountedSubtype which is stuck to a wall +Subtype which is stuck to a wall +Subtype which is stuck to a wall
\ No newline at end of file diff --git a/code/modules/security_levels/security_level_datums.html b/code/modules/security_levels/security_level_datums.html new file mode 100644 index 0000000000000..d9a1c1f27352e --- /dev/null +++ b/code/modules/security_levels/security_level_datums.html @@ -0,0 +1 @@ +code/modules/security_levels/security_level_datums.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/security_levels/security_level_datums.dm

/datum/security_levelSecurity levels
/datum/security_level/greenGREEN
/datum/security_level/blueBLUE
/datum/security_level/redRED
/datum/security_level/deltaDELTA
\ No newline at end of file diff --git a/code/modules/shuttle/battlecruiser_starfury.html b/code/modules/shuttle/battlecruiser_starfury.html new file mode 100644 index 0000000000000..33bed490bbc47 --- /dev/null +++ b/code/modules/shuttle/battlecruiser_starfury.html @@ -0,0 +1 @@ +code/modules/shuttle/battlecruiser_starfury.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/shuttle/battlecruiser_starfury.dm

/datum/map_template/battlecruiser_starfuryThe Starfury map template itself.
\ No newline at end of file diff --git a/code/modules/shuttle/infiltrator.html b/code/modules/shuttle/infiltrator.html new file mode 100644 index 0000000000000..aaf9e83ebd0fb --- /dev/null +++ b/code/modules/shuttle/infiltrator.html @@ -0,0 +1 @@ +code/modules/shuttle/infiltrator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/shuttle/infiltrator.dm

/obj/docking_port/mobile/infiltratorThe syndicate infiltrator shuttle port.
\ No newline at end of file diff --git a/code/modules/shuttle/medisim.html b/code/modules/shuttle/medisim.html new file mode 100644 index 0000000000000..c91fa4edbf01d --- /dev/null +++ b/code/modules/shuttle/medisim.html @@ -0,0 +1 @@ +code/modules/shuttle/medisim.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/shuttle/medisim.dm

/obj/machinery/computer/reality_simulationThese are for the medisim shuttle
\ No newline at end of file diff --git a/code/modules/shuttle/shuttle.html b/code/modules/shuttle/shuttle.html new file mode 100644 index 0000000000000..a71aef401d6be --- /dev/null +++ b/code/modules/shuttle/shuttle.html @@ -0,0 +1,2 @@ +code/modules/shuttle/shuttle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/shuttle/shuttle.dm

/obj/docking_port/stationary/escape_podSubtype for escape pod ports so that we can give them trait behaviour
/proc/test_whiteship_sizesHelper proc that tests to ensure all whiteship templates can spawn at their docking port, and logs their sizes +This should be a unit test, but too much of our other code breaks during shuttle movement, so not yet, not yet.
\ No newline at end of file diff --git a/code/modules/shuttle/shuttle_events/_shuttle_events.html b/code/modules/shuttle/shuttle_events/_shuttle_events.html new file mode 100644 index 0000000000000..55261ba16585a --- /dev/null +++ b/code/modules/shuttle/shuttle_events/_shuttle_events.html @@ -0,0 +1 @@ +code/modules/shuttle/shuttle_events/_shuttle_events.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/shuttle/shuttle_events/_shuttle_events.dm

/datum/shuttle_eventAn event that can run during shuttle flight, and will run for the duration of it (configurable)
/datum/shuttle_event/simple_spawnerSpawns objects, mobs, whatever with all the necessary code to make it hit and/or miss the shuttle
\ No newline at end of file diff --git a/code/modules/shuttle/shuttle_events/carp.html b/code/modules/shuttle/shuttle_events/carp.html new file mode 100644 index 0000000000000..c24cd84a303bf --- /dev/null +++ b/code/modules/shuttle/shuttle_events/carp.html @@ -0,0 +1 @@ +code/modules/shuttle/shuttle_events/carp.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/shuttle/shuttle_events/carp.dm

/datum/shuttle_event/simple_spawner/carpCARPTIDE! CARPTIDE! CARPTIDE! A swarm of carp will pass by and through the shuttle, including consequences of carp going through the shuttle
/datum/shuttle_event/simple_spawner/carp/friendlySpawn a bunch of friendly carp to view from inside the shuttle! May occassionally pass through and nibble some windows, but are otherwise pretty harmless
/datum/shuttle_event/simple_spawner/carp/friendly_but_no_personal_spaceSame as /friendly, but we only go through the shuttle, MUHAHAHAHAHAHA!! They dont actually harm anyone, but itll be a clusterfuck of confusion
/datum/shuttle_event/simple_spawner/carp/magicCARPTIDE! CARPTIDE! CARPTIDE! Magical carp will attack the shuttle!
/datum/shuttle_event/simple_spawner/player_controlled/fire_sharkSpawns some player controlled fire sharks
\ No newline at end of file diff --git a/code/modules/shuttle/shuttle_events/humans.html b/code/modules/shuttle/shuttle_events/humans.html new file mode 100644 index 0000000000000..d0d992afa0012 --- /dev/null +++ b/code/modules/shuttle/shuttle_events/humans.html @@ -0,0 +1 @@ +code/modules/shuttle/shuttle_events/humans.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/shuttle/shuttle_events/humans.dm

/datum/shuttle_event/simple_spawner/player_controlled/humanHuman spawning events, with the ability to give them outfits!
\ No newline at end of file diff --git a/code/modules/shuttle/shuttle_events/meteors.html b/code/modules/shuttle/shuttle_events/meteors.html new file mode 100644 index 0000000000000..4dac27fa0da41 --- /dev/null +++ b/code/modules/shuttle/shuttle_events/meteors.html @@ -0,0 +1 @@ +code/modules/shuttle/shuttle_events/meteors.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/shuttle/shuttle_events/meteors.dm

/datum/shuttle_event/simple_spawner/meteor/dustVery weak meteors, but may very rarely actually hit the shuttle!
/datum/shuttle_event/simple_spawner/meteor/safeOkay this spawns a lot of really bad meteors, but they never hit the shuttle so it's perfectly safe (unless you go outside lol)
\ No newline at end of file diff --git a/code/modules/shuttle/shuttle_events/misc.html b/code/modules/shuttle/shuttle_events/misc.html new file mode 100644 index 0000000000000..185ed1545e9a8 --- /dev/null +++ b/code/modules/shuttle/shuttle_events/misc.html @@ -0,0 +1 @@ +code/modules/shuttle/shuttle_events/misc.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/shuttle/shuttle_events/misc.dm

/datum/shuttle_event/simple_spawner/italianthats amoreeeeee
/datum/shuttle_event/simple_spawner/fake_ttvWe do a little bit of tomfoolery
/datum/shuttle_event/simple_spawner/maintenanceJust spawn random maint garbage
/datum/shuttle_event/simple_spawner/black_holeSensors indicate that a black hole's gravitational field is affecting the region of space we were headed through
/datum/shuttle_event/simple_spawner/black_hole/adminbusKobayashi Maru version
\ No newline at end of file diff --git a/code/modules/shuttle/shuttle_events/player_controlled.html b/code/modules/shuttle/shuttle_events/player_controlled.html new file mode 100644 index 0000000000000..07a70f6244c24 --- /dev/null +++ b/code/modules/shuttle/shuttle_events/player_controlled.html @@ -0,0 +1 @@ +code/modules/shuttle/shuttle_events/player_controlled.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/shuttle/shuttle_events/player_controlled.dm

/datum/shuttle_event/simple_spawner/player_controlledMobs spawned with this one are automatically player controlled, if possible
/datum/shuttle_event/simple_spawner/player_controlled/alien_queenBACK FOR REVENGE!!!
/datum/shuttle_event/simple_spawner/player_controlled/carpSpawns three player controlled carp!! Deadchats final chance to wreak havoc, probably really not that dangerous if even one person has a laser gun
\ No newline at end of file diff --git a/code/modules/shuttle/shuttle_events/projectile.html b/code/modules/shuttle/shuttle_events/projectile.html new file mode 100644 index 0000000000000..fb3cd50606515 --- /dev/null +++ b/code/modules/shuttle/shuttle_events/projectile.html @@ -0,0 +1 @@ +code/modules/shuttle/shuttle_events/projectile.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/shuttle/shuttle_events/projectile.dm

/datum/shuttle_event/simple_spawner/projectileSpawn projectiles towards the shuttle
\ No newline at end of file diff --git a/code/modules/shuttle/shuttle_events/turbulence.html b/code/modules/shuttle/shuttle_events/turbulence.html new file mode 100644 index 0000000000000..a36dd9eeea175 --- /dev/null +++ b/code/modules/shuttle/shuttle_events/turbulence.html @@ -0,0 +1 @@ +code/modules/shuttle/shuttle_events/turbulence.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/shuttle/shuttle_events/turbulence.dm

/datum/shuttle_event/turbulenceRepeat the "buckle in or fall over" event a couple times
\ No newline at end of file diff --git a/code/modules/shuttle/special.html b/code/modules/shuttle/special.html new file mode 100644 index 0000000000000..fa1ad1e2e345f --- /dev/null +++ b/code/modules/shuttle/special.html @@ -0,0 +1,2 @@ +code/modules/shuttle/special.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/shuttle/special.dm

/mob/living/basic/drone/snowflake/bardroneBar staff, mobs with the TRAIT_GODMODE trait (as long as they stay in the shuttle) +that just want to make sure people have drinks and a good shuttle time.
\ No newline at end of file diff --git a/code/modules/shuttle/supply.html b/code/modules/shuttle/supply.html new file mode 100644 index 0000000000000..9bba66843ecf0 --- /dev/null +++ b/code/modules/shuttle/supply.html @@ -0,0 +1 @@ +code/modules/shuttle/supply.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/shuttle/supply.dm

GOODY_FREE_SHIPPING_MAXHow many goody orders we can fit in a lockbox before we upgrade to a crate
CRATE_TAXHow much to charge oversized goody orders

Define Details

CRATE_TAX

How much to charge oversized goody orders

GOODY_FREE_SHIPPING_MAX

How many goody orders we can fit in a lockbox before we upgrade to a crate

\ No newline at end of file diff --git a/code/modules/shuttle/white_ship.html b/code/modules/shuttle/white_ship.html new file mode 100644 index 0000000000000..6024386547c7b --- /dev/null +++ b/code/modules/shuttle/white_ship.html @@ -0,0 +1 @@ +code/modules/shuttle/white_ship.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/shuttle/white_ship.dm

/obj/machinery/computer/shuttle/white_ship/bridgeConsole used on the whiteship bridge. Comes with GPS pre-baked.
\ No newline at end of file diff --git a/code/modules/spatial_grid/cell_tracker.html b/code/modules/spatial_grid/cell_tracker.html new file mode 100644 index 0000000000000..672073640d4a1 --- /dev/null +++ b/code/modules/spatial_grid/cell_tracker.html @@ -0,0 +1 @@ +code/modules/spatial_grid/cell_tracker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spatial_grid/cell_tracker.dm

/datum/cell_trackerSpatial gridmap, cell tracking
\ No newline at end of file diff --git a/code/modules/spells/spell.html b/code/modules/spells/spell.html new file mode 100644 index 0000000000000..da1f73d8952dc --- /dev/null +++ b/code/modules/spells/spell.html @@ -0,0 +1,3 @@ +code/modules/spells/spell.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell.dm

/datum/action/cooldown/spellThis is the base action for how many of the game's +spells (and spell adjacent) abilities function. +These spells function off of a cooldown-based system.
\ No newline at end of file diff --git a/code/modules/spells/spell_types/aoe_spell/_aoe_spell.html b/code/modules/spells/spell_types/aoe_spell/_aoe_spell.html new file mode 100644 index 0000000000000..bc4e5c36009c5 --- /dev/null +++ b/code/modules/spells/spell_types/aoe_spell/_aoe_spell.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/aoe_spell/_aoe_spell.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/aoe_spell/_aoe_spell.dm

/datum/action/cooldown/spell/aoe
\ No newline at end of file diff --git a/code/modules/spells/spell_types/charged/_charged.html b/code/modules/spells/spell_types/charged/_charged.html new file mode 100644 index 0000000000000..bbe219323a5b2 --- /dev/null +++ b/code/modules/spells/spell_types/charged/_charged.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/charged/_charged.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/charged/_charged.dm

/datum/action/cooldown/spell/charged
/datum/action/cooldown/spell/charged/beam
\ No newline at end of file diff --git a/code/modules/spells/spell_types/cone/_cone.html b/code/modules/spells/spell_types/cone/_cone.html new file mode 100644 index 0000000000000..be7a42a09e5e4 --- /dev/null +++ b/code/modules/spells/spell_types/cone/_cone.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/cone/_cone.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/cone/_cone.dm

/datum/action/cooldown/spell/cone
/datum/action/cooldown/spell/cone/staggered
\ No newline at end of file diff --git a/code/modules/spells/spell_types/conjure/_conjure.html b/code/modules/spells/spell_types/conjure/_conjure.html new file mode 100644 index 0000000000000..21d4996ba0a0b --- /dev/null +++ b/code/modules/spells/spell_types/conjure/_conjure.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/conjure/_conjure.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/conjure/_conjure.dm

/datum/action/cooldown/spell/conjure/limit_summonslimits the amount of summons
\ No newline at end of file diff --git a/code/modules/spells/spell_types/jaunt/_jaunt.html b/code/modules/spells/spell_types/jaunt/_jaunt.html new file mode 100644 index 0000000000000..c2045848cf29e --- /dev/null +++ b/code/modules/spells/spell_types/jaunt/_jaunt.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/jaunt/_jaunt.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/jaunt/_jaunt.dm

/datum/action/cooldown/spell/jaunt
\ No newline at end of file diff --git a/code/modules/spells/spell_types/jaunt/bloodcrawl.html b/code/modules/spells/spell_types/jaunt/bloodcrawl.html new file mode 100644 index 0000000000000..ea3fa342cf8e8 --- /dev/null +++ b/code/modules/spells/spell_types/jaunt/bloodcrawl.html @@ -0,0 +1,3 @@ +code/modules/spells/spell_types/jaunt/bloodcrawl.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/jaunt/bloodcrawl.dm

/datum/action/cooldown/spell/jaunt/bloodcrawl
/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demonSlaughter demon's blood crawl +Allows the blood crawler to consume people they are dragging.
/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/funnyLaughter demon's blood crawl +All mobs consumed are revived after the demon is killed.
/obj/item/bloodcrawlBloodcrawl "hands", prevent the user from holding items in bloodcrawl
\ No newline at end of file diff --git a/code/modules/spells/spell_types/jaunt/ethereal_jaunt.html b/code/modules/spells/spell_types/jaunt/ethereal_jaunt.html new file mode 100644 index 0000000000000..f623e67190da0 --- /dev/null +++ b/code/modules/spells/spell_types/jaunt/ethereal_jaunt.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/jaunt/ethereal_jaunt.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/jaunt/ethereal_jaunt.dm

/obj/effect/dummy/phased_mob/spell_jauntThe dummy that holds people jaunting. Maybe one day we can replace it.
\ No newline at end of file diff --git a/code/modules/spells/spell_types/list_target/_list_target.html b/code/modules/spells/spell_types/list_target/_list_target.html new file mode 100644 index 0000000000000..6fa971278c5a0 --- /dev/null +++ b/code/modules/spells/spell_types/list_target/_list_target.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/list_target/_list_target.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/list_target/_list_target.dm

/datum/action/cooldown/spell/list_target
\ No newline at end of file diff --git a/code/modules/spells/spell_types/pointed/_pointed.html b/code/modules/spells/spell_types/pointed/_pointed.html new file mode 100644 index 0000000000000..9fe967902742a --- /dev/null +++ b/code/modules/spells/spell_types/pointed/_pointed.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/pointed/_pointed.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/pointed/_pointed.dm

/datum/action/cooldown/spell/pointed
/datum/action/cooldown/spell/pointed/projectile
\ No newline at end of file diff --git a/code/modules/spells/spell_types/projectile/_basic_projectile.html b/code/modules/spells/spell_types/projectile/_basic_projectile.html new file mode 100644 index 0000000000000..a85db74dae908 --- /dev/null +++ b/code/modules/spells/spell_types/projectile/_basic_projectile.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/projectile/_basic_projectile.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/projectile/_basic_projectile.dm

/datum/action/cooldown/spell/basic_projectile
\ No newline at end of file diff --git a/code/modules/spells/spell_types/right_and_wrong.html b/code/modules/spells/spell_types/right_and_wrong.html new file mode 100644 index 0000000000000..8e6abcbd2d5b9 --- /dev/null +++ b/code/modules/spells/spell_types/right_and_wrong.html @@ -0,0 +1,7 @@ +code/modules/spells/spell_types/right_and_wrong.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/right_and_wrong.dm

/proc/summon_ghostsTriggers Summon Ghosts from [user].
/proc/summon_magicTriggers Summon Magic from [user]. +Can optionally be passed [survivor_probability], to set the chance of creating survivalists. +If Summon Magic has already been triggered, gives out magic to everyone again.
/proc/summon_gunsTriggers Summon Guns from [user]. +Can optionally be passed [survivor_probability], to set the chance of creating survivalists. +If Summon Guns has already been triggered, gives out guns to everyone again.
/proc/summon_eventsTriggers Summon Events from [user]. +If Summon Events has already been triggered, speeds up the event timer.
/datum/summon_things_controllerThe "Give everyone in the crew and also latejoins a buncha stuff" controller. +Used for summon magic and summon guns.
\ No newline at end of file diff --git a/code/modules/spells/spell_types/self/mutate.html b/code/modules/spells/spell_types/self/mutate.html new file mode 100644 index 0000000000000..d47c81bbd8011 --- /dev/null +++ b/code/modules/spells/spell_types/self/mutate.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/self/mutate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/self/mutate.dm

/datum/action/cooldown/spell/apply_mutationsA spell type that adds mutations to the caster temporarily.
\ No newline at end of file diff --git a/code/modules/spells/spell_types/self/rod_form.html b/code/modules/spells/spell_types/self/rod_form.html new file mode 100644 index 0000000000000..8ae035e86fb1e --- /dev/null +++ b/code/modules/spells/spell_types/self/rod_form.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/self/rod_form.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/spells/spell_types/self/rod_form.dm

BASE_WIZ_ROD_RANGEThe base distance a wizard rod will go without upgrades.
/obj/effect/immovablerod/wizardWizard Version of the Immovable Rod.

Define Details

BASE_WIZ_ROD_RANGE

The base distance a wizard rod will go without upgrades.

\ No newline at end of file diff --git a/code/modules/spells/spell_types/self/sanguine_strike.html b/code/modules/spells/spell_types/self/sanguine_strike.html new file mode 100644 index 0000000000000..87d007e5bea7f --- /dev/null +++ b/code/modules/spells/spell_types/self/sanguine_strike.html @@ -0,0 +1,6 @@ +code/modules/spells/spell_types/self/sanguine_strike.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/self/sanguine_strike.dm

/datum/action/cooldown/spell/sanguine_strikeEnchants an item to deal either double damage, or +20 damage, whichever is less, and lifesteals for that amount + steals some blood. +multiplication can get a little instakill-y, so capping it at + 20 damage. +10 force weapon doesn't get the cap and gains 10 damage, 20 total +20 force weapon gets the cap of 20 damage added for a total of 40 +35 force weapon still gets the cap of 20 for a total of 55 instead of a whopping 70 damage +Steals 50 blood if they have enough. Splattercasting has one second of cooldown worth 5 blood, so 50 seconds cooldown of blood added!
\ No newline at end of file diff --git a/code/modules/spells/spell_types/self/smoke.html b/code/modules/spells/spell_types/self/smoke.html new file mode 100644 index 0000000000000..efd7878374239 --- /dev/null +++ b/code/modules/spells/spell_types/self/smoke.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/self/smoke.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/self/smoke.dm

/datum/action/cooldown/spell/smokeBasic smoke spell.
/datum/action/cooldown/spell/smoke/lesserChaplain smoke.
/datum/action/cooldown/spell/smoke/disableUnused smoke that makes people sleep. Used to be for cult?
\ No newline at end of file diff --git a/code/modules/spells/spell_types/self/soultap.html b/code/modules/spells/spell_types/self/soultap.html new file mode 100644 index 0000000000000..f7469b5965df0 --- /dev/null +++ b/code/modules/spells/spell_types/self/soultap.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/self/soultap.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/self/soultap.dm

/datum/action/cooldown/spell/tapSOUL TAP!
\ No newline at end of file diff --git a/code/modules/spells/spell_types/shapeshift/_shapeshift.html b/code/modules/spells/spell_types/shapeshift/_shapeshift.html new file mode 100644 index 0000000000000..27a9543ff08d2 --- /dev/null +++ b/code/modules/spells/spell_types/shapeshift/_shapeshift.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/shapeshift/_shapeshift.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/spells/spell_types/shapeshift/_shapeshift.dm

is_shiftedHelper for checking of someone's shapeshifted currently.
/datum/action/cooldown/spell/shapeshiftShapeshift spells.

Define Details

is_shifted

Helper for checking of someone's shapeshifted currently.

\ No newline at end of file diff --git a/code/modules/spells/spell_types/teleport/_teleport.html b/code/modules/spells/spell_types/teleport/_teleport.html new file mode 100644 index 0000000000000..f5bead19a88e2 --- /dev/null +++ b/code/modules/spells/spell_types/teleport/_teleport.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/teleport/_teleport.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/teleport/_teleport.dm

/datum/action/cooldown/spell/teleport
/datum/action/cooldown/spell/teleport/radius_turf
/datum/action/cooldown/spell/teleport/area_teleport
\ No newline at end of file diff --git a/code/modules/spells/spell_types/teleport/teleport.html b/code/modules/spells/spell_types/teleport/teleport.html new file mode 100644 index 0000000000000..ccef335c714ae --- /dev/null +++ b/code/modules/spells/spell_types/teleport/teleport.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/teleport/teleport.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/teleport/teleport.dm

/datum/action/cooldown/spell/teleport/area_teleport/wizardThe wizard's teleport SPELL
/datum/action/cooldown/spell/teleport/area_teleport/wizard/scrollUsed by the wizard's teleport scroll
\ No newline at end of file diff --git a/code/modules/spells/spell_types/touch/_touch.html b/code/modules/spells/spell_types/touch/_touch.html new file mode 100644 index 0000000000000..d3d53a58730be --- /dev/null +++ b/code/modules/spells/spell_types/touch/_touch.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/touch/_touch.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/touch/_touch.dm

/datum/action/cooldown/spell/touch
/obj/item/melee/touch_attack
\ No newline at end of file diff --git a/code/modules/spells/spell_types/touch/scream_for_me.html b/code/modules/spells/spell_types/touch/scream_for_me.html new file mode 100644 index 0000000000000..b6382aadddaea --- /dev/null +++ b/code/modules/spells/spell_types/touch/scream_for_me.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/touch/scream_for_me.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/touch/scream_for_me.dm

/datum/action/cooldown/spell/touch/scream_for_meWeaker smite, not outright gibbing your target, but a lot more bloody, and Sanguine school, so doesn't get affected by splattercasting.
\ No newline at end of file diff --git a/code/modules/spells/spell_types/tower_of_babel.html b/code/modules/spells/spell_types/tower_of_babel.html new file mode 100644 index 0000000000000..2a6dc0d76dfe8 --- /dev/null +++ b/code/modules/spells/spell_types/tower_of_babel.html @@ -0,0 +1 @@ +code/modules/spells/spell_types/tower_of_babel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/spells/spell_types/tower_of_babel.dm

/proc/cure_curse_of_babelMainly so admin triggered tower of babel can be undone
\ No newline at end of file diff --git a/code/modules/station_goals/meteor_shield.html b/code/modules/station_goals/meteor_shield.html new file mode 100644 index 0000000000000..99f6405a56d3a --- /dev/null +++ b/code/modules/station_goals/meteor_shield.html @@ -0,0 +1,3 @@ +code/modules/station_goals/meteor_shield.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/station_goals/meteor_shield.dm

EMAGGED_METEOR_SHIELD_THRESHOLD_ONECreates the initial station goals. +number of emagged meteor shields to get the first warning, a simple say message
EMAGGED_METEOR_SHIELD_THRESHOLD_TWOnumber of emagged meteor shields to get the second warning, telling the user an announcement is coming
EMAGGED_METEOR_SHIELD_THRESHOLD_THREEnumber of emagged meteor shields to get the third warning + an announcement to the crew
EMAGGED_METEOR_SHIELD_THRESHOLD_FOURnumber of emagged meteor shields to get the fourth... ah shit the dark matt-eor is coming.
METEOR_SHIELD_EMAG_COOLDOWNhow long between emagging meteor shields you have to wait

Define Details

EMAGGED_METEOR_SHIELD_THRESHOLD_FOUR

number of emagged meteor shields to get the fourth... ah shit the dark matt-eor is coming.

EMAGGED_METEOR_SHIELD_THRESHOLD_ONE

Creates the initial station goals. +number of emagged meteor shields to get the first warning, a simple say message

EMAGGED_METEOR_SHIELD_THRESHOLD_THREE

number of emagged meteor shields to get the third warning + an announcement to the crew

EMAGGED_METEOR_SHIELD_THRESHOLD_TWO

number of emagged meteor shields to get the second warning, telling the user an announcement is coming

METEOR_SHIELD_EMAG_COOLDOWN

how long between emagging meteor shields you have to wait

\ No newline at end of file diff --git a/code/modules/surgery/bodyparts/parts.html b/code/modules/surgery/bodyparts/parts.html new file mode 100644 index 0000000000000..f0ea7668faaae --- /dev/null +++ b/code/modules/surgery/bodyparts/parts.html @@ -0,0 +1 @@ +code/modules/surgery/bodyparts/parts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/bodyparts/parts.dm

/obj/item/bodypart/armParent Type for arms, should not appear in game.
/obj/item/bodypart/legParent Type for legs, should not appear in game.
\ No newline at end of file diff --git a/code/modules/surgery/bodyparts/species_parts/android_parts.html b/code/modules/surgery/bodyparts/species_parts/android_parts.html new file mode 100644 index 0000000000000..d82d641344fdc --- /dev/null +++ b/code/modules/surgery/bodyparts/species_parts/android_parts.html @@ -0,0 +1,3 @@ +code/modules/surgery/bodyparts/species_parts/android_parts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/bodyparts/species_parts/android_parts.dm

/obj/item/bodypart/head/robot/androidThis is ultra stupid, but essentially androids use robotic limb subtypes that are NOT +immune to being replaced on species change. +Yes, that is the entire reason these exist.
\ No newline at end of file diff --git a/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.html b/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.html new file mode 100644 index 0000000000000..1a2a797b687d6 --- /dev/null +++ b/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.html @@ -0,0 +1 @@ +code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm

/obj/item/bodypart/head/snailSNAIL
/obj/item/bodypart/head/abductorABDUCTOR
/obj/item/bodypart/head/jellyJELLY
/obj/item/bodypart/head/jelly/slimeSLIME
/obj/item/bodypart/head/jelly/luminescentLUMINESCENT
/obj/item/bodypart/head/zombieZOMBIE
/obj/item/bodypart/head/podPODPEOPLE
/obj/item/bodypart/head/flyFLY
/obj/item/bodypart/head/shadowSHADOW
/obj/item/bodypart/head/skeletonSKELETON
/obj/item/bodypart/head/mushroomMUSHROOM
/obj/item/bodypart/head/dullahanDullahan head preserves organs inside it
/obj/item/bodypart/arm/left/fleshflesh
\ No newline at end of file diff --git a/code/modules/surgery/bodyparts/worn_feature_offset.html b/code/modules/surgery/bodyparts/worn_feature_offset.html new file mode 100644 index 0000000000000..3db4af70c9a17 --- /dev/null +++ b/code/modules/surgery/bodyparts/worn_feature_offset.html @@ -0,0 +1,2 @@ +code/modules/surgery/bodyparts/worn_feature_offset.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/bodyparts/worn_feature_offset.dm

/datum/worn_feature_offsetA datum for controlling how to position items on an unusually offset body part +For instance if you have an asymmetrical head, hats might need to be offset to one side
\ No newline at end of file diff --git a/code/modules/surgery/bone_mending.html b/code/modules/surgery/bone_mending.html new file mode 100644 index 0000000000000..392b3a23409da --- /dev/null +++ b/code/modules/surgery/bone_mending.html @@ -0,0 +1,2 @@ +code/modules/surgery/bone_mending.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/bone_mending.dm

/datum/surgery/repair_bone_hairlineBONE FIXING SURGERIES////// +Repair Hairline Fracture (Severe)
/datum/surgery/repair_bone_compoundRepair Compound Fracture (Critical)
/datum/surgery_step/repair_bone_hairlineRepair Hairline Fracture (Severe)
/datum/surgery_step/reset_compound_fractureReset Compound Fracture (Crticial)
/datum/surgery_step/repair_bone_compoundRepair Compound Fracture (Crticial)
/datum/surgery/cranial_reconstructionSurgery to repair cranial fissures
\ No newline at end of file diff --git a/code/modules/surgery/burn_dressing.html b/code/modules/surgery/burn_dressing.html new file mode 100644 index 0000000000000..680cb2a33bb45 --- /dev/null +++ b/code/modules/surgery/burn_dressing.html @@ -0,0 +1,2 @@ +code/modules/surgery/burn_dressing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/burn_dressing.dm

/datum/surgery/debrideBURN FIXING SURGERIES////// +Debride burnt flesh
/datum/surgery_step/debrideDebride
/datum/surgery_step/dressDressing burns
\ No newline at end of file diff --git a/code/modules/surgery/experimental_dissection.html b/code/modules/surgery/experimental_dissection.html new file mode 100644 index 0000000000000..f77b5bcfbdfb4 --- /dev/null +++ b/code/modules/surgery/experimental_dissection.html @@ -0,0 +1 @@ +code/modules/surgery/experimental_dissection.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/surgery/experimental_dissection.dm

BASE_HUMAN_REWARDHow many research points you gain from dissecting a Human.

Define Details

BASE_HUMAN_REWARD

How many research points you gain from dissecting a Human.

\ No newline at end of file diff --git a/code/modules/surgery/gastrectomy.html b/code/modules/surgery/gastrectomy.html new file mode 100644 index 0000000000000..ffabf4966229a --- /dev/null +++ b/code/modules/surgery/gastrectomy.html @@ -0,0 +1 @@ +code/modules/surgery/gastrectomy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/gastrectomy.dm

/datum/surgery_step/gastrectomyGastrectomy, because we truly needed a way to repair stomachs.
\ No newline at end of file diff --git a/code/modules/surgery/healing.html b/code/modules/surgery/healing.html new file mode 100644 index 0000000000000..feba1cfc4020f --- /dev/null +++ b/code/modules/surgery/healing.html @@ -0,0 +1 @@ +code/modules/surgery/healing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/healing.dm

/datum/surgery/healing/bruteBRUTE
/datum/surgery/healing/burnBURN
/datum/surgery/healing/comboCOMBO
\ No newline at end of file diff --git a/code/modules/surgery/hepatectomy.html b/code/modules/surgery/hepatectomy.html new file mode 100644 index 0000000000000..461aa416834c2 --- /dev/null +++ b/code/modules/surgery/hepatectomy.html @@ -0,0 +1 @@ +code/modules/surgery/hepatectomy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/hepatectomy.dm

/datum/surgery_step/hepatectomyhepatectomy, removes damaged parts of the liver so that the liver may regenerate properly
\ No newline at end of file diff --git a/code/modules/surgery/limb_augmentation.html b/code/modules/surgery/limb_augmentation.html new file mode 100644 index 0000000000000..9decc3d7cac69 --- /dev/null +++ b/code/modules/surgery/limb_augmentation.html @@ -0,0 +1 @@ +code/modules/surgery/limb_augmentation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/limb_augmentation.dm

/datum/surgery_step/replace_limbAUGMENTATION SURGERIES
\ No newline at end of file diff --git a/code/modules/surgery/organ_manipulation.html b/code/modules/surgery/organ_manipulation.html new file mode 100644 index 0000000000000..d738714ef26cc --- /dev/null +++ b/code/modules/surgery/organ_manipulation.html @@ -0,0 +1 @@ +code/modules/surgery/organ_manipulation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/organ_manipulation.dm

/datum/surgery_step/manipulate_organsOrgan manipulation base class. Do not use, it wont work. Use its subtypes
/datum/surgery_step/manipulate_organs/internalSurgery step for internal organs, like hearts and brains
/datum/surgery_step/manipulate_organs/internal/mechanicprosthetic surgery gives full effectiveness to crowbars (and hemostats)
/datum/surgery_step/manipulate_organs/externalSurgery step for external organs/features, like tails, frills, wings etc
/datum/surgery_step/manipulate_organs/external/mechanicprosthetic surgery gives full effectiveness to crowbars (and hemostats)
\ No newline at end of file diff --git a/code/modules/surgery/organs/external/_external_organ.html b/code/modules/surgery/organs/external/_external_organ.html new file mode 100644 index 0000000000000..46763a430b0b4 --- /dev/null +++ b/code/modules/surgery/organs/external/_external_organ.html @@ -0,0 +1,3 @@ +code/modules/surgery/organs/external/_external_organ.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/organs/external/_external_organ.dm

/obj/item/organ/externalSystem for drawing organs with overlays. These overlays are drawn directly on the bodypart, attached to a person or not +Works in tandem with the /datum/sprite_accessory datum to generate sprites +Unlike normal organs, we're actually inside a persons limbs at all times
/obj/item/organ/external/hornsThe horns of a lizard!
/obj/item/organ/external/frillsThe frills of a lizard (like weird fin ears)
/obj/item/organ/external/snoutGuess what part of the lizard this is?
/obj/item/organ/external/antennaeA moth's antennae
/datum/bodypart_overlay/mutant/antennaeMoth antennae datum, with full burning functionality
/obj/item/organ/external/pod_hairThe leafy hair of a podperson
/datum/bodypart_overlay/mutant/pod_hairPodperson bodypart overlay, with special coloring functionality to render the flowers in the inverse color
\ No newline at end of file diff --git a/code/modules/surgery/organs/external/spines.html b/code/modules/surgery/organs/external/spines.html new file mode 100644 index 0000000000000..13c143100cf25 --- /dev/null +++ b/code/modules/surgery/organs/external/spines.html @@ -0,0 +1 @@ +code/modules/surgery/organs/external/spines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/organs/external/spines.dm

/obj/item/organ/external/spinesA lizards spines (those things on their back), but also including tail spines (gasp)
/datum/bodypart_overlay/mutant/spinesBodypart overlay for spines
\ No newline at end of file diff --git a/code/modules/surgery/organs/external/tails.html b/code/modules/surgery/organs/external/tails.html new file mode 100644 index 0000000000000..766d1b51134c3 --- /dev/null +++ b/code/modules/surgery/organs/external/tails.html @@ -0,0 +1 @@ +code/modules/surgery/organs/external/tails.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/organs/external/tails.dm

/obj/item/organ/external/tailTail parent, it doesn't do very much.
/datum/bodypart_overlay/mutant/tailTail parent type, with wagging functionality
/datum/bodypart_overlay/mutant/tail/catCat tail bodypart overlay
/datum/bodypart_overlay/mutant/tail/monkeyMonkey tail bodypart overlay
/datum/bodypart_overlay/mutant/tail/lizardLizard tail bodypart overlay datum
/datum/bodypart_overlay/mutant/tail_spinesBodypart overlay for tail spines. Handled by the tail - has no actual organ associated.
\ No newline at end of file diff --git a/code/modules/surgery/organs/external/wings/functional_wings.html b/code/modules/surgery/organs/external/wings/functional_wings.html new file mode 100644 index 0000000000000..c6a7ec08b9da2 --- /dev/null +++ b/code/modules/surgery/organs/external/wings/functional_wings.html @@ -0,0 +1 @@ +code/modules/surgery/organs/external/wings/functional_wings.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/organs/external/wings/functional_wings.dm

/datum/action/innate/flighthud action for starting and stopping flight
/obj/item/organ/external/wings/functionalThe true wings that you can use to fly and shit (you cant actually shit with them)
/datum/bodypart_overlay/mutant/wings/functionalBodypart overlay of function wings, including open and close functionality!
/obj/item/organ/external/wings/functional/angelangel wings, which relate to humans. comes with holiness.
/obj/item/organ/external/wings/functional/dragondragon wings, which relate to lizards.
/obj/item/organ/external/wings/functional/roboticrobotic wings, which relate to androids.
/obj/item/organ/external/wings/functional/skeletonskeletal wings, which relate to skeletal races.
/obj/item/organ/external/wings/functional/moth/mothramothra wings, which relate to moths.
/obj/item/organ/external/wings/functional/moth/megamothmegamoth wings, which relate to moths as an alternate choice. they're both pretty cool.
/obj/item/organ/external/wings/functional/flyfly wings, which relate to flies.
/obj/item/organ/external/wings/functional/slimeslime wings, which relate to slimes.
\ No newline at end of file diff --git a/code/modules/surgery/organs/external/wings/moth_wings.html b/code/modules/surgery/organs/external/wings/moth_wings.html new file mode 100644 index 0000000000000..a82d19903f45e --- /dev/null +++ b/code/modules/surgery/organs/external/wings/moth_wings.html @@ -0,0 +1 @@ +code/modules/surgery/organs/external/wings/moth_wings.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/organs/external/wings/moth_wings.dm

/obj/item/organ/external/wings/mothMoth wings! They can flutter in low-grav and burn off in heat
/datum/bodypart_overlay/mutant/wings/mothMoth wing bodypart overlay, including burn functionality!
\ No newline at end of file diff --git a/code/modules/surgery/organs/external/wings/wings.html b/code/modules/surgery/organs/external/wings/wings.html new file mode 100644 index 0000000000000..4748599b9c2a4 --- /dev/null +++ b/code/modules/surgery/organs/external/wings/wings.html @@ -0,0 +1 @@ +code/modules/surgery/organs/external/wings/wings.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/organs/external/wings/wings.dm

/obj/item/organ/external/wingsWing base type. doesn't really do anything
/datum/bodypart_overlay/mutant/wingsBodypart overlay of default wings. Does not have any wing functionality
\ No newline at end of file diff --git a/code/modules/surgery/organs/internal/appendix/appendix_golem.html b/code/modules/surgery/organs/internal/appendix/appendix_golem.html new file mode 100644 index 0000000000000..fdde10c3d34ac --- /dev/null +++ b/code/modules/surgery/organs/internal/appendix/appendix_golem.html @@ -0,0 +1 @@ +code/modules/surgery/organs/internal/appendix/appendix_golem.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/organs/internal/appendix/appendix_golem.dm

/datum/action/cooldown/internal_smeltingLets golems smelt ore with their organs
\ No newline at end of file diff --git a/code/modules/surgery/organs/internal/eyes/_eyes.html b/code/modules/surgery/organs/internal/eyes/_eyes.html new file mode 100644 index 0000000000000..d6c28b39cbd55 --- /dev/null +++ b/code/modules/surgery/organs/internal/eyes/_eyes.html @@ -0,0 +1 @@ +code/modules/surgery/organs/internal/eyes/_eyes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/organs/internal/eyes/_eyes.dm

/datum/action/cooldown/golem_ore_sightSend an ore detection pulse on a cooldown
/obj/item/organ/internal/eyes/roboticRobotic
\ No newline at end of file diff --git a/code/modules/surgery/organs/internal/heart/heart_anomalock.html b/code/modules/surgery/organs/internal/heart/heart_anomalock.html new file mode 100644 index 0000000000000..4a217b7b20961 --- /dev/null +++ b/code/modules/surgery/organs/internal/heart/heart_anomalock.html @@ -0,0 +1 @@ +code/modules/surgery/organs/internal/heart/heart_anomalock.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/organs/internal/heart/heart_anomalock.dm

Contains Voltaic Combat Cyberheart

\ No newline at end of file diff --git a/code/modules/surgery/organs/internal/liver/liver_golem.html b/code/modules/surgery/organs/internal/liver/liver_golem.html new file mode 100644 index 0000000000000..e66930b7ed68d --- /dev/null +++ b/code/modules/surgery/organs/internal/liver/liver_golem.html @@ -0,0 +1,3 @@ +code/modules/surgery/organs/internal/liver/liver_golem.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/organs/internal/liver/liver_golem.dm

/obj/item/organ/internal/liver/golemGolem liver +Basically only exists to remove the nutriment factor from consumables, +so golems can only consume minerals even when injecting reagents.
\ No newline at end of file diff --git a/code/modules/surgery/organs/internal/liver/liver_plasmaman.html b/code/modules/surgery/organs/internal/liver/liver_plasmaman.html new file mode 100644 index 0000000000000..faa95bc6d115c --- /dev/null +++ b/code/modules/surgery/organs/internal/liver/liver_plasmaman.html @@ -0,0 +1,2 @@ +code/modules/surgery/organs/internal/liver/liver_plasmaman.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/organs/internal/liver/liver_plasmaman.dm

/obj/item/organ/internal/liver/bone/plasmamanPlasmaman liver +Makes plasma and hot ice heal wounds, also makes gunpowder a hallucinogen.
\ No newline at end of file diff --git a/code/modules/surgery/organs/internal/liver/liver_skeleton.html b/code/modules/surgery/organs/internal/liver/liver_skeleton.html new file mode 100644 index 0000000000000..8d1a457d78e66 --- /dev/null +++ b/code/modules/surgery/organs/internal/liver/liver_skeleton.html @@ -0,0 +1,3 @@ +code/modules/surgery/organs/internal/liver/liver_skeleton.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/organs/internal/liver/liver_skeleton.dm

/obj/item/organ/internal/liver/boneBone liver +Gives the owner liverless metabolism, makes them vulnerable to bone hurting juice and +makes milk heal them through meme magic.
\ No newline at end of file diff --git a/code/modules/surgery/organs/internal/stomach/stomach_golem.html b/code/modules/surgery/organs/internal/stomach/stomach_golem.html new file mode 100644 index 0000000000000..6fb76bc1966dd --- /dev/null +++ b/code/modules/surgery/organs/internal/stomach/stomach_golem.html @@ -0,0 +1 @@ +code/modules/surgery/organs/internal/stomach/stomach_golem.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/organs/internal/stomach/stomach_golem.dm

/datum/status_effect/golem_statuedUh oh, you can't move, yell for help
\ No newline at end of file diff --git a/code/modules/surgery/plastic_surgery.html b/code/modules/surgery/plastic_surgery.html new file mode 100644 index 0000000000000..5444668f4e3e5 --- /dev/null +++ b/code/modules/surgery/plastic_surgery.html @@ -0,0 +1 @@ +code/modules/surgery/plastic_surgery.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/plastic_surgery.dm

/obj/item/disk/surgery/advanced_plastic_surgeryDisk containing info for doing advanced plastic surgery. Spawns in maint and available as a role-restricted item in traitor uplinks.
\ No newline at end of file diff --git a/code/modules/surgery/repair_puncture.html b/code/modules/surgery/repair_puncture.html new file mode 100644 index 0000000000000..36e7adf938b4f --- /dev/null +++ b/code/modules/surgery/repair_puncture.html @@ -0,0 +1 @@ +code/modules/surgery/repair_puncture.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/surgery/repair_puncture.dm

REALIGN_INNARDSBURN FIXING SURGERIES
/datum/surgery/repair_punctureRepair puncture wounds
/datum/surgery_step/repair_innardsrealign the blood vessels so we can reweld them
/datum/surgery_step/seal_veinsSealing the vessels back together

Define Details

REALIGN_INNARDS

BURN FIXING SURGERIES

\ No newline at end of file diff --git a/code/modules/surgery/revival.html b/code/modules/surgery/revival.html new file mode 100644 index 0000000000000..5bf07905cdeab --- /dev/null +++ b/code/modules/surgery/revival.html @@ -0,0 +1 @@ +code/modules/surgery/revival.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/surgery/revival.dm

/datum/surgery/revival/carbonAdditional revival effects if the target has a brain
\ No newline at end of file diff --git a/code/modules/surgery/surgery_step.html b/code/modules/surgery/surgery_step.html new file mode 100644 index 0000000000000..3b8ee3522a576 --- /dev/null +++ b/code/modules/surgery/surgery_step.html @@ -0,0 +1 @@ +code/modules/surgery/surgery_step.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/surgery/surgery_step.dm

SURGERY_SPEED_DISSECTION_MODIFIERModifier given to surgery speed for dissected bodies.
SURGERY_SPEED_MORBID_CURIOSITYModifier given to users with TRAIT_MORBID on certain surgeries
SURGERY_SPEED_TRAIT_ANALGESIAModifier given to patients with TRAIT_ANALGESIA

Define Details

SURGERY_SPEED_DISSECTION_MODIFIER

Modifier given to surgery speed for dissected bodies.

SURGERY_SPEED_MORBID_CURIOSITY

Modifier given to users with TRAIT_MORBID on certain surgeries

SURGERY_SPEED_TRAIT_ANALGESIA

Modifier given to patients with TRAIT_ANALGESIA

\ No newline at end of file diff --git a/code/modules/tgchat.html b/code/modules/tgchat.html new file mode 100644 index 0000000000000..5aad320aaf5f1 --- /dev/null +++ b/code/modules/tgchat.html @@ -0,0 +1,20 @@ +code/modules/tgchat/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgchat/README.md

/TG/ Chat

+

/TG/ Chat, which will be referred to as TgChat from this point onwards, is a system in which we can send messages to clients in a controlled and semi-reliable manner. The standard way of sending messages to BYOND clients simply dumps whatever you output to them directly into their chat window, however BYOND allows us to load our own code on the client to change this behaviour in a way that allows us to do some pretty neat things.

+

Message Format

+

TgChat handles sending messages from the server to the client through the use of JSON payloads, of which the format will change depending on the type of message and the intended client endpoint. An example of the payload for chat messages is as follows:

+
{
+	"sequence": 0,
+	"content": {
+		"type": ". . .", // ?optional
+		"text": ". . .", // ?optional !atleast-one
+		"html": ". . .", // ?optional !atleast-one
+		"avoidHighlighting": 0 // ?optional
+	},
+}
+
+

Reliability

+

In the past there have been issues where BYOND will silently and without reason lose a message we sent to the client, to detect this and recover from it seamlessly TgChat also has a baked in reliability layer. This reliability layer is very primitive, and simply keeps track of received sequence numbers. Should the client receive an unexpected sequence number TgChat asks the server to resend any missing packets.

+

Ping System

+

TgChat supports a round trip time ping measurement, which is displayed to the client so they can know how long it takes for their commands and inputs to reach the server. This is done by sending the client a ping request, ping/soft, which tells the client to send a ping to the server. When the server receives said ping it sends a reply, ping/reply, to the client with a payload containing the current DateTime which the client can reference against the initial ping request.

+

Chat Tabs, Local Storage, and Highlighting

+

To make organizing and managing chat easier and more functional for both players and admins, TgChat has the ability to filter out messages based on their primary tag, such as individual departmental radios, to a dedicated chat tab for easier reading and comprehension. These tabs can also be configured to highlist messages based on a simple keyword search. You can set a multitude of different keywords to search for and they will be highlighting for instant alerting of the client. Said tabs, highlighting rules, and your chat history will persist thanks to use of local storage on the client. Using local storage TgChat can ensure that your preferences are saved and maintained between client restarts and switching between other /TG/ servers. Local Storage is also used to keep your chat history aswell, should you need to scroll through your chat logs.

\ No newline at end of file diff --git a/code/modules/tgchat/message.html b/code/modules/tgchat/message.html new file mode 100644 index 0000000000000..f88027063203c --- /dev/null +++ b/code/modules/tgchat/message.html @@ -0,0 +1 @@ +code/modules/tgchat/message.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgchat/message.dm

/proc/message_to_htmlMessage-related procs
\ No newline at end of file diff --git a/code/modules/tgchat/to_chat.html b/code/modules/tgchat/to_chat.html new file mode 100644 index 0000000000000..e3f8ebdb4ecbc --- /dev/null +++ b/code/modules/tgchat/to_chat.html @@ -0,0 +1,3 @@ +code/modules/tgchat/to_chat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgchat/to_chat.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

/proc/to_chat_immediateCircumvents the message queue and sends the message +to the recipient (target) as soon as possible.
/proc/to_chatSends the message to the recipient (target).
\ No newline at end of file diff --git a/code/modules/tgs.html b/code/modules/tgs.html new file mode 100644 index 0000000000000..21dd0b815de94 --- /dev/null +++ b/code/modules/tgs.html @@ -0,0 +1,14 @@ +code/modules/tgs/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

DMAPI Internals

This folder should be placed on its own inside a codebase that wishes to use the TGS DMAPI. Warranty void if modified.

+
    +
  • includes.dm is the file that should be included by DM code, it handles including the rest.
  • +
  • The core folder includes all code not directly part of any API version.
  • +
  • The other versioned folders contain code for the different DMAPI versions. +
      +
    • v3210 contains the final TGS3 API.
    • +
    • v4 is the legacy DMAPI 4 (Used in TGS 4.0.X versions).
    • +
    • v5 is the current DMAPI version used by TGS >=4.1.
    • +
    +
  • +
  • LICENSE is the MIT license for the DMAPI.
  • +
+

APIs communicate with TGS in two ways. All versions implement TGS -> DM communication using /world/Topic. DM -> TGS communication, called the bridge method, is different for each version.

\ No newline at end of file diff --git a/code/modules/tgs/core.html b/code/modules/tgs/core.html new file mode 100644 index 0000000000000..915166a7f53e0 --- /dev/null +++ b/code/modules/tgs/core.html @@ -0,0 +1,8 @@ +code/modules/tgs/core/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Core DMAPI functions

This folder contains all DMAPI code not directly involved in an API.

+
    +
  • _definitions.dm contains defines needed across DMAPI internals.
  • +
  • byond_world_export.dm contains the default /datum/tgs_http_handler implementation which uses world.Export().
  • +
  • core.dm contains the implementations of the /world/proc/TgsXXX() procs. Many map directly to the /datum/tgs_api functions. It also contains the /datum selection and setup code.
  • +
  • datum.dm contains the /datum/tgs_api declarations that all APIs must implement.
  • +
  • tgs_version.dm contains the /datum/tgs_version definition
  • +
\ No newline at end of file diff --git a/code/modules/tgs/v3210.html b/code/modules/tgs/v3210.html new file mode 100644 index 0000000000000..5cc1da10aec23 --- /dev/null +++ b/code/modules/tgs/v3210.html @@ -0,0 +1,5 @@ +code/modules/tgs/v3210/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

DMAPI V3

This DMAPI implements bridge using file output which TGS monitors for.

+
    +
  • api.dm contains the bulk of the API code.
  • +
  • commands.dm contains functions relating to /datum/tgs_chat_commands.
  • +
\ No newline at end of file diff --git a/code/modules/tgs/v4.html b/code/modules/tgs/v4.html new file mode 100644 index 0000000000000..42c18ebc8fda3 --- /dev/null +++ b/code/modules/tgs/v4.html @@ -0,0 +1,5 @@ +code/modules/tgs/v4/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

DMAPI V4

This DMAPI implements bridge requests using file output which TGS monitors for. It has a safe mode restriction.

+
    +
  • api.dm contains the bulk of the API code.
  • +
  • commands.dm contains functions relating to /datum/tgs_chat_commands.
  • +
\ No newline at end of file diff --git a/code/modules/tgs/v5.html b/code/modules/tgs/v5.html new file mode 100644 index 0000000000000..1927bcd2d4ee3 --- /dev/null +++ b/code/modules/tgs/v5.html @@ -0,0 +1,12 @@ +code/modules/tgs/v5/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

DMAPI V5

This DMAPI implements bridge requests using HTTP GET requests to TGS. It has no security restrictions.

+
    +
  • __interop_version.dm contains the version of the API used between the DMAPI and TGS.
  • +
  • _defines.dm contains constant definitions.
  • +
  • api.dm contains the bulk of the API code.
  • +
  • bridge.dm contains functions related to making bridge requests.
  • +
  • chunking.dm contains common function for splitting large raw data sets into chunks BYOND can natively process.
  • +
  • commands.dm contains functions relating to /datum/tgs_chat_commands.
  • +
  • serializers.dm contains function to help convert interop /datums into a JSON encodable list() format.
  • +
  • topic.dm contains functions related to processing topic requests.
  • +
  • undefs.dm Undoes the work of _defines.dm.
  • +
\ No newline at end of file diff --git a/code/modules/tgui/external.html b/code/modules/tgui/external.html new file mode 100644 index 0000000000000..dcea89bbedfed --- /dev/null +++ b/code/modules/tgui/external.html @@ -0,0 +1,3 @@ +code/modules/tgui/external.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/external.dm

External tgui definitions, such as src_object APIs.

+

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

/proc/tgui_TopicMiddleware for /client/Topic.
\ No newline at end of file diff --git a/code/modules/tgui/states.html b/code/modules/tgui/states.html new file mode 100644 index 0000000000000..972f126d26412 --- /dev/null +++ b/code/modules/tgui/states.html @@ -0,0 +1,4 @@ +code/modules/tgui/states.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states.dm

Base state and helpers for states. Just does some sanity checks, +implement a proper state for in-depth checks.

+

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/admin.html b/code/modules/tgui/states/admin.html new file mode 100644 index 0000000000000..891760da6fc01 --- /dev/null +++ b/code/modules/tgui/states/admin.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/admin.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/admin.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/always.html b/code/modules/tgui/states/always.html new file mode 100644 index 0000000000000..b77a291489d7c --- /dev/null +++ b/code/modules/tgui/states/always.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/always.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/always.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/conscious.html b/code/modules/tgui/states/conscious.html new file mode 100644 index 0000000000000..5dbcb770765a0 --- /dev/null +++ b/code/modules/tgui/states/conscious.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/conscious.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/conscious.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/contained.html b/code/modules/tgui/states/contained.html new file mode 100644 index 0000000000000..43724a0936e86 --- /dev/null +++ b/code/modules/tgui/states/contained.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/contained.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/contained.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/deep_inventory.html b/code/modules/tgui/states/deep_inventory.html new file mode 100644 index 0000000000000..887f1b59bb68a --- /dev/null +++ b/code/modules/tgui/states/deep_inventory.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/deep_inventory.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/deep_inventory.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/default.html b/code/modules/tgui/states/default.html new file mode 100644 index 0000000000000..4d621a6f9c251 --- /dev/null +++ b/code/modules/tgui/states/default.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/default.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/default.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/fun.html b/code/modules/tgui/states/fun.html new file mode 100644 index 0000000000000..855984d407b30 --- /dev/null +++ b/code/modules/tgui/states/fun.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/fun.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/fun.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/hands.html b/code/modules/tgui/states/hands.html new file mode 100644 index 0000000000000..3854c1c56ea4e --- /dev/null +++ b/code/modules/tgui/states/hands.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/hands.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/hands.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/human_adjacent.html b/code/modules/tgui/states/human_adjacent.html new file mode 100644 index 0000000000000..6efab8127b180 --- /dev/null +++ b/code/modules/tgui/states/human_adjacent.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/human_adjacent.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/human_adjacent.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/inventory.html b/code/modules/tgui/states/inventory.html new file mode 100644 index 0000000000000..39f4557301461 --- /dev/null +++ b/code/modules/tgui/states/inventory.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/inventory.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/inventory.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/language_menu.html b/code/modules/tgui/states/language_menu.html new file mode 100644 index 0000000000000..e3cb3a408b380 --- /dev/null +++ b/code/modules/tgui/states/language_menu.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/language_menu.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/language_menu.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/never.html b/code/modules/tgui/states/never.html new file mode 100644 index 0000000000000..2ebceb5797618 --- /dev/null +++ b/code/modules/tgui/states/never.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/never.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/never.dm

Copyright (c) 2021 Arm A. Hammer +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/not_incapacitated.html b/code/modules/tgui/states/not_incapacitated.html new file mode 100644 index 0000000000000..ee4976cf87655 --- /dev/null +++ b/code/modules/tgui/states/not_incapacitated.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/not_incapacitated.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/not_incapacitated.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/notcontained.html b/code/modules/tgui/states/notcontained.html new file mode 100644 index 0000000000000..195f0495cdfed --- /dev/null +++ b/code/modules/tgui/states/notcontained.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/notcontained.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/notcontained.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/observer.html b/code/modules/tgui/states/observer.html new file mode 100644 index 0000000000000..054f9c8ed3420 --- /dev/null +++ b/code/modules/tgui/states/observer.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/observer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/observer.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/physical.html b/code/modules/tgui/states/physical.html new file mode 100644 index 0000000000000..8256cde040360 --- /dev/null +++ b/code/modules/tgui/states/physical.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/physical.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/physical.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/reverse_contained.html b/code/modules/tgui/states/reverse_contained.html new file mode 100644 index 0000000000000..3cb424b4692d5 --- /dev/null +++ b/code/modules/tgui/states/reverse_contained.html @@ -0,0 +1 @@ +code/modules/tgui/states/reverse_contained.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/reverse_contained.dm

Not copyrighted, but magatsuchi made it.

\ No newline at end of file diff --git a/code/modules/tgui/states/self.html b/code/modules/tgui/states/self.html new file mode 100644 index 0000000000000..759d44156e275 --- /dev/null +++ b/code/modules/tgui/states/self.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/self.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/self.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/states/zlevel.html b/code/modules/tgui/states/zlevel.html new file mode 100644 index 0000000000000..f57fa98573b8b --- /dev/null +++ b/code/modules/tgui/states/zlevel.html @@ -0,0 +1,2 @@ +code/modules/tgui/states/zlevel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/states/zlevel.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui/status_composers.html b/code/modules/tgui/status_composers.html new file mode 100644 index 0000000000000..2543230383e69 --- /dev/null +++ b/code/modules/tgui/status_composers.html @@ -0,0 +1,13 @@ +code/modules/tgui/status_composers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/status_composers.dm

/proc/default_ui_stateThe sane defaults for a UI such as a computer or a machine.
/proc/ui_status_user_is_adjacentReturns a UI status such that users adjacent to source will be able to interact, +far away users will be able to see, and anyone farther won't see anything. +Dead users will receive updates no matter what, though you likely want to add +a [ui_status_only_living] check for finer observer interactions.
/proc/ui_status_only_livingReturns a UI status such that the dead will be able to watch, but not interact.
/proc/ui_status_user_is_abledReturns a UI status such that users with debilitating conditions, such as +being dead or not having power for silicons, will not be able to interact. +Being dead will disable UI, being incapacitated will continue updating it, +and anything else will make it interactive.
/proc/ui_status_user_has_free_handsReturns a UI status such that those without blocked hands will be able to interact, +but everyone else can only watch.
/proc/ui_status_user_is_advanced_tool_userReturns a UI status such that advanced tool users will be able to interact, +but everyone else can only watch.
/proc/ui_status_silicon_has_accessReturns a UI status such that silicons will be able to interact with whatever +they would have access to if this was a machine. For example, AIs can +interact if there's cameras with wireless control is enabled.
/proc/ui_status_user_is_conscious_and_lying_downReturns UI_INTERACTIVE if the user is conscious and lying down. +Returns UI_UPDATE otherwise.
/proc/ui_status_user_strictly_adjacentReturn UI_INTERACTIVE if the user is strictly adjacent to the target atom, whether they can see it or not. +Return UI_CLOSE otherwise.
\ No newline at end of file diff --git a/code/modules/tgui/tgui.html b/code/modules/tgui/tgui.html new file mode 100644 index 0000000000000..894736dcd8192 --- /dev/null +++ b/code/modules/tgui/tgui.html @@ -0,0 +1,2 @@ +code/modules/tgui/tgui.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/tgui.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

/datum/tguitgui datum (represents a UI).
\ No newline at end of file diff --git a/code/modules/tgui/tgui_window.html b/code/modules/tgui/tgui_window.html new file mode 100644 index 0000000000000..9b06b3c8e3ecc --- /dev/null +++ b/code/modules/tgui/tgui_window.html @@ -0,0 +1,2 @@ +code/modules/tgui/tgui_window.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui/tgui_window.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui_input/alert.html b/code/modules/tgui_input/alert.html new file mode 100644 index 0000000000000..d84f39bff9651 --- /dev/null +++ b/code/modules/tgui_input/alert.html @@ -0,0 +1,2 @@ +code/modules/tgui_input/alert.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui_input/alert.dm

/proc/tgui_alertCreates a TGUI alert window and returns the user's response.
/datum/tgui_alertDatum used for instantiating and using a TGUI-controlled modal that prompts the user with +a message and has buttons for responses.
\ No newline at end of file diff --git a/code/modules/tgui_input/checkboxes.html b/code/modules/tgui_input/checkboxes.html new file mode 100644 index 0000000000000..a931c4c87cabe --- /dev/null +++ b/code/modules/tgui_input/checkboxes.html @@ -0,0 +1 @@ +code/modules/tgui_input/checkboxes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui_input/checkboxes.dm

/proc/tgui_input_checkboxes
/datum/tgui_checkbox_inputWindow for tgui_input_checkboxes
\ No newline at end of file diff --git a/code/modules/tgui_input/keycombo.html b/code/modules/tgui_input/keycombo.html new file mode 100644 index 0000000000000..a15505c1d3955 --- /dev/null +++ b/code/modules/tgui_input/keycombo.html @@ -0,0 +1,2 @@ +code/modules/tgui_input/keycombo.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui_input/keycombo.dm

/proc/tgui_input_keycomboCreates a TGUI window with a key input. Returns the user's response as a full key with modifiers, eg ShiftK.
/datum/tgui_input_keycomboDatum used for instantiating and using a TGUI-controlled key input that prompts the user with +a message and listens for key presses.
\ No newline at end of file diff --git a/code/modules/tgui_input/list.html b/code/modules/tgui_input/list.html new file mode 100644 index 0000000000000..e115b021dfcbc --- /dev/null +++ b/code/modules/tgui_input/list.html @@ -0,0 +1,2 @@ +code/modules/tgui_input/list.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui_input/list.dm

/proc/tgui_input_listCreates a TGUI input list window and returns the user's response.
/datum/tgui_list_inputDatum used for instantiating and using a TGUI-controlled list input that prompts the user with +a message and shows a list of selectable options
\ No newline at end of file diff --git a/code/modules/tgui_input/number.html b/code/modules/tgui_input/number.html new file mode 100644 index 0000000000000..eb0fade674922 --- /dev/null +++ b/code/modules/tgui_input/number.html @@ -0,0 +1,2 @@ +code/modules/tgui_input/number.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui_input/number.dm

/proc/tgui_input_numberCreates a TGUI window with a number input. Returns the user's response as num | null.
/datum/tgui_input_numberDatum used for instantiating and using a TGUI-controlled number input that prompts the user with +a message and has an input for number entry.
\ No newline at end of file diff --git a/code/modules/tgui_input/say_modal/modal.html b/code/modules/tgui_input/say_modal/modal.html new file mode 100644 index 0000000000000..d8141ccef0554 --- /dev/null +++ b/code/modules/tgui_input/say_modal/modal.html @@ -0,0 +1,3 @@ +code/modules/tgui_input/say_modal/modal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui_input/say_modal/modal.dm

/datum/tgui_sayThe tgui say modal. This initializes an input window which hides until +the user presses one of the speech hotkeys. Once something is entered, it will +delegate the speech to the proper channel.
\ No newline at end of file diff --git a/code/modules/tgui_input/say_modal/typing.html b/code/modules/tgui_input/say_modal/typing.html new file mode 100644 index 0000000000000..f90d8e8b747f4 --- /dev/null +++ b/code/modules/tgui_input/say_modal/typing.html @@ -0,0 +1 @@ +code/modules/tgui_input/say_modal/typing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui_input/say_modal/typing.dm

/datum/preference/toggle/typing_indicatorWhether or not to show a typing indicator when speaking. Defaults to on.
\ No newline at end of file diff --git a/code/modules/tgui_input/text.html b/code/modules/tgui_input/text.html new file mode 100644 index 0000000000000..94057236355ee --- /dev/null +++ b/code/modules/tgui_input/text.html @@ -0,0 +1 @@ +code/modules/tgui_input/text.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui_input/text.dm

/proc/tgui_input_textCreates a TGUI window with a text input. Returns the user's response.
/datum/tgui_input_texttgui_input_text
\ No newline at end of file diff --git a/code/modules/tgui_panel/audio.html b/code/modules/tgui_panel/audio.html new file mode 100644 index 0000000000000..db998de5faeeb --- /dev/null +++ b/code/modules/tgui_panel/audio.html @@ -0,0 +1,2 @@ +code/modules/tgui_panel/audio.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui_panel/audio.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui_panel/external.html b/code/modules/tgui_panel/external.html new file mode 100644 index 0000000000000..4beb3c94718c6 --- /dev/null +++ b/code/modules/tgui_panel/external.html @@ -0,0 +1,2 @@ +code/modules/tgui_panel/external.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui_panel/external.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

\ No newline at end of file diff --git a/code/modules/tgui_panel/telemetry.html b/code/modules/tgui_panel/telemetry.html new file mode 100644 index 0000000000000..b4862334aa2d6 --- /dev/null +++ b/code/modules/tgui_panel/telemetry.html @@ -0,0 +1,4 @@ +code/modules/tgui_panel/telemetry.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/tgui_panel/telemetry.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

TGUI_TELEMETRY_MAX_CONNECTIONSMaximum number of connection records allowed to analyze. +Should match the value set in the browser.
TGUI_TELEMETRY_RESPONSE_WINDOWMaximum time allocated for sending a telemetry packet.

Define Details

TGUI_TELEMETRY_MAX_CONNECTIONS

Maximum number of connection records allowed to analyze. +Should match the value set in the browser.

TGUI_TELEMETRY_RESPONSE_WINDOW

Maximum time allocated for sending a telemetry packet.

\ No newline at end of file diff --git a/code/modules/tgui_panel/tgui_panel.html b/code/modules/tgui_panel/tgui_panel.html new file mode 100644 index 0000000000000..ef02b44b09ebc --- /dev/null +++ b/code/modules/tgui_panel/tgui_panel.html @@ -0,0 +1,3 @@ +code/modules/tgui_panel/tgui_panel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tgui_panel/tgui_panel.dm

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

/datum/tgui_paneltgui_panel datum +Hosts tgchat and other nice features.
\ No newline at end of file diff --git a/code/modules/transport/elevator/elev_indicator.html b/code/modules/transport/elevator/elev_indicator.html new file mode 100644 index 0000000000000..24fcafdbd33b7 --- /dev/null +++ b/code/modules/transport/elevator/elev_indicator.html @@ -0,0 +1 @@ +code/modules/transport/elevator/elev_indicator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/transport/elevator/elev_indicator.dm

/obj/machinery/lift_indicatorAn indicator display aka an elevator hall lantern w/ floor number
\ No newline at end of file diff --git a/code/modules/transport/elevator/elev_music_zone.html b/code/modules/transport/elevator/elev_music_zone.html new file mode 100644 index 0000000000000..6d267edc5f393 --- /dev/null +++ b/code/modules/transport/elevator/elev_music_zone.html @@ -0,0 +1 @@ +code/modules/transport/elevator/elev_music_zone.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/transport/elevator/elev_music_zone.dm

/datum/proximity_monitor/advanced/elevator_music_areaLoad or unload a looping sound when mobs enter or exit the area
\ No newline at end of file diff --git a/code/modules/transport/elevator/elev_panel.html b/code/modules/transport/elevator/elev_panel.html new file mode 100644 index 0000000000000..b6a9d1ab64294 --- /dev/null +++ b/code/modules/transport/elevator/elev_panel.html @@ -0,0 +1,2 @@ +code/modules/transport/elevator/elev_panel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/transport/elevator/elev_panel.dm

/obj/machinery/elevator_control_panelA wallmounted simple machine that controls elevators, +allowing users to enter a UI to move it up or down
\ No newline at end of file diff --git a/code/modules/transport/linear_controller.html b/code/modules/transport/linear_controller.html new file mode 100644 index 0000000000000..d834be455c788 --- /dev/null +++ b/code/modules/transport/linear_controller.html @@ -0,0 +1,2 @@ +code/modules/transport/linear_controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/transport/linear_controller.dm

HYDRAULIC_SFX_DURATIONIf anyone changes the hydraulic sound effect I sure hope they update this...
/datum/transport_controller/linearcoordinate and control movement across linked transport_controllers. allows moving large single multitile platforms and many 1 tile platforms. +also is capable of linking platforms across linked z levels

Define Details

HYDRAULIC_SFX_DURATION

If anyone changes the hydraulic sound effect I sure hope they update this...

\ No newline at end of file diff --git a/code/modules/transport/tram/tram_controller.html b/code/modules/transport/tram/tram_controller.html new file mode 100644 index 0000000000000..9f7e5db103a53 --- /dev/null +++ b/code/modules/transport/tram/tram_controller.html @@ -0,0 +1 @@ +code/modules/transport/tram/tram_controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/transport/tram/tram_controller.dm

/datum/transport_controller/linear/tramTram specific variant of the generic linear transport controller.
/obj/machinery/transport/tram_controllerThe physical cabinet on the tram. Acts as the interface between players and the controller datum.
/obj/machinery/transport/tram_controller/tcommsController that sits in the telecoms room
\ No newline at end of file diff --git a/code/modules/transport/tram/tram_signals.html b/code/modules/transport/tram/tram_signals.html new file mode 100644 index 0000000000000..705ac58103b16 --- /dev/null +++ b/code/modules/transport/tram/tram_signals.html @@ -0,0 +1 @@ +code/modules/transport/tram/tram_signals.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/transport/tram/tram_signals.dm

/obj/machinery/transport/crossing_signalPedestrian crossing signal for tram
/obj/machinery/transport/crossing_signal/northwest
\ No newline at end of file diff --git a/code/modules/transport/transport_module.html b/code/modules/transport/transport_module.html new file mode 100644 index 0000000000000..a04e0b6e80055 --- /dev/null +++ b/code/modules/transport/transport_module.html @@ -0,0 +1,2 @@ +code/modules/transport/transport_module.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/transport/transport_module.dm

/obj/structure/transport/linearBase transport structure. A single tile that can form a modular set with neighbouring tiles +This type holds elevators and trams
\ No newline at end of file diff --git a/code/modules/transport/transport_navigation.html b/code/modules/transport/transport_navigation.html new file mode 100644 index 0000000000000..6767797fd0e97 --- /dev/null +++ b/code/modules/transport/transport_navigation.html @@ -0,0 +1,2 @@ +code/modules/transport/transport_navigation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/transport/transport_navigation.dm

/obj/effect/landmark/transport/nav_beacon/tramtransport_controller landmarks. used to map specific destinations on the map.
/obj/effect/landmark/transport/transport_idtransport_controller landmarks. used to map in specific_transport_id to trams and elevators. when the transport_controller encounters one on a tile +it sets its specific_transport_id to that landmark. allows you to have multiple trams and multiple objects linking to their specific tram
\ No newline at end of file diff --git a/code/modules/tutorials/_tutorial.html b/code/modules/tutorials/_tutorial.html new file mode 100644 index 0000000000000..1f33800442382 --- /dev/null +++ b/code/modules/tutorials/_tutorial.html @@ -0,0 +1,2 @@ +code/modules/tutorials/_tutorial.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tutorials/_tutorial.dm

/datum/tutorialThe base for a contextual tutorial. +In order to give a tutorial to someone, use SStutorials.suggest_tutorial(user, /datum/tutorial/subtype)
/datum/tutorial_managerA singleton that manages when to create tutorials of a specific tutorial type.
\ No newline at end of file diff --git a/code/modules/tutorials/tutorials/drop.html b/code/modules/tutorials/tutorials/drop.html new file mode 100644 index 0000000000000..23cd07cee78bc --- /dev/null +++ b/code/modules/tutorials/tutorials/drop.html @@ -0,0 +1,2 @@ +code/modules/tutorials/tutorials/drop.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tutorials/tutorials/drop.dm

/datum/tutorial/dropTutorial for showing how to drop items. +Fired when clicking on an item with another item with a filled inactive hand.
\ No newline at end of file diff --git a/code/modules/tutorials/tutorials/switch_hands.html b/code/modules/tutorials/tutorials/switch_hands.html new file mode 100644 index 0000000000000..cc303fdf65481 --- /dev/null +++ b/code/modules/tutorials/tutorials/switch_hands.html @@ -0,0 +1,2 @@ +code/modules/tutorials/tutorials/switch_hands.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/tutorials/tutorials/switch_hands.dm

/datum/tutorial/switch_handsTutorial for showing how to switch hands. +Fired when clicking on an item with another item with an empty inactive hand.
\ No newline at end of file diff --git a/code/modules/unit_tests.html b/code/modules/unit_tests.html new file mode 100644 index 0000000000000..86b641a8f5e9b --- /dev/null +++ b/code/modules/unit_tests.html @@ -0,0 +1,48 @@ +code/modules/unit_tests/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Unit Tests

What is unit testing?

+

Unit tests are automated code to verify that parts of the game work exactly as they should. For example, a test to make sure that the amputation surgery actually amputates the limb. These are ran every time a PR is made, and thus are very helpful for preventing bugs from cropping up in your code that would've otherwise gone unnoticed. For example, would you have thought to check that beach boys would still work the same after editing pizza? If you value your time, probably not.

+

On their most basic level, when UNIT_TESTS is defined, all subtypes of /datum/unit_test will have their Run proc executed. From here, if Fail is called at any point, then the tests will report as failed.

+

How do I write one?

+
    +
  1. Find a relevant file.
  2. +
+

All unit test related code is in code/modules/unit_tests. If you are adding a new test for a surgery, for example, then you'd open surgeries.dm. If a relevant file does not exist, simply create one in this folder, then #include it in _unit_tests.dm.

+
    +
  1. Create the unit test.
  2. +
+

To make a new unit test, you simply need to define a /datum/unit_test.

+

For example, let's suppose that we are creating a test to make sure a proc square correctly raises inputs to the power of two. We'd start with first:

+
/datum/unit_test/square/Run()
+
+

This defines our new unit test, /datum/unit_test/square. Inside this function, we're then going to run through whatever we want to check. Tests provide a few assertion functions to make this easy. For now, we're going to use TEST_ASSERT_EQUAL.

+
/datum/unit_test/square/Run()
+    TEST_ASSERT_EQUAL(square(3), 9, "square(3) did not return 9")
+    TEST_ASSERT_EQUAL(square(4), 16, "square(4) did not return 16")
+
+

As you can hopefully tell, we're simply checking if the output of square matches the output we are expecting. If the test fails, it'll report the error message given as well as whatever the actual output was.

+
    +
  1. Run the unit test
  2. +
+

Open code/_compile_options.dm and uncomment the following line.

+
//#define UNIT_TESTS			//If this is uncommented, we do a single run though of the game setup and tear down process with unit tests in between
+
+

Then, run tgstation.dmb in Dream Daemon. Don't bother trying to connect, you won't need to. You'll be able to see the outputs of all the tests. You'll get to see which tests failed and for what reason. If they all pass, you're set!

+

How to think about tests

+

Unit tests exist to prevent bugs that would happen in a real game. Thus, they should attempt to emulate the game world wherever possible. For example, the quick swap sanity test emulates a real scenario of the bug it fixed occurring by creating a character and giving it real items. The unrecommended alternative would be to create special test-only items. This isn't a hard rule, the reagent method exposure tests create a test-only reagent for example, but do keep it in mind.

+

Unit tests should also be just that--testing units of code. For example, instead of having one massive test for reagents, there are instead several smaller tests for testing exposure, metabolization, etc.

+

The unit testing API

+

You can find more information about all of these from their respective doc comments, but for a brief overview:

+

/datum/unit_test - The base for all tests to be ran. Subtypes must override Run(). New() and Destroy() can be used for setup and teardown. To fail, use TEST_FAIL(reason).

+

/datum/unit_test/proc/allocate(type, ...) - Allocates an instance of the provided type with the given arguments. Is automatically destroyed when the test is over. Commonly seen in the form of var/mob/living/carbon/human/human = allocate(/mob/living/carbon/human/consistent).

+

TEST_FAIL(reason) - Marks a failure at this location, but does not stop the test.

+

TEST_ASSERT(assertion, reason) - Stops the unit test and fails if the assertion is not met. For example: TEST_ASSERT(powered(), "Machine is not powered").

+

TEST_ASSERT_NOTNULL(a, message) - Same as TEST_ASSERT, but checks if !isnull(a). For example: TEST_ASSERT_NOTNULL(myatom, "My atom was never set!").

+

TEST_ASSERT_NULL(a, message) - Same as TEST_ASSERT, but checks if isnull(a). If not, gives a helpful message showing what a was. For example: TEST_ASSERT_NULL(delme, "Delme was never cleaned up!").

+

TEST_ASSERT_EQUAL(a, b, message) - Same as TEST_ASSERT, but checks if a == b. If not, gives a helpful message showing what both a and b were. For example: TEST_ASSERT_EQUAL(2 + 2, 4, "The universe is falling apart before our eyes!").

+

TEST_ASSERT_NOTEQUAL(a, b, message) - Same as TEST_ASSERT_EQUAL, but reversed.

+

TEST_FOCUS(test_path) - Only run the test provided within the parameters. Useful for reducing noise. For example, if we only want to run our example square test, we can add TEST_FOCUS(/datum/unit_test/square). Should never be pushed in a pull request--you will be laughed at.

+

Final Notes

+
    +
  • Writing tests before you attempt to fix the bug can actually speed up development a lot! It means you don't have to go in game and folllow the same exact steps manually every time. This process is known as "TDD" (test driven development). Write the test first, make sure it fails, then start work on the fix/feature, and you'll know you're done when your tests pass. If you do try this, do make sure to confirm in a non-testing environment just to double check.
  • +
  • Make sure that your tests don't accidentally call RNG functions like prob. Since RNG is seeded during tests, you may not realize you have until someone else makes a PR and the tests fail!
  • +
  • Do your best not to change the behavior of non-testing code during tests. While it may sometimes be necessary in the case of situations such as the above, it is still a slippery slope that can lead to the code you're testing being too different from the production environment to be useful.
  • +
\ No newline at end of file diff --git a/code/modules/unit_tests/_unit_tests.html b/code/modules/unit_tests/_unit_tests.html new file mode 100644 index 0000000000000..b8dbb618c35c6 --- /dev/null +++ b/code/modules/unit_tests/_unit_tests.html @@ -0,0 +1,17 @@ +code/modules/unit_tests/_unit_tests.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/unit_tests/_unit_tests.dm

TEST_FAILFor advanced cases, fail unconditionally but don't return (so a test can return multiple results)
TEST_ASSERTAsserts that a condition is true +If the condition is not true, fails the test
TEST_ASSERT_NOTNULLAsserts that a parameter is not null
TEST_ASSERT_NULLAsserts that a parameter is null
TEST_ASSERT_EQUALAsserts that the two parameters passed are equal, fails otherwise +Optionally allows an additional message in the case of a failure
TEST_ASSERT_NOTEQUALAsserts that the two parameters passed are not equal, fails otherwise +Optionally allows an additional message in the case of a failure
TEST_FOCUSOnly run the test provided within the parentheses +This is useful for debugging when you want to reduce noise, but should never be pushed +Intended to be used in the manner of TEST_FOCUS(/datum/unit_test/math)
TEST_NOTICELogs a noticable message on GitHub, but will not mark as an error. +Use this when something shouldn't happen and is of note, but shouldn't block CI. +Does not mark the test as failed.
UNIT_TEST_PASSEDConstants indicating unit test completion status
TEST_LONGERAfter most test steps, used for tests that run long so shorter issues can be noticed faster
TEST_CREATE_AND_DESTROYThis must be the one of last tests to run due to the inherent nature of the test iterating every single tangible atom in the game and qdeleting all of them (while taking long sleeps to make sure the garbage collector fires properly) taking a large amount of time.
TEST_AFTER_CREATE_AND_DESTROYFor tests that rely on create and destroy having iterated through every (tangible) atom so they don't have to do something similar. +Keep in mind tho that create and destroy will absolutely break the test platform, anything that relies on its shape cannot come after it.
TEST_OUTPUT_REDChange color to red on ANSI terminal output, if enabled with -DANSICOLORS.
TEST_OUTPUT_GREENChange color to green on ANSI terminal output, if enabled with -DANSICOLORS.
TEST_OUTPUT_YELLOWChange color to yellow on ANSI terminal output, if enabled with -DANSICOLORS.
TRAIT_SOURCE_UNIT_TESTSA trait source when adding traits through unit tests

Define Details

TEST_AFTER_CREATE_AND_DESTROY

For tests that rely on create and destroy having iterated through every (tangible) atom so they don't have to do something similar. +Keep in mind tho that create and destroy will absolutely break the test platform, anything that relies on its shape cannot come after it.

TEST_ASSERT

Asserts that a condition is true +If the condition is not true, fails the test

TEST_ASSERT_EQUAL

Asserts that the two parameters passed are equal, fails otherwise +Optionally allows an additional message in the case of a failure

TEST_ASSERT_NOTEQUAL

Asserts that the two parameters passed are not equal, fails otherwise +Optionally allows an additional message in the case of a failure

TEST_ASSERT_NOTNULL

Asserts that a parameter is not null

TEST_ASSERT_NULL

Asserts that a parameter is null

TEST_CREATE_AND_DESTROY

This must be the one of last tests to run due to the inherent nature of the test iterating every single tangible atom in the game and qdeleting all of them (while taking long sleeps to make sure the garbage collector fires properly) taking a large amount of time.

TEST_FAIL

For advanced cases, fail unconditionally but don't return (so a test can return multiple results)

TEST_FOCUS

Only run the test provided within the parentheses +This is useful for debugging when you want to reduce noise, but should never be pushed +Intended to be used in the manner of TEST_FOCUS(/datum/unit_test/math)

TEST_LONGER

After most test steps, used for tests that run long so shorter issues can be noticed faster

TEST_NOTICE

Logs a noticable message on GitHub, but will not mark as an error. +Use this when something shouldn't happen and is of note, but shouldn't block CI. +Does not mark the test as failed.

TEST_OUTPUT_GREEN

Change color to green on ANSI terminal output, if enabled with -DANSICOLORS.

TEST_OUTPUT_RED

Change color to red on ANSI terminal output, if enabled with -DANSICOLORS.

TEST_OUTPUT_YELLOW

Change color to yellow on ANSI terminal output, if enabled with -DANSICOLORS.

TRAIT_SOURCE_UNIT_TESTS

A trait source when adding traits through unit tests

UNIT_TEST_PASSED

Constants indicating unit test completion status

\ No newline at end of file diff --git a/code/modules/unit_tests/abductor_baton_spell.html b/code/modules/unit_tests/abductor_baton_spell.html new file mode 100644 index 0000000000000..e5e7bc0b5ea9d --- /dev/null +++ b/code/modules/unit_tests/abductor_baton_spell.html @@ -0,0 +1 @@ +code/modules/unit_tests/abductor_baton_spell.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/abductor_baton_spell.dm

/datum/unit_test/abductor_baton_spellTests that abductors get their baton recall spell when being equipped
\ No newline at end of file diff --git a/code/modules/unit_tests/ablative_hud.html b/code/modules/unit_tests/ablative_hud.html new file mode 100644 index 0000000000000..b349e5a6d4e33 --- /dev/null +++ b/code/modules/unit_tests/ablative_hud.html @@ -0,0 +1 @@ +code/modules/unit_tests/ablative_hud.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/ablative_hud.dm

/datum/unit_test/ablative_hood_hudCheck that player gains and loses sec hud when toggling the ablative hood
\ No newline at end of file diff --git a/code/modules/unit_tests/achievements.html b/code/modules/unit_tests/achievements.html new file mode 100644 index 0000000000000..e5091fff6ca4f --- /dev/null +++ b/code/modules/unit_tests/achievements.html @@ -0,0 +1 @@ +code/modules/unit_tests/achievements.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/achievements.dm

/datum/unit_test/achievementsChecks that all achievements have an existing icon state in the achievements icon file.
\ No newline at end of file diff --git a/code/modules/unit_tests/anonymous_themes.html b/code/modules/unit_tests/anonymous_themes.html new file mode 100644 index 0000000000000..41d60966d2297 --- /dev/null +++ b/code/modules/unit_tests/anonymous_themes.html @@ -0,0 +1 @@ +code/modules/unit_tests/anonymous_themes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/anonymous_themes.dm

/datum/unit_test/anonymous_themesEnsure that anonymous themes works without changing your preferences
\ No newline at end of file diff --git a/code/modules/unit_tests/antag_conversion.html b/code/modules/unit_tests/antag_conversion.html new file mode 100644 index 0000000000000..0d77cad223c65 --- /dev/null +++ b/code/modules/unit_tests/antag_conversion.html @@ -0,0 +1 @@ +code/modules/unit_tests/antag_conversion.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/antag_conversion.dm

/datum/unit_test/revolution_conversionTests that headrevs can convert people by clicking on them with flashes
/datum/unit_test/cult_conversionTests that cults can convert people with their rune
\ No newline at end of file diff --git a/code/modules/unit_tests/area_contents.html b/code/modules/unit_tests/area_contents.html new file mode 100644 index 0000000000000..549497eb67067 --- /dev/null +++ b/code/modules/unit_tests/area_contents.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/area_contents.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/area_contents.dm

/datum/unit_test/area_contentsVerifies that an area's perception of their "turfs" is correct, and no other area overlaps with them +Quite slow, but needed
\ No newline at end of file diff --git a/code/modules/unit_tests/armor_verification.html b/code/modules/unit_tests/armor_verification.html new file mode 100644 index 0000000000000..26ad79ed71677 --- /dev/null +++ b/code/modules/unit_tests/armor_verification.html @@ -0,0 +1 @@ +code/modules/unit_tests/armor_verification.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/armor_verification.dm

/datum/unit_test/armor_verificationVerifies that armor procs are working as expected
\ No newline at end of file diff --git a/code/modules/unit_tests/atmospherics_sanity.html b/code/modules/unit_tests/atmospherics_sanity.html new file mode 100644 index 0000000000000..eec8e19ad1ab8 --- /dev/null +++ b/code/modules/unit_tests/atmospherics_sanity.html @@ -0,0 +1 @@ +code/modules/unit_tests/atmospherics_sanity.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/atmospherics_sanity.dm

/datum/unit_test/atmospherics_sanityThis test checks that all expected areas are connected to a starting area
\ No newline at end of file diff --git a/code/modules/unit_tests/autowiki.html b/code/modules/unit_tests/autowiki.html new file mode 100644 index 0000000000000..de0b5e9be9628 --- /dev/null +++ b/code/modules/unit_tests/autowiki.html @@ -0,0 +1 @@ +code/modules/unit_tests/autowiki.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/autowiki.dm

/datum/unit_test/autowikiTests that all autowikis generate something without runtiming
/datum/unit_test/autowiki_include_templateTest that include_template produces reasonable results
\ No newline at end of file diff --git a/code/modules/unit_tests/barsigns.html b/code/modules/unit_tests/barsigns.html new file mode 100644 index 0000000000000..91cf029473dc3 --- /dev/null +++ b/code/modules/unit_tests/barsigns.html @@ -0,0 +1 @@ +code/modules/unit_tests/barsigns.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/barsigns.dm

/datum/unit_test/barsigns_iconTest if icon states for each datum actually exist in the DMI.
/datum/unit_test/barsigns_nameCheck that bar signs have a name and desc, and that the name is unique.
/datum/unit_test/barsigns_empTest that an emped barsign displays correctly
\ No newline at end of file diff --git a/code/modules/unit_tests/baseturfs.html b/code/modules/unit_tests/baseturfs.html new file mode 100644 index 0000000000000..f072ffac47a9b --- /dev/null +++ b/code/modules/unit_tests/baseturfs.html @@ -0,0 +1 @@ +code/modules/unit_tests/baseturfs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/baseturfs.dm

/datum/unit_test/baseturfs_unmodified_scrapeValidates that unmodified baseturfs tear down properly
/datum/unit_test/baseturfs_placed_on_topValidates that specially placed baseturfs tear down properly
/datum/unit_test/baseturfs_placed_on_bottomValidates that specially placed baseturfs BELOW tear down properly
\ No newline at end of file diff --git a/code/modules/unit_tests/bitrunning.html b/code/modules/unit_tests/bitrunning.html new file mode 100644 index 0000000000000..c1f5c7b7217f6 --- /dev/null +++ b/code/modules/unit_tests/bitrunning.html @@ -0,0 +1 @@ +code/modules/unit_tests/bitrunning.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/bitrunning.dm

/datum/unit_test/bitrunner_vdom_settingsEnsures settings on vdoms are correct
\ No newline at end of file diff --git a/code/modules/unit_tests/blindness.html b/code/modules/unit_tests/blindness.html new file mode 100644 index 0000000000000..557bc36d3dd34 --- /dev/null +++ b/code/modules/unit_tests/blindness.html @@ -0,0 +1 @@ +code/modules/unit_tests/blindness.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/blindness.dm

/datum/unit_test/blindnessUnit test to check that blindness adds the correct status effects, overlays, and client colors
/datum/unit_test/nearsightednessUnit test to check that nearsighted is added and disabled correctly
/datum/unit_test/eye_damageUnit test to ensure eyes are properly blinded and nearsighted by eye damage
\ No newline at end of file diff --git a/code/modules/unit_tests/bloody_footprints.html b/code/modules/unit_tests/bloody_footprints.html new file mode 100644 index 0000000000000..195c85d25712f --- /dev/null +++ b/code/modules/unit_tests/bloody_footprints.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/bloody_footprints.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/bloody_footprints.dm

/datum/unit_test/bloody_footprintsTests to make sure bloody footprits work as expected +So no stacking, they actually apply, and shoe staining thrown in for free
\ No newline at end of file diff --git a/code/modules/unit_tests/breath.html b/code/modules/unit_tests/breath.html new file mode 100644 index 0000000000000..09df33a79c4ae --- /dev/null +++ b/code/modules/unit_tests/breath.html @@ -0,0 +1,4 @@ +code/modules/unit_tests/breath.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/breath.dm

/datum/unit_test/breathTests to ensure humans, plasmamen, and ashwalkers can breath in normal situations. +Ensures algorithmic correctness of the "breathe()" and "toggle_internals()" procs. +Built to prevent regression on an issue surrounding QUANTIZE() and BREATH_VOLUME. +See the comment on BREATH_VOLUME for more details.
/datum/unit_test/breath/breath_sanity_plasmamenTests to make sure plasmaman can breath from their internal tanks
/datum/unit_test/breath/breath_sanity_ashwalkerTests to make sure ashwalkers can breathe from the lavaland air.
\ No newline at end of file diff --git a/code/modules/unit_tests/burning.html b/code/modules/unit_tests/burning.html new file mode 100644 index 0000000000000..4fc4a96ce8c10 --- /dev/null +++ b/code/modules/unit_tests/burning.html @@ -0,0 +1 @@ +code/modules/unit_tests/burning.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/burning.dm

/datum/unit_test/burningTests that no runtimes are thrown when a mob is on fire
\ No newline at end of file diff --git a/code/modules/unit_tests/cable_powernets.html b/code/modules/unit_tests/cable_powernets.html new file mode 100644 index 0000000000000..f6462b6400868 --- /dev/null +++ b/code/modules/unit_tests/cable_powernets.html @@ -0,0 +1 @@ +code/modules/unit_tests/cable_powernets.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/cable_powernets.dm

/datum/unit_test/cable_powernetsChecking all powernets to see if they are properly connected and powered.
\ No newline at end of file diff --git a/code/modules/unit_tests/can_see.html b/code/modules/unit_tests/can_see.html new file mode 100644 index 0000000000000..b8ba9ebaa65ed --- /dev/null +++ b/code/modules/unit_tests/can_see.html @@ -0,0 +1 @@ +code/modules/unit_tests/can_see.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/can_see.dm

/datum/unit_test/can_see_testUnit test to make sure can_see is working properly
\ No newline at end of file diff --git a/code/modules/unit_tests/cardboard_cutouts.html b/code/modules/unit_tests/cardboard_cutouts.html new file mode 100644 index 0000000000000..6a156940f1b1c --- /dev/null +++ b/code/modules/unit_tests/cardboard_cutouts.html @@ -0,0 +1 @@ +code/modules/unit_tests/cardboard_cutouts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/cardboard_cutouts.dm

/datum/unit_test/cardboard_cutoutsValidates that cardboard cutouts have the proper icons
\ No newline at end of file diff --git a/code/modules/unit_tests/cargo_selling.html b/code/modules/unit_tests/cargo_selling.html new file mode 100644 index 0000000000000..34656031c1791 --- /dev/null +++ b/code/modules/unit_tests/cargo_selling.html @@ -0,0 +1 @@ +code/modules/unit_tests/cargo_selling.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/cargo_selling.dm

/datum/unit_test/cargo_sellingMakes sure exports work and things can be sold
\ No newline at end of file diff --git a/code/modules/unit_tests/changeling.html b/code/modules/unit_tests/changeling.html new file mode 100644 index 0000000000000..4e50f53ed6164 --- /dev/null +++ b/code/modules/unit_tests/changeling.html @@ -0,0 +1 @@ +code/modules/unit_tests/changeling.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/changeling.dm

/datum/unit_test/transformation_stingTests transformation sting goes back and forth correctly
\ No newline at end of file diff --git a/code/modules/unit_tests/chat_filter.html b/code/modules/unit_tests/chat_filter.html new file mode 100644 index 0000000000000..b4de9053c4e63 --- /dev/null +++ b/code/modules/unit_tests/chat_filter.html @@ -0,0 +1 @@ +code/modules/unit_tests/chat_filter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/chat_filter.dm

/datum/unit_test/chat_filter_sanityTests the sanity of the chat filter, ensuring it properly blocks words and gives the reason
\ No newline at end of file diff --git a/code/modules/unit_tests/circuit_component_category.html b/code/modules/unit_tests/circuit_component_category.html new file mode 100644 index 0000000000000..6267ede6fff47 --- /dev/null +++ b/code/modules/unit_tests/circuit_component_category.html @@ -0,0 +1 @@ +code/modules/unit_tests/circuit_component_category.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/circuit_component_category.dm

/datum/unit_test/circuit_component_categoryTests to make sure each circuit component that could potentially be available to a player has a category
\ No newline at end of file diff --git a/code/modules/unit_tests/client_colours.html b/code/modules/unit_tests/client_colours.html new file mode 100644 index 0000000000000..9fa1481c30f54 --- /dev/null +++ b/code/modules/unit_tests/client_colours.html @@ -0,0 +1 @@ +code/modules/unit_tests/client_colours.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/client_colours.dm

/datum/unit_test/client_coloursChecks that client colours have valid colour variables values at least when inited.
\ No newline at end of file diff --git a/code/modules/unit_tests/closets.html b/code/modules/unit_tests/closets.html new file mode 100644 index 0000000000000..5e3300b6ca19e --- /dev/null +++ b/code/modules/unit_tests/closets.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/closets.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/closets.dm

/datum/unit_test/closetsChecks that the length of the initial contents of a closet doesn't exceed its storage capacity. +Also checks that nothing inside that isn't immediate is a steal objective.
\ No newline at end of file diff --git a/code/modules/unit_tests/clothing_under_armor_subtype_check.html b/code/modules/unit_tests/clothing_under_armor_subtype_check.html new file mode 100644 index 0000000000000..126bc83ba2c34 --- /dev/null +++ b/code/modules/unit_tests/clothing_under_armor_subtype_check.html @@ -0,0 +1 @@ +code/modules/unit_tests/clothing_under_armor_subtype_check.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/clothing_under_armor_subtype_check.dm

/datum/unit_test/clothing_under_armor_subtype_checkTest if all jumpsuits are using the proper armor subtype.
\ No newline at end of file diff --git a/code/modules/unit_tests/combat.html b/code/modules/unit_tests/combat.html new file mode 100644 index 0000000000000..86d143f873b97 --- /dev/null +++ b/code/modules/unit_tests/combat.html @@ -0,0 +1 @@ +code/modules/unit_tests/combat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/combat.dm

/datum/unit_test/self_punchTests you can punch yourself
/datum/unit_test/handcuff_punchTests handcuffed (HANDS_BLOCKED) mobs cannot punch
/datum/unit_test/handcuff_biteTests handcuffed (HANDS_BLOCKED) monkeys can still bite despite being cuffed
\ No newline at end of file diff --git a/code/modules/unit_tests/combat_stamina.html b/code/modules/unit_tests/combat_stamina.html new file mode 100644 index 0000000000000..cc9830efb5d33 --- /dev/null +++ b/code/modules/unit_tests/combat_stamina.html @@ -0,0 +1 @@ +code/modules/unit_tests/combat_stamina.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/combat_stamina.dm

/datum/unit_test/stamcritTests 100 stamina damage = stamcrit
/datum/unit_test/stam_regenTests stamina regen after the set time
\ No newline at end of file diff --git a/code/modules/unit_tests/connect_loc.html b/code/modules/unit_tests/connect_loc.html new file mode 100644 index 0000000000000..b26669f7a66cd --- /dev/null +++ b/code/modules/unit_tests/connect_loc.html @@ -0,0 +1 @@ +code/modules/unit_tests/connect_loc.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/connect_loc.dm

/datum/unit_test/connect_loc_basicTest that the connect_loc element handles basic movement cases
/datum/unit_test/connect_loc_change_turfTest that the connect_loc element handles turf changes
/datum/unit_test/connect_loc_multiple_on_turfTests that multiple objects can have connect_loc on the same turf without runtimes.
\ No newline at end of file diff --git a/code/modules/unit_tests/container_sanity.html b/code/modules/unit_tests/container_sanity.html new file mode 100644 index 0000000000000..bd548963432e6 --- /dev/null +++ b/code/modules/unit_tests/container_sanity.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/container_sanity.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/container_sanity.dm

/datum/unit_test/reagent_container_sanityTest to ensure that all possible reagent containers have enough space to hold any reagents they spawn in with. +A drink can with only 30 units of space should not be able to hold 50 units of drink, as an example.
\ No newline at end of file diff --git a/code/modules/unit_tests/crayons.html b/code/modules/unit_tests/crayons.html new file mode 100644 index 0000000000000..ac0014a6a99e1 --- /dev/null +++ b/code/modules/unit_tests/crayons.html @@ -0,0 +1 @@ +code/modules/unit_tests/crayons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/crayons.dm

/datum/unit_test/crayon_namingMakes sure that crayons have their crayon_color in their initial name (to differentiate them in the crafting menu).
\ No newline at end of file diff --git a/code/modules/unit_tests/create_and_destroy.html b/code/modules/unit_tests/create_and_destroy.html new file mode 100644 index 0000000000000..3fd27367cbedb --- /dev/null +++ b/code/modules/unit_tests/create_and_destroy.html @@ -0,0 +1 @@ +code/modules/unit_tests/create_and_destroy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/create_and_destroy.dm

/datum/unit_test/create_and_destroyDelete one of every type, sleep a while, then check to see if anything has gone fucky
\ No newline at end of file diff --git a/code/modules/unit_tests/cyborg_tool.html b/code/modules/unit_tests/cyborg_tool.html new file mode 100644 index 0000000000000..57d721fbbb612 --- /dev/null +++ b/code/modules/unit_tests/cyborg_tool.html @@ -0,0 +1 @@ +code/modules/unit_tests/cyborg_tool.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/cyborg_tool.dm

/datum/unit_test/cyborg_toolRegression test for the cyborg omnitool to ensure it goes through proper channels
\ No newline at end of file diff --git a/code/modules/unit_tests/dcs_check_list_arguments.html b/code/modules/unit_tests/dcs_check_list_arguments.html new file mode 100644 index 0000000000000..9f02a56278742 --- /dev/null +++ b/code/modules/unit_tests/dcs_check_list_arguments.html @@ -0,0 +1,3 @@ +code/modules/unit_tests/dcs_check_list_arguments.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/dcs_check_list_arguments.dm

/datum/unit_test/dcs_check_list_argumentslist arguments for bespoke elements are treated as a text ref in the ID, like any other datum. +Which means that, unless cached, using lists as arguments will lead to multiple instance of the same element +being created over and over.
\ No newline at end of file diff --git a/code/modules/unit_tests/dcs_get_id_from_elements.html b/code/modules/unit_tests/dcs_get_id_from_elements.html new file mode 100644 index 0000000000000..bc279327afe5a --- /dev/null +++ b/code/modules/unit_tests/dcs_get_id_from_elements.html @@ -0,0 +1 @@ +code/modules/unit_tests/dcs_get_id_from_elements.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/dcs_get_id_from_elements.dm

/datum/unit_test/dcs_get_id_from_argumentsTests that DCS' GetIdFromArguments works as expected with standard and odd cases
\ No newline at end of file diff --git a/code/modules/unit_tests/door_access.html b/code/modules/unit_tests/door_access.html new file mode 100644 index 0000000000000..a3c4246290d15 --- /dev/null +++ b/code/modules/unit_tests/door_access.html @@ -0,0 +1 @@ +code/modules/unit_tests/door_access.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/door_access.dm

/datum/unit_test/door_access_checkTests to make sure door access works correctly.
\ No newline at end of file diff --git a/code/modules/unit_tests/dragon_expiration.html b/code/modules/unit_tests/dragon_expiration.html new file mode 100644 index 0000000000000..e689bd9d3af8a --- /dev/null +++ b/code/modules/unit_tests/dragon_expiration.html @@ -0,0 +1 @@ +code/modules/unit_tests/dragon_expiration.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/dragon_expiration.dm

/datum/unit_test/contents_barferUnit test for the contents barfer element
/datum/unit_test/space_dragon_expirationUnit tests that the space dragon - when its rift expires and it gets qdel'd - doesn't delete all the mobs it has eaten
\ No newline at end of file diff --git a/code/modules/unit_tests/drink_icons.html b/code/modules/unit_tests/drink_icons.html new file mode 100644 index 0000000000000..629c04cc1a294 --- /dev/null +++ b/code/modules/unit_tests/drink_icons.html @@ -0,0 +1 @@ +code/modules/unit_tests/drink_icons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/drink_icons.dm

/datum/unit_test/glass_style_iconsUnit tests all glass style datums with icons / icon states that those are valid and not missing.
/datum/unit_test/glass_style_functionalityUnit tests glass style datums are applied to drinking glasses
/datum/unit_test/drink_iconsUnit tests glass subtypes have a valid icon setup
\ No newline at end of file diff --git a/code/modules/unit_tests/dummy_spawn.html b/code/modules/unit_tests/dummy_spawn.html new file mode 100644 index 0000000000000..52bea6348e54f --- /dev/null +++ b/code/modules/unit_tests/dummy_spawn.html @@ -0,0 +1,3 @@ +code/modules/unit_tests/dummy_spawn.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/dummy_spawn.dm

/datum/unit_test/dummy_spawn_speciesThis set of tests is focused on ensuring the stability of preference dummies +And by extension the hacks built to make them fast +Organ consistency, object pooling via the wardrobe ss, etc
/datum/unit_test/dummy_spawn_outfitEquips and devests our dummy of one of every job outfit
\ No newline at end of file diff --git a/code/modules/unit_tests/dynamic_ruleset_sanity.html b/code/modules/unit_tests/dynamic_ruleset_sanity.html new file mode 100644 index 0000000000000..2ada56209f71a --- /dev/null +++ b/code/modules/unit_tests/dynamic_ruleset_sanity.html @@ -0,0 +1 @@ +code/modules/unit_tests/dynamic_ruleset_sanity.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/dynamic_ruleset_sanity.dm

/datum/unit_test/dynamic_roundstart_ruleset_sanityVerifies that roundstart dynamic rulesets are setup properly without external configuration.
/datum/unit_test/dynamic_unique_antag_flagsVerifies that dynamic rulesets have unique antag_flag.
\ No newline at end of file diff --git a/code/modules/unit_tests/egg_glands.html b/code/modules/unit_tests/egg_glands.html new file mode 100644 index 0000000000000..5f0d50f39c25f --- /dev/null +++ b/code/modules/unit_tests/egg_glands.html @@ -0,0 +1 @@ +code/modules/unit_tests/egg_glands.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/egg_glands.dm

/datum/unit_test/egg_glandsVerifies that all glands for an egg are valid
\ No newline at end of file diff --git a/code/modules/unit_tests/ensure_subtree_operational_datum.html b/code/modules/unit_tests/ensure_subtree_operational_datum.html new file mode 100644 index 0000000000000..9b97e56d15547 --- /dev/null +++ b/code/modules/unit_tests/ensure_subtree_operational_datum.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/ensure_subtree_operational_datum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/unit_tests/ensure_subtree_operational_datum.dm

REQUIRED_SUBTREEThe subtree that requires the operational datum.
REQUIRED_OPERATIONAL_DATUMSThe list of typepaths of applicable operational datums that would satisfy the requirement.
/datum/unit_test/ensure_subtree_operational_datumUnit Test that ensure that if we add a specific planning subtree to a basic mob's planning tree, that we also have the operational datum needed for it (component/element). +This can be extended to other "mandatory" operational datums for certain subtrees to work.

Define Details

REQUIRED_OPERATIONAL_DATUMS

The list of typepaths of applicable operational datums that would satisfy the requirement.

REQUIRED_SUBTREE

The subtree that requires the operational datum.

\ No newline at end of file diff --git a/code/modules/unit_tests/explosion_action.html b/code/modules/unit_tests/explosion_action.html new file mode 100644 index 0000000000000..c7a4a169851fe --- /dev/null +++ b/code/modules/unit_tests/explosion_action.html @@ -0,0 +1 @@ +code/modules/unit_tests/explosion_action.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/explosion_action.dm

/datum/unit_test/explosion_actionTests the EX_ACT macro on several different types of atoms to ensure that it still works as expected.
\ No newline at end of file diff --git a/code/modules/unit_tests/fish_unit_tests.html b/code/modules/unit_tests/fish_unit_tests.html new file mode 100644 index 0000000000000..2f2c344e2aa2c --- /dev/null +++ b/code/modules/unit_tests/fish_unit_tests.html @@ -0,0 +1 @@ +code/modules/unit_tests/fish_unit_tests.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/fish_unit_tests.dm

/datum/unit_test/fish_aquarium_iconsEnsures that all fish have an aquarium icon state and that sprite_width and sprite_height have been set.
/datum/unit_test/fish_size_weightChecks that things associated with fish size and weight work correctly.
/datum/unit_test/fish_breedingChecks that fish breeding works correctly.
/datum/unit_test/fish_evolutionChecks that fish evolutions work correctly.
/obj/item/fish/testdummydummy fish item used for the tests, as well with related subtypes and datums.
/datum/fish_evolution/dummy/twoThis is used by both fish_evolution and fish_growth unit tests.
/datum/unit_test/fish_portal_gen_linkingA test that checks that fishing portals can be linked and function as expected
/datum/unit_test/fish_rescue_hookChecks that we are able to fish people out of chasms with priority and that they end up in the right location
/datum/unit_test/fish_growthCheck that the fish growth component works.
/datum/unit_test/fish_randomize_size_weightCheck that nothing wrong happens when randomizing size and weight of a fish
\ No newline at end of file diff --git a/code/modules/unit_tests/focus_only_tests.html b/code/modules/unit_tests/focus_only_tests.html new file mode 100644 index 0000000000000..f82ff7f84381e --- /dev/null +++ b/code/modules/unit_tests/focus_only_tests.html @@ -0,0 +1,6 @@ +code/modules/unit_tests/focus_only_tests.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/focus_only_tests.dm

/datum/unit_test/focus_onlyThese tests perform no behavior of their own, and have their tests offloaded onto other procs. +This is useful in cases like in build_appearance_list where we want to know if any fail, +but is not useful to right a test for. +This file exists so that you can change any of these to TEST_FOCUS and only check for that test. +For example, change /datum/unit_test/focus_only/invalid_overlays to TEST_FOCUS(/datum/unit_test/focus_only/invalid_overlays), +and you will only test the check for invalid overlays in appearance building.
/datum/unit_test/focus_only/invalid_emissivesChecks that every created emissive has a valid icon_state
/datum/unit_test/focus_only/invalid_overlaysChecks that every overlay passed into build_appearance_list exists in the icon
/datum/unit_test/focus_only/invalid_research_designsChecks that every icon sent to the research_designs spritesheet is valid
/datum/unit_test/focus_only/invalid_vending_machine_icon_statesChecks that every icon sent to vending machines is valid
/datum/unit_test/focus_only/multiple_space_initializationChecks that space does not initialize multiple times
/datum/unit_test/focus_only/sorted_smoothing_groupsChecks that smoothing_groups and canSmoothWith are properly sorted in /atom/Initialize
/datum/unit_test/focus_only/valid_turf_statesChecks that floor tiles are properly mapped to broken/burnt
/datum/unit_test/focus_only/nightvision_color_cutoffsChecks that nightvision eyes have a full set of color lists
/datum/unit_test/focus_only/stacked_lightsChecks that no light shares a tile/pixel offsets with another
/datum/unit_test/focus_only/bad_cooking_crafting_iconsChecks for bad icon / icon state setups in cooking crafting menu
/datum/unit_test/focus_only/openspace_clearEnsures openspace never spawns on the bottom of a z stack
/datum/unit_test/focus_only/missing_job_datum_variablesChecks to ensure that variables expected to exist in a job datum (for config reasons) actually exist
/datum/unit_test/focus_only/fish_sources_tablesChecks that the contents of the fish_counts list are also present in fish_table
/datum/unit_test/focus_only/atmos_and_temp_requirementsChecks that maploaded mobs with either the atmos_requirements or body_temp_sensitive
/datum/unit_test/focus_only/topdown_filteringEnsures only whitelisted planes can have TOPDOWN_LAYERing, and vis versa
\ No newline at end of file diff --git a/code/modules/unit_tests/font_awesome_icons.html b/code/modules/unit_tests/font_awesome_icons.html new file mode 100644 index 0000000000000..afb718384ae65 --- /dev/null +++ b/code/modules/unit_tests/font_awesome_icons.html @@ -0,0 +1 @@ +code/modules/unit_tests/font_awesome_icons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/font_awesome_icons.dm

/datum/unit_test/font_awesome_iconsThis unit test verifies that all Font Awesome icons are present in code, and that all quirk icons are valid.
\ No newline at end of file diff --git a/code/modules/unit_tests/food_edibility_check.html b/code/modules/unit_tests/food_edibility_check.html new file mode 100644 index 0000000000000..31c0e5bb66ad3 --- /dev/null +++ b/code/modules/unit_tests/food_edibility_check.html @@ -0,0 +1 @@ +code/modules/unit_tests/food_edibility_check.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/food_edibility_check.dm

/datum/unit_test/food_edibility_checkMakes sure that spawned food has reagents and the edible component (or else it can't be eaten).
\ No newline at end of file diff --git a/code/modules/unit_tests/full_heal.html b/code/modules/unit_tests/full_heal.html new file mode 100644 index 0000000000000..ed89ab59bb1f9 --- /dev/null +++ b/code/modules/unit_tests/full_heal.html @@ -0,0 +1 @@ +code/modules/unit_tests/full_heal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/full_heal.dm

/datum/unit_test/full_heal_heals_organsTests the fully heal flag HEAL_ORGANS.
/datum/unit_test/full_heal_regenerates_organsTests the fully heal flag HEAL_REFRESH_ORGANS.
/datum/unit_test/full_heal_damage_typesTests the fully heal combination flag HEAL_DAMAGE.
\ No newline at end of file diff --git a/code/modules/unit_tests/gas_transfer.html b/code/modules/unit_tests/gas_transfer.html new file mode 100644 index 0000000000000..f2324963f929f --- /dev/null +++ b/code/modules/unit_tests/gas_transfer.html @@ -0,0 +1 @@ +code/modules/unit_tests/gas_transfer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/gas_transfer.dm

/datum/unit_test/atmospheric_gas_transferTest to make sure the pressure pumping proc used by things like portable pumps, pressure pumps, etc actually work.
\ No newline at end of file diff --git a/code/modules/unit_tests/get_turf_pixel.html b/code/modules/unit_tests/get_turf_pixel.html new file mode 100644 index 0000000000000..c3f6b3aa80b01 --- /dev/null +++ b/code/modules/unit_tests/get_turf_pixel.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/get_turf_pixel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/get_turf_pixel.dm

/datum/unit_test/get_turf_pixelensures that get_turf_pixel() returns turfs within the bounds of the map, +even when called on a movable with its sprite out of bounds
\ No newline at end of file diff --git a/code/modules/unit_tests/geyser.html b/code/modules/unit_tests/geyser.html new file mode 100644 index 0000000000000..48146b0d4d738 --- /dev/null +++ b/code/modules/unit_tests/geyser.html @@ -0,0 +1,6 @@ +code/modules/unit_tests/geyser.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/geyser.dm

/datum/unit_test/geyserGeysers listen to reagent signals to know when to start processing, which is very cool, smart, optimized and fragile +Tests: +Check for reagent datum +Check if our geyser starts with the right reagent +Check if our geyser refills (by clearing the reagents, setting refresh rate to max and manually firing the subsystem) +Check if our geyser refilled with the right reagent
\ No newline at end of file diff --git a/code/modules/unit_tests/gloves_and_shoes_armor.html b/code/modules/unit_tests/gloves_and_shoes_armor.html new file mode 100644 index 0000000000000..3dc04d3a1f95f --- /dev/null +++ b/code/modules/unit_tests/gloves_and_shoes_armor.html @@ -0,0 +1 @@ +code/modules/unit_tests/gloves_and_shoes_armor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/gloves_and_shoes_armor.dm

/datum/unit_test/gloves_and_shoes_armorChecks if any gloves or shoes that have non bio/fire/acid armor haven't been marked with ARMS or LEGS coverage respectively
\ No newline at end of file diff --git a/code/modules/unit_tests/greyscale_config.html b/code/modules/unit_tests/greyscale_config.html new file mode 100644 index 0000000000000..225c22ad7825f --- /dev/null +++ b/code/modules/unit_tests/greyscale_config.html @@ -0,0 +1 @@ +code/modules/unit_tests/greyscale_config.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/greyscale_config.dm

/datum/unit_test/greyscale_item_icon_statesMakes sure items using GAGS have all the icon states needed to work
/datum/unit_test/greyscale_color_countMakes sure objects using greyscale configs have, if any, the correct number of colors
\ No newline at end of file diff --git a/code/modules/unit_tests/hallucination_icons.html b/code/modules/unit_tests/hallucination_icons.html new file mode 100644 index 0000000000000..266439a4ee103 --- /dev/null +++ b/code/modules/unit_tests/hallucination_icons.html @@ -0,0 +1,5 @@ +code/modules/unit_tests/hallucination_icons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/hallucination_icons.dm

/datum/unit_test/hallucination_iconsUnit tests various image related hallucinations +that their icon_states and icons still exist, +as often hallucinations are copy and pasted +implementations of existing image setups +that may be changed and not updated.
\ No newline at end of file diff --git a/code/modules/unit_tests/high_five.html b/code/modules/unit_tests/high_five.html new file mode 100644 index 0000000000000..49ab5f07aede4 --- /dev/null +++ b/code/modules/unit_tests/high_five.html @@ -0,0 +1 @@ +code/modules/unit_tests/high_five.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/high_five.dm

/datum/unit_test/high_five_walk_awayTests someone offering a high five correctly stops offering when all takers walks away
\ No newline at end of file diff --git a/code/modules/unit_tests/hulk.html b/code/modules/unit_tests/hulk.html new file mode 100644 index 0000000000000..fb63627c33d01 --- /dev/null +++ b/code/modules/unit_tests/hulk.html @@ -0,0 +1 @@ +code/modules/unit_tests/hulk.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/hulk.dm

/datum/unit_test/hulk_attackTests hulk attacking over normal attacking
/datum/unit_test/hulk_north_starTests that hulks aren't given rapid attacks from rapid attack gloves
\ No newline at end of file diff --git a/code/modules/unit_tests/human_through_recycler.html b/code/modules/unit_tests/human_through_recycler.html new file mode 100644 index 0000000000000..2c603d7c76625 --- /dev/null +++ b/code/modules/unit_tests/human_through_recycler.html @@ -0,0 +1 @@ +code/modules/unit_tests/human_through_recycler.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/human_through_recycler.dm

/datum/unit_test/human_through_recyclerPuts a consistent assistant into an emagged recycler, and verifies that all intended behavior of an emagged recycler occurs (chewing up all the clothing, applying a level of melee damage, etc.)
\ No newline at end of file diff --git a/code/modules/unit_tests/hunger_curse.html b/code/modules/unit_tests/hunger_curse.html new file mode 100644 index 0000000000000..867f50603b31b --- /dev/null +++ b/code/modules/unit_tests/hunger_curse.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/hunger_curse.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/hunger_curse.dm

/datum/unit_test/hunger_curseTests that the curse of hunger, from /datum/component/curse_of_hunger, +is properly added when equipped to the correct slot and removed when dropped / deleted
\ No newline at end of file diff --git a/code/modules/unit_tests/hydroponics_extractor_storage.html b/code/modules/unit_tests/hydroponics_extractor_storage.html new file mode 100644 index 0000000000000..9e646595850cc --- /dev/null +++ b/code/modules/unit_tests/hydroponics_extractor_storage.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/hydroponics_extractor_storage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/hydroponics_extractor_storage.dm

/datum/unit_test/hydroponics_extractor_storageUnit test to ensure seeds can properly be added to the plant seed extractor through multiple methods. +This only tests transferring seeds to the storage, it does NOT test creating seeds.
\ No newline at end of file diff --git a/code/modules/unit_tests/hydroponics_self_mutations.html b/code/modules/unit_tests/hydroponics_self_mutations.html new file mode 100644 index 0000000000000..65bd0226a238d --- /dev/null +++ b/code/modules/unit_tests/hydroponics_self_mutations.html @@ -0,0 +1 @@ +code/modules/unit_tests/hydroponics_self_mutations.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/hydroponics_self_mutations.dm

/datum/unit_test/hydroponics_self_mutationUnit test to ensure plants can't self-mutate into themselves.
\ No newline at end of file diff --git a/code/modules/unit_tests/hydroponics_validate_genes.html b/code/modules/unit_tests/hydroponics_validate_genes.html new file mode 100644 index 0000000000000..4a7635af3d45e --- /dev/null +++ b/code/modules/unit_tests/hydroponics_validate_genes.html @@ -0,0 +1 @@ +code/modules/unit_tests/hydroponics_validate_genes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/hydroponics_validate_genes.dm

/datum/unit_test/hydroponics_validate_genesUnit test to ensure plants don't have multiple of a plant type at once by default.
\ No newline at end of file diff --git a/code/modules/unit_tests/inhands.html b/code/modules/unit_tests/inhands.html new file mode 100644 index 0000000000000..649a02d4e4a7b --- /dev/null +++ b/code/modules/unit_tests/inhands.html @@ -0,0 +1 @@ +code/modules/unit_tests/inhands.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/inhands.dm

/datum/unit_test/defined_inhand_icon_statesMakes sure items with defined inhand_icon_states... actually have icons that exist!
\ No newline at end of file diff --git a/code/modules/unit_tests/json_savefile_importing.html b/code/modules/unit_tests/json_savefile_importing.html new file mode 100644 index 0000000000000..1b9ed5fa1280c --- /dev/null +++ b/code/modules/unit_tests/json_savefile_importing.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/json_savefile_importing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/json_savefile_importing.dm

/datum/unit_test/json_savefilesThe job of this unit test is to ensure that save files are correctly imported from BYOND to JSON. +It's a rather convoluted process and so this test ensures that something didn't fuck up somewhere.
\ No newline at end of file diff --git a/code/modules/unit_tests/knockoff_component.html b/code/modules/unit_tests/knockoff_component.html new file mode 100644 index 0000000000000..145d2fbdba405 --- /dev/null +++ b/code/modules/unit_tests/knockoff_component.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/knockoff_component.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/knockoff_component.dm

/datum/unit_test/knockoff_componentTest that the knockoff component will properly cause something +with it applied to be knocked off when it should be.
\ No newline at end of file diff --git a/code/modules/unit_tests/language_transfer.html b/code/modules/unit_tests/language_transfer.html new file mode 100644 index 0000000000000..07b076cad8482 --- /dev/null +++ b/code/modules/unit_tests/language_transfer.html @@ -0,0 +1 @@ +code/modules/unit_tests/language_transfer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/language_transfer.dm

/datum/unit_test/language_species_swap_simpleSimply tests that swapping to a new species gives you the languages of that species and removes the languages of the old species
/datum/unit_test/language_species_swap_complexTests species changes which are more complex are functional (e.g. from a species which speaks common to one which does not)
/datum/unit_test/language_species_change_other_knownTest that other random languages known are not lost on species change
/datum/unit_test/language_mind_transferTests that mind bound languages are not lost swapping into a new mob, but other languages are
/datum/unit_test/language_mind_swapTests that mind bound languages are not lost when swapping with another person (wiz mindswap)
/datum/unit_test/book_of_babelTests that the book of babel, and by extension grant_all_languages, works as intended
/proc/print_language_listHelper proc to print a list of languages in a human readable format
\ No newline at end of file diff --git a/code/modules/unit_tests/leash.html b/code/modules/unit_tests/leash.html new file mode 100644 index 0000000000000..8231e19ac9c12 --- /dev/null +++ b/code/modules/unit_tests/leash.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/leash.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/leash.dm

/datum/unit_test/leash/no_teleportValidates the leash component will keep its parent within range without teleporting +when possible.
/datum/unit_test/leash/will_teleportValidates that the leash component will forcibly teleport when necessary
/datum/unit_test/leash/limit_rangeValidates that the leashed object cannot move outside of the max distance from owner
\ No newline at end of file diff --git a/code/modules/unit_tests/lesserform.html b/code/modules/unit_tests/lesserform.html new file mode 100644 index 0000000000000..aaa0076649410 --- /dev/null +++ b/code/modules/unit_tests/lesserform.html @@ -0,0 +1 @@ +code/modules/unit_tests/lesserform.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/lesserform.dm

/datum/unit_test/lesserformUnit test to ensure that changelings can consistently turn from monkeys to humans and back
\ No newline at end of file diff --git a/code/modules/unit_tests/ling_decap.html b/code/modules/unit_tests/ling_decap.html new file mode 100644 index 0000000000000..8005ed10b65e7 --- /dev/null +++ b/code/modules/unit_tests/ling_decap.html @@ -0,0 +1 @@ +code/modules/unit_tests/ling_decap.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/ling_decap.dm

/datum/unit_test/ling_decapTest lings don't die when decapitated.
/datum/unit_test/normal_decapTests people get decapitated properly.
\ No newline at end of file diff --git a/code/modules/unit_tests/load_map_security.html b/code/modules/unit_tests/load_map_security.html new file mode 100644 index 0000000000000..0fee1a258f882 --- /dev/null +++ b/code/modules/unit_tests/load_map_security.html @@ -0,0 +1 @@ +code/modules/unit_tests/load_map_security.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/load_map_security.dm

/datum/unit_test/load_map_securityTests to ensure we can load a map from a whitelisted directory (_maps), but not a non-whitelisted directory (i.e "fartyShitPants")
\ No newline at end of file diff --git a/code/modules/unit_tests/lungs.html b/code/modules/unit_tests/lungs.html new file mode 100644 index 0000000000000..58ae05dec3b0a --- /dev/null +++ b/code/modules/unit_tests/lungs.html @@ -0,0 +1,3 @@ +code/modules/unit_tests/lungs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/lungs.dm

/datum/unit_test/lungsTests the standard, plasmaman, and lavaland lungs organ to ensure breathing and suffocation behave as expected. +Performs a check on each main (can be life-sustaining) gas, and ensures gas alerts are only thrown when expected.
/datum/unit_test/lungs/lungs_sanity_plasmamanTests the Plasmaman lungs organ to ensure Plasma breathing and suffocation behave as expected.
/datum/unit_test/lungs/lungs_sanity_ashwalkerTests the lavaland/Ashwalker lungs organ. +Ensures they can breathe from the lavaland air mixture properly, and suffocate on inadequate mixture.
\ No newline at end of file diff --git a/code/modules/unit_tests/machine_disassembly.html b/code/modules/unit_tests/machine_disassembly.html new file mode 100644 index 0000000000000..97232f01ad17e --- /dev/null +++ b/code/modules/unit_tests/machine_disassembly.html @@ -0,0 +1 @@ +code/modules/unit_tests/machine_disassembly.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/machine_disassembly.dm

/datum/unit_test/machine_disassemblyEnsures that when disassembling a machine, all the parts are given back
/datum/unit_test/computer_disassemblyTest that the computer is disassembled correctly
\ No newline at end of file diff --git a/code/modules/unit_tests/mafia.html b/code/modules/unit_tests/mafia.html new file mode 100644 index 0000000000000..bc9b7d0ff37a0 --- /dev/null +++ b/code/modules/unit_tests/mafia.html @@ -0,0 +1,4 @@ +code/modules/unit_tests/mafia.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/mafia.dm

/datum/unit_test/mafiaChecks if a Mafia game with a Modular Computer and a Ghost will run with 'basic_setup', which is the default +way the game is ran, without admin-intervention. +The game should immediately end in a Town Victory due to lack of evils, but we can verify that both the PDA and the ghost +successfully managed to get into the round.
\ No newline at end of file diff --git a/code/modules/unit_tests/map_landmarks.html b/code/modules/unit_tests/map_landmarks.html new file mode 100644 index 0000000000000..a6af2c549deac --- /dev/null +++ b/code/modules/unit_tests/map_landmarks.html @@ -0,0 +1 @@ +code/modules/unit_tests/map_landmarks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/map_landmarks.dm

/datum/unit_test/job_roundstart_spawnpointsTests that /datum/job/proc/get_default_roundstart_spawn_point returns a landmark from all joinable jobs.
\ No newline at end of file diff --git a/code/modules/unit_tests/mapload_space_verification.html b/code/modules/unit_tests/mapload_space_verification.html new file mode 100644 index 0000000000000..c8faecb127092 --- /dev/null +++ b/code/modules/unit_tests/mapload_space_verification.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/mapload_space_verification.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/mapload_space_verification.dm

/datum/unit_test/mapload_space_verificationVerifies that there are no space turfs inside a station area, or on any planetary z-level. Sometimes, these are introduced during the load of the map and are not present in the DMM itself. +Let's just make sure that we have a stop-gap measure in place to catch these if they pop up so we don't put it onto production servers should something errant come up.
\ No newline at end of file diff --git a/code/modules/unit_tests/mapping.html b/code/modules/unit_tests/mapping.html new file mode 100644 index 0000000000000..34de3fe6cfd50 --- /dev/null +++ b/code/modules/unit_tests/mapping.html @@ -0,0 +1 @@ +code/modules/unit_tests/mapping.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/mapping.dm

/datum/unit_test/log_mappingConveys all log_mapping messages as unit test failures, as they all indicate mapping problems.
\ No newline at end of file diff --git a/code/modules/unit_tests/mapping_nearstation_test.html b/code/modules/unit_tests/mapping_nearstation_test.html new file mode 100644 index 0000000000000..7dde2bca3d294 --- /dev/null +++ b/code/modules/unit_tests/mapping_nearstation_test.html @@ -0,0 +1 @@ +code/modules/unit_tests/mapping_nearstation_test.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/mapping_nearstation_test.dm

/datum/unit_test/mapping_nearstation_testDetects movables that may have been accidentally placed in space, as well as movables which do not have the proper nearspace area (meaning they aren't lit properly.)
\ No newline at end of file diff --git a/code/modules/unit_tests/market.html b/code/modules/unit_tests/market.html new file mode 100644 index 0000000000000..197349e95811b --- /dev/null +++ b/code/modules/unit_tests/market.html @@ -0,0 +1 @@ +code/modules/unit_tests/market.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/market.dm

/datum/unit_test/marketEnsures market items have acceptable variable values and restocking works.
\ No newline at end of file diff --git a/code/modules/unit_tests/mecha_damage.html b/code/modules/unit_tests/mecha_damage.html new file mode 100644 index 0000000000000..31ca3a838baaf --- /dev/null +++ b/code/modules/unit_tests/mecha_damage.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/mecha_damage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/mecha_damage.dm

/datum/unit_test/mecha_damageUnit test to ensure that mechs take the correct amount of damage +based on armor, and that their equipment is properly damaged as well.
\ No newline at end of file diff --git a/code/modules/unit_tests/mindbound_actions.html b/code/modules/unit_tests/mindbound_actions.html new file mode 100644 index 0000000000000..6fadf28667f32 --- /dev/null +++ b/code/modules/unit_tests/mindbound_actions.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/mindbound_actions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/mindbound_actions.dm

/datum/unit_test/actions_moved_on_mind_transferTests that actions assigned to a mob's mind +are successfuly transferred when their mind is transferred to a new mob.
\ No newline at end of file diff --git a/code/modules/unit_tests/missing_icons.html b/code/modules/unit_tests/missing_icons.html new file mode 100644 index 0000000000000..b4f8e10c754cc --- /dev/null +++ b/code/modules/unit_tests/missing_icons.html @@ -0,0 +1 @@ +code/modules/unit_tests/missing_icons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/missing_icons.dm

/datum/unit_test/missing_iconsMakes sure objects actually have icons that exist!
\ No newline at end of file diff --git a/code/modules/unit_tests/mob_chains.html b/code/modules/unit_tests/mob_chains.html new file mode 100644 index 0000000000000..6f54cadcf99a8 --- /dev/null +++ b/code/modules/unit_tests/mob_chains.html @@ -0,0 +1 @@ +code/modules/unit_tests/mob_chains.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/mob_chains.dm

/datum/unit_test/mob_chainsChecks if mobs who are linked together with the mob chain component react as expected
\ No newline at end of file diff --git a/code/modules/unit_tests/mob_damage.html b/code/modules/unit_tests/mob_damage.html new file mode 100644 index 0000000000000..64f7b659e1ff6 --- /dev/null +++ b/code/modules/unit_tests/mob_damage.html @@ -0,0 +1 @@ +code/modules/unit_tests/mob_damage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/mob_damage.dm

/datum/unit_test/mob_damageTests to make sure mob damage procs are working correctly
/datum/unit_test/mob_damage/basicTests that mob damage procs are working as intended for basic mobs
/datum/unit_test/human_tox_damageTests that humans get the tox_vomit status effect when heavily poisoned
\ No newline at end of file diff --git a/code/modules/unit_tests/mob_faction.html b/code/modules/unit_tests/mob_faction.html new file mode 100644 index 0000000000000..6de0e9d1cfb3d --- /dev/null +++ b/code/modules/unit_tests/mob_faction.html @@ -0,0 +1 @@ +code/modules/unit_tests/mob_faction.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/mob_faction.dm

/datum/unit_test/mob_factionChecks if any mob's faction var initial value is not a list, which is not supported by the current code
\ No newline at end of file diff --git a/code/modules/unit_tests/mob_spawn.html b/code/modules/unit_tests/mob_spawn.html new file mode 100644 index 0000000000000..b7687aa072ed1 --- /dev/null +++ b/code/modules/unit_tests/mob_spawn.html @@ -0,0 +1 @@ +code/modules/unit_tests/mob_spawn.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/mob_spawn.dm

/datum/unit_test/mob_spawnVerifies that all glands for an egg are valid
\ No newline at end of file diff --git a/code/modules/unit_tests/modsuit.html b/code/modules/unit_tests/modsuit.html new file mode 100644 index 0000000000000..e99cd08989a7a --- /dev/null +++ b/code/modules/unit_tests/modsuit.html @@ -0,0 +1 @@ +code/modules/unit_tests/modsuit.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/modsuit.dm

/datum/unit_test/modsuit_checksChecks all pre-equipped MODsuit paths to see if they have something set wrong.
\ No newline at end of file diff --git a/code/modules/unit_tests/monkey_business.html b/code/modules/unit_tests/monkey_business.html new file mode 100644 index 0000000000000..cd257c3bedc6f --- /dev/null +++ b/code/modules/unit_tests/monkey_business.html @@ -0,0 +1 @@ +code/modules/unit_tests/monkey_business.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/monkey_business.dm

/datum/unit_test/monkey_businessMonkey Business
\ No newline at end of file diff --git a/code/modules/unit_tests/mouse_bite_cable.html b/code/modules/unit_tests/mouse_bite_cable.html new file mode 100644 index 0000000000000..3f9945ffbc5e7 --- /dev/null +++ b/code/modules/unit_tests/mouse_bite_cable.html @@ -0,0 +1 @@ +code/modules/unit_tests/mouse_bite_cable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/mouse_bite_cable.dm

/datum/unit_test/mouse_bite_cableUnit Test to ensure that a mouse bites a cable, gets shocked, and dies.
/mob/living/basic/mouse/cable_loverDummy mouse that is guaranteed to die when biting shocked cables.
/datum/ai_controller/basic_controller/mouse/guaranteed_to_biteDummy mouse's ai controller that is guaranteed to find and bite a cable beneath it
/datum/ai_planning_subtree/find_and_hunt_target/look_for_cables/guaranteedCable hunting subtree that's guarantee to hunt its target.
\ No newline at end of file diff --git a/code/modules/unit_tests/mutant_hands_consistency.html b/code/modules/unit_tests/mutant_hands_consistency.html new file mode 100644 index 0000000000000..ddfa0a87e599d --- /dev/null +++ b/code/modules/unit_tests/mutant_hands_consistency.html @@ -0,0 +1 @@ +code/modules/unit_tests/mutant_hands_consistency.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/mutant_hands_consistency.dm

/datum/unit_test/mutant_handsTest: Mutant hands component
/datum/unit_test/mutant_hands_with_nodropTest: Mutant hands component with a nodrop item in place
/datum/unit_test/mutant_hands_carryTest: Mutant hands fireman carrying
\ No newline at end of file diff --git a/code/modules/unit_tests/mutant_organs.html b/code/modules/unit_tests/mutant_organs.html new file mode 100644 index 0000000000000..daa7c4cd2184b --- /dev/null +++ b/code/modules/unit_tests/mutant_organs.html @@ -0,0 +1 @@ +code/modules/unit_tests/mutant_organs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/mutant_organs.dm

/datum/unit_test/mutant_organsIterates over all species to ensure that organs are valid after being set to a mutant species.
\ No newline at end of file diff --git a/code/modules/unit_tests/novaflower_burn.html b/code/modules/unit_tests/novaflower_burn.html new file mode 100644 index 0000000000000..7fd7de5862364 --- /dev/null +++ b/code/modules/unit_tests/novaflower_burn.html @@ -0,0 +1 @@ +code/modules/unit_tests/novaflower_burn.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/novaflower_burn.dm

/datum/unit_test/novaflower_burnUnit tests that the novaflower's unique genes function.
\ No newline at end of file diff --git a/code/modules/unit_tests/nuke_cinematic.html b/code/modules/unit_tests/nuke_cinematic.html new file mode 100644 index 0000000000000..8e66090f04cee --- /dev/null +++ b/code/modules/unit_tests/nuke_cinematic.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/nuke_cinematic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/nuke_cinematic.dm

/datum/unit_test/nuke_cinematicUnit tests that a nuke going off plays a cinematic, +and that it actually kills people.
\ No newline at end of file diff --git a/code/modules/unit_tests/operating_table.html b/code/modules/unit_tests/operating_table.html new file mode 100644 index 0000000000000..64767325bbf2d --- /dev/null +++ b/code/modules/unit_tests/operating_table.html @@ -0,0 +1,3 @@ +code/modules/unit_tests/operating_table.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/operating_table.dm

/datum/unit_test/operating_tableMake a mob hop on an optable, rest, get up, rest again, and then move to another tile. +While the mob is still an active patient, move another mob in too. +This is so the replacement code can kick in when the original mob is no longer valid.
\ No newline at end of file diff --git a/code/modules/unit_tests/orderable_items.html b/code/modules/unit_tests/orderable_items.html new file mode 100644 index 0000000000000..56ea73ee655e5 --- /dev/null +++ b/code/modules/unit_tests/orderable_items.html @@ -0,0 +1,3 @@ +code/modules/unit_tests/orderable_items.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/orderable_items.dm

/datum/unit_test/orderable_itemsMakes sure that no orderable items have dynamic descriptions, if they +don't explicitly set a description. +Also makes sure 2 orderable items don't sell the same thing.
\ No newline at end of file diff --git a/code/modules/unit_tests/organ_bodypart_shuffle.html b/code/modules/unit_tests/organ_bodypart_shuffle.html new file mode 100644 index 0000000000000..71f134e5a2f64 --- /dev/null +++ b/code/modules/unit_tests/organ_bodypart_shuffle.html @@ -0,0 +1 @@ +code/modules/unit_tests/organ_bodypart_shuffle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/organ_bodypart_shuffle.dm

/datum/unit_test/organ_bodypart_shuffleMoves organs in and out of bodyparts, and moves the bodyparts around to see if someone didn't fuck up their movement
\ No newline at end of file diff --git a/code/modules/unit_tests/organ_set_bonus.html b/code/modules/unit_tests/organ_set_bonus.html new file mode 100644 index 0000000000000..8a5fca98591ee --- /dev/null +++ b/code/modules/unit_tests/organ_set_bonus.html @@ -0,0 +1,4 @@ +code/modules/unit_tests/organ_set_bonus.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/organ_set_bonus.dm

/datum/unit_test/organ_set_bonus_idChecks that all "organ_set_bonus" status effects have unique "id" vars. +Required to ensure that the status effects are treated as "unique".
/datum/unit_test/organ_set_bonus_sanityChecks that all implantable DNA Infuser organs are set up correctly and without error. +Tests the "organ set bonus" Elements and Status Effects, which are for the DNA Infuser. +This test ensures that the "organ_set_bonus" status effects activate and deactivate when expected.
\ No newline at end of file diff --git a/code/modules/unit_tests/organs.html b/code/modules/unit_tests/organs.html new file mode 100644 index 0000000000000..ba4c091572d8c --- /dev/null +++ b/code/modules/unit_tests/organs.html @@ -0,0 +1,5 @@ +code/modules/unit_tests/organs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/organs.dm

/datum/unit_test/organ_sanityCheck organ insertion and removal, for all organ subtypes usable in-game. +Ensures algorithmic correctness of the "Insert()" and "Remove()" procs. +This test is especially useful because developers frequently override those.
/datum/unit_test/organ_damageTests organ damage cap. +Organ damage should never bypass the cap. +Every internal organ is tested.
\ No newline at end of file diff --git a/code/modules/unit_tests/orphaned_genturf.html b/code/modules/unit_tests/orphaned_genturf.html new file mode 100644 index 0000000000000..5a3ec8b32e277 --- /dev/null +++ b/code/modules/unit_tests/orphaned_genturf.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/orphaned_genturf.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/orphaned_genturf.dm

/datum/unit_test/orphaned_genturfEnsures we do not leave genturfs sitting around post work +They serve as notice to the mapper and have no functionality, but it's good to make note of it here
\ No newline at end of file diff --git a/code/modules/unit_tests/outfit_sanity.html b/code/modules/unit_tests/outfit_sanity.html new file mode 100644 index 0000000000000..5cf103b74f4ac --- /dev/null +++ b/code/modules/unit_tests/outfit_sanity.html @@ -0,0 +1 @@ +code/modules/unit_tests/outfit_sanity.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/outfit_sanity.dm

/datum/outfit/stacks_in_handsSee #66313 and #60901. outfit_sanity used to runtime whenever you had two mergable sheets in either hand. Previously, this only had a 3% chance of occuring. Now 100%.
/datum/outfit/duffel_useroutfit_sanity needs to cover insertions into duffelbags
/datum/outfit/stachel_userSatchels too
/datum/outfit/backpack_userAnd just in case we'll check backpacks
\ No newline at end of file diff --git a/code/modules/unit_tests/oxyloss_suffocation.html b/code/modules/unit_tests/oxyloss_suffocation.html new file mode 100644 index 0000000000000..7429e970c55cc --- /dev/null +++ b/code/modules/unit_tests/oxyloss_suffocation.html @@ -0,0 +1 @@ +code/modules/unit_tests/oxyloss_suffocation.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/oxyloss_suffocation.dm

/datum/unit_test/oxyloss_suffocationTest getting over a certain threshold of oxy damage results in KO
\ No newline at end of file diff --git a/code/modules/unit_tests/paintings.html b/code/modules/unit_tests/paintings.html new file mode 100644 index 0000000000000..57af57b659925 --- /dev/null +++ b/code/modules/unit_tests/paintings.html @@ -0,0 +1 @@ +code/modules/unit_tests/paintings.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/paintings.dm

/datum/unit_test/paintingsChecks that all kind of painting frames have a sprite for each canvas type in the game.
\ No newline at end of file diff --git a/code/modules/unit_tests/plane_double_transform.html b/code/modules/unit_tests/plane_double_transform.html new file mode 100644 index 0000000000000..35ade1d4f5e95 --- /dev/null +++ b/code/modules/unit_tests/plane_double_transform.html @@ -0,0 +1 @@ +code/modules/unit_tests/plane_double_transform.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/plane_double_transform.dm

/datum/unit_test/plane_double_transformEnsures plane masters that get shrunk by multiz NEVER render into each other
\ No newline at end of file diff --git a/code/modules/unit_tests/plane_dupe_detector.html b/code/modules/unit_tests/plane_dupe_detector.html new file mode 100644 index 0000000000000..f57e5e8cbc21c --- /dev/null +++ b/code/modules/unit_tests/plane_dupe_detector.html @@ -0,0 +1 @@ +code/modules/unit_tests/plane_dupe_detector.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/plane_dupe_detector.dm

/datum/unit_test/plane_dupe_detectorChecks if we don't have two planes on the same layer
\ No newline at end of file diff --git a/code/modules/unit_tests/plane_sanity.html b/code/modules/unit_tests/plane_sanity.html new file mode 100644 index 0000000000000..1427d432454d6 --- /dev/null +++ b/code/modules/unit_tests/plane_sanity.html @@ -0,0 +1 @@ +code/modules/unit_tests/plane_sanity.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/plane_sanity.dm

/datum/unit_test/plane_layer_sanityEnsures we have no invalid plane/layer combos post init
\ No newline at end of file diff --git a/code/modules/unit_tests/preference_species.html b/code/modules/unit_tests/preference_species.html new file mode 100644 index 0000000000000..cc150937b1e95 --- /dev/null +++ b/code/modules/unit_tests/preference_species.html @@ -0,0 +1,3 @@ +code/modules/unit_tests/preference_species.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/preference_species.dm

/datum/unit_test/preference_speciesChecks that all enabled roundstart species +selectable within the preferences menu +have their info / page setup correctly.
\ No newline at end of file diff --git a/code/modules/unit_tests/preferences.html b/code/modules/unit_tests/preferences.html new file mode 100644 index 0000000000000..edfae9f5a9589 --- /dev/null +++ b/code/modules/unit_tests/preferences.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/preferences.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/preferences.dm

/datum/unit_test/preferences_implement_everythingRequires all preferences to implement required methods.
/datum/unit_test/preferences_valid_savefile_keyRequires all preferences to have a valid, unique savefile_identifier.
/datum/unit_test/preferences_valid_main_feature_nameRequires all main features have a main_feature_name
/datum/unit_test/preferences_should_generate_icons_sanityValidates that every choiced preference with should_generate_icons implements icon_for, +and that every one that doesn't, doesn't.
\ No newline at end of file diff --git a/code/modules/unit_tests/projectiles.html b/code/modules/unit_tests/projectiles.html new file mode 100644 index 0000000000000..d74aff3457e18 --- /dev/null +++ b/code/modules/unit_tests/projectiles.html @@ -0,0 +1 @@ +code/modules/unit_tests/projectiles.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/projectiles.dm

/datum/unit_test/projectile_movetypesTests all projectiles that none of them are phasing.
/datum/unit_test/gun_go_bangShoots a victim with a gun to ensure the gun properly loads and the victim take the correct amount of damage.
\ No newline at end of file diff --git a/code/modules/unit_tests/quirks.html b/code/modules/unit_tests/quirks.html new file mode 100644 index 0000000000000..87ed4f464cf28 --- /dev/null +++ b/code/modules/unit_tests/quirks.html @@ -0,0 +1 @@ +code/modules/unit_tests/quirks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/quirks.dm

/datum/unit_test/quirk_iconsEnsure every quirk has a unique icon
/datum/unit_test/blood_deficiency_mailEnsures the blood deficiency quirk updates its mail goodies correctly
\ No newline at end of file diff --git a/code/modules/unit_tests/range_return.html b/code/modules/unit_tests/range_return.html new file mode 100644 index 0000000000000..bbfdafd9e8ca4 --- /dev/null +++ b/code/modules/unit_tests/range_return.html @@ -0,0 +1,4 @@ +code/modules/unit_tests/range_return.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/range_return.dm

/datum/unit_test/range_returnThis tests for an unspecified bit of behavior we rely on in energy_ball.dm code +Essentially, as of the current byond version, range and view will return turfs in what looks "roughly" like a circle +So we can be guarenteed that if we find a turf, it will be the closest turf of that sort, or at least one of them +This code tests for that. If this ever fails, remove the logic fron energy_ball.dm, and test if spiral_turfs would be faster
\ No newline at end of file diff --git a/code/modules/unit_tests/reagent_container_defaults.html b/code/modules/unit_tests/reagent_container_defaults.html new file mode 100644 index 0000000000000..8270788400150 --- /dev/null +++ b/code/modules/unit_tests/reagent_container_defaults.html @@ -0,0 +1 @@ +code/modules/unit_tests/reagent_container_defaults.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/reagent_container_defaults.dm

/datum/unit_test/reagent_container_defaultsChecks if reagent container transfer amount defaults match with actual possible values
\ No newline at end of file diff --git a/code/modules/unit_tests/reagent_names.html b/code/modules/unit_tests/reagent_names.html new file mode 100644 index 0000000000000..c91db5aebd507 --- /dev/null +++ b/code/modules/unit_tests/reagent_names.html @@ -0,0 +1 @@ +code/modules/unit_tests/reagent_names.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/reagent_names.dm

/datum/unit_test/reagent_namesTest that all reagent names are different in order to prevent #65231 and tests that searching for that reagent by name gives the correct one
\ No newline at end of file diff --git a/code/modules/unit_tests/reagent_transfer.html b/code/modules/unit_tests/reagent_transfer.html new file mode 100644 index 0000000000000..e2c0a2fd2a283 --- /dev/null +++ b/code/modules/unit_tests/reagent_transfer.html @@ -0,0 +1 @@ +code/modules/unit_tests/reagent_transfer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/reagent_transfer.dm

/datum/unit_test/reagent_transferTests transferring reagents between two reagents datums.
\ No newline at end of file diff --git a/code/modules/unit_tests/required_map_items.html b/code/modules/unit_tests/required_map_items.html new file mode 100644 index 0000000000000..78b1d43e51732 --- /dev/null +++ b/code/modules/unit_tests/required_map_items.html @@ -0,0 +1 @@ +code/modules/unit_tests/required_map_items.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/required_map_items.dm

/datum/unit_test/required_map_itemsTests that all expected items are mapped in roundstart.
/datum/required_itemDatum for tracking required map items
\ No newline at end of file diff --git a/code/modules/unit_tests/say.html b/code/modules/unit_tests/say.html new file mode 100644 index 0000000000000..117e3c3d0e0a6 --- /dev/null +++ b/code/modules/unit_tests/say.html @@ -0,0 +1 @@ +code/modules/unit_tests/say.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/say.dm

/datum/unit_test/get_message_modsTest to verify message mods are parsed correctly
/datum/unit_test/speech_modifiersTest to ensure native tongue languages properly impact speech
/datum/unit_test/say_signalTest to verify COMSIG_MOB_SAY is sent the exact same list as the message args, as they're operated on
/datum/unit_test/translate_languageThis unit test translates a string from one language to another depending on if the person can understand the language
/datum/unit_test/speechThis runs some simple speech tests on a speaker and listener and determines if a person can hear whispering or speaking as they are moved a distance away
\ No newline at end of file diff --git a/code/modules/unit_tests/screenshot_antag_icons.html b/code/modules/unit_tests/screenshot_antag_icons.html new file mode 100644 index 0000000000000..9fac0f10bed77 --- /dev/null +++ b/code/modules/unit_tests/screenshot_antag_icons.html @@ -0,0 +1 @@ +code/modules/unit_tests/screenshot_antag_icons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/screenshot_antag_icons.dm

/datum/unit_test/screenshot_antag_iconsA screenshot test to make sure every antag icon in the preferences menu is consistent
\ No newline at end of file diff --git a/code/modules/unit_tests/screenshot_basic.html b/code/modules/unit_tests/screenshot_basic.html new file mode 100644 index 0000000000000..8421850913342 --- /dev/null +++ b/code/modules/unit_tests/screenshot_basic.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/screenshot_basic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/screenshot_basic.dm

/datum/unit_test/screenshot_basicThis is an example for screenshot tests, and a meta-test to make sure they work in the success case. +It creates a picture that is red on the left side, green on the other.
\ No newline at end of file diff --git a/code/modules/unit_tests/screenshot_dynamic_human_icons.html b/code/modules/unit_tests/screenshot_dynamic_human_icons.html new file mode 100644 index 0000000000000..119dad5712336 --- /dev/null +++ b/code/modules/unit_tests/screenshot_dynamic_human_icons.html @@ -0,0 +1 @@ +code/modules/unit_tests/screenshot_dynamic_human_icons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/screenshot_dynamic_human_icons.dm

/datum/unit_test/screenshot_dynamic_human_iconsA screenshot test for specific dynamic human icons
\ No newline at end of file diff --git a/code/modules/unit_tests/screenshot_high_luminosity_eyes.html b/code/modules/unit_tests/screenshot_high_luminosity_eyes.html new file mode 100644 index 0000000000000..2d3c64db2e156 --- /dev/null +++ b/code/modules/unit_tests/screenshot_high_luminosity_eyes.html @@ -0,0 +1 @@ +code/modules/unit_tests/screenshot_high_luminosity_eyes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/screenshot_high_luminosity_eyes.dm

/datum/unit_test/screenshot_high_luminosity_eyesTests to make sure no punks have broken high luminosity eyes
\ No newline at end of file diff --git a/code/modules/unit_tests/screenshot_humanoids.html b/code/modules/unit_tests/screenshot_humanoids.html new file mode 100644 index 0000000000000..c81e306d20ead --- /dev/null +++ b/code/modules/unit_tests/screenshot_humanoids.html @@ -0,0 +1 @@ +code/modules/unit_tests/screenshot_humanoids.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/screenshot_humanoids.dm

/datum/unit_test/screenshot_humanoidsA screenshot test for every humanoid species with a handful of jobs.
\ No newline at end of file diff --git a/code/modules/unit_tests/screenshot_husk.html b/code/modules/unit_tests/screenshot_husk.html new file mode 100644 index 0000000000000..3bd0eb3035f44 --- /dev/null +++ b/code/modules/unit_tests/screenshot_husk.html @@ -0,0 +1 @@ +code/modules/unit_tests/screenshot_husk.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/screenshot_husk.dm

/datum/unit_test/screenshot_huskA screenshot test for husks
\ No newline at end of file diff --git a/code/modules/unit_tests/screenshot_saturnx.html b/code/modules/unit_tests/screenshot_saturnx.html new file mode 100644 index 0000000000000..90b41ce5fd58d --- /dev/null +++ b/code/modules/unit_tests/screenshot_saturnx.html @@ -0,0 +1 @@ +code/modules/unit_tests/screenshot_saturnx.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/screenshot_saturnx.dm

/datum/unit_test/screenshot_saturnxA screenshot test for making sure invisible limbs function, keeping them clothed so we know they're there.
\ No newline at end of file diff --git a/code/modules/unit_tests/screenshots.html b/code/modules/unit_tests/screenshots.html new file mode 100644 index 0000000000000..7610c95ba21ab --- /dev/null +++ b/code/modules/unit_tests/screenshots.html @@ -0,0 +1,13 @@ +code/modules/unit_tests/screenshots/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/screenshots/README.md

This folder contains the results for screenshot tests. Screenshot tests make sure an icon looks the same as it did before a change to prevent regressions.

+

You can create one by simply using the test_screenshot proc.

+

This example test screenshots a red image and keeps it.

+
/// This is an example for screenshot tests, and a meta-test to make sure they work in the success case.
+/// It creates a picture that is red on the left side, green on the other.
+/datum/unit_test/screenshot_basic
+
+/datum/unit_test/screenshot_basic/Run()
+	var/icon/red = icon('icons/blanks/32x32.dmi', "nothing")
+	red.Blend(COLOR_RED, ICON_OVERLAY)
+	test_screenshot("red", red)
+
+

Unfortunately, screenshot tests are sanest to test through a pull request directly, due to limitations with both DM and GitHub.

\ No newline at end of file diff --git a/code/modules/unit_tests/security_levels.html b/code/modules/unit_tests/security_levels.html new file mode 100644 index 0000000000000..61ea7246cacf7 --- /dev/null +++ b/code/modules/unit_tests/security_levels.html @@ -0,0 +1 @@ +code/modules/unit_tests/security_levels.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/security_levels.dm

/datum/unit_test/security_levelsSecurity Level Unit Test
\ No newline at end of file diff --git a/code/modules/unit_tests/security_officer_distribution.html b/code/modules/unit_tests/security_officer_distribution.html new file mode 100644 index 0000000000000..a452b8cdcda05 --- /dev/null +++ b/code/modules/unit_tests/security_officer_distribution.html @@ -0,0 +1 @@ +code/modules/unit_tests/security_officer_distribution.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/security_officer_distribution.dm

/datum/unit_test/security_officer_roundstart_distributionTest that security officers with specific distributions get their departments.
/datum/unit_test/security_officer_latejoin_distributionTest that latejoin security officers are put into the correct department
\ No newline at end of file diff --git a/code/modules/unit_tests/simple_animal_freeze.html b/code/modules/unit_tests/simple_animal_freeze.html new file mode 100644 index 0000000000000..63a5dece395e4 --- /dev/null +++ b/code/modules/unit_tests/simple_animal_freeze.html @@ -0,0 +1 @@ +code/modules/unit_tests/simple_animal_freeze.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/simple_animal_freeze.dm

/datum/unit_test/simple_animal_freezeTests that no new simple_animal subtypes are added.
\ No newline at end of file diff --git a/code/modules/unit_tests/slime_mood.html b/code/modules/unit_tests/slime_mood.html new file mode 100644 index 0000000000000..80cb3771a755c --- /dev/null +++ b/code/modules/unit_tests/slime_mood.html @@ -0,0 +1 @@ +code/modules/unit_tests/slime_mood.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/slime_mood.dm

/datum/unit_test/slime_moodUnit test that tests all types of moods for slimes, to make sure they all have proper icons, excluding moods that intentionally don't have an icon.
\ No newline at end of file diff --git a/code/modules/unit_tests/slips.html b/code/modules/unit_tests/slips.html new file mode 100644 index 0000000000000..22be5bc6146e0 --- /dev/null +++ b/code/modules/unit_tests/slips.html @@ -0,0 +1 @@ +code/modules/unit_tests/slips.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/slips.dm

/datum/unit_test/slipsUnit test that forces various slips on a mob and checks return values and mob state to see if the slip has likely been successful.
\ No newline at end of file diff --git a/code/modules/unit_tests/spawn_humans.html b/code/modules/unit_tests/spawn_humans.html new file mode 100644 index 0000000000000..937b25254501f --- /dev/null +++ b/code/modules/unit_tests/spawn_humans.html @@ -0,0 +1 @@ +code/modules/unit_tests/spawn_humans.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/spawn_humans.dm

/datum/unit_test/human_default_traitsTests /mob/living/carbon/human/proc/setup_organless_effects, specifically that they aren't applied when init is done
\ No newline at end of file diff --git a/code/modules/unit_tests/spawn_mobs.html b/code/modules/unit_tests/spawn_mobs.html new file mode 100644 index 0000000000000..9eb7802467785 --- /dev/null +++ b/code/modules/unit_tests/spawn_mobs.html @@ -0,0 +1 @@ +code/modules/unit_tests/spawn_mobs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/spawn_mobs.dm

/datum/unit_test/spawn_mobsUnit test that spawns all mobs that can be spawned by golden slimes
\ No newline at end of file diff --git a/code/modules/unit_tests/species_change_clothing.html b/code/modules/unit_tests/species_change_clothing.html new file mode 100644 index 0000000000000..a82559818810f --- /dev/null +++ b/code/modules/unit_tests/species_change_clothing.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/species_change_clothing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/species_change_clothing.dm

/datum/unit_test/species_change_clothingGives a Human lizard-incompatible shoes, then changes their species over to see if they drop the now incompatible shoes, testing if Digitigrade feet works. +Gives a Monkey a collar, then changes their species to Human to see if item's restrictions works on species change.
/datum/unit_test/species_change_held_itemsGives a Human items in both hands, then swaps them to be another species. Held items should remain.
\ No newline at end of file diff --git a/code/modules/unit_tests/species_change_organs.html b/code/modules/unit_tests/species_change_organs.html new file mode 100644 index 0000000000000..3007c05d800c4 --- /dev/null +++ b/code/modules/unit_tests/species_change_organs.html @@ -0,0 +1,3 @@ +code/modules/unit_tests/species_change_organs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/species_change_organs.dm

/datum/unit_test/species_change_organsUnit test to ensure that, when a mob changes species, +certain aspects are carried over between their old and new set of organs +(brain traumas, cybernetics, and organ damage)
\ No newline at end of file diff --git a/code/modules/unit_tests/species_unique_id.html b/code/modules/unit_tests/species_unique_id.html new file mode 100644 index 0000000000000..8124698f56c70 --- /dev/null +++ b/code/modules/unit_tests/species_unique_id.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/species_unique_id.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/species_unique_id.dm

/datum/unit_test/species_unique_idEvery species should use a species ID unique to it and it alone. This test runs through every subtype of /datum/species, and checks for a species ID. +Every ID is written to a list, gathered_species_ids, and if a previously written ID is written again, this test will fail.
\ No newline at end of file diff --git a/code/modules/unit_tests/spell_invocations.html b/code/modules/unit_tests/spell_invocations.html new file mode 100644 index 0000000000000..3cf2df7f1924b --- /dev/null +++ b/code/modules/unit_tests/spell_invocations.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/spell_invocations.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/spell_invocations.dm

/datum/unit_test/spell_invocationsValidates that all spells have a correct +invocation type and invocation setup.
\ No newline at end of file diff --git a/code/modules/unit_tests/spell_jaunt.html b/code/modules/unit_tests/spell_jaunt.html new file mode 100644 index 0000000000000..b265fd245ee03 --- /dev/null +++ b/code/modules/unit_tests/spell_jaunt.html @@ -0,0 +1 @@ +code/modules/unit_tests/spell_jaunt.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/spell_jaunt.dm

/datum/unit_test/shadow_jauntTests Shadow Walk can be entered and exited
\ No newline at end of file diff --git a/code/modules/unit_tests/spell_mindswap.html b/code/modules/unit_tests/spell_mindswap.html new file mode 100644 index 0000000000000..f7843f644f7f4 --- /dev/null +++ b/code/modules/unit_tests/spell_mindswap.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/spell_mindswap.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/spell_mindswap.dm

/datum/unit_test/mind_swap_spellValidates that the mind swap spell +properly transfers minds between a caster and a target.
\ No newline at end of file diff --git a/code/modules/unit_tests/spell_names.html b/code/modules/unit_tests/spell_names.html new file mode 100644 index 0000000000000..8767e366e4b43 --- /dev/null +++ b/code/modules/unit_tests/spell_names.html @@ -0,0 +1 @@ +code/modules/unit_tests/spell_names.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/spell_names.dm

/datum/unit_test/spell_namesValidates that all spells have a different name.
\ No newline at end of file diff --git a/code/modules/unit_tests/spell_shapeshift.html b/code/modules/unit_tests/spell_shapeshift.html new file mode 100644 index 0000000000000..e20b5553857da --- /dev/null +++ b/code/modules/unit_tests/spell_shapeshift.html @@ -0,0 +1 @@ +code/modules/unit_tests/spell_shapeshift.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/spell_shapeshift.dm

/datum/unit_test/shapeshift_spell_validityValidates that all shapeshift type spells have a valid possible_shapes setup.
/datum/unit_test/shapeshift_spellValidates that shapeshift spells put the mob in another mob, as they should.
/datum/unit_test/shapeshift_holoparasitesValidates that shapeshifts function properly with holoparasites.
/datum/unit_test/shapeshift_healthValidates that shapeshifting carries health or death between forms properly, if it is supposed to
\ No newline at end of file diff --git a/code/modules/unit_tests/spell_timestop.html b/code/modules/unit_tests/spell_timestop.html new file mode 100644 index 0000000000000..af5ec931e82ce --- /dev/null +++ b/code/modules/unit_tests/spell_timestop.html @@ -0,0 +1 @@ +code/modules/unit_tests/spell_timestop.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/spell_timestop.dm

/datum/unit_test/timestopRegression test for timestop being a 3x3 instead of a 5x5
\ No newline at end of file diff --git a/code/modules/unit_tests/spies.html b/code/modules/unit_tests/spies.html new file mode 100644 index 0000000000000..d69861e349823 --- /dev/null +++ b/code/modules/unit_tests/spies.html @@ -0,0 +1 @@ +code/modules/unit_tests/spies.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/spies.dm

/datum/unit_test/spy_bountyTests spy bounty setup
\ No newline at end of file diff --git a/code/modules/unit_tests/spritesheets.html b/code/modules/unit_tests/spritesheets.html new file mode 100644 index 0000000000000..46cdcfc78a391 --- /dev/null +++ b/code/modules/unit_tests/spritesheets.html @@ -0,0 +1 @@ +code/modules/unit_tests/spritesheets.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/spritesheets.dm

/datum/unit_test/spritesheetsChecks if spritesheet assets contain icon states with invalid names
\ No newline at end of file diff --git a/code/modules/unit_tests/stack_singular_name.html b/code/modules/unit_tests/stack_singular_name.html new file mode 100644 index 0000000000000..5f59f01e3728b --- /dev/null +++ b/code/modules/unit_tests/stack_singular_name.html @@ -0,0 +1,3 @@ +code/modules/unit_tests/stack_singular_name.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/stack_singular_name.dm

/datum/unit_test/stack_singular_nameGoes through every subtype of /obj/item/stack to check for a singular name, var/singular_name. +Everything within the blacklist does not need to be tested because it exists to be overridden. +This test will fail if a subtype of /obj/item/stack is missing a singular name.
\ No newline at end of file diff --git a/code/modules/unit_tests/status_effect_ticks.html b/code/modules/unit_tests/status_effect_ticks.html new file mode 100644 index 0000000000000..c01f407653593 --- /dev/null +++ b/code/modules/unit_tests/status_effect_ticks.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/status_effect_ticks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/status_effect_ticks.dm

/datum/unit_test/status_effect_ticksThis test spawns various station traits and looks through them to see if there's any errors. +Validates status effect tick interval setup
\ No newline at end of file diff --git a/code/modules/unit_tests/storage.html b/code/modules/unit_tests/storage.html new file mode 100644 index 0000000000000..e38688ed42cd5 --- /dev/null +++ b/code/modules/unit_tests/storage.html @@ -0,0 +1 @@ +code/modules/unit_tests/storage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/storage.dm

/datum/unit_test/storageTest storage datums
\ No newline at end of file diff --git a/code/modules/unit_tests/strange_reagent.html b/code/modules/unit_tests/strange_reagent.html new file mode 100644 index 0000000000000..d5934b210641b --- /dev/null +++ b/code/modules/unit_tests/strange_reagent.html @@ -0,0 +1 @@ +code/modules/unit_tests/strange_reagent.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/strange_reagent.dm

/datum/unit_test/strange_reagentChecks to ensure strange reagent works as expected
\ No newline at end of file diff --git a/code/modules/unit_tests/stuns.html b/code/modules/unit_tests/stuns.html new file mode 100644 index 0000000000000..94d33340d64e8 --- /dev/null +++ b/code/modules/unit_tests/stuns.html @@ -0,0 +1 @@ +code/modules/unit_tests/stuns.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/stuns.dm

/datum/unit_test/stunTests stun and the canstun flag
/datum/unit_test/knockdownTests knockdown and the canknockdown flag
/datum/unit_test/paralyzeTests paralyze and stuns that have two flags checked (in this case, canstun and canknockdown)
/datum/unit_test/unconsciousnessTests unconsciousness and the canunconscious flag
/datum/unit_test/stun_absorbTests for stun absorption
\ No newline at end of file diff --git a/code/modules/unit_tests/subsystem_init.html b/code/modules/unit_tests/subsystem_init.html new file mode 100644 index 0000000000000..0ffb8fb627ea5 --- /dev/null +++ b/code/modules/unit_tests/subsystem_init.html @@ -0,0 +1 @@ +code/modules/unit_tests/subsystem_init.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/subsystem_init.dm

/datum/unit_test/subsystem_initTests that all subsystems that need to properly initialize.
\ No newline at end of file diff --git a/code/modules/unit_tests/suit_storage_icons.html b/code/modules/unit_tests/suit_storage_icons.html new file mode 100644 index 0000000000000..1e2341a8e313d --- /dev/null +++ b/code/modules/unit_tests/suit_storage_icons.html @@ -0,0 +1 @@ +code/modules/unit_tests/suit_storage_icons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/suit_storage_icons.dm

/datum/unit_test/suit_storage_iconsMakes sure suit slot items aren't using CS:S fallbacks.
\ No newline at end of file diff --git a/code/modules/unit_tests/surgeries.html b/code/modules/unit_tests/surgeries.html new file mode 100644 index 0000000000000..61e6ba069f702 --- /dev/null +++ b/code/modules/unit_tests/surgeries.html @@ -0,0 +1 @@ +code/modules/unit_tests/surgeries.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/surgeries.dm

/datum/unit_test/start_tend_woundsEnsures that the tend wounds surgery can be started
\ No newline at end of file diff --git a/code/modules/unit_tests/tail_wag.html b/code/modules/unit_tests/tail_wag.html new file mode 100644 index 0000000000000..3d97b3058055e --- /dev/null +++ b/code/modules/unit_tests/tail_wag.html @@ -0,0 +1 @@ +code/modules/unit_tests/tail_wag.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/tail_wag.dm

/datum/unit_test/tail_wagTests to make sure tail wagging behaves as expected
\ No newline at end of file diff --git a/code/modules/unit_tests/tgui_create_message.html b/code/modules/unit_tests/tgui_create_message.html new file mode 100644 index 0000000000000..267ab94ada513 --- /dev/null +++ b/code/modules/unit_tests/tgui_create_message.html @@ -0,0 +1 @@ +code/modules/unit_tests/tgui_create_message.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/tgui_create_message.dm

/datum/unit_test/tgui_create_messageTest that TGUI_CREATE_MESSAGE is correctly implemented
\ No newline at end of file diff --git a/code/modules/unit_tests/trait_addition_and_removal.html b/code/modules/unit_tests/trait_addition_and_removal.html new file mode 100644 index 0000000000000..fa04532a5a73c --- /dev/null +++ b/code/modules/unit_tests/trait_addition_and_removal.html @@ -0,0 +1 @@ +code/modules/unit_tests/trait_addition_and_removal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/trait_addition_and_removal.dm

/datum/unit_test/trait_addition_and_removalSimple Unit Test to ensure multiple methods of adding/removing a trait work as intended.
\ No newline at end of file diff --git a/code/modules/unit_tests/traitor_mail_content_check.html b/code/modules/unit_tests/traitor_mail_content_check.html new file mode 100644 index 0000000000000..17768bb6cb80f --- /dev/null +++ b/code/modules/unit_tests/traitor_mail_content_check.html @@ -0,0 +1 @@ +code/modules/unit_tests/traitor_mail_content_check.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/traitor_mail_content_check.dm

/datum/unit_test/traitor_mail_content_checkMakes sure that fake mail doesn't get random goods.
\ No newline at end of file diff --git a/code/modules/unit_tests/trauma_granting.html b/code/modules/unit_tests/trauma_granting.html new file mode 100644 index 0000000000000..a803d6d65d057 --- /dev/null +++ b/code/modules/unit_tests/trauma_granting.html @@ -0,0 +1 @@ +code/modules/unit_tests/trauma_granting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/trauma_granting.dm

/datum/unit_test/trauma_grantingTests that brain traumas can be granted and removed properly.
\ No newline at end of file diff --git a/code/modules/unit_tests/turf_icons.html b/code/modules/unit_tests/turf_icons.html new file mode 100644 index 0000000000000..f95143f738cdb --- /dev/null +++ b/code/modules/unit_tests/turf_icons.html @@ -0,0 +1 @@ +code/modules/unit_tests/turf_icons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/turf_icons.dm

/datum/unit_test/turf_iconsMakes sure turf icons actually exist. :)
\ No newline at end of file diff --git a/code/modules/unit_tests/tutorial_sanity.html b/code/modules/unit_tests/tutorial_sanity.html new file mode 100644 index 0000000000000..71ac5e76d79f3 --- /dev/null +++ b/code/modules/unit_tests/tutorial_sanity.html @@ -0,0 +1 @@ +code/modules/unit_tests/tutorial_sanity.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/tutorial_sanity.dm

/datum/unit_test/tutorial_sanityVerifies that every tutorial has properly set variables
\ No newline at end of file diff --git a/code/modules/unit_tests/verify_config_tags.html b/code/modules/unit_tests/verify_config_tags.html new file mode 100644 index 0000000000000..592fbaa367f4e --- /dev/null +++ b/code/modules/unit_tests/verify_config_tags.html @@ -0,0 +1 @@ +code/modules/unit_tests/verify_config_tags.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/verify_config_tags.dm

/datum/unit_test/verify_config_tagsUnit Test to ensure that all config tags that we associate to all jobs in SSjob.joinable_occupations are valid.
\ No newline at end of file diff --git a/code/modules/unit_tests/verify_emoji_names.html b/code/modules/unit_tests/verify_emoji_names.html new file mode 100644 index 0000000000000..a551ecced2658 --- /dev/null +++ b/code/modules/unit_tests/verify_emoji_names.html @@ -0,0 +1,2 @@ +code/modules/unit_tests/verify_emoji_names.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/verify_emoji_names.dm

/datum/unit_test/verify_emoji_namesApparently, spritesheets (or maybe how the CSS backend works) do not respond well to icon_state names that are just pure numbers (which was a behavior in emoji.dmi). +In case we add more emoji, let's just make sure that we don't have any pure numbers in the emoji.dmi file if we ever add more.
\ No newline at end of file diff --git a/code/modules/unit_tests/weird_food.html b/code/modules/unit_tests/weird_food.html new file mode 100644 index 0000000000000..f5ee8a4fd122c --- /dev/null +++ b/code/modules/unit_tests/weird_food.html @@ -0,0 +1 @@ +code/modules/unit_tests/weird_food.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/weird_food.dm

/datum/unit_test/moth_foodUnit test to ensure that moths can eat t-shirts successfully
/datum/unit_test/golem_foodUnit test to ensure that golems can eat rocks successfully
\ No newline at end of file diff --git a/code/modules/unit_tests/wizard_loadout.html b/code/modules/unit_tests/wizard_loadout.html new file mode 100644 index 0000000000000..da552f2460ece --- /dev/null +++ b/code/modules/unit_tests/wizard_loadout.html @@ -0,0 +1 @@ +code/modules/unit_tests/wizard_loadout.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/wizard_loadout.dm

/datum/unit_test/wizard_loadoutTest loadouts for crashes, runtimes, stack traces and infinite loops. No ASSERTs necessary.
\ No newline at end of file diff --git a/code/modules/unit_tests/worn_icons.html b/code/modules/unit_tests/worn_icons.html new file mode 100644 index 0000000000000..396ecb058cbb2 --- /dev/null +++ b/code/modules/unit_tests/worn_icons.html @@ -0,0 +1 @@ +code/modules/unit_tests/worn_icons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/worn_icons.dm

/datum/unit_test/worn_iconsMakes sure suit slot items aren't using CS:S fallbacks.
\ No newline at end of file diff --git a/code/modules/unit_tests/~skyrat/automapper.html b/code/modules/unit_tests/~skyrat/automapper.html new file mode 100644 index 0000000000000..ac4c4abf35dcd --- /dev/null +++ b/code/modules/unit_tests/~skyrat/automapper.html @@ -0,0 +1 @@ +code/modules/unit_tests/~skyrat/automapper.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/~skyrat/automapper.dm

/datum/unit_test/automapperChecks that all automapper TOML entries actually link to a map and that the config exists.
/datum/unit_test/area_spawnThis is like /datum/unit_test/log_mapping and tests if the integration with the current map failed.
\ No newline at end of file diff --git a/code/modules/unit_tests/~skyrat/opposing_force.html b/code/modules/unit_tests/~skyrat/opposing_force.html new file mode 100644 index 0000000000000..0ee955c077069 --- /dev/null +++ b/code/modules/unit_tests/~skyrat/opposing_force.html @@ -0,0 +1 @@ +code/modules/unit_tests/~skyrat/opposing_force.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/~skyrat/opposing_force.dm

/datum/unit_test/opfor_itemsChecks that all OPFOR items have an item_type associated with them
\ No newline at end of file diff --git a/code/modules/unit_tests/~splurt/underwear_items.html b/code/modules/unit_tests/~splurt/underwear_items.html new file mode 100644 index 0000000000000..1e5c3beca47cf --- /dev/null +++ b/code/modules/unit_tests/~splurt/underwear_items.html @@ -0,0 +1 @@ +code/modules/unit_tests/~splurt/underwear_items.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/unit_tests/~splurt/underwear_items.dm

/datum/unit_test/underwear_itemsThis unit test tests underwear items in the game, and makes sure each legacy sprite item corresponds to an underwear item.
\ No newline at end of file diff --git a/code/modules/uplink/uplink_devices.html b/code/modules/uplink/uplink_devices.html new file mode 100644 index 0000000000000..0117be41a8791 --- /dev/null +++ b/code/modules/uplink/uplink_devices.html @@ -0,0 +1 @@ +code/modules/uplink/uplink_devices.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/uplink/uplink_devices.dm

/obj/item/uplink/loneopA subtype used for lone ops, with some of the stuff they shouldn't/can't access removed from purchase.
\ No newline at end of file diff --git a/code/modules/uplink/uplink_items.html b/code/modules/uplink/uplink_items.html new file mode 100644 index 0000000000000..021d4541673c7 --- /dev/null +++ b/code/modules/uplink/uplink_items.html @@ -0,0 +1 @@ +code/modules/uplink/uplink_items.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/uplink/uplink_items.dm

/proc/create_uplink_salesSelects a set number of unique items from the uplink, and deducts a percentage discount from them
/datum/uplink_itemUplink Items
/datum/shared_uplink_stockCode that enables the ability to have limited stock that is shared by different items
\ No newline at end of file diff --git a/code/modules/vehicles/cars/speedwagon.html b/code/modules/vehicles/cars/speedwagon.html new file mode 100644 index 0000000000000..588389185f662 --- /dev/null +++ b/code/modules/vehicles/cars/speedwagon.html @@ -0,0 +1 @@ +code/modules/vehicles/cars/speedwagon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/cars/speedwagon.dm

/obj/vehicle/sealed/car/speedwagonBig 3x3 car only available to admins which can run people over
\ No newline at end of file diff --git a/code/modules/vehicles/cars/vim.html b/code/modules/vehicles/cars/vim.html new file mode 100644 index 0000000000000..27b8cb9681753 --- /dev/null +++ b/code/modules/vehicles/cars/vim.html @@ -0,0 +1 @@ +code/modules/vehicles/cars/vim.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/cars/vim.dm

/obj/vehicle/sealed/car/vim
\ No newline at end of file diff --git a/code/modules/vehicles/mecha/_mecha.html b/code/modules/vehicles/mecha/_mecha.html new file mode 100644 index 0000000000000..2a49711d02bbe --- /dev/null +++ b/code/modules/vehicles/mecha/_mecha.html @@ -0,0 +1 @@ +code/modules/vehicles/mecha/_mecha.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/mecha/_mecha.dm

/obj/vehicle/sealed/mechaWELCOME TO MECHA.DM, ENJOY YOUR STAY
\ No newline at end of file diff --git a/code/modules/vehicles/mecha/combat/durand.html b/code/modules/vehicles/mecha/combat/durand.html new file mode 100644 index 0000000000000..8677c564f4c26 --- /dev/null +++ b/code/modules/vehicles/mecha/combat/durand.html @@ -0,0 +1,6 @@ +code/modules/vehicles/mecha/combat/durand.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/mecha/combat/durand.dm

/obj/durand_shieldShield processing +*An object to take the hit for us when using the Durand's defense mode. +It is spawned in during the durand's initilization, and always stays on the same tile. +Normally invisible, until defense mode is actvated. When the durand detects an attack that should be blocked, the +attack is passed to the shield. The shield takes the damage, uses it to calculate charge cost, and then sets its +own integrity back to max. Shield is automatically dropped if we run out of power or the user gets out.
\ No newline at end of file diff --git a/code/modules/vehicles/mecha/combat/savannah_ivanov.html b/code/modules/vehicles/mecha/combat/savannah_ivanov.html new file mode 100644 index 0000000000000..726e2e44a7c5d --- /dev/null +++ b/code/modules/vehicles/mecha/combat/savannah_ivanov.html @@ -0,0 +1 @@ +code/modules/vehicles/mecha/combat/savannah_ivanov.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/vehicles/mecha/combat/savannah_ivanov.dm

SKYFALL_SINGLE_CHARGE_TIMEhow much time between charge_level going up by 1
SKYFALL_CHARGELEVEL_LAUNCHenough charge level to take off, basically done charging
TOTAL_SKYFALL_LEAP_TIMEhow much time you're in the air
/obj/vehicle/sealed/mecha/savannah_ivanov
/datum/action/vehicle/sealed/mecha/skyfallSavannah Skyfall
/obj/effect/skyfall_landingzonea simple indicator of where the skyfall is going to land.

Define Details

SKYFALL_CHARGELEVEL_LAUNCH

enough charge level to take off, basically done charging

SKYFALL_SINGLE_CHARGE_TIME

how much time between charge_level going up by 1

TOTAL_SKYFALL_LEAP_TIME

how much time you're in the air

\ No newline at end of file diff --git a/code/modules/vehicles/mecha/equipment/mecha_equipment.html b/code/modules/vehicles/mecha/equipment/mecha_equipment.html new file mode 100644 index 0000000000000..9deae628adbbd --- /dev/null +++ b/code/modules/vehicles/mecha/equipment/mecha_equipment.html @@ -0,0 +1,2 @@ +code/modules/vehicles/mecha/equipment/mecha_equipment.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/mecha/equipment/mecha_equipment.dm

/obj/item/mecha_parts/mecha_equipmentMecha Equipment +All mech equippables are currently childs of this
\ No newline at end of file diff --git a/code/modules/vehicles/mecha/equipment/tools/air_tank.html b/code/modules/vehicles/mecha/equipment/tools/air_tank.html new file mode 100644 index 0000000000000..4ef0ac33f10a8 --- /dev/null +++ b/code/modules/vehicles/mecha/equipment/tools/air_tank.html @@ -0,0 +1 @@ +code/modules/vehicles/mecha/equipment/tools/air_tank.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/mecha/equipment/tools/air_tank.dm

/obj/item/mecha_parts/mecha_equipment/air_tankMech air tank module
\ No newline at end of file diff --git a/code/modules/vehicles/mecha/equipment/tools/medical_tools.html b/code/modules/vehicles/mecha/equipment/tools/medical_tools.html new file mode 100644 index 0000000000000..e56ab02854329 --- /dev/null +++ b/code/modules/vehicles/mecha/equipment/tools/medical_tools.html @@ -0,0 +1 @@ +code/modules/vehicles/mecha/equipment/tools/medical_tools.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/vehicles/mecha/equipment/tools/medical_tools.dm

FIRE_SYRINGE_MODESyringe Gun
/obj/item/mecha_parts/mecha_equipment/medical/mechmedbeamMedical Beam

Define Details

FIRE_SYRINGE_MODE

Syringe Gun

\ No newline at end of file diff --git a/code/modules/vehicles/mecha/equipment/tools/other_tools.html b/code/modules/vehicles/mecha/equipment/tools/other_tools.html new file mode 100644 index 0000000000000..db54bf54773a9 --- /dev/null +++ b/code/modules/vehicles/mecha/equipment/tools/other_tools.html @@ -0,0 +1 @@ +code/modules/vehicles/mecha/equipment/tools/other_tools.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/vehicles/mecha/equipment/tools/other_tools.dm

/obj/item/mecha_parts/mecha_equipment/teleporterTELEPORTER
/obj/item/mecha_parts/mecha_equipment/wormhole_generatorWORMHOLE GENERATOR
GRAVSLING_MODEGRAVITATIONAL CATAPULT
/obj/item/mecha_parts/mecha_equipment/armorARMOR BOOSTER MODULES
/obj/item/mecha_parts/mecha_equipment/repair_droidREPAIR DROID
/obj/item/mecha_parts/mecha_equipment/generatorGENERATOR
/obj/item/mecha_parts/mecha_equipment/thrustersTHRUSTERS
/obj/item/mecha_parts/mecha_equipment/concealed_weapon_bayCONCEALED WEAPON BAY

Define Details

GRAVSLING_MODE

GRAVITATIONAL CATAPULT

\ No newline at end of file diff --git a/code/modules/vehicles/mecha/equipment/tools/radio.html b/code/modules/vehicles/mecha/equipment/tools/radio.html new file mode 100644 index 0000000000000..a2de7375f70fd --- /dev/null +++ b/code/modules/vehicles/mecha/equipment/tools/radio.html @@ -0,0 +1 @@ +code/modules/vehicles/mecha/equipment/tools/radio.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/mecha/equipment/tools/radio.dm

/obj/item/mecha_parts/mecha_equipment/radioMech radio module
\ No newline at end of file diff --git a/code/modules/vehicles/mecha/equipment/weapons/mecha_ammo.html b/code/modules/vehicles/mecha/equipment/weapons/mecha_ammo.html new file mode 100644 index 0000000000000..fa224c6acc4f0 --- /dev/null +++ b/code/modules/vehicles/mecha/equipment/weapons/mecha_ammo.html @@ -0,0 +1,2 @@ +code/modules/vehicles/mecha/equipment/weapons/mecha_ammo.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/mecha/equipment/weapons/mecha_ammo.dm

/obj/item/mecha_ammo/missiles_srmMissile Ammo +SRM-8 Missile type - Used by Nuclear Operatives
/obj/item/mecha_ammo/missiles_pepPEP-6 Missile type - Used by Robotics
\ No newline at end of file diff --git a/code/modules/vehicles/mecha/equipment/weapons/weapons.html b/code/modules/vehicles/mecha/equipment/weapons/weapons.html new file mode 100644 index 0000000000000..57279aafb86b2 --- /dev/null +++ b/code/modules/vehicles/mecha/equipment/weapons/weapons.html @@ -0,0 +1,2 @@ +code/modules/vehicles/mecha/equipment/weapons/weapons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/mecha/equipment/weapons/weapons.dm

/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rackMissiles +SRM-8 Missile Rack - Used by Nuclear Operatives - Explodes when it hits anything
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/breachingPEP-6 Missile Rack - Used by Robotics - Explodes only when it hits dense objects like walls, borgs and mechs
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar/bombananadark honk weapons
/obj/item/mecha_parts/mecha_equipment/weapon/paddy_clawlong claw of the law
\ No newline at end of file diff --git a/code/modules/vehicles/mecha/mecha_actions.html b/code/modules/vehicles/mecha/mecha_actions.html new file mode 100644 index 0000000000000..8b69a50d65b2f --- /dev/null +++ b/code/modules/vehicles/mecha/mecha_actions.html @@ -0,0 +1 @@ +code/modules/vehicles/mecha/mecha_actions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/mecha/mecha_actions.dm

/datum/action/vehicle/sealed/mecha/swap_seatswap seats, for two person mecha
\ No newline at end of file diff --git a/code/modules/vehicles/mecha/mecha_construction_paths.html b/code/modules/vehicles/mecha/mecha_construction_paths.html new file mode 100644 index 0000000000000..bb4eea146a978 --- /dev/null +++ b/code/modules/vehicles/mecha/mecha_construction_paths.html @@ -0,0 +1 @@ +code/modules/vehicles/mecha/mecha_construction_paths.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/mecha/mecha_construction_paths.dm

/datum/component/construction/mechaConstruction datums
\ No newline at end of file diff --git a/code/modules/vehicles/mecha/mecha_damage.html b/code/modules/vehicles/mecha/mecha_damage.html new file mode 100644 index 0000000000000..012ac5300e988 --- /dev/null +++ b/code/modules/vehicles/mecha/mecha_damage.html @@ -0,0 +1,10 @@ +code/modules/vehicles/mecha/mecha_damage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Mecha defence explanation

Mechs focus is on a more heavy-but-slower damage approach +For this they have the following mechanics

+

Backstab

+

Basically the tldr is that mechs are less flexible so we encourage good positioning, pretty simple

+

Armor modules

+

Pretty simple, adds armor, you can choose against what

+

Internal damage

+

When taking damage will force you to take some time to repair, encourages improvising in a fight +Targeting different def zones will damage them to encurage a more strategic approach to fights +where they target the "dangerous" modules

\ No newline at end of file diff --git a/code/modules/vehicles/mecha/mecha_defense.html b/code/modules/vehicles/mecha/mecha_defense.html new file mode 100644 index 0000000000000..6ff93814f7f14 --- /dev/null +++ b/code/modules/vehicles/mecha/mecha_defense.html @@ -0,0 +1,10 @@ +code/modules/vehicles/mecha/mecha_defense.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Mecha defence explanation

Mechs focus is on a more heavy-but-slower damage approach +For this they have the following mechanics

+

Backstab

+

Basically the tldr is that mechs are less flexible so we encourage good positioning, pretty simple

+

Armor modules

+

Pretty simple, adds armor, you can choose against what

+

Internal damage

+

When taking damage will force you to take some time to repair, encourages improvising in a fight +Targeting different def zones will damage them to encurage a more strategic approach to fights +where they target the "dangerous" modules

\ No newline at end of file diff --git a/code/modules/vehicles/mecha/mecha_movement.html b/code/modules/vehicles/mecha/mecha_movement.html new file mode 100644 index 0000000000000..48b76844483f1 --- /dev/null +++ b/code/modules/vehicles/mecha/mecha_movement.html @@ -0,0 +1 @@ +code/modules/vehicles/mecha/mecha_movement.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/vehicles/mecha/mecha_movement.dm

MECH_CAMERA_BUFFERThe static update delay on movement of the camera in a mech we use

Define Details

MECH_CAMERA_BUFFER

The static update delay on movement of the camera in a mech we use

\ No newline at end of file diff --git a/code/modules/vehicles/mecha/mecha_parts.html b/code/modules/vehicles/mecha/mecha_parts.html new file mode 100644 index 0000000000000..996cfb2728207 --- /dev/null +++ b/code/modules/vehicles/mecha/mecha_parts.html @@ -0,0 +1 @@ +code/modules/vehicles/mecha/mecha_parts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/mecha/mecha_parts.dm

/obj/item/mecha_partsMecha Parts
/obj/item/mecha_parts/chassis/ripleyRipley
/obj/item/mecha_parts/chassis/odysseusOdysseus
/obj/item/mecha_parts/chassis/gygaxGygax
/obj/item/mecha_parts/chassis/durandDurand
/obj/item/mecha_parts/chassis/clarkeClarke
/obj/item/mecha_parts/chassis/honkerHONK
/obj/item/mecha_parts/chassis/phazonPhazon
/obj/item/circuitboard/mechaCircuitboards
\ No newline at end of file diff --git a/code/modules/vehicles/mecha/mecha_wreckage.html b/code/modules/vehicles/mecha/mecha_wreckage.html new file mode 100644 index 0000000000000..cef591cb4d6a5 --- /dev/null +++ b/code/modules/vehicles/mecha/mecha_wreckage.html @@ -0,0 +1 @@ +code/modules/vehicles/mecha/mecha_wreckage.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/mecha/mecha_wreckage.dm

/obj/structure/mecha_wreckageMecha wreckage
\ No newline at end of file diff --git a/code/modules/vehicles/mecha/working/clarke.html b/code/modules/vehicles/mecha/working/clarke.html new file mode 100644 index 0000000000000..bd58b68928675 --- /dev/null +++ b/code/modules/vehicles/mecha/working/clarke.html @@ -0,0 +1 @@ +code/modules/vehicles/mecha/working/clarke.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/mecha/working/clarke.dm

/obj/vehicle/sealed/mecha/clarkeLavaproof, fireproof, fast mech with low armor and higher energy consumption, cannot strafe and has an internal ore box.
/obj/item/mecha_parts/mecha_equipment/orebox_managerSpecial equipment for the Clarke mech, handles moving ore without giving the mech a hydraulic clamp and cargo compartment.
\ No newline at end of file diff --git a/code/modules/vehicles/motorized_wheelchair.html b/code/modules/vehicles/motorized_wheelchair.html new file mode 100644 index 0000000000000..51a993aabb923 --- /dev/null +++ b/code/modules/vehicles/motorized_wheelchair.html @@ -0,0 +1 @@ +code/modules/vehicles/motorized_wheelchair.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/motorized_wheelchair.dm

/obj/vehicle/ridden/wheelchair/motorized/improvedVersion with slightly better components. Used by deathmatches.
\ No newline at end of file diff --git a/code/modules/vehicles/pimpin_ride.html b/code/modules/vehicles/pimpin_ride.html new file mode 100644 index 0000000000000..e59494e987983 --- /dev/null +++ b/code/modules/vehicles/pimpin_ride.html @@ -0,0 +1 @@ +code/modules/vehicles/pimpin_ride.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/pimpin_ride.dm

/obj/vehicle/ridden/janicart
/obj/item/janicart_upgradeFunctional upgrades that can be installed into a janicart.
\ No newline at end of file diff --git a/code/modules/vehicles/vehicle_actions.html b/code/modules/vehicles/vehicle_actions.html new file mode 100644 index 0000000000000..c5563c74d4ba5 --- /dev/null +++ b/code/modules/vehicles/vehicle_actions.html @@ -0,0 +1 @@ +code/modules/vehicles/vehicle_actions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/vehicle_actions.dm

/datum/action/vehicleACTION DATUMS
\ No newline at end of file diff --git a/code/modules/vehicles/wheelchair.html b/code/modules/vehicles/wheelchair.html new file mode 100644 index 0000000000000..72c8ad2fe2ed1 --- /dev/null +++ b/code/modules/vehicles/wheelchair.html @@ -0,0 +1 @@ +code/modules/vehicles/wheelchair.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vehicles/wheelchair.dm

/obj/vehicle/ridden/wheelchair/goldA reward item for obtaining 5K hardcore random points. Do not use for anything else
/obj/item/wheelchair/goldA reward item for obtaining 5K hardcore random points. Do not use for anything else
\ No newline at end of file diff --git a/code/modules/vending/_vending.html b/code/modules/vending/_vending.html new file mode 100644 index 0000000000000..0ca289438bf8f --- /dev/null +++ b/code/modules/vending/_vending.html @@ -0,0 +1 @@ +code/modules/vending/_vending.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/vending/_vending.dm

MAX_VENDING_INPUT_AMOUNTMaximum amount of items in a storage bag that we're transferring items to the vendor from.
/datum/data/vending_productA datum that represents a product that is vendable
/obj/machinery/vendingCaptalism in the year 2525, everything in a vending machine, even love

Define Details

MAX_VENDING_INPUT_AMOUNT

Maximum amount of items in a storage bag that we're transferring items to the vendor from.

\ No newline at end of file diff --git a/code/modules/vending/hotdog.html b/code/modules/vending/hotdog.html new file mode 100644 index 0000000000000..6ac26f4f4f100 --- /dev/null +++ b/code/modules/vending/hotdog.html @@ -0,0 +1 @@ +code/modules/vending/hotdog.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/vending/hotdog.dm

/obj/machinery/vending/hotdogA special hotdog vending machine found in the cafeteria at the museum away mission, or during the hotdog holiday.
\ No newline at end of file diff --git a/code/modules/visuals/render_steps.html b/code/modules/visuals/render_steps.html new file mode 100644 index 0000000000000..fe938e98345f2 --- /dev/null +++ b/code/modules/visuals/render_steps.html @@ -0,0 +1,4 @@ +code/modules/visuals/render_steps.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/visuals/render_steps.dm

/atom/movable/render_stepInternal atom that uses render relays to apply "appearance things" to a render source +Branch, subtypes have behavior
/atom/movable/render_step/colorRender step that modfies an atom's color +Useful for creating coherent emissive blockers out of things like glass floors by lowering alpha statically using matrixes +Other stuff too I'm sure
/atom/movable/render_step/emissive_blockerRender step that makes the passed in render source block emissives
/atom/movable/render_step/emissiveRender step that makes the passed in render source GLOW
\ No newline at end of file diff --git a/code/modules/wiremod/components/abstract/compare.html b/code/modules/wiremod/components/abstract/compare.html new file mode 100644 index 0000000000000..254fb84e6e50f --- /dev/null +++ b/code/modules/wiremod/components/abstract/compare.html @@ -0,0 +1 @@ +code/modules/wiremod/components/abstract/compare.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/abstract/compare.dm

/obj/item/circuit_component/compareAbstract component to build conditional components
\ No newline at end of file diff --git a/code/modules/wiremod/components/abstract/module.html b/code/modules/wiremod/components/abstract/module.html new file mode 100644 index 0000000000000..31b90f516ff7b --- /dev/null +++ b/code/modules/wiremod/components/abstract/module.html @@ -0,0 +1 @@ +code/modules/wiremod/components/abstract/module.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/abstract/module.dm

/obj/item/circuit_component/moduleA component that has an input, output
\ No newline at end of file diff --git a/code/modules/wiremod/components/abstract/variable.html b/code/modules/wiremod/components/abstract/variable.html new file mode 100644 index 0000000000000..7124505880252 --- /dev/null +++ b/code/modules/wiremod/components/abstract/variable.html @@ -0,0 +1 @@ +code/modules/wiremod/components/abstract/variable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/abstract/variable.dm

/obj/item/circuit_component/variableAbstract component for handling variables
\ No newline at end of file diff --git a/code/modules/wiremod/components/action/laserpointer.html b/code/modules/wiremod/components/action/laserpointer.html new file mode 100644 index 0000000000000..11529d6825571 --- /dev/null +++ b/code/modules/wiremod/components/action/laserpointer.html @@ -0,0 +1 @@ +code/modules/wiremod/components/action/laserpointer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/action/laserpointer.dm

/obj/item/circuit_component/laserpointerPoints a laser at a tile or mob
\ No newline at end of file diff --git a/code/modules/wiremod/components/action/light.html b/code/modules/wiremod/components/action/light.html new file mode 100644 index 0000000000000..10abf381fe175 --- /dev/null +++ b/code/modules/wiremod/components/action/light.html @@ -0,0 +1 @@ +code/modules/wiremod/components/action/light.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/action/light.dm

/obj/item/circuit_component/lightEmits a light of a specific brightness and colour. Requires a shell.
\ No newline at end of file diff --git a/code/modules/wiremod/components/action/mmi.html b/code/modules/wiremod/components/action/mmi.html new file mode 100644 index 0000000000000..d38c267d0ce04 --- /dev/null +++ b/code/modules/wiremod/components/action/mmi.html @@ -0,0 +1 @@ +code/modules/wiremod/components/action/mmi.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/action/mmi.dm

/obj/item/circuit_component/mmiAllows an MMI to be inserted into a shell, allowing it to be linked up. Requires a shell.
\ No newline at end of file diff --git a/code/modules/wiremod/components/action/pathfind.html b/code/modules/wiremod/components/action/pathfind.html new file mode 100644 index 0000000000000..289488b303c09 --- /dev/null +++ b/code/modules/wiremod/components/action/pathfind.html @@ -0,0 +1 @@ +code/modules/wiremod/components/action/pathfind.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/action/pathfind.dm

/obj/item/circuit_component/pathfindCalcualtes a path, returns a list of entities. Each entity is the next step in the path. Can be used with the direction component to move.
\ No newline at end of file diff --git a/code/modules/wiremod/components/action/pull.html b/code/modules/wiremod/components/action/pull.html new file mode 100644 index 0000000000000..155c4c5f511f3 --- /dev/null +++ b/code/modules/wiremod/components/action/pull.html @@ -0,0 +1 @@ +code/modules/wiremod/components/action/pull.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/action/pull.dm

/obj/item/circuit_component/pullTells the shell to start pulling on a designated atom. Only works on movable shells.
\ No newline at end of file diff --git a/code/modules/wiremod/components/action/radio.html b/code/modules/wiremod/components/action/radio.html new file mode 100644 index 0000000000000..a5a6202008816 --- /dev/null +++ b/code/modules/wiremod/components/action/radio.html @@ -0,0 +1 @@ +code/modules/wiremod/components/action/radio.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/action/radio.dm

/obj/item/circuit_component/radioListens out for signals on the designated frequencies and sends signals on designated frequencies
\ No newline at end of file diff --git a/code/modules/wiremod/components/action/soundemitter.html b/code/modules/wiremod/components/action/soundemitter.html new file mode 100644 index 0000000000000..8d0e2d3fec794 --- /dev/null +++ b/code/modules/wiremod/components/action/soundemitter.html @@ -0,0 +1 @@ +code/modules/wiremod/components/action/soundemitter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/action/soundemitter.dm

/obj/item/circuit_component/soundemitterA component that emits a sound when it receives an input.
\ No newline at end of file diff --git a/code/modules/wiremod/components/action/speech.html b/code/modules/wiremod/components/action/speech.html new file mode 100644 index 0000000000000..d10a19956eae6 --- /dev/null +++ b/code/modules/wiremod/components/action/speech.html @@ -0,0 +1 @@ +code/modules/wiremod/components/action/speech.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/action/speech.dm

/obj/item/circuit_component/speechSends a message. Requires a shell.
\ No newline at end of file diff --git a/code/modules/wiremod/components/admin/getvar.html b/code/modules/wiremod/components/admin/getvar.html new file mode 100644 index 0000000000000..a2466af9e0d2f --- /dev/null +++ b/code/modules/wiremod/components/admin/getvar.html @@ -0,0 +1 @@ +code/modules/wiremod/components/admin/getvar.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/admin/getvar.dm

/obj/item/circuit_component/get_variableA component that gets a variable on an object
\ No newline at end of file diff --git a/code/modules/wiremod/components/admin/input_request.html b/code/modules/wiremod/components/admin/input_request.html new file mode 100644 index 0000000000000..8942bdbc00238 --- /dev/null +++ b/code/modules/wiremod/components/admin/input_request.html @@ -0,0 +1 @@ +code/modules/wiremod/components/admin/input_request.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/admin/input_request.dm

/obj/item/circuit_component/input_requestRequests an input from someone.
\ No newline at end of file diff --git a/code/modules/wiremod/components/admin/proccall.html b/code/modules/wiremod/components/admin/proccall.html new file mode 100644 index 0000000000000..cf222438743ab --- /dev/null +++ b/code/modules/wiremod/components/admin/proccall.html @@ -0,0 +1 @@ +code/modules/wiremod/components/admin/proccall.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/admin/proccall.dm

/obj/item/circuit_component/proccallA component that calls a proc on an object and outputs the return value
\ No newline at end of file diff --git a/code/modules/wiremod/components/admin/save_shell.html b/code/modules/wiremod/components/admin/save_shell.html new file mode 100644 index 0000000000000..66c0e7d7f4d35 --- /dev/null +++ b/code/modules/wiremod/components/admin/save_shell.html @@ -0,0 +1 @@ +code/modules/wiremod/components/admin/save_shell.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/admin/save_shell.dm

/obj/item/circuit_component/save_shellA component that saves and loads a shell for the integrated circuit.
\ No newline at end of file diff --git a/code/modules/wiremod/components/admin/sdql.html b/code/modules/wiremod/components/admin/sdql.html new file mode 100644 index 0000000000000..910b0908596dd --- /dev/null +++ b/code/modules/wiremod/components/admin/sdql.html @@ -0,0 +1 @@ +code/modules/wiremod/components/admin/sdql.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/admin/sdql.dm

/obj/item/circuit_component/sdql_operationA component that performs an sdql operation
\ No newline at end of file diff --git a/code/modules/wiremod/components/admin/setvar.html b/code/modules/wiremod/components/admin/setvar.html new file mode 100644 index 0000000000000..05ab27e1cb801 --- /dev/null +++ b/code/modules/wiremod/components/admin/setvar.html @@ -0,0 +1 @@ +code/modules/wiremod/components/admin/setvar.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/admin/setvar.dm

/obj/item/circuit_component/set_variableA component that sets a variable on an object
\ No newline at end of file diff --git a/code/modules/wiremod/components/admin/signal_handler/signal_handler.html b/code/modules/wiremod/components/admin/signal_handler/signal_handler.html new file mode 100644 index 0000000000000..34c4a4e8af7e5 --- /dev/null +++ b/code/modules/wiremod/components/admin/signal_handler/signal_handler.html @@ -0,0 +1 @@ +code/modules/wiremod/components/admin/signal_handler/signal_handler.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/admin/signal_handler/signal_handler.dm

/obj/item/circuit_component/signal_handlerA component that registers signals on events and listens for them.
\ No newline at end of file diff --git a/code/modules/wiremod/components/admin/spawn.html b/code/modules/wiremod/components/admin/spawn.html new file mode 100644 index 0000000000000..48eb9ce5b9556 --- /dev/null +++ b/code/modules/wiremod/components/admin/spawn.html @@ -0,0 +1 @@ +code/modules/wiremod/components/admin/spawn.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/admin/spawn.dm

/obj/item/circuit_component/spawn_atomSpawns an atom.
\ No newline at end of file diff --git a/code/modules/wiremod/components/admin/to_type.html b/code/modules/wiremod/components/admin/to_type.html new file mode 100644 index 0000000000000..34943df83a0e1 --- /dev/null +++ b/code/modules/wiremod/components/admin/to_type.html @@ -0,0 +1 @@ +code/modules/wiremod/components/admin/to_type.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/admin/to_type.dm

/obj/item/circuit_component/to_typeConverts a string into a typepath. Useful for adding components.
\ No newline at end of file diff --git a/code/modules/wiremod/components/atom/direction.html b/code/modules/wiremod/components/atom/direction.html new file mode 100644 index 0000000000000..da0bc953771c5 --- /dev/null +++ b/code/modules/wiremod/components/atom/direction.html @@ -0,0 +1 @@ +code/modules/wiremod/components/atom/direction.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/atom/direction.dm

/obj/item/circuit_component/directionReturn the direction of a mob relative to the component
\ No newline at end of file diff --git a/code/modules/wiremod/components/atom/gps.html b/code/modules/wiremod/components/atom/gps.html new file mode 100644 index 0000000000000..319e03c05d7fa --- /dev/null +++ b/code/modules/wiremod/components/atom/gps.html @@ -0,0 +1 @@ +code/modules/wiremod/components/atom/gps.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/atom/gps.dm

/obj/item/circuit_component/gpsReturn the location of this
\ No newline at end of file diff --git a/code/modules/wiremod/components/atom/health.html b/code/modules/wiremod/components/atom/health.html new file mode 100644 index 0000000000000..147dfbabde734 --- /dev/null +++ b/code/modules/wiremod/components/atom/health.html @@ -0,0 +1 @@ +code/modules/wiremod/components/atom/health.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/atom/health.dm

/obj/item/circuit_component/healthReturn the health of a mob
\ No newline at end of file diff --git a/code/modules/wiremod/components/atom/health_state.html b/code/modules/wiremod/components/atom/health_state.html new file mode 100644 index 0000000000000..897c823efd86c --- /dev/null +++ b/code/modules/wiremod/components/atom/health_state.html @@ -0,0 +1 @@ +code/modules/wiremod/components/atom/health_state.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/atom/health_state.dm

/obj/item/circuit_component/compare/health_stateReturns true when state matches entity.
\ No newline at end of file diff --git a/code/modules/wiremod/components/atom/hear.html b/code/modules/wiremod/components/atom/hear.html new file mode 100644 index 0000000000000..1e9c83da4ea8c --- /dev/null +++ b/code/modules/wiremod/components/atom/hear.html @@ -0,0 +1 @@ +code/modules/wiremod/components/atom/hear.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/atom/hear.dm

/obj/item/circuit_component/hearListens for messages. Requires a shell.
\ No newline at end of file diff --git a/code/modules/wiremod/components/atom/matscanner.html b/code/modules/wiremod/components/atom/matscanner.html new file mode 100644 index 0000000000000..835afeab7ba28 --- /dev/null +++ b/code/modules/wiremod/components/atom/matscanner.html @@ -0,0 +1 @@ +code/modules/wiremod/components/atom/matscanner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/atom/matscanner.dm

/obj/item/circuit_component/matscannerReturns the materials of an atom
\ No newline at end of file diff --git a/code/modules/wiremod/components/atom/pinpointer.html b/code/modules/wiremod/components/atom/pinpointer.html new file mode 100644 index 0000000000000..2816664b7a6fa --- /dev/null +++ b/code/modules/wiremod/components/atom/pinpointer.html @@ -0,0 +1 @@ +code/modules/wiremod/components/atom/pinpointer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/atom/pinpointer.dm

/obj/item/circuit_component/pinpointerReturn the location of its input.
\ No newline at end of file diff --git a/code/modules/wiremod/components/atom/reagentscanner.html b/code/modules/wiremod/components/atom/reagentscanner.html new file mode 100644 index 0000000000000..36463b55dab30 --- /dev/null +++ b/code/modules/wiremod/components/atom/reagentscanner.html @@ -0,0 +1 @@ +code/modules/wiremod/components/atom/reagentscanner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/atom/reagentscanner.dm

/obj/item/circuit_component/reagentscannerReturns the reagentss of an atom
\ No newline at end of file diff --git a/code/modules/wiremod/components/atom/remotecam.html b/code/modules/wiremod/components/atom/remotecam.html new file mode 100644 index 0000000000000..227b3fd3f7c72 --- /dev/null +++ b/code/modules/wiremod/components/atom/remotecam.html @@ -0,0 +1 @@ +code/modules/wiremod/components/atom/remotecam.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/atom/remotecam.dm

/obj/item/circuit_component/remotecamAttaches a camera for surveillance-on-the-go.
\ No newline at end of file diff --git a/code/modules/wiremod/components/atom/self.html b/code/modules/wiremod/components/atom/self.html new file mode 100644 index 0000000000000..7a60cd30607f8 --- /dev/null +++ b/code/modules/wiremod/components/atom/self.html @@ -0,0 +1 @@ +code/modules/wiremod/components/atom/self.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/atom/self.dm

/obj/item/circuit_component/selfReturn the current shell.
\ No newline at end of file diff --git a/code/modules/wiremod/components/atom/species.html b/code/modules/wiremod/components/atom/species.html new file mode 100644 index 0000000000000..9cdb8bd84aaff --- /dev/null +++ b/code/modules/wiremod/components/atom/species.html @@ -0,0 +1 @@ +code/modules/wiremod/components/atom/species.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/atom/species.dm

/obj/item/circuit_component/speciesReturn the species of a mob
\ No newline at end of file diff --git a/code/modules/wiremod/components/bci/hud/bar_overlay.html b/code/modules/wiremod/components/bci/hud/bar_overlay.html new file mode 100644 index 0000000000000..9039e61f3de73 --- /dev/null +++ b/code/modules/wiremod/components/bci/hud/bar_overlay.html @@ -0,0 +1,2 @@ +code/modules/wiremod/components/bci/hud/bar_overlay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/bci/hud/bar_overlay.dm

/obj/item/circuit_component/object_overlay/barBasically an advanced verion of object overlay component that shows a horizontal/vertical bar. +Requires a BCI shell.
\ No newline at end of file diff --git a/code/modules/wiremod/components/bci/hud/counter_overlay.html b/code/modules/wiremod/components/bci/hud/counter_overlay.html new file mode 100644 index 0000000000000..9752f76e0f292 --- /dev/null +++ b/code/modules/wiremod/components/bci/hud/counter_overlay.html @@ -0,0 +1,2 @@ +code/modules/wiremod/components/bci/hud/counter_overlay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/bci/hud/counter_overlay.dm

/obj/item/circuit_component/counter_overlayShows an counter overlay. +Requires a BCI shell.
\ No newline at end of file diff --git a/code/modules/wiremod/components/bci/hud/object_overlay.html b/code/modules/wiremod/components/bci/hud/object_overlay.html new file mode 100644 index 0000000000000..62c3813965f63 --- /dev/null +++ b/code/modules/wiremod/components/bci/hud/object_overlay.html @@ -0,0 +1,3 @@ +code/modules/wiremod/components/bci/hud/object_overlay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/wiremod/components/bci/hud/object_overlay.dm

OBJECT_OVERLAY_LIMIT

Define Details

OBJECT_OVERLAY_LIMIT

Object Overlay Component

+

Shows an overlay ontop of an object. Toggleable. +Requires a BCI shell.

\ No newline at end of file diff --git a/code/modules/wiremod/components/bci/hud/target_intercept.html b/code/modules/wiremod/components/bci/hud/target_intercept.html new file mode 100644 index 0000000000000..b16094d5cf632 --- /dev/null +++ b/code/modules/wiremod/components/bci/hud/target_intercept.html @@ -0,0 +1,2 @@ +code/modules/wiremod/components/bci/hud/target_intercept.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/bci/hud/target_intercept.dm

/obj/item/circuit_component/target_interceptWhen activated intercepts next click and outputs clicked atom. +Requires a BCI shell.
\ No newline at end of file diff --git a/code/modules/wiremod/components/bci/install_detector.html b/code/modules/wiremod/components/bci/install_detector.html new file mode 100644 index 0000000000000..cb488d5fba2e4 --- /dev/null +++ b/code/modules/wiremod/components/bci/install_detector.html @@ -0,0 +1,2 @@ +code/modules/wiremod/components/bci/install_detector.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/bci/install_detector.dm

/obj/item/circuit_component/install_detectorDetects when a BCI is installed/removed. +Requires a BCI shell.
\ No newline at end of file diff --git a/code/modules/wiremod/components/bci/reagent_injector.html b/code/modules/wiremod/components/bci/reagent_injector.html new file mode 100644 index 0000000000000..4eb5d3f30d55c --- /dev/null +++ b/code/modules/wiremod/components/bci/reagent_injector.html @@ -0,0 +1,2 @@ +code/modules/wiremod/components/bci/reagent_injector.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/bci/reagent_injector.dm

/obj/item/circuit_component/reagent_injectorInjects reagents into the user. +Requires a BCI shell.
\ No newline at end of file diff --git a/code/modules/wiremod/components/bci/thought_listener.html b/code/modules/wiremod/components/bci/thought_listener.html new file mode 100644 index 0000000000000..340bf5af5b6e8 --- /dev/null +++ b/code/modules/wiremod/components/bci/thought_listener.html @@ -0,0 +1,2 @@ +code/modules/wiremod/components/bci/thought_listener.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/bci/thought_listener.dm

/obj/item/circuit_component/thought_listenerAllows user to input a string. +Requires a BCI shell.
\ No newline at end of file diff --git a/code/modules/wiremod/components/bci/vox.html b/code/modules/wiremod/components/bci/vox.html new file mode 100644 index 0000000000000..aa85efb389bcc --- /dev/null +++ b/code/modules/wiremod/components/bci/vox.html @@ -0,0 +1,2 @@ +code/modules/wiremod/components/bci/vox.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/bci/vox.dm

/obj/item/circuit_component/voxThese play a VOX announcement with inputed words from either a string or a list. +Requires a BCI shell.
\ No newline at end of file diff --git a/code/modules/wiremod/components/list/assoc_list_pick.html b/code/modules/wiremod/components/list/assoc_list_pick.html new file mode 100644 index 0000000000000..a70106d84e3d9 --- /dev/null +++ b/code/modules/wiremod/components/list/assoc_list_pick.html @@ -0,0 +1,2 @@ +code/modules/wiremod/components/list/assoc_list_pick.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/list/assoc_list_pick.dm

/obj/item/circuit_component/list_pick/assocAllows user to select 1 entry from a list +For actuel code refer to code\modules\wiremod\components\list\list_pick.dm
\ No newline at end of file diff --git a/code/modules/wiremod/components/list/assoc_list_remove.html b/code/modules/wiremod/components/list/assoc_list_remove.html new file mode 100644 index 0000000000000..81b15853cd3d9 --- /dev/null +++ b/code/modules/wiremod/components/list/assoc_list_remove.html @@ -0,0 +1 @@ +code/modules/wiremod/components/list/assoc_list_remove.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/list/assoc_list_remove.dm

/obj/item/circuit_component/variable/assoc_list/list_removeRemoves an element from an assoc list.
\ No newline at end of file diff --git a/code/modules/wiremod/components/list/assoc_list_set.html b/code/modules/wiremod/components/list/assoc_list_set.html new file mode 100644 index 0000000000000..ee68be03d5518 --- /dev/null +++ b/code/modules/wiremod/components/list/assoc_list_set.html @@ -0,0 +1 @@ +code/modules/wiremod/components/list/assoc_list_set.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/list/assoc_list_set.dm

/obj/item/circuit_component/variable/assoc_list/list_setSets a string value on an assoc list.
\ No newline at end of file diff --git a/code/modules/wiremod/components/list/assoc_literal.html b/code/modules/wiremod/components/list/assoc_literal.html new file mode 100644 index 0000000000000..148f9cfa5722c --- /dev/null +++ b/code/modules/wiremod/components/list/assoc_literal.html @@ -0,0 +1 @@ +code/modules/wiremod/components/list/assoc_literal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/list/assoc_literal.dm

/obj/item/circuit_component/assoc_literalReturn an associative list literal.
\ No newline at end of file diff --git a/code/modules/wiremod/components/list/concat.html b/code/modules/wiremod/components/list/concat.html new file mode 100644 index 0000000000000..5212f5e6fa7b4 --- /dev/null +++ b/code/modules/wiremod/components/list/concat.html @@ -0,0 +1 @@ +code/modules/wiremod/components/list/concat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/list/concat.dm

/obj/item/circuit_component/concat_listConcatenates a list with a separator
\ No newline at end of file diff --git a/code/modules/wiremod/components/list/filter.html b/code/modules/wiremod/components/list/filter.html new file mode 100644 index 0000000000000..28d14e4aadfef --- /dev/null +++ b/code/modules/wiremod/components/list/filter.html @@ -0,0 +1 @@ +code/modules/wiremod/components/list/filter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/list/filter.dm

/obj/item/circuit_component/filter_listFilters
\ No newline at end of file diff --git a/code/modules/wiremod/components/list/foreach.html b/code/modules/wiremod/components/list/foreach.html new file mode 100644 index 0000000000000..b47b1b0f78121 --- /dev/null +++ b/code/modules/wiremod/components/list/foreach.html @@ -0,0 +1 @@ +code/modules/wiremod/components/list/foreach.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/list/foreach.dm

/obj/item/circuit_component/foreachSends a signal for each item in a list
\ No newline at end of file diff --git a/code/modules/wiremod/components/list/format.html b/code/modules/wiremod/components/list/format.html new file mode 100644 index 0000000000000..418831dee49ee --- /dev/null +++ b/code/modules/wiremod/components/list/format.html @@ -0,0 +1,3 @@ +code/modules/wiremod/components/list/format.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/list/format.dm

/obj/item/circuit_component/formatFormats lists by replacing %n in format string with nth parameter. +Alternative to the Concatenate component.
/obj/item/circuit_component/format/assocFormats lists by replacing %n in format string with nth parameter. +Alternative to the Concatenate component.
/regex/format_component
\ No newline at end of file diff --git a/code/modules/wiremod/components/list/index.html b/code/modules/wiremod/components/list/index.html new file mode 100644 index 0000000000000..e31a5044fb166 --- /dev/null +++ b/code/modules/wiremod/components/list/index.html @@ -0,0 +1 @@ +code/modules/wiremod/components/list/index.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/list/index.dm

/obj/item/circuit_component/indexReturn the index of a list
\ No newline at end of file diff --git a/code/modules/wiremod/components/list/list_add.html b/code/modules/wiremod/components/list/list_add.html new file mode 100644 index 0000000000000..2610eb131df0c --- /dev/null +++ b/code/modules/wiremod/components/list/list_add.html @@ -0,0 +1 @@ +code/modules/wiremod/components/list/list_add.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/list/list_add.dm

/obj/item/circuit_component/variable/list/listaddAdds an element to a list.
\ No newline at end of file diff --git a/code/modules/wiremod/components/list/list_clear.html b/code/modules/wiremod/components/list/list_clear.html new file mode 100644 index 0000000000000..d9b8d3a464949 --- /dev/null +++ b/code/modules/wiremod/components/list/list_clear.html @@ -0,0 +1 @@ +code/modules/wiremod/components/list/list_clear.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/list/list_clear.dm

/obj/item/circuit_component/variable/list/listclearClears an element to a list.
\ No newline at end of file diff --git a/code/modules/wiremod/components/list/list_find.html b/code/modules/wiremod/components/list/list_find.html new file mode 100644 index 0000000000000..d7f3d1fdf7d2d --- /dev/null +++ b/code/modules/wiremod/components/list/list_find.html @@ -0,0 +1 @@ +code/modules/wiremod/components/list/list_find.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/list/list_find.dm

/obj/item/circuit_component/listinFinds an element in a list and returns the index.
\ No newline at end of file diff --git a/code/modules/wiremod/components/list/list_literal.html b/code/modules/wiremod/components/list/list_literal.html new file mode 100644 index 0000000000000..91227fc11b52d --- /dev/null +++ b/code/modules/wiremod/components/list/list_literal.html @@ -0,0 +1 @@ +code/modules/wiremod/components/list/list_literal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/list/list_literal.dm

/obj/item/circuit_component/list_literalReturn a list literal.
\ No newline at end of file diff --git a/code/modules/wiremod/components/list/list_pick.html b/code/modules/wiremod/components/list/list_pick.html new file mode 100644 index 0000000000000..938c4bb30d278 --- /dev/null +++ b/code/modules/wiremod/components/list/list_pick.html @@ -0,0 +1 @@ +code/modules/wiremod/components/list/list_pick.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/list/list_pick.dm

/obj/item/circuit_component/list_pickAllows user to select 1 entry from a list
\ No newline at end of file diff --git a/code/modules/wiremod/components/list/list_remove.html b/code/modules/wiremod/components/list/list_remove.html new file mode 100644 index 0000000000000..687eb02c69524 --- /dev/null +++ b/code/modules/wiremod/components/list/list_remove.html @@ -0,0 +1 @@ +code/modules/wiremod/components/list/list_remove.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/list/list_remove.dm

/obj/item/circuit_component/variable/list/listremoveRemoves an element to a list.
\ No newline at end of file diff --git a/code/modules/wiremod/components/list/split.html b/code/modules/wiremod/components/list/split.html new file mode 100644 index 0000000000000..3bf5f0b228fc2 --- /dev/null +++ b/code/modules/wiremod/components/list/split.html @@ -0,0 +1 @@ +code/modules/wiremod/components/list/split.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/list/split.dm

/obj/item/circuit_component/splitSplits a string
\ No newline at end of file diff --git a/code/modules/wiremod/components/math/arctan2.html b/code/modules/wiremod/components/math/arctan2.html new file mode 100644 index 0000000000000..33f447d68633e --- /dev/null +++ b/code/modules/wiremod/components/math/arctan2.html @@ -0,0 +1 @@ +code/modules/wiremod/components/math/arctan2.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/math/arctan2.dm

/obj/item/circuit_component/arctan2A variant of arctan. When given a deltaX and deltaY, returns the angle. I will blow you out of the sky
\ No newline at end of file diff --git a/code/modules/wiremod/components/math/arithmetic.html b/code/modules/wiremod/components/math/arithmetic.html new file mode 100644 index 0000000000000..3caaae35517a4 --- /dev/null +++ b/code/modules/wiremod/components/math/arithmetic.html @@ -0,0 +1,2 @@ +code/modules/wiremod/components/math/arithmetic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/math/arithmetic.dm

/obj/item/circuit_component/arithmeticGeneral arithmetic unit with add/sub/mult/divide capabilities +This one only works with numbers.
\ No newline at end of file diff --git a/code/modules/wiremod/components/math/binary_conversion.html b/code/modules/wiremod/components/math/binary_conversion.html new file mode 100644 index 0000000000000..9cc4780e68250 --- /dev/null +++ b/code/modules/wiremod/components/math/binary_conversion.html @@ -0,0 +1 @@ +code/modules/wiremod/components/math/binary_conversion.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/math/binary_conversion.dm

/obj/item/circuit_component/binary_conversionReturn an array of binary digits from a number input.
\ No newline at end of file diff --git a/code/modules/wiremod/components/math/comparison.html b/code/modules/wiremod/components/math/comparison.html new file mode 100644 index 0000000000000..befa3a7d8c02b --- /dev/null +++ b/code/modules/wiremod/components/math/comparison.html @@ -0,0 +1 @@ +code/modules/wiremod/components/math/comparison.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/math/comparison.dm

/obj/item/circuit_component/compare/comparisonCompares two objects
\ No newline at end of file diff --git a/code/modules/wiremod/components/math/decimal_conversion.html b/code/modules/wiremod/components/math/decimal_conversion.html new file mode 100644 index 0000000000000..e95f20b99a606 --- /dev/null +++ b/code/modules/wiremod/components/math/decimal_conversion.html @@ -0,0 +1 @@ +code/modules/wiremod/components/math/decimal_conversion.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/math/decimal_conversion.dm

/obj/item/circuit_component/decimal_conversionReturn a number from an array of binary inputs.
\ No newline at end of file diff --git a/code/modules/wiremod/components/math/length.html b/code/modules/wiremod/components/math/length.html new file mode 100644 index 0000000000000..22bb7cce2db20 --- /dev/null +++ b/code/modules/wiremod/components/math/length.html @@ -0,0 +1 @@ +code/modules/wiremod/components/math/length.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/math/length.dm

/obj/item/circuit_component/lengthReturn the length of an input
\ No newline at end of file diff --git a/code/modules/wiremod/components/math/logic.html b/code/modules/wiremod/components/math/logic.html new file mode 100644 index 0000000000000..ad948e7c247d3 --- /dev/null +++ b/code/modules/wiremod/components/math/logic.html @@ -0,0 +1 @@ +code/modules/wiremod/components/math/logic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/math/logic.dm

/obj/item/circuit_component/compare/logicGeneral logic unit with AND OR capabilities
\ No newline at end of file diff --git a/code/modules/wiremod/components/math/not.html b/code/modules/wiremod/components/math/not.html new file mode 100644 index 0000000000000..dc62065bd37df --- /dev/null +++ b/code/modules/wiremod/components/math/not.html @@ -0,0 +1 @@ +code/modules/wiremod/components/math/not.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/math/not.dm

/obj/item/circuit_component/notGeneral logic unit with AND OR capabilities
\ No newline at end of file diff --git a/code/modules/wiremod/components/math/random.html b/code/modules/wiremod/components/math/random.html new file mode 100644 index 0000000000000..b63ee7231def5 --- /dev/null +++ b/code/modules/wiremod/components/math/random.html @@ -0,0 +1 @@ +code/modules/wiremod/components/math/random.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/math/random.dm

/obj/item/circuit_component/randomGenerates a random number between specific values
\ No newline at end of file diff --git a/code/modules/wiremod/components/math/toggle.html b/code/modules/wiremod/components/math/toggle.html new file mode 100644 index 0000000000000..1d7975e2113f5 --- /dev/null +++ b/code/modules/wiremod/components/math/toggle.html @@ -0,0 +1 @@ +code/modules/wiremod/components/math/toggle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/math/toggle.dm

/obj/item/circuit_component/compare/toggleDoes a toggle between true and false on trigger
\ No newline at end of file diff --git a/code/modules/wiremod/components/math/trigonometry.html b/code/modules/wiremod/components/math/trigonometry.html new file mode 100644 index 0000000000000..fc47abce38d0c --- /dev/null +++ b/code/modules/wiremod/components/math/trigonometry.html @@ -0,0 +1,2 @@ +code/modules/wiremod/components/math/trigonometry.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/math/trigonometry.dm

/obj/item/circuit_component/trigonometryGeneral trigonometric unit with sine, cosine, tangent and their inverse functions. +This one only works with numbers.
\ No newline at end of file diff --git a/code/modules/wiremod/components/ntnet/ntnet_receive.html b/code/modules/wiremod/components/ntnet/ntnet_receive.html new file mode 100644 index 0000000000000..4fd2fcbe53f74 --- /dev/null +++ b/code/modules/wiremod/components/ntnet/ntnet_receive.html @@ -0,0 +1 @@ +code/modules/wiremod/components/ntnet/ntnet_receive.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/ntnet/ntnet_receive.dm

/obj/item/circuit_component/ntnet_receiveReceives data through NTNet.
\ No newline at end of file diff --git a/code/modules/wiremod/components/ntnet/ntnet_send.html b/code/modules/wiremod/components/ntnet/ntnet_send.html new file mode 100644 index 0000000000000..e76356cfcdf6b --- /dev/null +++ b/code/modules/wiremod/components/ntnet/ntnet_send.html @@ -0,0 +1 @@ +code/modules/wiremod/components/ntnet/ntnet_send.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/ntnet/ntnet_send.dm

/obj/item/circuit_component/ntnet_sendSends a data package through NTNet
\ No newline at end of file diff --git a/code/modules/wiremod/components/ntnet/ntnet_send_literal.html b/code/modules/wiremod/components/ntnet/ntnet_send_literal.html new file mode 100644 index 0000000000000..d243c41f16052 --- /dev/null +++ b/code/modules/wiremod/components/ntnet/ntnet_send_literal.html @@ -0,0 +1 @@ +code/modules/wiremod/components/ntnet/ntnet_send_literal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/ntnet/ntnet_send_literal.dm

/obj/item/circuit_component/list_literal/ntnet_sendCreate a list literal and send a data package through NTNet
\ No newline at end of file diff --git a/code/modules/wiremod/components/sensors/pressuresensor.html b/code/modules/wiremod/components/sensors/pressuresensor.html new file mode 100644 index 0000000000000..7970ba85d2d80 --- /dev/null +++ b/code/modules/wiremod/components/sensors/pressuresensor.html @@ -0,0 +1 @@ +code/modules/wiremod/components/sensors/pressuresensor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/sensors/pressuresensor.dm

/obj/item/circuit_component/pressuresensorReturns the pressure of the tile
\ No newline at end of file diff --git a/code/modules/wiremod/components/sensors/tempsensor.html b/code/modules/wiremod/components/sensors/tempsensor.html new file mode 100644 index 0000000000000..19fe1ed2ec26f --- /dev/null +++ b/code/modules/wiremod/components/sensors/tempsensor.html @@ -0,0 +1 @@ +code/modules/wiremod/components/sensors/tempsensor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/sensors/tempsensor.dm

/obj/item/circuit_component/tempsensorReturns the temperature of the tile
\ No newline at end of file diff --git a/code/modules/wiremod/components/sensors/view_sensor.html b/code/modules/wiremod/components/sensors/view_sensor.html new file mode 100644 index 0000000000000..641112f0eb81f --- /dev/null +++ b/code/modules/wiremod/components/sensors/view_sensor.html @@ -0,0 +1 @@ +code/modules/wiremod/components/sensors/view_sensor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/sensors/view_sensor.dm

/obj/item/circuit_component/view_sensorReturns all movable objects in view.
\ No newline at end of file diff --git a/code/modules/wiremod/components/string/concat.html b/code/modules/wiremod/components/string/concat.html new file mode 100644 index 0000000000000..427008adfaa91 --- /dev/null +++ b/code/modules/wiremod/components/string/concat.html @@ -0,0 +1 @@ +code/modules/wiremod/components/string/concat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/string/concat.dm

/obj/item/circuit_component/concatGeneral string concatenation component. Puts strings together.
\ No newline at end of file diff --git a/code/modules/wiremod/components/string/contains.html b/code/modules/wiremod/components/string/contains.html new file mode 100644 index 0000000000000..8d9c49fa29996 --- /dev/null +++ b/code/modules/wiremod/components/string/contains.html @@ -0,0 +1 @@ +code/modules/wiremod/components/string/contains.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/string/contains.dm

/obj/item/circuit_component/compare/containsChecks if a string contains a word/letter
\ No newline at end of file diff --git a/code/modules/wiremod/components/string/textcase.html b/code/modules/wiremod/components/string/textcase.html new file mode 100644 index 0000000000000..ca0ba89431073 --- /dev/null +++ b/code/modules/wiremod/components/string/textcase.html @@ -0,0 +1 @@ +code/modules/wiremod/components/string/textcase.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/string/textcase.dm

/obj/item/circuit_component/textcaseEither makes the text upper case or lower case.
\ No newline at end of file diff --git a/code/modules/wiremod/components/string/tonumber.html b/code/modules/wiremod/components/string/tonumber.html new file mode 100644 index 0000000000000..4737260fa5a2c --- /dev/null +++ b/code/modules/wiremod/components/string/tonumber.html @@ -0,0 +1 @@ +code/modules/wiremod/components/string/tonumber.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/string/tonumber.dm

/obj/item/circuit_component/tonumber#To Number Component
\ No newline at end of file diff --git a/code/modules/wiremod/components/string/tostring.html b/code/modules/wiremod/components/string/tostring.html new file mode 100644 index 0000000000000..6113c6991b7d2 --- /dev/null +++ b/code/modules/wiremod/components/string/tostring.html @@ -0,0 +1 @@ +code/modules/wiremod/components/string/tostring.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/string/tostring.dm

/obj/item/circuit_component/tostringConverts any value into a string
\ No newline at end of file diff --git a/code/modules/wiremod/components/table/get_column.html b/code/modules/wiremod/components/table/get_column.html new file mode 100644 index 0000000000000..0179956dd6432 --- /dev/null +++ b/code/modules/wiremod/components/table/get_column.html @@ -0,0 +1 @@ +code/modules/wiremod/components/table/get_column.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/table/get_column.dm

/obj/item/circuit_component/get_columnGets the column of a table and returns it as a regular list.
\ No newline at end of file diff --git a/code/modules/wiremod/components/table/index_table.html b/code/modules/wiremod/components/table/index_table.html new file mode 100644 index 0000000000000..3e310960c944d --- /dev/null +++ b/code/modules/wiremod/components/table/index_table.html @@ -0,0 +1 @@ +code/modules/wiremod/components/table/index_table.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/table/index_table.dm

/obj/item/circuit_component/index_tableGets the row of a table as an associative list using the index inputted. Will return no value if the index is invalid or a proper table is not returned.
\ No newline at end of file diff --git a/code/modules/wiremod/components/table/select.html b/code/modules/wiremod/components/table/select.html new file mode 100644 index 0000000000000..2d5762805ada8 --- /dev/null +++ b/code/modules/wiremod/components/table/select.html @@ -0,0 +1 @@ +code/modules/wiremod/components/table/select.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/table/select.dm

/obj/item/circuit_component/selectSelects a list from a list of lists by a specific column. Used only by USBs for communications to and from computers with lists of varying sizes.
\ No newline at end of file diff --git a/code/modules/wiremod/components/utility/clock.html b/code/modules/wiremod/components/utility/clock.html new file mode 100644 index 0000000000000..7c84430889a44 --- /dev/null +++ b/code/modules/wiremod/components/utility/clock.html @@ -0,0 +1 @@ +code/modules/wiremod/components/utility/clock.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/utility/clock.dm

/obj/item/circuit_component/clockFires every tick of the circuit timer SS
\ No newline at end of file diff --git a/code/modules/wiremod/components/utility/delay.html b/code/modules/wiremod/components/utility/delay.html new file mode 100644 index 0000000000000..c268d3962a1a4 --- /dev/null +++ b/code/modules/wiremod/components/utility/delay.html @@ -0,0 +1 @@ +code/modules/wiremod/components/utility/delay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

code/modules/wiremod/components/utility/delay.dm

COMP_DELAY_MIN_VALUEThe minimum delay value that the delay component can have.
/obj/item/circuit_component/delayDelays a signal by a specified duration.

Define Details

COMP_DELAY_MIN_VALUE

The minimum delay value that the delay component can have.

\ No newline at end of file diff --git a/code/modules/wiremod/components/utility/router.html b/code/modules/wiremod/components/utility/router.html new file mode 100644 index 0000000000000..9c0732ea1d0f5 --- /dev/null +++ b/code/modules/wiremod/components/utility/router.html @@ -0,0 +1 @@ +code/modules/wiremod/components/utility/router.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/utility/router.dm

/obj/item/circuit_component/routerWrites one of multiple inputs to one of multiple outputs.
\ No newline at end of file diff --git a/code/modules/wiremod/components/utility/timepiece.html b/code/modules/wiremod/components/utility/timepiece.html new file mode 100644 index 0000000000000..29f0ad0cdcd2f --- /dev/null +++ b/code/modules/wiremod/components/utility/timepiece.html @@ -0,0 +1 @@ +code/modules/wiremod/components/utility/timepiece.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/utility/timepiece.dm

/obj/item/circuit_component/timepiecereturns the current station time.
\ No newline at end of file diff --git a/code/modules/wiremod/components/utility/typecast.html b/code/modules/wiremod/components/utility/typecast.html new file mode 100644 index 0000000000000..d6ad5276ec03d --- /dev/null +++ b/code/modules/wiremod/components/utility/typecast.html @@ -0,0 +1 @@ +code/modules/wiremod/components/utility/typecast.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/utility/typecast.dm

/obj/item/circuit_component/typecastA component that casts a value to a type if it matches or outputs null.
\ No newline at end of file diff --git a/code/modules/wiremod/components/utility/typecheck.html b/code/modules/wiremod/components/utility/typecheck.html new file mode 100644 index 0000000000000..1aee30264211a --- /dev/null +++ b/code/modules/wiremod/components/utility/typecheck.html @@ -0,0 +1 @@ +code/modules/wiremod/components/utility/typecheck.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/utility/typecheck.dm

/obj/item/circuit_component/compare/typecheckChecks the type of a value
\ No newline at end of file diff --git a/code/modules/wiremod/components/variables/getter.html b/code/modules/wiremod/components/variables/getter.html new file mode 100644 index 0000000000000..df80cd4e96ec9 --- /dev/null +++ b/code/modules/wiremod/components/variables/getter.html @@ -0,0 +1 @@ +code/modules/wiremod/components/variables/getter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/variables/getter.dm

/obj/item/circuit_component/variable/getterGets the current value from a variable.
\ No newline at end of file diff --git a/code/modules/wiremod/components/variables/setter.html b/code/modules/wiremod/components/variables/setter.html new file mode 100644 index 0000000000000..bf13ab13c2a37 --- /dev/null +++ b/code/modules/wiremod/components/variables/setter.html @@ -0,0 +1 @@ +code/modules/wiremod/components/variables/setter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/components/variables/setter.dm

/obj/item/circuit_component/variable/setterStores the current input when triggered into a variable.
\ No newline at end of file diff --git a/code/modules/wiremod/core/component.html b/code/modules/wiremod/core/component.html new file mode 100644 index 0000000000000..1fcc9abec15e0 --- /dev/null +++ b/code/modules/wiremod/core/component.html @@ -0,0 +1 @@ +code/modules/wiremod/core/component.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/core/component.dm

/obj/item/circuit_componentA component that performs a function when given an input
\ No newline at end of file diff --git a/code/modules/wiremod/core/component_printer.html b/code/modules/wiremod/core/component_printer.html new file mode 100644 index 0000000000000..173d52d361e7c --- /dev/null +++ b/code/modules/wiremod/core/component_printer.html @@ -0,0 +1 @@ +code/modules/wiremod/core/component_printer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/core/component_printer.dm

/obj/machinery/component_printerComponent printer, creates components for integrated circuits.
/obj/machinery/module_duplicatorModule duplicator, allows you to save and recreate module components.
\ No newline at end of file diff --git a/code/modules/wiremod/core/datatypes.html b/code/modules/wiremod/core/datatypes.html new file mode 100644 index 0000000000000..cc9900ebd922d --- /dev/null +++ b/code/modules/wiremod/core/datatypes.html @@ -0,0 +1 @@ +code/modules/wiremod/core/datatypes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/core/datatypes.dm

/datum/circuit_datatypeA circuit datatype. Used to determine the datatype of a port and also handle any additional behaviour.
\ No newline at end of file diff --git a/code/modules/wiremod/core/integrated_circuit.html b/code/modules/wiremod/core/integrated_circuit.html new file mode 100644 index 0000000000000..dc97aae85a090 --- /dev/null +++ b/code/modules/wiremod/core/integrated_circuit.html @@ -0,0 +1 @@ +code/modules/wiremod/core/integrated_circuit.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/core/integrated_circuit.dm

/obj/item/integrated_circuitA circuitboard that holds components that work together
\ No newline at end of file diff --git a/code/modules/wiremod/core/port.html b/code/modules/wiremod/core/port.html new file mode 100644 index 0000000000000..ec023fc9654a2 --- /dev/null +++ b/code/modules/wiremod/core/port.html @@ -0,0 +1 @@ +code/modules/wiremod/core/port.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/core/port.dm

/datum/portA port used by a component. Connects to other ports.
/datum/port/outputAn output port that many input ports can connect to
/datum/port/inputAn input port remembers connected output ports.
\ No newline at end of file diff --git a/code/modules/wiremod/core/usb_cable.html b/code/modules/wiremod/core/usb_cable.html new file mode 100644 index 0000000000000..4476423975fa7 --- /dev/null +++ b/code/modules/wiremod/core/usb_cable.html @@ -0,0 +1 @@ +code/modules/wiremod/core/usb_cable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/core/usb_cable.dm

/obj/item/usb_cableA cable that can connect integrated circuits to anything with a USB port, such as computers and machines.
\ No newline at end of file diff --git a/code/modules/wiremod/core/variable.html b/code/modules/wiremod/core/variable.html new file mode 100644 index 0000000000000..0a35854f8b43a --- /dev/null +++ b/code/modules/wiremod/core/variable.html @@ -0,0 +1 @@ +code/modules/wiremod/core/variable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/core/variable.dm

/datum/circuit_variableA circuit variable that holds the name, the datatype and the colour of the variable (taken from the datatype).
\ No newline at end of file diff --git a/code/modules/wiremod/datatypes/composite/composite.html b/code/modules/wiremod/datatypes/composite/composite.html new file mode 100644 index 0000000000000..015183533a80a --- /dev/null +++ b/code/modules/wiremod/datatypes/composite/composite.html @@ -0,0 +1,2 @@ +code/modules/wiremod/datatypes/composite/composite.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/datatypes/composite/composite.dm

/datum/circuit_composite_templateA template used to make composite datatypes for circuits. +Used so that we don't have to generate every single possible combination of types
/datum/circuit_datatype/composite_instanceA composite instance generated by a template
\ No newline at end of file diff --git a/code/modules/wiremod/dcs_components/component_add_port.html b/code/modules/wiremod/dcs_components/component_add_port.html new file mode 100644 index 0000000000000..e72c385c051d6 --- /dev/null +++ b/code/modules/wiremod/dcs_components/component_add_port.html @@ -0,0 +1 @@ +code/modules/wiremod/dcs_components/component_add_port.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/dcs_components/component_add_port.dm

/datum/component/circuit_component_add_portHelper component that handles users adding/removing ports from a circuit component.
\ No newline at end of file diff --git a/code/modules/wiremod/preset/hello_world.html b/code/modules/wiremod/preset/hello_world.html new file mode 100644 index 0000000000000..b2a11a1b9829a --- /dev/null +++ b/code/modules/wiremod/preset/hello_world.html @@ -0,0 +1 @@ +code/modules/wiremod/preset/hello_world.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/preset/hello_world.dm

/obj/item/integrated_circuit/loaded/hello_worldSays "Hello World" when triggered. Needs to be wired up and connected first.
\ No newline at end of file diff --git a/code/modules/wiremod/preset/speech_relay.html b/code/modules/wiremod/preset/speech_relay.html new file mode 100644 index 0000000000000..fe4157a300fe4 --- /dev/null +++ b/code/modules/wiremod/preset/speech_relay.html @@ -0,0 +1 @@ +code/modules/wiremod/preset/speech_relay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/preset/speech_relay.dm

/obj/item/integrated_circuit/loaded/speech_relayActs like poly. Says whatever it hears.
\ No newline at end of file diff --git a/code/modules/wiremod/shell/assembly.html b/code/modules/wiremod/shell/assembly.html new file mode 100644 index 0000000000000..643b03a4a43d2 --- /dev/null +++ b/code/modules/wiremod/shell/assembly.html @@ -0,0 +1 @@ +code/modules/wiremod/shell/assembly.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/shell/assembly.dm

/obj/item/assembly/wiremodAn assembly that triggers and can be triggered by wires.
\ No newline at end of file diff --git a/code/modules/wiremod/shell/bot.html b/code/modules/wiremod/shell/bot.html new file mode 100644 index 0000000000000..efc514a062c61 --- /dev/null +++ b/code/modules/wiremod/shell/bot.html @@ -0,0 +1 @@ +code/modules/wiremod/shell/bot.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/shell/bot.dm

/obj/structure/botImmobile (but not dense) shells that can interact with world.
\ No newline at end of file diff --git a/code/modules/wiremod/shell/compact_remote.html b/code/modules/wiremod/shell/compact_remote.html new file mode 100644 index 0000000000000..1fb3649f80f89 --- /dev/null +++ b/code/modules/wiremod/shell/compact_remote.html @@ -0,0 +1 @@ +code/modules/wiremod/shell/compact_remote.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/shell/compact_remote.dm

/obj/item/compact_remoteA handheld device with one big button.
\ No newline at end of file diff --git a/code/modules/wiremod/shell/controller.html b/code/modules/wiremod/shell/controller.html new file mode 100644 index 0000000000000..0b57737a5a931 --- /dev/null +++ b/code/modules/wiremod/shell/controller.html @@ -0,0 +1,2 @@ +code/modules/wiremod/shell/controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/shell/controller.dm

/obj/item/controllerA handheld device with several buttons. +In game, this translates to having different signals for normal usage, alt-clicking, and ctrl-clicking when in your hand.
\ No newline at end of file diff --git a/code/modules/wiremod/shell/dispenser.html b/code/modules/wiremod/shell/dispenser.html new file mode 100644 index 0000000000000..ccd9ce56f5fb9 --- /dev/null +++ b/code/modules/wiremod/shell/dispenser.html @@ -0,0 +1 @@ +code/modules/wiremod/shell/dispenser.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/shell/dispenser.dm

/obj/structure/dispenser_botImmobile (but not dense) shell that can receive and dispense items.
\ No newline at end of file diff --git a/code/modules/wiremod/shell/drone.html b/code/modules/wiremod/shell/drone.html new file mode 100644 index 0000000000000..9e570c221d564 --- /dev/null +++ b/code/modules/wiremod/shell/drone.html @@ -0,0 +1 @@ +code/modules/wiremod/shell/drone.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/shell/drone.dm

/mob/living/circuit_droneA movable mob that can be fed inputs on which direction to travel.
\ No newline at end of file diff --git a/code/modules/wiremod/shell/gun.html b/code/modules/wiremod/shell/gun.html new file mode 100644 index 0000000000000..1ad22d71f55dc --- /dev/null +++ b/code/modules/wiremod/shell/gun.html @@ -0,0 +1 @@ +code/modules/wiremod/shell/gun.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/shell/gun.dm

/obj/item/gun/energy/wiremod_gunA gun that lets you fire projectiles to enact circuitry.
\ No newline at end of file diff --git a/code/modules/wiremod/shell/moneybot.html b/code/modules/wiremod/shell/moneybot.html new file mode 100644 index 0000000000000..2e8c95b97116a --- /dev/null +++ b/code/modules/wiremod/shell/moneybot.html @@ -0,0 +1 @@ +code/modules/wiremod/shell/moneybot.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/shell/moneybot.dm

/obj/structure/money_botImmobile (but not dense) shell that can receive and dispense money.
\ No newline at end of file diff --git a/code/modules/wiremod/shell/scanner.html b/code/modules/wiremod/shell/scanner.html new file mode 100644 index 0000000000000..04aca571539ab --- /dev/null +++ b/code/modules/wiremod/shell/scanner.html @@ -0,0 +1 @@ +code/modules/wiremod/shell/scanner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/shell/scanner.dm

/obj/item/wiremod_scannerA handheld device that lets you flash it over people.
\ No newline at end of file diff --git a/code/modules/wiremod/shell/server.html b/code/modules/wiremod/shell/server.html new file mode 100644 index 0000000000000..9aae1669792ed --- /dev/null +++ b/code/modules/wiremod/shell/server.html @@ -0,0 +1,2 @@ +code/modules/wiremod/shell/server.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/shell/server.dm

/obj/structure/serverImmobile (but not dense) shells that can interact with +world.
\ No newline at end of file diff --git a/code/modules/wiremod/shell/shell_items.html b/code/modules/wiremod/shell/shell_items.html new file mode 100644 index 0000000000000..db871b4ac3035 --- /dev/null +++ b/code/modules/wiremod/shell/shell_items.html @@ -0,0 +1 @@ +code/modules/wiremod/shell/shell_items.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/modules/wiremod/shell/shell_items.dm

/obj/item/shellPrinted out by protolathes. Screwdriver to complete the shell.
\ No newline at end of file diff --git a/code/world.html b/code/world.html new file mode 100644 index 0000000000000..b60110d56570c --- /dev/null +++ b/code/world.html @@ -0,0 +1 @@ +code/world.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

code/world.dm

/worldTwo possibilities exist: either we are alone in the Universe or we are not. Both are equally terrifying. ~ Arthur C. Clarke
\ No newline at end of file diff --git a/datum.html b/datum.html new file mode 100644 index 0000000000000..662e175f3c657 --- /dev/null +++ b/datum.html @@ -0,0 +1,254 @@ +/datum - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

datum

The absolute base class for everything

+

A datum instantiated has no physical world prescence, use an atom if you want something +that actually lives in the world

+

Be very mindful about adding variables to this class, they are inherited by every single +thing in the entire game, and so you can easily cause memory usage to rise a lot with careless +use of variables at this level

Vars

_active_timersActive timers with this datum as the target
_datum_componentsComponents attached to this datum
_listen_lookupAny datum registered to receive signals from this datum is in this list
_signal_procsLazy associated list in the structure of target -> list(signal -> proctype) that are run when the datum receives that signal
_status_traitsStatus traits attached to this datum. associative list of the form: list(trait name (string) = list(source1, source2, source3,...))
datum_flagsDatum level flags
filter_dataList for handling persistent filters.
gc_destroyedTick count time when this object was destroyed.
open_uisOpen uis owned by this datum +Lazy, since this case is semi rare
tgui_shared_statesglobal
weak_referenceA weak reference to another datum

Procs

AddElementTraitUsed to manage (typically non_bespoke) elements with multiple sources through traits +so we don't have to make them a components again. +The element will be later removed once all trait sources are gone, there's no need of a +"RemoveElementTrait" counterpart.
DestroyDefault implementation of clean-up code.
GenerateTagGenerate a tag for this /datum, if it implements one +Should be called as early as possible, best would be in New, to avoid weakref mistargets +Really just don't use this, you don't need it, global lists will do just fine MOST of the time +We really only use it for mobs to make id'ing people easier
GetComponentReturn any component assigned to this datum of the given type
GetComponentsGet all components of a given type that are attached to this datum
GetExactComponentReturn any component assigned to this datum of the exact given type
REPLACE_PRONOUNSA proc to replace pronouns in a string with the appropriate pronouns for a target atom. +Uses associative list access from a __DEFINE list, since associative access is slightly +faster
RegisterSignalRegister to listen for a signal from the passed in target
RegisterSignalsRegisters multiple signals to the same proc.
RemoveComponentSourceRemoves a component source from this datum
TakeComponentTransfer this component to another parent
TopicCalled when a href for this datum is clicked
TransferComponentsTransfer all components to target
UnregisterSignalStop listening to a given signal from target
_AddComponentCreates an instance of new_type in the datum and attaches to it as parent
_AddElementFinds the singleton for the element type given and attaches it to src
_LoadComponentGet existing component of type, or create it and return a reference to it
_RemoveElementFinds the singleton for the element type given and detaches it from src +You only need additional arguments beyond the type if you're using ELEMENT_BESPOKE
_SendSignalInternal proc to handle most all of the signaling procedure
_clear_signal_refsOnly override this if you know what you're doing. You do not know what you're doing +This is a threat
add_filter
add_filtersA version of add_filter that takes a list of filters to add rather than being individual, to limit calls to update_filters().
add_traitsProc that handles adding multiple traits to a target via a list. Must have a common source and target.
change_filter_priorityUpdates the priority of the passed filter key
deserialize_jsonDeserializes from JSON. Does not parse type.
deserialize_listAccepts a LIST from deserialize_datum. Should return whether or not the deserialization was successful.
dump_harddel_infoReturn text from this proc to provide extra context to hard deletes that happen to it +Optional, you should use this for cases where replication is difficult and extra context is required +Can be called more then once per object, use harddel_deets_dumped to avoid duplicate calls (I am so sorry)
get_filterReturns the filter associated with the passed key
get_filter_indexReturns the indice in filters of the given filter name. +If it is not found, returns null.
jatum_new_arglistGets the flat list that can be passed in a new /type(argslist(retval)) expression to recreate the datum. Must only return a list containing values that can be JATUM serialized
modify_filter
processThis proc is called on a datum on every "cycle" if it is being processed by a subsystem. The time between each cycle is determined by the subsystem's "wait" setting. +You can start and stop processing a datum using the START_PROCESSING and STOP_PROCESSING defines.
ref_search_detailsReturn info about us for reference searching purposes +Will be logged as a representation of this datum if it's a part of a search chain
remove_filterRemoves the passed filter, or multiple filters, if supplied with a list.
remove_traitsProc that handles removing multiple traits from a target via a list. Must have a common source and target.
selfdeleteCalls qdel on itself, because signals dont allow callbacks
serialize_jsonSerializes into JSON. Does not encode type.
serialize_listReturn a list of data which can be used to investigate the datum, also ensure that you set the semver in the options list
string_assoc_listCaches associative lists with non-numeric stringify-able index keys and stringify-able values (text/typepath -> text/path/number).
string_assoc_nested_listCaches associative nested lists with non-numeric stringify-able index keys and stringify-able values (text/typepath -> text/path/number).
string_numbers_listCaches lists of numeric values.
transition_filter
ui_actpublic
ui_assetspublic
ui_closepublic
ui_datapublic
ui_hostprivate
ui_interactpublic
ui_stateprivate
ui_static_datapublic
ui_statuspublic
update_filtersReapplies all the filters.
update_static_datapublic
update_static_data_for_all_viewerspublic
vv_do_topicThis proc is only called if everything topic-wise is verified. The only verifications that should happen here is things like permission checks! +href_list is a reference, modifying it in these procs WILL change the rest of the proc in topic.dm of admin/view_variables! +This proc is for "high level" actions like admin heal/set species/etc/etc. The low level debugging things should go in admin/view_variables/topic_basic.dm in case this runtimes.
vv_edit_varCalled when a var is edited with the new value to change to
vv_get_dropdownGets all the dropdown options in the vv menu. +When overriding, make sure to call . = ..() first and append to the result, that way parent items are always at the top and child items are further down. +Add separators by doing VV_DROPDOWN_OPTION("", "---")

Var Details

_active_timers

Active timers with this datum as the target

_datum_components

Components attached to this datum

+

Lazy associated list in the structure of type -> component/list of components

_listen_lookup

Any datum registered to receive signals from this datum is in this list

+

Lazy associated list in the structure of signal -> registree/list of registrees

_signal_procs

Lazy associated list in the structure of target -> list(signal -> proctype) that are run when the datum receives that signal

_status_traits

Status traits attached to this datum. associative list of the form: list(trait name (string) = list(source1, source2, source3,...))

datum_flags

Datum level flags

filter_data

List for handling persistent filters.

gc_destroyed

Tick count time when this object was destroyed.

+

If this is non zero then the object has been garbage collected and is awaiting either +a hard del by the GC subsystme, or to be autocollected (if it has no references)

open_uis

Open uis owned by this datum +Lazy, since this case is semi rare

tgui_shared_states

global

+

Associative list of JSON-encoded shared states that were set by +tgui clients.

weak_reference

A weak reference to another datum

Proc Details

AddElementTrait

Used to manage (typically non_bespoke) elements with multiple sources through traits +so we don't have to make them a components again. +The element will be later removed once all trait sources are gone, there's no need of a +"RemoveElementTrait" counterpart.

Destroy

Default implementation of clean-up code.

+

This should be overridden to remove all references pointing to the object being destroyed, if +you do override it, make sure to call the parent and return its return value by default

+

Return an appropriate QDEL_HINT to modify handling of your deletion; +in most cases this is QDEL_HINT_QUEUE.

+

The base case is responsible for doing the following

+ +

Returns QDEL_HINT_QUEUE

GenerateTag

Generate a tag for this /datum, if it implements one +Should be called as early as possible, best would be in New, to avoid weakref mistargets +Really just don't use this, you don't need it, global lists will do just fine MOST of the time +We really only use it for mobs to make id'ing people easier

GetComponent

Return any component assigned to this datum of the given type

+

This will throw an error if it's possible to have more than one component of that type on the parent

+

Arguments:

+

GetComponents

Get all components of a given type that are attached to this datum

+

Arguments:

+

GetExactComponent

Return any component assigned to this datum of the exact given type

+

This will throw an error if it's possible to have more than one component of that type on the parent

+

Arguments:

+

REPLACE_PRONOUNS

A proc to replace pronouns in a string with the appropriate pronouns for a target atom. +Uses associative list access from a __DEFINE list, since associative access is slightly +faster

RegisterSignal

Register to listen for a signal from the passed in target

+

This sets up a listening relationship such that when the target object emits a signal +the source datum this proc is called upon, will receive a callback to the given proctype +Use PROC_REF(procname), TYPE_PROC_REF(type,procname) or GLOBAL_PROC_REF(procname) macros to validate the passed in proc at compile time. +PROC_REF for procs defined on current type or its ancestors, TYPE_PROC_REF for procs defined on unrelated type and GLOBAL_PROC_REF for global procs. +Return values from procs registered must be a bitfield

+

Arguments:

+

RegisterSignals

Registers multiple signals to the same proc.

RemoveComponentSource

Removes a component source from this datum

TakeComponent

Transfer this component to another parent

+

Component is taken from source datum

+

Arguments:

+

Topic

Called when a href for this datum is clicked

+

Sends a COMSIG_TOPIC signal

TransferComponents

Transfer all components to target

+

All components from source datum are taken

+

Arguments:

+

UnregisterSignal

Stop listening to a given signal from target

+

Breaks the relationship between target and source datum, removing the callback when the signal fires

+

Doesn't care if a registration exists or not

+

Arguments:

+

_AddComponent

Creates an instance of new_type in the datum and attaches to it as parent

+

Sends the COMSIG_COMPONENT_ADDED signal to the datum

+

Returns the component that was created. Or the old component in a dupe situation where COMPONENT_DUPE_UNIQUE was set

+

If this tries to add a component to an incompatible type, the component will be deleted and the result will be null. This is very unperformant, try not to do it

+

Properly handles duplicate situations based on the dupe_mode var

_AddElement

Finds the singleton for the element type given and attaches it to src

_LoadComponent

Get existing component of type, or create it and return a reference to it

+

Use this if the item needs to exist at the time of this call, but may not have been created before now

+

Arguments:

+

_RemoveElement

Finds the singleton for the element type given and detaches it from src +You only need additional arguments beyond the type if you're using ELEMENT_BESPOKE

_SendSignal

Internal proc to handle most all of the signaling procedure

+

Will runtime if used on datums with an empty lookup list

+

Use the SEND_SIGNAL define instead

_clear_signal_refs

Only override this if you know what you're doing. You do not know what you're doing +This is a threat

add_filter

add_filters

A version of add_filter that takes a list of filters to add rather than being individual, to limit calls to update_filters().

add_traits

Proc that handles adding multiple traits to a target via a list. Must have a common source and target.

change_filter_priority

Updates the priority of the passed filter key

deserialize_json

Deserializes from JSON. Does not parse type.

deserialize_list

Accepts a LIST from deserialize_datum. Should return whether or not the deserialization was successful.

dump_harddel_info

Return text from this proc to provide extra context to hard deletes that happen to it +Optional, you should use this for cases where replication is difficult and extra context is required +Can be called more then once per object, use harddel_deets_dumped to avoid duplicate calls (I am so sorry)

get_filter

Returns the filter associated with the passed key

get_filter_index

Returns the indice in filters of the given filter name. +If it is not found, returns null.

jatum_new_arglist

Gets the flat list that can be passed in a new /type(argslist(retval)) expression to recreate the datum. Must only return a list containing values that can be JATUM serialized

modify_filter

process

This proc is called on a datum on every "cycle" if it is being processed by a subsystem. The time between each cycle is determined by the subsystem's "wait" setting. +You can start and stop processing a datum using the START_PROCESSING and STOP_PROCESSING defines.

+

Since the wait setting of a subsystem can be changed at any time, it is important that any rate-of-change that you implement in this proc is multiplied by the seconds_per_tick that is sent as a parameter, +Additionally, any "prob" you use in this proc should instead use the SPT_PROB define to make sure that the final probability per second stays the same even if the subsystem's wait is altered. +Examples where this must be considered:

+ +

If you override this do not call parent, as it will return PROCESS_KILL. This is done to prevent objects that dont override process() from staying in the processing list

ref_search_details

Return info about us for reference searching purposes +Will be logged as a representation of this datum if it's a part of a search chain

remove_filter

Removes the passed filter, or multiple filters, if supplied with a list.

remove_traits

Proc that handles removing multiple traits from a target via a list. Must have a common source and target.

selfdelete

Calls qdel on itself, because signals dont allow callbacks

serialize_json

Serializes into JSON. Does not encode type.

serialize_list

Return a list of data which can be used to investigate the datum, also ensure that you set the semver in the options list

string_assoc_list

Caches associative lists with non-numeric stringify-able index keys and stringify-able values (text/typepath -> text/path/number).

string_assoc_nested_list

Caches associative nested lists with non-numeric stringify-able index keys and stringify-able values (text/typepath -> text/path/number).

string_numbers_list

Caches lists of numeric values.

transition_filter

ui_act

public

+

Called on a UI when the UI receieves a href. +Think of this as Topic().

+

required action string The action/button that has been invoked by the user. +required params list A list of parameters attached to the button.

+

return bool If the user's input has been handled and the UI should update.

ui_assets

public

+

Called on an object when a tgui object is being created, allowing you to +push various assets to tgui, for examples spritesheets.

+

return list List of asset datums or file paths.

ui_close

public

+

Called on a UI's object when the UI is closed, not to be confused with +client/verb/uiclose(), which closes the ui window

ui_data

public

+

Data to be sent to the UI. +This must be implemented for a UI to work.

+

required user mob The mob interacting with the UI.

+

return list Data to be sent to the UI.

ui_host

private

+

The UI's host object (usually src_object). +This allows modules/datums to have the UI attached to them, +and be a part of another object.

ui_interact

public

+

Used to open and update UIs. +If this proc is not implemented properly, the UI will not update correctly.

+

required user mob The mob who opened/is using the UI. +optional ui datum/tgui The UI to be updated, if it exists.

ui_state

private

+

The UI's state controller to be used for created uis +This is a proc over a var for memory reasons

ui_static_data

public

+

Static Data to be sent to the UI.

+

Static data differs from normal data in that it's large data that should be +sent infrequently. This is implemented optionally for heavy uis that would +be sending a lot of redundant data frequently. Gets squished into one +object on the frontend side, but the static part is cached.

+

required user mob The mob interacting with the UI.

+

return list Statuic Data to be sent to the UI.

ui_status

public

+

Checks the UI state for a mob.

+

required user mob The mob who opened/is using the UI. +required state datum/ui_state The state to check.

+

return UI_state The state of the UI.

update_filters

Reapplies all the filters.

update_static_data

public

+

Forces an update on static data. Should be done manually whenever something +happens to change static data.

+

required user the mob currently interacting with the ui +optional ui ui to be updated

update_static_data_for_all_viewers

public

+

Will force an update on static data for all viewers. +Should be done manually whenever something happens to +change static data.

vv_do_topic

This proc is only called if everything topic-wise is verified. The only verifications that should happen here is things like permission checks! +href_list is a reference, modifying it in these procs WILL change the rest of the proc in topic.dm of admin/view_variables! +This proc is for "high level" actions like admin heal/set species/etc/etc. The low level debugging things should go in admin/view_variables/topic_basic.dm in case this runtimes.

vv_edit_var

Called when a var is edited with the new value to change to

vv_get_dropdown

Gets all the dropdown options in the vv menu. +When overriding, make sure to call . = ..() first and append to the result, that way parent items are always at the top and child items are further down. +Add separators by doing VV_DROPDOWN_OPTION("", "---")

\ No newline at end of file diff --git a/datum/abductor_gear.html b/datum/abductor_gear.html new file mode 100644 index 0000000000000..28f73581c0a14 --- /dev/null +++ b/datum/abductor_gear.html @@ -0,0 +1 @@ +/datum/abductor_gear - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

abductor_gear

Vars

build_pathBuild path of the gear itself
categoryCategory of the gear
costCredit cost of the gear
descriptionDescription of the gear
idUnique ID of the gear
nameName of the gear

Var Details

build_path

Build path of the gear itself

category

Category of the gear

cost

Credit cost of the gear

description

Description of the gear

id

Unique ID of the gear

name

Name of the gear

\ No newline at end of file diff --git a/datum/achievement_data.html b/datum/achievement_data.html new file mode 100644 index 0000000000000..27da5dff3b711 --- /dev/null +++ b/datum/achievement_data.html @@ -0,0 +1 @@ +/datum/achievement_data - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

achievement_data

Datum that handles

Vars

dataUp to date list of all achievements and their info.
initializedHave we done our set-up yet?
original_cached_dataOriginal status of achievement.
owner_ckeyCkey of this achievement data's owner

Procs

get_achievement_statusGetter for the status/score of an achievement
get_changed_dataGets list of changed rows in MassInsert format
get_dataUpdates local cache with db data for the given achievement type if it wasn't loaded yet.
unlockUnlocks an achievement of a specific type. achievement type is a typepath to the award, user is the mob getting the award, and value is an optional value to be used for defining a score to add to the leaderboard

Var Details

data

Up to date list of all achievements and their info.

initialized

Have we done our set-up yet?

original_cached_data

Original status of achievement.

owner_ckey

Ckey of this achievement data's owner

Proc Details

get_achievement_status

Getter for the status/score of an achievement

get_changed_data

Gets list of changed rows in MassInsert format

get_data

Updates local cache with db data for the given achievement type if it wasn't loaded yet.

unlock

Unlocks an achievement of a specific type. achievement type is a typepath to the award, user is the mob getting the award, and value is an optional value to be used for defining a score to add to the leaderboard

\ No newline at end of file diff --git a/datum/achievement_report.html b/datum/achievement_report.html new file mode 100644 index 0000000000000..89b2b4baa07da --- /dev/null +++ b/datum/achievement_report.html @@ -0,0 +1 @@ +/datum/achievement_report - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

achievement_report

A datum containing the info necessary for an achievement readout, reported and added to the global list in /datum/award/achievement/on_unlock(mob/user)

Vars

award_locationThe name of the area we earned this cheevo in
cheevoThe achievement that was won.
winnerThe winner of this achievement.
winner_keyThe ckey of our winner

Var Details

award_location

The name of the area we earned this cheevo in

cheevo

The achievement that was won.

winner

The winner of this achievement.

winner_key

The ckey of our winner

\ No newline at end of file diff --git a/datum/action.html b/datum/action.html new file mode 100644 index 0000000000000..1259d4ace723a --- /dev/null +++ b/datum/action.html @@ -0,0 +1,39 @@ +/datum/action - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Action system

A simple base for an modular behavior attached to atom or datum.

Vars

action_disabledToggles whether this action is usable or not
background_iconThis is the file for the BACKGROUND underlay icon of the button
background_icon_stateThis is the icon state state for the BACKGROUND underlay icon of the button +(If set to ACTION_BUTTON_DEFAULT_BACKGROUND, uses the hud's default background)
button_iconThis is the file for the icon that appears on the button
button_icon_stateThis is the icon state for the icon that appears on the button
buttontooltipstyleThe style the button's tooltips appear to be
can_be_sharedCan this action be shared with our rider?
check_flagsFlags that will determine of the owner / user of the action can... use the action
default_button_positionWhere any buttons we create should be by default. Accepts screen_loc and location defines
descThe description of what the action does, shown in button tooltips
full_keyfull key we are bound to
nameThe name of the action
overlay_iconThis is the file for any FOREGROUND overlay icons on the button (such as borders)
overlay_icon_stateThis is the icon state for any FOREGROUND overlay icons on the button (such as borders)
ownerThis is who currently owns the action, and most often, this is who is using the action if it is triggered +This can be the same as "target" but is not ALWAYS the same - this is set and unset with Grant() and Remove()
owner_has_controlIf False, the owner of this action does not get a hud and cannot activate it on their own
power_explanationExtended description of the action, usually shown in an antag UI.
show_to_observersIf TRUE, this action button will be shown to observers / other mobs who view from this action's owner's eyes. +Used in /mob/proc/show_other_mob_action_buttons
targetThe target the action is attached to. If the target datum is deleted, the action is as well. +Set in New() via the proc link_to(). PLEASE set a target if you're making an action
transparent_when_unavailableWhether the button becomes transparent when it can't be used, or just reddened
viewersList of all mobs that are viewing our action button -> A unique movable for them to view.

Procs

GiveActionGives our action to the passed viewer. +Puts our action in their actions list and shows them the button.
GrantGrants the action to the passed mob, making it the owner
HideFromRemoves our action from the passed viewer.
IsAvailableWhether our action is currently available to use or not
RemoveRemove the passed mob from being owner of our action
ShowToAdds our action button to the screen of the passed viewer.
TriggerActually triggers the effects of the action. +Called when the on-screen button is clicked, for example.
apply_button_backgroundCreates the background underlay for the button
apply_button_iconApplies our button icon and icon state to the button
apply_button_overlayApplies any overlays to our button
build_all_button_iconsBuilds / updates all buttons we have shared or given out
build_button_iconBuilds the icon of the button.
clear_refSignal proc that clears any references based on the owner or target deleting +If the owner's deleted, we will simply remove from them, but if the target's deleted, we will self-delete
create_buttonCreates an action button movable for the passed mob, and returns it.
is_action_activeChecks if our action is actively selected. Used for selecting icons primarily.
link_toLinks the passed target to our action, registering any relevant signals
on_target_icon_updateUpdates our buttons if our target's icon was updated
on_target_mind_swappedSignal proc for COMSIG_MIND_TRANSFERRED - for minds, transfers our action to our new mob on mind transfer
update_button_nameUpdates the name and description of the button to match our action name and discription.
update_button_statusAny other miscellaneous "status" updates within the action button is handled here, +such as redding out when unavailable or modifying maptext.
update_status_on_signalA general use signal proc that reacts to an event and updates JUST our button's status

Var Details

action_disabled

Toggles whether this action is usable or not

background_icon

This is the file for the BACKGROUND underlay icon of the button

background_icon_state

This is the icon state state for the BACKGROUND underlay icon of the button +(If set to ACTION_BUTTON_DEFAULT_BACKGROUND, uses the hud's default background)

button_icon

This is the file for the icon that appears on the button

button_icon_state

This is the icon state for the icon that appears on the button

buttontooltipstyle

The style the button's tooltips appear to be

can_be_shared

Can this action be shared with our rider?

check_flags

Flags that will determine of the owner / user of the action can... use the action

default_button_position

Where any buttons we create should be by default. Accepts screen_loc and location defines

desc

The description of what the action does, shown in button tooltips

full_key

full key we are bound to

name

The name of the action

overlay_icon

This is the file for any FOREGROUND overlay icons on the button (such as borders)

overlay_icon_state

This is the icon state for any FOREGROUND overlay icons on the button (such as borders)

owner

This is who currently owns the action, and most often, this is who is using the action if it is triggered +This can be the same as "target" but is not ALWAYS the same - this is set and unset with Grant() and Remove()

owner_has_control

If False, the owner of this action does not get a hud and cannot activate it on their own

power_explanation

Extended description of the action, usually shown in an antag UI.

show_to_observers

If TRUE, this action button will be shown to observers / other mobs who view from this action's owner's eyes. +Used in /mob/proc/show_other_mob_action_buttons

target

The target the action is attached to. If the target datum is deleted, the action is as well. +Set in New() via the proc link_to(). PLEASE set a target if you're making an action

transparent_when_unavailable

Whether the button becomes transparent when it can't be used, or just reddened

viewers

List of all mobs that are viewing our action button -> A unique movable for them to view.

Proc Details

GiveAction

Gives our action to the passed viewer. +Puts our action in their actions list and shows them the button.

Grant

Grants the action to the passed mob, making it the owner

HideFrom

Removes our action from the passed viewer.

IsAvailable

Whether our action is currently available to use or not

+

Remove

Remove the passed mob from being owner of our action

ShowTo

Adds our action button to the screen of the passed viewer.

Trigger

Actually triggers the effects of the action. +Called when the on-screen button is clicked, for example.

apply_button_background

Creates the background underlay for the button

+

current_button - what button are we editing? +force - whether an update is forced regardless of existing status

apply_button_icon

Applies our button icon and icon state to the button

+

current_button - what button are we editing? +force - whether an update is forced regardless of existing status

apply_button_overlay

Applies any overlays to our button

+

current_button - what button are we editing? +force - whether an update is forced regardless of existing status

build_all_button_icons

Builds / updates all buttons we have shared or given out

build_button_icon

Builds the icon of the button.

+

Concept:

+ +

button - which button we are modifying the icon of +force - whether we're forcing a full update

clear_ref

Signal proc that clears any references based on the owner or target deleting +If the owner's deleted, we will simply remove from them, but if the target's deleted, we will self-delete

create_button

Creates an action button movable for the passed mob, and returns it.

is_action_active

Checks if our action is actively selected. Used for selecting icons primarily.

Links the passed target to our action, registering any relevant signals

on_target_icon_update

Updates our buttons if our target's icon was updated

on_target_mind_swapped

Signal proc for COMSIG_MIND_TRANSFERRED - for minds, transfers our action to our new mob on mind transfer

update_button_name

Updates the name and description of the button to match our action name and discription.

+

current_button - what button are we editing? +force - whether an update is forced regardless of existing status

update_button_status

Any other miscellaneous "status" updates within the action button is handled here, +such as redding out when unavailable or modifying maptext.

+

current_button - what button are we editing? +force - whether an update is forced regardless of existing status

update_status_on_signal

A general use signal proc that reacts to an event and updates JUST our button's status

\ No newline at end of file diff --git a/datum/action/chameleon_outfit.html b/datum/action/chameleon_outfit.html new file mode 100644 index 0000000000000..11c08e52b7703 --- /dev/null +++ b/datum/action/chameleon_outfit.html @@ -0,0 +1,7 @@ +/datum/action/chameleon_outfit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chameleon_outfit

Vars

applyingDetermines when we're in use
custom_outfitsAssoc list of custom outfit names ("Custom outfit 1", "Custom outfit 2", etc) to list of all item typepaths saved in that outfit
max_custom_oufitsCap on how many custom outfits we can save
next_custom_outfitUsed to generate the next custom outfit name, also to track which next to override if we've passed the limit
outfit_optionsCached assoc list of job outfit datums by their names that we can select +If you intend on editing this, ensure you are copying it first

Procs

apply_outfitApplies the given outfit to all chameleon actions the owner has

Var Details

applying

Determines when we're in use

custom_outfits

Assoc list of custom outfit names ("Custom outfit 1", "Custom outfit 2", etc) to list of all item typepaths saved in that outfit

max_custom_oufits

Cap on how many custom outfits we can save

next_custom_outfit

Used to generate the next custom outfit name, also to track which next to override if we've passed the limit

outfit_options

Cached assoc list of job outfit datums by their names that we can select +If you intend on editing this, ensure you are copying it first

Proc Details

apply_outfit

Applies the given outfit to all chameleon actions the owner has

+
\ No newline at end of file diff --git a/datum/action/change_pointer_color.html b/datum/action/change_pointer_color.html new file mode 100644 index 0000000000000..053c7602844ef --- /dev/null +++ b/datum/action/change_pointer_color.html @@ -0,0 +1 @@ +/datum/action/change_pointer_color - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

change_pointer_color

Vars

arrow_colorthe color of our arrow
arrow_overlaythe arrow overlay shown on the button

Var Details

arrow_color

the color of our arrow

arrow_overlay

the arrow overlay shown on the button

\ No newline at end of file diff --git a/datum/action/changeling.html b/datum/action/changeling.html new file mode 100644 index 0000000000000..882a5de2b941e --- /dev/null +++ b/datum/action/changeling.html @@ -0,0 +1,21 @@ +/datum/action/changeling - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

changeling

Vars

activeused by a few powers that toggle
chemical_costHow many changeling chems it costs to use
disabled_by_fireDoes this ability stop working if you are burning?
dna_costCost of the ability in dna points, negative values are not valid
helptextDetails displayed in fine print within the changling emporium
ignores_fakedeathusable when the changeling is in death coma
req_absorbsSimilar to req_dna, but only gained from absorbing, not DNA sting
req_dnaAmount of dna needed to use this ability. Note, changelings always have atleast 1
req_humanIf you need to be humanoid to use this ability (disincludes monkeys)
req_statMaximum stat before the ability is blocked. +For example, UNCONSCIOUS prevents it from being used when in hard crit or dead, +while DEAD allows the ability to be used on any stat values.

Procs

try_to_stingContrary to the name, this proc isn't just used by changeling stings. It handles the activation of the action and the deducation of its cost. +The order of the proc chain is: +can_sting(). Should this fail, the process gets aborted early. +sting_action(). This proc usually handles the actual effect of the action. +Should sting_action succeed the following will be done: +sting_feedback(). Produces feedback on the performed action. Don't ask me why this isn't handled in sting_action() +The deduction of the cost of this power. +Returns TRUE on a successful activation.

Var Details

active

used by a few powers that toggle

chemical_cost

How many changeling chems it costs to use

disabled_by_fire

Does this ability stop working if you are burning?

dna_cost

Cost of the ability in dna points, negative values are not valid

+

Special numbers include CHANGELING_POWER_INNATE, which are given to changeling for free without bring prompted +and CHANGELING_POWER_UNOBTAINABLE, which are not available for purchase in the changeling emporium

helptext

Details displayed in fine print within the changling emporium

ignores_fakedeath

usable when the changeling is in death coma

req_absorbs

Similar to req_dna, but only gained from absorbing, not DNA sting

req_dna

Amount of dna needed to use this ability. Note, changelings always have atleast 1

req_human

If you need to be humanoid to use this ability (disincludes monkeys)

req_stat

Maximum stat before the ability is blocked. +For example, UNCONSCIOUS prevents it from being used when in hard crit or dead, +while DEAD allows the ability to be used on any stat values.

Proc Details

try_to_sting

Contrary to the name, this proc isn't just used by changeling stings. It handles the activation of the action and the deducation of its cost. +The order of the proc chain is: +can_sting(). Should this fail, the process gets aborted early. +sting_action(). This proc usually handles the actual effect of the action. +Should sting_action succeed the following will be done: +sting_feedback(). Produces feedback on the performed action. Don't ask me why this isn't handled in sting_action() +The deduction of the cost of this power. +Returns TRUE on a successful activation.

\ No newline at end of file diff --git a/datum/action/changeling/absorb_dna.html b/datum/action/changeling/absorb_dna.html new file mode 100644 index 0000000000000..4ecf3801ef9db --- /dev/null +++ b/datum/action/changeling/absorb_dna.html @@ -0,0 +1 @@ +/datum/action/changeling/absorb_dna - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

absorb_dna

Vars

is_absorbingif we're currently absorbing, used for sanity

Var Details

is_absorbing

if we're currently absorbing, used for sanity

\ No newline at end of file diff --git a/datum/action/changeling/augmented_eyesight.html b/datum/action/changeling/augmented_eyesight.html new file mode 100644 index 0000000000000..76ed5bb135265 --- /dev/null +++ b/datum/action/changeling/augmented_eyesight.html @@ -0,0 +1 @@ +/datum/action/changeling/augmented_eyesight - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

augmented_eyesight

Procs

eye_implantedSignal proc to grant the correct level of flash sensitivity
eye_removedSignal proc to remove flash sensitivity when the eyes are removed

Proc Details

eye_implanted

Signal proc to grant the correct level of flash sensitivity

eye_removed

Signal proc to remove flash sensitivity when the eyes are removed

\ No newline at end of file diff --git a/datum/action/changeling/darkness_adaptation.html b/datum/action/changeling/darkness_adaptation.html new file mode 100644 index 0000000000000..51f19299a10b2 --- /dev/null +++ b/datum/action/changeling/darkness_adaptation.html @@ -0,0 +1 @@ +/datum/action/changeling/darkness_adaptation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

darkness_adaptation

Vars

is_activeis ability active (we are invisible)?
recharge_slowdownHow much we slow chemical regeneration while active, in chems per second

Procs

eye_implantedSignal proc to grant the correct level of flash sensitivity
eye_removedSignal proc to remove flash sensitivity when the eyes are removed

Var Details

is_active

is ability active (we are invisible)?

recharge_slowdown

How much we slow chemical regeneration while active, in chems per second

Proc Details

eye_implanted

Signal proc to grant the correct level of flash sensitivity

eye_removed

Signal proc to remove flash sensitivity when the eyes are removed

\ No newline at end of file diff --git a/datum/action/changeling/defib_grasp.html b/datum/action/changeling/defib_grasp.html new file mode 100644 index 0000000000000..1b9996eababfb --- /dev/null +++ b/datum/action/changeling/defib_grasp.html @@ -0,0 +1,3 @@ +/datum/action/changeling/defib_grasp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

defib_grasp

Vars

heal_flagsFlags to pass to fully heal when we get zapped

Procs

execute_defibExecutes the defib action, causing the changeling to fully heal and get up.
on_defibbedSignal proc for COMSIG_DEFIBRILLATOR_PRE_HELP_ZAP.
remove_armsRemoves the arms of the defibber if they're a carbon, and stuns them for a bit. +If they're a cyborg, they'll just get stunned instead.

Var Details

heal_flags

Flags to pass to fully heal when we get zapped

Proc Details

execute_defib

Executes the defib action, causing the changeling to fully heal and get up.

on_defibbed

Signal proc for COMSIG_DEFIBRILLATOR_PRE_HELP_ZAP.

remove_arms

Removes the arms of the defibber if they're a carbon, and stuns them for a bit. +If they're a cyborg, they'll just get stunned instead.

\ No newline at end of file diff --git a/datum/action/changeling/fakedeath.html b/datum/action/changeling/fakedeath.html new file mode 100644 index 0000000000000..82b5e38a63f19 --- /dev/null +++ b/datum/action/changeling/fakedeath.html @@ -0,0 +1,11 @@ +/datum/action/changeling/fakedeath - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fakedeath

Vars

fakedeath_durationHow long it takes for revival to ready upon entering stasis. +The changeling can opt to stay in fakedeath for longer, though.
revive_readyIf TRUE, we're ready to revive and can click the button to heal.

Procs

disable_stasis_and_fakedeathRemoves the signals for fakedeath and listening for hapless doctors +healing a changeling who went into stasis after actually dying, and +also removes changeling stasis
enable_fakedeathUsed to enable fakedeath and register relevant signals / start timers
enable_reviveSets [revive_ready] to TRUE and updates the button icons.
fakedeath_resetSignal proc to stop the revival process if the changeling exits their stasis early.
on_stat_changeSignal proc to exit fakedeath early if we're revived from being previously dead
reset_chemical_costThis proc is called to reset the chemical cost of the revival +as well as the revive ready flag and button states.
try_to_stingWe wait until after we actually deduct chemical cost (or don't deduct +if it's the 0 cost we get for revival) before we reset the chemical cost

Var Details

fakedeath_duration

How long it takes for revival to ready upon entering stasis. +The changeling can opt to stay in fakedeath for longer, though.

revive_ready

If TRUE, we're ready to revive and can click the button to heal.

Proc Details

disable_stasis_and_fakedeath

Removes the signals for fakedeath and listening for hapless doctors +healing a changeling who went into stasis after actually dying, and +also removes changeling stasis

enable_fakedeath

Used to enable fakedeath and register relevant signals / start timers

enable_revive

Sets [revive_ready] to TRUE and updates the button icons.

fakedeath_reset

Signal proc to stop the revival process if the changeling exits their stasis early.

on_stat_change

Signal proc to exit fakedeath early if we're revived from being previously dead

reset_chemical_cost

This proc is called to reset the chemical cost of the revival +as well as the revive ready flag and button states.

try_to_sting

We wait until after we actually deduct chemical cost (or don't deduct +if it's the 0 cost we get for revival) before we reset the chemical cost

\ No newline at end of file diff --git a/datum/action/changeling/headcrab.html b/datum/action/changeling/headcrab.html new file mode 100644 index 0000000000000..5d3b53a4ae384 --- /dev/null +++ b/datum/action/changeling/headcrab.html @@ -0,0 +1 @@ +/datum/action/changeling/headcrab - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

headcrab

Procs

spawn_headcrabCreates the headrab to occupy

Proc Details

spawn_headcrab

Creates the headrab to occupy

\ No newline at end of file diff --git a/datum/action/changeling/lesserform.html b/datum/action/changeling/lesserform.html new file mode 100644 index 0000000000000..866034a8a9781 --- /dev/null +++ b/datum/action/changeling/lesserform.html @@ -0,0 +1 @@ +/datum/action/changeling/lesserform - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lesserform

Vars

transform_instantlyWhether to allow the transformation animation to play

Procs

become_monkeyBecome a monkey
changed_formCalled when you become a human or monkey, whether or not it was voluntary
select_formReturns the form to transform back into, automatically selects your only profile if you only have one
unmonkeyStop being a monkey

Var Details

transform_instantly

Whether to allow the transformation animation to play

Proc Details

become_monkey

Become a monkey

changed_form

Called when you become a human or monkey, whether or not it was voluntary

select_form

Returns the form to transform back into, automatically selects your only profile if you only have one

unmonkey

Stop being a monkey

\ No newline at end of file diff --git a/datum/action/changeling/mmi_talk.html b/datum/action/changeling/mmi_talk.html new file mode 100644 index 0000000000000..123359d50905a --- /dev/null +++ b/datum/action/changeling/mmi_talk.html @@ -0,0 +1,5 @@ +/datum/action/changeling/mmi_talk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mmi_talk

Vars

brain_refReference to the brain we're talking through.
mmi_viewA map view of the area around the MMI.
mmi_view_backgroundThe background for the MMI map view.
mmi_view_keyThe key that the map view uses.
update_view_trackerA movement detector that updates the map view when the MMI moves around.

Procs

relay_hearingSignal proc for COMSIG_MOVABLE_HEAR to relay stuff the MMI hears to the ling. +Not super good, but it works.
update_mmi_viewUsed in callbacks to update the map view when the MMI moves.

Var Details

brain_ref

Reference to the brain we're talking through.

+

Set when created via the ling decoy component. +If the brain ends up being qdelled, this action will also be qdelled, and thus this ref is cleared.

mmi_view

A map view of the area around the MMI.

mmi_view_background

The background for the MMI map view.

mmi_view_key

The key that the map view uses.

update_view_tracker

A movement detector that updates the map view when the MMI moves around.

Proc Details

relay_hearing

Signal proc for COMSIG_MOVABLE_HEAR to relay stuff the MMI hears to the ling. +Not super good, but it works.

update_mmi_view

Used in callbacks to update the map view when the MMI moves.

\ No newline at end of file diff --git a/datum/action/changeling/sting/transformation.html b/datum/action/changeling/sting/transformation.html new file mode 100644 index 0000000000000..b96f2051a62aa --- /dev/null +++ b/datum/action/changeling/sting/transformation.html @@ -0,0 +1 @@ +/datum/action/changeling/sting/transformation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

transformation

Vars

selected_dnaA reference to our active profile, which we grab DNA from
sting_durationDuration of the sting
verify_valid_speciesSet this to false via VV to allow golem, plasmaman, or monkey changelings to turn other people into golems, plasmamen, or monkeys

Var Details

selected_dna

A reference to our active profile, which we grab DNA from

sting_duration

Duration of the sting

verify_valid_species

Set this to false via VV to allow golem, plasmaman, or monkey changelings to turn other people into golems, plasmamen, or monkeys

\ No newline at end of file diff --git a/datum/action/changeling/suit.html b/datum/action/changeling/suit.html new file mode 100644 index 0000000000000..e66dc52673ca0 --- /dev/null +++ b/datum/action/changeling/suit.html @@ -0,0 +1 @@ +/datum/action/changeling/suit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

suit

Procs

became_monkeyRemove suit if we become a monkey

Proc Details

became_monkey

Remove suit if we become a monkey

\ No newline at end of file diff --git a/datum/action/changeling/void_adaption.html b/datum/action/changeling/void_adaption.html new file mode 100644 index 0000000000000..bf881b42cbc6a --- /dev/null +++ b/datum/action/changeling/void_adaption.html @@ -0,0 +1 @@ +/datum/action/changeling/void_adaption - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

void_adaption

Vars

currently_activeAre we currently protecting our user?
gain_traitsTraits we apply to become immune to the environment
recharge_slowdownHow much we slow chemical regeneration while active, in chems per second

Procs

check_environmentChecks if we would be providing any useful benefit at present
on_removed_adaptionCalled when we stop being adapted

Var Details

currently_active

Are we currently protecting our user?

gain_traits

Traits we apply to become immune to the environment

recharge_slowdown

How much we slow chemical regeneration while active, in chems per second

Proc Details

check_environment

Checks if we would be providing any useful benefit at present

on_removed_adaption

Called when we stop being adapted

\ No newline at end of file diff --git a/datum/action/changeling/weapon.html b/datum/action/changeling/weapon.html new file mode 100644 index 0000000000000..2d2dee85fdbb1 --- /dev/null +++ b/datum/action/changeling/weapon.html @@ -0,0 +1 @@ +/datum/action/changeling/weapon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

weapon

Procs

became_monkeyRemove weapons if we become a monkey
unequip_heldRemoves weapon if it exists, returns true if we removed something

Proc Details

became_monkey

Remove weapons if we become a monkey

unequip_held

Removes weapon if it exists, returns true if we removed something

\ No newline at end of file diff --git a/datum/action/consume.html b/datum/action/consume.html new file mode 100644 index 0000000000000..83a9fa58585a7 --- /dev/null +++ b/datum/action/consume.html @@ -0,0 +1 @@ +/datum/action/consume - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

consume

This action lets you consume the mob you're currently pulling. I'M GONNA CONSUUUUUME (this is considered one of the funny memes in the 2019-2020 era)

Vars

vored_mobThe mob thats being consumed by this creature

Procs

NewRegister for owner death
TriggerTry to consume the pulled mob
processGain health for the consumption and dump some brute loss on the target.
start_consumingStart allowing this datum to process to handle the damage done to this mob.
stop_consumingStop consuming the mob; dump them on the floor

Var Details

vored_mob

The mob thats being consumed by this creature

Proc Details

New

Register for owner death

Trigger

Try to consume the pulled mob

process

Gain health for the consumption and dump some brute loss on the target.

start_consuming

Start allowing this datum to process to handle the damage done to this mob.

stop_consuming

Stop consuming the mob; dump them on the floor

\ No newline at end of file diff --git a/datum/action/cooldown.html b/datum/action/cooldown.html new file mode 100644 index 0000000000000..a0de1316b5c29 --- /dev/null +++ b/datum/action/cooldown.html @@ -0,0 +1,9 @@ +/datum/action/cooldown - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cooldown

Preset for an action that has a cooldown.

Vars

active_background_icon_stateThe icon state the background uses when active
active_icon_stateThe active icon state of the spell's button icon, used for editing the icon "on"
active_overlay_icon_stateThe active icon_state of the overlay we apply
base_background_icon_stateThe base icon_state of this action's background
base_icon_stateThe base icon state of the spell's button icon, used for editing the icon "off"
base_overlay_icon_stateThe base icon_state of the overlay we apply
click_cd_overrideThe cooldown added onto the user's next click.
click_to_activateSetting for intercepting clicks before activating the ability
cooldown_roundingSignificant figures to round cooldown to
cooldown_timeThe default cooldown applied when StartCooldown() is called
initialized_actionsList of prerequisite actions that have been initialized
melee_cooldown_timeThe default melee cooldown applied after the ability ends
next_melee_use_timeThe actual next time the owner of this action can melee
next_use_timeThe actual next time this ability can be used
panelThe stat panel this action shows up in the stat panel in. If null, will not show up.
ranged_mousepointerWhat icon to replace our mouse cursor with when active. Optional
sequence_actionsList of prerequisite actions that are used in this sequenced ability, you cannot put other sequenced abilities in this
shared_cooldownShares cooldowns with other abiliies, bitflag
text_cooldownWhether or not you want the cooldown for the ability to display in text form
unset_after_clickIf TRUE, we will unset after using our click intercept.

Procs

ActivateTo be implemented by subtypes (if not generic)
InterceptClickOnIntercepts client owner clicks to activate the ability
PreActivateFor signal calling
ResetCooldownResets the cooldown of this ability
StartCooldownStarts a cooldown time to be shared with similar abilities +Will use default cooldown time if an override is not specified
StartCooldownOthersStarts a cooldown time for other abilities that share a cooldown with this. Has some niche usage with more complicated attack ai! +Will use default cooldown time if an override is not specified
StartCooldownSelfStarts a cooldown time for this ability only +Will use default cooldown time if an override is not specified
create_sequence_actionsInitializes any sequence actions
disableDisables this cooldown action
disable_cooldown_actionsDisables all cooldown actions
enableRe-enables this cooldown action
enable_cooldown_actionsRe-enables all cooldown actions
handle_melee_attackCancels melee attacks if they are on cooldown.
set_click_abilitySet our action as the click override on the passed mob.
set_statpanel_formatFormats the action to be returned to the stat panel.
unset_click_abilityUnset our action as the click override of the passed mob.

Var Details

active_background_icon_state

The icon state the background uses when active

active_icon_state

The active icon state of the spell's button icon, used for editing the icon "on"

active_overlay_icon_state

The active icon_state of the overlay we apply

base_background_icon_state

The base icon_state of this action's background

base_icon_state

The base icon state of the spell's button icon, used for editing the icon "off"

base_overlay_icon_state

The base icon_state of the overlay we apply

click_cd_override

The cooldown added onto the user's next click.

click_to_activate

Setting for intercepting clicks before activating the ability

cooldown_rounding

Significant figures to round cooldown to

cooldown_time

The default cooldown applied when StartCooldown() is called

initialized_actions

List of prerequisite actions that have been initialized

melee_cooldown_time

The default melee cooldown applied after the ability ends

next_melee_use_time

The actual next time the owner of this action can melee

next_use_time

The actual next time this ability can be used

panel

The stat panel this action shows up in the stat panel in. If null, will not show up.

ranged_mousepointer

What icon to replace our mouse cursor with when active. Optional

sequence_actions

List of prerequisite actions that are used in this sequenced ability, you cannot put other sequenced abilities in this

shared_cooldown

Shares cooldowns with other abiliies, bitflag

text_cooldown

Whether or not you want the cooldown for the ability to display in text form

unset_after_click

If TRUE, we will unset after using our click intercept.

Proc Details

Activate

To be implemented by subtypes (if not generic)

InterceptClickOn

Intercepts client owner clicks to activate the ability

PreActivate

For signal calling

ResetCooldown

Resets the cooldown of this ability

StartCooldown

Starts a cooldown time to be shared with similar abilities +Will use default cooldown time if an override is not specified

StartCooldownOthers

Starts a cooldown time for other abilities that share a cooldown with this. Has some niche usage with more complicated attack ai! +Will use default cooldown time if an override is not specified

StartCooldownSelf

Starts a cooldown time for this ability only +Will use default cooldown time if an override is not specified

create_sequence_actions

Initializes any sequence actions

disable

Disables this cooldown action

disable_cooldown_actions

Disables all cooldown actions

enable

Re-enables this cooldown action

enable_cooldown_actions

Re-enables all cooldown actions

handle_melee_attack

Cancels melee attacks if they are on cooldown.

set_click_ability

Set our action as the click override on the passed mob.

set_statpanel_format

Formats the action to be returned to the stat panel.

unset_click_ability

Unset our action as the click override of the passed mob.

+

if refund_cooldown is TRUE, we are being unset by the user clicking the action off +if refund_cooldown is FALSE, we are being forcefully unset, likely by someone actually using the action

\ No newline at end of file diff --git a/datum/action/cooldown/adrenaline.html b/datum/action/cooldown/adrenaline.html new file mode 100644 index 0000000000000..a21212c1a8959 --- /dev/null +++ b/datum/action/cooldown/adrenaline.html @@ -0,0 +1 @@ +/datum/action/cooldown/adrenaline - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

adrenaline

Vars

adrenaline_amountHow many units of each positive reagent injected during adrenaline.
comedown_amountHow many units of each negative reagent injected after comedown.

Var Details

adrenaline_amount

How many units of each positive reagent injected during adrenaline.

comedown_amount

How many units of each negative reagent injected after comedown.

\ No newline at end of file diff --git a/datum/action/cooldown/alien.html b/datum/action/cooldown/alien.html new file mode 100644 index 0000000000000..3e59f7a498d5e --- /dev/null +++ b/datum/action/cooldown/alien.html @@ -0,0 +1 @@ +/datum/action/cooldown/alien - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

alien

Vars

plasma_costHow much plasma this action uses.

Var Details

plasma_cost

How much plasma this action uses.

\ No newline at end of file diff --git a/datum/action/cooldown/alien/acid/corrosion.html b/datum/action/cooldown/alien/acid/corrosion.html new file mode 100644 index 0000000000000..0414037326bce --- /dev/null +++ b/datum/action/cooldown/alien/acid/corrosion.html @@ -0,0 +1 @@ +/datum/action/cooldown/alien/acid/corrosion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

corrosion

Vars

corrosion_acid_powerThe acid power for the aliens acid corrosion, will ignore mobs
corrosion_acid_volumeThe acid volume for the aliens acid corrosion, will ignore mobs

Var Details

corrosion_acid_power

The acid power for the aliens acid corrosion, will ignore mobs

corrosion_acid_volume

The acid volume for the aliens acid corrosion, will ignore mobs

\ No newline at end of file diff --git a/datum/action/cooldown/alien/acid/skyrat.html b/datum/action/cooldown/alien/acid/skyrat.html new file mode 100644 index 0000000000000..e7197e6faf098 --- /dev/null +++ b/datum/action/cooldown/alien/acid/skyrat.html @@ -0,0 +1 @@ +/datum/action/cooldown/alien/acid/skyrat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

skyrat

Vars

acid_casingYou want it to be more like a shotgun style attack? Use this one and make acid_projectile null
acid_projectileA singular projectile? Use this one and leave acid_casing null
button_base_iconThe base icon for the ability, so a red box can be put on it using _0 or _1
projectile_nameUsed in to_chat messages to the owner
spit_soundThe sound that should be played when the xeno actually spits

Var Details

acid_casing

You want it to be more like a shotgun style attack? Use this one and make acid_projectile null

acid_projectile

A singular projectile? Use this one and leave acid_casing null

button_base_icon

The base icon for the ability, so a red box can be put on it using _0 or _1

projectile_name

Used in to_chat messages to the owner

spit_sound

The sound that should be played when the xeno actually spits

\ No newline at end of file diff --git a/datum/action/cooldown/alien/hide.html b/datum/action/cooldown/alien/hide.html new file mode 100644 index 0000000000000..832b6b88f482e --- /dev/null +++ b/datum/action/cooldown/alien/hide.html @@ -0,0 +1 @@ +/datum/action/cooldown/alien/hide - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hide

Vars

hide_layerThe layer we are on while hiding

Var Details

hide_layer

The layer we are on while hiding

\ No newline at end of file diff --git a/datum/action/cooldown/alien/larva_evolve.html b/datum/action/cooldown/alien/larva_evolve.html new file mode 100644 index 0000000000000..0a6f27680404d --- /dev/null +++ b/datum/action/cooldown/alien/larva_evolve.html @@ -0,0 +1 @@ +/datum/action/cooldown/alien/larva_evolve - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

larva_evolve

Procs

ActivateSKYRAT MODULE SKYRAT_XENO_REDO
make_xeno_caste_entryGenerates a new entry to the

Proc Details

Activate

SKYRAT MODULE SKYRAT_XENO_REDO

make_xeno_caste_entry

Generates a new entry to the

\ No newline at end of file diff --git a/datum/action/cooldown/alien/make_structure.html b/datum/action/cooldown/alien/make_structure.html new file mode 100644 index 0000000000000..ca8c590471565 --- /dev/null +++ b/datum/action/cooldown/alien/make_structure.html @@ -0,0 +1 @@ +/datum/action/cooldown/alien/make_structure - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

make_structure

Vars

made_structure_typeThe type of structure the action makes on use

Procs

check_for_duplicateChecks if there's a duplicate structure in the owner's turf
check_for_ventsChecks if there's an atmos machine (vent) in the owner's turf

Var Details

made_structure_type

The type of structure the action makes on use

Proc Details

check_for_duplicate

Checks if there's a duplicate structure in the owner's turf

check_for_vents

Checks if there's an atmos machine (vent) in the owner's turf

\ No newline at end of file diff --git a/datum/action/cooldown/alien/make_structure/resin.html b/datum/action/cooldown/alien/make_structure/resin.html new file mode 100644 index 0000000000000..d1db35dcbf277 --- /dev/null +++ b/datum/action/cooldown/alien/make_structure/resin.html @@ -0,0 +1 @@ +/datum/action/cooldown/alien/make_structure/resin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

resin

Vars

structuresA list of all structures we can make.

Var Details

structures

A list of all structures we can make.

\ No newline at end of file diff --git a/datum/action/cooldown/alien/promote.html b/datum/action/cooldown/alien/promote.html new file mode 100644 index 0000000000000..80b47adc58272 --- /dev/null +++ b/datum/action/cooldown/alien/promote.html @@ -0,0 +1 @@ +/datum/action/cooldown/alien/promote - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

promote

Vars

promotion_plasma_costThe promotion only takes plasma when completed, not on activation.

Var Details

promotion_plasma_cost

The promotion only takes plasma when completed, not on activation.

\ No newline at end of file diff --git a/datum/action/cooldown/alien/skyrat.html b/datum/action/cooldown/alien/skyrat.html new file mode 100644 index 0000000000000..c965f4e42c905 --- /dev/null +++ b/datum/action/cooldown/alien/skyrat.html @@ -0,0 +1 @@ +/datum/action/cooldown/alien/skyrat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

skyrat

Vars

can_be_used_alwaysSome xeno abilities block other abilities from being used, this allows them to get around that in cases where it is needed

Var Details

can_be_used_always

Some xeno abilities block other abilities from being used, this allows them to get around that in cases where it is needed

\ No newline at end of file diff --git a/datum/action/cooldown/alien/skyrat/evade.html b/datum/action/cooldown/alien/skyrat/evade.html new file mode 100644 index 0000000000000..6cd784b8c9445 --- /dev/null +++ b/datum/action/cooldown/alien/skyrat/evade.html @@ -0,0 +1 @@ +/datum/action/cooldown/alien/skyrat/evade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

evade

Vars

evade_activeIf the evade ability is currently active or not
evasion_durationHow long evasion should last

Procs

evasion_deactivateHandles deactivation of the xeno evasion ability, mainly unregistering the signal and giving a balloon alert
on_projectile_hitHandles if either BULLET_ACT_HIT or BULLET_ACT_FORCE_PIERCE happens to something using the xeno evade ability

Var Details

evade_active

If the evade ability is currently active or not

evasion_duration

How long evasion should last

Proc Details

evasion_deactivate

Handles deactivation of the xeno evasion ability, mainly unregistering the signal and giving a balloon alert

on_projectile_hit

Handles if either BULLET_ACT_HIT or BULLET_ACT_FORCE_PIERCE happens to something using the xeno evade ability

\ No newline at end of file diff --git a/datum/action/cooldown/alien/skyrat/generic_evolve.html b/datum/action/cooldown/alien/skyrat/generic_evolve.html new file mode 100644 index 0000000000000..ef74773be9168 --- /dev/null +++ b/datum/action/cooldown/alien/skyrat/generic_evolve.html @@ -0,0 +1 @@ +/datum/action/cooldown/alien/skyrat/generic_evolve - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

generic_evolve

Vars

type_to_evolve_intoWhat type this ability will turn the owner into upon completion

Var Details

type_to_evolve_into

What type this ability will turn the owner into upon completion

\ No newline at end of file diff --git a/datum/action/cooldown/alien/skyrat/heal_aura.html b/datum/action/cooldown/alien/skyrat/heal_aura.html new file mode 100644 index 0000000000000..1ea73d2165354 --- /dev/null +++ b/datum/action/cooldown/alien/skyrat/heal_aura.html @@ -0,0 +1 @@ +/datum/action/cooldown/alien/skyrat/heal_aura - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

heal_aura

Vars

aura_activeIs the healing aura currently active or not
aura_durationHow long the healing aura should last
aura_healing_amountHow much brute/burn individually the healing aura should heal each time it fires
aura_healing_colorWhat color should the + particles caused by the healing aura be
aura_healing_componentThe healing aura component itself that the ability uses
aura_rangeHow far away the healing aura should reach

Var Details

aura_active

Is the healing aura currently active or not

aura_duration

How long the healing aura should last

aura_healing_amount

How much brute/burn individually the healing aura should heal each time it fires

aura_healing_color

What color should the + particles caused by the healing aura be

aura_healing_component

The healing aura component itself that the ability uses

aura_range

How far away the healing aura should reach

\ No newline at end of file diff --git a/datum/action/cooldown/alien/skyrat/literally_too_angry_to_die.html b/datum/action/cooldown/alien/skyrat/literally_too_angry_to_die.html new file mode 100644 index 0000000000000..db5db7be22a90 --- /dev/null +++ b/datum/action/cooldown/alien/skyrat/literally_too_angry_to_die.html @@ -0,0 +1 @@ +/datum/action/cooldown/alien/skyrat/literally_too_angry_to_die - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

literally_too_angry_to_die

Vars

endure_activeIf the endure ability is currently active or not
endure_durationHow long the endure ability should last when activated

Var Details

endure_active

If the endure ability is currently active or not

endure_duration

How long the endure ability should last when activated

\ No newline at end of file diff --git a/datum/action/cooldown/alien/skyrat/warrior_agility.html b/datum/action/cooldown/alien/skyrat/warrior_agility.html new file mode 100644 index 0000000000000..6e1aae1976837 --- /dev/null +++ b/datum/action/cooldown/alien/skyrat/warrior_agility.html @@ -0,0 +1 @@ +/datum/action/cooldown/alien/skyrat/warrior_agility - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

warrior_agility

Vars

being_agileIs the warrior currently running around on all fours?

Procs

begin_agilityHandles the visual indication and code activation of the warrior agility ability (say that five times fast)
end_agilityHandles the visual indicators and code side of deactivating the agility ability

Var Details

being_agile

Is the warrior currently running around on all fours?

Proc Details

begin_agility

Handles the visual indication and code activation of the warrior agility ability (say that five times fast)

end_agility

Handles the visual indicators and code side of deactivating the agility ability

\ No newline at end of file diff --git a/datum/action/cooldown/bloodsucker.html b/datum/action/cooldown/bloodsucker.html new file mode 100644 index 0000000000000..de09d8f6bddbd --- /dev/null +++ b/datum/action/cooldown/bloodsucker.html @@ -0,0 +1,3 @@ +/datum/action/cooldown/bloodsucker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bloodsucker

Vars

activeIf the Power is currently active, differs from action cooldown because of how powers are handled.
active_background_icon_stateBackground icon when the Power is active.
base_background_icon_stateBackground icon when the Power is NOT active.
bloodcostThe cost to ACTIVATE this Power
bloodsuckerdatum_powerThe text that appears when using the help verb, meant to explain how the Power changes when ranking up. +The owner's stored Bloodsucker datum
check_flagsRequirement flags for checks
constant_bloodcostThe cost to MAINTAIN this Power - Only used for Constant Cost Powers
cooldown_timeCooldown you'll have to wait between each use, decreases depending on level.
level_currentCan increase to yield new capabilities - Each Power ranks up each Rank, with the oldest power being the highest rank.
power_activates_immediatelyMost powers happen the moment you click. Some, like Mesmerize, require time and shouldn't cost you if they fail.
power_flagsThe effects on this Power (Toggled/Single Use/Static Cooldown)
purchase_flagsWho can purchase the Power

Procs

ActivatePowerreturn TRUE if you want the ability to be considered activated, put your ability activate logic here
ContinueActiveChecks to make sure this power can stay active
StartCooldownNOTE: With this formula, you'll hit half cooldown at level 8 for that power.
can_useChecks if the Power is available to use.
processUsed by powers that are scontinuously active (That have BP_CONTINUOUS_EFFECT flag)
remove_after_useUsed to unlearn Single-Use Powers
upgrade_powerCalled when the Power is upgraded.

Var Details

active

If the Power is currently active, differs from action cooldown because of how powers are handled.

active_background_icon_state

Background icon when the Power is active.

base_background_icon_state

Background icon when the Power is NOT active.

bloodcost

The cost to ACTIVATE this Power

bloodsuckerdatum_power

The text that appears when using the help verb, meant to explain how the Power changes when ranking up. +The owner's stored Bloodsucker datum

check_flags

Requirement flags for checks

constant_bloodcost

The cost to MAINTAIN this Power - Only used for Constant Cost Powers

cooldown_time

Cooldown you'll have to wait between each use, decreases depending on level.

level_current

Can increase to yield new capabilities - Each Power ranks up each Rank, with the oldest power being the highest rank.

power_activates_immediately

Most powers happen the moment you click. Some, like Mesmerize, require time and shouldn't cost you if they fail.

power_flags

The effects on this Power (Toggled/Single Use/Static Cooldown)

purchase_flags

Who can purchase the Power

Proc Details

ActivatePower

return TRUE if you want the ability to be considered activated, put your ability activate logic here

ContinueActive

Checks to make sure this power can stay active

StartCooldown

NOTE: With this formula, you'll hit half cooldown at level 8 for that power.

can_use

Checks if the Power is available to use.

process

Used by powers that are scontinuously active (That have BP_CONTINUOUS_EFFECT flag)

remove_after_use

Used to unlearn Single-Use Powers

upgrade_power

Called when the Power is upgraded.

\ No newline at end of file diff --git a/datum/action/cooldown/bloodsucker/cloak.html b/datum/action/cooldown/bloodsucker/cloak.html new file mode 100644 index 0000000000000..79342e4308830 --- /dev/null +++ b/datum/action/cooldown/bloodsucker/cloak.html @@ -0,0 +1 @@ +/datum/action/cooldown/bloodsucker/cloak - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cloak

Procs

can_useMust have nobody around to see the cloak

Proc Details

can_use

Must have nobody around to see the cloak

\ No newline at end of file diff --git a/datum/action/cooldown/bloodsucker/feed.html b/datum/action/cooldown/bloodsucker/feed.html new file mode 100644 index 0000000000000..780086bf1d656 --- /dev/null +++ b/datum/action/cooldown/bloodsucker/feed.html @@ -0,0 +1 @@ +/datum/action/cooldown/bloodsucker/feed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

feed

Vars

blood_takenAmount of blood taken, reset after each Feed. Used for logging.
notified_overfeedingHave we notified you already that you are at maximum blood?
silent_feedAre we feeding with passive grab or not?
target_refReference to the target we've fed off of
targets_and_bloodassoc list of weakrefs to targets and how much blood we've taken from them.
warning_target_bloodvolThe amount of Blood a target has since our last feed, this loops and lets us not spam alerts of low blood.

Var Details

blood_taken

Amount of blood taken, reset after each Feed. Used for logging.

notified_overfeeding

Have we notified you already that you are at maximum blood?

silent_feed

Are we feeding with passive grab or not?

target_ref

Reference to the target we've fed off of

targets_and_blood

assoc list of weakrefs to targets and how much blood we've taken from them.

warning_target_bloodvol

The amount of Blood a target has since our last feed, this loops and lets us not spam alerts of low blood.

\ No newline at end of file diff --git a/datum/action/cooldown/bloodsucker/ghoul_blood.html b/datum/action/cooldown/bloodsucker/ghoul_blood.html new file mode 100644 index 0000000000000..7a339793a2bc0 --- /dev/null +++ b/datum/action/cooldown/bloodsucker/ghoul_blood.html @@ -0,0 +1 @@ +/datum/action/cooldown/bloodsucker/ghoul_blood - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ghoul_blood

Vars

bloodbagBloodbag we have in our hands.
target_refWeakref to a target we're bringing into the fold.

Var Details

bloodbag

Bloodbag we have in our hands.

target_ref

Weakref to a target we're bringing into the fold.

\ No newline at end of file diff --git a/datum/action/cooldown/bloodsucker/gohome.html b/datum/action/cooldown/bloodsucker/gohome.html new file mode 100644 index 0000000000000..e7e313e6b01bf --- /dev/null +++ b/datum/action/cooldown/bloodsucker/gohome.html @@ -0,0 +1,3 @@ +/datum/action/cooldown/bloodsucker/gohome - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gohome

Given to Bloodsuckers near Sol if they have a Coffin claimed. +Teleports them to their Coffin after a delay. +Makes them drop everything if someone witnesses the act.

Vars

spawning_mobsThe types of mobs that will drop post-teleportation.
teleporting_stageWhat stage of the teleportation are we in

Var Details

spawning_mobs

The types of mobs that will drop post-teleportation.

teleporting_stage

What stage of the teleportation are we in

\ No newline at end of file diff --git a/datum/action/cooldown/bloodsucker/masquerade.html b/datum/action/cooldown/bloodsucker/masquerade.html new file mode 100644 index 0000000000000..4f6bd74ccb835 --- /dev/null +++ b/datum/action/cooldown/bloodsucker/masquerade.html @@ -0,0 +1,15 @@ +/datum/action/cooldown/bloodsucker/masquerade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

masquerade

# WITHOUT THIS POWER:
+
+- Mid-Blood: SHOW AS PALE
+- Low-Blood: SHOW AS DEAD
+- No Heartbeat
+
+

Procs

DeactivatePowertodo, make bloodsuckerification into it's own proc, ie, eyes, traits, and such

Proc Details

DeactivatePower

todo, make bloodsuckerification into it's own proc, ie, eyes, traits, and such

\ No newline at end of file diff --git a/datum/action/cooldown/bloodsucker/targeted.html b/datum/action/cooldown/bloodsucker/targeted.html new file mode 100644 index 0000000000000..690889638f3ff --- /dev/null +++ b/datum/action/cooldown/bloodsucker/targeted.html @@ -0,0 +1 @@ +/datum/action/cooldown/bloodsucker/targeted - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

targeted

Vars

power_in_useIs this power LOCKED due to being used?
prefire_messageMessage sent to chat when clicking on the power, before you use it.
target_rangeIf set, how far the target has to be for the power to work.

Procs

CheckCanTargetCheck if valid target meets conditions
CheckValidTargetCheck if target is VALID (wall, turf, or character?)
FireSecondaryTargetedPowerCalled on right click
PowerActivatedSuccesfullyThe power went off! We now pay the cost of the power.
PreActivateClick Target
get_power_descModify description to add notice that this is aimed.

Var Details

power_in_use

Is this power LOCKED due to being used?

prefire_message

Message sent to chat when clicking on the power, before you use it.

target_range

If set, how far the target has to be for the power to work.

Proc Details

CheckCanTarget

Check if valid target meets conditions

CheckValidTarget

Check if target is VALID (wall, turf, or character?)

FireSecondaryTargetedPower

Called on right click

PowerActivatedSuccesfully

The power went off! We now pay the cost of the power.

PreActivate

Click Target

get_power_desc

Modify description to add notice that this is aimed.

\ No newline at end of file diff --git a/datum/action/cooldown/bloodsucker/targeted/haste.html b/datum/action/cooldown/bloodsucker/targeted/haste.html new file mode 100644 index 0000000000000..e1591851b916f --- /dev/null +++ b/datum/action/cooldown/bloodsucker/targeted/haste.html @@ -0,0 +1 @@ +/datum/action/cooldown/bloodsucker/targeted/haste - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

haste

Vars

hitList of all people hit by our power, so we don't hit them again.

Procs

CheckValidTargetAnything will do, if it's not mea or my square
FireTargetedPowerThis is a non-async proc to make sure the power is "locked" until this finishes.

Var Details

hit

List of all people hit by our power, so we don't hit them again.

Proc Details

CheckValidTarget

Anything will do, if it's not mea or my square

FireTargetedPower

This is a non-async proc to make sure the power is "locked" until this finishes.

\ No newline at end of file diff --git a/datum/action/cooldown/bloodsucker/targeted/lunge.html b/datum/action/cooldown/bloodsucker/targeted/lunge.html new file mode 100644 index 0000000000000..2dcf11ab0b62e --- /dev/null +++ b/datum/action/cooldown/bloodsucker/targeted/lunge.html @@ -0,0 +1 @@ +/datum/action/cooldown/bloodsucker/targeted/lunge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

lunge

Procs

CheckValidTargetCheck: Are we lunging at a person?
do_lungeActually lunges the target, then calls lunge end.
end_target_lungeWhen preparing to lunge ends, this clears it up.
prepare_target_lungeStarts processing the power and prepares the lunge by spinning, calls lunge at the end of it.

Proc Details

CheckValidTarget

Check: Are we lunging at a person?

do_lunge

Actually lunges the target, then calls lunge end.

end_target_lunge

When preparing to lunge ends, this clears it up.

prepare_target_lunge

Starts processing the power and prepares the lunge by spinning, calls lunge at the end of it.

\ No newline at end of file diff --git a/datum/action/cooldown/bloodsucker/targeted/mesmerize.html b/datum/action/cooldown/bloodsucker/targeted/mesmerize.html new file mode 100644 index 0000000000000..fdd26ace05404 --- /dev/null +++ b/datum/action/cooldown/bloodsucker/targeted/mesmerize.html @@ -0,0 +1 @@ +/datum/action/cooldown/bloodsucker/targeted/mesmerize - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mesmerize

Vars

blind_at_levelAt what level this ability will blind the target at. Level 0 = never.
blocked_by_glassesif the ability requires you to not have your eyes covered
knockdown_on_secondaryif the ability will knockdown on secondary click
mesmerize_delayHow long it takes us to mesmerize our target.
requires_facing_targetif the ability requires you to be physically facing the target
target_refOur mesmerized target - Prevents several mesmerizes.

Procs

eldritch_eyeDisplay an animated overlay over our head to indicate what's going on

Var Details

blind_at_level

At what level this ability will blind the target at. Level 0 = never.

blocked_by_glasses

if the ability requires you to not have your eyes covered

knockdown_on_secondary

if the ability will knockdown on secondary click

mesmerize_delay

How long it takes us to mesmerize our target.

requires_facing_target

if the ability requires you to be physically facing the target

target_ref

Our mesmerized target - Prevents several mesmerizes.

Proc Details

eldritch_eye

Display an animated overlay over our head to indicate what's going on

\ No newline at end of file diff --git a/datum/action/cooldown/bloodsucker/targeted/mesmerize/dominate.html b/datum/action/cooldown/bloodsucker/targeted/mesmerize/dominate.html new file mode 100644 index 0000000000000..1ead10527528e --- /dev/null +++ b/datum/action/cooldown/bloodsucker/targeted/mesmerize/dominate.html @@ -0,0 +1 @@ +/datum/action/cooldown/bloodsucker/targeted/mesmerize/dominate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dominate

Vars

datahudsData huds to show while the power is active

Var Details

datahuds

Data huds to show while the power is active

\ No newline at end of file diff --git a/datum/action/cooldown/bloodsucker/targeted/tremere/thaumaturgy.html b/datum/action/cooldown/bloodsucker/targeted/tremere/thaumaturgy.html new file mode 100644 index 0000000000000..89cf846262c95 --- /dev/null +++ b/datum/action/cooldown/bloodsucker/targeted/tremere/thaumaturgy.html @@ -0,0 +1 @@ +/datum/action/cooldown/bloodsucker/targeted/tremere/thaumaturgy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

thaumaturgy

Vars

chargesHow many times you can shoot before you need to recast
shot_cooldownHow long it takes before you can shoot again

Var Details

charges

How many times you can shoot before you need to recast

shot_cooldown

How long it takes before you can shoot again

\ No newline at end of file diff --git a/datum/action/cooldown/bot_announcement.html b/datum/action/cooldown/bot_announcement.html new file mode 100644 index 0000000000000..e6567c299eae9 --- /dev/null +++ b/datum/action/cooldown/bot_announcement.html @@ -0,0 +1 @@ +/datum/action/cooldown/bot_announcement - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bot_announcement

Say something and play a corresponding sound effect

Vars

automated_announcementsList of strings to sound effects corresponding to automated messages we can play
buttonsList of buttons that automatically correspond to an announcement and channel
max_buttonsMaximum amount of buttons this can have

Procs

announceSpeak the provided line on the provided radio channel

Var Details

automated_announcements

List of strings to sound effects corresponding to automated messages we can play

buttons

List of buttons that automatically correspond to an announcement and channel

max_buttons

Maximum amount of buttons this can have

Proc Details

announce

Speak the provided line on the provided radio channel

\ No newline at end of file diff --git a/datum/action/cooldown/bot_announcement_shortcut.html b/datum/action/cooldown/bot_announcement_shortcut.html new file mode 100644 index 0000000000000..207606ccf47d8 --- /dev/null +++ b/datum/action/cooldown/bot_announcement_shortcut.html @@ -0,0 +1 @@ +/datum/action/cooldown/bot_announcement_shortcut - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bot_announcement_shortcut

Vars

channelThe channel to send this to when clicked
linkedThe linked bot_announcement ability
messageThe message to send when this button is clicked
prefixThe prefix that appears on this button
prefix_colorThe color of the prefix that appears on the button
prefix_iconThe prefix icon that's rendered on the button

Var Details

channel

The channel to send this to when clicked

linked

The linked bot_announcement ability

message

The message to send when this button is clicked

prefix

The prefix that appears on this button

prefix_color

The color of the prefix that appears on the button

prefix_icon

The prefix icon that's rendered on the button

\ No newline at end of file diff --git a/datum/action/cooldown/exquisite_bunch.html b/datum/action/cooldown/exquisite_bunch.html new file mode 100644 index 0000000000000..c5f5c01d764a0 --- /dev/null +++ b/datum/action/cooldown/exquisite_bunch.html @@ -0,0 +1 @@ +/datum/action/cooldown/exquisite_bunch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

exquisite_bunch

spawns a plumb bunch of bananas imbued with mystical power.

Vars

activatingIf we are currently activating our ability.

Var Details

activating

If we are currently activating our ability.

\ No newline at end of file diff --git a/datum/action/cooldown/gel_cocoon.html b/datum/action/cooldown/gel_cocoon.html new file mode 100644 index 0000000000000..ff94c1ba7ce93 --- /dev/null +++ b/datum/action/cooldown/gel_cocoon.html @@ -0,0 +1 @@ +/datum/action/cooldown/gel_cocoon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

gel_cocoon

This action lets you put a mob inside of a cacoon that will inject it with some chemicals.

Procs

IsAvailableMob needs to have enough nutrition
gel_cocoonTry to put the pulled mob in a cocoon
put_in_cocoonPuts the mob in the new cocoon

Proc Details

IsAvailable

Mob needs to have enough nutrition

gel_cocoon

Try to put the pulled mob in a cocoon

put_in_cocoon

Puts the mob in the new cocoon

\ No newline at end of file diff --git a/datum/action/cooldown/grand_ritual.html b/datum/action/cooldown/grand_ritual.html new file mode 100644 index 0000000000000..47600eefb747e --- /dev/null +++ b/datum/action/cooldown/grand_ritual.html @@ -0,0 +1,16 @@ +/datum/action/cooldown/grand_ritual - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

grand_ritual

The Grand Ritual is the Wizard's alternate victory condition +and also a tool to make funny distractions and progress the round state.

+

The wizard is assigned a random area to perform the ritual in. +This entails travelling to that area, drawing a 3x3 rune, and casting on it for a while. +Completing these causes a random event to immediately occur and may cause additional side effects in the area. +The more rituals are completed, the more dramatic the events which can be spawned.

+

After passing certain thresholds Grand Ritual completions will begin spawning active and expended Reality Tears. +Above a certian threshold, beginning the ritual will alert the crew to your location.

+

The 7th ritual completion is special and allows you to pick a "finale" effect which should be very dramatic. +Further completion after that returns to the usual behaviour.

Vars

area_blacklistAreas where you can't be tasked to draw a rune, usually because they're too mean
area_whitelistAreas where you can place a rune +To be honest if maintenance subtypes didn't exist I could probably have got away with just a blacklist, c'est la vie
blacklisted_rune_turfsA blacklist of turfs we cannot scribe on.
drawing_runeTrue while you are drawing a rune, prevents action spamming
drew_finaleIf you have drawn your finale rune
runeWeakref to a rune drawn in the current area, if there is one
target_areaPath to area we want to draw in next
times_completedNumber of times the grand ritual has been completed somewhere by this user
total_cheese_goal_metWhether we have sacrificed enough cheese or not
total_cheese_sacrificedNumber of cheese sacrificed on previously drawn runes

Procs

draw_runeDraws the ritual rune
get_appropriate_rune_typepathThe seventh rune we spawn is special
get_pinpoint_textCompare positions and output information. +Similar to heretic target locating. +But simplified because we shouldn't be able to target locations on lavaland or the gateway anyway.
on_rune_completeCalled when you finish invoking a rune you drew, get ready for another one.
pinpoint_areaPinpoints the ritual area
set_new_areaFinds a random station area to place our rune in
start_drawing_runeChecks if you're actually able to draw a rune here
validate_areaIf the target area doesn't exist or has been invalidated somehow, pick another one

Var Details

area_blacklist

Areas where you can't be tasked to draw a rune, usually because they're too mean

area_whitelist

Areas where you can place a rune +To be honest if maintenance subtypes didn't exist I could probably have got away with just a blacklist, c'est la vie

blacklisted_rune_turfs

A blacklist of turfs we cannot scribe on.

drawing_rune

True while you are drawing a rune, prevents action spamming

drew_finale

If you have drawn your finale rune

rune

Weakref to a rune drawn in the current area, if there is one

target_area

Path to area we want to draw in next

times_completed

Number of times the grand ritual has been completed somewhere by this user

total_cheese_goal_met

Whether we have sacrificed enough cheese or not

total_cheese_sacrificed

Number of cheese sacrificed on previously drawn runes

Proc Details

draw_rune

Draws the ritual rune

get_appropriate_rune_typepath

The seventh rune we spawn is special

get_pinpoint_text

Compare positions and output information. +Similar to heretic target locating. +But simplified because we shouldn't be able to target locations on lavaland or the gateway anyway.

on_rune_complete

Called when you finish invoking a rune you drew, get ready for another one.

pinpoint_area

Pinpoints the ritual area

set_new_area

Finds a random station area to place our rune in

start_drawing_rune

Checks if you're actually able to draw a rune here

validate_area

If the target area doesn't exist or has been invalidated somehow, pick another one

\ No newline at end of file diff --git a/datum/action/cooldown/hemophage/drain_victim.html b/datum/action/cooldown/hemophage/drain_victim.html new file mode 100644 index 0000000000000..03a6fc18fc64e --- /dev/null +++ b/datum/action/cooldown/hemophage/drain_victim.html @@ -0,0 +1,15 @@ +/datum/action/cooldown/hemophage/drain_victim - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

drain_victim

Procs

drain_victimThe proc that actually handles draining the victim. Assumes that all the +pre-requesite checks were made, and as such will not make any more checks +outside of a do_after of three seconds.
has_valid_targetHandles the first checks to see if the target is eligible to be drained.

Proc Details

drain_victim

The proc that actually handles draining the victim. Assumes that all the +pre-requesite checks were made, and as such will not make any more checks +outside of a do_after of three seconds.

+

Arguments:

+

has_valid_target

Handles the first checks to see if the target is eligible to be drained.

+

Arguments:

+ +

Returns TRUE if the target is eligible to be drained, FALSE if not.

\ No newline at end of file diff --git a/datum/action/cooldown/hivehead_spawn_minions.html b/datum/action/cooldown/hivehead_spawn_minions.html new file mode 100644 index 0000000000000..68f1c966a3029 --- /dev/null +++ b/datum/action/cooldown/hivehead_spawn_minions.html @@ -0,0 +1 @@ +/datum/action/cooldown/hivehead_spawn_minions - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hivehead_spawn_minions

Vars

spawn_countHow many are we going to spawn
spawn_typeThe mob we're going to spawn

Procs

do_tellOur tell that we're using this ability. Usually a sound and a visible message.area
minion_additional_changesStuff we want to do to our minions. This is in its own proc so subtypes can override this behaviour.

Var Details

spawn_count

How many are we going to spawn

spawn_type

The mob we're going to spawn

Proc Details

do_tell

Our tell that we're using this ability. Usually a sound and a visible message.area

minion_additional_changes

Stuff we want to do to our minions. This is in its own proc so subtypes can override this behaviour.

\ No newline at end of file diff --git a/datum/action/cooldown/internal_smelting.html b/datum/action/cooldown/internal_smelting.html new file mode 100644 index 0000000000000..219622ee2991e --- /dev/null +++ b/datum/action/cooldown/internal_smelting.html @@ -0,0 +1 @@ +/datum/action/cooldown/internal_smelting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

internal_smelting

Lets golems smelt ore with their organs

Vars

minimum_smelt_speedMinimum time to take to smelt one ore into one result
smelt_speedTime it takes to smelt one ore into one result
speed_up_intervalAmount to speed up by every completion

Procs

smelt_heldSmelt an item held in one hand and put the result in the other

Var Details

minimum_smelt_speed

Minimum time to take to smelt one ore into one result

smelt_speed

Time it takes to smelt one ore into one result

speed_up_interval

Amount to speed up by every completion

Proc Details

smelt_held

Smelt an item held in one hand and put the result in the other

\ No newline at end of file diff --git a/datum/action/cooldown/lunatic_track.html b/datum/action/cooldown/lunatic_track.html new file mode 100644 index 0000000000000..5f931125ca22e --- /dev/null +++ b/datum/action/cooldown/lunatic_track.html @@ -0,0 +1 @@ +/datum/action/cooldown/lunatic_track - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

lunatic_track

Procs

generate_balloon_messageCreate the text for the balloon message
get_balloon_messageGets the balloon message for the heretic we are tracking.

Proc Details

generate_balloon_message

Create the text for the balloon message

get_balloon_message

Gets the balloon message for the heretic we are tracking.

\ No newline at end of file diff --git a/datum/action/cooldown/manual_heart.html b/datum/action/cooldown/manual_heart.html new file mode 100644 index 0000000000000..2686e306298da --- /dev/null +++ b/datum/action/cooldown/manual_heart.html @@ -0,0 +1 @@ +/datum/action/cooldown/manual_heart - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

manual_heart

Action to pump your heart. Cooldown will always be set to 1 second less than the pump delay.

Procs

IsAvailableThe action button is only available when you're a living carbon with blood and a heart.

Proc Details

IsAvailable

The action button is only available when you're a living carbon with blood and a heart.

\ No newline at end of file diff --git a/datum/action/cooldown/metabolicboost.html b/datum/action/cooldown/metabolicboost.html new file mode 100644 index 0000000000000..55a20264e7a2b --- /dev/null +++ b/datum/action/cooldown/metabolicboost.html @@ -0,0 +1 @@ +/datum/action/cooldown/metabolicboost - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

metabolicboost

This ability lets the gelatinious ooze speed up for a little bit

Procs

ActivateGive the mob a speed boost, heat it up every second, and end the ability in 6 seconds
FinishSpeedupRemove the speed modifier and delete the timer for heating up
HeatUpHeat up the mob a little
IsAvailableMob needs to have enough nutrition

Proc Details

Activate

Give the mob a speed boost, heat it up every second, and end the ability in 6 seconds

FinishSpeedup

Remove the speed modifier and delete the timer for heating up

HeatUp

Heat up the mob a little

IsAvailable

Mob needs to have enough nutrition

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/assume_form.html b/datum/action/cooldown/mob_cooldown/assume_form.html new file mode 100644 index 0000000000000..01fa0854ffdb6 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/assume_form.html @@ -0,0 +1,2 @@ +/datum/action/cooldown/mob_cooldown/assume_form - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

assume_form

Allows a mob to assume the form of another item or mob. +Warning, this will likely shit the bricks if you add this action to anything more sophisticated than a basic mob- this isn't built for anything carbon-wise.

Vars

blacklist_typecacheStuff that we can not disguise as.

Procs

assume_appearancesAssumes the appearance of a desired movable and applies it to our mob. Target is the movable in question.
can_assume_formRapid proc to test if we can assume the form of a given atom. Returns TRUE if we can, FALSE if we can't. Done like this so we can be nice and explicit.
determine_intentDetermines what our user meant by their action. If they clicked on themselves, we reset our appearance. Otherwise, we assume the appearance of the clicked-on item.
reset_appearancesResets the appearances of the mob to the default.

Var Details

blacklist_typecache

Stuff that we can not disguise as.

Proc Details

assume_appearances

Assumes the appearance of a desired movable and applies it to our mob. Target is the movable in question.

can_assume_form

Rapid proc to test if we can assume the form of a given atom. Returns TRUE if we can, FALSE if we can't. Done like this so we can be nice and explicit.

determine_intent

Determines what our user meant by their action. If they clicked on themselves, we reset our appearance. Otherwise, we assume the appearance of the clicked-on item.

reset_appearances

Resets the appearances of the mob to the default.

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/blood_rain.html b/datum/action/cooldown/mob_cooldown/blood_rain.html new file mode 100644 index 0000000000000..ef0c7cea7b5b1 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/blood_rain.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/blood_rain - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blood_rain

Vars

fire_intervaltime between each droplet launched
volley_counthow many droplets we will fire

Var Details

fire_interval

time between each droplet launched

volley_count

how many droplets we will fire

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/blood_warp.html b/datum/action/cooldown/mob_cooldown/blood_warp.html new file mode 100644 index 0000000000000..3814672043742 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/blood_warp.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/blood_warp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blood_warp

Vars

client_pick_rangeThe range of turfs if a client is using this ability
pick_rangeThe range of turfs to try to jaunt to from around the target
remove_inner_poolsWhether or not to remove the inside of our radius from the possible pools to jaunt to

Var Details

client_pick_range

The range of turfs if a client is using this ability

pick_range

The range of turfs to try to jaunt to from around the target

remove_inner_pools

Whether or not to remove the inside of our radius from the possible pools to jaunt to

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/borer.html b/datum/action/cooldown/mob_cooldown/borer.html new file mode 100644 index 0000000000000..e153e9ce30d06 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/borer.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/borer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

borer

Vars

chemical_costHow many chemicals this costs
chemical_evo_pointsHow many chem evo points are needed to use this ability
stat_evo_pointsHow many stat evo points are needed to use this ability

Var Details

chemical_cost

How many chemicals this costs

chemical_evo_points

How many chem evo points are needed to use this ability

stat_evo_points

How many stat evo points are needed to use this ability

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/bot/foam.html b/datum/action/cooldown/mob_cooldown/bot/foam.html new file mode 100644 index 0000000000000..ae4030b6ee086 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/bot/foam.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/bot/foam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

foam

Vars

foam_rangerange of the foam to spread

Var Details

foam_range

range of the foam to spread

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/bot/honk.html b/datum/action/cooldown/mob_cooldown/bot/honk.html new file mode 100644 index 0000000000000..9bd03fe4ac174 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/bot/honk.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/bot/honk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

honk

Vars

post_honk_callbackcallback after we have honked

Var Details

post_honk_callback

callback after we have honked

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/bot/vibe.html b/datum/action/cooldown/mob_cooldown/bot/vibe.html new file mode 100644 index 0000000000000..a517fd90bcdf0 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/bot/vibe.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/bot/vibe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

vibe

Vars

change_moodcooldown to apply a new mood

Procs

remove_colorsRemoves all colors
vibeGives a random color

Var Details

change_mood

cooldown to apply a new mood

Proc Details

remove_colors

Removes all colors

vibe

Gives a random color

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/brimbeam.html b/datum/action/cooldown/mob_cooldown/brimbeam.html new file mode 100644 index 0000000000000..8d6b5fbc857a5 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/brimbeam.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/brimbeam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

brimbeam

Fires a bloody beam. Brimdemon Blast!

Vars

beam_durationHow long does our beam last?
beam_partsA list of all the beam parts.
beam_rangeHow far does our beam go?
charge_durationHow long do we wind up before firing?
direction_overlayOverlay we show when we're about to fire

Procs

extinguish_laserGet rid of our laser when we are done with it
fire_laserCreate a laser in the direction we are facing

Var Details

beam_duration

How long does our beam last?

beam_parts

A list of all the beam parts.

beam_range

How far does our beam go?

charge_duration

How long do we wind up before firing?

direction_overlay

Overlay we show when we're about to fire

Proc Details

extinguish_laser

Get rid of our laser when we are done with it

fire_laser

Create a laser in the direction we are facing

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/capture_photo.html b/datum/action/cooldown/mob_cooldown/capture_photo.html new file mode 100644 index 0000000000000..77d3757fc6b90 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/capture_photo.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/capture_photo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

capture_photo

Vars

ability_cameracamera we use to take photos

Var Details

ability_camera

camera we use to take photos

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/charge.html b/datum/action/cooldown/mob_cooldown/charge.html new file mode 100644 index 0000000000000..5833b4ecdd148 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/charge.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/charge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

charge

Vars

actively_movingIf the current move is being triggered by us or not
charge_damageThe damage the charger does when bumping into something
charge_delayDelay before the charge actually occurs
charge_distanceThe maximum distance we can charge
charge_pastThe amount of turfs we move past the target
charge_speedThe sleep time before moving in deciseconds while charging
chargingList of charging mobs
destroy_objectsIf we destroy objects while charging

Procs

can_hit_targetReturns true if we're allowed to charge into this target
hit_targetActually hit someone
try_hit_targetAttempt to hit someone with our charge

Var Details

actively_moving

If the current move is being triggered by us or not

charge_damage

The damage the charger does when bumping into something

charge_delay

Delay before the charge actually occurs

charge_distance

The maximum distance we can charge

charge_past

The amount of turfs we move past the target

charge_speed

The sleep time before moving in deciseconds while charging

charging

List of charging mobs

destroy_objects

If we destroy objects while charging

Proc Details

can_hit_target

Returns true if we're allowed to charge into this target

hit_target

Actually hit someone

try_hit_target

Attempt to hit someone with our charge

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/charge/basic_charge.html b/datum/action/cooldown/mob_cooldown/charge/basic_charge.html new file mode 100644 index 0000000000000..4771d4b52e0d5 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/charge/basic_charge.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/charge/basic_charge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

basic_charge

Vars

knockdown_durationAmount of time to knock over an impacted target
recoil_durationAmount of time to stun self upon impact
shake_durationHow long to shake for before charging
shake_pixel_shiftIntensity of shaking animation

Var Details

knockdown_duration

Amount of time to knock over an impacted target

recoil_duration

Amount of time to stun self upon impact

shake_duration

How long to shake for before charging

shake_pixel_shift

Intensity of shaking animation

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/charge/hallucination_charge.html b/datum/action/cooldown/mob_cooldown/charge/hallucination_charge.html new file mode 100644 index 0000000000000..60c93d65c2f45 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/charge/hallucination_charge.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/charge/hallucination_charge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hallucination_charge

Vars

enragedCheck to see if we are enraged, enraged ability does more
hallucination_damageThe damage the hallucinations in our charge do
spawn_bloodCheck to see if we should spawn blood

Var Details

enraged

Check to see if we are enraged, enraged ability does more

hallucination_damage

The damage the hallucinations in our charge do

spawn_blood

Check to see if we should spawn blood

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/chase_target.html b/datum/action/cooldown/mob_cooldown/chase_target.html new file mode 100644 index 0000000000000..ce3b2ab9a857c --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/chase_target.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/chase_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chase_target

Vars

sizeAffects volume of the charge tell depending on the size of the mob charging

Procs

chargeCauses the mob to gain speed and charge at a target
reset_chargeResets the charge buffs.
throw_thyselfThis is the proc that actually does the throwing. Charge only adds a timer for this.

Var Details

size

Affects volume of the charge tell depending on the size of the mob charging

Proc Details

charge

Causes the mob to gain speed and charge at a target

reset_charge

Resets the charge buffs.

throw_thyself

This is the proc that actually does the throwing. Charge only adds a timer for this.

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/chasing_spikes.html b/datum/action/cooldown/mob_cooldown/chasing_spikes.html new file mode 100644 index 0000000000000..988e1ef8fb240 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/chasing_spikes.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/chasing_spikes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chasing_spikes

An ability which makes spikes come out of the ground towards your target

Vars

active_chasersLazy list of references to spike trails

Procs

on_chaser_destroyedRemove a spike trail from our list of active trails

Var Details

active_chasers

Lazy list of references to spike trails

Proc Details

on_chaser_destroyed

Remove a spike trail from our list of active trails

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/command_spiders.html b/datum/action/cooldown/mob_cooldown/command_spiders.html new file mode 100644 index 0000000000000..5527c6f67ade6 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/command_spiders.html @@ -0,0 +1,7 @@ +/datum/action/cooldown/mob_cooldown/command_spiders - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

command_spiders

Sends a message to all currently living spiders.

Procs

format_messageFormats the string to have an appropiate size and text color
spider_commandSends a big message to all spiders from the target.

Proc Details

format_message

Formats the string to have an appropiate size and text color

spider_command

Sends a big message to all spiders from the target.

+

Allows the user to send a message to all spiders that exist. Ghosts will also see the message. +Arguments:

+
\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/create_legion_skull.html b/datum/action/cooldown/mob_cooldown/create_legion_skull.html new file mode 100644 index 0000000000000..d7dd0e31bdf45 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/create_legion_skull.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/create_legion_skull - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

create_legion_skull

Procs

createCreates a new skull assigned to the owner of this action

Proc Details

create

Creates a new skull assigned to the owner of this action

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/create_legion_turrets.html b/datum/action/cooldown/mob_cooldown/create_legion_turrets.html new file mode 100644 index 0000000000000..1de5499cd3218 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/create_legion_turrets.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/create_legion_turrets - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

create_legion_turrets

Vars

maximum_turretsMaximum number of turrets that can be spawned
minimum_turretsMinimum number of turrets that can be spawned

Procs

createCreates new legion turrets around the owner between the minimum and maximum

Var Details

maximum_turrets

Maximum number of turrets that can be spawned

minimum_turrets

Minimum number of turrets that can be spawned

Proc Details

create

Creates new legion turrets around the owner between the minimum and maximum

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/dash.html b/datum/action/cooldown/mob_cooldown/dash.html new file mode 100644 index 0000000000000..5195628893f1c --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/dash.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/dash - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dash

Vars

dash_rangeThe range of the dash
pick_rangeThe distance you will be from the target after you dash

Var Details

dash_range

The range of the dash

pick_range

The distance you will be from the target after you dash

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/defensive_mode.html b/datum/action/cooldown/mob_cooldown/defensive_mode.html new file mode 100644 index 0000000000000..88e2eeb99cab7 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/defensive_mode.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/defensive_mode - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

defensive_mode

An ability that allows the viper spider to get in an defensive mode at the cost of speed.

Vars

defense_activeIf the defensive mode is activated or not.
modifier_typeMovement speed modifier used.

Var Details

defense_active

If the defensive mode is activated or not.

modifier_type

Movement speed modifier used.

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/expel_gas.html b/datum/action/cooldown/mob_cooldown/expel_gas.html new file mode 100644 index 0000000000000..984ade68ccfdb --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/expel_gas.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/expel_gas - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

expel_gas

Expel a range of gases

Vars

active_gasGas being expelled.
possible_gasesAssociative list of types of gases to moles we create every life tick.

Procs

on_lifeRelease gas every life tick while active
stop_gasTurns off the gas

Var Details

active_gas

Gas being expelled.

possible_gases

Associative list of types of gases to moles we create every life tick.

Proc Details

on_life

Release gas every life tick while active

stop_gas

Turns off the gas

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/explosive_booby_trap.html b/datum/action/cooldown/mob_cooldown/explosive_booby_trap.html new file mode 100644 index 0000000000000..ea041822b2a96 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/explosive_booby_trap.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/explosive_booby_trap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

explosive_booby_trap

An ability which can turn an object into a bomb

Vars

boom_signalsStatic list of signals that activate the bomb.
decay_timeAfter this amount of time passses, bomb deactivates.

Procs

validate_targetValidate that we should blow up on this thing, preferably not on one of our allies

Var Details

boom_signals

Static list of signals that activate the bomb.

decay_time

After this amount of time passses, bomb deactivates.

Proc Details

validate_target

Validate that we should blow up on this thing, preferably not on one of our allies

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/fire_breath.html b/datum/action/cooldown/mob_cooldown/fire_breath.html new file mode 100644 index 0000000000000..42b5925c42516 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/fire_breath.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/fire_breath - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fire_breath

Vars

fire_damageHow much damage do you take when engulfed?
fire_delayTime to wait between spawning each fire turf
fire_rangeThe range of the fire
fire_soundThe sound played when you use this ability
fire_temperatureHow hot is our fire
fire_volume'How much' fire do we expose the turf to?
mech_damageHow much damage to mechs take when engulfed?

Procs

attack_sequenceApply our specific fire breathing shape, in proc form so we can override it in subtypes
burn_turfFinally spawn the actual fire, spawns the fire hotspot in case you want to recolour it or something
fire_lineBreathe fire in a line towards the target, optionally rotated at an offset from the target
on_burn_mobDo something unpleasant to someone we set on fire
progressive_fire_lineCreates fire with a delay on the list of targeted turfs

Var Details

fire_damage

How much damage do you take when engulfed?

fire_delay

Time to wait between spawning each fire turf

fire_range

The range of the fire

fire_sound

The sound played when you use this ability

fire_temperature

How hot is our fire

fire_volume

'How much' fire do we expose the turf to?

mech_damage

How much damage to mechs take when engulfed?

Proc Details

attack_sequence

Apply our specific fire breathing shape, in proc form so we can override it in subtypes

burn_turf

Finally spawn the actual fire, spawns the fire hotspot in case you want to recolour it or something

fire_line

Breathe fire in a line towards the target, optionally rotated at an offset from the target

on_burn_mob

Do something unpleasant to someone we set on fire

progressive_fire_line

Creates fire with a delay on the list of targeted turfs

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/fire_breath/cone.html b/datum/action/cooldown/mob_cooldown/fire_breath/cone.html new file mode 100644 index 0000000000000..1abbdede5a23e --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/fire_breath/cone.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/fire_breath/cone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cone

Shoot three lines of fire in a sort of fork pattern approximating a cone

Vars

anglesThe angles relative to the target that shoot lines of fire

Var Details

angles

The angles relative to the target that shoot lines of fire

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/fire_breath/mass_fire.html b/datum/action/cooldown/mob_cooldown/fire_breath/mass_fire.html new file mode 100644 index 0000000000000..4505871ef5207 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/fire_breath/mass_fire.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/fire_breath/mass_fire - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mass_fire

Shoot fire in a whole bunch of directions

Vars

breath_delayHow long do we wait between each spin?
sectorsHow many fire lines do we produce to turn a full circle?
total_spinsHow many full circles do we perform?

Procs

fire_spinBreathe fire in a circle, with a slight angle offset based on which of our several circles it is

Var Details

breath_delay

How long do we wait between each spin?

sectors

How many fire lines do we produce to turn a full circle?

total_spins

How many full circles do we perform?

Proc Details

fire_spin

Breathe fire in a circle, with a slight angle offset based on which of our several circles it is

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/goliath_tentacles.html b/datum/action/cooldown/mob_cooldown/goliath_tentacles.html new file mode 100644 index 0000000000000..ab0b35d5e6cf5 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/goliath_tentacles.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/goliath_tentacles - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

goliath_tentacles

Place some grappling tentacles underfoot

Vars

max_rangeFurthest range we can activate ability at

Var Details

max_range

Furthest range we can activate ability at

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/ground_slam.html b/datum/action/cooldown/mob_cooldown/ground_slam.html new file mode 100644 index 0000000000000..5d9dfb79e4177 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/ground_slam.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/ground_slam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ground_slam

Vars

can_moveWhether the target can move or not while the slam is occurring
delayThe delay before the shockwave expands its range
rangeThe range of the slam
throw_rangeHow far hit targets are thrown

Procs

do_slamSlams the ground around the source throwing back enemies caught nearby, delay is for the radius increase

Var Details

can_move

Whether the target can move or not while the slam is occurring

delay

The delay before the shockwave expands its range

range

The range of the slam

throw_range

How far hit targets are thrown

Proc Details

do_slam

Slams the ground around the source throwing back enemies caught nearby, delay is for the radius increase

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/guardian_alarm_snare.html b/datum/action/cooldown/mob_cooldown/guardian_alarm_snare.html new file mode 100644 index 0000000000000..29288311643db --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/guardian_alarm_snare.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/guardian_alarm_snare - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

guardian_alarm_snare

Place an invisible trap which alerts the guardian when it is crossed

Vars

maximum_snaresHow many snares can we have?
placed_snaresWhat snares have we already placed?

Procs

on_snare_deletedWhen a snare is deleted remove it from tracking

Var Details

maximum_snares

How many snares can we have?

placed_snares

What snares have we already placed?

Proc Details

on_snare_deleted

When a snare is deleted remove it from tracking

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/guardian_bluespace_beacon.html b/datum/action/cooldown/mob_cooldown/guardian_bluespace_beacon.html new file mode 100644 index 0000000000000..e8ef55c9ee278 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/guardian_bluespace_beacon.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/guardian_bluespace_beacon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

guardian_bluespace_beacon

Place a beacon and then listen for clicks to teleport people to it

Vars

beaconOur teleportation beacon.
teleport_timeTime it takes to teleport something.

Procs

can_teleportValidate whether we can teleport this object
on_beacon_deletedDon't hold a reference to a deleted beacon
perform_teleportStart teleporting
try_teleportingTry and teleport something to our beacon

Var Details

beacon

Our teleportation beacon.

teleport_time

Time it takes to teleport something.

Proc Details

can_teleport

Validate whether we can teleport this object

on_beacon_deleted

Don't hold a reference to a deleted beacon

perform_teleport

Start teleporting

try_teleporting

Try and teleport something to our beacon

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/hivelord_spawn.html b/datum/action/cooldown/mob_cooldown/hivelord_spawn.html new file mode 100644 index 0000000000000..039c3f26ca207 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/hivelord_spawn.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/hivelord_spawn - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hivelord_spawn

Spawns a little worm nearby

Vars

ai_target_keyIf a mob is not clicked directly, inherit targeting data from this blackboard key and setting it upon this target key
on_hit_cooldownDelay between triggering on hit
on_hit_delayMinimum time between triggering on hit
spawn_typeWhat are we actually spawning?
trigger_on_hitDo we automatically fire with no cooldown when damaged?

Procs

complete_spawnActually create a mob
on_attackedCalled when someone whacks us
spawn_broodSpawn a funny little worm

Var Details

ai_target_key

If a mob is not clicked directly, inherit targeting data from this blackboard key and setting it upon this target key

on_hit_cooldown

Delay between triggering on hit

on_hit_delay

Minimum time between triggering on hit

spawn_type

What are we actually spawning?

trigger_on_hit

Do we automatically fire with no cooldown when damaged?

Proc Details

complete_spawn

Actually create a mob

on_attacked

Called when someone whacks us

spawn_brood

Spawn a funny little worm

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/ice_demon_teleport.html b/datum/action/cooldown/mob_cooldown/ice_demon_teleport.html new file mode 100644 index 0000000000000..a139da112eb7c --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/ice_demon_teleport.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/ice_demon_teleport - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ice_demon_teleport

Vars

time_delaytime delay before teleport

Var Details

time_delay

time delay before teleport

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/lava_swoop.html b/datum/action/cooldown/mob_cooldown/lava_swoop.html new file mode 100644 index 0000000000000..baf170aa94a60 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/lava_swoop.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/lava_swoop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lava_swoop

Vars

enragedCheck to see if we are enraged
swoopingCheck if we are currently swooping

Var Details

enraged

Check to see if we are enraged

swooping

Check if we are currently swooping

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/lay_eggs.html b/datum/action/cooldown/mob_cooldown/lay_eggs.html new file mode 100644 index 0000000000000..543253b40ede8 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/lay_eggs.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/lay_eggs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lay_eggs

Vars

egg_lay_timeHow long it takes for a broodmother to lay eggs.
egg_typeThe type of egg we create

Var Details

egg_lay_time

How long it takes for a broodmother to lay eggs.

egg_type

The type of egg we create

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/lay_eggs/enriched.html b/datum/action/cooldown/mob_cooldown/lay_eggs/enriched.html new file mode 100644 index 0000000000000..4fff866f8dc74 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/lay_eggs/enriched.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/lay_eggs/enriched - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

enriched

Vars

chargesHow many charges we have to make eggs

Var Details

charges

How many charges we have to make eggs

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/lay_web.html b/datum/action/cooldown/mob_cooldown/lay_web.html new file mode 100644 index 0000000000000..cc93c8efa2521 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/lay_web.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/lay_web - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lay_web

Make a sticky web under yourself for area fortification

Vars

webbing_timeHow long it takes to lay a web

Procs

obstructed_by_other_webReturns true if there's a web we can't put stuff on in our turf
plant_webCreates a web in the current turf

Var Details

webbing_time

How long it takes to lay a web

Proc Details

obstructed_by_other_web

Returns true if there's a web we can't put stuff on in our turf

plant_web

Creates a web in the current turf

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/lesser_carp_rift.html b/datum/action/cooldown/mob_cooldown/lesser_carp_rift.html new file mode 100644 index 0000000000000..78b1ee87c94b3 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/lesser_carp_rift.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/lesser_carp_rift - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Lesser Carp Rift

Teleport a short distance and leave a short-lived portal for people to follow through

Vars

max_rangeHow far away can you place a rift?

Var Details

max_range

How far away can you place a rift?

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/missile_launcher.html b/datum/action/cooldown/mob_cooldown/missile_launcher.html new file mode 100644 index 0000000000000..c45a50abe06c3 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/missile_launcher.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/missile_launcher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

missile_launcher

Vars

wind_up_timerhow long before we launch said missile

Var Details

wind_up_timer

how long before we launch said missile

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/mook_ability.html b/datum/action/cooldown/mob_cooldown/mook_ability.html new file mode 100644 index 0000000000000..a2bb753b09ac8 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/mook_ability.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/mook_ability - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mook_ability

Vars

is_mookare we a mook?

Var Details

is_mook

are we a mook?

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/mook_ability/mook_leap.html b/datum/action/cooldown/mob_cooldown/mook_ability/mook_leap.html new file mode 100644 index 0000000000000..823d17eff4c74 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/mook_ability/mook_leap.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/mook_ability/mook_leap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mook_leap

Vars

attack_intervalintervals between each of our attacks
times_to_attackhow many times do we attack if we reach the target?
wind_up_timetelegraph time before jumping

Var Details

attack_interval

intervals between each of our attacks

times_to_attack

how many times do we attack if we reach the target?

wind_up_time

telegraph time before jumping

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/projectile_attack.html b/datum/action/cooldown/mob_cooldown/projectile_attack.html new file mode 100644 index 0000000000000..227c617a90390 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/projectile_attack.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/projectile_attack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

projectile_attack

Vars

can_moveWhether the target can move or not while the attack is occurring
default_projectile_spreadThe variance in the projectiles direction
has_homingIf the projectile should home in on its target
homing_turn_speedThe turning speed if there is homing
projectile_soundThe sound played when a projectile is fired
projectile_speed_multiplierThe multiplier to the projectiles speed (a value of 2 makes it twice as slow, 0.5 makes it twice as fast)
projectile_typeThe type of the projectile to be fired

Var Details

can_move

Whether the target can move or not while the attack is occurring

default_projectile_spread

The variance in the projectiles direction

has_homing

If the projectile should home in on its target

homing_turn_speed

The turning speed if there is homing

projectile_sound

The sound played when a projectile is fired

projectile_speed_multiplier

The multiplier to the projectiles speed (a value of 2 makes it twice as slow, 0.5 makes it twice as fast)

projectile_type

The type of the projectile to be fired

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/projectile_attack/magicarp_bolt/chaos.html b/datum/action/cooldown/mob_cooldown/projectile_attack/magicarp_bolt/chaos.html new file mode 100644 index 0000000000000..682d3054985c3 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/projectile_attack/magicarp_bolt/chaos.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/projectile_attack/magicarp_bolt/chaos - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chaos

Chaos variant picks one from a list

Vars

permitted_projectilesList of things we can cast

Var Details

permitted_projectiles

List of things we can cast

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/projectile_attack/rapid_fire.html b/datum/action/cooldown/mob_cooldown/projectile_attack/rapid_fire.html new file mode 100644 index 0000000000000..d4bd6ad2f410a --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/projectile_attack/rapid_fire.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/projectile_attack/rapid_fire - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rapid_fire

Vars

shot_countTotal shot count
shot_delayDelay between shots

Var Details

shot_count

Total shot count

shot_delay

Delay between shots

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/projectile_attack/rapid_fire/seedling.html b/datum/action/cooldown/mob_cooldown/projectile_attack/rapid_fire/seedling.html new file mode 100644 index 0000000000000..625f05a206f87 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/projectile_attack/rapid_fire/seedling.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/projectile_attack/rapid_fire/seedling - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

seedling

Vars

charge_up_timerhow long we must charge up before firing off
is_seedlingis the owner of this ability a seedling?

Var Details

charge_up_timer

how long we must charge up before firing off

is_seedling

is the owner of this ability a seedling?

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/projectile_attack/spiral_shots.html b/datum/action/cooldown/mob_cooldown/projectile_attack/spiral_shots.html new file mode 100644 index 0000000000000..5661cd21c1385 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/projectile_attack/spiral_shots.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/projectile_attack/spiral_shots - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spiral_shots

Vars

enragedWhether or not the attack is the enraged form

Var Details

enraged

Whether or not the attack is the enraged form

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/projectile_attack/vine_tangle.html b/datum/action/cooldown/mob_cooldown/projectile_attack/vine_tangle.html new file mode 100644 index 0000000000000..eac5e86861f98 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/projectile_attack/vine_tangle.html @@ -0,0 +1,7 @@ +/datum/action/cooldown/mob_cooldown/projectile_attack/vine_tangle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

vine_tangle

Vars

vine_durationhow long does a vine attached to something last (and its leash) (lasts twice as long on nonliving things)
vine_grab_distanceHow far away a plant can attach a vine to something
vinesAn assoc list of all the plant's vines (beam = leash)

Procs

remove_vineRemoves a vine from the list.

Var Details

vine_duration

how long does a vine attached to something last (and its leash) (lasts twice as long on nonliving things)

vine_grab_distance

How far away a plant can attach a vine to something

vines

An assoc list of all the plant's vines (beam = leash)

Proc Details

remove_vine

Removes a vine from the list.

+

Removes the vine from our list. +Called specifically when the vine is about to be destroyed, so we don't have any null references. +Arguments:

+
\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/riot.html b/datum/action/cooldown/mob_cooldown/riot.html new file mode 100644 index 0000000000000..6fdb7c9c04937 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/riot.html @@ -0,0 +1,8 @@ +/datum/action/cooldown/mob_cooldown/riot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

riot

This action checks some nearby maintenance animals and makes them your minions. +If none are nearby, creates a new mouse.

Vars

glockroach_commandsCommands you can give to glockroaches
mouse_commandsCommands you can give to your mouse army
rangeHow close does something need to be for us to recruit it?

Procs

convert_frogTurns a frog into a crazy frog. This doesn't do anything interesting and should when it becomes a basic mob.
convert_mouseTurns a mouse into an angry mouse
convert_roachTurns a roach into an angry roach
make_minionMakes a passed mob into our minion
riotAttempts to, in order and ending at any successful step:

Var Details

glockroach_commands

Commands you can give to glockroaches

mouse_commands

Commands you can give to your mouse army

range

How close does something need to be for us to recruit it?

Proc Details

convert_frog

Turns a frog into a crazy frog. This doesn't do anything interesting and should when it becomes a basic mob.

convert_mouse

Turns a mouse into an angry mouse

convert_roach

Turns a roach into an angry roach

make_minion

Makes a passed mob into our minion

riot

Attempts to, in order and ending at any successful step:

+
\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/set_spider_directive.html b/datum/action/cooldown/mob_cooldown/set_spider_directive.html new file mode 100644 index 0000000000000..2199c20a6e65c --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/set_spider_directive.html @@ -0,0 +1,2 @@ +/datum/action/cooldown/mob_cooldown/set_spider_directive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

set_spider_directive

Sets a directive to be given to all future spiders created by the user. +This will be overwritten if used again.

Vars

current_directiveCurrent directive to apply

Var Details

current_directive

Current directive to apply

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/skull_launcher.html b/datum/action/cooldown/mob_cooldown/skull_launcher.html new file mode 100644 index 0000000000000..7ca982e478c11 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/skull_launcher.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/skull_launcher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

skull_launcher

Spawns a little worm nearby

Vars

ai_target_keyIf a mob is not clicked directly, inherit targeting data from this blackboard key and setting it upon this target key
max_rangeHow far can we fire?
spawn_typeWhat are we actually spawning?

Procs

spawn_skullActually create a mob

Var Details

ai_target_key

If a mob is not clicked directly, inherit targeting data from this blackboard key and setting it upon this target key

max_range

How far can we fire?

spawn_type

What are we actually spawning?

Proc Details

spawn_skull

Actually create a mob

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/slippery_ice_floors.html b/datum/action/cooldown/mob_cooldown/slippery_ice_floors.html new file mode 100644 index 0000000000000..da9beeef703c7 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/slippery_ice_floors.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/slippery_ice_floors - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

slippery_ice_floors

Vars

radiusperimeter we will spawn the iced floors on
spread_durationintervals we will spawn the ice floors in

Var Details

radius

perimeter we will spawn the iced floors on

spread_duration

intervals we will spawn the ice floors in

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/sneak.html b/datum/action/cooldown/mob_cooldown/sneak.html new file mode 100644 index 0000000000000..b151a568ad55f --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/sneak.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/sneak - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sneak

Vars

animation_timeHow long it takes to become transparent
sneak_alphaThe alpha we go to when sneaking.

Var Details

animation_time

How long it takes to become transparent

sneak_alpha

The alpha we go to when sneaking.

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/solarbeam.html b/datum/action/cooldown/mob_cooldown/solarbeam.html new file mode 100644 index 0000000000000..ad951f8ae1ef8 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/solarbeam.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/solarbeam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

solarbeam

Vars

beam_charge_uphow long will it take for us to charge up the beam
is_seedlingis the owner of this ability a seedling?

Procs

launch_beamthe solarbeam will damage people, otherwise it will heal plants

Var Details

beam_charge_up

how long will it take for us to charge up the beam

is_seedling

is the owner of this ability a seedling?

Proc Details

launch_beam

the solarbeam will damage people, otherwise it will heal plants

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/spine_traps.html b/datum/action/cooldown/mob_cooldown/spine_traps.html new file mode 100644 index 0000000000000..6c09cb2bdff61 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/spine_traps.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/spine_traps - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spine_traps

Marks several areas with thrusting spines which damage and slow people

Vars

min_rangeDon't create zones within this radius
rangeCreate zones at most this far away
zones_to_createNumber of zones to place

Procs

is_valid_turfReturns true if we can place a trap at the specified location
place_zonePlaces a 3x3 area of spike traps around a central provided point, returns the list of now occupied turfs

Var Details

min_range

Don't create zones within this radius

range

Create zones at most this far away

zones_to_create

Number of zones to place

Proc Details

is_valid_turf

Returns true if we can place a trap at the specified location

place_zone

Places a 3x3 area of spike traps around a central provided point, returns the list of now occupied turfs

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/teleport.html b/datum/action/cooldown/mob_cooldown/teleport.html new file mode 100644 index 0000000000000..b87a66371443f --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/teleport.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/teleport - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

teleport

Vars

radiusThe distance from the target

Procs

teleport_toHandles randomly teleporting the owner around the target in view

Var Details

radius

The distance from the target

Proc Details

teleport_to

Handles randomly teleporting the owner around the target in view

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/transform_weapon.html b/datum/action/cooldown/mob_cooldown/transform_weapon.html new file mode 100644 index 0000000000000..25fabc6b45eeb --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/transform_weapon.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/transform_weapon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

transform_weapon

Vars

max_cooldown_timeThe max possible cooldown, cooldown is random between the default cooldown time and this

Var Details

max_cooldown_time

The max possible cooldown, cooldown is random between the default cooldown time and this

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/watcher_gaze.html b/datum/action/cooldown/mob_cooldown/watcher_gaze.html new file mode 100644 index 0000000000000..4bd87b8ea15b0 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/watcher_gaze.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/watcher_gaze - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

watcher_gaze

Do something nasty to everyone nearby if they're looking at us.

Vars

animation_timeHow long does it take to play our various animation stages
current_overlayWhat are we currently displaying?
effect_radiusAt what range do we check for vision?
stage_timerTimer until we go to the next stage
wait_delayHow long after pressing the button do we give people to turn around?

Procs

apply_effectDo something bad to someone who was looking at us
clear_current_overlayHide whatever overlay we are showing
hide_eyeAnimate our effect out
show_indicator_overlayDisplay an animated overlay over our head to indicate what's going on
trigger_effectDo some effects to whoever is looking at us

Var Details

animation_time

How long does it take to play our various animation stages

current_overlay

What are we currently displaying?

effect_radius

At what range do we check for vision?

stage_timer

Timer until we go to the next stage

wait_delay

How long after pressing the button do we give people to turn around?

Proc Details

apply_effect

Do something bad to someone who was looking at us

clear_current_overlay

Hide whatever overlay we are showing

hide_eye

Animate our effect out

show_indicator_overlay

Display an animated overlay over our head to indicate what's going on

trigger_effect

Do some effects to whoever is looking at us

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/watcher_gaze/ice.html b/datum/action/cooldown/mob_cooldown/watcher_gaze/ice.html new file mode 100644 index 0000000000000..53d27d4eb35d7 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/watcher_gaze/ice.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/watcher_gaze/ice - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ice

Icewing glare freezes you

Vars

max_throwMax distance to throw people looking at us

Var Details

max_throw

Max distance to throw people looking at us

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/watcher_overwatch.html b/datum/action/cooldown/mob_cooldown/watcher_overwatch.html new file mode 100644 index 0000000000000..3c4ce7d951a84 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/watcher_overwatch.html @@ -0,0 +1,2 @@ +/datum/action/cooldown/mob_cooldown/watcher_overwatch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

watcher_overwatch

Automatically shoot at a target if they do anything while this is active on them. +Currently not given to any mob, but retained so admins can use it.

Vars

max_rangeFurthest range we can activate ability at
overwatch_durationTime to watch for
projectile_soundSound the projectile we fire makes
projectile_typeType of projectile to fire

Var Details

max_range

Furthest range we can activate ability at

overwatch_duration

Time to watch for

projectile_sound

Sound the projectile we fire makes

projectile_type

Type of projectile to fire

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/wing_buffet.html b/datum/action/cooldown/mob_cooldown/wing_buffet.html new file mode 100644 index 0000000000000..f85e988098b58 --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/wing_buffet.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/wing_buffet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wing_buffet

Rise into the air and slam down, knocking people away. No real cooldown but has escalating endlag if used in quick succession.

Vars

active_timerTimer we use to track our current action
additional_endlagAmount of extra time to stay stunned after the end of the ability
applied_traitsList of traits we apply while the ability is ongoing, stops us from moving around and such
endlag_decay_per_secondHow much accumulated stun time do we subtract every second? Takes a full minute to regen off a single use :(
endlag_per_activationAmount of time to add to endlag after each successful use of the ability
exhaustion_multiplierIncrease the effect of our accumulated additional stun time by this much if space dragon has lost some rifts
gust_distanceHow far away can we reach people?
minimum_endlagMinimum amount of stun time following use of wing buffet
windup_timeHow long to animate for before we start?

Procs

begin_sequenceRise up into the air
ground_poundSlam into the ground
on_lifeDecay our accumulated additional tiredness

Var Details

active_timer

Timer we use to track our current action

additional_endlag

Amount of extra time to stay stunned after the end of the ability

applied_traits

List of traits we apply while the ability is ongoing, stops us from moving around and such

endlag_decay_per_second

How much accumulated stun time do we subtract every second? Takes a full minute to regen off a single use :(

endlag_per_activation

Amount of time to add to endlag after each successful use of the ability

exhaustion_multiplier

Increase the effect of our accumulated additional stun time by this much if space dragon has lost some rifts

gust_distance

How far away can we reach people?

minimum_endlag

Minimum amount of stun time following use of wing buffet

windup_time

How long to animate for before we start?

Proc Details

begin_sequence

Rise up into the air

ground_pound

Slam into the ground

on_life

Decay our accumulated additional tiredness

\ No newline at end of file diff --git a/datum/action/cooldown/mob_cooldown/wrap.html b/datum/action/cooldown/mob_cooldown/wrap.html new file mode 100644 index 0000000000000..ae555f734c18c --- /dev/null +++ b/datum/action/cooldown/mob_cooldown/wrap.html @@ -0,0 +1 @@ +/datum/action/cooldown/mob_cooldown/wrap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wrap

Vars

wrap_timeThe time it takes to wrap something.

Var Details

wrap_time

The time it takes to wrap something.

\ No newline at end of file diff --git a/datum/action/cooldown/open_mob_commands.html b/datum/action/cooldown/open_mob_commands.html new file mode 100644 index 0000000000000..b94d4999f17a2 --- /dev/null +++ b/datum/action/cooldown/open_mob_commands.html @@ -0,0 +1 @@ +/datum/action/cooldown/open_mob_commands - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

open_mob_commands

Vars

our_mobWeakref for storing our stargazer

Procs

open_menuOpens the pet command options menu for a mob.

Var Details

our_mob

Weakref for storing our stargazer

Proc Details

open_menu

Opens the pet command options menu for a mob.

\ No newline at end of file diff --git a/datum/action/cooldown/rustle.html b/datum/action/cooldown/rustle.html new file mode 100644 index 0000000000000..05267e4e3cc39 --- /dev/null +++ b/datum/action/cooldown/rustle.html @@ -0,0 +1 @@ +/datum/action/cooldown/rustle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rustle

drops peels around the mob when activated

Vars

banana_typewhich type of peel to spawn
peel_amountHow many peels to spawn

Var Details

banana_type

which type of peel to spawn

peel_amount

How many peels to spawn

\ No newline at end of file diff --git a/datum/action/cooldown/spell.html b/datum/action/cooldown/spell.html new file mode 100644 index 0000000000000..8af460258249a --- /dev/null +++ b/datum/action/cooldown/spell.html @@ -0,0 +1,84 @@ +/datum/action/cooldown/spell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

The spell action

This is the base action for how many of the game's +spells (and spell adjacent) abilities function. +These spells function off of a cooldown-based system.

+

Pre-spell checks:

+ +

The spell chain:

+ +

Other procs called / may be called within the chain:

+ +

Other procs of note:

+

Vars

antimagic_flagsThis determines what type of antimagic is needed to block the spell. +(MAGIC_RESISTANCE, MAGIC_RESISTANCE_MIND, MAGIC_RESISTANCE_HOLY) +If SPELL_REQUIRES_NO_ANTIMAGIC is set in Spell requirements, +The spell cannot be cast if the caster has any of the antimagic flags set.
cooldown_reduction_per_rankIf the spell uses the wizard spell rank system, the cooldown reduction per rank of the spell
garbled_invocation_probif true, doesn't garble the invocation sometimes with backticks
invocationWhat is uttered when the user casts the spell
invocation_self_messageWhat is shown in chat when the user casts the spell, only matters for INVOCATION_EMOTE
invocation_typeWhat type of invocation the spell is. +Can be "none", "whisper", "shout", "emote"
schoolThe school of magic the spell belongs to. +Checked by some holy sects to punish the +caster for casting things that do not align +with their sect's alignment - see magic.dm in defines to learn more
smoke_amtThe amount of smoke to create on cast. This is a range, so a value of 5 will create enough smoke to cover everything within 5 steps.
smoke_typeThe typepath of the smoke to create on cast.
soundThe sound played on cast.
sparks_amtIf set to a positive number, the spell will produce sparks when casted.
spell_levelThe current spell level, if taken multiple times by a wizard
spell_max_levelThe max possible spell level
spell_requirementsFlag for certain states that the spell requires the user be in to cast.

Procs

after_castActions done after the main cast is finished. +This is called after the cooldown's already begun.
before_castActions done before the actual cast is called. +This is the last chance to cancel the spell from being cast.
can_cast_spellChecks if the owner of the spell can currently cast it. +Does not check anything involving potential targets.
castActions done as the main effect of the spell.
delevel_spellLevels the spell down a single level, down to 1.
get_caster_from_targetUsed to get the cast_on atom if a self cast spell is being cast.
get_spell_titleGets the title of the spell based on its level.
invocationThe invocation that accompanies the spell, called from spell_feedback() before cast().
is_valid_targetCheck if the target we're casting on is a valid target. +For self-casted spells, the target being checked (cast_on) is the caster. +For click_to_activate spells, the target being checked is the clicked atom.
level_spellLevels the spell up a single level, reducing the cooldown. +If bypass_cap is TRUE, will level the spell up past it's set cap.
reset_spell_cooldownResets the cooldown of the spell, sending COMSIG_SPELL_CAST_RESET +and allowing it to be used immediately (+ updating button icon accordingly)
spell_feedbackProvides feedback after a spell cast occurs, in the form of a cast sound and/or invocation
try_invokeChecks if the current OWNER of the spell is in a valid state to say the spell's invocation

Var Details

antimagic_flags

This determines what type of antimagic is needed to block the spell. +(MAGIC_RESISTANCE, MAGIC_RESISTANCE_MIND, MAGIC_RESISTANCE_HOLY) +If SPELL_REQUIRES_NO_ANTIMAGIC is set in Spell requirements, +The spell cannot be cast if the caster has any of the antimagic flags set.

cooldown_reduction_per_rank

If the spell uses the wizard spell rank system, the cooldown reduction per rank of the spell

garbled_invocation_prob

if true, doesn't garble the invocation sometimes with backticks

invocation

What is uttered when the user casts the spell

invocation_self_message

What is shown in chat when the user casts the spell, only matters for INVOCATION_EMOTE

invocation_type

What type of invocation the spell is. +Can be "none", "whisper", "shout", "emote"

school

The school of magic the spell belongs to. +Checked by some holy sects to punish the +caster for casting things that do not align +with their sect's alignment - see magic.dm in defines to learn more

smoke_amt

The amount of smoke to create on cast. This is a range, so a value of 5 will create enough smoke to cover everything within 5 steps.

smoke_type

The typepath of the smoke to create on cast.

sound

The sound played on cast.

sparks_amt

If set to a positive number, the spell will produce sparks when casted.

spell_level

The current spell level, if taken multiple times by a wizard

spell_max_level

The max possible spell level

spell_requirements

Flag for certain states that the spell requires the user be in to cast.

Proc Details

after_cast

Actions done after the main cast is finished. +This is called after the cooldown's already begun.

+

It can be used to apply late spell effects where order matters +(for example, causing smoke after a teleport occurs in cast()) +or to clean up variables or references post-cast.

before_cast

Actions done before the actual cast is called. +This is the last chance to cancel the spell from being cast.

+

Can be used for target selection or to validate checks on the caster (cast_on).

+

Returns a bitflag.

+

can_cast_spell

Checks if the owner of the spell can currently cast it. +Does not check anything involving potential targets.

cast

Actions done as the main effect of the spell.

+

For spells without a click intercept, [cast_on] will be the owner. +For click spells, [cast_on] is whatever the owner clicked on in casting the spell.

delevel_spell

Levels the spell down a single level, down to 1.

get_caster_from_target

Used to get the cast_on atom if a self cast spell is being cast.

+

Allows for some atoms to be used as casting sources if a spell caster is located within.

get_spell_title

Gets the title of the spell based on its level.

invocation

The invocation that accompanies the spell, called from spell_feedback() before cast().

is_valid_target

Check if the target we're casting on is a valid target. +For self-casted spells, the target being checked (cast_on) is the caster. +For click_to_activate spells, the target being checked is the clicked atom.

+

Return TRUE if cast_on is valid, FALSE otherwise

level_spell

Levels the spell up a single level, reducing the cooldown. +If bypass_cap is TRUE, will level the spell up past it's set cap.

reset_spell_cooldown

Resets the cooldown of the spell, sending COMSIG_SPELL_CAST_RESET +and allowing it to be used immediately (+ updating button icon accordingly)

spell_feedback

Provides feedback after a spell cast occurs, in the form of a cast sound and/or invocation

try_invoke

Checks if the current OWNER of the spell is in a valid state to say the spell's invocation

\ No newline at end of file diff --git a/datum/action/cooldown/spell/aoe.html b/datum/action/cooldown/spell/aoe.html new file mode 100644 index 0000000000000..5e694fc90a090 --- /dev/null +++ b/datum/action/cooldown/spell/aoe.html @@ -0,0 +1,16 @@ +/datum/action/cooldown/spell/aoe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

aoe

AOE spells

+

A spell that iterates over atoms near the caster and casts a spell on them. +Calls cast_on_thing_in_aoe on all atoms returned by get_things_to_cast_on by default.

Vars

aoe_radiusThe radius of the aoe.
max_targetsThe max amount of targets we can affect via our AOE. 0 = unlimited
shuffle_targets_listShould we shuffle the targets lift after getting them via get_things_to_cast_on?

Procs

cast_on_thing_in_aoeActually cause effects on the thing in our aoe. +Override this for your spell! Not cast().
get_things_to_cast_onGets a list of atoms around [center] that are within range and going to be affected by our aoe. +You should override this on a subtype basis to change what your spell affects.

Var Details

aoe_radius

The radius of the aoe.

max_targets

The max amount of targets we can affect via our AOE. 0 = unlimited

shuffle_targets_list

Should we shuffle the targets lift after getting them via get_things_to_cast_on?

Proc Details

cast_on_thing_in_aoe

Actually cause effects on the thing in our aoe. +Override this for your spell! Not cast().

+

Arguments

+

get_things_to_cast_on

Gets a list of atoms around [center] that are within range and going to be affected by our aoe. +You should override this on a subtype basis to change what your spell affects.

+

For example, if you want to only cast on atoms in view instead of range. +Or, if you only want living mobs in the list.

+

When using range / view, it's handy to remember the byond optimization they have by casting to an atom type.

+

Returns a list of atoms.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/aoe/magic_missile.html b/datum/action/cooldown/spell/aoe/magic_missile.html new file mode 100644 index 0000000000000..134fc373a0ae0 --- /dev/null +++ b/datum/action/cooldown/spell/aoe/magic_missile.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/aoe/magic_missile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

magic_missile

Vars

projectile_typeThe projectile type fired at all people around us

Var Details

projectile_type

The projectile type fired at all people around us

\ No newline at end of file diff --git a/datum/action/cooldown/spell/aoe/moon_ringleader.html b/datum/action/cooldown/spell/aoe/moon_ringleader.html new file mode 100644 index 0000000000000..508841af35051 --- /dev/null +++ b/datum/action/cooldown/spell/aoe/moon_ringleader.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/aoe/moon_ringleader - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

moon_ringleader

Vars

moon_effectEffect for when the spell triggers

Var Details

moon_effect

Effect for when the spell triggers

\ No newline at end of file diff --git a/datum/action/cooldown/spell/aoe/repulse.html b/datum/action/cooldown/spell/aoe/repulse.html new file mode 100644 index 0000000000000..c9ded42dabfd2 --- /dev/null +++ b/datum/action/cooldown/spell/aoe/repulse.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/aoe/repulse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

repulse

Vars

max_throwThe max throw range of the repulsioon.
repulse_forceThe moveforce of the throw done by the repulsion.
sparkle_pathA visual effect to be spawned on people who are thrown away.

Var Details

max_throw

The max throw range of the repulsioon.

repulse_force

The moveforce of the throw done by the repulsion.

sparkle_path

A visual effect to be spawned on people who are thrown away.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/aoe/repulse/xeno/skyrat_tailsweep.html b/datum/action/cooldown/spell/aoe/repulse/xeno/skyrat_tailsweep.html new file mode 100644 index 0000000000000..894de7c2e2e41 --- /dev/null +++ b/datum/action/cooldown/spell/aoe/repulse/xeno/skyrat_tailsweep.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/aoe/repulse/xeno/skyrat_tailsweep - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

skyrat_tailsweep

Vars

impact_damageHow much damage tail sweep impacts should do to a mob
impact_damage_typeWhat type of damage should the tail sweep do
impact_sharpnessWhat type of sharpness should this tail sweep have
impact_soundThe sound that the tail sweep will make upon hitting something
impact_wound_bonusWhat wound bonus should the tai sweep impact have
knockdown_timeHow long mobs hit by the tailsweep should be knocked down for

Var Details

impact_damage

How much damage tail sweep impacts should do to a mob

impact_damage_type

What type of damage should the tail sweep do

impact_sharpness

What type of sharpness should this tail sweep have

impact_sound

The sound that the tail sweep will make upon hitting something

impact_wound_bonus

What wound bonus should the tai sweep impact have

knockdown_time

How long mobs hit by the tailsweep should be knocked down for

\ No newline at end of file diff --git a/datum/action/cooldown/spell/aoe/revenant.html b/datum/action/cooldown/spell/aoe/revenant.html new file mode 100644 index 0000000000000..ffeac9300f294 --- /dev/null +++ b/datum/action/cooldown/spell/aoe/revenant.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/aoe/revenant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

revenant

Vars

cast_amountHow much essence it costs to use
lockedIf it's locked, and needs to be unlocked before use
reveal_durationHow long it reveals the revenant
unlock_amountHow much essence it costs to unlock

Var Details

cast_amount

How much essence it costs to use

locked

If it's locked, and needs to be unlocked before use

reveal_duration

How long it reveals the revenant

unlock_amount

How much essence it costs to unlock

\ No newline at end of file diff --git a/datum/action/cooldown/spell/aoe/revenant/overload.html b/datum/action/cooldown/spell/aoe/revenant/overload.html new file mode 100644 index 0000000000000..08ca307b5b389 --- /dev/null +++ b/datum/action/cooldown/spell/aoe/revenant/overload.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/aoe/revenant/overload - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

overload

Vars

shock_damageThe damage the shocks from the lights do
shock_rangeThe range the shocks from the lights go

Var Details

shock_damage

The damage the shocks from the lights do

shock_range

The range the shocks from the lights go

\ No newline at end of file diff --git a/datum/action/cooldown/spell/aoe/sacred_flame.html b/datum/action/cooldown/spell/aoe/sacred_flame.html new file mode 100644 index 0000000000000..9e333d1ce4048 --- /dev/null +++ b/datum/action/cooldown/spell/aoe/sacred_flame.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/aoe/sacred_flame - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sacred_flame

Vars

firestacks_to_giveThe amount of firestacks to put people afflicted.

Var Details

firestacks_to_give

The amount of firestacks to put people afflicted.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/aoe/void_pull.html b/datum/action/cooldown/spell/aoe/void_pull.html new file mode 100644 index 0000000000000..b90a6d1451222 --- /dev/null +++ b/datum/action/cooldown/spell/aoe/void_pull.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/aoe/void_pull - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

void_pull

Vars

damage_radiusThe radius of the actual damage circle done before cast
stun_radiusThe radius of the stun applied to nearby people on cast

Var Details

damage_radius

The radius of the actual damage circle done before cast

stun_radius

The radius of the stun applied to nearby people on cast

\ No newline at end of file diff --git a/datum/action/cooldown/spell/apply_mutations.html b/datum/action/cooldown/spell/apply_mutations.html new file mode 100644 index 0000000000000..13edddb49a1c1 --- /dev/null +++ b/datum/action/cooldown/spell/apply_mutations.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/apply_mutations - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

apply_mutations

A spell type that adds mutations to the caster temporarily.

Vars

mutation_durationThe duration the mutations will last afetr cast (keep this above the minimum cooldown)
mutations_to_addA list of all mutations we add on cast

Procs

remove_mutationsRemoves the mutations we added from casting our spell

Var Details

mutation_duration

The duration the mutations will last afetr cast (keep this above the minimum cooldown)

mutations_to_add

A list of all mutations we add on cast

Proc Details

remove_mutations

Removes the mutations we added from casting our spell

\ No newline at end of file diff --git a/datum/action/cooldown/spell/basic_heal.html b/datum/action/cooldown/spell/basic_heal.html new file mode 100644 index 0000000000000..20dd230654d91 --- /dev/null +++ b/datum/action/cooldown/spell/basic_heal.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/basic_heal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

basic_heal

Vars

brute_to_healAmount of brute to heal to the spell caster on cast
burn_to_healAmount of burn to heal to the spell caster on cast

Var Details

brute_to_heal

Amount of brute to heal to the spell caster on cast

burn_to_heal

Amount of burn to heal to the spell caster on cast

\ No newline at end of file diff --git a/datum/action/cooldown/spell/basic_projectile.html b/datum/action/cooldown/spell/basic_projectile.html new file mode 100644 index 0000000000000..369d291217f4f --- /dev/null +++ b/datum/action/cooldown/spell/basic_projectile.html @@ -0,0 +1,4 @@ +/datum/action/cooldown/spell/basic_projectile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

basic_projectile

Basic Projectile spell

+

Simply fires specified projectile type the direction the caster is facing.

+

Behavior could / should probably be unified with pointed projectile spells +and aoe projectile spells in the future.

Vars

projectile_rangeHow far we try to fire the basic projectile. Blocked by dense objects.
projectile_typeThe projectile type fired at all people around us

Var Details

projectile_range

How far we try to fire the basic projectile. Blocked by dense objects.

projectile_type

The projectile type fired at all people around us

\ No newline at end of file diff --git a/datum/action/cooldown/spell/charged.html b/datum/action/cooldown/spell/charged.html new file mode 100644 index 0000000000000..862f02664e837 --- /dev/null +++ b/datum/action/cooldown/spell/charged.html @@ -0,0 +1,3 @@ +/datum/action/cooldown/spell/charged - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

charged

Channelled spells

+

These spells do something after a channel time. +To use this template, all that's needed is for cast() to be implemented.

Vars

channel_flagsFlags of the do_after
channel_messageWhat message do we display when we start chanelling?
channel_timeHow long it takes to channel the spell.
charge_overlay_iconWhat icon should we use for our overlay
charge_overlay_instanceThe actual appearance / our overlay. Don't mess with this
charge_overlay_stateWhat icon state should we use for our overlay
charge_soundWhat soundpath should we play when we start chanelling
charge_sound_instanceThe actual sound we generate, don't mess with this
currently_channelingWhether we're currently channelling / charging the spell

Procs

stop_channel_effectInterrupts the chanelling effect, removing any overlay or sound playing (for the passed mob)

Var Details

channel_flags

Flags of the do_after

channel_message

What message do we display when we start chanelling?

channel_time

How long it takes to channel the spell.

charge_overlay_icon

What icon should we use for our overlay

charge_overlay_instance

The actual appearance / our overlay. Don't mess with this

charge_overlay_state

What icon state should we use for our overlay

charge_sound

What soundpath should we play when we start chanelling

charge_sound_instance

The actual sound we generate, don't mess with this

currently_channeling

Whether we're currently channelling / charging the spell

Proc Details

stop_channel_effect

Interrupts the chanelling effect, removing any overlay or sound playing (for the passed mob)

\ No newline at end of file diff --git a/datum/action/cooldown/spell/charged/beam.html b/datum/action/cooldown/spell/charged/beam.html new file mode 100644 index 0000000000000..a5f258ab87a46 --- /dev/null +++ b/datum/action/cooldown/spell/charged/beam.html @@ -0,0 +1,4 @@ +/datum/action/cooldown/spell/charged/beam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

beam

Channelled "Beam" spells

+

Channelled spells that pick a random target from nearby atoms to cast a spell on. +Commonly used for beams, hence the name, but nothing's stopping projectiles or whatever from working.

+

If no targets are nearby, cancels the spell and refunds the cooldown.

Vars

initial_targetWho's our initial beam target? Set in before cast, used in cast.
max_beam_bouncesThe maximum number of bounces the beam will go before stopping.
target_radiusThe radius around the caster to find a target.

Var Details

initial_target

Who's our initial beam target? Set in before cast, used in cast.

max_beam_bounces

The maximum number of bounces the beam will go before stopping.

target_radius

The radius around the caster to find a target.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/charged/beam/fire_blast.html b/datum/action/cooldown/spell/charged/beam/fire_blast.html new file mode 100644 index 0000000000000..2d7fde9a317a8 --- /dev/null +++ b/datum/action/cooldown/spell/charged/beam/fire_blast.html @@ -0,0 +1,5 @@ +/datum/action/cooldown/spell/charged/beam/fire_blast - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fire_blast

Vars

beam_durationHow long the beam visual lasts, also used to determine time between jumps

Procs

continue_beamTimer callback to continue the chain, calling send_fire_bream recursively.
get_targetPick a carbon mob in a radius around us that we can reach. +Mobs on fire will have priority and be targeted over others. +Returns null or a carbon mob.

Var Details

beam_duration

How long the beam visual lasts, also used to determine time between jumps

Proc Details

continue_beam

Timer callback to continue the chain, calling send_fire_bream recursively.

get_target

Pick a carbon mob in a radius around us that we can reach. +Mobs on fire will have priority and be targeted over others. +Returns null or a carbon mob.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/charged/beam/tesla.html b/datum/action/cooldown/spell/charged/beam/tesla.html new file mode 100644 index 0000000000000..2a1c319db24da --- /dev/null +++ b/datum/action/cooldown/spell/charged/beam/tesla.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/charged/beam/tesla - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tesla

Vars

energy_lost_per_bounceHow much energy / damage is lost per bounce
initial_energyHow much energy / damage does the initial bounce

Procs

send_beamZaps a target, the bolt originating from origin.

Var Details

energy_lost_per_bounce

How much energy / damage is lost per bounce

initial_energy

How much energy / damage does the initial bounce

Proc Details

send_beam

Zaps a target, the bolt originating from origin.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/charged/psychic_booster.html b/datum/action/cooldown/spell/charged/psychic_booster.html new file mode 100644 index 0000000000000..4d0209a57552f --- /dev/null +++ b/datum/action/cooldown/spell/charged/psychic_booster.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/charged/psychic_booster - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

psychic_booster

Vars

boostedAre we currently active?
effect_timeHow long the effect lasts for?

Var Details

boosted

Are we currently active?

effect_time

How long the effect lasts for?

\ No newline at end of file diff --git a/datum/action/cooldown/spell/cone.html b/datum/action/cooldown/spell/cone.html new file mode 100644 index 0000000000000..74162565a7dd3 --- /dev/null +++ b/datum/action/cooldown/spell/cone.html @@ -0,0 +1,5 @@ +/datum/action/cooldown/spell/cone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cone

Cone spells

+

Cone spells shoot off as a cone from the caster.

Vars

cone_levelsThis controls how many levels the cone has. Increase this value to make a bigger cone.
respect_densityThis value determines if the cone penetrates walls.

Procs

calculate_cone_shapeAdjusts the width of the cone at the passed level. +This is never called on the first level of the cone (level 1 is always 1 width)
do_cone_effectsThis proc does obj, mob and turf cone effects on all targets in the passed list.
do_mob_cone_effectThis proc deterimines how the spell will affect mobs.
do_obj_cone_effectThis proc deterimines how the spell will affect objects.
do_turf_cone_effectThis proc deterimines how the spell will affect turfs.
get_cone_turfsThis proc creates a list of turfs that are hit by the cone.

Var Details

cone_levels

This controls how many levels the cone has. Increase this value to make a bigger cone.

respect_density

This value determines if the cone penetrates walls.

Proc Details

calculate_cone_shape

Adjusts the width of the cone at the passed level. +This is never called on the first level of the cone (level 1 is always 1 width)

+

Return a number - the TOTAL width of the cone at the passed level.

do_cone_effects

This proc does obj, mob and turf cone effects on all targets in the passed list.

do_mob_cone_effect

This proc deterimines how the spell will affect mobs.

do_obj_cone_effect

This proc deterimines how the spell will affect objects.

do_turf_cone_effect

This proc deterimines how the spell will affect turfs.

get_cone_turfs

This proc creates a list of turfs that are hit by the cone.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/cone/staggered.html b/datum/action/cooldown/spell/cone/staggered.html new file mode 100644 index 0000000000000..3d9644a242f8a --- /dev/null +++ b/datum/action/cooldown/spell/cone/staggered.html @@ -0,0 +1,4 @@ +/datum/action/cooldown/spell/cone/staggered - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

staggered

Staggered Cone

+

Staggered Cone spells will reach each cone level +gradually / with a delay, instead of affecting the entire +cone area at once.

Vars

delay_between_levelThe delay between each cone level triggering.

Var Details

delay_between_level

The delay between each cone level triggering.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/cone/staggered/cone_of_cold.html b/datum/action/cooldown/spell/cone/staggered/cone_of_cold.html new file mode 100644 index 0000000000000..8ad21eef76a88 --- /dev/null +++ b/datum/action/cooldown/spell/cone/staggered/cone_of_cold.html @@ -0,0 +1,11 @@ +/datum/action/cooldown/spell/cone/staggered/cone_of_cold - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cone_of_cold

Vars

frozen_status_effect_pathWhat status effect do we apply when affecting mobs? +null means no status effect is applied
on_freeze_brute_damageHow much brute do we apply on freeze?
on_freeze_burn_damageHow much burn do we apply on freeze?
turf_freeze_typeWhat flags do we pass to MakeSlippery when affecting turfs? +null / NONE / TURF_DRY means the turf is unaffected
unfreeze_mob_durationHow long do mobs remain frozen for? +0 seconds means no status effect is applied, INFINITY means infinite duration (or default duration of the status effect)
unfreeze_object_durationHow long do objects remain frozen for? +0 seconds mean no objects are frozen, INFINITY means infinite duration freeze
unfreeze_turf_durationHow long do turfs remain slippery / frozen for? +0 seconds means the turf is unaffected, INFINITY means it's made perma-wet

Var Details

frozen_status_effect_path

What status effect do we apply when affecting mobs? +null means no status effect is applied

on_freeze_brute_damage

How much brute do we apply on freeze?

on_freeze_burn_damage

How much burn do we apply on freeze?

turf_freeze_type

What flags do we pass to MakeSlippery when affecting turfs? +null / NONE / TURF_DRY means the turf is unaffected

unfreeze_mob_duration

How long do mobs remain frozen for? +0 seconds means no status effect is applied, INFINITY means infinite duration (or default duration of the status effect)

unfreeze_object_duration

How long do objects remain frozen for? +0 seconds mean no objects are frozen, INFINITY means infinite duration freeze

unfreeze_turf_duration

How long do turfs remain slippery / frozen for? +0 seconds means the turf is unaffected, INFINITY means it's made perma-wet

\ No newline at end of file diff --git a/datum/action/cooldown/spell/cone/staggered/fire_breath.html b/datum/action/cooldown/spell/cone/staggered/fire_breath.html new file mode 100644 index 0000000000000..67d2817c3155a --- /dev/null +++ b/datum/action/cooldown/spell/cone/staggered/fire_breath.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/cone/staggered/fire_breath - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fire_breath

Vars

self_throw_rangeThe range our user is thrown backwards after casting the spell

Var Details

self_throw_range

The range our user is thrown backwards after casting the spell

\ No newline at end of file diff --git a/datum/action/cooldown/spell/conjure.html b/datum/action/cooldown/spell/conjure.html new file mode 100644 index 0000000000000..82b611067809b --- /dev/null +++ b/datum/action/cooldown/spell/conjure.html @@ -0,0 +1,3 @@ +/datum/action/cooldown/spell/conjure - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

conjure

Vars

create_summon_timerfor how long must we stay still when summoning
summon_amountAmount of summons to create.
summon_lifespanHow long before the summons will be despawned. Set to 0 for permanent.
summon_radiusThe radius around the caster the items will appear. 0 = spawns on top of the caster.
summon_respects_densityIf TRUE, summoned objects will not be spawned in dense turfs.
summon_respects_prev_spawn_pointsIf TRUE, no two summons can be spawned in the same turf.
summon_typeA list of types that will be created on summon. +The type is picked from this list, not all provided are guaranteed.

Procs

post_summonCalled on atoms summoned after they are created, allows extra variable editing and such of created objects

Var Details

create_summon_timer

for how long must we stay still when summoning

summon_amount

Amount of summons to create.

summon_lifespan

How long before the summons will be despawned. Set to 0 for permanent.

summon_radius

The radius around the caster the items will appear. 0 = spawns on top of the caster.

summon_respects_density

If TRUE, summoned objects will not be spawned in dense turfs.

summon_respects_prev_spawn_points

If TRUE, no two summons can be spawned in the same turf.

summon_type

A list of types that will be created on summon. +The type is picked from this list, not all provided are guaranteed.

Proc Details

post_summon

Called on atoms summoned after they are created, allows extra variable editing and such of created objects

\ No newline at end of file diff --git a/datum/action/cooldown/spell/conjure/cosmic_expansion.html b/datum/action/cooldown/spell/conjure/cosmic_expansion.html new file mode 100644 index 0000000000000..b625a45574447 --- /dev/null +++ b/datum/action/cooldown/spell/conjure/cosmic_expansion.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/conjure/cosmic_expansion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cosmic_expansion

Vars

ascendedIf the heretic is ascended or not
expansion_effectEffect for when the spell triggers
star_mark_rangeThe range at which people will get marked with a star mark.

Var Details

ascended

If the heretic is ascended or not

expansion_effect

Effect for when the spell triggers

star_mark_range

The range at which people will get marked with a star mark.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/conjure/limit_summons.html b/datum/action/cooldown/spell/conjure/limit_summons.html new file mode 100644 index 0000000000000..b21ea8d1c37a4 --- /dev/null +++ b/datum/action/cooldown/spell/conjure/limit_summons.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/conjure/limit_summons - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

limit_summons

limits the amount of summons

Vars

max_summonsmax number of after images
number_of_summonsHow many clones do we have summoned

Var Details

max_summons

max number of after images

number_of_summons

How many clones do we have summoned

\ No newline at end of file diff --git a/datum/action/cooldown/spell/conjure/simian.html b/datum/action/cooldown/spell/conjure/simian.html new file mode 100644 index 0000000000000..e4ddcc42bf6ed --- /dev/null +++ b/datum/action/cooldown/spell/conjure/simian.html @@ -0,0 +1,4 @@ +/datum/action/cooldown/spell/conjure/simian - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

simian

Vars

gorilla_transformationOur gorilla transformation spell, additionally granted to the user at max level.

Procs

equip_monky

Var Details

gorilla_transformation

Our gorilla transformation spell, additionally granted to the user at max level.

Proc Details

equip_monky

\ No newline at end of file diff --git a/datum/action/cooldown/spell/conjure/the_traps.html b/datum/action/cooldown/spell/conjure/the_traps.html new file mode 100644 index 0000000000000..5a397c27e9634 --- /dev/null +++ b/datum/action/cooldown/spell/conjure/the_traps.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/conjure/the_traps - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

the_traps

Vars

trap_chargesThe amount of charges the traps spawn with.

Var Details

trap_charges

The amount of charges the traps spawn with.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/conjure/wizard_summon_minions.html b/datum/action/cooldown/spell/conjure/wizard_summon_minions.html new file mode 100644 index 0000000000000..1248a2ebd1195 --- /dev/null +++ b/datum/action/cooldown/spell/conjure/wizard_summon_minions.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/conjure/wizard_summon_minions - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wizard_summon_minions

Vars

max_minionsHow many minions we can have at once
summoned_minionsHow many minions we summoned

Var Details

max_minions

How many minions we can have at once

summoned_minions

How many minions we summoned

\ No newline at end of file diff --git a/datum/action/cooldown/spell/conjure_item.html b/datum/action/cooldown/spell/conjure_item.html new file mode 100644 index 0000000000000..75f48d828edfb --- /dev/null +++ b/datum/action/cooldown/spell/conjure_item.html @@ -0,0 +1,3 @@ +/datum/action/cooldown/spell/conjure_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

conjure_item

Vars

delete_oldIf TRUE, we delete any previously created items when we cast the spell
delete_on_failureIf TRUE, deletes the item if no mob picks it up on cast
item_refsList of weakrefs to items summoned
item_typeTypepath of whatever item we summon
requires_handsIf TRUE, requires the caster be able to pick it up afterwards

Procs

make_itemInstantiates the item we're conjuring and returns it. +Item is made in at the caster's.
post_createdCalled after item has been handed to the caster, for any additional presentation

Var Details

delete_old

If TRUE, we delete any previously created items when we cast the spell

delete_on_failure

If TRUE, deletes the item if no mob picks it up on cast

item_refs

List of weakrefs to items summoned

item_type

Typepath of whatever item we summon

requires_hands

If TRUE, requires the caster be able to pick it up afterwards

Proc Details

make_item

Instantiates the item we're conjuring and returns it. +Item is made in at the caster's.

post_created

Called after item has been handed to the caster, for any additional presentation

\ No newline at end of file diff --git a/datum/action/cooldown/spell/conjure_item/clown_pockets.html b/datum/action/cooldown/spell/conjure_item/clown_pockets.html new file mode 100644 index 0000000000000..c262a5a02063d --- /dev/null +++ b/datum/action/cooldown/spell/conjure_item/clown_pockets.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/conjure_item/clown_pockets - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

clown_pockets

A spell which gives you a clown item

Vars

cast_timeAmount of time it takes you to rummage around in there
castingTrue while currently casting the spell
clown_itemsList of prank implements you can find in your pockets

Procs

cast_messagePrints a funny message, exists so I can override it to print a different message

Var Details

cast_time

Amount of time it takes you to rummage around in there

casting

True while currently casting the spell

clown_items

List of prank implements you can find in your pockets

Proc Details

cast_message

Prints a funny message, exists so I can override it to print a different message

\ No newline at end of file diff --git a/datum/action/cooldown/spell/conjure_item/invisible_box.html b/datum/action/cooldown/spell/conjure_item/invisible_box.html new file mode 100644 index 0000000000000..143dd03ebfd28 --- /dev/null +++ b/datum/action/cooldown/spell/conjure_item/invisible_box.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/conjure_item/invisible_box - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

invisible_box

Vars

box_lifespanHow long boxes last before going away

Procs

cleanup_boxCallback that gets rid out of box and removes the weakref from our list

Var Details

box_lifespan

How long boxes last before going away

Proc Details

cleanup_box

Callback that gets rid out of box and removes the weakref from our list

\ No newline at end of file diff --git a/datum/action/cooldown/spell/cosmic_rune.html b/datum/action/cooldown/spell/cosmic_rune.html new file mode 100644 index 0000000000000..fdad40a575599 --- /dev/null +++ b/datum/action/cooldown/spell/cosmic_rune.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/cosmic_rune - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cosmic_rune

Vars

first_runeStorage for the first rune.
rune_remove_effectRune removal effect.
second_runeStorage for the second rune.

Procs

make_new_runeReturns a weak reference to a new rune, linked to an existing rune if provided

Var Details

first_rune

Storage for the first rune.

rune_remove_effect

Rune removal effect.

second_rune

Storage for the second rune.

Proc Details

make_new_rune

Returns a weak reference to a new rune, linked to an existing rune if provided

\ No newline at end of file diff --git a/datum/action/cooldown/spell/emp.html b/datum/action/cooldown/spell/emp.html new file mode 100644 index 0000000000000..bc4de3873020a --- /dev/null +++ b/datum/action/cooldown/spell/emp.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/emp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

emp

Vars

emp_heavyThe heavy radius of the EMP
emp_lightThe light radius of the EMP

Var Details

emp_heavy

The heavy radius of the EMP

emp_light

The light radius of the EMP

\ No newline at end of file diff --git a/datum/action/cooldown/spell/fire_cascade.html b/datum/action/cooldown/spell/fire_cascade.html new file mode 100644 index 0000000000000..ee727286c83d7 --- /dev/null +++ b/datum/action/cooldown/spell/fire_cascade.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/fire_cascade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fire_cascade

Creates one, large, expanding ring of fire around the caster, which does not follow them.

Vars

flame_radiusThe radius the flames will go around the caster.

Procs

fire_cascadeSpreads a huge wave of fire in a radius around us, staggered between levels

Var Details

flame_radius

The radius the flames will go around the caster.

Proc Details

fire_cascade

Spreads a huge wave of fire in a radius around us, staggered between levels

\ No newline at end of file diff --git a/datum/action/cooldown/spell/fire_sworn.html b/datum/action/cooldown/spell/fire_sworn.html new file mode 100644 index 0000000000000..d59ebd75bc5fd --- /dev/null +++ b/datum/action/cooldown/spell/fire_sworn.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/fire_sworn - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fire_sworn

Creates a constant Ring of Fire around the caster for a set duration of time, which follows them.

Vars

durationHow long it the ring lasts
fire_radiusThe radius of the fire ring

Var Details

duration

How long it the ring lasts

fire_radius

The radius of the fire ring

\ No newline at end of file diff --git a/datum/action/cooldown/spell/forcewall.html b/datum/action/cooldown/spell/forcewall.html new file mode 100644 index 0000000000000..f46de13de92e1 --- /dev/null +++ b/datum/action/cooldown/spell/forcewall.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/forcewall - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

forcewall

Vars

wall_typeThe typepath to the wall we create on cast.

Procs

get_turfsThis proc returns all the turfs on which we will spawn the walls.
spawn_wallThis proc spawns a wall on the given turf.

Var Details

wall_type

The typepath to the wall we create on cast.

Proc Details

get_turfs

This proc returns all the turfs on which we will spawn the walls.

spawn_wall

This proc spawns a wall on the given turf.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/jaunt.html b/datum/action/cooldown/spell/jaunt.html new file mode 100644 index 0000000000000..a6c957ec3629b --- /dev/null +++ b/datum/action/cooldown/spell/jaunt.html @@ -0,0 +1,32 @@ +/datum/action/cooldown/spell/jaunt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

jaunt

Jaunt spells

+

A basic subtype for jaunt related spells. +Jaunt spells put their caster in a dummy +phased_mob effect that allows them to float +around incorporeally.

+

Doesn't actually implement any behavior on cast to +enter or exit the jaunt - that must be done via subtypes.

+

Use enter_jaunt() and exit_jaunt() as wrappers.

Vars

jaunt_typeWhat dummy mob type do we put jaunters in on jaunt?

Procs

enter_jauntPlaces the [jaunter] in a jaunt holder mob +If [loc_override] is supplied, +the jaunt will be moved to that turf to start at
exit_jauntEjects the [unjaunter] from jaunt +The jaunt object in turn should call on_jaunt_exited +If [loc_override] is supplied, +the jaunt will be moved to that turf +before ejecting the unjaunter
on_jaunt_exitedCalled when a mob is ejected from the jaunt holder and goes back to normal. +This is called both fom exit_jaunt() but also if the caster is ejected involuntarily for some reason. +Use this to clear state data applied when jaunting, such as the trait TRAIT_MAGICALLY_PHASED. +Arguments

Var Details

jaunt_type

What dummy mob type do we put jaunters in on jaunt?

Proc Details

enter_jaunt

Places the [jaunter] in a jaunt holder mob +If [loc_override] is supplied, +the jaunt will be moved to that turf to start at

+

Returns the holder mob that was created

exit_jaunt

Ejects the [unjaunter] from jaunt +The jaunt object in turn should call on_jaunt_exited +If [loc_override] is supplied, +the jaunt will be moved to that turf +before ejecting the unjaunter

+

Returns TRUE on successful exit, FALSE otherwise

on_jaunt_exited

Called when a mob is ejected from the jaunt holder and goes back to normal. +This is called both fom exit_jaunt() but also if the caster is ejected involuntarily for some reason. +Use this to clear state data applied when jaunting, such as the trait TRAIT_MAGICALLY_PHASED. +Arguments

+
\ No newline at end of file diff --git a/datum/action/cooldown/spell/jaunt/bloodcrawl.html b/datum/action/cooldown/spell/jaunt/bloodcrawl.html new file mode 100644 index 0000000000000..ec916a82d9e28 --- /dev/null +++ b/datum/action/cooldown/spell/jaunt/bloodcrawl.html @@ -0,0 +1,8 @@ +/datum/action/cooldown/spell/jaunt/bloodcrawl - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bloodcrawl

Blood Crawl

+

Lets the caster enter and exit pools of blood.

Vars

blood_radiusThe radius around us that we look for blood in
enter_blood_timeThe time it takes to enter blood
equip_blood_handsIf TRUE, we equip "blood crawl" hands to the jaunter to prevent using items
exit_blood_timeThe time it takes to exit blood

Procs

do_bloodcrawlAttempts to enter or exit the passed blood pool. +Returns TRUE if we successfully entered or exited said pool, FALSE otherwise
exit_blood_effectAdds an coloring effect to mobs which exit blood crawl.
find_nearby_bloodReturns a nearby blood decal, or null if there aren't any
try_enter_jauntAttempts to enter the passed blood pool. +If forced is TRUE, it will override enter_blood_time.
try_exit_jauntAttempts to Exit the passed blood pool. +If forced is TRUE, it will override exit_blood_time, and if we're currently consuming someone.

Var Details

blood_radius

The radius around us that we look for blood in

enter_blood_time

The time it takes to enter blood

equip_blood_hands

If TRUE, we equip "blood crawl" hands to the jaunter to prevent using items

exit_blood_time

The time it takes to exit blood

Proc Details

do_bloodcrawl

Attempts to enter or exit the passed blood pool. +Returns TRUE if we successfully entered or exited said pool, FALSE otherwise

exit_blood_effect

Adds an coloring effect to mobs which exit blood crawl.

find_nearby_blood

Returns a nearby blood decal, or null if there aren't any

try_enter_jaunt

Attempts to enter the passed blood pool. +If forced is TRUE, it will override enter_blood_time.

try_exit_jaunt

Attempts to Exit the passed blood pool. +If forced is TRUE, it will override exit_blood_time, and if we're currently consuming someone.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon.html b/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon.html new file mode 100644 index 0000000000000..490a556a8b6ba --- /dev/null +++ b/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon.html @@ -0,0 +1,6 @@ +/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

slaughter_demon

Slaughter demon's blood crawl +Allows the blood crawler to consume people they are dragging.

Vars

consume_countconsume count (statistics and stuff)
consume_soundThe sound played when someone's consumed.
jaunt_damage_timerApply damage every 20 seconds if we bloodcrawling
resist_jaunt_damageWhen demon first appears, it does not take damage while in Jaunt. He also doesn't take damage while he's eating someone.

Procs

consume_victimConsumes the [victim] from the [jaunter], fully healing them +and calling [proc/on_victim_consumed] if successful.)
damage_for_lazy_demonApply damage to demon when he using bloodcrawl. +Every 20 SECONDS check if demon still crawling and update timer.
on_victim_consumedCalled when a victim is successfully consumed.
on_victim_start_consumeCalled when a victim starts to be consumed.

Var Details

consume_count

consume count (statistics and stuff)

consume_sound

The sound played when someone's consumed.

jaunt_damage_timer

Apply damage every 20 seconds if we bloodcrawling

resist_jaunt_damage

When demon first appears, it does not take damage while in Jaunt. He also doesn't take damage while he's eating someone.

Proc Details

consume_victim

Consumes the [victim] from the [jaunter], fully healing them +and calling [proc/on_victim_consumed] if successful.)

damage_for_lazy_demon

Apply damage to demon when he using bloodcrawl. +Every 20 SECONDS check if demon still crawling and update timer.

on_victim_consumed

Called when a victim is successfully consumed.

on_victim_start_consume

Called when a victim starts to be consumed.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/funny.html b/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/funny.html new file mode 100644 index 0000000000000..fe09e89cf1fca --- /dev/null +++ b/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/funny.html @@ -0,0 +1,6 @@ +/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/funny - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

funny

Laughter demon's blood crawl +All mobs consumed are revived after the demon is killed.

Procs

on_deathSignal proc for COMSIG_LIVING_DEATH and COMSIG_QDELETING
on_victim_deletedHandle signal from a consumed mob being deleted. Clears any references.
on_victim_statchangeHandle signal from a consumed mob changing stat.

Proc Details

on_death

Signal proc for COMSIG_LIVING_DEATH and COMSIG_QDELETING

+

If our demon is deleted or destroyed, expel all of our consumed mobs

on_victim_deleted

Handle signal from a consumed mob being deleted. Clears any references.

on_victim_statchange

Handle signal from a consumed mob changing stat.

+

A signal handler for if one of the laughter demon's consumed mobs has +changed stat. If they're no longer dead (because they were dead when +swallowed), eject them so they can't rip their way out from the inside.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/jaunt/creature_teleport.html b/datum/action/cooldown/spell/jaunt/creature_teleport.html new file mode 100644 index 0000000000000..0658f058099c1 --- /dev/null +++ b/datum/action/cooldown/spell/jaunt/creature_teleport.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/jaunt/creature_teleport - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

creature_teleport

Jaunt spell used by creature. Can only jaunt or unjaunt if nothing can see you.

Vars

observed_blockerComponent which prevents this action being used while visible

Var Details

observed_blocker

Component which prevents this action being used while visible

\ No newline at end of file diff --git a/datum/action/cooldown/spell/jaunt/ethereal_jaunt.html b/datum/action/cooldown/spell/jaunt/ethereal_jaunt.html new file mode 100644 index 0000000000000..980a196d3058b --- /dev/null +++ b/datum/action/cooldown/spell/jaunt/ethereal_jaunt.html @@ -0,0 +1,37 @@ +/datum/action/cooldown/spell/jaunt/ethereal_jaunt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ethereal_jaunt

Vars

exit_point_listList of valid exit points
jaunt_durationFor how long are we jaunting?
jaunt_in_timeFor how long we become immobilized after exiting the jaunt.
jaunt_in_typeVisual for jaunting
jaunt_out_timeFor how long we become immobilized when using this spell.
jaunt_out_typeVisual for exiting the jaunt

Procs

do_jauntBegin the jaunt, and the entire jaunt chain. +Puts cast_on in the phased mob holder here.
do_jaunt_inThe wind-up (wind-out?) of exiting the jaunt. +Optional, only called if jaunt_in_time is above 2.5 seconds.
do_jaunt_outThe wind-up to the jaunt. +Optional, only called if jaunt_out_time is set.
do_steam_effectsDoes some steam effects from the jaunt at passed loc.
end_jauntFinally, the actual veritable end of the jaunt chains. +Deletes the phase holder, ejecting the caster at final_point.
start_jauntThe actual process of starting the jaunt. +Sets up the signals and exit points and allows +the caster to actually start moving around.
stop_jauntThe stopping of the jaunt. +Unregisters and signals and places +the jaunter on the turf they will exit at.
update_exit_pointUpdates the exit point of the jaunt

Var Details

exit_point_list

List of valid exit points

jaunt_duration

For how long are we jaunting?

jaunt_in_time

For how long we become immobilized after exiting the jaunt.

jaunt_in_type

Visual for jaunting

jaunt_out_time

For how long we become immobilized when using this spell.

jaunt_out_type

Visual for exiting the jaunt

Proc Details

do_jaunt

Begin the jaunt, and the entire jaunt chain. +Puts cast_on in the phased mob holder here.

+

Calls do_jaunt_out:

+

do_jaunt_in

The wind-up (wind-out?) of exiting the jaunt. +Optional, only called if jaunt_in_time is above 2.5 seconds.

+

Calls end_jaunt.

do_jaunt_out

The wind-up to the jaunt. +Optional, only called if jaunt_out_time is set.

+

Calls start_jaunt.

do_steam_effects

Does some steam effects from the jaunt at passed loc.

end_jaunt

Finally, the actual veritable end of the jaunt chains. +Deletes the phase holder, ejecting the caster at final_point.

+

If the final_point is dense for some reason, +tries to put the caster in an adjacent turf.

start_jaunt

The actual process of starting the jaunt. +Sets up the signals and exit points and allows +the caster to actually start moving around.

+

Calls stop_jaunt after the jaunt runs out.

stop_jaunt

The stopping of the jaunt. +Unregisters and signals and places +the jaunter on the turf they will exit at.

+

Calls do_jaunt_in:

+

update_exit_point

Updates the exit point of the jaunt

+

Called when the jaunting mob holder moves, this updates the backup exit-jaunt +location, in case the jaunt ends with the mob still in a wall. Five +spots are kept in the list, in case the last few changed since we passed +by (doors closing, engineers building walls, etc)

\ No newline at end of file diff --git a/datum/action/cooldown/spell/jaunt/mirror_walk.html b/datum/action/cooldown/spell/jaunt/mirror_walk.html new file mode 100644 index 0000000000000..b3a02b1397b1a --- /dev/null +++ b/datum/action/cooldown/spell/jaunt/mirror_walk.html @@ -0,0 +1,7 @@ +/datum/action/cooldown/spell/jaunt/mirror_walk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mirror_walk

Vars

phase_in_timeThe time it takes to exit a mirror / phase in / exit jaunt.
phase_out_timeThe time it takes to enter the mirror / phase out / enter jaunt.
special_reflective_surfacesStatic typecache of types that are counted as reflective.

Procs

is_reflection_nearbyGoes through all nearby atoms in sight of the +passed caster and determines if they are "reflective" +for the purpose of us being able to utilize it to enter or exit.

Var Details

phase_in_time

The time it takes to exit a mirror / phase in / exit jaunt.

phase_out_time

The time it takes to enter the mirror / phase out / enter jaunt.

special_reflective_surfaces

Static typecache of types that are counted as reflective.

Proc Details

is_reflection_nearby

Goes through all nearby atoms in sight of the +passed caster and determines if they are "reflective" +for the purpose of us being able to utilize it to enter or exit.

+

Returns an object reference to a "reflective" object in view if one was found, +or null if no object was found that was determined to be "reflective".

\ No newline at end of file diff --git a/datum/action/cooldown/spell/jaunt/shadow_walk.html b/datum/action/cooldown/spell/jaunt/shadow_walk.html new file mode 100644 index 0000000000000..f0ec5ee58b4a6 --- /dev/null +++ b/datum/action/cooldown/spell/jaunt/shadow_walk.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/jaunt/shadow_walk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shadow_walk

Vars

light_thresholdThe max amount of lumens on a turf allowed before we can no longer enter jaunt with this

Var Details

light_threshold

The max amount of lumens on a turf allowed before we can no longer enter jaunt with this

\ No newline at end of file diff --git a/datum/action/cooldown/spell/jaunt/space_crawl.html b/datum/action/cooldown/spell/jaunt/space_crawl.html new file mode 100644 index 0000000000000..22ab61b9b4e5e --- /dev/null +++ b/datum/action/cooldown/spell/jaunt/space_crawl.html @@ -0,0 +1,4 @@ +/datum/action/cooldown/spell/jaunt/space_crawl - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

space_crawl

Space Crawl

+

Lets the caster enter and exit tiles of space or misc turfs.

Procs

do_spacecrawlAttempts to enter or exit the passed space or misc turf. +Returns TRUE if we successfully entered or exited said turf, FALSE otherwise
on_focus_lostSignal proc for [SIGNAL_REMOVETRAIT] via TRAIT_ALLOW_HERETIC_CASTING, losing our focus midcast will throw us out.
try_enter_jauntAttempts to enter the passed space or misc turfs.
try_exit_jauntAttempts to Exit the passed space or misc turf.

Proc Details

do_spacecrawl

Attempts to enter or exit the passed space or misc turf. +Returns TRUE if we successfully entered or exited said turf, FALSE otherwise

on_focus_lost

Signal proc for [SIGNAL_REMOVETRAIT] via TRAIT_ALLOW_HERETIC_CASTING, losing our focus midcast will throw us out.

try_enter_jaunt

Attempts to enter the passed space or misc turfs.

try_exit_jaunt

Attempts to Exit the passed space or misc turf.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/list_target.html b/datum/action/cooldown/spell/list_target.html new file mode 100644 index 0000000000000..b8ba4dcd9d2cf --- /dev/null +++ b/datum/action/cooldown/spell/list_target.html @@ -0,0 +1,5 @@ +/datum/action/cooldown/spell/list_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

list_target

List Target spells

+

These spells will prompt the user with a tgui list +of all nearby targets that they select on to cast.

+

To add effects on cast, override "cast(atom/cast_on)". +The cast_on atom is the atom that was selected by the list.

Vars

choose_target_messageThe message displayed as the title of the tgui target input list.
target_radiusRadius around the caster that living targets are picked to choose from

Procs

get_list_targetsGet a list of living targets in radius of the center to put in the target list.

Var Details

choose_target_message

The message displayed as the title of the tgui target input list.

target_radius

Radius around the caster that living targets are picked to choose from

Proc Details

get_list_targets

Get a list of living targets in radius of the center to put in the target list.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/list_target/telepathy.html b/datum/action/cooldown/spell/list_target/telepathy.html new file mode 100644 index 0000000000000..5c77fdf108985 --- /dev/null +++ b/datum/action/cooldown/spell/list_target/telepathy.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/list_target/telepathy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

telepathy

Vars

bold_telepathy_spanThe bolded span surrounding the telepathy message
messageThe message we send to the next person via telepathy.
telepathy_spanThe span surrounding the telepathy message

Var Details

bold_telepathy_span

The bolded span surrounding the telepathy message

message

The message we send to the next person via telepathy.

telepathy_span

The span surrounding the telepathy message

\ No newline at end of file diff --git a/datum/action/cooldown/spell/olfaction.html b/datum/action/cooldown/spell/olfaction.html new file mode 100644 index 0000000000000..bfb4e87e046bd --- /dev/null +++ b/datum/action/cooldown/spell/olfaction.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/olfaction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

olfaction

Vars

sensitivityOur nose's sensitivity
tracking_refWeakref to the mob we're tracking

Procs

follow_targetAttempt to follow our current tracking target.
on_the_trailActually go through and give the user a hint of the direction our target is.
pick_up_targetAttempt to pick up a new target based on the fingerprints on [sniffed].

Var Details

sensitivity

Our nose's sensitivity

tracking_ref

Weakref to the mob we're tracking

Proc Details

follow_target

Attempt to follow our current tracking target.

on_the_trail

Actually go through and give the user a hint of the direction our target is.

pick_up_target

Attempt to pick up a new target based on the fingerprints on [sniffed].

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed.html b/datum/action/cooldown/spell/pointed.html new file mode 100644 index 0000000000000..4a8fefadbea3d --- /dev/null +++ b/datum/action/cooldown/spell/pointed.html @@ -0,0 +1,5 @@ +/datum/action/cooldown/spell/pointed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pointed

Pointed spells

+

These spells override the caster's click, +allowing them to cast the spell on whatever is clicked on.

+

To add effects on cast, override "cast(atom/cast_on)". +The cast_on atom is the person who was clicked on.

Vars

active_msgMessage showing to the spell owner upon activating pointed spell.
aim_assistIf aim asisst is used. Disable to disable
cast_rangeThe casting range of our spell
deactive_msgMessage showing to the spell owner upon deactivating pointed spell.

Procs

on_activationCalled when the spell is activated / the click ability is set to our spell
on_deactivationCalled when the spell is deactivated / the click ability is unset from our spell

Var Details

active_msg

Message showing to the spell owner upon activating pointed spell.

aim_assist

If aim asisst is used. Disable to disable

cast_range

The casting range of our spell

deactive_msg

Message showing to the spell owner upon deactivating pointed spell.

Proc Details

on_activation

Called when the spell is activated / the click ability is set to our spell

on_deactivation

Called when the spell is deactivated / the click ability is unset from our spell

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/abyssal_gaze.html b/datum/action/cooldown/spell/pointed/abyssal_gaze.html new file mode 100644 index 0000000000000..864a6fbb12576 --- /dev/null +++ b/datum/action/cooldown/spell/pointed/abyssal_gaze.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/abyssal_gaze - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

abyssal_gaze

Vars

amount_to_coolThe amount of temperature we take from our target
blind_durationThe duration of the blind on our target

Var Details

amount_to_cool

The amount of temperature we take from our target

blind_duration

The duration of the blind on our target

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/apetra_vulnera.html b/datum/action/cooldown/spell/pointed/apetra_vulnera.html new file mode 100644 index 0000000000000..6bf6d913a0680 --- /dev/null +++ b/datum/action/cooldown/spell/pointed/apetra_vulnera.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/apetra_vulnera - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

apetra_vulnera

Vars

wound_typeWhat type of wound we apply

Var Details

wound_type

What type of wound we apply

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/ash_beams.html b/datum/action/cooldown/spell/pointed/ash_beams.html new file mode 100644 index 0000000000000..745b1de7f0bd2 --- /dev/null +++ b/datum/action/cooldown/spell/pointed/ash_beams.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/ash_beams - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ash_beams

Vars

flame_line_lengthThe length of the flame line spit out.

Var Details

flame_line_length

The length of the flame line spit out.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/blind.html b/datum/action/cooldown/spell/pointed/blind.html new file mode 100644 index 0000000000000..9119a7f8ff610 --- /dev/null +++ b/datum/action/cooldown/spell/pointed/blind.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/blind - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blind

Vars

eye_blind_durationThe amount of blind to apply
eye_blur_durationThe amount of blurriness to apply

Var Details

eye_blind_duration

The amount of blind to apply

eye_blur_duration

The amount of blurriness to apply

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/cleave.html b/datum/action/cooldown/spell/pointed/cleave.html new file mode 100644 index 0000000000000..b67ed8409e24e --- /dev/null +++ b/datum/action/cooldown/spell/pointed/cleave.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/cleave - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cleave

Vars

cleave_radiusThe radius of the cleave effect
wound_typeWhat type of wound we apply

Var Details

cleave_radius

The radius of the cleave effect

wound_type

What type of wound we apply

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/declare_evil.html b/datum/action/cooldown/spell/pointed/declare_evil.html new file mode 100644 index 0000000000000..d64e444ebd683 --- /dev/null +++ b/datum/action/cooldown/spell/pointed/declare_evil.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/declare_evil - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

declare_evil

Vars

declarationThe declaration that's shouted in invocation. Set in New()
honor_traumaA ref to our owner's honorbound trauma
required_favorThe amount of favor required to declare on someone

Procs

on_honor_trauma_lostIf we lose our honor trauma somehow, self-delete (and clear references)

Var Details

declaration

The declaration that's shouted in invocation. Set in New()

honor_trauma

A ref to our owner's honorbound trauma

required_favor

The amount of favor required to declare on someone

Proc Details

on_honor_trauma_lost

If we lose our honor trauma somehow, self-delete (and clear references)

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/manse_link.html b/datum/action/cooldown/spell/pointed/manse_link.html new file mode 100644 index 0000000000000..70d1798231751 --- /dev/null +++ b/datum/action/cooldown/spell/pointed/manse_link.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/manse_link - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

manse_link

Vars

link_timeThe time it takes to link to a mob.

Procs

do_linkingThe actual process of linking [linkee] to our network.

Var Details

The time it takes to link to a mob.

Proc Details

do_linking

The actual process of linking [linkee] to our network.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/mind_transfer.html b/datum/action/cooldown/spell/pointed/mind_transfer.html new file mode 100644 index 0000000000000..e271129f11b70 --- /dev/null +++ b/datum/action/cooldown/spell/pointed/mind_transfer.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/mind_transfer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mind_transfer

Vars

blacklisted_mobsList of mobs we cannot mindswap into.
unconscious_amount_casterFor how long is the caster stunned for after the spell
unconscious_amount_victimFor how long is the victim stunned for after the spell

Var Details

blacklisted_mobs

List of mobs we cannot mindswap into.

unconscious_amount_caster

For how long is the caster stunned for after the spell

unconscious_amount_victim

For how long is the victim stunned for after the spell

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/projectile.html b/datum/action/cooldown/spell/pointed/projectile.html new file mode 100644 index 0000000000000..f1b3a06188420 --- /dev/null +++ b/datum/action/cooldown/spell/pointed/projectile.html @@ -0,0 +1,7 @@ +/datum/action/cooldown/spell/pointed/projectile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

projectile

Pointed projectile spells

+

Pointed spells that, instead of casting a spell directly on the target that's clicked, +will instead fire a projectile pointed at the target's direction.

Vars

current_amountHow many projectiles we have yet to fire, based on projectile_amount
projectile_amountHow many projectiles we can fire per cast. Not all at once, per click, kinda like charges
projectile_typeWhat projectile we create when we shoot our spell.
projectiles_per_fireHow many projectiles we fire every fire_projectile() call. +Unwise to change without overriding or extending ready_projectile.

Procs

on_cast_hitSignal proc for whenever the projectile we fire hits someone. +Pretty much relays to the spell when the projectile actually hits something.

Var Details

current_amount

How many projectiles we have yet to fire, based on projectile_amount

projectile_amount

How many projectiles we can fire per cast. Not all at once, per click, kinda like charges

projectile_type

What projectile we create when we shoot our spell.

projectiles_per_fire

How many projectiles we fire every fire_projectile() call. +Unwise to change without overriding or extending ready_projectile.

Proc Details

on_cast_hit

Signal proc for whenever the projectile we fire hits someone. +Pretty much relays to the spell when the projectile actually hits something.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/projectile/furious_steel.html b/datum/action/cooldown/spell/pointed/projectile/furious_steel.html new file mode 100644 index 0000000000000..58f64fb985cdc --- /dev/null +++ b/datum/action/cooldown/spell/pointed/projectile/furious_steel.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/projectile/furious_steel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

furious_steel

Vars

blade_effectA ref to the status effect surrounding our heretic on activation.

Procs

on_focus_lostSignal proc for [SIGNAL_REMOVETRAIT], via TRAIT_ALLOW_HERETIC_CASTING, to remove the effect when we lose the focus trait
on_status_effect_deletedIf our blade status effect is deleted, clear our refs and deactivate

Var Details

blade_effect

A ref to the status effect surrounding our heretic on activation.

Proc Details

on_focus_lost

Signal proc for [SIGNAL_REMOVETRAIT], via TRAIT_ALLOW_HERETIC_CASTING, to remove the effect when we lose the focus trait

on_status_effect_deleted

If our blade status effect is deleted, clear our refs and deactivate

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/projectile/lightningbolt.html b/datum/action/cooldown/spell/pointed/projectile/lightningbolt.html new file mode 100644 index 0000000000000..43c8b569426fa --- /dev/null +++ b/datum/action/cooldown/spell/pointed/projectile/lightningbolt.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/projectile/lightningbolt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lightningbolt

Vars

bolt_flagsThe flags the bolt itself takes when zapping someone
bolt_powerThe power of the bolt itself
bolt_rangeThe range the bolt itself (different to the range of the projectile)

Var Details

bolt_flags

The flags the bolt itself takes when zapping someone

bolt_power

The power of the bolt itself

bolt_range

The range the bolt itself (different to the range of the projectile)

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/projectile/spell_cards.html b/datum/action/cooldown/spell/pointed/projectile/spell_cards.html new file mode 100644 index 0000000000000..44318ed5b7777 --- /dev/null +++ b/datum/action/cooldown/spell/pointed/projectile/spell_cards.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/projectile/spell_cards - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spell_cards

Vars

current_target_weakrefA weakref to the mob we're currently targeting with the lockon component.
lockon_componentA ref to our lockon component, which is created and destroyed on activation and deactivation.
projectile_initial_spread_amountThe initial spread of the spell cards when fired.
projectile_location_spread_amountThe location spread of the spell cards when fired.
projectile_pixel_homing_spreadThe homing spread of the spell cards in flight.
projectile_turnrateThe turn rate of the spell cards in flight. (They track onto locked on targets)

Var Details

current_target_weakref

A weakref to the mob we're currently targeting with the lockon component.

lockon_component

A ref to our lockon component, which is created and destroyed on activation and deactivation.

projectile_initial_spread_amount

The initial spread of the spell cards when fired.

projectile_location_spread_amount

The location spread of the spell cards when fired.

projectile_pixel_homing_spread

The homing spread of the spell cards in flight.

projectile_turnrate

The turn rate of the spell cards in flight. (They track onto locked on targets)

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/psychic_projection.html b/datum/action/cooldown/spell/pointed/psychic_projection.html new file mode 100644 index 0000000000000..d364a68274381 --- /dev/null +++ b/datum/action/cooldown/spell/pointed/psychic_projection.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/psychic_projection - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

psychic_projection

Vars

projection_durationDuration of the effects.

Var Details

projection_duration

Duration of the effects.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/rust_construction.html b/datum/action/cooldown/spell/pointed/rust_construction.html new file mode 100644 index 0000000000000..e3403426397d6 --- /dev/null +++ b/datum/action/cooldown/spell/pointed/rust_construction.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/rust_construction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

rust_construction

Vars

filter_durationHow long does the filter last on walls we make?

Procs

aim_assistOverrides 'aim assist' because we always want to hit just the turf we clicked on.

Var Details

filter_duration

How long does the filter last on walls we make?

Proc Details

aim_assist

Overrides 'aim assist' because we always want to hit just the turf we clicked on.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/slab.html b/datum/action/cooldown/spell/pointed/slab.html new file mode 100644 index 0000000000000..f8c71744856b4 --- /dev/null +++ b/datum/action/cooldown/spell/pointed/slab.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/slab - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

slab

Vars

parent_scriptureThe scripture datum that this spell is referring to

Var Details

parent_scripture

The scripture datum that this spell is referring to

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/swap.html b/datum/action/cooldown/spell/pointed/swap.html new file mode 100644 index 0000000000000..3e48a2b8e3d49 --- /dev/null +++ b/datum/action/cooldown/spell/pointed/swap.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/swap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

swap

Vars

second_targetA variable for holding the second selected target with right click.

Var Details

second_target

A variable for holding the second selected target with right click.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/unsettle.html b/datum/action/cooldown/spell/pointed/unsettle.html new file mode 100644 index 0000000000000..136b842617cbe --- /dev/null +++ b/datum/action/cooldown/spell/pointed/unsettle.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/unsettle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

unsettle

Remain in someones view without breaking line of sight

Vars

stamina_damagestamina damage we doooo
stare_timehow long we need to stare at someone to unsettle them (woooooh)
stun_timehow long we stun someone on successful cast

Var Details

stamina_damage

stamina damage we doooo

stare_time

how long we need to stare at someone to unsettle them (woooooh)

stun_time

how long we stun someone on successful cast

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/untie_shoes.html b/datum/action/cooldown/spell/pointed/untie_shoes.html new file mode 100644 index 0000000000000..343b96009f223 --- /dev/null +++ b/datum/action/cooldown/spell/pointed/untie_shoes.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/untie_shoes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

untie_shoes

Vars

bypass_tie_statusIgnores inability to tie laces, such as jackboots, magboots, or sandals.
summons_shoesSummons shoes to untie if the target has none.

Var Details

bypass_tie_status

Ignores inability to tie laces, such as jackboots, magboots, or sandals.

summons_shoes

Summons shoes to untie if the target has none.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/void_phase.html b/datum/action/cooldown/spell/pointed/void_phase.html new file mode 100644 index 0000000000000..49f22b65cde8c --- /dev/null +++ b/datum/action/cooldown/spell/pointed/void_phase.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/void_phase - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

void_phase

Vars

damage_radiusThe radius of damage around the void bubble
min_cast_rangeThe minimum range to cast the phase.

Procs

cause_aoeDoes the AOE effect of the blinka t the passed turf

Var Details

damage_radius

The radius of damage around the void bubble

min_cast_range

The minimum range to cast the phase.

Proc Details

cause_aoe

Does the AOE effect of the blinka t the passed turf

\ No newline at end of file diff --git a/datum/action/cooldown/spell/pointed/wizard_mimic.html b/datum/action/cooldown/spell/pointed/wizard_mimic.html new file mode 100644 index 0000000000000..13282435af831 --- /dev/null +++ b/datum/action/cooldown/spell/pointed/wizard_mimic.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/pointed/wizard_mimic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wizard_mimic

Vars

clone_lifespanwhen the clones will die
copieslist of clones

Var Details

clone_lifespan

when the clones will die

copies

list of clones

\ No newline at end of file diff --git a/datum/action/cooldown/spell/rod_form.html b/datum/action/cooldown/spell/rod_form.html new file mode 100644 index 0000000000000..d5ebc8681e9ff --- /dev/null +++ b/datum/action/cooldown/spell/rod_form.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/rod_form - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rod_form

Vars

damage_per_spell_rankThe extra damage we deal per additional spell level.
distance_per_spell_rankThe extra distance we travel per additional spell level.
rod_damage_bonusThe damage bonus applied to the rod on cast
rod_max_distanceThe max distance the rod goes on cast

Var Details

damage_per_spell_rank

The extra damage we deal per additional spell level.

distance_per_spell_rank

The extra distance we travel per additional spell level.

rod_damage_bonus

The damage bonus applied to the rod on cast

rod_max_distance

The max distance the rod goes on cast

\ No newline at end of file diff --git a/datum/action/cooldown/spell/sanguine_strike.html b/datum/action/cooldown/spell/sanguine_strike.html new file mode 100644 index 0000000000000..85f1841ff5e76 --- /dev/null +++ b/datum/action/cooldown/spell/sanguine_strike.html @@ -0,0 +1,6 @@ +/datum/action/cooldown/spell/sanguine_strike - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sanguine_strike

Enchants an item to deal either double damage, or +20 damage, whichever is less, and lifesteals for that amount + steals some blood. +multiplication can get a little instakill-y, so capping it at + 20 damage. +10 force weapon doesn't get the cap and gains 10 damage, 20 total +20 force weapon gets the cap of 20 damage added for a total of 40 +35 force weapon still gets the cap of 20 for a total of 55 instead of a whopping 70 damage +Steals 50 blood if they have enough. Splattercasting has one second of cooldown worth 5 blood, so 50 seconds cooldown of blood added!

Vars

original_forceOriginal force of the item enchanted.

Procs

end_enchantmentends the enchantment, starting the cooldown (which was frozen until you attacked)
on_droppedsignal called from dropping the enchanted item
on_enchanted_afterattacksignal called from attacking with the enchanted item

Var Details

original_force

Original force of the item enchanted.

Proc Details

end_enchantment

ends the enchantment, starting the cooldown (which was frozen until you attacked)

on_dropped

signal called from dropping the enchanted item

on_enchanted_afterattack

signal called from attacking with the enchanted item

\ No newline at end of file diff --git a/datum/action/cooldown/spell/shadow_cloak.html b/datum/action/cooldown/spell/shadow_cloak.html new file mode 100644 index 0000000000000..4cc5894c51b98 --- /dev/null +++ b/datum/action/cooldown/spell/shadow_cloak.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/shadow_cloak - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shadow_cloak

Vars

active_cloakThe cloak currently active
uncloak_timeHow long before we automatically uncloak?
uncloak_timerA timer id, for the uncloak timer

Procs

on_early_cloak_lossSignal proc for COMSIG_QDELETING, if our cloak is deleted early, impart negative effects
on_focus_lostSignal proc for [SIGNAL_REMOVETRAIT] via TRAIT_ALLOW_HERETIC_CASTING, losing our focus midcast will throw us out.

Var Details

active_cloak

The cloak currently active

uncloak_time

How long before we automatically uncloak?

uncloak_timer

A timer id, for the uncloak timer

Proc Details

on_early_cloak_loss

Signal proc for COMSIG_QDELETING, if our cloak is deleted early, impart negative effects

on_focus_lost

Signal proc for [SIGNAL_REMOVETRAIT] via TRAIT_ALLOW_HERETIC_CASTING, losing our focus midcast will throw us out.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/shapeshift.html b/datum/action/cooldown/spell/shapeshift.html new file mode 100644 index 0000000000000..ca2d8ab4bafeb --- /dev/null +++ b/datum/action/cooldown/spell/shapeshift.html @@ -0,0 +1,10 @@ +/datum/action/cooldown/spell/shapeshift - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shapeshift

Shapeshift spells.

+

Allows the caster to transform to and from a different mob type.

Vars

convert_damageWhether we convert our health from one form to another
convert_damage_typeIf convert damage is true, the damage type we deal when converting damage back and forth
die_with_shapeshifted_formWhether we die when our shapeshifted form is killed
possible_shapesAll possible types we can become. +This should be implemented even if there is only one choice.
pre_shift_requirementsOur spell's requrements before we shapeshifted. Stored on shapeshift so we can restore them after unshifting.
revert_on_deathWhether we revert to our human form on death.
shapeshift_typeOur chosen type.

Procs

check_menuCallback for the radial that allows the user to choose their species.
create_shapeshift_mobHelper proc that instantiates the mob we shapeshift into. +Returns an instance of a living mob. Can be overridden.
do_shapeshiftActually does the shapeshift, for the caster.
do_unshapeshiftActually does the un-shapeshift, from the caster. (Caster is a shapeshifted mob.)
eject_from_ventsWhenever someone shapeshifts within a vent, +and enters a state in which they are no longer a ventcrawler, +they are brutally ejected from the vents. In the form of gibs.
unshift_ownerRemoves an active shapeshift effect from the owner

Var Details

convert_damage

Whether we convert our health from one form to another

convert_damage_type

If convert damage is true, the damage type we deal when converting damage back and forth

die_with_shapeshifted_form

Whether we die when our shapeshifted form is killed

possible_shapes

All possible types we can become. +This should be implemented even if there is only one choice.

pre_shift_requirements

Our spell's requrements before we shapeshifted. Stored on shapeshift so we can restore them after unshifting.

revert_on_death

Whether we revert to our human form on death.

shapeshift_type

Our chosen type.

Proc Details

check_menu

Callback for the radial that allows the user to choose their species.

create_shapeshift_mob

Helper proc that instantiates the mob we shapeshift into. +Returns an instance of a living mob. Can be overridden.

do_shapeshift

Actually does the shapeshift, for the caster.

do_unshapeshift

Actually does the un-shapeshift, from the caster. (Caster is a shapeshifted mob.)

eject_from_vents

Whenever someone shapeshifts within a vent, +and enters a state in which they are no longer a ventcrawler, +they are brutally ejected from the vents. In the form of gibs.

unshift_owner

Removes an active shapeshift effect from the owner

\ No newline at end of file diff --git a/datum/action/cooldown/spell/shapeshift/polymorph_belt.html b/datum/action/cooldown/spell/shapeshift/polymorph_belt.html new file mode 100644 index 0000000000000..ba2a008233bd3 --- /dev/null +++ b/datum/action/cooldown/spell/shapeshift/polymorph_belt.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/shapeshift/polymorph_belt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

polymorph_belt

Ability provided by the polymorph belt

Vars

channel_timeAmount of time it takes us to transform back or forth

Procs

update_typeUpdate what you are transforming to or from

Var Details

channel_time

Amount of time it takes us to transform back or forth

Proc Details

update_type

Update what you are transforming to or from

\ No newline at end of file diff --git a/datum/action/cooldown/spell/shapeshift/shed_human_form.html b/datum/action/cooldown/spell/shapeshift/shed_human_form.html new file mode 100644 index 0000000000000..74da7d62d9eea --- /dev/null +++ b/datum/action/cooldown/spell/shapeshift/shed_human_form.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/shapeshift/shed_human_form - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shed_human_form

Vars

scare_radiusThe radius around us that we cause brain damage / sanity damage to.
segment_lengthThe length of our new wormy when we shed.

Var Details

scare_radius

The radius around us that we cause brain damage / sanity damage to.

segment_length

The length of our new wormy when we shed.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/shapeshift/slime_form.html b/datum/action/cooldown/spell/shapeshift/slime_form.html new file mode 100644 index 0000000000000..a8c7376ae2cbf --- /dev/null +++ b/datum/action/cooldown/spell/shapeshift/slime_form.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/shapeshift/slime_form - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

slime_form

Slime transformation power - from Burning Black

Vars

remove_on_restoreIf TRUE, we self-delete (remove ourselves) the next time we turn back into a human

Var Details

remove_on_restore

If TRUE, we self-delete (remove ourselves) the next time we turn back into a human

\ No newline at end of file diff --git a/datum/action/cooldown/spell/spacetime_dist.html b/datum/action/cooldown/spell/spacetime_dist.html new file mode 100644 index 0000000000000..a00c109d7719b --- /dev/null +++ b/datum/action/cooldown/spell/spacetime_dist.html @@ -0,0 +1,3 @@ +/datum/action/cooldown/spell/spacetime_dist - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spacetime_dist

Vars

durationThe duration of the scramble
effectsA lazylist of all scramble effects this spell has created.
readyWeather we're ready to cast again yet or not
scramble_radiusThe radius of the scramble around the caster

Procs

clean_turfsCallback which cleans up our effects list after the duration expires.
get_targets_to_scrambleGets a list of turfs around the center atom to scramble.

Var Details

duration

The duration of the scramble

effects

A lazylist of all scramble effects this spell has created.

ready

Weather we're ready to cast again yet or not

scramble_radius

The radius of the scramble around the caster

Proc Details

clean_turfs

Callback which cleans up our effects list after the duration expires.

get_targets_to_scramble

Gets a list of turfs around the center atom to scramble.

+

Returns an assoc list of turf to turf. These pairs are what turfs are +swapped between one another when the cast is done.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/summonitem.html b/datum/action/cooldown/spell/summonitem.html new file mode 100644 index 0000000000000..7cbf83769f121 --- /dev/null +++ b/datum/action/cooldown/spell/summonitem.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/summonitem - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

summonitem

Vars

marked_itemThe obj marked for recall

Procs

can_link_toChecks if the passed item is a valid item that can be marked / linked to summon.
get_markedFor use in callbacks to get the marked item
mark_itemSet the passed object as our marked item
on_marked_item_deletedSignal proc for COMSIG_QDELETING on our marked item, unmarks our item if it's deleted
try_link_itemIf we don't have a marked item, attempts to mark the caster's held item.
try_recall_itemRecalls our marked item to the caster. May bring some unexpected things along.
try_unlink_itemIf we have a marked item and it's in our hand, we will try to unlink it
unmark_itemUnset our current marked item

Var Details

marked_item

The obj marked for recall

Proc Details

Checks if the passed item is a valid item that can be marked / linked to summon.

get_marked

For use in callbacks to get the marked item

mark_item

Set the passed object as our marked item

on_marked_item_deleted

Signal proc for COMSIG_QDELETING on our marked item, unmarks our item if it's deleted

If we don't have a marked item, attempts to mark the caster's held item.

try_recall_item

Recalls our marked item to the caster. May bring some unexpected things along.

If we have a marked item and it's in our hand, we will try to unlink it

unmark_item

Unset our current marked item

\ No newline at end of file diff --git a/datum/action/cooldown/spell/tap.html b/datum/action/cooldown/spell/tap.html new file mode 100644 index 0000000000000..85fdd03742b51 --- /dev/null +++ b/datum/action/cooldown/spell/tap.html @@ -0,0 +1,5 @@ +/datum/action/cooldown/spell/tap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tap

SOUL TAP!

+

Trades 20 max health for a refresh on all of your spells. +I was considering making it depend on the cooldowns of your spells, but I want to support "Big spell wizard" with this loadout. +The two spells that sound most problematic with this is mindswap and lichdom, +but soul tap requires clothes for mindswap and lichdom takes your soul.

Vars

tap_health_takenThe amount of health we take on tap

Var Details

tap_health_taken

The amount of health we take on tap

\ No newline at end of file diff --git a/datum/action/cooldown/spell/teleport.html b/datum/action/cooldown/spell/teleport.html new file mode 100644 index 0000000000000..5d4c164297861 --- /dev/null +++ b/datum/action/cooldown/spell/teleport.html @@ -0,0 +1,2 @@ +/datum/action/cooldown/spell/teleport - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

teleport

Teleport Spell

+

Teleports the caster to a turf selected by get_destinations().

Vars

destination_flagsA list of flags related to determining if our destination target is valid or not.
force_teleportWhether we force the teleport to happen (ie, it cannot be blocked by noteleport areas or blessings or whatever)
post_teleport_soundThe sound played on arrival, after the teleport.
teleport_channelWhat channel the teleport is done under.

Procs

get_destinationsGets a list of destinations that are valid
is_valid_destinationChecks if the passed turf is a valid destination.

Var Details

destination_flags

A list of flags related to determining if our destination target is valid or not.

force_teleport

Whether we force the teleport to happen (ie, it cannot be blocked by noteleport areas or blessings or whatever)

post_teleport_sound

The sound played on arrival, after the teleport.

teleport_channel

What channel the teleport is done under.

Proc Details

get_destinations

Gets a list of destinations that are valid

is_valid_destination

Checks if the passed turf is a valid destination.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/teleport/area_teleport.html b/datum/action/cooldown/spell/teleport/area_teleport.html new file mode 100644 index 0000000000000..fb7dd382d6b05 --- /dev/null +++ b/datum/action/cooldown/spell/teleport/area_teleport.html @@ -0,0 +1,3 @@ +/datum/action/cooldown/spell/teleport/area_teleport - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

area_teleport

Area Teleport Spell

+

A subtype of teleport that will teleport the caster +to a random turf within a selected (or random) area.

Vars

invocation_says_areaIf the invocation appends the selected area when said. Requires invocation mode shout or whisper.
last_chosen_area_nameThe last area we chose to teleport / where we're currently teleporting to, if mid-cast
randomise_selectionIf FALSE, the caster can select the destination area. If TRUE, they will teleport to somewhere randomly instead.

Var Details

invocation_says_area

If the invocation appends the selected area when said. Requires invocation mode shout or whisper.

last_chosen_area_name

The last area we chose to teleport / where we're currently teleporting to, if mid-cast

randomise_selection

If FALSE, the caster can select the destination area. If TRUE, they will teleport to somewhere randomly instead.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/teleport/radius_turf.html b/datum/action/cooldown/spell/teleport/radius_turf.html new file mode 100644 index 0000000000000..318e2782173cf --- /dev/null +++ b/datum/action/cooldown/spell/teleport/radius_turf.html @@ -0,0 +1,3 @@ +/datum/action/cooldown/spell/teleport/radius_turf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

radius_turf

Radius Teleport Spell

+

A subtype of teleport that will teleport the caster +to a random turf within a radius of themselves.

Vars

inner_tele_radiusThe inner radius around the caster that we can teleport to
outer_tele_radiusThe outer radius around the caster that we can teleport to

Var Details

inner_tele_radius

The inner radius around the caster that we can teleport to

outer_tele_radius

The outer radius around the caster that we can teleport to

\ No newline at end of file diff --git a/datum/action/cooldown/spell/thermal_vision.html b/datum/action/cooldown/spell/thermal_vision.html new file mode 100644 index 0000000000000..c82968611e626 --- /dev/null +++ b/datum/action/cooldown/spell/thermal_vision.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/thermal_vision - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

thermal_vision

Vars

eye_damageHow much eye damage is given on cast
thermal_durationThe duration of the thermal vision

Var Details

eye_damage

How much eye damage is given on cast

thermal_duration

The duration of the thermal vision

\ No newline at end of file diff --git a/datum/action/cooldown/spell/timestop.html b/datum/action/cooldown/spell/timestop.html new file mode 100644 index 0000000000000..6904375c40b4a --- /dev/null +++ b/datum/action/cooldown/spell/timestop.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/timestop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

timestop

Vars

owner_is_immune_to_all_timestopif TRUE, the owner is immune to all time stop, from anyone
owner_is_immune_to_self_timestopif TRUE, the owner is immune to their own timestop (but not other people's, if above is FALSE)
timestop_durationThe duration of the time stop.
timestop_rangeThe radius / range of the time stop.

Var Details

owner_is_immune_to_all_timestop

if TRUE, the owner is immune to all time stop, from anyone

owner_is_immune_to_self_timestop

if TRUE, the owner is immune to their own timestop (but not other people's, if above is FALSE)

timestop_duration

The duration of the time stop.

timestop_range

The radius / range of the time stop.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/tongue_spike.html b/datum/action/cooldown/spell/tongue_spike.html new file mode 100644 index 0000000000000..095fb824b7357 --- /dev/null +++ b/datum/action/cooldown/spell/tongue_spike.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/tongue_spike - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tongue_spike

Vars

spike_pathThe type-path to what projectile we spawn to throw at someone.

Var Details

spike_path

The type-path to what projectile we spawn to throw at someone.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/touch.html b/datum/action/cooldown/spell/touch.html new file mode 100644 index 0000000000000..1aae88156ade6 --- /dev/null +++ b/datum/action/cooldown/spell/touch.html @@ -0,0 +1,42 @@ +/datum/action/cooldown/spell/touch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

touch

Touch Spell

+

Touch spells are spells which function through the power of an item attack.

+

Instead of the spell triggering when the caster presses the button, +pressing the button will give them a hand object. +The spell's effects are cast when the hand object makes contact with something.

+

To implement a touch spell, all you need is to implement:

+ +

However, for added complexity, you can optionally implement:

+ +

It is not necessarily to touch any of the core functions, and is +(generally) inadvisable unless you know what you're doing

Vars

attached_handRef to the hand we currently have deployed.
can_cast_on_selfIf TRUE, the caster can willingly hit themselves with the hand
draw_messageThe message displayed to the person upon creating the touch hand
drop_messageThe message displayed upon willingly dropping / deleting / cancelling the touch hand before using it
hand_pathTypepath of what hand we create on initial cast.

Procs

can_hit_with_handChecks if the passed victim can be cast on by the caster.
cast_on_hand_hitThe actual process of casting the spell on the victim from the caster.
cast_on_secondary_hand_hitFor any special casting effects done if the user right-clicks +on touch spell instead of left-clicking
create_handCreates a new hand_path hand and equips it to the caster.
do_hand_hitCalls cast_on_hand_hit() from the caster onto the victim. +It's worth noting that victim will be guaranteed to be whatever checks are implemented in is_valid_target by this point.
do_secondary_hand_hitCalls do_secondary_hand_hit() from the caster onto the victim. +It's worth noting that victim will be guaranteed to be whatever checks are implemented in is_valid_target by this point.
on_antimagic_triggeredCalled whenever our spell is cast, but blocked by antimagic.
on_hand_deletedSignal proc for COMSIG_QDELETING from our attached hand.
on_hand_droppedSignal proc for COMSIG_ITEM_DROPPED from our attached hand.
on_hand_hitSignal proc for COMSIG_ITEM_INTERACTING_WITH_ATOM from our attached hand.
on_hand_hit_secondarySignal proc for COMSIG_ITEM_INTERACTING_WITH_ATOM_SECONDARY from our attached hand.
on_hand_takenSignal proc for COMSIG_ITEM_OFFER_TAKEN from our attached hand.
register_hand_signalsRegisters all signal procs for the hand.
remove_handUnregisters any signals and deletes the hand currently summoned by the spell.
unregister_hand_signalsUnregisters all signal procs for the hand.

Var Details

attached_hand

Ref to the hand we currently have deployed.

can_cast_on_self

If TRUE, the caster can willingly hit themselves with the hand

draw_message

The message displayed to the person upon creating the touch hand

drop_message

The message displayed upon willingly dropping / deleting / cancelling the touch hand before using it

hand_path

Typepath of what hand we create on initial cast.

Proc Details

can_hit_with_hand

Checks if the passed victim can be cast on by the caster.

cast_on_hand_hit

The actual process of casting the spell on the victim from the caster.

+

Override / extend this to implement casting effects. +Return TRUE on a successful cast to use up the hand (delete it) +Return FALSE to do nothing and let them keep the hand in hand

cast_on_secondary_hand_hit

For any special casting effects done if the user right-clicks +on touch spell instead of left-clicking

+

Return SECONDARY_ATTACK_CALL_NORMAL to call the normal cast_on_hand_hit +Return SECONDARY_ATTACK_CONTINUE_CHAIN to prevent the normal cast_on_hand_hit from calling, but still use up the hand +Return SECONDARY_ATTACK_CANCEL_CHAIN to prevent the spell from being used

create_hand

Creates a new hand_path hand and equips it to the caster.

+

If the equipping action fails, reverts the cooldown and returns FALSE. +Otherwise, registers signals and returns TRUE.

do_hand_hit

Calls cast_on_hand_hit() from the caster onto the victim. +It's worth noting that victim will be guaranteed to be whatever checks are implemented in is_valid_target by this point.

+

Implements checks for antimagic.

do_secondary_hand_hit

Calls do_secondary_hand_hit() from the caster onto the victim. +It's worth noting that victim will be guaranteed to be whatever checks are implemented in is_valid_target by this point.

+

Does NOT check for antimagic on its own. Implement your own checks if you want the r-click to abide by it.

on_antimagic_triggered

Called whenever our spell is cast, but blocked by antimagic.

on_hand_deleted

Signal proc for COMSIG_QDELETING from our attached hand.

+

If our hand is deleted for a reason unrelated to our spell, +unlink it (clear refs) and revert the cooldown

on_hand_dropped

Signal proc for COMSIG_ITEM_DROPPED from our attached hand.

+

If our caster drops the hand, remove the hand / revert the cast +Basically gives them an easy hotkey to lose their hand without needing to click the button

on_hand_hit

Signal proc for COMSIG_ITEM_INTERACTING_WITH_ATOM from our attached hand.

+

When our hand hits an atom, we can cast do_hand_hit() on them.

on_hand_hit_secondary

Signal proc for COMSIG_ITEM_INTERACTING_WITH_ATOM_SECONDARY from our attached hand.

+

When our hand hits an atom, we can cast do_hand_hit() on them.

on_hand_taken

Signal proc for COMSIG_ITEM_OFFER_TAKEN from our attached hand.

+

Giving a high five with our hand makes it cast

register_hand_signals

Registers all signal procs for the hand.

remove_hand

Unregisters any signals and deletes the hand currently summoned by the spell.

+

If reset_cooldown_after is TRUE, we will additionally refund the cooldown of the spell. +If reset_cooldown_after is FALSE, we will instead just start the spell's cooldown

unregister_hand_signals

Unregisters all signal procs for the hand.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/touch/duffelbag.html b/datum/action/cooldown/spell/touch/duffelbag.html new file mode 100644 index 0000000000000..ec9e56f8341bc --- /dev/null +++ b/datum/action/cooldown/spell/touch/duffelbag.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/touch/duffelbag - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

duffelbag

Vars

elaborate_backstorySome meme "elaborate backstories" to use.

Var Details

elaborate_backstory

Some meme "elaborate backstories" to use.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/touch/flesh_surgery.html b/datum/action/cooldown/spell/touch/flesh_surgery.html new file mode 100644 index 0000000000000..ba5c310175021 --- /dev/null +++ b/datum/action/cooldown/spell/touch/flesh_surgery.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/touch/flesh_surgery - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

flesh_surgery

Vars

monster_brute_healingIf used on a heretic mob, how much brute do we heal
monster_burn_healingIf used on a heretic mob, how much burn do we heal
organ_percent_healingIf used on an organ, how much percent of the organ's HP do we restore

Procs

add_item_contextSignal proc for COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET to add some context to the hand.
extraction_checksExtra checks ran while we're extracting an organ to make sure we can continue to do.
heal_checksExtra checks ran while we're healing something (organ, mob).
heal_heretic_monsterIf cast on a heretic monster who's not dead we'll heal it a bit.
heal_organIf cast on an organ, we'll restore its health and even un-fail it.
steal_organ_from_mobIf cast on a carbon, we'll try to steal one of their organs directly from their person.

Var Details

monster_brute_healing

If used on a heretic mob, how much brute do we heal

monster_burn_healing

If used on a heretic mob, how much burn do we heal

organ_percent_healing

If used on an organ, how much percent of the organ's HP do we restore

Proc Details

add_item_context

Signal proc for COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET to add some context to the hand.

extraction_checks

Extra checks ran while we're extracting an organ to make sure we can continue to do.

heal_checks

Extra checks ran while we're healing something (organ, mob).

heal_heretic_monster

If cast on a heretic monster who's not dead we'll heal it a bit.

heal_organ

If cast on an organ, we'll restore its health and even un-fail it.

steal_organ_from_mob

If cast on a carbon, we'll try to steal one of their organs directly from their person.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/touch/lay_on_hands.html b/datum/action/cooldown/spell/touch/lay_on_hands.html new file mode 100644 index 0000000000000..47f94e2aa8e75 --- /dev/null +++ b/datum/action/cooldown/spell/touch/lay_on_hands.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/touch/lay_on_hands - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lay_on_hands

Vars

beam_iconIcon used for beaming effect
heal_multiplierMultiplies the amount healed.
pain_multiplierMultiplies the incoming pain from healing. (Halved with synchronizer chromosome)
power_coefficientThe mutation's power coefficient.
synchronizer_coefficientThe mutation's synchronizer coefficient.

Var Details

beam_icon

Icon used for beaming effect

heal_multiplier

Multiplies the amount healed.

pain_multiplier

Multiplies the incoming pain from healing. (Halved with synchronizer chromosome)

power_coefficient

The mutation's power coefficient.

synchronizer_coefficient

The mutation's synchronizer coefficient.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/touch/shock.html b/datum/action/cooldown/spell/touch/shock.html new file mode 100644 index 0000000000000..0a68ea294dec7 --- /dev/null +++ b/datum/action/cooldown/spell/touch/shock.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/touch/shock - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shock

Vars

chainThis var decides if the spell should chain, dictated by presence of power chromosome
zap_flagsflags that dictate what the tesla shock can interact with, Can only damage mobs, Cannot damage machines or generate energy
zap_powerAffects damage, should do about 1 per limb
zap_rangeRange of tesla shock bounces

Var Details

chain

This var decides if the spell should chain, dictated by presence of power chromosome

zap_flags

flags that dictate what the tesla shock can interact with, Can only damage mobs, Cannot damage machines or generate energy

zap_power

Affects damage, should do about 1 per limb

zap_range

Range of tesla shock bounces

\ No newline at end of file diff --git a/datum/action/cooldown/spell/touch/smite.html b/datum/action/cooldown/spell/touch/smite.html new file mode 100644 index 0000000000000..06ed12698fd3e --- /dev/null +++ b/datum/action/cooldown/spell/touch/smite.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/touch/smite - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

smite

Procs

blind_everyone_nearbySmite is pretty extravagant, so whenever we get casted, we blind everyone nearby.

Proc Details

blind_everyone_nearby

Smite is pretty extravagant, so whenever we get casted, we blind everyone nearby.

\ No newline at end of file diff --git a/datum/action/cooldown/spell/touch/star_touch.html b/datum/action/cooldown/spell/touch/star_touch.html new file mode 100644 index 0000000000000..0be67fe4b8a38 --- /dev/null +++ b/datum/action/cooldown/spell/touch/star_touch.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/touch/star_touch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

star_touch

Vars

ascendedIf the heretic is ascended or not
star_gazerStores the weakref for the Star Gazer after ascending

Procs

get_star_gazerTo obtain the star gazer if there is one
set_star_gazerTo set the star gazer

Var Details

ascended

If the heretic is ascended or not

star_gazer

Stores the weakref for the Star Gazer after ascending

Proc Details

get_star_gazer

To obtain the star gazer if there is one

set_star_gazer

To set the star gazer

\ No newline at end of file diff --git a/datum/action/cooldown/spell/voice_of_god.html b/datum/action/cooldown/spell/voice_of_god.html new file mode 100644 index 0000000000000..7fe057f5e0983 --- /dev/null +++ b/datum/action/cooldown/spell/voice_of_god.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/voice_of_god - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

voice_of_god

Vars

commandThe command to deliver on cast
cooldown_modThe modifier to the cooldown, after cast
power_modThe modifier put onto the power of the command
spansA list of spans to apply to commands given

Var Details

command

The command to deliver on cast

cooldown_mod

The modifier to the cooldown, after cast

power_mod

The modifier put onto the power of the command

spans

A list of spans to apply to commands given

\ No newline at end of file diff --git a/datum/action/cooldown/spell/void/cursed.html b/datum/action/cooldown/spell/void/cursed.html new file mode 100644 index 0000000000000..15bfda2ac12b7 --- /dev/null +++ b/datum/action/cooldown/spell/void/cursed.html @@ -0,0 +1 @@ +/datum/action/cooldown/spell/void/cursed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cursed

The cursed "void invocation" action, that has a chance of casting itself on its owner randomly on life ticks.

Vars

curse_probability_modifierA multiplier applied to the probability of the curse appearing every life tick

Procs

on_lifeSignal proc for COMSIG_LIVING_LIFE. Has a chance of casting itself randomly.

Var Details

curse_probability_modifier

A multiplier applied to the probability of the curse appearing every life tick

Proc Details

on_life

Signal proc for COMSIG_LIVING_LIFE. Has a chance of casting itself randomly.

\ No newline at end of file diff --git a/datum/action/cooldown/track_target.html b/datum/action/cooldown/track_target.html new file mode 100644 index 0000000000000..fc02c44c9e899 --- /dev/null +++ b/datum/action/cooldown/track_target.html @@ -0,0 +1,2 @@ +/datum/action/cooldown/track_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

track_target

The action associated with the living heart. +Allows a heretic to track sacrifice targets.

Vars

last_tracked_nameThe real name of the last mob we tracked
radial_openWhether the target radial is currently opened.
right_clickedTracks whether we were right clicked or left clicked in our last trigger

Procs

check_menuCallback for the radial to ensure it's closed when not allowed.
get_balloon_messageGets the balloon message for who we're tracking.

Var Details

last_tracked_name

The real name of the last mob we tracked

radial_open

Whether the target radial is currently opened.

right_clicked

Tracks whether we were right clicked or left clicked in our last trigger

Proc Details

check_menu

Callback for the radial to ensure it's closed when not allowed.

get_balloon_message

Gets the balloon message for who we're tracking.

\ No newline at end of file diff --git a/datum/action/cooldown/turn_to_statue.html b/datum/action/cooldown/turn_to_statue.html new file mode 100644 index 0000000000000..b925f52c0448f --- /dev/null +++ b/datum/action/cooldown/turn_to_statue.html @@ -0,0 +1,3 @@ +/datum/action/cooldown/turn_to_statue - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

turn_to_statue

Vars

statueThe statue we turn into. +We only ever make one (in New) and simply move it into nullspace or back.

Procs

clean_up_statueCleans up the reference to the statue and unregisters signals
human_left_statueSomehow they used an exploit/teleportation to leave statue, lets clean up
init_statueInitializes the statue we're going to hang around inside
statue_deletedStatue was qdeleted outright, do nothing but clear refs.
statue_destroyedStatue was destroyed via IC means (destruction / deconstruction), dust the owner and drop their stuff

Var Details

statue

The statue we turn into. +We only ever make one (in New) and simply move it into nullspace or back.

Proc Details

clean_up_statue

Cleans up the reference to the statue and unregisters signals

human_left_statue

Somehow they used an exploit/teleportation to leave statue, lets clean up

init_statue

Initializes the statue we're going to hang around inside

statue_deleted

Statue was qdeleted outright, do nothing but clear refs.

statue_destroyed

Statue was destroyed via IC means (destruction / deconstruction), dust the owner and drop their stuff

\ No newline at end of file diff --git a/datum/action/innate.html b/datum/action/innate.html new file mode 100644 index 0000000000000..499e795719378 --- /dev/null +++ b/datum/action/innate.html @@ -0,0 +1,7 @@ +/datum/action/innate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

innate

Vars

activeWhether we're active or not, if we're a innate - toggle action.
click_actionWhether we're a click action or not, if we're a innate - click action.
disable_textIf we're a click action, the text shown on disable
enable_textIf we're a click action, the text shown on enable
ranged_mousepointerIf we're a click action, the mouse pointer we use

Procs

InterceptClickOnHandles whenever a mob clicks on something
do_abilityActually goes through and does the click ability
set_ranged_abilityThis is gross, but a somewhat-required bit of copy+paste until action code becomes slightly more sane. +Anything that uses these functions should eventually be moved to use cooldown actions. +(Either that, or the click ability of cooldown actions should be moved down a type.)
unset_ranged_abilityRemoves this action as the active ability of the passed mob

Var Details

active

Whether we're active or not, if we're a innate - toggle action.

click_action

Whether we're a click action or not, if we're a innate - click action.

disable_text

If we're a click action, the text shown on disable

enable_text

If we're a click action, the text shown on enable

ranged_mousepointer

If we're a click action, the mouse pointer we use

Proc Details

InterceptClickOn

Handles whenever a mob clicks on something

do_ability

Actually goes through and does the click ability

set_ranged_ability

This is gross, but a somewhat-required bit of copy+paste until action code becomes slightly more sane. +Anything that uses these functions should eventually be moved to use cooldown actions. +(Either that, or the click ability of cooldown actions should be moved down a type.)

+

If you're adding something that uses these, rethink your choice in subtypes. +Sets this action as the active ability for the passed mob

unset_ranged_ability

Removes this action as the active ability of the passed mob

\ No newline at end of file diff --git a/datum/action/innate/ai.html b/datum/action/innate/ai.html new file mode 100644 index 0000000000000..22cc4bfebf498 --- /dev/null +++ b/datum/action/innate/ai.html @@ -0,0 +1 @@ +/datum/action/innate/ai - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ai

The malf AI action subtype. All malf actions are subtypes of this.

Vars

auto_use_usesIf we automatically use up uses on each activation
cooldown_periodIf applicable, the time in deciseconds we have to wait before using any more modules
owner_AIThe owner AI, so we don't have to typecast every time
usesIf we have multiple uses of the same power

Var Details

auto_use_uses

If we automatically use up uses on each activation

cooldown_period

If applicable, the time in deciseconds we have to wait before using any more modules

owner_AI

The owner AI, so we don't have to typecast every time

uses

If we have multiple uses of the same power

\ No newline at end of file diff --git a/datum/action/innate/ai/lockdown.html b/datum/action/innate/ai/lockdown.html new file mode 100644 index 0000000000000..0050758f40b4a --- /dev/null +++ b/datum/action/innate/ai/lockdown.html @@ -0,0 +1,3 @@ +/datum/action/innate/ai/lockdown - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lockdown

Vars

hack_in_progressBadmin / exploit abuse prevention. +Check tick may sleep in activate() and we don't want this to be spammable.

Var Details

hack_in_progress

Badmin / exploit abuse prevention. +Check tick may sleep in activate() and we don't want this to be spammable.

\ No newline at end of file diff --git a/datum/action/innate/ai/ranged/core_tilt.html b/datum/action/innate/ai/ranged/core_tilt.html new file mode 100644 index 0000000000000..4432d5f96e9e5 --- /dev/null +++ b/datum/action/innate/ai/ranged/core_tilt.html @@ -0,0 +1 @@ +/datum/action/innate/ai/ranged/core_tilt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

core_tilt

Vars

roll_over_cooldownOn top of [roll_over_time], how long does it take for the ability to cooldown?
roll_over_timeHow long does it take for us to roll?

Procs

radial_checkUsed in our radial menu, state-checking proc after the radial menu sleeps

Var Details

roll_over_cooldown

On top of [roll_over_time], how long does it take for the ability to cooldown?

roll_over_time

How long does it take for us to roll?

Proc Details

radial_check

Used in our radial menu, state-checking proc after the radial menu sleeps

\ No newline at end of file diff --git a/datum/action/innate/ai/ranged/remote_vendor_tilt.html b/datum/action/innate/ai/ranged/remote_vendor_tilt.html new file mode 100644 index 0000000000000..f46c1f809de76 --- /dev/null +++ b/datum/action/innate/ai/ranged/remote_vendor_tilt.html @@ -0,0 +1 @@ +/datum/action/innate/ai/ranged/remote_vendor_tilt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

remote_vendor_tilt

Procs

radial_checkUsed in our radial menu, state-checking proc after the radial menu sleeps

Proc Details

radial_check

Used in our radial menu, state-checking proc after the radial menu sleeps

\ No newline at end of file diff --git a/datum/action/innate/alter_form.html b/datum/action/innate/alter_form.html new file mode 100644 index 0000000000000..04879a81cf916 --- /dev/null +++ b/datum/action/innate/alter_form.html @@ -0,0 +1,17 @@ +/datum/action/innate/alter_form - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

alter_form

Alter Form is the ability of slimes to edit many of their character attributes at will +This covers most thing about their character, from body size or colour, to adding new wings, tails, ears, etc, to changing the presence of their genitalia +There are some balance concerns with some of these (looking at you, body size), but nobody has abused it Yet:tm:, and it would be exceedingly obvious if they did

Vars

available_choicesList containing all of the avalible parts
oversized_userIs the person using this ability oversized?
shapeshift_textWhat text is shown to others when the person uses the ability?
slime_restrictedDo you need to be a slime-person to use this ability?

Procs

alter_coloursAlter colours handles the changing of mutant colours +This affects skin tone primarily, though has the option to change hair, markings, and mutant body parts to match
alter_dnaAlter DNA is an intermediary proc for the most part +It lets you pick between a few options for DNA specifics
alter_genitalsAlter genitals lets you adjust the size or functionality of genitalia +If you don't own the genital you try to adjust, it'll ask you if you want to add it first
alter_hairAlter hair lets you adjust both the hair on your head as well as your facial hair +You can adjust the style of either
alter_markingsAlter markings lets you add a particular body marking
alter_partsAlter parts lets you adjust mutant bodyparts +This can be adding (or removing) things like ears, tails, wings, et cetera.
change_formChange form is the initial proc when using the alter form action +It brings up a radial menu to allow you to pick what about your character it is that you want to edit +Each of these radial menus should be kept from being too long where possible, really

Var Details

available_choices

List containing all of the avalible parts

oversized_user

Is the person using this ability oversized?

shapeshift_text

What text is shown to others when the person uses the ability?

slime_restricted

Do you need to be a slime-person to use this ability?

Proc Details

alter_colours

Alter colours handles the changing of mutant colours +This affects skin tone primarily, though has the option to change hair, markings, and mutant body parts to match

alter_dna

Alter DNA is an intermediary proc for the most part +It lets you pick between a few options for DNA specifics

alter_genitals

Alter genitals lets you adjust the size or functionality of genitalia +If you don't own the genital you try to adjust, it'll ask you if you want to add it first

alter_hair

Alter hair lets you adjust both the hair on your head as well as your facial hair +You can adjust the style of either

alter_markings

Alter markings lets you add a particular body marking

alter_parts

Alter parts lets you adjust mutant bodyparts +This can be adding (or removing) things like ears, tails, wings, et cetera.

change_form

Change form is the initial proc when using the alter form action +It brings up a radial menu to allow you to pick what about your character it is that you want to edit +Each of these radial menus should be kept from being too long where possible, really

\ No newline at end of file diff --git a/datum/action/innate/blobpop.html b/datum/action/innate/blobpop.html new file mode 100644 index 0000000000000..f80116e3b1436 --- /dev/null +++ b/datum/action/innate/blobpop.html @@ -0,0 +1 @@ +/datum/action/innate/blobpop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blobpop

Vars

autoplace_timeThe time taken before this ability is automatically activated.

Var Details

autoplace_time

The time taken before this ability is automatically activated.

\ No newline at end of file diff --git a/datum/action/innate/carrier_user.html b/datum/action/innate/carrier_user.html new file mode 100644 index 0000000000000..08dcd980d2146 --- /dev/null +++ b/datum/action/innate/carrier_user.html @@ -0,0 +1 @@ +/datum/action/innate/carrier_user - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

carrier_user

Vars

carrier_user_componentWhat carrier user component are we bringing up the menu for?

Var Details

carrier_user_component

What carrier user component are we bringing up the menu for?

\ No newline at end of file diff --git a/datum/action/innate/clockcult/comm.html b/datum/action/innate/clockcult/comm.html new file mode 100644 index 0000000000000..8f78ac6f598fd --- /dev/null +++ b/datum/action/innate/clockcult/comm.html @@ -0,0 +1 @@ +/datum/action/innate/clockcult/comm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

comm

Procs

cultist_communeA user can input a message to send to other clock cultists over the clock cult communication channel

Proc Details

cultist_commune

A user can input a message to send to other clock cultists over the clock cult communication channel

\ No newline at end of file diff --git a/datum/action/innate/clockcult/quick_bind.html b/datum/action/innate/clockcult/quick_bind.html new file mode 100644 index 0000000000000..c222e9410face --- /dev/null +++ b/datum/action/innate/clockcult/quick_bind.html @@ -0,0 +1 @@ +/datum/action/innate/clockcult/quick_bind - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

quick_bind

Vars

scriptureRef to the relevant scripture
slab_weakrefWeakref to the relevant slab

Var Details

scripture

Ref to the relevant scripture

slab_weakref

Weakref to the relevant slab

\ No newline at end of file diff --git a/datum/action/innate/clockcult/recall_slab.html b/datum/action/innate/clockcult/recall_slab.html new file mode 100644 index 0000000000000..17284016d9624 --- /dev/null +++ b/datum/action/innate/clockcult/recall_slab.html @@ -0,0 +1 @@ +/datum/action/innate/clockcult/recall_slab - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

recall_slab

Vars

marked_slabThe slab marked for recall

Procs

mark_itemSet the passed object as our marked item
on_marked_item_deletedSignal proc for COMSIG_QDELETING on our marked item, unmarks our item if it's deleted
try_recall_itemRecalls our marked item to the caster. May bring some unexpected things along.
unmark_itemUnset our current marked item

Var Details

marked_slab

The slab marked for recall

Proc Details

mark_item

Set the passed object as our marked item

on_marked_item_deleted

Signal proc for COMSIG_QDELETING on our marked item, unmarks our item if it's deleted

try_recall_item

Recalls our marked item to the caster. May bring some unexpected things along.

unmark_item

Unset our current marked item

\ No newline at end of file diff --git a/datum/action/innate/constrict.html b/datum/action/innate/constrict.html new file mode 100644 index 0000000000000..1958243f382ce --- /dev/null +++ b/datum/action/innate/constrict.html @@ -0,0 +1 @@ +/datum/action/innate/constrict - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

constrict

Vars

base_coil_delayThe base time it takes for us to constrict a mob.
tailThe tail we use to constrict mobs with. Nullable, if inactive.

Procs

can_coil_targetReturns TRUE if the target can be constricted, FALSE otherwise. If silent is TRUE, sends no feedback messages.
create_tailIf we have no tail, sets our tail to a new tail instance.
do_constrictionActually constricts the mob, by setting constricted to this mob and spawning a tail if needed.
set_tailSetter proc for tail. Handles signals.
tail_qdeletingSignal handler for COMSIG_QDELETING. Sets our tail to null.

Var Details

base_coil_delay

The base time it takes for us to constrict a mob.

tail

The tail we use to constrict mobs with. Nullable, if inactive.

Proc Details

can_coil_target

Returns TRUE if the target can be constricted, FALSE otherwise. If silent is TRUE, sends no feedback messages.

create_tail

If we have no tail, sets our tail to a new tail instance.

do_constriction

Actually constricts the mob, by setting constricted to this mob and spawning a tail if needed.

set_tail

Setter proc for tail. Handles signals.

tail_qdeleting

Signal handler for COMSIG_QDELETING. Sets our tail to null.

\ No newline at end of file diff --git a/datum/action/innate/construction.html b/datum/action/innate/construction.html new file mode 100644 index 0000000000000..e218b5fca4f93 --- /dev/null +++ b/datum/action/innate/construction.html @@ -0,0 +1 @@ +/datum/action/innate/construction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

construction

Generic construction action for base construction consoles.

Vars

base_consoleConsole itself
only_station_zIs this used to build only on the station z level?
remote_eyeConsole's eye mob

Procs

check_rcdSanity check for any construction action that relies on an RCD being in the base console
check_spotCheck a loction to see if it is inside the aux base at the station. Camera visbility checks omitted so as to not hinder construction.

Var Details

base_console

Console itself

only_station_z

Is this used to build only on the station z level?

remote_eye

Console's eye mob

Proc Details

check_rcd

Sanity check for any construction action that relies on an RCD being in the base console

check_spot

Check a loction to see if it is inside the aux base at the station. Camera visbility checks omitted so as to not hinder construction.

\ No newline at end of file diff --git a/datum/action/innate/construction/place_structure.html b/datum/action/innate/construction/place_structure.html new file mode 100644 index 0000000000000..0873169810182 --- /dev/null +++ b/datum/action/innate/construction/place_structure.html @@ -0,0 +1 @@ +/datum/action/innate/construction/place_structure - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

place_structure

Generic action used with base construction consoles to build anything that can't be built with an RCD

Procs

after_placeProc to handle additional behavior after placing an object

Proc Details

after_place

Proc to handle additional behavior after placing an object

\ No newline at end of file diff --git a/datum/action/innate/cult/blood_magic.html b/datum/action/innate/cult/blood_magic.html new file mode 100644 index 0000000000000..9b42275b4e3dd --- /dev/null +++ b/datum/action/innate/cult/blood_magic.html @@ -0,0 +1 @@ +/datum/action/innate/cult/blood_magic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blood_magic

Vars

magic_enhancedIf the magic has been enhanced somehow, likely due to a crimson medallion.

Var Details

magic_enhanced

If the magic has been enhanced somehow, likely due to a crimson medallion.

\ No newline at end of file diff --git a/datum/action/innate/cult/blood_spell.html b/datum/action/innate/cult/blood_spell.html new file mode 100644 index 0000000000000..a36e93d3b29c7 --- /dev/null +++ b/datum/action/innate/cult/blood_spell.html @@ -0,0 +1 @@ +/datum/action/innate/cult/blood_spell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blood_spell

Vars

deletes_on_emptyIf false, the spell will not delete after running out of charges
positionedHave we already been positioned into our starting location?

Var Details

deletes_on_empty

If false, the spell will not delete after running out of charges

positioned

Have we already been positioned into our starting location?

\ No newline at end of file diff --git a/datum/action/innate/cult/blood_spell/dagger.html b/datum/action/innate/cult/blood_spell/dagger.html new file mode 100644 index 0000000000000..97e1ce1ebcdb7 --- /dev/null +++ b/datum/action/innate/cult/blood_spell/dagger.html @@ -0,0 +1 @@ +/datum/action/innate/cult/blood_spell/dagger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dagger

Vars

summoned_typeThe item given to the cultist when the spell is invoked. Typepath.

Var Details

summoned_type

The item given to the cultist when the spell is invoked. Typepath.

\ No newline at end of file diff --git a/datum/action/innate/cult/ghostmark.html b/datum/action/innate/cult/ghostmark.html new file mode 100644 index 0000000000000..ab31b76b2473b --- /dev/null +++ b/datum/action/innate/cult/ghostmark.html @@ -0,0 +1 @@ +/datum/action/innate/cult/ghostmark - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ghostmark

Vars

cult_mark_cooldownThe actual cooldown tracked of the action
cult_mark_cooldown_durationThe cooldown between marks - the ability can be used in between cooldowns, but can't mark (only clear)
cult_mark_durationThe duration of the mark on the target

Var Details

cult_mark_cooldown

The actual cooldown tracked of the action

cult_mark_cooldown_duration

The cooldown between marks - the ability can be used in between cooldowns, but can't mark (only clear)

cult_mark_duration

The duration of the mark on the target

\ No newline at end of file diff --git a/datum/action/innate/cult/master/cultmark.html b/datum/action/innate/cult/master/cultmark.html new file mode 100644 index 0000000000000..399d822065875 --- /dev/null +++ b/datum/action/innate/cult/master/cultmark.html @@ -0,0 +1 @@ +/datum/action/innate/cult/master/cultmark - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cultmark

Vars

cult_mark_cooldownThe actual cooldown tracked of the action
cult_mark_cooldown_durationThe duration of the cooldown for cult marks
cult_mark_durationThe duration of the mark itself

Var Details

cult_mark_cooldown

The actual cooldown tracked of the action

cult_mark_cooldown_duration

The duration of the cooldown for cult marks

cult_mark_duration

The duration of the mark itself

\ No newline at end of file diff --git a/datum/action/innate/cult/master/pulse.html b/datum/action/innate/cult/master/pulse.html new file mode 100644 index 0000000000000..304f0eb69c387 --- /dev/null +++ b/datum/action/innate/cult/master/pulse.html @@ -0,0 +1 @@ +/datum/action/innate/cult/master/pulse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pulse

ELDRITCH PULSE

Vars

pulse_cooldownThe actual cooldown tracked of the action
pulse_cooldown_durationCooldown of the ability
throwee_refWeakref to whoever we're currently about to toss

Var Details

pulse_cooldown

The actual cooldown tracked of the action

pulse_cooldown_duration

Cooldown of the ability

throwee_ref

Weakref to whoever we're currently about to toss

\ No newline at end of file diff --git a/datum/action/innate/dash.html b/datum/action/innate/dash.html new file mode 100644 index 0000000000000..ca12c75957150 --- /dev/null +++ b/datum/action/innate/dash.html @@ -0,0 +1 @@ +/datum/action/innate/dash - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dash

Actions that you can use to dash (teleport) to places in view.

Vars

beam_effectWhat effect does our beam use?
beam_lengthHow long does our beam last?
charge_rateHow long does it take to get a dash charge back?
current_chargesHow many dash charges do we have?
dash_soundWhat sound do we play on dash?
max_chargesHow many dash charges can we hold?
phaseinWhat effect should we play when we phase in (at the teleport target turf)
phaseoutWhat effect should we play when we phase out (at the source turf)
recharge_soundWhat sound do we play on recharge?

Procs

chargeCallback for [/proc/teleport] to increment our charges after use.
teleportTeleports user to target using do_teleport. Returns TRUE if teleport successful, FALSE otherwise.

Var Details

beam_effect

What effect does our beam use?

beam_length

How long does our beam last?

charge_rate

How long does it take to get a dash charge back?

current_charges

How many dash charges do we have?

dash_sound

What sound do we play on dash?

max_charges

How many dash charges can we hold?

phasein

What effect should we play when we phase in (at the teleport target turf)

phaseout

What effect should we play when we phase out (at the source turf)

recharge_sound

What sound do we play on recharge?

Proc Details

charge

Callback for [/proc/teleport] to increment our charges after use.

teleport

Teleports user to target using do_teleport. Returns TRUE if teleport successful, FALSE otherwise.

\ No newline at end of file diff --git a/datum/action/innate/elite_attack.html b/datum/action/innate/elite_attack.html new file mode 100644 index 0000000000000..888fd41ce4cde --- /dev/null +++ b/datum/action/innate/elite_attack.html @@ -0,0 +1 @@ +/datum/action/innate/elite_attack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

elite_attack

Vars

chosen_attack_numThe internal attack ID for the elite's OpenFire() proc to use
chosen_messageThe displayed message into chat when this attack is selected

Var Details

chosen_attack_num

The internal attack ID for the elite's OpenFire() proc to use

chosen_message

The displayed message into chat when this attack is selected

\ No newline at end of file diff --git a/datum/action/innate/expand_sight.html b/datum/action/innate/expand_sight.html new file mode 100644 index 0000000000000..6eda23ad31251 --- /dev/null +++ b/datum/action/innate/expand_sight.html @@ -0,0 +1 @@ +/datum/action/innate/expand_sight - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

expand_sight

Vars

boost_toHow far we expand the range to.
last_toggleA cooldown for the last time we toggled it, to prevent spam.

Var Details

boost_to

How far we expand the range to.

last_toggle

A cooldown for the last time we toggled it, to prevent spam.

\ No newline at end of file diff --git a/datum/action/innate/integrate_extract.html b/datum/action/innate/integrate_extract.html new file mode 100644 index 0000000000000..9168858c53f99 --- /dev/null +++ b/datum/action/innate/integrate_extract.html @@ -0,0 +1 @@ +/datum/action/innate/integrate_extract - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

integrate_extract

Procs

locate_extractCallback for /datum/component/action_item_overlay to find the slime extract from within the species

Proc Details

locate_extract

Callback for /datum/component/action_item_overlay to find the slime extract from within the species

\ No newline at end of file diff --git a/datum/action/innate/link_minds.html b/datum/action/innate/link_minds.html new file mode 100644 index 0000000000000..ef54589557b2a --- /dev/null +++ b/datum/action/innate/link_minds.html @@ -0,0 +1 @@ +/datum/action/innate/link_minds - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

link_minds

Vars

currently_linkingWhether we're currently linking to someone.
req_speciesThe species required to use this ability. Typepath.

Procs

while_link_callbackCallback ran during the do_after of Activate() to see if we can keep linking with someone.

Var Details

currently_linking

Whether we're currently linking to someone.

req_species

The species required to use this ability. Typepath.

Proc Details

Callback ran during the do_after of Activate() to see if we can keep linking with someone.

\ No newline at end of file diff --git a/datum/action/innate/mafia_panel.html b/datum/action/innate/mafia_panel.html new file mode 100644 index 0000000000000..ec8465ae6a4ae --- /dev/null +++ b/datum/action/innate/mafia_panel.html @@ -0,0 +1 @@ +/datum/action/innate/mafia_panel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mafia_panel

Vars

controller_panelThe mafia controller that the button will use the UI of.

Var Details

controller_panel

The mafia controller that the button will use the UI of.

\ No newline at end of file diff --git a/datum/action/innate/proto_emitter.html b/datum/action/innate/proto_emitter.html new file mode 100644 index 0000000000000..ea0833503aefb --- /dev/null +++ b/datum/action/innate/proto_emitter.html @@ -0,0 +1 @@ +/datum/action/innate/proto_emitter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

proto_emitter

Vars

buckled_mobStores the mob instance that is buckled to the emitter
proto_emitterStores the emitter the user is currently buckled on

Var Details

buckled_mob

Stores the mob instance that is buckled to the emitter

proto_emitter

Stores the emitter the user is currently buckled on

\ No newline at end of file diff --git a/datum/action/innate/seek_master.html b/datum/action/innate/seek_master.html new file mode 100644 index 0000000000000..8ac7bd22d9736 --- /dev/null +++ b/datum/action/innate/seek_master.html @@ -0,0 +1 @@ +/datum/action/innate/seek_master - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

seek_master

Vars

the_constructThe construct we're attached to
trackingWhere is nar nar? Are we even looking?

Var Details

the_construct

The construct we're attached to

tracking

Where is nar nar? Are we even looking?

\ No newline at end of file diff --git a/datum/action/innate/sign_language.html b/datum/action/innate/sign_language.html new file mode 100644 index 0000000000000..bcc36647a1aca --- /dev/null +++ b/datum/action/innate/sign_language.html @@ -0,0 +1,16 @@ +/datum/action/innate/sign_language - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

sign_language

Allows a Carbon to toggle sign language on/off. The button is invisible for mute Carbons. +Theory of Operation: +A. If TRAIT_SIGN_LANG is added/removed, and the button is visible, then update the button. +B. React to presence of trait TRAIT_MUTE for quality/convenience purposes: +C. If TRAIT_MUTE is added, then activate and hide the Action. +D. If TRAIT_MUTE is then removed, then show the Action.

+ +

Procs

hide_actionHides the linked action from the owner Carbon.
on_mutedSignal handler for SIGNAL_ADDTRAIT(TRAIT_MUTE) +Hides the action if the signing Carbon gains TRAIT_MUTE.
on_unmutedSignal handler for SIGNAL_REMOVETRAIT(TRAIT_MUTE) +Re-shows the action if the signing Carbon loses TRAIT_MUTE.
show_actionShows the linked action to the owner Carbon.

Proc Details

hide_action

Hides the linked action from the owner Carbon.

on_muted

Signal handler for SIGNAL_ADDTRAIT(TRAIT_MUTE) +Hides the action if the signing Carbon gains TRAIT_MUTE.

on_unmuted

Signal handler for SIGNAL_REMOVETRAIT(TRAIT_MUTE) +Re-shows the action if the signing Carbon loses TRAIT_MUTE.

show_action

Shows the linked action to the owner Carbon.

\ No newline at end of file diff --git a/datum/action/innate/slime.html b/datum/action/innate/slime.html new file mode 100644 index 0000000000000..fc0aee7f60363 --- /dev/null +++ b/datum/action/innate/slime.html @@ -0,0 +1 @@ +/datum/action/innate/slime - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

slime

Vars

life_stage_requiredDoes the ability require a specific slime lifestage?
needs_growthDoes the ability requires the slime to hit max growth?
nutrition_costDoes the ability cost nutrition?

Var Details

life_stage_required

Does the ability require a specific slime lifestage?

needs_growth

Does the ability requires the slime to hit max growth?

nutrition_cost

Does the ability cost nutrition?

\ No newline at end of file diff --git a/datum/action/innate/slime/evolve.html b/datum/action/innate/slime/evolve.html new file mode 100644 index 0000000000000..17808c83ecdc7 --- /dev/null +++ b/datum/action/innate/slime/evolve.html @@ -0,0 +1 @@ +/datum/action/innate/slime/evolve - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

evolve

Procs

ActivateTurns a baby slime into an adult slime

Proc Details

Activate

Turns a baby slime into an adult slime

\ No newline at end of file diff --git a/datum/action/innate/soulcatcher.html b/datum/action/innate/soulcatcher.html new file mode 100644 index 0000000000000..9635fe2ee191d --- /dev/null +++ b/datum/action/innate/soulcatcher.html @@ -0,0 +1 @@ +/datum/action/innate/soulcatcher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

soulcatcher

Vars

parent_nifsoftThe weakref of the parent NIFSoft we belong to.

Var Details

parent_nifsoft

The weakref of the parent NIFSoft we belong to.

\ No newline at end of file diff --git a/datum/action/innate/teleport_in.html b/datum/action/innate/teleport_in.html new file mode 100644 index 0000000000000..64010e82704a7 --- /dev/null +++ b/datum/action/innate/teleport_in.html @@ -0,0 +1 @@ +/datum/action/innate/teleport_in - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

teleport_in

Vars

abductor_pad_cooldownIs the amount of time required between uses
use_delayIs used to compare to world.time in order to determine if the action should early return

Var Details

abductor_pad_cooldown

Is the amount of time required between uses

use_delay

Is used to compare to world.time in order to determine if the action should early return

\ No newline at end of file diff --git a/datum/action/innate/teleport_self.html b/datum/action/innate/teleport_self.html new file mode 100644 index 0000000000000..6c55539f25500 --- /dev/null +++ b/datum/action/innate/teleport_self.html @@ -0,0 +1 @@ +/datum/action/innate/teleport_self - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

teleport_self

Vars

teleport_self_cooldownIs the amount of time required between uses

Var Details

teleport_self_cooldown

Is the amount of time required between uses

\ No newline at end of file diff --git a/datum/action/innate/use_extract.html b/datum/action/innate/use_extract.html new file mode 100644 index 0000000000000..09272dbd14541 --- /dev/null +++ b/datum/action/innate/use_extract.html @@ -0,0 +1 @@ +/datum/action/innate/use_extract - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

use_extract

Procs

locate_extractCallback for /datum/component/action_item_overlay to find the slime extract from within the species

Proc Details

locate_extract

Callback for /datum/component/action_item_overlay to find the slime extract from within the species

\ No newline at end of file diff --git a/datum/action/item_action/agent_box.html b/datum/action/item_action/agent_box.html new file mode 100644 index 0000000000000..1895a727c14ce --- /dev/null +++ b/datum/action/item_action/agent_box.html @@ -0,0 +1 @@ +/datum/action/item_action/agent_box - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

agent_box

MGS BOX!

Vars

boxtypeThe type of closet this action spawns.

Procs

TriggerHandles opening and closing the box.

Var Details

boxtype

The type of closet this action spawns.

Proc Details

Trigger

Handles opening and closing the box.

\ No newline at end of file diff --git a/datum/action/item_action/camouflage.html b/datum/action/item_action/camouflage.html new file mode 100644 index 0000000000000..15d41866aa570 --- /dev/null +++ b/datum/action/item_action/camouflage.html @@ -0,0 +1,3 @@ +/datum/action/item_action/camouflage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

camouflage

Vars

camouflage_alphaThe alpha we move to when activating this action.
cloakingAre we currently cloaking ourself?

Procs

remove_cloakingReturns the owner's alpha value to its initial value,

Var Details

camouflage_alpha

The alpha we move to when activating this action.

cloaking

Are we currently cloaking ourself?

Proc Details

remove_cloaking

Returns the owner's alpha value to its initial value,

+

Disables cloaking and flashes sparks. Used when toggling the ability, as well as to +make sure the action properly resets its owner when removed.

\ No newline at end of file diff --git a/datum/action/item_action/chameleon/change.html b/datum/action/item_action/chameleon/change.html new file mode 100644 index 0000000000000..671f69d83934a --- /dev/null +++ b/datum/action/item_action/chameleon/change.html @@ -0,0 +1,7 @@ +/datum/action/item_action/chameleon/change - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

change

Vars

active_typeWhat chameleon is active right now? +Can be set in the declaration to update in init
chameleon_blacklistTypecache of all item types we explicitly cannot pick +Note that abstract items are already excluded
chameleon_listAssoc list of item name + icon state to item typepath +This is passed to the list input
chameleon_nameUsed in the action button to describe what we're changing into
chameleon_typeThe prime typepath of what class of item we're allowed to pick from
chameleon_typecacheTypecache of typepaths we can turn into
emp_timerCooldown from when we started being EMP'd

Procs

apply_job_dataUsed when applying this cham item via a job datum (from an outfit selection)

Var Details

active_type

What chameleon is active right now? +Can be set in the declaration to update in init

chameleon_blacklist

Typecache of all item types we explicitly cannot pick +Note that abstract items are already excluded

chameleon_list

Assoc list of item name + icon state to item typepath +This is passed to the list input

chameleon_name

Used in the action button to describe what we're changing into

chameleon_type

The prime typepath of what class of item we're allowed to pick from

chameleon_typecache

Typecache of typepaths we can turn into

emp_timer

Cooldown from when we started being EMP'd

Proc Details

apply_job_data

Used when applying this cham item via a job datum (from an outfit selection)

\ No newline at end of file diff --git a/datum/action/item_action/chameleon/change/scanner.html b/datum/action/item_action/chameleon/change/scanner.html new file mode 100644 index 0000000000000..ebd3fc12fefe5 --- /dev/null +++ b/datum/action/item_action/chameleon/change/scanner.html @@ -0,0 +1 @@ +/datum/action/item_action/chameleon/change/scanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

scanner

Vars

other_cham_typesOther types the chameleon scanner can swap into in addition to the chameleon type

Var Details

other_cham_types

Other types the chameleon scanner can swap into in addition to the chameleon type

\ No newline at end of file diff --git a/datum/action/item_action/mod.html b/datum/action/item_action/mod.html new file mode 100644 index 0000000000000..1d61879bfbca7 --- /dev/null +++ b/datum/action/item_action/mod.html @@ -0,0 +1 @@ +/datum/action/item_action/mod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mod

Vars

ai_actionWhether this action is intended for the AI. Stuff breaks a lot if this is done differently.

Var Details

ai_action

Whether this action is intended for the AI. Stuff breaks a lot if this is done differently.

\ No newline at end of file diff --git a/datum/action/item_action/mod/activate.html b/datum/action/item_action/mod/activate.html new file mode 100644 index 0000000000000..166b7a8462eca --- /dev/null +++ b/datum/action/item_action/mod/activate.html @@ -0,0 +1 @@ +/datum/action/item_action/mod/activate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

activate

Vars

readyFirst time clicking this will set it to TRUE, second time will activate it.

Procs

reset_readyResets the state requiring to be doubleclicked again.

Var Details

ready

First time clicking this will set it to TRUE, second time will activate it.

Proc Details

reset_ready

Resets the state requiring to be doubleclicked again.

\ No newline at end of file diff --git a/datum/action/item_action/mod/pinnable.html b/datum/action/item_action/mod/pinnable.html new file mode 100644 index 0000000000000..08fc03a3ecb00 --- /dev/null +++ b/datum/action/item_action/mod/pinnable.html @@ -0,0 +1 @@ +/datum/action/item_action/mod/pinnable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pinnable

Vars

pinnerA reference to the mob we are pinned to.

Procs

pinner_deletedIf the guy whose UI we are pinned to got deleted

Var Details

pinner

A reference to the mob we are pinned to.

Proc Details

pinner_deleted

If the guy whose UI we are pinned to got deleted

\ No newline at end of file diff --git a/datum/action/item_action/mod/pinnable/circuit.html b/datum/action/item_action/mod/pinnable/circuit.html new file mode 100644 index 0000000000000..528298e79bb9f --- /dev/null +++ b/datum/action/item_action/mod/pinnable/circuit.html @@ -0,0 +1 @@ +/datum/action/item_action/mod/pinnable/circuit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

circuit

Vars

circuit_componentA reference to the component this action triggers.
moduleA reference to the module containing this action's component

Procs

pinner_deletedIf the guy whose UI we are pinned to got deleted

Var Details

circuit_component

A reference to the component this action triggers.

module

A reference to the module containing this action's component

Proc Details

pinner_deleted

If the guy whose UI we are pinned to got deleted

\ No newline at end of file diff --git a/datum/action/item_action/mod/pinnable/module.html b/datum/action/item_action/mod/pinnable/module.html new file mode 100644 index 0000000000000..c8047c1813dce --- /dev/null +++ b/datum/action/item_action/mod/pinnable/module.html @@ -0,0 +1 @@ +/datum/action/item_action/mod/pinnable/module - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

module

Vars

cooldown_timerTimer until we remove our cooldown overlay
moduleModule we are linked to.
overrideOverrides the icon applications.

Var Details

cooldown_timer

Timer until we remove our cooldown overlay

module

Module we are linked to.

override

Overrides the icon applications.

\ No newline at end of file diff --git a/datum/action/item_action/mod_recall.html b/datum/action/item_action/mod_recall.html new file mode 100644 index 0000000000000..c0552b8577d8e --- /dev/null +++ b/datum/action/item_action/mod_recall.html @@ -0,0 +1 @@ +/datum/action/item_action/mod_recall - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mod_recall

Vars

recall_cooldownThe cooldown for the recall.

Var Details

recall_cooldown

The cooldown for the recall.

\ No newline at end of file diff --git a/datum/action/item_action/stealth_mode.html b/datum/action/item_action/stealth_mode.html new file mode 100644 index 0000000000000..f68fb23406558 --- /dev/null +++ b/datum/action/item_action/stealth_mode.html @@ -0,0 +1,5 @@ +/datum/action/item_action/stealth_mode - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stealth_mode

Vars

chargeThe amount of time the stealth mode can be active for, drains to 0 when active
max_chargeThe maximum amount of time the stealth mode can be active for
min_alphaThe minimum alpha value for the stealth mode
recharge_while_activeWhether the stealth mode recharges while active +if TRUE standing in darkness will recharge even while active +if FALSE it will not uncharge, but not recharge while in darkness
stealth_engagedWhether stealth is active or not

Var Details

charge

The amount of time the stealth mode can be active for, drains to 0 when active

max_charge

The maximum amount of time the stealth mode can be active for

min_alpha

The minimum alpha value for the stealth mode

recharge_while_active

Whether the stealth mode recharges while active +if TRUE standing in darkness will recharge even while active +if FALSE it will not uncharge, but not recharge while in darkness

stealth_engaged

Whether stealth is active or not

\ No newline at end of file diff --git a/datum/action/item_action/toggle_steampunk_goggles_welding_protection.html b/datum/action/item_action/toggle_steampunk_goggles_welding_protection.html new file mode 100644 index 0000000000000..de4a73b549f44 --- /dev/null +++ b/datum/action/item_action/toggle_steampunk_goggles_welding_protection.html @@ -0,0 +1 @@ +/datum/action/item_action/toggle_steampunk_goggles_welding_protection - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

toggle_steampunk_goggles_welding_protection

Action button for toggling the welding shutters (aka, welding protection) on or off.

Procs

TriggerWe need to do a bit of code duplication here to ensure that we do the right kind of ui_action_click(), while keeping it modular.

Proc Details

Trigger

We need to do a bit of code duplication here to ensure that we do the right kind of ui_action_click(), while keeping it modular.

\ No newline at end of file diff --git a/datum/action/personality_commune.html b/datum/action/personality_commune.html new file mode 100644 index 0000000000000..ef60145d59c0b --- /dev/null +++ b/datum/action/personality_commune.html @@ -0,0 +1 @@ +/datum/action/personality_commune - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

personality_commune

Vars

fluff_textFluff text shown when a message is sent to the pair

Var Details

fluff_text

Fluff text shown when a message is sent to the pair

\ No newline at end of file diff --git a/datum/action/push_weights.html b/datum/action/push_weights.html new file mode 100644 index 0000000000000..d8d7bc0140649 --- /dev/null +++ b/datum/action/push_weights.html @@ -0,0 +1,2 @@ +/datum/action/push_weights - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

push_weights

The action button given by the weight machine's buckle. +This allows users to manually trigger working out.

Vars

weightpressReference to the weightpress we are created inside of.

Var Details

weightpress

Reference to the weightpress we are created inside of.

\ No newline at end of file diff --git a/datum/action/select_guardian_battlecry.html b/datum/action/select_guardian_battlecry.html new file mode 100644 index 0000000000000..375d6e49cdbb0 --- /dev/null +++ b/datum/action/select_guardian_battlecry.html @@ -0,0 +1 @@ +/datum/action/select_guardian_battlecry - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

select_guardian_battlecry

Action to change our battlecry

Vars

max_lengthHow long can it be? Shouldn't be too long because we repeat this a shitload of times

Var Details

max_length

How long can it be? Shouldn't be too long because we repeat this a shitload of times

\ No newline at end of file diff --git a/datum/action/send_chems.html b/datum/action/send_chems.html new file mode 100644 index 0000000000000..274e31c66b188 --- /dev/null +++ b/datum/action/send_chems.html @@ -0,0 +1 @@ +/datum/action/send_chems - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

send_chems

Vars

transferred_refWeakref to the mob target that we transfer chemicals to on activation

Var Details

transferred_ref

Weakref to the mob target that we transfer chemicals to on activation

\ No newline at end of file diff --git a/datum/action/setup_shop.html b/datum/action/setup_shop.html new file mode 100644 index 0000000000000..7f5c2d505acf0 --- /dev/null +++ b/datum/action/setup_shop.html @@ -0,0 +1 @@ +/datum/action/setup_shop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

setup_shop

Vars

opening_linesLines we say when we open our shop
shop_soundThe sound we make when we summon our shop gear
shop_spot_refThe shop spot
shop_spot_typeThe type of the chair we sit on
sign_refThe server this console is connected to.
sign_typeThe type of our advertising sign

Procs

try_find_valid_spotLook for a spot we can place our sign on

Var Details

opening_lines

Lines we say when we open our shop

shop_sound

The sound we make when we summon our shop gear

shop_spot_ref

The shop spot

shop_spot_type

The type of the chair we sit on

sign_ref

The server this console is connected to.

sign_type

The type of our advertising sign

Proc Details

try_find_valid_spot

Look for a spot we can place our sign on

\ No newline at end of file diff --git a/datum/action/toggle_buffer.html b/datum/action/toggle_buffer.html new file mode 100644 index 0000000000000..caabd5224ecd0 --- /dev/null +++ b/datum/action/toggle_buffer.html @@ -0,0 +1,3 @@ +/datum/action/toggle_buffer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

toggle_buffer

Vars

bucket_refThe bucket we draw water from
toggle_cooldownToggle cooldown to prevent sound spam
wash_audioOur looping sound

Procs

activate_washActivate the buffer, comes with a nice animation that loops while it's on
allow_buffer_activateShould we keep trying to activate our buffer, or did you fuck it up somehow
cleanCall this to attempt to actually clean the turf underneath us
deactivate_washStart the process of disabling the buffer. Plays some effects, waits a bit, then finishes
toggle_washToggle our wash mode
turn_off_washCalled by [deactivate_wash] on a timer to allow noises and animation to play out. +Finally disables the buffer. Doesn't do everything mind, just the stuff that we wanted to delay

Var Details

bucket_ref

The bucket we draw water from

toggle_cooldown

Toggle cooldown to prevent sound spam

wash_audio

Our looping sound

Proc Details

activate_wash

Activate the buffer, comes with a nice animation that loops while it's on

allow_buffer_activate

Should we keep trying to activate our buffer, or did you fuck it up somehow

clean

Call this to attempt to actually clean the turf underneath us

deactivate_wash

Start the process of disabling the buffer. Plays some effects, waits a bit, then finishes

toggle_wash

Toggle our wash mode

turn_off_wash

Called by [deactivate_wash] on a timer to allow noises and animation to play out. +Finally disables the buffer. Doesn't do everything mind, just the stuff that we wanted to delay

\ No newline at end of file diff --git a/datum/action/vehicle/sealed/mecha.html b/datum/action/vehicle/sealed/mecha.html new file mode 100644 index 0000000000000..94f3314210896 --- /dev/null +++ b/datum/action/vehicle/sealed/mecha.html @@ -0,0 +1,3 @@ +/datum/action/vehicle/sealed/mecha - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mecha

Procs

set_chassisSets the chassis var of our mecha action to the referenced mecha. Used during actions generation in +generate_action_type() chain.

Proc Details

set_chassis

Sets the chassis var of our mecha action to the referenced mecha. Used during actions generation in +generate_action_type() chain.

\ No newline at end of file diff --git a/datum/action/vehicle/sealed/mecha/charge_attack.html b/datum/action/vehicle/sealed/mecha/charge_attack.html new file mode 100644 index 0000000000000..cb9709418237e --- /dev/null +++ b/datum/action/vehicle/sealed/mecha/charge_attack.html @@ -0,0 +1,9 @@ +/datum/action/vehicle/sealed/mecha/charge_attack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

charge_attack

Vars

chargeRecharge check.
charge_attack_soundSound when mech do charge attack.
energy_costEnergy cost to perform charge attack
max_charge_rangeMaximum range of charge attack.
onIs charge attack activated.

Procs

charge
charge_attack
charge_attack_offCalled when charge attack deactivated
charge_attack_onCalled when charge attack activated
check_visabilityCheck if mech use invisibility and deactivate it when we activate charge attack.
click_try_chargeCalled when mech attacks with charge attack enabled.
on_toggle_safetyupdate button icon when toggle safety.

Var Details

charge

Recharge check.

charge_attack_sound

Sound when mech do charge attack.

energy_cost

Energy cost to perform charge attack

max_charge_range

Maximum range of charge attack.

on

Is charge attack activated.

Proc Details

charge

charge

+

Recharge charge attack action after 5 SECONDS.

charge_attack

charge_attack

+

Deal everyone in line for mech location to mouse location 35 damage and 25 chanse to cut off limb. +Teleport mech to the end of line. +Arguments:

+

charge_attack_off

Called when charge attack deactivated

charge_attack_on

Called when charge attack activated

check_visability

Check if mech use invisibility and deactivate it when we activate charge attack.

click_try_charge

Called when mech attacks with charge attack enabled.

on_toggle_safety

update button icon when toggle safety.

\ No newline at end of file diff --git a/datum/action/vehicle/sealed/mecha/invisibility.html b/datum/action/vehicle/sealed/mecha/invisibility.html new file mode 100644 index 0000000000000..f47106092a137 --- /dev/null +++ b/datum/action/vehicle/sealed/mecha/invisibility.html @@ -0,0 +1,17 @@ +/datum/action/vehicle/sealed/mecha/invisibility - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

invisibility

Vars

chargeRecharge check.
energy_costEnergy cost to become invisibile
invisibility_timerVarset for invisibility timer
onIs invisibility activated.
stealth_attack_soundAoe attack sound.
stealth_pre_attack_soundAoe pre attack sound.

Procs

attack_in_aoe
bumb_on
bumbed_on
charge
check_charge_attackCheck if mech use charge attack and deactivate it when we activate invisibility.
end_stealth
invisibility_offCalled when invisibility deactivated.
invisibility_onCalled when invisibility activated.
make_visible
on_toggle_safetyupdate button icon when toggle safety and turns invisibility off.
stealth_attack_aoeProc makes an AOE attack after 1 SECOND. +Called by the mech pilot when he is in stealth mode and wants to attack. +During this, mech cannot move.
take_damage

Var Details

charge

Recharge check.

energy_cost

Energy cost to become invisibile

invisibility_timer

Varset for invisibility timer

on

Is invisibility activated.

stealth_attack_sound

Aoe attack sound.

stealth_pre_attack_sound

Aoe pre attack sound.

Proc Details

attack_in_aoe

attack_in_aoe

+

Brings mech out of invisibility. +Deal everyone in range 3x3 35 damage and 25 chanse to cut off limb. +Arguments:

+

bumb_on

bumb_on

+

Called when mech bumb on somthing. If is living somthing shutdown mech invisibility.

bumbed_on

bumbed_on

+

Called when somthing bumbed on mech. If is living somthing shutdown mech invisibility.

charge

charge

+

Recharge invisibility action after 5 SECONDS.

check_charge_attack

Check if mech use charge attack and deactivate it when we activate invisibility.

end_stealth

end_stealth

+

Called when mech runs out of invisibility time.

invisibility_off

Called when invisibility deactivated.

invisibility_on

Called when invisibility activated.

make_visible

make_visible

+

Called when somthing force invisibility shutdown.

on_toggle_safety

update button icon when toggle safety and turns invisibility off.

stealth_attack_aoe

Proc makes an AOE attack after 1 SECOND. +Called by the mech pilot when he is in stealth mode and wants to attack. +During this, mech cannot move.

take_damage

take_damage

+

Called when mech take damage. Shutdown mech invisibility.

\ No newline at end of file diff --git a/datum/action/vehicle/sealed/mecha/ivanov_strike.html b/datum/action/vehicle/sealed/mecha/ivanov_strike.html new file mode 100644 index 0000000000000..00dc90bf37621 --- /dev/null +++ b/datum/action/vehicle/sealed/mecha/ivanov_strike.html @@ -0,0 +1,12 @@ +/datum/action/vehicle/sealed/mecha/ivanov_strike - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ivanov_strike

Vars

rockets_lefthow many rockets can we send with ivanov strike
strike_cooldown_timecooldown time between strike uses

Procs

drop_missile
end_missile_targeting
on_equipment_clicksignal called from clicking with equipment
on_melee_clicksignal called from clicking with no equipment
reset_button_icon
start_missile_targeting

Var Details

rockets_left

how many rockets can we send with ivanov strike

strike_cooldown_time

cooldown time between strike uses

Proc Details

drop_missile

drop_missile

+

Called via intercepted clicks when the missile ability is active +Spawns a droppod and starts the cooldown of the missile strike ability +arguments:

+

end_missile_targeting

end_missile_targeting

+

Called by the ivanov strike datum action or other actions that would end targeting +Unhooks signals into clicking to call drop_missile plus other flavor like the overlay

on_equipment_click

signal called from clicking with equipment

on_melee_click

signal called from clicking with no equipment

reset_button_icon

reset_button_icon

+

called after an addtimer when the cooldown is finished with the ivanov strike, resets the icon

start_missile_targeting

start_missile_targeting

+

Called by the ivanov strike datum action, hooks signals into clicking to call drop_missile +Plus other flavor like the overlay

\ No newline at end of file diff --git a/datum/action/vehicle/sealed/mecha/skyfall.html b/datum/action/vehicle/sealed/mecha/skyfall.html new file mode 100644 index 0000000000000..fdbd712475a7c --- /dev/null +++ b/datum/action/vehicle/sealed/mecha/skyfall.html @@ -0,0 +1,10 @@ +/datum/action/vehicle/sealed/mecha/skyfall - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

skyfall

Savannah Skyfall

Vars

skyfall_charge_levelskyfall builds up in charges every 2 seconds, when it reaches 5 charges the ability actually starts
skyfall_cooldown_timecooldown time between skyfall uses

Procs

abort_skyfall
begin_landing
land
reset_button_icon
skyfall_charge_loop

Var Details

skyfall_charge_level

skyfall builds up in charges every 2 seconds, when it reaches 5 charges the ability actually starts

skyfall_cooldown_time

cooldown time between skyfall uses

Proc Details

abort_skyfall

abort_skyfall

+

Called by skyfall_charge_loop if the charging is interrupted. +Applies cooldown and resets charge level

begin_landing

begin_landing

+

Called by skyfall_charge_loop after some time if it reaches full charge level. +it's just the animations of the mecha coming down + another timer for the final landing effect

land

land

+

Called by skyfall_charge_loop after some time if it reaches full charge level. +it's just the animations of the mecha coming down + another timer for the final landing effect

reset_button_icon

reset_button_icon

+

called after an addtimer when the cooldown is finished with the skyfall, resets the icon

skyfall_charge_loop

skyfall_charge_loop

+

The actual skyfall loop itself. Repeatedly calls itself after a do_after, so any interruptions will call abort_skyfall and end the loop +the other way the loop ends is if charge level (var it's ticking up) gets to SKYFALL_CHARGELEVEL_LAUNCH, in which case it ends the loop and does the ability.

\ No newline at end of file diff --git a/datum/action_group.html b/datum/action_group.html new file mode 100644 index 0000000000000..eee60646bf3f3 --- /dev/null +++ b/datum/action_group.html @@ -0,0 +1,7 @@ +/datum/action_group - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

action_group

Vars

actionsThe actions we're managing
column_maxMax amount of buttons we can have per row +Indexes at 1
landingOur landing screen object
locationThe screen location we go by
max_rowsHow many rows of actions we can have at max before we just stop hiding +Indexes at 1
north_offsetThe initial vertical offset of our action buttons
ownerThe hud we're owned by
pixel_north_offsetThe pixel vertical offset of our action buttons
row_offsetHow far "ahead" of the first row we start. Lets us "scroll" our rows +Indexes at 1

Procs

ButtonNumberToScreenCoordsAccepts a number represeting our position in the group, indexes at 0 to make the math nicer
clear_landingClears any landing objects we may currently have
generate_landingGenerates a landing object that can be dropped on to join this group
sizeReturns the amount of objects we're storing at the moment

Var Details

actions

The actions we're managing

column_max

Max amount of buttons we can have per row +Indexes at 1

landing

Our landing screen object

location

The screen location we go by

max_rows

How many rows of actions we can have at max before we just stop hiding +Indexes at 1

north_offset

The initial vertical offset of our action buttons

owner

The hud we're owned by

pixel_north_offset

The pixel vertical offset of our action buttons

row_offset

How far "ahead" of the first row we start. Lets us "scroll" our rows +Indexes at 1

Proc Details

ButtonNumberToScreenCoords

Accepts a number represeting our position in the group, indexes at 0 to make the math nicer

clear_landing

Clears any landing objects we may currently have

generate_landing

Generates a landing object that can be dropped on to join this group

size

Returns the amount of objects we're storing at the moment

\ No newline at end of file diff --git a/datum/actionspeed_modifier.html b/datum/actionspeed_modifier.html new file mode 100644 index 0000000000000..87c19915552bb --- /dev/null +++ b/datum/actionspeed_modifier.html @@ -0,0 +1 @@ +/datum/actionspeed_modifier - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

actionspeed_modifier

Vars

conflicts_withOther modification datums this conflicts with.
idUnique ID. You can never have different modifications with the same ID. By default, this SHOULD NOT be set. Only set it for cases where you're dynamically making modifiers/need to have two types overwrite each other. If unset, uses path (converted to text) as ID.
multiplicative_slowdownMultiplicative slowdown
priorityHigher ones override lower priorities. This is NOT used for ID, ID must be unique, if it isn't unique the newer one overwrites automatically if overriding.
variableWhether or not this is a variable modifier. Variable modifiers can NOT be ever auto-cached. ONLY CHECKED VIA INITIAL(), EFFECTIVELY READ ONLY (and for very good reason)

Var Details

conflicts_with

Other modification datums this conflicts with.

id

Unique ID. You can never have different modifications with the same ID. By default, this SHOULD NOT be set. Only set it for cases where you're dynamically making modifiers/need to have two types overwrite each other. If unset, uses path (converted to text) as ID.

multiplicative_slowdown

Multiplicative slowdown

priority

Higher ones override lower priorities. This is NOT used for ID, ID must be unique, if it isn't unique the newer one overwrites automatically if overriding.

variable

Whether or not this is a variable modifier. Variable modifiers can NOT be ever auto-cached. ONLY CHECKED VIA INITIAL(), EFFECTIVELY READ ONLY (and for very good reason)

\ No newline at end of file diff --git a/datum/addiction.html b/datum/addiction.html new file mode 100644 index 0000000000000..358b4083fa8a1 --- /dev/null +++ b/datum/addiction.html @@ -0,0 +1 @@ +/datum/addiction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

addiction

base class for addiction, handles when you become addicted and what the effects of that are. By default you become addicted when you hit a certain threshold, and stop being addicted once you go below another one.

Vars

addiction_gain_thresholdHigher threshold, when you start being addicted
addiction_loss_per_stageRates at which you lose addiction (in units/second) if you are not on the drug at that time per stage
addiction_loss_thresholdLower threshold, when you stop being addicted
addiction_relief_tresholdAmount of drugs you need in your system to be satisfied
high_sanity_addiction_lossRate at which high sanity helps addiction loss
light_withdrawal_moodletmoodlet for light withdrawal
medium_withdrawal_moodletmoodlet for medium withdrawal
nameName of this addiction
severe_withdrawal_moodletmoodlet for severe withdrawal
withdrawal_stage_messagesMessages for each stage of addictions.

Procs

become_addictedCalled when you become addicted
on_gain_addiction_pointsCalled when you gain addiction points somehow. Takes a mind as argument and sees if you gained the addiction
on_lose_addiction_pointsCalled when you lose addiction poitns somehow. Takes a mind as argument and sees if you lost the addiction
withdrawal_enters_stage_1Called when addiction enters stage 1
withdrawal_enters_stage_2Called when addiction enters stage 2
withdrawal_enters_stage_3Called when addiction enters stage 3
withdrawal_stage_1_processCalled when addiction is in stage 1 every process
withdrawal_stage_2_processCalled when addiction is in stage 2 every process
withdrawal_stage_3_processCalled when addiction is in stage 3 every process

Var Details

addiction_gain_threshold

Higher threshold, when you start being addicted

addiction_loss_per_stage

Rates at which you lose addiction (in units/second) if you are not on the drug at that time per stage

addiction_loss_threshold

Lower threshold, when you stop being addicted

addiction_relief_treshold

Amount of drugs you need in your system to be satisfied

high_sanity_addiction_loss

Rate at which high sanity helps addiction loss

light_withdrawal_moodlet

moodlet for light withdrawal

medium_withdrawal_moodlet

moodlet for medium withdrawal

name

Name of this addiction

severe_withdrawal_moodlet

moodlet for severe withdrawal

withdrawal_stage_messages

Messages for each stage of addictions.

Proc Details

become_addicted

Called when you become addicted

on_gain_addiction_points

Called when you gain addiction points somehow. Takes a mind as argument and sees if you gained the addiction

on_lose_addiction_points

Called when you lose addiction poitns somehow. Takes a mind as argument and sees if you lost the addiction

withdrawal_enters_stage_1

Called when addiction enters stage 1

withdrawal_enters_stage_2

Called when addiction enters stage 2

withdrawal_enters_stage_3

Called when addiction enters stage 3

withdrawal_stage_1_process

Called when addiction is in stage 1 every process

withdrawal_stage_2_process

Called when addiction is in stage 2 every process

withdrawal_stage_3_process

Called when addiction is in stage 3 every process

\ No newline at end of file diff --git a/datum/addiction/medicine.html b/datum/addiction/medicine.html new file mode 100644 index 0000000000000..cfb92aab780ce --- /dev/null +++ b/datum/addiction/medicine.html @@ -0,0 +1 @@ +/datum/addiction/medicine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

medicine

Makes you a hypochondriac - I'd like to call it hypochondria, but "I could use some hypochondria" doesn't work

Vars

fake_alert_refWeakref to the "fake alert" hallucination we're giving to the addicted
health_doll_refWeakref to the "health doll screwup" hallucination we're giving to the addicted

Var Details

fake_alert_ref

Weakref to the "fake alert" hallucination we're giving to the addicted

health_doll_ref

Weakref to the "health doll screwup" hallucination we're giving to the addicted

\ No newline at end of file diff --git a/datum/admin_book_viewer.html b/datum/admin_book_viewer.html new file mode 100644 index 0000000000000..dff09237064db --- /dev/null +++ b/datum/admin_book_viewer.html @@ -0,0 +1 @@ +/datum/admin_book_viewer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

admin_book_viewer

Weaps around a book's sql data, feeds it into a ui that allows us to at base view the contents of the book

Vars

authorThe display name for the book, taken from the player's character
author_ckeyThe ckey of the user who triggered the upload request
categoryCategory the book falls into, see SSlibrary.search_categories
contentThe full text of the book, stored raw
creation_roundThe round id the book was uploaded in
creation_timeThe time of day at which the book was uploaded
deletedBoolean, flips to true to "hide" a book from public viewing. Defaults to null
historyRepresents the full admin record of this book, as of the view request. Datumized to make it easier to deal with.
idThe book id. Incremental, goes up over time
owner_refWeakref to the /obj/machinery/computer/libraryconsole/admin_only_do_not_map_in_you_fucker that spawned us
titleTitle of the book
view_rawIf we're displaying raw data or rendered markdown

Var Details

author

The display name for the book, taken from the player's character

author_ckey

The ckey of the user who triggered the upload request

category

Category the book falls into, see SSlibrary.search_categories

content

The full text of the book, stored raw

creation_round

The round id the book was uploaded in

creation_time

The time of day at which the book was uploaded

deleted

Boolean, flips to true to "hide" a book from public viewing. Defaults to null

history

Represents the full admin record of this book, as of the view request. Datumized to make it easier to deal with.

id

The book id. Incremental, goes up over time

owner_ref

Weakref to the /obj/machinery/computer/libraryconsole/admin_only_do_not_map_in_you_fucker that spawned us

title

Title of the book

view_raw

If we're displaying raw data or rendered markdown

\ No newline at end of file diff --git a/datum/admin_help.html b/datum/admin_help.html new file mode 100644 index 0000000000000..1dc1ac9edae1b --- /dev/null +++ b/datum/admin_help.html @@ -0,0 +1,6 @@ +/datum/admin_help - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Adminhelp Ticket

Vars

admins_involvedList of admin ckeys that are involved, like through responding
closed_atThe time at which the ticket was closed
full_textAll sanitized text
handlerWho is handling this admin help?
heard_by_no_adminsIf any admins were online when the ticket was initialized
idUnique ID of the ticket
initiatorSemi-misnomer, it's the person who ahelped/was bwoinked
initiator_ckeyThe ckey of the initiator
initiator_key_nameThe key name of the initiator
nameThe current name of the ticket
opened_atThe time at which the ticket was opened
opening_respondersThe list of clients currently responding to the opening ticket before it gets a response
player_interactionsList of player interactions
player_repliedHas the player replied to this ticket yet?
statclickStatclick holder for the ticket
stateThe current state of the ticket
ticket_counterStatic counter used for generating each ticket ID
ticket_interactionsThe collection of interactions with this ticket. Use AddInteraction() or, preferably, admin_ticket_log()
ticket_pingAre we added to the ticket ping subsystem in the first place
ticket_ping_stopHave we requested this ticket to stop being part of the Ticket Ping subsystem?
webhook_sentWhether this ahelp has sent a webhook or not, and what type

Procs

NewCall this on its own to create a ticket, don't manually assign current_ticket
convert_to_mentorhelpProc which converts an admin_help ticket to a mentorhelp
reply_to_admins_notificationSends a message to the player that they are replying to admins.
ticket_statusRenders the current status of the ticket into a displayable string

Var Details

admins_involved

List of admin ckeys that are involved, like through responding

closed_at

The time at which the ticket was closed

full_text

All sanitized text

handler

Who is handling this admin help?

heard_by_no_admins

If any admins were online when the ticket was initialized

id

Unique ID of the ticket

initiator

Semi-misnomer, it's the person who ahelped/was bwoinked

initiator_ckey

The ckey of the initiator

initiator_key_name

The key name of the initiator

name

The current name of the ticket

opened_at

The time at which the ticket was opened

opening_responders

The list of clients currently responding to the opening ticket before it gets a response

player_interactions

List of player interactions

player_replied

Has the player replied to this ticket yet?

statclick

Statclick holder for the ticket

state

The current state of the ticket

ticket_counter

Static counter used for generating each ticket ID

ticket_interactions

The collection of interactions with this ticket. Use AddInteraction() or, preferably, admin_ticket_log()

ticket_ping

Are we added to the ticket ping subsystem in the first place

ticket_ping_stop

Have we requested this ticket to stop being part of the Ticket Ping subsystem?

webhook_sent

Whether this ahelp has sent a webhook or not, and what type

Proc Details

New

Call this on its own to create a ticket, don't manually assign current_ticket

+

Arguments:

+

convert_to_mentorhelp

Proc which converts an admin_help ticket to a mentorhelp

reply_to_admins_notification

Sends a message to the player that they are replying to admins.

ticket_status

Renders the current status of the ticket into a displayable string

\ No newline at end of file diff --git a/datum/admin_help_tickets.html b/datum/admin_help_tickets.html new file mode 100644 index 0000000000000..9593a12896982 --- /dev/null +++ b/datum/admin_help_tickets.html @@ -0,0 +1 @@ +/datum/admin_help_tickets - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Adminhelp Ticket Manager

Vars

active_ticketsThe set of all active tickets
closed_ticketsThe set of all closed tickets
resolved_ticketsThe set of all resolved tickets

Var Details

active_tickets

The set of all active tickets

closed_tickets

The set of all closed tickets

resolved_tickets

The set of all resolved tickets

\ No newline at end of file diff --git a/datum/admin_message.html b/datum/admin_message.html new file mode 100644 index 0000000000000..d16f273ec34bd --- /dev/null +++ b/datum/admin_message.html @@ -0,0 +1 @@ +/datum/admin_message - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

admin_message

Represents a message stored in the db

Vars

admin_keyThe admin who left this message
editor_keyThe admin who last edited this message
idThe uid of this message
textThe text of this message
timestampThe time this message was first created

Var Details

admin_key

The admin who left this message

editor_key

The admin who last edited this message

id

The uid of this message

text

The text of this message

timestamp

The time this message was first created

\ No newline at end of file diff --git a/datum/admin_verb.html b/datum/admin_verb.html new file mode 100644 index 0000000000000..2c6f3b34af6d0 --- /dev/null +++ b/datum/admin_verb.html @@ -0,0 +1,3 @@ +/datum/admin_verb - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

admin_verb

This is the admin verb datum. It is used to store the verb's information and handle the verb's functionality. +All of this is setup for you, and you should not be defining this manually. +That means you reader.

Vars

categoryThe category of the verb.
descriptionThe description of the verb.
nameThe name of the verb.
permissionsThe permissions required to use the verb.
verb_pathThe path to the verb proc.
visibility_flagThe flag that determines if the verb is visible.

Procs

assign_to_clientAssigns the verb to the admin.
unassign_from_clientUnassigns the verb from the admin.

Var Details

category

The category of the verb.

description

The description of the verb.

name

The name of the verb.

permissions

The permissions required to use the verb.

verb_path

The path to the verb proc.

visibility_flag

The flag that determines if the verb is visible.

Proc Details

assign_to_client

Assigns the verb to the admin.

unassign_from_client

Unassigns the verb from the admin.

\ No newline at end of file diff --git a/datum/admins.html b/datum/admins.html new file mode 100644 index 0000000000000..3d40ce8a9ac73 --- /dev/null +++ b/datum/admins.html @@ -0,0 +1,44 @@ +/datum/admins - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

admins

Vars

admin_signatureRandomly generated signature used for security records authorization name.
blocked_by_2faWhether or not the user tried to connect, but was blocked by 2FA
bypass_2faWhether or not this user can bypass 2FA
cached_feedback_linkLink from the database pointing to the admin's feedback forum
tagged_datumsA lazylist of tagged datums, for quick reference with the View Tags verb

Procs

GamePanels
add_tagged_datumInserts the target_datum into /datum/admins/var/tagged_datums, for later reference.
can_edit_rights_flagsGet the permissions this admin is allowed to edit on other ranks
can_place_additional_admin_banChecks if the admin can place an additional admin ban.
check_2faReturns whether or not the given client has a verified 2FA connection. +The output is in the form of a list with the first index being whether or not the +check was successful, the 2nd is the ID of the associated database entry +if its a false result and if one can be found.
feedback_linkReturns the feedback forum thread for the admin holder's owner, as according to DB.
forceEventOpens up the Force Event Panel
handle_tagged_delGet ahead of the curve with deleting
intensity_credits_panelOpens up the ICES panel
manage_player_rank_in_groupHandles managing player ranks based on the name of the group that was chosen.
manage_player_ranksProc for admins to change people's "player" ranks (donator, mentor, veteran, etc.)
message_pdaOpens up the PDA Message Panel
modify_traitsAllow admin to add or remove traits of datum
notify_all_banned_playersNotifies all banned players about their ban and gives them a link to appeal from the config. If it was a server ban, it also kicks them.
one_click_antagIf anyone can figure out how to get Obsessed to work I would be very appreciative.
poll_list_panelShows a list of all current and future polls and buttons to edit or delete them or create a new poll.
poll_management_panelShow the options for creating a poll or editing its parameters along with its linked options.
poll_option_panelShow the options for creating a poll option or editing its parameters.
poll_option_parse_hrefProcesses topic data from poll option panel.
poll_parse_hrefProcesses topic data from poll management panel.
rank_flagsGet the rank flags of the admin
rank_namesGet the rank name of the admin
rebanSometimes an admin did not intend to unban a player. This proc undoes an unbanning operation by setting the unbanned_ keys in the DB back to null.
remove_tagged_datumAttempts to remove the specified datum from /datum/admins/var/tagged_datums if it exists
verify_admin_from_local_cacheReturns true if the admin's cid/ip is verified in the local cache

Var Details

admin_signature

Randomly generated signature used for security records authorization name.

blocked_by_2fa

Whether or not the user tried to connect, but was blocked by 2FA

bypass_2fa

Whether or not this user can bypass 2FA

Link from the database pointing to the admin's feedback forum

tagged_datums

A lazylist of tagged datums, for quick reference with the View Tags verb

Proc Details

Game

Panels

add_tagged_datum

Inserts the target_datum into /datum/admins/var/tagged_datums, for later reference.

+

Arguments:

+

can_edit_rights_flags

Get the permissions this admin is allowed to edit on other ranks

can_place_additional_admin_ban

Checks if the admin can place an additional admin ban.

+

Returns FALSE if the query fails to execute. +Returns FALSE and notifies the admin in chat if they are at their max number of admin bans already. +Returns TRUE if an admin can place an additional admin ban.

+

Arguments:

+

check_2fa

Returns whether or not the given client has a verified 2FA connection. +The output is in the form of a list with the first index being whether or not the +check was successful, the 2nd is the ID of the associated database entry +if its a false result and if one can be found.

Returns the feedback forum thread for the admin holder's owner, as according to DB.

forceEvent

Opens up the Force Event Panel

handle_tagged_del

Get ahead of the curve with deleting

intensity_credits_panel

Opens up the ICES panel

manage_player_rank_in_group

Handles managing player ranks based on the name of the group that was chosen.

+

Arguments:

+

manage_player_ranks

Proc for admins to change people's "player" ranks (donator, mentor, veteran, etc.)

message_pda

Opens up the PDA Message Panel

modify_traits

Allow admin to add or remove traits of datum

notify_all_banned_players

Notifies all banned players about their ban and gives them a link to appeal from the config. If it was a server ban, it also kicks them.

+

If the banned player's ckey has a linked client on the server, it notifies them of the ban details and kicks them if it was a server ban. +If there is anyone else sharing the banned player's IP or CID, it notifies them of the ban details and kicks them if it was a server ban.

+

Builds the ban cache for every client impacted by the ban.

+

Arguments:

+

one_click_antag

If anyone can figure out how to get Obsessed to work I would be very appreciative.

poll_list_panel

Shows a list of all current and future polls and buttons to edit or delete them or create a new poll.

poll_management_panel

Show the options for creating a poll or editing its parameters along with its linked options.

poll_option_panel

Show the options for creating a poll option or editing its parameters.

poll_option_parse_href

Processes topic data from poll option panel.

+

Reads through returned form data and assigns data to the option datum, creating a new one if required, before passing it to be saved. +Also does some simple error checking to ensure the option will be valid before creation.

poll_parse_href

Processes topic data from poll management panel.

+

Reads through returned form data and assigns data to the poll datum, creating a new one if required, before passing it to be saved. +Also does some simple error checking to ensure the poll will be valid before creation.

rank_flags

Get the rank flags of the admin

rank_names

Get the rank name of the admin

reban

Sometimes an admin did not intend to unban a player. This proc undoes an unbanning operation by setting the unbanned_ keys in the DB back to null.

remove_tagged_datum

Attempts to remove the specified datum from /datum/admins/var/tagged_datums if it exists

+

Arguments:

+

verify_admin_from_local_cache

Returns true if the admin's cid/ip is verified in the local cache

\ No newline at end of file diff --git a/datum/adventure.html b/datum/adventure.html new file mode 100644 index 0000000000000..0366b2ac64594 --- /dev/null +++ b/datum/adventure.html @@ -0,0 +1 @@ +/datum/adventure - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

adventure

text adventure instance, holds data about nodes/choices/etc and of current play state.

Vars

band_modifiersModifiers to band scan values
current_nodeCurrent active adventure node
deep_scan_descriptionOpional description shown after site deep scan
delayed_actionDelayed state properties. If not null, means adventure is in delayed action state and will contain list(delay_time,delay_message)
loot_categoriesLoot table ids used as reward for finishing the adventure succesfully.
nameAdventure name, this organization only, not visible to users
nodesNodes for this adventure, represent single scene.
previous_node_idLast other node than this one. Used by GO_BACK_NODE
qualitiesAssoc list of quality name = value
required_site_traitsRequired site traits for the adventure to appear
starting_nodeNode the adventure will start at
starting_qualitiesList of starting quality values, these will be set before first node is encountered.
trigger_loop_safetyKeeps track firing of triggers until stop state to prevent loops
triggersTriggers for this adventure, checked after quality changes to cause instantenous results

Procs

apply_adventure_effectApplies changes encoded in effect data and processes triggers, returns TRUE if the change forced node change.
check_requirement_groupRecursively validates group requirements.
check_requirementsChecks if current qualities satisfy passed in requirements
end_adventureFinish adventure
handle_special_nodesHandles special node ID's
process_adventure_valueExtracts raw value from special value objects
validateBasic sanity checks to ensure broken adventures are not used.

Var Details

band_modifiers

Modifiers to band scan values

current_node

Current active adventure node

deep_scan_description

Opional description shown after site deep scan

delayed_action

Delayed state properties. If not null, means adventure is in delayed action state and will contain list(delay_time,delay_message)

loot_categories

Loot table ids used as reward for finishing the adventure succesfully.

name

Adventure name, this organization only, not visible to users

nodes

Nodes for this adventure, represent single scene.

previous_node_id

Last other node than this one. Used by GO_BACK_NODE

qualities

Assoc list of quality name = value

required_site_traits

Required site traits for the adventure to appear

starting_node

Node the adventure will start at

starting_qualities

List of starting quality values, these will be set before first node is encountered.

trigger_loop_safety

Keeps track firing of triggers until stop state to prevent loops

triggers

Triggers for this adventure, checked after quality changes to cause instantenous results

Proc Details

apply_adventure_effect

Applies changes encoded in effect data and processes triggers, returns TRUE if the change forced node change.

check_requirement_group

Recursively validates group requirements.

check_requirements

Checks if current qualities satisfy passed in requirements

end_adventure

Finish adventure

handle_special_nodes

Handles special node ID's

process_adventure_value

Extracts raw value from special value objects

validate

Basic sanity checks to ensure broken adventures are not used.

\ No newline at end of file diff --git a/datum/adventure_browser.html b/datum/adventure_browser.html new file mode 100644 index 0000000000000..56b7ad633ff65 --- /dev/null +++ b/datum/adventure_browser.html @@ -0,0 +1 @@ +/datum/adventure_browser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

adventure_browser

Admin adventure manager

Procs

resolve_adventureHandles finishing adventure

Proc Details

resolve_adventure

Handles finishing adventure

\ No newline at end of file diff --git a/datum/adventure_db_entry.html b/datum/adventure_db_entry.html new file mode 100644 index 0000000000000..0cf2fb7ad605a --- /dev/null +++ b/datum/adventure_db_entry.html @@ -0,0 +1 @@ +/datum/adventure_db_entry - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

adventure_db_entry

Vars

approvedUnapproved adventures won't be used for exploration sites.
filenamefilename of the adventure
nameadventure name
placedWas the adventure used for exploration site this round.
raw_jsonactual adventure json string
required_site_traitsrequired site traits to use this adventure
uploaderwhoever made the json
versionjson version

Procs

create_adventureCreates new adventure instance
extract_metadataExtracts fields that are used by adventure browser / generation before instantiating
try_loading_adventureParses adventure JSON and returns /datum/adventure instance on success
valid_for_useCheck if the adventure usable for given exploration site traits

Var Details

approved

Unapproved adventures won't be used for exploration sites.

filename

filename of the adventure

name

adventure name

placed

Was the adventure used for exploration site this round.

raw_json

actual adventure json string

required_site_traits

required site traits to use this adventure

uploader

whoever made the json

version

json version

Proc Details

create_adventure

Creates new adventure instance

extract_metadata

Extracts fields that are used by adventure browser / generation before instantiating

try_loading_adventure

Parses adventure JSON and returns /datum/adventure instance on success

valid_for_use

Check if the adventure usable for given exploration site traits

\ No newline at end of file diff --git a/datum/adventure_loot_generator.html b/datum/adventure_loot_generator.html new file mode 100644 index 0000000000000..e84182fc3dfbe --- /dev/null +++ b/datum/adventure_loot_generator.html @@ -0,0 +1 @@ +/datum/adventure_loot_generator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

adventure_loot_generator

Adventure loot category identified by ID

Procs

transfer_lootHelper to transfer loot while respecting cargo space

Proc Details

transfer_loot

Helper to transfer loot while respecting cargo space

\ No newline at end of file diff --git a/datum/adventure_node.html b/datum/adventure_node.html new file mode 100644 index 0000000000000..2ccbe80da362b --- /dev/null +++ b/datum/adventure_node.html @@ -0,0 +1 @@ +/datum/adventure_node - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

adventure_node

Vars

choicesAll possible choices from this node, associative list of choice_id -> choice_data
delayPauses adventure for this long after the choice
delay_messageThis will show when the delay is happening.
descriptionThe actual displayed text
idUnique identifier for this node
image_namePreset image name, exclusive with raw_image
on_enter_effectsEffects fired when navigating to this node.
on_exit_effectsEffects fired when leaving this node.
raw_imageImage in base64 form. Exclusive with image_name

Var Details

choices

All possible choices from this node, associative list of choice_id -> choice_data

delay

Pauses adventure for this long after the choice

delay_message

This will show when the delay is happening.

description

The actual displayed text

id

Unique identifier for this node

image_name

Preset image name, exclusive with raw_image

on_enter_effects

Effects fired when navigating to this node.

on_exit_effects

Effects fired when leaving this node.

raw_image

Image in base64 form. Exclusive with image_name

\ No newline at end of file diff --git a/datum/ai_behavior.html b/datum/ai_behavior.html new file mode 100644 index 0000000000000..d070b7aaa9c05 --- /dev/null +++ b/datum/ai_behavior.html @@ -0,0 +1,9 @@ +/datum/ai_behavior - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ai_behavior

Abstract class for an action an AI can take, can range from movement to grabbing a nearby weapon.

Vars

action_cooldownCooldown between actions performances, defaults to the value of CLICK_CD_MELEE because that seemed like a nice standard for the speed of AI behavior +Do not read directly or mutate, instead use get_cooldown()
behavior_flagsFlags for extra behavior
required_distanceWhat distance you need to be from the target to perform the action

Procs

clear_movement_targetClear the controller's movement target only if it was us who last set it
finish_actionCalled when the action is finished. This needs the same args as perform besides the default ones
get_cooldownReturns the delay to use for this behavior in the moment +Override to return a conditional delay
performCalled by the AI controller when this action is performed +Returns a set of flags defined in code/__DEFINES/ai/ai.dm
set_movement_targetHelper proc to ensure consistency in setting the source of the movement target
setupCalled by the ai controller when first being added. Additional arguments depend on the behavior type. +Return FALSE to cancel

Var Details

action_cooldown

Cooldown between actions performances, defaults to the value of CLICK_CD_MELEE because that seemed like a nice standard for the speed of AI behavior +Do not read directly or mutate, instead use get_cooldown()

behavior_flags

Flags for extra behavior

required_distance

What distance you need to be from the target to perform the action

Proc Details

clear_movement_target

Clear the controller's movement target only if it was us who last set it

finish_action

Called when the action is finished. This needs the same args as perform besides the default ones

get_cooldown

Returns the delay to use for this behavior in the moment +Override to return a conditional delay

perform

Called by the AI controller when this action is performed +Returns a set of flags defined in code/__DEFINES/ai/ai.dm

set_movement_target

Helper proc to ensure consistency in setting the source of the movement target

setup

Called by the ai controller when first being added. Additional arguments depend on the behavior type. +Return FALSE to cancel

\ No newline at end of file diff --git a/datum/ai_behavior/attack.html b/datum/ai_behavior/attack.html new file mode 100644 index 0000000000000..80d50b740c943 --- /dev/null +++ b/datum/ai_behavior/attack.html @@ -0,0 +1 @@ +/datum/ai_behavior/attack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

attack

This behavior involves attacking a target.

Procs

attackA proc representing when the mob is pushed to actually attack the target. Again, subtypes can be used to represent different attacks from different animals, or it can be some other generic behavior

Proc Details

attack

A proc representing when the mob is pushed to actually attack the target. Again, subtypes can be used to represent different attacks from different animals, or it can be some other generic behavior

\ No newline at end of file diff --git a/datum/ai_behavior/attack_obstructions.html b/datum/ai_behavior/attack_obstructions.html new file mode 100644 index 0000000000000..dd33b9c73bdc2 --- /dev/null +++ b/datum/ai_behavior/attack_obstructions.html @@ -0,0 +1 @@ +/datum/ai_behavior/attack_obstructions - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

attack_obstructions

Something is in our way, get it outta here

Vars

can_attack_dense_objectsFor if you want your mob to be able to attack dense objects
can_attack_turfsIf we should attack walls, be prepared for complaints about breaches

Var Details

can_attack_dense_objects

For if you want your mob to be able to attack dense objects

can_attack_turfs

If we should attack walls, be prepared for complaints about breaches

\ No newline at end of file diff --git a/datum/ai_behavior/basic_melee_attack.html b/datum/ai_behavior/basic_melee_attack.html new file mode 100644 index 0000000000000..240626c188fe3 --- /dev/null +++ b/datum/ai_behavior/basic_melee_attack.html @@ -0,0 +1 @@ +/datum/ai_behavior/basic_melee_attack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

basic_melee_attack

Vars

terminate_after_actiondo we finish this action after hitting once?

Var Details

terminate_after_action

do we finish this action after hitting once?

\ No newline at end of file diff --git a/datum/ai_behavior/basic_melee_attack/dog.html b/datum/ai_behavior/basic_melee_attack/dog.html new file mode 100644 index 0000000000000..222fea64f3112 --- /dev/null +++ b/datum/ai_behavior/basic_melee_attack/dog.html @@ -0,0 +1,3 @@ +/datum/ai_behavior/basic_melee_attack/dog - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

dog

Pursue the target, growl if we're close, and bite if we're adjacent +Dogs are actually not very aggressive and won't attack unless you approach them +Adds a floor to the melee damage of the dog, as most pet dogs don't actually have any melee strength

Procs

growl_atLet them know we mean business
paw_harmlesslySwat at someone we don't like but won't hurt

Proc Details

growl_at

Let them know we mean business

paw_harmlessly

Swat at someone we don't like but won't hurt

\ No newline at end of file diff --git a/datum/ai_behavior/basic_ranged_attack.html b/datum/ai_behavior/basic_ranged_attack.html new file mode 100644 index 0000000000000..ba2adfe0b6caf --- /dev/null +++ b/datum/ai_behavior/basic_ranged_attack.html @@ -0,0 +1 @@ +/datum/ai_behavior/basic_ranged_attack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

basic_ranged_attack

Vars

avoid_friendly_firedo we care about avoiding friendly fire?
chase_rangerange we will try chasing the target before giving up

Var Details

avoid_friendly_fire

do we care about avoiding friendly fire?

chase_range

range we will try chasing the target before giving up

\ No newline at end of file diff --git a/datum/ai_behavior/basic_ranged_attack/minebot.html b/datum/ai_behavior/basic_ranged_attack/minebot.html new file mode 100644 index 0000000000000..d2dd6624a21f9 --- /dev/null +++ b/datum/ai_behavior/basic_ranged_attack/minebot.html @@ -0,0 +1 @@ +/datum/ai_behavior/basic_ranged_attack/minebot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

minebot

Vars

minimum_distanceif our target is closer than this distance, finish action

Var Details

minimum_distance

if our target is closer than this distance, finish action

\ No newline at end of file diff --git a/datum/ai_behavior/battle_screech.html b/datum/ai_behavior/battle_screech.html new file mode 100644 index 0000000000000..688fa3130325f --- /dev/null +++ b/datum/ai_behavior/battle_screech.html @@ -0,0 +1 @@ +/datum/ai_behavior/battle_screech - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

battle_screech

Vars

screechesList of possible screeches the behavior has

Var Details

screeches

List of possible screeches the behavior has

\ No newline at end of file diff --git a/datum/ai_behavior/call_reinforcements.html b/datum/ai_behavior/call_reinforcements.html new file mode 100644 index 0000000000000..413b50178e348 --- /dev/null +++ b/datum/ai_behavior/call_reinforcements.html @@ -0,0 +1 @@ +/datum/ai_behavior/call_reinforcements - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

call_reinforcements

Call out to all mobs in the specified range for help

Vars

reinforcements_rangeRange to call reinforcements from

Var Details

reinforcements_range

Range to call reinforcements from

\ No newline at end of file diff --git a/datum/ai_behavior/capricious_retaliate.html b/datum/ai_behavior/capricious_retaliate.html new file mode 100644 index 0000000000000..1278542bfe357 --- /dev/null +++ b/datum/ai_behavior/capricious_retaliate.html @@ -0,0 +1 @@ +/datum/ai_behavior/capricious_retaliate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

capricious_retaliate

Add or remove people to our retaliation shitlist just on an arbitrary whim

Procs

failed_targetingCalled if we try but fail to target something

Proc Details

failed_targeting

Called if we try but fail to target something

\ No newline at end of file diff --git a/datum/ai_behavior/crawl_through_vents.html b/datum/ai_behavior/crawl_through_vents.html new file mode 100644 index 0000000000000..90547f4cd0b61 --- /dev/null +++ b/datum/ai_behavior/crawl_through_vents.html @@ -0,0 +1,6 @@ +/datum/ai_behavior/crawl_through_vents - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

crawl_through_vents

We hop into the vents through a vent outlet, and then crawl around a bit. Jolly good times. +This also assumes that we are on the turf that the vent outlet is on. If it isn't, shit. +Warning: this was really snowflake code lifted from an obscure feature that likely has not been touched for over five years years. +Something that isn't implemented is the ability to actually crawl through vents ourselves because I think that's just a waste of time for the same effect (instead of psuedo-teleportation, do REAL forceMoving) +If you are seriously considering using this component, it would be a great idea to extend this proc to be more versatile/less overpowered - the mobs that currently implement this benefit the most +since they are weak as shit with only five health. Up to you though, don't take what's written here as gospel.

Procs

calculate_exit_ventFigure out an exit vent that we should head towards. If we don't have one, default to the entry vent. If they're all kaput, we die.
delayed_suicide_pillWraps a delayed defeat, so we gotta handle the return value properly ya feel?
exit_the_ventsWe've had enough horsing around in the vents, it's time to get out.
is_vent_validIncredibly stripped down version of the overarching can_enter_vent proc on `/mob, just meant for rapid rechecking of a vent. Will be TRUE if not blocked, FALSE otherwise.
suicide_pillAw fuck, we may have been bested somehow. Regardless of what we do, we can't exit through a vent! Let's end our misery and prevent useless endless calculations.

Proc Details

calculate_exit_vent

Figure out an exit vent that we should head towards. If we don't have one, default to the entry vent. If they're all kaput, we die.

delayed_suicide_pill

Wraps a delayed defeat, so we gotta handle the return value properly ya feel?

exit_the_vents

We've had enough horsing around in the vents, it's time to get out.

is_vent_valid

Incredibly stripped down version of the overarching can_enter_vent proc on `/mob, just meant for rapid rechecking of a vent. Will be TRUE if not blocked, FALSE otherwise.

suicide_pill

Aw fuck, we may have been bested somehow. Regardless of what we do, we can't exit through a vent! Let's end our misery and prevent useless endless calculations.

\ No newline at end of file diff --git a/datum/ai_behavior/deliver_fetched_item.html b/datum/ai_behavior/deliver_fetched_item.html new file mode 100644 index 0000000000000..83494505f68ec --- /dev/null +++ b/datum/ai_behavior/deliver_fetched_item.html @@ -0,0 +1,3 @@ +/datum/ai_behavior/deliver_fetched_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

deliver_fetched_item

The second half of fetching, deliver the item to a target.

Procs

deliver_itemActually deliver the fetched item to the target, if we still have it +Returns TRUE if we succeeded, FALSE if we failed

Proc Details

deliver_item

Actually deliver the fetched item to the target, if we still have it +Returns TRUE if we succeeded, FALSE if we failed

\ No newline at end of file diff --git a/datum/ai_behavior/eat_fetched_snack.html b/datum/ai_behavior/eat_fetched_snack.html new file mode 100644 index 0000000000000..5cb261cf497ce --- /dev/null +++ b/datum/ai_behavior/eat_fetched_snack.html @@ -0,0 +1,3 @@ +/datum/ai_behavior/eat_fetched_snack - /tg/ Station 13
/tg/ Station 13 - Modules - Types

eat_fetched_snack

The alternate second half of fetching, attack the item if we can eat it. +Or make pleading eyes at someone who has picked it up.

+

Unfortunately this doesn't work because food can't currently be eaten by mobs.

\ No newline at end of file diff --git a/datum/ai_behavior/find_and_set.html b/datum/ai_behavior/find_and_set.html new file mode 100644 index 0000000000000..380c7bbf56104 --- /dev/null +++ b/datum/ai_behavior/find_and_set.html @@ -0,0 +1,6 @@ +/datum/ai_behavior/find_and_set - /tg/ Station 13
/tg/ Station 13 - Modules - Types

find_and_set

*find and set

+
\ No newline at end of file diff --git a/datum/ai_behavior/find_mom.html b/datum/ai_behavior/find_mom.html new file mode 100644 index 0000000000000..f070a22dcfeb2 --- /dev/null +++ b/datum/ai_behavior/find_mom.html @@ -0,0 +1 @@ +/datum/ai_behavior/find_mom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

find_mom

Vars

look_rangerange to look for the mom

Var Details

look_range

range to look for the mom

\ No newline at end of file diff --git a/datum/ai_behavior/find_partner.html b/datum/ai_behavior/find_partner.html new file mode 100644 index 0000000000000..31de69820f825 --- /dev/null +++ b/datum/ai_behavior/find_partner.html @@ -0,0 +1 @@ +/datum/ai_behavior/find_partner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

find_partner

Find a compatible, living partner, if we're also alone.

Vars

max_childrenMaximum number of children
rangeRange to look.

Var Details

max_children

Maximum number of children

range

Range to look.

\ No newline at end of file diff --git a/datum/ai_behavior/find_potential_targets.html b/datum/ai_behavior/find_potential_targets.html new file mode 100644 index 0000000000000..5818c454dfd39 --- /dev/null +++ b/datum/ai_behavior/find_potential_targets.html @@ -0,0 +1 @@ +/datum/ai_behavior/find_potential_targets - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

find_potential_targets

Vars

aggro_range_keyBlackboard key for aggro range, uses vision range if not specified
vision_rangeHow far can we see stuff?

Procs

pick_final_targetReturns the desired final target from the filtered list of targets

Var Details

aggro_range_key

Blackboard key for aggro range, uses vision range if not specified

vision_range

How far can we see stuff?

Proc Details

pick_final_target

Returns the desired final target from the filtered list of targets

\ No newline at end of file diff --git a/datum/ai_behavior/find_unwebbed_turf.html b/datum/ai_behavior/find_unwebbed_turf.html new file mode 100644 index 0000000000000..fe4bbd516248f --- /dev/null +++ b/datum/ai_behavior/find_unwebbed_turf.html @@ -0,0 +1 @@ +/datum/ai_behavior/find_unwebbed_turf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

find_unwebbed_turf

Find an unwebbed nearby turf and store it

Vars

scan_rangeHow far do we look for unwebbed turfs?
target_keyWhere do we store the target data

Var Details

scan_range

How far do we look for unwebbed turfs?

target_key

Where do we store the target data

\ No newline at end of file diff --git a/datum/ai_behavior/forget_failed_fetches.html b/datum/ai_behavior/forget_failed_fetches.html new file mode 100644 index 0000000000000..d3ef222a7c574 --- /dev/null +++ b/datum/ai_behavior/forget_failed_fetches.html @@ -0,0 +1 @@ +/datum/ai_behavior/forget_failed_fetches - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

forget_failed_fetches

Clear our failed fetch list every so often

Vars

cooldown_durationHow long to wait between resetting the list
reset_ignore_cooldownTime until we should forget things we failed to pick up

Var Details

cooldown_duration

How long to wait between resetting the list

reset_ignore_cooldown

Time until we should forget things we failed to pick up

\ No newline at end of file diff --git a/datum/ai_behavior/goliath_find_diggable_turf.html b/datum/ai_behavior/goliath_find_diggable_turf.html new file mode 100644 index 0000000000000..0bb7e3c582cb6 --- /dev/null +++ b/datum/ai_behavior/goliath_find_diggable_turf.html @@ -0,0 +1 @@ +/datum/ai_behavior/goliath_find_diggable_turf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

goliath_find_diggable_turf

Vars

scan_rangeHow far do we look for turfs?
target_keyWhere do we store the target data

Procs

is_valid_turfReturn true if this is a turf we can dig

Var Details

scan_range

How far do we look for turfs?

target_key

Where do we store the target data

Proc Details

is_valid_turf

Return true if this is a turf we can dig

\ No newline at end of file diff --git a/datum/ai_behavior/hoard_fingers.html b/datum/ai_behavior/hoard_fingers.html new file mode 100644 index 0000000000000..f8f723a9e347a --- /dev/null +++ b/datum/ai_behavior/hoard_fingers.html @@ -0,0 +1 @@ +/datum/ai_behavior/hoard_fingers - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hoard_fingers

If we are dragging an arm then run away until we are out of range and feast

Vars

patience_keyWe store a counter at this key we increment on every movement until we are overwhelmed with hunger

Procs

eat_fingersFinally consume those delicious digits
target_step_awayFind the next step to take away from the current target

Var Details

patience_key

We store a counter at this key we increment on every movement until we are overwhelmed with hunger

Proc Details

eat_fingers

Finally consume those delicious digits

target_step_away

Find the next step to take away from the current target

\ No newline at end of file diff --git a/datum/ai_behavior/hunt_target.html b/datum/ai_behavior/hunt_target.html new file mode 100644 index 0000000000000..2ab2273fed057 --- /dev/null +++ b/datum/ai_behavior/hunt_target.html @@ -0,0 +1 @@ +/datum/ai_behavior/hunt_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hunt_target

Hunts down a specific atom type.

Vars

always_reset_targetDo we reset the target after attacking something, so we can check for status changes.
hunt_cooldownHow long do we have to wait after a successful hunt?

Var Details

always_reset_target

Do we reset the target after attacking something, so we can check for status changes.

hunt_cooldown

How long do we have to wait after a successful hunt?

\ No newline at end of file diff --git a/datum/ai_behavior/hunt_target/interact_with_target.html b/datum/ai_behavior/hunt_target/interact_with_target.html new file mode 100644 index 0000000000000..d07ba0416b3c3 --- /dev/null +++ b/datum/ai_behavior/hunt_target/interact_with_target.html @@ -0,0 +1 @@ +/datum/ai_behavior/hunt_target/interact_with_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

interact_with_target

Vars

behavior_combat_modewhat combat mode should we use to interact with

Var Details

behavior_combat_mode

what combat mode should we use to interact with

\ No newline at end of file diff --git a/datum/ai_behavior/hunt_target/interact_with_target/material_stand.html b/datum/ai_behavior/hunt_target/interact_with_target/material_stand.html new file mode 100644 index 0000000000000..dfbee92dc9040 --- /dev/null +++ b/datum/ai_behavior/hunt_target/interact_with_target/material_stand.html @@ -0,0 +1 @@ +/datum/ai_behavior/hunt_target/interact_with_target/material_stand - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

material_stand

Procs

setuptry to face the counter when depositing ores

Proc Details

setup

try to face the counter when depositing ores

\ No newline at end of file diff --git a/datum/ai_behavior/hunt_target/use_ability_on_target.html b/datum/ai_behavior/hunt_target/use_ability_on_target.html new file mode 100644 index 0000000000000..eddbc98aa1c05 --- /dev/null +++ b/datum/ai_behavior/hunt_target/use_ability_on_target.html @@ -0,0 +1 @@ +/datum/ai_behavior/hunt_target/use_ability_on_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

use_ability_on_target

Vars

ability_keythe ability we will use

Var Details

ability_key

the ability we will use

\ No newline at end of file diff --git a/datum/ai_behavior/item_move_close_and_attack.html b/datum/ai_behavior/item_move_close_and_attack.html new file mode 100644 index 0000000000000..db542d2062a54 --- /dev/null +++ b/datum/ai_behavior/item_move_close_and_attack.html @@ -0,0 +1 @@ +/datum/ai_behavior/item_move_close_and_attack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

item_move_close_and_attack

This behavior is for obj/items, it is used to move closer to a target and throw themselves towards them.

Vars

attack_soundSound to use
max_attemptsMax attemps to make

Var Details

attack_sound

Sound to use

max_attempts

Max attemps to make

\ No newline at end of file diff --git a/datum/ai_behavior/make_carp_rift.html b/datum/ai_behavior/make_carp_rift.html new file mode 100644 index 0000000000000..85250b0570b33 --- /dev/null +++ b/datum/ai_behavior/make_carp_rift.html @@ -0,0 +1 @@ +/datum/ai_behavior/make_carp_rift - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

Make carp rift

Make a carp rift somewhere

Procs

find_target_turfReturn the turf to teleport to, implement this or the behaviour won't do anything
validate_targetReturn true if your target is valid for the action

Proc Details

find_target_turf

Return the turf to teleport to, implement this or the behaviour won't do anything

validate_target

Return true if your target is valid for the action

\ No newline at end of file diff --git a/datum/ai_behavior/make_carp_rift/towards.html b/datum/ai_behavior/make_carp_rift/towards.html new file mode 100644 index 0000000000000..2e0fd690478dc --- /dev/null +++ b/datum/ai_behavior/make_carp_rift/towards.html @@ -0,0 +1 @@ +/datum/ai_behavior/make_carp_rift/towards - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Make carp rift forwards

Make a rift bringing you closer to your target

Vars

teleport_buffer_distanceDrop rift at least this many tiles away from target
teleport_if_blockedTeleport if the turf in front of you is blocked
teleport_if_farTeleport simply if you are far away

Var Details

teleport_buffer_distance

Drop rift at least this many tiles away from target

teleport_if_blocked

Teleport if the turf in front of you is blocked

teleport_if_far

Teleport simply if you are far away

\ No newline at end of file diff --git a/datum/ai_behavior/monkey_attack_mob.html b/datum/ai_behavior/monkey_attack_mob.html new file mode 100644 index 0000000000000..bfdbebe897be8 --- /dev/null +++ b/datum/ai_behavior/monkey_attack_mob.html @@ -0,0 +1 @@ +/datum/ai_behavior/monkey_attack_mob - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

monkey_attack_mob

Procs

monkey_attackattack using a held weapon otherwise bite the enemy, then if we are angry there is a chance we might calm down a little

Proc Details

monkey_attack

attack using a held weapon otherwise bite the enemy, then if we are angry there is a chance we might calm down a little

\ No newline at end of file diff --git a/datum/ai_behavior/monkey_equip.html b/datum/ai_behavior/monkey_equip.html new file mode 100644 index 0000000000000..eac0267bcb19b --- /dev/null +++ b/datum/ai_behavior/monkey_equip.html @@ -0,0 +1,3 @@ +/datum/ai_behavior/monkey_equip - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

monkey_equip

Procs

equip_itemEquips an item on the monkey +Returns TRUE if it works out, FALSE otherwise

Proc Details

equip_item

Equips an item on the monkey +Returns TRUE if it works out, FALSE otherwise

\ No newline at end of file diff --git a/datum/ai_behavior/move_to_cardinal.html b/datum/ai_behavior/move_to_cardinal.html new file mode 100644 index 0000000000000..5e99b4bd1a3f9 --- /dev/null +++ b/datum/ai_behavior/move_to_cardinal.html @@ -0,0 +1 @@ +/datum/ai_behavior/move_to_cardinal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

move_to_cardinal

Try to line up with a cardinal direction of your target

Vars

maximum_distanceHow far away is too far?
minimum_distanceHow close to our target is too close?

Procs

target_nearest_cardinalSet our movement target to the closest cardinal space to our target

Var Details

maximum_distance

How far away is too far?

minimum_distance

How close to our target is too close?

Proc Details

target_nearest_cardinal

Set our movement target to the closest cardinal space to our target

\ No newline at end of file diff --git a/datum/ai_behavior/play_with_mouse.html b/datum/ai_behavior/play_with_mouse.html new file mode 100644 index 0000000000000..23a90ce21e520 --- /dev/null +++ b/datum/ai_behavior/play_with_mouse.html @@ -0,0 +1 @@ +/datum/ai_behavior/play_with_mouse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

play_with_mouse

Vars

consume_chancechance we hunt the mouse!

Var Details

consume_chance

chance we hunt the mouse!

\ No newline at end of file diff --git a/datum/ai_behavior/relay_message.html b/datum/ai_behavior/relay_message.html new file mode 100644 index 0000000000000..12288f2b4ea11 --- /dev/null +++ b/datum/ai_behavior/relay_message.html @@ -0,0 +1 @@ +/datum/ai_behavior/relay_message - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

relay_message

behavior that allow us to go communicate with other hivebots

Vars

length_of_messagelength of the message we will relay

Var Details

length_of_message

length of the message we will relay

\ No newline at end of file diff --git a/datum/ai_behavior/return_home.html b/datum/ai_behavior/return_home.html new file mode 100644 index 0000000000000..d4298cbaafb68 --- /dev/null +++ b/datum/ai_behavior/return_home.html @@ -0,0 +1 @@ +/datum/ai_behavior/return_home - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

return_home

Vars

maximum_timemaximum time till next rest
minimum_timeminimum time till next rest

Var Details

maximum_time

maximum time till next rest

minimum_time

minimum time till next rest

\ No newline at end of file diff --git a/datum/ai_behavior/run_away_from_target.html b/datum/ai_behavior/run_away_from_target.html new file mode 100644 index 0000000000000..c55e92f1c64ee --- /dev/null +++ b/datum/ai_behavior/run_away_from_target.html @@ -0,0 +1 @@ +/datum/ai_behavior/run_away_from_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

run_away_from_target

Move to a position further away from your current target

Vars

clear_failed_targetsClear target if we finish the action unsuccessfully
run_distanceHow far do we try to run? Further makes for smoother running, but potentially weirder pathfinding

Var Details

clear_failed_targets

Clear target if we finish the action unsuccessfully

run_distance

How far do we try to run? Further makes for smoother running, but potentially weirder pathfinding

\ No newline at end of file diff --git a/datum/ai_behavior/sleep_after_targetless_time.html b/datum/ai_behavior/sleep_after_targetless_time.html new file mode 100644 index 0000000000000..2e8a8e23a783e --- /dev/null +++ b/datum/ai_behavior/sleep_after_targetless_time.html @@ -0,0 +1 @@ +/datum/ai_behavior/sleep_after_targetless_time - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sleep_after_targetless_time

Disables AI after a certain amount of time spent with no target, you will have to enable the AI again somewhere else

Vars

time_to_waitTurn off AI if we spend this many seconds without a target, don't use the macro because seconds_per_tick is already in seconds

Procs

enter_sleepDisables AI, override to do additional things or something else

Var Details

time_to_wait

Turn off AI if we spend this many seconds without a target, don't use the macro because seconds_per_tick is already in seconds

Proc Details

enter_sleep

Disables AI, override to do additional things or something else

\ No newline at end of file diff --git a/datum/ai_behavior/step_towards_turf.html b/datum/ai_behavior/step_towards_turf.html new file mode 100644 index 0000000000000..b0c9fb9f4fb33 --- /dev/null +++ b/datum/ai_behavior/step_towards_turf.html @@ -0,0 +1,6 @@ +/datum/ai_behavior/step_towards_turf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Step towards turf

Moves a short distance towards a location repeatedly until you arrive at the destination. +You'd use this over travel_towards if you're travelling a long distance over a long time, because the AI controller has a maximum range.

Vars

step_distanceHow far ahead do we plot movement per action? Further means longer until we return to the decision tree, fewer means jerkier movement +This can still result in long moves because this is "a tile x tiles away" not "only move x tiles", you might path around some walls

Procs

find_destination_turfGet a turf to aim towards if we don't already have one, the default behaviour is actually to not do this but we want to extend it +Gets passed all of the arguments from setup
plot_movementFigure out where we're going to move to, which isn't all the way to the destination in one go

Var Details

step_distance

How far ahead do we plot movement per action? Further means longer until we return to the decision tree, fewer means jerkier movement +This can still result in long moves because this is "a tile x tiles away" not "only move x tiles", you might path around some walls

Proc Details

find_destination_turf

Get a turf to aim towards if we don't already have one, the default behaviour is actually to not do this but we want to extend it +Gets passed all of the arguments from setup

plot_movement

Figure out where we're going to move to, which isn't all the way to the destination in one go

\ No newline at end of file diff --git a/datum/ai_behavior/swirl_around_target.html b/datum/ai_behavior/swirl_around_target.html new file mode 100644 index 0000000000000..07708fe763867 --- /dev/null +++ b/datum/ai_behavior/swirl_around_target.html @@ -0,0 +1 @@ +/datum/ai_behavior/swirl_around_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

swirl_around_target

Vars

swirl_chancechance to swirl

Var Details

swirl_chance

chance to swirl

\ No newline at end of file diff --git a/datum/ai_behavior/target_from_retaliate_list.html b/datum/ai_behavior/target_from_retaliate_list.html new file mode 100644 index 0000000000000..10fc03ec4ecfd --- /dev/null +++ b/datum/ai_behavior/target_from_retaliate_list.html @@ -0,0 +1,2 @@ +/datum/ai_behavior/target_from_retaliate_list - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

target_from_retaliate_list

Picks a target from a provided list of atoms who have been pissing you off +You will probably need /datum/element/ai_retaliate to take advantage of this unless you're populating the blackboard yourself

Vars

vision_rangeHow far can we see stuff?

Procs

pick_final_targetReturns the desired final target from the filtered list of enemies

Var Details

vision_range

How far can we see stuff?

Proc Details

pick_final_target

Returns the desired final target from the filtered list of enemies

\ No newline at end of file diff --git a/datum/ai_behavior/targeted_mob_ability/brimbeam.html b/datum/ai_behavior/targeted_mob_ability/brimbeam.html new file mode 100644 index 0000000000000..b6bd119ccce32 --- /dev/null +++ b/datum/ai_behavior/targeted_mob_ability/brimbeam.html @@ -0,0 +1 @@ +/datum/ai_behavior/targeted_mob_ability/brimbeam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

brimbeam

Vars

max_target_distanceDon't shoot if too far away

Var Details

max_target_distance

Don't shoot if too far away

\ No newline at end of file diff --git a/datum/ai_behavior/targeted_mob_ability/ice_whelp.html b/datum/ai_behavior/targeted_mob_ability/ice_whelp.html new file mode 100644 index 0000000000000..1be6f86a3cb72 --- /dev/null +++ b/datum/ai_behavior/targeted_mob_ability/ice_whelp.html @@ -0,0 +1 @@ +/datum/ai_behavior/targeted_mob_ability/ice_whelp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ice_whelp

Vars

enraged_keykey that stores how enraged we are
secondary_ability_keykey that stores the ability we will use instead if we are fully enraged

Var Details

enraged_key

key that stores how enraged we are

secondary_ability_key

key that stores the ability we will use instead if we are fully enraged

\ No newline at end of file diff --git a/datum/ai_behavior/territorial_struggle.html b/datum/ai_behavior/territorial_struggle.html new file mode 100644 index 0000000000000..1969c6b2acc6b --- /dev/null +++ b/datum/ai_behavior/territorial_struggle.html @@ -0,0 +1 @@ +/datum/ai_behavior/territorial_struggle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

territorial_struggle

Vars

end_battle_chancechance the battle ends!

Var Details

end_battle_chance

chance the battle ends!

\ No newline at end of file diff --git a/datum/ai_behavior/travel_towards.html b/datum/ai_behavior/travel_towards.html new file mode 100644 index 0000000000000..5ecfd0127f946 --- /dev/null +++ b/datum/ai_behavior/travel_towards.html @@ -0,0 +1,2 @@ +/datum/ai_behavior/travel_towards - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Travel Towards

Moves towards the atom in the passed blackboard key. +Planning continues during this action so it can be interrupted by higher priority actions.

Vars

clear_targetIf true we will get rid of our target on completion
new_movement_typeshould we use a different movement type?

Var Details

clear_target

If true we will get rid of our target on completion

new_movement_type

should we use a different movement type?

\ No newline at end of file diff --git a/datum/ai_behavior/vendor_crush.html b/datum/ai_behavior/vendor_crush.html new file mode 100644 index 0000000000000..163c2d5652efc --- /dev/null +++ b/datum/ai_behavior/vendor_crush.html @@ -0,0 +1 @@ +/datum/ai_behavior/vendor_crush - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vendor_crush

Vars

time_to_tiltTime to telegraph and tilt over
untilt_cooldownTime before machine can untilt itself after tilting

Var Details

time_to_tilt

Time to telegraph and tilt over

untilt_cooldown

Time before machine can untilt itself after tilting

\ No newline at end of file diff --git a/datum/ai_behavior/vendor_rise_up.html b/datum/ai_behavior/vendor_rise_up.html new file mode 100644 index 0000000000000..4c58429863d8a --- /dev/null +++ b/datum/ai_behavior/vendor_rise_up.html @@ -0,0 +1 @@ +/datum/ai_behavior/vendor_rise_up - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vendor_rise_up

Vars

succes_tilt_cooldownTime before machine can tilt again after untilting if last hit was a success

Var Details

succes_tilt_cooldown

Time before machine can tilt again after untilting if last hit was a success

\ No newline at end of file diff --git a/datum/ai_behavior/wander.html b/datum/ai_behavior/wander.html new file mode 100644 index 0000000000000..9b8b0939f3ebd --- /dev/null +++ b/datum/ai_behavior/wander.html @@ -0,0 +1 @@ +/datum/ai_behavior/wander - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wander

Vars

wander_distancedistance we will wander away from the village

Var Details

wander_distance

distance we will wander away from the village

\ No newline at end of file diff --git a/datum/ai_controller.html b/datum/ai_controller.html new file mode 100644 index 0000000000000..505b6067c1ac3 --- /dev/null +++ b/datum/ai_controller.html @@ -0,0 +1,83 @@ +/datum/ai_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ai_controller

Vars

able_to_planare we even able to plan?
able_to_runTRUE if we're able to run, FALSE if we aren't +Should not be set manually, override get_able_to_run() instead +Make sure you hook update_able_to_run() in setup_able_to_run() to whatever parameters changing that you added +Otherwise we will not pay attention to them changing
ai_movementReference to the movement datum we use. Is a type on initialize but becomes a ref afterwards.
ai_statusCurrent status of AI (OFF/ON)
ai_traitsBitfield of traits for this AI to handle extra behavior
behavior_argsStored arguments for behaviors given during their initial creation
behavior_cooldownsCurrent actions and their respective last time ran as an assoc list.
blackboardThis is a list of variables the AI uses and can be mutated by actions.
can_idleCan this AI idle?
consecutive_pathing_attemptsTracks recent pathing attempts, if we fail too many in a row we fail our current plans.
continue_processing_when_clientCan the AI remain in control if there is a client?
current_behaviorsCurrent actions being performed by the AI.
current_movement_targetCurrent movement target of the AI, generally set by decision making.
idle_behaviorThe idle behavior this AI performs when it has no actions.
interesting_distWhat distance should we be checking for interesting things when considering idling/deidling? Defaults to AI_DEFAULT_INTERESTING_DIST
max_target_distancedistance to give up on target
movement_delayDelay between movements. This is on the controller so we can keep the movement datum singleton
movement_target_sourceIdentifier for what last touched our movement target, so it can be cleared conditionally
on_failed_planning_timeoutare we currently on failed planning timeout?
our_cellsour current cell grid
paused_untilAI paused time
pawnThe atom this controller is controlling
planned_behaviorsCurrent actions planned to be performed by the AI in the upcoming plan
planning_subtreesAll subtrees this AI has available, will run them in order, so make sure they're in the order you want them to run. On initialization of this type, it will start as a typepath(s) and get converted to references of ai_subtrees found in SSai_controllers when init_subtrees() is called

Procs

PossessPawnProc to move from one pawn to another, this will destroy the target's existing controller.
SelectBehaviorsThis is where you decide what actions are taken by the AI.
TryPossessPawnAbstract proc for initializing the pawn to the new controller
UnpossessPawnProc for deinitializing the pawn to the old controller
add_blackboard_keyAdds the passed "thing" to the associated key
add_blackboard_key_assocAdds the value to the inner list at key with the inner key set to "thing" +Throws an error if the key is not a list already, intended only for use with lists
add_blackboard_key_assoc_lazylistSimilar to [proc/add_blackboard_key_assoc], assuming key is intended to be a lazylist (so it will create a list) +More dangerous / easier to override values, only use when you want to use a lazylist
add_blackboard_key_lazylistAdds the passed "thing" to the associated key, assuming key is intended to be a lazylist (so it will create a list) +More dangerous / easier to override values, only use when you want to use a lazylist
ai_can_interactCan this pawn interact with objects?
ai_interactInteract with objects
blackboard_key_existsReturns true if we have a blackboard key with the provided key and it is not qdeleting
change_ai_movement_typeOverrides the current ai_movement of this controller with a new one
clear_blackboard_keyClears the passed key, resetting it to null
get_able_to_runReturns TRUE if the ai controller can actually run at the moment, FALSE otherwise
get_accessUse this proc to define how your controller defines what access the pawn has for the sake of pathfinding. Return the access list you want to use
get_expected_ai_statusGets the AI status we expect the AI controller to be on at this current moment. +Returns AI_STATUS_OFF if it's inhabited by a Client and shouldn't be, if it's dead and cannot act while dead, or is on a z level without clients. +Returns AI_STATUS_ON otherwise.
get_minimum_distanceReturns the minimum required distance to preform one of our current behaviors. Honestly this should just be cached or something but fuck you
init_subtreesLoops over the subtrees in planning_subtrees and looks at the ai_controllers to grab a reference, ENSURE planning_subtrees ARE TYPEPATHS AND NOT INSTANCES/REFERENCES BEFORE EXECUTING THIS
insert_blackboard_keySimilar to [proc/add_blackboard_key], but performs an insertion rather than an add +Throws an error if the key is not a list already, intended only for use with lists
insert_blackboard_key_lazylistSimilar to [proc/insert_blackboard_key_lazylist], but performs an insertion / or rather than an add
on_changed_z_levelCalled when the AI controller pawn changes z levels, we check if there's any clients on the new one and wake up the AI if there is.
on_stat_changedTurn the controller on or off based on if you're alive, we only register to this if the flag is present so don't need to check again
override_blackboard_keyHelper to force a key to be a certain thing no matter what's already there
post_blackboard_key_setCalled after we set a blackboard key, forwards signal information.
processRuns any actions that are currently running
queue_behaviorCall this to add a behavior to the stack.
remove_from_blackboard_lazylist_keyremoves a tracked object from a lazylist
remove_thing_from_blackboard_keyRemove the passed thing from the associated blackboard key
replace_planning_subtreesCompletely replaces the planning_subtrees with a new set based on argument provided, list provided must contain specifically typepaths
reset_ai_statusSets the AI on or off based on current conditions, call to reset after you've manually disabled it somewhere
set_ai_statusThis proc handles changing ai status, and starts/stops processing if required.
set_blackboard_keySets the key to the passed "thing".
set_blackboard_key_assocSets the key at index thing to the passed value
set_blackboard_key_assoc_lazylistSimilar to [proc/set_blackboard_key_assoc] but operates under the assumption the key is a lazylist (so it will create a list) +More dangerous / easier to override values, only use when you want to use a lazylist
set_movement_targetSets the current movement target, with an optional param to override the movement behavior
sig_remove_from_blackboardSignal proc to go through every key and remove the datum from all keys it finds

Var Details

able_to_plan

are we even able to plan?

able_to_run

TRUE if we're able to run, FALSE if we aren't +Should not be set manually, override get_able_to_run() instead +Make sure you hook update_able_to_run() in setup_able_to_run() to whatever parameters changing that you added +Otherwise we will not pay attention to them changing

ai_movement

Reference to the movement datum we use. Is a type on initialize but becomes a ref afterwards.

ai_status

Current status of AI (OFF/ON)

ai_traits

Bitfield of traits for this AI to handle extra behavior

behavior_args

Stored arguments for behaviors given during their initial creation

behavior_cooldowns

Current actions and their respective last time ran as an assoc list.

blackboard

This is a list of variables the AI uses and can be mutated by actions.

+

When an action is performed you pass this list and any relevant keys for the variables it can mutate.

+

DO NOT set values in the blackboard directly, and especially not if you're adding a datum reference to this! +Use the setters, this is important for reference handing.

can_idle

Can this AI idle?

consecutive_pathing_attempts

Tracks recent pathing attempts, if we fail too many in a row we fail our current plans.

continue_processing_when_client

Can the AI remain in control if there is a client?

current_behaviors

Current actions being performed by the AI.

current_movement_target

Current movement target of the AI, generally set by decision making.

idle_behavior

The idle behavior this AI performs when it has no actions.

interesting_dist

What distance should we be checking for interesting things when considering idling/deidling? Defaults to AI_DEFAULT_INTERESTING_DIST

max_target_distance

distance to give up on target

movement_delay

Delay between movements. This is on the controller so we can keep the movement datum singleton

movement_target_source

Identifier for what last touched our movement target, so it can be cleared conditionally

on_failed_planning_timeout

are we currently on failed planning timeout?

our_cells

our current cell grid

paused_until

AI paused time

pawn

The atom this controller is controlling

planned_behaviors

Current actions planned to be performed by the AI in the upcoming plan

planning_subtrees

All subtrees this AI has available, will run them in order, so make sure they're in the order you want them to run. On initialization of this type, it will start as a typepath(s) and get converted to references of ai_subtrees found in SSai_controllers when init_subtrees() is called

Proc Details

PossessPawn

Proc to move from one pawn to another, this will destroy the target's existing controller.

SelectBehaviors

This is where you decide what actions are taken by the AI.

TryPossessPawn

Abstract proc for initializing the pawn to the new controller

UnpossessPawn

Proc for deinitializing the pawn to the old controller

add_blackboard_key

Adds the passed "thing" to the associated key

+

Works with lists or numbers, but not lazylists.

+

add_blackboard_key_assoc

Adds the value to the inner list at key with the inner key set to "thing" +Throws an error if the key is not a list already, intended only for use with lists

+

add_blackboard_key_assoc_lazylist

Similar to [proc/add_blackboard_key_assoc], assuming key is intended to be a lazylist (so it will create a list) +More dangerous / easier to override values, only use when you want to use a lazylist

+

add_blackboard_key_lazylist

Adds the passed "thing" to the associated key, assuming key is intended to be a lazylist (so it will create a list) +More dangerous / easier to override values, only use when you want to use a lazylist

+

ai_can_interact

Can this pawn interact with objects?

ai_interact

Interact with objects

blackboard_key_exists

Returns true if we have a blackboard key with the provided key and it is not qdeleting

change_ai_movement_type

Overrides the current ai_movement of this controller with a new one

clear_blackboard_key

Clears the passed key, resetting it to null

+

Not intended for use with list keys - use [proc/remove_thing_from_blackboard_key] if you are removing a value from a list at a key

+

get_able_to_run

Returns TRUE if the ai controller can actually run at the moment, FALSE otherwise

get_access

Use this proc to define how your controller defines what access the pawn has for the sake of pathfinding. Return the access list you want to use

get_expected_ai_status

Gets the AI status we expect the AI controller to be on at this current moment. +Returns AI_STATUS_OFF if it's inhabited by a Client and shouldn't be, if it's dead and cannot act while dead, or is on a z level without clients. +Returns AI_STATUS_ON otherwise.

get_minimum_distance

Returns the minimum required distance to preform one of our current behaviors. Honestly this should just be cached or something but fuck you

init_subtrees

Loops over the subtrees in planning_subtrees and looks at the ai_controllers to grab a reference, ENSURE planning_subtrees ARE TYPEPATHS AND NOT INSTANCES/REFERENCES BEFORE EXECUTING THIS

insert_blackboard_key

Similar to [proc/add_blackboard_key], but performs an insertion rather than an add +Throws an error if the key is not a list already, intended only for use with lists

+

insert_blackboard_key_lazylist

Similar to [proc/insert_blackboard_key_lazylist], but performs an insertion / or rather than an add

+

on_changed_z_level

Called when the AI controller pawn changes z levels, we check if there's any clients on the new one and wake up the AI if there is.

on_stat_changed

Turn the controller on or off based on if you're alive, we only register to this if the flag is present so don't need to check again

override_blackboard_key

Helper to force a key to be a certain thing no matter what's already there

+

Useful for if you're overriding a list with a new list entirely, +as otherwise it would throw a runtime error from trying to override a list

+

Not necessary to use if you aren't dealing with lists, as set_blackboard_key will clear the existing value +in that case already, but may be useful for clarity.

+

post_blackboard_key_set

Called after we set a blackboard key, forwards signal information.

process

Runs any actions that are currently running

queue_behavior

Call this to add a behavior to the stack.

remove_from_blackboard_lazylist_key

removes a tracked object from a lazylist

remove_thing_from_blackboard_key

Remove the passed thing from the associated blackboard key

+

Intended for use with lists, if you're just clearing a reference from a key use [proc/clear_blackboard_key]

+

replace_planning_subtrees

Completely replaces the planning_subtrees with a new set based on argument provided, list provided must contain specifically typepaths

reset_ai_status

Sets the AI on or off based on current conditions, call to reset after you've manually disabled it somewhere

set_ai_status

This proc handles changing ai status, and starts/stops processing if required.

set_blackboard_key

Sets the key to the passed "thing".

+

set_blackboard_key_assoc

Sets the key at index thing to the passed value

+

Assumes the key value is already a list, if not throws an error.

+

set_blackboard_key_assoc_lazylist

Similar to [proc/set_blackboard_key_assoc] but operates under the assumption the key is a lazylist (so it will create a list) +More dangerous / easier to override values, only use when you want to use a lazylist

+

set_movement_target

Sets the current movement target, with an optional param to override the movement behavior

sig_remove_from_blackboard

Signal proc to go through every key and remove the datum from all keys it finds

\ No newline at end of file diff --git a/datum/ai_controller/basic_controller/artificer.html b/datum/ai_controller/basic_controller/artificer.html new file mode 100644 index 0000000000000..bdb81e763d293 --- /dev/null +++ b/datum/ai_controller/basic_controller/artificer.html @@ -0,0 +1,3 @@ +/datum/ai_controller/basic_controller/artificer - /tg/ Station 13
/tg/ Station 13 - Modules - Types

artificer

Artificers

+

Artificers will seek out and heal the most wounded construct or shade they can see. +If there is no one to heal, they will run away from any non-allied mobs.

\ No newline at end of file diff --git a/datum/ai_controller/basic_controller/bot.html b/datum/ai_controller/basic_controller/bot.html new file mode 100644 index 0000000000000..0dcd4b1921a77 --- /dev/null +++ b/datum/ai_controller/basic_controller/bot.html @@ -0,0 +1 @@ +/datum/ai_controller/basic_controller/bot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bot

Vars

reset_keyskeys to be reset when the bot is reseted

Procs

set_if_can_reachset the target if we can reach them

Var Details

reset_keys

keys to be reset when the bot is reseted

Proc Details

set_if_can_reach

set the target if we can reach them

\ No newline at end of file diff --git a/datum/ai_controller/basic_controller/bot/cleanbot.html b/datum/ai_controller/basic_controller/bot/cleanbot.html new file mode 100644 index 0000000000000..f55457bad97f5 --- /dev/null +++ b/datum/ai_controller/basic_controller/bot/cleanbot.html @@ -0,0 +1 @@ +/datum/ai_controller/basic_controller/bot/cleanbot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cleanbot

Vars

clean_flagslist that ties each flag to its list key

Var Details

clean_flags

list that ties each flag to its list key

\ No newline at end of file diff --git a/datum/ai_controller/basic_controller/bot/dedbot.html b/datum/ai_controller/basic_controller/bot/dedbot.html new file mode 100644 index 0000000000000..972a327f6046e --- /dev/null +++ b/datum/ai_controller/basic_controller/bot/dedbot.html @@ -0,0 +1 @@ +/datum/ai_controller/basic_controller/bot/dedbot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dedbot

Vars

reset_keyskeys to be reset when the bot is reseted

Var Details

reset_keys

keys to be reset when the bot is reseted

\ No newline at end of file diff --git a/datum/ai_controller/basic_controller/bot/firebot.html b/datum/ai_controller/basic_controller/bot/firebot.html new file mode 100644 index 0000000000000..8312767a68976 --- /dev/null +++ b/datum/ai_controller/basic_controller/bot/firebot.html @@ -0,0 +1 @@ +/datum/ai_controller/basic_controller/bot/firebot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

firebot

Vars

announcement_cooldowncooldown until we announce a fire again

Procs

on_target_foundsay a silly line whenever we find someone on fire

Var Details

announcement_cooldown

cooldown until we announce a fire again

Proc Details

on_target_found

say a silly line whenever we find someone on fire

\ No newline at end of file diff --git a/datum/ai_controller/basic_controller/carp.html b/datum/ai_controller/basic_controller/carp.html new file mode 100644 index 0000000000000..2956d344e0093 --- /dev/null +++ b/datum/ai_controller/basic_controller/carp.html @@ -0,0 +1,9 @@ +/datum/ai_controller/basic_controller/carp - /tg/ Station 13
/tg/ Station 13 - Modules - Types

carp

AI controller for carp +Expected flow is:

+
\ No newline at end of file diff --git a/datum/ai_controller/basic_controller/juggernaut.html b/datum/ai_controller/basic_controller/juggernaut.html new file mode 100644 index 0000000000000..6d3360e9471fe --- /dev/null +++ b/datum/ai_controller/basic_controller/juggernaut.html @@ -0,0 +1,2 @@ +/datum/ai_controller/basic_controller/juggernaut - /tg/ Station 13
/tg/ Station 13 - Modules - Types

juggernaut

Juggernauts

+

Juggernauts slowly walk toward non-allied mobs and pummel them to death.

\ No newline at end of file diff --git a/datum/ai_controller/basic_controller/pet_cult.html b/datum/ai_controller/basic_controller/pet_cult.html new file mode 100644 index 0000000000000..5fb731a4d7cea --- /dev/null +++ b/datum/ai_controller/basic_controller/pet_cult.html @@ -0,0 +1 @@ +/datum/ai_controller/basic_controller/pet_cult - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

pet_cult

Procs

delete_pull_targetif target gets pulled away, unset him

Proc Details

delete_pull_target

if target gets pulled away, unset him

\ No newline at end of file diff --git a/datum/ai_controller/basic_controller/proteon.html b/datum/ai_controller/basic_controller/proteon.html new file mode 100644 index 0000000000000..2bcc3a9e369b7 --- /dev/null +++ b/datum/ai_controller/basic_controller/proteon.html @@ -0,0 +1,2 @@ +/datum/ai_controller/basic_controller/proteon - /tg/ Station 13
/tg/ Station 13 - Modules - Types

proteon

Proteons

+

Proteons perform cowardly hit-and-run attacks, fleeing melee when struck but returning to fight again.

\ No newline at end of file diff --git a/datum/ai_controller/basic_controller/wraith.html b/datum/ai_controller/basic_controller/wraith.html new file mode 100644 index 0000000000000..1d208030abe8d --- /dev/null +++ b/datum/ai_controller/basic_controller/wraith.html @@ -0,0 +1,2 @@ +/datum/ai_controller/basic_controller/wraith - /tg/ Station 13
/tg/ Station 13 - Modules - Types

wraith

Wraiths

+

Wraiths seek out the most injured non-allied mob to beat to death.

\ No newline at end of file diff --git a/datum/ai_controller/cursed.html b/datum/ai_controller/cursed.html new file mode 100644 index 0000000000000..3727b1cabaeb9 --- /dev/null +++ b/datum/ai_controller/cursed.html @@ -0,0 +1,9 @@ +/datum/ai_controller/cursed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cursed item ai!

Haunted AI tries to not be interacted with, and will attack people who do. +Cursed AI instead tries to be interacted with, and will attempt to equip itself onto people. +Added by /datum/element/cursed, and as such will try to remove this element and go dormant when it finds a victim to curse

Procs

on_equipsignal called by picking up the pawn, will try to equip to where it should actually be and start the curse
on_throw_hitsignal called by the pawn hitting something after a throw
try_equipping_to_target_slotcurse of hunger component; for very hungry items.
what_a_horrible_night_to_have_a_curseproc called when the cursed object successfully attaches itself to someone, removing the cursed element and by extension the ai itself

Proc Details

on_equip

signal called by picking up the pawn, will try to equip to where it should actually be and start the curse

on_throw_hit

signal called by the pawn hitting something after a throw

try_equipping_to_target_slot

curse of hunger component; for very hungry items.

+

called when someone grabs the cursed item or the cursed item impacts with a mob it's throwing itself at +arguments:

+

what_a_horrible_night_to_have_a_curse

proc called when the cursed object successfully attaches itself to someone, removing the cursed element and by extension the ai itself

\ No newline at end of file diff --git a/datum/ai_controller/haunted.html b/datum/ai_controller/haunted.html new file mode 100644 index 0000000000000..c35e314bc342b --- /dev/null +++ b/datum/ai_controller/haunted.html @@ -0,0 +1 @@ +/datum/ai_controller/haunted - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

haunted

Procs

on_droppedFlip it so we listen for equip again but not for drop.
on_equipSignal response for when the item is picked up; stops listening for follow up equips, just waits for a drop.

Proc Details

on_dropped

Flip it so we listen for equip again but not for drop.

on_equip

Signal response for when the item is picked up; stops listening for follow up equips, just waits for a drop.

\ No newline at end of file diff --git a/datum/ai_controller/hostile_friend.html b/datum/ai_controller/hostile_friend.html new file mode 100644 index 0000000000000..07c2ab625bb98 --- /dev/null +++ b/datum/ai_controller/hostile_friend.html @@ -0,0 +1 @@ +/datum/ai_controller/hostile_friend - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

hostile_friend

This code needs to be removed at some point as it doesn't actually utilize the AI.

Procs

befriendBefriends someone
check_altclickedSomeone alt clicked us, see if they're someone we should show the radial command menu to
check_pointSomeone we like is pointing at something, see if it's something we might want to interact with (like if they might want us to fetch something for them)
check_verbal_commandOne of our friends said something, see if it's a valid command, and if so, take action
command_radialShow the command radial menu
on_examinedSomeone is looking at us, if we're currently carrying something then show what it is, and include a message if they're our friend
set_command_modeWhether we got here via radial menu or a verbal command, this is where we actually process what our new command will be
unfriendSomeone is being mean to us, take them off our friends (add actual enemies behavior later)

Proc Details

befriend

Befriends someone

check_altclicked

Someone alt clicked us, see if they're someone we should show the radial command menu to

check_point

Someone we like is pointing at something, see if it's something we might want to interact with (like if they might want us to fetch something for them)

check_verbal_command

One of our friends said something, see if it's a valid command, and if so, take action

command_radial

Show the command radial menu

on_examined

Someone is looking at us, if we're currently carrying something then show what it is, and include a message if they're our friend

set_command_mode

Whether we got here via radial menu or a verbal command, this is where we actually process what our new command will be

unfriend

Someone is being mean to us, take them off our friends (add actual enemies behavior later)

\ No newline at end of file diff --git a/datum/ai_controller/mod.html b/datum/ai_controller/mod.html new file mode 100644 index 0000000000000..0d537e0a65f38 --- /dev/null +++ b/datum/ai_controller/mod.html @@ -0,0 +1 @@ +/datum/ai_controller/mod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mod

An AI controller for the MODsuit pathfinder module. It's activated by implant and attaches itself to the user.

Vars

id_cardID card generated from the suit's required access. Used for pathing.

Var Details

id_card

ID card generated from the suit's required access. Used for pathing.

\ No newline at end of file diff --git a/datum/ai_controller/monkey.html b/datum/ai_controller/monkey.html new file mode 100644 index 0000000000000..44baf4035d1b0 --- /dev/null +++ b/datum/ai_controller/monkey.html @@ -0,0 +1 @@ +/datum/ai_controller/monkey - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

monkey

OOK OOK OOK

Procs

TryFindWeaponre-used behavior pattern by monkeys for finding a weapon
retaliateReactive events to being hit

Proc Details

TryFindWeapon

re-used behavior pattern by monkeys for finding a weapon

retaliate

Reactive events to being hit

\ No newline at end of file diff --git a/datum/ai_controller/robot_customer.html b/datum/ai_controller/robot_customer.html new file mode 100644 index 0000000000000..f2b04e7ef03f7 --- /dev/null +++ b/datum/ai_controller/robot_customer.html @@ -0,0 +1 @@ +/datum/ai_controller/robot_customer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

robot_customer

Procs

on_get_pulledCalled when

Proc Details

on_get_pulled

Called when

\ No newline at end of file diff --git a/datum/ai_laws.html b/datum/ai_laws.html new file mode 100644 index 0000000000000..527c9350847f9 --- /dev/null +++ b/datum/ai_laws.html @@ -0,0 +1,53 @@ +/datum/ai_laws - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ai_laws

Vars

hackedHacked laws +Syndicate uploaded laws which are above all other laws +These laws will go away when an AI is reset
idThe ID of this lawset, pretty much only used to tell if we're default or not
inherentCore laws +Inherent laws are the "core" laws of the AI +Reseting the AI will not remove these, these are intrinsit to whatever lawset they are running.
ionIon laws +Special randomized (usually) laws which are above all over laws +These laws will go away when an AI is reset
nameThe name of the lawset
ownerThe silicon linked to this lawset
protected_zerothIf TRUE, the zeroth law of this AI is protected and cannot be removed by players under normal circumstances.
suppliedSupplied laws +Supplied laws are supplied in addition to the inherent laws - after the fact +These laws will go away when an AI is reset
zerothZeroth law +A lawset can only have 1 zeroth law, it's the top dog. +Removed by things that remove core/inherent laws, but only if protected_zeroth is false. Otherwise, cannot be removed except by admins
zeroth_borgZeroth borg law +It's just a zeroth law but specially themed for cyborgs +("follow your master" vs "accomplish your objectives")

Procs

add_hacked_lawAdds the passed law as an hacked law.
add_inherent_lawAdds the passed law as an inherent law. +Simply adds it to the bottom of the inherent law list. +No duplicate laws allowed.
add_ion_lawAdds the passed law as an ion law.
add_supplied_lawAdds the passed law as a supplied law at the passed priority level. +Will override any existing supplied laws at that priority level.
clear_hacked_lawsClears all hacked laws.
clear_inherent_lawsClears all inherent laws from this lawset.
clear_ion_lawsClears all ion laws.
clear_supplied_lawsClears all supplied laws.
clear_zeroth_lawUnsets the zeroth (and zeroth borg) law from this lawset
copy_lawsetMakes a copy of the lawset and returns a new law datum.
get_law_amountGets the number of how many laws this AI has
get_law_listGenerates a list of all laws on this datum, including rendered HTML tags if required
remove_hacked_lawRemoves the passed law from the hacked law list.
remove_inherent_lawRemoves the passed law from the inherent law list.
remove_ion_lawRemoves the passed law from the ion law list.
remove_lawRemoves the law at the passed index of both inherent and supplied laws combined.
remove_supplied_law_by_lawRemoves the supplied law by law text, replacing it with a blank.
remove_supplied_law_by_numRemoves the supplied law at the passed number.
replace_random_lawRemoves a random law and replaces it with the new one
set_zeroth_lawSets this lawset's zeroth law to the passed law

Var Details

hacked

Hacked laws +Syndicate uploaded laws which are above all other laws +These laws will go away when an AI is reset

id

The ID of this lawset, pretty much only used to tell if we're default or not

inherent

Core laws +Inherent laws are the "core" laws of the AI +Reseting the AI will not remove these, these are intrinsit to whatever lawset they are running.

ion

Ion laws +Special randomized (usually) laws which are above all over laws +These laws will go away when an AI is reset

name

The name of the lawset

owner

The silicon linked to this lawset

protected_zeroth

If TRUE, the zeroth law of this AI is protected and cannot be removed by players under normal circumstances.

supplied

Supplied laws +Supplied laws are supplied in addition to the inherent laws - after the fact +These laws will go away when an AI is reset

zeroth

Zeroth law +A lawset can only have 1 zeroth law, it's the top dog. +Removed by things that remove core/inherent laws, but only if protected_zeroth is false. Otherwise, cannot be removed except by admins

zeroth_borg

Zeroth borg law +It's just a zeroth law but specially themed for cyborgs +("follow your master" vs "accomplish your objectives")

Proc Details

add_hacked_law

Adds the passed law as an hacked law.

add_inherent_law

Adds the passed law as an inherent law. +Simply adds it to the bottom of the inherent law list. +No duplicate laws allowed.

add_ion_law

Adds the passed law as an ion law.

add_supplied_law

Adds the passed law as a supplied law at the passed priority level. +Will override any existing supplied laws at that priority level.

clear_hacked_laws

Clears all hacked laws.

clear_inherent_laws

Clears all inherent laws from this lawset.

clear_ion_laws

Clears all ion laws.

clear_supplied_laws

Clears all supplied laws.

clear_zeroth_law

Unsets the zeroth (and zeroth borg) law from this lawset

+

This will NOT unset a malfunctioning AI's zero law if force is not true

+

Returns TRUE on success, or false otherwise

copy_lawset

Makes a copy of the lawset and returns a new law datum.

get_law_amount

Gets the number of how many laws this AI has

+ +

Returns a number, the number of laws we have

get_law_list

Generates a list of all laws on this datum, including rendered HTML tags if required

+

Arguments:

+

remove_hacked_law

Removes the passed law from the hacked law list.

remove_inherent_law

Removes the passed law from the inherent law list.

remove_ion_law

Removes the passed law from the ion law list.

remove_law

Removes the law at the passed index of both inherent and supplied laws combined.

+

For example, if a lawset has 3 inherent and 3 supplied laws... +Calling this with number = 2 will remove the second inherent law while +calling this with number = 4 will remove the first supplied law

+

Returns the law text of what law that was removed.

remove_supplied_law_by_law

Removes the supplied law by law text, replacing it with a blank.

remove_supplied_law_by_num

Removes the supplied law at the passed number.

replace_random_law

Removes a random law and replaces it with the new one

+

Args: +law - The law that is being uploaded +remove_law_groups - A list of law categories that can be deleted from +insert_law_group - The law category that the law will be inserted into

set_zeroth_law

Sets this lawset's zeroth law to the passed law

+

Also can set the zeroth borg law, if this lawset is for master AIs. +The zeroth borg law allows for AIs with zeroth laws to give a differing zeroth law to their child cyborgs

\ No newline at end of file diff --git a/datum/ai_module.html b/datum/ai_module.html new file mode 100644 index 0000000000000..f5df5cd8d8c6a --- /dev/null +++ b/datum/ai_module.html @@ -0,0 +1 @@ +/datum/ai_module - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ai_module

The base module type, which holds info about each ability.

Vars

one_purchaseIf this module can only be purchased once. This always applies to upgrades, even if the variable is set to false.
power_typeIf the module gives an active ability, use this. Mutually exclusive with upgrade.
unlock_soundSound played when an ability is unlocked
unlock_textText shown when an ability is unlocked
upgradeIf the module gives a passive upgrade, use this. Mutually exclusive with power_type.

Procs

upgradeApplies upgrades

Var Details

one_purchase

If this module can only be purchased once. This always applies to upgrades, even if the variable is set to false.

power_type

If the module gives an active ability, use this. Mutually exclusive with upgrade.

unlock_sound

Sound played when an ability is unlocked

unlock_text

Text shown when an ability is unlocked

upgrade

If the module gives a passive upgrade, use this. Mutually exclusive with power_type.

Proc Details

upgrade

Applies upgrades

\ No newline at end of file diff --git a/datum/ai_module/malf/destructive/nuke_station.html b/datum/ai_module/malf/destructive/nuke_station.html new file mode 100644 index 0000000000000..1c5807962de79 --- /dev/null +++ b/datum/ai_module/malf/destructive/nuke_station.html @@ -0,0 +1 @@ +/datum/ai_module/malf/destructive/nuke_station - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nuke_station

Doomsday Device: Starts the self-destruct timer. It can only be stopped by killing the AI completely.

Vars

discount_areasList of areas that grant discounts. "heads_quarters" will match any head of staff office.
hacked_command_areasList of hacked head of staff office areas. Includes the vault too. Provides a 20 PT discount per (Min 50 PT cost)

Var Details

discount_areas

List of areas that grant discounts. "heads_quarters" will match any head of staff office.

hacked_command_areas

List of hacked head of staff office areas. Includes the vault too. Provides a 20 PT discount per (Min 50 PT cost)

\ No newline at end of file diff --git a/datum/ai_movement.html b/datum/ai_movement.html new file mode 100644 index 0000000000000..b580dbe4b6ecc --- /dev/null +++ b/datum/ai_movement.html @@ -0,0 +1 @@ +/datum/ai_movement - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ai_movement

This datum is an abstract class that can be overridden for different types of movement

Vars

max_pathing_attemptsHow many times a given controller can fail on their route before they just give up
moving_controllersAssoc list ist of controllers that are currently moving as key, and what they are moving to as value

Procs

allowed_to_moveShould the movement be allowed to happen? return TRUE if it can, FALSE otherwise
pre_moveAnything to do before moving; any checks if the pawn should be able to move should be placed in allowed_to_move() and called by this proc

Var Details

max_pathing_attempts

How many times a given controller can fail on their route before they just give up

moving_controllers

Assoc list ist of controllers that are currently moving as key, and what they are moving to as value

Proc Details

allowed_to_move

Should the movement be allowed to happen? return TRUE if it can, FALSE otherwise

pre_move

Anything to do before moving; any checks if the pawn should be able to move should be placed in allowed_to_move() and called by this proc

\ No newline at end of file diff --git a/datum/ai_movement/basic_avoidance.html b/datum/ai_movement/basic_avoidance.html new file mode 100644 index 0000000000000..6a9e884172e0a --- /dev/null +++ b/datum/ai_movement/basic_avoidance.html @@ -0,0 +1 @@ +/datum/ai_movement/basic_avoidance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

basic_avoidance

Uses Byond's basic obstacle avoidance movement

Vars

move_flagsMovement flags to pass to the loop

Var Details

move_flags

Movement flags to pass to the loop

\ No newline at end of file diff --git a/datum/ai_movement/dumb.html b/datum/ai_movement/dumb.html new file mode 100644 index 0000000000000..28a4bebe4fb9c --- /dev/null +++ b/datum/ai_movement/dumb.html @@ -0,0 +1 @@ +/datum/ai_movement/dumb - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

dumb

The most brain-dead type of movement, bee-line to the target with no concern of whats in front of us.

Procs

start_moving_towardsPut your movement behavior in here!

Proc Details

start_moving_towards

Put your movement behavior in here!

\ No newline at end of file diff --git a/datum/ai_movement/jps.html b/datum/ai_movement/jps.html new file mode 100644 index 0000000000000..c747a2bfbdabc --- /dev/null +++ b/datum/ai_movement/jps.html @@ -0,0 +1 @@ +/datum/ai_movement/jps - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

jps

This movement datum represents smart-pathing

Vars

diagonal_flagshow we deal with diagonal movement, whether we try to avoid them or follow through with them

Var Details

diagonal_flags

how we deal with diagonal movement, whether we try to avoid them or follow through with them

\ No newline at end of file diff --git a/datum/ai_planning_subtree.html b/datum/ai_planning_subtree.html new file mode 100644 index 0000000000000..d7349d49a5724 --- /dev/null +++ b/datum/ai_planning_subtree.html @@ -0,0 +1,5 @@ +/datum/ai_planning_subtree - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ai_planning_subtree

A subtree is attached to a controller and is occasionally called by /ai_controller/SelectBehaviors(), this mainly exists to act as a way to subtype and modify SelectBehaviors() without needing to subtype the ai controller itself

Vars

operational_datumsA list of typepaths of "operational datums" (elements/components) we absolutely NEED to run. Checked in unit tests, as well as be a nice reminder to developers that such a thing might be needed. +Note that in the Attach/Inititalize/New (or any future equivalent for these procs), you will need to add the trait TRAIT_SUBTREE_REQUIRED_OPERATIONAL_DATUM to the mob in question +in order for unit tests to succeed. This will break obviously enough if you don't do this and declare the required datum here however.

Procs

SelectBehaviorsDetermines what behaviors should the controller try processing; if this returns SUBTREE_RETURN_FINISH_PLANNING then the controller won't go through the other subtrees should multiple exist in controller.planning_subtrees

Var Details

operational_datums

A list of typepaths of "operational datums" (elements/components) we absolutely NEED to run. Checked in unit tests, as well as be a nice reminder to developers that such a thing might be needed. +Note that in the Attach/Inititalize/New (or any future equivalent for these procs), you will need to add the trait TRAIT_SUBTREE_REQUIRED_OPERATIONAL_DATUM to the mob in question +in order for unit tests to succeed. This will break obviously enough if you don't do this and declare the required datum here however.

Proc Details

SelectBehaviors

Determines what behaviors should the controller try processing; if this returns SUBTREE_RETURN_FINISH_PLANNING then the controller won't go through the other subtrees should multiple exist in controller.planning_subtrees

\ No newline at end of file diff --git a/datum/ai_planning_subtree/acknowledge_chief.html b/datum/ai_planning_subtree/acknowledge_chief.html new file mode 100644 index 0000000000000..ca4f87e9dced2 --- /dev/null +++ b/datum/ai_planning_subtree/acknowledge_chief.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/acknowledge_chief - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

acknowledge_chief

Procs

SelectBehaviorstree to find and register our leader

Proc Details

SelectBehaviors

tree to find and register our leader

\ No newline at end of file diff --git a/datum/ai_planning_subtree/attack_obstacle_in_path.html b/datum/ai_planning_subtree/attack_obstacle_in_path.html new file mode 100644 index 0000000000000..fa3a4157bc766 --- /dev/null +++ b/datum/ai_planning_subtree/attack_obstacle_in_path.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/attack_obstacle_in_path - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

attack_obstacle_in_path

If there's something between us and our target then we need to queue a behaviour to make it not be there

Vars

attack_behaviourThe action to execute, extend to add a different cooldown or something
target_keyBlackboard key containing current target

Var Details

attack_behaviour

The action to execute, extend to add a different cooldown or something

target_key

Blackboard key containing current target

\ No newline at end of file diff --git a/datum/ai_planning_subtree/bane_hunting.html b/datum/ai_planning_subtree/bane_hunting.html new file mode 100644 index 0000000000000..ff74ba388bbd1 --- /dev/null +++ b/datum/ai_planning_subtree/bane_hunting.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/bane_hunting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bane_hunting

Procs

SelectBehaviorsThe bat is broken!

Proc Details

SelectBehaviors

The bat is broken!

\ No newline at end of file diff --git a/datum/ai_planning_subtree/basic_melee_attack_subtree.html b/datum/ai_planning_subtree/basic_melee_attack_subtree.html new file mode 100644 index 0000000000000..d95428685ad39 --- /dev/null +++ b/datum/ai_planning_subtree/basic_melee_attack_subtree.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/basic_melee_attack_subtree - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

basic_melee_attack_subtree

Vars

end_planningIs this the last thing we do? (if we set a movement target, this will usually be yes)
melee_attack_behaviorWhat do we do in order to attack someone?

Var Details

end_planning

Is this the last thing we do? (if we set a movement target, this will usually be yes)

melee_attack_behavior

What do we do in order to attack someone?

\ No newline at end of file diff --git a/datum/ai_planning_subtree/basic_melee_attack_subtree/mega_arachnid.html b/datum/ai_planning_subtree/basic_melee_attack_subtree/mega_arachnid.html new file mode 100644 index 0000000000000..eaa6283eda38a --- /dev/null +++ b/datum/ai_planning_subtree/basic_melee_attack_subtree/mega_arachnid.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/basic_melee_attack_subtree/mega_arachnid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mega_arachnid

only engage in melee combat against cuffed targets, otherwise keep throwing restraints at them

Vars

minimum_healthminimum health our target must be before we can attack them

Var Details

minimum_health

minimum health our target must be before we can attack them

\ No newline at end of file diff --git a/datum/ai_planning_subtree/call_reinforcements.html b/datum/ai_planning_subtree/call_reinforcements.html new file mode 100644 index 0000000000000..793a0de0161c3 --- /dev/null +++ b/datum/ai_planning_subtree/call_reinforcements.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/call_reinforcements - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

call_reinforcements

Calls all nearby mobs that share a faction to give backup in combat

Vars

call_typeReinforcement-calling behavior to use
emote_keyBlackboard key containing an emote to perform when calling reinforcements
say_keyBlackboard key containing something to say when calling reinforcements (takes precedence over emotes)

Procs

decide_to_callDecides when to call reinforcements, can be overridden for alternate behavior

Var Details

call_type

Reinforcement-calling behavior to use

emote_key

Blackboard key containing an emote to perform when calling reinforcements

say_key

Blackboard key containing something to say when calling reinforcements (takes precedence over emotes)

Proc Details

decide_to_call

Decides when to call reinforcements, can be overridden for alternate behavior

\ No newline at end of file diff --git a/datum/ai_planning_subtree/capricious_retaliate.html b/datum/ai_planning_subtree/capricious_retaliate.html new file mode 100644 index 0000000000000..d65ff4480abd6 --- /dev/null +++ b/datum/ai_planning_subtree/capricious_retaliate.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/capricious_retaliate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

capricious_retaliate

Add or remove people to our retaliation shitlist just on an arbitrary whim

Vars

ignore_factionWhether we should skip checking faction for our decision
targeting_strategy_keyBlackboard key which tells us how to select valid targets

Var Details

ignore_faction

Whether we should skip checking faction for our decision

targeting_strategy_key

Blackboard key which tells us how to select valid targets

\ No newline at end of file diff --git a/datum/ai_planning_subtree/climb_trees.html b/datum/ai_planning_subtree/climb_trees.html new file mode 100644 index 0000000000000..a40b9b19838c2 --- /dev/null +++ b/datum/ai_planning_subtree/climb_trees.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/climb_trees - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

climb_trees

Vars

climb_chancechance to climb a tree

Var Details

climb_chance

chance to climb a tree

\ No newline at end of file diff --git a/datum/ai_planning_subtree/emagged_borgi.html b/datum/ai_planning_subtree/emagged_borgi.html new file mode 100644 index 0000000000000..37b427c7613c4 --- /dev/null +++ b/datum/ai_planning_subtree/emagged_borgi.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/emagged_borgi - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

emagged_borgi

Subtree that schedules borgi to randomly shoot if they're emagged.

Vars

chanceProbability that emagged borgi will randomly attack.

Var Details

chance

Probability that emagged borgi will randomly attack.

\ No newline at end of file diff --git a/datum/ai_planning_subtree/enter_exit_home.html b/datum/ai_planning_subtree/enter_exit_home.html new file mode 100644 index 0000000000000..6eb29d0a4e302 --- /dev/null +++ b/datum/ai_planning_subtree/enter_exit_home.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/enter_exit_home - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

enter_exit_home

Vars

exit_chancechance we exit the home
flyback_chancechance we go back home

Var Details

exit_chance

chance we exit the home

flyback_chance

chance we go back home

\ No newline at end of file diff --git a/datum/ai_planning_subtree/express_happiness.html b/datum/ai_planning_subtree/express_happiness.html new file mode 100644 index 0000000000000..7c27ea9c9d1b3 --- /dev/null +++ b/datum/ai_planning_subtree/express_happiness.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/express_happiness - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

express_happiness

Vars

depressed_emotionsemotions we display when we are sad
happiness_keythe key storing our happiness value
happy_emotionslist of emotions we relay when happy
moderate_emotionsour moderate emotions

Var Details

depressed_emotions

emotions we display when we are sad

happiness_key

the key storing our happiness value

happy_emotions

list of emotions we relay when happy

moderate_emotions

our moderate emotions

\ No newline at end of file diff --git a/datum/ai_planning_subtree/find_and_hunt_target.html b/datum/ai_planning_subtree/find_and_hunt_target.html new file mode 100644 index 0000000000000..4f2a4dc63ad1f --- /dev/null +++ b/datum/ai_planning_subtree/find_and_hunt_target.html @@ -0,0 +1,4 @@ +/datum/ai_planning_subtree/find_and_hunt_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

find_and_hunt_target

Tells the AI to find a certain target nearby to hunt. +If a target has been found, we will start to move towards it, and eventually attack it.

Vars

finding_behaviorWhat behavior to execute if we have no target
finish_planningdo we finish planning subtree
hunt_chanceWhat are the chances we hunt something at any given moment
hunt_rangeIn what radius will we hunt
hunt_targetsWhat targets we're hunting for
hunting_behaviorWhat behavior to execute if we do have a target
target_keyWhat key in the blacbkboard do we store our hunting target? +If you want to have multiple hunting behaviors on a controller be sure that this is unique

Var Details

finding_behavior

What behavior to execute if we have no target

finish_planning

do we finish planning subtree

hunt_chance

What are the chances we hunt something at any given moment

hunt_range

In what radius will we hunt

hunt_targets

What targets we're hunting for

hunting_behavior

What behavior to execute if we do have a target

target_key

What key in the blacbkboard do we store our hunting target? +If you want to have multiple hunting behaviors on a controller be sure that this is unique

\ No newline at end of file diff --git a/datum/ai_planning_subtree/find_and_hunt_target/injured_mooks.html b/datum/ai_planning_subtree/find_and_hunt_target/injured_mooks.html new file mode 100644 index 0000000000000..35d2c5f8399bf --- /dev/null +++ b/datum/ai_planning_subtree/find_and_hunt_target/injured_mooks.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/find_and_hunt_target/injured_mooks - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

injured_mooks

find injured miner mooks after they come home from a long day of work

Procs

SelectBehaviorswe only heal when the mooks are home during a storm

Proc Details

SelectBehaviors

we only heal when the mooks are home during a storm

\ No newline at end of file diff --git a/datum/ai_planning_subtree/find_fingers.html b/datum/ai_planning_subtree/find_fingers.html new file mode 100644 index 0000000000000..52e0578c9d7cc --- /dev/null +++ b/datum/ai_planning_subtree/find_fingers.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/find_fingers - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

find_fingers

Look for loose arms lying around

Vars

desired_typeWhat are we actually looking for?
target_keyWhere do we store target limb data?

Var Details

desired_type

What are we actually looking for?

target_key

Where do we store target limb data?

\ No newline at end of file diff --git a/datum/ai_planning_subtree/find_food.html b/datum/ai_planning_subtree/find_food.html new file mode 100644 index 0000000000000..5edbeedfd77c5 --- /dev/null +++ b/datum/ai_planning_subtree/find_food.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/find_food - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

find_food

similar to finding a target but looks for food types in the // the what?

Vars

finding_behaviorbehavior we use to find the food
food_list_keykey of foods list

Var Details

finding_behavior

behavior we use to find the food

food_list_key

key of foods list

\ No newline at end of file diff --git a/datum/ai_planning_subtree/find_nearest_thing_which_attacked_me_to_flee.html b/datum/ai_planning_subtree/find_nearest_thing_which_attacked_me_to_flee.html new file mode 100644 index 0000000000000..9adf25d4b283c --- /dev/null +++ b/datum/ai_planning_subtree/find_nearest_thing_which_attacked_me_to_flee.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/find_nearest_thing_which_attacked_me_to_flee - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

find_nearest_thing_which_attacked_me_to_flee

Find the nearest thing on our list of 'things which have done damage to me' and set it as the flee target

Vars

target_keywhat key should we set the target as
targeting_keythe targeting strategy we use

Var Details

target_key

what key should we set the target as

targeting_key

the targeting strategy we use

\ No newline at end of file diff --git a/datum/ai_planning_subtree/find_patrol_beacon.html b/datum/ai_planning_subtree/find_patrol_beacon.html new file mode 100644 index 0000000000000..e37f9bd5c1fac --- /dev/null +++ b/datum/ai_planning_subtree/find_patrol_beacon.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/find_patrol_beacon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

find_patrol_beacon

Vars

travel_behaviortravel towards beacon behavior

Var Details

travel_behavior

travel towards beacon behavior

\ No newline at end of file diff --git a/datum/ai_planning_subtree/find_patrol_beacon/medbot.html b/datum/ai_planning_subtree/find_patrol_beacon/medbot.html new file mode 100644 index 0000000000000..8223a677e1dcb --- /dev/null +++ b/datum/ai_planning_subtree/find_patrol_beacon/medbot.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/find_patrol_beacon/medbot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

medbot

Vars

travel_behaviortravel towards beacon behavior

Var Details

travel_behavior

travel towards beacon behavior

\ No newline at end of file diff --git a/datum/ai_planning_subtree/firebot_speech.html b/datum/ai_planning_subtree/firebot_speech.html new file mode 100644 index 0000000000000..0beefcd236f08 --- /dev/null +++ b/datum/ai_planning_subtree/firebot_speech.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/firebot_speech - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

firebot_speech

subtree to make us say funny idle lines

Vars

speech_probchance we spout lines

Var Details

speech_prob

chance we spout lines

\ No newline at end of file diff --git a/datum/ai_planning_subtree/flee_target.html b/datum/ai_planning_subtree/flee_target.html new file mode 100644 index 0000000000000..d8e140671e487 --- /dev/null +++ b/datum/ai_planning_subtree/flee_target.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/flee_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

flee_target

Try to escape from your current target, without performing any other actions.

Vars

flee_behaviourBehaviour to execute in order to flee
hiding_place_keyBlackboard key in which to store selected target's hiding place
target_keyBlackboard key in which to store selected target

Var Details

flee_behaviour

Behaviour to execute in order to flee

hiding_place_key

Blackboard key in which to store selected target's hiding place

target_key

Blackboard key in which to store selected target

\ No newline at end of file diff --git a/datum/ai_planning_subtree/generic_hunger.html b/datum/ai_planning_subtree/generic_hunger.html new file mode 100644 index 0000000000000..983b5bbee74f3 --- /dev/null +++ b/datum/ai_planning_subtree/generic_hunger.html @@ -0,0 +1,6 @@ +/datum/ai_planning_subtree/generic_hunger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

generic_hunger

Procs

SelectBehaviorsGeneric Hunger Subtree,

Proc Details

SelectBehaviors

Generic Hunger Subtree,

+

Requires at least a living mob that can hold items.

+

relevant blackboards:

+
\ No newline at end of file diff --git a/datum/ai_planning_subtree/generic_play_instrument.html b/datum/ai_planning_subtree/generic_play_instrument.html new file mode 100644 index 0000000000000..aa31280260cad --- /dev/null +++ b/datum/ai_planning_subtree/generic_play_instrument.html @@ -0,0 +1,7 @@ +/datum/ai_planning_subtree/generic_play_instrument - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

generic_play_instrument

Procs

SelectBehaviorsGeneric Instrument Subtree, For your pawn playing instruments

Proc Details

SelectBehaviors

Generic Instrument Subtree, For your pawn playing instruments

+

Requires at least a living mob that can hold items.

+

relevant blackboards:

+
\ No newline at end of file diff --git a/datum/ai_planning_subtree/generic_resist.html b/datum/ai_planning_subtree/generic_resist.html new file mode 100644 index 0000000000000..03480cb18b8d0 --- /dev/null +++ b/datum/ai_planning_subtree/generic_resist.html @@ -0,0 +1,6 @@ +/datum/ai_planning_subtree/generic_resist - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

generic_resist

Procs

SelectBehaviorsGeneric Resist Subtree, resist if it makes sense to!

Proc Details

SelectBehaviors

Generic Resist Subtree, resist if it makes sense to!

+

Requires nothing beyond a living pawn, makes sense on a good amount of mobs since anything can get buckled.

+

relevant blackboards:

+
\ No newline at end of file diff --git a/datum/ai_planning_subtree/goliath_dig.html b/datum/ai_planning_subtree/goliath_dig.html new file mode 100644 index 0000000000000..49387bb2d3185 --- /dev/null +++ b/datum/ai_planning_subtree/goliath_dig.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/goliath_dig - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

goliath_dig

Vars

target_keyWhere did we store the target data

Var Details

target_key

Where did we store the target data

\ No newline at end of file diff --git a/datum/ai_planning_subtree/hive_communicate.html b/datum/ai_planning_subtree/hive_communicate.html new file mode 100644 index 0000000000000..b8f31847da116 --- /dev/null +++ b/datum/ai_planning_subtree/hive_communicate.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/hive_communicate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hive_communicate

Vars

relay_chancechance to go and relay message

Var Details

relay_chance

chance to go and relay message

\ No newline at end of file diff --git a/datum/ai_planning_subtree/hoard_fingers.html b/datum/ai_planning_subtree/hoard_fingers.html new file mode 100644 index 0000000000000..c25e0f3d35005 --- /dev/null +++ b/datum/ai_planning_subtree/hoard_fingers.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/hoard_fingers - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hoard_fingers

If you see an arm, grab it and run

Vars

target_keyWhere do we store target limb data?

Var Details

target_key

Where do we store target limb data?

\ No newline at end of file diff --git a/datum/ai_planning_subtree/issue_commands.html b/datum/ai_planning_subtree/issue_commands.html new file mode 100644 index 0000000000000..29ad9a76f0890 --- /dev/null +++ b/datum/ai_planning_subtree/issue_commands.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/issue_commands - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

issue_commands

Vars

command_distancehow far we look for a mook to command

Var Details

command_distance

how far we look for a mook to command

\ No newline at end of file diff --git a/datum/ai_planning_subtree/locate_dead_humans.html b/datum/ai_planning_subtree/locate_dead_humans.html new file mode 100644 index 0000000000000..f8699d6b7c220 --- /dev/null +++ b/datum/ai_planning_subtree/locate_dead_humans.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/locate_dead_humans - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

locate_dead_humans

Procs

SelectBehaviorsfind dead humans and report their location on the radio

Proc Details

SelectBehaviors

find dead humans and report their location on the radio

\ No newline at end of file diff --git a/datum/ai_planning_subtree/look_for_adult.html b/datum/ai_planning_subtree/look_for_adult.html new file mode 100644 index 0000000000000..cb7f36b92f601 --- /dev/null +++ b/datum/ai_planning_subtree/look_for_adult.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/look_for_adult - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

look_for_adult

Vars

minimum_distancehow far we must be from the mom

Var Details

minimum_distance

how far we must be from the mom

\ No newline at end of file diff --git a/datum/ai_planning_subtree/maintain_distance.html b/datum/ai_planning_subtree/maintain_distance.html new file mode 100644 index 0000000000000..3d17b1a5a8d12 --- /dev/null +++ b/datum/ai_planning_subtree/maintain_distance.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/maintain_distance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

maintain_distance

Step away if too close, or towards if too far

Vars

maximum_distanceHow far away will we allow our target to get?
minimum_distanceHow close will we allow our target to get?
run_away_behaviorthe run away behavior we will use
target_keyBlackboard key holding atom we want to stay away from
view_distanceHow far do we look for our target?

Var Details

maximum_distance

How far away will we allow our target to get?

minimum_distance

How close will we allow our target to get?

run_away_behavior

the run away behavior we will use

target_key

Blackboard key holding atom we want to stay away from

view_distance

How far do we look for our target?

\ No newline at end of file diff --git a/datum/ai_planning_subtree/make_babies.html b/datum/ai_planning_subtree/make_babies.html new file mode 100644 index 0000000000000..9dce2b2972b56 --- /dev/null +++ b/datum/ai_planning_subtree/make_babies.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/make_babies - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

make_babies

Reproduce with a similar mob.

Vars

chancechance to make babies
reproduce_behaviormake babies behavior we will use

Var Details

chance

chance to make babies

reproduce_behavior

make babies behavior we will use

\ No newline at end of file diff --git a/datum/ai_planning_subtree/make_carp_rift.html b/datum/ai_planning_subtree/make_carp_rift.html new file mode 100644 index 0000000000000..5bdd1f2792e4b --- /dev/null +++ b/datum/ai_planning_subtree/make_carp_rift.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/make_carp_rift - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Make carp rift

Plan a carp rift action, so basically teleport somewhere if the action is available

Vars

finish_planningIf true we finish planning after this
rift_behaviourChiefly describes where we are placing this teleport
target_keyKey to read for flee target

Var Details

finish_planning

If true we finish planning after this

rift_behaviour

Chiefly describes where we are placing this teleport

target_key

Key to read for flee target

\ No newline at end of file diff --git a/datum/ai_planning_subtree/minebot_mining.html b/datum/ai_planning_subtree/minebot_mining.html new file mode 100644 index 0000000000000..0c4702aa13aba --- /dev/null +++ b/datum/ai_planning_subtree/minebot_mining.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/minebot_mining - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

minebot_mining

Procs

SelectBehaviorsmine walls if we are on automated mining mode

Proc Details

SelectBehaviors

mine walls if we are on automated mining mode

\ No newline at end of file diff --git a/datum/ai_planning_subtree/monkey_combat.html b/datum/ai_planning_subtree/monkey_combat.html new file mode 100644 index 0000000000000..dc23ac760ead0 --- /dev/null +++ b/datum/ai_planning_subtree/monkey_combat.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/monkey_combat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

monkey_combat

Procs

SelectBehaviorsmonkey combat subtree.

Proc Details

SelectBehaviors

monkey combat subtree.

\ No newline at end of file diff --git a/datum/ai_planning_subtree/move_to_cardinal.html b/datum/ai_planning_subtree/move_to_cardinal.html new file mode 100644 index 0000000000000..26dea37add1d9 --- /dev/null +++ b/datum/ai_planning_subtree/move_to_cardinal.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/move_to_cardinal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

move_to_cardinal

Try to line up with a cardinal direction of your target

Vars

move_behaviourBehaviour to execute to line ourselves up
target_keyBlackboard key in which to store selected target

Var Details

move_behaviour

Behaviour to execute to line ourselves up

target_key

Blackboard key in which to store selected target

\ No newline at end of file diff --git a/datum/ai_planning_subtree/perch_on_target.html b/datum/ai_planning_subtree/perch_on_target.html new file mode 100644 index 0000000000000..426be311a500c --- /dev/null +++ b/datum/ai_planning_subtree/perch_on_target.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/perch_on_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

perch_on_target

subtree to perch on targets

Vars

perch_chanceperchance...
unperch_chancechance we unbuckle

Var Details

perch_chance

perchance...

unperch_chance

chance we unbuckle

\ No newline at end of file diff --git a/datum/ai_planning_subtree/possess_humans.html b/datum/ai_planning_subtree/possess_humans.html new file mode 100644 index 0000000000000..7acc93ea1a86f --- /dev/null +++ b/datum/ai_planning_subtree/possess_humans.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/possess_humans - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

possess_humans

subtree to possess humans

Vars

possess_chancechance we go possess humans

Var Details

possess_chance

chance we go possess humans

\ No newline at end of file diff --git a/datum/ai_planning_subtree/random_speech.html b/datum/ai_planning_subtree/random_speech.html new file mode 100644 index 0000000000000..fb5731ef5196a --- /dev/null +++ b/datum/ai_planning_subtree/random_speech.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/random_speech - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

random_speech

Vars

emote_hearHearable emotes
emote_seeUnlike speak_emote, the list of things in this variable only show by themselves with no spoken text. IE: Ian barks, Ian yaps
soundThe sound effects associated with this speech, if any
speakPossible lines of speech the AI can have

Procs

speakActually perform an action

Var Details

emote_hear

Hearable emotes

emote_see

Unlike speak_emote, the list of things in this variable only show by themselves with no spoken text. IE: Ian barks, Ian yaps

sound

The sound effects associated with this speech, if any

speak

Possible lines of speech the AI can have

Proc Details

speak

Actually perform an action

\ No newline at end of file diff --git a/datum/ai_planning_subtree/random_speech/legion.html b/datum/ai_planning_subtree/random_speech/legion.html new file mode 100644 index 0000000000000..48c842d6896c5 --- /dev/null +++ b/datum/ai_planning_subtree/random_speech/legion.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/random_speech/legion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

legion

Make spooky sounds, if we have a corpse inside then impersonate them

Vars

radio_speechStuff to specifically say into a radio

Var Details

radio_speech

Stuff to specifically say into a radio

\ No newline at end of file diff --git a/datum/ai_planning_subtree/ranged_skirmish.html b/datum/ai_planning_subtree/ranged_skirmish.html new file mode 100644 index 0000000000000..9eb8ba7accba2 --- /dev/null +++ b/datum/ai_planning_subtree/ranged_skirmish.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/ranged_skirmish - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ranged_skirmish

Fire a ranged attack without interrupting movement.

Vars

attack_behaviorWhat AI behaviour do we actually run?
max_rangeIf target is further away than this we don't fire
min_rangeIf target is closer than this we don't fire
target_keyBlackboard key holding target atom

Var Details

attack_behavior

What AI behaviour do we actually run?

max_range

If target is further away than this we don't fire

min_range

If target is closer than this we don't fire

target_key

Blackboard key holding target atom

\ No newline at end of file diff --git a/datum/ai_planning_subtree/reside_in_home.html b/datum/ai_planning_subtree/reside_in_home.html new file mode 100644 index 0000000000000..89dcf4a299826 --- /dev/null +++ b/datum/ai_planning_subtree/reside_in_home.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/reside_in_home - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

reside_in_home

Vars

leave_home_chancechance we leave our home
reside_chancechance we enter our home

Var Details

leave_home_chance

chance we leave our home

reside_chance

chance we enter our home

\ No newline at end of file diff --git a/datum/ai_planning_subtree/setup_shop.html b/datum/ai_planning_subtree/setup_shop.html new file mode 100644 index 0000000000000..946492b8a7809 --- /dev/null +++ b/datum/ai_planning_subtree/setup_shop.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/setup_shop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

setup_shop

Subtree to find our very first customer and set up our shop after walking right into their face

Vars

setup_shop_behaviorWhat do we do in order to offer our deals?

Var Details

setup_shop_behavior

What do we do in order to offer our deals?

\ No newline at end of file diff --git a/datum/ai_planning_subtree/shapechange_ambush.html b/datum/ai_planning_subtree/shapechange_ambush.html new file mode 100644 index 0000000000000..4ba9a26397fb1 --- /dev/null +++ b/datum/ai_planning_subtree/shapechange_ambush.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/shapechange_ambush - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shapechange_ambush

Shapeshift when we have no target, until someone has been nearby for long enough

Vars

ability_keyKey where we keep our ability
minimum_target_timeHow long to lull our target into a false sense of security
target_keyKey where we keep our target

Var Details

ability_key

Key where we keep our ability

minimum_target_time

How long to lull our target into a false sense of security

target_key

Key where we keep our target

\ No newline at end of file diff --git a/datum/ai_planning_subtree/shortcut_to_target_through_carp_rift.html b/datum/ai_planning_subtree/shortcut_to_target_through_carp_rift.html new file mode 100644 index 0000000000000..6528cbe3126bd --- /dev/null +++ b/datum/ai_planning_subtree/shortcut_to_target_through_carp_rift.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/shortcut_to_target_through_carp_rift - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Shortcut to target through carp rift

If there's a carp rift heading your way, plan to ride it to your target

Vars

minimum_distanceMinimum distance we should be from the target before we bother performing this action
search_distanceHow far away do we look for rifts?

Var Details

minimum_distance

Minimum distance we should be from the target before we bother performing this action

search_distance

How far away do we look for rifts?

\ No newline at end of file diff --git a/datum/ai_planning_subtree/simple_find_target.html b/datum/ai_planning_subtree/simple_find_target.html new file mode 100644 index 0000000000000..64a0230039b81 --- /dev/null +++ b/datum/ai_planning_subtree/simple_find_target.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/simple_find_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

simple_find_target

Vars

target_keyVariable to store target in

Var Details

target_key

Variable to store target in

\ No newline at end of file diff --git a/datum/ai_planning_subtree/sleep_with_no_target.html b/datum/ai_planning_subtree/sleep_with_no_target.html new file mode 100644 index 0000000000000..ceacba8b3687d --- /dev/null +++ b/datum/ai_planning_subtree/sleep_with_no_target.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/sleep_with_no_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sleep_with_no_target

Disables AI after a certain amount of time spent with no target, you will have to enable the AI again somewhere else

Vars

sleep_behaviourBehaviour to execute when sleeping
target_keyTarget key to interrogate

Var Details

sleep_behaviour

Behaviour to execute when sleeping

target_key

Target key to interrogate

\ No newline at end of file diff --git a/datum/ai_planning_subtree/spin_web.html b/datum/ai_planning_subtree/spin_web.html new file mode 100644 index 0000000000000..7075688fb9fab --- /dev/null +++ b/datum/ai_planning_subtree/spin_web.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/spin_web - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spin_web

Run the spin web behaviour if we have an ability to use for it

Vars

action_keyKey where the web spinning action is stored
target_keyKey where the target turf is stored

Var Details

action_key

Key where the web spinning action is stored

target_key

Key where the target turf is stored

\ No newline at end of file diff --git a/datum/ai_planning_subtree/target_retaliate.html b/datum/ai_planning_subtree/target_retaliate.html new file mode 100644 index 0000000000000..91167458f1f6d --- /dev/null +++ b/datum/ai_planning_subtree/target_retaliate.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/target_retaliate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

target_retaliate

Sets the BB target to a mob which you can see and who has recently attacked you

Vars

check_factiondo we check for faction?
hiding_place_keyBlackboard key in which to store selected target's hiding place
target_keyBlackboard key in which to store selected target
targeting_strategy_keyBlackboard key which tells us how to select valid targets

Var Details

check_faction

do we check for faction?

hiding_place_key

Blackboard key in which to store selected target's hiding place

target_key

Blackboard key in which to store selected target

targeting_strategy_key

Blackboard key which tells us how to select valid targets

\ No newline at end of file diff --git a/datum/ai_planning_subtree/targeted_mob_ability.html b/datum/ai_planning_subtree/targeted_mob_ability.html new file mode 100644 index 0000000000000..3476bc8786e9c --- /dev/null +++ b/datum/ai_planning_subtree/targeted_mob_ability.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/targeted_mob_ability - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

targeted_mob_ability

Attempts to use a mob ability on a target

Vars

ability_keyBlackboard key for the ability
finish_planningIf true we terminate planning after trying to use the ability.
target_keyBlackboard key for where the target ref is stored
use_ability_behaviourBehaviour to perform using ability

Var Details

ability_key

Blackboard key for the ability

finish_planning

If true we terminate planning after trying to use the ability.

target_key

Blackboard key for where the target ref is stored

use_ability_behaviour

Behaviour to perform using ability

\ No newline at end of file diff --git a/datum/ai_planning_subtree/targeted_mob_ability/arachnid_restrain.html b/datum/ai_planning_subtree/targeted_mob_ability/arachnid_restrain.html new file mode 100644 index 0000000000000..c8b0efad6e1b2 --- /dev/null +++ b/datum/ai_planning_subtree/targeted_mob_ability/arachnid_restrain.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/targeted_mob_ability/arachnid_restrain - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

arachnid_restrain

Procs

SelectBehaviorsonly fire ability at humans if they are not cuffed

Proc Details

SelectBehaviors

only fire ability at humans if they are not cuffed

\ No newline at end of file diff --git a/datum/ai_planning_subtree/targeted_mob_ability/wizard_spell.html b/datum/ai_planning_subtree/targeted_mob_ability/wizard_spell.html new file mode 100644 index 0000000000000..3c2283812a86b --- /dev/null +++ b/datum/ai_planning_subtree/targeted_mob_ability/wizard_spell.html @@ -0,0 +1,3 @@ +/datum/ai_planning_subtree/targeted_mob_ability/wizard_spell - /tg/ Station 13
/tg/ Station 13 - Modules - Types

wizard_spell

Cast a wizard spell. There is a minimum cooldown between spellcasts to prevent overwhelming spam.

+

Though only the primary spell is actually targeted, all spells use targeted behavior so that they +only get used in combat.

\ No newline at end of file diff --git a/datum/ai_planning_subtree/teleport_away_from_target.html b/datum/ai_planning_subtree/teleport_away_from_target.html new file mode 100644 index 0000000000000..21d6df478a5d5 --- /dev/null +++ b/datum/ai_planning_subtree/teleport_away_from_target.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/teleport_away_from_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

teleport_away_from_target

behavior to activate ability to escape from target

Vars

minimum_distanceminimum distance away from the target before we execute behavior

Var Details

minimum_distance

minimum distance away from the target before we execute behavior

\ No newline at end of file diff --git a/datum/ai_planning_subtree/territorial_struggle.html b/datum/ai_planning_subtree/territorial_struggle.html new file mode 100644 index 0000000000000..b1b2e33f646c5 --- /dev/null +++ b/datum/ai_planning_subtree/territorial_struggle.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/territorial_struggle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

territorial_struggle

Vars

hostility_chancechance we become hostile to another cat

Var Details

hostility_chance

chance we become hostile to another cat

\ No newline at end of file diff --git a/datum/ai_planning_subtree/travel_to_point.html b/datum/ai_planning_subtree/travel_to_point.html new file mode 100644 index 0000000000000..0b54e86033bb0 --- /dev/null +++ b/datum/ai_planning_subtree/travel_to_point.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/travel_to_point - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

travel_to_point

Simply walk to a location

Vars

location_keyBlackboard key where we travel a place we walk to
travel_behaviourWhat do we do in order to travel

Var Details

location_key

Blackboard key where we travel a place we walk to

travel_behaviour

What do we do in order to travel

\ No newline at end of file diff --git a/datum/ai_planning_subtree/use_mob_ability.html b/datum/ai_planning_subtree/use_mob_ability.html new file mode 100644 index 0000000000000..5443bd7089189 --- /dev/null +++ b/datum/ai_planning_subtree/use_mob_ability.html @@ -0,0 +1,2 @@ +/datum/ai_planning_subtree/use_mob_ability - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

use_mob_ability

Simple behaviours which simply try to use an ability whenever it is available. +For something which wants a target try targeted_mob_ability.

Vars

ability_keyBlackboard key for the ability
finish_planningIf true we terminate planning after trying to use the ability.
use_ability_behaviourBehaviour to perform using ability

Var Details

ability_key

Blackboard key for the ability

finish_planning

If true we terminate planning after trying to use the ability.

use_ability_behaviour

Behaviour to perform using ability

\ No newline at end of file diff --git a/datum/ai_planning_subtree/use_mob_ability/mook_jump.html b/datum/ai_planning_subtree/use_mob_ability/mook_jump.html new file mode 100644 index 0000000000000..8bdadcf43fb42 --- /dev/null +++ b/datum/ai_planning_subtree/use_mob_ability/mook_jump.html @@ -0,0 +1 @@ +/datum/ai_planning_subtree/use_mob_ability/mook_jump - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mook_jump

Procs

SelectBehaviorsjump towards the village when we have found ore or there is a storm coming

Proc Details

SelectBehaviors

jump towards the village when we have found ore or there is a storm coming

\ No newline at end of file diff --git a/datum/air_alarm_mode.html b/datum/air_alarm_mode.html new file mode 100644 index 0000000000000..d42cdea13ad9e --- /dev/null +++ b/datum/air_alarm_mode.html @@ -0,0 +1,13 @@ +/datum/air_alarm_mode - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

air_alarm_mode

Various modes that an /obj/machinery/airalarm can assume.

Vars

dangerTRUE if this mode can be dangerous if selected.
descMore detail on the mode.
emagTRUE if the air alarm needs to be emagged for this to be selected.
nameName of the mode.

Procs

apply

Var Details

danger

TRUE if this mode can be dangerous if selected.

desc

More detail on the mode.

emag

TRUE if the air alarm needs to be emagged for this to be selected.

name

Name of the mode.

Proc Details

apply

\ No newline at end of file diff --git a/datum/air_alarm_mode/cycle.html b/datum/air_alarm_mode/cycle.html new file mode 100644 index 0000000000000..61efb67609baf --- /dev/null +++ b/datum/air_alarm_mode/cycle.html @@ -0,0 +1,3 @@ +/datum/air_alarm_mode/cycle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cycle

Procs

applySame as /datum/air_alarm_mode/siphon/apply
replaceSpecial case for cycles. Cycles need to refill the air again after it's scrubbed out so this proc is called. +Same as /datum/air_alarm_mode/filtering/apply

Proc Details

apply

Same as /datum/air_alarm_mode/siphon/apply

replace

Special case for cycles. Cycles need to refill the air again after it's scrubbed out so this proc is called. +Same as /datum/air_alarm_mode/filtering/apply

\ No newline at end of file diff --git a/datum/alarm_handler.html b/datum/alarm_handler.html new file mode 100644 index 0000000000000..6df6aa6b4f5cc --- /dev/null +++ b/datum/alarm_handler.html @@ -0,0 +1,5 @@ +/datum/alarm_handler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

alarm_handler

Represents a single source of alarms, one alarm handler will only ever count for one alarm per listener

Vars

sent_alarmsA list of alarm type -> list of areas we currently have alarms in
source_atomOur source atom

Procs

clear_alarmClears an alarm from any interested listeners
clear_alarm_from_areaExists so we can request that the alarms from an area are cleared, even if our source atom is no longer in that area
send_alarmSends an alarm to any interested things, does some checks to prevent unneeded work +Important to note is that source_atom is not held as a ref, we're used as a proxy to prevent hard deletes +optional_camera should only be used when you have one camera you want to pass along to alarm listeners, most of the time you should have no use for it

Var Details

sent_alarms

A list of alarm type -> list of areas we currently have alarms in

source_atom

Our source atom

Proc Details

clear_alarm

Clears an alarm from any interested listeners

clear_alarm_from_area

Exists so we can request that the alarms from an area are cleared, even if our source atom is no longer in that area

send_alarm

Sends an alarm to any interested things, does some checks to prevent unneeded work +Important to note is that source_atom is not held as a ref, we're used as a proxy to prevent hard deletes +optional_camera should only be used when you have one camera you want to pass along to alarm listeners, most of the time you should have no use for it

\ No newline at end of file diff --git a/datum/alarm_listener.html b/datum/alarm_listener.html new file mode 100644 index 0000000000000..4262db0d7ae42 --- /dev/null +++ b/datum/alarm_listener.html @@ -0,0 +1,5 @@ +/datum/alarm_listener - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

alarm_listener

Vars

accepting_alarm_changesShould we allow alarm changes to go through or not
alarmsList of alarm type -> list of area name -> list(area, ref to area's cameras, list(sources))
allowed_areasList of allowed areas. if this is null it's ignored
allowed_z_levelsList of valid source z levels, ignored if null

Procs

NewAccepts a list of alarm types to pay attention to, a list of valid z levels, and a list of valid areas. areas and zlevels are ignored if null
add_alarmAdds an alarm to our alarms list, you shouldn't be calling this manually +It should all be handled by the signal listening we do, unless you want to only send an alarm to one listener
allow_alarm_changesDoes what it says on the tin, exists for signal hooking
clear_alarmRemoves an alarm to our alarms list, you probably shouldn't be calling this manually +It should all be handled by the signal listening we do, unless you want to only remove an alarm to one listener
clear_camera_refUsed to manually clear camera refs if one is ref'd directly
prevent_alarm_changesDoes what it says on the tin, exists for signal hooking

Var Details

accepting_alarm_changes

Should we allow alarm changes to go through or not

alarms

List of alarm type -> list of area name -> list(area, ref to area's cameras, list(sources))

allowed_areas

List of allowed areas. if this is null it's ignored

allowed_z_levels

List of valid source z levels, ignored if null

Proc Details

New

Accepts a list of alarm types to pay attention to, a list of valid z levels, and a list of valid areas. areas and zlevels are ignored if null

add_alarm

Adds an alarm to our alarms list, you shouldn't be calling this manually +It should all be handled by the signal listening we do, unless you want to only send an alarm to one listener

allow_alarm_changes

Does what it says on the tin, exists for signal hooking

clear_alarm

Removes an alarm to our alarms list, you probably shouldn't be calling this manually +It should all be handled by the signal listening we do, unless you want to only remove an alarm to one listener

clear_camera_ref

Used to manually clear camera refs if one is ref'd directly

prevent_alarm_changes

Does what it says on the tin, exists for signal hooking

\ No newline at end of file diff --git a/datum/anomaly_placer.html b/datum/anomaly_placer.html new file mode 100644 index 0000000000000..6a01952927969 --- /dev/null +++ b/datum/anomaly_placer.html @@ -0,0 +1,9 @@ +/datum/anomaly_placer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

anomaly_placer

Procs

findValidAreaReturns an area which is safe to place an anomaly inside.
findValidTurfReturns a turf which is safe to place an anomaly on.
generateAllowedAreasPopulates the allowed areas list.
is_valid_destinationReturns true if the provided turf is valid to place an anomaly on.

Proc Details

findValidArea

Returns an area which is safe to place an anomaly inside.

findValidTurf

Returns a turf which is safe to place an anomaly on.

+

Arguments

+

generateAllowedAreas

Populates the allowed areas list.

is_valid_destination

Returns true if the provided turf is valid to place an anomaly on.

+

Arguments

+
\ No newline at end of file diff --git a/datum/anonymous_theme.html b/datum/anonymous_theme.html new file mode 100644 index 0000000000000..74bcb63092c72 --- /dev/null +++ b/datum/anonymous_theme.html @@ -0,0 +1,22 @@ +/datum/anonymous_theme - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

anonymous_theme

Vars

extras_enabledextra non-name related fluff that is optional for admins to enable. One example is the wizard theme giving everyone random robes.
extras_promptif admins get the option to enable extras, this is the prompt to enable it.
namename of the anonymous theme, seen by admins pressing buttons to enable this

Procs

announce_to_all_playersannounce_to_all_players: sends an annonuncement.
anonymous_ai_nameanonymous_ai_name: generates a random name, based off of whatever the round's anonymousnames is set to (but for sillycones).
anonymous_all_playersanonymous_all_players: sets all crewmembers on station anonymous.
anonymous_nameanonymous_name: generates a random name, based off of whatever the round's anonymousnames is set to.
player_extrasplayer_extras: optional effects enabled here from a proc that will trigger for every player renamed.
restore_all_playersrestore_all_players: sets all crewmembers on station back to their preference name.
theme_extrastheme_extras: optional effects enabled here from a proc that will trigger once on creation of anon mode.

Var Details

extras_enabled

extra non-name related fluff that is optional for admins to enable. One example is the wizard theme giving everyone random robes.

extras_prompt

if admins get the option to enable extras, this is the prompt to enable it.

name

name of the anonymous theme, seen by admins pressing buttons to enable this

Proc Details

announce_to_all_players

announce_to_all_players: sends an annonuncement.

+

it's in a proc so it can be a non-constant expression.

anonymous_ai_name

anonymous_ai_name: generates a random name, based off of whatever the round's anonymousnames is set to (but for sillycones).

+

examples: +Employee = "Employee Assistant Assuming Delta" +Wizards = "Crystallized Knowledge Nexus +23" +Spider Clan = "'Leaping Viper' MSO" +Stations? = "System Port 10" +Arguments:

+

anonymous_all_players

anonymous_all_players: sets all crewmembers on station anonymous.

+

called when the anonymous theme is created regardless of extra theming

anonymous_name

anonymous_name: generates a random name, based off of whatever the round's anonymousnames is set to.

+

examples: +Employee = "Employee Q5460Z" +Wizards = "Gulstaff of Void" +Spider Clan = "Initiate Hazuki" +Stations? = "Refactor Port One" +Arguments:

+

player_extras

player_extras: optional effects enabled here from a proc that will trigger for every player renamed.

restore_all_players

restore_all_players: sets all crewmembers on station back to their preference name.

+

called when the anonymous theme is removed regardless of extra theming

theme_extras

theme_extras: optional effects enabled here from a proc that will trigger once on creation of anon mode.

\ No newline at end of file diff --git a/datum/antagonist.html b/datum/antagonist.html new file mode 100644 index 0000000000000..c8298b69cc656 --- /dev/null +++ b/datum/antagonist.html @@ -0,0 +1,39 @@ +/datum/antagonist - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

antagonist

Vars

antag_flagsFlags for antags to turn on or off and check!
antag_hud_nameName of the antag hud we provide to this mob.
antag_memoryString dialogue that is added to the player's in-round notes and memories regarding specifics of that antagonist, eg. the nuke code for nuke ops, or your unlock code for traitors.
antag_moodlettypepath of moodlet that the mob will gain when granted this antagonist type.
antag_recipesthe list of recipes that an antag will learn/unlearn on gain/loss
antagpanel_categoryAntagpanel will display these together, REQUIRED
can_assign_self_objectivesIf true, this antagonist can assign themself a new objective
can_coexist_with_othersWhether or not the person will be able to have more than one datum
can_elimination_hijackIf these antags are alone when a shuttle elimination happens.
count_against_dynamic_roll_chanceIf set to true, the antag will not be added to the living antag list.
default_custom_objectiveDefault to fill in when entering a custom objective.
hardcore_random_bonusWhether we give a hardcore random bonus for greentexting as this antagonist while playing hardcore random
hijack_speedIf above 0, this is the multiplier for the speed at which we hijack the shuttle. Do not directly read, use hijack_speed().
hud_iconThe antag hud's icon file
info_button_refweakref to button to access antag interface
job_rankThe define string we use to identify the role for bans/player polls to spawn a random new one in.
namePublic name for this antagonist. Appears for player prompts and round-end reports.
objectivesList of the objective datums that this role currently has, completing all objectives at round-end will cause this antagonist to greentext.
ownerMind that owns this datum
prevent_roundtype_conversionIf false, the roundtype will still convert with this antag active
preview_outfitThe typepath for the outfit to show in the preview for the preferences menu.
replace_bannedShould replace jobbanned player with ghosts if granted.
roundend_categorySection of roundend report, datums with same category will be displayed together, also default header for the section
show_in_antagpanelThis will hide adding this antag type in antag panel, use only for internal subtypes that shouldn't be added directly but still show if possessed by mind
show_in_roundendSet to false to hide the antagonists from roundend report
show_name_in_check_antagonistsWill append antagonist name in admin listings - use for categories that share more than one antag type
show_to_ghostsShould this antagonist be shown as antag to ghosts? Shouldn't be used for stealthy antagonists like traitors
silentSilent will prevent the gain/lose texts to show
stinger_soundA path to the audio stinger that plays upon gaining this datum.
suicide_cryThe battlecry this antagonist shouts when suiciding with C4/X4.
team_hud_refA weakref to the HUD shown to teammates, created by add_team_hud
typecache_datum_blacklistList of datums this type can't coexist with
ui_namename of the UI that will try to open, right now using a generic ui
view_exploitablesShould this antagonist be allowed to view exploitable information?

Procs

add_team_hudAdds a HUD that will show you other members with the same antagonist. +If an antag typepath is passed to antag_to_check, will check that, otherwise will use the source type.
admin_addCalled when using admin tools to give antag status
admin_removeCalled when removing antagonist using admin tools
antag_panel_dataAdditional data to display in the antagonist panel section. +For example, nuke disk code, genome count, etc
clear_antag_moodiesProc that removes this antagonist's ascribed moodlet from the player.
farewellProc that sends fluff or instructional messages to the player when they lose this antag datum. +Use this proc for playing sounds, sending alerts, or otherwise informing the player that they're no longer a specific antagonist type.
finish_preview_iconGiven an icon, will crop it to be consistent of those in the preferences menu. +Not necessary, and in fact will look bad if it's anything other than a human.
forge_objectivesUsed to create objectives for the antagonist.
get_admin_commandsList of ["Command"] = CALLBACK(), user will be appeneded to callback arguments on execution
get_objectivesgeneric helper to send objectives as data through tgui.
get_preview_iconReturns the icon to show on the preferences menu.
get_teamProc that will return the team this antagonist belongs to, when called. Helpful with antagonists that may belong to multiple potential teams in a single round.
give_antag_moodiesProc that assigns this antagonist's ascribed moodlet to the player.
greetProc that sends fluff or instructional messages to the player when they are given this antag datum. +Use this proc for playing sounds, sending alerts, or helping to setup non-gameplay influencing aspects of the antagonist type.
handle_clown_mutationHandles adding and removing the clumsy mutation from clown antags. Gets called in apply/remove_innate_effects
hijack_speedGets how fast we can hijack the shuttle, return 0 for can not hijack. +Defaults to hijack_speed var, override for custom stuff like buffing hijack speed for hijack objectives or something.
hud_image_onTakes a location, returns an image drawing "on" it that matches this antag datum's hud icon
is_bannedProc that checks the sent mob aganst the banlistfor this antagonist. +Returns FALSE if no mob is sent, or the mob is not found to be banned.
on_body_transferCalled by the transfer_to() mind proc after the mind (mind.current and new_character.mind) has moved but before the player (key and client) is transferred.
on_mindshieldThis is called when the antagonist is successfully mindshielded.
play_stingerPlays the antag stinger sound, if we have one
pre_mindshieldThis is called when the antagonist is being mindshielded.
render_preview_outfitCreates an icon from the preview outfit. +Custom implementors of get_preview_icon should use this, as the +result of get_preview_icon is expected to be the completed version.
replace_banned_playerProc that replaces a player who cannot play a specific antagonist due to being banned via a poll, and alerts the player of their being on the banlist.
roundend_reportProc that sends string information for the end-round report window to the server. +This runs on every instance of every antagonist that exists at the end of the round. +This is the body of the message, sandwiched between roundend_report_header and roundend_report_footer.
roundend_report_footerProc that sends string data for the round-end report. +Displayed after roundend_report and roundend_report_footer. +Appears at the end of the roundend_catagory section.
roundend_report_headerProc that sends string data for the round-end report. +Displayed before roundend_report and roundend_report_footer. +Appears at start of roundend_catagory section.
submit_player_objectiveAllows player to replace their objectives with a new one they wrote themselves.
ui_interactANTAGONIST UI STUFF

Var Details

antag_flags

Flags for antags to turn on or off and check!

antag_hud_name

Name of the antag hud we provide to this mob.

antag_memory

String dialogue that is added to the player's in-round notes and memories regarding specifics of that antagonist, eg. the nuke code for nuke ops, or your unlock code for traitors.

antag_moodlet

typepath of moodlet that the mob will gain when granted this antagonist type.

antag_recipes

the list of recipes that an antag will learn/unlearn on gain/loss

antagpanel_category

Antagpanel will display these together, REQUIRED

can_assign_self_objectives

If true, this antagonist can assign themself a new objective

can_coexist_with_others

Whether or not the person will be able to have more than one datum

can_elimination_hijack

If these antags are alone when a shuttle elimination happens.

count_against_dynamic_roll_chance

If set to true, the antag will not be added to the living antag list.

default_custom_objective

Default to fill in when entering a custom objective.

hardcore_random_bonus

Whether we give a hardcore random bonus for greentexting as this antagonist while playing hardcore random

hijack_speed

If above 0, this is the multiplier for the speed at which we hijack the shuttle. Do not directly read, use hijack_speed().

hud_icon

The antag hud's icon file

info_button_ref

weakref to button to access antag interface

job_rank

The define string we use to identify the role for bans/player polls to spawn a random new one in.

name

Public name for this antagonist. Appears for player prompts and round-end reports.

objectives

List of the objective datums that this role currently has, completing all objectives at round-end will cause this antagonist to greentext.

owner

Mind that owns this datum

prevent_roundtype_conversion

If false, the roundtype will still convert with this antag active

preview_outfit

The typepath for the outfit to show in the preview for the preferences menu.

replace_banned

Should replace jobbanned player with ghosts if granted.

roundend_category

Section of roundend report, datums with same category will be displayed together, also default header for the section

show_in_antagpanel

This will hide adding this antag type in antag panel, use only for internal subtypes that shouldn't be added directly but still show if possessed by mind

show_in_roundend

Set to false to hide the antagonists from roundend report

show_name_in_check_antagonists

Will append antagonist name in admin listings - use for categories that share more than one antag type

show_to_ghosts

Should this antagonist be shown as antag to ghosts? Shouldn't be used for stealthy antagonists like traitors

silent

Silent will prevent the gain/lose texts to show

stinger_sound

A path to the audio stinger that plays upon gaining this datum.

suicide_cry

The battlecry this antagonist shouts when suiciding with C4/X4.

team_hud_ref

A weakref to the HUD shown to teammates, created by add_team_hud

typecache_datum_blacklist

List of datums this type can't coexist with

ui_name

name of the UI that will try to open, right now using a generic ui

view_exploitables

Should this antagonist be allowed to view exploitable information?

Proc Details

add_team_hud

Adds a HUD that will show you other members with the same antagonist. +If an antag typepath is passed to antag_to_check, will check that, otherwise will use the source type.

admin_add

Called when using admin tools to give antag status

admin_remove

Called when removing antagonist using admin tools

antag_panel_data

Additional data to display in the antagonist panel section. +For example, nuke disk code, genome count, etc

clear_antag_moodies

Proc that removes this antagonist's ascribed moodlet from the player.

farewell

Proc that sends fluff or instructional messages to the player when they lose this antag datum. +Use this proc for playing sounds, sending alerts, or otherwise informing the player that they're no longer a specific antagonist type.

finish_preview_icon

Given an icon, will crop it to be consistent of those in the preferences menu. +Not necessary, and in fact will look bad if it's anything other than a human.

forge_objectives

Used to create objectives for the antagonist.

get_admin_commands

List of ["Command"] = CALLBACK(), user will be appeneded to callback arguments on execution

get_objectives

generic helper to send objectives as data through tgui.

get_preview_icon

Returns the icon to show on the preferences menu.

get_team

Proc that will return the team this antagonist belongs to, when called. Helpful with antagonists that may belong to multiple potential teams in a single round.

give_antag_moodies

Proc that assigns this antagonist's ascribed moodlet to the player.

greet

Proc that sends fluff or instructional messages to the player when they are given this antag datum. +Use this proc for playing sounds, sending alerts, or helping to setup non-gameplay influencing aspects of the antagonist type.

handle_clown_mutation

Handles adding and removing the clumsy mutation from clown antags. Gets called in apply/remove_innate_effects

hijack_speed

Gets how fast we can hijack the shuttle, return 0 for can not hijack. +Defaults to hijack_speed var, override for custom stuff like buffing hijack speed for hijack objectives or something.

hud_image_on

Takes a location, returns an image drawing "on" it that matches this antag datum's hud icon

is_banned

Proc that checks the sent mob aganst the banlistfor this antagonist. +Returns FALSE if no mob is sent, or the mob is not found to be banned.

+

on_body_transfer

Called by the transfer_to() mind proc after the mind (mind.current and new_character.mind) has moved but before the player (key and client) is transferred.

on_mindshield

This is called when the antagonist is successfully mindshielded.

play_stinger

Plays the antag stinger sound, if we have one

pre_mindshield

This is called when the antagonist is being mindshielded.

render_preview_outfit

Creates an icon from the preview outfit. +Custom implementors of get_preview_icon should use this, as the +result of get_preview_icon is expected to be the completed version.

replace_banned_player

Proc that replaces a player who cannot play a specific antagonist due to being banned via a poll, and alerts the player of their being on the banlist.

roundend_report

Proc that sends string information for the end-round report window to the server. +This runs on every instance of every antagonist that exists at the end of the round. +This is the body of the message, sandwiched between roundend_report_header and roundend_report_footer.

Proc that sends string data for the round-end report. +Displayed after roundend_report and roundend_report_footer. +Appears at the end of the roundend_catagory section.

roundend_report_header

Proc that sends string data for the round-end report. +Displayed before roundend_report and roundend_report_footer. +Appears at start of roundend_catagory section.

submit_player_objective

Allows player to replace their objectives with a new one they wrote themselves.

+

ui_interact

ANTAGONIST UI STUFF

\ No newline at end of file diff --git a/datum/antagonist/abductee.html b/datum/antagonist/abductee.html new file mode 100644 index 0000000000000..1327f93127a52 --- /dev/null +++ b/datum/antagonist/abductee.html @@ -0,0 +1,3 @@ +/datum/antagonist/abductee - /tg/ Station 13
/tg/ Station 13 - Modules - Types

abductee

Abductees

+

Abductees are created by being operated on by abductors. They get some instructions about not +remembering the abduction, plus some random weird objectives for them to act crazy with.

\ No newline at end of file diff --git a/datum/antagonist/abductor.html b/datum/antagonist/abductor.html new file mode 100644 index 0000000000000..42291e8b67b57 --- /dev/null +++ b/datum/antagonist/abductor.html @@ -0,0 +1 @@ +/datum/antagonist/abductor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

abductor

Vars

role_jobType path for the associated job datum.

Var Details

role_job

Type path for the associated job datum.

\ No newline at end of file diff --git a/datum/antagonist/assault_operative.html b/datum/antagonist/assault_operative.html new file mode 100644 index 0000000000000..1bf0d284dea28 --- /dev/null +++ b/datum/antagonist/assault_operative.html @@ -0,0 +1 @@ +/datum/antagonist/assault_operative - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

assault_operative

ASSAULT OPERATIVE ANTAG DATUM

Vars

assault_operative_default_outfitThe default outfit given BEFORE they choose their equipment.
assault_teamThe team linked to this antagonist datum.
pinpointerA link to our internal pinpointer.
preview_outfit_behindIn the preview icon, the operatives who are behind the leader
send_to_spawnpointShould we move the operative to a designated spawn point?

Var Details

assault_operative_default_outfit

The default outfit given BEFORE they choose their equipment.

assault_team

The team linked to this antagonist datum.

pinpointer

A link to our internal pinpointer.

preview_outfit_behind

In the preview icon, the operatives who are behind the leader

send_to_spawnpoint

Should we move the operative to a designated spawn point?

\ No newline at end of file diff --git a/datum/antagonist/battlecruiser.html b/datum/antagonist/battlecruiser.html new file mode 100644 index 0000000000000..fcf517fce88bb --- /dev/null +++ b/datum/antagonist/battlecruiser.html @@ -0,0 +1 @@ +/datum/antagonist/battlecruiser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

battlecruiser

Vars

battlecruiser_teamTeam to place the crewmember on.

Var Details

battlecruiser_team

Team to place the crewmember on.

\ No newline at end of file diff --git a/datum/antagonist/bitrunning_glitch.html b/datum/antagonist/bitrunning_glitch.html new file mode 100644 index 0000000000000..94d10391c5392 --- /dev/null +++ b/datum/antagonist/bitrunning_glitch.html @@ -0,0 +1 @@ +/datum/antagonist/bitrunning_glitch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bitrunning_glitch

Vars

threatMinimum Qserver threat required to spawn this mob. This is subtracted (x/2) from the server thereafter.

Procs

convert_agentSets up the agent so that they look like cyber police && don't have an account ID
fix_agent_idResets the agent's ID and name. Needed so this doesn't show as "unknown"

Var Details

threat

Minimum Qserver threat required to spawn this mob. This is subtracted (x/2) from the server thereafter.

Proc Details

convert_agent

Sets up the agent so that they look like cyber police && don't have an account ID

fix_agent_id

Resets the agent's ID and name. Needed so this doesn't show as "unknown"

\ No newline at end of file diff --git a/datum/antagonist/blob.html b/datum/antagonist/blob.html new file mode 100644 index 0000000000000..db7307692bd74 --- /dev/null +++ b/datum/antagonist/blob.html @@ -0,0 +1 @@ +/datum/antagonist/blob - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blob

Vars

has_already_poppedHas the blob already popped inside of the round? This is here to prevent blobs from "respawning"
pop_actionAction to release a blob infection
starting_points_human_blobInitial points for a human blob

Var Details

has_already_popped

Has the blob already popped inside of the round? This is here to prevent blobs from "respawning"

pop_action

Action to release a blob infection

starting_points_human_blob

Initial points for a human blob

\ No newline at end of file diff --git a/datum/antagonist/blob_minion.html b/datum/antagonist/blob_minion.html new file mode 100644 index 0000000000000..ba6d50a1f1f55 --- /dev/null +++ b/datum/antagonist/blob_minion.html @@ -0,0 +1 @@ +/datum/antagonist/blob_minion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blob_minion

Vars

overmindThe blob core that this minion is attached to

Var Details

overmind

The blob core that this minion is attached to

\ No newline at end of file diff --git a/datum/antagonist/bloodsucker.html b/datum/antagonist/bloodsucker.html new file mode 100644 index 0000000000000..062eba3a73dd8 --- /dev/null +++ b/datum/antagonist/bloodsucker.html @@ -0,0 +1,70 @@ +/datum/antagonist/bloodsucker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bloodsucker

Vars

all_bloodsucker_powersStatic typecache of all bloodsucker powers.
blood_displayBlood display HUD
blood_level_gainUsed for Bloodsuckers gaining levels from drinking blood
bloodsucker_blood_volumeHow much blood we have, starting off at default blood levels. Do not adjust this directly, use adjustBloodVolume(), and use getBloodVolume() to get the current value.
bloodsucker_levelHow many ranks we have, don't modify this directly, use AdjustRank() and use GetRank() to get the current value.
bloodsucker_level_unspentUnspent ranks, don't modify this directly, use AdjustUnspentRank() and use GetUnspentRank() to get the current value.
bloodsucker_nameUsed for assigning your name
bloodsucker_reputationUsed for assigning your reputation
bloodsucker_spam_healingTimer between alerts for Healing messages
bloodsucker_spam_sol_burnTimer between alerts for Burn messages
bloodsucker_spam_torporTimer between exiting torpor
bloodsucker_titleUsed for assigning your title
bloodsucker_traitsDefault Bloodsucker traits
broke_masqueradeHave we been broken the Masquerade?
frenziedIf we are currently in a Frenzy
ghoul_banned_antagsAntagonists that cannot be Ghoulized no matter what
ghoulsGhouls under my control. Periodically remove the dead ones.
humanity_lostAmount of Humanity lost, don't modify this directly, use AddHumanityLost(), and use GetHumanityLost() to get the current value.
masquerade_infractionsHow many Masquerade Infractions do we have?
max_blood_volumeHow much blood we can have without it deckaying quickly, increases per level.
powersALL Powers currently owned
sol_levelsHow many levels you can get from Sol
special_ghoulsSpecial ghouls I own, to not have double of the same type.
vamprank_displayVampire level display HUD
ventrue_siredsired by a ventrue

Procs

AmValidAntagChecks if the target has antag datums and, if so, +are they allowed to be Ghoulized, or not, or banned. +Args: +target - The person we check for antag datums.
BuyPowerCalled when a Bloodsucker buys a power: (power)
DisableAllPowersDisables all powers, accounting for torpor
FinalDeathGibs the Bloodsucker, roundremoving them.
GetBloodVolume
HandleDeathFINAL DEATH
HandleHealing
LifeTickRuns from COMSIG_LIVING_LIFE, handles Bloodsucker constant proccesses.
RemovePowerCalled when a Bloodsucker loses a power: (power)
SelectFirstNameReturns a First name for the Bloodsucker.
SelectReputationReturns a Reputation for the Bloodsucker.
SelectTitleReturns a Title for the Bloodsucker.
antag_listing_nameName shown on antag list
antag_listing_statusWhatever interesting things happened to the antag admins should know about +Include additional information about antag in this part
apply_innate_effectsApply innate effects is everything given to the mob +When a body is tranferred, this is called on the new mob +while on_gain is called ONCE per ANTAG, this is called ONCE per BODY.
assign_clan_and_baneGives Bloodsuckers the ability to choose a Clan. +If they are already in a Clan, or is in a Frenzy, they will not be able to do so. +The arg is optional and should really only be an Admin setting a Clan for a player. +If set however, it will give them the control of their Clan instead of the Bloodsucker. +This is selected through a radial menu over the player's body, even when an Admin is setting it. +Args: +person_selecting - Mob override for stuff like Admins selecting someone's clan.
break_masqueradeWhen a Bloodsucker breaks the Masquerade, they get their HUD icon changed, and Malkavian Bloodsuckers get alerted.
can_make_ghoul
check_begin_torpor
clear_powers_and_stats##clear_power_and_stats()
fix_masqueradeThis is admin-only of reverting a broken masquerade, sadly it doesn't remove the Malkavian objectives yet.
free_all_ghoulsCalled when a Bloodsucker reaches Final Death +Releases all Ghouls and gives them the ex_ghoul datum.
handle_feedingmult: SILENT feed is 1/3 the amount
is_headchecks if we're a brainmob inside a brain & the brain is inside a head
is_valid_coffinis it something that is close enough to a coffin to let us heal/level up in it?
make_ghoulFirst will check if the target can be turned into a Ghoul, if so then it will +turn them into one, log it, sync their minds, then updates the Rank +Args: +conversion_target - The person converted.
on_gainCalled when you get the antag datum, called only ONCE per antagonist.
on_removalCalled by the remove_antag_datum() and remove_all_antag_datums() mind procs for the antag datum to handle its own removal and deletion.
on_sol_endCalled when Sol first ends.
on_species_gainOverride some properties of incompatible species
remove_innate_effectsRemove innate effects is everything given to the mob +When a body is transferred, this is called on the old mob. +while on_removal is called ONCE per ANTAG, this is called ONCE per BODY.
return_vamp_examineReturns a Vampire's examine strings. +Args: +viewer - The person examining.
sol_near_startCalled when Sol is near starting.
sol_rank_up
talking_headTurns the bloodsucker into a wacky talking head.
update_bloodMakes your blood_volume look like your bloodsucker blood, unless you're Masquerading.
update_blood_hudUpdated every time blood is changed by either

Var Details

all_bloodsucker_powers

Static typecache of all bloodsucker powers.

blood_display

Blood display HUD

blood_level_gain

Used for Bloodsuckers gaining levels from drinking blood

bloodsucker_blood_volume

How much blood we have, starting off at default blood levels. Do not adjust this directly, use adjustBloodVolume(), and use getBloodVolume() to get the current value.

bloodsucker_level

How many ranks we have, don't modify this directly, use AdjustRank() and use GetRank() to get the current value.

bloodsucker_level_unspent

Unspent ranks, don't modify this directly, use AdjustUnspentRank() and use GetUnspentRank() to get the current value.

bloodsucker_name

Used for assigning your name

bloodsucker_reputation

Used for assigning your reputation

bloodsucker_spam_healing

Timer between alerts for Healing messages

bloodsucker_spam_sol_burn

Timer between alerts for Burn messages

bloodsucker_spam_torpor

Timer between exiting torpor

bloodsucker_title

Used for assigning your title

bloodsucker_traits

Default Bloodsucker traits

broke_masquerade

Have we been broken the Masquerade?

frenzied

If we are currently in a Frenzy

ghoul_banned_antags

Antagonists that cannot be Ghoulized no matter what

ghouls

Ghouls under my control. Periodically remove the dead ones.

humanity_lost

Amount of Humanity lost, don't modify this directly, use AddHumanityLost(), and use GetHumanityLost() to get the current value.

masquerade_infractions

How many Masquerade Infractions do we have?

max_blood_volume

How much blood we can have without it deckaying quickly, increases per level.

powers

ALL Powers currently owned

sol_levels

How many levels you can get from Sol

special_ghouls

Special ghouls I own, to not have double of the same type.

vamprank_display

Vampire level display HUD

ventrue_sired

sired by a ventrue

Proc Details

AmValidAntag

Checks if the target has antag datums and, if so, +are they allowed to be Ghoulized, or not, or banned. +Args: +target - The person we check for antag datums.

BuyPower

Called when a Bloodsucker buys a power: (power)

DisableAllPowers

Disables all powers, accounting for torpor

FinalDeath

Gibs the Bloodsucker, roundremoving them.

GetBloodVolume

BLOOD STUFF

HandleDeath

FINAL DEATH

HandleHealing

HEALING

+

Constantly runs on Bloodsucker's LifeTick, and is increased by being in Torpor/Coffins

LifeTick

Runs from COMSIG_LIVING_LIFE, handles Bloodsucker constant proccesses.

RemovePower

Called when a Bloodsucker loses a power: (power)

SelectFirstName

Returns a First name for the Bloodsucker.

SelectReputation

Returns a Reputation for the Bloodsucker.

SelectTitle

Returns a Title for the Bloodsucker.

antag_listing_name

Name shown on antag list

antag_listing_status

Whatever interesting things happened to the antag admins should know about +Include additional information about antag in this part

apply_innate_effects

Apply innate effects is everything given to the mob +When a body is tranferred, this is called on the new mob +while on_gain is called ONCE per ANTAG, this is called ONCE per BODY.

assign_clan_and_bane

Gives Bloodsuckers the ability to choose a Clan. +If they are already in a Clan, or is in a Frenzy, they will not be able to do so. +The arg is optional and should really only be an Admin setting a Clan for a player. +If set however, it will give them the control of their Clan instead of the Bloodsucker. +This is selected through a radial menu over the player's body, even when an Admin is setting it. +Args: +person_selecting - Mob override for stuff like Admins selecting someone's clan.

break_masquerade

When a Bloodsucker breaks the Masquerade, they get their HUD icon changed, and Malkavian Bloodsuckers get alerted.

can_make_ghoul

can_make_ghoul

+

Checks if the person is allowed to turn into the Bloodsucker's +Ghoul, ensuring they are a player and valid. +If they are a Ghoul themselves, will check if their master +has broken the Masquerade, to steal them. +Args: +conversion_target - Person being ghoulized

check_begin_torpor

Torpor

+

Torpor is what deals with the Bloodsucker falling asleep, their healing, the effects, ect. +This is basically what Sol is meant to do to them, but they can also trigger it manually if they wish to heal, as Burn is only healed through Torpor. +You cannot manually exit Torpor, it is instead entered/exited by:

+

Torpor is triggered by:

+

clear_powers_and_stats

##clear_power_and_stats()

+

Removes all Bloodsucker related Powers/Stats changes, setting them back to pre-Bloodsucker +Order of steps and reason why: +Remove clan - Clans like Nosferatu give Powers on removal, we have to make sure this is given before removing Powers. +Powers - Remove all Powers, so things like Masquerade are off. +Species traits, Traits, Language - Misc stuff, has no priority. +Organs - At the bottom to ensure everything that changes them has reverted themselves already. +Update Sight - Done after Eyes are regenerated.

fix_masquerade

This is admin-only of reverting a broken masquerade, sadly it doesn't remove the Malkavian objectives yet.

free_all_ghouls

Called when a Bloodsucker reaches Final Death +Releases all Ghouls and gives them the ex_ghoul datum.

handle_feeding

mult: SILENT feed is 1/3 the amount

is_head

checks if we're a brainmob inside a brain & the brain is inside a head

is_valid_coffin

is it something that is close enough to a coffin to let us heal/level up in it?

make_ghoul

First will check if the target can be turned into a Ghoul, if so then it will +turn them into one, log it, sync their minds, then updates the Rank +Args: +conversion_target - The person converted.

on_gain

Called when you get the antag datum, called only ONCE per antagonist.

on_removal

Called by the remove_antag_datum() and remove_all_antag_datums() mind procs for the antag datum to handle its own removal and deletion.

on_sol_end

Called when Sol first ends.

on_species_gain

Override some properties of incompatible species

remove_innate_effects

Remove innate effects is everything given to the mob +When a body is transferred, this is called on the old mob. +while on_removal is called ONCE per ANTAG, this is called ONCE per BODY.

return_vamp_examine

Returns a Vampire's examine strings. +Args: +viewer - The person examining.

sol_near_start

Called when Sol is near starting.

sol_rank_up

Assigning Sol

+

Sol is the sunlight, during this period, all Bloodsuckers must be in their coffin, else they burn. +Ranks the Bloodsucker up, called by Sol.

talking_head

Turns the bloodsucker into a wacky talking head.

update_blood

Makes your blood_volume look like your bloodsucker blood, unless you're Masquerading.

update_blood_hud

Updated every time blood is changed by either

\ No newline at end of file diff --git a/datum/antagonist/brother.html b/datum/antagonist/brother.html new file mode 100644 index 0000000000000..97082b9610a24 --- /dev/null +++ b/datum/antagonist/brother.html @@ -0,0 +1 @@ +/datum/antagonist/brother - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

brother

Procs

grant_conversion_skillsGive us the ability to add another brother
remove_conversion_skillsTake away the ability to add more brothers
update_recruitments_remainingAdd or remove the potential to put more bros in here

Proc Details

grant_conversion_skills

Give us the ability to add another brother

remove_conversion_skills

Take away the ability to add more brothers

update_recruitments_remaining

Add or remove the potential to put more bros in here

\ No newline at end of file diff --git a/datum/antagonist/changeling.html b/datum/antagonist/changeling.html new file mode 100644 index 0000000000000..11ac0c1e5e2af --- /dev/null +++ b/datum/antagonist/changeling.html @@ -0,0 +1,15 @@ +/datum/antagonist/changeling - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

changeling

Vars

absorbed_countThe amount of DNA gained. Includes DNA sting.
all_powersStatic typecache of all changeling powers that are usable.
can_respecWhether we can currently respec in the cellular emporium.
cellular_emporiumA reference to our cellular emporium datum.
changelingIDChangeling name, what other lings see over the hivemind when talking.
chem_chargesThe number of chemicals the changeling currently has.
chem_recharge_rateThe chemical recharge rate per life tick.
chem_recharge_slowdownAny additional modifiers triggered by changelings that modify the chem_recharge_rate.
chosen_stingThe currently active changeling sting.
competitive_objectivesWeather we assign objectives which compete with other lings
dna_maxHow many DNA strands the changeling can store for transformation.
emporium_actionA reference to our cellular emporium action (which opens the UI for the datum).
first_profileThe original profile of this changeling.
genetic_pointsThe number of genetics points (to buy powers) this ling currently has.
give_objectivesWhether to give this changeling objectives or not
hive_nameThe name of our "hive" that our ling came from. Flavor.
innate_powersList of all powers we start with.
lingchemdisplayUI displaying how many chems we have
lingstingdisplayUI displayng our currently active sting
mimicingThe voice we're mimicing via the changeling voice ability.
possible_changeling_IDsStatic list of possible ids. Initialized into the greek alphabet the first time it is used
purchased_powersAssociated list of all powers we have evolved / bought from the emporium. [path] = [instance of path]
slot2typeSatic list of what each slot associated with (in regard to changeling flesh items).
sting_rangeThe range this ling can sting things.
stolen_memoriesA list of all memories we've stolen through absorbs.
stored_profileslist of datum/changeling_profile
total_chem_storageThe max chemical storage the changeling currently has.
total_genetic_pointsThe max number of genetics points (to buy powers) this ling can have..
true_absorbsThe amount of DMA gained using absorb, not DNA sting. Start with one (your original DNA)

Procs

check_menuChecks if we are allowed to interact with a radial menu
give_powerGives a passed changeling power datum to the player
on_click_stingSignal proc for COMSIG_MOB_MIDDLECLICKON and COMSIG_MOB_ALTCLICKON. +Allows the changeling to sting people with a click.
on_fullhealedSignal proc for COMSIG_LIVING_POST_FULLY_HEAL
on_lifeSignal proc for COMSIG_LIVING_LIFE. +Handles regenerating chemicals on life ticks.
select_dnaGives a changeling a list of all possible dnas in their profiles to choose from and returns profile containing their chosen dna

Var Details

absorbed_count

The amount of DNA gained. Includes DNA sting.

all_powers

Static typecache of all changeling powers that are usable.

can_respec

Whether we can currently respec in the cellular emporium.

cellular_emporium

A reference to our cellular emporium datum.

changelingID

Changeling name, what other lings see over the hivemind when talking.

chem_charges

The number of chemicals the changeling currently has.

chem_recharge_rate

The chemical recharge rate per life tick.

chem_recharge_slowdown

Any additional modifiers triggered by changelings that modify the chem_recharge_rate.

chosen_sting

The currently active changeling sting.

competitive_objectives

Weather we assign objectives which compete with other lings

dna_max

How many DNA strands the changeling can store for transformation.

emporium_action

A reference to our cellular emporium action (which opens the UI for the datum).

first_profile

The original profile of this changeling.

genetic_points

The number of genetics points (to buy powers) this ling currently has.

give_objectives

Whether to give this changeling objectives or not

hive_name

The name of our "hive" that our ling came from. Flavor.

innate_powers

List of all powers we start with.

lingchemdisplay

UI displaying how many chems we have

lingstingdisplay

UI displayng our currently active sting

mimicing

The voice we're mimicing via the changeling voice ability.

possible_changeling_IDs

Static list of possible ids. Initialized into the greek alphabet the first time it is used

purchased_powers

Associated list of all powers we have evolved / bought from the emporium. [path] = [instance of path]

slot2type

Satic list of what each slot associated with (in regard to changeling flesh items).

sting_range

The range this ling can sting things.

stolen_memories

A list of all memories we've stolen through absorbs.

stored_profiles

list of datum/changeling_profile

total_chem_storage

The max chemical storage the changeling currently has.

total_genetic_points

The max number of genetics points (to buy powers) this ling can have..

true_absorbs

The amount of DMA gained using absorb, not DNA sting. Start with one (your original DNA)

Proc Details

check_menu

Checks if we are allowed to interact with a radial menu

+

Arguments:

+

give_power

Gives a passed changeling power datum to the player

+

Is passed a path to a changeling power, and applies it to the user. +If successful, we return TRUE, otherwise not.

+

Arguments:

+

on_click_sting

Signal proc for COMSIG_MOB_MIDDLECLICKON and COMSIG_MOB_ALTCLICKON. +Allows the changeling to sting people with a click.

on_fullhealed

Signal proc for COMSIG_LIVING_POST_FULLY_HEAL

on_life

Signal proc for COMSIG_LIVING_LIFE. +Handles regenerating chemicals on life ticks.

select_dna

Gives a changeling a list of all possible dnas in their profiles to choose from and returns profile containing their chosen dna

\ No newline at end of file diff --git a/datum/antagonist/clock_cultist.html b/datum/antagonist/clock_cultist.html new file mode 100644 index 0000000000000..fc1f8010482a5 --- /dev/null +++ b/datum/antagonist/clock_cultist.html @@ -0,0 +1 @@ +/datum/antagonist/clock_cultist - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

clock_cultist

Vars

can_convertIf this one has access to conversion scriptures
communicateRef to the cultist's communication ability
recallRef to the cultist's slab recall ability

Procs

switch_recall_slabChange the slab in the recall ability, if it's different from the last one.

Var Details

can_convert

If this one has access to conversion scriptures

communicate

Ref to the cultist's communication ability

recall

Ref to the cultist's slab recall ability

Proc Details

switch_recall_slab

Change the slab in the recall ability, if it's different from the last one.

\ No newline at end of file diff --git a/datum/antagonist/cop.html b/datum/antagonist/cop.html new file mode 100644 index 0000000000000..c2a8897630a8d --- /dev/null +++ b/datum/antagonist/cop.html @@ -0,0 +1 @@ +/datum/antagonist/cop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cop

Vars

crewTeam datum for admin tracking

Var Details

crew

Team datum for admin tracking

\ No newline at end of file diff --git a/datum/antagonist/cortical_borer.html b/datum/antagonist/cortical_borer.html new file mode 100644 index 0000000000000..8e7265a819135 --- /dev/null +++ b/datum/antagonist/cortical_borer.html @@ -0,0 +1 @@ +/datum/antagonist/cortical_borer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cortical_borer

Vars

borersThe team of borers

Var Details

borers

The team of borers

\ No newline at end of file diff --git a/datum/antagonist/cult.html b/datum/antagonist/cult.html new file mode 100644 index 0000000000000..e798c221fd016 --- /dev/null +++ b/datum/antagonist/cult.html @@ -0,0 +1,3 @@ +/datum/antagonist/cult - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cult

Vars

cult_teamReference to the Blood cult team they are part of.
give_equipmentBoolean on whether the starting equipment should be given to their inventory.
vote_abilityThe vote ability Cultists have to elect someone to be the leader.

Procs

check_invoke_validityUsed to check if the owner is counted as a secondary invoker for runes.
cult_give_itemAttempts to make a new item and put it in a potential inventory slot in the provided mob.
deathrattleIf dead (and Narsie isn't summoned), will alert all Cultists of their death, sending their location out.
demote_from_leaderAdmin-only helper to demote someone from Cult leader, taking away their HUD, abilities, and deathrattle +And gives all cultists from their team back their ability to vote for a new leader.
equip_cultistEquips the cultist with a dagger and runed metal.
is_cult_leaderReturns whether or not this datum is its team's leader.
make_cult_leaderTurns this antag datum into its team's leader, assigning them their unique abilities, hud, and deathrattle.

Var Details

cult_team

Reference to the Blood cult team they are part of.

give_equipment

Boolean on whether the starting equipment should be given to their inventory.

vote_ability

The vote ability Cultists have to elect someone to be the leader.

Proc Details

check_invoke_validity

Used to check if the owner is counted as a secondary invoker for runes.

cult_give_item

Attempts to make a new item and put it in a potential inventory slot in the provided mob.

deathrattle

If dead (and Narsie isn't summoned), will alert all Cultists of their death, sending their location out.

demote_from_leader

Admin-only helper to demote someone from Cult leader, taking away their HUD, abilities, and deathrattle +And gives all cultists from their team back their ability to vote for a new leader.

equip_cultist

Equips the cultist with a dagger and runed metal.

is_cult_leader

Returns whether or not this datum is its team's leader.

make_cult_leader

Turns this antag datum into its team's leader, assigning them their unique abilities, hud, and deathrattle.

\ No newline at end of file diff --git a/datum/antagonist/cult/shade.html b/datum/antagonist/cult/shade.html new file mode 100644 index 0000000000000..0c460659ca133 --- /dev/null +++ b/datum/antagonist/cult/shade.html @@ -0,0 +1 @@ +/datum/antagonist/cult/shade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shade

Vars

invoke_delayThe time needed after release time to enable rune invocation.
release_timeThe time this player was most recently released from a soulstone.

Var Details

invoke_delay

The time needed after release time to enable rune invocation.

release_time

The time this player was most recently released from a soulstone.

\ No newline at end of file diff --git a/datum/antagonist/ert.html b/datum/antagonist/ert.html new file mode 100644 index 0000000000000..c047e397dd193 --- /dev/null +++ b/datum/antagonist/ert.html @@ -0,0 +1 @@ +/datum/antagonist/ert - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ert

Vars

ert_job_pathTypepath indicating the kind of job datum this ert member will have.

Var Details

ert_job_path

Typepath indicating the kind of job datum this ert member will have.

\ No newline at end of file diff --git a/datum/antagonist/ex_ghoul.html b/datum/antagonist/ex_ghoul.html new file mode 100644 index 0000000000000..e9f2bd980215b --- /dev/null +++ b/datum/antagonist/ex_ghoul.html @@ -0,0 +1,2 @@ +/datum/antagonist/ex_ghoul - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ex_ghoul

Vars

blood_timerTimer we have to live
revenge_ghoulThe revenge ghoul that brought us into the fold.

Procs

return_to_foldFold return

Var Details

blood_timer

Timer we have to live

revenge_ghoul

The revenge ghoul that brought us into the fold.

Proc Details

return_to_fold

Fold return

+

Called when a Revenge bloodsucker gets a ghoul back into the fold.

\ No newline at end of file diff --git a/datum/antagonist/ghoul.html b/datum/antagonist/ghoul.html new file mode 100644 index 0000000000000..d121355d9bd4c --- /dev/null +++ b/datum/antagonist/ghoul.html @@ -0,0 +1,7 @@ +/datum/antagonist/ghoul - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ghoul

Vars

ghoul_descriptionDescription of what this Ghoul does. +It's shown to the bloodsucker in the radial for setting ghoul type
masterThe Master Bloodsucker's antag datum.
powersList of all Purchased Powers, to be cleaned up on antag removal.
special_typeWhether this ghoul is already a special type of Ghoul.
traitsinherent traits that are removed and addded on antag datum loss and gain

Procs

BuyPowerUsed when your Master teaches you a new Power.
make_specialCalled when we are made into the Favorite Ghoul
on_mindshieldThis is called when the antagonist is successfully mindshielded.
return_ghoul_examineReturns a Ghouls's examine strings. +Args: +viewer - The person examining.

Var Details

ghoul_description

Description of what this Ghoul does. +It's shown to the bloodsucker in the radial for setting ghoul type

master

The Master Bloodsucker's antag datum.

powers

List of all Purchased Powers, to be cleaned up on antag removal.

special_type

Whether this ghoul is already a special type of Ghoul.

traits

inherent traits that are removed and addded on antag datum loss and gain

Proc Details

BuyPower

Used when your Master teaches you a new Power.

make_special

Called when we are made into the Favorite Ghoul

on_mindshield

This is called when the antagonist is successfully mindshielded.

return_ghoul_examine

Returns a Ghouls's examine strings. +Args: +viewer - The person examining.

\ No newline at end of file diff --git a/datum/antagonist/ghoul/favorite.html b/datum/antagonist/ghoul/favorite.html new file mode 100644 index 0000000000000..201ce8b80a706 --- /dev/null +++ b/datum/antagonist/ghoul/favorite.html @@ -0,0 +1,2 @@ +/datum/antagonist/ghoul/favorite - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

favorite

Favorite Ghoul

+

Gets some cool abilities depending on the Clan.

Vars

bloodsucker_powersPower's we're going to inherit once we turn into a Bloodsucker
ghoul_levelBloodsucker levels, but for Ghouls, used by Ventrue. Used for ventrue creating a new bloodsucker.

Var Details

bloodsucker_powers

Power's we're going to inherit once we turn into a Bloodsucker

ghoul_level

Bloodsucker levels, but for Ghouls, used by Ventrue. Used for ventrue creating a new bloodsucker.

\ No newline at end of file diff --git a/datum/antagonist/ghoul/revenge.html b/datum/antagonist/ghoul/revenge.html new file mode 100644 index 0000000000000..037d417bc6eca --- /dev/null +++ b/datum/antagonist/ghoul/revenge.html @@ -0,0 +1,2 @@ +/datum/antagonist/ghoul/revenge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

revenge

Revenge Ghoul

+

Has the goal to 'get revenge' when their Master dies.

Vars

ex_ghoulsall ex-ghouls brought back into the fold.

Var Details

ex_ghouls

all ex-ghouls brought back into the fold.

\ No newline at end of file diff --git a/datum/antagonist/heretic.html b/datum/antagonist/heretic.html new file mode 100644 index 0000000000000..5d73823681228 --- /dev/null +++ b/datum/antagonist/heretic.html @@ -0,0 +1,46 @@ +/datum/antagonist/heretic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

heretic

The heretic antagonist itself.

Vars

all_sac_targetsList of all sacrifice target's names, used for end of round report
ascendedWhether we've ascended! (Completed one of the final rituals)
blacklisted_rune_turfsA blacklist of turfs we cannot scribe on.
drawing_runeWhether we're drawing a rune or not
feast_of_owlsWether we are allowed to ascend
give_objectivesWhether we give this antagonist objectives on gain.
heretic_pathThe path our heretic has chosen. Mostly used for flavor.
high_value_sacrificesA list of TOTAL how many high value sacrifices completed. (Heads of staff)
knowledge_pointsA sum of how many knowledge points this heretic CURRENTLY has. Used to research.
living_heart_organ_slotThe organ slot we place our Living Heart in.
passive_gain_timerThe time between gaining influence passively. The heretic gain +1 knowledge points every this duration of time.
path_to_ui_bgrStatic list of what each path converts to in the UI (colors are TGUI colors)
researched_knowledgeAssoc list of [typepath] = [knowledge instance]. A list of all knowledge this heretic's reserached.
rewards_givenSimpler version of above used to limit amount of loot that can be hoarded
rust_strengthControls what types of turf we can spread rust to, increases as we unlock more powerful rust abilites
sac_targetsLazy assoc list of [refs to humans] to [image previews of the human]. Humans that we have as sacrifice targets.
scribing_toolsA static typecache of all tools we can scribe with.
total_sacrificesA list of TOTAL how many sacrifices completed. (Includes high value sacrifices)
unlocked_heretic_itemsList that keeps track of which items have been gifted to the heretic after a cultist was sacrificed. Used to alter drop chances to reduce dupes.

Procs

add_marked_as_targetAdmin proc for adding a marked mob to a heretic's sac list.
add_sacrifice_targetAdd [target] as a sacrifice target for the heretic. +Generates a preview image and associates it with a weakref of the mob.
admin_change_pointsAdmin proc for easily adding / removing knowledge points.
admin_give_focusAdmin proc for giving a heretic a focus.
after_fully_healedSignal proc for COMSIG_LIVING_POST_FULLY_HEAL, +Gives the heretic aliving heart on aheal or organ refresh
can_ascendChecks to see if our heretic can ccurrently ascend.
check_mansus_grasp_offhandCallback to check that the user's still got their Mansus Grasp out when drawing a rune.
draw_runeThe actual process of drawing a rune.
forge_primary_objectivesCreate our objectives for our heretic.
gain_knowledgeLearns the passed [typepath] of knowledge, creating a knowledge datum +and adding it to our researched knowledge list.
get_knowledgeCheck if the wanted type-path is in the list of research knowledge.
get_researchable_knowledgeGet a list of all knowledge TYPEPATHS that we can currently research.
get_ritualsGet a list of all rituals this heretic can invoke on a rune. +Iterates over all of our knowledge and, if we can invoke it, adds it to our list.
give_living_heartAdmin proc for giving a heretic a Living Heart easily.
has_living_heartHelper to determine if a Heretic
increase_rust_strengthMakes our heretic more able to rust things. +if side_path_only is set to TRUE, this function does nothing for rust heretics.
on_cult_sacrificedSignal proc for COMSIG_LIVING_CULT_SACRIFICED to reward cultists for sacrificing a heretic
on_target_deletedSignal proc for COMSIG_QDELETING registered on sac targets +if sacrifice targets are deleted (gibbed, dusted, whatever), free their slot and reference
passive_influence_gainIncrements knowledge by one. +Used in callbacks for passive gain over time.
remove_sacrifice_targetRemoves [target] from the heretic's sacrifice list. +Returns FALSE if no one was removed, TRUE otherwise
remove_targetAdmin proc for removing a mob from a heretic's sac list.
try_draw_runeAttempt to draw a rune on [target_turf].

Var Details

all_sac_targets

List of all sacrifice target's names, used for end of round report

ascended

Whether we've ascended! (Completed one of the final rituals)

blacklisted_rune_turfs

A blacklist of turfs we cannot scribe on.

drawing_rune

Whether we're drawing a rune or not

feast_of_owls

Wether we are allowed to ascend

give_objectives

Whether we give this antagonist objectives on gain.

heretic_path

The path our heretic has chosen. Mostly used for flavor.

high_value_sacrifices

A list of TOTAL how many high value sacrifices completed. (Heads of staff)

knowledge_points

A sum of how many knowledge points this heretic CURRENTLY has. Used to research.

living_heart_organ_slot

The organ slot we place our Living Heart in.

passive_gain_timer

The time between gaining influence passively. The heretic gain +1 knowledge points every this duration of time.

path_to_ui_bgr

Static list of what each path converts to in the UI (colors are TGUI colors)

researched_knowledge

Assoc list of [typepath] = [knowledge instance]. A list of all knowledge this heretic's reserached.

rewards_given

Simpler version of above used to limit amount of loot that can be hoarded

rust_strength

Controls what types of turf we can spread rust to, increases as we unlock more powerful rust abilites

sac_targets

Lazy assoc list of [refs to humans] to [image previews of the human]. Humans that we have as sacrifice targets.

scribing_tools

A static typecache of all tools we can scribe with.

total_sacrifices

A list of TOTAL how many sacrifices completed. (Includes high value sacrifices)

unlocked_heretic_items

List that keeps track of which items have been gifted to the heretic after a cultist was sacrificed. Used to alter drop chances to reduce dupes.

Proc Details

add_marked_as_target

Admin proc for adding a marked mob to a heretic's sac list.

add_sacrifice_target

Add [target] as a sacrifice target for the heretic. +Generates a preview image and associates it with a weakref of the mob.

admin_change_points

Admin proc for easily adding / removing knowledge points.

admin_give_focus

Admin proc for giving a heretic a focus.

after_fully_healed

Signal proc for COMSIG_LIVING_POST_FULLY_HEAL, +Gives the heretic aliving heart on aheal or organ refresh

can_ascend

Checks to see if our heretic can ccurrently ascend.

+

Returns FALSE if not all of our objectives are complete, or TRUE otherwise.

check_mansus_grasp_offhand

Callback to check that the user's still got their Mansus Grasp out when drawing a rune.

+

Arguments

+

draw_rune

The actual process of drawing a rune.

+

Arguments

+

forge_primary_objectives

Create our objectives for our heretic.

gain_knowledge

Learns the passed [typepath] of knowledge, creating a knowledge datum +and adding it to our researched knowledge list.

+

Returns TRUE if the knowledge was added successfully. FALSE otherwise.

get_knowledge

Check if the wanted type-path is in the list of research knowledge.

get_researchable_knowledge

Get a list of all knowledge TYPEPATHS that we can currently research.

get_rituals

Get a list of all rituals this heretic can invoke on a rune. +Iterates over all of our knowledge and, if we can invoke it, adds it to our list.

+

Returns an associated list of [knowledge name] to [knowledge datum] sorted by knowledge priority.

give_living_heart

Admin proc for giving a heretic a Living Heart easily.

has_living_heart

Helper to determine if a Heretic

+ +

Returns HERETIC_NO_HEART_ORGAN if they have no heart (organ) at all, +Returns HERETIC_NO_LIVING_HEART if they have a heart (organ) but it's not a living one, +and returns HERETIC_HAS_LIVING_HEART if they have a living heart

increase_rust_strength

Makes our heretic more able to rust things. +if side_path_only is set to TRUE, this function does nothing for rust heretics.

on_cult_sacrificed

Signal proc for COMSIG_LIVING_CULT_SACRIFICED to reward cultists for sacrificing a heretic

on_target_deleted

Signal proc for COMSIG_QDELETING registered on sac targets +if sacrifice targets are deleted (gibbed, dusted, whatever), free their slot and reference

passive_influence_gain

Increments knowledge by one. +Used in callbacks for passive gain over time.

remove_sacrifice_target

Removes [target] from the heretic's sacrifice list. +Returns FALSE if no one was removed, TRUE otherwise

remove_target

Admin proc for removing a mob from a heretic's sac list.

try_draw_rune

Attempt to draw a rune on [target_turf].

+

Arguments

+
\ No newline at end of file diff --git a/datum/antagonist/heretic_monster.html b/datum/antagonist/heretic_monster.html new file mode 100644 index 0000000000000..03a017e22e17c --- /dev/null +++ b/datum/antagonist/heretic_monster.html @@ -0,0 +1 @@ +/datum/antagonist/heretic_monster - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

heretic_monster

Tracking reasons

Vars

masterOur master (a heretic)'s mind.

Var Details

master

Our master (a heretic)'s mind.

\ No newline at end of file diff --git a/datum/antagonist/highlander.html b/datum/antagonist/highlander.html new file mode 100644 index 0000000000000..222676b7a0fc1 --- /dev/null +++ b/datum/antagonist/highlander.html @@ -0,0 +1 @@ +/datum/antagonist/highlander - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

highlander

Vars

applicable_traitsTraits we apply/remove to our target on-demand.

Var Details

applicable_traits

Traits we apply/remove to our target on-demand.

\ No newline at end of file diff --git a/datum/antagonist/hypnotized.html b/datum/antagonist/hypnotized.html new file mode 100644 index 0000000000000..3389a4bf613a2 --- /dev/null +++ b/datum/antagonist/hypnotized.html @@ -0,0 +1 @@ +/datum/antagonist/hypnotized - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hypnotized

Antag datum associated with the hypnosis brain trauma, used for displaying objectives and antag hud

Vars

traumaBrain trauma associated with this antag datum

Var Details

trauma

Brain trauma associated with this antag datum

\ No newline at end of file diff --git a/datum/antagonist/imp.html b/datum/antagonist/imp.html new file mode 100644 index 0000000000000..be720e32fd90b --- /dev/null +++ b/datum/antagonist/imp.html @@ -0,0 +1,3 @@ +/datum/antagonist/imp - /tg/ Station 13
/tg/ Station 13 - Modules - Types

imp

Imps

+

Imps used to be summoned by a devil ascending to their final form, but now they're just +kinda sitting in limbo... Well, whatever! They're kinda cool anyways!

\ No newline at end of file diff --git a/datum/antagonist/lunatic.html b/datum/antagonist/lunatic.html new file mode 100644 index 0000000000000..c72ae8bb7ede5 --- /dev/null +++ b/datum/antagonist/lunatic.html @@ -0,0 +1 @@ +/datum/antagonist/lunatic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

lunatic

Procs

set_masterRuns when the moon heretic creates us, used to give the lunatic a master

Proc Details

set_master

Runs when the moon heretic creates us, used to give the lunatic a master

\ No newline at end of file diff --git a/datum/antagonist/malf_ai.html b/datum/antagonist/malf_ai.html new file mode 100644 index 0000000000000..52ce1d98be827 --- /dev/null +++ b/datum/antagonist/malf_ai.html @@ -0,0 +1 @@ +/datum/antagonist/malf_ai - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

malf_ai

Vars

employerthe name of the antag flavor this traitor has.
give_objectivesbool for giving objectives
malf_soundmalf on_gain sound effect. Set here so Infected AI can override
malfunction_flavorassoc list of strings set up after employer is given
module_picker_compactmodesince the module purchasing is built into the antag info, we need to keep track of its compact mode here
should_give_codewordsbool for giving codewords

Procs

forge_ai_objectivesGenerates a complete set of malf AI objectives up to the traitor objective limit.
forge_special_objectiveGenerates a special objective and adds it to the objective list.
give_codewordsOutputs this shift's codewords and responses to the antag's chat and copies them to their memory.

Var Details

employer

the name of the antag flavor this traitor has.

give_objectives

bool for giving objectives

malf_sound

malf on_gain sound effect. Set here so Infected AI can override

malfunction_flavor

assoc list of strings set up after employer is given

module_picker_compactmode

since the module purchasing is built into the antag info, we need to keep track of its compact mode here

should_give_codewords

bool for giving codewords

Proc Details

forge_ai_objectives

Generates a complete set of malf AI objectives up to the traitor objective limit.

forge_special_objective

Generates a special objective and adds it to the objective list.

give_codewords

Outputs this shift's codewords and responses to the antag's chat and copies them to their memory.

\ No newline at end of file diff --git a/datum/antagonist/malf_ai/infected.html b/datum/antagonist/malf_ai/infected.html new file mode 100644 index 0000000000000..45323565ae244 --- /dev/null +++ b/datum/antagonist/malf_ai/infected.html @@ -0,0 +1 @@ +/datum/antagonist/malf_ai/infected - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

infected

Vars

bossThe player, to who is this AI slaved

Var Details

boss

The player, to who is this AI slaved

\ No newline at end of file diff --git a/datum/antagonist/ninja.html b/datum/antagonist/ninja.html new file mode 100644 index 0000000000000..fc447019580fc --- /dev/null +++ b/datum/antagonist/ninja.html @@ -0,0 +1,9 @@ +/datum/antagonist/ninja - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ninja

Vars

give_objectivesWhether or not this ninja will obtain objectives

Procs

addMemoriesProc that adds the proper memories to the antag datum
addObjectivesProc that adds all the ninja's objectives to the antag datum.
equip_space_ninjaProc that equips the space ninja outfit on a given individual. By default this is the owner of the antagonist datum.

Var Details

give_objectives

Whether or not this ninja will obtain objectives

Proc Details

addMemories

Proc that adds the proper memories to the antag datum

+

Proc that adds the ninja starting memories to the owner of the antagonist datum.

addObjectives

Proc that adds all the ninja's objectives to the antag datum.

+

Proc that adds all the ninja's objectives to the antag datum. Called when the datum is gained.

equip_space_ninja

Proc that equips the space ninja outfit on a given individual. By default this is the owner of the antagonist datum.

+

Proc that equips the space ninja outfit on a given individual. By default this is the owner of the antagonist datum. +Arguments:

+
\ No newline at end of file diff --git a/datum/antagonist/nukeop.html b/datum/antagonist/nukeop.html new file mode 100644 index 0000000000000..697237c47c396 --- /dev/null +++ b/datum/antagonist/nukeop.html @@ -0,0 +1 @@ +/datum/antagonist/nukeop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

nukeop

Vars

always_new_teamIf not assigned a team by default ops will try to join existing ones, set this to TRUE to always create new team.
discount_limited_amountThe amount of limited discounts that the team get
discount_team_amountThe amount of discounts that the team get
nuke_icon_stateIn the preview icon, a nuclear fission explosive device, only appearing if there's an icon state for it.
nuke_teamWhich nukie team are we on?
nukeop_outfitThe DEFAULT outfit we will give to players granted this datum
preview_outfit_behindIn the preview icon, the nukies who are behind the leader
send_to_spawnpointShould the user be moved to default spawnpoint after being granted this datum.

Procs

get_spawnpointGets the position we spawn at
move_to_spawnpointActually moves our nukie to where they should be

Var Details

always_new_team

If not assigned a team by default ops will try to join existing ones, set this to TRUE to always create new team.

discount_limited_amount

The amount of limited discounts that the team get

discount_team_amount

The amount of discounts that the team get

nuke_icon_state

In the preview icon, a nuclear fission explosive device, only appearing if there's an icon state for it.

nuke_team

Which nukie team are we on?

nukeop_outfit

The DEFAULT outfit we will give to players granted this datum

preview_outfit_behind

In the preview icon, the nukies who are behind the leader

send_to_spawnpoint

Should the user be moved to default spawnpoint after being granted this datum.

Proc Details

get_spawnpoint

Gets the position we spawn at

move_to_spawnpoint

Actually moves our nukie to where they should be

\ No newline at end of file diff --git a/datum/antagonist/nukeop/leader.html b/datum/antagonist/nukeop/leader.html new file mode 100644 index 0000000000000..4915f3a529744 --- /dev/null +++ b/datum/antagonist/nukeop/leader.html @@ -0,0 +1 @@ +/datum/antagonist/nukeop/leader - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

leader

Vars

challengeitemThe nuclear challenge remote we will spawn this player with.
titleRandomly chosen honorific, for distinction

Var Details

challengeitem

The nuclear challenge remote we will spawn this player with.

title

Randomly chosen honorific, for distinction

\ No newline at end of file diff --git a/datum/antagonist/obsessed.html b/datum/antagonist/obsessed.html new file mode 100644 index 0000000000000..92f17821f8dfb --- /dev/null +++ b/datum/antagonist/obsessed.html @@ -0,0 +1 @@ +/datum/antagonist/obsessed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

obsessed

Vars

objectives_to_generateHow many objectives should be generated
traumaBrain trauma that causes the obsession

Var Details

objectives_to_generate

How many objectives should be generated

trauma

Brain trauma that causes the obsession

\ No newline at end of file diff --git a/datum/antagonist/paradox_clone.html b/datum/antagonist/paradox_clone.html new file mode 100644 index 0000000000000..a6240566ecf7d --- /dev/null +++ b/datum/antagonist/paradox_clone.html @@ -0,0 +1 @@ +/datum/antagonist/paradox_clone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

paradox_clone

Vars

original_refWeakref to the mind of the original, the clone's target.

Var Details

original_ref

Weakref to the mind of the original, the clone's target.

\ No newline at end of file diff --git a/datum/antagonist/primitive_catgirl.html b/datum/antagonist/primitive_catgirl.html new file mode 100644 index 0000000000000..498f07770ba91 --- /dev/null +++ b/datum/antagonist/primitive_catgirl.html @@ -0,0 +1 @@ +/datum/antagonist/primitive_catgirl - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

primitive_catgirl

Vars

feline_teamTracks the antag datum's 'team' for showing in the ghost orbit menu

Var Details

feline_team

Tracks the antag datum's 'team' for showing in the ghost orbit menu

\ No newline at end of file diff --git a/datum/antagonist/rev.html b/datum/antagonist/rev.html new file mode 100644 index 0000000000000..21490434d0a4c --- /dev/null +++ b/datum/antagonist/rev.html @@ -0,0 +1,6 @@ +/datum/antagonist/rev - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

rev

Vars

deconversion_sourceWhen this antagonist is being de-antagged, this is the source. Can be a mob (for mindshield/blunt force trauma) or a #define string.

Procs

add_revolutionaryAdds a new mind to our revoltuion
remove_revolutionaryHandles rev removal via IC methods such as borging, mindshielding, blunt force trauma to the head or revs losing.

Var Details

deconversion_source

When this antagonist is being de-antagged, this is the source. Can be a mob (for mindshield/blunt force trauma) or a #define string.

Proc Details

add_revolutionary

Adds a new mind to our revoltuion

+

remove_revolutionary

Handles rev removal via IC methods such as borging, mindshielding, blunt force trauma to the head or revs losing.

\ No newline at end of file diff --git a/datum/antagonist/rev/head.html b/datum/antagonist/rev/head.html new file mode 100644 index 0000000000000..2a235fc6f43f0 --- /dev/null +++ b/datum/antagonist/rev/head.html @@ -0,0 +1,3 @@ +/datum/antagonist/rev/head - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

head

Procs

_async_holiday_meme_sayUsed / called async from [proc/on_flash] to deliver a funny meme line
on_flash_successSignal proc for COMSIG_MOB_SUCCESSFUL_FLASHED_CARBON. +Bread and butter of revolution conversion, successfully flashing a carbon will make them a revolutionary
remove_revolutionaryThis is for revheads, for which they ordinarily shouldn't be deconverted outside of revs losing. As an exception, forceborging can de-headrev them.

Proc Details

_async_holiday_meme_say

Used / called async from [proc/on_flash] to deliver a funny meme line

on_flash_success

Signal proc for COMSIG_MOB_SUCCESSFUL_FLASHED_CARBON. +Bread and butter of revolution conversion, successfully flashing a carbon will make them a revolutionary

remove_revolutionary

This is for revheads, for which they ordinarily shouldn't be deconverted outside of revs losing. As an exception, forceborging can de-headrev them.

\ No newline at end of file diff --git a/datum/antagonist/separatist.html b/datum/antagonist/separatist.html new file mode 100644 index 0000000000000..6465f93fd7eb6 --- /dev/null +++ b/datum/antagonist/separatist.html @@ -0,0 +1 @@ +/datum/antagonist/separatist - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

separatist

Vars

nationteam datum
ui_colorbackground color of the ui

Var Details

nation

team datum

ui_color

background color of the ui

\ No newline at end of file diff --git a/datum/antagonist/shade_minion.html b/datum/antagonist/shade_minion.html new file mode 100644 index 0000000000000..a5b19f89c434c --- /dev/null +++ b/datum/antagonist/shade_minion.html @@ -0,0 +1,4 @@ +/datum/antagonist/shade_minion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shade_minion

This datum is for use by shades who have a master but are not cultists. +Cult shades don't get it because they get the cult datum instead. +They are bound to follow the orders of their creator, probably a chaplain or miner. +Technically they're not 'antagonists' but they have antagonist-like properties.

Vars

master_nameName of this shade's master.

Procs

display_panelShows the info panel, moved out into its own proc for signal handling reasons.
update_masterApply a new master to the shade, will display the popup again also.

Var Details

master_name

Name of this shade's master.

Proc Details

display_panel

Shows the info panel, moved out into its own proc for signal handling reasons.

update_master

Apply a new master to the shade, will display the popup again also.

\ No newline at end of file diff --git a/datum/antagonist/space_carp.html b/datum/antagonist/space_carp.html new file mode 100644 index 0000000000000..5a325dc2e1be5 --- /dev/null +++ b/datum/antagonist/space_carp.html @@ -0,0 +1 @@ +/datum/antagonist/space_carp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

space_carp

Vars

riftThe rift to protect

Var Details

rift

The rift to protect

\ No newline at end of file diff --git a/datum/antagonist/space_dragon.html b/datum/antagonist/space_dragon.html new file mode 100644 index 0000000000000..f0e3f172a2267 --- /dev/null +++ b/datum/antagonist/space_dragon.html @@ -0,0 +1,17 @@ +/datum/antagonist/space_dragon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

space_dragon

Vars

ai_to_spawnWhat AI mobs to spawn from this dragon's rifts
carpAll space carps created by this antagonist space dragon
chosen_rift_areasWhat areas are we allowed to place rifts in?
maxRiftTimerMaximum amount of time which can pass without a rift before Space Dragon despawns.
minion_to_spawnWhat mob to spawn from ghosts using this dragon's rifts
objective_completeWhether or not Space Dragon has completed their objective, and thus triggered the ending sequence.
riftTimerCurrent time since the the last rift was activated. If set to -1, does not increment.
rift_abilityThe innate ability to summon rifts
rift_listA list of all of the rifts created by Space Dragon. Used for setting them all to infinite carp spawn when Space Dragon wins, and removing them when Space Dragon dies.
rifts_chargedHow many rifts have been successfully charged
wavespeakWavespeak mind linker, to allow telepathy between dragon and carps

Procs

destroy_riftsDestroys all of Space Dragon's current rifts.
permanant_empowerGives Space Dragon their the rift speed buff permanently and fully heals the user.
rift_checksChecks to see if we need to do anything with the current state of the dragon's rifts.
rift_depowerRemoves Space Dragon's rift speed buff.
rift_empowerHandles Space Dragon's temporary empowerment after boosting a rift.
victorySets up Space Dragon's victory for completing the objectives.

Var Details

ai_to_spawn

What AI mobs to spawn from this dragon's rifts

carp

All space carps created by this antagonist space dragon

chosen_rift_areas

What areas are we allowed to place rifts in?

maxRiftTimer

Maximum amount of time which can pass without a rift before Space Dragon despawns.

minion_to_spawn

What mob to spawn from ghosts using this dragon's rifts

objective_complete

Whether or not Space Dragon has completed their objective, and thus triggered the ending sequence.

riftTimer

Current time since the the last rift was activated. If set to -1, does not increment.

rift_ability

The innate ability to summon rifts

rift_list

A list of all of the rifts created by Space Dragon. Used for setting them all to infinite carp spawn when Space Dragon wins, and removing them when Space Dragon dies.

rifts_charged

How many rifts have been successfully charged

wavespeak

Wavespeak mind linker, to allow telepathy between dragon and carps

Proc Details

destroy_rifts

Destroys all of Space Dragon's current rifts.

+

QDeletes all the current rifts after removing their references to other objects. +Currently, the only reference they have is to the Dragon which created them, so we clear that before deleting them. +Currently used when Space Dragon dies or one of his rifts is destroyed.

permanant_empower

Gives Space Dragon their the rift speed buff permanently and fully heals the user.

+

Gives Space Dragon the enraged speed buff from charging rifts permanently. +Only happens in circumstances where Space Dragon completes their objective. +Also gives them a full heal.

rift_checks

Checks to see if we need to do anything with the current state of the dragon's rifts.

+

A simple update check which sees if we need to do anything based on the current state of the dragon's rifts.

rift_depower

Removes Space Dragon's rift speed buff.

+

Removes Space Dragon's speed buff from charging a rift. This is only called +in rift_empower, which uses a timer to call this after 30 seconds. Also +removes the red glow from Space Dragon which is synonymous with the speed buff.

rift_empower

Handles Space Dragon's temporary empowerment after boosting a rift.

+

Empowers and depowers Space Dragon after a successful rift charge. +Empowered, Space Dragon regains all his health and becomes temporarily faster for 30 seconds, along with being tinted red.

victory

Sets up Space Dragon's victory for completing the objectives.

+

Triggers when Space Dragon completes his objective. +Calls the shuttle with a coefficient of 3, making it impossible to recall. +Sets all of his rifts to allow for infinite sentient carp spawns +Also plays appropriate sounds and CENTCOM messages.

\ No newline at end of file diff --git a/datum/antagonist/spider.html b/datum/antagonist/spider.html new file mode 100644 index 0000000000000..adef350392a9e --- /dev/null +++ b/datum/antagonist/spider.html @@ -0,0 +1 @@ +/datum/antagonist/spider - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spider

Vars

directiveOrders given to us by the queen

Var Details

directive

Orders given to us by the queen

\ No newline at end of file diff --git a/datum/antagonist/spy.html b/datum/antagonist/spy.html new file mode 100644 index 0000000000000..ae24066d2980c --- /dev/null +++ b/datum/antagonist/spy.html @@ -0,0 +1,3 @@ +/datum/antagonist/spy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spy

Vars

all_lootTracks all loot items the spy has claimed, for roundend
bounties_claimedTracks number of bounties claimed, for roundend
spawn_with_objectivesWhether we give them some random objetives to aim for.
uplink_createdWhether an uplink has been created (successfully or at all)
uplink_locationString displayed in the antag panel pointing the spy to where their uplink is.
uplink_weakrefWeakref to our spy uplink +Only exists for the sole purpose of letting admins see it

Var Details

all_loot

Tracks all loot items the spy has claimed, for roundend

bounties_claimed

Tracks number of bounties claimed, for roundend

spawn_with_objectives

Whether we give them some random objetives to aim for.

Whether an uplink has been created (successfully or at all)

String displayed in the antag panel pointing the spy to where their uplink is.

Weakref to our spy uplink +Only exists for the sole purpose of letting admins see it

\ No newline at end of file diff --git a/datum/antagonist/survivalist.html b/datum/antagonist/survivalist.html new file mode 100644 index 0000000000000..20f6bf0717ab8 --- /dev/null +++ b/datum/antagonist/survivalist.html @@ -0,0 +1 @@ +/datum/antagonist/survivalist - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

survivalist

Vars

announce_objectivesShould we immediately print the objectives?
greet_messageWhat do we display when you gain the antag datum?

Var Details

announce_objectives

Should we immediately print the objectives?

greet_message

What do we display when you gain the antag datum?

\ No newline at end of file diff --git a/datum/antagonist/survivalist/battle_royale.html b/datum/antagonist/survivalist/battle_royale.html new file mode 100644 index 0000000000000..67befdb16daab --- /dev/null +++ b/datum/antagonist/survivalist/battle_royale.html @@ -0,0 +1 @@ +/datum/antagonist/survivalist/battle_royale - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

battle_royale

Applied by the battle royale objective

Procs

on_diedCalled if you fail to survive.
set_target_areaAdd an objective to go to a specific place.

Proc Details

on_died

Called if you fail to survive.

set_target_area

Add an objective to go to a specific place.

\ No newline at end of file diff --git a/datum/antagonist/syndicate_monkey.html b/datum/antagonist/syndicate_monkey.html new file mode 100644 index 0000000000000..94584df737cec --- /dev/null +++ b/datum/antagonist/syndicate_monkey.html @@ -0,0 +1 @@ +/datum/antagonist/syndicate_monkey - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

syndicate_monkey

Vars

monky_masterThe antagonist's master, used for objective

Var Details

monky_master

The antagonist's master, used for objective

\ No newline at end of file diff --git a/datum/antagonist/traitor.html b/datum/antagonist/traitor.html new file mode 100644 index 0000000000000..cf5a5313137bf --- /dev/null +++ b/datum/antagonist/traitor.html @@ -0,0 +1,2 @@ +/datum/antagonist/traitor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

traitor

Vars

employerthe name of the antag flavor this traitor has, set in Traitor's setup if not preset.
ending_objectivethe final objective the traitor has to accomplish, be it escaping, hijacking, or just martyrdom.
give_secondary_objectivesWhether to give secondary objectives to the traitor, which aren't necessary but can be completed for a progression and TC boost.
give_uplinkgive this traitor an uplink?
is_hijackerif TRUE, this traitor will always get hijacking as their final objective
replacement_uplink_codeCode that allows traitor to get a replacement uplink
replacement_uplink_frequencyRadio frequency that traitor must speak on to get a replacement uplink
traitor_flavorassoc list of strings set up after employer is given
uplink_flag_givenThe flag of uplink that this traitor is supposed to have.
uplink_handlerThe uplink handler that this traitor belongs to.
uplink_refreference to the uplink this traitor was given, if they were.

Procs

can_change_objectivesReturns true if we're allowed to assign ourselves a new objective
contractor_round_endTells how many contracts have been completed.
forge_ending_objective
forge_traitor_objectivesGenerates a complete set of traitor objectives up to the traitor objective limit, including non-generic objectives such as martyr and hijack.
generate_replacement_codesproc that generates the traitors replacement uplink code and radio frequency

Var Details

employer

the name of the antag flavor this traitor has, set in Traitor's setup if not preset.

ending_objective

the final objective the traitor has to accomplish, be it escaping, hijacking, or just martyrdom.

give_secondary_objectives

Whether to give secondary objectives to the traitor, which aren't necessary but can be completed for a progression and TC boost.

give this traitor an uplink?

is_hijacker

if TRUE, this traitor will always get hijacking as their final objective

Code that allows traitor to get a replacement uplink

Radio frequency that traitor must speak on to get a replacement uplink

traitor_flavor

assoc list of strings set up after employer is given

The flag of uplink that this traitor is supposed to have.

The uplink handler that this traitor belongs to.

reference to the uplink this traitor was given, if they were.

Proc Details

can_change_objectives

Returns true if we're allowed to assign ourselves a new objective

contractor_round_end

Tells how many contracts have been completed.

forge_ending_objective

forge_ending_objective

+

Forges the endgame objective and adds it to this datum's objective list.

forge_traitor_objectives

Generates a complete set of traitor objectives up to the traitor objective limit, including non-generic objectives such as martyr and hijack.

generate_replacement_codes

proc that generates the traitors replacement uplink code and radio frequency

\ No newline at end of file diff --git a/datum/antagonist/valentine.html b/datum/antagonist/valentine.html new file mode 100644 index 0000000000000..925c57aae412c --- /dev/null +++ b/datum/antagonist/valentine.html @@ -0,0 +1 @@ +/datum/antagonist/valentine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

valentine

Vars

dateReference to our date's mind

Var Details

date

Reference to our date's mind

\ No newline at end of file diff --git a/datum/antagonist/wizard.html b/datum/antagonist/wizard.html new file mode 100644 index 0000000000000..aee4c9fbac571 --- /dev/null +++ b/datum/antagonist/wizard.html @@ -0,0 +1 @@ +/datum/antagonist/wizard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wizard

Vars

perksPerks that wizard learn
ritualThis mob's Grand Ritual ability

Procs

assign_ritualInitialises the grand ritual action for this mob
on_ritual_completeIf we receive this signal, you're done with objectives

Var Details

perks

Perks that wizard learn

ritual

This mob's Grand Ritual ability

Proc Details

assign_ritual

Initialises the grand ritual action for this mob

on_ritual_complete

If we receive this signal, you're done with objectives

\ No newline at end of file diff --git a/datum/antagonist/wizard_minion.html b/datum/antagonist/wizard_minion.html new file mode 100644 index 0000000000000..09edea8202fb2 --- /dev/null +++ b/datum/antagonist/wizard_minion.html @@ -0,0 +1 @@ +/datum/antagonist/wizard_minion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wizard_minion

Vars

wiz_teamThe wizard team this wizard minion is part of.

Var Details

wiz_team

The wizard team this wizard minion is part of.

\ No newline at end of file diff --git a/datum/antagonist/xeno/captive.html b/datum/antagonist/xeno/captive.html new file mode 100644 index 0000000000000..51c26f40d3608 --- /dev/null +++ b/datum/antagonist/xeno/captive.html @@ -0,0 +1 @@ +/datum/antagonist/xeno/captive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

captive

Vars

captive_teamOur associated antagonist team for captive xenomorphs

Var Details

captive_team

Our associated antagonist team for captive xenomorphs

\ No newline at end of file diff --git a/datum/area_spawn.html b/datum/area_spawn.html new file mode 100644 index 0000000000000..9f8678b86b1b7 --- /dev/null +++ b/datum/area_spawn.html @@ -0,0 +1,4 @@ +/datum/area_spawn - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

area_spawn

Area spawn datums

+

Use these to spawn atoms in areas instead of placing them on a map. It will select any available open and entering turf.

Vars

amount_to_spawnThe amount we want to spawn
blacklisted_stationsMap blacklist, this is used to determine what maps we should not spawn on.
desired_atomThe atom that we want to spawn
modeSee code/__DEFINES/~skyrat_defines/automapper.dm
optionalIf failing to find a suitable area is OK, then this should be TRUE or CI will fail. +Should probably be true if the target_areas are random, such as ruins.
target_areasThe target area for us to spawn the desired atom, the list is formatted, highest priority first.

Procs

try_spawnAttempts to find a location using an algorithm to spawn the desired atom.

Var Details

amount_to_spawn

The amount we want to spawn

blacklisted_stations

Map blacklist, this is used to determine what maps we should not spawn on.

desired_atom

The atom that we want to spawn

mode

See code/__DEFINES/~skyrat_defines/automapper.dm

optional

If failing to find a suitable area is OK, then this should be TRUE or CI will fail. +Should probably be true if the target_areas are random, such as ruins.

target_areas

The target area for us to spawn the desired atom, the list is formatted, highest priority first.

Proc Details

try_spawn

Attempts to find a location using an algorithm to spawn the desired atom.

\ No newline at end of file diff --git a/datum/area_spawn_over.html b/datum/area_spawn_over.html new file mode 100644 index 0000000000000..c274bbfd30ab6 --- /dev/null +++ b/datum/area_spawn_over.html @@ -0,0 +1 @@ +/datum/area_spawn_over - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

area_spawn_over

Spawns an atom on any turf that contains specific over atoms.

Vars

blacklisted_stationsMap blacklist, this is used to determine what maps we should not spawn on.
desired_atomThe atom type that we want to spawn
over_atomsThe list of atom types to spawn the desired atom over.
target_areasThe target area types for us to search for the over_atoms.

Procs

try_spawnSpawn the atoms.

Var Details

blacklisted_stations

Map blacklist, this is used to determine what maps we should not spawn on.

desired_atom

The atom type that we want to spawn

over_atoms

The list of atom types to spawn the desired atom over.

target_areas

The target area types for us to search for the over_atoms.

Proc Details

try_spawn

Spawn the atoms.

\ No newline at end of file diff --git a/datum/armament_entry.html b/datum/armament_entry.html new file mode 100644 index 0000000000000..2a2c0aa2d548c --- /dev/null +++ b/datum/armament_entry.html @@ -0,0 +1 @@ +/datum/armament_entry - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

armament_entry

Vars

cached_base64Our cached image.
categoryCategory of the item. This is used to group items together in the UI.
category_item_limitThis is an abstract variable, only set this for base category types. It should not be overriden by subtypes. Set to 0 for infinite.
costThe points cost of this item.
descriptionThe description of the equipment used in the listing, if not set, it will use the items description.
item_typeThe item path that we refer to when equipping. If left empty, it will be considered abstract.
magazineDo we have magazines for purchase?
magazine_costIf we have a magazine, how much is it?
max_purchaseThe maximum amount of this item that can be equipped.
nameThe name of the equipment used in the listing, if not set, it will use the items name.
restrictedIs this restricted for purchase in some form? Requires extra code in the vendor to function, used for guncargo.
slot_to_equipDefines what slot we will try to equip this item to.
subcategoryOur subcategory, where the item will be listed.

Procs

equip_to_humanThis proc handles how the item should be equipped to the player. This needs to return either TRUE or FALSE, TRUE being that it was able to equip the item.

Var Details

cached_base64

Our cached image.

category

Category of the item. This is used to group items together in the UI.

category_item_limit

This is an abstract variable, only set this for base category types. It should not be overriden by subtypes. Set to 0 for infinite.

cost

The points cost of this item.

description

The description of the equipment used in the listing, if not set, it will use the items description.

item_type

The item path that we refer to when equipping. If left empty, it will be considered abstract.

magazine

Do we have magazines for purchase?

magazine_cost

If we have a magazine, how much is it?

max_purchase

The maximum amount of this item that can be equipped.

name

The name of the equipment used in the listing, if not set, it will use the items name.

restricted

Is this restricted for purchase in some form? Requires extra code in the vendor to function, used for guncargo.

slot_to_equip

Defines what slot we will try to equip this item to.

subcategory

Our subcategory, where the item will be listed.

Proc Details

equip_to_human

This proc handles how the item should be equipped to the player. This needs to return either TRUE or FALSE, TRUE being that it was able to equip the item.

\ No newline at end of file diff --git a/datum/armament_entry/company_import.html b/datum/armament_entry/company_import.html new file mode 100644 index 0000000000000..03368bc9924e3 --- /dev/null +++ b/datum/armament_entry/company_import.html @@ -0,0 +1 @@ +/datum/armament_entry/company_import - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

company_import

Vars

company_bitflagBitflag of the company
contrabandIf this requires a multitooled console to be visible

Var Details

company_bitflag

Bitflag of the company

contraband

If this requires a multitooled console to be visible

\ No newline at end of file diff --git a/datum/armor.html b/datum/armor.html new file mode 100644 index 0000000000000..bc5d08851f773 --- /dev/null +++ b/datum/armor.html @@ -0,0 +1,2 @@ +/datum/armor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

armor

The armor datum holds information about different types of armor that an atom can have. +It also contains logic and helpers for calculating damage and effective damage

Procs

add_other_armorReturns a new armor datum with the given armor added onto this one
generate_new_with_modifiersGenerate a brand new armor datum with the modifiers given, if ARMOR_ALL is specified only that modifier is used
generate_new_with_multipliersGenerate a brand new armor datum with the multiplier given, if ARMOR_ALL is specified only that modifer is used
generate_new_with_specificGenerate a brand new armor datum with the values given, if a value is not present it carries over
get_ratingGets the rating of armor for the specified rating
get_rating_listConverts all the ratings of the armor into a list, optionally inverted
has_any_armorChecks if any of the armor values are non-zero, so this technically also counts negative armor!
subtract_other_armorReturns a new armor datum with the given armor removed from this one

Proc Details

add_other_armor

Returns a new armor datum with the given armor added onto this one

generate_new_with_modifiers

Generate a brand new armor datum with the modifiers given, if ARMOR_ALL is specified only that modifier is used

generate_new_with_multipliers

Generate a brand new armor datum with the multiplier given, if ARMOR_ALL is specified only that modifer is used

generate_new_with_specific

Generate a brand new armor datum with the values given, if a value is not present it carries over

get_rating

Gets the rating of armor for the specified rating

get_rating_list

Converts all the ratings of the armor into a list, optionally inverted

has_any_armor

Checks if any of the armor values are non-zero, so this technically also counts negative armor!

subtract_other_armor

Returns a new armor datum with the given armor removed from this one

\ No newline at end of file diff --git a/datum/armour_dimensional_theme.html b/datum/armour_dimensional_theme.html new file mode 100644 index 0000000000000..2a733e5ef4c4f --- /dev/null +++ b/datum/armour_dimensional_theme.html @@ -0,0 +1,33 @@ +/datum/armour_dimensional_theme - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

armour_dimensional_theme

Datum describing a 'theme' which transforms a 3x3 area's turfs when applied. +It also creates a number of themed barriers in that area.

Procs

applyTransforms turfs around a source point into a new themed material. +Also place some barriers in unoccupied areas.
apply_randomApplies a random dimensional theme effect centered around a provided point. +This will transform floors and walls, as well as creating some themed barriers in that area.
convert_turfChanges a turf into a different turf
get_target_areaReturns a list of turfs which it is valid to apply changes to.
place_barrierPlaces a barrier at a specified turf.
place_barriersPlaces a random amount of themed barriers in unoccupied spaces adjacent to a source tile.

Proc Details

apply

Transforms turfs around a source point into a new themed material. +Also place some barriers in unoccupied areas.

+

Arguments

+

apply_random

Applies a random dimensional theme effect centered around a provided point. +This will transform floors and walls, as well as creating some themed barriers in that area.

+

Arguments

+

convert_turf

Changes a turf into a different turf

+

Arguments

+

get_target_area

Returns a list of turfs which it is valid to apply changes to.

+

Arguments

+

place_barrier

Places a barrier at a specified turf.

+

Arguments

+

place_barriers

Places a random amount of themed barriers in unoccupied spaces adjacent to a source tile.

+

Arguments

+
\ No newline at end of file diff --git a/datum/armour_dimensional_theme/dangerous/lavaland.html b/datum/armour_dimensional_theme/dangerous/lavaland.html new file mode 100644 index 0000000000000..ac80daefd942c --- /dev/null +++ b/datum/armour_dimensional_theme/dangerous/lavaland.html @@ -0,0 +1 @@ +/datum/armour_dimensional_theme/dangerous/lavaland - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

lavaland

Procs

place_barrierReplace the barrier spawning to instead create weak lava.

Proc Details

place_barrier

Replace the barrier spawning to instead create weak lava.

\ No newline at end of file diff --git a/datum/ash_ritual.html b/datum/ash_ritual.html new file mode 100644 index 0000000000000..c94da481f7586 --- /dev/null +++ b/datum/ash_ritual.html @@ -0,0 +1 @@ +/datum/ash_ritual - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ash_ritual

Vars

consumed_componentsthe list that checks whether the components will be consumed
descthe description of the ritual
in_usewhether the ritual is in use
namethe name of the ritual
required_componentsthe components necessary for a successful ritual
ritual_effectthe effect that is spawned when the components are consumed, etc.
ritual_success_itemsif the ritual is successful, it will go through each item in the list to be spawned
ritual_timethe time it takes to process each stage of the ritual

Var Details

consumed_components

the list that checks whether the components will be consumed

desc

the description of the ritual

in_use

whether the ritual is in use

name

the name of the ritual

required_components

the components necessary for a successful ritual

ritual_effect

the effect that is spawned when the components are consumed, etc.

ritual_success_items

if the ritual is successful, it will go through each item in the list to be spawned

ritual_time

the time it takes to process each stage of the ritual

\ No newline at end of file diff --git a/datum/ash_ritual/incite_megafauna.html b/datum/ash_ritual/incite_megafauna.html new file mode 100644 index 0000000000000..a83072d978fd2 --- /dev/null +++ b/datum/ash_ritual/incite_megafauna.html @@ -0,0 +1,5 @@ +/datum/ash_ritual/incite_megafauna - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

incite_megafauna

Procs

spawn_megafaunaCalled within an addtimer in the ritual success of "Incite Megafauna." +ARG: chosen_megafauna is the megafauna that will be spawned +ARG: spawning_turf is the turf that the megafauna will be spawned on

Proc Details

spawn_megafauna

Called within an addtimer in the ritual success of "Incite Megafauna." +ARG: chosen_megafauna is the megafauna that will be spawned +ARG: spawning_turf is the turf that the megafauna will be spawned on

\ No newline at end of file diff --git a/datum/asset.html b/datum/asset.html new file mode 100644 index 0000000000000..3d003619bbcf9 --- /dev/null +++ b/datum/asset.html @@ -0,0 +1,11 @@ +/datum/asset - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

asset

Vars

cross_round_cachableWhether or not this asset can be cached across rounds of the same commit under the CACHE_ASSETS config. +This is not a guarantee the asset will be cached. Not all asset subtypes respect this field, and the +config can, of course, be disabled. +Disable this if your asset can change between rounds on the same exact version of the code.
earlyWhether or not this asset should be loaded in the "early assets" SS

Procs

ensure_readyStub that allows us to react to something trying to get us +Not useful here, more handy for sprite sheets
get_serialized_url_mappingsReturns a cached tgui message of URL mappings
queued_generationStub to hook into if your asset is having its generation queued by SSasset_loading
save_to_logsSimply takes any generated file and saves it to the round-specific /logs folder. Useful for debugging potential issues with spritesheet generation/display. +Only called when the SAVE_SPRITESHEETS config option is uncommented.
should_refreshReturns whether or not the asset should attempt to read from cache

Var Details

cross_round_cachable

Whether or not this asset can be cached across rounds of the same commit under the CACHE_ASSETS config. +This is not a guarantee the asset will be cached. Not all asset subtypes respect this field, and the +config can, of course, be disabled. +Disable this if your asset can change between rounds on the same exact version of the code.

early

Whether or not this asset should be loaded in the "early assets" SS

Proc Details

ensure_ready

Stub that allows us to react to something trying to get us +Not useful here, more handy for sprite sheets

get_serialized_url_mappings

Returns a cached tgui message of URL mappings

queued_generation

Stub to hook into if your asset is having its generation queued by SSasset_loading

save_to_logs

Simply takes any generated file and saves it to the round-specific /logs folder. Useful for debugging potential issues with spritesheet generation/display. +Only called when the SAVE_SPRITESHEETS config option is uncommented.

should_refresh

Returns whether or not the asset should attempt to read from cache

\ No newline at end of file diff --git a/datum/asset/json.html b/datum/asset/json.html new file mode 100644 index 0000000000000..b8abb46992c0f --- /dev/null +++ b/datum/asset/json.html @@ -0,0 +1 @@ +/datum/asset/json - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

json

A subtype to generate a JSON file from a list

Vars

nameThe filename, will be suffixed with ".json"

Procs

generateReturns the data that will be JSON encoded

Var Details

name

The filename, will be suffixed with ".json"

Proc Details

generate

Returns the data that will be JSON encoded

\ No newline at end of file diff --git a/datum/asset/simple.html b/datum/asset/simple.html new file mode 100644 index 0000000000000..92efc8246b9cc --- /dev/null +++ b/datum/asset/simple.html @@ -0,0 +1,7 @@ +/datum/asset/simple - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

simple

If you don't need anything complicated.

Vars

assetslist of assets for this datum in the form of: +asset_filename = asset_file. At runtime the asset_file will be +converted into a asset_cache datum.
keep_local_nameTRUE for keeping local asset names when browse_rsc backend is used
legacySet to true to have this asset also be sent via the legacy browse_rsc +system when cdn transports are enabled?

Var Details

assets

list of assets for this datum in the form of: +asset_filename = asset_file. At runtime the asset_file will be +converted into a asset_cache datum.

keep_local_name

TRUE for keeping local asset names when browse_rsc backend is used

legacy

Set to true to have this asset also be sent via the legacy browse_rsc +system when cdn transports are enabled?

\ No newline at end of file diff --git a/datum/asset/simple/namespaced.html b/datum/asset/simple/namespaced.html new file mode 100644 index 0000000000000..6bf554fd7453b --- /dev/null +++ b/datum/asset/simple/namespaced.html @@ -0,0 +1,9 @@ +/datum/asset/simple/namespaced - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

namespaced

Namespace'ed assets (for static css and html files) +When sent over a cdn transport, all assets in the same asset datum will exist in the same folder, as their plain names. +Used to ensure css files can reference files by url() without having to generate the css at runtime, both the css file and the files it depends on must exist in the same namespace asset datum. (Also works for html) +For example blah.css with asset blah.png will get loaded as namespaces/a3d..14f/f12..d3c.css and namespaces/a3d..14f/blah.png. allowing the css file to load blah.png by a relative url rather then compute the generated url with get_url_mappings(). +The namespace folder's name will change if any of the assets change. (excluding parent assets)

Vars

parentsparents - list of the parent asset or assets (in name = file assoicated format) for this namespace. +parent assets must be referenced by their generated url, but if an update changes a parent asset, it won't change the namespace's identity.

Procs

get_htmlloaderGet a html string that will load a html asset. +Needed because byond doesn't allow you to browse() to a url.

Var Details

parents

parents - list of the parent asset or assets (in name = file assoicated format) for this namespace. +parent assets must be referenced by their generated url, but if an update changes a parent asset, it won't change the namespace's identity.

Proc Details

get_htmlloader

Get a html string that will load a html asset. +Needed because byond doesn't allow you to browse() to a url.

\ No newline at end of file diff --git a/datum/asset/spritesheet.html b/datum/asset/spritesheet.html new file mode 100644 index 0000000000000..27af95219487a --- /dev/null +++ b/datum/asset/spritesheet.html @@ -0,0 +1,15 @@ +/datum/asset/spritesheet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spritesheet

Vars

load_immediatelyIf this asset should be fully loaded on new +Defaults to false so we can process this stuff nicely
to_generateList of arguments to pass into queuedInsert +Exists so we can queue icon insertion, mostly for stuff like preferences

Procs

ModifyInsertedA simple proc handing the Icon for you to modify before it gets turned into an asset.
create_spritesheetsOverride this in order to start the creation of the spritehseet. +This is where all your Insert, InsertAll, etc calls should be inside.
get_background_urlReturns the URL to put in the background:url of the CSS asset
icon_size_idReturns the size class (ex design32x32) for a given sprite's icon

Var Details

load_immediately

If this asset should be fully loaded on new +Defaults to false so we can process this stuff nicely

to_generate

List of arguments to pass into queuedInsert +Exists so we can queue icon insertion, mostly for stuff like preferences

Proc Details

ModifyInserted

A simple proc handing the Icon for you to modify before it gets turned into an asset.

+

Arguments:

+

create_spritesheets

Override this in order to start the creation of the spritehseet. +This is where all your Insert, InsertAll, etc calls should be inside.

get_background_url

Returns the URL to put in the background:url of the CSS asset

icon_size_id

Returns the size class (ex design32x32) for a given sprite's icon

+

Arguments:

+
\ No newline at end of file diff --git a/datum/asset/spritesheet/antagonists.html b/datum/asset/spritesheet/antagonists.html new file mode 100644 index 0000000000000..e575bc0578e9c --- /dev/null +++ b/datum/asset/spritesheet/antagonists.html @@ -0,0 +1 @@ +/datum/asset/spritesheet/antagonists - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

antagonists

Sprites generated for the antagonists panel

Vars

antag_iconsMapping of spritesheet keys -> icons

Var Details

antag_icons

Mapping of spritesheet keys -> icons

\ No newline at end of file diff --git a/datum/asset/spritesheet/crafting.html b/datum/asset/spritesheet/crafting.html new file mode 100644 index 0000000000000..1ade1c4215797 --- /dev/null +++ b/datum/asset/spritesheet/crafting.html @@ -0,0 +1,4 @@ +/datum/asset/spritesheet/crafting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

crafting

Representative icons for the contents of each crafting recipe

Procs

add_atom_iconAdds the ingredient icon to the spritesheet with given ID
add_tool_iconsAdds tool icons to the spritesheet

Proc Details

add_atom_icon

Adds the ingredient icon to the spritesheet with given ID

+

ingredient_typepath can be an obj typepath OR a reagent typepath

+

If it a reagent, it will use the default container's icon state, +OR if it has a glass style associated, it will use that

add_tool_icons

Adds tool icons to the spritesheet

\ No newline at end of file diff --git a/datum/asset/spritesheet/decals.html b/datum/asset/spritesheet/decals.html new file mode 100644 index 0000000000000..9307f2eb59414 --- /dev/null +++ b/datum/asset/spritesheet/decals.html @@ -0,0 +1,11 @@ +/datum/asset/spritesheet/decals - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

decals

Vars

painter_typeThe associated decal painter type to grab decals, colors, etc from.
preview_floor_iconThe floor icon used for blend_preview_floor()
preview_floor_stateThe floor icon state used for blend_preview_floor()

Procs

blend_preview_floorUnderlay an example floor for preview purposes, and return the new icon.
insert_stateInsert a specific state into the spritesheet.

Var Details

painter_type

The associated decal painter type to grab decals, colors, etc from.

preview_floor_icon

The floor icon used for blend_preview_floor()

preview_floor_state

The floor icon state used for blend_preview_floor()

Proc Details

blend_preview_floor

Underlay an example floor for preview purposes, and return the new icon.

+

Arguments:

+

insert_state

Insert a specific state into the spritesheet.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/asset/spritesheet/plumbing.html b/datum/asset/spritesheet/plumbing.html new file mode 100644 index 0000000000000..3eb74311ccc29 --- /dev/null +++ b/datum/asset/spritesheet/plumbing.html @@ -0,0 +1 @@ +/datum/asset/spritesheet/plumbing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

plumbing

Procs

create_spritesheetsadd modular plumbing sprites to spritesheet so that they will show up in the plumbing RCD menu etc

Proc Details

create_spritesheets

add modular plumbing sprites to spritesheet so that they will show up in the plumbing RCD menu etc

\ No newline at end of file diff --git a/datum/asset_cache_item.html b/datum/asset_cache_item.html new file mode 100644 index 0000000000000..eecb7975b9b04 --- /dev/null +++ b/datum/asset_cache_item.html @@ -0,0 +1,11 @@ +/datum/asset_cache_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

asset_cache_item

An internal datum containing info on items in the asset cache. Mainly used to cache md5 info for speed.

Vars

extour file extension e.g. .png, .gif, etc
hashmd5() of the file this asset item represents.
keep_local_nameTRUE for keeping local asset names when browse_rsc backend is used
legacyShould this file also be sent via the legacy browse_rsc system +when cdn transports are enabled?
namethe name of this asset item, becomes the key in SSassets.cache list
namespaceUsed by the cdn system to keep legacy css assets with their parent +css file. (css files resolve urls relative to the css file, so the +legacy system can't be used if the css file itself could go out over +the cdn)
namespace_parentTrue if this is the parent css or html file for an asset's namespace
resourcethe file this asset represents

Procs

Newpass in a valid file_hash if you have one to save it from needing to do it again. +pass in a valid dmi file path string e.g. "icons/path/to/dmi_file.dmi" to make generating the hash less expensive

Var Details

ext

our file extension e.g. .png, .gif, etc

hash

md5() of the file this asset item represents.

keep_local_name

TRUE for keeping local asset names when browse_rsc backend is used

legacy

Should this file also be sent via the legacy browse_rsc system +when cdn transports are enabled?

name

the name of this asset item, becomes the key in SSassets.cache list

namespace

Used by the cdn system to keep legacy css assets with their parent +css file. (css files resolve urls relative to the css file, so the +legacy system can't be used if the css file itself could go out over +the cdn)

namespace_parent

True if this is the parent css or html file for an asset's namespace

resource

the file this asset represents

Proc Details

New

pass in a valid file_hash if you have one to save it from needing to do it again. +pass in a valid dmi file path string e.g. "icons/path/to/dmi_file.dmi" to make generating the hash less expensive

\ No newline at end of file diff --git a/datum/asset_transport.html b/datum/asset_transport.html new file mode 100644 index 0000000000000..065aae45c744a --- /dev/null +++ b/datum/asset_transport.html @@ -0,0 +1,28 @@ +/datum/asset_transport - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

asset_transport

Base browse_rsc asset transport

Vars

dont_mutate_filenamesDon't mutate the filename of assets when sending via browse_rsc. +This is to make it easier to debug issues with assets, and allow server operators to bypass issues that make it to production. +If turning this on fixes asset issues, something isn't using get_asset_url and the asset isn't marked legacy, fix one of those.

Procs

InitializeInitialize - Called when SSassets initializes.
LoadCalled when the transport is loaded by the config controller, not called on the default transport unless it gets loaded by a config change.
get_asset_urlReturns a url for a given asset. +asset_name - Name of the asset. +asset_cache_item - asset cache item datum for the asset, optional, overrides asset_name
register_assetRegister a browser asset with the asset cache system. +returns a /datum/asset_cache_item. +mutiple calls to register the same asset under the same asset_name return the same datum.
send_assetsSends a list of browser assets to a client +client - a client or mob +asset_list - A list of asset filenames to be sent to the client. Can optionally be assoicated with the asset's asset_cache_item datum. +Returns TRUE if any assets were sent.
send_assets_slowPrecache files without clogging up the browse() queue, used for passively sending files on connection start.
validate_configCheck the config is valid to load this transport +Returns TRUE or FALSE

Var Details

dont_mutate_filenames

Don't mutate the filename of assets when sending via browse_rsc. +This is to make it easier to debug issues with assets, and allow server operators to bypass issues that make it to production. +If turning this on fixes asset issues, something isn't using get_asset_url and the asset isn't marked legacy, fix one of those.

Proc Details

Initialize

Initialize - Called when SSassets initializes.

Load

Called when the transport is loaded by the config controller, not called on the default transport unless it gets loaded by a config change.

get_asset_url

Returns a url for a given asset. +asset_name - Name of the asset. +asset_cache_item - asset cache item datum for the asset, optional, overrides asset_name

register_asset

Register a browser asset with the asset cache system. +returns a /datum/asset_cache_item. +mutiple calls to register the same asset under the same asset_name return the same datum.

+

Arguments:

+

send_assets

Sends a list of browser assets to a client +client - a client or mob +asset_list - A list of asset filenames to be sent to the client. Can optionally be assoicated with the asset's asset_cache_item datum. +Returns TRUE if any assets were sent.

send_assets_slow

Precache files without clogging up the browse() queue, used for passively sending files on connection start.

validate_config

Check the config is valid to load this transport +Returns TRUE or FALSE

\ No newline at end of file diff --git a/datum/asset_transport/webroot.html b/datum/asset_transport/webroot.html new file mode 100644 index 0000000000000..5c62a97d15597 --- /dev/null +++ b/datum/asset_transport/webroot.html @@ -0,0 +1,11 @@ +/datum/asset_transport/webroot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

webroot

CDN Webroot asset transport.

Procs

get_asset_urlReturns a url for a given asset. +asset_name - Name of the asset. +asset_cache_item - asset cache item datum for the asset, optional, overrides asset_name
load_existing_assetsProcesses thru any assets that were registered before we were loaded as a transport.
register_assetRegister a browser asset with the asset cache system +We also save it to the CDN webroot at this step instead of waiting for send_assets() +asset_name - the identifier of the asset +asset - the actual asset file or an asset_cache_item datum.
save_asset_to_webrootSaves the asset to the webroot taking into account namespaces and hashes.
send_assetswebroot asset sending - does nothing unless passed legacy assets
send_assets_slowwebroot slow asset sending - does nothing.

Proc Details

get_asset_url

Returns a url for a given asset. +asset_name - Name of the asset. +asset_cache_item - asset cache item datum for the asset, optional, overrides asset_name

load_existing_assets

Processes thru any assets that were registered before we were loaded as a transport.

register_asset

Register a browser asset with the asset cache system +We also save it to the CDN webroot at this step instead of waiting for send_assets() +asset_name - the identifier of the asset +asset - the actual asset file or an asset_cache_item datum.

save_asset_to_webroot

Saves the asset to the webroot taking into account namespaces and hashes.

send_assets

webroot asset sending - does nothing unless passed legacy assets

send_assets_slow

webroot slow asset sending - does nothing.

\ No newline at end of file diff --git a/datum/atom_hud.html b/datum/atom_hud.html new file mode 100644 index 0000000000000..fe158ed440dc4 --- /dev/null +++ b/datum/atom_hud.html @@ -0,0 +1,27 @@ +/datum/atom_hud - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

atom_hud

Vars

hud_atomsassociative list of the form: list(z level = list(hud atom)). +tracks what hud atoms for this hud exists in what z level so we can only give users +the hud images that they can actually see.
hud_atoms_all_z_levelsused for signal tracking purposes, associative list of the form: list(hud atom = TRUE) that isn't separated by z level
hud_exceptionshuduser = list(atoms with their hud hidden) - aka everyone hates targeted invisibility
hud_iconsthese will be the indexes for the atom's hud_list
hud_usersassociative list of the form: list(z level = list(hud user client mobs)). +tracks mobs that can "see" us
hud_users_all_z_levelsused for signal tracking purposes, associative list of the form: list(hud user = number of times this hud was added to this user). +that isn't separated by z level
next_time_allowedmobs associated with the next time this hud can be added to them
queued_to_seemobs that have triggered the cooldown and are queued to see the hud, but do not yet
uses_global_hud_categorywhether or not this atom_hud type updates the global huds_by_category list. +some subtypes can't work like this since they're supposed to "belong" to +one target atom each. it will still go in the other global hud lists.

Procs

add_all_atoms_to_single_mob_hudall passed in hud_atoms's hud images (that are part of this atom_hud) to requesting_mob's client.images list +optimization of /datum/atom_hud/proc/add_atom_to_single_mob_hud for hot cases, we assert that no nulls will be passed in via the list
add_atom_to_all_mob_hudsadd just hud_atom's hud images (that are part of this atom_hud) to all the requesting_mobs's client.images list +optimization of /datum/atom_hud/proc/add_atom_to_single_mob_hud for hot cases, we assert that no nulls will be passed in via the list
add_atom_to_hudadd new_hud_atom to this hud
add_atom_to_single_mob_hudadd just hud_atom's hud images (that are part of this atom_hud) to requesting_mob's client.images list
add_single_hud_category_on_atomadds a newly active hud category's image on a hud atom to every mob that could see it
get_hud_atoms_for_z_levelreturns a list of all hud atoms in the given z level and linked lower z levels (because hud users in higher z levels can see below)
get_hud_users_for_z_levelreturns a list of all hud users in the given z level and linked upper z levels (because hud users in higher z levels can see below)
hide_fromHides the images in this hud from former_viewer +If absolute is set to true, this will forcefully remove the hud, even if sources in theory remain
on_atom_or_user_z_level_changedwhen a hud atom or hud user changes z levels this makes sure it gets the images it needs and removes the images it doesn't need. +because of how signals work we need the same proc to handle both use cases because being a hud atom and being a hud user aren't mutually exclusive
remove_all_atoms_from_single_hudremove every hud image for this hud pulled from atoms_to_remove from client_mob's client.images list +optimization of /datum/atom_hud/proc/remove_atom_from_single_hud for hot cases, we assert that no nulls will be passed in via the list
remove_atom_from_all_hudsremove every hud image for this hud on atom_to_remove from client_mobs's client.images list +optimization of /datum/atom_hud/proc/remove_atom_from_single_hud for hot cases, we assert that no nulls will be passed in via the list
remove_atom_from_hudremove this atom from this hud completely
remove_atom_from_single_hudremove every hud image for this hud on atom_to_remove from client_mob's client.images list
remove_single_hud_category_on_atomremoves the image or images in hud_atom.hud_list[hud_category_to_remove] from every mob that can see it but leaves every other image +from that atom there.
show_toshow this hud to the passed in user

Var Details

hud_atoms

associative list of the form: list(z level = list(hud atom)). +tracks what hud atoms for this hud exists in what z level so we can only give users +the hud images that they can actually see.

hud_atoms_all_z_levels

used for signal tracking purposes, associative list of the form: list(hud atom = TRUE) that isn't separated by z level

hud_exceptions

huduser = list(atoms with their hud hidden) - aka everyone hates targeted invisibility

hud_icons

these will be the indexes for the atom's hud_list

hud_users

associative list of the form: list(z level = list(hud user client mobs)). +tracks mobs that can "see" us

hud_users_all_z_levels

used for signal tracking purposes, associative list of the form: list(hud user = number of times this hud was added to this user). +that isn't separated by z level

next_time_allowed

mobs associated with the next time this hud can be added to them

queued_to_see

mobs that have triggered the cooldown and are queued to see the hud, but do not yet

uses_global_hud_category

whether or not this atom_hud type updates the global huds_by_category list. +some subtypes can't work like this since they're supposed to "belong" to +one target atom each. it will still go in the other global hud lists.

Proc Details

add_all_atoms_to_single_mob_hud

all passed in hud_atoms's hud images (that are part of this atom_hud) to requesting_mob's client.images list +optimization of /datum/atom_hud/proc/add_atom_to_single_mob_hud for hot cases, we assert that no nulls will be passed in via the list

add_atom_to_all_mob_huds

add just hud_atom's hud images (that are part of this atom_hud) to all the requesting_mobs's client.images list +optimization of /datum/atom_hud/proc/add_atom_to_single_mob_hud for hot cases, we assert that no nulls will be passed in via the list

add_atom_to_hud

add new_hud_atom to this hud

add_atom_to_single_mob_hud

add just hud_atom's hud images (that are part of this atom_hud) to requesting_mob's client.images list

add_single_hud_category_on_atom

adds a newly active hud category's image on a hud atom to every mob that could see it

get_hud_atoms_for_z_level

returns a list of all hud atoms in the given z level and linked lower z levels (because hud users in higher z levels can see below)

get_hud_users_for_z_level

returns a list of all hud users in the given z level and linked upper z levels (because hud users in higher z levels can see below)

hide_from

Hides the images in this hud from former_viewer +If absolute is set to true, this will forcefully remove the hud, even if sources in theory remain

on_atom_or_user_z_level_changed

when a hud atom or hud user changes z levels this makes sure it gets the images it needs and removes the images it doesn't need. +because of how signals work we need the same proc to handle both use cases because being a hud atom and being a hud user aren't mutually exclusive

remove_all_atoms_from_single_hud

remove every hud image for this hud pulled from atoms_to_remove from client_mob's client.images list +optimization of /datum/atom_hud/proc/remove_atom_from_single_hud for hot cases, we assert that no nulls will be passed in via the list

remove_atom_from_all_huds

remove every hud image for this hud on atom_to_remove from client_mobs's client.images list +optimization of /datum/atom_hud/proc/remove_atom_from_single_hud for hot cases, we assert that no nulls will be passed in via the list

remove_atom_from_hud

remove this atom from this hud completely

remove_atom_from_single_hud

remove every hud image for this hud on atom_to_remove from client_mob's client.images list

remove_single_hud_category_on_atom

removes the image or images in hud_atom.hud_list[hud_category_to_remove] from every mob that can see it but leaves every other image +from that atom there.

show_to

show this hud to the passed in user

\ No newline at end of file diff --git a/datum/atom_hud/alternate_appearance.html b/datum/atom_hud/alternate_appearance.html new file mode 100644 index 0000000000000..8a6da7fc88374 --- /dev/null +++ b/datum/atom_hud/alternate_appearance.html @@ -0,0 +1 @@ +/datum/atom_hud/alternate_appearance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

alternate_appearance

Procs

apply_to_new_mobWrapper for applying this alt hud to the passed mob (if they should see it)
mobShouldSeeChecks if the passed mob should be seeing this hud
track_mobRegisters some signals to track the mob's state to determine if they should be seeing the hud still
untrack_mobUnregisters the signals that were tracking the mob's state

Proc Details

apply_to_new_mob

Wrapper for applying this alt hud to the passed mob (if they should see it)

mobShouldSee

Checks if the passed mob should be seeing this hud

track_mob

Registers some signals to track the mob's state to determine if they should be seeing the hud still

untrack_mob

Unregisters the signals that were tracking the mob's state

\ No newline at end of file diff --git a/datum/atom_hud/alternate_appearance/basic/has_antagonist.html b/datum/atom_hud/alternate_appearance/basic/has_antagonist.html new file mode 100644 index 0000000000000..88d46e1c1a1e6 --- /dev/null +++ b/datum/atom_hud/alternate_appearance/basic/has_antagonist.html @@ -0,0 +1 @@ +/datum/atom_hud/alternate_appearance/basic/has_antagonist - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

has_antagonist

An alternate appearance that will only show if you have the antag datum

Vars

team_refOptionally, a weakref to antag team

Var Details

team_ref

Optionally, a weakref to antag team

\ No newline at end of file diff --git a/datum/augment_item.html b/datum/augment_item.html new file mode 100644 index 0000000000000..3317530212941 --- /dev/null +++ b/datum/augment_item.html @@ -0,0 +1 @@ +/datum/augment_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

augment_item

Vars

allowed_biotypesWhich biotypes are allowed to receive the augment
categoryCategory in which the augment belongs to. check "_DEFINES/augment.dm"
costHow much quirky points does it cost?
descriptionDescription of the loadout augment, automatically set by New() if null
pathTypepath to the augment being used
slotSlot in which the augment belongs to, MAKE SURE THE SAME SLOT IS ONLY IN ONE CATEGORY

Var Details

allowed_biotypes

Which biotypes are allowed to receive the augment

category

Category in which the augment belongs to. check "_DEFINES/augment.dm"

cost

How much quirky points does it cost?

description

Description of the loadout augment, automatically set by New() if null

path

Typepath to the augment being used

slot

Slot in which the augment belongs to, MAKE SURE THE SAME SLOT IS ONLY IN ONE CATEGORY

\ No newline at end of file diff --git a/datum/augment_item/limb.html b/datum/augment_item/limb.html new file mode 100644 index 0000000000000..196b8d58a145f --- /dev/null +++ b/datum/augment_item/limb.html @@ -0,0 +1 @@ +/datum/augment_item/limb - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

limb

Vars

uses_robotic_stylesHardcoded styles that can be chosen from and apply to limb, if it's true

Var Details

uses_robotic_styles

Hardcoded styles that can be chosen from and apply to limb, if it's true

\ No newline at end of file diff --git a/datum/autowiki.html b/datum/autowiki.html new file mode 100644 index 0000000000000..dc9959c82de89 --- /dev/null +++ b/datum/autowiki.html @@ -0,0 +1,23 @@ +/datum/autowiki - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

autowiki

A representation of an automated wiki page.

Vars

pageThe page on the wiki to be replaced. +This should never be a user-facing page, like "Guide to circuits". +It should always be a template that only Autowiki should touch. +For example: "Template:Autowiki/CircuitInfo".

Procs

escape_valueEscape a parameter such that it can be correctly put inside a wiki output
generateOverride and return the new text of the page. +This proc can be impure, usually to call upload_file.
include_templateGenerates an auto formatted template user. +Your autowiki should ideally be a lot of these. +It lets wiki editors edit it much easier later, without having to enter repo. +Parameters will be passed in by name. That means your template should expect +something that looks like {{ Autowiki_Circuit|name=Combiner|description=This combines }} +Lists, which must be array-like (no keys), will be turned into a flat list with their key and a number, +such that list("food" = list("fruit", "candy")) -> food1=fruit|food2=candy
upload_iconTakes an icon and uploads it to Autowiki-name.png. +Do your best to make sure this is unique, so it doesn't clash with other autowiki icons.

Var Details

page

The page on the wiki to be replaced. +This should never be a user-facing page, like "Guide to circuits". +It should always be a template that only Autowiki should touch. +For example: "Template:Autowiki/CircuitInfo".

Proc Details

escape_value

Escape a parameter such that it can be correctly put inside a wiki output

generate

Override and return the new text of the page. +This proc can be impure, usually to call upload_file.

include_template

Generates an auto formatted template user. +Your autowiki should ideally be a lot of these. +It lets wiki editors edit it much easier later, without having to enter repo. +Parameters will be passed in by name. That means your template should expect +something that looks like {{ Autowiki_Circuit|name=Combiner|description=This combines }} +Lists, which must be array-like (no keys), will be turned into a flat list with their key and a number, +such that list("food" = list("fruit", "candy")) -> food1=fruit|food2=candy

upload_icon

Takes an icon and uploads it to Autowiki-name.png. +Do your best to make sure this is unique, so it doesn't clash with other autowiki icons.

\ No newline at end of file diff --git a/datum/avatar_help_text.html b/datum/avatar_help_text.html new file mode 100644 index 0000000000000..e2b33e9e206f0 --- /dev/null +++ b/datum/avatar_help_text.html @@ -0,0 +1 @@ +/datum/avatar_help_text - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

avatar_help_text

Vars

help_textText to display in the window

Var Details

help_text

Text to display in the window

\ No newline at end of file diff --git a/datum/award.html b/datum/award.html new file mode 100644 index 0000000000000..b1b6ceb6da3c5 --- /dev/null +++ b/datum/award.html @@ -0,0 +1 @@ +/datum/award - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

award

Vars

database_idWhat ID do we use in db, limited to 32 characters
iconThe dmi icon file that holds the award's icon state.
icon_stateThe icon state for this award.
nameName of the achievement, If null it won't show up in the achievement browser. (Handy for inheritance trees)

Procs

get_changed_rowsThis saves the changed data to the hub.
get_raw_valueGet raw numerical achievement value from the database
get_ui_datareturns additional ui data for the Check Achievements menu
loadThis proc loads the achievement data from the hub.
on_unlockCan be overridden for achievement specific events

Var Details

database_id

What ID do we use in db, limited to 32 characters

icon

The dmi icon file that holds the award's icon state.

icon_state

The icon state for this award.

name

Name of the achievement, If null it won't show up in the achievement browser. (Handy for inheritance trees)

Proc Details

get_changed_rows

This saves the changed data to the hub.

get_raw_value

Get raw numerical achievement value from the database

get_ui_data

returns additional ui data for the Check Achievements menu

load

This proc loads the achievement data from the hub.

on_unlock

Can be overridden for achievement specific events

\ No newline at end of file diff --git a/datum/award/achievement.html b/datum/award/achievement.html new file mode 100644 index 0000000000000..5e9e0a20035d4 --- /dev/null +++ b/datum/award/achievement.html @@ -0,0 +1 @@ +/datum/award/achievement - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

achievement

Achievements are one-off awards for usually doing cool things.

Vars

times_achievedHow many players have earned this achievement

Var Details

times_achieved

How many players have earned this achievement

\ No newline at end of file diff --git a/datum/bank_account.html b/datum/bank_account.html new file mode 100644 index 0000000000000..a634e2896dbf0 --- /dev/null +++ b/datum/bank_account.html @@ -0,0 +1,43 @@ +/datum/bank_account - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bank_account

Vars

account_balanceHow many credits are currently held in the bank account.
account_debtDebt. If higher than 0, A portion of the credits is earned (or the whole debt, whichever is lower) will go toward paying it off.
account_holderName listed on the account, reflected on the ID card.
account_idThe Unique ID number code associated with the owner's bank account, assigned at round start.
account_jobThe job datum of the account owner.
add_to_accountsShould this ID be added to the global list of accounts? If true, will be subject to station-bound economy effects as well as income.
bank_cardsList of the physical ID card objects that are associated with this bank_account
being_dumpedIs there a CRAB 17 on the station draining funds? Prevents manual fund transfer. pink levels are rising
bitrunning_pointsPoints for bit runner's vendor. Awarded for completing virtual domains.
bountiesIf player is currently picking a civilian bounty to do, these options are held here to prevent soft-resetting through the UI.
bounty_timerCooldown timer on replacing a civilain bounty. Bounties can only be replaced once every 5 minutes.
civilian_bountyReference to the current civilian bounty that the account is working on.
last_ticket_luxuryTracks if the last ticket we got was for luxury items, if this is true we get a normal food ticket
mining_pointsHow many mining points (shaft miner credits) is held in the bank account, used for mining vendors.
pay_tokenA special semi-tandom token for tranfering money from NT pay app
payday_modifierIf there are things effecting how much income a player will get, it's reflected here 1 is standard for humans.
redeemed_couponsA lazylist of coupons redeemed with the Coupon Master pda app associated with this account.
replaceableCan this account be replaced? Set to true for default IDs not recognized by the station.
tracked_ticket_bookTracks a linked ration ticket book. If we have one of these, then we'll put tickets in it every payday.
transaction_historyList with a transaction history for NT pay app

Procs

add_log_to_historyAdd log to transactions history. Deletes the oldest log when the history has more than 20 entries. +Main format: Category: Reason in Reason. Example: Vending: Machinery Using +Arguments:
adjust_moneyAdjusts the balance of a bank_account as well as sanitizes the numerical input. +Arguments:
bank_card_talkThis sends a local chat message to the owner of a bank account, on all ID cards registered to the bank_account. +If not held, sends out a message to all nearby players. +Arguments:
bounty_numReturns the required item count, or required chemical units required to submit a bounty.
bounty_textReturns a string with the civilian bounty's description on it.
bounty_valueProduces the value of the account's civilian bounty reward, if able.
dumpeetSets the bank_account to behave as though a CRAB-17 event is happening.
has_moneyReturns TRUE if a bank account has more than or equal to the amount, amt. +Otherwise returns false. +Arguments:
make_ration_ticketAttempts to create a ration ticket book in the card holder's hand, and failing that, the drop location of the card
pay_debtCalled when a portion of a debt is to be paid. It'll return the amount of credits put forwards to extinguish the debt.
reset_bountyPerforms house-cleaning on variables when a civilian bounty is replaced, or, when a bounty is claimed.
setup_unique_account_idProc guarantees the account_id possesses a unique number. +If it doesn't, it tries to find a unique alternative. +It then adds it to the SSeconomy.bank_accounts_by_id global list.
transfer_moneyPerforms a transfer of credits to the bank_account datum from another bank account. +Arguments:
update_account_job_listsProc places this account into the right place in the SSeconomy.bank_accounts_by_job list, if needed. +If an old job is given, it removes it from its previous place first.

Var Details

account_balance

How many credits are currently held in the bank account.

account_debt

Debt. If higher than 0, A portion of the credits is earned (or the whole debt, whichever is lower) will go toward paying it off.

account_holder

Name listed on the account, reflected on the ID card.

account_id

The Unique ID number code associated with the owner's bank account, assigned at round start.

account_job

The job datum of the account owner.

add_to_accounts

Should this ID be added to the global list of accounts? If true, will be subject to station-bound economy effects as well as income.

bank_cards

List of the physical ID card objects that are associated with this bank_account

being_dumped

Is there a CRAB 17 on the station draining funds? Prevents manual fund transfer. pink levels are rising

bitrunning_points

Points for bit runner's vendor. Awarded for completing virtual domains.

bounties

If player is currently picking a civilian bounty to do, these options are held here to prevent soft-resetting through the UI.

bounty_timer

Cooldown timer on replacing a civilain bounty. Bounties can only be replaced once every 5 minutes.

civilian_bounty

Reference to the current civilian bounty that the account is working on.

last_ticket_luxury

Tracks if the last ticket we got was for luxury items, if this is true we get a normal food ticket

mining_points

How many mining points (shaft miner credits) is held in the bank account, used for mining vendors.

pay_token

A special semi-tandom token for tranfering money from NT pay app

payday_modifier

If there are things effecting how much income a player will get, it's reflected here 1 is standard for humans.

redeemed_coupons

A lazylist of coupons redeemed with the Coupon Master pda app associated with this account.

replaceable

Can this account be replaced? Set to true for default IDs not recognized by the station.

tracked_ticket_book

Tracks a linked ration ticket book. If we have one of these, then we'll put tickets in it every payday.

transaction_history

List with a transaction history for NT pay app

Proc Details

add_log_to_history

Add log to transactions history. Deletes the oldest log when the history has more than 20 entries. +Main format: Category: Reason in Reason. Example: Vending: Machinery Using +Arguments:

+

adjust_money

Adjusts the balance of a bank_account as well as sanitizes the numerical input. +Arguments:

+

bank_card_talk

This sends a local chat message to the owner of a bank account, on all ID cards registered to the bank_account. +If not held, sends out a message to all nearby players. +Arguments:

+

bounty_num

Returns the required item count, or required chemical units required to submit a bounty.

bounty_text

Returns a string with the civilian bounty's description on it.

bounty_value

Produces the value of the account's civilian bounty reward, if able.

dumpeet

Sets the bank_account to behave as though a CRAB-17 event is happening.

has_money

Returns TRUE if a bank account has more than or equal to the amount, amt. +Otherwise returns false. +Arguments:

+

make_ration_ticket

Attempts to create a ration ticket book in the card holder's hand, and failing that, the drop location of the card

pay_debt

Called when a portion of a debt is to be paid. It'll return the amount of credits put forwards to extinguish the debt.

reset_bounty

Performs house-cleaning on variables when a civilian bounty is replaced, or, when a bounty is claimed.

setup_unique_account_id

Proc guarantees the account_id possesses a unique number. +If it doesn't, it tries to find a unique alternative. +It then adds it to the SSeconomy.bank_accounts_by_id global list.

transfer_money

Performs a transfer of credits to the bank_account datum from another bank account. +Arguments:

+

update_account_job_lists

Proc places this account into the right place in the SSeconomy.bank_accounts_by_job list, if needed. +If an old job is given, it removes it from its previous place first.

\ No newline at end of file diff --git a/datum/barsign.html b/datum/barsign.html new file mode 100644 index 0000000000000..ec6f8c629a5eb --- /dev/null +++ b/datum/barsign.html @@ -0,0 +1 @@ +/datum/barsign - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

barsign

Vars

descDescription shown in the sign's examine text.
hiddenHidden from list of selectable options.
icon_stateIcon state associated with this sign
light_maskIf a barsign has a light mask for emission effects
nameUser-visible name of the sign.
neon_colorThe emission color of the neon light
rename_areaRename the area when this sign is selected.

Var Details

desc

Description shown in the sign's examine text.

hidden

Hidden from list of selectable options.

icon_state

Icon state associated with this sign

light_mask

If a barsign has a light mask for emission effects

name

User-visible name of the sign.

neon_color

The emission color of the neon light

rename_area

Rename the area when this sign is selected.

\ No newline at end of file diff --git a/datum/basketball_controller.html b/datum/basketball_controller.html new file mode 100644 index 0000000000000..56881d235e4dc --- /dev/null +++ b/datum/basketball_controller.html @@ -0,0 +1,18 @@ +/datum/basketball_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

basketball_controller

The basketball controller handles the basketball minigame in progress. +It is first created when the first ghost signs up to play.

Vars

away_hoopThe basketball hoop used by away team
away_team_landmarksSpawn points for away team players
away_team_playersList of away team players ckeys
current_mapTemplate picked when the game starts. used for the name and desc reading
game_durationTotal amount of time basketball is played for
home_hoopThe basketball hoop used by home team
home_team_landmarksSpawn points for home team players
home_team_playersList of home team players ckeys
map_deleterMap generation tool that deletes the current map after the game finishes
minigame_playersList of all players ckeys involved in the minigame
referee_landmarkSpawn point for referee (there should only be one spot on minigame map)

Procs

basic_setupCalled when enough players have signed up to fill a setup. DOESN'T NECESSARILY MEAN THE GAME WILL START.
check_signupsFilters inactive player into a different list until they reconnect, and removes players who are no longer ghosts.
create_bodiesCalled when the game is setting up, AFTER map is loaded but BEFORE the game start. Creates and places each body and gives the correct player key
end_gameCleans up the game, resetting variables back to the beginning and removing the map with the generator.
prepare_gameTriggers at beginning of the game when there is a confirmed list of valid, ready players. +Creates a 100% ready game that has NOT started (no players in bodies) +Followed by start game
start_gameThe game by this point is now all set up, and so we can put people in their bodies.
try_autostartCalled when someone signs up, and sees if there are enough people in the signup list to begin.
victoryCalled after the game is finished. Sends end game notifications to teams and dusts the losers.

Var Details

away_hoop

The basketball hoop used by away team

away_team_landmarks

Spawn points for away team players

away_team_players

List of away team players ckeys

current_map

Template picked when the game starts. used for the name and desc reading

game_duration

Total amount of time basketball is played for

home_hoop

The basketball hoop used by home team

home_team_landmarks

Spawn points for home team players

home_team_players

List of home team players ckeys

map_deleter

Map generation tool that deletes the current map after the game finishes

minigame_players

List of all players ckeys involved in the minigame

referee_landmark

Spawn point for referee (there should only be one spot on minigame map)

Proc Details

basic_setup

Called when enough players have signed up to fill a setup. DOESN'T NECESSARILY MEAN THE GAME WILL START.

+

Checks for a custom setup, if so gets the required players from that and if not it sets the player requirement to BASKETBALL_MAX_PLAYER_COUNT and generates one IF basic setup starts a game. +Checks if everyone signed up is an observer, and is still connected. If people aren't, they're removed from the list. +If there aren't enough players post sanity, it aborts. otherwise, it selects enough people for the game and starts preparing the game for real.

check_signups

Filters inactive player into a different list until they reconnect, and removes players who are no longer ghosts.

create_bodies

Called when the game is setting up, AFTER map is loaded but BEFORE the game start. Creates and places each body and gives the correct player key

end_game

Cleans up the game, resetting variables back to the beginning and removing the map with the generator.

prepare_game

Triggers at beginning of the game when there is a confirmed list of valid, ready players. +Creates a 100% ready game that has NOT started (no players in bodies) +Followed by start game

+

Does the following:

+

start_game

The game by this point is now all set up, and so we can put people in their bodies.

try_autostart

Called when someone signs up, and sees if there are enough people in the signup list to begin.

+

Only checks if everyone is actually valid to start (still connected and an observer) if there are enough players (basic_setup)

victory

Called after the game is finished. Sends end game notifications to teams and dusts the losers.

\ No newline at end of file diff --git a/datum/battle_arcade_gear.html b/datum/battle_arcade_gear.html new file mode 100644 index 0000000000000..52c88336ed3a9 --- /dev/null +++ b/datum/battle_arcade_gear.html @@ -0,0 +1 @@ +/datum/battle_arcade_gear - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

battle_arcade_gear

Vars

bonus_modifierThe stat given by the gear
nameThe name of the gear, used in shops.
slotThe slot this gear fits into
world_availableThe world the player has to be at in order to buy this item.

Var Details

bonus_modifier

The stat given by the gear

name

The name of the gear, used in shops.

slot

The slot this gear fits into

world_available

The world the player has to be at in order to buy this item.

\ No newline at end of file diff --git a/datum/battle_royale_controller.html b/datum/battle_royale_controller.html new file mode 100644 index 0000000000000..88d203b165fe0 --- /dev/null +++ b/datum/battle_royale_controller.html @@ -0,0 +1 @@ +/datum/battle_royale_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

battle_royale_controller

Datum which controls the conflict

Vars

announce_deathsShould we let everyone know that someone has died?
battle_runningIs the battle currently in progress?
chosen_areaWhere is our battle taking place?
condolencesWays to tell people not to salt in deadchat, surely effective
contestant_implantsList of implants involved
euphemismsWays to describe that someone has died

Procs

announce_winnerThere's only one person left, we have a winner!
finishWell you're out of time, bad luck
implant_destroyedAn implant was destroyed, hopefully because it exploded. Count how many competitors remain.
limit_areaCalled halfway through the battle, if you've not made it to the designated battle zone we kill you
startStart a battle royale with the list of provided implants

Var Details

announce_deaths

Should we let everyone know that someone has died?

battle_running

Is the battle currently in progress?

chosen_area

Where is our battle taking place?

condolences

Ways to tell people not to salt in deadchat, surely effective

contestant_implants

List of implants involved

euphemisms

Ways to describe that someone has died

Proc Details

announce_winner

There's only one person left, we have a winner!

finish

Well you're out of time, bad luck

implant_destroyed

An implant was destroyed, hopefully because it exploded. Count how many competitors remain.

limit_area

Called halfway through the battle, if you've not made it to the designated battle zone we kill you

start

Start a battle royale with the list of provided implants

\ No newline at end of file diff --git a/datum/battle_royale_master.html b/datum/battle_royale_master.html new file mode 100644 index 0000000000000..c13c28b087a42 --- /dev/null +++ b/datum/battle_royale_master.html @@ -0,0 +1 @@ +/datum/battle_royale_master - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

battle_royale_master

Basically just exists to hold references to datums so that they don't GC

Vars

active_battlesList of battle royale datums currently running

Procs

battle_endedDrop reference when it kills itself
start_battleStart a new battle royale using a passed list of implants

Var Details

active_battles

List of battle royale datums currently running

Proc Details

battle_ended

Drop reference when it kills itself

start_battle

Start a new battle royale using a passed list of implants

\ No newline at end of file diff --git a/datum/beam.html b/datum/beam.html new file mode 100644 index 0000000000000..3ce67db2654f5 --- /dev/null +++ b/datum/beam.html @@ -0,0 +1,31 @@ +/datum/beam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

beam

Vars

beam_colorThe color of the beam we're drawing.
beam_layerthe layer of our beam
beam_typethe objects placed in the elements list
elementslist of beam objects. These have their visuals set by the visuals var which is created on starting
emissiveIf we use an emissive appearance
iconicon used by the beam.
icon_stateicon state of the main segments of the beam
max_distanceThe beam will qdel if it's longer than this many tiles.
originwhere the beam goes from
override_origin_pixel_xIf set will be used instead of origin's pixel_x in offset calculations
override_origin_pixel_yIf set will be used instead of origin's pixel_y in offset calculations
override_target_pixel_xIf set will be used instead of targets's pixel_x in offset calculations
override_target_pixel_yIf set will be used instead of targets's pixel_y in offset calculations
targetwhere the beam goes to
visualsThis is used as the visual_contents of beams, so you can apply one effect to this and the whole beam will look like that. never gets deleted on redrawing.

Procs

DrawCreates the beam effects and places them in a line from the origin to the target. Sets their rotation to make the beams face the target, too.
StartProc called by the atom Beam() proc. Sets up signals, and draws the beam for the first time.
redrawingTriggered by signals set up when the beam is set up. If it's still sane to create a beam, it removes the old beam, creates a new one. Otherwise it kills the beam.

Var Details

beam_color

The color of the beam we're drawing.

beam_layer

the layer of our beam

beam_type

the objects placed in the elements list

elements

list of beam objects. These have their visuals set by the visuals var which is created on starting

emissive

If we use an emissive appearance

icon

icon used by the beam.

icon_state

icon state of the main segments of the beam

max_distance

The beam will qdel if it's longer than this many tiles.

origin

where the beam goes from

override_origin_pixel_x

If set will be used instead of origin's pixel_x in offset calculations

override_origin_pixel_y

If set will be used instead of origin's pixel_y in offset calculations

override_target_pixel_x

If set will be used instead of targets's pixel_x in offset calculations

override_target_pixel_y

If set will be used instead of targets's pixel_y in offset calculations

target

where the beam goes to

visuals

This is used as the visual_contents of beams, so you can apply one effect to this and the whole beam will look like that. never gets deleted on redrawing.

Proc Details

Draw

Creates the beam effects and places them in a line from the origin to the target. Sets their rotation to make the beams face the target, too.

Start

Proc called by the atom Beam() proc. Sets up signals, and draws the beam for the first time.

redrawing

Triggered by signals set up when the beam is set up. If it's still sane to create a beam, it removes the old beam, creates a new one. Otherwise it kills the beam.

+

Arguments: +mover: either the origin of the beam or the target of the beam that moved. +oldloc: from where mover moved. +direction: in what direction mover moved from.

\ No newline at end of file diff --git a/datum/biological_sample.html b/datum/biological_sample.html new file mode 100644 index 0000000000000..f4d46c17bb5a3 --- /dev/null +++ b/datum/biological_sample.html @@ -0,0 +1 @@ +/datum/biological_sample - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

biological_sample

This datum is a simple holder for the micro_organisms in a sample.

Vars

micro_organismsList of all micro_organisms in the sample. These are instantiated
sample_colorPicked from a specific group of colors, limited to a specific group.
sample_layersPrevents someone from stacking too many layers onto a swabber

Procs

GenerateSampleGenerate a sample from a specific weighted list, and a specific amount of cell line with a chance for a virus
MergeTakes another sample and merges it into use. This can cause one very big sample but we limit it to 3 layers.
handle_growthCall handle_growth on all our microorganisms.
reset_sampleresets the progress of all cell ines

Var Details

micro_organisms

List of all micro_organisms in the sample. These are instantiated

sample_color

Picked from a specific group of colors, limited to a specific group.

sample_layers

Prevents someone from stacking too many layers onto a swabber

Proc Details

GenerateSample

Generate a sample from a specific weighted list, and a specific amount of cell line with a chance for a virus

Merge

Takes another sample and merges it into use. This can cause one very big sample but we limit it to 3 layers.

handle_growth

Call handle_growth on all our microorganisms.

reset_sample

resets the progress of all cell ines

\ No newline at end of file diff --git a/datum/biome.html b/datum/biome.html new file mode 100644 index 0000000000000..8651a982f780e --- /dev/null +++ b/datum/biome.html @@ -0,0 +1,25 @@ +/datum/biome - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

biome

This datum handles the transitioning from a turf to a specific biome, and handles spawning decorative structures and mobs.

Vars

fauna_densityChance of having a mob from the fauna types list spawn
fauna_typesWeighted list of type paths of fauna that can be spawned when the +turf spawns fauna.
feature_densityChance of spawning special features, such as geysers.
feature_typesWeighted list of extra features that can spawn in the biome, such as +geysers. Gets expanded automatically.
flora_densityChance of having a structure from the flora types list spawn
flora_typesWeighted list of type paths of flora that can be spawned when the +turf spawns flora.
turf_typeType of turf this biome creates

Procs

generate_turfThis proc handles the creation of a turf of a specific biome type
generate_turf_for_terrainThis proc handles the creation of a turf of a specific biome type, assuming +that the turf has not been initialized yet. Don't call this unless you know +what you're doing.
generate_turfs_for_terrainThis proc handles the sequential creation of turfs of a specific biome type +in order to optimize the generation for large amount of turfs.
populate_turfThis proc handles populating the given turf based on whether flora, +features and fauna are allowed. Does not take megafauna into account.
populate_turfsThis proc handles populating the given turfs based on whether flora, features +and fauna are allowed. Does not take megafauna into account.

Var Details

fauna_density

Chance of having a mob from the fauna types list spawn

fauna_types

Weighted list of type paths of fauna that can be spawned when the +turf spawns fauna.

feature_density

Chance of spawning special features, such as geysers.

feature_types

Weighted list of extra features that can spawn in the biome, such as +geysers. Gets expanded automatically.

flora_density

Chance of having a structure from the flora types list spawn

flora_types

Weighted list of type paths of flora that can be spawned when the +turf spawns flora.

turf_type

Type of turf this biome creates

Proc Details

generate_turf

This proc handles the creation of a turf of a specific biome type

generate_turf_for_terrain

This proc handles the creation of a turf of a specific biome type, assuming +that the turf has not been initialized yet. Don't call this unless you know +what you're doing.

generate_turfs_for_terrain

This proc handles the sequential creation of turfs of a specific biome type +in order to optimize the generation for large amount of turfs.

+

Arguments:

+ +

Returns a new list of turfs that were generated by the biome.

populate_turf

This proc handles populating the given turf based on whether flora, +features and fauna are allowed. Does not take megafauna into account.

populate_turfs

This proc handles populating the given turfs based on whether flora, features +and fauna are allowed. Does not take megafauna into account.

+

Does nothing if flora_allowed, features_allowed and fauna_allowed are +FALSE, or if there's no flora, feature or fauna types for the matching +allowed type. Aka, we return early if the proc wouldn't do anything anyway.

\ No newline at end of file diff --git a/datum/bitfield.html b/datum/bitfield.html new file mode 100644 index 0000000000000..45ba0985c1dae --- /dev/null +++ b/datum/bitfield.html @@ -0,0 +1 @@ +/datum/bitfield - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bitfield

Specifies a bitfield for smarter debugging

Vars

flagsAn associative list of the readable flag and its true value
variableThe variable name that contains the bitfield

Var Details

flags

An associative list of the readable flag and its true value

variable

The variable name that contains the bitfield

\ No newline at end of file diff --git a/datum/blobstrain.html b/datum/blobstrain.html new file mode 100644 index 0000000000000..02821306eb8f3 --- /dev/null +++ b/datum/blobstrain.html @@ -0,0 +1 @@ +/datum/blobstrain - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

blobstrain

Vars

analyzerdescdamageShort descriptor of what the strain does damage-wise, generally seen in the reroll menu
analyzerdesceffectShort descriptor of what the strain does in general, generally seen in the reroll menu
base_core_regenThe amount of health regenned on core_process
blobbernaut_messageBlobbernaut attack verb
blobbernaut_reagentatk_bonusMakes blobbernauts inject a bonus amount of reagents, making their attacks more powerful
complementary_colorThe color that stuff like healing effects and the overmind camera gets
core_range_bonusAdds to claim, pulse, and expand range
core_reflector_reinforcement_range_bonusExtra range up to which the core reinforces blobs into reflectors
core_regen_bonusHP regen bonus added by strain
core_strong_reinforcement_range_bonusExtra range up to which the core reinforces blobs
effectdescAny long, blob-tile specific effects
factory_spore_bonusExtra spores produced by factories with this strain
fire_basedFor blob-mobs and extinguishing-based effects
max_mob_health_multiplierMultiplies the max and current health of every mob with this value upon selecting this strain.
max_structure_health_multiplierMultiplies the max and current health of every blob with this value upon selecting this strain.
messageMessage sent to any mob hit by the blob
message_livingGets added onto 'message' if the mob stuck is of type living
node_range_bonusAdds to claim, pulse, and expand range
node_reflector_reinforcement_range_bonusExtra range up to which the node reinforces blobs into reflectors
node_spore_bonusNodes can sustain this any extra spores with this strain
node_strong_reinforcement_range_bonusExtra range up to which the node reinforces blobs
point_rateThe amount of points gained on core_process
point_rate_bonusresource point bonus added by strain
resource_delayStores world.time to figure out when to next give resources
shortdescA short description of the power and its effects

Procs

blobbernaut_attackWhen this blob's blobbernaut attacks any atom

Var Details

analyzerdescdamage

Short descriptor of what the strain does damage-wise, generally seen in the reroll menu

analyzerdesceffect

Short descriptor of what the strain does in general, generally seen in the reroll menu

base_core_regen

The amount of health regenned on core_process

blobbernaut_message

Blobbernaut attack verb

blobbernaut_reagentatk_bonus

Makes blobbernauts inject a bonus amount of reagents, making their attacks more powerful

complementary_color

The color that stuff like healing effects and the overmind camera gets

core_range_bonus

Adds to claim, pulse, and expand range

core_reflector_reinforcement_range_bonus

Extra range up to which the core reinforces blobs into reflectors

core_regen_bonus

HP regen bonus added by strain

core_strong_reinforcement_range_bonus

Extra range up to which the core reinforces blobs

effectdesc

Any long, blob-tile specific effects

factory_spore_bonus

Extra spores produced by factories with this strain

fire_based

For blob-mobs and extinguishing-based effects

max_mob_health_multiplier

Multiplies the max and current health of every mob with this value upon selecting this strain.

max_structure_health_multiplier

Multiplies the max and current health of every blob with this value upon selecting this strain.

message

Message sent to any mob hit by the blob

message_living

Gets added onto 'message' if the mob stuck is of type living

node_range_bonus

Adds to claim, pulse, and expand range

node_reflector_reinforcement_range_bonus

Extra range up to which the node reinforces blobs into reflectors

node_spore_bonus

Nodes can sustain this any extra spores with this strain

node_strong_reinforcement_range_bonus

Extra range up to which the node reinforces blobs

point_rate

The amount of points gained on core_process

point_rate_bonus

resource point bonus added by strain

resource_delay

Stores world.time to figure out when to next give resources

shortdesc

A short description of the power and its effects

Proc Details

blobbernaut_attack

When this blob's blobbernaut attacks any atom

\ No newline at end of file diff --git a/datum/bloodsucker_clan.html b/datum/bloodsucker_clan.html new file mode 100644 index 0000000000000..ef15779743a0f --- /dev/null +++ b/datum/bloodsucker_clan.html @@ -0,0 +1,41 @@ +/datum/bloodsucker_clan - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bloodsucker_clan

Bloodsucker clans

+

Handles everything related to clans. +the entire idea of datumizing this came to me in a dream.

Vars

blood_drink_typeHow we will drink blood using Feed.
bloodsuckerdatumThe bloodsucker datum that owns this clan. Use this over 'source', because while it's the same thing, this is more consistent (and used for deletion).
clan_objectiveThe clan objective that is required to greentext.
descriptionDescription of what the clan is, given when joining and through your antag UI.
frenzy_stamina_modHow much stamina armor we get in frenzy
join_descriptionDescription shown when trying to join the clan.
join_iconThe icon of the radial icon to join this clan.
join_icon_stateSame as join_icon, but the state
joinable_clanWhether the clan can be joined by players. FALSE for flavortext-only clans.
nameThe name of the clan we're in.

Procs

favorite_ghoul_gainCalled when we are successfully turn a Ghoul into a Favorite Ghoul +args: +bloodsuckerdatum - antagonist datum of the Bloodsucker who turned them into a Ghoul. +ghouldatum - the antagonist datum of the Ghoul being offered up.
handle_clan_lifeCalled during Bloodsucker's LifeTick +args: +bloodsuckerdatum - the antagonist datum of the Bloodsucker running this.
on_exit_torporCalled when a Bloodsucker exits Torpor +args: +source - the Bloodsucker exiting Torpor
on_final_deathCalled when a Bloodsucker enters Final Death +args: +source - the Bloodsucker exiting Torpor
on_ghoul_madeCalled when a Bloodsucker successfully Ghoulizes someone. +args: +bloodsuckerdatum - the antagonist datum of the Bloodsucker running this.
on_interact_with_ghoulCalled when we are trying to turn someone into a Favorite Ghoul +args: +bloodsuckerdatum - the antagonist datum of the Bloodsucker performing this. +ghouldatum - the antagonist datum of the Ghoul being offered up.
on_spend_rankCalled when a Bloodsucker successfully starts spending their Rank +args: +bloodsuckerdatum - the antagonist datum of the Bloodsucker running this. +target - The Ghoul (if any) we are upgrading. +cost_rank - TRUE/FALSE on whether this will cost us a rank when we go through with it. +blood_cost - A number saying how much it costs to rank up.

Var Details

blood_drink_type

How we will drink blood using Feed.

bloodsuckerdatum

The bloodsucker datum that owns this clan. Use this over 'source', because while it's the same thing, this is more consistent (and used for deletion).

clan_objective

The clan objective that is required to greentext.

description

Description of what the clan is, given when joining and through your antag UI.

frenzy_stamina_mod

How much stamina armor we get in frenzy

join_description

Description shown when trying to join the clan.

join_icon

The icon of the radial icon to join this clan.

join_icon_state

Same as join_icon, but the state

joinable_clan

Whether the clan can be joined by players. FALSE for flavortext-only clans.

name

The name of the clan we're in.

Proc Details

favorite_ghoul_gain

Called when we are successfully turn a Ghoul into a Favorite Ghoul +args: +bloodsuckerdatum - antagonist datum of the Bloodsucker who turned them into a Ghoul. +ghouldatum - the antagonist datum of the Ghoul being offered up.

handle_clan_life

Called during Bloodsucker's LifeTick +args: +bloodsuckerdatum - the antagonist datum of the Bloodsucker running this.

on_exit_torpor

Called when a Bloodsucker exits Torpor +args: +source - the Bloodsucker exiting Torpor

on_final_death

Called when a Bloodsucker enters Final Death +args: +source - the Bloodsucker exiting Torpor

on_ghoul_made

Called when a Bloodsucker successfully Ghoulizes someone. +args: +bloodsuckerdatum - the antagonist datum of the Bloodsucker running this.

on_interact_with_ghoul

Called when we are trying to turn someone into a Favorite Ghoul +args: +bloodsuckerdatum - the antagonist datum of the Bloodsucker performing this. +ghouldatum - the antagonist datum of the Ghoul being offered up.

on_spend_rank

Called when a Bloodsucker successfully starts spending their Rank +args: +bloodsuckerdatum - the antagonist datum of the Bloodsucker running this. +target - The Ghoul (if any) we are upgrading. +cost_rank - TRUE/FALSE on whether this will cost us a rank when we go through with it. +blood_cost - A number saying how much it costs to rank up.

\ No newline at end of file diff --git a/datum/bloodsucker_clan/malkavian.html b/datum/bloodsucker_clan/malkavian.html new file mode 100644 index 0000000000000..0ad873f962396 --- /dev/null +++ b/datum/bloodsucker_clan/malkavian.html @@ -0,0 +1 @@ +/datum/bloodsucker_clan/malkavian - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

malkavian

Vars

max_madness_chanceThe prob chance of a malkavian spouting a revelation.

Var Details

max_madness_chance

The prob chance of a malkavian spouting a revelation.

\ No newline at end of file diff --git a/datum/body_marking.html b/datum/body_marking.html new file mode 100644 index 0000000000000..05f03f1d7f2f5 --- /dev/null +++ b/datum/body_marking.html @@ -0,0 +1 @@ +/datum/body_marking - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

body_marking

Vars

affected_bodypartsWhich bodyparts does the marking affect in BITFLAGS!! (HEAD, CHEST, ARM_LEFT, ARM_RIGHT, HAND_LEFT, HAND_RIGHT, LEG_RIGHT, LEG_LEFT)
always_color_customizableIf this is on the color customization will show up despite the pref settings, it will also cause the marking to not reset colors to match the defaults
default_colorThe color the marking defaults to, important for randomisations. either a hex color ie."#FFFFFF" or a define like DEFAULT_PRIMARY
genderedWhether the body marking sprite is the same for both sexes or not. Only relevant for chest right now.
iconThe icon file the body markign is located in
icon_stateThe icon_state of the body marking
nameThe preview name of the body marking. NEEDS A UNIQUE NAME
recommended_speciesWhich species is this marking recommended to. Important for randomisations.

Var Details

affected_bodyparts

Which bodyparts does the marking affect in BITFLAGS!! (HEAD, CHEST, ARM_LEFT, ARM_RIGHT, HAND_LEFT, HAND_RIGHT, LEG_RIGHT, LEG_LEFT)

always_color_customizable

If this is on the color customization will show up despite the pref settings, it will also cause the marking to not reset colors to match the defaults

default_color

The color the marking defaults to, important for randomisations. either a hex color ie."#FFFFFF" or a define like DEFAULT_PRIMARY

gendered

Whether the body marking sprite is the same for both sexes or not. Only relevant for chest right now.

icon

The icon file the body markign is located in

icon_state

The icon_state of the body marking

name

The preview name of the body marking. NEEDS A UNIQUE NAME

recommended_species

Which species is this marking recommended to. Important for randomisations.

\ No newline at end of file diff --git a/datum/body_marking_set.html b/datum/body_marking_set.html new file mode 100644 index 0000000000000..f7bc104c1c962 --- /dev/null +++ b/datum/body_marking_set.html @@ -0,0 +1 @@ +/datum/body_marking_set - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

body_marking_set

Vars

body_marking_listList of the body markings in this set
nameThe preview name of the body marking set. HAS to be unique
recommended_speciesWhich species is this marking recommended to. Important for randomisations.

Var Details

body_marking_list

List of the body markings in this set

name

The preview name of the body marking set. HAS to be unique

recommended_species

Which species is this marking recommended to. Important for randomisations.

\ No newline at end of file diff --git a/datum/bodypart_overlay.html b/datum/bodypart_overlay.html new file mode 100644 index 0000000000000..0445949a3f68d --- /dev/null +++ b/datum/bodypart_overlay.html @@ -0,0 +1,12 @@ +/datum/bodypart_overlay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bodypart_overlay

Bodypart ovarlay datum. These can be added to any limb to give them a proper overlay, that'll even stay if the limb gets removed +This is the abstract parent, don't use it!!

Vars

all_layersList of all possible layers. Used for looping through in drawing
blocks_emissiveWhether the overlay blocks emissive light
cache_keyKey of the icon states of all the sprite_datums for easy caching
layersSometimes we need multiple layers, for like the back, middle and front of the person (EXTERNAL_FRONT, EXTERNAL_ADJACENT, EXTERNAL_BEHIND)

Procs

added_to_limbCalled on being added to a limb
bitflag_to_layerConverts a bitflag to the right layer. I'd love to make this a static index list, but byond made an attempt on my life when i did
can_draw_on_bodypartCheck whether we can draw the overlays. You generally don't want lizard snouts to draw over an EVA suit
color_imageColor the image
generate_icon_cacheGenerate a unique identifier to cache with. If you change something about the image, but the icon cache stays the same, it'll simply pull the unchanged image out of the cache
get_emissive_overlayReturns the emissive appearance copy of the base_overlay, if it's meant to have one. +Assumes that you ran through needs_emissive_at_layer() beforehand. Mainly intended +for /datum/bodypart_overlay/mutant and its subtypes.
get_imageGenerate the image. Needs to be overridden
get_overlayWrapper for getting the proper image, colored and everything
modify_bodypart_appearanceAdditionally color or texture the limb
mutant_bodyparts_layertextThis exists so sprite accessories can still be per-layer without having to include that layer's +number in their sprite name, which causes issues when those numbers change.
needs_emissive_at_layerWhether or not this bodypart_overlay should have an emissive at that layer. +Intended to be used by /datum/bodypart_overlay/mutant and its subtypes. +If you use this, completely override it, don't call parent.
override_colorColorizes the limb it's inserted to, if required.
removed_from_limbCalled on being removed from a limb
set_appearanceUse this to change the appearance (and yes you must overwrite hahahahahah) (or don't use this, I just don't want people directly changing the image)

Var Details

all_layers

List of all possible layers. Used for looping through in drawing

blocks_emissive

Whether the overlay blocks emissive light

cache_key

Key of the icon states of all the sprite_datums for easy caching

layers

Sometimes we need multiple layers, for like the back, middle and front of the person (EXTERNAL_FRONT, EXTERNAL_ADJACENT, EXTERNAL_BEHIND)

Proc Details

added_to_limb

Called on being added to a limb

bitflag_to_layer

Converts a bitflag to the right layer. I'd love to make this a static index list, but byond made an attempt on my life when i did

can_draw_on_bodypart

Check whether we can draw the overlays. You generally don't want lizard snouts to draw over an EVA suit

color_image

Color the image

generate_icon_cache

Generate a unique identifier to cache with. If you change something about the image, but the icon cache stays the same, it'll simply pull the unchanged image out of the cache

get_emissive_overlay

Returns the emissive appearance copy of the base_overlay, if it's meant to have one. +Assumes that you ran through needs_emissive_at_layer() beforehand. Mainly intended +for /datum/bodypart_overlay/mutant and its subtypes.

get_image

Generate the image. Needs to be overridden

get_overlay

Wrapper for getting the proper image, colored and everything

modify_bodypart_appearance

Additionally color or texture the limb

mutant_bodyparts_layertext

This exists so sprite accessories can still be per-layer without having to include that layer's +number in their sprite name, which causes issues when those numbers change.

needs_emissive_at_layer

Whether or not this bodypart_overlay should have an emissive at that layer. +Intended to be used by /datum/bodypart_overlay/mutant and its subtypes. +If you use this, completely override it, don't call parent.

override_color

Colorizes the limb it's inserted to, if required.

removed_from_limb

Called on being removed from a limb

set_appearance

Use this to change the appearance (and yes you must overwrite hahahahahah) (or don't use this, I just don't want people directly changing the image)

\ No newline at end of file diff --git a/datum/bodypart_overlay/mutant.html b/datum/bodypart_overlay/mutant.html new file mode 100644 index 0000000000000..af41da1ba912d --- /dev/null +++ b/datum/bodypart_overlay/mutant.html @@ -0,0 +1,66 @@ +/datum/bodypart_overlay/mutant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mutant

Variant of bodypart_overlay meant to work synchronously with external organs. Gets imprinted upon Insert in on_species_gain

Vars

alphaAlpha value associated to the overlay, to be inherited from the parent limb.
cache_key_extra_informationAdditional information we might want to add to the cache_key, stored into a list. +Should only ever contain strings.
color_sourceWhere does this organ inherit its color from?
draw_colorThe color this organ draws with. Updated by bodypart/inherit_color()
emissive_eligibility_by_color_indexAn associative list of color indexes (i.e. "1") to boolean that says +whether or not that color should get an emissive overlay. Can be null.
feature_keyDefines what kind of 'organ' we're looking at. Sprites have names like 'm_mothwings_firemoth_ADJ'. 'mothwings' would then be feature_key
imprint_on_next_insertionTake on the dna/preference from whoever we're gonna be inserted in
last_built_icon_statesA simple cache of what the last icon_states built were. +It's really only there to help with debugging what's happening.
modsuit_affectedWhether or not this overlay can be affected by MODsuit-related procs.
overlay_indexes_to_colorA simple list of indexes to color (as we don't want to color emissives, MOD overlays or inner ears)
sprite_datumSprite datum we use to draw on the bodypart

Procs

add_emissivesHelper proc to add the appropriate emissives to the overlays, based on the preferences.
build_emissive_eligibilityBuilds emissive_eligibility_by_layer from the input list of three booleans. +Will not do anything if the given argument is null.
build_icon_stateHelper to generate the icon_state for the bodypart_overlay we're trying to draw.
color_imagesColors the given overlays list. Limb can be null. +This is different from the base procs as it allows for multiple overlays to be colored at once. +Useful for matrixed color mutant bodyparts.
fetch_sprite_datumSprite accessories are singletons, stored list("Big Snout" = instance of /datum/sprite_accessory/snout/big), so here we get that singleton
fetch_sprite_datum_from_nameGet the singleton from the sprite name
generate_icon_cacheGenerate a unique key based on our sprites. So that if we've aleady drawn these sprites, +they can be found in the cache and wont have to be drawn again (blessing and curse, but mostly curse)
get_base_icon_stateReturn the BASE icon state of the sprite datum (so not the gender, layer, feature_key)
get_color_layer_namesReturns the color_layer_names of the sprite_datum associated with our datum. +Mainly here so that it can be overriden elsewhere to have other effects.
get_feature_key_for_overlayHelper to fetch the feature_key of the bodypart_overlay, so that it can be +overriden in the cases where feature_key is not what we want to use here.
get_global_feature_listReturn a dumb glob list for this specific feature (called from parse_sprite)
get_imageGet the image we need to draw on the person. Called from get_overlay() which is called from _bodyparts.dm. Limb can be null
get_imagesGet the images we need to draw on the person. Called from get_overlay() which is called from _bodyparts.dm. +limb can be null. +This is different from the base procs as it allows for multiple overlays to +be generated for one bodypart_overlay. Useful for matrixed color mutant bodyparts.
get_random_appearanceGrab a random appearance datum (thats not locked)
get_singular_imageHelper to generate one individual image for a multi-image overlay. +Very similar to get_image(), just a little simplified.
inherit_colorGive the organ its color. Force will override the existing one.
randomize_appearanceCompletely random image and color generation (obeys what a player can choose from)
randomize_spriteGrab a random sprite
set_appearanceChange our accessory sprite, using the accesssory type. If you need to change the sprite for something, use simple_change_sprite()
set_appearance_from_dnaAllows us to set the appearance from data that's located within the provided DNA, +for a little more control over what exactly is displayed.
set_appearance_from_nameIn a lot of cases, appearances are stored in DNA as the Name, instead of the path. Use set_appearance instead of possible
set_modsuit_statusHelper to set the MOD-related info on the overlay, useful for MODsuit overlays.

Var Details

alpha

Alpha value associated to the overlay, to be inherited from the parent limb.

cache_key_extra_information

Additional information we might want to add to the cache_key, stored into a list. +Should only ever contain strings.

color_source

Where does this organ inherit its color from?

draw_color

The color this organ draws with. Updated by bodypart/inherit_color()

emissive_eligibility_by_color_index

An associative list of color indexes (i.e. "1") to boolean that says +whether or not that color should get an emissive overlay. Can be null.

feature_key

Defines what kind of 'organ' we're looking at. Sprites have names like 'm_mothwings_firemoth_ADJ'. 'mothwings' would then be feature_key

imprint_on_next_insertion

Take on the dna/preference from whoever we're gonna be inserted in

last_built_icon_states

A simple cache of what the last icon_states built were. +It's really only there to help with debugging what's happening.

modsuit_affected

Whether or not this overlay can be affected by MODsuit-related procs.

overlay_indexes_to_color

A simple list of indexes to color (as we don't want to color emissives, MOD overlays or inner ears)

sprite_datum

Sprite datum we use to draw on the bodypart

Proc Details

add_emissives

Helper proc to add the appropriate emissives to the overlays, based on the preferences.

+

Arguments:

+

build_emissive_eligibility

Builds emissive_eligibility_by_layer from the input list of three booleans. +Will not do anything if the given argument is null.

build_icon_state

Helper to generate the icon_state for the bodypart_overlay we're trying to draw.

+

Arguments:

+

color_images

Colors the given overlays list. Limb can be null. +This is different from the base procs as it allows for multiple overlays to be colored at once. +Useful for matrixed color mutant bodyparts.

fetch_sprite_datum

Sprite accessories are singletons, stored list("Big Snout" = instance of /datum/sprite_accessory/snout/big), so here we get that singleton

fetch_sprite_datum_from_name

Get the singleton from the sprite name

generate_icon_cache

Generate a unique key based on our sprites. So that if we've aleady drawn these sprites, +they can be found in the cache and wont have to be drawn again (blessing and curse, but mostly curse)

get_base_icon_state

Return the BASE icon state of the sprite datum (so not the gender, layer, feature_key)

get_color_layer_names

Returns the color_layer_names of the sprite_datum associated with our datum. +Mainly here so that it can be overriden elsewhere to have other effects.

get_feature_key_for_overlay

Helper to fetch the feature_key of the bodypart_overlay, so that it can be +overriden in the cases where feature_key is not what we want to use here.

get_global_feature_list

Return a dumb glob list for this specific feature (called from parse_sprite)

get_image

Get the image we need to draw on the person. Called from get_overlay() which is called from _bodyparts.dm. Limb can be null

get_images

Get the images we need to draw on the person. Called from get_overlay() which is called from _bodyparts.dm. +limb can be null. +This is different from the base procs as it allows for multiple overlays to +be generated for one bodypart_overlay. Useful for matrixed color mutant bodyparts.

get_random_appearance

Grab a random appearance datum (thats not locked)

get_singular_image

Helper to generate one individual image for a multi-image overlay. +Very similar to get_image(), just a little simplified.

+

Arguments:

+

inherit_color

Give the organ its color. Force will override the existing one.

randomize_appearance

Completely random image and color generation (obeys what a player can choose from)

randomize_sprite

Grab a random sprite

set_appearance

Change our accessory sprite, using the accesssory type. If you need to change the sprite for something, use simple_change_sprite()

set_appearance_from_dna

Allows us to set the appearance from data that's located within the provided DNA, +for a little more control over what exactly is displayed.

+

Arguments:

+

set_appearance_from_name

In a lot of cases, appearances are stored in DNA as the Name, instead of the path. Use set_appearance instead of possible

set_modsuit_status

Helper to set the MOD-related info on the overlay, useful for MODsuit overlays.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/bodypart_overlay/mutant/antennae.html b/datum/bodypart_overlay/mutant/antennae.html new file mode 100644 index 0000000000000..6c65fc047c9bf --- /dev/null +++ b/datum/bodypart_overlay/mutant/antennae.html @@ -0,0 +1 @@ +/datum/bodypart_overlay/mutant/antennae - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

antennae

Moth antennae datum, with full burning functionality

Vars

burn_datumAccessory datum of the burn sprite
burntAre we burned? If so we draw differently

Var Details

burn_datum

Accessory datum of the burn sprite

burnt

Are we burned? If so we draw differently

\ No newline at end of file diff --git a/datum/bodypart_overlay/mutant/genital.html b/datum/bodypart_overlay/mutant/genital.html new file mode 100644 index 0000000000000..6af514eb9a88e --- /dev/null +++ b/datum/bodypart_overlay/mutant/genital.html @@ -0,0 +1 @@ +/datum/bodypart_overlay/mutant/genital - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

genital

Vars

sprite_suffixThe suffix appended to the feature_key for the overlays.

Var Details

sprite_suffix

The suffix appended to the feature_key for the overlays.

\ No newline at end of file diff --git a/datum/bodypart_overlay/mutant/pod_hair.html b/datum/bodypart_overlay/mutant/pod_hair.html new file mode 100644 index 0000000000000..706d038174843 --- /dev/null +++ b/datum/bodypart_overlay/mutant/pod_hair.html @@ -0,0 +1 @@ +/datum/bodypart_overlay/mutant/pod_hair - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pod_hair

Podperson bodypart overlay, with special coloring functionality to render the flowers in the inverse color

Vars

color_inverse_baseThe individual rgb colors are subtracted from this to get the color shifted layer

Var Details

color_inverse_base

The individual rgb colors are subtracted from this to get the color shifted layer

\ No newline at end of file diff --git a/datum/bodypart_overlay/mutant/spines.html b/datum/bodypart_overlay/mutant/spines.html new file mode 100644 index 0000000000000..41bc929f055a8 --- /dev/null +++ b/datum/bodypart_overlay/mutant/spines.html @@ -0,0 +1,3 @@ +/datum/bodypart_overlay/mutant/spines - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

spines

Bodypart overlay for spines

Procs

get_imagesWe overwrite this just because we need to change the layer to be ever so slightly above the tails. +It sucks, but it's the best I could do without refactoring a lot more.

Proc Details

get_images

We overwrite this just because we need to change the layer to be ever so slightly above the tails. +It sucks, but it's the best I could do without refactoring a lot more.

\ No newline at end of file diff --git a/datum/bodypart_overlay/mutant/tail_spines.html b/datum/bodypart_overlay/mutant/tail_spines.html new file mode 100644 index 0000000000000..9b5dd4738f6a6 --- /dev/null +++ b/datum/bodypart_overlay/mutant/tail_spines.html @@ -0,0 +1 @@ +/datum/bodypart_overlay/mutant/tail_spines - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tail_spines

Bodypart overlay for tail spines. Handled by the tail - has no actual organ associated.

Vars

tail_spine_keyKey for tail spine states, depends on the shape of the tail. Defined in the tail sprite datum.
waggingSpines wag when the tail does

Var Details

tail_spine_key

Key for tail spine states, depends on the shape of the tail. Defined in the tail sprite datum.

wagging

Spines wag when the tail does

\ No newline at end of file diff --git a/datum/bodypart_overlay/mutant/wings/functional.html b/datum/bodypart_overlay/mutant/wings/functional.html new file mode 100644 index 0000000000000..2acbb5f9b6973 --- /dev/null +++ b/datum/bodypart_overlay/mutant/wings/functional.html @@ -0,0 +1 @@ +/datum/bodypart_overlay/mutant/wings/functional - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

functional

Bodypart overlay of function wings, including open and close functionality!

Vars

open_feature_keyFeature render key for opened wings
wings_openAre our wings currently open? Change through open_wings or close_wings()

Procs

close_wingsUpdate our wingsprite to the closed wings variant
open_wingsUpdate our wingsprite to the open wings variant

Var Details

open_feature_key

Feature render key for opened wings

wings_open

Are our wings currently open? Change through open_wings or close_wings()

Proc Details

close_wings

Update our wingsprite to the closed wings variant

open_wings

Update our wingsprite to the open wings variant

\ No newline at end of file diff --git a/datum/bodypart_overlay/mutant/wings/moth.html b/datum/bodypart_overlay/mutant/wings/moth.html new file mode 100644 index 0000000000000..a55e46002082a --- /dev/null +++ b/datum/bodypart_overlay/mutant/wings/moth.html @@ -0,0 +1 @@ +/datum/bodypart_overlay/mutant/wings/moth - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

moth

Moth wing bodypart overlay, including burn functionality!

Vars

burn_datumAccessory datum of the burn sprite
burntAre we burned? If so we draw differently

Var Details

burn_datum

Accessory datum of the burn sprite

burnt

Are we burned? If so we draw differently

\ No newline at end of file diff --git a/datum/bodypart_overlay/simple.html b/datum/bodypart_overlay/simple.html new file mode 100644 index 0000000000000..1512841c08c34 --- /dev/null +++ b/datum/bodypart_overlay/simple.html @@ -0,0 +1,2 @@ +/datum/bodypart_overlay/simple - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

simple

For simple overlays that really dont need to be complicated. Sometimes icon_state and icon is enough +Remember to set the layers or shit wont work

Vars

draw_colorColor we apply to our overlay (none by default)
iconIcon of the overlay
icon_stateIcon state of the overlay

Var Details

draw_color

Color we apply to our overlay (none by default)

icon

Icon of the overlay

icon_state

Icon state of the overlay

\ No newline at end of file diff --git a/datum/bodypart_overlay/simple/body_marking.html b/datum/bodypart_overlay/simple/body_marking.html new file mode 100644 index 0000000000000..0b313cd7c9b6d --- /dev/null +++ b/datum/bodypart_overlay/simple/body_marking.html @@ -0,0 +1 @@ +/datum/bodypart_overlay/simple/body_marking - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

body_marking

For body markings applied on the species, which need some extra code

Vars

applies_toWhich bodyparts do we apply ourselves to?
dna_feature_keyWhich dna feature key to draw from
use_genderListen to the gendercode, if the limb is bimorphic

Procs

get_accessoryGet the accessory list from SSaccessories. Used in species.dm to get the right sprite

Var Details

applies_to

Which bodyparts do we apply ourselves to?

dna_feature_key

Which dna feature key to draw from

use_gender

Listen to the gendercode, if the limb is bimorphic

Proc Details

get_accessory

Get the accessory list from SSaccessories. Used in species.dm to get the right sprite

\ No newline at end of file diff --git a/datum/bodypart_overlay/simple/emote.html b/datum/bodypart_overlay/simple/emote.html new file mode 100644 index 0000000000000..95729a7ab995f --- /dev/null +++ b/datum/bodypart_overlay/simple/emote.html @@ -0,0 +1 @@ +/datum/bodypart_overlay/simple/emote - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

emote

Variant of bodypart_overlay for displaying emote overlays. See /datum/emote/living/blush/run_emote for an example on how to use one of these.

Vars

attached_body_zoneThe body zone to attach the overlay to, overlay won't be added if no bodypart can be found with this
attached_bodypartThe bodypart that the overlay is currently applied to
feature_offsetDatum giving us details about what offset to apply to the limb
offset_keyThe feature key used to figure out what specific bodily feature we offset this to follow

Procs

DestroyRemoves the overlay from the attached bodypart and updates the necessary sprites

Var Details

attached_body_zone

The body zone to attach the overlay to, overlay won't be added if no bodypart can be found with this

attached_bodypart

The bodypart that the overlay is currently applied to

feature_offset

Datum giving us details about what offset to apply to the limb

offset_key

The feature key used to figure out what specific bodily feature we offset this to follow

Proc Details

Destroy

Removes the overlay from the attached bodypart and updates the necessary sprites

\ No newline at end of file diff --git a/datum/bodypart_overlay/simple/golem_overlay.html b/datum/bodypart_overlay/simple/golem_overlay.html new file mode 100644 index 0000000000000..ef964ce1bf794 --- /dev/null +++ b/datum/bodypart_overlay/simple/golem_overlay.html @@ -0,0 +1 @@ +/datum/bodypart_overlay/simple/golem_overlay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

golem_overlay

Body part overlays applied by golem status effects

Vars

attached_bodypartThe bodypart that the overlay is currently applied to

Var Details

attached_bodypart

The bodypart that the overlay is currently applied to

\ No newline at end of file diff --git a/datum/bodypart_overlay/texture.html b/datum/bodypart_overlay/texture.html new file mode 100644 index 0000000000000..185eaec138bd6 --- /dev/null +++ b/datum/bodypart_overlay/texture.html @@ -0,0 +1 @@ +/datum/bodypart_overlay/texture - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

texture

Bodypart overlays focused on texturing limbs

Vars

cached_texture_iconCache the icon so we dont have to make a new one each time
texture_iconicon file for the texture
texture_icon_stateicon state for the texture

Var Details

cached_texture_icon

Cache the icon so we dont have to make a new one each time

texture_icon

icon file for the texture

texture_icon_state

icon state for the texture

\ No newline at end of file diff --git a/datum/book_history_entry.html b/datum/book_history_entry.html new file mode 100644 index 0000000000000..925f6f22f9dae --- /dev/null +++ b/datum/book_history_entry.html @@ -0,0 +1 @@ +/datum/book_history_entry - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

book_history_entry

This mostly exists to document the form of the library_action table, since it doesn't do that good a job on its own

Vars

actionThe action that occured (BOOK_ADMIN_DELETE, BOOK_ADMIN_RESTORE, and legacy BOOK_ADMIN_REPORT)
bookThe book id this log applies to
ckeyThe admin who performed the action
datetimeThe time of the action being performed
idThe id of this logged action
ip_addrThe ip address of the admin who performed the action
reasonThe reason this action was enacted

Var Details

action

The action that occured (BOOK_ADMIN_DELETE, BOOK_ADMIN_RESTORE, and legacy BOOK_ADMIN_REPORT)

book

The book id this log applies to

ckey

The admin who performed the action

datetime

The time of the action being performed

id

The id of this logged action

ip_addr

The ip address of the admin who performed the action

reason

The reason this action was enacted

\ No newline at end of file diff --git a/datum/book_info.html b/datum/book_info.html new file mode 100644 index 0000000000000..23d2bb99d7438 --- /dev/null +++ b/datum/book_info.html @@ -0,0 +1 @@ +/datum/book_info - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

book_info

A datum which contains all the metadata of a book

Vars

authorThe "author" of the book
contentThe info inside the book
titleThe title of the book

Procs

copy_intoModify an existing book_info datum to match your data
return_copyReturns a copy of the book_info datum

Var Details

author

The "author" of the book

content

The info inside the book

title

The title of the book

Proc Details

copy_into

Modify an existing book_info datum to match your data

return_copy

Returns a copy of the book_info datum

\ No newline at end of file diff --git a/datum/borer_evolution.html b/datum/borer_evolution.html new file mode 100644 index 0000000000000..0cd49a1878a6e --- /dev/null +++ b/datum/borer_evolution.html @@ -0,0 +1 @@ +/datum/borer_evolution - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

borer_evolution

Vars

descDescription of the evolution
evo_costCost to get the evolution
evo_typeWhat evolution genome this is
gain_textText to show the borer when they evolve
mutually_exclusiveIf TRUE, this is an evolution that locks out other evolutions of the same tier & above but in different genomes
nameName of the evolution
tierWhat numerical tier is this? (Doesn't affect anything mechanically)
unlocked_evolutionsWhat evolutions this one unlocks

Procs

on_evolveWhat happens when a borer gets this evolution

Var Details

desc

Description of the evolution

evo_cost

Cost to get the evolution

evo_type

What evolution genome this is

gain_text

Text to show the borer when they evolve

mutually_exclusive

If TRUE, this is an evolution that locks out other evolutions of the same tier & above but in different genomes

name

Name of the evolution

tier

What numerical tier is this? (Doesn't affect anything mechanically)

unlocked_evolutions

What evolutions this one unlocks

Proc Details

on_evolve

What happens when a borer gets this evolution

\ No newline at end of file diff --git a/datum/borer_focus.html b/datum/borer_focus.html new file mode 100644 index 0000000000000..9a602ef0d76c5 --- /dev/null +++ b/datum/borer_focus.html @@ -0,0 +1 @@ +/datum/borer_focus - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

borer_focus

Vars

costCost of the focus
nameName of the focus
traitsTraits to add/remove

Procs

on_addEffects to take when the focus is added
on_removeEffects to take when the focus is removed

Var Details

cost

Cost of the focus

name

Name of the focus

traits

Traits to add/remove

Proc Details

on_add

Effects to take when the focus is added

on_remove

Effects to take when the focus is removed

\ No newline at end of file diff --git a/datum/bounty.html b/datum/bounty.html new file mode 100644 index 0000000000000..03aed4ad691bf --- /dev/null +++ b/datum/bounty.html @@ -0,0 +1 @@ +/datum/bounty - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bounty

Procs

applies_toIf an item sent in the cargo shuttle can satisfy the bounty.
can_getIf the user can actually get this bounty as a selection.
claimCalled when the claim button is clicked. Override to provide fancy rewards.
shipCalled when an object is shipped on the cargo shuttle.

Proc Details

applies_to

If an item sent in the cargo shuttle can satisfy the bounty.

can_get

If the user can actually get this bounty as a selection.

claim

Called when the claim button is clicked. Override to provide fancy rewards.

ship

Called when an object is shipped on the cargo shuttle.

\ No newline at end of file diff --git a/datum/bounty/item.html b/datum/bounty/item.html new file mode 100644 index 0000000000000..a03ffef2c9583 --- /dev/null +++ b/datum/bounty/item.html @@ -0,0 +1 @@ +/datum/bounty/item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

item

Vars

include_subtypesSet to FALSE to make the bounty not accept subtypes of the wanted_types
required_countHow many items have to be shipped to complete the bounty
shipped_countHow many items have been shipped for the bounty so far
wanted_typesTypes accepted|denied by the bounty. (including all subtypes, unless include_subtypes is set to FALSE)

Var Details

include_subtypes

Set to FALSE to make the bounty not accept subtypes of the wanted_types

required_count

How many items have to be shipped to complete the bounty

shipped_count

How many items have been shipped for the bounty so far

wanted_types

Types accepted|denied by the bounty. (including all subtypes, unless include_subtypes is set to FALSE)

\ No newline at end of file diff --git a/datum/bounty/item/assistant/fish.html b/datum/bounty/item/assistant/fish.html new file mode 100644 index 0000000000000..06592baf1d902 --- /dev/null +++ b/datum/bounty/item/assistant/fish.html @@ -0,0 +1 @@ +/datum/bounty/item/assistant/fish - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fish

Vars

shipping_penaltythe penalty for shipping dead/bought fish, which can subtract up to half the reward in total.

Var Details

shipping_penalty

the penalty for shipping dead/bought fish, which can subtract up to half the reward in total.

\ No newline at end of file diff --git a/datum/bounty/item/assistant/fish/fluid.html b/datum/bounty/item/assistant/fish/fluid.html new file mode 100644 index 0000000000000..ac1cfed1969e4 --- /dev/null +++ b/datum/bounty/item/assistant/fish/fluid.html @@ -0,0 +1 @@ +/datum/bounty/item/assistant/fish/fluid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fluid

A subtype of the fish bounty that requires fish with a specific fluid type

Vars

fluid_typeThe required fluid type of the fish for it to be shipped

Var Details

fluid_type

The required fluid type of the fish for it to be shipped

\ No newline at end of file diff --git a/datum/bounty/item/atmospherics.html b/datum/bounty/item/atmospherics.html new file mode 100644 index 0000000000000..aee47f4e4321b --- /dev/null +++ b/datum/bounty/item/atmospherics.html @@ -0,0 +1 @@ +/datum/bounty/item/atmospherics - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

atmospherics

Vars

gas_typeTypepath of the gas datum required to fufill the bounty
moles_requiredHow many moles are needed to fufill the bounty?

Var Details

gas_type

Typepath of the gas datum required to fufill the bounty

moles_required

How many moles are needed to fufill the bounty?

\ No newline at end of file diff --git a/datum/bounty/item/science/genetics.html b/datum/bounty/item/science/genetics.html new file mode 100644 index 0000000000000..c7b6aabfd3294 --- /dev/null +++ b/datum/bounty/item/science/genetics.html @@ -0,0 +1 @@ +/datum/bounty/item/science/genetics - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

genetics

Vars

desired_instabilityWhat's the instability

Var Details

desired_instability

What's the instability

\ No newline at end of file diff --git a/datum/bounty/pill.html b/datum/bounty/pill.html new file mode 100644 index 0000000000000..7fcb9305efd42 --- /dev/null +++ b/datum/bounty/pill.html @@ -0,0 +1 @@ +/datum/bounty/pill - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pill

Vars

required_ammountquantity of the pills needed, this value acts as minimum, gets randomized on new()
shipped_ammountcounter for pills sent
wanted_reagentreagent requested
wanted_volminimum volume of chemical needed, gets randomized on new()

Var Details

required_ammount

quantity of the pills needed, this value acts as minimum, gets randomized on new()

shipped_ammount

counter for pills sent

wanted_reagent

reagent requested

wanted_vol

minimum volume of chemical needed, gets randomized on new()

\ No newline at end of file diff --git a/datum/brain_trauma.html b/datum/brain_trauma.html new file mode 100644 index 0000000000000..0b8dc380884f4 --- /dev/null +++ b/datum/brain_trauma.html @@ -0,0 +1 @@ +/datum/brain_trauma - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

brain_trauma

Vars

abstract_typeTracks abstract types of brain traumas, useful for determining traumas that should not exist
display_scannerWhether the trauma will be displayed on a scanner or kiosk

Var Details

abstract_type

Tracks abstract types of brain traumas, useful for determining traumas that should not exist

display_scanner

Whether the trauma will be displayed on a scanner or kiosk

\ No newline at end of file diff --git a/datum/brain_trauma/hypnosis.html b/datum/brain_trauma/hypnosis.html new file mode 100644 index 0000000000000..eb3057b0e9ddf --- /dev/null +++ b/datum/brain_trauma/hypnosis.html @@ -0,0 +1 @@ +/datum/brain_trauma/hypnosis - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hypnosis

Vars

antagonistAssociated antag datum, used for displaying objectives and antag hud

Var Details

antagonist

Associated antag datum, used for displaying objectives and antag hud

\ No newline at end of file diff --git a/datum/brain_trauma/magic/lumiphobia.html b/datum/brain_trauma/magic/lumiphobia.html new file mode 100644 index 0000000000000..e7bb765481a8c --- /dev/null +++ b/datum/brain_trauma/magic/lumiphobia.html @@ -0,0 +1 @@ +/datum/brain_trauma/magic/lumiphobia - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lumiphobia

Vars

damage_warning_cooldownCooldown to prevent warning spam

Var Details

damage_warning_cooldown

Cooldown to prevent warning spam

\ No newline at end of file diff --git a/datum/brain_trauma/mild/phobia.html b/datum/brain_trauma/mild/phobia.html new file mode 100644 index 0000000000000..0d5e352b78106 --- /dev/null +++ b/datum/brain_trauma/mild/phobia.html @@ -0,0 +1 @@ +/datum/brain_trauma/mild/phobia - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

phobia

Vars

check_cooldownCooldown for proximity checks so we don't spam a range 7 view every two seconds.
mood_event_typeWhat mood event to apply when we see the thing & freak out.
scare_cooldownCooldown for freakouts to prevent permastunning.

Procs

is_scary_itemReturns true if this item should be scary to us

Var Details

check_cooldown

Cooldown for proximity checks so we don't spam a range 7 view every two seconds.

mood_event_type

What mood event to apply when we see the thing & freak out.

scare_cooldown

Cooldown for freakouts to prevent permastunning.

Proc Details

is_scary_item

Returns true if this item should be scary to us

\ No newline at end of file diff --git a/datum/brain_trauma/severe/death_consequences.html b/datum/brain_trauma/severe/death_consequences.html new file mode 100644 index 0000000000000..6e3c22fa148b3 --- /dev/null +++ b/datum/brain_trauma/severe/death_consequences.html @@ -0,0 +1,13 @@ +/datum/brain_trauma/severe/death_consequences - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

death_consequences

Vars

base_degradation_on_deathWhen our victim dies, they will degrade by this amount, but only if the last time they died was after [time_required_between_deaths_to_degrade] ago.
base_degradation_per_second_while_deadWhile dead, our victim will degrade by this amount every second. Reduced by stasis and formeldahyde.
base_degradation_reduction_per_second_while_aliveWhile alive, our victim will lose degradation by this amount per second.
buckled_to_default_multOnly used if the thing we are buckled to is not in [buckled_to_recovery_mult_table].
buckled_to_recovery_mult_tableA assoc list of (atom/movable typepath -> mult), where mult is used as a multiplier against passive living degradation reduction.
crit_threshold_currently_reduced_byUsed for updating our crit threshold reduction. We store the previous value, then subtract it from crit threshold, to get the value we had before we adjusted.
crit_threshold_max_degradationThe degradation we will stop reducing the crit threshold at.
crit_threshold_min_degradationThe degradation we will begin reducing the crit threshold at.
current_degradationThe current degradation we are currently at. Generally speaking, things get worse the higher this is. Can never go below 0.
current_degradation_levelThe current level of degradation. Used mostly for reminder messages.
degradation_messagesThe random messages that will be sent to our victim if their degradation moves to a new threshold. +Contains nested assoc lists of (DEGRADATION_LEVEL_DEFINE -> list((message -> weight), ...)) where ... is a indefinite number of message -> weight pairs.
eigenstasium_degradation_decreaseWhen eigenstasium is metabolized, degradation is reduced by this.
final_death_deliveredIf we have killed our owner permanently.
force_death_if_permakilledIf true, when [current_degradation] reaches [max_degradation], we will DNR and KILL our victim.
formaldehyde_death_degradation_multIf our victim is dead, their passive degradation will be multiplied against this if they have formal in their system.
last_time_degraded_on_deathThe last time we caused immediate degradation on death.
max_crit_threshold_reductionThe amount our victims crit threshold will be reduced by at [crit_threshold_max_degradation] degradation.
max_degradationThe absolute maximum degradation we can receive. Will cause permadeath if [permakill_if_at_max_degradation] is TRUE.
max_stamina_damageThe amount our victims crit threshold will be reduced by at [stamina_damage_max_degradation] degradation.
permakill_if_at_max_degradationIf true, when [current_degradation] reaches [max_degradation], we will DNR and ghost our victim.
rezadone_degradation_decreaseIf our victim is alive and is metabolizing rezadone, we will reduce degradation by this amount every second.
stamina_damage_max_degradationThe degradation we will stop increasing the stamina damage at.
stamina_damage_minimum_degradationThe degradation we will begin applying stamina damage at.
stasis_passive_degradation_multiplierIf our victim is dead, their passive degradation will be multiplied against this if they are in stasis.
time_between_remindersThe time between each reminder ([degradation_messages]).
time_of_last_message_sentThe last world.time we sent a message to our owner reminding them of their current degradation. Used for cooldowns and such.
time_required_between_deaths_to_degradeIf the last time we degraded on death was less than this time ago, we won't immediately degrade when our victim dies. Used for preventing things like MDs constantly reviving someone and PKing them.
time_til_scan_expiresAssoc list of (mob -> world.time + time_to_view_extra_data_after_scan). Used for determining if someone can use our health analyzer href
time_to_view_extra_data_after_scanThe amount of time someone has to view our extra info via health analyzer after scanning us.

Procs

adjust_degradationSetter proc for [current_degradation] that clamps the incoming value and updates effects if the value changed.
and_so_your_story_endsThe proc we call when we permanently kill our victim due to being at maximum degradation. DNRs them, ghosts/kills them, and prints a series of highly dramatic messages, +befitting for a death such as this.
damage_staminaEnsures our victim's stamina is at or above the minimum stamina they're supposed to have.
get_crit_threshold_adjustmentCalculates the amount that we should add to our victim's critical threshold.
get_health_analyzer_link_textReturns a short-ish string containing an href to [get_specific_data].
get_passive_degradation_decreaseReturns the amount, every second, degradation should DECREASE by.
get_passive_degradation_decrease_multReturns a multiplier that should be used whenever degradation is passively decreased. Is determined by resting, sleeping, and buckled status.
get_passive_degradation_increaseReturns the amount, every second, degradation should INCREASE by.
get_specific_dataReturns a large string intended to show specifics of how this degradation work.
send_reminderSends a flavorful to_chat to the target, picking from degradation_messages[current_degradation_level]. Can fail to send one if no message is found.
update_degradation_levelUpdates [current_degradation_level] by comparing current degradation to max.
update_effectsRefreshes all our effects and updates their values. Kills the victim if they opted in and their degradation equals their maximum.
update_variablesResets all our variables to our victim's preferences, if they have any. Used for the initial setup, then any time our victim manually refreshes variables.
victim_ahealedSignal handler proc for healing our victim on an aheal. Permadeath can only be reversed by admin aheals.
victim_properly_restingUsed in stamina damage. Determines if our victim is resting, sleeping, or is buckled to something cozy.

Var Details

base_degradation_on_death

When our victim dies, they will degrade by this amount, but only if the last time they died was after [time_required_between_deaths_to_degrade] ago.

base_degradation_per_second_while_dead

While dead, our victim will degrade by this amount every second. Reduced by stasis and formeldahyde.

base_degradation_reduction_per_second_while_alive

While alive, our victim will lose degradation by this amount per second.

buckled_to_default_mult

Only used if the thing we are buckled to is not in [buckled_to_recovery_mult_table].

buckled_to_recovery_mult_table

A assoc list of (atom/movable typepath -> mult), where mult is used as a multiplier against passive living degradation reduction.

crit_threshold_currently_reduced_by

Used for updating our crit threshold reduction. We store the previous value, then subtract it from crit threshold, to get the value we had before we adjusted.

crit_threshold_max_degradation

The degradation we will stop reducing the crit threshold at.

crit_threshold_min_degradation

The degradation we will begin reducing the crit threshold at.

current_degradation

The current degradation we are currently at. Generally speaking, things get worse the higher this is. Can never go below 0.

current_degradation_level

The current level of degradation. Used mostly for reminder messages.

degradation_messages

The random messages that will be sent to our victim if their degradation moves to a new threshold. +Contains nested assoc lists of (DEGRADATION_LEVEL_DEFINE -> list((message -> weight), ...)) where ... is a indefinite number of message -> weight pairs.

eigenstasium_degradation_decrease

When eigenstasium is metabolized, degradation is reduced by this.

final_death_delivered

If we have killed our owner permanently.

force_death_if_permakilled

If true, when [current_degradation] reaches [max_degradation], we will DNR and KILL our victim.

formaldehyde_death_degradation_mult

If our victim is dead, their passive degradation will be multiplied against this if they have formal in their system.

last_time_degraded_on_death

The last time we caused immediate degradation on death.

max_crit_threshold_reduction

The amount our victims crit threshold will be reduced by at [crit_threshold_max_degradation] degradation.

max_degradation

The absolute maximum degradation we can receive. Will cause permadeath if [permakill_if_at_max_degradation] is TRUE.

max_stamina_damage

The amount our victims crit threshold will be reduced by at [stamina_damage_max_degradation] degradation.

permakill_if_at_max_degradation

If true, when [current_degradation] reaches [max_degradation], we will DNR and ghost our victim.

rezadone_degradation_decrease

If our victim is alive and is metabolizing rezadone, we will reduce degradation by this amount every second.

stamina_damage_max_degradation

The degradation we will stop increasing the stamina damage at.

stamina_damage_minimum_degradation

The degradation we will begin applying stamina damage at.

stasis_passive_degradation_multiplier

If our victim is dead, their passive degradation will be multiplied against this if they are in stasis.

time_between_reminders

The time between each reminder ([degradation_messages]).

time_of_last_message_sent

The last world.time we sent a message to our owner reminding them of their current degradation. Used for cooldowns and such.

time_required_between_deaths_to_degrade

If the last time we degraded on death was less than this time ago, we won't immediately degrade when our victim dies. Used for preventing things like MDs constantly reviving someone and PKing them.

time_til_scan_expires

Assoc list of (mob -> world.time + time_to_view_extra_data_after_scan). Used for determining if someone can use our health analyzer href

time_to_view_extra_data_after_scan

The amount of time someone has to view our extra info via health analyzer after scanning us.

Proc Details

adjust_degradation

Setter proc for [current_degradation] that clamps the incoming value and updates effects if the value changed.

and_so_your_story_ends

The proc we call when we permanently kill our victim due to being at maximum degradation. DNRs them, ghosts/kills them, and prints a series of highly dramatic messages, +befitting for a death such as this.

damage_stamina

Ensures our victim's stamina is at or above the minimum stamina they're supposed to have.

get_crit_threshold_adjustment

Calculates the amount that we should add to our victim's critical threshold.

Returns a short-ish string containing an href to [get_specific_data].

get_passive_degradation_decrease

Returns the amount, every second, degradation should DECREASE by.

get_passive_degradation_decrease_mult

Returns a multiplier that should be used whenever degradation is passively decreased. Is determined by resting, sleeping, and buckled status.

get_passive_degradation_increase

Returns the amount, every second, degradation should INCREASE by.

get_specific_data

Returns a large string intended to show specifics of how this degradation work.

send_reminder

Sends a flavorful to_chat to the target, picking from degradation_messages[current_degradation_level]. Can fail to send one if no message is found.

+

Args:

+

update_degradation_level

Updates [current_degradation_level] by comparing current degradation to max.

+

Args:

+

update_effects

Refreshes all our effects and updates their values. Kills the victim if they opted in and their degradation equals their maximum.

update_variables

Resets all our variables to our victim's preferences, if they have any. Used for the initial setup, then any time our victim manually refreshes variables.

victim_ahealed

Signal handler proc for healing our victim on an aheal. Permadeath can only be reversed by admin aheals.

victim_properly_resting

Used in stamina damage. Determines if our victim is resting, sleeping, or is buckled to something cozy.

\ No newline at end of file diff --git a/datum/brain_trauma/severe/eldritch_beauty.html b/datum/brain_trauma/severe/eldritch_beauty.html new file mode 100644 index 0000000000000..9de4e8bf6aa93 --- /dev/null +++ b/datum/brain_trauma/severe/eldritch_beauty.html @@ -0,0 +1 @@ +/datum/brain_trauma/severe/eldritch_beauty - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

eldritch_beauty

Vars

scratch_damageHow much damage we deal with each scratch

Var Details

scratch_damage

How much damage we deal with each scratch

\ No newline at end of file diff --git a/datum/brain_trauma/severe/flesh_desire.html b/datum/brain_trauma/severe/flesh_desire.html new file mode 100644 index 0000000000000..025b5cedf852e --- /dev/null +++ b/datum/brain_trauma/severe/flesh_desire.html @@ -0,0 +1 @@ +/datum/brain_trauma/severe/flesh_desire - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

flesh_desire

Vars

hunger_rateHow much faster we loose hunger

Var Details

hunger_rate

How much faster we loose hunger

\ No newline at end of file diff --git a/datum/brain_trauma/severe/kleptomaniac.html b/datum/brain_trauma/severe/kleptomaniac.html new file mode 100644 index 0000000000000..041fe54ce7996 --- /dev/null +++ b/datum/brain_trauma/severe/kleptomaniac.html @@ -0,0 +1 @@ +/datum/brain_trauma/severe/kleptomaniac - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

kleptomaniac

Vars

steal_cdCooldown between allowing steal attempts

Var Details

steal_cd

Cooldown between allowing steal attempts

\ No newline at end of file diff --git a/datum/brain_trauma/severe/split_personality.html b/datum/brain_trauma/severe/split_personality.html new file mode 100644 index 0000000000000..897a43cb58b1d --- /dev/null +++ b/datum/brain_trauma/severe/split_personality.html @@ -0,0 +1 @@ +/datum/brain_trauma/severe/split_personality - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

split_personality

Vars

poll_roleThe role to display when polling ghost

Procs

get_ghostAttempts to get a ghost to play the personality
schismGhost poll has concluded

Var Details

poll_role

The role to display when polling ghost

Proc Details

get_ghost

Attempts to get a ghost to play the personality

schism

Ghost poll has concluded

\ No newline at end of file diff --git a/datum/brain_trauma/severe/split_personality/blackout.html b/datum/brain_trauma/severe/split_personality/blackout.html new file mode 100644 index 0000000000000..1a9ca54853a78 --- /dev/null +++ b/datum/brain_trauma/severe/split_personality/blackout.html @@ -0,0 +1 @@ +/datum/brain_trauma/severe/split_personality/blackout - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blackout

Vars

duration_in_secondsDuration of effect, tracked in seconds, not deciseconds. qdels when reaching 0.

Var Details

duration_in_seconds

Duration of effect, tracked in seconds, not deciseconds. qdels when reaching 0.

\ No newline at end of file diff --git a/datum/brain_trauma/severe/weeping.html b/datum/brain_trauma/severe/weeping.html new file mode 100644 index 0000000000000..b5c74f64e9dba --- /dev/null +++ b/datum/brain_trauma/severe/weeping.html @@ -0,0 +1 @@ +/datum/brain_trauma/severe/weeping - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

weeping

Vars

weeping_hallucinationsOur cooldown declare for causing hallucinations

Var Details

weeping_hallucinations

Our cooldown declare for causing hallucinations

\ No newline at end of file diff --git a/datum/brain_trauma/special/beepsky.html b/datum/brain_trauma/special/beepsky.html new file mode 100644 index 0000000000000..f2ef948e90d8c --- /dev/null +++ b/datum/brain_trauma/special/beepsky.html @@ -0,0 +1 @@ +/datum/brain_trauma/special/beepsky - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

beepsky

Vars

beepskyA ref to our fake beepsky image that we chase the owner with

Var Details

beepsky

A ref to our fake beepsky image that we chase the owner with

\ No newline at end of file diff --git a/datum/brain_trauma/special/bluespace_prophet.html b/datum/brain_trauma/special/bluespace_prophet.html new file mode 100644 index 0000000000000..9f78ea2b217be --- /dev/null +++ b/datum/brain_trauma/special/bluespace_prophet.html @@ -0,0 +1 @@ +/datum/brain_trauma/special/bluespace_prophet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bluespace_prophet

Vars

portal_cooldownCooldown so we can't teleport literally everywhere on a whim

Var Details

portal_cooldown

Cooldown so we can't teleport literally everywhere on a whim

\ No newline at end of file diff --git a/datum/brain_trauma/special/bluespace_prophet/phobetor.html b/datum/brain_trauma/special/bluespace_prophet/phobetor.html new file mode 100644 index 0000000000000..14690e8cf759e --- /dev/null +++ b/datum/brain_trauma/special/bluespace_prophet/phobetor.html @@ -0,0 +1,13 @@ +/datum/brain_trauma/special/bluespace_prophet/phobetor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Phobetor Brain Trauma

Beefmen's Brain trauma, causing phobetor tears to traverse through.

Vars

created_firstsCreated tears, only checking the FIRST one, not the one it's created to link to.

Procs

check_turf_is_validUsed as a helper that checks if you can successfully teleport to a turf. +Returns a boolean, and checks for if the turf has density, if the turf's area has the NOTELEPORT flag, +and if the objects in the turf have density. +If check_floor is TRUE in the argument, it will return FALSE if it's not a type of /turf/open/floor. +Arguments:
on_loseWhen the trauma is removed from a mob.

Var Details

created_firsts

Created tears, only checking the FIRST one, not the one it's created to link to.

Proc Details

check_turf_is_valid

Used as a helper that checks if you can successfully teleport to a turf. +Returns a boolean, and checks for if the turf has density, if the turf's area has the NOTELEPORT flag, +and if the objects in the turf have density. +If check_floor is TRUE in the argument, it will return FALSE if it's not a type of /turf/open/floor. +Arguments:

+

on_lose

When the trauma is removed from a mob.

\ No newline at end of file diff --git a/datum/brain_trauma/special/burdened.html b/datum/brain_trauma/special/burdened.html new file mode 100644 index 0000000000000..855bdc81dc299 --- /dev/null +++ b/datum/brain_trauma/special/burdened.html @@ -0,0 +1,7 @@ +/datum/brain_trauma/special/burdened - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

burdened

Burdened grants some mutations upon injuring yourself sufficiently

Vars

burden_levelgoes from 0 to 9 (but can be beyond 9, just does nothing) and gives rewards. increased by disabling yourself with debuffs

Procs

addict_added_burdenSignal to increase burden_level (see update_burden proc) if an addiction is added
addict_removed_burdenSignal to decrease burden_level (see update_burden proc) if an addiction is removed
limbs_added_burdenSignal to decrease burden_level (see update_burden proc) if a limb is added
limbs_removed_burdenSignal to increase burden_level (see update_burden proc) if a limb is removed
mutation_added_burdenSignal to increase burden_level (see update_burden proc) if a mutation is added
mutation_removed_burdenSignal to decrease burden_level (see update_burden proc) if a mutation is removed
organ_added_burdenSignal to decrease burden_level (see update_burden proc) if an organ is added
organ_removed_burdenSignal to increase burden_level (see update_burden proc) if an organ is removed
trauma_added_burdenSignal to increase burden_level (see update_burden proc) if a trauma is added
trauma_removed_burdenSignal to decrease burden_level (see update_burden proc) if a trauma is removed
update_burdenCalled by hooked signals whenever burden_level var needs to go up or down by 1. +Sends messages on burden level, gives powers and takes them if needed, etc

Var Details

burden_level

goes from 0 to 9 (but can be beyond 9, just does nothing) and gives rewards. increased by disabling yourself with debuffs

Proc Details

addict_added_burden

Signal to increase burden_level (see update_burden proc) if an addiction is added

addict_removed_burden

Signal to decrease burden_level (see update_burden proc) if an addiction is removed

limbs_added_burden

Signal to decrease burden_level (see update_burden proc) if a limb is added

limbs_removed_burden

Signal to increase burden_level (see update_burden proc) if a limb is removed

mutation_added_burden

Signal to increase burden_level (see update_burden proc) if a mutation is added

mutation_removed_burden

Signal to decrease burden_level (see update_burden proc) if a mutation is removed

organ_added_burden

Signal to decrease burden_level (see update_burden proc) if an organ is added

organ_removed_burden

Signal to increase burden_level (see update_burden proc) if an organ is removed

trauma_added_burden

Signal to increase burden_level (see update_burden proc) if a trauma is added

trauma_removed_burden

Signal to decrease burden_level (see update_burden proc) if a trauma is removed

update_burden

Called by hooked signals whenever burden_level var needs to go up or down by 1. +Sends messages on burden level, gives powers and takes them if needed, etc

+

Arguments:

+
\ No newline at end of file diff --git a/datum/brain_trauma/special/existential_crisis.html b/datum/brain_trauma/special/existential_crisis.html new file mode 100644 index 0000000000000..ee64651bd8e99 --- /dev/null +++ b/datum/brain_trauma/special/existential_crisis.html @@ -0,0 +1 @@ +/datum/brain_trauma/special/existential_crisis - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

existential_crisis

Vars

crisis_cooldownA cooldown to prevent constantly erratic dolphining through the fabric of reality

Var Details

crisis_cooldown

A cooldown to prevent constantly erratic dolphining through the fabric of reality

\ No newline at end of file diff --git a/datum/brain_trauma/special/honorbound.html b/datum/brain_trauma/special/honorbound.html new file mode 100644 index 0000000000000..490d45440fbdb --- /dev/null +++ b/datum/brain_trauma/special/honorbound.html @@ -0,0 +1,18 @@ +/datum/brain_trauma/special/honorbound - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

honorbound

Honorbound prevents you from attacking the unready, the just, or the innocent

Vars

guiltylist of guilty people

Procs

attack_honorSignal to see if the trauma allows us to attack a target
check_visible_guiltChecks a mob for any obvious signs of evil, and applies a guilty reason for each.
guiltyCalled by hooked signals whenever someone attacks the person with this trauma +Checks if the attacker should be considered guilty and adds them to the guilty list if true
is_honorableCalled by attack_honor signal to check whether an attack should be allowed or not
on_attackedSignal sent by the relay_attackers element. It makes the attacker guilty unless the damage was stamina or it was a shove.
punishmentCalled when a spell is casted or a magic gun is fired, checks the signal and punishes accordingly

Var Details

guilty

list of guilty people

Proc Details

attack_honor

Signal to see if the trauma allows us to attack a target

check_visible_guilt

Checks a mob for any obvious signs of evil, and applies a guilty reason for each.

guilty

Called by hooked signals whenever someone attacks the person with this trauma +Checks if the attacker should be considered guilty and adds them to the guilty list if true

+

Arguments:

+

is_honorable

Called by attack_honor signal to check whether an attack should be allowed or not

+

Arguments:

+

on_attacked

Signal sent by the relay_attackers element. It makes the attacker guilty unless the damage was stamina or it was a shove.

punishment

Called when a spell is casted or a magic gun is fired, checks the signal and punishes accordingly

+

Arguments:

+
\ No newline at end of file diff --git a/datum/brain_trauma/special/imaginary_friend.html b/datum/brain_trauma/special/imaginary_friend.html new file mode 100644 index 0000000000000..cdcf2accb15ef --- /dev/null +++ b/datum/brain_trauma/special/imaginary_friend.html @@ -0,0 +1 @@ +/datum/brain_trauma/special/imaginary_friend - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

imaginary_friend

Procs

add_friendYay more friends!
get_ghostTries a poll for the imaginary friend

Proc Details

add_friend

Yay more friends!

get_ghost

Tries a poll for the imaginary friend

\ No newline at end of file diff --git a/datum/brain_trauma/special/obsessed.html b/datum/brain_trauma/special/obsessed.html new file mode 100644 index 0000000000000..05d6a0f56503d --- /dev/null +++ b/datum/brain_trauma/special/obsessed.html @@ -0,0 +1 @@ +/datum/brain_trauma/special/obsessed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

obsessed

Procs

on_hugSingal proc for COMSIG_CARBON_HELPED, when our obsessed helps (hugs) our obsession, increases hug count

Proc Details

on_hug

Singal proc for COMSIG_CARBON_HELPED, when our obsessed helps (hugs) our obsession, increases hug count

\ No newline at end of file diff --git a/datum/brain_trauma/special/primal_instincts.html b/datum/brain_trauma/special/primal_instincts.html new file mode 100644 index 0000000000000..040c2a7db92fa --- /dev/null +++ b/datum/brain_trauma/special/primal_instincts.html @@ -0,0 +1 @@ +/datum/brain_trauma/special/primal_instincts - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

primal_instincts

Vars

old_ai_controller_typeTracks any existing AI controller, so we can restore it when we're cured

Var Details

old_ai_controller_type

Tracks any existing AI controller, so we can restore it when we're cured

\ No newline at end of file diff --git a/datum/brain_trauma/special/ptsd.html b/datum/brain_trauma/special/ptsd.html new file mode 100644 index 0000000000000..acce58b2832d6 --- /dev/null +++ b/datum/brain_trauma/special/ptsd.html @@ -0,0 +1 @@ +/datum/brain_trauma/special/ptsd - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ptsd

Vars

ptsd_hallucinationsOur cooldown declare for causing hallucinations

Var Details

ptsd_hallucinations

Our cooldown declare for causing hallucinations

\ No newline at end of file diff --git a/datum/brain_trauma/special/quantum_alignment.html b/datum/brain_trauma/special/quantum_alignment.html new file mode 100644 index 0000000000000..b1eb6af1cfea1 --- /dev/null +++ b/datum/brain_trauma/special/quantum_alignment.html @@ -0,0 +1 @@ +/datum/brain_trauma/special/quantum_alignment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

quantum_alignment

Vars

snapback_cooldownCooldown for snapbacks

Var Details

snapback_cooldown

Cooldown for snapbacks

\ No newline at end of file diff --git a/datum/brain_trauma/very_special/bimbo.html b/datum/brain_trauma/very_special/bimbo.html new file mode 100644 index 0000000000000..aee9e4e3f6c02 --- /dev/null +++ b/datum/brain_trauma/very_special/bimbo.html @@ -0,0 +1 @@ +/datum/brain_trauma/very_special/bimbo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bimbo

Vars

desire_cooldown_numberThe time between each desire message within company
lust_emotesThe list of manual emotes that will be done when unsatisfied
satisfactionhow satisfied the person is, gained through climaxing
stresshow stressed the person is, gained through zero satisfaction

Procs

check_climaxedIf we have climaxed, return true
in_companyIf we have another human in view, return true
try_unsatisfiedIf we are not satisfied, this will be ran through

Var Details

desire_cooldown_number

The time between each desire message within company

lust_emotes

The list of manual emotes that will be done when unsatisfied

satisfaction

how satisfied the person is, gained through climaxing

stress

how stressed the person is, gained through zero satisfaction

Proc Details

check_climaxed

If we have climaxed, return true

in_company

If we have another human in view, return true

try_unsatisfied

If we are not satisfied, this will be ran through

\ No newline at end of file diff --git a/datum/brain_trauma/voided.html b/datum/brain_trauma/voided.html new file mode 100644 index 0000000000000..7f499fb171c04 --- /dev/null +++ b/datum/brain_trauma/voided.html @@ -0,0 +1 @@ +/datum/brain_trauma/voided - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

voided

Curse brain trauma that makes someone space textured, mute, pacifist and forbids them from entering space

Vars

ban_from_spaceDo we ban the person from entering space?
bodypart_overlay_typeType for the bodypart texture we add
traits_to_applytraits we give on gain

Procs

texture_limbApply the space texture

Var Details

ban_from_space

Do we ban the person from entering space?

bodypart_overlay_type

Type for the bodypart texture we add

traits_to_apply

traits we give on gain

Proc Details

texture_limb

Apply the space texture

\ No newline at end of file diff --git a/datum/buildmode.html b/datum/buildmode.html new file mode 100644 index 0000000000000..638961cdb29e0 --- /dev/null +++ b/datum/buildmode.html @@ -0,0 +1 @@ +/datum/buildmode - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

buildmode

Vars

previewitem preview for selected item

Var Details

preview

item preview for selected item

\ No newline at end of file diff --git a/datum/buildmode_mode.html b/datum/buildmode_mode.html new file mode 100644 index 0000000000000..bc9f4d04e3451 --- /dev/null +++ b/datum/buildmode_mode.html @@ -0,0 +1 @@ +/datum/buildmode_mode - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

buildmode_mode

Vars

button_iconSeparate icons due to modularity. Button icons use /tg/ by default.

Var Details

button_icon

Separate icons due to modularity. Button icons use /tg/ by default.

\ No newline at end of file diff --git a/datum/buildmode_mode/map_export.html b/datum/buildmode_mode/map_export.html new file mode 100644 index 0000000000000..042ed94505401 --- /dev/null +++ b/datum/buildmode_mode/map_export.html @@ -0,0 +1 @@ +/datum/buildmode_mode/map_export - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

map_export

Vars

save_flagVariable with a flag value to indicate what should be saved (for example, only objects or only mobs).
shuttle_flagVariable with the flag value to understand how to treat the shuttle zones.

Var Details

save_flag

Variable with a flag value to indicate what should be saved (for example, only objects or only mobs).

shuttle_flag

Variable with the flag value to understand how to treat the shuttle zones.

\ No newline at end of file diff --git a/datum/buildmode_mode/proccall.html b/datum/buildmode_mode/proccall.html new file mode 100644 index 0000000000000..9d3f111b1553b --- /dev/null +++ b/datum/buildmode_mode/proccall.html @@ -0,0 +1 @@ +/datum/buildmode_mode/proccall - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

proccall

Vars

proc_argsThe list of arguments for the procedure. They may not be. They are selected in the same way in the game, and can be a datum, and other types.
proc_nameThe procedure itself, which we will call in the future. For example "qdel"

Var Details

proc_args

The list of arguments for the procedure. They may not be. They are selected in the same way in the game, and can be a datum, and other types.

proc_name

The procedure itself, which we will call in the future. For example "qdel"

\ No newline at end of file diff --git a/datum/buildmode_mode/tweakcomps.html b/datum/buildmode_mode/tweakcomps.html new file mode 100644 index 0000000000000..b5649d9447978 --- /dev/null +++ b/datum/buildmode_mode/tweakcomps.html @@ -0,0 +1 @@ +/datum/buildmode_mode/tweakcomps - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tweakcomps

Vars

ratingThis variable is responsible for the rating of the components themselves. Literally tiers of components, where 1 is standard, 4 is bluespace.

Var Details

rating

This variable is responsible for the rating of the components themselves. Literally tiers of components, where 1 is standard, 4 is bluespace.

\ No newline at end of file diff --git a/datum/callback.html b/datum/callback.html new file mode 100644 index 0000000000000..86d8e9f38d307 --- /dev/null +++ b/datum/callback.html @@ -0,0 +1,43 @@ +/datum/callback - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Callback Datums

A datum that holds a proc to be called on another object, used to track proccalls to other objects

+

USAGE

+
var/datum/callback/C = new(object|null, PROC_REF(procname), arg1, arg2, ... argn)
+var/timerid = addtimer(C, time, timertype)
+you can also use the compiler define shorthand
+var/timerid = addtimer(CALLBACK(object|null, PROC_REF(procname), arg1, arg2, ... argn), time, timertype)
+
+

Note: proc strings can only be given for datum proc calls, global procs must be proc paths

+

Also proc strings are strongly advised against because they don't compile error if the proc stops existing

+

In some cases you can provide a shortform of the procname, see the proc typepath shortcuts documentation below

+

INVOKING THE CALLBACK

+

var/result = C.Invoke(args, to, add) additional args are added after the ones given when the callback was created

+

var/result = C.InvokeAsync(args, to, add) Asyncronous - returns . on the first sleep then continues on in the background +after the sleep/block ends, otherwise operates normally.

+

PROC TYPEPATH SHORTCUTS

+

(these operate on paths, not types, so to these shortcuts, datum is NOT a parent of atom, etc...)

+

proc defined on current(src) object OR overridden at src or any of its parents:

+

PROC_REF(procname)

+

CALLBACK(src, PROC_REF(some_proc_here))

+

global proc

+

GLOBAL_PROC_REF(procname)

+

CALLBACK(src, GLOBAL_PROC_REF(some_proc_here))

+

proc defined on some type

+

TYPE_PROC_REF(/some/type/, some_proc_here)

Vars

argumentsA list of arguments to pass into the proc
delegateThe proc we will be calling on the object
objectThe object we will be calling the proc on
userA weak reference to the user who triggered this callback

Procs

DestroyQdel a callback datum +This is not allowed and will stack trace. callback datums are structs, if they are referenced they exist
InvokeInvoke this callback
InvokeAsyncInvoke this callback async (waitfor=false)
NewCreate a new callback datum

Var Details

arguments

A list of arguments to pass into the proc

delegate

The proc we will be calling on the object

object

The object we will be calling the proc on

user

A weak reference to the user who triggered this callback

Proc Details

Destroy

Qdel a callback datum +This is not allowed and will stack trace. callback datums are structs, if they are referenced they exist

+

Arguments

+

Invoke

Invoke this callback

+

Calls the registered proc on the registered object, if the user ref +can be resolved it also inclues that as an arg

+

If the datum being called on is varedited, the call is wrapped via WrapAdminProcCall

InvokeAsync

Invoke this callback async (waitfor=false)

+

Calls the registered proc on the registered object, if the user ref +can be resolved it also inclues that as an arg

+

If the datum being called on is varedited, the call is wrapped via WrapAdminProcCall

New

Create a new callback datum

+

Arguments

+
\ No newline at end of file diff --git a/datum/callback/verb_callback.html b/datum/callback/verb_callback.html new file mode 100644 index 0000000000000..7c25f4f10f977 --- /dev/null +++ b/datum/callback/verb_callback.html @@ -0,0 +1,2 @@ +/datum/callback/verb_callback - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

verb_callback

like normal callbacks but they also record their creation time for measurement purposes +they also require the same usr/user that made the callback to both still exist and to still have a client in order to execute

Vars

creation_timethe tick this callback datum was created in. used for testing latency

Var Details

creation_time

the tick this callback datum was created in. used for testing latency

\ No newline at end of file diff --git a/datum/camerachunk.html b/datum/camerachunk.html new file mode 100644 index 0000000000000..3ab9a226bd0eb --- /dev/null +++ b/datum/camerachunk.html @@ -0,0 +1,15 @@ +/datum/camerachunk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

camerachunk

Vars

active_static_imagesimages currently in use on obscured turfs.
camerascameras that can see into our grid +indexed by the z level of the camera
obscuredTurfsturfs our cameras cant see but are inside our grid. associative list of the form: list(obscured turf = static image on that turf)
seenbycamera mobs that can see turfs in our grid
turfslist of all turfs, associative with that turf's static image +turf -> /image
visibleTurfsturfs our cameras can see inside our grid

Procs

NewCreate a new camera chunk, since the chunks are made as they are needed.
addAdd an AI eye to the chunk, then update if changed.
hasChangedUpdates the chunk, makes sure that it doesn't update too much. If the chunk isn't being watched it will +instead be flagged to update the next time an AI Eye moves near it. +update_delay_buffer is used for cameras that are moving around, which are cyborg inbuilt cameras and +mecha onboard cameras. This buffer should be usually lower than UPDATE_BUFFER_TIME because +otherwise a moving camera can run out of its own view before updating static.
removeRemove an AI eye from the chunk
updateThe actual updating. It gathers the visible turfs from cameras and puts them into the appropiate lists. +Accepts an optional partial_update argument, that blocks any calls out to chunks that could affect us, like above or below
visibilityChangedCalled when a chunk has changed. I.E: A wall was deleted.

Var Details

active_static_images

images currently in use on obscured turfs.

cameras

cameras that can see into our grid +indexed by the z level of the camera

obscuredTurfs

turfs our cameras cant see but are inside our grid. associative list of the form: list(obscured turf = static image on that turf)

seenby

camera mobs that can see turfs in our grid

turfs

list of all turfs, associative with that turf's static image +turf -> /image

visibleTurfs

turfs our cameras can see inside our grid

Proc Details

New

Create a new camera chunk, since the chunks are made as they are needed.

add

Add an AI eye to the chunk, then update if changed.

hasChanged

Updates the chunk, makes sure that it doesn't update too much. If the chunk isn't being watched it will +instead be flagged to update the next time an AI Eye moves near it. +update_delay_buffer is used for cameras that are moving around, which are cyborg inbuilt cameras and +mecha onboard cameras. This buffer should be usually lower than UPDATE_BUFFER_TIME because +otherwise a moving camera can run out of its own view before updating static.

remove

Remove an AI eye from the chunk

update

The actual updating. It gathers the visible turfs from cameras and puts them into the appropiate lists. +Accepts an optional partial_update argument, that blocks any calls out to chunks that could affect us, like above or below

visibilityChanged

Called when a chunk has changed. I.E: A wall was deleted.

\ No newline at end of file diff --git a/datum/cameranet.html b/datum/cameranet.html new file mode 100644 index 0000000000000..eef0c79350500 --- /dev/null +++ b/datum/cameranet.html @@ -0,0 +1,21 @@ +/datum/cameranet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cameranet

Vars

camerasThe cameras on the map, no matter if they work or not. Updated in obj/machinery/camera.dm by New() and Del().
chunksThe chunks of the map, mapping the areas that the cameras can see.
nameName to show for VV and stat()
obscured_imagesList of images cloned by all chunk static images put onto turfs cameras cant see +Indexed by the plane offset to use

Procs

addCameraAdd a camera to a chunk.
bareMajorChunkChangeA faster, turf only version of /datum/cameranet/proc/majorChunkChange +For use in sensitive code, be careful with it
checkCameraVisWill check if a mob is on a viewable turf. Returns 1 if it is, otherwise returns 0.
chunkGeneratedChecks if a chunk has been Generated in x, y, z.
majorChunkChangeNever access this proc directly!!!! +This will update the chunk and all the surrounding chunks. +It will also add the atom to the cameras list if you set the choice to 1. +Setting the choice to 0 will remove the camera from the chunks. +If you want to update the chunks around an object, without adding/removing a camera, use choice 2. +update_delay_buffer is passed all the way to hasChanged() from portable camera updates on movement +to change the time between static updates.
removeCameraRemoves a camera from a chunk.
updatePortableCameraUsed for Cyborg/mecha cameras. Since portable cameras can be in ANY chunk. +update_delay_buffer is passed all the way to hasChanged() from their camera updates on movement +to change the time between static updates.
updateVisibilityUpdates the chunks that the turf is located in. Use this when obstacles are destroyed or when doors open.
visibilityUpdates what the aiEye can see. It is recommended you use this when the aiEye moves or its location is set.

Var Details

cameras

The cameras on the map, no matter if they work or not. Updated in obj/machinery/camera.dm by New() and Del().

chunks

The chunks of the map, mapping the areas that the cameras can see.

name

Name to show for VV and stat()

obscured_images

List of images cloned by all chunk static images put onto turfs cameras cant see +Indexed by the plane offset to use

Proc Details

addCamera

Add a camera to a chunk.

bareMajorChunkChange

A faster, turf only version of /datum/cameranet/proc/majorChunkChange +For use in sensitive code, be careful with it

checkCameraVis

Will check if a mob is on a viewable turf. Returns 1 if it is, otherwise returns 0.

chunkGenerated

Checks if a chunk has been Generated in x, y, z.

majorChunkChange

Never access this proc directly!!!! +This will update the chunk and all the surrounding chunks. +It will also add the atom to the cameras list if you set the choice to 1. +Setting the choice to 0 will remove the camera from the chunks. +If you want to update the chunks around an object, without adding/removing a camera, use choice 2. +update_delay_buffer is passed all the way to hasChanged() from portable camera updates on movement +to change the time between static updates.

removeCamera

Removes a camera from a chunk.

updatePortableCamera

Used for Cyborg/mecha cameras. Since portable cameras can be in ANY chunk. +update_delay_buffer is passed all the way to hasChanged() from their camera updates on movement +to change the time between static updates.

updateVisibility

Updates the chunks that the turf is located in. Use this when obstacles are destroyed or when doors open.

visibility

Updates what the aiEye can see. It is recommended you use this when the aiEye moves or its location is set.

\ No newline at end of file diff --git a/datum/can_pass_info.html b/datum/can_pass_info.html new file mode 100644 index 0000000000000..c0d00fc9d4052 --- /dev/null +++ b/datum/can_pass_info.html @@ -0,0 +1,12 @@ +/datum/can_pass_info - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

can_pass_info

Holds all information about what an atom can move through +Passed into CanAStarPass to provide context for a pathing attempt

+

Also used to check if using a cached path_map is safe +There are some vars here that are unused. They exist to cover cases where caller_ref is used +They're the properties of caller_ref used in those cases. +It's kinda annoying, but there's some proc chains we can't convert to this datum

Vars

accessWhat access we have, airlocks, windoors, etc
anchoredAre we anchored
buckled_infoIf our mob is buckled to something, what's it like
caller_refWeakref to the caller used to generate this info +Should not use this almost ever, it's for context and to allow for proc chains that +Require a movable
camera_typeCameras have a lot of BS can_z_move overrides +Let's avoid this
can_ventcrawlCan we ventcrawl?
has_gravityDo we have gravity
incapacitatedIs our mob incapacitated
incorporeal_moveIs our mob incorporeal
is_botAre we a bot?
is_livingAre we a living mob?
is_observerAre we a ghost? (they have effectively unique pathfinding)
mob_sizeWhat is the size of our mob
movement_typeWhat sort of movement do we have. Mirrors /atom/movable/movement_type
no_idIf we have no id, public airlocks are walls
pass_flagsWhat we can pass through. Mirrors /atom/movable/pass_flags
pulling_infoPass information for the object we are pulling, if any
rider_infoIf our mob has a rider, what does it look like
thrownAre we being thrown?

Var Details

access

What access we have, airlocks, windoors, etc

anchored

Are we anchored

buckled_info

If our mob is buckled to something, what's it like

caller_ref

Weakref to the caller used to generate this info +Should not use this almost ever, it's for context and to allow for proc chains that +Require a movable

camera_type

Cameras have a lot of BS can_z_move overrides +Let's avoid this

can_ventcrawl

Can we ventcrawl?

has_gravity

Do we have gravity

incapacitated

Is our mob incapacitated

incorporeal_move

Is our mob incorporeal

is_bot

Are we a bot?

is_living

Are we a living mob?

is_observer

Are we a ghost? (they have effectively unique pathfinding)

mob_size

What is the size of our mob

movement_type

What sort of movement do we have. Mirrors /atom/movable/movement_type

no_id

If we have no id, public airlocks are walls

pass_flags

What we can pass through. Mirrors /atom/movable/pass_flags

pulling_info

Pass information for the object we are pulling, if any

rider_info

If our mob has a rider, what does it look like

thrown

Are we being thrown?

\ No newline at end of file diff --git a/datum/candidate_poll.html b/datum/candidate_poll.html new file mode 100644 index 0000000000000..ac9286e3ecbfe --- /dev/null +++ b/datum/candidate_poll.html @@ -0,0 +1 @@ +/datum/candidate_poll - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

candidate_poll

The datum that describes one instance of candidate polling

Vars

alert_buttonsthe linked alert buttons
durationThe duration of the poll
finishedWhether the polling is finished
ignoring_categoryNever For This Round category
jump_to_methe atom observers can jump/teleport to
poll_keyUsed to categorize in the alerts system and identify polls of same question+role so we can stack the alert buttons
questionThe question asked to potential candidates
response_messagesResponse messages sent in specific key areas for full customization of polling.
roleThe role the poll is for
signed_upThe players who signed up to this poll
time_startedThe world.time at which the poll was created

Procs

announce_chosenPrint to chat which candidate was selected

Var Details

alert_buttons

the linked alert buttons

duration

The duration of the poll

finished

Whether the polling is finished

ignoring_category

Never For This Round category

jump_to_me

the atom observers can jump/teleport to

poll_key

Used to categorize in the alerts system and identify polls of same question+role so we can stack the alert buttons

question

The question asked to potential candidates

response_messages

Response messages sent in specific key areas for full customization of polling.

role

The role the poll is for

signed_up

The players who signed up to this poll

time_started

The world.time at which the poll was created

Proc Details

announce_chosen

Print to chat which candidate was selected

\ No newline at end of file diff --git a/datum/card.html b/datum/card.html new file mode 100644 index 0000000000000..d3475ac66912d --- /dev/null +++ b/datum/card.html @@ -0,0 +1,5 @@ +/datum/card - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

card

Vars

cardsubtypeAn extra descriptor for the card. Combined with the cardtype for a larger card descriptor, i.e. Creature- Xenomorph, Spell- Instant, that sort of thing. For creatures, this has no effect, for spells, this is important.
cardtypeUsed to define the behaviour the card uses during the game.
factionSomeone please come up with a ruleset so I can comment this
idUnique ID, for use in lookups and (eventually) for persistence. MAKE SURE THIS IS UNIQUE FOR EACH CARD IN AS SERIES, OR THE ENTIRE SYSTEM WILL BREAK, AND I WILL BE VERY DISAPPOINTED.
powerHow hard this card hits (by default)
rarityThe rarity of this card, determines how much (or little) it shows up in packs. Rarities are common, uncommon, rare, epic, legendary and misprint.
resolveHow hard this card can get hit (by default)
rulesThis handles any extra rules for the card, i.e. extra attributes, special effects, etc. If you've played any other card game, you know how this works.
seriesDefines the series that the card originates from, this is very important for spawning the cards via packs.
summon_icon_fileIcon file that summons are pulled from
summon_icon_stateIcon state for summons to use
summoncostWhat it costs to summon this card to the battlefield.

Procs

applyFor each var that the card datum and the json entry share, we set the datum var to the json entry
applyKeywordsSearches for keywords in the card's variables, marked by wrapping them in {$} +Adds on hovor logic to them, using the passed in list +We use the changed_vars list just to make the var searching faster
applyTemplatesApplies a json file to a card datum

Var Details

cardsubtype

An extra descriptor for the card. Combined with the cardtype for a larger card descriptor, i.e. Creature- Xenomorph, Spell- Instant, that sort of thing. For creatures, this has no effect, for spells, this is important.

cardtype

Used to define the behaviour the card uses during the game.

faction

Someone please come up with a ruleset so I can comment this

id

Unique ID, for use in lookups and (eventually) for persistence. MAKE SURE THIS IS UNIQUE FOR EACH CARD IN AS SERIES, OR THE ENTIRE SYSTEM WILL BREAK, AND I WILL BE VERY DISAPPOINTED.

power

How hard this card hits (by default)

rarity

The rarity of this card, determines how much (or little) it shows up in packs. Rarities are common, uncommon, rare, epic, legendary and misprint.

resolve

How hard this card can get hit (by default)

rules

This handles any extra rules for the card, i.e. extra attributes, special effects, etc. If you've played any other card game, you know how this works.

series

Defines the series that the card originates from, this is very important for spawning the cards via packs.

summon_icon_file

Icon file that summons are pulled from

summon_icon_state

Icon state for summons to use

summoncost

What it costs to summon this card to the battlefield.

Proc Details

apply

For each var that the card datum and the json entry share, we set the datum var to the json entry

applyKeywords

Searches for keywords in the card's variables, marked by wrapping them in {$} +Adds on hovor logic to them, using the passed in list +We use the changed_vars list just to make the var searching faster

applyTemplates

Applies a json file to a card datum

\ No newline at end of file diff --git a/datum/cardboard_cutout.html b/datum/cardboard_cutout.html new file mode 100644 index 0000000000000..11aa59308d118 --- /dev/null +++ b/datum/cardboard_cutout.html @@ -0,0 +1 @@ +/datum/cardboard_cutout - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cardboard_cutout

Vars

applied_appearanceA flat appearance, with only one direction, that we apply to the cardboard cutout.
applied_descThe desc we give to the cardboard cutout.
applied_nameThe base name we actually give to to the cardboard cutout. Can be overridden in get_name().
direct_iconIf we're not using dynamic generation (for non-humans), we can set a direct icon to give.
direct_icon_stateSame as direct_icon, but icon_state!
l_handIf we're using dynamic generation, the left hand item the generated mob will have.
mob_spawnerIf we're using dynamic generation, the mob spawner the generated mob will base visuals from.
nameName of the cutout, used for radial selection and the global list.
outfitIf we're using dynamic generation, the outfit the generated mob will have.
preview_appearanceThe appearance of the cardboard cutout that we show in the radial menu.
r_handIf we're using dynamic generation, the right hand item the generated mob will have.
speciesIf we're using dynamic generation, the species of the generated mob.

Procs

applyThis proc sets the cardboard cutout item's vars.
get_nameThis proc returns the name that the cardboard cutout item will use.

Var Details

applied_appearance

A flat appearance, with only one direction, that we apply to the cardboard cutout.

applied_desc

The desc we give to the cardboard cutout.

applied_name

The base name we actually give to to the cardboard cutout. Can be overridden in get_name().

direct_icon

If we're not using dynamic generation (for non-humans), we can set a direct icon to give.

direct_icon_state

Same as direct_icon, but icon_state!

l_hand

If we're using dynamic generation, the left hand item the generated mob will have.

mob_spawner

If we're using dynamic generation, the mob spawner the generated mob will base visuals from.

name

Name of the cutout, used for radial selection and the global list.

outfit

If we're using dynamic generation, the outfit the generated mob will have.

preview_appearance

The appearance of the cardboard cutout that we show in the radial menu.

r_hand

If we're using dynamic generation, the right hand item the generated mob will have.

species

If we're using dynamic generation, the species of the generated mob.

Proc Details

apply

This proc sets the cardboard cutout item's vars.

get_name

This proc returns the name that the cardboard cutout item will use.

\ No newline at end of file diff --git a/datum/cargo_company.html b/datum/cargo_company.html new file mode 100644 index 0000000000000..06d1e771b84bf --- /dev/null +++ b/datum/cargo_company.html @@ -0,0 +1 @@ +/datum/cargo_company - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cargo_company

Vars

base_costVar for internal calculations, don't touch
can_roundstart_pickIf this company can be picked to be a handout company to start
company_flagBitflag that should match what guns the company produces
costHow much the company costs, can shift over time
cost_change_lowerOn a subsystem fire, will lower/raise company values by a random value between lower and upper
cost_change_upperOn a subsystem fire, will lower/raise company values by a random value between lower and upper
cost_multMultiplier added to the cost before showing the final price to the user
illegalIf the company needs a multitooled console to see
interestThe "interest" value of the company, to determine how much stock the company has, goes down passively and is raised by things being bought
magazine_cost_multMultiplier for magazine costs
nameName of the company

Var Details

base_cost

Var for internal calculations, don't touch

can_roundstart_pick

If this company can be picked to be a handout company to start

company_flag

Bitflag that should match what guns the company produces

cost

How much the company costs, can shift over time

cost_change_lower

On a subsystem fire, will lower/raise company values by a random value between lower and upper

cost_change_upper

On a subsystem fire, will lower/raise company values by a random value between lower and upper

cost_mult

Multiplier added to the cost before showing the final price to the user

illegal

If the company needs a multitooled console to see

interest

The "interest" value of the company, to determine how much stock the company has, goes down passively and is raised by things being bought

magazine_cost_mult

Multiplier for magazine costs

name

Name of the company

\ No newline at end of file diff --git a/datum/carrier_room.html b/datum/carrier_room.html new file mode 100644 index 0000000000000..f423b9d208cf4 --- /dev/null +++ b/datum/carrier_room.html @@ -0,0 +1,10 @@ +/datum/carrier_room - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

carrier_room

carrier Room

+

This datum is where souls are sent to when joining soulcatchers. +It handles sending messages to souls from the outside along with adding new souls, transfering, and removing souls.

Vars

current_mobsWhat souls are currently inside of the room?
current_overlay_pathWhat overlay is being currently used? Don't directly change this, use change_fullscreen_overlay()
joinableCan the room be joined at all?
master_carrierWeakref for the master carrier datum
nameWhat is the name of the room?
outside_voiceWhat is the name of the person sending the messages?
overlay_colorWhat color do we want the overlay to be, if any?
overlay_recolorableIs our overlay recolorable? This is here for TGUI
room_colorWhat is the color of chat messages sent by the room?
room_descriptionWhat is the description of the room?

Procs

add_mobAdds a mob into the carrier
add_soul_from_mindConverts a mind into a soul and adds the resulting soul to the room.
change_fullscreen_overlayChanges the fullscreen overlay for everyone inside of the current carrier room
relay_message_to_carrierRelays a message sent from the send_message proc to the parent carrier datum
remove_mobRemoves a mob from a carrier room, leaving it as a ghost. Returns FALSE if the mob_to_remove cannot be found, otherwise returns TRUE after a successful deletion.
send_messageSends a message or emote to all of the souls currently located inside of the carrier room. Returns FALSE if a message cannot be sent, otherwise returns TRUE.
set_overlay_for_mobSets the current overlay for a mob

Var Details

current_mobs

What souls are currently inside of the room?

current_overlay_path

What overlay is being currently used? Don't directly change this, use change_fullscreen_overlay()

joinable

Can the room be joined at all?

master_carrier

Weakref for the master carrier datum

name

What is the name of the room?

outside_voice

What is the name of the person sending the messages?

overlay_color

What color do we want the overlay to be, if any?

overlay_recolorable

Is our overlay recolorable? This is here for TGUI

room_color

What is the color of chat messages sent by the room?

room_description

What is the description of the room?

Proc Details

add_mob

Adds a mob into the carrier

add_soul_from_mind

Converts a mind into a soul and adds the resulting soul to the room.

change_fullscreen_overlay

Changes the fullscreen overlay for everyone inside of the current carrier room

relay_message_to_carrier

Relays a message sent from the send_message proc to the parent carrier datum

remove_mob

Removes a mob from a carrier room, leaving it as a ghost. Returns FALSE if the mob_to_remove cannot be found, otherwise returns TRUE after a successful deletion.

send_message

Sends a message or emote to all of the souls currently located inside of the carrier room. Returns FALSE if a message cannot be sent, otherwise returns TRUE.

+

Arguments

+

set_overlay_for_mob

Sets the current overlay for a mob

\ No newline at end of file diff --git a/datum/carrier_room/soulcatcher.html b/datum/carrier_room/soulcatcher.html new file mode 100644 index 0000000000000..caf558da2db92 --- /dev/null +++ b/datum/carrier_room/soulcatcher.html @@ -0,0 +1 @@ +/datum/carrier_room/soulcatcher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

soulcatcher

Vars

nameWhat is the name of the room?
room_descriptionWhat is the description of the room?

Procs

add_soul_from_ghostAttemps to add a ghost to the soulcatcher room.

Var Details

name

What is the name of the room?

room_description

What is the description of the room?

Proc Details

add_soul_from_ghost

Attemps to add a ghost to the soulcatcher room.

\ No newline at end of file diff --git a/datum/cell_tracker.html b/datum/cell_tracker.html new file mode 100644 index 0000000000000..4c89df77f981e --- /dev/null +++ b/datum/cell_tracker.html @@ -0,0 +1,13 @@ +/datum/cell_tracker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cell_tracker

Spatial gridmap, cell tracking

+

This datum exists to make the large, repeated "everything in some range" pattern faster +Rather then just refreshing against everything, we track all the cells in range of the passed in "window" +This lets us do entered/left logic, and make ordinarially quite expensive logic much cheaper

+

Note: This system should not be used for things who have strict requirements about what is NOT in their processed entries +It should instead only be used for logic that only really cares about limiting how much gets "entered" in any one call +Because we apply this limitation, we can do things to make our code much less prone to unneeded work

Vars

inner_window_x_radiusThe height (y radius) of our inner window
inner_window_y_radiusThe width (x radius) of our inner window
outer_window_x_radiusThe height (y radius) of our outer window
outer_window_y_radiusThe width (x radius) of our outer window

Procs

NewAccepts a width and height to use for this tracker +Also accepts the ratio to use between inner and outer window. Optional, defaults to 2
recalculate_cellsRecalculates our member list, returns a list in the form list(new members, old members) for reaction +Accepts the turf to use as our "center"
recalculate_type_membersReturns a list of newly and formerly joined spatial grid managed objects of type [type] in the form list(new, old) +Takes the center of our window as input
set_boundsTakes a width and height, and uses them to set the inner window, and interpolate the outer window

Var Details

inner_window_x_radius

The height (y radius) of our inner window

inner_window_y_radius

The width (x radius) of our inner window

outer_window_x_radius

The height (y radius) of our outer window

outer_window_y_radius

The width (x radius) of our outer window

Proc Details

New

Accepts a width and height to use for this tracker +Also accepts the ratio to use between inner and outer window. Optional, defaults to 2

recalculate_cells

Recalculates our member list, returns a list in the form list(new members, old members) for reaction +Accepts the turf to use as our "center"

recalculate_type_members

Returns a list of newly and formerly joined spatial grid managed objects of type [type] in the form list(new, old) +Takes the center of our window as input

set_bounds

Takes a width and height, and uses them to set the inner window, and interpolate the outer window

\ No newline at end of file diff --git a/datum/cellular_emporium.html b/datum/cellular_emporium.html new file mode 100644 index 0000000000000..7ca726c2c6bbf --- /dev/null +++ b/datum/cellular_emporium.html @@ -0,0 +1 @@ +/datum/cellular_emporium - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cellular_emporium

Vars

changelingThe changeling who owns this emporium
nameThe name of the emporium - why does it need a name? Dunno

Var Details

changeling

The changeling who owns this emporium

name

The name of the emporium - why does it need a name? Dunno

\ No newline at end of file diff --git a/datum/centcom_announcer.html b/datum/centcom_announcer.html new file mode 100644 index 0000000000000..b1e3cc4f8f4ba --- /dev/null +++ b/datum/centcom_announcer.html @@ -0,0 +1 @@ +/datum/centcom_announcer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

centcom_announcer

Data holder for the announcers that can be used in a game, this can be used to have alternative announcements outside of the default e.g.the intern

Vars

alert_soundsSounds made when announcement is receivedc
command_report_soundsSounds made when command report is received
custom_alert_messageOverride this to have a custom message to show instead of the normal priority announcement
event_soundsEvent audio, can be used for specific event announcements and is assoc key - sound. If no sound is found the default is used.area
welcome_soundsRoundshift start audio

Var Details

alert_sounds

Sounds made when announcement is receivedc

command_report_sounds

Sounds made when command report is received

custom_alert_message

Override this to have a custom message to show instead of the normal priority announcement

event_sounds

Event audio, can be used for specific event announcements and is assoc key - sound. If no sound is found the default is used.area

welcome_sounds

Roundshift start audio

\ No newline at end of file diff --git a/datum/centcom_podlauncher.html b/datum/centcom_podlauncher.html new file mode 100644 index 0000000000000..b4f98862ac027 --- /dev/null +++ b/datum/centcom_podlauncher.html @@ -0,0 +1 @@ +/datum/centcom_podlauncher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

centcom_podlauncher

Vars

ignored_atomsStatic typecache of atoms we won't lift up, or pod or whatever.
indicatorAn effect used for showing where a reverse pod will land
selectorAn effect used for keeping track of what item is going to be launched next when in "ordered" mode (launchChoice = 1)

Var Details

ignored_atoms

Static typecache of atoms we won't lift up, or pod or whatever.

indicator

An effect used for showing where a reverse pod will land

selector

An effect used for keeping track of what item is going to be launched next when in "ordered" mode (launchChoice = 1)

\ No newline at end of file diff --git a/datum/changeling_profile.html b/datum/changeling_profile.html new file mode 100644 index 0000000000000..b8013a116e322 --- /dev/null +++ b/datum/changeling_profile.html @@ -0,0 +1 @@ +/datum/changeling_profile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

changeling_profile

Vars

ageThe age of the profile source.
appearance_listAssoc list of item slot to apperance - stores the appearance of every item of this profile.
athletics_levelThe athleticism of the profile source.
braThe bra worn by the profile source
bra_colorThe color of the bra used by the profile source
dnaThe DNA datum associated with our profile from the profile source
emissive_eyesDoes the profile source's eyes glow
exists_listAssoc list of item slot to boolean - stores whether an item in that slot exists
eye_color_leftThe profile source's left eye color
eye_color_rightThe profile source's right eye color
flags_cover_listAssoc list of item slot to flag - stores the flags_cover of every item of this profile.
id_iconID HUD icon associated with the profile
inhand_icon_state_listAssoc list of item slot to file - stores the inhand file of the item in that slot
laugh_typeThe profile source laugh type
lefthand_file_listAssoc list of item slot to file - stores the lefthand file of the item in that slot
nameThe name of the profile / the name of whoever this profile source.
name_listAssoc list of item slot to item name - stores the name of every item of this profile.
physiqueThe body type of the profile source.
profile_snapshotIcon snapshot of the profile
protectedWhether this profile is protected - if TRUE, it cannot be removed from a changeling's profiles without force
quirksThe quirks of the profile source.
righthand_file_listAssoc list of item slot to file - stores the righthand file of the item in that slot
scream_typeThe profile source scream type
skillchipsA list of paths for any skill chips the profile source had installed
socksThe socks worn by the profile source
socks_colorThe color of the socks used by the profile source
stored_scarsWhat scars the profile sorce had, in string form (like persistent scars)
supports_variations_flags_listSupport variation flags used by the profile source
target_body_scalingProfile source mob height
target_sizeProfile source Mob Size
undershirtThe undershirt worn by the profile source
undershirt_colorThe color of the undershirt used by the profile source
underwearThe underwear worn by the profile source
underwear_colorThe colour of the underwear worn by the profile source
voiceThe TTS voice of the profile source
voice_filterThe TTS filter of the profile filter
worn_icon_digi_listProfile source digi leg icons
worn_icon_listAssoc list of item slot to file - stores the worn icon file of the item in that slot
worn_icon_monkey_listprofile source monkey icons
worn_icon_state_listAssoc list of item slot to string - stores the worn icon state of the item in that slot
worn_icon_teshari_listProfile source vox icons
worn_icon_vox_listThe bra worn by the profile source

Var Details

age

The age of the profile source.

appearance_list

Assoc list of item slot to apperance - stores the appearance of every item of this profile.

athletics_level

The athleticism of the profile source.

bra

The bra worn by the profile source

bra_color

The color of the bra used by the profile source

dna

The DNA datum associated with our profile from the profile source

emissive_eyes

Does the profile source's eyes glow

exists_list

Assoc list of item slot to boolean - stores whether an item in that slot exists

eye_color_left

The profile source's left eye color

eye_color_right

The profile source's right eye color

flags_cover_list

Assoc list of item slot to flag - stores the flags_cover of every item of this profile.

id_icon

ID HUD icon associated with the profile

inhand_icon_state_list

Assoc list of item slot to file - stores the inhand file of the item in that slot

laugh_type

The profile source laugh type

lefthand_file_list

Assoc list of item slot to file - stores the lefthand file of the item in that slot

name

The name of the profile / the name of whoever this profile source.

name_list

Assoc list of item slot to item name - stores the name of every item of this profile.

physique

The body type of the profile source.

profile_snapshot

Icon snapshot of the profile

protected

Whether this profile is protected - if TRUE, it cannot be removed from a changeling's profiles without force

quirks

The quirks of the profile source.

righthand_file_list

Assoc list of item slot to file - stores the righthand file of the item in that slot

scream_type

The profile source scream type

skillchips

A list of paths for any skill chips the profile source had installed

socks

The socks worn by the profile source

socks_color

The color of the socks used by the profile source

stored_scars

What scars the profile sorce had, in string form (like persistent scars)

supports_variations_flags_list

Support variation flags used by the profile source

target_body_scaling

Profile source mob height

target_size

Profile source Mob Size

undershirt

The undershirt worn by the profile source

undershirt_color

The color of the undershirt used by the profile source

underwear

The underwear worn by the profile source

underwear_color

The colour of the underwear worn by the profile source

voice

The TTS voice of the profile source

voice_filter

The TTS filter of the profile filter

worn_icon_digi_list

Profile source digi leg icons

worn_icon_list

Assoc list of item slot to file - stores the worn icon file of the item in that slot

worn_icon_monkey_list

profile source monkey icons

worn_icon_state_list

Assoc list of item slot to string - stores the worn icon state of the item in that slot

worn_icon_teshari_list

Profile source vox icons

worn_icon_vox_list

The bra worn by the profile source

\ No newline at end of file diff --git a/datum/chasm_detritus.html b/datum/chasm_detritus.html new file mode 100644 index 0000000000000..c3fa025b29a65 --- /dev/null +++ b/datum/chasm_detritus.html @@ -0,0 +1,3 @@ +/datum/chasm_detritus - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chasm_detritus

A datum that retrieves something which fell into a chasm.

Vars

default_contentsStuff which you can always fish up even if nothing fell into a hole. Associative by type.
default_contents_chanceThe chance (out of 100) to fish out something from default_contents +even if there's something in GLOB.chasm_storage.
default_contents_keyKey to the list we want to use from default_contents.

Procs

determine_detritusReturns the chosen detritus from the given list of things to choose from
find_chasm_contentsReturns an object which is currently inside of a nearby chasm.

Var Details

default_contents

Stuff which you can always fish up even if nothing fell into a hole. Associative by type.

default_contents_chance

The chance (out of 100) to fish out something from default_contents +even if there's something in GLOB.chasm_storage.

default_contents_key

Key to the list we want to use from default_contents.

Proc Details

determine_detritus

Returns the chosen detritus from the given list of things to choose from

find_chasm_contents

Returns an object which is currently inside of a nearby chasm.

\ No newline at end of file diff --git a/datum/chasm_detritus/restricted.html b/datum/chasm_detritus/restricted.html new file mode 100644 index 0000000000000..9329acb50004e --- /dev/null +++ b/datum/chasm_detritus/restricted.html @@ -0,0 +1,4 @@ +/datum/chasm_detritus/restricted - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

restricted

Variant of the chasm detritus that allows for an easier time at fishing out +bodies, and sometimes less desireable monsters too.

Vars

chasm_storage_restricted_typeWhat type do we check for in the contents of the /obj/effect/abstract/chasm_storage +contained in the GLOB.chasm_storage global list in find_chasm_contents().

Var Details

chasm_storage_restricted_type

What type do we check for in the contents of the /obj/effect/abstract/chasm_storage +contained in the GLOB.chasm_storage global list in find_chasm_contents().

\ No newline at end of file diff --git a/datum/chasm_detritus/restricted/bodies.html b/datum/chasm_detritus/restricted/bodies.html new file mode 100644 index 0000000000000..b0b649f234927 --- /dev/null +++ b/datum/chasm_detritus/restricted/bodies.html @@ -0,0 +1,5 @@ +/datum/chasm_detritus/restricted/bodies - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bodies

Procs

determine_detritusBody detritus is selected in favor of bodies belonging to sentient mobs +The first sentient body found in the list of contents is returned, otherwise +if none are sentient choose randomly.
get_chasm_contentsThis also includes all mobs fallen into chasms, regardless of distance

Proc Details

determine_detritus

Body detritus is selected in favor of bodies belonging to sentient mobs +The first sentient body found in the list of contents is returned, otherwise +if none are sentient choose randomly.

get_chasm_contents

This also includes all mobs fallen into chasms, regardless of distance

\ No newline at end of file diff --git a/datum/chat_payload.html b/datum/chat_payload.html new file mode 100644 index 0000000000000..8321f2e48ce2d --- /dev/null +++ b/datum/chat_payload.html @@ -0,0 +1 @@ +/datum/chat_payload - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chat_payload

Stores information about a chat payload

Vars

contentMessage we are sending
resendsResend count
sequenceSequence number of this payload

Procs

get_content_as_htmlReturns an HTML-encoded message from our contents.
into_messageConverts the chat payload into a JSON string

Var Details

content

Message we are sending

resends

Resend count

sequence

Sequence number of this payload

Proc Details

get_content_as_html

Returns an HTML-encoded message from our contents.

into_message

Converts the chat payload into a JSON string

\ No newline at end of file diff --git a/datum/chatmessage.html b/datum/chatmessage.html new file mode 100644 index 0000000000000..31957a413504d --- /dev/null +++ b/datum/chatmessage.html @@ -0,0 +1,21 @@ +/datum/chatmessage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Chat Message Overlay

Datum for generating a message overlay on the map

Vars

animate_lifespanOur animation lifespan, how long this message will last
animate_startWhen we started animating the message
approx_linesContains the approximate amount of lines for height decay
current_z_idxThe current index used for adjusting the layer of each sequential chat message such that recent messages will overlay older ones
eol_completeContains the time that the EOL for the message will be complete, used for qdel scheduling
messageThe visual element of the chat message
message_locThe location in which the message is appearing
owned_byThe client who heard this message
scheduled_destructionContains the scheduled destruction time, used for scheduling EOL

Procs

NewConstructs a chat message overlay
finish_image_generationfinishes the image generation after the MeasureText() call in generate_image(). +necessary because after that call the proc can resume at the end of the tick and cause overtime.
generate_imageGenerates a chat message image representation
get_chat_color_stringGet the mob's chat color by looking up their name in the cached list, if no match is found default to colorize_string().
on_parent_qdelCalls qdel on the chatmessage when its parent is deleted, used to register qdel signal

Var Details

animate_lifespan

Our animation lifespan, how long this message will last

animate_start

When we started animating the message

approx_lines

Contains the approximate amount of lines for height decay

current_z_idx

The current index used for adjusting the layer of each sequential chat message such that recent messages will overlay older ones

eol_complete

Contains the time that the EOL for the message will be complete, used for qdel scheduling

message

The visual element of the chat message

message_loc

The location in which the message is appearing

owned_by

The client who heard this message

scheduled_destruction

Contains the scheduled destruction time, used for scheduling EOL

Proc Details

New

Constructs a chat message overlay

+

Arguments:

+

finish_image_generation

finishes the image generation after the MeasureText() call in generate_image(). +necessary because after that call the proc can resume at the end of the tick and cause overtime.

generate_image

Generates a chat message image representation

+

Arguments:

+

get_chat_color_string

Get the mob's chat color by looking up their name in the cached list, if no match is found default to colorize_string().

on_parent_qdel

Calls qdel on the chatmessage when its parent is deleted, used to register qdel signal

\ No newline at end of file diff --git a/datum/chemical_reaction.html b/datum/chemical_reaction.html new file mode 100644 index 0000000000000..b9b680b2ea73e --- /dev/null +++ b/datum/chemical_reaction.html @@ -0,0 +1,104 @@ +/datum/chemical_reaction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chemical_reaction

#Chemical Reaction

+

Datum that makes the magic between reagents happen.

+

Chemical reactions is a class that is instantiated and stored in a global list 'chemical_reactions_list'

Vars

H_ion_releasepH change per 1u reaction
determin_ph_rangeHow far out pH wil react, giving impurity place (Exponential phase)
erp_reactionWill this reaction be disabled by the ERP config being turned off?
is_cold_recipeSet to TRUE if you want the recipe to only react when it's BELOW the required temp.
mix_messageThe message shown to nearby people upon mixing, if applicable
mix_soundThe sound played upon mixing, if applicable
mob_reactDetermines if a chemical reaction can occur inside a mob
optimal_ph_maxHigest value for above
optimal_ph_minLowest value of pH determining pH a 1 value for pH based rate reactions (Plateu phase)
optimal_tempUpper end for above (i.e. the end of the curve section defined by temp_exponent_factor)
overheat_tempTemperature at which reaction explodes - If any reaction is this hot, it explodes!
ph_exponent_factorHow sharp the pH exponential curve is (to the power of value)
pollutant_amountHow much amount per volume of the pollutant shall we emitt if pollutant_type is defined
pollutant_typeIf defined, it'll emitt that pollutant on reaction
purity_minIf purity is below 0.15, it calls OverlyImpure() too. Set to 0 to disable this.
rate_up_limOptimal/max rate possible if all conditions are perfect
reaction_flagsbitflags for clear conversions; REACTION_CLEAR_IMPURE, REACTION_CLEAR_INVERSE, REACTION_CLEAR_RETAIN, REACTION_INSTANT
reaction_tagsTagging vars +A bitflag var for tagging reagents for the reagent loopup functon
required_catalystsRequired chemicals that must be present in the container but are not USED.
required_containerIf required_container_accepts_subtypes is FALSE, the exact type of what container this reaction can take place in. Otherwise, what type including subtypes are acceptable.
required_container_accepts_subtypesIf required_container will check for the exact type, or will also accept subtypes
required_otherSet this to true to call pre_reaction_other_checks() on react and do some more interesting reaction logic
required_reagentsRequired chemicals that are USED in the reaction
required_tempFermiChem! - See fermi_readme.md +Required temperature for the reaction to begin, for fermimechanics it defines the lower area of bell curve for determining heat based rate reactions, aka the minimum
resultsResults of the chemical reactions
temp_exponent_factorHow sharp the temperature exponential curve is (to the power of value)
thermic_constantHow much the temperature changes per unit of chem used. without REACTION_HEAT_ARBITARY flag the rate of change depends on the holder heat capacity else results are more accurate

Procs

chemical_mob_spawnMagical mob spawning when chemicals react
clear_productsClears the beaker of the product only
clear_reactantsClears the beaker of the reagents only +if volume is not set, it will remove all of the reactant
clear_reagentsClears the beaker of ALL reagents inside
default_explodeGeneric explosions/failures
explode_fireBEGIN FIRE BASED EXPLOSIONS
freeze_radiusEND FIRE BASED EXPLOSIONS
on_reactionShit that happens on reaction +Only procs at the START of a reaction +use reaction_step() for each step of a reaction +or reaction_end() when the reaction stops +If reaction_flags & REACTION_INSTANT then this is the only proc that is called.
overheatedOccurs when a reation is overheated (i.e. past its overheatTemp) +Will be called every tick in the reaction that it is overheated +If you want this to be a once only proc (i.e. the reaction is stopped after) set reaction.toDelete = TRUE +The above is useful if you're writing an explosion +By default the parent proc will reduce the final yield slightly. If you don't want that don't add ..()
overly_impureOccurs when a reation is too impure (i.e. it's below purity_min) +Will be called every tick in the reaction that it is too impure +If you want this to be a once only proc (i.e. the reaction is stopped after) set reaction.toDelete = TRUE +The above is useful if you're writing an explosion +By default the parent proc will reduce the purity of all reagents involved in the reaction in the beaker slightly. If you don't want that don't add ..()
pre_reaction_other_checksREACTION PROCS +Checks if this reaction can occur. Only is ran if required_other is set to TRUE.
reaction_clear_checkREACTION_CLEAR handler +If the reaction has the REACTION_CLEAR flag, then it will split using purity methods in the beaker instead
reaction_finishStuff that occurs at the end of a reaction. This will proc if the beaker is forced to stop and start again (say for sudden temperature changes). +Only procs at the END of reaction +If reaction_flags & REACTION_INSTANT then this isn't called +if reaction_flags REACTION_CLEAR_IMPURE then the impurity chem is handled here, producing the result in the beaker instead of in a mob +Likewise for REACTION_CLEAR_INVERSE the inverse chem is produced at the end of the reaction in the beaker +You should be calling ..() if you're writing a child function of this proc otherwise purity methods won't work correctly
reaction_stepStuff that occurs in the middle of a reaction +Only procs DURING a reaction +If reaction_flags & REACTION_INSTANT then this isn't called +returning END_REACTION will END the reaction

Var Details

H_ion_release

pH change per 1u reaction

determin_ph_range

How far out pH wil react, giving impurity place (Exponential phase)

erp_reaction

Will this reaction be disabled by the ERP config being turned off?

is_cold_recipe

Set to TRUE if you want the recipe to only react when it's BELOW the required temp.

mix_message

The message shown to nearby people upon mixing, if applicable

mix_sound

The sound played upon mixing, if applicable

mob_react

Determines if a chemical reaction can occur inside a mob

optimal_ph_max

Higest value for above

optimal_ph_min

Lowest value of pH determining pH a 1 value for pH based rate reactions (Plateu phase)

optimal_temp

Upper end for above (i.e. the end of the curve section defined by temp_exponent_factor)

overheat_temp

Temperature at which reaction explodes - If any reaction is this hot, it explodes!

ph_exponent_factor

How sharp the pH exponential curve is (to the power of value)

pollutant_amount

How much amount per volume of the pollutant shall we emitt if pollutant_type is defined

pollutant_type

If defined, it'll emitt that pollutant on reaction

purity_min

If purity is below 0.15, it calls OverlyImpure() too. Set to 0 to disable this.

rate_up_lim

Optimal/max rate possible if all conditions are perfect

reaction_flags

bitflags for clear conversions; REACTION_CLEAR_IMPURE, REACTION_CLEAR_INVERSE, REACTION_CLEAR_RETAIN, REACTION_INSTANT

reaction_tags

Tagging vars +A bitflag var for tagging reagents for the reagent loopup functon

required_catalysts

Required chemicals that must be present in the container but are not USED.

required_container

If required_container_accepts_subtypes is FALSE, the exact type of what container this reaction can take place in. Otherwise, what type including subtypes are acceptable.

required_container_accepts_subtypes

If required_container will check for the exact type, or will also accept subtypes

required_other

Set this to true to call pre_reaction_other_checks() on react and do some more interesting reaction logic

required_reagents

Required chemicals that are USED in the reaction

required_temp

FermiChem! - See fermi_readme.md +Required temperature for the reaction to begin, for fermimechanics it defines the lower area of bell curve for determining heat based rate reactions, aka the minimum

results

Results of the chemical reactions

temp_exponent_factor

How sharp the temperature exponential curve is (to the power of value)

thermic_constant

How much the temperature changes per unit of chem used. without REACTION_HEAT_ARBITARY flag the rate of change depends on the holder heat capacity else results are more accurate

Proc Details

chemical_mob_spawn

Magical mob spawning when chemicals react

+

Your go to proc when you want to create new mobs from chemicals. please dont use on_reaction. +Arguments:

+

clear_products

Clears the beaker of the product only

clear_reactants

Clears the beaker of the reagents only +if volume is not set, it will remove all of the reactant

clear_reagents

Clears the beaker of ALL reagents inside

default_explode

Generic explosions/failures

explode_fire

BEGIN FIRE BASED EXPLOSIONS

freeze_radius

END FIRE BASED EXPLOSIONS

on_reaction

Shit that happens on reaction +Only procs at the START of a reaction +use reaction_step() for each step of a reaction +or reaction_end() when the reaction stops +If reaction_flags & REACTION_INSTANT then this is the only proc that is called.

+

Proc where the additional magic happens. +You dont want to handle mob spawning in this since there is a dedicated proc for that.client +Arguments:

+

overheated

Occurs when a reation is overheated (i.e. past its overheatTemp) +Will be called every tick in the reaction that it is overheated +If you want this to be a once only proc (i.e. the reaction is stopped after) set reaction.toDelete = TRUE +The above is useful if you're writing an explosion +By default the parent proc will reduce the final yield slightly. If you don't want that don't add ..()

+

Arguments:

+

overly_impure

Occurs when a reation is too impure (i.e. it's below purity_min) +Will be called every tick in the reaction that it is too impure +If you want this to be a once only proc (i.e. the reaction is stopped after) set reaction.toDelete = TRUE +The above is useful if you're writing an explosion +By default the parent proc will reduce the purity of all reagents involved in the reaction in the beaker slightly. If you don't want that don't add ..()

+

Arguments:

+

pre_reaction_other_checks

REACTION PROCS +Checks if this reaction can occur. Only is ran if required_other is set to TRUE.

reaction_clear_check

REACTION_CLEAR handler +If the reaction has the REACTION_CLEAR flag, then it will split using purity methods in the beaker instead

+

Arguments:

+

reaction_finish

Stuff that occurs at the end of a reaction. This will proc if the beaker is forced to stop and start again (say for sudden temperature changes). +Only procs at the END of reaction +If reaction_flags & REACTION_INSTANT then this isn't called +if reaction_flags REACTION_CLEAR_IMPURE then the impurity chem is handled here, producing the result in the beaker instead of in a mob +Likewise for REACTION_CLEAR_INVERSE the inverse chem is produced at the end of the reaction in the beaker +You should be calling ..() if you're writing a child function of this proc otherwise purity methods won't work correctly

+

Proc where the additional magic happens. +You dont want to handle mob spawning in this since there is a dedicated proc for that.client +Arguments:

+

reaction_step

Stuff that occurs in the middle of a reaction +Only procs DURING a reaction +If reaction_flags & REACTION_INSTANT then this isn't called +returning END_REACTION will END the reaction

+

Arguments:

+ +

Outputs:

+
\ No newline at end of file diff --git a/datum/chemical_reaction/food.html b/datum/chemical_reaction/food.html new file mode 100644 index 0000000000000..ad984523c3b8a --- /dev/null +++ b/datum/chemical_reaction/food.html @@ -0,0 +1 @@ +/datum/chemical_reaction/food - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

food

FOOD MIXTURES

Vars

resulting_food_pathTypepath of food that is created on reaction
resulting_reagent_purityReagent purity of the result, calculated on reaction

Var Details

resulting_food_path

Typepath of food that is created on reaction

resulting_reagent_purity

Reagent purity of the result, calculated on reaction

\ No newline at end of file diff --git a/datum/chemical_reaction/food/soup.html b/datum/chemical_reaction/food/soup.html new file mode 100644 index 0000000000000..392630256cc73 --- /dev/null +++ b/datum/chemical_reaction/food/soup.html @@ -0,0 +1,28 @@ +/datum/chemical_reaction/food/soup - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

soup

Soup base chemical reaction.

+

Somewhat important note! Keep in mind one serving of soup is roughly 20-25 units. Adjust your results according.

+

Try to aim to have each reaction worth 3 servings of soup (60u - 90u). +By default soup reactions require 50 units of water, +and they will also inherent the reagents of the ingredients used, +so you might end up with more nutrient than you expect.

Vars

ingredient_reagent_multiplierMultiplier applied to all reagents transferred from reagents to pot when the soup is cooked
percentage_of_nutriment_convertedWhat percent of nutriment is converted to "soup" (what percent does not stay final product)? +Raise this if your ingredients have a lot of nutriment and is overpowering your other reagents +Lower this if your ingredients have a small amount of nutriment and isn't filling enough per serving +(EX: A tomato with 10 nutriment will lose 2.5 nutriment before being added to the pot)
required_ingredientsAn assoc list of what ingredients are necessary to how much is needed
total_ingredient_maxTracks the total number of ingredient items needed, for calculating multipliers. Only done once in first on_reaction

Procs

describe_recipe_detailsAdds text to the requirements list of the recipe +Return a list of strings, each string will be a new line in the requirements list
describe_resultAdds text to the results list of the recipe +Return a list of strings, each string will be a new line in the results list
transfer_ingredient_reagentsTransfers reagents from the passed reagent to the soup pot, as a "result" +Also handles deleting a portion of nutriment reagents present, pseudo-converting +it into soup reagent. Returns TRUE if any reagents were transfered FALSE if there is +nothing to transfer

Var Details

ingredient_reagent_multiplier

Multiplier applied to all reagents transferred from reagents to pot when the soup is cooked

percentage_of_nutriment_converted

What percent of nutriment is converted to "soup" (what percent does not stay final product)? +Raise this if your ingredients have a lot of nutriment and is overpowering your other reagents +Lower this if your ingredients have a small amount of nutriment and isn't filling enough per serving +(EX: A tomato with 10 nutriment will lose 2.5 nutriment before being added to the pot)

required_ingredients

An assoc list of what ingredients are necessary to how much is needed

total_ingredient_max

Tracks the total number of ingredient items needed, for calculating multipliers. Only done once in first on_reaction

Proc Details

describe_recipe_details

Adds text to the requirements list of the recipe +Return a list of strings, each string will be a new line in the requirements list

describe_result

Adds text to the results list of the recipe +Return a list of strings, each string will be a new line in the results list

transfer_ingredient_reagents

Transfers reagents from the passed reagent to the soup pot, as a "result" +Also handles deleting a portion of nutriment reagents present, pseudo-converting +it into soup reagent. Returns TRUE if any reagents were transfered FALSE if there is +nothing to transfer

+

Arguments

+
\ No newline at end of file diff --git a/datum/chemical_reaction/food/soup/custom.html b/datum/chemical_reaction/food/soup/custom.html new file mode 100644 index 0000000000000..b531589686843 --- /dev/null +++ b/datum/chemical_reaction/food/soup/custom.html @@ -0,0 +1,3 @@ +/datum/chemical_reaction/food/soup/custom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

custom

So this one's kind of a "failed" result, but also a "custom" result +Getting to this temperature and having no other soup reaction made means you're either messing something up +or you simply aren't following a recipe. So it'll just combine

Vars

num_ingredients_neededCustom recipes will not start mixing until at least this many solid ingredients are present

Var Details

num_ingredients_needed

Custom recipes will not start mixing until at least this many solid ingredients are present

\ No newline at end of file diff --git a/datum/chemical_reaction/food/soup/mysterysoup.html b/datum/chemical_reaction/food/soup/mysterysoup.html new file mode 100644 index 0000000000000..4a6a37c2842ff --- /dev/null +++ b/datum/chemical_reaction/food/soup/mysterysoup.html @@ -0,0 +1 @@ +/datum/chemical_reaction/food/soup/mysterysoup - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mysterysoup

Vars

extra_reagent_typesA list of reagent types we can randomly gain in the soup on creation
num_bonusNumber of units of bonus reagent added

Var Details

extra_reagent_types

A list of reagent types we can randomly gain in the soup on creation

num_bonus

Number of units of bonus reagent added

\ No newline at end of file diff --git a/datum/chemical_reaction/medicine/inacusiate.html b/datum/chemical_reaction/medicine/inacusiate.html new file mode 100644 index 0000000000000..a6b6cda9a8c55 --- /dev/null +++ b/datum/chemical_reaction/medicine/inacusiate.html @@ -0,0 +1 @@ +/datum/chemical_reaction/medicine/inacusiate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

inacusiate

Procs

overheatedCalls it over and over

Proc Details

overheated

Calls it over and over

\ No newline at end of file diff --git a/datum/chemical_reaction/randomized.html b/datum/chemical_reaction/randomized.html new file mode 100644 index 0000000000000..0e1d6720115f3 --- /dev/null +++ b/datum/chemical_reaction/randomized.html @@ -0,0 +1 @@ +/datum/chemical_reaction/randomized - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

randomized

Vars

exo_or_endothermicIf the reaction can be exothermic or endothermic randomly too
inoptimal_range_phHow much the range can deviate, and also affects impure range
max_phHighest pH value possible
min_phLowest pH value possible
randomize_impurity_minimumIf the impurity failure threshold is randomized between 0 - 0.4
randomize_impurity_reagentsIf the impure/inverse/failure reagents are randomized
randomize_req_phIf pH is randomised

Var Details

exo_or_endothermic

If the reaction can be exothermic or endothermic randomly too

inoptimal_range_ph

How much the range can deviate, and also affects impure range

max_ph

Highest pH value possible

min_ph

Lowest pH value possible

randomize_impurity_minimum

If the impurity failure threshold is randomized between 0 - 0.4

randomize_impurity_reagents

If the impure/inverse/failure reagents are randomized

randomize_req_ph

If pH is randomised

\ No newline at end of file diff --git a/datum/cinematic.html b/datum/cinematic.html new file mode 100644 index 0000000000000..adf04e1becf58 --- /dev/null +++ b/datum/cinematic.html @@ -0,0 +1,3 @@ +/datum/cinematic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cinematic

Cinematic datum. Used to show an animation to everyone.

Vars

cleanup_timeHow long for the final screen remains shown
is_globalWhether the cinematic is a global cinematic or not
lockedA list of all mobs who have TRAIT_NO_TRANSFORM set while watching the cinematic
screenRefernce to the cinematic screen shown to everyohne
special_callbackCallbacks passed that occur during the animation
stop_oocWhether the cinematic turns off ooc when played globally.
watchingA list of all clients watching the cinematic

Procs

clean_up_cinematicCleans up the cinematic after a set timer of it sticking on the end screen.
handle_replacement_cinematicsWhenever another cinematic starts to play over us, we have the chacne to block it.
invoke_special_callbackInvoke any special callbacks for actual effects synchronized with animation. +(Such as a real nuke explosion happening midway)
lock_mobLocks a mob, preventing them from moving, being hurt, or acting
play_cinematicThe actual cinematic occurs here.
play_cinematic_soundSimple helper for playing sounds from the cinematic.
remove_watcherRemoves the passed client from our watching list.
show_toWhenever a mob watching the cinematic logs in, show them the ongoing cinematic
start_cinematicActually goes through the process of showing the cinematic to the list of watchers.
stop_cinematicStops the cinematic and removes it from all the viewers.
unlock_mobUnlocks a previously locked weakref

Var Details

cleanup_time

How long for the final screen remains shown

is_global

Whether the cinematic is a global cinematic or not

locked

A list of all mobs who have TRAIT_NO_TRANSFORM set while watching the cinematic

screen

Refernce to the cinematic screen shown to everyohne

special_callback

Callbacks passed that occur during the animation

stop_ooc

Whether the cinematic turns off ooc when played globally.

watching

A list of all clients watching the cinematic

Proc Details

clean_up_cinematic

Cleans up the cinematic after a set timer of it sticking on the end screen.

handle_replacement_cinematics

Whenever another cinematic starts to play over us, we have the chacne to block it.

invoke_special_callback

Invoke any special callbacks for actual effects synchronized with animation. +(Such as a real nuke explosion happening midway)

lock_mob

Locks a mob, preventing them from moving, being hurt, or acting

play_cinematic

The actual cinematic occurs here.

play_cinematic_sound

Simple helper for playing sounds from the cinematic.

remove_watcher

Removes the passed client from our watching list.

show_to

Whenever a mob watching the cinematic logs in, show them the ongoing cinematic

start_cinematic

Actually goes through the process of showing the cinematic to the list of watchers.

stop_cinematic

Stops the cinematic and removes it from all the viewers.

unlock_mob

Unlocks a previously locked weakref

\ No newline at end of file diff --git a/datum/cinematic/nuke.html b/datum/cinematic/nuke.html new file mode 100644 index 0000000000000..bd386f1d46111 --- /dev/null +++ b/datum/cinematic/nuke.html @@ -0,0 +1 @@ +/datum/cinematic/nuke - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

nuke

Simple, base cinematic for all animations based around a nuke detonating.

Vars

after_nuke_summary_stateIf set, this is the summary screen that pops up after the nuke is done.

Procs

play_nuke_effectSpecific effects for each type of cinematics goes here.

Var Details

after_nuke_summary_state

If set, this is the summary screen that pops up after the nuke is done.

Proc Details

play_nuke_effect

Specific effects for each type of cinematics goes here.

\ No newline at end of file diff --git a/datum/circuit_composite_template.html b/datum/circuit_composite_template.html new file mode 100644 index 0000000000000..e529783172da1 --- /dev/null +++ b/datum/circuit_composite_template.html @@ -0,0 +1,14 @@ +/datum/circuit_composite_template - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

circuit_composite_template

A template used to make composite datatypes for circuits. +Used so that we don't have to generate every single possible combination of types

Vars

composite_datatype_pathThe path to the composite type
datatypeThe datatype this composite template is of.
expected_typesThe amount of composite datatypes needed to generate a datatype from this template
types_to_generateTypes to generate during initialization

Procs

InitializeUsed to generate composite types from anything that was generated +before global variables were all initialized. +Used for when composite datatypes are used in globally defined lists, before GLOB.circuit_datatypes is available.
generate_composite_typeGenerates a composite type using this template. Not recommended to use directly, use a define instead.
generate_nameGenerates a name for the datatype using the unique list of composite datatypes. +This should always generate a constant value for the input given as it is used as +the unique identifier

Var Details

composite_datatype_path

The path to the composite type

datatype

The datatype this composite template is of.

expected_types

The amount of composite datatypes needed to generate a datatype from this template

types_to_generate

Types to generate during initialization

Proc Details

Initialize

Used to generate composite types from anything that was generated +before global variables were all initialized. +Used for when composite datatypes are used in globally defined lists, before GLOB.circuit_datatypes is available.

generate_composite_type

Generates a composite type using this template. Not recommended to use directly, use a define instead.

+

Arguments:

+

generate_name

Generates a name for the datatype using the unique list of composite datatypes. +This should always generate a constant value for the input given as it is used as +the unique identifier

\ No newline at end of file diff --git a/datum/circuit_datatype.html b/datum/circuit_datatype.html new file mode 100644 index 0000000000000..e920a2dd6a017 --- /dev/null +++ b/datum/circuit_datatype.html @@ -0,0 +1,35 @@ +/datum/circuit_datatype - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

circuit_datatype

A circuit datatype. Used to determine the datatype of a port and also handle any additional behaviour.

Vars

abstractWhether this datatype should be loaded into the global circuit_datatypes list.
can_receive_fromThe datatypes that this datatype can receive from.
colorThe color of the port in the UI. Doesn't work with hex colours.
datatypeThe key. Used to identify the datatype. Should be a define.
datatype_flagsThe flags of the circuit datatype
is_extensiveWhether we should extensively convert this datatype, important for composite lists who may not have datatypes that need implicit conversions

Procs

can_receive_from_datatypeDetermines if a datatype is compatible with another port of a different type. +Note: This is ALWAYS called on the input port, never on the output port. +Inputs need to care about what types they're receiving, output ports don't have to care.
convert_valueReturns the value to be set for the port
convert_value_extensiveSimilar to convert value, however it doesn't get called by a port when a value is set. Useful for extensive conversions that may only need to be done for player inputs (e.g. lists)
datatype_ui_dataThe data to send to the UI attached to the port. Received by the type in FUNDAMENTAL_PORT_TYPES
get_datatypeUsed by composite datatypes. Returns a single datatype from the list if it exists by index.
get_datatypesUsed by composite datatypes. Returns all the datatypes that build this datatype up.
handle_manual_inputWhen an input is manually set by a player. This is where extra sanitizing can happen. Will still call convert_value()
is_compatibleDetermines if a port is compatible with this datatype. +This WILL throw a runtime if it returns false. This is for sanity checking and it should not return false +unless under extraordinary circumstances or people fail to write proper code.
on_gainCalled when the datatype is given to a port.
on_lossCalled when the datatype is removed from a port.

Var Details

abstract

Whether this datatype should be loaded into the global circuit_datatypes list.

can_receive_from

The datatypes that this datatype can receive from.

color

The color of the port in the UI. Doesn't work with hex colours.

datatype

The key. Used to identify the datatype. Should be a define.

datatype_flags

The flags of the circuit datatype

is_extensive

Whether we should extensively convert this datatype, important for composite lists who may not have datatypes that need implicit conversions

Proc Details

can_receive_from_datatype

Determines if a datatype is compatible with another port of a different type. +Note: This is ALWAYS called on the input port, never on the output port. +Inputs need to care about what types they're receiving, output ports don't have to care.

+

Arguments:

+

convert_value

Returns the value to be set for the port

+

Used for implicit conversions between outputs and inputs (e.g. number -> string) +and applying/removing signals on inputs

convert_value_extensive

Similar to convert value, however it doesn't get called by a port when a value is set. Useful for extensive conversions that may only need to be done for player inputs (e.g. lists)

datatype_ui_data

The data to send to the UI attached to the port. Received by the type in FUNDAMENTAL_PORT_TYPES

+

Arguments:

+

get_datatype

Used by composite datatypes. Returns a single datatype from the list if it exists by index.

get_datatypes

Used by composite datatypes. Returns all the datatypes that build this datatype up.

handle_manual_input

When an input is manually set by a player. This is where extra sanitizing can happen. Will still call convert_value()

+

Arguments:

+

is_compatible

Determines if a port is compatible with this datatype. +This WILL throw a runtime if it returns false. This is for sanity checking and it should not return false +unless under extraordinary circumstances or people fail to write proper code.

+

Arguments:

+

on_gain

Called when the datatype is given to a port.

+

Arguments:

+

on_loss

Called when the datatype is removed from a port.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/circuit_datatype/composite_instance.html b/datum/circuit_datatype/composite_instance.html new file mode 100644 index 0000000000000..1ed01f15ed57a --- /dev/null +++ b/datum/circuit_datatype/composite_instance.html @@ -0,0 +1 @@ +/datum/circuit_datatype/composite_instance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

composite_instance

A composite instance generated by a template

Vars

base_datatypeThe base datatype, used for comparisons
composite_datatypesThe composite datatypes that make this datatype up
composite_datatypes_styleA list composed of the composite datatypes sent to the UI.

Var Details

base_datatype

The base datatype, used for comparisons

composite_datatypes

The composite datatypes that make this datatype up

composite_datatypes_style

A list composed of the composite datatypes sent to the UI.

\ No newline at end of file diff --git a/datum/circuit_variable.html b/datum/circuit_variable.html new file mode 100644 index 0000000000000..e7084dfdc47ef --- /dev/null +++ b/datum/circuit_variable.html @@ -0,0 +1,2 @@ +/datum/circuit_variable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

circuit_variable

A circuit variable that holds the name, the datatype and the colour of the variable (taken from the datatype).

+

Used in integrated circuits for setter and getter circuit components.

Vars

colorThe colour that appears in the UI. The value is set to the datatype's matching colour
datatypeThe datatype of the circuit variable. Used by the setter and getter circuit components
datatype_handlerThe datatype handler for the circuit variable.
listenersThe components that are currently listening. Triggers them when the value is updated.
nameThe display name of the circuit variable
valueThe current value held by the variable.

Procs

add_listenerAdds a listener to receive inputs when the variable has a value that is set.
remove_listenerRemoves a listener to receive inputs when the variable has a value that is set. Listener will usually clean themselves up
set_valueSets the value of the circuit component and triggers the appropriate listeners

Var Details

color

The colour that appears in the UI. The value is set to the datatype's matching colour

datatype

The datatype of the circuit variable. Used by the setter and getter circuit components

datatype_handler

The datatype handler for the circuit variable.

listeners

The components that are currently listening. Triggers them when the value is updated.

name

The display name of the circuit variable

value

The current value held by the variable.

Proc Details

add_listener

Adds a listener to receive inputs when the variable has a value that is set.

remove_listener

Removes a listener to receive inputs when the variable has a value that is set. Listener will usually clean themselves up

set_value

Sets the value of the circuit component and triggers the appropriate listeners

\ No newline at end of file diff --git a/datum/client_colour.html b/datum/client_colour.html new file mode 100644 index 0000000000000..c76a5fe8851a5 --- /dev/null +++ b/datum/client_colour.html @@ -0,0 +1,10 @@ +/datum/client_colour - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

client_colour

Client Colour Priority System By RemieRichards (then refactored by another contributor) +A System that gives finer control over which client.colour value to display on screen +so that the "highest priority" one is always displayed as opposed to the default of +"whichever was set last is displayed".

+

Refactored to allow multiple overlapping client colours +(e.g. wearing blue glasses under a yellow visor, even though the result is a little unsatured.) +As well as some support for animated colour transitions.

+

Define subtypes of this datum

Vars

colourThe color we want to give to the client. This has to be either a hexadecimal color or a color matrix.
fade_inIF non-zero, 'animate_client_colour(fade_in)' will be called instead of 'update_client_colour' when added.
fade_outSame as above, but on removal.
overrideWill this client_colour prevent ones of lower priority from being applied?
ownerThe mob that owns this client_colour.
priorityWe prioritize colours with higher priority (lower numbers), so they don't get overriden by less important ones: +eg: "Bloody screen" > "goggles colour" as the former is much more important

Procs

update_colourSets a new colour, then updates the owner's screen colour.

Var Details

colour

The color we want to give to the client. This has to be either a hexadecimal color or a color matrix.

fade_in

IF non-zero, 'animate_client_colour(fade_in)' will be called instead of 'update_client_colour' when added.

fade_out

Same as above, but on removal.

override

Will this client_colour prevent ones of lower priority from being applied?

owner

The mob that owns this client_colour.

priority

We prioritize colours with higher priority (lower numbers), so they don't get overriden by less important ones: +eg: "Bloody screen" > "goggles colour" as the former is much more important

Proc Details

update_colour

Sets a new colour, then updates the owner's screen colour.

\ No newline at end of file diff --git a/datum/client_interface.html b/datum/client_interface.html new file mode 100644 index 0000000000000..fa103333f1320 --- /dev/null +++ b/datum/client_interface.html @@ -0,0 +1 @@ +/datum/client_interface - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

client_interface

This should match the interface of /client wherever necessary.

Vars

ckeyThe ckey for this mock interface
fpsclient prefs
keyThe key for this mock interface
mobThe mob the client controls
prefsPlayer preferences datum for the client
screenObjects on the screen of the client
viewThe view of the client, similar to /client/var/view.
view_sizeView data of the client, similar to /client/var/view_size.

Var Details

ckey

The ckey for this mock interface

fps

client prefs

key

The key for this mock interface

mob

The mob the client controls

prefs

Player preferences datum for the client

screen

Objects on the screen of the client

view

The view of the client, similar to /client/var/view.

view_size

View data of the client, similar to /client/var/view_size.

\ No newline at end of file diff --git a/datum/clockwork_research.html b/datum/clockwork_research.html new file mode 100644 index 0000000000000..c69e7e5cc4f9a --- /dev/null +++ b/datum/clockwork_research.html @@ -0,0 +1 @@ +/datum/clockwork_research - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

clockwork_research

Vars

area_blacklistAreas where you can't be tasked to start a ritual.
area_whitelistValid areas where a research ritual may happen
descDesc of the research
loreExtra fluff text for your research, moreso lore bits
nameName of the research node
researchedIf this has been researched
selected_areaA typepath of the area that this research's ritual must be done in.
startingIf this is a starting research
tierWhat tier this is
time_to_researchHow long this research's ritual will take to complete
unlocked_recipesList of tinker cache items it unlocks
unlocked_scripturesList of scriptures this unlocks

Procs

check_is_place_goodMakes sure the area that the atom is attempting to research, is the correct area as specified by the datum. Returns FALSE otherwise
on_researchCalled when a research datum is fully researched
set_new_areaPick an an area for this research to take place in
validate_areaMakes sure the selected area is correct, and regenerates it if not. Only gets one reattempt before defaulting to the base station area (allowing it to happen anywhere).

Var Details

area_blacklist

Areas where you can't be tasked to start a ritual.

area_whitelist

Valid areas where a research ritual may happen

desc

Desc of the research

lore

Extra fluff text for your research, moreso lore bits

name

Name of the research node

researched

If this has been researched

selected_area

A typepath of the area that this research's ritual must be done in.

starting

If this is a starting research

tier

What tier this is

time_to_research

How long this research's ritual will take to complete

unlocked_recipes

List of tinker cache items it unlocks

unlocked_scriptures

List of scriptures this unlocks

Proc Details

check_is_place_good

Makes sure the area that the atom is attempting to research, is the correct area as specified by the datum. Returns FALSE otherwise

on_research

Called when a research datum is fully researched

set_new_area

Pick an an area for this research to take place in

validate_area

Makes sure the selected area is correct, and regenerates it if not. Only gets one reattempt before defaulting to the base station area (allowing it to happen anywhere).

\ No newline at end of file diff --git a/datum/cogbar.html b/datum/cogbar.html new file mode 100644 index 0000000000000..348ad466c01cc --- /dev/null +++ b/datum/cogbar.html @@ -0,0 +1,2 @@ +/datum/cogbar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cogbar

Cogbar

+

Represents that the user is busy doing something.

Vars

blankThe blank image that overlaps the cog - hides it from the source user
cogThe visible element to other players
offset_yThe offset of the icon
userWho's doing the thing
user_clientThe user client

Procs

add_cog_to_userAdds the cog to the user, visible by other players
on_user_deleteWhen the user is deleted, remove the cog
removeRemoves the cog from the user

Var Details

blank

The blank image that overlaps the cog - hides it from the source user

cog

The visible element to other players

offset_y

The offset of the icon

user

Who's doing the thing

user_client

The user client

Proc Details

add_cog_to_user

Adds the cog to the user, visible by other players

on_user_delete

When the user is deleted, remove the cog

remove

Removes the cog from the user

\ No newline at end of file diff --git a/datum/colorblind_tester.html b/datum/colorblind_tester.html new file mode 100644 index 0000000000000..500e56e30df05 --- /dev/null +++ b/datum/colorblind_tester.html @@ -0,0 +1,11 @@ +/datum/colorblind_tester - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

colorblind_tester

Used to test the game for issues with different types of color blindness +WARNING ASSHOLE: Because we can only apply matrixes, and can't preform gamma correction +https://web.archive.org/web/20220227030606/https://ixora.io/projects/colorblindness/color-blindness-simulation-research/ +The results of this tool aren't perfect. It's way better then nothing, but IT IS NOT A PROPER SIMULATION +Please do not make us look like assholes by assuming it is. Thanks.

Vars

color_matrixesList of simulated blindness -> matrix to use +Most of these matrixes are based off https://web.archive.org/web/20220227030606/https://ixora.io/projects/colorblindness/color-blindness-simulation-research/ +AGAIN, THESE ARE NOT PERFECT BECAUSE WE CANNOT COMPUTE GAMMA CORRECTION, AND CONVERT SRGB TO LINEAR RGB +Do not assume this is absolute

Var Details

color_matrixes

List of simulated blindness -> matrix to use +Most of these matrixes are based off https://web.archive.org/web/20220227030606/https://ixora.io/projects/colorblindness/color-blindness-simulation-research/ +AGAIN, THESE ARE NOT PERFECT BECAUSE WE CANNOT COMPUTE GAMMA CORRECTION, AND CONVERT SRGB TO LINEAR RGB +Do not assume this is absolute

\ No newline at end of file diff --git a/datum/comm_log_entry.html b/datum/comm_log_entry.html new file mode 100644 index 0000000000000..e1d69b55d2f4d --- /dev/null +++ b/datum/comm_log_entry.html @@ -0,0 +1 @@ +/datum/comm_log_entry - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

comm_log_entry

Simple log entry datum for the telecommunication server

Vars

input_typeType of entry.
nameName of the entry.
parametersParameters extracted from the signal.

Var Details

input_type

Type of entry.

name

Name of the entry.

parameters

Parameters extracted from the signal.

\ No newline at end of file diff --git a/datum/command_report_menu.html b/datum/command_report_menu.html new file mode 100644 index 0000000000000..9f5619759945f --- /dev/null +++ b/datum/command_report_menu.html @@ -0,0 +1 @@ +/datum/command_report_menu - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

command_report_menu

Datum for holding the TGUI window for command reports.

Vars

announce_contentsWhether the report's contents are announced.
announcement_colorThe colour of the announcement when sent
command_nameThe name of central command that will accompany our report
command_report_contentThe actual contents of the report we're going to send.
custom_nameWhether we are using a custom name instead of a preset.
played_soundThe sound that's going to accompany our message.
preset_namesA static list of preset names that can be chosen.
print_reportWhether a copy of the report is printed at every console.
subheaderThe subheader to include when sending the announcement. Keep blank to not include a subheader
ui_userThe mob using the UI.

Var Details

announce_contents

Whether the report's contents are announced.

announcement_color

The colour of the announcement when sent

command_name

The name of central command that will accompany our report

command_report_content

The actual contents of the report we're going to send.

custom_name

Whether we are using a custom name instead of a preset.

played_sound

The sound that's going to accompany our message.

preset_names

A static list of preset names that can be chosen.

print_report

Whether a copy of the report is printed at every console.

subheader

The subheader to include when sending the announcement. Keep blank to not include a subheader

ui_user

The mob using the UI.

\ No newline at end of file diff --git a/datum/communciations_controller.html b/datum/communciations_controller.html new file mode 100644 index 0000000000000..e87359dba7ec4 --- /dev/null +++ b/datum/communciations_controller.html @@ -0,0 +1 @@ +/datum/communciations_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

communciations_controller

Vars

block_command_reportA counter of conditions that are blocking the command report from printing. Counter incremements up for every blocking condition, and de-incrememnts when it is complete.
captivity_areaThe location where the special xenomorph egg was planted
command_report_footnotesA list of footnote datums, to be added to the bottom of the roundstart command report.
soft_filteringAre we trying to send a cross-station message that contains soft-filtered words? If so, flip to TRUE to extend the time admins have to cancel the message.
xenomorph_egg_deliveredHas a special xenomorph egg been delivered?

Var Details

block_command_report

A counter of conditions that are blocking the command report from printing. Counter incremements up for every blocking condition, and de-incrememnts when it is complete.

captivity_area

The location where the special xenomorph egg was planted

command_report_footnotes

A list of footnote datums, to be added to the bottom of the roundstart command report.

soft_filtering

Are we trying to send a cross-station message that contains soft-filtered words? If so, flip to TRUE to extend the time admins have to cancel the message.

xenomorph_egg_delivered

Has a special xenomorph egg been delivered?

\ No newline at end of file diff --git a/datum/component.html b/datum/component.html new file mode 100644 index 0000000000000..147a7d8afd079 --- /dev/null +++ b/datum/component.html @@ -0,0 +1,39 @@ +/datum/component - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Component

The component datum

+

A component should be a single standalone unit +of functionality, that works by receiving signals from its parent +object to provide some single functionality (i.e a slippery component) +that makes the object it's attached to cause people to slip over. +Useful when you want shared behaviour independent of type inheritance

Vars

can_transferOnly set to true if you are able to properly transfer this component
dupe_modeDefines how duplicate existing components are handled when added to a datum
dupe_typeThe type to check for duplication
parentThe datum this components belongs to
sourcesA lazy list of the sources for this component

Procs

CheckDupeComponentCalled on a component when a component of the same type was added to the same parent with COMPONENT_DUPE_SELECTIVE
ClearFromParentRemoves the component from parent, ends up with a null parent +Used as a helper proc by the component transfer proc, does not clean up the component like Destroy does
DestroyProperly removes the component from parent and cleans up references
InheritComponentCalled on a component when a component of the same type was added to the same parent
InitializeCalled during component creation with the same arguments as in new excluding parent.
NewCreate a new component.
PostTransferCallback Just after a component is transferred
PreTransferCallback Just before this component is transferred
RegisterWithParentRegister the component with the parent object
UnregisterFromParentUnregister from our parent object
_GetInverseTypeListInternal proc to create a list of our type and all parent types
_JoinParentInternal proc to handle behaviour of components when joining a parent
_RemoveFromParentInternal proc to handle behaviour when being removed from a parent
on_source_addCalled when the component has a new source registered. +Return COMPONENT_INCOMPATIBLE to signal that the source is incompatible and should not be added
on_source_removeCalled when the component has a source removed. +You probably want to call parent after you do your logic because at the end of this we qdel if we have no sources remaining!
ui_hostReturn the object that is the host of any UI's that this component has

Var Details

can_transfer

Only set to true if you are able to properly transfer this component

+

At a minimum RegisterWithParent and UnregisterFromParent should be used

+

Make sure you also implement PostTransfer for any post transfer handling

dupe_mode

Defines how duplicate existing components are handled when added to a datum

+

See COMPONENT_DUPE_* definitions for available options

dupe_type

The type to check for duplication

+

null means exact match on type (default)

+

Any other type means that and all subtypes

parent

The datum this components belongs to

sources

A lazy list of the sources for this component

Proc Details

CheckDupeComponent

Called on a component when a component of the same type was added to the same parent with COMPONENT_DUPE_SELECTIVE

+

See /datum/component/var/dupe_mode

+

C's type will always be the same of the called component

+

return TRUE if you are absorbing the component, otherwise FALSE if you are fine having it exist as a duplicate component

ClearFromParent

Removes the component from parent, ends up with a null parent +Used as a helper proc by the component transfer proc, does not clean up the component like Destroy does

Destroy

Properly removes the component from parent and cleans up references

+

Arguments:

+

InheritComponent

Called on a component when a component of the same type was added to the same parent

+

See /datum/component/var/dupe_mode

+

C's type will always be the same of the called component

Initialize

Called during component creation with the same arguments as in new excluding parent.

+

Do not call qdel(src) from this function, return COMPONENT_INCOMPATIBLE instead

New

Create a new component.

+

Additional arguments are passed to Initialize()

+

Arguments:

+

PostTransfer

Callback Just after a component is transferred

+

Use this to do any special setup you need to do after being moved to a new object

+

Do not call qdel(src) from this function, return COMPONENT_INCOMPATIBLE instead

PreTransfer

Callback Just before this component is transferred

+

Use this to do any special cleanup you might need to do before being deregged from an object

RegisterWithParent

Register the component with the parent object

+

Use this proc to register with your parent object

+

Overridable proc that's called when added to a new parent

UnregisterFromParent

Unregister from our parent object

+

Use this proc to unregister from your parent object

+

Overridable proc that's called when removed from a parent

_GetInverseTypeList

Internal proc to create a list of our type and all parent types

_JoinParent

Internal proc to handle behaviour of components when joining a parent

_RemoveFromParent

Internal proc to handle behaviour when being removed from a parent

on_source_add

Called when the component has a new source registered. +Return COMPONENT_INCOMPATIBLE to signal that the source is incompatible and should not be added

on_source_remove

Called when the component has a source removed. +You probably want to call parent after you do your logic because at the end of this we qdel if we have no sources remaining!

ui_host

Return the object that is the host of any UI's that this component has

\ No newline at end of file diff --git a/datum/component/acid.html b/datum/component/acid.html new file mode 100644 index 0000000000000..b402078c5d6a0 --- /dev/null +++ b/datum/component/acid.html @@ -0,0 +1,5 @@ +/datum/component/acid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

acid

Component representing acid applied to an object. +Must be attached to an atom. +Processes, repeatedly damaging whatever it is attached to. +If the parent atom is a turf it applies acid to the contents of the turf. +If not being applied to a mob or turf, the atom must use the integrity system.

Vars

acid_overlayAcid overlay appearance we apply
acid_powerThe strength of the acid on the parent /atom.
acid_volumeThe volume of acid on the parent /atom.
max_volumeThe maximum volume of acid on the parent /atom.
parent_integrityUsed exclusively for melting turfs. TODO: Move integrity to the atom level so that this can be dealt with there.
particle_effectParticle holder for acid particles (sick)
process_effectThe proc used to handle the parent /atom when processing. TODO: Unify damage and resistance flags so that this doesn't need to exist!
sizzleThe ambient sound of acid eating away at the parent /atom.
stageHow far the acid melting of turfs has progressed
turf_acid_ignores_mobsBoolean for if we ignore mobs when applying acid to turf contents

Procs

InheritComponentAverages corrosive power and sums volume.
on_attack_handHandles searing the hand of anyone who tries to touch parent without protection.
on_cleanMakes it possible to clean acid off of objects.
on_enteredHandles searing the feet of whoever walks over this without protection. Only active if the parent is a turf.
on_examineAlerts any examiners to the acid on the parent atom.
on_expose_reagentHandles water diluting the acid on the object.
on_update_overlaysUsed to maintain the acid overlay on the parent /atom.
processHandles the slow corrosion of the parent /atom.
process_mobHandles processing on a /mob/living.
process_movableHandles processing on an /atom/movable (that uses atom_integrity).
process_turfHandles processing on a /turf.
set_volumeSets the acid volume to a new value. Limits the acid volume by the amount allowed to exist on the parent atom.

Var Details

acid_overlay

Acid overlay appearance we apply

acid_power

The strength of the acid on the parent /atom.

acid_volume

The volume of acid on the parent /atom.

max_volume

The maximum volume of acid on the parent /atom.

parent_integrity

Used exclusively for melting turfs. TODO: Move integrity to the atom level so that this can be dealt with there.

particle_effect

Particle holder for acid particles (sick)

process_effect

The proc used to handle the parent /atom when processing. TODO: Unify damage and resistance flags so that this doesn't need to exist!

sizzle

The ambient sound of acid eating away at the parent /atom.

stage

How far the acid melting of turfs has progressed

turf_acid_ignores_mobs

Boolean for if we ignore mobs when applying acid to turf contents

Proc Details

InheritComponent

Averages corrosive power and sums volume.

on_attack_hand

Handles searing the hand of anyone who tries to touch parent without protection.

on_clean

Makes it possible to clean acid off of objects.

on_entered

Handles searing the feet of whoever walks over this without protection. Only active if the parent is a turf.

on_examine

Alerts any examiners to the acid on the parent atom.

on_expose_reagent

Handles water diluting the acid on the object.

on_update_overlays

Used to maintain the acid overlay on the parent /atom.

process

Handles the slow corrosion of the parent /atom.

process_mob

Handles processing on a /mob/living.

process_movable

Handles processing on an /atom/movable (that uses atom_integrity).

process_turf

Handles processing on a /turf.

set_volume

Sets the acid volume to a new value. Limits the acid volume by the amount allowed to exist on the parent atom.

\ No newline at end of file diff --git a/datum/component/action_item_overlay.html b/datum/component/action_item_overlay.html new file mode 100644 index 0000000000000..6f3d3952d6418 --- /dev/null +++ b/datum/component/action_item_overlay.html @@ -0,0 +1,2 @@ +/datum/component/action_item_overlay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

action_item_overlay

Apply to an action to allow it to take an item +and apply it as an overlay of the action button

Vars

item_appearanceThe appearance of the item we've applied
item_callbackCallback that dictates what item the component uses to apply as an overlay.
item_refWeakref to what item the component uses to apply as an overlay.

Procs

on_overlays_appliedSignal proc for COMSIG_ACTION_OVERLAY_APPLY, applies the item appearance if possible.

Var Details

item_appearance

The appearance of the item we've applied

item_callback

Callback that dictates what item the component uses to apply as an overlay.

item_ref

Weakref to what item the component uses to apply as an overlay.

Proc Details

on_overlays_applied

Signal proc for COMSIG_ACTION_OVERLAY_APPLY, applies the item appearance if possible.

\ No newline at end of file diff --git a/datum/component/adjust_fishing_difficulty.html b/datum/component/adjust_fishing_difficulty.html new file mode 100644 index 0000000000000..f0229f2dced65 --- /dev/null +++ b/datum/component/adjust_fishing_difficulty.html @@ -0,0 +1 @@ +/datum/component/adjust_fishing_difficulty - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

adjust_fishing_difficulty

Influences the difficulty of the minigame when worn or if buckled to.

Vars

modifierThe additive numerical modifier to the difficulty of the minigame
slotsFor items, in which slot it has to be worn to influence the difficulty of the minigame

Var Details

modifier

The additive numerical modifier to the difficulty of the minigame

slots

For items, in which slot it has to be worn to influence the difficulty of the minigame

\ No newline at end of file diff --git a/datum/component/admin_popup.html b/datum/component/admin_popup.html new file mode 100644 index 0000000000000..4e2e963244363 --- /dev/null +++ b/datum/component/admin_popup.html @@ -0,0 +1,4 @@ +/datum/component/admin_popup - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

admin_popup

Applied to clients when they receive an admin popup, alerting them to +their ticket.

Vars

ticketThe user's most active ticket. If this is resolved, closed, or replied to, +then the component will delete itself.

Var Details

ticket

The user's most active ticket. If this is resolved, closed, or replied to, +then the component will delete itself.

\ No newline at end of file diff --git a/datum/component/aggro_emote.html b/datum/component/aggro_emote.html new file mode 100644 index 0000000000000..93bbcda824c58 --- /dev/null +++ b/datum/component/aggro_emote.html @@ -0,0 +1 @@ +/datum/component/aggro_emote - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

aggro_emote

A component for ai-controlled atoms which plays a sound if they switch to a living target which they can attack

Vars

emote_chanceChance to play an emote
emote_listList of emotes to play
living_onlyIf we want to limit emotes to only play at mobs
minimum_chanceMinimum chance to play an emote
subtract_chanceChance to subtract every time we play an emote (permanently)
target_keyBlackboard key in which target data is stored

Procs

on_target_changedWhen we get a new target, see if we want to bark at it

Var Details

emote_chance

Chance to play an emote

emote_list

List of emotes to play

living_only

If we want to limit emotes to only play at mobs

minimum_chance

Minimum chance to play an emote

subtract_chance

Chance to subtract every time we play an emote (permanently)

target_key

Blackboard key in which target data is stored

Proc Details

on_target_changed

When we get a new target, see if we want to bark at it

\ No newline at end of file diff --git a/datum/component/ai_listen_to_weather.html b/datum/component/ai_listen_to_weather.html new file mode 100644 index 0000000000000..7e3ce9563eda7 --- /dev/null +++ b/datum/component/ai_listen_to_weather.html @@ -0,0 +1 @@ +/datum/component/ai_listen_to_weather - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ai_listen_to_weather

given to a mob to set a key on or off when a storm is coming or ending

Vars

weather_keywhat blackboard key are we setting
weather_typewhat weather type are we listening to

Var Details

weather_key

what blackboard key are we setting

weather_type

what weather type are we listening to

\ No newline at end of file diff --git a/datum/component/ai_retaliate_advanced.html b/datum/component/ai_retaliate_advanced.html new file mode 100644 index 0000000000000..7bd5448560507 --- /dev/null +++ b/datum/component/ai_retaliate_advanced.html @@ -0,0 +1,3 @@ +/datum/component/ai_retaliate_advanced - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ai_retaliate_advanced

Attached to a mob with an AI controller, passes things which have damaged it to a blackboard. +The AI controller is responsible for doing anything with that information. +Differs from the element as it passes new entries through a callback.

Vars

post_retaliate_callbackCallback to a mob for custom behaviour

Procs

on_attackedAdd an attacking atom to a blackboard list of things which attacked us

Var Details

post_retaliate_callback

Callback to a mob for custom behaviour

Proc Details

on_attacked

Add an attacking atom to a blackboard list of things which attacked us

\ No newline at end of file diff --git a/datum/component/ai_target_timer.html b/datum/component/ai_target_timer.html new file mode 100644 index 0000000000000..92c372c6c22eb --- /dev/null +++ b/datum/component/ai_target_timer.html @@ -0,0 +1 @@ +/datum/component/ai_target_timer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ai_target_timer

Increments a blackboard key while the attached mob is engaged with a particular target, does nothing else on its own

Vars

increment_keyBlackboard key to store data inside
last_targetThe last target we had
reset_clock_timerTimer used to see if you
target_keyBlackboard key to watch to indicate whether we are 'in combat'
time_on_targetAmount of time we have spent focused on one target

Procs

changed_targetWhen we get a new target, reset the timer and start processing
finalise_losing_targetCalled if we have had no target for long enough
lost_targetWhen we lose our target, start a short timer in case we reacquire it very quickly
store_current_timeStore the current time on our timer in our blackboard key

Var Details

increment_key

Blackboard key to store data inside

last_target

The last target we had

reset_clock_timer

Timer used to see if you

target_key

Blackboard key to watch to indicate whether we are 'in combat'

time_on_target

Amount of time we have spent focused on one target

Proc Details

changed_target

When we get a new target, reset the timer and start processing

finalise_losing_target

Called if we have had no target for long enough

lost_target

When we lose our target, start a short timer in case we reacquire it very quickly

store_current_time

Store the current time on our timer in our blackboard key

\ No newline at end of file diff --git a/datum/component/ammo_hud.html b/datum/component/ammo_hud.html new file mode 100644 index 0000000000000..2eebf6819c774 --- /dev/null +++ b/datum/component/ammo_hud.html @@ -0,0 +1 @@ +/datum/component/ammo_hud - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ammo_hud

Procs

get_accurate_ammo_countReturns get_ammo() with the appropriate args passed to it - some guns like the revolver and bow are special cases

Proc Details

get_accurate_ammo_count

Returns get_ammo() with the appropriate args passed to it - some guns like the revolver and bow are special cases

\ No newline at end of file diff --git a/datum/component/amputating_limbs.html b/datum/component/amputating_limbs.html new file mode 100644 index 0000000000000..7a40f6ea41639 --- /dev/null +++ b/datum/component/amputating_limbs.html @@ -0,0 +1 @@ +/datum/component/amputating_limbs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

amputating_limbs

This component will intercept bare-handed attacks by the owner on sufficiently injured carbons and amputate random limbs instead

Vars

minimum_statHow awake must our target be?
pre_hit_callbackCallback for a proc right before confirming the attack. If it returns FALSE, cancel
snip_chanceHow likely are we to perform this action?
surgery_timeHow long does it take?
surgery_verbWhat is the means by which we describe the act of amputation?
target_zonesThe types of limb we can remove

Procs

amputateChop one off
try_amputateCalled when you click on literally anything with your hands, see if it is an injured carbon and then try to cut it up

Var Details

minimum_stat

How awake must our target be?

pre_hit_callback

Callback for a proc right before confirming the attack. If it returns FALSE, cancel

snip_chance

How likely are we to perform this action?

surgery_time

How long does it take?

surgery_verb

What is the means by which we describe the act of amputation?

target_zones

The types of limb we can remove

Proc Details

amputate

Chop one off

try_amputate

Called when you click on literally anything with your hands, see if it is an injured carbon and then try to cut it up

\ No newline at end of file diff --git a/datum/component/anti_magic.html b/datum/component/anti_magic.html new file mode 100644 index 0000000000000..c94aba6f9ed00 --- /dev/null +++ b/datum/component/anti_magic.html @@ -0,0 +1,21 @@ +/datum/component/anti_magic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

anti_magic

This provides different types of magic resistance on an object

Vars

alert_caster_on_equipWhether we should, on equipping, alert the caster that this item can block any of their spells +This changes between true and false on equip and drop, don't set it outright to something
antimagic_flagsA bitflag with the types of magic resistance on the object
chargesThe amount of times the object can protect the user from magic +Set to INFINITY to have, well, infinite charges.
drain_antimagicThe callback invoked when we have been drained a antimagic charge
expirationThe callback invoked when twe have been depleted of all charges
inventory_flagsThe inventory slot the object must be located at in order to activate

Procs

InitializeAdds magic resistances to an object
restrict_casting_magiccannot cast magic with the same type of antimagic present

Var Details

alert_caster_on_equip

Whether we should, on equipping, alert the caster that this item can block any of their spells +This changes between true and false on equip and drop, don't set it outright to something

antimagic_flags

A bitflag with the types of magic resistance on the object

charges

The amount of times the object can protect the user from magic +Set to INFINITY to have, well, infinite charges.

drain_antimagic

The callback invoked when we have been drained a antimagic charge

expiration

The callback invoked when twe have been depleted of all charges

inventory_flags

The inventory slot the object must be located at in order to activate

Proc Details

Initialize

Adds magic resistances to an object

+

Magic resistance will prevent magic from affecting the user if it has the correct resistance +against the type of magic being used

+

args:

+ +

antimagic bitflags: (see code/__DEFINES/magic.dm)

+

restrict_casting_magic

cannot cast magic with the same type of antimagic present

\ No newline at end of file diff --git a/datum/component/appearance_on_aggro.html b/datum/component/appearance_on_aggro.html new file mode 100644 index 0000000000000..7ecb27c4eceda --- /dev/null +++ b/datum/component/appearance_on_aggro.html @@ -0,0 +1 @@ +/datum/component/appearance_on_aggro - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

appearance_on_aggro

Changes visuals of the attached mob while it has a target

Vars

aggro_overlaypath of the overlay to apply
aggro_stateIcon state to use when we have a target
alpha_on_aggrovisibility of our icon when aggroed
alpha_on_deaggrovisibility of our icon when deaggroed
target_keyBlackboardey to search for a target

Var Details

aggro_overlay

path of the overlay to apply

aggro_state

Icon state to use when we have a target

alpha_on_aggro

visibility of our icon when aggroed

alpha_on_deaggro

visibility of our icon when deaggroed

target_key

Blackboardey to search for a target

\ No newline at end of file diff --git a/datum/component/aquarium_content.html b/datum/component/aquarium_content.html new file mode 100644 index 0000000000000..a08040b1921c5 --- /dev/null +++ b/datum/component/aquarium_content.html @@ -0,0 +1,13 @@ +/datum/component/aquarium_content - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

aquarium_content

Allows movables to be inserted/displayed in aquariums.

Vars

animation_update_signalsSignals of the parent that will trigger animation update
beautyThe current beauty this component gives to the aquarium it's in
current_animationFish sprite how to: +The aquarium icon state needs to be centered on 16,16 in the dmi and facing left by default. +sprite_width/sprite_height are the sizes it will have in aquarium and used to control animation boundaries. +Ideally these two vars represent the size of the aquarium icon state, but they can be one or two units shorter +to give more room for the visual to float around inside the aquarium, since the aquarium tank frame overlay will likely +cover the extra pixels anyway. +Currently playing animation
current_aquariumKeeps track of our current aquarium.
original_beautyThe original value of the beauty this component had when initialized
processingDoes this behviour need additional processing in aquarium, will be added to SSobj processing on insertion

Procs

change_aquarium_beautyModifies the beauty of the aquarium when content is added or removed, or when fishes die or live again somehow.
generate_animationSends a signal to the parent to get them to update the aquarium animation of the visual object
generate_base_vcGenerates common visual object, propeties that don't depend on aquarium surface
on_surface_changedAquarium surface changed in some way, we need to recalculate base position and aninmation

Var Details

animation_update_signals

Signals of the parent that will trigger animation update

beauty

The current beauty this component gives to the aquarium it's in

current_animation

Fish sprite how to: +The aquarium icon state needs to be centered on 16,16 in the dmi and facing left by default. +sprite_width/sprite_height are the sizes it will have in aquarium and used to control animation boundaries. +Ideally these two vars represent the size of the aquarium icon state, but they can be one or two units shorter +to give more room for the visual to float around inside the aquarium, since the aquarium tank frame overlay will likely +cover the extra pixels anyway. +Currently playing animation

current_aquarium

Keeps track of our current aquarium.

original_beauty

The original value of the beauty this component had when initialized

processing

Does this behviour need additional processing in aquarium, will be added to SSobj processing on insertion

Proc Details

change_aquarium_beauty

Modifies the beauty of the aquarium when content is added or removed, or when fishes die or live again somehow.

generate_animation

Sends a signal to the parent to get them to update the aquarium animation of the visual object

generate_base_vc

Generates common visual object, propeties that don't depend on aquarium surface

on_surface_changed

Aquarium surface changed in some way, we need to recalculate base position and aninmation

\ No newline at end of file diff --git a/datum/component/area_based_godmode.html b/datum/component/area_based_godmode.html new file mode 100644 index 0000000000000..9dc424f61fb30 --- /dev/null +++ b/datum/component/area_based_godmode.html @@ -0,0 +1,2 @@ +/datum/component/area_based_godmode - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

area_based_godmode

Area-based godmode. +Gain and Lose message can only be set once, at initial component creation; adding a source will not update them.

Vars

allow_area_subtypesWhether or not to allow subtypes of the area type to trigger godmode.
check_area_cached_stateCached state of check_area, prevents recalculating on source add
gain_messageThe message to send to the mob when they gain godmode.
lose_messageThe message to send to the mob when they lose godmode.
sources_to_area_typeThe type of area that will trigger godmode.

Var Details

allow_area_subtypes

Whether or not to allow subtypes of the area type to trigger godmode.

check_area_cached_state

Cached state of check_area, prevents recalculating on source add

gain_message

The message to send to the mob when they gain godmode.

lose_message

The message to send to the mob when they lose godmode.

sources_to_area_type

The type of area that will trigger godmode.

\ No newline at end of file diff --git a/datum/component/area_sound_manager.html b/datum/component/area_sound_manager.html new file mode 100644 index 0000000000000..32fd8ae5195e2 --- /dev/null +++ b/datum/component/area_sound_manager.html @@ -0,0 +1 @@ +/datum/component/area_sound_manager - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

area_sound_manager

Allows you to set a theme for a set of areas without tying them to looping sounds explicitly

Vars

accepted_zsA list of "acceptable" z levels to be on. If you leave this, we're gonna delete ourselves
area_to_looping_typearea -> looping sound type
our_loopCurrent sound loop
timeridThe timer id of our current start delay, if it exists

Var Details

accepted_zs

A list of "acceptable" z levels to be on. If you leave this, we're gonna delete ourselves

area_to_looping_type

area -> looping sound type

our_loop

Current sound loop

timerid

The timer id of our current start delay, if it exists

\ No newline at end of file diff --git a/datum/component/armament.html b/datum/component/armament.html new file mode 100644 index 0000000000000..b58cfcf8eb128 --- /dev/null +++ b/datum/component/armament.html @@ -0,0 +1,2 @@ +/datum/component/armament - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

armament

This is the component that runs the armaments vendor.

+

It's intended to be used with the armament vendor, or other atoms that otherwise aren't vending machines.

Vars

inserted_cardThe points card that is currently inserted into the parent.
parent_atomOur parent machine.
productsThe types of armament datums we wish to add to this component.
purchased_itemsUsed to keep track of what items have been purchased.
required_accessWhat access do we require to use this machine?
used_categoriesUsed to keep track of what categories have been used.

Var Details

inserted_card

The points card that is currently inserted into the parent.

parent_atom

Our parent machine.

products

The types of armament datums we wish to add to this component.

purchased_items

Used to keep track of what items have been purchased.

required_access

What access do we require to use this machine?

used_categories

Used to keep track of what categories have been used.

\ No newline at end of file diff --git a/datum/component/armament/company_imports.html b/datum/component/armament/company_imports.html new file mode 100644 index 0000000000000..5f6400080aa20 --- /dev/null +++ b/datum/component/armament/company_imports.html @@ -0,0 +1 @@ +/datum/component/armament/company_imports - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

company_imports

Vars

ammo_purchase_numSelected amount of ammo to purchase
console_stateTo cut down on redundant istypes(), what this component is attached to
parent_progIf this is a tablet, the parent budgetordering
radio_cooldownCooldown to announce a requested order
self_paidIs this set to private order

Var Details

ammo_purchase_num

Selected amount of ammo to purchase

console_state

To cut down on redundant istypes(), what this component is attached to

parent_prog

If this is a tablet, the parent budgetordering

radio_cooldown

Cooldown to announce a requested order

self_paid

Is this set to private order

\ No newline at end of file diff --git a/datum/component/armor_plate.html b/datum/component/armor_plate.html new file mode 100644 index 0000000000000..ea47c49b1afa6 --- /dev/null +++ b/datum/component/armor_plate.html @@ -0,0 +1 @@ +/datum/component/armor_plate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

armor_plate

Vars

amountThe current number of upgrades applied to the parent via this component.
armor_modTHe armor datum path for our upgrade values. This value is added per upgrade item applied
have_upgradedTracks whether or not we've received an upgrade or not.
maxamountThe maximum number of upgarde items that can be applied. Once var/amount reaches this value, no more upgrades can be applied
upgrade_itemTHe path for our upgrade item. Each one is expended to improve the parent's armor values.
upgrade_nameThe name of the upgrade item.
upgrade_prefixAdds a prefix to the item, demonstrating that it is upgraded in some way.

Var Details

amount

The current number of upgrades applied to the parent via this component.

armor_mod

THe armor datum path for our upgrade values. This value is added per upgrade item applied

have_upgraded

Tracks whether or not we've received an upgrade or not.

maxamount

The maximum number of upgarde items that can be applied. Once var/amount reaches this value, no more upgrades can be applied

upgrade_item

THe path for our upgrade item. Each one is expended to improve the parent's armor values.

upgrade_name

The name of the upgrade item.

upgrade_prefix

Adds a prefix to the item, demonstrating that it is upgraded in some way.

\ No newline at end of file diff --git a/datum/component/ash_age.html b/datum/component/ash_age.html new file mode 100644 index 0000000000000..41e46ee914929 --- /dev/null +++ b/datum/component/ash_age.html @@ -0,0 +1,5 @@ +/datum/component/ash_age - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ash_age

20 minutes = ash storm immunity +40 minutes = armor +60 minutes = base punch +80 minutes = lavaproof +100 minutes = firebreath

Vars

current_stagethe current stage of the ash
evo_timethe time when upgraded/attached
human_targetthe human target the element is attached to
stage_timethe amount of minutes after each upgrade

Var Details

current_stage

the current stage of the ash

evo_time

the time when upgraded/attached

human_target

the human target the element is attached to

stage_time

the amount of minutes after each upgrade

\ No newline at end of file diff --git a/datum/component/ash_cursed.html b/datum/component/ash_cursed.html new file mode 100644 index 0000000000000..4f5c20fa57451 --- /dev/null +++ b/datum/component/ash_cursed.html @@ -0,0 +1 @@ +/datum/component/ash_cursed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ash_cursed

Vars

human_targetthe person who is targeted by the curse

Var Details

human_target

the person who is targeted by the curse

\ No newline at end of file diff --git a/datum/component/atmos_reaction_recorder.html b/datum/component/atmos_reaction_recorder.html new file mode 100644 index 0000000000000..f34fc9ac211cf --- /dev/null +++ b/datum/component/atmos_reaction_recorder.html @@ -0,0 +1,11 @@ +/datum/component/atmos_reaction_recorder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

atmos_reaction_recorder

Component for atmos-related atoms to be able to record and transmit their reaction_results data +Use this ONLY for atoms, gasmixtures will be accessed by calling return air on the object. +Add this component after gasmixes has been initialized.

Vars

copied_reaction_resultsThe list we write append each reaction tick to. +This is often a list initialized by something else (passed as a reference under Initialize).
registered_signalsSignals we have been listening to.

Procs

InitializeVerify that parent is indeed an atom, and then register signals. +Args:
update_dataFetches reaction_results and updates the list.

Var Details

copied_reaction_results

The list we write append each reaction tick to. +This is often a list initialized by something else (passed as a reference under Initialize).

registered_signals

Signals we have been listening to.

Proc Details

Initialize

Verify that parent is indeed an atom, and then register signals. +Args:

+

update_data

Fetches reaction_results and updates the list.

\ No newline at end of file diff --git a/datum/component/aura_healing.html b/datum/component/aura_healing.html new file mode 100644 index 0000000000000..8a70a7a4aaaa6 --- /dev/null +++ b/datum/component/aura_healing.html @@ -0,0 +1,4 @@ +/datum/component/aura_healing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

aura_healing

Applies healing to those in the area. +Will provide them with an alert while they're in range, as well as +give them a healing particle. +Can be applied to those only with a trait conditionally.

Vars

blood_healAmount of blood to heal over a second
brute_healBrute damage to heal over a second
burn_healBurn damage to heal over a second
current_alertsA list of being healed to active alerts
healing_colorThe color to give the healing visual
last_heal_effect_timeCooldown between showing the heal effect
limit_to_traitTrait to limit healing to, if set
organ_healingMap of organ (such as ORGAN_SLOT_BRAIN) to damage heal over a second
rangeThe range of which to heal
requires_visibilityWhether or not you must be a visible object of the parent
simple_healAmount of damage to heal on simple mobs over a second
stamina_healStamina damage to heal over a second
suffocation_healSuffocation damage to heal over a second
toxin_healToxin damage to heal over a second
wound_clottingAmount of bleed/pierce wound lowering per second.

Var Details

blood_heal

Amount of blood to heal over a second

brute_heal

Brute damage to heal over a second

burn_heal

Burn damage to heal over a second

current_alerts

A list of being healed to active alerts

healing_color

The color to give the healing visual

last_heal_effect_time

Cooldown between showing the heal effect

limit_to_trait

Trait to limit healing to, if set

organ_healing

Map of organ (such as ORGAN_SLOT_BRAIN) to damage heal over a second

range

The range of which to heal

requires_visibility

Whether or not you must be a visible object of the parent

simple_heal

Amount of damage to heal on simple mobs over a second

stamina_heal

Stamina damage to heal over a second

suffocation_heal

Suffocation damage to heal over a second

toxin_heal

Toxin damage to heal over a second

wound_clotting

Amount of bleed/pierce wound lowering per second.

\ No newline at end of file diff --git a/datum/component/automatic_fire.html b/datum/component/automatic_fire.html new file mode 100644 index 0000000000000..7c32d773ed574 --- /dev/null +++ b/datum/component/automatic_fire.html @@ -0,0 +1,3 @@ +/datum/component/automatic_fire - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

automatic_fire

Vars

allow_akimboShould dual wielding be allowed?
autofire_shot_delayTime between individual shots.
current_windup_reductionthe reduction to shot delay for windup
mouse_statusThis seems hacky but there can be two MouseDown() without a MouseUp() in between if the user holds click and uses alt+tab, printscreen or similar.
timeridTimer for tracking the spindown reset timings
windup_autofirewindup autofire vars +Whether the delay between shots increases over time, simulating a spooling weapon
windup_autofire_capHow high of a reduction that current_windup_reduction can reach
windup_autofire_reduction_multiplierthe percentage of autfire_shot_delay that is added to current_windup_reduction
windup_spindownHow long it takes for weapons that have spooled-up to reset back to the original firing speed

Procs

start_autofiringBecause autofire weapons bypass do_fire() they will also bypass the safety check unless we do it here
windup_resetReset for our windup, resetting everything back to initial values after a variable set amount of time (determined by var/windup_spindown).

Var Details

allow_akimbo

Should dual wielding be allowed?

autofire_shot_delay

Time between individual shots.

current_windup_reduction

the reduction to shot delay for windup

mouse_status

This seems hacky but there can be two MouseDown() without a MouseUp() in between if the user holds click and uses alt+tab, printscreen or similar.

timerid

Timer for tracking the spindown reset timings

windup_autofire

windup autofire vars +Whether the delay between shots increases over time, simulating a spooling weapon

windup_autofire_cap

How high of a reduction that current_windup_reduction can reach

windup_autofire_reduction_multiplier

the percentage of autfire_shot_delay that is added to current_windup_reduction

windup_spindown

How long it takes for weapons that have spooled-up to reset back to the original firing speed

Proc Details

start_autofiring

Because autofire weapons bypass do_fire() they will also bypass the safety check unless we do it here

windup_reset

Reset for our windup, resetting everything back to initial values after a variable set amount of time (determined by var/windup_spindown).

\ No newline at end of file diff --git a/datum/component/avatar_connection.html b/datum/component/avatar_connection.html new file mode 100644 index 0000000000000..dd40761e9d210 --- /dev/null +++ b/datum/component/avatar_connection.html @@ -0,0 +1,2 @@ +/datum/component/avatar_connection - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

avatar_connection

Essentially temporary body with a twist - the virtual domain variant uses damage connections, +listens for vdom relevant signals.

Vars

netpod_refThe netpod the avatar is in
old_body_refThe person in the netpod
old_mind_refThe mind of the person in the netpod
server_refThe server connected to the netpod

Procs

full_avatar_disconnectDisconnects the avatar and returns the mind to the old_body.
on_domain_completedTriggers whenever the server gets a loot crate pushed to goal area
on_linked_damageTransfers damage from the avatar to the old_body
on_mind_transferHandles minds being swapped around in subsequent avatars
on_netpod_crowbarTriggers when someone starts prying open our netpod
on_netpod_damagedTriggers when the netpod is taking damage and is under 50%
on_safe_disconnectTriggers when a safe disconnect is called
on_sever_connectionReceived message to sever connection
on_shutting_downTriggers when the server is shutting down
on_station_spawnTriggers whenever an antag steps onto an exit turf and the server is emagged
on_threat_createdServer has spawned a ghost role threat
return_to_old_bodyReturns the mind to the old body

Var Details

netpod_ref

The netpod the avatar is in

old_body_ref

The person in the netpod

old_mind_ref

The mind of the person in the netpod

server_ref

The server connected to the netpod

Proc Details

full_avatar_disconnect

Disconnects the avatar and returns the mind to the old_body.

on_domain_completed

Triggers whenever the server gets a loot crate pushed to goal area

on_linked_damage

Transfers damage from the avatar to the old_body

on_mind_transfer

Handles minds being swapped around in subsequent avatars

on_netpod_crowbar

Triggers when someone starts prying open our netpod

on_netpod_damaged

Triggers when the netpod is taking damage and is under 50%

on_safe_disconnect

Triggers when a safe disconnect is called

on_sever_connection

Received message to sever connection

on_shutting_down

Triggers when the server is shutting down

on_station_spawn

Triggers whenever an antag steps onto an exit turf and the server is emagged

on_threat_created

Server has spawned a ghost role threat

return_to_old_body

Returns the mind to the old body

\ No newline at end of file diff --git a/datum/component/bakeable.html b/datum/component/bakeable.html new file mode 100644 index 0000000000000..718fb675219c7 --- /dev/null +++ b/datum/component/bakeable.html @@ -0,0 +1 @@ +/datum/component/bakeable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bakeable

This component indicates this object can be baked in an oven.

Vars

added_reagentsReagents that should be added to the result
bake_resultResult atom type of baking this object
current_bake_timeTime spent baking so far
positive_resultIs this a positive bake result?
required_bake_timeAmount of time required to bake the food
who_baked_usREF() to the mind which placed us in an oven

Procs

finish_bakingRan when an object finished baking
on_bakeRan every time an item is baked by something
on_baking_startSignal proc for [COMSIG_ITEM_OVEN_PLACED_IN] when baking starts (parent enters an oven)
on_examineGives info about the items baking status so you can see if its almost done

Var Details

added_reagents

Reagents that should be added to the result

bake_result

Result atom type of baking this object

current_bake_time

Time spent baking so far

positive_result

Is this a positive bake result?

required_bake_time

Amount of time required to bake the food

who_baked_us

REF() to the mind which placed us in an oven

Proc Details

finish_baking

Ran when an object finished baking

on_bake

Ran every time an item is baked by something

on_baking_start

Signal proc for [COMSIG_ITEM_OVEN_PLACED_IN] when baking starts (parent enters an oven)

on_examine

Gives info about the items baking status so you can see if its almost done

\ No newline at end of file diff --git a/datum/component/banned_from_space.html b/datum/component/banned_from_space.html new file mode 100644 index 0000000000000..398f290655d36 --- /dev/null +++ b/datum/component/banned_from_space.html @@ -0,0 +1 @@ +/datum/component/banned_from_space - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

banned_from_space

Following recent tomfoolery, we've decided to ban you from space.

Vars

max_tile_list_sizeThe max amount of tiles we store
tilesList of recent tiles we walked on that aren't space

Var Details

max_tile_list_size

The max amount of tiles we store

tiles

List of recent tiles we walked on that aren't space

\ No newline at end of file diff --git a/datum/component/basic_inhands.html b/datum/component/basic_inhands.html new file mode 100644 index 0000000000000..66b0830ded293 --- /dev/null +++ b/datum/component/basic_inhands.html @@ -0,0 +1 @@ +/datum/component/basic_inhands - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

basic_inhands

Basic handling for showing held items in a mob's hands

Vars

cached_overlaysWhat overlays are we currently showing?
display_layerLayer index we show our inhands upon
x_offsetX offset to apply to inhands, is inverted for the left hand
y_offsetY offset to apply to inhands

Procs

on_updated_held_itemsWhen your number of held items changes, regenerate held icons
on_updated_overlaysWhen your overlays update, add your held overlays

Var Details

cached_overlays

What overlays are we currently showing?

display_layer

Layer index we show our inhands upon

x_offset

X offset to apply to inhands, is inverted for the left hand

y_offset

Y offset to apply to inhands

Proc Details

on_updated_held_items

When your number of held items changes, regenerate held icons

on_updated_overlays

When your overlays update, add your held overlays

\ No newline at end of file diff --git a/datum/component/basic_mob_ability_telegraph.html b/datum/component/basic_mob_ability_telegraph.html new file mode 100644 index 0000000000000..25b2f8b4932b7 --- /dev/null +++ b/datum/component/basic_mob_ability_telegraph.html @@ -0,0 +1 @@ +/datum/component/basic_mob_ability_telegraph - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

basic_mob_ability_telegraph

Component given to creatures to telegraph their abilities!

Vars

currently_telegraphingare we currently telegraphing
sound_pathsound to play, if any
telegraph_timehow long before we use our attack

Procs

generate_tell_signsgenerates the telegraph signs to inform the player we're about to launch an attack
on_ability_activatedelay the ability
use_abilityuse the ability

Var Details

currently_telegraphing

are we currently telegraphing

sound_path

sound to play, if any

telegraph_time

how long before we use our attack

Proc Details

generate_tell_signs

generates the telegraph signs to inform the player we're about to launch an attack

on_ability_activate

delay the ability

use_ability

use the ability

\ No newline at end of file diff --git a/datum/component/basic_mob_attack_telegraph.html b/datum/component/basic_mob_attack_telegraph.html new file mode 100644 index 0000000000000..9105ab9737e92 --- /dev/null +++ b/datum/component/basic_mob_attack_telegraph.html @@ -0,0 +1 @@ +/datum/component/basic_mob_attack_telegraph - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

basic_mob_attack_telegraph

Delays outgoing attacks which are directed at mobs to give players time to get out of the way

Vars

current_targetOur current target, if we have one
on_began_forecastCallback executed when we start aiming at something
target_overlayOverlay which we display over targets
telegraph_durationTime to wait before attack can complete

Procs

delayed_attackPerform an attack after a delay
forget_targetThe guy we're trying to attack isn't a valid target any more
on_attackWhen we attempt to attack, check if it is allowed
target_movedThe guy we're trying to attack moved, is he still in range?

Var Details

current_target

Our current target, if we have one

on_began_forecast

Callback executed when we start aiming at something

target_overlay

Overlay which we display over targets

telegraph_duration

Time to wait before attack can complete

Proc Details

delayed_attack

Perform an attack after a delay

forget_target

The guy we're trying to attack isn't a valid target any more

on_attack

When we attempt to attack, check if it is allowed

target_moved

The guy we're trying to attack moved, is he still in range?

\ No newline at end of file diff --git a/datum/component/basic_ranged_ready_overlay.html b/datum/component/basic_ranged_ready_overlay.html new file mode 100644 index 0000000000000..89c79e1934578 --- /dev/null +++ b/datum/component/basic_ranged_ready_overlay.html @@ -0,0 +1,2 @@ +/datum/component/basic_ranged_ready_overlay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

basic_ranged_ready_overlay

Fade in an overlay x seconds after a basic mob makes a ranged attack +Indicates that it will be ready to fire again

Vars

display_afterTime after which to redisplay the overlay
overlay_stateIcon state for the overlay to display
waiting_timerTimer tracking when we can next fire

Procs

on_ranged_attackWhen we shoot, get rid of our overlay and queue its return
on_stat_changedDon't show overlay on a dead man
restore_overlayTry putting our overlay back

Var Details

display_after

Time after which to redisplay the overlay

overlay_state

Icon state for the overlay to display

waiting_timer

Timer tracking when we can next fire

Proc Details

on_ranged_attack

When we shoot, get rid of our overlay and queue its return

on_stat_changed

Don't show overlay on a dead man

restore_overlay

Try putting our overlay back

\ No newline at end of file diff --git a/datum/component/bayonet_attachable.html b/datum/component/bayonet_attachable.html new file mode 100644 index 0000000000000..17a6e541f9cf4 --- /dev/null +++ b/datum/component/bayonet_attachable.html @@ -0,0 +1,6 @@ +/datum/component/bayonet_attachable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bayonet_attachable

Component which allows you to attach a bayonet to an item, +be it a piece of clothing or a tool.

Vars

allow_sawnoffIf this component allows sawing off the parent gun/should be deleted when the parent gun is sawn off
bayonetCurrently attached bayonet
bayonet_icon_stateIf passed, we wil simply update our item's icon_state when a bayonet is attached. +Formatted as parent_base_state-[bayonet_icon_state-state]
bayonet_overlayIf passed, we will use a specific overlay instead of using the knife itself +The state to take from the bayonet overlay icon if supplied.
bayonet_overlay_iconThis is the icon file it grabs the overlay from.
offset_xOffsets for the bayonet overlay
removableWhenever we can remove the bayonet with a screwdriver
valid_bayonetsStatic typecache of all knives that can become bayonets

Var Details

allow_sawnoff

If this component allows sawing off the parent gun/should be deleted when the parent gun is sawn off

bayonet

Currently attached bayonet

bayonet_icon_state

If passed, we wil simply update our item's icon_state when a bayonet is attached. +Formatted as parent_base_state-[bayonet_icon_state-state]

bayonet_overlay

If passed, we will use a specific overlay instead of using the knife itself +The state to take from the bayonet overlay icon if supplied.

bayonet_overlay_icon

This is the icon file it grabs the overlay from.

offset_x

Offsets for the bayonet overlay

removable

Whenever we can remove the bayonet with a screwdriver

valid_bayonets

Static typecache of all knives that can become bayonets

\ No newline at end of file diff --git a/datum/component/bitrunning_points.html b/datum/component/bitrunning_points.html new file mode 100644 index 0000000000000..874ac5b522977 --- /dev/null +++ b/datum/component/bitrunning_points.html @@ -0,0 +1 @@ +/datum/component/bitrunning_points - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bitrunning_points

Attaches to a turf so it spawns a crate when a certain amount of points are added to it.

Vars

points_goalThe amount required to spawn a crate
points_receivedA special condition limits this from spawning a crate

Procs

on_add_pointsListens for points to be added which will eventually spawn a crate.
revealSpawns the crate with some effects

Var Details

points_goal

The amount required to spawn a crate

points_received

A special condition limits this from spawning a crate

Proc Details

on_add_points

Listens for points to be added which will eventually spawn a crate.

reveal

Spawns the crate with some effects

\ No newline at end of file diff --git a/datum/component/blob_minion.html b/datum/component/blob_minion.html new file mode 100644 index 0000000000000..bb3402bc03673 --- /dev/null +++ b/datum/component/blob_minion.html @@ -0,0 +1 @@ +/datum/component/blob_minion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

blob_minion

Common behaviour shared by things which are minions to a blob

Vars

on_strain_changedCallback to run if overmind strain changes
overmindOvermind who is our boss

Procs

on_attempted_passSomeone is attempting to move through us, allow it if it is a blob tile
on_blob_touchedIf we feel the gentle caress of a blob, we feel better
on_burnedIf we feel the fearsome bite of open flame, we feel worse
on_mind_initBecome blobpilled when we gain a mind
on_space_moveIf we're near a blob, stop drifting
on_transformedCalled when a blob minion is transformed into something else, hopefully a spore into a zombie
on_try_speechWe only speak telepathically to blobs
on_update_appearanceWhen our icon is updated, update our colour too
on_update_status_tabWhen our icon is updated, update our colour too
overmind_deletedOur overmind is gone, uh oh!
overmind_properties_changedOur overmind has changed colour and properties

Var Details

on_strain_changed

Callback to run if overmind strain changes

overmind

Overmind who is our boss

Proc Details

on_attempted_pass

Someone is attempting to move through us, allow it if it is a blob tile

on_blob_touched

If we feel the gentle caress of a blob, we feel better

on_burned

If we feel the fearsome bite of open flame, we feel worse

on_mind_init

Become blobpilled when we gain a mind

on_space_move

If we're near a blob, stop drifting

on_transformed

Called when a blob minion is transformed into something else, hopefully a spore into a zombie

on_try_speech

We only speak telepathically to blobs

on_update_appearance

When our icon is updated, update our colour too

on_update_status_tab

When our icon is updated, update our colour too

overmind_deleted

Our overmind is gone, uh oh!

overmind_properties_changed

Our overmind has changed colour and properties

\ No newline at end of file diff --git a/datum/component/blood_walk.html b/datum/component/blood_walk.html new file mode 100644 index 0000000000000..d507d44ef690a --- /dev/null +++ b/datum/component/blood_walk.html @@ -0,0 +1,3 @@ +/datum/component/blood_walk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

blood_walk

Blood walk, a component that causes you to make blood wherever you walk.

Vars

blood_remainingHow many blood pools can we create? +If we reach 0, we will stop leaving blood and self delete
blood_spawn_chanceThe chance of spawning blood whenever walking
blood_typeTypepath of what blood decal we create on walk
sound_playedThe sound that plays when we spread blood.
sound_volumeHow loud will the sound be, if there is one.
target_dir_changeShould the decal face the direction of the parent
transfer_blood_dnaShould we transfer the parent's blood DNA to created blood decal

Procs

spread_bloodSpawns blood (if possible) under the source, and plays a sound effect (if any)

Var Details

blood_remaining

How many blood pools can we create? +If we reach 0, we will stop leaving blood and self delete

blood_spawn_chance

The chance of spawning blood whenever walking

blood_type

Typepath of what blood decal we create on walk

sound_played

The sound that plays when we spread blood.

sound_volume

How loud will the sound be, if there is one.

target_dir_change

Should the decal face the direction of the parent

transfer_blood_dna

Should we transfer the parent's blood DNA to created blood decal

Proc Details

spread_blood

Spawns blood (if possible) under the source, and plays a sound effect (if any)

\ No newline at end of file diff --git a/datum/component/bloodysoles.html b/datum/component/bloodysoles.html new file mode 100644 index 0000000000000..4139c4c49ff8b --- /dev/null +++ b/datum/component/bloodysoles.html @@ -0,0 +1,9 @@ +/datum/component/bloodysoles - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bloodysoles

Component for clothing items that can pick up blood from decals and spread it around everywhere when walking, such as shoes or suits with integrated shoes.

Vars

bloody_shoesHow much of each grubby type we have on our feet
equipped_slotThe ITEM_SLOT_* slot the item is equipped on, if it is.
last_blood_stateThe type of the last grub pool we stepped in, used to decide the type of footprints to make
last_pickupThe world.time when we last picked up blood
parent_atomThe parent item but casted into atom type for easier use.
wielderEither the mob carrying the item, or the mob itself for the /feet component subtype

Procs

add_parent_to_footprintAdds the parent type to the footprint's shoe_types var
adjust_bloody_shoeslowers bloody_shoes[index] by adjust_by
find_pool_by_blood_stateFind a blood decal on a turf that matches our last_blood_state
is_obscuredReturns true if the parent item is obscured by something else that the wielder is wearing
is_under_feet_coveredReturns true if the parent item is worn in the ITEM_SLOT_ICLOTHING slot and the +wielder is wearing something on their shoes.
on_changed_bloody_shoescalled whenever the value of bloody_soles changes
on_cleanCalled when the parent item is being washed
on_dropCalled when the parent item has been dropped
on_equipCalled when the parent item is equipped by someone
on_movedCalled when the wielder has moved
on_step_bloodCalled when the wielder steps in a pool of blood
share_bloodRun to equally share the blood between us and a decal
unregisterUnregisters from the wielder if necessary
update_iconRun to update the icon of the parent

Var Details

bloody_shoes

How much of each grubby type we have on our feet

equipped_slot

The ITEM_SLOT_* slot the item is equipped on, if it is.

last_blood_state

The type of the last grub pool we stepped in, used to decide the type of footprints to make

last_pickup

The world.time when we last picked up blood

parent_atom

The parent item but casted into atom type for easier use.

wielder

Either the mob carrying the item, or the mob itself for the /feet component subtype

Proc Details

add_parent_to_footprint

Adds the parent type to the footprint's shoe_types var

adjust_bloody_shoes

lowers bloody_shoes[index] by adjust_by

find_pool_by_blood_state

Find a blood decal on a turf that matches our last_blood_state

is_obscured

Returns true if the parent item is obscured by something else that the wielder is wearing

is_under_feet_covered

Returns true if the parent item is worn in the ITEM_SLOT_ICLOTHING slot and the +wielder is wearing something on their shoes.

+

Allows for jumpsuits to cover feet without getting all bloodied when their wearer +is wearing shoes.

on_changed_bloody_shoes

called whenever the value of bloody_soles changes

on_clean

Called when the parent item is being washed

on_drop

Called when the parent item has been dropped

+

Used to deregister our wielder

on_equip

Called when the parent item is equipped by someone

+

Used to register our wielder

on_moved

Called when the wielder has moved

+

Used to make bloody footprints on the ground

on_step_blood

Called when the wielder steps in a pool of blood

+

Used to make the parent item bloody

share_blood

Run to equally share the blood between us and a decal

unregister

Unregisters from the wielder if necessary

update_icon

Run to update the icon of the parent

\ No newline at end of file diff --git a/datum/component/boomerang.html b/datum/component/boomerang.html new file mode 100644 index 0000000000000..7c8b53d48ba6d --- /dev/null +++ b/datum/component/boomerang.html @@ -0,0 +1,20 @@ +/datum/component/boomerang - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

boomerang

If an ojvect is given the boomerang component, it should be thrown back to the thrower after either hitting its target, or landing on the thrown tile. +Thrown objects should be thrown back to the original thrower with this component, a number of tiles defined by boomerang_throw_range.

Vars

boomerang_throw_rangeHow far should the boomerang try to travel to return to the thrower?
examine_messageAdds an extra big of flavor text on examine.
last_boomerang_throwThis cooldown prevents our 2 throwing signals from firing too often based on how we implement those signals within thrown impacts.
thrower_easy_catch_enabledIf this boomerang is thrown, does it re-enable the throwers throw mode?

Procs

aerodynamic_swingProc that triggers when the thrown boomerang has been fully thrown, rethrowing the boomerang back to the thrower, and producing visible feedback.
prepare_throwProc'd before the first thrown is performed in order to gather information regarding each throw as well as handle throw_mode as necessary.
return_hit_throwProc that triggers when the thrown boomerang hits an object.
return_missed_throwProc that triggers when the thrown boomerang does not hit a target.

Var Details

boomerang_throw_range

How far should the boomerang try to travel to return to the thrower?

examine_message

Adds an extra big of flavor text on examine.

last_boomerang_throw

This cooldown prevents our 2 throwing signals from firing too often based on how we implement those signals within thrown impacts.

thrower_easy_catch_enabled

If this boomerang is thrown, does it re-enable the throwers throw mode?

Proc Details

aerodynamic_swing

Proc that triggers when the thrown boomerang has been fully thrown, rethrowing the boomerang back to the thrower, and producing visible feedback.

+

prepare_throw

Proc'd before the first thrown is performed in order to gather information regarding each throw as well as handle throw_mode as necessary.

+

return_hit_throw

Proc that triggers when the thrown boomerang hits an object.

+

return_missed_throw

Proc that triggers when the thrown boomerang does not hit a target.

+
\ No newline at end of file diff --git a/datum/component/boss_music.html b/datum/component/boss_music.html new file mode 100644 index 0000000000000..e08696dab018b --- /dev/null +++ b/datum/component/boss_music.html @@ -0,0 +1,5 @@ +/datum/component/boss_music - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

boss_music

Attaches to a hostile simplemob and plays that music while they have a target.

Vars

boss_trackThe music track we will play to players.
music_callbacksList of callback timers, used to clear out mobs listening to boss music after track_duration.
players_listening_refsList of all mobs listening to the boss music currently. Cleared on Destroy or after track_duration.
track_durationHow long the track is, used to clear players out when the music is supposed to end.

Procs

clear_targetRemoves old_target from the list of players listening, and stops their music if it is still playing. +This allows them to have music played again if they re-enter combat with this fauna.
on_mob_deathCalled when a mob listening to boss music dies- ends their music early.
on_target_foundHandles giving the boss music to a new target the fauna has received. +Keeps track of them to not repeatedly overwrite its own track.

Var Details

boss_track

The music track we will play to players.

music_callbacks

List of callback timers, used to clear out mobs listening to boss music after track_duration.

players_listening_refs

List of all mobs listening to the boss music currently. Cleared on Destroy or after track_duration.

track_duration

How long the track is, used to clear players out when the music is supposed to end.

Proc Details

clear_target

Removes old_target from the list of players listening, and stops their music if it is still playing. +This allows them to have music played again if they re-enter combat with this fauna.

on_mob_death

Called when a mob listening to boss music dies- ends their music early.

on_target_found

Handles giving the boss music to a new target the fauna has received. +Keeps track of them to not repeatedly overwrite its own track.

\ No newline at end of file diff --git a/datum/component/brass_spreader.html b/datum/component/brass_spreader.html new file mode 100644 index 0000000000000..32893b79df92c --- /dev/null +++ b/datum/component/brass_spreader.html @@ -0,0 +1 @@ +/datum/component/brass_spreader - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

brass_spreader

A component that spreads brass to a tile in [range] every [cooldown] seconds, converting everything on it into brass as well.

Vars

cooldownThe cooldown between spread attempts
rangeThe range of which to spread brass

Var Details

cooldown

The cooldown between spread attempts

range

The range of which to spread brass

\ No newline at end of file diff --git a/datum/component/breed.html b/datum/component/breed.html new file mode 100644 index 0000000000000..7e8378fda8e06 --- /dev/null +++ b/datum/component/breed.html @@ -0,0 +1 @@ +/datum/component/breed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

breed

Vars

baby_pathpath of the baby
breed_keyAI key we set when we're ready to breed
breed_timertime to wait after breeding
can_breed_withadditional mobs we can breed with
post_birthcallback after we give birth to the child
ready_to_breedare we ready to breed?

Var Details

baby_path

path of the baby

breed_key

AI key we set when we're ready to breed

breed_timer

time to wait after breeding

can_breed_with

additional mobs we can breed with

post_birth

callback after we give birth to the child

ready_to_breed

are we ready to breed?

\ No newline at end of file diff --git a/datum/component/bullet_intercepting.html b/datum/component/bullet_intercepting.html new file mode 100644 index 0000000000000..5f03b8f95672f --- /dev/null +++ b/datum/component/bullet_intercepting.html @@ -0,0 +1 @@ +/datum/component/bullet_intercepting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bullet_intercepting

Component which allows an equipped item to occasionally absorb a projectile.

Vars

active_slotsSlots in which effect can be active
block_chanceChance to intercept a projectile
block_chargesNumber of things we can block before we delete ourself (stop being able to block)
block_typeType of bullet to intercept
on_interceptedCallback called when we catch a projectile
wearerPerson currently wearing us

Procs

on_parent_equippedCalled when item changes slots, check if we're in a valid location to take bullets
on_unequippedCalled when item is unequipped, stop tracking bullets
on_wearer_deletedCalled when wearer is deleted, stop tracking them
on_wearer_shotCalled when wearer is shot, check if we're going to block the hit

Var Details

active_slots

Slots in which effect can be active

block_chance

Chance to intercept a projectile

block_charges

Number of things we can block before we delete ourself (stop being able to block)

block_type

Type of bullet to intercept

on_intercepted

Callback called when we catch a projectile

wearer

Person currently wearing us

Proc Details

on_parent_equipped

Called when item changes slots, check if we're in a valid location to take bullets

on_unequipped

Called when item is unequipped, stop tracking bullets

on_wearer_deleted

Called when wearer is deleted, stop tracking them

on_wearer_shot

Called when wearer is shot, check if we're going to block the hit

\ No newline at end of file diff --git a/datum/component/bumpattack.html b/datum/component/bumpattack.html new file mode 100644 index 0000000000000..1b4c53833794a --- /dev/null +++ b/datum/component/bumpattack.html @@ -0,0 +1 @@ +/datum/component/bumpattack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bumpattack

Vars

activewhether or not the behaviour would be active on the item
attack_cooldowncool down between each hit
proxy_weaponthe item that will gain this behaviour
valid_inventory_slotinventory slot that the item could be stored while still being able to attack with it. DO SLOT_HANDS|SLOT_BACK instead of a list for multiple slots
wearerthe mob handling the item

Var Details

active

whether or not the behaviour would be active on the item

attack_cooldown

cool down between each hit

proxy_weapon

the item that will gain this behaviour

valid_inventory_slot

inventory slot that the item could be stored while still being able to attack with it. DO SLOT_HANDS|SLOT_BACK instead of a list for multiple slots

wearer

the mob handling the item

\ No newline at end of file diff --git a/datum/component/burning.html b/datum/component/burning.html new file mode 100644 index 0000000000000..02fe497a3375f --- /dev/null +++ b/datum/component/burning.html @@ -0,0 +1,3 @@ +/datum/component/burning - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

burning

Component representing an atom being on fire. +Should not be used on mobs, they use the fire stacks status effects. +Can only be used on atoms that use the integrity system.

Vars

fire_overlayFire overlay appearance we apply
particle_effectParticle holder for fire particles, if any

Procs

on_attack_handHandles searing the hand of anyone who tries to touch parent without protection.
on_examineAlerts any examiners that the parent is on fire (even though it should be rather obvious)
on_extinguishDeletes the component when the atom gets extinguished
on_update_overlaysMaintains the burning overlay on the parent atom

Var Details

fire_overlay

Fire overlay appearance we apply

particle_effect

Particle holder for fire particles, if any

Proc Details

on_attack_hand

Handles searing the hand of anyone who tries to touch parent without protection.

on_examine

Alerts any examiners that the parent is on fire (even though it should be rather obvious)

on_extinguish

Deletes the component when the atom gets extinguished

on_update_overlays

Maintains the burning overlay on the parent atom

\ No newline at end of file diff --git a/datum/component/butchering.html b/datum/component/butchering.html new file mode 100644 index 0000000000000..7ef5bff420e89 --- /dev/null +++ b/datum/component/butchering.html @@ -0,0 +1,6 @@ +/datum/component/butchering - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

butchering

Vars

bonus_modifierPercentage increase to bonus item chance
butcher_callbackCallback for butchering
butcher_soundSound played when butchering
butchering_enabledWhether or not this component can be used to butcher currently. Used to temporarily disable butchering
can_be_bluntWhether or not this component is compatible with blunt tools.
effectivenessPercentage effectiveness; numbers above 100 yield extra drops
speedTime in deciseconds taken to butcher something

Procs

disable_butcheringDisables the butchering mechanic for the mob who has dropped us.
enable_butcheringEnables the butchering mechanic for the mob who has equipped us.
on_butcheringHandles a user butchering a target

Var Details

bonus_modifier

Percentage increase to bonus item chance

butcher_callback

Callback for butchering

butcher_sound

Sound played when butchering

butchering_enabled

Whether or not this component can be used to butcher currently. Used to temporarily disable butchering

can_be_blunt

Whether or not this component is compatible with blunt tools.

effectiveness

Percentage effectiveness; numbers above 100 yield extra drops

speed

Time in deciseconds taken to butcher something

Proc Details

disable_butchering

Disables the butchering mechanic for the mob who has dropped us.

enable_butchering

Enables the butchering mechanic for the mob who has equipped us.

on_butchering

Handles a user butchering a target

+

Arguments:

+
\ No newline at end of file diff --git a/datum/component/butchering/mecha.html b/datum/component/butchering/mecha.html new file mode 100644 index 0000000000000..dc2a3d62e42a0 --- /dev/null +++ b/datum/component/butchering/mecha.html @@ -0,0 +1 @@ +/datum/component/butchering/mecha - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mecha

Procs

on_drillWhen we are ready to drill through a mob

Proc Details

on_drill

When we are ready to drill through a mob

\ No newline at end of file diff --git a/datum/component/butchering/wearable.html b/datum/component/butchering/wearable.html new file mode 100644 index 0000000000000..1f7c80fad5be5 --- /dev/null +++ b/datum/component/butchering/wearable.html @@ -0,0 +1 @@ +/datum/component/butchering/wearable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

wearable

Procs

worn_disable_butcheringSame as disable_butchering but for worn items
worn_enable_butcheringSame as enable_butchering but for worn items

Proc Details

worn_disable_butchering

Same as disable_butchering but for worn items

worn_enable_butchering

Same as enable_butchering but for worn items

\ No newline at end of file diff --git a/datum/component/callouts.html b/datum/component/callouts.html new file mode 100644 index 0000000000000..3fceac83c9487 --- /dev/null +++ b/datum/component/callouts.html @@ -0,0 +1 @@ +/datum/component/callouts - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

callouts

Component that allows its owner/owner's wearer to use callouts system - their pointing is replaced with a fancy radial which allows them to summon glowing markers

Vars

activeIf we are currently active
callout_cooldownCooldown for callouts
callout_optionsList of all callout options
cur_userCurrent user of this component
examine_textText displayed when parent is examined
item_slotIf parent is clothing, slot on which this component activates
radio_prefixIf voiceline is true, what prefix the user should use
voicelineWhenever the user should shout the voiceline

Var Details

active

If we are currently active

callout_cooldown

Cooldown for callouts

callout_options

List of all callout options

cur_user

Current user of this component

examine_text

Text displayed when parent is examined

item_slot

If parent is clothing, slot on which this component activates

radio_prefix

If voiceline is true, what prefix the user should use

voiceline

Whenever the user should shout the voiceline

\ No newline at end of file diff --git a/datum/component/caltrop.html b/datum/component/caltrop.html new file mode 100644 index 0000000000000..2f0fbf11907fa --- /dev/null +++ b/datum/component/caltrop.html @@ -0,0 +1,2 @@ +/datum/component/caltrop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

caltrop

Caltrop element; for hurting people when they walk over this.

+

Used for broken glass, cactuses and four sided dice.

Vars

crossed_connectionsgiven to connect_loc to listen for something moving over target
dupe_modeSo we can update ant damage
flagsMiscelanous caltrop flags; shoe bypassing, walking interaction, silence
max_damageMaximum damage done when crossed
min_damageMinimum damage done when crossed
paralyze_durationAmount of time the spike will paralyze
probabilityProbability of actually "firing", stunning and doing damage
soundfileThe sound that plays when a caltrop is triggered.

Var Details

crossed_connections

given to connect_loc to listen for something moving over target

dupe_mode

So we can update ant damage

flags

Miscelanous caltrop flags; shoe bypassing, walking interaction, silence

max_damage

Maximum damage done when crossed

min_damage

Minimum damage done when crossed

paralyze_duration

Amount of time the spike will paralyze

probability

Probability of actually "firing", stunning and doing damage

soundfile

The sound that plays when a caltrop is triggered.

\ No newline at end of file diff --git a/datum/component/carrier.html b/datum/component/carrier.html new file mode 100644 index 0000000000000..55e4b289049a6 --- /dev/null +++ b/datum/component/carrier.html @@ -0,0 +1,9 @@ +/datum/component/carrier - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

carrier

Carrier Component

+

This component functions as a bridge between the carrier_room attached to itself and the parented datum. +It handles the creation of new carrier rooms, TGUI, and relaying messages to the parent datum. +If the component is deleted, any carrier rooms inside of carrier_rooms will be deleted.

Vars

able_to_transfer_to_another_carrierAre you able to move mobs out of this carrier?
carrier_roomsWhat rooms are linked to this carrier
chat_iconWhat 16x16 chat icon do we want our carrier to display in chat messages?
communicate_as_parentAre are the mobs inside able to emote/speak as the parent?
component_to_giveWhat is the path of user component do we want to give to our mob? This needs to be /datum/component/carrier_user or a subtype.
max_mobsWhat is the max number of people we can keep in this carrier? If this is set to FALSE we don't have a limit
nameWhat is the name of the carrier?
no_dollingDo we want to prevent someone with the same type of carrier from being inside of our carrier?
require_approvalDo we want to ask the user permission before the mob enters?
room_limitIs there a limit on the number of rooms that you can make?
same_type_only_transferIf we transfer a mob to another carrier, does it need to be the same type?
single_ownerIs this carrier going to stay within the possesion of one mob within it's lifespan?
targeted_carrier_roomWhat carrier room are verbs sending messages to?
type_of_room_to_createWhat is the type of room that we want to create?
ui_themeWhat theme are we using for our carrier UI?

Procs

add_mobAdds mob_to_add into the parent carrier, giving them the carrier component and moving their mob into the room. Returns the component added, if successful
check_for_vacancyChecks the total number of mobs present and compares it with max_mobs returns TRUE if there is room (or no limit), otherwise returns FALSE
create_roomCreates a /datum/carrier_room and adds it to the carrier_rooms list.
get_approvalAttempts to ping the current user of the carrier, asking them if joiner_name is allowed in. If they are, the proc returns TRUE, otherwise returns FALSE
get_current_holderTries to find out who is currently using the carrier, returns the holder. If no holder can be found, returns FALSE
get_current_mobsReturns a list containing all of the mobs currently present within a carrier.
receive_messagereceives a message from a carrier room.
transfer_mobTransfers a soul from a carrier room to another carrier room. Returns FALSE if the target room or target soul cannot be found.
update_targeted_carrierUpdates the target carrier component for the carrier me/emote verb to send messages to.

Var Details

able_to_transfer_to_another_carrier

Are you able to move mobs out of this carrier?

carrier_rooms

What rooms are linked to this carrier

chat_icon

What 16x16 chat icon do we want our carrier to display in chat messages?

communicate_as_parent

Are are the mobs inside able to emote/speak as the parent?

component_to_give

What is the path of user component do we want to give to our mob? This needs to be /datum/component/carrier_user or a subtype.

max_mobs

What is the max number of people we can keep in this carrier? If this is set to FALSE we don't have a limit

name

What is the name of the carrier?

no_dolling

Do we want to prevent someone with the same type of carrier from being inside of our carrier?

require_approval

Do we want to ask the user permission before the mob enters?

room_limit

Is there a limit on the number of rooms that you can make?

same_type_only_transfer

If we transfer a mob to another carrier, does it need to be the same type?

single_owner

Is this carrier going to stay within the possesion of one mob within it's lifespan?

targeted_carrier_room

What carrier room are verbs sending messages to?

type_of_room_to_create

What is the type of room that we want to create?

ui_theme

What theme are we using for our carrier UI?

Proc Details

add_mob

Adds mob_to_add into the parent carrier, giving them the carrier component and moving their mob into the room. Returns the component added, if successful

check_for_vacancy

Checks the total number of mobs present and compares it with max_mobs returns TRUE if there is room (or no limit), otherwise returns FALSE

create_room

Creates a /datum/carrier_room and adds it to the carrier_rooms list.

+

Arguments

+

get_approval

Attempts to ping the current user of the carrier, asking them if joiner_name is allowed in. If they are, the proc returns TRUE, otherwise returns FALSE

get_current_holder

Tries to find out who is currently using the carrier, returns the holder. If no holder can be found, returns FALSE

get_current_mobs

Returns a list containing all of the mobs currently present within a carrier.

receive_message

receives a message from a carrier room.

transfer_mob

Transfers a soul from a carrier room to another carrier room. Returns FALSE if the target room or target soul cannot be found.

update_targeted_carrier

Updates the target carrier component for the carrier me/emote verb to send messages to.

\ No newline at end of file diff --git a/datum/component/carrier/soulcatcher.html b/datum/component/carrier/soulcatcher.html new file mode 100644 index 0000000000000..41266fbf38aea --- /dev/null +++ b/datum/component/carrier/soulcatcher.html @@ -0,0 +1 @@ +/datum/component/carrier/soulcatcher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

soulcatcher

Vars

ghost_joinableAre ghosts currently able to join this soulcatcher?
removableIs the soulcatcher removable from the parent object?

Procs

get_open_roomsReturns a list of all of the rooms that a soul can join/transfer into. ghost_join checks if the room is accessible to ghosts.
remove_selfAttempts to remove the carrier from the attached object
scan_bodyAttempts to scan the body for the previous_body component, returns FALSE if the body is unable to be scanned, otherwise returns TRUE

Var Details

ghost_joinable

Are ghosts currently able to join this soulcatcher?

removable

Is the soulcatcher removable from the parent object?

Proc Details

get_open_rooms

Returns a list of all of the rooms that a soul can join/transfer into. ghost_join checks if the room is accessible to ghosts.

remove_self

Attempts to remove the carrier from the attached object

scan_body

Attempts to scan the body for the previous_body component, returns FALSE if the body is unable to be scanned, otherwise returns TRUE

\ No newline at end of file diff --git a/datum/component/carrier/soulcatcher/attachable.html b/datum/component/carrier/soulcatcher/attachable.html new file mode 100644 index 0000000000000..001dee0cae572 --- /dev/null +++ b/datum/component/carrier/soulcatcher/attachable.html @@ -0,0 +1 @@ +/datum/component/carrier/soulcatcher/attachable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

attachable

Procs

on_examineAdds text to the examine text of the parent item, explaining that the item can be used to enable the use of NIFSoft HUDs

Proc Details

on_examine

Adds text to the examine text of the parent item, explaining that the item can be used to enable the use of NIFSoft HUDs

\ No newline at end of file diff --git a/datum/component/carrier_communicator.html b/datum/component/carrier_communicator.html new file mode 100644 index 0000000000000..37499bab35812 --- /dev/null +++ b/datum/component/carrier_communicator.html @@ -0,0 +1 @@ +/datum/component/carrier_communicator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

carrier_communicator

Vars

carried_mobIs the mob trying to communicate with the carrier they are inside?
target_carrierWhat carrier room is the parent mob currently trying to communicate with?

Var Details

carried_mob

Is the mob trying to communicate with the carrier they are inside?

target_carrier

What carrier room is the parent mob currently trying to communicate with?

\ No newline at end of file diff --git a/datum/component/carrier_user.html b/datum/component/carrier_user.html new file mode 100644 index 0000000000000..4c7834e580b3d --- /dev/null +++ b/datum/component/carrier_user.html @@ -0,0 +1 @@ +/datum/component/carrier_user - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

carrier_user

The component given to carrier inhabitants

Vars

able_to_emoteIs the mob able to emote inside the carrier room?
able_to_emote_as_containerIs the mob able to emote as the object it is inside?
able_to_renameIs the mob able to change their own name?
able_to_speakIs the mob able to speak inside the carrier room?
able_to_speak_as_containerIs the mob able to speak as the object it is inside?
carrier_actionThe coresponding action used to pull up the HUD
communicating_externallyAre emote's and Say's done through the container the mob is in?
current_roomWhat is the weakref of the carrier room are we currently in?
descWhat does our mob look like?
hud_action_givenIs the action to control the HUD given to the mob?
internal_hearingIs the mob able to "hear" things from inside of the carrier?
internal_sightIs the mob able to "see" things from inside of the carrier?
leave_actionThe coresponding action used to leave the carrier
leave_action_givenIs the action to leave given to the mob?
nameWhat is the name of our mob?
ooc_notesWhat are the ooc notes for the mob?
outside_hearingIs the mob able to hear things from the outside world?
outside_sightIs the mob able to see things in the outside world?

Procs

can_communicateIs the carrier mob able to communicate? Returns TRUE if they can, otherwise returns FALSE
change_nameChanges the name show on the component based off new_name. Returns TRUE if the name has been changed, otherwise returns FALSE.
check_internal_sensesIs the carrier mob able to witness a message? Emote determines if the message is an emote or not.
me_verbWhat do we want to do when a mob tries to do a me emote?
refresh_mob_appearanceConfigures the settings of the carrier user to be in accordance with the parent mob
reset_nameAttempts to reset the mob's name to it's name in prefs. Returns TRUE if the name is reset, otherwise returns FALSE.
sayWhat do we want to do when a mob tries to say something into the carrier?
set_roomSets the current room of the carrier component based off of room_to_set
toggle_senseModifies the sense of the parent mob based on the variable sense_to_toggle. Returns the state of the modified variable

Var Details

able_to_emote

Is the mob able to emote inside the carrier room?

able_to_emote_as_container

Is the mob able to emote as the object it is inside?

able_to_rename

Is the mob able to change their own name?

able_to_speak

Is the mob able to speak inside the carrier room?

able_to_speak_as_container

Is the mob able to speak as the object it is inside?

carrier_action

The coresponding action used to pull up the HUD

communicating_externally

Are emote's and Say's done through the container the mob is in?

current_room

What is the weakref of the carrier room are we currently in?

desc

What does our mob look like?

hud_action_given

Is the action to control the HUD given to the mob?

internal_hearing

Is the mob able to "hear" things from inside of the carrier?

internal_sight

Is the mob able to "see" things from inside of the carrier?

leave_action

The coresponding action used to leave the carrier

leave_action_given

Is the action to leave given to the mob?

name

What is the name of our mob?

ooc_notes

What are the ooc notes for the mob?

outside_hearing

Is the mob able to hear things from the outside world?

outside_sight

Is the mob able to see things in the outside world?

Proc Details

can_communicate

Is the carrier mob able to communicate? Returns TRUE if they can, otherwise returns FALSE

change_name

Changes the name show on the component based off new_name. Returns TRUE if the name has been changed, otherwise returns FALSE.

check_internal_senses

Is the carrier mob able to witness a message? Emote determines if the message is an emote or not.

me_verb

What do we want to do when a mob tries to do a me emote?

refresh_mob_appearance

Configures the settings of the carrier user to be in accordance with the parent mob

reset_name

Attempts to reset the mob's name to it's name in prefs. Returns TRUE if the name is reset, otherwise returns FALSE.

say

What do we want to do when a mob tries to say something into the carrier?

set_room

Sets the current room of the carrier component based off of room_to_set

toggle_sense

Modifies the sense of the parent mob based on the variable sense_to_toggle. Returns the state of the modified variable

\ No newline at end of file diff --git a/datum/component/cell.html b/datum/component/cell.html new file mode 100644 index 0000000000000..d09de3cfb7f7a --- /dev/null +++ b/datum/component/cell.html @@ -0,0 +1,8 @@ +/datum/component/cell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cell

Vars

cell_can_be_removedCan this cell be removed from the parent?
cell_overlayOur reference to the cell overlay
equipmentThe item reference to parent.
has_cell_overlaysDo we have cell overlays to be applied?
inserted_cellOur reference to the inserted cell, which will be stored in the parent.
inside_robotAre we using a robot's powersource?
on_cell_removedCallback interaction for when the cell is removed.
power_use_amountHow much power do we use each process?

Procs

insert_cellHandling of cell insertion.
remove_cellHandling of cell removal.
simple_power_useThe basic way of processing the cell, with included feedback.

Var Details

cell_can_be_removed

Can this cell be removed from the parent?

cell_overlay

Our reference to the cell overlay

equipment

The item reference to parent.

has_cell_overlays

Do we have cell overlays to be applied?

inserted_cell

Our reference to the inserted cell, which will be stored in the parent.

inside_robot

Are we using a robot's powersource?

on_cell_removed

Callback interaction for when the cell is removed.

power_use_amount

How much power do we use each process?

Proc Details

insert_cell

Handling of cell insertion.

remove_cell

Handling of cell removal.

simple_power_use

The basic way of processing the cell, with included feedback.

+

This proc is the basic way of processing the cell, with included feedback. +It will return a bitflag if it failed to use the power, or COMPONENT_POWER_SUCCESS if it succeeds. +Arguments:

+
\ No newline at end of file diff --git a/datum/component/chasm.html b/datum/component/chasm.html new file mode 100644 index 0000000000000..4868967e5b0f5 --- /dev/null +++ b/datum/component/chasm.html @@ -0,0 +1,7 @@ +/datum/component/chasm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chasm

Vars

falling_atomsList of refs to falling objects -> how many levels deep we've fallen

Procs

left_chasmCalled when something has left the chasm depths storage. +Arguments

Var Details

falling_atoms

List of refs to falling objects -> how many levels deep we've fallen

Proc Details

left_chasm

Called when something has left the chasm depths storage. +Arguments

+
\ No newline at end of file diff --git a/datum/component/chuunibyou.html b/datum/component/chuunibyou.html new file mode 100644 index 0000000000000..2e91ceaeabe5f --- /dev/null +++ b/datum/component/chuunibyou.html @@ -0,0 +1,5 @@ +/datum/component/chuunibyou - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chuunibyou

chuunibyou component!

+

Component that makes casted spells always a shout invocation, a very dumb one. And their projectiles are dumb too. +Oh, but it does heal after each spell cast.

Vars

casting_spellare we casting a spell right now
chuunibyou_invocationsinvocations per school the spell is from
heal_amountamount healed per spell cast
heal_cooldowncooldown for healing

Procs

on_after_spell_castsignal sent after parent casts a spell
on_pre_invocationsignal sent before parent invokes a spell
on_spell_projectilesignal sent when the parent casts a spell that has a projectile
on_try_speechsignal sent when the parent tries to speak. we let speech pass if we are casting a spell so mimes still chuuni their spellcasts +(this may end in the mime dying)

Var Details

casting_spell

are we casting a spell right now

chuunibyou_invocations

invocations per school the spell is from

heal_amount

amount healed per spell cast

heal_cooldown

cooldown for healing

Proc Details

on_after_spell_cast

signal sent after parent casts a spell

on_pre_invocation

signal sent before parent invokes a spell

on_spell_projectile

signal sent when the parent casts a spell that has a projectile

on_try_speech

signal sent when the parent tries to speak. we let speech pass if we are casting a spell so mimes still chuuni their spellcasts +(this may end in the mime dying)

\ No newline at end of file diff --git a/datum/component/circuit_component_add_port.html b/datum/component/circuit_component_add_port.html new file mode 100644 index 0000000000000..44170c1eb0f75 --- /dev/null +++ b/datum/component/circuit_component_add_port.html @@ -0,0 +1 @@ +/datum/component/circuit_component_add_port - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

circuit_component_add_port

Helper component that handles users adding/removing ports from a circuit component.

Vars

add_actionThe action to add a port on
is_outputWhether we are adding output ports or not
maximum_amountThe maximum amount of ports allowed
minimum_amountThe minimum amount of ports required
orderThe order of the new ports
port_listThe list to add the ports to when created
port_typeThe type of port
prefixThe prefix of the new ports
remove_actionThe action to remove a port on

Var Details

add_action

The action to add a port on

is_output

Whether we are adding output ports or not

maximum_amount

The maximum amount of ports allowed

minimum_amount

The minimum amount of ports required

order

The order of the new ports

port_list

The list to add the ports to when created

port_type

The type of port

prefix

The prefix of the new ports

remove_action

The action to remove a port on

\ No newline at end of file diff --git a/datum/component/cleaner.html b/datum/component/cleaner.html new file mode 100644 index 0000000000000..cc2417c154659 --- /dev/null +++ b/datum/component/cleaner.html @@ -0,0 +1,17 @@ +/datum/component/cleaner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cleaner

Component that can be used to clean things. +Takes care of duration, cleaning skill and special cleaning interactions. +A callback can be set by the datum holding the cleaner to add custom functionality. +Soap uses a callback to decrease the amount of uses it has left after cleaning for example.

Vars

base_cleaning_durationThe time it takes to clean something, without reductions from the cleaning skill modifier.
cleaning_strengthDetermines what this cleaner can wash off, the available options are found here.
on_cleaned_callbackGets called when something is successfully cleaned.
pre_clean_callbackGets called before you start cleaning, returns TRUE/FALSE whether the clean should actually wash tiles, or DO_NOT_CLEAN to not clean at all.
skill_duration_modifier_offsetOffsets the cleaning duration modifier that you get from your cleaning skill, the duration won't be modified to be more than the base duration.

Procs

cleanCleans something using this cleaner. +The cleaning duration is modified by the cleaning skill of the user. +Successfully cleaning gives cleaning experience to the user and invokes the on_cleaned_callback.
on_interactionHandles the COMSIG_ITEM_INTERACTING_WITH_ATOM signal by calling the clean proc.
on_unarmed_attackHandles the COMSIG_LIVING_UNARMED_ATTACK signal used for cleanbots +Redirects to afterattack, while setting parent (the bot) as user.

Var Details

base_cleaning_duration

The time it takes to clean something, without reductions from the cleaning skill modifier.

cleaning_strength

Determines what this cleaner can wash off, the available options are found here.

on_cleaned_callback

Gets called when something is successfully cleaned.

pre_clean_callback

Gets called before you start cleaning, returns TRUE/FALSE whether the clean should actually wash tiles, or DO_NOT_CLEAN to not clean at all.

skill_duration_modifier_offset

Offsets the cleaning duration modifier that you get from your cleaning skill, the duration won't be modified to be more than the base duration.

Proc Details

clean

Cleans something using this cleaner. +The cleaning duration is modified by the cleaning skill of the user. +Successfully cleaning gives cleaning experience to the user and invokes the on_cleaned_callback.

+

Arguments

+

on_interaction

Handles the COMSIG_ITEM_INTERACTING_WITH_ATOM signal by calling the clean proc.

on_unarmed_attack

Handles the COMSIG_LIVING_UNARMED_ATTACK signal used for cleanbots +Redirects to afterattack, while setting parent (the bot) as user.

\ No newline at end of file diff --git a/datum/component/clickbox.html b/datum/component/clickbox.html new file mode 100644 index 0000000000000..02c73db250e94 --- /dev/null +++ b/datum/component/clickbox.html @@ -0,0 +1,5 @@ +/datum/component/clickbox - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

clickbox

This component adds a near-invisible underlay to a movable target to expand the clickable surface of its icon without +resorting to MOUSE_OPACITY_OPAQUE. +The underlay ignores the parent's color and alpha and can be offset. +The name is a portmanteau of "click" and "hitbox", because technically this isn't an hitbox, +but it helps catch clicks, and I don't want to give it a loooong name like openspace_item_click_handler

Vars

clickbox_underlaythe underlay that has been added to the parent.
dead_stateFor simple animals that have different icon states when dead.
icon_stateThe icon state of the underlay.
max_scaleMaximum width/height of the underlay, in case the attached atom is scaled up.
min_scaleMinimum width/height of the underlay, in case the attached atom is scaled down.
x_offsetThe offsets of the underlay.

Procs

update_underlayRemoves the old underlay and adds a new one. The underlay is scaled up/down if necessary

Var Details

clickbox_underlay

the underlay that has been added to the parent.

dead_state

For simple animals that have different icon states when dead.

icon_state

The icon state of the underlay.

max_scale

Maximum width/height of the underlay, in case the attached atom is scaled up.

min_scale

Minimum width/height of the underlay, in case the attached atom is scaled down.

x_offset

The offsets of the underlay.

Proc Details

update_underlay

Removes the old underlay and adds a new one. The underlay is scaled up/down if necessary

\ No newline at end of file diff --git a/datum/component/clockwork_trap.html b/datum/component/clockwork_trap.html new file mode 100644 index 0000000000000..b4b8bd04b778d --- /dev/null +++ b/datum/component/clockwork_trap.html @@ -0,0 +1 @@ +/datum/component/clockwork_trap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

clockwork_trap

Vars

outputsA list of traps this sends a signal to when this is triggered
sends_inputIf this sends input (e.g. pressure plate)
takes_inputIf this takes input (e.g. skewer)

Procs

add_inputAdds an input device to our own outputs list, to be sent when it triggers
add_outputAdds this as an output to the targetted component's outputs list
attack_handSignal proc for when the trap has ATOM_ATTACK_HAND called on it
on_attackbySignal proc when the trap has PARENT_ATTACKBY called on it
triggerSignal proc for when the trap calls CLOCKWORK_SIGNAL_RECEIVED
trigger_connectedSends a signal to activate to every outputting component in outputs

Var Details

outputs

A list of traps this sends a signal to when this is triggered

sends_input

If this sends input (e.g. pressure plate)

takes_input

If this takes input (e.g. skewer)

Proc Details

add_input

Adds an input device to our own outputs list, to be sent when it triggers

add_output

Adds this as an output to the targetted component's outputs list

attack_hand

Signal proc for when the trap has ATOM_ATTACK_HAND called on it

on_attackby

Signal proc when the trap has PARENT_ATTACKBY called on it

trigger

Signal proc for when the trap calls CLOCKWORK_SIGNAL_RECEIVED

trigger_connected

Sends a signal to activate to every outputting component in outputs

\ No newline at end of file diff --git a/datum/component/clockwork_trap/delay.html b/datum/component/clockwork_trap/delay.html new file mode 100644 index 0000000000000..168defb1961ce --- /dev/null +++ b/datum/component/clockwork_trap/delay.html @@ -0,0 +1 @@ +/datum/component/clockwork_trap/delay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

delay

Vars

activeIf the trap is active or not

Procs

finishFinish the delay, trigger any traps

Var Details

active

If the trap is active or not

Proc Details

finish

Finish the delay, trigger any traps

\ No newline at end of file diff --git a/datum/component/clockwork_trap/pressure_sensor.html b/datum/component/clockwork_trap/pressure_sensor.html new file mode 100644 index 0000000000000..b2f5159b108a4 --- /dev/null +++ b/datum/component/clockwork_trap/pressure_sensor.html @@ -0,0 +1 @@ +/datum/component/clockwork_trap/pressure_sensor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

pressure_sensor

Procs

on_enteredTrigger all connected traps now that someone's stepped on the tile

Proc Details

on_entered

Trigger all connected traps now that someone's stepped on the tile

\ No newline at end of file diff --git a/datum/component/clothing_damaged_by_bullets.html b/datum/component/clothing_damaged_by_bullets.html new file mode 100644 index 0000000000000..493e8aad3ad8f --- /dev/null +++ b/datum/component/clothing_damaged_by_bullets.html @@ -0,0 +1 @@ +/datum/component/clothing_damaged_by_bullets - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

clothing_damaged_by_bullets

Component that lets clothing be damaged in zones by piercing bullets. The parent MUST have limb_integrity set.

Vars

projectile_damage_multiplierHow much of the incoming projectile damage is taken, multiplier
wearerWho is wearing the target?

Procs

hit_by_projectileChecks an incoming projectile to see if it should damage the thing we're attached to,
lost_wearerEither we've been dropped or our wearer has been QDEL'd. Either way, they're no longer our problem
on_equippedCheck if we've been equipped to a valid slot to shield
on_examineWarns any examiner that the clothing we're stuck to will be damaged by piercing bullets
set_wearerSets the wearer and registers the appropriate signals for them

Var Details

projectile_damage_multiplier

How much of the incoming projectile damage is taken, multiplier

wearer

Who is wearing the target?

Proc Details

hit_by_projectile

Checks an incoming projectile to see if it should damage the thing we're attached to,

lost_wearer

Either we've been dropped or our wearer has been QDEL'd. Either way, they're no longer our problem

on_equipped

Check if we've been equipped to a valid slot to shield

on_examine

Warns any examiner that the clothing we're stuck to will be damaged by piercing bullets

set_wearer

Sets the wearer and registers the appropriate signals for them

\ No newline at end of file diff --git a/datum/component/clothing_fov_visor.html b/datum/component/clothing_fov_visor.html new file mode 100644 index 0000000000000..4bd74c6c1fbd7 --- /dev/null +++ b/datum/component/clothing_fov_visor.html @@ -0,0 +1 @@ +/datum/component/clothing_fov_visor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

clothing_fov_visor

An element to add a FOV trait to the wearer, removing it when an item is unequipped, but only as long as the visor is up.

Vars

fov_angleWhat's the FOV angle of the trait we're applying to the wearer
is_wornBecause of clothing code not being too good, we need keep track whether we are worn.
visor_upKeeping track of the visor of our clothing.
wearerThe current wearer

Procs

on_dropOn dropping the item, remove the FoV trait if visor was down.
on_equipOn equipping the item, add the FoV trait if visor isn't up.
on_visor_toggleOn toggling the visor, we may want to add or remove FOV trait from the wearer.

Var Details

fov_angle

What's the FOV angle of the trait we're applying to the wearer

is_worn

Because of clothing code not being too good, we need keep track whether we are worn.

visor_up

Keeping track of the visor of our clothing.

wearer

The current wearer

Proc Details

on_drop

On dropping the item, remove the FoV trait if visor was down.

on_equip

On equipping the item, add the FoV trait if visor isn't up.

on_visor_toggle

On toggling the visor, we may want to add or remove FOV trait from the wearer.

\ No newline at end of file diff --git a/datum/component/codeword_hearing.html b/datum/component/codeword_hearing.html new file mode 100644 index 0000000000000..8618eadb6b20e --- /dev/null +++ b/datum/component/codeword_hearing.html @@ -0,0 +1,6 @@ +/datum/component/codeword_hearing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

codeword_hearing

Component that allows for highlighting of words or phrases in chat based on regular expressions.

+

Hooks into the parent's COMSIG_MOVABLE_HEAR signal to wrap every regex match in the message +between tags with the provided span class. This modifies the output that +is sent to the parent's chat window.

+

Removal of this component should be done by calling [GetComponents(/datum/component/codeword_hearing)] +on the parent and then iterating through all components calling [delete_if_from_source(source)].

Vars

replace_regexRegex for matching words or phrases you want highlighted.
sourceThe source of this component. Used to identify the source in delete_if_from_source since this component is COMPONENT_DUPE_ALLOWED.
span_classThe to use for highlighting matches.

Procs

delete_if_from_sourceSince a parent can have multiple of these components on them simultaneously, this allows a datum to delete components from a specific source.
handle_hearingCallback for COMSIG_MOVABLE_HEAR which highlights syndicate code phrases in chat.

Var Details

replace_regex

Regex for matching words or phrases you want highlighted.

source

The source of this component. Used to identify the source in delete_if_from_source since this component is COMPONENT_DUPE_ALLOWED.

span_class

The to use for highlighting matches.

Proc Details

delete_if_from_source

Since a parent can have multiple of these components on them simultaneously, this allows a datum to delete components from a specific source.

handle_hearing

Callback for COMSIG_MOVABLE_HEAR which highlights syndicate code phrases in chat.

\ No newline at end of file diff --git a/datum/component/combo_attacks.html b/datum/component/combo_attacks.html new file mode 100644 index 0000000000000..b6c1232396f28 --- /dev/null +++ b/datum/component/combo_attacks.html @@ -0,0 +1 @@ +/datum/component/combo_attacks - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

combo_attacks

Vars

can_attack_callbackA callback to the proc that checks whether or not we can do combo attacks.
combo_listAssociative list of all the combo moves. Name of Attack = list(COMBO_STEPS = list(Steps made of LEFT_ATTACK and RIGHT_ATTACK), COMBO_PROC = PROC_REF(Proc Name))
combo_stringsA list of strings containing the ways to do combos, for examines.
examine_messageMessage when the item is examined.
input_listList of inputs done by user.
leniency_timeHow much time before the combo resets.
max_combo_lengthLength of combo we allow before resetting.
reset_messageBalloon alert message when the combo is reset.
timeridID for the reset combo timer.

Var Details

can_attack_callback

A callback to the proc that checks whether or not we can do combo attacks.

combo_list

Associative list of all the combo moves. Name of Attack = list(COMBO_STEPS = list(Steps made of LEFT_ATTACK and RIGHT_ATTACK), COMBO_PROC = PROC_REF(Proc Name))

combo_strings

A list of strings containing the ways to do combos, for examines.

examine_message

Message when the item is examined.

input_list

List of inputs done by user.

leniency_time

How much time before the combo resets.

max_combo_length

Length of combo we allow before resetting.

reset_message

Balloon alert message when the combo is reset.

timerid

ID for the reset combo timer.

\ No newline at end of file diff --git a/datum/component/combustible_flooder.html b/datum/component/combustible_flooder.html new file mode 100644 index 0000000000000..fbb64a11e1176 --- /dev/null +++ b/datum/component/combustible_flooder.html @@ -0,0 +1 @@ +/datum/component/combustible_flooder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

combustible_flooder

Component that floods gas when ignited by fire.

Procs

attackby_reactBeing attacked by something
flame_reactfire_act reaction.
floodDo the flooding. Trigger temperature is the temperature we will flood at if we dont have a temp set at the start. Trigger referring to whatever triggered it.
hotspots_reactHotspot reaction.
projectile_reactShot by something
sparks_reactsparks_touched reaction.
welder_reactWelder check. Here because tool_act is higher priority than attackby.

Proc Details

attackby_react

Being attacked by something

flame_react

fire_act reaction.

flood

Do the flooding. Trigger temperature is the temperature we will flood at if we dont have a temp set at the start. Trigger referring to whatever triggered it.

hotspots_react

Hotspot reaction.

projectile_react

Shot by something

sparks_react

sparks_touched reaction.

welder_react

Welder check. Here because tool_act is higher priority than attackby.

\ No newline at end of file diff --git a/datum/component/connect_containers.html b/datum/component/connect_containers.html new file mode 100644 index 0000000000000..c030cb233a928 --- /dev/null +++ b/datum/component/connect_containers.html @@ -0,0 +1,3 @@ +/datum/component/connect_containers - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

connect_containers

This component behaves similar to connect_loc_behalf, but it's nested and hooks a signal onto all MOVABLES containing this atom.

Vars

connectionsAn assoc list of signal -> procpath to register to the loc this object is on.
trackedThe atom the component is tracking. The component will delete itself if the tracked is deleted. +Signals will also be updated whenever it moves.

Var Details

connections

An assoc list of signal -> procpath to register to the loc this object is on.

tracked

The atom the component is tracking. The component will delete itself if the tracked is deleted. +Signals will also be updated whenever it moves.

\ No newline at end of file diff --git a/datum/component/connect_loc_behalf.html b/datum/component/connect_loc_behalf.html new file mode 100644 index 0000000000000..6e537b616778b --- /dev/null +++ b/datum/component/connect_loc_behalf.html @@ -0,0 +1,4 @@ +/datum/component/connect_loc_behalf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

connect_loc_behalf

This component behaves similar to connect_loc, hooking into a signal on a tracked object's turf +It has the ability to react to that signal on behalf of a separate listener however +This has great use, primarily for components, but it carries with it some overhead +So we do it separately as it needs to hold state which is very likely to lead to bugs if it remains as an element.

Vars

connectionsAn assoc list of signal -> procpath to register to the loc this object is on.

Var Details

connections

An assoc list of signal -> procpath to register to the loc this object is on.

\ No newline at end of file diff --git a/datum/component/connect_mob_behalf.html b/datum/component/connect_mob_behalf.html new file mode 100644 index 0000000000000..36996a5f88460 --- /dev/null +++ b/datum/component/connect_mob_behalf.html @@ -0,0 +1,3 @@ +/datum/component/connect_mob_behalf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

connect_mob_behalf

This component behaves similar to connect_loc_behalf, but working off clients and mobs instead of loc +To be clear, we hook into a signal on a tracked client's mob +We retain the ability to react to that signal on a separate listener, which makes this quite powerful

Vars

connectionsAn assoc list of signal -> procpath to register to the mob our client "owns"
trackedThe master client we're working with
tracked_mobThe mob we're currently tracking

Var Details

connections

An assoc list of signal -> procpath to register to the mob our client "owns"

tracked

The master client we're working with

tracked_mob

The mob we're currently tracking

\ No newline at end of file diff --git a/datum/component/connect_range.html b/datum/component/connect_range.html new file mode 100644 index 0000000000000..1522f7ebbb556 --- /dev/null +++ b/datum/component/connect_range.html @@ -0,0 +1,5 @@ +/datum/component/connect_range - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

connect_range

This component behaves similar to connect_loc_behalf but for all turfs in range, hooking into a signal on each of them. +Just like connect_loc_behalf, It can react to that signal on behalf of a separate listener. +Good for components, though it carries some overhead. Can't be an element as that may lead to bugs.

Vars

connectionsAn assoc list of signal -> procpath to register to the loc this object is on.
rangeThe component will hook into signals only on turfs not farther from tracked than this.
trackedThe atom the component is tracking. The component will delete itself if the tracked is deleted. +Signals will also be updated whenever it moves (if it's a movable).
turfsThe turfs currently connected to this component
works_in_containersWhether the component works when the movable isn't directly located on a turf.

Var Details

connections

An assoc list of signal -> procpath to register to the loc this object is on.

range

The component will hook into signals only on turfs not farther from tracked than this.

tracked

The atom the component is tracking. The component will delete itself if the tracked is deleted. +Signals will also be updated whenever it moves (if it's a movable).

turfs

The turfs currently connected to this component

works_in_containers

Whether the component works when the movable isn't directly located on a turf.

\ No newline at end of file diff --git a/datum/component/connectable_computer.html b/datum/component/connectable_computer.html new file mode 100644 index 0000000000000..3792fa10c96e8 --- /dev/null +++ b/datum/component/connectable_computer.html @@ -0,0 +1,10 @@ +/datum/component/connectable_computer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

connectable_computer

If attached to a machine, adds the connectable computer overlays and smooths to other computers.

Procs

find_connectable_computerFind a connectable computer on this turf.
on_update_overlaysHandles COMSIG_ATOM_UPDATE_OVERLAYS for machines.
update_neighborsUpdate neighboring computers.

Proc Details

find_connectable_computer

Find a connectable computer on this turf.

+

Arguments:

+

on_update_overlays

Handles COMSIG_ATOM_UPDATE_OVERLAYS for machines.

+

Arguments:

+

update_neighbors

Update neighboring computers.

\ No newline at end of file diff --git a/datum/component/construction/mecha.html b/datum/component/construction/mecha.html new file mode 100644 index 0000000000000..875b12567cfc9 --- /dev/null +++ b/datum/component/construction/mecha.html @@ -0,0 +1 @@ +/datum/component/construction/mecha - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mecha

Construction datums

Procs

custom_actionGeneric mech construction messages

Proc Details

custom_action

Generic mech construction messages

\ No newline at end of file diff --git a/datum/component/container_item.html b/datum/component/container_item.html new file mode 100644 index 0000000000000..7163468a0e382 --- /dev/null +++ b/datum/component/container_item.html @@ -0,0 +1 @@ +/datum/component/container_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

container_item

Container item, an item which can be stored by specialized containers.

Procs

try_attachCalled when parent is added to the container.

Proc Details

try_attach

Called when parent is added to the container.

\ No newline at end of file diff --git a/datum/component/crank_recharge.html b/datum/component/crank_recharge.html new file mode 100644 index 0000000000000..f306ffc5450fa --- /dev/null +++ b/datum/component/crank_recharge.html @@ -0,0 +1 @@ +/datum/component/crank_recharge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crank_recharge

Vars

charge_amountHow much charge we give our cell on each crank
charge_moveShould you be able to move while charging, use IGNORE_USER_LOC_CHANGE if you want to move and crank
charge_soundThe sound used when charging, renember to adjust the cooldown time to keep it sensible
charge_sound_cooldown_timeHow long is the cooldown between charging sounds
charging_cellOur cell to charge
cooldown_timeHow long is the cooldown time between each charge
is_chargingAre we currently charging
spin_to_winWhether we spin our gun to reload (and therefore need the relevant trait)

Var Details

charge_amount

How much charge we give our cell on each crank

charge_move

Should you be able to move while charging, use IGNORE_USER_LOC_CHANGE if you want to move and crank

charge_sound

The sound used when charging, renember to adjust the cooldown time to keep it sensible

charge_sound_cooldown_time

How long is the cooldown between charging sounds

charging_cell

Our cell to charge

cooldown_time

How long is the cooldown time between each charge

is_charging

Are we currently charging

spin_to_win

Whether we spin our gun to reload (and therefore need the relevant trait)

\ No newline at end of file diff --git a/datum/component/crate_carrier.html b/datum/component/crate_carrier.html new file mode 100644 index 0000000000000..80af4f10f64df --- /dev/null +++ b/datum/component/crate_carrier.html @@ -0,0 +1 @@ +/datum/component/crate_carrier - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

crate_carrier

Component for simplemobs and basicmobs that allow them to carry crates.

Vars

carriable_cacheTypecache of all the types we can pick up and carry
crate_limitThe max number of crates we can carry
crates_in_handA lazylist of all crates we are carrying

Procs

drop_all_cratesDrops all the crates in our crate list.
on_deathSignal proc for COMSIG_LIVING_DEATH, so we drop crates on death or gib
on_examineSignal proc for COMSIG_ATOM_EXAMINE to show when we're carrying crates
on_unarm_attackSignal proc for COMSIG_LIVING_UNARMED_ATTACK to allow mobs to pick up or drop crates

Var Details

carriable_cache

Typecache of all the types we can pick up and carry

crate_limit

The max number of crates we can carry

crates_in_hand

A lazylist of all crates we are carrying

Proc Details

drop_all_crates

Drops all the crates in our crate list.

on_death

Signal proc for COMSIG_LIVING_DEATH, so we drop crates on death or gib

on_examine

Signal proc for COMSIG_ATOM_EXAMINE to show when we're carrying crates

on_unarm_attack

Signal proc for COMSIG_LIVING_UNARMED_ATTACK to allow mobs to pick up or drop crates

\ No newline at end of file diff --git a/datum/component/ctf_player.html b/datum/component/ctf_player.html new file mode 100644 index 0000000000000..c54fa0ea1c75a --- /dev/null +++ b/datum/component/ctf_player.html @@ -0,0 +1 @@ +/datum/component/ctf_player - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ctf_player

A component added to the mind of anyone who is playing in an ongoing CTF match. Any player specific CTF functionality should be implemented here. (someone should implement score tracking here)

Vars

can_respawnWeather or not the player is currently able to respawn.
ckey_referenceReference to players ckey, used for sending messages to them relating to CTF.
ctf_gameReference to the game this player is participating in.
death_dropItem dropped on death,
player_mobA reference to the players mob, cleared after they die, restored on respawn.
teamThe team that this player is associated with.

Procs

allow_respawnsCalled after a period of time pulled from ctf_game, allows the player to respawn in CTF.
ctf_dustDusts the player and starts a respawn countdown.
damage_type_checkStamina and oxygen damage will not dust a player by themself.
end_gameCalled when the associated CTF game ends or their associated team is deleted, dusts the player and deletes this component to ensure no data from it is carried over to future games.
register_mobCalled when we get a new player mob, register signals and set up the mob.
send_messageSends a message to the player.

Var Details

can_respawn

Weather or not the player is currently able to respawn.

ckey_reference

Reference to players ckey, used for sending messages to them relating to CTF.

ctf_game

Reference to the game this player is participating in.

death_drop

Item dropped on death,

player_mob

A reference to the players mob, cleared after they die, restored on respawn.

team

The team that this player is associated with.

Proc Details

allow_respawns

Called after a period of time pulled from ctf_game, allows the player to respawn in CTF.

ctf_dust

Dusts the player and starts a respawn countdown.

damage_type_check

Stamina and oxygen damage will not dust a player by themself.

end_game

Called when the associated CTF game ends or their associated team is deleted, dusts the player and deletes this component to ensure no data from it is carried over to future games.

register_mob

Called when we get a new player mob, register signals and set up the mob.

send_message

Sends a message to the player.

\ No newline at end of file diff --git a/datum/component/cult_ritual_item.html b/datum/component/cult_ritual_item.html new file mode 100644 index 0000000000000..0a36657a882c8 --- /dev/null +++ b/datum/component/cult_ritual_item.html @@ -0,0 +1 @@ +/datum/component/cult_ritual_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cult_ritual_item

Vars

drawing_a_runeWhether we are currently being used to draw a rune.
examine_messageThe message displayed when the parent is examined, if supplied.
linked_action_refWeakref to an action added to our parent item that allows for quick drawing runes
shieldsA list of all shields surrounding us while drawing certain runes (Nar'sie).
turfs_that_boost_usA list of turfs that we scribe runes at double speed on.

Var Details

drawing_a_rune

Whether we are currently being used to draw a rune.

examine_message

The message displayed when the parent is examined, if supplied.

linked_action_ref

Weakref to an action added to our parent item that allows for quick drawing runes

shields

A list of all shields surrounding us while drawing certain runes (Nar'sie).

turfs_that_boost_us

A list of turfs that we scribe runes at double speed on.

\ No newline at end of file diff --git a/datum/component/curse_of_hunger.html b/datum/component/curse_of_hunger.html new file mode 100644 index 0000000000000..c4a93e1a2fb95 --- /dev/null +++ b/datum/component/curse_of_hunger.html @@ -0,0 +1,2 @@ +/datum/component/curse_of_hunger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

curse_of_hunger

curse of hunger component; for very hungry items.

+

Used as a rpgloot suffix and wizard spell!

Vars

add_dropdelwhether to add dropdel to the item with curse of hunger, used for temporary curses like the wizard duffelbags
awakeneditems given the curse of hunger will not seek out someone else to latch onto until they are dropped for the first time.
current_healthThe bag's current "health". IE, how many more times you need to poison it to stop it.
hungercounts time passed since it ate food
max_healthThe bag's max "health". IE, how many times you need to poison it.

Procs

on_dropsignal called from dropping parent
on_equipsignal called from equipping parent
on_examinesignal called on parent being examined
seek_new_targetproc called after a timer to awaken the AI in the cursed item if it doesn't have a target already.

Var Details

add_dropdel

whether to add dropdel to the item with curse of hunger, used for temporary curses like the wizard duffelbags

awakened

items given the curse of hunger will not seek out someone else to latch onto until they are dropped for the first time.

current_health

The bag's current "health". IE, how many more times you need to poison it to stop it.

hunger

counts time passed since it ate food

max_health

The bag's max "health". IE, how many times you need to poison it.

Proc Details

on_drop

signal called from dropping parent

on_equip

signal called from equipping parent

on_examine

signal called on parent being examined

seek_new_target

proc called after a timer to awaken the AI in the cursed item if it doesn't have a target already.

\ No newline at end of file diff --git a/datum/component/curse_of_polymorph.html b/datum/component/curse_of_polymorph.html new file mode 100644 index 0000000000000..cb07be3d91961 --- /dev/null +++ b/datum/component/curse_of_polymorph.html @@ -0,0 +1,2 @@ +/datum/component/curse_of_polymorph - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

curse_of_polymorph

curse of polymorph component;

+

Used as a rpgloot suffix and wizard spell!

Procs

on_equipsignal called from equipping parent

Proc Details

on_equip

signal called from equipping parent

\ No newline at end of file diff --git a/datum/component/customizable_reagent_holder.html b/datum/component/customizable_reagent_holder.html new file mode 100644 index 0000000000000..0cf70fc1c4c71 --- /dev/null +++ b/datum/component/customizable_reagent_holder.html @@ -0,0 +1,13 @@ +/datum/component/customizable_reagent_holder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Custom Atom Component

When added to an atom, item ingredients can be put into that. +The sprite is updated and reagents are transferred.

+

If the component is added to something that is processed, creating new objects (being cut, for example), +the replacement type needs to also have the component. The ingredients will be copied over. Reagents are not +copied over since other components already take care of that.

Vars

fill_typeType of fill, can be [CUSTOM_INGREDIENT_ICON_NOCHANGE] for example.
ingredient_typeType of ingredients to accept, [CUSTOM_INGREDIENT_TYPE_EDIBLE] for example.
ingredientsList of item ingredients.
max_ingredientsNumber of max ingredients.
replacementType path of replacement atom.
screentip_verbAdds screentips for all items that call on this proc, defaults to "Add"
top_overlayOverlay used for certain fill types, always shows up on top.

Procs

add_ingredientAdds a new ingredient and updates the parent's name.
custom_adjectiveGives an adjective to describe the size of the custom food.
custom_typeGives the type of custom food (based on what the first ingredient was).
customizable_attackHandles when the customizable food is attacked by something.
food_exitedClear refs if our food "goes away" somehow
handle_fillHandles the icon update for a new ingredient.
handle_reagentsTakes the reagents from an ingredient.
mix_colorReturns the color of the input mixed with the top_overlay's color.
on_examineHandles when the customizable food is examined.
on_processedCopies over the parent's ingredients to the processing results (such as slices when the parent is cut).
on_requesting_context_from_itemAdds context sensitivy directly to the customizable reagent holder file for screentips +Arguments:
valid_ingredientProc that checks if an ingredient is valid or not, returning false if it isnt and true if it is.

Var Details

fill_type

Type of fill, can be [CUSTOM_INGREDIENT_ICON_NOCHANGE] for example.

ingredient_type

Type of ingredients to accept, [CUSTOM_INGREDIENT_TYPE_EDIBLE] for example.

ingredients

List of item ingredients.

max_ingredients

Number of max ingredients.

replacement

Type path of replacement atom.

screentip_verb

Adds screentips for all items that call on this proc, defaults to "Add"

top_overlay

Overlay used for certain fill types, always shows up on top.

Proc Details

add_ingredient

Adds a new ingredient and updates the parent's name.

custom_adjective

Gives an adjective to describe the size of the custom food.

custom_type

Gives the type of custom food (based on what the first ingredient was).

customizable_attack

Handles when the customizable food is attacked by something.

food_exited

Clear refs if our food "goes away" somehow

handle_fill

Handles the icon update for a new ingredient.

handle_reagents

Takes the reagents from an ingredient.

mix_color

Returns the color of the input mixed with the top_overlay's color.

on_examine

Handles when the customizable food is examined.

on_processed

Copies over the parent's ingredients to the processing results (such as slices when the parent is cut).

on_requesting_context_from_item

Adds context sensitivy directly to the customizable reagent holder file for screentips +Arguments:

+

valid_ingredient

Proc that checks if an ingredient is valid or not, returning false if it isnt and true if it is.

\ No newline at end of file diff --git a/datum/component/damage_aura.html b/datum/component/damage_aura.html new file mode 100644 index 0000000000000..ad2ec63294774 --- /dev/null +++ b/datum/component/damage_aura.html @@ -0,0 +1,2 @@ +/datum/component/damage_aura - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

damage_aura

Applies a status effect and deals damage to people in the area. +Will deal more damage the more people are present.

Vars

blood_damageAmount of blood to damage over a second
brute_damageBrute damage to damage over a second
burn_damageBurn damage to damage over a second
current_ownerSets a special set of conditions for the owner
damage_messageIf set, gives a message when damaged
immune_factionsWhich factions are immune to the damage aura
last_damage_effect_timeDeclares the cooldown timer for the damage aura effect to take place
message_probabilityProbability for above.
organ_damageMap of organ (such as ORGAN_SLOT_BRAIN) to damage damage over a second
rangeThe range of which to damage
requires_visibilityWhether or not you must be a visible object of the parent
simple_damageAmount of damage to damage on simple mobs over a second
stamina_damageStamina damage to damage over a second
suffocation_damageSuffocation damage to damage over a second
toxin_damageToxin damage to damage over a second

Procs

check_requirementsThe requirements for the mob to be effected by the damage aura.
owner_effectWhat effect the damage aura has if it has an owner.

Var Details

blood_damage

Amount of blood to damage over a second

brute_damage

Brute damage to damage over a second

burn_damage

Burn damage to damage over a second

current_owner

Sets a special set of conditions for the owner

damage_message

If set, gives a message when damaged

immune_factions

Which factions are immune to the damage aura

last_damage_effect_time

Declares the cooldown timer for the damage aura effect to take place

message_probability

Probability for above.

organ_damage

Map of organ (such as ORGAN_SLOT_BRAIN) to damage damage over a second

range

The range of which to damage

requires_visibility

Whether or not you must be a visible object of the parent

simple_damage

Amount of damage to damage on simple mobs over a second

stamina_damage

Stamina damage to damage over a second

suffocation_damage

Suffocation damage to damage over a second

toxin_damage

Toxin damage to damage over a second

Proc Details

check_requirements

The requirements for the mob to be effected by the damage aura.

owner_effect

What effect the damage aura has if it has an owner.

\ No newline at end of file diff --git a/datum/component/damage_chain.html b/datum/component/damage_chain.html new file mode 100644 index 0000000000000..1ce96ca6c9837 --- /dev/null +++ b/datum/component/damage_chain.html @@ -0,0 +1 @@ +/datum/component/damage_chain - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

damage_chain

Draws a line between you and another atom, hurt anyone stood in the line

Vars

chainOur chain
chain_damage_feedbackOptional callback for additional visuals or text display when dealing damage
damage_per_tickDamage inflicted per tick
damage_typeType of damage to inflict
feedback_intervalWe will fire the damage feedback callback on every x successful attacks
reset_feedback_timerTime between making any attacks at which we just reset the successful attack counter
successful_attacksHow many successful attacks have we made?
tick_cooldownTracks when we can next deal damage
tick_intervalHow often do we attempt to deal damage?
validate_targetOptional callback which checks if we can damage the target

Procs

end_beamDestroy ourself
reset_feedbackMake it so that the next time we hit something we'll invoke the feedback callback

Var Details

chain

Our chain

chain_damage_feedback

Optional callback for additional visuals or text display when dealing damage

damage_per_tick

Damage inflicted per tick

damage_type

Type of damage to inflict

feedback_interval

We will fire the damage feedback callback on every x successful attacks

reset_feedback_timer

Time between making any attacks at which we just reset the successful attack counter

successful_attacks

How many successful attacks have we made?

tick_cooldown

Tracks when we can next deal damage

tick_interval

How often do we attempt to deal damage?

validate_target

Optional callback which checks if we can damage the target

Proc Details

end_beam

Destroy ourself

reset_feedback

Make it so that the next time we hit something we'll invoke the feedback callback

\ No newline at end of file diff --git a/datum/component/damage_tracker.html b/datum/component/damage_tracker.html new file mode 100644 index 0000000000000..1b92ae3be0072 --- /dev/null +++ b/datum/component/damage_tracker.html @@ -0,0 +1 @@ +/datum/component/damage_tracker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

damage_tracker

This component tracks the original damage values of a mob when it is attached.

Vars

brute_damageHow much brute damage did the mob have on them?
burn_damageHow much burn damage did the mob have on them?
oxygen_damageHow much oxygen damage did the mob have on them?
reapply_damage_on_removalDo we need to reapply the damage values when this component is removed?
stored_blood_volumeHow much blood did the mob have?
toxin_damageHow much toxin damage did the mob have on them?

Procs

reapply_damageReapplies the stored damage variables to the parent mob. Returns TRUE when succesfully ran, otherwise returns FALSE
update_damage_valuesUpdates the stored damage variables for the parent mob. Returns TRUE when succesfully ran, otherwise returns FALSE

Var Details

brute_damage

How much brute damage did the mob have on them?

burn_damage

How much burn damage did the mob have on them?

oxygen_damage

How much oxygen damage did the mob have on them?

reapply_damage_on_removal

Do we need to reapply the damage values when this component is removed?

stored_blood_volume

How much blood did the mob have?

toxin_damage

How much toxin damage did the mob have on them?

Proc Details

reapply_damage

Reapplies the stored damage variables to the parent mob. Returns TRUE when succesfully ran, otherwise returns FALSE

update_damage_values

Updates the stored damage variables for the parent mob. Returns TRUE when succesfully ran, otherwise returns FALSE

\ No newline at end of file diff --git a/datum/component/damage_tracker/human.html b/datum/component/damage_tracker/human.html new file mode 100644 index 0000000000000..4a8a038f2c683 --- /dev/null +++ b/datum/component/damage_tracker/human.html @@ -0,0 +1 @@ +/datum/component/damage_tracker/human - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

human

This does the same as it's parent, but it also tracks organ damage.

Vars

brain_damageHow much damage does the owner's brain currently have?
ear_damageHow much damage does the owner's ears currently have?
eye_damageHow much damage does the owner's eyes currently have?
heart_damageHow much damage does the owner's heart currently have?
liver_damageHow much damage does the owner's liver currently have?
lung_damageHow much damage does the owner's lungs currently have?
stomach_damageHow much damage does the owner's stomach currently have?
trauma_listWhat brain traumas does the owner currently have?

Var Details

brain_damage

How much damage does the owner's brain currently have?

ear_damage

How much damage does the owner's ears currently have?

eye_damage

How much damage does the owner's eyes currently have?

heart_damage

How much damage does the owner's heart currently have?

liver_damage

How much damage does the owner's liver currently have?

lung_damage

How much damage does the owner's lungs currently have?

stomach_damage

How much damage does the owner's stomach currently have?

trauma_list

What brain traumas does the owner currently have?

\ No newline at end of file diff --git a/datum/component/dart_insert.html b/datum/component/dart_insert.html new file mode 100644 index 0000000000000..e81f1ebadab16 --- /dev/null +++ b/datum/component/dart_insert.html @@ -0,0 +1,5 @@ +/datum/component/dart_insert - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dart_insert

Component for allowing items to be inserted into foam darts. +The parent can register signal handlers for COMSIG_DART_INSERT_ADDED, +COMSIG_DART_INSERT_REMOVED to define custom behavior for when the item +is added to/removed from a dart, and COMSIG_DART_INSERT_GET_VAR_MODIFIERS +to define the modifications the item makes to the vars of the fired projectile.

Vars

casing_overlay_iconThe icon file used for the overlay applied over the containing ammo casing
casing_overlay_icon_stateThe icon state used for the overlay applied over the containing ammo casing
holder_casingA reference to the ammo casing this component's parent was inserted into
holder_projectileA reference to the projectile this component's parent was inserted into
modifier_getterOptional callback to invoke when acquiring projectile var modifiers
projectile_overlay_iconThe icon file used for the overlay applied over the containing projectile
projectile_overlay_icon_stateThe icon state used for the overlay applied over the containing projectile
var_modifiersList for tracking the modifications this component has made to the vars of the containing projectile

Var Details

casing_overlay_icon

The icon file used for the overlay applied over the containing ammo casing

casing_overlay_icon_state

The icon state used for the overlay applied over the containing ammo casing

holder_casing

A reference to the ammo casing this component's parent was inserted into

holder_projectile

A reference to the projectile this component's parent was inserted into

modifier_getter

Optional callback to invoke when acquiring projectile var modifiers

projectile_overlay_icon

The icon file used for the overlay applied over the containing projectile

projectile_overlay_icon_state

The icon state used for the overlay applied over the containing projectile

var_modifiers

List for tracking the modifications this component has made to the vars of the containing projectile

\ No newline at end of file diff --git a/datum/component/deadchat_control.html b/datum/component/deadchat_control.html new file mode 100644 index 0000000000000..1929d1663f019 --- /dev/null +++ b/datum/component/deadchat_control.html @@ -0,0 +1,10 @@ +/datum/component/deadchat_control - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

deadchat_control

Deadchat Plays Things - The Componenting

+

Allows deadchat to control stuff and things by typing commands into chat. +These commands will then trigger callbacks to execute procs!

Vars

ckey_to_cooldownAssoc list of ckey:value pairings. In DEMOCRACY_MODE, value is the player's vote. In ANARCHY_MODE, value is world.time when their cooldown expires.
deadchat_modeA bitfield containing the mode which this component uses (DEMOCRACY_MODE or ANARCHY_MODE) and other settings)
generated_point_of_interestSet to true if a point of interest was created for an object, and needs to be removed if deadchat control is removed. Needed for preventing objects from having two points of interest.
input_cooldownIn DEMOCRACY_MODE, this is how long players have to vote on an input. In ANARCHY_MODE, this is how long between inputs for each unique player.
inputsAssoc list of key-chat command string, value-callback pairs. list("right" = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step), src, EAST))
on_removalCallback invoked when this component is Destroy()ed to allow the parent to return to a non-deadchat controlled state.
orbitersList of everything orbitting this component's parent.
timeridThe id for the DEMOCRACY_MODE looping vote timer.

Procs

async_handle_vv_topicAsync proc handling the alert input and associated logic for an admin removing this component via the VV dropdown.
end_cooldownRemoves the ghost from the ckey_to_cooldown list and lets them know they are free to submit a command for the parent again.
handle_vv_topicAllows for this component to be removed via a dedicated VV dropdown entry.
on_examineInforms any examiners to the inputs available as part of deadchat control, as well as the current operating mode and cooldowns.
waive_automutePrevents messages used to control the parent from counting towards the automute threshold for repeated identical messages.

Var Details

ckey_to_cooldown

Assoc list of ckey:value pairings. In DEMOCRACY_MODE, value is the player's vote. In ANARCHY_MODE, value is world.time when their cooldown expires.

deadchat_mode

A bitfield containing the mode which this component uses (DEMOCRACY_MODE or ANARCHY_MODE) and other settings)

generated_point_of_interest

Set to true if a point of interest was created for an object, and needs to be removed if deadchat control is removed. Needed for preventing objects from having two points of interest.

input_cooldown

In DEMOCRACY_MODE, this is how long players have to vote on an input. In ANARCHY_MODE, this is how long between inputs for each unique player.

inputs

Assoc list of key-chat command string, value-callback pairs. list("right" = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step), src, EAST))

on_removal

Callback invoked when this component is Destroy()ed to allow the parent to return to a non-deadchat controlled state.

orbiters

List of everything orbitting this component's parent.

timerid

The id for the DEMOCRACY_MODE looping vote timer.

Proc Details

async_handle_vv_topic

Async proc handling the alert input and associated logic for an admin removing this component via the VV dropdown.

end_cooldown

Removes the ghost from the ckey_to_cooldown list and lets them know they are free to submit a command for the parent again.

handle_vv_topic

Allows for this component to be removed via a dedicated VV dropdown entry.

on_examine

Informs any examiners to the inputs available as part of deadchat control, as well as the current operating mode and cooldowns.

waive_automute

Prevents messages used to control the parent from counting towards the automute threshold for repeated identical messages.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/component/deadchat_control/cardinal_movement.html b/datum/component/deadchat_control/cardinal_movement.html new file mode 100644 index 0000000000000..adfa5ab91ceb1 --- /dev/null +++ b/datum/component/deadchat_control/cardinal_movement.html @@ -0,0 +1,3 @@ +/datum/component/deadchat_control/cardinal_movement - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cardinal_movement

Procs

InitializeDeadchat Moves Things

Proc Details

Initialize

Deadchat Moves Things

+

A special variant of the deadchat_control component that comes pre-baked with all the hottest inputs for a spicy +singularity or vomit goose.

\ No newline at end of file diff --git a/datum/component/deadchat_control/immovable_rod.html b/datum/component/deadchat_control/immovable_rod.html new file mode 100644 index 0000000000000..cc5e4c6620282 --- /dev/null +++ b/datum/component/deadchat_control/immovable_rod.html @@ -0,0 +1,3 @@ +/datum/component/deadchat_control/immovable_rod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

immovable_rod

Procs

InitializeDeadchat Moves Things

Proc Details

Initialize

Deadchat Moves Things

+

A special variant of the deadchat_control component that comes pre-baked with all the hottest inputs for spicy +immovable rod.

\ No newline at end of file diff --git a/datum/component/death_linked.html b/datum/component/death_linked.html new file mode 100644 index 0000000000000..cb4f1c9d0fd66 --- /dev/null +++ b/datum/component/death_linked.html @@ -0,0 +1,2 @@ +/datum/component/death_linked - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

death_linked

+

When the owner of this component dies it also gibs a linked mob

Vars

linked_mobThe mob that also dies when the user dies

Procs

on_deathsignal called by the stat of the target changing

Var Details

linked_mob

The mob that also dies when the user dies

Proc Details

on_death

signal called by the stat of the target changing

\ No newline at end of file diff --git a/datum/component/decomposition.html b/datum/component/decomposition.html new file mode 100644 index 0000000000000..c9dc5d527c978 --- /dev/null +++ b/datum/component/decomposition.html @@ -0,0 +1 @@ +/datum/component/decomposition - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

decomposition

Makes things decompose when exposed to germs. Requires /datum/component/germ_sensitive to detect exposure.

Vars

decomp_flagsUsed to give raw/gross food lower timers
decomp_resultUse for determining what kind of item the food decomposes into.
decomp_timeridUsed to stop decomposition & check for the examine proc
handledMakes sure maploaded food only starts decomposing if a player's EVER picked it up before
original_timeThe total time that this takes to decompose
particle_effectStink particle holder
produce_antsDoes our food attract ants?
protectedUsed to stop food in someone's hand & in storage slots from decomposing.
stink_particlesStink particle type, if we are supposed to create stink particles
stink_timeridUsed to create stink lines when the food is close to going bad
time_remainingUsed so the timer won't reset.

Procs

get_timeReturns the time remaining in decomp, either from our potential timer or our own value, whichever is more useful

Var Details

decomp_flags

Used to give raw/gross food lower timers

decomp_result

Use for determining what kind of item the food decomposes into.

decomp_timerid

Used to stop decomposition & check for the examine proc

handled

Makes sure maploaded food only starts decomposing if a player's EVER picked it up before

original_time

The total time that this takes to decompose

particle_effect

Stink particle holder

produce_ants

Does our food attract ants?

protected

Used to stop food in someone's hand & in storage slots from decomposing.

stink_particles

Stink particle type, if we are supposed to create stink particles

stink_timerid

Used to create stink lines when the food is close to going bad

time_remaining

Used so the timer won't reset.

Proc Details

get_time

Returns the time remaining in decomp, either from our potential timer or our own value, whichever is more useful

\ No newline at end of file diff --git a/datum/component/dejavu.html b/datum/component/dejavu.html new file mode 100644 index 0000000000000..c37b520b2104d --- /dev/null +++ b/datum/component/dejavu.html @@ -0,0 +1,5 @@ +/datum/component/dejavu - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dejavu

A component to reset the parent to its previous state after some time passes

Vars

brain_lossThe starting value of brain loss at the beginning of the effect
brute_lossThe starting value of brute loss at the beginning of the effect +This only applies to simple animals
integrityThe starting value of integrity at the beginning of the effect +This only applies to objects
no_rewinds_messagemessage sent when dejavu is out of rewinds
oxy_lossThe starting value of oxygen loss at the beginning of the effect
repeating_componentDo we add a new component before teleporting the target to they teleport to the place where we teleported them from?
rewind_intervalHow long to wait between each rewind
rewind_messagemessage sent when dejavu rewinds
rewind_typeDetermined by the type of the parent so different behaviours can happen per type
rewinds_remainingHow many rewinds will happen before the effect ends
saved_bodypartsA list of body parts saved at the beginning of the effect
stamina_lossThe starting value of stamina loss at the beginning of the effect
starting_turfThe turf the parent was on when this components was applied, they get moved back here after the duration
tox_lossThe starting value of toxin loss at the beginning of the effect

Var Details

brain_loss

The starting value of brain loss at the beginning of the effect

brute_loss

The starting value of brute loss at the beginning of the effect +This only applies to simple animals

integrity

The starting value of integrity at the beginning of the effect +This only applies to objects

no_rewinds_message

message sent when dejavu is out of rewinds

oxy_loss

The starting value of oxygen loss at the beginning of the effect

repeating_component

Do we add a new component before teleporting the target to they teleport to the place where we teleported them from?

rewind_interval

How long to wait between each rewind

rewind_message

message sent when dejavu rewinds

rewind_type

Determined by the type of the parent so different behaviours can happen per type

rewinds_remaining

How many rewinds will happen before the effect ends

saved_bodyparts

A list of body parts saved at the beginning of the effect

stamina_loss

The starting value of stamina loss at the beginning of the effect

starting_turf

The turf the parent was on when this components was applied, they get moved back here after the duration

tox_loss

The starting value of toxin loss at the beginning of the effect

\ No newline at end of file diff --git a/datum/component/deployable.html b/datum/component/deployable.html new file mode 100644 index 0000000000000..0622af5999ed6 --- /dev/null +++ b/datum/component/deployable.html @@ -0,0 +1,7 @@ +/datum/component/deployable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

deployable

Deployable - Bring your big guns with you, and smack em' down where you want.

+

Allows items to spawn other items (usually objects) in front of the user after a short delay. +If attaching this to something: +Set deploy_time to a number in seconds for the deploy delay +Set thing_to_be_deployed to an obj path for the thing that gets spawned +Multiple deployments and deployments work together to allow a thing to be placed down several times. If multiple deployments is false then don't worry about deployments +Direction setting true means the object spawned will face the direction of the person who deployed it, false goes to the default direction

Vars

add_description_hintIf the component adds a little bit into the parent's description
deploy_timeThe time it takes to deploy the object
deployed_nameUsed in getting the name of the deployed object
deploymentsHow many times we can deploy the parent, if multiple deployments is set to true and this gets below zero, the parent will be deleted
direction_settingIf the direction of the thing we place is changed upon placing
multiple_deploymentsCan the parent be deployed multiple times
thing_to_be_deployedThe object that gets spawned if deployed successfully

Var Details

add_description_hint

If the component adds a little bit into the parent's description

deploy_time

The time it takes to deploy the object

deployed_name

Used in getting the name of the deployed object

deployments

How many times we can deploy the parent, if multiple deployments is set to true and this gets below zero, the parent will be deleted

direction_setting

If the direction of the thing we place is changed upon placing

multiple_deployments

Can the parent be deployed multiple times

thing_to_be_deployed

The object that gets spawned if deployed successfully

\ No newline at end of file diff --git a/datum/component/direct_explosive_trap.html b/datum/component/direct_explosive_trap.html new file mode 100644 index 0000000000000..128db18756b3b --- /dev/null +++ b/datum/component/direct_explosive_trap.html @@ -0,0 +1,2 @@ +/datum/component/direct_explosive_trap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

direct_explosive_trap

Responds to certain signals and 'explodes' on the person using the item. +Differs from interaction_booby_trap in that this doesn't actually explode, it just directly calls ex_act on one person.

Vars

explosive_checksOptional additional target checks before we go off
explosive_forceAmount of force to apply
glow_colourColour for examine notification
saboteurAn optional mob to inform about explosions
triggering_signalsSignals which set off the bomb, must pass a mob as the first non-source argument

Procs

bomb_expiredCalled if we sit too long without going off
explodeBlow up
on_bomber_deletedDon't hang a reference to the person who placed the bomb
on_examinedLet people know something is up

Var Details

explosive_checks

Optional additional target checks before we go off

explosive_force

Amount of force to apply

glow_colour

Colour for examine notification

saboteur

An optional mob to inform about explosions

triggering_signals

Signals which set off the bomb, must pass a mob as the first non-source argument

Proc Details

bomb_expired

Called if we sit too long without going off

explode

Blow up

on_bomber_deleted

Don't hang a reference to the person who placed the bomb

on_examined

Let people know something is up

\ No newline at end of file diff --git a/datum/component/echolocation.html b/datum/component/echolocation.html new file mode 100644 index 0000000000000..8f85cbb0f97bf --- /dev/null +++ b/datum/component/echolocation.html @@ -0,0 +1 @@ +/datum/component/echolocation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

echolocation

Vars

allowed_pathsTypecache of all the allowed paths to render.
black_white_matrixA matrix that turns everything except #ffffff into pure blackness, used for our images (the outlines are #ffffff).
blocking_traitThis trait blocks us from receiving echolocation.
client_colorRef of the client color we give to the echolocator.
cooldown_lastCooldown for the echolocation.
cooldown_timeTime between echolocations. IMPORTANT!! The effective time in local and the effective time in live are very different. The second is noticeably slower,
danger_turfsTypecache of turfs that are dangerous, to give them a special icon.
echo_colorThe color of the echolocation user when seen by other echolocators
echo_groupWith mobs that have this echo group in their echolocation receiver trait, we share echo images.
echo_rangeRadius of our view.
fade_in_timeTime for the image to fade in.
fade_out_timeTime for the image to fade out and delete itself.
image_expiry_timeTime for the image to start fading out.
images_are_staticAre images static? If yes, spawns them on the turf and makes them not change location. Otherwise they change location and pixel shift with the original.
receiversAssociative list of receivers to lists of atoms they are rendering (those atoms are associated to data of the image and time they were rendered at).
saved_appearancesAll the saved appearances, keyed by icon-icon_state.
show_own_outlineShould the mob see itself outlined?
stallAre we temporarily halting visual processing on this component?
white_matrixA matrix that turns everything into pure white.

Var Details

allowed_paths

Typecache of all the allowed paths to render.

black_white_matrix

A matrix that turns everything except #ffffff into pure blackness, used for our images (the outlines are #ffffff).

blocking_trait

This trait blocks us from receiving echolocation.

client_color

Ref of the client color we give to the echolocator.

cooldown_last

Cooldown for the echolocation.

cooldown_time

Time between echolocations. IMPORTANT!! The effective time in local and the effective time in live are very different. The second is noticeably slower,

danger_turfs

Typecache of turfs that are dangerous, to give them a special icon.

echo_color

The color of the echolocation user when seen by other echolocators

echo_group

With mobs that have this echo group in their echolocation receiver trait, we share echo images.

echo_range

Radius of our view.

fade_in_time

Time for the image to fade in.

fade_out_time

Time for the image to fade out and delete itself.

image_expiry_time

Time for the image to start fading out.

images_are_static

Are images static? If yes, spawns them on the turf and makes them not change location. Otherwise they change location and pixel shift with the original.

receivers

Associative list of receivers to lists of atoms they are rendering (those atoms are associated to data of the image and time they were rendered at).

saved_appearances

All the saved appearances, keyed by icon-icon_state.

show_own_outline

Should the mob see itself outlined?

stall

Are we temporarily halting visual processing on this component?

white_matrix

A matrix that turns everything into pure white.

\ No newline at end of file diff --git a/datum/component/edible.html b/datum/component/edible.html new file mode 100644 index 0000000000000..4497b0fe254b2 --- /dev/null +++ b/datum/component/edible.html @@ -0,0 +1 @@ +/datum/component/edible - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

edible

Vars

after_eatCallback to be ran for when you take a bite of something
bite_consumptionAmount of reagents taken per bite
bitecountAmount of bites taken so far
check_likedCallback to be ran for when the code check if the food is liked, allowing for unique overrides for special foods like donuts with cops.
eat_timeAmount of seconds it takes to eat this food
eatverbsMessage to send when eating
food_flagsFlags for food
foodtypesBitfield of the types of this food
junkinessDefines how much it lowers someones satiety (Need to eat, essentialy)
last_check_timeLast time we checked for food likes
on_consumeCallback to be ran for when you finish eating something
tastesThe flavortext for taste (haha get it flavor text)
volumeThe initial volume of the foods reagents

Procs

CanConsumeChecks whether or not the eater can actually consume the food
IsFoodGoneMakes sure the thing hasn't been destroyed or fully eaten to prevent eating phantom edibles
OnCraftCalled when food is crafted through a crafting recipe datum.
OnProcessedCalled when food is created through processing (Usually this means it was sliced). We use this to pass the OG items reagents.
On_ConsumeDelete the item when it is fully eaten
TakeBiteThis function lets the eater take a bite and transfers the reagents to the eater.
TryToEatAll the checks for the act of eating itself and
UseByAnimalAbility to feed food to puppers
apply_buffApplies food buffs according to the crafting complexity
checkLikedCheck foodtypes to see if we should send a moodlet
count_matching_foodtypesGet the number of matching food types in provided bitfields
edible_ingredient_addedResponse to an edible ingredient being added to parent.
get_perceived_food_qualityGet food quality adjusted according to eater's preferences
get_recipe_complexityGet the complexity of the crafted food
on_enteredAbility to feed food to puppers
on_ooze_eatResponse to oozes trying to eat something edible
setup_initial_reagentsSets up the initial reagents of the food.
used_to_customizeResponse to being used to customize something

Var Details

after_eat

Callback to be ran for when you take a bite of something

bite_consumption

Amount of reagents taken per bite

bitecount

Amount of bites taken so far

check_liked

Callback to be ran for when the code check if the food is liked, allowing for unique overrides for special foods like donuts with cops.

eat_time

Amount of seconds it takes to eat this food

eatverbs

Message to send when eating

food_flags

Flags for food

foodtypes

Bitfield of the types of this food

junkiness

Defines how much it lowers someones satiety (Need to eat, essentialy)

last_check_time

Last time we checked for food likes

on_consume

Callback to be ran for when you finish eating something

tastes

The flavortext for taste (haha get it flavor text)

volume

The initial volume of the foods reagents

Proc Details

CanConsume

Checks whether or not the eater can actually consume the food

IsFoodGone

Makes sure the thing hasn't been destroyed or fully eaten to prevent eating phantom edibles

OnCraft

Called when food is crafted through a crafting recipe datum.

OnProcessed

Called when food is created through processing (Usually this means it was sliced). We use this to pass the OG items reagents.

On_Consume

Delete the item when it is fully eaten

TakeBite

This function lets the eater take a bite and transfers the reagents to the eater.

TryToEat

All the checks for the act of eating itself and

UseByAnimal

Ability to feed food to puppers

apply_buff

Applies food buffs according to the crafting complexity

checkLiked

Check foodtypes to see if we should send a moodlet

count_matching_foodtypes

Get the number of matching food types in provided bitfields

edible_ingredient_added

Response to an edible ingredient being added to parent.

get_perceived_food_quality

Get food quality adjusted according to eater's preferences

get_recipe_complexity

Get the complexity of the crafted food

on_entered

Ability to feed food to puppers

on_ooze_eat

Response to oozes trying to eat something edible

setup_initial_reagents

Sets up the initial reagents of the food.

used_to_customize

Response to being used to customize something

\ No newline at end of file diff --git a/datum/component/effect_remover.html b/datum/component/effect_remover.html new file mode 100644 index 0000000000000..626747a4d5c46 --- /dev/null +++ b/datum/component/effect_remover.html @@ -0,0 +1 @@ +/datum/component/effect_remover - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

effect_remover

Vars

effects_we_clearA typecache of all effects we can clear with our item.
on_clear_callbackCallback invoked with removal is done.
success_feedbackLine sent to the user on successful removal.
success_forcesayLine forcesaid by the user on successful removal.
time_to_removeIf above 0, how long it takes while standing still to remove the effect.
tip_textThe text used in the screentip when our parent is hovering over an item we can clear. Ex "Destroy rune"

Var Details

effects_we_clear

A typecache of all effects we can clear with our item.

on_clear_callback

Callback invoked with removal is done.

success_feedback

Line sent to the user on successful removal.

success_forcesay

Line forcesaid by the user on successful removal.

time_to_remove

If above 0, how long it takes while standing still to remove the effect.

tip_text

The text used in the screentip when our parent is hovering over an item we can clear. Ex "Destroy rune"

\ No newline at end of file diff --git a/datum/component/egg_layer.html b/datum/component/egg_layer.html new file mode 100644 index 0000000000000..5b88f950a03a0 --- /dev/null +++ b/datum/component/egg_layer.html @@ -0,0 +1,3 @@ +/datum/component/egg_layer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

egg layer component!

Component that manages how many eggs to lay, what can be fed to the mob to make them lay more, and what is actually laid. +Since the only real interaction with the component is an attackby, the nice part is that we're able to make this an atom level proc. +egg_layer will loudly fail if you do not provide it the arguments, as to encourage explicicy(?)

Vars

egg_laid_callbackcallback to a proc that allows the parent to modify their new eggs
egg_typeitem laid by the mob
eggs_added_from_eatinghow many eggs to lay given from food
eggs_lefthow many eggs left to lay
feed_messagesmessages sent when fed
food_typesitems that can be fed to the mob to make it lay more eggs
lay_messagesmessages sent when laying an egg
max_eggs_heldhow many eggs can be stored

Var Details

egg_laid_callback

callback to a proc that allows the parent to modify their new eggs

egg_type

item laid by the mob

eggs_added_from_eating

how many eggs to lay given from food

eggs_left

how many eggs left to lay

feed_messages

messages sent when fed

food_types

items that can be fed to the mob to make it lay more eggs

lay_messages

messages sent when laying an egg

max_eggs_held

how many eggs can be stored

\ No newline at end of file diff --git a/datum/component/electrified_buckle.html b/datum/component/electrified_buckle.html new file mode 100644 index 0000000000000..8a684b8963b51 --- /dev/null +++ b/datum/component/electrified_buckle.html @@ -0,0 +1,10 @@ +/datum/component/electrified_buckle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

electrified_buckle component:

attach it to any atom/movable that can be buckled to in order to have it shock mobs buckled to it. by default it shocks mobs buckled to parent every shock_loop_time. +the parent is supposed to define its behavior with arguments in AddComponent

Vars

electric_buckle_cooldownit will only shock once every shock_loop_time
requested_overlaysthis is casted to the overlay we put on parent_chair
requested_signal_parent_emitsthis signal was given as an argument to register for parent to emit, if its emitted to parent then shock_on_demand is called. var is so it can be unregistered
required_objectif usage_flags has SHOCK_REQUIREMENT_ITEM, this is the item required to be inside parent in order for it to shock buckled mobs
shock_damagehow much damage is done per shock iff usage_flags doesnt have SHOCK_REQUIREMENT_LIVE_CABLE
shock_loop_timehow long the component waits before shocking the mob buckled to parent again
shock_on_loopif true, this will shock the buckled mob every shock_loop_time in process()
usage_flagsthese flags tells this instance what is required in order to allow shocking

Procs

InitializeInitialize args:
processwhere the guinea pig is actually shocked if possible
shock_on_demanda shock that is toggled manually

Var Details

electric_buckle_cooldown

it will only shock once every shock_loop_time

requested_overlays

this is casted to the overlay we put on parent_chair

requested_signal_parent_emits

this signal was given as an argument to register for parent to emit, if its emitted to parent then shock_on_demand is called. var is so it can be unregistered

required_object

if usage_flags has SHOCK_REQUIREMENT_ITEM, this is the item required to be inside parent in order for it to shock buckled mobs

shock_damage

how much damage is done per shock iff usage_flags doesnt have SHOCK_REQUIREMENT_LIVE_CABLE

shock_loop_time

how long the component waits before shocking the mob buckled to parent again

shock_on_loop

if true, this will shock the buckled mob every shock_loop_time in process()

usage_flags

these flags tells this instance what is required in order to allow shocking

Proc Details

Initialize

Initialize args:

+

process

where the guinea pig is actually shocked if possible

shock_on_demand

a shock that is toggled manually

\ No newline at end of file diff --git a/datum/component/embedded.html b/datum/component/embedded.html new file mode 100644 index 0000000000000..d2aa0a54e7d39 --- /dev/null +++ b/datum/component/embedded.html @@ -0,0 +1,4 @@ +/datum/component/embedded - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

embedded

Vars

harmfulif both our pain multiplier and jostle pain multiplier are 0, we're harmless and can omit most of the damage related stuff

Procs

checkTweezeThe signal for listening to see if someone is using a hemostat on us to pluck out this object
complete_rip_outeverything async that ripOut used to do
damaging_removalProc that actually does the damage associated with ripping something out of yourself. Call this before safeRemove.
fallOutCalled when then item randomly falls out of a carbon. This handles the damage and descriptors, then calls safe_remove()
jostleCheck/////////BEHAVIOR PROCS//////////////
magic_pullCalled when an object is ripped out of someone's body by magic or other abnormal means
ripOutCalled when a carbon with an object embedded/stuck to them inspects themselves and clicks the appropriate link to begin ripping the item out. This handles the ripping attempt, descriptors, and dealing damage, then calls safe_remove()
safeRemoveThis proc handles the final step and actual removal of an embedded/stuck item from a carbon, whether or not it was actually removed safely. +If you want the thing to go into someone's hands rather than the floor, pass them in to_hands
tweezePluckThe actual action for pulling out an embedded object with a hemostat
weaponDeletedSomething deleted or moved our weapon while it was embedded, how rude!

Var Details

harmful

if both our pain multiplier and jostle pain multiplier are 0, we're harmless and can omit most of the damage related stuff

Proc Details

checkTweeze

The signal for listening to see if someone is using a hemostat on us to pluck out this object

complete_rip_out

everything async that ripOut used to do

damaging_removal

Proc that actually does the damage associated with ripping something out of yourself. Call this before safeRemove.

fallOut

Called when then item randomly falls out of a carbon. This handles the damage and descriptors, then calls safe_remove()

jostleCheck

/////////BEHAVIOR PROCS//////////////

+

Called every time a carbon with a harmful embed moves, rolling a chance for the item to cause pain. The chance is halved if the carbon is crawling or walking.

magic_pull

Called when an object is ripped out of someone's body by magic or other abnormal means

ripOut

Called when a carbon with an object embedded/stuck to them inspects themselves and clicks the appropriate link to begin ripping the item out. This handles the ripping attempt, descriptors, and dealing damage, then calls safe_remove()

safeRemove

This proc handles the final step and actual removal of an embedded/stuck item from a carbon, whether or not it was actually removed safely. +If you want the thing to go into someone's hands rather than the floor, pass them in to_hands

tweezePluck

The actual action for pulling out an embedded object with a hemostat

weaponDeleted

Something deleted or moved our weapon while it was embedded, how rude!

\ No newline at end of file diff --git a/datum/component/energized.html b/datum/component/energized.html new file mode 100644 index 0000000000000..54cea499c096b --- /dev/null +++ b/datum/component/energized.html @@ -0,0 +1 @@ +/datum/component/energized - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

energized

Vars

default_connectionswhat we give to connect_loc by default, makes slippable mobs moving over us slip
inboundInbound station
outboundOutbound station
specific_transport_idTransport ID of the tram
transport_refWeakref to the tram

Var Details

default_connections

what we give to connect_loc by default, makes slippable mobs moving over us slip

inbound

Inbound station

outbound

Outbound station

specific_transport_id

Transport ID of the tram

transport_ref

Weakref to the tram

\ No newline at end of file diff --git a/datum/component/engraved.html b/datum/component/engraved.html new file mode 100644 index 0000000000000..0b83a78853b16 --- /dev/null +++ b/datum/component/engraved.html @@ -0,0 +1,3 @@ +/datum/component/engraved - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

engraved component!

component for walls that applies an engraved overlay and lets you examine it to read a story (+ art element yay) +new creations will get a high art value, cross round scrawlings will get a low one. +MUST be a component, though it doesn't look like it. SSPersistence demandeth

Vars

engraved_descriptionthe generated story string
icon_state_appendwhat random icon state should the engraving have
persistent_savewhether this is a new engraving, or a persistence loaded one.
story_valueThe story value of this piece.

Procs

on_examinesignal called on parent being examined
on_update_overlaysUsed to maintain the acid overlay on the parent /atom.
save_persistentreturns all the information SSpersistence needs in a list to load up this engraving on a future round!

Var Details

engraved_description

the generated story string

icon_state_append

what random icon state should the engraving have

persistent_save

whether this is a new engraving, or a persistence loaded one.

story_value

The story value of this piece.

Proc Details

on_examine

signal called on parent being examined

on_update_overlays

Used to maintain the acid overlay on the parent /atom.

save_persistent

returns all the information SSpersistence needs in a list to load up this engraving on a future round!

\ No newline at end of file diff --git a/datum/component/evolutionary_leap.html b/datum/component/evolutionary_leap.html new file mode 100644 index 0000000000000..662fdff241517 --- /dev/null +++ b/datum/component/evolutionary_leap.html @@ -0,0 +1,2 @@ +/datum/component/evolutionary_leap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

evolutionary_leap

Evolutionary Leap Component; set a time in the round for a mob to evolve into a more dangerous form!

+

Used for bileworms, to turn into vileworms!

Vars

evolve_markhow much time until the parent makes an evolutionary leap
evolve_pathwhat this mob turns into
timer_idid for leap timer

Procs

comp_on_round_startProc ran when round starts.

Var Details

evolve_mark

how much time until the parent makes an evolutionary leap

evolve_path

what this mob turns into

timer_id

id for leap timer

Proc Details

comp_on_round_start

Proc ran when round starts.

\ No newline at end of file diff --git a/datum/component/experiment_handler.html b/datum/component/experiment_handler.html new file mode 100644 index 0000000000000..8e6230965fddb --- /dev/null +++ b/datum/component/experiment_handler.html @@ -0,0 +1,41 @@ +/datum/component/experiment_handler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Experiment Handler

This is the component for interacting with experiments from a connected techweb. It is generic +and should be set-up to automatically work on any class it is attached to without outside code +(Excluding potential callbacks)

Vars

allowed_experimentsHolds the list of types of experiments that this experiment_handler can interact with
blacklisted_experimentsHolds the list of types of experiments that this experimennt_handler should NOT interact with
config_flagsAdditional configuration flags for how the experiment_handler operates
disallowed_traitsA set of optional experiment traits (see defines) that are disallowed for any experiments
linked_webHolds the currently linked techweb to get experiments from
selected_experimentHolds the currently selected experiment
start_experiment_callbackCallback that, when supplied, can be called from the UI

Procs

InitializeInitializes a new instance of the experiment_handler component
action_experimentAttempts to perform the selected experiment given some arguments
announce_messageAnnounces a message to this experiment handler
announce_message_to_allAnnounces a message to all experiment handlers
can_select_experimentChecks if an experiment is valid to be selected by this handler
configure_experimentAttempts to show the user the experiment configuration panel
configure_experiment_clickAttempts to show the user the experiment configuration panel
ignored_handheld_experiment_attemptProvides feedback when an item isn't related to an experiment, and has fully passed the attack chain
link_experimentAttempts to link this experiment_handler to a provided experiment
link_techwebAttempts to link this experiment_handler to a provided techweb
should_run_handheld_experimentChecks that an experiment can be run using the provided target, used for preventing the cancellation of the attack chain inappropriately
try_run_autopsy_experimentHooks on a successful autopsy experiment
try_run_destructive_experimentHooks on destructive scans to try and run an experiment (When using a handheld handler)
try_run_handheld_experimentHooks on attack to try and run an experiment (When using a handheld handler)
try_run_handheld_experiment_asyncThis proc exists because Jared Fogle really likes async
ui_handle_experimentHook for handling UI interaction via signals
unlink_experimentUnlinks this handler from the selected experiment
unlink_techwebUnlinks this handler from the selected techweb

Var Details

allowed_experiments

Holds the list of types of experiments that this experiment_handler can interact with

blacklisted_experiments

Holds the list of types of experiments that this experimennt_handler should NOT interact with

config_flags

Additional configuration flags for how the experiment_handler operates

disallowed_traits

A set of optional experiment traits (see defines) that are disallowed for any experiments

linked_web

Holds the currently linked techweb to get experiments from

selected_experiment

Holds the currently selected experiment

start_experiment_callback

Callback that, when supplied, can be called from the UI

Proc Details

Initialize

Initializes a new instance of the experiment_handler component

+

Arguments:

+

action_experiment

Attempts to perform the selected experiment given some arguments

announce_message

Announces a message to this experiment handler

+

Arguments:

+

announce_message_to_all

Announces a message to all experiment handlers

+

Arguments:

+

can_select_experiment

Checks if an experiment is valid to be selected by this handler

+

Arguments:

+

configure_experiment

Attempts to show the user the experiment configuration panel

+

Arguments:

+

configure_experiment_click

Attempts to show the user the experiment configuration panel

+

Arguments:

+

ignored_handheld_experiment_attempt

Provides feedback when an item isn't related to an experiment, and has fully passed the attack chain

Attempts to link this experiment_handler to a provided experiment

+

Arguments:

+

Attempts to link this experiment_handler to a provided techweb

+

This proc attempts to link the handler to a provided techweb, overriding the existing techweb if relevant

+

Arguments:

+

should_run_handheld_experiment

Checks that an experiment can be run using the provided target, used for preventing the cancellation of the attack chain inappropriately

try_run_autopsy_experiment

Hooks on a successful autopsy experiment

try_run_destructive_experiment

Hooks on destructive scans to try and run an experiment (When using a handheld handler)

try_run_handheld_experiment

Hooks on attack to try and run an experiment (When using a handheld handler)

try_run_handheld_experiment_async

This proc exists because Jared Fogle really likes async

ui_handle_experiment

Hook for handling UI interaction via signals

Unlinks this handler from the selected experiment

Unlinks this handler from the selected techweb

\ No newline at end of file diff --git a/datum/component/explodable.html b/datum/component/explodable.html new file mode 100644 index 0000000000000..b0bd17afb012b --- /dev/null +++ b/datum/component/explodable.html @@ -0,0 +1 @@ +/datum/component/explodable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

explodable

Component specifically for explosion sensetive things, currently only applies to heat based explosions but can later perhaps be used for things that are dangerous to handle carelessly like nitroglycerin.

Vars

delete_afterWhether we always delete. Useful for nukes turned plasma and such, so they don't default delete and can survive
devastation_rangeThe devastation range of the resulting explosion.
equipped_slotFor items, lets us determine where things should be hit.
explodingWhether this component is currently in the process of exploding.
flame_rangeThe flame range of the resulting explosion.
flash_rangeThe flash range of the resulting explosion.
heavy_impact_rangeThe heavy impact range of the resulting explosion.
light_impact_rangeThe light impact range of the resulting explosion.
uncappedWhether this explosion ignores the bombcap.

Procs

detonateExplode and remove the object
explodable_attackCalled when you use this object to attack sopmething
explodable_attack_zoneCalled when you attack a specific body part of the thing this is equipped on. Useful for exploding pants.
explodable_insert_itemExplode if our parent is a storage place and something with high heat is inserted in.
is_hitting_zoneChecks if we're hitting the zone this component is covering
projectile_reactShot by something
reset_explodingResets the expoding flag
welder_reactWelder check. Here because tool_act is higher priority than attackby.

Var Details

delete_after

Whether we always delete. Useful for nukes turned plasma and such, so they don't default delete and can survive

devastation_range

The devastation range of the resulting explosion.

equipped_slot

For items, lets us determine where things should be hit.

exploding

Whether this component is currently in the process of exploding.

flame_range

The flame range of the resulting explosion.

flash_range

The flash range of the resulting explosion.

heavy_impact_range

The heavy impact range of the resulting explosion.

light_impact_range

The light impact range of the resulting explosion.

uncapped

Whether this explosion ignores the bombcap.

Proc Details

detonate

Explode and remove the object

explodable_attack

Called when you use this object to attack sopmething

explodable_attack_zone

Called when you attack a specific body part of the thing this is equipped on. Useful for exploding pants.

explodable_insert_item

Explode if our parent is a storage place and something with high heat is inserted in.

is_hitting_zone

Checks if we're hitting the zone this component is covering

projectile_react

Shot by something

reset_exploding

Resets the expoding flag

welder_react

Welder check. Here because tool_act is higher priority than attackby.

\ No newline at end of file diff --git a/datum/component/explode_on_attack.html b/datum/component/explode_on_attack.html new file mode 100644 index 0000000000000..fd509205a5739 --- /dev/null +++ b/datum/component/explode_on_attack.html @@ -0,0 +1 @@ +/datum/component/explode_on_attack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

explode_on_attack

Bombs the user after an attack

Vars

destroy_on_explodeshould we be destroyed after the explosion?
impact_rangerange of bomb impact
mob_type_dont_bomblist of mobs we wont bomb on attack

Var Details

destroy_on_explode

should we be destroyed after the explosion?

impact_range

range of bomb impact

mob_type_dont_bomb

list of mobs we wont bomb on attack

\ No newline at end of file diff --git a/datum/component/face_decal.html b/datum/component/face_decal.html new file mode 100644 index 0000000000000..c2d2330c5183f --- /dev/null +++ b/datum/component/face_decal.html @@ -0,0 +1,2 @@ +/datum/component/face_decal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

face_decal

Face decal component

+

For when you have some dirt on your face

Vars

bodypart_overlayBodypart overlay we use for carbon mobs
colorColor that the overlay is modified by
icon_stateBase icon state we use for the effect
layersLayers for the bodypart_overlay to draw on
my_headCached head for carbons, to ensure proper removal of our overlay
normal_overlayOverlay we use for non-carbon mobs

Procs

clean_upCallback to remove our decal
lost_headRemoves the decal when the head gets dismembered
update_overlaysEnsures normal_overlay overlay in case the mob is not a carbon

Var Details

bodypart_overlay

Bodypart overlay we use for carbon mobs

color

Color that the overlay is modified by

icon_state

Base icon state we use for the effect

layers

Layers for the bodypart_overlay to draw on

my_head

Cached head for carbons, to ensure proper removal of our overlay

normal_overlay

Overlay we use for non-carbon mobs

Proc Details

clean_up

Callback to remove our decal

lost_head

Removes the decal when the head gets dismembered

update_overlays

Ensures normal_overlay overlay in case the mob is not a carbon

\ No newline at end of file diff --git a/datum/component/face_decal/splat.html b/datum/component/face_decal/splat.html new file mode 100644 index 0000000000000..266806f63ddb9 --- /dev/null +++ b/datum/component/face_decal/splat.html @@ -0,0 +1 @@ +/datum/component/face_decal/splat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

splat

Vars

mood_event_typeThe mood_event that we add

Var Details

mood_event_type

The mood_event that we add

\ No newline at end of file diff --git a/datum/component/faction_granter.html b/datum/component/faction_granter.html new file mode 100644 index 0000000000000..9dde22fc2dde7 --- /dev/null +++ b/datum/component/faction_granter.html @@ -0,0 +1,3 @@ +/datum/component/faction_granter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

faction_granter

faction granter component!

+

component attached to items, lets them be used in hand once to add yourself to a certain faction +one good example is the chaplain plushie that grants you the carp faction, making you friendly with them.

Vars

faction_to_grantwhichever faction the parent adds upon using in hand
grant_messagemessage given when granting the faction.
holy_role_requiredwhether you need to be holy to get the faction.
usedboolean on whether it has been used

Procs

on_examinesignal called on parent being examined
on_self_attacksignal called on parent being interacted with in hand

Var Details

faction_to_grant

whichever faction the parent adds upon using in hand

grant_message

message given when granting the faction.

holy_role_required

whether you need to be holy to get the faction.

used

boolean on whether it has been used

Proc Details

on_examine

signal called on parent being examined

on_self_attack

signal called on parent being interacted with in hand

\ No newline at end of file diff --git a/datum/component/fantasy.html b/datum/component/fantasy.html new file mode 100644 index 0000000000000..186a3a4d36ad8 --- /dev/null +++ b/datum/component/fantasy.html @@ -0,0 +1 @@ +/datum/component/fantasy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

fantasy

Procs

Initializeaffixes expects an initialized list
random_affixesproc on creation for random affixes
set_affixesproc on creation for specific affixes given to the fantasy component

Proc Details

Initialize

affixes expects an initialized list

random_affixes

proc on creation for random affixes

set_affixes

proc on creation for specific affixes given to the fantasy component

\ No newline at end of file diff --git a/datum/component/fertile_egg.html b/datum/component/fertile_egg.html new file mode 100644 index 0000000000000..7327f2c026308 --- /dev/null +++ b/datum/component/fertile_egg.html @@ -0,0 +1,5 @@ +/datum/component/fertile_egg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fertile_egg

A fertile egg component!

+

This component tracks over time if the atom is in ideal conditions, +and eventually hatches into the embryonic type.

+

The initial design of this component was to make more generic the code for +chickens laying eggs.

Vars

current_growthThe current amount of growth.
embryo_typeWhat will come out of the egg when it's done.
location_allowlistList of locations which, if set, the egg will only develop if in those locations.
maximum_growth_rateMaximum growth rate per tick
minimum_growth_rateMinimum growth rate per tick
post_hatchcallback after the egg hatches
spoilableIf true, being in an unsuitable location spoils the egg (ie. kills the component). If false, it just pauses the egg's development.
total_growth_requiredTotal growth required before hatching.

Var Details

current_growth

The current amount of growth.

embryo_type

What will come out of the egg when it's done.

location_allowlist

List of locations which, if set, the egg will only develop if in those locations.

maximum_growth_rate

Maximum growth rate per tick

minimum_growth_rate

Minimum growth rate per tick

post_hatch

callback after the egg hatches

spoilable

If true, being in an unsuitable location spoils the egg (ie. kills the component). If false, it just pauses the egg's development.

total_growth_required

Total growth required before hatching.

\ No newline at end of file diff --git a/datum/component/fish_growth.html b/datum/component/fish_growth.html new file mode 100644 index 0000000000000..db5b1e754f91f --- /dev/null +++ b/datum/component/fish_growth.html @@ -0,0 +1 @@ +/datum/component/fish_growth - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fish_growth

A simple component that manages raising things from aquarium fish.

Vars

del_on_growIs the parent deleted once the result is spawned?
growth_rateHow much maturation is gained per tick
inherit_nameWill the result inherit the name of the fish if that was changed from the initial name.
maturationThe progress, from 0 to 100
result_typethe type of the movable that's spawned when the fish grows up.
use_drop_locIs the result moved on the nearest drop location?

Var Details

del_on_grow

Is the parent deleted once the result is spawned?

growth_rate

How much maturation is gained per tick

inherit_name

Will the result inherit the name of the fish if that was changed from the initial name.

maturation

The progress, from 0 to 100

result_type

the type of the movable that's spawned when the fish grows up.

use_drop_loc

Is the result moved on the nearest drop location?

\ No newline at end of file diff --git a/datum/component/fishing_spot.html b/datum/component/fishing_spot.html new file mode 100644 index 0000000000000..0254c8908d63c --- /dev/null +++ b/datum/component/fishing_spot.html @@ -0,0 +1 @@ +/datum/component/fishing_spot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fishing_spot

Vars

fish_sourceDefines the probabilities and fish availibilty

Procs

on_examinedIf the fish source has fishes that are shown in the

Var Details

fish_source

Defines the probabilities and fish availibilty

Proc Details

on_examined

If the fish source has fishes that are shown in the

\ No newline at end of file diff --git a/datum/component/focused_attacker.html b/datum/component/focused_attacker.html new file mode 100644 index 0000000000000..3b0d9852842b7 --- /dev/null +++ b/datum/component/focused_attacker.html @@ -0,0 +1,2 @@ +/datum/component/focused_attacker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

focused_attacker

Increases our attack damage every time we attack the same target +Not compatible with any other component or status effect which modifies attack damage

Vars

gain_per_attackAmount of damage we gain per attack
last_targetThe last thing we attacked
maximum_gainMaximum amount by which we can increase our attack power

Procs

on_target_deletedDrop our target ref on deletion
pre_item_attackBefore an item attacks, try increasing its attack power
pre_mob_attackBefore a mob attacks, try increasing its attack power
register_new_targetRegister a new target

Var Details

gain_per_attack

Amount of damage we gain per attack

last_target

The last thing we attacked

maximum_gain

Maximum amount by which we can increase our attack power

Proc Details

on_target_deleted

Drop our target ref on deletion

pre_item_attack

Before an item attacks, try increasing its attack power

pre_mob_attack

Before a mob attacks, try increasing its attack power

register_new_target

Register a new target

\ No newline at end of file diff --git a/datum/component/follow.html b/datum/component/follow.html new file mode 100644 index 0000000000000..5130080348500 --- /dev/null +++ b/datum/component/follow.html @@ -0,0 +1,4 @@ +/datum/component/follow - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

follow

Follow component

+

A simple component that allows hostile mobs to follow another mob in their faction. +Default behaviour is alt click.

+

@author Gandalf2k15

Vars

follow_distanceThe distance we keep from the user.
follow_soundsSounds we play when the mob starts following.
follow_speedThe speed at which we follow the user.
followingAre we currently following? Used for playing sounds.
parent_mobOur parent mob.
unfollow_soundsSounds we play when the mob stops following via alt click.

Var Details

follow_distance

The distance we keep from the user.

follow_sounds

Sounds we play when the mob starts following.

follow_speed

The speed at which we follow the user.

following

Are we currently following? Used for playing sounds.

parent_mob

Our parent mob.

unfollow_sounds

Sounds we play when the mob stops following via alt click.

\ No newline at end of file diff --git a/datum/component/food_storage.html b/datum/component/food_storage.html new file mode 100644 index 0000000000000..c35fe7aa78e8b --- /dev/null +++ b/datum/component/food_storage.html @@ -0,0 +1,110 @@ +/datum/component/food_storage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

food_storage

--Food storage component-- +This component lets you slide one item into large foods, such as bread, cheese wheels, or cakes. +Consuming food storages with an item inside can cause unique interactions, such as eating glass shards.

Vars

bad_chance_of_discoveryWhat are the odds we bite into the stored item?
discoveredThe stored item was found out somehow.
good_chance_of_discoveryWhat are the odds we see the stored item before we bite it?
initial_volumeThe amount of volume the food has on creation - Used for probabilities
minimum_weight_classMinimum size items that can be inserted
stored_itemReference to what we have in our food.

Procs

begin_remove_item
consume_food_storage
insert_item
on_requesting_context_from_itemAdds context sensitivy directly to the processable file for screentips +Arguments:
remove_itemRemoves the stored item, putting it in user's hands or on the ground, then updates the reference.
try_inserting_item
try_removing_item
update_stored_item

Var Details

bad_chance_of_discovery

What are the odds we bite into the stored item?

discovered

The stored item was found out somehow.

good_chance_of_discovery

What are the odds we see the stored item before we bite it?

initial_volume

The amount of volume the food has on creation - Used for probabilities

minimum_weight_class

Minimum size items that can be inserted

stored_item

Reference to what we have in our food.

Proc Details

begin_remove_item

consume_food_storage

insert_item

on_requesting_context_from_item

Adds context sensitivy directly to the processable file for screentips +Arguments:

+

remove_item

Removes the stored item, putting it in user's hands or on the ground, then updates the reference.

try_inserting_item

try_removing_item

update_stored_item

\ No newline at end of file diff --git a/datum/component/fov_handler.html b/datum/component/fov_handler.html new file mode 100644 index 0000000000000..122ef17d46dfe --- /dev/null +++ b/datum/component/fov_handler.html @@ -0,0 +1 @@ +/datum/component/fov_handler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fov_handler

Component which handles Field of View masking for clients. FoV attributes are at /mob/living

Vars

applied_maskWhether we are applying the masks now
blocker_maskThe blocker mask applied to a client's screen
current_fov_xCurrently applied x size of the fov masks
current_fov_yCurrently applied y size of the fov masks
fov_angleThe angle of the mask we are applying

Procs

mob_logoutWhen a mob logs out, delete the component
on_dir_changeWhen a direction of the user changes, so do the masks
update_fov_sizeUpdates the size of the FOV masks by comparing them to client view size.
update_maskUpdates the mask application to client by checking stat and eye

Var Details

applied_mask

Whether we are applying the masks now

blocker_mask

The blocker mask applied to a client's screen

current_fov_x

Currently applied x size of the fov masks

current_fov_y

Currently applied y size of the fov masks

fov_angle

The angle of the mask we are applying

Proc Details

mob_logout

When a mob logs out, delete the component

on_dir_change

When a direction of the user changes, so do the masks

update_fov_size

Updates the size of the FOV masks by comparing them to client view size.

update_mask

Updates the mask application to client by checking stat and eye

\ No newline at end of file diff --git a/datum/component/gas_leaker.html b/datum/component/gas_leaker.html new file mode 100644 index 0000000000000..34aa1ba2a028e --- /dev/null +++ b/datum/component/gas_leaker.html @@ -0,0 +1 @@ +/datum/component/gas_leaker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gas_leaker

A component to leak gas over time from damaged objects with gas storage

Vars

atmos_processingMirror of the machine var signifying whether this is live in the air subsystem
integrity_leak_percentThe percent of max integrity that we start leaking. From 0 to 1
leak_rateThe rate at which gas leaks, you probably want this very low. From 0 to 1
process_typeKeeps track of what type we were attached to so we don't need to istype every process

Var Details

atmos_processing

Mirror of the machine var signifying whether this is live in the air subsystem

integrity_leak_percent

The percent of max integrity that we start leaking. From 0 to 1

leak_rate

The rate at which gas leaks, you probably want this very low. From 0 to 1

process_type

Keeps track of what type we were attached to so we don't need to istype every process

\ No newline at end of file diff --git a/datum/component/germ_sensitive.html b/datum/component/germ_sensitive.html new file mode 100644 index 0000000000000..ae1dfed4c0017 --- /dev/null +++ b/datum/component/germ_sensitive.html @@ -0,0 +1 @@ +/datum/component/germ_sensitive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

germ_sensitive

Makes items infective if left on floor, also sending corresponding signals to parent

Vars

infectiveWhether it is already infective
timer_idTimer for counting delay before becoming infective

Var Details

infective

Whether it is already infective

timer_id

Timer for counting delay before becoming infective

\ No newline at end of file diff --git a/datum/component/ghost_direct_control.html b/datum/component/ghost_direct_control.html new file mode 100644 index 0000000000000..9cb8e523177a6 --- /dev/null +++ b/datum/component/ghost_direct_control.html @@ -0,0 +1 @@ +/datum/component/ghost_direct_control - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ghost_direct_control

Component which lets ghosts click on a mob to take control of it

Vars

after_assumed_controlCallback run after someone successfully takes over the body
assumed_control_messageMessage to display upon successful possession
awaiting_ghostsIf we're currently awaiting the results of a ghost poll
ban_typeType of ban you can get to prevent you from accepting this role
extra_control_checksAny extra checks which need to run before we take over

Procs

assume_direct_controlGrant possession of our mob, component is now no longer required
attempt_possessionWe got far enough to establish that this mob is a valid target, let's try to posssess it
on_examinedInform ghosts that they can possess this
on_ghost_clickedA ghost clicked on us, they want to get in this body
on_loginWhen someone assumes control, get rid of our component
request_ghost_controlSend out a request for a brain

Var Details

after_assumed_control

Callback run after someone successfully takes over the body

assumed_control_message

Message to display upon successful possession

awaiting_ghosts

If we're currently awaiting the results of a ghost poll

ban_type

Type of ban you can get to prevent you from accepting this role

extra_control_checks

Any extra checks which need to run before we take over

Proc Details

assume_direct_control

Grant possession of our mob, component is now no longer required

attempt_possession

We got far enough to establish that this mob is a valid target, let's try to posssess it

on_examined

Inform ghosts that they can possess this

on_ghost_clicked

A ghost clicked on us, they want to get in this body

on_login

When someone assumes control, get rid of our component

request_ghost_control

Send out a request for a brain

\ No newline at end of file diff --git a/datum/component/ghost_edible.html b/datum/component/ghost_edible.html new file mode 100644 index 0000000000000..126af47b2723d --- /dev/null +++ b/datum/component/ghost_edible.html @@ -0,0 +1,2 @@ +/datum/component/ghost_edible - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ghost_edible

Allows ghosts to eat this by orbiting it +They do this by consuming the reagents in the object, so if it doesn't have any then it won't work

Vars

bite_chanceChance per ghost that a bite will be taken
bite_consumptionAmount of reagents which will be consumed by each bite
initial_reagent_volumeHow many reagents this had on initialisation, used to figure out how eaten we are
minimum_scaleMinimum size the food will display as before being deleted

Var Details

bite_chance

Chance per ghost that a bite will be taken

bite_consumption

Amount of reagents which will be consumed by each bite

initial_reagent_volume

How many reagents this had on initialisation, used to figure out how eaten we are

minimum_scale

Minimum size the food will display as before being deleted

\ No newline at end of file diff --git a/datum/component/glass_passer.html b/datum/component/glass_passer.html new file mode 100644 index 0000000000000..74e73b5f9f6f8 --- /dev/null +++ b/datum/component/glass_passer.html @@ -0,0 +1 @@ +/datum/component/glass_passer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

glass_passer

Allows us to move through glass but not electrified glass. Can also do a little slowdown before passing through

Vars

pass_timeHow long does it take us to move into glass?

Var Details

pass_time

How long does it take us to move into glass?

\ No newline at end of file diff --git a/datum/component/glitch.html b/datum/component/glitch.html new file mode 100644 index 0000000000000..f9538db00e35f --- /dev/null +++ b/datum/component/glitch.html @@ -0,0 +1 @@ +/datum/component/glitch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

glitch

Vars

forge_refRef of the spawning forge

Procs

dust_mobSakujo
on_deathWe don't want digital entities just lingering around as corpses.
on_forge_brokenIf the forge breaks, we take a massive slowdown
on_forge_power_restoredPower restored

Var Details

forge_ref

Ref of the spawning forge

Proc Details

dust_mob

Sakujo

on_death

We don't want digital entities just lingering around as corpses.

on_forge_broken

If the forge breaks, we take a massive slowdown

on_forge_power_restored

Power restored

\ No newline at end of file diff --git a/datum/component/golem_food.html b/datum/component/golem_food.html new file mode 100644 index 0000000000000..cdef0e2c83df9 --- /dev/null +++ b/datum/component/golem_food.html @@ -0,0 +1 @@ +/datum/component/golem_food - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

golem_food

Component which allows something to be eaten by a golem

Vars

consume_on_eatWhether to destroy our item when we eat it
extra_validationAny extra checks which need to be done when seeing if this is edible
golem_snackOur abstract fake food item
snack_typeReference to the kind of food we provide

Procs

create_golem_snackCreates our golem snack atom instance
on_attackAttempt to feed this item to golem
on_examineAdd extra examine text to people who have golem brains
on_food_destroyedReference handling for abstract food object

Var Details

consume_on_eat

Whether to destroy our item when we eat it

extra_validation

Any extra checks which need to be done when seeing if this is edible

golem_snack

Our abstract fake food item

snack_type

Reference to the kind of food we provide

Proc Details

create_golem_snack

Creates our golem snack atom instance

on_attack

Attempt to feed this item to golem

on_examine

Add extra examine text to people who have golem brains

on_food_destroyed

Reference handling for abstract food object

\ No newline at end of file diff --git a/datum/component/gps/item.html b/datum/component/gps/item.html new file mode 100644 index 0000000000000..b968e34cf6e29 --- /dev/null +++ b/datum/component/gps/item.html @@ -0,0 +1 @@ +/datum/component/gps/item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

item

GPS component subtype. Only gps/item's can be used to open the UI.

Vars

stateUI state of GPS, altering when it can be used.

Procs

interactCalled on COMSIG_ITEM_ATTACK_SELF
on_click_altCalls toggletracking
on_emp_actCalled on COMSIG_ATOM_EMP_ACT
on_examineCalled on COMSIG_ATOM_EXAMINE
rebootRestarts the GPS after getting turned off by an EMP.
toggletrackingToggles the tracking for the gps

Var Details

state

UI state of GPS, altering when it can be used.

Proc Details

interact

Called on COMSIG_ITEM_ATTACK_SELF

on_click_alt

Calls toggletracking

on_emp_act

Called on COMSIG_ATOM_EMP_ACT

on_examine

Called on COMSIG_ATOM_EXAMINE

reboot

Restarts the GPS after getting turned off by an EMP.

toggletracking

Toggles the tracking for the gps

\ No newline at end of file diff --git a/datum/component/grillable.html b/datum/component/grillable.html new file mode 100644 index 0000000000000..f223fefb4ff3f --- /dev/null +++ b/datum/component/grillable.html @@ -0,0 +1 @@ +/datum/component/grillable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

grillable

Vars

added_reagentsReagents that should be added to the result
cook_resultResult atom type of grilling this object
current_cook_timeTime spent cooking so far
pollutant_typeWhat type of pollutant we spread around as we are grilleed, can be none
positive_resultIs this a positive grill result?
required_cook_timeAmount of time required to cook the food
use_large_steam_spriteDo we use the large steam sprite?
who_placed_usREF() to the mind which placed us on the griddle

Procs

finish_grillingRan when an object finished grilling
on_examineRan when an object almost finishes grilling
on_grillRan every time an item is grilled by something
on_grill_placedSignal proc for COMSIG_ITEM_GRILL_PLACED, item is placed on the grill.
on_grill_turned_offSignal proc for COMSIG_ITEM_GRILL_TURNED_OFF, stops the grilling process.
on_grill_turned_onSignal proc for COMSIG_ITEM_GRILL_TURNED_ON, starts the grilling process.
on_movedRan when an object moves from the grill

Var Details

added_reagents

Reagents that should be added to the result

cook_result

Result atom type of grilling this object

current_cook_time

Time spent cooking so far

pollutant_type

What type of pollutant we spread around as we are grilleed, can be none

positive_result

Is this a positive grill result?

required_cook_time

Amount of time required to cook the food

use_large_steam_sprite

Do we use the large steam sprite?

who_placed_us

REF() to the mind which placed us on the griddle

Proc Details

finish_grilling

Ran when an object finished grilling

on_examine

Ran when an object almost finishes grilling

on_grill

Ran every time an item is grilled by something

on_grill_placed

Signal proc for COMSIG_ITEM_GRILL_PLACED, item is placed on the grill.

on_grill_turned_off

Signal proc for COMSIG_ITEM_GRILL_TURNED_OFF, stops the grilling process.

on_grill_turned_on

Signal proc for COMSIG_ITEM_GRILL_TURNED_ON, starts the grilling process.

on_moved

Ran when an object moves from the grill

\ No newline at end of file diff --git a/datum/component/ground_sinking.html b/datum/component/ground_sinking.html new file mode 100644 index 0000000000000..761843af6ea1a --- /dev/null +++ b/datum/component/ground_sinking.html @@ -0,0 +1,2 @@ +/datum/component/ground_sinking - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Ground sinking component (basicly only for garden gnomes ever at this point)

A basic mob with this component will sink into the ground, once sinked into the ground it will regenerate and +might gain damage resistence. Can be combined with caltrop.

Vars

damage_res_sinkedOur damage_coeffs when we are sinked
ground_sinking_delayYou will only sink if you haven't been walking for this many seconds
ground_sinking_start_timerWhen this timer completes we start sinking
heal_when_sinkedIf we will heal once we are sinked
health_per_secondHealth to regenerate per second
is_sinkingIf we sinking into the ground right now
outline_colourOutline colour of the regeneration
sink_countHow far we have sinked
sink_speedThe speed at which the mob will sink
sinkedIf we sinked into the ground right now
target_icon_stateThe icon state of the parent

Procs

finish_sinkingThe mob has fully sunk, updates its regeneration, damage resistance and density
on_movedWhen you move, reset the cooldown and start processing
sinking_progressMakes the mob try to sink three times. Unsinks if interrupted.
start_regeneratingThe mop starts regaining health
start_sinkingStart processing health regeneration, and show animation if provided
stop_regeneratingStops regaining health
unsinkThe mob pops out of the ground

Var Details

damage_res_sinked

Our damage_coeffs when we are sinked

ground_sinking_delay

You will only sink if you haven't been walking for this many seconds

ground_sinking_start_timer

When this timer completes we start sinking

heal_when_sinked

If we will heal once we are sinked

health_per_second

Health to regenerate per second

is_sinking

If we sinking into the ground right now

outline_colour

Outline colour of the regeneration

sink_count

How far we have sinked

sink_speed

The speed at which the mob will sink

sinked

If we sinked into the ground right now

target_icon_state

The icon state of the parent

Proc Details

finish_sinking

The mob has fully sunk, updates its regeneration, damage resistance and density

on_moved

When you move, reset the cooldown and start processing

sinking_progress

Makes the mob try to sink three times. Unsinks if interrupted.

start_regenerating

The mop starts regaining health

start_sinking

Start processing health regeneration, and show animation if provided

stop_regenerating

Stops regaining health

unsink

The mob pops out of the ground

\ No newline at end of file diff --git a/datum/component/growth_and_differentiation.html b/datum/component/growth_and_differentiation.html new file mode 100644 index 0000000000000..b0831166c6150 --- /dev/null +++ b/datum/component/growth_and_differentiation.html @@ -0,0 +1,8 @@ +/datum/component/growth_and_differentiation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

growth_and_differentiation

Growth and Differentiation Component: Used to randomly "grow" a creature into a new entity over its lifespan.

+

If we are passed a typepath, we will 100% grow into that type. However, if we are not passed a typepath, we will pick one from a subtype of the parent we were applied to!

Vars

growth_pathWhat this mob turns into when fully grown.
growth_probabilityInteger - Probability we grow per SPT_PROB
growth_timeFailover for how much time we have until we fully grow. If passed as null, we eschew setting up the timer. +Remember: We can grow earlier than this if the randomness rolls turn out to be in our favor though!
initial_growth_probabilityStores the growth_probability the component had when it was Initialized
lower_growth_valueInteger - The lower bound for the percentage we have to grow before we can differentiate.
optional_checksOptional callback for checks to see if we're okay to grow.
optional_grow_behaviorOptional callback in case we wish to override the default grow() behavior. Assume we supersede the change_mob_type() call if we have this set.
percent_grownPercentage we have grown.
ready_to_growAre we ready to grow? This is just in case we fail our checks and need to wait until the next tick. +We only really need this because we have two competing systems, the timer and the probability-based growth. When one succeeds, this component is considered successful in growth, +and will actively try to grow the mob (only barred by optional checks).
signals_to_kill_onList of signals we kill on ourselves when we grow.
timer_idID for the failover timer.
upper_growth_valueInteger - The upper bound for the percentage we have to grow before we can differentiate.

Procs

comp_on_round_startWhat we invoke when the round starts so we can set up our timer.
growGrows the mob into its new form.
setup_growth_trackingSets up the two different systems for growth: the timer and the probability based one. Both can coexist. Return COMPONENT_INCOMPATIBLE if we fail to set up either.
stop_component_processing_entirelyWrapper for qdel() so we can pass it in RegisterSignals(). I hate it here too.

Var Details

growth_path

What this mob turns into when fully grown.

growth_probability

Integer - Probability we grow per SPT_PROB

growth_time

Failover for how much time we have until we fully grow. If passed as null, we eschew setting up the timer. +Remember: We can grow earlier than this if the randomness rolls turn out to be in our favor though!

initial_growth_probability

Stores the growth_probability the component had when it was Initialized

lower_growth_value

Integer - The lower bound for the percentage we have to grow before we can differentiate.

optional_checks

Optional callback for checks to see if we're okay to grow.

optional_grow_behavior

Optional callback in case we wish to override the default grow() behavior. Assume we supersede the change_mob_type() call if we have this set.

percent_grown

Percentage we have grown.

ready_to_grow

Are we ready to grow? This is just in case we fail our checks and need to wait until the next tick. +We only really need this because we have two competing systems, the timer and the probability-based growth. When one succeeds, this component is considered successful in growth, +and will actively try to grow the mob (only barred by optional checks).

signals_to_kill_on

List of signals we kill on ourselves when we grow.

timer_id

ID for the failover timer.

upper_growth_value

Integer - The upper bound for the percentage we have to grow before we can differentiate.

Proc Details

comp_on_round_start

What we invoke when the round starts so we can set up our timer.

grow

Grows the mob into its new form.

setup_growth_tracking

Sets up the two different systems for growth: the timer and the probability based one. Both can coexist. Return COMPONENT_INCOMPATIBLE if we fail to set up either.

stop_component_processing_entirely

Wrapper for qdel() so we can pass it in RegisterSignals(). I hate it here too.

\ No newline at end of file diff --git a/datum/component/gun_safety.html b/datum/component/gun_safety.html new file mode 100644 index 0000000000000..6f916fca46aff --- /dev/null +++ b/datum/component/gun_safety.html @@ -0,0 +1 @@ +/datum/component/gun_safety - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gun_safety

Component that will prevent a gun from firing if the safety is turned on

Vars

safety_currently_onIs the safety actually on?
toggle_safety_actionHolder for the toggle safety action

Procs

check_if_we_can_actually_shootyChecks if the safety is currently on, if it is then stops the gun from firing
on_examineAdds the gun safety's current status to the gun's examine
toggle_safetiesToggles the safeties on or off
update_action_button_stateSmall proc to update the actio button's icon, just so I can not have to copypaste the same thing several times.
we_may_be_toggling_safetiesCalls toggle_safeties if the action type for doing so is used

Var Details

safety_currently_on

Is the safety actually on?

toggle_safety_action

Holder for the toggle safety action

Proc Details

check_if_we_can_actually_shooty

Checks if the safety is currently on, if it is then stops the gun from firing

on_examine

Adds the gun safety's current status to the gun's examine

toggle_safeties

Toggles the safeties on or off

update_action_button_state

Small proc to update the actio button's icon, just so I can not have to copypaste the same thing several times.

we_may_be_toggling_safeties

Calls toggle_safeties if the action type for doing so is used

\ No newline at end of file diff --git a/datum/component/gunpoint.html b/datum/component/gunpoint.html new file mode 100644 index 0000000000000..28aded9245307 --- /dev/null +++ b/datum/component/gunpoint.html @@ -0,0 +1 @@ +/datum/component/gunpoint - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gunpoint

Vars

damage_multHow much the damage and wound values will be multiplied by
point_of_no_returnIf TRUE, we're committed to firing the shot, for async purposes
stageWhich stage we're on
targetWho we're holding up
weaponThe gun we're holding them up with

Procs

block_bumps_parentPrevents bumping the shooter to break gunpoint since shove does that
block_bumps_targetPrevents bumping the target by an ally to cheese and force the charged shot
cancelShooter canceled their shot, either by dropping/equipping their weapon, leaving sight/range, or clicking on the alert
check_bumpIf the shooter bumps the target, cancel the holdup to avoid cheesing and forcing the charged shot
check_deescalateCancel the holdup if the shooter moves out of sight or out of range of the target
check_shoveIf the shooter shoves or grabs the target, cancel the holdup to avoid cheesing and forcing the charged shot
examineShows if the parent is holding someone at gunpoint
examine_targetShows if the examine target is being held at gunpoint
flinchIf the shooter is hit by an attack, they have a 50% chance to flinch and fire. If it hit the arm holding the trigger, it's an 80% chance to fire instead
trigger_reactionBang bang, we're firing a charged shot off
update_stageUpdate the damage multiplier for whatever stage we're entering into

Var Details

damage_mult

How much the damage and wound values will be multiplied by

point_of_no_return

If TRUE, we're committed to firing the shot, for async purposes

stage

Which stage we're on

target

Who we're holding up

weapon

The gun we're holding them up with

Proc Details

block_bumps_parent

Prevents bumping the shooter to break gunpoint since shove does that

block_bumps_target

Prevents bumping the target by an ally to cheese and force the charged shot

cancel

Shooter canceled their shot, either by dropping/equipping their weapon, leaving sight/range, or clicking on the alert

check_bump

If the shooter bumps the target, cancel the holdup to avoid cheesing and forcing the charged shot

check_deescalate

Cancel the holdup if the shooter moves out of sight or out of range of the target

check_shove

If the shooter shoves or grabs the target, cancel the holdup to avoid cheesing and forcing the charged shot

examine

Shows if the parent is holding someone at gunpoint

examine_target

Shows if the examine target is being held at gunpoint

flinch

If the shooter is hit by an attack, they have a 50% chance to flinch and fire. If it hit the arm holding the trigger, it's an 80% chance to fire instead

trigger_reaction

Bang bang, we're firing a charged shot off

update_stage

Update the damage multiplier for whatever stage we're entering into

\ No newline at end of file diff --git a/datum/component/happiness.html b/datum/component/happiness.html new file mode 100644 index 0000000000000..0ebd839a76774 --- /dev/null +++ b/datum/component/happiness.html @@ -0,0 +1 @@ +/datum/component/happiness - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

happiness

Vars

blackboard_keyhappiness AI blackboard key
callback_percentagespercentages we should be calling back on
groom_cooldownhow long till we can groom it again
happiness_callbackcallback when our happiness changes
happiness_inspecthow long till we can inspect happiness again?
happiness_levelour current happiness level
maximum_happinessour maximum happiness level
on_eat_changehappiness when we eat
on_groom_changehappiness when we get groomed
on_petted_changehappiness when we get petted
pet_cooldownhow long till we can pet it again?

Var Details

blackboard_key

happiness AI blackboard key

callback_percentages

percentages we should be calling back on

groom_cooldown

how long till we can groom it again

happiness_callback

callback when our happiness changes

happiness_inspect

how long till we can inspect happiness again?

happiness_level

our current happiness level

maximum_happiness

our maximum happiness level

on_eat_change

happiness when we eat

on_groom_change

happiness when we get groomed

on_petted_change

happiness when we get petted

pet_cooldown

how long till we can pet it again?

\ No newline at end of file diff --git a/datum/component/haunted_item.html b/datum/component/haunted_item.html new file mode 100644 index 0000000000000..cf0cf643fcb7c --- /dev/null +++ b/datum/component/haunted_item.html @@ -0,0 +1,2 @@ +/datum/component/haunted_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

haunted_item

Makes our item SUPER spooky! +Adds the haunted element and some other bonuses

Vars

despawn_messageOptional message displayed when we're despawned / dehaunted
pre_haunt_throwforceOur throwforce before being haunted
types_which_dispell_usList of types that, if they hit our item, we will instantly stop the haunting

Procs

clear_hauntingRemoves the haunting, showing any despawn message we have and qdeling our component
on_hit_by_holy_toolSignal proc for COMSIG_ATOM_ATTACKBY, when we get smacked by holy stuff we should stop being ghostly.

Var Details

despawn_message

Optional message displayed when we're despawned / dehaunted

pre_haunt_throwforce

Our throwforce before being haunted

types_which_dispell_us

List of types that, if they hit our item, we will instantly stop the haunting

Proc Details

clear_haunting

Removes the haunting, showing any despawn message we have and qdeling our component

on_hit_by_holy_tool

Signal proc for COMSIG_ATOM_ATTACKBY, when we get smacked by holy stuff we should stop being ghostly.

\ No newline at end of file diff --git a/datum/component/hazard_area.html b/datum/component/hazard_area.html new file mode 100644 index 0000000000000..9ef219df29dd0 --- /dev/null +++ b/datum/component/hazard_area.html @@ -0,0 +1,17 @@ +/datum/component/hazard_area - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hazard_area

This is a relatively simple component that attempts to deter the parent of the component away +from a specific area or areas. By default it simply applies a penalty where all movement is +four times slower than usual and any action that would affect your 'next move' has a penalty +multiplier of 4 attached.

Vars

area_blacklistThe blacklist of areas that the parent will be penalized for entering
area_createdA list of areas that have been created and are considered to not be hazardous
area_whitelistThe whitelist of areas that the parent is allowed to be in. If set this overrides the blacklist
last_parent_areaA variable storing the typepath of the last checked area to prevent any further logic running if it has not changed

Procs

check_area_hazardousChecks if the area being checked is considered hazardous +The whitelist is checked first if it exists, otherwise it checks if it is in the blacklist
handle_parent_area_changeThis signal should be called whenever our parent moves.
on_area_creationThis signal handler does a few house cleaning tasks when a new area is created. +If the created area already exists in the blacklist or whitelist it simply returns, +however if it isn't we check for an overwritten area and if non-hazardous setup the area to +allow the parent. +If there aren't any overwritten area's it assumes it to be non-hazardous, abuse it and you will weep -ZephyrTFA
reject_ladder_movementThis signal handler checks the area the target ladder is in and if hazardous prevents them from using it
reject_vehicleA simple signal handler that informs the parent they cannot ride a vehicle and ejects them
update_parent_status_effectThis proc handles the status effect applied to the parent, most noteably applying or removing it as required

Var Details

area_blacklist

The blacklist of areas that the parent will be penalized for entering

area_created

A list of areas that have been created and are considered to not be hazardous

area_whitelist

The whitelist of areas that the parent is allowed to be in. If set this overrides the blacklist

last_parent_area

A variable storing the typepath of the last checked area to prevent any further logic running if it has not changed

Proc Details

check_area_hazardous

Checks if the area being checked is considered hazardous +The whitelist is checked first if it exists, otherwise it checks if it is in the blacklist

+

handle_parent_area_change

This signal should be called whenever our parent moves.

on_area_creation

This signal handler does a few house cleaning tasks when a new area is created. +If the created area already exists in the blacklist or whitelist it simply returns, +however if it isn't we check for an overwritten area and if non-hazardous setup the area to +allow the parent. +If there aren't any overwritten area's it assumes it to be non-hazardous, abuse it and you will weep -ZephyrTFA

reject_ladder_movement

This signal handler checks the area the target ladder is in and if hazardous prevents them from using it

reject_vehicle

A simple signal handler that informs the parent they cannot ride a vehicle and ejects them

update_parent_status_effect

This proc handles the status effect applied to the parent, most noteably applying or removing it as required

\ No newline at end of file diff --git a/datum/component/healing_touch.html b/datum/component/healing_touch.html new file mode 100644 index 0000000000000..68c0c4d96d8ca --- /dev/null +++ b/datum/component/healing_touch.html @@ -0,0 +1,2 @@ +/datum/component/healing_touch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Healing Touch component

A mob with this component will be able to heal certain targets by attacking them. +This intercepts the attack and starts a do_after if the target is in its allowed type list.

Vars

action_textText to print when action starts, replaces %SOURCE% with healer and %TARGET% with healed mob
after_healedCallback to run after healing a mob
complete_textText to print when action completes, replaces %SOURCE% with healer and %TARGET% with healed mob
extra_checksAny extra conditions which need to be true to permit healing. Returning TRUE permits the healing, FALSE or null cancels it.
heal_bruteHow much brute damage to heal
heal_burnHow much burn damage to heal
heal_colorColor for the healing effect
heal_oxyHow much oxygen damage to heal
heal_staminaHow much stamina damage to heal
heal_timeTime it takes to perform the healing action
heal_toxHow much toxin damage to heal
interaction_keyInteraction will use this key, and be blocked while this key is in use
required_bodytypeWhich kinds of carbon limbs can we heal, has no effect on non-carbon mobs. Set to null if you don't care about excluding prosthetics.
required_modifierOptional click modifier required
self_targetingHow targeting yourself works, expects one of HEALING_TOUCH_ANYONE, HEALING_TOUCH_NOT_SELF, or HEALING_TOUCH_SELF_ONLY
show_healthWhether to print the target's remaining health after healing (for non-carbon targets only)
valid_biotypesBitfield for biotypes of mobs we can heal
valid_targets_typecacheTypecache of mobs we can heal

Procs

format_stringReformats the passed string with the replacetext keys
has_healable_damageReturns true if the target has a kind of damage which we can heal
heal_targetPerform a do_after and then heal our target
try_healingValidate our target, and interrupt the attack chain to start healing it if it is allowed

Var Details

action_text

Text to print when action starts, replaces %SOURCE% with healer and %TARGET% with healed mob

after_healed

Callback to run after healing a mob

complete_text

Text to print when action completes, replaces %SOURCE% with healer and %TARGET% with healed mob

extra_checks

Any extra conditions which need to be true to permit healing. Returning TRUE permits the healing, FALSE or null cancels it.

heal_brute

How much brute damage to heal

heal_burn

How much burn damage to heal

heal_color

Color for the healing effect

heal_oxy

How much oxygen damage to heal

heal_stamina

How much stamina damage to heal

heal_time

Time it takes to perform the healing action

heal_tox

How much toxin damage to heal

interaction_key

Interaction will use this key, and be blocked while this key is in use

required_bodytype

Which kinds of carbon limbs can we heal, has no effect on non-carbon mobs. Set to null if you don't care about excluding prosthetics.

required_modifier

Optional click modifier required

self_targeting

How targeting yourself works, expects one of HEALING_TOUCH_ANYONE, HEALING_TOUCH_NOT_SELF, or HEALING_TOUCH_SELF_ONLY

show_health

Whether to print the target's remaining health after healing (for non-carbon targets only)

valid_biotypes

Bitfield for biotypes of mobs we can heal

valid_targets_typecache

Typecache of mobs we can heal

Proc Details

format_string

Reformats the passed string with the replacetext keys

has_healable_damage

Returns true if the target has a kind of damage which we can heal

heal_target

Perform a do_after and then heal our target

try_healing

Validate our target, and interrupt the attack chain to start healing it if it is allowed

\ No newline at end of file diff --git a/datum/component/health_scaling_effects.html b/datum/component/health_scaling_effects.html new file mode 100644 index 0000000000000..27d1127aca34e --- /dev/null +++ b/datum/component/health_scaling_effects.html @@ -0,0 +1,2 @@ +/datum/component/health_scaling_effects - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

health_scaling_effects

Enrage buffs component

+

Scales some statistics of a living mob (speed or attack power or such) based on how hurt it is.

Vars

additional_status_callbackA callback which is sent the mob's current ratio between the max and min values, for updating mob-specific effects
max_health_attack_modifier_lowerModification to apply to the lower bound of your attack while your health is at or above the max threshold
max_health_attack_modifier_upperModification to apply to the upper bound of your attack while your health is at or above the max threshold
max_health_slowdownModification to movement speed to apply while your health is at or above the max threshold
max_health_thresholdHealth percentage (between 0 and 1) at which you are considered to get the full "max" effect
min_health_attack_modifier_lowerModification to apply to the lower bound of your attack while your health is at or above the min threshold
min_health_attack_modifier_upperModification to apply to the upper bound of your attack while your health is at or above the min threshold
min_health_slowdownModification to movement speed to apply while your health is at or above the min threshold
min_health_thresholdHealth percentage (between 0 and 1) at which you are considered to get the full "min" effect

Procs

on_health_changedCalled when mob health changes, recalculates the ratio between maximum and minimum
update_statsUpdate statistics based on provided interpolator between maximum and minimum values

Var Details

additional_status_callback

A callback which is sent the mob's current ratio between the max and min values, for updating mob-specific effects

max_health_attack_modifier_lower

Modification to apply to the lower bound of your attack while your health is at or above the max threshold

max_health_attack_modifier_upper

Modification to apply to the upper bound of your attack while your health is at or above the max threshold

max_health_slowdown

Modification to movement speed to apply while your health is at or above the max threshold

max_health_threshold

Health percentage (between 0 and 1) at which you are considered to get the full "max" effect

min_health_attack_modifier_lower

Modification to apply to the lower bound of your attack while your health is at or above the min threshold

min_health_attack_modifier_upper

Modification to apply to the upper bound of your attack while your health is at or above the min threshold

min_health_slowdown

Modification to movement speed to apply while your health is at or above the min threshold

min_health_threshold

Health percentage (between 0 and 1) at which you are considered to get the full "min" effect

Proc Details

on_health_changed

Called when mob health changes, recalculates the ratio between maximum and minimum

update_stats

Update statistics based on provided interpolator between maximum and minimum values

\ No newline at end of file diff --git a/datum/component/heart_eater.html b/datum/component/heart_eater.html new file mode 100644 index 0000000000000..40667ab560f53 --- /dev/null +++ b/datum/component/heart_eater.html @@ -0,0 +1 @@ +/datum/component/heart_eater - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

heart_eater

Vars

bites_takenCheck if we fully ate whole heart and reset when we start eat new one.
last_heart_we_ateRemember last heart we ate and reset bites_taken counter if we start eat new one
mutations_listList of all mutations allowed to get.
remember_modifierRemember the number of species damage_modifier.

Procs

eat_eat_eatProc called when we finish eat somthing.
healing_heartHeart eater give also strong healing from hearts.
not_perfect_heartNot Perfect heart give random mutation.
perfect_heartPerfect heart give our +10 damage modifier(Max. 80).

Var Details

bites_taken

Check if we fully ate whole heart and reset when we start eat new one.

last_heart_we_ate

Remember last heart we ate and reset bites_taken counter if we start eat new one

mutations_list

List of all mutations allowed to get.

remember_modifier

Remember the number of species damage_modifier.

Proc Details

eat_eat_eat

Proc called when we finish eat somthing.

healing_heart

Heart eater give also strong healing from hearts.

not_perfect_heart

Not Perfect heart give random mutation.

perfect_heart

Perfect heart give our +10 damage modifier(Max. 80).

\ No newline at end of file diff --git a/datum/component/heirloom.html b/datum/component/heirloom.html new file mode 100644 index 0000000000000..6dff0097a8b71 --- /dev/null +++ b/datum/component/heirloom.html @@ -0,0 +1,2 @@ +/datum/component/heirloom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

heirloom

Heirloom component. For use with the family heirloom quirk, tracks that an item is someone's family heirloom.

Vars

family_nameFlavor. The family name of the owner of the heirloom.
ownerThe mind that actually owns our heirloom.

Procs

on_examineSignal proc for COMSIG_ATOM_EXAMINE.

Var Details

family_name

Flavor. The family name of the owner of the heirloom.

owner

The mind that actually owns our heirloom.

Proc Details

on_examine

Signal proc for COMSIG_ATOM_EXAMINE.

+

Shows who owns the heirloom on examine.

\ No newline at end of file diff --git a/datum/component/holderloving.html b/datum/component/holderloving.html new file mode 100644 index 0000000000000..f36cabad17264 --- /dev/null +++ b/datum/component/holderloving.html @@ -0,0 +1,33 @@ +/datum/component/holderloving - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

holderloving

Vars

del_parent_with_holderIf parent is deleted when the holder gets deleted
holder

Var Details

del_parent_with_holder

If parent is deleted when the holder gets deleted

holder

\ No newline at end of file diff --git a/datum/component/ice_cream_holder.html b/datum/component/ice_cream_holder.html new file mode 100644 index 0000000000000..0761ae1cec6cf --- /dev/null +++ b/datum/component/ice_cream_holder.html @@ -0,0 +1 @@ +/datum/component/ice_cream_holder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ice_cream_holder

Ice Cream Holder: Allows the edible parent object to be used as an ice cream cone (or cup... in a next future).

Vars

change_nameChanges the name of the food depending on amount and flavours of ice cream on it.
filled_namename to use, if set, in place of [src] on update_name.
max_scoopsNumber of servings of ice cream it can get through normal methods.
scoopsList of servings of ice cream it is holding at the moment.
special_scoopsServings of ice cream with custom names as key, and their base ones as assoc. (useful for mob/custom ice cream)
x_offsetpixel offsets for scoop overlays. Useful for objects with off-centered sprites.

Procs

on_item_attack_objAttack the ice cream vat to get some ice cream. This will change as new ways of getting ice cream are added.

Var Details

change_name

Changes the name of the food depending on amount and flavours of ice cream on it.

filled_name

name to use, if set, in place of [src] on update_name.

max_scoops

Number of servings of ice cream it can get through normal methods.

scoops

List of servings of ice cream it is holding at the moment.

special_scoops

Servings of ice cream with custom names as key, and their base ones as assoc. (useful for mob/custom ice cream)

x_offset

pixel offsets for scoop overlays. Useful for objects with off-centered sprites.

Proc Details

on_item_attack_obj

Attack the ice cream vat to get some ice cream. This will change as new ways of getting ice cream are added.

\ No newline at end of file diff --git a/datum/component/infective.html b/datum/component/infective.html new file mode 100644 index 0000000000000..5f9215ba26c5b --- /dev/null +++ b/datum/component/infective.html @@ -0,0 +1 @@ +/datum/component/infective - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

infective

Vars

is_weakThe infection is weak and can only infect on consumption with small chance
weak_infection_chanceChance of weak infection on consumption

Var Details

is_weak

The infection is weak and can only infect on consumption with small chance

weak_infection_chance

Chance of weak infection on consumption

\ No newline at end of file diff --git a/datum/component/interactable.html b/datum/component/interactable.html new file mode 100644 index 0000000000000..72e6feaeaefd8 --- /dev/null +++ b/datum/component/interactable.html @@ -0,0 +1,10 @@ +/datum/component/interactable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

interactable

Vars

interactionsA list of interactions that the user can engage in.
selfA hard reference to the parent

Procs

can_lewd_stripChecks if the target has ERP toys enabled, and can be logially reached by the user.
generate_strip_entryTakes the organ slot name, along with a target and source, along with the item on the target that the source can potentially interact with. +If the source can't interact with said slot, or there is no item in the first place, it'll set the icon to null to indicate that TGUI should put a placeholder sprite.
is_toy_compatibleDecides if a player should be able to insert or remove an item from a provided lewd slot_index.
ui_interactUI Control

Var Details

interactions

A list of interactions that the user can engage in.

self

A hard reference to the parent

Proc Details

can_lewd_strip

Checks if the target has ERP toys enabled, and can be logially reached by the user.

generate_strip_entry

Takes the organ slot name, along with a target and source, along with the item on the target that the source can potentially interact with. +If the source can't interact with said slot, or there is no item in the first place, it'll set the icon to null to indicate that TGUI should put a placeholder sprite.

+

Arguments:

+

is_toy_compatible

Decides if a player should be able to insert or remove an item from a provided lewd slot_index.

ui_interact

UI Control

\ No newline at end of file diff --git a/datum/component/interaction_booby_trap.html b/datum/component/interaction_booby_trap.html new file mode 100644 index 0000000000000..42bec97532f33 --- /dev/null +++ b/datum/component/interaction_booby_trap.html @@ -0,0 +1 @@ +/datum/component/interaction_booby_trap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

interaction_booby_trap

Attached to an atom, creates an explosion when it is interacted with

Vars

active_sound_loopLooping sound to clue people in that something is up
additional_triggersList of additional signals which should make this explode
defuse_toolUsing this tool on the atom will defuse the explosive
explode_timerTime until we explode
explosion_heavy_rangeExplosion radius of heavy damage
explosion_light_rangeExplosion radius of light damage
on_defused_callbackCallback to run when we've been defused
on_triggered_callbackCallback to run when we're going to explode
trigger_delayTime to wait between being triggered and blowing up
triggered_soundSound to play when triggered

Procs

explodeBlow up the parent atom and delete ourselves
on_defusedDefuse the bomb and delete ourselves
on_examineGive people a little hint
on_touchedCalled when someone touches the parent atom with their hands, we want to blow up
trigger_explosiveStart a countdown until destruction

Var Details

active_sound_loop

Looping sound to clue people in that something is up

additional_triggers

List of additional signals which should make this explode

defuse_tool

Using this tool on the atom will defuse the explosive

explode_timer

Time until we explode

explosion_heavy_range

Explosion radius of heavy damage

explosion_light_range

Explosion radius of light damage

on_defused_callback

Callback to run when we've been defused

on_triggered_callback

Callback to run when we're going to explode

trigger_delay

Time to wait between being triggered and blowing up

triggered_sound

Sound to play when triggered

Proc Details

explode

Blow up the parent atom and delete ourselves

on_defused

Defuse the bomb and delete ourselves

on_examine

Give people a little hint

on_touched

Called when someone touches the parent atom with their hands, we want to blow up

trigger_explosive

Start a countdown until destruction

\ No newline at end of file diff --git a/datum/component/itembound.html b/datum/component/itembound.html new file mode 100644 index 0000000000000..e8f9045693184 --- /dev/null +++ b/datum/component/itembound.html @@ -0,0 +1 @@ +/datum/component/itembound - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

itembound

When a movable has this component AND they are in the contents of a container, they will no longer be able to use their hands and be immobilized until they are removed from the container. So far, this is only useful for smites.

Vars

containerrefWeak reference to the container that the movable is inside of.
move_trackerDetect any movement of the container

Procs

verify_containmentEnsure that when we move, we still are in the container. If not in the container, remove all the traits.

Var Details

containerref

Weak reference to the container that the movable is inside of.

move_tracker

Detect any movement of the container

Proc Details

verify_containment

Ensure that when we move, we still are in the container. If not in the container, remove all the traits.

\ No newline at end of file diff --git a/datum/component/itempicky.html b/datum/component/itempicky.html new file mode 100644 index 0000000000000..c3868abe4926d --- /dev/null +++ b/datum/component/itempicky.html @@ -0,0 +1 @@ +/datum/component/itempicky - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

itempicky

You can only hold whitelisted items

Vars

messageMessage shown if you try to pick up an item not in the whitelist
tertiary_conditionAn optional callback we check for overriding our whitelist
whitelistTypecache of items you can hold

Var Details

message

Message shown if you try to pick up an item not in the whitelist

tertiary_condition

An optional callback we check for overriding our whitelist

whitelist

Typecache of items you can hold

\ No newline at end of file diff --git a/datum/component/jetpack.html b/datum/component/jetpack.html new file mode 100644 index 0000000000000..313095e9bb64d --- /dev/null +++ b/datum/component/jetpack.html @@ -0,0 +1,11 @@ +/datum/component/jetpack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

jetpack

Vars

activation_signalThe signal we listen for as an activation
check_on_moveChecks to ensure if we can move & if we can activate
deactivation_signalThe signal we listen for as a de-activation
drift_forceDrift force applied each movement tick
effect_typeThe typepath to instansiate our trail as, when we need it
return_flagThe return flag our parent expects for a failed activation
stabilization_forceForce that applied when stabiliziation is active and the player isn't moving in the same direction as the jetpack
stabilizeIf we should stabilize ourselves when not drifting
trailThe effect system for the jet pack trail
userOur current user

Procs

InitializeArguments:

Var Details

activation_signal

The signal we listen for as an activation

check_on_move

Checks to ensure if we can move & if we can activate

deactivation_signal

The signal we listen for as a de-activation

drift_force

Drift force applied each movement tick

effect_type

The typepath to instansiate our trail as, when we need it

return_flag

The return flag our parent expects for a failed activation

stabilization_force

Force that applied when stabiliziation is active and the player isn't moving in the same direction as the jetpack

stabilize

If we should stabilize ourselves when not drifting

trail

The effect system for the jet pack trail

user

Our current user

Proc Details

Initialize

Arguments:

+
\ No newline at end of file diff --git a/datum/component/joint_damage.html b/datum/component/joint_damage.html new file mode 100644 index 0000000000000..207e2f6609e14 --- /dev/null +++ b/datum/component/joint_damage.html @@ -0,0 +1 @@ +/datum/component/joint_damage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

joint_damage

Vars

overlord_mobthe mob we will damage
previous_health_countour last health count

Var Details

overlord_mob

the mob we will damage

previous_health_count

our last health count

\ No newline at end of file diff --git a/datum/component/jousting.html b/datum/component/jousting.html new file mode 100644 index 0000000000000..aa5ad65a4fdc1 --- /dev/null +++ b/datum/component/jousting.html @@ -0,0 +1,15 @@ +/datum/component/jousting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

jousting

##jousting

+

Given to items, it allows you to charge into people with additional damage and potential knockdown +by being buckled onto something. If the other person is also jousting, can knock eachother down.

Vars

current_directionThe current direction of the jousting.
current_holderThe current person holding parent.
current_tile_chargeHow many tiles we've charged up thus far
damage_boost_per_tileHow much of an increase in damage is achieved every tile moved during jousting.
knockdown_chance_per_tileThe boosted chances of a knockdown occuring while jousting.
knockdown_timeHow much of an increase in knockdown is achieved every tile moved during jousting, if it knocks down.
max_tile_chargeThe max amount of tiles before you can joust someone.
min_tile_chargeThe min amount of tiles before you can joust someone.

Procs

mob_moveCalled when a mob moves. +Handles checking their direction, changing it if they turned, +and increments how many tiles they've been charging for. +Lastly, refreshes their charge reset timer, giving them a new one instead.
on_equipCalled when a mob equips the spear, registers them as the holder and checks their signals for moving.
on_successful_attackPerforms the actual attack, handling damage/knockdown depending on how far you've jousted. +We deduct the minimum tile charge from the current tile charge to get what will actually be buffed +So your charge will only get benefits from each extra tile after the minimum (and before the maximum).
reset_chargereset charge

Var Details

current_direction

The current direction of the jousting.

current_holder

The current person holding parent.

current_tile_charge

How many tiles we've charged up thus far

damage_boost_per_tile

How much of an increase in damage is achieved every tile moved during jousting.

knockdown_chance_per_tile

The boosted chances of a knockdown occuring while jousting.

knockdown_time

How much of an increase in knockdown is achieved every tile moved during jousting, if it knocks down.

max_tile_charge

The max amount of tiles before you can joust someone.

min_tile_charge

The min amount of tiles before you can joust someone.

Proc Details

mob_move

Called when a mob moves. +Handles checking their direction, changing it if they turned, +and increments how many tiles they've been charging for. +Lastly, refreshes their charge reset timer, giving them a new one instead.

on_equip

Called when a mob equips the spear, registers them as the holder and checks their signals for moving.

on_successful_attack

Performs the actual attack, handling damage/knockdown depending on how far you've jousted. +We deduct the minimum tile charge from the current tile charge to get what will actually be buffed +So your charge will only get benefits from each extra tile after the minimum (and before the maximum).

reset_charge

reset charge

+

Resets their direction and tile charge back to their initial values. +This is used when someone is no longer jousting and it should cleanup.

\ No newline at end of file diff --git a/datum/component/keep_me_secure.html b/datum/component/keep_me_secure.html new file mode 100644 index 0000000000000..71c2ea8249f3a --- /dev/null +++ b/datum/component/keep_me_secure.html @@ -0,0 +1,3 @@ +/datum/component/keep_me_secure - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

keep_me_secure

Keep Me Secure component!

+

Component that attaches to items, invoking a function to react when left unmoved and unsecured for too long. +Used for Nuclear Authentication Disks, and whiny plushy as an example (which changes sprites depending on whether it considers itself secure.)

Vars

last_moveThe last world time the parent moved.
last_secured_locationThe last secure location the parent was at.
secured_callbackcallback for the parent being secure
unsecured_callbackcallback for the parent being unsecured

Procs

is_securedReturns whether the game is supposed to consider the parent "secure".
on_examinesignal sent when parent is examined
on_examine_moresignal sent when parent is examined more

Var Details

last_move

The last world time the parent moved.

last_secured_location

The last secure location the parent was at.

secured_callback

callback for the parent being secure

unsecured_callback

callback for the parent being unsecured

Proc Details

is_secured

Returns whether the game is supposed to consider the parent "secure".

on_examine

signal sent when parent is examined

on_examine_more

signal sent when parent is examined more

\ No newline at end of file diff --git a/datum/component/kinetic_crusher.html b/datum/component/kinetic_crusher.html new file mode 100644 index 0000000000000..628a74547dd32 --- /dev/null +++ b/datum/component/kinetic_crusher.html @@ -0,0 +1 @@ +/datum/component/kinetic_crusher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

kinetic_crusher

Vars

after_detonateCallback to execute after a successful mark detonation.
attack_checkCallback to check against for most actions.
backstab_bonusHow much EXTRA damage to deal on a backstab?
cached_healthCOMSIG_ITEM_ATTACK procs before the damage is applied. Egh.
chargedAre we ready to shoot another destabilizer shot?
detonate_checkCallback to check against for mark detonation.
detonation_damageHow much damage to deal on mark detonation?
recharge_speedDoes what you think it does.
stored_trophiesThe attached trophies.

Var Details

after_detonate

Callback to execute after a successful mark detonation.

attack_check

Callback to check against for most actions.

backstab_bonus

How much EXTRA damage to deal on a backstab?

cached_health

COMSIG_ITEM_ATTACK procs before the damage is applied. Egh.

charged

Are we ready to shoot another destabilizer shot?

detonate_check

Callback to check against for mark detonation.

detonation_damage

How much damage to deal on mark detonation?

recharge_speed

Does what you think it does.

stored_trophies

The attached trophies.

\ No newline at end of file diff --git a/datum/component/knockoff.html b/datum/component/knockoff.html new file mode 100644 index 0000000000000..3e688ae839cb1 --- /dev/null +++ b/datum/component/knockoff.html @@ -0,0 +1,18 @@ +/datum/component/knockoff - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

knockoff

Items with this component will have a chance to get knocked off +(unequipped and sent to the ground) when the wearer is disarmed or knocked down.

Vars

knockoff_chanceChance to knockoff when a knockoff action occurs.
slots_knockoffableBitflag used in equip to determine what slots we need to be in to be knocked off. +If set, we must be equipped in one of the slots to have a chance of our item being knocked off. +If unset / NONE, a disarm or knockdown will have a chance of our item being knocked off regardless of slot, INCLUDING hand slots.
target_zonesUsed in being disarmed. +If set, we will only roll the knockoff chance if the disarmer is targeting one of these zones. +If unset, any disarm act will cause the knock-off chance to be rolled, no matter the zone targeted.

Procs

on_droppedSignal proc for COMSIG_ITEM_DROPPED +Unregisters our signals which can cause a knockdown when we're unequipped (dropped)
on_equippedSignal proc for COMSIG_ITEM_EQUIPPED +Registers our signals which can cause a knockdown whenever we're equipped correctly
on_equipped_mob_disarmSignal proc for COMSIG_LIVING_DISARM_HIT on the mob who's equipped our parent +Rolls a chance for knockoff whenever we're disarmed
on_equipped_mob_knockdownSignal proc for COMSIG_LIVING_STATUS_KNOCKDOWN on the mob who's equipped our parent +Rolls a chance for knockoff whenever we're knocked down

Var Details

knockoff_chance

Chance to knockoff when a knockoff action occurs.

slots_knockoffable

Bitflag used in equip to determine what slots we need to be in to be knocked off. +If set, we must be equipped in one of the slots to have a chance of our item being knocked off. +If unset / NONE, a disarm or knockdown will have a chance of our item being knocked off regardless of slot, INCLUDING hand slots.

target_zones

Used in being disarmed. +If set, we will only roll the knockoff chance if the disarmer is targeting one of these zones. +If unset, any disarm act will cause the knock-off chance to be rolled, no matter the zone targeted.

Proc Details

on_dropped

Signal proc for COMSIG_ITEM_DROPPED +Unregisters our signals which can cause a knockdown when we're unequipped (dropped)

on_equipped

Signal proc for COMSIG_ITEM_EQUIPPED +Registers our signals which can cause a knockdown whenever we're equipped correctly

on_equipped_mob_disarm

Signal proc for COMSIG_LIVING_DISARM_HIT on the mob who's equipped our parent +Rolls a chance for knockoff whenever we're disarmed

on_equipped_mob_knockdown

Signal proc for COMSIG_LIVING_STATUS_KNOCKDOWN on the mob who's equipped our parent +Rolls a chance for knockoff whenever we're knocked down

\ No newline at end of file diff --git a/datum/component/leash.html b/datum/component/leash.html new file mode 100644 index 0000000000000..813929a1b2fc2 --- /dev/null +++ b/datum/component/leash.html @@ -0,0 +1,2 @@ +/datum/component/leash - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

leash

Keeps the parent within the distance of its owner as naturally as possible, +but teleporting if necessary.

Vars

distanceThe maximum distance you can move from your owner
enabledwhether the leash is enabled or not
force_teleport_in_effectThe object type to create on the new turf when forcibly teleporting out
force_teleport_out_effectThe object type to create on the old turf when forcibly teleporting out
ownerThe owner of the leash. If this is qdeleted, the leash is as well.

Procs

disable_leashStop listening for any signals
enable_leashStart listening for signals again
toggle_leashEnables or disables the leash, allowing or forbidding the PAI from leaving a specified range

Var Details

distance

The maximum distance you can move from your owner

enabled

whether the leash is enabled or not

force_teleport_in_effect

The object type to create on the new turf when forcibly teleporting out

force_teleport_out_effect

The object type to create on the old turf when forcibly teleporting out

owner

The owner of the leash. If this is qdeleted, the leash is as well.

Proc Details

disable_leash

Stop listening for any signals

enable_leash

Start listening for signals again

toggle_leash

Enables or disables the leash, allowing or forbidding the PAI from leaving a specified range

\ No newline at end of file diff --git a/datum/component/life_link.html b/datum/component/life_link.html new file mode 100644 index 0000000000000..0eba3e8f166d1 --- /dev/null +++ b/datum/component/life_link.html @@ -0,0 +1,2 @@ +/datum/component/life_link - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

life_link

A mob with this component passes all damage (and healing) it takes to another mob, passed as a parameter +Essentially we use another mob's health bar as our health bar

Vars

hostMob we pass all of our damage to
on_linked_deathOptional callback invoked when the linked mob dies
on_passed_damageOptional callback invoked when damage gets transferred

Procs

on_damage_adjustedCalled when your damage goes up or down
on_health_updatedCalled when either the host or parent's health tries to update, update our displayed health
on_host_deletedCalled when
on_host_diedCalled when our host dies, we should die too
on_host_revivedCalled when our host undies, we should undie too
on_limb_damageCalled when someone hurts one of our limbs, bypassing normal damage adjustment
on_status_tab_updatedWhen our status tab updates, draw how much HP our host has in there
register_hostSet someone up as our new host
unregister_hostDrop someone from being our host
update_health_hudUpdate our parent's health display based on how harmed our host is
update_med_hud_healthUpdate our health on the medical hud
update_med_hud_statusUpdate our vital status on the medical hud

Var Details

host

Mob we pass all of our damage to

on_linked_death

Optional callback invoked when the linked mob dies

on_passed_damage

Optional callback invoked when damage gets transferred

Proc Details

on_damage_adjusted

Called when your damage goes up or down

on_health_updated

Called when either the host or parent's health tries to update, update our displayed health

on_host_deleted

Called when

on_host_died

Called when our host dies, we should die too

on_host_revived

Called when our host undies, we should undie too

on_limb_damage

Called when someone hurts one of our limbs, bypassing normal damage adjustment

on_status_tab_updated

When our status tab updates, draw how much HP our host has in there

register_host

Set someone up as our new host

unregister_host

Drop someone from being our host

update_health_hud

Update our parent's health display based on how harmed our host is

update_med_hud_health

Update our health on the medical hud

update_med_hud_status

Update our vital status on the medical hud

\ No newline at end of file diff --git a/datum/component/light_eater.html b/datum/component/light_eater.html new file mode 100644 index 0000000000000..d875a14f6399d --- /dev/null +++ b/datum/component/light_eater.html @@ -0,0 +1,2 @@ +/datum/component/light_eater - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

light_eater

Makes anything it attaches to capable of removing something's ability to produce light until it is destroyed

+

The permanent version of this is /datum/element/light_eater

Vars

eaten_lightsTracks things this light eater has eaten

Procs

deref_eaten_lightHandles dereferencing deleted lights.
on_devourHandles storing references to lights eaten by the light eater.

Var Details

eaten_lights

Tracks things this light eater has eaten

Proc Details

deref_eaten_light

Handles dereferencing deleted lights.

on_devour

Handles storing references to lights eaten by the light eater.

\ No newline at end of file diff --git a/datum/component/ling_decoy_brain.html b/datum/component/ling_decoy_brain.html new file mode 100644 index 0000000000000..9662d880445e6 --- /dev/null +++ b/datum/component/ling_decoy_brain.html @@ -0,0 +1,2 @@ +/datum/component/ling_decoy_brain - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ling_decoy_brain

Component applied to ling brains to make them into decoy brains, as ling brains are vestigial and don't do anything

Vars

parent_lingThe ling this brain is linked to
talk_actionA talk action that is granted to the ling when this decoy enters an MMI

Procs

clear_decoyClear up the decoy if the ling is de-linged
entered_mmiSignal proc for COMSIG_ATOM_ENTERING, when the brain enters an MMI grant the MMI talk action to the ling

Var Details

parent_ling

The ling this brain is linked to

talk_action

A talk action that is granted to the ling when this decoy enters an MMI

Proc Details

clear_decoy

Clear up the decoy if the ling is de-linged

entered_mmi

Signal proc for COMSIG_ATOM_ENTERING, when the brain enters an MMI grant the MMI talk action to the ling

+

Unfortunately this is hooked on Entering rather than its own dedicated MMI signal becuase MMI code is a fuck

\ No newline at end of file diff --git a/datum/component/liquids_interaction.html b/datum/component/liquids_interaction.html new file mode 100644 index 0000000000000..0001744d14736 --- /dev/null +++ b/datum/component/liquids_interaction.html @@ -0,0 +1 @@ +/datum/component/liquids_interaction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

liquids_interaction

This element allows for items to interact with liquids on turfs.

Vars

interaction_callbackCallback interaction called when the turf has some liquids on it

Var Details

interaction_callback

Callback interaction called when the turf has some liquids on it

\ No newline at end of file diff --git a/datum/component/listen_and_repeat.html b/datum/component/listen_and_repeat.html new file mode 100644 index 0000000000000..ff1f8dcd8cb71 --- /dev/null +++ b/datum/component/listen_and_repeat.html @@ -0,0 +1,2 @@ +/datum/component/listen_and_repeat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

listen_and_repeat

Simple element that will deterministically set a value based on stuff that the source has heard and will then compel the source to repeat it. +Requires a valid AI Blackboard.

Vars

blackboard_keyThe AI Blackboard Key we assign the value to.
invalid_voicelist we give speech that doesnt have a voice or a pitch
speech_bufferList of things that we've heard and will repeat.
speech_probabilityProbability we speak
switch_phrase_probabilityProbabiliy we switch our phrase

Procs

on_hearCalled when we hear something.
on_write_memoryExports all the speech buffer data to a dedicated blackboard key on the source.
set_new_blackboard_phraseCalled to set a new value for the blackboard key.

Var Details

blackboard_key

The AI Blackboard Key we assign the value to.

invalid_voice

list we give speech that doesnt have a voice or a pitch

speech_buffer

List of things that we've heard and will repeat.

speech_probability

Probability we speak

switch_phrase_probability

Probabiliy we switch our phrase

Proc Details

on_hear

Called when we hear something.

on_write_memory

Exports all the speech buffer data to a dedicated blackboard key on the source.

set_new_blackboard_phrase

Called to set a new value for the blackboard key.

\ No newline at end of file diff --git a/datum/component/living_heart.html b/datum/component/living_heart.html new file mode 100644 index 0000000000000..2e80b13014f4c --- /dev/null +++ b/datum/component/living_heart.html @@ -0,0 +1,6 @@ +/datum/component/living_heart - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Living Heart Component

Applied to a heart to turn it into a heretic's 'living heart'. +The living heart is what they use to track people they need to sacrifice.

+

This component handles the action associated with it - +if the organ is removed, the action should be deleted

Vars

actionThe action we create and give to our heart.

Procs

on_organ_removedSignal proc for COMSIG_ORGAN_REMOVED.
on_organ_replacedSignal proc for COMSIG_ORGAN_BEING_REPLACED.

Var Details

action

The action we create and give to our heart.

Proc Details

on_organ_removed

Signal proc for COMSIG_ORGAN_REMOVED.

+

If the organ is removed, the component will remove itself.

on_organ_replaced

Signal proc for COMSIG_ORGAN_BEING_REPLACED.

+

If the organ is replaced, before it's done transfer the component over

\ No newline at end of file diff --git a/datum/component/lock_on_cursor.html b/datum/component/lock_on_cursor.html new file mode 100644 index 0000000000000..5e2537fca11af --- /dev/null +++ b/datum/component/lock_on_cursor.html @@ -0,0 +1,2 @@ +/datum/component/lock_on_cursor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lock_on_cursor

Lock on Cursor component

+

Finds the nearest targets to your cursor and passes them into a callback, also drawing an icon on top of them.

Vars

can_target_callbackCallback to call in order to validate a potential target
current_ranging_idRanging ID for some kind of tick check safety calculation
immune_weakrefsCache of weakrefs to ignore targeting formatted as list(weakref = TRUE)
lock_amountNumber of things we can target at once
lock_appearanceAppearance to overlay onto whatever we are targeting
lock_cursor_rangeRange to search for targets from the cursor position
lock_imagesCurrent images we are displaying to the client
locked_weakrefsWeakrefs to current locked targets
mouse_trackerFull screen overlay which is used to track mouse position
on_lockCallback to call when we have decided on our targets, is passed the list of final targets
target_typecacheTypecache of things we are allowed to target

Procs

can_targetReturns true if target is a valid target
clear_invalid_targetsRemoves targets which are out of range or don't exist any more
clear_visualsRemoves target overlays
find_targetsReplace our targets with new ones
get_nearestReturns the nearest targets to the current cursor position
refresh_visualsReset the overlays on all targets
show_visualsAdds overlays to all targets

Var Details

can_target_callback

Callback to call in order to validate a potential target

current_ranging_id

Ranging ID for some kind of tick check safety calculation

immune_weakrefs

Cache of weakrefs to ignore targeting formatted as list(weakref = TRUE)

lock_amount

Number of things we can target at once

lock_appearance

Appearance to overlay onto whatever we are targeting

lock_cursor_range

Range to search for targets from the cursor position

lock_images

Current images we are displaying to the client

locked_weakrefs

Weakrefs to current locked targets

mouse_tracker

Full screen overlay which is used to track mouse position

on_lock

Callback to call when we have decided on our targets, is passed the list of final targets

target_typecache

Typecache of things we are allowed to target

Proc Details

can_target

Returns true if target is a valid target

clear_invalid_targets

Removes targets which are out of range or don't exist any more

clear_visuals

Removes target overlays

find_targets

Replace our targets with new ones

get_nearest

Returns the nearest targets to the current cursor position

refresh_visuals

Reset the overlays on all targets

show_visuals

Adds overlays to all targets

\ No newline at end of file diff --git a/datum/component/lockable_storage.html b/datum/component/lockable_storage.html new file mode 100644 index 0000000000000..6dbc31e441a73 --- /dev/null +++ b/datum/component/lockable_storage.html @@ -0,0 +1,16 @@ +/datum/component/lockable_storage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lockable_storage

##lockable_storage +Adds a UI to the object that triggers when you use it in hand (if item) or attack (everything else). +The UI is a lock that, when unlocked, allows you to access the contents inside of it. +When using this, make sure you have icons for on_update_icon_state.

Vars

can_hack_openBoolean on whether the storage can be hacked open with a multitool.
lock_codeThe code that will open this safe, set by usually players. +Importantly, can be null if there's no password.
numeric_inputThe number currently sitting in the briefcase's panel.
panel_openBoolean on whether the panel has been hacked open with a screwdriver.

Procs

hack_openDoes a do_after to hack the storage open, takes a long time cause idk.
on_examineCalled when examining the storage item.
on_interactCalled when interacted with in-hand or on attack, opens the UI.
on_multitool_actCalled when a multitool is used on the parent, if it's hackable. +Checks if we can start hacking and, if so, will begin the hacking process.
on_requesting_context_from_itemAdds context screentips to the locked item. +Arguments:
on_screwdriver_actCalled when a screwdriver is used on the parent, if it's hackable.
on_update_icon_stateUpdates the icon state depending on if we're locked or not.

Var Details

can_hack_open

Boolean on whether the storage can be hacked open with a multitool.

lock_code

The code that will open this safe, set by usually players. +Importantly, can be null if there's no password.

numeric_input

The number currently sitting in the briefcase's panel.

panel_open

Boolean on whether the panel has been hacked open with a screwdriver.

Proc Details

hack_open

Does a do_after to hack the storage open, takes a long time cause idk.

on_examine

Called when examining the storage item.

on_interact

Called when interacted with in-hand or on attack, opens the UI.

on_multitool_act

Called when a multitool is used on the parent, if it's hackable. +Checks if we can start hacking and, if so, will begin the hacking process.

on_requesting_context_from_item

Adds context screentips to the locked item. +Arguments:

+

on_screwdriver_act

Called when a screwdriver is used on the parent, if it's hackable.

on_update_icon_state

Updates the icon state depending on if we're locked or not.

\ No newline at end of file diff --git a/datum/component/magnet.html b/datum/component/magnet.html new file mode 100644 index 0000000000000..a5ebdce130b07 --- /dev/null +++ b/datum/component/magnet.html @@ -0,0 +1 @@ +/datum/component/magnet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

magnet

Attracts items of a certain typepath

Vars

activeAre we currently working?
attracted_typecacheList of things we attract
on_contactWhat to do when something reaches us
on_pulledWhat to do when we pull something
pull_rangeRange at which to pull items

Procs

toggle_on_stat_changeIf a mob dies we stop attracting stuff

Var Details

active

Are we currently working?

attracted_typecache

List of things we attract

on_contact

What to do when something reaches us

on_pulled

What to do when we pull something

pull_range

Range at which to pull items

Proc Details

toggle_on_stat_change

If a mob dies we stop attracting stuff

\ No newline at end of file diff --git a/datum/component/manual_heart.html b/datum/component/manual_heart.html new file mode 100644 index 0000000000000..a26888f32c082 --- /dev/null +++ b/datum/component/manual_heart.html @@ -0,0 +1,3 @@ +/datum/component/manual_heart - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

manual_heart

Manual heart pumping component. Requires the holder to pump their heart manually every +so often or die.

+

Mainly used by the cursed heart.

Vars

add_colourIf true, add a screen tint on the next process
blood_lossHow much blood volume you lose every missed pump, this is a flat amount not a percentage!
heal_bruteThe amount of brute damage to heal per pump
heal_burnThe amount of burn damage to heal per pump
heal_oxyThe amount of oxygen damage to heal per pump
heart_timerCooldown before harm is caused to the owner
pump_actionThe action for pumping your heart
pump_delayHow long between needed pumps; you can pump one second early

Procs

check_added_organIf a new heart is added, start processing.
check_removed_organIf the heart is removed, stop processing.
check_validHelper proc to check if processing can be restarted.
on_pumpWorker proc that checks logic for if a pump can happen, and applies effects from doing so

Var Details

add_colour

If true, add a screen tint on the next process

blood_loss

How much blood volume you lose every missed pump, this is a flat amount not a percentage!

heal_brute

The amount of brute damage to heal per pump

heal_burn

The amount of burn damage to heal per pump

heal_oxy

The amount of oxygen damage to heal per pump

heart_timer

Cooldown before harm is caused to the owner

pump_action

The action for pumping your heart

pump_delay

How long between needed pumps; you can pump one second early

Proc Details

check_added_organ

If a new heart is added, start processing.

check_removed_organ

If the heart is removed, stop processing.

check_valid

Helper proc to check if processing can be restarted.

on_pump

Worker proc that checks logic for if a pump can happen, and applies effects from doing so

\ No newline at end of file diff --git a/datum/component/marionette.html b/datum/component/marionette.html new file mode 100644 index 0000000000000..706495ee76b63 --- /dev/null +++ b/datum/component/marionette.html @@ -0,0 +1,3 @@ +/datum/component/marionette - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

marionette

Marionette component

+

Upon being grabbed, we will align the direction of the parent with the direction of the grabber when they rotate. +While grabbed, will also speak out whatever the original person says

Vars

grabberReference to the mob that is grabbing us, which we hook signals to for marionette stuff.

Procs

on_pullCalled when something starts pulling us, we now listen in to that thing for rotation.
on_puller_qdelCalled when our puller is somehow deleted, we simply clear the reference to them.
on_puller_speechCalled when the person grabbing us speaks, we lower their volume to 1 tile and speak what they said through us.
on_puller_turnCallled when the person grabbin us turns, we rotate to match their direction.
on_stop_pullStopped pulling, we clear out signals and references.

Var Details

grabber

Reference to the mob that is grabbing us, which we hook signals to for marionette stuff.

Proc Details

on_pull

Called when something starts pulling us, we now listen in to that thing for rotation.

on_puller_qdel

Called when our puller is somehow deleted, we simply clear the reference to them.

on_puller_speech

Called when the person grabbing us speaks, we lower their volume to 1 tile and speak what they said through us.

on_puller_turn

Callled when the person grabbin us turns, we rotate to match their direction.

on_stop_pull

Stopped pulling, we clear out signals and references.

\ No newline at end of file diff --git a/datum/component/martial_art_giver.html b/datum/component/martial_art_giver.html new file mode 100644 index 0000000000000..d08b7bd3e6d96 --- /dev/null +++ b/datum/component/martial_art_giver.html @@ -0,0 +1 @@ +/datum/component/martial_art_giver - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

martial_art_giver

when equipped and unequipped this item gives a martial art

Vars

stylethe style we give

Var Details

style

the style we give

\ No newline at end of file diff --git a/datum/component/material_container.html b/datum/component/material_container.html new file mode 100644 index 0000000000000..85343ba0f50fd --- /dev/null +++ b/datum/component/material_container.html @@ -0,0 +1,114 @@ +/datum/component/material_container - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

material_container

Vars

allowed_item_typecacheThe typecache of things that this material container can accept
allowed_materialsThe list of materials that this material container can accept
mat_container_flagsThe material container flags. See __DEFINES/materials.dm.
materialsMap of material ref -> amount
max_amountThe maximum amount of materials this material container can contain
precise_insertionWhether or not this material container allows specific amounts from sheets to be inserted
registered_signalsSignals that are registered with this contained

Procs

InitializeSets up the proper signals and fills the list of materials with the appropriate references.
can_hold_materialThe default check for whether we can add materials to this material container.
get_item_material_amountReturns the amount of material relevant to this container; +if this container does not support glass, any glass in 'I' will not be taken into account
get_material_amountReturns the amount of a specific material in this container.
has_enough_of_materialReturns TRUE if you have enough of the specified material.
has_materialsChecks if its possible to afford a certain amount of materials. Takes a dictionary of materials. +coefficient can be thought of as the machines efficiency & multiplier as the print quantity
has_spaceProc that returns TRUE if the container has space
insert_amount_matFor inserting an amount of material. Use this to add materials to the container directly
insert_itemProc specifically for inserting items, use this when you want to insert any item into the container +this bypasses most of the material flag checks so much be used by machines like recycler, stacking machine etc that +does not care for such checks
insert_item_materials3 Types of Procs +Material Insertion : Insert materials into the container +Material Validation : Checks how much materials are available, Extracts materials from items if the container can hold them +Material Removal : Removes material from the container
on_attackbyProc that allows players to fill the parent with mats
on_requesting_context_from_itemAdds context sensitivy directly to the material container file for screentips +Arguments:
retrieve_allProc to get all the materials and dump them as sheets
retrieve_sheetsFor spawning mineral sheets at a specific location. Used by machines to output sheets.
total_amountreturns the total amount of material in the container
ui_dataList format is list(material_name = list(amount = ..., ref = ..., etc.))
use_amount_matUses an amount of a specific material, effectively removing it.
use_materialsFor consuming a dictionary of materials.
user_insertinserts an item from the players hand into the container. Loops through all the contents inside recursively +Does all explicit checking for mat flags & callbacks to check if insertion is valid +This proc is what you should be using for almost all cases

Var Details

allowed_item_typecache

The typecache of things that this material container can accept

allowed_materials

The list of materials that this material container can accept

mat_container_flags

The material container flags. See __DEFINES/materials.dm.

materials

Map of material ref -> amount

max_amount

The maximum amount of materials this material container can contain

precise_insertion

Whether or not this material container allows specific amounts from sheets to be inserted

registered_signals

Signals that are registered with this contained

Proc Details

Initialize

Sets up the proper signals and fills the list of materials with the appropriate references.

can_hold_material

The default check for whether we can add materials to this material container.

+

Arguments:

+

get_item_material_amount

Returns the amount of material relevant to this container; +if this container does not support glass, any glass in 'I' will not be taken into account

+

Arguments:

+

get_material_amount

Returns the amount of a specific material in this container.

+

Arguments: +-mat : the material type to check for 3 cases +a) If it's an path its ref is retrieved +b) If it's text then its an category material & there is no way to deal with it so return 0 +c) If normal material proceeds as usual

has_enough_of_material

Returns TRUE if you have enough of the specified material.

+

Arguments:

+

has_materials

Checks if its possible to afford a certain amount of materials. Takes a dictionary of materials. +coefficient can be thought of as the machines efficiency & multiplier as the print quantity

+

Arguments:

+

has_space

Proc that returns TRUE if the container has space

+

Arguments:

+

insert_amount_mat

For inserting an amount of material. Use this to add materials to the container directly

+

Arguments:

+

insert_item

Proc specifically for inserting items, use this when you want to insert any item into the container +this bypasses most of the material flag checks so much be used by machines like recycler, stacking machine etc that +does not care for such checks

+

Arguments:

+ +

insert_item_materials

3 Types of Procs +Material Insertion : Insert materials into the container +Material Validation : Checks how much materials are available, Extracts materials from items if the container can hold them +Material Removal : Removes material from the container

+

Each Proc further belongs to a specific category +LOW LEVEL: Procs that are used internally & should not be used anywhere else unless you know what your doing +MID LEVEL: Procs that can be used by machines(like recycler, stacking machines) to bypass majority of checks +HIGH LEVEL: Procs that can be used by anyone publicly and guarantees safety checks & limits

+

Inserts the relevant materials from an item into this material container. +This low level proc should not be used directly by anyone

+

Arguments:

+

on_attackby

Proc that allows players to fill the parent with mats

on_requesting_context_from_item

Adds context sensitivy directly to the material container file for screentips +Arguments:

+

retrieve_all

Proc to get all the materials and dump them as sheets

+

Arguments:

+

retrieve_sheets

For spawning mineral sheets at a specific location. Used by machines to output sheets.

+

Arguments: +sheet_amt: number of sheets to extract +material: type of sheets present in this container to extract +target: drop location +[atom][context]: context - the atom performing the operation, this is the last argument sent in COMSIG_MATCONTAINER_SHEETS_RETRIEVED and is used mostly for silo logging

total_amount

returns the total amount of material in the container

ui_data

List format is list(material_name = list(amount = ..., ref = ..., etc.))

use_amount_mat

Uses an amount of a specific material, effectively removing it.

+

Arguments:

+

use_materials

For consuming a dictionary of materials.

+

Arguments:

+

user_insert

inserts an item from the players hand into the container. Loops through all the contents inside recursively +Does all explicit checking for mat flags & callbacks to check if insertion is valid +This proc is what you should be using for almost all cases

+

Arguments:

+
\ No newline at end of file diff --git a/datum/component/medigun_relocation.html b/datum/component/medigun_relocation.html new file mode 100644 index 0000000000000..f0e325f1b42da --- /dev/null +++ b/datum/component/medigun_relocation.html @@ -0,0 +1 @@ +/datum/component/medigun_relocation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

medigun_relocation

Used to handle teleporting if there is a grace period

Vars

area_lockedIs the teleport locked to only specific areas.
destination_areaArea that the target is teleported to
teleport_areasIf area_locked is enabled, people can be teleported while in these areas.
teleporteeThe person that is being teleported

Procs

dispense_treatPuts a treat in the teleportee's hands.

Var Details

area_locked

Is the teleport locked to only specific areas.

destination_area

Area that the target is teleported to

teleport_areas

If area_locked is enabled, people can be teleported while in these areas.

teleportee

The person that is being teleported

Proc Details

dispense_treat

Puts a treat in the teleportee's hands.

\ No newline at end of file diff --git a/datum/component/mind_linker.html b/datum/component/mind_linker.html new file mode 100644 index 0000000000000..d8465439b069d --- /dev/null +++ b/datum/component/mind_linker.html @@ -0,0 +1,9 @@ +/datum/component/mind_linker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Mind Linker

A component that handles linking multiple player's minds +into one network which allows them to talk directly to one another. +Like telepathy but for multiple people at once!

Vars

chat_colorThe color of the network when talking in chat
linked_mobsAn assoc list of mob/livings to datum/action/innate/linked_speechs. All the mobs that are linked to our network.
linking_protectionDoes the component check to see if the person being linked has a mindshield or anti-magic?
master_speechThe master's speech action. The owner of the link shouldn't lose this as long as the link remains.
network_nameThe name of our network, displayed to all users.
post_unlink_callbackA callback invoked after an unlink is done. Optional.
signals_which_destroy_usA list of all signals that will call qdel() on our component if triggered. Optional.
speech_actionIs does the component give an action to speak? By default, yes
speech_action_background_icon_stateThe icon background for the speech action handed out.
speech_action_iconThe icon file given to the speech action handed out.
speech_action_icon_stateThe icon state applied to the speech action handed out.
speech_action_overlay_stateThe border icon state for the speech action handed out.

Procs

destroy_linkSignal proc sent from any signals given to us initialize. +Destroys our component and unlinks everyone.
link_mobAttempts to link [to_link] to our network, giving them a speech action.
unlink_mobUnlinks [to_unlink] from our network, deleting their speech action +and cleaning up anything involved.

Var Details

chat_color

The color of the network when talking in chat

linked_mobs

An assoc list of mob/livings to datum/action/innate/linked_speechs. All the mobs that are linked to our network.

linking_protection

Does the component check to see if the person being linked has a mindshield or anti-magic?

master_speech

The master's speech action. The owner of the link shouldn't lose this as long as the link remains.

network_name

The name of our network, displayed to all users.

A callback invoked after an unlink is done. Optional.

signals_which_destroy_us

A list of all signals that will call qdel() on our component if triggered. Optional.

speech_action

Is does the component give an action to speak? By default, yes

speech_action_background_icon_state

The icon background for the speech action handed out.

speech_action_icon

The icon file given to the speech action handed out.

speech_action_icon_state

The icon state applied to the speech action handed out.

speech_action_overlay_state

The border icon state for the speech action handed out.

Proc Details

Signal proc sent from any signals given to us initialize. +Destroys our component and unlinks everyone.

Attempts to link [to_link] to our network, giving them a speech action.

+

Returns TRUE if successful, FALSE otherwise

Unlinks [to_unlink] from our network, deleting their speech action +and cleaning up anything involved.

+

Also invokes post_unlink_callback, if supplied.

\ No newline at end of file diff --git a/datum/component/mind_linker/active_linking.html b/datum/component/mind_linker/active_linking.html new file mode 100644 index 0000000000000..8e0f0b84b64af --- /dev/null +++ b/datum/component/mind_linker/active_linking.html @@ -0,0 +1,2 @@ +/datum/component/mind_linker/active_linking - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

active_linking

Subtype of mind linker (I know) which is more active rather than passive, +which involves the master linking people manually rather than people being added automatically.

Vars

link_messageThe message sent to someone when linked up.
linker_actionThe master's linking action, which allows them to link people to the network.
unlink_messageThe message sent to someone when unlinked.

Var Details

The message sent to someone when linked up.

linker_action

The master's linking action, which allows them to link people to the network.

The message sent to someone when unlinked.

\ No newline at end of file diff --git a/datum/component/mind_linker/active_linking/nif.html b/datum/component/mind_linker/active_linking/nif.html new file mode 100644 index 0000000000000..0362cbd143c15 --- /dev/null +++ b/datum/component/mind_linker/active_linking/nif.html @@ -0,0 +1 @@ +/datum/component/mind_linker/active_linking/nif - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

nif

Vars

nameWhat is the name of the hivemind? This is mostly here for the TGUI selection menus.

Procs

invite_userLets the user add someone to their Hivemind through a choice menu that shows everyone that has the Hivemind NIFSoft.
remove_userRemoves a user from the list of connected people within a hivemind

Var Details

name

What is the name of the hivemind? This is mostly here for the TGUI selection menus.

Proc Details

invite_user

Lets the user add someone to their Hivemind through a choice menu that shows everyone that has the Hivemind NIFSoft.

remove_user

Removes a user from the list of connected people within a hivemind

\ No newline at end of file diff --git a/datum/component/mindless_killer.html b/datum/component/mindless_killer.html new file mode 100644 index 0000000000000..3dd615426df5a --- /dev/null +++ b/datum/component/mindless_killer.html @@ -0,0 +1 @@ +/datum/component/mindless_killer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mindless_killer

Vars

mindless_forcehow much force is added to items before hitting a mindless mob
mindless_multiplierhow much force is multiplied to items before hitting a mindless mob (applied after mindless force)
obj_parentthe obj parent this component is attached to

Var Details

mindless_force

how much force is added to items before hitting a mindless mob

mindless_multiplier

how much force is multiplied to items before hitting a mindless mob (applied after mindless force)

obj_parent

the obj parent this component is attached to

\ No newline at end of file diff --git a/datum/component/mob_chain.html b/datum/component/mob_chain.html new file mode 100644 index 0000000000000..f8a019cc0dc7e --- /dev/null +++ b/datum/component/mob_chain.html @@ -0,0 +1,2 @@ +/datum/component/mob_chain - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mob_chain

Component allowing you to create a linked list of mobs. +These mobs will follow each other and attack as one, as well as sharing damage taken.

Vars

backMob behind us in the chain
frontMob in front of us in the chain
pass_damage_backIf true then damage we take is passed backwards along the line
vary_icon_stateIf true then we will set our icon state based on line position

Procs

on_adjust_damageOn damage or heal, affect our furthest segment
on_adjust_staminaOn gain or lose stamina, adjust our tail too
on_attackTell our tail to attack too
on_contractedCalled when our tail gets pulled up to our body
on_deathIf we die so does the guy behind us, then stop following the leader
on_deletionIf we get deleted so does the guy behind us
on_gained_tailCalled when something sets us as ITS front
on_glide_size_changedMaintain glide size backwards
on_limb_damageSpecial handling for if damage is delegated to a mob's limbs instead of its overall damage
on_lost_tailCalled when our tail loses its chain component
on_movedPull our tail behind us when we move
on_pulledDo not allow someone to be pulled out of the chain
on_update_icon_stateUpdate our visuals based on if we have someone in front and behind
update_mob_appearanceUpdate how we look

Var Details

back

Mob behind us in the chain

front

Mob in front of us in the chain

pass_damage_back

If true then damage we take is passed backwards along the line

vary_icon_state

If true then we will set our icon state based on line position

Proc Details

on_adjust_damage

On damage or heal, affect our furthest segment

on_adjust_stamina

On gain or lose stamina, adjust our tail too

on_attack

Tell our tail to attack too

on_contracted

Called when our tail gets pulled up to our body

on_death

If we die so does the guy behind us, then stop following the leader

on_deletion

If we get deleted so does the guy behind us

on_gained_tail

Called when something sets us as ITS front

on_glide_size_changed

Maintain glide size backwards

on_limb_damage

Special handling for if damage is delegated to a mob's limbs instead of its overall damage

on_lost_tail

Called when our tail loses its chain component

on_moved

Pull our tail behind us when we move

on_pulled

Do not allow someone to be pulled out of the chain

on_update_icon_state

Update our visuals based on if we have someone in front and behind

update_mob_appearance

Update how we look

\ No newline at end of file diff --git a/datum/component/mob_harvest.html b/datum/component/mob_harvest.html new file mode 100644 index 0000000000000..46fda8b766412 --- /dev/null +++ b/datum/component/mob_harvest.html @@ -0,0 +1,10 @@ +/datum/component/mob_harvest - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mob_harvest

Harvesting component. Useful if you want to be able to harvest items from living mobs.

+

Used currently on sheep.

Vars

amount_readyhow much is ready to harvest
fed_itemitem used to reduce wait between items
harvest_toolitem used to harvest
item_generation_timetracked time
item_generation_waittime between item creation
item_harvest_soundtypepath of harvest sound
item_harvest_timehow long it takes to harvest from the mob
item_reduction_timetime to reduce when fed
max_readymax amount that can be stored between harvests
produced_item_descstand-in name for the item
produced_item_typepathtypepath of the item you want to harvest

Procs

harvest_itemProc called from attacking the component parent with the correct item, handles creating the item
on_attackbysignal called on parent being attacked with an item
on_examinesignal called on parent being examined
on_update_icon_stateSignal proc for COMSIG_ATOM_UPDATE_ICON_STATE
remove_wait_timeProc called from attacking the component parent with the correct item, reduces wait time between items

Var Details

amount_ready

how much is ready to harvest

fed_item

item used to reduce wait between items

harvest_tool

item used to harvest

item_generation_time

tracked time

item_generation_wait

time between item creation

item_harvest_sound

typepath of harvest sound

item_harvest_time

how long it takes to harvest from the mob

item_reduction_time

time to reduce when fed

max_ready

max amount that can be stored between harvests

produced_item_desc

stand-in name for the item

produced_item_typepath

typepath of the item you want to harvest

Proc Details

harvest_item

Proc called from attacking the component parent with the correct item, handles creating the item

+

Arguments:

+

on_attackby

signal called on parent being attacked with an item

on_examine

signal called on parent being examined

on_update_icon_state

Signal proc for COMSIG_ATOM_UPDATE_ICON_STATE

remove_wait_time

Proc called from attacking the component parent with the correct item, reduces wait time between items

+

Arguments:

+
\ No newline at end of file diff --git a/datum/component/money_sense.html b/datum/component/money_sense.html new file mode 100644 index 0000000000000..0986dccf6ab13 --- /dev/null +++ b/datum/component/money_sense.html @@ -0,0 +1 @@ +/datum/component/money_sense - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

money_sense

Added whenever the money_sense NIFSoft is active

Procs

add_examineScans the item the user is looking at and generates the cargo value of it.

Proc Details

add_examine

Scans the item the user is looking at and generates the cargo value of it.

\ No newline at end of file diff --git a/datum/component/morgue_radio.html b/datum/component/morgue_radio.html new file mode 100644 index 0000000000000..bb2dfede3bff8 --- /dev/null +++ b/datum/component/morgue_radio.html @@ -0,0 +1 @@ +/datum/component/morgue_radio - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

morgue_radio

Vars

morgueTypecasted reference to the current tray.
radio_cooldownTracker for the morgue radio cooldown.

Procs

morgue_revivableProc that runs code to speak into the morgues internal radio.

Var Details

morgue

Typecasted reference to the current tray.

radio_cooldown

Tracker for the morgue radio cooldown.

Proc Details

morgue_revivable

Proc that runs code to speak into the morgues internal radio.

\ No newline at end of file diff --git a/datum/component/multiple_lives.html b/datum/component/multiple_lives.html new file mode 100644 index 0000000000000..770eed29fb872 --- /dev/null +++ b/datum/component/multiple_lives.html @@ -0,0 +1,2 @@ +/datum/component/multiple_lives - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

multiple_lives

A simple component that spawns a mob of the same type and transfers itself to it when parent dies. +For more complex behaviors, use the COMSIG_ON_MULTIPLE_LIVES_RESPAWN comsig.

Vars

lives_leftThe number of respawns the living mob has left.

Procs

on_write_memoryStops a dying station pet from overriding persistence data before we respawn it and thus causing issues.

Var Details

lives_left

The number of respawns the living mob has left.

Proc Details

on_write_memory

Stops a dying station pet from overriding persistence data before we respawn it and thus causing issues.

\ No newline at end of file diff --git a/datum/component/mutant_hands.html b/datum/component/mutant_hands.html new file mode 100644 index 0000000000000..73b12d0349486 --- /dev/null +++ b/datum/component/mutant_hands.html @@ -0,0 +1,19 @@ +/datum/component/mutant_hands - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mutant_hands

Mutant hands component

+

This component applies to humans, and forces them to hold +a certain typepath item in every hand no matter what*.

+

For example, zombies being forced to hold "zombie claws" - disallowing them from holding items +but giving them powerful weapons to infect people

+

It is suggested that the item path supplied has NODROP (and likely DROPDEL), +but nothing's preventing you from not having that.

+

If they lose or gain hands, new mutant hands will be created immediately.

+

Does not override nodrop items that already exist in hand slots. +However if those nodrop items are lost, will immediately create a new mutant hand.

Vars

mutant_hand_pathThe item typepath that we insert into the parent's hands

Procs

apply_mutant_handsTries to give the parent mob mutant hands.
mob_dropped_itemSignal proc for COMSIG_MOB_UNEQUIPPED_ITEM
mob_equipped_itemSignal proc for COMSIG_MOB_EQUIPPED_ITEM
remove_mutant_handsRemoves all mutant idems from the parent's hand slots
try_reapply_handsSignal proc for any signals that may result in the number of hands of the parent mob changing

Var Details

mutant_hand_path

The item typepath that we insert into the parent's hands

Proc Details

apply_mutant_hands

Tries to give the parent mob mutant hands.

+

mob_dropped_item

Signal proc for COMSIG_MOB_UNEQUIPPED_ITEM

+

This is another failsafe - the mob dropped something, maybe from their hands, so try to re-equip

mob_equipped_item

Signal proc for COMSIG_MOB_EQUIPPED_ITEM

+

This is a failsafe - the mob managed to pick up something that isn't a mutant hand

remove_mutant_hands

Removes all mutant idems from the parent's hand slots

try_reapply_hands

Signal proc for any signals that may result in the number of hands of the parent mob changing

+

Always try to re-insert mutanthands if we gain or lose hands

\ No newline at end of file diff --git a/datum/component/mutant_infection.html b/datum/component/mutant_infection.html new file mode 100644 index 0000000000000..1782bde77e07e --- /dev/null +++ b/datum/component/mutant_infection.html @@ -0,0 +1 @@ +/datum/component/mutant_infection - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mutant_infection

Vars

hostThe reference to our host body.
insanity_phrasesA list of phrases people are sent while they are being converted.
mutant_speciesA list of possible mutant species we can choose from when someone is converted.
old_speciesThe previous species of the person infected. Used when they are uninfected.
rna_extractedHave we have our RNA extracted? If so, we can't have it extracted again.
selected_typeThe species we have selected after we have converted.
timer_idOur timer ID used for seperate parts of the infection.
tox_loss_modHow much toxin damage we take per tick. - Can probably be a define.

Var Details

host

The reference to our host body.

insanity_phrases

A list of phrases people are sent while they are being converted.

mutant_species

A list of possible mutant species we can choose from when someone is converted.

old_species

The previous species of the person infected. Used when they are uninfected.

rna_extracted

Have we have our RNA extracted? If so, we can't have it extracted again.

selected_type

The species we have selected after we have converted.

timer_id

Our timer ID used for seperate parts of the infection.

tox_loss_mod

How much toxin damage we take per tick. - Can probably be a define.

\ No newline at end of file diff --git a/datum/component/netpod_healing.html b/datum/component/netpod_healing.html new file mode 100644 index 0000000000000..1c8b5f5ac8827 --- /dev/null +++ b/datum/component/netpod_healing.html @@ -0,0 +1 @@ +/datum/component/netpod_healing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

netpod_healing

Procs

on_removeDeletes itself when the machine was opened

Proc Details

on_remove

Deletes itself when the machine was opened

\ No newline at end of file diff --git a/datum/component/nif_examine.html b/datum/component/nif_examine.html new file mode 100644 index 0000000000000..4ad7d31a966dc --- /dev/null +++ b/datum/component/nif_examine.html @@ -0,0 +1 @@ +/datum/component/nif_examine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

nif_examine

Vars

nif_examine_textWhat text is shown when examining someone with NIF Examine text?

Procs

add_examineAdds and examine based on the nif_examine_text of the nif_user

Var Details

nif_examine_text

What text is shown when examining someone with NIF Examine text?

Proc Details

add_examine

Adds and examine based on the nif_examine_text of the nif_user

\ No newline at end of file diff --git a/datum/component/npc_friendly.html b/datum/component/npc_friendly.html new file mode 100644 index 0000000000000..90440c299ef0f --- /dev/null +++ b/datum/component/npc_friendly.html @@ -0,0 +1 @@ +/datum/component/npc_friendly - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

npc_friendly

Makes a mob friendly with most NPC factions

Vars

npc_factionsThe list of factions to add to the player
previous_factionsList of factions previously held by the player

Var Details

npc_factions

The list of factions to add to the player

previous_factions

List of factions previously held by the player

\ No newline at end of file diff --git a/datum/component/nuclear_bomb_operator.html b/datum/component/nuclear_bomb_operator.html new file mode 100644 index 0000000000000..d67ea2627a99f --- /dev/null +++ b/datum/component/nuclear_bomb_operator.html @@ -0,0 +1,9 @@ +/datum/component/nuclear_bomb_operator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Nuclear Bomb Operator

Component applied to handless non-carbon mobs to allow them to perform the function of a nuclear operative. +Effectively this means they need to be able to:

+ +

Human mobs do not need this component because they can already do all of those things.

Vars

add_disk_overlaysShould return some overlays to display on the mob to show they're carrying a disk
diskyA weak reference to a held nuclear disk, in place of holding it in our inventory, because we don't have one
on_disk_collectedSomething to call when we collect the disk

Procs

atom_exited_ownerDon't hold onto the reference if we lose the disk somehow
drop_diskyDrop the disk on the floor, if we have it
on_deathDrop the disk when we are killed
on_examineAdd details about carrying the nuke disc to examination.
on_update_overlaysDisplay any disk-related overlays which need displaying
owner_attacked_atomTry to pick up the disk, put it down, or open the nuke panel
try_pick_up_diskPicks up the nuke disk, if it can be picked up
try_put_down_diskUses the disk on clicked atom, or places it on the ground

Var Details

add_disk_overlays

Should return some overlays to display on the mob to show they're carrying a disk

disky

A weak reference to a held nuclear disk, in place of holding it in our inventory, because we don't have one

on_disk_collected

Something to call when we collect the disk

Proc Details

atom_exited_owner

Don't hold onto the reference if we lose the disk somehow

drop_disky

Drop the disk on the floor, if we have it

on_death

Drop the disk when we are killed

on_examine

Add details about carrying the nuke disc to examination.

on_update_overlays

Display any disk-related overlays which need displaying

owner_attacked_atom

Try to pick up the disk, put it down, or open the nuke panel

try_pick_up_disk

Picks up the nuke disk, if it can be picked up

try_put_down_disk

Uses the disk on clicked atom, or places it on the ground

\ No newline at end of file diff --git a/datum/component/obeys_commands.html b/datum/component/obeys_commands.html new file mode 100644 index 0000000000000..c520a8bcca4b4 --- /dev/null +++ b/datum/component/obeys_commands.html @@ -0,0 +1,2 @@ +/datum/component/obeys_commands - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Obeys Commands Component

Manages a list of pet command datums, allowing you to boss it around +Creates a radial menu of pet commands when this creature is alt-clicked, if it has any

Vars

available_commandsList of commands you can give to the owner of this component

Procs

InitializeThe available_commands parameter should be passed as a list of typepaths
add_friendAdd someone to our friends list
display_menuDisplays a radial menu of commands
display_radial_menuActually display the radial menu and then do something with the result
remove_friendRemove someone from our friends list

Var Details

available_commands

List of commands you can give to the owner of this component

Proc Details

Initialize

The available_commands parameter should be passed as a list of typepaths

add_friend

Add someone to our friends list

display_menu

Displays a radial menu of commands

display_radial_menu

Actually display the radial menu and then do something with the result

remove_friend

Remove someone from our friends list

\ No newline at end of file diff --git a/datum/component/object_possession.html b/datum/component/object_possession.html new file mode 100644 index 0000000000000..f2bc20e9925e8 --- /dev/null +++ b/datum/component/object_possession.html @@ -0,0 +1,6 @@ +/datum/component/object_possession - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

object_possession

Component that allows a user to control any object as if it were a mob. Does give the user incorporeal movement.

Vars

possessedStores a reference to the obj that we are currently possessing.
screen_alert_refRef to the screen object that is currently being displayed.
stashed_nameback up of the real name during user possession

Procs

end_possessionJust the overall "get me outta here" proc.
on_moveforce move the parent object instead of the source mob.

Var Details

possessed

Stores a reference to the obj that we are currently possessing.

screen_alert_ref

Ref to the screen object that is currently being displayed.

stashed_name

back up of the real name during user possession

+

When a user possesses an object its real name is set to the user name and this +stores whatever the real name was previously. When possession ends, the real name +is reset to this value

Proc Details

end_possession

Just the overall "get me outta here" proc.

on_move

force move the parent object instead of the source mob.

+

Has no sanity other than checking the possed obj's density. this means it effectively has incorporeal movement, making it only good for badminnery.

+

We always want to return COMPONENT_MOVABLE_BLOCK_PRE_MOVE here regardless

\ No newline at end of file diff --git a/datum/component/off_duty_timer.html b/datum/component/off_duty_timer.html new file mode 100644 index 0000000000000..f386b1b147fbb --- /dev/null +++ b/datum/component/off_duty_timer.html @@ -0,0 +1 @@ +/datum/component/off_duty_timer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

off_duty_timer

Vars

hop_lockedIs the owner of card locked out of clocking back in until their ID is unlocked by the HoP?
on_cooldownIs the ID that the component is attached to is able to clock back in?
stored_assignmentWhat was the name of the job the person was working when they clocked out?
stored_trimThe stored ID trim of the user of the id

Procs

attempt_unlockAttempts an unlock if attacked by another ID. If the ID has HoP access, it will unlock and return TRUE
remove_cooldownSets the on_cooldown variable to false, making it so that the ID can clock back in.

Var Details

hop_locked

Is the owner of card locked out of clocking back in until their ID is unlocked by the HoP?

on_cooldown

Is the ID that the component is attached to is able to clock back in?

stored_assignment

What was the name of the job the person was working when they clocked out?

stored_trim

The stored ID trim of the user of the id

Proc Details

attempt_unlock

Attempts an unlock if attacked by another ID. If the ID has HoP access, it will unlock and return TRUE

remove_cooldown

Sets the on_cooldown variable to false, making it so that the ID can clock back in.

\ No newline at end of file diff --git a/datum/component/omen.html b/datum/component/omen.html new file mode 100644 index 0000000000000..daa8d0a2f0547 --- /dev/null +++ b/datum/component/omen.html @@ -0,0 +1,6 @@ +/datum/component/omen - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

omen

omen.dm: For when you want someone to have a really bad day

+

When you attach an omen component to someone, they start running the risk of all sorts of bad environmental injuries, like nearby vending machines randomly falling on you, +or hitting your head really hard when you slip and fall, or you get shocked by the tram rails at an unfortunate moment.

+

Omens are removed once the victim is either maimed by one of the possible injuries, or if they receive a blessing (read: bashing with a bible) from the chaplain.

Vars

damage_modBase damage from negative events. Cursed take 25% of this damage.
incidents_leftHow many incidents are left. If 0 exactly, it will get deleted.
luck_modBase probability of negative events. Cursed are half as unlucky.
vesselWhatever's causing the omen, if there is one. Destroying the vessel won't stop the omen, but we destroy the vessel (if one exists) upon the omen ending

Procs

InheritComponentThis is a omen eat omen world! The stronger omen survives.
check_accidentcheck_accident() is called each step we take
check_blessHijack the mood system to see if we get the blessing mood event to cancel the omen
check_deathSevere deaths. Normally lifts the curse.
check_slipIf we get knocked down, see if we have a really bad slip and bash our head hard
death_explodeCreates a localized explosion that shakes the camera
vessel_qdeletingVessel got deleted, set it to null

Var Details

damage_mod

Base damage from negative events. Cursed take 25% of this damage.

incidents_left

How many incidents are left. If 0 exactly, it will get deleted.

luck_mod

Base probability of negative events. Cursed are half as unlucky.

vessel

Whatever's causing the omen, if there is one. Destroying the vessel won't stop the omen, but we destroy the vessel (if one exists) upon the omen ending

Proc Details

InheritComponent

This is a omen eat omen world! The stronger omen survives.

check_accident

check_accident() is called each step we take

+

While we're walking around, roll to see if there's any environmental hazards on one of the adjacent tiles we can trigger. +We do the prob() at the beginning to A. add some tension for /when/ it will strike, and B. (more importantly) ameliorate the fact that we're checking up to 5 turfs's contents each time

check_bless

Hijack the mood system to see if we get the blessing mood event to cancel the omen

check_death

Severe deaths. Normally lifts the curse.

check_slip

If we get knocked down, see if we have a really bad slip and bash our head hard

death_explode

Creates a localized explosion that shakes the camera

vessel_qdeleting

Vessel got deleted, set it to null

\ No newline at end of file diff --git a/datum/component/onwear_mood.html b/datum/component/onwear_mood.html new file mode 100644 index 0000000000000..1b45f3ca91415 --- /dev/null +++ b/datum/component/onwear_mood.html @@ -0,0 +1 @@ +/datum/component/onwear_mood - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

onwear_mood

Add to clothing to give the wearer a mood buff and a unique examine text

Vars

examine_stringexamine string added to examine
saved_event_typethe event the wearer experiences
slot_equipwhat slots it needs to be equipped to to work

Procs

clear_effectsclears the effects on the wearer

Var Details

examine_string

examine string added to examine

saved_event_type

the event the wearer experiences

slot_equip

what slots it needs to be equipped to to work

Proc Details

clear_effects

clears the effects on the wearer

\ No newline at end of file diff --git a/datum/component/organ_corruption.html b/datum/component/organ_corruption.html new file mode 100644 index 0000000000000..3f99f5b80241c --- /dev/null +++ b/datum/component/organ_corruption.html @@ -0,0 +1,31 @@ +/datum/component/organ_corruption - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

organ_corruption

Component for Hemophage tumor-induced organ corruption, for the organs +that need to receive the ORGAN_TUMOR_CORRUPTED flag, to corrupt +them properly.

Vars

corruptable_organ_typeThe type of organ affected by this specific type of organ corruption.
corrupted_iconIf this type of organ has a unique sprite for what its corrupted +version should look like, this will be the icon file it will be pulled +from.
corrupted_icon_stateIf this type of organ has a unique sprite for what its corrupted +version should look like, this will be the icon state it will be pulled +from.
corrupted_prefixThe prefix added to the organ once it is successfully corrupted.
corruption_timer_idThe timer associated with the corruption process, if any.
currently_tumorlessWhether this organ is tumorless and therefore should be taking damage. +Note: This variable isn't there to handle the behavior, and is only there +to prevent organs taking damage when tumors are being swapped around between +multiple people, somehow.

Procs

clear_corruption_timerHandles clearing the timer for corrupting an organ if the organ is QDELETING.
corrupt_organHandles corrupting the organ, adding any sort of behavior on it as needed.
decay_corrupted_organHandles damaging the corrupted organ when the tumor is no longer present in the body.
on_tumor_removedHandles either deleting the corruption in case the organ didn't get corrupted +yet, or starting the process of the organ degrading because the tumor isn't +there to sustain it anymore.
organ_is_corruptedReturns whether or not the attached organ has been corrupted yet or not. +Fancy wrapper for just !corruption_timer_id.
register_signals_on_organ_ownerHandles registering signals on the (new) organ owner, if it was to ever be +taken out and put into someone else.
unregister_signals_from_organ_loserHandles unregistering the signals that were registered on the loser from +having this organ in their body.

Var Details

corruptable_organ_type

The type of organ affected by this specific type of organ corruption.

corrupted_icon

If this type of organ has a unique sprite for what its corrupted +version should look like, this will be the icon file it will be pulled +from.

corrupted_icon_state

If this type of organ has a unique sprite for what its corrupted +version should look like, this will be the icon state it will be pulled +from.

corrupted_prefix

The prefix added to the organ once it is successfully corrupted.

corruption_timer_id

The timer associated with the corruption process, if any.

currently_tumorless

Whether this organ is tumorless and therefore should be taking damage. +Note: This variable isn't there to handle the behavior, and is only there +to prevent organs taking damage when tumors are being swapped around between +multiple people, somehow.

Proc Details

clear_corruption_timer

Handles clearing the timer for corrupting an organ if the organ is QDELETING.

corrupt_organ

Handles corrupting the organ, adding any sort of behavior on it as needed.

+

Arguments:

+

decay_corrupted_organ

Handles damaging the corrupted organ when the tumor is no longer present in the body.

on_tumor_removed

Handles either deleting the corruption in case the organ didn't get corrupted +yet, or starting the process of the organ degrading because the tumor isn't +there to sustain it anymore.

organ_is_corrupted

Returns whether or not the attached organ has been corrupted yet or not. +Fancy wrapper for just !corruption_timer_id.

register_signals_on_organ_owner

Handles registering signals on the (new) organ owner, if it was to ever be +taken out and put into someone else.

unregister_signals_from_organ_loser

Handles unregistering the signals that were registered on the loser from +having this organ in their body.

\ No newline at end of file diff --git a/datum/component/organ_corruption/liver.html b/datum/component/organ_corruption/liver.html new file mode 100644 index 0000000000000..1555150950486 --- /dev/null +++ b/datum/component/organ_corruption/liver.html @@ -0,0 +1 @@ +/datum/component/organ_corruption/liver - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

liver

Procs

handle_drinkHandles reacting to drinks based on their content, to see if the tumor likes what's in it or not.

Proc Details

handle_drink

Handles reacting to drinks based on their content, to see if the tumor likes what's in it or not.

\ No newline at end of file diff --git a/datum/component/organ_corruption/tongue.html b/datum/component/organ_corruption/tongue.html new file mode 100644 index 0000000000000..0bdde7c107f67 --- /dev/null +++ b/datum/component/organ_corruption/tongue.html @@ -0,0 +1 @@ +/datum/component/organ_corruption/tongue - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tongue

Vars

tongue_action_typeThe item action given to the tongue once it was corrupted.

Var Details

tongue_action_type

The item action given to the tongue once it was corrupted.

\ No newline at end of file diff --git a/datum/component/overlay_lighting.html b/datum/component/overlay_lighting.html new file mode 100644 index 0000000000000..def8b75fb5a41 --- /dev/null +++ b/datum/component/overlay_lighting.html @@ -0,0 +1,27 @@ +/datum/component/overlay_lighting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

overlay_lighting

Movable atom overlay-based lighting component.

+

Vars

affected_turfsLazy list to track the turfs being affected by our light, to determine their visibility.
beamWhether we're a beam light
cast_rangeCast range for the directional cast (how far away the atom is moved)
coneA cone overlay for directional light, its alpha and color are dependent on the light
current_directionCurrent tracked direction for the directional cast behaviour
current_holderMovable atom currently holding the light. Parent might be a flashlight, for example, but that might be held by a mob or something else.
directionalWhether we're a directional light
directional_offset_xTracks current directional x offset so we don't update unnecessarily
directional_offset_yTracks current directional y offset so we don't update unnecessarily
light_overlaysCache of the possible light overlays, according to size.
lum_powerHow much this light affects the dynamic_lumcount of turfs.
lumcount_rangeCeiling of range, integer without decimal entries.
overlay_lighting_flagsFor light sources that can be turned on and off.
parent_attached_toMovable atom the parent is attached to. For example, a flashlight into a helmet or gun. We'll need to track the thing the parent is attached to as if it were the parent itself.
rangeHow far the light reaches, float.
set_alphaTransparency value.
visible_maskOverlay effect to cut into the darkness and provide light.

Procs

add_dynamic_lumiAdds the luminosity and source for the affected movable atoms to keep track of their visibility.
cast_directional_lightHere we append the behavior associated to changing lum_power.
check_holderUsed to determine the new valid current_holder from the parent's loc.
clean_old_turfsClears the affected_turfs lazylist, removing from its contents the effects of being near the light.
get_new_turfsPopulates the affected_turfs lazylist, adding to its contents the effects of being near the light.
make_luminosity_updateClears the old affected turfs and populates the new ones.
on_holder_dir_changeCalled when current_holder changes loc.
on_holder_movedCalled when current_holder changes loc.
on_holder_qdelCalled when the current_holder is qdeleted, to remove the light effect.
on_light_eaterHandles putting the source for overlay lights into the light eater queue since we aren't tracked by /atom/var/light_sources
on_light_flags_changeTriggered right after the parent light flags change.
on_parent_attached_to_movedCalled when parent_attached_to changes loc.
on_parent_attached_to_qdelCalled when the current_holder is qdeleted, to remove the light effect.
on_parent_dir_changeCalled when parent changes loc.
on_parent_movedCalled when parent changes loc.
on_toggleToggles the light on and off.
remove_dynamic_lumiRemoves the luminosity and source for the affected movable atoms to keep track of their visibility.
set_colorChanges the light's color, pretty straightforward.
set_directionSets a new direction for the directional cast, then updates luminosity
set_holderCalled to change the value of current_holder.
set_lum_powerHere we append the behavior associated to changing lum_power.
set_parent_attached_toCalled to change the value of parent_attached_to.
set_powerChanges the intensity/brightness of the light by altering the visual object's alpha.
set_rangeChanges the range which the light reaches. 0 means no light, 6 is the maximum value.
turn_offToggles the light off.
turn_onToggles the light on.

Var Details

affected_turfs

Lazy list to track the turfs being affected by our light, to determine their visibility.

beam

Whether we're a beam light

cast_range

Cast range for the directional cast (how far away the atom is moved)

cone

A cone overlay for directional light, its alpha and color are dependent on the light

current_direction

Current tracked direction for the directional cast behaviour

current_holder

Movable atom currently holding the light. Parent might be a flashlight, for example, but that might be held by a mob or something else.

directional

Whether we're a directional light

directional_offset_x

Tracks current directional x offset so we don't update unnecessarily

directional_offset_y

Tracks current directional y offset so we don't update unnecessarily

light_overlays

Cache of the possible light overlays, according to size.

lum_power

How much this light affects the dynamic_lumcount of turfs.

lumcount_range

Ceiling of range, integer without decimal entries.

overlay_lighting_flags

For light sources that can be turned on and off.

parent_attached_to

Movable atom the parent is attached to. For example, a flashlight into a helmet or gun. We'll need to track the thing the parent is attached to as if it were the parent itself.

range

How far the light reaches, float.

set_alpha

Transparency value.

visible_mask

Overlay effect to cut into the darkness and provide light.

Proc Details

add_dynamic_lumi

Adds the luminosity and source for the affected movable atoms to keep track of their visibility.

cast_directional_light

Here we append the behavior associated to changing lum_power.

check_holder

Used to determine the new valid current_holder from the parent's loc.

clean_old_turfs

Clears the affected_turfs lazylist, removing from its contents the effects of being near the light.

get_new_turfs

Populates the affected_turfs lazylist, adding to its contents the effects of being near the light.

make_luminosity_update

Clears the old affected turfs and populates the new ones.

on_holder_dir_change

Called when current_holder changes loc.

on_holder_moved

Called when current_holder changes loc.

on_holder_qdel

Called when the current_holder is qdeleted, to remove the light effect.

on_light_eater

Handles putting the source for overlay lights into the light eater queue since we aren't tracked by /atom/var/light_sources

on_light_flags_change

Triggered right after the parent light flags change.

on_parent_attached_to_moved

Called when parent_attached_to changes loc.

on_parent_attached_to_qdel

Called when the current_holder is qdeleted, to remove the light effect.

on_parent_dir_change

Called when parent changes loc.

on_parent_moved

Called when parent changes loc.

on_toggle

Toggles the light on and off.

remove_dynamic_lumi

Removes the luminosity and source for the affected movable atoms to keep track of their visibility.

set_color

Changes the light's color, pretty straightforward.

set_direction

Sets a new direction for the directional cast, then updates luminosity

set_holder

Called to change the value of current_holder.

set_lum_power

Here we append the behavior associated to changing lum_power.

set_parent_attached_to

Called to change the value of parent_attached_to.

set_power

Changes the intensity/brightness of the light by altering the visual object's alpha.

set_range

Changes the range which the light reaches. 0 means no light, 6 is the maximum value.

turn_off

Toggles the light off.

turn_on

Toggles the light on.

\ No newline at end of file diff --git a/datum/component/palette.html b/datum/component/palette.html new file mode 100644 index 0000000000000..458cd2ba24eeb --- /dev/null +++ b/datum/component/palette.html @@ -0,0 +1,4 @@ +/datum/component/palette - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

palette

A component that stores colors for use by painting-related items like spraycans or palettes +which can be accessed through a radial menu by right clicking the item while it's held by the user mob. +Right-clicking a color will open a color input prompt to edit it. Left clicking will instead select it +and call set_painting_tool_color() on the parent for more specific object behavior.

Vars

color_picker_menuThe persistent radial menu for this component.
menu_choicesThe radial menu choice datums are stored here as a microop to avoid generating new ones every time the menu is opened or updated.

Var Details

color_picker_menu

The persistent radial menu for this component.

menu_choices

The radial menu choice datums are stored here as a microop to avoid generating new ones every time the menu is opened or updated.

\ No newline at end of file diff --git a/datum/component/parriable_projectile.html b/datum/component/parriable_projectile.html new file mode 100644 index 0000000000000..0acab8a5aafd0 --- /dev/null +++ b/datum/component/parriable_projectile.html @@ -0,0 +1 @@ +/datum/component/parriable_projectile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

parriable_projectile

Add to a projectile to allow it to be parried by mobs with a certain trait (TRAIT_MINING_PARRYING by default)

Vars

boost_damage_multHow much this projectile's damage is increased when boosted (parried by owner)
boost_speed_multHow much this projectile is sped up when boosted (parried by owner)
fire_timeWhen the projectile was created
grace_periodFor how long do valid tiles persist? Acts as clientside lag compensation
parriedIf this projectile has been parried
parriersList of all mobs who have clicked on a parry turf in last moveloop
parry_callbackCallback for special effects upon parrying
parry_damage_multHow much this projectile's damage is increased when parried
parry_speed_multHow much this projectile is sped up when parried
parry_traitTrait required to be able to parry this projectile
parry_turfsList of all turfs the projectile passed on its last loop and we assigned comsigs to

Var Details

boost_damage_mult

How much this projectile's damage is increased when boosted (parried by owner)

boost_speed_mult

How much this projectile is sped up when boosted (parried by owner)

fire_time

When the projectile was created

grace_period

For how long do valid tiles persist? Acts as clientside lag compensation

parried

If this projectile has been parried

parriers

List of all mobs who have clicked on a parry turf in last moveloop

parry_callback

Callback for special effects upon parrying

parry_damage_mult

How much this projectile's damage is increased when parried

parry_speed_mult

How much this projectile is sped up when parried

parry_trait

Trait required to be able to parry this projectile

parry_turfs

List of all turfs the projectile passed on its last loop and we assigned comsigs to

\ No newline at end of file diff --git a/datum/component/payment.html b/datum/component/payment.html new file mode 100644 index 0000000000000..f3221776e2788 --- /dev/null +++ b/datum/component/payment.html @@ -0,0 +1,16 @@ +/datum/component/payment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

payment

Handles simple payment operations where the cost of the object in question doesn't change.

+

What this is useful for: +Basic forms of vending. +Objects that can drain the owner's money linearly. +What this is not useful for: +Things where the seller may want to fluxuate the price of the object. +Improving standardizing every form of payment handing, as some custom handling is specific to that object.

Vars

costNO OVERRIDING TO CHEESE BOUNTIES +Standardized of operation.
department_discountDoes this payment component respect same-department-discount?
target_accWho's getting paid?
transaction_styleFlavor style for handling cash (Friendly? Hostile? etc.)

Procs

change_costProc that changes the base cost of the interaction.
clean_upAttempts to remove the payment component, currently when the crew wins a revolution.
handle_cardAttempts to charge a mob, user, an integer number of credits, total_cost, directly from an ID card/bank account.
handle_cardlessAttempts to charge the mob, user, an integer number of credits, total_cost, without the use of an ID card to directly draw upon.

Var Details

cost

NO OVERRIDING TO CHEESE BOUNTIES +Standardized of operation.

department_discount

Does this payment component respect same-department-discount?

target_acc

Who's getting paid?

transaction_style

Flavor style for handling cash (Friendly? Hostile? etc.)

Proc Details

change_cost

Proc that changes the base cost of the interaction.

+

clean_up

Attempts to remove the payment component, currently when the crew wins a revolution.

+

handle_card

Attempts to charge a mob, user, an integer number of credits, total_cost, directly from an ID card/bank account.

handle_cardless

Attempts to charge the mob, user, an integer number of credits, total_cost, without the use of an ID card to directly draw upon.

\ No newline at end of file diff --git a/datum/component/pellet_cloud.html b/datum/component/pellet_cloud.html new file mode 100644 index 0000000000000..e6b1fd07d0ffe --- /dev/null +++ b/datum/component/pellet_cloud.html @@ -0,0 +1,14 @@ +/datum/component/pellet_cloud - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pellet_cloud

Vars

bodiesFor grenades, any /mob/living's the grenade is moved onto, see /datum/component/pellet_cloud/proc/handle_martyrs
hitshow many pellets impacted something
num_pelletsHow many shrapnel projectiles are we responsible for tracking? May be reduced for grenades if someone dives on top of it. Defined by ammo casing for casings, derived from magnitude otherwise
pellet_deltaFor grenades, tracking how many pellets are removed due to martyrs and how many pellets are added due to the last person to touch it being on top of it
pelletsThe list of pellets we're responsible for tracking, once these are all accounted for, we finalize.
projectile_typeWhat's the projectile path of the shrapnel we're shooting?
purple_heartsFor grenades, tracking people who die covering a grenade for achievement purposes, see /datum/component/pellet_cloud/proc/handle_martyrs
queued_deleteIf the parent tried deleting and we're not done yet, we send it to nullspace then delete it after
radiusFor grenades/landmines, how big is the radius of turfs we're targeting? Note this does not effect the projectiles range, only how many we generate
shooterfor if we're an ammo casing being fired
targets_hitAn associated list with the atom hit as the key and how many pellets they've eaten for the value, for printing aggregate messages
terminatedhow many pellets ranged out without hitting anything
wound_info_by_partAnother associated list for hit bodyparts on carbons so we can track how much wounding potential we have for each bodypart

Procs

create_blast_pelletscreate_blast_pellets() is for when we have a central point we want to shred the surroundings of with a ring of shrapnel, namely frag grenades and landmines.
create_casing_pelletscreate_casing_pellets() is for directed pellet clouds for ammo casings that have multiple pellets (buckshot and scatter lasers for instance)
finalizeAll of our pellets are accounted for, time to go target by target and tell them how many things they got hit by.
grenade_armedLook alive, we're armed! Now we start watching to see if anyone's covering us
grenade_droppedSomeone dropped the grenade, so set them to the shooter in case they're on top of it when it goes off
grenade_movedOur grenade has moved, reset var/list/bodies so we're "on top" of any mobs currently on the tile
grenade_uncrossedSomeone who was originally "under" the grenade has moved off the tile and is now eligible for being a martyr and "covering" it
handle_martyrshandle_martyrs() is used for grenades that shoot shrapnel to check if anyone threw themselves/were thrown on top of the grenade, thus absorbing a good chunk of the shrapnel
nullspace_parentOur grenade or landmine or caseless shell or whatever tried deleting itself, so we intervene and nullspace it until we're done here
on_target_qdelSomeone who was originally "under" the grenade has moved off the tile and is now eligible for being a martyr and "covering" it
pellet_hitOne of our pellets hit something, record what it was and check if we're done (terminated == num_pellets)
pellet_rangeOne of our pellets disappeared due to hitting their max range (or just somehow got qdel'd), remove it from our list and check if we're done (terminated == num_pellets)
pewMinor convenience function for creating each shrapnel piece with circle explosions, mostly stolen from the MIRV component

Var Details

bodies

For grenades, any /mob/living's the grenade is moved onto, see /datum/component/pellet_cloud/proc/handle_martyrs

hits

how many pellets impacted something

num_pellets

How many shrapnel projectiles are we responsible for tracking? May be reduced for grenades if someone dives on top of it. Defined by ammo casing for casings, derived from magnitude otherwise

pellet_delta

For grenades, tracking how many pellets are removed due to martyrs and how many pellets are added due to the last person to touch it being on top of it

pellets

The list of pellets we're responsible for tracking, once these are all accounted for, we finalize.

projectile_type

What's the projectile path of the shrapnel we're shooting?

purple_hearts

For grenades, tracking people who die covering a grenade for achievement purposes, see /datum/component/pellet_cloud/proc/handle_martyrs

queued_delete

If the parent tried deleting and we're not done yet, we send it to nullspace then delete it after

radius

For grenades/landmines, how big is the radius of turfs we're targeting? Note this does not effect the projectiles range, only how many we generate

shooter

for if we're an ammo casing being fired

targets_hit

An associated list with the atom hit as the key and how many pellets they've eaten for the value, for printing aggregate messages

terminated

how many pellets ranged out without hitting anything

wound_info_by_part

Another associated list for hit bodyparts on carbons so we can track how much wounding potential we have for each bodypart

Proc Details

create_blast_pellets

create_blast_pellets() is for when we have a central point we want to shred the surroundings of with a ring of shrapnel, namely frag grenades and landmines.

+

Note that grenades have extra handling for someone throwing themselves/being thrown on top of it, see /datum/component/pellet_cloud/proc/handle_martyrs +Landmines just have a small check for /obj/effect/mine/shrapnel/var/shred_triggerer, and spawn extra shrapnel for them if so

+

Arguments:

+

create_casing_pellets

create_casing_pellets() is for directed pellet clouds for ammo casings that have multiple pellets (buckshot and scatter lasers for instance)

+

Honestly this is mostly just a rehash of [/obj/item/ammo_casing/proc/fire_casing] for pellet counts > 1, except this lets us tamper with the pellets and hook onto them for tracking purposes. +The arguments really don't matter, while this proc is triggered by COMSIG_FIRE_CASING, it's just a big mess of the state vars we need for doing the stuff over here.

finalize

All of our pellets are accounted for, time to go target by target and tell them how many things they got hit by.

grenade_armed

Look alive, we're armed! Now we start watching to see if anyone's covering us

grenade_dropped

Someone dropped the grenade, so set them to the shooter in case they're on top of it when it goes off

grenade_moved

Our grenade has moved, reset var/list/bodies so we're "on top" of any mobs currently on the tile

grenade_uncrossed

Someone who was originally "under" the grenade has moved off the tile and is now eligible for being a martyr and "covering" it

handle_martyrs

handle_martyrs() is used for grenades that shoot shrapnel to check if anyone threw themselves/were thrown on top of the grenade, thus absorbing a good chunk of the shrapnel

+

Between the time the grenade is armed and the actual detonation, we set var/list/bodies to the list of mobs currently on the new tile, as if the grenade landed on top of them, tracking if any of them move off the tile and removing them from the "under" list +Once the grenade detonates, handle_martyrs() is called and gets all the new mobs on the tile, and add the ones not in var/list/bodies to var/list/martyrs +We then iterate through the martyrs and reduce the shrapnel magnitude for each mob on top of it, shredding each of them with some of the shrapnel they helped absorb. This can snuff out all of the shrapnel if there's enough bodies

+

Note we track anyone who's alive and client'd when they get shredded in var/list/purple_hearts, for achievement checking later

nullspace_parent

Our grenade or landmine or caseless shell or whatever tried deleting itself, so we intervene and nullspace it until we're done here

on_target_qdel

Someone who was originally "under" the grenade has moved off the tile and is now eligible for being a martyr and "covering" it

pellet_hit

One of our pellets hit something, record what it was and check if we're done (terminated == num_pellets)

pellet_range

One of our pellets disappeared due to hitting their max range (or just somehow got qdel'd), remove it from our list and check if we're done (terminated == num_pellets)

pew

Minor convenience function for creating each shrapnel piece with circle explosions, mostly stolen from the MIRV component

\ No newline at end of file diff --git a/datum/component/personal_crafting.html b/datum/component/personal_crafting.html new file mode 100644 index 0000000000000..d737e10c76bb1 --- /dev/null +++ b/datum/component/personal_crafting.html @@ -0,0 +1,4 @@ +/datum/component/personal_crafting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

personal_crafting

Vars

ignored_flagscrafting flags we ignore when considering a recipe

Procs

check_contentsCheck that the contents of the recipe meet the requirements.
check_toolsReturns a boolean on whether the tool requirements of the input recipe are satisfied by the input source and surroundings.

Var Details

ignored_flags

crafting flags we ignore when considering a recipe

Proc Details

check_contents

Check that the contents of the recipe meet the requirements.

+

user: The /mob that initated the crafting. +R: The /datum/crafting_recipe being attempted. +contents: List of items to search for R's reqs.

check_tools

Returns a boolean on whether the tool requirements of the input recipe are satisfied by the input source and surroundings.

\ No newline at end of file diff --git a/datum/component/phylactery.html b/datum/component/phylactery.html new file mode 100644 index 0000000000000..e5e0ff81d5a5e --- /dev/null +++ b/datum/component/phylactery.html @@ -0,0 +1,19 @@ +/datum/component/phylactery - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

phylactery

Phylactery component

+

Used for lichtom to turn (almost) any object into a phylactery +A mob linked to a phylactery will repeatedly revive on death.

Vars

base_respawn_timeThe respawn timer of the phylactery.
lich_mindThe mind of the lich who is linked to this phylactery.
num_resurrectionsThe number of resurrections that have occurred from this phylactery.
phylactery_colorThe color of the phylactery itself. Applied on creation.
revive_timerA timerid to the current revival timer.
stun_per_resurrectionHow much stun (paralyze) is caused on respawn per revival.
time_per_resurrectionHow much time is added on to the respawn time per revival.

Procs

check_if_lich_diedSignal proc for COMSIG_GLOB_MOB_DEATH.
on_examineSignal proc for COMSIG_ATOM_EXAMINE.
on_lich_mind_lostSignal proc for COMSIG_QDELETING registered on the lich's mind.
revive_lichActually undergo the process of reviving the lich at the site of the phylactery.
stop_timerSignal proc for COMSIG_LIVING_REVIVE.

Var Details

base_respawn_time

The respawn timer of the phylactery.

lich_mind

The mind of the lich who is linked to this phylactery.

num_resurrections

The number of resurrections that have occurred from this phylactery.

phylactery_color

The color of the phylactery itself. Applied on creation.

revive_timer

A timerid to the current revival timer.

stun_per_resurrection

How much stun (paralyze) is caused on respawn per revival.

time_per_resurrection

How much time is added on to the respawn time per revival.

Proc Details

check_if_lich_died

Signal proc for COMSIG_GLOB_MOB_DEATH.

+

If the mob containing our lich's mind is killed, +we can initiate the revival process.

+

We use the global mob death signal here, +instead of registering the normal death signal, +as it's entirely possible the wizard mindswaps +or is gibbed or something wacky happens, and +we need to make sure WHOEVER has our mind is dead

on_examine

Signal proc for COMSIG_ATOM_EXAMINE.

+

Gives some flavor for the phylactery on examine.

on_lich_mind_lost

Signal proc for COMSIG_QDELETING registered on the lich's mind.

+

Minds shouldn't be getting deleted but if for some ungodly reason +the lich'd mind is deleted our component should go with it, as +we don't have a reason to exist anymore.

revive_lich

Actually undergo the process of reviving the lich at the site of the phylactery.

+

Arguments

+

stop_timer

Signal proc for COMSIG_LIVING_REVIVE.

+

If our lich's mob is revived at some point before returning, stop the timer

\ No newline at end of file diff --git a/datum/component/pinata.html b/datum/component/pinata.html new file mode 100644 index 0000000000000..9e020a36a5530 --- /dev/null +++ b/datum/component/pinata.html @@ -0,0 +1 @@ +/datum/component/pinata - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pinata

Objects or mobs with this component will drop items when taking damage.

Vars

candyA list of "candy" items that can be dropped when taking damage
death_dropNumber of "candy" items dropped when the structure is destroyed/mob is killed, set to 0 if none. drop_chance and minimum damage are not applied.
drop_chanceWhat is the likelihood some "candy" should drop when attacked.
minimum_damageHow much damage does an attack need to do to have a chance to drop "candy"

Var Details

candy

A list of "candy" items that can be dropped when taking damage

death_drop

Number of "candy" items dropped when the structure is destroyed/mob is killed, set to 0 if none. drop_chance and minimum damage are not applied.

drop_chance

What is the likelihood some "candy" should drop when attacked.

minimum_damage

How much damage does an attack need to do to have a chance to drop "candy"

\ No newline at end of file diff --git a/datum/component/pinnable_accessory.html b/datum/component/pinnable_accessory.html new file mode 100644 index 0000000000000..78e19781d71c3 --- /dev/null +++ b/datum/component/pinnable_accessory.html @@ -0,0 +1 @@ +/datum/component/pinnable_accessory - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pinnable_accessory

This accessory can be pinned onto someone else

Vars

on_pre_pinOptional callback invoked before pinning, will cancel if it returns FALSE
pinning_timeHow long does it take to pin this onto someone?
silentDo we let people know what we're doing?

Procs

on_atom_interactCalled when you whack someone with this accessory
pin_checksCallback for do_after to check if we can still be pinned
try_to_pinActually try to pin it on

Var Details

on_pre_pin

Optional callback invoked before pinning, will cancel if it returns FALSE

pinning_time

How long does it take to pin this onto someone?

silent

Do we let people know what we're doing?

Proc Details

on_atom_interact

Called when you whack someone with this accessory

pin_checks

Callback for do_after to check if we can still be pinned

try_to_pin

Actually try to pin it on

\ No newline at end of file diff --git a/datum/component/pixel_shift.html b/datum/component/pixel_shift.html new file mode 100644 index 0000000000000..f478ec7d164b8 --- /dev/null +++ b/datum/component/pixel_shift.html @@ -0,0 +1 @@ +/datum/component/pixel_shift - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

pixel_shift

Procs

check_passableChecks if the parent is considered passthroughable from a direction. Projectiles will ignore the check and hit.
pixel_shiftIn-turf pixel movement which can allow things to pass through if the threshold is met.
pixel_shift_downActivates Pixel Shift on Keybind down. Only Pixel Shift movement will be allowed.
pixel_shift_upDisables Pixel Shift on Keybind up. Allows to Move.
unpixel_shiftSets parent pixel offsets to default and deletes the component.

Proc Details

check_passable

Checks if the parent is considered passthroughable from a direction. Projectiles will ignore the check and hit.

pixel_shift

In-turf pixel movement which can allow things to pass through if the threshold is met.

pixel_shift_down

Activates Pixel Shift on Keybind down. Only Pixel Shift movement will be allowed.

pixel_shift_up

Disables Pixel Shift on Keybind up. Allows to Move.

unpixel_shift

Sets parent pixel offsets to default and deletes the component.

\ No newline at end of file diff --git a/datum/component/planet_allergy.html b/datum/component/planet_allergy.html new file mode 100644 index 0000000000000..6249e75c8a0b8 --- /dev/null +++ b/datum/component/planet_allergy.html @@ -0,0 +1 @@ +/datum/component/planet_allergy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

planet_allergy

Procs

InitializeSlowly kill the thing when iuts on a planet

Proc Details

Initialize

Slowly kill the thing when iuts on a planet

\ No newline at end of file diff --git a/datum/component/plumbing.html b/datum/component/plumbing.html new file mode 100644 index 0000000000000..92049f0684134 --- /dev/null +++ b/datum/component/plumbing.html @@ -0,0 +1,3 @@ +/datum/component/plumbing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

plumbing

Vars

activeFALSE to pretty much just not exist in the plumbing world so we can be moved, TRUE to go plumbo mode
demand_colorWhat color is our demand connect?
demand_connectsdirection in wich we act as a demander
ducting_layerThe layer on which we connect. Don't add multiple. If you want multiple layer connects for some reason you can just add multiple components with different layers
ductsIndex with "1" = /datum/ductnet/theductpointingnorth etc. "1" being the num2text from NORTH define
extend_pipe_to_edgeExtend the pipe to the edge for wall-mounted plumbed devices, like sinks and showers
reagentsshortcut to our parents' reagent holder
recipient_reagents_holderIn-case we don't want the main machine to get the reagents, but perhaps whoever is buckled to it
supply_colorWhat color is our supply connect?
supply_connectsdirections in wich we act as a supplier
tile_coveredWhether our tile is covered and we should hide our ducts
turn_connectsif TRUE connects will spin with the parent object visually and codually, so you can have it work in any direction. FALSE if you want it to be static
use_overlaysTRUE if we wanna add proper pipe overlays under our parent object. this is pretty good if i may so so myself

Procs

Initializeturn_connects is for wheter or not we spin with the object to change our pipes
can_addCan we be added to the ductnet?
can_givereturns TRUE when they can give the specified amount and reagent. called by process request
create_overlaysWe create our luxurious piping overlays/underlays, to indicate where we do what. only called once if use_overlays = TRUE in Initialize()
disablewe stop acting like a plumbing thing and disconnect if we are, so we can safely be moved and stuff
enablesettle wherever we are, and start behaving like a piece of plumbing
get_original_directionGive the direction of a pipe, and it'll return wich direction it originally was when its object pointed SOUTH
on_parent_dir_changeCalled when the dir changes. Need to adjust positioning of pipes.
process_requestcheck who can give us what we want, and how many each of them will give us
send_requestcalled from in process(). only calls process_request(), but can be overwritten for children with special behaviour
toggle_activeToggle our machinery on or off. This is called by a hook from default_unfasten_wrench with anchored as only param, so we dont have to copypaste this on every object that can move
transfer_tothis is where the reagent is actually transferred and is thus the finish point of our process()
update_dirWe update our connects only when we settle down by taking our current and original direction to find our new connects +If someone wants it to fucking spin while connected to something go actually knock yourself out

Var Details

active

FALSE to pretty much just not exist in the plumbing world so we can be moved, TRUE to go plumbo mode

demand_color

What color is our demand connect?

demand_connects

direction in wich we act as a demander

ducting_layer

The layer on which we connect. Don't add multiple. If you want multiple layer connects for some reason you can just add multiple components with different layers

ducts

Index with "1" = /datum/ductnet/theductpointingnorth etc. "1" being the num2text from NORTH define

extend_pipe_to_edge

Extend the pipe to the edge for wall-mounted plumbed devices, like sinks and showers

reagents

shortcut to our parents' reagent holder

recipient_reagents_holder

In-case we don't want the main machine to get the reagents, but perhaps whoever is buckled to it

supply_color

What color is our supply connect?

supply_connects

directions in wich we act as a supplier

tile_covered

Whether our tile is covered and we should hide our ducts

turn_connects

if TRUE connects will spin with the parent object visually and codually, so you can have it work in any direction. FALSE if you want it to be static

use_overlays

TRUE if we wanna add proper pipe overlays under our parent object. this is pretty good if i may so so myself

Proc Details

Initialize

turn_connects is for wheter or not we spin with the object to change our pipes

can_add

Can we be added to the ductnet?

can_give

returns TRUE when they can give the specified amount and reagent. called by process request

create_overlays

We create our luxurious piping overlays/underlays, to indicate where we do what. only called once if use_overlays = TRUE in Initialize()

disable

we stop acting like a plumbing thing and disconnect if we are, so we can safely be moved and stuff

enable

settle wherever we are, and start behaving like a piece of plumbing

get_original_direction

Give the direction of a pipe, and it'll return wich direction it originally was when its object pointed SOUTH

on_parent_dir_change

Called when the dir changes. Need to adjust positioning of pipes.

process_request

check who can give us what we want, and how many each of them will give us

send_request

called from in process(). only calls process_request(), but can be overwritten for children with special behaviour

toggle_active

Toggle our machinery on or off. This is called by a hook from default_unfasten_wrench with anchored as only param, so we dont have to copypaste this on every object that can move

transfer_to

this is where the reagent is actually transferred and is thus the finish point of our process()

update_dir

We update our connects only when we settle down by taking our current and original direction to find our new connects +If someone wants it to fucking spin while connected to something go actually knock yourself out

\ No newline at end of file diff --git a/datum/component/plumbing/acclimator.html b/datum/component/plumbing/acclimator.html new file mode 100644 index 0000000000000..c07ed3af583d3 --- /dev/null +++ b/datum/component/plumbing/acclimator.html @@ -0,0 +1 @@ +/datum/component/plumbing/acclimator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

acclimator

Procs

processWe're overriding process and not send_request, because all process does is do the requests, so we might aswell cut out the middle man and save some code from running

Proc Details

process

We're overriding process and not send_request, because all process does is do the requests, so we might aswell cut out the middle man and save some code from running

\ No newline at end of file diff --git a/datum/component/plumbing/filter.html b/datum/component/plumbing/filter.html new file mode 100644 index 0000000000000..38b0842c3614b --- /dev/null +++ b/datum/component/plumbing/filter.html @@ -0,0 +1 @@ +/datum/component/plumbing/filter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

filter

The magical plumbing component used by the chemical filters. The different supply connects behave differently depending on the filters set on the chemical filter

Procs

can_give_in_directionWe check if the direction and reagent are valid to give. Needed for filters since different outputs have different behaviours

Proc Details

can_give_in_direction

We check if the direction and reagent are valid to give. Needed for filters since different outputs have different behaviours

\ No newline at end of file diff --git a/datum/component/plumbing/hydroponics.html b/datum/component/plumbing/hydroponics.html new file mode 100644 index 0000000000000..a5d719e4c4710 --- /dev/null +++ b/datum/component/plumbing/hydroponics.html @@ -0,0 +1 @@ +/datum/component/plumbing/hydroponics - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hydroponics

Special demand connector that consumes as normal, but redirects water into the magical water space.

Vars

nutri_reagentsActual parent reagents that has nutrients
water_reagentsAlternate reagents container to buffer incoming water

Var Details

nutri_reagents

Actual parent reagents that has nutrients

water_reagents

Alternate reagents container to buffer incoming water

\ No newline at end of file diff --git a/datum/component/plundering_attacks.html b/datum/component/plundering_attacks.html new file mode 100644 index 0000000000000..1250dcfc5f5e3 --- /dev/null +++ b/datum/component/plundering_attacks.html @@ -0,0 +1,2 @@ +/datum/component/plundering_attacks - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plundering_attacks

Component that makes basic mobs' melee attacks steal money from the target's ID card. +Plundered money is stored and dropped on death or removal of the component.

Vars

plunder_amountHow many credits do we steal per attack?
plunder_storedHow much plunder do we have stored?

Var Details

plunder_amount

How many credits do we steal per attack?

plunder_stored

How much plunder do we have stored?

\ No newline at end of file diff --git a/datum/component/polarization_controller.html b/datum/component/polarization_controller.html new file mode 100644 index 0000000000000..a43e9b31a9a88 --- /dev/null +++ b/datum/component/polarization_controller.html @@ -0,0 +1,23 @@ +/datum/component/polarization_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

polarization_controller

A component for windows to allow them to be dynamically rendered opaque / +transparent based on a button press.

Vars

idThe ID of the polarizer we're listening to.
non_polarized_colorThe color the window was before it was polarized.
polarization_process_durationThe time it takes for the polarization process to happen.
polarized_colorThe color of the window when polarized.
used_capacitorThe capacitor that was used on the window, if any. Can be null if the +window was spawned already polarized.

Procs

on_window_examineHandles adding the examine strings to windows that have a polarization +controller installed.
on_window_multitool_actSignal handler to handle the removal of this component when someone uses a +multitool (or something that acts like one) on the parent window.
remove_polarization_controllerProc that handles removing the polarization controller. +Had to be made into a separate proc so that it wouldn't be waited for by the +signal handler for the multitool tool act.
toggleHandles toggling the window between opaque and transparent.
window_item_interactCalled when the parent window is being hit by an item

Var Details

id

The ID of the polarizer we're listening to.

non_polarized_color

The color the window was before it was polarized.

polarization_process_duration

The time it takes for the polarization process to happen.

polarized_color

The color of the window when polarized.

used_capacitor

The capacitor that was used on the window, if any. Can be null if the +window was spawned already polarized.

Proc Details

on_window_examine

Handles adding the examine strings to windows that have a polarization +controller installed.

on_window_multitool_act

Signal handler to handle the removal of this component when someone uses a +multitool (or something that acts like one) on the parent window.

remove_polarization_controller

Proc that handles removing the polarization controller. +Had to be made into a separate proc so that it wouldn't be waited for by the +signal handler for the multitool tool act.

toggle

Handles toggling the window between opaque and transparent.

+

Arguments:

+

window_item_interact

Called when the parent window is being hit by an item

+

Arguments:

+ +

See: /obj/item/proc/melee_attack_chain

\ No newline at end of file diff --git a/datum/component/previous_body.html b/datum/component/previous_body.html new file mode 100644 index 0000000000000..9c3cbb3d5cd0d --- /dev/null +++ b/datum/component/previous_body.html @@ -0,0 +1 @@ +/datum/component/previous_body - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

previous_body

A component that is given to a body when the soul inside is inhabiting a soulcatcher. this is mostly here so that the bodies of souls can be revived.

Vars

restore_mindDo we want to try and restore the mind when this is destroyed?
soulcatcher_soulWhat soulcatcher soul do we need to return to the body?

Procs

DestroyAttempts to destroy the component. If restore_mind is true, it will attempt to place the mind back inside of the body and delete the soulcatcher soul.
scan_bodyAttempts to scan the soul referenced in the soulcatcher_soul variable. Returns TRUE if the soul has been scanned, otherwise returns FALSE
signal_destroyDestroys the source component through a signal. mind_restored controls whether or not the mind will be grabbed upon deletion.

Var Details

restore_mind

Do we want to try and restore the mind when this is destroyed?

soulcatcher_soul

What soulcatcher soul do we need to return to the body?

Proc Details

Destroy

Attempts to destroy the component. If restore_mind is true, it will attempt to place the mind back inside of the body and delete the soulcatcher soul.

scan_body

Attempts to scan the soul referenced in the soulcatcher_soul variable. Returns TRUE if the soul has been scanned, otherwise returns FALSE

signal_destroy

Destroys the source component through a signal. mind_restored controls whether or not the mind will be grabbed upon deletion.

\ No newline at end of file diff --git a/datum/component/pricetag.html b/datum/component/pricetag.html new file mode 100644 index 0000000000000..8756061b22a44 --- /dev/null +++ b/datum/component/pricetag.html @@ -0,0 +1 @@ +/datum/component/pricetag - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pricetag

Vars

delete_on_unwrapWhether we qdel ourself when our parent is unwrapped or not.
payeesList of bank accounts this pricetag pays out to. Format is payees[bank_account] = profit_ratio.

Var Details

delete_on_unwrap

Whether we qdel ourself when our parent is unwrapped or not.

payees

List of bank accounts this pricetag pays out to. Format is payees[bank_account] = profit_ratio.

\ No newline at end of file diff --git a/datum/component/profound_fisher.html b/datum/component/profound_fisher.html new file mode 100644 index 0000000000000..318b5fe0ad90c --- /dev/null +++ b/datum/component/profound_fisher.html @@ -0,0 +1 @@ +/datum/component/profound_fisher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

profound_fisher

component that allows player mobs to play the fishing minigame without a rod equipped, non-player mobs will "pretend" fish

Vars

our_rodthe fishing rod this mob will use

Var Details

our_rod

the fishing rod this mob will use

\ No newline at end of file diff --git a/datum/component/puzzgrid.html b/datum/component/puzzgrid.html new file mode 100644 index 0000000000000..05a4161983e01 --- /dev/null +++ b/datum/component/puzzgrid.html @@ -0,0 +1,4 @@ +/datum/component/puzzgrid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

puzzgrid

Attaches a puzzgrid to the atom. +You are expected to pass in the puzzgrid, likely from create_random_puzzgrid(). +This is so you can handle when a puzzgrid can't be generated, either because the +config does not exist, or because the config is not set up properly.

Vars

all_answersEvery answer, in text, including already solved ones
livesThe number of lives left
on_fail_callbackCallback that will be called when you lose, either through running out of time or running out of lives
on_victory_callbackCallback that will be called when you win
selected_answersThe answers, in text, that are currently selected
solved_groupsThe puzzgrid groups that have already been solved
time_to_finishThe world timestamp for when the puzzgrid will fail, if timer was set in Initialize

Var Details

all_answers

Every answer, in text, including already solved ones

lives

The number of lives left

on_fail_callback

Callback that will be called when you lose, either through running out of time or running out of lives

on_victory_callback

Callback that will be called when you win

selected_answers

The answers, in text, that are currently selected

solved_groups

The puzzgrid groups that have already been solved

time_to_finish

The world timestamp for when the puzzgrid will fail, if timer was set in Initialize

\ No newline at end of file diff --git a/datum/component/radiation_countdown.html b/datum/component/radiation_countdown.html new file mode 100644 index 0000000000000..01cde98e00108 --- /dev/null +++ b/datum/component/radiation_countdown.html @@ -0,0 +1,5 @@ +/datum/component/radiation_countdown - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

radiation_countdown

Begins the countdown before a target can be irradiated. +Added by the radiation subsystem when a pulse information has a minimum exposure time. +Will clear itself out after a while.

Vars

minimum_exposure_timeThe shortest minimum time before being irradiated. +If the source has an attempted irradiation again outside this timeframe, it will go through.
time_addedThe time this component was added

Var Details

minimum_exposure_time

The shortest minimum time before being irradiated. +If the source has an attempted irradiation again outside this timeframe, it will go through.

time_added

The time this component was added

\ No newline at end of file diff --git a/datum/component/radioactive_emitter.html b/datum/component/radioactive_emitter.html new file mode 100644 index 0000000000000..ecd31a8468715 --- /dev/null +++ b/datum/component/radioactive_emitter.html @@ -0,0 +1 @@ +/datum/component/radioactive_emitter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Radioactive Emitter

Simple component that you can attach to something to make it emit radiation pulses over time.

Vars

cooldown_timeThe length of the cooldown between radiation pulses
examine_textOptional - What is shown on examine of the parent?
rad_pulse_cooldownThe actual cooldown between rad pulses
rangeHow far the radiation pulses aggregate with other radiation pulses (see: [proc/radiation_pulse])
thresholdHow much radiation protection threshold is passed to the radiation pulse (see: [proc/radiation_pulse])

Var Details

cooldown_time

The length of the cooldown between radiation pulses

examine_text

Optional - What is shown on examine of the parent?

rad_pulse_cooldown

The actual cooldown between rad pulses

range

How far the radiation pulses aggregate with other radiation pulses (see: [proc/radiation_pulse])

threshold

How much radiation protection threshold is passed to the radiation pulse (see: [proc/radiation_pulse])

\ No newline at end of file diff --git a/datum/component/radioactive_exposure.html b/datum/component/radioactive_exposure.html new file mode 100644 index 0000000000000..a1a30434edd52 --- /dev/null +++ b/datum/component/radioactive_exposure.html @@ -0,0 +1 @@ +/datum/component/radioactive_exposure - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

radioactive_exposure

For directly applying to carbons to irradiate them, without pulses

Vars

irradiation_chanceChance we have of applying irradiation
irradiation_chance_baseBase irradiation chance
irradiation_chance_incrementThe amount the base chance is increased after every failed irradiation check
irradiation_intervalTime till we attempt the next irradiation check
radioactive_areasArea's where the component isnt removed if we cross to them
sourceThe source of irradiation, for logging

Procs

attempt_irradiateTry and irradiate them. If we chance fail, we come back harder

Var Details

irradiation_chance

Chance we have of applying irradiation

irradiation_chance_base

Base irradiation chance

irradiation_chance_increment

The amount the base chance is increased after every failed irradiation check

irradiation_interval

Time till we attempt the next irradiation check

radioactive_areas

Area's where the component isnt removed if we cross to them

source

The source of irradiation, for logging

Proc Details

attempt_irradiate

Try and irradiate them. If we chance fail, we come back harder

\ No newline at end of file diff --git a/datum/component/ranged_attacks.html b/datum/component/ranged_attacks.html new file mode 100644 index 0000000000000..0ef7e97430b61 --- /dev/null +++ b/datum/component/ranged_attacks.html @@ -0,0 +1 @@ +/datum/component/ranged_attacks - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ranged_attacks

Configurable ranged attack for basic mobs.

Vars

burst_intervalsintervals between shots
burst_shotshow many shots we will fire
casing_typeWhat kind of casing do we use to fire?
cooldown_timeTime to wait between shots
fire_cooldownTracks time between shots
projectile_soundSound to play when we fire our projectile
projectile_typeWhat kind of projectile to we fire? Use only one of this or casing_type

Procs

async_fire_ranged_attackActually fire the damn thing

Var Details

burst_intervals

intervals between shots

burst_shots

how many shots we will fire

casing_type

What kind of casing do we use to fire?

cooldown_time

Time to wait between shots

fire_cooldown

Tracks time between shots

projectile_sound

Sound to play when we fire our projectile

projectile_type

What kind of projectile to we fire? Use only one of this or casing_type

Proc Details

async_fire_ranged_attack

Actually fire the damn thing

\ No newline at end of file diff --git a/datum/component/ranged_mob_full_auto.html b/datum/component/ranged_mob_full_auto.html new file mode 100644 index 0000000000000..354da2f7c3340 --- /dev/null +++ b/datum/component/ranged_mob_full_auto.html @@ -0,0 +1 @@ +/datum/component/ranged_mob_full_auto - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ranged_mob_full_auto

Allows a mob to autofire by holding down the cursor

Vars

autofire_shot_delayDelay before attempting to fire again, note that this is just when we make attempts and is separate from mob's actual firing cooldown
awaiting_statusThis seems hacky but there can be two MouseDown() without a MouseUp() in between if the user holds click and uses alt+tab, printscreen or similar.
clickerOur client for click tracking
is_firingAre we currently firing?
next_shot_cooldownWhen will we next try to shoot?
targetWhat are we currently shooting at?
target_locWhere are we currently shooting at?

Procs

on_gained_clientWhen we gain a client, start tracking clicks
on_lost_clientWhen we lose our client, stop functioning
on_mouse_downOn mouse down start shooting!
on_mouse_dragWhen the mouse moved let's try and shift our aim
on_mouse_upWhen the mouse is released we should stop
on_target_deletedDon't hang references
set_targetSetter for reference handling
start_firingStart tracking mouse movement and processing our shots
stop_firingStop watching our mouse and processing shots
try_shootingTry and take a shot, returns false if we are unable to do so and should stop trying

Var Details

autofire_shot_delay

Delay before attempting to fire again, note that this is just when we make attempts and is separate from mob's actual firing cooldown

awaiting_status

This seems hacky but there can be two MouseDown() without a MouseUp() in between if the user holds click and uses alt+tab, printscreen or similar.

clicker

Our client for click tracking

is_firing

Are we currently firing?

next_shot_cooldown

When will we next try to shoot?

target

What are we currently shooting at?

target_loc

Where are we currently shooting at?

Proc Details

on_gained_client

When we gain a client, start tracking clicks

on_lost_client

When we lose our client, stop functioning

on_mouse_down

On mouse down start shooting!

on_mouse_drag

When the mouse moved let's try and shift our aim

on_mouse_up

When the mouse is released we should stop

on_target_deleted

Don't hang references

set_target

Setter for reference handling

start_firing

Start tracking mouse movement and processing our shots

stop_firing

Stop watching our mouse and processing shots

try_shooting

Try and take a shot, returns false if we are unable to do so and should stop trying

\ No newline at end of file diff --git a/datum/component/reagent_clothing.html b/datum/component/reagent_clothing.html new file mode 100644 index 0000000000000..6c7c62b9a1bcd --- /dev/null +++ b/datum/component/reagent_clothing.html @@ -0,0 +1 @@ +/datum/component/reagent_clothing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

reagent_clothing

Vars

applying_containerthe container that will apply the chemicals
checking_slotthe slot that the item will check
cloth_wearerthe human that is wearing the parent_clothing
imbued_reagentthe list of imbued reagents that will given to the human owner
parent_clothingthe item that the component is attached to

Var Details

applying_container

the container that will apply the chemicals

checking_slot

the slot that the item will check

cloth_wearer

the human that is wearing the parent_clothing

imbued_reagent

the list of imbued reagents that will given to the human owner

parent_clothing

the item that the component is attached to

\ No newline at end of file diff --git a/datum/component/reagent_refiller.html b/datum/component/reagent_refiller.html new file mode 100644 index 0000000000000..f67cf4962b5c8 --- /dev/null +++ b/datum/component/reagent_refiller.html @@ -0,0 +1,2 @@ +/datum/component/reagent_refiller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

reagent_refiller

Reagent refiller

+

Refills any drinks poured out of the reagent container (and is allowed within the whitelisted reagents).

Vars

power_draw_callbackCallback to consume power
power_to_drawAmount of power to use from the cell
time_to_refillTime to refill
whitelisted_reagentsWhitelist of reagents allowed to be synthesized

Procs

add_reagentsRefills the reagent container, and uses cell power if applicable
refillPreps the reagent container for being refilled

Var Details

power_draw_callback

Callback to consume power

power_to_draw

Amount of power to use from the cell

time_to_refill

Time to refill

whitelisted_reagents

Whitelist of reagents allowed to be synthesized

Proc Details

add_reagents

Refills the reagent container, and uses cell power if applicable

refill

Preps the reagent container for being refilled

\ No newline at end of file diff --git a/datum/component/reagent_weapon.html b/datum/component/reagent_weapon.html new file mode 100644 index 0000000000000..7aabd37b2ec96 --- /dev/null +++ b/datum/component/reagent_weapon.html @@ -0,0 +1 @@ +/datum/component/reagent_weapon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

reagent_weapon

Vars

imbued_reagentthe list of imbued reagents that will given to the human owner
parent_weaponthe item that the component is attached to

Var Details

imbued_reagent

the list of imbued reagents that will given to the human owner

parent_weapon

the item that the component is attached to

\ No newline at end of file diff --git a/datum/component/recharging_attacks.html b/datum/component/recharging_attacks.html new file mode 100644 index 0000000000000..89eb3d40916f3 --- /dev/null +++ b/datum/component/recharging_attacks.html @@ -0,0 +1 @@ +/datum/component/recharging_attacks - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

recharging_attacks

Reduces the cooldown of a given action upon landing attacks, critting, or killing mobs.

Vars

attack_refundThe amount of cooldown to refund on a successful attack
crit_refundThe amount of cooldown to refund when putting a target into critical
last_statThe stat of the most recently attacked mob
last_targetThe target of the most recent attack
recharged_actionThe action to recharge when attacking

Var Details

attack_refund

The amount of cooldown to refund on a successful attack

crit_refund

The amount of cooldown to refund when putting a target into critical

last_stat

The stat of the most recently attacked mob

last_target

The target of the most recent attack

recharged_action

The action to recharge when attacking

\ No newline at end of file diff --git a/datum/component/redirect_attack_hand_from_turf.html b/datum/component/redirect_attack_hand_from_turf.html new file mode 100644 index 0000000000000..70368ac50c72a --- /dev/null +++ b/datum/component/redirect_attack_hand_from_turf.html @@ -0,0 +1,3 @@ +/datum/component/redirect_attack_hand_from_turf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

redirect_attack_hand_from_turf

Will redirect touching the turf it is on with your hand to the attack_hand of the parent object.

Vars

adjust_for_pixel_shiftIf TRUE, will connect to the turf it appears to be on.
interact_checkA custom callback to determine whether a user's clicks will be redirected or not (mob/user)
screentip_textsIf set, hovering over the turf you're on will show these screentips with an empty hand. +Takes lmb_text and rmb_text.

Var Details

adjust_for_pixel_shift

If TRUE, will connect to the turf it appears to be on.

interact_check

A custom callback to determine whether a user's clicks will be redirected or not (mob/user)

screentip_texts

If set, hovering over the turf you're on will show these screentips with an empty hand. +Takes lmb_text and rmb_text.

\ No newline at end of file diff --git a/datum/component/reflection.html b/datum/component/reflection.html new file mode 100644 index 0000000000000..497cdec0ecac0 --- /dev/null +++ b/datum/component/reflection.html @@ -0,0 +1,6 @@ +/datum/component/reflection - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

reflection

A simple-ish component that reflects the icons of movables on the parent like a mirror. +Sadly, there's no easy way to make the SOUTH dir reflection flip the visual so that you can see +the back NORTH dir of a target while it's facing SOUTH beside adding the VIS_INHERIT_DIR flag +to the target movable, which I'm not doing to spare eventual issues with other vis overlays in the future.

Vars

alphathe transparency channel value of the reflection holder.
can_reflectA callback used check to know which movables should be reflected and which not.
reflected_dirThe direction from which the component gets its visual overlays. +The visuals are also flipped horizontally or vertically based on it.
reflected_movablesA lazy assoc list that keeps track of which movables are being reflected and the associated reflections.
reflection_filterthe filter data added to reflection holder.
reflection_holderthe movable which the reflected movables are attached to, in turn added to the vis contents of the parent.
reflection_matrixthe base matrix used by reflections
update_signalsA list of signals that when sent to the parent, will force the comp to recalculate the reflected movables.

Procs

check_can_reflectChecks if the target movable can be reflected or not.
get_reflection_targetsUnsets the old reflected movables and sets it with new ones.
on_dir_changeCalled when the parent changes its direction.
on_movable_entered_or_initializedCalled when a movable enters a turf within the connected range
on_movable_exitedCalled when a movable exits a turf within the connected range
set_reflectedSets up a visual overlay of the target movables, which is added to the parent's vis contents.
set_reflectionTurns the allowed reflected direction alongside the parent's dir. then calls get_reflection_targets.

Var Details

alpha

the transparency channel value of the reflection holder.

can_reflect

A callback used check to know which movables should be reflected and which not.

reflected_dir

The direction from which the component gets its visual overlays. +The visuals are also flipped horizontally or vertically based on it.

reflected_movables

A lazy assoc list that keeps track of which movables are being reflected and the associated reflections.

reflection_filter

the filter data added to reflection holder.

reflection_holder

the movable which the reflected movables are attached to, in turn added to the vis contents of the parent.

reflection_matrix

the base matrix used by reflections

update_signals

A list of signals that when sent to the parent, will force the comp to recalculate the reflected movables.

Proc Details

check_can_reflect

Checks if the target movable can be reflected or not.

get_reflection_targets

Unsets the old reflected movables and sets it with new ones.

on_dir_change

Called when the parent changes its direction.

on_movable_entered_or_initialized

Called when a movable enters a turf within the connected range

on_movable_exited

Called when a movable exits a turf within the connected range

set_reflected

Sets up a visual overlay of the target movables, which is added to the parent's vis contents.

set_reflection

Turns the allowed reflected direction alongside the parent's dir. then calls get_reflection_targets.

\ No newline at end of file diff --git a/datum/component/regenerative_shield.html b/datum/component/regenerative_shield.html new file mode 100644 index 0000000000000..eff2305905a1f --- /dev/null +++ b/datum/component/regenerative_shield.html @@ -0,0 +1 @@ +/datum/component/regenerative_shield - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

regenerative_shield

gives the mobs a regenerative shield, it will tank hits for them and then need to recharge for a bit

Vars

damage_thresholdthe limit of the damage we can tank
number_of_hitsnumber of hits we can tank
regeneration_timehow long before the shield can regenerate
shield_overlaysthe overlay of the shield

Var Details

damage_threshold

the limit of the damage we can tank

number_of_hits

number of hits we can tank

regeneration_time

how long before the shield can regenerate

shield_overlays

the overlay of the shield

\ No newline at end of file diff --git a/datum/component/regenerator.html b/datum/component/regenerator.html new file mode 100644 index 0000000000000..958cfa050fcd5 --- /dev/null +++ b/datum/component/regenerator.html @@ -0,0 +1,2 @@ +/datum/component/regenerator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Regenerator component

A mob with this component will regenerate its health over time, as long as it has not received damage +in the last X seconds. Taking any damage will reset this cooldown.

Vars

brute_per_secondBrute reagined every second
burn_per_secondBurn reagined every second
heals_woundsIf TRUE, we'll try to heal wounds as well. Useless for non-humans.
ignore_damage_typesList of damage types we don't care about, in case you want to only remove this with fire damage or something
outline_colourColour of regeneration animation, or none if you don't want one
oxy_per_secondOxygen reagined every second
regeneration_delayYou will only regain health if you haven't been hurt for this many seconds
regeneration_start_timerWhen this timer completes we start restoring health, it is a timer rather than a cooldown so we can do something on its completion
tox_per_secondToxin reagined every second

Procs

on_take_damageWhen you take damage, reset the cooldown and start processing
should_be_regenningChecks if the passed mob is in a valid state to be regenerating
start_regeneratingStart processing health regeneration, and show animation if provided

Var Details

brute_per_second

Brute reagined every second

burn_per_second

Burn reagined every second

heals_wounds

If TRUE, we'll try to heal wounds as well. Useless for non-humans.

ignore_damage_types

List of damage types we don't care about, in case you want to only remove this with fire damage or something

outline_colour

Colour of regeneration animation, or none if you don't want one

oxy_per_second

Oxygen reagined every second

regeneration_delay

You will only regain health if you haven't been hurt for this many seconds

regeneration_start_timer

When this timer completes we start restoring health, it is a timer rather than a cooldown so we can do something on its completion

tox_per_second

Toxin reagined every second

Proc Details

on_take_damage

When you take damage, reset the cooldown and start processing

should_be_regenning

Checks if the passed mob is in a valid state to be regenerating

start_regenerating

Start processing health regeneration, and show animation if provided

\ No newline at end of file diff --git a/datum/component/religious_tool.html b/datum/component/religious_tool.html new file mode 100644 index 0000000000000..4ef7b73e4c024 --- /dev/null +++ b/datum/component/religious_tool.html @@ -0,0 +1 @@ +/datum/component/religious_tool - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

religious_tool

Allows the parent to act similarly to the Altar of Gods with modularity. Invoke and Sect Selection is done via attacking with a bible. This means you cannot sacrifice Bibles (you shouldn't want to do this anyways although now that I mentioned it you probably will want to).

Vars

after_sect_select_cbCallback provided to the tool for after a sect is chosen
catalyst_typeSets the type for catalyst
chargesOptional argument. If a positive value, each invocation will lower charges, and the component will delete without any more charges
easy_access_sectEnables access to the global sect directly
force_catalyst_afterattackEnables overide of COMPONENT_NO_AFTERATTACK, not recommended as it means you can potentially cause damage to the item using the catalyst.
operation_flagsWhat extent do we want this religious tool to act? In case you don't want full access to the list. Generated on New
performing_riteThe rite currently being invoked
rite_types_allowlistIf a typecache is provided, only types of rites in the cache can be invoked.
selecting_sectPrevents double selecting sects

Procs

AttemptActionsSince all of these involve attackby, we require mega proc. Handles Invocation, Sacrificing, And Selection of Sects.
SetGlobalToLocalSets the easy access variable to the global if it exists.
generate_available_ritesGenerates available rites to pick from. It expects the sect to be picked by the time it was called (by tgui data)
generate_available_sectsGenerates a list of available sects to the user. Intended to support custom-availability sects.
generate_sacrifice_listGenerates an english list (so string) of wanted sac items. Returns null if no targets!
on_examineAppends to examine so the user knows it can be used for religious purposes.
on_sect_resetSets the easy access variable to null in case an admin needed to change it
perform_ritePerform the rite, called from /datum/component/religious_tool/proc/AttemptActions
select_sectSelect the sect, called from /datum/component/religious_tool/proc/AttemptActions

Var Details

after_sect_select_cb

Callback provided to the tool for after a sect is chosen

catalyst_type

Sets the type for catalyst

charges

Optional argument. If a positive value, each invocation will lower charges, and the component will delete without any more charges

easy_access_sect

Enables access to the global sect directly

force_catalyst_afterattack

Enables overide of COMPONENT_NO_AFTERATTACK, not recommended as it means you can potentially cause damage to the item using the catalyst.

operation_flags

What extent do we want this religious tool to act? In case you don't want full access to the list. Generated on New

performing_rite

The rite currently being invoked

rite_types_allowlist

If a typecache is provided, only types of rites in the cache can be invoked.

selecting_sect

Prevents double selecting sects

Proc Details

AttemptActions

Since all of these involve attackby, we require mega proc. Handles Invocation, Sacrificing, And Selection of Sects.

SetGlobalToLocal

Sets the easy access variable to the global if it exists.

generate_available_rites

Generates available rites to pick from. It expects the sect to be picked by the time it was called (by tgui data)

generate_available_sects

Generates a list of available sects to the user. Intended to support custom-availability sects.

generate_sacrifice_list

Generates an english list (so string) of wanted sac items. Returns null if no targets!

on_examine

Appends to examine so the user knows it can be used for religious purposes.

on_sect_reset

Sets the easy access variable to null in case an admin needed to change it

perform_rite

Perform the rite, called from /datum/component/religious_tool/proc/AttemptActions

select_sect

Select the sect, called from /datum/component/religious_tool/proc/AttemptActions

\ No newline at end of file diff --git a/datum/component/remote_materials.html b/datum/component/remote_materials.html new file mode 100644 index 0000000000000..e94698c750d8f --- /dev/null +++ b/datum/component/remote_materials.html @@ -0,0 +1,43 @@ +/datum/component/remote_materials - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

remote_materials

Vars

allow_standaloneShould we create a local storage if we can't connect to silo
local_sizeLocal size of container when silo = null
mat_containerMaterial container. the value is either the silo or local
mat_container_flagsFlags used for the local material container(exceptions for item insert & intent flags)
mat_container_signalsList of signals to hook onto the local container
siloThe silo machine this container is connected to
whitelist_typecacheTypecache for items that the silo will accept through this remote no matter what

Procs

SiloAttackByInsert mats into silo
_PrepareStorageInternal proc. prepares local storage if onnect_to_silo = FALSE
can_use_resourceCheck if this connection can use any materials from the silo +Returns true only if
check_z_levelChecks if the param silo is in the same level as this components parent i.e. connected machine, rcd, etc
disconnect_fromDisconnect this component from the remote silo
eject_sheetsEjects the given material ref and logs it
insert_itemInsert an item into the mat container, helper proc to insert items with the correct context
on_holdreturns TRUE if this connection put on hold by the silo
set_local_sizeSets the storage size for local materials when not linked with silo +Arguments
use_materialsUse materials from either the silo(if connected) or from the local storage. If silo then this action +is logged else not e.g. action="build" & name="matter bin" means you are trying to build an matter bin

Var Details

allow_standalone

Should we create a local storage if we can't connect to silo

local_size

Local size of container when silo = null

mat_container

Material container. the value is either the silo or local

mat_container_flags

Flags used for the local material container(exceptions for item insert & intent flags)

mat_container_signals

List of signals to hook onto the local container

silo

The silo machine this container is connected to

whitelist_typecache

Typecache for items that the silo will accept through this remote no matter what

Proc Details

SiloAttackBy

Insert mats into silo

_PrepareStorage

Internal proc. prepares local storage if onnect_to_silo = FALSE

+

Arguments +connect_to_silo- if true connect to global silo. If not successfull then go to local storage +only if allow_standalone = TRUE, else you a null mat_container

can_use_resource

Check if this connection can use any materials from the silo +Returns true only if

+ +

check_z_level

Checks if the param silo is in the same level as this components parent i.e. connected machine, rcd, etc

+

Arguments +silo_to_check- Is this components parent in the same Z level as this param silo. If null +then check this components connected silo

+

Returns true if both are on the station or same z level

disconnect_from

Disconnect this component from the remote silo

+

Arguments +old_silo- The silo we are trying to disconnect from

eject_sheets

Ejects the given material ref and logs it

+

Arguments +material_ref- The material type you are trying to eject +eject_amount- how many sheets to eject +drop_target- optional where to drop the sheets. null means it is dropped at this components parent location

insert_item

Insert an item into the mat container, helper proc to insert items with the correct context

+

Arguments

+

on_hold

returns TRUE if this connection put on hold by the silo

set_local_size

Sets the storage size for local materials when not linked with silo +Arguments

+

use_materials

Use materials from either the silo(if connected) or from the local storage. If silo then this action +is logged else not e.g. action="build" & name="matter bin" means you are trying to build an matter bin

+

Arguments +[mats][list]- list of materials to use +coefficient- each mat unit is scaled by this value then rounded. This value if usually your machine efficiency e.g. upgraded protolathe has reduced costs +multiplier- each mat unit is scaled by this value then rounded after it is scaled by coefficient. This value is your print quatity e.g. printing multiple items +action- For logging only. e.g. build, create, i.e. the action you are trying to perform +name- For logging only. the design you are trying to build e.g. matter bin, etc.

\ No newline at end of file diff --git a/datum/component/rename.html b/datum/component/rename.html new file mode 100644 index 0000000000000..c71b56b131fca --- /dev/null +++ b/datum/component/rename.html @@ -0,0 +1,9 @@ +/datum/component/rename - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

rename

The rename component.

+

This component is used to manage names and descriptions changed with the pen.

+

Atoms can only have one instance of this component at a time.

+

When a player renames or changes the description of an atom with a pen, this component gets applied to it. +If a player resets the name and description, they will be reverted to their state before being changed and the component will be removed.

Vars

custom_descThe desc the player is applying to the parent.
custom_nameThe name the player is applying to the parent.
original_descThe desc before the player changed it.
original_nameThe name before the player changed it.

Procs

InheritComponentThis proc will fire after the parent's name or desc is changed with a pen, which is trying to apply another rename component. +Since the parent already has a rename component, it will remove the old one and apply the new one. +The name and description changes will be merged or overwritten.
apply_renameSaves the current name and description before changing them to the player's inputs.
revert_renameReverts the name and description to the state before they were changed.

Var Details

custom_desc

The desc the player is applying to the parent.

custom_name

The name the player is applying to the parent.

original_desc

The desc before the player changed it.

original_name

The name before the player changed it.

Proc Details

InheritComponent

This proc will fire after the parent's name or desc is changed with a pen, which is trying to apply another rename component. +Since the parent already has a rename component, it will remove the old one and apply the new one. +The name and description changes will be merged or overwritten.

apply_rename

Saves the current name and description before changing them to the player's inputs.

revert_rename

Reverts the name and description to the state before they were changed.

\ No newline at end of file diff --git a/datum/component/respawner.html b/datum/component/respawner.html new file mode 100644 index 0000000000000..7fcf4adda4883 --- /dev/null +++ b/datum/component/respawner.html @@ -0,0 +1 @@ +/datum/component/respawner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

respawner

Vars

time_before_respawnHow much time has to pass before the parent mob can respawn after dying? If FALSE, then the parent mob can respawn without waiting.

Var Details

time_before_respawn

How much time has to pass before the parent mob can respawn after dying? If FALSE, then the parent mob can respawn without waiting.

\ No newline at end of file diff --git a/datum/component/revenge_ability.html b/datum/component/revenge_ability.html new file mode 100644 index 0000000000000..91e68c55e8b73 --- /dev/null +++ b/datum/component/revenge_ability.html @@ -0,0 +1,3 @@ +/datum/component/revenge_ability - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

revenge_ability

Automatically triggers a linked ability at a target who attacks us. +The ability might not necessarily be on our mob. +Make sure that /datum/element/relay_attackers is also present or you'll never receive the triggering signal.

Vars

abilityThe ability to use when we are attacked
max_rangeTrigger only if target is at least this close
min_rangeTrigger only if target is at least this far away
target_selfTarget the ability at ourself instead of at the offender
targetingOptional datum for validating targets

Procs

ability_destroyedFor whatever reason we lost our linked ability so we can drop this behaviour
on_attackedIf we were attacked, get revenge

Var Details

ability

The ability to use when we are attacked

max_range

Trigger only if target is at least this close

min_range

Trigger only if target is at least this far away

target_self

Target the ability at ourself instead of at the offender

targeting

Optional datum for validating targets

Proc Details

ability_destroyed

For whatever reason we lost our linked ability so we can drop this behaviour

on_attacked

If we were attacked, get revenge

\ No newline at end of file diff --git a/datum/component/riding.html b/datum/component/riding.html new file mode 100644 index 0000000000000..e2e49d231ea09 --- /dev/null +++ b/datum/component/riding.html @@ -0,0 +1,15 @@ +/datum/component/riding - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

riding

This is the riding component, which is applied to a movable atom by the ridable element when a mob is successfully buckled to said movable.

+

This component lives for as long as at least one mob is buckled to the parent. Once all mobs are unbuckled, the component is deleted, until another mob is buckled in +and we make a new riding component, so on and so forth until the sun explodes.

Vars

allowed_turf_typecacheallow typecache for only certain turfs, forbid to allow all but those. allow only certain turfs will take precedence.
can_force_unbucklecan anyone other than the rider unbuckle the rider?
directional_vehicle_layers["[DIRECTION]"] = layer. Don't set it for a direction for default, set a direction to null for no change.
directional_vehicle_offsetssame as above but instead of layer you have a list(px, py)
forbid_turf_typecacheallow typecache for only certain turfs, forbid to allow all but those. allow only certain turfs will take precedence.
keytypeIf the driver needs a certain item in hand (or inserted, for vehicles) to drive this. For vehicles, this must be duplicated on the actual vehicle object in their +/obj/vehicle/var/key_type variable because the vehicle objects still have a few special checks/functions of their own I'm not porting over to the riding component +quite yet. Make sure if you define it on the vehicle, you define it here too.
message_cooldownFor telling someone they can't drive
override_allow_spacemoveWe don't need roads where we're going if this is TRUE, allow normal movement in space tiles
ride_check_flagsRide check flags defined for the specific riding component types, so we know if we need arms, legs, or whatever. +Takes additional flags from the ridable element and the buckle proc (buckle_mob_flags) for riding cyborgs/humans in case we need to reserve arms
rider_traitsadditional traits to add to anyone riding this vehicle
riding_offsetsposition_of_user = list(dir = list(px, py)), or RIDING_OFFSET_ALL for a generic one.
vehicle_move_cooldownFor telling someone they can't drive
vehicle_move_delaytick delay between movements, lower = faster, higher = slower

Procs

driver_moveEvery time the driver tries to move, this is called to see if they can actually drive and move the vehicle (via relaymove)
handle_specialsThis proc handles all of the proc calls to things like set_vehicle_dir_layer() that a type of riding datum needs to call on creation
handle_vehicle_layerSome ridable atoms may want to only show on top of the rider in certain directions, like wheelchairs
keycheckThis proc is used to see if we have the appropriate key to drive this atom, if such a key is needed. Returns FALSE if we don't have what we need to drive.
on_entered_supermatterWhen we touch a crystal, kill everything inside us
on_movement_type_trait_gainCalled when our vehicle gains a movement trait, so we can apply it to the riders
on_movement_type_trait_lossCalled when our vehicle loses a movement trait, so we can remove it from the riders
on_rider_try_pullThis proc is called when the rider attempts to grab the thing they're riding, preventing them from doing so.
post_vehicle_mob_buckleany behavior we want to happen after buckling the mob
ride_checkCheck to see if we have all of the necessary bodyparts and not-falling-over statuses we need to stay onboard. +If not and if consequences is TRUE, well, there'll be consequences.
riding_can_z_moveExtra checks before buckled.can_z_move can be called in mob/living/can_z_move()
unequip_buckle_inhandscurrently replicated from ridable because we need this behavior here too, see if we can deal with that
vehicle_bumpSo we can check all occupants when we bump a door to see if anyone has access
vehicle_mob_buckleThis proc is called when a rider buckles, allowing for offsets to be set properly
vehicle_mob_unbuckleThis proc is called when a rider unbuckles, whether they chose to or not. If there's no more riders, this will be the riding component's death knell.
vehicle_movedThis is called after the ridden atom is successfully moved and is used to handle icon stuff
vehicle_turnedTurning is like moving

Var Details

allowed_turf_typecache

allow typecache for only certain turfs, forbid to allow all but those. allow only certain turfs will take precedence.

can_force_unbuckle

can anyone other than the rider unbuckle the rider?

directional_vehicle_layers

["[DIRECTION]"] = layer. Don't set it for a direction for default, set a direction to null for no change.

directional_vehicle_offsets

same as above but instead of layer you have a list(px, py)

forbid_turf_typecache

allow typecache for only certain turfs, forbid to allow all but those. allow only certain turfs will take precedence.

keytype

If the driver needs a certain item in hand (or inserted, for vehicles) to drive this. For vehicles, this must be duplicated on the actual vehicle object in their +/obj/vehicle/var/key_type variable because the vehicle objects still have a few special checks/functions of their own I'm not porting over to the riding component +quite yet. Make sure if you define it on the vehicle, you define it here too.

message_cooldown

For telling someone they can't drive

override_allow_spacemove

We don't need roads where we're going if this is TRUE, allow normal movement in space tiles

ride_check_flags

Ride check flags defined for the specific riding component types, so we know if we need arms, legs, or whatever. +Takes additional flags from the ridable element and the buckle proc (buckle_mob_flags) for riding cyborgs/humans in case we need to reserve arms

rider_traits

additional traits to add to anyone riding this vehicle

riding_offsets

position_of_user = list(dir = list(px, py)), or RIDING_OFFSET_ALL for a generic one.

vehicle_move_cooldown

For telling someone they can't drive

vehicle_move_delay

tick delay between movements, lower = faster, higher = slower

Proc Details

driver_move

Every time the driver tries to move, this is called to see if they can actually drive and move the vehicle (via relaymove)

handle_specials

This proc handles all of the proc calls to things like set_vehicle_dir_layer() that a type of riding datum needs to call on creation

+

The original riding component had these procs all called from the ridden object itself through the use of GetComponent() and LoadComponent() +This was obviously problematic for componentization, but while lots of the variables being set were able to be moved to component variables, +the proc calls couldn't be. Thus, anything that has to do an initial proc call should be handled here.

handle_vehicle_layer

Some ridable atoms may want to only show on top of the rider in certain directions, like wheelchairs

keycheck

This proc is used to see if we have the appropriate key to drive this atom, if such a key is needed. Returns FALSE if we don't have what we need to drive.

+

Still needs to be neatened up and spruced up with proper OOP, as a result of vehicles having their own key handling from other ridable atoms

on_entered_supermatter

When we touch a crystal, kill everything inside us

on_movement_type_trait_gain

Called when our vehicle gains a movement trait, so we can apply it to the riders

on_movement_type_trait_loss

Called when our vehicle loses a movement trait, so we can remove it from the riders

on_rider_try_pull

This proc is called when the rider attempts to grab the thing they're riding, preventing them from doing so.

post_vehicle_mob_buckle

any behavior we want to happen after buckling the mob

ride_check

Check to see if we have all of the necessary bodyparts and not-falling-over statuses we need to stay onboard. +If not and if consequences is TRUE, well, there'll be consequences.

riding_can_z_move

Extra checks before buckled.can_z_move can be called in mob/living/can_z_move()

unequip_buckle_inhands

currently replicated from ridable because we need this behavior here too, see if we can deal with that

vehicle_bump

So we can check all occupants when we bump a door to see if anyone has access

vehicle_mob_buckle

This proc is called when a rider buckles, allowing for offsets to be set properly

vehicle_mob_unbuckle

This proc is called when a rider unbuckles, whether they chose to or not. If there's no more riders, this will be the riding component's death knell.

vehicle_moved

This is called after the ridden atom is successfully moved and is used to handle icon stuff

vehicle_turned

Turning is like moving

\ No newline at end of file diff --git a/datum/component/riding/creature.html b/datum/component/riding/creature.html new file mode 100644 index 0000000000000..ebb29bb901cc4 --- /dev/null +++ b/datum/component/riding/creature.html @@ -0,0 +1 @@ +/datum/component/riding/creature - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

creature

Vars

blacklist_abilitiesabilities that are always blacklisted from sharing
can_be_drivenIf TRUE, this creature's movements can be controlled by the rider while mounted (as opposed to riding cyborgs and humans, which is passive)
can_use_abilitiesIf TRUE, this creature's abilities can be triggered by the rider while mounted
override_unsharable_abilitiesunsharable abilities that we will force to be shared anyway
require_minigameshall we require riders to go through the riding minigame if they arent in our friends list

Procs

check_emoteIf we're a cyborg or animal and we spin, we yeet whoever's on us off us
force_dismountYeets the rider off, used for animals and cyborgs, redefined for humans who shove their piggyback rider off
log_ridingCreatures need to be logged when being mounted
remove_abilitiesTakes away the riding parent's abilities from the rider
setup_abilitiesIf the ridden creature has abilities, and some var yet to be made is set to TRUE, the rider will be able to control those abilities

Var Details

blacklist_abilities

abilities that are always blacklisted from sharing

can_be_driven

If TRUE, this creature's movements can be controlled by the rider while mounted (as opposed to riding cyborgs and humans, which is passive)

can_use_abilities

If TRUE, this creature's abilities can be triggered by the rider while mounted

override_unsharable_abilities

unsharable abilities that we will force to be shared anyway

require_minigame

shall we require riders to go through the riding minigame if they arent in our friends list

Proc Details

check_emote

If we're a cyborg or animal and we spin, we yeet whoever's on us off us

force_dismount

Yeets the rider off, used for animals and cyborgs, redefined for humans who shove their piggyback rider off

log_riding

Creatures need to be logged when being mounted

remove_abilities

Takes away the riding parent's abilities from the rider

setup_abilities

If the ridden creature has abilities, and some var yet to be made is set to TRUE, the rider will be able to control those abilities

\ No newline at end of file diff --git a/datum/component/riding/creature/human.html b/datum/component/riding/creature/human.html new file mode 100644 index 0000000000000..5ad90b19d56f1 --- /dev/null +++ b/datum/component/riding/creature/human.html @@ -0,0 +1 @@ +/datum/component/riding/creature/human - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

human

Yes, I said humans. No, this won't end well...

Procs

check_carrier_fall_overIf the carrier gets knocked over, force the rider(s) off and see if someone got hurt
on_host_unarmed_meleeIf the carrier shoves the person they're carrying, force the carried mob off

Proc Details

check_carrier_fall_over

If the carrier gets knocked over, force the rider(s) off and see if someone got hurt

on_host_unarmed_melee

If the carrier shoves the person they're carrying, force the carried mob off

\ No newline at end of file diff --git a/datum/component/riding/vehicle.html b/datum/component/riding/vehicle.html new file mode 100644 index 0000000000000..f75c5e4e66a69 --- /dev/null +++ b/datum/component/riding/vehicle.html @@ -0,0 +1 @@ +/datum/component/riding/vehicle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

vehicle

Procs

handle_rideThis handles the actual movement for vehicles once /datum/component/riding/vehicle/proc/driver_move has given us the green light

Proc Details

handle_ride

This handles the actual movement for vehicles once /datum/component/riding/vehicle/proc/driver_move has given us the green light

\ No newline at end of file diff --git a/datum/component/riding/vehicle/scooter/skateboard.html b/datum/component/riding/vehicle/scooter/skateboard.html new file mode 100644 index 0000000000000..07d8ef5d4cd7c --- /dev/null +++ b/datum/component/riding/vehicle/scooter/skateboard.html @@ -0,0 +1 @@ +/datum/component/riding/vehicle/scooter/skateboard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

skateboard

Vars

can_slow_downIf TRUE, the vehicle will be slower (but safer) to ride on walk intent.

Var Details

can_slow_down

If TRUE, the vehicle will be slower (but safer) to ride on walk intent.

\ No newline at end of file diff --git a/datum/component/riding/vehicle/scooter/skateboard/hover.html b/datum/component/riding/vehicle/scooter/skateboard/hover.html new file mode 100644 index 0000000000000..a69097732a089 --- /dev/null +++ b/datum/component/riding/vehicle/scooter/skateboard/hover.html @@ -0,0 +1 @@ +/datum/component/riding/vehicle/scooter/skateboard/hover - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

hover

This one lets the rider ignore gravity, move in zero g and son on, but only on ground turfs or at most one z-level above them.

Procs

check_driftingMakes sure the vehicle isn't drifting while it can be maneuvered.
check_gravMakes sure that the vehicle is grav-less if capable of zero-g movement. Forced gravity will honestly screw this.
check_space_turfPart of the hover_check proc that returns false if it's a space turf without lattice or such.
hover_checkMakes sure that the hoverboard can move in zero-g in (open) space but only there's a ground turf on the z-level below.
on_hover_enabledCalled by hover_check() when the hoverboard is on a valid turf.
on_hover_failCalled by hover_check() when the hoverboard is on space or open space turf without a support underneath it.

Proc Details

check_drifting

Makes sure the vehicle isn't drifting while it can be maneuvered.

check_grav

Makes sure that the vehicle is grav-less if capable of zero-g movement. Forced gravity will honestly screw this.

check_space_turf

Part of the hover_check proc that returns false if it's a space turf without lattice or such.

hover_check

Makes sure that the hoverboard can move in zero-g in (open) space but only there's a ground turf on the z-level below.

on_hover_enabled

Called by hover_check() when the hoverboard is on a valid turf.

on_hover_fail

Called by hover_check() when the hoverboard is on space or open space turf without a support underneath it.

\ No newline at end of file diff --git a/datum/component/rot.html b/datum/component/rot.html new file mode 100644 index 0000000000000..846fbe0119b95 --- /dev/null +++ b/datum/component/rot.html @@ -0,0 +1 @@ +/datum/component/rot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

rot

Makes a thing rotting, carries with it a start delay and some things that can halt the rot, along with infection logic

Vars

activeIs the component active right now?
blockersBitfield of sources preventing the component from rotting
scaling_delayThe time in ticks before a rot component reaches its full effectiveness
start_delayThe delay in ticks between the start of rot and effects kicking in
start_timeThe time we were created, allows for cheese smell
strengthHow strong is the rot? used for scaling different aspects of the component. Between 0 and 1

Procs

on_enteredTriggered when something enters the component's parent.
restOne of two procs that modifies blockers, this one handles adding a blocker and potentially ending the rot
rot_reactThe main bit of logic for the rot component, does a temperature check and has a chance to infect react_to
start_upOne of two procs that modifies blockers, this one handles removing a blocker and potentially restarting the rot

Var Details

active

Is the component active right now?

blockers

Bitfield of sources preventing the component from rotting

scaling_delay

The time in ticks before a rot component reaches its full effectiveness

start_delay

The delay in ticks between the start of rot and effects kicking in

start_time

The time we were created, allows for cheese smell

strength

How strong is the rot? used for scaling different aspects of the component. Between 0 and 1

Proc Details

on_entered

Triggered when something enters the component's parent.

rest

One of two procs that modifies blockers, this one handles adding a blocker and potentially ending the rot

rot_react

The main bit of logic for the rot component, does a temperature check and has a chance to infect react_to

start_up

One of two procs that modifies blockers, this one handles removing a blocker and potentially restarting the rot

\ No newline at end of file diff --git a/datum/component/scope.html b/datum/component/scope.html new file mode 100644 index 0000000000000..941847336d0c3 --- /dev/null +++ b/datum/component/scope.html @@ -0,0 +1,13 @@ +/datum/component/scope - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

scope

A component that allows players to use the item to zoom out. Mainly intended for firearms, but now works with other items too.

Vars

item_action_typeif not null, an item action will be added. Redundant if the mode is ZOOM_METHOD_RIGHT_CLICK or ZOOM_METHOD_WIELD.
range_modifierHow far we can extend, with modifier of 1, up to our vision edge, higher numbers multiply.
trackerFullscreen object we use for tracking.
tracker_owner_ckeyThe owner of the tracker's ckey. For comparing with the current owner mob, in case the client has left it (e.g. ghosted).
zoom_methodThe method which we zoom in and out

Procs

get_targetWe find and return the best target to hit on a given turf.
stop_zoomingWe stop zooming, canceling processing, resetting stuff back to normal and deleting our tracker.
zoomWe start zooming by adding our tracker overlay and starting our processing.

Var Details

item_action_type

if not null, an item action will be added. Redundant if the mode is ZOOM_METHOD_RIGHT_CLICK or ZOOM_METHOD_WIELD.

range_modifier

How far we can extend, with modifier of 1, up to our vision edge, higher numbers multiply.

tracker

Fullscreen object we use for tracking.

tracker_owner_ckey

The owner of the tracker's ckey. For comparing with the current owner mob, in case the client has left it (e.g. ghosted).

zoom_method

The method which we zoom in and out

Proc Details

get_target

We find and return the best target to hit on a given turf.

+

Arguments:

+

stop_zooming

We stop zooming, canceling processing, resetting stuff back to normal and deleting our tracker.

+

Arguments:

+

zoom

We start zooming by adding our tracker overlay and starting our processing.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/component/seclite_attachable.html b/datum/component/seclite_attachable.html new file mode 100644 index 0000000000000..debefbc9d8f35 --- /dev/null +++ b/datum/component/seclite_attachable.html @@ -0,0 +1,10 @@ +/datum/component/seclite_attachable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

seclite_attachable

Component which allows you to attach a seclight to an item, +be it a piece of clothing or a tool.

Vars

is_light_removableWhether we can remove the light with a screwdriver or not.
lightA reference to the actual light that's attached.
light_icon_stateIf passed, we wil simply update our item's icon_state when a light is attached. +Formatted as parent_base_state-[light_icon-state]-"on"
light_overlayThe state to take from the light overlay icon if supplied.
light_overlay_iconIf passed, we will add overlays to the item when a light is attached. +This is the icon file it grabs the overlay from.
overlay_xThe X offset of our overlay if supplied.
overlay_yThe Y offset of our overlay if supplied.
toggle_action_refA weakref to the item action we add with the light.
valid_lightsStatic typecache of all lights we consider seclites (all lights we can attach).

Procs

add_lightSets a new light as our current light for our parent.
on_action_clickSignal proc for COMSIG_ITEM_UI_ACTION_CLICK that toggles our light on and off if our action button is clicked.
on_attackbySignal proc for COMSIG_ATOM_ATTACKBY that allows a user to attach a seclite by hitting our parent with it.
on_examineSignal proc for COMSIG_ATOM_EXAMINE that shows our item can have / does have a seclite attached.
on_light_exitSignal proc for COMSIG_ATOM_EXITED that handles our light being removed or deleted from our parent.
on_parent_deconstructedSignal proc for COMSIG_OBJ_DECONSTRUCT that drops our light to the ground if our parent is deconstructed.
on_parent_deletedSignal proc for COMSIG_QDELETING that deletes our light if our parent is deleted.
on_screwdriverSignal proc for COMSIG_ATOM_TOOL_ACT via [TOOL_SCREWDRIVER] that removes any attached seclite.
on_update_icon_stateSignal proc for COMSIG_ATOM_UPDATE_ICON_STATE that updates our parent's icon state, if we have one.
on_update_overlaysSignal proc for COMSIG_ATOM_UPDATE_OVERLAYS that updates our parent with our seclite overlays, if we have some.
remove_lightRemoves the current light from our parent.
toggle_lightToggles the light within on or off. +Returns TRUE if there is a light inside, FALSE otherwise.
unscrew_lightInvoked asyncronously from [proc/on_screwdriver]. Handles removing the light from our parent.
update_lightCalled after the a light is added, removed, or toggles. +Ensures all of our appearances look correct for the new light state.

Var Details

is_light_removable

Whether we can remove the light with a screwdriver or not.

light

A reference to the actual light that's attached.

light_icon_state

If passed, we wil simply update our item's icon_state when a light is attached. +Formatted as parent_base_state-[light_icon-state]-"on"

light_overlay

The state to take from the light overlay icon if supplied.

light_overlay_icon

If passed, we will add overlays to the item when a light is attached. +This is the icon file it grabs the overlay from.

overlay_x

The X offset of our overlay if supplied.

overlay_y

The Y offset of our overlay if supplied.

toggle_action_ref

A weakref to the item action we add with the light.

valid_lights

Static typecache of all lights we consider seclites (all lights we can attach).

Proc Details

add_light

Sets a new light as our current light for our parent.

on_action_click

Signal proc for COMSIG_ITEM_UI_ACTION_CLICK that toggles our light on and off if our action button is clicked.

on_attackby

Signal proc for COMSIG_ATOM_ATTACKBY that allows a user to attach a seclite by hitting our parent with it.

on_examine

Signal proc for COMSIG_ATOM_EXAMINE that shows our item can have / does have a seclite attached.

on_light_exit

Signal proc for COMSIG_ATOM_EXITED that handles our light being removed or deleted from our parent.

on_parent_deconstructed

Signal proc for COMSIG_OBJ_DECONSTRUCT that drops our light to the ground if our parent is deconstructed.

on_parent_deleted

Signal proc for COMSIG_QDELETING that deletes our light if our parent is deleted.

on_screwdriver

Signal proc for COMSIG_ATOM_TOOL_ACT via [TOOL_SCREWDRIVER] that removes any attached seclite.

on_update_icon_state

Signal proc for COMSIG_ATOM_UPDATE_ICON_STATE that updates our parent's icon state, if we have one.

on_update_overlays

Signal proc for COMSIG_ATOM_UPDATE_OVERLAYS that updates our parent with our seclite overlays, if we have some.

remove_light

Removes the current light from our parent.

toggle_light

Toggles the light within on or off. +Returns TRUE if there is a light inside, FALSE otherwise.

unscrew_light

Invoked asyncronously from [proc/on_screwdriver]. Handles removing the light from our parent.

update_light

Called after the a light is added, removed, or toggles. +Ensures all of our appearances look correct for the new light state.

\ No newline at end of file diff --git a/datum/component/sect_nullrod_bonus.html b/datum/component/sect_nullrod_bonus.html new file mode 100644 index 0000000000000..0d7861fd699f1 --- /dev/null +++ b/datum/component/sect_nullrod_bonus.html @@ -0,0 +1,2 @@ +/datum/component/sect_nullrod_bonus - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sect_nullrod_bonus

sect nullrod bonus component; for sekret rite combos

+

Good example is the bow and pyre sect. pick the bow, get a special rite in the pyre sect.

Vars

bonus_appliedhas this component given the bonus yet
bonus_ritesassoc list of nullrod type -> rites it unlocks

Var Details

bonus_applied

has this component given the bonus yet

bonus_rites

assoc list of nullrod type -> rites it unlocks

\ No newline at end of file diff --git a/datum/component/security_vision.html b/datum/component/security_vision.html new file mode 100644 index 0000000000000..67440634d4740 --- /dev/null +++ b/datum/component/security_vision.html @@ -0,0 +1 @@ +/datum/component/security_vision - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

security_vision

This component allows you to judge someone's level of criminal activity by examining them

Vars

judgement_criteriaBitfield containing what things we want to judge based upon
update_judgement_criteriaOptional callback which will modify the value of judgement_criteria before we make the check

Procs

on_examiningWhen we examine something, check if we have any extra data to add

Var Details

judgement_criteria

Bitfield containing what things we want to judge based upon

update_judgement_criteria

Optional callback which will modify the value of judgement_criteria before we make the check

Proc Details

on_examining

When we examine something, check if we have any extra data to add

\ No newline at end of file diff --git a/datum/component/seethrough.html b/datum/component/seethrough.html new file mode 100644 index 0000000000000..ff335db77aed3 --- /dev/null +++ b/datum/component/seethrough.html @@ -0,0 +1 @@ +/datum/component/seethrough - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

seethrough

A component that lets you turn an object invisible when you're standing on certain relative turfs to it, like behind a tree

Vars

animation_timeHow long our fase in/out takes
clickthroughDoes this object let clicks from players its transparent to pass through it
perimeter_reset_timerAfter we somehow moved (because ss13 is godless and does not respect anything), how long do we need to stand still to feel safe to setup our "behind" area again
relative_turf_coordsList of lists that represent relative coordinates to the source atom
target_alphaWhich alpha do we animate towards?
tricked_mobsAssociate list, with client = trickery_image. Track which client is being tricked with which image
watched_turfsA list of turfs on which we make ourself transparent

Procs

Initializesee_through_map is a define pointing to a specific map. It's basically defining the area which is considered behind. See see_through_maps.dm for a list of maps
clear_imageRemove a screen image from a client
dismantle_perimeterUnrout ourselves after we somehow moved, and start a timer so we can re-restablish our behind area after standing still for a bit
on_client_disconnectImage is removed when they log out because client gets deleted, so drop the mob reference
on_enteredSomeone entered one of our tiles, so sent an override overlay and a cute animation to make us fade out a bit
on_exitedRemove the screen object and make us appear solid to the client again
setup_perimeterLoop through a list with relative coordinate lists to mark those tiles and hide our parent when someone enters those tiles
trick_mobApply the trickery image and animation

Var Details

animation_time

How long our fase in/out takes

clickthrough

Does this object let clicks from players its transparent to pass through it

perimeter_reset_timer

After we somehow moved (because ss13 is godless and does not respect anything), how long do we need to stand still to feel safe to setup our "behind" area again

relative_turf_coords

List of lists that represent relative coordinates to the source atom

target_alpha

Which alpha do we animate towards?

tricked_mobs

Associate list, with client = trickery_image. Track which client is being tricked with which image

watched_turfs

A list of turfs on which we make ourself transparent

Proc Details

Initialize

see_through_map is a define pointing to a specific map. It's basically defining the area which is considered behind. See see_through_maps.dm for a list of maps

clear_image

Remove a screen image from a client

dismantle_perimeter

Unrout ourselves after we somehow moved, and start a timer so we can re-restablish our behind area after standing still for a bit

on_client_disconnect

Image is removed when they log out because client gets deleted, so drop the mob reference

on_entered

Someone entered one of our tiles, so sent an override overlay and a cute animation to make us fade out a bit

on_exited

Remove the screen object and make us appear solid to the client again

setup_perimeter

Loop through a list with relative coordinate lists to mark those tiles and hide our parent when someone enters those tiles

trick_mob

Apply the trickery image and animation

\ No newline at end of file diff --git a/datum/component/seethrough_mob.html b/datum/component/seethrough_mob.html new file mode 100644 index 0000000000000..b257969c767c4 --- /dev/null +++ b/datum/component/seethrough_mob.html @@ -0,0 +1 @@ +/datum/component/seethrough_mob - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

seethrough_mob

A component that lets you turn your character transparent in order to see and click through yourself.

Vars

animation_timeHow long our faze in/out takes
clickthroughDoes this object let clicks from players its transparent to pass through it
initial_render_target_valueThe mob's original render_target value
is_activeIs the seethrough effect currently active
personal_uidThis component's personal uid
render_source_atomThe atom that enables our dark magic
target_alphaWhich alpha do we animate towards?
trickery_imageThe fake version of ourselves

Procs

clear_imageRemove the image and the trick atom
on_client_disconnectEffect is disabled when they log out because client gets deleted
trick_mobSet up everything we need to trick the client and keep it looking normal for everyone else
untrick_mobRemove the screen object and make us appear solid to ourselves again

Var Details

animation_time

How long our faze in/out takes

clickthrough

Does this object let clicks from players its transparent to pass through it

initial_render_target_value

The mob's original render_target value

is_active

Is the seethrough effect currently active

personal_uid

This component's personal uid

render_source_atom

The atom that enables our dark magic

target_alpha

Which alpha do we animate towards?

trickery_image

The fake version of ourselves

Proc Details

clear_image

Remove the image and the trick atom

on_client_disconnect

Effect is disabled when they log out because client gets deleted

trick_mob

Set up everything we need to trick the client and keep it looking normal for everyone else

untrick_mob

Remove the screen object and make us appear solid to ourselves again

\ No newline at end of file diff --git a/datum/component/shell.html b/datum/component/shell.html new file mode 100644 index 0000000000000..3be5ffb18c06e --- /dev/null +++ b/datum/component/shell.html @@ -0,0 +1,7 @@ +/datum/component/shell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shell

Makes an atom a shell that is able to take in an attached circuit.

Vars

attached_circuitThe circuitboard attached to this shell
capacityThe capacity of the shell.
lockedWhether the shell is locked or not
max_power_use_in_minuteThe maximum power that the shell can use in a minute before entering overheating and destroying itself.
power_used_cooldownThe cooldown time to reset the power_used_in_minute to 0
power_used_in_minuteThe amount of power used in the last minute
shell_flagsFlags containing what this shell can do
unremovable_circuit_componentsA list of components that cannot be removed

Procs

attach_circuitAttaches a circuit to the parent. Doesn't do any checks to see for any existing circuits so that should be done beforehand.
is_authorizedDetermines if a user is authorized to see the existance of this shell. Returns false if they are not
on_attack_byCalled when an item hits the parent. This is the method to add the circuitboard to the component.
on_circuit_deleteChecks for when the circuitboard deletes so that it can be unassigned.
on_circuit_movedChecks for when the circuitboard moves. If it moves, removes it from the component.
on_screwdriver_actCalled when a screwdriver is used on the parent. Removes the circuitboard from the component.
on_set_anchoredCalled when the shell is anchored.
remove_circuitRemoves the circuit from the component. Doesn't do any checks to see for an existing circuit so that should be done beforehand.
set_lockedSets whether the shell is locked or not

Var Details

attached_circuit

The circuitboard attached to this shell

capacity

The capacity of the shell.

locked

Whether the shell is locked or not

max_power_use_in_minute

The maximum power that the shell can use in a minute before entering overheating and destroying itself.

power_used_cooldown

The cooldown time to reset the power_used_in_minute to 0

power_used_in_minute

The amount of power used in the last minute

shell_flags

Flags containing what this shell can do

unremovable_circuit_components

A list of components that cannot be removed

Proc Details

attach_circuit

Attaches a circuit to the parent. Doesn't do any checks to see for any existing circuits so that should be done beforehand.

is_authorized

Determines if a user is authorized to see the existance of this shell. Returns false if they are not

+

Arguments:

+

on_attack_by

Called when an item hits the parent. This is the method to add the circuitboard to the component.

on_circuit_delete

Checks for when the circuitboard deletes so that it can be unassigned.

on_circuit_moved

Checks for when the circuitboard moves. If it moves, removes it from the component.

on_screwdriver_act

Called when a screwdriver is used on the parent. Removes the circuitboard from the component.

on_set_anchored

Called when the shell is anchored.

+

Only applies if the shell has SHELL_FLAG_REQUIRE_ANCHOR. +Disables the integrated circuit if unanchored, otherwise enable the circuit.

remove_circuit

Removes the circuit from the component. Doesn't do any checks to see for an existing circuit so that should be done beforehand.

set_locked

Sets whether the shell is locked or not

\ No newline at end of file diff --git a/datum/component/shielded.html b/datum/component/shielded.html new file mode 100644 index 0000000000000..ad7bbe509c2d0 --- /dev/null +++ b/datum/component/shielded.html @@ -0,0 +1,3 @@ +/datum/component/shielded - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shielded

The shielded component causes the parent item to nullify a certain number of attacks against the wearer, see: shielded vests.

Vars

charge_add_cdThe cooldown tracking when we last replenished a charge
charge_increment_delayOnce we go unhit long enough to recharge, we replenish charges this often. The floor is effectively 1 second, AKA how often SSdcs processes
charge_recoveryHow many charges we recover on each charge increment
current_chargesHow many charges we currently have
lose_charge_on_damagelessWhether or not we lose a charge when hit by 0 damage items or projectiles
lose_multiple_chargesShould the shield lose charges equal to the damage dealt by a hit?
max_chargesHow many charges we can have max, and how many we start with
on_hit_effectsA callback for the sparks/message that play when a charge is used, see /datum/component/shielded/proc/default_run_hit_callback
recently_hit_cdThe cooldown tracking when we were last hit
recharge_pathThe item we use for recharging
recharge_start_delayHow long we have to avoid being hit to replenish charges. If set to 0, we never recharge lost charges
shield_iconWhat icon is used when someone has a functional shield up
shield_icon_fileWhat .dmi we're pulling the shield icon from
shield_inhandDo we still shield if we're being held in-hand? If FALSE, it needs to be equipped to a slot to work
show_charge_as_alphaShould the shield's alpha change to show its remaining charge
wearerThe person currently wearing us

Procs

actually_run_hit_callbackThe wrapper to invoke the on_hit callback, so we don't have to worry about blocking in the signal handler
default_run_hit_callbackDefault on_hit proc, since cult robes are stupid and have different descriptions/sparks
lost_wearerEither we've been dropped or our wearer has been QDEL'd. Either way, they're no longer our problem
on_equippedCheck if we've been equipped to a valid slot to shield
on_hit_reactThis proc fires when we're hit, and is responsible for checking if we're charged, then deducting one + returning that we're blocking if so. +It then runs the callback in /datum/component/shielded/var/on_hit_effects which handles the messages/sparks (so the visuals)
on_update_overlaysUsed to draw the shield overlay on the wearer

Var Details

charge_add_cd

The cooldown tracking when we last replenished a charge

charge_increment_delay

Once we go unhit long enough to recharge, we replenish charges this often. The floor is effectively 1 second, AKA how often SSdcs processes

charge_recovery

How many charges we recover on each charge increment

current_charges

How many charges we currently have

lose_charge_on_damageless

Whether or not we lose a charge when hit by 0 damage items or projectiles

lose_multiple_charges

Should the shield lose charges equal to the damage dealt by a hit?

max_charges

How many charges we can have max, and how many we start with

on_hit_effects

A callback for the sparks/message that play when a charge is used, see /datum/component/shielded/proc/default_run_hit_callback

recently_hit_cd

The cooldown tracking when we were last hit

recharge_path

The item we use for recharging

recharge_start_delay

How long we have to avoid being hit to replenish charges. If set to 0, we never recharge lost charges

shield_icon

What icon is used when someone has a functional shield up

shield_icon_file

What .dmi we're pulling the shield icon from

shield_inhand

Do we still shield if we're being held in-hand? If FALSE, it needs to be equipped to a slot to work

show_charge_as_alpha

Should the shield's alpha change to show its remaining charge

wearer

The person currently wearing us

Proc Details

actually_run_hit_callback

The wrapper to invoke the on_hit callback, so we don't have to worry about blocking in the signal handler

default_run_hit_callback

Default on_hit proc, since cult robes are stupid and have different descriptions/sparks

lost_wearer

Either we've been dropped or our wearer has been QDEL'd. Either way, they're no longer our problem

on_equipped

Check if we've been equipped to a valid slot to shield

on_hit_react

This proc fires when we're hit, and is responsible for checking if we're charged, then deducting one + returning that we're blocking if so. +It then runs the callback in /datum/component/shielded/var/on_hit_effects which handles the messages/sparks (so the visuals)

on_update_overlays

Used to draw the shield overlay on the wearer

\ No newline at end of file diff --git a/datum/component/shovel_hands.html b/datum/component/shovel_hands.html new file mode 100644 index 0000000000000..1bd5e42f63740 --- /dev/null +++ b/datum/component/shovel_hands.html @@ -0,0 +1 @@ +/datum/component/shovel_hands - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shovel_hands

This component lets mobs dig up the floor with their bare hands

Vars

internal_shovelIt's a lie, they're actually just using a shovel

Procs

digCalled when you click on literally anything with your hands
shovel_destroyedDon't know how the fuck this happened but I guess you can't dig any more

Var Details

internal_shovel

It's a lie, they're actually just using a shovel

Proc Details

dig

Called when you click on literally anything with your hands

shovel_destroyed

Don't know how the fuck this happened but I guess you can't dig any more

\ No newline at end of file diff --git a/datum/component/shrink.html b/datum/component/shrink.html new file mode 100644 index 0000000000000..0b6bde73b3eb7 --- /dev/null +++ b/datum/component/shrink.html @@ -0,0 +1 @@ +/datum/component/shrink - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shrink

Vars

newsquashTracks the squashable component we apply when we make the small mob squashable

Var Details

newsquash

Tracks the squashable component we apply when we make the small mob squashable

\ No newline at end of file diff --git a/datum/component/shuttle_cling.html b/datum/component/shuttle_cling.html new file mode 100644 index 0000000000000..be72b7f86eb40 --- /dev/null +++ b/datum/component/shuttle_cling.html @@ -0,0 +1,4 @@ +/datum/component/shuttle_cling - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shuttle_cling

Gets added to all movables that enter hyperspace and are supposed to suffer from "hyperspace drift" +This lets people fly around shuttles during transit using jetpacks, or cling to the side if they got a spacesuit +Dumping into deepspace is handled by the hyperspace turf, not the component. +Not giving something this component while on hyperspace is safe, it just means free movement like carps

Vars

clinging_move_delayIf we can "hold on", how often do we move?
directionThe direction we push stuff towards
hyperloopOur moveloop, handles the transit pull
hyperspace_typePath to the hyperspace tile, so we know if we're in hyperspace
not_clinging_move_delayIf we can't hold onto anything, how fast do we get pulled away?

Procs

do_removeThis is just for signals and doesn't run for most removals, so dont add behaviour here expecting it to do much
is_holding_onCheck if we're "holding on" to the shuttle
is_on_hyperspaceAre we on a hyperspace tile? There's some special bullshit with lattices so we just wrap this check
is_tile_solidCheck if it's a closed turf or contains a dense object
launch_very_hardLaunch the atom very hard, away from hyperspace
update_drift_directionCheck if we arent just being blocked, and if we are give us some diagonal push so we cant just infinitely cling to the front
update_stateCheck if we're in hyperspace and our state in hyperspace

Var Details

clinging_move_delay

If we can "hold on", how often do we move?

direction

The direction we push stuff towards

hyperloop

Our moveloop, handles the transit pull

hyperspace_type

Path to the hyperspace tile, so we know if we're in hyperspace

not_clinging_move_delay

If we can't hold onto anything, how fast do we get pulled away?

Proc Details

do_remove

This is just for signals and doesn't run for most removals, so dont add behaviour here expecting it to do much

is_holding_on

Check if we're "holding on" to the shuttle

is_on_hyperspace

Are we on a hyperspace tile? There's some special bullshit with lattices so we just wrap this check

is_tile_solid

Check if it's a closed turf or contains a dense object

launch_very_hard

Launch the atom very hard, away from hyperspace

update_drift_direction

Check if we arent just being blocked, and if we are give us some diagonal push so we cant just infinitely cling to the front

update_state

Check if we're in hyperspace and our state in hyperspace

\ No newline at end of file diff --git a/datum/component/shy.html b/datum/component/shy.html new file mode 100644 index 0000000000000..5c9d8032ec54c --- /dev/null +++ b/datum/component/shy.html @@ -0,0 +1 @@ +/datum/component/shy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shy

You can't use items on anyone other than yourself if there are other living mobs around you

Vars

clientless_shyAre you shy around bodies with no client?
dead_shyAre you shy around a dead body?
dead_shy_immediateIf dead_shy is false and this is true, you're only shy when right next to a dead target
keyless_shyAre you shy around bodies with no key?
last_resultWhat was our last result?
machine_whitelistTypecache of machines you can avoid being shy with
messageMessage shown when you are is_shy
mob_whitelistTypecache of mob types you are okay around
result_cooldownInvalidate last_result at this time
shy_rangeHow close you are before you get shy

Procs

is_shyReturns TRUE or FALSE if you are within shy_range tiles from a /mob/living

Var Details

clientless_shy

Are you shy around bodies with no client?

dead_shy

Are you shy around a dead body?

dead_shy_immediate

If dead_shy is false and this is true, you're only shy when right next to a dead target

keyless_shy

Are you shy around bodies with no key?

last_result

What was our last result?

machine_whitelist

Typecache of machines you can avoid being shy with

message

Message shown when you are is_shy

mob_whitelist

Typecache of mob types you are okay around

result_cooldown

Invalidate last_result at this time

shy_range

How close you are before you get shy

Proc Details

is_shy

Returns TRUE or FALSE if you are within shy_range tiles from a /mob/living

\ No newline at end of file diff --git a/datum/component/shy_in_room.html b/datum/component/shy_in_room.html new file mode 100644 index 0000000000000..39afb4a5fb34a --- /dev/null +++ b/datum/component/shy_in_room.html @@ -0,0 +1 @@ +/datum/component/shy_in_room - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shy_in_room

You can't use items on anyone other than yourself if you stand in a blacklisted room

Vars

blacklistTypecache of areas you can't stand
messageMessage shown when you are in a blacklisted room

Procs

Initialize_blacklist, and _message map to vars
is_shyReturns TRUE or FALSE if you are in a blacklisted area

Var Details

blacklist

Typecache of areas you can't stand

message

Message shown when you are in a blacklisted room

Proc Details

Initialize

_blacklist, and _message map to vars

is_shy

Returns TRUE or FALSE if you are in a blacklisted area

\ No newline at end of file diff --git a/datum/component/sign_language.html b/datum/component/sign_language.html new file mode 100644 index 0000000000000..ec84dc495c2d2 --- /dev/null +++ b/datum/component/sign_language.html @@ -0,0 +1,51 @@ +/datum/component/sign_language - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sign_language

Reactive Sign Language Component for Carbons. Allows Carbons to speak with sign language if they have the relevant traits. +Implements sign language by incrementally overriding several critical functions, variables, and argument lists.

+

High-Level Theory of Operation:

+
    +
  1. Component is added to a Carbon via AddComponent.
  2. +
  3. Component grants sign language action to its parent, which adds and removes TRAIT_SIGN_LANG.
  4. +
  5. Component reacts to addition and removal of TRAIT_SIGN_LANG in parent:
  6. +
  7. If TRAIT_SIGN_LANG is added, then enable sign language. Listen for speech signals and modify the mob's speech, say_mod verbs, and typing indicator.
  8. +
  9. If TRAIT_SIGN_LANG is removed, then disable sign language. Unregister from speech signals and reset the mob's speech, say_mob verbs, and typing indicator.
  10. +
+ +

Vars

linked_actionThe action for toggling sign language.
omissionsAny symbols to sanitize from signed messages.
tonal_indicatorThe tonal indicator shown when sign language users finish sending a message. If it's empty, none appears.
tonal_timeridThe timerid for our sign language tonal indicator.

Procs

can_cast_spellCheck if we can sign the given spell
check_signables_stateChecks to see what state this person is in and if they are able to sign or not.
disable_sign_languageSignal handler for [COMSIG_SIGNLANGUAGE_DISABLE] +Disables signing for the parent Carbon, allowing them to speak vocally. +This proc is only called directly after TRAIT_SIGN_LANG is removed from the Carbon.
emote_toneSend a visible message depending on the tone of the message that the sender is trying to convey to the world.
enable_sign_languageSignal handler for [COMSIG_SIGNLANGUAGE_ENABLE] +Enables signing for the parent Carbon, stopping them from speaking vocally. +This proc is only called directly after TRAIT_SIGN_LANG is added to the Carbon.
on_added_organSignal proc for COMSIG_CARBON_GAIN_ORGAN +Applies the new say mod to any tongues that have appeared!
on_sayReplaces emphatic punctuation with periods. Changes tonal indicator and emotes based on what is typed.
on_say_quoteSignal proc for COMSIG_MOVABLE_SAY_QUOTE +Removes exclamation/question marks.
on_treat_living_messageSignal proc for COMSIG_LIVING_TREAT_MESSAGE +Changes our message based on conditions that limit or alter our ability to communicate
on_try_speechSignal proc for COMSIG_MOB_TRY_SPEECH +Sign languagers can always speak regardless of they're mute (as long as they're not mimes)
on_using_radioSignal proc for COMSIG_MOVABLE_USING_RADIO +Disallows us from speaking on comms if we don't have the special trait.
remove_tonal_indicatorRemoves the tonal indicator overlay completely
sanitize_messageReplace specific characters in the input string with periods.

Var Details

linked_action

The action for toggling sign language.

omissions

Any symbols to sanitize from signed messages.

tonal_indicator

The tonal indicator shown when sign language users finish sending a message. If it's empty, none appears.

tonal_timerid

The timerid for our sign language tonal indicator.

Proc Details

can_cast_spell

Check if we can sign the given spell

+

Checks to make sure the spell is not a mime spell, and that we are able to physically cast the spell. +Arguments:

+

check_signables_state

Checks to see what state this person is in and if they are able to sign or not.

disable_sign_language

Signal handler for [COMSIG_SIGNLANGUAGE_DISABLE] +Disables signing for the parent Carbon, allowing them to speak vocally. +This proc is only called directly after TRAIT_SIGN_LANG is removed from the Carbon.

emote_tone

Send a visible message depending on the tone of the message that the sender is trying to convey to the world.

enable_sign_language

Signal handler for [COMSIG_SIGNLANGUAGE_ENABLE] +Enables signing for the parent Carbon, stopping them from speaking vocally. +This proc is only called directly after TRAIT_SIGN_LANG is added to the Carbon.

on_added_organ

Signal proc for COMSIG_CARBON_GAIN_ORGAN +Applies the new say mod to any tongues that have appeared!

on_say

Replaces emphatic punctuation with periods. Changes tonal indicator and emotes based on what is typed.

on_say_quote

Signal proc for COMSIG_MOVABLE_SAY_QUOTE +Removes exclamation/question marks.

on_treat_living_message

Signal proc for COMSIG_LIVING_TREAT_MESSAGE +Changes our message based on conditions that limit or alter our ability to communicate

on_try_speech

Signal proc for COMSIG_MOB_TRY_SPEECH +Sign languagers can always speak regardless of they're mute (as long as they're not mimes)

on_using_radio

Signal proc for COMSIG_MOVABLE_USING_RADIO +Disallows us from speaking on comms if we don't have the special trait.

remove_tonal_indicator

Removes the tonal indicator overlay completely

sanitize_message

Replace specific characters in the input string with periods.

\ No newline at end of file diff --git a/datum/component/simple_access.html b/datum/component/simple_access.html new file mode 100644 index 0000000000000..d2071373393ef --- /dev/null +++ b/datum/component/simple_access.html @@ -0,0 +1 @@ +/datum/component/simple_access - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

simple_access

This component allows us to give a mob access without giving them an ID card.

Vars

accesslist of accesses we are allowed to access via this component

Var Details

access

list of accesses we are allowed to access via this component

\ No newline at end of file diff --git a/datum/component/simple_bodycam.html b/datum/component/simple_bodycam.html new file mode 100644 index 0000000000000..df42988c01d43 --- /dev/null +++ b/datum/component/simple_bodycam.html @@ -0,0 +1 @@ +/datum/component/simple_bodycam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

simple_bodycam

Simple component to integrate a bodycam into a mob

Vars

bodycamThe actual camera, in our mob's contents
camera_update_timeHow fast we update

Var Details

bodycam

The actual camera, in our mob's contents

camera_update_time

How fast we update

\ No newline at end of file diff --git a/datum/component/simple_farm.html b/datum/component/simple_farm.html new file mode 100644 index 0000000000000..d5a5d6d1083da --- /dev/null +++ b/datum/component/simple_farm.html @@ -0,0 +1,3 @@ +/datum/component/simple_farm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

simple_farm

Vars

atom_parentthe reference to the movable parent the component is attached to
one_per_turfwhether we limit the amount of plants you can have per turf
pixel_shiftthe amount of pixels shifted (x,y)

Procs

check_attackcheck_attack is meant to listen for the COMSIG_ATOM_ATTACKBY signal, where it essentially functions like the attackby proc
check_examinecheck_examine is meant to listen for the COMSIG_ATOM_EXAMINE signal, where it will put additional information in the examine
delete_farmdelete_farm is meant to be called when the parent of this component has been deleted-- thus deleting the ability to grow the simple farm +it will delete the farm that can be found on the turf of the parent of this component

Var Details

atom_parent

the reference to the movable parent the component is attached to

one_per_turf

whether we limit the amount of plants you can have per turf

pixel_shift

the amount of pixels shifted (x,y)

Proc Details

check_attack

check_attack is meant to listen for the COMSIG_ATOM_ATTACKBY signal, where it essentially functions like the attackby proc

check_examine

check_examine is meant to listen for the COMSIG_ATOM_EXAMINE signal, where it will put additional information in the examine

delete_farm

delete_farm is meant to be called when the parent of this component has been deleted-- thus deleting the ability to grow the simple farm +it will delete the farm that can be found on the turf of the parent of this component

\ No newline at end of file diff --git a/datum/component/simple_rotation.html b/datum/component/simple_rotation.html new file mode 100644 index 0000000000000..7cda1b9e84b00 --- /dev/null +++ b/datum/component/simple_rotation.html @@ -0,0 +1,6 @@ +/datum/component/simple_rotation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

simple_rotation

Vars

post_rotationAdditional stuff to do after rotation
rotation_flagsRotation flags for special behavior

Procs

InitializeAdds the ability to rotate an object by Alt-click or using Right-click verbs.

Var Details

post_rotation

Additional stuff to do after rotation

rotation_flags

Rotation flags for special behavior

Proc Details

Initialize

Adds the ability to rotate an object by Alt-click or using Right-click verbs.

+

args:

+
\ No newline at end of file diff --git a/datum/component/singularity.html b/datum/component/singularity.html new file mode 100644 index 0000000000000..649d4d43499b1 --- /dev/null +++ b/datum/component/singularity.html @@ -0,0 +1,6 @@ +/datum/component/singularity - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

singularity

Things that maybe move around and does stuff to things around them +Used for the singularity (duh) and Nar'Sie

Vars

bsa_targetableCan this singularity be BSA'd?
chance_to_move_to_targetWhat's the chance that, when a singularity moves, it'll go to its target?
consume_callbackCallback for consuming objects (for example, Nar'Sie replaces this to call narsie_act)
consume_rangeThe range to pull in stuff around it
disregard_failed_movementsShould we disregard the possibility of failed movements? Used by stage five singularities
drifting_dirThe chosen direction to drift in
grav_pullHow many tiles out to pull in
last_failed_movementThe last direction we failed to move in (for example: if we are contained)
notify_adminsShould the admins be alerted when this is created?
roamingDoes this singularity move?
singularity_sizeHow big is the singularity?
targetIf specified, the singularity will slowly move to this target
time_since_last_eatThe time that has elapsed since our last move/eat call
turfs_to_consumeList of turfs we have yet to consume, but need to

Procs

admin_investigate_setupLogs to admins that a singularity was created
bluespace_reactionFired when the singularity is fired at with the BSA and deletes it
check_turfs_inMakes sure we don't move out of the z-level by checking the turfs around us. +Takes in the direction we're going, and optionally how many steps forward to look. +If steps are not provided, it will be inferred by singularity_size.
default_singularity_actCalls singularity_act on the thing passed, usually destroying the object
on_enteredTriggered when something enters the component's parent.

Var Details

bsa_targetable

Can this singularity be BSA'd?

chance_to_move_to_target

What's the chance that, when a singularity moves, it'll go to its target?

consume_callback

Callback for consuming objects (for example, Nar'Sie replaces this to call narsie_act)

consume_range

The range to pull in stuff around it

disregard_failed_movements

Should we disregard the possibility of failed movements? Used by stage five singularities

drifting_dir

The chosen direction to drift in

grav_pull

How many tiles out to pull in

last_failed_movement

The last direction we failed to move in (for example: if we are contained)

notify_admins

Should the admins be alerted when this is created?

roaming

Does this singularity move?

singularity_size

How big is the singularity?

target

If specified, the singularity will slowly move to this target

time_since_last_eat

The time that has elapsed since our last move/eat call

turfs_to_consume

List of turfs we have yet to consume, but need to

Proc Details

admin_investigate_setup

Logs to admins that a singularity was created

bluespace_reaction

Fired when the singularity is fired at with the BSA and deletes it

check_turfs_in

Makes sure we don't move out of the z-level by checking the turfs around us. +Takes in the direction we're going, and optionally how many steps forward to look. +If steps are not provided, it will be inferred by singularity_size.

default_singularity_act

Calls singularity_act on the thing passed, usually destroying the object

on_entered

Triggered when something enters the component's parent.

\ No newline at end of file diff --git a/datum/component/singularity/bloodthirsty.html b/datum/component/singularity/bloodthirsty.html new file mode 100644 index 0000000000000..b68ad91c95f9f --- /dev/null +++ b/datum/component/singularity/bloodthirsty.html @@ -0,0 +1 @@ +/datum/component/singularity/bloodthirsty - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bloodthirsty

Procs

find_new_targetSearches the living list for the closest target, and begins chasing them down.

Proc Details

find_new_target

Searches the living list for the closest target, and begins chasing them down.

\ No newline at end of file diff --git a/datum/component/sisyphus_awarder.html b/datum/component/sisyphus_awarder.html new file mode 100644 index 0000000000000..a8bbd19b23986 --- /dev/null +++ b/datum/component/sisyphus_awarder.html @@ -0,0 +1,2 @@ +/datum/component/sisyphus_awarder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sisyphus_awarder

This component awards the sisyphus achievement if you cart a boulder from lavaland to centcom +It's not really reusable but its a component just to encapsulate and destroy the behaviour neatly

Vars

bottom_of_the_hillReference to a place where it all started.
sisyphusWhat poor sap is hauling this rock?

Procs

on_bearer_changed_areaIf we changed area see if we arrived
on_droppedIf you ever drop this shit you fail the challenge
on_picked_upCalled when we're picked up, check if we're in the right place to start our epic journey
play_reward_sceneSends the player back to the Lavaland and plays a funny sound

Var Details

bottom_of_the_hill

Reference to a place where it all started.

sisyphus

What poor sap is hauling this rock?

Proc Details

on_bearer_changed_area

If we changed area see if we arrived

on_dropped

If you ever drop this shit you fail the challenge

on_picked_up

Called when we're picked up, check if we're in the right place to start our epic journey

play_reward_scene

Sends the player back to the Lavaland and plays a funny sound

\ No newline at end of file diff --git a/datum/component/sizzle.html b/datum/component/sizzle.html new file mode 100644 index 0000000000000..233cf820e6f29 --- /dev/null +++ b/datum/component/sizzle.html @@ -0,0 +1 @@ +/datum/component/sizzle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sizzle

Vars

grilled_timeThe amount of time the food item has been sizzling for
sizzlingThe sizzling appearance to put on top of the food item

Procs

time_elapsedReturns how long the food item has been sizzling for

Var Details

grilled_time

The amount of time the food item has been sizzling for

sizzling

The sizzling appearance to put on top of the food item

Proc Details

time_elapsed

Returns how long the food item has been sizzling for

\ No newline at end of file diff --git a/datum/component/sliding_under.html b/datum/component/sliding_under.html new file mode 100644 index 0000000000000..f355e41a383db --- /dev/null +++ b/datum/component/sliding_under.html @@ -0,0 +1 @@ +/datum/component/sliding_under - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sliding_under

Vars

allowed_mobsThe list of allowed mobs to slide under
atom_parentThe atom that has this component

Var Details

allowed_mobs

The list of allowed mobs to slide under

atom_parent

The atom that has this component

\ No newline at end of file diff --git a/datum/component/slime_friends.html b/datum/component/slime_friends.html new file mode 100644 index 0000000000000..5eeac1eec4e5e --- /dev/null +++ b/datum/component/slime_friends.html @@ -0,0 +1 @@ +/datum/component/slime_friends - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

slime_friends

Vars

coloursList to pick from when we need slime colour.
timerSlime maker timer.

Procs

make_slime_friendSlime prodactor proc.
start_slime_prodactionStart slime prodaction when we leave wizden.

Var Details

colours

List to pick from when we need slime colour.

timer

Slime maker timer.

Proc Details

make_slime_friend

Slime prodactor proc.

start_slime_prodaction

Start slime prodaction when we leave wizden.

\ No newline at end of file diff --git a/datum/component/slippery.html b/datum/component/slippery.html new file mode 100644 index 0000000000000..980db058f338b --- /dev/null +++ b/datum/component/slippery.html @@ -0,0 +1,56 @@ +/datum/component/slippery - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Slip behaviour component

Add this component to an object to make it a slippery object, slippery objects make mobs that cross them fall over. +Items with this component that get picked up may give their parent mob the slip behaviour.

+

Here is a simple example of adding the component behaviour to an object.area

+
AddComponent(/datum/component/slippery, 80, (NO_SLIP_WHEN_WALKING | SLIDE))
+
+

This adds slippery behaviour to the parent atom, with a 80 decisecond (~8 seconds) knockdown +The lube flags control how the slip behaves, in this case, the mob wont slip if it's in walking mode (NO_SLIP_WHEN_WALKING) +and if they do slip, they will slide a few tiles (SLIDE)

+

This component has configurable behaviours, see the Initialize proc for the argument listing.

Vars

can_slip_callbackOptional callback allowing you to define custom conditions for slipping
default_connectionswhat we give to connect_loc by default, makes slippable mobs moving over us slip
force_drop_itemsIf the slip forces the crossing mob to drop held items.
holderIf parent is an item, this is the person currently holding/wearing the parent (or the parent if no one is holding it)
holder_connect_loc_behalfThe connect_loc_behalf component for the holder_connections list.
holder_connectionswhat we give to connect_loc if we're an item and get equipped by a mob. makes slippable mobs moving over our holder slip
knockdown_timeHow long the slip keeps the crossing mob knocked over (they can still crawl and use weapons) for.
lube_flagsFlags for how slippery the parent is. See [__DEFINES/mobs.dm]
on_slip_callbackOptional call back that is called when a mob slips on this component
paralyze_timeHow long the slip paralyzes (prevents the crossing mob doing anything) for.
slot_whitelistWhitelist of item slots the parent can be equipped in that make the holder slippery. If null or empty, it will always make the holder slippery.

Procs

InitializeInitialize the slippery component behaviour
SlipThe proc that does the sliping. Invokes the slip callback we have set.
Slip_on_wearerThe slip proc, but for equipped items. +Slips the person who crossed us if we're lying down and unbuckled.
holder_deletedDetects if the holder mob is deleted. +If our holder mob is the holder set in this component, we null it.
on_dropGets called when COMSIG_ITEM_DROPPED is sent to parent. +Makes our holder mob un-slippery.
on_equipGets called when COMSIG_ITEM_EQUIPPED is sent to parent. +This proc register slip signals to the equipper. +If we have a slot whitelist, we only register the signals if the slot is valid (ex: clown PDA only slips in ID or belt slot).

Var Details

can_slip_callback

Optional callback allowing you to define custom conditions for slipping

default_connections

what we give to connect_loc by default, makes slippable mobs moving over us slip

force_drop_items

If the slip forces the crossing mob to drop held items.

holder

If parent is an item, this is the person currently holding/wearing the parent (or the parent if no one is holding it)

holder_connect_loc_behalf

The connect_loc_behalf component for the holder_connections list.

holder_connections

what we give to connect_loc if we're an item and get equipped by a mob. makes slippable mobs moving over our holder slip

knockdown_time

How long the slip keeps the crossing mob knocked over (they can still crawl and use weapons) for.

lube_flags

Flags for how slippery the parent is. See [__DEFINES/mobs.dm]

on_slip_callback

Optional call back that is called when a mob slips on this component

paralyze_time

How long the slip paralyzes (prevents the crossing mob doing anything) for.

slot_whitelist

Whitelist of item slots the parent can be equipped in that make the holder slippery. If null or empty, it will always make the holder slippery.

Proc Details

Initialize

Initialize the slippery component behaviour

+

When applied to any atom in the game this will apply slipping behaviours to that atom

+

Arguments:

+

Slip

The proc that does the sliping. Invokes the slip callback we have set.

+

Arguments

+

Slip_on_wearer

The slip proc, but for equipped items. +Slips the person who crossed us if we're lying down and unbuckled.

+

Arguments:

+

holder_deleted

Detects if the holder mob is deleted. +If our holder mob is the holder set in this component, we null it.

+

Arguments:

+

on_drop

Gets called when COMSIG_ITEM_DROPPED is sent to parent. +Makes our holder mob un-slippery.

+

Arguments:

+

on_equip

Gets called when COMSIG_ITEM_EQUIPPED is sent to parent. +This proc register slip signals to the equipper. +If we have a slot whitelist, we only register the signals if the slot is valid (ex: clown PDA only slips in ID or belt slot).

+

Arguments

+
\ No newline at end of file diff --git a/datum/component/smooth_tunes.html b/datum/component/smooth_tunes.html new file mode 100644 index 0000000000000..9a83c8fd9c28c --- /dev/null +++ b/datum/component/smooth_tunes.html @@ -0,0 +1,2 @@ +/datum/component/smooth_tunes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

smooth_tunes

Smooth tunes component! Applied to musicians to give the songs they play special effects, according to a rite! +Comes with BARTICLES!!!

Vars

allow_repeatsif repeats count as continuations instead of a song's end, TRUE
glow_colora funny little glow applied to the instrument while playing
linked_songlinked song
linked_songtuner_riteif applied due to a rite, we link it here
particle_holderthe particle holder of the particle path (created when song starts) ((no i cant think of a better var name because i made the typepath and im perfect))
particles_pathparticles to apply, if applicable
viable_for_final_effectwhether to call the rite's finish effect, only true when the song is long enough

Procs

start_singingInitiates the effect when the song begins playing.
stop_singingEnds the effect when the song is no longer playing.
tempo_changePrevents changing tempo during a song to sneak in final effects quicker

Var Details

allow_repeats

if repeats count as continuations instead of a song's end, TRUE

glow_color

a funny little glow applied to the instrument while playing

linked_song

linked song

linked_songtuner_rite

if applied due to a rite, we link it here

particle_holder

the particle holder of the particle path (created when song starts) ((no i cant think of a better var name because i made the typepath and im perfect))

particles_path

particles to apply, if applicable

viable_for_final_effect

whether to call the rite's finish effect, only true when the song is long enough

Proc Details

start_singing

Initiates the effect when the song begins playing.

stop_singing

Ends the effect when the song is no longer playing.

tempo_change

Prevents changing tempo during a song to sneak in final effects quicker

\ No newline at end of file diff --git a/datum/component/soapbox.html b/datum/component/soapbox.html new file mode 100644 index 0000000000000..383bbd9a592d7 --- /dev/null +++ b/datum/component/soapbox.html @@ -0,0 +1 @@ +/datum/component/soapbox - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

soapbox

Vars

loc_connectionsGives atoms moving over us the soapbox speech and takes it away when they leave
soapboxersList of our current soapboxxer(s) who are gaining loud speech

Procs

on_loc_enteredApplies loud speech to our movable when entering the turf our parent is on
on_loc_exitedTakes away loud speech from our movable when it leaves the turf our parent is on
parent_movedWe don't want our soapboxxer to keep their loud say if the parent is moved out from under them
soapbox_speechGives a mob a unique say span

Var Details

loc_connections

Gives atoms moving over us the soapbox speech and takes it away when they leave

soapboxers

List of our current soapboxxer(s) who are gaining loud speech

Proc Details

on_loc_entered

Applies loud speech to our movable when entering the turf our parent is on

on_loc_exited

Takes away loud speech from our movable when it leaves the turf our parent is on

parent_moved

We don't want our soapboxxer to keep their loud say if the parent is moved out from under them

soapbox_speech

Gives a mob a unique say span

\ No newline at end of file diff --git a/datum/component/soul_stealer.html b/datum/component/soul_stealer.html new file mode 100644 index 0000000000000..6d84c0b3b6438 --- /dev/null +++ b/datum/component/soul_stealer.html @@ -0,0 +1,3 @@ +/datum/component/soul_stealer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

soul_stealer

Soul Stealer component!

+

Component that attaches to items, making lethal swings with them steal the victims soul, storing it inside the item. +Used in the cult bastard sword!

Vars

soulstonesList of soulstones captured by this item.

Procs

on_examinesignal called on parent being examined

Var Details

soulstones

List of soulstones captured by this item.

Proc Details

on_examine

signal called on parent being examined

\ No newline at end of file diff --git a/datum/component/sound_player.html b/datum/component/sound_player.html new file mode 100644 index 0000000000000..1a521b50238ab --- /dev/null +++ b/datum/component/sound_player.html @@ -0,0 +1,3 @@ +/datum/component/sound_player - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sound_player

Sound Player component

+

Component that will play a sound upon receiving some signal

Vars

soundsThe list of sounds played, picked randomly.
usesUses left before the sound player deletes itself. If set to a negative number that will mean infinite uses.
volumeVolume of the sound when played

Procs

play_soundAttempt to play the sound on parent

Var Details

sounds

The list of sounds played, picked randomly.

uses

Uses left before the sound player deletes itself. If set to a negative number that will mean infinite uses.

volume

Volume of the sound when played

Proc Details

play_sound

Attempt to play the sound on parent

+

If out of uses, will qdel itself.

\ No newline at end of file diff --git a/datum/component/space_camo.html b/datum/component/space_camo.html new file mode 100644 index 0000000000000..e2433b9ff34ec --- /dev/null +++ b/datum/component/space_camo.html @@ -0,0 +1 @@ +/datum/component/space_camo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

space_camo

Camouflage us when we enter space by increasing alpha and or changing color

Vars

next_camoThe world time after we can camo again
non_space_alphaAlpha we have elsewhere
reveal_after_combatHow long we can't enter camo after hitting or being hit
space_alphaAlpha we have in space

Var Details

next_camo

The world time after we can camo again

non_space_alpha

Alpha we have elsewhere

reveal_after_combat

How long we can't enter camo after hitting or being hit

space_alpha

Alpha we have in space

\ No newline at end of file diff --git a/datum/component/space_dive.html b/datum/component/space_dive.html new file mode 100644 index 0000000000000..5744bf976466c --- /dev/null +++ b/datum/component/space_dive.html @@ -0,0 +1 @@ +/datum/component/space_dive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

space_dive

Lets us dive under the station from space

Vars

dive_timetime it takes to enter the dive
jaunt_typeholder we use when we're in dive
phase_traitsTraits added during phasing (and removed after)
surface_timethe time it takes to exit our space dive

Procs

attempt_surfacetry and surface by doing a do_after

Var Details

dive_time

time it takes to enter the dive

jaunt_type

holder we use when we're in dive

phase_traits

Traits added during phasing (and removed after)

surface_time

the time it takes to exit our space dive

Proc Details

attempt_surface

try and surface by doing a do_after

\ No newline at end of file diff --git a/datum/component/space_kidnap.html b/datum/component/space_kidnap.html new file mode 100644 index 0000000000000..c42ac2167e6aa --- /dev/null +++ b/datum/component/space_kidnap.html @@ -0,0 +1 @@ +/datum/component/space_kidnap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

space_kidnap

Component that lets us space kidnap people as the voidwalker with our HAAAADS

Vars

kidnap_timeHow long does it take to kidnap them?
kidnappingAre we kidnapping right now?

Var Details

kidnap_time

How long does it take to kidnap them?

kidnapping

Are we kidnapping right now?

\ No newline at end of file diff --git a/datum/component/spawner.html b/datum/component/spawner.html new file mode 100644 index 0000000000000..2aa86e5b01376 --- /dev/null +++ b/datum/component/spawner.html @@ -0,0 +1 @@ +/datum/component/spawner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spawner

Vars

factionFaction to grant to mobs (only applies to mobs)
max_spawn_per_attemptHow many mobs can we spawn maximum each time we try to spawn? (1 - max)
max_spawnedMaximum number of atoms we can have active at one time
spawn_callbackCallback to a proc that is called when a mob is spawned. Primarily used for sentient spawners.
spawn_distanceDistance from the spawner to spawn mobs
spawn_distance_excludeDistance from the spawner to exclude mobs from spawning
spawn_textVisible message to show when something spawns
spawn_timeTime to wait between spawns
spawn_typesList of atom types to spawn, picked randomly
spawned_thingsList of weak references to things we have already created

Procs

mob_stat_changedCalled when a mob we spawned dies, remove it from the list and unregister signals
on_deletedCalled when an atom we spawned is deleted, remove it from the list
stop_spawningStop spawning mobs
try_spawn_mobTry to create a new mob
validate_referencesRemove weakrefs to atoms which have been killed or deleted without us picking it up somehow

Var Details

faction

Faction to grant to mobs (only applies to mobs)

max_spawn_per_attempt

How many mobs can we spawn maximum each time we try to spawn? (1 - max)

max_spawned

Maximum number of atoms we can have active at one time

spawn_callback

Callback to a proc that is called when a mob is spawned. Primarily used for sentient spawners.

spawn_distance

Distance from the spawner to spawn mobs

spawn_distance_exclude

Distance from the spawner to exclude mobs from spawning

spawn_text

Visible message to show when something spawns

spawn_time

Time to wait between spawns

spawn_types

List of atom types to spawn, picked randomly

spawned_things

List of weak references to things we have already created

Proc Details

mob_stat_changed

Called when a mob we spawned dies, remove it from the list and unregister signals

on_deleted

Called when an atom we spawned is deleted, remove it from the list

stop_spawning

Stop spawning mobs

try_spawn_mob

Try to create a new mob

validate_references

Remove weakrefs to atoms which have been killed or deleted without us picking it up somehow

\ No newline at end of file diff --git a/datum/component/speechmod.html b/datum/component/speechmod.html new file mode 100644 index 0000000000000..b6fae5c93bfa3 --- /dev/null +++ b/datum/component/speechmod.html @@ -0,0 +1,2 @@ +/datum/component/speechmod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

speechmod

Used to apply certain speech patterns +Can be used on organs, wearables, mutations and mobs

Vars

end_stringString added to the end of the message
end_string_chanceChance for the end string to be applied
replacementsAssoc list for strings/regexes and their replacements. Should be lowercase, as case will be automatically changed
should_modify_speechAny additional checks that we should do before applying the speech modification
slotsSlot tags in which this item works when equipped
targetedCurrent target for modification
uppercaseIf set to true, turns all text to uppercase

Var Details

end_string

String added to the end of the message

end_string_chance

Chance for the end string to be applied

replacements

Assoc list for strings/regexes and their replacements. Should be lowercase, as case will be automatically changed

should_modify_speech

Any additional checks that we should do before applying the speech modification

slots

Slot tags in which this item works when equipped

targeted

Current target for modification

uppercase

If set to true, turns all text to uppercase

\ No newline at end of file diff --git a/datum/component/spin2win.html b/datum/component/spin2win.html new file mode 100644 index 0000000000000..48c18de6d8bba --- /dev/null +++ b/datum/component/spin2win.html @@ -0,0 +1,2 @@ +/datum/component/spin2win - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spin2win

Spin 2 Win component!

+

Component that attaches to items, making their attack_self begin a spin 2 win

Vars

spin_cooldownthe cooldown for spinning to winning
spin_cooldown_timehow long a spin2win takes to recharge.
spin_durationHow long you spin for
spinningwhether we are currently spin2winning or not.
stop_spinning_timer_idTimer id for when we should stop spinning.

Procs

on_examinesignal called on parent being examined

Var Details

spin_cooldown

the cooldown for spinning to winning

spin_cooldown_time

how long a spin2win takes to recharge.

spin_duration

How long you spin for

spinning

whether we are currently spin2winning or not.

stop_spinning_timer_id

Timer id for when we should stop spinning.

Proc Details

on_examine

signal called on parent being examined

\ No newline at end of file diff --git a/datum/component/spinny.html b/datum/component/spinny.html new file mode 100644 index 0000000000000..84bb07bc8dab5 --- /dev/null +++ b/datum/component/spinny.html @@ -0,0 +1,2 @@ +/datum/component/spinny - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spinny

spinny.dm

+

It's a component that spins things a whole bunch, like [proc/dance_rotate] but without the sleeps)

Vars

steps_leftHow many turns are left?
turn_degreesTurns clockwise by default, or counterclockwise if the reverse argument is TRUE

Var Details

steps_left

How many turns are left?

turn_degrees

Turns clockwise by default, or counterclockwise if the reverse argument is TRUE

\ No newline at end of file diff --git a/datum/component/spirit_holding.html b/datum/component/spirit_holding.html new file mode 100644 index 0000000000000..fce03971ef592 --- /dev/null +++ b/datum/component/spirit_holding.html @@ -0,0 +1,12 @@ +/datum/component/spirit_holding - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spirit_holding

spirit holding component; for items to have spirits inside of them for "advice"

+

Used for the possessed blade and fantasy affixes

Vars

allow_channelingAllows channeling
allow_exorcismAllows exorcism
allow_renamingAllows renaming the bound item
attempting_awakeningbool on if this component is currently polling for observers to inhabit the item
bound_spiritmob contained in the item.

Procs

affix_spiritOn conclusion of the ghost poll
attempt_exorcismattempt_exorcism: called from on_bible_smacked, takes time and if successful +resets the item to a pre-possessed state
block_buckle_messagesignal fired from a mob moving inside the parent
custom_namecustom_name : Simply sends a tgui input text box to the blade asking what name they want to be called, and retries it if the input is invalid.
on_attack_selfsignal fired on self attacking parent
on_destroysignal fired from parent being destroyed
on_examinesignal fired on examining the parent

Var Details

allow_channeling

Allows channeling

allow_exorcism

Allows exorcism

allow_renaming

Allows renaming the bound item

attempting_awakening

bool on if this component is currently polling for observers to inhabit the item

bound_spirit

mob contained in the item.

Proc Details

affix_spirit

On conclusion of the ghost poll

attempt_exorcism

attempt_exorcism: called from on_bible_smacked, takes time and if successful +resets the item to a pre-possessed state

+

Arguments:

+

block_buckle_message

signal fired from a mob moving inside the parent

custom_name

custom_name : Simply sends a tgui input text box to the blade asking what name they want to be called, and retries it if the input is invalid.

+

Arguments:

+

on_attack_self

signal fired on self attacking parent

on_destroy

signal fired from parent being destroyed

on_examine

signal fired on examining the parent

\ No newline at end of file diff --git a/datum/component/splat.html b/datum/component/splat.html new file mode 100644 index 0000000000000..17d2d85239dc1 --- /dev/null +++ b/datum/component/splat.html @@ -0,0 +1 @@ +/datum/component/splat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

splat

Vars

hit_callbackThe callback called when a mob is hit by this
icon_stateThe icon state to use for the decal
layerThe bodypart layer to use for the decal
memory_typeThe type of memory to celebrate the event of getting hit by this
moodlet_typeThe moodlet passed down to the creamed component
smudge_typeThe type of smudge we create on the floor
splat_colorThe color we give to the creamed component/overlay

Var Details

hit_callback

The callback called when a mob is hit by this

icon_state

The icon state to use for the decal

layer

The bodypart layer to use for the decal

memory_type

The type of memory to celebrate the event of getting hit by this

moodlet_type

The moodlet passed down to the creamed component

smudge_type

The type of smudge we create on the floor

splat_color

The color we give to the creamed component/overlay

\ No newline at end of file diff --git a/datum/component/splattercasting.html b/datum/component/splattercasting.html new file mode 100644 index 0000000000000..00e5699df4c0b --- /dev/null +++ b/datum/component/splattercasting.html @@ -0,0 +1 @@ +/datum/component/splattercasting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

splattercasting component!

Component that makes casted spells cost blood from the user and dramatically lowers their cooldown.

Procs

on_after_spell_castsignal sent after parent casts a spell
on_before_spell_castsignal sent before parent casts a spell
on_species_changesignal sent when a spell casts a projectile
on_spell_projectilesignal sent when the parent casts a spell that has a projectile

Proc Details

on_after_spell_cast

signal sent after parent casts a spell

on_before_spell_cast

signal sent before parent casts a spell

on_species_change

signal sent when a spell casts a projectile

on_spell_projectile

signal sent when the parent casts a spell that has a projectile

\ No newline at end of file diff --git a/datum/component/spy_uplink.html b/datum/component/spy_uplink.html new file mode 100644 index 0000000000000..85f03271acfae --- /dev/null +++ b/datum/component/spy_uplink.html @@ -0,0 +1,7 @@ +/datum/component/spy_uplink - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spy_uplink

+

Applied to items similar to traitor uplinks.

+

Used for spies to complete bounties.

Vars

handlerThe handler which manages all bounties across all spies.
spy_refWeakref to the spy antag datum which owns this uplink

Procs

is_our_spyChecks that the passed mob is the owner of this uplink.
start_stealingWraps the stealing process in a scanning effect.
steal_processAttempts to steal the passed atom in accordance with the passed bounty. +If successful, proceeds to complete the bounty.
try_stealChecks if the passed atom is something that can be stolen according to one of the active bounties. +If so, starts the stealing process.

Var Details

handler

The handler which manages all bounties across all spies.

spy_ref

Weakref to the spy antag datum which owns this uplink

Proc Details

is_our_spy

Checks that the passed mob is the owner of this uplink.

start_stealing

Wraps the stealing process in a scanning effect.

steal_process

Attempts to steal the passed atom in accordance with the passed bounty. +If successful, proceeds to complete the bounty.

try_steal

Checks if the passed atom is something that can be stolen according to one of the active bounties. +If so, starts the stealing process.

\ No newline at end of file diff --git a/datum/component/squashable.html b/datum/component/squashable.html new file mode 100644 index 0000000000000..3d5179341c5d2 --- /dev/null +++ b/datum/component/squashable.html @@ -0,0 +1 @@ +/datum/component/squashable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

squashable

This component allows something to be when crossed, for example for cockroaches.

Vars

loc_connectionssignal list given to connect_loc
on_squash_callbackSpecial callback to call on squash instead, for things like hauberoach
squash_chanceChance on crossed to be squashed
squash_damageHow much brute is applied when mob is squashed
squash_flagsSquash flags, for extra checks etcetera.

Procs

on_enteredHandles the squashing of the mob

Var Details

loc_connections

signal list given to connect_loc

on_squash_callback

Special callback to call on squash instead, for things like hauberoach

squash_chance

Chance on crossed to be squashed

squash_damage

How much brute is applied when mob is squashed

squash_flags

Squash flags, for extra checks etcetera.

Proc Details

on_entered

Handles the squashing of the mob

\ No newline at end of file diff --git a/datum/component/squeak.html b/datum/component/squeak.html new file mode 100644 index 0000000000000..2e0931f9bc9ce --- /dev/null +++ b/datum/component/squeak.html @@ -0,0 +1 @@ +/datum/component/squeak - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

squeak

Vars

item_connectionswhat we set connect_loc to if parent is an item
sound_extra_rangeextra-range for this component's sound
sound_falloff_distancewhen sounds start falling off for the squeak
sound_falloff_exponentsound exponent for squeak. Defaults to 10 as squeaking is loud and annoying enough.

Procs

holder_deletedjust gets rid of the reference to holder in the case that they're qdeleted

Var Details

item_connections

what we set connect_loc to if parent is an item

sound_extra_range

extra-range for this component's sound

sound_falloff_distance

when sounds start falling off for the squeak

sound_falloff_exponent

sound exponent for squeak. Defaults to 10 as squeaking is loud and annoying enough.

Proc Details

holder_deleted

just gets rid of the reference to holder in the case that they're qdeleted

\ No newline at end of file diff --git a/datum/component/stationloving.html b/datum/component/stationloving.html new file mode 100644 index 0000000000000..90b68c7d4f83d --- /dev/null +++ b/datum/component/stationloving.html @@ -0,0 +1,3 @@ +/datum/component/stationloving - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

stationloving

Teleports the movable atom back to a safe turf on the station if it leaves the z-level or becomes inaccessible.

Vars

allow_item_destructionIf FALSE, prevents parent from being qdel'd unless it's a force = TRUE qdel.
inform_adminsIf TRUE, notifies admins when parent is teleported back to the station.

Procs

atom_in_boundsChecks whether a given atom's turf is within bounds. Returns TRUE if it is, FALSE if it isn't.
on_loc_secludedSignal proc for [SIGNAL_ADDTRAIT], via TRAIT_SECLUDED_LOCATION on our locs, to ensure nothing funky happens
on_parent_movedSignal proc for COMSIG_MOVABLE_MOVED, called when our parent moves, or our parent's loc, or our parent's loc loc... +To check if our disk is moving somewhere it shouldn't be, such as off Z level, or into an invalid area
on_parent_pre_qdeletedSignal handler for before the parent is qdel'd. Can prevent the parent from being deleted where allow_item_destruction is FALSE and force is FALSE.
relocateTeleports parent to a safe turf on the station z-level.

Var Details

allow_item_destruction

If FALSE, prevents parent from being qdel'd unless it's a force = TRUE qdel.

inform_admins

If TRUE, notifies admins when parent is teleported back to the station.

Proc Details

atom_in_bounds

Checks whether a given atom's turf is within bounds. Returns TRUE if it is, FALSE if it isn't.

on_loc_secluded

Signal proc for [SIGNAL_ADDTRAIT], via TRAIT_SECLUDED_LOCATION on our locs, to ensure nothing funky happens

on_parent_moved

Signal proc for COMSIG_MOVABLE_MOVED, called when our parent moves, or our parent's loc, or our parent's loc loc... +To check if our disk is moving somewhere it shouldn't be, such as off Z level, or into an invalid area

on_parent_pre_qdeleted

Signal handler for before the parent is qdel'd. Can prevent the parent from being deleted where allow_item_destruction is FALSE and force is FALSE.

relocate

Teleports parent to a safe turf on the station z-level.

\ No newline at end of file diff --git a/datum/component/stationstuck.html b/datum/component/stationstuck.html new file mode 100644 index 0000000000000..a0ff4eba5c020 --- /dev/null +++ b/datum/component/stationstuck.html @@ -0,0 +1,9 @@ +/datum/component/stationstuck - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

stationstuck

Procs

punishCalled when parent leaves the zlevel this is set to (aka whichever zlevel it was on when it was added) +Sends a message, then does an effect depending on what the punishment was.

Proc Details

punish

Called when parent leaves the zlevel this is set to (aka whichever zlevel it was on when it was added) +Sends a message, then does an effect depending on what the punishment was.

+

Punishments:

+
\ No newline at end of file diff --git a/datum/component/status_indicator.html b/datum/component/status_indicator.html new file mode 100644 index 0000000000000..f2ab4091cacb4 --- /dev/null +++ b/datum/component/status_indicator.html @@ -0,0 +1,3 @@ +/datum/component/status_indicator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

status_indicator

Procs

add_status_indicatorAdds a status indicator to the mob. Takes an image as an argument. If it exists, it won't dupe it.
check_indicatorsThis proc makes it so that mobs that have status indicators are checked to remove them, especially in fakeout situations.
cut_indicators_overlaysCuts all the indicators on a mob in a loop.
get_status_indicatorFinds a status indicator on a mob.
handle_status_indicatorsRefreshes the indicators over a mob's head. Should only be called when adding or removing a status indicator with the above procs, +or when the mob changes size visually for some reason.
indicator_fakeoutsCases in which no status indicators should appear above a mob, such as changeling revive and regen coma.
is_confusedReturns true if the mob has confusion.
is_paralyzedReturns true if the mob is paralyzed - for can't fight back purposes.
is_stunnedReturns true if the mob is stunned.
is_unconciousReturns true if the mob is unconcious for any reason.
is_weakenedReturns true if the mob is weakened. Also known as floored.
remove_status_indicatorSimilar to add_status_indicator() but removes it instead, and nulls the list if it becomes empty as a result.
status_indicator_evaluateReceives signals to update on carbon health updates. Checks if the mob is dead - if true, removes all the indicators. Then, we determine what status indicators the mob should carry or remove.

Proc Details

add_status_indicator

Adds a status indicator to the mob. Takes an image as an argument. If it exists, it won't dupe it.

check_indicators

This proc makes it so that mobs that have status indicators are checked to remove them, especially in fakeout situations.

cut_indicators_overlays

Cuts all the indicators on a mob in a loop.

get_status_indicator

Finds a status indicator on a mob.

handle_status_indicators

Refreshes the indicators over a mob's head. Should only be called when adding or removing a status indicator with the above procs, +or when the mob changes size visually for some reason.

indicator_fakeouts

Cases in which no status indicators should appear above a mob, such as changeling revive and regen coma.

is_confused

Returns true if the mob has confusion.

is_paralyzed

Returns true if the mob is paralyzed - for can't fight back purposes.

is_stunned

Returns true if the mob is stunned.

is_unconcious

Returns true if the mob is unconcious for any reason.

is_weakened

Returns true if the mob is weakened. Also known as floored.

remove_status_indicator

Similar to add_status_indicator() but removes it instead, and nulls the list if it becomes empty as a result.

status_indicator_evaluate

Receives signals to update on carbon health updates. Checks if the mob is dead - if true, removes all the indicators. Then, we determine what status indicators the mob should carry or remove.

\ No newline at end of file diff --git a/datum/component/sticker.html b/datum/component/sticker.html new file mode 100644 index 0000000000000..4d8892fec8b04 --- /dev/null +++ b/datum/component/sticker.html @@ -0,0 +1,3 @@ +/datum/component/sticker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sticker

Sticker component

+

Component that draws supplied atom's icon over parent object with specified offset, +icon centering is handled inside.

Vars

examine_textText added to the atom's examine when stickered.
listening_turfEither turf or null, used to connect to COMSIG_TURF_EXPOSE signal when parent is a turf.
our_stickerRefernce to a "stickered" atom.
peel_callbackCallback invoked when sticker is peeled (not removed) from the parent.
stick_callbackCallback invoked when sticker is applied to the parent.
sticker_overlayReference to the created overlay, used during component deletion.

Procs

peelMoves stickered atom from the nullspace, deletes component.
register_turf_signalsSubscribes to COMSIG_TURF_EXPOSE if parent atom is a turf. If turf is closed - subscribes to signal
stickHandles overlay creation from supplied atom, adds created icon to the parent object, moves source atom to the nullspace.
unregister_turf_signalsUnsubscribes from COMSIG_TURF_EXPOSE if listening_turf is not null.

Var Details

examine_text

Text added to the atom's examine when stickered.

listening_turf

Either turf or null, used to connect to COMSIG_TURF_EXPOSE signal when parent is a turf.

our_sticker

Refernce to a "stickered" atom.

peel_callback

Callback invoked when sticker is peeled (not removed) from the parent.

stick_callback

Callback invoked when sticker is applied to the parent.

sticker_overlay

Reference to the created overlay, used during component deletion.

Proc Details

peel

Moves stickered atom from the nullspace, deletes component.

register_turf_signals

Subscribes to COMSIG_TURF_EXPOSE if parent atom is a turf. If turf is closed - subscribes to signal

stick

Handles overlay creation from supplied atom, adds created icon to the parent object, moves source atom to the nullspace.

unregister_turf_signals

Unsubscribes from COMSIG_TURF_EXPOSE if listening_turf is not null.

\ No newline at end of file diff --git a/datum/component/storm_hating.html b/datum/component/storm_hating.html new file mode 100644 index 0000000000000..ae5579420bc35 --- /dev/null +++ b/datum/component/storm_hating.html @@ -0,0 +1 @@ +/datum/component/storm_hating - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

storm_hating

The parent of this component will be destroyed if it's on the ground during a storm

Vars

stormy_weatherTypes of weather which trigger the effect

Var Details

stormy_weather

Types of weather which trigger the effect

\ No newline at end of file diff --git a/datum/component/stove.html b/datum/component/stove.html new file mode 100644 index 0000000000000..7be759a06d642 --- /dev/null +++ b/datum/component/stove.html @@ -0,0 +1,3 @@ +/datum/component/stove - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Stove Component

Makes the attached object a stove

+

Pots can be put on the stove to make soup, and attack-handing it will start processing +where it will heat up the pot's reagents inside

Vars

containerA reference to the current soup pot overtop
container_xContainer's pixel x when placed on the stove
container_yContainer's pixel y when placed on the stove
flame_colorThe color of the flames around the burner.
heat_coefficientModifies how much temperature is exposed to the reagents, and in turn modifies how fast the reagents are heated.
onWhether we're currently cooking
particle_typeTypepath of particles to use for the particle holder.
soup_smokeA particle holder for the smoke that comes out of the soup while a container is cooking.
soup_soundRef to our looping sound played when cooking

Var Details

container

A reference to the current soup pot overtop

container_x

Container's pixel x when placed on the stove

container_y

Container's pixel y when placed on the stove

flame_color

The color of the flames around the burner.

heat_coefficient

Modifies how much temperature is exposed to the reagents, and in turn modifies how fast the reagents are heated.

on

Whether we're currently cooking

particle_type

Typepath of particles to use for the particle holder.

soup_smoke

A particle holder for the smoke that comes out of the soup while a container is cooking.

soup_sound

Ref to our looping sound played when cooking

\ No newline at end of file diff --git a/datum/component/strong_pull.html b/datum/component/strong_pull.html new file mode 100644 index 0000000000000..1f153330cbc06 --- /dev/null +++ b/datum/component/strong_pull.html @@ -0,0 +1 @@ +/datum/component/strong_pull - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

strong_pull

Procs

on_no_longer_pulledCalled when the hooked object is no longer pulled and removes the strong grip.
on_pullCalled when the parent grabs something, adds signals to the object to reject interactions
reject_further_pullsSignal for rejecting further grabs

Proc Details

on_no_longer_pulled

Called when the hooked object is no longer pulled and removes the strong grip.

on_pull

Called when the parent grabs something, adds signals to the object to reject interactions

reject_further_pulls

Signal for rejecting further grabs

\ No newline at end of file diff --git a/datum/component/stun_n_cuff.html b/datum/component/stun_n_cuff.html new file mode 100644 index 0000000000000..e7fbb34c8f06e --- /dev/null +++ b/datum/component/stun_n_cuff.html @@ -0,0 +1 @@ +/datum/component/stun_n_cuff - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stun_n_cuff

Vars

blacklist_mobsmobs we cannot stun nor cuff
handcuff_timertime it takes for us to handcuff the target
handcuff_typetype of cuffs we use
post_arrest_callbackcallback after we have arrested someone
post_stun_callbackcallback after we have stunned someone
stun_cooldowncooldown until we can stun again
stun_cooldown_timertime until we can stun again
stun_soundsound to play when stunning
stun_timertime to stun the target for

Var Details

blacklist_mobs

mobs we cannot stun nor cuff

handcuff_timer

time it takes for us to handcuff the target

handcuff_type

type of cuffs we use

post_arrest_callback

callback after we have arrested someone

post_stun_callback

callback after we have stunned someone

stun_cooldown

cooldown until we can stun again

stun_cooldown_timer

time until we can stun again

stun_sound

sound to play when stunning

stun_timer

time to stun the target for

\ No newline at end of file diff --git a/datum/component/style.html b/datum/component/style.html new file mode 100644 index 0000000000000..ef8dd4e22fe02 --- /dev/null +++ b/datum/component/style.html @@ -0,0 +1 @@ +/datum/component/style - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

style

Vars

actionsThe last point affecting actions we've done
high_scoreHighest score attained by this component, to avoid as much overhead when considering to award a high score to the client
hotswap_rankWhat rank, minimum, the user needs to be to hotswap items
meterThe style meter shown on screen.
meter_imageThe image of the style meter.
multitooledIf this is multitooled, making it make funny noises on the user's rank going up
point_multiplierOur style point multiplier.
rankThe current rank we have.
rankup_soundsA static list of lists of all the possible sounds to play when multitooled, in numerical order
style_pointsAmount of style we have.
timeridThe timer for meter updating

Procs

hotswapA proc that lets a user, when their rank >= hotswap_rank, swap items in storage with what's in their hands, simply by clicking on the stored item with a held item

Var Details

actions

The last point affecting actions we've done

high_score

Highest score attained by this component, to avoid as much overhead when considering to award a high score to the client

hotswap_rank

What rank, minimum, the user needs to be to hotswap items

meter

The style meter shown on screen.

meter_image

The image of the style meter.

multitooled

If this is multitooled, making it make funny noises on the user's rank going up

point_multiplier

Our style point multiplier.

rank

The current rank we have.

rankup_sounds

A static list of lists of all the possible sounds to play when multitooled, in numerical order

style_points

Amount of style we have.

timerid

The timer for meter updating

Proc Details

hotswap

A proc that lets a user, when their rank >= hotswap_rank, swap items in storage with what's in their hands, simply by clicking on the stored item with a held item

\ No newline at end of file diff --git a/datum/component/subtype_picker.html b/datum/component/subtype_picker.html new file mode 100644 index 0000000000000..29079f102406e --- /dev/null +++ b/datum/component/subtype_picker.html @@ -0,0 +1,13 @@ +/datum/component/subtype_picker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

subtype_picker

subtype picker component allows for an item to transform into its subtypes (this is not enforced and you can turn in whatever types, but +i used this name as it was incredibly accurate for current usage of the behavior)

+

Used for the null rod to pick the other holy weapons.

Vars

built_radial_listlist given to the radial menu to display, built after init
name2subtypethe radial will return a name of the wanted subtype, this is a list of names back to the type, built after init
on_picked_callbackoptional proc to callback to when the weapon is picked
subtype2descriptionsA list of types and their menu descriptions

Procs

build_radial_listpick_subtype: turns the list of types to their description into all the data radial menus need
check_menuChecks if we are allowed to interact with the radial menu
on_attack_selfsignal called by the stat of the target changing
pick_subtypepick_subtype: called from on_attack_self, shows a user a radial menu of all available null rod reskins and replaces the current null rod with the user's chosen reskinned variant

Var Details

built_radial_list

list given to the radial menu to display, built after init

name2subtype

the radial will return a name of the wanted subtype, this is a list of names back to the type, built after init

on_picked_callback

optional proc to callback to when the weapon is picked

subtype2descriptions

A list of types and their menu descriptions

Proc Details

build_radial_list

pick_subtype: turns the list of types to their description into all the data radial menus need

check_menu

Checks if we are allowed to interact with the radial menu

+

Arguments:

+

on_attack_self

signal called by the stat of the target changing

pick_subtype

pick_subtype: called from on_attack_self, shows a user a radial menu of all available null rod reskins and replaces the current null rod with the user's chosen reskinned variant

+

Arguments:

+
\ No newline at end of file diff --git a/datum/component/summoned_item.html b/datum/component/summoned_item.html new file mode 100644 index 0000000000000..eedea0ab7c750 --- /dev/null +++ b/datum/component/summoned_item.html @@ -0,0 +1 @@ +/datum/component/summoned_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

summoned_item

Vars

sub_itemsWhat items were contained, if any, inside of the summoned item? These are deleted when the item is desummoned.

Var Details

sub_items

What items were contained, if any, inside of the summoned item? These are deleted when the item is desummoned.

\ No newline at end of file diff --git a/datum/component/summoning.html b/datum/component/summoning.html new file mode 100644 index 0000000000000..c2bb4b7fb37e7 --- /dev/null +++ b/datum/component/summoning.html @@ -0,0 +1 @@ +/datum/component/summoning - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

summoning

Vars

factionFactions to assign to a summoned mob
max_mobsMaximum mobs we can have active at once
mob_typesTypes of mob we can create
spawn_chancePercentage chance to spawn a mob
spawn_delayCooldown between spawning mobs
spawn_soundSound to play when spawning a mob
spawn_textText to display when spawning a mob
spawned_mobsList containing all of our mobs
summon_cooldownCooldown tracker for when we can summon another mob

Procs

on_spawned_deathWhen a spawned thing dies, remove it from our list

Var Details

faction

Factions to assign to a summoned mob

max_mobs

Maximum mobs we can have active at once

mob_types

Types of mob we can create

spawn_chance

Percentage chance to spawn a mob

spawn_delay

Cooldown between spawning mobs

spawn_sound

Sound to play when spawning a mob

spawn_text

Text to display when spawning a mob

spawned_mobs

List containing all of our mobs

summon_cooldown

Cooldown tracker for when we can summon another mob

Proc Details

on_spawned_death

When a spawned thing dies, remove it from our list

\ No newline at end of file diff --git a/datum/component/supermatter_crystal.html b/datum/component/supermatter_crystal.html new file mode 100644 index 0000000000000..36d051d5bc428 --- /dev/null +++ b/datum/component/supermatter_crystal.html @@ -0,0 +1 @@ +/datum/component/supermatter_crystal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

supermatter_crystal

Vars

consume_callbackCallback used by the SM to get the damage and matter power increase/decrease
tool_act_callbackCallback for the wrench act call

Var Details

consume_callback

Callback used by the SM to get the damage and matter power increase/decrease

tool_act_callback

Callback for the wrench act call

\ No newline at end of file diff --git a/datum/component/surgery_initiator.html b/datum/component/surgery_initiator.html new file mode 100644 index 0000000000000..72155e8e337b3 --- /dev/null +++ b/datum/component/surgery_initiator.html @@ -0,0 +1,9 @@ +/datum/component/surgery_initiator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

surgery_initiator

Allows an item to be used to initiate surgeries.

Vars

last_user_refThe last user, as a weakref
surgery_target_refThe currently selected target that the user is proposing a surgery on

Procs

add_item_contextAdds context sensitivy directly to the surgery initator file for screentips +Arguments:
attempt_cancel_surgeryDoes the surgery de-initiation.
initiate_surgery_momentDoes the surgery initiation.

Var Details

last_user_ref

The last user, as a weakref

surgery_target_ref

The currently selected target that the user is proposing a surgery on

Proc Details

add_item_context

Adds context sensitivy directly to the surgery initator file for screentips +Arguments:

+

attempt_cancel_surgery

Does the surgery de-initiation.

initiate_surgery_moment

Does the surgery initiation.

\ No newline at end of file diff --git a/datum/component/swabbing.html b/datum/component/swabbing.html new file mode 100644 index 0000000000000..9835cee367cd4 --- /dev/null +++ b/datum/component/swabbing.html @@ -0,0 +1 @@ +/datum/component/swabbing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

swabbing

Vars

can_swab_mobsCan we swab mobs?
can_swab_objsCan we swab objs?
can_swab_turfsCan we swab turfs?
swabbed_itemsThe current datums on the swab
update_iconsCallback for update_icon()
update_overlaysCallback for update_overlays()

Procs

can_swabChecks if the swabbing component can swab the specific object or nots
examineChanges examine based on your sample
handle_iconHandle any special icon cases on the item itself
handle_overlaysHandle any special overlay cases on the item itself
try_to_swabRan when you attack an object, tries to get a swab of the object. if a swabbable surface is found it will run behavior and hopefully

Var Details

can_swab_mobs

Can we swab mobs?

can_swab_objs

Can we swab objs?

can_swab_turfs

Can we swab turfs?

swabbed_items

The current datums on the swab

update_icons

Callback for update_icon()

update_overlays

Callback for update_overlays()

Proc Details

can_swab

Checks if the swabbing component can swab the specific object or nots

examine

Changes examine based on your sample

handle_icon

Handle any special icon cases on the item itself

handle_overlays

Handle any special overlay cases on the item itself

try_to_swab

Ran when you attack an object, tries to get a swab of the object. if a swabbable surface is found it will run behavior and hopefully

\ No newline at end of file diff --git a/datum/component/tackler.html b/datum/component/tackler.html new file mode 100644 index 0000000000000..a1361d2a774ec --- /dev/null +++ b/datum/component/tackler.html @@ -0,0 +1,70 @@ +/datum/component/tackler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tackler

For when you want to throw a person at something and have fun stuff happen

+

This component is made for carbon mobs (really, humans), and allows its parent to throw themselves and perform tackles. This is done by enabling throw mode, then clicking on your +intended target with an empty hand. You will then launch toward your target. If you hit a carbon, you'll roll to see how hard you hit them. If you hit a solid non-mob, you'll +roll to see how badly you just messed yourself up. If, along your journey, you hit a table, you'll slam onto it and send up to MAX_TABLE_MESSES (8) /obj/items on the table flying, +and take a bit of extra damage and stun for each thing launched.

+

There are 2 separate """skill rolls""" involved here, which are handled and explained in rollTackle() (for roll 1, carbons), and splat() (for roll 2, walls and solid objects)

Vars

base_knockdownLaunching a tackle calls Knockdown on you for this long, so this is your cooldown. Once you stand back up, you can tackle again.
min_distanceSome gloves, generally ones that increase mobility, may have a minimum distance to fly. Rocket gloves are especially dangerous with this, be sure you'll hit your target or have a clear background if you miss, or else!
rangeYour max range for how far you can tackle.
skill_modA flat modifier to your roll against your target, as described in rollTackle(). Slightly misleading, skills aren't relevant here, this is a matter of what type of gloves (or whatever) is granting you the ability to tackle.
speedHow fast you sail through the air. Standard tackles are 1 speed, but gloves that throw you faster come at a cost: higher speeds make it more likely you'll be badly injured if you fly into a non-mob obstacle.
stamina_costHow much stamina it takes to launch a tackle
tackle_refA wearkef to the throwdatum we're currently dealing with, if we need it
tacklingIf we're currently tackling or are on cooldown. Actually, shit, if I use this to handle cooldowns, then getting thrown by something while on cooldown will count as a tackle..... whatever, i'll fix that next commit

Procs

checkObstacleCheck to see if we hit a table, and if so, make a big mess!
checkTackleSee if we can tackle or not. If we can, leap!
do_grabHelper to do a grab and then adjust the grab state if necessary
negative_outcomeOur negative tackling outcomes.
neutral_outcomeOur neutral tackling outcome.
positive_outcomeOur positive tackling outcomes.
registerTackleStore the thrownthing datum for later use
rollTackleThis handles all of the modifiers for the actual carbon-on-carbon tackling, and gets its own proc because of how many there are (with plenty more in mind!)
sacksack() is called when you actually smack into something, assuming we're mid-tackle. First it deals with smacking into non-carbons, in two cases:
splatThis is where we handle diving into dense atoms, generally with effects ranging from bad to REALLY bad. This works as a percentile roll that is modified in two steps as detailed below. The higher +the roll, the more severe the result.
splatWindowA special case for splatting for handling windows

Var Details

base_knockdown

Launching a tackle calls Knockdown on you for this long, so this is your cooldown. Once you stand back up, you can tackle again.

min_distance

Some gloves, generally ones that increase mobility, may have a minimum distance to fly. Rocket gloves are especially dangerous with this, be sure you'll hit your target or have a clear background if you miss, or else!

range

Your max range for how far you can tackle.

skill_mod

A flat modifier to your roll against your target, as described in rollTackle(). Slightly misleading, skills aren't relevant here, this is a matter of what type of gloves (or whatever) is granting you the ability to tackle.

speed

How fast you sail through the air. Standard tackles are 1 speed, but gloves that throw you faster come at a cost: higher speeds make it more likely you'll be badly injured if you fly into a non-mob obstacle.

stamina_cost

How much stamina it takes to launch a tackle

tackle_ref

A wearkef to the throwdatum we're currently dealing with, if we need it

tackling

If we're currently tackling or are on cooldown. Actually, shit, if I use this to handle cooldowns, then getting thrown by something while on cooldown will count as a tackle..... whatever, i'll fix that next commit

Proc Details

checkObstacle

Check to see if we hit a table, and if so, make a big mess!

checkTackle

See if we can tackle or not. If we can, leap!

do_grab

Helper to do a grab and then adjust the grab state if necessary

negative_outcome

Our negative tackling outcomes.

+

We pass our tackle result here to determine the potential outcome of the tackle. Typically, this results in a very poor state for the tackler, and a mostly okay outcome for the tackled.

+

First, we determine severity by taking our roll result, multiplying it by -10, and then rolling within that value.

+

If our tackler is human, their armor will reduce the severity of the roll. We pass along any MELEE armor as a percentage reduction. +If they're not human (such as a carbon), we give them a small grace of a 10% reduction.

+

Finally, we figure out what effect our target receives and what our tackler receives:

+

neutral_outcome

Our neutral tackling outcome.

+

Our tackler and our target are staggered. The target longer than the tackler. However, the tackler stands up after this outcome. This is maybe less neutral than it appears, but the tackler initiated, so... +This outcome also occurs when our target has blocked the tackle in some way, preventing situations where someone tackling into a blocker is too severely punished as a result. Hence, this has its own proc.

positive_outcome

Our positive tackling outcomes.

+

We pass our tackle result here to determine the potential outcome of the tackle. Typically, this results in a very poor state for the tackled, and a positive outcome for the tackler.

+

First, we determine severity by taking our roll result, multiplying it by 10, and then rolling within that value.

+

If our target is human, their armor will reduce the severity of the roll. We pass along any MELEE armor as a percentage reduction. +If they're not human (such as a carbon), we give them a small grace of a 10% reduction.

+

Finally, we figure out what effect our target receives. Note that all positive outcomes inflict staggered, resulting in a much harder time escaping the potential grab:

+

registerTackle

Store the thrownthing datum for later use

rollTackle

This handles all of the modifiers for the actual carbon-on-carbon tackling, and gets its own proc because of how many there are (with plenty more in mind!)

+

The base roll is between (-3, 3), with negative numbers favoring the target, and positive numbers favoring the tackler. The target and the tackler are both assessed for +how easy they are to knock over, with clumsiness and dwarfiness being strong maluses for each, and gigantism giving a bonus for each. These numbers and ideas +are absolutely subject to change.

+

In addition, after subtracting the defender's mod and adding the attacker's mod to the roll, the component's base (skill) mod is added as well. Some sources of tackles +are better at taking people down, like the bruiser and rocket gloves, while the dolphin gloves have a malus in exchange for better mobility.

sack

sack() is called when you actually smack into something, assuming we're mid-tackle. First it deals with smacking into non-carbons, in two cases:

+ +

If it's a carbon we hit, we'll call rollTackle() which rolls a die and calculates modifiers for both the tackler and target, then gives us a number. Negatives favor the target, while positives favor the tackler. +Check rollTackle() for a more thorough explanation on the modifiers at play.

+

Then, we figure out what effect we want, and we get to work! Note that with standard gripper gloves and no modifiers, the range of rolls is (-3, 3). The results are as follows, based on what we rolled:

+ +

Finally, we return a bitflag to COMSIG_MOVABLE_IMPACT that forces the hitpush to false so that we don't knock them away.

splat

This is where we handle diving into dense atoms, generally with effects ranging from bad to REALLY bad. This works as a percentile roll that is modified in two steps as detailed below. The higher +the roll, the more severe the result.

+

Mod 1: Speed-

+ +

Mod 2: Misc- +-Flat modifiers, these take whatever you rolled and add/subtract to it, with the end result capped between the minimum from Mod 1 and 100. Note that since we can't roll higher than 100 to start with, +wearing a helmet should be enough to remove any chance of permanently paralyzing yourself and dramatically lessen knocking yourself unconscious, even with rocket gloves. Will expand on maybe

+ +

Effects: Below are the outcomes based off your roll, in order of increasing severity

+

splatWindow

A special case for splatting for handling windows

\ No newline at end of file diff --git a/datum/component/tactical.html b/datum/component/tactical.html new file mode 100644 index 0000000000000..80dae8a226b57 --- /dev/null +++ b/datum/component/tactical.html @@ -0,0 +1 @@ +/datum/component/tactical - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tactical

A simple component that replacess the user's appearance with that of the parent item when equipped.

Vars

allowed_slotsThe allowed slots for the effect.
current_slotA cached of where the item is currently equipped.

Procs

on_movedWe really want to make sure that, if things ever slightly breaks, that the alt appearance will be removed anyway.
tactical_updateChecks if a mob is holding us, and if so we will modify our appearance to properly match w/ the mob.

Var Details

allowed_slots

The allowed slots for the effect.

current_slot

A cached of where the item is currently equipped.

Proc Details

on_moved

We really want to make sure that, if things ever slightly breaks, that the alt appearance will be removed anyway.

tactical_update

Checks if a mob is holding us, and if so we will modify our appearance to properly match w/ the mob.

\ No newline at end of file diff --git a/datum/component/takes_reagent_appearance.html b/datum/component/takes_reagent_appearance.html new file mode 100644 index 0000000000000..8439a859dcf96 --- /dev/null +++ b/datum/component/takes_reagent_appearance.html @@ -0,0 +1,30 @@ +/datum/component/takes_reagent_appearance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

takes_reagent_appearance

"Takes reagent appearance" Component

+

Bit of a mouthful, but when applied to an item that can hold reagents (primarily reagent containers), +said item will take on an appearance based on the majority share reagent inside

+

This is more than just "changing the color a bit" or "applies an overlay", this is +an entire icon / icon state / name change, making it look like a different item entirely

+

This is done by cross-referencing the glass style datums. See /datum/glass_style for more information about that.

+

An example usage is bartender mixed drinks - each reagent gets its own fancy drink sprite

Vars

base_container_typeThe type to compare against the glass_style's required_container_type. The parent's type by default.
icon_pre_changeIcon file when attached to the item
icon_state_pre_changeIcon state when attached to the item
on_icon_changedOptional callback invoked when when the item's appearance is changed
on_icon_resetOptional callback invoked when our item has its appearance reverted to default

Procs

get_main_reagent_styleGets the correspinding style based on the parent's state and reagents within
on_update_appearanceSignal proc for COMSIG_ATOM_UPDATE_APPEARANCE +We hook into the update appearance proc to perform our own update based on our glass style +Preventing any further updates down the line on successes
update_descPerforms the description update.
update_iconPerforms the icon update.
update_namePerforms the name update.

Var Details

base_container_type

The type to compare against the glass_style's required_container_type. The parent's type by default.

icon_pre_change

Icon file when attached to the item

icon_state_pre_change

Icon state when attached to the item

on_icon_changed

Optional callback invoked when when the item's appearance is changed

on_icon_reset

Optional callback invoked when our item has its appearance reverted to default

Proc Details

get_main_reagent_style

Gets the correspinding style based on the parent's state and reagents within

+

on_update_appearance

Signal proc for COMSIG_ATOM_UPDATE_APPEARANCE +We hook into the update appearance proc to perform our own update based on our glass style +Preventing any further updates down the line on successes

update_desc

Performs the description update.

+

update_icon

Performs the icon update.

+

update_name

Performs the name update.

+
\ No newline at end of file diff --git a/datum/component/tameable.html b/datum/component/tameable.html new file mode 100644 index 0000000000000..5267b542f91e3 --- /dev/null +++ b/datum/component/tameable.html @@ -0,0 +1 @@ +/datum/component/tameable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tameable

This component lets you make specific mobs tameable by feeding them

Vars

bonus_tame_chanceAdded success chance after every failed tame attempt.
current_tame_chanceCurrent chance to tame on interaction
food_typesWhat the mob eats, typically used for taming or animal husbandry.
tame_chanceStarting success chance for taming.
uniqueIf true, this atom can only be domesticated by one person

Procs

already_friendsCheck if the passed mob is already considered one of our friends
on_tameRan once taming succeeds

Var Details

bonus_tame_chance

Added success chance after every failed tame attempt.

current_tame_chance

Current chance to tame on interaction

food_types

What the mob eats, typically used for taming or animal husbandry.

tame_chance

Starting success chance for taming.

unique

If true, this atom can only be domesticated by one person

Proc Details

already_friends

Check if the passed mob is already considered one of our friends

on_tame

Ran once taming succeeds

\ No newline at end of file diff --git a/datum/component/tattoo.html b/datum/component/tattoo.html new file mode 100644 index 0000000000000..d6a1111c9f307 --- /dev/null +++ b/datum/component/tattoo.html @@ -0,0 +1,4 @@ +/datum/component/tattoo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tattoo

engraved component!

+

component for walls that applies an engraved overlay and lets you examine it to read a story (+ art element yay) +new creations will get a high art value, cross round scrawlings will get a low one. +MUST be a component, though it doesn't look like it. SSPersistence demandeth

Vars

tattoo_descriptionthe generated story string

Var Details

tattoo_description

the generated story string

\ No newline at end of file diff --git a/datum/component/technointrovert.html b/datum/component/technointrovert.html new file mode 100644 index 0000000000000..a78dd3edb33a8 --- /dev/null +++ b/datum/component/technointrovert.html @@ -0,0 +1 @@ +/datum/component/technointrovert - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

technointrovert

You can't use machines unless they are in a whitelist

Vars

messageMessage presented when
whitelistTypecache of allowed machinery

Var Details

message

Message presented when

whitelist

Typecache of allowed machinery

\ No newline at end of file diff --git a/datum/component/technoshy.html b/datum/component/technoshy.html new file mode 100644 index 0000000000000..09d689b74d0d1 --- /dev/null +++ b/datum/component/technoshy.html @@ -0,0 +1 @@ +/datum/component/technoshy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

technoshy

You can't use machines when they've been touched within the last [unused_duration], unless it was by a mob in [whitelist]

Vars

messageMessage presented if the machine was used too recently
unused_durationHow long in deciseconds the machine can be untouched for
whitelistTypecache of allowed last_users

Var Details

message

Message presented if the machine was used too recently

unused_duration

How long in deciseconds the machine can be untouched for

whitelist

Typecache of allowed last_users

\ No newline at end of file diff --git a/datum/component/temporary_body.html b/datum/component/temporary_body.html new file mode 100644 index 0000000000000..2601540cfefd1 --- /dev/null +++ b/datum/component/temporary_body.html @@ -0,0 +1,8 @@ +/datum/component/temporary_body - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

temporary_body

##temporary_body

+

Used on living mobs when they are meant to be a 'temporary body' +Holds a reference to an old mind & body, to put them back in +once the body this component is attached to, is being deleted.

Vars

delete_on_deathReturns the mind if the parent dies by any means
old_body_refThe old body we will be put back into when parent is being deleted.
old_mind_refThe old mind we will be put back into when parent is being deleted.

Procs

on_parent_destroySends the mind of the temporary body back into their previous host +If the previous host is alive, we'll force them into the body. +Otherwise we'll let them hang out as a ghost still.

Var Details

delete_on_death

Returns the mind if the parent dies by any means

old_body_ref

The old body we will be put back into when parent is being deleted.

old_mind_ref

The old mind we will be put back into when parent is being deleted.

Proc Details

on_parent_destroy

Sends the mind of the temporary body back into their previous host +If the previous host is alive, we'll force them into the body. +Otherwise we'll let them hang out as a ghost still.

\ No newline at end of file diff --git a/datum/component/temporary_description.html b/datum/component/temporary_description.html new file mode 100644 index 0000000000000..306f2b3e82098 --- /dev/null +++ b/datum/component/temporary_description.html @@ -0,0 +1,2 @@ +/datum/component/temporary_description - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

temporary_description

Adds examine text to something which is removed when receiving specified signals, by default the revive signal. +The default settings are set up to be applied to a corpse to add some kind of immersive storytelling text which goes away upon revival.

Vars

description_textWhat do we display on examine?
naive_descriptionWhat do we display if examined by a clown? Usually only applied if this is put on a corpse, but go nuts.
removal_signalsWhen are we removed?

Var Details

description_text

What do we display on examine?

naive_description

What do we display if examined by a clown? Usually only applied if this is put on a corpse, but go nuts.

removal_signals

When are we removed?

\ No newline at end of file diff --git a/datum/component/temporary_glass_shatterer.html b/datum/component/temporary_glass_shatterer.html new file mode 100644 index 0000000000000..9c24cc1d87631 --- /dev/null +++ b/datum/component/temporary_glass_shatterer.html @@ -0,0 +1 @@ +/datum/component/temporary_glass_shatterer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

temporary_glass_shatterer

Procs

InitializeComponent to make an item temporarily break glass

Proc Details

Initialize

Component to make an item temporarily break glass

\ No newline at end of file diff --git a/datum/component/temporary_pollution_emission.html b/datum/component/temporary_pollution_emission.html new file mode 100644 index 0000000000000..35590c79337ec --- /dev/null +++ b/datum/component/temporary_pollution_emission.html @@ -0,0 +1 @@ +/datum/component/temporary_pollution_emission - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

temporary_pollution_emission

Vars

expiry_timeWhen do we expire
pollutant_amountThe amount we emitt every process
pollutant_typeThe type of the pollutant we're emitting

Var Details

expiry_time

When do we expire

pollutant_amount

The amount we emitt every process

pollutant_type

The type of the pollutant we're emitting

\ No newline at end of file diff --git a/datum/component/temporary_size.html b/datum/component/temporary_size.html new file mode 100644 index 0000000000000..6de1dfd2d0f76 --- /dev/null +++ b/datum/component/temporary_size.html @@ -0,0 +1 @@ +/datum/component/temporary_size - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

temporary_size

Component that temporarily applies a size to a human.

Vars

allowed_areasList containing the areas that the size change works in. If this is empty, this will work everywhere.
original_sizeWhat is the stored size of the mob using this?
target_sizeWhat size are we changing the parent mob to?

Procs

apply_sizeAdjusts the sprite size of the parent mob based off size_to_apply.
check_areaChecks if we need to revert our size when entering a different area.

Var Details

allowed_areas

List containing the areas that the size change works in. If this is empty, this will work everywhere.

original_size

What is the stored size of the mob using this?

target_size

What size are we changing the parent mob to?

Proc Details

apply_size

Adjusts the sprite size of the parent mob based off size_to_apply.

check_area

Checks if we need to revert our size when entering a different area.

\ No newline at end of file diff --git a/datum/component/tether.html b/datum/component/tether.html new file mode 100644 index 0000000000000..c0c2ca2e0853d --- /dev/null +++ b/datum/component/tether.html @@ -0,0 +1 @@ +/datum/component/tether - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tether

Creates a tether between two objects that limits movement range. Tether requires LOS and can be adjusted by left/right clicking its

Vars

cur_distCurrent extension distance
embed_targetEmbedded item that the tether "should" originate from
max_distMaximum (and initial) distance that this tether can be adjusted to
tether_beamBeam effect
tether_nameWhat the tether is going to be called
tether_targetOther side of the tether

Var Details

cur_dist

Current extension distance

embed_target

Embedded item that the tether "should" originate from

max_dist

Maximum (and initial) distance that this tether can be adjusted to

tether_beam

Beam effect

tether_name

What the tether is going to be called

tether_target

Other side of the tether

\ No newline at end of file diff --git a/datum/component/thermite.html b/datum/component/thermite.html new file mode 100644 index 0000000000000..b4009179fbd78 --- /dev/null +++ b/datum/component/thermite.html @@ -0,0 +1,22 @@ +/datum/component/thermite - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

thermite

Vars

amountAmount of thermite on parent
blacklistBlacklist of turfs that cannot have thermite on it
burn_callbackCallback related to burning, stored so the timer can be easily reset without losing the user
burn_requireAmount of thermite required to burn through parent
burn_timerThe timer for burning parent, calls burn_callback when done
default_thermite_overlayDefault thermite overlay, do not touch
fakefireThe thermite fire overlay
immunelistList of turfs that are immune to thermite
resistlistList of turfs that take extra thermite to burn through
thermite_overlayThe thermite overlay

Procs

attackby_reactattackby reaction, ignites the thermite if its a flame creating object
burn_parentUsed to actually melt parent
clean_reactWash reaction, used to clean off thermite from parent
on_attack_handHandles searing the hand of anyone who tries to touch parent without protection, while burning
on_examineAlerts the user that this turf is, in fact, covered with thermite.
on_fire_actfire_act reaction, has to be the correct temperature
on_update_overlaysUsed to maintain the thermite overlay on the parent /turf.
parent_qdeletingSignal handler for COMSIG_QDELETING, necessary because turfs can be weird with qdel()
thermite_meltUsed to begin the thermite burning process

Var Details

amount

Amount of thermite on parent

blacklist

Blacklist of turfs that cannot have thermite on it

burn_callback

Callback related to burning, stored so the timer can be easily reset without losing the user

burn_require

Amount of thermite required to burn through parent

burn_timer

The timer for burning parent, calls burn_callback when done

default_thermite_overlay

Default thermite overlay, do not touch

fakefire

The thermite fire overlay

immunelist

List of turfs that are immune to thermite

resistlist

List of turfs that take extra thermite to burn through

thermite_overlay

The thermite overlay

Proc Details

attackby_react

attackby reaction, ignites the thermite if its a flame creating object

+

Arguments:

+

burn_parent

Used to actually melt parent

+

Arguments:

+

clean_react

Wash reaction, used to clean off thermite from parent

on_attack_hand

Handles searing the hand of anyone who tries to touch parent without protection, while burning

on_examine

Alerts the user that this turf is, in fact, covered with thermite.

on_fire_act

fire_act reaction, has to be the correct temperature

+

Arguments:

+

on_update_overlays

Used to maintain the thermite overlay on the parent /turf.

parent_qdeleting

Signal handler for COMSIG_QDELETING, necessary because turfs can be weird with qdel()

thermite_melt

Used to begin the thermite burning process

+

Arguments:

+
\ No newline at end of file diff --git a/datum/component/throwbonus_on_windup.html b/datum/component/throwbonus_on_windup.html new file mode 100644 index 0000000000000..610d9c20bb8f2 --- /dev/null +++ b/datum/component/throwbonus_on_windup.html @@ -0,0 +1 @@ +/datum/component/throwbonus_on_windup - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

throwbonus_on_windup

Vars

apply_bonus_callbackany additional behavior we should look for before applying the bonus
effect_on_successeffect we play after successfully damaging the enemy with a bonus
holderthe player currently winding up their throw
maximum_bonusthe maximum windup bonus
our_barthe bar relaying feedback to the player
pass_maximum_callbackadditional behavior if we exceed the maximum bonus
sound_on_successsound we play after successfully damaging the enemy with a bonus
throw_texttext we display when we start winding up
throwforce_bonusthe current bonus we are at
windup_increment_speedhow fast we increase the wind up counter on process

Var Details

apply_bonus_callback

any additional behavior we should look for before applying the bonus

effect_on_success

effect we play after successfully damaging the enemy with a bonus

holder

the player currently winding up their throw

maximum_bonus

the maximum windup bonus

our_bar

the bar relaying feedback to the player

pass_maximum_callback

additional behavior if we exceed the maximum bonus

sound_on_success

sound we play after successfully damaging the enemy with a bonus

throw_text

text we display when we start winding up

throwforce_bonus

the current bonus we are at

windup_increment_speed

how fast we increase the wind up counter on process

\ No newline at end of file diff --git a/datum/component/tippable.html b/datum/component/tippable.html new file mode 100644 index 0000000000000..77ab658eb807a --- /dev/null +++ b/datum/component/tippable.html @@ -0,0 +1,31 @@ +/datum/component/tippable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tippable

Tippable component. For making mobs able to be tipped, like cows and medibots.

Vars

is_tippedWhether the mob is currently tipped.
post_tipped_callbackCallback to additional behavior after successfully tipping the mob.
post_untipped_callbackCallback to additional behavior after being untipped.
pre_tipped_callbackCallback to additional behavior before being tipped (on try_tip). Return anything from this callback to cancel the tip.
roleplay_callbackCallback to any extra roleplay behaviour
roleplay_emotesList of emotes that will half their untip time
roleplay_friendlyShould we accept roleplay?
roleplayedHave we roleplayed?
self_right_timeTime it takes for the mob to right itself. Can be 0 for instant self-righting, or null, to never self-right.
self_untip_timerThe timer given until they untip themselves
tip_timeTime it takes to tip the mob. Can be 0, for instant tipping.
untip_timeTime it takes to untip the mob. Can also be 0, for instant untip.

Procs

accept_roleplayAccepts "roleplay" in the form of emotes, which removes a quarter of the remaining time left to untip ourself.
do_tipActually tip over the mob, setting it to tipped. +Also invoking any callbacks we have, with the tipper as the argument, +and set a timer to right our self-right our tipped mob if we can.
do_untipActually untip over the mob, setting it to untipped. +Also invoke any untip callbacks we have, with the untipper as the argument.
interact_with_tippableAttempt to interact with [source], either tipping it or helping it up.
right_selfProc called after a timer to have a tipped mob un-tip itself after a certain length of time. +Sets our mob to untipped and invokes the untipped callback without any arguments if we have one.
try_tipTry to tip over [tipped_mob]. +If the mob is dead, or optional callback returns a value, or our do-after fails, we don't tip the mob. +Otherwise, upon completing of the do_after, tip over the mob.
try_untipTry to untip a mob that has been tipped. +After a do-after is completed, we untip the mob.

Var Details

is_tipped

Whether the mob is currently tipped.

post_tipped_callback

Callback to additional behavior after successfully tipping the mob.

post_untipped_callback

Callback to additional behavior after being untipped.

pre_tipped_callback

Callback to additional behavior before being tipped (on try_tip). Return anything from this callback to cancel the tip.

roleplay_callback

Callback to any extra roleplay behaviour

roleplay_emotes

List of emotes that will half their untip time

roleplay_friendly

Should we accept roleplay?

roleplayed

Have we roleplayed?

self_right_time

Time it takes for the mob to right itself. Can be 0 for instant self-righting, or null, to never self-right.

self_untip_timer

The timer given until they untip themselves

tip_time

Time it takes to tip the mob. Can be 0, for instant tipping.

untip_time

Time it takes to untip the mob. Can also be 0, for instant untip.

Proc Details

accept_roleplay

Accepts "roleplay" in the form of emotes, which removes a quarter of the remaining time left to untip ourself.

+

Arguments:

+

do_tip

Actually tip over the mob, setting it to tipped. +Also invoking any callbacks we have, with the tipper as the argument, +and set a timer to right our self-right our tipped mob if we can.

+

tipped_mob - the mob who was tipped +tipper - the mob who tipped the tipped_mob

do_untip

Actually untip over the mob, setting it to untipped. +Also invoke any untip callbacks we have, with the untipper as the argument.

+

tipped_mob - the mob who was tipped +tipper - the mob who tipped the tipped_mob

interact_with_tippable

Attempt to interact with [source], either tipping it or helping it up.

+

source - the mob being tipped over +user - the mob interacting with source

right_self

Proc called after a timer to have a tipped mob un-tip itself after a certain length of time. +Sets our mob to untipped and invokes the untipped callback without any arguments if we have one.

+

tipped_mob - the mob who was tipped, and is freeing itself

try_tip

Try to tip over [tipped_mob]. +If the mob is dead, or optional callback returns a value, or our do-after fails, we don't tip the mob. +Otherwise, upon completing of the do_after, tip over the mob.

+

tipped_mob - the mob being tipped over +tipper - the mob tipping the tipped_mob

try_untip

Try to untip a mob that has been tipped. +After a do-after is completed, we untip the mob.

+

tipped_mob - the mob who is tipped +untipper - the mob who is untipping the tipped_mob

\ No newline at end of file diff --git a/datum/component/toggle_attached_clothing.html b/datum/component/toggle_attached_clothing.html new file mode 100644 index 0000000000000..981e0a4f70c88 --- /dev/null +++ b/datum/component/toggle_attached_clothing.html @@ -0,0 +1,2 @@ +/datum/component/toggle_attached_clothing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

toggle_attached_clothing

Component which allows clothing to deploy a different kind of clothing onto you. +The simplest example is hooded suits deploying hoods onto your head.

Vars

action_nameName of toggle action
currently_deployedCurrent state of our deployable equipment
deployableInstance of the item we're creating
deployable_typeTypepath of what we're creating
destroy_on_removalIf true, we delete our deployable on toggle rather than putting it in nullspace
down_overlay_state_suffixIcon state for overlay to display over the parent item while deployable item is not deployed
equipped_slotWhich slot this item equips into
on_createdOptional callback triggered when we create our deployable equipment
on_deployedOptional callback triggered when we have deployed our equipment
on_removedOptional callback triggered before we hide our equipment, before as we may delete it afterwards
parent_icon_state_suffixWhat should be added to the end of the parent icon state when equipment is deployed? Set to "" for no change
pre_creation_checkOptional callback triggered before deploying, return TRUE to continue or FALSE to cancel
toggle_actionAction used to toggle deployment
undeployed_overlayOverlay to display over the parent item while deployable item is not deployed

Procs

create_deployableCreate our gear, returns true if we actually made anything
on_action_slot_checkedCalled when action attempts to check what slot the item is worn in
on_checked_overlaysApply an overlay while the item is not deployed
on_deployed_destroyedUndeploy gear if it is deleted
on_deployed_droppedUndeploy gear if you drop it
on_deployed_equippedUndeploy gear if it moves slots somehow
on_parent_equippedUndeploy gear if it moves slots somehow
on_parent_equipped_outfitDisplay deployed if worn in an outfit
on_toggle_pressedToggle deployable when the UI button is clicked
remove_deployableRemoves our deployed equipment from the wearer
toggle_deployableDeploys gear if it is hidden, hides it if it is deployed
unequip_deployableRemoves an equipped deployable atom upon its retraction or destruction

Var Details

action_name

Name of toggle action

currently_deployed

Current state of our deployable equipment

deployable

Instance of the item we're creating

deployable_type

Typepath of what we're creating

destroy_on_removal

If true, we delete our deployable on toggle rather than putting it in nullspace

down_overlay_state_suffix

Icon state for overlay to display over the parent item while deployable item is not deployed

equipped_slot

Which slot this item equips into

on_created

Optional callback triggered when we create our deployable equipment

on_deployed

Optional callback triggered when we have deployed our equipment

on_removed

Optional callback triggered before we hide our equipment, before as we may delete it afterwards

parent_icon_state_suffix

What should be added to the end of the parent icon state when equipment is deployed? Set to "" for no change

pre_creation_check

Optional callback triggered before deploying, return TRUE to continue or FALSE to cancel

toggle_action

Action used to toggle deployment

undeployed_overlay

Overlay to display over the parent item while deployable item is not deployed

Proc Details

create_deployable

Create our gear, returns true if we actually made anything

on_action_slot_checked

Called when action attempts to check what slot the item is worn in

on_checked_overlays

Apply an overlay while the item is not deployed

on_deployed_destroyed

Undeploy gear if it is deleted

on_deployed_dropped

Undeploy gear if you drop it

on_deployed_equipped

Undeploy gear if it moves slots somehow

on_parent_equipped

Undeploy gear if it moves slots somehow

on_parent_equipped_outfit

Display deployed if worn in an outfit

on_toggle_pressed

Toggle deployable when the UI button is clicked

remove_deployable

Removes our deployed equipment from the wearer

toggle_deployable

Deploys gear if it is hidden, hides it if it is deployed

unequip_deployable

Removes an equipped deployable atom upon its retraction or destruction

\ No newline at end of file diff --git a/datum/component/toggle_icon.html b/datum/component/toggle_icon.html new file mode 100644 index 0000000000000..693fc8e5dadf2 --- /dev/null +++ b/datum/component/toggle_icon.html @@ -0,0 +1 @@ +/datum/component/toggle_icon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

toggle_icon

Vars

base_icon_stateThe base icon state we do operations on.
toggle_nounThe noun of what was "toggled" displayed to the user. EX: "Toggled the item's [buttons]"
toggledWhether the icon is toggled

Var Details

base_icon_state

The base icon state we do operations on.

toggle_noun

The noun of what was "toggled" displayed to the user. EX: "Toggled the item's [buttons]"

toggled

Whether the icon is toggled

\ No newline at end of file diff --git a/datum/component/torn_wall.html b/datum/component/torn_wall.html new file mode 100644 index 0000000000000..2114dec5ffd4f --- /dev/null +++ b/datum/component/torn_wall.html @@ -0,0 +1,4 @@ +/datum/component/torn_wall - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

torn_wall

Component applied to a wall to progressively destroy it. +If component is applied to something which already has it, stage increases. +Wall is destroyed on third application. +Can be fixed using a welder

Procs

apply_visualsPlay a fun animation and make our wall look damaged
increase_stageMake the effect more dramatic
on_examinedGive them a hint
on_turf_changedIf the wall becomes any other turf, delete us. Transforming into a different works fine as a fix.
on_update_overlaysShow a little crack on here
on_weldedFix it up on weld
try_repairFix us up

Proc Details

apply_visuals

Play a fun animation and make our wall look damaged

increase_stage

Make the effect more dramatic

on_examined

Give them a hint

on_turf_changed

If the wall becomes any other turf, delete us. Transforming into a different works fine as a fix.

on_update_overlays

Show a little crack on here

on_welded

Fix it up on weld

try_repair

Fix us up

\ No newline at end of file diff --git a/datum/component/trader.html b/datum/component/trader.html new file mode 100644 index 0000000000000..25efe080dc81a --- /dev/null +++ b/datum/component/trader.html @@ -0,0 +1,63 @@ +/datum/component/trader - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Trader NPC Component

Manages the barks and the stocks of the traders +Also manages the interactive radial menu

Vars

productsFormat; list(TYPEPATH = list(PRICE, QUANTITY)) +Associated list of items the NPC sells with how much they cost and the quantity available before a restock +This list is filled by Initialize(), if you want to change the starting products, modify initial_products()
radial_icons_cacheContains images of all radial icons
trader_dataContains information of a specific trader
wanted_itemsA list of wanted items that the trader would wish to buy, each typepath has a assigned value, quantity and additional flavor text

Procs

apply_sell_price_modsModifies the 'base' price of a item based on certain variables
buy_itemGenerates a radial of the items the NPC sells and lets the user try to buy one +Arguments:
can_tradeReturns if the trader is conscious and its combat mode is disabled.
check_menuChecks if the customer is ok to use the radial
discussTalk about what items are being sold/wanted by the trader and in what quantity or lore
exchange_sold_itemsHandles modifying/deleting the items to ensure that a proper amount is converted into cash; put into its own proc to make the children of this not override a 30+ line sell_item()
generate_cashCreates an item equal to the value set by the proc and puts it in the user's hands if possible +Arguments:
on_attack_handIf our trader is alive, and the customer left clicks them with an empty hand without combat mode
open_npc_optionsGenerates a radial of the initial radials of the NPC +Called via asynch, due to the sleep caused by show_radial_menu +Arguments:
renew_item_demandsSets quantity of all wanted_items to initial(quanity); this proc is currently called during initialize
restock_productsSets quantity of all products to initial(quanity); this proc is currently called during initialize
sell_itemChecks if an item is in the list of wanted items and if it is after a Yes/No radial returns generate_cash with the value of the item for the NPC +Arguments:
spend_buyer_offhand_moneyCalculates the value of money in the hand of the buyer and spends it if it's sufficient
trader_buys_whatDisplays to the customer what the trader is willing to buy and how much until a restock happens
trader_sells_whatDisplays to the customer what the trader is selling and how much is in stock
try_sellTries to call sell_item on one of the customer's held items, if fail gives a chat message

Var Details

products

Format; list(TYPEPATH = list(PRICE, QUANTITY)) +Associated list of items the NPC sells with how much they cost and the quantity available before a restock +This list is filled by Initialize(), if you want to change the starting products, modify initial_products()

radial_icons_cache

Contains images of all radial icons

trader_data

Contains information of a specific trader

wanted_items

A list of wanted items that the trader would wish to buy, each typepath has a assigned value, quantity and additional flavor text

+

CHILDREN OF TYPEPATHS INCLUDED IN WANTED_ITEMS WILL BE TREATED AS THE PARENT IF NO ENTRY EXISTS FOR THE CHILDREN

+

As an additional note; if you include multiple children of a typepath; the typepath with the most children should be placed after all other typepaths +Bad; list(/obj/item/milk = list(100, 1, ""), /obj/item/milk/small = list(50, 2, "")) +Good; list(/obj/item/milk/small = list(50, 2, ""), /obj/item/milk = list(100, 1, "")) +This is mainly because sell_item() uses a istype(item_being_sold, item_in_entry) to determine what parent should the child be automatically considered as +If /obj/item/milk/small/spooky was being sold; /obj/item/milk/small would be the first to check against rather than /obj/item/milk

+

Format; list(TYPEPATH = list(PRICE, QUANTITY, ADDITIONAL_DESCRIPTION)) +Associated list of items able to be sold to the NPC with the money given for them. +The price given should be the "base" price; any price manipulation based on variables should be done with apply_sell_price_mods() +ADDITIONAL_DESCRIPTION is any additional text added to explain how the variables of the item effect the price; if it's stack based, its final price depends how much is in the stack +EX; /obj/item/stack/sheet/mineral/diamond = list(500, INFINITY, ", per 100 cm3 sheet of diamond") +This list is filled by Initialize(), if you want to change the starting wanted items, modify initial_wanteds()

Proc Details

apply_sell_price_mods

Modifies the 'base' price of a item based on certain variables

+

Arguments:

+

buy_item

Generates a radial of the items the NPC sells and lets the user try to buy one +Arguments:

+

can_trade

Returns if the trader is conscious and its combat mode is disabled.

check_menu

Checks if the customer is ok to use the radial

+

Checks if the customer is not a mob or is incapacitated or not adjacent to the source of the radial, in those cases returns FALSE, otherwise returns TRUE +Arguments:

+

discuss

Talk about what items are being sold/wanted by the trader and in what quantity or lore

exchange_sold_items

Handles modifying/deleting the items to ensure that a proper amount is converted into cash; put into its own proc to make the children of this not override a 30+ line sell_item()

+

Arguments:

+

generate_cash

Creates an item equal to the value set by the proc and puts it in the user's hands if possible +Arguments:

+

on_attack_hand

If our trader is alive, and the customer left clicks them with an empty hand without combat mode

open_npc_options

Generates a radial of the initial radials of the NPC +Called via asynch, due to the sleep caused by show_radial_menu +Arguments:

+

renew_item_demands

Sets quantity of all wanted_items to initial(quanity); this proc is currently called during initialize

restock_products

Sets quantity of all products to initial(quanity); this proc is currently called during initialize

sell_item

Checks if an item is in the list of wanted items and if it is after a Yes/No radial returns generate_cash with the value of the item for the NPC +Arguments:

+

spend_buyer_offhand_money

Calculates the value of money in the hand of the buyer and spends it if it's sufficient

trader_buys_what

Displays to the customer what the trader is willing to buy and how much until a restock happens

trader_sells_what

Displays to the customer what the trader is selling and how much is in stock

try_sell

Tries to call sell_item on one of the customer's held items, if fail gives a chat message

+

Gets both items in the customer's hands, and then tries to call sell_item on them, if both fail, he gives a chat message +Arguments:

+
\ No newline at end of file diff --git a/datum/component/traitor_objective_limit_per_time.html b/datum/component/traitor_objective_limit_per_time.html new file mode 100644 index 0000000000000..a461f6c1acfd5 --- /dev/null +++ b/datum/component/traitor_objective_limit_per_time.html @@ -0,0 +1 @@ +/datum/component/traitor_objective_limit_per_time - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

traitor_objective_limit_per_time

Helper component to track events on

Vars

maximum_objectivesThe maximum amount of objectives that can be active or recently active at one time
time_periodThe maximum time that an objective will be considered for. Set to -1 to accept any time.
typepathThe typepath which we check for

Var Details

maximum_objectives

The maximum amount of objectives that can be active or recently active at one time

time_period

The maximum time that an objective will be considered for. Set to -1 to accept any time.

typepath

The typepath which we check for

\ No newline at end of file diff --git a/datum/component/traitor_objective_mind_tracker.html b/datum/component/traitor_objective_mind_tracker.html new file mode 100644 index 0000000000000..8c23b08fd0cb5 --- /dev/null +++ b/datum/component/traitor_objective_mind_tracker.html @@ -0,0 +1 @@ +/datum/component/traitor_objective_mind_tracker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

traitor_objective_mind_tracker

Helper component to track events on

Vars

current_registered_targetCurrent registered target
signalsSignals to listen out for mapped to procs to call
targetThe target to track

Var Details

current_registered_target

Current registered target

signals

Signals to listen out for mapped to procs to call

target

The target to track

\ No newline at end of file diff --git a/datum/component/traitor_objective_register.html b/datum/component/traitor_objective_register.html new file mode 100644 index 0000000000000..ddec6794a7746 --- /dev/null +++ b/datum/component/traitor_objective_register.html @@ -0,0 +1,2 @@ +/datum/component/traitor_objective_register - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

traitor_objective_register

Helper component that registers signals on an object +This is not necessary to use and gives little control over the conditions

Vars

fail_signalsSignals to listen out for to automatically fail the objective.
penaltyWhether failing has a penalty
succeed_signalsSignals to listen out for to automatically succeed the objective
targetThe target to apply the succeed/fail signals onto

Var Details

fail_signals

Signals to listen out for to automatically fail the objective.

penalty

Whether failing has a penalty

succeed_signals

Signals to listen out for to automatically succeed the objective

target

The target to apply the succeed/fail signals onto

\ No newline at end of file diff --git a/datum/component/transforming.html b/datum/component/transforming.html new file mode 100644 index 0000000000000..d69c041a996ef --- /dev/null +++ b/datum/component/transforming.html @@ -0,0 +1 @@ +/datum/component/transforming - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

transforming

Vars

activeWhether the weapon is transformed
attack_verb_continuous_offList of the original continuous attack verbs the item has.
attack_verb_continuous_onList of continuous attack verbs used when the weapon is enabled
attack_verb_simple_offList of the original simple attack verbs the item has.
attack_verb_simple_onList of simple attack verbs used when the weapon is enabled
clumsy_checkWhether clumsy people need to succeed an RNG check to turn it on without hurting themselves
clumsy_damageAmount of damage to deal to clumsy people
force_onForce of the weapon when active
hitsound_onHitsound played when active
inhand_icon_changeDictate whether we change inhands or not
sharpened_bonusIf we get sharpened with a whetstone, save the bonus here for later use if we un/redeploy
sharpness_onThe sharpness of the weapon when active
throw_speed_onThrow speed of the weapon when active
throwforce_onThrowforce of the weapon when active
transform_cooldownCooldown in between transforms
transform_cooldown_timeCooldown on transforming this item back and forth
w_class_onWeight class of the weapon when active

Var Details

active

Whether the weapon is transformed

attack_verb_continuous_off

List of the original continuous attack verbs the item has.

attack_verb_continuous_on

List of continuous attack verbs used when the weapon is enabled

attack_verb_simple_off

List of the original simple attack verbs the item has.

attack_verb_simple_on

List of simple attack verbs used when the weapon is enabled

clumsy_check

Whether clumsy people need to succeed an RNG check to turn it on without hurting themselves

clumsy_damage

Amount of damage to deal to clumsy people

force_on

Force of the weapon when active

hitsound_on

Hitsound played when active

inhand_icon_change

Dictate whether we change inhands or not

sharpened_bonus

If we get sharpened with a whetstone, save the bonus here for later use if we un/redeploy

sharpness_on

The sharpness of the weapon when active

throw_speed_on

Throw speed of the weapon when active

throwforce_on

Throwforce of the weapon when active

transform_cooldown

Cooldown in between transforms

transform_cooldown_time

Cooldown on transforming this item back and forth

w_class_on

Weight class of the weapon when active

\ No newline at end of file diff --git a/datum/component/trapdoor.html b/datum/component/trapdoor.html new file mode 100644 index 0000000000000..596c3413c1690 --- /dev/null +++ b/datum/component/trapdoor.html @@ -0,0 +1,11 @@ +/datum/component/trapdoor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

trapdoor

trapdoor component!

+

component attached to floors to turn them into trapdoors, a constructable trap that when signalled drops people to the level below. +assembly code at the bottom of this file

Vars

assemblyassembly tied to this trapdoor
conspicuousis this trapdoor "conspicuous" (ie. it gets examine text and overlay added)
trapdoor_overlayoverlay that makes trapdoors more obvious
trapdoor_turf_pathpath of the turf this should change into when the assembly is pulsed. needed for openspace trapdoors knowing what to turn back into

Procs

apply_decalsmall proc that takes passed arguments and drops it into a new element
carry_over_trapdoor
on_examine
on_link_requestedcalled by linking remotes to tie an assembly to the trapdoor
openspace_trapdoor_setupinitializing as an opened trapdoor, we need to trust that we were given the data by a closed trapdoor
reapply_all_decals
tile_trapdoor_setupinitializing as a closed trapdoor, we need to take data from the tile we're on to give it to the open state to store
toggle_trapdoorsignal called by our assembly being pulsed
try_closing
try_opening
turf_changed_presignal called by turf changing

Var Details

assembly

assembly tied to this trapdoor

conspicuous

is this trapdoor "conspicuous" (ie. it gets examine text and overlay added)

trapdoor_overlay

overlay that makes trapdoors more obvious

trapdoor_turf_path

path of the turf this should change into when the assembly is pulsed. needed for openspace trapdoors knowing what to turn back into

Proc Details

apply_decal

small proc that takes passed arguments and drops it into a new element

carry_over_trapdoor

carry_over_trapdoor

+

applies the trapdoor to the new turf (created by the last trapdoor) +apparently callbacks with arguments on invoke and the callback itself have the callback args go first. interesting!

on_examine

on_examine

+

examine message for conspicuous trapdoors that makes it obvious

called by linking remotes to tie an assembly to the trapdoor

openspace_trapdoor_setup

initializing as an opened trapdoor, we need to trust that we were given the data by a closed trapdoor

reapply_all_decals

reapply_all_decals

+

changing turfs does not bring over decals, so we must perform a little bit of element reapplication.

tile_trapdoor_setup

initializing as a closed trapdoor, we need to take data from the tile we're on to give it to the open state to store

toggle_trapdoor

signal called by our assembly being pulsed

try_closing

try_closing

+

small proc for closing the turf back into what it should be +trapdoor can be blocked by building things on the openspace turf

try_opening

try_opening

+

small proc for opening the turf into openspace +there are no checks for opening a trapdoor, but closed has some

turf_changed_pre

signal called by turf changing

\ No newline at end of file diff --git a/datum/component/tree_climber.html b/datum/component/tree_climber.html new file mode 100644 index 0000000000000..33a2ca52b91cc --- /dev/null +++ b/datum/component/tree_climber.html @@ -0,0 +1 @@ +/datum/component/tree_climber - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tree_climber

Vars

climbing_distancethe distance to climb up and down
current_treethe tree we are on

Var Details

climbing_distance

the distance to climb up and down

current_tree

the tree we are on

\ No newline at end of file diff --git a/datum/component/two_hand_reach.html b/datum/component/two_hand_reach.html new file mode 100644 index 0000000000000..35e28fc748e26 --- /dev/null +++ b/datum/component/two_hand_reach.html @@ -0,0 +1 @@ +/datum/component/two_hand_reach - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

two_hand_reach

Vars

unwielded_reachthe reach of the item before being two-handed
wielded_reachthe reach of the item after being two-handed

Var Details

unwielded_reach

the reach of the item before being two-handed

wielded_reach

the reach of the item after being two-handed

\ No newline at end of file diff --git a/datum/component/two_handed.html b/datum/component/two_handed.html new file mode 100644 index 0000000000000..c60ca70304730 --- /dev/null +++ b/datum/component/two_handed.html @@ -0,0 +1,25 @@ +/datum/component/two_handed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

two_handed

Two Handed Component

+

When applied to an item it will make it two handed +Only one of the component can exist on an item.

Vars

attacksoundBoolean whether to play sound on attack, if wielded
force_multiplierThe multiplier applied to force when wielded, does not work with force_wielded, and force_unwielded
force_unwieldedThe force of the item when unweilded
force_wieldedThe force of the item when weilded
icon_wieldedThe icon that will be used when wielded
offhand_itemReference to the offhand created for the item
require_twohandsBoolean on whether it has to be held in both hands
sharpened_increaseThe amount of increase recived from sharpening the item
unwield_callbackA callback on the parent to be called when the item is unwielded
unwieldsoundBoolean whether to play sound when unwielded
wield_callbackA callback on the parent to be called when the item is wielded
wieldedAre we holding the two handed item properly
wieldsoundBoolean whether to play sound when wielded

Procs

InitializeTwo Handed component
on_attackon_attack triggers on attack with the parent item
on_attack_selfTriggered on attack self of the item containing the component
on_destroyTriggered on destroy of the component's offhand
on_dropTriggered on drop of item containing the component
on_equipTriggered on equip of the item containing the component
on_movedon_moved Triggers on item moved
on_sharpenon_sharpen Triggers on usage of a sharpening stone on the item
on_swapping_handson_swap_hands Triggers on swapping hands, blocks swap if the other hand is busy
on_update_iconon_update_icon triggers on call to update parent items icon
unwieldUnwield the two handed item
wieldWield the two handed item in both hands

Var Details

attacksound

Boolean whether to play sound on attack, if wielded

force_multiplier

The multiplier applied to force when wielded, does not work with force_wielded, and force_unwielded

force_unwielded

The force of the item when unweilded

force_wielded

The force of the item when weilded

icon_wielded

The icon that will be used when wielded

offhand_item

Reference to the offhand created for the item

require_twohands

Boolean on whether it has to be held in both hands

sharpened_increase

The amount of increase recived from sharpening the item

unwield_callback

A callback on the parent to be called when the item is unwielded

unwieldsound

Boolean whether to play sound when unwielded

wield_callback

A callback on the parent to be called when the item is wielded

wielded

Are we holding the two handed item properly

wieldsound

Boolean whether to play sound when wielded

Proc Details

Initialize

Two Handed component

+

vars:

+

on_attack

on_attack triggers on attack with the parent item

on_attack_self

Triggered on attack self of the item containing the component

on_destroy

Triggered on destroy of the component's offhand

on_drop

Triggered on drop of item containing the component

on_equip

Triggered on equip of the item containing the component

on_moved

on_moved Triggers on item moved

on_sharpen

on_sharpen Triggers on usage of a sharpening stone on the item

on_swapping_hands

on_swap_hands Triggers on swapping hands, blocks swap if the other hand is busy

on_update_icon

on_update_icon triggers on call to update parent items icon

+

Updates the icon using icon_wielded if set

unwield

Unwield the two handed item

+

vars:

+

wield

Wield the two handed item in both hands

+

vars:

+
\ No newline at end of file diff --git a/datum/component/udder.html b/datum/component/udder.html new file mode 100644 index 0000000000000..27ac593d7f5ea --- /dev/null +++ b/datum/component/udder.html @@ -0,0 +1,2 @@ +/datum/component/udder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

udder

Udder component; for farm animals to generate milk.

+

Used for cows, goats, gutlunches. neat!

Vars

on_milk_callbackoptional proc to callback to when the udder is milked
udderabstract item for managing reagents (further down in this file)

Procs

on_attackbysignal called on parent being attacked with an item
on_examinesignal called on parent being examined

Var Details

on_milk_callback

optional proc to callback to when the udder is milked

udder

abstract item for managing reagents (further down in this file)

Proc Details

on_attackby

signal called on parent being attacked with an item

on_examine

signal called on parent being examined

\ No newline at end of file diff --git a/datum/component/unobserved_actor.html b/datum/component/unobserved_actor.html new file mode 100644 index 0000000000000..e2a2f95124559 --- /dev/null +++ b/datum/component/unobserved_actor.html @@ -0,0 +1,4 @@ +/datum/component/unobserved_actor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

unobserved_actor

Unobserved Actor

+

Blocks certain actions while this mob is being observed by something.

Vars

affected_actionsList of action types which cannot be used while observed. Applies to all actions if not set, and does nothing if NO_OBSERVED_ACTIONS flag isnt present
message_cooldownCooldown to prevent message spam when holding a move button
unobserved_flagsDictates what behaviour you're blocked from while observed

Procs

can_be_seenReturns true if you can be seen by something. +Not a very robust algorithm but it'll work in the majority of situations.
check_if_seenChecks if the mob is visible to something else, and provides a balloon alert of feedback if appropriate.
on_tried_abilityCalled when the mob tries to use an ability
on_tried_attackCalled when the mob tries to attack
on_tried_moveCalled when the mob tries to move
on_tried_spellCalled when the mob tries to cast a spell
on_tried_turnCalled when the mob tries to change direction

Var Details

affected_actions

List of action types which cannot be used while observed. Applies to all actions if not set, and does nothing if NO_OBSERVED_ACTIONS flag isnt present

message_cooldown

Cooldown to prevent message spam when holding a move button

unobserved_flags

Dictates what behaviour you're blocked from while observed

Proc Details

can_be_seen

Returns true if you can be seen by something. +Not a very robust algorithm but it'll work in the majority of situations.

check_if_seen

Checks if the mob is visible to something else, and provides a balloon alert of feedback if appropriate.

on_tried_ability

Called when the mob tries to use an ability

on_tried_attack

Called when the mob tries to attack

on_tried_move

Called when the mob tries to move

on_tried_spell

Called when the mob tries to cast a spell

on_tried_turn

Called when the mob tries to change direction

\ No newline at end of file diff --git a/datum/component/uplink.html b/datum/component/uplink.html new file mode 100644 index 0000000000000..1249abdc34da3 --- /dev/null +++ b/datum/component/uplink.html @@ -0,0 +1,4 @@ +/datum/component/uplink - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

uplink

Uplinks

+

All /obj/item(s) have a hidden_uplink var. By default it's null. Give the item one with 'new(src') (it must be in its contents). Then add 'uses.' +Use whatever conditionals you want to check that the user has an uplink, and then call interact() on their uplink. +You might also want the uplink menu to open if active. Check if the uplink is 'active' and then interact() with it.

Vars

activeWhether the uplink is currently active or not
allow_restrictedWhether this uplink allows restricted items to be accessed
failsafe_codeThe failsafe code that causes this uplink to blow up.
lockableWhether this uplink can be locked or not
lockedWhether the uplink is locked or not.
nameName of the uplink
ownerCurrent owner of the uplink
previous_attemptsUsed for pen uplink
purchase_logPurchase log, listing all the purchases this uplink has made
unlock_codeCode to unlock the uplink.
unlock_noteThe unlock note that is sent to the traitor with this uplink. This is not modular and not recommended to expand upon
unlock_textThe unlock text that is sent to the traitor with this uplink. This is not modular and not recommended to expand upon
uplink_handlerThe current linked uplink handler.

Procs

handle_uplink_replacedWhen a new uplink is made via the syndicate beacon it locks all lockable uplinks and destroys replacement uplinks
lock_uplinkProc that locks uplinks
on_heardProc that unlocks a locked replacement uplink when it hears the unlock code from their datum

Var Details

active

Whether the uplink is currently active or not

allow_restricted

Whether this uplink allows restricted items to be accessed

failsafe_code

The failsafe code that causes this uplink to blow up.

lockable

Whether this uplink can be locked or not

locked

Whether the uplink is locked or not.

name

Name of the uplink

owner

Current owner of the uplink

previous_attempts

Used for pen uplink

purchase_log

Purchase log, listing all the purchases this uplink has made

unlock_code

Code to unlock the uplink.

unlock_note

The unlock note that is sent to the traitor with this uplink. This is not modular and not recommended to expand upon

unlock_text

The unlock text that is sent to the traitor with this uplink. This is not modular and not recommended to expand upon

The current linked uplink handler.

Proc Details

When a new uplink is made via the syndicate beacon it locks all lockable uplinks and destroys replacement uplinks

Proc that locks uplinks

on_heard

Proc that unlocks a locked replacement uplink when it hears the unlock code from their datum

\ No newline at end of file diff --git a/datum/component/usb_port.html b/datum/component/usb_port.html new file mode 100644 index 0000000000000..3e8c99c76c6c6 --- /dev/null +++ b/datum/component/usb_port.html @@ -0,0 +1 @@ +/datum/component/usb_port - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

usb_port

Opens up a USB port that can be connected to by circuits, creating registerable circuit components

Vars

attached_circuitThe currently connected circuit
circuit_component_typesThe component types to create when something plugs in
circuit_componentsThe components inside the parent
physical_objectThe current physical object that the beam is connected to and listens to.
usb_cable_beamThe beam connecting the USB cable to the machine
usb_cable_refThe currently connected USB cable

Var Details

attached_circuit

The currently connected circuit

circuit_component_types

The component types to create when something plugs in

circuit_components

The components inside the parent

physical_object

The current physical object that the beam is connected to and listens to.

usb_cable_beam

The beam connecting the USB cable to the machine

usb_cable_ref

The currently connected USB cable

\ No newline at end of file diff --git a/datum/component/vacuum.html b/datum/component/vacuum.html new file mode 100644 index 0000000000000..219eeda72e654 --- /dev/null +++ b/datum/component/vacuum.html @@ -0,0 +1,19 @@ +/datum/component/vacuum - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Vacuum Component

Adds a vacuum functionality to an atom, requires a trashbag to be linked +using signals

Vars

vacuum_bagThe linked trash bag to vacuum trash into

Procs

attach_bagHandler for when a new trash bag is attached
detach_bagHandler for when a trash bag is detached
suckCalled when parent moves, deligates vacuuming functionality
suck_itemsSucks up items as possible from a provided turf into the connected trash bag

Var Details

vacuum_bag

The linked trash bag to vacuum trash into

Proc Details

attach_bag

Handler for when a new trash bag is attached

+

Arguments:

+

detach_bag

Handler for when a trash bag is detached

+

Arguments:

+

suck

Called when parent moves, deligates vacuuming functionality

+

Arguments:

+

suck_items

Sucks up items as possible from a provided turf into the connected trash bag

+

Arguments:

+
\ No newline at end of file diff --git a/datum/component/virtual_entity.html b/datum/component/virtual_entity.html new file mode 100644 index 0000000000000..31f492e55822d --- /dev/null +++ b/datum/component/virtual_entity.html @@ -0,0 +1 @@ +/datum/component/virtual_entity - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

virtual_entity

Handles all special considerations for "virtual entities" such as bitrunning ghost roles or digital anomaly antagonists.

Vars

OOB_cooldownThe cooldown for balloon alerts, so the player isn't spammed while trying to enter a restricted area.

Procs

jailbreak_mobsSelf-destructs the component, allowing free-roam by all entities with this restriction.
on_parent_pre_movePrevents entry to a certain area if it has flags preventing virtual entities from entering.

Var Details

OOB_cooldown

The cooldown for balloon alerts, so the player isn't spammed while trying to enter a restricted area.

Proc Details

jailbreak_mobs

Self-destructs the component, allowing free-roam by all entities with this restriction.

on_parent_pre_move

Prevents entry to a certain area if it has flags preventing virtual entities from entering.

\ No newline at end of file diff --git a/datum/component/vore.html b/datum/component/vore.html new file mode 100644 index 0000000000000..5d7506b76e874 --- /dev/null +++ b/datum/component/vore.html @@ -0,0 +1,5 @@ +/datum/component/vore - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

vore

REMINDER: This component serves triple duty! +Everyone participating in mechanical vore must have this component for the UI +Preds must have this component to handle their bellies +Prey must have this component to handle the prey panel +Feeders must have this component to handle feeding preys to preds

Procs

has_preyReturns TRUE if any of our bellies have prey in them
play_vore_sound_preypredPlays a different prey and pred sound to our owner and ALL of our prey
save_belliesSlot argument allows you to forcibly save to a different slot

Proc Details

has_prey

Returns TRUE if any of our bellies have prey in them

play_vore_sound_preypred

Plays a different prey and pred sound to our owner and ALL of our prey

save_bellies

Slot argument allows you to forcibly save to a different slot

\ No newline at end of file diff --git a/datum/component/wall_mounted.html b/datum/component/wall_mounted.html new file mode 100644 index 0000000000000..cb8d75e1c5ccc --- /dev/null +++ b/datum/component/wall_mounted.html @@ -0,0 +1,3 @@ +/datum/component/wall_mounted - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wall_mounted

Vars

hanging_wall_turfThe wall our object is currently linked to.
on_dropCallback to the parent's proc to call on the linked object when the wall disappear's or changes.

Procs

drop_wallmountHandles the dropping of the linked object. This is done via deconstruction, as that should be the most sane way to handle it for most objects. +Except for intercoms, which are handled by creating a new wallframe intercom, as they're apparently items.
on_examineWhen the wall is examined, explains that it's supporting the linked object.
on_linked_destroyedBasic reference handling if the hanging/linked object is destroyed first.
on_moveIf we get dragged from our wall (by a singulo for instance) we should deconstruct
on_turf_changingWhen the type of turf changes, if it is changing into a floor we should drop our contents

Var Details

hanging_wall_turf

The wall our object is currently linked to.

on_drop

Callback to the parent's proc to call on the linked object when the wall disappear's or changes.

Proc Details

drop_wallmount

Handles the dropping of the linked object. This is done via deconstruction, as that should be the most sane way to handle it for most objects. +Except for intercoms, which are handled by creating a new wallframe intercom, as they're apparently items.

on_examine

When the wall is examined, explains that it's supporting the linked object.

on_linked_destroyed

Basic reference handling if the hanging/linked object is destroyed first.

on_move

If we get dragged from our wall (by a singulo for instance) we should deconstruct

on_turf_changing

When the type of turf changes, if it is changing into a floor we should drop our contents

\ No newline at end of file diff --git a/datum/component/wearertargeting/punchcooldown.html b/datum/component/wearertargeting/punchcooldown.html new file mode 100644 index 0000000000000..f31be2692b7ea --- /dev/null +++ b/datum/component/wearertargeting/punchcooldown.html @@ -0,0 +1 @@ +/datum/component/wearertargeting/punchcooldown - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

punchcooldown

Your favourite Jojoke. Used for the gloves of the north star.

Vars

warcryThe warcry this generates

Procs

changewarcryCalled on COMSIG_ITEM_ATTACK_SELF. Allows you to change the warcry.
reducecooldownCalled on COMSIG_LIVING_UNARMED_ATTACK. Yells the warcry and and reduces punch cooldown.

Var Details

warcry

The warcry this generates

Proc Details

changewarcry

Called on COMSIG_ITEM_ATTACK_SELF. Allows you to change the warcry.

reducecooldown

Called on COMSIG_LIVING_UNARMED_ATTACK. Yells the warcry and and reduces punch cooldown.

\ No newline at end of file diff --git a/datum/component/wearertargeting/sitcomlaughter.html b/datum/component/wearertargeting/sitcomlaughter.html new file mode 100644 index 0000000000000..8a71b155e7ade --- /dev/null +++ b/datum/component/wearertargeting/sitcomlaughter.html @@ -0,0 +1 @@ +/datum/component/wearertargeting/sitcomlaughter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sitcomlaughter

Vars

comedysoundsSounds used for when user has a sitcom action occur
cooldown_timeCooldown for inbetween laughs
laugh_delayDelay before laugh starts
post_comedy_callbackInvoked in EngageInComedy is ran

Procs

EngageInComedyPlay the laugh track if any of the signals related to comedy have been sent.

Var Details

comedysounds

Sounds used for when user has a sitcom action occur

cooldown_time

Cooldown for inbetween laughs

laugh_delay

Delay before laugh starts

post_comedy_callback

Invoked in EngageInComedy is ran

Proc Details

EngageInComedy

Play the laugh track if any of the signals related to comedy have been sent.

\ No newline at end of file diff --git a/datum/component/weather_announcer.html b/datum/component/weather_announcer.html new file mode 100644 index 0000000000000..e3a1f6c2c0683 --- /dev/null +++ b/datum/component/weather_announcer.html @@ -0,0 +1 @@ +/datum/component/weather_announcer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

weather_announcer

Component which makes you yell about what the weather is

Vars

enabledAre we actually turned on right now?
is_weather_dangerousWhether the incoming weather is actually going to harm you
state_dangerOverlay added when you are in danger
state_normalOverlay added when things are alright
state_warningOverlay added when you should start looking for shelter
warning_levelCurrently displayed warning level

Procs

get_warning_messageReturns a string we should display to communicate what you should be doing
on_power_lostIf no power, don't receive updates
on_poweredIf powered, receive updates
on_update_overlaysAdd appropriate overlays
set_current_alert_levelPolls existing weather for what kind of warnings we should be displaying.

Var Details

enabled

Are we actually turned on right now?

is_weather_dangerous

Whether the incoming weather is actually going to harm you

state_danger

Overlay added when you are in danger

state_normal

Overlay added when things are alright

state_warning

Overlay added when you should start looking for shelter

warning_level

Currently displayed warning level

Proc Details

get_warning_message

Returns a string we should display to communicate what you should be doing

on_power_lost

If no power, don't receive updates

on_powered

If powered, receive updates

on_update_overlays

Add appropriate overlays

set_current_alert_level

Polls existing weather for what kind of warnings we should be displaying.

\ No newline at end of file diff --git a/datum/component/wet_floor.html b/datum/component/wet_floor.html new file mode 100644 index 0000000000000..3f63c1b5afa2b --- /dev/null +++ b/datum/component/wet_floor.html @@ -0,0 +1,3 @@ +/datum/component/wet_floor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wet_floor

Vars

should_display_overlayShould we display an overlay for this component? Useful mainly for turfs +that already look wets or just don't need the visuals for any other reason.

Var Details

should_display_overlay

Should we display an overlay for this component? Useful mainly for turfs +that already look wets or just don't need the visuals for any other reason.

\ No newline at end of file diff --git a/datum/component/wetsuit.html b/datum/component/wetsuit.html new file mode 100644 index 0000000000000..f76864b43c068 --- /dev/null +++ b/datum/component/wetsuit.html @@ -0,0 +1 @@ +/datum/component/wetsuit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

wetsuit

Procs

apply_wetsuit_status_effectA proc for all akula clothing which has the 'special tech' to keep their wearers slippery
remove_wetsuit_status_effectA proc to remove the wetsuit status effect

Proc Details

apply_wetsuit_status_effect

A proc for all akula clothing which has the 'special tech' to keep their wearers slippery

remove_wetsuit_status_effect

A proc to remove the wetsuit status effect

\ No newline at end of file diff --git a/datum/computer_file.html b/datum/computer_file.html new file mode 100644 index 0000000000000..3991d048be086 --- /dev/null +++ b/datum/computer_file.html @@ -0,0 +1,21 @@ +/datum/computer_file - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

computer_file

Vars

computerThe modular computer hosting the file.
disk_hostThe computer disk hosting the file.
file_uidStatic ID to ensure all IDs are unique.
filenameThe name of the internal file shown in file management.
filetypeThe type of file format the file is in, placed after filename. PNG, TXT, ect. This would be NewFile.XXX
sizeHow much GQ storage space the file will take to store. Integers only!
uidThe computer file's personal ID
undeletableWhether the file may be deleted. Setting to TRUE prevents deletion/renaming/etc.

Procs

application_item_interactionCalled on modular computer item_interaction, checking if any application uses the given item. Uses the item interaction chain flags.
can_store_fileUsed for special cases where an application +Requires special circumstances to install on a PC +Args:
on_examineCalled when examining a modular computer +Args: +Source - The tablet that's being examined +User - Person examining the computer
on_installCalled post-installation of an application in a computer, after 'computer' var is set.
try_ejectImplement this when your program has an object that the user can eject.

Var Details

computer

The modular computer hosting the file.

disk_host

The computer disk hosting the file.

file_uid

Static ID to ensure all IDs are unique.

filename

The name of the internal file shown in file management.

filetype

The type of file format the file is in, placed after filename. PNG, TXT, ect. This would be NewFile.XXX

size

How much GQ storage space the file will take to store. Integers only!

uid

The computer file's personal ID

undeletable

Whether the file may be deleted. Setting to TRUE prevents deletion/renaming/etc.

Proc Details

application_item_interaction

Called on modular computer item_interaction, checking if any application uses the given item. Uses the item interaction chain flags.

can_store_file

Used for special cases where an application +Requires special circumstances to install on a PC +Args:

+

on_examine

Called when examining a modular computer +Args: +Source - The tablet that's being examined +User - Person examining the computer

+

note: please replace this with signals when hdd's are removed and program's New() already has the tablet set.

on_install

Called post-installation of an application in a computer, after 'computer' var is set.

try_eject

Implement this when your program has an object that the user can eject.

+

Examples include ejecting cells AI intellicards. +Arguments:

+
\ No newline at end of file diff --git a/datum/computer_file/data/ordnance.html b/datum/computer_file/data/ordnance.html new file mode 100644 index 0000000000000..5400a25e93d0d --- /dev/null +++ b/datum/computer_file/data/ordnance.html @@ -0,0 +1,2 @@ +/datum/computer_file/data/ordnance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ordnance

Ordnance data +Holds possible experiments to do

Vars

possible_experimentsList of experiments filtered by doppler array or populated by the tank compressor. Experiment path as key, score as value.

Var Details

possible_experiments

List of experiments filtered by doppler array or populated by the tank compressor. Experiment path as key, score as value.

\ No newline at end of file diff --git a/datum/computer_file/data/ordnance/explosive.html b/datum/computer_file/data/ordnance/explosive.html new file mode 100644 index 0000000000000..0a91d3c1b2a11 --- /dev/null +++ b/datum/computer_file/data/ordnance/explosive.html @@ -0,0 +1,2 @@ +/datum/computer_file/data/ordnance/explosive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

explosive

Explosive data +Holds a specific taychon record.

Vars

explosion_recordTachyon record, used for an explosive experiment.

Var Details

explosion_record

Tachyon record, used for an explosive experiment.

\ No newline at end of file diff --git a/datum/computer_file/data/ordnance/gaseous.html b/datum/computer_file/data/ordnance/gaseous.html new file mode 100644 index 0000000000000..7027caac6364f --- /dev/null +++ b/datum/computer_file/data/ordnance/gaseous.html @@ -0,0 +1,2 @@ +/datum/computer_file/data/ordnance/gaseous - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gaseous

Gaseous data +Holds a specific compressor record.

Vars

gas_recordThe gas record stored in the file.

Var Details

gas_record

The gas record stored in the file.

\ No newline at end of file diff --git a/datum/computer_file/data/text.html b/datum/computer_file/data/text.html new file mode 100644 index 0000000000000..d2f3da4400dc2 --- /dev/null +++ b/datum/computer_file/data/text.html @@ -0,0 +1 @@ +/datum/computer_file/data/text - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

text

Holds data in string format.

Vars

stored_textStored data in string format.

Var Details

stored_text

Stored data in string format.

\ No newline at end of file diff --git a/datum/computer_file/picture.html b/datum/computer_file/picture.html new file mode 100644 index 0000000000000..a1ea9388b524b --- /dev/null +++ b/datum/computer_file/picture.html @@ -0,0 +1,4 @@ +/datum/computer_file/picture - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

picture

PNG file type +Stores a picture which can be used by other programs.

Vars

picture_nameThe name of the asset cache item. +This will be initialized after assign_path() is called.
stored_pictureThe instance of the stored picture.

Procs

assign_pathAssigns an asset path to the stored image, for use in the UI.

Var Details

picture_name

The name of the asset cache item. +This will be initialized after assign_path() is called.

stored_picture

The instance of the stored picture.

Proc Details

assign_path

Assigns an asset path to the stored image, for use in the UI.

\ No newline at end of file diff --git a/datum/computer_file/program.html b/datum/computer_file/program.html new file mode 100644 index 0000000000000..60ae3b52096bf --- /dev/null +++ b/datum/computer_file/program.html @@ -0,0 +1,67 @@ +/datum/computer_file/program - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

program

Vars

alert_ableWhether this program can send alerts while minimized or closed. Used to show a mute button per program in the file manager
alert_pendingWhether to highlight our program in the main screen. Intended for alerts, but loosely available for any need to notify of changed conditions. Think Windows task bar highlighting. Available even if alerts are muted.
alert_silencedWhether the user has muted this program's ability to send alerts.
can_run_on_flagsProgram-specific bitflags that tell the app what it runs on. +(PROGRAM_ALL | PROGRAM_CONSOLE | PROGRAM_LAPTOP | PROGRAM_PDA)
circuit_comp_typeUnremovable circuit componentn added to the physical computer while the program is installed
detomatix_resistanceHow well this program will help combat detomatix viruses.
download_accessList of required access to download or file host the program. Any match will do.
downloader_categoryWhat category this program can be found in within NTNetDownloader. +This is required if PROGRAM_ON_NTNET_STORE or PROGRAM_ON_SYNDINET_STORE is on.
extended_descShort description of this program's function.
filedescUser-friendly name of this program.
filenameFile name. FILE NAME MUST BE UNIQUE IF YOU WANT THE PROGRAM TO BE DOWNLOADABLE FROM NTNET!
ntnet_statusNTNet status, updated every tick by computer running this program. Don't use this for checks if NTNet works, computers do that. Use this for calculations, etc.
power_cell_useHow much power running this program costs.
program_flagsProgram-specific bitflags that tells the ModPC what the app is able to do special. +(PROGRAM_REQUIRES_NTNET|PROGRAM_ON_NTNET_STORE|PROGRAM_ON_SYNDINET_STORE|PROGRAM_UNIQUE_COPY|PROGRAM_HEADER|PROGRAM_RUNS_WITHOUT_POWER)
program_iconFont Awesome icon to use as this program's icon in the modular computer main menu. Defaults to a basic program maximize window icon if not overridden.
program_open_overlayThe overlay to add ontop of the ModPC running the app while it's open. +This is taken from the same file as the ModPC, so you can use can_run_on_flags to prevent +the program from being used on devices that don't have sprites for it.
run_accessList of required accesses to run the program. Any match will do. +This also acts as download_access if that is not set, making this more draconic and restrictive.
tgui_idName of the tgui interface. If this is not defined, this will not be available in NTNet.
ui_headerExample: "something.gif" - a header image that will be rendered in computer's UI when this program is running at background. Images must also be inserted into /datum/asset/simple/headers.

Procs

DestroyHere we deal with killing the associated components instead.
background_programSends the running program to the background/idle threads. Header programs can't be minimized and will kill instead.
can_runChecks if the user can run program. Only humans and silicons can operate computer. Automatically called in on_start() +ID must be inserted into a card slot to be read. If the program is not currently installed (as is the case when +NT Software Hub is checking available software), a list can be given to be used instead. +Args: +user is a ref of the mob using the device. +loud is a bool deciding if this proc should use to_chats +access_to_check is an access level that will be checked against the ID +downloading: Boolean on whether it's downloading the app or not. If it is, it will check download_access instead of run_access. +access can contain a list of access numbers to check against. If access is not empty, it will be used istead of checking any inserted ID.
event_networkfailureCalled when a computer program is crashing due to any required connection being shut off. +Arguments:
event_powerfailureCalled when a computer program is shut down from the tablet's charge dying +Arguments:
generate_network_logAttempts to generate an Ntnet log, returns the log on success, FALSE otherwise.
is_supported_by_hardwareMakes sure a program can run on this hardware (for apps limited to tablets/computers/laptops)
kill_programKills the running program
on_installHere we deal with peculiarity of adding unremovable components to the computer shell. +It probably doesn't look badass, but it's a decent way of doing it without taining the component with +oddities like this.
on_startCalled on program startup.
tapRuns when the device is used to attack an atom in non-combat mode using right click (secondary).
ui_interactWARNING: this proc does not work the same as normal ui_interact, as the +computer takes care of opening the UI. The datum/tgui/ui parameter will always exist. +This proc only serves as a callback.

Var Details

alert_able

Whether this program can send alerts while minimized or closed. Used to show a mute button per program in the file manager

alert_pending

Whether to highlight our program in the main screen. Intended for alerts, but loosely available for any need to notify of changed conditions. Think Windows task bar highlighting. Available even if alerts are muted.

alert_silenced

Whether the user has muted this program's ability to send alerts.

can_run_on_flags

Program-specific bitflags that tell the app what it runs on. +(PROGRAM_ALL | PROGRAM_CONSOLE | PROGRAM_LAPTOP | PROGRAM_PDA)

circuit_comp_type

Unremovable circuit componentn added to the physical computer while the program is installed

detomatix_resistance

How well this program will help combat detomatix viruses.

download_access

List of required access to download or file host the program. Any match will do.

downloader_category

What category this program can be found in within NTNetDownloader. +This is required if PROGRAM_ON_NTNET_STORE or PROGRAM_ON_SYNDINET_STORE is on.

extended_desc

Short description of this program's function.

filedesc

User-friendly name of this program.

filename

File name. FILE NAME MUST BE UNIQUE IF YOU WANT THE PROGRAM TO BE DOWNLOADABLE FROM NTNET!

ntnet_status

NTNet status, updated every tick by computer running this program. Don't use this for checks if NTNet works, computers do that. Use this for calculations, etc.

power_cell_use

How much power running this program costs.

program_flags

Program-specific bitflags that tells the ModPC what the app is able to do special. +(PROGRAM_REQUIRES_NTNET|PROGRAM_ON_NTNET_STORE|PROGRAM_ON_SYNDINET_STORE|PROGRAM_UNIQUE_COPY|PROGRAM_HEADER|PROGRAM_RUNS_WITHOUT_POWER)

program_icon

Font Awesome icon to use as this program's icon in the modular computer main menu. Defaults to a basic program maximize window icon if not overridden.

program_open_overlay

The overlay to add ontop of the ModPC running the app while it's open. +This is taken from the same file as the ModPC, so you can use can_run_on_flags to prevent +the program from being used on devices that don't have sprites for it.

run_access

List of required accesses to run the program. Any match will do. +This also acts as download_access if that is not set, making this more draconic and restrictive.

tgui_id

Name of the tgui interface. If this is not defined, this will not be available in NTNet.

ui_header

Example: "something.gif" - a header image that will be rendered in computer's UI when this program is running at background. Images must also be inserted into /datum/asset/simple/headers.

Proc Details

Destroy

Here we deal with killing the associated components instead.

background_program

Sends the running program to the background/idle threads. Header programs can't be minimized and will kill instead.

can_run

Checks if the user can run program. Only humans and silicons can operate computer. Automatically called in on_start() +ID must be inserted into a card slot to be read. If the program is not currently installed (as is the case when +NT Software Hub is checking available software), a list can be given to be used instead. +Args: +user is a ref of the mob using the device. +loud is a bool deciding if this proc should use to_chats +access_to_check is an access level that will be checked against the ID +downloading: Boolean on whether it's downloading the app or not. If it is, it will check download_access instead of run_access. +access can contain a list of access numbers to check against. If access is not empty, it will be used istead of checking any inserted ID.

event_networkfailure

Called when a computer program is crashing due to any required connection being shut off. +Arguments:

+

event_powerfailure

Called when a computer program is shut down from the tablet's charge dying +Arguments:

+

generate_network_log

Attempts to generate an Ntnet log, returns the log on success, FALSE otherwise.

is_supported_by_hardware

Makes sure a program can run on this hardware (for apps limited to tablets/computers/laptops)

kill_program

Kills the running program

+

Use this proc to kill the program. +Designed to be implemented by each program if it requires on-quit logic, such as the NTNRC client. +Args:

+

on_install

Here we deal with peculiarity of adding unremovable components to the computer shell. +It probably doesn't look badass, but it's a decent way of doing it without taining the component with +oddities like this.

on_start

Called on program startup.

+

May be overridden to add extra logic. Remember to include ..() call. Return 1 on success, 0 on failure. +When implementing new program based device, use this to run the program. +Arguments:

+

tap

Runs when the device is used to attack an atom in non-combat mode using right click (secondary).

+

Simulates using the device to read or scan something. Tap is called by the computer during pre_attack +and sends us all of the related info. If we return TRUE, the computer will stop the attack process +there. What we do with the info is up to us, but we should only return TRUE if we actually perform +an action of some sort. +Arguments: +A is the atom being tapped +user is the person making the attack action +params is anything the pre_attack() proc had in the same-named variable.

ui_interact

WARNING: this proc does not work the same as normal ui_interact, as the +computer takes care of opening the UI. The datum/tgui/ui parameter will always exist. +This proc only serves as a callback.

\ No newline at end of file diff --git a/datum/computer_file/program/ai_restorer.html b/datum/computer_file/program/ai_restorer.html new file mode 100644 index 0000000000000..f2b80b8396993 --- /dev/null +++ b/datum/computer_file/program/ai_restorer.html @@ -0,0 +1 @@ +/datum/computer_file/program/ai_restorer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ai_restorer

Vars

restoringVariable dictating if we are in the process of restoring the AI in the inserted intellicard
stored_cardThe AI stored in the program

Var Details

restoring

Variable dictating if we are in the process of restoring the AI in the inserted intellicard

stored_card

The AI stored in the program

\ No newline at end of file diff --git a/datum/computer_file/program/alarm_monitor.html b/datum/computer_file/program/alarm_monitor.html new file mode 100644 index 0000000000000..296b3c395b87a --- /dev/null +++ b/datum/computer_file/program/alarm_monitor.html @@ -0,0 +1 @@ +/datum/computer_file/program/alarm_monitor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

alarm_monitor

Vars

alert_controlStation alert datum for showing alerts UI
has_alertIf there is any station alert

Var Details

alert_control

Station alert datum for showing alerts UI

has_alert

If there is any station alert

\ No newline at end of file diff --git a/datum/computer_file/program/arcade.html b/datum/computer_file/program/arcade.html new file mode 100644 index 0000000000000..8fb7374be0bb4 --- /dev/null +++ b/datum/computer_file/program/arcade.html @@ -0,0 +1 @@ +/datum/computer_file/program/arcade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

arcade

Vars

boss_idDetermines which boss image to use on the UI.
game_activeReturns TRUE if the game is being played.
heads_upShows what text is shown on the app, usually showing the log of combat actions taken by the player.
pause_stateThis disables buttom actions from having any impact if TRUE. Resets to FALSE when the player is allowed to make an action again.

Var Details

boss_id

Determines which boss image to use on the UI.

game_active

Returns TRUE if the game is being played.

heads_up

Shows what text is shown on the app, usually showing the log of combat actions taken by the player.

pause_state

This disables buttom actions from having any impact if TRUE. Resets to FALSE when the player is allowed to make an action again.

\ No newline at end of file diff --git a/datum/computer_file/program/atmosscan.html b/datum/computer_file/program/atmosscan.html new file mode 100644 index 0000000000000..5611e38d47249 --- /dev/null +++ b/datum/computer_file/program/atmosscan.html @@ -0,0 +1 @@ +/datum/computer_file/program/atmosscan - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

atmosscan

Vars

atmozphere_modeWhether we scan the current turf automatically (env) or scan tapped objects manually (click).
last_gasmix_dataSaved GasmixParser data of the last thing we scanned.

Procs

on_analyzeUpdates our gasmix data if on click mode.
tapKeep this in sync with its tool based counterpart [/obj/proc/analyzer_act] and /atom/proc/tool_act
turf_analyzeSecondary attack self.

Var Details

atmozphere_mode

Whether we scan the current turf automatically (env) or scan tapped objects manually (click).

last_gasmix_data

Saved GasmixParser data of the last thing we scanned.

Proc Details

on_analyze

Updates our gasmix data if on click mode.

tap

Keep this in sync with its tool based counterpart [/obj/proc/analyzer_act] and /atom/proc/tool_act

turf_analyze

Secondary attack self.

\ No newline at end of file diff --git a/datum/computer_file/program/borg_monitor.html b/datum/computer_file/program/borg_monitor.html new file mode 100644 index 0000000000000..05e2e976244a0 --- /dev/null +++ b/datum/computer_file/program/borg_monitor.html @@ -0,0 +1 @@ +/datum/computer_file/program/borg_monitor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

borg_monitor

Vars

DL_progressreference of a borg if we're downloading a log, or null if not.
DL_sourceA list to copy a borg's IC log list into

Procs

DestroyProgress of current download, 0 to 100, -1 for no current download
checkIDGets the ID's name, if one is inserted into the device. This is a separate proc solely to be overridden by the syndicate version of the app.
evaluate_borgThis proc is used to determin if a borg should be shown in the list (based on the borg's scrambledcodes var). Syndicate version overrides this to show only syndicate borgs.

Var Details

DL_progress

reference of a borg if we're downloading a log, or null if not.

DL_source

A list to copy a borg's IC log list into

Proc Details

Destroy

Progress of current download, 0 to 100, -1 for no current download

checkID

Gets the ID's name, if one is inserted into the device. This is a separate proc solely to be overridden by the syndicate version of the app.

evaluate_borg

This proc is used to determin if a borg should be shown in the list (based on the borg's scrambledcodes var). Syndicate version overrides this to show only syndicate borgs.

\ No newline at end of file diff --git a/datum/computer_file/program/bounty_board.html b/datum/computer_file/program/bounty_board.html new file mode 100644 index 0000000000000..0436f8776bf11 --- /dev/null +++ b/datum/computer_file/program/bounty_board.html @@ -0,0 +1 @@ +/datum/computer_file/program/bounty_board - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bounty_board

Vars

active_requestThe station request datum being affected by UI actions.
bounty_textText of the currently written bounty
bounty_valueValue of the currently bounty input
current_userReference to the currently logged in user.
networkedHas the app been added to the network yet?

Var Details

active_request

The station request datum being affected by UI actions.

bounty_text

Text of the currently written bounty

bounty_value

Value of the currently bounty input

current_user

Reference to the currently logged in user.

networked

Has the app been added to the network yet?

\ No newline at end of file diff --git a/datum/computer_file/program/budgetorders.html b/datum/computer_file/program/budgetorders.html new file mode 100644 index 0000000000000..d6af1722b7563 --- /dev/null +++ b/datum/computer_file/program/budgetorders.html @@ -0,0 +1 @@ +/datum/computer_file/program/budgetorders - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

budgetorders

Vars

blockade_warningIf you're being raided by pirates, what do you tell the crew?
can_approve_requestsCan this console approve purchase requests?
cargo_accountThe account this console processes and displays. Independent from the account the shuttle processes.
cargo_shuttleThe name of the shuttle template being used as the cargo shuttle. 'cargo' is default and contains critical code. Don't change this unless you know what you're doing.
contrabandCan the tablet see or buy illegal stuff?
docking_awayThe docking port called when leaving the station.
docking_homeThe docking port called when returning to the station.
requestonlyAre you actually placing orders with it?
safety_warningWhat do we say when the shuttle moves with living beings on it.
self_paidIs it being bought from a personal account, or is it being done via a budget/cargo?
stationcargoIf this console can loan the cargo shuttle. Set to false to disable.

Var Details

blockade_warning

If you're being raided by pirates, what do you tell the crew?

can_approve_requests

Can this console approve purchase requests?

cargo_account

The account this console processes and displays. Independent from the account the shuttle processes.

cargo_shuttle

The name of the shuttle template being used as the cargo shuttle. 'cargo' is default and contains critical code. Don't change this unless you know what you're doing.

contraband

Can the tablet see or buy illegal stuff?

docking_away

The docking port called when leaving the station.

docking_home

The docking port called when returning to the station.

requestonly

Are you actually placing orders with it?

safety_warning

What do we say when the shuttle moves with living beings on it.

self_paid

Is it being bought from a personal account, or is it being done via a budget/cargo?

stationcargo

If this console can loan the cargo shuttle. Set to false to disable.

\ No newline at end of file diff --git a/datum/computer_file/program/card_mod.html b/datum/computer_file/program/card_mod.html new file mode 100644 index 0000000000000..cba3d3e8b7c6e --- /dev/null +++ b/datum/computer_file/program/card_mod.html @@ -0,0 +1,9 @@ +/datum/computer_file/program/card_mod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

card_mod

Vars

authenticated_cardThe name/assignment combo of the ID card used to authenticate.
authenticated_userThe name of the registered user, related to authenticated_card.
is_centcomIf TRUE, this program only modifies Centcom accesses.
job_templatesList of job templates that can be applied to ID cards from this program.
minorIf TRUE, this program is authenticated with limited departmental access.
region_accessThe regions this program has access to based on the authenticated ID.
target_deptWhich departments this program has access to. See region defines.
valid_accessThe list of accesses this program is verified to change based on the authenticated ID. Used for state checking against player input.

Procs

authenticateAuthenticates the program based on the specific ID card.

Var Details

authenticated_card

The name/assignment combo of the ID card used to authenticate.

authenticated_user

The name of the registered user, related to authenticated_card.

is_centcom

If TRUE, this program only modifies Centcom accesses.

job_templates

List of job templates that can be applied to ID cards from this program.

minor

If TRUE, this program is authenticated with limited departmental access.

region_access

The regions this program has access to based on the authenticated ID.

target_dept

Which departments this program has access to. See region defines.

valid_access

The list of accesses this program is verified to change based on the authenticated ID. Used for state checking against player input.

Proc Details

authenticate

Authenticates the program based on the specific ID card.

+

If the card has ACCESS_CHANGE_IDs, it authenticates with all options. +Otherwise, it authenticates depending on SSid_access.sub_department_managers_tgui +compared to the access on the supplied ID card. +Arguments:

+
\ No newline at end of file diff --git a/datum/computer_file/program/chatclient.html b/datum/computer_file/program/chatclient.html new file mode 100644 index 0000000000000..e37c3866f3672 --- /dev/null +++ b/datum/computer_file/program/chatclient.html @@ -0,0 +1 @@ +/datum/computer_file/program/chatclient - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chatclient

Vars

active_channelThe channel currently active in.
conversationsAll NTnet conversations the application is apart of.
last_messageThe last message you sent in a channel, used to tell if someone has sent a new message yet.
netadmin_modeIf the tablet is in Admin mode, you bypass Passwords and aren't announced when entering a channel.
ping_cooldownCooldown timer between pings.
usernameThe user's screen name.

Var Details

active_channel

The channel currently active in.

conversations

All NTnet conversations the application is apart of.

last_message

The last message you sent in a channel, used to tell if someone has sent a new message yet.

netadmin_mode

If the tablet is in Admin mode, you bypass Passwords and aren't announced when entering a channel.

ping_cooldown

Cooldown timer between pings.

username

The user's screen name.

\ No newline at end of file diff --git a/datum/computer_file/program/contract_uplink.html b/datum/computer_file/program/contract_uplink.html new file mode 100644 index 0000000000000..2b99309f669ad --- /dev/null +++ b/datum/computer_file/program/contract_uplink.html @@ -0,0 +1 @@ +/datum/computer_file/program/contract_uplink - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

contract_uplink

Vars

errorThe error screen sent to the UI so they can show the player.
first_loadBoolean on whether the program is being loaded for the first time, for a unique screen animation.
info_screenBoolean on whether the UI is on the Information screen.
traitor_dataThe traitor datum stored on the program. Starts off as null and is set by the player.

Var Details

error

The error screen sent to the UI so they can show the player.

first_load

Boolean on whether the program is being loaded for the first time, for a unique screen animation.

info_screen

Boolean on whether the UI is on the Information screen.

traitor_data

The traitor datum stored on the program. Starts off as null and is set by the player.

\ No newline at end of file diff --git a/datum/computer_file/program/coupon.html b/datum/computer_file/program/coupon.html new file mode 100644 index 0000000000000..c92204e31922b --- /dev/null +++ b/datum/computer_file/program/coupon.html @@ -0,0 +1,3 @@ +/datum/computer_file/program/coupon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

coupon

A program that enables the user to redeem randomly generated coupons for several cargo packs (mostly goodies).

Procs

tapNormally, modular PCs can be print paper already, but I find this additional step +to be less lazy and fitting to the "I gotta go print it before it expires" aspect of it.

Proc Details

tap

Normally, modular PCs can be print paper already, but I find this additional step +to be less lazy and fitting to the "I gotta go print it before it expires" aspect of it.

\ No newline at end of file diff --git a/datum/computer_file/program/department_order.html b/datum/computer_file/program/department_order.html new file mode 100644 index 0000000000000..902c4cd2cadb2 --- /dev/null +++ b/datum/computer_file/program/department_order.html @@ -0,0 +1,3 @@ +/datum/computer_file/program/department_order - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

department_order

Vars

department_cooldownsStores the time when we can next place an order for each department.
department_orderReference to the order we've made UNTIL it gets sent on the supply shuttle. this is so heads can cancel it
dept_to_radioMaps what department gets what encryption key +I could've put this on the job department datum but it felt unnecessary
linked_departmentThe department we are linked to, typepath.
radioOur radio object we use to talk to our department.
radio_channelThe radio channel we will speak into by default.
use_accessFilled via set_linked_department. Serves as "who can place orders".

Procs

can_see_packChecks if we can "see" the passed supply pack
check_cooldownChecks if the cooldown is up and resets it if so.
finalize_department_ordersignal when the supply shuttle begins to spawn orders. we forget the current order preventing it from being overridden (since it's already past the point of no return on undoing the order)
find_department_to_linkLooks through all possible departments and finds one this ID card "corresponds" to.
set_linked_departmentSets the passed department type as the active department for this computer file.

Var Details

department_cooldowns

Stores the time when we can next place an order for each department.

department_order

Reference to the order we've made UNTIL it gets sent on the supply shuttle. this is so heads can cancel it

dept_to_radio

Maps what department gets what encryption key +I could've put this on the job department datum but it felt unnecessary

linked_department

The department we are linked to, typepath.

radio

Our radio object we use to talk to our department.

radio_channel

The radio channel we will speak into by default.

use_access

Filled via set_linked_department. Serves as "who can place orders".

Proc Details

can_see_pack

Checks if we can "see" the passed supply pack

check_cooldown

Checks if the cooldown is up and resets it if so.

finalize_department_order

signal when the supply shuttle begins to spawn orders. we forget the current order preventing it from being overridden (since it's already past the point of no return on undoing the order)

Looks through all possible departments and finds one this ID card "corresponds" to.

set_linked_department

Sets the passed department type as the active department for this computer file.

\ No newline at end of file diff --git a/datum/computer_file/program/emojipedia.html b/datum/computer_file/program/emojipedia.html new file mode 100644 index 0000000000000..0b171f73e94a0 --- /dev/null +++ b/datum/computer_file/program/emojipedia.html @@ -0,0 +1 @@ +/datum/computer_file/program/emojipedia - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

emojipedia

A tablet app that lets anyone see all the valid emoji they can send via a PDA message (and even OOC!)

Vars

emoji_listStore the list of potential emojis here.

Var Details

emoji_list

Store the list of potential emojis here.

\ No newline at end of file diff --git a/datum/computer_file/program/mafia.html b/datum/computer_file/program/mafia.html new file mode 100644 index 0000000000000..7a955e2965fbb --- /dev/null +++ b/datum/computer_file/program/mafia.html @@ -0,0 +1 @@ +/datum/computer_file/program/mafia - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mafia

Procs

on_game_endCalled when a game of Mafia ends, deletes its ui header.
on_game_startCalled when a game of Mafia starts, sets the ui header to the proper one.

Proc Details

on_game_end

Called when a game of Mafia ends, deletes its ui header.

on_game_start

Called when a game of Mafia starts, sets the ui header to the proper one.

\ No newline at end of file diff --git a/datum/computer_file/program/maintenance.html b/datum/computer_file/program/maintenance.html new file mode 100644 index 0000000000000..027a46accd336 --- /dev/null +++ b/datum/computer_file/program/maintenance.html @@ -0,0 +1,3 @@ +/datum/computer_file/program/maintenance - /tg/ Station 13
/tg/ Station 13 - Modules - Types

maintenance

Maintenance programs

+

Programs that are found from data disks in maintenance +Can only be cloned once to a modular computer, then deletes itself.

\ No newline at end of file diff --git a/datum/computer_file/program/maintenance/camera.html b/datum/computer_file/program/maintenance/camera.html new file mode 100644 index 0000000000000..98de8a121613a --- /dev/null +++ b/datum/computer_file/program/maintenance/camera.html @@ -0,0 +1 @@ +/datum/computer_file/program/maintenance/camera - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

camera

Vars

internal_cameraCamera built-into the tablet.
internal_pictureLatest picture taken by the app.
picture_numberHow many pictures were taken already, used for the camera's TGUI photo display

Var Details

internal_camera

Camera built-into the tablet.

internal_picture

Latest picture taken by the app.

picture_number

How many pictures were taken already, used for the camera's TGUI photo display

\ No newline at end of file diff --git a/datum/computer_file/program/maintenance/cool_sword.html b/datum/computer_file/program/maintenance/cool_sword.html new file mode 100644 index 0000000000000..2550214a21c31 --- /dev/null +++ b/datum/computer_file/program/maintenance/cool_sword.html @@ -0,0 +1 @@ +/datum/computer_file/program/maintenance/cool_sword - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cool_sword

Vars

sword_iconWhat icon to use for the mouse pointer?

Var Details

sword_icon

What icon to use for the mouse pointer?

\ No newline at end of file diff --git a/datum/computer_file/program/maintenance/modsuit_control.html b/datum/computer_file/program/maintenance/modsuit_control.html new file mode 100644 index 0000000000000..dfcc11d315775 --- /dev/null +++ b/datum/computer_file/program/maintenance/modsuit_control.html @@ -0,0 +1 @@ +/datum/computer_file/program/maintenance/modsuit_control - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

modsuit_control

Vars

controlled_suitThe suit we have control over.

Var Details

controlled_suit

The suit we have control over.

\ No newline at end of file diff --git a/datum/computer_file/program/maintenance/phys_scanner.html b/datum/computer_file/program/maintenance/phys_scanner.html new file mode 100644 index 0000000000000..8f30226344fed --- /dev/null +++ b/datum/computer_file/program/maintenance/phys_scanner.html @@ -0,0 +1 @@ +/datum/computer_file/program/maintenance/phys_scanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

phys_scanner

Vars

last_recordInformation from the last scanned person, to display on the app.

Var Details

last_record

Information from the last scanned person, to display on the app.

\ No newline at end of file diff --git a/datum/computer_file/program/maintenance/spectre_meter.html b/datum/computer_file/program/maintenance/spectre_meter.html new file mode 100644 index 0000000000000..006b975f74a38 --- /dev/null +++ b/datum/computer_file/program/maintenance/spectre_meter.html @@ -0,0 +1 @@ +/datum/computer_file/program/maintenance/spectre_meter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spectre_meter

Vars

auto_modeWhether the automatic scan mode is active or not
last_spook_valueThe value reported by the last scan.
manual_scan_cdThe cooldown for manual scans

Procs

scan_surroundingsReturn the "spook level" of the area the computer is in.

Var Details

auto_mode

Whether the automatic scan mode is active or not

last_spook_value

The value reported by the last scan.

manual_scan_cd

The cooldown for manual scans

Proc Details

scan_surroundings

Return the "spook level" of the area the computer is in.

\ No newline at end of file diff --git a/datum/computer_file/program/maintenance/theme.html b/datum/computer_file/program/maintenance/theme.html new file mode 100644 index 0000000000000..53d0265c621a7 --- /dev/null +++ b/datum/computer_file/program/maintenance/theme.html @@ -0,0 +1 @@ +/datum/computer_file/program/maintenance/theme - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

theme

Vars

theme_nameThe type of theme we have

Procs

on_installCalled post-installation of an application in a computer, after 'computer' var is set.

Var Details

theme_name

The type of theme we have

Proc Details

on_install

Called post-installation of an application in a computer, after 'computer' var is set.

\ No newline at end of file diff --git a/datum/computer_file/program/messenger.html b/datum/computer_file/program/messenger.html new file mode 100644 index 0000000000000..0dc2ce4a56d36 --- /dev/null +++ b/datum/computer_file/program/messenger.html @@ -0,0 +1 @@ +/datum/computer_file/program/messenger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

messenger

Vars

invisibleWhether the user is invisible to the message list.
last_textgreat wisdom from PDA.dm - "no spamming" (prevents people from spamming the same message over and over)
last_text_everyoneeven more wisdom from PDA.dm - "no everyone spamming" (prevents people from spamming the same message over and over)
mime_modeWhether or not we're in a mime PDA.
ringtoneThe current ringtone (displayed in the chat when a message is received).
saved_chatsAn asssociative list of chats we have started, format: chatref -> pda_chat.
selected_imageSelected photo for sending purposes.
sending_and_receivingWhether or not we're sending and receiving messages.
sending_virusWhether or not we're sending (or trying to send) a virus.
sort_by_jobWhether or not we're sorting by job.
spam_modeWhether this app can send messages to all.
viewing_messages_ofWhose chatlogs we currently have open. If we are in the contacts list, this is null.

Procs

Topictopic call that answers to people pressing "(Reply)" in chat
can_send_everyone_messageChecks if the person can send an everyone message
create_chatCreates a chat and adds it to saved_chats. Supports fake users. Returns the newly created chat.
find_chat_by_recipientGets the chat by the recipient, either by their name or messenger ref
get_messengersGets the list of available messengers
get_picture_assetsGets all currently relevant photo asset keys
quick_reply_promptBrings up the quick reply prompt to send a message.
sanitize_pda_messageReturns a message input, sanitized and checked against the filter
send_messageSends a message to targets via PDA. When sending to everyone, set everyone to true so the message is formatted accordingly
send_message_to_allHelper proc that sends a message to everyone
send_rigged_messageSends a rigged message that explodes when the recipient tries to reply or look at it.
set_ringtoneSet the ringtone if possible. Also handles encoding.
update_pictures_for_allSends new datum/picture assets to everyone

Var Details

invisible

Whether the user is invisible to the message list.

last_text

great wisdom from PDA.dm - "no spamming" (prevents people from spamming the same message over and over)

last_text_everyone

even more wisdom from PDA.dm - "no everyone spamming" (prevents people from spamming the same message over and over)

mime_mode

Whether or not we're in a mime PDA.

ringtone

The current ringtone (displayed in the chat when a message is received).

saved_chats

An asssociative list of chats we have started, format: chatref -> pda_chat.

selected_image

Selected photo for sending purposes.

sending_and_receiving

Whether or not we're sending and receiving messages.

sending_virus

Whether or not we're sending (or trying to send) a virus.

sort_by_job

Whether or not we're sorting by job.

spam_mode

Whether this app can send messages to all.

viewing_messages_of

Whose chatlogs we currently have open. If we are in the contacts list, this is null.

Proc Details

Topic

topic call that answers to people pressing "(Reply)" in chat

can_send_everyone_message

Checks if the person can send an everyone message

create_chat

Creates a chat and adds it to saved_chats. Supports fake users. Returns the newly created chat.

find_chat_by_recipient

Gets the chat by the recipient, either by their name or messenger ref

get_messengers

Gets the list of available messengers

get_picture_assets

Gets all currently relevant photo asset keys

quick_reply_prompt

Brings up the quick reply prompt to send a message.

sanitize_pda_message

Returns a message input, sanitized and checked against the filter

send_message

Sends a message to targets via PDA. When sending to everyone, set everyone to true so the message is formatted accordingly

send_message_to_all

Helper proc that sends a message to everyone

send_rigged_message

Sends a rigged message that explodes when the recipient tries to reply or look at it.

set_ringtone

Set the ringtone if possible. Also handles encoding.

update_pictures_for_all

Sends new datum/picture assets to everyone

\ No newline at end of file diff --git a/datum/computer_file/program/news_archive.html b/datum/computer_file/program/news_archive.html new file mode 100644 index 0000000000000..9502bb7d0d0f9 --- /dev/null +++ b/datum/computer_file/program/news_archive.html @@ -0,0 +1 @@ +/datum/computer_file/program/news_archive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

news_archive

Vars

story_listA list created once, on New(), containing all the stories. Static because it won't ever change

Var Details

story_list

A list created once, on New(), containing all the stories. Static because it won't ever change

\ No newline at end of file diff --git a/datum/computer_file/program/newscaster.html b/datum/computer_file/program/newscaster.html new file mode 100644 index 0000000000000..a0e3ff9b84f45 --- /dev/null +++ b/datum/computer_file/program/newscaster.html @@ -0,0 +1 @@ +/datum/computer_file/program/newscaster - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

newscaster

Vars

newscaster_uiThe UI we use for the newscaster

Var Details

newscaster_ui

The UI we use for the newscaster

\ No newline at end of file diff --git a/datum/computer_file/program/nifsoft_downloader.html b/datum/computer_file/program/nifsoft_downloader.html new file mode 100644 index 0000000000000..104a4e152f871 --- /dev/null +++ b/datum/computer_file/program/nifsoft_downloader.html @@ -0,0 +1 @@ +/datum/computer_file/program/nifsoft_downloader - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nifsoft_downloader

Vars

paying_accountWhat bank account is money being drawn out of?
target_nifWhat NIF are the NIFSofts being sent to?

Var Details

paying_account

What bank account is money being drawn out of?

target_nif

What NIF are the NIFSofts being sent to?

\ No newline at end of file diff --git a/datum/computer_file/program/nt_pay.html b/datum/computer_file/program/nt_pay.html new file mode 100644 index 0000000000000..cd56e4662969a --- /dev/null +++ b/datum/computer_file/program/nt_pay.html @@ -0,0 +1 @@ +/datum/computer_file/program/nt_pay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

nt_pay

Vars

current_userReference to the currently logged in user.
wanted_tokenPay token what we want to find

Procs

make_paymentWrapper and signal for the main payment function of this program

Var Details

current_user

Reference to the currently logged in user.

wanted_token

Pay token what we want to find

Proc Details

make_payment

Wrapper and signal for the main payment function of this program

\ No newline at end of file diff --git a/datum/computer_file/program/ntnetdownload.html b/datum/computer_file/program/ntnetdownload.html new file mode 100644 index 0000000000000..a8d9276df74ce --- /dev/null +++ b/datum/computer_file/program/ntnetdownload.html @@ -0,0 +1,3 @@ +/datum/computer_file/program/ntnetdownload - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ntnetdownload

Vars

download_completionHow much of the data has been downloaded.
downloaded_fileThe program currently being downloaded.
downloaderrorThe error message being displayed to the user, if necessary. Null if there isn't one.
hacked_downloadBoolean on whether the downloaded_file is being downloaded from the Syndicate store, +in which case it will appear as 'ENCRYPTED' in logs, rather than display file name.
show_categoriesThe list of categories to display in the UI, in order of which they appear.

Procs

check_compatibilityChecks if a provided program_to_check is compatible to be downloaded on our computer.

Var Details

download_completion

How much of the data has been downloaded.

downloaded_file

The program currently being downloaded.

downloaderror

The error message being displayed to the user, if necessary. Null if there isn't one.

hacked_download

Boolean on whether the downloaded_file is being downloaded from the Syndicate store, +in which case it will appear as 'ENCRYPTED' in logs, rather than display file name.

show_categories

The list of categories to display in the UI, in order of which they appear.

Proc Details

check_compatibility

Checks if a provided program_to_check is compatible to be downloaded on our computer.

\ No newline at end of file diff --git a/datum/computer_file/program/portrait_printer.html b/datum/computer_file/program/portrait_printer.html new file mode 100644 index 0000000000000..3b5ea80c81ad0 --- /dev/null +++ b/datum/computer_file/program/portrait_printer.html @@ -0,0 +1,5 @@ +/datum/computer_file/program/portrait_printer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

portrait_printer

portrait printer!

+

Program that lets the curator browse all of the portraits in the database +They are free to print them out as they please.

Vars

matching_paintingsStores the result of the search, for later access.
search_modeWhether the search function will check the title of the painting or the author's name.
search_stringThe last input in the search tab, stored here and reused in the UI to show successive users if +the current list of paintings is limited to the results of a search or not.

Var Details

matching_paintings

Stores the result of the search, for later access.

search_mode

Whether the search function will check the title of the painting or the author's name.

search_string

The last input in the search tab, stored here and reused in the UI to show successive users if +the current list of paintings is limited to the results of a search or not.

\ No newline at end of file diff --git a/datum/computer_file/program/radar.html b/datum/computer_file/program/radar.html new file mode 100644 index 0000000000000..8c6b498fa4598 --- /dev/null +++ b/datum/computer_file/program/radar.html @@ -0,0 +1,22 @@ +/datum/computer_file/program/radar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

radar

Vars

arrowstyleUsed by the tgui interface, themed NT or Syndicate.
last_icon_stateUsed to keep track of the last value program_open_overlay was set to, to prevent constant unnecessary update_appearance() calls
next_scanUsed to store when the next scan is available.
objectsList of trackable entities. Updated by the scan() proc.
pointercolorUsed by the tgui interface, themed for NT or Syndicate colors.
selectedRef of the last trackable object selected by the user in the tgui window. Updated in the ui_act() proc.

Procs

find_atomFinds the atom in the appropriate list that the selected var indicates
scanRuns a scan of all the trackable atoms.
trackUpdates tracking information of the selected target.
trackableChecks the trackability of the selected target.
trackable_object_refsReturns all ref()s that are being tracked currently

Var Details

arrowstyle

Used by the tgui interface, themed NT or Syndicate.

last_icon_state

Used to keep track of the last value program_open_overlay was set to, to prevent constant unnecessary update_appearance() calls

next_scan

Used to store when the next scan is available.

objects

List of trackable entities. Updated by the scan() proc.

pointercolor

Used by the tgui interface, themed for NT or Syndicate colors.

selected

Ref of the last trackable object selected by the user in the tgui window. Updated in the ui_act() proc.

Proc Details

find_atom

Finds the atom in the appropriate list that the selected var indicates

+

The selected var holds a REF, which is a string. A mob REF may be +something like "mob_209". In order to find the actual atom, we need +to search the appropriate list for the REF string. This is dependant +on the program (Lifeline uses GLOB.human_list, while Fission360 uses +GLOB.poi_list), but the result will be the same; evaluate the string and +return an atom reference.

scan

Runs a scan of all the trackable atoms.

+

Checks each entry in the GLOB of the specific trackable atoms against +the track() proc, and fill the objects list with lists containing the +atoms' names and REFs. The objects list is handed to the tgui screen +for displaying to, and being selected by, the user. A two second +sleep is used to delay the scan, both for thematical reasons as well +as to limit the load players may place on the server using these +somewhat costly loops.

track

Updates tracking information of the selected target.

+

The track() proc updates the entire set of information about the location +of the target, including whether the Ntos window should use a pinpointer +crosshair over the up/down arrows, or none in favor of a rotating arrow +for far away targets. This information is returned in the form of a list.

trackable

Checks the trackability of the selected target.

+

If the target is on the computer's Z level, or both are on station Z +levels, and the target isn't untrackable, return TRUE. +Arguments: +*arg1 is the atom being evaluated.

trackable_object_refs

Returns all ref()s that are being tracked currently

\ No newline at end of file diff --git a/datum/computer_file/program/radar/fission360.html b/datum/computer_file/program/radar/fission360.html new file mode 100644 index 0000000000000..95727e81b9c43 --- /dev/null +++ b/datum/computer_file/program/radar/fission360.html @@ -0,0 +1 @@ +/datum/computer_file/program/radar/fission360 - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

fission360

A program that tracks nukes and nuclear accessories

Procs

on_examineShows how long until the nuke detonates, if one is active.

Proc Details

on_examine

Shows how long until the nuke detonates, if one is active.

\ No newline at end of file diff --git a/datum/computer_file/program/robocontrol.html b/datum/computer_file/program/robocontrol.html new file mode 100644 index 0000000000000..c6ef2f4dc8e46 --- /dev/null +++ b/datum/computer_file/program/robocontrol.html @@ -0,0 +1 @@ +/datum/computer_file/program/robocontrol - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

robocontrol

Vars

botcountNumber of simple robots on-station.
current_accessAccess granted by the used to summon robots.
drone_ping_typesList of all ping types you can annoy drones with.

Var Details

botcount

Number of simple robots on-station.

current_access

Access granted by the used to summon robots.

drone_ping_types

List of all ping types you can annoy drones with.

\ No newline at end of file diff --git a/datum/computer_file/program/science.html b/datum/computer_file/program/science.html new file mode 100644 index 0000000000000..e56aadf809ce8 --- /dev/null +++ b/datum/computer_file/program/science.html @@ -0,0 +1,7 @@ +/datum/computer_file/program/science - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

science

Vars

id_cacheUsed for compressing data sent to the UI via static_data as payload size is of concern
id_cache_seqSequence var for the id cache
lock_accessAccess needed to lock/unlock the console
lockedDetermines if the console is locked, and consequently if actions can be performed with it
stored_researchReference to global science techweb

Procs

compress_idCompresses an ID to an integer representation using the id_cache, used for deduplication +in sent JSON payloads

Var Details

id_cache

Used for compressing data sent to the UI via static_data as payload size is of concern

id_cache_seq

Sequence var for the id cache

lock_access

Access needed to lock/unlock the console

locked

Determines if the console is locked, and consequently if actions can be performed with it

stored_research

Reference to global science techweb

Proc Details

compress_id

Compresses an ID to an integer representation using the id_cache, used for deduplication +in sent JSON payloads

+

Arguments:

+
\ No newline at end of file diff --git a/datum/computer_file/program/scipaper_program.html b/datum/computer_file/program/scipaper_program.html new file mode 100644 index 0000000000000..9f536f1324dd8 --- /dev/null +++ b/datum/computer_file/program/scipaper_program.html @@ -0,0 +1 @@ +/datum/computer_file/program/scipaper_program - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

scipaper_program

Vars

current_tabHere to reduce load. Corresponds to the tab in the UI.
paper_to_beUnpublished, temporary paper datum.
selected_fileThe file under consideration.

Procs

publishPublication and adding points.

Var Details

current_tab

Here to reduce load. Corresponds to the tab in the UI.

paper_to_be

Unpublished, temporary paper datum.

selected_file

The file under consideration.

Proc Details

publish

Publication and adding points.

\ No newline at end of file diff --git a/datum/computer_file/program/secureye.html b/datum/computer_file/program/secureye.html new file mode 100644 index 0000000000000..4966be6104094 --- /dev/null +++ b/datum/computer_file/program/secureye.html @@ -0,0 +1 @@ +/datum/computer_file/program/secureye - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

secureye

Vars

cam_backgroundAll the plane masters that need to be applied.
camera_refWeakref to the active camera
concurrent_usersList of weakrefs of all users watching the program.
internal_trackerInternal tracker used to find a specific person and keep them on cameras.
last_camera_turfThe turf where the camera was last updated.
spyingBoolean on whether or not the app will make noise when flipping around the channels.

Var Details

cam_background

All the plane masters that need to be applied.

camera_ref

Weakref to the active camera

concurrent_users

List of weakrefs of all users watching the program.

internal_tracker

Internal tracker used to find a specific person and keep them on cameras.

last_camera_turf

The turf where the camera was last updated.

spying

Boolean on whether or not the app will make noise when flipping around the channels.

\ No newline at end of file diff --git a/datum/computer_file/program/shipping.html b/datum/computer_file/program/shipping.html new file mode 100644 index 0000000000000..1f7c9a6450307 --- /dev/null +++ b/datum/computer_file/program/shipping.html @@ -0,0 +1 @@ +/datum/computer_file/program/shipping - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shipping

Vars

cut_maxMaximum value for cut_multiplier.
cut_minMinimum value for cut_multiplier.
cut_multiplierThe person who tagged this will receive the sale value multiplied by this number.
payments_accAccount used for creating barcodes.

Var Details

cut_max

Maximum value for cut_multiplier.

cut_min

Minimum value for cut_multiplier.

cut_multiplier

The person who tagged this will receive the sale value multiplied by this number.

payments_acc

Account used for creating barcodes.

\ No newline at end of file diff --git a/datum/computer_file/program/signal_commander.html b/datum/computer_file/program/signal_commander.html new file mode 100644 index 0000000000000..12796ee542785 --- /dev/null +++ b/datum/computer_file/program/signal_commander.html @@ -0,0 +1 @@ +/datum/computer_file/program/signal_commander - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

signal_commander

Vars

radio_connectionRadio connection datum used by signalers.
signal_codeWhat is the saved signal code?
signal_cooldownCooldown store
signal_cooldown_timeHow long do we cooldown before we can send another signal?
signal_frequencyWhat is the saved signal frequency?

Var Details

radio_connection

Radio connection datum used by signalers.

signal_code

What is the saved signal code?

signal_cooldown

Cooldown store

signal_cooldown_time

How long do we cooldown before we can send another signal?

signal_frequency

What is the saved signal frequency?

\ No newline at end of file diff --git a/datum/computer_file/program/status.html b/datum/computer_file/program/status.html new file mode 100644 index 0000000000000..daea25eaa6f37 --- /dev/null +++ b/datum/computer_file/program/status.html @@ -0,0 +1,19 @@ +/datum/computer_file/program/status - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

status

Procs

post_messagePost a message to status displays +Arguments:
post_picturePost a picture to status displays +Arguments:
post_statusPost status display radio packet. +Arguments:

Proc Details

post_message

Post a message to status displays +Arguments:

+

post_picture

Post a picture to status displays +Arguments:

+

post_status

Post status display radio packet. +Arguments:

+
\ No newline at end of file diff --git a/datum/computer_file/program/supermatter_monitor.html b/datum/computer_file/program/supermatter_monitor.html new file mode 100644 index 0000000000000..70e761681d00d --- /dev/null +++ b/datum/computer_file/program/supermatter_monitor.html @@ -0,0 +1,3 @@ +/datum/computer_file/program/supermatter_monitor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

supermatter_monitor

Vars

focused_supermatterThe supermatter which will send a notification to us if it's delamming.
supermattersList of supermatters that we are going to send the data of.

Procs

kill_programApparently destroy calls this /datum/computer_file/Destroy. Here just to clean our references.
refreshRefreshes list of active supermatter crystals
send_alertSends an SM delam alert to the computer if our focused supermatter is delaminating. +[var/obj/machinery/power/supermatter_crystal/focused_supermatter].

Var Details

focused_supermatter

The supermatter which will send a notification to us if it's delamming.

supermatters

List of supermatters that we are going to send the data of.

Proc Details

kill_program

Apparently destroy calls this /datum/computer_file/Destroy. Here just to clean our references.

refresh

Refreshes list of active supermatter crystals

send_alert

Sends an SM delam alert to the computer if our focused supermatter is delaminating. +[var/obj/machinery/power/supermatter_crystal/focused_supermatter].

\ No newline at end of file diff --git a/datum/computer_file/program/themeify.html b/datum/computer_file/program/themeify.html new file mode 100644 index 0000000000000..05b37d53f3a10 --- /dev/null +++ b/datum/computer_file/program/themeify.html @@ -0,0 +1 @@ +/datum/computer_file/program/themeify - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

themeify

Vars

imported_themesList of all themes imported from maintenance apps.

Var Details

imported_themes

List of all themes imported from maintenance apps.

\ No newline at end of file diff --git a/datum/computer_file/program/virtual_pet.html b/datum/computer_file/program/virtual_pet.html new file mode 100644 index 0000000000000..a6e5da065aa1b --- /dev/null +++ b/datum/computer_file/program/virtual_pet.html @@ -0,0 +1 @@ +/datum/computer_file/program/virtual_pet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

virtual_pet

Vars

alter_appearance_cooldowncooldown till we can alter our pet's appearance again
area_rerollcooldown till we can reroll the pet feed dropzone
cheevo_hatshat options that are locked behind achievements
current_level_progresshow much exp we currently have
happinessour current happiness
hat_offsetsmanage hat offsets for when we turn directions
hat_selectionshat options and what level they will be unlocked at
hungerour current hunger
levelour current level
max_happinessour max happiness
max_hungermaximum hunger threshold
on_clean_cooldowncooldown till our pet gains happiness again from being cleaned
petthe pet hologram
pet_state_iconspet icon for each state
pet_typethe type of our pet
possible_colorspossible colors our pet can have
profile_pictureour profile picture
restricted_areasareas we wont drop the chocolate in
selected_areaarea we have picked as dropoff location for petfeed
selected_hathologram hat we have selected for our pet
special_hat_placementA list of hats that override the hat offsets and transform variable
steps_counterhow many steps have we walked
summon_cooldowncooldown till we can release/recall our pet
to_next_levelrequired exp to get to next level

Procs

after_pet_eatdecrease the pet's hunger after it eats
on_change_dirmanage the pet's hat offsets when he changes direction
on_overlays_updatedgive our pet his hologram hat
on_pet_enteredstart processing if we enter the pda and need healing

Var Details

alter_appearance_cooldown

cooldown till we can alter our pet's appearance again

area_reroll

cooldown till we can reroll the pet feed dropzone

cheevo_hats

hat options that are locked behind achievements

current_level_progress

how much exp we currently have

happiness

our current happiness

hat_offsets

manage hat offsets for when we turn directions

hat_selections

hat options and what level they will be unlocked at

hunger

our current hunger

level

our current level

max_happiness

our max happiness

max_hunger

maximum hunger threshold

on_clean_cooldown

cooldown till our pet gains happiness again from being cleaned

pet

the pet hologram

pet_state_icons

pet icon for each state

pet_type

the type of our pet

possible_colors

possible colors our pet can have

profile_picture

our profile picture

restricted_areas

areas we wont drop the chocolate in

selected_area

area we have picked as dropoff location for petfeed

selected_hat

hologram hat we have selected for our pet

special_hat_placement

A list of hats that override the hat offsets and transform variable

steps_counter

how many steps have we walked

summon_cooldown

cooldown till we can release/recall our pet

to_next_level

required exp to get to next level

Proc Details

after_pet_eat

decrease the pet's hunger after it eats

on_change_dir

manage the pet's hat offsets when he changes direction

on_overlays_updated

give our pet his hologram hat

on_pet_entered

start processing if we enter the pda and need healing

\ No newline at end of file diff --git a/datum/config_entry.html b/datum/config_entry.html new file mode 100644 index 0000000000000..ab72c6abdd5f1 --- /dev/null +++ b/datum/config_entry.html @@ -0,0 +1 @@ +/datum/config_entry - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

config_entry

Vars

abstract_typeDo not instantiate if type matches this
config_entry_valueThe configured value for this entry. This shouldn't be initialized in code, instead set default
defaultRead-only default value for this config entry, used for resetting value to defaults when necessary. This is what config_entry_value is initially set to
default_protectionStores the original protection configuration, used for set_default()
deprecated_byThe config name of a configuration type that depricates this, if it exists
dupes_allowedControls if error is thrown when duplicate configuration values for this entry type are encountered
modifiedSet to TRUE if the default has been overridden by a config entry
nameRead-only, this is determined by the last portion of the derived entry type
protectionThe /datum/config_entry type that supercedes this one
resident_fileThe file which this was loaded from, if any
vv_VASForce validate and set on VV. VAS proccall guard will run regardless.

Procs

set_defaultReturns the value of the configuration datum to its default, used for resetting a config value. Note this also sets the protection back to default.

Var Details

abstract_type

Do not instantiate if type matches this

config_entry_value

The configured value for this entry. This shouldn't be initialized in code, instead set default

default

Read-only default value for this config entry, used for resetting value to defaults when necessary. This is what config_entry_value is initially set to

default_protection

Stores the original protection configuration, used for set_default()

deprecated_by

The config name of a configuration type that depricates this, if it exists

dupes_allowed

Controls if error is thrown when duplicate configuration values for this entry type are encountered

modified

Set to TRUE if the default has been overridden by a config entry

name

Read-only, this is determined by the last portion of the derived entry type

protection

The /datum/config_entry type that supercedes this one

resident_file

The file which this was loaded from, if any

vv_VAS

Force validate and set on VV. VAS proccall guard will run regardless.

Proc Details

set_default

Returns the value of the configuration datum to its default, used for resetting a config value. Note this also sets the protection back to default.

\ No newline at end of file diff --git a/datum/config_entry/keyed_list.html b/datum/config_entry/keyed_list.html new file mode 100644 index 0000000000000..32edecf0fa176 --- /dev/null +++ b/datum/config_entry/keyed_list.html @@ -0,0 +1 @@ +/datum/config_entry/keyed_list - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

keyed_list

Vars

lowercase_keywhether the key names will be lowercased on ValidateAndSet or not.

Procs

validate_config_keyTakes a given config key and validates it. If successful, returns the formatted key. If unsuccessful, returns null.
validate_config_valueTakes a given config value and validates it. If successful, returns the formatted key. If unsuccessful, returns null.

Var Details

lowercase_key

whether the key names will be lowercased on ValidateAndSet or not.

Proc Details

validate_config_key

Takes a given config key and validates it. If successful, returns the formatted key. If unsuccessful, returns null.

validate_config_value

Takes a given config value and validates it. If successful, returns the formatted key. If unsuccessful, returns null.

\ No newline at end of file diff --git a/datum/config_entry/str_list.html b/datum/config_entry/str_list.html new file mode 100644 index 0000000000000..183f87e1a8d9e --- /dev/null +++ b/datum/config_entry/str_list.html @@ -0,0 +1 @@ +/datum/config_entry/str_list - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

str_list

List config entry, used for configuring a list of strings

Vars

lowercasewhether the string elements will be lowercased on ValidateAndSet or not.

Var Details

lowercase

whether the string elements will be lowercased on ValidateAndSet or not.

\ No newline at end of file diff --git a/datum/config_entry/string.html b/datum/config_entry/string.html new file mode 100644 index 0000000000000..192f0f1ddadc6 --- /dev/null +++ b/datum/config_entry/string.html @@ -0,0 +1 @@ +/datum/config_entry/string - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

string

Vars

lowercasewhether the string will be lowercased on ValidateAndSet or not.

Var Details

lowercase

whether the string will be lowercased on ValidateAndSet or not.

\ No newline at end of file diff --git a/datum/contractor_hub.html b/datum/contractor_hub.html new file mode 100644 index 0000000000000..9ac9c68cbd25b --- /dev/null +++ b/datum/contractor_hub.html @@ -0,0 +1 @@ +/datum/contractor_hub - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

contractor_hub

Vars

assigned_contractsList of all available syndicate contracts that can be taken.
assigned_targetsList of all people currently used as targets, to not roll doubles.
contract_TC_payed_outHow much TC has been paid out, for flavor in the UI & round-end logs.
contract_TC_to_redeemHow much TC we can cash out currently. Used when redeeming TC and for round-end logs.
contractor_teammateReference to a contractor teammate, if one has been purchased.
contracts_completedAmount of contracts that have already been completed, for flavor in the UI & round-end logs.
current_contractThe current contract in progress, and can be null if no contract is in progress.

Var Details

assigned_contracts

List of all available syndicate contracts that can be taken.

assigned_targets

List of all people currently used as targets, to not roll doubles.

contract_TC_payed_out

How much TC has been paid out, for flavor in the UI & round-end logs.

contract_TC_to_redeem

How much TC we can cash out currently. Used when redeeming TC and for round-end logs.

contractor_teammate

Reference to a contractor teammate, if one has been purchased.

contracts_completed

Amount of contracts that have already been completed, for flavor in the UI & round-end logs.

current_contract

The current contract in progress, and can be null if no contract is in progress.

\ No newline at end of file diff --git a/datum/controller/configuration.html b/datum/controller/configuration.html new file mode 100644 index 0000000000000..8721612851304 --- /dev/null +++ b/datum/controller/configuration.html @@ -0,0 +1 @@ +/datum/controller/configuration - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

configuration

Vars

configuration_errorsA list of configuration errors that occurred during load
ic_filter_reasonsAn assoc list of blocked IC words to their reasons
ic_filter_regexA regex that matches words blocked IC
ic_outside_pda_filter_reasonsAn assoc list of words that are blocked IC, but not in PDAs, to their reasons
ic_outside_pda_filter_regexA regex that matches words blocked IC, but not in PDAs
loadedIf the configuration is loaded
ooc_filter_regexA regex that matches words blocked OOC
shared_filter_reasonsAn assoc list of words that are blocked both IC and OOC to their reasons
soft_ic_filter_reasonsAn assoc list of soft blocked IC words to their reasons
soft_ic_filter_regexA regex that matches words soft blocked IC
soft_ic_outside_pda_filter_reasonsAn assoc list of words that are soft blocked IC, but not in PDAs, to their reasons
soft_ic_outside_pda_filter_regexA regex that matches words soft blocked IC, but not in PDAs
soft_ooc_filter_regexA regex that matches words soft blocked OOC
soft_shared_filter_reasonsAn assoc list of words that are soft blocked both IC and OOC to their reasons

Procs

update_chat_filter_regexesWill update the internal regexes of the chat filter based on the filter reasons
validate_job_configCheck to ensure that the jobconfig is valid/in-date.

Var Details

configuration_errors

A list of configuration errors that occurred during load

ic_filter_reasons

An assoc list of blocked IC words to their reasons

ic_filter_regex

A regex that matches words blocked IC

ic_outside_pda_filter_reasons

An assoc list of words that are blocked IC, but not in PDAs, to their reasons

ic_outside_pda_filter_regex

A regex that matches words blocked IC, but not in PDAs

loaded

If the configuration is loaded

ooc_filter_regex

A regex that matches words blocked OOC

shared_filter_reasons

An assoc list of words that are blocked both IC and OOC to their reasons

soft_ic_filter_reasons

An assoc list of soft blocked IC words to their reasons

soft_ic_filter_regex

A regex that matches words soft blocked IC

soft_ic_outside_pda_filter_reasons

An assoc list of words that are soft blocked IC, but not in PDAs, to their reasons

soft_ic_outside_pda_filter_regex

A regex that matches words soft blocked IC, but not in PDAs

soft_ooc_filter_regex

A regex that matches words soft blocked OOC

soft_shared_filter_reasons

An assoc list of words that are soft blocked both IC and OOC to their reasons

Proc Details

update_chat_filter_regexes

Will update the internal regexes of the chat filter based on the filter reasons

validate_job_config

Check to ensure that the jobconfig is valid/in-date.

\ No newline at end of file diff --git a/datum/controller/global_vars.html b/datum/controller/global_vars.html new file mode 100644 index 0000000000000..cc01013446523 --- /dev/null +++ b/datum/controller/global_vars.html @@ -0,0 +1,199 @@ +/datum/controller/global_vars - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

global_vars

Vars

GPS_listGlobal GPS_list. All GPS components get saved in here for easy reference.
WALLITEMS_INTERIORChecks if that loc and dir has an item on the wall
abstract_mob_typesList of types of abstract mob which shouldn't usually exist in the world on its own if we're spawning random mobs
achievement_categoriesA list of the current achievement categories supported by the UI and checked by the achievement unit test
achievement_soundsA list of sounds that can be played when unlocking an achievement, set in the preferences.
active_jammersList of active radio jammers
adamantine_recipesOthers
admin_activitiesAll admin related log lines minus their categories
admin_statetgui state: admin_state
admin_trait_name_mapvalue -> trait name, generated as needed for adminning.
ai_controllers_by_statusbasic ai controllers based on status
ai_controllers_by_zlevelbasic ai controllers based on their z level
ai_employersemployers for malfunctioning ais. they do not have sides, unlike traitors.
ai_subtreesall basic ai subtrees
air_alarm_modesKeys are /datum/air_alarm_mode paths +Values are their respective instances.
alcohol_containersAssociative list of alcoholic container typepath to instances, currently used by the alcoholic quirk
alive_player_listAll alive mobs with clients.
all_languagesList if all language typepaths learnable, IE, those with keys
all_loadout_categoriesGlobal list of all loadout categories +Doesn't really NEED to be a global but we need to init this early for preferences, +as the categories instantiate all the loadout datums
all_loadout_datumsGlobal list of ALL loadout datums instantiated. +Loadout datums are created by loadout categories.
all_ongoing_hallucinationsA global list of all ongoing hallucinations, primarily for easy access to be able to stop (delete) hallucinations.
all_voice_of_god_triggersUsed to stop listeners with silly or clown-esque (first) names such as "Honk" or "Flip" from screwing up certain commands.
all_wound_pregen_dataA assoc list of (wound typepath -> wound_pregen_data instance). Every wound should have a pregen data.
allowed_moneyA static typecache of all the money-based items that can be actively used as currency.
always_statetgui state: always_state
animatable_blacklistMimics can't be made out of these objects
announcer_keysGlobal list of all of our announcer keys.
areasJust a list of all the area objects in the game +Note, areas can have duplicate types
areas_by_typeAn association from typepath to area instance. Only includes areas with unique set.
armor_by_typeAssosciative list of type -> armor. Used to ensure we always hold a reference to default armor datums
base_starlight_colorThe base color of light space emits
basketball_bad_signuplist of ghosts who want to play basketball that have since disconnected. They are kept in the lobby, but not counted for starting a game.
basketball_gamethe current global basketball game running.
basketball_signuplist of ghosts who want to play basketball, every time someone enters the list it checks to see if enough are in
battle_royale_regionsGlobal list of areas which are considered to be inside the same department for our purposes
bio_state_anatomyA assoc list of BIO_ define to EXTERIOR/INTERIOR defines. +This is where the interior/exterior state of a given biostate is set. +Note that not all biostates are guaranteed to be one of these - and in fact, many are not +IMPORTANT NOTE: All keys are stored as text and must be converted via text2num
bioscrambler_organs_blacklistBlacklist of organs which should not appear when bioscrambled. +Either will look terrible outside of intended host, give you magical powers, are irreversible, or kill you
bioscrambler_parts_blacklistBlacklist of parts which should not appear when bioscrambled, largely because they will make you look totally fucked up
bioscrambler_valid_organsList of organs we can apply to people
bioscrambler_valid_partsList of body parts we can apply to people
biotypes_to_scar_fileAssoc list of biotype -> ideal scar file to be used and grab stuff from.
bitfieldsList of all things that can be dispensed by an arcade cabinet and the weight of them being picked.
blacklisted_metalgen_typesTurfs metalgen can't touch
blob_telepathy_mobsAll living mobs which can hear blob telepathy
bluespace_sendersAll bluespace gas senders
bombersAll bomb related messages
bsa_unlockBSA unlocked by head ID swipes
cable_listList of all cables, so that powernets don't have to look through the entire world all the time
cached_mapsList of all the maps that have been cached for /proc/load_map
cached_storage_typecachesAlmost 100% of the time the lists passed into set_holdable are reused for each instance +Just fucking cache it 4head +Yes I could generalize this, but I don't want anyone else using it. in fact, DO NOT COPY THIS +If you find yourself needing this pattern, you're likely better off using static typecaches +I'm not because I do not trust implementers of the storage component to use them, BUT +IF I FIND YOU USING THIS PATTERN IN YOUR CODE I WILL BREAK YOU ACROSS MY KNEES +~Lemon
can_pass_info_varsList of vars on /datum/can_pass_info to use when checking two instances for equality
carp_colorsWeighted list of colours a carp can be +Weighted list of usual carp colors
cell_line_tablesThese global lists exist to allow our element to have weight tables without having to be separate instances. +Assoc list of cell line define | assoc list of datum | cell_line
cell_virus_tablesAssoc list of cell virus define | assoc list of datum | cell_virus
chasm_detritus_typesList containing chasm detritus singletons.
chasm_fallen_mobsGlobal list needed to let fishermen with a rescue hook fish fallen mobs from any place
chemical_reactions_listlist of all /datum/chemical_reaction datums indexed by their typepath. Use this for general lookup stuff
chemical_reactions_list_product_indexlist of all /datum/chemical_reaction datums. Used for the reaction lookup UI. Indexed by PRODUCT type
chemical_reactions_list_reactant_indexlist of all /datum/chemical_reaction datums. Used during chemical reactions. Indexed by REACTANT types
chemical_reactions_results_lookup_listlist of all reactions with their associated product and result ids. Used for reaction lookups
chemical_reagents_listlist of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff
chicken_countCounter for number of chicken mobs in the universe. Chickens will not lay fertile eggs if it exceeds the MAX_CHICKENS define.
chicks_from_eggsCounter for number of chicks hatched by throwing eggs, minecraft style. Chicks will not emerge from thrown eggs if this value exceeds the MAX_CHICKENS define.
clown_mask_optionsMap of names of clown mask types to clown mask icon states
colonist_suit_allowedThe items the frontier clothing can hold
conscious_statetgui state: conscious_state
contained_statetgui state: contained_state
cooking_recipesGlobal list of all cooking related crafting recipes.
cooking_recipes_atomsThis is a global list of typepaths, these typepaths are atoms or reagents that are associated with cooking recipes. +This includes stuff like recipe components and results.
crafting_recipesGlobal list of all non-cooking related crafting recipes.
crafting_recipes_atomsThis is a global list of typepaths, these typepaths are atoms or reagents that are associated with crafting recipes. +This includes stuff like recipe components and results.
ctf_gamesA list containing all loaded CTF games
cult_narsieThe global Nar'sie that the cult's summoned
current_anonymous_themeglobal reference to the current theme, if there is one.
current_highpriestA weakref to the current high priest mob
current_living_antagsAll alive antags with clients.
current_observers_listAll observers with clients that joined as observers.
curtainsList of all curtains for button tracking
cyborg_all_models_icon_listTo store all of the different cyborg model icons, instead of creating them every time the be_transformed_to() proc is called.
cyborg_base_models_icon_listTo store all of the different base cyborg model icons, instead of creating them every time the pick_module() proc is called.
cyborg_model_listTo store all the different cyborg models, instead of creating that for each cyborg.
dead_player_listAll dead mobs with clients. Does not include observers.
deep_inventory_statetgui state: deep_inventory_state
default_mutant_bodypartsWhat accessories can a species have as well as their default accessory of such type e.g. "frills" = "Aquatic". Default accessory colors is dictated by the accessory properties and mutcolors of the specie
default_pda_themesList of PDA themes that are accessible to everyone by default.
default_statetgui state: default_state
deliverybeaconsList of all active delivery beacons
deliverybeacontagsList of all active delivery beacon locations
department_security_spawnslist of all department security spawns
donator_listThe list of all donators.
dorms_areaslist of dorms areas for doing event checks
drone_machine_blacklist_enabledIf drones are blacklisted from certain sensitive machines
dug_up_basaltUsed by ashstorms to replenish basalt tiles that have been dug up without going through all of them.
duplicate_forbidden_varsList of all vars that will not be copied over when using duplicate_object()
dynamic_forced_rulesetsRulesets which have been forcibly enabled or disabled
dynamic_human_appearancesGlobal list of all dynamically generated icons, for caching, so we don't have to generate multiple times.
dynamic_ruleset_categoriesBitflags used during init by Dynamic to determine which rulesets we're allowed to use, used by station traits for gamemode-esque experiences
dynamic_station_traitsModify the threat level for station traits before dynamic can be Initialized. List(instance = threat_reduction)
editable_sign_typesThis is a global list of all signs you can change an existing sign or new sign backing to, when using a pen on them.
em_block_colorA globally cached version of EM_BLOCK_COLOR for quick access.
em_mask_matrixA globally cached version of EM_MASK_MATRIX for quick access.
embed_by_typeAssosciative list of type -> embed data.
emissive_colorA globally cached version of EMISSIVE_COLOR for quick access.
exodrone_launchersAll exodrone launchers.
exodronesAll exodrones.
exoscanner_bandsList of scanned distances
exploration_sitesAll exploration site instances
explorer_drone_adventure_db_entriesAll possible adventures in raw form
fake_reagent_blacklistlist of all reagents that are parent types used to define a bunch of children - but aren't used themselves as anything.
features_by_speciesAn assoc list of species types to their features (from get_features())
fileaccess_timerFor FTP requests. (i.e. downloading runtime logs.)
fire_appearancesGlobal list that containes cached fire overlays for mobs
first_officerTo know whether or not we have an officer already
fish_evolutionsA global list of fish evolutions, which are singletons.
fish_traitsA global list of singleton fish traits by their paths
fishes_by_fish_evolutionA list of fish evolution types, each having an associated list containing all fish types that have it.
floor_designsall designs supported by the RTD
floor_diseasesPossible diseases
focused_testsA list of every test that is currently focused. +Use the PERFORM_ALL_TESTS macro instead.
food_buffsWeighted lists of crafted food buffs randomly given according to crafting_complexity unless the food has a specific buff
food_ic_flag_to_bitflagA mirror of the FOOD_FLAGS_IC define, except with bitflags as values and as a GLOB.
food_quality_descriptionLabels for food quality
food_quality_eventsMood events for food quality
force_eng_overrideManual override for when it's not orange alert.
fun_statetgui state: fun_state
gas_id_to_canisterList of all the gases, used in labelling the canisters
gas_recipe_metaGlobal list of recipes for atmospheric machines to use
gateway_destinationsList of possible gateway destinations.
generic_event_spawnsList of generic landmarks placed around the map where there are likely to be players and are identifiable at a glance - +Such as public hallways, department rooms, head of staff offices, and non-generic maintenance locations
glass_style_singletonsGlobal list of all glass style singletons created. See /proc/create_glass_styles for list format.
glide_size_multiplierCompensating for time dilation
global_funny_embeddingset this to a new instance of a SUBTYPE of global_funny_embedding. The main type is a prototype and will runtime really hard
global_trait_name_mapvalue -> trait name, list of ALL traits that exist in the game, used for any type of accessing.
golem_stack_food_directoryAssociated list of stack types to a golem food
golem_stack_food_typesGolem food datum singletons
gravity_generatorsWe will keep track of this by adding new gravity generators to the list, and keying it with the z level.
greyscale_menu_statetgui state: greyscale menu
guardian_themesAssoc list of guardian theme singletons
gutlunch_countkeeps track of how many gutlunches are born
hands_statetgui state: hands_state
has_antagonist_hudsAll active /datum/atom_hud/alternate_appearance/basic/has_antagonist instances
heretic_sacrifice_landmarksA global assoc list of all landmarks that denote a heretic sacrifice location. [string heretic path] = [landmark].
heretic_start_knowledgeGlobal list of all heretic knowledge that have route = PATH_START. List of PATHS.
hfr_fuels_listGlobal list of recipes for atmospheric machines to use
hijack_employersemployers who hire agents to do the hijack
hivemind_usersA list containing users of the Hivemind NIFSoft
holidaysHOLIDAYS
holy_successorslist of weakrefs to highpriest successor candidates. Every chaplain who joins after the initial chaplain is added to this list. The next high priest is chosen from them by seniority.
hostile_machinesList of objects that AIs will treat as targets
huds_by_categorygets filled by each /datum/atom_hud/New(). +associative list of the form: list(hud category = list(all global atom huds that use that category))
human_adjacent_statetgui state: human_adjacent_state
human_heights_to_offsetsAssoc list of all heights, cast to strings, to """"tuples""""" +The first """tuple""" index is the upper body offset +The second """tuple""" index is the lower body offset
human_invader_antagonistsList of human antagonist types which don't spawn directly on the space station
ice_cream_flavoursICE CREAM FLAVOUR DATUM STUFF
icon_dimensionsCache of the width and height of icon files, to avoid repeating the same expensive operation
identity_block_lengthsSome identity blocks (basically pieces of the unique_identity string variable of the dna datum, commonly abbreviated with ui) +may have a length that differ from standard length of 3 ASCII characters. This list is necessary +for these non-standard blocks to work, as well as the entire unique identity string. +Should you add a new ui block which size differ from the standard (again, 3 ASCII characters), like for example, a color, +please do not forget to also include it in this list in the following format: +"[dna block number]" = dna block size, +Failure to do that may result in bugs. Thanks.
infuser_entriesA list of all infuser entries
integrated_circuitsA list of all integrated circuits
intento_playersAll people who have used an Intento this round along with their high scores.
intercoms_listlist of wallmounted intercom radios.
inventory_statetgui state: inventory_state
investigate_signalerInvestigate log for signaler usage, use the add_to_signaler_investigate_log proc
jobspawn_overridesAssoc list of "job titles" to "job landmarks" +These will take precedence over normal job spawnpoints if created, +essentially allowing a user to override generic job spawnpoints with a specific one
joinable_mobsList of all mobs with the "ghost_direct_control" component
landmarks_listlist of all landmarks created
language_datum_instancesList of language prototypes to reference, assoc [type] = prototype
language_menu_statetgui state: language_menu_state
lawchangesStores who uploaded laws to which silicon-based lifeform, and what the law was
layers_to_offsetUsed for human height overlay adjustments +Certain standing overlay layers shouldn't have a filter applied and should instead just offset by a pixel y +This list contains all the layers that must offset, with its value being whether it's a part of the upper half of the body (TRUE) or not (FALSE)
light_pirate_gangsglobal lists of all pirate gangs that can show up today. they will be taken out of the global lists as spawned so dupes cannot spawn.
light_typesGlobal list of all light template types
liquid_debug_colorsPROPER GROUPING
lobby_station_traitsStation traits displayed in the lobby
log_directoryThe directory in which ALL log files should be stored
mafia_bad_signuplist of ghosts who want to play mafia that have since disconnected. They are kept in the lobby, but not counted for starting a game.
mafia_early_voteslist of ghosts in mafia_signup who have voted to start early
mafia_gamethe current global mafia game running.
mafia_signuplist of ghosts who want to play mafia, every time someone enters the list it checks to see if enough are in
magicarp_spell_coloursAssociative list of magicarp spells to colours, expand this list if you expand the other lists
magicarp_spell_typesA list of spells magicarp can use and a corresponding name prefix to apply
map_incident_displaysList of incident displays on the map +Required as persistence subsystem loads after the ones present at mapload, and to reset to 0 upon explosion.
map_loaded_sensorslist of all air sensor's created round start
map_reportsGlobal list of map report datums
map_writing_runningA guard variable to prevent more than one map export process from occurring at the same time.
marker_beacon_colorsMarker Beacons
mass_teachingA global singleton datum used to store a "summon things controller" for Mass Teaching, to grant a specific spellbook entry to stationgoers and latejoiners
mechas_listList of all mechs for hostile mob target tracking
megafauna_spawn_listGlobal list of megafauna spawns on cave gen
message_delayUsed to make sure restarting the recent_messages list is kept in sync.
message_modes_stat_limitsWhitelist of saymodes or radio extensions that can be spoken through even if not fully conscious. +Associated values are their maximum allowed mob stats.
meteor_eyeballsList of all the meteor eyeballs so we can gib them upon meteor death
meteor_listList of all meteors.
mob_spawnersList of all instances of /obj/effect/mob_spawn/ghost_role in the game world
mod_link_idsGlobal list of all ids associated to a /datum/mod_link instance
mod_themesGlobal list of all /datum/mod_theme
modular_persistence_ignored_varsA list of vars that shouldn't be tracked by persistence.
mook_commandscommands the chief can pick from
name2reagentMap of reagent names to its datum path
nanotrasen_employersemployers that are from Nanotrasen
narcd_underagesunderages who have been reported to security for trying to buy things they shouldn't, so they can't spam
navbeaconsList of all nav beacons indexed by stringified z level
nearsighted_glassesLists related to quirk selection +Types of glasses that can be selected at character selection with the Nearsighted quirk
never_statetgui state: never_state
new_player_statetgui state: new_player_state
normal_employersemployers who hire agents to do a task and escape... or martyrdom. whatever
not_incapacitated_statetgui state: not_incapacitated_state
not_incapacitated_turf_statetgui state: not_incapacitated_turf_state
notcontained_statetgui state: notcontained_state
objective_machine_handlerDatum which manages references to things we are instructed to destroy
objects_by_id_tagA list of all /obj by their id_tag
observer_statetgui state: observer_state
oilfry_blacklisted_itemsGlobal typecache of things which should never be fried.
order_console_productsList of all items that can be found in the different types of order consoles, to purchase.
ore_silo_defaultThe global ore silo shared by all machines at round start
ore_vent_minerals_lavalandSets of global lists breaking down the base spawning distributions for various maps and stations.
ore_vent_sizesList of how many ore vents spawned, and of what size.
organ_choiceOptions for Prosthetic Organ
organ_process_orderDefines how a mob's organs_slot is ordered +Exists so Life()'s organ process order is consistent
paper_blanksPaper blanks (form templates, basically). Loaded from config/blanks.json. +If invalid or not found, set to null.
paraplegic_choiceParaplegic Quirk
parasitesList of all guardians currently extant
part_choice_transhumanTranshumanist quirk
pda_mafia_signuplist of PDAs who want to play mafia, every time someone enters the list it checks to see if enough are in
pda_messengersA list of all active and visible messengers
pda_name_to_themeList of PDA themes that are accessible to everyone by default.
petsplosion_candidatesCandidates for the petsplosion wizard event
phobia_typesPhobia types that can be pulled randomly for brain traumas. +Also determines what phobias you can choose as your preference with the quirk.
physical_obscured_statetgui state: physical_obscured_state
physical_statetgui state: physical_state
picture_log_directoryPicture logging
pillars_by_zList of z pillars (datums placed in the bottom left of XbyX squares that control transparency in that space) +The pillars are stored in triple depth lists indexed by (world_size % pillar_size) + 1 +They are created at transparent turf request, and deleted when no turfs remain
pinpointer_listlist of all pinpointers. Used to change stuff they are pointing to all at once.
pipe_color_nameNames shown in the examine for every colored atmos component
pipe_colors_orderedList that sorts the colors and is used for setting up the pipes layer so that they overlap correctly
pipe_paint_colorsAll colors available to pipes and atmos components
player_detailsassoc list of ckey -> /datum/player_details
plumbing_layer_namesReverse of plumbing_layers, as "[bitflag]" => name
plumbing_layersList of plumbing layers as name => bitflag
poll_optionsAll poll option datums of running polls
pollsAll currently running polls held as datums
portalsList of all portals
possible_alcoholic_addictionsOptions for the Alcoholic quirk to choose from
possible_junkie_addictionsOptions for the Junkie quirk to choose from
possible_smoker_addictionsOptions for the Smoker quirk to choose from
post_ore_manualList of how many minerals spawned randomly off of mining Z-levels, and at what quantity.
post_ore_randomList of how many minerals spawned based on proximity to an ore vent.
pref_checked_clothesGlobal list containing all the clothing we'd want to check prefs for before we put on someone.
preference_entriesAn assoc list list of types to instantiated /datum/preference instances
preference_entries_by_keyAn assoc list of preference entries by their savefile_key
prev_favorThe previous sect's favor value
prev_sect_typeThe previous sect's typepath
prisoner_crimesTypes of Crimes Prisoners will have on their record roundstart. +(They also can choose Random, which picks from these options... randomly!)
prosthetic_limb_choiceOptions for the prosthetic limb quirk to choose from
prototype_language_holdersA global assoc list containing prototypes of all language holders +[Language holder typepath] to [language holder instance] +Used for easy reference of what can speak what without needing to constantly recreate language holders.
quirk_species_whitelistNeccesary for accessing non-instanced quirk whitelists, as initial() cannot access lists
random_hallucination_weighted_listGlobal weighted list of all hallucinations that can show up randomly.
rcd_designsall stuff used by RCD for construction
rcd_listlist of Rapid Construction Devices.
reagent_containersList of containers the Chem Master machine can print
reality_smash_trackWe want reality_smash_tracker to exist only once and be accessible from anywhere.
recent_messagesGlobal list of recent messages broadcasted : used to circumvent massive radio spam
required_map_itemsGlobal assoc list of required mapping items, [item typepath] to [required item datum].
revenant_relay_mobsAll "living" (because revenants are in between mortal planes or whatever) mobs that can hear revenants
reverse_contained_statetgui state: reverse_contained_state
round_default_lawsetSee /proc/get_round_default_lawset, do not get directily. +This is the default lawset for silicons.
roundstart_station_borgcharger_areasList of area names of roundstart station cyborg rechargers, for the low charge/no charge cyborg screen alert tooltips.
roundstart_station_closetsA comprehensive list of all closets (NOT CRATES) in the game world
roundstart_station_mechcharger_areasList of area names of roundstart station mech rechargers, for the low charge/no charge mech screen alert tooltips.
rpgloot_controllerHolds the global datum for rpgloot, so anywhere may check for its existence (it signals into whatever it needs to modify, so it shouldn't require fetching)
rpgtitle_controllerHolds the global datum for rpgtitle, so anywhere may check for its existence (it signals into whatever it needs to modify, so it shouldn't require fetching)
rune_typesAssoc list of every rune that can be drawn by ritual daggers. [rune_name] = [typepath]
sacrificedlist of weakrefs to mobs OR minds that have been sacrificed
sacrifices_usedhow many sacrifices we have used, cultists get 1 free revive at the start
scan_conditionsScan condition instances
scanned_fish_by_techweba superlist containing typecaches shared between the several fish scanning experiments for each techweb.
screentip_context_iconsStores the cursor hint icons for screentip context.
security_officer_distributionThe department distribution of the security officers.
see_through_mapsglobal statics for the see_through_component coordinate maps +For ease of use, include a comment in the shape of the coordinate map, where O is nothing, X is a hidden tile and A is the object +List-coordinate layout is list(relative_x, relative_y, relative_z) +Turf finding algorithm needs the z and you can totally use it, but I can't think of any reason to ever do it +Also it'd be really cool if you could keep the list-coordinates in here represent their actual relative coords, dont use tabs though since their spacing can differ
self_statetgui state: self_state
shuttle_caller_listList of all atoms that can call the shuttle, for automatic shuttle calls when there are none.
side_choice_hemiplegicHemiplegic Quirk
silo_access_logsList of logs shared by all silos
singularitiesList of all singularity components that exist
sm_delam_listPriority is top to bottom.
sm_gas_behaviorAssoc of sm_gas_behavior/datum/gas (path) = datum/sm_gas (instance)
sniffable_sheetslist of all sheets with sniffable = TRUE for the sniffer to locate
sortedAreasUsed by jump-to-area etc. Updated by area/updateName() +If this is null, it needs to be recalculated. Use get_sorted_areas() as a getter please
soulcatchersGlobal list containing any and all soulcatchers
spanname_to_formattingA giant associative list of span names, and the associated key to create the text span. Used for narrate verbs.
special_rolesThis defines the antagonists you can operate with in the settings. +Keys are the antagonist, values are the number of days since the player's +first connection in order to play.
species_listAn assoc list of species IDs to type paths
species_prototypesList of all species prototypes to reference, assoc [type] = prototype
specific_fish_iconsWhen adding new fishable rewards to a table/counts, you can specify an icon to show in place of the +generic fish icon in the minigame UI should the user have the TRAIT_REVEAL_FISH trait, by adding it to +this list.
splattablesplat subtype, handling signals and mood logic
spontaneous_fish_traitsA nested list of fish types and traits that they can spontaneously manifest with associated probabilities +e.g. list(/obj/item/fish = list(/datum/fish_trait = 100), etc...)
starlight_colorThe color of light space is currently emitting
starlight_objectsList of plane offset + 1 -> object to display to use +Fills with offsets as they are generated +Holds a list of objects that represent starlight. The idea is to render_source them +So modifying starlight requires touching only one place (NOTE: this doesn't work for the area overlays) +In order to modify them you need to use set_starlight. Areas don't work with render sources it looks like
starlight_overlaysList of plane offset + 1 -> mutable appearance to use +Fills with offsets as they are generated +They mirror their appearance from the starlight objects, which lets us save +time updating them
starlight_powerThe power of the light space is throwin out
starlight_rangeThe range of the light space is displaying
start_landmarks_listlist of all job spawn points created
station_nuke_sourceThe source of the last nuke that went off
station_was_nukedWhether the station has been nuked itself. TRUE only if the station was actually hit by the nuke, otherwise FALSE
stock_part_datumsMap of stock part type to their singleton
stock_part_datums_per_objectMap of physical stock part types to their /datum/stock_part
summon_gunsA global singleton datum used to store a "summon things controller" for Summon Guns, to grant random guns to stationgoers and latejoiners
summon_magicA global singleton datum used to store a "summon things controller" for Summon Magic, to grant random magical items to stationgoers and latejoiners
surgeries_listlist of all surgeries by name, associated with their path.
syndicate_employersemployers that are from the syndicate
syndicate_shuttle_boardsList of all nukie shuttle boards, for forcing launch delay if they declare war
target_interested_atomsStatic typecache list of things we are interested in +Consider this a union of the for loop and the hearers call from below +Must be kept up to date with the contents of hostile_machines
tcgcard_health_bar_radial_choicesGlobal list containing all options used for the TGC health button.
tcgcard_mana_bar_radial_choicesGlobal list containing all options used for the TGC mana button.
telecomms_listA list of all of the /obj/machinery/telecomms (and subtypes) machines +that exist in the world currently.
teleport_runesList of all teleport runes
teleportbeaconsList of all active teleport beacons
teleportlocsA list of teleport locations
the_gatewayStation home gateway
the_station_areasGlobal list of AREA TYPES that are associated with the station.
time_last_changed_positionThe time since the last job opening was created
timezoneOffsetThe difference betwen midnight (of the host computer) and 0 world.ticks.
topdown_planesWhitelist of planes allowed to use TOPDOWN_LAYER
total_uf_len_by_blockDitto but for unique features. Used by the datum/dna/set_uni_feature_block and datum/dna/get_uni_feature_block procs.
total_ui_len_by_blockThe same rules of the above also apply here, with the exception that this is for the unique_features string variable +(commonly abbreviated with uf) and its blocks. Both ui and uf have a standard block length of 3 ASCII characters.
tracked_implantsList of all implants currently implanted into a mob
triple_ai_controllerglobal reference to the current theme, if there is one.
typecache_elevated_structuresA typecache listing structures that are considered to have surfaces that you can place items on that are higher than the floor. This, of course, should be restricted to /atom/movables. This is primarily used for food decomposition code.
typecache_general_bad_hostile_attack_targetsA typecache of objects that player controlled, easily accessible, hostile mobs should not be able to attack
typecache_general_bad_things_to_easily_moveA typecache of objects that player controlled, easily accessible, hostile mobs should not be able to move around easily
typecache_holodeck_linked_floorcheck_oktypecache for turfs that should be considered ok during floorchecks. +A linked turf being anything not in this typecache will cause the holodeck to perform an emergency shutdown.
uncommon_roundstart_languagesList of all roundstart languages by path except common
unit_test_mapping_logsWhen unit testing, all logs sent to log_mapping are stored here and retrieved in log_mapping unit test.
unplanned_controllersbasic ai controllers that are currently performing idled behaviors
valid_cryopodsA list of all cryopods that aren't quiet, to be used by the "Send to Cryogenic Storage" VV action.
vampire_houseslist that stores a vampire house name for each department
vending_machines_to_restockList of vending machines that players can restock, so only vending machines that are on station or don't have a unique condition.
veteran_listThe list of all veteran players.
vine_mutations_listA list of the possible mutations for a vine
voice_of_god_commandsList of all voice of god commands
voidwalker_voidA global assoc list for the drop of point
vore_allowed_mob_typesWhat types of mobs are allowed to participate in vore at all? +This controls whether vore components are added on any mob Login for vore-enabled clients
vore_blacklist_typesList of types that will be automatically ejected from prey when they enter a belly
vore_preference_entriesAn assoc list list of types to instantiated /datum/preference instances
vore_preference_entries_by_keyAn assoc list of preference entries by their savefile_key
wiremod_basic_typesThe basic player-facing types that don't have any super special behaviour.
wiremod_fundamental_typesThe fundamental datatypes of the byond game engine.
wizard_spellbook_purchases_by_keyGlobal assoc list. [ckey] = [spellbook entry type]
wound_series_collectionsA branching assoc list of (series -> list(severity -> list(typepath -> weight))). Allows you to say "I want a generic slash wound", +then "Of severity 2", and get a wound of that description - via get_corresponding_wound_type() +Series: A generic wound_series, such as WOUND_SERIES_BONE_BLUNT_BASIC +Severity: Any wounds held within this will be of this severity. +Typepath, Weight: Merely a pairing of a given typepath to its weight, held for convenience in pickweight.
wound_severities_chronologicalA "chronological" list of wound severities, starting at the least severe.
wounding_types_to_seriesA branching assoc list of (wounding_type -> list(wound_series)). +Allows for determining of which wound series are caused by what.
xeno_sample_colorsList of all possible sample colors
xenobiology_magicarp_spell_typesA reduced list of spells for magicarp spawned in xenobiology, less disruptive
z_statetgui state: z_state
zombie_infection_listA list of all zombie_infection organs, for any mass "animation"

Var Details

GPS_list

Global GPS_list. All GPS components get saved in here for easy reference.

WALLITEMS_INTERIOR

Checks if that loc and dir has an item on the wall

abstract_mob_types

List of types of abstract mob which shouldn't usually exist in the world on its own if we're spawning random mobs

achievement_categories

A list of the current achievement categories supported by the UI and checked by the achievement unit test

achievement_sounds

A list of sounds that can be played when unlocking an achievement, set in the preferences.

active_jammers

List of active radio jammers

adamantine_recipes

Others

admin_activities

All admin related log lines minus their categories

admin_state

tgui state: admin_state

+

Checks that the user is an admin, end-of-story.

admin_trait_name_map

value -> trait name, generated as needed for adminning.

ai_controllers_by_status

basic ai controllers based on status

ai_controllers_by_zlevel

basic ai controllers based on their z level

ai_employers

employers for malfunctioning ais. they do not have sides, unlike traitors.

ai_subtrees

all basic ai subtrees

air_alarm_modes

Keys are /datum/air_alarm_mode paths +Values are their respective instances.

alcohol_containers

Associative list of alcoholic container typepath to instances, currently used by the alcoholic quirk

alive_player_list

All alive mobs with clients.

all_languages

List if all language typepaths learnable, IE, those with keys

all_loadout_categories

Global list of all loadout categories +Doesn't really NEED to be a global but we need to init this early for preferences, +as the categories instantiate all the loadout datums

all_loadout_datums

Global list of ALL loadout datums instantiated. +Loadout datums are created by loadout categories.

all_ongoing_hallucinations

A global list of all ongoing hallucinations, primarily for easy access to be able to stop (delete) hallucinations.

all_voice_of_god_triggers

Used to stop listeners with silly or clown-esque (first) names such as "Honk" or "Flip" from screwing up certain commands.

all_wound_pregen_data

A assoc list of (wound typepath -> wound_pregen_data instance). Every wound should have a pregen data.

allowed_money

A static typecache of all the money-based items that can be actively used as currency.

always_state

tgui state: always_state

+

Always grants the user UI_INTERACTIVE. Period.

animatable_blacklist

Mimics can't be made out of these objects

announcer_keys

Global list of all of our announcer keys.

areas

Just a list of all the area objects in the game +Note, areas can have duplicate types

areas_by_type

An association from typepath to area instance. Only includes areas with unique set.

armor_by_type

Assosciative list of type -> armor. Used to ensure we always hold a reference to default armor datums

base_starlight_color

The base color of light space emits

basketball_bad_signup

list of ghosts who want to play basketball that have since disconnected. They are kept in the lobby, but not counted for starting a game.

basketball_game

the current global basketball game running.

basketball_signup

list of ghosts who want to play basketball, every time someone enters the list it checks to see if enough are in

battle_royale_regions

Global list of areas which are considered to be inside the same department for our purposes

bio_state_anatomy

A assoc list of BIO_ define to EXTERIOR/INTERIOR defines. +This is where the interior/exterior state of a given biostate is set. +Note that not all biostates are guaranteed to be one of these - and in fact, many are not +IMPORTANT NOTE: All keys are stored as text and must be converted via text2num

bioscrambler_organs_blacklist

Blacklist of organs which should not appear when bioscrambled. +Either will look terrible outside of intended host, give you magical powers, are irreversible, or kill you

bioscrambler_parts_blacklist

Blacklist of parts which should not appear when bioscrambled, largely because they will make you look totally fucked up

bioscrambler_valid_organs

List of organs we can apply to people

bioscrambler_valid_parts

List of body parts we can apply to people

biotypes_to_scar_file

Assoc list of biotype -> ideal scar file to be used and grab stuff from.

bitfields

List of all things that can be dispensed by an arcade cabinet and the weight of them being picked.

blacklisted_metalgen_types

Turfs metalgen can't touch

blob_telepathy_mobs

All living mobs which can hear blob telepathy

bluespace_senders

All bluespace gas senders

bombers

All bomb related messages

bsa_unlock

BSA unlocked by head ID swipes

cable_list

List of all cables, so that powernets don't have to look through the entire world all the time

cached_maps

List of all the maps that have been cached for /proc/load_map

cached_storage_typecaches

Almost 100% of the time the lists passed into set_holdable are reused for each instance +Just fucking cache it 4head +Yes I could generalize this, but I don't want anyone else using it. in fact, DO NOT COPY THIS +If you find yourself needing this pattern, you're likely better off using static typecaches +I'm not because I do not trust implementers of the storage component to use them, BUT +IF I FIND YOU USING THIS PATTERN IN YOUR CODE I WILL BREAK YOU ACROSS MY KNEES +~Lemon

can_pass_info_vars

List of vars on /datum/can_pass_info to use when checking two instances for equality

carp_colors

Weighted list of colours a carp can be +Weighted list of usual carp colors

cell_line_tables

These global lists exist to allow our element to have weight tables without having to be separate instances. +Assoc list of cell line define | assoc list of datum | cell_line

cell_virus_tables

Assoc list of cell virus define | assoc list of datum | cell_virus

chasm_detritus_types

List containing chasm detritus singletons.

chasm_fallen_mobs

Global list needed to let fishermen with a rescue hook fish fallen mobs from any place

chemical_reactions_list

list of all /datum/chemical_reaction datums indexed by their typepath. Use this for general lookup stuff

chemical_reactions_list_product_index

list of all /datum/chemical_reaction datums. Used for the reaction lookup UI. Indexed by PRODUCT type

chemical_reactions_list_reactant_index

list of all /datum/chemical_reaction datums. Used during chemical reactions. Indexed by REACTANT types

chemical_reactions_results_lookup_list

list of all reactions with their associated product and result ids. Used for reaction lookups

chemical_reagents_list

list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff

chicken_count

Counter for number of chicken mobs in the universe. Chickens will not lay fertile eggs if it exceeds the MAX_CHICKENS define.

chicks_from_eggs

Counter for number of chicks hatched by throwing eggs, minecraft style. Chicks will not emerge from thrown eggs if this value exceeds the MAX_CHICKENS define.

clown_mask_options

Map of names of clown mask types to clown mask icon states

colonist_suit_allowed

The items the frontier clothing can hold

conscious_state

tgui state: conscious_state

+

Only checks if the user is conscious.

contained_state

tgui state: contained_state

+

Checks that the user is inside the src_object.

cooking_recipes

Global list of all cooking related crafting recipes.

cooking_recipes_atoms

This is a global list of typepaths, these typepaths are atoms or reagents that are associated with cooking recipes. +This includes stuff like recipe components and results.

crafting_recipes

Global list of all non-cooking related crafting recipes.

crafting_recipes_atoms

This is a global list of typepaths, these typepaths are atoms or reagents that are associated with crafting recipes. +This includes stuff like recipe components and results.

ctf_games

A list containing all loaded CTF games

cult_narsie

The global Nar'sie that the cult's summoned

current_anonymous_theme

global reference to the current theme, if there is one.

current_highpriest

A weakref to the current high priest mob

current_living_antags

All alive antags with clients.

current_observers_list

All observers with clients that joined as observers.

curtains

List of all curtains for button tracking

cyborg_all_models_icon_list

To store all of the different cyborg model icons, instead of creating them every time the be_transformed_to() proc is called.

cyborg_base_models_icon_list

To store all of the different base cyborg model icons, instead of creating them every time the pick_module() proc is called.

cyborg_model_list

To store all the different cyborg models, instead of creating that for each cyborg.

dead_player_list

All dead mobs with clients. Does not include observers.

deep_inventory_state

tgui state: deep_inventory_state

+

Checks that the src_object is in the user's deep +(backpack, box, toolbox, etc) inventory.

default_mutant_bodyparts

What accessories can a species have as well as their default accessory of such type e.g. "frills" = "Aquatic". Default accessory colors is dictated by the accessory properties and mutcolors of the specie

default_pda_themes

List of PDA themes that are accessible to everyone by default.

default_state

tgui state: default_state

+

Checks a number of things -- mostly physical distance for humans +and view for robots.

deliverybeacons

List of all active delivery beacons

deliverybeacontags

List of all active delivery beacon locations

department_security_spawns

list of all department security spawns

donator_list

The list of all donators.

dorms_areas

list of dorms areas for doing event checks

drone_machine_blacklist_enabled

If drones are blacklisted from certain sensitive machines

dug_up_basalt

Used by ashstorms to replenish basalt tiles that have been dug up without going through all of them.

duplicate_forbidden_vars

List of all vars that will not be copied over when using duplicate_object()

dynamic_forced_rulesets

Rulesets which have been forcibly enabled or disabled

dynamic_human_appearances

Global list of all dynamically generated icons, for caching, so we don't have to generate multiple times.

dynamic_ruleset_categories

Bitflags used during init by Dynamic to determine which rulesets we're allowed to use, used by station traits for gamemode-esque experiences

dynamic_station_traits

Modify the threat level for station traits before dynamic can be Initialized. List(instance = threat_reduction)

editable_sign_types

This is a global list of all signs you can change an existing sign or new sign backing to, when using a pen on them.

em_block_color

A globally cached version of EM_BLOCK_COLOR for quick access.

em_mask_matrix

A globally cached version of EM_MASK_MATRIX for quick access.

embed_by_type

Assosciative list of type -> embed data.

emissive_color

A globally cached version of EMISSIVE_COLOR for quick access.

exodrone_launchers

All exodrone launchers.

exodrones

All exodrones.

exoscanner_bands

List of scanned distances

exploration_sites

All exploration site instances

explorer_drone_adventure_db_entries

All possible adventures in raw form

fake_reagent_blacklist

list of all reagents that are parent types used to define a bunch of children - but aren't used themselves as anything.

features_by_species

An assoc list of species types to their features (from get_features())

fileaccess_timer

For FTP requests. (i.e. downloading runtime logs.)

+

However it'd be ok to use for accessing attack logs and such too, which are even laggier.

fire_appearances

Global list that containes cached fire overlays for mobs

first_officer

To know whether or not we have an officer already

fish_evolutions

A global list of fish evolutions, which are singletons.

fish_traits

A global list of singleton fish traits by their paths

fishes_by_fish_evolution

A list of fish evolution types, each having an associated list containing all fish types that have it.

floor_designs

all designs supported by the RTD

floor_diseases

Possible diseases

focused_tests

A list of every test that is currently focused. +Use the PERFORM_ALL_TESTS macro instead.

food_buffs

Weighted lists of crafted food buffs randomly given according to crafting_complexity unless the food has a specific buff

food_ic_flag_to_bitflag

A mirror of the FOOD_FLAGS_IC define, except with bitflags as values and as a GLOB.

food_quality_description

Labels for food quality

food_quality_events

Mood events for food quality

force_eng_override

Manual override for when it's not orange alert.

fun_state

tgui state: fun_state

+

Checks that the user has the fun privilige.

gas_id_to_canister

List of all the gases, used in labelling the canisters

gas_recipe_meta

Global list of recipes for atmospheric machines to use

gateway_destinations

List of possible gateway destinations.

generic_event_spawns

List of generic landmarks placed around the map where there are likely to be players and are identifiable at a glance - +Such as public hallways, department rooms, head of staff offices, and non-generic maintenance locations

glass_style_singletons

Global list of all glass style singletons created. See /proc/create_glass_styles for list format.

glide_size_multiplier

Compensating for time dilation

global_funny_embedding

set this to a new instance of a SUBTYPE of global_funny_embedding. The main type is a prototype and will runtime really hard

global_trait_name_map

value -> trait name, list of ALL traits that exist in the game, used for any type of accessing.

golem_stack_food_directory

Associated list of stack types to a golem food

golem_stack_food_types

Golem food datum singletons

gravity_generators

We will keep track of this by adding new gravity generators to the list, and keying it with the z level.

greyscale_menu_state

tgui state: greyscale menu

+

Checks that the target var of the greyscale menu meets the default can_use_topic criteria

guardian_themes

Assoc list of guardian theme singletons

gutlunch_count

keeps track of how many gutlunches are born

hands_state

tgui state: hands_state

+

Checks that the src_object is in the user's hands.

has_antagonist_huds

All active /datum/atom_hud/alternate_appearance/basic/has_antagonist instances

heretic_sacrifice_landmarks

A global assoc list of all landmarks that denote a heretic sacrifice location. [string heretic path] = [landmark].

heretic_start_knowledge

Global list of all heretic knowledge that have route = PATH_START. List of PATHS.

hfr_fuels_list

Global list of recipes for atmospheric machines to use

hijack_employers

employers who hire agents to do the hijack

hivemind_users

A list containing users of the Hivemind NIFSoft

holidays

HOLIDAYS

+

Uncommenting ALLOW_HOLIDAYS in config.txt will enable holidays

+

It's easy to add stuff. Just add a holiday datum in code/modules/holiday/holidays.dm +You can then check if it's a special day in any code in the game by calling check_holidays("Groundhog Day")

+

You can also make holiday random events easily thanks to Pete/Gia's system. +simply make a random event normally, then assign it a holidayID string which matches the holiday's name. +Anything with a holidayID, which isn't in the holidays list, will never occur.

+

Please, Don't spam stuff up with stupid stuff (key example being april-fools Pooh/ERP/etc), +and don't forget: CHECK YOUR CODE!!!! We don't want any zero-day bugs which happen only on holidays and never get found/fixed!

holy_successors

list of weakrefs to highpriest successor candidates. Every chaplain who joins after the initial chaplain is added to this list. The next high priest is chosen from them by seniority.

hostile_machines

List of objects that AIs will treat as targets

huds_by_category

gets filled by each /datum/atom_hud/New(). +associative list of the form: list(hud category = list(all global atom huds that use that category))

human_adjacent_state

tgui state: human_adjacent_state

+

In addition to default checks, only allows interaction for a +human adjacent user.

human_heights_to_offsets

Assoc list of all heights, cast to strings, to """"tuples""""" +The first """tuple""" index is the upper body offset +The second """tuple""" index is the lower body offset

human_invader_antagonists

List of human antagonist types which don't spawn directly on the space station

ice_cream_flavours

ICE CREAM FLAVOUR DATUM STUFF

icon_dimensions

Cache of the width and height of icon files, to avoid repeating the same expensive operation

identity_block_lengths

Some identity blocks (basically pieces of the unique_identity string variable of the dna datum, commonly abbreviated with ui) +may have a length that differ from standard length of 3 ASCII characters. This list is necessary +for these non-standard blocks to work, as well as the entire unique identity string. +Should you add a new ui block which size differ from the standard (again, 3 ASCII characters), like for example, a color, +please do not forget to also include it in this list in the following format: +"[dna block number]" = dna block size, +Failure to do that may result in bugs. Thanks.

infuser_entries

A list of all infuser entries

integrated_circuits

A list of all integrated circuits

intento_players

All people who have used an Intento this round along with their high scores.

intercoms_list

list of wallmounted intercom radios.

inventory_state

tgui state: inventory_state

+

Checks that the src_object is in the user's top-level +(hand, ear, pocket, belt, etc) inventory.

investigate_signaler

Investigate log for signaler usage, use the add_to_signaler_investigate_log proc

jobspawn_overrides

Assoc list of "job titles" to "job landmarks" +These will take precedence over normal job spawnpoints if created, +essentially allowing a user to override generic job spawnpoints with a specific one

joinable_mobs

List of all mobs with the "ghost_direct_control" component

landmarks_list

list of all landmarks created

language_datum_instances

List of language prototypes to reference, assoc [type] = prototype

language_menu_state

tgui state: language_menu_state

lawchanges

Stores who uploaded laws to which silicon-based lifeform, and what the law was

layers_to_offset

Used for human height overlay adjustments +Certain standing overlay layers shouldn't have a filter applied and should instead just offset by a pixel y +This list contains all the layers that must offset, with its value being whether it's a part of the upper half of the body (TRUE) or not (FALSE)

light_pirate_gangs

global lists of all pirate gangs that can show up today. they will be taken out of the global lists as spawned so dupes cannot spawn.

light_types

Global list of all light template types

liquid_debug_colors

PROPER GROUPING

lobby_station_traits

Station traits displayed in the lobby

log_directory

The directory in which ALL log files should be stored

mafia_bad_signup

list of ghosts who want to play mafia that have since disconnected. They are kept in the lobby, but not counted for starting a game.

mafia_early_votes

list of ghosts in mafia_signup who have voted to start early

mafia_game

the current global mafia game running.

mafia_signup

list of ghosts who want to play mafia, every time someone enters the list it checks to see if enough are in

magicarp_spell_colours

Associative list of magicarp spells to colours, expand this list if you expand the other lists

magicarp_spell_types

A list of spells magicarp can use and a corresponding name prefix to apply

map_incident_displays

List of incident displays on the map +Required as persistence subsystem loads after the ones present at mapload, and to reset to 0 upon explosion.

map_loaded_sensors

list of all air sensor's created round start

map_reports

Global list of map report datums

map_writing_running

A guard variable to prevent more than one map export process from occurring at the same time.

marker_beacon_colors

Marker Beacons

mass_teaching

A global singleton datum used to store a "summon things controller" for Mass Teaching, to grant a specific spellbook entry to stationgoers and latejoiners

mechas_list

List of all mechs for hostile mob target tracking

megafauna_spawn_list

Global list of megafauna spawns on cave gen

message_delay

Used to make sure restarting the recent_messages list is kept in sync.

message_modes_stat_limits

Whitelist of saymodes or radio extensions that can be spoken through even if not fully conscious. +Associated values are their maximum allowed mob stats.

meteor_eyeballs

List of all the meteor eyeballs so we can gib them upon meteor death

meteor_list

List of all meteors.

mob_spawners

List of all instances of /obj/effect/mob_spawn/ghost_role in the game world

Global list of all ids associated to a /datum/mod_link instance

mod_themes

Global list of all /datum/mod_theme

modular_persistence_ignored_vars

A list of vars that shouldn't be tracked by persistence.

mook_commands

commands the chief can pick from

name2reagent

Map of reagent names to its datum path

nanotrasen_employers

employers that are from Nanotrasen

narcd_underages

underages who have been reported to security for trying to buy things they shouldn't, so they can't spam

navbeacons

List of all nav beacons indexed by stringified z level

nearsighted_glasses

Lists related to quirk selection +Types of glasses that can be selected at character selection with the Nearsighted quirk

never_state

tgui state: never_state

+

Always closes the UI, no matter what. See the ui_state in religious_tool.dm to see an example

new_player_state

tgui state: new_player_state

+

Checks that the user is a /mob/dead/new_player

normal_employers

employers who hire agents to do a task and escape... or martyrdom. whatever

not_incapacitated_state

tgui state: not_incapacitated_state

+

Checks that the user isn't incapacitated

not_incapacitated_turf_state

tgui state: not_incapacitated_turf_state

+

Checks that the user isn't incapacitated and that their loc is a turf

notcontained_state

tgui state: notcontained_state

+

Checks that the user is not inside src_object, and then makes the +default checks.

objective_machine_handler

Datum which manages references to things we are instructed to destroy

objects_by_id_tag

A list of all /obj by their id_tag

observer_state

tgui state: observer_state

+

Checks that the user is an observer/ghost.

oilfry_blacklisted_items

Global typecache of things which should never be fried.

order_console_products

List of all items that can be found in the different types of order consoles, to purchase.

ore_silo_default

The global ore silo shared by all machines at round start

ore_vent_minerals_lavaland

Sets of global lists breaking down the base spawning distributions for various maps and stations.

+

Currently used for ore vents on roundstart when the map is generated. (See ore_vent.dm, seedRuins() and ore_generation.dm) +Ore vent lists here are copied to ore_vent_minerals on ruin seeding, +in order to dynamically adjust the spawn rates as materials are picked and set a global ore distribution from vents.

+

By default vents pull 4 unique materials each, but this can vary with subtypes.

ore_vent_sizes

List of how many ore vents spawned, and of what size.

organ_choice

Options for Prosthetic Organ

organ_process_order

Defines how a mob's organs_slot is ordered +Exists so Life()'s organ process order is consistent

paper_blanks

Paper blanks (form templates, basically). Loaded from config/blanks.json. +If invalid or not found, set to null.

paraplegic_choice

Paraplegic Quirk

parasites

List of all guardians currently extant

part_choice_transhuman

Transhumanist quirk

pda_mafia_signup

list of PDAs who want to play mafia, every time someone enters the list it checks to see if enough are in

pda_messengers

A list of all active and visible messengers

pda_name_to_theme

List of PDA themes that are accessible to everyone by default.

petsplosion_candidates

Candidates for the petsplosion wizard event

phobia_types

Phobia types that can be pulled randomly for brain traumas. +Also determines what phobias you can choose as your preference with the quirk.

physical_obscured_state

tgui state: physical_obscured_state

+

Short-circuits the default state to only check physical distance, being in view doesn't matter

physical_state

tgui state: physical_state

+

Short-circuits the default state to only check physical distance.

picture_log_directory

Picture logging

pillars_by_z

List of z pillars (datums placed in the bottom left of XbyX squares that control transparency in that space) +The pillars are stored in triple depth lists indexed by (world_size % pillar_size) + 1 +They are created at transparent turf request, and deleted when no turfs remain

pinpointer_list

list of all pinpointers. Used to change stuff they are pointing to all at once.

pipe_color_name

Names shown in the examine for every colored atmos component

pipe_colors_ordered

List that sorts the colors and is used for setting up the pipes layer so that they overlap correctly

pipe_paint_colors

All colors available to pipes and atmos components

player_details

assoc list of ckey -> /datum/player_details

plumbing_layer_names

Reverse of plumbing_layers, as "[bitflag]" => name

plumbing_layers

List of plumbing layers as name => bitflag

poll_options

All poll option datums of running polls

polls

All currently running polls held as datums

portals

List of all portals

possible_alcoholic_addictions

Options for the Alcoholic quirk to choose from

possible_junkie_addictions

Options for the Junkie quirk to choose from

possible_smoker_addictions

Options for the Smoker quirk to choose from

post_ore_manual

List of how many minerals spawned randomly off of mining Z-levels, and at what quantity.

post_ore_random

List of how many minerals spawned based on proximity to an ore vent.

pref_checked_clothes

Global list containing all the clothing we'd want to check prefs for before we put on someone.

preference_entries

An assoc list list of types to instantiated /datum/preference instances

preference_entries_by_key

An assoc list of preference entries by their savefile_key

prev_favor

The previous sect's favor value

prev_sect_type

The previous sect's typepath

prisoner_crimes

Types of Crimes Prisoners will have on their record roundstart. +(They also can choose Random, which picks from these options... randomly!)

prosthetic_limb_choice

Options for the prosthetic limb quirk to choose from

prototype_language_holders

A global assoc list containing prototypes of all language holders +[Language holder typepath] to [language holder instance] +Used for easy reference of what can speak what without needing to constantly recreate language holders.

quirk_species_whitelist

Neccesary for accessing non-instanced quirk whitelists, as initial() cannot access lists

random_hallucination_weighted_list

Global weighted list of all hallucinations that can show up randomly.

rcd_designs

all stuff used by RCD for construction

rcd_list

list of Rapid Construction Devices.

reagent_containers

List of containers the Chem Master machine can print

reality_smash_track

We want reality_smash_tracker to exist only once and be accessible from anywhere.

recent_messages

Global list of recent messages broadcasted : used to circumvent massive radio spam

required_map_items

Global assoc list of required mapping items, [item typepath] to [required item datum].

revenant_relay_mobs

All "living" (because revenants are in between mortal planes or whatever) mobs that can hear revenants

reverse_contained_state

tgui state: reverse_contained_state

+

Checks if src_object is inside of user.

round_default_lawset

See /proc/get_round_default_lawset, do not get directily. +This is the default lawset for silicons.

roundstart_station_borgcharger_areas

List of area names of roundstart station cyborg rechargers, for the low charge/no charge cyborg screen alert tooltips.

roundstart_station_closets

A comprehensive list of all closets (NOT CRATES) in the game world

roundstart_station_mechcharger_areas

List of area names of roundstart station mech rechargers, for the low charge/no charge mech screen alert tooltips.

rpgloot_controller

Holds the global datum for rpgloot, so anywhere may check for its existence (it signals into whatever it needs to modify, so it shouldn't require fetching)

rpgtitle_controller

Holds the global datum for rpgtitle, so anywhere may check for its existence (it signals into whatever it needs to modify, so it shouldn't require fetching)

rune_types

Assoc list of every rune that can be drawn by ritual daggers. [rune_name] = [typepath]

sacrificed

list of weakrefs to mobs OR minds that have been sacrificed

sacrifices_used

how many sacrifices we have used, cultists get 1 free revive at the start

scan_conditions

Scan condition instances

scanned_fish_by_techweb

a superlist containing typecaches shared between the several fish scanning experiments for each techweb.

screentip_context_icons

Stores the cursor hint icons for screentip context.

security_officer_distribution

The department distribution of the security officers.

+

Keys are refs of the security officer mobs. This is to preserve the list's structure even if the +mob gets deleted. This is also safe, as mobs are guaranteed to have a unique ref, as per /mob/GenerateTag().

see_through_maps

global statics for the see_through_component coordinate maps +For ease of use, include a comment in the shape of the coordinate map, where O is nothing, X is a hidden tile and A is the object +List-coordinate layout is list(relative_x, relative_y, relative_z) +Turf finding algorithm needs the z and you can totally use it, but I can't think of any reason to ever do it +Also it'd be really cool if you could keep the list-coordinates in here represent their actual relative coords, dont use tabs though since their spacing can differ

self_state

tgui state: self_state

+

Only checks that the user and src_object are the same.

shuttle_caller_list

List of all atoms that can call the shuttle, for automatic shuttle calls when there are none.

side_choice_hemiplegic

Hemiplegic Quirk

silo_access_logs

List of logs shared by all silos

singularities

List of all singularity components that exist

sm_delam_list

Priority is top to bottom.

sm_gas_behavior

Assoc of sm_gas_behavior/datum/gas (path) = datum/sm_gas (instance)

sniffable_sheets

list of all sheets with sniffable = TRUE for the sniffer to locate

sortedAreas

Used by jump-to-area etc. Updated by area/updateName() +If this is null, it needs to be recalculated. Use get_sorted_areas() as a getter please

soulcatchers

Global list containing any and all soulcatchers

spanname_to_formatting

A giant associative list of span names, and the associated key to create the text span. Used for narrate verbs.

special_roles

This defines the antagonists you can operate with in the settings. +Keys are the antagonist, values are the number of days since the player's +first connection in order to play.

species_list

An assoc list of species IDs to type paths

species_prototypes

List of all species prototypes to reference, assoc [type] = prototype

specific_fish_icons

When adding new fishable rewards to a table/counts, you can specify an icon to show in place of the +generic fish icon in the minigame UI should the user have the TRAIT_REVEAL_FISH trait, by adding it to +this list.

+

A lot of the icons here may be a tad inaccurate, but since we're limited to the free font awesome icons we +have access to, we got to make do.

splattable

splat subtype, handling signals and mood logic

spontaneous_fish_traits

A nested list of fish types and traits that they can spontaneously manifest with associated probabilities +e.g. list(/obj/item/fish = list(/datum/fish_trait = 100), etc...)

starlight_color

The color of light space is currently emitting

starlight_objects

List of plane offset + 1 -> object to display to use +Fills with offsets as they are generated +Holds a list of objects that represent starlight. The idea is to render_source them +So modifying starlight requires touching only one place (NOTE: this doesn't work for the area overlays) +In order to modify them you need to use set_starlight. Areas don't work with render sources it looks like

starlight_overlays

List of plane offset + 1 -> mutable appearance to use +Fills with offsets as they are generated +They mirror their appearance from the starlight objects, which lets us save +time updating them

starlight_power

The power of the light space is throwin out

starlight_range

The range of the light space is displaying

start_landmarks_list

list of all job spawn points created

station_nuke_source

The source of the last nuke that went off

station_was_nuked

Whether the station has been nuked itself. TRUE only if the station was actually hit by the nuke, otherwise FALSE

stock_part_datums

Map of stock part type to their singleton

stock_part_datums_per_object

Map of physical stock part types to their /datum/stock_part

summon_guns

A global singleton datum used to store a "summon things controller" for Summon Guns, to grant random guns to stationgoers and latejoiners

summon_magic

A global singleton datum used to store a "summon things controller" for Summon Magic, to grant random magical items to stationgoers and latejoiners

surgeries_list

list of all surgeries by name, associated with their path.

syndicate_employers

employers that are from the syndicate

syndicate_shuttle_boards

List of all nukie shuttle boards, for forcing launch delay if they declare war

target_interested_atoms

Static typecache list of things we are interested in +Consider this a union of the for loop and the hearers call from below +Must be kept up to date with the contents of hostile_machines

tcgcard_health_bar_radial_choices

Global list containing all options used for the TGC health button.

tcgcard_mana_bar_radial_choices

Global list containing all options used for the TGC mana button.

telecomms_list

A list of all of the /obj/machinery/telecomms (and subtypes) machines +that exist in the world currently.

teleport_runes

List of all teleport runes

teleportbeacons

List of all active teleport beacons

teleportlocs

A list of teleport locations

+

Adding a wizard area teleport list because motherfucking lag -- Urist +I am far too lazy to make it a proper list of areas so I'll just make it run the usual teleport routine at the start of the game

the_gateway

Station home gateway

the_station_areas

Global list of AREA TYPES that are associated with the station.

+

This tracks the types of all areas in existence that are a UNIQUE_AREA and are on the station Z.

+

This does not track the area instances themselves - See [GLOB.areas] for that.

time_last_changed_position

The time since the last job opening was created

timezoneOffset

The difference betwen midnight (of the host computer) and 0 world.ticks.

topdown_planes

Whitelist of planes allowed to use TOPDOWN_LAYER

total_uf_len_by_block

Ditto but for unique features. Used by the datum/dna/set_uni_feature_block and datum/dna/get_uni_feature_block procs.

total_ui_len_by_block

The same rules of the above also apply here, with the exception that this is for the unique_features string variable +(commonly abbreviated with uf) and its blocks. Both ui and uf have a standard block length of 3 ASCII characters.

+

A list of numbers that keeps track of where ui blocks start in the unique_identity string variable of the dna datum. +Commonly used by the datum/dna/set_uni_identity_block and datum/dna/get_uni_identity_block procs.

tracked_implants

List of all implants currently implanted into a mob

triple_ai_controller

global reference to the current theme, if there is one.

typecache_elevated_structures

A typecache listing structures that are considered to have surfaces that you can place items on that are higher than the floor. This, of course, should be restricted to /atom/movables. This is primarily used for food decomposition code.

typecache_general_bad_hostile_attack_targets

A typecache of objects that player controlled, easily accessible, hostile mobs should not be able to attack

typecache_general_bad_things_to_easily_move

A typecache of objects that player controlled, easily accessible, hostile mobs should not be able to move around easily

typecache_holodeck_linked_floorcheck_ok

typecache for turfs that should be considered ok during floorchecks. +A linked turf being anything not in this typecache will cause the holodeck to perform an emergency shutdown.

uncommon_roundstart_languages

List of all roundstart languages by path except common

unit_test_mapping_logs

When unit testing, all logs sent to log_mapping are stored here and retrieved in log_mapping unit test.

unplanned_controllers

basic ai controllers that are currently performing idled behaviors

valid_cryopods

A list of all cryopods that aren't quiet, to be used by the "Send to Cryogenic Storage" VV action.

vampire_houses

list that stores a vampire house name for each department

vending_machines_to_restock

List of vending machines that players can restock, so only vending machines that are on station or don't have a unique condition.

veteran_list

The list of all veteran players.

vine_mutations_list

A list of the possible mutations for a vine

voice_of_god_commands

List of all voice of god commands

voidwalker_void

A global assoc list for the drop of point

vore_allowed_mob_types

What types of mobs are allowed to participate in vore at all? +This controls whether vore components are added on any mob Login for vore-enabled clients

vore_blacklist_types

List of types that will be automatically ejected from prey when they enter a belly

vore_preference_entries

An assoc list list of types to instantiated /datum/preference instances

vore_preference_entries_by_key

An assoc list of preference entries by their savefile_key

wiremod_basic_types

The basic player-facing types that don't have any super special behaviour.

wiremod_fundamental_types

The fundamental datatypes of the byond game engine.

wizard_spellbook_purchases_by_key

Global assoc list. [ckey] = [spellbook entry type]

wound_series_collections

A branching assoc list of (series -> list(severity -> list(typepath -> weight))). Allows you to say "I want a generic slash wound", +then "Of severity 2", and get a wound of that description - via get_corresponding_wound_type() +Series: A generic wound_series, such as WOUND_SERIES_BONE_BLUNT_BASIC +Severity: Any wounds held within this will be of this severity. +Typepath, Weight: Merely a pairing of a given typepath to its weight, held for convenience in pickweight.

wound_severities_chronological

A "chronological" list of wound severities, starting at the least severe.

wounding_types_to_series

A branching assoc list of (wounding_type -> list(wound_series)). +Allows for determining of which wound series are caused by what.

xeno_sample_colors

List of all possible sample colors

xenobiology_magicarp_spell_types

A reduced list of spells for magicarp spawned in xenobiology, less disruptive

z_state

tgui state: z_state

+

Only checks that the Z-level of the user and src_object are the same.

zombie_infection_list

A list of all zombie_infection organs, for any mass "animation"

\ No newline at end of file diff --git a/datum/controller/master.html b/datum/controller/master.html new file mode 100644 index 0000000000000..b020553ffbb53 --- /dev/null +++ b/datum/controller/master.html @@ -0,0 +1,15 @@ +/datum/controller/master - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

master

Vars

current_initializing_subsystemDuring initialization, will be the instanced subsytem that is currently initializing. +Outside of initialization, returns null.
current_runlevelfor scheduling different subsystems for different stages of the round
current_ticklimitcurrent tick limit, assigned before running a subsystem. +used by CHECK_TICK as well so that the procs subsystems call can obey that SS's tick limits
init_stage_completedMost recent init stage to complete init.
iterationHow many times have we ran
last_profiledThe last decisecond we force dumped profiling information +Used to avoid spamming profile reads since they can be expensive (string memes)
last_runworld.time of last fire, for tracking lag outside of the mc
last_type_processedThe type of the last subsystem to be fire()'d.
make_runtimemakes the mc main loop runtime
map_loadingAre we loading in a new map?
olddriftTickdrift as of last tick, w no averaging going on
overview_fast_updateWhether the Overview UI will update as fast as possible for viewers.
processingAre we processing (higher values increase the processing delay by n ticks)
queue_headStart of queue linked list
queue_tailEnd of queue linked list (used for appending to the list)
rolling_usage_lengthHow long to run our rolling usage averaging
skip_ticksOnly run ticker subsystems for the next n ticks.
sleep_deltaHow long is the MC sleeping between runs, read only (set by Loop() based off of anti-tick-contention heuristics)
stack_end_detectorStack end detector to detect stack overflows that kill the mc's main loop
subsystemsList of subsystems to process().
use_rolling_usageEnables rolling usage averaging

Procs

AttemptProfileDumpAttempts to dump our current profile info into a file, triggered if the MC thinks shit is going down +Accepts a delay in deciseconds of how long ago our last dump can be, this saves causing performance problems ourselves
RunQueueRunQueue - Run thru the queue of subsystems to run, running them while balancing out their allocated tick precentage +Returns 0 if runtimed, a negitive number for logic errors, and a positive number if the operation completed without errors
init_subsystemInitialize a given subsystem and handle the results.
laggy_byond_map_update_incomingWarns us that the end of tick byond map_update will be laggier then normal, so that we can just skip running subsystems this tick.

Var Details

current_initializing_subsystem

During initialization, will be the instanced subsytem that is currently initializing. +Outside of initialization, returns null.

current_runlevel

for scheduling different subsystems for different stages of the round

current_ticklimit

current tick limit, assigned before running a subsystem. +used by CHECK_TICK as well so that the procs subsystems call can obey that SS's tick limits

init_stage_completed

Most recent init stage to complete init.

iteration

How many times have we ran

last_profiled

The last decisecond we force dumped profiling information +Used to avoid spamming profile reads since they can be expensive (string memes)

last_run

world.time of last fire, for tracking lag outside of the mc

last_type_processed

The type of the last subsystem to be fire()'d.

make_runtime

makes the mc main loop runtime

map_loading

Are we loading in a new map?

olddrift

Tickdrift as of last tick, w no averaging going on

overview_fast_update

Whether the Overview UI will update as fast as possible for viewers.

processing

Are we processing (higher values increase the processing delay by n ticks)

queue_head

Start of queue linked list

queue_tail

End of queue linked list (used for appending to the list)

rolling_usage_length

How long to run our rolling usage averaging

skip_ticks

Only run ticker subsystems for the next n ticks.

sleep_delta

How long is the MC sleeping between runs, read only (set by Loop() based off of anti-tick-contention heuristics)

stack_end_detector

Stack end detector to detect stack overflows that kill the mc's main loop

subsystems

List of subsystems to process().

use_rolling_usage

Enables rolling usage averaging

Proc Details

AttemptProfileDump

Attempts to dump our current profile info into a file, triggered if the MC thinks shit is going down +Accepts a delay in deciseconds of how long ago our last dump can be, this saves causing performance problems ourselves

RunQueue

RunQueue - Run thru the queue of subsystems to run, running them while balancing out their allocated tick precentage +Returns 0 if runtimed, a negitive number for logic errors, and a positive number if the operation completed without errors

init_subsystem

Initialize a given subsystem and handle the results.

+

Arguments:

+

laggy_byond_map_update_incoming

Warns us that the end of tick byond map_update will be laggier then normal, so that we can just skip running subsystems this tick.

\ No newline at end of file diff --git a/datum/controller/subsystem.html b/datum/controller/subsystem.html new file mode 100644 index 0000000000000..85e75a98d7131 --- /dev/null +++ b/datum/controller/subsystem.html @@ -0,0 +1,18 @@ +/datum/controller/subsystem - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Subsystem base class

Defines a subsystem to be managed by the Master Controller

+

Simply define a child of this subsystem, using the [SUBSYSTEM_DEF] macro, and the MC will handle registration. +Changing the name is required

Vars

can_fireSet to 0 to prevent fire() calls, mostly for admin use or subsystems that may be resumed later +use the SS_NO_FIRE flag instead for systems that never fire to keep it from even being added to list that is checked every tick
costRunning average of the amount of milliseconds it takes the subsystem to complete a run (including all resumes but not the time spent paused)
failure_strikesHow many times we suspect a subsystem type has crashed the MC, 3 strikes and you're out!
flagsSubsystem Flags to control binary behavior. Flags must be set at compile time or before preinit finishes to take full effect. (You can also restart the mc to force them to process again)
init_orderOrder of initialization. Higher numbers are initialized first, lower numbers later. Use or create defines such as [INIT_ORDER_DEFAULT] so we can see the order in one file.
init_stageWhich stage does this subsystem init at. Earlier stages can fire while later stages init.
initialization_failure_messageString to store an applicable error message for a subsystem crashing, used to help debug crashes in contexts such as Continuous Integration/Unit Tests
initializedThis var is set to TRUE after the subsystem has been initialized.
last_fireLast world.time the subsystem completed a run (as in wasn't paused by [MC_TICK_CHECK])
nameName of the subsystem - you must change this
next_fireScheduled world.time for next fire()
paused_tick_usageTracks how much of a tick the subsystem has consumed in the current run
paused_ticksTracks how many fires the subsystem has consecutively paused on in the current run
postponed_firesHow many fires have we been requested to postpone
priorityPriority Weight: When multiple subsystems need to run in the same tick, higher priority subsystems will be given a higher share of the tick before MC_TICK_CHECK triggers a sleep, higher priority subsystems also run before lower priority subsystems
profiler_focusedboolean set by admins. if TRUE then this subsystem will stop the world profiler after ignite() returns and start it again when called. +used so that you can audit a specific subsystem or group of subsystems' synchronous call chain.
queue_nextNext subsystem in the queue of subsystems to run this tick
queue_prevPrevious subsystem in the queue of subsystems to run this tick
queued_priorityPriority at the time the subsystem entered the queue. Needed to avoid changes in priority (by admins and the like) from breaking things.
queued_timeTime the subsystem entered the queue, (for timing and priority reasons)
rolling_usageFlat list of usage and time, every odd index is a log time, every even index is a usage
runlevelsBitmap of what game states can this subsystem fire at. See [RUNLEVELS_DEFAULT] for more details.
slept_countTracks how many times a subsystem has ever slept in fire().
stateTracks the current execution state of the subsystem. Used to handle subsystems that sleep in fire so the mc doesn't run them again while they are sleeping
tick_allocation_avgHow much of a tick (in percents of a tick) do we get allocated by the mc on avg.
tick_allocation_lastHow much of a tick (in percents of a tick) were we allocated last fire.
tick_overrunRunning average of the amount of tick usage (in percents of a game tick) the subsystem has spent past its allocated time without pausing
tick_usageRunning average of the amount of tick usage in percents of a tick it takes the subsystem to complete a run
ticksTracks how many fires the subsystem takes to complete a run on average.
times_firedTracks the amount of completed runs for the subsystem
waitTime to wait (in deciseconds) between each call to fire(). Must be a positive integer.

Procs

InitializeUsed to initialize the subsystem. This is expected to be overridden by subtypes.
OnConfigLoadCalled after the config has been loaded or reloaded.
PreInitdatum/controller/subsystem/New()
enqueueQueue it to run. +(we loop thru a linked list until we get to the end or find the right point) +(this lets us sort our run order correctly without having to re-sort the entire already sorted list)
firepreviously, this would have been named 'process()' but that name is used everywhere for different things! +fire() seems more suitable. This is the procedure that gets called every 'wait' deciseconds. +Sleeping in here prevents future fires until returned.
igniteThis is used so the mc knows when the subsystem sleeps. do not override.
postponeCauses the next "cycle" fires to be missed. Effect is accumulative but can reset by calling update_nextfire(reset_time = TRUE)
prune_rolling_usagePrunes out of date entries in our rolling usage list
update_nextfire

Var Details

can_fire

Set to 0 to prevent fire() calls, mostly for admin use or subsystems that may be resumed later +use the SS_NO_FIRE flag instead for systems that never fire to keep it from even being added to list that is checked every tick

cost

Running average of the amount of milliseconds it takes the subsystem to complete a run (including all resumes but not the time spent paused)

failure_strikes

How many times we suspect a subsystem type has crashed the MC, 3 strikes and you're out!

flags

Subsystem Flags to control binary behavior. Flags must be set at compile time or before preinit finishes to take full effect. (You can also restart the mc to force them to process again)

init_order

Order of initialization. Higher numbers are initialized first, lower numbers later. Use or create defines such as [INIT_ORDER_DEFAULT] so we can see the order in one file.

init_stage

Which stage does this subsystem init at. Earlier stages can fire while later stages init.

initialization_failure_message

String to store an applicable error message for a subsystem crashing, used to help debug crashes in contexts such as Continuous Integration/Unit Tests

initialized

This var is set to TRUE after the subsystem has been initialized.

last_fire

Last world.time the subsystem completed a run (as in wasn't paused by [MC_TICK_CHECK])

name

Name of the subsystem - you must change this

next_fire

Scheduled world.time for next fire()

paused_tick_usage

Tracks how much of a tick the subsystem has consumed in the current run

paused_ticks

Tracks how many fires the subsystem has consecutively paused on in the current run

postponed_fires

How many fires have we been requested to postpone

priority

Priority Weight: When multiple subsystems need to run in the same tick, higher priority subsystems will be given a higher share of the tick before MC_TICK_CHECK triggers a sleep, higher priority subsystems also run before lower priority subsystems

profiler_focused

boolean set by admins. if TRUE then this subsystem will stop the world profiler after ignite() returns and start it again when called. +used so that you can audit a specific subsystem or group of subsystems' synchronous call chain.

queue_next

Next subsystem in the queue of subsystems to run this tick

queue_prev

Previous subsystem in the queue of subsystems to run this tick

queued_priority

Priority at the time the subsystem entered the queue. Needed to avoid changes in priority (by admins and the like) from breaking things.

queued_time

Time the subsystem entered the queue, (for timing and priority reasons)

rolling_usage

Flat list of usage and time, every odd index is a log time, every even index is a usage

runlevels

Bitmap of what game states can this subsystem fire at. See [RUNLEVELS_DEFAULT] for more details.

slept_count

Tracks how many times a subsystem has ever slept in fire().

state

Tracks the current execution state of the subsystem. Used to handle subsystems that sleep in fire so the mc doesn't run them again while they are sleeping

tick_allocation_avg

How much of a tick (in percents of a tick) do we get allocated by the mc on avg.

tick_allocation_last

How much of a tick (in percents of a tick) were we allocated last fire.

tick_overrun

Running average of the amount of tick usage (in percents of a game tick) the subsystem has spent past its allocated time without pausing

tick_usage

Running average of the amount of tick usage in percents of a tick it takes the subsystem to complete a run

ticks

Tracks how many fires the subsystem takes to complete a run on average.

times_fired

Tracks the amount of completed runs for the subsystem

wait

Time to wait (in deciseconds) between each call to fire(). Must be a positive integer.

Proc Details

Initialize

Used to initialize the subsystem. This is expected to be overridden by subtypes.

OnConfigLoad

Called after the config has been loaded or reloaded.

PreInit

datum/controller/subsystem/New()

enqueue

Queue it to run. +(we loop thru a linked list until we get to the end or find the right point) +(this lets us sort our run order correctly without having to re-sort the entire already sorted list)

fire

previously, this would have been named 'process()' but that name is used everywhere for different things! +fire() seems more suitable. This is the procedure that gets called every 'wait' deciseconds. +Sleeping in here prevents future fires until returned.

ignite

This is used so the mc knows when the subsystem sleeps. do not override.

postpone

Causes the next "cycle" fires to be missed. Effect is accumulative but can reset by calling update_nextfire(reset_time = TRUE)

prune_rolling_usage

Prunes out of date entries in our rolling usage list

update_nextfire

\ No newline at end of file diff --git a/datum/controller/subsystem/accessories.html b/datum/controller/subsystem/accessories.html new file mode 100644 index 0000000000000..fe39545070ba5 --- /dev/null +++ b/datum/controller/subsystem/accessories.html @@ -0,0 +1,9 @@ +/datum/controller/subsystem/accessories - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

accessories

Vars

facial_hair_gradients_liststores /datum/sprite_accessory/facial_hair_gradient indexed by name
facial_hairstyles_female_liststores only hair names
facial_hairstyles_liststores /datum/sprite_accessory/facial_hair indexed by name
facial_hairstyles_male_liststores only hair names
hair_gradients_liststores /datum/sprite_accessory/hair_gradient indexed by name
hairstyles_female_liststores only hair names
hairstyles_liststores /datum/sprite_accessory/hair indexed by name
hairstyles_male_liststores only hair names
socks_liststores /datum/sprite_accessory/socks indexed by name
undershirt_fstores only undershirt name
undershirt_liststores /datum/sprite_accessory/undershirt indexed by name
undershirt_mstores only undershirt name
underwear_fstores only underwear name
underwear_liststores /datum/sprite_accessory/underwear indexed by name
underwear_mstores only underwear name

Procs

init_hair_gradientsThis proc just intializes all /datum/sprite_accessory/hair_gradient into an list indexed by gradient-style name
init_sprite_accessory_subtypesThis reads the applicable sprite accessory datum's subtypes and adds it to the subsystem's list of sprite accessories. +The boolean add_blank argument just adds a "None" option to the list of sprite accessories, like if a felinid doesn't want a tail or something, typically good for gated-off things.
make_sprite_accessory_referencesCalled from subsystem's PreInit and builds sprite_accessories list with (almost) all existing sprite accessories
setup_listsSets up all of the lists for later utilization in the round and building sprites. +In an ideal world we could tack everything that just needed DEFAULT_SPRITE_LIST into static variables on the top, but due to the initialization order +where this subsystem will initialize BEFORE statics, it's just not feasible since this all needs to be ready for actual subsystems to use. +Sorry.

Var Details

facial_hair_gradients_list

stores /datum/sprite_accessory/facial_hair_gradient indexed by name

facial_hairstyles_female_list

stores only hair names

facial_hairstyles_list

stores /datum/sprite_accessory/facial_hair indexed by name

facial_hairstyles_male_list

stores only hair names

hair_gradients_list

stores /datum/sprite_accessory/hair_gradient indexed by name

hairstyles_female_list

stores only hair names

hairstyles_list

stores /datum/sprite_accessory/hair indexed by name

hairstyles_male_list

stores only hair names

socks_list

stores /datum/sprite_accessory/socks indexed by name

undershirt_f

stores only undershirt name

undershirt_list

stores /datum/sprite_accessory/undershirt indexed by name

undershirt_m

stores only undershirt name

underwear_f

stores only underwear name

underwear_list

stores /datum/sprite_accessory/underwear indexed by name

underwear_m

stores only underwear name

Proc Details

init_hair_gradients

This proc just intializes all /datum/sprite_accessory/hair_gradient into an list indexed by gradient-style name

init_sprite_accessory_subtypes

This reads the applicable sprite accessory datum's subtypes and adds it to the subsystem's list of sprite accessories. +The boolean add_blank argument just adds a "None" option to the list of sprite accessories, like if a felinid doesn't want a tail or something, typically good for gated-off things.

make_sprite_accessory_references

Called from subsystem's PreInit and builds sprite_accessories list with (almost) all existing sprite accessories

setup_lists

Sets up all of the lists for later utilization in the round and building sprites. +In an ideal world we could tack everything that just needed DEFAULT_SPRITE_LIST into static variables on the top, but due to the initialization order +where this subsystem will initialize BEFORE statics, it's just not feasible since this all needs to be ready for actual subsystems to use. +Sorry.

\ No newline at end of file diff --git a/datum/controller/subsystem/achievements.html b/datum/controller/subsystem/achievements.html new file mode 100644 index 0000000000000..92918e06b7d2a --- /dev/null +++ b/datum/controller/subsystem/achievements.html @@ -0,0 +1 @@ +/datum/controller/subsystem/achievements - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

achievements

Vars

achievementsList of achievements
awardsList of all awards
most_unlocked_achievementThe achievement with the highest amount of players that have unlocked it.
scoresList of scores

Var Details

achievements

List of achievements

awards

List of all awards

most_unlocked_achievement

The achievement with the highest amount of players that have unlocked it.

scores

List of scores

\ No newline at end of file diff --git a/datum/controller/subsystem/addiction.html b/datum/controller/subsystem/addiction.html new file mode 100644 index 0000000000000..5c7576d55c0ae --- /dev/null +++ b/datum/controller/subsystem/addiction.html @@ -0,0 +1 @@ +/datum/controller/subsystem/addiction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

addiction

Vars

all_addictionsDictionary of addiction.type || addiction ref

Procs

InitializeAddictionsRan on initialize, populates the addiction dictionary

Var Details

all_addictions

Dictionary of addiction.type || addiction ref

Proc Details

InitializeAddictions

Ran on initialize, populates the addiction dictionary

\ No newline at end of file diff --git a/datum/controller/subsystem/admin_verbs.html b/datum/controller/subsystem/admin_verbs.html new file mode 100644 index 0000000000000..7943414c010c6 --- /dev/null +++ b/datum/controller/subsystem/admin_verbs.html @@ -0,0 +1,5 @@ +/datum/controller/subsystem/admin_verbs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

admin_verbs

Vars

admin_verbs_by_typeA list of all admin verbs indexed by their type.
admin_verbs_by_visibility_flagA list of all admin verbs indexed by their visibility flag.
admin_visibility_flagsA map of all assosciated admins and their visibility flags.
admins_pending_subsytem_initA list of all admins that are pending initialization of this SS.

Procs

assosciate_adminAssosciates and/or resyncs an admin with their accessible admin verbs.
deassosciate_adminUnassosciates an admin from their admin verbs. +Goes over all admin verbs because we don't know which ones are assigned to the admin's mob without a bunch of extra bookkeeping. +This might be a performance issue in the future if we have a lot of admin verbs.

Var Details

admin_verbs_by_type

A list of all admin verbs indexed by their type.

admin_verbs_by_visibility_flag

A list of all admin verbs indexed by their visibility flag.

admin_visibility_flags

A map of all assosciated admins and their visibility flags.

admins_pending_subsytem_init

A list of all admins that are pending initialization of this SS.

Proc Details

assosciate_admin

Assosciates and/or resyncs an admin with their accessible admin verbs.

deassosciate_admin

Unassosciates an admin from their admin verbs. +Goes over all admin verbs because we don't know which ones are assigned to the admin's mob without a bunch of extra bookkeeping. +This might be a performance issue in the future if we have a lot of admin verbs.

\ No newline at end of file diff --git a/datum/controller/subsystem/ai_controllers.html b/datum/controller/subsystem/ai_controllers.html new file mode 100644 index 0000000000000..ba49f5e5ec94d --- /dev/null +++ b/datum/controller/subsystem/ai_controllers.html @@ -0,0 +1 @@ +/datum/controller/subsystem/ai_controllers - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ai_controllers

Vars

our_costThe average tick cost of all active AI, calculated on fire.
planning_statustype of status we are interested in running
summing_costThe tick cost of all currently processed AI, being summed together

Procs

on_max_z_changedCalled when the max Z level was changed, updating our coverage.
setup_subtreesCreates all instances of ai_subtrees and assigns them to the ai_subtrees list.

Var Details

our_cost

The average tick cost of all active AI, calculated on fire.

planning_status

type of status we are interested in running

summing_cost

The tick cost of all currently processed AI, being summed together

Proc Details

on_max_z_changed

Called when the max Z level was changed, updating our coverage.

setup_subtrees

Creates all instances of ai_subtrees and assigns them to the ai_subtrees list.

\ No newline at end of file diff --git a/datum/controller/subsystem/air.html b/datum/controller/subsystem/air.html new file mode 100644 index 0000000000000..f1d0c7de35aa1 --- /dev/null +++ b/datum/controller/subsystem/air.html @@ -0,0 +1,9 @@ +/datum/controller/subsystem/air - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

air

Vars

adjacent_rebuildList of turfs to recalculate adjacent turfs on before processing
atmos_machineryA list of machines that will be processed when currentpart == SSAIR_ATMOSMACHINERY. Use SSair.begin_processing_machine and SSair.stop_processing_machine to add and remove machines.
currentrunA cache of objects that perisists between processing runs when resumed == TRUE. Dangerous, qdel'd objects not cleared from this may cause runtimes on processing.
hotspot_reactionsReactions which will contribute to a hotspot's size.
strings_to_mixList of gas string -> canonical gas mixture

Procs

add_to_activeAdds a turf to active processing, handles duplicates. Call this with blockchanges == TRUE if you want to nuke the assoc excited group
expand_pipelineRebuilds a pipeline by expanding outwards, while yielding when sane
log_active_turfsLogs all active turfs at roundstart to the mapping log so it can be readily accessed.
parse_gas_stringTakes a gas string, returns the matching mutable gas_mixture
remove_from_activeRemoves a turf from processing, and causes its excited group to clean up so things properly adapt to the change
sleep_active_turfPuts an active turf to sleep so it doesn't process. Do this without cleaning up its excited group.
start_processing_machineAdds a given machine to the processing system for SSAIR_ATMOSMACHINERY processing.
stop_processing_machineRemoves a given machine to the processing system for SSAIR_ATMOSMACHINERY processing.

Var Details

adjacent_rebuild

List of turfs to recalculate adjacent turfs on before processing

atmos_machinery

A list of machines that will be processed when currentpart == SSAIR_ATMOSMACHINERY. Use SSair.begin_processing_machine and SSair.stop_processing_machine to add and remove machines.

currentrun

A cache of objects that perisists between processing runs when resumed == TRUE. Dangerous, qdel'd objects not cleared from this may cause runtimes on processing.

hotspot_reactions

Reactions which will contribute to a hotspot's size.

strings_to_mix

List of gas string -> canonical gas mixture

Proc Details

add_to_active

Adds a turf to active processing, handles duplicates. Call this with blockchanges == TRUE if you want to nuke the assoc excited group

expand_pipeline

Rebuilds a pipeline by expanding outwards, while yielding when sane

log_active_turfs

Logs all active turfs at roundstart to the mapping log so it can be readily accessed.

parse_gas_string

Takes a gas string, returns the matching mutable gas_mixture

remove_from_active

Removes a turf from processing, and causes its excited group to clean up so things properly adapt to the change

sleep_active_turf

Puts an active turf to sleep so it doesn't process. Do this without cleaning up its excited group.

start_processing_machine

Adds a given machine to the processing system for SSAIR_ATMOSMACHINERY processing.

+

Arguments:

+

stop_processing_machine

Removes a given machine to the processing system for SSAIR_ATMOSMACHINERY processing.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/controller/subsystem/ambience.html b/datum/controller/subsystem/ambience.html new file mode 100644 index 0000000000000..2eb9443080340 --- /dev/null +++ b/datum/controller/subsystem/ambience.html @@ -0,0 +1 @@ +/datum/controller/subsystem/ambience - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ambience

Vars

ambience_listening_clientsAssoc list of listening client - next ambience time
currentrunCache for sanic speed :D

Var Details

ambience_listening_clients

Assoc list of listening client - next ambience time

currentrun

Cache for sanic speed :D

\ No newline at end of file diff --git a/datum/controller/subsystem/area_spawn.html b/datum/controller/subsystem/area_spawn.html new file mode 100644 index 0000000000000..320096e79d52e --- /dev/null +++ b/datum/controller/subsystem/area_spawn.html @@ -0,0 +1,20 @@ +/datum/controller/subsystem/area_spawn - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

area_spawn

Vars

area_turf_cacheCache of area turf info. +[area/area][stringed of AREA_SPAWN_MODE_*][string of priority #][turf index]
failed_area_spawnsNon-optional area spawns that failed to find an area.

Procs

clear_cacheClear the cached tiles for optimization or debugging purposes.
get_turf_candidatesProcess the geometry of an area and cache the candidates.
pick_turf_candidatePick a turf candidate and remove from the list.
process_turfProcess a specific turf and return priority number from 0 to infinity.

Var Details

area_turf_cache

Cache of area turf info. +[area/area][stringed of AREA_SPAWN_MODE_*][string of priority #][turf index]

failed_area_spawns

Non-optional area spawns that failed to find an area.

Proc Details

clear_cache

Clear the cached tiles for optimization or debugging purposes.

get_turf_candidates

Process the geometry of an area and cache the candidates.

+

Returns turf candidate list. "[priority]" =

+

Arguments:

+

pick_turf_candidate

Pick a turf candidate and remove from the list.

+

Only picks one of the highest priority ones.

+

Arguments:

+

process_turf

Process a specific turf and return priority number from 0 to infinity.

+

Turfs with highest priority will be picked. Priority 0 means NEVER.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/controller/subsystem/atoms.html b/datum/controller/subsystem/atoms.html new file mode 100644 index 0000000000000..5ad85596f8a02 --- /dev/null +++ b/datum/controller/subsystem/atoms.html @@ -0,0 +1,5 @@ +/datum/controller/subsystem/atoms - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

atoms

Vars

created_atomsinitAtom() adds the atom its creating to this list iff InitializeAtoms() has been given a list to populate as an argument
initialized_stateA stack of list(source, desired initialized state) +We read the source of init changes from the last entry, and assert that all changes will come with a reset
queued_deletionsAtoms that will be deleted once the subsystem is initialized

Procs

CreateAtomsActually creates the list of atoms. Exists solely so a runtime in the creation logic doesn't cause initialized to totally break
InitAtomInit this specific atom
get_initialized_sourceReturns the source currently modifying SSatom's init behavior
initializing_somethingReturns TRUE if anything is currently being initialized
prepare_deletionPrepares an atom to be deleted once the atoms SS is initialized.
set_tracked_initalizedUse this to set initialized to prevent error states where the old initialized is overridden, and we end up losing all context +Accepts a state and a source, the most recent state is used, sources exist to prevent overriding old values accidentally

Var Details

created_atoms

initAtom() adds the atom its creating to this list iff InitializeAtoms() has been given a list to populate as an argument

initialized_state

A stack of list(source, desired initialized state) +We read the source of init changes from the last entry, and assert that all changes will come with a reset

queued_deletions

Atoms that will be deleted once the subsystem is initialized

Proc Details

CreateAtoms

Actually creates the list of atoms. Exists solely so a runtime in the creation logic doesn't cause initialized to totally break

InitAtom

Init this specific atom

get_initialized_source

Returns the source currently modifying SSatom's init behavior

initializing_something

Returns TRUE if anything is currently being initialized

prepare_deletion

Prepares an atom to be deleted once the atoms SS is initialized.

set_tracked_initalized

Use this to set initialized to prevent error states where the old initialized is overridden, and we end up losing all context +Accepts a state and a source, the most recent state is used, sources exist to prevent overriding old values accidentally

\ No newline at end of file diff --git a/datum/controller/subsystem/automapper.html b/datum/controller/subsystem/automapper.html new file mode 100644 index 0000000000000..50885c34a4386 --- /dev/null +++ b/datum/controller/subsystem/automapper.html @@ -0,0 +1,15 @@ +/datum/controller/subsystem/automapper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

automapper

Vars

config_fileThe path to our TOML file
loaded_configOur loaded TOML file
preloaded_map_templatesOur preloaded map templates

Procs

get_turf_blacklistsThis returns a list of turfs that have been preloaded and preselected using our templates.
has_turf_noopGet whether a given turf of the map template is a /turf/template_noop.
init_contentsCentCom atoms aren't initialized but already exist, so must be properly initialized and then qdel'd. +Arguments:
load_templates_from_cacheAssuming we have preloaded our templates, this will load them from the cache.
preload_templates_from_tomlThis will preload our templates into a cache ready to be loaded later.

Var Details

config_file

The path to our TOML file

loaded_config

Our loaded TOML file

preloaded_map_templates

Our preloaded map templates

Proc Details

get_turf_blacklists

This returns a list of turfs that have been preloaded and preselected using our templates.

+

Not really useful outside of load groups.

has_turf_noop

Get whether a given turf of the map template is a /turf/template_noop.

+

You'd think there would be a better API way of doing this, but there is not.

+

Arguments:

+

init_contents

CentCom atoms aren't initialized but already exist, so must be properly initialized and then qdel'd. +Arguments:

+

load_templates_from_cache

Assuming we have preloaded our templates, this will load them from the cache.

preload_templates_from_toml

This will preload our templates into a cache ready to be loaded later.

+

IMPORTANT: This requires Z levels to exist in order to function, so make sure it is preloaded AFTER that.

\ No newline at end of file diff --git a/datum/controller/subsystem/autotransfer.html b/datum/controller/subsystem/autotransfer.html new file mode 100644 index 0000000000000..d29014e931cd2 --- /dev/null +++ b/datum/controller/subsystem/autotransfer.html @@ -0,0 +1,5 @@ +/datum/controller/subsystem/autotransfer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

autotransfer

Procs

new_shiftAt shift start, pulls the autotransfer interval from config and applies

Proc Details

new_shift

At shift start, pulls the autotransfer interval from config and applies

+

Arguments:

+
\ No newline at end of file diff --git a/datum/controller/subsystem/ban_cache.html b/datum/controller/subsystem/ban_cache.html new file mode 100644 index 0000000000000..d315fbd0e5456 --- /dev/null +++ b/datum/controller/subsystem/ban_cache.html @@ -0,0 +1 @@ +/datum/controller/subsystem/ban_cache - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ban_cache

Procs

generate_queriesGenerates ban caches for any logged in clients. This ensures the amount of in-series ban checking we have to do that actually involves sleeps is VERY low

Proc Details

generate_queries

Generates ban caches for any logged in clients. This ensures the amount of in-series ban checking we have to do that actually involves sleeps is VERY low

\ No newline at end of file diff --git a/datum/controller/subsystem/bitrunning.html b/datum/controller/subsystem/bitrunning.html new file mode 100644 index 0000000000000..cccc9ad8d8012 --- /dev/null +++ b/datum/controller/subsystem/bitrunning.html @@ -0,0 +1 @@ +/datum/controller/subsystem/bitrunning - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bitrunning

Procs

get_available_domainsCompiles a list of available domains.

Proc Details

get_available_domains

Compiles a list of available domains.

\ No newline at end of file diff --git a/datum/controller/subsystem/chat.html b/datum/controller/subsystem/chat.html new file mode 100644 index 0000000000000..abd8afbcedd18 --- /dev/null +++ b/datum/controller/subsystem/chat.html @@ -0,0 +1 @@ +/datum/controller/subsystem/chat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chat

Vars

client_to_payloadsAssosciates a ckey with a list of messages to send to them.
client_to_reliability_historyAssociates a ckey with an assosciative list of their last CHAT_RELIABILITY_HISTORY_SIZE messages.
client_to_sequence_numberAssosciates a ckey with their next sequence number.

Var Details

client_to_payloads

Assosciates a ckey with a list of messages to send to them.

client_to_reliability_history

Associates a ckey with an assosciative list of their last CHAT_RELIABILITY_HISTORY_SIZE messages.

client_to_sequence_number

Assosciates a ckey with their next sequence number.

\ No newline at end of file diff --git a/datum/controller/subsystem/circuit_component.html b/datum/controller/subsystem/circuit_component.html new file mode 100644 index 0000000000000..530093e6c50ab --- /dev/null +++ b/datum/controller/subsystem/circuit_component.html @@ -0,0 +1,4 @@ +/datum/controller/subsystem/circuit_component - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

circuit_component

Procs

add_callbackAdds a callback to be invoked when the next fire() is done. Used by the integrated circuit system.
execute_instant_runInstantly executes the stored callbacks and does this in a loop until there are no stored callbacks or it hits tick limit.
queue_instant_runQueues any callbacks to be executed instantly instead of using the subsystem.

Proc Details

add_callback

Adds a callback to be invoked when the next fire() is done. Used by the integrated circuit system.

+

Prevents race conditions as it acts like a queue system. +Those that registered first will be executed first and those registered last will be executed last.

execute_instant_run

Instantly executes the stored callbacks and does this in a loop until there are no stored callbacks or it hits tick limit.

+

Returns a list containing any values added by any input port.

queue_instant_run

Queues any callbacks to be executed instantly instead of using the subsystem.

\ No newline at end of file diff --git a/datum/controller/subsystem/dbcore.html b/datum/controller/subsystem/dbcore.html new file mode 100644 index 0000000000000..293035fe363b8 --- /dev/null +++ b/datum/controller/subsystem/dbcore.html @@ -0,0 +1,38 @@ +/datum/controller/subsystem/dbcore - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dbcore

Vars

all_queriesAll the current queries that exist.
all_queries_numNumber of all queries, reset to 0 when logged in SStime_track. Used by SStime_track
failed_connection_timeoutworld.time that connection attempts can resume
failed_connection_timeout_countTotal number of times connections have had to be timed out.
failed_connectionsNumber of failed connection attempts this try. Resets after the timeout or successful connection
max_connection_failuresMax number of consecutive failures before a timeout (here and not a define so it can be vv'ed mid round if needed)
processing_queriesQueries being checked for timeouts.
queries_activeQueries currently being handled by database driver
queries_active_numNumber of active queries, reset to 0 when logged in SStime_track. Used by SStime_track
queries_standbyQueries pending execution, mapped to complete arguments
queries_standby_numNumber of standby queries, reset to 0 when logged in SStime_track. Used by SStime_track
queued_log_entries_by_tableAn associative list of list of rows to add to a database table with the name of the target table as a key. +Used to queue up log entries for bigger queries that happen less often, to reduce the strain on the server caused by +hundreds of additional queries constantly trying to run.
shutting_downWe are in the process of shutting down and should not allow more DB connections

Procs

QuerySelect
add_log_to_mass_insert_queueThis is a proc to hopefully mitigate the effect of a large influx of queries needing to be created +for something like SQL-based game logs. The goal here is to bundle a certain amount of those log +entries together (default is 100, but it depends on the SQL_GAME_LOG_MIN_BUNDLE_SIZE config +entry) before sending them, so that we can massively reduce the amount of lag associated with +logging so many entries to the database.
create_active_queryHelper proc for handling activating queued queries
reset_trackingResets the tracking numbers on the subsystem. Used by SStime_track.

Var Details

all_queries

All the current queries that exist.

all_queries_num

Number of all queries, reset to 0 when logged in SStime_track. Used by SStime_track

failed_connection_timeout

world.time that connection attempts can resume

failed_connection_timeout_count

Total number of times connections have had to be timed out.

failed_connections

Number of failed connection attempts this try. Resets after the timeout or successful connection

max_connection_failures

Max number of consecutive failures before a timeout (here and not a define so it can be vv'ed mid round if needed)

processing_queries

Queries being checked for timeouts.

queries_active

Queries currently being handled by database driver

queries_active_num

Number of active queries, reset to 0 when logged in SStime_track. Used by SStime_track

queries_standby

Queries pending execution, mapped to complete arguments

queries_standby_num

Number of standby queries, reset to 0 when logged in SStime_track. Used by SStime_track

queued_log_entries_by_table

An associative list of list of rows to add to a database table with the name of the target table as a key. +Used to queue up log entries for bigger queries that happen less often, to reduce the strain on the server caused by +hundreds of additional queries constantly trying to run.

shutting_down

We are in the process of shutting down and should not allow more DB connections

Proc Details

QuerySelect

add_log_to_mass_insert_queue

This is a proc to hopefully mitigate the effect of a large influx of queries needing to be created +for something like SQL-based game logs. The goal here is to bundle a certain amount of those log +entries together (default is 100, but it depends on the SQL_GAME_LOG_MIN_BUNDLE_SIZE config +entry) before sending them, so that we can massively reduce the amount of lag associated with +logging so many entries to the database.

+

Arguments:

+

create_active_query

Helper proc for handling activating queued queries

reset_tracking

Resets the tracking numbers on the subsystem. Used by SStime_track.

\ No newline at end of file diff --git a/datum/controller/subsystem/decay.html b/datum/controller/subsystem/decay.html new file mode 100644 index 0000000000000..7a65b8d55514a --- /dev/null +++ b/datum/controller/subsystem/decay.html @@ -0,0 +1 @@ +/datum/controller/subsystem/decay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

decay

Vars

station_filterThis is used to determine what maps we should not spawn on.

Var Details

station_filter

This is used to determine what maps we should not spawn on.

\ No newline at end of file diff --git a/datum/controller/subsystem/discord.html b/datum/controller/subsystem/discord.html new file mode 100644 index 0000000000000..19789339d0fd3 --- /dev/null +++ b/datum/controller/subsystem/discord.html @@ -0,0 +1,58 @@ +/datum/controller/subsystem/discord - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

discord

Vars

common_wordsCommon words list, used to generate one time tokens
enabledIs TGS enabled (If not we won't fire because otherwise this is useless)
notify_fileThe file where notification status is saved
notify_membersPeople to save to notify file
notify_members_cacheCopy of previous list, so the SS doesnt have to fire if no new members have been added
people_to_notifyPeople to notify on roundstart
reverify_cachePeople who have tried to verify this round already

Procs

find_discord_link_by_ckeyFind discord link entry by the passed in user ckey
find_discord_link_by_discord_idFind discord link entry by the passed in user ckey
find_discord_link_by_tokenFind discord link entry by the passed in user token
generate_one_time_tokenGenerate a timebound token for discord verification
get_discord_id_from_mentionExtract a discord id from a mention string
lookup_ckeyGiven a discord id as a string, look up the ckey attached to that account, if any
lookup_idGiven a ckey, look up the discord user id attached to the user, if any

Var Details

common_words

Common words list, used to generate one time tokens

enabled

Is TGS enabled (If not we won't fire because otherwise this is useless)

notify_file

The file where notification status is saved

notify_members

People to save to notify file

notify_members_cache

Copy of previous list, so the SS doesnt have to fire if no new members have been added

people_to_notify

People to notify on roundstart

reverify_cache

People who have tried to verify this round already

Proc Details

Find discord link entry by the passed in user ckey

+

This will look into the discord link table and return the first entry that matches the given ckey

+

Remember, multiple entries can exist

+

Arguments:

+ +

Returns a /datum/discord_link_record

Find discord link entry by the passed in user ckey

+

This will look into the discord link table and return the first entry that matches the given ckey

+

Remember, multiple entries can exist

+

Arguments:

+ +

Returns a /datum/discord_link_record

Find discord link entry by the passed in user token

+

This will look into the discord link table and return the first entry that matches the given one time token

+

Remember, multiple entries can exist, as they are only guaranteed to be unique for their validity period

+

Arguments:

+ +

Returns a /datum/discord_link_record

generate_one_time_token

Generate a timebound token for discord verification

+

This uses the common word list to generate a six word random token, this token can then be fed to a discord bot that has access +to the same database, and it can use it to link a ckey to a discord id, with minimal user effort

+

It returns the token to the calling proc, after inserting an entry into the discord_link table of the following form

+
(unique_id, ckey, null, the current time, the one time token generated)
+the null value will be filled out with the discord id by the integrated discord bot when a user verifies
+
+

Notes:

+ +

Arguments:

+ +

Returns a string representing the one time token

get_discord_id_from_mention

Extract a discord id from a mention string

+

This will regex out the mention @num block to extract the discord id

+

Arguments:

+ +

Returns a text string with the discord id or null

lookup_ckey

Given a discord id as a string, look up the ckey attached to that account, if any

+

This gets the most recent entry from the discord_link table that is associated with this discord id snowflake

+

Arguments:

+

lookup_id

Given a ckey, look up the discord user id attached to the user, if any

+

This gets the most recent entry from the discord link table that is associated with the given ckey

+

Arguments:

+
\ No newline at end of file diff --git a/datum/controller/subsystem/dynamic.html b/datum/controller/subsystem/dynamic.html new file mode 100644 index 0000000000000..a4ab992bdf905 --- /dev/null +++ b/datum/controller/subsystem/dynamic.html @@ -0,0 +1,102 @@ +/datum/controller/subsystem/dynamic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dynamic

Vars

candidatesList of candidates used on roundstart rulesets.
configurationDynamic configuration, loaded on pre_setup
current_midround_rulesetsThe last drafted midround rulesets (without the current one included). +Used for choosing different midround injections.
current_rulesRules that are processed, rule_process is called on the rules in this list.
executed_rulesList of executed rulesets.
forced_injectionIf TRUE, the next player to latejoin will guarantee roll for a random latejoin antag +(this does not guarantee they get said antag roll, depending on preferences and circumstances)
forced_latejoin_ruleForced ruleset to be executed for the next latejoin.
high_impact_ruleset_executedIf a high impact ruleset was executed. Only one will run at a time in most circumstances.
hijacked_random_event_injection_chance_modifierThe extra chance multiplier that a heavy impact midround ruleset will run next time. +For example, if this is set to 50, then the next heavy roll will be about 50% more likely to happen.
initial_round_start_budgetThe initial round start budget for logging purposes, set once at the beginning of the round.
last_midround_injection_attemptThe time when the last midround injection was attempted, whether or not it was successful
latejoin_delay_maxThe maximum time the recurring latejoin ruleset timer is allowed to be.
latejoin_delay_minThe minimum time the recurring latejoin ruleset timer is allowed to be.
latejoin_injection_cooldownWhen world.time is over this number the mode tries to inject a latejoin ruleset.
latejoin_roll_chanceThe chance for latejoins to roll when ready
latejoin_rulesList of latejoin rules used for selecting the rules.
low_pop_maximum_threatThe maximum threat that can roll with zero players. +As the number of players approaches low_pop_player_threshold, the maximum +threat level will increase. +For example, if low_pop_maximum_threat is 50, low_pop_player_threshold is 20, +and the number of readied players is 10, then the highest threat that can roll is +lerp(50, 100, 10 / 20), AKA 75.
low_pop_player_thresholdIf there are less than this many players readied, threat level will be lowered. +This number should be kept fairly low, as there are other measures that population +impacts Dynamic, such as the requirements variable on rulesets.
max_threat_levelA number between 0 and 100. The maximum amount of threat allowed to generate.
mid_round_budgetSet at the beginning of the round. Spent by midrounds and latejoins.
midround_heavy_lower_boundAny midround after this point is guaranteed to be heavy
midround_injection_timer_idThe timer ID for the cancellable midround rule injection
midround_light_upper_boundAny midround before this point is guaranteed to be light
midround_lower_boundThe low bound for the midround roll time splits. +This number influences where to place midround rolls, making this smaller +will make midround rolls more frequent, and vice versa. +A midround will never be able to roll before this.
midround_roll_distanceThe distance between the chosen midround roll point (which is deterministic), +and when it can actually roll. +Basically, if this is set to 5 minutes, and a midround roll point is decided to be at 20 minutes, +then it can roll anywhere between 15 and 25 minutes.
midround_rulesList of midround rules used for selecting the rules.
midround_upper_boundThe upper bound for the midround roll time splits. +This number influences where to place midround rolls, making this larger +will make midround rolls less frequent, and vice versa. +A midround will never be able to roll farther than this.
only_ruleset_executedIf a only ruleset has been executed.
peaceful_percentageHow many percent of the rounds are more peaceful.
pop_per_requirement
random_event_hijack_maximumThe maximum amount of time for antag random events to be hijacked.
random_event_hijack_minimumThe minimum amount of time for antag random events to be hijacked.
random_event_hijackedWhether or not a random event has been hijacked this midround cycle
round_start_budgetSet at the beginning of the round. Spent by the mode to "purchase" rules. Everything else goes in the postround budget.
roundend_threat_logThreat log shown on the roundend report. Should only list player-made edits.
roundstart_pop_readyNumber of players who were ready on roundstart.
roundstart_split_curve_centreA number between -5 and +5. +Equivalent to threat_curve_centre, but for the budget split. +A negative value will weigh towards midround rulesets, and a positive +value will weight towards roundstart ones.
roundstart_split_curve_widthA number between 0.5 and 4. +Equivalent to threat_curve_width, but for the budget split. +Higher value will favour more variance in splits and +lower value rounds closer to the average.
shown_threatThe amount of threat shown on the piece of paper. +Can differ from the actual threat amount.
snapshotsA list of recorded "snapshots" of the round, stored in the dynamic.json log
threat_curve_centreA number between -5 and +5. +A negative value will give a more peaceful round and +a positive value will give a round with higher threat.
threat_curve_widthA number between 0.5 and 4. +Higher value will favour extreme rounds and +lower value rounds closer to the average.
threat_levelThe "threat cap", threat shouldn't normally go above this and is used in ruleset calculations
threat_logRunning information about the threat. Can store text or datum entries.
threat_per_midround_rollThe amount of threat per midround roll. +Basically, if this is set to 5, then for every 5 threat, one midround roll will be added. +The equation this is used in rounds up, meaning that if this is set to 5, and you have 6 +threat, then you will get 2 midround rolls.
waittime_hWhat is the higher bound of when the roundstart announcement is sent out?
waittime_lWhat is the lower bound of when the roundstart announcement is sent out?

Procs

admin_cancel_midroundFired when an admin cancels the current midround injection.
admin_different_midroundFired when an admin requests a different midround injection.
check_blockingChecks if a type in blocking_list is in rule_list.
configure_rulesetApply configurations to rule.
configure_station_traitApply configuration for station trait costs
configure_station_trait_costsGet station traits and call for their config
create_threatGenerate threat and increase the threat_level if it goes beyond, capped at 100
execute_midround_latejoin_ruleMainly here to facilitate delayed rulesets. All midround/latejoin rulesets are executed with a timered callback to this proc.
execute_midround_ruleFired after admins do not cancel a midround injection.
execute_roundstart_ruleMainly here to facilitate delayed rulesets. All roundstart rulesets are executed with a timered callback to this proc.
generate_advisory_levelGenerate the advisory level depending on the shown threat level.
generate_budgetsGenerates the midround and roundstart budgets
generate_threatGenerates the threat level using lorentz distribution and assigns peaceful_percentage.
generate_unfavourable_eventsFilter the below list by which events can actually run on this map
generate_unfavourable_heavy_rulesetsReturn a valid heavy dynamic ruleset, or an empty list if there's no time to run any rulesets
get_heavy_midround_injection_chanceGets the chance for a heavy ruleset midround injection, the dry_run argument is only used for forced injection.
handle_executing_latejoinThis proc handles the execution of a latejoin ruleset, including removing it from latejoin rulesets if not repeatable, +upping the injection cooldown, and starting a timer to execute the ruleset on delay.
init_rulesetsReturns a list of the provided rulesets. +Configures their variables to match config.
log_dynamic_and_announceLog to dynamic and message admins
lorentz_to_amountReturns the comulative distribution of threat centre and width, and a random location of -5 to 5 +plus or minus the otherwise unattainable lower and upper percentiles. All multiplied by the maximum +threat and then rounded to the nearest interval. +rand() calls without arguments returns a value between 0 and 1, allowing for smaller intervals.
make_antag_chanceHandles late-join antag assignments
new_snapshotCreates a new snapshot with the given rulesets chosen, and writes to the JSON output.
next_midround_injectionReturns the world.time of the next midround injection. +Will return a cached result from next_midround_injection, the variable. +If that variable is null, will generate a new one.
pick_midround_ruleExecutes a random midround ruleset from the list of drafted rules.
pick_rulesetFrom a list of rulesets, returns one based on weight and availability. +Mutates the list that is passed into it to remove invalid rules.
picking_roundstart_ruleInitializes the round start ruleset provided to it. Returns how much threat to spend.
picking_specific_ruleAn experimental proc to allow admins to call rules on the fly or have rules call other rules.
refund_threatRefund threat, but no more than threat_level.
remove_from_listRemoves type from the list
rigged_roundstartA simple roundstart proc used when dynamic_forced_roundstart_ruleset has rules in it.
setup_rulesetsInitializes the internal ruleset variables
spend_midround_budgetExpend midround threat, can't fall under 0.
spend_roundstart_budgetExpend round start threat, can't fall under 0.
unfavorable_situationAn easy interface to make...waves hands bad things happen. +This is used for impactful events like traitors hacking and creating more threat, or a revolutions victory. +It tries to spawn a heavy midround if possible, otherwise it will trigger a "bad" random event after a short period. +Calling this function will not use up any threat.
update_logUpdates the log for the current snapshots.

Var Details

candidates

List of candidates used on roundstart rulesets.

configuration

Dynamic configuration, loaded on pre_setup

current_midround_rulesets

The last drafted midround rulesets (without the current one included). +Used for choosing different midround injections.

current_rules

Rules that are processed, rule_process is called on the rules in this list.

executed_rules

List of executed rulesets.

forced_injection

If TRUE, the next player to latejoin will guarantee roll for a random latejoin antag +(this does not guarantee they get said antag roll, depending on preferences and circumstances)

forced_latejoin_rule

Forced ruleset to be executed for the next latejoin.

high_impact_ruleset_executed

If a high impact ruleset was executed. Only one will run at a time in most circumstances.

hijacked_random_event_injection_chance_modifier

The extra chance multiplier that a heavy impact midround ruleset will run next time. +For example, if this is set to 50, then the next heavy roll will be about 50% more likely to happen.

initial_round_start_budget

The initial round start budget for logging purposes, set once at the beginning of the round.

last_midround_injection_attempt

The time when the last midround injection was attempted, whether or not it was successful

latejoin_delay_max

The maximum time the recurring latejoin ruleset timer is allowed to be.

latejoin_delay_min

The minimum time the recurring latejoin ruleset timer is allowed to be.

latejoin_injection_cooldown

When world.time is over this number the mode tries to inject a latejoin ruleset.

latejoin_roll_chance

The chance for latejoins to roll when ready

latejoin_rules

List of latejoin rules used for selecting the rules.

low_pop_maximum_threat

The maximum threat that can roll with zero players. +As the number of players approaches low_pop_player_threshold, the maximum +threat level will increase. +For example, if low_pop_maximum_threat is 50, low_pop_player_threshold is 20, +and the number of readied players is 10, then the highest threat that can roll is +lerp(50, 100, 10 / 20), AKA 75.

low_pop_player_threshold

If there are less than this many players readied, threat level will be lowered. +This number should be kept fairly low, as there are other measures that population +impacts Dynamic, such as the requirements variable on rulesets.

max_threat_level

A number between 0 and 100. The maximum amount of threat allowed to generate.

mid_round_budget

Set at the beginning of the round. Spent by midrounds and latejoins.

midround_heavy_lower_bound

Any midround after this point is guaranteed to be heavy

midround_injection_timer_id

The timer ID for the cancellable midround rule injection

midround_light_upper_bound

Any midround before this point is guaranteed to be light

midround_lower_bound

The low bound for the midround roll time splits. +This number influences where to place midround rolls, making this smaller +will make midround rolls more frequent, and vice versa. +A midround will never be able to roll before this.

midround_roll_distance

The distance between the chosen midround roll point (which is deterministic), +and when it can actually roll. +Basically, if this is set to 5 minutes, and a midround roll point is decided to be at 20 minutes, +then it can roll anywhere between 15 and 25 minutes.

midround_rules

List of midround rules used for selecting the rules.

midround_upper_bound

The upper bound for the midround roll time splits. +This number influences where to place midround rolls, making this larger +will make midround rolls less frequent, and vice versa. +A midround will never be able to roll farther than this.

only_ruleset_executed

If a only ruleset has been executed.

peaceful_percentage

How many percent of the rounds are more peaceful.

pop_per_requirement

random_event_hijack_maximum

The maximum amount of time for antag random events to be hijacked.

random_event_hijack_minimum

The minimum amount of time for antag random events to be hijacked.

random_event_hijacked

Whether or not a random event has been hijacked this midround cycle

round_start_budget

Set at the beginning of the round. Spent by the mode to "purchase" rules. Everything else goes in the postround budget.

roundend_threat_log

Threat log shown on the roundend report. Should only list player-made edits.

roundstart_pop_ready

Number of players who were ready on roundstart.

roundstart_split_curve_centre

A number between -5 and +5. +Equivalent to threat_curve_centre, but for the budget split. +A negative value will weigh towards midround rulesets, and a positive +value will weight towards roundstart ones.

roundstart_split_curve_width

A number between 0.5 and 4. +Equivalent to threat_curve_width, but for the budget split. +Higher value will favour more variance in splits and +lower value rounds closer to the average.

shown_threat

The amount of threat shown on the piece of paper. +Can differ from the actual threat amount.

snapshots

A list of recorded "snapshots" of the round, stored in the dynamic.json log

threat_curve_centre

A number between -5 and +5. +A negative value will give a more peaceful round and +a positive value will give a round with higher threat.

threat_curve_width

A number between 0.5 and 4. +Higher value will favour extreme rounds and +lower value rounds closer to the average.

threat_level

The "threat cap", threat shouldn't normally go above this and is used in ruleset calculations

threat_log

Running information about the threat. Can store text or datum entries.

threat_per_midround_roll

The amount of threat per midround roll. +Basically, if this is set to 5, then for every 5 threat, one midround roll will be added. +The equation this is used in rounds up, meaning that if this is set to 5, and you have 6 +threat, then you will get 2 midround rolls.

waittime_h

What is the higher bound of when the roundstart announcement is sent out?

waittime_l

What is the lower bound of when the roundstart announcement is sent out?

Proc Details

admin_cancel_midround

Fired when an admin cancels the current midround injection.

admin_different_midround

Fired when an admin requests a different midround injection.

check_blocking

Checks if a type in blocking_list is in rule_list.

configure_ruleset

Apply configurations to rule.

configure_station_trait

Apply configuration for station trait costs

configure_station_trait_costs

Get station traits and call for their config

create_threat

Generate threat and increase the threat_level if it goes beyond, capped at 100

execute_midround_latejoin_rule

Mainly here to facilitate delayed rulesets. All midround/latejoin rulesets are executed with a timered callback to this proc.

execute_midround_rule

Fired after admins do not cancel a midround injection.

execute_roundstart_rule

Mainly here to facilitate delayed rulesets. All roundstart rulesets are executed with a timered callback to this proc.

generate_advisory_level

Generate the advisory level depending on the shown threat level.

generate_budgets

Generates the midround and roundstart budgets

generate_threat

Generates the threat level using lorentz distribution and assigns peaceful_percentage.

generate_unfavourable_events

Filter the below list by which events can actually run on this map

generate_unfavourable_heavy_rulesets

Return a valid heavy dynamic ruleset, or an empty list if there's no time to run any rulesets

get_heavy_midround_injection_chance

Gets the chance for a heavy ruleset midround injection, the dry_run argument is only used for forced injection.

handle_executing_latejoin

This proc handles the execution of a latejoin ruleset, including removing it from latejoin rulesets if not repeatable, +upping the injection cooldown, and starting a timer to execute the ruleset on delay.

init_rulesets

Returns a list of the provided rulesets. +Configures their variables to match config.

log_dynamic_and_announce

Log to dynamic and message admins

lorentz_to_amount

Returns the comulative distribution of threat centre and width, and a random location of -5 to 5 +plus or minus the otherwise unattainable lower and upper percentiles. All multiplied by the maximum +threat and then rounded to the nearest interval. +rand() calls without arguments returns a value between 0 and 1, allowing for smaller intervals.

make_antag_chance

Handles late-join antag assignments

new_snapshot

Creates a new snapshot with the given rulesets chosen, and writes to the JSON output.

next_midround_injection

Returns the world.time of the next midround injection. +Will return a cached result from next_midround_injection, the variable. +If that variable is null, will generate a new one.

pick_midround_rule

Executes a random midround ruleset from the list of drafted rules.

pick_ruleset

From a list of rulesets, returns one based on weight and availability. +Mutates the list that is passed into it to remove invalid rules.

+

picking_roundstart_rule

Initializes the round start ruleset provided to it. Returns how much threat to spend.

picking_specific_rule

An experimental proc to allow admins to call rules on the fly or have rules call other rules.

refund_threat

Refund threat, but no more than threat_level.

remove_from_list

Removes type from the list

rigged_roundstart

A simple roundstart proc used when dynamic_forced_roundstart_ruleset has rules in it.

setup_rulesets

Initializes the internal ruleset variables

spend_midround_budget

Expend midround threat, can't fall under 0.

spend_roundstart_budget

Expend round start threat, can't fall under 0.

unfavorable_situation

An easy interface to make...waves hands bad things happen. +This is used for impactful events like traitors hacking and creating more threat, or a revolutions victory. +It tries to spawn a heavy midround if possible, otherwise it will trigger a "bad" random event after a short period. +Calling this function will not use up any threat.

update_log

Updates the log for the current snapshots.

\ No newline at end of file diff --git a/datum/controller/subsystem/economy.html b/datum/controller/subsystem/economy.html new file mode 100644 index 0000000000000..dd6b077d70942 --- /dev/null +++ b/datum/controller/subsystem/economy.html @@ -0,0 +1,21 @@ +/datum/controller/subsystem/economy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

economy

Vars

audit_logA list of strings containing a basic transaction history of purchases on the station. +Added to any time when player accounts purchase something.
bank_accounts_by_idList of normal (no department ones) accounts' identifiers with associated datum accounts, for big O performance. +A list of sole account datums can be obtained with flatten_list(), another variable would be redundant rn.
bank_accounts_by_jobA list of bank accounts indexed by their assigned job typepath.
bounty_modifierThe modifier multiplied to the value of bounties paid out.
budget_poolHow many credits does the in-game economy have in circulation at round start? Divided up by 6 of the 7 department budgets evenly, where cargo starts with nothing.
cached_processingList used to track partially completed processing steps +Allows for proper yielding
civ_bounty_trackerHow many civilain bounties have been completed so far this shift? Affects civilian budget payout values.
dep_cardsList of the departmental budget cards in existance.
earning_reportContains the message to send to newscasters about price inflation and earnings, updated on price_update()
full_ancapEnables extra money charges for things that normally would be free, such as sleepers/cryo/beepsky. +Take care when enabling, as players will NOT respond well if the economy is set up for low cash flows.
inflation_valueA var that displays the result of inflation_value for easier debugging and tracking.
mail_blockedMail Holiday: AKA does mail arrive today? Always blocked on Sundays.
mail_waitingNumber of mail items generated.
pack_price_modifierThe modifier multiplied to the value of cargo pack prices.
processing_partTracks what bit of processing we're on, so we can resume post yield in the right place
roundstart_paychecksHow many paychecks should players start out the round with?
station_targetA var that tracks how much money is expected to be on station at a given time. If less than station_total prices go up in vendors.
station_target_bufferA passively increasing buffer to help alliviate inflation later into the shift, but to a lesser degree.
station_totalA var that collects the total amount of credits owned in player accounts on station, reset and recounted on fire()
techweb_bountyDepartmental cash provided to science when a node is researched in specific configs.
temporary_totalTracks a temporary sum of all money in the system +We need this on the subsystem because of yielding and such

Procs

departmental_payoutsDepartmental income payments are kept static and linear for every department, and paid out once every 5 minutes, as determined by MAX_GRANT_DPT. +Iterates over every department account for the same payment.
get_dep_accountHandy proc for obtaining a department's bank account, given the department ID, AKA the define assigned for what department they're under.
inflation_valueProc that returns a value meant to shift inflation values in vendors, based on how much money exists on the station.
price_updateUpdates the the inflation_value, effecting newscaster alerts and the mail system.
track_purchaseProc that adds a set of strings and ints to the audit log, tracked by the economy SS.
update_vending_pricesIterates over the machines list for vending machines, resets their regular and premium product prices (Not contraband), and sends a message to the newscaster network.

Var Details

audit_log

A list of strings containing a basic transaction history of purchases on the station. +Added to any time when player accounts purchase something.

bank_accounts_by_id

List of normal (no department ones) accounts' identifiers with associated datum accounts, for big O performance. +A list of sole account datums can be obtained with flatten_list(), another variable would be redundant rn.

bank_accounts_by_job

A list of bank accounts indexed by their assigned job typepath.

bounty_modifier

The modifier multiplied to the value of bounties paid out.

budget_pool

How many credits does the in-game economy have in circulation at round start? Divided up by 6 of the 7 department budgets evenly, where cargo starts with nothing.

cached_processing

List used to track partially completed processing steps +Allows for proper yielding

civ_bounty_tracker

How many civilain bounties have been completed so far this shift? Affects civilian budget payout values.

dep_cards

List of the departmental budget cards in existance.

earning_report

Contains the message to send to newscasters about price inflation and earnings, updated on price_update()

full_ancap

Enables extra money charges for things that normally would be free, such as sleepers/cryo/beepsky. +Take care when enabling, as players will NOT respond well if the economy is set up for low cash flows.

inflation_value

A var that displays the result of inflation_value for easier debugging and tracking.

mail_blocked

Mail Holiday: AKA does mail arrive today? Always blocked on Sundays.

mail_waiting

Number of mail items generated.

pack_price_modifier

The modifier multiplied to the value of cargo pack prices.

processing_part

Tracks what bit of processing we're on, so we can resume post yield in the right place

roundstart_paychecks

How many paychecks should players start out the round with?

station_target

A var that tracks how much money is expected to be on station at a given time. If less than station_total prices go up in vendors.

station_target_buffer

A passively increasing buffer to help alliviate inflation later into the shift, but to a lesser degree.

station_total

A var that collects the total amount of credits owned in player accounts on station, reset and recounted on fire()

techweb_bounty

Departmental cash provided to science when a node is researched in specific configs.

temporary_total

Tracks a temporary sum of all money in the system +We need this on the subsystem because of yielding and such

Proc Details

departmental_payouts

Departmental income payments are kept static and linear for every department, and paid out once every 5 minutes, as determined by MAX_GRANT_DPT. +Iterates over every department account for the same payment.

get_dep_account

Handy proc for obtaining a department's bank account, given the department ID, AKA the define assigned for what department they're under.

inflation_value

Proc that returns a value meant to shift inflation values in vendors, based on how much money exists on the station.

+

If crew are somehow aquiring far too much money, this value will dynamically cause vendables across the station to skyrocket in price until some money is spent. +Additionally, civilain bounties will cost less, and cargo goodies will increase in price as well. +The goal here is that if you want to spend money, you'll have to get it, and the most efficient method is typically from other players.

price_update

Updates the the inflation_value, effecting newscaster alerts and the mail system.

track_purchase

Proc that adds a set of strings and ints to the audit log, tracked by the economy SS.

+

update_vending_prices

Iterates over the machines list for vending machines, resets their regular and premium product prices (Not contraband), and sends a message to the newscaster network.

\ No newline at end of file diff --git a/datum/controller/subsystem/events.html b/datum/controller/subsystem/events.html new file mode 100644 index 0000000000000..08171931086f1 --- /dev/null +++ b/datum/controller/subsystem/events.html @@ -0,0 +1,12 @@ +/datum/controller/subsystem/events - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

events

ICES - Intensity Credit Events System

+

This file is used to denote weight and frequency +for events to be spawned by the system.

+

Event subsystem

+

Overriden min and max start times +to accomodate for much longer rounds

Vars

active_intensity_multiplierCurrent active ICES multiplier
controllist of all datum/round_event_control. Used for selecting events based on weight and occurrences.
currentruncache of currently running events, for lag checking.
frequency_lowerThe lower bound for how soon another random event can be scheduled.
frequency_upperThe upper bound for how soon another random event can be scheduled.
intensity_credit_last_timeLast world time we added an intensity credit
intensity_credit_rateRate at which we add intensity credits
intensity_high_multiplierHIGHPOP multiplier (lower = more events)
intensity_high_playersHIGHPOP player threshold
intensity_low_multiplierLOWPOP multiplier (lower = more events)
intensity_low_playersLOWPOP player threshold
intensity_mid_multiplierMIDPOP multiplier (lower = more events)
intensity_mid_playersMIDPOP player threshold
runninglist of all existing /datum/round_event currently being run.
scheduledThe next world.time that a naturally occurring random event can be selected.
wizardmodeWill wizard events be included in the event pool?

Procs

TriggerEventDoes the last pre-flight checks for the passed event, and runs it if the event is ready.
change_intensity_creditsChanges the round's intensity credit pool. Can be called as part of a timer or on its own. +Arguments: credit_action: number, credit_amount: number, check_timer: boolean, reset_timer: boolean, notify_admins: boolean
checkEventCheck if we have an upcoming transfer vote, or we're already evacuating.
debug_event_scheduleRuns a check to determine if events will be suspended due to shuttle related events
resetFrequencySets the event frequency bounds back to their initial value.
spawnEventSelects a random event based on whether it can occur and its 'weight'(probability)
toggleWizardmodeToggles whether or not wizard events will be in the event pool, and sends a notification to the admins.

Var Details

active_intensity_multiplier

Current active ICES multiplier

control

list of all datum/round_event_control. Used for selecting events based on weight and occurrences.

currentrun

cache of currently running events, for lag checking.

frequency_lower

The lower bound for how soon another random event can be scheduled.

frequency_upper

The upper bound for how soon another random event can be scheduled.

intensity_credit_last_time

Last world time we added an intensity credit

intensity_credit_rate

Rate at which we add intensity credits

intensity_high_multiplier

HIGHPOP multiplier (lower = more events)

intensity_high_players

HIGHPOP player threshold

intensity_low_multiplier

LOWPOP multiplier (lower = more events)

intensity_low_players

LOWPOP player threshold

intensity_mid_multiplier

MIDPOP multiplier (lower = more events)

intensity_mid_players

MIDPOP player threshold

running

list of all existing /datum/round_event currently being run.

scheduled

The next world.time that a naturally occurring random event can be selected.

wizardmode

Will wizard events be included in the event pool?

Proc Details

TriggerEvent

Does the last pre-flight checks for the passed event, and runs it if the event is ready.

change_intensity_credits

Changes the round's intensity credit pool. Can be called as part of a timer or on its own. +Arguments: credit_action: number, credit_amount: number, check_timer: boolean, reset_timer: boolean, notify_admins: boolean

checkEvent

Check if we have an upcoming transfer vote, or we're already evacuating.

debug_event_schedule

Runs a check to determine if events will be suspended due to shuttle related events

resetFrequency

Sets the event frequency bounds back to their initial value.

spawnEvent

Selects a random event based on whether it can occur and its 'weight'(probability)

+

Arguments:

+

toggleWizardmode

Toggles whether or not wizard events will be in the event pool, and sends a notification to the admins.

\ No newline at end of file diff --git a/datum/controller/subsystem/explosions.html b/datum/controller/subsystem/explosions.html new file mode 100644 index 0000000000000..8b77fa8a2ac6a --- /dev/null +++ b/datum/controller/subsystem/explosions.html @@ -0,0 +1,55 @@ +/datum/controller/subsystem/explosions - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

explosions

Vars

held_throwturfList of turfs to throw the contents of... AFTER the next explosion processes +This avoids order of operations errors and shit
throwturfList of turfs to throw the contents of

Procs

explodeMakes a given atom explode. Now on the explosions subsystem!
propagate_blastwaveHandles the effects of an explosion originating from a given point.
shake_the_roomHandles the sfx and screenshake caused by an explosion.

Var Details

held_throwturf

List of turfs to throw the contents of... AFTER the next explosion processes +This avoids order of operations errors and shit

throwturf

List of turfs to throw the contents of

Proc Details

explode

Makes a given atom explode. Now on the explosions subsystem!

+

Arguments:

+

propagate_blastwave

Handles the effects of an explosion originating from a given point.

+

Primarily handles popagating the blastwave of the explosion to the relevant turfs. +Also handles the fireball from the explosion. +Also handles the smoke cloud from the explosion. +Also handles sfx and screenshake.

+

Arguments:

+

shake_the_room

Handles the sfx and screenshake caused by an explosion.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/controller/subsystem/fluids.html b/datum/controller/subsystem/fluids.html new file mode 100644 index 0000000000000..e622c6e5b2d5a --- /dev/null +++ b/datum/controller/subsystem/fluids.html @@ -0,0 +1,23 @@ +/datum/controller/subsystem/fluids - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fluids

Vars

currently_processingThe set of fluid nodes we are currently processing effects for.
currently_spreadingThe set of fluid nodes we are currently processing spreading for.
effect_bucket_indexThe index of the currently processing bucket on the effect carousel.
effect_carouselThe set of buckets containing fluid nodes to process effects for.
effect_waitThe amount of time (in deciseconds) between effect processing ticks for each fluid node.
num_effect_bucketsThe number of buckets in the effect carousel.
num_spread_bucketsThe number of buckets in the spread carousel.
spread_bucket_indexThe index of the spread carousel bucket currently being processed.
spread_carouselThe set of buckets containing fluid nodes to spread.
spread_waitThe amount of time (in deciseconds) before a fluid node is created and when it spreads.

Procs

cancel_spreadCancels a queued spread of a fluid node.
initialize_effect_carouselInitializes the carousel used to process fluid effects.
initialize_spread_carouselInitializes the carousel used to process fluid spreading.
initialize_waitsInitializes the subsystem waits.
queue_spreadQueues a fluid node to spread later after one full carousel rotation.
start_processingStarts processing the effects of a fluid node.
stop_processingStops processing the effects of a fluid node.

Var Details

currently_processing

The set of fluid nodes we are currently processing effects for.

currently_spreading

The set of fluid nodes we are currently processing spreading for.

effect_bucket_index

The index of the currently processing bucket on the effect carousel.

The set of buckets containing fluid nodes to process effects for.

effect_wait

The amount of time (in deciseconds) between effect processing ticks for each fluid node.

num_effect_buckets

The number of buckets in the effect carousel.

num_spread_buckets

The number of buckets in the spread carousel.

spread_bucket_index

The index of the spread carousel bucket currently being processed.

The set of buckets containing fluid nodes to spread.

spread_wait

The amount of time (in deciseconds) before a fluid node is created and when it spreads.

Proc Details

cancel_spread

Cancels a queued spread of a fluid node.

+

Arguments:

+

Initializes the carousel used to process fluid effects.

+

Synchronizes the spread delta time with the actual target spread tick rate. +Builds the carousel buckets used to bubble processing.

Initializes the carousel used to process fluid spreading.

+

Synchronizes the spread delta time with the actual target spread tick rate. +Builds the carousel buckets used to queue spreads.

initialize_waits

Initializes the subsystem waits.

+

Ensures that the subsystem's fire wait evenly splits the spread and effect waits.

queue_spread

Queues a fluid node to spread later after one full carousel rotation.

+

Arguments:

+

start_processing

Starts processing the effects of a fluid node.

+

The fluid node will next process after one full bucket rotation.

+

Arguments:

+

stop_processing

Stops processing the effects of a fluid node.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/controller/subsystem/gamemode.html b/datum/controller/subsystem/gamemode.html new file mode 100644 index 0000000000000..c872375577214 --- /dev/null +++ b/datum/controller/subsystem/gamemode.html @@ -0,0 +1,3 @@ +/datum/controller/subsystem/gamemode - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gamemode

Vars

allow_pop_scalingWhether we allow pop scaling. This is configured by config, or the storyteller UI
event_frequency_multiplierEvent frequency multiplier, it exists because wizard, eugh.
event_poolsAssociative list of control events by their track category. Compiled in Init
event_track_pointsAssociative list of even track points.
event_tracksList of our event tracks for fast access during for loops.
forced_next_eventsAssociative list of tracks to forced event controls. For admins to force events (though they can still invoke them freely outside of the track system)
halted_storytellerWhether the storyteller has been halted
last_point_gainsLast point amount gained of each track. Those are recorded for purposes of estimating how long until next event.
min_pop_thresholdsMinimum population thresholds for the tracks to fire off events.
next_storyteller_processNext process for our storyteller. The wait time is STORYTELLER_WAIT_TIME
panel_pagePage of the UI panel.
point_gain_multipliersConfigurable multipliers for point gain over time.
point_thresholdsPoint thresholds at which the events are supposed to be rolled, it is also the base cost for events.
pop_scale_penaltiesAssociative list of pop scale penalties.
pop_scale_thresholdsAssociative list of pop scale thresholds.
ready_playersReady players for roundstart events.
roundstart_event_viewWhether we are viewing the roundstart events or not
roundstart_point_multipliersConfigurable multipliers for roundstart points.
scheduled_eventsEvents that we have scheduled to run in the nearby future
statistics_track_pageCurrent preview page for the statistics UI.
storytellerOur storyteller. He progresses our trackboards and picks out events
storytellersList of all the storytellers. Populated at init. Associative from type
uncategorizedList of all uncategorized events, because they were wizard or holiday events
voted_storytellerResult of the storyteller vote. Defaults to the guide.

Procs

admin_panelPanel containing information, variables and controls about the gamemode and scheduled event
calculate_ready_playersWe need to calculate ready players for the sake of roundstart events becoming eligible.
can_inject_antagsWhether events can inject more antagonists into the round
event_panelPanel containing information and actions regarding events
force_eventSchedules an event.
get_antag_capGets the number of antagonists the antagonist injection events will stop rolling after.
get_candidatesGets candidates for antagonist roles. +Todo: Split into get_candidates and post_get_candidates
get_correct_popcountGets the correct popcount, returning READY people if roundstart, and active people if not.
handle_post_setup_roundstart_eventsSecond step of handlind roundstart events, happening after people spawn.
handle_pre_setup_roundstart_eventsBecause roundstart events need 2 steps of firing for purposes of antags, here is the first step handled, happening before occupation division.
load_config_varsLoads config values from game_options.txt
load_event_config_varsLoads json event config values from events.txt
make_antag_chanceHandles late-join antag assignments
post_setupEveryone should now be on the station and have their normal gear. This is the place to give the special roles extra things
pre_setupAttempts to select players for special roles the mode might have.
refund_scheduled_eventRefunds and removes a scheduled event.
remove_scheduled_eventRemoves a scheduled event.
resetFrequencyResets frequency multiplier.
roll_pre_setup_pointsWe roll points to be spent for roundstart events, including antagonists.
schedule_eventSchedules an event to run later.

Var Details

allow_pop_scaling

Whether we allow pop scaling. This is configured by config, or the storyteller UI

event_frequency_multiplier

Event frequency multiplier, it exists because wizard, eugh.

event_pools

Associative list of control events by their track category. Compiled in Init

event_track_points

Associative list of even track points.

event_tracks

List of our event tracks for fast access during for loops.

forced_next_events

Associative list of tracks to forced event controls. For admins to force events (though they can still invoke them freely outside of the track system)

halted_storyteller

Whether the storyteller has been halted

last_point_gains

Last point amount gained of each track. Those are recorded for purposes of estimating how long until next event.

min_pop_thresholds

Minimum population thresholds for the tracks to fire off events.

next_storyteller_process

Next process for our storyteller. The wait time is STORYTELLER_WAIT_TIME

panel_page

Page of the UI panel.

point_gain_multipliers

Configurable multipliers for point gain over time.

point_thresholds

Point thresholds at which the events are supposed to be rolled, it is also the base cost for events.

pop_scale_penalties

Associative list of pop scale penalties.

pop_scale_thresholds

Associative list of pop scale thresholds.

ready_players

Ready players for roundstart events.

roundstart_event_view

Whether we are viewing the roundstart events or not

roundstart_point_multipliers

Configurable multipliers for roundstart points.

scheduled_events

Events that we have scheduled to run in the nearby future

statistics_track_page

Current preview page for the statistics UI.

storyteller

Our storyteller. He progresses our trackboards and picks out events

storytellers

List of all the storytellers. Populated at init. Associative from type

uncategorized

List of all uncategorized events, because they were wizard or holiday events

voted_storyteller

Result of the storyteller vote. Defaults to the guide.

Proc Details

admin_panel

Panel containing information, variables and controls about the gamemode and scheduled event

calculate_ready_players

We need to calculate ready players for the sake of roundstart events becoming eligible.

can_inject_antags

Whether events can inject more antagonists into the round

event_panel

Panel containing information and actions regarding events

force_event

Schedules an event.

get_antag_cap

Gets the number of antagonists the antagonist injection events will stop rolling after.

get_candidates

Gets candidates for antagonist roles. +Todo: Split into get_candidates and post_get_candidates

get_correct_popcount

Gets the correct popcount, returning READY people if roundstart, and active people if not.

handle_post_setup_roundstart_events

Second step of handlind roundstart events, happening after people spawn.

handle_pre_setup_roundstart_events

Because roundstart events need 2 steps of firing for purposes of antags, here is the first step handled, happening before occupation division.

load_config_vars

Loads config values from game_options.txt

load_event_config_vars

Loads json event config values from events.txt

make_antag_chance

Handles late-join antag assignments

post_setup

Everyone should now be on the station and have their normal gear. This is the place to give the special roles extra things

pre_setup

Attempts to select players for special roles the mode might have.

refund_scheduled_event

Refunds and removes a scheduled event.

remove_scheduled_event

Removes a scheduled event.

resetFrequency

Resets frequency multiplier.

roll_pre_setup_points

We roll points to be spent for roundstart events, including antagonists.

schedule_event

Schedules an event to run later.

\ No newline at end of file diff --git a/datum/controller/subsystem/goldeneye.html b/datum/controller/subsystem/goldeneye.html new file mode 100644 index 0000000000000..dbdbf249353f2 --- /dev/null +++ b/datum/controller/subsystem/goldeneye.html @@ -0,0 +1 @@ +/datum/controller/subsystem/goldeneye - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

goldeneye

Vars

goldeneye_activatedHave we been activated?
goldeneye_extracted_mindsA list of minds that have been extracted and thus cannot be extracted again.
goldeneye_keysA tracked list of all our keys.
ignition_timeHow long until ICARUS fires?
required_keysHow many keys do we need to activate GoldenEye? Can be overriden by Dynamic if there aren't enough heads of staff.
uploaded_keysHow many keys have been uploaded to GoldenEye.

Procs

activateActivates goldeneye.
check_conditionChecks our activation condition after an upload has occured.
check_goldeneye_targetChecks if a mind(target_mind) is a head and if they aren't in the goldeneye_extracted_minds list.
extract_mindA safe proc for adding a targets mind to the tracked extracted minds.
upload_keyA safe proc for registering a new key to the goldeneye system.

Var Details

goldeneye_activated

Have we been activated?

goldeneye_extracted_minds

A list of minds that have been extracted and thus cannot be extracted again.

goldeneye_keys

A tracked list of all our keys.

ignition_time

How long until ICARUS fires?

required_keys

How many keys do we need to activate GoldenEye? Can be overriden by Dynamic if there aren't enough heads of staff.

uploaded_keys

How many keys have been uploaded to GoldenEye.

Proc Details

activate

Activates goldeneye.

check_condition

Checks our activation condition after an upload has occured.

check_goldeneye_target

Checks if a mind(target_mind) is a head and if they aren't in the goldeneye_extracted_minds list.

extract_mind

A safe proc for adding a targets mind to the tracked extracted minds.

upload_key

A safe proc for registering a new key to the goldeneye system.

\ No newline at end of file diff --git a/datum/controller/subsystem/icon_smooth.html b/datum/controller/subsystem/icon_smooth.html new file mode 100644 index 0000000000000..c254238e535c2 --- /dev/null +++ b/datum/controller/subsystem/icon_smooth.html @@ -0,0 +1 @@ +/datum/controller/subsystem/icon_smooth - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

icon_smooth

Vars

blueprint_queueBlueprints assemble an image of what pipes/manifolds/wires look like on initialization, and thus should be taken after everything's been smoothed

Procs

free_deferredReleases a pool of delayed smooth attempts from a particular source

Var Details

blueprint_queue

Blueprints assemble an image of what pipes/manifolds/wires look like on initialization, and thus should be taken after everything's been smoothed

Proc Details

free_deferred

Releases a pool of delayed smooth attempts from a particular source

\ No newline at end of file diff --git a/datum/controller/subsystem/id_access.html b/datum/controller/subsystem/id_access.html new file mode 100644 index 0000000000000..b0f4c7f401be7 --- /dev/null +++ b/datum/controller/subsystem/id_access.html @@ -0,0 +1,74 @@ +/datum/controller/subsystem/id_access - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

id_access

Vars

access_flag_string_by_flagDictionary of access flag string representations. Keys are bitflags. Values are their associated names.
accesses_by_flagDictionary of access lists. Keys are access flag names. Values are lists of all accesses as part of that access.
accesses_by_regionDictionary of accesses based on station region. Keys are region strings. Values are lists of accesses.
all_region_access_tguiSpecially formatted list for sending access levels to tgui interfaces.
centcom_job_templatesHelper list containing all trim paths that can be used as Centcom templates.
desc_by_accessDictionary of access names. Keys are access levels. Values are their associated names.
flags_by_accessDictionary of access flags. Keys are accesses. Values are their associated bitflags.
spare_id_safe_codeThe roundstart generated code for the spare ID safe. This is given to the Captain on shift start. If there's no Captain, it's given to the HoP. If there's no HoP
station_job_templatesHelper list containing all trim paths that can be used as job templates. Intended to be used alongside logic for ACCESS_CHANGE_IDS. Grab templates from sub_department_managers_tgui for Head of Staff restrictions.
station_pda_templatesHelper list containing all PDA paths that can be painted by station machines. Intended to be used alongside logic for ACCESS_CHANGE_IDS. Grab templates from sub_department_managers_tgui for Head of Staff restrictions.
station_regionsHelper list containing all station regions.
sub_department_managers_tguiList of accesses for the Heads of each sub-department alongside the regions they control and their job name.
trim_singletons_by_pathDictionary of trim singletons. Keys are paths. Values are their associated singletons.
wildcard_flags_by_wildcardDictionary of wildcard compatibility flags. Keys are strings for the wildcards. Values are their associated flags.

Procs

add_trim_access_to_cardAdds the accesses associated with a trim to an ID card.
apply_trim_to_cardApplies a trim singleton to a card.
apply_trim_to_chameleon_card
get_access_descReturns the access description associated with any given access level.
get_access_flagReturns the access bitflags associated with any given access level.
get_flag_access_listReturns the list of all accesses associated with any given access flag.
get_region_access_listBuilds and returns a list of accesses from a list of regions.
refresh_job_trim_singletonsCalled by [/datum/controller/subsystem/ticker/proc/setup]
remove_trim_from_cardRemoves a trim from an ID card. Also removes all accesses from it too.
remove_trim_from_chameleon_cardRemoves a trim from a chameleon ID card.
setup_access_flagsBuild access flag lists.
setup_region_listsPopulates the region lists with data about which accesses correspond to which regions.
setup_tgui_listsCreates various data structures that primarily get fed to tgui interfaces, although these lists are used in other places.
setup_trim_singletonsInstantiate trim singletons and add them to a list.
setup_wildcard_dictSet up dictionary to convert wildcard names to flags.
tally_accessTallies up all accesses the card has that have flags greater than or equal to the access_flag supplied.

Var Details

access_flag_string_by_flag

Dictionary of access flag string representations. Keys are bitflags. Values are their associated names.

accesses_by_flag

Dictionary of access lists. Keys are access flag names. Values are lists of all accesses as part of that access.

accesses_by_region

Dictionary of accesses based on station region. Keys are region strings. Values are lists of accesses.

all_region_access_tgui

Specially formatted list for sending access levels to tgui interfaces.

centcom_job_templates

Helper list containing all trim paths that can be used as Centcom templates.

desc_by_access

Dictionary of access names. Keys are access levels. Values are their associated names.

flags_by_access

Dictionary of access flags. Keys are accesses. Values are their associated bitflags.

spare_id_safe_code

The roundstart generated code for the spare ID safe. This is given to the Captain on shift start. If there's no Captain, it's given to the HoP. If there's no HoP

station_job_templates

Helper list containing all trim paths that can be used as job templates. Intended to be used alongside logic for ACCESS_CHANGE_IDS. Grab templates from sub_department_managers_tgui for Head of Staff restrictions.

station_pda_templates

Helper list containing all PDA paths that can be painted by station machines. Intended to be used alongside logic for ACCESS_CHANGE_IDS. Grab templates from sub_department_managers_tgui for Head of Staff restrictions.

station_regions

Helper list containing all station regions.

sub_department_managers_tgui

List of accesses for the Heads of each sub-department alongside the regions they control and their job name.

trim_singletons_by_path

Dictionary of trim singletons. Keys are paths. Values are their associated singletons.

wildcard_flags_by_wildcard

Dictionary of wildcard compatibility flags. Keys are strings for the wildcards. Values are their associated flags.

Proc Details

add_trim_access_to_card

Adds the accesses associated with a trim to an ID card.

+

Clears the card's existing access levels first. +Primarily intended for applying trim templates to cards. Will attempt to add as many ordinary access +levels as it can, without consuming any wildcards. Will then attempt to apply the trim-specific wildcards after.

+

Arguments:

+

apply_trim_to_card

Applies a trim singleton to a card.

+

Returns FALSE if the trim could not be applied due to being incompatible with the card. +Incompatibility is defined as a card not being able to hold all the trim's required wildcards. +Returns TRUE otherwise. +Arguments:

+

apply_trim_to_chameleon_card

get_access_desc

Returns the access description associated with any given access level.

+

In proc form due to accesses being stored in the list as text instead of numbers. +Arguments:

+

get_access_flag

Returns the access bitflags associated with any given access level.

+

In proc form due to accesses being stored in the list as text instead of numbers. +Arguments:

+

get_flag_access_list

Returns the list of all accesses associated with any given access flag.

+

In proc form due to accesses being stored in the list as text instead of numbers. +Arguments:

+

get_region_access_list

Builds and returns a list of accesses from a list of regions.

+

Arguments:

+

refresh_job_trim_singletons

Called by [/datum/controller/subsystem/ticker/proc/setup]

+

This runs through every /datum/id_trim/job singleton and ensures that its access is setup according to +appropriate config entries.

remove_trim_from_card

Removes a trim from an ID card. Also removes all accesses from it too.

+

Arguments:

+

remove_trim_from_chameleon_card

Removes a trim from a chameleon ID card.

+

Arguments:

+

setup_access_flags

Build access flag lists.

setup_region_lists

Populates the region lists with data about which accesses correspond to which regions.

setup_tgui_lists

Creates various data structures that primarily get fed to tgui interfaces, although these lists are used in other places.

setup_trim_singletons

Instantiate trim singletons and add them to a list.

setup_wildcard_dict

Set up dictionary to convert wildcard names to flags.

tally_access

Tallies up all accesses the card has that have flags greater than or equal to the access_flag supplied.

+

Returns the number of accesses that have flags matching access_flag or a higher tier access. +Arguments:

+
\ No newline at end of file diff --git a/datum/controller/subsystem/ipintel.html b/datum/controller/subsystem/ipintel.html new file mode 100644 index 0000000000000..696ce0839d50a --- /dev/null +++ b/datum/controller/subsystem/ipintel.html @@ -0,0 +1 @@ +/datum/controller/subsystem/ipintel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ipintel

Vars

cached_queriesCache for previously queried IP addresses and those stored in the database
probability_thresholdThe threshold for probability to be considered a VPN and/or bad IP
rate_limit_minuteThe store for rate limiting

Var Details

cached_queries

Cache for previously queried IP addresses and those stored in the database

probability_threshold

The threshold for probability to be considered a VPN and/or bad IP

rate_limit_minute

The store for rate limiting

\ No newline at end of file diff --git a/datum/controller/subsystem/job.html b/datum/controller/subsystem/job.html new file mode 100644 index 0000000000000..9461ae0e21f05 --- /dev/null +++ b/datum/controller/subsystem/job.html @@ -0,0 +1,63 @@ +/datum/controller/subsystem/job - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

job

Vars

all_occupationsList of all jobs.
assigned_captainIf TRUE, some player has been assigned Captaincy or Acting Captaincy at some point during the shift and has been given the spare ID safe code.
chain_of_commandKeys should be assigned job roles. Values should be >= 1. +Represents the chain of command on the station. Lower numbers mean higher priority. +Used to give the Cap's Spare safe code to a an appropriate player. +Assumed Captain is always the highest in the chain of command. +See [/datum/controller/subsystem/ticker/proc/equip_characters]
config_documentationThis is just the message we prepen and put into all of the config files to ensure documentation. We use this in more than one place, so let's put it in the SS to make life a bit easier.
dynamic_forced_occupationsLazylist of mob:occupation_string pairs.
experience_jobs_mapDictionary of jobs indexed by the experience type they grant.
job_config_datum_singletonsList of job config datum singletons.
job_priorities_to_stringsDictionary that maps job priorities to low/medium/high. Keys have to be number-strings as assoc lists cannot be indexed by integers. Set in setup_job_lists.
joinable_departmentsList of all departments with joinable jobs.
joinable_departments_by_typeList of all joinable departments indexed by their typepath, sorted by their own display order.
joinable_occupationsList of jobs that can be joined through the starting menu.
legacy_modeAre we using the old job config system (txt) or the new job config system (TOML)? IF we are going to use the txt file, then we are in "legacy mode", and this will flip to TRUE.
name_occupationsDictionary of all jobs, keys are titles.
safe_code_request_locThe loc to which the emergency safe code has been requested for delivery.
safe_code_requestedWhether the emergency safe code has been requested via a comms console on shifts with no Captain or Acting Captain.
safe_code_timer_idTimer ID for the emergency safe code request.
type_occupationsDictionary of all jobs, keys are types.

Procs

OccupyRoleUsed for clocking back in, re-claiming the previously freed role. Returns false if no slot is available.
assign_priority_positionsAssigns roles that are considered high priority, either due to dynamic needing to force a specific role for a specific ruleset +or making sure roles critical to round progression exist where possible every shift.
assign_roleAssigns the given job role to the player.
check_job_eligibilityRuns a standard suite of eligibility checks to make sure the player can take the reqeusted job.
divide_occupations
export_tomlProc that we call to generate a new jobconfig.toml file and send it to the requesting client. Returns TRUE if a file is successfully generated.
fill_ai_positionsAttempts to fill out all available AI positions.
fill_all_head_positions_at_priorityAttempts to fill out all possible head positions for players with that job at a a given job priority level. +Returns the number of Head positions assigned.
generate_blank_job_configThis will just return a list for a completely new job that doesn't need to be migrated from an old config (completely new). Just done here to reduce copypasta
generate_configWill generate a new jobconfig.toml file if one does not exist, or if one does exist, will migrate the old jobs.txt file into the new TOML format for download +Returns TRUE if a file is successfully generated, FALSE otherwise.
generate_config_singletonsReturns an associated list of all of the job config types that we have in the codebase.
generate_job_config_excluding_legacyLike generate_blank_job_config, but we opt-out of adding the legacy variables in case we handle it elsewhere.
get_all_headsReturns a list of minds of all heads of staff
get_all_secReturns a list of minds of all security members
get_job_staff_recordsReturns a list of minds of staff in a particular job
get_living_headsReturns a list of minds of all heads of staff who are alive
get_living_secReturns a list of minds of all security members who are alive
get_valid_overflow_jobsReturns a list of jobs that we are allowed to fuck with during random events
has_minimum_jobsCheck if the station manifest has at least a certain amount of this staff type. +If a matching head of staff is on the manifest, automatically passes (returns TRUE)
import_config_from_txtLoads the job config from the TXT and creates a new TOML file from it. +Returns TRUE if a file is successfully generated, FALSE otherwise.
is_skeleton_engineeringCheck if the station manifest has at least a certain amount of this staff type
job_priority_level_to_stringTakes a job priority #define such as JP_LOW and gets its string representation for logging.
legacy_loadOperates the legacy jobs.txt parser to load jobs from the old config system.
load_jobs_from_configSets all of the job datum configurable values to what they've been set to in the config file, jobconfig.toml.
regenerate_job_configIf we add a new job or more fields to config a job with, quickly spin up a brand new config that inherits all of your old settings, but adds the new job with codebase defaults. +Returns TRUE if a file is successfully generated, FALSE otherwise.
send_spare_id_safe_codeSend a drop pod containing a piece of paper with the spare ID safe code to loc
setup_alt_job_itemsShows a list of all current and future polls and buttons to edit or delete them or create a new poll.
setup_job_listsBuilds various lists of jobs based on station, centcom and additional jobs with icons associated with them.

Var Details

all_occupations

List of all jobs.

assigned_captain

If TRUE, some player has been assigned Captaincy or Acting Captaincy at some point during the shift and has been given the spare ID safe code.

chain_of_command

Keys should be assigned job roles. Values should be >= 1. +Represents the chain of command on the station. Lower numbers mean higher priority. +Used to give the Cap's Spare safe code to a an appropriate player. +Assumed Captain is always the highest in the chain of command. +See [/datum/controller/subsystem/ticker/proc/equip_characters]

config_documentation

This is just the message we prepen and put into all of the config files to ensure documentation. We use this in more than one place, so let's put it in the SS to make life a bit easier.

dynamic_forced_occupations

Lazylist of mob:occupation_string pairs.

experience_jobs_map

Dictionary of jobs indexed by the experience type they grant.

job_config_datum_singletons

List of job config datum singletons.

job_priorities_to_strings

Dictionary that maps job priorities to low/medium/high. Keys have to be number-strings as assoc lists cannot be indexed by integers. Set in setup_job_lists.

joinable_departments

List of all departments with joinable jobs.

joinable_departments_by_type

List of all joinable departments indexed by their typepath, sorted by their own display order.

joinable_occupations

List of jobs that can be joined through the starting menu.

legacy_mode

Are we using the old job config system (txt) or the new job config system (TOML)? IF we are going to use the txt file, then we are in "legacy mode", and this will flip to TRUE.

name_occupations

Dictionary of all jobs, keys are titles.

safe_code_request_loc

The loc to which the emergency safe code has been requested for delivery.

safe_code_requested

Whether the emergency safe code has been requested via a comms console on shifts with no Captain or Acting Captain.

safe_code_timer_id

Timer ID for the emergency safe code request.

type_occupations

Dictionary of all jobs, keys are types.

Proc Details

OccupyRole

Used for clocking back in, re-claiming the previously freed role. Returns false if no slot is available.

assign_priority_positions

Assigns roles that are considered high priority, either due to dynamic needing to force a specific role for a specific ruleset +or making sure roles critical to round progression exist where possible every shift.

assign_role

Assigns the given job role to the player.

+

Arguments:

+

check_job_eligibility

Runs a standard suite of eligibility checks to make sure the player can take the reqeusted job.

+

Checks:

+ +

Arguments:

+

divide_occupations

export_toml

Proc that we call to generate a new jobconfig.toml file and send it to the requesting client. Returns TRUE if a file is successfully generated.

fill_ai_positions

Attempts to fill out all available AI positions.

fill_all_head_positions_at_priority

Attempts to fill out all possible head positions for players with that job at a a given job priority level. +Returns the number of Head positions assigned.

+

Arguments:

+

generate_blank_job_config

This will just return a list for a completely new job that doesn't need to be migrated from an old config (completely new). Just done here to reduce copypasta

generate_config

Will generate a new jobconfig.toml file if one does not exist, or if one does exist, will migrate the old jobs.txt file into the new TOML format for download +Returns TRUE if a file is successfully generated, FALSE otherwise.

generate_config_singletons

Returns an associated list of all of the job config types that we have in the codebase.

generate_job_config_excluding_legacy

Like generate_blank_job_config, but we opt-out of adding the legacy variables in case we handle it elsewhere.

get_all_heads

Returns a list of minds of all heads of staff

get_all_sec

Returns a list of minds of all security members

get_job_staff_records

Returns a list of minds of staff in a particular job

get_living_heads

Returns a list of minds of all heads of staff who are alive

get_living_sec

Returns a list of minds of all security members who are alive

get_valid_overflow_jobs

Returns a list of jobs that we are allowed to fuck with during random events

has_minimum_jobs

Check if the station manifest has at least a certain amount of this staff type. +If a matching head of staff is on the manifest, automatically passes (returns TRUE)

+

Arguments:

+

import_config_from_txt

Loads the job config from the TXT and creates a new TOML file from it. +Returns TRUE if a file is successfully generated, FALSE otherwise.

is_skeleton_engineering

Check if the station manifest has at least a certain amount of this staff type

+

Arguments:

+

job_priority_level_to_string

Takes a job priority #define such as JP_LOW and gets its string representation for logging.

legacy_load

Operates the legacy jobs.txt parser to load jobs from the old config system.

load_jobs_from_config

Sets all of the job datum configurable values to what they've been set to in the config file, jobconfig.toml.

regenerate_job_config

If we add a new job or more fields to config a job with, quickly spin up a brand new config that inherits all of your old settings, but adds the new job with codebase defaults. +Returns TRUE if a file is successfully generated, FALSE otherwise.

send_spare_id_safe_code

Send a drop pod containing a piece of paper with the spare ID safe code to loc

setup_alt_job_items

Shows a list of all current and future polls and buttons to edit or delete them or create a new poll.

+

All extra functionality to run on new player mobs, in a place where we actually have the client, +and haven't called COMSIG_GLOB_JOB_AFTER_SPAWN yet, so we are running before the wallet trait, +and other things that rely on items already being settled.

setup_job_lists

Builds various lists of jobs based on station, centcom and additional jobs with icons associated with them.

\ No newline at end of file diff --git a/datum/controller/subsystem/lag_switch.html b/datum/controller/subsystem/lag_switch.html new file mode 100644 index 0000000000000..dccbf1a5224cc --- /dev/null +++ b/datum/controller/subsystem/lag_switch.html @@ -0,0 +1 @@ +/datum/controller/subsystem/lag_switch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lag_switch

Vars

auto_measuresList of measures that toggle automatically
auto_switchIf the lag switch measures should attempt to trigger automatically, TRUE if a config value exists
measuresList of bools corresponding to code/__DEFINES/lag_switch.dm
slowmode_cooldownCooldown between say verb uses when slowmode is enabled
trigger_popAmount of connected clients at which the Lag Switch should engage, set via config or admin panel
veto_timer_idTimer ID for the automatic veto period

Procs

cancel_auto_enable_in_progressCalled from an admin chat link
change_slowmode_cooldownUpdate the slowmode timer length and clear existing ones if reduced
set_all_measuresHelper to loop over all measures for mass changes
set_measureHandle the state change for individual measures
toggle_auto_enable(En/Dis)able automatic triggering of switches based on client count

Var Details

auto_measures

List of measures that toggle automatically

auto_switch

If the lag switch measures should attempt to trigger automatically, TRUE if a config value exists

measures

List of bools corresponding to code/__DEFINES/lag_switch.dm

slowmode_cooldown

Cooldown between say verb uses when slowmode is enabled

trigger_pop

Amount of connected clients at which the Lag Switch should engage, set via config or admin panel

veto_timer_id

Timer ID for the automatic veto period

Proc Details

cancel_auto_enable_in_progress

Called from an admin chat link

change_slowmode_cooldown

Update the slowmode timer length and clear existing ones if reduced

set_all_measures

Helper to loop over all measures for mass changes

set_measure

Handle the state change for individual measures

toggle_auto_enable

(En/Dis)able automatic triggering of switches based on client count

\ No newline at end of file diff --git a/datum/controller/subsystem/library.html b/datum/controller/subsystem/library.html new file mode 100644 index 0000000000000..1f93dd6c0ddee --- /dev/null +++ b/datum/controller/subsystem/library.html @@ -0,0 +1 @@ +/datum/controller/subsystem/library - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

library

Vars

books_by_areaList of book datums that we consider to be "in" any one area.
library_areasList of areas that count as "a library", modified by map config
printable_postersList of poster typepaths we're ok with being printable
search_categoriesList of acceptable search categories for book consoles
shelves_to_loadList of bookselves to prefill with books
upload_categoriesList of acceptable categories for a book to be

Procs

get_area_booksReturns a list of copied book datums that we consider to be "in" the passed in area at roundstart

Var Details

books_by_area

List of book datums that we consider to be "in" any one area.

library_areas

List of areas that count as "a library", modified by map config

printable_posters

List of poster typepaths we're ok with being printable

search_categories

List of acceptable search categories for book consoles

shelves_to_load

List of bookselves to prefill with books

upload_categories

List of acceptable categories for a book to be

Proc Details

get_area_books

Returns a list of copied book datums that we consider to be "in" the passed in area at roundstart

\ No newline at end of file diff --git a/datum/controller/subsystem/looting.html b/datum/controller/subsystem/looting.html new file mode 100644 index 0000000000000..0d6b059f3230d --- /dev/null +++ b/datum/controller/subsystem/looting.html @@ -0,0 +1 @@ +/datum/controller/subsystem/looting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

looting

Vars

backlogBacklog of items. Gets put into processing
processingActively processing items

Var Details

backlog

Backlog of items. Gets put into processing

processing

Actively processing items

\ No newline at end of file diff --git a/datum/controller/subsystem/lorecaster.html b/datum/controller/subsystem/lorecaster.html new file mode 100644 index 0000000000000..3d8dc44fa2f16 --- /dev/null +++ b/datum/controller/subsystem/lorecaster.html @@ -0,0 +1 @@ +/datum/controller/subsystem/lorecaster - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lorecaster

Vars

storiesList of stories yet to have been run

Var Details

stories

List of stories yet to have been run

\ No newline at end of file diff --git a/datum/controller/subsystem/lowpop.html b/datum/controller/subsystem/lowpop.html new file mode 100644 index 0000000000000..9c5625ae4f8b1 --- /dev/null +++ b/datum/controller/subsystem/lowpop.html @@ -0,0 +1 @@ +/datum/controller/subsystem/lowpop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lowpop

Vars

atmos_machinery_no_powerList of atmos machinery we set no power to
lowpop_activeAre lowpop measures currently in effect?

Procs

lowpop_checkWe check if we should activate the measures.
power_restoreHere, we recharge!
update_power_changesChanges the power requirements of some things.

Var Details

atmos_machinery_no_power

List of atmos machinery we set no power to

lowpop_active

Are lowpop measures currently in effect?

Proc Details

lowpop_check

We check if we should activate the measures.

power_restore

Here, we recharge!

update_power_changes

Changes the power requirements of some things.

\ No newline at end of file diff --git a/datum/controller/subsystem/lua.html b/datum/controller/subsystem/lua.html new file mode 100644 index 0000000000000..295ee172370af --- /dev/null +++ b/datum/controller/subsystem/lua.html @@ -0,0 +1,5 @@ +/datum/controller/subsystem/lua - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lua

Vars

editorsA list of open editors, with each key in the list associated with a list of editors. +Tracks which UIs are open for each state so that they can be updated whenever +code is run in the state.
statesA list of all lua states

Var Details

editors

A list of open editors, with each key in the list associated with a list of editors. +Tracks which UIs are open for each state so that they can be updated whenever +code is run in the state.

states

A list of all lua states

\ No newline at end of file diff --git a/datum/controller/subsystem/machines.html b/datum/controller/subsystem/machines.html new file mode 100644 index 0000000000000..304d0bfa570ab --- /dev/null +++ b/datum/controller/subsystem/machines.html @@ -0,0 +1 @@ +/datum/controller/subsystem/machines - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

machines

Vars

all_machinesAll machines, not just those that are processing.
machines_by_typeAssosciative list of all machines that exist.
powernetsList of all powernets on the server.

Procs

get_machines_by_typeGets a list of all machines that are the exact passed type.
get_machines_by_type_and_subtypesGets a list of all machines that are either the passed type or a subtype.
register_machineRegisters a machine with the machine subsystem; should only be called by the machine itself during its creation.
unregister_machineRemoves a machine from the machine subsystem; should only be called by the machine itself inside Destroy.

Var Details

all_machines

All machines, not just those that are processing.

machines_by_type

Assosciative list of all machines that exist.

powernets

List of all powernets on the server.

Proc Details

get_machines_by_type

Gets a list of all machines that are the exact passed type.

get_machines_by_type_and_subtypes

Gets a list of all machines that are either the passed type or a subtype.

register_machine

Registers a machine with the machine subsystem; should only be called by the machine itself during its creation.

unregister_machine

Removes a machine from the machine subsystem; should only be called by the machine itself inside Destroy.

\ No newline at end of file diff --git a/datum/controller/subsystem/map_vote.html b/datum/controller/subsystem/map_vote.html new file mode 100644 index 0000000000000..a9b902e46dd6c --- /dev/null +++ b/datum/controller/subsystem/map_vote.html @@ -0,0 +1 @@ +/datum/controller/subsystem/map_vote - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

map_vote

Vars

admin_overrideHas an admin specifically set a map.
already_votedHave we already done a vote.
map_vote_cacheStores the current map vote cache, so that players can look at the current tally.
next_map_configThe map that has been chosen for next round.
previous_cacheStores the previous map vote cache, used when a map vote is reverted.
tally_printoutStores a formatted html string of the tally counts

Procs

get_valid_map_vote_choicesReturns a list of all map options that are invalid for the current population.

Var Details

admin_override

Has an admin specifically set a map.

already_voted

Have we already done a vote.

map_vote_cache

Stores the current map vote cache, so that players can look at the current tally.

next_map_config

The map that has been chosen for next round.

previous_cache

Stores the previous map vote cache, used when a map vote is reverted.

tally_printout

Stores a formatted html string of the tally counts

Proc Details

get_valid_map_vote_choices

Returns a list of all map options that are invalid for the current population.

\ No newline at end of file diff --git a/datum/controller/subsystem/mapping.html b/datum/controller/subsystem/mapping.html new file mode 100644 index 0000000000000..705db490f0c34 --- /dev/null +++ b/datum/controller/subsystem/mapping.html @@ -0,0 +1,27 @@ +/datum/controller/subsystem/mapping - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mapping

Vars

adding_new_zlevelTrue when in the process of adding a new Z-level, global locking
biomesAll possible biomes in assoc list as type || instance
critical_planesList of plane masters that are of critical priority
current_mapThe current map config the server loaded at round start.
gravity_by_z_levelshows the default gravity value for each z level. recalculated when gravity generators change. +List in the form: list(z level num = max generator gravity in that z level OR the gravity level trait)
lists_to_reserveList of lists of turfs to reserve
loaded_lazy_templateslist of lazy templates that have been loaded
max_plane_offsetThe largest plane offset we've generated so far
multiz_levelslist of all z level indices that form multiz connections and whether theyre linked up or down. +list of lists, inner lists are of the form: list("up or down link direction" = TRUE)
plane_offset_blacklistList of planes that do not allow for offsetting
plane_offset_to_trueAssoc list of string plane values to their true, non offset representation
plane_to_offsetAssoc list of string plane to the plane's offset value
render_offset_blacklistList of render targets that do not allow for offsetting
themed_ruinsList of ruins, separated by their theme
true_to_offset_planesAssoc list of true string plane values to a list of all potential offset planess
z_level_to_lowest_plane_offsetList of z level (as number) -> The lowest plane offset in that z stack
z_level_to_plane_offsetList of z level (as number) -> plane offset of that z level +Used to maintain the plane cube
z_level_to_stackList of z level (as number) -> list of all z levels vertically connected to ours +Useful for fast grouping lookups and such
z_listlist of all z level datums in the order of their z (z level 1 is at index 1, etc.)
z_trait_levelslist of traits and their associated z leves

Procs

add_new_zlevelGenerates a real, honest to god new z level. Will create the actual space, and also generate a datum that holds info about the new plot of land +Accepts the name, traits list, datum type, and if we should manage the turfs we create
add_reservation_zlevelAdds a new reservation z level. A bit of space that can be handed out on request +Of note, reservations default to transit turfs, to make their most common use, shuttles, faster
generate_offset_listsTakes an offset to generate misc lists to, and a base to start from +Use this to react globally to maintain parity with plane offsets
generate_station_area_listGenerates the global station area list, filling it with typepaths of unique areas found on the station Z.
get_connected_levelsTakes a turf or a z level, and returns a list of all the z levels that are connected to it
get_station_centerPrefer not to use this one too often
initialize_biomesInitialize all biomes, assoc as type || instance
initialize_reserved_levelSets up a z level as reserved +This is not for wiping reserved levels, use wipe_reservations() for that. +If this is called after SSatom init, it will call Initialize on all turfs on the passed z, as its name promises
is_planetaryReturns true if the map we're playing on is on a planet
level_has_all_traitsCheck if levels[z] has all of the specified traits
level_has_any_traitCheck if levels[z] has any of the specified traits
level_traitLook up levels[z].traits[trait]
levels_by_all_traitsGet a list of all z which have all of the specified traits
levels_by_any_traitGet a list of all z which have any of the specified traits
levels_by_traitGet a list of all z which have the specified trait
load_all_away_missionsFor debug purposes, will add every single away mission present in a given directory. +You can optionally pass in a string directory to load from instead of the default.
manage_z_levelTakes a z level datum, and tells the mapping subsystem to manage it +Also handles things like plane offset generation, and other things that happen on a z level to z level basis
request_turf_block_reservationRequests a /datum/turf_reservation based on the given width, height, and z_size. You can specify a z_reservation to use a specific z level, or leave it null to use any z level.
reserve_turfsSchedules a group of turfs to be handed back to the reservation system's control +If await is true, will sleep until the turfs are finished work
run_map_terrain_generationGenerate the turfs of the area
run_map_terrain_populationPopulate the turfs of the area
validate_z_level_loadingLightweight proc that just checks to make sure that all of the expected z-levels were loaded. Split out for clarity from load_all_away_missions() +Argument "checkable_levels" is just a list of the names (typically the filepaths) of the z-levels we were expected to load, which should correspond to the name on the space level datum.

Var Details

adding_new_zlevel

True when in the process of adding a new Z-level, global locking

biomes

All possible biomes in assoc list as type || instance

critical_planes

List of plane masters that are of critical priority

current_map

The current map config the server loaded at round start.

gravity_by_z_level

shows the default gravity value for each z level. recalculated when gravity generators change. +List in the form: list(z level num = max generator gravity in that z level OR the gravity level trait)

lists_to_reserve

List of lists of turfs to reserve

loaded_lazy_templates

list of lazy templates that have been loaded

max_plane_offset

The largest plane offset we've generated so far

multiz_levels

list of all z level indices that form multiz connections and whether theyre linked up or down. +list of lists, inner lists are of the form: list("up or down link direction" = TRUE)

plane_offset_blacklist

List of planes that do not allow for offsetting

plane_offset_to_true

Assoc list of string plane values to their true, non offset representation

plane_to_offset

Assoc list of string plane to the plane's offset value

render_offset_blacklist

List of render targets that do not allow for offsetting

themed_ruins

List of ruins, separated by their theme

true_to_offset_planes

Assoc list of true string plane values to a list of all potential offset planess

z_level_to_lowest_plane_offset

List of z level (as number) -> The lowest plane offset in that z stack

z_level_to_plane_offset

List of z level (as number) -> plane offset of that z level +Used to maintain the plane cube

z_level_to_stack

List of z level (as number) -> list of all z levels vertically connected to ours +Useful for fast grouping lookups and such

z_list

list of all z level datums in the order of their z (z level 1 is at index 1, etc.)

z_trait_levels

list of traits and their associated z leves

Proc Details

add_new_zlevel

Generates a real, honest to god new z level. Will create the actual space, and also generate a datum that holds info about the new plot of land +Accepts the name, traits list, datum type, and if we should manage the turfs we create

add_reservation_zlevel

Adds a new reservation z level. A bit of space that can be handed out on request +Of note, reservations default to transit turfs, to make their most common use, shuttles, faster

generate_offset_lists

Takes an offset to generate misc lists to, and a base to start from +Use this to react globally to maintain parity with plane offsets

generate_station_area_list

Generates the global station area list, filling it with typepaths of unique areas found on the station Z.

get_connected_levels

Takes a turf or a z level, and returns a list of all the z levels that are connected to it

get_station_center

Prefer not to use this one too often

initialize_biomes

Initialize all biomes, assoc as type || instance

initialize_reserved_level

Sets up a z level as reserved +This is not for wiping reserved levels, use wipe_reservations() for that. +If this is called after SSatom init, it will call Initialize on all turfs on the passed z, as its name promises

is_planetary

Returns true if the map we're playing on is on a planet

level_has_all_traits

Check if levels[z] has all of the specified traits

level_has_any_trait

Check if levels[z] has any of the specified traits

level_trait

Look up levels[z].traits[trait]

levels_by_all_traits

Get a list of all z which have all of the specified traits

levels_by_any_trait

Get a list of all z which have any of the specified traits

levels_by_trait

Get a list of all z which have the specified trait

load_all_away_missions

For debug purposes, will add every single away mission present in a given directory. +You can optionally pass in a string directory to load from instead of the default.

manage_z_level

Takes a z level datum, and tells the mapping subsystem to manage it +Also handles things like plane offset generation, and other things that happen on a z level to z level basis

request_turf_block_reservation

Requests a /datum/turf_reservation based on the given width, height, and z_size. You can specify a z_reservation to use a specific z level, or leave it null to use any z level.

reserve_turfs

Schedules a group of turfs to be handed back to the reservation system's control +If await is true, will sleep until the turfs are finished work

run_map_terrain_generation

Generate the turfs of the area

run_map_terrain_population

Populate the turfs of the area

validate_z_level_loading

Lightweight proc that just checks to make sure that all of the expected z-levels were loaded. Split out for clarity from load_all_away_missions() +Argument "checkable_levels" is just a list of the names (typically the filepaths) of the z-levels we were expected to load, which should correspond to the name on the space level datum.

\ No newline at end of file diff --git a/datum/controller/subsystem/market.html b/datum/controller/subsystem/market.html new file mode 100644 index 0000000000000..035f487862ec6 --- /dev/null +++ b/datum/controller/subsystem/market.html @@ -0,0 +1 @@ +/datum/controller/subsystem/market - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

market

Vars

marketsList of all existing markets.
queued_purchasesCurrently queued purchases.
shipping_method_descriptionsDescriptions for each shipping methods.
telepadsList of existing ltsrbts.

Procs

fake_teleportUsed to make a teleportation effect as do_teleport does not like moving items from nullspace.
queue_itemUsed to add /datum/market_purchase to queued_purchases var. Returns TRUE when queued.
restockA proc that restocks one or more markets, or all if the market_whitelist is null.

Var Details

markets

List of all existing markets.

queued_purchases

Currently queued purchases.

shipping_method_descriptions

Descriptions for each shipping methods.

telepads

List of existing ltsrbts.

Proc Details

fake_teleport

Used to make a teleportation effect as do_teleport does not like moving items from nullspace.

queue_item

Used to add /datum/market_purchase to queued_purchases var. Returns TRUE when queued.

restock

A proc that restocks one or more markets, or all if the market_whitelist is null.

\ No newline at end of file diff --git a/datum/controller/subsystem/materials.html b/datum/controller/subsystem/materials.html new file mode 100644 index 0000000000000..84087ee238e10 --- /dev/null +++ b/datum/controller/subsystem/materials.html @@ -0,0 +1,79 @@ +/datum/controller/subsystem/materials - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

materials

Vars

base_stack_recipesList of stackcrafting recipes for materials using base recipes
dimensional_themesA list of dimensional themes used by the dimensional anomaly and other things, most of which require materials to function.
material_combosA cache of all material combinations that have been used
materialids_by_categoryDictionary of category || list of material ids, mostly used by rnd machines like autolathes.
materialids_by_typeDictionary of type || list of material ids
materialsDictionary of material.id || material ref
materials_by_categoryDictionary of category || list of material refs
materials_by_typeDictionary of type || list of material refs
rigid_stack_recipesList of stackcrafting recipes for materials using rigid recipes

Procs

FindOrCreateMaterialComboReturns a list to be used as an object's custom_materials. Lists will be cached and re-used based on the parameters.
GetIdFromArguments
InitializeMaterial
InitializeMaterialsRan on initialize, populated the materials and materials_by_category dictionaries with their appropriate vars (See these variables for more info)
_GetMaterialRef

Var Details

base_stack_recipes

List of stackcrafting recipes for materials using base recipes

dimensional_themes

A list of dimensional themes used by the dimensional anomaly and other things, most of which require materials to function.

material_combos

A cache of all material combinations that have been used

materialids_by_category

Dictionary of category || list of material ids, mostly used by rnd machines like autolathes.

materialids_by_type

Dictionary of type || list of material ids

materials

Dictionary of material.id || material ref

materials_by_category

Dictionary of category || list of material refs

materials_by_type

Dictionary of type || list of material refs

rigid_stack_recipes

List of stackcrafting recipes for materials using rigid recipes

Proc Details

FindOrCreateMaterialCombo

Returns a list to be used as an object's custom_materials. Lists will be cached and re-used based on the parameters.

GetIdFromArguments

InitializeMaterial

InitializeMaterials

Ran on initialize, populated the materials and materials_by_category dictionaries with their appropriate vars (See these variables for more info)

_GetMaterialRef

\ No newline at end of file diff --git a/datum/controller/subsystem/maturity_guard.html b/datum/controller/subsystem/maturity_guard.html new file mode 100644 index 0000000000000..3bbde514ad31c --- /dev/null +++ b/datum/controller/subsystem/maturity_guard.html @@ -0,0 +1 @@ +/datum/controller/subsystem/maturity_guard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

maturity_guard

Vars

blacklisted_cacheA list of players that failed the age check this round. Stopgap only used if we don't have a db attached to ban people.
current_dayCurrent day of the month, stored on the subsystem init
current_monthCurrent month of the year, stored on the subsystem init
current_yearCurrent year, stored on the subsystem init
prompt_cacheA list of currently active prompts.

Procs

age_checkChecks if the player is declared of age. Prompts the player for DoB if necessary.
age_promptCreates a prompt window for user's date of birth.
create_underage_banBecause apparently there's no simple proc for applying bans and admin datums need an actual admin holding them

Var Details

blacklisted_cache

A list of players that failed the age check this round. Stopgap only used if we don't have a db attached to ban people.

current_day

Current day of the month, stored on the subsystem init

current_month

Current month of the year, stored on the subsystem init

current_year

Current year, stored on the subsystem init

prompt_cache

A list of currently active prompts.

Proc Details

age_check

Checks if the player is declared of age. Prompts the player for DoB if necessary.

age_prompt

Creates a prompt window for user's date of birth.

create_underage_ban

Because apparently there's no simple proc for applying bans and admin datums need an actual admin holding them

\ No newline at end of file diff --git a/datum/controller/subsystem/minor_mapping.html b/datum/controller/subsystem/minor_mapping.html new file mode 100644 index 0000000000000..0ca9630f4b1db --- /dev/null +++ b/datum/controller/subsystem/minor_mapping.html @@ -0,0 +1 @@ +/datum/controller/subsystem/minor_mapping - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

minor_mapping

Procs

trigger_migrationSpawns some critters on exposed wires, usually but not always mice
valid_mouse_turfReturns true if a mouse won't die if spawned on this turf

Proc Details

trigger_migration

Spawns some critters on exposed wires, usually but not always mice

valid_mouse_turf

Returns true if a mouse won't die if spawned on this turf

\ No newline at end of file diff --git a/datum/controller/subsystem/mobs.html b/datum/controller/subsystem/mobs.html new file mode 100644 index 0000000000000..5bbe272f7cba1 --- /dev/null +++ b/datum/controller/subsystem/mobs.html @@ -0,0 +1 @@ +/datum/controller/subsystem/mobs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mobs

Vars

clients_by_zlevelonly contains living players for some reason

Var Details

clients_by_zlevel

only contains living players for some reason

\ No newline at end of file diff --git a/datum/controller/subsystem/modular_computers.html b/datum/controller/subsystem/modular_computers.html new file mode 100644 index 0000000000000..7b60ce735a670 --- /dev/null +++ b/datum/controller/subsystem/modular_computers.html @@ -0,0 +1,10 @@ +/datum/controller/subsystem/modular_computers - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

modular_computers

Vars

available_antag_softwareList of all programs that can be downloaded from an emagged NTNet store.
available_station_softwareList of all programs available to download from the NTNet store.
chat_channelsList of all chat channels created by Chat Client.
discount_couponsLazylist of coupons used by the Coupon Master PDA app. e.g. "COUPONCODE25" = coupon_code
intrusion_detection_alarmBoolean to show a message warning if there's an active intrusion for Wirecarp users.
intrusion_detection_enabledBoolean on whether the IDS warning system is enabled
modpc_logsList of all logs generated by ModPCs through the round. +Stops at MAX_LOG_COUNT and must be purged to keep logging.
next_discountWhen will the next coupon drop?

Procs

add_logRecords a message into the station logging system for the network +Arguments:
announce_couponGenerate new coupon codes that can be redeemed with the Coupon Master App
build_software_listsFinds all downloadable programs and adds them to their respective downloadable list.
find_ntnet_file_by_nameAttempts to find a new file through searching the available stores with its name.
get_chat_channel_by_idAttempts to find a chatorom using the ID of the channel.
get_next_picture_nameReturns a name which a /datum/picture can be assigned to. +Use this function to get asset names and to avoid cache duplicates/overwriting.
purge_logsRemoves all station logs and leaves it with an alert that it's been wiped.

Var Details

available_antag_software

List of all programs that can be downloaded from an emagged NTNet store.

available_station_software

List of all programs available to download from the NTNet store.

chat_channels

List of all chat channels created by Chat Client.

discount_coupons

Lazylist of coupons used by the Coupon Master PDA app. e.g. "COUPONCODE25" = coupon_code

intrusion_detection_alarm

Boolean to show a message warning if there's an active intrusion for Wirecarp users.

intrusion_detection_enabled

Boolean on whether the IDS warning system is enabled

modpc_logs

List of all logs generated by ModPCs through the round. +Stops at MAX_LOG_COUNT and must be purged to keep logging.

next_discount

When will the next coupon drop?

Proc Details

add_log

Records a message into the station logging system for the network +Arguments:

+

announce_coupon

Generate new coupon codes that can be redeemed with the Coupon Master App

build_software_lists

Finds all downloadable programs and adds them to their respective downloadable list.

find_ntnet_file_by_name

Attempts to find a new file through searching the available stores with its name.

get_chat_channel_by_id

Attempts to find a chatorom using the ID of the channel.

get_next_picture_name

Returns a name which a /datum/picture can be assigned to. +Use this function to get asset names and to avoid cache duplicates/overwriting.

purge_logs

Removes all station logs and leaves it with an alert that it's been wiped.

\ No newline at end of file diff --git a/datum/controller/subsystem/movement.html b/datum/controller/subsystem/movement.html new file mode 100644 index 0000000000000..07e0de2f67545 --- /dev/null +++ b/datum/controller/subsystem/movement.html @@ -0,0 +1 @@ +/datum/controller/subsystem/movement - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

movement

Vars

bucketsAssoc list of "target time" -> list(things to process). Used for quick lookup
canonical_timeThe time we started our last fire at
sorted_bucketsSorted list of list(target time, bucket to process)
visual_delayThe visual delay of the subsystem

Procs

pour_bucketProcesses a bucket of movement loops (This should only ever be called by fire(), it exists to prevent runtime fuckery)
smash_bucketRemoves a bucket from our system. You only need to pass in the time, but if you pass in the index of the list you save us some work

Var Details

buckets

Assoc list of "target time" -> list(things to process). Used for quick lookup

canonical_time

The time we started our last fire at

sorted_buckets

Sorted list of list(target time, bucket to process)

visual_delay

The visual delay of the subsystem

Proc Details

pour_bucket

Processes a bucket of movement loops (This should only ever be called by fire(), it exists to prevent runtime fuckery)

smash_bucket

Removes a bucket from our system. You only need to pass in the time, but if you pass in the index of the list you save us some work

\ No newline at end of file diff --git a/datum/controller/subsystem/movement/ai_movement.html b/datum/controller/subsystem/movement/ai_movement.html new file mode 100644 index 0000000000000..fb8c03562e676 --- /dev/null +++ b/datum/controller/subsystem/movement/ai_movement.html @@ -0,0 +1 @@ +/datum/controller/subsystem/movement/ai_movement - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ai_movement

Vars

movement_typesan assoc list of all ai_movement types. Assoc type to instance

Var Details

movement_types

an assoc list of all ai_movement types. Assoc type to instance

\ No newline at end of file diff --git a/datum/controller/subsystem/movement/cliff_falling.html b/datum/controller/subsystem/movement/cliff_falling.html new file mode 100644 index 0000000000000..26dbb94260bd4 --- /dev/null +++ b/datum/controller/subsystem/movement/cliff_falling.html @@ -0,0 +1 @@ +/datum/controller/subsystem/movement/cliff_falling - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cliff_falling

Vars

cliff_grindersWho are currently falling and with which movemanager?

Procs

check_moveCheck if we can move! We do this mostly to determine falling behaviour and make sure we're moving to valid tiles
on_movedWe just moved, so check if we're still moving right

Var Details

cliff_grinders

Who are currently falling and with which movemanager?

Proc Details

check_move

Check if we can move! We do this mostly to determine falling behaviour and make sure we're moving to valid tiles

on_moved

We just moved, so check if we're still moving right

\ No newline at end of file diff --git a/datum/controller/subsystem/opposing_force.html b/datum/controller/subsystem/opposing_force.html new file mode 100644 index 0000000000000..a8d99ec58f77f --- /dev/null +++ b/datum/controller/subsystem/opposing_force.html @@ -0,0 +1 @@ +/datum/controller/subsystem/opposing_force - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

opposing_force

Vars

accepting_objectivesAre we allowing players to make objectives?
approved_applicationsA list of all approved applications
equipment_listA precompiled list of all equipment datums, processed on init
max_objectivesThe max amount of objectives that can be tracked
statusThe status of the subsystem
submitted_applicationsA list of all currently submitted objectives
unsubmitted_applicationsA list of all currently active objectives

Var Details

accepting_objectives

Are we allowing players to make objectives?

approved_applications

A list of all approved applications

equipment_list

A precompiled list of all equipment datums, processed on init

max_objectives

The max amount of objectives that can be tracked

status

The status of the subsystem

submitted_applications

A list of all currently submitted objectives

unsubmitted_applications

A list of all currently active objectives

\ No newline at end of file diff --git a/datum/controller/subsystem/ore_generation.html b/datum/controller/subsystem/ore_generation.html new file mode 100644 index 0000000000000..713851518dcb3 --- /dev/null +++ b/datum/controller/subsystem/ore_generation.html @@ -0,0 +1,7 @@ +/datum/controller/subsystem/ore_generation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ore_generation

Vars

available_bouldersAll the boulders that have been produced by ore vents to be pulled by BRM machines.
ore_vent_mineralsA list of all the minerals that are being mined by ore vents. We reset this list every time cave generation is done. +Generally Should be empty by the time initialize ends on lavaland. +Each key value is the number of vents that will have this ore as a unique possible choice. +If we call cave_generation more than once, we copy a list from the lists in lists/ores_spawned.dm
possible_ventsAll the ore vents that are currently in the game, not just the ones that are producing boulders.
processed_ventsAll ore vents that are currently producing boulders.

Procs

InitializeA tracker of how many of each ore vent size we have in the game. Useful for tracking purposes.

Var Details

available_boulders

All the boulders that have been produced by ore vents to be pulled by BRM machines.

ore_vent_minerals

A list of all the minerals that are being mined by ore vents. We reset this list every time cave generation is done. +Generally Should be empty by the time initialize ends on lavaland. +Each key value is the number of vents that will have this ore as a unique possible choice. +If we call cave_generation more than once, we copy a list from the lists in lists/ores_spawned.dm

possible_vents

All the ore vents that are currently in the game, not just the ones that are producing boulders.

processed_vents

All ore vents that are currently producing boulders.

Proc Details

Initialize

A tracker of how many of each ore vent size we have in the game. Useful for tracking purposes.

\ No newline at end of file diff --git a/datum/controller/subsystem/pai.html b/datum/controller/subsystem/pai.html new file mode 100644 index 0000000000000..015fee42f2677 --- /dev/null +++ b/datum/controller/subsystem/pai.html @@ -0,0 +1,4 @@ +/datum/controller/subsystem/pai - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pai

Vars

candidatesList of pAI candidates, including those not submitted.
pai_card_listAll pAI cards on the map.
submit_spamPrevents a pAI from submitting itself repeatedly and sounding an alert.

Procs

recruit_windowThis is the primary window proc when the pAI candidate +hud menu is pressed by observers.
submit_alertPings all pAI cards on the station that new candidates are available.

Var Details

candidates

List of pAI candidates, including those not submitted.

pai_card_list

All pAI cards on the map.

submit_spam

Prevents a pAI from submitting itself repeatedly and sounding an alert.

Proc Details

recruit_window

This is the primary window proc when the pAI candidate +hud menu is pressed by observers.

+

@params {mob} user The ghost doing the pressing.

submit_alert

Pings all pAI cards on the station that new candidates are available.

\ No newline at end of file diff --git a/datum/controller/subsystem/parallax.html b/datum/controller/subsystem/parallax.html new file mode 100644 index 0000000000000..485489a656de4 --- /dev/null +++ b/datum/controller/subsystem/parallax.html @@ -0,0 +1 @@ +/datum/controller/subsystem/parallax - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

parallax

Vars

random_layerA random parallax layer that we sent to every player
random_parallax_weightsWeighted list with the parallax layers we could spawn

Procs

get_parallax_colorReturn the most dominant color, if we have a colored background (mostly nebula gas)
post_station_setupCalled at the end of SSstation setup, in-case we want to run some code that would otherwise be too early to run (like GLOB. stuff)
set_random_parallax_layerGenerate a random layer for parallax
swap_out_random_parallax_layerChange the random parallax layer after it's already been set. update_player_huds = TRUE will also replace them in the players client images, if it was set

Var Details

random_layer

A random parallax layer that we sent to every player

random_parallax_weights

Weighted list with the parallax layers we could spawn

Proc Details

get_parallax_color

Return the most dominant color, if we have a colored background (mostly nebula gas)

post_station_setup

Called at the end of SSstation setup, in-case we want to run some code that would otherwise be too early to run (like GLOB. stuff)

set_random_parallax_layer

Generate a random layer for parallax

swap_out_random_parallax_layer

Change the random parallax layer after it's already been set. update_player_huds = TRUE will also replace them in the players client images, if it was set

\ No newline at end of file diff --git a/datum/controller/subsystem/pathfinder.html b/datum/controller/subsystem/pathfinder.html new file mode 100644 index 0000000000000..685e119c1d616 --- /dev/null +++ b/datum/controller/subsystem/pathfinder.html @@ -0,0 +1,11 @@ +/datum/controller/subsystem/pathfinder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pathfinder

Vars

active_pathingList of pathfind datums we are currently trying to process
currentmapsList of uncheccked source_to_map entries
currentrunList of pathfind datums being ACTIVELY processed. exists to make subsystem stats readable
source_to_mapsAssoc list of target turf -> list(/datum/path_map) centered on the turf

Procs

build_mapInitiates a SSSP run. Returns true if we're good, FALSE if something's failed
can_pass_build_mapInitiates a SSSP run from a pass_info datum. Returns true if we're good, FALSE if something's failed
get_valid_mapTakes a set of pathfind info, returns the first valid pathmap that would work if one exists +Optionally takes a max age to accept (defaults to 0 seconds) and a minimum acceptable range +If include_building is true and we can only find a building path, we'll use that instead. tho we will wait for it to finish first
get_valid_mapsTakes a set of pathfind info, returns all valid pathmaps that would work +Takes an optional minimum range arg
path_map_cacheCaches the passed in path_map, allowing for reuse in future
pathfindInitiates a pathfind. Returns true if we're good, FALSE if something's failed
run_pathfindBegins to handle a pathfinding run based off the input /datum/pathfind datum +You should not use this, it exists to allow for shenanigans. You do not know how to do shenanigans
swarmed_pathfindInitiates a swarmed pathfind. Returns TRUE if we're good, FALSE if something's failed +If a valid pathmap exists for the TARGET turf we'll use that, otherwise we have to build a new one

Var Details

active_pathing

List of pathfind datums we are currently trying to process

currentmaps

List of uncheccked source_to_map entries

currentrun

List of pathfind datums being ACTIVELY processed. exists to make subsystem stats readable

source_to_maps

Assoc list of target turf -> list(/datum/path_map) centered on the turf

Proc Details

build_map

Initiates a SSSP run. Returns true if we're good, FALSE if something's failed

can_pass_build_map

Initiates a SSSP run from a pass_info datum. Returns true if we're good, FALSE if something's failed

get_valid_map

Takes a set of pathfind info, returns the first valid pathmap that would work if one exists +Optionally takes a max age to accept (defaults to 0 seconds) and a minimum acceptable range +If include_building is true and we can only find a building path, we'll use that instead. tho we will wait for it to finish first

get_valid_maps

Takes a set of pathfind info, returns all valid pathmaps that would work +Takes an optional minimum range arg

path_map_cache

Caches the passed in path_map, allowing for reuse in future

pathfind

Initiates a pathfind. Returns true if we're good, FALSE if something's failed

run_pathfind

Begins to handle a pathfinding run based off the input /datum/pathfind datum +You should not use this, it exists to allow for shenanigans. You do not know how to do shenanigans

swarmed_pathfind

Initiates a swarmed pathfind. Returns TRUE if we're good, FALSE if something's failed +If a valid pathmap exists for the TARGET turf we'll use that, otherwise we have to build a new one

\ No newline at end of file diff --git a/datum/controller/subsystem/persistence.html b/datum/controller/subsystem/persistence.html new file mode 100644 index 0000000000000..30ccea33b70a0 --- /dev/null +++ b/datum/controller/subsystem/persistence.html @@ -0,0 +1,15 @@ +/datum/controller/subsystem/persistence - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

persistence

Vars

message_bottles_databaseA json database to data/message_bottles.json
message_bottles_indexAn index used to create unique ids for the message bottles database
photo_albums_databaseA json_database linking to data/photo_albums.json. +Schema is persistence_id => array of photo names.
photo_frames_databaseA json_database linking to data/photo_frames.json. +Schema is persistence_id => array of photo names.
piggy_banks_databaseA json_database to data/piggy banks.json +Schema is persistence_id => array of coins, space cash and holochips.
prison_tattoos_to_savetattoo stories that we're saving.
prison_tattoos_to_usetattoo stories that have been selected for this round.
queued_broken_piggy_idsList of persistene ids which piggy banks.
queued_message_bottlesA list of non-maploaded photos or papers that met the 0.2% chance to be saved in the message bottles database +because I don't want the database to feel empty unless there's someone constantly throwing bottles in the +sea or beach/ocean fishing portals.
queued_photo_albumsA lazy list of every photo album that is going to be loaded with persistent photos. +Will be null'd once the persistence system initializes, and never read from again.
queued_photo_framesA lazy list of every picture frame that is going to be loaded with persistent photos. +Will be null'd once the persistence system initializes, and never read from again.
saved_engravingsall saved persistent engravings loaded from JSON
wall_engravingsinstantiated wall engraving components

Procs

collect_dataExtends collect_data
collect_mapsUpdates the list of the most recent maps.
collect_storyteller_typeCollects current storyteller and stores it
collect_trophiesCollects trophies from all existing trophy cases.
load_custom_outfitsLoads the custom outfits of every admin.
load_modular_persistenceLoads the contents of the player's modular_persistence file to their character.
load_photo_persistenceLoads photo albums, and populates them; also loads and applies frames to picture frames.
load_piggy_bankThis proc is used to initialize holochips, cash and coins inside our persistent piggy bank.
load_polyLoads up Poly's speech buffer.
load_prisoner_tattoosLoads all tattoos, and select a few based on the amount of prisoner spawn positions.
load_randomized_recipesLoads all randomized recipes.
load_recent_mapsLoads up the amount of times maps appeared to alter their appearance in voting and rotation.
load_storyteller_typeLoads last storyteller into last_storyteller_type
load_trophiesLoads the trophies from the source file, and places a few in trophy display cases.
load_wall_engravingsLoads all engravings, and places a select amount in maintenance and the prison.
remove_duplicate_trophiesgets the list of json trophies, and deletes the ones with an identical path and message
remove_photo_framesRemoves the identifier of a persistent photo frame from the json.
reset_delam_counterResets the safety incident display internal counter back to -1 (delam event happened)
save_custom_outfitsSaves each admin's custom outfit list
save_message_bottleThis proc is used to save photos, papers and cash stored inside a bottle when tossed into the ocean.
save_modular_persistenceSaves the contents of the modular persistence datum for the player's client to their file.
save_piggy_bankThis proc is used to save money stored inside our persistent the piggy bank for the next time it's loaded.
save_prisoner_tattoosSaves all tattoos, so they can appear on prisoners in future rounds
save_randomized_recipesSaves all randomized recipes.
save_scarsSaves all scars for everyone's original characters
save_trophyIf there is a trophy in the trophy case, saved it, if the trophy was not a holo trophy and has a message attached.
save_wall_engravingsSaves all new engravings in the world.
set_up_trophiesPuts trophies into trophy cases.
trophy_ui_dataReturns a list for the admin trophy panel.
update_prisoner_tattoosThis proc can update entries if the format has changed at some point.
update_wall_engravingsThis proc can update entries if the format has changed at some point.

Var Details

message_bottles_database

A json database to data/message_bottles.json

message_bottles_index

An index used to create unique ids for the message bottles database

photo_albums_database

A json_database linking to data/photo_albums.json. +Schema is persistence_id => array of photo names.

photo_frames_database

A json_database linking to data/photo_frames.json. +Schema is persistence_id => array of photo names.

piggy_banks_database

A json_database to data/piggy banks.json +Schema is persistence_id => array of coins, space cash and holochips.

prison_tattoos_to_save

tattoo stories that we're saving.

prison_tattoos_to_use

tattoo stories that have been selected for this round.

queued_broken_piggy_ids

List of persistene ids which piggy banks.

queued_message_bottles

A list of non-maploaded photos or papers that met the 0.2% chance to be saved in the message bottles database +because I don't want the database to feel empty unless there's someone constantly throwing bottles in the +sea or beach/ocean fishing portals.

queued_photo_albums

A lazy list of every photo album that is going to be loaded with persistent photos. +Will be null'd once the persistence system initializes, and never read from again.

queued_photo_frames

A lazy list of every picture frame that is going to be loaded with persistent photos. +Will be null'd once the persistence system initializes, and never read from again.

saved_engravings

all saved persistent engravings loaded from JSON

wall_engravings

instantiated wall engraving components

Proc Details

collect_data

Extends collect_data

collect_maps

Updates the list of the most recent maps.

collect_storyteller_type

Collects current storyteller and stores it

collect_trophies

Collects trophies from all existing trophy cases.

load_custom_outfits

Loads the custom outfits of every admin.

load_modular_persistence

Loads the contents of the player's modular_persistence file to their character.

load_photo_persistence

Loads photo albums, and populates them; also loads and applies frames to picture frames.

load_piggy_bank

This proc is used to initialize holochips, cash and coins inside our persistent piggy bank.

load_poly

Loads up Poly's speech buffer.

load_prisoner_tattoos

Loads all tattoos, and select a few based on the amount of prisoner spawn positions.

load_randomized_recipes

Loads all randomized recipes.

load_recent_maps

Loads up the amount of times maps appeared to alter their appearance in voting and rotation.

load_storyteller_type

Loads last storyteller into last_storyteller_type

load_trophies

Loads the trophies from the source file, and places a few in trophy display cases.

load_wall_engravings

Loads all engravings, and places a select amount in maintenance and the prison.

remove_duplicate_trophies

gets the list of json trophies, and deletes the ones with an identical path and message

remove_photo_frames

Removes the identifier of a persistent photo frame from the json.

reset_delam_counter

Resets the safety incident display internal counter back to -1 (delam event happened)

save_custom_outfits

Saves each admin's custom outfit list

save_message_bottle

This proc is used to save photos, papers and cash stored inside a bottle when tossed into the ocean.

save_modular_persistence

Saves the contents of the modular persistence datum for the player's client to their file.

save_piggy_bank

This proc is used to save money stored inside our persistent the piggy bank for the next time it's loaded.

save_prisoner_tattoos

Saves all tattoos, so they can appear on prisoners in future rounds

save_randomized_recipes

Saves all randomized recipes.

save_scars

Saves all scars for everyone's original characters

save_trophy

If there is a trophy in the trophy case, saved it, if the trophy was not a holo trophy and has a message attached.

save_wall_engravings

Saves all new engravings in the world.

set_up_trophies

Puts trophies into trophy cases.

trophy_ui_data

Returns a list for the admin trophy panel.

update_prisoner_tattoos

This proc can update entries if the format has changed at some point.

update_wall_engravings

This proc can update entries if the format has changed at some point.

\ No newline at end of file diff --git a/datum/controller/subsystem/persistent_paintings.html b/datum/controller/subsystem/persistent_paintings.html new file mode 100644 index 0000000000000..caa834e91f445 --- /dev/null +++ b/datum/controller/subsystem/persistent_paintings.html @@ -0,0 +1,10 @@ +/datum/controller/subsystem/persistent_paintings - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

persistent_paintings

Vars

admin_painting_dataA list of paintings' data for paintings that are currently stored in the library, with admin metadata
cached_painting_dataA list of paintings' data for paintings that are currently stored in the library.
deleted_paintings_md5sHashes of paintings deleted this round
frame_types_by_patronage_tierThe list of available frame reskins (they are purely cosmetic) and the associated patronage amount required for them.
painting_framesA list of painting frames that this controls
paintingsA list of /datum/paintings saved or ready to be saved this round.

Procs

get_available_framesreturns a list of cosmetic frames which patronage tier values are are within credit_value. +If only_current_tier is TRUE, the list will be populated only by the ones from the highest tier.
get_paintings_with_tagReturns paintings with given tag.
painting_ui_dataGenerates painting data ready to be consumed by ui. +Args:
save_paintingsSaves all persistent paintings
save_to_fileSaves all currently tracked painting data to file
update_formatUpdates paintings data format to latest if necessary

Var Details

admin_painting_data

A list of paintings' data for paintings that are currently stored in the library, with admin metadata

cached_painting_data

A list of paintings' data for paintings that are currently stored in the library.

deleted_paintings_md5s

Hashes of paintings deleted this round

frame_types_by_patronage_tier

The list of available frame reskins (they are purely cosmetic) and the associated patronage amount required for them.

painting_frames

A list of painting frames that this controls

paintings

A list of /datum/paintings saved or ready to be saved this round.

Proc Details

get_available_frames

returns a list of cosmetic frames which patronage tier values are are within credit_value. +If only_current_tier is TRUE, the list will be populated only by the ones from the highest tier.

get_paintings_with_tag

Returns paintings with given tag.

painting_ui_data

Generates painting data ready to be consumed by ui. +Args:

+

save_paintings

Saves all persistent paintings

save_to_file

Saves all currently tracked painting data to file

update_format

Updates paintings data format to latest if necessary

\ No newline at end of file diff --git a/datum/controller/subsystem/player_ranks.html b/datum/controller/subsystem/player_ranks.html new file mode 100644 index 0000000000000..159b13abf854d --- /dev/null +++ b/datum/controller/subsystem/player_ranks.html @@ -0,0 +1,88 @@ +/datum/controller/subsystem/player_ranks - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

player_ranks

Vars

donator_controllerThe donator player rank controller.
mentor_controllerThe mentor player rank controller.
veteran_controllerThe veteran player rank controller.

Procs

add_player_rank_sqlHandles adding the ckey to the appropriate player rank table on the database, +as well as in-game.
add_player_to_groupHandles adding the ckey to the proper player rank group, either on the database +or in the legacy system.
get_controller_for_groupAllows fetching the appropriate player_rank_controller based on its +rank_title, for convenience.
is_donatorReturns whether or not the user is qualified as a donator.
is_mentorReturns whether or not the user is qualified as a mentor. +Wrapper for the is_mentor() proc on the client, with a null check.
is_veteranReturns whether or not the user is qualified as a veteran.
load_donatorsHandles loading donators either via SQL or using the legacy system, +based on configs.
load_mentorsHandles loading mentors either via SQL or using the legacy system, +based on configs.
load_player_rank_sqlHandles populating the player rank from the database.
load_veteransHandles loading veteran players either via SQL or using the legacy system, +based on configs.
migrate_player_rank_to_sqlHandles migrating a player rank system from the legacy system to the +SQL-based version, from its rank_title
migrate_player_rank_to_sql_from_controllerHandles migrating the ckeys of the players that were stored in a legacy +player rank system into the SQL-based one instead. It will ensure to only +add ckeys that were not already present in the database.
remove_player_from_groupHandles removing the ckey from the proper player rank group, either on the database +or in the legacy system.
remove_player_rank_sqlHandles removing the ckey from the appropriate player rank table on the database, +as well as in-game.
update_all_prefs_donator_statusHandles updating all of the preferences datums to have the appropriate +donator_status and max_save_slots once donators are loaded.
update_prefs_donator_statusUpdates the donator_status and the max_save_slots

Var Details

donator_controller

The donator player rank controller.

mentor_controller

The mentor player rank controller.

veteran_controller

The veteran player rank controller.

Proc Details

add_player_rank_sql

Handles adding the ckey to the appropriate player rank table on the database, +as well as in-game.

+

Arguments:

+

add_player_to_group

Handles adding the ckey to the proper player rank group, either on the database +or in the legacy system.

+

Arguments:

+

get_controller_for_group

Allows fetching the appropriate player_rank_controller based on its +rank_title, for convenience.

is_donator

Returns whether or not the user is qualified as a donator.

+

Arguments:

+

is_mentor

Returns whether or not the user is qualified as a mentor. +Wrapper for the is_mentor() proc on the client, with a null check.

+

Arguments:

+

is_veteran

Returns whether or not the user is qualified as a veteran.

+

Arguments:

+

load_donators

Handles loading donators either via SQL or using the legacy system, +based on configs.

load_mentors

Handles loading mentors either via SQL or using the legacy system, +based on configs.

load_player_rank_sql

Handles populating the player rank from the database.

+

Arguments:

+

load_veterans

Handles loading veteran players either via SQL or using the legacy system, +based on configs.

migrate_player_rank_to_sql

Handles migrating a player rank system from the legacy system to the +SQL-based version, from its rank_title

+

Arguments:

+

migrate_player_rank_to_sql_from_controller

Handles migrating the ckeys of the players that were stored in a legacy +player rank system into the SQL-based one instead. It will ensure to only +add ckeys that were not already present in the database.

+

Arguments:

+

remove_player_from_group

Handles removing the ckey from the proper player rank group, either on the database +or in the legacy system.

+

Arguments:

+

remove_player_rank_sql

Handles removing the ckey from the appropriate player rank table on the database, +as well as in-game.

+

Arguments:

+

update_all_prefs_donator_status

Handles updating all of the preferences datums to have the appropriate +donator_status and max_save_slots once donators are loaded.

update_prefs_donator_status

Updates the donator_status and the max_save_slots

+

Arguments:

+
\ No newline at end of file diff --git a/datum/controller/subsystem/points_of_interest.html b/datum/controller/subsystem/points_of_interest.html new file mode 100644 index 0000000000000..d089aa8f07f7b --- /dev/null +++ b/datum/controller/subsystem/points_of_interest.html @@ -0,0 +1,14 @@ +/datum/controller/subsystem/points_of_interest - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

points_of_interest

Vars

mob_points_of_interestList of mob POIs. This list is automatically sorted.
narsiesSpecial helper list to track any Nar'sies.
other_points_of_interestList of non-mob POIs. This list is automatically sorted.
points_of_interest_by_target_refList of all value:POI datums by their key:target refs.
real_nuclear_disksSpecial helper list of all real nuke disks.

Procs

get_mob_poisReturns a list of mob POIs with names as keys and mobs as values.
get_other_poisReturns a list of non-mob POIs with names as keys and atoms as values.
get_poi_atom_by_refIf there is a valid POI for a given reference, it returns that POI's associated atom. Otherwise, it returns null.
is_valid_poiReturns TRUE if potential_poi has an associated poi_datum that validates.
make_point_of_interestTurns new_poi into a new point of interest by adding the /datum/element/point_of_interest element to it.
on_poi_element_addedCalled by /datum/element/point_of_interest when it gets removed from old_poi.
on_poi_element_removedCalled by /datum/element/point_of_interest when it gets removed from old_poi.
remove_point_of_interestStops old_poi from being a point of interest by removing the /datum/element/point_of_interest element from it.

Var Details

mob_points_of_interest

List of mob POIs. This list is automatically sorted.

narsies

Special helper list to track any Nar'sies.

other_points_of_interest

List of non-mob POIs. This list is automatically sorted.

points_of_interest_by_target_ref

List of all value:POI datums by their key:target refs.

real_nuclear_disks

Special helper list of all real nuke disks.

Proc Details

get_mob_pois

Returns a list of mob POIs with names as keys and mobs as values.

+

If multiple POIs have the same name, then avoid_assoc_duplicate_keys is used alongside used_name_list to +tag them as Mob Name (1), Mob Name (2), Mob Name (3) etc.

+

Arguments:

+

get_other_pois

Returns a list of non-mob POIs with names as keys and atoms as values.

+

If multiple POIs have the same name, then avoid_assoc_duplicate_keys is used alongside used_name_list to +tag them as Object Name (1), Object Name (2), Object Name (3) etc.

+

Arguments:

+

get_poi_atom_by_ref

If there is a valid POI for a given reference, it returns that POI's associated atom. Otherwise, it returns null.

is_valid_poi

Returns TRUE if potential_poi has an associated poi_datum that validates.

make_point_of_interest

Turns new_poi into a new point of interest by adding the /datum/element/point_of_interest element to it.

on_poi_element_added

Called by /datum/element/point_of_interest when it gets removed from old_poi.

on_poi_element_removed

Called by /datum/element/point_of_interest when it gets removed from old_poi.

remove_point_of_interest

Stops old_poi from being a point of interest by removing the /datum/element/point_of_interest element from it.

\ No newline at end of file diff --git a/datum/controller/subsystem/polling.html b/datum/controller/subsystem/polling.html new file mode 100644 index 0000000000000..bbaca60246e22 --- /dev/null +++ b/datum/controller/subsystem/polling.html @@ -0,0 +1,20 @@ +/datum/controller/subsystem/polling - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

polling

Vars

currently_pollingList of polls currently ongoing, to be checked on next fire()
total_pollsNumber of polls performed since the start

Procs

duplicate_message_checkIs there a multiple of the given event type running right now?
poll_candidatesStarts a poll.

Var Details

currently_polling

List of polls currently ongoing, to be checked on next fire()

total_polls

Number of polls performed since the start

Proc Details

duplicate_message_check

Is there a multiple of the given event type running right now?

poll_candidates

Starts a poll.

+

Arguments

+ +

Returns a list of all mobs who signed up for the poll, OR, in the case that amount_to_pick is equal to 1 the singular mob/null if no available candidates.

\ No newline at end of file diff --git a/datum/controller/subsystem/pollution.html b/datum/controller/subsystem/pollution.html new file mode 100644 index 0000000000000..c7f1eb9ed6778 --- /dev/null +++ b/datum/controller/subsystem/pollution.html @@ -0,0 +1 @@ +/datum/controller/subsystem/pollution - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pollution

Vars

active_pollutionCurrently active pollution
all_polutionAll pollution in the world
current_runCurrently processed batch of pollutants
dissapation_tickerTicker for dissipation task
pollution_taskWhat's the current task we're doing
processed_this_runAlready processed pollutants in cell process
singletonsAssociative list of types of pollutants to their instanced singletons

Var Details

active_pollution

Currently active pollution

all_polution

All pollution in the world

current_run

Currently processed batch of pollutants

dissapation_ticker

Ticker for dissipation task

pollution_task

What's the current task we're doing

processed_this_run

Already processed pollutants in cell process

singletons

Associative list of types of pollutants to their instanced singletons

\ No newline at end of file diff --git a/datum/controller/subsystem/powerator_penality.html b/datum/controller/subsystem/powerator_penality.html new file mode 100644 index 0000000000000..51fccf2dc178f --- /dev/null +++ b/datum/controller/subsystem/powerator_penality.html @@ -0,0 +1 @@ +/datum/controller/subsystem/powerator_penality - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

powerator_penality

Vars

diminishing_gains_multiplierCurrent penality for powerator cash gain
powerator_listHow many powerators we have build on server

Var Details

diminishing_gains_multiplier

Current penality for powerator cash gain

powerator_list

How many powerators we have build on server

\ No newline at end of file diff --git a/datum/controller/subsystem/processing/ai_behaviors.html b/datum/controller/subsystem/processing/ai_behaviors.html new file mode 100644 index 0000000000000..afa590ed3abd5 --- /dev/null +++ b/datum/controller/subsystem/processing/ai_behaviors.html @@ -0,0 +1 @@ +/datum/controller/subsystem/processing/ai_behaviors - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ai_behaviors

Vars

ai_behaviorsList of all ai_behavior singletons, key is the typepath while assigned value is a newly created instance of the typepath. See SetupAIBehaviors()
targeting_strategiesList of all targeting_strategy singletons, key is the typepath while assigned value is a newly created instance of the typepath. See SetupAIBehaviors()

Var Details

ai_behaviors

List of all ai_behavior singletons, key is the typepath while assigned value is a newly created instance of the typepath. See SetupAIBehaviors()

targeting_strategies

List of all targeting_strategy singletons, key is the typepath while assigned value is a newly created instance of the typepath. See SetupAIBehaviors()

\ No newline at end of file diff --git a/datum/controller/subsystem/processing/dcs.html b/datum/controller/subsystem/processing/dcs.html new file mode 100644 index 0000000000000..e122f815960c2 --- /dev/null +++ b/datum/controller/subsystem/processing/dcs.html @@ -0,0 +1,21 @@ +/datum/controller/subsystem/processing/dcs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dcs

Vars

arguments_that_are_lists_by_elementA nested assoc list of bespoke element types (keys) and superlists containing all lists used as arguments (values). +Inside the superlists, lists that've been sorted alphabetically are keys, while the original unsorted lists are values.
sorted_arguments_that_are_listsAn assoc list of list instances and their sorted counterparts.

Procs

GetIdFromArgumentsGenerates an id for bespoke elements when given the argument list +Generating the id here is a bit complex because we need to support named arguments +Named arguments can appear in any order and we need them to appear after ordered arguments +We assume that no one will pass in a named argument with a value of null
add_to_arguments_that_are_listsOffloading the first half of the dcs_check_list_arguments here, which is populating the superlist +with sublists that will be later compared with each other by the dcs_check_list_arguments unit test.
rotate_decalsRemove old decals and apply new decals after rotation as necessary

Var Details

arguments_that_are_lists_by_element

A nested assoc list of bespoke element types (keys) and superlists containing all lists used as arguments (values). +Inside the superlists, lists that've been sorted alphabetically are keys, while the original unsorted lists are values.

+

e.g. list( +/datum/element/first = list(list(A, B, C) = list(B, A, C), list(A, B) = list(A, B)), +/datum/element/second = list(list(B, C) = list(C, B), list(D) = list(D)), +)

+

Used by the dcs_check_list_arguments unit test.

sorted_arguments_that_are_lists

An assoc list of list instances and their sorted counterparts.

+

e.g. list( +list(B, A, C) = list(A, B, C), +list(C, B) = list(B, C), +)

+

Used to make sure each list instance is sorted no more than once, or the unit test won't work.

Proc Details

GetIdFromArguments

Generates an id for bespoke elements when given the argument list +Generating the id here is a bit complex because we need to support named arguments +Named arguments can appear in any order and we need them to appear after ordered arguments +We assume that no one will pass in a named argument with a value of null

add_to_arguments_that_are_lists

Offloading the first half of the dcs_check_list_arguments here, which is populating the superlist +with sublists that will be later compared with each other by the dcs_check_list_arguments unit test.

rotate_decals

Remove old decals and apply new decals after rotation as necessary

\ No newline at end of file diff --git a/datum/controller/subsystem/processing/fishing.html b/datum/controller/subsystem/processing/fishing.html new file mode 100644 index 0000000000000..83f2f865380cb --- /dev/null +++ b/datum/controller/subsystem/processing/fishing.html @@ -0,0 +1 @@ +/datum/controller/subsystem/processing/fishing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fishing

Vars

fish_propertiesCached fish properties so we don't have to initalize fish every time
lure_catchablesA cache of fish that can be caught by each type of fishing lure

Var Details

fish_properties

Cached fish properties so we don't have to initalize fish every time

lure_catchables

A cache of fish that can be caught by each type of fishing lure

\ No newline at end of file diff --git a/datum/controller/subsystem/processing/idle_ai_behaviors.html b/datum/controller/subsystem/processing/idle_ai_behaviors.html new file mode 100644 index 0000000000000..83913894007c6 --- /dev/null +++ b/datum/controller/subsystem/processing/idle_ai_behaviors.html @@ -0,0 +1 @@ +/datum/controller/subsystem/processing/idle_ai_behaviors - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

idle_ai_behaviors

Vars

idle_behaviorsList of all the idle ai behaviors

Var Details

idle_behaviors

List of all the idle ai behaviors

\ No newline at end of file diff --git a/datum/controller/subsystem/processing/instruments.html b/datum/controller/subsystem/processing/instruments.html new file mode 100644 index 0000000000000..e36d5d1215df0 --- /dev/null +++ b/datum/controller/subsystem/processing/instruments.html @@ -0,0 +1 @@ +/datum/controller/subsystem/processing/instruments - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

instruments

Vars

current_instrument_channelsCurrent number of channels allocated for instruments
instrument_dataList of all instrument data, associative id = datum
max_instrument_channelsMaximum instrument channels total instruments are allowed to use. This is so you don't have instruments deadlocking all sound channels.
musician_hearcheck_mindelayDeciseconds between hearchecks. Too high and instruments seem to lag when people are moving around in terms of who can hear it. Too low and the server lags from this.
musician_maxlinecharsMax characters per line in songs
musician_maxlinesMax lines in songs
songsList of all song datums.
synthesizer_instrument_idsSingle cached list for synthesizer instrument ids, so you don't have to have a new list with every synthesizer.

Var Details

current_instrument_channels

Current number of channels allocated for instruments

instrument_data

List of all instrument data, associative id = datum

max_instrument_channels

Maximum instrument channels total instruments are allowed to use. This is so you don't have instruments deadlocking all sound channels.

musician_hearcheck_mindelay

Deciseconds between hearchecks. Too high and instruments seem to lag when people are moving around in terms of who can hear it. Too low and the server lags from this.

musician_maxlinechars

Max characters per line in songs

musician_maxlines

Max lines in songs

songs

List of all song datums.

synthesizer_instrument_ids

Single cached list for synthesizer instrument ids, so you don't have to have a new list with every synthesizer.

\ No newline at end of file diff --git a/datum/controller/subsystem/processing/quirks.html b/datum/controller/subsystem/processing/quirks.html new file mode 100644 index 0000000000000..97828c3239fc9 --- /dev/null +++ b/datum/controller/subsystem/processing/quirks.html @@ -0,0 +1,7 @@ +/datum/controller/subsystem/processing/quirks - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

quirks

Vars

hardcore_quirksAn assoc list of quirks that can be obtained as a hardcore character, and their hardcore value.

Procs

filter_invalid_quirksTakes a list of quirk names and returns a new list of quirks that would +be valid. +If no changes need to be made, will return the same list. +Expects all quirk names to be unique, but makes no other expectations.
get_quirksReturns the list of possible quirks

Var Details

hardcore_quirks

An assoc list of quirks that can be obtained as a hardcore character, and their hardcore value.

Proc Details

filter_invalid_quirks

Takes a list of quirk names and returns a new list of quirks that would +be valid. +If no changes need to be made, will return the same list. +Expects all quirk names to be unique, but makes no other expectations.

get_quirks

Returns the list of possible quirks

\ No newline at end of file diff --git a/datum/controller/subsystem/processing/reagents.html b/datum/controller/subsystem/processing/reagents.html new file mode 100644 index 0000000000000..51c558b972674 --- /dev/null +++ b/datum/controller/subsystem/processing/reagents.html @@ -0,0 +1 @@ +/datum/controller/subsystem/processing/reagents - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

reagents

Vars

previous_world_timeWhat time was it when we last ticked

Var Details

previous_world_time

What time was it when we last ticked

\ No newline at end of file diff --git a/datum/controller/subsystem/processing/station.html b/datum/controller/subsystem/processing/station.html new file mode 100644 index 0000000000000..1bf595c4bcb57 --- /dev/null +++ b/datum/controller/subsystem/processing/station.html @@ -0,0 +1,7 @@ +/datum/controller/subsystem/processing/station - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

station

Vars

announcerCurrently active announcer. Starts as a type but gets initialized after traits are selected
antag_protected_rolesA list of trait roles that should be protected from antag
antag_restricted_rolesA list of trait roles that should never be able to roll antag
goals_by_typeAssosciative list of station goal type -> goal instance
selectable_traits_by_typesAssoc list of trait type || assoc list of traits with weighted value. Used for picking traits from a specific category.
station_traitsA list of currently active station traits

Procs

SetupTraitsRolls for the amount of traits and adds them to the traits list
generate_station_goalsThis gets called by SSdynamic during initial gamemode setup. +This is done because for a greenshift we want all goals to be generated
get_station_goalReturns a specific station goal by type
get_station_goalsReturns all station goals that are currently active
pick_traitsPicks traits of a specific category (e.g. bad or good), initializes them, adds them to the list of traits, +then removes them from possible traits as to not roll twice and subtracts their cost from the budget. +All until the whole budget is spent or no more traits can be picked with it.
setup_traitCreates a given trait of a specific type, while also removing any blacklisted ones from the future pool.

Var Details

announcer

Currently active announcer. Starts as a type but gets initialized after traits are selected

antag_protected_roles

A list of trait roles that should be protected from antag

antag_restricted_roles

A list of trait roles that should never be able to roll antag

goals_by_type

Assosciative list of station goal type -> goal instance

selectable_traits_by_types

Assoc list of trait type || assoc list of traits with weighted value. Used for picking traits from a specific category.

station_traits

A list of currently active station traits

Proc Details

SetupTraits

Rolls for the amount of traits and adds them to the traits list

generate_station_goals

This gets called by SSdynamic during initial gamemode setup. +This is done because for a greenshift we want all goals to be generated

get_station_goal

Returns a specific station goal by type

get_station_goals

Returns all station goals that are currently active

pick_traits

Picks traits of a specific category (e.g. bad or good), initializes them, adds them to the list of traits, +then removes them from possible traits as to not roll twice and subtracts their cost from the budget. +All until the whole budget is spent or no more traits can be picked with it.

setup_trait

Creates a given trait of a specific type, while also removing any blacklisted ones from the future pool.

\ No newline at end of file diff --git a/datum/controller/subsystem/processing/sunlight.html b/datum/controller/subsystem/processing/sunlight.html new file mode 100644 index 0000000000000..2d66ec6d70c58 --- /dev/null +++ b/datum/controller/subsystem/processing/sunlight.html @@ -0,0 +1 @@ +/datum/controller/subsystem/processing/sunlight - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sunlight

Vars

issued_XPIf Bloodsucker levels for the night has been given out yet.
sun_sufferersMobs that make use of the sunlight system, doesn't use weakrefs as that makes removing them a pain, and we already cleanup on qdel.
sunlight_activeIf the Sun is currently out our not.
time_til_cycleThe time between the next cycle, randomized every night.

Var Details

issued_XP

If Bloodsucker levels for the night has been given out yet.

sun_sufferers

Mobs that make use of the sunlight system, doesn't use weakrefs as that makes removing them a pain, and we already cleanup on qdel.

sunlight_active

If the Sun is currently out our not.

time_til_cycle

The time between the next cycle, randomized every night.

\ No newline at end of file diff --git a/datum/controller/subsystem/processing/supermatter_cascade.html b/datum/controller/subsystem/processing/supermatter_cascade.html new file mode 100644 index 0000000000000..45a6dbe2d6f53 --- /dev/null +++ b/datum/controller/subsystem/processing/supermatter_cascade.html @@ -0,0 +1 @@ +/datum/controller/subsystem/processing/supermatter_cascade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

supermatter_cascade

Vars

cascade_initiatedIs a cascade happening right now?

Var Details

cascade_initiated

Is a cascade happening right now?

\ No newline at end of file diff --git a/datum/controller/subsystem/processing/transport.html b/datum/controller/subsystem/processing/transport.html new file mode 100644 index 0000000000000..928c7c2e09c98 --- /dev/null +++ b/datum/controller/subsystem/processing/transport.html @@ -0,0 +1,34 @@ +/datum/controller/subsystem/processing/transport - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

transport

Vars

can_fireonly used on maps with trams, so only enabled by such.
max_cheap_moveshow many times the tram can move costing less than half max_time milliseconds before we speed it back up again. +is only used if the tram has been slowed down for exceeding max_time
max_exceeding_moveshow many times the tram can move costing over max_time milliseconds before it gets slowed down
max_timehow much time a tram can take per movement before we notify admins and slow down the tram. in milliseconds
transports_by_typeassociative list of the form: list(lift_id = list(all transport_controller datums attached to lifts of that type))

Procs

detailed_destination_listGive a list of destinations to the tram controls
dispatch_transportDispatches the transport on a validated trip
helloRegisters the subsystem to listen for incoming requests from paired devices
incoming_requestPerforms the request received from a registered transport device
pre_departurePre-departure checks for the tram
validate_and_dispatchOperational checks, then start moving

Var Details

can_fire

only used on maps with trams, so only enabled by such.

max_cheap_moves

how many times the tram can move costing less than half max_time milliseconds before we speed it back up again. +is only used if the tram has been slowed down for exceeding max_time

max_exceeding_moves

how many times the tram can move costing over max_time milliseconds before it gets slowed down

max_time

how much time a tram can take per movement before we notify admins and slow down the tram. in milliseconds

transports_by_type

associative list of the form: list(lift_id = list(all transport_controller datums attached to lifts of that type))

Proc Details

detailed_destination_list

Give a list of destinations to the tram controls

dispatch_transport

Dispatches the transport on a validated trip

+

The subsystem at this point has confirmed a valid trip +Start the transport, wake up machinery running on +the subsystem (signals, etc.)

+

Make tram go, basically.

+

Arguments: transport_controller: the transport controller datum we're giving orders to +destination: destination we're sending it to +request_flags: additional flags for the request (ie: bypass doors, emagged request)

hello

Registers the subsystem to listen for incoming requests from paired devices

+

When a new device (such as a button, tram, signal etc) comes online +it calls this proc with the subsystem enabling two-way communication using +signals.

+

Arguments: new_unit: the starting point to find a beacon +unit_name: the friendly name of this device +id_tag: a unique identifier for this device, set on init

incoming_request

Performs the request received from a registered transport device

+

Currently the only supported request type is tram dispatch +so there's no var for what type of request it is

+

The subsystem will validate and process, then send a success +or fail response to the device that made the request, +with info relevant to the request such as destination +or error details (if the request is rejected/fails)

+

Arguments: source: the device sending the request +transport_id: the transport this request is for, such as tram line 1 or 2 +platform: the requested destination to dispatch the tram +options: additional flags for the request (ie: bypass doors, emagged request)

pre_departure

Pre-departure checks for the tram

+

We do things slighly different based on the request_flags such as +door crushing, emag related things

+

Arguments: transport_controller: the transport controller datum we're giving orders to +request_flags: additional flags for the request (ie: bypass doors, emagged request)

validate_and_dispatch

Operational checks, then start moving

+

Some check failures aren't worth halting the tram for, like no blocking the doors forever +Crush them instead!

+

Arguments: transport_controller: the transport controller datum we're giving orders to +attempt: how many attempts to start moving we've made

\ No newline at end of file diff --git a/datum/controller/subsystem/queuelinks.html b/datum/controller/subsystem/queuelinks.html new file mode 100644 index 0000000000000..93db4a37e6c25 --- /dev/null +++ b/datum/controller/subsystem/queuelinks.html @@ -0,0 +1,5 @@ +/datum/controller/subsystem/queuelinks - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

queuelinks

Vars

queuesassoc list of pending queues, id = /datum/queue_link

Procs

add_to_queueCreates or adds to a queue with the id supplied, if the queue is now or above the size of the queue, calls MatchedLinks and clears queue. +queues with a size of 0 wait never pop until something is added with an actual queue_max
pop_linkPop a queue link without waiting for it to reach its max size. +This is useful for those links that do not have a fixed size and thus may not pop.

Var Details

queues

assoc list of pending queues, id = /datum/queue_link

Proc Details

add_to_queue

Creates or adds to a queue with the id supplied, if the queue is now or above the size of the queue, calls MatchedLinks and clears queue. +queues with a size of 0 wait never pop until something is added with an actual queue_max

Pop a queue link without waiting for it to reach its max size. +This is useful for those links that do not have a fixed size and thus may not pop.

\ No newline at end of file diff --git a/datum/controller/subsystem/radiation.html b/datum/controller/subsystem/radiation.html new file mode 100644 index 0000000000000..c33a5d07f11f6 --- /dev/null +++ b/datum/controller/subsystem/radiation.html @@ -0,0 +1,5 @@ +/datum/controller/subsystem/radiation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

radiation

Vars

processingA list of radiation sources (/datum/radiation_pulse_information) that have yet to process. +Do not interact with this directly, use radiation_pulse instead.

Procs

can_irradiate_basicReturns whether or not the target can be irradiated by any means. +Does not check for clothing.
irradiateWill attempt to irradiate the given target, limited through IC means, such as radiation protected clothing.
wearing_rad_protected_clothingReturns whether or not the human is covered head to toe in rad-protected clothing.

Var Details

processing

A list of radiation sources (/datum/radiation_pulse_information) that have yet to process. +Do not interact with this directly, use radiation_pulse instead.

Proc Details

can_irradiate_basic

Returns whether or not the target can be irradiated by any means. +Does not check for clothing.

irradiate

Will attempt to irradiate the given target, limited through IC means, such as radiation protected clothing.

wearing_rad_protected_clothing

Returns whether or not the human is covered head to toe in rad-protected clothing.

\ No newline at end of file diff --git a/datum/controller/subsystem/radioactive_nebula.html b/datum/controller/subsystem/radioactive_nebula.html new file mode 100644 index 0000000000000..f5826abbeb707 --- /dev/null +++ b/datum/controller/subsystem/radioactive_nebula.html @@ -0,0 +1 @@ +/datum/controller/subsystem/radioactive_nebula - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

radioactive_nebula

Procs

fake_irradiateMakes something appear irradiated for the purposes of the Radioactive Nebula
fake_unirradiateRemove the fake radiation. The compontent we add to mobs handles its own removal
irradiate_everythingLoop through radioactive space (with lag checks) and make it all radioactive!

Proc Details

fake_irradiate

Makes something appear irradiated for the purposes of the Radioactive Nebula

fake_unirradiate

Remove the fake radiation. The compontent we add to mobs handles its own removal

irradiate_everything

Loop through radioactive space (with lag checks) and make it all radioactive!

\ No newline at end of file diff --git a/datum/controller/subsystem/research.html b/datum/controller/subsystem/research.html new file mode 100644 index 0000000000000..4dd05e4283fa2 --- /dev/null +++ b/datum/controller/subsystem/research.html @@ -0,0 +1,7 @@ +/datum/controller/subsystem/research - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

research

Vars

anomaly_hard_limit_by_typeThe hard limits of cores created for each anomaly type. For faster code lookup without switch statements.
created_anomaly_typesThe global list of raw anomaly types that have been refined, for hard limits.
invalid_design_idsassociative id = number of times
invalid_node_boostassociative id = error message
invalid_node_idsassociative id = number of times
ordnance_experimentsLookup list for ordnance briefers.
point_typesAssociated list of all point types that techwebs will have and their respective 'abbreviated' name.
scientific_partnersLookup list for scipaper partners.
techweb_categoriescategory name = list(node.id = TRUE)
techweb_nodes_experimentalNode ids that are exclusive to the BEPIS.
techweb_nodes_hiddenNode ids that should be hidden by default.
techweb_nodes_startingassociative id = TRUE
techweb_point_itemspath = list(point type = value)
techweb_unlock_itemsList of all items that can unlock a node. (node.id = list(items))
techwebsList of all techwebs, generating points or not. +Autolathes, Mechfabs, and others all have shared techwebs, for example.

Procs

find_valid_serversOnly expose Syndicate R&D servers to machines placed inside of Syndicate areas (fixes oversight of NT station machines linking to Syndie R&D servers for moon based stations) +Returns filtered servers as a list
get_available_serversSorts the get_available_servers() returned list by closest server source location +Returns the closest server found as a single entity list.
increment_existing_anomaly_coresIncrease our tracked number of cores of this type
is_core_availableReturns true if you can make an anomaly core of the provided type

Var Details

anomaly_hard_limit_by_type

The hard limits of cores created for each anomaly type. For faster code lookup without switch statements.

created_anomaly_types

The global list of raw anomaly types that have been refined, for hard limits.

invalid_design_ids

associative id = number of times

invalid_node_boost

associative id = error message

invalid_node_ids

associative id = number of times

ordnance_experiments

Lookup list for ordnance briefers.

point_types

Associated list of all point types that techwebs will have and their respective 'abbreviated' name.

scientific_partners

Lookup list for scipaper partners.

techweb_categories

category name = list(node.id = TRUE)

techweb_nodes_experimental

Node ids that are exclusive to the BEPIS.

techweb_nodes_hidden

Node ids that should be hidden by default.

techweb_nodes_starting

associative id = TRUE

techweb_point_items

path = list(point type = value)

techweb_unlock_items

List of all items that can unlock a node. (node.id = list(items))

techwebs

List of all techwebs, generating points or not. +Autolathes, Mechfabs, and others all have shared techwebs, for example.

Proc Details

find_valid_servers

Only expose Syndicate R&D servers to machines placed inside of Syndicate areas (fixes oversight of NT station machines linking to Syndie R&D servers for moon based stations) +Returns filtered servers as a list

get_available_servers

Sorts the get_available_servers() returned list by closest server source location +Returns the closest server found as a single entity list.

increment_existing_anomaly_cores

Increase our tracked number of cores of this type

is_core_available

Returns true if you can make an anomaly core of the provided type

\ No newline at end of file diff --git a/datum/controller/subsystem/restaurant.html b/datum/controller/subsystem/restaurant.html new file mode 100644 index 0000000000000..8db40115d26d7 --- /dev/null +++ b/datum/controller/subsystem/restaurant.html @@ -0,0 +1 @@ +/datum/controller/subsystem/restaurant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

restaurant

Vars

all_customersAll customer data datums that exist, assoc list of type - reference
all_venuesAll venues that exist, assoc list of type - reference
food_appearance_cacheCaches appearances of food, assoc list where key is the type of food, and value is the appearance. Used so we don't have to keep creating new food. Gets filled whenever a new food that hasn't been ordered gets ordered for the first time.

Var Details

all_customers

All customer data datums that exist, assoc list of type - reference

all_venues

All venues that exist, assoc list of type - reference

food_appearance_cache

Caches appearances of food, assoc list where key is the type of food, and value is the appearance. Used so we don't have to keep creating new food. Gets filled whenever a new food that hasn't been ordered gets ordered for the first time.

\ No newline at end of file diff --git a/datum/controller/subsystem/security_level.html b/datum/controller/subsystem/security_level.html new file mode 100644 index 0000000000000..75a116db90b56 --- /dev/null +++ b/datum/controller/subsystem/security_level.html @@ -0,0 +1,21 @@ +/datum/controller/subsystem/security_level - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

security_level

Vars

available_levelsA list of initialised security level datums.
current_security_levelCurrently set security level

Procs

get_current_level_as_numberReturns the current security level as a number
get_current_level_as_textReturns the current security level as text
minimum_security_levelCalled to check/change security level. +Checks if the station security level is at least minimum_level, and if not, sets it to that level. +Arguments determine if engineering override or maint access is granted. +Arguments: min_level: number, eng_access: boolean, maint_access: boolean
number_level_to_textConverts a number security level to a text
set_levelSets a new security level as our current level
text_level_to_numberConverts a text security level to a number

Var Details

available_levels

A list of initialised security level datums.

current_security_level

Currently set security level

Proc Details

get_current_level_as_number

Returns the current security level as a number

get_current_level_as_text

Returns the current security level as text

minimum_security_level

Called to check/change security level. +Checks if the station security level is at least minimum_level, and if not, sets it to that level. +Arguments determine if engineering override or maint access is granted. +Arguments: min_level: number, eng_access: boolean, maint_access: boolean

number_level_to_text

Converts a number security level to a text

+

Arguments:

+

set_level

Sets a new security level as our current level

+

This is how everything should change the security level.

+

Arguments:

+

text_level_to_number

Converts a text security level to a number

+

Arguments:

+
\ No newline at end of file diff --git a/datum/controller/subsystem/server_maint.html b/datum/controller/subsystem/server_maint.html new file mode 100644 index 0000000000000..3366410f04ab1 --- /dev/null +++ b/datum/controller/subsystem/server_maint.html @@ -0,0 +1 @@ +/datum/controller/subsystem/server_maint - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

server_maint

Vars

delayDelay between list clearings in ticks
lists_to_clearAssociated list of list names to lists to clear of nulls

Var Details

delay

Delay between list clearings in ticks

lists_to_clear

Associated list of list names to lists to clear of nulls

\ No newline at end of file diff --git a/datum/controller/subsystem/shuttle.html b/datum/controller/subsystem/shuttle.html new file mode 100644 index 0000000000000..def125ccbb28e --- /dev/null +++ b/datum/controller/subsystem/shuttle.html @@ -0,0 +1,29 @@ +/datum/controller/subsystem/shuttle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shuttle

Vars

admin_emergency_no_recallDid admins force-prevent the recall of the shuttle?
arrivalsThe mobile docking port of the arrivals shuttle.
assoc_mobileNow it's only for ID generation in /obj/docking_port/mobile/register()
assoc_stationaryNow it's only for ID generation in /obj/docking_port/stationary/register()
backup_shuttleThe mobile docking port of the backup emergency shuttle.
beacon_listA list of all the beacons that can be docked to.
centcom_messageRemarks from CentCom on how well you checked the last order.
chef_groceriesQueued supplies to be purchased for the chef.
discovered_plantsTypepaths for unusual plants we've already sent CentCom, associated with their potencies.
emergencyEmergency shuttle stuff +The mobile docking port of the emergency shuttle.
emergencyCallAmountHow many times was the escape shuttle called?
emergency_call_timeTime taken for emergency shuttle to reach the station when called (in deciseconds).
emergency_dock_timeTime taken for emergency shuttle to leave again once it has docked (in deciseconds).
emergency_escape_timeTime taken for emergency shuttle to reach a safe distance after leaving station (in deciseconds).
emergency_last_call_locWhere was the emergency shuttle last called from?
emergency_no_escapeIs the departure of the shuttle currently prevented? FALSE for no, any other number for yes (thanks shuttle code).
emergency_no_recallDo we prevent the recall of the shuttle?
existing_shuttleThe existing shuttle associated with the selected shuttle map_template.
express_consolesList of express consoles that are waiting for pack initialization
has_purchase_shuttle_accessA list of job accesses that are able to purchase any shuttles.
hidden_shuttle_turf_imagesOnly the images from the /datum/controller/subsystem/shuttle/hidden_shuttle_turfs list.
hidden_shuttle_turfsAll turfs hidden from navigation computers associated with a list containing the image hiding them and the type of the turf they are pretending to be
hostile_environmentsThings blocking escape shuttle from leaving.
last_call_timePrevious time left to the call, only useful for disabling and re-enabling the shuttle for admins so it doesn't have to start the whole timer again.
last_modePrevious mode of the shuttle before it was forcefully disabled by admins.
lockdownDisallow transit after nuke goes off
mobile_docking_portsA list of all the mobile docking ports.
order_numberOrder number given to next order.
pointsNumber of trade-points we have (basically money).
preview_reservationThe turf reservation for the current previewed shuttle.
preview_shuttleThe docking port associated to the preview_template that's currently being previewed.
preview_templateThe shuttle map_template of the shuttle we want to preview.
request_listWishlist items made by crew for cargo to purchase at their leisure.
selectedThe currently selected shuttle map_template in the shuttle manipulator's template viewer.
shopping_listQueued supply packs to be purchased.
shuttle_insuranceIf the event happens where the crew can purchase shuttle insurance, catastrophe can't run.
shuttle_loadingAre we currently in the process of loading a shuttle? Useful to ensure we don't load more than one at once, to avoid weird inconsistencies and possible runtimes.
shuttle_loanThe current shuttle loan event, if any.
shuttle_purchase_requirements_metFor keeping track of ingame events that would unlock new shuttles, such as defeating a boss or discovering a secret item.
stationary_docking_portsA list of all the stationary docking ports.
supermatter_cascadeDid the supermatter start a cascade event?
supplySupply shuttle stuff +The current cargo shuttle's mobile docking port.
supply_blockedIs the cargo shuttle currently blocked from leaving?
supply_packsAll of the possible supply packs that can be purchased by cargo.
trade_blockadeThings blocking the cargo shuttle from leaving.
transit_docking_portsA list of all the transit docking ports.
transit_request_failuresAn associative list of the mobile docking ports that have failed a transit request, with the amount of times they've actually failed that transit request, up to MAX_TRANSIT_REQUEST_RETRIES
transit_requestersA list of all the mobile docking ports currently requesting a spot in hyperspace.
transit_utilizedHow many turfs our shuttles are currently utilizing in reservation space

Procs

action_loadLoads a shuttle template and sends it to a given destination port, optionally replacing the existing shuttle
call_evac_shuttleCall the emergency shuttle. +If you are doing this on behalf of a player, use requestEvac instead. +signal_origin is fluff occasionally provided to players.
canEvacCheck if we can call the evac shuttle. +Returns TRUE if we can. Otherwise, returns a string detailing the problem.
load_templateLoads a shuttle template into the transit Z level, usually referred to elsewhere in the code as a shuttle preview. +Does not register the shuttle so it can't be used yet, that's handled in action_load()
moveShuttleMoves a shuttle to a new location
transit_space_clearingGotta manage our space brother
unload_previewRemoves the preview_shuttle from the transit Z-level

Var Details

admin_emergency_no_recall

Did admins force-prevent the recall of the shuttle?

arrivals

The mobile docking port of the arrivals shuttle.

assoc_mobile

Now it's only for ID generation in /obj/docking_port/mobile/register()

assoc_stationary

Now it's only for ID generation in /obj/docking_port/stationary/register()

backup_shuttle

The mobile docking port of the backup emergency shuttle.

beacon_list

A list of all the beacons that can be docked to.

centcom_message

Remarks from CentCom on how well you checked the last order.

chef_groceries

Queued supplies to be purchased for the chef.

discovered_plants

Typepaths for unusual plants we've already sent CentCom, associated with their potencies.

emergency

Emergency shuttle stuff +The mobile docking port of the emergency shuttle.

emergencyCallAmount

How many times was the escape shuttle called?

emergency_call_time

Time taken for emergency shuttle to reach the station when called (in deciseconds).

emergency_dock_time

Time taken for emergency shuttle to leave again once it has docked (in deciseconds).

emergency_escape_time

Time taken for emergency shuttle to reach a safe distance after leaving station (in deciseconds).

emergency_last_call_loc

Where was the emergency shuttle last called from?

emergency_no_escape

Is the departure of the shuttle currently prevented? FALSE for no, any other number for yes (thanks shuttle code).

emergency_no_recall

Do we prevent the recall of the shuttle?

existing_shuttle

The existing shuttle associated with the selected shuttle map_template.

express_consoles

List of express consoles that are waiting for pack initialization

has_purchase_shuttle_access

A list of job accesses that are able to purchase any shuttles.

hidden_shuttle_turf_images

Only the images from the /datum/controller/subsystem/shuttle/hidden_shuttle_turfs list.

hidden_shuttle_turfs

All turfs hidden from navigation computers associated with a list containing the image hiding them and the type of the turf they are pretending to be

hostile_environments

Things blocking escape shuttle from leaving.

last_call_time

Previous time left to the call, only useful for disabling and re-enabling the shuttle for admins so it doesn't have to start the whole timer again.

last_mode

Previous mode of the shuttle before it was forcefully disabled by admins.

lockdown

Disallow transit after nuke goes off

mobile_docking_ports

A list of all the mobile docking ports.

order_number

Order number given to next order.

points

Number of trade-points we have (basically money).

preview_reservation

The turf reservation for the current previewed shuttle.

preview_shuttle

The docking port associated to the preview_template that's currently being previewed.

preview_template

The shuttle map_template of the shuttle we want to preview.

request_list

Wishlist items made by crew for cargo to purchase at their leisure.

selected

The currently selected shuttle map_template in the shuttle manipulator's template viewer.

shopping_list

Queued supply packs to be purchased.

shuttle_insurance

If the event happens where the crew can purchase shuttle insurance, catastrophe can't run.

shuttle_loading

Are we currently in the process of loading a shuttle? Useful to ensure we don't load more than one at once, to avoid weird inconsistencies and possible runtimes.

shuttle_loan

The current shuttle loan event, if any.

shuttle_purchase_requirements_met

For keeping track of ingame events that would unlock new shuttles, such as defeating a boss or discovering a secret item.

stationary_docking_ports

A list of all the stationary docking ports.

supermatter_cascade

Did the supermatter start a cascade event?

supply

Supply shuttle stuff +The current cargo shuttle's mobile docking port.

supply_blocked

Is the cargo shuttle currently blocked from leaving?

supply_packs

All of the possible supply packs that can be purchased by cargo.

trade_blockade

Things blocking the cargo shuttle from leaving.

transit_docking_ports

A list of all the transit docking ports.

transit_request_failures

An associative list of the mobile docking ports that have failed a transit request, with the amount of times they've actually failed that transit request, up to MAX_TRANSIT_REQUEST_RETRIES

transit_requesters

A list of all the mobile docking ports currently requesting a spot in hyperspace.

transit_utilized

How many turfs our shuttles are currently utilizing in reservation space

Proc Details

action_load

Loads a shuttle template and sends it to a given destination port, optionally replacing the existing shuttle

+

Arguments:

+

call_evac_shuttle

Call the emergency shuttle. +If you are doing this on behalf of a player, use requestEvac instead. +signal_origin is fluff occasionally provided to players.

canEvac

Check if we can call the evac shuttle. +Returns TRUE if we can. Otherwise, returns a string detailing the problem.

load_template

Loads a shuttle template into the transit Z level, usually referred to elsewhere in the code as a shuttle preview. +Does not register the shuttle so it can't be used yet, that's handled in action_load()

+

Arguments:

+

moveShuttle

Moves a shuttle to a new location

+

Arguments:

+

transit_space_clearing

Gotta manage our space brother

unload_preview

Removes the preview_shuttle from the transit Z-level

\ No newline at end of file diff --git a/datum/controller/subsystem/skills.html b/datum/controller/subsystem/skills.html new file mode 100644 index 0000000000000..6d1bb49808fd6 --- /dev/null +++ b/datum/controller/subsystem/skills.html @@ -0,0 +1 @@ +/datum/controller/subsystem/skills - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

skills

Vars

all_skillsDictionary of skill.type || skill ref
level_namesList of level names with index corresponding to skill level

Procs

InitializeSkillsRan on initialize, populates the skills dictionary

Var Details

all_skills

Dictionary of skill.type || skill ref

level_names

List of level names with index corresponding to skill level

Proc Details

InitializeSkills

Ran on initialize, populates the skills dictionary

\ No newline at end of file diff --git a/datum/controller/subsystem/sounds.html b/datum/controller/subsystem/sounds.html new file mode 100644 index 0000000000000..4d1e1b5b2799e --- /dev/null +++ b/datum/controller/subsystem/sounds.html @@ -0,0 +1 @@ +/datum/controller/subsystem/sounds - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sounds

Vars

all_soundsAll valid sound files in the sound directory
channel_listList of all channels as numbers
channel_random_lowlower iteration position - Incremented and looped to get "random" sound channels for normal sounds. The channel at this index is returned when asking for a random channel.
channel_reserve_highhigher reserve position - decremented and incremented to reserve sound channels, anything above this is reserved. The channel at this index is the highest unreserved channel.
random_channels_minAmount of channels to reserve for random usage rather than reservations being allowed to reserve all channels. Also a nice safeguard for when someone screws up.
reserved_channelsAssociative list of all reserved channels associated to their position. "[channel_number]" = index as number
using_channelsAssoc list, "[channel]" = either the datum using it or TRUE for an unsafe-reserved (datumless reservation) channel
using_channels_by_datumAssoc list datum = list(channel1, channel2, ...) for what channels something reserved.

Procs

available_channels_leftHow many channels we have left.
free_channelFrees a channel and updates the datastructure. Private proc.
free_datum_channelsFrees all the channels a datum is using.
free_datumless_channelsFrees all datumless channels
free_sound_channelRemoves a channel from using list.
random_available_channelRandom available channel, returns number
random_available_channel_textRandom available channel, returns text.
reserve_channelReserves a channel and updates the datastructure. Private proc.
reserve_sound_channelReserves a channel for a datum. Automatic cleanup only when the datum is deleted. Returns an integer for channel.
reserve_sound_channel_datumlessNO AUTOMATIC CLEANUP - If you use this, you better manually free it later! Returns an integer for channel.

Var Details

all_sounds

All valid sound files in the sound directory

channel_list

List of all channels as numbers

channel_random_low

lower iteration position - Incremented and looped to get "random" sound channels for normal sounds. The channel at this index is returned when asking for a random channel.

channel_reserve_high

higher reserve position - decremented and incremented to reserve sound channels, anything above this is reserved. The channel at this index is the highest unreserved channel.

random_channels_min

Amount of channels to reserve for random usage rather than reservations being allowed to reserve all channels. Also a nice safeguard for when someone screws up.

reserved_channels

Associative list of all reserved channels associated to their position. "[channel_number]" = index as number

using_channels

Assoc list, "[channel]" = either the datum using it or TRUE for an unsafe-reserved (datumless reservation) channel

using_channels_by_datum

Assoc list datum = list(channel1, channel2, ...) for what channels something reserved.

Proc Details

available_channels_left

How many channels we have left.

free_channel

Frees a channel and updates the datastructure. Private proc.

free_datum_channels

Frees all the channels a datum is using.

free_datumless_channels

Frees all datumless channels

free_sound_channel

Removes a channel from using list.

random_available_channel

Random available channel, returns number

random_available_channel_text

Random available channel, returns text.

reserve_channel

Reserves a channel and updates the datastructure. Private proc.

reserve_sound_channel

Reserves a channel for a datum. Automatic cleanup only when the datum is deleted. Returns an integer for channel.

reserve_sound_channel_datumless

NO AUTOMATIC CLEANUP - If you use this, you better manually free it later! Returns an integer for channel.

\ No newline at end of file diff --git a/datum/controller/subsystem/spatial_grid.html b/datum/controller/subsystem/spatial_grid.html new file mode 100644 index 0000000000000..6796c91b05f10 --- /dev/null +++ b/datum/controller/subsystem/spatial_grid.html @@ -0,0 +1,41 @@ +/datum/controller/subsystem/spatial_grid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spatial_grid

Vars

dummy_listempty spatial grid cell content lists are just a reference to this instead of a standalone list to save memory without needed to check if its null when iterating
grids_by_z_levellist of the spatial_grid_cell datums per z level, arranged in the order of y index then x index
number_of_oranges_earshow many pregenerated /mob/oranges_ear instances currently exist. this should hopefully never exceed its starting value
pregenerated_oranges_earslist of all of /mob/oranges_ear instances we have pregenerated for view() iteration speedup
spatial_grid_categoriesassociative list of the form: movable.spatial_grid_key (string) -> inner list of spatial grid types for that key. +inner lists contain contents channel types such as SPATIAL_GRID_CONTENTS_TYPE_HEARING etc. +we use this to make adding to a cell static cost, and to save on memory
waiting_to_add_by_typeeverything that spawns before us is added to this list until we initialize

Procs

add_grid_awarenessAdds grid awareness to the passed in atom, of the passed in type +Basically, when this atom moves between grids, it wants to have enter/exit cell called on it
add_grid_membershipAlerts the atom's current cell that it wishes to be treated as a member +This functionally amounts to "hey, I was recently made aware by [add_grid_awareness], please insert me into my current cell"
add_single_typeacts like enter_cell() but only adds the target to a specified type of grid cell contents list
after_world_bounds_expandedadds cells to the grid for every z level when world.maxx or world.maxy is expanded after this subsystem is initialized. hopefully this is never needed. +because i never tested this.
assign_oranges_earsallocate one /mob/oranges_ear mob per turf containing atoms_that_need_ears and give them a reference to every listed atom in their turf. +if an oranges_ear is allocated to a turf that already has an oranges_ear then the second one fails to allocate (and gives the existing one the atom it was assigned to)
enter_cellfind the spatial map cell that target belongs to, then add the target to it, as its type prefers. +make sure to provide the turf new_target is "in"
enter_pre_init_queueadd a movable to the pre init queue for whichever type is specified so that when the subsystem initializes they get added to the grid
exit_cellfind the spatial map cell that target used to belong to, then remove the target (and sometimes its important_recusive_contents) from it. +make sure to provide the turf old_target used to be "in"
find_hanging_cell_refs_for_movableif shit goes south, this will find hanging references for qdeleting movables inside the spatial grid
force_remove_from_cellremove this movable from the given spatial_grid_cell
force_remove_from_gridremove this movable from the grid by finding the grid cell its in and removing it from that. +if it cant infer a grid cell its located in (e.g. if its in nullspace but it can happen if the grid isnt expanded to a z level), search every grid cell.
get_cell_ofget the grid cell encomapassing targets coordinates
get_cells_in_boundsget all grid cells intersecting the bounding box around center with sides of length (2 * range_x, 2 * range_y)
get_cells_in_rangeget all grid cells intersecting the bounding box around center with sides of length 2 * range
orthogonal_range_searchhttps://en.wikipedia.org/wiki/Range_searching#Orthogonal_range_searching
pregenerate_more_oranges_earscreates number_to_generate new oranges_ear's and adds them to the subsystems list of ears. +i really fucking hope this never gets called after init :clueless:
propogate_spatial_grid_to_new_zcreates the spatial grid for a new z level
queued_item_deletedif a movable is inside our pre init queue before we're initialized and it gets deleted we need to remove that reference with this proc
remove_from_pre_init_queueremoves an initialized and probably deleted movable from our pre init queue before we're initialized
remove_grid_awarenessRemoves grid awareness from the passed in atom, of the passed in type
remove_grid_membershipRemoves grid membership from the passed in atom, of the passed in type
remove_single_typeacts like exit_cell() but only removes the target from the specified type of grid cell contents list
untracked_movable_errorif for whatever reason this movable is "untracked" e.g. it breaks the assumption that a movable is only inside the contents of any grid cell associated with its loc, +this will error. this checks every grid cell in the world so dont call this on live unless you have to. +returns TRUE if this movable is untracked, FALSE otherwise
update_grid_awarenessUpdates the string that atoms hold that stores their grid awareness +We will use it to key into their spatial grid categories later

Var Details

dummy_list

empty spatial grid cell content lists are just a reference to this instead of a standalone list to save memory without needed to check if its null when iterating

grids_by_z_level

list of the spatial_grid_cell datums per z level, arranged in the order of y index then x index

number_of_oranges_ears

how many pregenerated /mob/oranges_ear instances currently exist. this should hopefully never exceed its starting value

pregenerated_oranges_ears

list of all of /mob/oranges_ear instances we have pregenerated for view() iteration speedup

spatial_grid_categories

associative list of the form: movable.spatial_grid_key (string) -> inner list of spatial grid types for that key. +inner lists contain contents channel types such as SPATIAL_GRID_CONTENTS_TYPE_HEARING etc. +we use this to make adding to a cell static cost, and to save on memory

waiting_to_add_by_type

everything that spawns before us is added to this list until we initialize

Proc Details

add_grid_awareness

Adds grid awareness to the passed in atom, of the passed in type +Basically, when this atom moves between grids, it wants to have enter/exit cell called on it

add_grid_membership

Alerts the atom's current cell that it wishes to be treated as a member +This functionally amounts to "hey, I was recently made aware by [add_grid_awareness], please insert me into my current cell"

add_single_type

acts like enter_cell() but only adds the target to a specified type of grid cell contents list

after_world_bounds_expanded

adds cells to the grid for every z level when world.maxx or world.maxy is expanded after this subsystem is initialized. hopefully this is never needed. +because i never tested this.

assign_oranges_ears

allocate one /mob/oranges_ear mob per turf containing atoms_that_need_ears and give them a reference to every listed atom in their turf. +if an oranges_ear is allocated to a turf that already has an oranges_ear then the second one fails to allocate (and gives the existing one the atom it was assigned to)

enter_cell

find the spatial map cell that target belongs to, then add the target to it, as its type prefers. +make sure to provide the turf new_target is "in"

enter_pre_init_queue

add a movable to the pre init queue for whichever type is specified so that when the subsystem initializes they get added to the grid

exit_cell

find the spatial map cell that target used to belong to, then remove the target (and sometimes its important_recusive_contents) from it. +make sure to provide the turf old_target used to be "in"

+

find_hanging_cell_refs_for_movable

if shit goes south, this will find hanging references for qdeleting movables inside the spatial grid

force_remove_from_cell

remove this movable from the given spatial_grid_cell

force_remove_from_grid

remove this movable from the grid by finding the grid cell its in and removing it from that. +if it cant infer a grid cell its located in (e.g. if its in nullspace but it can happen if the grid isnt expanded to a z level), search every grid cell.

get_cell_of

get the grid cell encomapassing targets coordinates

get_cells_in_bounds

get all grid cells intersecting the bounding box around center with sides of length (2 * range_x, 2 * range_y)

get_cells_in_range

get all grid cells intersecting the bounding box around center with sides of length 2 * range

https://en.wikipedia.org/wiki/Range_searching#Orthogonal_range_searching

+

searches through the grid cells intersecting a rectangular search space (with sides of length 2 * range) then returns all contents of type inside them. +much faster than iterating through view() to find all of what you want.

+

this does NOT return things only in range distance from center! the search space is a square not a circle, if you want only things in a certain distance +then you need to filter that yourself

+

pregenerate_more_oranges_ears

creates number_to_generate new oranges_ear's and adds them to the subsystems list of ears. +i really fucking hope this never gets called after init :clueless:

propogate_spatial_grid_to_new_z

creates the spatial grid for a new z level

queued_item_deleted

if a movable is inside our pre init queue before we're initialized and it gets deleted we need to remove that reference with this proc

remove_from_pre_init_queue

removes an initialized and probably deleted movable from our pre init queue before we're initialized

remove_grid_awareness

Removes grid awareness from the passed in atom, of the passed in type

remove_grid_membership

Removes grid membership from the passed in atom, of the passed in type

remove_single_type

acts like exit_cell() but only removes the target from the specified type of grid cell contents list

untracked_movable_error

if for whatever reason this movable is "untracked" e.g. it breaks the assumption that a movable is only inside the contents of any grid cell associated with its loc, +this will error. this checks every grid cell in the world so dont call this on live unless you have to. +returns TRUE if this movable is untracked, FALSE otherwise

update_grid_awareness

Updates the string that atoms hold that stores their grid awareness +We will use it to key into their spatial grid categories later

\ No newline at end of file diff --git a/datum/controller/subsystem/statpanels.html b/datum/controller/subsystem/statpanels.html new file mode 100644 index 0000000000000..d05ad83046d2f --- /dev/null +++ b/datum/controller/subsystem/statpanels.html @@ -0,0 +1 @@ +/datum/controller/subsystem/statpanels - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

statpanels

Vars

default_waithow many subsystem fires between most tab updates
mc_waithow many subsystem fires between updates of the MC tab
num_fireshow many full runs this subsystem has completed. used for variable rate refreshes.
status_waithow many subsystem fires between updates of the status tab

Procs

immediate_send_stat_dataimmediately update the active statpanel tab of the target client
set_action_tabsSet up the various action tabs.

Var Details

default_wait

how many subsystem fires between most tab updates

mc_wait

how many subsystem fires between updates of the MC tab

num_fires

how many full runs this subsystem has completed. used for variable rate refreshes.

status_wait

how many subsystem fires between updates of the status tab

Proc Details

immediate_send_stat_data

immediately update the active statpanel tab of the target client

set_action_tabs

Set up the various action tabs.

\ No newline at end of file diff --git a/datum/controller/subsystem/stock_market.html b/datum/controller/subsystem/stock_market.html new file mode 100644 index 0000000000000..63a5853cd9721 --- /dev/null +++ b/datum/controller/subsystem/stock_market.html @@ -0,0 +1,5 @@ +/datum/controller/subsystem/stock_market - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

stock_market

Vars

active_eventsA list of all currently active stock market events.
materials_pricesAssociated list of materials and their prices at the given time.
materials_quantityAssociated list of materials alongside their available quantity. This is used to determine how much of a material is available to buy, and how much buying and selling affects the price.
materials_trend_lifeAssociated list of materials alongside the life of its current trend. After its life is up, it will change to a new trend.
materials_trendsAssociated list of materials alongside their market trends. 1 is up, 0 is stable, -1 is down.
news_stringHTML string that is used to display the market events to the player.

Procs

adjust_material_priceAdjust the price of a material(either through buying or selling) ensuring it stays within limits
adjust_material_quantityAdjust the amount of material(either through buying or selling) ensuring it stays within limits
handle_market_eventMarket events are a way to spice up the market and make it more interesting. +Randomly one will occur to a random material, and it will change the price of that material more drastically, or reset it to a stable price. +Events are also broadcast to the newscaster as a fun little fluff piece. Good way to tell some lore as well, or just make a joke.
handle_trends_and_priceHandles shifts in the cost of materials, and in what direction the material is most likely to move.

Var Details

active_events

A list of all currently active stock market events.

materials_prices

Associated list of materials and their prices at the given time.

materials_quantity

Associated list of materials alongside their available quantity. This is used to determine how much of a material is available to buy, and how much buying and selling affects the price.

materials_trend_life

Associated list of materials alongside the life of its current trend. After its life is up, it will change to a new trend.

Associated list of materials alongside their market trends. 1 is up, 0 is stable, -1 is down.

news_string

HTML string that is used to display the market events to the player.

Proc Details

adjust_material_price

Adjust the price of a material(either through buying or selling) ensuring it stays within limits

adjust_material_quantity

Adjust the amount of material(either through buying or selling) ensuring it stays within limits

handle_market_event

Market events are a way to spice up the market and make it more interesting. +Randomly one will occur to a random material, and it will change the price of that material more drastically, or reset it to a stable price. +Events are also broadcast to the newscaster as a fun little fluff piece. Good way to tell some lore as well, or just make a joke.

Handles shifts in the cost of materials, and in what direction the material is most likely to move.

\ No newline at end of file diff --git a/datum/controller/subsystem/sun.html b/datum/controller/subsystem/sun.html new file mode 100644 index 0000000000000..81ce150c96ac5 --- /dev/null +++ b/datum/controller/subsystem/sun.html @@ -0,0 +1 @@ +/datum/controller/subsystem/sun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sun

Vars

azimuth_modclockwise, top-down rotation from 0 (north) to 359
base_rotationmultiplier against base_rotation

Procs

Initializebase rotation in degrees per fire

Var Details

azimuth_mod

clockwise, top-down rotation from 0 (north) to 359

base_rotation

multiplier against base_rotation

Proc Details

Initialize

base rotation in degrees per fire

\ No newline at end of file diff --git a/datum/controller/subsystem/tgui.html b/datum/controller/subsystem/tgui.html new file mode 100644 index 0000000000000..127c4229e00a5 --- /dev/null +++ b/datum/controller/subsystem/tgui.html @@ -0,0 +1,48 @@ +/datum/controller/subsystem/tgui - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tgui

Vars

all_uisA list of all open UIs
basehtmlThe HTML base used for all UIs.
current_runA list of UIs scheduled to process

Procs

close_all_uispublic
close_uispublic
close_user_uispublic
force_close_all_windowspublic
force_close_windowpublic
get_open_uipublic
on_closeprivate
on_logoutprivate
on_openprivate
on_transferprivate
request_pooled_windowpublic
try_update_uipublic
update_uispublic
update_user_uispublic

Var Details

all_uis

A list of all open UIs

basehtml

The HTML base used for all UIs.

current_run

A list of UIs scheduled to process

Proc Details

close_all_uis

public

+

Close all UIs regardless of their attachment to src_object.

+

return int The number of UIs closed.

close_uis

public

+

Close all UIs attached to src_object.

+

required src_object datum The object/datum which owns the UIs.

+

return int The number of UIs closed.

close_user_uis

public

+

Close all UIs belonging to a user.

+

required user mob The mob who opened/is using the UI. +optional src_object datum If provided, only close UIs belonging this src_object.

+

return int The number of UIs closed.

force_close_all_windows

public

+

Force closes all tgui windows.

+

required user mob

force_close_window

public

+

Force closes the tgui window by window_id.

+

required user mob +required window_id string

get_open_ui

public

+

Get a open UI given a user and src_object.

+

required user mob The mob who opened/is using the UI. +required src_object datum The object/datum which owns the UI.

+

return datum/tgui The found UI.

on_close

private

+

Remove a UI from the list of open UIs.

+

required ui datum/tgui The UI to be removed.

+

return bool If the UI was removed or not.

on_logout

private

+

Handle client logout, by closing all their UIs.

+

required user mob The mob which logged out.

+

return int The number of UIs closed.

on_open

private

+

Add a UI to the list of open UIs.

+

required ui datum/tgui The UI to be added.

on_transfer

private

+

Handle clients switching mobs, by transferring their UIs.

+

required user source The client's original mob. +required user target The client's new mob.

+

return bool If the UIs were transferred.

request_pooled_window

public

+

Requests a usable tgui window from the pool. +Returns null if pool was exhausted.

+

required user mob +return datum/tgui

try_update_ui

public

+

Try to find an instance of a UI, and push an update to it.

+

required user mob The mob who opened/is using the UI. +required src_object datum The object/datum which owns the UI. +optional ui datum/tgui The UI to be updated, if it exists. +optional force_open bool If the UI should be re-opened instead of updated.

+

return datum/tgui The found UI.

update_uis

public

+

Update all UIs attached to src_object.

+

required src_object datum The object/datum which owns the UIs.

+

return int The number of UIs updated.

update_user_uis

public

+

Update all UIs belonging to a user.

+

required user mob The mob who opened/is using the UI. +optional src_object datum If provided, only update UIs belonging this src_object.

+

return int The number of UIs updated.

\ No newline at end of file diff --git a/datum/controller/subsystem/ticker.html b/datum/controller/subsystem/ticker.html new file mode 100644 index 0000000000000..16b624ba2e770 --- /dev/null +++ b/datum/controller/subsystem/ticker.html @@ -0,0 +1,14 @@ +/datum/controller/subsystem/ticker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ticker

Vars

current_statestate of current round (used by process()) Use the defines GAME_STATE_* !
emergency_reasonWhy an emergency shuttle was called
force_endingBoolean to track if round should be forcibly ended next ticker tick. +Set by admin intervention (ADMIN_FORCE_END_ROUND) +or a "round-ending" event, like summoning Nar'Sie, a blob victory, the nuke going off, etc. (FORCE_END_ROUND)
heartsPeople who have been commended and will receive a heart
news_reportWhat is going to be reported to other stations at end of round?
setup_doneBoolean to track and check if our subsystem setup is done.
start_immediatelyIf TRUE, there is no lobby phase, the game starts immediately.
totalPlayersNum of players, used for pregame stats on statpanel
totalPlayersReadyNum of ready players, used for pregame stats on statpanel (only viewable by admins)
total_admins_readyNum of ready admins, used for pregame stats on statpanel (only viewable by admins)

Procs

HandleRandomHardcoreScoreHandles random hardcore point rewarding if it applies.
award_serviceAwards the service department an achievement and updates the chef and bartender's highscore for tourists served.
check_finishedChecks if the round should be ending, called every ticker tick
handle_heartsOnce the round is actually over, cycle through the ckeys in the hearts list and give them the hearted status
hardcore_random_reportGenerate a report for all players who made it out alive with a hardcore random character and prints their final score
log_roundend_reportLog the round-end report as an HTML file
market_reportGenerate a report for how much money is on station, as well as the richest crewmember on the station.
poll_heartsCalled when the shuttle starts launching back to centcom, polls a few random players who joined the round for commendations

Var Details

current_state

state of current round (used by process()) Use the defines GAME_STATE_* !

emergency_reason

Why an emergency shuttle was called

force_ending

Boolean to track if round should be forcibly ended next ticker tick. +Set by admin intervention (ADMIN_FORCE_END_ROUND) +or a "round-ending" event, like summoning Nar'Sie, a blob victory, the nuke going off, etc. (FORCE_END_ROUND)

hearts

People who have been commended and will receive a heart

news_report

What is going to be reported to other stations at end of round?

setup_done

Boolean to track and check if our subsystem setup is done.

start_immediately

If TRUE, there is no lobby phase, the game starts immediately.

totalPlayers

Num of players, used for pregame stats on statpanel

totalPlayersReady

Num of ready players, used for pregame stats on statpanel (only viewable by admins)

total_admins_ready

Num of ready admins, used for pregame stats on statpanel (only viewable by admins)

Proc Details

HandleRandomHardcoreScore

Handles random hardcore point rewarding if it applies.

award_service

Awards the service department an achievement and updates the chef and bartender's highscore for tourists served.

+

Arguments:

+

check_finished

Checks if the round should be ending, called every ticker tick

handle_hearts

Once the round is actually over, cycle through the ckeys in the hearts list and give them the hearted status

hardcore_random_report

Generate a report for all players who made it out alive with a hardcore random character and prints their final score

log_roundend_report

Log the round-end report as an HTML file

+

Composits the roundend report, and saves it in two locations. +The report is first saved along with the round's logs +Then, the report is copied to a fixed directory specifically for +housing the server's last roundend report. In this location, +the file will be overwritten at the end of each shift.

market_report

Generate a report for how much money is on station, as well as the richest crewmember on the station.

poll_hearts

Called when the shuttle starts launching back to centcom, polls a few random players who joined the round for commendations

\ No newline at end of file diff --git a/datum/controller/subsystem/timer.html b/datum/controller/subsystem/timer.html new file mode 100644 index 0000000000000..3d6c0d6718523 --- /dev/null +++ b/datum/controller/subsystem/timer.html @@ -0,0 +1 @@ +/datum/controller/subsystem/timer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

timer

Vars

bucket_auto_resetBoolean operator controlling if the timer SS will automatically reset buckets if it fails to invoke callbacks for an extended period of time
bucket_countHow many timers are in the buckets
bucket_listList of buckets, each bucket holds every timer that has to run that byond tick
bucket_reset_countHow many times bucket was reset
bucket_resolutionworld.tick_lag the bucket was designed for
clienttime_timersSpecial timers that run in real-time, not BYOND time; these are more expensive to run and maintain
hashesA hashlist dictionary used for storing unique timers
head_offsetworld.time of the first entry in the bucket list, effectively the 'start time' of the current buckets
last_invoke_tickContains the last time that a timer's callback was invoked, or the last tick the SS fired if no timers are being processed
last_invoke_warningContains the last time that a warning was issued for not invoking callbacks
next_clienttime_timer_indexKeeps track of the next index to work on for client timers
practical_offsetIndex of the wrap around pivot for buckets. buckets before this are later running buckets wrapped around from the end of the bucket list.
second_queueQueue used for storing timers that do not fit into the current buckets
timer_id_dictList of all active timers associated to their timer ID (for easy lookup)

Procs

get_timer_debug_stringGenerates a string with details about the timed event for debugging purposes
reset_bucketsDestroys the existing buckets and creates new buckets from the existing timed events

Var Details

bucket_auto_reset

Boolean operator controlling if the timer SS will automatically reset buckets if it fails to invoke callbacks for an extended period of time

bucket_count

How many timers are in the buckets

bucket_list

List of buckets, each bucket holds every timer that has to run that byond tick

bucket_reset_count

How many times bucket was reset

bucket_resolution

world.tick_lag the bucket was designed for

clienttime_timers

Special timers that run in real-time, not BYOND time; these are more expensive to run and maintain

hashes

A hashlist dictionary used for storing unique timers

head_offset

world.time of the first entry in the bucket list, effectively the 'start time' of the current buckets

last_invoke_tick

Contains the last time that a timer's callback was invoked, or the last tick the SS fired if no timers are being processed

last_invoke_warning

Contains the last time that a warning was issued for not invoking callbacks

next_clienttime_timer_index

Keeps track of the next index to work on for client timers

practical_offset

Index of the wrap around pivot for buckets. buckets before this are later running buckets wrapped around from the end of the bucket list.

second_queue

Queue used for storing timers that do not fit into the current buckets

timer_id_dict

List of all active timers associated to their timer ID (for easy lookup)

Proc Details

get_timer_debug_string

Generates a string with details about the timed event for debugging purposes

reset_buckets

Destroys the existing buckets and creates new buckets from the existing timed events

\ No newline at end of file diff --git a/datum/controller/subsystem/title.html b/datum/controller/subsystem/title.html new file mode 100644 index 0000000000000..6c7e6764e7e77 --- /dev/null +++ b/datum/controller/subsystem/title.html @@ -0,0 +1,7 @@ +/datum/controller/subsystem/title - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

title

Vars

available_lobby_station_traitsA list of station traits that have lobby buttons
average_completion_timeaverage realtime seconds it takes to load the map we're currently running
current_noticeThe current notice text, or null.
current_title_screenThe current title screen being displayed, as a file path text.
progress_jsonRaw data to update later
progress_reference_timeThe reference realtime that we're treating as 0 for this run
startup_message_timingsa given startup message => average timestamp in realtime seconds
title_htmlThe preamble html that includes all styling and layout.
title_screensThe list of possible title screens to rotate through, as file path texts.

Procs

change_title_screenChanges the title screen to a new image.
check_finish_progressHandle and clean up leaving startup
check_progress_reference_timeMake sure reference time is set up. If not, this is now time 0.
load_progress_jsonLoad the progress info json and setup that part of the SS.
set_noticeAdds a notice to the main title screen in the form of big red text!
show_title_screenShow the title screen to all new players.
update_character_nameUpdate a user's character setup name. +Arguments:

Var Details

available_lobby_station_traits

A list of station traits that have lobby buttons

average_completion_time

average realtime seconds it takes to load the map we're currently running

current_notice

The current notice text, or null.

current_title_screen

The current title screen being displayed, as a file path text.

progress_json

Raw data to update later

progress_reference_time

The reference realtime that we're treating as 0 for this run

startup_message_timings

a given startup message => average timestamp in realtime seconds

title_html

The preamble html that includes all styling and layout.

title_screens

The list of possible title screens to rotate through, as file path texts.

Proc Details

change_title_screen

Changes the title screen to a new image.

check_finish_progress

Handle and clean up leaving startup

check_progress_reference_time

Make sure reference time is set up. If not, this is now time 0.

load_progress_json

Load the progress info json and setup that part of the SS.

set_notice

Adds a notice to the main title screen in the form of big red text!

show_title_screen

Show the title screen to all new players.

update_character_name

Update a user's character setup name. +Arguments:

+
\ No newline at end of file diff --git a/datum/controller/subsystem/trading_card_game.html b/datum/controller/subsystem/trading_card_game.html new file mode 100644 index 0000000000000..8ec84aba794de --- /dev/null +++ b/datum/controller/subsystem/trading_card_game.html @@ -0,0 +1,5 @@ +/datum/controller/subsystem/trading_card_game - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

trading_card_game

Vars

cached_cardsList of all cards by series, with cards cached by rarity to make those lookups faster
card_directoryBase directory for all related string files
card_filesList of card files to load
card_packsWhat cardpack types to load
keyword_filesList of keyword files +These allow you to add on hovor logic to parts of a card's text, displaying extra info
keywordsList of loaded keywords matched with their hovor text

Procs

check_card_datumsChecks the global card list for cards that don't override all the default values of the card datum
check_card_distributionUsed to test open a large amount of cardpacks
check_cardpacksChecks the passed type list for missing raritys, or raritys out of bounds
clearCardsEmpty the rarity cache so we can safely add new cards
get_guarenteed_rarity_tableSee above
get_rarity_tableBecause old me wanted to keep memory costs down, each cardpack type shares a rarity list +We do the spooky stuff in here to ensure we don't have too many lists lying around
loadAllCardFilesLoads all the card files
loadCardFileLoads the contents of a json file into our global card list
loadKeywordFileLoads the contents of a json file into our global card list
printAllCardsPrints all the cards names
reloadAllCardFilesReloads all card files
resolve_keywordsTakes a string as input. Searches it for keywords in the pattern {$keyword}, and replaces them with their expanded form, generated above
styleKeywordsStyles our keywords, converting them from just the raw text to the output we want

Var Details

cached_cards

List of all cards by series, with cards cached by rarity to make those lookups faster

card_directory

Base directory for all related string files

card_files

List of card files to load

card_packs

What cardpack types to load

keyword_files

List of keyword files +These allow you to add on hovor logic to parts of a card's text, displaying extra info

keywords

List of loaded keywords matched with their hovor text

Proc Details

check_card_datums

Checks the global card list for cards that don't override all the default values of the card datum

check_card_distribution

Used to test open a large amount of cardpacks

check_cardpacks

Checks the passed type list for missing raritys, or raritys out of bounds

clearCards

Empty the rarity cache so we can safely add new cards

get_guarenteed_rarity_table

See above

get_rarity_table

Because old me wanted to keep memory costs down, each cardpack type shares a rarity list +We do the spooky stuff in here to ensure we don't have too many lists lying around

loadAllCardFiles

Loads all the card files

loadCardFile

Loads the contents of a json file into our global card list

loadKeywordFile

Loads the contents of a json file into our global card list

printAllCards

Prints all the cards names

reloadAllCardFiles

Reloads all card files

resolve_keywords

Takes a string as input. Searches it for keywords in the pattern {$keyword}, and replaces them with their expanded form, generated above

styleKeywords

Styles our keywords, converting them from just the raw text to the output we want

\ No newline at end of file diff --git a/datum/controller/subsystem/traitor.html b/datum/controller/subsystem/traitor.html new file mode 100644 index 0000000000000..c3547a920917f --- /dev/null +++ b/datum/controller/subsystem/traitor.html @@ -0,0 +1,11 @@ +/datum/controller/subsystem/traitor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

traitor

Vars

all_objectives_by_typeA list of all existing objectives by type
category_handlerUsed to handle the probability of getting an objective.
configuration_dataGlobal configuration data that gets applied to each objective when it is created. +Basic objective format +'/datum/traitor_objective/path/to/objective': { +"global_progression_influence_intensity": 0 +}
configuration_pathFile to load configurations from.
current_global_progressionThe current progression that all traitors should be at in the round
current_progression_scalingThe current scaling per minute of progression. Has a maximum value of 1 MINUTES.
generate_objectivesUsed by the debug menu, decides whether newly created objectives should generate progression and telecrystals. Do not modify for non-debug purposes.
newjoin_progression_coeffThe coefficient multiplied by the current_global_progression for new joining traitors to calculate their progression
progression_scaling_devianceThe amount of deviance from the current global progression before you start getting 2x the current scaling or no scaling at all +Also affects objectives, so -50% progress reduction or 50% progress boost.
taken_objectives_by_typeObjectives that have been completed by type. Used for limiting objectives.
traitor_debug_panelThe current debug handler for objectives. Used for debugging objectives
uplink_handlersThe current uplink handlers being managed
uplink_itemsA list of all uplink items
uplink_items_by_typeA list of all uplink items mapped by type

Var Details

all_objectives_by_type

A list of all existing objectives by type

category_handler

Used to handle the probability of getting an objective.

configuration_data

Global configuration data that gets applied to each objective when it is created. +Basic objective format +'/datum/traitor_objective/path/to/objective': { +"global_progression_influence_intensity": 0 +}

configuration_path

File to load configurations from.

current_global_progression

The current progression that all traitors should be at in the round

current_progression_scaling

The current scaling per minute of progression. Has a maximum value of 1 MINUTES.

generate_objectives

Used by the debug menu, decides whether newly created objectives should generate progression and telecrystals. Do not modify for non-debug purposes.

newjoin_progression_coeff

The coefficient multiplied by the current_global_progression for new joining traitors to calculate their progression

progression_scaling_deviance

The amount of deviance from the current global progression before you start getting 2x the current scaling or no scaling at all +Also affects objectives, so -50% progress reduction or 50% progress boost.

taken_objectives_by_type

Objectives that have been completed by type. Used for limiting objectives.

traitor_debug_panel

The current debug handler for objectives. Used for debugging objectives

The current uplink handlers being managed

A list of all uplink items

A list of all uplink items mapped by type

\ No newline at end of file diff --git a/datum/controller/subsystem/tts.html b/datum/controller/subsystem/tts.html new file mode 100644 index 0000000000000..1459c35139e61 --- /dev/null +++ b/datum/controller/subsystem/tts.html @@ -0,0 +1,5 @@ +/datum/controller/subsystem/tts - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tts

Vars

available_speakersA list of available speakers, which are string identifiers of the TTS voices that can be used to generate TTS messages.
average_tts_messages_timeUsed to calculate the average time it takes for a tts message to be received from the http server +For tts messages which time out, it won't keep tracking the tts message and will just assume that the message took +7 seconds (or whatever the value of message_timeout is) to receive back a response.
current_processing_http_messagesHTTP requests that are being processed to see if they've been finished
current_processing_tts_messagesTTS audio files that are being processed on when to be played.
in_process_http_messagesHTTP requests currently in progress but not being processed yet
max_concurrent_requestsThe max concurrent http requests that can be made at one time. Used to prevent 1 server from overloading the tts server
message_timeoutTTS messages won't play if requests took longer than this duration of time.
pitch_enabledWhether the TTS engine supports pitch adjustment or not.
queued_http_messagesQueued HTTP requests that have yet to be sent. TTS requests are handled as lists rather than datums.
queued_tts_messagesAn associative list of mobs mapped to a list of their own /datum/tts_request_target
tts_enabledWhether TTS is enabled or not

Var Details

available_speakers

A list of available speakers, which are string identifiers of the TTS voices that can be used to generate TTS messages.

average_tts_messages_time

Used to calculate the average time it takes for a tts message to be received from the http server +For tts messages which time out, it won't keep tracking the tts message and will just assume that the message took +7 seconds (or whatever the value of message_timeout is) to receive back a response.

current_processing_http_messages

HTTP requests that are being processed to see if they've been finished

current_processing_tts_messages

TTS audio files that are being processed on when to be played.

in_process_http_messages

HTTP requests currently in progress but not being processed yet

max_concurrent_requests

The max concurrent http requests that can be made at one time. Used to prevent 1 server from overloading the tts server

message_timeout

TTS messages won't play if requests took longer than this duration of time.

pitch_enabled

Whether the TTS engine supports pitch adjustment or not.

queued_http_messages

Queued HTTP requests that have yet to be sent. TTS requests are handled as lists rather than datums.

queued_tts_messages

An associative list of mobs mapped to a list of their own /datum/tts_request_target

tts_enabled

Whether TTS is enabled or not

\ No newline at end of file diff --git a/datum/controller/subsystem/tutorials.html b/datum/controller/subsystem/tutorials.html new file mode 100644 index 0000000000000..77f2bc1bd7817 --- /dev/null +++ b/datum/controller/subsystem/tutorials.html @@ -0,0 +1,7 @@ +/datum/controller/subsystem/tutorials - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tutorials

Vars

tutorial_managersA mapping of /datum/tutorial type to their manager singleton. +You probably shouldn't be indexing this directly.

Procs

suggest_tutorialWill suggest the passed tutorial type to the user. +Will check that they should actually see it, e.g. hasn't completed it yet, etc. +Then, calls /datum/tutorial/subtype/perform with the extra arguments passed in.

Var Details

tutorial_managers

A mapping of /datum/tutorial type to their manager singleton. +You probably shouldn't be indexing this directly.

Proc Details

suggest_tutorial

Will suggest the passed tutorial type to the user. +Will check that they should actually see it, e.g. hasn't completed it yet, etc. +Then, calls /datum/tutorial/subtype/perform with the extra arguments passed in.

\ No newline at end of file diff --git a/datum/controller/subsystem/unplanned_controllers.html b/datum/controller/subsystem/unplanned_controllers.html new file mode 100644 index 0000000000000..d92b02a2ffc24 --- /dev/null +++ b/datum/controller/subsystem/unplanned_controllers.html @@ -0,0 +1 @@ +/datum/controller/subsystem/unplanned_controllers - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

unplanned_controllers

Vars

target_statuswhat ai status are we interested in

Var Details

target_status

what ai status are we interested in

\ No newline at end of file diff --git a/datum/controller/subsystem/verb_manager.html b/datum/controller/subsystem/verb_manager.html new file mode 100644 index 0000000000000..a272e566080dd --- /dev/null +++ b/datum/controller/subsystem/verb_manager.html @@ -0,0 +1,16 @@ +/datum/controller/subsystem/verb_manager - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

verb_manager

Vars

FOR_ADMINS_IF_VERBS_FUCKED_immediately_execute_all_verbsif this is true all verbs immediately execute and don't queue. in case the mc is fucked or something
always_queuealways queue if possible. overrides can_queue_admin_verbs but not FOR_ADMINS_IF_VERBS_FUCKED_immediately_execute_all_verbs
can_queue_admin_verbsif TRUE we treat usr's with holders just like usr's without holders. otherwise they always execute immediately
message_admins_on_queueif TRUE this will... message admins every time a verb is queued to this subsystem for the next tick with stats. +for obvious reasons don't make this be TRUE on the code level this is for admins to turn on
use_default_statsused for subtypes to determine if they use their own stats for the stat entry
verb_queuelist of callbacks to procs called from verbs or verblike procs that were executed when the server was overloaded and had to delay to the next tick. +this list is ran through every tick, and the subsystem does not yield until this queue is finished.
verbs_executed_per_secondrunning average of how many verb callbacks are executed every second. used for the stat entry

Procs

can_queue_verbsubsystem-specific check for whether a callback can be queued. +intended so that subsystem subtypes can verify whether
queue_verbqueue a callback for the given proc, so that it is invoked in the next tick. +intended to only work with verbs or verblike procs called directly from client input, use as part of TRY_QUEUE_VERB()
run_verb_queueruns through all of this subsystems queue of verb callbacks. +goes through the entire verb queue without yielding. +used so you can flush the queue outside of fire() without interfering with anything else subtype subsystems might do in fire().

Var Details

FOR_ADMINS_IF_VERBS_FUCKED_immediately_execute_all_verbs

if this is true all verbs immediately execute and don't queue. in case the mc is fucked or something

always_queue

always queue if possible. overrides can_queue_admin_verbs but not FOR_ADMINS_IF_VERBS_FUCKED_immediately_execute_all_verbs

can_queue_admin_verbs

if TRUE we treat usr's with holders just like usr's without holders. otherwise they always execute immediately

message_admins_on_queue

if TRUE this will... message admins every time a verb is queued to this subsystem for the next tick with stats. +for obvious reasons don't make this be TRUE on the code level this is for admins to turn on

use_default_stats

used for subtypes to determine if they use their own stats for the stat entry

verb_queue

list of callbacks to procs called from verbs or verblike procs that were executed when the server was overloaded and had to delay to the next tick. +this list is ran through every tick, and the subsystem does not yield until this queue is finished.

verbs_executed_per_second

running average of how many verb callbacks are executed every second. used for the stat entry

Proc Details

can_queue_verb

subsystem-specific check for whether a callback can be queued. +intended so that subsystem subtypes can verify whether

+

subtypes may include additional arguments here if they need them! you just need to include them properly +in TRY_QUEUE_VERB() and co.

queue_verb

queue a callback for the given proc, so that it is invoked in the next tick. +intended to only work with verbs or verblike procs called directly from client input, use as part of TRY_QUEUE_VERB()

+

returns TRUE if the queuing was successful, FALSE otherwise.

run_verb_queue

runs through all of this subsystems queue of verb callbacks. +goes through the entire verb queue without yielding. +used so you can flush the queue outside of fire() without interfering with anything else subtype subsystems might do in fire().

\ No newline at end of file diff --git a/datum/controller/subsystem/verb_manager/input.html b/datum/controller/subsystem/verb_manager/input.html new file mode 100644 index 0000000000000..1846c09342b30 --- /dev/null +++ b/datum/controller/subsystem/verb_manager/input.html @@ -0,0 +1,3 @@ +/datum/controller/subsystem/verb_manager/input - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

input

Vars

average_click_delayrunning average of the amount of real time clicks take to truly execute after the command is originally sent to the server. +if a click isn't delayed at all then it counts as 0 deciseconds.
clicks_per_secondrunning average of how many clicks inputted by a player the server processes every second. used for the subsystem stat entry
current_clickscount of how many clicks onto atoms have elapsed before being cleared by fire(). used to average with clicks_per_second.
delayed_clicks_per_secondacts like clicks_per_second but only counts the clicks actually processed by SSinput itself while clicks_per_second counts all clicks
movements_per_secondrunning average of how many movement iterations from player input the server processes every second. used for the subsystem stat entry

Var Details

average_click_delay

running average of the amount of real time clicks take to truly execute after the command is originally sent to the server. +if a click isn't delayed at all then it counts as 0 deciseconds.

clicks_per_second

running average of how many clicks inputted by a player the server processes every second. used for the subsystem stat entry

current_clicks

count of how many clicks onto atoms have elapsed before being cleared by fire(). used to average with clicks_per_second.

delayed_clicks_per_second

acts like clicks_per_second but only counts the clicks actually processed by SSinput itself while clicks_per_second counts all clicks

movements_per_second

running average of how many movement iterations from player input the server processes every second. used for the subsystem stat entry

\ No newline at end of file diff --git a/datum/controller/subsystem/vote.html b/datum/controller/subsystem/vote.html new file mode 100644 index 0000000000000..66acf47d4e31d --- /dev/null +++ b/datum/controller/subsystem/vote.html @@ -0,0 +1,18 @@ +/datum/controller/subsystem/vote - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

vote

Vars

current_voteThe vote we're currently voting on.
generated_actionsA list of all generated action buttons
last_vote_timeWorld.time we started our last vote
possible_votesAll votes that we can possible vote for.
votedA list of all ckeys who have voted for the current vote.
votingA list of all ckeys currently voting for the current vote.

Procs

can_vote_startChecks if we can start a vote.
end_voteEnds the current vote.
fireBubber vote fire proc, original at code/controllers/subsystem/vote.dm
initiate_voteInitiates a vote, allowing all players to vote on something.
process_vote_resultProcess the results of the vote. +Collects all the winners, breaks any ties that occur, +prints the results of the vote to the world, +and finally follows through with the effects of the vote.
resetResets all of our vars after votes conclude / are cancelled.
submit_multi_voteAny number of selections per person, and the selection with the most votes wins.
submit_single_voteOne selection per person, and the selection with the most votes wins.

Var Details

current_vote

The vote we're currently voting on.

generated_actions

A list of all generated action buttons

last_vote_time

World.time we started our last vote

possible_votes

All votes that we can possible vote for.

voted

A list of all ckeys who have voted for the current vote.

voting

A list of all ckeys currently voting for the current vote.

Proc Details

can_vote_start

Checks if we can start a vote.

+ +

Returns TRUE if we can start a vote, FALSE if we can't.

end_vote

Ends the current vote.

fire

Bubber vote fire proc, original at code/controllers/subsystem/vote.dm

initiate_vote

Initiates a vote, allowing all players to vote on something.

+

process_vote_result

Process the results of the vote. +Collects all the winners, breaks any ties that occur, +prints the results of the vote to the world, +and finally follows through with the effects of the vote.

reset

Resets all of our vars after votes conclude / are cancelled.

submit_multi_vote

Any number of selections per person, and the selection with the most votes wins.

submit_single_vote

One selection per person, and the selection with the most votes wins.

\ No newline at end of file diff --git a/datum/controller/subsystem/wardrobe.html b/datum/controller/subsystem/wardrobe.html new file mode 100644 index 0000000000000..d19bec063127d --- /dev/null +++ b/datum/controller/subsystem/wardrobe.html @@ -0,0 +1,27 @@ +/datum/controller/subsystem/wardrobe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wardrobe

Vars

cache_intensityHow much to cache outfit items +Multiplier, 2 would mean cache enough items to stock 1 of each preloaded order twice, etc
canon_minimumCanonical list of types required to fill all preloaded stocks once. +Type -> list(count, last inspection timestamp, call on insert, call on removal)
current_taskWhat we're currently doing
initial_callbacksList of type -> list(insertion callback, removal callback) callbacks for insertion/removal to use. +Set in setup_callbacks, used in canonization.
inspect_delayHow often to inspect our stock, in deciseconds
last_inspect_timeThe last time we inspected our stock
one_go_masterHow many items would we make just by loading the master list once?
order_listList of types to load. Type -> count //(I'd do a list of lists but this needs to be refillable)
overflow_lienencyHow many more then the template of a type are we allowed to have before we delete applicants?
preloaded_stockList of lists. Contains our preloaded atoms. Type -> list(last inspect time, list(instances))
stock_hitHow many times we've successfully returned a cached item
stock_missHow many times we've had to generate a stock item on request

Procs

canonize_typeCanonizes the type, which means it's now managed by the subsystem, and will be created deleted and passed out to comsumers
get_callback_typeTakes a path to get the callback owner for +Returns the deepest path in our callback store that matches the input +The hope is this will prevent dumb conflicts, since the furthest down is always going to be the most relevant
hard_refresh_queueResets the load queue to the master template, accounting for the existing stock
run_inspectionOnce every medium while, go through the current stock and make sure we don't have too much of one thing +Or that we're not too low on some other stock +This exists as a failsafe, so the wardrobe doesn't just end up generating too many items or accidentially running out somehow
setup_callbacksSets up insertion and removal callbacks by typepath +We will always use the deepest path. So /obj/item/blade/knife superceeds the entries of /obj/item and /obj/item/blade +Mind this
stash_objectTake an existing object, and insert it into our storage +If we can't or won't take it, it's deleted. You do not own this object after passing it in
stock_wardrobeTurns the order list into actual loaded items, this is where most work is done
unload_stockUnloads an amount of some type we have in stock +Private function, for internal use only

Var Details

cache_intensity

How much to cache outfit items +Multiplier, 2 would mean cache enough items to stock 1 of each preloaded order twice, etc

canon_minimum

Canonical list of types required to fill all preloaded stocks once. +Type -> list(count, last inspection timestamp, call on insert, call on removal)

current_task

What we're currently doing

initial_callbacks

List of type -> list(insertion callback, removal callback) callbacks for insertion/removal to use. +Set in setup_callbacks, used in canonization.

inspect_delay

How often to inspect our stock, in deciseconds

last_inspect_time

The last time we inspected our stock

one_go_master

How many items would we make just by loading the master list once?

order_list

List of types to load. Type -> count //(I'd do a list of lists but this needs to be refillable)

overflow_lienency

How many more then the template of a type are we allowed to have before we delete applicants?

preloaded_stock

List of lists. Contains our preloaded atoms. Type -> list(last inspect time, list(instances))

stock_hit

How many times we've successfully returned a cached item

stock_miss

How many times we've had to generate a stock item on request

Proc Details

canonize_type

Canonizes the type, which means it's now managed by the subsystem, and will be created deleted and passed out to comsumers

+

Arguments:

+

get_callback_type

Takes a path to get the callback owner for +Returns the deepest path in our callback store that matches the input +The hope is this will prevent dumb conflicts, since the furthest down is always going to be the most relevant

hard_refresh_queue

Resets the load queue to the master template, accounting for the existing stock

run_inspection

Once every medium while, go through the current stock and make sure we don't have too much of one thing +Or that we're not too low on some other stock +This exists as a failsafe, so the wardrobe doesn't just end up generating too many items or accidentially running out somehow

setup_callbacks

Sets up insertion and removal callbacks by typepath +We will always use the deepest path. So /obj/item/blade/knife superceeds the entries of /obj/item and /obj/item/blade +Mind this

stash_object

Take an existing object, and insert it into our storage +If we can't or won't take it, it's deleted. You do not own this object after passing it in

stock_wardrobe

Turns the order list into actual loaded items, this is where most work is done

unload_stock

Unloads an amount of some type we have in stock +Private function, for internal use only

\ No newline at end of file diff --git a/datum/controller/subsystem/weather.html b/datum/controller/subsystem/weather.html new file mode 100644 index 0000000000000..55c8b7dd26fcf --- /dev/null +++ b/datum/controller/subsystem/weather.html @@ -0,0 +1 @@ +/datum/controller/subsystem/weather - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

weather

Procs

get_weather_by_typeReturns an active storm by its type

Proc Details

get_weather_by_type

Returns an active storm by its type

\ No newline at end of file diff --git a/datum/controller/subsystem/wiremod_composite.html b/datum/controller/subsystem/wiremod_composite.html new file mode 100644 index 0000000000000..fe2ca15fd270f --- /dev/null +++ b/datum/controller/subsystem/wiremod_composite.html @@ -0,0 +1,3 @@ +/datum/controller/subsystem/wiremod_composite - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wiremod_composite

Vars

templatesThe templates created and stored

Procs

composite_datatypeUsed to produce a composite datatype using another datatype, or +to get an already existing composite datatype.

Var Details

templates

The templates created and stored

Proc Details

composite_datatype

Used to produce a composite datatype using another datatype, or +to get an already existing composite datatype.

\ No newline at end of file diff --git a/datum/coupon_code.html b/datum/coupon_code.html new file mode 100644 index 0000000000000..94f3f5ccee1a7 --- /dev/null +++ b/datum/coupon_code.html @@ -0,0 +1,3 @@ +/datum/coupon_code - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

coupon_code

datum used by the Coupon Master PDA app to generate coupon items redeemed by a bank account.

Vars

associated_accountReference to the associated bank account, since we need to clear refs on deletion.
discountThe discount of the pack, on a 0 to 1 range.
discounted_packThe pack that'll receive the discount
expires_inIf set, copies of the coupon code will delete itself after a while if not printed. +The ones SSmodular_computer.discount_coupons stay intact.
printedHas the coupon been printed. Dictates in which section it's shown, and that it cannot be printed again.
timeridThe timerid for deletion if expires_in is set.

Var Details

associated_account

Reference to the associated bank account, since we need to clear refs on deletion.

discount

The discount of the pack, on a 0 to 1 range.

discounted_pack

The pack that'll receive the discount

expires_in

If set, copies of the coupon code will delete itself after a while if not printed. +The ones SSmodular_computer.discount_coupons stay intact.

printed

Has the coupon been printed. Dictates in which section it's shown, and that it cannot be printed again.

timerid

The timerid for deletion if expires_in is set.

\ No newline at end of file diff --git a/datum/cracker_reaction.html b/datum/cracker_reaction.html new file mode 100644 index 0000000000000..3425fd4ae4f72 --- /dev/null +++ b/datum/cracker_reaction.html @@ -0,0 +1 @@ +/datum/cracker_reaction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cracker_reaction

Procs

reactCalled when the co2 cracker reaction is run, should be where the code for actually changing gasses around is run
reaction_checkChecks if this reaction can actually be run

Proc Details

react

Called when the co2 cracker reaction is run, should be where the code for actually changing gasses around is run

reaction_check

Checks if this reaction can actually be run

\ No newline at end of file diff --git a/datum/crafting_bench_recipe.html b/datum/crafting_bench_recipe.html new file mode 100644 index 0000000000000..b99cb6652bc1f --- /dev/null +++ b/datum/crafting_bench_recipe.html @@ -0,0 +1 @@ +/datum/crafting_bench_recipe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crafting_bench_recipe

Vars

recipe_nameThe name of the recipe to show
recipe_requirementsThe items required to create the resulting item
relevant_skillWhat skill is relevant to the creation of this item?
relevant_skill_rewardHow much experience in our relevant skill do we give upon completion?
required_good_hitsHow many times should you have to swing the hammer to finish this item
resulting_itemWhat the end result of this recipe should be
transfers_materialsIf we use the materials from the component parts

Var Details

recipe_name

The name of the recipe to show

recipe_requirements

The items required to create the resulting item

relevant_skill

What skill is relevant to the creation of this item?

relevant_skill_reward

How much experience in our relevant skill do we give upon completion?

required_good_hits

How many times should you have to swing the hammer to finish this item

resulting_item

What the end result of this recipe should be

transfers_materials

If we use the materials from the component parts

\ No newline at end of file diff --git a/datum/crafting_recipe.html b/datum/crafting_recipe.html new file mode 100644 index 0000000000000..510005b8e5233 --- /dev/null +++ b/datum/crafting_recipe.html @@ -0,0 +1,7 @@ +/datum/crafting_recipe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

crafting_recipe

Vars

blacklisttype paths of items explicitly not allowed as an ingredient
categorywhere it shows up in the crafting UI
chem_catalystslike tool_behaviors but for reagents
crafting_flagscrafting_flags var to hold bool values
delete_contentsWhether we should delete the contents of the crafted storage item (Only works with storage items, used for ammo boxes, donut boxes, internals boxes, etc)
descdescription displayed in game +Optional, if not set uses result desc
machineryRequired machines for the craft, set the assigned value of the typepath to CRAFTING_MACHINERY_CONSUME or CRAFTING_MACHINERY_USE. Lazy associative list: type_path key -> flag value.
mass_craftableAllows you to craft so that you don't have to click the craft button many times.
namein-game display name +Optional, if not set uses result name
non_craftableWhether the result can be crafted with a crafting menu button
partstype paths of items that will be forceMoved() into the result, or added to the reagents of it
placement_checksBitflag of additional placement checks required to place. (STACK_CHECK_CARDINALS|STACK_CHECK_ADJACENT|STACK_CHECK_TRAM_FORBIDDEN|STACK_CHECK_TRAM_EXCLUSIVE)
reactionChemical reaction described in the recipe
reqstype paths of items consumed associated with how many are needed
resulttype path of item resulting from this craft
result_amountResulting amount (for stacks only)
stepsSteps needed to achieve the result
structuresRequired structures for the craft, set the assigned value of the typepath to CRAFTING_STRUCTURE_CONSUME or CRAFTING_STRUCTURE_USE. Lazy associative list: type_path key -> flag value.
timetime in seconds. Remember to use the SECONDS define!
tool_behaviorsString defines of items needed but not consumed. Lazy list.
tool_pathsType paths of items needed but not consumed. Lazy list.

Procs

atmos_pipe_checkCheck if the pipe used for atmospheric device crafting is the proper one
check_requirementsRun custom pre-craft checks for this recipe, don't add feedback messages in this because it will spam the client
crafting_ui_dataAdditional UI data to be passed to the crafting UI for this recipe

Var Details

blacklist

type paths of items explicitly not allowed as an ingredient

category

where it shows up in the crafting UI

chem_catalysts

like tool_behaviors but for reagents

crafting_flags

crafting_flags var to hold bool values

delete_contents

Whether we should delete the contents of the crafted storage item (Only works with storage items, used for ammo boxes, donut boxes, internals boxes, etc)

desc

description displayed in game +Optional, if not set uses result desc

machinery

Required machines for the craft, set the assigned value of the typepath to CRAFTING_MACHINERY_CONSUME or CRAFTING_MACHINERY_USE. Lazy associative list: type_path key -> flag value.

mass_craftable

Allows you to craft so that you don't have to click the craft button many times.

name

in-game display name +Optional, if not set uses result name

non_craftable

Whether the result can be crafted with a crafting menu button

parts

type paths of items that will be forceMoved() into the result, or added to the reagents of it

placement_checks

Bitflag of additional placement checks required to place. (STACK_CHECK_CARDINALS|STACK_CHECK_ADJACENT|STACK_CHECK_TRAM_FORBIDDEN|STACK_CHECK_TRAM_EXCLUSIVE)

reaction

Chemical reaction described in the recipe

reqs

type paths of items consumed associated with how many are needed

result

type path of item resulting from this craft

result_amount

Resulting amount (for stacks only)

steps

Steps needed to achieve the result

structures

Required structures for the craft, set the assigned value of the typepath to CRAFTING_STRUCTURE_CONSUME or CRAFTING_STRUCTURE_USE. Lazy associative list: type_path key -> flag value.

time

time in seconds. Remember to use the SECONDS define!

tool_behaviors

String defines of items needed but not consumed. Lazy list.

tool_paths

Type paths of items needed but not consumed. Lazy list.

Proc Details

atmos_pipe_check

Check if the pipe used for atmospheric device crafting is the proper one

check_requirements

Run custom pre-craft checks for this recipe, don't add feedback messages in this because it will spam the client

+

user: The /mob that initiated the crafting +collected_requirements: A list of lists of /obj/item instances that satisfy reqs. Top level list is keyed by requirement path.

crafting_ui_data

Additional UI data to be passed to the crafting UI for this recipe

\ No newline at end of file diff --git a/datum/crafting_recipe/food/reaction.html b/datum/crafting_recipe/food/reaction.html new file mode 100644 index 0000000000000..9d7f62db37a74 --- /dev/null +++ b/datum/crafting_recipe/food/reaction.html @@ -0,0 +1 @@ +/datum/crafting_recipe/food/reaction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

reaction

Procs

setup_chemical_reaction_detailsSets up information for our recipe based on the chemical reaction we have set.

Proc Details

setup_chemical_reaction_details

Sets up information for our recipe based on the chemical reaction we have set.

\ No newline at end of file diff --git a/datum/crafting_recipe/food/reaction/soup.html b/datum/crafting_recipe/food/reaction/soup.html new file mode 100644 index 0000000000000..008b76d962848 --- /dev/null +++ b/datum/crafting_recipe/food/reaction/soup.html @@ -0,0 +1,3 @@ +/datum/crafting_recipe/food/reaction/soup - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

soup

Vars

expected_containerWhat contained is this reaction expected to be served in? +Used to determine the icon to display in the crafting UI.

Var Details

expected_container

What contained is this reaction expected to be served in? +Used to determine the icon to display in the crafting UI.

\ No newline at end of file diff --git a/datum/crewmonitor.html b/datum/crewmonitor.html new file mode 100644 index 0000000000000..36959f7c9290b --- /dev/null +++ b/datum/crewmonitor.html @@ -0,0 +1 @@ +/datum/crewmonitor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crewmonitor

Vars

data_by_zCache of data generated by z-level, used for serving the data within SENSOR_UPDATE_PERIOD of the last update
last_updateCache of last update time for each z-level
ui_sourcesList of user -> UI source

Var Details

data_by_z

Cache of data generated by z-level, used for serving the data within SENSOR_UPDATE_PERIOD of the last update

last_update

Cache of last update time for each z-level

ui_sources

List of user -> UI source

\ No newline at end of file diff --git a/datum/crime.html b/datum/crime.html new file mode 100644 index 0000000000000..f4e6fa313c0c2 --- /dev/null +++ b/datum/crime.html @@ -0,0 +1 @@ +/datum/crime - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crime

Crime data. Used to store information about crimes.

Vars

authorPlayer that wrote the crime
detailsDetails about the crime
nameName of the crime
timeTime of the crime
validWhether the crime is active or not
voiderPlayer that marked the crime as invalid

Var Details

author

Player that wrote the crime

details

Details about the crime

name

Name of the crime

time

Time of the crime

valid

Whether the crime is active or not

voider

Player that marked the crime as invalid

\ No newline at end of file diff --git a/datum/crime/citation.html b/datum/crime/citation.html new file mode 100644 index 0000000000000..1793aa8e4a788 --- /dev/null +++ b/datum/crime/citation.html @@ -0,0 +1 @@ +/datum/crime/citation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

citation

Vars

fineFine for the crime
paidAmount of money paid for the crime

Procs

alert_ownerSends a citation alert message to the target's PDA.
pay_finePays off a fine and attempts to fix any weird values.

Var Details

fine

Fine for the crime

paid

Amount of money paid for the crime

Proc Details

alert_owner

Sends a citation alert message to the target's PDA.

pay_fine

Pays off a fine and attempts to fix any weird values.

\ No newline at end of file diff --git a/datum/ctf_controller.html b/datum/ctf_controller.html new file mode 100644 index 0000000000000..b6e68133cd026 --- /dev/null +++ b/datum/ctf_controller.html @@ -0,0 +1 @@ +/datum/ctf_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ctf_controller

The CTF controller acts as a manager for an individual CTF game, each CTF game should have its own, the controller should handle all game-wide functionality.

Vars

auto_restartWhen this CTF match ends should it automatically restart.
barricadesList of all barricades that have been destroyed during this CTF game.
control_pointsList of all control points used by the game, if they exist.
ctf_enabledWhether or not this CTF game is running.
game_idThe ID associated with this CTF game.
instagib_modeWeather or not instagib mode has been enabled.
points_to_winHow many points a team needs to win.
respawn_cooldownHow long till players who die can respawn.
teamsList of all team_datums participating in this game.
victory_rejoin_textThe text shown once this CTF match ends.

Procs

add_playerAdds a player and a reference to their player component to the corresponding team.
add_teamAdd an additional team to the current CTF game.
capture_flagCalled when a flag is captured by the provided team. Messages players telling them who scored a point and if points are high enough declares victory.
clear_control_pointsMarks all control points as neutral, called when a CTF match ends.
control_point_scoringCalled when points are scored at a control point. Messages players telling them when a team is half way to winning and if points are high enough declares victory.
get_all_playersReturns a list of all players in all teams.
get_player_componentReturns a reference to a players component (if it exists) when provided with a player's ckey
get_playersReturns a list of all players in the provided team.
get_pointsReturns the current amount of points the provided team has.
message_all_teamsSends a message to all players in all CTF teams in this game.
remove_teamCalled when a spawner is deleted, removes the team from this datum.
respawn_barricadesRespawns all barricades destroyed during the current CTF game, called when the match ends.
setup_rulesSome CTF maps may require alternate rulesets, this proc is called by the medisim spawners and CTF maploading.
team_valid_to_joinIdentifies if the provided team is a valid team to join for the provided player.
toggle_instagib_modeEnables and disables instagib mode in this game. During instagib mode respawns are faster, players are faster and people die faster (instant).
unload_ctfUnloading CTF removes the map entirely and allows for a new map to be loaded in its place.
victoryEnds the current CTF game and informs all players which team won. Restarts CTF if auto_restart is enabled.

Var Details

auto_restart

When this CTF match ends should it automatically restart.

barricades

List of all barricades that have been destroyed during this CTF game.

control_points

List of all control points used by the game, if they exist.

ctf_enabled

Whether or not this CTF game is running.

game_id

The ID associated with this CTF game.

instagib_mode

Weather or not instagib mode has been enabled.

points_to_win

How many points a team needs to win.

respawn_cooldown

How long till players who die can respawn.

teams

List of all team_datums participating in this game.

victory_rejoin_text

The text shown once this CTF match ends.

Proc Details

add_player

Adds a player and a reference to their player component to the corresponding team.

add_team

Add an additional team to the current CTF game.

capture_flag

Called when a flag is captured by the provided team. Messages players telling them who scored a point and if points are high enough declares victory.

clear_control_points

Marks all control points as neutral, called when a CTF match ends.

control_point_scoring

Called when points are scored at a control point. Messages players telling them when a team is half way to winning and if points are high enough declares victory.

get_all_players

Returns a list of all players in all teams.

get_player_component

Returns a reference to a players component (if it exists) when provided with a player's ckey

get_players

Returns a list of all players in the provided team.

get_points

Returns the current amount of points the provided team has.

message_all_teams

Sends a message to all players in all CTF teams in this game.

remove_team

Called when a spawner is deleted, removes the team from this datum.

respawn_barricades

Respawns all barricades destroyed during the current CTF game, called when the match ends.

setup_rules

Some CTF maps may require alternate rulesets, this proc is called by the medisim spawners and CTF maploading.

team_valid_to_join

Identifies if the provided team is a valid team to join for the provided player.

toggle_instagib_mode

Enables and disables instagib mode in this game. During instagib mode respawns are faster, players are faster and people die faster (instant).

unload_ctf

Unloading CTF removes the map entirely and allows for a new map to be loaded in its place.

victory

Ends the current CTF game and informs all players which team won. Restarts CTF if auto_restart is enabled.

\ No newline at end of file diff --git a/datum/ctf_team.html b/datum/ctf_team.html new file mode 100644 index 0000000000000..94f3175e11e95 --- /dev/null +++ b/datum/ctf_team.html @@ -0,0 +1 @@ +/datum/ctf_team - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ctf_team

A datum that holds details about individual CTF teams, any team specific CTF functionality should be implemented here.

Vars

pointsTotal score that this team currently has.
spawnerReference to the spawn point that this team uses.
team_colorWhat color this team is, also acts as a team name.
team_membersAssoc list containing a list of team members ckeys and the associated ctf_player components.
team_spanSpan used for messages sent to this team.

Procs

DestroyIf the team is destroyed all players in that team need their component removed.
message_teamSends a message to all players in this team.
reset_teamResets this teams score and clears its member list. All members will be dusted and have their player component removed.
score_pointsIncreases this teams number of points by the provided amount.

Var Details

points

Total score that this team currently has.

spawner

Reference to the spawn point that this team uses.

team_color

What color this team is, also acts as a team name.

team_members

Assoc list containing a list of team members ckeys and the associated ctf_player components.

team_span

Span used for messages sent to this team.

Proc Details

Destroy

If the team is destroyed all players in that team need their component removed.

message_team

Sends a message to all players in this team.

reset_team

Resets this teams score and clears its member list. All members will be dusted and have their player component removed.

score_points

Increases this teams number of points by the provided amount.

\ No newline at end of file diff --git a/datum/ctf_voting_controller.html b/datum/ctf_voting_controller.html new file mode 100644 index 0000000000000..3a0d2eda82c02 --- /dev/null +++ b/datum/ctf_voting_controller.html @@ -0,0 +1 @@ +/datum/ctf_voting_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ctf_voting_controller

Vars

volunteersThe list of ckeys that want to play CTF

Procs

unvoteRemoves an existing vote for user.
voteCasts a vote in favor of CTF for user.

Var Details

volunteers

The list of ckeys that want to play CTF

Proc Details

unvote

Removes an existing vote for user.

vote

Casts a vote in favor of CTF for user.

\ No newline at end of file diff --git a/datum/custom_order.html b/datum/custom_order.html new file mode 100644 index 0000000000000..2f481ff45824e --- /dev/null +++ b/datum/custom_order.html @@ -0,0 +1,9 @@ +/datum/custom_order - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

custom_order

custom order datums +Used for less generic orders (ice cream for example) +without snowflaking venue and customer code too much.

Procs

dispense_orderReturns the object that will be stored in the controller blackboard for the customer bot. +Normally but not necessarily, this would be the custom order itself. The moth clothing is a +good example of an exception to that.
get_order_appearanceReturns the appearance of the order that appears when hovering over the mob with the cursor
get_order_lineReturns the order line shout by the mob and also shown to the player when examining it.
handle_get_orderHandles what the bot does with the order when it gets it
is_correct_orderWhether or not the order is correct. Only relevant if dispense_order didn't return another object.

Proc Details

dispense_order

Returns the object that will be stored in the controller blackboard for the customer bot. +Normally but not necessarily, this would be the custom order itself. The moth clothing is a +good example of an exception to that.

get_order_appearance

Returns the appearance of the order that appears when hovering over the mob with the cursor

get_order_line

Returns the order line shout by the mob and also shown to the player when examining it.

handle_get_order

Handles what the bot does with the order when it gets it

+

Return TRANSACTION_SUCCESS to denote the order went through successfully (Not generally necessary to include here) +Return TRANSACTION_HANDLED to not do any further handling of the order by the

is_correct_order

Whether or not the order is correct. Only relevant if dispense_order didn't return another object.

\ No newline at end of file diff --git a/datum/custom_order/icecream.html b/datum/custom_order/icecream.html new file mode 100644 index 0000000000000..fc577050ecd12 --- /dev/null +++ b/datum/custom_order/icecream.html @@ -0,0 +1 @@ +/datum/custom_order/icecream - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

icecream

Vars

cone_typeThe type of cone we want the ice cream served in
icecream_namestores tha name of our order generated on New()
wanted_flavorsThe list of flavors we want.

Var Details

cone_type

The type of cone we want the ice cream served in

icecream_name

stores tha name of our order generated on New()

wanted_flavors

The list of flavors we want.

\ No newline at end of file diff --git a/datum/custom_order/moth_clothing.html b/datum/custom_order/moth_clothing.html new file mode 100644 index 0000000000000..f20b815870a2a --- /dev/null +++ b/datum/custom_order/moth_clothing.html @@ -0,0 +1 @@ +/datum/custom_order/moth_clothing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

moth_clothing

Vars

wanted_clothing_typeThe item type that we want to order, usually clothing

Var Details

wanted_clothing_type

The item type that we want to order, usually clothing

\ No newline at end of file diff --git a/datum/custom_order/reagent.html b/datum/custom_order/reagent.html new file mode 100644 index 0000000000000..83c6794595693 --- /dev/null +++ b/datum/custom_order/reagent.html @@ -0,0 +1 @@ +/datum/custom_order/reagent - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

reagent

Vars

container_neededWhat typepath container we want it to be in
reagent_typeThis is the typepath of reagent we desire
reagents_neededHow many reagents is needed

Var Details

container_needed

What typepath container we want it to be in

reagent_type

This is the typepath of reagent we desire

reagents_needed

How many reagents is needed

\ No newline at end of file diff --git a/datum/custom_order/reagent/soup.html b/datum/custom_order/reagent/soup.html new file mode 100644 index 0000000000000..d547e5aefbd9b --- /dev/null +++ b/datum/custom_order/reagent/soup.html @@ -0,0 +1 @@ +/datum/custom_order/reagent/soup - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

soup

Vars

picked_servingWhat serving we picked for the order

Var Details

picked_serving

What serving we picked for the order

\ No newline at end of file diff --git a/datum/customer_data.html b/datum/customer_data.html new file mode 100644 index 0000000000000..5653c10c1daa3 --- /dev/null +++ b/datum/customer_data.html @@ -0,0 +1 @@ +/datum/customer_data - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

customer_data

Vars

ai_controller_usedDatum AI used for the robot. Should almost never be overwritten unless theyre subtypes of ai_controller/robot_customer
base_iconBase icon for the customer
base_icon_stateBase icon state for the customer
cant_find_seat_linesLines the robot says when it can't find a seat
clothing_setsClothing sets to pick from when dressing the robot.
first_warning_lineLine when harrased by someone for the first time
found_seat_linesLines the robot says when it finds a seat
friendly_pull_lineLine when pulled by a friendly venue owner
is_uniqueIs this unique once per venue?
leave_happy_linesLines the robot says when leaving with food
leave_mad_linesLines the robot says when leaving without food
name_prefixesList of prefixes for our robots name
order_pricesThe amount a robot pays for each food he likes in an assoc list type | payment
orderable_objectsThe types of food this robot likes in a assoc list of venue type | weighted list. does NOT include subtypes.
prefix_filePrefix file to uise
second_warning_lineLine when harrased by someone for the second time
self_defense_lineLine when harrased by someone for the last time
speech_soundSound to use when this robot type speaks
total_patiencePatience of the AI, how long they will wait for their meal.
wait_for_food_linesLines the robot says when leaving waiting for food
wrong_item_lineLine sent when the customer is clicked on by someone with a 0 force item that's not the correct order

Procs

can_useCan this customer be chosen for this venue?

Var Details

ai_controller_used

Datum AI used for the robot. Should almost never be overwritten unless theyre subtypes of ai_controller/robot_customer

base_icon

Base icon for the customer

base_icon_state

Base icon state for the customer

cant_find_seat_lines

Lines the robot says when it can't find a seat

clothing_sets

Clothing sets to pick from when dressing the robot.

first_warning_line

Line when harrased by someone for the first time

found_seat_lines

Lines the robot says when it finds a seat

friendly_pull_line

Line when pulled by a friendly venue owner

is_unique

Is this unique once per venue?

leave_happy_lines

Lines the robot says when leaving with food

leave_mad_lines

Lines the robot says when leaving without food

name_prefixes

List of prefixes for our robots name

order_prices

The amount a robot pays for each food he likes in an assoc list type | payment

orderable_objects

The types of food this robot likes in a assoc list of venue type | weighted list. does NOT include subtypes.

prefix_file

Prefix file to uise

second_warning_line

Line when harrased by someone for the second time

self_defense_line

Line when harrased by someone for the last time

speech_sound

Sound to use when this robot type speaks

total_patience

Patience of the AI, how long they will wait for their meal.

wait_for_food_lines

Lines the robot says when leaving waiting for food

wrong_item_line

Line sent when the customer is clicked on by someone with a 0 force item that's not the correct order

Proc Details

can_use

Can this customer be chosen for this venue?

\ No newline at end of file diff --git a/datum/customer_data/moth.html b/datum/customer_data/moth.html new file mode 100644 index 0000000000000..4b9aae163d07f --- /dev/null +++ b/datum/customer_data/moth.html @@ -0,0 +1 @@ +/datum/customer_data/moth - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

moth

Vars

wings_chosenThe wings chosen for the moth customers.

Var Details

wings_chosen

The wings chosen for the moth customers.

\ No newline at end of file diff --git a/datum/data.html b/datum/data.html new file mode 100644 index 0000000000000..6c4fce3618ce1 --- /dev/null +++ b/datum/data.html @@ -0,0 +1 @@ +/datum/data - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

data

Currently used for experiments, vending products.

Vars

nameGiven name for the item.

Var Details

name

Given name for the item.

\ No newline at end of file diff --git a/datum/data/compressor_record.html b/datum/data/compressor_record.html new file mode 100644 index 0000000000000..0b40c19c54734 --- /dev/null +++ b/datum/data/compressor_record.html @@ -0,0 +1 @@ +/datum/data/compressor_record - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

compressor_record

Stores the record of the gas data for a significant enough tank leak

Vars

experiment_sourceTank Name
gas_dataKey: Path, Value: Moles

Var Details

experiment_source

Tank Name

gas_data

Key: Path, Value: Moles

\ No newline at end of file diff --git a/datum/data/tachyon_record.html b/datum/data/tachyon_record.html new file mode 100644 index 0000000000000..a6955945bb49e --- /dev/null +++ b/datum/data/tachyon_record.html @@ -0,0 +1 @@ +/datum/data/tachyon_record - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tachyon_record

Vars

reaction_resultsIndexed to length 3 if filled properly. Should be an empty list otherwise.

Var Details

reaction_results

Indexed to length 3 if filled properly. Should be an empty list otherwise.

\ No newline at end of file diff --git a/datum/data/vending_product.html b/datum/data/vending_product.html new file mode 100644 index 0000000000000..3e5350236d0f3 --- /dev/null +++ b/datum/data/vending_product.html @@ -0,0 +1,3 @@ +/datum/data/vending_product - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vending record datum

A datum that represents a product that is vendable

Vars

age_restrictedWhether spessmen with an ID with an age below AGE_MINOR (20 by default) can buy this item
amountHow many of this product we currently have
categoryThe category the product was in, if any. +Sourced directly from product_categories.
colorableWhether the product can be recolored by the GAGS system
custom_premium_priceDoes the item have a custom premium price override
custom_priceDoes the item have a custom price override
max_amountHow many we can store at maximum
product_pathTypepath of the product that is created when this record "sells"
returned_productsList of items that have been returned to the vending machine.

Var Details

age_restricted

Whether spessmen with an ID with an age below AGE_MINOR (20 by default) can buy this item

amount

How many of this product we currently have

category

The category the product was in, if any. +Sourced directly from product_categories.

colorable

Whether the product can be recolored by the GAGS system

custom_premium_price

Does the item have a custom premium price override

custom_price

Does the item have a custom price override

max_amount

How many we can store at maximum

product_path

Typepath of the product that is created when this record "sells"

returned_products

List of items that have been returned to the vending machine.

\ No newline at end of file diff --git a/datum/data_rc_msg.html b/datum/data_rc_msg.html new file mode 100644 index 0000000000000..7dd3a3d224f34 --- /dev/null +++ b/datum/data_rc_msg.html @@ -0,0 +1 @@ +/datum/data_rc_msg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

data_rc_msg

Vars

id_authThe ID that authenticated this message, if any.
messageThe message of the request.
priorityThe priority of this request.
receiving_departmentThe department that was targeted by the request.
sender_departmentThe department that sent the request.
stampThe stamp that authenticated this message, if any.

Var Details

id_auth

The ID that authenticated this message, if any.

message

The message of the request.

priority

The priority of this request.

receiving_department

The department that was targeted by the request.

sender_department

The department that sent the request.

stamp

The stamp that authenticated this message, if any.

\ No newline at end of file diff --git a/datum/data_tablet_msg.html b/datum/data_tablet_msg.html new file mode 100644 index 0000000000000..6752f79a17896 --- /dev/null +++ b/datum/data_tablet_msg.html @@ -0,0 +1 @@ +/datum/data_tablet_msg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

data_tablet_msg

Log datums stored by the message server.

Vars

automatedWhether or not it's an automated message. Defaults to FALSE.
messageThe transfered message.
picture_asset_keyThe attached photo path, if any.
recipientWho was targeted by the message.
senderWho sent the message.

Var Details

automated

Whether or not it's an automated message. Defaults to FALSE.

message

The transfered message.

picture_asset_key

The attached photo path, if any.

recipient

Who was targeted by the message.

sender

Who sent the message.

\ No newline at end of file diff --git a/datum/db_query.html b/datum/db_query.html new file mode 100644 index 0000000000000..4396ce0384ca8 --- /dev/null +++ b/datum/db_query.html @@ -0,0 +1 @@ +/datum/db_query - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

db_query

Vars

job_idJob ID of the query passed by rustg.
statusCurrent status of the query.

Procs

syncSleeps until execution of the query has finished.

Var Details

job_id

Job ID of the query passed by rustg.

status

Current status of the query.

Proc Details

sync

Sleeps until execution of the query has finished.

\ No newline at end of file diff --git a/datum/deathmatch_controller.html b/datum/deathmatch_controller.html new file mode 100644 index 0000000000000..bbb847bbdafa2 --- /dev/null +++ b/datum/deathmatch_controller.html @@ -0,0 +1 @@ +/datum/deathmatch_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

deathmatch_controller

Vars

loadoutsAll loadouts
lobbiesAssoc list of all lobbies (ckey = lobby)
mapsAll deathmatch map templates
modifiersAll modifiers

Var Details

loadouts

All loadouts

lobbies

Assoc list of all lobbies (ckey = lobby)

maps

All deathmatch map templates

modifiers

All modifiers

\ No newline at end of file diff --git a/datum/deathmatch_lobby.html b/datum/deathmatch_lobby.html new file mode 100644 index 0000000000000..4e44b97017790 --- /dev/null +++ b/datum/deathmatch_lobby.html @@ -0,0 +1 @@ +/datum/deathmatch_lobby - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

deathmatch_lobby

Vars

hostCkey of the host
loadoutsList of loadouts, either gotten from the deathmatch controller or the map
locationOur turf reservation AKA where the arena is
mapThe current chosen map
mod_menu_openIs the modifiers modal menu open (for the host)
modifiersA list of paths of modifiers enabled for the match.
observersAssoc list of ckey to list()
player_spawnsCurrent map player spawn locations, cleared after spawning
playersAssoc list of ckey to list()
playingWhether the lobby is currently playing
ready_countNumber of total ready players
start_timeartificial time padding when we start loading to give lighting a breather (admin starts will set this to 0)

Procs

fakefillfills the lobby with fake players for the sake of UI debug, can only be called via VV
get_modifier_listHelper proc to get modifier data
get_observer_listHelper proc for getting observer data
get_player_listHelper proc for getting player data
select_modifierSelects the passed modifier.
unselect_modifierDeselects the passed modifier.

Var Details

host

Ckey of the host

loadouts

List of loadouts, either gotten from the deathmatch controller or the map

location

Our turf reservation AKA where the arena is

map

The current chosen map

mod_menu_open

Is the modifiers modal menu open (for the host)

modifiers

A list of paths of modifiers enabled for the match.

observers

Assoc list of ckey to list()

player_spawns

Current map player spawn locations, cleared after spawning

players

Assoc list of ckey to list()

playing

Whether the lobby is currently playing

ready_count

Number of total ready players

start_time

artificial time padding when we start loading to give lighting a breather (admin starts will set this to 0)

Proc Details

fakefill

fills the lobby with fake players for the sake of UI debug, can only be called via VV

get_modifier_list

Helper proc to get modifier data

get_observer_list

Helper proc for getting observer data

get_player_list

Helper proc for getting player data

select_modifier

Selects the passed modifier.

unselect_modifier

Deselects the passed modifier.

\ No newline at end of file diff --git a/datum/deathmatch_modifier.html b/datum/deathmatch_modifier.html new file mode 100644 index 0000000000000..bb4b57764e962 --- /dev/null +++ b/datum/deathmatch_modifier.html @@ -0,0 +1 @@ +/datum/deathmatch_modifier - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

deathmatch_modifier

Deathmatch modifiers are little options the host can choose to spice the match a bit.

Vars

blacklisted_mapsA lazylist of map typepaths this is incomptable with.
blacklisted_modifiersA lazylist of modifier typepaths this is incompatible with.
colorThe color of the button shown in the UI
descriptionA small description/tooltip shown in the UI
nameThe name of the modifier
random_exemptedIs this trait exempted from the "Random Modifiers" modifier.

Procs

applyApply the modifier to the newly spawned player as the game is about to start
map_incompatibleReturns TRUE if map.type is in our blacklisted maps, FALSE otherwise.
on_end_gameCalled as the game has ended, right before the reservation is deleted.
on_map_changedCalled when the host chooses to change map. Returns FALSE if the new map is incompatible, TRUE otherwise.
on_selectCalled when selecting the deathmatch modifier.
on_start_gameCalled as the game is about to start.
selectableWhether or not this modifier can be selected, for both host and player-selected modifiers.
unselectWhen the host changes his mind and unselects it.

Var Details

blacklisted_maps

A lazylist of map typepaths this is incomptable with.

blacklisted_modifiers

A lazylist of modifier typepaths this is incompatible with.

color

The color of the button shown in the UI

description

A small description/tooltip shown in the UI

name

The name of the modifier

random_exempted

Is this trait exempted from the "Random Modifiers" modifier.

Proc Details

apply

Apply the modifier to the newly spawned player as the game is about to start

map_incompatible

Returns TRUE if map.type is in our blacklisted maps, FALSE otherwise.

on_end_game

Called as the game has ended, right before the reservation is deleted.

on_map_changed

Called when the host chooses to change map. Returns FALSE if the new map is incompatible, TRUE otherwise.

on_select

Called when selecting the deathmatch modifier.

on_start_game

Called as the game is about to start.

selectable

Whether or not this modifier can be selected, for both host and player-selected modifiers.

unselect

When the host changes his mind and unselects it.

\ No newline at end of file diff --git a/datum/deathmatch_modifier/drop_pod.html b/datum/deathmatch_modifier/drop_pod.html new file mode 100644 index 0000000000000..75d6f018ff64f --- /dev/null +++ b/datum/deathmatch_modifier/drop_pod.html @@ -0,0 +1 @@ +/datum/deathmatch_modifier/drop_pod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

drop_pod

Vars

amountHow many (a number or a two keyed list) drop pods can be dropped at a time.
contentsA (weighted) list of possible contents of the drop pod. Only one is picked at a time
drop_pod_cdThe cooldown for dropping pods into every affected deathmatch arena.
drop_pod_typeThe type of drop pod that'll periodically fall from the sky
intervalAn interval representing the min and max cooldown between each time it's fired.
signed_lobbiesA lazylist of lobbies that have this modifier enabled

Var Details

amount

How many (a number or a two keyed list) drop pods can be dropped at a time.

contents

A (weighted) list of possible contents of the drop pod. Only one is picked at a time

drop_pod_cd

The cooldown for dropping pods into every affected deathmatch arena.

drop_pod_type

The type of drop pod that'll periodically fall from the sky

interval

An interval representing the min and max cooldown between each time it's fired.

signed_lobbies

A lazylist of lobbies that have this modifier enabled

\ No newline at end of file diff --git a/datum/deathmatch_modifier/teleport.html b/datum/deathmatch_modifier/teleport.html new file mode 100644 index 0000000000000..f8b3d7fbc9433 --- /dev/null +++ b/datum/deathmatch_modifier/teleport.html @@ -0,0 +1 @@ +/datum/deathmatch_modifier/teleport - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

teleport

Vars

signed_lobbiesA lazylist of lobbies that have this modifier enabled
teleport_cdThe cooldown to the teleportation effect.

Var Details

signed_lobbies

A lazylist of lobbies that have this modifier enabled

teleport_cd

The cooldown to the teleportation effect.

\ No newline at end of file diff --git a/datum/deck_card.html b/datum/deck_card.html new file mode 100644 index 0000000000000..9040e1cc9c542 --- /dev/null +++ b/datum/deck_card.html @@ -0,0 +1 @@ +/datum/deck_card - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

deck_card

A basic interface for creating a card for a deck that isn't just a name.

Vars

nameThe name of the card
pathThe typepath that will be instantiated

Procs

create_cardCreates a card for the given deck

Var Details

name

The name of the card

path

The typepath that will be instantiated

Proc Details

create_card

Creates a card for the given deck

\ No newline at end of file diff --git a/datum/decompose_matrix.html b/datum/decompose_matrix.html new file mode 100644 index 0000000000000..e468cd07cd749 --- /dev/null +++ b/datum/decompose_matrix.html @@ -0,0 +1 @@ +/datum/decompose_matrix - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

decompose_matrix

Datum which stores information about a matrix decomposed with decompose().

Vars

rotation?
scale_x?
scale_y?
shift_x?
shift_y?

Var Details

rotation

?

scale_x

?

scale_y

?

shift_x

?

shift_y

?

\ No newline at end of file diff --git a/datum/demoralise_moods.html b/datum/demoralise_moods.html new file mode 100644 index 0000000000000..46085f1e3e49d --- /dev/null +++ b/datum/demoralise_moods.html @@ -0,0 +1,2 @@ +/datum/demoralise_moods - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

demoralise_moods

Mood application categories for this objective +Used to reduce duplicate code for applying moods to players based on their state

Vars

antag_moodMood datum to apply to an antagonist
antag_notificationText to display to an antagonist upon receiving this mood
authority_moodMood datum to apply to a head of staff or security
authority_notificationText to display to a head of staff upon receiving this mood
crew_moodMood datum to apply to a crew member
crew_notificationText to display to a crew member upon receiving this mood
mood_categoryMood category to apply to moods
reading_requirementsFor literacy checks

Var Details

antag_mood

Mood datum to apply to an antagonist

antag_notification

Text to display to an antagonist upon receiving this mood

authority_mood

Mood datum to apply to a head of staff or security

authority_notification

Text to display to a head of staff upon receiving this mood

crew_mood

Mood datum to apply to a crew member

crew_notification

Text to display to a crew member upon receiving this mood

mood_category

Mood category to apply to moods

reading_requirements

For literacy checks

\ No newline at end of file diff --git a/datum/design.html b/datum/design.html new file mode 100644 index 0000000000000..c120ccf0d88ec --- /dev/null +++ b/datum/design.html @@ -0,0 +1,2 @@ +/datum/design - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

design

Design Datums +All the data for building stuff.

Vars

autolathe_exportableFor protolathe designs that don't require reagents: If they can be exported to autolathes with a design disk or not.
build_pathThe typepath of the object produced by this design
build_typeBitflags indicating what machines this design is compatable with. ([IMPRINTER]|AWAY_IMPRINTER|[PROTOLATHE]|AWAY_LATHE|[AUTOLATHE]|[MECHFAB]|[BIOGENERATOR]|[LIMBGROWER]|[SMELTER])
categoryWhat categories this design falls under. Used for sorting in production machines.
construction_timeThe amount of time required to create one unit of the product.
departmental_flagsBitflags indicating what departmental lathes should be allowed to process this design.
descDescription of the created object
icon_cacheAppears to be unused.
idThe ID of the design. Used for quick reference. Alphanumeric, lower-case, no symbols
lathe_time_factorHow many times faster than normal is this to build on the protolathe
make_reagentReagent produced by this design. Currently only supported by the biogenerator.
materialsList of materials required to create one unit of the product. Format is (typepath or caregory) -> amount
nameName of the created object
reagents_listList of reagents required to create one unit of the product. Currently only supported by the limb grower.
research_iconOverride for the automatic icon generation used for the research console.
research_icon_stateOverride for the automatic icon state generation used for the research console.
search_metadataOptional string that interfaces can use as part of search filters. See- item/borg/upgrade/ai and the Exosuit Fabs.
unlocked_byWhat techwebs nodes unlock this design. Constructed by SSresearch

Procs

get_descriptionReturns the description of the design

Var Details

autolathe_exportable

For protolathe designs that don't require reagents: If they can be exported to autolathes with a design disk or not.

build_path

The typepath of the object produced by this design

build_type

Bitflags indicating what machines this design is compatable with. ([IMPRINTER]|AWAY_IMPRINTER|[PROTOLATHE]|AWAY_LATHE|[AUTOLATHE]|[MECHFAB]|[BIOGENERATOR]|[LIMBGROWER]|[SMELTER])

category

What categories this design falls under. Used for sorting in production machines.

construction_time

The amount of time required to create one unit of the product.

departmental_flags

Bitflags indicating what departmental lathes should be allowed to process this design.

desc

Description of the created object

icon_cache

Appears to be unused.

id

The ID of the design. Used for quick reference. Alphanumeric, lower-case, no symbols

lathe_time_factor

How many times faster than normal is this to build on the protolathe

make_reagent

Reagent produced by this design. Currently only supported by the biogenerator.

materials

List of materials required to create one unit of the product. Format is (typepath or caregory) -> amount

name

Name of the created object

reagents_list

List of reagents required to create one unit of the product. Currently only supported by the limb grower.

research_icon

Override for the automatic icon generation used for the research console.

research_icon_state

Override for the automatic icon state generation used for the research console.

search_metadata

Optional string that interfaces can use as part of search filters. See- item/borg/upgrade/ai and the Exosuit Fabs.

unlocked_by

What techwebs nodes unlock this design. Constructed by SSresearch

Proc Details

get_description

Returns the description of the design

\ No newline at end of file diff --git a/datum/dimension_theme.html b/datum/dimension_theme.html new file mode 100644 index 0000000000000..101926974f37d --- /dev/null +++ b/datum/dimension_theme.html @@ -0,0 +1,47 @@ +/datum/dimension_theme - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dimension_theme

Datum which describes a theme and replaces turfs and objects in specified locations to match that theme

Vars

iconAn icon to display to represent the theme
icon_stateIcon state to use to represent the theme
materialTypepath of custom material to use for objects.
nameHuman readable name of the theme
random_spawn_chanceProb of placing a random spawn in a completely open turf
random_spawnsList of random spawns to place in completely open turfs
replace_floorsWeighted list of turfs to replace the floor with.
replace_objsList of weighted lists for object replacement. Key is an original typepath, value is a weighted list of typepaths to replace it with.
replace_wallsTypepath of turf to replace walls with.
replace_windowTypepath of full-size windows which will replace existing ones +These need to be separate from replace_objs because we don't want to replace dir windows with full ones and they share typepath
soundSound to play when transforming a tile
window_colourColour to recolour windows with, replaced by material colour if material was specified.

Procs

apply_materialsApplies a new custom material to the contents of a provided turf.
apply_themeApplies themed transformation to the provided turf.
apply_theme_to_list_of_turfsApplies the transformation to a list of turfs, ensuring a sound is only played every few turfs to reduce noice spam
can_convertReturns true if you actually can transform the provided turf.
get_replacement_object_typepathReturns the typepath of an object to replace the provided object.
permit_replace_materialReturns true if the provided object can have its material modified.
replace_objectReplaces the provided object with a different one.
replace_turfReplaces the provided turf with a different one.
transform_floorReplaces the provided floor turf with a different one.
transform_windowReplaces a window with a different window and recolours it. +This needs its own function because we only want to replace full tile windows.

Var Details

icon

An icon to display to represent the theme

icon_state

Icon state to use to represent the theme

material

Typepath of custom material to use for objects.

name

Human readable name of the theme

random_spawn_chance

Prob of placing a random spawn in a completely open turf

random_spawns

List of random spawns to place in completely open turfs

replace_floors

Weighted list of turfs to replace the floor with.

replace_objs

List of weighted lists for object replacement. Key is an original typepath, value is a weighted list of typepaths to replace it with.

replace_walls

Typepath of turf to replace walls with.

replace_window

Typepath of full-size windows which will replace existing ones +These need to be separate from replace_objs because we don't want to replace dir windows with full ones and they share typepath

sound

Sound to play when transforming a tile

window_colour

Colour to recolour windows with, replaced by material colour if material was specified.

Proc Details

apply_materials

Applies a new custom material to the contents of a provided turf.

+

Arguments

+

apply_theme

Applies themed transformation to the provided turf.

+

Arguments

+

apply_theme_to_list_of_turfs

Applies the transformation to a list of turfs, ensuring a sound is only played every few turfs to reduce noice spam

+

Arguments

+

can_convert

Returns true if you actually can transform the provided turf.

+

Arguments

+

get_replacement_object_typepath

Returns the typepath of an object to replace the provided object.

+

Arguments

+

permit_replace_material

Returns true if the provided object can have its material modified.

+

Arguments

+

replace_object

Replaces the provided object with a different one.

+

Arguments

+

replace_turf

Replaces the provided turf with a different one.

+

Arguments

+

transform_floor

Replaces the provided floor turf with a different one.

+

Arguments

+

transform_window

Replaces a window with a different window and recolours it. +This needs its own function because we only want to replace full tile windows.

+

Arguments

+
\ No newline at end of file diff --git a/datum/dimension_theme/fancy.html b/datum/dimension_theme/fancy.html new file mode 100644 index 0000000000000..e388f2a23008b --- /dev/null +++ b/datum/dimension_theme/fancy.html @@ -0,0 +1 @@ +/datum/dimension_theme/fancy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fancy

Vars

carpet_switch_cdCooldown for changing carpets, It's kinda dull to always use the same one, but we also can't make it too random.
valid_carpetsList of carpets we can pick from, set up in New
valid_tablesList of tables we can pick from, set up in New

Var Details

carpet_switch_cd

Cooldown for changing carpets, It's kinda dull to always use the same one, but we also can't make it too random.

valid_carpets

List of carpets we can pick from, set up in New

valid_tables

List of tables we can pick from, set up in New

\ No newline at end of file diff --git a/datum/discord_embed.html b/datum/discord_embed.html new file mode 100644 index 0000000000000..b926ba31dfb7a --- /dev/null +++ b/datum/discord_embed.html @@ -0,0 +1,3 @@ +/datum/discord_embed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

discord_embed

Documentation for the embed object and all of its variables can be found at +https://discord.com/developers/docs/resources/channel#embed-object +It is recommended to read the documentation on the discord website, as the information below could become outdated in the future.

Vars

authorName of the author of the embed
colorThe colour that appears on the top of the embed. This is an integer and is the color code of the embed.
contentAny content that should appear above the embed
descriptionThe description
fieldsA key-value string list of fields that should be displayed
footerThe footer that appears on the embed
imageString representing a link to an image
providerString representing the name of the provider
provider_urlString representing the link of the provider
thumbnailString representing a link to the thumbnail image
titleTitle of the embed
urlThe URL that the title
videoString representing a link to the video

Var Details

author

Name of the author of the embed

color

The colour that appears on the top of the embed. This is an integer and is the color code of the embed.

content

Any content that should appear above the embed

description

The description

fields

A key-value string list of fields that should be displayed

footer

The footer that appears on the embed

image

String representing a link to an image

provider

String representing the name of the provider

provider_url

String representing the link of the provider

thumbnail

String representing a link to the thumbnail image

title

Title of the embed

url

The URL that the title

video

String representing a link to the video

\ No newline at end of file diff --git a/datum/discord_link_record.html b/datum/discord_link_record.html new file mode 100644 index 0000000000000..8ca915c25fdee --- /dev/null +++ b/datum/discord_link_record.html @@ -0,0 +1,10 @@ +/datum/discord_link_record - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

discord_link_record

Represents a record from the discord link table in a nicer format

Procs

NewGenerate a discord link datum from the values

Proc Details

New

Generate a discord link datum from the values

+

This is only used by SSdiscord wrapper functions for now, so you can reference the fields +slightly easier

+

Arguments:

+
\ No newline at end of file diff --git a/datum/disease.html b/datum/disease.html new file mode 100644 index 0000000000000..fb06d4d51b49e --- /dev/null +++ b/datum/disease.html @@ -0,0 +1,13 @@ +/datum/disease - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

disease

Vars

chemical_offsetsNumber of cycles we've benefited from chemical or other non-resting symptom protection
cure_chanceThe probability of this infection being cured every second the cure is present
cycles_to_beatHow many cycles do we need to have been active after hitting our max stage to start rolling back?
incubation_timeHow long this infection incubates (non-visible) before revealing itself
infectivityThe probability of spreading through the air every second
peaked_cyclesHow many cycles has the virus been at its peak?
required_organIf the disease requires an organ for the effects to function, robotic organs are immune to disease unless inorganic biology symptom is present
stage_peakedHas the virus hit its limit?
stage_probThe probability of this infection advancing a stage every second the cure is not present.
symptom_offsetsNumber of cycles we've prevented symptoms from appearing

Procs

admin_detailsReturns a string for admin logging uses, should describe the disease in detail
airborne_spreadHandles performing a spread-via-air
has_required_infectious_organChecks if the mob has the required organ and it's not robotic or affected by inorganic biology
is_viable_mobtypeChecks the given typepath against the list of viable mobtypes.
on_breathHandles spreading via air when our mob breathes
register_disease_signalsRegister any relevant signals for the disease
stage_actProc to process the disease and decide on whether to advance, cure or make the symptoms appear. Returns a boolean on whether to continue acting on the symptoms or not.
unregister_disease_signalsUnregister any relevant signals for the disease
update_spread_flagsUpdates the spread flags set, ensuring signals are updated as necessary

Var Details

chemical_offsets

Number of cycles we've benefited from chemical or other non-resting symptom protection

cure_chance

The probability of this infection being cured every second the cure is present

cycles_to_beat

How many cycles do we need to have been active after hitting our max stage to start rolling back?

incubation_time

How long this infection incubates (non-visible) before revealing itself

infectivity

The probability of spreading through the air every second

peaked_cycles

How many cycles has the virus been at its peak?

required_organ

If the disease requires an organ for the effects to function, robotic organs are immune to disease unless inorganic biology symptom is present

stage_peaked

Has the virus hit its limit?

stage_prob

The probability of this infection advancing a stage every second the cure is not present.

symptom_offsets

Number of cycles we've prevented symptoms from appearing

Proc Details

admin_details

Returns a string for admin logging uses, should describe the disease in detail

airborne_spread

Handles performing a spread-via-air

+

Checks for stuff like "is our mouth covered" for you

+

has_required_infectious_organ

Checks if the mob has the required organ and it's not robotic or affected by inorganic biology

is_viable_mobtype

Checks the given typepath against the list of viable mobtypes.

+

Returns TRUE if the mob_type path is derived from of any entry in the viable_mobtypes list. +Returns FALSE otherwise.

+

Arguments:

+

on_breath

Handles spreading via air when our mob breathes

register_disease_signals

Register any relevant signals for the disease

stage_act

Proc to process the disease and decide on whether to advance, cure or make the symptoms appear. Returns a boolean on whether to continue acting on the symptoms or not.

unregister_disease_signals

Unregister any relevant signals for the disease

update_spread_flags

Updates the spread flags set, ensuring signals are updated as necessary

\ No newline at end of file diff --git a/datum/disease/advance.html b/datum/disease/advance.html new file mode 100644 index 0000000000000..001959cd10447 --- /dev/null +++ b/datum/disease/advance.html @@ -0,0 +1 @@ +/datum/disease/advance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

advance

Vars

advance_curesLists of cures and how hard we expect them to be to cure. Sentient diseases will pick two from 6+

Procs

admin_detailsDescribes this disease to an admin in detail (for logging)
after_addIf the disease has an incubation time (such as event diseases) start the timer, let properties determine if there's no timer set.
get_symptom_weightsHow much of the symptom capacity is currently being used?
make_visibleMake virus visible to heath scanners

Var Details

advance_cures

Lists of cures and how hard we expect them to be to cure. Sentient diseases will pick two from 6+

Proc Details

admin_details

Describes this disease to an admin in detail (for logging)

after_add

If the disease has an incubation time (such as event diseases) start the timer, let properties determine if there's no timer set.

get_symptom_weights

How much of the symptom capacity is currently being used?

make_visible

Make virus visible to heath scanners

\ No newline at end of file diff --git a/datum/disease/advance/carpellosis.html b/datum/disease/advance/carpellosis.html new file mode 100644 index 0000000000000..734feef88bc10 --- /dev/null +++ b/datum/disease/advance/carpellosis.html @@ -0,0 +1 @@ +/datum/disease/advance/carpellosis - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

carpellosis

Caused by dirty food. Makes you growl at people and bite them spontaneously.

Vars

ability_grantedWhether the host has carp ability
ella_spawn_chanceThe chance of Carp Ella to spawn on cure
max_stage_reachedWhether the max stage was achieved in disease lifecycle
rift_abilityCarp ability gained on max stage

Var Details

ability_granted

Whether the host has carp ability

ella_spawn_chance

The chance of Carp Ella to spawn on cure

max_stage_reached

Whether the max stage was achieved in disease lifecycle

rift_ability

Carp ability gained on max stage

\ No newline at end of file diff --git a/datum/disease/advance/gastritium.html b/datum/disease/advance/gastritium.html new file mode 100644 index 0000000000000..61667dd48dee0 --- /dev/null +++ b/datum/disease/advance/gastritium.html @@ -0,0 +1 @@ +/datum/disease/advance/gastritium - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gastritium

Caused by dirty food. Makes you burp out Tritium, sometimes burning hot!

Vars

tritium_burp_hot_chanceThe chance of burped out tritium to be hot during max stage

Var Details

tritium_burp_hot_chance

The chance of burped out tritium to be hot during max stage

\ No newline at end of file diff --git a/datum/disease/advance/random/event.html b/datum/disease/advance/random/event.html new file mode 100644 index 0000000000000..f7bfc294cc618 --- /dev/null +++ b/datum/disease/advance/random/event.html @@ -0,0 +1,10 @@ +/datum/disease/advance/random/event - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

event

Procs

NewGenerate advanced virus
assign_propertiesAssign virus properties
generate_cureDetermine the cure
set_spreadSet the transmission methods on the generated virus

Proc Details

New

Generate advanced virus

+

Uses the parameters to create a list of symptoms, picking from various severities +Viral Evolution and Eternal Youth are special modifiers, so we roll separately.

assign_properties

Assign virus properties

+

Now that we've picked our symptoms and severity, we determine the other stats +(Stage Speed, Resistance, Transmissibility) +The LOW/MID percentiles can be adjusted in the defines. +If the virus is severity DANGEROUS we do not hide it from health scanners at event start. +If the virus is airborne, also don't hide it.

generate_cure

Determine the cure

+

Rolls one of five possible cure groups, then selects a cure from it and applies it to the virus.

set_spread

Set the transmission methods on the generated virus

+

Apply the transmission methods we rolled in the assign_properties proc

\ No newline at end of file diff --git a/datum/disease/parrot_possession.html b/datum/disease/parrot_possession.html new file mode 100644 index 0000000000000..f01603f4bbc4b --- /dev/null +++ b/datum/disease/parrot_possession.html @@ -0,0 +1 @@ +/datum/disease/parrot_possession - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

parrot_possession

Vars

parrot_controllercontroller we speak from
speak_chancechance we speak

Var Details

parrot_controller

controller we speak from

speak_chance

chance we speak

\ No newline at end of file diff --git a/datum/disease/wizarditis.html b/datum/disease/wizarditis.html new file mode 100644 index 0000000000000..bffae91ba38ea --- /dev/null +++ b/datum/disease/wizarditis.html @@ -0,0 +1 @@ +/datum/disease/wizarditis - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wizarditis

Vars

hat_typeThe hat type to give the infected
random_spellsList of random non-targeted spells to pick from to cast
random_targeted_spellsList of random targeted spells to pick from to cast
robe_typeThe robe type to give the infected

Var Details

hat_type

The hat type to give the infected

random_spells

List of random non-targeted spells to pick from to cast

random_targeted_spells

List of random targeted spells to pick from to cast

robe_type

The robe type to give the infected

\ No newline at end of file diff --git a/datum/dna.html b/datum/dna.html new file mode 100644 index 0000000000000..bac340c8734c2 --- /dev/null +++ b/datum/dna.html @@ -0,0 +1,10 @@ +/datum/dna - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dna

DNA DATUM

Vars

body_markingsBody markings of the DNA's owner. This is for storing their original state for re-creating the character. They'll get changed on species mutation
current_body_sizeCurrent body size, used for proper re-sizing and keeping track of that
default_mutation_genesList of the default genes from this mutation to allow DNA Scanner highlighting
fatal_meltdownsWeighted list of lethal meltdowns
mutation_indexList of which mutations this carbon has and its assigned block
mutationsAll mutations are from now on here
nonfatal_meltdownsWeighted list of nonlethal meltdowns
previousFor temporary name/ui/ue/blood_type modifications
real_nameStores the real name of the person who originally got this dna datum. Used primarily for changelings,
scrambledDid we take something like mutagen? In that case we can't get our genes scanned to instantly cheese all the powers.
speciesThe type of mutant race the player is if applicable (i.e. potato-man)
temporary_mutationsTemporary changes to the UE
unique_enzymesAn md5 hash of the dna holder's real name
unique_featuresStores the hashed values of the person's non-human features
unique_identityStores the hashed values of traits such as skin tones, hair style, and gender

Procs

initialize_dnaSets up DNA codes and initializes some features.
is_same_asChecks if two DNAs are practically the same by comparing their most defining features
mutation_in_sequenceDNA HELPER-PROCS
set_uni_feature_blockSetter macro used to modify unique features blocks.
set_uni_identity_blockSetter macro used to modify unique identity blocks.
update_dna_identityUpdates the UI, UE, and UF of the DNA according to the features, appearance, name, etc. of the DNA / holder.

Var Details

body_markings

Body markings of the DNA's owner. This is for storing their original state for re-creating the character. They'll get changed on species mutation

current_body_size

Current body size, used for proper re-sizing and keeping track of that

default_mutation_genes

List of the default genes from this mutation to allow DNA Scanner highlighting

fatal_meltdowns

Weighted list of lethal meltdowns

mutation_index

List of which mutations this carbon has and its assigned block

mutations

All mutations are from now on here

nonfatal_meltdowns

Weighted list of nonlethal meltdowns

previous

For temporary name/ui/ue/blood_type modifications

real_name

Stores the real name of the person who originally got this dna datum. Used primarily for changelings,

scrambled

Did we take something like mutagen? In that case we can't get our genes scanned to instantly cheese all the powers.

species

The type of mutant race the player is if applicable (i.e. potato-man)

temporary_mutations

Temporary changes to the UE

unique_enzymes

An md5 hash of the dna holder's real name

unique_features

Stores the hashed values of the person's non-human features

unique_identity

Stores the hashed values of traits such as skin tones, hair style, and gender

Proc Details

initialize_dna

Sets up DNA codes and initializes some features.

+

is_same_as

Checks if two DNAs are practically the same by comparing their most defining features

+

Arguments:

+

mutation_in_sequence

DNA HELPER-PROCS

set_uni_feature_block

Setter macro used to modify unique features blocks.

set_uni_identity_block

Setter macro used to modify unique identity blocks.

update_dna_identity

Updates the UI, UE, and UF of the DNA according to the features, appearance, name, etc. of the DNA / holder.

\ No newline at end of file diff --git a/datum/dog_fashion.html b/datum/dog_fashion.html new file mode 100644 index 0000000000000..067b7cdc4c634 --- /dev/null +++ b/datum/dog_fashion.html @@ -0,0 +1,3 @@ +/datum/dog_fashion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dog_fashion

Vars

descDescription modifier for the dog that we're dressing up
emote_hearHearable emotes modifier for the dog that we're dressing up
emote_seeVisible emotes modifier for the dog that we're dressing up
icon_fileIcon path for the fashion item
nameName modifier for the dog that we're dressing up
obj_alphaAlpha level (opacity) modifier of the fashion item
obj_colorColor modifier of the fasion item
obj_icon_stateIcon state for the fashion item
speakSpeech modifier for the dog that we're dressing up
speak_emoteSpeech verb modifier for the dog that we're dressing up

Procs

applyApplies the name, description and speak emote modifiers to the dog
apply_to_speechApplies random speech modifiers to the dog
get_overlayGenerates the icon overlay for the equipped item +dir: passed direction for the sprite, e.g. to apply to a dead dog, we use the EAST dir and just flip it 180.

Var Details

desc

Description modifier for the dog that we're dressing up

emote_hear

Hearable emotes modifier for the dog that we're dressing up

emote_see

Visible emotes modifier for the dog that we're dressing up

icon_file

Icon path for the fashion item

name

Name modifier for the dog that we're dressing up

obj_alpha

Alpha level (opacity) modifier of the fashion item

obj_color

Color modifier of the fasion item

obj_icon_state

Icon state for the fashion item

speak

Speech modifier for the dog that we're dressing up

speak_emote

Speech verb modifier for the dog that we're dressing up

Proc Details

apply

Applies the name, description and speak emote modifiers to the dog

apply_to_speech

Applies random speech modifiers to the dog

get_overlay

Generates the icon overlay for the equipped item +dir: passed direction for the sprite, e.g. to apply to a dead dog, we use the EAST dir and just flip it 180.

\ No newline at end of file diff --git a/datum/dream.html b/datum/dream.html new file mode 100644 index 0000000000000..db2632ec3ad44 --- /dev/null +++ b/datum/dream.html @@ -0,0 +1,4 @@ +/datum/dream - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dream

Contains all the behavior needed to play a kind of dream. +All dream types get randomly selected from based on weight when an appropriate mobs dreams.

Vars

sleep_until_finishedCauses the mob to sleep long enough for the dream to finish if begun
weightThe relative chance this dream will be randomly selected

Procs

GenerateDreamCalled when beginning a new dream for the dreamer. +Gives back a list of dream events. Events can be text or callbacks that return text.
OnDreamEndCalled when the dream ends or is interrupted.

Var Details

sleep_until_finished

Causes the mob to sleep long enough for the dream to finish if begun

weight

The relative chance this dream will be randomly selected

Proc Details

GenerateDream

Called when beginning a new dream for the dreamer. +Gives back a list of dream events. Events can be text or callbacks that return text.

OnDreamEnd

Called when the dream ends or is interrupted.

\ No newline at end of file diff --git a/datum/drift_handler.html b/datum/drift_handler.html new file mode 100644 index 0000000000000..aecd4474384df --- /dev/null +++ b/datum/drift_handler.html @@ -0,0 +1,11 @@ +/datum/drift_handler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

drift_handler

Component that handles drifting +Manages a movement loop that actually does the legwork of moving someone +Alongside dealing with the post movement input blocking required to make things look nice

Vars

delayedHave we been delayed? IE: active, but not working right this second?
drift_forceHow much force is behind this drift.
ignore_next_glideShould we ignore the next glide rate input we get? +This is to some extent a hack around the order of operations +Around COMSIG_MOVELOOP_POSTPROCESS. I'm sorry lad

Procs

NewAccepts three args. The direction to drift in, if the drift is instant or not, and if it's not instant, the delay on the start
handle_glidesize_updateWe're going to take the passed in glide size +and use it to manually delay our loop for that period +to allow the other movement to complete
remove_angle_forceRemoves all force in a certain direction
stopped_pullingIf we're pulling something and stop, we want it to continue at our rate and such

Var Details

delayed

Have we been delayed? IE: active, but not working right this second?

drift_force

How much force is behind this drift.

ignore_next_glide

Should we ignore the next glide rate input we get? +This is to some extent a hack around the order of operations +Around COMSIG_MOVELOOP_POSTPROCESS. I'm sorry lad

Proc Details

New

Accepts three args. The direction to drift in, if the drift is instant or not, and if it's not instant, the delay on the start

handle_glidesize_update

We're going to take the passed in glide size +and use it to manually delay our loop for that period +to allow the other movement to complete

remove_angle_force

Removes all force in a certain direction

stopped_pulling

If we're pulling something and stop, we want it to continue at our rate and such

\ No newline at end of file diff --git a/datum/ductnet.html b/datum/ductnet.html new file mode 100644 index 0000000000000..1598d92eca291 --- /dev/null +++ b/datum/ductnet.html @@ -0,0 +1 @@ +/datum/ductnet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ductnet

We handle the unity part of plumbing. We track who is connected to who.

Vars

capacityMax reagents we can carry per tick
demandersStuff that can take chems
ductsAll the ducts that make this network
suppliersStuff that can supply chems

Procs

add_ductAdd a duct to our network
add_plumberadd a plumbing object to either demanders or suppliers
assimilatewe combine ductnets. this occurs when someone connects to separate sets of fluid ducts
destroy_networkdestroy the network and tell all our ducts and plumbers we are gone
remove_ductRemove a duct from our network and commit suicide, because this is probably easier than to check who that duct was connected to and what part of us was lost
remove_plumberremove a plumber. we don't delete ourselves because ductnets don't persist through plumbing objects

Var Details

capacity

Max reagents we can carry per tick

demanders

Stuff that can take chems

ducts

All the ducts that make this network

suppliers

Stuff that can supply chems

Proc Details

add_duct

Add a duct to our network

add_plumber

add a plumbing object to either demanders or suppliers

assimilate

we combine ductnets. this occurs when someone connects to separate sets of fluid ducts

destroy_network

destroy the network and tell all our ducts and plumbers we are gone

remove_duct

Remove a duct from our network and commit suicide, because this is probably easier than to check who that duct was connected to and what part of us was lost

remove_plumber

remove a plumber. we don't delete ourselves because ductnets don't persist through plumbing objects

\ No newline at end of file diff --git a/datum/duel.html b/datum/duel.html new file mode 100644 index 0000000000000..654c8fa11a72e --- /dev/null +++ b/datum/duel.html @@ -0,0 +1 @@ +/datum/duel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

duel

Procs

clear_duelFor each linked gun that still exists, clear its reference to us, then delete.

Proc Details

clear_duel

For each linked gun that still exists, clear its reference to us, then delete.

\ No newline at end of file diff --git a/datum/dynamic_ruleset.html b/datum/dynamic_ruleset.html new file mode 100644 index 0000000000000..2c7c54012757b --- /dev/null +++ b/datum/dynamic_ruleset.html @@ -0,0 +1,47 @@ +/datum/dynamic_ruleset - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dynamic_ruleset

Vars

antag_capJudges the amount of antagonists to apply, for both solo and teams. +Note that some antagonists (such as traitors, lings, heretics, etc) will add more based on how many times they've been scaled. +Written as a linear equation--ceil(x/denominator) + offset, or as a fixed constant. +If written as a linear equation, will be in the form of `list("denominator" = denominator, "offset" = offset).
antag_datumThe antagonist datum that is assigned to the mobs mind on ruleset execution.
antag_flagPreferences flag such as ROLE_WIZARD that need to be turned on for players to be antag.
antag_flag_overrideIf a role is to be considered another for the purpose of banning.
antag_preferenceIf set, will check this preference instead of antag_flag.
assignedList of players that were selected for this rule. This can be minds, or mobs.
base_probBase probability used in scaling. The higher it is, the more likely to scale. Kept as a var to allow for config editing._SendSignal(sigtype, list/arguments)
blocking_rulesIf a ruleset type which is in this list has been executed, then the ruleset will not be executed.
candidatesList of players that are being drafted for this rule
costThreat cost for this rule, this is decreased from the threat level when the rule is executed.
delayDelay for when execute will get called from the time of post_setup (roundstart) or process (midround/latejoin). +Make sure your ruleset works with execute being called during the game when using this, and that the clean_up proc reverts it properly in case of faliure.
enemy_rolesIf set, there needs to be a certain amount of players doing those roles (among the players who won't be drafted) for the rule to be drafted IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS.
exclusive_rolesIf set, rule will only accept candidates from those roles. If on a roundstart ruleset, requires the player to have the correct antag pref enabled and any of the possible roles enabled.
flagsA flag that determines how the ruleset is handled. Check __DEFINES/dynamic.dm for an explanation of the accepted values.
indice_popCalculated during acceptable(), used in scaling and team sizes.
maximum_playersThe maximum amount of players required for the rule to be considered. +Anything below zero or exactly zero is ignored.
minimum_playersThe minimum amount of players required for the rule to be considered.
minimum_required_ageThe required minimum account age for this ruleset.
nameFor admin logging and round end screen.
persistentIf set to TRUE, the rule won't be discarded after being executed, and dynamic will call rule_process() every time it ticks.
pop_per_requirementPop range per requirement. If zero defaults to dynamic's pop_per_requirement.
protected_rolesIf set, and config flag protect_roles_from_antagonist is false, then the rule will not pick players from these roles.
repeatableIf set to TRUE, dynamic will be able to draft this ruleset again later on. (doesn't apply for roundstart rules)
repeatable_weight_decreaseIf set higher than 0 decreases weight by itself causing the ruleset to appear less often the more it is repeated.
required_candidatesThe rule needs this many candidates (post-trimming) to be executed (example: Cult needs 4 players at round start)
required_enemiesIf enemy_roles was set, this is the amount of enemy job workers needed per threat_level range (0-10,10-20,etc) IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS.
requirementsRequirements are the threat level requirements per pop range. +With the default values, The rule will never get drafted below 10 threat level (aka: "peaceful extended"), and it requires a higher threat level at lower pops.
restricted_rolesIf set, rule will deny candidates from those roles always.
restricted_speciesSpecies that won't be considered as a valid target for the rule.
ruleset_categoryIn what categories is this ruleset allowed to run? Used by station traits
ruleset_lazy_templatesA list, or null, of templates that the ruleset depends on to function correctly
ruletypeFor admin logging and round end screen, do not change this unless making a new rule type.
scaled_timesHow many times a rule has scaled up upon getting picked.
scaling_costCost per level the rule scales up.
total_costUsed for the roundend report
weight0 -> 9, probability for this rule to be picked against other rules. If zero this will effectively disable the rule.

Procs

acceptableBy default, a rule is acceptable if it satisfies the threat level/population requirements. +If your rule has extra checks, such as counting security officers, do that in ready() instead
check_candidatesChecks if there are enough candidates to run, and logs otherwise
clean_upRuns from gamemode process() if ruleset fails to start, like delayed rulesets not getting valid candidates. +This one only handles refunding the threat, override in ruleset to clean up the rest.
executeCalled on post_setup on roundstart and when the rule executes on midround and latejoin. +Give your candidates or assignees equipment and antag datum here.
forget_startupRulesets can be reused, so when we're done setting one up we want to wipe its memory of the people it was selecting over +This isn't Destroy we aren't deleting it here, rulesets free when nothing holds a ref. This is just to prevent hung refs.
get_antag_capReturns what the antag cap with the given population is.
get_antag_cap_scaling_includedGets the 'final' antag cap for this ruleset, which is the base cap plus the scaled cap.
get_scaling_antag_capReturns how many more antags to add while scaling with a given population. +By default rulesets scale linearly, but you can override this to make them scale differently.
get_weightGets weight of the ruleset +Note that this decreases weight if repeatable is TRUE and repeatable_weight_decrease is higher than 0 +Note: If you don't want repeatable rulesets to decrease their weight use the weight variable directly
is_valid_populationReturns true if we have enough players to run
is_valid_threatSets the current threat indices and returns true if we're inside of them
load_templatesThis should always be called before ready is, to ensure that the ruleset can locate map/template based landmarks as needed
pre_executeCalled on pre_setup for roundstart rulesets. +Do everything you need to do before job is assigned here. +IMPORTANT: ASSIGN special_role HERE
readyHere you can perform any additional checks you want. (such as checking the map etc) +Remember that on roundstart no one knows what their job is at this point. +IMPORTANT: If ready() returns TRUE, that means pre_execute() or execute() should never fail!
round_resultSet mode_result and news report here. +Only called if ruleset is flagged as HIGH_IMPACT_RULESET
rule_processThis is called if persistent variable is true everytime SSTicker ticks.
scale_upWhen picking rulesets, if dynamic picks the same one multiple times, it will "scale up". +However, doing this blindly would result in lowpop rounds (think under 10 people) where over 80% of the crew is antags! +This function is here to ensure the antag ratio is kept under control while scaling up. +Returns how much threat to actually spend in the end.
trim_candidatesHere you can remove candidates that do not meet your requirements. +This means if their job is not correct or they have disconnected you can remove them from candidates here. +Usually this does not need to be changed unless you need some specific requirements from your candidates.

Var Details

antag_cap

Judges the amount of antagonists to apply, for both solo and teams. +Note that some antagonists (such as traitors, lings, heretics, etc) will add more based on how many times they've been scaled. +Written as a linear equation--ceil(x/denominator) + offset, or as a fixed constant. +If written as a linear equation, will be in the form of `list("denominator" = denominator, "offset" = offset).

antag_datum

The antagonist datum that is assigned to the mobs mind on ruleset execution.

antag_flag

Preferences flag such as ROLE_WIZARD that need to be turned on for players to be antag.

antag_flag_override

If a role is to be considered another for the purpose of banning.

antag_preference

If set, will check this preference instead of antag_flag.

assigned

List of players that were selected for this rule. This can be minds, or mobs.

base_prob

Base probability used in scaling. The higher it is, the more likely to scale. Kept as a var to allow for config editing._SendSignal(sigtype, list/arguments)

blocking_rules

If a ruleset type which is in this list has been executed, then the ruleset will not be executed.

candidates

List of players that are being drafted for this rule

cost

Threat cost for this rule, this is decreased from the threat level when the rule is executed.

delay

Delay for when execute will get called from the time of post_setup (roundstart) or process (midround/latejoin). +Make sure your ruleset works with execute being called during the game when using this, and that the clean_up proc reverts it properly in case of faliure.

enemy_roles

If set, there needs to be a certain amount of players doing those roles (among the players who won't be drafted) for the rule to be drafted IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS.

exclusive_roles

If set, rule will only accept candidates from those roles. If on a roundstart ruleset, requires the player to have the correct antag pref enabled and any of the possible roles enabled.

flags

A flag that determines how the ruleset is handled. Check __DEFINES/dynamic.dm for an explanation of the accepted values.

indice_pop

Calculated during acceptable(), used in scaling and team sizes.

maximum_players

The maximum amount of players required for the rule to be considered. +Anything below zero or exactly zero is ignored.

minimum_players

The minimum amount of players required for the rule to be considered.

minimum_required_age

The required minimum account age for this ruleset.

name

For admin logging and round end screen.

persistent

If set to TRUE, the rule won't be discarded after being executed, and dynamic will call rule_process() every time it ticks.

pop_per_requirement

Pop range per requirement. If zero defaults to dynamic's pop_per_requirement.

protected_roles

If set, and config flag protect_roles_from_antagonist is false, then the rule will not pick players from these roles.

repeatable

If set to TRUE, dynamic will be able to draft this ruleset again later on. (doesn't apply for roundstart rules)

repeatable_weight_decrease

If set higher than 0 decreases weight by itself causing the ruleset to appear less often the more it is repeated.

required_candidates

The rule needs this many candidates (post-trimming) to be executed (example: Cult needs 4 players at round start)

required_enemies

If enemy_roles was set, this is the amount of enemy job workers needed per threat_level range (0-10,10-20,etc) IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS.

requirements

Requirements are the threat level requirements per pop range. +With the default values, The rule will never get drafted below 10 threat level (aka: "peaceful extended"), and it requires a higher threat level at lower pops.

restricted_roles

If set, rule will deny candidates from those roles always.

restricted_species

Species that won't be considered as a valid target for the rule.

ruleset_category

In what categories is this ruleset allowed to run? Used by station traits

ruleset_lazy_templates

A list, or null, of templates that the ruleset depends on to function correctly

ruletype

For admin logging and round end screen, do not change this unless making a new rule type.

scaled_times

How many times a rule has scaled up upon getting picked.

scaling_cost

Cost per level the rule scales up.

total_cost

Used for the roundend report

weight

0 -> 9, probability for this rule to be picked against other rules. If zero this will effectively disable the rule.

Proc Details

acceptable

By default, a rule is acceptable if it satisfies the threat level/population requirements. +If your rule has extra checks, such as counting security officers, do that in ready() instead

check_candidates

Checks if there are enough candidates to run, and logs otherwise

clean_up

Runs from gamemode process() if ruleset fails to start, like delayed rulesets not getting valid candidates. +This one only handles refunding the threat, override in ruleset to clean up the rest.

execute

Called on post_setup on roundstart and when the rule executes on midround and latejoin. +Give your candidates or assignees equipment and antag datum here.

forget_startup

Rulesets can be reused, so when we're done setting one up we want to wipe its memory of the people it was selecting over +This isn't Destroy we aren't deleting it here, rulesets free when nothing holds a ref. This is just to prevent hung refs.

get_antag_cap

Returns what the antag cap with the given population is.

get_antag_cap_scaling_included

Gets the 'final' antag cap for this ruleset, which is the base cap plus the scaled cap.

get_scaling_antag_cap

Returns how many more antags to add while scaling with a given population. +By default rulesets scale linearly, but you can override this to make them scale differently.

get_weight

Gets weight of the ruleset +Note that this decreases weight if repeatable is TRUE and repeatable_weight_decrease is higher than 0 +Note: If you don't want repeatable rulesets to decrease their weight use the weight variable directly

is_valid_population

Returns true if we have enough players to run

is_valid_threat

Sets the current threat indices and returns true if we're inside of them

load_templates

This should always be called before ready is, to ensure that the ruleset can locate map/template based landmarks as needed

pre_execute

Called on pre_setup for roundstart rulesets. +Do everything you need to do before job is assigned here. +IMPORTANT: ASSIGN special_role HERE

ready

Here you can perform any additional checks you want. (such as checking the map etc) +Remember that on roundstart no one knows what their job is at this point. +IMPORTANT: If ready() returns TRUE, that means pre_execute() or execute() should never fail!

round_result

Set mode_result and news report here. +Only called if ruleset is flagged as HIGH_IMPACT_RULESET

rule_process

This is called if persistent variable is true everytime SSTicker ticks.

scale_up

When picking rulesets, if dynamic picks the same one multiple times, it will "scale up". +However, doing this blindly would result in lowpop rounds (think under 10 people) where over 80% of the crew is antags! +This function is here to ensure the antag ratio is kept under control while scaling up. +Returns how much threat to actually spend in the end.

trim_candidates

Here you can remove candidates that do not meet your requirements. +This means if their job is not correct or they have disconnected you can remove them from candidates here. +Usually this does not need to be changed unless you need some specific requirements from your candidates.

\ No newline at end of file diff --git a/datum/dynamic_ruleset/latejoin/provocateur.html b/datum/dynamic_ruleset/latejoin/provocateur.html new file mode 100644 index 0000000000000..122264ba1fb43 --- /dev/null +++ b/datum/dynamic_ruleset/latejoin/provocateur.html @@ -0,0 +1 @@ +/datum/dynamic_ruleset/latejoin/provocateur - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

provocateur

Procs

check_eligibleChecks for revhead loss conditions and other antag datums.

Proc Details

check_eligible

Checks for revhead loss conditions and other antag datums.

\ No newline at end of file diff --git a/datum/dynamic_ruleset/midround.html b/datum/dynamic_ruleset/midround.html new file mode 100644 index 0000000000000..ab2b5353aaa07 --- /dev/null +++ b/datum/dynamic_ruleset/midround.html @@ -0,0 +1 @@ +/datum/dynamic_ruleset/midround - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

midround

Midround Rulesets

Vars

abstract_typeAbstract root value
minimum_round_timeThe minimum round time before this ruleset will show up
required_typeWhat mob type the ruleset is restricted to.
restrict_ghost_rolesIf the ruleset should be restricted from ghost roles.

Var Details

abstract_type

Abstract root value

minimum_round_time

The minimum round time before this ruleset will show up

required_type

What mob type the ruleset is restricted to.

restrict_ghost_roles

If the ruleset should be restricted from ghost roles.

\ No newline at end of file diff --git a/datum/dynamic_ruleset/midround/from_ghosts.html b/datum/dynamic_ruleset/midround/from_ghosts.html new file mode 100644 index 0000000000000..cb5d1bfa00934 --- /dev/null +++ b/datum/dynamic_ruleset/midround/from_ghosts.html @@ -0,0 +1,5 @@ +/datum/dynamic_ruleset/midround/from_ghosts - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

from_ghosts

Vars

makeBodyWhether the ruleset should call generate_ruleset_body or not.
required_applicantsThe rule needs this many applicants to be properly executed.
signup_item_pathPath of an item to show up in ghost polls for applicants to sign up.

Procs

attempt_replacementFired when there are no valid candidates. Will spawn a sleeper agent or latejoin traitor.
finish_applicationsHere the accepted applications get generated bodies and their setup is finished. +Called by review_applications()
review_applicationsHere is where you can check if your ghost applicants are valid for the ruleset. +Called by send_applications().
send_applicationsThis sends a poll to ghosts if they want to be a ghost spawn from a ruleset.

Var Details

makeBody

Whether the ruleset should call generate_ruleset_body or not.

required_applicants

The rule needs this many applicants to be properly executed.

signup_item_path

Path of an item to show up in ghost polls for applicants to sign up.

Proc Details

attempt_replacement

Fired when there are no valid candidates. Will spawn a sleeper agent or latejoin traitor.

finish_applications

Here the accepted applications get generated bodies and their setup is finished. +Called by review_applications()

review_applications

Here is where you can check if your ghost applicants are valid for the ruleset. +Called by send_applications().

send_applications

This sends a poll to ghosts if they want to be a ghost spawn from a ruleset.

\ No newline at end of file diff --git a/datum/dynamic_ruleset/midround/from_ghosts/cortical_borer.html b/datum/dynamic_ruleset/midround/from_ghosts/cortical_borer.html new file mode 100644 index 0000000000000..2fef728132bc4 --- /dev/null +++ b/datum/dynamic_ruleset/midround/from_ghosts/cortical_borer.html @@ -0,0 +1 @@ +/datum/dynamic_ruleset/midround/from_ghosts/cortical_borer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cortical_borer

Vars

ventsList of on-station vents

Var Details

vents

List of on-station vents

\ No newline at end of file diff --git a/datum/dynamic_ruleset/midround/from_ghosts/paradox_clone.html b/datum/dynamic_ruleset/midround/from_ghosts/paradox_clone.html new file mode 100644 index 0000000000000..96c0f48dfb0ce --- /dev/null +++ b/datum/dynamic_ruleset/midround/from_ghosts/paradox_clone.html @@ -0,0 +1,3 @@ +/datum/dynamic_ruleset/midround/from_ghosts/paradox_clone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

paradox_clone

Midround Paradox Clone Ruleset (From Ghosts)

Procs

find_originalTrims through GLOB.player_list and finds a target +Returns a single human victim, if none is possible then returns null.
forget_startupplaces the antag can spawn

Proc Details

find_original

Trims through GLOB.player_list and finds a target +Returns a single human victim, if none is possible then returns null.

forget_startup

places the antag can spawn

\ No newline at end of file diff --git a/datum/dynamic_ruleset/midround/from_ghosts/voidwalker.html b/datum/dynamic_ruleset/midround/from_ghosts/voidwalker.html new file mode 100644 index 0000000000000..27b8746fa9554 --- /dev/null +++ b/datum/dynamic_ruleset/midround/from_ghosts/voidwalker.html @@ -0,0 +1 @@ +/datum/dynamic_ruleset/midround/from_ghosts/voidwalker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

voidwalker

Midround Voidwalker Ruleset (From Ghosts)

Vars

space_turfThe space turf we find in acceptable(), cached for ease

Var Details

space_turf

The space turf we find in acceptable(), cached for ease

\ No newline at end of file diff --git a/datum/dynamic_ruleset/roundstart.html b/datum/dynamic_ruleset/roundstart.html new file mode 100644 index 0000000000000..ca99a876e865c --- /dev/null +++ b/datum/dynamic_ruleset/roundstart.html @@ -0,0 +1,3 @@ +/datum/dynamic_ruleset/roundstart - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

roundstart

Procs

readyDo your checks if the ruleset is ready to be executed here. +Should ignore certain checks if forced is TRUE

Proc Details

ready

Do your checks if the ruleset is ready to be executed here. +Should ignore certain checks if forced is TRUE

\ No newline at end of file diff --git a/datum/dynamic_ruleset/roundstart/assault_operatives.html b/datum/dynamic_ruleset/roundstart/assault_operatives.html new file mode 100644 index 0000000000000..627cb221b3ed5 --- /dev/null +++ b/datum/dynamic_ruleset/roundstart/assault_operatives.html @@ -0,0 +1 @@ +/datum/dynamic_ruleset/roundstart/assault_operatives - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

assault_operatives

Procs

get_goldeneye_key_countReturns the required goldeneye keys for activation. This is to make sure we don't have an impossible to achieve goal. However, there has to be at least one key.

Proc Details

get_goldeneye_key_count

Returns the required goldeneye keys for activation. This is to make sure we don't have an impossible to achieve goal. However, there has to be at least one key.

\ No newline at end of file diff --git a/datum/dynamic_ruleset/roundstart/nuclear.html b/datum/dynamic_ruleset/roundstart/nuclear.html new file mode 100644 index 0000000000000..4ac32898342cc --- /dev/null +++ b/datum/dynamic_ruleset/roundstart/nuclear.html @@ -0,0 +1 @@ +/datum/dynamic_ruleset/roundstart/nuclear - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nuclear

Vars

job_typeThe job type to dress up our nuclear operative as.

Var Details

job_type

The job type to dress up our nuclear operative as.

\ No newline at end of file diff --git a/datum/dynamic_ruleset/roundstart/revs.html b/datum/dynamic_ruleset/roundstart/revs.html new file mode 100644 index 0000000000000..84396917ae0d4 --- /dev/null +++ b/datum/dynamic_ruleset/roundstart/revs.html @@ -0,0 +1 @@ +/datum/dynamic_ruleset/roundstart/revs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

revs

Procs

check_eligibleChecks for revhead loss conditions and other antag datums.

Proc Details

check_eligible

Checks for revhead loss conditions and other antag datums.

\ No newline at end of file diff --git a/datum/dynamic_ruleset/roundstart/spies.html b/datum/dynamic_ruleset/roundstart/spies.html new file mode 100644 index 0000000000000..8a3751b861a9e --- /dev/null +++ b/datum/dynamic_ruleset/roundstart/spies.html @@ -0,0 +1 @@ +/datum/dynamic_ruleset/roundstart/spies - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spies

Vars

fraction_per_scaleWhat fraction is added to the antag cap for each additional scale

Var Details

fraction_per_scale

What fraction is added to the antag cap for each additional scale

\ No newline at end of file diff --git a/datum/dynamic_snapshot.html b/datum/dynamic_snapshot.html new file mode 100644 index 0000000000000..1ff75eda68f1a --- /dev/null +++ b/datum/dynamic_snapshot.html @@ -0,0 +1,2 @@ +/datum/dynamic_snapshot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dynamic_snapshot

A "snapshot" of dynamic at an important point in time. +Exported to JSON in the dynamic.json log file.

Vars

alive_antagsThe number of alive antags
alive_playersThe number of alive players
dead_playersThe number of dead players
observersThe number of observers
remaining_threatThe remaining midround threat
ruleset_chosenThe rulesets chosen this snapshot
serializationThe cached serialization of this snapshot
timeThe world.time when the snapshot was taken
total_playersThe total number of players in the server

Procs

to_listConvert the snapshot to an associative list

Var Details

alive_antags

The number of alive antags

alive_players

The number of alive players

dead_players

The number of dead players

observers

The number of observers

remaining_threat

The remaining midround threat

ruleset_chosen

The rulesets chosen this snapshot

serialization

The cached serialization of this snapshot

time

The world.time when the snapshot was taken

total_players

The total number of players in the server

Proc Details

to_list

Convert the snapshot to an associative list

\ No newline at end of file diff --git a/datum/dynamic_snapshot_ruleset.html b/datum/dynamic_snapshot_ruleset.html new file mode 100644 index 0000000000000..caebea6de6106 --- /dev/null +++ b/datum/dynamic_snapshot_ruleset.html @@ -0,0 +1 @@ +/datum/dynamic_snapshot_ruleset - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dynamic_snapshot_ruleset

A ruleset chosen during a snapshot

Vars

assignedThe number of assigned antags
nameThe name of the ruleset chosen
scaledIf it is a round start ruleset, how much it was scaled by

Var Details

assigned

The number of assigned antags

name

The name of the ruleset chosen

scaled

If it is a round start ruleset, how much it was scaled by

\ No newline at end of file diff --git a/datum/effect_system/fluid_spread.html b/datum/effect_system/fluid_spread.html new file mode 100644 index 0000000000000..60b99f019c6cd --- /dev/null +++ b/datum/effect_system/fluid_spread.html @@ -0,0 +1,7 @@ +/datum/effect_system/fluid_spread - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fluid_spread

A factory which produces fluid groups.

Vars

amountThe amount of smoke to produce.

Procs

help_out_the_adminsHandles logging the beginning of a fluid flood.

Var Details

amount

The amount of smoke to produce.

Proc Details

help_out_the_admins

Handles logging the beginning of a fluid flood.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/effect_system/fluid_spread/foam.html b/datum/effect_system/fluid_spread/foam.html new file mode 100644 index 0000000000000..5054b6d3307ed --- /dev/null +++ b/datum/effect_system/fluid_spread/foam.html @@ -0,0 +1 @@ +/datum/effect_system/fluid_spread/foam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

foam

A factory for foam fluid floods.

Vars

chemholderA container for all of the chemicals we distribute through the foam.
reagent_scaleThe amount that
result_typeWhat type of thing the foam should leave behind when it dissipates.

Var Details

chemholder

A container for all of the chemicals we distribute through the foam.

reagent_scale

The amount that

result_type

What type of thing the foam should leave behind when it dissipates.

\ No newline at end of file diff --git a/datum/effect_system/fluid_spread/smoke/chem.html b/datum/effect_system/fluid_spread/smoke/chem.html new file mode 100644 index 0000000000000..8b7498a54aee3 --- /dev/null +++ b/datum/effect_system/fluid_spread/smoke/chem.html @@ -0,0 +1 @@ +/datum/effect_system/fluid_spread/smoke/chem - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chem

A factory which produces clouds of chemical bearing smoke.

Vars

chemholderEvil evil hack so we have something to "hold" our reagents

Var Details

chemholder

Evil evil hack so we have something to "hold" our reagents

\ No newline at end of file diff --git a/datum/effect_system/fluid_spread/smoke/freezing.html b/datum/effect_system/fluid_spread/smoke/freezing.html new file mode 100644 index 0000000000000..7c4306d3efc82 --- /dev/null +++ b/datum/effect_system/fluid_spread/smoke/freezing.html @@ -0,0 +1,9 @@ +/datum/effect_system/fluid_spread/smoke/freezing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

freezing

A factory which produces light blue, transparent smoke and a blast that chills every turf in the area.

Vars

blastThe radius in which to chill every open turf.
distcheckWhether to make sure each affected turf is actually within range before cooling it.
temperatureThe temperature to set the turfs air temperature to.
weldventsWhether to weld every vent and air scrubber in the affected area shut.

Procs

ChilledChills an open turf.

Var Details

blast

The radius in which to chill every open turf.

distcheck

Whether to make sure each affected turf is actually within range before cooling it.

temperature

The temperature to set the turfs air temperature to.

weldvents

Whether to weld every vent and air scrubber in the affected area shut.

Proc Details

Chilled

Chills an open turf.

+

Forces the air temperature to a specific value. +Transmutes all of the plasma in the air into nitrogen. +Extinguishes all fires and burning objects/mobs in the turf. +May freeze all vents and vent scrubbers shut.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/effect_system/reagents_explosion.html b/datum/effect_system/reagents_explosion.html new file mode 100644 index 0000000000000..857469ca575ae --- /dev/null +++ b/datum/effect_system/reagents_explosion.html @@ -0,0 +1 @@ +/datum/effect_system/reagents_explosion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

reagents_explosion

Procs

startStarts the explosion. The explosion_source is as part of logging and identifying the source of the explosion for logs.

Proc Details

start

Starts the explosion. The explosion_source is as part of logging and identifying the source of the explosion for logs.

\ No newline at end of file diff --git a/datum/eigenstate_manager.html b/datum/eigenstate_manager.html new file mode 100644 index 0000000000000..c061967944187 --- /dev/null +++ b/datum/eigenstate_manager.html @@ -0,0 +1 @@ +/datum/eigenstate_manager - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

eigenstate_manager

A singleton used to teleport people to a linked web of itterative entries. If one entry is deleted, the 2 around it will forge a link instead.

Vars

eigen_idUID to object reference
eigen_targetsThe list of objects that something is linked to indexed by UID
id_counterUnique id counter
spark_timeLimit the number of sparks created when teleporting multiple atoms to 1

Procs

create_new_linkCreates a new link of targets unique to their own id
remove_eigen_entryremoves an object reference from the master list
tool_interactPrevents tool use on the item
use_eigenlinked_atomFinds the object within the master list, then sends the thing to the object's location

Var Details

eigen_id

UID to object reference

eigen_targets

The list of objects that something is linked to indexed by UID

id_counter

Unique id counter

spark_time

Limit the number of sparks created when teleporting multiple atoms to 1

Proc Details

Creates a new link of targets unique to their own id

remove_eigen_entry

removes an object reference from the master list

tool_interact

Prevents tool use on the item

use_eigenlinked_atom

Finds the object within the master list, then sends the thing to the object's location

\ No newline at end of file diff --git a/datum/eigenstate_manager/eigenstates.html b/datum/eigenstate_manager/eigenstates.html new file mode 100644 index 0000000000000..3dd375dbc4937 --- /dev/null +++ b/datum/eigenstate_manager/eigenstates.html @@ -0,0 +1 @@ +/datum/eigenstate_manager/eigenstates - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

eigenstates

Procs

Destroyreverts everything back to start

Proc Details

Destroy

reverts everything back to start

\ No newline at end of file diff --git a/datum/element.html b/datum/element.html new file mode 100644 index 0000000000000..ac9501c8cc5bc --- /dev/null +++ b/datum/element.html @@ -0,0 +1,11 @@ +/datum/element - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

element

A holder for simple behaviour that can be attached to many different types

+

Only one element of each type is instanced during game init. +Otherwise acts basically like a lightweight component.

Vars

argument_hash_end_idxThe index of the last attach argument to consider for duplicate elements +Only used when element_flags contains ELEMENT_BESPOKE. +If not set, it'll copy every argument from argument_hash_start_idx onwards as normal
argument_hash_start_idxThe index of the first attach argument to consider for duplicate elements
element_flagsOption flags for element behaviour

Procs

AttachActivates the functionality defined by the element on the given target datum
DetachDeactivates the functionality defines by the element on the given datum

Var Details

argument_hash_end_idx

The index of the last attach argument to consider for duplicate elements +Only used when element_flags contains ELEMENT_BESPOKE. +If not set, it'll copy every argument from argument_hash_start_idx onwards as normal

argument_hash_start_idx

The index of the first attach argument to consider for duplicate elements

+

All arguments from this index onwards (1 based, until argument_hash_end_idx is reached, if set) +are hashed into the key to determine if this is a new unique element or one already exists

+

Is only used when flags contains ELEMENT_BESPOKE

+

This is infinity so you must explicitly set this

element_flags

Option flags for element behaviour

Proc Details

Attach

Activates the functionality defined by the element on the given target datum

Detach

Deactivates the functionality defines by the element on the given datum

\ No newline at end of file diff --git a/datum/element/ai_control_examine.html b/datum/element/ai_control_examine.html new file mode 100644 index 0000000000000..722164f663019 --- /dev/null +++ b/datum/element/ai_control_examine.html @@ -0,0 +1,4 @@ +/datum/element/ai_control_examine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ai_control_examine

ai control examine; which gives the pawn of the parent the noticable organs depending on AI status!

+

Used for monkeys to have PRIMAL eyes

Vars

noticable_organ_examinesThese organ slots on the parent's pawn, if filled, will get a special ai-specific examine +Apply the element to ORGAN_SLOT_BRAIN if you don't want it to be hideable behind clothing.

Procs

on_ai_controller_possessed_pawnSignal when the ai controller possesses a pawn

Var Details

noticable_organ_examines

These organ slots on the parent's pawn, if filled, will get a special ai-specific examine +Apply the element to ORGAN_SLOT_BRAIN if you don't want it to be hideable behind clothing.

Proc Details

on_ai_controller_possessed_pawn

Signal when the ai controller possesses a pawn

\ No newline at end of file diff --git a/datum/element/ai_flee_while_injured.html b/datum/element/ai_flee_while_injured.html new file mode 100644 index 0000000000000..f47d59ee22a35 --- /dev/null +++ b/datum/element/ai_flee_while_injured.html @@ -0,0 +1 @@ +/datum/element/ai_flee_while_injured - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ai_flee_while_injured

Attached to a mob with an AI controller, simply sets a flag on whether or not to run away based on current health values.

Vars

start_fleeing_belowHealth value to start fleeing if at or below
stop_fleeing_atHealth value to end fleeing if at or above

Procs

on_health_changedWhen the mob's health changes, check what the blackboard state should be

Var Details

start_fleeing_below

Health value to start fleeing if at or below

stop_fleeing_at

Health value to end fleeing if at or above

Proc Details

on_health_changed

When the mob's health changes, check what the blackboard state should be

\ No newline at end of file diff --git a/datum/element/ai_held_item.html b/datum/element/ai_held_item.html new file mode 100644 index 0000000000000..5eaad34cf9e37 --- /dev/null +++ b/datum/element/ai_held_item.html @@ -0,0 +1 @@ +/datum/element/ai_held_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

AI Held Item Element

Manages holding an item for a mob which doesn't have hands but needs to for AI purposes.

Procs

atom_exitedIf our held item is removed from our atom then take it off the blackboard
get_held_itemReturns the item held in a mob's blackboard, if it has one
on_clickSomeone's interacting with us by hand, if we have an item and like them we'll hand it over
on_deathIf we died, drop anything we were carrying
on_examinedReport that we're holding an item.

Proc Details

atom_exited

If our held item is removed from our atom then take it off the blackboard

get_held_item

Returns the item held in a mob's blackboard, if it has one

on_click

Someone's interacting with us by hand, if we have an item and like them we'll hand it over

on_death

If we died, drop anything we were carrying

on_examined

Report that we're holding an item.

\ No newline at end of file diff --git a/datum/element/ai_retaliate.html b/datum/element/ai_retaliate.html new file mode 100644 index 0000000000000..c3ed1ad4ea109 --- /dev/null +++ b/datum/element/ai_retaliate.html @@ -0,0 +1,2 @@ +/datum/element/ai_retaliate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ai_retaliate

Attached to a mob with an AI controller, passes things which have damaged it to a blackboard. +The AI controller is responsible for doing anything with that information.

Procs

on_attackedAdd an attacking atom to a blackboard list of things which attacked us

Proc Details

on_attacked

Add an attacking atom to a blackboard list of things which attacked us

\ No newline at end of file diff --git a/datum/element/ai_swap_combat_mode.html b/datum/element/ai_swap_combat_mode.html new file mode 100644 index 0000000000000..9eb9628236b20 --- /dev/null +++ b/datum/element/ai_swap_combat_mode.html @@ -0,0 +1 @@ +/datum/element/ai_swap_combat_mode - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ai_swap_combat_mode

Attached to a mob with an AI controller, updates combat mode when the affected mob acquires or loses targets

Vars

battle_end_barksA one liner said when we exit combat mode
battle_start_barksThe message we yell when we enter combat mode
speech_chanceThe chance to yell the above lines
target_keyTarget key

Procs

on_target_clearedWhen the mob loses its target, and it was not already out of combat mode, exit it
on_target_gainedWhen the mob gains a target, and it was not already in combat mode, enter it
speak_barkSays a quip, if the RNG allows it
swap_modeIf the combat mode would be changed into a different state, updates it and returns TRUE, otherwise returns FALSE

Var Details

battle_end_barks

A one liner said when we exit combat mode

battle_start_barks

The message we yell when we enter combat mode

speech_chance

The chance to yell the above lines

target_key

Target key

Proc Details

on_target_cleared

When the mob loses its target, and it was not already out of combat mode, exit it

on_target_gained

When the mob gains a target, and it was not already in combat mode, enter it

speak_bark

Says a quip, if the RNG allows it

swap_mode

If the combat mode would be changed into a different state, updates it and returns TRUE, otherwise returns FALSE

\ No newline at end of file diff --git a/datum/element/ai_target_damagesource.html b/datum/element/ai_target_damagesource.html new file mode 100644 index 0000000000000..1473c66af006a --- /dev/null +++ b/datum/element/ai_target_damagesource.html @@ -0,0 +1,2 @@ +/datum/element/ai_target_damagesource - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ai_target_damagesource

Attached to a mob with an AI controller, sets the blackboard current target to the most recent thing to attack this mob. +The AI controller is responsible for doing anything with that information.

Procs

on_attackedAdd the most recent target that attacked us to our current target blackboard.

Proc Details

on_attacked

Add the most recent target that attacked us to our current target blackboard.

\ No newline at end of file diff --git a/datum/element/airbag.html b/datum/element/airbag.html new file mode 100644 index 0000000000000..34cf42a5bde4e --- /dev/null +++ b/datum/element/airbag.html @@ -0,0 +1,2 @@ +/datum/element/airbag - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

airbag

Airbag Element

+

Basically a fancy create on destroy.

Vars

airbag_typeThe type we spawn when our parent is destroyed
disarmed_typeThe type we spawn when we are disarmed.

Var Details

airbag_type

The type we spawn when our parent is destroyed

disarmed_type

The type we spawn when we are disarmed.

\ No newline at end of file diff --git a/datum/element/atmos_requirements.html b/datum/element/atmos_requirements.html new file mode 100644 index 0000000000000..fe3240609b76a --- /dev/null +++ b/datum/element/atmos_requirements.html @@ -0,0 +1,2 @@ +/datum/element/atmos_requirements - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

atmos_requirements

atmos requirements element!

+

bespoke element that deals damage to the attached mob when the atmos requirements aren't satisfied

Vars

atmos_requirementsAn assoc list of "what atmos does this mob require to survive in".
unsuitable_atmos_damageHow much (brute) damage we take from being in unsuitable atmos.

Procs

check_safe_environmentEnsures that maploaded mobs are in a safe environment. Unit test stuff.
on_non_stasis_lifesignal called by the living mob's life() while non stasis

Var Details

atmos_requirements

An assoc list of "what atmos does this mob require to survive in".

unsuitable_atmos_damage

How much (brute) damage we take from being in unsuitable atmos.

Proc Details

check_safe_environment

Ensures that maploaded mobs are in a safe environment. Unit test stuff.

on_non_stasis_life

signal called by the living mob's life() while non stasis

\ No newline at end of file diff --git a/datum/element/attack_equip.html b/datum/element/attack_equip.html new file mode 100644 index 0000000000000..f979088ab20af --- /dev/null +++ b/datum/element/attack_equip.html @@ -0,0 +1,2 @@ +/datum/element/attack_equip - /tg/ Station 13
/tg/ Station 13 - Modules - Types

attack_equip

Attached to an item, when the item is used to attack a human, and the attacker isn't in combat mode, attempts to equip the item to the target after the normal delay.

+

Uses the compare_zone_to_item_slot() proc to see if the attacker is targeting a valid slot.

\ No newline at end of file diff --git a/datum/element/attack_zone_randomiser.html b/datum/element/attack_zone_randomiser.html new file mode 100644 index 0000000000000..8667cc1325528 --- /dev/null +++ b/datum/element/attack_zone_randomiser.html @@ -0,0 +1 @@ +/datum/element/attack_zone_randomiser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

attack_zone_randomiser

Pick a random attack zone before you attack something

Vars

valid_attack_zonesList of attack zones you can select, should be a subset of GLOB.all_body_zones

Procs

randomiseIf we're attacking a carbon, pick a random defence zone

Var Details

valid_attack_zones

List of attack zones you can select, should be a subset of GLOB.all_body_zones

Proc Details

randomise

If we're attacking a carbon, pick a random defence zone

\ No newline at end of file diff --git a/datum/element/backblast.html b/datum/element/backblast.html new file mode 100644 index 0000000000000..ff20290b5a2b8 --- /dev/null +++ b/datum/element/backblast.html @@ -0,0 +1,2 @@ +/datum/element/backblast - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

backblast

When attached to a gun and the gun is successfully fired, this element creates a "backblast", like you'd find in a rocket launcher or recoilless rifle

+

The backblast is simulated by a directional explosion 180 degrees from the direction of the fired projectile.

Vars

blast_angleWhat angle do we want the backblast to cover
dev_rangeDevasatation range of the explosion
flame_rangeFlame range of the explosion
heavy_rangeHGeavy damage range of the explosion
light_rangeLight damage range of the explosion

Procs

pewFor firing an actual backblast pellet

Var Details

blast_angle

What angle do we want the backblast to cover

dev_range

Devasatation range of the explosion

flame_range

Flame range of the explosion

heavy_range

HGeavy damage range of the explosion

light_range

Light damage range of the explosion

Proc Details

pew

For firing an actual backblast pellet

\ No newline at end of file diff --git a/datum/element/bane.html b/datum/element/bane.html new file mode 100644 index 0000000000000..203309f0f4885 --- /dev/null +++ b/datum/element/bane.html @@ -0,0 +1,6 @@ +/datum/element/bane - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bane

Deals extra damage to mobs of a certain type, species, or biotype. +This doesn't directly modify the normal damage of the weapon, instead it applies its own damage separately ON TOP of normal damage +ie. a sword that does 10 damage with a bane element attached that has a 0.5 damage_multiplier will do: +10 damage from the swords normal attack + 5 damage (50%) from the bane element

Vars

added_damageAdded after the above.
damage_multipliermultiplier of the extra damage based on the force of the item.
mob_biotypesif we want it to only affect a certain mob biotype
requires_combat_modeIf it requires combat mode on to deal the extra damage or not.
target_typecan be a mob or a species.

Procs

check_biotype_pathChecks typepaths and the mob's biotype, returning TRUE if correct and FALSE if wrong. +Additionally checks if combat mode is required, and if so whether it's enabled or not.

Var Details

added_damage

Added after the above.

damage_multiplier

multiplier of the extra damage based on the force of the item.

mob_biotypes

if we want it to only affect a certain mob biotype

requires_combat_mode

If it requires combat mode on to deal the extra damage or not.

target_type

can be a mob or a species.

Proc Details

check_biotype_path

Checks typepaths and the mob's biotype, returning TRUE if correct and FALSE if wrong. +Additionally checks if combat mode is required, and if so whether it's enabled or not.

\ No newline at end of file diff --git a/datum/element/basic_eating.html b/datum/element/basic_eating.html new file mode 100644 index 0000000000000..f9387fa24aab7 --- /dev/null +++ b/datum/element/basic_eating.html @@ -0,0 +1,2 @@ +/datum/element/basic_eating - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

basic_eating

basic eating element!

+

Small behavior for non-carbons to eat certain stuff they interact with

Vars

damage_amountAmount to hurt
damage_typeType of hurt to apply
drinkingWhether to flavor it as drinking rather than eating.
food_typesTypes the animal can eat.
heal_amtAmount to heal

Var Details

damage_amount

Amount to hurt

damage_type

Type of hurt to apply

drinking

Whether to flavor it as drinking rather than eating.

food_types

Types the animal can eat.

heal_amt

Amount to heal

\ No newline at end of file diff --git a/datum/element/basic_health_examine.html b/datum/element/basic_health_examine.html new file mode 100644 index 0000000000000..70fee17091156 --- /dev/null +++ b/datum/element/basic_health_examine.html @@ -0,0 +1 @@ +/datum/element/basic_health_examine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

basic_health_examine

A simple element for basic mobs that prints out a custom damaged state message

Vars

heavy_damage_messageHeavy amount of damage
heavy_thresholdHeavy damage threshold percentage
light_damage_messageLight amount of damage

Var Details

heavy_damage_message

Heavy amount of damage

heavy_threshold

Heavy damage threshold percentage

light_damage_message

Light amount of damage

\ No newline at end of file diff --git a/datum/element/beauty.html b/datum/element/beauty.html new file mode 100644 index 0000000000000..b8903fee7aab3 --- /dev/null +++ b/datum/element/beauty.html @@ -0,0 +1,5 @@ +/datum/element/beauty - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

beauty

Beauty element. It makes the indoor area the parent is in prettier or uglier depending on the beauty var value. +Clean and well decorated areas lead to positive moodlets for passerbies; +Shabbier, dirtier ones lead to negative moodlets EXCLUSIVE to characters with the snob quirk.

Vars

beauty_counterAssoc list of atoms as keys and number of time the same element instance has been attached to them as assoc value. +So things don't get odd with same-valued yet dissimilar beauty modifiers being added to the same atom.

Var Details

beauty_counter

Assoc list of atoms as keys and number of time the same element instance has been attached to them as assoc value. +So things don't get odd with same-valued yet dissimilar beauty modifiers being added to the same atom.

\ No newline at end of file diff --git a/datum/element/bed_tuckable.html b/datum/element/bed_tuckable.html new file mode 100644 index 0000000000000..6650fa79c040a --- /dev/null +++ b/datum/element/bed_tuckable.html @@ -0,0 +1,5 @@ +/datum/element/bed_tuckable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bed_tuckable

Tucking element, for things that can be tucked into bed.

Vars

rotation_degreeour rotation degree - how many degrees we need to turn the item to get to the left/right side
starting_angleour starting angle for the item
x_offsetour pixel_x offset - how much the item moves x when in bed (+x is closer to the pillow)
y_offsetour pixel_y offset - how much the item move y when in bed (-y is closer to the middle)

Procs

tuck_into_bedTuck our object into bed.
untuckIf we rotate our object, then we need to un-rotate it when it's picked up

Var Details

rotation_degree

our rotation degree - how many degrees we need to turn the item to get to the left/right side

starting_angle

our starting angle for the item

x_offset

our pixel_x offset - how much the item moves x when in bed (+x is closer to the pillow)

y_offset

our pixel_y offset - how much the item move y when in bed (-y is closer to the middle)

Proc Details

tuck_into_bed

Tuck our object into bed.

+

tucked - the object being tucked +target_bed - the bed we're tucking them into +tucker - the guy doing the tucking

untuck

If we rotate our object, then we need to un-rotate it when it's picked up

+

tucked - the object that is tucked

\ No newline at end of file diff --git a/datum/element/befriend_petting.html b/datum/element/befriend_petting.html new file mode 100644 index 0000000000000..b9a2ecb317185 --- /dev/null +++ b/datum/element/befriend_petting.html @@ -0,0 +1 @@ +/datum/element/befriend_petting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Befriend Petting

Element which makes a mob befriend you if you pet it enough.

Vars

befriend_chanceChance of success per interaction.
tamed_reactionMessage to print if we gain a friend. String %SOURCE% and %TARGET% are replaced by names if present.

Procs

on_clickIf it's a nice touch make friends

Var Details

befriend_chance

Chance of success per interaction.

tamed_reaction

Message to print if we gain a friend. String %SOURCE% and %TARGET% are replaced by names if present.

Proc Details

on_click

If it's a nice touch make friends

\ No newline at end of file diff --git a/datum/element/block_turf_fingerprints.html b/datum/element/block_turf_fingerprints.html new file mode 100644 index 0000000000000..445e1374649e1 --- /dev/null +++ b/datum/element/block_turf_fingerprints.html @@ -0,0 +1,2 @@ +/datum/element/block_turf_fingerprints - /tg/ Station 13
/tg/ Station 13 - Modules - Types

block_turf_fingerprints

block_turf_fingerprints

+

Attach to a movable, prevents mobs from leaving fingerprints on the turf below it

\ No newline at end of file diff --git a/datum/element/blocks_explosives.html b/datum/element/blocks_explosives.html new file mode 100644 index 0000000000000..1c334e5bbd626 --- /dev/null +++ b/datum/element/blocks_explosives.html @@ -0,0 +1,2 @@ +/datum/element/blocks_explosives - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

blocks_explosives

Apply this element to a movable atom when you want it to block explosions +It will mirror the blocking down to that movable's turf, keeping explosion work cheap

Procs

block_locApplies a block amount to a turf. proc for convenince
blocker_movedEssentially just blocking_changed except we remove from the old loc, and add to the new one
blocking_changedCall this when our blocking well, changes. we'll update our turf(s) with the details
unblock_locRemoves a block amount from a turf. proc for convenince

Proc Details

block_loc

Applies a block amount to a turf. proc for convenince

blocker_moved

Essentially just blocking_changed except we remove from the old loc, and add to the new one

blocking_changed

Call this when our blocking well, changes. we'll update our turf(s) with the details

unblock_loc

Removes a block amount from a turf. proc for convenince

\ No newline at end of file diff --git a/datum/element/body_temp_sensitive.html b/datum/element/body_temp_sensitive.html new file mode 100644 index 0000000000000..fdadb67bfeaab --- /dev/null +++ b/datum/element/body_temp_sensitive.html @@ -0,0 +1 @@ +/datum/element/body_temp_sensitive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

body_temp_sensitive

When attached to a basic mob, it gives it the ability to be hurt by cold/hot body temperatures

Vars

cold_damageDamage when below min temp
heat_damageDamage when above max temp
max_body_tempMax body temp
min_body_tempMin body temp

Procs

check_safe_environmentEnsures that maploaded mobs are in a safe environment. Unit test stuff.

Var Details

cold_damage

Damage when below min temp

heat_damage

Damage when above max temp

max_body_temp

Max body temp

min_body_temp

Min body temp

Proc Details

check_safe_environment

Ensures that maploaded mobs are in a safe environment. Unit test stuff.

\ No newline at end of file diff --git a/datum/element/bombable_turf.html b/datum/element/bombable_turf.html new file mode 100644 index 0000000000000..8268785167bc4 --- /dev/null +++ b/datum/element/bombable_turf.html @@ -0,0 +1,3 @@ +/datum/element/bombable_turf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bombable_turf

Apply this to a turf (usually a wall) and it will be destroyed instantly by any explosion. +Most walls can already be destroyed by explosions so this is largely for usually indestructible ones. +For applying it in a map editor, use /obj/effect/mapping_helpers/bombable_wall

Procs

detonateIf we get blowed up, move to the next turf
on_examinedShow a little extra on examine
on_update_overlaysShow a little crack on here
turf_changedIf this turf becomes something else we either just went off or regardless don't want this any more

Proc Details

detonate

If we get blowed up, move to the next turf

on_examined

Show a little extra on examine

on_update_overlays

Show a little crack on here

turf_changed

If this turf becomes something else we either just went off or regardless don't want this any more

\ No newline at end of file diff --git a/datum/element/bonus_damage.html b/datum/element/bonus_damage.html new file mode 100644 index 0000000000000..5e5c483116318 --- /dev/null +++ b/datum/element/bonus_damage.html @@ -0,0 +1 @@ +/datum/element/bonus_damage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bonus_damage

Attached to a mob that will then deal bonus damage to a victim with low, or potentially in the future, high health.

Vars

brute_damage_amountThe amount of brute damage we will deal
damage_percentageAt which percentage our target has to be for us to deal bonus damage

Procs

attack_targetAdd potential bonus damage to the person we attacked

Var Details

brute_damage_amount

The amount of brute damage we will deal

damage_percentage

At which percentage our target has to be for us to deal bonus damage

Proc Details

attack_target

Add potential bonus damage to the person we attacked

\ No newline at end of file diff --git a/datum/element/bump_click.html b/datum/element/bump_click.html new file mode 100644 index 0000000000000..486fbe3b3a743 --- /dev/null +++ b/datum/element/bump_click.html @@ -0,0 +1,2 @@ +/datum/element/bump_click - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bump_click

Bump click bespoke element

+

Simulates a click on the attached atom when it's bumped, if the bumper and their active object meet certain criteria.

Vars

allow_anyClick with any item?
allow_combatClick with combat mode on?
allow_unarmedClick with an empty active hand?
tool_behavioursTool behaviours to check for on the bumper's active held item before clicking the attached atom with it.
tool_typesTypes (and their subtypes) of item to look for in the bumper's active hand before clicking the attached atom.

Var Details

allow_any

Click with any item?

allow_combat

Click with combat mode on?

allow_unarmed

Click with an empty active hand?

tool_behaviours

Tool behaviours to check for on the bumper's active held item before clicking the attached atom with it.

tool_types

Types (and their subtypes) of item to look for in the bumper's active hand before clicking the attached atom.

\ No newline at end of file diff --git a/datum/element/can_barricade.html b/datum/element/can_barricade.html new file mode 100644 index 0000000000000..ef9c1d8996270 --- /dev/null +++ b/datum/element/can_barricade.html @@ -0,0 +1 @@ +/datum/element/can_barricade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

can_barricade

Procs

barricadewhen our element gets attacked by wooden planks it creates a barricade

Proc Details

barricade

when our element gets attacked by wooden planks it creates a barricade

\ No newline at end of file diff --git a/datum/element/can_shatter.html b/datum/element/can_shatter.html new file mode 100644 index 0000000000000..f7876bf6a54e3 --- /dev/null +++ b/datum/element/can_shatter.html @@ -0,0 +1,2 @@ +/datum/element/can_shatter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

can_shatter

When attached to something, will make that thing shatter into shards on throw impact or z level falling +Or even when used as a weapon if the 'shatters_as_weapon' arg is TRUE

Vars

number_of_shardsHow many shards total are made when the thing we're attached to shatters
shard_typeWhat type of item is spawned as a 'shard' once the shattering happens
shattering_soundWhat sound plays when the thing we're attached to shatters

Procs

on_throw_impactTells the parent to shatter if we are thrown and impact something
on_z_impactTells the parent to shatter if we impact a lower zlevel
shatterHandles the actual shattering part, throwing shards of whatever is defined on the component everywhere

Var Details

number_of_shards

How many shards total are made when the thing we're attached to shatters

shard_type

What type of item is spawned as a 'shard' once the shattering happens

shattering_sound

What sound plays when the thing we're attached to shatters

Proc Details

on_throw_impact

Tells the parent to shatter if we are thrown and impact something

on_z_impact

Tells the parent to shatter if we impact a lower zlevel

shatter

Handles the actual shattering part, throwing shards of whatever is defined on the component everywhere

\ No newline at end of file diff --git a/datum/element/change_force_on_death.html b/datum/element/change_force_on_death.html new file mode 100644 index 0000000000000..f34c310c34124 --- /dev/null +++ b/datum/element/change_force_on_death.html @@ -0,0 +1 @@ +/datum/element/change_force_on_death - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

change_force_on_death

Element to change a mob's move forces on death and reset them on living

Vars

move_forceOur move force
move_resistour resist move force
pull_forcehow much we resist pulling

Var Details

move_force

Our move force

move_resist

our resist move force

pull_force

how much we resist pulling

\ No newline at end of file diff --git a/datum/element/chemical_transfer.html b/datum/element/chemical_transfer.html new file mode 100644 index 0000000000000..a7cf6fcf1fbaf --- /dev/null +++ b/datum/element/chemical_transfer.html @@ -0,0 +1,5 @@ +/datum/element/chemical_transfer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chemical_transfer

chemical transfer element!

+

Bespoke element that, on a certain chance to proc, transfers all chemicals from the person attacking to the victim being attacked +with whatever item has this element.

+

attacker_message uses %VICTIM as whomever is getting attacked. +victim_message uses %ATTACKER for the same.

Vars

attacker_messagemessage attacker gets when the chemical transfer procs
transfer_probchance for the chemical transfer to proc.
victim_messagemessage victim gets when the chemical transfer procs

Procs

on_attacksignal called on parent being used to attack a victim
on_examinesignal called on parent being examined

Var Details

attacker_message

message attacker gets when the chemical transfer procs

transfer_prob

chance for the chemical transfer to proc.

victim_message

message victim gets when the chemical transfer procs

Proc Details

on_attack

signal called on parent being used to attack a victim

on_examine

signal called on parent being examined

\ No newline at end of file diff --git a/datum/element/chewable.html b/datum/element/chewable.html new file mode 100644 index 0000000000000..7cb92dac249bb --- /dev/null +++ b/datum/element/chewable.html @@ -0,0 +1,4 @@ +/datum/element/chewable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chewable

Anything with this element will provide the reagents inside the +item to the user when it is equipped.

Vars

metabolization_amountThe amount to metabolize per second
processingThe objects with this element that are currently being processed
slots_to_checkA bitfield of valid slots. If this is not provided, then it will +use the slot_flags of the item.

Var Details

metabolization_amount

The amount to metabolize per second

processing

The objects with this element that are currently being processed

slots_to_check

A bitfield of valid slots. If this is not provided, then it will +use the slot_flags of the item.

\ No newline at end of file diff --git a/datum/element/cliff_walking.html b/datum/element/cliff_walking.html new file mode 100644 index 0000000000000..f7cd4e1c85b05 --- /dev/null +++ b/datum/element/cliff_walking.html @@ -0,0 +1 @@ +/datum/element/cliff_walking - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cliff_walking

Lets a mob walk cliffs and keeps track of if they're alive or not to add/remove the trait

Procs

update_cliff_walkingDo some checks to see if we should walk the cliffs

Proc Details

update_cliff_walking

Do some checks to see if we should walk the cliffs

\ No newline at end of file diff --git a/datum/element/climbable.html b/datum/element/climbable.html new file mode 100644 index 0000000000000..8548399fd7457 --- /dev/null +++ b/datum/element/climbable.html @@ -0,0 +1 @@ +/datum/element/climbable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

climbable

Vars

climb_stunStun duration for when you get onto the object
climb_timeTime it takes to climb onto the object
current_climbersAssoc list of object being climbed on - climbers. This allows us to check who needs to be shoved off a climbable object when its clicked on.

Procs

mousedrop_receiveHandles climbing onto the atom when you click-drag

Var Details

climb_stun

Stun duration for when you get onto the object

climb_time

Time it takes to climb onto the object

current_climbers

Assoc list of object being climbed on - climbers. This allows us to check who needs to be shoved off a climbable object when its clicked on.

Proc Details

mousedrop_receive

Handles climbing onto the atom when you click-drag

\ No newline at end of file diff --git a/datum/element/clockwork_description.html b/datum/element/clockwork_description.html new file mode 100644 index 0000000000000..c67e8935e471b --- /dev/null +++ b/datum/element/clockwork_description.html @@ -0,0 +1,7 @@ +/datum/element/clockwork_description - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

clockwork_description

Vars

text_to_addText to add to the description of the parent

Procs

add_examineThis proc is called when the user examines an object with the associated element. This adds the text to the description in a new line, wrapped with span_brass()

Var Details

text_to_add

Text to add to the description of the parent

Proc Details

add_examine

This proc is called when the user examines an object with the associated element. This adds the text to the description in a new line, wrapped with span_brass()

+

Arguments: +* source - Object being examined, cast into an item variable

+
\ No newline at end of file diff --git a/datum/element/clockwork_pickup.html b/datum/element/clockwork_pickup.html new file mode 100644 index 0000000000000..e26b3bc290bd3 --- /dev/null +++ b/datum/element/clockwork_pickup.html @@ -0,0 +1,10 @@ +/datum/element/clockwork_pickup - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

clockwork_pickup

Vars

equip_slotsWhat slots will attempt to shock the equpper

Procs

attempt_shockThis proc is called when the user picks or equips up an item with the associated element. This will shock them if they are not a clock cultist, and moreso if they are a blood cultist.

Var Details

equip_slots

What slots will attempt to shock the equpper

Proc Details

attempt_shock

This proc is called when the user picks or equips up an item with the associated element. This will shock them if they are not a clock cultist, and moreso if they are a blood cultist.

+

Arguments: +* source - The item being picked up

+
\ No newline at end of file diff --git a/datum/element/clockwork_structure_info.html b/datum/element/clockwork_structure_info.html new file mode 100644 index 0000000000000..b8d0887d44531 --- /dev/null +++ b/datum/element/clockwork_structure_info.html @@ -0,0 +1,16 @@ +/datum/element/clockwork_structure_info - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

clockwork_structure_info

Procs

on_examineThis proc is called when a mob examines the structure
print_infoThis proc is called when the user hits the target with an item, which checks for it being a clockwork slab.

Proc Details

on_examine

This proc is called when a mob examines the structure

+

Arguments: +* source - The structure that was examined +* user - The one who attacked the structure

+

print_info

This proc is called when the user hits the target with an item, which checks for it being a clockwork slab.

+

Arguments: +* source - The structure that was attacked

+
\ No newline at end of file diff --git a/datum/element/connect_loc.html b/datum/element/connect_loc.html new file mode 100644 index 0000000000000..7a8a1c2f5001b --- /dev/null +++ b/datum/element/connect_loc.html @@ -0,0 +1,2 @@ +/datum/element/connect_loc - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

connect_loc

This element hooks a signal onto the loc the current object is on. +When the object moves, it will unhook the signal and rehook it to the new object.

Vars

connectionsAn assoc list of signal -> procpath to register to the loc this object is on.

Var Details

connections

An assoc list of signal -> procpath to register to the loc this object is on.

\ No newline at end of file diff --git a/datum/element/consumable_mob.html b/datum/element/consumable_mob.html new file mode 100644 index 0000000000000..1a790bfc91095 --- /dev/null +++ b/datum/element/consumable_mob.html @@ -0,0 +1 @@ +/datum/element/consumable_mob - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

consumable_mob

element for mobs that can be consumed!

Vars

reagents_listreagents to give our consumer

Var Details

reagents_list

reagents to give our consumer

\ No newline at end of file diff --git a/datum/element/content_barfer.html b/datum/element/content_barfer.html new file mode 100644 index 0000000000000..ce0c4529467ac --- /dev/null +++ b/datum/element/content_barfer.html @@ -0,0 +1,2 @@ +/datum/element/content_barfer - /tg/ Station 13
/tg/ Station 13 - Modules - Types

content_barfer

Content Barfer; which expels the contents of a mob when it dies, or is transformed

+

Used for morphs and bileworms!

\ No newline at end of file diff --git a/datum/element/contextual_screentip_bare_hands.html b/datum/element/contextual_screentip_bare_hands.html new file mode 100644 index 0000000000000..c45f672d3f974 --- /dev/null +++ b/datum/element/contextual_screentip_bare_hands.html @@ -0,0 +1,3 @@ +/datum/element/contextual_screentip_bare_hands - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

contextual_screentip_bare_hands

Apply basic contextual screentips when the user hovers over this item with an empty hand. +A "Type B" interaction. +This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.

Vars

lmb_textIf set, the text to show for LMB
lmb_text_combat_modeIf set, the text to show for LMB when in combat mode. Otherwise, defaults to lmb_text.
rmb_textIf set, the text to show for RMB
rmb_text_combat_modeIf set, the text to show for RMB when in combat mode. Otherwise, defaults to rmb_text.

Var Details

lmb_text

If set, the text to show for LMB

lmb_text_combat_mode

If set, the text to show for LMB when in combat mode. Otherwise, defaults to lmb_text.

rmb_text

If set, the text to show for RMB

rmb_text_combat_mode

If set, the text to show for RMB when in combat mode. Otherwise, defaults to rmb_text.

\ No newline at end of file diff --git a/datum/element/contextual_screentip_item_typechecks.html b/datum/element/contextual_screentip_item_typechecks.html new file mode 100644 index 0000000000000..dbedd826169d6 --- /dev/null +++ b/datum/element/contextual_screentip_item_typechecks.html @@ -0,0 +1,3 @@ +/datum/element/contextual_screentip_item_typechecks - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

contextual_screentip_item_typechecks

Apply basic contextual screentips when the user hovers over this item with a provided item. +A "Type B" interaction. +This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.

Vars

item_paths_to_contextsMap of item paths to contexts to usages

Var Details

item_paths_to_contexts

Map of item paths to contexts to usages

\ No newline at end of file diff --git a/datum/element/contextual_screentip_mob_typechecks.html b/datum/element/contextual_screentip_mob_typechecks.html new file mode 100644 index 0000000000000..fd49ef73efaf6 --- /dev/null +++ b/datum/element/contextual_screentip_mob_typechecks.html @@ -0,0 +1,3 @@ +/datum/element/contextual_screentip_mob_typechecks - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

contextual_screentip_mob_typechecks

Apply basic contextual screentips when a user of a specific typepath hovers over us. +A "Type B" interaction. +This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.

Vars

mob_paths_to_contextsMap of item paths to contexts to usages

Var Details

mob_paths_to_contexts

Map of item paths to contexts to usages

\ No newline at end of file diff --git a/datum/element/contextual_screentip_sharpness.html b/datum/element/contextual_screentip_sharpness.html new file mode 100644 index 0000000000000..548756b6b53b4 --- /dev/null +++ b/datum/element/contextual_screentip_sharpness.html @@ -0,0 +1,3 @@ +/datum/element/contextual_screentip_sharpness - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

contextual_screentip_sharpness

Apply basic contextual screentips when the user hovers over this item with an item of the given tool behavior. +A "Type B" interaction. +This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.

Vars

lmb_textIf set, the text to show for LMB
rmb_textIf set, the text to show for RMB

Var Details

lmb_text

If set, the text to show for LMB

rmb_text

If set, the text to show for RMB

\ No newline at end of file diff --git a/datum/element/contextual_screentip_tools.html b/datum/element/contextual_screentip_tools.html new file mode 100644 index 0000000000000..48d5725f09443 --- /dev/null +++ b/datum/element/contextual_screentip_tools.html @@ -0,0 +1,3 @@ +/datum/element/contextual_screentip_tools - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

contextual_screentip_tools

Apply basic contextual screentips when the user hovers over this item with an item of the given tool behavior. +A "Type B" interaction. +This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.

Vars

tool_behaviorsMap of tool behaviors to contexts to usages

Var Details

tool_behaviors

Map of tool behaviors to contexts to usages

\ No newline at end of file diff --git a/datum/element/corrupted_organ.html b/datum/element/corrupted_organ.html new file mode 100644 index 0000000000000..4e175067b94c2 --- /dev/null +++ b/datum/element/corrupted_organ.html @@ -0,0 +1,2 @@ +/datum/element/corrupted_organ - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

corrupted_organ

Component applying shared behaviour by cursed organs granted when sacrificed by a heretic +Mostly just does something spooky when it is removed

Procs

on_removedWhen we're taken out of someone, do something spooky

Proc Details

on_removed

When we're taken out of someone, do something spooky

\ No newline at end of file diff --git a/datum/element/crackable.html b/datum/element/crackable.html new file mode 100644 index 0000000000000..49acfe826e9ba --- /dev/null +++ b/datum/element/crackable.html @@ -0,0 +1 @@ +/datum/element/crackable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crackable

Adds crack overlays to an object when integrity gets low

Vars

crack_integrityThe level at which the object starts showing cracks, 1 being at full health and 0.5 being at half health

Var Details

crack_integrity

The level at which the object starts showing cracks, 1 being at full health and 0.5 being at half health

\ No newline at end of file diff --git a/datum/element/crusher_loot.html b/datum/element/crusher_loot.html new file mode 100644 index 0000000000000..3c24ce1f684a8 --- /dev/null +++ b/datum/element/crusher_loot.html @@ -0,0 +1,6 @@ +/datum/element/crusher_loot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crusher_loot

Crusher Loot; which makes the attached mob drop a crusher trophy of some type if the majority damage was from a crusher!

+

Used for all the mobs droppin' crusher trophies

Vars

drop_immediatelyIf true, will immediately spawn the item instead of putting it in butcher loot.
drop_modchance to drop the trophy, lowered by the mob only taking partial crusher damage instead of full +for example, 25% would mean ~4 mobs need to die before you find one. +but it would be more if you didn't deal full crusher damage to them.
trophy_typePath of the trophy dropped

Var Details

drop_immediately

If true, will immediately spawn the item instead of putting it in butcher loot.

drop_mod

chance to drop the trophy, lowered by the mob only taking partial crusher damage instead of full +for example, 25% would mean ~4 mobs need to die before you find one. +but it would be more if you didn't deal full crusher damage to them.

trophy_type

Path of the trophy dropped

\ No newline at end of file diff --git a/datum/element/cuffsnapping.html b/datum/element/cuffsnapping.html new file mode 100644 index 0000000000000..b865b64dc84db --- /dev/null +++ b/datum/element/cuffsnapping.html @@ -0,0 +1,12 @@ +/datum/element/cuffsnapping - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cuffsnapping

cuffsnapping element replaces the item's secondary attack with an aimed attack at the kneecaps under certain circumstances.

+

Element is incompatible with non-items. Requires the parent item to have a force equal to or greater than WOUND_MINIMUM_DAMAGE. +Also requires that the parent can actually get past pre_secondary_attack without the attack chain cancelling.

+

cuffsnapping attacks have a wounding bonus between severe and critical+10 wound thresholds. Without some serious wound protecting +armour this all but guarantees a wound of some sort. The attack is directed specifically at a limb and the limb takes the damage.

+

Requires the cutter_user to be aiming for either leg zone, which will be targeted specifically. They will than have a 3-second long +do_after before executing the attack.

+

cuffsnapping requires the target to either be on the floor, immobilised or buckled to something. And also to have an appropriate leg.

+

Passing all the checks will cancel the entire attack chain.

+

Cuffsnapping element! When added to an item allows it to attempt to break cuffs. +Depending on certain parameters and variables it might only be able to cut through cable, or take time, etc.

+

Element is only compatible with items.

Vars

snap_time_strongIf not null, can snap handcuffs.
snap_time_weakIf not null, can snap cable restraints and similar.

Procs

AttachNote: As of time of writing (5/9/23) it takes 4 seconds to manually remove handcuffs. Anything above that value is a waste of time.
on_examinesignal called on parent being examined

Var Details

snap_time_strong

If not null, can snap handcuffs.

snap_time_weak

If not null, can snap cable restraints and similar.

Proc Details

Attach

Note: As of time of writing (5/9/23) it takes 4 seconds to manually remove handcuffs. Anything above that value is a waste of time.

on_examine

signal called on parent being examined

\ No newline at end of file diff --git a/datum/element/cult_eyes.html b/datum/element/cult_eyes.html new file mode 100644 index 0000000000000..59cfceaf8ca34 --- /dev/null +++ b/datum/element/cult_eyes.html @@ -0,0 +1,5 @@ +/datum/element/cult_eyes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

Cult eyes element

Applies and removes the glowing cult eyes

Procs

DetachDetach proc
set_eyesCult eye setter proc

Proc Details

Detach

Detach proc

+

Removes the eye color, and trait from the mob

set_eyes

Cult eye setter proc

+
\ No newline at end of file diff --git a/datum/element/cult_halo.html b/datum/element/cult_halo.html new file mode 100644 index 0000000000000..fec8dc2a26c7e --- /dev/null +++ b/datum/element/cult_halo.html @@ -0,0 +1,3 @@ +/datum/element/cult_halo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

Cult halo element

Applies and removes the cult halo

Procs

DetachDetach proc
set_haloHalo setter proc

Proc Details

Detach

Detach proc

+

Removes the halo overlays, and trait from the mob

set_halo

Halo setter proc

+

Adds the cult halo overlays, and adds the halo trait to the mob.

\ No newline at end of file diff --git a/datum/element/cultist_pet.html b/datum/element/cultist_pet.html new file mode 100644 index 0000000000000..cd6536b9ebb40 --- /dev/null +++ b/datum/element/cultist_pet.html @@ -0,0 +1 @@ +/datum/element/cultist_pet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cultist_pet

Vars

pet_cult_iconour pet cult icon's pathfile
pet_cult_icon_stateour pet cult icon state

Procs

become_cultistturn into terrifying beasts

Var Details

pet_cult_icon

our pet cult icon's pathfile

pet_cult_icon_state

our pet cult icon state

Proc Details

become_cultist

turn into terrifying beasts

\ No newline at end of file diff --git a/datum/element/curse_announcement.html b/datum/element/curse_announcement.html new file mode 100644 index 0000000000000..05db9f6812ad5 --- /dev/null +++ b/datum/element/curse_announcement.html @@ -0,0 +1,3 @@ +/datum/element/curse_announcement - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

curse announcement element!

Bespoke element that sends a harrowing message when you first pick up an item, applying a spooky color outline and renaming the item. +For most items, it will announce when picked up. If the item can be equipped, though, it will only announce when the item is worn. +Possible improvements for the future: add an option to allow the cursed affix to be a prefix. right now only coded for suffixes

Vars

announcement_messagemessage sent on announce
fantasy_componentoptional fantasy component, used in building the name if provided
filter_colorcolor of the outline filter on announce
new_namenew name given to the item on announce

Var Details

announcement_message

message sent on announce

fantasy_component

optional fantasy component, used in building the name if provided

filter_color

color of the outline filter on announce

new_name

new name given to the item on announce

\ No newline at end of file diff --git a/datum/element/damage_threshold.html b/datum/element/damage_threshold.html new file mode 100644 index 0000000000000..8f22ef7477f51 --- /dev/null +++ b/datum/element/damage_threshold.html @@ -0,0 +1,3 @@ +/datum/element/damage_threshold - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

damage_threshold

Applied to living mobs. +Adds a force threshold for which attacks will be blocked entirely. +IE, if they are hit with an attack that deals less than X damage, the attack does nothing.

Vars

force_thresholdIncoming attacks beneath this threshold, inclusive, will be blocked entirely

Var Details

force_threshold

Incoming attacks beneath this threshold, inclusive, will be blocked entirely

\ No newline at end of file diff --git a/datum/element/dangerous_surgical_removal.html b/datum/element/dangerous_surgical_removal.html new file mode 100644 index 0000000000000..5a0c4e02b65b6 --- /dev/null +++ b/datum/element/dangerous_surgical_removal.html @@ -0,0 +1,3 @@ +/datum/element/dangerous_surgical_removal - /tg/ Station 13
/tg/ Station 13 - Modules - Types

dangerous_surgical_removal

DANGEROUS SURGICAL REMOVAL ELEMENT

+

Makes the organ explode when removed surgically. +That's about it.

\ No newline at end of file diff --git a/datum/element/death_drops.html b/datum/element/death_drops.html new file mode 100644 index 0000000000000..fe44647da714a --- /dev/null +++ b/datum/element/death_drops.html @@ -0,0 +1,2 @@ +/datum/element/death_drops - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

death_drops

death drops element!

+

bespoke element that spawn can spawn one or multiple objects when a mob is killed

Vars

lootwhat items the target drops when killed

Procs

on_deathsignal called by the stat of the target changing

Var Details

loot

what items the target drops when killed

Proc Details

on_death

signal called by the stat of the target changing

\ No newline at end of file diff --git a/datum/element/death_explosion.html b/datum/element/death_explosion.html new file mode 100644 index 0000000000000..abcbb7c2f6647 --- /dev/null +++ b/datum/element/death_explosion.html @@ -0,0 +1,2 @@ +/datum/element/death_explosion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

death_explosion

death explosion element!

+

Bespoke element that generates an explosion when a mob is killed.

Vars

devastationThe range at which devastating impact happens
heavy_impactThe range at which heavy impact happens
light_impactThe range at which light impact happens

Procs

on_deathTriggered when target dies, make an explosion.

Var Details

devastation

The range at which devastating impact happens

heavy_impact

The range at which heavy impact happens

light_impact

The range at which light impact happens

Proc Details

on_death

Triggered when target dies, make an explosion.

\ No newline at end of file diff --git a/datum/element/death_gases.html b/datum/element/death_gases.html new file mode 100644 index 0000000000000..8f709c26f6fd9 --- /dev/null +++ b/datum/element/death_gases.html @@ -0,0 +1,2 @@ +/datum/element/death_gases - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

death_gases

death gases element!

+

Bespoke element that spawns one type of gas when a mob is killed

Vars

amount_of_gasThe amount of gas spawned on death
gas_typeWhat gas the target spawns when killed

Procs

on_deathsignal called by the stat of the target changing

Var Details

amount_of_gas

The amount of gas spawned on death

gas_type

What gas the target spawns when killed

Proc Details

on_death

signal called by the stat of the target changing

\ No newline at end of file diff --git a/datum/element/decal.html b/datum/element/decal.html new file mode 100644 index 0000000000000..1975ba53df8ab --- /dev/null +++ b/datum/element/decal.html @@ -0,0 +1,9 @@ +/datum/element/decal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

decal

Vars

base_icon_stateThe base icon state that this decal was initialized with.
cleanableWhether this decal can be cleaned.
descriptionA description this decal appends to the target's examine message.
directionalIf true this was initialized with no set direction - will follow the parent dir.
picThe overlay applied by this decal to the target.
smoothingWhat smoothing junction this was initialized with.

Procs

generate_appearance
smooth_reactReacts to the source atom smoothing.

Var Details

base_icon_state

The base icon state that this decal was initialized with.

cleanable

Whether this decal can be cleaned.

description

A description this decal appends to the target's examine message.

directional

If true this was initialized with no set direction - will follow the parent dir.

pic

The overlay applied by this decal to the target.

smoothing

What smoothing junction this was initialized with.

Proc Details

generate_appearance

generate_appearance

+

If the decal was not given an appearance, it will generate one based on the other given arguments. +element won't be compatible if it cannot do either +all args are fed into creating an image, they are byond vars for images you'll recognize in the byond docs +(except source, source is the object whose appearance we're copying.)

smooth_react

Reacts to the source atom smoothing.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/element/deliver_first.html b/datum/element/deliver_first.html new file mode 100644 index 0000000000000..6fdedff768c5b --- /dev/null +++ b/datum/element/deliver_first.html @@ -0,0 +1 @@ +/datum/element/deliver_first - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

deliver_first

Vars

deny_cooldowncooldown for the deny sound
goal_area_typetypepath of the area we will be allowed to be opened in
paymenthow much is earned on delivery of the crate

Procs

area_checkregisters the signal that blocks target from opening when outside of the valid area, returns if it is now unlocked
on_examinesignal sent from examining target
on_post_opensignal called by successfully opening target
on_pre_opensignal called before opening target, blocks opening
remove_lockcalled to remove the element in a flavorful way, either from delivery or from emagging/breaking open the crate

Var Details

deny_cooldown

cooldown for the deny sound

goal_area_type

typepath of the area we will be allowed to be opened in

payment

how much is earned on delivery of the crate

Proc Details

area_check

registers the signal that blocks target from opening when outside of the valid area, returns if it is now unlocked

on_examine

signal sent from examining target

on_post_open

signal called by successfully opening target

on_pre_open

signal called before opening target, blocks opening

remove_lock

called to remove the element in a flavorful way, either from delivery or from emagging/breaking open the crate

\ No newline at end of file diff --git a/datum/element/dextrous.html b/datum/element/dextrous.html new file mode 100644 index 0000000000000..96d32293fbb0f --- /dev/null +++ b/datum/element/dextrous.html @@ -0,0 +1,2 @@ +/datum/element/dextrous - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

dextrous

Sets up the attachee to have hands and manages things like dropping items on death and displaying them on examine +Actual hand performance is managed by code on /living/ and not encapsulated here, we just enable it

Procs

on_deathDrop our shit when we die
on_examinedTell people what we are holding
on_hand_clickedTry picking up items
set_available_handsSet up how many hands we should have

Proc Details

on_death

Drop our shit when we die

on_examined

Tell people what we are holding

on_hand_clicked

Try picking up items

set_available_hands

Set up how many hands we should have

\ No newline at end of file diff --git a/datum/element/diggable.html b/datum/element/diggable.html new file mode 100644 index 0000000000000..342d52905eca3 --- /dev/null +++ b/datum/element/diggable.html @@ -0,0 +1 @@ +/datum/element/diggable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

diggable

Lets you make hitting a turf with a shovel pop something out, and scrape the turf

Vars

action_textWhat should we tell the user they did? (Eg: "You dig up the turf.")
action_text_third_personWhat should we tell other people what the user did? (Eg: "Guy digs up the turf.")
amountAmount to spawn on shovel
to_spawnTypepath of what we spawn on shovel
worm_chancePercentage chance of receiving a bonus worm

Procs

on_shovelSignal proc for COMSIG_ATOM_TOOL_ACT via [TOOL_SHOVEL].

Var Details

action_text

What should we tell the user they did? (Eg: "You dig up the turf.")

action_text_third_person

What should we tell other people what the user did? (Eg: "Guy digs up the turf.")

amount

Amount to spawn on shovel

to_spawn

Typepath of what we spawn on shovel

worm_chance

Percentage chance of receiving a bonus worm

Proc Details

on_shovel

Signal proc for COMSIG_ATOM_TOOL_ACT via [TOOL_SHOVEL].

\ No newline at end of file diff --git a/datum/element/disarm_attack.html b/datum/element/disarm_attack.html new file mode 100644 index 0000000000000..2b4a31ba4c6ec --- /dev/null +++ b/datum/element/disarm_attack.html @@ -0,0 +1 @@ +/datum/element/disarm_attack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

disarm_attack

An element that allows items to be used to shove people around just like right-clicking would.

Procs

can_disarm_attackcheck if the item conditions for the disarm action are met.

Proc Details

can_disarm_attack

check if the item conditions for the disarm action are met.

\ No newline at end of file diff --git a/datum/element/door_pryer.html b/datum/element/door_pryer.html new file mode 100644 index 0000000000000..cfbd468729684 --- /dev/null +++ b/datum/element/door_pryer.html @@ -0,0 +1,2 @@ +/datum/element/door_pryer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

door_pryer

Attached to a basic mob. +Causes attacks on doors to attempt to open them.

Vars

interaction_keyInteraction key for if we force a door open
pry_timeTime it takes to open a door with force

Procs

on_attackIf we're targeting an airlock, open it
open_doorTry opening the door, and if we can't then try forcing it

Var Details

interaction_key

Interaction key for if we force a door open

pry_time

Time it takes to open a door with force

Proc Details

on_attack

If we're targeting an airlock, open it

open_door

Try opening the door, and if we can't then try forcing it

\ No newline at end of file diff --git a/datum/element/drag_pickup.html b/datum/element/drag_pickup.html new file mode 100644 index 0000000000000..7f8d5b9bba682 --- /dev/null +++ b/datum/element/drag_pickup.html @@ -0,0 +1,2 @@ +/datum/element/drag_pickup - /tg/ Station 13
/tg/ Station 13 - Modules - Types

drag_pickup

drag_pickup element; for allowing things to be picked up by dragging.

+

Used for paper bins.

\ No newline at end of file diff --git a/datum/element/dryable.html b/datum/element/dryable.html new file mode 100644 index 0000000000000..f3f9c23562c70 --- /dev/null +++ b/datum/element/dryable.html @@ -0,0 +1 @@ +/datum/element/dryable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dryable

Vars

dry_resultThe type of atom that is spawned by this element on drying.

Var Details

dry_result

The type of atom that is spawned by this element on drying.

\ No newline at end of file diff --git a/datum/element/dusts_on_catatonia.html b/datum/element/dusts_on_catatonia.html new file mode 100644 index 0000000000000..88eb6a9a0c050 --- /dev/null +++ b/datum/element/dusts_on_catatonia.html @@ -0,0 +1 @@ +/datum/element/dusts_on_catatonia - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dusts_on_catatonia

Vars

attached_mobsSet of all attached mobs.

Var Details

attached_mobs

Set of all attached mobs.

\ No newline at end of file diff --git a/datum/element/effect_trail.html b/datum/element/effect_trail.html new file mode 100644 index 0000000000000..e5cbd59f66b03 --- /dev/null +++ b/datum/element/effect_trail.html @@ -0,0 +1 @@ +/datum/element/effect_trail - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

effect_trail

Vars

chosen_effectThe effect used for the trail generation.

Procs

generate_effectGenerates an effect

Var Details

chosen_effect

The effect used for the trail generation.

Proc Details

generate_effect

Generates an effect

\ No newline at end of file diff --git a/datum/element/elevation.html b/datum/element/elevation.html new file mode 100644 index 0000000000000..928207cbdd251 --- /dev/null +++ b/datum/element/elevation.html @@ -0,0 +1,2 @@ +/datum/element/elevation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

elevation

Manages the elevation of the turf the source is on (can be the turf itself) +The atom with the highest pixel_shift gets to set the elevation of the turf to that value.

Vars

pixel_shiftThe amount of pixel_z applied to the mob standing on the turf

Procs

pre_change_turfChanging or destroying the turf detaches the element, also we need to reapply the traits since they don't get passed down.

Var Details

pixel_shift

The amount of pixel_z applied to the mob standing on the turf

Proc Details

pre_change_turf

Changing or destroying the turf detaches the element, also we need to reapply the traits since they don't get passed down.

\ No newline at end of file diff --git a/datum/element/elevation_core.html b/datum/element/elevation_core.html new file mode 100644 index 0000000000000..808168f696684 --- /dev/null +++ b/datum/element/elevation_core.html @@ -0,0 +1,12 @@ +/datum/element/elevation_core - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

elevation_core

The core element attached to the turf itself. Do not use this directly!

+

Causes mobs walking over a turf with this element to be pixel shifted vertically by the pixel_shift amount. +Because of the way it's structured, it should only be added through the elevation element (without the core suffix).

+

To explain: in the case of multiple objects with (different instances of) the element being stacked on one turf somehow, +we only want that with the highest pixel shift value to apply it to the turf, so that the mobs standing on top of it all +doesn't look like it's floating off the pile.

Vars

pixel_shiftThe amount of pixel_z applied to the mob standing on the turf.

Procs

on_set_buckledIf the mob is buckled or unbuckled to/from a vehicle, shift it up/down +. +Null the pixel shift if the mob is buckled to something different that's not a mob or vehicle

Var Details

pixel_shift

The amount of pixel_z applied to the mob standing on the turf.

Proc Details

on_set_buckled

If the mob is buckled or unbuckled to/from a vehicle, shift it up/down +. +Null the pixel shift if the mob is buckled to something different that's not a mob or vehicle

+

The reason is that it's more important for a mob to look like they're actually buckled to a bed +or something anchored to the floor than atop of whatever else is on the same turf.

\ No newline at end of file diff --git a/datum/element/embed.html b/datum/element/embed.html new file mode 100644 index 0000000000000..472e4936cd76d --- /dev/null +++ b/datum/element/embed.html @@ -0,0 +1,14 @@ +/datum/element/embed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

embed

Procs

check_embedChecking to see if we're gonna embed into a human
check_embed_projectilecheck_embed_projectile() is what we get when a projectile with a defined shrapnel_type impacts a target.
detach_from_weaponIf we don't want to be embeddable anymore (deactivating an e-dagger for instance)
embed_objectActually sticks the object to a victim
examined_tagsSomeone inspected our embeddable item
roll_embed_chanceCalculates the actual chance to embed based on armour penetration and throwing speed, then returns true if we pass that probability check
sever_elementA different embed element has been attached, so we'll detach and let them handle things
try_force_embedtry_force_embed() is called here when we fire COMSIG_EMBED_TRY_FORCE from /obj/item/proc/tryEmbed. Mostly, this means we're a piece of shrapnel from a projectile that just impacted something, and we're trying to embed in it.

Proc Details

check_embed

Checking to see if we're gonna embed into a human

check_embed_projectile

check_embed_projectile() is what we get when a projectile with a defined shrapnel_type impacts a target.

+

If we hit a valid target, we create the shrapnel_type object and then forcefully try to embed it on its +behalf. DO NOT EVER add an embed element to the payload and let it do the rest. +That's awful, and it'll limit us to drop-deletable shrapnels in the worry of stuff like +arrows and harpoons being embeddable even when not let loose by their weapons.

detach_from_weapon

If we don't want to be embeddable anymore (deactivating an e-dagger for instance)

embed_object

Actually sticks the object to a victim

examined_tags

Someone inspected our embeddable item

roll_embed_chance

Calculates the actual chance to embed based on armour penetration and throwing speed, then returns true if we pass that probability check

sever_element

A different embed element has been attached, so we'll detach and let them handle things

try_force_embed

try_force_embed() is called here when we fire COMSIG_EMBED_TRY_FORCE from /obj/item/proc/tryEmbed. Mostly, this means we're a piece of shrapnel from a projectile that just impacted something, and we're trying to embed in it.

+

The reason for this extra mucking about is avoiding having to do an extra hitby(), and annoying the target by impacting them once with the projectile, then again with the shrapnel, and possibly +AGAIN if we actually embed. This way, we save on at least one message.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/element/envenomable_casing.html b/datum/element/envenomable_casing.html new file mode 100644 index 0000000000000..ae2ed71592233 --- /dev/null +++ b/datum/element/envenomable_casing.html @@ -0,0 +1,3 @@ +/datum/element/envenomable_casing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

envenomable_casing

envenomable caseless element!

+

Non bespoke element (1 in existence) that lets caseless bullets be dippable. +When you fire the bullet, it will gain venomous. The casing itself isn't venomous to prevent bullshit

Vars

amount_allowedhow much reagent can you dip the caseless in?

Procs

handle_interactionsignal called on the parent attacking an item
on_examine_after_dipditto, but after it's been coated
on_examine_before_dipsignal called on parent being examined while not coated

Var Details

amount_allowed

how much reagent can you dip the caseless in?

Proc Details

handle_interaction

signal called on the parent attacking an item

on_examine_after_dip

ditto, but after it's been coated

on_examine_before_dip

signal called on parent being examined while not coated

\ No newline at end of file diff --git a/datum/element/eyestab.html b/datum/element/eyestab.html new file mode 100644 index 0000000000000..ed6b47bb0f260 --- /dev/null +++ b/datum/element/eyestab.html @@ -0,0 +1 @@ +/datum/element/eyestab - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

eyestab

An element that lets you stab people in the eyes when targeting them

Vars

damageThe amount of damage to do per eyestab

Var Details

damage

The amount of damage to do per eyestab

\ No newline at end of file diff --git a/datum/element/falling_hazard.html b/datum/element/falling_hazard.html new file mode 100644 index 0000000000000..febab9498a01a --- /dev/null +++ b/datum/element/falling_hazard.html @@ -0,0 +1 @@ +/datum/element/falling_hazard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

falling_hazard

An element that will make a target thing do damage to any mob that it falls on from a z-level above

Vars

crushes_peopleDoes the target crush and flatten whoever it falls on
fall_damageThe amount of damage to do when the target falls onto a mob
fall_wound_bonusThe wound bonus to give damage dealt against mobs we fall on
impact_soundWhat sound is played when the target falls onto a mob
obeys_hardhatsDoes we take into consideration if the target has head protection (hardhat, or a strong enough helmet)

Procs

fall_onto_stuffGathers every mob in the turf the target falls on, and does damage/crushes them/makes a message about the target falling on them

Var Details

crushes_people

Does the target crush and flatten whoever it falls on

fall_damage

The amount of damage to do when the target falls onto a mob

fall_wound_bonus

The wound bonus to give damage dealt against mobs we fall on

impact_sound

What sound is played when the target falls onto a mob

obeys_hardhats

Does we take into consideration if the target has head protection (hardhat, or a strong enough helmet)

Proc Details

fall_onto_stuff

Gathers every mob in the turf the target falls on, and does damage/crushes them/makes a message about the target falling on them

\ No newline at end of file diff --git a/datum/element/firestacker.html b/datum/element/firestacker.html new file mode 100644 index 0000000000000..b8cc8a3cd96df --- /dev/null +++ b/datum/element/firestacker.html @@ -0,0 +1 @@ +/datum/element/firestacker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

firestacker

Can be applied to /atom/movable subtypes to make them apply fire stacks to things they hit

Vars

amountHow many firestacks to apply per hit

Var Details

amount

How many firestacks to apply per hit

\ No newline at end of file diff --git a/datum/element/floor_loving.html b/datum/element/floor_loving.html new file mode 100644 index 0000000000000..4e94f5313ef4d --- /dev/null +++ b/datum/element/floor_loving.html @@ -0,0 +1 @@ +/datum/element/floor_loving - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

floor_loving

Prevents a movable atom from moving to somewhere which isn't an open turf with floor on it

Procs

attempting_moveBlock movement to any non-floor location

Proc Details

attempting_move

Block movement to any non-floor location

\ No newline at end of file diff --git a/datum/element/food_trash.html b/datum/element/food_trash.html new file mode 100644 index 0000000000000..dd928a072a5ab --- /dev/null +++ b/datum/element/food_trash.html @@ -0,0 +1 @@ +/datum/element/food_trash - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

food_trash

Vars

flagsFlags of the trash element that change its behavior
generate_trash_procpathGenerate trash proc path
trashThe type of trash that is spawned by this element

Var Details

flags

Flags of the trash element that change its behavior

generate_trash_procpath

Generate trash proc path

trash

The type of trash that is spawned by this element

\ No newline at end of file diff --git a/datum/element/footstep.html b/datum/element/footstep.html new file mode 100644 index 0000000000000..ec2d299bf9107 --- /dev/null +++ b/datum/element/footstep.html @@ -0,0 +1 @@ +/datum/element/footstep - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

footstep

Footstep element. Plays footsteps at parents location when it is appropriate.

Vars

e_rangee_range stands for extra range - aka how far the sound can be heard. This is added to the base value and ignored if there isn't a base value.
footstep_soundsThis can be a list OR a soundfile OR null. Determines whatever sound gets played.
footstep_typefootstep_type is a define which determines what kind of sounds should get chosen.
sound_varyWhether or not to add variation to the sounds played
steps_for_livingA list containing living mobs and the number of steps they have taken since the last time their footsteps were played.
volumevolume determines the extra volume of the footstep. This is multiplied by the base volume, should there be one.

Procs

play_simplestep_machinePrepares a footstep for machine walking
prepare_stepPrepares a footstep for living mobs. Determines if it should get played. Returns the turf it should get played on. Note that it is always a /turf/open

Var Details

e_range

e_range stands for extra range - aka how far the sound can be heard. This is added to the base value and ignored if there isn't a base value.

footstep_sounds

This can be a list OR a soundfile OR null. Determines whatever sound gets played.

footstep_type

footstep_type is a define which determines what kind of sounds should get chosen.

sound_vary

Whether or not to add variation to the sounds played

steps_for_living

A list containing living mobs and the number of steps they have taken since the last time their footsteps were played.

volume

volume determines the extra volume of the footstep. This is multiplied by the base volume, should there be one.

Proc Details

play_simplestep_machine

Prepares a footstep for machine walking

prepare_step

Prepares a footstep for living mobs. Determines if it should get played. Returns the turf it should get played on. Note that it is always a /turf/open

\ No newline at end of file diff --git a/datum/element/footstep_override.html b/datum/element/footstep_override.html new file mode 100644 index 0000000000000..a221f1016fb7d --- /dev/null +++ b/datum/element/footstep_override.html @@ -0,0 +1,11 @@ +/datum/element/footstep_override - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

footstep_override

When attached, the footstep sound played by the footstep element will be replaced by this one's

Vars

barefootstepThe sound played for movables with barefoot step sound type.
clawfootstepThe sound played for movables with claw step sound type.
footstepThe sound played for movables with shoed step sound type.
heavyfootstepThe sound played for movables with heavy step sound type.
occupied_turfsA list of turfs occupied by the movables this element is attached to. +Needed so it stops listening the turf's signals ONLY when it has no movable with the element.
priorityThe priority this element has in relation to other elements of the same type attached to other movables on the same turf.

Procs

occupy_turfAdds the movable to the list of movables with the element occupying the turf. +If the turf was not on the list of occupied turfs before, a signal will be registered +to it.
prepare_stepsChanges the sound types to be played if the element priority is higher than the one in the steps list.
vacate_turfRemoves the movable from the list of movables with the element occupying the turf. +If the turf is no longer occupied, it'll be removed from the list, and the signal +unregistered from it

Var Details

barefootstep

The sound played for movables with barefoot step sound type.

clawfootstep

The sound played for movables with claw step sound type.

footstep

The sound played for movables with shoed step sound type.

heavyfootstep

The sound played for movables with heavy step sound type.

occupied_turfs

A list of turfs occupied by the movables this element is attached to. +Needed so it stops listening the turf's signals ONLY when it has no movable with the element.

priority

The priority this element has in relation to other elements of the same type attached to other movables on the same turf.

Proc Details

occupy_turf

Adds the movable to the list of movables with the element occupying the turf. +If the turf was not on the list of occupied turfs before, a signal will be registered +to it.

prepare_steps

Changes the sound types to be played if the element priority is higher than the one in the steps list.

vacate_turf

Removes the movable from the list of movables with the element occupying the turf. +If the turf is no longer occupied, it'll be removed from the list, and the signal +unregistered from it

\ No newline at end of file diff --git a/datum/element/forced_gravity.html b/datum/element/forced_gravity.html new file mode 100644 index 0000000000000..283f05ad3e572 --- /dev/null +++ b/datum/element/forced_gravity.html @@ -0,0 +1 @@ +/datum/element/forced_gravity - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

forced_gravity

Vars

gravitythe level of gravity we force unto our target
ignore_turf_gravitywhether we will override the turf if it forces no gravity

Var Details

gravity

the level of gravity we force unto our target

ignore_turf_gravity

whether we will override the turf if it forces no gravity

\ No newline at end of file diff --git a/datum/element/fried_item.html b/datum/element/fried_item.html new file mode 100644 index 0000000000000..d53e5e719be88 --- /dev/null +++ b/datum/element/fried_item.html @@ -0,0 +1,3 @@ +/datum/element/fried_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fried_item

Items fried through the deep fryer.

Vars

fried_colorsList of colors to apply the element target. +Each index corresponds to a different level.

Var Details

fried_colors

List of colors to apply the element target. +Each index corresponds to a different level.

\ No newline at end of file diff --git a/datum/element/frozen.html b/datum/element/frozen.html new file mode 100644 index 0000000000000..040a38ea434d6 --- /dev/null +++ b/datum/element/frozen.html @@ -0,0 +1,3 @@ +/datum/element/frozen - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

frozen

simple element to handle frozen obj's

Procs

on_movedsignal handler for COMSIG_MOVABLE_MOVED that unfreezes our target if it moves onto an open turf thats hotter than +our melting temperature.
on_unfreezesignal handler for COMSIG_OBJ_UNFREEZE that forces us to detach from the target
shatter_on_landedsignal handler that shatters our target after impacting after a throw.

Proc Details

on_moved

signal handler for COMSIG_MOVABLE_MOVED that unfreezes our target if it moves onto an open turf thats hotter than +our melting temperature.

on_unfreeze

signal handler for COMSIG_OBJ_UNFREEZE that forces us to detach from the target

shatter_on_landed

signal handler that shatters our target after impacting after a throw.

\ No newline at end of file diff --git a/datum/element/give_turf_traits.html b/datum/element/give_turf_traits.html new file mode 100644 index 0000000000000..e1ce68c9b02ba --- /dev/null +++ b/datum/element/give_turf_traits.html @@ -0,0 +1,5 @@ +/datum/element/give_turf_traits - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

give_turf_traits

A bespoke element that adds a set of traits to the turf while occupied by at least one attached movabled.

Vars

trait_sourcesList of sources we are using to reapply traits when turf changes
traitsA list of traits that are added to the turf while occupied.

Procs

add_to_occupied_turfsRegisters the turf signals if it was previously unoccupied and adds it to the list of occupied turfs. +Otherwise, it just adds the movable to the assoc value of lists occupying the turf.
on_movedRemoves the trait from the old turf and adds it to the new one.
pre_change_turfSignals are carried over when the turf is changed, but traits aren't, so they've to be readded post-change.
remove_from_occupied_turfsUnregisters the turf signals if it's no longer unoccupied and removes it from the list of occupied turfs. +Otherwise, it just removes the movable from the assoc value of lists occupying the turf.
reoccupy_turfReapply turf traits to the provided turf

Var Details

trait_sources

List of sources we are using to reapply traits when turf changes

traits

A list of traits that are added to the turf while occupied.

Proc Details

add_to_occupied_turfs

Registers the turf signals if it was previously unoccupied and adds it to the list of occupied turfs. +Otherwise, it just adds the movable to the assoc value of lists occupying the turf.

on_moved

Removes the trait from the old turf and adds it to the new one.

pre_change_turf

Signals are carried over when the turf is changed, but traits aren't, so they've to be readded post-change.

remove_from_occupied_turfs

Unregisters the turf signals if it's no longer unoccupied and removes it from the list of occupied turfs. +Otherwise, it just removes the movable from the assoc value of lists occupying the turf.

reoccupy_turf

Reapply turf traits to the provided turf

\ No newline at end of file diff --git a/datum/element/gravedigger.html b/datum/element/gravedigger.html new file mode 100644 index 0000000000000..1dfd9985c6fee --- /dev/null +++ b/datum/element/gravedigger.html @@ -0,0 +1 @@ +/datum/element/gravedigger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gravedigger

Gravedigger element. Allows for graves to be dug from certain tiles

Vars

turfs_to_considerA list of turf types that can be used to dig a grave.

Var Details

turfs_to_consider

A list of turf types that can be used to dig a grave.

\ No newline at end of file diff --git a/datum/element/gun_launches_little_guys.html b/datum/element/gun_launches_little_guys.html new file mode 100644 index 0000000000000..8c09e4e180e7a --- /dev/null +++ b/datum/element/gun_launches_little_guys.html @@ -0,0 +1 @@ +/datum/element/gun_launches_little_guys - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gun_launches_little_guys

An element that makes guns throw their user back if they are just a little guy

Vars

throwing_forceThe throwing force applied to the gun's user
throwing_rangeThe throwing range applied to the gun's user

Procs

examineWarns that this gun might throw you away really hard
throw_it_backChecks if the shooter is just a little guy. If so? Throw it back.

Var Details

throwing_force

The throwing force applied to the gun's user

throwing_range

The throwing range applied to the gun's user

Proc Details

examine

Warns that this gun might throw you away really hard

throw_it_back

Checks if the shooter is just a little guy. If so? Throw it back.

\ No newline at end of file diff --git a/datum/element/hat_wearer.html b/datum/element/hat_wearer.html new file mode 100644 index 0000000000000..4957b73a9bd6a --- /dev/null +++ b/datum/element/hat_wearer.html @@ -0,0 +1 @@ +/datum/element/hat_wearer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mobs that can wear hats!

Vars

offsetsoffsets of hats we will wear
remove_hat_signalssignals to remove the hat on
traits_prevent_checkstraits we check before adding the hat

Var Details

offsets

offsets of hats we will wear

remove_hat_signals

signals to remove the hat on

traits_prevent_checks

traits we check before adding the hat

\ No newline at end of file diff --git a/datum/element/heretic_focus.html b/datum/element/heretic_focus.html new file mode 100644 index 0000000000000..48f75489bf74d --- /dev/null +++ b/datum/element/heretic_focus.html @@ -0,0 +1,8 @@ +/datum/element/heretic_focus - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

heretic_focus

Heretic focus element, simple element for making an item a heretic focus, +allowing heretics to cast advanced spells (examine message included).

Procs

on_dropSignal proc for COMSIG_ITEM_DROPPED. +Remove our trait when we drop (unequip) our item
on_equipSignal proc for COMSIG_ITEM_EQUIPPED. +When equipped in a right slot, give user our trait
on_examineSignal proc for COMSIG_ATOM_EXAMINE. +Let's the examiner see that this item is a heretic focus

Proc Details

on_drop

Signal proc for COMSIG_ITEM_DROPPED. +Remove our trait when we drop (unequip) our item

on_equip

Signal proc for COMSIG_ITEM_EQUIPPED. +When equipped in a right slot, give user our trait

on_examine

Signal proc for COMSIG_ATOM_EXAMINE. +Let's the examiner see that this item is a heretic focus

\ No newline at end of file diff --git a/datum/element/high_fiver.html b/datum/element/high_fiver.html new file mode 100644 index 0000000000000..26012e061563a --- /dev/null +++ b/datum/element/high_fiver.html @@ -0,0 +1 @@ +/datum/element/high_fiver - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

High Fiver Element

Attach to an item to make it offer a "high five" when offered to people

Procs

on_offerSignal proc for COMSIG_ITEM_OFFERING to set up the high-five on offer
on_offer_takenSignal proc for COMSIG_ITEM_OFFER_TAKEN to continue through with the high-five on take

Proc Details

on_offer

Signal proc for COMSIG_ITEM_OFFERING to set up the high-five on offer

on_offer_taken

Signal proc for COMSIG_ITEM_OFFER_TAKEN to continue through with the high-five on take

\ No newline at end of file diff --git a/datum/element/immerse.html b/datum/element/immerse.html new file mode 100644 index 0000000000000..94696182cb17b --- /dev/null +++ b/datum/element/immerse.html @@ -0,0 +1,28 @@ +/datum/element/immerse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

immerse

A visual element that makes movables entering the attached turfs look immersed into that turf.

+

Abandon all hope, ye who read forth, for this immerse works on mind-numbing workarounds,

Vars

attached_turfs_and_movablesAn association list of turfs that have this element attached and their affected contents.
generated_immerse_iconsA list of icons generated from a target and a mask, later used as appearances for the overlays.
generated_visual_overlaysA list of instances of /atom/movable/immerse_overlay then used as visual overlays for the immersed movables.
immersed_movablesAn association list of movables as key and overlays as assoc.
movables_to_ignoreA list of movables that shouldn't be affected by the element, either because it'd look bad +or barely perceptible.

Procs

add_immerse_overlayThe main proc, which adds a visual overlay to the movable that has entered the turf to make it look immersed. +It's kind of iffy but basically, we want the overlay to cover as much area as needed to +avoid the movable's icon from spilling horizontally or below. +Also, while these visual overlays are mainly cached movables, for certain movables, such as living mobs, +we want them to have their own unique vis overlay with additional signals registered. +This allows the vis overlay to look more or less unchanged while its owner is spinning or resting +without otherwise affecting other movables with identical overlays.
clear_overlay_refsWe need to make sure to remove hard refs from the element when deleted.
generate_vis_overlayInitializes and caches a new visual overlay given parameters such as width, height and whether it should appear fully underwater.
on_atom_exitedCalled when a movable exits the turf. If its new location is not in the list of turfs with this element, +Remove the movable from the element.
on_init_or_enteredIf the movable is within the right layers and planes, not in the list of movable types to ignore, +or already affected by the element for that matter, Signals will be registered and, +unless the movable (or whatever it's buckled to) is flying, it'll appear as if immersed in that water.
on_move_flag_disabledReadds the overlay to the mob and bucklees if no longer flying.
on_move_flag_enabledRemoves the overlay from mob and bucklees is flying.
on_spin_animationSpin the overlay in the opposite direction so it doesn't look like it's spinning at all.
on_throwWorks just like on_move_flag_enabled, except it only has to check that movable isn't flying
on_throw_landedWorks just like on_move_flag_disabled, except it only has to check that movable isn't flying
on_update_transformA band-aid to keep the (unique) visual overlay from scaling and rotating along with its owner. I'm sorry.
remove_from_elementRemove any signal, overlay, trait given to the movable and reference to it within the element.
remove_immerse_overlayThis proc removes the vis_overlay, the keep together trait and some signals from the movable.
start_immersionMakes the element start affecting the turf and its contents. Called on Attach() or when TRAIT_IMMERSE_STOPPED is removed.
stop_immersionStops the element from affecting on the turf and its contents. Called on Detach() or when TRAIT_IMMERSE_STOPPED is added.
try_immerseCalled by init_or_entered() and on_set_buckled(). +This applies the overlay if neither the movable or whatever is buckled to (exclusive to living mobs) are flying +as well as movetype signals when the movable isn't buckled.
try_unimmerseCalled by on_set_buckled() and remove_from_element(). +This removes the filter and signals from the movable unless it doesn't have them.

Var Details

attached_turfs_and_movables

An association list of turfs that have this element attached and their affected contents.

generated_immerse_icons

A list of icons generated from a target and a mask, later used as appearances for the overlays.

generated_visual_overlays

A list of instances of /atom/movable/immerse_overlay then used as visual overlays for the immersed movables.

immersed_movables

An association list of movables as key and overlays as assoc.

movables_to_ignore

A list of movables that shouldn't be affected by the element, either because it'd look bad +or barely perceptible.

Proc Details

add_immerse_overlay

The main proc, which adds a visual overlay to the movable that has entered the turf to make it look immersed. +It's kind of iffy but basically, we want the overlay to cover as much area as needed to +avoid the movable's icon from spilling horizontally or below. +Also, while these visual overlays are mainly cached movables, for certain movables, such as living mobs, +we want them to have their own unique vis overlay with additional signals registered. +This allows the vis overlay to look more or less unchanged while its owner is spinning or resting +without otherwise affecting other movables with identical overlays.

clear_overlay_refs

We need to make sure to remove hard refs from the element when deleted.

generate_vis_overlay

Initializes and caches a new visual overlay given parameters such as width, height and whether it should appear fully underwater.

on_atom_exited

Called when a movable exits the turf. If its new location is not in the list of turfs with this element, +Remove the movable from the element.

on_init_or_entered

If the movable is within the right layers and planes, not in the list of movable types to ignore, +or already affected by the element for that matter, Signals will be registered and, +unless the movable (or whatever it's buckled to) is flying, it'll appear as if immersed in that water.

on_move_flag_disabled

Readds the overlay to the mob and bucklees if no longer flying.

on_move_flag_enabled

Removes the overlay from mob and bucklees is flying.

on_spin_animation

Spin the overlay in the opposite direction so it doesn't look like it's spinning at all.

on_throw

Works just like on_move_flag_enabled, except it only has to check that movable isn't flying

on_throw_landed

Works just like on_move_flag_disabled, except it only has to check that movable isn't flying

on_update_transform

A band-aid to keep the (unique) visual overlay from scaling and rotating along with its owner. I'm sorry.

remove_from_element

Remove any signal, overlay, trait given to the movable and reference to it within the element.

remove_immerse_overlay

This proc removes the vis_overlay, the keep together trait and some signals from the movable.

start_immersion

Makes the element start affecting the turf and its contents. Called on Attach() or when TRAIT_IMMERSE_STOPPED is removed.

stop_immersion

Stops the element from affecting on the turf and its contents. Called on Detach() or when TRAIT_IMMERSE_STOPPED is added.

try_immerse

Called by init_or_entered() and on_set_buckled(). +This applies the overlay if neither the movable or whatever is buckled to (exclusive to living mobs) are flying +as well as movetype signals when the movable isn't buckled.

try_unimmerse

Called by on_set_buckled() and remove_from_element(). +This removes the filter and signals from the movable unless it doesn't have them.

\ No newline at end of file diff --git a/datum/element/item_fov.html b/datum/element/item_fov.html new file mode 100644 index 0000000000000..d759affc65974 --- /dev/null +++ b/datum/element/item_fov.html @@ -0,0 +1 @@ +/datum/element/item_fov - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

item_fov

An element to unconditonally add a FOV trait to the wearer, removing it when an item is unequipped

Vars

fov_angleAngle of the FoV we will apply when someone wears the clothing this element is attached to.

Procs

on_dropOn dropping the item, remove the FoV trait.
on_equipOn equipping the item, add the FoV trait.

Var Details

fov_angle

Angle of the FoV we will apply when someone wears the clothing this element is attached to.

Proc Details

on_drop

On dropping the item, remove the FoV trait.

on_equip

On equipping the item, add the FoV trait.

\ No newline at end of file diff --git a/datum/element/item_scaling.html b/datum/element/item_scaling.html new file mode 100644 index 0000000000000..1b44178277645 --- /dev/null +++ b/datum/element/item_scaling.html @@ -0,0 +1,41 @@ +/datum/element/item_scaling - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

item_scaling

Element for scaling item appearances in the overworld or in inventory/storage.

+

This bespoke element allows for items to have varying sizes depending on their location. +The overworld simply refers to items being on a turf. Inventory includes HUD item slots, +and storage is anywhere a storage component is used. +Scaling should affect the item's icon and all attached overlays (such as blood decals).

Vars

overworld_scalingScaling value when the attached item is in the overworld (on a turf).
storage_scalingScaling value when the attached item is in a storage component or inventory slot.

Procs

AttachAttach proc for the item_scaling element
DetachDetach proc for the item_scaling element.
scaleScales the attached item's matrix.
scale_overworldShrinks when inworld
scale_storageEnlarges when inhand or in storage.

Var Details

overworld_scaling

Scaling value when the attached item is in the overworld (on a turf).

storage_scaling

Scaling value when the attached item is in a storage component or inventory slot.

Proc Details

Attach

Attach proc for the item_scaling element

+

The proc checks the target's type before attaching. It then initializes +the target to overworld scaling. The target should then rescale if it is placed +in inventory/storage on initialization. Relevant signals are registered to listen +for pickup/drop or storage events. Scaling values of 1 will result in items +returning to their original size. +Arguments:

+

Detach

Detach proc for the item_scaling element.

+

All registered signals are unregistered, and the attached element is removed from the target datum. +Arguments:

+

scale

Scales the attached item's matrix.

+

The proc first narrows the type of the source to (datums do not have a transform matrix). +It then creates an identity matrix, M, which is transformed by the scaling value. +The object's transform variable (matrix) is then set to the resulting value of M. +Arguments:

+

scale_overworld

Shrinks when inworld

+

Longer detailed paragraph about the proc +including any relevant detail +Arguments:

+

scale_storage

Enlarges when inhand or in storage.

+

Longer detailed paragraph about the proc +including any relevant detail +Arguments:

+
\ No newline at end of file diff --git a/datum/element/kneecapping.html b/datum/element/kneecapping.html new file mode 100644 index 0000000000000..de2a249bd5cf3 --- /dev/null +++ b/datum/element/kneecapping.html @@ -0,0 +1,13 @@ +/datum/element/kneecapping - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

kneecapping

Kneecapping element replaces the item's secondary attack with an aimed attack at the kneecaps under certain circumstances.

+

Element is incompatible with non-items. Requires the parent item to have a force equal to or greater than WOUND_MINIMUM_DAMAGE. +Also requires that the parent can actually get past pre_secondary_attack without the attack chain cancelling.

+

Kneecapping attacks have a wounding bonus between severe and critical+10 wound thresholds. Without some serious wound protecting +armour this all but guarantees a wound of some sort. The attack is directed specifically at a limb and the limb takes the damage.

+

Requires the attacker to be aiming for either leg zone, which will be targeted specifically. They will than have a 3-second long +do_after before executing the attack.

+

Kneecapping requires the target to either be on the floor, immobilised or buckled to something. And also to have an appropriate leg.

+

Passing all the checks will cancel the entire attack chain.

Procs

do_kneecap_targetAfter a short do_after, attacker applies damage to the given leg with a significant wounding bonus, applying the weapon's force as damage.
try_kneecap_targetSignal handler for COMSIG_ITEM_ATTACK_SECONDARY. Does checks for pacifism, zones and target state before either returning nothing +if the special attack could not be attempted, performing the ordinary attack procs instead - Or cancelling the attack chain if +the attack can be started.

Proc Details

do_kneecap_target

After a short do_after, attacker applies damage to the given leg with a significant wounding bonus, applying the weapon's force as damage.

try_kneecap_target

Signal handler for COMSIG_ITEM_ATTACK_SECONDARY. Does checks for pacifism, zones and target state before either returning nothing +if the special attack could not be attempted, performing the ordinary attack procs instead - Or cancelling the attack chain if +the attack can be started.

\ No newline at end of file diff --git a/datum/element/knockback.html b/datum/element/knockback.html new file mode 100644 index 0000000000000..e9479bfb9ad71 --- /dev/null +++ b/datum/element/knockback.html @@ -0,0 +1,8 @@ +/datum/element/knockback - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

knockback

Mobs and items with this element will knock movable targets they hit away from them. +Guns and turrets will instead fire projectiles with similar effects.

Vars

throw_anchoredwhether this can throw anchored targets (tables, etc)
throw_distancedistance the atom will be thrown
throw_gentlewhether this is a gentle throw (default false means people thrown into walls are stunned / take damage)

Procs

do_knockbackThrow a target in a direction
hostile_attackingtargettriggered after a hostile simplemob attacks something
item_afterattacktriggered after an item attacks something
projectile_hittriggered after a projectile hits something

Var Details

throw_anchored

whether this can throw anchored targets (tables, etc)

throw_distance

distance the atom will be thrown

throw_gentle

whether this is a gentle throw (default false means people thrown into walls are stunned / take damage)

Proc Details

do_knockback

Throw a target in a direction

+

Arguments:

+

hostile_attackingtarget

triggered after a hostile simplemob attacks something

item_afterattack

triggered after an item attacks something

projectile_hit

triggered after a projectile hits something

\ No newline at end of file diff --git a/datum/element/lazy_fishing_spot.html b/datum/element/lazy_fishing_spot.html new file mode 100644 index 0000000000000..9c390777df1d3 --- /dev/null +++ b/datum/element/lazy_fishing_spot.html @@ -0,0 +1,2 @@ +/datum/element/lazy_fishing_spot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

lazy_fishing_spot

Lazy fishing spot element so fisheable turfs do not have a component each since +they're usually pretty common on their respective maps (lava/water/etc)

Procs

on_examinedIf the fish source has fishes that are shown in the

Proc Details

on_examined

If the fish source has fishes that are shown in the

\ No newline at end of file diff --git a/datum/element/leeching_walk.html b/datum/element/leeching_walk.html new file mode 100644 index 0000000000000..97dcbbb81b55a --- /dev/null +++ b/datum/element/leeching_walk.html @@ -0,0 +1,3 @@ +/datum/element/leeching_walk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

leeching_walk

Buffs and heals the target while standing on rust.

Procs

on_lifeSignal proc for COMSIG_LIVING_LIFE.

Proc Details

on_life

Signal proc for COMSIG_LIVING_LIFE.

+

Gradually heals the heretic ([source]) on rust, +including baton knockdown and stamina damage.

\ No newline at end of file diff --git a/datum/element/lifesteal.html b/datum/element/lifesteal.html new file mode 100644 index 0000000000000..65a7dafdede12 --- /dev/null +++ b/datum/element/lifesteal.html @@ -0,0 +1,2 @@ +/datum/element/lifesteal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lifesteal

Heals the user (if attached to an item) or the mob itself (if attached to a hostile simple mob) +by a flat amount whenever a successful attack is performed against another living mob.

Vars

damage_heal_orderstatic list shared that tells which order of damage types to prioritize
flat_healheals a constant amount every time a hit occurs

Var Details

damage_heal_order

static list shared that tells which order of damage types to prioritize

flat_heal

heals a constant amount every time a hit occurs

\ No newline at end of file diff --git a/datum/element/light_blocking.html b/datum/element/light_blocking.html new file mode 100644 index 0000000000000..cb89587dc9a1c --- /dev/null +++ b/datum/element/light_blocking.html @@ -0,0 +1 @@ +/datum/element/light_blocking - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

light_blocking

Attached to movable atoms with opacity. Listens to them move and updates their old and new turf loc's opacity accordingly.

Procs

on_target_moveUpdates old and new turf loc opacities.

Proc Details

on_target_move

Updates old and new turf loc opacities.

\ No newline at end of file diff --git a/datum/element/light_eaten.html b/datum/element/light_eaten.html new file mode 100644 index 0000000000000..9e6c6845b8b4f --- /dev/null +++ b/datum/element/light_eaten.html @@ -0,0 +1 @@ +/datum/element/light_eaten - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

light_eaten

Makes anything that it attaches to incapable of producing light

Procs

block_light_onPrevents the light from turning on while the light power is greater than 0.
block_light_powerPrevents the light power of the target atom from exceeding 0 or increasing.
block_light_rangePrevents the light range of the target atom from exceeding 0 while the light power is greater than 0.
on_examineSignal handler for light eater flavortext

Proc Details

block_light_on

Prevents the light from turning on while the light power is greater than 0.

block_light_power

Prevents the light power of the target atom from exceeding 0 or increasing.

block_light_range

Prevents the light range of the target atom from exceeding 0 while the light power is greater than 0.

on_examine

Signal handler for light eater flavortext

\ No newline at end of file diff --git a/datum/element/light_eater.html b/datum/element/light_eater.html new file mode 100644 index 0000000000000..b8a13387dfaa1 --- /dev/null +++ b/datum/element/light_eater.html @@ -0,0 +1,59 @@ +/datum/element/light_eater - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

light_eater

Makes anything it attaches to capable of permanently removing something's ability to produce light.

+

The temporary equivalent is /datum/component/light_eater

Procs

devourConsumes the light on the target, permanently rendering it incapable of producing light
eat_lightsMakes the light eater consume all of the lights attached to the target atom.
on_expose_atomCalled when a source reagent exposes a target atom
on_hit_reactionCalled when a source object is used to block a thrown object, projectile, or attack
on_interacting_withCalled when a target is interacted with by a source item
on_projectile_hitCalled when a produced projectile strikes a target atom
on_projectile_self_hitCalled when a source projectile strikes a target atom
on_throw_impactCalled when a movable source is thrown and strikes a target
table_buffetAggregates a list of the light sources attached to the target atom.

Proc Details

devour

Consumes the light on the target, permanently rendering it incapable of producing light

+

Arguments:

+

eat_lights

Makes the light eater consume all of the lights attached to the target atom.

+

Arguments:

+

on_expose_atom

Called when a source reagent exposes a target atom

+

Arguments:

+

on_hit_reaction

Called when a source object is used to block a thrown object, projectile, or attack

+

Arguments:

+

on_interacting_with

Called when a target is interacted with by a source item

+

Arguments:

+

on_projectile_hit

Called when a produced projectile strikes a target atom

+

Arguments:

+

on_projectile_self_hit

Called when a source projectile strikes a target atom

+

Arguments:

+

on_throw_impact

Called when a movable source is thrown and strikes a target

+

Arugments:

+

table_buffet

Aggregates a list of the light sources attached to the target atom.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/element/liquids_height.html b/datum/element/liquids_height.html new file mode 100644 index 0000000000000..2d2c2fdfdd231 --- /dev/null +++ b/datum/element/liquids_height.html @@ -0,0 +1,2 @@ +/datum/element/liquids_height - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

liquids_height

Liquid Height element; for dynamically applying liquid blockages.

+

Used for reinforced tables, sandbags, and the likes.

Vars

height_appliedHeight applied by this element

Var Details

height_applied

Height applied by this element

\ No newline at end of file diff --git a/datum/element/living_limb_initialiser.html b/datum/element/living_limb_initialiser.html new file mode 100644 index 0000000000000..18352858a7e84 --- /dev/null +++ b/datum/element/living_limb_initialiser.html @@ -0,0 +1 @@ +/datum/element/living_limb_initialiser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

living_limb_initialiser

Spawns a living limb mob inside a limb upon attachment if it doesn't have one

Procs

try_animate_limbCreate a living limb mob inside the limb if it doesn't already have one

Proc Details

try_animate_limb

Create a living limb mob inside the limb if it doesn't already have one

\ No newline at end of file diff --git a/datum/element/loomable.html b/datum/element/loomable.html new file mode 100644 index 0000000000000..70b9020b83982 --- /dev/null +++ b/datum/element/loomable.html @@ -0,0 +1 @@ +/datum/element/loomable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

loomable

Element that makes items turn into other items when you use them on a loom (or any other thing really if you change the var)

Vars

loom_timeHow long it takes to loom the item
loom_typeWhat thing we look for triggering the loom process (usually a loom)
process_completion_verbWhat verb best fits the action of processing whatever the item is, for example "spun [thing]"
required_amountHow much of item do we need to loom, will be ignored if item isnt a stack
resulting_atomWhat will spawn when the item is loomed
target_needs_anchoringIf the target needs to be anchored

Procs

loom_meIf a do_after of the specified loom_time passes, will create a new one of resulting_atom and either delete the item, or .use the required amount if its a stack
on_examineAdds an examine blurb to the description of any item that can be loomed
try_and_loom_meChecks if the thing we clicked on can be used as a loom, and if we can actually loom the source at present (an example being does the stack have enough in it (if its a stack))

Var Details

loom_time

How long it takes to loom the item

loom_type

What thing we look for triggering the loom process (usually a loom)

process_completion_verb

What verb best fits the action of processing whatever the item is, for example "spun [thing]"

required_amount

How much of item do we need to loom, will be ignored if item isnt a stack

resulting_atom

What will spawn when the item is loomed

target_needs_anchoring

If the target needs to be anchored

Proc Details

loom_me

If a do_after of the specified loom_time passes, will create a new one of resulting_atom and either delete the item, or .use the required amount if its a stack

on_examine

Adds an examine blurb to the description of any item that can be loomed

try_and_loom_me

Checks if the thing we clicked on can be used as a loom, and if we can actually loom the source at present (an example being does the stack have enough in it (if its a stack))

\ No newline at end of file diff --git a/datum/element/lube_walking.html b/datum/element/lube_walking.html new file mode 100644 index 0000000000000..474135aeb5706 --- /dev/null +++ b/datum/element/lube_walking.html @@ -0,0 +1,4 @@ +/datum/element/lube_walking - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lube_walking

Makes a mob cause a turf to get wet as they walk, requires lying down. +Has configurable args for wet flags, time, and resting requirements.

Vars

min_time_wet_forThe minimum amount of time any tile we wet will be wet for.
require_restingBoolean on whether the mob has to be 'resting' for the element to properly affect tiles. +Used to exclude simple animals that you don't expect to lie down.
wet_flagsThe wet flags that we make each tile we are affecting slippery with.

Procs

on_resting_changedCalled when a living mob changes their resting state with require_resting on, giving them their movement speed and ability.

Var Details

min_time_wet_for

The minimum amount of time any tile we wet will be wet for.

require_resting

Boolean on whether the mob has to be 'resting' for the element to properly affect tiles. +Used to exclude simple animals that you don't expect to lie down.

wet_flags

The wet flags that we make each tile we are affecting slippery with.

Proc Details

on_resting_changed

Called when a living mob changes their resting state with require_resting on, giving them their movement speed and ability.

\ No newline at end of file diff --git a/datum/element/manufacturer_examine.html b/datum/element/manufacturer_examine.html new file mode 100644 index 0000000000000..dfec3890fb298 --- /dev/null +++ b/datum/element/manufacturer_examine.html @@ -0,0 +1 @@ +/datum/element/manufacturer_examine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

manufacturer_examine

Element that will tell anyone who examines the parent what company made it

Vars

company_stringString to use for the examine text, use the defines in code/__DEFINES/~skyrat_defines/manufacturer_strings.dm

Procs

on_examineSticks the string given to the element in Attach in the description of the attached target

Var Details

company_string

String to use for the examine text, use the defines in code/__DEFINES/~skyrat_defines/manufacturer_strings.dm

Proc Details

on_examine

Sticks the string given to the element in Attach in the description of the attached target

\ No newline at end of file diff --git a/datum/element/microwavable.html b/datum/element/microwavable.html new file mode 100644 index 0000000000000..8ea0a8dc47490 --- /dev/null +++ b/datum/element/microwavable.html @@ -0,0 +1,5 @@ +/datum/element/microwavable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

microwavable

Atoms that can be microwaved from one type to another.

Vars

added_reagentsReagents that should be added to the result
default_typepathThe typepath we default to if we were passed no microwave result
result_typepathResulting atom typepath on a completed microwave.

Procs

on_examineSignal proc for COMSIG_ATOM_EXAMINE. +Lets examiners know we can be microwaved if we're not the default mess type
on_microwavedSignal proc for COMSIG_ITEM_MICROWAVE_ACT. +Handles the actual microwaving part.

Var Details

added_reagents

Reagents that should be added to the result

default_typepath

The typepath we default to if we were passed no microwave result

result_typepath

Resulting atom typepath on a completed microwave.

Proc Details

on_examine

Signal proc for COMSIG_ATOM_EXAMINE. +Lets examiners know we can be microwaved if we're not the default mess type

on_microwaved

Signal proc for COMSIG_ITEM_MICROWAVE_ACT. +Handles the actual microwaving part.

\ No newline at end of file diff --git a/datum/element/mob_access.html b/datum/element/mob_access.html new file mode 100644 index 0000000000000..83c7cdc7a39fe --- /dev/null +++ b/datum/element/mob_access.html @@ -0,0 +1 @@ +/datum/element/mob_access - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mob_access

element given to mobs that have levels of access

Vars

my_accessWhat can this mob access?

Var Details

my_access

What can this mob access?

\ No newline at end of file diff --git a/datum/element/mob_grabber.html b/datum/element/mob_grabber.html new file mode 100644 index 0000000000000..e5a91b64019d3 --- /dev/null +++ b/datum/element/mob_grabber.html @@ -0,0 +1 @@ +/datum/element/mob_grabber - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mob_grabber

Grab onto mobs we attack

Vars

minimum_statWhat state must the mob be in to be grabbed?
steal_from_othersIf someone else is already grabbing this, will we take it?

Procs

grab_mobTry and grab something we attacked

Var Details

minimum_stat

What state must the mob be in to be grabbed?

steal_from_others

If someone else is already grabbing this, will we take it?

Proc Details

grab_mob

Try and grab something we attacked

\ No newline at end of file diff --git a/datum/element/mob_killed_tally.html b/datum/element/mob_killed_tally.html new file mode 100644 index 0000000000000..c65ab050f2f6a --- /dev/null +++ b/datum/element/mob_killed_tally.html @@ -0,0 +1,2 @@ +/datum/element/mob_killed_tally - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mob_killed_tally

Mob Killed Tally; which ticks up a blackbox when the mob dies

+

Used for all the mining mobs!

Vars

tally_stringWhich tally needs to be ticked up in the blackbox

Var Details

tally_string

Which tally needs to be ticked up in the blackbox

\ No newline at end of file diff --git a/datum/element/movement_turf_changer.html b/datum/element/movement_turf_changer.html new file mode 100644 index 0000000000000..26cedaed29e1c --- /dev/null +++ b/datum/element/movement_turf_changer.html @@ -0,0 +1,2 @@ +/datum/element/movement_turf_changer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

movement_turf_changer

movement_turf_changer element; which makes the movement of a movable atom change the turf it moved to

+

Used for moonicorns!

Vars

turf_typePath of the turf added on top

Var Details

turf_type

Path of the turf added on top

\ No newline at end of file diff --git a/datum/element/movetype_handler.html b/datum/element/movetype_handler.html new file mode 100644 index 0000000000000..873ba9944ae71 --- /dev/null +++ b/datum/element/movetype_handler.html @@ -0,0 +1,4 @@ +/datum/element/movetype_handler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

movetype_handler

An element that enables and disables movetype bitflags whenever the relative traits are added or removed. +It also handles the +2/-2 pixel y anim loop typical of mobs possessing the FLYING or FLOATING movetypes. +This element is necessary for the TRAIT_MOVE_ traits to work correctly, so make sure to attach this element +before adding them to non-living movables.

Procs

on_movement_type_trait_gainCalled when a movement type trait is added to the movable. Enables the relative bitflag.
on_movement_type_trait_lossCalled when a movement type trait is removed from the movable. Disables the relative bitflag if it wasn't there in the compile-time bitfield.
on_no_floating_anim_trait_gainCalled when the TRAIT_NO_FLOATING_ANIM trait is added to the movable. Stops it from bobbing up and down.
on_no_floating_anim_trait_lossCalled when the TRAIT_NO_FLOATING_ANIM trait is removed from the mob. Restarts the bobbing animation.

Proc Details

on_movement_type_trait_gain

Called when a movement type trait is added to the movable. Enables the relative bitflag.

on_movement_type_trait_loss

Called when a movement type trait is removed from the movable. Disables the relative bitflag if it wasn't there in the compile-time bitfield.

on_no_floating_anim_trait_gain

Called when the TRAIT_NO_FLOATING_ANIM trait is added to the movable. Stops it from bobbing up and down.

on_no_floating_anim_trait_loss

Called when the TRAIT_NO_FLOATING_ANIM trait is removed from the mob. Restarts the bobbing animation.

\ No newline at end of file diff --git a/datum/element/nerfed_pulling.html b/datum/element/nerfed_pulling.html new file mode 100644 index 0000000000000..1598e7009b250 --- /dev/null +++ b/datum/element/nerfed_pulling.html @@ -0,0 +1 @@ +/datum/element/nerfed_pulling - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nerfed_pulling

This living will be slower when pulling/moving anything in the given typecache

Vars

typecacheThe typecache of things that shouldn't be easily movable

Var Details

typecache

The typecache of things that shouldn't be easily movable

\ No newline at end of file diff --git a/datum/element/nifsoft_hud.html b/datum/element/nifsoft_hud.html new file mode 100644 index 0000000000000..075f6f78ada1d --- /dev/null +++ b/datum/element/nifsoft_hud.html @@ -0,0 +1 @@ +/datum/element/nifsoft_hud - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

nifsoft_hud

Procs

on_examineAdds text to the examine text of the parent item, explaining that the item can be used to enable the use of NIFSoft HUDs

Proc Details

on_examine

Adds text to the examine text of the parent item, explaining that the item can be used to enable the use of NIFSoft HUDs

\ No newline at end of file diff --git a/datum/element/noticable_organ.html b/datum/element/noticable_organ.html new file mode 100644 index 0000000000000..6c4230ed9f9da --- /dev/null +++ b/datum/element/noticable_organ.html @@ -0,0 +1,2 @@ +/datum/element/noticable_organ - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

noticable_organ

noticable organ element; which makes organs have a special description added to the person with the organ, if certain body zones aren't covered.

+

Used for infused mutant organs

Vars

body_zoneWhich body zone has to be exposed. If none is set, this is always noticable.
infused_descShows on examining someone with an infused organ.

Procs

should_show_textProc that returns true or false if the organ should show its examine check.

Var Details

body_zone

Which body zone has to be exposed. If none is set, this is always noticable.

infused_desc

Shows on examining someone with an infused organ.

Proc Details

should_show_text

Proc that returns true or false if the organ should show its examine check.

\ No newline at end of file diff --git a/datum/element/obj_regen.html b/datum/element/obj_regen.html new file mode 100644 index 0000000000000..997699ecba341 --- /dev/null +++ b/datum/element/obj_regen.html @@ -0,0 +1 @@ +/datum/element/obj_regen - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

obj_regen

Object integrity regeneration element added by alien alloy.

Vars

currentrunThe current stack of objects we are processing.
processingThe objects that are regenerating due to this element.
rateThe rate of regeneration as a function of maximum integrity.
resumedWhether we stopped processing early the last tick.

Procs

on_take_damageHandles beginning processing objects.
processHandle regenerating attached objects.

Var Details

currentrun

The current stack of objects we are processing.

processing

The objects that are regenerating due to this element.

rate

The rate of regeneration as a function of maximum integrity.

resumed

Whether we stopped processing early the last tick.

Proc Details

on_take_damage

Handles beginning processing objects.

process

Handle regenerating attached objects.

\ No newline at end of file diff --git a/datum/element/on_hit_effect.html b/datum/element/on_hit_effect.html new file mode 100644 index 0000000000000..00adba57518c0 --- /dev/null +++ b/datum/element/on_hit_effect.html @@ -0,0 +1,3 @@ +/datum/element/on_hit_effect - /tg/ Station 13
/tg/ Station 13 - Modules - Types

on_hit_effect

On Hit Effect Component!

+

Component for other elements/components to rely on for on-hit effects without duplicating the on-hit code. +See Lifesteal, or bane for examples.

\ No newline at end of file diff --git a/datum/element/organ_set_bonus.html b/datum/element/organ_set_bonus.html new file mode 100644 index 0000000000000..75f8d23639fe9 --- /dev/null +++ b/datum/element/organ_set_bonus.html @@ -0,0 +1,2 @@ +/datum/element/organ_set_bonus - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

organ_set_bonus

organ set bonus element; which makes organs in the same set, all in one person, provide a unique bonus!

+

Used for infused organs!

Vars

bonus_typeStatus Effect typepath to instantiate and apply to the mob.

Var Details

bonus_type

Status Effect typepath to instantiate and apply to the mob.

\ No newline at end of file diff --git a/datum/element/pet_bonus.html b/datum/element/pet_bonus.html new file mode 100644 index 0000000000000..781530b31b4de --- /dev/null +++ b/datum/element/pet_bonus.html @@ -0,0 +1,2 @@ +/datum/element/pet_bonus - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Pet bonus element!

Bespoke element that plays a fun message, sends a heart out, and gives a stronger mood bonus when you pet this animal. +I may have been able to make this work for carbons, but it would have been interjecting on some help mode interactions anyways.

Vars

emote_messageoptional cute message to send when you pet your pet!
emote_namestring key of the emote to do when pet.
moodletactual moodlet given, defaults to the pet animal one

Var Details

emote_message

optional cute message to send when you pet your pet!

emote_name

string key of the emote to do when pet.

moodlet

actual moodlet given, defaults to the pet animal one

\ No newline at end of file diff --git a/datum/element/plant_backfire.html b/datum/element/plant_backfire.html new file mode 100644 index 0000000000000..620c39ef3f1ab --- /dev/null +++ b/datum/element/plant_backfire.html @@ -0,0 +1,22 @@ +/datum/element/plant_backfire - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

plant_backfire

-- Plant backfire element -- +Certain high-danger plants, like death-nettles, will backfire and harm the holder if they're not properly protected. +If a user is protected with something like leather gloves, they can handle them normally. +If they're not protected properly, we invoke a callback on the user, harming or inconveniencing them.

Vars

cancel_actionWhether we stop the current action if backfire is triggered (EX: returning CANCEL_ATTACK_CHAIN)
extra_genesAny plant genes we want to check that are required for our plant to be dangerous. Plants without a gene in this list will be considered safe. List of typepaths.
extra_traitsAny extra traits we want to check in addition to TRAIT_PLANT_SAFE. Mobs with a trait in this list will be considered safe. List of traits.

Procs

attack_safety_checkChecks before we attack if we're okay to continue.
backfireThe actual backfire occurs here. +Checks if the user is able to safely handle the plant. +If not, sends the backfire signal (meaning backfire will occur and be handled by one or multiple genes).
pickup_safety_checkChecks before we pick up the plant if we're okay to continue.
plant_safety_checkActually checks if our user is safely handling our plant.
throw_safety_checkChecks before we throw the plant if we're okay to continue.

Var Details

cancel_action

Whether we stop the current action if backfire is triggered (EX: returning CANCEL_ATTACK_CHAIN)

extra_genes

Any plant genes we want to check that are required for our plant to be dangerous. Plants without a gene in this list will be considered safe. List of typepaths.

extra_traits

Any extra traits we want to check in addition to TRAIT_PLANT_SAFE. Mobs with a trait in this list will be considered safe. List of traits.

Proc Details

attack_safety_check

Checks before we attack if we're okay to continue.

+

source - our plant +user - the mob wielding our [source]

backfire

The actual backfire occurs here. +Checks if the user is able to safely handle the plant. +If not, sends the backfire signal (meaning backfire will occur and be handled by one or multiple genes).

+

Returns FALSE if the user was safe and no backfire occured. +Returns TRUE if the user was not safe and a backfire actually happened.

pickup_safety_check

Checks before we pick up the plant if we're okay to continue.

+

source - our plant +user - the mob picking our [source]

plant_safety_check

Actually checks if our user is safely handling our plant.

+

Checks for TRAIT_PLANT_SAFE, and returns TRUE if we have it. +Then, any extra traits we need to check (Like TRAIT_PIERCEIMMUNE for nettles) and returns TRUE if we have one of them. +Then, any extra genes we need to check (Like liquid contents for bluespace tomatos) and returns TRUE if we don't have the gene.

+

source - our plant +user - the carbon handling our [source]

+

returns FALSE if none of the checks are successful.

throw_safety_check

Checks before we throw the plant if we're okay to continue.

+

source - our plant +thrower - the mob throwing our [source]

\ No newline at end of file diff --git a/datum/element/pollution_emitter.html b/datum/element/pollution_emitter.html new file mode 100644 index 0000000000000..af7f88ef4249c --- /dev/null +++ b/datum/element/pollution_emitter.html @@ -0,0 +1 @@ +/datum/element/pollution_emitter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pollution_emitter

Vars

affectedList of all affected atoms
pollutant_amountAmount of the pollutants spawned per process
pollutant_typeType of the spawned pollutions

Var Details

affected

List of all affected atoms

pollutant_amount

Amount of the pollutants spawned per process

pollutant_type

Type of the spawned pollutions

\ No newline at end of file diff --git a/datum/element/poster_tearer.html b/datum/element/poster_tearer.html new file mode 100644 index 0000000000000..ac1ddaf4a4d0c --- /dev/null +++ b/datum/element/poster_tearer.html @@ -0,0 +1 @@ +/datum/element/poster_tearer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

poster_tearer

Allows mobs with this element attached to just simply tear down any poster they desire to.

Vars

interaction_keyInteraction key to use whilst tearing down a poster.
tear_timeThe amount of time it takes to tear down a poster.

Procs

on_attacked_posterTry to tear up a poster on the wall
tear_it_downActually work on tearing down that poster

Var Details

interaction_key

Interaction key to use whilst tearing down a poster.

tear_time

The amount of time it takes to tear down a poster.

Proc Details

on_attacked_poster

Try to tear up a poster on the wall

tear_it_down

Actually work on tearing down that poster

\ No newline at end of file diff --git a/datum/element/prevent_attacking_of_types.html b/datum/element/prevent_attacking_of_types.html new file mode 100644 index 0000000000000..6d24157b4b140 --- /dev/null +++ b/datum/element/prevent_attacking_of_types.html @@ -0,0 +1,2 @@ +/datum/element/prevent_attacking_of_types - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

prevent_attacking_of_types

This hostile will not be able to attack a given typecache, and will receive +a balloon alert when it tries to.

Vars

alert_messageThe message to send to the hostile mob when they try to attack something they can't
typecacheThe typecache of things this hostile can't attack

Var Details

alert_message

The message to send to the hostile mob when they try to attack something they can't

typecache

The typecache of things this hostile can't attack

\ No newline at end of file diff --git a/datum/element/processable.html b/datum/element/processable.html new file mode 100644 index 0000000000000..4e38de2647082 --- /dev/null +++ b/datum/element/processable.html @@ -0,0 +1,9 @@ +/datum/element/processable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

processable

Vars

amount_createdAmount of the resulting actor this will create
result_atom_typeThe type of atom this creates when the processing recipe is used.
screentip_verbVerb used in processing food (such as slice, flatten), defaults to process
table_requiredWhether or not the atom being processed has to be on a table or tray to process it
time_to_processTime to process the atom
tool_behaviourThe tool behaviour for this processing recipe

Procs

OnExamineSo people know what the frick they're doing without reading from a wiki page (I mean they will inevitably but i'm trying to help, ok?)
on_requesting_context_from_itemAdds context sensitivy directly to the processable file for screentips +Arguments:

Var Details

amount_created

Amount of the resulting actor this will create

result_atom_type

The type of atom this creates when the processing recipe is used.

screentip_verb

Verb used in processing food (such as slice, flatten), defaults to process

table_required

Whether or not the atom being processed has to be on a table or tray to process it

time_to_process

Time to process the atom

tool_behaviour

The tool behaviour for this processing recipe

Proc Details

OnExamine

So people know what the frick they're doing without reading from a wiki page (I mean they will inevitably but i'm trying to help, ok?)

on_requesting_context_from_item

Adds context sensitivy directly to the processable file for screentips +Arguments:

+
\ No newline at end of file diff --git a/datum/element/projectile_shield.html b/datum/element/projectile_shield.html new file mode 100644 index 0000000000000..464d5aaa6274f --- /dev/null +++ b/datum/element/projectile_shield.html @@ -0,0 +1 @@ +/datum/element/projectile_shield - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

projectile_shield

Procs

AttachBullet shield element, spawns an anti-toolbox shield when hit by a bullet.

Proc Details

Attach

Bullet shield element, spawns an anti-toolbox shield when hit by a bullet.

\ No newline at end of file diff --git a/datum/element/quality_food_ingredient.html b/datum/element/quality_food_ingredient.html new file mode 100644 index 0000000000000..6a36af0dcd54a --- /dev/null +++ b/datum/element/quality_food_ingredient.html @@ -0,0 +1 @@ +/datum/element/quality_food_ingredient - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

quality_food_ingredient

An element that adds extra food quality to any edible that was made from an atom with this attached.

Vars

complexity_increaseThe increase of recipe complexity (basically hardcoded food quality) of edibles made with this.

Var Details

complexity_increase

The increase of recipe complexity (basically hardcoded food quality) of edibles made with this.

\ No newline at end of file diff --git a/datum/element/radioactive.html b/datum/element/radioactive.html new file mode 100644 index 0000000000000..83b9c4a173b29 --- /dev/null +++ b/datum/element/radioactive.html @@ -0,0 +1 @@ +/datum/element/radioactive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

radioactive

This atom will regularly pulse radiation.

Vars

chanceChance the object is irradiated
minimum_exposure_timeMinimum time needed in order to be irradiated
rangeRange of our wave in tiles
thresholdThreshold for radioactive permeance

Var Details

chance

Chance the object is irradiated

minimum_exposure_time

Minimum time needed in order to be irradiated

range

Range of our wave in tiles

threshold

Threshold for radioactive permeance

\ No newline at end of file diff --git a/datum/element/ranged_armour.html b/datum/element/ranged_armour.html new file mode 100644 index 0000000000000..48a1f777a150f --- /dev/null +++ b/datum/element/ranged_armour.html @@ -0,0 +1 @@ +/datum/element/ranged_armour - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ranged_armour

Reduces or nullifies damage from ranged weaponry with force below a certain value

Vars

below_projectile_multiplierProjectile damage below the minimum is multiplied by this value
minimum_projectile_forceThe minimum force a projectile must have to ignore our armour
minimum_thrown_forceThe minimum force a thrown object must have to ignore our armour
throw_blocked_messageMessage to output if throwing damage is absorbed
vulnerable_projectile_typesProjectile damage types which work regardless of force

Procs

pre_bullet_impactModify or ignore bullet damage based on projectile properties
pre_thrown_impactIgnore thrown damage based on projectile properties. There's no elegant way to multiply the damage because throwforce is persistent.

Var Details

below_projectile_multiplier

Projectile damage below the minimum is multiplied by this value

minimum_projectile_force

The minimum force a projectile must have to ignore our armour

minimum_thrown_force

The minimum force a thrown object must have to ignore our armour

throw_blocked_message

Message to output if throwing damage is absorbed

vulnerable_projectile_types

Projectile damage types which work regardless of force

Proc Details

pre_bullet_impact

Modify or ignore bullet damage based on projectile properties

pre_thrown_impact

Ignore thrown damage based on projectile properties. There's no elegant way to multiply the damage because throwforce is persistent.

\ No newline at end of file diff --git a/datum/element/relay_attackers.html b/datum/element/relay_attackers.html new file mode 100644 index 0000000000000..a5db3b6be6725 --- /dev/null +++ b/datum/element/relay_attackers.html @@ -0,0 +1,3 @@ +/datum/element/relay_attackers - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

relay_attackers

This element registers to a shitload of signals which can signify "someone attacked me". +If anyone does it sends a single "someone attacked me" signal containing details about who done it. +This prevents other components and elements from having to register to the same list of a million signals, should be more maintainable in one place.

Procs

on_bullet_actEven if another component blocked this hit, someone still shot at us
on_hitbyEven if another component blocked this hit, someone still threw something
relay_attackerSend out a signal identifying whoever just attacked us (usually a mob but sometimes a mech or turret)

Proc Details

on_bullet_act

Even if another component blocked this hit, someone still shot at us

on_hitby

Even if another component blocked this hit, someone still threw something

relay_attacker

Send out a signal identifying whoever just attacked us (usually a mob but sometimes a mech or turret)

\ No newline at end of file diff --git a/datum/element/repackable.html b/datum/element/repackable.html new file mode 100644 index 0000000000000..87d8a3f6fd9c6 --- /dev/null +++ b/datum/element/repackable.html @@ -0,0 +1 @@ +/datum/element/repackable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

repackable

An element that allows objects to be right clicked and turned into another item after a delay

Vars

disassemble_objectsDo we tell objects destroyed that we disassembled them?
item_to_pack_intoThe path to spawn when the repacking operation is complete
repacking_timeHow long will repacking the attachee take

Procs

on_requesting_context_from_itemAdds screen context for hovering over the repackable items with your mouse
on_right_clickChecks if the user can actually interact with the structures in question, then invokes the proc to make it repack
repackRemoves the element target and spawns a new one of whatever item_to_pack_into is

Var Details

disassemble_objects

Do we tell objects destroyed that we disassembled them?

item_to_pack_into

The path to spawn when the repacking operation is complete

repacking_time

How long will repacking the attachee take

Proc Details

on_requesting_context_from_item

Adds screen context for hovering over the repackable items with your mouse

on_right_click

Checks if the user can actually interact with the structures in question, then invokes the proc to make it repack

repack

Removes the element target and spawns a new one of whatever item_to_pack_into is

\ No newline at end of file diff --git a/datum/element/ridable.html b/datum/element/ridable.html new file mode 100644 index 0000000000000..9661b5718ea50 --- /dev/null +++ b/datum/element/ridable.html @@ -0,0 +1,5 @@ +/datum/element/ridable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ridable

This element is used to indicate that a movable atom can be mounted by mobs in order to ride it. The movable is considered mounted when a mob is buckled to it, +at which point a riding component is created on the movable, and that component handles the actual riding behavior.

+

Besides the target, the ridable element has one argument: the component subtype. This is not really ideal since there's ~20-30 component subtypes rather than +having the behavior defined on the ridable atoms themselves or some such, but because the old riding behavior was so horrifyingly spread out and redundant, +just having the variables, behavior, and procs be standardized is still a big improvement.

Vars

potion_boostedIf we have a xenobio red potion applied to us, we get split off so we can pass our special status onto new riding components
riding_component_typeThe specific riding component subtype we're loading our instructions from, don't leave this as default please!

Procs

check_mountingSomeone is buckling to this movable, which is literally the only thing we care about (other than speed potions)
check_potionChecks to see if we've been hit with a red xenobio potion to make us faster. This is only registered if we're a vehicle
equip_buckle_inhandsTry putting the appropriate number of riding offhand items into the target's hands, return FALSE if we can't
unequip_buckle_inhandsRemove all of the relevant riding offhand items from the target

Var Details

potion_boosted

If we have a xenobio red potion applied to us, we get split off so we can pass our special status onto new riding components

riding_component_type

The specific riding component subtype we're loading our instructions from, don't leave this as default please!

Proc Details

check_mounting

Someone is buckling to this movable, which is literally the only thing we care about (other than speed potions)

check_potion

Checks to see if we've been hit with a red xenobio potion to make us faster. This is only registered if we're a vehicle

equip_buckle_inhands

Try putting the appropriate number of riding offhand items into the target's hands, return FALSE if we can't

unequip_buckle_inhands

Remove all of the relevant riding offhand items from the target

\ No newline at end of file diff --git a/datum/element/rsd_interface.html b/datum/element/rsd_interface.html new file mode 100644 index 0000000000000..6c02f0c4df35c --- /dev/null +++ b/datum/element/rsd_interface.html @@ -0,0 +1 @@ +/datum/element/rsd_interface - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

rsd_interface

Procs

on_examineAdds text to the examine text of the parent item, explaining that the item can be used to enable the use of NIFSoft HUDs

Proc Details

on_examine

Adds text to the examine text of the parent item, explaining that the item can be used to enable the use of NIFSoft HUDs

\ No newline at end of file diff --git a/datum/element/rust.html b/datum/element/rust.html new file mode 100644 index 0000000000000..0703a971198fa --- /dev/null +++ b/datum/element/rust.html @@ -0,0 +1,2 @@ +/datum/element/rust - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

rust

Adding this element to an atom will have it automatically render an overlay. +The overlay can be specified in new as the first paramter; if not set it defaults to rust_overlay's rust_default

Vars

rust_overlayThe rust image itself, since the icon and icon state are only used as an argument

Procs

handle_tool_useWe call this from secondary_tool_act because we sleep with do_after
on_interactionPrevents placing floor tiles on rusted turf
secondary_tool_actBecause do_after sleeps we register the signal here and defer via an async call

Var Details

rust_overlay

The rust image itself, since the icon and icon state are only used as an argument

Proc Details

handle_tool_use

We call this from secondary_tool_act because we sleep with do_after

on_interaction

Prevents placing floor tiles on rusted turf

secondary_tool_act

Because do_after sleeps we register the signal here and defer via an async call

\ No newline at end of file diff --git a/datum/element/sedated_mob.html b/datum/element/sedated_mob.html new file mode 100644 index 0000000000000..f57208af172d4 --- /dev/null +++ b/datum/element/sedated_mob.html @@ -0,0 +1 @@ +/datum/element/sedated_mob - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sedated_mob

Attached to a mob with an AI controller, if this mob is attacked then it will replace the AI controller.

Vars

awake_controllerThe AI controller used when we wake up

Procs

on_attackedAdd an attacking atom to a blackboard list of things which attacked us

Var Details

awake_controller

The AI controller used when we wake up

Proc Details

on_attacked

Add an attacking atom to a blackboard list of things which attacked us

\ No newline at end of file diff --git a/datum/element/series.html b/datum/element/series.html new file mode 100644 index 0000000000000..fa2649899d5b0 --- /dev/null +++ b/datum/element/series.html @@ -0,0 +1,3 @@ +/datum/element/series - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

series

series element!

+

bespoke element that assigns a series number to toys on examine, and shows their series name! +used for mechas and rare collectable hats, should totally be used for way more ;)

Procs

on_examinesignal called examining

Proc Details

on_examine

signal called examining

\ No newline at end of file diff --git a/datum/element/sideway_movement.html b/datum/element/sideway_movement.html new file mode 100644 index 0000000000000..caf7a3eb34a39 --- /dev/null +++ b/datum/element/sideway_movement.html @@ -0,0 +1 @@ +/datum/element/sideway_movement - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

sideway_movement

A simple element that forces the mob to face a perpendicular direction when moving, like crabs.

Procs

on_moveretain the old dir unless walking straight ahead or backward, in which case rotate the dir left or right by a 90°

Proc Details

on_move

retain the old dir unless walking straight ahead or backward, in which case rotate the dir left or right by a 90°

\ No newline at end of file diff --git a/datum/element/simple_flying.html b/datum/element/simple_flying.html new file mode 100644 index 0000000000000..b8ce4bbd0f8fe --- /dev/null +++ b/datum/element/simple_flying.html @@ -0,0 +1,2 @@ +/datum/element/simple_flying - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

simple flying element!

Non bespoke element (1 in existence) that makes animals fly while living and... not while dead! +Note: works for carbons and above, but please do something better. humans have wings got dangit!

Procs

on_stat_changesignal called by the stat of the target changing

Proc Details

on_stat_change

signal called by the stat of the target changing

\ No newline at end of file diff --git a/datum/element/skill_reward.html b/datum/element/skill_reward.html new file mode 100644 index 0000000000000..0ec488357871e --- /dev/null +++ b/datum/element/skill_reward.html @@ -0,0 +1 @@ +/datum/element/skill_reward - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

skill_reward

An element that forbids mobs without a required skill level from equipping the item.

Vars

associated_skillThe required skill the user has to have to equip the item.

Procs

drop_if_unworthyWe check if the item can be equipped, otherwise we drop it.

Var Details

associated_skill

The required skill the user has to have to equip the item.

Proc Details

drop_if_unworthy

We check if the item can be equipped, otherwise we drop it.

\ No newline at end of file diff --git a/datum/element/slapcrafting.html b/datum/element/slapcrafting.html new file mode 100644 index 0000000000000..90b852089a222 --- /dev/null +++ b/datum/element/slapcrafting.html @@ -0,0 +1,8 @@ +/datum/element/slapcrafting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

slapcrafting

Slapcrafting component!

Procs

AttachSlapcraft element
get_examine_infoAlerts any examiners to the recipe, if they wish to know more.
get_examine_more_infoAlerts any examiners to the details of the recipe.

Proc Details

Attach

Slapcraft element

+

Slap it onto a item to be able to slapcraft with it

+

args:

+

get_examine_info

Alerts any examiners to the recipe, if they wish to know more.

get_examine_more_info

Alerts any examiners to the details of the recipe.

\ No newline at end of file diff --git a/datum/element/soft_landing.html b/datum/element/soft_landing.html new file mode 100644 index 0000000000000..860a3d419a5ba --- /dev/null +++ b/datum/element/soft_landing.html @@ -0,0 +1,2 @@ +/datum/element/soft_landing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

soft_landing

soft landing element!

+

Non bespoke element (1 in existence) that makes objs provide a soft landing when you fall on them!

Procs

intercept_z_fallsignal called by the stat of the target changing

Proc Details

intercept_z_fall

signal called by the stat of the target changing

\ No newline at end of file diff --git a/datum/element/squish.html b/datum/element/squish.html new file mode 100644 index 0000000000000..85e64e304b81a --- /dev/null +++ b/datum/element/squish.html @@ -0,0 +1,3 @@ +/datum/element/squish - /tg/ Station 13
/tg/ Station 13 - Modules - Types

squish

squish.dm

+

It's an element that squishes things. After the duration passes, it reverses the transformation it squished with, taking into account if they are a different orientation than they started (read: rotationally-fluid)

+

Normal squishes apply vertically, as if the target is being squished from above, but you can set reverse to TRUE if you want to squish them from the sides, like if they pancake into a wall from the East or West

\ No newline at end of file diff --git a/datum/element/squish_sound.html b/datum/element/squish_sound.html new file mode 100644 index 0000000000000..20581dcbc6171 --- /dev/null +++ b/datum/element/squish_sound.html @@ -0,0 +1 @@ +/datum/element/squish_sound - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

squish_sound

Plays a sound when walked into, lower sounding if the person walking into it has light stepping.

Vars

sound_to_playThe sound to play when something holding this element is entered.

Procs

on_crossPlays the set sound upon being entered, as long as the person walking into it can actually walk.

Var Details

sound_to_play

The sound to play when something holding this element is entered.

Proc Details

on_cross

Plays the set sound upon being entered, as long as the person walking into it can actually walk.

\ No newline at end of file diff --git a/datum/element/strippable.html b/datum/element/strippable.html new file mode 100644 index 0000000000000..5c074306ac9fc --- /dev/null +++ b/datum/element/strippable.html @@ -0,0 +1,5 @@ +/datum/element/strippable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

strippable

An element for atoms that, when dragged and dropped onto a mob, opens a strip panel.

Vars

itemsAn assoc list of keys to /datum/strippable_item
should_strip_proc_pathA proc path that returns TRUE/FALSE if we should show the strip panel for this entity. +If it does not exist, the strip menu will always show. +Will be called with (mob/user).
strip_menusAn existing strip menus

Var Details

items

An assoc list of keys to /datum/strippable_item

should_strip_proc_path

A proc path that returns TRUE/FALSE if we should show the strip panel for this entity. +If it does not exist, the strip menu will always show. +Will be called with (mob/user).

strip_menus

An existing strip menus

\ No newline at end of file diff --git a/datum/element/structure_repair.html b/datum/element/structure_repair.html new file mode 100644 index 0000000000000..536ec02a19d9a --- /dev/null +++ b/datum/element/structure_repair.html @@ -0,0 +1 @@ +/datum/element/structure_repair - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

structure_repair

Intercepts attacks from mobs with this component to instead repair specified structures.

Vars

heal_amountHow much to heal structures by
structure_types_typecacheTypecache of types of structures to repair

Procs

try_repairIf the target is of a valid type, interrupt the attack chain to repair it instead

Var Details

heal_amount

How much to heal structures by

structure_types_typecache

Typecache of types of structures to repair

Proc Details

try_repair

If the target is of a valid type, interrupt the attack chain to repair it instead

\ No newline at end of file diff --git a/datum/element/swabable.html b/datum/element/swabable.html new file mode 100644 index 0000000000000..248429b4a786c --- /dev/null +++ b/datum/element/swabable.html @@ -0,0 +1 @@ +/datum/element/swabable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

swabable

Vars

cell_line_amountAmount of cell lines on a single sample
cell_line_defineThe define of the cell_line list to use
virus_chanceThe chance the sample will be infected with a virus.
virus_defineThe define of the cell_virus list to use

Procs

AttachListens for the swab signal and then generate a sample based on pre-determined lists that are saved as GLOBs. this allows us to have very few swabbable element instances.
DetachStops listening to the swab signal; you can no longer be swabbed.
GenerateSampleGenerates a /datum/biological_sample
GetSwabbedRan when the parent is swabbed by an object that can swab that type of obj. The list is sent by ref, which means the thing which sent the signal will still have the updated list.

Var Details

cell_line_amount

Amount of cell lines on a single sample

cell_line_define

The define of the cell_line list to use

virus_chance

The chance the sample will be infected with a virus.

virus_define

The define of the cell_virus list to use

Proc Details

Attach

Listens for the swab signal and then generate a sample based on pre-determined lists that are saved as GLOBs. this allows us to have very few swabbable element instances.

Detach

Stops listening to the swab signal; you can no longer be swabbed.

GenerateSample

Generates a /datum/biological_sample

GetSwabbed

Ran when the parent is swabbed by an object that can swab that type of obj. The list is sent by ref, which means the thing which sent the signal will still have the updated list.

\ No newline at end of file diff --git a/datum/element/tenacious.html b/datum/element/tenacious.html new file mode 100644 index 0000000000000..b7bad823c797f --- /dev/null +++ b/datum/element/tenacious.html @@ -0,0 +1,2 @@ +/datum/element/tenacious - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

tenacious

tenacious element; which makes the parent move faster while crawling

+

Used by sparring sect!

Procs

on_stat_changesignal called by the stat of the target changing

Proc Details

on_stat_change

signal called by the stat of the target changing

\ No newline at end of file diff --git a/datum/element/tiny_mob_hunter.html b/datum/element/tiny_mob_hunter.html new file mode 100644 index 0000000000000..5dcce1c28079f --- /dev/null +++ b/datum/element/tiny_mob_hunter.html @@ -0,0 +1 @@ +/datum/element/tiny_mob_hunter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tiny_mob_hunter

Deals bonus brute damage to smaller mobs

Vars

bonus_damageAdditional damage to apply
target_sizeWill apply bonus to mobs this size or smaller

Procs

on_attacked_targetApplies a bonus following the attack

Var Details

bonus_damage

Additional damage to apply

target_size

Will apply bonus to mobs this size or smaller

Proc Details

on_attacked_target

Applies a bonus following the attack

\ No newline at end of file diff --git a/datum/element/tool_flash.html b/datum/element/tool_flash.html new file mode 100644 index 0000000000000..4afc9b7726c37 --- /dev/null +++ b/datum/element/tool_flash.html @@ -0,0 +1,2 @@ +/datum/element/tool_flash - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tool_flash

Tool flash bespoke element

+

Flashes the user when using this tool

Vars

flash_strengthStrength of the flash

Var Details

flash_strength

Strength of the flash

\ No newline at end of file diff --git a/datum/element/tool_renaming.html b/datum/element/tool_renaming.html new file mode 100644 index 0000000000000..08b182b0cbbfa --- /dev/null +++ b/datum/element/tool_renaming.html @@ -0,0 +1,3 @@ +/datum/element/tool_renaming - /tg/ Station 13
/tg/ Station 13 - Modules - Types

tool_renaming

Renaming tool element

+

When using this tool on an object with UNIQUE_RENAME, +lets the user rename/redesc it.

\ No newline at end of file diff --git a/datum/element/toy_talk.html b/datum/element/toy_talk.html new file mode 100644 index 0000000000000..de5840eda96b5 --- /dev/null +++ b/datum/element/toy_talk.html @@ -0,0 +1,2 @@ +/datum/element/toy_talk - /tg/ Station 13
/tg/ Station 13 - Modules - Types

toy_talk

Allows people to talk via the item with .l or .r

+

Be sure to override [/atom/movable/proc/GetVoice] if you want the item's "voice" to not default to itself

\ No newline at end of file diff --git a/datum/element/tumor_corruption.html b/datum/element/tumor_corruption.html new file mode 100644 index 0000000000000..35eb39113cb9c --- /dev/null +++ b/datum/element/tumor_corruption.html @@ -0,0 +1,3 @@ +/datum/element/tumor_corruption - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

tumor_corruption

Element that handles spreading the Hemophages' pulsating tumor corruption +to applicable organs, so that they can be properly corrupted, even if they +weren't roundstart-corrupted organs.

Procs

handle_organ_corruption_on_existing_organsHandles corrupting already-existing organs upon having the tumor be inserted in the mob.
try_corrupt_new_organHandles corrupting any new organ that's inserted into the affected mob, if needed.

Proc Details

handle_organ_corruption_on_existing_organs

Handles corrupting already-existing organs upon having the tumor be inserted in the mob.

try_corrupt_new_organ

Handles corrupting any new organ that's inserted into the affected mob, if needed.

\ No newline at end of file diff --git a/datum/element/turf_z_transparency.html b/datum/element/turf_z_transparency.html new file mode 100644 index 0000000000000..62686a99e2851 --- /dev/null +++ b/datum/element/turf_z_transparency.html @@ -0,0 +1 @@ +/datum/element/turf_z_transparency - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

turf_z_transparency

Procs

AttachThis proc sets up the signals to handle updating viscontents when turfs above/below update. Handle plane and layer here too so that they don't cover other obs/turfs in Dream Maker
get_baseturf_underlayCalled when there is no real turf below this turf
update_multi_zUpdates the viscontents or underlays below this tile.

Proc Details

Attach

This proc sets up the signals to handle updating viscontents when turfs above/below update. Handle plane and layer here too so that they don't cover other obs/turfs in Dream Maker

get_baseturf_underlay

Called when there is no real turf below this turf

update_multi_z

Updates the viscontents or underlays below this tile.

\ No newline at end of file diff --git a/datum/element/undertile.html b/datum/element/undertile.html new file mode 100644 index 0000000000000..492391375af6b --- /dev/null +++ b/datum/element/undertile.html @@ -0,0 +1 @@ +/datum/element/undertile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

undertile

Add to an object if you want to be able to be hidden under tiles

Vars

invisibility_levellevel of invisibility applied when under a tile. Could be INVISIBILITY_OBSERVER if you still want it to be visible to ghosts
invisibility_traitthe invisiblity trait applied, like TRAIT_T_RAY_VISIBLE
tile_overlayan overlay for the tile if we wish to apply that
use_alphawhether we use alpha or not. TRUE uses ALPHA_UNDERTILE because otherwise we have 200 different instances of this element for different alphas
use_anchorWe will switch between anchored and unanchored. for stuff like satchels that shouldn't be pullable under tiles but are otherwise unanchored

Procs

hidecalled when a tile has been covered or uncovered

Var Details

invisibility_level

level of invisibility applied when under a tile. Could be INVISIBILITY_OBSERVER if you still want it to be visible to ghosts

invisibility_trait

the invisiblity trait applied, like TRAIT_T_RAY_VISIBLE

tile_overlay

an overlay for the tile if we wish to apply that

use_alpha

whether we use alpha or not. TRUE uses ALPHA_UNDERTILE because otherwise we have 200 different instances of this element for different alphas

use_anchor

We will switch between anchored and unanchored. for stuff like satchels that shouldn't be pullable under tiles but are otherwise unanchored

Proc Details

hide

called when a tile has been covered or uncovered

\ No newline at end of file diff --git a/datum/element/unfriend_attacker.html b/datum/element/unfriend_attacker.html new file mode 100644 index 0000000000000..35dc256ff9cf9 --- /dev/null +++ b/datum/element/unfriend_attacker.html @@ -0,0 +1,2 @@ +/datum/element/unfriend_attacker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Unfriend Attacker

Element which makes a mob remove you from its friends list you if you hurt it. +Doesn't make a callout post because we don't have twitter integration.

Vars

untamed_reactionMessage to print if we remove a friend. String %SOURCE% and %TARGET% are replaced by names if present.

Procs

on_hurtIf it's a bad touch make enemies

Var Details

untamed_reaction

Message to print if we remove a friend. String %SOURCE% and %TARGET% are replaced by names if present.

Proc Details

on_hurt

If it's a bad touch make enemies

\ No newline at end of file diff --git a/datum/element/update_icon_updates_onmob.html b/datum/element/update_icon_updates_onmob.html new file mode 100644 index 0000000000000..3fdb5bbe84e6d --- /dev/null +++ b/datum/element/update_icon_updates_onmob.html @@ -0,0 +1 @@ +/datum/element/update_icon_updates_onmob - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

update_icon_updates_onmob

Vars

update_bodyShould the element call [/mob/proc/update_body()] in addition to clothing updates?
update_flagsThe ITEM_SLOT_X flags to update on the parent mob in additon to the item's slot_flags. (Ex: Passing ITEM_SLOT_HANDCUFFED for sneakers will update the handcuff overlays in addition to ITEM_SLOT_FEET's overlays when their icon changes.)

Var Details

update_body

Should the element call [/mob/proc/update_body()] in addition to clothing updates?

update_flags

The ITEM_SLOT_X flags to update on the parent mob in additon to the item's slot_flags. (Ex: Passing ITEM_SLOT_HANDCUFFED for sneakers will update the handcuff overlays in addition to ITEM_SLOT_FEET's overlays when their icon changes.)

\ No newline at end of file diff --git a/datum/element/uplink_reimburse.html b/datum/element/uplink_reimburse.html new file mode 100644 index 0000000000000..2f287217b1790 --- /dev/null +++ b/datum/element/uplink_reimburse.html @@ -0,0 +1,3 @@ +/datum/element/uplink_reimburse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

uplink_reimburse

Uplink Reimburse element. +When element is applied onto items, it allows them to be reimbursed if an user pokes an item with a uplink component with them.

+

Element is only compatible with items.

Vars

refundable_tcTC to refund!

Procs

on_examinesignal called on parent being examined
usedIf the item is used, it needs to no longer be refundable

Var Details

refundable_tc

TC to refund!

Proc Details

on_examine

signal called on parent being examined

used

If the item is used, it needs to no longer be refundable

\ No newline at end of file diff --git a/datum/element/venomous.html b/datum/element/venomous.html new file mode 100644 index 0000000000000..dd81e3725e6e0 --- /dev/null +++ b/datum/element/venomous.html @@ -0,0 +1,2 @@ +/datum/element/venomous - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

venomous

Venomous element; which makes the attacks of the simplemob attached poison the enemy.

+

Used for spiders, frogs, and bees!

Vars

amount_addedHow much of the reagent added. if it's a list, it'll pick a range with the range being list(lower_value, upper_value)
injection_flagsDetails of how we inject our venom
poison_typePath of the reagent added
thrown_effectDoes this trigger when thrown?

Var Details

amount_added

How much of the reagent added. if it's a list, it'll pick a range with the range being list(lower_value, upper_value)

injection_flags

Details of how we inject our venom

poison_type

Path of the reagent added

thrown_effect

Does this trigger when thrown?

\ No newline at end of file diff --git a/datum/element/volatile_gas_storage.html b/datum/element/volatile_gas_storage.html new file mode 100644 index 0000000000000..9f0b33db9f5df --- /dev/null +++ b/datum/element/volatile_gas_storage.html @@ -0,0 +1 @@ +/datum/element/volatile_gas_storage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

volatile_gas_storage

An element to make an /obj explode based on gas pressure when broken

Vars

max_explosive_forceThe max explsion range at the max pressure
max_explosive_pressureThe max pressure to stop scaling the explosion at, you can go higher but the explosion range will stay at max
minimum_explosive_pressureThe minimum pressure of the gas storage to consider an explosion when broken

Var Details

max_explosive_force

The max explsion range at the max pressure

max_explosive_pressure

The max pressure to stop scaling the explosion at, you can go higher but the explosion range will stay at max

minimum_explosive_pressure

The minimum pressure of the gas storage to consider an explosion when broken

\ No newline at end of file diff --git a/datum/element/wall_engraver.html b/datum/element/wall_engraver.html new file mode 100644 index 0000000000000..59057ef869e9f --- /dev/null +++ b/datum/element/wall_engraver.html @@ -0,0 +1 @@ +/datum/element/wall_engraver - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

wall_engraver

An element that lets you engrave walls when right click is used

Procs

on_examinesignal called on parent being examined
on_item_pre_attack_secondarysignal called on parent being used to right click attack something

Proc Details

on_examine

signal called on parent being examined

on_item_pre_attack_secondary

signal called on parent being used to right click attack something

\ No newline at end of file diff --git a/datum/element/wall_smasher.html b/datum/element/wall_smasher.html new file mode 100644 index 0000000000000..0c0012eb60796 --- /dev/null +++ b/datum/element/wall_smasher.html @@ -0,0 +1,2 @@ +/datum/element/wall_smasher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Wall Smasher

An element you put on mobs to let their attacks break walls +If put in the hands of a player this can cause a lot of problems, be careful

Vars

strength_flagEither ENVIRONMENT_SMASH_WALLS or ENVIRONMENT_SMASH_RWALLS, as in '_DEFINES/mobs.dm'

Var Details

strength_flag

Either ENVIRONMENT_SMASH_WALLS or ENVIRONMENT_SMASH_RWALLS, as in '_DEFINES/mobs.dm'

\ No newline at end of file diff --git a/datum/element/wall_tearer.html b/datum/element/wall_tearer.html new file mode 100644 index 0000000000000..ec6b6bdd8a2fd --- /dev/null +++ b/datum/element/wall_tearer.html @@ -0,0 +1 @@ +/datum/element/wall_tearer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wall_tearer

Allows attached mobs to destroy walls over time, a little less unreasonable than the instant wall deletion of wall_smasher

Vars

allow_reinforcedWhether we can break reinforced walls
do_after_keyWhat interaction key do we use for our interaction
reinforced_multiplierHow much longer it takes to break reinforced walls
tear_timeHow long it takes for us to destroy a wall completely (its a 3 step process so this will be divided by three)

Procs

on_attacked_wallTry to tear up a wall
validate_targetCheck if the target atom is a wall we can actually rip up

Var Details

allow_reinforced

Whether we can break reinforced walls

do_after_key

What interaction key do we use for our interaction

reinforced_multiplier

How much longer it takes to break reinforced walls

tear_time

How long it takes for us to destroy a wall completely (its a 3 step process so this will be divided by three)

Proc Details

on_attacked_wall

Try to tear up a wall

validate_target

Check if the target atom is a wall we can actually rip up

\ No newline at end of file diff --git a/datum/element/wall_walker.html b/datum/element/wall_walker.html new file mode 100644 index 0000000000000..41d9faaf58bf2 --- /dev/null +++ b/datum/element/wall_walker.html @@ -0,0 +1 @@ +/datum/element/wall_walker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wall_walker

This element will allow the mob it's attached to to pass through a specified type of wall, and drag anything through it.

Vars

or_traitWhat trait on turfs allows us to pass through? Can be used as OR if wall_type is null, or AND if it's set.
wall_typeWhat kind of walls can we pass through?

Procs

exit_wallIf the wall is of the proper type, pull whatever you're pulling into it
try_pass_wallIf the wall is of the proper type, pass into it and keep hold on whatever you're pulling

Var Details

or_trait

What trait on turfs allows us to pass through? Can be used as OR if wall_type is null, or AND if it's set.

wall_type

What kind of walls can we pass through?

Proc Details

exit_wall

If the wall is of the proper type, pull whatever you're pulling into it

try_pass_wall

If the wall is of the proper type, pass into it and keep hold on whatever you're pulling

\ No newline at end of file diff --git a/datum/element/weapon_description.html b/datum/element/weapon_description.html new file mode 100644 index 0000000000000..1f40a9f4dc37e --- /dev/null +++ b/datum/element/weapon_description.html @@ -0,0 +1,29 @@ +/datum/element/weapon_description - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

weapon_description

The purpose of this element is to widely provide the ability to examine an object and determine its stats, with the ability to add +additional notes or information based on type or other factors

Procs

build_label_textCompiles a warning label detailing various statistics of the examined weapon
topic_handlerDetails the stats of the examined weapon
warning_labelThis proc is called when the user examines an object with the associated element. This produces a hyperlinked +text line provided that the given item meets the weapon-determining criteria (Sufficient force or notes)
weapon_tag_convertConverts percentile based stats to an adjective appropriate for the +examined warning label

Proc Details

build_label_text

Compiles a warning label detailing various statistics of the examined weapon

+

This function is called by the "examine" function of Topic(), and compiles a number of relevant +weapon stats into a message that is then shown to the user +Arguments:

+

topic_handler

Details the stats of the examined weapon

+

This function is called when the user clicks the hyperlink provided by +warning_label(). It calls build_label_text() and outputs its return value to the user

+

Arguments:

+

warning_label

This proc is called when the user examines an object with the associated element. This produces a hyperlinked +text line provided that the given item meets the weapon-determining criteria (Sufficient force or notes)

+

Arguments: +* source - Object being examined, cast into an item variable

+

weapon_tag_convert

Converts percentile based stats to an adjective appropriate for the +examined warning label

+

Arguments:

+
\ No newline at end of file diff --git a/datum/element/wearable_client_colour.html b/datum/element/wearable_client_colour.html new file mode 100644 index 0000000000000..bc6f0ffa31f24 --- /dev/null +++ b/datum/element/wearable_client_colour.html @@ -0,0 +1 @@ +/datum/element/wearable_client_colour - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wearable_client_colour

An element that adds a client colour to the wearer when equipped to the right slot, under the right conditions.

Vars

colour_typeThe typepath of the client_colour added when worn in the appropriate slot(s)
custom_colourFor items that want costumizable client colours
equip_slotsThe slot(s) that enable the client colour
forcedif forced is false, we check that the user has the TRAIT_SEE_WORN_COLOURS before adding the colour.
key_infoOn examine, it'll tell which you have to press to toggle TRAIT_SEE_WORN_COLOURS.

Var Details

colour_type

The typepath of the client_colour added when worn in the appropriate slot(s)

custom_colour

For items that want costumizable client colours

equip_slots

The slot(s) that enable the client colour

forced

if forced is false, we check that the user has the TRAIT_SEE_WORN_COLOURS before adding the colour.

key_info

On examine, it'll tell which you have to press to toggle TRAIT_SEE_WORN_COLOURS.

\ No newline at end of file diff --git a/datum/element/wears_collar.html b/datum/element/wears_collar.html new file mode 100644 index 0000000000000..2a0a70d1213e7 --- /dev/null +++ b/datum/element/wears_collar.html @@ -0,0 +1 @@ +/datum/element/wears_collar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wears_collar

Vars

collar_iconour icon's pathfile
collar_icon_stateour collar's icon state
collar_resting_icon_stateiconstate of our collar while resting

Var Details

collar_icon

our icon's pathfile

collar_icon_state

our collar's icon state

collar_resting_icon_state

iconstate of our collar while resting

\ No newline at end of file diff --git a/datum/element/web_walker.html b/datum/element/web_walker.html new file mode 100644 index 0000000000000..7c829f8ecf4fe --- /dev/null +++ b/datum/element/web_walker.html @@ -0,0 +1 @@ +/datum/element/web_walker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Web Walker element

A mob with this element will move more slowly when it's not stood on a webbed turf.

Vars

off_web_slowdownMove speed modifier to apply when not stood on webs

Procs

on_movedWhen we move, check if we're still on a web

Var Details

off_web_slowdown

Move speed modifier to apply when not stood on webs

Proc Details

on_moved

When we move, check if we're still on a web

\ No newline at end of file diff --git a/datum/element/window_smashing.html b/datum/element/window_smashing.html new file mode 100644 index 0000000000000..02ebd044f97df --- /dev/null +++ b/datum/element/window_smashing.html @@ -0,0 +1,2 @@ +/datum/element/window_smashing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

Window Smashing

An element you put on mobs to let them smash through walls on movement +For example, throwing someone through a glass window

Procs

flying_window_smashSmash any windows that the mob is flying through

Proc Details

flying_window_smash

Smash any windows that the mob is flying through

\ No newline at end of file diff --git a/datum/embed_data.html b/datum/embed_data.html new file mode 100644 index 0000000000000..79135092823d4 --- /dev/null +++ b/datum/embed_data.html @@ -0,0 +1 @@ +/datum/embed_data - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

embed_data

Vars

embed_chanceChance for an object to embed into somebody when thrown
fall_chanceChance for embedded object to fall out (causing pain but removing the object)
ignore_throwspeed_thresholdIf this should ignore throw speed threshold of 4
impact_pain_multCoefficient of multiplication for the damage the item does when it first embeds (this*item.w_class)
jostle_chanceChance for embedded objects to cause pain every time they move (jostle)
jostle_pain_multCoefficient of multiplication for the damage the item does while
pain_chanceChance for embedded objects to cause pain (damage user)
pain_multCoefficient of multiplication for the damage the item does while embedded (this*item.w_class)
pain_stam_pctThis percentage of all pain will be dealt as stam damage rather than brute (0-1)
remove_pain_multCoefficient of multiplication for the damage the item does when it falls out or is removed without a surgery (this*item.w_class)
rip_timeTime in ticks, total removal time = (this*item.w_class)

Var Details

embed_chance

Chance for an object to embed into somebody when thrown

fall_chance

Chance for embedded object to fall out (causing pain but removing the object)

ignore_throwspeed_threshold

If this should ignore throw speed threshold of 4

impact_pain_mult

Coefficient of multiplication for the damage the item does when it first embeds (this*item.w_class)

jostle_chance

Chance for embedded objects to cause pain every time they move (jostle)

jostle_pain_mult

Coefficient of multiplication for the damage the item does while

pain_chance

Chance for embedded objects to cause pain (damage user)

pain_mult

Coefficient of multiplication for the damage the item does while embedded (this*item.w_class)

pain_stam_pct

This percentage of all pain will be dealt as stam damage rather than brute (0-1)

remove_pain_mult

Coefficient of multiplication for the damage the item does when it falls out or is removed without a surgery (this*item.w_class)

rip_time

Time in ticks, total removal time = (this*item.w_class)

\ No newline at end of file diff --git a/datum/emote.html b/datum/emote.html new file mode 100644 index 0000000000000..456afa497b212 --- /dev/null +++ b/datum/emote.html @@ -0,0 +1,56 @@ +/datum/emote - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Emote

Most of the text that's not someone talking is based off of this.

+

Yes, the displayed message is stored on the datum, it would cause problems +for emotes with a message that can vary, but that's handled differently in +run_emote(), so be sure to use can_message_change if you plan to have +different displayed messages from player to player.

Vars

allowed_speciesWhat species can use this emote?
audio_cooldownHow long is the cooldown on the audio of the emote, if it has one?
can_message_changeDoes this message have a message that can be modified by the user?
emote_typeWhether the emote is visible and/or audible bitflag
hands_use_checkChecks if the mob can use its hands before performing the emote.
keyWhat calls the emote.
key_third_personThis will also call the emote.
messageMessage displayed when emote is used.
message_AIMessage displayed if the user is an AI.
message_alienMessage displayed if the user is a grown alien.
message_animal_or_basicMessage to display if the user is a simple_animal or basic mob.
message_larvaMessage displayed if the user is an alien larva.
message_mimeMessage displayed if the user is a mime.
message_monkeyMessage displayed if the user is a monkey.
message_paramMessage with %t at the end to allow adding params to the message, like for mobs doing an emote relatively to something else.
message_robotMessage displayed if the user is a robot.
mob_type_allowed_typecacheTypes that are allowed to use that emote.
mob_type_blacklist_typecacheTypes that are NOT allowed to use that emote.
mob_type_ignore_stat_typecacheTypes that can use this emote regardless of their state.
nameNeeded for more user-friendly emote names, so emotes with keys like "aflap" will show as "flap angry". Defaulted to key.
only_forced_audioCan only code call this event instead of the player.
pref_to_checkIf we should check a preference for this emote
soundSound to play when emote is called.
sound_volumeEmote volume
sound_wall_ignoreDoes this emote's sound ignore walls?
stat_allowedIn which state can you use this emote? (Check stat.dm for a full list of them)
trait_requiredTrait that is required to use this emote.
varyUsed for the honk borg emote.

Procs

can_run_emoteCheck to see if the user is allowed to run the emote.
check_cooldownFor handling emote cooldown, return true to allow the emote to happen.
get_soundTo get the sound that the emote plays, for special sound interactions depending on the mob.
replace_pronounTo replace pronouns in the inputed string with the user's proper pronouns.
run_emoteHandles the modifications and execution of emotes.
select_message_typeSelects the message type to override the message with.
select_paramReplaces the %t in the message in message_param by params.
should_play_soundCheck to see if the user should play a sound when performing the emote.

Var Details

allowed_species

What species can use this emote?

audio_cooldown

How long is the cooldown on the audio of the emote, if it has one?

can_message_change

Does this message have a message that can be modified by the user?

emote_type

Whether the emote is visible and/or audible bitflag

hands_use_check

Checks if the mob can use its hands before performing the emote.

key

What calls the emote.

key_third_person

This will also call the emote.

message

Message displayed when emote is used.

message_AI

Message displayed if the user is an AI.

message_alien

Message displayed if the user is a grown alien.

message_animal_or_basic

Message to display if the user is a simple_animal or basic mob.

message_larva

Message displayed if the user is an alien larva.

message_mime

Message displayed if the user is a mime.

message_monkey

Message displayed if the user is a monkey.

message_param

Message with %t at the end to allow adding params to the message, like for mobs doing an emote relatively to something else.

message_robot

Message displayed if the user is a robot.

mob_type_allowed_typecache

Types that are allowed to use that emote.

mob_type_blacklist_typecache

Types that are NOT allowed to use that emote.

mob_type_ignore_stat_typecache

Types that can use this emote regardless of their state.

name

Needed for more user-friendly emote names, so emotes with keys like "aflap" will show as "flap angry". Defaulted to key.

only_forced_audio

Can only code call this event instead of the player.

pref_to_check

If we should check a preference for this emote

sound

Sound to play when emote is called.

sound_volume

Emote volume

sound_wall_ignore

Does this emote's sound ignore walls?

stat_allowed

In which state can you use this emote? (Check stat.dm for a full list of them)

trait_required

Trait that is required to use this emote.

vary

Used for the honk borg emote.

Proc Details

can_run_emote

Check to see if the user is allowed to run the emote.

+

Arguments:

+ +

Returns a bool about whether or not the user can run the emote.

check_cooldown

For handling emote cooldown, return true to allow the emote to happen.

+

Arguments:

+ +

Returns FALSE if the cooldown is not over, TRUE if the cooldown is over.

get_sound

To get the sound that the emote plays, for special sound interactions depending on the mob.

+

Arguments:

+ +

Returns the sound that will be made while sending the emote.

replace_pronoun

To replace pronouns in the inputed string with the user's proper pronouns.

+

Arguments:

+ +

Returns the modified msg string.

run_emote

Handles the modifications and execution of emotes.

+

Arguments:

+

select_message_type

Selects the message type to override the message with.

+

Arguments:

+ +

Returns the new message, or msg directly, if no change was needed.

select_param

Replaces the %t in the message in message_param by params.

+

Arguments:

+ +

Returns the modified string.

should_play_sound

Check to see if the user should play a sound when performing the emote.

+

Arguments:

+ +

Returns a bool about whether or not the user should play a sound when performing the emote.

\ No newline at end of file diff --git a/datum/emote/living/mark_turf.html b/datum/emote/living/mark_turf.html new file mode 100644 index 0000000000000..464d35598b9c1 --- /dev/null +++ b/datum/emote/living/mark_turf.html @@ -0,0 +1 @@ +/datum/emote/living/mark_turf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mark_turf

Vars

current_turfThe current turf ID that the user selected in the radial menu.

Var Details

current_turf

The current turf ID that the user selected in the radial menu.

\ No newline at end of file diff --git a/datum/emote/living/yawn.html b/datum/emote/living/yawn.html new file mode 100644 index 0000000000000..33f39b1691ac7 --- /dev/null +++ b/datum/emote/living/yawn.html @@ -0,0 +1 @@ +/datum/emote/living/yawn - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

yawn

Procs

propagate_yawnThis yawn has been triggered by someone else yawning specifically, likely after a delay. Check again if they don't have the yawned recently trait

Proc Details

propagate_yawn

This yawn has been triggered by someone else yawning specifically, likely after a delay. Check again if they don't have the yawned recently trait

\ No newline at end of file diff --git a/datum/emote/slime/mood.html b/datum/emote/slime/mood.html new file mode 100644 index 0000000000000..414cea5b649ed --- /dev/null +++ b/datum/emote/slime/mood.html @@ -0,0 +1 @@ +/datum/emote/slime/mood - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mood

Vars

mood_keyMood key, will set the slime's emote to this.

Var Details

mood_key

Mood key, will set the slime's emote to this.

\ No newline at end of file diff --git a/datum/equilibrium.html b/datum/equilibrium.html new file mode 100644 index 0000000000000..f0d36eceb26fd --- /dev/null +++ b/datum/equilibrium.html @@ -0,0 +1,14 @@ +/datum/equilibrium - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

equilibrium

Vars

dataUsed to store specific data needed for a reaction, usually used to keep track of things between explosion calls. CANNOT be used as a part of chemical_recipe - those vars are static lookup tables.
delta_phHow pure our step is
delta_tResult vars, private - do not edit unless in reaction_step() +How much we're adding
h_ion_modpH mod
holderThe location/reagents datum the processing is taking place
multiplierHow much product we can make multiplied by the input recipe's products/required_reagents numerical values
product_ratioThe sum total of each of the product's numerical's values. This is so the addition/deletion is kept at the right values for multiple product reactions
reacted_volHow much of the reaction has been made so far. Mostly used for subprocs, but it keeps track across the whole reaction and is added to every step.
reactionThe chemical reaction that is presently being processed
reaction_qualityWhat our last delta_ph was
speed_modModifiers from catalysts, do not use negative numbers. +I should write a better handiler for modifying these +Speed mod
step_target_volThe target volume the reaction is headed towards. This is updated every tick, so isn't the total value for the reaction, it's just a way to ensure we can't make more than is possible.
target_volThe total possible that this reaction can make presently - used for gui outputs
thermic_modTemp mod
time_deficitAllow us to deal with lag by "charging" up our reactions to react faster over a period - this means that the reaction doesn't suddenly mass react - which can cause explosions
to_deleteIf we're done with this reaction so that holder can clear it.

Procs

check_reagent_propertiesCheck to make sure our input vars are sensible

Var Details

data

Used to store specific data needed for a reaction, usually used to keep track of things between explosion calls. CANNOT be used as a part of chemical_recipe - those vars are static lookup tables.

delta_ph

How pure our step is

delta_t

Result vars, private - do not edit unless in reaction_step() +How much we're adding

h_ion_mod

pH mod

holder

The location/reagents datum the processing is taking place

multiplier

How much product we can make multiplied by the input recipe's products/required_reagents numerical values

product_ratio

The sum total of each of the product's numerical's values. This is so the addition/deletion is kept at the right values for multiple product reactions

reacted_vol

How much of the reaction has been made so far. Mostly used for subprocs, but it keeps track across the whole reaction and is added to every step.

reaction

The chemical reaction that is presently being processed

reaction_quality

What our last delta_ph was

speed_mod

Modifiers from catalysts, do not use negative numbers. +I should write a better handiler for modifying these +Speed mod

step_target_vol

The target volume the reaction is headed towards. This is updated every tick, so isn't the total value for the reaction, it's just a way to ensure we can't make more than is possible.

target_vol

The total possible that this reaction can make presently - used for gui outputs

thermic_mod

Temp mod

time_deficit

Allow us to deal with lag by "charging" up our reactions to react faster over a period - this means that the reaction doesn't suddenly mass react - which can cause explosions

to_delete

If we're done with this reaction so that holder can clear it.

Proc Details

check_reagent_properties

Check to make sure our input vars are sensible

+
    +
  1. Is our atom in which this reaction is occuring still intact?
  2. +
  3. Do we still have reagents to react with
  4. +
  5. Do we have the required catalysts? +If you're adding more checks for reactions, this is the proc to edit +otherwise, generally, don't call this directed except internally
  6. +
\ No newline at end of file diff --git a/datum/ert.html b/datum/ert.html new file mode 100644 index 0000000000000..b41fa5cb9776e --- /dev/null +++ b/datum/ert.html @@ -0,0 +1 @@ +/datum/ert - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ert

Vars

enforce_humanDo we humanize all spawned players or keep them the species in their current character prefs?
ert_templateA custom map template to spawn the ERT at. If this is null or use_custom_shuttle is FALSE, the ERT will spawn at Centcom.
leader_experienceIf TRUE, we try and pick one of the most experienced players who volunteered to fill the leader slot
leader_roleAlternate antag datum given to the leader of the squad.
missionThe mission given to this ERT type in their flavor text.
mob_typeUsed for spawning bodies for your ERT. Unless customized in the Summon-ERT verb settings, will be overridden and should not be defined at the datum level.
notify_playersSKYRAT EDIT: Do we want to notify the players of this ERT?
opendoorsDo we open the doors to the "high-impact" weapon/explosive cabinets? Used for combat-focused ERTs.
polldescThe "would you like to play as XXX" message used when polling for players.
random_namesIf TRUE, gives the team members "[role] [random last name]" style names
rename_teamThe custom name assigned to this team, for their antag datum/roundend reporting.
rolesA list of roles distributed to the selected candidates that are not the leader.
spawn_adminIf TRUE, the admin who created the response team will be spawned in the briefing room in their preferred briefing outfit (assuming they're a ghost)
teamAntag datum team for this type of ERT.
teamsizeThe number of players for consideration.
use_custom_shuttleIf we should actually use the ert_template custom shuttle

Var Details

enforce_human

Do we humanize all spawned players or keep them the species in their current character prefs?

ert_template

A custom map template to spawn the ERT at. If this is null or use_custom_shuttle is FALSE, the ERT will spawn at Centcom.

leader_experience

If TRUE, we try and pick one of the most experienced players who volunteered to fill the leader slot

leader_role

Alternate antag datum given to the leader of the squad.

mission

The mission given to this ERT type in their flavor text.

mob_type

Used for spawning bodies for your ERT. Unless customized in the Summon-ERT verb settings, will be overridden and should not be defined at the datum level.

notify_players

SKYRAT EDIT: Do we want to notify the players of this ERT?

opendoors

Do we open the doors to the "high-impact" weapon/explosive cabinets? Used for combat-focused ERTs.

polldesc

The "would you like to play as XXX" message used when polling for players.

random_names

If TRUE, gives the team members "[role] [random last name]" style names

rename_team

The custom name assigned to this team, for their antag datum/roundend reporting.

roles

A list of roles distributed to the selected candidates that are not the leader.

spawn_admin

If TRUE, the admin who created the response team will be spawned in the briefing room in their preferred briefing outfit (assuming they're a ghost)

team

Antag datum team for this type of ERT.

teamsize

The number of players for consideration.

use_custom_shuttle

If we should actually use the ert_template custom shuttle

\ No newline at end of file diff --git a/datum/escape_menu.html b/datum/escape_menu.html new file mode 100644 index 0000000000000..d0ea8b0850a0c --- /dev/null +++ b/datum/escape_menu.html @@ -0,0 +1 @@ +/datum/escape_menu - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

escape_menu

Vars

clientThe client that owns this escape menu

Var Details

client

The client that owns this escape menu

\ No newline at end of file diff --git a/datum/event_admin_setup.html b/datum/event_admin_setup.html new file mode 100644 index 0000000000000..4a3e08b84f251 --- /dev/null +++ b/datum/event_admin_setup.html @@ -0,0 +1,2 @@ +/datum/event_admin_setup - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

event_admin_setup

Datum that holds a proc for additional options when running an event. +Prototypes are declared here, non-prototypes on the event files.

Vars

event_controlevent control that owns this.

Var Details

event_control

event control that owns this.

\ No newline at end of file diff --git a/datum/event_admin_setup/anomaly_ectoplasm.html b/datum/event_admin_setup/anomaly_ectoplasm.html new file mode 100644 index 0000000000000..f8faa62760872 --- /dev/null +++ b/datum/event_admin_setup/anomaly_ectoplasm.html @@ -0,0 +1 @@ +/datum/event_admin_setup/anomaly_ectoplasm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

anomaly_ectoplasm

Vars

chosen_effectThe admin-selected intensity
ghost_overrideThe number of ghosts the admin has selected to simulate orbiting the anomaly.

Var Details

chosen_effect

The admin-selected intensity

ghost_override

The number of ghosts the admin has selected to simulate orbiting the anomaly.

\ No newline at end of file diff --git a/datum/event_admin_setup/carp_migration.html b/datum/event_admin_setup/carp_migration.html new file mode 100644 index 0000000000000..d8919397c01cd --- /dev/null +++ b/datum/event_admin_setup/carp_migration.html @@ -0,0 +1 @@ +/datum/event_admin_setup/carp_migration - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

carp_migration

Vars

targets_per_zAdmin set list of turfs for carp to travel to for each z level

Procs

record_admin_locationStores the admin's current location corresponding to the z level of that location

Var Details

targets_per_z

Admin set list of turfs for carp to travel to for each z level

Proc Details

record_admin_location

Stores the admin's current location corresponding to the z level of that location

\ No newline at end of file diff --git a/datum/event_admin_setup/input_number.html b/datum/event_admin_setup/input_number.html new file mode 100644 index 0000000000000..12d643075ea03 --- /dev/null +++ b/datum/event_admin_setup/input_number.html @@ -0,0 +1 @@ +/datum/event_admin_setup/input_number - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

input_number

Vars

chosen_valueValue selected by the admin
default_valueThe value the number will be set to by default
input_textText shown when admins are queried about what number to set.
max_valueThe highest value setable by the admin.
min_valueThe lowest value setable by the admin

Var Details

chosen_value

Value selected by the admin

default_value

The value the number will be set to by default

input_text

Text shown when admins are queried about what number to set.

max_value

The highest value setable by the admin.

min_value

The lowest value setable by the admin

\ No newline at end of file diff --git a/datum/event_admin_setup/listed_options.html b/datum/event_admin_setup/listed_options.html new file mode 100644 index 0000000000000..048aff4b88e4b --- /dev/null +++ b/datum/event_admin_setup/listed_options.html @@ -0,0 +1,4 @@ +/datum/event_admin_setup/listed_options - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

listed_options

A very common pattern is picking from a tgui list input, so this does that. +Supply a list in get_list and prompt admins will have the admin pick from it or cancel.

Vars

chosenPicked list option to be applied.
input_textText to ask the user, for example "What deal would you like to offer the crew?"
normal_run_optionIf set, picking this will be the same as running the event without admin setup.
special_run_optionif you want a special button, this will add it. Remember to actually handle that case for chosen in apply_to_event +Example is in scrubber_overflow.dm

Var Details

chosen

Picked list option to be applied.

input_text

Text to ask the user, for example "What deal would you like to offer the crew?"

normal_run_option

If set, picking this will be the same as running the event without admin setup.

special_run_option

if you want a special button, this will add it. Remember to actually handle that case for chosen in apply_to_event +Example is in scrubber_overflow.dm

\ No newline at end of file diff --git a/datum/event_admin_setup/listed_options/disease_outbreak_advanced/severity.html b/datum/event_admin_setup/listed_options/disease_outbreak_advanced/severity.html new file mode 100644 index 0000000000000..becfb0574a92b --- /dev/null +++ b/datum/event_admin_setup/listed_options/disease_outbreak_advanced/severity.html @@ -0,0 +1,2 @@ +/datum/event_admin_setup/listed_options/disease_outbreak_advanced/severity - /tg/ Station 13
/tg/ Station 13 - Modules - Types

severity

Admin virus customization

+

If the admin wishes, give them the opportunity to select the severity and number of symptoms.

\ No newline at end of file diff --git a/datum/event_admin_setup/mass_hallucination.html b/datum/event_admin_setup/mass_hallucination.html new file mode 100644 index 0000000000000..f9f4709c1a8ad --- /dev/null +++ b/datum/event_admin_setup/mass_hallucination.html @@ -0,0 +1 @@ +/datum/event_admin_setup/mass_hallucination - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mass_hallucination

Vars

admin_forced_argsFor admins, what arguments are we passing to said hallucination
admin_forced_hallucinationFor admins, what hallucination did we pick

Var Details

admin_forced_args

For admins, what arguments are we passing to said hallucination

admin_forced_hallucination

For admins, what hallucination did we pick

\ No newline at end of file diff --git a/datum/event_admin_setup/minimum_candidate_requirement.html b/datum/event_admin_setup/minimum_candidate_requirement.html new file mode 100644 index 0000000000000..0d5429bbf38af --- /dev/null +++ b/datum/event_admin_setup/minimum_candidate_requirement.html @@ -0,0 +1 @@ +/datum/event_admin_setup/minimum_candidate_requirement - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

minimum_candidate_requirement

For events that mandate a set number of candidates to function

Vars

min_candidatesMinimum number of candidates for the event to function
output_textText shown when there are not enough candidates

Procs

count_candidatesChecks for candidates. Should return the total number of candidates

Var Details

min_candidates

Minimum number of candidates for the event to function

output_text

Text shown when there are not enough candidates

Proc Details

count_candidates

Checks for candidates. Should return the total number of candidates

\ No newline at end of file diff --git a/datum/event_admin_setup/multiple_choice.html b/datum/event_admin_setup/multiple_choice.html new file mode 100644 index 0000000000000..c1299fc5e6fe9 --- /dev/null +++ b/datum/event_admin_setup/multiple_choice.html @@ -0,0 +1 @@ +/datum/event_admin_setup/multiple_choice - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

multiple_choice

Vars

choicesList of choices returned by this setup to the event.
input_textText shown to the admin when queried about which options they want to pick.
max_choicesThe maximum number of choices that the admin can make for this event.
min_choicesThe minimum number of choices an admin must make for this event.

Var Details

choices

List of choices returned by this setup to the event.

input_text

Text shown to the admin when queried about which options they want to pick.

max_choices

The maximum number of choices that the admin can make for this event.

min_choices

The minimum number of choices an admin must make for this event.

\ No newline at end of file diff --git a/datum/event_admin_setup/question.html b/datum/event_admin_setup/question.html new file mode 100644 index 0000000000000..634691d1c15c0 --- /dev/null +++ b/datum/event_admin_setup/question.html @@ -0,0 +1 @@ +/datum/event_admin_setup/question - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

question

For events that require a true/false question

Vars

chosenValue passed to the event.
input_textQuestion shown to the admin.

Var Details

chosen

Value passed to the event.

input_text

Question shown to the admin.

\ No newline at end of file diff --git a/datum/event_admin_setup/set_location.html b/datum/event_admin_setup/set_location.html new file mode 100644 index 0000000000000..2c6525a88b1a1 --- /dev/null +++ b/datum/event_admin_setup/set_location.html @@ -0,0 +1 @@ +/datum/event_admin_setup/set_location - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

set_location

Vars

chosen_turfTurf that will be passed onto the event.
input_textText shown when admins are queried about setting the target location.

Var Details

chosen_turf

Turf that will be passed onto the event.

input_text

Text shown when admins are queried about setting the target location.

\ No newline at end of file diff --git a/datum/event_admin_setup/syndicate_cargo_pod.html b/datum/event_admin_setup/syndicate_cargo_pod.html new file mode 100644 index 0000000000000..b6c5ff6efdeed --- /dev/null +++ b/datum/event_admin_setup/syndicate_cargo_pod.html @@ -0,0 +1 @@ +/datum/event_admin_setup/syndicate_cargo_pod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

syndicate_cargo_pod

Vars

pack_type_overrideAdmin setable override to spawn a specific cargo pack type

Procs

override_contentsThis proc prompts admins to set a TC value and uplink type for the crate, those values are then passed to a new syndicate pack's setup_contents() to generate the contents before spawning it.

Var Details

pack_type_override

Admin setable override to spawn a specific cargo pack type

Proc Details

override_contents

This proc prompts admins to set a TC value and uplink type for the crate, those values are then passed to a new syndicate pack's setup_contents() to generate the contents before spawning it.

\ No newline at end of file diff --git a/datum/event_admin_setup/text_input.html b/datum/event_admin_setup/text_input.html new file mode 100644 index 0000000000000..eca3216fafb02 --- /dev/null +++ b/datum/event_admin_setup/text_input.html @@ -0,0 +1,3 @@ +/datum/event_admin_setup/text_input - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

text_input

For admin setups that want a custom string. Suggests what the event would have picked normally.

Vars

chosenPicked string to be applied.
input_textText to ask the user, for example "What horrifying truth will you reveal?"

Procs

get_text_suggestionReturns a string to suggest to the admin, which would be what the event would have chosen. +No suggestion if an empty string, which is default behavior.

Var Details

chosen

Picked string to be applied.

input_text

Text to ask the user, for example "What horrifying truth will you reveal?"

Proc Details

get_text_suggestion

Returns a string to suggest to the admin, which would be what the event would have chosen. +No suggestion if an empty string, which is default behavior.

\ No newline at end of file diff --git a/datum/event_admin_setup/warn_admin.html b/datum/event_admin_setup/warn_admin.html new file mode 100644 index 0000000000000..cbe506892c51a --- /dev/null +++ b/datum/event_admin_setup/warn_admin.html @@ -0,0 +1,2 @@ +/datum/event_admin_setup/warn_admin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

warn_admin

Some events are not always a good idea when a game state is in a certain situation. +This runs a check and warns the admin.

Vars

snitch_textMessage sent to other admins. Example: "has forced a shuttle catastrophe while a shuttle was already docked."
warning_textWarning text shown to admin on the alert.

Procs

should_warnReturns whether the admin should get an alert.

Var Details

snitch_text

Message sent to other admins. Example: "has forced a shuttle catastrophe while a shuttle was already docked."

warning_text

Warning text shown to admin on the alert.

Proc Details

should_warn

Returns whether the admin should get an alert.

\ No newline at end of file diff --git a/datum/events.html b/datum/events.html new file mode 100644 index 0000000000000..b4020f7981edb --- /dev/null +++ b/datum/events.html @@ -0,0 +1,7 @@ +/datum/events - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

events

Procs

addEventArguments: event_type as text, proc_holder as datum, proc_name as text +Returns: New event, null on error.
clearEventArguments: event_type as text, E as /datum/event +Returns: TRUE if event cleared, FALSE on error
fireEventArguments: event_type as text, any number of additional arguments to pass to event handler +Returns: null

Proc Details

addEvent

Arguments: event_type as text, proc_holder as datum, proc_name as text +Returns: New event, null on error.

clearEvent

Arguments: event_type as text, E as /datum/event +Returns: TRUE if event cleared, FALSE on error

fireEvent

Arguments: event_type as text, any number of additional arguments to pass to event handler +Returns: null

\ No newline at end of file diff --git a/datum/examine_panel.html b/datum/examine_panel.html new file mode 100644 index 0000000000000..92b0dc1991e33 --- /dev/null +++ b/datum/examine_panel.html @@ -0,0 +1 @@ +/datum/examine_panel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

examine_panel

Vars

examine_panel_screenThe screen containing the appearance of the mob
holderMob that the examine panel belongs to.

Var Details

examine_panel_screen

The screen containing the appearance of the mob

holder

Mob that the examine panel belongs to.

\ No newline at end of file diff --git a/datum/excited_group.html b/datum/excited_group.html new file mode 100644 index 0000000000000..946a18dd781aa --- /dev/null +++ b/datum/excited_group.html @@ -0,0 +1 @@ +/datum/excited_group - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

excited_group

EXCITED GROUPS

Vars

breakdown_cooldownIf this is over EXCITED_GROUP_BREAKDOWN_CYCLES we call self_breakdown()
dismantle_cooldownIf this is over EXCITED_GROUP_DISMANTLE_CYCLES we call dismantle()
display_idId of the index color of the displayed group
should_displayUsed for debug to show the excited groups active and their turfs
turf_listStores a reference to the turfs we are controlling
turf_reactionsAll turf reaction flags we have received.
wrapping_idWrapping loop of the index colors

Procs

dismantleDismantles the excited group, puts allll the turfs to sleep

Var Details

breakdown_cooldown

If this is over EXCITED_GROUP_BREAKDOWN_CYCLES we call self_breakdown()

dismantle_cooldown

If this is over EXCITED_GROUP_DISMANTLE_CYCLES we call dismantle()

display_id

Id of the index color of the displayed group

should_display

Used for debug to show the excited groups active and their turfs

turf_list

Stores a reference to the turfs we are controlling

turf_reactions

All turf reaction flags we have received.

wrapping_id

Wrapping loop of the index colors

Proc Details

dismantle

Dismantles the excited group, puts allll the turfs to sleep

\ No newline at end of file diff --git a/datum/exoscan.html b/datum/exoscan.html new file mode 100644 index 0000000000000..bf62274f8281a --- /dev/null +++ b/datum/exoscan.html @@ -0,0 +1 @@ +/datum/exoscan - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

exoscan

Represents scan in progress, only one globally for now, todo later split per z or allow partial dish swarm usage

Vars

scan_powerThe scan power this scan was started with, if scanner swarm power falls below this value it will be interrupted
scan_timerEnd of scan timer id
scan_typeScan type wide/point/deep
targetTarget site for point/band scans

Procs

ui_descriptionShort description for in progress scan

Var Details

scan_power

The scan power this scan was started with, if scanner swarm power falls below this value it will be interrupted

scan_timer

End of scan timer id

scan_type

Scan type wide/point/deep

target

Target site for point/band scans

Proc Details

ui_description

Short description for in progress scan

\ No newline at end of file diff --git a/datum/experiment.html b/datum/experiment.html new file mode 100644 index 0000000000000..46c2bc549b368 --- /dev/null +++ b/datum/experiment.html @@ -0,0 +1,18 @@ +/datum/experiment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Experiment

This is the base datum for experiments, storing the base definition.

+

This class should be subclassed for producing actual experiments. The +proc stubs should be implemented in whole.

Vars

allowed_experimentorsA list of types that are allowed to experiment with this dastum
completedWhether the experiment has been completed
descriptionA brief description of the experiment to be shown as details
exp_tagA descriptive tag used on UI elements to denote 'types' of experiments
nameName that distinguishes the experiment
performance_hintA textual hint shown on the UI in a tooltip to help a user determine how to perform +the experiment
points_rewardIf set, these techweb points will be rewarded for completing the experiment. +Useful for those loose ends not tied to any specific node discount or requirement.
traitsTraits related to the experiment

Procs

NewPerforms any necessary initialization of tags and other variables
actionableGets if the experiment is actionable provided some arguments
check_progressGets the current progress towards the goal of the experiment
finish_experimentCalled when you complete an experiment, makes sure the techwebs knows the experiment was finished, and tells everyone it happend, yay!
is_completeChecks if the experiment is complete
on_selectedCalled when the experiment is selected by an experiment handler, for specific signals and the such.
on_unselectedCalled when the opposite happens.
perform_experimentProc that tries to perform the experiment, and then checks if its completed.
perform_experiment_actionsAttempts to perform the experiment provided some arguments

Var Details

allowed_experimentors

A list of types that are allowed to experiment with this dastum

completed

Whether the experiment has been completed

description

A brief description of the experiment to be shown as details

exp_tag

A descriptive tag used on UI elements to denote 'types' of experiments

name

Name that distinguishes the experiment

performance_hint

A textual hint shown on the UI in a tooltip to help a user determine how to perform +the experiment

points_reward

If set, these techweb points will be rewarded for completing the experiment. +Useful for those loose ends not tied to any specific node discount or requirement.

traits

Traits related to the experiment

Proc Details

New

Performs any necessary initialization of tags and other variables

actionable

Gets if the experiment is actionable provided some arguments

+

This proc should be overridden such that the return value is a +boolean value representing if the experiment could be actioned with +the provided arguments.

check_progress

Gets the current progress towards the goal of the experiment

+

This proc should be overridden such that the return value is a +list of lists, wherein each inner list represents a stage. Stages have +types, see _DEFINES/experisci.dm. Each stage should be constructed using +one of several available macros in that file.

finish_experiment

Called when you complete an experiment, makes sure the techwebs knows the experiment was finished, and tells everyone it happend, yay!

is_complete

Checks if the experiment is complete

+

This proc should be overridden such that it returns TRUE/FALSE to +state if the experiment is complete or not.

on_selected

Called when the experiment is selected by an experiment handler, for specific signals and the such.

on_unselected

Called when the opposite happens.

perform_experiment

Proc that tries to perform the experiment, and then checks if its completed.

perform_experiment_actions

Attempts to perform the experiment provided some arguments

+

This proc should be overridden such that the experiment will be actioned +with some defined arguments

\ No newline at end of file diff --git a/datum/experiment/exploration_scan/random.html b/datum/experiment/exploration_scan/random.html new file mode 100644 index 0000000000000..17a72038d021e --- /dev/null +++ b/datum/experiment/exploration_scan/random.html @@ -0,0 +1 @@ +/datum/experiment/exploration_scan/random - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

random

Vars

possible_random_conditionsIf not null the required_site_type will be picked from this list
possible_random_site_typesIf not null the required_condition will be picked from this list

Var Details

possible_random_conditions

If not null the required_site_type will be picked from this list

possible_random_site_types

If not null the required_condition will be picked from this list

\ No newline at end of file diff --git a/datum/experiment/ordnance.html b/datum/experiment/ordnance.html new file mode 100644 index 0000000000000..2e614cd0f57a0 --- /dev/null +++ b/datum/experiment/ordnance.html @@ -0,0 +1,9 @@ +/datum/experiment/ordnance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ordnance

A ordnance experiment datum. What gives the science in the first place. +One is instantiated by the techweb, another one is also kept on SSresearch for the briefing. +A disk should contain several of these in a list. Only one should get picked for the final paper.

Vars

experiment_properLookup experiments are initialized using subtypes, +this lets us ignore the ones made for subtyping.
gainProjected gain from an experiment. In list form, indexed = tier.
target_amountThe variable that influences the point equation; Determines when you get the most bang for your buck +More rigorously, this is the middle of the derivative bell curve. +In list form, indexed = tier.

Var Details

experiment_proper

Lookup experiments are initialized using subtypes, +this lets us ignore the ones made for subtyping.

gain

Projected gain from an experiment. In list form, indexed = tier.

target_amount

The variable that influences the point equation; Determines when you get the most bang for your buck +More rigorously, this is the middle of the derivative bell curve. +In list form, indexed = tier.

\ No newline at end of file diff --git a/datum/experiment/ordnance/explosive.html b/datum/experiment/ordnance/explosive.html new file mode 100644 index 0000000000000..38434cb22a2ad --- /dev/null +++ b/datum/experiment/ordnance/explosive.html @@ -0,0 +1,3 @@ +/datum/experiment/ordnance/explosive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

explosive

Vars

allow_any_sourceWhether we allow bombs without properly filled reaction_results or not. +Setting this to true means the experiment will always pass the cause and effect check.
require_allWhether we want everything in required_reactions to be fulfilled, or only one is needed.
required_reactionsTypepath to gas reactions that we want. Empty if we do not require any at all or don't want any.
sanitized_miscWhether we want a clear misc or not.
sanitized_reactionsWhether we only accept explosions with reactions that we set in src.required_reactions or do we allow other reactions in.

Var Details

allow_any_source

Whether we allow bombs without properly filled reaction_results or not. +Setting this to true means the experiment will always pass the cause and effect check.

require_all

Whether we want everything in required_reactions to be fulfilled, or only one is needed.

required_reactions

Typepath to gas reactions that we want. Empty if we do not require any at all or don't want any.

sanitized_misc

Whether we want a clear misc or not.

sanitized_reactions

Whether we only accept explosions with reactions that we set in src.required_reactions or do we allow other reactions in.

\ No newline at end of file diff --git a/datum/experiment/ordnance/gaseous.html b/datum/experiment/ordnance/gaseous.html new file mode 100644 index 0000000000000..ed8733ba6ce9d --- /dev/null +++ b/datum/experiment/ordnance/gaseous.html @@ -0,0 +1 @@ +/datum/experiment/ordnance/gaseous - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gaseous

Vars

required_gasTypepath to the gas we require for the experiment.

Var Details

required_gas

Typepath to the gas we require for the experiment.

\ No newline at end of file diff --git a/datum/experiment/physical.html b/datum/experiment/physical.html new file mode 100644 index 0000000000000..3a1baaedd7bf1 --- /dev/null +++ b/datum/experiment/physical.html @@ -0,0 +1 @@ +/datum/experiment/physical - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

physical

Vars

currently_scanned_atomThe atom that is currently being watched by this experiment
linked_experiment_handlerLinked experiment handler

Procs

register_eventsHandles registering to events relevant to the experiment
unregister_eventsHandles unregistering to events relevant to the experiment

Var Details

currently_scanned_atom

The atom that is currently being watched by this experiment

linked_experiment_handler

Linked experiment handler

Proc Details

register_events

Handles registering to events relevant to the experiment

unregister_events

Handles unregistering to events relevant to the experiment

\ No newline at end of file diff --git a/datum/experiment/scanning.html b/datum/experiment/scanning.html new file mode 100644 index 0000000000000..7d7112d39e17e --- /dev/null +++ b/datum/experiment/scanning.html @@ -0,0 +1,39 @@ +/datum/experiment/scanning - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Scanning Experiment

This is the base implementation of scanning experiments.

+

This class should be subclassed for producing actual experiments. The +procs should be extended where necessary.

Vars

required_atomsThe typepaths and number of atoms that must be scanned
scan_messageIf set, it'll be used in place of the generic "Scan samples of \a [initial(target.name)]" in serialize_progress_stage()
scannedThe list of atoms with sub-lists of atom references for scanned atoms contributing to the experiment (Or a count of atoms destoryed for destructive expiriments)

Procs

NewInitializes the scanned atoms lists
check_progressGets the number of atoms that have been scanned and the goal
do_after_experimentPerforms actions following a successful experiment action
experiment_requirementsAttempts to get the typepath for an atom that would contribute to the experiment
final_contributing_index_checksPerforms any additional checks against the atom being considered for selection as a contributing index
is_completeChecks if the scanning experiment is complete
perform_experiment_actionsAttempts to scan an atom towards the experiment's goal
serialize_progress_stageSerializes a progress stage into a list to be sent to the UI

Var Details

required_atoms

The typepaths and number of atoms that must be scanned

scan_message

If set, it'll be used in place of the generic "Scan samples of \a [initial(target.name)]" in serialize_progress_stage()

scanned

The list of atoms with sub-lists of atom references for scanned atoms contributing to the experiment (Or a count of atoms destoryed for destructive expiriments)

Proc Details

New

Initializes the scanned atoms lists

+

Initializes the internal scanned atoms list to keep track of which atoms have already been scanned

check_progress

Gets the number of atoms that have been scanned and the goal

+

This proc returns a string describing the number of atoms that +have been scanned as well as the target number of atoms.

do_after_experiment

Performs actions following a successful experiment action

+

This proc is intended to be used to add additional functionality to follow experiment +actions without having to change the perform_experiment_actions proc to get access to the +selected typepath index +Arguments:

+

experiment_requirements

Attempts to get the typepath for an atom that would contribute to the experiment

+

This proc checks the required atoms for a typepath that this target atom can contribute to +and if found returns that typepath, otherwise returns null +Arguments:

+

final_contributing_index_checks

Performs any additional checks against the atom being considered for selection as a contributing index

+

This proc is intended to be used to add additional functionality to contributing index checks +without having to duplicate the iteration structure of experiment_requirements() +Arguments:

+

is_complete

Checks if the scanning experiment is complete

+

Returns TRUE/FALSE as to if the necessary number of atoms have been scanned.

perform_experiment_actions

Attempts to scan an atom towards the experiment's goal

+

This proc attempts to scan an atom towards the experiment's goal, +and returns TRUE/FALSE based on success. +Arguments:

+

serialize_progress_stage

Serializes a progress stage into a list to be sent to the UI

+

Arguments:

+
\ No newline at end of file diff --git a/datum/experiment/scanning/fish.html b/datum/experiment/scanning/fish.html new file mode 100644 index 0000000000000..6f207698923b0 --- /dev/null +++ b/datum/experiment/scanning/fish.html @@ -0,0 +1,9 @@ +/datum/experiment/scanning/fish - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fish

A special scanning experiment that unlocks further settings for the fishing portal generator. +Mainly as an inventive solution to many a fish source being limited to maps that have it, +and to make the fishing portal generator a bit than just gubby and goldfish.

Vars

fish_source_rewardCompleting a experiment may also enable a fish source to be used for use for the portal generator.
next_experimentsFurther experiments added to the techweb when this one is completed.

Procs

NewWe make sure the scanned list is shared between all fish scanning experiments for this techweb, +since this is about scanning each species, and having to redo it for each species is a hassle.
final_contributing_index_checksOnly scannable fish will contribute towards the experiment.
finish_experimentAfter a fish scanning experiment is done, more may be unlocked. If so, add them to the techweb +and automatically link the handler to the next experiment in the list as a bit of qol.
on_selectedRegisters a couple signals to review the fish scanned so far. +It'd be an hassle not having any way (beside memory) to know which fish species have been scanned already otherwise.

Var Details

fish_source_reward

Completing a experiment may also enable a fish source to be used for use for the portal generator.

next_experiments

Further experiments added to the techweb when this one is completed.

Proc Details

New

We make sure the scanned list is shared between all fish scanning experiments for this techweb, +since this is about scanning each species, and having to redo it for each species is a hassle.

final_contributing_index_checks

Only scannable fish will contribute towards the experiment.

finish_experiment

After a fish scanning experiment is done, more may be unlocked. If so, add them to the techweb +and automatically link the handler to the next experiment in the list as a bit of qol.

on_selected

Registers a couple signals to review the fish scanned so far. +It'd be an hassle not having any way (beside memory) to know which fish species have been scanned already otherwise.

\ No newline at end of file diff --git a/datum/experiment/scanning/fish/holographic.html b/datum/experiment/scanning/fish/holographic.html new file mode 100644 index 0000000000000..e198480b65743 --- /dev/null +++ b/datum/experiment/scanning/fish/holographic.html @@ -0,0 +1 @@ +/datum/experiment/scanning/fish/holographic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

holographic

Procs

final_contributing_index_checksholo fishes are normally unscannable, but this is an experiment for them, so we don't care for the experisci_scannable variable.

Proc Details

final_contributing_index_checks

holo fishes are normally unscannable, but this is an experiment for them, so we don't care for the experisci_scannable variable.

\ No newline at end of file diff --git a/datum/experiment/scanning/people.html b/datum/experiment/scanning/people.html new file mode 100644 index 0000000000000..929104510a58e --- /dev/null +++ b/datum/experiment/scanning/people.html @@ -0,0 +1 @@ +/datum/experiment/scanning/people - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

people

An experiment where you scan your fellow humans

Vars

mind_requiredDoes the scanned target need to have a mind?
required_countNumber of people you need to scan
required_traits_descHow do we describe the people you need to scan?

Procs

is_valid_scan_targetChecks that the passed mob is valid human to scan

Var Details

mind_required

Does the scanned target need to have a mind?

required_count

Number of people you need to scan

required_traits_desc

How do we describe the people you need to scan?

Proc Details

is_valid_scan_target

Checks that the passed mob is valid human to scan

\ No newline at end of file diff --git a/datum/experiment/scanning/people/novel_organs.html b/datum/experiment/scanning/people/novel_organs.html new file mode 100644 index 0000000000000..2f516ab8b7c35 --- /dev/null +++ b/datum/experiment/scanning/people/novel_organs.html @@ -0,0 +1 @@ +/datum/experiment/scanning/people/novel_organs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

novel_organs

Scan for organs you didn't start the round with

Vars

organic_onlyDisallow prosthetic organs

Var Details

organic_only

Disallow prosthetic organs

\ No newline at end of file diff --git a/datum/experiment/scanning/points.html b/datum/experiment/scanning/points.html new file mode 100644 index 0000000000000..4a43cadc1e2fb --- /dev/null +++ b/datum/experiment/scanning/points.html @@ -0,0 +1 @@ +/datum/experiment/scanning/points - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

points

Vars

pointsThe current points gained on this experiment
required_pointsThe total required points for this experiment

Var Details

points

The current points gained on this experiment

required_points

The total required points for this experiment

\ No newline at end of file diff --git a/datum/experiment/scanning/points/machinery_pinpoint_scan.html b/datum/experiment/scanning/points/machinery_pinpoint_scan.html new file mode 100644 index 0000000000000..ccb34f34c83d6 --- /dev/null +++ b/datum/experiment/scanning/points/machinery_pinpoint_scan.html @@ -0,0 +1,5 @@ +/datum/experiment/scanning/points/machinery_pinpoint_scan - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

machinery_pinpoint_scan

Vars

required_stock_partWhich stock part are we looking for in the machine. +We use obj instead of datum here, as some stock parts aren't datumised, and in datumised ones +we can just look for the physical_object_reference to match up the requirement.

Var Details

required_stock_part

Which stock part are we looking for in the machine. +We use obj instead of datum here, as some stock parts aren't datumised, and in datumised ones +we can just look for the physical_object_reference to match up the requirement.

\ No newline at end of file diff --git a/datum/experiment/scanning/points/machinery_tiered_scan.html b/datum/experiment/scanning/points/machinery_tiered_scan.html new file mode 100644 index 0000000000000..ab63648ed4d64 --- /dev/null +++ b/datum/experiment/scanning/points/machinery_tiered_scan.html @@ -0,0 +1,3 @@ +/datum/experiment/scanning/points/machinery_tiered_scan - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

machinery_tiered_scan

This experiment type will turn up TRUE if at least one of the stock parts in the scanned machine is of the required_tier. +Pretend to upgrade security's techfab but in reality apply only one better matter bin! +Note that a stock part in a machine can either be an object, or a datum.

Vars

required_tierWhat tier of parts is required for the experiment

Var Details

required_tier

What tier of parts is required for the experiment

\ No newline at end of file diff --git a/datum/experiment/scanning/random.html b/datum/experiment/scanning/random.html new file mode 100644 index 0000000000000..464b3ed1d92f6 --- /dev/null +++ b/datum/experiment/scanning/random.html @@ -0,0 +1 @@ +/datum/experiment/scanning/random - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

random

Vars

max_requirement_per_typeMax amount of a requirement per type
possible_typeslist of types which that can be included in the experiment. Randomly picked from on New
total_requirementThe total desired number of atoms to have scanned

Var Details

max_requirement_per_type

Max amount of a requirement per type

possible_types

list of types which that can be included in the experiment. Randomly picked from on New

total_requirement

The total desired number of atoms to have scanned

\ No newline at end of file diff --git a/datum/experiment/scanning/random/material.html b/datum/experiment/scanning/random/material.html new file mode 100644 index 0000000000000..41db705dc130d --- /dev/null +++ b/datum/experiment/scanning/random/material.html @@ -0,0 +1 @@ +/datum/experiment/scanning/random/material - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

material

Vars

possible_material_typesList of materials that can be required.
required_materialsList of materials actually required, indexed by the atom that is required.

Var Details

possible_material_types

List of materials that can be required.

required_materials

List of materials actually required, indexed by the atom that is required.

\ No newline at end of file diff --git a/datum/experiment/scanning/random/mecha_damage_scan.html b/datum/experiment/scanning/random/mecha_damage_scan.html new file mode 100644 index 0000000000000..08617f13ce212 --- /dev/null +++ b/datum/experiment/scanning/random/mecha_damage_scan.html @@ -0,0 +1 @@ +/datum/experiment/scanning/random/mecha_damage_scan - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mecha_damage_scan

Vars

damage_percentDamage percent that each mech needs to be at for a scan to work.

Var Details

damage_percent

Damage percent that each mech needs to be at for a scan to work.

\ No newline at end of file diff --git a/datum/experiment/scanning/random/plants.html b/datum/experiment/scanning/random/plants.html new file mode 100644 index 0000000000000..f99358d4218d3 --- /dev/null +++ b/datum/experiment/scanning/random/plants.html @@ -0,0 +1 @@ +/datum/experiment/scanning/random/plants - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plants

Vars

possible_plant_genesList of possible plant genes the experiment may ask for.
required_genesList of plant genes actually required, indexed by the atom that is required.

Var Details

possible_plant_genes

List of possible plant genes the experiment may ask for.

required_genes

List of plant genes actually required, indexed by the atom that is required.

\ No newline at end of file diff --git a/datum/experiment/scanning/reagent.html b/datum/experiment/scanning/reagent.html new file mode 100644 index 0000000000000..ada9d1247cf48 --- /dev/null +++ b/datum/experiment/scanning/reagent.html @@ -0,0 +1 @@ +/datum/experiment/scanning/reagent - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

reagent

An experiment where you scan a container with a specified reagent of certain purity

Vars

min_purityThe minimum required purity of required_reagent
required_reagentThe reagent required to present in the scanned container

Var Details

min_purity

The minimum required purity of required_reagent

required_reagent

The reagent required to present in the scanned container

\ No newline at end of file diff --git a/datum/exploration_event.html b/datum/exploration_event.html new file mode 100644 index 0000000000000..9f5e763f18f61 --- /dev/null +++ b/datum/exploration_event.html @@ -0,0 +1 @@ +/datum/exploration_event - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

exploration_event

Exploration event

Vars

band_valuesModifies site scan results by these
blacklisted_site_traitsIf these site traits are present the event won't show up
deep_scan_descriptionOptional description that will be added to site description when point scan is completed.
discovery_logmessage logged when first encountering the event.
nameThis name will show up in exploration list if it's repeatable
point_scan_descriptionOptional description that will be added to site description when point scan is completed.
required_site_traitsExploration site required_traits for this event to show up
root_abstract_typeThese types will be ignored in event creation
site_description_modThis will be added to site description, mind this will most likely reveal presence of this event early if set.
visitedencountered at least once

Procs

encounterMain event functionality, called when exploring randomly/revisiting.
get_discovery_messageOverride this if you need to modify discovery message
is_targetableShould this event show up on site exploration list.

Var Details

band_values

Modifies site scan results by these

blacklisted_site_traits

If these site traits are present the event won't show up

deep_scan_description

Optional description that will be added to site description when point scan is completed.

discovery_log

message logged when first encountering the event.

name

This name will show up in exploration list if it's repeatable

point_scan_description

Optional description that will be added to site description when point scan is completed.

required_site_traits

Exploration site required_traits for this event to show up

root_abstract_type

These types will be ignored in event creation

site_description_mod

This will be added to site description, mind this will most likely reveal presence of this event early if set.

visited

encountered at least once

Proc Details

encounter

Main event functionality, called when exploring randomly/revisiting.

get_discovery_message

Override this if you need to modify discovery message

is_targetable

Should this event show up on site exploration list.

\ No newline at end of file diff --git a/datum/exploration_event/simple.html b/datum/exploration_event/simple.html new file mode 100644 index 0000000000000..aee2e136e457f --- /dev/null +++ b/datum/exploration_event/simple.html @@ -0,0 +1 @@ +/datum/exploration_event/simple - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

simple

Simple events, not a full fledged adventure, consist only of single encounter screen

Vars

action_textAction text, can be further parametrized in get_action_text()
descriptionDescription, can be further parametrized in get_description()
ignore_textIgnore button text
skippableShow ignore button.

Procs

action_enabledButton to act disabled or not
build_ui_eventCreates ui data for displaying the event
encounterOn exploration, only display our information with the act/ignore options
endEnds simple event and cleans up display data
fireAfter choosing not to ignore the event, THIS IS DONE AFTER UNKNOWN DELAY SO YOU NEED TO VALIDATE IF ACTION IS POSSIBLE AGAIN
get_action_textText on the act button
get_descriptionDescription shown below image

Var Details

action_text

Action text, can be further parametrized in get_action_text()

description

Description, can be further parametrized in get_description()

ignore_text

Ignore button text

skippable

Show ignore button.

Proc Details

action_enabled

Button to act disabled or not

build_ui_event

Creates ui data for displaying the event

encounter

On exploration, only display our information with the act/ignore options

end

Ends simple event and cleans up display data

fire

After choosing not to ignore the event, THIS IS DONE AFTER UNKNOWN DELAY SO YOU NEED TO VALIDATE IF ACTION IS POSSIBLE AGAIN

get_action_text

Text on the act button

get_description

Description shown below image

\ No newline at end of file diff --git a/datum/exploration_event/simple/resource.html b/datum/exploration_event/simple/resource.html new file mode 100644 index 0000000000000..c7a87856382eb --- /dev/null +++ b/datum/exploration_event/simple/resource.html @@ -0,0 +1 @@ +/datum/exploration_event/simple/resource - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

resource

Simple event type that checks if you have a tool and after a retrieval delay adds loot to drone.

Vars

amountHow many times can this be extracted
has_tool_descriptionDescription shown when you have the necessary tool
loot_typeWhat you get out of it, either /obj path or adventure_loot_generator id
no_tool_descriptionDescription shown when you don't have the tool
required_toolTool type required to recover this resource
success_logMessage logged on success

Procs

delay_finishedCan go back if something is left.
get_descriptionDescription shown below image

Var Details

amount

How many times can this be extracted

has_tool_description

Description shown when you have the necessary tool

loot_type

What you get out of it, either /obj path or adventure_loot_generator id

no_tool_description

Description shown when you don't have the tool

required_tool

Tool type required to recover this resource

success_log

Message logged on success

Proc Details

delay_finished

Can go back if something is left.

get_description

Description shown below image

\ No newline at end of file diff --git a/datum/exploration_event/simple/trader.html b/datum/exploration_event/simple/trader.html new file mode 100644 index 0000000000000..2b4c1768df527 --- /dev/null +++ b/datum/exploration_event/simple/trader.html @@ -0,0 +1 @@ +/datum/exploration_event/simple/trader - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

trader

Trader events - If drone is loaded with X exchanges it for Y, might require translator tool.

Vars

required_pathObj path we'll take or list of paths ,one path will be picked from it at init
traded_pathObj path we'll give out or list of paths ,one path will be picked from it at init

Var Details

required_path

Obj path we'll take or list of paths ,one path will be picked from it at init

traded_path

Obj path we'll give out or list of paths ,one path will be picked from it at init

\ No newline at end of file diff --git a/datum/exploration_site.html b/datum/exploration_site.html new file mode 100644 index 0000000000000..0a372419c0764 --- /dev/null +++ b/datum/exploration_site.html @@ -0,0 +1 @@ +/datum/exploration_site - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

exploration_site

Exploration site, drone travel destination representing interesting zone for exploration.

Vars

band_infoContains baseline site bands at define time. Events bands will be added to this list as part of event generation.
coordinatesCoordinates in Station coordinate system - don't ask if station rotates
deep_scan_completeWas deep scan of this site completed.
descriptionDescription shown after scanning/exploring
distanceHow far is it, affects travel time/cost.
eventsList of event instances represting thing to be found around this exploration site.
fluff_typeKey for strings file fluff events
nameName displayed after scanning/exploring
point_scan_completeWas point scan of this site completed.
revealedWas the point scan done or a drone arrived on the site. Affects displayed name/description
scan_conditionsList of scan conditions for this site - scan conditions are singletons
site_traitsThese are used to determine events/adventures possible for this site

Procs

site_dataData for ui_data, exploration

Var Details

band_info

Contains baseline site bands at define time. Events bands will be added to this list as part of event generation.

coordinates

Coordinates in Station coordinate system - don't ask if station rotates

deep_scan_complete

Was deep scan of this site completed.

description

Description shown after scanning/exploring

distance

How far is it, affects travel time/cost.

events

List of event instances represting thing to be found around this exploration site.

fluff_type

Key for strings file fluff events

name

Name displayed after scanning/exploring

point_scan_complete

Was point scan of this site completed.

revealed

Was the point scan done or a drone arrived on the site. Affects displayed name/description

scan_conditions

List of scan conditions for this site - scan conditions are singletons

site_traits

These are used to determine events/adventures possible for this site

Proc Details

site_data

Data for ui_data, exploration

\ No newline at end of file diff --git a/datum/export.html b/datum/export.html new file mode 100644 index 0000000000000..6395a794d000e --- /dev/null +++ b/datum/export.html @@ -0,0 +1,4 @@ +/datum/export - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

export

Vars

allow_negative_costwhether this export can have a negative impact on the cargo budget or not
amount_report_multiplierThe multiplier of the amount sold shown on the report. Useful for exports, such as material, which costs are not strictly per single units sold.
costCost of item, in cargo credits. Must not allow for infinite price dupes, see above.
exclude_typesTypes excluded from export
export_typesType of the exported object. If none, the export datum is considered base type.
include_subtypesSet to FALSE to make the datum apply only to a strict type.
init_costcost includes elasticity, this does not.
k_elasticitycoefficient used in marginal price calculation that roughly corresponds to the inverse of price elasticity, or "quantity elasticity"
messageMessage appended to the sale report
scannableSet to false if the cost shouldn't be determinable by an export scanner
unit_nameUnit name. Only used in "Received [total_amount] [name]s [message]."

Procs

applies_toChecks if the item is fit for export datum.
get_costChecks the cost. 0 cost items are skipped in export.
sell_objectCalculates the exact export value of the object, while factoring in all the relivant variables.

Var Details

allow_negative_cost

whether this export can have a negative impact on the cargo budget or not

amount_report_multiplier

The multiplier of the amount sold shown on the report. Useful for exports, such as material, which costs are not strictly per single units sold.

cost

Cost of item, in cargo credits. Must not allow for infinite price dupes, see above.

exclude_types

Types excluded from export

export_types

Type of the exported object. If none, the export datum is considered base type.

include_subtypes

Set to FALSE to make the datum apply only to a strict type.

init_cost

cost includes elasticity, this does not.

k_elasticity

coefficient used in marginal price calculation that roughly corresponds to the inverse of price elasticity, or "quantity elasticity"

message

Message appended to the sale report

scannable

Set to false if the cost shouldn't be determinable by an export scanner

unit_name

Unit name. Only used in "Received [total_amount] [name]s [message]."

Proc Details

applies_to

Checks if the item is fit for export datum.

get_cost

Checks the cost. 0 cost items are skipped in export.

sell_object

Calculates the exact export value of the object, while factoring in all the relivant variables.

+

Called only once, when the object is actually sold by the datum. +Adds item's cost and amount to the current export cycle. +get_cost, get_amount and applies_to do not neccesary mean a successful sale.

\ No newline at end of file diff --git a/datum/export/food.html b/datum/export/food.html new file mode 100644 index 0000000000000..1ec77c65e86e2 --- /dev/null +++ b/datum/export/food.html @@ -0,0 +1,2 @@ +/datum/export/food - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

food

Original Food export file got eaten somewhere along the line and I have no idea when or where it got completely deleted. +Foods given a venue value are exportable to cargo as a backup to selling from venues, however at the expense of elasticity.

Vars

cost_obtained_from_venue_valueHave we already set the cost of this export? Necessary to avoid the cost being constantly reset.

Var Details

cost_obtained_from_venue_value

Have we already set the cost of this export? Necessary to avoid the cost being constantly reset.

\ No newline at end of file diff --git a/datum/export/large/gas_canister.html b/datum/export/large/gas_canister.html new file mode 100644 index 0000000000000..f9dc0c6475380 --- /dev/null +++ b/datum/export/large/gas_canister.html @@ -0,0 +1,11 @@ +/datum/export/large/gas_canister - /tg/ Station 13
/tg/ Station 13 - Modules - Types

gas_canister

Gas canister exports. +I'm going to put a quick aside here as this has been a pain to balance for several years now, and I'd like to at least break how to keep gas exports tame. +So: Gasses are sold in canisters below, which have a variable amount of maximum pressure before they start to break. The largest of which is 9.2e13 kPa. +This means we can determine a theoretical maximum value for gas sale prices using the ideal gas laws, as we know we have a minimum gas temperature of 2.7 kelvin.

+

Additional note on base value. Gasses are soft capped to limit how much they're worth at large quantities, and time and time again players will find new ways to break your gasses. +so please, PLEASE try not to go too much further past 10.

+
\ No newline at end of file diff --git a/datum/export/photocopy.html b/datum/export/photocopy.html new file mode 100644 index 0000000000000..93c126f104d16 --- /dev/null +++ b/datum/export/photocopy.html @@ -0,0 +1 @@ +/datum/export/photocopy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

photocopy

Vars

backfire_chanceTracks the chance of losing money for trying to double-dip with photocopies. Resets every time it ruins an order.
backfiredUsed to track if a batch of photocopy exports has backfired

Var Details

backfire_chance

Tracks the chance of losing money for trying to double-dip with photocopies. Resets every time it ruins an order.

backfired

Used to track if a batch of photocopy exports has backfired

\ No newline at end of file diff --git a/datum/export/pirate.html b/datum/export/pirate.html new file mode 100644 index 0000000000000..1373caef83739 --- /dev/null +++ b/datum/export/pirate.html @@ -0,0 +1 @@ +/datum/export/pirate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

pirate

Procs

find_lootAttempts to find the thing on station

Proc Details

find_loot

Attempts to find the thing on station

\ No newline at end of file diff --git a/datum/export/pirate/ransom.html b/datum/export/pirate/ransom.html new file mode 100644 index 0000000000000..a097bd33d7d78 --- /dev/null +++ b/datum/export/pirate/ransom.html @@ -0,0 +1 @@ +/datum/export/pirate/ransom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ransom

Procs

send_back_to_stationSend them back to the station after a while.

Proc Details

send_back_to_station

Send them back to the station after a while.

\ No newline at end of file diff --git a/datum/export_report.html b/datum/export_report.html new file mode 100644 index 0000000000000..7a77db988fcf0 --- /dev/null +++ b/datum/export_report.html @@ -0,0 +1 @@ +/datum/export_report - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

export_report

Vars

all_contents_scannableset to false if any objects in a dry run were unscannable
exported_atomsnames of atoms sold/deleted by export
total_amountexport instance => total count of sold objects of its type, only exists if any were sold
total_valueexport instance => total value of sold objects

Var Details

all_contents_scannable

set to false if any objects in a dry run were unscannable

exported_atoms

names of atoms sold/deleted by export

total_amount

export instance => total count of sold objects of its type, only exists if any were sold

total_value

export instance => total value of sold objects

\ No newline at end of file diff --git a/datum/fantasy_affix.html b/datum/fantasy_affix.html new file mode 100644 index 0000000000000..deef4fcf3a598 --- /dev/null +++ b/datum/fantasy_affix.html @@ -0,0 +1 @@ +/datum/fantasy_affix - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fantasy_affix

Vars

nameonly used for admins adding the affix, this is not what players will see.

Var Details

name

only used for admins adding the affix, this is not what players will see.

\ No newline at end of file diff --git a/datum/fax_panel_interface.html b/datum/fax_panel_interface.html new file mode 100644 index 0000000000000..f73f242438387 --- /dev/null +++ b/datum/fax_panel_interface.html @@ -0,0 +1,6 @@ +/datum/fax_panel_interface - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fax_panel_interface

Admin Fax Panel. Tool for sending fax messages faster.

Vars

available_faxesAll faxes in from machinery list()
default_paper_nameDefault name of paper. paper - bluh-bluh. Used when field with paper name not edited.
fax_paperPaper which admin edit and send.
sending_fax_nameDefault name of fax. Used when field with fax name not edited.
stamp_listList with available stamps

Procs

get_fax_by_nameReturn fax if name exists +Arguments:

Var Details

available_faxes

All faxes in from machinery list()

default_paper_name

Default name of paper. paper - bluh-bluh. Used when field with paper name not edited.

fax_paper

Paper which admin edit and send.

sending_fax_name

Default name of fax. Used when field with fax name not edited.

stamp_list

List with available stamps

Proc Details

get_fax_by_name

Return fax if name exists +Arguments:

+
\ No newline at end of file diff --git a/datum/feed_channel.html b/datum/feed_channel.html new file mode 100644 index 0000000000000..4ccb6c8a266a8 --- /dev/null +++ b/datum/feed_channel.html @@ -0,0 +1,7 @@ +/datum/feed_channel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

feed_channel

Vars

D_class_censor_timeAt what times has the author been D-Class censored.
authorWho is the author of this channel? Taken from the user's ID card.
author_censorHas the author of the channel been censored, as opposed to the message itself?
author_censor_timeAt what times has the author been censored?
censoredHas this channel been censored? Where Locked channels cannot be commented on, Censored channels cannot be viewed at all.
channel_IDChannel ID is a random number sequence similar to account ID number that allows for us to link messages to the proper channels through the UI backend.
channel_descThe description of the channel, players see this upon clicking on the channel before seeing messages.
channel_nameThe name of the channel, players see this on the channel selection list
is_admin_channelIs this an admin channel? Allows for actions to be taken by the admin only.
lockedIs the channel locked? Locked channels cannot be commented on.
messagesDatum list of all feed_messages.

Procs

random_channel_id_setupThis proc assigns each feed_channel a random integer, from 1-999 as a unique identifier. +Using this value, the TGUI window has a unique identifier to attach to messages that can be used to reattach them +to their parent channels back in dreammaker. +Based on implementation, we're limiting ourselves to only 998 player made channels maximum. How we'd use all of them, I don't know.

Var Details

D_class_censor_time

At what times has the author been D-Class censored.

author

Who is the author of this channel? Taken from the user's ID card.

author_censor

Has the author of the channel been censored, as opposed to the message itself?

author_censor_time

At what times has the author been censored?

censored

Has this channel been censored? Where Locked channels cannot be commented on, Censored channels cannot be viewed at all.

channel_ID

Channel ID is a random number sequence similar to account ID number that allows for us to link messages to the proper channels through the UI backend.

channel_desc

The description of the channel, players see this upon clicking on the channel before seeing messages.

channel_name

The name of the channel, players see this on the channel selection list

is_admin_channel

Is this an admin channel? Allows for actions to be taken by the admin only.

locked

Is the channel locked? Locked channels cannot be commented on.

messages

Datum list of all feed_messages.

Proc Details

random_channel_id_setup

This proc assigns each feed_channel a random integer, from 1-999 as a unique identifier. +Using this value, the TGUI window has a unique identifier to attach to messages that can be used to reattach them +to their parent channels back in dreammaker. +Based on implementation, we're limiting ourselves to only 998 player made channels maximum. How we'd use all of them, I don't know.

\ No newline at end of file diff --git a/datum/feed_comment.html b/datum/feed_comment.html new file mode 100644 index 0000000000000..fb67b7e370b26 --- /dev/null +++ b/datum/feed_comment.html @@ -0,0 +1 @@ +/datum/feed_comment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

feed_comment

Vars

authorThe author of the comment, as seen on a newscaster feed.
bodyBody of the aforementioned comment.
time_stampAt what time was the feed comment sent? Time is in station time.

Var Details

author

The author of the comment, as seen on a newscaster feed.

body

Body of the aforementioned comment.

time_stamp

At what time was the feed comment sent? Time is in station time.

\ No newline at end of file diff --git a/datum/feed_message.html b/datum/feed_message.html new file mode 100644 index 0000000000000..cb268a83ff0f6 --- /dev/null +++ b/datum/feed_message.html @@ -0,0 +1 @@ +/datum/feed_message - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

feed_message

Vars

authorWho is the author of the full-size article to the feed channel?
author_censorHas the author been blocked from making new feed messages?
author_censor_timeIn station time, at what time was the author's messages censored and blocked from viewing.
bodyBody of the full-size article to the feed channel.
body_censorHas the body of the message been censored?
body_censor_timeIn station time, at what time was this message censored and blocked from viewing.
captionIf the message has an image, what is that image's caption?
commentsList consisting of the articles feed comments for this full-size article.
creation_timeAt what time was the feed message created?
imgIs there an image tied to the feed message?
is_admin_messageDid an admin send this message?
lockedCan comments be placed on that feed message?
message_IDWhat number message is this? IE: The first message sent in a round including automated messages is message 1.
parent_IDWhat is the channel ID of the parent channel?
photo_fileReferece to the photo used in picture messages.
time_stampAt what time was the full-size article sent? Time is in station time.

Var Details

author

Who is the author of the full-size article to the feed channel?

author_censor

Has the author been blocked from making new feed messages?

author_censor_time

In station time, at what time was the author's messages censored and blocked from viewing.

body

Body of the full-size article to the feed channel.

body_censor

Has the body of the message been censored?

body_censor_time

In station time, at what time was this message censored and blocked from viewing.

caption

If the message has an image, what is that image's caption?

comments

List consisting of the articles feed comments for this full-size article.

creation_time

At what time was the feed message created?

img

Is there an image tied to the feed message?

is_admin_message

Did an admin send this message?

locked

Can comments be placed on that feed message?

message_ID

What number message is this? IE: The first message sent in a round including automated messages is message 1.

parent_ID

What is the channel ID of the parent channel?

photo_file

Referece to the photo used in picture messages.

time_stamp

At what time was the full-size article sent? Time is in station time.

\ No newline at end of file diff --git a/datum/feed_network.html b/datum/feed_network.html new file mode 100644 index 0000000000000..fdf8529501466 --- /dev/null +++ b/datum/feed_network.html @@ -0,0 +1 @@ +/datum/feed_network - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

feed_network

Vars

channel_IDsList of all the network_channels Channel Id numbers, kept in a global easy to find place.
last_actionWhat time was the last action taken on the feed_network?
message_countHow many messages currently exist on this feed_network? Increments as new messages are written.
network_channelsAll the feed channels that have been made on the feed network.
redacted_textWhat does this feed network say when a message/author is redacted?
wanted_issueWhat is the wanted issue being sent out to all newscasters.

Var Details

channel_IDs

List of all the network_channels Channel Id numbers, kept in a global easy to find place.

last_action

What time was the last action taken on the feed_network?

message_count

How many messages currently exist on this feed_network? Increments as new messages are written.

network_channels

All the feed channels that have been made on the feed network.

redacted_text

What does this feed network say when a message/author is redacted?

wanted_issue

What is the wanted issue being sent out to all newscasters.

\ No newline at end of file diff --git a/datum/fish_evolution.html b/datum/fish_evolution.html new file mode 100644 index 0000000000000..452ad8dba7c31 --- /dev/null +++ b/datum/fish_evolution.html @@ -0,0 +1,7 @@ +/datum/fish_evolution - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fish_evolution

Fish evolution datums

+

If present in a fish's evolution_types list, and other conditions are met in check_conditions() +then there's a chance the offspring may be of a new type rather than the same as its source or mate (if any).

Vars

conditions_noteA text string shown in the catalog, containing information on conditions specific to this evolution.
nameThe name of the evolution. If not set, it'll be generated on runtime from the name of the new fish type.
new_fish_typeThe obj/item/fish path of the new fish
new_traitsA list of traits added to the new fish. These take priority over the parents' traits.
probabilityThe probability that this evolution can happen.
removed_traitsIf set, these traits will be removed from the new fish.
required_temperature_maxThe maximum required temperature for the evolved fish to spawn
required_temperature_minThe minimum required temperature for the evolved fish to spawn
show_on_wikiIs this evolution shown on the wiki?
show_result_on_wikiIs the result of this evolution shown on the wiki?

Procs

check_conditionsThe main proc that checks whether this can happen or not. +Keep in mind the mate and aquarium arguments may be null if +the fish is self-reproducing or this evolution is a result of a fish_growth component
get_evolution_tooltipCalled by the fish analyzer right click function. Returns a text string used as tooltip.
growth_checksThis is called when the evolution is set as the result type of a fish_growth component
register_fishProc called to let evolution register signals that are needed for various conditions.

Var Details

conditions_note

A text string shown in the catalog, containing information on conditions specific to this evolution.

name

The name of the evolution. If not set, it'll be generated on runtime from the name of the new fish type.

new_fish_type

The obj/item/fish path of the new fish

new_traits

A list of traits added to the new fish. These take priority over the parents' traits.

probability

The probability that this evolution can happen.

removed_traits

If set, these traits will be removed from the new fish.

required_temperature_max

The maximum required temperature for the evolved fish to spawn

required_temperature_min

The minimum required temperature for the evolved fish to spawn

show_on_wiki

Is this evolution shown on the wiki?

show_result_on_wiki

Is the result of this evolution shown on the wiki?

Proc Details

check_conditions

The main proc that checks whether this can happen or not. +Keep in mind the mate and aquarium arguments may be null if +the fish is self-reproducing or this evolution is a result of a fish_growth component

get_evolution_tooltip

Called by the fish analyzer right click function. Returns a text string used as tooltip.

growth_checks

This is called when the evolution is set as the result type of a fish_growth component

register_fish

Proc called to let evolution register signals that are needed for various conditions.

\ No newline at end of file diff --git a/datum/fish_evolution/dummy/two.html b/datum/fish_evolution/dummy/two.html new file mode 100644 index 0000000000000..d7e46ed17ab0b --- /dev/null +++ b/datum/fish_evolution/dummy/two.html @@ -0,0 +1 @@ +/datum/fish_evolution/dummy/two - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

two

This is used by both fish_evolution and fish_growth unit tests.

Procs

growth_checksDuring the fish_growth unit test, we spawn a fish outside of the aquarium and check that this actually stops it from growing

Proc Details

growth_checks

During the fish_growth unit test, we spawn a fish outside of the aquarium and check that this actually stops it from growing

\ No newline at end of file diff --git a/datum/fish_movement.html b/datum/fish_movement.html new file mode 100644 index 0000000000000..208d38ee1e523 --- /dev/null +++ b/datum/fish_movement.html @@ -0,0 +1,7 @@ +/datum/fish_movement - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fish_movement

Fish movements are simple datums, generated by the fishing minigame, that represent how the fish moves suring the minigame.

Vars

can_interrupt_moveIf true, the fish can jump while a target position is set, thus overriding it
current_velocity_limitThe current speed limit used
fish_idle_velocityThe base velocity of the fish, which may affect jump distances and falling speed.
fish_velocityThe current speed the fish is moving at
long_jump_chanceHow likely the fish is to perform a long jump, then multiplied by difficulty
long_jump_velocity_limitThe speed limit for the long jump
masterThe minigame that spawned us
short_jump_chanceHow likely the fish is to perform a standard jump, then multiplied by difficulty
short_jump_velocity_limitThe speed limit for the short jump
target_positionA position on the slider the fish wants to get to
times_firedHow many times move_fish() has been called

Procs

adjust_to_difficultyProc that adjusts movement values to the difficulty of the minigame. +The operations can be a tad complex, but basically it ensures that jump +chances with a probability higher than 1% increase in a smooth curve so that +they still reach 100% prob when the difficulty peakes.
get_accelerationProc that returns the acceleration of the fish during the minigame.
move_fishThe main proc, called by minigame every SSfishing tick while it's in the 'active' phase.
set_fish_positionCalled at the end of move_fish(), for updating the position of the fish in the fishing minigame.

Var Details

can_interrupt_move

If true, the fish can jump while a target position is set, thus overriding it

current_velocity_limit

The current speed limit used

fish_idle_velocity

The base velocity of the fish, which may affect jump distances and falling speed.

fish_velocity

The current speed the fish is moving at

long_jump_chance

How likely the fish is to perform a long jump, then multiplied by difficulty

long_jump_velocity_limit

The speed limit for the long jump

master

The minigame that spawned us

short_jump_chance

How likely the fish is to perform a standard jump, then multiplied by difficulty

short_jump_velocity_limit

The speed limit for the short jump

target_position

A position on the slider the fish wants to get to

times_fired

How many times move_fish() has been called

Proc Details

adjust_to_difficulty

Proc that adjusts movement values to the difficulty of the minigame. +The operations can be a tad complex, but basically it ensures that jump +chances with a probability higher than 1% increase in a smooth curve so that +they still reach 100% prob when the difficulty peakes.

get_acceleration

Proc that returns the acceleration of the fish during the minigame.

move_fish

The main proc, called by minigame every SSfishing tick while it's in the 'active' phase.

set_fish_position

Called at the end of move_fish(), for updating the position of the fish in the fishing minigame.

\ No newline at end of file diff --git a/datum/fish_movement/accelerando.html b/datum/fish_movement/accelerando.html new file mode 100644 index 0000000000000..65b7f3eaae423 --- /dev/null +++ b/datum/fish_movement/accelerando.html @@ -0,0 +1 @@ +/datum/fish_movement/accelerando - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

accelerando

fish movement datum that progressively gets faster until acceleration and velocity are double the starting ones.

Vars

accel_time_capTime to reach full speed, in seconds.
long_jump_vel_addThe long jump velocity to add each tick
short_jump_vel_addThe jump velocity to add each tick

Var Details

accel_time_cap

Time to reach full speed, in seconds.

long_jump_vel_add

The long jump velocity to add each tick

short_jump_vel_add

The jump velocity to add each tick

\ No newline at end of file diff --git a/datum/fish_movement/choppy.html b/datum/fish_movement/choppy.html new file mode 100644 index 0000000000000..7a4999b9852c3 --- /dev/null +++ b/datum/fish_movement/choppy.html @@ -0,0 +1 @@ +/datum/fish_movement/choppy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

choppy

Fish movement datum that updates the fish position twice per second.

Vars

faux_positionWe keep of the theorical fish position to eventually use

Var Details

faux_position

We keep of the theorical fish position to eventually use

\ No newline at end of file diff --git a/datum/fish_movement/plunger.html b/datum/fish_movement/plunger.html new file mode 100644 index 0000000000000..b450432648162 --- /dev/null +++ b/datum/fish_movement/plunger.html @@ -0,0 +1 @@ +/datum/fish_movement/plunger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plunger

Fish movement datum that weakly pushes the fish up and then down with greater force once it reaches the top of the minigame.

Vars

is_plungingIs the fish plunging to the bottom of the minigame area, or should it swim up?
plunging_speedThe added idle velocity when plunging

Var Details

is_plunging

Is the fish plunging to the bottom of the minigame area, or should it swim up?

plunging_speed

The added idle velocity when plunging

\ No newline at end of file diff --git a/datum/fish_source.html b/datum/fish_source.html new file mode 100644 index 0000000000000..dd5c7c887690a --- /dev/null +++ b/datum/fish_source.html @@ -0,0 +1,13 @@ +/datum/fish_source - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fish_source

Where the fish actually come from - every fishing spot has one assigned but multiple fishing holes +can share single source, ie single shared one for ocean/lavaland river

Vars

backgroundBackground image name from /datum/asset/simple/fishing_minigame
catalog_descriptionHow the spot type is described in fish catalog section about fish sources, will be skipped if null
currently_on_regenA list of stuff that's currently waiting to be readded to fish_counts
dudsText shown as baloon alert when you roll a dud in the table
exploded_turfsIf explosive_malus is true, this will be used to keep track of the turfs where an explosion happened for when we'll spawn the loot.
explosive_malusIt true, repeated and large explosions won't be as efficient. This is usually for fish sources that cover multiple turfs (i.e. rivers, oceans).
fish_count_regenAny limited quantity stuff in this list will be readded to the counts after a while
fish_countsIf a key from fish_table is present here, that fish is availible in limited quantity and is reduced by one on successful fishing
fish_tableFish catch weight table - these are relative weights
fishing_difficultyBaseline difficulty for fishing in this spot. THIS IS ADDED TO THE DEFAULT DIFFICULTY OF THE MINIGAME (15)
overlay_stateWhen selected by the fishing portal, this will be the icon_state of the overlay shown on the machine.
profound_fisher_blacklistMindless mobs that can fish will never pull up items on this list
radial_stateWhen linked to a fishing portal, this will be the icon_state of this option in the radial menu
weight_leveling_exponentsList of exponents used to level out the table weight differences between fish depending on bait quality.
weight_result_multiplierList of multipliers used to make fishes more common compared to everything else depending on bait quality, indexed from best to worst.

Procs

calculate_difficultyCalculates the difficulty of the minigame:
calculate_difficulty_minigameComsig proc from the fishing minigame for 'calculate_difficulty'
dispense_rewardGives out the reward if possible
generate_wiki_contentsCalled by /datum/autowiki/fish_sources unless the catalog entry for this fish source is null. +It should Return a list of entries with keys named "name", "icon", "weight" and "notes" +detailing the contents of this fish source.
get_catchable_fish_namesAdd a string with the names of catchable fishes to the examine text.
get_fish_tableReturns the fish table, with with the unavailable items from fish_counts removed.
get_modified_fish_tableBuilds a fish weights table modified by bait/rod/user properties
has_known_fishesreturns true if this fishing spot has fish that are shown in the catalog.
interrupt_challengeProc called when the challenge is interrupted within the fish source code.
level_out_fishA proc that levels out the weights of various fish, leading to rarer fishes being more common.
on_challenge_completedProc called when the COMSIG_MOB_COMPLETE_FISHING signal is sent. +Check if we've succeeded. If so, write into memory and dispense the reward.
on_fishing_spot_delCalled whenever a fishing spot with this fish source attached is deleted
on_fishing_spot_initCalled when src is set as the fish source of a fishing spot component
on_start_fishingCalled below above proc, in case the fishing source has anything to do that isn't denial
pre_challenge_startedUsed to register signals or add traits and the such right after conditions have been cleared +and before the minigame starts.
readd_fishCalled when releasing a fish in a fishing spot with the TRAIT_CATCH_AND_RELEASE trait.
reason_we_cant_fishCan we fish in this spot at all. Returns DENIAL_REASON or null if we're good to go
roll_rewardReturns a typepath or a special value which we use for spawning dispensing a reward later.
roll_reward_minigameComsig proc from the fishing minigame for 'roll_reward'
simple_dispense_rewardSimplified version of dispense_reward that doesn't need a fisherman.
spawn_rewardSpawns a reward from a atom path right where the fisherman is. Part of the dispense_reward() logic.

Var Details

background

Background image name from /datum/asset/simple/fishing_minigame

catalog_description

How the spot type is described in fish catalog section about fish sources, will be skipped if null

currently_on_regen

A list of stuff that's currently waiting to be readded to fish_counts

duds

Text shown as baloon alert when you roll a dud in the table

exploded_turfs

If explosive_malus is true, this will be used to keep track of the turfs where an explosion happened for when we'll spawn the loot.

explosive_malus

It true, repeated and large explosions won't be as efficient. This is usually for fish sources that cover multiple turfs (i.e. rivers, oceans).

fish_count_regen

Any limited quantity stuff in this list will be readded to the counts after a while

fish_counts

If a key from fish_table is present here, that fish is availible in limited quantity and is reduced by one on successful fishing

fish_table

Fish catch weight table - these are relative weights

fishing_difficulty

Baseline difficulty for fishing in this spot. THIS IS ADDED TO THE DEFAULT DIFFICULTY OF THE MINIGAME (15)

overlay_state

When selected by the fishing portal, this will be the icon_state of the overlay shown on the machine.

profound_fisher_blacklist

Mindless mobs that can fish will never pull up items on this list

radial_state

When linked to a fishing portal, this will be the icon_state of this option in the radial menu

weight_leveling_exponents

List of exponents used to level out the table weight differences between fish depending on bait quality.

weight_result_multiplier

List of multipliers used to make fishes more common compared to everything else depending on bait quality, indexed from best to worst.

Proc Details

calculate_difficulty

Calculates the difficulty of the minigame:

+

This includes the source's fishing difficulty, that of the fish, the rod, +favorite and disliked baits, fish traits and the fisherman skill.

+

For non-fish, it's just the source's fishing difficulty minus the fisherman skill.

calculate_difficulty_minigame

Comsig proc from the fishing minigame for 'calculate_difficulty'

dispense_reward

Gives out the reward if possible

generate_wiki_contents

Called by /datum/autowiki/fish_sources unless the catalog entry for this fish source is null. +It should Return a list of entries with keys named "name", "icon", "weight" and "notes" +detailing the contents of this fish source.

get_catchable_fish_names

Add a string with the names of catchable fishes to the examine text.

get_fish_table

Returns the fish table, with with the unavailable items from fish_counts removed.

get_modified_fish_table

Builds a fish weights table modified by bait/rod/user properties

has_known_fishes

returns true if this fishing spot has fish that are shown in the catalog.

interrupt_challenge

Proc called when the challenge is interrupted within the fish source code.

level_out_fish

A proc that levels out the weights of various fish, leading to rarer fishes being more common.

on_challenge_completed

Proc called when the COMSIG_MOB_COMPLETE_FISHING signal is sent. +Check if we've succeeded. If so, write into memory and dispense the reward.

on_fishing_spot_del

Called whenever a fishing spot with this fish source attached is deleted

on_fishing_spot_init

Called when src is set as the fish source of a fishing spot component

on_start_fishing

Called below above proc, in case the fishing source has anything to do that isn't denial

pre_challenge_started

Used to register signals or add traits and the such right after conditions have been cleared +and before the minigame starts.

readd_fish

Called when releasing a fish in a fishing spot with the TRAIT_CATCH_AND_RELEASE trait.

reason_we_cant_fish

Can we fish in this spot at all. Returns DENIAL_REASON or null if we're good to go

roll_reward

Returns a typepath or a special value which we use for spawning dispensing a reward later.

roll_reward_minigame

Comsig proc from the fishing minigame for 'roll_reward'

simple_dispense_reward

Simplified version of dispense_reward that doesn't need a fisherman.

spawn_reward

Spawns a reward from a atom path right where the fisherman is. Part of the dispense_reward() logic.

\ No newline at end of file diff --git a/datum/fish_source/portal.html b/datum/fish_source/portal.html new file mode 100644 index 0000000000000..913aae2c9d49d --- /dev/null +++ b/datum/fish_source/portal.html @@ -0,0 +1 @@ +/datum/fish_source/portal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

portal

Vars

radial_nameThe name of this option shown in the radial menu on the fishing portal generator

Var Details

radial_name

The name of this option shown in the radial menu on the fishing portal generator

\ No newline at end of file diff --git a/datum/fish_source/portal/random.html b/datum/fish_source/portal/random.html new file mode 100644 index 0000000000000..a8a41fab9178b --- /dev/null +++ b/datum/fish_source/portal/random.html @@ -0,0 +1,2 @@ +/datum/fish_source/portal/random - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

random

A special portal fish source which fish table is populated on init with the contents of all +portal fish sources, except for FISHING_DUD, and a couple more caveats.

Procs

calculate_difficultyDifficulty has to be calculated before the rest, because of how it influences jump chances
on_fishing_spot_initGenerate the fish table if we don't have one already.
pre_challenge_startedIn the spirit of randomness, we skew a few values here and there
spawn_rewardCherry on top, fish caught from the randomizer portal also have (almost completely) random traits

Proc Details

calculate_difficulty

Difficulty has to be calculated before the rest, because of how it influences jump chances

on_fishing_spot_init

Generate the fish table if we don't have one already.

pre_challenge_started

In the spirit of randomness, we skew a few values here and there

spawn_reward

Cherry on top, fish caught from the randomizer portal also have (almost completely) random traits

\ No newline at end of file diff --git a/datum/fish_trait.html b/datum/fish_trait.html new file mode 100644 index 0000000000000..bc42f52a70a28 --- /dev/null +++ b/datum/fish_trait.html @@ -0,0 +1,3 @@ +/datum/fish_trait - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fish_trait

Vars

added_difficultyDepending on the value, fish with trait will be reported as more or less difficult in the catalog.
catalog_descriptionDescription of the trait in the fishing catalog and scanner
diff_traits_inheritabilitySame as above, but for when only one has it.
fish_whitelistAn optional whitelist of fish that can get this trait
incompatible_traitsA list of traits fish cannot have in conjunction with this trait.
inheritabilityThe probability this trait can be inherited by offsprings when both mates have it
reagents_to_addReagents to add to the fish whenever the COMSIG_GENERATE_REAGENTS_TO_ADD signal is sent. Their values will be multiplied later.
spontaneous_manifest_typesA list of fish types and traits that they can spontaneously manifest with associated probabilities

Procs

add_reagentsSignal sent when we need to generate an abstract holder containing +reagents to be transfered, usually as a result of the fish being eaten by someone
add_venomProc that adds or changes the venomous when the fish size and/or weight are updated
apply_to_fishApplies some special qualities to the fish that has been spawned
apply_to_mobApplies some special qualities to basic mobs generated by fish (i.e. chasm chrab --> young lobstrosity --> lobstrosity).
catch_weight_modCatch weight table modifier from this mod, needs to return a list with two values
change_venom_on_deathProc that changes the venomous element based on if the fish is alive or dead (basically dead fish are weaker).
difficulty_modDifficulty modifier from this mod, needs to return a list with two values
eat_fishProc used by both the predator and necrophage traits.
minigame_modReturns special minigame rules and effects applied by this trait

Var Details

added_difficulty

Depending on the value, fish with trait will be reported as more or less difficult in the catalog.

catalog_description

Description of the trait in the fishing catalog and scanner

diff_traits_inheritability

Same as above, but for when only one has it.

fish_whitelist

An optional whitelist of fish that can get this trait

incompatible_traits

A list of traits fish cannot have in conjunction with this trait.

inheritability

The probability this trait can be inherited by offsprings when both mates have it

reagents_to_add

Reagents to add to the fish whenever the COMSIG_GENERATE_REAGENTS_TO_ADD signal is sent. Their values will be multiplied later.

spontaneous_manifest_types

A list of fish types and traits that they can spontaneously manifest with associated probabilities

Proc Details

add_reagents

Signal sent when we need to generate an abstract holder containing +reagents to be transfered, usually as a result of the fish being eaten by someone

add_venom

Proc that adds or changes the venomous when the fish size and/or weight are updated

apply_to_fish

Applies some special qualities to the fish that has been spawned

apply_to_mob

Applies some special qualities to basic mobs generated by fish (i.e. chasm chrab --> young lobstrosity --> lobstrosity).

catch_weight_mod

Catch weight table modifier from this mod, needs to return a list with two values

change_venom_on_death

Proc that changes the venomous element based on if the fish is alive or dead (basically dead fish are weaker).

difficulty_mod

Difficulty modifier from this mod, needs to return a list with two values

eat_fish

Proc used by both the predator and necrophage traits.

minigame_mod

Returns special minigame rules and effects applied by this trait

\ No newline at end of file diff --git a/datum/fish_trait/anxiety.html b/datum/fish_trait/anxiety.html new file mode 100644 index 0000000000000..bafd6075b350e --- /dev/null +++ b/datum/fish_trait/anxiety.html @@ -0,0 +1,2 @@ +/datum/fish_trait/anxiety - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

anxiety

Anxiety means the fish will die if in a location with more than 3 fish (including itself) +This is just barely enough to crossbreed out of anxiety, but it severely limits the potential of

Procs

on_fish_lifesignal sent when the anxiety fish is fed, killing it if sharing contents with too many fish.

Proc Details

on_fish_life

signal sent when the anxiety fish is fed, killing it if sharing contents with too many fish.

\ No newline at end of file diff --git a/datum/fishing_challenge.html b/datum/fishing_challenge.html new file mode 100644 index 0000000000000..f39cd2d296347 --- /dev/null +++ b/datum/fishing_challenge.html @@ -0,0 +1 @@ +/datum/fishing_challenge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fishing_challenge

Vars

active_effect_cdThe cooldown between switching active effects
active_effectsA list of possible active minigame effects. If not empty, one will be picked from time to time.
backgroundBackground icon state from fishing_hud.dmi
bait_bounce_multBy how much the bait recoils back when hitting the bounds of the slider while idle
bait_heightHow much space the bait takes on the minigame slider
bait_pixel_heightThe height in pixels of the bait bar
bait_positionThe position of the bait on the minigame slider
bait_velocityThe current speed the bait is moving at
completedIs it finished (either by win/lose or window closing)
completionThe completion score. If it reaches 100, it's a win. If it reaches 0, it's a loss.
completion_gainHow much completion is gained per second when the bait area is intersecting with the fish's
completion_lossHow much completion is lost per second when the bait area is not intersecting with the fish's
current_active_effectThe current active effect
difficultyMinigame difficulty
fish_heightHow much space the fish takes on the minigame slider
fish_iconFish icon state from fishing_hud.dmi
fish_pixel_heightThe height in pixels of the fish
fish_positionThe position of the fish on the minigame slider
fishing_hudThe background as shown in the minigame, and the holder of the other visual overlays
fishing_lineFishing line visual
floatfloat visual
gravity_velocityThe acceleration of the bait while not reeling
locationThe physical fishing spot our float is hovering
reeling_stateWhether the bait is idle or reeling up or down (left and right click)
reeling_velocityThe acceleration of the bait while reeling
reward_pathResult path
special_effectsRule modifiers (eg weighted bait)
start_timeWhen the ui minigame phase started
used_rodRod that is used for the challenge
userFishing mob

Procs

get_stack_traceThrows a stack with prefixed text.
interruptChallenge interrupted by something external
is_fish_on_baitReturns TRUE if the fish and the bait are intersecting
move_baitThe proc that moves the bait around, just like in the old TGUI, mostly.
on_user_logoutThe player is no longer around to play the minigame, so we interrupt it.
prepare_minigame_hudInitialize the minigame hud and register some signals to make it work.
processUpdate the state of the fish, the bait and the hud
remove_minigame_hudStop processing and remove references to the minigame hud
select_active_effectThe proc that handles fancy effects like flipping the hud or skewing movement
set_lure_timersSet the timers for lure that need to be spun at intervals.
start_minigame_phaseGet the difficulty and other variables, than start the minigame
start_reelingWhile the mouse button is held down, the bait will be reeling up (or down on r-click if the bidirectional rule is enabled)
stop_reelingReset the reeling state to idle once the mouse button is released
update_visualsupdate the vertical pixel position of both fish and bait, and the icon state of the completion bar

Var Details

active_effect_cd

The cooldown between switching active effects

active_effects

A list of possible active minigame effects. If not empty, one will be picked from time to time.

background

Background icon state from fishing_hud.dmi

bait_bounce_mult

By how much the bait recoils back when hitting the bounds of the slider while idle

bait_height

How much space the bait takes on the minigame slider

bait_pixel_height

The height in pixels of the bait bar

bait_position

The position of the bait on the minigame slider

bait_velocity

The current speed the bait is moving at

completed

Is it finished (either by win/lose or window closing)

completion

The completion score. If it reaches 100, it's a win. If it reaches 0, it's a loss.

completion_gain

How much completion is gained per second when the bait area is intersecting with the fish's

completion_loss

How much completion is lost per second when the bait area is not intersecting with the fish's

current_active_effect

The current active effect

difficulty

Minigame difficulty

fish_height

How much space the fish takes on the minigame slider

fish_icon

Fish icon state from fishing_hud.dmi

fish_pixel_height

The height in pixels of the fish

fish_position

The position of the fish on the minigame slider

fishing_hud

The background as shown in the minigame, and the holder of the other visual overlays

fishing_line

Fishing line visual

float

float visual

gravity_velocity

The acceleration of the bait while not reeling

location

The physical fishing spot our float is hovering

reeling_state

Whether the bait is idle or reeling up or down (left and right click)

reeling_velocity

The acceleration of the bait while reeling

reward_path

Result path

special_effects

Rule modifiers (eg weighted bait)

start_time

When the ui minigame phase started

used_rod

Rod that is used for the challenge

user

Fishing mob

Proc Details

get_stack_trace

Throws a stack with prefixed text.

interrupt

Challenge interrupted by something external

is_fish_on_bait

Returns TRUE if the fish and the bait are intersecting

move_bait

The proc that moves the bait around, just like in the old TGUI, mostly.

on_user_logout

The player is no longer around to play the minigame, so we interrupt it.

prepare_minigame_hud

Initialize the minigame hud and register some signals to make it work.

process

Update the state of the fish, the bait and the hud

remove_minigame_hud

Stop processing and remove references to the minigame hud

select_active_effect

The proc that handles fancy effects like flipping the hud or skewing movement

set_lure_timers

Set the timers for lure that need to be spun at intervals.

start_minigame_phase

Get the difficulty and other variables, than start the minigame

start_reeling

While the mouse button is held down, the bait will be reeling up (or down on r-click if the bidirectional rule is enabled)

stop_reeling

Reset the reeling state to idle once the mouse button is released

update_visuals

update the vertical pixel position of both fish and bait, and the icon state of the completion bar

\ No newline at end of file diff --git a/datum/fluid_group.html b/datum/fluid_group.html new file mode 100644 index 0000000000000..a2038049457d1 --- /dev/null +++ b/datum/fluid_group.html @@ -0,0 +1,26 @@ +/datum/fluid_group - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fluid_group

SMOKE SYSTEMS +A group of fluid objects.

Vars

nodesThe set of fluid objects currently in this group.
target_sizeThe number of fluid object that this group wants to have contained.
total_sizeThe total number of fluid objects that have ever been in this group.

Procs

add_nodeAdds a fluid node to this fluid group.
remove_nodeRemoves a fluid node from this fluid group.

Var Details

nodes

The set of fluid objects currently in this group.

target_size

The number of fluid object that this group wants to have contained.

total_size

The total number of fluid objects that have ever been in this group.

Proc Details

add_node

Adds a fluid node to this fluid group.

+

Is a noop if the node is already in the group. +Removes the node from any other fluid groups it is in. +Syncs the group of the node with the group it is being added to (this one). +Increments the total size of the fluid group.

+

Arguments:

+ +

Returns:

+

remove_node

Removes a fluid node from this fluid group.

+

Is a noop if the node is not in this group. +Nulls the nodes fluid group ref to sync it with its new state. +DOES NOT decrement the total size of the fluid group.

+

Arguments:

+ +

Returns:

+
\ No newline at end of file diff --git a/datum/font.html b/datum/font.html new file mode 100644 index 0000000000000..55f0f8274e14c --- /dev/null +++ b/datum/font.html @@ -0,0 +1,9 @@ +/datum/font - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

font

A font datum, it exists to define a custom font to use in a span style later.

Vars

ascentdistance above baseline (including whitespace)
average_widthaverage character width
default_characterdefault character (for undefined chars)
descentdistance below baseline
endlast character in metrics
ex_leadingexternal leading vertical space, just plain blank
font_familyThe font file we link to.
heighttotal height of a line
in_leadinginternal leading vertical space, for accent marks
max_widthmaximum character width
metricsFont features and metrics +Generated by Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus) +Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe +list of font size/spacing metrics
nameFont name, just so people know what to put in their span style.
overhangextra width, such as from italics, for a line
startfirst character in metrics

Procs

get_metricsGet font metrics +From Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)

Var Details

ascent

distance above baseline (including whitespace)

average_width

average character width

default_character

default character (for undefined chars)

descent

distance below baseline

end

last character in metrics

ex_leading

external leading vertical space, just plain blank

font_family

The font file we link to.

height

total height of a line

in_leading

internal leading vertical space, for accent marks

max_width

maximum character width

metrics

Font features and metrics +Generated by Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus) +Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe +list of font size/spacing metrics

name

Font name, just so people know what to put in their span style.

overhang

extra width, such as from italics, for a line

start

first character in metrics

Proc Details

get_metrics

Get font metrics +From Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)

\ No newline at end of file diff --git a/datum/food_prefs_menu.html b/datum/food_prefs_menu.html new file mode 100644 index 0000000000000..f9eb692310b79 --- /dev/null +++ b/datum/food_prefs_menu.html @@ -0,0 +1 @@ +/datum/food_prefs_menu - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

food_prefs_menu

Procs

is_food_invalidChecks the provided preferences datum to make sure the food pref values are valid. Does not check if the food preferences value is null.
ui_interactFood prefs menu datum. Global datum for performance and memory reasons.

Proc Details

is_food_invalid

Checks the provided preferences datum to make sure the food pref values are valid. Does not check if the food preferences value is null.

ui_interact

Food prefs menu datum. Global datum for performance and memory reasons.

\ No newline at end of file diff --git a/datum/food_processor_process.html b/datum/food_processor_process.html new file mode 100644 index 0000000000000..9be851775c293 --- /dev/null +++ b/datum/food_processor_process.html @@ -0,0 +1 @@ +/datum/food_processor_process - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

food_processor_process

Vars

blacklistSubtypes of what the recipe takes that it can't actually take.
food_multiplierMultiplied additional food made when processed
inputWhat this recipe takes
outputWhat this recipe creates
preserve_materialsWhether to copy the materials from the input to the output
required_machineThe machine required to do this recipe
timeThe amount of time this recipe takes.

Var Details

blacklist

Subtypes of what the recipe takes that it can't actually take.

food_multiplier

Multiplied additional food made when processed

input

What this recipe takes

output

What this recipe creates

preserve_materials

Whether to copy the materials from the input to the output

required_machine

The machine required to do this recipe

time

The amount of time this recipe takes.

\ No newline at end of file diff --git a/datum/foreign_calendar.html b/datum/foreign_calendar.html new file mode 100644 index 0000000000000..0eeba64d2a453 --- /dev/null +++ b/datum/foreign_calendar.html @@ -0,0 +1 @@ +/datum/foreign_calendar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

foreign_calendar

Procs

gregorian_to_jdConverts Gregorian date to Julian Day
leap_gregorianReturns whether a year is a leap year in the Gregorian calendar
realtime_to_jdConverts BYOND realtime to Julian Day

Proc Details

gregorian_to_jd

Converts Gregorian date to Julian Day

leap_gregorian

Returns whether a year is a leap year in the Gregorian calendar

realtime_to_jd

Converts BYOND realtime to Julian Day

\ No newline at end of file diff --git a/datum/forensics.html b/datum/forensics.html new file mode 100644 index 0000000000000..7a5f71bbe07b2 --- /dev/null +++ b/datum/forensics.html @@ -0,0 +1,24 @@ +/datum/forensics - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

forensics

Forensics datum

+

Placed onto atoms, and contains:

+

Vars

blood_DNAList of blood dna on this atom
fibersList of clothing fibers on this atom
fingerprintsList of fingerprints on this atom
hiddenprintsList of hiddenprints on this atom
parentRef to the parent owning this datum

Procs

add_blood_DNAAdds the given list into blood_DNA
add_fiber_listAdds the given list into fibers
add_fibersAdds a single fiber
add_fingerprintAdds a single fingerprint
add_fingerprint_listAdds the given list into fingerprints
add_hiddenprintAdds a single hiddenprint
add_hiddenprint_listAdds the given list into hiddenprints
check_bloodUpdates the blood displayed on parent
clean_actHandles cleaning up the various forensic types
inherit_newMerges the given lists into the preexisting values
wipe_blood_DNAEmpties the blood_DNA list
wipe_fibersEmpties the fibers list
wipe_fingerprintsEmpties the fingerprints list

Var Details

blood_DNA

List of blood dna on this atom

+

Formatting:

+

fibers

List of clothing fibers on this atom

+

Formatting:

+

fingerprints

List of fingerprints on this atom

+

Formatting:

+

hiddenprints

List of hiddenprints on this atom

+

Formatting:

+

parent

Ref to the parent owning this datum

Proc Details

add_blood_DNA

Adds the given list into blood_DNA

add_fiber_list

Adds the given list into fibers

add_fibers

Adds a single fiber

add_fingerprint

Adds a single fingerprint

add_fingerprint_list

Adds the given list into fingerprints

add_hiddenprint

Adds a single hiddenprint

add_hiddenprint_list

Adds the given list into hiddenprints

check_blood

Updates the blood displayed on parent

clean_act

Handles cleaning up the various forensic types

inherit_new

Merges the given lists into the preexisting values

wipe_blood_DNA

Empties the blood_DNA list

wipe_fibers

Empties the fibers list

wipe_fingerprints

Empties the fingerprints list

\ No newline at end of file diff --git a/datum/gas.html b/datum/gas.html new file mode 100644 index 0000000000000..8750d1e375350 --- /dev/null +++ b/datum/gas.html @@ -0,0 +1 @@ +/datum/gas - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gas

Vars

base_valueHow does a single mole of this gas sell for? Formula to calculate maximum value is in code\modules\cargo\exports\large_objects.dm. Doesn't matter for roundstart gasses.
dangerouscurrently used by canisters
fusion_powerHow much the gas accelerates a fusion reaction
gas_overlayicon_state in icons/effects/atmospherics.dmi
primary_colorRGB code for use when a generic color representing the gas is needed. Colors taken from contants.ts
purchaseableCan gas of this type can purchased through cargo?
rarityrelative rarity compared to other gases, used when setting up the reactions list.

Var Details

base_value

How does a single mole of this gas sell for? Formula to calculate maximum value is in code\modules\cargo\exports\large_objects.dm. Doesn't matter for roundstart gasses.

dangerous

currently used by canisters

fusion_power

How much the gas accelerates a fusion reaction

gas_overlay

icon_state in icons/effects/atmospherics.dmi

primary_color

RGB code for use when a generic color representing the gas is needed. Colors taken from contants.ts

purchaseable

Can gas of this type can purchased through cargo?

rarity

relative rarity compared to other gases, used when setting up the reactions list.

\ No newline at end of file diff --git a/datum/gas_machine_connector.html b/datum/gas_machine_connector.html new file mode 100644 index 0000000000000..a33af1a6bba30 --- /dev/null +++ b/datum/gas_machine_connector.html @@ -0,0 +1 @@ +/datum/gas_machine_connector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

gas_machine_connector

To be used when there is the need of an atmos connection without repathing everything (eg: cryo.dm)

Procs

deconstruct_connected_machineCalled when the machine has been deconstructed
destroy_connected_machineCalled when the machine has been destroyed
disconnect_connectorHandles the disconnection from the pipe network
moved_connected_machineCalled when the machine has been moved, reconnect to the pipe network
pre_move_connected_machineCalled before the machine moves, disconnect from the pipe network
reconnect_connectorHandles the reconnection to the pipe network
register_with_machineRegister various signals that are required for the proper work of the connector
relocate_airsHandles air relocation to the pipe network/environment
unregister_from_machineUnregister the signals previously registered
wrenched_connected_machineCalled when the machine has been rotated, resets the connection to the pipe network with the new direction

Proc Details

deconstruct_connected_machine

Called when the machine has been deconstructed

destroy_connected_machine

Called when the machine has been destroyed

disconnect_connector

Handles the disconnection from the pipe network

moved_connected_machine

Called when the machine has been moved, reconnect to the pipe network

pre_move_connected_machine

Called before the machine moves, disconnect from the pipe network

reconnect_connector

Handles the reconnection to the pipe network

register_with_machine

Register various signals that are required for the proper work of the connector

relocate_airs

Handles air relocation to the pipe network/environment

unregister_from_machine

Unregister the signals previously registered

wrenched_connected_machine

Called when the machine has been rotated, resets the connection to the pipe network with the new direction

\ No newline at end of file diff --git a/datum/gas_mixture.html b/datum/gas_mixture.html new file mode 100644 index 0000000000000..1cf5920f6d927 --- /dev/null +++ b/datum/gas_mixture.html @@ -0,0 +1,88 @@ +/datum/gas_mixture - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gas_mixture

Vars

gc_shareWhether to call garbage_collect() on the sharer during shares, used for immutable mixtures
last_shareThe last tick this gas mixture shared on. A counter that turfs use to manage activity
pipeline_cycleWhen this gas mixture was last touched by pipeline processing +I am sorry
reaction_resultsTells us what reactions have happened in our gasmix. Assoc list of reaction - moles reacted pair.
temperatureThe temperature of the gas mix in kelvin. Should never be lower then TCMB
temperature_archivedUsed, like all archived variables, to ensure turf sharing is consistent inside a tick, no matter +The order of operations
volumeVolume in liters (duh)

Procs

add_gasadd_gas(gas_id) - similar to assert_gas(), but does not check for an existing gas list for this id. This can clobber existing gases. +Used instead of assert_gas() when you know the gas does not exist. Faster than assert_gas().
add_gasesadd_gases(args) - shorthand for calling add_gas() once for each gas_type.
archiveUpdate archived versions of variables. Returns: 1 in all cases
assert_gasassert_gas(gas_id) - used to guarantee that the gas list for this id exists in gas_mixture.gases. +Must be used before adding to a gas. May be used before reading from a gas.
assert_gasesassert_gases(args) - shorthand for calling ASSERT_GAS() once for each gas type.
compareCompares sample to self to see if within acceptable ranges that group processing may be enabled +Takes the gas index to read from as a second arg (either MOLES or ARCHIVE) +Returns: a string indicating what check failed, or "" if check passes
copyCreates new, identical gas mixture +Returns: duplicate gas mixture
copy_fromCopies variables from sample +Returns: TRUE if we are mutable, FALSE otherwise
copy_from_ratioCopies variables from sample, moles multiplicated by partial +Returns: TRUE if we are mutable, FALSE otherwise
equalizeDistributes the contents of two mixes equally between themselves
garbage_collectgarbage_collect() - removes any gas list which is empty. +If called with a list as an argument, only removes gas lists with IDs from that list. +Must be used after subtracting from a gas. Must be used after assert_gas() +if assert_gas() was called only to read from the gas. +By removing empty gases, processing speed is increased.
gas_pressure_approximateApproximation of the quadratic equation using Newton-Raphson's Method. +We use the slope of an approximate value to get closer to the root of a given equation.
gas_pressure_calculate
gas_pressure_minimum_transferCounts how much pressure will there be if we impart MOLAR_ACCURACY amounts of our gas to the output gasmix. +We do all of this without actually transferring it so don't worry about it changing the gasmix. +Returns: Resulting pressure (number). +Args:
gas_pressure_quadraticActually tries to solve the quadratic equation. +Do mind that the numbers can get very big and might hit BYOND's single point float limit.
get_breath_partial_pressureReturns the partial pressure of the gas in the breath based on BREATH_VOLUME +eg: +Plas_PP = get_breath_partial_pressure(gas_mixture.gases/datum/gas/plasma) +O2_PP = get_breath_partial_pressure(gas_mixture.gases/datum/gas/oxygen) +get_breath_partial_pressure(gas_mole_count) --> PV = nRT, P = nRT/V
has_gasChecks to see if gas amount exists in mixture. +Do NOT use this in code where performance matters! +It's better to batch calls to garbage_collect(), especially in places where you're checking many gastypes
heat_capacityjoules per kelvin
mergeMerges all air from giver into self. Deletes giver. Returns: 1 if we are mutable, 0 otherwise
pump_gas_toPumps gas from src to output_air. Amount depends on target_pressure
reactPerforms various reactions such as combustion and fabrication +Returns: 1 if any reaction took place; 0 otherwise
release_gas_toReleases gas from src to output air. This means that it can not transfer air to gas mixture with higher pressure.
removeProportionally removes amount of gas from the gas_mixture. +Returns: gas_mixture with the gases removed
remove_ratioProportionally removes amount of gas from the gas_mixture. +Returns: gas_mixture with the gases removed
remove_specificRemoves an amount of a specific gas from the gas_mixture. +Returns: gas_mixture with the gas removed
return_pressureCalculate pressure in kilopascals
return_temperatureCalculate temperature in kelvins
return_visualsGets the gas visuals for everything in this mixture
return_volumeCalculate volume in liters
sharePerforms air sharing calculations between two gas_mixtures +share() is communitive, which means A.share(B) needs to be the same as B.share(A) +If we don't retain this, we will get negative moles. Don't do it +Returns: amount of gas exchanged (+ if sharer received)
temperature_sharePerforms temperature sharing calculations (via conduction) between two gas_mixtures assuming only 1 boundary length +Returns: new temperature of the sharer
thermal_energyCalculate thermal energy in joules
total_molesCalculate moles

Var Details

gc_share

Whether to call garbage_collect() on the sharer during shares, used for immutable mixtures

last_share

The last tick this gas mixture shared on. A counter that turfs use to manage activity

pipeline_cycle

When this gas mixture was last touched by pipeline processing +I am sorry

reaction_results

Tells us what reactions have happened in our gasmix. Assoc list of reaction - moles reacted pair.

temperature

The temperature of the gas mix in kelvin. Should never be lower then TCMB

temperature_archived

Used, like all archived variables, to ensure turf sharing is consistent inside a tick, no matter +The order of operations

volume

Volume in liters (duh)

Proc Details

add_gas

add_gas(gas_id) - similar to assert_gas(), but does not check for an existing gas list for this id. This can clobber existing gases. +Used instead of assert_gas() when you know the gas does not exist. Faster than assert_gas().

add_gases

add_gases(args) - shorthand for calling add_gas() once for each gas_type.

archive

Update archived versions of variables. Returns: 1 in all cases

assert_gas

assert_gas(gas_id) - used to guarantee that the gas list for this id exists in gas_mixture.gases. +Must be used before adding to a gas. May be used before reading from a gas.

assert_gases

assert_gases(args) - shorthand for calling ASSERT_GAS() once for each gas type.

compare

Compares sample to self to see if within acceptable ranges that group processing may be enabled +Takes the gas index to read from as a second arg (either MOLES or ARCHIVE) +Returns: a string indicating what check failed, or "" if check passes

copy

Creates new, identical gas mixture +Returns: duplicate gas mixture

copy_from

Copies variables from sample +Returns: TRUE if we are mutable, FALSE otherwise

copy_from_ratio

Copies variables from sample, moles multiplicated by partial +Returns: TRUE if we are mutable, FALSE otherwise

equalize

Distributes the contents of two mixes equally between themselves

garbage_collect

garbage_collect() - removes any gas list which is empty. +If called with a list as an argument, only removes gas lists with IDs from that list. +Must be used after subtracting from a gas. Must be used after assert_gas() +if assert_gas() was called only to read from the gas. +By removing empty gases, processing speed is increased.

gas_pressure_approximate

Approximation of the quadratic equation using Newton-Raphson's Method. +We use the slope of an approximate value to get closer to the root of a given equation.

gas_pressure_calculate

gas_pressure_minimum_transfer

Counts how much pressure will there be if we impart MOLAR_ACCURACY amounts of our gas to the output gasmix. +We do all of this without actually transferring it so don't worry about it changing the gasmix. +Returns: Resulting pressure (number). +Args:

+

gas_pressure_quadratic

Actually tries to solve the quadratic equation. +Do mind that the numbers can get very big and might hit BYOND's single point float limit.

get_breath_partial_pressure

Returns the partial pressure of the gas in the breath based on BREATH_VOLUME +eg: +Plas_PP = get_breath_partial_pressure(gas_mixture.gases/datum/gas/plasma) +O2_PP = get_breath_partial_pressure(gas_mixture.gases/datum/gas/oxygen) +get_breath_partial_pressure(gas_mole_count) --> PV = nRT, P = nRT/V

+

10/205 = 2.5 +10 = 2.5/520

has_gas

Checks to see if gas amount exists in mixture. +Do NOT use this in code where performance matters! +It's better to batch calls to garbage_collect(), especially in places where you're checking many gastypes

heat_capacity

joules per kelvin

merge

Merges all air from giver into self. Deletes giver. Returns: 1 if we are mutable, 0 otherwise

pump_gas_to

Pumps gas from src to output_air. Amount depends on target_pressure

react

Performs various reactions such as combustion and fabrication +Returns: 1 if any reaction took place; 0 otherwise

release_gas_to

Releases gas from src to output air. This means that it can not transfer air to gas mixture with higher pressure.

remove

Proportionally removes amount of gas from the gas_mixture. +Returns: gas_mixture with the gases removed

remove_ratio

Proportionally removes amount of gas from the gas_mixture. +Returns: gas_mixture with the gases removed

remove_specific

Removes an amount of a specific gas from the gas_mixture. +Returns: gas_mixture with the gas removed

return_pressure

Calculate pressure in kilopascals

return_temperature

Calculate temperature in kelvins

return_visuals

Gets the gas visuals for everything in this mixture

return_volume

Calculate volume in liters

share

Performs air sharing calculations between two gas_mixtures +share() is communitive, which means A.share(B) needs to be the same as B.share(A) +If we don't retain this, we will get negative moles. Don't do it +Returns: amount of gas exchanged (+ if sharer received)

temperature_share

Performs temperature sharing calculations (via conduction) between two gas_mixtures assuming only 1 boundary length +Returns: new temperature of the sharer

thermal_energy

Calculate thermal energy in joules

total_moles

Calculate moles

\ No newline at end of file diff --git a/datum/gas_mixture/turf.html b/datum/gas_mixture/turf.html new file mode 100644 index 0000000000000..f05a0ddf988c6 --- /dev/null +++ b/datum/gas_mixture/turf.html @@ -0,0 +1 @@ +/datum/gas_mixture/turf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

turf

Procs

heat_capacitySame as above except vacuums return HEAT_CAPACITY_VACUUM

Proc Details

heat_capacity

Same as above except vacuums return HEAT_CAPACITY_VACUUM

\ No newline at end of file diff --git a/datum/gas_reaction.html b/datum/gas_reaction.html new file mode 100644 index 0000000000000..e8e8e87eafa8b --- /dev/null +++ b/datum/gas_reaction.html @@ -0,0 +1,31 @@ +/datum/gas_reaction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gas_reaction

Vars

descA short string describing this reaction.
expands_hotspotWhether the presence of our reaction should make fires bigger or not.
factor
priority_groupThe priority group this reaction is a part of. You can think of these as processing in batches, put your reaction into the one that's most fitting
requirementsRegarding the requirements list: the minimum or maximum requirements must be non-zero. +When in doubt, use MINIMUM_MOLE_COUNT. +Another thing to note is that reactions will not fire if we have any requirements outside of gas id path or MIN_TEMP or MAX_TEMP. +More complex implementations will require modifications to gas_mixture.react()

Var Details

desc

A short string describing this reaction.

expands_hotspot

Whether the presence of our reaction should make fires bigger or not.

factor

priority_group

The priority group this reaction is a part of. You can think of these as processing in batches, put your reaction into the one that's most fitting

requirements

Regarding the requirements list: the minimum or maximum requirements must be non-zero. +When in doubt, use MINIMUM_MOLE_COUNT. +Another thing to note is that reactions will not fire if we have any requirements outside of gas id path or MIN_TEMP or MAX_TEMP. +More complex implementations will require modifications to gas_mixture.react()

\ No newline at end of file diff --git a/datum/gas_reaction/bzformation.html b/datum/gas_reaction/bzformation.html new file mode 100644 index 0000000000000..1c9d028a6cf2c --- /dev/null +++ b/datum/gas_reaction/bzformation.html @@ -0,0 +1,3 @@ +/datum/gas_reaction/bzformation - /tg/ Station 13
/tg/ Station 13 - Modules - Types

bzformation

BZ Formation

+

Formation of BZ by combining plasma and nitrous oxide at low pressures. +Exothermic.

\ No newline at end of file diff --git a/datum/gas_reaction/freonfire.html b/datum/gas_reaction/freonfire.html new file mode 100644 index 0000000000000..32cb210418409 --- /dev/null +++ b/datum/gas_reaction/freonfire.html @@ -0,0 +1,3 @@ +/datum/gas_reaction/freonfire - /tg/ Station 13
/tg/ Station 13 - Modules - Types

freonfire

Freon combustion:

+

Combustion of oxygen and freon. +Endothermic.

\ No newline at end of file diff --git a/datum/gas_reaction/freonformation.html b/datum/gas_reaction/freonformation.html new file mode 100644 index 0000000000000..e8c29b616e9ed --- /dev/null +++ b/datum/gas_reaction/freonformation.html @@ -0,0 +1,3 @@ +/datum/gas_reaction/freonformation - /tg/ Station 13
/tg/ Station 13 - Modules - Types

freonformation

Freon formation:

+

The formation of freon. +Endothermic.

\ No newline at end of file diff --git a/datum/gas_reaction/h2fire.html b/datum/gas_reaction/h2fire.html new file mode 100644 index 0000000000000..91991d6656aca --- /dev/null +++ b/datum/gas_reaction/h2fire.html @@ -0,0 +1,4 @@ +/datum/gas_reaction/h2fire - /tg/ Station 13
/tg/ Station 13 - Modules - Types

h2fire

Hydrogen combustion:

+

Combustion of oxygen and hydrogen. +Highly exothermic. +Creates hotspots.

\ No newline at end of file diff --git a/datum/gas_reaction/halon_o2removal.html b/datum/gas_reaction/halon_o2removal.html new file mode 100644 index 0000000000000..a27ae3ddfbc03 --- /dev/null +++ b/datum/gas_reaction/halon_o2removal.html @@ -0,0 +1,4 @@ +/datum/gas_reaction/halon_o2removal - /tg/ Station 13
/tg/ Station 13 - Modules - Types

halon_o2removal

Halon Combustion:

+

Consumes a large amount of oxygen relative to the amount of halon consumed. +Produces carbon dioxide. +Endothermic.

\ No newline at end of file diff --git a/datum/gas_reaction/healium_formation.html b/datum/gas_reaction/healium_formation.html new file mode 100644 index 0000000000000..c9636875cb409 --- /dev/null +++ b/datum/gas_reaction/healium_formation.html @@ -0,0 +1,2 @@ +/datum/gas_reaction/healium_formation - /tg/ Station 13
/tg/ Station 13 - Modules - Types

healium_formation

Healium Formation:

+

Exothermic

\ No newline at end of file diff --git a/datum/gas_reaction/miaster.html b/datum/gas_reaction/miaster.html new file mode 100644 index 0000000000000..7e73165f84e9f --- /dev/null +++ b/datum/gas_reaction/miaster.html @@ -0,0 +1,2 @@ +/datum/gas_reaction/miaster - /tg/ Station 13
/tg/ Station 13 - Modules - Types

miaster

Dry Heat Sterilization:

+

Clears out pathogens in the air.

\ No newline at end of file diff --git a/datum/gas_reaction/nitrium_decomposition.html b/datum/gas_reaction/nitrium_decomposition.html new file mode 100644 index 0000000000000..21911e1021cd1 --- /dev/null +++ b/datum/gas_reaction/nitrium_decomposition.html @@ -0,0 +1,4 @@ +/datum/gas_reaction/nitrium_decomposition - /tg/ Station 13
/tg/ Station 13 - Modules - Types

nitrium_decomposition

Nitrium Decomposition:

+

The decomposition of nitrium. +Exothermic. +Requires oxygen as catalyst.

\ No newline at end of file diff --git a/datum/gas_reaction/nitrium_formation.html b/datum/gas_reaction/nitrium_formation.html new file mode 100644 index 0000000000000..1192a9776c384 --- /dev/null +++ b/datum/gas_reaction/nitrium_formation.html @@ -0,0 +1,4 @@ +/datum/gas_reaction/nitrium_formation - /tg/ Station 13
/tg/ Station 13 - Modules - Types

nitrium_formation

Nitrium Formation:

+

The formation of nitrium. +Endothermic. +Requires BZ.

\ No newline at end of file diff --git a/datum/gas_reaction/nitrous_decomp.html b/datum/gas_reaction/nitrous_decomp.html new file mode 100644 index 0000000000000..15c4935c2f4ad --- /dev/null +++ b/datum/gas_reaction/nitrous_decomp.html @@ -0,0 +1,3 @@ +/datum/gas_reaction/nitrous_decomp - /tg/ Station 13
/tg/ Station 13 - Modules - Types

nitrous_decomp

Nitrous Oxide Decomposition

+

Decomposition of N2O. +Exothermic.

\ No newline at end of file diff --git a/datum/gas_reaction/nitrousformation.html b/datum/gas_reaction/nitrousformation.html new file mode 100644 index 0000000000000..82e14e66af6fe --- /dev/null +++ b/datum/gas_reaction/nitrousformation.html @@ -0,0 +1,4 @@ +/datum/gas_reaction/nitrousformation - /tg/ Station 13
/tg/ Station 13 - Modules - Types

nitrousformation

Nitrous oxide Formation:

+

Formation of N2O. +Endothermic. +Requires BZ as a catalyst.

\ No newline at end of file diff --git a/datum/gas_reaction/nobliumformation.html b/datum/gas_reaction/nobliumformation.html new file mode 100644 index 0000000000000..0c7ef4f10a9a4 --- /dev/null +++ b/datum/gas_reaction/nobliumformation.html @@ -0,0 +1,5 @@ +/datum/gas_reaction/nobliumformation - /tg/ Station 13
/tg/ Station 13 - Modules - Types

nobliumformation

Hyper-Noblium Formation:

+

Extremely exothermic. +Requires very low temperatures. +Due to its high mass, hyper-noblium uses large amounts of nitrogen and tritium. +BZ can be used as a catalyst to make it less exothermic.

\ No newline at end of file diff --git a/datum/gas_reaction/plasmafire.html b/datum/gas_reaction/plasmafire.html new file mode 100644 index 0000000000000..9c03fb39e98bb --- /dev/null +++ b/datum/gas_reaction/plasmafire.html @@ -0,0 +1,4 @@ +/datum/gas_reaction/plasmafire - /tg/ Station 13
/tg/ Station 13 - Modules - Types

plasmafire

Plasma combustion:

+

Combustion of oxygen and plasma (mostly treated as hydrocarbons). +The reaction rate is dependent on the temperature of the gasmix. +May produce either tritium or carbon dioxide and water vapor depending on the fuel/oxydizer ratio of the gasmix.

\ No newline at end of file diff --git a/datum/gas_reaction/pluox_formation.html b/datum/gas_reaction/pluox_formation.html new file mode 100644 index 0000000000000..c900335fb5651 --- /dev/null +++ b/datum/gas_reaction/pluox_formation.html @@ -0,0 +1,3 @@ +/datum/gas_reaction/pluox_formation - /tg/ Station 13
/tg/ Station 13 - Modules - Types

pluox_formation

Pluoxium Formation:

+

Consumes a tiny amount of tritium to convert CO2 and oxygen to pluoxium. +Exothermic.

\ No newline at end of file diff --git a/datum/gas_reaction/proto_nitrate_bz_response.html b/datum/gas_reaction/proto_nitrate_bz_response.html new file mode 100644 index 0000000000000..dd019c180037b --- /dev/null +++ b/datum/gas_reaction/proto_nitrate_bz_response.html @@ -0,0 +1,2 @@ +/datum/gas_reaction/proto_nitrate_bz_response - /tg/ Station 13
/tg/ Station 13 - Modules - Types

proto_nitrate_bz_response

Proto-Nitrate BZase Action

+

Breaks BZ down into nitrogen, helium, and plasma in the presence of proto-nitrate.

\ No newline at end of file diff --git a/datum/gas_reaction/proto_nitrate_formation.html b/datum/gas_reaction/proto_nitrate_formation.html new file mode 100644 index 0000000000000..940f3d3314902 --- /dev/null +++ b/datum/gas_reaction/proto_nitrate_formation.html @@ -0,0 +1,2 @@ +/datum/gas_reaction/proto_nitrate_formation - /tg/ Station 13
/tg/ Station 13 - Modules - Types

proto_nitrate_formation

Proto-Nitrate formation:

+

Exothermic.

\ No newline at end of file diff --git a/datum/gas_reaction/proto_nitrate_hydrogen_response.html b/datum/gas_reaction/proto_nitrate_hydrogen_response.html new file mode 100644 index 0000000000000..5ef6ca552ceaf --- /dev/null +++ b/datum/gas_reaction/proto_nitrate_hydrogen_response.html @@ -0,0 +1,3 @@ +/datum/gas_reaction/proto_nitrate_hydrogen_response - /tg/ Station 13
/tg/ Station 13 - Modules - Types

proto_nitrate_hydrogen_response

Proto-Nitrate Hydrogen Conversion

+

Converts hydrogen into proto-nitrate. +Endothermic.

\ No newline at end of file diff --git a/datum/gas_reaction/proto_nitrate_tritium_response.html b/datum/gas_reaction/proto_nitrate_tritium_response.html new file mode 100644 index 0000000000000..f5d53ed3d988f --- /dev/null +++ b/datum/gas_reaction/proto_nitrate_tritium_response.html @@ -0,0 +1,4 @@ +/datum/gas_reaction/proto_nitrate_tritium_response - /tg/ Station 13
/tg/ Station 13 - Modules - Types

proto_nitrate_tritium_response

Proto-Nitrate Tritium De-irradiation

+

Converts tritium to hydrogen. +Releases radiation. +Exothermic.

\ No newline at end of file diff --git a/datum/gas_reaction/tritfire.html b/datum/gas_reaction/tritfire.html new file mode 100644 index 0000000000000..cf723ffd07fed --- /dev/null +++ b/datum/gas_reaction/tritfire.html @@ -0,0 +1,5 @@ +/datum/gas_reaction/tritfire - /tg/ Station 13
/tg/ Station 13 - Modules - Types

tritfire

Tritium combustion:

+

Combustion of oxygen and tritium (treated as hydrogen). +Highly exothermic. +Creates hotspots. +Creates radiation.

\ No newline at end of file diff --git a/datum/gas_reaction/water_vapor.html b/datum/gas_reaction/water_vapor.html new file mode 100644 index 0000000000000..4271b468dad9d --- /dev/null +++ b/datum/gas_reaction/water_vapor.html @@ -0,0 +1,3 @@ +/datum/gas_reaction/water_vapor - /tg/ Station 13
/tg/ Station 13 - Modules - Types

water_vapor

Steam Condensation/Deposition:

+

Makes turfs slippery. +Can frost things if the gas is cold enough.

\ No newline at end of file diff --git a/datum/gas_reaction/zauker_decomp.html b/datum/gas_reaction/zauker_decomp.html new file mode 100644 index 0000000000000..a5e5061b7a0c5 --- /dev/null +++ b/datum/gas_reaction/zauker_decomp.html @@ -0,0 +1,3 @@ +/datum/gas_reaction/zauker_decomp - /tg/ Station 13
/tg/ Station 13 - Modules - Types

zauker_decomp

Zauker Decomposition:

+

Occurs in the presence of nitrogen to prevent zauker floods. +Exothermic.

\ No newline at end of file diff --git a/datum/gas_reaction/zauker_formation.html b/datum/gas_reaction/zauker_formation.html new file mode 100644 index 0000000000000..c74fc1ea5a637 --- /dev/null +++ b/datum/gas_reaction/zauker_formation.html @@ -0,0 +1,3 @@ +/datum/gas_reaction/zauker_formation - /tg/ Station 13
/tg/ Station 13 - Modules - Types

zauker_formation

Zauker Formation:

+

Exothermic. +Requires Hypernoblium.

\ No newline at end of file diff --git a/datum/gas_recipe.html b/datum/gas_recipe.html new file mode 100644 index 0000000000000..769103c919c2f --- /dev/null +++ b/datum/gas_recipe.html @@ -0,0 +1,3 @@ +/datum/gas_recipe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gas_recipe

Vars

energy_releaseAmount of thermal energy released/consumed by the reaction. +Positive numbers make the reaction release energy (exothermic) while negative numbers make the reaction consume energy (endothermic).
idId of the recipe for easy identification in the code
machine_typeWhat machine the recipe is for
max_tempMaximum temperature for the recipe
min_tempMinimum temperature for the recipe
nameDisplayed name of the recipe
productsProducts made from the recipe
requirementsGas required for the recipe to work

Var Details

energy_release

Amount of thermal energy released/consumed by the reaction. +Positive numbers make the reaction release energy (exothermic) while negative numbers make the reaction consume energy (endothermic).

id

Id of the recipe for easy identification in the code

machine_type

What machine the recipe is for

max_temp

Maximum temperature for the recipe

min_temp

Minimum temperature for the recipe

name

Displayed name of the recipe

products

Products made from the recipe

requirements

Gas required for the recipe to work

\ No newline at end of file diff --git a/datum/gateway_destination.html b/datum/gateway_destination.html new file mode 100644 index 0000000000000..90edbfecccedd --- /dev/null +++ b/datum/gateway_destination.html @@ -0,0 +1,6 @@ +/datum/gateway_destination - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gateway_destination

Corresponds to single entry in gateway control.

+

Will NOT be added automatically to GLOB.gateway_destinations list.

Vars

enabledHow long after roundstart this destination becomes active
hiddenIf disabled, the destination won't be available

Procs

incoming_pass_check
is_availableWill not show on gateway controls at all.

Var Details

enabled

How long after roundstart this destination becomes active

hidden

If disabled, the destination won't be available

Proc Details

incoming_pass_check

is_available

Will not show on gateway controls at all.

\ No newline at end of file diff --git a/datum/gateway_destination/gateway.html b/datum/gateway_destination/gateway.html new file mode 100644 index 0000000000000..f0d434255547a --- /dev/null +++ b/datum/gateway_destination/gateway.html @@ -0,0 +1 @@ +/datum/gateway_destination/gateway - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gateway

Vars

target_gatewayThe gateway this destination points at

Var Details

target_gateway

The gateway this destination points at

\ No newline at end of file diff --git a/datum/gateway_destination/point.html b/datum/gateway_destination/point.html new file mode 100644 index 0000000000000..2eacb0f23487e --- /dev/null +++ b/datum/gateway_destination/point.html @@ -0,0 +1 @@ +/datum/gateway_destination/point - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

point

Vars

idUsed by away landmarks

Var Details

id

Used by away landmarks

\ No newline at end of file diff --git a/datum/glass_style.html b/datum/glass_style.html new file mode 100644 index 0000000000000..11c487f157232 --- /dev/null +++ b/datum/glass_style.html @@ -0,0 +1,12 @@ +/datum/glass_style - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

glass_style

Glass style singleton

+

Used by /datum/component/takes_reagent_appearance, and a few other places, +to modify the looks of a reagent container (not /reagent_containers, any atom with reagents) +when certain types of reagents are put into and become the majority reagent of the container

+

For example, pouring Vodka into a glass will change its icon to look like the vodka glass sprite +while pouring it into a shot glass will change to the vodka shot glass sprite

+

A reagent type can have multiple glass styles so long as each style is linked to a different container type, +this allows one reagent to style multiple things across a variety of icon files

Vars

descOptional - What the glass description is changed to
iconSuggested - What icon file to use for this glass style
icon_stateSuggested - What icon state is used for this glass style
nameOptional - What the glass is renamed to
required_container_typeRequired - What EXACT type of atom is needed for this style to be used +If not supplied, will be assumed to be an abstract type and will not be instantiated
required_drink_typeRequired - What EXACT type of reagent is needed for this style to be used +If not supplied, will be assumed to be an abstract type and will not be instantiated

Procs

set_allHelper to apply the entire style to something.
set_appearanceSets the passed item to our icon and icon state.
set_descSets the passed item to our description.
set_nameSets the passed item to our name.

Var Details

desc

Optional - What the glass description is changed to

icon

Suggested - What icon file to use for this glass style

icon_state

Suggested - What icon state is used for this glass style

name

Optional - What the glass is renamed to

required_container_type

Required - What EXACT type of atom is needed for this style to be used +If not supplied, will be assumed to be an abstract type and will not be instantiated

required_drink_type

Required - What EXACT type of reagent is needed for this style to be used +If not supplied, will be assumed to be an abstract type and will not be instantiated

Proc Details

set_all

Helper to apply the entire style to something.

set_appearance

Sets the passed item to our icon and icon state.

set_desc

Sets the passed item to our description.

set_name

Sets the passed item to our name.

\ No newline at end of file diff --git a/datum/glass_style/has_foodtype.html b/datum/glass_style/has_foodtype.html new file mode 100644 index 0000000000000..ef3cf220a497f --- /dev/null +++ b/datum/glass_style/has_foodtype.html @@ -0,0 +1 @@ +/datum/glass_style/has_foodtype - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

has_foodtype

Vars

drink_typeThis style changes the "drink type" of the container it's placed it as well, it's like food types

Var Details

drink_type

This style changes the "drink type" of the container it's placed it as well, it's like food types

\ No newline at end of file diff --git a/datum/global_funny_embedding.html b/datum/global_funny_embedding.html new file mode 100644 index 0000000000000..eef502ce83c0c --- /dev/null +++ b/datum/global_funny_embedding.html @@ -0,0 +1,5 @@ +/datum/global_funny_embedding - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

global_funny_embedding

global_funny_embedding!

+

Stored in a global datum, and created when it is turned on via event or VV'ing the GLOB.embedpocalypse_controller to be a new /datum/global_funny_embedding. +Gives every item in the world a prefix to their name, and... +Makes every item in the world embed when thrown, but also hooks into global signals for new items created to also bless them with embed-ability(??).

Procs

handle_current_items
on_new_item_in_existencesignal sent by a new item being created.

Proc Details

handle_current_items

handle_current_items

+

Gives every viable item in the world the embed_type, and the prefix prefixed to the name.

on_new_item_in_existence

signal sent by a new item being created.

\ No newline at end of file diff --git a/datum/golem_food_buff.html b/datum/golem_food_buff.html new file mode 100644 index 0000000000000..abe9926862e46 --- /dev/null +++ b/datum/golem_food_buff.html @@ -0,0 +1 @@ +/datum/golem_food_buff - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

golem_food_buff

An effect you gain from eating minerals

Vars

added_infoExtra information to display when a valid food is examined
exclusiveIf we can apply this while you already have a different status effect
nutritionNutrition to grant per stack consumed
status_effectTypepath of status effect to apply

Procs

apply_effectsApply our desired effects to the eater
can_consumeReturns true if the passed mob can currently gain this buff
on_consumptionCalled when someone actually eats this

Var Details

added_info

Extra information to display when a valid food is examined

exclusive

If we can apply this while you already have a different status effect

nutrition

Nutrition to grant per stack consumed

status_effect

Typepath of status effect to apply

Proc Details

apply_effects

Apply our desired effects to the eater

can_consume

Returns true if the passed mob can currently gain this buff

on_consumption

Called when someone actually eats this

\ No newline at end of file diff --git a/datum/golem_food_buff/iron.html b/datum/golem_food_buff/iron.html new file mode 100644 index 0000000000000..11d4797ef8bbe --- /dev/null +++ b/datum/golem_food_buff/iron.html @@ -0,0 +1 @@ +/datum/golem_food_buff/iron - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

iron

More filling, and heals you

Vars

damage_heal_orderOrder in which to heal damage types
healed_amountAmount by which you heal from eating some iron

Var Details

damage_heal_order

Order in which to heal damage types

healed_amount

Amount by which you heal from eating some iron

\ No newline at end of file diff --git a/datum/grand_finale.html b/datum/grand_finale.html new file mode 100644 index 0000000000000..83e7dad54e7b5 --- /dev/null +++ b/datum/grand_finale.html @@ -0,0 +1,8 @@ +/datum/grand_finale - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

grand_finale

A big final event to run when you complete seven rituals

Vars

descTooltip description for selection menu
dire_warningProvide an extremely loud radio message when this one starts
glow_colourOverrides the default colour you glow while channeling the rune, optional
iconAn icon to display to represent the choice
icon_stateIcon state to use to represent the choice
minimum_timePrevent especially dangerous options from being chosen until we're fine with the round ending
nameFriendly name for selection menu
ritual_invoke_timeOverride the rune invocation time

Procs

create_vendettaThey are not going to take this lying down.
equip_to_slot_then_handsTries to equip something into an inventory slot, then hands, then the floor.
get_radial_choiceReturns an entry for a radial menu for this choice. +Returns null if entry is abstract or invalid for current circumstances.
triggerActually do the thing. +Arguments

Var Details

desc

Tooltip description for selection menu

dire_warning

Provide an extremely loud radio message when this one starts

glow_colour

Overrides the default colour you glow while channeling the rune, optional

icon

An icon to display to represent the choice

icon_state

Icon state to use to represent the choice

minimum_time

Prevent especially dangerous options from being chosen until we're fine with the round ending

name

Friendly name for selection menu

ritual_invoke_time

Override the rune invocation time

Proc Details

create_vendetta

They are not going to take this lying down.

equip_to_slot_then_hands

Tries to equip something into an inventory slot, then hands, then the floor.

get_radial_choice

Returns an entry for a radial menu for this choice. +Returns null if entry is abstract or invalid for current circumstances.

trigger

Actually do the thing. +Arguments

+
\ No newline at end of file diff --git a/datum/grand_finale/armageddon.html b/datum/grand_finale/armageddon.html new file mode 100644 index 0000000000000..845c2b8ff4f25 --- /dev/null +++ b/datum/grand_finale/armageddon.html @@ -0,0 +1 @@ +/datum/grand_finale/armageddon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

armageddon

Kill yourself and probably a bunch of other people

Vars

possible_last_wordsThings to yell before you die

Var Details

possible_last_words

Things to yell before you die

\ No newline at end of file diff --git a/datum/grand_finale/clown.html b/datum/grand_finale/clown.html new file mode 100644 index 0000000000000..a5ad16038472e --- /dev/null +++ b/datum/grand_finale/clown.html @@ -0,0 +1 @@ +/datum/grand_finale/clown - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

clown

Dress the crew as magical clowns

Procs

dress_as_magic_clownDress the passed mob as a magical clown, self-explanatory

Proc Details

dress_as_magic_clown

Dress the passed mob as a magical clown, self-explanatory

\ No newline at end of file diff --git a/datum/grand_finale/immortality.html b/datum/grand_finale/immortality.html new file mode 100644 index 0000000000000..366fd646cb299 --- /dev/null +++ b/datum/grand_finale/immortality.html @@ -0,0 +1,2 @@ +/datum/grand_finale/immortality - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

immortality

Nobody will ever die ever again +Or if they do, they will be back

Procs

reverse_deathCreate a ghost ready for revival
something_diedCalled when something passes into the great beyond, make it not do that

Proc Details

reverse_death

Create a ghost ready for revival

something_died

Called when something passes into the great beyond, make it not do that

\ No newline at end of file diff --git a/datum/grand_finale/usurp.html b/datum/grand_finale/usurp.html new file mode 100644 index 0000000000000..5a54fa9b38fa5 --- /dev/null +++ b/datum/grand_finale/usurp.html @@ -0,0 +1,5 @@ +/datum/grand_finale/usurp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

usurp

Become the official Captain of the station

Procs

demote_to_assistantAnyone who thought they were Captain is in for a nasty surprise, and won't be very happy about it
dress_candidateDoes some item juggling to try to dress you as both a Wizard and Captain without deleting any items you have bought. +ID, headset, and uniform are forcibly replaced. Other slots are only filled if unoccupied. +We could forcibly replace shoes and gloves too but people might miss their insuls or... meown shoes?

Proc Details

demote_to_assistant

Anyone who thought they were Captain is in for a nasty surprise, and won't be very happy about it

dress_candidate

Does some item juggling to try to dress you as both a Wizard and Captain without deleting any items you have bought. +ID, headset, and uniform are forcibly replaced. Other slots are only filled if unoccupied. +We could forcibly replace shoes and gloves too but people might miss their insuls or... meown shoes?

\ No newline at end of file diff --git a/datum/grand_side_effect.html b/datum/grand_side_effect.html new file mode 100644 index 0000000000000..430783d0acd53 --- /dev/null +++ b/datum/grand_side_effect.html @@ -0,0 +1,11 @@ +/datum/grand_side_effect - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

grand_side_effect

Describes something which can happen in a local area when the grand ritual is completed.

Vars

abstractIf true then this effect is a holder for behaviour and should not be selected.

Procs

can_triggerReturns true if you can trigger this effect.
triggerTriggers some kind of effect in the area of the ritual. +Arguments

Var Details

abstract

If true then this effect is a holder for behaviour and should not be selected.

Proc Details

can_trigger

Returns true if you can trigger this effect.

+

trigger

Triggers some kind of effect in the area of the ritual. +Arguments

+
\ No newline at end of file diff --git a/datum/grand_side_effect/create_anomalies.html b/datum/grand_side_effect/create_anomalies.html new file mode 100644 index 0000000000000..553ad56eeabf1 --- /dev/null +++ b/datum/grand_side_effect/create_anomalies.html @@ -0,0 +1 @@ +/datum/grand_side_effect/create_anomalies - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

create_anomalies

Spawn some anomalies in the area, ones which are not too dangerous

Vars

permitted_anomaliesList of anomaly types we are allowed to create, paired with a maximum to create of each

Var Details

permitted_anomalies

List of anomaly types we are allowed to create, paired with a maximum to create of each

\ No newline at end of file diff --git a/datum/grand_side_effect/spawn_delayed_mobs.html b/datum/grand_side_effect/spawn_delayed_mobs.html new file mode 100644 index 0000000000000..0cb270b536d3c --- /dev/null +++ b/datum/grand_side_effect/spawn_delayed_mobs.html @@ -0,0 +1 @@ +/datum/grand_side_effect/spawn_delayed_mobs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spawn_delayed_mobs

Spawn some mobs after a delay

Vars

permitted_mobsTypepaths of mobs to create

Var Details

permitted_mobs

Typepaths of mobs to create

\ No newline at end of file diff --git a/datum/grand_side_effect/spell.html b/datum/grand_side_effect/spell.html new file mode 100644 index 0000000000000..00734e5036fee --- /dev/null +++ b/datum/grand_side_effect/spell.html @@ -0,0 +1 @@ +/datum/grand_side_effect/spell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spell

A side effect which just casts a spell at its position

Vars

durationTime to spend before ending spell
soundSound effect to play
spell_pathPath of spell to cast

Var Details

duration

Time to spend before ending spell

sound

Sound effect to play

spell_path

Path of spell to cast

\ No newline at end of file diff --git a/datum/grand_side_effect/summon_crewmate.html b/datum/grand_side_effect/summon_crewmate.html new file mode 100644 index 0000000000000..280858af72847 --- /dev/null +++ b/datum/grand_side_effect/summon_crewmate.html @@ -0,0 +1 @@ +/datum/grand_side_effect/summon_crewmate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

summon_crewmate

Grabs one person and pulls them to this location, after a delay

Vars

victimWeak reference to someone we're going to grab and pull to our location

Procs

can_triggerDon't run if there's nobody to summon

Var Details

victim

Weak reference to someone we're going to grab and pull to our location

Proc Details

can_trigger

Don't run if there's nobody to summon

\ No newline at end of file diff --git a/datum/grand_side_effect/translocate.html b/datum/grand_side_effect/translocate.html new file mode 100644 index 0000000000000..7fca78336cde4 --- /dev/null +++ b/datum/grand_side_effect/translocate.html @@ -0,0 +1 @@ +/datum/grand_side_effect/translocate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

translocate

Swap locations of nearby mobs arbitrarily and confuse them

Procs

can_triggerDon't run if there's nobody to swap

Proc Details

can_trigger

Don't run if there's nobody to swap

\ No newline at end of file diff --git a/datum/greyscale_config.html b/datum/greyscale_config.html new file mode 100644 index 0000000000000..145eabd525fd0 --- /dev/null +++ b/datum/greyscale_config.html @@ -0,0 +1,3 @@ +/datum/greyscale_config - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

greyscale_config

A datum tying together a greyscale configuration and dmi file. Required for using GAGS and handles the code interactions.

Vars

expected_colorsHow many colors are expected to be given when building the sprite
flat_all_layersA list of all layers irrespective of nesting
heightSpritesheet height of the icon_file
icon_cacheGenerated icons keyed by their color arguments
icon_fileReference to the dmi file for this config
icon_file_hashThe md5 file hash for the icon file. Used to check if the file has changed
icon_statesA list of icon states and their layers
json_configReference to the json config file
json_config_hashThe md5 file hash for the json configuration. Used to check if the file has changed
live_edit_typesA list of types to update in the world whenever a config changes
material_skinAn optional var to set that tells the material system what material this configuration is for. +Use a typepath here, not an instance.
nameUser friendly name used in the debug menu
string_icon_fileString path to the icon file, used for reloading
string_json_configString path to the json file, used for reloading
widthSpritesheet width of the icon_file

Procs

CrossVerifyCalled after every config has refreshed, this proc handles data verification that depends on multiple entwined configurations.
DebugNameGets the name used for debug purposes
GenerateActually create the icon and color it in, handles caching
GenerateBundleHandles the actual icon manipulation to create the spritesheet
GenerateLayerGroupInternal recursive proc to handle nested layer groups
ReadIconStateConfigurationTakes the json icon state configuration and puts it into a more processed format.
ReadLayersFromJsonTakes the json layers configuration and puts it into a more processed format
ReadMetadataReads layer configurations to take out some useful overall information
RefreshCall this proc to handle all the data extraction from the json configuration. Can be forced to load values from disk instead of memory.
SaveOutputFor saving a dmi to disk, useful for debug mainly

Var Details

expected_colors

How many colors are expected to be given when building the sprite

flat_all_layers

A list of all layers irrespective of nesting

height

Spritesheet height of the icon_file

icon_cache

Generated icons keyed by their color arguments

icon_file

Reference to the dmi file for this config

icon_file_hash

The md5 file hash for the icon file. Used to check if the file has changed

icon_states

A list of icon states and their layers

json_config

Reference to the json config file

json_config_hash

The md5 file hash for the json configuration. Used to check if the file has changed

live_edit_types

A list of types to update in the world whenever a config changes

material_skin

An optional var to set that tells the material system what material this configuration is for. +Use a typepath here, not an instance.

name

User friendly name used in the debug menu

string_icon_file

String path to the icon file, used for reloading

string_json_config

String path to the json file, used for reloading

width

Spritesheet width of the icon_file

Proc Details

CrossVerify

Called after every config has refreshed, this proc handles data verification that depends on multiple entwined configurations.

DebugName

Gets the name used for debug purposes

Generate

Actually create the icon and color it in, handles caching

GenerateBundle

Handles the actual icon manipulation to create the spritesheet

GenerateLayerGroup

Internal recursive proc to handle nested layer groups

ReadIconStateConfiguration

Takes the json icon state configuration and puts it into a more processed format.

ReadLayersFromJson

Takes the json layers configuration and puts it into a more processed format

ReadMetadata

Reads layer configurations to take out some useful overall information

Refresh

Call this proc to handle all the data extraction from the json configuration. Can be forced to load values from disk instead of memory.

SaveOutput

For saving a dmi to disk, useful for debug mainly

\ No newline at end of file diff --git a/datum/greyscale_layer.html b/datum/greyscale_layer.html new file mode 100644 index 0000000000000..61674eba2fce7 --- /dev/null +++ b/datum/greyscale_layer.html @@ -0,0 +1,13 @@ +/datum/greyscale_layer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

greyscale_layer

Procs

CrossVerifyUse this proc for extra verification needed by a particular layer, gets run after all greyscale configs have finished reading their json files.
DiskRefreshOverride this if you need to do something during a full config refresh from disk, return TRUE if something was changed
GenerateUsed to actually create the layer using the given colors +Do not override, use InternalGenerate instead
GetExpectedValuesGathers information from the layer about what variables are expected in the json. +Override and add to the two argument lists if you want extra information in your layer. +The lists are formatted like keyname:keytype_define. +The key name is assigned to the var named the same on the layer type.
InitializeOverride this to do initial set up
InternalGenerateOverride this to implement layers. +The colors var will only contain colors that this layer is configured to use.
ReadJsonDataHandles the processing of the json data and conversion to correct value types. +Will error on incorrect, missing, or unexpected values.

Proc Details

CrossVerify

Use this proc for extra verification needed by a particular layer, gets run after all greyscale configs have finished reading their json files.

DiskRefresh

Override this if you need to do something during a full config refresh from disk, return TRUE if something was changed

Generate

Used to actually create the layer using the given colors +Do not override, use InternalGenerate instead

GetExpectedValues

Gathers information from the layer about what variables are expected in the json. +Override and add to the two argument lists if you want extra information in your layer. +The lists are formatted like keyname:keytype_define. +The key name is assigned to the var named the same on the layer type.

Initialize

Override this to do initial set up

InternalGenerate

Override this to implement layers. +The colors var will only contain colors that this layer is configured to use.

ReadJsonData

Handles the processing of the json data and conversion to correct value types. +Will error on incorrect, missing, or unexpected values.

\ No newline at end of file diff --git a/datum/greyscale_modify_menu.html b/datum/greyscale_modify_menu.html new file mode 100644 index 0000000000000..5890e62f0ad35 --- /dev/null +++ b/datum/greyscale_modify_menu.html @@ -0,0 +1,6 @@ +/datum/greyscale_modify_menu - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

greyscale_modify_menu

The controller for the ui in charge of all runtime greyscale configuration/debug. +If Unlock() is not called the menu is safe for players to use.

Vars

allowed_configsA keyed list of allowed configs in the form niceName:typepath
apply_callbackA callback to control what happens when the user presses apply. Used mainly for if you want the menu to be used outside of vv.
configThe current config being previewed
config_owner_typeThe type that the configuration file was assigned at
generate_full_previewWhether the full preview should be generated, with this FALSE only the final sprite is shown instead of all steps.
icon_stateThe sprite icon state currently being shown
refreshingWhether the menu is in the middle of refreshing the preview
split_colorsA list of colors currently selected
sprite_dataCollection of data for tgui to use in displaying everything
sprite_dirThe sprite dir currently being shown
targetThe "owner" object of this menu, is usually the greyscale object being edited but that can be changed for specific uses of this menu
unlockedWhether the menu is currently locked down to prevent abuse from players. +Currently is only unlocked when opened from vv. +It also enables the user to modify the alpha channel of the colors.
userThe client that opened this menu

Procs

SetupConfigOwnerGets the top level type that first uses the configuration in this type path

Var Details

allowed_configs

A keyed list of allowed configs in the form niceName:typepath

apply_callback

A callback to control what happens when the user presses apply. Used mainly for if you want the menu to be used outside of vv.

config

The current config being previewed

config_owner_type

The type that the configuration file was assigned at

generate_full_preview

Whether the full preview should be generated, with this FALSE only the final sprite is shown instead of all steps.

icon_state

The sprite icon state currently being shown

refreshing

Whether the menu is in the middle of refreshing the preview

split_colors

A list of colors currently selected

sprite_data

Collection of data for tgui to use in displaying everything

sprite_dir

The sprite dir currently being shown

target

The "owner" object of this menu, is usually the greyscale object being edited but that can be changed for specific uses of this menu

unlocked

Whether the menu is currently locked down to prevent abuse from players. +Currently is only unlocked when opened from vv. +It also enables the user to modify the alpha channel of the colors.

user

The client that opened this menu

Proc Details

SetupConfigOwner

Gets the top level type that first uses the configuration in this type path

\ No newline at end of file diff --git a/datum/guardian_fluff.html b/datum/guardian_fluff.html new file mode 100644 index 0000000000000..15e645bdd4365 --- /dev/null +++ b/datum/guardian_fluff.html @@ -0,0 +1,2 @@ +/datum/guardian_fluff - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

guardian_fluff

Defines a theme used by guardian mobs for visuals and some text output +The default is used for ones created by wizards

Vars

attack_soundSound played when we attack
attack_verb_continuousVerb shown to viewers when attacking
attack_verb_simpleVerb shown to attacker when attacking
attack_vis_effectVisible effect when we attack
bubble_iconWhat speech bubble do we use?
descMob description to apply
fluff_typeAre we magical or technological? Mostly just used to pick a surname
guardian_fluffAn associative list of type of guardian to some kind of descriptive text to show on appearance.
icon_stateWhat is our base icon state?
nameWhat name do we apply before one has been selected?
overlay_stateWhat is the icon state for our coloured overlay?
speak_emoteEmote used for speaking

Procs

applyApplies relevant visual properties to our guardian
get_fluff_stringOutput an appropriate fluff string for our guardian when it is created

Var Details

attack_sound

Sound played when we attack

attack_verb_continuous

Verb shown to viewers when attacking

attack_verb_simple

Verb shown to attacker when attacking

attack_vis_effect

Visible effect when we attack

bubble_icon

What speech bubble do we use?

desc

Mob description to apply

fluff_type

Are we magical or technological? Mostly just used to pick a surname

guardian_fluff

An associative list of type of guardian to some kind of descriptive text to show on appearance.

icon_state

What is our base icon state?

name

What name do we apply before one has been selected?

overlay_state

What is the icon state for our coloured overlay?

speak_emote

Emote used for speaking

Proc Details

apply

Applies relevant visual properties to our guardian

get_fluff_string

Output an appropriate fluff string for our guardian when it is created

\ No newline at end of file diff --git a/datum/gutlunch_inherited_stats.html b/datum/gutlunch_inherited_stats.html new file mode 100644 index 0000000000000..b8db22f0c6a3d --- /dev/null +++ b/datum/gutlunch_inherited_stats.html @@ -0,0 +1 @@ +/datum/gutlunch_inherited_stats - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gutlunch_inherited_stats

stats we inherit from the parent

Vars

attackattack we inherited
healthhealth we inherited
speedspeed we inherited

Var Details

attack

attack we inherited

health

health we inherited

speed

speed we inherited

\ No newline at end of file diff --git a/datum/hallucination.html b/datum/hallucination.html new file mode 100644 index 0000000000000..86f0aecabb537 --- /dev/null +++ b/datum/hallucination.html @@ -0,0 +1,5 @@ +/datum/hallucination - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Hallucination datum.

Handles effects of a hallucination on a living mob. +Created and triggered via the [cause hallucination proc][/mob/living/proc/cause_hallucination].

+

See also: the hallucination status effect.

Vars

abstract_hallucination_parentWho's our next highest abstract parent type?
feedback_detailsExtra info about the hallucination displayed in the log.
hallucinatorThe mob we're targeting with the hallucination.
random_hallucination_weightWhat is this hallucination's weight in the random hallucination pool?

Procs

random_far_turfReturns a random turf in a ring around the hallucinator mob. +Useful for sound hallucinations.
random_non_sec_crewmemberGets a random non-security member of the crew that is at least 8 tiles away.
startStarts the hallucination.
target_deletingSignal proc for COMSIG_QDELETING, if the mob hallucinating us is deletes, we should delete too.

Var Details

abstract_hallucination_parent

Who's our next highest abstract parent type?

feedback_details

Extra info about the hallucination displayed in the log.

hallucinator

The mob we're targeting with the hallucination.

random_hallucination_weight

What is this hallucination's weight in the random hallucination pool?

Proc Details

random_far_turf

Returns a random turf in a ring around the hallucinator mob. +Useful for sound hallucinations.

random_non_sec_crewmember

Gets a random non-security member of the crew that is at least 8 tiles away.

start

Starts the hallucination.

target_deleting

Signal proc for COMSIG_QDELETING, if the mob hallucinating us is deletes, we should delete too.

\ No newline at end of file diff --git a/datum/hallucination/battle/bomb.html b/datum/hallucination/battle/bomb.html new file mode 100644 index 0000000000000..bc0f92a6bb50a --- /dev/null +++ b/datum/hallucination/battle/bomb.html @@ -0,0 +1 @@ +/datum/hallucination/battle/bomb - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bomb

A hallucination of a syndicate bomb ticking down.

Procs

fake_tickThe loop of the (fake) bomb ticking down.

Proc Details

fake_tick

The loop of the (fake) bomb ticking down.

\ No newline at end of file diff --git a/datum/hallucination/battle/e_sword.html b/datum/hallucination/battle/e_sword.html new file mode 100644 index 0000000000000..d8c7855ecb046 --- /dev/null +++ b/datum/hallucination/battle/e_sword.html @@ -0,0 +1 @@ +/datum/hallucination/battle/e_sword - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

e_sword

A hallucination of someone unsheathing an energy sword, going to town, and sheathing it again.

Procs

stab_loopThe main sound loop of someone being esworded.

Proc Details

stab_loop

The main sound loop of someone being esworded.

\ No newline at end of file diff --git a/datum/hallucination/battle/gun.html b/datum/hallucination/battle/gun.html new file mode 100644 index 0000000000000..bc0a683d867ea --- /dev/null +++ b/datum/hallucination/battle/gun.html @@ -0,0 +1 @@ +/datum/hallucination/battle/gun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gun

Subtype of battle hallucination for gun based battles, where it sounds like someone is being shot.

Vars

chance_to_fallThe probability chance we have to make our "hit" person fall down after we pass the number_of_hits_to_end.
fire_soundThe sound effect we play when we "fire" a shot.
hit_person_soundThe sound we make when our shot actually "hits" "someone".
hit_wall_soundThe sound we make when our shot misses someone and "hits" a "wall".
number_of_hits_to_endThe number of successful hits required to "down" the "someone" we're firing at.
shots_to_fire_lower_rangeThe lower end to how many shots we'll fire.
shots_to_fire_upper_rangeThe upper end to how many shots we'll fire.

Procs

fire_loopThe main loop for gun based hallucinations.

Var Details

chance_to_fall

The probability chance we have to make our "hit" person fall down after we pass the number_of_hits_to_end.

fire_sound

The sound effect we play when we "fire" a shot.

hit_person_sound

The sound we make when our shot actually "hits" "someone".

hit_wall_sound

The sound we make when our shot misses someone and "hits" a "wall".

number_of_hits_to_end

The number of successful hits required to "down" the "someone" we're firing at.

shots_to_fire_lower_range

The lower end to how many shots we'll fire.

shots_to_fire_upper_range

The upper end to how many shots we'll fire.

Proc Details

fire_loop

The main loop for gun based hallucinations.

\ No newline at end of file diff --git a/datum/hallucination/battle/harm_baton.html b/datum/hallucination/battle/harm_baton.html new file mode 100644 index 0000000000000..303895803b539 --- /dev/null +++ b/datum/hallucination/battle/harm_baton.html @@ -0,0 +1 @@ +/datum/hallucination/battle/harm_baton - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

harm_baton

A hallucination of someone being stun batonned, and subsequently harmbatonned.

Procs

harmbaton_loopThe main sound loop for harmbatonning.

Proc Details

harmbaton_loop

The main sound loop for harmbatonning.

\ No newline at end of file diff --git a/datum/hallucination/battle/stun_prod.html b/datum/hallucination/battle/stun_prod.html new file mode 100644 index 0000000000000..3668281b27ce1 --- /dev/null +++ b/datum/hallucination/battle/stun_prod.html @@ -0,0 +1 @@ +/datum/hallucination/battle/stun_prod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

stun_prod

A hallucination of someone being hit with a stun prod, followed by cable cuffing.

Procs

fake_cuffPlays a fake cable-cuff sound and deletes the hallucination.

Proc Details

fake_cuff

Plays a fake cable-cuff sound and deletes the hallucination.

\ No newline at end of file diff --git a/datum/hallucination/body.html b/datum/hallucination/body.html new file mode 100644 index 0000000000000..7636b1c91d297 --- /dev/null +++ b/datum/hallucination/body.html @@ -0,0 +1 @@ +/datum/hallucination/body - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

body

Makes a random body appear and disappear quickly in view of the hallucinator.

Vars

body_floatsWhether we apply the floating anim to the body
body_image_fileThe file to make the body image from.
body_image_stateThe icon state to make the body image form.
body_layerThe layer this body will be drawn on, in case we want to bypass lighting
shown_bodyThe actual image we made and showed show.
spawn_under_hallucinatorif TRUE, spawns the body under the hallucinator instead of somewhere in view

Procs

make_body_imageMakes the image of the body to show at the location passed.

Var Details

body_floats

Whether we apply the floating anim to the body

body_image_file

The file to make the body image from.

body_image_state

The icon state to make the body image form.

body_layer

The layer this body will be drawn on, in case we want to bypass lighting

shown_body

The actual image we made and showed show.

spawn_under_hallucinator

if TRUE, spawns the body under the hallucinator instead of somewhere in view

Proc Details

make_body_image

Makes the image of the body to show at the location passed.

\ No newline at end of file diff --git a/datum/hallucination/body/staticguy.html b/datum/hallucination/body/staticguy.html new file mode 100644 index 0000000000000..ccfca1bf2e3c5 --- /dev/null +++ b/datum/hallucination/body/staticguy.html @@ -0,0 +1 @@ +/datum/hallucination/body/staticguy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

staticguy

Vars

del_timeridOur QDEL_IN timer id, so we can cancel it

Procs

on_moveSignal proc for COMSIG_MOVABLE_MOVED - if we move out of view of the hallucination, it disappears, how spooky

Var Details

del_timerid

Our QDEL_IN timer id, so we can cancel it

Proc Details

on_move

Signal proc for COMSIG_MOVABLE_MOVED - if we move out of view of the hallucination, it disappears, how spooky

\ No newline at end of file diff --git a/datum/hallucination/bolts.html b/datum/hallucination/bolts.html new file mode 100644 index 0000000000000..1996ccec43e82 --- /dev/null +++ b/datum/hallucination/bolts.html @@ -0,0 +1 @@ +/datum/hallucination/bolts - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bolts

Vars

airlocks_to_hitA list of weakrefs to airlocks we bolt down around us
lockingWhether we're currently locking, or unlocking
locksA list of weakrefs to fake lock hallucinations we've created
next_actionA number relating to the number of ssfastprocessing ticks (x 10) until the next action

Var Details

airlocks_to_hit

A list of weakrefs to airlocks we bolt down around us

locking

Whether we're currently locking, or unlocking

locks

A list of weakrefs to fake lock hallucinations we've created

next_action

A number relating to the number of ssfastprocessing ticks (x 10) until the next action

\ No newline at end of file diff --git a/datum/hallucination/chat.html b/datum/hallucination/chat.html new file mode 100644 index 0000000000000..b8faeb451bfcc --- /dev/null +++ b/datum/hallucination/chat.html @@ -0,0 +1 @@ +/datum/hallucination/chat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chat

Sends a fake chat message to the hallucinator.

Vars

force_radioIf TRUE, we force the message to be hallucinated from common radio. Only set in New()
specific_messageIf set, a message we force to be picked, rather than an auto-generated message. Only set in New()

Var Details

force_radio

If TRUE, we force the message to be hallucinated from common radio. Only set in New()

specific_message

If set, a message we force to be picked, rather than an auto-generated message. Only set in New()

\ No newline at end of file diff --git a/datum/hallucination/death.html b/datum/hallucination/death.html new file mode 100644 index 0000000000000..623e04e65f34d --- /dev/null +++ b/datum/hallucination/death.html @@ -0,0 +1 @@ +/datum/hallucination/death - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

death

Vars

floor_themDetermines whether we floor them or just immobilize them

Var Details

floor_them

Determines whether we floor them or just immobilize them

\ No newline at end of file diff --git a/datum/hallucination/death/dust.html b/datum/hallucination/death/dust.html new file mode 100644 index 0000000000000..d01113ceade22 --- /dev/null +++ b/datum/hallucination/death/dust.html @@ -0,0 +1 @@ +/datum/hallucination/death/dust - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dust

Vars

created_imagesList of all images we created to convey the effect to the hallucinator (so we can remove them after)

Var Details

created_images

List of all images we created to convey the effect to the hallucinator (so we can remove them after)

\ No newline at end of file diff --git a/datum/hallucination/delusion.html b/datum/hallucination/delusion.html new file mode 100644 index 0000000000000..b596777878df3 --- /dev/null +++ b/datum/hallucination/delusion.html @@ -0,0 +1,3 @@ +/datum/hallucination/delusion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

delusion

A hallucination that makes us and (possibly) other people look like something else.

Vars

affects_othersIf TRUE, this hallucination affects all humans in existence
affects_usIf TRUE, this delusion affects us
delusion_appearanceAppearance to use as a source for our image +If this exists we'll ignore the icon/state from above
delusion_icon_fileThe file the delusion image is made from
delusion_icon_stateThe icon state of the delusion image
delusion_nameThe name of the delusion image
delusionsA list of all images we've made
durationThe duration of the delusions
dynamic_delusionDo we use an appearance/generated icon? If yes no icon file or state needed.
play_wabbajackIf TRUE, we will play the wabbajack sound effect to the hallucinator
skip_nearbyIf TRUE, people in view of our hallcuinator won't be affected (requires affects_others)

Var Details

affects_others

If TRUE, this hallucination affects all humans in existence

affects_us

If TRUE, this delusion affects us

delusion_appearance

Appearance to use as a source for our image +If this exists we'll ignore the icon/state from above

delusion_icon_file

The file the delusion image is made from

delusion_icon_state

The icon state of the delusion image

delusion_name

The name of the delusion image

delusions

A list of all images we've made

duration

The duration of the delusions

dynamic_delusion

Do we use an appearance/generated icon? If yes no icon file or state needed.

play_wabbajack

If TRUE, we will play the wabbajack sound effect to the hallucinator

skip_nearby

If TRUE, people in view of our hallcuinator won't be affected (requires affects_others)

\ No newline at end of file diff --git a/datum/hallucination/fake_alert.html b/datum/hallucination/fake_alert.html new file mode 100644 index 0000000000000..23df5f14e5c32 --- /dev/null +++ b/datum/hallucination/fake_alert.html @@ -0,0 +1 @@ +/datum/hallucination/fake_alert - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fake_alert

Fake alert hallucination. Causes a fake alert to be thrown to the hallucinator.

Vars

alert_categoryThe category of the fake alert
alert_typeThe type of the fake alert. Can be a list, if you want it to draw from multiple types (randomly).
durationThe duration of the alert being thrown.
optional_severityOptional, the severity of the alert.

Var Details

alert_category

The category of the fake alert

alert_type

The type of the fake alert. Can be a list, if you want it to draw from multiple types (randomly).

duration

The duration of the alert being thrown.

optional_severity

Optional, the severity of the alert.

\ No newline at end of file diff --git a/datum/hallucination/fake_health_doll.html b/datum/hallucination/fake_health_doll.html new file mode 100644 index 0000000000000..2ce09aa93321e --- /dev/null +++ b/datum/hallucination/fake_health_doll.html @@ -0,0 +1,3 @@ +/datum/hallucination/fake_health_doll - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fake_health_doll

Causes the target to see incorrect health damages on the healthdoll

Vars

bodypartsAssoc list of [ref to bodyparts] to [severity]
del_timer_idTimer ID for when we're deleted
durationThe duration of the hallucination

Procs

add_fake_limbAdds a fake limb to the effect.
increment_fake_damageIncrements the severity of the damage seen on all the limbs we are already tracking.
on_bodypart_checkedSignal proc for COMSIG_BODYPART_CHECKED_FOR_INJURY. Our bodyparts look a lot more wounded than they actually are.
on_bodypart_hud_updateWhenever a bodypart we're tracking has their health hud updated, override it with our fake overlay
remove_bodypartRemove a bodypart from our list, unregistering all associated signals and handling the reference

Var Details

bodyparts

Assoc list of [ref to bodyparts] to [severity]

del_timer_id

Timer ID for when we're deleted

duration

The duration of the hallucination

Proc Details

add_fake_limb

Adds a fake limb to the effect.

+

specific_limb - optional, the specific limb to apply the effect to. If not passed, picks a random limb +seveirty - optional, the specific severity level to apply the effect. Clamped from 1 to 5. If not passed, picks a random number.

increment_fake_damage

Increments the severity of the damage seen on all the limbs we are already tracking.

on_bodypart_checked

Signal proc for COMSIG_BODYPART_CHECKED_FOR_INJURY. Our bodyparts look a lot more wounded than they actually are.

on_bodypart_hud_update

Whenever a bodypart we're tracking has their health hud updated, override it with our fake overlay

remove_bodypart

Remove a bodypart from our list, unregistering all associated signals and handling the reference

\ No newline at end of file diff --git a/datum/hallucination/fake_item.html b/datum/hallucination/fake_item.html new file mode 100644 index 0000000000000..756bb51faf433 --- /dev/null +++ b/datum/hallucination/fake_item.html @@ -0,0 +1 @@ +/datum/hallucination/fake_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fake_item

Hallucinates a fake item in our hands, pockets, or belt or whatever.

Vars

template_item_typeWhat item should we use as a template, grabbing its icon and icon state and name?
valid_slotsA flag of slots this fake item can appear in.

Var Details

template_item_type

What item should we use as a template, grabbing its icon and icon state and name?

valid_slots

A flag of slots this fake item can appear in.

\ No newline at end of file diff --git a/datum/hallucination/fake_sound.html b/datum/hallucination/fake_sound.html new file mode 100644 index 0000000000000..872e6e30602a2 --- /dev/null +++ b/datum/hallucination/fake_sound.html @@ -0,0 +1 @@ +/datum/hallucination/fake_sound - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fake_sound

Hallucination that plays a fake sound somewhere nearby.

Vars

sound_typeA path to a sound, or a list of sounds, that plays when we trigger
sound_varyWhether the fake sound has vary or not
volumeVolume of the fake sound

Procs

play_fake_soundActually plays the fake sound.
queue_fake_soundUsed to queue additional, delayed fake sounds via a callback.

Var Details

sound_type

A path to a sound, or a list of sounds, that plays when we trigger

sound_vary

Whether the fake sound has vary or not

volume

Volume of the fake sound

Proc Details

play_fake_sound

Actually plays the fake sound.

queue_fake_sound

Used to queue additional, delayed fake sounds via a callback.

\ No newline at end of file diff --git a/datum/hallucination/fake_sound/normal/mech.html b/datum/hallucination/fake_sound/normal/mech.html new file mode 100644 index 0000000000000..8cf37e2954861 --- /dev/null +++ b/datum/hallucination/fake_sound/normal/mech.html @@ -0,0 +1 @@ +/datum/hallucination/fake_sound/normal/mech - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mech

Vars

mech_dirWhat dir is the mech walking?
mech_sourceThe turf the mech started walking from.
steps_leftHow many steps are left in the walk?

Var Details

mech_dir

What dir is the mech walking?

mech_source

The turf the mech started walking from.

steps_left

How many steps are left in the walk?

\ No newline at end of file diff --git a/datum/hallucination/fake_sound/weird.html b/datum/hallucination/fake_sound/weird.html new file mode 100644 index 0000000000000..7afb1b611fc36 --- /dev/null +++ b/datum/hallucination/fake_sound/weird.html @@ -0,0 +1 @@ +/datum/hallucination/fake_sound/weird - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

weird

Vars

no_sourceif FALSE, we will pass "null" in as the turf source, meaning the sound will just play without direction / etc.

Var Details

no_source

if FALSE, we will pass "null" in as the turf source, meaning the sound will just play without direction / etc.

\ No newline at end of file diff --git a/datum/hallucination/fire.html b/datum/hallucination/fire.html new file mode 100644 index 0000000000000..8484f54c1393d --- /dev/null +++ b/datum/hallucination/fire.html @@ -0,0 +1 @@ +/datum/hallucination/fire - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fire

Vars

activeAre we currently burning our mob?
fire_clearingAre we currently fake-clearing our hallucinated fire?
fire_iconWhat icon file to use for our hallucinator
fire_icon_stateWhat icon state to use for our hallucinator
fire_overlayOur fire overlay we generate
increasing_stagesAre the stages going up or down?
next_actionWhen should we do our next action of the hallucination?
stageWhat stare of fire are we in?
time_spentHow long have we spent on fire?
times_to_lower_staminaHow may times do we apply stamina damage to our mob?

Var Details

active

Are we currently burning our mob?

fire_clearing

Are we currently fake-clearing our hallucinated fire?

fire_icon

What icon file to use for our hallucinator

fire_icon_state

What icon state to use for our hallucinator

fire_overlay

Our fire overlay we generate

increasing_stages

Are the stages going up or down?

next_action

When should we do our next action of the hallucination?

stage

What stare of fire are we in?

time_spent

How long have we spent on fire?

times_to_lower_stamina

How may times do we apply stamina damage to our mob?

\ No newline at end of file diff --git a/datum/hallucination/hazard.html b/datum/hallucination/hazard.html new file mode 100644 index 0000000000000..b389d2a42ef3e --- /dev/null +++ b/datum/hallucination/hazard.html @@ -0,0 +1 @@ +/datum/hallucination/hazard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hazard

Hallucinations that create a hazard somewhere nearby that actually has a danger associated.

Vars

hazard_typeThe type of effect we create

Var Details

hazard_type

The type of effect we create

\ No newline at end of file diff --git a/datum/hallucination/ice.html b/datum/hallucination/ice.html new file mode 100644 index 0000000000000..2bb8d95869721 --- /dev/null +++ b/datum/hallucination/ice.html @@ -0,0 +1 @@ +/datum/hallucination/ice - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ice

Causes the hallucinator to believe themselves frozen in ice. Man am I glad he's frozen in there etc etc

Vars

ice_durationHow long will we be frozen today
ice_iconWhat icon file to use for our hallucinator
ice_icon_stateWhat icon state to use for our hallucinator
ice_overlayOur ice overlay we generate
play_ice_soundWill we play the ice freeze sound?

Var Details

ice_duration

How long will we be frozen today

ice_icon

What icon file to use for our hallucinator

ice_icon_state

What icon state to use for our hallucinator

ice_overlay

Our ice overlay we generate

play_ice_sound

Will we play the ice freeze sound?

\ No newline at end of file diff --git a/datum/hallucination/nearby_fake_item.html b/datum/hallucination/nearby_fake_item.html new file mode 100644 index 0000000000000..ad8d347db4695 --- /dev/null +++ b/datum/hallucination/nearby_fake_item.html @@ -0,0 +1 @@ +/datum/hallucination/nearby_fake_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

nearby_fake_item

A hallucination that delivers the illusion that someone nearby has pulled out a weapon or item.

Vars

generated_imageThe image we actually generate
image_icon_stateThe icon state of the files to make the image from
left_hand_fileThe icon file to draw from for left hand icons
right_hand_fileThe icon file to draw from for right hand icons

Procs

generate_fake_imageGenerates the image with the given file on the passed mob.
remove_imageRemove the image when all's said and done.

Var Details

generated_image

The image we actually generate

image_icon_state

The icon state of the files to make the image from

left_hand_file

The icon file to draw from for left hand icons

right_hand_file

The icon file to draw from for right hand icons

Proc Details

generate_fake_image

Generates the image with the given file on the passed mob.

remove_image

Remove the image when all's said and done.

\ No newline at end of file diff --git a/datum/hallucination/oh_yeah.html b/datum/hallucination/oh_yeah.html new file mode 100644 index 0000000000000..5e37008079748 --- /dev/null +++ b/datum/hallucination/oh_yeah.html @@ -0,0 +1 @@ +/datum/hallucination/oh_yeah - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

oh_yeah

Sends a fake bubblegum charging through a nearby wall to our target.

Vars

fake_broken_wallAn image overlayed to the wall bubblegum comes out of, to look destroyed.
fake_runeAn image put where bubblegum is expected to land, to mimic his charge "rune" icon.
hallucination_linesif haunt_them is TRUE, they will also be shown one of these lines when the hallucination occurs
haunt_themif TRUE, we will also send one of the hallucination lines when we start.

Procs

charge_loopRecursive function that operates as a "fake charge" of our effect towards the target turf.

Var Details

fake_broken_wall

An image overlayed to the wall bubblegum comes out of, to look destroyed.

fake_rune

An image put where bubblegum is expected to land, to mimic his charge "rune" icon.

hallucination_lines

if haunt_them is TRUE, they will also be shown one of these lines when the hallucination occurs

haunt_them

if TRUE, we will also send one of the hallucination lines when we start.

Proc Details

charge_loop

Recursive function that operates as a "fake charge" of our effect towards the target turf.

\ No newline at end of file diff --git a/datum/hallucination/screwy_hud.html b/datum/hallucination/screwy_hud.html new file mode 100644 index 0000000000000..b9d15190f2f53 --- /dev/null +++ b/datum/hallucination/screwy_hud.html @@ -0,0 +1 @@ +/datum/hallucination/screwy_hud - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

screwy_hud

Screwyhud, makes the user's health bar hud wonky

Vars

screwy_hud_typeThe type of hud we give to the hallucinator

Var Details

screwy_hud_type

The type of hud we give to the hallucinator

\ No newline at end of file diff --git a/datum/hallucination/station_message/heretic.html b/datum/hallucination/station_message/heretic.html new file mode 100644 index 0000000000000..f51156f97851b --- /dev/null +++ b/datum/hallucination/station_message/heretic.html @@ -0,0 +1,3 @@ +/datum/hallucination/station_message/heretic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

heretic

Vars

ascension_bodiesThis is gross and will probably easily be outdated in some time but c'est la vie. +Maybe if someone datumizes heretic paths or something this can be improved

Var Details

ascension_bodies

This is gross and will probably easily be outdated in some time but c'est la vie. +Maybe if someone datumizes heretic paths or something this can be improved

\ No newline at end of file diff --git a/datum/hallucination/xeno_attack.html b/datum/hallucination/xeno_attack.html new file mode 100644 index 0000000000000..94970e5f36e25 --- /dev/null +++ b/datum/hallucination/xeno_attack.html @@ -0,0 +1 @@ +/datum/hallucination/xeno_attack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

xeno_attack

Xeno crawls from nearby vent, jumps at you, and goes back in.

Procs

begin_crawlingMimics ventcrawling into the vent.
disappearDisappears into the vent, ending the hallucination.
leap_at_targetLeaps from the vent to the hallucinator.
leap_back_to_pumpLeaps from the hallucinator back to the vent.

Proc Details

begin_crawling

Mimics ventcrawling into the vent.

disappear

Disappears into the vent, ending the hallucination.

leap_at_target

Leaps from the vent to the hallucinator.

leap_back_to_pump

Leaps from the hallucinator back to the vent.

\ No newline at end of file diff --git a/datum/heretic_knowledge.html b/datum/heretic_knowledge.html new file mode 100644 index 0000000000000..340e25240e3db --- /dev/null +++ b/datum/heretic_knowledge.html @@ -0,0 +1,79 @@ +/datum/heretic_knowledge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Heretic Knowledge

The datums that allow heretics to progress and learn new spells and rituals.

+

Heretic Knowledge datums are not singletons - they are instantiated as they +are given to heretics, and deleted if the heretic antagonist is removed.

Vars

abstract_parent_typeThe abstract parent type of the knowledge, used in determine mutual exclusivity in some cases
banned_atom_typesIf set, required_atoms checks for these exact types and doesn't allow them to be ingredients.
banned_knowledgeWhat knowledge is incompatible with this. Knowledge in this list cannot be researched with this current knowledge.
costCost of knowledge in knowledge points
depthLevel of knowledge tree where this knowledge should be in the UI
descDescription of the knowledge, shown to the heretic. Describes what it unlocks / does.
gain_textWhat's shown to the heretic when the knowledge is aquired
mutually_exclusiveIf TRUE, populates the banned_knowledge list of every other subtype of this knowledge's abstract_parent_type
nameName of the knowledge, shown to the heretic.
next_knowledgeThe knowledge this unlocks next after learning.
poll_ignore_defineDetermines what kind of monster ghosts will ignore from here on out. Defaults to POLL_IGNORE_HERETIC_MONSTER, but we define other types of monsters for more granularity.
priorityThe priority of the knowledge. Higher priority knowledge appear higher in the ritual list. +Number itself is completely arbitrary. Does not need to be set for non-ritual knowledge.
required_atomsAssoc list of [typepaths we need] to [amount needed]. +If set, this knowledge allows the heretic to do a ritual on a transmutation rune with the components set. +If one of the items in the list is a list, it's treated as 'any of these items will work'
research_tree_icon_pathIn case we want to override the default UI icon getter and plug in our own icon instead. +if research_tree_icon_path is not null, research_tree_icon_state must also be specified or things may break
result_atomsPaired with above. If set, the resulting spawned atoms upon ritual completion.
routeWhat path is this on. If set to "null", assumed to be unreachable (or abstract).

Procs

can_be_invokedDetermines if a heretic can actually attempt to invoke the knowledge as a ritual. +By default, we can only invoke knowledge with rituals associated.
cleanup_atomsCalled after on_finished_recipe returns TRUE +and a ritual was successfully completed.
on_finished_recipeCalled whenever the knowledge's associated ritual is completed successfully.
on_gainCalled when the knowledge is applied to a mob. +This can be called multiple times per heretic, +in the case of bodyswap shenanigans.
on_loseCalled when the knowledge is removed from a mob, +either due to a heretic being de-heretic'd or bodyswap memery.
on_researchCalled when the knowledge is first researched. +This is only ever called once per heretic.
parse_required_itemParses specific items into a more readble form. +Can be overriden by knoweldge subtypes.
recipe_snowflake_checkSpecial check for rituals. +Called before any of the required atoms are checked.
summon_ritual_mobCreates the ritual mob and grabs a ghost for it

Var Details

abstract_parent_type

The abstract parent type of the knowledge, used in determine mutual exclusivity in some cases

banned_atom_types

If set, required_atoms checks for these exact types and doesn't allow them to be ingredients.

banned_knowledge

What knowledge is incompatible with this. Knowledge in this list cannot be researched with this current knowledge.

cost

Cost of knowledge in knowledge points

depth

Level of knowledge tree where this knowledge should be in the UI

desc

Description of the knowledge, shown to the heretic. Describes what it unlocks / does.

gain_text

What's shown to the heretic when the knowledge is aquired

mutually_exclusive

If TRUE, populates the banned_knowledge list of every other subtype of this knowledge's abstract_parent_type

name

Name of the knowledge, shown to the heretic.

next_knowledge

The knowledge this unlocks next after learning.

poll_ignore_define

Determines what kind of monster ghosts will ignore from here on out. Defaults to POLL_IGNORE_HERETIC_MONSTER, but we define other types of monsters for more granularity.

priority

The priority of the knowledge. Higher priority knowledge appear higher in the ritual list. +Number itself is completely arbitrary. Does not need to be set for non-ritual knowledge.

required_atoms

Assoc list of [typepaths we need] to [amount needed]. +If set, this knowledge allows the heretic to do a ritual on a transmutation rune with the components set. +If one of the items in the list is a list, it's treated as 'any of these items will work'

research_tree_icon_path

In case we want to override the default UI icon getter and plug in our own icon instead. +if research_tree_icon_path is not null, research_tree_icon_state must also be specified or things may break

result_atoms

Paired with above. If set, the resulting spawned atoms upon ritual completion.

route

What path is this on. If set to "null", assumed to be unreachable (or abstract).

Proc Details

can_be_invoked

Determines if a heretic can actually attempt to invoke the knowledge as a ritual. +By default, we can only invoke knowledge with rituals associated.

+

Return TRUE to have the ritual show up in the rituals list, FALSE otherwise.

cleanup_atoms

Called after on_finished_recipe returns TRUE +and a ritual was successfully completed.

+

Goes through and cleans up (deletes) +all atoms in the selected_atoms list.

+

Remove atoms from the selected_atoms +(either in this proc or in on_finished_recipe) +to NOT have certain atoms deleted on cleanup.

+

Arguments

+

on_finished_recipe

Called whenever the knowledge's associated ritual is completed successfully.

+

Creates atoms from types in result_atoms. +Override this if you want something else to happen. +This CAN sleep, such as for summoning rituals which poll for ghosts.

+

Arguments

+ +

Returns: TRUE, if the ritual should cleanup afterwards, or FALSE, to avoid calling cleanup after.

on_gain

Called when the knowledge is applied to a mob. +This can be called multiple times per heretic, +in the case of bodyswap shenanigans.

+

Arguments

+

on_lose

Called when the knowledge is removed from a mob, +either due to a heretic being de-heretic'd or bodyswap memery.

+

Arguments

+

on_research

Called when the knowledge is first researched. +This is only ever called once per heretic.

+

Arguments

+

parse_required_item

Parses specific items into a more readble form. +Can be overriden by knoweldge subtypes.

recipe_snowflake_check

Special check for rituals. +Called before any of the required atoms are checked.

+

If you are adding a more complex summoning, +or something that requires a special check +that parses through all the atoms, +you should override this.

+

Arguments

+ +

Returns: TRUE, if the ritual will continue, or FALSE, if the ritual is skipped / cancelled

summon_ritual_mob

Creates the ritual mob and grabs a ghost for it

+
\ No newline at end of file diff --git a/datum/heretic_knowledge/blade_dance.html b/datum/heretic_knowledge/blade_dance.html new file mode 100644 index 0000000000000..36d84820e5628 --- /dev/null +++ b/datum/heretic_knowledge/blade_dance.html @@ -0,0 +1,3 @@ +/datum/heretic_knowledge/blade_dance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blade_dance

Vars

riposte_readyWhether the counter-attack is ready or not. +Used instead of cooldowns, so we can give feedback when it's ready again

Var Details

riposte_ready

Whether the counter-attack is ready or not. +Used instead of cooldowns, so we can give feedback when it's ready again

\ No newline at end of file diff --git a/datum/heretic_knowledge/blade_upgrade.html b/datum/heretic_knowledge/blade_upgrade.html new file mode 100644 index 0000000000000..136eed7dcbdc9 --- /dev/null +++ b/datum/heretic_knowledge/blade_upgrade.html @@ -0,0 +1,9 @@ +/datum/heretic_knowledge/blade_upgrade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

blade_upgrade

A knowledge subtype for heretic knowledge that +upgrades their sickly blade, either on melee or range.

+

A heretic can only learn one /blade_upgrade type knowledge.

Procs

do_melee_effectsOverridable proc that invokes special effects +whenever the heretic attacks someone in melee with their heretic blade.
do_ranged_effectsOverridable proc that invokes special effects +whenever the heretic clicks on someone at range with their heretic blade.
on_eldritch_bladeSignal proc for COMSIG_HERETIC_BLADE_ATTACK.
on_ranged_eldritch_bladeSignal proc for COMSIG_HERETIC_RANGED_BLADE_ATTACK.

Proc Details

do_melee_effects

Overridable proc that invokes special effects +whenever the heretic attacks someone in melee with their heretic blade.

do_ranged_effects

Overridable proc that invokes special effects +whenever the heretic clicks on someone at range with their heretic blade.

on_eldritch_blade

Signal proc for COMSIG_HERETIC_BLADE_ATTACK.

+

Apply any melee effects from hitting someone with our blade.

on_ranged_eldritch_blade

Signal proc for COMSIG_HERETIC_RANGED_BLADE_ATTACK.

+

Apply any ranged effects from hitting someone with our blade.

\ No newline at end of file diff --git a/datum/heretic_knowledge/blade_upgrade/blade.html b/datum/heretic_knowledge/blade_upgrade/blade.html new file mode 100644 index 0000000000000..3d263d4b865a9 --- /dev/null +++ b/datum/heretic_knowledge/blade_upgrade/blade.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/blade_upgrade/blade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blade

Vars

last_weapon_forceHow much force was the last weapon we offhanded with? If it's different, we need to re-calculate the decrement
offand_force_decrementHow much force do we apply to the offhand?

Var Details

last_weapon_force

How much force was the last weapon we offhanded with? If it's different, we need to re-calculate the decrement

offand_force_decrement

How much force do we apply to the offhand?

\ No newline at end of file diff --git a/datum/heretic_knowledge/blade_upgrade/cosmic.html b/datum/heretic_knowledge/blade_upgrade/cosmic.html new file mode 100644 index 0000000000000..e34c7ac7b04b7 --- /dev/null +++ b/datum/heretic_knowledge/blade_upgrade/cosmic.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/blade_upgrade/cosmic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cosmic

Vars

combo_counterThe hits we have on a mob with a mind.
combo_durationThe active duration of the combo.
combo_duration_amountThe duration of a combo when it starts.
combo_timerWhen this timer completes we reset our combo.
increase_amountThe amount the combo duration increases.
max_combo_durationThe maximum duration of the combo.
second_targetStorage for the second target.
third_targetStorage for the third target.

Procs

increase_combo_durationIncreases the combo duration.
reset_comboResets the combo.

Var Details

combo_counter

The hits we have on a mob with a mind.

combo_duration

The active duration of the combo.

combo_duration_amount

The duration of a combo when it starts.

combo_timer

When this timer completes we reset our combo.

increase_amount

The amount the combo duration increases.

max_combo_duration

The maximum duration of the combo.

second_target

Storage for the second target.

third_target

Storage for the third target.

Proc Details

increase_combo_duration

Increases the combo duration.

reset_combo

Resets the combo.

\ No newline at end of file diff --git a/datum/heretic_knowledge/blade_upgrade/flesh.html b/datum/heretic_knowledge/blade_upgrade/flesh.html new file mode 100644 index 0000000000000..1fd524a32a1e6 --- /dev/null +++ b/datum/heretic_knowledge/blade_upgrade/flesh.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/blade_upgrade/flesh - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

flesh

Vars

wound_typeWhat type of wound do we apply on hit

Var Details

wound_type

What type of wound do we apply on hit

\ No newline at end of file diff --git a/datum/heretic_knowledge/cold_snap.html b/datum/heretic_knowledge/cold_snap.html new file mode 100644 index 0000000000000..303dbcd77ae88 --- /dev/null +++ b/datum/heretic_knowledge/cold_snap.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/cold_snap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cold_snap

Vars

gain_traitsTraits we apply to become immune to the environment

Procs

check_environmentChecks if our traits should be active

Var Details

gain_traits

Traits we apply to become immune to the environment

Proc Details

check_environment

Checks if our traits should be active

\ No newline at end of file diff --git a/datum/heretic_knowledge/cosmic_grasp.html b/datum/heretic_knowledge/cosmic_grasp.html new file mode 100644 index 0000000000000..06fa6e9eb2423 --- /dev/null +++ b/datum/heretic_knowledge/cosmic_grasp.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/cosmic_grasp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cosmic_grasp

Procs

on_mansus_graspAplies the effect of the mansus grasp when it hits a target.

Proc Details

on_mansus_grasp

Aplies the effect of the mansus grasp when it hits a target.

\ No newline at end of file diff --git a/datum/heretic_knowledge/curse.html b/datum/heretic_knowledge/curse.html new file mode 100644 index 0000000000000..5f3629175c245 --- /dev/null +++ b/datum/heretic_knowledge/curse.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/curse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

curse

A knowledge subtype lets the heretic curse someone with a ritual.

Vars

blood_samplesA list of all the blood samples that were found on our atoms, in our last go at the ritual
curse_colorWhat color do we outline cursed folk with?
durationThe duration of the curse
duration_modifierThe duration of the curse on people which have a fingerprint or blood sample present
fingerprintsA list of all the fingerprints that were found on our atoms, in our last go at the ritual
max_rangeHow far can we curse people?

Procs

curseCalls a curse onto [chosen_mob].
uncurseRemoves a curse from [chosen_mob]. Used in timers / callbacks.

Var Details

blood_samples

A list of all the blood samples that were found on our atoms, in our last go at the ritual

curse_color

What color do we outline cursed folk with?

duration

The duration of the curse

duration_modifier

The duration of the curse on people which have a fingerprint or blood sample present

fingerprints

A list of all the fingerprints that were found on our atoms, in our last go at the ritual

max_range

How far can we curse people?

Proc Details

curse

Calls a curse onto [chosen_mob].

uncurse

Removes a curse from [chosen_mob]. Used in timers / callbacks.

\ No newline at end of file diff --git a/datum/heretic_knowledge/duel_stance.html b/datum/heretic_knowledge/duel_stance.html new file mode 100644 index 0000000000000..0aaf98c474d62 --- /dev/null +++ b/datum/heretic_knowledge/duel_stance.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/duel_stance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

duel_stance

Vars

in_duelist_stanceWhether we're currently in duelist stance, gaining certain buffs (low health)

Var Details

in_duelist_stance

Whether we're currently in duelist stance, gaining certain buffs (low health)

\ No newline at end of file diff --git a/datum/heretic_knowledge/feast_of_owls.html b/datum/heretic_knowledge/feast_of_owls.html new file mode 100644 index 0000000000000..7cdf445d31c5a --- /dev/null +++ b/datum/heretic_knowledge/feast_of_owls.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/feast_of_owls - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

feast_of_owls

Vars

rewardamount of research points granted

Var Details

reward

amount of research points granted

\ No newline at end of file diff --git a/datum/heretic_knowledge/hunt_and_sacrifice.html b/datum/heretic_knowledge/hunt_and_sacrifice.html new file mode 100644 index 0000000000000..eead227589a95 --- /dev/null +++ b/datum/heretic_knowledge/hunt_and_sacrifice.html @@ -0,0 +1,40 @@ +/datum/heretic_knowledge/hunt_and_sacrifice - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hunt_and_sacrifice

Allows the heretic to sacrifice living heart targets.

Vars

grantable_organsEvil organs we can put in people
heretic_level_generatedWhether we've generated a heretic sacrifice z-level yet, from any heretic.
heretic_mindA weakref to the mind of our heretic.
num_targets_to_generateHow many targets do we generate?
return_timersAn assoc list of [ref] to [timers] - a list of all the timers of people in the shadow realm currently
target_blacklistLazylist of minds that we won't pick as targets.

Procs

after_helgrasp_endsThis proc is called from [proc/after_target_wakes] after the helgrasp runs out in the [sac_target].)
after_return_dead_targetThis proc is called from [proc/return_target] if the target dies in the shadow realm.)
after_return_live_targetThis proc is called from [proc/return_target] if the [sac_target] survives the shadow realm.)
after_target_sleepsThis proc is called from [proc/begin_sacrifice] after the [sac_target] falls asleep), shortly after the sacrifice occurs.
after_target_wakesThis proc is called from [proc/after_target_sleeps] when the [sac_target] should be waking up.)
begin_sacrificeThis proc is called from [proc/sacrifice_process] after the heretic successfully sacrifices [sac_target].)
curse_organsApply a sinister curse to some of the target's organs as an incentive to leave us alone
disembowel_target"Fuck you" proc that gets called if the chain is interrupted at some points. +Disembowels the [sac_target] and brutilizes their body. Throws some gibs around for good measure.
generate_heretic_z_levelGenerate the sacrifice z-level.
obtain_targetsObtain a list of targets for the user to hunt down and sacrifice. +Tries to get four targets (minds) with living human currents.
on_target_deathIf they die in the shadow realm, they lost. Send them back.
on_target_escapeIf they somehow cheese the shadow realm by teleporting out, they are disemboweled and killed.
return_targetThis proc is called from [proc/begin_sacrifice] if the target survived the shadow realm), or COMSIG_LIVING_DEATH if they don't.
sacrifice_processBegin the process of sacrificing the target.

Var Details

grantable_organs

Evil organs we can put in people

heretic_level_generated

Whether we've generated a heretic sacrifice z-level yet, from any heretic.

heretic_mind

A weakref to the mind of our heretic.

num_targets_to_generate

How many targets do we generate?

return_timers

An assoc list of [ref] to [timers] - a list of all the timers of people in the shadow realm currently

target_blacklist

Lazylist of minds that we won't pick as targets.

Proc Details

after_helgrasp_ends

This proc is called from [proc/after_target_wakes] after the helgrasp runs out in the [sac_target].)

+

It gives them a message letting them know it's getting easier and they're almost free.

after_return_dead_target

This proc is called from [proc/return_target] if the target dies in the shadow realm.)

+

After teleporting the target back to the station (dead), +it spawns a special red broken illusion on their spot, for style.

after_return_live_target

This proc is called from [proc/return_target] if the [sac_target] survives the shadow realm.)

+

Gives the sacrifice target some after effects upon ariving back to reality.

after_target_sleeps

This proc is called from [proc/begin_sacrifice] after the [sac_target] falls asleep), shortly after the sacrifice occurs.

+

Teleports the [sac_target] to the heretic room, asleep. +If it fails to teleport, they will be disemboweled and stop the chain.

+

Arguments

+

after_target_wakes

This proc is called from [proc/after_target_sleeps] when the [sac_target] should be waking up.)

+

Begins the survival minigame, featuring the sacrifice targets. +Gives them Helgrasp, throwing cursed hands towards them that they must dodge to survive. +Also gives them a status effect, Unholy Determination, to help them in this endeavor.

+

Then applies some miscellaneous effects.

begin_sacrifice

This proc is called from [proc/sacrifice_process] after the heretic successfully sacrifices [sac_target].)

+

Sets off a chain that sends the person sacrificed to the shadow realm to dodge hands to fight for survival.

+

Arguments

+

curse_organs

Apply a sinister curse to some of the target's organs as an incentive to leave us alone

disembowel_target

"Fuck you" proc that gets called if the chain is interrupted at some points. +Disembowels the [sac_target] and brutilizes their body. Throws some gibs around for good measure.

generate_heretic_z_level

Generate the sacrifice z-level.

obtain_targets

Obtain a list of targets for the user to hunt down and sacrifice. +Tries to get four targets (minds) with living human currents.

+

Returns FALSE if no targets are found, TRUE if the targets list was populated.

on_target_death

If they die in the shadow realm, they lost. Send them back.

on_target_escape

If they somehow cheese the shadow realm by teleporting out, they are disemboweled and killed.

return_target

This proc is called from [proc/begin_sacrifice] if the target survived the shadow realm), or COMSIG_LIVING_DEATH if they don't.

+

Teleports [sac_target] back to a random safe turf on the station (or observer spawn if it fails to find a safe turf). +Also clears their status effects, unregisters any signals associated with the shadow realm, and sends a message +to the heretic who did the sacrificed about whether they survived, and where they ended up.

+

Arguments

+

sacrifice_process

Begin the process of sacrificing the target.

+

Arguments

+
\ No newline at end of file diff --git a/datum/heretic_knowledge/knowledge_ritual.html b/datum/heretic_knowledge/knowledge_ritual.html new file mode 100644 index 0000000000000..3b81a9653b0b7 --- /dev/null +++ b/datum/heretic_knowledge/knowledge_ritual.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/knowledge_ritual - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

knowledge_ritual

A subtype of knowledge that generates random ritual components.

Vars

was_completedWhether we've done the ritual. Only doable once.

Var Details

was_completed

Whether we've done the ritual. Only doable once.

\ No newline at end of file diff --git a/datum/heretic_knowledge/limited_amount.html b/datum/heretic_knowledge/limited_amount.html new file mode 100644 index 0000000000000..4e0f615bc9045 --- /dev/null +++ b/datum/heretic_knowledge/limited_amount.html @@ -0,0 +1,3 @@ +/datum/heretic_knowledge/limited_amount - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

limited_amount

A knowledge subtype for knowledge that can only +have a limited amount of its resulting atoms +created at once.

Vars

created_itemsA list of weakrefs to all items we've created.
limitThe limit to how many items we can create at once.

Var Details

created_items

A list of weakrefs to all items we've created.

limit

The limit to how many items we can create at once.

\ No newline at end of file diff --git a/datum/heretic_knowledge/limited_amount/flesh_ghoul.html b/datum/heretic_knowledge/limited_amount/flesh_ghoul.html new file mode 100644 index 0000000000000..791e12d3c2905 --- /dev/null +++ b/datum/heretic_knowledge/limited_amount/flesh_ghoul.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/limited_amount/flesh_ghoul - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

flesh_ghoul

Procs

apply_to_ghoulCallback for the ghoul status effect - Tracks all of our ghouls and applies effects
make_ghoulMakes [victim] into a ghoul.
remove_from_ghoulCallback for the ghoul status effect - Tracks all of our ghouls and applies effects

Proc Details

apply_to_ghoul

Callback for the ghoul status effect - Tracks all of our ghouls and applies effects

make_ghoul

Makes [victim] into a ghoul.

remove_from_ghoul

Callback for the ghoul status effect - Tracks all of our ghouls and applies effects

\ No newline at end of file diff --git a/datum/heretic_knowledge/limited_amount/flesh_grasp.html b/datum/heretic_knowledge/limited_amount/flesh_grasp.html new file mode 100644 index 0000000000000..fedb305620955 --- /dev/null +++ b/datum/heretic_knowledge/limited_amount/flesh_grasp.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/limited_amount/flesh_grasp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

flesh_grasp

Procs

apply_to_ghoulCallback for the ghoul status effect - Tracking all of our ghouls
make_ghoulMakes [victim] into a ghoul.
remove_from_ghoulCallback for the ghoul status effect - Tracking all of our ghouls

Proc Details

apply_to_ghoul

Callback for the ghoul status effect - Tracking all of our ghouls

make_ghoul

Makes [victim] into a ghoul.

remove_from_ghoul

Callback for the ghoul status effect - Tracking all of our ghouls

\ No newline at end of file diff --git a/datum/heretic_knowledge/limited_amount/risen_corpse.html b/datum/heretic_knowledge/limited_amount/risen_corpse.html new file mode 100644 index 0000000000000..054f94c72a236 --- /dev/null +++ b/datum/heretic_knowledge/limited_amount/risen_corpse.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/limited_amount/risen_corpse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

risen_corpse

Procs

apply_to_risenCallback for the ghoul status effect - what effects are applied to the ghoul.
make_risenMake [victim] into a shattered risen ghoul.
remove_from_risenCallback for the ghoul status effect - cleaning up effects after the ghoul status is removed.

Proc Details

apply_to_risen

Callback for the ghoul status effect - what effects are applied to the ghoul.

make_risen

Make [victim] into a shattered risen ghoul.

remove_from_risen

Callback for the ghoul status effect - cleaning up effects after the ghoul status is removed.

\ No newline at end of file diff --git a/datum/heretic_knowledge/limited_amount/starting.html b/datum/heretic_knowledge/limited_amount/starting.html new file mode 100644 index 0000000000000..6b8e4fcbf7041 --- /dev/null +++ b/datum/heretic_knowledge/limited_amount/starting.html @@ -0,0 +1,4 @@ +/datum/heretic_knowledge/limited_amount/starting - /tg/ Station 13
/tg/ Station 13 - Modules - Types

starting

A knowledge subtype for limited_amount knowledge +used for base knowledge (the ones that make blades)

+

A heretic can only learn one /starting type knowledge, +and their ascension depends on whichever they chose.

\ No newline at end of file diff --git a/datum/heretic_knowledge/limited_amount/starting/base_ash.html b/datum/heretic_knowledge/limited_amount/starting/base_ash.html new file mode 100644 index 0000000000000..50ff9d19096e1 --- /dev/null +++ b/datum/heretic_knowledge/limited_amount/starting/base_ash.html @@ -0,0 +1,26 @@ +/datum/heretic_knowledge/limited_amount/starting/base_ash - /tg/ Station 13
/tg/ Station 13 - Modules - Types

The path of Ash.

Goes as follows:

+

Nightwatcher's Secret +Grasp of Ash +Ashen Passage

+
+

Sidepaths: +Scorching Shark +Ashen Eyes

+
+

Mark of Ash +Ritual of Knowledge +Fire Blast +Mask of Madness

+
+

Sidepaths: +Space Phase +Curse of Paralysis

+
+

Fiery Blade +Nightwatcher's Rebirth

+
+

Sidepaths: +Ashen Ritual +Eldritch Coin

+
+

Ashlord's Rite

\ No newline at end of file diff --git a/datum/heretic_knowledge/limited_amount/starting/base_blade.html b/datum/heretic_knowledge/limited_amount/starting/base_blade.html new file mode 100644 index 0000000000000..b01733a351699 --- /dev/null +++ b/datum/heretic_knowledge/limited_amount/starting/base_blade.html @@ -0,0 +1,30 @@ +/datum/heretic_knowledge/limited_amount/starting/base_blade - /tg/ Station 13
/tg/ Station 13 - Modules - Types

The path of Blades. Stab stab.

Goes as follows:

+

The Cutting Edge +Grasp of the Blade +Dance of the Brand

+
+

Sidepaths: +Shattered Risen +Armorer's Ritual

+
+

Mark of the Blade +Ritual of Knowledge +Realignment

+
+

Sidepaths: +Lionhunter Rifle

+
+

Stance of the Scarred Duelist

+
+

Sidepaths: +Carving Knife +Mawed Crucible

+
+

Swift Blades +Furious Steel

+
+

Sidepaths: +Maid in the Mirror +Rust Charge

+
+

Maelstrom of Silver

\ No newline at end of file diff --git a/datum/heretic_knowledge/limited_amount/starting/base_cosmic.html b/datum/heretic_knowledge/limited_amount/starting/base_cosmic.html new file mode 100644 index 0000000000000..79d038bf2c5be --- /dev/null +++ b/datum/heretic_knowledge/limited_amount/starting/base_cosmic.html @@ -0,0 +1,25 @@ +/datum/heretic_knowledge/limited_amount/starting/base_cosmic - /tg/ Station 13
/tg/ Station 13 - Modules - Types

The path of Cosmos.

Goes as follows:

+

Eternal Gate +Grasp of Cosmos +Cosmic Runes

+
+

Sidepaths: +Priest's Ritual +Scorching Shark

+
+

Mark of Cosmos +Ritual of Knowledge +Star Touch +Star Blast

+
+

Sidepaths: +Curse of Corrosion +Space Phase

+
+

Cosmic Blade +Cosmic Expansion

+
+

Sidepaths: +Eldritch Coin

+
+

Creators's Gift

\ No newline at end of file diff --git a/datum/heretic_knowledge/limited_amount/starting/base_flesh.html b/datum/heretic_knowledge/limited_amount/starting/base_flesh.html new file mode 100644 index 0000000000000..43f5b9a62b0bb --- /dev/null +++ b/datum/heretic_knowledge/limited_amount/starting/base_flesh.html @@ -0,0 +1,25 @@ +/datum/heretic_knowledge/limited_amount/starting/base_flesh - /tg/ Station 13
/tg/ Station 13 - Modules - Types

The path of Flesh.

Goes as follows:

+

Principle of Hunger +Grasp of Flesh +Imperfect Ritual

+
+

Sidepaths: +Void Cloak

+
+

Mark of Flesh +Ritual of Knowledge +Flesh Surgery +Raw Ritual

+
+

Sidepaths: +Blood Siphon +Opening Blast

+
+

Bleeding Steel +Lonely Ritual

+
+

Sidepaths: +Cleave +Aptera Vulnera

+
+

Priest's Final Hymn

\ No newline at end of file diff --git a/datum/heretic_knowledge/limited_amount/starting/base_knock.html b/datum/heretic_knowledge/limited_amount/starting/base_knock.html new file mode 100644 index 0000000000000..cb38760fcab70 --- /dev/null +++ b/datum/heretic_knowledge/limited_amount/starting/base_knock.html @@ -0,0 +1,23 @@ +/datum/heretic_knowledge/limited_amount/starting/base_knock - /tg/ Station 13
/tg/ Station 13 - Modules - Types

The path of Lock.

Goes as follows:

+

A Steward's Secret +Grasp of Lock +Key Keeper’s Burden

+
+

Sidepaths: +Mindgate +Concierge's Rite +Mark Of Lock +Ritual of Knowledge +Burglar's Finesse +Sidepaths: +Opening Blast +Unfathomable Curio +Unsealed arts

+
+

Opening Blade +Caretaker’s Last Refuge

+
+

Sidepaths: +Apetra Vulnera

+
+

Unlock the Labyrinth

\ No newline at end of file diff --git a/datum/heretic_knowledge/limited_amount/starting/base_moon.html b/datum/heretic_knowledge/limited_amount/starting/base_moon.html new file mode 100644 index 0000000000000..7bdaa59ff08c8 --- /dev/null +++ b/datum/heretic_knowledge/limited_amount/starting/base_moon.html @@ -0,0 +1,26 @@ +/datum/heretic_knowledge/limited_amount/starting/base_moon - /tg/ Station 13
/tg/ Station 13 - Modules - Types

The path of Moon.

Goes as follows:

+

Moonlight Troupe +Grasp of Lunacy +Smile of the moon

+
+

Sidepaths: +Mind Gate +Ashen Eyes

+
+

Mark of Moon +Ritual of Knowledge +Lunar Parade +Moonlight Amulet

+
+

Sidepaths: +Curse of Paralasys +Unfathomable Curio +Unsealed Arts

+
+

Moonlight blade +Ringleaders Rise

+
+

Sidepaths: +Ashen Ritual

+
+

Last Act

\ No newline at end of file diff --git a/datum/heretic_knowledge/limited_amount/starting/base_rust.html b/datum/heretic_knowledge/limited_amount/starting/base_rust.html new file mode 100644 index 0000000000000..77510d3ecaf07 --- /dev/null +++ b/datum/heretic_knowledge/limited_amount/starting/base_rust.html @@ -0,0 +1,30 @@ +/datum/heretic_knowledge/limited_amount/starting/base_rust - /tg/ Station 13
/tg/ Station 13 - Modules - Types

The path of Rust.

Goes as follows:

+

Blacksmith's Tale +Grasp of Rust +Leeching Walk

+
+

Sidepaths: +Priest's Ritual +Armorer's Ritual

+
+

Mark of Rust +Ritual of Knowledge +Rust Construction

+
+

Sidepaths: +Lionhunter Rifle

+
+

Aggressive Spread

+
+

Sidepaths: +Curse of Corrosion +Mawed Crucible

+
+

Toxic Blade +Entropic Plume

+
+

Sidepaths: +Rusted Ritual +Rust Charge

+
+

Rustbringer's Oath

\ No newline at end of file diff --git a/datum/heretic_knowledge/limited_amount/starting/base_void.html b/datum/heretic_knowledge/limited_amount/starting/base_void.html new file mode 100644 index 0000000000000..3826b294e68c8 --- /dev/null +++ b/datum/heretic_knowledge/limited_amount/starting/base_void.html @@ -0,0 +1,27 @@ +/datum/heretic_knowledge/limited_amount/starting/base_void - /tg/ Station 13
/tg/ Station 13 - Modules - Types

The path of VOID.

Goes as follows:

+

Glimmer of Winter +Grasp of Void +Aristocrat's Way

+
+

Sidepaths: +Void Cloak +Shattered Ritual

+
+

Mark of Void +Ritual of Knowledge +Void Conduit +Void Phase

+
+

Sidepaths: +Void Stasis +Carving Knife +Blood Siphon

+
+

Seeking blade +Void Pull

+
+

Sidepaths: +Cleave +Maid in the Mirror

+
+

Waltz at the End of Time

\ No newline at end of file diff --git a/datum/heretic_knowledge/living_heart.html b/datum/heretic_knowledge/living_heart.html new file mode 100644 index 0000000000000..959ada750f8eb --- /dev/null +++ b/datum/heretic_knowledge/living_heart.html @@ -0,0 +1,3 @@ +/datum/heretic_knowledge/living_heart - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

living_heart

The Living Heart heretic knowledge.

+

Gives the heretic a living heart. +Also includes a ritual to turn their heart into a living heart.

Vars

required_organ_typeThe typepath of the organ type required for our heart.

Procs

is_valid_heartChecks if the passed heart is a valid heart to become a living heart

Var Details

required_organ_type

The typepath of the organ type required for our heart.

Proc Details

is_valid_heart

Checks if the passed heart is a valid heart to become a living heart

\ No newline at end of file diff --git a/datum/heretic_knowledge/mark.html b/datum/heretic_knowledge/mark.html new file mode 100644 index 0000000000000..e6815cb052020 --- /dev/null +++ b/datum/heretic_knowledge/mark.html @@ -0,0 +1,11 @@ +/datum/heretic_knowledge/mark - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mark

A knowledge subtype for heretic knowledge +that applies a mark on use.

+

A heretic can only learn one /mark type knowledge.

Vars

mark_typeThe status effect typepath we apply on people on mansus grasp.

Procs

create_markCreates the mark status effect on our target. +This proc handles the instatiate and the application of the station effect, +and returns the /datum/status_effect instance that was made.
on_eldritch_bladeSignal proc for COMSIG_HERETIC_BLADE_ATTACK.
on_mansus_graspSignal proc for COMSIG_HERETIC_MANSUS_GRASP_ATTACK.
trigger_markHandles triggering the mark on the target.

Var Details

mark_type

The status effect typepath we apply on people on mansus grasp.

Proc Details

create_mark

Creates the mark status effect on our target. +This proc handles the instatiate and the application of the station effect, +and returns the /datum/status_effect instance that was made.

+

Can be overriden to set or pass in additional vars of the status effect.

on_eldritch_blade

Signal proc for COMSIG_HERETIC_BLADE_ATTACK.

+

Whenever we attack someone with our blade, attempt to trigger any marks on them.

on_mansus_grasp

Signal proc for COMSIG_HERETIC_MANSUS_GRASP_ATTACK.

+

Whenever we cast mansus grasp on someone, apply our mark.

trigger_mark

Handles triggering the mark on the target.

+

If there is no mark, returns FALSE. Returns TRUE if a mark was triggered.

\ No newline at end of file diff --git a/datum/heretic_knowledge/rifle_ammo.html b/datum/heretic_knowledge/rifle_ammo.html new file mode 100644 index 0000000000000..1ed0dcbdef2fc --- /dev/null +++ b/datum/heretic_knowledge/rifle_ammo.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/rifle_ammo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rifle_ammo

Vars

caliber_blacklistA list of calibers that the ritual will deny. Only ballistic calibers are allowed.

Var Details

caliber_blacklist

A list of calibers that the ritual will deny. Only ballistic calibers are allowed.

\ No newline at end of file diff --git a/datum/heretic_knowledge/spell.html b/datum/heretic_knowledge/spell.html new file mode 100644 index 0000000000000..5aad34514070f --- /dev/null +++ b/datum/heretic_knowledge/spell.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/spell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spell

A knowledge subtype that grants the heretic a certain spell.

Vars

created_spell_refThe spell we actually created.
spell_to_addSpell path we add to the heretic. Type-path.

Var Details

created_spell_ref

The spell we actually created.

spell_to_add

Spell path we add to the heretic. Type-path.

\ No newline at end of file diff --git a/datum/heretic_knowledge/summon.html b/datum/heretic_knowledge/summon.html new file mode 100644 index 0000000000000..f5635c8c2833e --- /dev/null +++ b/datum/heretic_knowledge/summon.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/summon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

summon

A knowledge subtype lets the heretic summon a monster with the ritual.

Vars

mob_to_summonTypepath of a mob to summon when we finish the recipe.

Var Details

mob_to_summon

Typepath of a mob to summon when we finish the recipe.

\ No newline at end of file diff --git a/datum/heretic_knowledge/ultimate.html b/datum/heretic_knowledge/ultimate.html new file mode 100644 index 0000000000000..88c48c7010a5f --- /dev/null +++ b/datum/heretic_knowledge/ultimate.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/ultimate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ultimate

The special final tier of knowledges that unlocks ASCENSION.

Procs

is_valid_sacrificeChecks if the passed human is a valid sacrifice for our ritual.

Proc Details

is_valid_sacrifice

Checks if the passed human is a valid sacrifice for our ritual.

\ No newline at end of file diff --git a/datum/heretic_knowledge/ultimate/ash_final.html b/datum/heretic_knowledge/ultimate/ash_final.html new file mode 100644 index 0000000000000..0e5766a4efc6c --- /dev/null +++ b/datum/heretic_knowledge/ultimate/ash_final.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/ultimate/ash_final - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ash_final

Vars

traits_to_applyA static list of all traits we apply on ascension.

Var Details

traits_to_apply

A static list of all traits we apply on ascension.

\ No newline at end of file diff --git a/datum/heretic_knowledge/ultimate/cosmic_final.html b/datum/heretic_knowledge/ultimate/cosmic_final.html new file mode 100644 index 0000000000000..390c2e5f32320 --- /dev/null +++ b/datum/heretic_knowledge/ultimate/cosmic_final.html @@ -0,0 +1 @@ +/datum/heretic_knowledge/ultimate/cosmic_final - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cosmic_final

Vars

star_gazer_commandsA static list of command we can use with our mob.

Var Details

star_gazer_commands

A static list of command we can use with our mob.

\ No newline at end of file diff --git a/datum/heretic_knowledge/ultimate/rust_final.html b/datum/heretic_knowledge/ultimate/rust_final.html new file mode 100644 index 0000000000000..ab67101d26239 --- /dev/null +++ b/datum/heretic_knowledge/ultimate/rust_final.html @@ -0,0 +1,3 @@ +/datum/heretic_knowledge/ultimate/rust_final - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

rust_final

Vars

conditional_immunitiesA static list of traits we give to the heretic when on rust.
immunities_activeIf TRUE, then immunities are currently active.
ritual_locationA typepath to an area that we must finish the ritual in.

Procs

on_lifeSignal proc for COMSIG_LIVING_LIFE.
on_moveSignal proc for COMSIG_MOVABLE_MOVED.

Var Details

conditional_immunities

A static list of traits we give to the heretic when on rust.

immunities_active

If TRUE, then immunities are currently active.

ritual_location

A typepath to an area that we must finish the ritual in.

Proc Details

on_life

Signal proc for COMSIG_LIVING_LIFE.

+

Gradually heals the heretic ([source]) on rust.

on_move

Signal proc for COMSIG_MOVABLE_MOVED.

+

Gives our heretic ([source]) buffs if they stand on rust.

\ No newline at end of file diff --git a/datum/heretic_knowledge/ultimate/void_final.html b/datum/heretic_knowledge/ultimate/void_final.html new file mode 100644 index 0000000000000..8e4cd53488fcf --- /dev/null +++ b/datum/heretic_knowledge/ultimate/void_final.html @@ -0,0 +1,5 @@ +/datum/heretic_knowledge/ultimate/void_final - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

void_final

Vars

heavy_stormThe storm where there are actual effects
sound_loopsoundloop for the void theme
stormReference to the ongoing voidstrom that surrounds the heretic

Procs

can_deflectFew checks to determine if we can deflect bullets
on_deathSignal proc for COMSIG_LIVING_DEATH.
on_lifeSignal proc for COMSIG_LIVING_LIFE.

Var Details

heavy_storm

The storm where there are actual effects

sound_loop

soundloop for the void theme

storm

Reference to the ongoing voidstrom that surrounds the heretic

Proc Details

can_deflect

Few checks to determine if we can deflect bullets

on_death

Signal proc for COMSIG_LIVING_DEATH.

+

Stop the storm when the heretic passes away.

on_life

Signal proc for COMSIG_LIVING_LIFE.

+

Any non-heretics nearby the heretic ([source]) +are constantly silenced and battered by the storm.

+

Also starts storms in any area that doesn't have one.

\ No newline at end of file diff --git a/datum/hfr_fuel.html b/datum/hfr_fuel.html new file mode 100644 index 0000000000000..6c147d7d99658 --- /dev/null +++ b/datum/hfr_fuel.html @@ -0,0 +1 @@ +/datum/hfr_fuel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hfr_fuel

Vars

energy_concentration_multiplierMultiplier for the energy released (min 0.01)
fuel_consumption_multiplierMultiplier for the fuel consumption (min 0.01)
gas_production_multiplierMultiplier for the gas production (min 0.01)
idId for the mix
meltdown_flagsFlags to decide what behaviour the meltdown will have depending on the fuel mix used
nameThe gases that are going to be used as fuel ("GasX + GasY fuel")
negative_temperature_multiplierMultiplier for the minimum heat output of the HFR (min 0.01)
positive_temperature_multiplierMultiplier for the maximum heat output of the HFR (min 0.01)
primary_productsGases that gets produced directly in the internal gasmix
requirementsThese are the main fuels, only 2 gases that are the ones being consumed by the fusion reaction (eg. H2 and trit)
secondary_productsGases that gets produced in the moderator gasmix or directly ejected (must be 6 gases), the order indicate at what power level the gases are going to be made (from power level 1 to 6)
temperature_change_multiplierMax allowed temperature multiplier, scales the max temperature we can hit, see FUSION_MAXIMUM_TEMPERATURE (Maxed at 1, don't go getting any ideas)

Var Details

energy_concentration_multiplier

Multiplier for the energy released (min 0.01)

fuel_consumption_multiplier

Multiplier for the fuel consumption (min 0.01)

gas_production_multiplier

Multiplier for the gas production (min 0.01)

id

Id for the mix

meltdown_flags

Flags to decide what behaviour the meltdown will have depending on the fuel mix used

name

The gases that are going to be used as fuel ("GasX + GasY fuel")

negative_temperature_multiplier

Multiplier for the minimum heat output of the HFR (min 0.01)

positive_temperature_multiplier

Multiplier for the maximum heat output of the HFR (min 0.01)

primary_products

Gases that gets produced directly in the internal gasmix

requirements

These are the main fuels, only 2 gases that are the ones being consumed by the fusion reaction (eg. H2 and trit)

secondary_products

Gases that gets produced in the moderator gasmix or directly ejected (must be 6 gases), the order indicate at what power level the gases are going to be made (from power level 1 to 6)

temperature_change_multiplier

Max allowed temperature multiplier, scales the max temperature we can hit, see FUSION_MAXIMUM_TEMPERATURE (Maxed at 1, don't go getting any ideas)

\ No newline at end of file diff --git a/datum/highlander_controller.html b/datum/highlander_controller.html new file mode 100644 index 0000000000000..c6f7a3864a737 --- /dev/null +++ b/datum/highlander_controller.html @@ -0,0 +1,16 @@ +/datum/highlander_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

highlander_controller

The highlander controller handles the admin highlander mode, if enabled. +It is first created when "there can only be one" triggers it, and it can be referenced from GLOB.highlander_controller

Procs

new_highlanderTriggers at beginning of the game when there is a confirmed list of valid, ready players. +Creates a 100% ready game that has NOT started (no players in bodies) +Followed by start game

Proc Details

new_highlander

Triggers at beginning of the game when there is a confirmed list of valid, ready players. +Creates a 100% ready game that has NOT started (no players in bodies) +Followed by start game

+

Does the following:

+
\ No newline at end of file diff --git a/datum/holiday.html b/datum/holiday.html new file mode 100644 index 0000000000000..cb4456904f8f9 --- /dev/null +++ b/datum/holiday.html @@ -0,0 +1 @@ +/datum/holiday - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

holiday

Vars

always_celebratefor christmas neverending, or testing. Forces a holiday to be celebrated.
begin_dayWhat day of begin_month does the holiday begin on?
begin_monthWhat month does the holiday begin on?
current_yearHeld variable to better calculate when certain holidays may fall on, like easter.
end_dayWhat day of end_month does the holiday end? Default of 0 means the holiday lasts a single.
end_monthWhat month does the holiday end on?
holiday_colorsColor scheme for this holiday
holiday_hatIf this is defined, drones/assistants without a default hat will spawn with this item in their head clothing slot.
holiday_patternThe default pattern of the holiday, if the requested pattern is null.
mail_holidayWhen this holiday is active, does this prevent mail from arriving to cargo? Try not to use this for longer holidays.
nameName of the holiday itself. Visible to players.
timezonesTimezones this holiday is celebrated in (defaults to three timezones spanning a 50 hour window covering all timezones)
year_offsetHow many years are you offsetting your calculations for begin_day and end_day on. Used for holidays like easter.

Procs

get_holiday_colorsProcs to return holiday themed colors for recoloring atoms

Var Details

always_celebrate

for christmas neverending, or testing. Forces a holiday to be celebrated.

begin_day

What day of begin_month does the holiday begin on?

begin_month

What month does the holiday begin on?

current_year

Held variable to better calculate when certain holidays may fall on, like easter.

end_day

What day of end_month does the holiday end? Default of 0 means the holiday lasts a single.

end_month

What month does the holiday end on?

holiday_colors

Color scheme for this holiday

holiday_hat

If this is defined, drones/assistants without a default hat will spawn with this item in their head clothing slot.

holiday_pattern

The default pattern of the holiday, if the requested pattern is null.

mail_holiday

When this holiday is active, does this prevent mail from arriving to cargo? Try not to use this for longer holidays.

name

Name of the holiday itself. Visible to players.

timezones

Timezones this holiday is celebrated in (defaults to three timezones spanning a 50 hour window covering all timezones)

year_offset

How many years are you offsetting your calculations for begin_day and end_day on. Used for holidays like easter.

Proc Details

get_holiday_colors

Procs to return holiday themed colors for recoloring atoms

\ No newline at end of file diff --git a/datum/holiday/nth_week.html b/datum/holiday/nth_week.html new file mode 100644 index 0000000000000..0c42f0e4ea87d --- /dev/null +++ b/datum/holiday/nth_week.html @@ -0,0 +1 @@ +/datum/holiday/nth_week - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nth_week

A holiday lasting one day only that falls on the nth weekday in a month i.e. 3rd Wednesday of February.

Vars

begin_weekNth weekday of type begin_weekday in begin_month to start on (1 to 5).
begin_weekdayWeekday of begin_week to start on.
end_weekNth weekday of type end_weekday in end_month to end on (1 to 5, defaults to begin_week).
end_weekdayWeekday of end_week to end on (defaults to begin_weekday).

Var Details

begin_week

Nth weekday of type begin_weekday in begin_month to start on (1 to 5).

begin_weekday

Weekday of begin_week to start on.

end_week

Nth weekday of type end_weekday in end_month to end on (1 to 5, defaults to begin_week).

end_weekday

Weekday of end_week to end on (defaults to begin_weekday).

\ No newline at end of file diff --git a/datum/holocall.html b/datum/holocall.html new file mode 100644 index 0000000000000..97b8893b2090f --- /dev/null +++ b/datum/holocall.html @@ -0,0 +1 @@ +/datum/holocall - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

holocall

Vars

calling_holopadthe holopad that sent the call to another holopad
connected_holopadthe one that answered the call (may be null)
dialed_holopadspopulated with all holopads that are either being dialed or have that have answered us, will be cleared out to just connected_holopad once answered
eyeuser's eye, once connected
hanguphangup action
head_callcalls from a head of staff autoconnect, if the receiving pad is not secure.
hologramuser's hologram, once connected
userthe one that called

Procs

AnswerAnswers a call made to answering_holopad which cannot be the calling holopad. Pads not in the call are ignored

Var Details

calling_holopad

the holopad that sent the call to another holopad

connected_holopad

the one that answered the call (may be null)

dialed_holopads

populated with all holopads that are either being dialed or have that have answered us, will be cleared out to just connected_holopad once answered

eye

user's eye, once connected

hangup

hangup action

head_call

calls from a head of staff autoconnect, if the receiving pad is not secure.

hologram

user's hologram, once connected

user

the one that called

Proc Details

Answer

Answers a call made to answering_holopad which cannot be the calling holopad. Pads not in the call are ignored

\ No newline at end of file diff --git a/datum/hook_and_move.html b/datum/hook_and_move.html new file mode 100644 index 0000000000000..a303097faefda --- /dev/null +++ b/datum/hook_and_move.html @@ -0,0 +1,6 @@ +/datum/hook_and_move - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hook_and_move

Lightweight datum that just handles moving a target for the hook. +For the love of God, do not use this outside this file.

Vars

destination_refWeakref of the destination that the victim is heading towards.
firer_refWeakref to the firer of the hook
firer_ref_stringString to the REF() of the dude that fired us so we can ensure we always cleanup our traits
knockdown_timeHow long we knockdown the victim for.
last_movementThe last time our movement fired.
prevent_movement_traitsList of traits that prevent the user from moving. More restrictive than attempting to fire the hook by design.
return_chainThe chain beam we currently own.
steps_per_tickHow many steps we force the victim to take per tick
victim_refWeakref to the victim we are dragging

Procs

attempt_movementAttempts to move the victim towards the destination. Returns TRUE if we do a successful movement, FALSE otherwise. +second_attempt is a boolean to prevent infinite recursion. +If this whole series of events wasn't reliant on SSfastprocess firing as fast as it does, it would have been more useful to make this a move loop datum. But, we need the speed.
begin_pullingUses fastprocessing to move our victim to the destination at a rather fast speed.
end_movementCancels processing and removes the trait from the victim.

Var Details

destination_ref

Weakref of the destination that the victim is heading towards.

firer_ref

Weakref to the firer of the hook

firer_ref_string

String to the REF() of the dude that fired us so we can ensure we always cleanup our traits

knockdown_time

How long we knockdown the victim for.

last_movement

The last time our movement fired.

prevent_movement_traits

List of traits that prevent the user from moving. More restrictive than attempting to fire the hook by design.

return_chain

The chain beam we currently own.

steps_per_tick

How many steps we force the victim to take per tick

victim_ref

Weakref to the victim we are dragging

Proc Details

attempt_movement

Attempts to move the victim towards the destination. Returns TRUE if we do a successful movement, FALSE otherwise. +second_attempt is a boolean to prevent infinite recursion. +If this whole series of events wasn't reliant on SSfastprocess firing as fast as it does, it would have been more useful to make this a move loop datum. But, we need the speed.

begin_pulling

Uses fastprocessing to move our victim to the destination at a rather fast speed.

end_movement

Cancels processing and removes the trait from the victim.

\ No newline at end of file diff --git a/datum/http_request.html b/datum/http_request.html new file mode 100644 index 0000000000000..9418e7721642f --- /dev/null +++ b/datum/http_request.html @@ -0,0 +1 @@ +/datum/http_request - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

http_request

Vars

output_fileIf present response body will be saved to this file.

Var Details

output_file

If present response body will be saved to this file.

\ No newline at end of file diff --git a/datum/hud.html b/datum/hud.html new file mode 100644 index 0000000000000..6909060d39c42 --- /dev/null +++ b/datum/hud.html @@ -0,0 +1,31 @@ +/datum/hud - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hud

Vars

always_visible_inventoryScreen objects that never exit view.
atmos_debug_overlaysIf this client is being shown atmos debug overlays or not
current_plane_offsetThink of multiz as a stack of z levels. Each index in that stack has its own group of plane masters +This variable is the plane offset our mob/client is currently "on" +We use it to track what we should show/not show +Goes from 0 to the max (z level stack size - 1)
master_groupsAssoc list of key => "plane master groups" +This is normally just the main window, but it'll occasionally contain things like spyglasses windows
plane_master_controllersAssoc list of controller groups, associated with key string group name with value of the plane master controller ref
screentip_colorThe color to use for the screentips. +This is updated by the preference for cheaper reads than would be +had with a proc call, especially on one of the hottest procs in the +game (MouseEntered).
screentip_imagesWhether to use text or images for click hints. +Same behavior as screentips_enabled--very hot, updated when the preference is updated.
screentip_textUI for screentips that appear when you mouse over things
screentips_enabledWhether or not screentips are enabled. +This is updated by the preference for cheaper reads than would be +had with a proc call, especially on one of the hottest procs in the +game (MouseEntered).

Procs

build_action_groupsGenerates and fills new action groups with our mob's current actions
build_plane_groupsCreates the required plane masters to fill out new z layers (because each "level" of multiz gets its own plane master set)
generate_landingsGenerates visual landings for all groups that the button is not a memeber of
get_action_buttons_iconsThis is a silly proc used in hud code code to determine what icon and icon state we should be using +for hud elements (such as action buttons) that don't have their own icon and icon state set.
get_plane_groupReturns the corresponding plane group datum if one exists
get_plane_masterReturns the plane master that matches the input plane from the passed in group
get_planes_fromReturns all the planes belonging to the passed in group key
get_true_plane_mastersReturns a list of all plane masters that match the input true plane, drawn from the passed in group (ignores z layer offsets)
get_ui_alert_placementGets the placement for the alert based on its index
hide_actionRemoves the passed in action from its current position on the screen
hide_landingsClears all currently visible landings
show_hudShows this hud's hud to some mob
view_audit_buttonsEnsures all of our buttons are properly within the bounds of our client's view, moves them if they're not

Var Details

always_visible_inventory

Screen objects that never exit view.

atmos_debug_overlays

If this client is being shown atmos debug overlays or not

current_plane_offset

Think of multiz as a stack of z levels. Each index in that stack has its own group of plane masters +This variable is the plane offset our mob/client is currently "on" +We use it to track what we should show/not show +Goes from 0 to the max (z level stack size - 1)

master_groups

Assoc list of key => "plane master groups" +This is normally just the main window, but it'll occasionally contain things like spyglasses windows

plane_master_controllers

Assoc list of controller groups, associated with key string group name with value of the plane master controller ref

screentip_color

The color to use for the screentips. +This is updated by the preference for cheaper reads than would be +had with a proc call, especially on one of the hottest procs in the +game (MouseEntered).

screentip_images

Whether to use text or images for click hints. +Same behavior as screentips_enabled--very hot, updated when the preference is updated.

screentip_text

UI for screentips that appear when you mouse over things

screentips_enabled

Whether or not screentips are enabled. +This is updated by the preference for cheaper reads than would be +had with a proc call, especially on one of the hottest procs in the +game (MouseEntered).

Proc Details

build_action_groups

Generates and fills new action groups with our mob's current actions

build_plane_groups

Creates the required plane masters to fill out new z layers (because each "level" of multiz gets its own plane master set)

generate_landings

Generates visual landings for all groups that the button is not a memeber of

get_action_buttons_icons

This is a silly proc used in hud code code to determine what icon and icon state we should be using +for hud elements (such as action buttons) that don't have their own icon and icon state set.

+

It returns a list, which is pretty much just a struct of info

get_plane_group

Returns the corresponding plane group datum if one exists

get_plane_master

Returns the plane master that matches the input plane from the passed in group

get_planes_from

Returns all the planes belonging to the passed in group key

get_true_plane_masters

Returns a list of all plane masters that match the input true plane, drawn from the passed in group (ignores z layer offsets)

get_ui_alert_placement

Gets the placement for the alert based on its index

hide_action

Removes the passed in action from its current position on the screen

hide_landings

Clears all currently visible landings

show_hud

Shows this hud's hud to some mob

+

Arguments

+

view_audit_buttons

Ensures all of our buttons are properly within the bounds of our client's view, moves them if they're not

\ No newline at end of file diff --git a/datum/hud/borer.html b/datum/hud/borer.html new file mode 100644 index 0000000000000..a6ae51dd4d0b8 --- /dev/null +++ b/datum/hud/borer.html @@ -0,0 +1 @@ +/datum/hud/borer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

borer

Procs

NewHud type with targetting dol and a nutrition bar

Proc Details

New

Hud type with targetting dol and a nutrition bar

\ No newline at end of file diff --git a/datum/hud/ooze.html b/datum/hud/ooze.html new file mode 100644 index 0000000000000..b22b179848297 --- /dev/null +++ b/datum/hud/ooze.html @@ -0,0 +1 @@ +/datum/hud/ooze - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ooze

Procs

NewHud type with targeting dol and a nutrition bar

Proc Details

New

Hud type with targeting dol and a nutrition bar

\ No newline at end of file diff --git a/datum/human_appearance_profile.html b/datum/human_appearance_profile.html new file mode 100644 index 0000000000000..6b91c4331fb77 --- /dev/null +++ b/datum/human_appearance_profile.html @@ -0,0 +1 @@ +/datum/human_appearance_profile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

human_appearance_profile

Store of data we use to recreate someone who was gibbed, like a simplified version of changeling profiles

Vars

ageThe age of the profile source.
dnaThe DNA datum associated with our profile from the profile source
hair_gradient_coloursThe hair and facial hair gradient colours of the profile source.
hair_gradient_styleThe hair and facial hair gradient styles of the profile source.
nameThe name of the profile / the name of whoever this profile source.
physiqueThe body type of the profile source.
quirksThe quirks of the profile source.
voiceThe TTS voice of the profile source
voice_filterThe TTS filter of the profile filter

Procs

apply_toMake the targeted human look like this
copy_fromCopy the appearance data of the target

Var Details

age

The age of the profile source.

dna

The DNA datum associated with our profile from the profile source

hair_gradient_colours

The hair and facial hair gradient colours of the profile source.

hair_gradient_style

The hair and facial hair gradient styles of the profile source.

name

The name of the profile / the name of whoever this profile source.

physique

The body type of the profile source.

quirks

The quirks of the profile source.

voice

The TTS voice of the profile source

voice_filter

The TTS filter of the profile filter

Proc Details

apply_to

Make the targeted human look like this

copy_from

Copy the appearance data of the target

\ No newline at end of file diff --git a/datum/ice_cream_flavour.html b/datum/ice_cream_flavour.html new file mode 100644 index 0000000000000..e36ac68e903fe --- /dev/null +++ b/datum/ice_cream_flavour.html @@ -0,0 +1 @@ +/datum/ice_cream_flavour - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ice_cream_flavour

Vars

colorThe colour of the ice cream for non-custom flavours.
hiddenIs this flavour shown in the ice cream vat menu or not?
ingredientsThe ingredients required to produce a unit with the ice cream vat, these are multiplied by 3.
ingredients_textThe same as above, but in a readable text generated on New() that can also contain fluff ingredients such as "lot of love" or "optional flavorings".
nameMake sure the same name is not found on other types; These are singletons keyed by their name after all.
reagent_amountthe amount of reagent added in 'add_flavour()'
reagent_typethe reagent added in 'add_flavour()'
takes_custom_ingredientsWhether this type of ice cream will take custom ingredients from a beaker in the ice cream vat.

Procs

add_flavourAdds a new flavour to the ice cream cone.

Var Details

color

The colour of the ice cream for non-custom flavours.

hidden

Is this flavour shown in the ice cream vat menu or not?

ingredients

The ingredients required to produce a unit with the ice cream vat, these are multiplied by 3.

ingredients_text

The same as above, but in a readable text generated on New() that can also contain fluff ingredients such as "lot of love" or "optional flavorings".

name

Make sure the same name is not found on other types; These are singletons keyed by their name after all.

reagent_amount

the amount of reagent added in 'add_flavour()'

reagent_type

the reagent added in 'add_flavour()'

takes_custom_ingredients

Whether this type of ice cream will take custom ingredients from a beaker in the ice cream vat.

Proc Details

add_flavour

Adds a new flavour to the ice cream cone.

\ No newline at end of file diff --git a/datum/id_trim.html b/datum/id_trim.html new file mode 100644 index 0000000000000..3be5f09480889 --- /dev/null +++ b/datum/id_trim.html @@ -0,0 +1 @@ +/datum/id_trim - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

id_trim

Simple datum that holds the basic information associated with an ID card trim.

Vars

accessAccesses that this trim unlocks on a card it is imprinted on. These accesses never take wildcard slots and can be added and removed at will.
assignmentJob/assignment associated with this trim. Can be transferred to ID cards holding this trim.
big_pointerIf true, IDs with this trim will grant wearers with bigger arrows when pointing
department_colorDepartment color for this trim. Displayed in the box under the trim_state.
department_stateDepartment icon state, for differentiating between heads and normal crew and other use cases.
intern_alt_nameThe name of the job for interns. If unset it will default to "[assignment] (Intern)".
pointer_colorIf set, IDs with this trim will give wearers arrows of different colors when pointing
sechud_icon_stateThe icon_state associated with this trim, as it will show on the security HUD.
subdepartment_colorSubdepartment color for this trim. Displayed as a bar under the trim_state and department_color.
threat_modifierHow threatened does a security bot feel when scanning this ID? A negative value may cause them to forgive things which would otherwise cause aggro.
trim_iconIcon file for this trim.
trim_stateIcon state for this trim. Overlayed on advanced ID cards.
wildcard_accessAccesses that this trim unlocks on a card that require wildcard slots to apply. If a card cannot accept all a trim's wildcard accesses, the card is incompatible with the trim.

Var Details

access

Accesses that this trim unlocks on a card it is imprinted on. These accesses never take wildcard slots and can be added and removed at will.

assignment

Job/assignment associated with this trim. Can be transferred to ID cards holding this trim.

big_pointer

If true, IDs with this trim will grant wearers with bigger arrows when pointing

department_color

Department color for this trim. Displayed in the box under the trim_state.

department_state

Department icon state, for differentiating between heads and normal crew and other use cases.

intern_alt_name

The name of the job for interns. If unset it will default to "[assignment] (Intern)".

pointer_color

If set, IDs with this trim will give wearers arrows of different colors when pointing

sechud_icon_state

The icon_state associated with this trim, as it will show on the security HUD.

subdepartment_color

Subdepartment color for this trim. Displayed as a bar under the trim_state and department_color.

threat_modifier

How threatened does a security bot feel when scanning this ID? A negative value may cause them to forgive things which would otherwise cause aggro.

trim_icon

Icon file for this trim.

trim_state

Icon state for this trim. Overlayed on advanced ID cards.

wildcard_access

Accesses that this trim unlocks on a card that require wildcard slots to apply. If a card cannot accept all a trim's wildcard accesses, the card is incompatible with the trim.

\ No newline at end of file diff --git a/datum/id_trim/job.html b/datum/id_trim/job.html new file mode 100644 index 0000000000000..41b4de24a29d9 --- /dev/null +++ b/datum/id_trim/job.html @@ -0,0 +1,4 @@ +/datum/id_trim/job - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

job

This file contains all the trims associated with station jobs. +It also contains special prisoner trims and the miner's spare ID trim. +ID Trims for station jobs.

Vars

extra_accessThe extra access the card should have when CONFIG_GET(flag/jobs_have_minimal_access) is FALSE.
extra_wildcard_accessThe extra wildcard_access the card should have when CONFIG_GET(flag/jobs_have_minimal_access) is FALSE.
jobThe typepath to the job datum from the id_trim. This is converted to one of the job singletons in New().
job_changesStatic list. Cache of any mapping config job changes.
minimal_accessThe base access the card should have when CONFIG_GET(flag/jobs_have_minimal_access) is TRUE.
minimal_wildcard_accessThe base wildcard_access the card should have when CONFIG_GET(flag/jobs_have_minimal_access) is TRUE.
template_accessAn ID card with an access in this list can apply this trim to IDs or use it as a job template when adding access to a card. If the list is null, cannot be used as a template. Should be Head of Staff or ID Console accesses or it may do nothing.

Procs

refresh_trim_accessGoes through various non-map config settings and modifies the trim's access based on this.

Var Details

extra_access

The extra access the card should have when CONFIG_GET(flag/jobs_have_minimal_access) is FALSE.

extra_wildcard_access

The extra wildcard_access the card should have when CONFIG_GET(flag/jobs_have_minimal_access) is FALSE.

job

The typepath to the job datum from the id_trim. This is converted to one of the job singletons in New().

job_changes

Static list. Cache of any mapping config job changes.

minimal_access

The base access the card should have when CONFIG_GET(flag/jobs_have_minimal_access) is TRUE.

minimal_wildcard_access

The base wildcard_access the card should have when CONFIG_GET(flag/jobs_have_minimal_access) is TRUE.

template_access

An ID card with an access in this list can apply this trim to IDs or use it as a job template when adding access to a card. If the list is null, cannot be used as a template. Should be Head of Staff or ID Console accesses or it may do nothing.

Proc Details

refresh_trim_access

Goes through various non-map config settings and modifies the trim's access based on this.

+

Returns TRUE if the config is loaded, FALSE otherwise.

\ No newline at end of file diff --git a/datum/id_trim/job/captain.html b/datum/id_trim/job/captain.html new file mode 100644 index 0000000000000..ead31a0bb7160 --- /dev/null +++ b/datum/id_trim/job/captain.html @@ -0,0 +1 @@ +/datum/id_trim/job/captain - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

captain

Procs

NewCaptain gets all station accesses hardcoded in because it's the Captain.

Proc Details

New

Captain gets all station accesses hardcoded in because it's the Captain.

\ No newline at end of file diff --git a/datum/id_trim/job/security_officer.html b/datum/id_trim/job/security_officer.html new file mode 100644 index 0000000000000..d91624720e85c --- /dev/null +++ b/datum/id_trim/job/security_officer.html @@ -0,0 +1 @@ +/datum/id_trim/job/security_officer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

security_officer

Sec officers have departmental variants. They each have their own trims with bonus departmental accesses.

Vars

department_accessList of bonus departmental accesses that departmental sec officers get by default.
elevated_accessList of bonus departmental accesses that departmental security officers can in relation to how many overall security officers there are if the scaling system is set up. These can otherwise be granted via config settings.

Var Details

department_access

List of bonus departmental accesses that departmental sec officers get by default.

elevated_access

List of bonus departmental accesses that departmental security officers can in relation to how many overall security officers there are if the scaling system is set up. These can otherwise be granted via config settings.

\ No newline at end of file diff --git a/datum/idle_behavior/idle_dog.html b/datum/idle_behavior/idle_dog.html new file mode 100644 index 0000000000000..e724c3a6b2157 --- /dev/null +++ b/datum/idle_behavior/idle_dog.html @@ -0,0 +1 @@ +/datum/idle_behavior/idle_dog - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

idle_dog

Procs

perform_idle_behaviorDog specific idle behavior.

Proc Details

perform_idle_behavior

Dog specific idle behavior.

\ No newline at end of file diff --git a/datum/idle_behavior/idle_dog/chadian.html b/datum/idle_behavior/idle_dog/chadian.html new file mode 100644 index 0000000000000..75cb70850ff70 --- /dev/null +++ b/datum/idle_behavior/idle_dog/chadian.html @@ -0,0 +1 @@ +/datum/idle_behavior/idle_dog/chadian - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

chadian

Procs

perform_idle_behaviorActual idle behavior that adds chad ian emotes

Proc Details

perform_idle_behavior

Actual idle behavior that adds chad ian emotes

\ No newline at end of file diff --git a/datum/idle_behavior/idle_ghost_item.html b/datum/idle_behavior/idle_ghost_item.html new file mode 100644 index 0000000000000..138a4d0535bcc --- /dev/null +++ b/datum/idle_behavior/idle_ghost_item.html @@ -0,0 +1 @@ +/datum/idle_behavior/idle_ghost_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

idle_ghost_item

If not held, teleport somewhere else

Vars

teleport_chanceChance for item to teleport somewhere else

Var Details

teleport_chance

Chance for item to teleport somewhere else

\ No newline at end of file diff --git a/datum/idle_behavior/idle_monkey.html b/datum/idle_behavior/idle_monkey.html new file mode 100644 index 0000000000000..8d682ce5f1f36 --- /dev/null +++ b/datum/idle_behavior/idle_monkey.html @@ -0,0 +1 @@ +/datum/idle_behavior/idle_monkey - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

idle_monkey

Vars

common_emotesEmotes that will be played commonly during idle behavior.
rare_emotesEmotes that will be played rarely during idle behavior.

Var Details

common_emotes

Emotes that will be played commonly during idle behavior.

rare_emotes

Emotes that will be played rarely during idle behavior.

\ No newline at end of file diff --git a/datum/idle_behavior/idle_random_walk.html b/datum/idle_behavior/idle_random_walk.html new file mode 100644 index 0000000000000..9b88186fce1d3 --- /dev/null +++ b/datum/idle_behavior/idle_random_walk.html @@ -0,0 +1 @@ +/datum/idle_behavior/idle_random_walk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

idle_random_walk

Vars

walk_chanceChance that the mob random walks per second

Var Details

walk_chance

Chance that the mob random walks per second

\ No newline at end of file diff --git a/datum/idle_behavior/idle_random_walk/no_target.html b/datum/idle_behavior/idle_random_walk/no_target.html new file mode 100644 index 0000000000000..3e72d64cb0ca0 --- /dev/null +++ b/datum/idle_behavior/idle_random_walk/no_target.html @@ -0,0 +1 @@ +/datum/idle_behavior/idle_random_walk/no_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

no_target

Only walk if we don't have a target

Vars

target_keyWhere do we look for a target?

Var Details

target_key

Where do we look for a target?

\ No newline at end of file diff --git a/datum/idle_behavior/idle_random_walk/not_while_on_target.html b/datum/idle_behavior/idle_random_walk/not_while_on_target.html new file mode 100644 index 0000000000000..efb96fcd89ed5 --- /dev/null +++ b/datum/idle_behavior/idle_random_walk/not_while_on_target.html @@ -0,0 +1 @@ +/datum/idle_behavior/idle_random_walk/not_while_on_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

not_while_on_target

Only walk if we are not on the target's location

Vars

target_keyWhat is the spot we have to stand on?

Var Details

target_key

What is the spot we have to stand on?

\ No newline at end of file diff --git a/datum/idle_behavior/idle_random_walk/parrot.html b/datum/idle_behavior/idle_random_walk/parrot.html new file mode 100644 index 0000000000000..5e77e661edbf9 --- /dev/null +++ b/datum/idle_behavior/idle_random_walk/parrot.html @@ -0,0 +1 @@ +/datum/idle_behavior/idle_random_walk/parrot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

parrot

Vars

walk_chance_when_perchedchance of us moving while perched

Var Details

walk_chance_when_perched

chance of us moving while perched

\ No newline at end of file diff --git a/datum/idle_behavior/walk_near_target.html b/datum/idle_behavior/walk_near_target.html new file mode 100644 index 0000000000000..c784ca90c5b42 --- /dev/null +++ b/datum/idle_behavior/walk_near_target.html @@ -0,0 +1 @@ +/datum/idle_behavior/walk_near_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

walk_near_target

walk randomly however stick near a target

Vars

minimum_distancedistance we are to target
target_keykey that holds target
walk_chancechance to walk

Var Details

minimum_distance

distance we are to target

target_key

key that holds target

walk_chance

chance to walk

\ No newline at end of file diff --git a/datum/infuser_entry.html b/datum/infuser_entry.html new file mode 100644 index 0000000000000..b882050430c8a --- /dev/null +++ b/datum/infuser_entry.html @@ -0,0 +1,5 @@ +/datum/infuser_entry - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

infuser_entry

Vars

descgeneral desc
infuse_mob_namewhat you have to infuse to become it
infusion_descmessage the target gets while being infused
input_obj_or_mobList of objects, mobs, and/or items, the machine will infuse to make output organs. +Rejected creatures, of course, are anything not covered by other recipes. This is a special case
namename of the mutant you become
output_organsList of organs that the machine could spit out in relation
qualitiesList of personal attributes added by the mutation.
status_effect_typestatus effect type of the corresponding bonus, if it has one. tier zero won't ever set this.
threshold_descdesc of what passing the threshold gets you. if this is empty, there is no threshold, so this is also really a tally of whether this is a "meme" mutant or not
tieressentially how difficult it is to get this infusion, and if it will be locked behind some progression. see defines for more info +...overwrite this, please

Var Details

desc

general desc

infuse_mob_name

what you have to infuse to become it

infusion_desc

message the target gets while being infused

input_obj_or_mob

List of objects, mobs, and/or items, the machine will infuse to make output organs. +Rejected creatures, of course, are anything not covered by other recipes. This is a special case

name

name of the mutant you become

output_organs

List of organs that the machine could spit out in relation

qualities

List of personal attributes added by the mutation.

status_effect_type

status effect type of the corresponding bonus, if it has one. tier zero won't ever set this.

threshold_desc

desc of what passing the threshold gets you. if this is empty, there is no threshold, so this is also really a tally of whether this is a "meme" mutant or not

tier

essentially how difficult it is to get this infusion, and if it will be locked behind some progression. see defines for more info +...overwrite this, please

\ No newline at end of file diff --git a/datum/instability_meltdown.html b/datum/instability_meltdown.html new file mode 100644 index 0000000000000..e51246d1eb9d3 --- /dev/null +++ b/datum/instability_meltdown.html @@ -0,0 +1 @@ +/datum/instability_meltdown - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

instability_meltdown

A possible genetic meltdown that occurs when someone exceeds 100 genetic instability

Vars

abstract_typeUsed to ensure that abstract subtypes do not get picked
fatalIf this meltdown is considered "fatal" or not
meltdown_weightHow likely a meltdown is to be picked

Procs

meltdownCode that runs when this meltdown is picked

Var Details

abstract_type

Used to ensure that abstract subtypes do not get picked

fatal

If this meltdown is considered "fatal" or not

meltdown_weight

How likely a meltdown is to be picked

Proc Details

meltdown

Code that runs when this meltdown is picked

\ No newline at end of file diff --git a/datum/instrument.html b/datum/instrument.html new file mode 100644 index 0000000000000..62311350c1fe6 --- /dev/null +++ b/datum/instrument.html @@ -0,0 +1,5 @@ +/datum/instrument - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Instrument Datums

Instrument datums hold the data for any given instrument, as well as data on how to play it and what bounds there are to playing it.

+

The datums themselves are kept in SSinstruments in a list by their unique ID. The reason it uses ID instead of typepath is to support the runtime creation of instruments. +Since songs cache them while playing, there isn't realistic issues regarding performance from accessing.

Vars

HIGHEST_KEYDon't touch this
LOWEST_KEYDon't touch this x2
abstract_typeUsed for categorization subtypes
admin_onlyOh no - For truly troll instruments.
categoryCategory
idUniquely identifies this instrument so runtime changes are possible as opposed to paths. If this is unset, things will use path instead.
instrument_flagsSee __DEFINES/flags/instruments.dm
legacy_instrument_extFor legacy instruments, our file extension
legacy_instrument_pathFor legacy instruments, the path to our notes
nameName of the instrument
real_samplesWrite here however many samples, follow this syntax: "%note num%"='%sample file%' eg. "27"='synthesizer/e2.ogg'. Key must never be lower than 0 and higher than 127
samplesassoc list key = /datum/instrument_key. do not fill this yourself!
songs_usingWhat songs are using us
volume_multiplierVolume multiplier. Synthesized instruments are quite loud and I don't like to cut off potential detail via editing. (someone correct me if this isn't a thing)

Procs

InitializeInitializes the instrument, calculating its samples if necessary.
calculate_samplesFor synthesized instruments, this is how the instrument generates the "keys" that a /datum/song uses to play notes. +Calculating them on the fly would be unperformant, so we do it during init and keep it all cached in a list.
readyChecks if this instrument is ready to play.

Var Details

HIGHEST_KEY

Don't touch this

LOWEST_KEY

Don't touch this x2

abstract_type

Used for categorization subtypes

admin_only

Oh no - For truly troll instruments.

category

Category

id

Uniquely identifies this instrument so runtime changes are possible as opposed to paths. If this is unset, things will use path instead.

instrument_flags

See __DEFINES/flags/instruments.dm

legacy_instrument_ext

For legacy instruments, our file extension

legacy_instrument_path

For legacy instruments, the path to our notes

name

Name of the instrument

real_samples

Write here however many samples, follow this syntax: "%note num%"='%sample file%' eg. "27"='synthesizer/e2.ogg'. Key must never be lower than 0 and higher than 127

samples

assoc list key = /datum/instrument_key. do not fill this yourself!

songs_using

What songs are using us

volume_multiplier

Volume multiplier. Synthesized instruments are quite loud and I don't like to cut off potential detail via editing. (someone correct me if this isn't a thing)

Proc Details

Initialize

Initializes the instrument, calculating its samples if necessary.

calculate_samples

For synthesized instruments, this is how the instrument generates the "keys" that a /datum/song uses to play notes. +Calculating them on the fly would be unperformant, so we do it during init and keep it all cached in a list.

ready

Checks if this instrument is ready to play.

\ No newline at end of file diff --git a/datum/instrument_key.html b/datum/instrument_key.html new file mode 100644 index 0000000000000..52abe6f403509 --- /dev/null +++ b/datum/instrument_key.html @@ -0,0 +1,2 @@ +/datum/instrument_key - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

instrument_key

Instrument key datums contain everything needed to know how to play a specific +note of an instrument.*

Vars

deviationDeviation up/down from the pivot point that uses its sample. Used to calculate frequency.
frequencyThe frequency to play the sample to get our desired note.
keyThe numerical key of what this is, from 1 to 127 on a standard piano keyboard.
sampleThe actual sample file that will be loaded when playing.

Procs

calculateCalculates and stores our deviation.

Var Details

deviation

Deviation up/down from the pivot point that uses its sample. Used to calculate frequency.

frequency

The frequency to play the sample to get our desired note.

key

The numerical key of what this is, from 1 to 127 on a standard piano keyboard.

sample

The actual sample file that will be loaded when playing.

Proc Details

calculate

Calculates and stores our deviation.

\ No newline at end of file diff --git a/datum/interaction.html b/datum/interaction.html new file mode 100644 index 0000000000000..e8ee4be12d308 --- /dev/null +++ b/datum/interaction.html @@ -0,0 +1 @@ +/datum/interaction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

interaction

Vars

categoryWhat category this interaction will fall under in the menu.
colorWhat color should the interaction button be?
descriptionThe description of the interacton.
distance_allowedIf it can be done at a distance.
interaction_requiresWhat requirements does this interaction have? See defines.
lewdIs this lewd?
messageA list of possible messages displayed loaded by the JSON.
nameThe name to be displayed in the interaction menu for this interaction
sexualityWhat sexuality preference do we display for.
sound_cacheStores the sound for later.
sound_possibleA list of possible sounds.
sound_rangeIf it plays a sound, how far does it travel?
sound_useDoes this interaction play a sound?
target_arousalThe amount of arousal the target receives from this interaction.
target_messagesA list of possible messages displayed directly to the TARGET.
target_painThe amount of pain the target receives.
target_pleasureThe amount of pleasure the target receives from this interaciton.
target_required_partsWhat parts do they need(IMPORTANT TO GET IT TO THE CORRECT DEFINE, ORGAN SLOT)?
usageDefines how we interact with ourselves or others.
user_arousalThe amount of arousal the user receives.
user_messagesA list of possible messages displayed directly to the USER.
user_painThe amount of pain the user receives.
user_pleasureThe amount of pleasure the user receives.
user_required_partsWhat parts do WE need(IMPORTANT TO GET IT TO THE CORRECT DEFINE, ORGAN SLOT)?

Var Details

category

What category this interaction will fall under in the menu.

color

What color should the interaction button be?

description

The description of the interacton.

distance_allowed

If it can be done at a distance.

interaction_requires

What requirements does this interaction have? See defines.

lewd

Is this lewd?

message

A list of possible messages displayed loaded by the JSON.

name

The name to be displayed in the interaction menu for this interaction

sexuality

What sexuality preference do we display for.

sound_cache

Stores the sound for later.

sound_possible

A list of possible sounds.

sound_range

If it plays a sound, how far does it travel?

sound_use

Does this interaction play a sound?

target_arousal

The amount of arousal the target receives from this interaction.

target_messages

A list of possible messages displayed directly to the TARGET.

target_pain

The amount of pain the target receives.

target_pleasure

The amount of pleasure the target receives from this interaciton.

target_required_parts

What parts do they need(IMPORTANT TO GET IT TO THE CORRECT DEFINE, ORGAN SLOT)?

usage

Defines how we interact with ourselves or others.

user_arousal

The amount of arousal the user receives.

user_messages

A list of possible messages displayed directly to the USER.

user_pain

The amount of pain the user receives.

user_pleasure

The amount of pleasure the user receives.

user_required_parts

What parts do WE need(IMPORTANT TO GET IT TO THE CORRECT DEFINE, ORGAN SLOT)?

\ No newline at end of file diff --git a/datum/interview.html b/datum/interview.html new file mode 100644 index 0000000000000..b35008f608610 --- /dev/null +++ b/datum/interview.html @@ -0,0 +1,15 @@ +/datum/interview - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

interview

Represents a new-player interview form

+

Represents a new-player interview form, enabled by configuration to require +players with low playtime to request access to the server. To do so, they will +out a brief questionnaire, and are otherwise unable to do anything while they +wait for a response.

Vars

atomic_idAtomic ID for incrementing unique IDs
idUnique ID of the interview
ownerThe /client who owns this interview, the intiator
owner_ckeyThe Ckey of the owner, used for when a client could disconnect
pos_in_queueInteger that contains the current position in the interview queue, used for rendering
questionsThe questions to display on the questionnaire of the interview
read_onlyBoolean operator controlling if the questionnaire's contents can be edited
responsesThe stored responses, will be filled as the questionnaire is answered
statusContains the state of the form, used for rendering and sanity checking
welcome_messageThe welcome message shown at the top of the interview panel

Procs

approveApproves the interview, forces reconnect of owner if relevant.
denyDenies the interview and adds the owner to the cooldown for new interviews.
link_selfGenerates a clickable link to open this interview
reconnect_ownerForces client to reconnect, used in the callback from approval

Var Details

atomic_id

Atomic ID for incrementing unique IDs

id

Unique ID of the interview

owner

The /client who owns this interview, the intiator

owner_ckey

The Ckey of the owner, used for when a client could disconnect

pos_in_queue

Integer that contains the current position in the interview queue, used for rendering

questions

The questions to display on the questionnaire of the interview

read_only

Boolean operator controlling if the questionnaire's contents can be edited

responses

The stored responses, will be filled as the questionnaire is answered

status

Contains the state of the form, used for rendering and sanity checking

welcome_message

The welcome message shown at the top of the interview panel

Proc Details

approve

Approves the interview, forces reconnect of owner if relevant.

+

Approves the interview, and if relevant will force the owner to reconnect so that they have the proper +verbs returned to them. +Arguments:

+

deny

Denies the interview and adds the owner to the cooldown for new interviews.

+

Arguments:

+

Generates a clickable link to open this interview

reconnect_owner

Forces client to reconnect, used in the callback from approval

\ No newline at end of file diff --git a/datum/interview_manager.html b/datum/interview_manager.html new file mode 100644 index 0000000000000..b3ed282f965d5 --- /dev/null +++ b/datum/interview_manager.html @@ -0,0 +1,48 @@ +/datum/interview_manager - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Interview Manager

Handles all interviews in the duration of a round, includes the primary functionality for +handling the interview queue.

Vars

approved_ckeysCkeys which are allowed to bypass the time-based allowlist
closed_interviewsAll closed interviews
cooldown_ckeysCkeys which are currently in the cooldown system, they will be unable to create new interviews
interview_queueThe queue of interviews to be processed (submitted interviews)
open_interviewsThe interviews that are currently "open", those that are not submitted as well as those that are waiting review

Procs

client_loginUsed in the new client pipeline to catch when clients are reconnecting and need to have their +reference re-assigned to the 'owner' variable of an interview
client_logoutUsed in the destroy client pipeline to catch when clients are disconnecting and need to have their +reference nulled on the 'owner' variable of an interview
close_interviewCloses an interview, removing it from the queued interviews as well as adding it to the closed +interviews list.
dequeueDequeues the first interview from the interview queue, and updates the queue positions of any relevant +interviews that follow it.
dequeue_specificDequeues an interview from the interview queue if present, and updates the queue positions of +any relevant interviews that follow it.
enqueueEnqueues an interview in the interview queue, and notifies admins of the new interview to be +reviewed.
interview_by_idAttempts to return an interview for a provided ID, will return null if no matching interview is found
interview_for_clientAttempts to return an interview for a given client, using an existing interview if found, otherwise +a new interview is created; if the user is on cooldown then it will return null.
release_from_cooldownRemoves a ckey from the cooldown list, used for enforcing cooldown after an interview is denied.

Var Details

approved_ckeys

Ckeys which are allowed to bypass the time-based allowlist

closed_interviews

All closed interviews

cooldown_ckeys

Ckeys which are currently in the cooldown system, they will be unable to create new interviews

interview_queue

The queue of interviews to be processed (submitted interviews)

open_interviews

The interviews that are currently "open", those that are not submitted as well as those that are waiting review

Proc Details

client_login

Used in the new client pipeline to catch when clients are reconnecting and need to have their +reference re-assigned to the 'owner' variable of an interview

+

Arguments:

+

client_logout

Used in the destroy client pipeline to catch when clients are disconnecting and need to have their +reference nulled on the 'owner' variable of an interview

+

Arguments:

+

close_interview

Closes an interview, removing it from the queued interviews as well as adding it to the closed +interviews list.

+

Arguments:

+

dequeue

Dequeues the first interview from the interview queue, and updates the queue positions of any relevant +interviews that follow it.

dequeue_specific

Dequeues an interview from the interview queue if present, and updates the queue positions of +any relevant interviews that follow it.

+

Arguments:

+

enqueue

Enqueues an interview in the interview queue, and notifies admins of the new interview to be +reviewed.

+

Arguments:

+

interview_by_id

Attempts to return an interview for a provided ID, will return null if no matching interview is found

+

Arguments:

+

interview_for_client

Attempts to return an interview for a given client, using an existing interview if found, otherwise +a new interview is created; if the user is on cooldown then it will return null.

+

Arguments:

+

release_from_cooldown

Removes a ckey from the cooldown list, used for enforcing cooldown after an interview is denied.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/ip_intel.html b/datum/ip_intel.html new file mode 100644 index 0000000000000..4940730026b4a --- /dev/null +++ b/datum/ip_intel.html @@ -0,0 +1 @@ +/datum/ip_intel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ip_intel

The ip intel for a given address

Vars

query_statusIf this intel was just queried, the status of the query

Var Details

query_status

If this intel was just queried, the status of the query

\ No newline at end of file diff --git a/datum/job.html b/datum/job.html new file mode 100644 index 0000000000000..14cb38bee0526 --- /dev/null +++ b/datum/job.html @@ -0,0 +1,27 @@ +/datum/job - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

job

This is the file you should use to add alternate titles for each job, just +follow the way they're done here, it's easy enough and shouldn't take any +time at all to add more or add some for a job that doesn't have any.

Vars

akula_outfitThe job's outfit that will be assigned for Akula
allow_bureaucratic_errorShould this job be allowed to be picked for the bureaucratic error event?
alt_titlesThe list of alternative job titles people can pick from, null by default.
alternate_titlesAlternate titles to register as pointing to this job.
antagonist_restrictedDo we allow this job to be an antag of any kind?
auto_deadmin_role_flagsBitflags for the job
banned_augmentsList of banned augments
blacklist_dresscode_slotsA list of slots that can't have loadout items assigned to them if no_dresscode is applied, used for important items such as ID, PDA, backpack and headset
bounty_typesWhat types of bounty tasks can this job receive past the default?
can_be_internWhether the ID of the job can be tagged as an intern at all
config_tagString key to track any variables we want to tie to this job in config, so we can avoid using the job title. We CAPITALIZE it in order to ensure it's unique and resistant to trivial formatting changes. +You'll probably break someone's config if you change this, so it's best to not to.
current_positionsHow many players have this job
department_for_prefsIf specified, this department will be used for the preferences menu.
department_headDetermines who can demote this position
departments_bitflagsBitfield of departments this job belongs to. These get setup when adding the job into the department, on job datum creation.
departments_listLazy list with the departments this job belongs to. +Required to be set for playable jobs. +The first department will be used in the preferences menu, +unless department_for_prefs is set.
descriptionThe description of the job, used for preferences menu. +Keep it short and useful. Avoid in-jokes, these are for new players.
exclusive_mail_goodiesIf this job's mail goodies compete with generic goodies.
exp_granted_typeExperience type granted by playing in this job.
exp_required_typeExperience required to play this job, if the config is enabled, and exp_required_type_department is not enabled with the proper config.
exp_required_type_departmentDepartment experience required to play this job, if the config is enabled.
exp_requirementsMinutes of experience-time required to play in this job. The type is determined by [exp_required_type] and [exp_required_type_department] depending on configs.
factionPlayers will be allowed to spawn in as jobs that are set to "Station"
family_heirloomsList of family heirlooms this job can get with the family heirloom quirk. List of types.
head_announceTells the given channels that the given mob is the new department head. See communications.dm for valid channels.
ignore_human_authorityDoes this job ignore human authority?
internship_use_self_exp_typeWhether the job uses its own EXP to define the internship status
job_flagsAll values = (JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN | JOB_CANNOT_OPEN_SLOTS | JOB_HEAD_OF_STAFF)
job_spawn_titleJob title to use for spawning. Allows a job to spawn without needing map edits.
job_tonecustom ringtone for this job
liver_traitsLazylist of traits added to the liver of the mob assigned this job (used for the classic "cops heal from donuts" reaction, among others)
mail_goodiesGoodies that can be received via the mail system. +Keep the _job definition for this empty and use /obj/item/mail to define general gifts.
mind_traitsTraits added to the mind of the mob assigned this job
minimal_player_ageIf you have the use_age_restriction_for_jobs config option enabled and the database set up, this option will add a requirement for players to be at least minimal_player_age days old. (meaning they first signed in at least that many days before.)
minimal_skillsInnate skill levels unlocked at roundstart. Based on config.jobs_have_minimal_access config setting, for example with a full crew. Format is list(/datum/skill/foo = SKILL_EXP_NOVICE) with exp as an integer or as per code/_DEFINES/skills.dm
no_dresscodeWith this set to TRUE, the loadout will be applied before a job clothing will be
paycheckHow much money does this crew member make in a single paycheck? Note that passive paychecks are capped to PAYCHECK_CREW in regular gameplay after roundstart.
paycheck_departmentWhich department does this paycheck pay from?
plasmaman_outfitThe job's outfit that will be assigned for plasmamen.
policy_indexString. If set to a non-empty one, it will be the key for the policy text value to show this role on spawn.
random_spawns_possibleIs this job affected by weird spawns like the ones from station traits
req_admin_notifyIf this is set to 1, a text is printed to the player when jobs are assigned, telling him that he should let admins know that he has to disconnect.
required_character_ageMinimal character age for this job
required_languagesWhich languages does the job require, associative to UNDERSTOOD_LANGUAGE or (UNDERSTOOD_LANGUAGE | SPOKEN_LANGUAGE)
restricted_antagonistsIf we restrict this job from antagonists, what antags? Leave blank for all antags.
rpg_titleRPG job names, for the memes
skillsInnate skill levels unlocked at roundstart. Based on config.jobs_have_minimal_access config setting, for example with a skeleton crew. Format is list(/datum/skill/foo = SKILL_EXP_NOVICE) with exp as an integer or as per code/_DEFINES/skills.dm
spawn_positionsHow many players can spawn in as this job
spawn_typeWhat kind of mob type joining players with this job as their assigned role are spawned as.
supervisorsSupervisors, who this person answers to directly
titleThe name of the job , used for preferences, bans and more. Make sure you know what you're doing before changing this.
total_positionsHow many players can be this job
veteran_onlyIs this job veteran only? If so, then this job requires the player to be in the veteran_players.txt
voice_of_god_powerMultiplier for general usage of the voice of god.
voice_of_god_silence_powerMultiplier for the silence command of the voice of god.
vox_outfitThe job's outfit that will be assigned for Vox

Procs

after_latejoin_spawnCalled after a successful latejoin spawn. +Client is in the mob. +This happens after after_spawn()
after_roundstart_spawnCalled after a successful roundstart spawn. +Client is not yet in the mob. +This happens after after_spawn()
after_spawnExecutes after the mob has been spawned in the map. Client might not be yet in the mob, and is thus a separate variable.
announce_jobAnnounce that this job as joined the round to all crew members. +Note the joining mob has no client at this point.
get_default_roundstart_spawn_pointHandles finding and picking a valid roundstart effect landmark spawn point, in case no uncommon different spawning events occur.
get_highest_priority_departmentReturns the highest priority department this job belongs to
get_intern_exp_typeReturns the type of intern exp used
get_intern_time_thresholdReturns the amount of time required to not be intern
get_latejoin_spawn_pointFinds a valid latejoin spawn point, checking for events and special conditions.
get_mail_goodiesAn overridable getter for more dynamic goodies.
get_outfitReturn the outfit to use
get_radio_informationReturns information pertaining to this job's radio.
get_roundstart_spawn_pointReturns an atom where the mob should spawn in.
get_spawn_messageGets the message that shows up when spawning as this job
get_spawn_message_informationReturns a list of strings that correspond to chat messages sent to this mob when they join the round.
get_spawn_mobSpawns the mob to be played as, taking into account preferences and the desired spawn point.
map_check
player_joins_as_internReturns whether a player should be tagged as an intern in this job

Var Details

akula_outfit

The job's outfit that will be assigned for Akula

allow_bureaucratic_error

Should this job be allowed to be picked for the bureaucratic error event?

alt_titles

The list of alternative job titles people can pick from, null by default.

alternate_titles

Alternate titles to register as pointing to this job.

antagonist_restricted

Do we allow this job to be an antag of any kind?

auto_deadmin_role_flags

Bitflags for the job

banned_augments

List of banned augments

blacklist_dresscode_slots

A list of slots that can't have loadout items assigned to them if no_dresscode is applied, used for important items such as ID, PDA, backpack and headset

bounty_types

What types of bounty tasks can this job receive past the default?

can_be_intern

Whether the ID of the job can be tagged as an intern at all

config_tag

String key to track any variables we want to tie to this job in config, so we can avoid using the job title. We CAPITALIZE it in order to ensure it's unique and resistant to trivial formatting changes. +You'll probably break someone's config if you change this, so it's best to not to.

current_positions

How many players have this job

department_for_prefs

If specified, this department will be used for the preferences menu.

department_head

Determines who can demote this position

departments_bitflags

Bitfield of departments this job belongs to. These get setup when adding the job into the department, on job datum creation.

departments_list

Lazy list with the departments this job belongs to. +Required to be set for playable jobs. +The first department will be used in the preferences menu, +unless department_for_prefs is set.

description

The description of the job, used for preferences menu. +Keep it short and useful. Avoid in-jokes, these are for new players.

exclusive_mail_goodies

If this job's mail goodies compete with generic goodies.

exp_granted_type

Experience type granted by playing in this job.

exp_required_type

Experience required to play this job, if the config is enabled, and exp_required_type_department is not enabled with the proper config.

exp_required_type_department

Department experience required to play this job, if the config is enabled.

exp_requirements

Minutes of experience-time required to play in this job. The type is determined by [exp_required_type] and [exp_required_type_department] depending on configs.

faction

Players will be allowed to spawn in as jobs that are set to "Station"

family_heirlooms

List of family heirlooms this job can get with the family heirloom quirk. List of types.

head_announce

Tells the given channels that the given mob is the new department head. See communications.dm for valid channels.

ignore_human_authority

Does this job ignore human authority?

internship_use_self_exp_type

Whether the job uses its own EXP to define the internship status

job_flags

All values = (JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN | JOB_CANNOT_OPEN_SLOTS | JOB_HEAD_OF_STAFF)

job_spawn_title

Job title to use for spawning. Allows a job to spawn without needing map edits.

job_tone

custom ringtone for this job

liver_traits

Lazylist of traits added to the liver of the mob assigned this job (used for the classic "cops heal from donuts" reaction, among others)

mail_goodies

Goodies that can be received via the mail system. +Keep the _job definition for this empty and use /obj/item/mail to define general gifts.

mind_traits

Traits added to the mind of the mob assigned this job

minimal_player_age

If you have the use_age_restriction_for_jobs config option enabled and the database set up, this option will add a requirement for players to be at least minimal_player_age days old. (meaning they first signed in at least that many days before.)

minimal_skills

Innate skill levels unlocked at roundstart. Based on config.jobs_have_minimal_access config setting, for example with a full crew. Format is list(/datum/skill/foo = SKILL_EXP_NOVICE) with exp as an integer or as per code/_DEFINES/skills.dm

no_dresscode

With this set to TRUE, the loadout will be applied before a job clothing will be

paycheck

How much money does this crew member make in a single paycheck? Note that passive paychecks are capped to PAYCHECK_CREW in regular gameplay after roundstart.

paycheck_department

Which department does this paycheck pay from?

plasmaman_outfit

The job's outfit that will be assigned for plasmamen.

policy_index

String. If set to a non-empty one, it will be the key for the policy text value to show this role on spawn.

random_spawns_possible

Is this job affected by weird spawns like the ones from station traits

req_admin_notify

If this is set to 1, a text is printed to the player when jobs are assigned, telling him that he should let admins know that he has to disconnect.

required_character_age

Minimal character age for this job

required_languages

Which languages does the job require, associative to UNDERSTOOD_LANGUAGE or (UNDERSTOOD_LANGUAGE | SPOKEN_LANGUAGE)

restricted_antagonists

If we restrict this job from antagonists, what antags? Leave blank for all antags.

rpg_title

RPG job names, for the memes

skills

Innate skill levels unlocked at roundstart. Based on config.jobs_have_minimal_access config setting, for example with a skeleton crew. Format is list(/datum/skill/foo = SKILL_EXP_NOVICE) with exp as an integer or as per code/_DEFINES/skills.dm

spawn_positions

How many players can spawn in as this job

spawn_type

What kind of mob type joining players with this job as their assigned role are spawned as.

supervisors

Supervisors, who this person answers to directly

title

The name of the job , used for preferences, bans and more. Make sure you know what you're doing before changing this.

total_positions

How many players can be this job

veteran_only

Is this job veteran only? If so, then this job requires the player to be in the veteran_players.txt

voice_of_god_power

Multiplier for general usage of the voice of god.

voice_of_god_silence_power

Multiplier for the silence command of the voice of god.

vox_outfit

The job's outfit that will be assigned for Vox

Proc Details

after_latejoin_spawn

Called after a successful latejoin spawn. +Client is in the mob. +This happens after after_spawn()

after_roundstart_spawn

Called after a successful roundstart spawn. +Client is not yet in the mob. +This happens after after_spawn()

after_spawn

Executes after the mob has been spawned in the map. Client might not be yet in the mob, and is thus a separate variable.

announce_job

Announce that this job as joined the round to all crew members. +Note the joining mob has no client at this point.

get_default_roundstart_spawn_point

Handles finding and picking a valid roundstart effect landmark spawn point, in case no uncommon different spawning events occur.

get_highest_priority_department

Returns the highest priority department this job belongs to

get_intern_exp_type

Returns the type of intern exp used

get_intern_time_threshold

Returns the amount of time required to not be intern

get_latejoin_spawn_point

Finds a valid latejoin spawn point, checking for events and special conditions.

get_mail_goodies

An overridable getter for more dynamic goodies.

get_outfit

Return the outfit to use

get_radio_information

Returns information pertaining to this job's radio.

get_roundstart_spawn_point

Returns an atom where the mob should spawn in.

get_spawn_message

Gets the message that shows up when spawning as this job

get_spawn_message_information

Returns a list of strings that correspond to chat messages sent to this mob when they join the round.

get_spawn_mob

Spawns the mob to be played as, taking into account preferences and the desired spawn point.

map_check

map_check

+

Checks the map config for job changes +If they have 0 spawn and total positions in the config, the job is entirely removed from occupations prefs for the round.

player_joins_as_intern

Returns whether a player should be tagged as an intern in this job

\ No newline at end of file diff --git a/datum/job/nanotrasen_consultant.html b/datum/job/nanotrasen_consultant.html new file mode 100644 index 0000000000000..b0b5788b94942 --- /dev/null +++ b/datum/job/nanotrasen_consultant.html @@ -0,0 +1,4 @@ +/datum/job/nanotrasen_consultant - /tg/ Station 13
/tg/ Station 13 - Modules - Types

nanotrasen_consultant

Job antagonist restriction file

+

Add relative restrictions to any jobs that you wish to prevent from being +an antagonist. If you set antagonist_restricted to true without setting restricted_antagonist, +then the job will be restricted from all antagonists.

\ No newline at end of file diff --git a/datum/job/security_officer.html b/datum/job/security_officer.html new file mode 100644 index 0000000000000..66bbe916a1e1f --- /dev/null +++ b/datum/job/security_officer.html @@ -0,0 +1 @@ +/datum/job/security_officer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

security_officer

Procs

setup_departmentReturns the department this mob was assigned to, if any.

Proc Details

setup_department

Returns the department this mob was assigned to, if any.

\ No newline at end of file diff --git a/datum/job_config_type.html b/datum/job_config_type.html new file mode 100644 index 0000000000000..52c4a5548ee00 --- /dev/null +++ b/datum/job_config_type.html @@ -0,0 +1,9 @@ +/datum/job_config_type - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

job_config_type

Lightweight datum simply used to store the applicable config type for each job such that the whole system is a tad bit more flexible.

Vars

datum_var_nameThe name of the variable on the job datum that we will be accessing.
nameThe name that will be used in the config file. This is also the key for the accessing the singleton. +Use the JOB_CONFIG_* defines in __defines/jobs.dm to make sure you don't typo.

Procs

get_current_valueSimply gets the value of the config type for a given job. There can be overrides for special instances on subtypes.
set_current_valueThis is the proc that we actually invoke to set the config-based values for each job. Is also intended to handle all in-depth logic checks pertient to the job datum itself. +Return TRUE if the value was set successfully (or if expected behavior did indeed occur), FALSE if it was not.
validate_valueValidate the value of the config type for a given job. There can be overrides for special instances on subtypes. +Isn't meant for in-depth logic, just bare-bones sanity checks. Like: is this number a number? Is this string a string? Any sanity thing involving a specific job datum goes in set_current_value. +Will return TRUE if the value is valid, FALSE if it is not.

Var Details

datum_var_name

The name of the variable on the job datum that we will be accessing.

name

The name that will be used in the config file. This is also the key for the accessing the singleton. +Use the JOB_CONFIG_* defines in __defines/jobs.dm to make sure you don't typo.

Proc Details

get_current_value

Simply gets the value of the config type for a given job. There can be overrides for special instances on subtypes.

set_current_value

This is the proc that we actually invoke to set the config-based values for each job. Is also intended to handle all in-depth logic checks pertient to the job datum itself. +Return TRUE if the value was set successfully (or if expected behavior did indeed occur), FALSE if it was not.

validate_value

Validate the value of the config type for a given job. There can be overrides for special instances on subtypes. +Isn't meant for in-depth logic, just bare-bones sanity checks. Like: is this number a number? Is this string a string? Any sanity thing involving a specific job datum goes in set_current_value. +Will return TRUE if the value is valid, FALSE if it is not.

\ No newline at end of file diff --git a/datum/job_department.html b/datum/job_department.html new file mode 100644 index 0000000000000..f555860b44be1 --- /dev/null +++ b/datum/job_department.html @@ -0,0 +1,3 @@ +/datum/job_department - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

job_department

Singleton representing a category of jobs forming a department.

Vars

associated_cargo_groupsList of categories in the cargo console that are associated with this department.
department_accessA list of generic access flags people in this department generally have.
department_bitflagsBitflags associated to the specific department.
department_delivery_areasList of /area types that are considered part of this department's "delivery" area. +Acts as a priority system, where first items are picked first.
department_experience_typeExperience granted by playing in a job of this department.
department_headTypepath of the job datum leading this department.
department_jobsJob singleton datums associated to this department. Populated on job initialization.
department_nameDepartment as displayed on different menus.
display_orderThe order in which this department appears on menus, in relation to other departments.
head_of_staff_accessThe single access associated with the head of staff of this department.
label_classThe header color to be displayed in the ban panel, classes defined in banpanel.css
nation_prefixesFor separatists, what independent name prefix does their nation get named?
ui_colorThe color used in TGUI or similar menus.

Procs

add_jobHandles adding jobs to the department and setting up the job bitflags.
generate_nation_nameReturns a nation name for this department.
remove_jobHandles removing jobs from the department and removing job bitflags.

Var Details

associated_cargo_groups

List of categories in the cargo console that are associated with this department.

department_access

A list of generic access flags people in this department generally have.

department_bitflags

Bitflags associated to the specific department.

department_delivery_areas

List of /area types that are considered part of this department's "delivery" area. +Acts as a priority system, where first items are picked first.

department_experience_type

Experience granted by playing in a job of this department.

department_head

Typepath of the job datum leading this department.

department_jobs

Job singleton datums associated to this department. Populated on job initialization.

department_name

Department as displayed on different menus.

display_order

The order in which this department appears on menus, in relation to other departments.

head_of_staff_access

The single access associated with the head of staff of this department.

label_class

The header color to be displayed in the ban panel, classes defined in banpanel.css

nation_prefixes

For separatists, what independent name prefix does their nation get named?

ui_color

The color used in TGUI or similar menus.

Proc Details

add_job

Handles adding jobs to the department and setting up the job bitflags.

generate_nation_name

Returns a nation name for this department.

remove_job

Handles removing jobs from the department and removing job bitflags.

\ No newline at end of file diff --git a/datum/jps_node.html b/datum/jps_node.html new file mode 100644 index 0000000000000..5e33d9d3bf438 --- /dev/null +++ b/datum/jps_node.html @@ -0,0 +1 @@ +/datum/jps_node - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

jps_node

The JPS Node datum represents a turf that we find interesting enough to add to the open list and possibly search for new tiles from

Vars

f_valueThe A* node weight (f_value = number_of_tiles + heuristic)
heuristicThe A* node heuristic (a rough estimate of how far we are from the goal)
jumpsHow many steps it took to get here from the last node
node_goalNodes store the endgoal so they can process their heuristic without a reference to the pathfind datum
number_tilesHow many steps it's taken to get here from the start (currently pulling double duty as steps taken & cost to get here, since all moves incl diagonals cost 1 rn)
previous_nodeThe node we just came from
tileThe turf associated with this node

Var Details

f_value

The A* node weight (f_value = number_of_tiles + heuristic)

heuristic

The A* node heuristic (a rough estimate of how far we are from the goal)

jumps

How many steps it took to get here from the last node

node_goal

Nodes store the endgoal so they can process their heuristic without a reference to the pathfind datum

number_tiles

How many steps it's taken to get here from the start (currently pulling double duty as steps taken & cost to get here, since all moves incl diagonals cost 1 rn)

previous_node

The node we just came from

tile

The turf associated with this node

\ No newline at end of file diff --git a/datum/json_database.html b/datum/json_database.html new file mode 100644 index 0000000000000..996f98e2cb429 --- /dev/null +++ b/datum/json_database.html @@ -0,0 +1,22 @@ +/datum/json_database - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

json_database

Represents a json file being used as a database in the data/ folder. +Changes made here will save back to the associated file, with recovery. +Will defer writes until later if multiple happen in the same tick. +Do not add an extra cache on top of this. This IS your cache.

Procs

getReturns the cached data. +Be careful on holding onto this data for too long, as it can mutate when other stuff changes it. +Do not mutate it yourself.
get_keyReturns the data with the given key. +For arrays, this is a number. +Be careful on holding onto this data for too long, as it can mutate when other stuff changes it. +Do not mutate it yourself.
insertInserts the data at the end of what is assumed to be an array, and queues a save.
pick_and_take_keyPicks the data of a random key and then removes that key from the database. +Since the list is no longer inside the database, you can mutate and use it as you like.
removeRemoves the data at the given item, and queues a save. +For dictionaries, this can be the key. +For arrays, this can be the value.
replaceReplaces the cache with the new data completely, and queues a save. +Do not touch the new data after passing it in.
set_keySets the data at the key to the value, and queues a save.

Proc Details

get

Returns the cached data. +Be careful on holding onto this data for too long, as it can mutate when other stuff changes it. +Do not mutate it yourself.

get_key

Returns the data with the given key. +For arrays, this is a number. +Be careful on holding onto this data for too long, as it can mutate when other stuff changes it. +Do not mutate it yourself.

insert

Inserts the data at the end of what is assumed to be an array, and queues a save.

pick_and_take_key

Picks the data of a random key and then removes that key from the database. +Since the list is no longer inside the database, you can mutate and use it as you like.

remove

Removes the data at the given item, and queues a save. +For dictionaries, this can be the key. +For arrays, this can be the value.

replace

Replaces the cache with the new data completely, and queues a save. +Do not touch the new data after passing it in.

set_key

Sets the data at the key to the value, and queues a save.

\ No newline at end of file diff --git a/datum/json_reader.html b/datum/json_reader.html new file mode 100644 index 0000000000000..f33034873f368 --- /dev/null +++ b/datum/json_reader.html @@ -0,0 +1,2 @@ +/datum/json_reader - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

json_reader

Takes a json list and extracts a single value. +Subtypes represent different conversions of that value.

Procs

ReadJsonTakes a value read directly from json and verifies/converts as needed to a result

Proc Details

ReadJson

Takes a value read directly from json and verifies/converts as needed to a result

\ No newline at end of file diff --git a/datum/json_savefile.html b/datum/json_savefile.html new file mode 100644 index 0000000000000..73ab7bb1d89d2 --- /dev/null +++ b/datum/json_savefile.html @@ -0,0 +1,11 @@ +/datum/json_savefile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

json_savefile

A savefile implementation that handles all data using json. +Also saves it using JSON too, fancy. +If you pass in a null path, it simply acts as a memory tree instead, and cannot be saved.

Vars

auto_saveIf this is set to true, calling set_entry or remove_entry will automatically call save(), this does not catch modifying a sub-tree, nor do I know how to do that
download_cooldownCooldown that tracks the time between attempts to download the savefile.

Procs

export_json_to_clientProc that handles generating a JSON file (prettified if 515 and over!) of a user's preferences and showing it to them. +Requester is passed in to the ftp() and tgui_alert() procs, and account_name is just used to generate the filename. +We don't need to pass in account_name since this is reliant on the json_savefile datum already knowing what we correspond to, but it's here to help people keep track of their stuff.
get_entryGets an entry from the json tree, with an optional default value. +If no key is specified it throws the entire tree at you instead
import_byond_savefileTraverses the entire dir tree of the given savefile and dynamically assembles the tree from it
json_export_checksProc that just handles all of the checks for exporting a preferences file, returns TRUE if all checks are passed, FALSE otherwise. +Just done like this to make the code in the export_json_to_client() proc a bit cleaner.
remove_entryRemoves the given key from the tree
set_entrySets an entry in the tree to the given value
wipeWipes the entire tree

Var Details

auto_save

If this is set to true, calling set_entry or remove_entry will automatically call save(), this does not catch modifying a sub-tree, nor do I know how to do that

download_cooldown

Cooldown that tracks the time between attempts to download the savefile.

Proc Details

export_json_to_client

Proc that handles generating a JSON file (prettified if 515 and over!) of a user's preferences and showing it to them. +Requester is passed in to the ftp() and tgui_alert() procs, and account_name is just used to generate the filename. +We don't need to pass in account_name since this is reliant on the json_savefile datum already knowing what we correspond to, but it's here to help people keep track of their stuff.

get_entry

Gets an entry from the json tree, with an optional default value. +If no key is specified it throws the entire tree at you instead

import_byond_savefile

Traverses the entire dir tree of the given savefile and dynamically assembles the tree from it

json_export_checks

Proc that just handles all of the checks for exporting a preferences file, returns TRUE if all checks are passed, FALSE otherwise. +Just done like this to make the code in the export_json_to_client() proc a bit cleaner.

remove_entry

Removes the given key from the tree

set_entry

Sets an entry in the tree to the given value

wipe

Wipes the entire tree

\ No newline at end of file diff --git a/datum/keybinding/human/quick_equip_belt.html b/datum/keybinding/human/quick_equip_belt.html new file mode 100644 index 0000000000000..c5e9c4413ac4e --- /dev/null +++ b/datum/keybinding/human/quick_equip_belt.html @@ -0,0 +1 @@ +/datum/keybinding/human/quick_equip_belt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

quick_equip_belt

Vars

slot_item_namewhat we should call slot_type in messages (including failure messages)
slot_typewhich slot are we trying to quickdraw from/quicksheathe into?

Var Details

slot_item_name

what we should call slot_type in messages (including failure messages)

slot_type

which slot are we trying to quickdraw from/quicksheathe into?

\ No newline at end of file diff --git a/datum/known_alts.html b/datum/known_alts.html new file mode 100644 index 0000000000000..f12557c52d579 --- /dev/null +++ b/datum/known_alts.html @@ -0,0 +1,3 @@ +/datum/known_alts - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

known_alts

Procs

load_known_altsReturns the list of known alts, will return an empty list if the DB could not be connected to. +This proc can block.

Proc Details

load_known_alts

Returns the list of known alts, will return an empty list if the DB could not be connected to. +This proc can block.

\ No newline at end of file diff --git a/datum/language.html b/datum/language.html new file mode 100644 index 0000000000000..d5470027ddc1e --- /dev/null +++ b/datum/language.html @@ -0,0 +1,17 @@ +/datum/language - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

language

Datum based languages. Easily editable and modular.

Vars

always_use_default_namelistIf TRUE, when generating names, we will always use the default human namelist, even if we have syllables set. +This is to be used for languages with very outlandish syllable lists (like pirates).
default_name_countBy default, random names picks this many names
default_name_syllable_maxBy default, random names picks this many syllables (max)
default_name_syllable_minBy default, random names picks this many syllables (min)
default_priorityThe language that an atom knows with the highest "default_priority" is selected by default.
descShort description for 'Check Languages'.
flagsVarious language flags.
iconIcon displayed in the chat window when speaking this language. +if you are seeing someone speak popcorn language, then something is wrong.
icon_stateIcon state displayed in the chat window when speaking this language.
keyCharacter used to speak in language +If key is null, then the language isn't real or learnable.
nameFluff name of language if any.
random_name_spacerWhat char to place in between randomly generated names
scramble_cacheCache of recently scrambled text +This allows commonly reused words to not require a full re-scramble every time.
secretShould this be hidden on the language buy menu?
sentence_chanceLikelihood of making a new sentence after each syllable.
space_chanceLikelihood of getting a space in the random scramble string
spansSpans to apply from this language
special_charactersList of characters that will randomly be inserted between syllables.
syllablesUsed when scrambling text for a non-speaker.

Procs

default_nameSimple helper for getting a default firstname lastname
display_iconChecks whether we should display the language icon to the passed hearer.
get_iconReturns the icon to display in the chat window when speaking this language.
get_random_nameGenerates a random name this language would use.
get_random_unique_nameGenerates a random name, and attempts to ensure it is unique (IE, no other mob in the world has it)

Var Details

always_use_default_namelist

If TRUE, when generating names, we will always use the default human namelist, even if we have syllables set. +This is to be used for languages with very outlandish syllable lists (like pirates).

default_name_count

By default, random names picks this many names

default_name_syllable_max

By default, random names picks this many syllables (max)

default_name_syllable_min

By default, random names picks this many syllables (min)

default_priority

The language that an atom knows with the highest "default_priority" is selected by default.

desc

Short description for 'Check Languages'.

flags

Various language flags.

icon

Icon displayed in the chat window when speaking this language. +if you are seeing someone speak popcorn language, then something is wrong.

icon_state

Icon state displayed in the chat window when speaking this language.

key

Character used to speak in language +If key is null, then the language isn't real or learnable.

name

Fluff name of language if any.

random_name_spacer

What char to place in between randomly generated names

scramble_cache

Cache of recently scrambled text +This allows commonly reused words to not require a full re-scramble every time.

secret

Should this be hidden on the language buy menu?

sentence_chance

Likelihood of making a new sentence after each syllable.

space_chance

Likelihood of getting a space in the random scramble string

spans

Spans to apply from this language

special_characters

List of characters that will randomly be inserted between syllables.

syllables

Used when scrambling text for a non-speaker.

Proc Details

default_name

Simple helper for getting a default firstname lastname

display_icon

Checks whether we should display the language icon to the passed hearer.

get_icon

Returns the icon to display in the chat window when speaking this language.

get_random_name

Generates a random name this language would use.

+

get_random_unique_name

Generates a random name, and attempts to ensure it is unique (IE, no other mob in the world has it)

\ No newline at end of file diff --git a/datum/language_holder.html b/datum/language_holder.html new file mode 100644 index 0000000000000..828c055ac5c53 --- /dev/null +++ b/datum/language_holder.html @@ -0,0 +1,7 @@ +/datum/language_holder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

language_holder

Vars

blocked_languagesLazyassoclist of blocked languages. +Used to prevent understanding and speaking certain languages, ie for certain mobs, mutations etc.
language_menuHandles displaying the language menu UI.
omnitongueIf true, overrides tongue aforementioned limitations.
ownerTracks the entity that owns the holder.
selected_languageCurrently spoken language
spoken_languagesLazyassoclist of languages that can be spoken. +Tongue organ may also set limits beyond this list.
understood_languagesLazyassoclist of all understood languages

Procs

NewInitializes, and copies in the languages from the current atom if available.
add_blocked_languageAdds a single language or list of languages to the blocked language list.
can_speak_languageChecks if you can speak the language. Tongue limitations should be supplied as an argument.
copy_languagesCopies all languages from the supplied atom/language holder. Source should be overridden when you +do not want the language overwritten by later atom updates or want to avoid blocked languages.
get_random_spoken_languageGets a random spoken language, useful for forced speech and such.
get_random_spoken_uncommon_languageGets a random spoken language, trying to get a non-common language.
get_random_understood_languageGets a random understood language, useful for hallucinations and such.
get_selected_languageReturns selected language if it can be spoken, or decides, sets and returns a new selected language if possible.
grant_all_languagesGrants every language to understood and spoken, and gives omnitongue.
grant_languageGrants the supplied language.
has_languageChecks if you have the language passed.
open_language_menuOpens a language menu reading from the language holder.
remove_all_languagesRemoves every language and optionally sets omnitongue false. If a non default source is supplied, only removes that source.
remove_blocked_languageRemoves a single language or list of languages from the blocked language list.
remove_languageRemoves a single language or source, removing all sources returns the pre-removal state of the language.
remove_languages_by_sourceRemoves every language whose source(s) match the provided source list arg
transfer_mind_languagesTransfers all mind languages to the supplied language holder.

Var Details

blocked_languages

Lazyassoclist of blocked languages. +Used to prevent understanding and speaking certain languages, ie for certain mobs, mutations etc.

language_menu

Handles displaying the language menu UI.

omnitongue

If true, overrides tongue aforementioned limitations.

owner

Tracks the entity that owns the holder.

selected_language

Currently spoken language

spoken_languages

Lazyassoclist of languages that can be spoken. +Tongue organ may also set limits beyond this list.

understood_languages

Lazyassoclist of all understood languages

Proc Details

New

Initializes, and copies in the languages from the current atom if available.

add_blocked_language

Adds a single language or list of languages to the blocked language list.

can_speak_language

Checks if you can speak the language. Tongue limitations should be supplied as an argument.

copy_languages

Copies all languages from the supplied atom/language holder. Source should be overridden when you +do not want the language overwritten by later atom updates or want to avoid blocked languages.

get_random_spoken_language

Gets a random spoken language, useful for forced speech and such.

get_random_spoken_uncommon_language

Gets a random spoken language, trying to get a non-common language.

get_random_understood_language

Gets a random understood language, useful for hallucinations and such.

get_selected_language

Returns selected language if it can be spoken, or decides, sets and returns a new selected language if possible.

grant_all_languages

Grants every language to understood and spoken, and gives omnitongue.

grant_language

Grants the supplied language.

has_language

Checks if you have the language passed.

open_language_menu

Opens a language menu reading from the language holder.

remove_all_languages

Removes every language and optionally sets omnitongue false. If a non default source is supplied, only removes that source.

remove_blocked_language

Removes a single language or list of languages from the blocked language list.

remove_language

Removes a single language or source, removing all sources returns the pre-removal state of the language.

remove_languages_by_source

Removes every language whose source(s) match the provided source list arg

transfer_mind_languages

Transfers all mind languages to the supplied language holder.

\ No newline at end of file diff --git a/datum/language_holder_adjustor.html b/datum/language_holder_adjustor.html new file mode 100644 index 0000000000000..03f7218dff989 --- /dev/null +++ b/datum/language_holder_adjustor.html @@ -0,0 +1,5 @@ +/datum/language_holder_adjustor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

language_holder_adjustor

Procs

NewLanguage code needs to be purged. Make sure, once and for all, that we get the correct languages on spawn. +Every time a crew member joins the adjustor will personally fix their language, because there is too much coupling between mind and language code to do it reliably otherwise. +It has already needed to be fixed like 3 times. This will (hopefully) be the final time.

Proc Details

New

Language code needs to be purged. Make sure, once and for all, that we get the correct languages on spawn. +Every time a crew member joins the adjustor will personally fix their language, because there is too much coupling between mind and language code to do it reliably otherwise. +It has already needed to be fixed like 3 times. This will (hopefully) be the final time.

\ No newline at end of file diff --git a/datum/laser_weapon_mode.html b/datum/laser_weapon_mode.html new file mode 100644 index 0000000000000..cfa36dd5ceb3e --- /dev/null +++ b/datum/laser_weapon_mode.html @@ -0,0 +1 @@ +/datum/laser_weapon_mode - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

laser_weapon_mode

Vars

casingWhat casing does this variant of weapon use?
charge_sectionsHow many charge sections does this variant of weapon have?
gun_runetext_colorWhat do we change the gun's runetext color to when applied
json_speech_stringWhat json string do we check for when making chat messages with this mode?
nameWhat name does this weapon mode have? Will appear in the weapon's radial menu
shot_delayWhat is the shot cooldown this variant applies to the weapon?
weapon_icon_stateWhat icon_state does this weapon mode use?

Procs

apply_statsApplies some of the universal stats from the variables above
apply_to_weaponStuff applied to the passed gun when the weapon mode is given to the gun
remove_from_weaponStuff applied to the passed gun when the weapon mode is removed from the gun

Var Details

casing

What casing does this variant of weapon use?

charge_sections

How many charge sections does this variant of weapon have?

gun_runetext_color

What do we change the gun's runetext color to when applied

json_speech_string

What json string do we check for when making chat messages with this mode?

name

What name does this weapon mode have? Will appear in the weapon's radial menu

shot_delay

What is the shot cooldown this variant applies to the weapon?

weapon_icon_state

What icon_state does this weapon mode use?

Proc Details

apply_stats

Applies some of the universal stats from the variables above

apply_to_weapon

Stuff applied to the passed gun when the weapon mode is given to the gun

remove_from_weapon

Stuff applied to the passed gun when the weapon mode is removed from the gun

\ No newline at end of file diff --git a/datum/laser_weapon_mode/disabler_machinegun.html b/datum/laser_weapon_mode/disabler_machinegun.html new file mode 100644 index 0000000000000..d1cd09d2fb549 --- /dev/null +++ b/datum/laser_weapon_mode/disabler_machinegun.html @@ -0,0 +1 @@ +/datum/laser_weapon_mode/disabler_machinegun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

disabler_machinegun

Vars

autofire_componentKeeps track of the autofire component for deleting later

Var Details

autofire_component

Keeps track of the autofire component for deleting later

\ No newline at end of file diff --git a/datum/laser_weapon_mode/marksman.html b/datum/laser_weapon_mode/marksman.html new file mode 100644 index 0000000000000..598a6ee7eef42 --- /dev/null +++ b/datum/laser_weapon_mode/marksman.html @@ -0,0 +1 @@ +/datum/laser_weapon_mode/marksman - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

marksman

Vars

scope_componentKeeps track of the scope component for deleting later

Var Details

scope_component

Keeps track of the scope component for deleting later

\ No newline at end of file diff --git a/datum/latejoin_menu.html b/datum/latejoin_menu.html new file mode 100644 index 0000000000000..96a1772649b88 --- /dev/null +++ b/datum/latejoin_menu.html @@ -0,0 +1,3 @@ +/datum/latejoin_menu - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

latejoin_menu

Procs

fallback_uiMakes a list of jobs and pushes them to a DM list selector. Just in case someone did a special kind of fucky-wucky with TGUI.
get_random_jobGives the user a random job that they can join as, and prompts them if they'd actually like to keep it, rerolling if not. Cancellable by the user. +WARNING: BLOCKS THREAD!

Proc Details

fallback_ui

Makes a list of jobs and pushes them to a DM list selector. Just in case someone did a special kind of fucky-wucky with TGUI.

get_random_job

Gives the user a random job that they can join as, and prompts them if they'd actually like to keep it, rerolling if not. Cancellable by the user. +WARNING: BLOCKS THREAD!

\ No newline at end of file diff --git a/datum/lazy_template.html b/datum/lazy_template.html new file mode 100644 index 0000000000000..d018f7c3d3710 --- /dev/null +++ b/datum/lazy_template.html @@ -0,0 +1,2 @@ +/datum/lazy_template - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lazy_template

Datum used to designate certain areas that do not need to exist nor be loaded at world start +but do want to be loaded under certain circumstances. Use this for stuff like the nukie base or wizden, aka stuff that only matters when their antag is rolled.

Vars

keyKey to identify this template - used in caching
map_dirDirectory of maps to prefix to the filename
map_nameThe filename (without extension) of the map to load
place_on_topplace_on_top: Whether to use /turf/proc/PlaceOnTop rather than /turf/proc/ChangeTurf
reservationsIf this is true each load will increment an index keyed to the type and it will load [map_name]_[index]
turf_reservation_typetype of turf reservation

Procs

lazy_loadDoes the grunt work of loading the template.

Var Details

key

Key to identify this template - used in caching

map_dir

Directory of maps to prefix to the filename

map_name

The filename (without extension) of the map to load

place_on_top

place_on_top: Whether to use /turf/proc/PlaceOnTop rather than /turf/proc/ChangeTurf

reservations

If this is true each load will increment an index keyed to the type and it will load [map_name]_[index]

turf_reservation_type

type of turf reservation

Proc Details

lazy_load

Does the grunt work of loading the template.

\ No newline at end of file diff --git a/datum/lazy_template/deathmatch.html b/datum/lazy_template/deathmatch.html new file mode 100644 index 0000000000000..89c78881e073c --- /dev/null +++ b/datum/lazy_template/deathmatch.html @@ -0,0 +1 @@ +/datum/lazy_template/deathmatch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

deathmatch

Vars

allowed_loadoutsList of allowed loadouts for this map, otherwise defaults to all loadouts
automatic_gameend_timeThe map will end in this time
descMap Description
max_playersMaximum players for this map
min_playersMinimum players for this map
nameMap UI Name
template_in_usewhether we are currently being loaded by a lobby

Var Details

allowed_loadouts

List of allowed loadouts for this map, otherwise defaults to all loadouts

automatic_gameend_time

The map will end in this time

desc

Map Description

max_players

Maximum players for this map

min_players

Minimum players for this map

name

Map UI Name

template_in_use

whether we are currently being loaded by a lobby

\ No newline at end of file diff --git a/datum/lazy_template/virtual_domain.html b/datum/lazy_template/virtual_domain.html new file mode 100644 index 0000000000000..8df9207320dac --- /dev/null +++ b/datum/lazy_template/virtual_domain.html @@ -0,0 +1,11 @@ +/datum/lazy_template/virtual_domain - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Virtual Domains

Create your own: Read the readme file in the '_maps/virtual_domains' folder.

Vars

announce_to_ghostsWhether to tell observers this map is being used
completion_lootLoot +An assoc list of typepath/amount to spawn on completion. Not weighted - the value is the amount
costGeneric settings / UI +Cost of this map to load
custom_spawnsSpawning +Looks for random landmarks to spawn on.
descThe description of the map for the console UI
difficultyAffects the ui and ability to scan info.
disk_reward_spawnedHas this domain been beaten with high enough score to spawn a tech disk?
filenameThe map file to load
forbids_disk_itemsPlayer customization +If this domain blocks the use of items from disks, for whatever reason
forbids_disk_spellsIf this domain blocks the use of spells from disks, for whatever reason
forced_outfitAny outfit that you wish to force on avatars. Overrides preferences
help_textWrite these to help complete puzzles and other objectives. Viewed in the domain info ability.
is_modularModularity +Whether to display this as a modular map
keep_custom_spawnsSet TRUE if you want reusable custom spawners
mob_modulesByond will look for modular mob segment landmarks then choose from here at random. You can make them unique also.
modular_unique_mobsForces all mob modules to only load once
reward_pointsPoints to reward for completion. Used to purchase new domains and calculate ore rewards.
secondary_lootAn assoc list of typepath/amount to spawn from secondary objectives. Not weighted - the value is the total number of items that can be obtained.
secondary_loot_generatedNumber of secondary loot boxes generated. Resets when the domain is reloaded.
start_timeThe start time of the map. Used to calculate time taken
test_onlyThis map is specifically for unit tests. Shouldn't display in game

Procs

add_pointsSends a point to any loot signals on the map
setup_domainOverridable proc to be called after the map is loaded.

Var Details

announce_to_ghosts

Whether to tell observers this map is being used

completion_loot

Loot +An assoc list of typepath/amount to spawn on completion. Not weighted - the value is the amount

cost

Generic settings / UI +Cost of this map to load

custom_spawns

Spawning +Looks for random landmarks to spawn on.

desc

The description of the map for the console UI

difficulty

Affects the ui and ability to scan info.

disk_reward_spawned

Has this domain been beaten with high enough score to spawn a tech disk?

filename

The map file to load

forbids_disk_items

Player customization +If this domain blocks the use of items from disks, for whatever reason

forbids_disk_spells

If this domain blocks the use of spells from disks, for whatever reason

forced_outfit

Any outfit that you wish to force on avatars. Overrides preferences

help_text

Write these to help complete puzzles and other objectives. Viewed in the domain info ability.

is_modular

Modularity +Whether to display this as a modular map

keep_custom_spawns

Set TRUE if you want reusable custom spawners

mob_modules

Byond will look for modular mob segment landmarks then choose from here at random. You can make them unique also.

modular_unique_mobs

Forces all mob modules to only load once

reward_points

Points to reward for completion. Used to purchase new domains and calculate ore rewards.

secondary_loot

An assoc list of typepath/amount to spawn from secondary objectives. Not weighted - the value is the total number of items that can be obtained.

secondary_loot_generated

Number of secondary loot boxes generated. Resets when the domain is reloaded.

start_time

The start time of the map. Used to calculate time taken

test_only

This map is specifically for unit tests. Shouldn't display in game

Proc Details

add_points

Sends a point to any loot signals on the map

setup_domain

Overridable proc to be called after the map is loaded.

\ No newline at end of file diff --git a/datum/lazy_template/virtual_domain/beach_bar.html b/datum/lazy_template/virtual_domain/beach_bar.html new file mode 100644 index 0000000000000..a80efcb860786 --- /dev/null +++ b/datum/lazy_template/virtual_domain/beach_bar.html @@ -0,0 +1 @@ +/datum/lazy_template/virtual_domain/beach_bar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

beach_bar

Procs

on_drink_drankEventually reveal the cache

Proc Details

on_drink_drank

Eventually reveal the cache

\ No newline at end of file diff --git a/datum/lazy_template/virtual_domain/breeze_bay.html b/datum/lazy_template/virtual_domain/breeze_bay.html new file mode 100644 index 0000000000000..c5d4122e23906 --- /dev/null +++ b/datum/lazy_template/virtual_domain/breeze_bay.html @@ -0,0 +1 @@ +/datum/lazy_template/virtual_domain/breeze_bay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

breeze_bay

Procs

on_fish_caughtEventually reveal the cache

Proc Details

on_fish_caught

Eventually reveal the cache

\ No newline at end of file diff --git a/datum/lazy_template/virtual_domain/grasslands_hunt.html b/datum/lazy_template/virtual_domain/grasslands_hunt.html new file mode 100644 index 0000000000000..41101c93263da --- /dev/null +++ b/datum/lazy_template/virtual_domain/grasslands_hunt.html @@ -0,0 +1 @@ +/datum/lazy_template/virtual_domain/grasslands_hunt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

grasslands_hunt

Procs

on_deathHandles deer being slain
on_spawnedThe mob segment has concluded spawning

Proc Details

on_death

Handles deer being slain

on_spawned

The mob segment has concluded spawning

\ No newline at end of file diff --git a/datum/lazy_template/virtual_domain/island_brawl.html b/datum/lazy_template/virtual_domain/island_brawl.html new file mode 100644 index 0000000000000..b2efae9117a8d --- /dev/null +++ b/datum/lazy_template/virtual_domain/island_brawl.html @@ -0,0 +1 @@ +/datum/lazy_template/virtual_domain/island_brawl - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

island_brawl

Procs

on_deathMob has died, so we add a point to the domain
on_spawnSomeone has spawned in, so we check for their death

Proc Details

on_death

Mob has died, so we add a point to the domain

on_spawn

Someone has spawned in, so we check for their death

\ No newline at end of file diff --git a/datum/light_source.html b/datum/light_source.html new file mode 100644 index 0000000000000..aa532f23f8e49 --- /dev/null +++ b/datum/light_source.html @@ -0,0 +1,19 @@ +/datum/light_source - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

light_source

Vars

appliedWhether we have applied our light yet or not.
effect_strList used to store how much we're affecting corners.
light_angleHow many degrees of a circle should our light show. 360 is all of it, 180 is half, etc
light_colorThe colour of the light, string, decomposed by parse_light_color()
light_dirWhat direction our angled light is pointed
light_heightThe height of the light. The larger this is, the dimmer we'll start
light_powerIntensity of the emitter light.
light_rangeThe range of the emitted light.
needs_updatewhether we are to be added to SSlighting's sources_queue list for an update
offset_xHow much to x shift our light by when displaying it
offset_yHow much to y shift our light by when displaying it
source_atomThe atom that we belong to.
source_turfThe turf under the source atom.
top_atomThe atom we're emitting light from (for example a mob if we're from a flashlight that's being held).
visual_offsetHow much larger our light sheet should be, based off offset_x and y +We clamp to at least 1, so if offset_x is 0.1, then this'll be 1

Procs

add_to_light_sourcesadd this light source to new_atom_host's light_sources list. updating movement registrations as needed
falloff_at_coordTakes x y and z offsets from the source as input, alongside our source's range +Returns a value between 0 and 1, 0 being dark on that tile, 1 being fully lit
generate_sheetReturns a list of lists that encodes the light falloff of our source +Takes anything that impacts our generation as input +This function should be "pure", no side effects or reads from the source object
generate_sheet_multizReturns a THREE dimensional list of lists that encodes the lighting falloff of our source +Takes anything that impacts our generation as input +This function should be "pure", no side effects or reads from the passed object
get_sheetReturns a list of lists, indexed with ints, that can be read to get the lighting multiplier at any one point +If the requested sheet is multiz, this will be 3 lists deep, first handling z level then x and y +otherwise it's just two, x then y
impacted_cornersReturns a list of lighting corners this source impacts
print_sheetDumps the content of a lighting sheet to chat, for debugging
refresh_valuesRefreshes our lighting source to match its parent atom +Returns TRUE if an update is needed, FALSE otherwise
remove_from_light_sourcesremove this light source from old_atom_host's light_sources list, unsetting movement registrations
remove_lumThis is the define used to calculate falloff.
updateThis proc will cause the light source to update the top atom, and add itself to the update queue.
update_host_lightssignal handler for when our host atom moves and we need to update our effects

Var Details

applied

Whether we have applied our light yet or not.

effect_str

List used to store how much we're affecting corners.

light_angle

How many degrees of a circle should our light show. 360 is all of it, 180 is half, etc

light_color

The colour of the light, string, decomposed by parse_light_color()

light_dir

What direction our angled light is pointed

light_height

The height of the light. The larger this is, the dimmer we'll start

light_power

Intensity of the emitter light.

light_range

The range of the emitted light.

needs_update

whether we are to be added to SSlighting's sources_queue list for an update

offset_x

How much to x shift our light by when displaying it

offset_y

How much to y shift our light by when displaying it

source_atom

The atom that we belong to.

source_turf

The turf under the source atom.

top_atom

The atom we're emitting light from (for example a mob if we're from a flashlight that's being held).

visual_offset

How much larger our light sheet should be, based off offset_x and y +We clamp to at least 1, so if offset_x is 0.1, then this'll be 1

Proc Details

add_to_light_sources

add this light source to new_atom_host's light_sources list. updating movement registrations as needed

falloff_at_coord

Takes x y and z offsets from the source as input, alongside our source's range +Returns a value between 0 and 1, 0 being dark on that tile, 1 being fully lit

generate_sheet

Returns a list of lists that encodes the light falloff of our source +Takes anything that impacts our generation as input +This function should be "pure", no side effects or reads from the source object

generate_sheet_multiz

Returns a THREE dimensional list of lists that encodes the lighting falloff of our source +Takes anything that impacts our generation as input +This function should be "pure", no side effects or reads from the passed object

get_sheet

Returns a list of lists, indexed with ints, that can be read to get the lighting multiplier at any one point +If the requested sheet is multiz, this will be 3 lists deep, first handling z level then x and y +otherwise it's just two, x then y

impacted_corners

Returns a list of lighting corners this source impacts

print_sheet

Dumps the content of a lighting sheet to chat, for debugging

refresh_values

Refreshes our lighting source to match its parent atom +Returns TRUE if an update is needed, FALSE otherwise

remove_from_light_sources

remove this light source from old_atom_host's light_sources list, unsetting movement registrations

remove_lum

This is the define used to calculate falloff.

update

This proc will cause the light source to update the top atom, and add itself to the update queue.

update_host_lights

signal handler for when our host atom moves and we need to update our effects

\ No newline at end of file diff --git a/datum/light_template.html b/datum/light_template.html new file mode 100644 index 0000000000000..8052308770d94 --- /dev/null +++ b/datum/light_template.html @@ -0,0 +1,3 @@ +/datum/light_template - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

light_template

Light templates. They describe how a light looks, and links that to names/icons that can be used when templating/debugging

Vars

angleThe light angle we use
categoryWhat category to put this template in
colorThe light color we use
descDescription to display to the client
iconIcon to use to display this clientside
icon_stateIcon state to display clientside
idUnique id for this template
ignore_typeDo not load this template if its type matches the ignore type +This lets us do subtypes more nicely
nameUser friendly name, to display clientside
powerThe light power we use
rangeThe light range we use
spawn_typeThe type to spawn off create()

Procs

createCreate an atom with our light details

Var Details

angle

The light angle we use

category

What category to put this template in

color

The light color we use

desc

Description to display to the client

icon

Icon to use to display this clientside

icon_state

Icon state to display clientside

id

Unique id for this template

ignore_type

Do not load this template if its type matches the ignore type +This lets us do subtypes more nicely

name

User friendly name, to display clientside

power

The light power we use

range

The light range we use

spawn_type

The type to spawn off create()

Proc Details

create

Create an atom with our light details

\ No newline at end of file diff --git a/datum/light_template/read_light.html b/datum/light_template/read_light.html new file mode 100644 index 0000000000000..fdb9bdaf3adc2 --- /dev/null +++ b/datum/light_template/read_light.html @@ -0,0 +1 @@ +/datum/light_template/read_light - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

read_light

Template that reads info off a light subtype

Vars

path_to_readTypepath to pull our icon/state and lighting details from

Var Details

path_to_read

Typepath to pull our icon/state and lighting details from

\ No newline at end of file diff --git a/datum/lighting_corner.html b/datum/lighting_corner.html new file mode 100644 index 0000000000000..4b447fa57313f --- /dev/null +++ b/datum/lighting_corner.html @@ -0,0 +1 @@ +/datum/lighting_corner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lighting_corner

Vars

largest_color_luminositythe maximum of lum_r, lum_g, and lum_b. if this is > 1 then the three cached color values are divided by this
needs_updatewhether we are to be added to SSlighting's corners_queue list for an update

Procs

displayDebug proc to aid in understanding how corners work

Var Details

largest_color_luminosity

the maximum of lum_r, lum_g, and lum_b. if this is > 1 then the three cached color values are divided by this

needs_update

whether we are to be added to SSlighting's corners_queue list for an update

Proc Details

display

Debug proc to aid in understanding how corners work

\ No newline at end of file diff --git a/datum/lighting_object.html b/datum/lighting_object.html new file mode 100644 index 0000000000000..f23e0e4ac58bb --- /dev/null +++ b/datum/lighting_object.html @@ -0,0 +1 @@ +/datum/lighting_object - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lighting_object

Vars

affected_turfthe turf that our light is applied to
current_underlaythe underlay we are currently applying to our turf to apply light
needs_updatewhether we are already in the SSlighting.objects_queue list

Var Details

affected_turf

the turf that our light is applied to

current_underlay

the underlay we are currently applying to our turf to apply light

needs_update

whether we are already in the SSlighting.objects_queue list

\ No newline at end of file diff --git a/datum/liquid_group.html b/datum/liquid_group.html new file mode 100644 index 0000000000000..037b2431dcb8e --- /dev/null +++ b/datum/liquid_group.html @@ -0,0 +1 @@ +/datum/liquid_group - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

liquid_group

A group of any liquids, helps not make processing a pain in the ass by handling all the turfs as one big group

Vars

colorThe color of the liquid group
last_cached_thermalLast calculated heat of the liquid group
last_cached_total_volumeLast calculated volume of the liquid group, see /datum/liquid_group/proc/share()
membersAll the turfs with liquids on them

Var Details

color

The color of the liquid group

last_cached_thermal

Last calculated heat of the liquid group

last_cached_total_volume

Last calculated volume of the liquid group, see /datum/liquid_group/proc/share()

members

All the turfs with liquids on them

\ No newline at end of file diff --git a/datum/loadout_category.html b/datum/loadout_category.html new file mode 100644 index 0000000000000..6b51888acd8c5 --- /dev/null +++ b/datum/loadout_category.html @@ -0,0 +1,3 @@ +/datum/loadout_category - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Loadout categories

Loadout categories are singletons used to group loadout items together in the loadout screen.

Vars

associated_itemsList of all loadout items in this category
category_infoString to display on the top-right of a category tab
category_nameThe name of the category, shown in the tabs
category_ui_iconFontAwesome icon for the category
tab_orderOrder which they appear in the tabs, ties go alphabetically
type_to_generateWhat type of loadout items should be generated for this category?

Procs

get_itemsReturn a list of all /datum/loadout_items in this category.
handle_duplicate_entiresHandles what happens when two items of this category are selected at once
items_to_ui_dataReturns a list of all /datum/loadout_items in this category, formatted for UI use. Only ran once.

Var Details

associated_items

List of all loadout items in this category

category_info

String to display on the top-right of a category tab

category_name

The name of the category, shown in the tabs

category_ui_icon

FontAwesome icon for the category

tab_order

Order which they appear in the tabs, ties go alphabetically

type_to_generate

What type of loadout items should be generated for this category?

Proc Details

get_items

Return a list of all /datum/loadout_items in this category.

handle_duplicate_entires

Handles what happens when two items of this category are selected at once

+

Return TRUE if it's okay to continue with adding the incoming item, +or return FALSE to stop the new item from being added

items_to_ui_data

Returns a list of all /datum/loadout_items in this category, formatted for UI use. Only ran once.

\ No newline at end of file diff --git a/datum/loadout_item.html b/datum/loadout_item.html new file mode 100644 index 0000000000000..00bcea9f437f4 --- /dev/null +++ b/datum/loadout_item.html @@ -0,0 +1,47 @@ +/datum/loadout_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Loadout item datum

Singleton that holds all the information about each loadout items, and how to equip them.

Vars

abstract_typeThe abstract parent of this loadout item, to determine which items to not instantiate
additional_displayed_textLazylist of additional "information" text to display about this item.
blacklisted_rolesIf set, is a list of job names of which can't get the loadout item
cached_reskin_optionsReskin options of this item if it can be reskinned.
can_be_greyscaleWhether this item has greyscale support. +Only works if the item is compatible with the GAGS system of coloring. +Set automatically to TRUE for all items that have the flag IS_PLAYER_COLORABLE_1. +If you really want it to not be colorable set this to DONT_GREYSCALE
can_be_namedWhether this item can be renamed. +I recommend you apply this sparingly becuase it certainly can go wrong (or get reset / overridden easily)
can_be_reskinnedWhether this item can be reskinned. +Only works if the item has a "unique reskin" list set.
categoryThe category of the loadout item. Set automatically in New
ckeywhitelistIf set, it's a list containing ckeys which only can get the item
donator_onlyWhether the item is restricted to supporters
erp_itemIf the item won't appear when the ERP config is disabled
item_pathThe actual item path of the loadout item.
nameDisplayed name of the loadout item. +Defaults to the item's name if unset.
required_seasonWhether the item requires a specific season in order to be available
restricted_rolesIf set, is a list of job names of which can get the loadout item
restricted_speciesIf set, is a list of species which can get the loadout item
ui_iconIcon file (DMI) for the UI to use for preview icons. +Set automatically if null
ui_icon_stateIcon state for the UI to use for preview icons. +Set automatically if null

Procs

get_item_informationReturns a list of information to display about this item in the loadout UI.
get_reskin_optionsReturns a list of options this item can be reskinned into.
get_ui_buttonsReturns a list of buttons that are shown in the loadout UI for customizing this item.
handle_loadout_actionTakes in an action from a loadout manager and applies it
insert_path_into_outfitPlace our [item_path] into the passed [outfit].
on_equip_itemCalled When the item is equipped on [equipper].
set_item_colorOpens up the GAGS editing menu.
set_nameSets the name of the item.
set_skinUsed for reskinning an item to an alt skin.
set_slot_greyscaleCallback for GAGS menu to set this item's color.
to_ui_dataReturns a formatted list of data for this loadout item.

Var Details

abstract_type

The abstract parent of this loadout item, to determine which items to not instantiate

additional_displayed_text

Lazylist of additional "information" text to display about this item.

blacklisted_roles

If set, is a list of job names of which can't get the loadout item

cached_reskin_options

Reskin options of this item if it can be reskinned.

can_be_greyscale

Whether this item has greyscale support. +Only works if the item is compatible with the GAGS system of coloring. +Set automatically to TRUE for all items that have the flag IS_PLAYER_COLORABLE_1. +If you really want it to not be colorable set this to DONT_GREYSCALE

can_be_named

Whether this item can be renamed. +I recommend you apply this sparingly becuase it certainly can go wrong (or get reset / overridden easily)

can_be_reskinned

Whether this item can be reskinned. +Only works if the item has a "unique reskin" list set.

category

The category of the loadout item. Set automatically in New

ckeywhitelist

If set, it's a list containing ckeys which only can get the item

donator_only

Whether the item is restricted to supporters

erp_item

If the item won't appear when the ERP config is disabled

item_path

The actual item path of the loadout item.

name

Displayed name of the loadout item. +Defaults to the item's name if unset.

required_season

Whether the item requires a specific season in order to be available

restricted_roles

If set, is a list of job names of which can get the loadout item

restricted_species

If set, is a list of species which can get the loadout item

ui_icon

Icon file (DMI) for the UI to use for preview icons. +Set automatically if null

ui_icon_state

Icon state for the UI to use for preview icons. +Set automatically if null

Proc Details

get_item_information

Returns a list of information to display about this item in the loadout UI.

+

These should be short strings, sub 14 characters generally.

get_reskin_options

Returns a list of options this item can be reskinned into.

get_ui_buttons

Returns a list of buttons that are shown in the loadout UI for customizing this item.

+

Buttons contain

+

handle_loadout_action

Takes in an action from a loadout manager and applies it

+

Useful for subtypes of loadout items with unique actions

+

Return TRUE to force an update to the UI / character preview

insert_path_into_outfit

Place our [item_path] into the passed [outfit].

+

By default, just adds the item into the outfit's backpack contents, if non-visual.

+

Arguments:

+

on_equip_item

Called When the item is equipped on [equipper].

+

At this point the item is in the mob's contents

+

Arguments:

+ +

Return a bitflag of slot flags to update

set_item_color

Opens up the GAGS editing menu.

set_name

Sets the name of the item.

set_skin

Used for reskinning an item to an alt skin.

set_slot_greyscale

Callback for GAGS menu to set this item's color.

to_ui_data

Returns a formatted list of data for this loadout item.

\ No newline at end of file diff --git a/datum/loadout_item/accessory.html b/datum/loadout_item/accessory.html new file mode 100644 index 0000000000000..133be54ef3850 --- /dev/null +++ b/datum/loadout_item/accessory.html @@ -0,0 +1 @@ +/datum/loadout_item/accessory - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

accessory

Vars

can_be_layer_adjustedCan we adjust this accessory to be above or below suits?

Var Details

can_be_layer_adjusted

Can we adjust this accessory to be above or below suits?

\ No newline at end of file diff --git a/datum/log_category.html b/datum/log_category.html new file mode 100644 index 0000000000000..cbc637159e150 --- /dev/null +++ b/datum/log_category.html @@ -0,0 +1,9 @@ +/datum/log_category - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

log_category

The main datum that contains all log entries for a category

Vars

categoryThe category name
category_headerThe list of header information for this category. Used for log file re-initialization
config_flagIf set this config flag is checked to enable this log category
entriesList of log entries for this category
entry_countTotal number of entries this round so far
entry_flagsFlags to apply to our /datum/log_entry's +See code/__DEFINES/logging/dm
internal_formattingWhether the readable version of the log message is formatted internally instead of by rustg +IF YOU CHANGE THIS VERIFY LOGS ARE STILL PARSED CORRECTLY
master_categoryThe master category that contains this category
schema_versionThe schema version of this log category. +Expected format of "Major.Minor.Patch"
secretWhether or not this log should not be publically visible

Procs

create_entryAdd an entry to this category. It is very important that any data you provide doesn't hold references to anything!
get_output_fileAllows for category specific file splitting. Needs to accept a null entry for the default file. +If master_category it will always return the output of master_category.get_output_file(entry)
write_entryWrites an entry to the output file(s) for the category

Var Details

category

The category name

category_header

The list of header information for this category. Used for log file re-initialization

config_flag

If set this config flag is checked to enable this log category

entries

List of log entries for this category

entry_count

Total number of entries this round so far

entry_flags

Flags to apply to our /datum/log_entry's +See code/__DEFINES/logging/dm

internal_formatting

Whether the readable version of the log message is formatted internally instead of by rustg +IF YOU CHANGE THIS VERIFY LOGS ARE STILL PARSED CORRECTLY

master_category

The master category that contains this category

schema_version

The schema version of this log category. +Expected format of "Major.Minor.Patch"

secret

Whether or not this log should not be publically visible

Proc Details

create_entry

Add an entry to this category. It is very important that any data you provide doesn't hold references to anything!

get_output_file

Allows for category specific file splitting. Needs to accept a null entry for the default file. +If master_category it will always return the output of master_category.get_output_file(entry)

write_entry

Writes an entry to the output file(s) for the category

\ No newline at end of file diff --git a/datum/log_entry.html b/datum/log_entry.html new file mode 100644 index 0000000000000..e30c0a1eae609 --- /dev/null +++ b/datum/log_entry.html @@ -0,0 +1,3 @@ +/datum/log_entry - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

log_entry

A datum which contains log information.

Vars

categoryCategory of the log entry.
dataData of the log entry; optional.
flagsBitfield that describes how exactly to log stuff exactly +See code/__DEFINES/logging/dm
idUnique id of the log entry.
messageMessage of the log entry.
next_idNext id to assign to a log entry.
schema_versionSchema version of the log entry.
semver_storeSemver store of the log entry, used to store the schema of data entries
timestampUnix timestamp of the log entry.

Procs

to_json_textConverts the log entry to a JSON string.
to_readable_textConverts the log entry to a human-readable string.
write_entry_to_fileWrites the log entry to a file.
write_readable_entry_to_fileWrites the log entry to a file as a human-readable string.

Var Details

category

Category of the log entry.

data

Data of the log entry; optional.

flags

Bitfield that describes how exactly to log stuff exactly +See code/__DEFINES/logging/dm

id

Unique id of the log entry.

message

Message of the log entry.

next_id

Next id to assign to a log entry.

schema_version

Schema version of the log entry.

semver_store

Semver store of the log entry, used to store the schema of data entries

timestamp

Unix timestamp of the log entry.

Proc Details

to_json_text

Converts the log entry to a JSON string.

to_readable_text

Converts the log entry to a human-readable string.

write_entry_to_file

Writes the log entry to a file.

write_readable_entry_to_file

Writes the log entry to a file as a human-readable string.

\ No newline at end of file diff --git a/datum/log_holder.html b/datum/log_holder.html new file mode 100644 index 0000000000000..561a87595d24c --- /dev/null +++ b/datum/log_holder.html @@ -0,0 +1,5 @@ +/datum/log_holder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

log_holder

Main datum to manage logging actions

Vars

category_group_treecategory nesting tree for ui purposes
data_cacheCached ui_data
disabled_categoriestypecache list for categories that exist but are disabled
human_readable_enabledWhether or not logging as human readable text is enabled
last_data_updateLast time the ui_data was updated
log_categoriesAssociative: category -> datum
logging_start_timestampWhen the log_holder first initialized
round_idRound ID, if set, that logging is initialized for
waiting_log_callslist of Log args waiting for processing pending log initialization

Procs

LogAdds an entry to the given category, if the category is disabled it will not be logged. +If the category does not exist, we will CRASH and log to the error category. +the data list is optional and will be recursively json serialized.
assemble_log_category_treeIterates over all log category types to assemble them into a tree of main category -> (sub category)[] while also checking for loops and sanity errors
get_recovery_file_forGets a recovery file for the given path. Caches the last known recovery path for each path.
init_category_fileSets up the given category's file and header.
init_log_categoryInitializes the given log category and populates the list of contained categories based on the sub category list
init_loggingAssembles basic information for logging, creating the log category datums and checking for config flags as required
recursive_jsonifyRecursively converts an associative list of datums into their jsonified(list) form
shutdown_loggingTells the log_holder to not allow any more logging to be done, and dumps all categories to their json file

Var Details

category_group_tree

category nesting tree for ui purposes

data_cache

Cached ui_data

disabled_categories

typecache list for categories that exist but are disabled

human_readable_enabled

Whether or not logging as human readable text is enabled

last_data_update

Last time the ui_data was updated

log_categories

Associative: category -> datum

logging_start_timestamp

When the log_holder first initialized

round_id

Round ID, if set, that logging is initialized for

waiting_log_calls

list of Log args waiting for processing pending log initialization

Proc Details

Log

Adds an entry to the given category, if the category is disabled it will not be logged. +If the category does not exist, we will CRASH and log to the error category. +the data list is optional and will be recursively json serialized.

assemble_log_category_tree

Iterates over all log category types to assemble them into a tree of main category -> (sub category)[] while also checking for loops and sanity errors

get_recovery_file_for

Gets a recovery file for the given path. Caches the last known recovery path for each path.

init_category_file

Sets up the given category's file and header.

init_log_category

Initializes the given log category and populates the list of contained categories based on the sub category list

init_logging

Assembles basic information for logging, creating the log category datums and checking for config flags as required

recursive_jsonify

Recursively converts an associative list of datums into their jsonified(list) form

shutdown_logging

Tells the log_holder to not allow any more logging to be done, and dumps all categories to their json file

\ No newline at end of file diff --git a/datum/looping_sound.html b/datum/looping_sound.html new file mode 100644 index 0000000000000..f2219a495aa57 --- /dev/null +++ b/datum/looping_sound.html @@ -0,0 +1,20 @@ +/datum/looping_sound - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

looping_sound

A datum for sounds that need to loop, with a high amount of configurability.

Vars

audio_indexThe index of the current song we're playing in the mid_sounds list, only used if in_order is used +This is immediately set to 1, so we start the index at 0
chanceChance per loop to play a mid_sound.
cut_listIf we're using cut_mid, this is the list we cut from
directIf true, plays directly to provided atoms instead of from them.
each_onceIf we should always play each sound once per loop of all sounds. Weights here only really effect order, and could be disgarded
end_sound(soundfile) The sound played after the main loop has concluded.
end_volumeOverride for volume of end sound.
extra_rangeThe extra range of the sound in tiles, defaults to 0.
falloff_distanceThe falloff distance of the sound,
falloff_exponentHow much the sound will be affected by falloff per tile.
ignore_wallsAre we ignoring walls? Defaults to TRUE.
in_orderWhether if the sounds should be played in order or not. Defaults to FALSE.
loop_startedHas the looping started yet?
max_loopsThe max amount of loops to run for.
mid_lengthThe length of time to wait between playing mid_sounds.
mid_length_varyAmount of time to add/take away from the mid length, randomly
mid_sounds(list or soundfile) Since this can be either a list or a single soundfile you can have random sounds. May contain further lists but must contain a soundfile at the end. In a list, path must have also be assigned a value or it will be assigned 0 and not play.
parentThe source of the sound, or the recipient of the sound.
pressure_affectedAre the sounds affected by pressure? Defaults to TRUE.
skip_starting_soundsDo we skip the starting sounds?
sound_channelSound channel to play on, random if not provided
start_lengthHow long to wait before starting the main loop after playing start_sound.
start_sound(soundfile) Played before starting the mid_sounds loop.
start_volumeOverride for volume of start sound.
timer_idThe ID of the timer that's used to loop the sounds.
use_reverbAre the sounds subject to reverb? Defaults to TRUE.
varyWhether or not the sounds will vary in pitch when played.
volumeSound output volume.

Procs

get_soundReturns the sound we should now be playing.
handle_parent_delA simple proc to handle the deletion of the parent, so that it does not force it to hard-delete.
is_activeA simple proc that lets us know whether the sounds are currently active or not.
on_startA proc that's there to handle delaying the main sounds if there's a start_sound, and simply starting the sound loop in general.
on_stopSimple proc that's executed when the looping sound is stopped, so that the end_sound can be played, if there's one.
playThe proc that handles actually playing the sound.
set_mid_lengthApplies a new mid length to the sound
set_parentA simple proc to change who our parent is set to, also handling registering and unregistering the QDELETING signals on the parent.
sound_loopA simple proc handling the looping of the sound itself.
startThe proc to actually kickstart the whole sound sequence. This is what you should call to start the looping_sound.
start_sound_loopThe proc that handles starting the actual core sound loop.
stopThe proc to call to stop the sound loop.
stop_currentStops sound playing on current channel, if specified

Var Details

audio_index

The index of the current song we're playing in the mid_sounds list, only used if in_order is used +This is immediately set to 1, so we start the index at 0

chance

Chance per loop to play a mid_sound.

cut_list

If we're using cut_mid, this is the list we cut from

direct

If true, plays directly to provided atoms instead of from them.

each_once

If we should always play each sound once per loop of all sounds. Weights here only really effect order, and could be disgarded

end_sound

(soundfile) The sound played after the main loop has concluded.

end_volume

Override for volume of end sound.

extra_range

The extra range of the sound in tiles, defaults to 0.

falloff_distance

The falloff distance of the sound,

falloff_exponent

How much the sound will be affected by falloff per tile.

ignore_walls

Are we ignoring walls? Defaults to TRUE.

in_order

Whether if the sounds should be played in order or not. Defaults to FALSE.

loop_started

Has the looping started yet?

max_loops

The max amount of loops to run for.

mid_length

The length of time to wait between playing mid_sounds.

mid_length_vary

Amount of time to add/take away from the mid length, randomly

mid_sounds

(list or soundfile) Since this can be either a list or a single soundfile you can have random sounds. May contain further lists but must contain a soundfile at the end. In a list, path must have also be assigned a value or it will be assigned 0 and not play.

parent

The source of the sound, or the recipient of the sound.

pressure_affected

Are the sounds affected by pressure? Defaults to TRUE.

skip_starting_sounds

Do we skip the starting sounds?

sound_channel

Sound channel to play on, random if not provided

start_length

How long to wait before starting the main loop after playing start_sound.

start_sound

(soundfile) Played before starting the mid_sounds loop.

start_volume

Override for volume of start sound.

timer_id

The ID of the timer that's used to loop the sounds.

use_reverb

Are the sounds subject to reverb? Defaults to TRUE.

vary

Whether or not the sounds will vary in pitch when played.

volume

Sound output volume.

Proc Details

get_sound

Returns the sound we should now be playing.

handle_parent_del

A simple proc to handle the deletion of the parent, so that it does not force it to hard-delete.

is_active

A simple proc that lets us know whether the sounds are currently active or not.

on_start

A proc that's there to handle delaying the main sounds if there's a start_sound, and simply starting the sound loop in general.

on_stop

Simple proc that's executed when the looping sound is stopped, so that the end_sound can be played, if there's one.

play

The proc that handles actually playing the sound.

+

Arguments:

+

set_mid_length

Applies a new mid length to the sound

set_parent

A simple proc to change who our parent is set to, also handling registering and unregistering the QDELETING signals on the parent.

sound_loop

A simple proc handling the looping of the sound itself.

+

Arguments:

+

start

The proc to actually kickstart the whole sound sequence. This is what you should call to start the looping_sound.

+

Arguments:

+

start_sound_loop

The proc that handles starting the actual core sound loop.

stop

The proc to call to stop the sound loop.

+

Arguments:

+

stop_current

Stops sound playing on current channel, if specified

\ No newline at end of file diff --git a/datum/looping_sound/lewd.html b/datum/looping_sound/lewd.html new file mode 100644 index 0000000000000..48aa40d603a49 --- /dev/null +++ b/datum/looping_sound/lewd.html @@ -0,0 +1 @@ +/datum/looping_sound/lewd - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lewd

The looping sound datum but we check for prefs and use conditional_pref_sound instead of playsound

Vars

pref_to_checkWhat preference are we going to check with our looping sound when we play it for people?

Var Details

pref_to_check

What preference are we going to check with our looping sound when we play it for people?

\ No newline at end of file diff --git a/datum/lootpanel.html b/datum/lootpanel.html new file mode 100644 index 0000000000000..1a65219521b9a --- /dev/null +++ b/datum/lootpanel.html @@ -0,0 +1,7 @@ +/datum/lootpanel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lootpanel

Loot panel

+

A datum that stores info containing the contents of a turf. +Handles opening the lootpanel UI and searching the turf for items.

Vars

contentsThe list of all search objects indexed.
notifiedWe've been notified about client version
ownerThe owner of the panel
source_turfThe turf being searched
to_imageThe list of search_objects needing processed

Procs

add_to_indexAdds the item to contents and to_image (if needed)
get_contentsUI helper for converting the associative list to a list of lists
grabClicks an object from the contents. Validates the object and the user
on_searchable_deletedOn contents change, either reset or update
openHelper to open the panel
populate_contentsUsed to populate contents and start generating if needed
process_imagesCalled by SSlooting whenever this datum is added to its backlog. +Iterates over to_image list to create icons, then removes them. +Returns boolean - whether this proc has finished the queue or not.
reset_contentsFor: Resetting to empty. Ignores the searchable qdel event

Var Details

contents

The list of all search objects indexed.

notified

We've been notified about client version

owner

The owner of the panel

source_turf

The turf being searched

to_image

The list of search_objects needing processed

Proc Details

add_to_index

Adds the item to contents and to_image (if needed)

get_contents

UI helper for converting the associative list to a list of lists

grab

Clicks an object from the contents. Validates the object and the user

on_searchable_deleted

On contents change, either reset or update

open

Helper to open the panel

populate_contents

Used to populate contents and start generating if needed

process_images

Called by SSlooting whenever this datum is added to its backlog. +Iterates over to_image list to create icons, then removes them. +Returns boolean - whether this proc has finished the queue or not.

reset_contents

For: Resetting to empty. Ignores the searchable qdel event

\ No newline at end of file diff --git a/datum/lua_editor.html b/datum/lua_editor.html new file mode 100644 index 0000000000000..44009beb429fd --- /dev/null +++ b/datum/lua_editor.html @@ -0,0 +1 @@ +/datum/lua_editor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lua_editor

Vars

argumentsArguments for a function call or coroutine resume
force_inputIf set, we will force the script input to be this
force_modalIf set, we will force the editor's modal to be this
force_view_chunkIf set, we will force the editor to look at this chunk
last_errorIf set, the latest code execution performed from the editor raised an error, and this is the message from that error
pageThe log page we are currently on
show_global_tableIf not set, the global table will not be shown in the lua editor

Var Details

arguments

Arguments for a function call or coroutine resume

force_input

If set, we will force the script input to be this

force_modal

If set, we will force the editor's modal to be this

force_view_chunk

If set, we will force the editor to look at this chunk

last_error

If set, the latest code execution performed from the editor raised an error, and this is the message from that error

page

The log page we are currently on

show_global_table

If not set, the global table will not be shown in the lua editor

\ No newline at end of file diff --git a/datum/lua_state.html b/datum/lua_state.html new file mode 100644 index 0000000000000..62c0a0dfb4c1e --- /dev/null +++ b/datum/lua_state.html @@ -0,0 +1 @@ +/datum/lua_state - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lua_state

Vars

ckey_last_runnerCkey of the last user who ran a script on this lua state.
functions_to_executeCallbacks that need to be ran on next tick
globalsA list of all the variables in the state's environment
internal_idThe internal ID of the lua state stored in dreamluau's state list
logA log of every return, yield, and error for each chunk execution and function call
supress_runtimesWhether to supress logging BYOND runtimes for this state.
timer_enabledWhether the timer.lua script has been included into this lua context state.

Procs

resumePrefer calling SSlua.queue_resume over directly calling this

Var Details

ckey_last_runner

Ckey of the last user who ran a script on this lua state.

functions_to_execute

Callbacks that need to be ran on next tick

globals

A list of all the variables in the state's environment

internal_id

The internal ID of the lua state stored in dreamluau's state list

log

A log of every return, yield, and error for each chunk execution and function call

supress_runtimes

Whether to supress logging BYOND runtimes for this state.

timer_enabled

Whether the timer.lua script has been included into this lua context state.

Proc Details

resume

Prefer calling SSlua.queue_resume over directly calling this

\ No newline at end of file diff --git a/datum/mafia_ability.html b/datum/mafia_ability.html new file mode 100644 index 0000000000000..21eb3c9f9662a --- /dev/null +++ b/datum/mafia_ability.html @@ -0,0 +1,24 @@ +/datum/mafia_ability - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mafia_ability

Vars

action_priorityThe priority level this action must be sent at. Setting this to null will prevent it from being triggered automatically. +(COMSIG_MAFIA_NIGHT_PRE_ACTION_PHASE|COMSIG_MAFIA_NIGHT_ACTION_PHASE|COMSIG_MAFIA_NIGHT_KILL_PHASE)
host_roleThe mafia role that holds this ability.
target_roleThe mafia role this ability is targeting, if necessary.
use_flagsWhether this ability can be used on yourself. Selections: (CAN_USE_ON_OTHERS | CAN_USE_ON_SELF | CAN_USE_ON_DEAD)
using_abilityBoolean on whether the ability was selected to be used during the proper period.
valid_use_periodWhen the ability can be used: (MAFIA_PHASE_DAY | MAFIA_PHASE_VOTING | MAFIA_PHASE_NIGHT)

Procs

clean_action_refsCalled when refs need to be cleared, when the target is no longer set.
handle_speechHandles special messagese sent by ability-specific stuff (such as changeling chat).
perform_action_targetCalled when using the ability. +Will first check if you are using the ability, then whether you can use it. +Finally it will check if you are interrupted, then will pass that you've performed it. +Args: +game - The Mafia controller that holds reference to the game. +day_target - Set when using actions during the day, this is the person that is the target during this phase.
set_target##set_target
validate_action_targetUsed to check if this ability can be used on a potential target. +Args: +game - The Mafia controller that holds reference to the game. +potential_target - The player we are attempting to validate the action on. +silent - Whether to give feedback to the player about why the action cannot be used.

Var Details

action_priority

The priority level this action must be sent at. Setting this to null will prevent it from being triggered automatically. +(COMSIG_MAFIA_NIGHT_PRE_ACTION_PHASE|COMSIG_MAFIA_NIGHT_ACTION_PHASE|COMSIG_MAFIA_NIGHT_KILL_PHASE)

host_role

The mafia role that holds this ability.

target_role

The mafia role this ability is targeting, if necessary.

use_flags

Whether this ability can be used on yourself. Selections: (CAN_USE_ON_OTHERS | CAN_USE_ON_SELF | CAN_USE_ON_DEAD)

using_ability

Boolean on whether the ability was selected to be used during the proper period.

valid_use_period

When the ability can be used: (MAFIA_PHASE_DAY | MAFIA_PHASE_VOTING | MAFIA_PHASE_NIGHT)

Proc Details

clean_action_refs

Called when refs need to be cleared, when the target is no longer set.

handle_speech

Handles special messagese sent by ability-specific stuff (such as changeling chat).

perform_action_target

Called when using the ability. +Will first check if you are using the ability, then whether you can use it. +Finally it will check if you are interrupted, then will pass that you've performed it. +Args: +game - The Mafia controller that holds reference to the game. +day_target - Set when using actions during the day, this is the person that is the target during this phase.

set_target

##set_target

+

Used for Night abilities ONLY +Sets the ability's target, which will cause the action to be performed on them at the end of the night. +Subtypes can override this for things like self-abilities (such as shooting visitors).

validate_action_target

Used to check if this ability can be used on a potential target. +Args: +game - The Mafia controller that holds reference to the game. +potential_target - The player we are attempting to validate the action on. +silent - Whether to give feedback to the player about why the action cannot be used.

\ No newline at end of file diff --git a/datum/mafia_ability/attack_player.html b/datum/mafia_ability/attack_player.html new file mode 100644 index 0000000000000..13e520ecbd3db --- /dev/null +++ b/datum/mafia_ability/attack_player.html @@ -0,0 +1,2 @@ +/datum/mafia_ability/attack_player - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

attack_player

Attack

+

During the night, attacks a player in attempts to kill them.

Vars

attack_actionThe message told to the player when they are killed.
honorableWhether the player will suicide if they hit a Town member.

Var Details

attack_action

The message told to the player when they are killed.

honorable

Whether the player will suicide if they hit a Town member.

\ No newline at end of file diff --git a/datum/mafia_ability/attack_visitors.html b/datum/mafia_ability/attack_visitors.html new file mode 100644 index 0000000000000..51e9cd436c809 --- /dev/null +++ b/datum/mafia_ability/attack_visitors.html @@ -0,0 +1,2 @@ +/datum/mafia_ability/attack_visitors - /tg/ Station 13
/tg/ Station 13 - Modules - Types

attack_visitors

Alert

+

During the night, goes on watch, killing all players who visit.

\ No newline at end of file diff --git a/datum/mafia_ability/changeling_kill.html b/datum/mafia_ability/changeling_kill.html new file mode 100644 index 0000000000000..2dc2a4153c770 --- /dev/null +++ b/datum/mafia_ability/changeling_kill.html @@ -0,0 +1,4 @@ +/datum/mafia_ability/changeling_kill - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

changeling_kill

Changeling kill

+

During the night, changelings vote for who to kill. +The attacker will always be the first person in the list, killing them will go to the next.

Vars

ling_sentBoolean on whether a Changeling has been sent to attack someone yet.

Procs

handle_speechhandle_message

Var Details

ling_sent

Boolean on whether a Changeling has been sent to attack someone yet.

Proc Details

handle_speech

handle_message

+

During the night, Changelings talking will instead redirect it to Changeling chat.

\ No newline at end of file diff --git a/datum/mafia_ability/flicker_rampage.html b/datum/mafia_ability/flicker_rampage.html new file mode 100644 index 0000000000000..42a9151157f75 --- /dev/null +++ b/datum/mafia_ability/flicker_rampage.html @@ -0,0 +1,3 @@ +/datum/mafia_ability/flicker_rampage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

flicker_rampage

Flicker/Rampage

+

During the night, turns the lights off in a player's house. +If they visit someone with the lights off again, they will kill all players they previously visited.

Vars

darkened_playersList of all players in the dark, which we can rampage.

Var Details

darkened_players

List of all players in the dark, which we can rampage.

\ No newline at end of file diff --git a/datum/mafia_ability/heal.html b/datum/mafia_ability/heal.html new file mode 100644 index 0000000000000..669d143a6ebc9 --- /dev/null +++ b/datum/mafia_ability/heal.html @@ -0,0 +1,3 @@ +/datum/mafia_ability/heal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

heal

Heal

+

During the night, Healing will prevent a player from dying. +Can be used to protect yourself, but only once.

Vars

saving_messageThe message sent when you've successfully saved someone.

Var Details

saving_message

The message sent when you've successfully saved someone.

\ No newline at end of file diff --git a/datum/mafia_ability/investigate.html b/datum/mafia_ability/investigate.html new file mode 100644 index 0000000000000..d2d6339c1c752 --- /dev/null +++ b/datum/mafia_ability/investigate.html @@ -0,0 +1,2 @@ +/datum/mafia_ability/investigate - /tg/ Station 13
/tg/ Station 13 - Modules - Types

investigate

Investigate

+

During the night, Investigating will reveal the person's faction.

\ No newline at end of file diff --git a/datum/mafia_ability/reaveal_role.html b/datum/mafia_ability/reaveal_role.html new file mode 100644 index 0000000000000..877d5e302839a --- /dev/null +++ b/datum/mafia_ability/reaveal_role.html @@ -0,0 +1,3 @@ +/datum/mafia_ability/reaveal_role - /tg/ Station 13
/tg/ Station 13 - Modules - Types

reaveal_role

Reveal

+

During the night, revealing someone will announce their role when day comes. +This is one time use, we'll delete ourselves once done.

\ No newline at end of file diff --git a/datum/mafia_ability/roleblock.html b/datum/mafia_ability/roleblock.html new file mode 100644 index 0000000000000..1827ef32d2fe0 --- /dev/null +++ b/datum/mafia_ability/roleblock.html @@ -0,0 +1,3 @@ +/datum/mafia_ability/roleblock - /tg/ Station 13
/tg/ Station 13 - Modules - Types

roleblock

Roleblock

+

During the night, prevents a player from using their role abilities. +This is done before anything else.

\ No newline at end of file diff --git a/datum/mafia_ability/seance.html b/datum/mafia_ability/seance.html new file mode 100644 index 0000000000000..9a3a7127eaa3c --- /dev/null +++ b/datum/mafia_ability/seance.html @@ -0,0 +1,3 @@ +/datum/mafia_ability/seance - /tg/ Station 13
/tg/ Station 13 - Modules - Types

seance

Pray

+

During the night, revealing someone will announce their role when day comes. +This is one time use, we'll delete ourselves once done.

\ No newline at end of file diff --git a/datum/mafia_ability/self_reveal.html b/datum/mafia_ability/self_reveal.html new file mode 100644 index 0000000000000..9c9a6a6b0359f --- /dev/null +++ b/datum/mafia_ability/self_reveal.html @@ -0,0 +1,3 @@ +/datum/mafia_ability/self_reveal - /tg/ Station 13
/tg/ Station 13 - Modules - Types

self_reveal

Self reveal

+

During the day, reveals your role to everyone and gives you a voting power boost, +however it will additionally make you unable to be protected.

\ No newline at end of file diff --git a/datum/mafia_ability/thoughtfeeder.html b/datum/mafia_ability/thoughtfeeder.html new file mode 100644 index 0000000000000..e1b4ae2820ce8 --- /dev/null +++ b/datum/mafia_ability/thoughtfeeder.html @@ -0,0 +1,2 @@ +/datum/mafia_ability/thoughtfeeder - /tg/ Station 13
/tg/ Station 13 - Modules - Types

thoughtfeeder

Thoughtfeeding

+

During the night, thoughtfeeding will reveal the person's exact role.

\ No newline at end of file diff --git a/datum/mafia_ability/vest.html b/datum/mafia_ability/vest.html new file mode 100644 index 0000000000000..be876f2fa779f --- /dev/null +++ b/datum/mafia_ability/vest.html @@ -0,0 +1,2 @@ +/datum/mafia_ability/vest - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vest

Vest

+

During the night, Vesting will prevent the user from dying.

Vars

chargesAmount of vests that can be used until the power deletes itself.

Var Details

charges

Amount of vests that can be used until the power deletes itself.

\ No newline at end of file diff --git a/datum/mafia_ability/voting.html b/datum/mafia_ability/voting.html new file mode 100644 index 0000000000000..8552ff34d307e --- /dev/null +++ b/datum/mafia_ability/voting.html @@ -0,0 +1,2 @@ +/datum/mafia_ability/voting - /tg/ Station 13
/tg/ Station 13 - Modules - Types

voting

Voting

+

During the vote period, voting for someone is showing your intent to get them lynched.

\ No newline at end of file diff --git a/datum/mafia_controller.html b/datum/mafia_controller.html new file mode 100644 index 0000000000000..b8770d77304b3 --- /dev/null +++ b/datum/mafia_controller.html @@ -0,0 +1,161 @@ +/datum/mafia_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mafia_controller

The mafia controller handles the mafia minigame in progress. +It is first created when the first ghost signs up to play.

Vars

all_rolesall roles in the game, dead or alive. check their game status if you only want living or dead.
current_maptemplate picked when the game starts. used for the name and desc reading
current_setup_textReadable list of roles in current game, sent to the tgui panel for roles list > list("Psychologist x1", "Clown x2")
custom_setupfor debugging and testing a full game, or adminbuse. If this is not empty, it will use this as a setup. clears when game is over
default_role_listThe 12 roles used in a default game, selected randomly from each list, going in order of position. +This is balanced for player amount, regardless of players you'll still be about equal town and evils.
early_startwas our game forced to start early?
judgement_abstain_votesand these (judgement_innocent_votes, judgement_abstain_votes and judgement_guilty_votes) are the judgement phase votes, aka people sorting themselves into guilty and innocent, and "eh, i don't really care" lists. whichever has more inno or guilty wins!
landmarksspawn points for players, each one has a house
living_rolesall living roles in the game, removed on death.
map_deletermap generation tool that deletes the current map after the game finishes
next_phase_timercurrent timer for phase
on_trialcurrent role on trial for the judgement phase, will die if guilty is greater than innocent
phasewhat part of the game you're playing in. day phases, night phases, judgement phases, etc.
player_outfitstarting outfit for all mafia players. it's just a grey jumpsuit.
player_role_lookupexists to speed up role retrieval, it's a dict. +player_role_lookup[player ckey/PDA] will give you the role they play
time_speedupHow much faster the game should be, which triggers when half the players are dead.
town_center_landmarktown center for when people get put on trial
turnhow long the game has gone on for, changes with every sunrise. day one, night one, day two, etc.
votesgroup voting on one person, like putting people to trial or choosing who to kill as mafia

Procs

add_setup_roleHelper proc that adds a random role of a type to a setup. if it doesn't exist in the setup, it adds the path to the list and otherwise bumps the path in the list up one. unique roles can only get added once.
award_roleLets the game award roles with all their checks and sanity, prevents achievements given out for debug games
basic_setupCalled when enough players have signed up to fill a setup. DOESN'T NECESSARILY MEAN THE GAME WILL START.
check_signupsFilters inactive player into a different list until they reconnect, and removes players who are no longer ghosts.
check_start_votesChecks if we have enough early start votes to begin the game early.
check_trialPlayers have voted someone up, and now the person must defend themselves while the town votes innocent or guilty.
check_victoryChecks to see if a faction (or solo antagonist) has won.
create_bodiesCalled when the game is setting up, AFTER map is loaded but BEFORE the phase timers start. Creates and places each role's body and gives the correct player key
display_votesAdds mutable appearances to people who get publicly voted on (so not night votes) showing how many people are picking them +Arguments:
end_gameCleans up the game, resetting variables back to the beginning and removing the map with the generator.
filter_playersHandles the filtering of disconected signups when picking who gets to be in the round.
forced_setupGenerates a forced role list and runs the game with the current number of signed-up players.
generate_standard_setupReturns a standard setup, with certain important/unique roles guaranteed.
get_random_voterReturns a random person who voted for whatever vote (day vote, night kill vote) +Arguments:
get_role_playerFrom a 'user' (Either a mob or ModPC) or TGUI UI, will try to find the Mafia role from 'player_role_lookup'.
get_vote_countReturns how many people voted for the role, in whatever vote (day vote, night kill vote) +Arguments:
get_vote_winnerReturns whichever role got the most votes, in whatever vote (day vote, night kill vote) +returns null if no votes +Arguments:
lockdownAfter the voting and judgement phases, the game goes to night shutting the windows and beginning night with a proc.
lynchPlayers have voted innocent or guilty on the person on trial, and that person is now killed or returned home.
prepare_gameTriggers at beginning of the game when there is a confirmed list of valid, ready players. +Creates a 100% ready game that has NOT started (no players in bodies) +Followed by start game
reset_votesClears out the votes of a certain type (day votes, mafia kill votes) while leaving others untouched
resolve_nightThe end of the night, and a series of signals for the order of events on a night.
send_homeTeenie helper proc to move players back to their home. +Used in the above, but also used in the debug button "send all players home" +Arguments:
send_messageSends a global message to all players, or just 'team' if set.
signup_mafiaSigns the player up for Mafia, or removes them from the list if they are already +signed up. +Args:
start_dayHow every day starts.
start_gameThe game by this point is now all set up, and so we can put people in their bodies and start the first phase.
start_nightThe actual start of night for players. Mostly info is given at the start of the night as the end of the night is when votes and actions are submitted and tried.
start_the_endThe end of the game is in two procs, because we want a bit of time for players to see eachothers roles. +Because of how check_victory works, the game is halted in other places by this point. +We won't delete ourselves in a certain amount of time in unit tests, as the unit test will handle our deletion instead.
start_voting_phasePlayers have finished the discussion period, and now must put up someone to the chopping block.
toggle_night_curtainsShuts poddoors attached to mafia. +Arguments:
try_autostartCalled when someone signs up, and sees if there are enough people in the signup list to begin.
vote_forProc that goes off when players vote for something with their mafia panel.

Var Details

all_roles

all roles in the game, dead or alive. check their game status if you only want living or dead.

current_map

template picked when the game starts. used for the name and desc reading

current_setup_text

Readable list of roles in current game, sent to the tgui panel for roles list > list("Psychologist x1", "Clown x2")

custom_setup

for debugging and testing a full game, or adminbuse. If this is not empty, it will use this as a setup. clears when game is over

default_role_list

The 12 roles used in a default game, selected randomly from each list, going in order of position. +This is balanced for player amount, regardless of players you'll still be about equal town and evils.

early_start

was our game forced to start early?

judgement_abstain_votes

and these (judgement_innocent_votes, judgement_abstain_votes and judgement_guilty_votes) are the judgement phase votes, aka people sorting themselves into guilty and innocent, and "eh, i don't really care" lists. whichever has more inno or guilty wins!

landmarks

spawn points for players, each one has a house

living_roles

all living roles in the game, removed on death.

map_deleter

map generation tool that deletes the current map after the game finishes

next_phase_timer

current timer for phase

on_trial

current role on trial for the judgement phase, will die if guilty is greater than innocent

phase

what part of the game you're playing in. day phases, night phases, judgement phases, etc.

player_outfit

starting outfit for all mafia players. it's just a grey jumpsuit.

player_role_lookup

exists to speed up role retrieval, it's a dict. +player_role_lookup[player ckey/PDA] will give you the role they play

time_speedup

How much faster the game should be, which triggers when half the players are dead.

town_center_landmark

town center for when people get put on trial

turn

how long the game has gone on for, changes with every sunrise. day one, night one, day two, etc.

votes

group voting on one person, like putting people to trial or choosing who to kill as mafia

Proc Details

add_setup_role

Helper proc that adds a random role of a type to a setup. if it doesn't exist in the setup, it adds the path to the list and otherwise bumps the path in the list up one. unique roles can only get added once.

award_role

Lets the game award roles with all their checks and sanity, prevents achievements given out for debug games

+

Arguments:

+

basic_setup

Called when enough players have signed up to fill a setup. DOESN'T NECESSARILY MEAN THE GAME WILL START.

+

Checks for a custom setup, if so gets the required players from that and if not it sets the player requirement to MAFIA_MAX_PLAYER_COUNT and generates one IF basic setup starts a game. +Checks if everyone signed up is an observer, and is still connected. If people aren't, they're removed from the list. +If there aren't enough players post sanity, it aborts. otherwise, it selects enough people for the game and starts preparing the game for real.

check_signups

Filters inactive player into a different list until they reconnect, and removes players who are no longer ghosts.

+

If a disconnected player gets a non-ghost mob and reconnects, they will be first put back into mafia_signup then filtered by that.

check_start_votes

Checks if we have enough early start votes to begin the game early.

+

Checks if we have the bare minimum of three signups, then checks if the number of early voters is at least half of the total +number of active signups.

check_trial

Players have voted someone up, and now the person must defend themselves while the town votes innocent or guilty.

+

What players do in this phase:

+

check_victory

Checks to see if a faction (or solo antagonist) has won.

+

Calculates in this order:

+

create_bodies

Called when the game is setting up, AFTER map is loaded but BEFORE the phase timers start. Creates and places each role's body and gives the correct player key

+

Notably:

+

display_votes

Adds mutable appearances to people who get publicly voted on (so not night votes) showing how many people are picking them +Arguments:

+

end_game

Cleans up the game, resetting variables back to the beginning and removing the map with the generator.

filter_players

Handles the filtering of disconected signups when picking who gets to be in the round.

+

Filters out the player list, from a given max_players count. If more players are found +in the signup list than max_players, those players will be notified that they will not be put into the game.

+

This should only be run as we are in the process of starting a game.

+

max_players - The maximum number of keys to put in our return list before we start telling people they're not getting in. +filtered_keys_and_pdas - A list of player ckeys and PDAs, to be included in the game.

forced_setup

Generates a forced role list and runs the game with the current number of signed-up players.

+

Generates a randomized setup, and begins the game with everyone currently signed up.

generate_standard_setup

Returns a standard setup, with certain important/unique roles guaranteed.

+

please check the variables at the top of the proc to see how much of each role types it picks +Args: +req_players - The amount of players needed.

get_random_voter

Returns a random person who voted for whatever vote (day vote, night kill vote) +Arguments:

+

get_role_player

From a 'user' (Either a mob or ModPC) or TGUI UI, will try to find the Mafia role from 'player_role_lookup'.

get_vote_count

Returns how many people voted for the role, in whatever vote (day vote, night kill vote) +Arguments:

+

get_vote_winner

Returns whichever role got the most votes, in whatever vote (day vote, night kill vote) +returns null if no votes +Arguments:

+

lockdown

After the voting and judgement phases, the game goes to night shutting the windows and beginning night with a proc.

lynch

Players have voted innocent or guilty on the person on trial, and that person is now killed or returned home.

+

What players do in this phase:

+

prepare_game

Triggers at beginning of the game when there is a confirmed list of valid, ready players. +Creates a 100% ready game that has NOT started (no players in bodies) +Followed by start game

+

Does the following:

+

reset_votes

Clears out the votes of a certain type (day votes, mafia kill votes) while leaving others untouched

resolve_night

The end of the night, and a series of signals for the order of events on a night.

+

Order of events, and what they mean:

+

send_home

Teenie helper proc to move players back to their home. +Used in the above, but also used in the debug button "send all players home" +Arguments:

+

send_message

Sends a global message to all players, or just 'team' if set.

signup_mafia

Signs the player up for Mafia, or removes them from the list if they are already +signed up. +Args:

+

start_day

How every day starts.

+

What players do in this phase:

+

start_game

The game by this point is now all set up, and so we can put people in their bodies and start the first phase.

+

Does the following:

+

start_night

The actual start of night for players. Mostly info is given at the start of the night as the end of the night is when votes and actions are submitted and tried.

+

What players do in this phase:

+

start_the_end

The end of the game is in two procs, because we want a bit of time for players to see eachothers roles. +Because of how check_victory works, the game is halted in other places by this point. +We won't delete ourselves in a certain amount of time in unit tests, as the unit test will handle our deletion instead.

+

What players do in this phase:

+

start_voting_phase

Players have finished the discussion period, and now must put up someone to the chopping block.

+

What players do in this phase:

+

toggle_night_curtains

Shuts poddoors attached to mafia. +Arguments:

+

try_autostart

Called when someone signs up, and sees if there are enough people in the signup list to begin.

+

Only checks if everyone is actually valid to start (still connected and an observer) if there are enough players (basic_setup)

vote_for

Proc that goes off when players vote for something with their mafia panel.

+

If teams, it hides the tally overlay and only sends the vote messages to the team that is voting +Arguments:

+
\ No newline at end of file diff --git a/datum/mafia_role.html b/datum/mafia_role.html new file mode 100644 index 0000000000000..d7964df1a9bdd --- /dev/null +++ b/datum/mafia_role.html @@ -0,0 +1,13 @@ +/datum/mafia_role - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mafia_role

Vars

game_statusso mafia have to also kill them to have a majority
hud_iconicon state in the mafia dmi of the hud of the role, used in the mafia ui
mafia_alertThe mafia popup we edit text to give different alerts for (such as when to vote).
mafia_panelThe Mafia innate action panel that allows players to view the game's state.
note_chat_sending_cooldownThe cooldown between being able to send your will in chat.
player_keyThe ckey of the person playing as this Mafia role, CAN BE NULL IN FAVOR OF player_pda.
player_pdaThe PDA of the person playing as this Mafia role, CAN BE NULL IN FAVOR OF player_key.
revealed_iconicon state in the mafia dmi of the hud of the role, used in the mafia ui
revealed_outfitwhat they get equipped with when they are revealed
role_flagsrole flags (special status of roles like detection immune)
role_messagesList of all messages this role got throughout the game.
role_typehow the random setup chooses which roles get put in
role_unique_actionsList of all mafia abilities this role is able to perform.
special_ui_themeset this to something cool for antagonists and their window will look different
vote_powerhow many votes submitted when you vote. used in voting and deciding victory.
winner_awardwhat the role gets when it wins a game
written_notesThe player's written notes, that they can send to chat at any time.

Procs

handle_speechhandle_speech
killTests kill immunities, if nothing prevents the kill, kills this role.
put_player_in_bodyPuts the player in their body and keeps track of their previous one to put them back in later. +Adds the playing_mafia trait so people examining them will know why they're currently lacking a soul.
send_message_to_playersend_message_to_player

Var Details

game_status

so mafia have to also kill them to have a majority

hud_icon

icon state in the mafia dmi of the hud of the role, used in the mafia ui

mafia_alert

The mafia popup we edit text to give different alerts for (such as when to vote).

mafia_panel

The Mafia innate action panel that allows players to view the game's state.

note_chat_sending_cooldown

The cooldown between being able to send your will in chat.

player_key

The ckey of the person playing as this Mafia role, CAN BE NULL IN FAVOR OF player_pda.

player_pda

The PDA of the person playing as this Mafia role, CAN BE NULL IN FAVOR OF player_key.

revealed_icon

icon state in the mafia dmi of the hud of the role, used in the mafia ui

revealed_outfit

what they get equipped with when they are revealed

role_flags

role flags (special status of roles like detection immune)

role_messages

List of all messages this role got throughout the game.

role_type

how the random setup chooses which roles get put in

role_unique_actions

List of all mafia abilities this role is able to perform.

special_ui_theme

set this to something cool for antagonists and their window will look different

vote_power

how many votes submitted when you vote. used in voting and deciding victory.

winner_award

what the role gets when it wins a game

written_notes

The player's written notes, that they can send to chat at any time.

Proc Details

handle_speech

handle_speech

+

Handles Mafia roles talking in chat. +First it will go through their abilities for Ability-specific speech, +if none affects it, we will go to day chat.

kill

Tests kill immunities, if nothing prevents the kill, kills this role.

+

Does not count as visiting, see visit proc.

put_player_in_body

Puts the player in their body and keeps track of their previous one to put them back in later. +Adds the playing_mafia trait so people examining them will know why they're currently lacking a soul.

send_message_to_player

send_message_to_player

+

Sends a message to a player, checking if they are playing through a PDA or not. +Args:

+
\ No newline at end of file diff --git a/datum/mafia_role/obsessed.html b/datum/mafia_role/obsessed.html new file mode 100644 index 0000000000000..2d3692cede34f --- /dev/null +++ b/datum/mafia_role/obsessed.html @@ -0,0 +1 @@ +/datum/mafia_role/obsessed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

obsessed

Vars

obsessionThe person the obsessed has to get lynched in order to win.

Var Details

obsession

The person the obsessed has to get lynched in order to win.

\ No newline at end of file diff --git a/datum/manifest.html b/datum/manifest.html new file mode 100644 index 0000000000000..bcb4c073124dc --- /dev/null +++ b/datum/manifest.html @@ -0,0 +1,8 @@ +/datum/manifest - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

manifest

Stores crew records.

Vars

generalAll of the crew records.
lockedThis list tracks characters spawned in the world and cannot be modified in-game. Currently referenced by respawn_character().
print_countTotal number of security rapsheet prints. Changes the header.

Procs

buildBuilds the list of crew records for all crew members.
change_picturesUsing the name to find the record, and person in reference to the body, we recreate photos for the manifest (and records). +Args:
get_exploitable_manifestProc that returns a list of all the exploitables there is currently.
get_htmlReturns the manifest as an html.
get_manifestGets the current manifest.
injectInjects a record into the manifest.
modifyEdits the rank and trim of the found record.

Var Details

general

All of the crew records.

locked

This list tracks characters spawned in the world and cannot be modified in-game. Currently referenced by respawn_character().

print_count

Total number of security rapsheet prints. Changes the header.

Proc Details

build

Builds the list of crew records for all crew members.

change_pictures

Using the name to find the record, and person in reference to the body, we recreate photos for the manifest (and records). +Args:

+

get_exploitable_manifest

Proc that returns a list of all the exploitables there is currently.

get_html

Returns the manifest as an html.

get_manifest

Gets the current manifest.

inject

Injects a record into the manifest.

modify

Edits the rank and trim of the found record.

\ No newline at end of file diff --git a/datum/map_config.html b/datum/map_config.html new file mode 100644 index 0000000000000..e8785838be889 --- /dev/null +++ b/datum/map_config.html @@ -0,0 +1 @@ +/datum/map_config - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

map_config

Vars

blacklist_fileIf no minetype is set, this will be the blacklist file used
job_changesDictionary of job sub-typepath to template changes dictionary
library_areasList of additional areas that count as a part of the library
load_all_away_missionsBoolean that tells SSmapping to load all away missions in the codebase.
minetypeThe type of mining Z-level that should be loaded.
planetaryBoolean that tells us if this is a planetary station. (like IceBoxStation)
skipped_testsList of unit tests that are skipped when running this map

Var Details

blacklist_file

If no minetype is set, this will be the blacklist file used

job_changes

Dictionary of job sub-typepath to template changes dictionary

library_areas

List of additional areas that count as a part of the library

load_all_away_missions

Boolean that tells SSmapping to load all away missions in the codebase.

minetype

The type of mining Z-level that should be loaded.

planetary

Boolean that tells us if this is a planetary station. (like IceBoxStation)

skipped_tests

List of unit tests that are skipped when running this map

\ No newline at end of file diff --git a/datum/map_generator.html b/datum/map_generator.html new file mode 100644 index 0000000000000..583f8746cb79d --- /dev/null +++ b/datum/map_generator.html @@ -0,0 +1,2 @@ +/datum/map_generator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

map_generator

This type is responsible for any map generation behavior that is done in areas, override this to allow for +area-specific map generation. This generation is ran by areas in initialize.

Vars

mapMap information, such as the start and end turfs of the map generation.
modulesThe map generator modules that we will generate and sync to.

Procs

generate_terrainThis proc will be ran by areas on Initialize, and provides the areas turfs as argument to allow for generation.
populate_terrainPopulate terrain with flora, fauna, features and basically everything that isn't a turf.

Var Details

map

Map information, such as the start and end turfs of the map generation.

modules

The map generator modules that we will generate and sync to.

Proc Details

generate_terrain

This proc will be ran by areas on Initialize, and provides the areas turfs as argument to allow for generation.

populate_terrain

Populate terrain with flora, fauna, features and basically everything that isn't a turf.

\ No newline at end of file diff --git a/datum/map_generator/cave_generator.html b/datum/map_generator/cave_generator.html new file mode 100644 index 0000000000000..4c9b5d5896727 --- /dev/null +++ b/datum/map_generator/cave_generator.html @@ -0,0 +1,29 @@ +/datum/map_generator/cave_generator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cave_generator

Vars

biome_accepted_turfsThe turf types to replace with a biome-related turf, as typecache. +Leave empty for all open turfs (but not closed turfs) to be hijacked.
birth_limitHow much neighbours does a dead cell need to become alive
closed_turf_typesExpanded list of the types that spawns if the turf is closed
death_limitHow little neighbours does a alive cell need to die
feature_spawn_chanceBase chance of spawning features
feature_spawn_listExpanded list of extra features that can spawn in the area. Reads from the weighted list
flora_spawn_chanceBase chance of spawning flora
flora_spawn_listExpanded list of flora that can spawn in the area. Reads from the weighted list
generated_turfs_per_biomeAn associative list of biome type to the list of turfs that were +generated of that biome specifically. Helps to improve the efficiency +of biome-related operations. Is populated through +generate_terrain_with_biomes().
initial_closed_chanceChance of cells starting closed
megafauna_spawn_listExpanded list of Megafauna that can spawn in the area. Reads from the weighted list
mob_spawn_chanceBase chance of spawning a mob
mob_spawn_listExpanded list of mobs that can spawn in the area. Reads from the weighted list
mob_spawn_no_mega_listThe mob spawn list but with no megafauna markers. autogenerated
open_turf_typesExpanded list of the types that spawns if the turf is open
perlin_zoomUsed to select "zoom" level into the perlin noise, higher numbers +result in slower transitions
possible_biomes2D list of all biomes based on heat and humidity combos. Associative by +BIOME_X_HEAT and then by BIOME_X_HUMIDITY (i.e. +possible_biomes[BIOME_LOW_HEAT][BIOME_LOWMEDIUM_HUMIDITY]). +Check /datum/map_generator/cave_generator/jungle for an example +of how to set it up properly.
smoothing_iterationsAmount of smoothing iterations
string_genUnique ID for this spawner
weighted_closed_turf_typesWeighted list of the types that spawns if the turf is closed
weighted_feature_spawn_listWeighted list of extra features that can spawn in the area, such as geysers.
weighted_flora_spawn_listWeighted list of flora that can spawn in the area.
weighted_mob_spawn_listWeighted list of mobs that can spawn in the area.
weighted_open_turf_typesWeighted list of the types that spawns if the turf is open

Procs

generate_terrain_with_biomesThis proc handles including biomes in the cave generation. This is slower than +generate_terrain(), so please use it only if you actually need biomes.
populate_terrain_with_biomesThis handles the population of terrain with biomes. Should only be called by +populate_terrain(), if you find yourself calling this, you're probably not +doing it right.

Var Details

biome_accepted_turfs

The turf types to replace with a biome-related turf, as typecache. +Leave empty for all open turfs (but not closed turfs) to be hijacked.

birth_limit

How much neighbours does a dead cell need to become alive

closed_turf_types

Expanded list of the types that spawns if the turf is closed

death_limit

How little neighbours does a alive cell need to die

feature_spawn_chance

Base chance of spawning features

feature_spawn_list

Expanded list of extra features that can spawn in the area. Reads from the weighted list

flora_spawn_chance

Base chance of spawning flora

flora_spawn_list

Expanded list of flora that can spawn in the area. Reads from the weighted list

generated_turfs_per_biome

An associative list of biome type to the list of turfs that were +generated of that biome specifically. Helps to improve the efficiency +of biome-related operations. Is populated through +generate_terrain_with_biomes().

initial_closed_chance

Chance of cells starting closed

megafauna_spawn_list

Expanded list of Megafauna that can spawn in the area. Reads from the weighted list

mob_spawn_chance

Base chance of spawning a mob

mob_spawn_list

Expanded list of mobs that can spawn in the area. Reads from the weighted list

mob_spawn_no_mega_list

The mob spawn list but with no megafauna markers. autogenerated

open_turf_types

Expanded list of the types that spawns if the turf is open

perlin_zoom

Used to select "zoom" level into the perlin noise, higher numbers +result in slower transitions

possible_biomes

2D list of all biomes based on heat and humidity combos. Associative by +BIOME_X_HEAT and then by BIOME_X_HUMIDITY (i.e. +possible_biomes[BIOME_LOW_HEAT][BIOME_LOWMEDIUM_HUMIDITY]). +Check /datum/map_generator/cave_generator/jungle for an example +of how to set it up properly.

smoothing_iterations

Amount of smoothing iterations

string_gen

Unique ID for this spawner

weighted_closed_turf_types

Weighted list of the types that spawns if the turf is closed

weighted_feature_spawn_list

Weighted list of extra features that can spawn in the area, such as geysers.

weighted_flora_spawn_list

Weighted list of flora that can spawn in the area.

weighted_mob_spawn_list

Weighted list of mobs that can spawn in the area.

weighted_open_turf_types

Weighted list of the types that spawns if the turf is open

Proc Details

generate_terrain_with_biomes

This proc handles including biomes in the cave generation. This is slower than +generate_terrain(), so please use it only if you actually need biomes.

+

This should only be called by generate_terrain(), if you have to call this, +you're probably doing something wrong.

populate_terrain_with_biomes

This handles the population of terrain with biomes. Should only be called by +populate_terrain(), if you find yourself calling this, you're probably not +doing it right.

+

This proc won't do anything if the area we're trying to generate in does not +have FLORA_ALLOWED or MOB_SPAWN_ALLOWED in its area_flags.

\ No newline at end of file diff --git a/datum/map_generator/cave_generator/icemoon.html b/datum/map_generator/cave_generator/icemoon.html new file mode 100644 index 0000000000000..dddc191223342 --- /dev/null +++ b/datum/map_generator/cave_generator/icemoon.html @@ -0,0 +1 @@ +/datum/map_generator/cave_generator/icemoon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

icemoon

Vars

weighted_feature_spawn_listNote that this spawn list is also in the lavaland generator

Var Details

weighted_feature_spawn_list

Note that this spawn list is also in the lavaland generator

\ No newline at end of file diff --git a/datum/map_generator/cave_generator/lavaland.html b/datum/map_generator/cave_generator/lavaland.html new file mode 100644 index 0000000000000..e2d24f2c59c70 --- /dev/null +++ b/datum/map_generator/cave_generator/lavaland.html @@ -0,0 +1 @@ +/datum/map_generator/cave_generator/lavaland - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lavaland

Vars

weighted_feature_spawn_listNote that this spawn list is also in the icemoon generator

Var Details

weighted_feature_spawn_list

Note that this spawn list is also in the icemoon generator

\ No newline at end of file diff --git a/datum/map_generator/cave_generator/moonstation/cave.html b/datum/map_generator/cave_generator/moonstation/cave.html new file mode 100644 index 0000000000000..9b45f48ef2e98 --- /dev/null +++ b/datum/map_generator/cave_generator/moonstation/cave.html @@ -0,0 +1 @@ +/datum/map_generator/cave_generator/moonstation/cave - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cave

Vars

weighted_feature_spawn_listNote that this spawn list is also in the lavaland and icemoon generator

Var Details

weighted_feature_spawn_list

Note that this spawn list is also in the lavaland and icemoon generator

\ No newline at end of file diff --git a/datum/map_generator/cave_generator/trench.html b/datum/map_generator/cave_generator/trench.html new file mode 100644 index 0000000000000..f0daa16d76f43 --- /dev/null +++ b/datum/map_generator/cave_generator/trench.html @@ -0,0 +1 @@ +/datum/map_generator/cave_generator/trench - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

trench

Vars

weighted_feature_spawn_listNote that this spawn list is also in the lavaland generator

Var Details

weighted_feature_spawn_list

Note that this spawn list is also in the lavaland generator

\ No newline at end of file diff --git a/datum/map_generator/jungle_generator.html b/datum/map_generator/jungle_generator.html new file mode 100644 index 0000000000000..6e7bc234b2e67 --- /dev/null +++ b/datum/map_generator/jungle_generator.html @@ -0,0 +1 @@ +/datum/map_generator/jungle_generator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

jungle_generator

Vars

perlin_zoomUsed to select "zoom" level into the perlin noise, higher numbers result in slower transitions
possible_biomes2D list of all biomes based on heat and humidity combos.

Procs

generate_terrainSeeds the rust-g perlin noise with a random number.

Var Details

perlin_zoom

Used to select "zoom" level into the perlin noise, higher numbers result in slower transitions

possible_biomes

2D list of all biomes based on heat and humidity combos.

Proc Details

generate_terrain

Seeds the rust-g perlin noise with a random number.

\ No newline at end of file diff --git a/datum/map_generator/ocean_generator.html b/datum/map_generator/ocean_generator.html new file mode 100644 index 0000000000000..c8e5e98849fcc --- /dev/null +++ b/datum/map_generator/ocean_generator.html @@ -0,0 +1 @@ +/datum/map_generator/ocean_generator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ocean_generator

Vars

perlin_zoomUsed to select "zoom" level into the perlin noise, higher numbers result in slower transitions
possible_biomes2D list of all biomes based on heat and humidity combos.

Procs

generate_terrainSeeds the rust-g perlin noise with a random number.

Var Details

perlin_zoom

Used to select "zoom" level into the perlin noise, higher numbers result in slower transitions

possible_biomes

2D list of all biomes based on heat and humidity combos.

Proc Details

generate_terrain

Seeds the rust-g perlin noise with a random number.

\ No newline at end of file diff --git a/datum/map_report.html b/datum/map_report.html new file mode 100644 index 0000000000000..f4ae6733aa7f1 --- /dev/null +++ b/datum/map_report.html @@ -0,0 +1 @@ +/datum/map_report - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

map_report

An error report generated by /datum/parsed_map/proc/check_for_errors.

Vars

loadableWhether this map can be loaded safely despite the errors.

Procs

show_toShow a rendered version of this report to a client.

Var Details

loadable

Whether this map can be loaded safely despite the errors.

Proc Details

show_to

Show a rendered version of this report to a client.

\ No newline at end of file diff --git a/datum/map_template.html b/datum/map_template.html new file mode 100644 index 0000000000000..741daf137ac67 --- /dev/null +++ b/datum/map_template.html @@ -0,0 +1 @@ +/datum/map_template - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

map_template

Vars

ceiling_baseturfsWhat baseturfs to set when replacing openspace when has_ceiling is true
ceiling_turfWhat turf to replace openspace with when has_ceiling is true
created_atomsthe list of atoms created by this template being loaded, only populated if returns_created_atoms is TRUE
default_areaDefault area associated with the map template
has_ceilingIf true, any openspace turfs above the template will be replaced with ceiling_turf when loading. Should probably be FALSE for lower levels of multi-z ruins.
returns_created_atomsif true, creates a list of all atoms created by this template loading, defaults to FALSE
should_place_on_topif true, turfs loaded from this template are placed on top of the turfs already there, defaults to TRUE

Procs

discover_offsetTakes in a type path, locates an instance of that type in the cached map, and calculates its offset from the origin of the map, returns this offset in the form list(x, y).

Var Details

ceiling_baseturfs

What baseturfs to set when replacing openspace when has_ceiling is true

ceiling_turf

What turf to replace openspace with when has_ceiling is true

created_atoms

the list of atoms created by this template being loaded, only populated if returns_created_atoms is TRUE

default_area

Default area associated with the map template

has_ceiling

If true, any openspace turfs above the template will be replaced with ceiling_turf when loading. Should probably be FALSE for lower levels of multi-z ruins.

returns_created_atoms

if true, creates a list of all atoms created by this template loading, defaults to FALSE

should_place_on_top

if true, turfs loaded from this template are placed on top of the turfs already there, defaults to TRUE

Proc Details

discover_offset

Takes in a type path, locates an instance of that type in the cached map, and calculates its offset from the origin of the map, returns this offset in the form list(x, y).

\ No newline at end of file diff --git a/datum/map_template/automap_template.html b/datum/map_template/automap_template.html new file mode 100644 index 0000000000000..5e6804007221e --- /dev/null +++ b/datum/map_template/automap_template.html @@ -0,0 +1 @@ +/datum/map_template/automap_template - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

automap_template

Vars

affects_builtin_mapTouches builtin map. Clears the area manually instead of blacklisting
load_turfOur load turf
required_mapThe map for which we load on

Var Details

affects_builtin_map

Touches builtin map. Clears the area manually instead of blacklisting

load_turf

Our load turf

required_map

The map for which we load on

\ No newline at end of file diff --git a/datum/map_template/basketball.html b/datum/map_template/basketball.html new file mode 100644 index 0000000000000..3a2ca4def5847 --- /dev/null +++ b/datum/map_template/basketball.html @@ -0,0 +1 @@ +/datum/map_template/basketball - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

basketball

Vars

home_team_uniformThe basketball teams home stadium uniform
team_nameThe name of the basketball team

Var Details

home_team_uniform

The basketball teams home stadium uniform

team_name

The name of the basketball team

\ No newline at end of file diff --git a/datum/map_template/ctf.html b/datum/map_template/ctf.html new file mode 100644 index 0000000000000..b7acdd8eda1eb --- /dev/null +++ b/datum/map_template/ctf.html @@ -0,0 +1 @@ +/datum/map_template/ctf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ctf

Vars

points_to_winScore required to win CTF on this map.

Var Details

points_to_win

Score required to win CTF on this map.

\ No newline at end of file diff --git a/datum/map_template/holodeck.html b/datum/map_template/holodeck.html new file mode 100644 index 0000000000000..62609ec3569b7 --- /dev/null +++ b/datum/map_template/holodeck.html @@ -0,0 +1 @@ +/datum/map_template/holodeck - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

holodeck

Procs

update_blacklistthis is what makes the holodeck not spawn anything on broken tiles (space and non engine plating / non holofloors)

Proc Details

update_blacklist

this is what makes the holodeck not spawn anything on broken tiles (space and non engine plating / non holofloors)

\ No newline at end of file diff --git a/datum/map_template/mafia.html b/datum/map_template/mafia.html new file mode 100644 index 0000000000000..3a83ac922c016 --- /dev/null +++ b/datum/map_template/mafia.html @@ -0,0 +1 @@ +/datum/map_template/mafia - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mafia

Vars

custom_outfitWhat costume will this map force players to start with?
descriptionA brief background tidbit
map_suffixThe map suffix to put onto the mappath.

Var Details

custom_outfit

What costume will this map force players to start with?

description

A brief background tidbit

map_suffix

The map suffix to put onto the mappath.

\ No newline at end of file diff --git a/datum/map_template/ruin.html b/datum/map_template/ruin.html new file mode 100644 index 0000000000000..8130ee2ecd203 --- /dev/null +++ b/datum/map_template/ruin.html @@ -0,0 +1 @@ +/datum/map_template/ruin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ruin

Vars

allow_duplicatesIf TRUE, this ruin can be placed multiple times in the same map
always_placeWill skip the whole weighting process and just plop this down, ideally you want the ruins of this kind to have no cost.
always_spawn_withThese ruin types will be spawned along with it (where dependent on the flag) eg list(/datum/map_template/ruin/space/teleporter_space = SPACERUIN_Z)
costCost in ruin budget placement system
mineral_costCost in the ruin budget placement system associated with mineral spawning. We use a different budget for mineral sources like ore vents. For practical use see seedRuins
never_spawn_withIf this ruin is spawned these will not eg list(/datum/map_template/ruin/base_alternate)
placement_weightHow often should this ruin appear
prefixStatic part of the ruin path eg "_maps\RandomRuins\LavaRuins"
ruin_typeWhat flavor or ruin is this? eg ZTRAIT_SPACE_RUINS
suffixThe dynamic part of the ruin path eg "lavaland_surface_ruinfile.dmm"
unpickableIf TRUE these won't be placed automatically (can still be forced or loaded with another ruin)

Var Details

allow_duplicates

If TRUE, this ruin can be placed multiple times in the same map

always_place

Will skip the whole weighting process and just plop this down, ideally you want the ruins of this kind to have no cost.

always_spawn_with

These ruin types will be spawned along with it (where dependent on the flag) eg list(/datum/map_template/ruin/space/teleporter_space = SPACERUIN_Z)

cost

Cost in ruin budget placement system

mineral_cost

Cost in the ruin budget placement system associated with mineral spawning. We use a different budget for mineral sources like ore vents. For practical use see seedRuins

never_spawn_with

If this ruin is spawned these will not eg list(/datum/map_template/ruin/base_alternate)

placement_weight

How often should this ruin appear

prefix

Static part of the ruin path eg "_maps\RandomRuins\LavaRuins"

ruin_type

What flavor or ruin is this? eg ZTRAIT_SPACE_RUINS

suffix

The dynamic part of the ruin path eg "lavaland_surface_ruinfile.dmm"

unpickable

If TRUE these won't be placed automatically (can still be forced or loaded with another ruin)

\ No newline at end of file diff --git a/datum/map_template/shuttle.html b/datum/map_template/shuttle.html new file mode 100644 index 0000000000000..cdf798dae257c --- /dev/null +++ b/datum/map_template/shuttle.html @@ -0,0 +1,5 @@ +/datum/map_template/shuttle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shuttle

Vars

admin_notesShuttle warnings and hazards to the admin who spawns the shuttle
credit_costHow much does this shuttle cost the cargo budget to purchase? Put in terms of CARGO_CRATE_VALUE to properly scale the cost with the current balance of cargo's income.
descriptionInformation to display on communication console about the shuttle
emag_onlyWhether or not this shuttle is locked to emags only.
movement_forceIf set, overrides default movement_force on shuttle
occupancy_limitThe recommended occupancy limit for the shuttle (count chairs, beds, and benches then round to 5)
port_idPort ID is the place this template should be docking at, set on '/obj/docking_port/stationary' +Because getShuttle() compares port_id to shuttle_id to find an already existing shuttle, +you should set shuttle_id to be the same as port_id if you want them to be replacable.
prerequisitesDescription of the prerequisite that has to be achieved for the shuttle to be purchased
shuttle_idID of the shuttle, make sure it matches port_id if necessary.
who_can_purchaseWhat job accesses can buy this shuttle? If null, this shuttle cannot be bought.

Var Details

admin_notes

Shuttle warnings and hazards to the admin who spawns the shuttle

credit_cost

How much does this shuttle cost the cargo budget to purchase? Put in terms of CARGO_CRATE_VALUE to properly scale the cost with the current balance of cargo's income.

description

Information to display on communication console about the shuttle

emag_only

Whether or not this shuttle is locked to emags only.

movement_force

If set, overrides default movement_force on shuttle

occupancy_limit

The recommended occupancy limit for the shuttle (count chairs, beds, and benches then round to 5)

port_id

Port ID is the place this template should be docking at, set on '/obj/docking_port/stationary' +Because getShuttle() compares port_id to shuttle_id to find an already existing shuttle, +you should set shuttle_id to be the same as port_id if you want them to be replacable.

prerequisites

Description of the prerequisite that has to be achieved for the shuttle to be purchased

shuttle_id

ID of the shuttle, make sure it matches port_id if necessary.

who_can_purchase

What job accesses can buy this shuttle? If null, this shuttle cannot be bought.

\ No newline at end of file diff --git a/datum/map_template/shuttle/emergency.html b/datum/map_template/shuttle/emergency.html new file mode 100644 index 0000000000000..a20488c1bdbcd --- /dev/null +++ b/datum/map_template/shuttle/emergency.html @@ -0,0 +1 @@ +/datum/map_template/shuttle/emergency - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

emergency

Vars

event_amounthow many do we pick
eventsassoc list of shuttle events to add to this shuttle on spawn (typepath = weight)
events_overridedo we empty the event list before adding our events
use_all_eventspick all events instead of random

Procs

post_loadon post_load use our variables to change shuttle events

Var Details

event_amount

how many do we pick

events

assoc list of shuttle events to add to this shuttle on spawn (typepath = weight)

events_override

do we empty the event list before adding our events

use_all_events

pick all events instead of random

Proc Details

post_load

on post_load use our variables to change shuttle events

\ No newline at end of file diff --git a/datum/map_template/shuttle/emergency/arena.html b/datum/map_template/shuttle/emergency/arena.html new file mode 100644 index 0000000000000..769477cfef668 --- /dev/null +++ b/datum/map_template/shuttle/emergency/arena.html @@ -0,0 +1 @@ +/datum/map_template/shuttle/emergency/arena - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

arena

Vars

arena_loadedWhether the arena z-level has been created

Var Details

arena_loaded

Whether the arena z-level has been created

\ No newline at end of file diff --git a/datum/map_template/shuttle/emergency/narnar.html b/datum/map_template/shuttle/emergency/narnar.html new file mode 100644 index 0000000000000..6b187290ccbbf --- /dev/null +++ b/datum/map_template/shuttle/emergency/narnar.html @@ -0,0 +1 @@ +/datum/map_template/shuttle/emergency/narnar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

narnar

Vars

occupancy_limitThe joke is the number so no defines

Var Details

occupancy_limit

The joke is the number so no defines

\ No newline at end of file diff --git a/datum/market.html b/datum/market.html new file mode 100644 index 0000000000000..02947aab51b0a --- /dev/null +++ b/datum/market.html @@ -0,0 +1,8 @@ +/datum/market - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

market

Vars

available_itemsItems available from this market, populated by SSmarket on initialization. Automatically assigned, so don't manually adjust.
categoriesItem categories available from this market, only items which are in these categories can be gotten from this market. Automatically assigned, so don't manually adjust.
legal_statusAre the items from this market legal or illegal? If illegal, apply a contrband trait to the bought object.
nameName for the market.
shippingAvailable shipping methods and prices, just leave the shipping method out that you don't want to have.

Procs

add_itemAdds item to the available items and add its category if it is not in categories yet.
purchaseHandles buying the item for a market.
restockA proc that restocks only the EXISTING items of this market. +If you want to selectively restock markets, call SSmarket.restock(market_or_list_of_markets) instead.

Var Details

available_items

Items available from this market, populated by SSmarket on initialization. Automatically assigned, so don't manually adjust.

categories

Item categories available from this market, only items which are in these categories can be gotten from this market. Automatically assigned, so don't manually adjust.

legal_status

Are the items from this market legal or illegal? If illegal, apply a contrband trait to the bought object.

name

Name for the market.

shipping

Available shipping methods and prices, just leave the shipping method out that you don't want to have.

Proc Details

add_item

Adds item to the available items and add its category if it is not in categories yet.

purchase

Handles buying the item for a market.

+

@param identifier The identifier of the item to buy. +@param category The category of the item to buy. +@param method The shipping method to use to get the item on the station. +@param uplink The uplink object that is buying the item. +@param user The mob that is buying the item.

restock

A proc that restocks only the EXISTING items of this market. +If you want to selectively restock markets, call SSmarket.restock(market_or_list_of_markets) instead.

\ No newline at end of file diff --git a/datum/market_item.html b/datum/market_item.html new file mode 100644 index 0000000000000..e6403f8fbbe7a --- /dev/null +++ b/datum/market_item.html @@ -0,0 +1,5 @@ +/datum/market_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

market_item

Vars

abstract_pathUsed to exclude abstract/special paths from the unit test if the value matches the type itself.
availability_probProbability for this item to be available. Used by SSmarket on init.
categoryThe category this item belongs to, should be already declared in the market that this item is accessible in.
descDescription for the item entry used in the uplink.
html_iconIf set, this icon will be shown in the UI.
identifierThe identifier for the market item, generated on runtime and used to access them in the market categories.
itemPath to or the item itself what this entry is for, this should be set even if you override spawn_item to spawn your item.
markets"/datum/market"s that this item should be in, used by SSmarket on init.
nameName for the item entry used in the uplink.
pricePrice for the item, if not set creates a price according to the *_min and *_max vars.
price_maxMaximum price for the item if generated randomly.
price_minMinimum price for the item if generated randomly.
restockableCan this item be restocked
shipping_overrideIf set, these will override the shipment methods set by the market
stockHow many of this type of item is available, if not set creates a price according to the *_min and *_max vars.
stock_maxMaximum amount that there should be of this item in the market if generated randomly.
stock_minMinimum amount that there should be of this item in the market if generated randomly. This defaults to 1 as most items will have it as 1.

Procs

buyBuys the item and makes SSmarket handle it.
set_itemFor 'dynamic' market items generated on runtime, this proc is to be used to properly sets the item, especially if it's a hardref.
spawn_itemUsed for spawning the wanted item, override if you need to do something special with the item.

Var Details

abstract_path

Used to exclude abstract/special paths from the unit test if the value matches the type itself.

availability_prob

Probability for this item to be available. Used by SSmarket on init.

category

The category this item belongs to, should be already declared in the market that this item is accessible in.

desc

Description for the item entry used in the uplink.

html_icon

If set, this icon will be shown in the UI.

identifier

The identifier for the market item, generated on runtime and used to access them in the market categories.

item

Path to or the item itself what this entry is for, this should be set even if you override spawn_item to spawn your item.

markets

"/datum/market"s that this item should be in, used by SSmarket on init.

name

Name for the item entry used in the uplink.

price

Price for the item, if not set creates a price according to the *_min and *_max vars.

price_max

Maximum price for the item if generated randomly.

price_min

Minimum price for the item if generated randomly.

restockable

Can this item be restocked

shipping_override

If set, these will override the shipment methods set by the market

stock

How many of this type of item is available, if not set creates a price according to the *_min and *_max vars.

stock_max

Maximum amount that there should be of this item in the market if generated randomly.

stock_min

Minimum amount that there should be of this item in the market if generated randomly. This defaults to 1 as most items will have it as 1.

Proc Details

buy

Buys the item and makes SSmarket handle it.

+

@param uplink The uplink that is buying the item. +@param buyer The mob that is buying the item. +@param shipping_method The shipping method used to get the market item onto the station. +@param legal_status The legal status of the market. Determines if the item to be spawned is contraband.

set_item

For 'dynamic' market items generated on runtime, this proc is to be used to properly sets the item, especially if it's a hardref.

spawn_item

Used for spawning the wanted item, override if you need to do something special with the item.

\ No newline at end of file diff --git a/datum/market_item/hostage.html b/datum/market_item/hostage.html new file mode 100644 index 0000000000000..f904f2bf50d99 --- /dev/null +++ b/datum/market_item/hostage.html @@ -0,0 +1 @@ +/datum/market_item/hostage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hostage

A special category for mobs captured by pirates, tots and contractors, should someone ever want to get them back in advance.

Vars

signalertemporary reference to the 4 in 7 chances of signaler and electropack.

Var Details

signaler

temporary reference to the 4 in 7 chances of signaler and electropack.

\ No newline at end of file diff --git a/datum/market_purchase.html b/datum/market_purchase.html new file mode 100644 index 0000000000000..1ab17dc45c42c --- /dev/null +++ b/datum/market_purchase.html @@ -0,0 +1,3 @@ +/datum/market_purchase - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

market_purchase

Vars

entryThe entry being purchased.
itemInstance of the item being sent, used by the market telepad
legallityIs this item considered contraband? If illegal, applies the contraband trait to the item when spawned.
methodShipping method used to buy this item.
uplinkThe uplink where this purchase was done from.

Procs

post_purchase_effectsProc that applies secondary effects to objects that are spawned via a market.

Var Details

entry

The entry being purchased.

item

Instance of the item being sent, used by the market telepad

legallity

Is this item considered contraband? If illegal, applies the contraband trait to the item when spawned.

method

Shipping method used to buy this item.

The uplink where this purchase was done from.

Proc Details

post_purchase_effects

Proc that applies secondary effects to objects that are spawned via a market.

+

@param spawned_item - Reference to the atom being spawned. +@param legal_status - Is this item considered legal? If illegal, will apply the contraband trait to the spawned item.

\ No newline at end of file diff --git a/datum/martial_art.html b/datum/martial_art.html new file mode 100644 index 0000000000000..735b3cdc2f6dd --- /dev/null +++ b/datum/martial_art.html @@ -0,0 +1,111 @@ +/datum/martial_art - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

martial_art

Vars

allow_temp_overrideIf TRUE, this martial art can be overridden and stored (via base) by other martial arts if deemed "temporary" via teach().
baseUsed for temporary martial arts. +This is a reference to the last martial art that was replaced by this one.
combo_timerThe length of time until streaks are auto-reset.
current_targetWeakref to the last mob we attacked, for determining when to reset streaks
display_combosIf TRUE, a combo meter will be displayed on the HUD for the current streak
help_verbPath to verb to display help text for this martial art.
holderThe current mob associated with this martial art datum. Do not set directly.
idID of the martial art
max_streak_lengthThe maximum length of streaks allowed
namePlayer readable name of the martial art
pacifist_styleIf TRUE, this style allows you to punch people despite being a pacifist (IE: Boxing, which does no damage)
smashes_tablesIf TRUE, this martial art smashes tables when performing table slams and head smashes
streakThe streak of attacks the user has performed
timeridTimer ID for the combo reset timer.

Procs

add_to_streakAdds the passed element to the current streak, resetting it if the target is not the same as the last target.
attempt_grabSignal proc for COMSIG_LIVING_GRAB to hook into the grab
can_useChecks if the passed mob can use this martial art.
disarm_actCalled when disarm-intenting on someone
fully_removeA helper proc to remove the martial art from the passed mob fully, e +ven if stored in another martial art's base.
grab_actCalled when grabbing someone
harm_actCalled when harm-intenting on someone
help_actCalled when help-intenting on someone
on_removeCalled when this martial art is removed from a mob.
on_teachCalled when this martial art is added to a mob.
removeRemoves this martial art from the passed mob AND their mind.
reset_streakResets the current streak.
store_martial_artStores the passed martial art in the base var.
teachTeaches the passed mob this martial art.
transfer_martial_artsSignal proc for COMSIG_MOB_MIND_TRANSFERRED_OUT_OF to pass martial arts between bodies on mind transfer +By this point the martial art's holder is the old body, but the mind that owns it is in the new body
unarmed_strikeSignal proc for COMSIG_LIVING_UNARMED_ATTACK to hook into the appropriate proc
unstore_martial_artUnstores the base var.

Var Details

allow_temp_override

If TRUE, this martial art can be overridden and stored (via base) by other martial arts if deemed "temporary" via teach().

base

Used for temporary martial arts. +This is a reference to the last martial art that was replaced by this one.

combo_timer

The length of time until streaks are auto-reset.

current_target

Weakref to the last mob we attacked, for determining when to reset streaks

display_combos

If TRUE, a combo meter will be displayed on the HUD for the current streak

help_verb

Path to verb to display help text for this martial art.

holder

The current mob associated with this martial art datum. Do not set directly.

id

ID of the martial art

max_streak_length

The maximum length of streaks allowed

name

Player readable name of the martial art

pacifist_style

If TRUE, this style allows you to punch people despite being a pacifist (IE: Boxing, which does no damage)

smashes_tables

If TRUE, this martial art smashes tables when performing table slams and head smashes

streak

The streak of attacks the user has performed

timerid

Timer ID for the combo reset timer.

Proc Details

add_to_streak

Adds the passed element to the current streak, resetting it if the target is not the same as the last target.

+

Arguments

+

attempt_grab

Signal proc for COMSIG_LIVING_GRAB to hook into the grab

can_use

Checks if the passed mob can use this martial art.

+

Arguments

+ +

Returns

+

disarm_act

Called when disarm-intenting on someone

+

What is checked going into this: +Adjacency, TRAIT_MARTIAL_ARTS_IMMUNE, attacker incapacitated, can_unarmed_attack, can_use

+

What is NOT: +check_block

+

Arguments

+ +

Returns

+

fully_remove

A helper proc to remove the martial art from the passed mob fully, e +ven if stored in another martial art's base.

+

Arguments

+ +

Returns

+

grab_act

Called when grabbing someone

+

What is checked going into this: +Adjacency, TRAIT_MARTIAL_ARTS_IMMUNE, attacker incapacitated, can_unarmed_attack, can_use

+

What is NOT: +check_block

+

Arguments

+ +

Returns

+

harm_act

Called when harm-intenting on someone

+

What is checked going into this: +Adjacency, TRAIT_MARTIAL_ARTS_IMMUNE, attacker incapacitated, can_unarmed_attack, can_use

+

What is NOT: +check_block

+

Arguments

+ +

Returns

+

help_act

Called when help-intenting on someone

+

What is checked going into this: +Adjacency, TRAIT_MARTIAL_ARTS_IMMUNE, attacker incapacitated, can_unarmed_attack, can_use

+

What is NOT: +check_block

+

Arguments

+ +

Returns

+

on_remove

Called when this martial art is removed from a mob.

on_teach

Called when this martial art is added to a mob.

remove

Removes this martial art from the passed mob AND their mind.

+

Arguments

+

reset_streak

Resets the current streak.

+

Arguments

+

store_martial_art

Stores the passed martial art in the base var.

teach

Teaches the passed mob this martial art.

+

Arguments

+ +

Returns

+

transfer_martial_arts

Signal proc for COMSIG_MOB_MIND_TRANSFERRED_OUT_OF to pass martial arts between bodies on mind transfer +By this point the martial art's holder is the old body, but the mind that owns it is in the new body

unarmed_strike

Signal proc for COMSIG_LIVING_UNARMED_ATTACK to hook into the appropriate proc

unstore_martial_art

Unstores the base var.

\ No newline at end of file diff --git a/datum/martial_art/boxing.html b/datum/martial_art/boxing.html new file mode 100644 index 0000000000000..0a977f499cb31 --- /dev/null +++ b/datum/martial_art/boxing.html @@ -0,0 +1,3 @@ +/datum/martial_art/boxing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

boxing

Vars

boxing_traitsList of traits applied to users of this martial art.
default_damage_typeDefault damage type for our boxing.
honorable_boxerBoolean on whether we are sportsmanlike in our tussling; TRUE means we have restrictions
warning_cooldownBalloon alert cooldown for warning our boxer to alternate their blows to get more damage

Procs

check_blockHandles our blocking signals, similar to hit_reaction() on items. Only blocks while the boxer is in throw mode.
check_streakUnlike most instances of this proc, this is actually called in _proc/tussle() +Returns a multiplier on our skill damage bonus.
crit_effectOur crit effect. For normal boxing, this applies a stagger, then applies a knockout if they're staggered. Other types of boxing apply different kinds of effects.
honor_checkReturns whether whoever is checked by this proc is complying with the rules of boxing. The boxer cannot block non-boxers, and cannot apply their scariest moves against non-boxers.
perform_extra_effectAn extra effect on some moves and attacks.
skill_experience_adjustmentHandles our instances of experience gain while boxing. It also applies the exercised status effect.

Var Details

boxing_traits

List of traits applied to users of this martial art.

default_damage_type

Default damage type for our boxing.

honorable_boxer

Boolean on whether we are sportsmanlike in our tussling; TRUE means we have restrictions

warning_cooldown

Balloon alert cooldown for warning our boxer to alternate their blows to get more damage

Proc Details

check_block

Handles our blocking signals, similar to hit_reaction() on items. Only blocks while the boxer is in throw mode.

check_streak

Unlike most instances of this proc, this is actually called in _proc/tussle() +Returns a multiplier on our skill damage bonus.

crit_effect

Our crit effect. For normal boxing, this applies a stagger, then applies a knockout if they're staggered. Other types of boxing apply different kinds of effects.

honor_check

Returns whether whoever is checked by this proc is complying with the rules of boxing. The boxer cannot block non-boxers, and cannot apply their scariest moves against non-boxers.

perform_extra_effect

An extra effect on some moves and attacks.

skill_experience_adjustment

Handles our instances of experience gain while boxing. It also applies the exercised status effect.

\ No newline at end of file diff --git a/datum/martial_art/boxing/hunter.html b/datum/martial_art/boxing/hunter.html new file mode 100644 index 0000000000000..27819d6d73cfe --- /dev/null +++ b/datum/martial_art/boxing/hunter.html @@ -0,0 +1,3 @@ +/datum/martial_art/boxing/hunter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hunter

Hunter Boxing: for the uncaring, completely deranged one-spacer ecological disaster. +The honor check accepts boxing ready targets, OR various biotypes as valid targets. Uses a special crit effect rather than the standard one (against monsters). +I guess technically, this allows for lethal boxing. If you want.

Vars

first_word_strikeOur crit shout words. First word is then paired with a second word to form an attack name.
honorable_mob_biotypesThe mobs we are looking for to pass the honor check

Var Details

first_word_strike

Our crit shout words. First word is then paired with a second word to form an attack name.

honorable_mob_biotypes

The mobs we are looking for to pass the honor check

\ No newline at end of file diff --git a/datum/martial_art/cqc.html b/datum/martial_art/cqc.html new file mode 100644 index 0000000000000..68156a9a4a144 --- /dev/null +++ b/datum/martial_art/cqc.html @@ -0,0 +1 @@ +/datum/martial_art/cqc - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cqc

Vars

block_chanceProbability of successfully blocking attacks while on throw mode
restraining_mobWeakref to a mob we're currently restraining (with grab-grab combo)

Procs

on_attackbySignal from getting attacked with an item, for a special interaction with touch spells

Var Details

block_chance

Probability of successfully blocking attacks while on throw mode

restraining_mob

Weakref to a mob we're currently restraining (with grab-grab combo)

Proc Details

on_attackby

Signal from getting attacked with an item, for a special interaction with touch spells

\ No newline at end of file diff --git a/datum/martial_art/cqc/under_siege.html b/datum/martial_art/cqc/under_siege.html new file mode 100644 index 0000000000000..f0219cd7c3f1c --- /dev/null +++ b/datum/martial_art/cqc/under_siege.html @@ -0,0 +1 @@ +/datum/martial_art/cqc/under_siege - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

under_siege

Subtype of CQC. Only used for the chef.

Vars

kitchen_areasList of all areas that CQC will work in, defaults to Kitchen.

Procs

can_useLimits where the chef's CQC can be used to only whitelisted areas.
refresh_valid_areasRefreshes the valid areas from the cook's mapping config, adding areas in config to the list of possible areas.

Var Details

kitchen_areas

List of all areas that CQC will work in, defaults to Kitchen.

Proc Details

can_use

Limits where the chef's CQC can be used to only whitelisted areas.

refresh_valid_areas

Refreshes the valid areas from the cook's mapping config, adding areas in config to the list of possible areas.

\ No newline at end of file diff --git a/datum/martial_art/the_sleeping_carp.html b/datum/martial_art/the_sleeping_carp.html new file mode 100644 index 0000000000000..d33463f9829ee --- /dev/null +++ b/datum/martial_art/the_sleeping_carp.html @@ -0,0 +1 @@ +/datum/martial_art/the_sleeping_carp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

the_sleeping_carp

Vars

scarp_traitsList of traits applied to users of this martial art.

Procs

dropKickKeelhaul: Disarm Disarm combo, knocks people down and deals substantial stamina damage, and also discombobulates them. Knocks objects out of their hands if they're already on the ground.
launchKickCrashing Wave Kick: Harm Disarm combo, throws people seven tiles backwards
on_attackbySignal from getting attacked with an item, for a special interaction with touch spells
strongPunchGnashing Teeth: Harm Harm, consistent 20 force punch on every second harm punch

Var Details

scarp_traits

List of traits applied to users of this martial art.

Proc Details

dropKick

Keelhaul: Disarm Disarm combo, knocks people down and deals substantial stamina damage, and also discombobulates them. Knocks objects out of their hands if they're already on the ground.

launchKick

Crashing Wave Kick: Harm Disarm combo, throws people seven tiles backwards

on_attackby

Signal from getting attacked with an item, for a special interaction with touch spells

strongPunch

Gnashing Teeth: Harm Harm, consistent 20 force punch on every second harm punch

\ No newline at end of file diff --git a/datum/material.html b/datum/material.html new file mode 100644 index 0000000000000..a7a203d83e104 --- /dev/null +++ b/datum/material.html @@ -0,0 +1,38 @@ +/datum/material - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

material

Vars

alphaBase alpha of the material, is used for greyscale icons.
armor_modifiersArmor modifiers, multiplies an items normal armor vars by these amounts.
beauty_modifierHow beautiful is this material per unit.
cached_texture_filter_icona cached icon for the texture filter
categoriesMaterials "Traits". its a map of key = category | Value = Bool. Used to define what it can be used for
colorBase color of the material, is used for greyscale. Item isn't changed in color if this is null. +Deprecated, use greyscale_color instead.
debris_typeWhat type of debris the tile will leave behind when shattered.
descA short description of the material. Not used anywhere, yet...
greyscale_colorsDetermines the color palette of the material. Formatted the same as atom/var/greyscale_colors
idWhat the material is indexed by in the SSmaterials.materials list. Defaults to the type of the material.
init_flagsBitflags that influence how SSmaterials handles this material.
integrity_modifierThis is a modifier for integrity, and resembles the strength of the material
item_sound_overrideCan be used to override the sound items make, lets add some SLOSHing.
mat_rust_resistanceHow resistant the material is to rusting when applied to a turf
mineral_rarityHow likely this mineral is to be found in a boulder during mining.
minimum_value_overrideThis is the minimum value of the material, used in the stock market for any mat that isn't set to null
nameWhat the material is referred to as IC.
ore_typeWhat type of ore is this material associated with? Used for mining, and not every material has one.
points_per_unitHow many points per units of ore does this grant?
shard_typeWhat type of shard the material will shatter to
sheet_typeThe type of sheet this material creates. This should be replaced as soon as possible by greyscale sheets
starlight_colorStarlight color of the material +This is the color of light it'll emit if its turf is transparent and over space. Defaults to COLOR_STARLIGHT if not set
strength_modifierThis is a modifier for force, and resembles the strength of the material
texture_layer_icon_statewhat texture icon state to overlay
tradableIs this material traded on the stock market?
tradable_base_quantityIf this material is tradable, what is the base quantity of the material on the stock market?
turf_sound_overrideCan be used to override the stepsound a turf makes. MORE SLOOOSH
value_per_unitThis is the amount of value per 1 unit of the material

Procs

Initialize
on_accidental_mat_consumptionThis proc is called when the mat is found in an item that's consumed by accident. see /obj/item/proc/on_accidental_consumption. +Arguments
on_appliedThis proc is called when the material is added to an object.
on_applied_objThis proc is called when the material is added to an object specifically.
on_removedThis proc is called when the material is removed from an object.
on_removed_objThis proc is called when the material is removed from an object specifically.
return_composition

Var Details

alpha

Base alpha of the material, is used for greyscale icons.

armor_modifiers

Armor modifiers, multiplies an items normal armor vars by these amounts.

beauty_modifier

How beautiful is this material per unit.

cached_texture_filter_icon

a cached icon for the texture filter

categories

Materials "Traits". its a map of key = category | Value = Bool. Used to define what it can be used for

color

Base color of the material, is used for greyscale. Item isn't changed in color if this is null. +Deprecated, use greyscale_color instead.

debris_type

What type of debris the tile will leave behind when shattered.

desc

A short description of the material. Not used anywhere, yet...

greyscale_colors

Determines the color palette of the material. Formatted the same as atom/var/greyscale_colors

id

What the material is indexed by in the SSmaterials.materials list. Defaults to the type of the material.

init_flags

Bitflags that influence how SSmaterials handles this material.

integrity_modifier

This is a modifier for integrity, and resembles the strength of the material

item_sound_override

Can be used to override the sound items make, lets add some SLOSHing.

mat_rust_resistance

How resistant the material is to rusting when applied to a turf

mineral_rarity

How likely this mineral is to be found in a boulder during mining.

minimum_value_override

This is the minimum value of the material, used in the stock market for any mat that isn't set to null

name

What the material is referred to as IC.

ore_type

What type of ore is this material associated with? Used for mining, and not every material has one.

points_per_unit

How many points per units of ore does this grant?

shard_type

What type of shard the material will shatter to

sheet_type

The type of sheet this material creates. This should be replaced as soon as possible by greyscale sheets

starlight_color

Starlight color of the material +This is the color of light it'll emit if its turf is transparent and over space. Defaults to COLOR_STARLIGHT if not set

strength_modifier

This is a modifier for force, and resembles the strength of the material

texture_layer_icon_state

what texture icon state to overlay

tradable

Is this material traded on the stock market?

tradable_base_quantity

If this material is tradable, what is the base quantity of the material on the stock market?

turf_sound_override

Can be used to override the stepsound a turf makes. MORE SLOOOSH

value_per_unit

This is the amount of value per 1 unit of the material

Proc Details

Initialize

on_accidental_mat_consumption

This proc is called when the mat is found in an item that's consumed by accident. see /obj/item/proc/on_accidental_consumption. +Arguments

+

on_applied

This proc is called when the material is added to an object.

on_applied_obj

This proc is called when the material is added to an object specifically.

on_removed

This proc is called when the material is removed from an object.

on_removed_obj

This proc is called when the material is removed from an object specifically.

return_composition

\ No newline at end of file diff --git a/datum/material/alloy.html b/datum/material/alloy.html new file mode 100644 index 0000000000000..9cdeeeddffa50 --- /dev/null +++ b/datum/material/alloy.html @@ -0,0 +1 @@ +/datum/material/alloy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

alloy

Materials made from other materials.

Vars

compositionThe materials this alloy is made from weighted by their ratios.

Var Details

composition

The materials this alloy is made from weighted by their ratios.

\ No newline at end of file diff --git a/datum/material/alloy/alien.html b/datum/material/alloy/alien.html new file mode 100644 index 0000000000000..70a4b1d89a786 --- /dev/null +++ b/datum/material/alloy/alien.html @@ -0,0 +1,14 @@ +/datum/material/alloy/alien - /tg/ Station 13
/tg/ Station 13 - Modules - Types

alien

\ No newline at end of file diff --git a/datum/material/alloy/plasmaglass.html b/datum/material/alloy/plasmaglass.html new file mode 100644 index 0000000000000..2d86c8187a51c --- /dev/null +++ b/datum/material/alloy/plasmaglass.html @@ -0,0 +1,8 @@ +/datum/material/alloy/plasmaglass - /tg/ Station 13
/tg/ Station 13 - Modules - Types

plasmaglass

\ No newline at end of file diff --git a/datum/material/alloy/plasteel.html b/datum/material/alloy/plasteel.html new file mode 100644 index 0000000000000..bc1aa12efb14c --- /dev/null +++ b/datum/material/alloy/plasteel.html @@ -0,0 +1,11 @@ +/datum/material/alloy/plasteel - /tg/ Station 13
/tg/ Station 13 - Modules - Types

plasteel

\ No newline at end of file diff --git a/datum/material/alloy/plastitanium.html b/datum/material/alloy/plastitanium.html new file mode 100644 index 0000000000000..6691a9b926a5c --- /dev/null +++ b/datum/material/alloy/plastitanium.html @@ -0,0 +1,8 @@ +/datum/material/alloy/plastitanium - /tg/ Station 13
/tg/ Station 13 - Modules - Types

plastitanium

\ No newline at end of file diff --git a/datum/material/alloy/plastitaniumglass.html b/datum/material/alloy/plastitaniumglass.html new file mode 100644 index 0000000000000..7febdee753e39 --- /dev/null +++ b/datum/material/alloy/plastitaniumglass.html @@ -0,0 +1,8 @@ +/datum/material/alloy/plastitaniumglass - /tg/ Station 13
/tg/ Station 13 - Modules - Types

plastitaniumglass

\ No newline at end of file diff --git a/datum/material/alloy/titaniumglass.html b/datum/material/alloy/titaniumglass.html new file mode 100644 index 0000000000000..8c2fc1ff1a931 --- /dev/null +++ b/datum/material/alloy/titaniumglass.html @@ -0,0 +1,8 @@ +/datum/material/alloy/titaniumglass - /tg/ Station 13
/tg/ Station 13 - Modules - Types

titaniumglass

\ No newline at end of file diff --git a/datum/maturity_prompt.html b/datum/maturity_prompt.html new file mode 100644 index 0000000000000..564ab12ed435f --- /dev/null +++ b/datum/maturity_prompt.html @@ -0,0 +1 @@ +/datum/maturity_prompt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

maturity_prompt

Vars

closedBoolean field describing if the tgui_alert was closed by the user.
dayDay of birth listed by the user
monthMonth of birth listed by the user
start_timeThe time at which the tgui_alert was created, for displaying timeout progress.
stateThe TGUI UI state that will be returned in ui_state(). Default: always_state
timeoutThe lifespan of the tgui_alert, after which the window will close and delete itself.
yearYear of birth listed by the user

Var Details

closed

Boolean field describing if the tgui_alert was closed by the user.

day

Day of birth listed by the user

month

Month of birth listed by the user

start_time

The time at which the tgui_alert was created, for displaying timeout progress.

state

The TGUI UI state that will be returned in ui_state(). Default: always_state

timeout

The lifespan of the tgui_alert, after which the window will close and delete itself.

year

Year of birth listed by the user

\ No newline at end of file diff --git a/datum/medical_note.html b/datum/medical_note.html new file mode 100644 index 0000000000000..0303488ce9b23 --- /dev/null +++ b/datum/medical_note.html @@ -0,0 +1 @@ +/datum/medical_note - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

medical_note

Player-written medical note.

Vars

authorPlayer that wrote the note
contentDetails of the note
timeStation timestamp

Var Details

author

Player that wrote the note

content

Details of the note

time

Station timestamp

\ No newline at end of file diff --git a/datum/memory.html b/datum/memory.html new file mode 100644 index 0000000000000..9cabf0e4d828d --- /dev/null +++ b/datum/memory.html @@ -0,0 +1,41 @@ +/datum/memory - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

memory

Little tidbits of past events generated by the player doing things.

+

Can be used in engravings, dreams, and changeling succs.

+

All of those things are supposed to be taken vaguely - +Engravings crossround and should not include names, dreams and succs are memory goop. +As such, the generated text of the memory is vague.

+

Don't hold any references in this, it's not necessary.

Vars

antagonist_nameThe main villain of the memory.
deuteragonist_nameThe side character of the memory.
memorizerJob of the person memorizing the event
memorizer_mindMind of who is memorizing the event
memory_flagsFlags of any special behavior for the memory
mood_verbIf this memory changes based on mood, this is the verb it uses.
nameThe name of the MEMORY that the user sees. +Something like "The time the Clown did a sweet flip".
protagonist_nameThe main character of the memory.
story_valueThe value of the mood in it's worth as a story. +Defines how beautiful art from it can be, and whether or not it stays in persistence.
whereWhere this memory took place.

Procs

build_story_characterWhen passed a "character", returns the name of the character formatted for stories
generate_memory_nameGenerates a name for the memory.
generate_storyGenerates a story based on this memory.
get_happy_moodsUsed to select a mood verb if the protagonist is happy for memories that do not have MEMORY_FLAG_NOMOOD set.
get_locationsReturns a list of locations for use in stories which do not have MEMORY_FLAG_NOLOCATION set.
get_moodsReturns a list of mood phrases for the memory.
get_namesReturns a list of names for [proc/select_mood_verb] to select from.
get_neutral_moodsUsed to select a mood verb if the protagonist is neither happy or sad for memories that do not have MEMORY_FLAG_NOMOOD set.
get_sad_moodsUsed to select a mood verb if the protagonist is sad for memories that do not have MEMORY_FLAG_NOMOOD set.
get_startsReturns a list of story starts for the memory.
quick_copy_memoryCreates a "quick copy" of the memory for another mind, +copying just basic memory information (name, major charactecrs) over.
select_mood_verbSelects a mood related verb for the memory.

Var Details

antagonist_name

The main villain of the memory.

deuteragonist_name

The side character of the memory.

memorizer

Job of the person memorizing the event

memorizer_mind

Mind of who is memorizing the event

memory_flags

Flags of any special behavior for the memory

mood_verb

If this memory changes based on mood, this is the verb it uses.

name

The name of the MEMORY that the user sees. +Something like "The time the Clown did a sweet flip".

protagonist_name

The main character of the memory.

story_value

The value of the mood in it's worth as a story. +Defines how beautiful art from it can be, and whether or not it stays in persistence.

where

Where this memory took place.

Proc Details

build_story_character

When passed a "character", returns the name of the character formatted for stories

+

If character is a string, it will just return it back.

+

Otherwise, it will try to generate a title based on the mob's assigned role.

+

If the character has no mind or no assigned role, it'll just return their name.

generate_memory_name

Generates a name for the memory.

generate_story

Generates a story based on this memory.

+

Arguments

+

get_happy_moods

Used to select a mood verb if the protagonist is happy for memories that do not have MEMORY_FLAG_NOMOOD set.

get_locations

Returns a list of locations for use in stories which do not have MEMORY_FLAG_NOLOCATION set.

get_moods

Returns a list of mood phrases for the memory.

+

Mood phrases are necessary if MEMORY_FLAG_NOMOOD is not set. They are used in making stories out of memories. +These are phrases that change in their verbage depending on the mood of the PROTAGONIST at the time of the memory.

+

For example: "The clown grins (this is the mood verb) at the audience.". +You can use any information tidbits in your names to fill them out. +Mood phrases should be punctated, as they are their own independent clause. +Mood phrases should always include the [mood_verb] var, as well.

get_names

Returns a list of names for [proc/select_mood_verb] to select from.

+

This is necessary to implement. Names should be at-a-glance summaries of what the memory entails.

+

For example: "The time the Clown did a sweet flip.". +You can use any information tidbits in your names to fill them out. +Your names should be puncuated.

get_neutral_moods

Used to select a mood verb if the protagonist is neither happy or sad for memories that do not have MEMORY_FLAG_NOMOOD set.

get_sad_moods

Used to select a mood verb if the protagonist is sad for memories that do not have MEMORY_FLAG_NOMOOD set.

get_starts

Returns a list of story starts for the memory.

+

Starts are necessary if [MEMORY_FLAG_NOSTORY] is not set. They are used in generating stories out of memories.

+

For example: "The Clown cracks his hands and honks his horn as he prepares to do a backflip". +You can use any information tidbits in your names to fill them out. +If the memory is not MEMORY_FLAG_NOMOOD, your starts should NOT be puncuated, as a mood phrase will follow. +They should also be in the present tense.

quick_copy_memory

Creates a "quick copy" of the memory for another mind, +copying just basic memory information (name, major charactecrs) over.

+

The copied memory cannot be used for stories or anything. +They should generally only be used to give a new mind an idea of another mind's memories.

select_mood_verb

Selects a mood related verb for the memory.

+

Arguments

+
\ No newline at end of file diff --git a/datum/memory/bomb_defuse_success.html b/datum/memory/bomb_defuse_success.html new file mode 100644 index 0000000000000..73a97b578cf65 --- /dev/null +++ b/datum/memory/bomb_defuse_success.html @@ -0,0 +1 @@ +/datum/memory/bomb_defuse_success - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bomb_defuse_success

Succeeded in defusing a bomb!

Vars

bomb_time_leftThis is the time left (in seconds) of the bomb at defusal

Var Details

bomb_time_left

This is the time left (in seconds) of the bomb at defusal

\ No newline at end of file diff --git a/datum/memory/dna_infusion.html b/datum/memory/dna_infusion.html new file mode 100644 index 0000000000000..b18591c7b7ffd --- /dev/null +++ b/datum/memory/dna_infusion.html @@ -0,0 +1 @@ +/datum/memory/dna_infusion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dna_infusion

Becoming a mutant via infusion

Vars

mutantlikedescribing what they turn into, "skittish", "nomadic", etc

Var Details

mutantlike

describing what they turn into, "skittish", "nomadic", etc

\ No newline at end of file diff --git a/datum/memory/good_drink.html b/datum/memory/good_drink.html new file mode 100644 index 0000000000000..360eed18dc178 --- /dev/null +++ b/datum/memory/good_drink.html @@ -0,0 +1 @@ +/datum/memory/good_drink - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

good_drink

Had a good drink.

Vars

drinkThe name of the nice drink reagent

Var Details

drink

The name of the nice drink reagent

\ No newline at end of file diff --git a/datum/memory/good_food.html b/datum/memory/good_food.html new file mode 100644 index 0000000000000..5c36b0639ae1c --- /dev/null +++ b/datum/memory/good_food.html @@ -0,0 +1 @@ +/datum/memory/good_food - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

good_food

Had some good food.

Vars

foodThe name of the food item being consumed

Var Details

food

The name of the food item being consumed

\ No newline at end of file diff --git a/datum/memory/high_five.html b/datum/memory/high_five.html new file mode 100644 index 0000000000000..cc7fa0643ea48 --- /dev/null +++ b/datum/memory/high_five.html @@ -0,0 +1 @@ +/datum/memory/high_five - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

high_five

Got a sweet high five.

Vars

high_five_typeWhat type of high five it was - A "high five" or a "high ten"

Var Details

high_five_type

What type of high five it was - A "high five" or a "high ten"

\ No newline at end of file diff --git a/datum/memory/key.html b/datum/memory/key.html new file mode 100644 index 0000000000000..621cfc020cf6e --- /dev/null +++ b/datum/memory/key.html @@ -0,0 +1,3 @@ +/datum/memory/key - /tg/ Station 13
/tg/ Station 13 - Modules - Types

key

I am affectionally titling these "key memories"

+

These memories aren't particularly special or interesting, but occuply an important role +in conveying information to the user about something important they need to check semi-often

\ No newline at end of file diff --git a/datum/memory/playing_cards.html b/datum/memory/playing_cards.html new file mode 100644 index 0000000000000..1511e7ed7d507 --- /dev/null +++ b/datum/memory/playing_cards.html @@ -0,0 +1 @@ +/datum/memory/playing_cards - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

playing_cards

Played cards with another person.

Vars

formatted_players_listA string (english list) of all the mobs playing the game
gameWhat card game is being played
protagonist_held_cardThe card the protagonist is holding

Var Details

formatted_players_list

A string (english list) of all the mobs playing the game

game

What card game is being played

protagonist_held_card

The card the protagonist is holding

\ No newline at end of file diff --git a/datum/memory/received_medal.html b/datum/memory/received_medal.html new file mode 100644 index 0000000000000..f7d4bc782243a --- /dev/null +++ b/datum/memory/received_medal.html @@ -0,0 +1 @@ +/datum/memory/received_medal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

received_medal

Watched someone receive a commendation medal

Vars

medal_textThe text on the medal / the commendation / the input
medal_typeThe name of the medal being rewarded

Var Details

medal_text

The text on the medal / the commendation / the input

medal_type

The name of the medal being rewarded

\ No newline at end of file diff --git a/datum/memory/surgery.html b/datum/memory/surgery.html new file mode 100644 index 0000000000000..96f2ac8bbc841 --- /dev/null +++ b/datum/memory/surgery.html @@ -0,0 +1 @@ +/datum/memory/surgery - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

surgery

A doctor successfuly completed a surgery on someone.

Vars

surgery_typeWhat type of surgery it was

Var Details

surgery_type

What type of surgery it was

\ No newline at end of file diff --git a/datum/memory/was_dismembered.html b/datum/memory/was_dismembered.html new file mode 100644 index 0000000000000..576d167cd80c2 --- /dev/null +++ b/datum/memory/was_dismembered.html @@ -0,0 +1 @@ +/datum/memory/was_dismembered - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

was_dismembered

Got a limb removed by force.

Vars

lost_limbThe limb (in plaintext) that got lost (ends up being "left arm" or "right leg")

Var Details

lost_limb

The limb (in plaintext) that got lost (ends up being "left arm" or "right leg")

\ No newline at end of file diff --git a/datum/memory/witnessed_russian_roulette.html b/datum/memory/witnessed_russian_roulette.html new file mode 100644 index 0000000000000..b1d1dfe460a71 --- /dev/null +++ b/datum/memory/witnessed_russian_roulette.html @@ -0,0 +1 @@ +/datum/memory/witnessed_russian_roulette - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

witnessed_russian_roulette

Saw someone play Russian Roulette.

Vars

aimed_atThe bodypart the protagonist was aiming at
resultThe result of the game ("won"(survived) or "lost"(shot themselves))
rounds_loadedHow many rounds were loaded in the revolver

Var Details

aimed_at

The bodypart the protagonist was aiming at

result

The result of the game ("won"(survived) or "lost"(shot themselves))

rounds_loaded

How many rounds were loaded in the revolver

\ No newline at end of file diff --git a/datum/merger.html b/datum/merger.html new file mode 100644 index 0000000000000..05e6f4b253edd --- /dev/null +++ b/datum/merger.html @@ -0,0 +1 @@ +/datum/merger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

merger

A datum that tracks a type or types of objects in a cluster

Vars

attempt_merge_procOptional proc to call on potential members, return true to allow merge
idThe unique ID for this merger datum, adjacent merg groups with the same id will combine
membersAssoc list of all members in the group -> dirs from them to their connected nighbors
merged_typecacheThe types allowed to be in this merge group
originThe arbitrary "owner" member of the merge group

Var Details

attempt_merge_proc

Optional proc to call on potential members, return true to allow merge

id

The unique ID for this merger datum, adjacent merg groups with the same id will combine

members

Assoc list of all members in the group -> dirs from them to their connected nighbors

merged_typecache

The types allowed to be in this merge group

origin

The arbitrary "owner" member of the merge group

\ No newline at end of file diff --git a/datum/micro_organism.html b/datum/micro_organism.html new file mode 100644 index 0000000000000..d2efc799365a7 --- /dev/null +++ b/datum/micro_organism.html @@ -0,0 +1 @@ +/datum/micro_organism - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

micro_organism

A single type of growth.

Vars

descDesc, shown by science goggles
nameName, shown on microscope

Procs

get_detailsReturns a short description of the cell line

Var Details

desc

Desc, shown by science goggles

name

Name, shown on microscope

Proc Details

get_details

Returns a short description of the cell line

\ No newline at end of file diff --git a/datum/micro_organism/cell_line.html b/datum/micro_organism/cell_line.html new file mode 100644 index 0000000000000..de6977cefc368 --- /dev/null +++ b/datum/micro_organism/cell_line.html @@ -0,0 +1 @@ +/datum/micro_organism/cell_line - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cell_line

A "mob" cell. Can grow into a mob in a growing vat.

Vars

consumption_rateThis var defines how many units of every reagent is consumed during growth per process()
growthOur growth so far, needs to get up to 100
growth_rateThis var defines how much % the organism grows per process(), without modifiers, if you have all required reagents
required_reagentsAll the reagent types required for letting this organism grow into whatever it should become
resulting_atomResulting atom from growing this cell line
resulting_atom_countThe number of resulting atoms
supplementary_reagentsReagent types that further speed up growth, but aren't needed. Assoc list of reagent datum type || bonus growth per tick
suppressive_reagentsReagent types that surpress growth. Assoc list of reagent datum type || lost growth per tick
virus_suspectibilityThis var modifies how much this micro_organism is affected by viruses. Higher is more slowdown

Procs

calculate_growthApply modifiers on growth_rate based on supplementary and supressive reagents. Reagents is the growing vats reagents
finish_growingCalled once a cell line reaches 100 growth. Then we check if any cell_line is too far so we can perform an epic fail roll
get_detailsOverriden to show more info like needs, supplementary and supressive reagents and also growth.
handle_growthHandles growth of the micro_organism. This only runs if the micro organism is in the growing vat. Reagents is the growing vats reagents
return_reagent_textReturn a nice list of all the reagents in a specific category with a specific prefix. This needs to be reworked because the formatting sucks ass.
try_eatTries to consume the required reagents. Can only do this if all of them are available. Reagents is the growing vats reagents

Var Details

consumption_rate

This var defines how many units of every reagent is consumed during growth per process()

growth

Our growth so far, needs to get up to 100

growth_rate

This var defines how much % the organism grows per process(), without modifiers, if you have all required reagents

required_reagents

All the reagent types required for letting this organism grow into whatever it should become

resulting_atom

Resulting atom from growing this cell line

resulting_atom_count

The number of resulting atoms

supplementary_reagents

Reagent types that further speed up growth, but aren't needed. Assoc list of reagent datum type || bonus growth per tick

suppressive_reagents

Reagent types that surpress growth. Assoc list of reagent datum type || lost growth per tick

virus_suspectibility

This var modifies how much this micro_organism is affected by viruses. Higher is more slowdown

Proc Details

calculate_growth

Apply modifiers on growth_rate based on supplementary and supressive reagents. Reagents is the growing vats reagents

finish_growing

Called once a cell line reaches 100 growth. Then we check if any cell_line is too far so we can perform an epic fail roll

get_details

Overriden to show more info like needs, supplementary and supressive reagents and also growth.

handle_growth

Handles growth of the micro_organism. This only runs if the micro organism is in the growing vat. Reagents is the growing vats reagents

return_reagent_text

Return a nice list of all the reagents in a specific category with a specific prefix. This needs to be reworked because the formatting sucks ass.

try_eat

Tries to consume the required reagents. Can only do this if all of them are available. Reagents is the growing vats reagents

\ No newline at end of file diff --git a/datum/mind.html b/datum/mind.html new file mode 100644 index 0000000000000..db241c12665fc --- /dev/null +++ b/datum/mind.html @@ -0,0 +1,32 @@ +/datum/mind - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mind

Vars

activeIs this mind active?
active_addictionsAssoc list of key active addictions and value amount of cycles that it has been active.
addiction_pointsAssoc list of addiction values, key is the type of withdrawal (as singleton type), and the value is the amount of addiction points (as number)
antag_datumsList of antag datums on this mind
antag_hudthis mind's antag HUD
antag_hud_icon_statethis mind's ANTAG_HUD should have this icon_state
assigned_roleJob datum indicating the mind's role. This should always exist after initialization, as a reference to a singleton.
book_titles_readA list to keep track of which books a person has read (to prevent people from reading the same book again and again for positive mood events)
can_see_exploitablesThe standard way we check for access to exploitables, given to antags. If true, and handles_exploitables() is ran, the user will be given exploitables access + menu.
clocked_out_of_jobIs our mind currently clocked out of their job?
currentCurrent mob this mind datum is attached to
current_scar_slot_indexThe index for our current scar slot, so we don't have to constantly check the savefile (unlike the slots themselves, this index is independent of selected char slot, and increments whenever a valid char is joined with)
enslaved_toIf this mind's master is another mob (i.e. adamantine golems). Weakref of a /living.
experience_multiplierSkill multiplier, adjusts how much xp you get/loose from adjust_xp. Dont override it directly, add your reason to experience_multiplier_reasons and use that as a key to put your value in there.
experience_multiplier_reasonsSkill multiplier list, just slap your multiplier change onto this with the type it is coming from as key.
failed_special_equipmentList of objective-specific equipment that couldn't properly be given to the mind
force_escapedSet by Into The Sunset command of the shuttle manipulator. +If TRUE, the mob will always be considered "escaped" if they are alive and not exiled.
ghostnamereplaces name for observers name if set
has_ever_been_aihas this mind ever been an AI
has_exploitable_menuTracks if the target has the view_exploitables_verb verb. THIS MUST BE CHANGED IF THE VERB IS ADDED OR REMOVED OR ELSE STUFF BREAKS.
has_exploitables_overrideThe nonstandard way we check for access to exploitables, given by admins and OPFOR. Acts like can_see_exploitables, but will always, unconditionally set it to true and succeed.
keyKey of the mob
known_skillsAssoc list of skills. Use SKILL_LVL to access level, and SKILL_EXP to access skill's exp.
martial_artMartial art on this mind
memoriesa list of /datum/memories. assoc type of memory = memory datum. only one type of memory will be stored, new ones of the same type overriding the last.
memory_panelreference to the memory panel tgui
nameThe name linked to this mind
original_characterWeakref to thecharacter we joined in as- either at roundstart or latejoin, so we know for persistent scars if we ended as the same person or not
original_character_slot_indexThe index for what character slot, if any, we were loaded from, so we can track persistent scars on a per-character basis. Each character slot gets PERSISTENT_SCAR_SLOTS scar slots
skills_rewardedList of skills the user has received a reward for. Should not be used to keep track of currently known skills. Lazy list because it shouldnt be filled often
special_statusesA lazy list of statuses to add next to this mind in the traitor panel

Procs

_add_memoryUnless you need to use this for an explicit reason, use the add_memory, add_mob_memory, or add_memory_in_range macro wrappers.
add_addiction_pointsAdds addiction points to the specified addiction
adjust_experienceAdjust experience of a specific skill
enslave_mind_to_creatorLink a new mobs mind to the creator of said mob. They will join any team they are currently on, and will only switch teams when their creator does.
exp_needed_to_level_upReturn the amount of EXP needed to go to the next level. Returns 0 if max level
forget_crafting_recipeproc that makes user forget a specific crafting recipe
get_hijack_speedSets our can_hijack to the fastest speed our antag datums allow.
get_skill_expGets the player's current exp from the relevant skill
get_skill_levelGets the player's current level number from the relevant skill
get_skill_modifierGets the skill's singleton and returns the result of its get_skill_modifier
give_uplink
handle_exploitablesChecks antag datums for any datums with view_exploitables. If it finds one, sets can_see_exploitables to true, and if not, false. +Always calls handle_exploitables_menu. Also sets can_see_exploitables to true if has_exploitables_override is true and skips the rest.
handle_exploitables_menuCalled by handle_exploitables(). Checks for a discrepency between has_exploitable_menu and can_see_exploitable, and gives/takes the verb accordingly (if can_see_exploitables is true/false). +Always makes sure the user has the exploitable menu if has_exploitables_override is true.
has_antag_datum_in_listReturns true if mind has any antag datum from a list of types
is_valid_bloodsuckerCheck if this is a valid person to actually be a bloodsucker
quick_copy_all_memoriesHelper to create quick copies of all of our memories +Quick copies aren't full copies - just basic copies containing necessities. +They cannot be used in stories.
remove_addiction_pointsAdds addiction points to the specified addiction
remove_antags_for_borgingRemove the antagonists that should not persist when being borged
select_memorySimple / sane proc for giving a mob the option to select one of their memories +that do not have the flags MEMORY_FLAG_ALREADY_USED or MEMORY_NO_STORY.
set_assigned_roleSetter for the assigned_role job datum.
set_assigned_role_with_greetingSets us to the passed job datum, then greets them to their new job. +Use this one for when you're assigning this mind to a new job for the first time, +or for when someone's receiving a job they'd really want to be greeted to.
set_experienceSet experience of a specific skill to a number
set_levelSet level of a specific skill
teach_crafting_recipeproc that teaches user a non-standard crafting recipe
try_give_equipment_fallbackChecks to see if the mind has an accessible uplink (their own, if they are a traitor; any unlocked uplink otherwise), +and gives them a fallback spell if no uplink was found
unteach_crafting_recipeThe opposite of proc/teach_crafting_recipe +will attempt to remove the arg "recipe" from the learned recipes
update_skill_levelCheck what the current skill level is based on that skill's exp
wipe_memorySmall helper to clean out memories.
wipe_memory_typeHelder to wipe the passed memory type ONLY from our list of memories

Var Details

active

Is this mind active?

active_addictions

Assoc list of key active addictions and value amount of cycles that it has been active.

addiction_points

Assoc list of addiction values, key is the type of withdrawal (as singleton type), and the value is the amount of addiction points (as number)

antag_datums

List of antag datums on this mind

antag_hud

this mind's antag HUD

antag_hud_icon_state

this mind's ANTAG_HUD should have this icon_state

assigned_role

Job datum indicating the mind's role. This should always exist after initialization, as a reference to a singleton.

book_titles_read

A list to keep track of which books a person has read (to prevent people from reading the same book again and again for positive mood events)

can_see_exploitables

The standard way we check for access to exploitables, given to antags. If true, and handles_exploitables() is ran, the user will be given exploitables access + menu.

clocked_out_of_job

Is our mind currently clocked out of their job?

current

Current mob this mind datum is attached to

current_scar_slot_index

The index for our current scar slot, so we don't have to constantly check the savefile (unlike the slots themselves, this index is independent of selected char slot, and increments whenever a valid char is joined with)

enslaved_to

If this mind's master is another mob (i.e. adamantine golems). Weakref of a /living.

experience_multiplier

Skill multiplier, adjusts how much xp you get/loose from adjust_xp. Dont override it directly, add your reason to experience_multiplier_reasons and use that as a key to put your value in there.

experience_multiplier_reasons

Skill multiplier list, just slap your multiplier change onto this with the type it is coming from as key.

failed_special_equipment

List of objective-specific equipment that couldn't properly be given to the mind

force_escaped

Set by Into The Sunset command of the shuttle manipulator. +If TRUE, the mob will always be considered "escaped" if they are alive and not exiled.

ghostname

replaces name for observers name if set

has_ever_been_ai

has this mind ever been an AI

has_exploitable_menu

Tracks if the target has the view_exploitables_verb verb. THIS MUST BE CHANGED IF THE VERB IS ADDED OR REMOVED OR ELSE STUFF BREAKS.

has_exploitables_override

The nonstandard way we check for access to exploitables, given by admins and OPFOR. Acts like can_see_exploitables, but will always, unconditionally set it to true and succeed.

key

Key of the mob

known_skills

Assoc list of skills. Use SKILL_LVL to access level, and SKILL_EXP to access skill's exp.

martial_art

Martial art on this mind

memories

a list of /datum/memories. assoc type of memory = memory datum. only one type of memory will be stored, new ones of the same type overriding the last.

memory_panel

reference to the memory panel tgui

name

The name linked to this mind

original_character

Weakref to thecharacter we joined in as- either at roundstart or latejoin, so we know for persistent scars if we ended as the same person or not

original_character_slot_index

The index for what character slot, if any, we were loaded from, so we can track persistent scars on a per-character basis. Each character slot gets PERSISTENT_SCAR_SLOTS scar slots

skills_rewarded

List of skills the user has received a reward for. Should not be used to keep track of currently known skills. Lazy list because it shouldnt be filled often

special_statuses

A lazy list of statuses to add next to this mind in the traitor panel

Proc Details

_add_memory

Unless you need to use this for an explicit reason, use the add_memory, add_mob_memory, or add_memory_in_range macro wrappers.

add_addiction_points

Adds addiction points to the specified addiction

adjust_experience

Adjust experience of a specific skill

enslave_mind_to_creator

Link a new mobs mind to the creator of said mob. They will join any team they are currently on, and will only switch teams when their creator does.

exp_needed_to_level_up

Return the amount of EXP needed to go to the next level. Returns 0 if max level

forget_crafting_recipe

proc that makes user forget a specific crafting recipe

get_hijack_speed

Sets our can_hijack to the fastest speed our antag datums allow.

get_skill_exp

Gets the player's current exp from the relevant skill

get_skill_level

Gets the player's current level number from the relevant skill

get_skill_modifier

Gets the skill's singleton and returns the result of its get_skill_modifier

+

A mind proc for giving anyone an uplink. +arguments:

+

handle_exploitables

Checks antag datums for any datums with view_exploitables. If it finds one, sets can_see_exploitables to true, and if not, false. +Always calls handle_exploitables_menu. Also sets can_see_exploitables to true if has_exploitables_override is true and skips the rest.

handle_exploitables_menu

Called by handle_exploitables(). Checks for a discrepency between has_exploitable_menu and can_see_exploitable, and gives/takes the verb accordingly (if can_see_exploitables is true/false). +Always makes sure the user has the exploitable menu if has_exploitables_override is true.

has_antag_datum_in_list

Returns true if mind has any antag datum from a list of types

is_valid_bloodsucker

Check if this is a valid person to actually be a bloodsucker

quick_copy_all_memories

Helper to create quick copies of all of our memories +Quick copies aren't full copies - just basic copies containing necessities. +They cannot be used in stories.

remove_addiction_points

Adds addiction points to the specified addiction

remove_antags_for_borging

Remove the antagonists that should not persist when being borged

select_memory

Simple / sane proc for giving a mob the option to select one of their memories +that do not have the flags MEMORY_FLAG_ALREADY_USED or MEMORY_NO_STORY.

+

Arguments

+ +

Returns the memory selected, or null otherwise.

set_assigned_role

Setter for the assigned_role job datum.

set_assigned_role_with_greeting

Sets us to the passed job datum, then greets them to their new job. +Use this one for when you're assigning this mind to a new job for the first time, +or for when someone's receiving a job they'd really want to be greeted to.

set_experience

Set experience of a specific skill to a number

set_level

Set level of a specific skill

teach_crafting_recipe

proc that teaches user a non-standard crafting recipe

try_give_equipment_fallback

Checks to see if the mind has an accessible uplink (their own, if they are a traitor; any unlocked uplink otherwise), +and gives them a fallback spell if no uplink was found

unteach_crafting_recipe

The opposite of proc/teach_crafting_recipe +will attempt to remove the arg "recipe" from the learned recipes

update_skill_level

Check what the current skill level is based on that skill's exp

wipe_memory

Small helper to clean out memories.

wipe_memory_type

Helder to wipe the passed memory type ONLY from our list of memories

\ No newline at end of file diff --git a/datum/mod_link.html b/datum/mod_link.html new file mode 100644 index 0000000000000..81a328c26b236 --- /dev/null +++ b/datum/mod_link.html @@ -0,0 +1 @@ +/datum/mod_link - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mod_link

A MODlink datum, used to handle unique functions that will be used in the MODlink call.

Vars

can_call_callbackA callback that returns whether the MODlink can currently call.
delete_visual_callbackA callback that deletes the visuals of the MODlink.
frequencyThe frequency of the MODlink. You can only call other MODlinks on the same frequency.
get_user_callbackA callback that returns the user of the MODlink.
get_visual_callbackA callback that receives the visuals of the other MODlink.
holderThe atom that holds the MODlink.
idThe unique ID of the MODlink.
link_callA reference to the call between two MODlinks.
make_visual_callbackA callback that returns the visuals of the MODlink.
nameGeneric name for multitool buffers.
visualA reference to the visuals generated by the MODlink.
visual_overlaysA list of all overlays of the user, copied everytime they have an overlay change.

Var Details

can_call_callback

A callback that returns whether the MODlink can currently call.

delete_visual_callback

A callback that deletes the visuals of the MODlink.

frequency

The frequency of the MODlink. You can only call other MODlinks on the same frequency.

get_user_callback

A callback that returns the user of the MODlink.

get_visual_callback

A callback that receives the visuals of the other MODlink.

holder

The atom that holds the MODlink.

id

The unique ID of the MODlink.

A reference to the call between two MODlinks.

make_visual_callback

A callback that returns the visuals of the MODlink.

name

Generic name for multitool buffers.

visual

A reference to the visuals generated by the MODlink.

visual_overlays

A list of all overlays of the user, copied everytime they have an overlay change.

\ No newline at end of file diff --git a/datum/mod_link_call.html b/datum/mod_link_call.html new file mode 100644 index 0000000000000..891b60edfced8 --- /dev/null +++ b/datum/mod_link_call.html @@ -0,0 +1 @@ +/datum/mod_link_call - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mod_link_call

A MODlink call datum, used to handle the call between two MODlinks.

Vars

callerThe MODlink that is calling.
receiverThe MODlink that is being called.

Var Details

caller

The MODlink that is calling.

receiver

The MODlink that is being called.

\ No newline at end of file diff --git a/datum/mod_part.html b/datum/mod_part.html new file mode 100644 index 0000000000000..e3f7c99ddd213 --- /dev/null +++ b/datum/mod_part.html @@ -0,0 +1 @@ +/datum/mod_part - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mod_part

Datum to handle interactions between a MODsuit and its parts.

Vars

can_overslotCan our part overslot over others?
overslottingWhat are we overslotting over?
part_itemThe actual item we handle.
sealedAre we sealed?
sealed_layerThe layer the item will render on when sealed.
sealed_messageMessage to user when sealed.
unsealed_layerThe layer the item will render on when unsealed.
unsealed_messageMessage to user when unsealed.

Var Details

can_overslot

Can our part overslot over others?

overslotting

What are we overslotting over?

part_item

The actual item we handle.

sealed

Are we sealed?

sealed_layer

The layer the item will render on when sealed.

sealed_message

Message to user when sealed.

unsealed_layer

The layer the item will render on when unsealed.

unsealed_message

Message to user when unsealed.

\ No newline at end of file diff --git a/datum/mod_theme.html b/datum/mod_theme.html new file mode 100644 index 0000000000000..c4f1291dc71c9 --- /dev/null +++ b/datum/mod_theme.html @@ -0,0 +1 @@ +/datum/mod_theme - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mod_theme

MODsuit theme, instanced once and then used by MODsuits to grab various statistics.

Vars

activation_step_timeHow long this MOD takes each part to seal.
allowed_suit_storageAllowed items in the chestplate's suit storage.
armor_typeArmor shared across the MOD parts.
atom_flagsAtom flags shared across the MOD parts.
charge_drainHow much battery power the MOD uses by just being on
complexity_maxHow much modules can the MOD carry without malfunctioning.
default_skinDefault skin of the MOD.
descDescription added to the MOD.
extended_descExtended description on examine_more
hardlightWether or not the MOD projects hardlight at all
hardlight_themeThe icon_state which is chosen to render as hardlight
inbuilt_modulesList of inbuilt modules. These are different from the pre-equipped suits, you should mainly use these for unremovable modules with 0 complexity.
max_heat_protection_temperatureMax heat protection shared across the MOD parts.
min_cold_protection_temperatureMax cold protection shared across the MOD parts.
nameTheme name for the MOD.
resistance_flagsResistance flags shared across the MOD parts.
siemens_coefficientSiemens shared across the MOD parts.
slot_flagsThe slot this mod theme fits on
slowdown_activeSlowdown of the MOD when active.
slowdown_inactiveSlowdown of the MOD when not active.
ui_themeTheme used by the MOD TGUI.
variantsList of variants and items created by them, with the flags we set.

Procs

set_up_partsCreate parts of the suit and modify them using the theme's variables.

Var Details

activation_step_time

How long this MOD takes each part to seal.

allowed_suit_storage

Allowed items in the chestplate's suit storage.

armor_type

Armor shared across the MOD parts.

atom_flags

Atom flags shared across the MOD parts.

charge_drain

How much battery power the MOD uses by just being on

complexity_max

How much modules can the MOD carry without malfunctioning.

default_skin

Default skin of the MOD.

desc

Description added to the MOD.

extended_desc

Extended description on examine_more

hardlight

Wether or not the MOD projects hardlight at all

hardlight_theme

The icon_state which is chosen to render as hardlight

inbuilt_modules

List of inbuilt modules. These are different from the pre-equipped suits, you should mainly use these for unremovable modules with 0 complexity.

max_heat_protection_temperature

Max heat protection shared across the MOD parts.

min_cold_protection_temperature

Max cold protection shared across the MOD parts.

name

Theme name for the MOD.

resistance_flags

Resistance flags shared across the MOD parts.

siemens_coefficient

Siemens shared across the MOD parts.

slot_flags

The slot this mod theme fits on

slowdown_active

Slowdown of the MOD when active.

slowdown_inactive

Slowdown of the MOD when not active.

ui_theme

Theme used by the MOD TGUI.

variants

List of variants and items created by them, with the flags we set.

Proc Details

set_up_parts

Create parts of the suit and modify them using the theme's variables.

\ No newline at end of file diff --git a/datum/modular_mob_segment.html b/datum/modular_mob_segment.html new file mode 100644 index 0000000000000..00bc18cb6a00c --- /dev/null +++ b/datum/modular_mob_segment.html @@ -0,0 +1 @@ +/datum/modular_mob_segment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

modular_mob_segment

A list for mob spawning landmarks to use.

Vars

exactSet this to false if you want explicitly what's in the list to spawn
maxSpawn no more than this amount
mobsThe list of mobs to spawn
probabilityChance this will spawn (1 - 100)

Procs

spawn_mobsSpawns mobs in a circle around the location

Var Details

exact

Set this to false if you want explicitly what's in the list to spawn

max

Spawn no more than this amount

mobs

The list of mobs to spawn

probability

Chance this will spawn (1 - 100)

Proc Details

spawn_mobs

Spawns mobs in a circle around the location

\ No newline at end of file diff --git a/datum/modular_persistence.html b/datum/modular_persistence.html new file mode 100644 index 0000000000000..54f7e6eb64410 --- /dev/null +++ b/datum/modular_persistence.html @@ -0,0 +1 @@ +/datum/modular_persistence - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

modular_persistence

The master persistence datum. Add vars onto this in your own code. Just be aware that you'll need to use simple data types, such as strings, ints, and lists.

Vars

nif_carrier_roomsA param string containing soulcatcher rooms
nif_durabilityThe current durability of the implanted NIF. Can be null.
nif_examine_textThe extra examine text for the user of the NIF. Can be null.
nif_is_calibratedWhether the NIF is calibrated for use or not. Can be null.
nif_pathThe path to the current implanted NIF. Can be null.
nif_themeThe theme of the implanted NIF. Can be null.
ownerThe human that this is attached to.
persistent_nifsoftsA string containing programs that are transfered from one round to the next.
soul_poem_nifsoft_messageWhat message is saved to the station pass NIFSoft?
soul_poem_nifsoft_nameWhat name is saved to the station pass NIFSoft?
stored_character_slot_indexThe owner's character slot index.
stored_rewards_pointsHow many rewards points does the NIF have stored on it?

Procs

save_dataSaves the held persistence data to where it needs to go.

Var Details

nif_carrier_rooms

A param string containing soulcatcher rooms

nif_durability

The current durability of the implanted NIF. Can be null.

nif_examine_text

The extra examine text for the user of the NIF. Can be null.

nif_is_calibrated

Whether the NIF is calibrated for use or not. Can be null.

nif_path

The path to the current implanted NIF. Can be null.

nif_theme

The theme of the implanted NIF. Can be null.

owner

The human that this is attached to.

persistent_nifsofts

A string containing programs that are transfered from one round to the next.

soul_poem_nifsoft_message

What message is saved to the station pass NIFSoft?

soul_poem_nifsoft_name

What name is saved to the station pass NIFSoft?

stored_character_slot_index

The owner's character slot index.

stored_rewards_points

How many rewards points does the NIF have stored on it?

Proc Details

save_data

Saves the held persistence data to where it needs to go.

\ No newline at end of file diff --git a/datum/mold_type.html b/datum/mold_type.html new file mode 100644 index 0000000000000..12be6c95ccb20 --- /dev/null +++ b/datum/mold_type.html @@ -0,0 +1,29 @@ +/datum/mold_type - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mold_type

Vars

examine_textThe examine text for structures
max_spawnsThe maximum number of mobs we can have at once, per spawner
mob_typesThe type of mobs the mold spawns
mold_colorThe color of the mold structures
preferred_atmos_conditionsThe mold type's preferred atmospheric conditions
resistance_flagsThe resistance flags for the mold type
spawn_cooldownThe cooldown between mob spawns
structure_light_colorThe color of the light emitted by some of the mold structures
tierThe tier of the mold, used to decide whether it can spawn on lowpop

Procs

bonus_conditioner_effectsThe optional bonus effect alongside conditioner's puff of atmos.
bulb_dischargeWhat happens when a bulb discharges.
core_defenseWhat happens when the core is attacked.
spew_foamA release of foam from a mold structure.

Var Details

examine_text

The examine text for structures

max_spawns

The maximum number of mobs we can have at once, per spawner

mob_types

The type of mobs the mold spawns

mold_color

The color of the mold structures

preferred_atmos_conditions

The mold type's preferred atmospheric conditions

resistance_flags

The resistance flags for the mold type

spawn_cooldown

The cooldown between mob spawns

structure_light_color

The color of the light emitted by some of the mold structures

tier

The tier of the mold, used to decide whether it can spawn on lowpop

Proc Details

bonus_conditioner_effects

The optional bonus effect alongside conditioner's puff of atmos.

+

Mold conditioners have a possibility to have a bonus effect on process. This will trigger +whenever the conditioner's regular puff of atmos is released, aka when its cooldown is up.

+

bulb_discharge

What happens when a bulb discharges.

+

The defense mechanism of the bulbs, this can be run either when the bulb is attacked, be it +directly, when it's shot, or when a mob comes into proximity of the bulb. It'll then be on +cooldown for a while until it recharges. This is usually a pretty similar effect to the +core defense, though it doesn't have to be.

+

core_defense

What happens when the core is attacked.

+

When the core is hit, each type of mold has a defense mechanism, ranging from creating hot +gas, to toxic foam spills, and anything else. This is called in run_atom_armor, a proc on +the mold core the datum refers to.

+

spew_foam

A release of foam from a mold structure.

+

Some mold defenses include spilling foam. This is handled here, where on trigger some foam +will spread from the structure that is designated as its source. Different mold structures +and mold types have different reagent amounts and reagent types, respectively.

+
\ No newline at end of file diff --git a/datum/mold_type/disease.html b/datum/mold_type/disease.html new file mode 100644 index 0000000000000..dd01d6ebf616c --- /dev/null +++ b/datum/mold_type/disease.html @@ -0,0 +1,4 @@ +/datum/mold_type/disease - /tg/ Station 13
/tg/ Station 13 - Modules - Types

disease

Disease mold

+

A mold type that centers around disease. It spawns rats that inject with disease, lets +out puffs of fungal smoke that spread disease. +It has its own custom disease, too. Fancy.

\ No newline at end of file diff --git a/datum/mold_type/emp.html b/datum/mold_type/emp.html new file mode 100644 index 0000000000000..e092c89204a0a --- /dev/null +++ b/datum/mold_type/emp.html @@ -0,0 +1,3 @@ +/datum/mold_type/emp - /tg/ Station 13
/tg/ Station 13 - Modules - Types

emp

EMP mold

+

A mold type centered around electricity and EMPs. Its mobs, mosquitos, inject teslium on hit, +it lets out EMPs as a defense mechanism, and can tesla-zap people too. Spicy.

\ No newline at end of file diff --git a/datum/mold_type/fire.html b/datum/mold_type/fire.html new file mode 100644 index 0000000000000..584e39a56046f --- /dev/null +++ b/datum/mold_type/fire.html @@ -0,0 +1,5 @@ +/datum/mold_type/fire - /tg/ Station 13
/tg/ Station 13 - Modules - Types

fire

Fire mold

+

A mold type that is based around a fire theme. It's the colour of fire, prefers hotter +temperatures, spawns a burn mix from its conditioners. The whole shebang. The mobs it +spawns are oil shamblers, a humanoid figure that can set fire to people on hit. +Probably the most simple mold type.

\ No newline at end of file diff --git a/datum/mold_type/radioactive.html b/datum/mold_type/radioactive.html new file mode 100644 index 0000000000000..38e0442b2e4cb --- /dev/null +++ b/datum/mold_type/radioactive.html @@ -0,0 +1,4 @@ +/datum/mold_type/radioactive - /tg/ Station 13
/tg/ Station 13 - Modules - Types

radioactive

Radioactive mold

+

A mold type centered around radiation. Its mobs don't irradiate, rather being mutated abominations +themselves that have a very high chance to wound on hit. Additionally, the mold will spew +unstable mutagen foam as well as occasionally firing nuclear particles.

\ No newline at end of file diff --git a/datum/mold_type/toxic.html b/datum/mold_type/toxic.html new file mode 100644 index 0000000000000..b196f23fd5cac --- /dev/null +++ b/datum/mold_type/toxic.html @@ -0,0 +1,4 @@ +/datum/mold_type/toxic - /tg/ Station 13
/tg/ Station 13 - Modules - Types

toxic

Toxic mold

+

A mold type based around toxins. It spawns spiders that inject toxins on hit, spews +toxin-filled foam, and is purple - which, as we all know, is the colour of the poison +in the poison flask Hearthstone card.

\ No newline at end of file diff --git a/datum/mood.html b/datum/mood.html new file mode 100644 index 0000000000000..868bb049f41c5 --- /dev/null +++ b/datum/mood.html @@ -0,0 +1,21 @@ +/datum/mood - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mood

Mood datum

+

Contains the logic for controlling a living mob's mood and sanity.

Vars

insanity_effectIs the owner being punished for low mood? if so, how much?
last_statTracks the last mob stat, updates on change +Used to stop processing SSmood
mob_parentThe parent (living) mob
moodThe total combined value of all moodlets for the mob
mood_eventsList of mood events currently active on this datum
mood_levelUsed to track what stage of moodies they're on (1-9)
mood_modifierMoodlet value modifier
mood_screen_objectThe screen object for the current mood level
sanityCurrent sanity of the mob (ranges from 0 - 150)
sanity_levelTo track what stage of sanity they're on (1-6)
shown_moodthe total combined value of all visible moodlets for the mob

Procs

add_mood_eventAdds a mood event to the mob
check_area_moodUpdates the mob's moodies, if the area provides a mood bonus
clear_mood_eventRemoves a mood event from the mob
direct_sanity_drainHelper to forcefully drain sanity
get_alcohol_processingAdds a moodlet entry based on if the mob currently has alcohol processing in their system.
get_drunk_moodAdds a moodlet entry based on the current blood alcohol content of the mob.
has_mood_of_categoryReturns true if you already have a mood from a provided category. +You may think to yourself, why am I trying to get a boolean from a component? Well, this system probably should not be a component.
hud_clickHandles clicking on the mood HUD object
modify_hudSets up the mood HUD object
on_reviveCalled when parent is ahealed.
print_moodPrints the users mood, sanity, and moodies to chat
remove_temp_moodsRemoves all temporary moods
set_insanity_effectSets the insanity effect on the mob
set_sanitySets sanity to the specified amount and applies effects.
unmodify_hudRemoves the mood HUD object
update_beautyUpdates the mob's given beauty moodie, based on the area
update_moodUpdates the mobs mood. +Called after mood events have been added/removed.
update_mood_iconUpdates the mob's mood icon
update_nutrition_moodletsHandles mood given by nutrition

Var Details

insanity_effect

Is the owner being punished for low mood? if so, how much?

last_stat

Tracks the last mob stat, updates on change +Used to stop processing SSmood

mob_parent

The parent (living) mob

mood

The total combined value of all moodlets for the mob

mood_events

List of mood events currently active on this datum

mood_level

Used to track what stage of moodies they're on (1-9)

mood_modifier

Moodlet value modifier

mood_screen_object

The screen object for the current mood level

sanity

Current sanity of the mob (ranges from 0 - 150)

sanity_level

To track what stage of sanity they're on (1-6)

shown_mood

the total combined value of all visible moodlets for the mob

Proc Details

add_mood_event

Adds a mood event to the mob

+

Arguments:

+

check_area_mood

Updates the mob's moodies, if the area provides a mood bonus

clear_mood_event

Removes a mood event from the mob

+

Arguments:

+

direct_sanity_drain

Helper to forcefully drain sanity

get_alcohol_processing

Adds a moodlet entry based on if the mob currently has alcohol processing in their system.

get_drunk_mood

Adds a moodlet entry based on the current blood alcohol content of the mob.

has_mood_of_category

Returns true if you already have a mood from a provided category. +You may think to yourself, why am I trying to get a boolean from a component? Well, this system probably should not be a component.

+

Arguments

+

hud_click

Handles clicking on the mood HUD object

modify_hud

Sets up the mood HUD object

on_revive

Called when parent is ahealed.

print_mood

Prints the users mood, sanity, and moodies to chat

remove_temp_moods

Removes all temporary moods

set_insanity_effect

Sets the insanity effect on the mob

set_sanity

Sets sanity to the specified amount and applies effects.

unmodify_hud

Removes the mood HUD object

update_beauty

Updates the mob's given beauty moodie, based on the area

update_mood

Updates the mobs mood. +Called after mood events have been added/removed.

update_mood_icon

Updates the mob's mood icon

update_nutrition_moodlets

Handles mood given by nutrition

\ No newline at end of file diff --git a/datum/mood_event.html b/datum/mood_event.html new file mode 100644 index 0000000000000..47ed9cc306214 --- /dev/null +++ b/datum/mood_event.html @@ -0,0 +1,5 @@ +/datum/mood_event - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mood_event

Vars

categoryA category to put multiple mood events. If one of the mood events in the category +is active while another mood event (from the same category) is triggered it will remove +the effects of the current mood event and replace it with the new one
descriptionDescription of the mood event
hiddenIs this mood event hidden on examine
mood_changeAn integer value that affects overall sanity over time
ownerOwner of this mood event
required_jobList of required jobs for this mood event
special_screen_objIcon state of the unique mood event icon, if applicable
special_screen_replaceif false, it will be an overlay instead
timeoutHow long this mood event should last

Var Details

category

A category to put multiple mood events. If one of the mood events in the category +is active while another mood event (from the same category) is triggered it will remove +the effects of the current mood event and replace it with the new one

description

Description of the mood event

hidden

Is this mood event hidden on examine

mood_change

An integer value that affects overall sanity over time

owner

Owner of this mood event

required_job

List of required jobs for this mood event

special_screen_obj

Icon state of the unique mood event icon, if applicable

special_screen_replace

if false, it will be an overlay instead

timeout

How long this mood event should last

\ No newline at end of file diff --git a/datum/mood_event/area.html b/datum/mood_event/area.html new file mode 100644 index 0000000000000..ac3aa43b49a9a --- /dev/null +++ b/datum/mood_event/area.html @@ -0,0 +1,23 @@ +/datum/mood_event/area - /tg/ Station 13
/tg/ Station 13 - Modules - Types

area

\ No newline at end of file diff --git a/datum/mood_event/drunk.html b/datum/mood_event/drunk.html new file mode 100644 index 0000000000000..5ab764858b207 --- /dev/null +++ b/datum/mood_event/drunk.html @@ -0,0 +1 @@ +/datum/mood_event/drunk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

drunk

Vars

blush_overlayThe blush overlay to display when the owner is drunk

Var Details

blush_overlay

The blush overlay to display when the owner is drunk

\ No newline at end of file diff --git a/datum/move_loop.html b/datum/move_loop.html new file mode 100644 index 0000000000000..32eb92d84343f --- /dev/null +++ b/datum/move_loop.html @@ -0,0 +1,15 @@ +/datum/move_loop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

move_loop

Template class of the movement datums, handles the timing portion of the loops

Vars

controllerThe subsystem we're processing on
delayDelay between each move in deci-seconds
extra_infoAn extra reference we pass around +It is on occasion useful to have a reference to some datum without storing it on the moving object +Mostly comes up in high performance senarios where we care about things being singletons +This feels horrible, but constantly making components seems worse
flagsBitfield of different things that affect how a loop operates, and other mechanics around it as well.
lifetimeTime till we stop processing in deci-seconds, defaults to forever
movingThe thing we're moving about
ownerThe movement packet that owns us
priorityDefines how different move loops override each other. Higher numbers beat lower numbers
queued_timeThe time we are CURRENTLY queued for processing +Do not modify this directly
statusStatus bitfield for what state the move loop is currently in
timerThe next time we should process +Used primarially as a hint to be reasoned about by our [controller], and as the id of our bucket

Procs

compare_loopscheck if this exact moveloop datum already exists (in terms of vars) so we can avoid creating a new one to overwrite the old duplicate
loop_startedCalled when a loop is starting by a movement subsystem
loop_stoppedCalled when a loop is stopped, doesn't stop the loop itself
moveHandles the actual move, overriden by children +Returns FALSE if nothing happen, TRUE otherwise
pause_forPauses the move loop for some passed in period +This functionally means shifting its timer up, and clearing it from its current bucket
pause_loopPause our loop untill restarted with resume_loop()
resume_loopResume our loop after being paused by pause_loop()
set_delayExists as a helper so outside code can modify delay in a sane way

Var Details

controller

The subsystem we're processing on

delay

Delay between each move in deci-seconds

extra_info

An extra reference we pass around +It is on occasion useful to have a reference to some datum without storing it on the moving object +Mostly comes up in high performance senarios where we care about things being singletons +This feels horrible, but constantly making components seems worse

flags

Bitfield of different things that affect how a loop operates, and other mechanics around it as well.

lifetime

Time till we stop processing in deci-seconds, defaults to forever

moving

The thing we're moving about

owner

The movement packet that owns us

priority

Defines how different move loops override each other. Higher numbers beat lower numbers

queued_time

The time we are CURRENTLY queued for processing +Do not modify this directly

status

Status bitfield for what state the move loop is currently in

timer

The next time we should process +Used primarially as a hint to be reasoned about by our [controller], and as the id of our bucket

Proc Details

compare_loops

check if this exact moveloop datum already exists (in terms of vars) so we can avoid creating a new one to overwrite the old duplicate

loop_started

Called when a loop is starting by a movement subsystem

loop_stopped

Called when a loop is stopped, doesn't stop the loop itself

move

Handles the actual move, overriden by children +Returns FALSE if nothing happen, TRUE otherwise

pause_for

Pauses the move loop for some passed in period +This functionally means shifting its timer up, and clearing it from its current bucket

pause_loop

Pause our loop untill restarted with resume_loop()

resume_loop

Resume our loop after being paused by pause_loop()

set_delay

Exists as a helper so outside code can modify delay in a sane way

\ No newline at end of file diff --git a/datum/move_loop/has_target.html b/datum/move_loop/has_target.html new file mode 100644 index 0000000000000..bf3145e95b7fa --- /dev/null +++ b/datum/move_loop/has_target.html @@ -0,0 +1 @@ +/datum/move_loop/has_target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

has_target

Vars

targetThe thing we're moving in relation to, either at or away from

Var Details

target

The thing we're moving in relation to, either at or away from

\ No newline at end of file diff --git a/datum/move_loop/has_target/dist_bound.html b/datum/move_loop/has_target/dist_bound.html new file mode 100644 index 0000000000000..3356bd4724685 --- /dev/null +++ b/datum/move_loop/has_target/dist_bound.html @@ -0,0 +1 @@ +/datum/move_loop/has_target/dist_bound - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

dist_bound

Base class of move_to and move_away, deals with the distance and target aspect of things

Procs

check_distReturns FALSE if the movement should pause, TRUE otherwise

Proc Details

check_dist

Returns FALSE if the movement should pause, TRUE otherwise

\ No newline at end of file diff --git a/datum/move_loop/has_target/jps.html b/datum/move_loop/has_target/jps.html new file mode 100644 index 0000000000000..e6f94a2136355 --- /dev/null +++ b/datum/move_loop/has_target/jps.html @@ -0,0 +1 @@ +/datum/move_loop/has_target/jps - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

jps

Vars

accessA list representing what access we have and what doors we can open.
avoidA perticular turf to avoid
diagonal_handlingWhether we replace diagonal movements with cardinal movements or follow through with them
is_pathingBool used to determine if we're already making a path in JPS. this prevents us from re-pathing while we're already busy.
max_path_lengthMax amount of steps to search
minimum_distanceMinimum distance to the target before path returns
movement_pathA list for the path we're currently following
on_finish_callbacksCallbacks to invoke once we make a path
repath_cooldownCooldown for repathing, prevents spam
repath_delayHow often we're allowed to recalculate our path
simulated_onlyWhether we consider turfs without atmos simulation (AKA do we want to ignore space)
skip_firstShould we skip the first step? This is the tile we're currently on, which breaks some things

Procs

on_finish_pathingCalled when a path has finished being created
recalculate_pathTries to calculate a new path for this moveloop.

Var Details

access

A list representing what access we have and what doors we can open.

avoid

A perticular turf to avoid

diagonal_handling

Whether we replace diagonal movements with cardinal movements or follow through with them

is_pathing

Bool used to determine if we're already making a path in JPS. this prevents us from re-pathing while we're already busy.

max_path_length

Max amount of steps to search

minimum_distance

Minimum distance to the target before path returns

movement_path

A list for the path we're currently following

on_finish_callbacks

Callbacks to invoke once we make a path

repath_cooldown

Cooldown for repathing, prevents spam

repath_delay

How often we're allowed to recalculate our path

simulated_only

Whether we consider turfs without atmos simulation (AKA do we want to ignore space)

skip_first

Should we skip the first step? This is the tile we're currently on, which breaks some things

Proc Details

on_finish_pathing

Called when a path has finished being created

recalculate_path

Tries to calculate a new path for this moveloop.

\ No newline at end of file diff --git a/datum/move_loop/has_target/move_towards.html b/datum/move_loop/has_target/move_towards.html new file mode 100644 index 0000000000000..818ab4cea32a9 --- /dev/null +++ b/datum/move_loop/has_target/move_towards.html @@ -0,0 +1,7 @@ +/datum/move_loop/has_target/move_towards - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

move_towards

Used as a alternative to walk_towards

Vars

homeShould we try and stay on the path, or is deviation alright
moving_towardsThe turf we want to move into, used for course correction
x_rateThe rate at which we move, between 0 and 1
x_tickerWhen this gets larger then 1 we move a turf

Procs

update_slopeRecalculates the slope between our object and the target, sets our rates to it

Var Details

home

Should we try and stay on the path, or is deviation alright

moving_towards

The turf we want to move into, used for course correction

x_rate

The rate at which we move, between 0 and 1

x_ticker

When this gets larger then 1 we move a turf

Proc Details

update_slope

Recalculates the slope between our object and the target, sets our rates to it

+

The math below is reminiscent of something like y = mx + b +Except we don't need to care about axis, since we do all our movement in steps of 1 +Because of that all that matters is we only move one tile at a time +So we take the smaller delta, divide it by the larger one, and get smaller step per large step +Then we set the large step to 1, and we're done. This way we're guaranteed to never move more then a tile at once +And we can have nice lines

\ No newline at end of file diff --git a/datum/move_loop/smooth_move.html b/datum/move_loop/smooth_move.html new file mode 100644 index 0000000000000..4671bb0344504 --- /dev/null +++ b/datum/move_loop/smooth_move.html @@ -0,0 +1 @@ +/datum/move_loop/smooth_move - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

smooth_move

Vars

angleAngle at which we move. 0 is north because byond.
saved_delayActual move delay, as delay will be modified by move() depending on what direction we move in
x_rateThe rate at which we move, between 0 and 1. Cached to cut down on trig
x_signSign for our movement
x_tickerWhen this gets bigger than 1, we move a turf

Var Details

angle

Angle at which we move. 0 is north because byond.

saved_delay

Actual move delay, as delay will be modified by move() depending on what direction we move in

x_rate

The rate at which we move, between 0 and 1. Cached to cut down on trig

x_sign

Sign for our movement

x_ticker

When this gets bigger than 1, we move a turf

\ No newline at end of file diff --git a/datum/move_manager.html b/datum/move_manager.html new file mode 100644 index 0000000000000..ed921ed27bd0b --- /dev/null +++ b/datum/move_manager.html @@ -0,0 +1,147 @@ +/datum/move_manager - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

move_manager

Acts as a namespace for movement packet/type related procs

+

Exists to provide an in code implementation of movement looping +Replaces things like walk() or walk_to(), among others

+

Because we're doing things in engine, we have a lot more control over how different operations are performed +We also get more say in when things happen, so we can subject movements to the whims of the master controller +Rather then using a fuck ton of cpu just moving mobs or meteors

+

The goal is to keep the loops themselves reasonably barebone, and implement more advanced behavior and control via the signals

+

This may be bypassed in cases where snowflakes are nessesary, or where performance is important. S not a hard and fast thing

+

Every atom can have a movement packet, which contains information and behavior about currently active loops, and queuing info +Loops control how movement actually happens. So there's a "move in this direction" loop, a "move randomly" loop

+

You can find the logic for this control in this file

+

Specifics of how different loops operate can be found in the movement_types.dm file, alongside the add to loop helper procs that use them

Procs

add_to_loopAdds a movable thing to a movement subsystem. Returns TRUE if it all worked, FALSE if it failed somehow
force_moveUsed for force-move loops, similar to move_towards_legacy() but not quite the same
force_move_dirLike move(), but we don't care about collision at all
freezeAssigns a target to a move loop that immediately freezes for a set duration of time.
home_ontoHelper proc for homing onto something with move_towards
jps_moveUsed for following jps defined paths. The proc signature here's a bit long, I'm sorry
moveReplacement for walk()
move_awayWrapper around walk_away()
move_disposalsSnowflake disposal movement. Moves a disposal holder along a chain of disposal pipes
move_randHelper proc for the move_rand datum
move_toWrapper around walk_to()
move_to_randWrapper around walk_rand(), doesn't actually result in a random walk, it's more like moving to random places in viewish
move_towardsHelper proc for the move_towards datum
move_towards_legacyWrapper for walk_towards, not reccomended, as its movement ends up being a bit stilted
processing_onReturns the subsystem's loop if we're processing on it, null otherwise
smooth_moveHelper proc for the smooth_move datum
stop_loopingRemoves the atom from some movement subsystem. Defaults to SSmovement

Proc Details

add_to_loop

Adds a movable thing to a movement subsystem. Returns TRUE if it all worked, FALSE if it failed somehow

force_move

Used for force-move loops, similar to move_towards_legacy() but not quite the same

+

Returns TRUE if the loop sucessfully started, or FALSE if it failed

+

Arguments: +moving - The atom we want to move +chasing - The atom we want to move towards +delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 +timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity +subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem +priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY +flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm

force_move_dir

Like move(), but we don't care about collision at all

+

Returns TRUE if the loop sucessfully started, or FALSE if it failed

+

Arguments: +moving - The atom we want to move +direction - The direction we want to move in +delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 +timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity +subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem +priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY +flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm

freeze

Assigns a target to a move loop that immediately freezes for a set duration of time.

+

Returns TRUE if the loop sucessfully started, or FALSE if it failed

+

Arguments: +moving - The atom we want to move +halted_turf - The turf we want to freeze on. This should typically be the loc of moving. +delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 +timeout - Time in deci-seconds until the moveloop self expires. This should be considered extremely non-optional as it will completely stun out the movement loop forever if unset. +subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem +priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY +flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm

home_onto

Helper proc for homing onto something with move_towards

+

Returns TRUE if the loop sucessfully started, or FALSE if it failed

+

Arguments: +moving - The atom we want to move +chasing - The atom we want to move towards +delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 +home - Should we move towards the object at all times? Or launch towards them, but allow walls and such to take us off track. Defaults to FALSE +timeout - Time in deci-seconds until the moveloop self expires. Defaults to INFINITY +subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem +priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY +flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm

jps_move

Used for following jps defined paths. The proc signature here's a bit long, I'm sorry

+

Returns TRUE if the loop sucessfully started, or FALSE if it failed

+

Arguments: +moving - The atom we want to move +chasing - The atom we want to move towards +delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 +repath_delay - How often we're allowed to recalculate our path +max_path_length - The maximum number of steps we can take in a given path to search (default: 30, 0 = infinite) +miminum_distance - Minimum distance to the target before path returns, could be used to get near a target, but not right to it - for an AI mob with a gun, for example +access - A list representing what access we have and what doors we can open +simulated_only - Whether we consider turfs without atmos simulation (AKA do we want to ignore space) +avoid - If we want to avoid a specific turf, like if we're a mulebot who already got blocked by some turf +skip_first - Whether or not to delete the first item in the path. This would be done because the first item is the starting tile, which can break things +timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity +subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem +priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY +flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm

move

Replacement for walk()

+

Returns TRUE if the loop sucessfully started, or FALSE if it failed

+

Arguments: +moving - The atom we want to move +direction - The direction we want to move in +delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 +timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity +subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem +priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY +flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm

move_away

Wrapper around walk_away()

+

Returns TRUE if the loop sucessfully started, or FALSE if it failed

+

Arguments: +moving - The atom we want to move +chasing - The atom we want to move towards +max_dist - the furthest away from the target we're allowed to get +delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 +timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity +subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem +priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY +flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm

move_disposals

Snowflake disposal movement. Moves a disposal holder along a chain of disposal pipes

+

Returns TRUE if the loop sucessfully started, or FALSE if it failed

+

Arguments: +moving - The atom we want to move +delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 +timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity +subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem +priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY +flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm

move_rand

Helper proc for the move_rand datum

+

Returns TRUE if the loop sucessfully started, or FALSE if it failed

+

Arguments: +moving - The atom we want to move +directions - A list of acceptable directions to try and move in. Defaults to GLOB.alldirs +delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 +timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity +subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem +priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY +flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm

move_to

Wrapper around walk_to()

+

Returns TRUE if the loop sucessfully started, or FALSE if it failed

+

Arguments: +moving - The atom we want to move +chasing - The atom we want to move towards +min_dist - the closest we're allower to get to the target +delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 +timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity +subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem +priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY +flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm

move_to_rand

Wrapper around walk_rand(), doesn't actually result in a random walk, it's more like moving to random places in viewish

+

Returns TRUE if the loop sucessfully started, or FALSE if it failed

+

Arguments: +moving - The atom we want to move +delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 +timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity +subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem +priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY +flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm

move_towards

Helper proc for the move_towards datum

+

Returns TRUE if the loop sucessfully started, or FALSE if it failed

+

Arguments: +moving - The atom we want to move +chasing - The atom we want to move towards +delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 +home - Should we move towards the object at all times? Or launch towards them, but allow walls and such to take us off track. Defaults to FALSE +timeout - Time in deci-seconds until the moveloop self expires. Defaults to INFINITY +subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem +priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY +flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm

move_towards_legacy

Wrapper for walk_towards, not reccomended, as its movement ends up being a bit stilted

+

Returns TRUE if the loop sucessfully started, or FALSE if it failed

+

Arguments: +moving - The atom we want to move +chasing - The atom we want to move towards +delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 +timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity +subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem +priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY +flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm

processing_on

Returns the subsystem's loop if we're processing on it, null otherwise

smooth_move

Helper proc for the smooth_move datum

+

Returns TRUE if the loop sucessfully started, or FALSE if it failed

+

Arguments: +moving - The atom we want to move +angle - Angle at which we want to move +delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 +timeout - Time in deci-seconds until the moveloop self expires. Defaults to INFINITY +subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem +priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY +flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm

stop_looping

Removes the atom from some movement subsystem. Defaults to SSmovement

\ No newline at end of file diff --git a/datum/movement_detector.html b/datum/movement_detector.html new file mode 100644 index 0000000000000..273f1e2283265 --- /dev/null +++ b/datum/movement_detector.html @@ -0,0 +1,3 @@ +/datum/movement_detector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

movement_detector

A datum to handle the busywork of registering signals to handle in depth tracking of a movable

Procs

move_reactReacts to any movement that would cause a change in coordinates of the tracked movable atom +This works by detecting movement of either the tracked object, or anything it is inside, recursively
trackSets up tracking of the given movable atom
untrackStops tracking

Proc Details

move_react

Reacts to any movement that would cause a change in coordinates of the tracked movable atom +This works by detecting movement of either the tracked object, or anything it is inside, recursively

track

Sets up tracking of the given movable atom

untrack

Stops tracking

\ No newline at end of file diff --git a/datum/movement_packet.html b/datum/movement_packet.html new file mode 100644 index 0000000000000..b5c3a9c9f02be --- /dev/null +++ b/datum/movement_packet.html @@ -0,0 +1,7 @@ +/datum/movement_packet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

movement_packet

A packet of information that describes the current state of a moving object

Vars

existing_loopsAssoc list of subsystems -> loop datum. Only one datum is allowed per subsystem
parentOur parent atom
processing_move_loop_flagsFlags passed from the move loop before it calls move() and unset right after. +Allows for properties of a move loop to be easily checked by mechanics outside of it. +Having this a bitfield rather than a type var means we don't get screwed over +if the move loop gets deleted mid-move, FYI.
running_loopThe move loop that's currently running, excluding those that ignore priority.

Procs

add_loopAdds a loop to our parent. Returns the created loop if a success, null otherwise
contest_running_loopAttempts to contest the current running move loop. Returns TRUE if the loop is active, FALSE otherwise
decide_on_running_loopTries to figure out the current favorite loop to run. More complex then just deciding between two different loops, assumes no running loop currently exists

Var Details

existing_loops

Assoc list of subsystems -> loop datum. Only one datum is allowed per subsystem

parent

Our parent atom

processing_move_loop_flags

Flags passed from the move loop before it calls move() and unset right after. +Allows for properties of a move loop to be easily checked by mechanics outside of it. +Having this a bitfield rather than a type var means we don't get screwed over +if the move loop gets deleted mid-move, FYI.

running_loop

The move loop that's currently running, excluding those that ignore priority.

Proc Details

add_loop

Adds a loop to our parent. Returns the created loop if a success, null otherwise

contest_running_loop

Attempts to contest the current running move loop. Returns TRUE if the loop is active, FALSE otherwise

decide_on_running_loop

Tries to figure out the current favorite loop to run. More complex then just deciding between two different loops, assumes no running loop currently exists

\ No newline at end of file diff --git a/datum/movespeed_modifier.html b/datum/movespeed_modifier.html new file mode 100644 index 0000000000000..4fb0c9fc2c67f --- /dev/null +++ b/datum/movespeed_modifier.html @@ -0,0 +1 @@ +/datum/movespeed_modifier - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

movespeed_modifier

Vars

blacklisted_movetypesMovetypes this never applies to
conflicts_withOther modification datums this conflicts with.
idUnique ID. You can never have different modifications with the same ID. By default, this SHOULD NOT be set. Only set it for cases where you're dynamically making modifiers/need to have two types overwrite each other. If unset, uses path (converted to text) as ID.
movetypesMovetypes this applies to
multiplicative_slowdownMultiplicative slowdown
priorityHigher ones override lower priorities. This is NOT used for ID, ID must be unique, if it isn't unique the newer one overwrites automatically if overriding.
variableWhether or not this is a variable modifier. Variable modifiers can NOT be ever auto-cached. ONLY CHECKED VIA INITIAL(), EFFECTIVELY READ ONLY (and for very good reason)

Var Details

blacklisted_movetypes

Movetypes this never applies to

conflicts_with

Other modification datums this conflicts with.

id

Unique ID. You can never have different modifications with the same ID. By default, this SHOULD NOT be set. Only set it for cases where you're dynamically making modifiers/need to have two types overwrite each other. If unset, uses path (converted to text) as ID.

movetypes

Movetypes this applies to

multiplicative_slowdown

Multiplicative slowdown

priority

Higher ones override lower priorities. This is NOT used for ID, ID must be unique, if it isn't unique the newer one overwrites automatically if overriding.

variable

Whether or not this is a variable modifier. Variable modifiers can NOT be ever auto-cached. ONLY CHECKED VIA INITIAL(), EFFECTIVELY READ ONLY (and for very good reason)

\ No newline at end of file diff --git a/datum/mutation/human.html b/datum/mutation/human.html new file mode 100644 index 0000000000000..90fae5522ac85 --- /dev/null +++ b/datum/mutation/human.html @@ -0,0 +1,15 @@ +/datum/mutation/human - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

human

Vars

alias'Mutation #49', decided every round to get some form of distinction between undiscovered mutations
blocksAmount of those big blocks with gene sequences
can_chromosomecan we take chromosomes? +0: CHROMOSOME_NEVER never +1: CHROMOSOME_NONE yeah +2: CHROMOSOME_USED no, already have one
chromosome_nameName of the chromosome
classThe class of mutation (MUT_NORMAL, MUT_EXTRA, MUT_OTHER)
conflictsany mutations that might conflict. +put mutation typepath defines in here. +make sure to enter it both ways (so that A conflicts with B, and B with A)
descDescription of the mutation
difficultyAmount of missing sequences. Sometimes it removes an entire pair for 2 points
disabledIs this mutation disabled(can't be got through the DNA console)
dnaThe owner of this mutation's DNA
energy_coeffLowers mutation cooldown
health_reqMinimum health required to acquire the mutation
instabilityInstability the holder gets when the mutation is not native
layer_usedWhich mutation layer to use
limb_reqRequired limbs to acquire this mutation
lockedIs this mutation currently locked?
modifiedHas the chromosome been modified
mutadone_proofIs this mutation mutadone proof
mutation_traitsList of traits that are added or removed by the mutation with GENETIC_TRAIT source.
ownerOwner of this mutation
power_coeffBoosts mutation strength
power_pathThe path of action we grant to our user on mutation gain
qualityQuality of the mutation
scrambledWhether we can read it if it's active. To avoid cheesing with mutagen
species_allowedTo restrict mutation to only certain species
stabilizer_coeffgenetic stability coeff
synchronizer_coeffMakes the mutation hurt the user less
text_gain_indicationMessage given to the user upon gaining this mutation
text_lose_indicationMessage given to the user upon losing this mutation
timeoutTime between mutation creation and removal. If this exists, we have a timer
valid_chrom_listList of strings of valid chromosomes this mutation can accept.
visual_indicatorsVisual indicators upon the character of the owner of this mutation

Procs

modifyCalled when a chromosome is applied so we can properly update some stats +without having to remove and reapply the mutation from someone

Var Details

alias

'Mutation #49', decided every round to get some form of distinction between undiscovered mutations

blocks

Amount of those big blocks with gene sequences

can_chromosome

can we take chromosomes? +0: CHROMOSOME_NEVER never +1: CHROMOSOME_NONE yeah +2: CHROMOSOME_USED no, already have one

chromosome_name

Name of the chromosome

class

The class of mutation (MUT_NORMAL, MUT_EXTRA, MUT_OTHER)

conflicts

any mutations that might conflict. +put mutation typepath defines in here. +make sure to enter it both ways (so that A conflicts with B, and B with A)

desc

Description of the mutation

difficulty

Amount of missing sequences. Sometimes it removes an entire pair for 2 points

disabled

Is this mutation disabled(can't be got through the DNA console)

dna

The owner of this mutation's DNA

energy_coeff

Lowers mutation cooldown

health_req

Minimum health required to acquire the mutation

instability

Instability the holder gets when the mutation is not native

layer_used

Which mutation layer to use

limb_req

Required limbs to acquire this mutation

locked

Is this mutation currently locked?

modified

Has the chromosome been modified

mutadone_proof

Is this mutation mutadone proof

mutation_traits

List of traits that are added or removed by the mutation with GENETIC_TRAIT source.

owner

Owner of this mutation

power_coeff

Boosts mutation strength

power_path

The path of action we grant to our user on mutation gain

quality

Quality of the mutation

scrambled

Whether we can read it if it's active. To avoid cheesing with mutagen

species_allowed

To restrict mutation to only certain species

stabilizer_coeff

genetic stability coeff

synchronizer_coeff

Makes the mutation hurt the user less

text_gain_indication

Message given to the user upon gaining this mutation

text_lose_indication

Message given to the user upon losing this mutation

timeout

Time between mutation creation and removal. If this exists, we have a timer

valid_chrom_list

List of strings of valid chromosomes this mutation can accept.

visual_indicators

Visual indicators upon the character of the owner of this mutation

Proc Details

modify

Called when a chromosome is applied so we can properly update some stats +without having to remove and reapply the mutation from someone

+

Returns null if no modification was done, and +returns an instance of a power if modification was complete

\ No newline at end of file diff --git a/datum/mutation/human/acidflesh.html b/datum/mutation/human/acidflesh.html new file mode 100644 index 0000000000000..2593d80b2ad90 --- /dev/null +++ b/datum/mutation/human/acidflesh.html @@ -0,0 +1 @@ +/datum/mutation/human/acidflesh - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

acidflesh

Vars

msgcooldownThe cooldown for the warning message

Var Details

msgcooldown

The cooldown for the warning message

\ No newline at end of file diff --git a/datum/mutation/human/adaptation.html b/datum/mutation/human/adaptation.html new file mode 100644 index 0000000000000..a024fe2dc2f9a --- /dev/null +++ b/datum/mutation/human/adaptation.html @@ -0,0 +1 @@ +/datum/mutation/human/adaptation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

adaptation

Vars

adapt_iconIcon used for the adaptation overlay

Var Details

adapt_icon

Icon used for the adaptation overlay

\ No newline at end of file diff --git a/datum/mutation/human/chameleon.html b/datum/mutation/human/chameleon.html new file mode 100644 index 0000000000000..1e7e93bfbe9e4 --- /dev/null +++ b/datum/mutation/human/chameleon.html @@ -0,0 +1,18 @@ +/datum/mutation/human/chameleon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

chameleon

Procs

on_attack_handSKYRAT EDIT END +Resets the alpha of the host if they click on something nearby.
on_losingSKYRAT EDIT END
on_moveResets the alpha of the host to the chameleon default if they move.

Proc Details

on_attack_hand

SKYRAT EDIT END +Resets the alpha of the host if they click on something nearby.

+

Arguments:

+

on_losing

SKYRAT EDIT END

on_move

Resets the alpha of the host to the chameleon default if they move.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/mutation/human/elastic_arms.html b/datum/mutation/human/elastic_arms.html new file mode 100644 index 0000000000000..a1a7e4e67899c --- /dev/null +++ b/datum/mutation/human/elastic_arms.html @@ -0,0 +1 @@ +/datum/mutation/human/elastic_arms - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

elastic_arms

Procs

on_owner_equipping_itemsignal sent when prompting if an item can be equipped
on_owner_try_pullsignal sent when owner tries to pull

Proc Details

on_owner_equipping_item

signal sent when prompting if an item can be equipped

on_owner_try_pull

signal sent when owner tries to pull

\ No newline at end of file diff --git a/datum/mutation/human/extrastun.html b/datum/mutation/human/extrastun.html new file mode 100644 index 0000000000000..66eeb8a8cf3d5 --- /dev/null +++ b/datum/mutation/human/extrastun.html @@ -0,0 +1 @@ +/datum/mutation/human/extrastun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

extrastun

Procs

on_moveTriggers on moved(). Randomly makes the owner trip

Proc Details

on_move

Triggers on moved(). Randomly makes the owner trip

\ No newline at end of file diff --git a/datum/mutation/human/glow.html b/datum/mutation/human/glow.html new file mode 100644 index 0000000000000..8acd8bd7d83b5 --- /dev/null +++ b/datum/mutation/human/glow.html @@ -0,0 +1 @@ +/datum/mutation/human/glow - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

glow

Procs

get_glow_colorReturns a color for the glow effect

Proc Details

get_glow_color

Returns a color for the glow effect

\ No newline at end of file diff --git a/datum/mutation/human/hulk.html b/datum/mutation/human/hulk.html new file mode 100644 index 0000000000000..1821dce9ded00 --- /dev/null +++ b/datum/mutation/human/hulk.html @@ -0,0 +1,9 @@ +/datum/mutation/human/hulk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hulk

Vars

mutation_traitsList of traits to add/remove when someone gets this mutation.

Procs

break_an_armChecks damage of a hulk's arm and applies bone wounds as necessary.
check_swingRun a barrage of checks to see if any given click is actually able to swing
finish_swingTime to toss the victim at high speed
setup_swingDo a short 2 second do_after before starting the actual swing
swing_loopDoes the animations for the hulk swing loop

Var Details

mutation_traits

List of traits to add/remove when someone gets this mutation.

Proc Details

break_an_arm

Checks damage of a hulk's arm and applies bone wounds as necessary.

+

Called by specific atoms being attacked, such as walls. If an atom +does not call this proc, than punching that atom will not cause +arm breaking (even if the atom deals recoil damage to hulks). +Arguments: +arg1 is the arm to evaluate damage of and possibly break.

check_swing

Run a barrage of checks to see if any given click is actually able to swing

finish_swing

Time to toss the victim at high speed

setup_swing

Do a short 2 second do_after before starting the actual swing

swing_loop

Does the animations for the hulk swing loop

+

This code is based in part on the wrestling swing code ported from goon, see [code/datums/martial/wrestling.dm] +credit to: cogwerks, pistoleer, spyguy, angriestibm, marquesas, and stuntwaffle. +For each step of the swinging, with the delay getting shorter along the way. Checks to see we still have them in our grasp at each step.

\ No newline at end of file diff --git a/datum/mutation/human/hulk/superhuman.html b/datum/mutation/human/hulk/superhuman.html new file mode 100644 index 0000000000000..d3f52cdb263d8 --- /dev/null +++ b/datum/mutation/human/hulk/superhuman.html @@ -0,0 +1 @@ +/datum/mutation/human/hulk/superhuman - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

superhuman

Vars

mutation_traitsList of traits to add/remove when someone gets this mutation.

Var Details

mutation_traits

List of traits to add/remove when someone gets this mutation.

\ No newline at end of file diff --git a/datum/mutation/human/hulk/wizardly.html b/datum/mutation/human/hulk/wizardly.html new file mode 100644 index 0000000000000..163bdebcf9316 --- /dev/null +++ b/datum/mutation/human/hulk/wizardly.html @@ -0,0 +1 @@ +/datum/mutation/human/hulk/wizardly - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wizardly

Vars

mutation_traitsList of traits to add/remove when someone gets this mutation.

Var Details

mutation_traits

List of traits to add/remove when someone gets this mutation.

\ No newline at end of file diff --git a/datum/mutation/human/laser_eyes.html b/datum/mutation/human/laser_eyes.html new file mode 100644 index 0000000000000..674256db2b3bb --- /dev/null +++ b/datum/mutation/human/laser_eyes.html @@ -0,0 +1 @@ +/datum/mutation/human/laser_eyes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

laser_eyes

Laser Eyes lets you shoot lasers from your eyes!

Procs

on_ranged_attackTriggers on COMSIG_MOB_ATTACK_RANGED. Does the projectile shooting.

Proc Details

on_ranged_attack

Triggers on COMSIG_MOB_ATTACK_RANGED. Does the projectile shooting.

\ No newline at end of file diff --git a/datum/mutation/human/radioactive.html b/datum/mutation/human/radioactive.html new file mode 100644 index 0000000000000..61328be262bae --- /dev/null +++ b/datum/mutation/human/radioactive.html @@ -0,0 +1,3 @@ +/datum/mutation/human/radioactive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

radioactive

Vars

radioactivity_source_refWeakref to our radiation emitter component

Procs

make_radioactiveMakes the passed mob radioactive, or if they're already radioactive, +update their radioactivity to the newly set values

Var Details

radioactivity_source_ref

Weakref to our radiation emitter component

Proc Details

make_radioactive

Makes the passed mob radioactive, or if they're already radioactive, +update their radioactivity to the newly set values

\ No newline at end of file diff --git a/datum/mutation/human/telekinesis.html b/datum/mutation/human/telekinesis.html new file mode 100644 index 0000000000000..8ec10c22a7ab3 --- /dev/null +++ b/datum/mutation/human/telekinesis.html @@ -0,0 +1 @@ +/datum/mutation/human/telekinesis - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

telekinesis

Telekinesis lets you interact with objects from range, and gives you a light blue halo around your head.

Vars

blacklisted_atomsTypecache of atoms that TK shouldn't interact with

Procs

on_ranged_attackTriggers on COMSIG_MOB_ATTACK_RANGED. Usually handles stuff like picking up items at range.

Var Details

blacklisted_atoms

Typecache of atoms that TK shouldn't interact with

Proc Details

on_ranged_attack

Triggers on COMSIG_MOB_ATTACK_RANGED. Usually handles stuff like picking up items at range.

\ No newline at end of file diff --git a/datum/newspanel.html b/datum/newspanel.html new file mode 100644 index 0000000000000..40088c951bcd6 --- /dev/null +++ b/datum/newspanel.html @@ -0,0 +1,15 @@ +/datum/newspanel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

newspanel

Vars

channel_descWhat is the current, in-creation channel's description going to be?
channel_nameWhat is the current, in-creation channel's name going to be?
comment_textWhat is the current, in-creation comment's body going to be?
creating_channelIs the current user creating a new channel at the moment?
creating_commentIs the current user creating a new comment at the moment?
crime_descriptionWhat is the user submitted, crime description for the new wanted issue?
criminal_nameWhat is the user submitted, criminal name for the new wanted issue?
current_channelWhat newscaster channel is currently being viewed by the player?
current_imageThe current image that will be submitted with the newscaster story.
current_messageWhat newscaster feed_message is currently having a comment written for it?
feed_channel_messageThe message that's currently being written for a feed story.
viewing_wantedIs the current user editing or viewing a new wanted issue at the moment?

Procs

attach_photoThis takes a held photograph, and updates the current_image variable with that of the held photograph's image. +*user: The mob who is being checked for a held photo object.
create_channelPerforms a series of sanity checks before giving the user confirmation to create a new feed_channel using channel_name, and channel_desc. +*channel_locked: This variable determines if other users than the author can make comments and new feed_stories on this channel.
create_commentConstructs a comment to attach to the currently selected feed_message of choice, assuming that a user can be found and that a message body has been written.
create_storyCreates a new feed story to the global newscaster network. +Verifies that the message is being written to a real feed_channel, then provides a text input for the feed story to be written into. +Finally, it submits the message to the network, is logged globally, and clears all message-specific variables from the machine.
send_photo_dataSends photo data to build the newscaster article.
start_creating_channelThis proc performs checks before enabling the creating_channel var on the newscaster, such as preventing a user from having multiple channels, +preventing an un-ID'd user from making a channel, and preventing censored authors from making a channel. +Otherwise, sets creating_channel to TRUE.
toggle_photoSelects a currently held photo from the user's hand and makes it the current_image held by the newscaster. +If a photo is still held in the newscaster, it will otherwise clear it from the machine.

Var Details

channel_desc

What is the current, in-creation channel's description going to be?

channel_name

What is the current, in-creation channel's name going to be?

comment_text

What is the current, in-creation comment's body going to be?

creating_channel

Is the current user creating a new channel at the moment?

creating_comment

Is the current user creating a new comment at the moment?

crime_description

What is the user submitted, crime description for the new wanted issue?

criminal_name

What is the user submitted, criminal name for the new wanted issue?

current_channel

What newscaster channel is currently being viewed by the player?

current_image

The current image that will be submitted with the newscaster story.

current_message

What newscaster feed_message is currently having a comment written for it?

feed_channel_message

The message that's currently being written for a feed story.

viewing_wanted

Is the current user editing or viewing a new wanted issue at the moment?

Proc Details

attach_photo

This takes a held photograph, and updates the current_image variable with that of the held photograph's image. +*user: The mob who is being checked for a held photo object.

create_channel

Performs a series of sanity checks before giving the user confirmation to create a new feed_channel using channel_name, and channel_desc. +*channel_locked: This variable determines if other users than the author can make comments and new feed_stories on this channel.

create_comment

Constructs a comment to attach to the currently selected feed_message of choice, assuming that a user can be found and that a message body has been written.

create_story

Creates a new feed story to the global newscaster network. +Verifies that the message is being written to a real feed_channel, then provides a text input for the feed story to be written into. +Finally, it submits the message to the network, is logged globally, and clears all message-specific variables from the machine.

send_photo_data

Sends photo data to build the newscaster article.

start_creating_channel

This proc performs checks before enabling the creating_channel var on the newscaster, such as preventing a user from having multiple channels, +preventing an un-ID'd user from making a channel, and preventing censored authors from making a channel. +Otherwise, sets creating_channel to TRUE.

toggle_photo

Selects a currently held photo from the user's hand and makes it the current_image held by the newscaster. +If a photo is still held in the newscaster, it will otherwise clear it from the machine.

\ No newline at end of file diff --git a/datum/nifsoft.html b/datum/nifsoft.html new file mode 100644 index 0000000000000..fd7d946cc9873 --- /dev/null +++ b/datum/nifsoft.html @@ -0,0 +1 @@ +/datum/nifsoft - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

nifsoft

The base NIFSoft

Vars

able_to_keepIs the NIFSoft something that we want to allow the user to keep?
activation_costWhat is the power cost to activate the program?
activeIs the program active?
active_costDoes the what power cost does the program have while active?
active_modeDoes the program have an active mode?
buying_categoryWhat catagory is the NIFSoft under?
compatible_nifsWhat NIF models can this software be installed on?
cooldownDoes the NIFSoft have a cooldown?
cooldown_durationHow long is the cooldown for?
keep_installedAre we keeping the NIFSoft installed between rounds? This is decided by the user
lewd_nifsoftIs it a lewd item?
linked_mobWho is the NIF currently linked to?
mutually_exclusive_programsIs the program mutually exclusive with another program?
nameWhat is the name of the NIFSoft?
on_cooldownIs the NIFSoft currently on cooldown?
persistenceDoes the NIFSoft have anything that is saved cross-round?
program_descA description of what the program does. This is used when looking at programs in the NIF, along with installing them from the store.
program_nameWhat is the name of the program when looking at the program from inside of a NIF? This is good if you want to mask a NIFSoft's name.
purchase_priceHow much does the program cost to buy in credits?
rewards_points_eligibleCan this item be purchased with reward points?
rewards_points_rateHow much of the NIFSoft's purchase price is paid out as reward points, if any?
single_installCan the program be installed with other instances of itself?
ui_iconWhat font awesome icon is shown next to the name of the nifsoft?
ui_themeWhat UI theme do we want to display to users if this NIFSoft has TGUI?

Procs

activateActivates the parent NIFSoft
load_persistence_dataLoads the modular persistence data for a NIFSoft
on_empHow does the NIFSoft react if the user is EMP'ed?
refund_activation_costRefunds the activation cost of a NIFSoft.
remove_cooldownRemoves the cooldown from a NIFSoft
restore_nameRestores the name of the NIFSoft to default.
save_persistence_dataSaves the modular persistence data for a NIFSoft
update_themeUpdates the theme of the NIFSoft to match the parent NIF

Var Details

able_to_keep

Is the NIFSoft something that we want to allow the user to keep?

activation_cost

What is the power cost to activate the program?

active

Is the program active?

active_cost

Does the what power cost does the program have while active?

active_mode

Does the program have an active mode?

buying_category

What catagory is the NIFSoft under?

compatible_nifs

What NIF models can this software be installed on?

cooldown

Does the NIFSoft have a cooldown?

cooldown_duration

How long is the cooldown for?

keep_installed

Are we keeping the NIFSoft installed between rounds? This is decided by the user

lewd_nifsoft

Is it a lewd item?

linked_mob

Who is the NIF currently linked to?

mutually_exclusive_programs

Is the program mutually exclusive with another program?

name

What is the name of the NIFSoft?

on_cooldown

Is the NIFSoft currently on cooldown?

persistence

Does the NIFSoft have anything that is saved cross-round?

program_desc

A description of what the program does. This is used when looking at programs in the NIF, along with installing them from the store.

program_name

What is the name of the program when looking at the program from inside of a NIF? This is good if you want to mask a NIFSoft's name.

purchase_price

How much does the program cost to buy in credits?

rewards_points_eligible

Can this item be purchased with reward points?

rewards_points_rate

How much of the NIFSoft's purchase price is paid out as reward points, if any?

single_install

Can the program be installed with other instances of itself?

ui_icon

What font awesome icon is shown next to the name of the nifsoft?

ui_theme

What UI theme do we want to display to users if this NIFSoft has TGUI?

Proc Details

activate

Activates the parent NIFSoft

load_persistence_data

Loads the modular persistence data for a NIFSoft

on_emp

How does the NIFSoft react if the user is EMP'ed?

refund_activation_cost

Refunds the activation cost of a NIFSoft.

remove_cooldown

Removes the cooldown from a NIFSoft

restore_name

Restores the name of the NIFSoft to default.

save_persistence_data

Saves the modular persistence data for a NIFSoft

update_theme

Updates the theme of the NIFSoft to match the parent NIF

\ No newline at end of file diff --git a/datum/nifsoft/action_granter.html b/datum/nifsoft/action_granter.html new file mode 100644 index 0000000000000..6b6e1e128cab1 --- /dev/null +++ b/datum/nifsoft/action_granter.html @@ -0,0 +1 @@ +/datum/nifsoft/action_granter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

action_granter

This type of NIFSoft grants the user an action when active.

Vars

action_to_grantWhat is the path of the action that we want to grant?
granted_actionWhat action are we giving the user of the NIFSoft?

Var Details

action_to_grant

What is the path of the action that we want to grant?

granted_action

What action are we giving the user of the NIFSoft?

\ No newline at end of file diff --git a/datum/nifsoft/hivemind.html b/datum/nifsoft/hivemind.html new file mode 100644 index 0000000000000..6f80c8bfd81fb --- /dev/null +++ b/datum/nifsoft/hivemind.html @@ -0,0 +1 @@ +/datum/nifsoft/hivemind - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hivemind

Vars

active_networkWhat network is the user sending messages to? This is saved from the keyboard so the user doesn't have to change the channel every time.
keyboard_actionWhat action is being used to summon the Keyboard?
linked_keyboardThe physical keyboard item being used to send messages
network_listWhat networks are the user connected to?
user_networkThe network that the user is currently hosting

Var Details

active_network

What network is the user sending messages to? This is saved from the keyboard so the user doesn't have to change the channel every time.

keyboard_action

What action is being used to summon the Keyboard?

linked_keyboard

The physical keyboard item being used to send messages

network_list

What networks are the user connected to?

user_network

The network that the user is currently hosting

\ No newline at end of file diff --git a/datum/nifsoft/hud.html b/datum/nifsoft/hud.html new file mode 100644 index 0000000000000..e96eebc0ea203 --- /dev/null +++ b/datum/nifsoft/hud.html @@ -0,0 +1 @@ +/datum/nifsoft/hud - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hud

Vars

added_eyewear_traitsA list of traits that we want to add while the NIFSoft is active. This is here to emulate things like sci-goggles
eyewear_checkDo we need to check if the user is wearing compatible eyewear?
hud_traitsWhat are the HUD traits we are adding when the NIFSoft is activated?
hud_typeWhat kind of HUD are we adding when the NIFSoft is activated?

Procs

add_hudsAttemps to add the hud variables from the NIFSoft to the user.
remove_hudsAttempts to remove the HUDs given to the user by the NIFSoft

Var Details

added_eyewear_traits

A list of traits that we want to add while the NIFSoft is active. This is here to emulate things like sci-goggles

eyewear_check

Do we need to check if the user is wearing compatible eyewear?

hud_traits

What are the HUD traits we are adding when the NIFSoft is activated?

hud_type

What kind of HUD are we adding when the NIFSoft is activated?

Proc Details

add_huds

Attemps to add the hud variables from the NIFSoft to the user.

remove_huds

Attempts to remove the HUDs given to the user by the NIFSoft

\ No newline at end of file diff --git a/datum/nifsoft/hypno.html b/datum/nifsoft/hypno.html new file mode 100644 index 0000000000000..6ee791236e991 --- /dev/null +++ b/datum/nifsoft/hypno.html @@ -0,0 +1 @@ +/datum/nifsoft/hypno - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hypno

Vars

fake_lawsWhat "laws" does the person with this NIFSoft installed have?

Var Details

fake_laws

What "laws" does the person with this NIFSoft installed have?

\ No newline at end of file diff --git a/datum/nifsoft/scryer.html b/datum/nifsoft/scryer.html new file mode 100644 index 0000000000000..a51c6ac453ab5 --- /dev/null +++ b/datum/nifsoft/scryer.html @@ -0,0 +1 @@ +/datum/nifsoft/scryer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

scryer

Vars

linked_scryerWhat is the scryer currently associated with the NIFSoft?

Var Details

linked_scryer

What is the scryer currently associated with the NIFSoft?

\ No newline at end of file diff --git a/datum/nifsoft/soul_poem.html b/datum/nifsoft/soul_poem.html new file mode 100644 index 0000000000000..b12e462c29b2f --- /dev/null +++ b/datum/nifsoft/soul_poem.html @@ -0,0 +1,6 @@ +/datum/nifsoft/soul_poem - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

soul_poem

Vars

message_listWhat messages has the user received?
proximity_datumThe datum that is being used to receive messages
receiving_dataIs the NIFSoft receiving data?
transmitted_identifierWhat ckey is being used by the owner? This is mostly here so that messages can't get spammed
transmitted_messageWhat message is being sent to other users?
transmitted_nameWhat username is being sent out?
transmitting_dataIs the NIFSoft transmitting data?

Procs

add_messageAdds a message to the message_list of the parent NIFSoft based off the sender_identifier, received_name, and received_message.
remove_messageRemoves the message_to_remove from the message_list, If the message cannot be found the proc will return FALSE, otherwise it will delete the message_to_remove and return TRUE.
send_messageAttempts to send a message to the target_nifsoft, if it exists. Returns FALSE if the message fails to send.

Var Details

message_list

What messages has the user received?

proximity_datum

The datum that is being used to receive messages

receiving_data

Is the NIFSoft receiving data?

transmitted_identifier

What ckey is being used by the owner? This is mostly here so that messages can't get spammed

transmitted_message

What message is being sent to other users?

transmitted_name

What username is being sent out?

transmitting_data

Is the NIFSoft transmitting data?

Proc Details

add_message

Adds a message to the message_list of the parent NIFSoft based off the sender_identifier, received_name, and received_message.

+

remove_message

Removes the message_to_remove from the message_list, If the message cannot be found the proc will return FALSE, otherwise it will delete the message_to_remove and return TRUE.

send_message

Attempts to send a message to the target_nifsoft, if it exists. Returns FALSE if the message fails to send.

\ No newline at end of file diff --git a/datum/nifsoft/soulcatcher.html b/datum/nifsoft/soulcatcher.html new file mode 100644 index 0000000000000..c5f8092922b0c --- /dev/null +++ b/datum/nifsoft/soulcatcher.html @@ -0,0 +1 @@ +/datum/nifsoft/soulcatcher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

soulcatcher

Vars

holderThe item we are using to store the souls
linked_soulcatcherWhat is the linked soulcatcher datum used by this NIFSoft?
saved_carrier_roomsa list containing saved soulcatcher rooms
soulcatcher_actionWhat action to bring up the soulcatcher is linked with this NIFSoft?

Procs

no_soulcatcher_componentIf the linked soulcatcher is being deleted we want to set the current linked soulcatcher to FALSE

Var Details

holder

The item we are using to store the souls

linked_soulcatcher

What is the linked soulcatcher datum used by this NIFSoft?

saved_carrier_rooms

a list containing saved soulcatcher rooms

soulcatcher_action

What action to bring up the soulcatcher is linked with this NIFSoft?

Proc Details

no_soulcatcher_component

If the linked soulcatcher is being deleted we want to set the current linked soulcatcher to FALSE

\ No newline at end of file diff --git a/datum/nifsoft/summoner.html b/datum/nifsoft/summoner.html new file mode 100644 index 0000000000000..7cc3bf91ce2c3 --- /dev/null +++ b/datum/nifsoft/summoner.html @@ -0,0 +1 @@ +/datum/nifsoft/summoner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

summoner

Vars

holographic_filterDoes the resulting object have a holographic like filter appiled to it?
max_summoned_itemsWhat is the maximum amount of items that can be suummoned?
name_tagIs there any special tag added at the begining of the resulting object name?
summonable_itemsThe list of items that can be summoned from the NIFSoft.
summoned_itemsThe objects currently summoned by the NIFSoft

Procs

apply_custom_propertiesThis proc is called while an item is being summoned, use this to modifiy aspects of the item that aren't modified by the component.
check_menuCan the person using the NIFSoft summon an item?

Var Details

holographic_filter

Does the resulting object have a holographic like filter appiled to it?

max_summoned_items

What is the maximum amount of items that can be suummoned?

name_tag

Is there any special tag added at the begining of the resulting object name?

summonable_items

The list of items that can be summoned from the NIFSoft.

summoned_items

The objects currently summoned by the NIFSoft

Proc Details

apply_custom_properties

This proc is called while an item is being summoned, use this to modifiy aspects of the item that aren't modified by the component.

check_menu

Can the person using the NIFSoft summon an item?

\ No newline at end of file diff --git a/datum/nobody_wants_to_learn_matrix_math.html b/datum/nobody_wants_to_learn_matrix_math.html new file mode 100644 index 0000000000000..7e091a4237a26 --- /dev/null +++ b/datum/nobody_wants_to_learn_matrix_math.html @@ -0,0 +1,5 @@ +/datum/nobody_wants_to_learn_matrix_math - /tg/ Station 13
/tg/ Station 13 - Modules - Types

nobody_wants_to_learn_matrix_math

nobody wants to learn matrix math!

+

More than just a completely true statement, this datum is created as a tgui interface +allowing you to modify each vector until you know what you're doing. +Much like filteriffic, 'nobody wants to learn matrix math' is meant for developers like you and I +to implement interesting matrix transformations without the hassle if needing to know... algebra? Damn, i'm stupid.

\ No newline at end of file diff --git a/datum/ntnet_conversation.html b/datum/ntnet_conversation.html new file mode 100644 index 0000000000000..db31006f7e910 --- /dev/null +++ b/datum/ntnet_conversation.html @@ -0,0 +1 @@ +/datum/ntnet_conversation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ntnet_conversation

Vars

active_clientsChat clients who are active or minimized.
channel_operatorThe "Administrator" of the channel, the creator starts as channel's operator by default.
idID using the UID.
messagesList of all messages sent in the conversation.
muted_clientsChat clients currently muted by the operator, rendering them unable to ping other people.
ntnrc_uidA static UID to ensure no conversations are the same.
offline_clientsChat clients who have exited out of the program.
passwordThe password to join a channel, set by an Administrator.
titleThe title of the conversation, seen in the UI.

Var Details

active_clients

Chat clients who are active or minimized.

channel_operator

The "Administrator" of the channel, the creator starts as channel's operator by default.

id

ID using the UID.

messages

List of all messages sent in the conversation.

muted_clients

Chat clients currently muted by the operator, rendering them unable to ping other people.

ntnrc_uid

A static UID to ensure no conversations are the same.

offline_clients

Chat clients who have exited out of the program.

password

The password to join a channel, set by an Administrator.

title

The title of the conversation, seen in the UI.

\ No newline at end of file diff --git a/datum/objective.html b/datum/objective.html new file mode 100644 index 0000000000000..ad4c879ee588a --- /dev/null +++ b/datum/objective.html @@ -0,0 +1 @@ +/datum/objective - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

objective

Vars

admin_grantablecan this be granted by admins?
count_space_areasShould space areas count when finding a target?
no_failureif this objective doesn't print failure or success in the roundend report
objective_namename used in printing this objective (Objective #1)

Procs

get_roundend_success_suffixProvides a string describing what a good job you did or did not do

Var Details

admin_grantable

can this be granted by admins?

count_space_areas

Should space areas count when finding a target?

no_failure

if this objective doesn't print failure or success in the roundend report

objective_name

name used in printing this objective (Objective #1)

Proc Details

get_roundend_success_suffix

Provides a string describing what a good job you did or did not do

\ No newline at end of file diff --git a/datum/objective/bloodsucker.html b/datum/objective/bloodsucker.html new file mode 100644 index 0000000000000..e0ff781072fad --- /dev/null +++ b/datum/objective/bloodsucker.html @@ -0,0 +1 @@ +/datum/objective/bloodsucker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bloodsucker

Procs

get_ghoul_occupationsCheck Ghouls and get their occupations
return_possible_targetsLook at all crew members, and for/loop through.

Proc Details

get_ghoul_occupations

Check Ghouls and get their occupations

return_possible_targets

Look at all crew members, and for/loop through.

\ No newline at end of file diff --git a/datum/objective/bloodsucker/conversion/department.html b/datum/objective/bloodsucker/conversion/department.html new file mode 100644 index 0000000000000..629ce38de25af --- /dev/null +++ b/datum/objective/bloodsucker/conversion/department.html @@ -0,0 +1 @@ +/datum/objective/bloodsucker/conversion/department - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

department

Vars

possible_departmentsList of all departments that can be selected for the objective.
target_departmentThe selected department we have to ghoulify.

Var Details

possible_departments

List of all departments that can be selected for the objective.

target_department

The selected department we have to ghoulify.

\ No newline at end of file diff --git a/datum/objective/door_jack.html b/datum/objective/door_jack.html new file mode 100644 index 0000000000000..e040d3c3bc1c3 --- /dev/null +++ b/datum/objective/door_jack.html @@ -0,0 +1 @@ +/datum/objective/door_jack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

door_jack

Vars

doors_requiredHow many doors that need to be opened using the gloves to pass the objective

Var Details

doors_required

How many doors that need to be opened using the gloves to pass the objective

\ No newline at end of file diff --git a/datum/objective/heretic_research.html b/datum/objective/heretic_research.html new file mode 100644 index 0000000000000..f40db2700ecd5 --- /dev/null +++ b/datum/objective/heretic_research.html @@ -0,0 +1 @@ +/datum/objective/heretic_research - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

heretic_research

Heretic's research objective. "Research" is heretic knowledge nodes (You start with some).

Vars

main_path_lengthThe length of a main path. Calculated once in New().

Var Details

main_path_length

The length of a main path. Calculated once in New().

\ No newline at end of file diff --git a/datum/objective/heretic_summon.html b/datum/objective/heretic_summon.html new file mode 100644 index 0000000000000..86bf00f058724 --- /dev/null +++ b/datum/objective/heretic_summon.html @@ -0,0 +1 @@ +/datum/objective/heretic_summon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

heretic_summon

Vars

num_summonedThe total number of summons the objective owner has done

Var Details

num_summoned

The total number of summons the objective owner has done

\ No newline at end of file diff --git a/datum/objective/hijack.html b/datum/objective/hijack.html new file mode 100644 index 0000000000000..ef4e354daca31 --- /dev/null +++ b/datum/objective/hijack.html @@ -0,0 +1 @@ +/datum/objective/hijack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hijack

Vars

admin_grantableOverrides the hijack speed of any antagonist datum it is on ONLY, no other datums are impacted.

Var Details

admin_grantable

Overrides the hijack speed of any antagonist datum it is on ONLY, no other datums are impacted.

\ No newline at end of file diff --git a/datum/objective/inspect_area.html b/datum/objective/inspect_area.html new file mode 100644 index 0000000000000..b3f854cf3b789 --- /dev/null +++ b/datum/objective/inspect_area.html @@ -0,0 +1 @@ +/datum/objective/inspect_area - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

inspect_area

Vars

inspection_areaArea picked for an entirely roleplay objective.

Var Details

inspection_area

Area picked for an entirely roleplay objective.

\ No newline at end of file diff --git a/datum/objective/mutiny.html b/datum/objective/mutiny.html new file mode 100644 index 0000000000000..f286bd502ef3a --- /dev/null +++ b/datum/objective/mutiny.html @@ -0,0 +1 @@ +/datum/objective/mutiny - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mutiny

Vars

disconnect_timerNot primarily used as a cooldown but a timer to give a little bit more of a chance for the player to reconnect.
warned_adminsWhether admins have been warned about the potentially AFK player

Var Details

disconnect_timer

Not primarily used as a cooldown but a timer to give a little bit more of a chance for the player to reconnect.

warned_admins

Whether admins have been warned about the potentially AFK player

\ No newline at end of file diff --git a/datum/objective/sacrifice.html b/datum/objective/sacrifice.html new file mode 100644 index 0000000000000..067dca2012eec --- /dev/null +++ b/datum/objective/sacrifice.html @@ -0,0 +1 @@ +/datum/objective/sacrifice - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

sacrifice

Procs

clear_sacrificeUnregister signals from the old target so it doesn't cause issues when sacrificed of when a new target is found.

Proc Details

clear_sacrifice

Unregister signals from the old target so it doesn't cause issues when sacrificed of when a new target is found.

\ No newline at end of file diff --git a/datum/objective/survey.html b/datum/objective/survey.html new file mode 100644 index 0000000000000..1935f66a20871 --- /dev/null +++ b/datum/objective/survey.html @@ -0,0 +1 @@ +/datum/objective/survey - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

survey

Vars

survey_areaArea picked for an entirely roleplay objective.

Var Details

survey_area

Area picked for an entirely roleplay objective.

\ No newline at end of file diff --git a/datum/objective_item.html b/datum/objective_item.html new file mode 100644 index 0000000000000..62b2eb47f176c --- /dev/null +++ b/datum/objective_item.html @@ -0,0 +1,7 @@ +/datum/objective_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

objective_item

Vars

altitemsList of additional items which also count, for things like blueprints
difficultyHow hard it is to steal this item given normal circumstances, ranked on a scale of 1 to 5.
excludefromjobJobs which cannot generate this objective (no stealing your own stuff)
exists_on_mapWhether this item exists on the station map at the start of a round.
item_ownerWho CARES if this item goes missing (no stealing unguarded items), often similar but not identical to the next list
nameHow the item is described in the objective
objective_typeDefines in which contexts the item can be given as an objective
special_equipmentItems to provide to people in order to allow them to acquire the target
steal_hintA hint explaining how one may find the target item.
targetitemTypepath of item
valid_containersValid containers that the target item can be in.

Procs

check_special_completionFor objectives with special checks (does that intellicard have an ai in it? etcetc)
owner_existsReturns true if one of the item's owners exists somewhere
target_existsReturns true if the target item exists
valid_objective_forTakes a list of minds and returns true if this is a valid objective to give to a team of these minds

Var Details

altitems

List of additional items which also count, for things like blueprints

difficulty

How hard it is to steal this item given normal circumstances, ranked on a scale of 1 to 5.

+

1 - Probably found in a public area +2 - Likely on someone's person, or in a less-than-public but otherwise unguarded area +3 - Usually on someone's person, or in a locked locker or otherwise secure area +4 - Always on someone's person, or in a secure area +5 - You know it when you see it. Things like the Nuke Disc which have a pointer to it at all times.

+

Also accepts 0 as "extremely easy to steal" and >5 as "almost impossible to steal"

excludefromjob

Jobs which cannot generate this objective (no stealing your own stuff)

exists_on_map

Whether this item exists on the station map at the start of a round.

item_owner

Who CARES if this item goes missing (no stealing unguarded items), often similar but not identical to the next list

name

How the item is described in the objective

objective_type

Defines in which contexts the item can be given as an objective

special_equipment

Items to provide to people in order to allow them to acquire the target

steal_hint

A hint explaining how one may find the target item.

targetitem

Typepath of item

valid_containers

Valid containers that the target item can be in.

Proc Details

check_special_completion

For objectives with special checks (does that intellicard have an ai in it? etcetc)

owner_exists

Returns true if one of the item's owners exists somewhere

target_exists

Returns true if the target item exists

valid_objective_for

Takes a list of minds and returns true if this is a valid objective to give to a team of these minds

\ No newline at end of file diff --git a/datum/objective_item_handler.html b/datum/objective_item_handler.html new file mode 100644 index 0000000000000..cd8519ef33942 --- /dev/null +++ b/datum/objective_item_handler.html @@ -0,0 +1,3 @@ +/datum/objective_item_handler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

objective_item_handler

Procs

save_itemsRegisters all items that are potentially stealable and removes ones that aren't. +We still need to do things this way because on mapload, items may not be on the station until everything has finished loading.

Proc Details

save_items

Registers all items that are potentially stealable and removes ones that aren't. +We still need to do things this way because on mapload, items may not be on the station until everything has finished loading.

\ No newline at end of file diff --git a/datum/objective_target_machine_handler.html b/datum/objective_target_machine_handler.html new file mode 100644 index 0000000000000..223ad99527c8e --- /dev/null +++ b/datum/objective_target_machine_handler.html @@ -0,0 +1 @@ +/datum/objective_target_machine_handler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

objective_target_machine_handler

Datum which manages references to things we are instructed to destroy

Vars

machine_instances_by_pathExisting instances of machines organised by typepath

Procs

finalise_valid_targetsConfirm that everything added to the list is a valid target, then prevent new targets from being added
on_machine_createdAdds a newly created machine to our list of machines, if we need it

Var Details

machine_instances_by_path

Existing instances of machines organised by typepath

Proc Details

finalise_valid_targets

Confirm that everything added to the list is a valid target, then prevent new targets from being added

on_machine_created

Adds a newly created machine to our list of machines, if we need it

\ No newline at end of file diff --git a/datum/opposing_force.html b/datum/opposing_force.html new file mode 100644 index 0000000000000..08853aedf09e7 --- /dev/null +++ b/datum/opposing_force.html @@ -0,0 +1 @@ +/datum/opposing_force - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

opposing_force

Vars

admin_chatA text list of the admin chat.
blockedAre we blocked from submitting a new request?
can_editCan we edit things?
ckeyThe ckey of the person that made this application
contractor_hubContractor hub datum, used if the user OPFORs for a contractor kit
denied_reasonThe reason we were denied.
equipment_issuedHave we issued the player their equipment?
handling_adminWhat admin has this request been assigned to?
mind_referenceHard ref to our mind.
modification_logFor logging stuffs
objectivesA list of objectives.
request_updates_mutedHave we been request update muted by an admin?
selected_equipmentA list of equipment that the user has requested.
set_backstoryJustification for wanting to do bad things.
stat_buttonCorresponding stat() click button
statusHas this been approved?
ticket_pingIf it is part of the ticket ping subsystem

Procs

add_logSystem procs
add_to_ping_ssAdds the OPFOR in question to the ticket ping subsystem should it not be approved.
build_html_panel_entryBuilds the HTML panel entry for the round end report
check_itemSystem commands
deny_equipmentEquipment procs
json_exportAllows a user to export from an OPFOR into a json file
json_importAllows a user to import an OPFOR from json
request_updateControl procs
set_objective_intensityObjective procs

Var Details

admin_chat

A text list of the admin chat.

blocked

Are we blocked from submitting a new request?

can_edit

Can we edit things?

ckey

The ckey of the person that made this application

contractor_hub

Contractor hub datum, used if the user OPFORs for a contractor kit

denied_reason

The reason we were denied.

equipment_issued

Have we issued the player their equipment?

handling_admin

What admin has this request been assigned to?

mind_reference

Hard ref to our mind.

modification_log

For logging stuffs

objectives

A list of objectives.

request_updates_muted

Have we been request update muted by an admin?

selected_equipment

A list of equipment that the user has requested.

set_backstory

Justification for wanting to do bad things.

stat_button

Corresponding stat() click button

status

Has this been approved?

ticket_ping

If it is part of the ticket ping subsystem

Proc Details

add_log

System procs

add_to_ping_ss

Adds the OPFOR in question to the ticket ping subsystem should it not be approved.

build_html_panel_entry

Builds the HTML panel entry for the round end report

check_item

System commands

deny_equipment

Equipment procs

json_export

Allows a user to export from an OPFOR into a json file

json_import

Allows a user to import an OPFOR from json

request_update

Control procs

set_objective_intensity

Objective procs

\ No newline at end of file diff --git a/datum/opposing_force_equipment.html b/datum/opposing_force_equipment.html new file mode 100644 index 0000000000000..1c397c240a100 --- /dev/null +++ b/datum/opposing_force_equipment.html @@ -0,0 +1,4 @@ +/datum/opposing_force_equipment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

opposing_force_equipment

OPFOR EQUIPMENT DATUM

+

The OPFOR subsystem will gather all of these on initialisation and populate a list, which is then passed +into the OPFOR UI, which can be selected by the user.

+

The User will be equipped with whatever they have selected if the approving admin authorises it.

Vars

admin_noteNote to admins, useful if the item is extraordinarily strong
categoryCategory of the item. See opposing_force_defines.dm for a list of categories.
descriptionThe description of the equipment used in the listing, if not set, it will use the items description.
item_typeThe item path that we refer to when equipping.
max_amountHow many at most can we order of a specific item?
nameThe name of the equipment used in the listing, if not set, it will use the items name.

Procs

on_issueCalled when the gear is issued, use for unique services (e.g. a power outage) that don't have an item

Var Details

admin_note

Note to admins, useful if the item is extraordinarily strong

category

Category of the item. See opposing_force_defines.dm for a list of categories.

description

The description of the equipment used in the listing, if not set, it will use the items description.

item_type

The item path that we refer to when equipping.

max_amount

How many at most can we order of a specific item?

name

The name of the equipment used in the listing, if not set, it will use the items name.

Proc Details

on_issue

Called when the gear is issued, use for unique services (e.g. a power outage) that don't have an item

\ No newline at end of file diff --git a/datum/opposing_force_equipment/language.html b/datum/opposing_force_equipment/language.html new file mode 100644 index 0000000000000..d164c05f31309 --- /dev/null +++ b/datum/opposing_force_equipment/language.html @@ -0,0 +1 @@ +/datum/opposing_force_equipment/language - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

language

Vars

languageThe language typepath to be given to the mind's language holder

Var Details

language

The language typepath to be given to the mind's language holder

\ No newline at end of file diff --git a/datum/opposing_force_objective.html b/datum/opposing_force_objective.html new file mode 100644 index 0000000000000..262c06f45158c --- /dev/null +++ b/datum/opposing_force_objective.html @@ -0,0 +1 @@ +/datum/opposing_force_objective - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

opposing_force_objective

Vars

denied_reasonWhy was this objective denied? If a reason was specified.
descriptionThe actual objective.
intensityHow intense is this goal?
justificationThe reason for the objective.
statusWas this specific objective approved by the admins?
text_intensityThe text intensity of this goal
titleThe name of the objective

Var Details

denied_reason

Why was this objective denied? If a reason was specified.

description

The actual objective.

intensity

How intense is this goal?

justification

The reason for the objective.

status

Was this specific objective approved by the admins?

text_intensity

The text intensity of this goal

title

The name of the objective

\ No newline at end of file diff --git a/datum/opposing_force_selected_equipment.html b/datum/opposing_force_selected_equipment.html new file mode 100644 index 0000000000000..fed9005858333 --- /dev/null +++ b/datum/opposing_force_selected_equipment.html @@ -0,0 +1 @@ +/datum/opposing_force_selected_equipment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

opposing_force_selected_equipment

Vars

countHow many does the user want?
denied_reasonIf denied, why?
opposing_force_equipmentReference to the selected equipment datum.
reasonWhy does the user need this?
statusWhat is the status of this item?

Var Details

count

How many does the user want?

denied_reason

If denied, why?

opposing_force_equipment

Reference to the selected equipment datum.

reason

Why does the user need this?

status

What is the status of this item?

\ No newline at end of file diff --git a/datum/orbit_menu.html b/datum/orbit_menu.html new file mode 100644 index 0000000000000..3a6c6b4e33eea --- /dev/null +++ b/datum/orbit_menu.html @@ -0,0 +1,8 @@ +/datum/orbit_menu - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

orbit_menu

Vars

mob_allowed_typecachemobs worth orbiting. Because spaghetti, all mobs have the point of interest, but only some are allowed to actually show up. +this obviously should be changed in the future, so we only add mobs as POI if they actually are interesting, and we don't use +a typecache.

Procs

get_antag_dataHelper function to get threat type, group, overrides for job and icon
get_currently_orbitingHelper to get the current thing we're orbiting (if any)
get_living_dataHelper function to get job / icon / health data for a living mob
get_misc_dataGets a list: Misc data and whether it's critical. Handles all snowflakey type cases
showShows the UI to the specified user.
validate_mob_poiHelper POI validation function passed as a callback to various SSpoints_of_interest procs.

Var Details

mob_allowed_typecache

mobs worth orbiting. Because spaghetti, all mobs have the point of interest, but only some are allowed to actually show up. +this obviously should be changed in the future, so we only add mobs as POI if they actually are interesting, and we don't use +a typecache.

Proc Details

get_antag_data

Helper function to get threat type, group, overrides for job and icon

get_currently_orbiting

Helper to get the current thing we're orbiting (if any)

get_living_data

Helper function to get job / icon / health data for a living mob

get_misc_data

Gets a list: Misc data and whether it's critical. Handles all snowflakey type cases

show

Shows the UI to the specified user.

validate_mob_poi

Helper POI validation function passed as a callback to various SSpoints_of_interest procs.

+

Provides extended validation above and beyond standard, limiting mob POIs without minds or ckeys +unless they're mobs, camera mobs or megafauna. Also allows exceptions for mobs that are deadchat controlled.

+

If they satisfy that requirement, falls back to default validation for the POI.

\ No newline at end of file diff --git a/datum/orderable_item.html b/datum/orderable_item.html new file mode 100644 index 0000000000000..c4a04842c2349 --- /dev/null +++ b/datum/orderable_item.html @@ -0,0 +1 @@ +/datum/orderable_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

orderable_item

A datum for chef ordering options from the chef's computer.

Vars

category_indexThe category this item will be displayed in.
cost_per_orderHow much this item costs to order.
descDescription shown in the shop, set automatically unless it's hard set by the subtype
item_pathPath of the item that is purchased when ordering us.
nameName of the item shown in the shop.

Var Details

category_index

The category this item will be displayed in.

cost_per_order

How much this item costs to order.

desc

Description shown in the shop, set automatically unless it's hard set by the subtype

item_path

Path of the item that is purchased when ordering us.

name

Name of the item shown in the shop.

\ No newline at end of file diff --git a/datum/ore_silo_log.html b/datum/ore_silo_log.html new file mode 100644 index 0000000000000..bf71760e0c9b9 --- /dev/null +++ b/datum/ore_silo_log.html @@ -0,0 +1,11 @@ +/datum/ore_silo_log - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ore_silo_log

The log entry for an ore silo action

Vars

actionThe actual action performed by the machine
amountThe amount of items affected by this action e.g. print quantity, sheets ejected etc.
area_nameThe area of the machine that remotely acted on the ore silo
machine_nameThe name of the machine that remotely acted on the ore silo
materialsList of individual materials used in the action
nounAn short verb describing the action
timestampThe time of action

Procs

get_raw_materialsReturns list/materials but with each entry joined by an seperator to create 1 string +Arguments
mergeMerges a silo log entry with this one +Arguments

Var Details

action

The actual action performed by the machine

amount

The amount of items affected by this action e.g. print quantity, sheets ejected etc.

area_name

The area of the machine that remotely acted on the ore silo

machine_name

The name of the machine that remotely acted on the ore silo

materials

List of individual materials used in the action

noun

An short verb describing the action

timestamp

The time of action

Proc Details

get_raw_materials

Returns list/materials but with each entry joined by an seperator to create 1 string +Arguments

+

merge

Merges a silo log entry with this one +Arguments

+
\ No newline at end of file diff --git a/datum/orion_event.html b/datum/orion_event.html new file mode 100644 index 0000000000000..15fb0d772fe8a --- /dev/null +++ b/datum/orion_event.html @@ -0,0 +1,21 @@ +/datum/orion_event - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

orion_event

Vars

emag_messagedefault emag effect of events is to play an audible message and sound
event_responsesbuttons to pick in response to the event. Don't worry, orion js will handle the rest
gamer_skillgaming skill of the player
gamer_skill_levelgaming skill level of the player
gamer_skill_randssome other metric that makes it easier to do randoms with skill testing, god really 3 vars guys
weightpickweight to show up. will still be in the events pool if added to the events list but not RANDOM, only triggered.

Procs

emag_effectSome effect that happens to the carbon when this event triggers on an emagged arcade machine.
on_selectWhat happens when this event is selected to trigger, sets vars. also can set some event pre-encounter randomization
responseWhat happens when you respond to this event by choosing one of the buttons

Var Details

emag_message

default emag effect of events is to play an audible message and sound

event_responses

buttons to pick in response to the event. Don't worry, orion js will handle the rest

gamer_skill

gaming skill of the player

gamer_skill_level

gaming skill level of the player

gamer_skill_rands

some other metric that makes it easier to do randoms with skill testing, god really 3 vars guys

weight

pickweight to show up. will still be in the events pool if added to the events list but not RANDOM, only triggered.

Proc Details

emag_effect

Some effect that happens to the carbon when this event triggers on an emagged arcade machine.

+

By default, it just sends an audible message and a sound, both vars on the orion datum +Arguments:

+

on_select

What happens when this event is selected to trigger, sets vars. also can set some event pre-encounter randomization

+

Arguments:

+

response

What happens when you respond to this event by choosing one of the buttons

+

Arguments:

+
\ No newline at end of file diff --git a/datum/outfit.html b/datum/outfit.html new file mode 100644 index 0000000000000..3ebd6ce03dd60 --- /dev/null +++ b/datum/outfit.html @@ -0,0 +1,34 @@ +/datum/outfit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Outfit datums

This is a clean system of applying outfits to mobs, if you need to equip someone in a uniform +this is the way to do it cleanly and properly.

+

You can also specify an outfit datum on a job to have it auto equipped to the mob on join

+

/mob/living/carbon/human/proc/equipOutfit(outfit) is the mob level proc to equip an outfit +and you pass it the relevant datum outfit

+

outfits can also be saved as json blobs downloadable by a client and then can be uploaded +by that user to recreate the outfit, this is used by admins to allow for custom event outfits +that can be restored at a later date

Vars

accessoryAny clothing accessory item
backType path of item to go in back slot
backpack_contentslist of items that should go in the backpack of the user
beltType path of item to go in belt slot
belt_contentslist of items that should go in the belt of the user
boxInternals box. Will be inserted at the start of backpack_contents
braUnderwear and bras are separated now
chameleon_extrasextra types for chameleon outfit changes, mostly guns
earsType path of item to go in ears slot
ears_extraSlot for the opposite ear.
glassesType path of item to go in the glasses slot
glovesType path of item to go in gloves slot
headType path of item to go in head slot
idType path of item to go in the idcard slot
id_trimType path of ID card trim associated with this outfit.
implantsAny implants the mob should start implanted with
internals_slotID of the slot containing a gas tank
l_handType path of item to go in the right hand
l_pocketType path of item for left pocket slot
maskType path of item to go in mask slot
modified_outfit_slotsBitflag-based variable to store which parts of the uniform have been modified by the loadout, to avoid them being overriden again.
nameName of the outfit (shows up in the equip admin verb)
neckType path of item to go in neck slot
preloadShould we preload some of this job's items?
r_pocketType path of item for right pocket slot
shoesType path of item to go in shoes slot
skillchipsAny skillchips the mob should have in their brain.
suitType path of item to go in suit slot
suit_storeType path of item to go in suit storage slot
undershirtAny undershirt. While on humans it is a string, here we use paths to stay consistent with the rest of the equips.
uniformType path of item to go in uniform slot
w_braSlot for the bra.
w_shirtSlot for the undershirt (which is quite a foreign concept to me)
w_socksSlot for socks, yes, the thing that usually goes before your shoes
w_underwearSlot for underwear like boxers and panties
wristsSlot for the part of your arms that isn't quite hands yet.

Procs

equipEquips all defined types and paths to the mob passed in
get_chameleon_disguise_infoReturn a list of all the types that are required to disguise as this outfit type
post_equipCalled after the equip proc has finished
pre_equipCalled at the start of the equip proc
save_to_filePrompt the passed in mob client to download this outfit as a json blob

Var Details

accessory

Any clothing accessory item

back

Type path of item to go in back slot

backpack_contents

list of items that should go in the backpack of the user

+

Format of this list should be: list(path=count,otherpath=count)

belt

Type path of item to go in belt slot

belt_contents

list of items that should go in the belt of the user

+

Format of this list should be: list(path=count,otherpath=count)

box

Internals box. Will be inserted at the start of backpack_contents

bra

Underwear and bras are separated now

chameleon_extras

extra types for chameleon outfit changes, mostly guns

+

Format of this list is (typepath, typepath, typepath)

+

These are all added and returns in the list for get_chamelon_diguise_info proc

ears

Type path of item to go in ears slot

ears_extra

Slot for the opposite ear.

glasses

Type path of item to go in the glasses slot

gloves

Type path of item to go in gloves slot

head

Type path of item to go in head slot

id

Type path of item to go in the idcard slot

id_trim

Type path of ID card trim associated with this outfit.

implants

Any implants the mob should start implanted with

+

Format of this list is (typepath, typepath, typepath)

internals_slot

ID of the slot containing a gas tank

l_hand

Type path of item to go in the right hand

l_pocket

Type path of item for left pocket slot

mask

Type path of item to go in mask slot

modified_outfit_slots

Bitflag-based variable to store which parts of the uniform have been modified by the loadout, to avoid them being overriden again.

name

Name of the outfit (shows up in the equip admin verb)

neck

Type path of item to go in neck slot

preload

Should we preload some of this job's items?

r_pocket

Type path of item for right pocket slot

shoes

Type path of item to go in shoes slot

skillchips

Any skillchips the mob should have in their brain.

+

Format of this list is (typepath, typepath, typepath)

suit

Type path of item to go in suit slot

suit_store

Type path of item to go in suit storage slot

+

(make sure it's valid for that suit)

undershirt

Any undershirt. While on humans it is a string, here we use paths to stay consistent with the rest of the equips.

uniform

Type path of item to go in uniform slot

w_bra

Slot for the bra.

w_shirt

Slot for the undershirt (which is quite a foreign concept to me)

w_socks

Slot for socks, yes, the thing that usually goes before your shoes

w_underwear

Slot for underwear like boxers and panties

wrists

Slot for the part of your arms that isn't quite hands yet.

Proc Details

equip

Equips all defined types and paths to the mob passed in

+

Extra Arguments

+ +

If visualsOnly is true, you can omit any work that doesn't visually appear on the character sprite

get_chameleon_disguise_info

Return a list of all the types that are required to disguise as this outfit type

post_equip

Called after the equip proc has finished

+

All items are on the mob at this point, use this proc to toggle internals +fiddle with id bindings and accesses etc

+

Extra Arguments

+ +

If visualsOnly is true, you can omit any work that doesn't visually appear on the character sprite

pre_equip

Called at the start of the equip proc

+

Override to change the value of the slots depending on client prefs, species and +other such sources of change

+

Extra Arguments

+ +

If visualsOnly is true, you can omit any work that doesn't visually appear on the character sprite

save_to_file

Prompt the passed in mob client to download this outfit as a json blob

\ No newline at end of file diff --git a/datum/outfit/basketball.html b/datum/outfit/basketball.html new file mode 100644 index 0000000000000..d527964b13eab --- /dev/null +++ b/datum/outfit/basketball.html @@ -0,0 +1 @@ +/datum/outfit/basketball - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

basketball

Vars

has_cardDo they get an ID?
nodrop_slotsWhich slots to apply TRAIT_NODROP to the items in

Var Details

has_card

Do they get an ID?

nodrop_slots

Which slots to apply TRAIT_NODROP to the items in

\ No newline at end of file diff --git a/datum/outfit/beachbum_combat.html b/datum/outfit/beachbum_combat.html new file mode 100644 index 0000000000000..b77aa85c7b500 --- /dev/null +++ b/datum/outfit/beachbum_combat.html @@ -0,0 +1 @@ +/datum/outfit/beachbum_combat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

beachbum_combat

Vars

corresponding_ammoCorresponding ammo
ranged_weapsAvailable ranged weapons

Var Details

corresponding_ammo

Corresponding ammo

ranged_weaps

Available ranged weapons

\ No newline at end of file diff --git a/datum/outfit/consumed_clown.html b/datum/outfit/consumed_clown.html new file mode 100644 index 0000000000000..ba77706a5b0a6 --- /dev/null +++ b/datum/outfit/consumed_clown.html @@ -0,0 +1 @@ +/datum/outfit/consumed_clown - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

consumed_clown

Vars

drop_a_pie_cannondrops a pie cannon on post_equip. i'm so done with this stupid outfit trying to put shit that doesn't fit in the backpack!

Var Details

drop_a_pie_cannon

drops a pie cannon on post_equip. i'm so done with this stupid outfit trying to put shit that doesn't fit in the backpack!

\ No newline at end of file diff --git a/datum/outfit/ctf.html b/datum/outfit/ctf.html new file mode 100644 index 0000000000000..ea2218c7b8289 --- /dev/null +++ b/datum/outfit/ctf.html @@ -0,0 +1 @@ +/datum/outfit/ctf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ctf

Vars

class_descriptionDescription to be shown in the class selection menu
has_cardDo they get an ID?
has_radioDo they get a headset?
iconIcon file for the class radial menu icons
icon_stateIcon state for this class
nodrop_slotsWhich slots to apply TRAIT_NODROP to the items in
team_radio_freqRadio frequency to assign players with this outfit

Var Details

class_description

Description to be shown in the class selection menu

has_card

Do they get an ID?

has_radio

Do they get a headset?

icon

Icon file for the class radial menu icons

icon_state

Icon state for this class

nodrop_slots

Which slots to apply TRAIT_NODROP to the items in

team_radio_freq

Radio frequency to assign players with this outfit

\ No newline at end of file diff --git a/datum/outfit/deathmatch_loadout.html b/datum/outfit/deathmatch_loadout.html new file mode 100644 index 0000000000000..86a5700cdc334 --- /dev/null +++ b/datum/outfit/deathmatch_loadout.html @@ -0,0 +1 @@ +/datum/outfit/deathmatch_loadout - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

deathmatch_loadout

Vars

descDescription shown in the UI
display_nameName shown in the UI
mutations_to_addThis outfit will grant these mutations if applied
species_overrideIf defined, using this outfit sets the targets species to it
spells_to_addThis outfit will grant these spells if applied

Var Details

desc

Description shown in the UI

display_name

Name shown in the UI

mutations_to_add

This outfit will grant these mutations if applied

species_override

If defined, using this outfit sets the targets species to it

spells_to_add

This outfit will grant these spells if applied

\ No newline at end of file diff --git a/datum/outfit/deathmatch_loadout/heresy.html b/datum/outfit/deathmatch_loadout/heresy.html new file mode 100644 index 0000000000000..38952c3de3c20 --- /dev/null +++ b/datum/outfit/deathmatch_loadout/heresy.html @@ -0,0 +1 @@ +/datum/outfit/deathmatch_loadout/heresy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

heresy

Vars

knowledge_to_grantGrants the effects of these knowledges to the DMer

Var Details

knowledge_to_grant

Grants the effects of these knowledges to the DMer

\ No newline at end of file diff --git a/datum/outfit/job/assistant/gimmick.html b/datum/outfit/job/assistant/gimmick.html new file mode 100644 index 0000000000000..49ea7efb4dd9a --- /dev/null +++ b/datum/outfit/job/assistant/gimmick.html @@ -0,0 +1 @@ +/datum/outfit/job/assistant/gimmick - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gimmick

Parent type of gimmick loadouts for assistants for the functional assistant station traits

Vars

outfit_weightThe weight of the outfit to be picked

Var Details

outfit_weight

The weight of the outfit to be picked

\ No newline at end of file diff --git a/datum/outfit/syndicate.html b/datum/outfit/syndicate.html new file mode 100644 index 0000000000000..51896e5e0c137 --- /dev/null +++ b/datum/outfit/syndicate.html @@ -0,0 +1 @@ +/datum/outfit/syndicate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

syndicate

Vars

command_radioEnables big voice on this outfit's headset, used for nukie leaders.
tcAmount of TC to automatically store in this outfit's uplink.
uplink_typeThe type of uplink to be given on equip.

Var Details

command_radio

Enables big voice on this outfit's headset, used for nukie leaders.

tc

Amount of TC to automatically store in this outfit's uplink.

The type of uplink to be given on equip.

\ No newline at end of file diff --git a/datum/overlay_info.html b/datum/overlay_info.html new file mode 100644 index 0000000000000..707be1d90aedd --- /dev/null +++ b/datum/overlay_info.html @@ -0,0 +1,3 @@ +/datum/overlay_info - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

overlay_info

Stores the decal & overlays on the floor to preserve texture of the design +in short its just an wrapper for mutable appearance where we retrieve the nessassary information +to recreate an mutable appearance

Vars

alphaalpha var of the mutable appearance
colorcolor var of the mutable appearance
directiondirection var of the mutable appearance
iconicon var of the mutable appearance
icon_stateicon_state var of the mutable appearance

Procs

add_decalre create the appearance

Var Details

alpha

alpha var of the mutable appearance

color

color var of the mutable appearance

direction

direction var of the mutable appearance

icon

icon var of the mutable appearance

icon_state

icon_state var of the mutable appearance

Proc Details

add_decal

re create the appearance

\ No newline at end of file diff --git a/datum/pai_candidate.html b/datum/pai_candidate.html new file mode 100644 index 0000000000000..227be2e9e147e --- /dev/null +++ b/datum/pai_candidate.html @@ -0,0 +1,16 @@ +/datum/pai_candidate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pai_candidate

#pAI Candidate

+

Created when a user opens the pAI submit interface. +Stores the candidate in an associative list of ckey: candidate objects.

Vars

ckeyUser's ckey
commentsUser inputted OOC comments
descriptionUser inputted behavior description
nameUser's pAI name. If blank, ninja name.
readyIf the user has hit "submit"

Procs

check_readyChecks if a candidate is ready so that they may be displayed or +downloaded. Removes any invalid entries.
savefile_pathname +key +description +role +comments +ready = TRUE

Var Details

ckey

User's ckey

comments

User inputted OOC comments

description

User inputted behavior description

name

User's pAI name. If blank, ninja name.

ready

If the user has hit "submit"

Proc Details

check_ready

Checks if a candidate is ready so that they may be displayed or +downloaded. Removes any invalid entries.

+

@returns {boolean} - TRUE if the candidate is ready, FALSE if not

savefile_path

name +key +description +role +comments +ready = TRUE

\ No newline at end of file diff --git a/datum/painting.html b/datum/painting.html new file mode 100644 index 0000000000000..2f6243b3bf5eb --- /dev/null +++ b/datum/painting.html @@ -0,0 +1 @@ +/datum/painting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

painting

Vars

creation_dateTimestamp when painting was made (finalized ?)
creation_round_idRound if when the painting was made
creator_ckeyAuthor's ckey
creator_nameAuthor's name
credit_valueAmount paid by last patron for this painting
frame_typeThe appearance of the frame overlay that appears when the painting if framed.
heightpainting height
loaded_from_jsonWas the painting loaded from json or created this round
md5md5 of the png file, also the filename.
mediumshort painting medium description
patron_ckeyPatron ckey
patron_namePatron name
tagsList of this painting string tags if any
titleTitle
widthpainting width

Var Details

creation_date

Timestamp when painting was made (finalized ?)

creation_round_id

Round if when the painting was made

creator_ckey

Author's ckey

creator_name

Author's name

credit_value

Amount paid by last patron for this painting

frame_type

The appearance of the frame overlay that appears when the painting if framed.

height

painting height

loaded_from_json

Was the painting loaded from json or created this round

md5

md5 of the png file, also the filename.

medium

short painting medium description

patron_ckey

Patron ckey

patron_name

Patron name

tags

List of this painting string tags if any

title

Title

width

painting width

\ No newline at end of file diff --git a/datum/paper_field.html b/datum/paper_field.html new file mode 100644 index 0000000000000..f5166bc8f99f9 --- /dev/null +++ b/datum/paper_field.html @@ -0,0 +1 @@ +/datum/paper_field - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

paper_field

A reference to some data that replaces a modifiable input field at some given index in paper raw input parsing.

Vars

field_dataThe data that tgui should substitute in-place of the input field when parsing.
field_indexWhen tgui parses the raw input, if it encounters a field_index matching the nth user input field, it will disable it and replace it with the field_data.
is_signatureIf TRUE, requests tgui to render this field input in a more signature-y style.

Var Details

field_data

The data that tgui should substitute in-place of the input field when parsing.

field_index

When tgui parses the raw input, if it encounters a field_index matching the nth user input field, it will disable it and replace it with the field_data.

is_signature

If TRUE, requests tgui to render this field input in a more signature-y style.

\ No newline at end of file diff --git a/datum/paper_input.html b/datum/paper_input.html new file mode 100644 index 0000000000000..37da6df589696 --- /dev/null +++ b/datum/paper_input.html @@ -0,0 +1 @@ +/datum/paper_input - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

paper_input

A single instance of a saved raw input onto paper.

Vars

advanced_htmlWhether the creator of this input field has the R_FUN permission, thus allowing less sanitization
boldWhether to render the font bold or not.
colourColour to draw the input with.
fontFont to draw the input with.
raw_textRaw, unsanitised, unparsed text for an input.

Procs

to_raw_htmlReturns the raw contents of the input as html, with ZERO SANITIZATION

Var Details

advanced_html

Whether the creator of this input field has the R_FUN permission, thus allowing less sanitization

bold

Whether to render the font bold or not.

colour

Colour to draw the input with.

font

Font to draw the input with.

raw_text

Raw, unsanitised, unparsed text for an input.

Proc Details

to_raw_html

Returns the raw contents of the input as html, with ZERO SANITIZATION

\ No newline at end of file diff --git a/datum/paper_stamp.html b/datum/paper_stamp.html new file mode 100644 index 0000000000000..c7d3ad5b4ebdc --- /dev/null +++ b/datum/paper_stamp.html @@ -0,0 +1 @@ +/datum/paper_stamp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

paper_stamp

A single instance of a saved stamp on paper.

Vars

classAsset class of the for rendering in tgui
rotationRotation of stamp in degrees. 0 to 359.
stamp_xX position of stamp.
stamp_yY position of stamp.

Var Details

class

Asset class of the for rendering in tgui

rotation

Rotation of stamp in degrees. 0 to 359.

stamp_x

X position of stamp.

stamp_y

Y position of stamp.

\ No newline at end of file diff --git a/datum/parsed_map.html b/datum/parsed_map.html new file mode 100644 index 0000000000000..02a86ca75749e --- /dev/null +++ b/datum/parsed_map.html @@ -0,0 +1,12 @@ +/datum/parsed_map - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

parsed_map

Vars

boundsOffset bounds. Same as parsed_bounds until load().
expanded_xIf we've expanded world.maxy
expanded_yIf we've expanded world.maxx
key_lenThe length of a key in this file. This is promised by the standard to be static
line_lenThe length of a line in this file. Not promised by dmm but standard dmm uses it, so we can trust it
loaded_areasList of area types we've loaded AS A PART OF THIS MAP +We do this to allow non unique areas, so we'll only load one per map
loadingIf we are currently loading this map
matches_tgmMatches key formats in TMG (IE: newline after the ()
model_pathPulls out model paths for DMM
parsed_boundsUnoffset bounds. Null on parse failure.
turf_blacklistany turf in this list is skipped inside of build_coordinate. Lazy assoc list
var_edits_tgmPulls out key value pairs for TGM

Procs

NewParse a map, possibly cropping it.
_dmm_loadStanrdard loading, not used in production +Doesn't take advantage of any tgm optimizations, which makes it slower but also more general +Use this if for some reason your map format is messy
check_for_errorsCheck a parsed but not yet loaded map for errors.
dmm_build_cacheBuilds key caches for general formats +Slower then the proc above, tho it could still be optimized slightly. it's just not a priority +Since we don't run DMM maps, ever.
filter_grid_sets_based_on_z_boundsIterates over all grid sets and returns ones with z values within the given bounds. Inclusive
loadLoad the parsed map into the world. You probably want /proc/load_map. Keep the signature the same.

Var Details

bounds

Offset bounds. Same as parsed_bounds until load().

expanded_x

If we've expanded world.maxy

expanded_y

If we've expanded world.maxx

key_len

The length of a key in this file. This is promised by the standard to be static

line_len

The length of a line in this file. Not promised by dmm but standard dmm uses it, so we can trust it

loaded_areas

List of area types we've loaded AS A PART OF THIS MAP +We do this to allow non unique areas, so we'll only load one per map

loading

If we are currently loading this map

matches_tgm

Matches key formats in TMG (IE: newline after the ()

model_path

Pulls out model paths for DMM

parsed_bounds

Unoffset bounds. Null on parse failure.

turf_blacklist

any turf in this list is skipped inside of build_coordinate. Lazy assoc list

var_edits_tgm

Pulls out key value pairs for TGM

Proc Details

New

Parse a map, possibly cropping it.

_dmm_load

Stanrdard loading, not used in production +Doesn't take advantage of any tgm optimizations, which makes it slower but also more general +Use this if for some reason your map format is messy

check_for_errors

Check a parsed but not yet loaded map for errors.

+

Returns a /datum/map_report if there are errors or FALSE otherwise.

dmm_build_cache

Builds key caches for general formats +Slower then the proc above, tho it could still be optimized slightly. it's just not a priority +Since we don't run DMM maps, ever.

filter_grid_sets_based_on_z_bounds

Iterates over all grid sets and returns ones with z values within the given bounds. Inclusive

load

Load the parsed map into the world. You probably want /proc/load_map. Keep the signature the same.

\ No newline at end of file diff --git a/datum/particle_editor.html b/datum/particle_editor.html new file mode 100644 index 0000000000000..e0238118f7d25 --- /dev/null +++ b/datum/particle_editor.html @@ -0,0 +1 @@ +/datum/particle_editor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

particle_editor

Vars

targetmovable whose particles we want to be editing

Var Details

target

movable whose particles we want to be editing

\ No newline at end of file diff --git a/datum/path_map.html b/datum/path_map.html new file mode 100644 index 0000000000000..ad7fcae192787 --- /dev/null +++ b/datum/path_map.html @@ -0,0 +1,24 @@ +/datum/path_map - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

path_map

Datum that describes the shortest path between a source turf and any turfs within a distance

Vars

avoidWere we avoiding a turf? If so, which one?
buildingAre we currently being built
creation_timeThe tick we were completed on, in case you want to hold onto this for a bit
distancesList of distances from the starting turf, each index lines up with the next_closest list
expandingAre we currently being expanded?
next_closestAssoc list of turf -> the turf one step closer on the path +Arranged in discovery order, so the last turf here will be the furthest from the start
pass_infoThe pass info datum used to create us
pass_spaceWere we allowed to path over space?
startOur starting turf, the location this map feeds into

Procs

compare_againstReturns true if the passed in pass_map's pass logic matches ours +False otherwise
compare_against_argsReturns true if the passed in pass_info and start/pass_space/avoid match ours +False otherwise
copy_fromCopies the passed in path_map into this datum +Saves some headache with updating refs if we want to modify a path_map
expandExpands this pathmap to cover a new range, assuming the arg is greater then the current range +Returns true if this succeeded or was not required, false otherwise
generate_pathTakes a turf to use as the other end, returns the path between the source node and it
get_path_fromTakes a turf to start from, returns a path to the source turf of this datum
get_path_toTakes a turf to path to, returns the shortest path to it at the time of this datum's creation
settings_to_pathReturns a new /datum/pathfind/sssp based off our settings +Will have an invalid source mob, no max distance, and no ending callback
turfs_in_rangeGets a list of turfs reachable by this path_map from the distance first to the distance second, both inclusive +first > second or first < second are both respected, and the return order will reflect the arg order +We return a list of turf -> distance, or null if we error

Var Details

avoid

Were we avoiding a turf? If so, which one?

building

Are we currently being built

creation_time

The tick we were completed on, in case you want to hold onto this for a bit

distances

List of distances from the starting turf, each index lines up with the next_closest list

expanding

Are we currently being expanded?

next_closest

Assoc list of turf -> the turf one step closer on the path +Arranged in discovery order, so the last turf here will be the furthest from the start

pass_info

The pass info datum used to create us

pass_space

Were we allowed to path over space?

start

Our starting turf, the location this map feeds into

Proc Details

compare_against

Returns true if the passed in pass_map's pass logic matches ours +False otherwise

compare_against_args

Returns true if the passed in pass_info and start/pass_space/avoid match ours +False otherwise

copy_from

Copies the passed in path_map into this datum +Saves some headache with updating refs if we want to modify a path_map

expand

Expands this pathmap to cover a new range, assuming the arg is greater then the current range +Returns true if this succeeded or was not required, false otherwise

generate_path

Takes a turf to use as the other end, returns the path between the source node and it

+

skip_first - If we should drop the first step in the path. Used to avoid stepping where we already are +min_target_dist - How many, if any, turfs off the end of the path should we drop? +reverse - If true, "reverses" the path generated. You'd want to use this for generating a path to the source node itself

get_path_from

Takes a turf to start from, returns a path to the source turf of this datum

+

skip_first - If we should drop the first step in the path. Used to avoid stepping where we already are +min_target_dist - How many, if any, turfs off the end of the path should we drop?

get_path_to

Takes a turf to path to, returns the shortest path to it at the time of this datum's creation

+

skip_first - If we should drop the first step in the path. Used to avoid stepping where we already are +min_target_dist - How many, if any, turfs off the end of the path should we drop?

settings_to_path

Returns a new /datum/pathfind/sssp based off our settings +Will have an invalid source mob, no max distance, and no ending callback

turfs_in_range

Gets a list of turfs reachable by this path_map from the distance first to the distance second, both inclusive +first > second or first < second are both respected, and the return order will reflect the arg order +We return a list of turf -> distance, or null if we error

\ No newline at end of file diff --git a/datum/pathfind.html b/datum/pathfind.html new file mode 100644 index 0000000000000..5a3d015faa58f --- /dev/null +++ b/datum/pathfind.html @@ -0,0 +1,9 @@ +/datum/pathfind - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pathfind

The datum used to handle the JPS pathfinding, completely self-contained

Vars

avoidA specific turf we're avoiding, like if a mulebot is being blocked by someone t-posing in a doorway we're trying to get through
max_distanceLimits how far we can search before giving up on a path
on_finishThe callbacks to invoke when we're done working, passing in the completed product +Invoked in order
pass_infoDatum that holds the canpass info of this pathing attempt. This is what CanAstarPass sees
simulated_onlySpace is big and empty, if this is TRUE then we ignore pathing through unsimulated tiles
startThe turf we started at

Procs

early_exitearly_exit() is called when something goes wrong in processing, and we need to halt the pathfinding NOW
finishedCleanup pass for the pathfinder. This tidies up the path, and fufills the pathfind's obligations
hand_backCall to return a value to whoever spawned this pathfinding work +Will fail if it's already been called
search_stepsearch_step() is the workhorse of pathfinding. It'll do the searching logic, and will slowly build up a path +returns TRUE if everything is stable, FALSE if the pathfinding logic has failed, and we need to abort
start"starts" off the pathfinding, by storing the values this datum will need to work later on +returns FALSE if it fails to setup properly, TRUE otherwise

Var Details

avoid

A specific turf we're avoiding, like if a mulebot is being blocked by someone t-posing in a doorway we're trying to get through

max_distance

Limits how far we can search before giving up on a path

on_finish

The callbacks to invoke when we're done working, passing in the completed product +Invoked in order

pass_info

Datum that holds the canpass info of this pathing attempt. This is what CanAstarPass sees

simulated_only

Space is big and empty, if this is TRUE then we ignore pathing through unsimulated tiles

start

The turf we started at

Proc Details

early_exit

early_exit() is called when something goes wrong in processing, and we need to halt the pathfinding NOW

finished

Cleanup pass for the pathfinder. This tidies up the path, and fufills the pathfind's obligations

hand_back

Call to return a value to whoever spawned this pathfinding work +Will fail if it's already been called

search_step

search_step() is the workhorse of pathfinding. It'll do the searching logic, and will slowly build up a path +returns TRUE if everything is stable, FALSE if the pathfinding logic has failed, and we need to abort

start

"starts" off the pathfinding, by storing the values this datum will need to work later on +returns FALSE if it fails to setup properly, TRUE otherwise

\ No newline at end of file diff --git a/datum/pathfind/jps.html b/datum/pathfind/jps.html new file mode 100644 index 0000000000000..5ee734ab06778 --- /dev/null +++ b/datum/pathfind/jps.html @@ -0,0 +1,19 @@ +/datum/pathfind/jps - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

jps

Vars

callerThe movable we are pathing
diagonal_handlingDefines how we handle diagonal moves. See __DEFINES/path.dm
endThe turf we're trying to path to (note that this won't track a moving target)
found_turfsAn assoc list that serves as the closed list. Key is the turf, points to true if we've seen it before
mintargetdistHow far away we have to get to the end target before we can call it quits
openThe open list/stack we pop nodes out from (TODO: make this a normal list and macro-ize the heap operations to reduce proc overhead)
pathThe list we compile at the end if successful to pass back
skip_firstIf we should delete the first step in the path or not. Used often because it is just the starting tile

Procs

diag_scan_specFor performing diagonal scans from a given starting turf.
lateral_scan_specFor performing lateral scans from a given starting turf.
unwind_pathCalled when we've hit the goal with the node that represents the last tile, then sets the path var to that path so it can be returned by [datum/pathfind/proc/search]

Var Details

caller

The movable we are pathing

diagonal_handling

Defines how we handle diagonal moves. See __DEFINES/path.dm

end

The turf we're trying to path to (note that this won't track a moving target)

found_turfs

An assoc list that serves as the closed list. Key is the turf, points to true if we've seen it before

mintargetdist

How far away we have to get to the end target before we can call it quits

open

The open list/stack we pop nodes out from (TODO: make this a normal list and macro-ize the heap operations to reduce proc overhead)

path

The list we compile at the end if successful to pass back

skip_first

If we should delete the first step in the path or not. Used often because it is just the starting tile

Proc Details

diag_scan_spec

For performing diagonal scans from a given starting turf.

+

Unlike lateral scans, these only are called from the main search loop, so we don't need to worry about returning anything, +though we do need to handle the return values of our lateral subscans of course.

+

Arguments:

+

lateral_scan_spec

For performing lateral scans from a given starting turf.

+

These scans are called from both the main search loop, as well as subscans for diagonal scans, and they treat finding interesting turfs slightly differently. +If we're doing a normal lateral scan, we already have a parent node supplied, so we just create the new node and immediately insert it into the heap, ezpz. +If we're part of a subscan, we still need for the diagonal scan to generate a parent node, so we return a node datum with just the turf and let the diag scan +proc handle transferring the values and inserting them into the heap.

+

Arguments:

+

unwind_path

Called when we've hit the goal with the node that represents the last tile, then sets the path var to that path so it can be returned by [datum/pathfind/proc/search]

\ No newline at end of file diff --git a/datum/pathfind/sssp.html b/datum/pathfind/sssp.html new file mode 100644 index 0000000000000..eb6632540e99a --- /dev/null +++ b/datum/pathfind/sssp.html @@ -0,0 +1,2 @@ +/datum/pathfind/sssp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sssp

Single source shortest path +Generates a flow map of a reachable turf -> the turf next closest to the map's center

Vars

working_distancesList of distances, each entry mirrors an entry in the working_queue
working_indexOur current position in the working queue
working_queueEver expanding list of turfs to visit/visited, associated with the turf that's next closest to them

Var Details

working_distances

List of distances, each entry mirrors an entry in the working_queue

working_index

Our current position in the working queue

working_queue

Ever expanding list of turfs to visit/visited, associated with the turf that's next closest to them

\ No newline at end of file diff --git a/datum/pda_chat.html b/datum/pda_chat.html new file mode 100644 index 0000000000000..56652d1f4c334 --- /dev/null +++ b/datum/pda_chat.html @@ -0,0 +1,6 @@ +/datum/pda_chat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pda_chat

Chat log data type, stores information about the recipient, +the messages themselves and other metadata.

Vars

cached_jobThe cached job of the recipient
cached_nameThe cached name of the recipient, so we can +identify this chat even after the recipient is deleted
can_replyUsed to determine if you can talk in a chat
message_draftSaved draft of a message so the sender can leave and come back later
messagesA list of messages in this chat
recipientWeakref to the recipient messenger
unread_messagesNumber of unread messages in this chat
visible_in_recentsUsed to determine if we should show this in recents

Procs

add_messageAdds a message to the chat log and optionally shows the chat in recents. +Call this instead of adding to messages directly.
get_recipient_jobReturns the messenger's job, caches the job in case the recipient becomes invalid later.
get_recipient_nameReturns the messenger's name, caches the name in case the recipient becomes invalid later.
get_ui_dataReturns this datum as an associative list, used for ui_data calls.

Var Details

cached_job

The cached job of the recipient

cached_name

The cached name of the recipient, so we can +identify this chat even after the recipient is deleted

can_reply

Used to determine if you can talk in a chat

message_draft

Saved draft of a message so the sender can leave and come back later

messages

A list of messages in this chat

recipient

Weakref to the recipient messenger

unread_messages

Number of unread messages in this chat

visible_in_recents

Used to determine if we should show this in recents

Proc Details

add_message

Adds a message to the chat log and optionally shows the chat in recents. +Call this instead of adding to messages directly.

get_recipient_job

Returns the messenger's job, caches the job in case the recipient becomes invalid later.

get_recipient_name

Returns the messenger's name, caches the name in case the recipient becomes invalid later.

get_ui_data

Returns this datum as an associative list, used for ui_data calls.

\ No newline at end of file diff --git a/datum/pda_message.html b/datum/pda_message.html new file mode 100644 index 0000000000000..55d29f9fdd396 --- /dev/null +++ b/datum/pda_message.html @@ -0,0 +1 @@ +/datum/pda_message - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pda_message

Chat message data type, stores data about messages themselves.

Vars

everyoneWhether this message was sent to everyone.
messageThe message itself.
outgoingWhether the message is sent by the user or not.
photo_nameThe name of the photo asset in the SSassets cache, the URL of which is sent to the client.
subtleWhether or not the message is hidden from ghostchat
timestampThe station time at which this message was made.

Procs

get_ui_dataReturns an associative list of the message's data, used for ui_data calls.

Var Details

everyone

Whether this message was sent to everyone.

message

The message itself.

outgoing

Whether the message is sent by the user or not.

photo_name

The name of the photo asset in the SSassets cache, the URL of which is sent to the client.

subtle

Whether or not the message is hidden from ghostchat

timestamp

The station time at which this message was made.

Proc Details

get_ui_data

Returns an associative list of the message's data, used for ui_data calls.

\ No newline at end of file diff --git a/datum/pet_command.html b/datum/pet_command.html new file mode 100644 index 0000000000000..5eb8433267528 --- /dev/null +++ b/datum/pet_command.html @@ -0,0 +1,8 @@ +/datum/pet_command - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Pet Command

Set some AI blackboard commands in response to receiving instructions +This is abstract and should be extended for actual behaviour

Vars

callout_typeCallout that triggers this command
command_descDescription to display in radial menu
command_feedbackShown above the mob's head when it hears you
command_nameUnique name used for radial selection, should not be shared with other commands on one mob
hiddenIf true, command will not appear in radial menu and can only be accessed through speech
radial_iconIcon to display in radial menu
radial_icon_stateIcon state to display in radial menu
sense_radiusHow close a mob needs to be to a target to respond to a command
speech_commandsSpeech strings to listen out for
weak_parentWeak reference to who follows this command

Procs

add_new_friendRegister a new guy we want to listen to
execute_actionExecute an AI action on the provided controller, what we should actually do when this command is active. +This should basically always be called from a planning subtree which passes its own controller. +Return SUBTREE_RETURN_FINISH_PLANNING to pass that instruction on to the controller, or don't if you don't want that.
find_command_in_textReturns true if we find any of our spoken commands in the text. +if check_verbosity is true, skip the match if there spoken_text is way longer than the match
look_for_targetTarget the pointed atom for actions
provide_radial_dataProvide information about how to display this command in a radial menu
remove_friendStop listening to a guy
respond_to_calloutRespond to a callout
respond_to_commandRespond to something that one of our friends has asked us to do
set_command_activeActivate the command, extend to add visible messages and the like
set_command_targetStore the target for the AI blackboard
try_activate_commandApply a command state if conditions are right, return command if successful
valid_callout_targetDoes this callout with this target trigger this command?
waive_automuteStop the automute from triggering for commands (unless the spoken text is suspiciously longer than the command)

Var Details

callout_type

Callout that triggers this command

command_desc

Description to display in radial menu

command_feedback

Shown above the mob's head when it hears you

command_name

Unique name used for radial selection, should not be shared with other commands on one mob

hidden

If true, command will not appear in radial menu and can only be accessed through speech

radial_icon

Icon to display in radial menu

radial_icon_state

Icon state to display in radial menu

sense_radius

How close a mob needs to be to a target to respond to a command

speech_commands

Speech strings to listen out for

weak_parent

Weak reference to who follows this command

Proc Details

add_new_friend

Register a new guy we want to listen to

execute_action

Execute an AI action on the provided controller, what we should actually do when this command is active. +This should basically always be called from a planning subtree which passes its own controller. +Return SUBTREE_RETURN_FINISH_PLANNING to pass that instruction on to the controller, or don't if you don't want that.

find_command_in_text

Returns true if we find any of our spoken commands in the text. +if check_verbosity is true, skip the match if there spoken_text is way longer than the match

look_for_target

Target the pointed atom for actions

provide_radial_data

Provide information about how to display this command in a radial menu

remove_friend

Stop listening to a guy

respond_to_callout

Respond to a callout

respond_to_command

Respond to something that one of our friends has asked us to do

set_command_active

Activate the command, extend to add visible messages and the like

set_command_target

Store the target for the AI blackboard

try_activate_command

Apply a command state if conditions are right, return command if successful

valid_callout_target

Does this callout with this target trigger this command?

waive_automute

Stop the automute from triggering for commands (unless the spoken text is suspiciously longer than the command)

\ No newline at end of file diff --git a/datum/pet_command/follow.html b/datum/pet_command/follow.html new file mode 100644 index 0000000000000..d2b5b4f0cd078 --- /dev/null +++ b/datum/pet_command/follow.html @@ -0,0 +1 @@ +/datum/pet_command/follow - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Pet Command: Follow

Tells a pet to follow you until you tell it to do something else

Vars

follow_behaviorthe behavior we use to follow

Var Details

follow_behavior

the behavior we use to follow

\ No newline at end of file diff --git a/datum/pet_command/follow/bee.html b/datum/pet_command/follow/bee.html new file mode 100644 index 0000000000000..d4aa19fc8767f --- /dev/null +++ b/datum/pet_command/follow/bee.html @@ -0,0 +1 @@ +/datum/pet_command/follow/bee - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bee

pet commands

Vars

follow_behaviorthe behavior we use to follow

Var Details

follow_behavior

the behavior we use to follow

\ No newline at end of file diff --git a/datum/pet_command/minebot_ability.html b/datum/pet_command/minebot_ability.html new file mode 100644 index 0000000000000..ffe9171f7aa54 --- /dev/null +++ b/datum/pet_command/minebot_ability.html @@ -0,0 +1 @@ +/datum/pet_command/minebot_ability - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

minebot_ability

Vars

ability_keythe ability we will use

Var Details

ability_key

the ability we will use

\ No newline at end of file diff --git a/datum/pet_command/point_targeting.html b/datum/pet_command/point_targeting.html new file mode 100644 index 0000000000000..9ca939ca6bc1f --- /dev/null +++ b/datum/pet_command/point_targeting.html @@ -0,0 +1 @@ +/datum/pet_command/point_targeting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Point Targeting Pet Command

As above but also listens for you pointing at something and marks it as a target

Vars

pointed_reactionText describing an action we perform upon receiving a new target
targeting_strategy_keyBlackboard key for targeting strategy, this is likely going to need it

Procs

on_pointTarget the pointed atom for actions

Var Details

pointed_reaction

Text describing an action we perform upon receiving a new target

targeting_strategy_key

Blackboard key for targeting strategy, this is likely going to need it

Proc Details

on_point

Target the pointed atom for actions

\ No newline at end of file diff --git a/datum/pet_command/point_targeting/attack.html b/datum/pet_command/point_targeting/attack.html new file mode 100644 index 0000000000000..2c9cab3b9ed2f --- /dev/null +++ b/datum/pet_command/point_targeting/attack.html @@ -0,0 +1 @@ +/datum/pet_command/point_targeting/attack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Pet Command: Attack

Tells a pet to chase and bite the next thing you point at

Vars

attack_behaviourAttack behaviour to use
refuse_reactionBalloon alert to display if providing an invalid target

Procs

refuse_targetDisplay feedback about not targeting something

Var Details

attack_behaviour

Attack behaviour to use

refuse_reaction

Balloon alert to display if providing an invalid target

Proc Details

refuse_target

Display feedback about not targeting something

\ No newline at end of file diff --git a/datum/pet_command/point_targeting/attack/swirl.html b/datum/pet_command/point_targeting/attack/swirl.html new file mode 100644 index 0000000000000..e0f6e955a796a --- /dev/null +++ b/datum/pet_command/point_targeting/attack/swirl.html @@ -0,0 +1 @@ +/datum/pet_command/point_targeting/attack/swirl - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

swirl

swirl around the owner in menacing fashion

Vars

key_to_swarmthe owner we will swarm around

Var Details

key_to_swarm

the owner we will swarm around

\ No newline at end of file diff --git a/datum/pet_command/point_targeting/fetch.html b/datum/pet_command/point_targeting/fetch.html new file mode 100644 index 0000000000000..6f0ac70ae3cb3 --- /dev/null +++ b/datum/pet_command/point_targeting/fetch.html @@ -0,0 +1,2 @@ +/datum/pet_command/point_targeting/fetch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Pet Command: Fetch

Watch for someone throwing or pointing at something and then go get it and bring it back. +If it's food we might eat it instead.

Vars

trigger_on_throwIf true, this command will trigger if the pet sees a friend throw any item, if they're not doing anything else
will_eat_targetsIf true, this is a poorly trained pet who will eat food you throw instead of bringing it back

Procs

listen_throw_landA throw we were listening to has finished, see if it's in range for us to try grabbing it
listened_throwA friend has thrown something, if we're listening or at least not busy then go get it

Var Details

trigger_on_throw

If true, this command will trigger if the pet sees a friend throw any item, if they're not doing anything else

will_eat_targets

If true, this is a poorly trained pet who will eat food you throw instead of bringing it back

Proc Details

listen_throw_land

A throw we were listening to has finished, see if it's in range for us to try grabbing it

listened_throw

A friend has thrown something, if we're listening or at least not busy then go get it

\ No newline at end of file diff --git a/datum/pet_command/point_targeting/use_ability.html b/datum/pet_command/point_targeting/use_ability.html new file mode 100644 index 0000000000000..49e28857d137c --- /dev/null +++ b/datum/pet_command/point_targeting/use_ability.html @@ -0,0 +1 @@ +/datum/pet_command/point_targeting/use_ability - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Pet Command: Targetted Ability

Tells a pet to use some kind of ability on the next thing you point at

Vars

ability_behaviorThe AI behavior to use for the ability
pet_ability_keyBlackboard key where a reference to some kind of mob ability is stored

Var Details

ability_behavior

The AI behavior to use for the ability

pet_ability_key

Blackboard key where a reference to some kind of mob ability is stored

\ No newline at end of file diff --git a/datum/pet_command/protect_owner.html b/datum/pet_command/protect_owner.html new file mode 100644 index 0000000000000..fcb7ec55148f0 --- /dev/null +++ b/datum/pet_command/protect_owner.html @@ -0,0 +1 @@ +/datum/pet_command/protect_owner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

protect_owner

Vars

protect_behaviorthe behavior we will use when he is attacked
protect_rangethe range our owner needs to be in for us to protect him
self_harm_message_cooldownmessage cooldown to prevent too many people from telling you not to commit suicide

Var Details

protect_behavior

the behavior we will use when he is attacked

protect_range

the range our owner needs to be in for us to protect him

self_harm_message_cooldown

message cooldown to prevent too many people from telling you not to commit suicide

\ No newline at end of file diff --git a/datum/pet_command/untargeted_ability.html b/datum/pet_command/untargeted_ability.html new file mode 100644 index 0000000000000..78daa47da348b --- /dev/null +++ b/datum/pet_command/untargeted_ability.html @@ -0,0 +1 @@ +/datum/pet_command/untargeted_ability - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Pet Command: Use ability

Use an an ability that does not require any targets

Vars

ability_keyuntargeted ability we will use

Var Details

ability_key

untargeted ability we will use

\ No newline at end of file diff --git a/datum/physiology.html b/datum/physiology.html new file mode 100644 index 0000000000000..b0bf4c185bafa --- /dev/null +++ b/datum/physiology.html @@ -0,0 +1,9 @@ +/datum/physiology - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

physiology

Vars

brain_modMultiplier to brain damage received
brute_modMultiplier to brute damage received. +IE: A brute mod of 0.9 = 10% less brute damage. +Only applies to damage dealt via apply_damage unless factored in manually.
burn_modMultiplier to burn damage received
cold_modMultiplier to damage taken from low temperature exposure, stacking with the toxin modifier
damage_resistanceFlat damage reduction from taking damage +Unlike the other modifiers, this is not a multiplier. +IE: DR of 10 = 10% less damage.
heat_modMultiplier to damage taken from high temperature exposure, stacking with the burn modifier
knockdown_modMultiplied aplpied to just knockdowns, stacks with above multiplicatively
oxy_modMultiplier to oxygen damage received
pressure_modMultiplier to damage taken from high / low pressure exposure, stacking with the brute modifier
stamina_modMultiplier to stamina damage received
stun_modMultiplier applied to all incapacitating stuns (knockdown, stun, paralyze, immobilize)
tox_modMultiplier to toxin damage received

Var Details

brain_mod

Multiplier to brain damage received

brute_mod

Multiplier to brute damage received. +IE: A brute mod of 0.9 = 10% less brute damage. +Only applies to damage dealt via apply_damage unless factored in manually.

burn_mod

Multiplier to burn damage received

cold_mod

Multiplier to damage taken from low temperature exposure, stacking with the toxin modifier

damage_resistance

Flat damage reduction from taking damage +Unlike the other modifiers, this is not a multiplier. +IE: DR of 10 = 10% less damage.

heat_mod

Multiplier to damage taken from high temperature exposure, stacking with the burn modifier

knockdown_mod

Multiplied aplpied to just knockdowns, stacks with above multiplicatively

oxy_mod

Multiplier to oxygen damage received

pressure_mod

Multiplier to damage taken from high / low pressure exposure, stacking with the brute modifier

stamina_mod

Multiplier to stamina damage received

stun_mod

Multiplier applied to all incapacitating stuns (knockdown, stun, paralyze, immobilize)

tox_mod

Multiplier to toxin damage received

\ No newline at end of file diff --git a/datum/picture.html b/datum/picture.html new file mode 100644 index 0000000000000..147c82a627ad1 --- /dev/null +++ b/datum/picture.html @@ -0,0 +1 @@ +/datum/picture - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

picture

Vars

dead_seenList of weakrefs pointing at dead mobs that appear in this photo
mobs_seenList of weakrefs pointing at mobs that appear in this photo
names_seenList of strings of face-visible humans in this photo
see_ghostsWas this image capable of seeing ghosts?

Var Details

dead_seen

List of weakrefs pointing at dead mobs that appear in this photo

mobs_seen

List of weakrefs pointing at mobs that appear in this photo

names_seen

List of strings of face-visible humans in this photo

see_ghosts

Was this image capable of seeing ghosts?

\ No newline at end of file diff --git a/datum/pipe_icon_generator.html b/datum/pipe_icon_generator.html new file mode 100644 index 0000000000000..5540f0da25a09 --- /dev/null +++ b/datum/pipe_icon_generator.html @@ -0,0 +1 @@ +/datum/pipe_icon_generator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

pipe_icon_generator

Procs

GenerateDamagedGenerates all variants of damaged pipe from a given icon and the dirs that can be broken

Proc Details

GenerateDamaged

Generates all variants of damaged pipe from a given icon and the dirs that can be broken

\ No newline at end of file diff --git a/datum/pipeline.html b/datum/pipeline.html new file mode 100644 index 0000000000000..2589c266e3ef2 --- /dev/null +++ b/datum/pipeline.html @@ -0,0 +1,12 @@ +/datum/pipeline - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pipeline

Vars

airThe gases contained within this pipeline
buildingIs this pipeline being reconstructed?
gas_visualsA named list of icon_file:overlay_object that gets automatically colored when the gasmix_color updates
gasmix_colorThe weighted color blend of the gas mixture in this pipeline
other_airsThe gas_mixtures of objects directly connected to this pipeline
require_custom_reconcilationList of other_atmos_machines that have custom_reconcilation set +We're essentially caching this to avoid needing to filter over it when processing our machines
updateShould we equalize air amoung all our members?

Procs

CalculateGasmixColorAfter updating, this proc handles looking at the new gas mixture and blends the colors together according to percentage of the gas mix.
GetGasVisualUsed to create and/or get the gas visual overlay created using the given icon file. +The color is automatically kept up to date and expected to be used as a vis_contents object.
UpdateGasVisualsCalled when the gasmix color has changed and the gas visuals need to be updated.
add_machinery_memberFor a machine to properly "connect" to a pipeline and share gases, +the pipeline needs to acknowledge a gas mixture as its member. +This is currently handled by the other_airs list in the pipeline datum.
build_pipelinePreps a pipeline for rebuilding, insterts it into the rebuild queue
build_pipeline_blockingHas the same effect as build_pipeline(), but this doesn't queue its work, so overrun abounds. It's useful for the pregame
reconcile_airCalled when the pipenet needs to update and mix together all the air mixes

Var Details

air

The gases contained within this pipeline

building

Is this pipeline being reconstructed?

gas_visuals

A named list of icon_file:overlay_object that gets automatically colored when the gasmix_color updates

gasmix_color

The weighted color blend of the gas mixture in this pipeline

other_airs

The gas_mixtures of objects directly connected to this pipeline

require_custom_reconcilation

List of other_atmos_machines that have custom_reconcilation set +We're essentially caching this to avoid needing to filter over it when processing our machines

update

Should we equalize air amoung all our members?

Proc Details

CalculateGasmixColor

After updating, this proc handles looking at the new gas mixture and blends the colors together according to percentage of the gas mix.

GetGasVisual

Used to create and/or get the gas visual overlay created using the given icon file. +The color is automatically kept up to date and expected to be used as a vis_contents object.

UpdateGasVisuals

Called when the gasmix color has changed and the gas visuals need to be updated.

add_machinery_member

For a machine to properly "connect" to a pipeline and share gases, +the pipeline needs to acknowledge a gas mixture as its member. +This is currently handled by the other_airs list in the pipeline datum.

+
Other_airs itself is populated by gas mixtures through the parents list that each machineries have.
+This parents list is populated when a machinery calls update_parents and is then added into the queue by the controller.
+

build_pipeline

Preps a pipeline for rebuilding, insterts it into the rebuild queue

build_pipeline_blocking

Has the same effect as build_pipeline(), but this doesn't queue its work, so overrun abounds. It's useful for the pregame

reconcile_air

Called when the pipenet needs to update and mix together all the air mixes

\ No newline at end of file diff --git a/datum/pirate_gang.html b/datum/pirate_gang.html new file mode 100644 index 0000000000000..2138482a012e6 --- /dev/null +++ b/datum/pirate_gang.html @@ -0,0 +1,7 @@ +/datum/pirate_gang - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pirate_gang

datum for a pirate team that is spawning to attack the station.

Vars

announcement_colorThe colour of their announcements when sent to players
arrival_announcementstation receives this message upon the ship's spawn
is_heavy_threatWhether or not this pirate crew is a heavy-level threat
namename of this gang, for spawning feedback
paid_offHave the pirates been paid off?
possible_answerswhat the station can say in response, first item pays the pirates, second item rejects it.
response_not_enoughstation pays the pirates... but doesn't have enough cash.
response_receivedstation responds to message and pays the pirates
response_rejectedstation responds to message and pays the pirates
response_too_latestation pays the pirates, but after the ship spawned
ship_namethe random ship name chosen from pirates.json
ship_name_poolthe key to the json list of pirate names
ship_template_idthe ship they load in on.
threat_contentthe contents of the message sent to the station. +%SHIPNAME in the content will be replaced with the pirate ship's name +%PAYOFF in the content will be replaced with the requested credits.
threat_titleinbound message title the station receives

Procs

can_rollwhether this pirate gang can roll today. this is called when the global list initializes, so +returning FALSE means it cannot show up at all for the entire round.
generate_messagereturns a new comm_message datum from this pirate gang

Var Details

announcement_color

The colour of their announcements when sent to players

arrival_announcement

station receives this message upon the ship's spawn

is_heavy_threat

Whether or not this pirate crew is a heavy-level threat

name

name of this gang, for spawning feedback

paid_off

Have the pirates been paid off?

possible_answers

what the station can say in response, first item pays the pirates, second item rejects it.

response_not_enough

station pays the pirates... but doesn't have enough cash.

response_received

station responds to message and pays the pirates

response_rejected

station responds to message and pays the pirates

response_too_late

station pays the pirates, but after the ship spawned

ship_name

the random ship name chosen from pirates.json

ship_name_pool

the key to the json list of pirate names

ship_template_id

the ship they load in on.

threat_content

the contents of the message sent to the station. +%SHIPNAME in the content will be replaced with the pirate ship's name +%PAYOFF in the content will be replaced with the requested credits.

threat_title

inbound message title the station receives

Proc Details

can_roll

whether this pirate gang can roll today. this is called when the global list initializes, so +returning FALSE means it cannot show up at all for the entire round.

generate_message

returns a new comm_message datum from this pirate gang

\ No newline at end of file diff --git a/datum/plane_master_debug.html b/datum/plane_master_debug.html new file mode 100644 index 0000000000000..a6d796bf66e0f --- /dev/null +++ b/datum/plane_master_debug.html @@ -0,0 +1,5 @@ +/datum/plane_master_debug - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

plane_master_debug

Used for testing/debugger plane masters and their associated rendering plates

Vars

current_groupThe current plane master group we're viewing
depth_stackAssoc list of plane master group key -> its depth stack
mirror_targetIf we are actively mirroring the target of our current ui
mob_refWeakref to the mob to edit

Procs

create_storeCreate or refresh our stored visual data, represeting the viewing mob
set_mirroringSetter for mirror_target, basically allows for enabling/disabiling viewing through mob's sight
treeifyTakes a list of js formatted planes, and turns it into a tree based off the back connections of relays +So start at the top master plane, and work down +Haha jerry what if I added commands to my list parser lmao lol

Var Details

current_group

The current plane master group we're viewing

depth_stack

Assoc list of plane master group key -> its depth stack

mirror_target

If we are actively mirroring the target of our current ui

mob_ref

Weakref to the mob to edit

Proc Details

create_store

Create or refresh our stored visual data, represeting the viewing mob

set_mirroring

Setter for mirror_target, basically allows for enabling/disabiling viewing through mob's sight

treeify

Takes a list of js formatted planes, and turns it into a tree based off the back connections of relays +So start at the top master plane, and work down +Haha jerry what if I added commands to my list parser lmao lol

\ No newline at end of file diff --git a/datum/plane_master_group.html b/datum/plane_master_group.html new file mode 100644 index 0000000000000..9725a0698ae25 --- /dev/null +++ b/datum/plane_master_group.html @@ -0,0 +1,7 @@ +/datum/plane_master_group - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

plane_master_group

Datum that represents one "group" of plane masters +So all the main window planes would be in one, all the spyglass planes in another +Etc

Vars

active_offsetThe visual offset we are currently using
keyOur key in the group list on /datum/hud +Should be unique for any group of plane masters in the world
mapWhat, if any, submap we render onto
our_hudOur parent hud
plane_mastersList in the form "[plane]" = object, the plane masters we own
relay_locControls the screen_loc that owned plane masters will use when generating relays. Due to a Byond bug, relays using the CENTER positional loc +Will be improperly offset

Procs

attach_toDisplay a plane master group to some viewer, so show all our planes to it
build_plane_mastersActually generate our plane masters, in some offset range (where offset is the z layers to render to, because each "layer" in a multiz stack gets its own plane master cube)
get_planeNice wrapper for the "[]"ing
get_plane_typesReturns a list of all the plane master types we want to create
orphan_hudHide the plane master from its current hud, fully clear it out
prep_plane_instanceSimilarly, exists so subtypes can do unique behavior to planes on creation
rebuild_hudFully regenerate our group, resetting our planes to their compile time values
rebuild_plane_mastersRegenerate our plane masters, this is useful if we don't have a mob but still want to rebuild. Such in the case of changing the screen_loc of relays
refresh_hudWell, refresh our group, mostly useful for plane specific updates
show_planeThis is mostly a proc so it can be overriden by popups, since they have unique behavior they want to do

Var Details

active_offset

The visual offset we are currently using

key

Our key in the group list on /datum/hud +Should be unique for any group of plane masters in the world

map

What, if any, submap we render onto

our_hud

Our parent hud

plane_masters

List in the form "[plane]" = object, the plane masters we own

relay_loc

Controls the screen_loc that owned plane masters will use when generating relays. Due to a Byond bug, relays using the CENTER positional loc +Will be improperly offset

Proc Details

attach_to

Display a plane master group to some viewer, so show all our planes to it

build_plane_masters

Actually generate our plane masters, in some offset range (where offset is the z layers to render to, because each "layer" in a multiz stack gets its own plane master cube)

get_plane

Nice wrapper for the "[]"ing

get_plane_types

Returns a list of all the plane master types we want to create

orphan_hud

Hide the plane master from its current hud, fully clear it out

prep_plane_instance

Similarly, exists so subtypes can do unique behavior to planes on creation

rebuild_hud

Fully regenerate our group, resetting our planes to their compile time values

rebuild_plane_masters

Regenerate our plane masters, this is useful if we don't have a mob but still want to rebuild. Such in the case of changing the screen_loc of relays

refresh_hud

Well, refresh our group, mostly useful for plane specific updates

show_plane

This is mostly a proc so it can be overriden by popups, since they have unique behavior they want to do

\ No newline at end of file diff --git a/datum/plane_master_group/hudless.html b/datum/plane_master_group/hudless.html new file mode 100644 index 0000000000000..33a3a0a59ed0f --- /dev/null +++ b/datum/plane_master_group/hudless.html @@ -0,0 +1 @@ +/datum/plane_master_group/hudless - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

hudless

Hudless group. Exists for testing

Procs

show_planeThis is mostly a proc so it can be overriden by popups, since they have unique behavior they want to do

Proc Details

show_plane

This is mostly a proc so it can be overriden by popups, since they have unique behavior they want to do

\ No newline at end of file diff --git a/datum/plant_gene.html b/datum/plant_gene.html new file mode 100644 index 0000000000000..f811a54f1de8b --- /dev/null +++ b/datum/plant_gene.html @@ -0,0 +1 @@ +/datum/plant_gene - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

plant_gene

Plant gene datums - things that build and modify a plant or seed.

Vars

iconThe font awesome icon name representing the gene in the seed extractor UI
mutability_flagsFlags that determine if a gene can be modified.
nameThe name of the gene.

Procs

CopyCopies over vars and information about our current gene to a new gene and returns the new instance of gene.

Var Details

icon

The font awesome icon name representing the gene in the seed extractor UI

mutability_flags

Flags that determine if a gene can be modified.

name

The name of the gene.

Proc Details

Copy

Copies over vars and information about our current gene to a new gene and returns the new instance of gene.

\ No newline at end of file diff --git a/datum/plant_gene/reagent.html b/datum/plant_gene/reagent.html new file mode 100644 index 0000000000000..6e1b8d0f116d1 --- /dev/null +++ b/datum/plant_gene/reagent.html @@ -0,0 +1,2 @@ +/datum/plant_gene/reagent - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

reagent

Reagent genes store a reagent ID and reagent ratio.

Vars

rateThe amount of reagent generated by the plant. The equation is [1 + ((max_volume*(potency/100)) * rate)]
reagent_idThe typepath of the actual reagent that this gene is tied to.

Procs

try_upgrade_geneIntends to compare a reagent gene with a set of seeds, and if the seeds contain the same gene, with more production rate, upgrades the rate to the highest of the two.

Var Details

rate

The amount of reagent generated by the plant. The equation is [1 + ((max_volume*(potency/100)) * rate)]

reagent_id

The typepath of the actual reagent that this gene is tied to.

Proc Details

try_upgrade_gene

Intends to compare a reagent gene with a set of seeds, and if the seeds contain the same gene, with more production rate, upgrades the rate to the highest of the two.

+

Called when plants are crossbreeding, this looks for two matching reagent_ids, where the rates are greater, in order to upgrade.

\ No newline at end of file diff --git a/datum/plant_gene/trait.html b/datum/plant_gene/trait.html new file mode 100644 index 0000000000000..de0c9fa5fa0d6 --- /dev/null +++ b/datum/plant_gene/trait.html @@ -0,0 +1 @@ +/datum/plant_gene/trait - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

trait

Traits that affect the grown product.

Vars

descriptionBonus lines displayed on examine.
rateThe rate at which this trait affects something. This can be anything really - why? I dunno.
seed_blacklistA blacklist of seeds that a trait cannot be attached to.
trait_flagsFlag - Modifications made to the final product.
trait_idsFlag - Traits that share an ID cannot be placed on the same plant.

Procs

examineAdd on any unique examine text to the plant's examine text.

Var Details

description

Bonus lines displayed on examine.

rate

The rate at which this trait affects something. This can be anything really - why? I dunno.

seed_blacklist

A blacklist of seeds that a trait cannot be attached to.

trait_flags

Flag - Modifications made to the final product.

trait_ids

Flag - Traits that share an ID cannot be placed on the same plant.

Proc Details

examine

Add on any unique examine text to the plant's examine text.

\ No newline at end of file diff --git a/datum/plant_gene/trait/anti_magic.html b/datum/plant_gene/trait/anti_magic.html new file mode 100644 index 0000000000000..7989a90427f97 --- /dev/null +++ b/datum/plant_gene/trait/anti_magic.html @@ -0,0 +1 @@ +/datum/plant_gene/trait/anti_magic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

anti_magic

Holymelon's anti-magic trait. Charges based on potency.

Vars

shield_usesThe amount of anti-magic blocking uses we have.

Procs

drain_antimagicWhen the plant our gene is hosted in is drained of an anti-magic charge.
expireWhen the plant our gene is hosted in is drained of all of its anti-magic charges.

Var Details

shield_uses

The amount of anti-magic blocking uses we have.

Proc Details

drain_antimagic

When the plant our gene is hosted in is drained of an anti-magic charge.

expire

When the plant our gene is hosted in is drained of all of its anti-magic charges.

\ No newline at end of file diff --git a/datum/plant_gene/trait/attack.html b/datum/plant_gene/trait/attack.html new file mode 100644 index 0000000000000..04a8e91b94571 --- /dev/null +++ b/datum/plant_gene/trait/attack.html @@ -0,0 +1 @@ +/datum/plant_gene/trait/attack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

attack

Traits that turn a plant into a weapon, giving them force and effects on attack.

Vars

degradation_nounWhen we fully degrade, what degraded off of us?
degrades_after_hitIf TRUE, our plant will degrade in force every hit until diappearing.
force_multiplierThe multiplier we apply to the potency to calculate force. Set to 0 to not affect the force.

Procs

after_plant_attackSignal proc for COMSIG_ITEM_AFTERATTACK that allows for effects after an attack is done
on_plant_attackSignal proc for COMSIG_ITEM_ATTACK that allows for effects on attack

Var Details

degradation_noun

When we fully degrade, what degraded off of us?

degrades_after_hit

If TRUE, our plant will degrade in force every hit until diappearing.

force_multiplier

The multiplier we apply to the potency to calculate force. Set to 0 to not affect the force.

Proc Details

after_plant_attack

Signal proc for COMSIG_ITEM_AFTERATTACK that allows for effects after an attack is done

on_plant_attack

Signal proc for COMSIG_ITEM_ATTACK that allows for effects on attack

\ No newline at end of file diff --git a/datum/plant_gene/trait/backfire.html b/datum/plant_gene/trait/backfire.html new file mode 100644 index 0000000000000..de13a3f65524e --- /dev/null +++ b/datum/plant_gene/trait/backfire.html @@ -0,0 +1,3 @@ +/datum/plant_gene/trait/backfire - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

backfire

Traits for plants with backfire effects. These are negative effects that occur when a plant is handled without gloves/unsafely.

Vars

cancel_action_on_backfireWhether our actions are cancelled when the backfire triggers.
genes_to_checkA list of extra genes to check to be considered safe.
traits_to_checkA list of extra traits to check to be considered safe.

Procs

backfire_effectThe actual backfire effect on the user. +Override with plant-specific effects.
on_backfireSignal proc for COMSIG_PLANT_ON_BACKFIRE that causes the backfire effect.

Var Details

cancel_action_on_backfire

Whether our actions are cancelled when the backfire triggers.

genes_to_check

A list of extra genes to check to be considered safe.

traits_to_check

A list of extra traits to check to be considered safe.

Proc Details

backfire_effect

The actual backfire effect on the user. +Override with plant-specific effects.

on_backfire

Signal proc for COMSIG_PLANT_ON_BACKFIRE that causes the backfire effect.

\ No newline at end of file diff --git a/datum/plant_gene/trait/backfire/chili_heat.html b/datum/plant_gene/trait/backfire/chili_heat.html new file mode 100644 index 0000000000000..83b65a6af99ac --- /dev/null +++ b/datum/plant_gene/trait/backfire/chili_heat.html @@ -0,0 +1 @@ +/datum/plant_gene/trait/backfire/chili_heat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chili_heat

Ghost-Chili heating up on backfire

Vars

held_mobThe mob currently holding the chili.
our_chiliThe chili this gene is tied to, to track it for processing.

Var Details

held_mob

The mob currently holding the chili.

our_chili

The chili this gene is tied to, to track it for processing.

\ No newline at end of file diff --git a/datum/plant_gene/trait/battery.html b/datum/plant_gene/trait/battery.html new file mode 100644 index 0000000000000..dc1b81d64a21e --- /dev/null +++ b/datum/plant_gene/trait/battery.html @@ -0,0 +1 @@ +/datum/plant_gene/trait/battery - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

battery

Vars

cables_needed_per_batteryThe number of cables needed to make a battery.

Var Details

cables_needed_per_battery

The number of cables needed to make a battery.

\ No newline at end of file diff --git a/datum/plant_gene/trait/brewing.html b/datum/plant_gene/trait/brewing.html new file mode 100644 index 0000000000000..75a89f625ac1b --- /dev/null +++ b/datum/plant_gene/trait/brewing.html @@ -0,0 +1,4 @@ +/datum/plant_gene/trait/brewing - /tg/ Station 13
/tg/ Station 13 - Modules - Types

brewing

A plant trait that causes the plant's food reagents to ferment instead.

+

In practice, it replaces the plant's nutriment and vitamins with half as much of its fermented reagent. +This exception is executed in seeds.dm under 'prepare_result'.

+

Incompatible with auto-juicing composition.

\ No newline at end of file diff --git a/datum/plant_gene/trait/eyes.html b/datum/plant_gene/trait/eyes.html new file mode 100644 index 0000000000000..cea33b80ffc1b --- /dev/null +++ b/datum/plant_gene/trait/eyes.html @@ -0,0 +1,2 @@ +/datum/plant_gene/trait/eyes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

eyes

A plant trait that causes the plant to gain aesthetic googly eyes.

+

Has no functional purpose outside of causing japes, adds eyes over the plant's sprite, which are adjusted for size by potency.

Vars

googlyOur googly eyes appearance.

Var Details

googly

Our googly eyes appearance.

\ No newline at end of file diff --git a/datum/plant_gene/trait/gas_production.html b/datum/plant_gene/trait/gas_production.html new file mode 100644 index 0000000000000..13c7554a9f2bb --- /dev/null +++ b/datum/plant_gene/trait/gas_production.html @@ -0,0 +1,2 @@ +/datum/plant_gene/trait/gas_production - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gas_production

Corpseflower's miasma production. +Can be generalized in the future to spawn any gas, but I don't think that's necessarily a good idea.

Vars

home_trayThe location of our tray, if we have one.
stinky_seedThe seed emitting gas.

Var Details

home_tray

The location of our tray, if we have one.

stinky_seed

The seed emitting gas.

\ No newline at end of file diff --git a/datum/plant_gene/trait/glow.html b/datum/plant_gene/trait/glow.html new file mode 100644 index 0000000000000..5dfc4a714574c --- /dev/null +++ b/datum/plant_gene/trait/glow.html @@ -0,0 +1 @@ +/datum/plant_gene/trait/glow - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

glow

Vars

glow_colorThe color of our bioluminescence.

Var Details

glow_color

The color of our bioluminescence.

\ No newline at end of file diff --git a/datum/plant_gene/trait/juicing.html b/datum/plant_gene/trait/juicing.html new file mode 100644 index 0000000000000..1d60096198b1b --- /dev/null +++ b/datum/plant_gene/trait/juicing.html @@ -0,0 +1,2 @@ +/datum/plant_gene/trait/juicing - /tg/ Station 13
/tg/ Station 13 - Modules - Types

juicing

Similar to auto-distilling, but instead of brewing the plant's contents it juices it.

+

Incompatible with auto-distilling composition.

\ No newline at end of file diff --git a/datum/plant_gene/trait/maxchem.html b/datum/plant_gene/trait/maxchem.html new file mode 100644 index 0000000000000..868ec8580ef66 --- /dev/null +++ b/datum/plant_gene/trait/maxchem.html @@ -0,0 +1,3 @@ +/datum/plant_gene/trait/maxchem - /tg/ Station 13
/tg/ Station 13 - Modules - Types

maxchem

A plant trait that causes the plant's capacity to double.

+

When harvested, the plant's individual capacity is set to double its default. +However, the plant's maximum yield is also halved, only up to 5.

\ No newline at end of file diff --git a/datum/plant_gene/trait/mob_transformation.html b/datum/plant_gene/trait/mob_transformation.html new file mode 100644 index 0000000000000..a9ac8ae063104 --- /dev/null +++ b/datum/plant_gene/trait/mob_transformation.html @@ -0,0 +1 @@ +/datum/plant_gene/trait/mob_transformation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mob_transformation

Traits for plants that can be activated to turn into a mob.

Vars

awakeningWhether our attatched plant is currently waking up or not.
dangerousWhether mobs spawned by this trait are dangerous or not.
killer_plantThe typepath to what mob spawns from this plant.
mob_health_multiplierSpawned mob's health = this multiplier * seed endurance.
mob_melee_multiplierSpawned mob's melee damage = this multiplier * seed potency.
mob_speed_multiplierSpawned mob's move delay = this multiplier * seed potency.

Var Details

awakening

Whether our attatched plant is currently waking up or not.

dangerous

Whether mobs spawned by this trait are dangerous or not.

killer_plant

The typepath to what mob spawns from this plant.

mob_health_multiplier

Spawned mob's health = this multiplier * seed endurance.

mob_melee_multiplier

Spawned mob's melee damage = this multiplier * seed potency.

mob_speed_multiplier

Spawned mob's move delay = this multiplier * seed potency.

\ No newline at end of file diff --git a/datum/plant_gene/trait/modified_volume.html b/datum/plant_gene/trait/modified_volume.html new file mode 100644 index 0000000000000..067f33cd4f715 --- /dev/null +++ b/datum/plant_gene/trait/modified_volume.html @@ -0,0 +1 @@ +/datum/plant_gene/trait/modified_volume - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

modified_volume

Traits for plants with a different base max_volume.

Vars

new_capcityThe new number we set the plant's max_volume to.

Var Details

new_capcity

The new number we set the plant's max_volume to.

\ No newline at end of file diff --git a/datum/plant_gene/trait/plant_laughter.html b/datum/plant_gene/trait/plant_laughter.html new file mode 100644 index 0000000000000..64d1504077cf4 --- /dev/null +++ b/datum/plant_gene/trait/plant_laughter.html @@ -0,0 +1,3 @@ +/datum/plant_gene/trait/plant_laughter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plant_laughter

Plays a laughter sound when someone slips on it. +Like the sitcom component but for plants. +Just like slippery skin, if we have a trash type this only functions on that. (Banana peels)

Vars

soundsSounds that play when this trait triggers

Var Details

sounds

Sounds that play when this trait triggers

\ No newline at end of file diff --git a/datum/plant_gene/trait/repeated_harvest.html b/datum/plant_gene/trait/repeated_harvest.html new file mode 100644 index 0000000000000..4d766ce10f982 --- /dev/null +++ b/datum/plant_gene/trait/repeated_harvest.html @@ -0,0 +1 @@ +/datum/plant_gene/trait/repeated_harvest - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

repeated_harvest

Allows a plant to be harvested multiple times.

Vars

seed_blacklistDon't allow replica pods to be multi harvested, please.

Var Details

seed_blacklist

Don't allow replica pods to be multi harvested, please.

\ No newline at end of file diff --git a/datum/plant_gene/trait/slip.html b/datum/plant_gene/trait/slip.html new file mode 100644 index 0000000000000..2883656723f37 --- /dev/null +++ b/datum/plant_gene/trait/slip.html @@ -0,0 +1 @@ +/datum/plant_gene/trait/slip - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

slip

Procs

handle_slipOn slip, sends a signal that our plant was slipped on out.

Proc Details

handle_slip

On slip, sends a signal that our plant was slipped on out.

\ No newline at end of file diff --git a/datum/player_details.html b/datum/player_details.html new file mode 100644 index 0000000000000..86c9f0427374a --- /dev/null +++ b/datum/player_details.html @@ -0,0 +1,5 @@ +/datum/player_details - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

player_details

Tracks information about a client between log in and log outs

Vars

achievementsTracks achievements they have earned
byond_versionVersion of byond this client is using
joined_as_slotsLazylist of preference slots this client has joined the round under +Numbers are stored as strings
loggingTracks client action logging
played_namesList of names this key played under this round +assoc list of name -> mob tag
player_actionsAction datums assigned to this player
post_login_callbacksCallbacks invoked when this client logs in again
post_logout_callbacksCallbacks invoked when this client logs out
time_of_deathWorld.time this player last died

Procs

get_played_namesWrites all of the played_names into an HTML-escaped string.

Var Details

achievements

Tracks achievements they have earned

byond_version

Version of byond this client is using

joined_as_slots

Lazylist of preference slots this client has joined the round under +Numbers are stored as strings

logging

Tracks client action logging

played_names

List of names this key played under this round +assoc list of name -> mob tag

player_actions

Action datums assigned to this player

post_login_callbacks

Callbacks invoked when this client logs in again

post_logout_callbacks

Callbacks invoked when this client logs out

time_of_death

World.time this player last died

Proc Details

get_played_names

Writes all of the played_names into an HTML-escaped string.

\ No newline at end of file diff --git a/datum/player_rank_controller.html b/datum/player_rank_controller.html new file mode 100644 index 0000000000000..c1559795a7d83 --- /dev/null +++ b/datum/player_rank_controller.html @@ -0,0 +1,60 @@ +/datum/player_rank_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

player_rank_controller

This datum is intended to be used as a method of abstraction for the different +ways that each player rank handles adding and removing players from their global +lists, as well as handling the legacy adding, removing, loading and saving of +said lists.

Vars

legacy_file_headerThe header for the legacy file, if any. +Leave as "" if you don't have one.
legacy_file_pathThe path to the legacy file holding all of the players that have this rank. +Should be set in New(), since it has a non-constant compile-time value.
rank_titleThe name of the player rank in the database. +This NEEDS to be set by subtypes, otherwise you WILL run into severe +issues.

Procs

add_playerHandles adding this rank to a player by their ckey. This is only intended to +be used for handling the in-game portion of adding this rank, and not to +save this change anywhere. That should be handled by the caller.
add_player_legacyHandles adding this rank to a player using the legacy system, updating the +legacy config file in the process.
clear_existing_rank_dataSimple proc for subtypes to override for their own handling of clearing any +lists that need to be cleared before loading the player rank data.
get_ckeys_for_legacy_saveSimple proc for subtypes to override for their own handling of obtaining +a list of ckeys to save during a legacy save.
get_ckeys_to_migrateHandles returning a list of all the legacy ckeys that should be migrated +from the legacy system to the database one.
load_from_queryHandles loading the players that have this rank from an already-executed +database query.
load_legacyHandles loading the players that have this rank from its legacy config file.
remove_playerHandles removing this rank from a player by their ckey. This is only +intended to be used for handling the in-game portion of removing this rank, +and not to save this change anywhere. That should be handled by the caller.
remove_player_legacyHandles removing this rank from a player using the legacy system, updating +the legacy config file in the process.
save_legacyHandles saving the players that have this rank using its legacy config file.

Var Details

legacy_file_header

The header for the legacy file, if any. +Leave as "" if you don't have one.

legacy_file_path

The path to the legacy file holding all of the players that have this rank. +Should be set in New(), since it has a non-constant compile-time value.

rank_title

The name of the player rank in the database. +This NEEDS to be set by subtypes, otherwise you WILL run into severe +issues.

Proc Details

add_player

Handles adding this rank to a player by their ckey. This is only intended to +be used for handling the in-game portion of adding this rank, and not to +save this change anywhere. That should be handled by the caller.

+

DO NOT FORGET TO ADD A IsAdminAdvancedProcCall() CHECK SO THAT ADMINS +CAN'T JUST USE THAT TO SKIP PERMISSION CHECKS!!!

add_player_legacy

Handles adding this rank to a player using the legacy system, updating the +legacy config file in the process.

+

Don't override this, everything should be handled from add_player(), +this is mostly just a helper for convenience.

+

Arguments:

+

clear_existing_rank_data

Simple proc for subtypes to override for their own handling of clearing any +lists that need to be cleared before loading the player rank data.

+

DO NOT FORGET TO ADD A IsAdminAdvancedProcCall() CHECK SO THAT ADMINS +CAN'T JUST ELEVATE PERMISSIONS TO CLEAR RANK DATA AND SCREW YOU OVER!!!

get_ckeys_for_legacy_save

Simple proc for subtypes to override for their own handling of obtaining +a list of ckeys to save during a legacy save.

+

DO NOT FORGET TO ADD A IsAdminAdvancedProcCall() CHECK SO THAT ADMINS +CAN'T JUST ELEVATE PERMISSIONS TO ADD THEMSELVES TO A LEGACY SAVE!!!

get_ckeys_to_migrate

Handles returning a list of all the legacy ckeys that should be migrated +from the legacy system to the database one.

+

Returns a list of ckeys as strings.

load_from_query

Handles loading the players that have this rank from an already-executed +database query.

+

Mostly just a helper to simplify the logic of the subsystem.

load_legacy

Handles loading the players that have this rank from its legacy config file.

+

Don't override this, use clear_existing_rank_data() to clear up anything +that needs to be cleared/initialized before loading the rank, and +add_player() for actually giving the rank to the ckey in-game.

remove_player

Handles removing this rank from a player by their ckey. This is only +intended to be used for handling the in-game portion of removing this rank, +and not to save this change anywhere. That should be handled by the caller.

+

DO NOT FORGET TO ADD A IsAdminAdvancedProcCall() CHECK SO THAT ADMINS +CAN'T JUST USE THAT TO SKIP PERMISSION CHECKS!!!

remove_player_legacy

Handles removing this rank from a player using the legacy system, updating +the legacy config file in the process.

+

Don't override this, everything should be handled from remove_player() +and save_legacy(), this is mostly just a helper for convenience.

+

Arguments:

+

save_legacy

Handles saving the players that have this rank using its legacy config file.

+

Don't override this, use get_ckeys_for_legacy_save() if you need to filter +the list of ckeys that will get saved.

\ No newline at end of file diff --git a/datum/pod_style.html b/datum/pod_style.html new file mode 100644 index 0000000000000..1492c3a28ea87 --- /dev/null +++ b/datum/pod_style.html @@ -0,0 +1,2 @@ +/datum/pod_style - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pod_style

Datum holding information about pod type visuals, VFX, name and description +These are not created anywhere and thus should not be assigned procs, only being used as data storage

Vars

decal_iconDecals added to this pod, if any
descDescription assigned to droppods of this style
glow_colorColor that this pod glows when landing
has_doorWhenever this pod should have a door overlay added to it. Uses [icon_state]_door sprite
icon_stateBase icon state assigned to this pod
idID for TGUI data
nameName that pods of this style will be named by default
rubble_typeType of rubble that this pod creates upon landing
shapeDetermines if this pod can use animations/masking/overlays
ui_nameName that is displayed to admins in pod config panel

Var Details

decal_icon

Decals added to this pod, if any

desc

Description assigned to droppods of this style

glow_color

Color that this pod glows when landing

has_door

Whenever this pod should have a door overlay added to it. Uses [icon_state]_door sprite

icon_state

Base icon state assigned to this pod

id

ID for TGUI data

name

Name that pods of this style will be named by default

rubble_type

Type of rubble that this pod creates upon landing

shape

Determines if this pod can use animations/masking/overlays

ui_name

Name that is displayed to admins in pod config panel

\ No newline at end of file diff --git a/datum/point.html b/datum/point.html new file mode 100644 index 0000000000000..4512f6aba11ad --- /dev/null +++ b/datum/point.html @@ -0,0 +1 @@ +/datum/point - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

point

A precise point on the map in absolute pixel locations based on world.icon_size. Pixels are FROM THE EDGE OF THE MAP!

Procs

NewFirst argument can also be a /datum/position or /atom.

Proc Details

New

First argument can also be a /datum/position or /atom.

\ No newline at end of file diff --git a/datum/point/vector.html b/datum/point/vector.html new file mode 100644 index 0000000000000..efdf26a5cd352 --- /dev/null +++ b/datum/point/vector.html @@ -0,0 +1 @@ +/datum/point/vector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

vector

Vars

mpxCalculated x movement amounts to prevent having to do trig every step.
mpyCalculated y movement amounts to prevent having to do trig every step.
speedPixels per iteration

Procs

set_angleCalculations use "byond angle" where north is 0 instead of 90, and south is 180 instead of 270.
set_locationSame effect as initiliaze_location, but without setting the starting_x/y/z

Var Details

mpx

Calculated x movement amounts to prevent having to do trig every step.

mpy

Calculated y movement amounts to prevent having to do trig every step.

speed

Pixels per iteration

Proc Details

set_angle

Calculations use "byond angle" where north is 0 instead of 90, and south is 180 instead of 270.

set_location

Same effect as initiliaze_location, but without setting the starting_x/y/z

\ No newline at end of file diff --git a/datum/point_of_interest.html b/datum/point_of_interest.html new file mode 100644 index 0000000000000..3fd8a40098a45 --- /dev/null +++ b/datum/point_of_interest.html @@ -0,0 +1 @@ +/datum/point_of_interest - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

point_of_interest

Simple helper datum for points of interest.

Vars

poi_typeThe type of POI this datum references.
targetThe specific point of interest this datum references. This won't hard del as the POI element will be removed from the target when it qdels, which will clear this reference.

Procs

compare_toComparison proc used to sort POIs. Override to implement logic used doing binary sort insertions.
validateValidates the POI. Returns TRUE if the POI has valid state, returns FALSE if the POI has invalid state.

Var Details

poi_type

The type of POI this datum references.

target

The specific point of interest this datum references. This won't hard del as the POI element will be removed from the target when it qdels, which will clear this reference.

Proc Details

compare_to

Comparison proc used to sort POIs. Override to implement logic used doing binary sort insertions.

validate

Validates the POI. Returns TRUE if the POI has valid state, returns FALSE if the POI has invalid state.

\ No newline at end of file diff --git a/datum/point_of_interest/mob_poi.html b/datum/point_of_interest/mob_poi.html new file mode 100644 index 0000000000000..2adffea019f34 --- /dev/null +++ b/datum/point_of_interest/mob_poi.html @@ -0,0 +1 @@ +/datum/point_of_interest/mob_poi - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mob_poi

Procs

compare_toMob POIs are sorted by a simple priority list depending on their type. When their type priority is identical, they're sub-sorted by name.
get_type_sort_priorityPriority list broadly stolen from /proc/sortmobs(). Lower numbers are higher priorities when sorted and appear closer to the top or start of lists.
validateValidation for mobs is expanded to invalidate stealthmins and /mob/dead/new_player as POIs.

Proc Details

compare_to

Mob POIs are sorted by a simple priority list depending on their type. When their type priority is identical, they're sub-sorted by name.

get_type_sort_priority

Priority list broadly stolen from /proc/sortmobs(). Lower numbers are higher priorities when sorted and appear closer to the top or start of lists.

validate

Validation for mobs is expanded to invalidate stealthmins and /mob/dead/new_player as POIs.

\ No newline at end of file diff --git a/datum/poll_option.html b/datum/poll_option.html new file mode 100644 index 0000000000000..dcb261fbb22ac --- /dev/null +++ b/datum/poll_option.html @@ -0,0 +1,4 @@ +/datum/poll_option - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

poll_option

Datum which holds details of a poll option loaded from the database.

+

Used to minimize the need for querying this data every time it's needed.

Vars

default_percentage_calcHint for statbus, not used by the game; If this option should be included by default when calculating the resulting percentages of all options for this poll
desc_maxOptional for rating polls, description shown next to the maximum value
desc_midOptional for rating polls, description shown next to the rounded whole middle value
desc_minOptional for rating polls, description shown next to the minimum value
max_valFor rating polls, the maximum selectable value allowed; Supported value range is -2147483648 to 2147483647
min_valFor rating polls, the minimum selectable value allowed; Supported value range is -2147483648 to 2147483647
option_idTable id of this option, will be null until poll has been created.
parent_pollReference to the poll this option belongs to
textDescription/name of this option

Procs

delete_optionSets a poll option and its votes as deleted in the database then deletes its datum.
save_optionInserts or updates a poll option to the database.

Var Details

default_percentage_calc

Hint for statbus, not used by the game; If this option should be included by default when calculating the resulting percentages of all options for this poll

desc_max

Optional for rating polls, description shown next to the maximum value

desc_mid

Optional for rating polls, description shown next to the rounded whole middle value

desc_min

Optional for rating polls, description shown next to the minimum value

max_val

For rating polls, the maximum selectable value allowed; Supported value range is -2147483648 to 2147483647

min_val

For rating polls, the minimum selectable value allowed; Supported value range is -2147483648 to 2147483647

option_id

Table id of this option, will be null until poll has been created.

parent_poll

Reference to the poll this option belongs to

text

Description/name of this option

Proc Details

delete_option

Sets a poll option and its votes as deleted in the database then deletes its datum.

save_option

Inserts or updates a poll option to the database.

+

Uses INSERT ON DUPLICATE KEY UPDATE to handle both inserting and updating at once. +The list of columns and values is built dynamically to avoid excess data being sent when not a rating type poll.

\ No newline at end of file diff --git a/datum/poll_question.html b/datum/poll_question.html new file mode 100644 index 0000000000000..99cb2067577a3 --- /dev/null +++ b/datum/poll_question.html @@ -0,0 +1,13 @@ +/datum/poll_question - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

poll_question

Datum which holds details of a running poll loaded from the database and supplementary info.

+

Used to minimize the need for querying this data every time it's needed.

Vars

admin_onlyHides the poll from any client without a holder datum.
allow_revotingAllows a player to change their vote to a poll they've already voted on, off by default.
created_byCkey of the poll's original author
dont_showHint for statbus, not used by the game; Stops the results of a poll from being displayed until the end_datetime is reached.
durationHolds duration data when creating or editing a poll and refreshing the poll creation window.
edit_readyIndicates if a poll has been submitted or loaded from the DB so the management panel will open with edit functions.
end_datetimeDate and time the poll will run until, timestamp format is YYYY-MM-DD HH:MM:SS.
future_pollIndicates a poll is set to not start in the future, still visible for editing but not voting on.
intervalHolds interval data when creating or editing a poll and refreshing the poll creation window.
optionsReference list of the options for this poll, not used by text response polls.
options_allowedThe number of responses allowed in a multiple-choice poll, more can be selected but won't be recorded.
poll_idTable id of this poll, will be null until poll has been created.
poll_typeThe type of poll to be created, must be POLLTYPE_OPTION, POLLTYPE_TEXT, POLLTYPE_RATING, POLLTYPE_MULTI or POLLTYPE_IRV.
poll_votesCount of how many players have voted or responded to this poll.
questionThe title text of the poll, shows up on the list of polls.
start_datetimeDate and time the poll opens, timestamp format is YYYY-MM-DD HH:MM:SS.
subtitleSupplementary text displayed only when responding to a poll.

Procs

clear_poll_votesDeletes all votes or text replies for this poll, depending on its type.
delete_pollSets a poll and its associated data as deleted in the database.
save_all_optionsSaves all options of a poll to the database.
save_poll_dataInserts or updates a poll question to the database.

Var Details

admin_only

Hides the poll from any client without a holder datum.

allow_revoting

Allows a player to change their vote to a poll they've already voted on, off by default.

created_by

Ckey of the poll's original author

dont_show

Hint for statbus, not used by the game; Stops the results of a poll from being displayed until the end_datetime is reached.

duration

Holds duration data when creating or editing a poll and refreshing the poll creation window.

edit_ready

Indicates if a poll has been submitted or loaded from the DB so the management panel will open with edit functions.

end_datetime

Date and time the poll will run until, timestamp format is YYYY-MM-DD HH:MM:SS.

future_poll

Indicates a poll is set to not start in the future, still visible for editing but not voting on.

interval

Holds interval data when creating or editing a poll and refreshing the poll creation window.

options

Reference list of the options for this poll, not used by text response polls.

options_allowed

The number of responses allowed in a multiple-choice poll, more can be selected but won't be recorded.

poll_id

Table id of this poll, will be null until poll has been created.

poll_type

The type of poll to be created, must be POLLTYPE_OPTION, POLLTYPE_TEXT, POLLTYPE_RATING, POLLTYPE_MULTI or POLLTYPE_IRV.

poll_votes

Count of how many players have voted or responded to this poll.

question

The title text of the poll, shows up on the list of polls.

start_datetime

Date and time the poll opens, timestamp format is YYYY-MM-DD HH:MM:SS.

subtitle

Supplementary text displayed only when responding to a poll.

Proc Details

clear_poll_votes

Deletes all votes or text replies for this poll, depending on its type.

delete_poll

Sets a poll and its associated data as deleted in the database.

+

Calls the procedure set_poll_deleted to set the deleted column to 1 for each row in the poll_ tables matching the poll id used. +Then deletes each option datum and finally the poll itself.

save_all_options

Saves all options of a poll to the database.

+

Saves all the created options for a poll when it's submitted to the DB for the first time and associated an id with the options. +Insertion and id querying for each option is done separately to ensure data integrity; this is less performant, but not significantly. +Using MassInsert() would mean having to query a list of rows by poll_id or matching by fields afterwards, which doesn't guarantee accuracy.

save_poll_data

Inserts or updates a poll question to the database.

+

Uses INSERT ON DUPLICATE KEY UPDATE to handle both inserting and updating at once. +The start and end datetimes and poll id for new polls is then retrieved for the poll datum. +Arguments:

+
\ No newline at end of file diff --git a/datum/pollutant.html b/datum/pollutant.html new file mode 100644 index 0000000000000..dc122839639b2 --- /dev/null +++ b/datum/pollutant.html @@ -0,0 +1,5 @@ +/datum/pollutant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pollutant

Vars

alphaWhat is it desired alpha?
colorBelow are variables for appearance +What color will the pollutant be, can be left null
descriptorDescriptor of the smell
nameName of the pollutant, if null will be treated as abstract and wont be initialized as singleton
pollutant_flagsFlags of the pollutant, determine whether it has an appearance, smell, touch act, breath act
scentScent of the smell
smell_intensityFILL THE BELOW OUT IF ITS SMELLABLE! +How intense is one unit of the pollutant for smell purposes?
thicknessHow "thick" is it, the thicker the quicker it gets to desired alpha and is stronger than other pollutants in blending appearance

Procs

breathe_actWhen a carbon mob breathes in the pollutant
touch_actWhen a pollutant touches an unprotected carbon mob

Var Details

alpha

What is it desired alpha?

color

Below are variables for appearance +What color will the pollutant be, can be left null

descriptor

Descriptor of the smell

name

Name of the pollutant, if null will be treated as abstract and wont be initialized as singleton

pollutant_flags

Flags of the pollutant, determine whether it has an appearance, smell, touch act, breath act

scent

Scent of the smell

smell_intensity

FILL THE BELOW OUT IF ITS SMELLABLE! +How intense is one unit of the pollutant for smell purposes?

thickness

How "thick" is it, the thicker the quicker it gets to desired alpha and is stronger than other pollutants in blending appearance

Proc Details

breathe_act

When a carbon mob breathes in the pollutant

touch_act

When a pollutant touches an unprotected carbon mob

\ No newline at end of file diff --git a/datum/pollution.html b/datum/pollution.html new file mode 100644 index 0000000000000..feef94465aa20 --- /dev/null +++ b/datum/pollution.html @@ -0,0 +1 @@ +/datum/pollution - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pollution

Vars

heightHeight of the pollution, used to create a sandpiling effect
managed_overlayThe vis content we are managing
my_turfReference to the turf we're on
pollutantsList of all pollutant types to their amount
total_amountTotal amount

Procs

get_overlayProbably the most costly thing happening here
smell_actWhen a user smells this pollution

Var Details

height

Height of the pollution, used to create a sandpiling effect

managed_overlay

The vis content we are managing

my_turf

Reference to the turf we're on

pollutants

List of all pollutant types to their amount

total_amount

Total amount

Proc Details

get_overlay

Probably the most costly thing happening here

smell_act

When a user smells this pollution

\ No newline at end of file diff --git a/datum/port.html b/datum/port.html new file mode 100644 index 0000000000000..7005902eb6e4a --- /dev/null +++ b/datum/port.html @@ -0,0 +1,9 @@ +/datum/port - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Component Port

A port used by a component. Connects to other ports.

Vars

colorThe port color. If unset, appears as blue.
connected_componentThe component this port is attached to
datatypeThe port type. Ports can only connect to each other if the type matches
datatype_handlerThe default port type. Stores the original datatype of the port set on Initialize.
nameName of the port. Used when displaying the port.
orderThe weight of the port. Determines the
valueThe value that's currently in the port. It's of the above type.

Procs

datatype_ui_dataReturns the data from the datatype
disconnect_allDisconnects a port from all other ports.
null_valueSignal handler proc to null the input if an atom is deleted. An update is not sent because this was not set by anything.
on_value_qdeletingDo our part in setting all source references anywhere to null.
set_datatypeSets the datatype of the port.
set_valueSets the port's value to value. +Casts to the port's datatype (e.g. number -> string), and assumes this can be done.

Var Details

color

The port color. If unset, appears as blue.

connected_component

The component this port is attached to

datatype

The port type. Ports can only connect to each other if the type matches

datatype_handler

The default port type. Stores the original datatype of the port set on Initialize.

name

Name of the port. Used when displaying the port.

order

The weight of the port. Determines the

value

The value that's currently in the port. It's of the above type.

Proc Details

datatype_ui_data

Returns the data from the datatype

disconnect_all

Disconnects a port from all other ports.

+

Called by /obj/item/circuit_component whenever it is disconnected from +an integrated circuit

null_value

Signal handler proc to null the input if an atom is deleted. An update is not sent because this was not set by anything.

on_value_qdeleting

Do our part in setting all source references anywhere to null.

set_datatype

Sets the datatype of the port.

+

Arguments:

+

set_value

Sets the port's value to value. +Casts to the port's datatype (e.g. number -> string), and assumes this can be done.

\ No newline at end of file diff --git a/datum/port/input.html b/datum/port/input.html new file mode 100644 index 0000000000000..fc57d2409114a --- /dev/null +++ b/datum/port/input.html @@ -0,0 +1,15 @@ +/datum/port/input - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Input Port

An input port remembers connected output ports.

+

Registers the PORT_SET_VALUE signal on each connected port, +and keeps its value equal to the last such signal received.

Vars

connected_portsThe ports this port is wired to.
triggerThe proc that this trigger will call on the connected component.

Procs

can_receive_from_datatypeDetermines if a datatype is compatible with another port of a different type.
check_typeHandle type updates from connected output ports, breaking uncastable connections.
connectConnects an input port to an output port.
handle_manual_inputDetermines if a datatype is compatible with another port of a different type.
receive_valueMirror value updates from connected output ports after an input_receive_delay.
set_inputUpdates the value of the input and calls input_received on the connected component

Var Details

connected_ports

The ports this port is wired to.

trigger

The proc that this trigger will call on the connected component.

Proc Details

can_receive_from_datatype

Determines if a datatype is compatible with another port of a different type.

+

Arguments:

+

check_type

Handle type updates from connected output ports, breaking uncastable connections.

connect

Connects an input port to an output port.

+

Arguments:

+

handle_manual_input

Determines if a datatype is compatible with another port of a different type.

+

Arguments:

+

receive_value

Mirror value updates from connected output ports after an input_receive_delay.

set_input

Updates the value of the input and calls input_received on the connected component

\ No newline at end of file diff --git a/datum/port/output.html b/datum/port/output.html new file mode 100644 index 0000000000000..fec1c3a403432 --- /dev/null +++ b/datum/port/output.html @@ -0,0 +1,2 @@ +/datum/port/output - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Output Port

An output port that many input ports can connect to

+

Sends a signal whenever the output value is changed

\ No newline at end of file diff --git a/datum/portrait_picker.html b/datum/portrait_picker.html new file mode 100644 index 0000000000000..869c3fce253ea --- /dev/null +++ b/datum/portrait_picker.html @@ -0,0 +1,3 @@ +/datum/portrait_picker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

portrait_picker

Portrait picker!!

+

It's a tgui window that lets you look through all the portraits, and choose one as your AI. +very similar to centcom_podlauncher in terms of how this is coded, so i kept a lot of comments from it

Vars

holderClient of whoever is using this datum
matching_paintingsStores the result of the search.
search_modeWhether the search function will check the title of the painting or the author's name.
search_stringThe last input in the search tab.

Var Details

holder

Client of whoever is using this datum

matching_paintings

Stores the result of the search.

search_mode

Whether the search function will check the title of the painting or the author's name.

search_string

The last input in the search tab.

\ No newline at end of file diff --git a/datum/powernet.html b/datum/powernet.html new file mode 100644 index 0000000000000..b7315917ca770 --- /dev/null +++ b/datum/powernet.html @@ -0,0 +1 @@ +/datum/powernet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

powernet

Procs

add_cable... delete it
add_machine... delete it

Proc Details

add_cable

... delete it

add_machine

... delete it

\ No newline at end of file diff --git a/datum/preference.html b/datum/preference.html new file mode 100644 index 0000000000000..5309a28ba0692 --- /dev/null +++ b/datum/preference.html @@ -0,0 +1,85 @@ +/datum/preference - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

preference

Represents an individual preference.

Vars

abstract_typeDo not instantiate if type matches this.
can_randomizeIf set, will be available to randomize, but only if the preference +is for PREFERENCE_CHARACTER.
categoryThe category of preference, for use by the PreferencesMenu. +This isn't used for anything other than as a key for UI data. +It is up to the PreferencesMenu UI itself to interpret it.
priorityThe priority of when to apply this preference. +Used for when you need to rely on another preference.
randomize_by_defaultIf randomizable (PREFERENCE_CHARACTER and can_randomize), whether +or not to enable randomization by default. +This doesn't mean it'll always be random, but rather if a player +DOES have random body on, will this already be randomized?
relevant_body_markingsIf the selected species has this in its /datum/species/body_markings, +will show the feature as selectable.
relevant_external_organIf the selected species has this in its /datum/species/var/external_organs, +will show the feature as selectable.
relevant_head_flagIf the selected species has this head_flag by default, +will show the feature as selectable.
relevant_inherent_traitIf the selected species has this in its /datum/species/inherent_traits, +will show the feature as selectable.
relevant_mutant_bodypartIf the selected species has this in its /datum/species/mutant_bodyparts, +will show the feature as selectable.
savefile_identifierWhat savefile should this preference be read from? +Valid values are PREFERENCE_CHARACTER and PREFERENCE_PLAYER. +See the documentation in code/__DEFINES/preferences.dm.
savefile_keyThe key inside the savefile to use. +This is also sent to the UI. +Once you pick this, don't change it.

Procs

apply_to_clientApply this preference onto the given client. +Called when the savefile_identifier == PREFERENCE_PLAYER.
apply_to_client_updatedFired when the preference is updated. +Calls apply_to_client by default, but can be overridden.
apply_to_humanApply this preference onto the given human. +Must be overriden by subtypes. +Called when the savefile_identifier == PREFERENCE_CHARACTER.
compile_constant_dataReturns data compiled into the preferences JSON asset
compile_ui_dataReturns data to be sent to users in the menu
create_default_valueProduce a default, potentially random value for when no value for this +preference is found in the savefile. +Either this or create_informed_default_value must be overriden by subtypes.
create_informed_default_valueProduce a default, potentially random value for when no value for this +preference is found in the savefile. +Unlike create_default_value(), will provide the preferences object if you +need to use it. +If not overriden, will call create_default_value() instead.
create_random_valueProduce a random value for the purposes of character randomization. +Will just create a default value by default.
deserializeCalled on the saved input when retrieving. +Also called by the value sent from the user through UI. Do not trust it. +Input is the value inside the savefile, output is to tell other code +what the value is. +This is useful either for more optimal data saving or for migrating +older data. +Must be overridden by subtypes. +Can return null if no value was found.
get_spritesheet_keyReturns the key that will be used in the spritesheet for a given value.
included_in_randomization_flagsGiven randomization flags, will return whether or not this preference should be randomized.
is_accessibleReturns whether or not this preference is accessible. +If FALSE, will not show in the UI and will not be editable (by update_preference).
is_randomizableReturns whether or not a preference can be randomized.
is_validChecks that a given value is valid. +Must be overriden by subtypes. +Any type can be passed through.
readGiven a savefile, return either the saved data or an acceptable default. +This will write to the savefile if a value was not found with the new value.
serializeCalled on the input while saving. +Input is the current value, output is what to save in the savefile.
should_show_on_pageReturns whether or not, given the PREFERENCE_TAB_*, this preference should +appear.
writeGiven a savefile, writes the inputted value. +Returns TRUE for a successful application. +Return FALSE if it is invalid.

Var Details

abstract_type

Do not instantiate if type matches this.

can_randomize

If set, will be available to randomize, but only if the preference +is for PREFERENCE_CHARACTER.

category

The category of preference, for use by the PreferencesMenu. +This isn't used for anything other than as a key for UI data. +It is up to the PreferencesMenu UI itself to interpret it.

priority

The priority of when to apply this preference. +Used for when you need to rely on another preference.

randomize_by_default

If randomizable (PREFERENCE_CHARACTER and can_randomize), whether +or not to enable randomization by default. +This doesn't mean it'll always be random, but rather if a player +DOES have random body on, will this already be randomized?

relevant_body_markings

If the selected species has this in its /datum/species/body_markings, +will show the feature as selectable.

relevant_external_organ

If the selected species has this in its /datum/species/var/external_organs, +will show the feature as selectable.

relevant_head_flag

If the selected species has this head_flag by default, +will show the feature as selectable.

relevant_inherent_trait

If the selected species has this in its /datum/species/inherent_traits, +will show the feature as selectable.

relevant_mutant_bodypart

If the selected species has this in its /datum/species/mutant_bodyparts, +will show the feature as selectable.

savefile_identifier

What savefile should this preference be read from? +Valid values are PREFERENCE_CHARACTER and PREFERENCE_PLAYER. +See the documentation in code/__DEFINES/preferences.dm.

savefile_key

The key inside the savefile to use. +This is also sent to the UI. +Once you pick this, don't change it.

Proc Details

apply_to_client

Apply this preference onto the given client. +Called when the savefile_identifier == PREFERENCE_PLAYER.

apply_to_client_updated

Fired when the preference is updated. +Calls apply_to_client by default, but can be overridden.

apply_to_human

Apply this preference onto the given human. +Must be overriden by subtypes. +Called when the savefile_identifier == PREFERENCE_CHARACTER.

compile_constant_data

Returns data compiled into the preferences JSON asset

compile_ui_data

Returns data to be sent to users in the menu

create_default_value

Produce a default, potentially random value for when no value for this +preference is found in the savefile. +Either this or create_informed_default_value must be overriden by subtypes.

create_informed_default_value

Produce a default, potentially random value for when no value for this +preference is found in the savefile. +Unlike create_default_value(), will provide the preferences object if you +need to use it. +If not overriden, will call create_default_value() instead.

create_random_value

Produce a random value for the purposes of character randomization. +Will just create a default value by default.

deserialize

Called on the saved input when retrieving. +Also called by the value sent from the user through UI. Do not trust it. +Input is the value inside the savefile, output is to tell other code +what the value is. +This is useful either for more optimal data saving or for migrating +older data. +Must be overridden by subtypes. +Can return null if no value was found.

get_spritesheet_key

Returns the key that will be used in the spritesheet for a given value.

included_in_randomization_flags

Given randomization flags, will return whether or not this preference should be randomized.

is_accessible

Returns whether or not this preference is accessible. +If FALSE, will not show in the UI and will not be editable (by update_preference).

is_randomizable

Returns whether or not a preference can be randomized.

is_valid

Checks that a given value is valid. +Must be overriden by subtypes. +Any type can be passed through.

read

Given a savefile, return either the saved data or an acceptable default. +This will write to the savefile if a value was not found with the new value.

serialize

Called on the input while saving. +Input is the current value, output is what to save in the savefile.

should_show_on_page

Returns whether or not, given the PREFERENCE_TAB_*, this preference should +appear.

write

Given a savefile, writes the inputted value. +Returns TRUE for a successful application. +Return FALSE if it is invalid.

\ No newline at end of file diff --git a/datum/preference/choiced.html b/datum/preference/choiced.html new file mode 100644 index 0000000000000..da46a21f62e0e --- /dev/null +++ b/datum/preference/choiced.html @@ -0,0 +1,22 @@ +/datum/preference/choiced - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

choiced

A preference that is a choice of one option among a fixed set. +Used for preferences such as clothing.

Vars

main_feature_nameIf the preference is a main feature (PREFERENCE_CATEGORY_FEATURES or PREFERENCE_CATEGORY_CLOTHING) +this is the name of the feature that will be presented.
should_generate_iconsIf this is TRUE, an icon will be generated for every value. +If you implement this, you must implement icon_for(value) for every possible value.

Procs

get_choicesReturns a list of every possible value. +The first time this is called, will run init_values(). +Return value can be in the form of:
get_choices_serializedReturns a list of every possible value, serialized.
icon_forWhen should_generate_icons is TRUE, this proc is called for every value. +It can return either an icon or a typepath to an atom to create.
init_possible_valuesReturns a list of every possible value. +This must be overriden by /datum/preference/choiced subtypes. +If should_generate_icons is TRUE, then you will also need to implement icon_for(value) +for every possible value.

Var Details

main_feature_name

If the preference is a main feature (PREFERENCE_CATEGORY_FEATURES or PREFERENCE_CATEGORY_CLOTHING) +this is the name of the feature that will be presented.

should_generate_icons

If this is TRUE, an icon will be generated for every value. +If you implement this, you must implement icon_for(value) for every possible value.

Proc Details

get_choices

Returns a list of every possible value. +The first time this is called, will run init_values(). +Return value can be in the form of:

+

get_choices_serialized

Returns a list of every possible value, serialized.

icon_for

When should_generate_icons is TRUE, this proc is called for every value. +It can return either an icon or a typepath to an atom to create.

init_possible_values

Returns a list of every possible value. +This must be overriden by /datum/preference/choiced subtypes. +If should_generate_icons is TRUE, then you will also need to implement icon_for(value) +for every possible value.

\ No newline at end of file diff --git a/datum/preference/choiced/digitigrade_legs.html b/datum/preference/choiced/digitigrade_legs.html new file mode 100644 index 0000000000000..428945987fafc --- /dev/null +++ b/datum/preference/choiced/digitigrade_legs.html @@ -0,0 +1,6 @@ +/datum/preference/choiced/digitigrade_legs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

digitigrade_legs

Legs

Procs

is_usableActually rendered. Slimmed down version of the logic in is_available() that actually works when spawning or drawing the character.

Proc Details

is_usable

Actually rendered. Slimmed down version of the logic in is_available() that actually works when spawning or drawing the character.

+

Returns if feature value is usable.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/preference/choiced/genital.html b/datum/preference/choiced/genital.html new file mode 100644 index 0000000000000..6a48134bcdc96 --- /dev/null +++ b/datum/preference/choiced/genital.html @@ -0,0 +1,7 @@ +/datum/preference/choiced/genital - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

genital

Vars

default_accessory_typePath to the default sprite accessory

Procs

is_visibleActually rendered. Slimmed down version of the logic in is_available() that actually works when spawning or drawing the character.

Var Details

default_accessory_type

Path to the default sprite accessory

Proc Details

is_visible

Actually rendered. Slimmed down version of the logic in is_available() that actually works when spawning or drawing the character.

+

Returns if feature is visible.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/preference/choiced/mutant_choice.html b/datum/preference/choiced/mutant_choice.html new file mode 100644 index 0000000000000..172a6707b23c4 --- /dev/null +++ b/datum/preference/choiced/mutant_choice.html @@ -0,0 +1,16 @@ +/datum/preference/choiced/mutant_choice - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mutant_choice

Base class for choices character features, mainly mutant body parts

Vars

crop_areaA list of the four co-ordinates to crop to, if generate_icons is enabled. Useful for icons whose main contents are smaller than 32x32. Please keep it square.
default_accessory_typePath to the default sprite accessory
generate_iconsGenerates icons from the provided mutant bodypart for use in icon-enabled selection boxes in the prefs window.
greyscale_colorA color to apply to the icon if it's greyscale, and generate_icons is enabled.
type_to_checkPath to the corresponding /datum/preference/toggle to check if part is enabled.

Procs

apply_to_humanApply this preference onto the given human. +May be overriden by subtypes. +Called when the savefile_identifier == PREFERENCE_CHARACTER.
generate_iconGenerates and allows for post-processing on icons, such as greyscaling and cropping. This is cached.
generate_icon_stateAllows for dynamic assigning of icon states.
is_part_enabledIs this part enabled by the player?
is_visibleActually rendered. Slimmed down version of the logic in is_available() that actually works when spawning or drawing the character.

Var Details

crop_area

A list of the four co-ordinates to crop to, if generate_icons is enabled. Useful for icons whose main contents are smaller than 32x32. Please keep it square.

default_accessory_type

Path to the default sprite accessory

generate_icons

Generates icons from the provided mutant bodypart for use in icon-enabled selection boxes in the prefs window.

greyscale_color

A color to apply to the icon if it's greyscale, and generate_icons is enabled.

type_to_check

Path to the corresponding /datum/preference/toggle to check if part is enabled.

Proc Details

apply_to_human

Apply this preference onto the given human. +May be overriden by subtypes. +Called when the savefile_identifier == PREFERENCE_CHARACTER.

+

Returns whether the bodypart is actually visible.

generate_icon

Generates and allows for post-processing on icons, such as greyscaling and cropping. This is cached.

generate_icon_state

Allows for dynamic assigning of icon states.

is_part_enabled

Is this part enabled by the player?

+

Arguments:

+

is_visible

Actually rendered. Slimmed down version of the logic in is_available() that actually works when spawning or drawing the character.

+

Returns TRUE if feature is visible.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/preference/loadout.html b/datum/preference/loadout.html new file mode 100644 index 0000000000000..4bbb060851d9c --- /dev/null +++ b/datum/preference/loadout.html @@ -0,0 +1,4 @@ +/datum/preference/loadout - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

loadout

Procs

sanitize_loadout_listRemoves all invalid paths from loadout lists. +This is a general sanitization for preference loading.

Proc Details

sanitize_loadout_list

Removes all invalid paths from loadout lists. +This is a general sanitization for preference loading.

+

Returns a list, or null if empty

\ No newline at end of file diff --git a/datum/preference/name.html b/datum/preference/name.html new file mode 100644 index 0000000000000..adbbc434941db --- /dev/null +++ b/datum/preference/name.html @@ -0,0 +1 @@ +/datum/preference/name - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

name

A preference for a name. Used not just for normal names, but also for clown names, etc.

Vars

allow_numbersWhether or not to allow numbers in the person's name
explanationThe display name when showing on the "other names" panel
groupThese will be grouped together on the preferences menu
relevant_jobIf the highest priority job matches this, will prioritize this name in the UI

Var Details

allow_numbers

Whether or not to allow numbers in the person's name

explanation

The display name when showing on the "other names" panel

group

These will be grouped together on the preferences menu

relevant_job

If the highest priority job matches this, will prioritize this name in the UI

\ No newline at end of file diff --git a/datum/preference/numeric.html b/datum/preference/numeric.html new file mode 100644 index 0000000000000..255710fad0a8d --- /dev/null +++ b/datum/preference/numeric.html @@ -0,0 +1 @@ +/datum/preference/numeric - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

numeric

A numeric preference with a minimum and maximum value

Vars

maximumThe maximum value
minimumThe minimum value
stepThe step of the number, such as 1 for integers or 0.5 for half-steps.

Var Details

maximum

The maximum value

minimum

The minimum value

step

The step of the number, such as 1 for integers or 0.5 for half-steps.

\ No newline at end of file diff --git a/datum/preference/numeric/hair_opacity.html b/datum/preference/numeric/hair_opacity.html new file mode 100644 index 0000000000000..e91bf22597cdf --- /dev/null +++ b/datum/preference/numeric/hair_opacity.html @@ -0,0 +1,7 @@ +/datum/preference/numeric/hair_opacity - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

hair_opacity

Procs

is_visibleActually applied. Slimmed down version of the logic in is_available() that actually works when spawning or drawing the character.

Proc Details

is_visible

Actually applied. Slimmed down version of the logic in is_available() that actually works when spawning or drawing the character.

+

Returns TRUE if feature is visible.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/preference/text.html b/datum/preference/text.html new file mode 100644 index 0000000000000..cce817d82fbfa --- /dev/null +++ b/datum/preference/text.html @@ -0,0 +1 @@ +/datum/preference/text - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

text

A string-based preference accepting arbitrary string values entered by the user, with a maximum length.

Vars

maximum_value_lengthWhat is the maximum length of the value allowed in this field?
should_strip_htmlShould we strip HTML the input or simply restrict it to the maximum_value_length?

Var Details

maximum_value_length

What is the maximum length of the value allowed in this field?

should_strip_html

Should we strip HTML the input or simply restrict it to the maximum_value_length?

\ No newline at end of file diff --git a/datum/preference/text/headshot.html b/datum/preference/text/headshot.html new file mode 100644 index 0000000000000..f77882f6930c8 --- /dev/null +++ b/datum/preference/text/headshot.html @@ -0,0 +1 @@ +/datum/preference/text/headshot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

headshot

Vars

stored_linkAssoc list of ckeys and their link, used to cut down on chat spam

Var Details

Assoc list of ckeys and their link, used to cut down on chat spam

\ No newline at end of file diff --git a/datum/preference/toggle.html b/datum/preference/toggle.html new file mode 100644 index 0000000000000..55968fa292fa8 --- /dev/null +++ b/datum/preference/toggle.html @@ -0,0 +1 @@ +/datum/preference/toggle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

toggle

A preference whose value is always TRUE or FALSE

Vars

default_valueThe default value of the toggle, if create_default_value is not specified

Var Details

default_value

The default value of the toggle, if create_default_value is not specified

\ No newline at end of file diff --git a/datum/preference/toggle/emissive.html b/datum/preference/toggle/emissive.html new file mode 100644 index 0000000000000..3fe0e51ca1ad8 --- /dev/null +++ b/datum/preference/toggle/emissive.html @@ -0,0 +1 @@ +/datum/preference/toggle/emissive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

emissive

Vars

check_modeCan either be TRICOLOR_CHECK_BOOLEAN or TRICOLOR_CHECK_ACCESSORY, the latter of which adding an extra check to make sure the accessory is enabled and a factual accessory, aka not None
type_to_checkPath to the corresponding /datum/preference/toggle to check if part is enabled.

Var Details

check_mode

Can either be TRICOLOR_CHECK_BOOLEAN or TRICOLOR_CHECK_ACCESSORY, the latter of which adding an extra check to make sure the accessory is enabled and a factual accessory, aka not None

type_to_check

Path to the corresponding /datum/preference/toggle to check if part is enabled.

\ No newline at end of file diff --git a/datum/preference/toggle/eye_emissives.html b/datum/preference/toggle/eye_emissives.html new file mode 100644 index 0000000000000..068b13ef09c9f --- /dev/null +++ b/datum/preference/toggle/eye_emissives.html @@ -0,0 +1 @@ +/datum/preference/toggle/eye_emissives - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

eye_emissives

Procs

is_allowedIf eye emissives are actually on.

Proc Details

is_allowed

If eye emissives are actually on.

\ No newline at end of file diff --git a/datum/preference_middleware.html b/datum/preference_middleware.html new file mode 100644 index 0000000000000..5647a023500d8 --- /dev/null +++ b/datum/preference_middleware.html @@ -0,0 +1,7 @@ +/datum/preference_middleware - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

preference_middleware

Preference middleware is code that helps to decentralize complicated preference features.

Vars

action_delegationsMap of ui_act actions -> proc paths to call. +Signature is `(list/params, mob/user) -> TRUE/FALSE. +Return output is the same as ui_act--TRUE if it should update, FALSE if it should not
keyThe key that will be used for get_constant_data(). +If null, will use the typepath minus /datum/preference_middleware.
preferencesThe preferences datum

Procs

apply_to_humanCalled when applying preferences to the mob.
get_character_preferencesMerge this into the result of compile_character_preferences.
get_constant_dataAppend all of these into /datum/asset/json/preferences.
get_ui_assetsAppend all of these into ui_assets
get_ui_dataAppend all of these into ui_data
get_ui_static_dataAppend all of these into ui_static_data
on_new_characterCalled when a character is changed.
post_set_preferenceCalled after every update_preference, returns TRUE if this handled it.
pre_set_preferenceCalled every set_preference, returns TRUE if this handled it.

Var Details

action_delegations

Map of ui_act actions -> proc paths to call. +Signature is `(list/params, mob/user) -> TRUE/FALSE. +Return output is the same as ui_act--TRUE if it should update, FALSE if it should not

key

The key that will be used for get_constant_data(). +If null, will use the typepath minus /datum/preference_middleware.

preferences

The preferences datum

Proc Details

apply_to_human

Called when applying preferences to the mob.

get_character_preferences

Merge this into the result of compile_character_preferences.

get_constant_data

Append all of these into /datum/asset/json/preferences.

get_ui_assets

Append all of these into ui_assets

get_ui_data

Append all of these into ui_data

get_ui_static_data

Append all of these into ui_static_data

on_new_character

Called when a character is changed.

post_set_preference

Called after every update_preference, returns TRUE if this handled it.

pre_set_preference

Called every set_preference, returns TRUE if this handled it.

\ No newline at end of file diff --git a/datum/preference_middleware/blooper.html b/datum/preference_middleware/blooper.html new file mode 100644 index 0000000000000..8922738a010dd --- /dev/null +++ b/datum/preference_middleware/blooper.html @@ -0,0 +1 @@ +/datum/preference_middleware/blooper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blooper

Vars

blooper_cooldownCooldown on requesting a Blooper preview.

Var Details

blooper_cooldown

Cooldown on requesting a Blooper preview.

\ No newline at end of file diff --git a/datum/preference_middleware/languages.html b/datum/preference_middleware/languages.html new file mode 100644 index 0000000000000..a7fb6512c558a --- /dev/null +++ b/datum/preference_middleware/languages.html @@ -0,0 +1,15 @@ +/datum/preference_middleware/languages - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

languages

Middleware to handle languages

Vars

name_to_languageA associative list of language names to their typepath

Procs

give_languageProc that gives a language to a character, granted that they don't already have too many +of them, based on their maximum amount of languages.
initialize_name_to_language(Re-)Initializes the name_to_language associative list, to ensure that it's properly populated.
remove_languageProc that removes a language from a character.

Var Details

name_to_language

A associative list of language names to their typepath

Proc Details

give_language

Proc that gives a language to a character, granted that they don't already have too many +of them, based on their maximum amount of languages.

+

Arguments:

+ +

Returns TRUE all the time, to ensure that the UI is updated.

initialize_name_to_language

(Re-)Initializes the name_to_language associative list, to ensure that it's properly populated.

remove_language

Proc that removes a language from a character.

+

Arguments:

+ +

Returns TRUE all the time, to ensure that the UI is updated.

\ No newline at end of file diff --git a/datum/preference_middleware/loadout.html b/datum/preference_middleware/loadout.html new file mode 100644 index 0000000000000..8ea6dfbbd154a --- /dev/null +++ b/datum/preference_middleware/loadout.html @@ -0,0 +1 @@ +/datum/preference_middleware/loadout - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

loadout

Vars

menuOur currently open greyscaling menu.

Procs

deselect_itemDeselect [deselected_item].
select_itemSelect [path] item to [category_slot] slot.

Var Details

menu

Our currently open greyscaling menu.

Proc Details

deselect_item

Deselect [deselected_item].

select_item

Select [path] item to [category_slot] slot.

\ No newline at end of file diff --git a/datum/preference_middleware/tts.html b/datum/preference_middleware/tts.html new file mode 100644 index 0000000000000..768536d4abd3f --- /dev/null +++ b/datum/preference_middleware/tts.html @@ -0,0 +1 @@ +/datum/preference_middleware/tts - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tts

Middleware to handle quirks

Vars

tts_test_cooldownCooldown on requesting a TTS preview.

Var Details

tts_test_cooldown

Cooldown on requesting a TTS preview.

\ No newline at end of file diff --git a/datum/preferences.html b/datum/preferences.html new file mode 100644 index 0000000000000..8d683a44b9f13 --- /dev/null +++ b/datum/preferences.html @@ -0,0 +1,42 @@ +/datum/preferences - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

preferences

Vars

allow_advanced_colorsAllows the user to freely color his body markings and mutant parts.
alt_job_titlesAlternative job titles stored in preferences. Assoc list, ie. alt_job_titles["Scientist"] = "Cytologist"
augment_limb_stylesList of chosen preferred styles for limb replacements
augmentsList of chosen augmentations. It's an associative list with key name of the slot, pointing to a typepath of an augment define
be_specialList of ROLE_X that the client wants to be eligible for
body_markingsA list of all bodymarkings
character_dataThe savefile relating to character preferences, PREFERENCE_CHARACTER
character_preview_viewA preview of the current character
chosen_augment_slotWhich augment slot we currently have chosen, this is for UI display
current_windowThe current window, PREFERENCE_TAB_* in [code/__DEFINES/preferences.dm]
default_slotEnsures that we always load the last used save, QOL
donator_statusDoes this member have donator status on the server
favorite_outfitsWhat outfit typepaths we've favorited in the SelectEquipment menu
featuresHas to include all information that extra organs from mutant bodyparts would need. (so far only genitals now)
food_preferencesAn assoc list of food types to liked or dislike values. If null or empty, default species tastes are used instead on application. +If a food doesn't exist in this list, it uses the default value.
headshotA photo of the character, visible on close examine
heartedSomeone thought we were nice! We get a little heart in OOC until we join the server past the below time (we can keep it until the end of the round otherwise)
hearted_untilIf we have a hearted commendations, we honor it every time the player loads preferences until this time has been passed
key_bindingsCustom keybindings. Map of keybind names to keyboard inputs. +For example, by default would have "swap_hands" -> list("X")
key_bindings_by_keyCached list of keybindings, mapping keys to actions. +For example, by default would have "X" -> list("swap_hands")
languagesAssociative list, keyed by language typepath, pointing to UNDERSTOOD_LANGUAGE, or UNDERSTOOD_LANGUAGE | SPOKEN_LANGUAGE, for whether we understand or speak the language
last_idLast CID that this client has connected from
last_ipLast IP that this client has connected from
lastchangelogCached changelog size, to detect new changelogs since last join
load_and_saveWhether or not we allow saving/loading. Used for guests, if they're enabled
max_save_slotsThe maximum number of slots we're allowed to contain
middlewareA list of instantiated middleware
mismatched_customizationWill the person see accessories not meant for their species to choose from
mutant_bodypartsA list containing all of our mutant bodparts
mutedBitflags for communications that are muted
pathThe path to the general savefile for this datum
preview_prefPreference of how the preview should show the character.
recently_updated_keysA list of keys that have been updated since the last save.
savefileThe json savefile for this datum
show_body_sizeWhether the user wants to see body size being shown in the preview
tainted_character_profilesIf set to TRUE, will update character_profiles on the next ui_data tick.
value_cacheA cache of preference entries to values. +Used to avoid expensive READ_FILE every time a preference is retrieved.

Procs

add_loadout_itemHelper for slotting in a new loadout item
apply_all_client_preferencesApplies all PREFERENCE_PLAYER preferences
apply_character_randomization_prefsRandomizes the character according to preferences.
apply_prefs_toApplies the given preferences to a human mob.
check_keybindingschecks through keybindings for outdated unbound keys and updates them
get_adjusted_language_holderThis helper proc gets the current species language holder and does any post-processing that's required in one easy to track place. +This proc should always be edited or used when modifying or getting the default languages of a player controlled, unrestricted species, to prevent any errant conflicts.
get_default_randomizationReturns the default randomise variable ouptut
get_highest_priority_jobReturns what job is marked as highest
get_key_bindings_by_keyInverts the key_bindings list such that it can be used for key_bindings_by_key
get_save_data_for_savefile_identifierReturns which savefile to use for a given savefile identifier
hardcore_random_setupSetup the random hardcore quirks and give the character the new score prize.
load_character_skyratLoads the modular customizations of a character from the savefile
migrate_body_typesPreviously, body types could only be used on non-binary characters. +PR #62733 changed this to allow all characters to use body type. +This migration moves binary-gendered characters over to the "use gender" body type +so that old characters are preserved.
migrate_character_to_tgui_prefs_menuHandle the migrations necessary from pre-tgui prefs to post-tgui prefs, for characters
migrate_legacy_sound_togglesPreviously, sound preferences were legacy toggles. +PR #71040 changed these to modern toggles. +This migration transfers the player's existing preferences into the new toggles
migrate_preferences_to_tgui_prefs_menuHandle the migrations necessary from pre-tgui prefs to post-tgui prefs
migrate_quirk_to_loadoutMove quirk items into loadout items
randomise_appearance_prefsFully randomizes everything in the character.
read_preferenceRead a /datum/preference type and return its value. +This will write to the savefile if a value was not found with the new value.
remove_loadout_itemHelper for removing a loadout item
safe_transfer_prefs_to_with_damageThis proc saves the damage currently on character (human) and reapplies it after safe_transfer_prefs() is applied to the character.
sanitize_languagesCleans up any invalid languages. Typically happens on language renames and codedels.
sanitize_quirksCleans any quirks that should be hidden, or just simply don't exist from quirk code.
save_character_skyratSaves the modular customizations of a character on the savefile
savefile_needs_update_skyratChecks if the modular side of the savefile is up to date. +If the return value is higher than 0, update_character_skyrat() will be called later.
select_hardcore_quirksGoes through all quirks that can be used in hardcore mode and select some based on a random budget. +Returns the new value to be gained with this setup, plus the previously earned score.
should_be_random_hardcoreReturns whether the parent mob should have the random hardcore settings enabled. Assumes it has a mind.
should_randomizeReturns if a preference should be randomized.
try_get_common_languageTries to get the topmost language of the language holder. Should be the species' native language, and if it isn't, you should pester a coder.
update_character_skyratBrings a savefile up to date with modular preferences. Called if savefile_needs_update_skyrat() returned a value higher than 0
update_preferenceWill perform an update on the preference, but not write to the savefile. +This will, for instance, update the character preference view. +Performs sanity checks.
update_tts_blip_prefsPreviously, tts enabled/blip were individual buttons +PR #76558 changed them to one dropdown choice. +This migration transfers the player's existing preferences into the new dropdown
write_preferenceSet a /datum/preference entry. +Returns TRUE for a successful preference application. +Returns FALSE if it is invalid.

Var Details

allow_advanced_colors

Allows the user to freely color his body markings and mutant parts.

alt_job_titles

Alternative job titles stored in preferences. Assoc list, ie. alt_job_titles["Scientist"] = "Cytologist"

augment_limb_styles

List of chosen preferred styles for limb replacements

augments

List of chosen augmentations. It's an associative list with key name of the slot, pointing to a typepath of an augment define

be_special

List of ROLE_X that the client wants to be eligible for

body_markings

A list of all bodymarkings

character_data

The savefile relating to character preferences, PREFERENCE_CHARACTER

character_preview_view

A preview of the current character

chosen_augment_slot

Which augment slot we currently have chosen, this is for UI display

current_window

The current window, PREFERENCE_TAB_* in [code/__DEFINES/preferences.dm]

default_slot

Ensures that we always load the last used save, QOL

donator_status

Does this member have donator status on the server

favorite_outfits

What outfit typepaths we've favorited in the SelectEquipment menu

features

Has to include all information that extra organs from mutant bodyparts would need. (so far only genitals now)

food_preferences

An assoc list of food types to liked or dislike values. If null or empty, default species tastes are used instead on application. +If a food doesn't exist in this list, it uses the default value.

headshot

A photo of the character, visible on close examine

hearted

Someone thought we were nice! We get a little heart in OOC until we join the server past the below time (we can keep it until the end of the round otherwise)

hearted_until

If we have a hearted commendations, we honor it every time the player loads preferences until this time has been passed

key_bindings

Custom keybindings. Map of keybind names to keyboard inputs. +For example, by default would have "swap_hands" -> list("X")

key_bindings_by_key

Cached list of keybindings, mapping keys to actions. +For example, by default would have "X" -> list("swap_hands")

languages

Associative list, keyed by language typepath, pointing to UNDERSTOOD_LANGUAGE, or UNDERSTOOD_LANGUAGE | SPOKEN_LANGUAGE, for whether we understand or speak the language

last_id

Last CID that this client has connected from

last_ip

Last IP that this client has connected from

lastchangelog

Cached changelog size, to detect new changelogs since last join

load_and_save

Whether or not we allow saving/loading. Used for guests, if they're enabled

max_save_slots

The maximum number of slots we're allowed to contain

middleware

A list of instantiated middleware

mismatched_customization

Will the person see accessories not meant for their species to choose from

mutant_bodyparts

A list containing all of our mutant bodparts

muted

Bitflags for communications that are muted

path

The path to the general savefile for this datum

preview_pref

Preference of how the preview should show the character.

recently_updated_keys

A list of keys that have been updated since the last save.

savefile

The json savefile for this datum

show_body_size

Whether the user wants to see body size being shown in the preview

tainted_character_profiles

If set to TRUE, will update character_profiles on the next ui_data tick.

value_cache

A cache of preference entries to values. +Used to avoid expensive READ_FILE every time a preference is retrieved.

Proc Details

add_loadout_item

Helper for slotting in a new loadout item

apply_all_client_preferences

Applies all PREFERENCE_PLAYER preferences

apply_character_randomization_prefs

Randomizes the character according to preferences.

apply_prefs_to

Applies the given preferences to a human mob.

check_keybindings

checks through keybindings for outdated unbound keys and updates them

get_adjusted_language_holder

This helper proc gets the current species language holder and does any post-processing that's required in one easy to track place. +This proc should always be edited or used when modifying or getting the default languages of a player controlled, unrestricted species, to prevent any errant conflicts.

get_default_randomization

Returns the default randomise variable ouptut

get_highest_priority_job

Returns what job is marked as highest

get_key_bindings_by_key

Inverts the key_bindings list such that it can be used for key_bindings_by_key

get_save_data_for_savefile_identifier

Returns which savefile to use for a given savefile identifier

hardcore_random_setup

Setup the random hardcore quirks and give the character the new score prize.

load_character_skyrat

Loads the modular customizations of a character from the savefile

migrate_body_types

Previously, body types could only be used on non-binary characters. +PR #62733 changed this to allow all characters to use body type. +This migration moves binary-gendered characters over to the "use gender" body type +so that old characters are preserved.

migrate_character_to_tgui_prefs_menu

Handle the migrations necessary from pre-tgui prefs to post-tgui prefs, for characters

migrate_legacy_sound_toggles

Previously, sound preferences were legacy toggles. +PR #71040 changed these to modern toggles. +This migration transfers the player's existing preferences into the new toggles

migrate_preferences_to_tgui_prefs_menu

Handle the migrations necessary from pre-tgui prefs to post-tgui prefs

migrate_quirk_to_loadout

Move quirk items into loadout items

+

If this is accompanied with removal of a quirk, +you don't need to worry about handling that here - +quirk sanitization happens AFTER migration

randomise_appearance_prefs

Fully randomizes everything in the character.

read_preference

Read a /datum/preference type and return its value. +This will write to the savefile if a value was not found with the new value.

remove_loadout_item

Helper for removing a loadout item

safe_transfer_prefs_to_with_damage

This proc saves the damage currently on character (human) and reapplies it after safe_transfer_prefs() is applied to the character.

sanitize_languages

Cleans up any invalid languages. Typically happens on language renames and codedels.

sanitize_quirks

Cleans any quirks that should be hidden, or just simply don't exist from quirk code.

save_character_skyrat

Saves the modular customizations of a character on the savefile

savefile_needs_update_skyrat

Checks if the modular side of the savefile is up to date. +If the return value is higher than 0, update_character_skyrat() will be called later.

select_hardcore_quirks

Goes through all quirks that can be used in hardcore mode and select some based on a random budget. +Returns the new value to be gained with this setup, plus the previously earned score.

should_be_random_hardcore

Returns whether the parent mob should have the random hardcore settings enabled. Assumes it has a mind.

should_randomize

Returns if a preference should be randomized.

try_get_common_language

Tries to get the topmost language of the language holder. Should be the species' native language, and if it isn't, you should pester a coder.

update_character_skyrat

Brings a savefile up to date with modular preferences. Called if savefile_needs_update_skyrat() returned a value higher than 0

update_preference

Will perform an update on the preference, but not write to the savefile. +This will, for instance, update the character preference view. +Performs sanity checks.

update_tts_blip_prefs

Previously, tts enabled/blip were individual buttons +PR #76558 changed them to one dropdown choice. +This migration transfers the player's existing preferences into the new dropdown

write_preference

Set a /datum/preference entry. +Returns TRUE for a successful preference application. +Returns FALSE if it is invalid.

\ No newline at end of file diff --git a/datum/prisoner_crime.html b/datum/prisoner_crime.html new file mode 100644 index 0000000000000..74d467925e207 --- /dev/null +++ b/datum/prisoner_crime.html @@ -0,0 +1 @@ +/datum/prisoner_crime - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

prisoner_crime

Vars

descwhat the record will say about the crime
namecrime name
tattooshow many tattoos come from the crime. People who committed murder have more than tax evaders!

Var Details

desc

what the record will say about the crime

name

crime name

tattoos

how many tattoos come from the crime. People who committed murder have more than tax evaders!

\ No newline at end of file diff --git a/datum/progressbar.html b/datum/progressbar.html new file mode 100644 index 0000000000000..2f5cce4798e18 --- /dev/null +++ b/datum/progressbar.html @@ -0,0 +1,3 @@ +/datum/progressbar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

progressbar

Vars

barThe progress bar visual element.
bar_locThe target where this progress bar is applied and where it is shown.
goalEffectively the number of steps the progress bar will need to do before reaching completion.
last_progressControl check to see if the progress was interrupted before reaching its goal.
listindexVariable to ensure smooth visual stacking on multiple progress bars.
location_typeThe type of our last value for bar_loc, for debugging
offset_yWhere to draw the progress bar above the icon
userThe mob whose client sees the progress bar.
user_clientThe client seeing the progress bar.

Procs

add_prog_bar_image_to_clientAdds a smoothly-appearing progress bar image to the player's screen.
clean_user_clientRemoves the progress bar image from the user_client and nulls the variable, if it exists.
dump_harddel_infoProgress bars are very generic, and what hangs a ref to them depends heavily on the context in which they're used +So let's make hunting harddels easier yeah?
end_progressCalled on progress end, be it successful or a failure. Wraps up things to delete the datum and bar.
on_user_deleteCalled right before the user's Destroy()
on_user_loginCalled by user's Login(), it transfers the progress bar image to the new client.
updateUpdates the progress bar image visually.

Var Details

bar

The progress bar visual element.

bar_loc

The target where this progress bar is applied and where it is shown.

goal

Effectively the number of steps the progress bar will need to do before reaching completion.

last_progress

Control check to see if the progress was interrupted before reaching its goal.

listindex

Variable to ensure smooth visual stacking on multiple progress bars.

location_type

The type of our last value for bar_loc, for debugging

offset_y

Where to draw the progress bar above the icon

user

The mob whose client sees the progress bar.

user_client

The client seeing the progress bar.

Proc Details

add_prog_bar_image_to_client

Adds a smoothly-appearing progress bar image to the player's screen.

clean_user_client

Removes the progress bar image from the user_client and nulls the variable, if it exists.

dump_harddel_info

Progress bars are very generic, and what hangs a ref to them depends heavily on the context in which they're used +So let's make hunting harddels easier yeah?

end_progress

Called on progress end, be it successful or a failure. Wraps up things to delete the datum and bar.

on_user_delete

Called right before the user's Destroy()

on_user_login

Called by user's Login(), it transfers the progress bar image to the new client.

update

Updates the progress bar image visually.

\ No newline at end of file diff --git a/datum/promise.html b/datum/promise.html new file mode 100644 index 0000000000000..e2da8728b2d85 --- /dev/null +++ b/datum/promise.html @@ -0,0 +1,6 @@ +/datum/promise - /tg/ Station 13
/tg/ Station 13 - Modules - Types

promise

Byondapi hooks act as "set waitfor = 0" procs. This means that whenever +a proc directly called from an external library sleeps, the hook returns with whatever +the called proc had as its return value at the moment it slept. This may not +be desired behavior, so this datum exists to wrap these procs.

+

Some procs that don't sleep could take longer than the execution limit would +allow for. We can wrap these in a promise as well.

\ No newline at end of file diff --git a/datum/proximity_monitor.html b/datum/proximity_monitor.html new file mode 100644 index 0000000000000..f2084eddde54b --- /dev/null +++ b/datum/proximity_monitor.html @@ -0,0 +1 @@ +/datum/proximity_monitor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

proximity_monitor

Vars

current_rangeThe range of the proximity monitor. Things moving wihin it will trigger HasProximity calls.
hasprox_receiverThe atom that will receive HasProximity calls.
hostThe atom we are tracking
ignore_if_not_on_turfIf we don't check turfs in range if the host's loc isn't a turf
loc_connectionsThe signals of the connect range component, needed to monitor the turfs in range.

Var Details

current_range

The range of the proximity monitor. Things moving wihin it will trigger HasProximity calls.

hasprox_receiver

The atom that will receive HasProximity calls.

host

The atom we are tracking

ignore_if_not_on_turf

If we don't check turfs in range if the host's loc isn't a turf

loc_connections

The signals of the connect range component, needed to monitor the turfs in range.

\ No newline at end of file diff --git a/datum/proximity_monitor/advanced.html b/datum/proximity_monitor/advanced.html new file mode 100644 index 0000000000000..e5b4122ff07cf --- /dev/null +++ b/datum/proximity_monitor/advanced.html @@ -0,0 +1,16 @@ +/datum/proximity_monitor/advanced - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

advanced

Movable and easily code-modified fields! Allows for custom AOE effects that affect movement +and anything inside of them, and can do custom turf effects! +Supports automatic recalculation/reset on movement.

+

"What do I gain from using advanced over standard prox monitors?"

+

Vars

edge_is_a_fieldIf TRUE, edge turfs will be included as "in the field" for effects +Can be used in certain situations where you may have effects that trigger only at the edge, +while also wanting the field effect to trigger at edge turfs as well
edge_turfsAll turfs on the very last tile of the proximity monitor's radius
field_turfsAll turfs on the inside of the proximity monitor - range - 1 turfs

Procs

cleanup_edge_turfCalled when a turf in the edge of the monitor is unlinked +Do NOT call this manually, requires management of the edge_turfs list
cleanup_field_turfCalled when a turf in the field of the monitor is unlinked +Do NOT call this manually, requires management of the field_turfs list
setup_edge_turfCalled when a turf in the edge of the monitor is linked
setup_field_turfCalled when a turf in the field of the monitor is linked

Var Details

edge_is_a_field

If TRUE, edge turfs will be included as "in the field" for effects +Can be used in certain situations where you may have effects that trigger only at the edge, +while also wanting the field effect to trigger at edge turfs as well

edge_turfs

All turfs on the very last tile of the proximity monitor's radius

field_turfs

All turfs on the inside of the proximity monitor - range - 1 turfs

Proc Details

cleanup_edge_turf

Called when a turf in the edge of the monitor is unlinked +Do NOT call this manually, requires management of the edge_turfs list

cleanup_field_turf

Called when a turf in the field of the monitor is unlinked +Do NOT call this manually, requires management of the field_turfs list

setup_edge_turf

Called when a turf in the edge of the monitor is linked

setup_field_turf

Called when a turf in the field of the monitor is linked

\ No newline at end of file diff --git a/datum/proximity_monitor/advanced/ai_target_tracking.html b/datum/proximity_monitor/advanced/ai_target_tracking.html new file mode 100644 index 0000000000000..b1c2eb2188223 --- /dev/null +++ b/datum/proximity_monitor/advanced/ai_target_tracking.html @@ -0,0 +1,3 @@ +/datum/proximity_monitor/advanced/ai_target_tracking - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ai_target_tracking

Vars

controllerThe ai controller we're using
filterThe targeting strategy we're using
first_buildIf we've built our field yet +Prevents wasted work on the first build (since the behavior did it)
hiding_location_keyThe hiding location key we're using
owning_behaviorThe ai behavior who owns us
target_keyThe target key we're trying to fill
targeting_strategy_keyThe targeting strategy KEY we're using

Procs

check_new_argsEnsure our args and locals are up to date
controller_deletedReact to controller planning
controller_thinkReact to controller planning
pawn_changedReact to the pawn goin byebye

Var Details

controller

The ai controller we're using

filter

The targeting strategy we're using

first_build

If we've built our field yet +Prevents wasted work on the first build (since the behavior did it)

hiding_location_key

The hiding location key we're using

owning_behavior

The ai behavior who owns us

target_key

The target key we're trying to fill

targeting_strategy_key

The targeting strategy KEY we're using

Proc Details

check_new_args

Ensure our args and locals are up to date

controller_deleted

React to controller planning

controller_think

React to controller planning

pawn_changed

React to the pawn goin byebye

\ No newline at end of file diff --git a/datum/proximity_monitor/advanced/demoraliser.html b/datum/proximity_monitor/advanced/demoraliser.html new file mode 100644 index 0000000000000..71df7f6dd40da --- /dev/null +++ b/datum/proximity_monitor/advanced/demoraliser.html @@ -0,0 +1,13 @@ +/datum/proximity_monitor/advanced/demoraliser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

demoraliser

Procs

on_seenCalled when someone is looking at a demoralising object. +Applies a mood if they are conscious and don't already have it. +Different moods are applied based on whether they are an antagonist, authority, or 'other' (presumed crew).
should_demoraliseReturns true if user is capable of experiencing moods and doesn't already have the one relevant to this datum, false otherwise.

Proc Details

on_seen

Called when someone is looking at a demoralising object. +Applies a mood if they are conscious and don't already have it. +Different moods are applied based on whether they are an antagonist, authority, or 'other' (presumed crew).

+

Arguments

+

should_demoralise

Returns true if user is capable of experiencing moods and doesn't already have the one relevant to this datum, false otherwise.

+

Arguments

+
\ No newline at end of file diff --git a/datum/proximity_monitor/advanced/elevator_music_area.html b/datum/proximity_monitor/advanced/elevator_music_area.html new file mode 100644 index 0000000000000..25bf820998b6a --- /dev/null +++ b/datum/proximity_monitor/advanced/elevator_music_area.html @@ -0,0 +1 @@ +/datum/proximity_monitor/advanced/elevator_music_area - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

elevator_music_area

Load or unload a looping sound when mobs enter or exit the area

Vars

enabledAre we currently playing sounds?
soundloop_typeLooping sound datum type to play
tracked_mobsAssoc list of mobs to sound loops currently playing

Procs

mob_destroyedRemove references on mob deletion
turn_offStop active sound loops
turn_onStart sound loops playing

Var Details

enabled

Are we currently playing sounds?

soundloop_type

Looping sound datum type to play

tracked_mobs

Assoc list of mobs to sound loops currently playing

Proc Details

mob_destroyed

Remove references on mob deletion

turn_off

Stop active sound loops

turn_on

Start sound loops playing

\ No newline at end of file diff --git a/datum/proximity_monitor/advanced/gravity/warns_on_entrance.html b/datum/proximity_monitor/advanced/gravity/warns_on_entrance.html new file mode 100644 index 0000000000000..91a34cfa80a81 --- /dev/null +++ b/datum/proximity_monitor/advanced/gravity/warns_on_entrance.html @@ -0,0 +1,3 @@ +/datum/proximity_monitor/advanced/gravity/warns_on_entrance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

warns_on_entrance

Vars

recently_warnedThis is a list of mob refs that have recently entered the field. +We track it so that we don't spam a player who is stutter stepping in and out with balloon alerts.

Var Details

recently_warned

This is a list of mob refs that have recently entered the field. +We track it so that we don't spam a player who is stutter stepping in and out with balloon alerts.

\ No newline at end of file diff --git a/datum/proximity_monitor/advanced/quirk_posters.html b/datum/proximity_monitor/advanced/quirk_posters.html new file mode 100644 index 0000000000000..0bfc0ed986f3b --- /dev/null +++ b/datum/proximity_monitor/advanced/quirk_posters.html @@ -0,0 +1 @@ +/datum/proximity_monitor/advanced/quirk_posters - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

quirk_posters

Vars

departmentDefines the specific department that the poster will apply its mood buff to, if the poster has a quirk_poster_department.

Var Details

department

Defines the specific department that the poster will apply its mood buff to, if the poster has a quirk_poster_department.

\ No newline at end of file diff --git a/datum/proximity_monitor/advanced/soul_poem.html b/datum/proximity_monitor/advanced/soul_poem.html new file mode 100644 index 0000000000000..071d593643450 --- /dev/null +++ b/datum/proximity_monitor/advanced/soul_poem.html @@ -0,0 +1 @@ +/datum/proximity_monitor/advanced/soul_poem - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

soul_poem

The proximty_monitor datum used by the soul_poem NIFSoft

Vars

parent_nifsoftWhat NIFSoft is this currently attached to?

Var Details

parent_nifsoft

What NIFSoft is this currently attached to?

\ No newline at end of file diff --git a/datum/proximity_monitor/advanced/timestop.html b/datum/proximity_monitor/advanced/timestop.html new file mode 100644 index 0000000000000..3486848702215 --- /dev/null +++ b/datum/proximity_monitor/advanced/timestop.html @@ -0,0 +1 @@ +/datum/proximity_monitor/advanced/timestop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

timestop

Vars

channelledif true, this doesn't time out after a duration but rather when an immune atom inside moves.

Var Details

channelled

if true, this doesn't time out after a duration but rather when an immune atom inside moves.

\ No newline at end of file diff --git a/datum/puzzgrid.html b/datum/puzzgrid.html new file mode 100644 index 0000000000000..1cc62bf7c5dfa --- /dev/null +++ b/datum/puzzgrid.html @@ -0,0 +1,3 @@ +/datum/puzzgrid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

puzzgrid

Represents an individual puzzgrid

Procs

populateWill populate a puzzgrid with the information from the JSON. +Will return TRUE if the populate succeeded, or a string denoting the error otherwise.

Proc Details

populate

Will populate a puzzgrid with the information from the JSON. +Will return TRUE if the populate succeeded, or a string denoting the error otherwise.

\ No newline at end of file diff --git a/datum/qdel_item.html b/datum/qdel_item.html new file mode 100644 index 0000000000000..3dda0cec24138 --- /dev/null +++ b/datum/qdel_item.html @@ -0,0 +1 @@ +/datum/qdel_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

qdel_item

Qdel Item: Holds statistics on each type that passes thru qdel

Vars

destroy_timeTotal amount of milliseconds spent processing this type's Destroy()
extra_detailsLazylist of string metadata about the deleted objects
failuresTimes it was queued for soft deletion but failed to soft delete.
hard_delete_maxHighest time spent hard_deleting this in ms.
hard_delete_timeTotal amount of milliseconds spent hard deleting this type.
hard_deletesDifferent from failures because it also includes QDEL_HINT_HARDDEL deletions
hard_deletes_over_thresholdNumber of times hard deletes took longer than the configured threshold
nameHolds the type as a string for this type
no_hintNumber of times it's not even bother to give a qdel hint
no_respect_forceNumber of times it's not respected force=TRUE
qdel_flagsFlags related to this type's trip thru qdel.
qdelsTotal number of times it's passed thru qdel.
slept_destroyNumber of times it's slept in its destroy

Var Details

destroy_time

Total amount of milliseconds spent processing this type's Destroy()

extra_details

Lazylist of string metadata about the deleted objects

failures

Times it was queued for soft deletion but failed to soft delete.

hard_delete_max

Highest time spent hard_deleting this in ms.

hard_delete_time

Total amount of milliseconds spent hard deleting this type.

hard_deletes

Different from failures because it also includes QDEL_HINT_HARDDEL deletions

hard_deletes_over_threshold

Number of times hard deletes took longer than the configured threshold

name

Holds the type as a string for this type

no_hint

Number of times it's not even bother to give a qdel hint

no_respect_force

Number of times it's not respected force=TRUE

qdel_flags

Flags related to this type's trip thru qdel.

qdels

Total number of times it's passed thru qdel.

slept_destroy

Number of times it's slept in its destroy

\ No newline at end of file diff --git a/datum/queue_link.html b/datum/queue_link.html new file mode 100644 index 0000000000000..b277d4a8a85e4 --- /dev/null +++ b/datum/queue_link.html @@ -0,0 +1 @@ +/datum/queue_link - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

queue_link

Vars

idid
partnersatoms in our queue
queue_maxhow much length until we pop, only incrementable, 0 means the queue will not pop until a maximum is set

Procs

addadds an atom to the queue, if we are popping this returns TRUE

Var Details

id

id

partners

atoms in our queue

queue_max

how much length until we pop, only incrementable, 0 means the queue will not pop until a maximum is set

Proc Details

add

adds an atom to the queue, if we are popping this returns TRUE

\ No newline at end of file diff --git a/datum/quirk.html b/datum/quirk.html new file mode 100644 index 0000000000000..5a418a2149835 --- /dev/null +++ b/datum/quirk.html @@ -0,0 +1,22 @@ +/datum/quirk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

quirk

Vars

abstract_parent_typeWhen making an abstract quirk (in OOP terms), don't forget to set this var to the type path for that abstract quirk.
descThe description of the quirk
erp_quirkIs this a quirk disabled by disabling the ERP config?
gain_textText displayed when this quirk is assigned to a mob (and not transferred)
hardcore_valueAmount of points this trait is worth towards the hardcore character mode. +Minus points implies a positive quirk, positive means its hard. +This is used to pick the quirks assigned to a hardcore character. +/ 0 means its not available to hardcore draws.
iconThe icon to show in the preferences menu. +This references a tgui icon, so it can be FontAwesome or a tgfont (with a tg- prefix).
lose_textText displayed when this quirk is removed from a mob (and not transferred)
mail_goodiesA lazylist of items people can receive from mail who have this quirk enabled +The base weight for the each quirk's mail goodies list to be selected is 5 +then the item selected is determined by pick(selected_quirk.mail_goodies)
medical_record_textThis text will appear on medical records for the trait.
mob_traitif applicable, apply and remove this mob trait
nameThe name of the quirk
quirk_flagsFlags related to this quirk.
quirk_holderReference to the mob currently tied to this quirk datum. Quirks are not singletons.
species_whitelistList of species that this quirk is valid for, or empty if it's valid for all species. Only use species ids here.
valueWhat the quirk is worth in preferences, zero = neutral / free
veteran_onlyIs this quirk restricted to veteran players only?

Procs

addAny effect that should be applied every single time the quirk is added to any mob, even when transferred.
add_uniqueAny effects from the proc that should not be done multiple times if the quirk is transferred between mobs. +Put stuff like spawning items in here.
can_addReturns true if the quirk is valid for the target, call parent so qurk_species_whitelist can be checked.
on_holder_qdeletingCalled when quirk_holder is qdeleting. Simply qdels this datum and lets Destroy() handle the rest.
on_quirk_holder_first_loginOn client connection set quirk preferences.
post_addAny special effects or chat messages which should be applied. +This proc is guaranteed to run if the mob has a client when the quirk is added. +Otherwise, it runs once on the next COMSIG_MOB_LOGIN.
removeRemoval of any reversible effects added by the quirk.
remove_from_current_holderRemoves the quirk from the current quirk_holder.

Var Details

abstract_parent_type

When making an abstract quirk (in OOP terms), don't forget to set this var to the type path for that abstract quirk.

desc

The description of the quirk

erp_quirk

Is this a quirk disabled by disabling the ERP config?

gain_text

Text displayed when this quirk is assigned to a mob (and not transferred)

hardcore_value

Amount of points this trait is worth towards the hardcore character mode. +Minus points implies a positive quirk, positive means its hard. +This is used to pick the quirks assigned to a hardcore character. +/ 0 means its not available to hardcore draws.

icon

The icon to show in the preferences menu. +This references a tgui icon, so it can be FontAwesome or a tgfont (with a tg- prefix).

lose_text

Text displayed when this quirk is removed from a mob (and not transferred)

mail_goodies

A lazylist of items people can receive from mail who have this quirk enabled +The base weight for the each quirk's mail goodies list to be selected is 5 +then the item selected is determined by pick(selected_quirk.mail_goodies)

medical_record_text

This text will appear on medical records for the trait.

mob_trait

if applicable, apply and remove this mob trait

name

The name of the quirk

quirk_flags

Flags related to this quirk.

quirk_holder

Reference to the mob currently tied to this quirk datum. Quirks are not singletons.

species_whitelist

List of species that this quirk is valid for, or empty if it's valid for all species. Only use species ids here.

value

What the quirk is worth in preferences, zero = neutral / free

veteran_only

Is this quirk restricted to veteran players only?

Proc Details

add

Any effect that should be applied every single time the quirk is added to any mob, even when transferred.

add_unique

Any effects from the proc that should not be done multiple times if the quirk is transferred between mobs. +Put stuff like spawning items in here.

can_add

Returns true if the quirk is valid for the target, call parent so qurk_species_whitelist can be checked.

on_holder_qdeleting

Called when quirk_holder is qdeleting. Simply qdels this datum and lets Destroy() handle the rest.

on_quirk_holder_first_login

On client connection set quirk preferences.

+

Run post_add to set the client preferences for the quirk. +Clear the attached signal for login. +Used when the quirk has been gained and no client is attached to the mob.

post_add

Any special effects or chat messages which should be applied. +This proc is guaranteed to run if the mob has a client when the quirk is added. +Otherwise, it runs once on the next COMSIG_MOB_LOGIN.

remove

Removal of any reversible effects added by the quirk.

remove_from_current_holder

Removes the quirk from the current quirk_holder.

\ No newline at end of file diff --git a/datum/quirk/all_nighter.html b/datum/quirk/all_nighter.html new file mode 100644 index 0000000000000..0442948ecf94b --- /dev/null +++ b/datum/quirk/all_nighter.html @@ -0,0 +1,9 @@ +/datum/quirk/all_nighter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

all_nighter

Vars

bodypart_overlaythe overlay we put over the eyes
five_more_minutesessentially our "sleep bank". sleeping charges it up and its drained while awake

Procs

addadds the corresponding moodlet and visual effects
add_bagsadds the bag overlay
on_removed_limbif we have bags and lost a head, remove them
processHere we actively handle our moodlet & eye bags, adding/removing them as necessary
removeremoves the corresponding moodlet and visual effects
remove_bagsremoves the bag overlay

Var Details

bodypart_overlay

the overlay we put over the eyes

five_more_minutes

essentially our "sleep bank". sleeping charges it up and its drained while awake

Proc Details

add

adds the corresponding moodlet and visual effects

add_bags

adds the bag overlay

on_removed_limb

if we have bags and lost a head, remove them

process

Here we actively handle our moodlet & eye bags, adding/removing them as necessary

+

*Logic: +*Every second spent sleeping adds to the "sleep bank" with a multiplier of SLEEP_BANK_MULTIPLIER +*Every waking second drains the sleep bank until empty +*An empty sleep bank means you have bags beneath your eyes +*An empty sleep bank AND a lack of stimulants means you have the negative moodlet

+

*Variables: +*happy_camper - FALSE if we should have the negative moodlet +*beauty_sleep - FALSE if we should have bags

remove

removes the corresponding moodlet and visual effects

remove_bags

removes the bag overlay

\ No newline at end of file diff --git a/datum/quirk/bad_touch.html b/datum/quirk/bad_touch.html new file mode 100644 index 0000000000000..59408f1f7fe1e --- /dev/null +++ b/datum/quirk/bad_touch.html @@ -0,0 +1 @@ +/datum/quirk/bad_touch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bad_touch

Procs

uncomfortable_touchCauses a negative moodlet to our quirk holder on signal

Proc Details

uncomfortable_touch

Causes a negative moodlet to our quirk holder on signal

\ No newline at end of file diff --git a/datum/quirk/badback.html b/datum/quirk/badback.html new file mode 100644 index 0000000000000..78e1e5bca89ba --- /dev/null +++ b/datum/quirk/badback.html @@ -0,0 +1 @@ +/datum/quirk/badback - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

badback

Procs

on_equipped_itemSignal handler for when the quirk_holder equips an item. If it's a backpack, adds the back_pain mood event.
on_unequipped_backpackSignal handler for when the quirk_holder unequips an equipped backpack. Removes the back_pain mood event.

Proc Details

on_equipped_item

Signal handler for when the quirk_holder equips an item. If it's a backpack, adds the back_pain mood event.

on_unequipped_backpack

Signal handler for when the quirk_holder unequips an equipped backpack. Removes the back_pain mood event.

\ No newline at end of file diff --git a/datum/quirk/blooddeficiency.html b/datum/quirk/blooddeficiency.html new file mode 100644 index 0000000000000..9dc7100381357 --- /dev/null +++ b/datum/quirk/blooddeficiency.html @@ -0,0 +1 @@ +/datum/quirk/blooddeficiency - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blooddeficiency

Vars

min_bloodMinimum amount of blood the paint is set to

Var Details

min_blood

Minimum amount of blood the paint is set to

\ No newline at end of file diff --git a/datum/quirk/claustrophobia.html b/datum/quirk/claustrophobia.html new file mode 100644 index 0000000000000..1a6ec09b190c2 --- /dev/null +++ b/datum/quirk/claustrophobia.html @@ -0,0 +1 @@ +/datum/quirk/claustrophobia - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

claustrophobia

Procs

evaluate_jolly_levelsinvestigates whether possible_saint_nick possesses a high level of christmas cheer

Proc Details

evaluate_jolly_levels

investigates whether possible_saint_nick possesses a high level of christmas cheer

\ No newline at end of file diff --git a/datum/quirk/echolocation.html b/datum/quirk/echolocation.html new file mode 100644 index 0000000000000..2c7d0064c8264 --- /dev/null +++ b/datum/quirk/echolocation.html @@ -0,0 +1 @@ +/datum/quirk/echolocation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

echolocation

Vars

added_actionThe action we add with this quirk in add(), used for easy deletion later
espwhere we store easy access to the character's echolocation component (for stuff like drugs)
esp_colorwhere we store access to the client colour we make

Var Details

added_action

The action we add with this quirk in add(), used for easy deletion later

esp

where we store easy access to the character's echolocation component (for stuff like drugs)

esp_color

where we store access to the client colour we make

\ No newline at end of file diff --git a/datum/quirk/equipping.html b/datum/quirk/equipping.html new file mode 100644 index 0000000000000..c5149aff26d97 --- /dev/null +++ b/datum/quirk/equipping.html @@ -0,0 +1 @@ +/datum/quirk/equipping - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

equipping

Vars

force_dropped_itemsBUBBER EDIT: did we force drop any items? if so, they're in this list. useful for transferring any applicable contents into new items on roundstart
forced_itemsthe items that will be forcefully equipped, formatted in the way of [item_path = list of slots it can be equipped to], will equip over nodrop items
itemsthe items that will be equipped, formatted in the way of [item_path = list of slots it can be equipped to], will not equip over nodrop items

Var Details

force_dropped_items

BUBBER EDIT: did we force drop any items? if so, they're in this list. useful for transferring any applicable contents into new items on roundstart

forced_items

the items that will be forcefully equipped, formatted in the way of [item_path = list of slots it can be equipped to], will equip over nodrop items

items

the items that will be equipped, formatted in the way of [item_path = list of slots it can be equipped to], will not equip over nodrop items

\ No newline at end of file diff --git a/datum/quirk/equipping/entombed.html b/datum/quirk/equipping/entombed.html new file mode 100644 index 0000000000000..c213f8773a865 --- /dev/null +++ b/datum/quirk/equipping/entombed.html @@ -0,0 +1 @@ +/datum/quirk/equipping/entombed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

entombed

Vars

deploy_lockedHas the player chosen to deploy-lock?
life_support_failedAre we taking damage?
life_support_failure_thresholdHow long before they start taking damage when the suit's not active?
life_support_timerTimerID for our timeframe tracker
modsuitThe modsuit we're stuck in

Var Details

deploy_locked

Has the player chosen to deploy-lock?

life_support_failed

Are we taking damage?

life_support_failure_threshold

How long before they start taking damage when the suit's not active?

life_support_timer

TimerID for our timeframe tracker

modsuit

The modsuit we're stuck in

\ No newline at end of file diff --git a/datum/quirk/equipping/nerve_staple.html b/datum/quirk/equipping/nerve_staple.html new file mode 100644 index 0000000000000..750376d6910c6 --- /dev/null +++ b/datum/quirk/equipping/nerve_staple.html @@ -0,0 +1 @@ +/datum/quirk/equipping/nerve_staple - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nerve_staple

Vars

stapleThe nerve staple attached to the quirk

Var Details

staple

The nerve staple attached to the quirk

\ No newline at end of file diff --git a/datum/quirk/gamer.html b/datum/quirk/gamer.html new file mode 100644 index 0000000000000..2938b75df2027 --- /dev/null +++ b/datum/quirk/gamer.html @@ -0,0 +1,9 @@ +/datum/quirk/gamer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gamer

Vars

gaming_withdrawal_timerTimer for gaming withdrawal to kick in

Procs

gamedGamer is playing a game
lost_gameGamer lost a game
won_gameGamer won a game

Var Details

gaming_withdrawal_timer

Timer for gaming withdrawal to kick in

Proc Details

gamed

Gamer is playing a game

+

Executed on the COMSIG_MOB_PLAYED_VIDEOGAME signal +This signal should be called whenever a player interacts with a video game.

lost_game

Gamer lost a game

+

Executed on the COMSIG_MOB_LOST_VIDEOGAME signal +This signal should be called whenever a player has lost a video game. +(E.g. Orion Trail)

won_game

Gamer won a game

+

Executed on the COMSIG_MOB_WON_VIDEOGAME signal +This signal should be called whenever a player has won a video game. +(E.g. Orion Trail)

\ No newline at end of file diff --git a/datum/quirk/heterochromatic.html b/datum/quirk/heterochromatic.html new file mode 100644 index 0000000000000..1c94620f42036 --- /dev/null +++ b/datum/quirk/heterochromatic.html @@ -0,0 +1 @@ +/datum/quirk/heterochromatic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

heterochromatic

Procs

apply_heterochromatic_eyesApplies the passed color to this mob's eyes

Proc Details

apply_heterochromatic_eyes

Applies the passed color to this mob's eyes

\ No newline at end of file diff --git a/datum/quirk/indebted.html b/datum/quirk/indebted.html new file mode 100644 index 0000000000000..405a29a2ef956 --- /dev/null +++ b/datum/quirk/indebted.html @@ -0,0 +1 @@ +/datum/quirk/indebted - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

indebted

Procs

on_debt_paidOnce the debt is extinguished, award an achievement and a pin for actually taking care of it.

Proc Details

on_debt_paid

Once the debt is extinguished, award an achievement and a pin for actually taking care of it.

\ No newline at end of file diff --git a/datum/quirk/insanity.html b/datum/quirk/insanity.html new file mode 100644 index 0000000000000..011bcc6c00805 --- /dev/null +++ b/datum/quirk/insanity.html @@ -0,0 +1 @@ +/datum/quirk/insanity - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

insanity

Vars

added_trama_refWeakref to the trauma we give out

Var Details

added_trama_ref

Weakref to the trauma we give out

\ No newline at end of file diff --git a/datum/quirk/item_quirk.html b/datum/quirk/item_quirk.html new file mode 100644 index 0000000000000..207942a1acdf0 --- /dev/null +++ b/datum/quirk/item_quirk.html @@ -0,0 +1,10 @@ +/datum/quirk/item_quirk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

item_quirk

Subtype quirk that has some bonus logic to spawn items for the player.

Vars

open_backpackIf true, the backpack automatically opens on post_add(). Usually set to TRUE when an item is equipped inside the player's backpack.
where_items_spawnedLazylist of strings describing where all the quirk items have been spawned.

Procs

give_item_to_holderHandles inserting an item in any of the valid slots provided, then allows for post_add notification.

Var Details

open_backpack

If true, the backpack automatically opens on post_add(). Usually set to TRUE when an item is equipped inside the player's backpack.

where_items_spawned

Lazylist of strings describing where all the quirk items have been spawned.

Proc Details

give_item_to_holder

Handles inserting an item in any of the valid slots provided, then allows for post_add notification.

+

If no valid slot is available for an item, the item is left at the mob's feet. +Arguments:

+
\ No newline at end of file diff --git a/datum/quirk/item_quirk/addict.html b/datum/quirk/item_quirk/addict.html new file mode 100644 index 0000000000000..f1b0ef2133cde --- /dev/null +++ b/datum/quirk/item_quirk/addict.html @@ -0,0 +1 @@ +/datum/quirk/item_quirk/addict - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

addict

Vars

accessory_typeIf this is null, an accessory won't be spawned.
drug_container_typeIf this is defined before pill generation, pill generation will be skipped. This is the type of the pill bottle.
next_processticker for processing
process_intervalhow frequently the quirk processes
reagent_instanceactual instanced version of the reagent
reagent_typeIf this is defined, reagent_id will be unused and the defined reagent type will be instead.
where_accessorywhere the accessory spawned
where_drugWhere the drug spawned

Var Details

accessory_type

If this is null, an accessory won't be spawned.

drug_container_type

If this is defined before pill generation, pill generation will be skipped. This is the type of the pill bottle.

next_process

ticker for processing

process_interval

how frequently the quirk processes

reagent_instance

actual instanced version of the reagent

reagent_type

If this is defined, reagent_id will be unused and the defined reagent type will be instead.

where_accessory

where the accessory spawned

where_drug

Where the drug spawned

\ No newline at end of file diff --git a/datum/quirk/item_quirk/addict/alcoholic.html b/datum/quirk/item_quirk/addict/alcoholic.html new file mode 100644 index 0000000000000..40efac72c4306 --- /dev/null +++ b/datum/quirk/item_quirk/addict/alcoholic.html @@ -0,0 +1 @@ +/datum/quirk/item_quirk/addict/alcoholic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

alcoholic

Vars

favorite_alcoholCached typepath of the owner's favorite alcohol reagent

Var Details

favorite_alcohol

Cached typepath of the owner's favorite alcohol reagent

\ No newline at end of file diff --git a/datum/quirk/item_quirk/bald.html b/datum/quirk/item_quirk/bald.html new file mode 100644 index 0000000000000..3df9e8978e806 --- /dev/null +++ b/datum/quirk/item_quirk/bald.html @@ -0,0 +1 @@ +/datum/quirk/item_quirk/bald - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bald

Vars

old_hairThe user's starting hairstyle

Procs

equip_hatChecks if the headgear equipped is a wig and sets the mood event accordingly
unequip_hatApplies a bad moodlet for having an uncovered head

Var Details

old_hair

The user's starting hairstyle

Proc Details

equip_hat

Checks if the headgear equipped is a wig and sets the mood event accordingly

unequip_hat

Applies a bad moodlet for having an uncovered head

\ No newline at end of file diff --git a/datum/quirk/item_quirk/family_heirloom.html b/datum/quirk/item_quirk/family_heirloom.html new file mode 100644 index 0000000000000..37a27a3595da7 --- /dev/null +++ b/datum/quirk/item_quirk/family_heirloom.html @@ -0,0 +1 @@ +/datum/quirk/item_quirk/family_heirloom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

family_heirloom

Vars

heirloomA weak reference to our heirloom.

Var Details

heirloom

A weak reference to our heirloom.

\ No newline at end of file diff --git a/datum/quirk/item_quirk/food_allergic.html b/datum/quirk/item_quirk/food_allergic.html new file mode 100644 index 0000000000000..0c9e42d70c5e0 --- /dev/null +++ b/datum/quirk/item_quirk/food_allergic.html @@ -0,0 +1 @@ +/datum/quirk/item_quirk/food_allergic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

food_allergic

Vars

target_foodtypesFootype flags that will trigger the allergy

Var Details

target_foodtypes

Footype flags that will trigger the allergy

\ No newline at end of file diff --git a/datum/quirk/item_quirk/settler.html b/datum/quirk/item_quirk/settler.html new file mode 100644 index 0000000000000..a448c36a1093b --- /dev/null +++ b/datum/quirk/item_quirk/settler.html @@ -0,0 +1 @@ +/datum/quirk/item_quirk/settler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

settler

Vars

settler_traitsMost of the behavior of settler is from these traits, rather than exclusively the quirk

Var Details

settler_traits

Most of the behavior of settler is from these traits, rather than exclusively the quirk

\ No newline at end of file diff --git a/datum/quirk/item_quirk/spiritual.html b/datum/quirk/item_quirk/spiritual.html new file mode 100644 index 0000000000000..90e81e846cf70 --- /dev/null +++ b/datum/quirk/item_quirk/spiritual.html @@ -0,0 +1 @@ +/datum/quirk/item_quirk/spiritual - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spiritual

Vars

mob_traitSKYRAT EDIT - Quirk Rebalance - Original: value = 4

Var Details

mob_trait

SKYRAT EDIT - Quirk Rebalance - Original: value = 4

\ No newline at end of file diff --git a/datum/quirk/no_appendix.html b/datum/quirk/no_appendix.html new file mode 100644 index 0000000000000..ec764961ee935 --- /dev/null +++ b/datum/quirk/no_appendix.html @@ -0,0 +1 @@ +/datum/quirk/no_appendix - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

no_appendix

Vars

old_appendixThe mob's original appendix

Var Details

old_appendix

The mob's original appendix

\ No newline at end of file diff --git a/datum/quirk/nyctophobia.html b/datum/quirk/nyctophobia.html new file mode 100644 index 0000000000000..8263840a155e4 --- /dev/null +++ b/datum/quirk/nyctophobia.html @@ -0,0 +1 @@ +/datum/quirk/nyctophobia - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

nyctophobia

Procs

on_holder_movedCalled when the quirk holder moves. Updates the quirk holder's mood.

Proc Details

on_holder_moved

Called when the quirk holder moves. Updates the quirk holder's mood.

\ No newline at end of file diff --git a/datum/quirk/prosthetic_limb.html b/datum/quirk/prosthetic_limb.html new file mode 100644 index 0000000000000..c247f3fafbf0f --- /dev/null +++ b/datum/quirk/prosthetic_limb.html @@ -0,0 +1 @@ +/datum/quirk/prosthetic_limb - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

prosthetic_limb

Vars

old_limbthe original limb from before the prosthetic was applied
slot_stringThe slot to replace, in string form

Var Details

old_limb

the original limb from before the prosthetic was applied

slot_string

The slot to replace, in string form

\ No newline at end of file diff --git a/datum/quirk/prosthetic_organ.html b/datum/quirk/prosthetic_organ.html new file mode 100644 index 0000000000000..d1bd8e1106455 --- /dev/null +++ b/datum/quirk/prosthetic_organ.html @@ -0,0 +1 @@ +/datum/quirk/prosthetic_organ - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

prosthetic_organ

Vars

old_organThe original organ from before the prosthetic was applied
slot_stringThe slot to replace, in string form

Var Details

old_organ

The original organ from before the prosthetic was applied

slot_string

The slot to replace, in string form

\ No newline at end of file diff --git a/datum/quirk/social_anxiety.html b/datum/quirk/social_anxiety.html new file mode 100644 index 0000000000000..aac53f650bbd1 --- /dev/null +++ b/datum/quirk/social_anxiety.html @@ -0,0 +1 @@ +/datum/quirk/social_anxiety - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

social_anxiety

Procs

calculate_mood_modCalculates how much to modifiy our effects based on our mood level

Proc Details

calculate_mood_mod

Calculates how much to modifiy our effects based on our mood level

\ No newline at end of file diff --git a/datum/quirk/spacer_born.html b/datum/quirk/spacer_born.html new file mode 100644 index 0000000000000..6638a7b7b3e18 --- /dev/null +++ b/datum/quirk/spacer_born.html @@ -0,0 +1,21 @@ +/datum/quirk/spacer_born - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spacer_born

Vars

last_stateDetermines the last state we were in ([LAST_STATE_PLANET] or [LAST_STATE_SPACE])
modded_heightHow high spacers get bumped up to
planet_periodHow long on a planet before we get averse effects
planetside_timerTimerID for time spend on a planet
recover_periodHow long in space before we get beneficial effects
recovering_timerTimerID for time spend in space

Procs

check_zUsed to check if we should start or stop timers based on the quirk holder's location.
comfortably_in_spaceRan when living back in space for a long enough period.
in_spaceRan when returning to space / somewhere with low gravity.
on_planetRan when we arrive on a planet.
on_planet_for_too_longRan after remaining on a planet for too long.
spacer_movedCheck on Z change whether we should start or stop timers

Var Details

last_state

Determines the last state we were in ([LAST_STATE_PLANET] or [LAST_STATE_SPACE])

modded_height

How high spacers get bumped up to

planet_period

How long on a planet before we get averse effects

planetside_timer

TimerID for time spend on a planet

recover_period

How long in space before we get beneficial effects

recovering_timer

TimerID for time spend in space

Proc Details

check_z

Used to check if we should start or stop timers based on the quirk holder's location.

+

comfortably_in_space

Ran when living back in space for a long enough period.

+

in_space

Ran when returning to space / somewhere with low gravity.

+

on_planet

Ran when we arrive on a planet.

+

on_planet_for_too_long

Ran after remaining on a planet for too long.

+

spacer_moved

Check on Z change whether we should start or stop timers

\ No newline at end of file diff --git a/datum/quirk/touchy.html b/datum/quirk/touchy.html new file mode 100644 index 0000000000000..eb5feccb64a84 --- /dev/null +++ b/datum/quirk/touchy.html @@ -0,0 +1 @@ +/datum/quirk/touchy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

touchy

Procs

examinate_checkChecks if the mob is besides the thing being examined, if they aren't then we cancel their examinate.

Proc Details

examinate_check

Checks if the mob is besides the thing being examined, if they aren't then we cancel their examinate.

\ No newline at end of file diff --git a/datum/quirk_constant_data.html b/datum/quirk_constant_data.html new file mode 100644 index 0000000000000..d6bc1146c0e9f --- /dev/null +++ b/datum/quirk_constant_data.html @@ -0,0 +1,3 @@ +/datum/quirk_constant_data - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

quirk_constant_data

A singleton datum representing constant data and procs used by quirks.

Vars

abstract_typeAbstract in OOP terms. If this is our type, we will not be instantiated.
associated_typepathThe typepath of the quirk we will be associated with in the global list. This is what we represent.
customization_optionsA lazylist of preference datum typepaths. Any character pref put in here will be rendered in the quirks page under a dropdown.

Procs

get_customization_dataReturns a list of savefile_keys derived from the preference typepaths in [customization_options]. Used in quirks middleware to supply the preferences to render.
is_customizableIs this quirk customizable? If true, a button will appear within the quirk's description box in the quirks page, and upon clicking it, +will open a customization menu for the quirk.

Var Details

abstract_type

Abstract in OOP terms. If this is our type, we will not be instantiated.

associated_typepath

The typepath of the quirk we will be associated with in the global list. This is what we represent.

customization_options

A lazylist of preference datum typepaths. Any character pref put in here will be rendered in the quirks page under a dropdown.

Proc Details

get_customization_data

Returns a list of savefile_keys derived from the preference typepaths in [customization_options]. Used in quirks middleware to supply the preferences to render.

is_customizable

Is this quirk customizable? If true, a button will appear within the quirk's description box in the quirks page, and upon clicking it, +will open a customization menu for the quirk.

\ No newline at end of file diff --git a/datum/radial_menu.html b/datum/radial_menu.html new file mode 100644 index 0000000000000..9a92f0e04ee2e --- /dev/null +++ b/datum/radial_menu.html @@ -0,0 +1 @@ +/datum/radial_menu - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

radial_menu

Vars

choice_datumschoice_id -> /datum/radial_menu_choice
choicesList of choice IDs
choices_iconschoice_id -> icon
choices_valueschoice_id -> choice
radial_slice_iconA replacement icon state for the generic radial slice bg icon. Doesn't affect the next page nor the center buttons

Var Details

choice_datums

choice_id -> /datum/radial_menu_choice

choices

List of choice IDs

choices_icons

choice_id -> icon

choices_values

choice_id -> choice

radial_slice_icon

A replacement icon state for the generic radial slice bg icon. Doesn't affect the next page nor the center buttons

\ No newline at end of file diff --git a/datum/radial_menu/persistent.html b/datum/radial_menu/persistent.html new file mode 100644 index 0000000000000..1a5041e4a0975 --- /dev/null +++ b/datum/radial_menu/persistent.html @@ -0,0 +1 @@ +/datum/radial_menu/persistent - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

persistent

Procs

waitVersion of wait used by persistent radial menus.

Proc Details

wait

Version of wait used by persistent radial menus.

\ No newline at end of file diff --git a/datum/radial_menu_choice.html b/datum/radial_menu_choice.html new file mode 100644 index 0000000000000..41879c6683bc7 --- /dev/null +++ b/datum/radial_menu_choice.html @@ -0,0 +1 @@ +/datum/radial_menu_choice - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

radial_menu_choice

Can be provided to choices in radial menus if you want to provide more information

Vars

imageRequired -- what to display for this button
infoIf provided, will display an info button that will put this text in your chat
nameIf provided, this will be the name the radial slice hud button. This has priority over everything else.

Var Details

image

Required -- what to display for this button

info

If provided, will display an info button that will put this text in your chat

name

If provided, this will be the name the radial slice hud button. This has priority over everything else.

\ No newline at end of file diff --git a/datum/radio_frequency.html b/datum/radio_frequency.html new file mode 100644 index 0000000000000..279835a2f3dd0 --- /dev/null +++ b/datum/radio_frequency.html @@ -0,0 +1 @@ +/datum/radio_frequency - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

radio_frequency

Vars

devicesList of filters -> list of devices
frequencyThe frequency of this radio frequency. Of course.

Procs

add_listenerHandles adding a listener to the radio frequency.
remove_listenerHandles removing a listener from this radio frequency.

Var Details

devices

List of filters -> list of devices

frequency

The frequency of this radio frequency. Of course.

Proc Details

add_listener

Handles adding a listener to the radio frequency.

remove_listener

Handles removing a listener from this radio frequency.

\ No newline at end of file diff --git a/datum/raptor_inheritance.html b/datum/raptor_inheritance.html new file mode 100644 index 0000000000000..f0b7e31a4c614 --- /dev/null +++ b/datum/raptor_inheritance.html @@ -0,0 +1 @@ +/datum/raptor_inheritance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

raptor_inheritance

Vars

attack_modifierattack modifier
health_modifierhealth_modifier
inherit_traitslist of traits we inherit

Var Details

attack_modifier

attack modifier

health_modifier

health_modifier

inherit_traits

list of traits we inherit

\ No newline at end of file diff --git a/datum/rat_fashion.html b/datum/rat_fashion.html new file mode 100644 index 0000000000000..93e25a72967fe --- /dev/null +++ b/datum/rat_fashion.html @@ -0,0 +1 @@ +/datum/rat_fashion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

rat_fashion

Decides how regal rats can look

Procs

applyMake yourself look like this
get_radial_selectProvides radial menu data

Proc Details

apply

Make yourself look like this

get_radial_select

Provides radial menu data

\ No newline at end of file diff --git a/datum/reagent.html b/datum/reagent.html new file mode 100644 index 0000000000000..8413c9339dc04 --- /dev/null +++ b/datum/reagent.html @@ -0,0 +1,38 @@ +/datum/reagent - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

reagent

A single reagent

Vars

added_traitsA list of traits to apply while the reagent is in a mob.
addiction_typesAssoc list with key type of addiction this reagent feeds, and value amount of addiction points added per unit of reagent metabolzied (which means * REAGENTS_METABOLISM every life())
affected_biotypeThe affected biotype, if the reagent damages/heals toxin damage of an affected mob. +See "Mob bio-types flags" in /code/_DEFINES/mobs.dm
affected_bodytypeThe affected bodytype, if the reagent damages/heals bodyparts (Brute/Fire) of an affected mob. +See "Bodytype defines" in /code/_DEFINES/mobs.dm
affected_organ_flagsThe affected organ_flags, if the reagent damages/heals organ damage of an affected mob. +See "Organ defines for carbon mobs" in /code/_DEFINES/surgery.dm
affected_respiration_typeThe affected respiration type, if the reagent damages/heals oxygen damage of an affected mob. +See "Mob bio-types flags" in /code/_DEFINES/mobs.dm
burning_temperaturewhat chem is made at the end of a reaction IF the purity is below the recipies purity_min at the END of a reaction only +Thermodynamic vars +How hot this reagent burns when it's on fire - null means it can't burn
burning_volumeHow much is consumed when it is burnt per second
chemical_flagsSee fermi_readme.dm REAGENT_DEAD_PROCESS, REAGENT_DONOTSPLIT, REAGENT_INVISIBLE, REAGENT_SNEAKYNAME, REAGENT_SPLITRETAINVOL, REAGENT_CANSYNTH, REAGENT_IMPURE
chemical_flags_skyratModular version of chemical_flags, so we don't have to worry about +it causing conflicts in the future.
colorcolor it looks in containers etc
creation_puritythe purity of the reagent on creation (i.e. when it's added to a mob and its purity split it into 2 chems; the purity of the resultant chems are kept as 1, this tracks what the purity was before that)
current_cycleincrements everytime on_mob_life is called
dataSpecial data associated with the reagent that will be passed on upon transfer to a new holder.
default_containerThe default reagent container for the reagent, used for icon generation
descriptionnor do they have descriptions
evaporatesWhether it will evaporate if left untouched on a liquids simulated puddle
fallback_iconIcon for fallback item displayed in a tourist's thought bubble for if this reagent had no associated glass_style datum.
fallback_icon_stateIcon state for fallback item displayed in a tourist's thought bubble for if this reagent had no associated glass_style datum.
fire_needs_oxygenWhether a fire from this requires oxygen in the atmosphere
glass_priceThe amount a robot will pay for a glass of this (20 units but can be higher if you pour more, be frugal!)
holderreagent holder this belongs to
inverse_chemWhat chem is metabolised when purity is below inverse_chem_val
inverse_chem_valIf the impurity is below 0.5, replace ALL of the chem with inverse_chem upon metabolising
liquid_fire_burnrateHow fast does the liquid burn on simulated turfs, if it does
liquid_fire_powerHow much fire power does the liquid have, for burning on simulated liquids. Not enough fire power/unit of entire mixture may result in no fire
massThe molar mass of the reagent - if you're adding a reagent that doesn't have a recipe, just add a random number between 10 - 800. Higher numbers are "harder" but it's mostly arbitary.
materialAre we from a material? We might wanna know that for special stuff. Like metalgen. Is replaced with a ref of the material on New()
metabolization_ratehow fast the reagent is metabolized by the mob
metabolized_traitsA list of traits to apply while the reagent is being metabolized.
metabolizingis it currently metabolizing
namedatums don't have names by default
overdose_thresholdabove this overdoses happen
overdosedYou fucked up and this is now triggering its overdose effects, purge that shit quick.
penetrates_skinThe set of exposure methods this penetrates skin with.
phpH of the reagent
process_flagsWhat can process this? REAGENT_ORGANIC, REAGENT_SYNTHETIC, or REAGENT_ORGANIC | REAGENT_SYNTHETIC?. We'll assume by default that it affects organics.
purityPurity of the reagent - for use with internal reaction mechanics only. Use below (creation_purity) if you're writing purity effects into a reagent's use mechanics.
reagent_removal_skip_listA list of causes why this chem should skip being removed, if the length is 0 it will be removed from holder naturally, if this is >0 it will not be removed from the holder.
reagent_stateLIQUID, SOLID, GAS
reagent_weightaffects how far it travels when sprayed
restaurant_orderWhen ordered in a restaurant, what custom order do we create?
self_consumingif false stops metab in liverless mobs
specific_heatJ/(K*mol)
taste_descriptionused by taste messages
taste_multhow this taste compares to others. Higher values means it is more noticable
volumepretend this is moles

Procs

DestroyThis should only be called by the holder, so it's already handled clearing its references
burnCalled whenever a reagent is on fire, or is in a holder that is on fire. (WIP)
expose_atomApplies this reagent to an /atom
expose_mobApplies this reagent to a /mob/living
expose_objApplies this reagent to an /obj
expose_turfApplies this reagent to a /turf
get_inverse_purityGets the inverse purity of this reagent. Mostly used when converting from a normal reagent to its inverse one.
get_taste_descriptionShould return a associative list where keys are taste descriptions and values are strength ratios
metabolize_reagentMetabolizes a portion of the reagent after on_mob_life() is called
normalise_creation_purityUsed when you want the default reagents purity to be equal to the normal effects +(i.e. if default purity is 0.75, and your reacted purity is 1, then it will return 1.33)
on_burn_wound_processingCalled in burns.dm if the reagent has the REAGENT_AFFECTS_WOUNDS process flag
on_hydroponics_applyCalled when this chemical is processed in a hydroponics tray.
on_mergeCalled when two reagents of the same are mixing.
on_mob_addCalled when this reagent is first added to a mob
on_mob_deadCalled when a reagent is inside of a mob when they are dead if the reagent has the REAGENT_DEAD_PROCESS flag +Returning UPDATE_MOB_HEALTH will cause updatehealth() to be called on the holder mob by /datum/reagents/proc/metabolize.
on_mob_deleteCalled when this reagent is removed while inside a mob
on_mob_end_metabolizeCalled when this reagent stops being metabolized by a liver
on_mob_lifeTicks on mob Life() for as long as the reagent remains in the mob's reagents.
on_mob_metabolizeCalled when this reagent first starts being metabolized by a liver
on_newCalled after add_reagents creates a new reagent.
on_transferCalled after a reagent is transferred
overdose_processCalled if the reagent has passed the overdose threshold and is set to be triggering overdose effects. Returning UPDATE_MOB_HEALTH will cause updatehealth() to be called on the holder mob by /datum/reagents/proc/metabolize.
overdose_startCalled when an overdose starts. Returning UPDATE_MOB_HEALTH will cause updatehealth() to be called on the holder mob by /datum/reagents/proc/metabolize.

Var Details

added_traits

A list of traits to apply while the reagent is in a mob.

addiction_types

Assoc list with key type of addiction this reagent feeds, and value amount of addiction points added per unit of reagent metabolzied (which means * REAGENTS_METABOLISM every life())

affected_biotype

The affected biotype, if the reagent damages/heals toxin damage of an affected mob. +See "Mob bio-types flags" in /code/_DEFINES/mobs.dm

affected_bodytype

The affected bodytype, if the reagent damages/heals bodyparts (Brute/Fire) of an affected mob. +See "Bodytype defines" in /code/_DEFINES/mobs.dm

affected_organ_flags

The affected organ_flags, if the reagent damages/heals organ damage of an affected mob. +See "Organ defines for carbon mobs" in /code/_DEFINES/surgery.dm

affected_respiration_type

The affected respiration type, if the reagent damages/heals oxygen damage of an affected mob. +See "Mob bio-types flags" in /code/_DEFINES/mobs.dm

burning_temperature

what chem is made at the end of a reaction IF the purity is below the recipies purity_min at the END of a reaction only +Thermodynamic vars +How hot this reagent burns when it's on fire - null means it can't burn

burning_volume

How much is consumed when it is burnt per second

chemical_flags

See fermi_readme.dm REAGENT_DEAD_PROCESS, REAGENT_DONOTSPLIT, REAGENT_INVISIBLE, REAGENT_SNEAKYNAME, REAGENT_SPLITRETAINVOL, REAGENT_CANSYNTH, REAGENT_IMPURE

chemical_flags_skyrat

Modular version of chemical_flags, so we don't have to worry about +it causing conflicts in the future.

color

color it looks in containers etc

creation_purity

the purity of the reagent on creation (i.e. when it's added to a mob and its purity split it into 2 chems; the purity of the resultant chems are kept as 1, this tracks what the purity was before that)

current_cycle

increments everytime on_mob_life is called

data

Special data associated with the reagent that will be passed on upon transfer to a new holder.

default_container

The default reagent container for the reagent, used for icon generation

description

nor do they have descriptions

evaporates

Whether it will evaporate if left untouched on a liquids simulated puddle

fallback_icon

Icon for fallback item displayed in a tourist's thought bubble for if this reagent had no associated glass_style datum.

fallback_icon_state

Icon state for fallback item displayed in a tourist's thought bubble for if this reagent had no associated glass_style datum.

fire_needs_oxygen

Whether a fire from this requires oxygen in the atmosphere

glass_price

The amount a robot will pay for a glass of this (20 units but can be higher if you pour more, be frugal!)

holder

reagent holder this belongs to

inverse_chem

What chem is metabolised when purity is below inverse_chem_val

inverse_chem_val

If the impurity is below 0.5, replace ALL of the chem with inverse_chem upon metabolising

liquid_fire_burnrate

How fast does the liquid burn on simulated turfs, if it does

liquid_fire_power

How much fire power does the liquid have, for burning on simulated liquids. Not enough fire power/unit of entire mixture may result in no fire

mass

The molar mass of the reagent - if you're adding a reagent that doesn't have a recipe, just add a random number between 10 - 800. Higher numbers are "harder" but it's mostly arbitary.

material

Are we from a material? We might wanna know that for special stuff. Like metalgen. Is replaced with a ref of the material on New()

metabolization_rate

how fast the reagent is metabolized by the mob

metabolized_traits

A list of traits to apply while the reagent is being metabolized.

metabolizing

is it currently metabolizing

name

datums don't have names by default

overdose_threshold

above this overdoses happen

overdosed

You fucked up and this is now triggering its overdose effects, purge that shit quick.

penetrates_skin

The set of exposure methods this penetrates skin with.

ph

pH of the reagent

process_flags

What can process this? REAGENT_ORGANIC, REAGENT_SYNTHETIC, or REAGENT_ORGANIC | REAGENT_SYNTHETIC?. We'll assume by default that it affects organics.

purity

Purity of the reagent - for use with internal reaction mechanics only. Use below (creation_purity) if you're writing purity effects into a reagent's use mechanics.

reagent_removal_skip_list

A list of causes why this chem should skip being removed, if the length is 0 it will be removed from holder naturally, if this is >0 it will not be removed from the holder.

reagent_state

LIQUID, SOLID, GAS

reagent_weight

affects how far it travels when sprayed

restaurant_order

When ordered in a restaurant, what custom order do we create?

self_consuming

if false stops metab in liverless mobs

specific_heat

J/(K*mol)

taste_description

used by taste messages

taste_mult

how this taste compares to others. Higher values means it is more noticable

volume

pretend this is moles

Proc Details

Destroy

This should only be called by the holder, so it's already handled clearing its references

burn

Called whenever a reagent is on fire, or is in a holder that is on fire. (WIP)

expose_atom

Applies this reagent to an /atom

expose_mob

Applies this reagent to a /mob/living

expose_obj

Applies this reagent to an /obj

expose_turf

Applies this reagent to a /turf

get_inverse_purity

Gets the inverse purity of this reagent. Mostly used when converting from a normal reagent to its inverse one.

+

Arguments

+

get_taste_description

Should return a associative list where keys are taste descriptions and values are strength ratios

metabolize_reagent

Metabolizes a portion of the reagent after on_mob_life() is called

normalise_creation_purity

Used when you want the default reagents purity to be equal to the normal effects +(i.e. if default purity is 0.75, and your reacted purity is 1, then it will return 1.33)

+

Arguments

+

on_burn_wound_processing

Called in burns.dm if the reagent has the REAGENT_AFFECTS_WOUNDS process flag

on_hydroponics_apply

Called when this chemical is processed in a hydroponics tray.

+

Can affect plant's health, stats, or cause the plant to react in certain ways.

on_merge

Called when two reagents of the same are mixing.

on_mob_add

Called when this reagent is first added to a mob

on_mob_dead

Called when a reagent is inside of a mob when they are dead if the reagent has the REAGENT_DEAD_PROCESS flag +Returning UPDATE_MOB_HEALTH will cause updatehealth() to be called on the holder mob by /datum/reagents/proc/metabolize.

on_mob_delete

Called when this reagent is removed while inside a mob

on_mob_end_metabolize

Called when this reagent stops being metabolized by a liver

on_mob_life

Ticks on mob Life() for as long as the reagent remains in the mob's reagents.

+

Usage: Parent should be called first using . = ..()

+

Exceptions: If the holder var needs to be accessed, call the parent afterward that as it can become null if the reagent is fully removed.

+

Returns: UPDATE_MOB_HEALTH only if you need to update the health of a mob (this is only needed when damage is dealt to the mob)

+

Arguments

+

on_mob_metabolize

Called when this reagent first starts being metabolized by a liver

on_new

Called after add_reagents creates a new reagent.

on_transfer

Called after a reagent is transferred

overdose_process

Called if the reagent has passed the overdose threshold and is set to be triggering overdose effects. Returning UPDATE_MOB_HEALTH will cause updatehealth() to be called on the holder mob by /datum/reagents/proc/metabolize.

overdose_start

Called when an overdose starts. Returning UPDATE_MOB_HEALTH will cause updatehealth() to be called on the holder mob by /datum/reagents/proc/metabolize.

\ No newline at end of file diff --git a/datum/reagent/ants.html b/datum/reagent/ants.html new file mode 100644 index 0000000000000..a47cd1b93af21 --- /dev/null +++ b/datum/reagent/ants.html @@ -0,0 +1 @@ +/datum/reagent/ants - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ants

Vars

amount_leftTells the debuff how many ants we are being covered with.
ant_damageAmount of damage done per tick the ants have been in the person's system
ant_screamsList of possible common statements to scream when eating ants
ant_ticksNumber of ticks the ants have been in the person's body
ants_decalDecal to spawn when spilled
status_effectStatus effect applied by splashing ants

Var Details

amount_left

Tells the debuff how many ants we are being covered with.

ant_damage

Amount of damage done per tick the ants have been in the person's system

ant_screams

List of possible common statements to scream when eating ants

ant_ticks

Number of ticks the ants have been in the person's body

ants_decal

Decal to spawn when spilled

status_effect

Status effect applied by splashing ants

\ No newline at end of file diff --git a/datum/reagent/blob.html b/datum/reagent/blob.html new file mode 100644 index 0000000000000..46ee00bc4fbc4 --- /dev/null +++ b/datum/reagent/blob.html @@ -0,0 +1 @@ +/datum/reagent/blob - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

blob

Procs

expose_mobExists to earmark the new overmind arg used by blob reagents.
return_mob_expose_reac_volumeUsed by blob reagents to calculate the reaction volume they should use when exposing mobs.

Proc Details

expose_mob

Exists to earmark the new overmind arg used by blob reagents.

return_mob_expose_reac_volume

Used by blob reagents to calculate the reaction volume they should use when exposing mobs.

\ No newline at end of file diff --git a/datum/reagent/blood/bloodsucker.html b/datum/reagent/blood/bloodsucker.html new file mode 100644 index 0000000000000..a1a357ba6321a --- /dev/null +++ b/datum/reagent/blood/bloodsucker.html @@ -0,0 +1,2 @@ +/datum/reagent/blood/bloodsucker - /tg/ Station 13
/tg/ Station 13 - Modules - Types

bloodsucker

Bloodsucker Blood

+

Artificially made, this must be fed to ex-ghouls to keep them on their high.

\ No newline at end of file diff --git a/datum/reagent/catalyst_agent.html b/datum/reagent/catalyst_agent.html new file mode 100644 index 0000000000000..a0709d84e30ad --- /dev/null +++ b/datum/reagent/catalyst_agent.html @@ -0,0 +1,2 @@ +/datum/reagent/catalyst_agent - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

catalyst_agent

NICHE +These alter reaction conditions while they're in the beaker

Vars

min_volumeThe minimumvolume required in the beaker for them to have an effect
modifierThe value in which the associated type is modified
target_reagent_typeThe typepath of the reagent they that they affect

Var Details

min_volume

The minimumvolume required in the beaker for them to have an effect

modifier

The value in which the associated type is modified

target_reagent_type

The typepath of the reagent they that they affect

\ No newline at end of file diff --git a/datum/reagent/colorful_reagent.html b/datum/reagent/colorful_reagent.html new file mode 100644 index 0000000000000..3be47a4530700 --- /dev/null +++ b/datum/reagent/colorful_reagent.html @@ -0,0 +1 @@ +/datum/reagent/colorful_reagent - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

colorful_reagent

Procs

expose_atomColors anything it touches a random color.

Proc Details

expose_atom

Colors anything it touches a random color.

\ No newline at end of file diff --git a/datum/reagent/consumable.html b/datum/reagent/consumable.html new file mode 100644 index 0000000000000..c8d7ea955e034 --- /dev/null +++ b/datum/reagent/consumable.html @@ -0,0 +1 @@ +/datum/reagent/consumable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

consumable

Vars

nutriment_factorHow much nutrition this reagent supplies
qualityaffects mood, typically higher for mixed drinks with more complex recipes'

Procs

get_nutriment_factorGets just how much nutrition this reagent is worth for the passed mob

Var Details

nutriment_factor

How much nutrition this reagent supplies

quality

affects mood, typically higher for mixed drinks with more complex recipes'

Proc Details

get_nutriment_factor

Gets just how much nutrition this reagent is worth for the passed mob

\ No newline at end of file diff --git a/datum/reagent/consumable/ethanol.html b/datum/reagent/consumable/ethanol.html new file mode 100644 index 0000000000000..4e184062a6fb9 --- /dev/null +++ b/datum/reagent/consumable/ethanol.html @@ -0,0 +1,20 @@ +/datum/reagent/consumable/ethanol - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ethanol

Vars

boozepwrBoozepwr Chart

Var Details

boozepwr

Boozepwr Chart

+

Higher numbers equal higher hardness, higher hardness equals more intense alcohol poisoning

+

Note that all higher effects of alcohol poisoning will inherit effects for smaller amounts +(i.e. light poisoning inherts from slight poisoning) +In addition, severe effects won't always trigger unless the drink is poisonously strong +All effects don't start immediately, but rather get worse over time; the rate is affected by the imbiber's alcohol tolerance +(see /datum/status_effect/inebriated)

+
\ No newline at end of file diff --git a/datum/reagent/consumable/ethanol/demonsblood.html b/datum/reagent/consumable/ethanol/demonsblood.html new file mode 100644 index 0000000000000..d2bbffd5ae23d --- /dev/null +++ b/datum/reagent/consumable/ethanol/demonsblood.html @@ -0,0 +1 @@ +/datum/reagent/consumable/ethanol/demonsblood - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

demonsblood

Procs

pre_bloodcrawl_consumedPrevents the imbiber from being dragged into a pool of blood by a slaughter demon.

Proc Details

pre_bloodcrawl_consumed

Prevents the imbiber from being dragged into a pool of blood by a slaughter demon.

\ No newline at end of file diff --git a/datum/reagent/consumable/ethanol/devilskiss.html b/datum/reagent/consumable/ethanol/devilskiss.html new file mode 100644 index 0000000000000..904d4d08e899b --- /dev/null +++ b/datum/reagent/consumable/ethanol/devilskiss.html @@ -0,0 +1 @@ +/datum/reagent/consumable/ethanol/devilskiss - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

devilskiss

Procs

on_bloodcrawl_consumedIf eaten by a slaughter demon, the demon will regret it.

Proc Details

on_bloodcrawl_consumed

If eaten by a slaughter demon, the demon will regret it.

\ No newline at end of file diff --git a/datum/reagent/consumable/frostoil.html b/datum/reagent/consumable/frostoil.html new file mode 100644 index 0000000000000..7f45b0209cb4d --- /dev/null +++ b/datum/reagent/consumable/frostoil.html @@ -0,0 +1 @@ +/datum/reagent/consumable/frostoil - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

frostoil

Vars

specific_heat40 joules per unit.

Var Details

specific_heat

40 joules per unit.

\ No newline at end of file diff --git a/datum/reagent/consumable/nutriment/cloth_fibers.html b/datum/reagent/consumable/nutriment/cloth_fibers.html new file mode 100644 index 0000000000000..93c44b2b90e64 --- /dev/null +++ b/datum/reagent/consumable/nutriment/cloth_fibers.html @@ -0,0 +1 @@ +/datum/reagent/consumable/nutriment/cloth_fibers - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cloth_fibers

Vars

delayed_satiety_drainAmount of satiety that will be drained when the cloth_fibers is fully metabolized

Var Details

delayed_satiety_drain

Amount of satiety that will be drained when the cloth_fibers is fully metabolized

\ No newline at end of file diff --git a/datum/reagent/consumable/rootbeer.html b/datum/reagent/consumable/rootbeer.html new file mode 100644 index 0000000000000..6c6e8d4386fb9 --- /dev/null +++ b/datum/reagent/consumable/rootbeer.html @@ -0,0 +1 @@ +/datum/reagent/consumable/rootbeer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rootbeer

Vars

effect_enabledIf we activated the effect

Var Details

effect_enabled

If we activated the effect

\ No newline at end of file diff --git a/datum/reagent/determination.html b/datum/reagent/determination.html new file mode 100644 index 0000000000000..4cafb25965f7a --- /dev/null +++ b/datum/reagent/determination.html @@ -0,0 +1 @@ +/datum/reagent/determination - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

determination

Vars

significantWhether we've had at least WOUND_DETERMINATION_SEVERE (2.5u) of determination at any given time. No damage slowdown immunity or indication we're having a second wind if it's just a single moderate wound

Var Details

significant

Whether we've had at least WOUND_DETERMINATION_SEVERE (2.5u) of determination at any given time. No damage slowdown immunity or indication we're having a second wind if it's just a single moderate wound

\ No newline at end of file diff --git a/datum/reagent/drug/aphrodisiac.html b/datum/reagent/drug/aphrodisiac.html new file mode 100644 index 0000000000000..fb309c864aab1 --- /dev/null +++ b/datum/reagent/drug/aphrodisiac.html @@ -0,0 +1,52 @@ +/datum/reagent/drug/aphrodisiac - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

aphrodisiac

Vars

arousal_adjust_amountThe amount to adjust the mob's arousal by
balls_big_sizeThe size at which the testicles are considered 'big'
balls_enormous_size_thresholdMake the balls enormous only when the penis reaches a certain size
balls_increase_chance% chance for testicle growth to occur
balls_max_sizeLargest size the chem can make a mob's balls
balls_min_sizeSmallest size the chem can make a mob's balls
breast_minimum_sizeSmallest size the chem can make a mob's breasts
breast_size_increase_stepHow much breasts are increased in size each time it's run
breast_size_reduction_stepHow much to reduce the size of the breasts each time it's run
damage_chance% chance for damage to be applied when the organ is too large and the mob is clothed
enlargement_amountCounts up to a threshold before triggering enlargement effects
enlargement_thresholdCount to reach before effects
enlarger_increase_stepHow much to increase the count by each process
life_pref_datumWhat preference you need enabled for effects on life
max_breast_sizeLargest size the chem can make a mob's breasts
overdose_pref_datumWhat preference you need enabled for effects on overdose
pain_adjust_amountThe amount to adjust the mob's pain by
penis_girth_increase_stepHow much the penis is increased in girth each time it's run
penis_girth_reduction_stepHow much to reduce the girth of the penis each time it's run
penis_length_increase_stepHow much the penis is increased in size each time it's run
penis_max_girthLargest girth the chem can make a mob's penis
penis_max_lengthLargest length the chem can make a mob's penis
penis_min_lengthSmallest size the chem can make a mob's penis
penis_minimum_girthSmallest girth the chem can make a mob's penis
penis_size_reduction_stepHow much to reduce the size of the penis each time it's run
pleasure_adjust_amountThe amount to adjust the mob's pleasure by
testicles_size_increase_stepHow much the testicles are increased in size each time it's run
testicles_size_reduction_stepHow much to reduce the size of the balls each time it's run

Procs

change_genderHandle changing of gender
create_breastsHandle creation of breasts
create_genitals---- New genitalia creation ----
create_penisHandle creation of penis
create_testiclesHandle creation of testicles
create_vaginaHandle creation of vagina
create_wombHandle creation of womb
grow_ballsHandle testicle growth
grow_breastsHandle breast growth
grow_penis---- Genital Growth ----
growth_to_chatHelper function used to display the messages that appear in chat while the growth is occurring
life_effectsRuns on life after preference checks. Use this instead of on_mob_life
overdose_effectsRuns on OD process after preference checks. Use this instead of overdose_process
remove_genitals---- Genital Removal ----
shrink_genitals---- Genital Shrinkage ----
shrink_penisHandle penis shrinkage
shrink_testiclesHandle testicle shrinkage
update_appearanceCalled after growth/shrinkage to update mob sprites

Var Details

arousal_adjust_amount

The amount to adjust the mob's arousal by

balls_big_size

The size at which the testicles are considered 'big'

balls_enormous_size_threshold

Make the balls enormous only when the penis reaches a certain size

balls_increase_chance

% chance for testicle growth to occur

balls_max_size

Largest size the chem can make a mob's balls

balls_min_size

Smallest size the chem can make a mob's balls

breast_minimum_size

Smallest size the chem can make a mob's breasts

breast_size_increase_step

How much breasts are increased in size each time it's run

breast_size_reduction_step

How much to reduce the size of the breasts each time it's run

damage_chance

% chance for damage to be applied when the organ is too large and the mob is clothed

enlargement_amount

Counts up to a threshold before triggering enlargement effects

enlargement_threshold

Count to reach before effects

enlarger_increase_step

How much to increase the count by each process

life_pref_datum

What preference you need enabled for effects on life

max_breast_size

Largest size the chem can make a mob's breasts

overdose_pref_datum

What preference you need enabled for effects on overdose

pain_adjust_amount

The amount to adjust the mob's pain by

penis_girth_increase_step

How much the penis is increased in girth each time it's run

penis_girth_reduction_step

How much to reduce the girth of the penis each time it's run

penis_length_increase_step

How much the penis is increased in size each time it's run

penis_max_girth

Largest girth the chem can make a mob's penis

penis_max_length

Largest length the chem can make a mob's penis

penis_min_length

Smallest size the chem can make a mob's penis

penis_minimum_girth

Smallest girth the chem can make a mob's penis

penis_size_reduction_step

How much to reduce the size of the penis each time it's run

pleasure_adjust_amount

The amount to adjust the mob's pleasure by

testicles_size_increase_step

How much the testicles are increased in size each time it's run

testicles_size_reduction_step

How much to reduce the size of the balls each time it's run

Proc Details

change_gender

Handle changing of gender

+

exposed_mob - the mob being affected by the reagent +new_gender - the gender to change to +gender_fluid - whether the user has consumed both succubus milk and incubus draft simultaneously

create_breasts

Handle creation of breasts

+

exposed_mob - the mob being affected by the reagent +suppress_chat - whether or not to display a message in chat +mob_breasts - the mob's breasts

create_genitals

---- New genitalia creation ----

+

Handle creation of new genitals

+

exposed_mob - the mob being affected by the reagent +suppress_chat - whether or not to display a message in chat +genitals_to_create - a list of the genitals to create

create_penis

Handle creation of penis

+

exposed_mob - the mob being affected by the reagent +suppress_chat - whether or not to display a message in chat +mob_penis the mob's penis

create_testicles

Handle creation of testicles

+

exposed_mob - the mob being affected by the reagent +suppress_chat - whether or not to display a message in chat +mob_testicles - the mob's testicles

create_vagina

Handle creation of vagina

+

exposed_mob - the mob being affected by the reagent +suppress_chat - whether or not to display a message in chat +mob_vagina - the mob's vagina

create_womb

Handle creation of womb

+

exposed_mob - the mob being affected by the reagent +suppress_chat - whether or not to display a message in chat +mob_womb - the mob's womb

grow_balls

Handle testicle growth

+

exposed_mob - the mob being affected by the reagent +suppress_chat - whether or not to display a message in chat +mob_testicles - the testicles to cause to grow

grow_breasts

Handle breast growth

+

exposed_mob - the mob being affected by the reagent +suppress_chat - whether or not to display a message in chat +mob_breasts the breasts to cause to grow

grow_penis

---- Genital Growth ----

+

Handle penis growth

+

exposed_mob - the mob being affected by the reagent +suppress_chat - whether or not to display a message in chat +mob_penis the penis to cause to grow

growth_to_chat

Helper function used to display the messages that appear in chat while the growth is occurring

+

exposed_mob - the mob being affected by the reagent +genital - the genital that is causing the messages +suppress_chat - whether or not to display a message in chat

life_effects

Runs on life after preference checks. Use this instead of on_mob_life

overdose_effects

Runs on OD process after preference checks. Use this instead of overdose_process

remove_genitals

---- Genital Removal ----

+

Handle removal of old genitals

+

exposed_mob - the mob being affected by the reagent +suppress_chat - whether or not to display a message in chat +genitals_to_remove - the list of genitals to be removed +message - the message to send to chat

shrink_genitals

---- Genital Shrinkage ----

+

Handle genital shrinkage

+

exposed_mob - the mob being affected by the reagent +suppress_chat - whether or not to display a message in chat +genitals_to_shrink - a list of the genitals to be shrunk

shrink_penis

Handle penis shrinkage

+

exposed_mob - the mob being affected by the reagent +suppress_chat - whether or not to display a message in chat +mob_penis the penis to shrink

shrink_testicles

Handle testicle shrinkage

+

exposed_mob - the mob being affected by the reagent +suppress_chat - whether or not to display a message in chat +mob_penis, mob_testicles - the mob's penis and testicles +message - the message to send to chat

update_appearance

Called after growth/shrinkage to update mob sprites

\ No newline at end of file diff --git a/datum/reagent/drug/aphrodisiac/camphor/pentacamphor.html b/datum/reagent/drug/aphrodisiac/camphor/pentacamphor.html new file mode 100644 index 0000000000000..6f9f60ff11f43 --- /dev/null +++ b/datum/reagent/drug/aphrodisiac/camphor/pentacamphor.html @@ -0,0 +1 @@ +/datum/reagent/drug/aphrodisiac/camphor/pentacamphor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pentacamphor

Vars

reagent_reduction_amountHow much of the given reagent to remove per operation

Var Details

reagent_reduction_amount

How much of the given reagent to remove per operation

\ No newline at end of file diff --git a/datum/reagent/drug/aphrodisiac/crocin.html b/datum/reagent/drug/aphrodisiac/crocin.html new file mode 100644 index 0000000000000..b867d97e9687b --- /dev/null +++ b/datum/reagent/drug/aphrodisiac/crocin.html @@ -0,0 +1 @@ +/datum/reagent/drug/aphrodisiac/crocin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crocin

Vars

emote_probabilityProbability of the chem triggering an emote, as a %, run on mob life
possible_aroused_emotesA list of possible emotes the chem is able to trigger
possible_aroused_thoughtsA list of possible to_chat messages the chem is able to trigger
thought_probabilityProbability of the chem triggering a to_chat, as a %, run on mob life

Var Details

emote_probability

Probability of the chem triggering an emote, as a %, run on mob life

possible_aroused_emotes

A list of possible emotes the chem is able to trigger

possible_aroused_thoughts

A list of possible to_chat messages the chem is able to trigger

thought_probability

Probability of the chem triggering a to_chat, as a %, run on mob life

\ No newline at end of file diff --git a/datum/reagent/drug/aphrodisiac/crocin/hexacrocin.html b/datum/reagent/drug/aphrodisiac/crocin/hexacrocin.html new file mode 100644 index 0000000000000..58e2e3a248e41 --- /dev/null +++ b/datum/reagent/drug/aphrodisiac/crocin/hexacrocin.html @@ -0,0 +1 @@ +/datum/reagent/drug/aphrodisiac/crocin/hexacrocin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hexacrocin

Vars

extreme_aroused_thoughtsA list of possible to_chat messages the chem is able to trigger after enough cycles in the mobs system
extreme_thought_thresholdHow many cycles the chem has to be in the mob's system before triggering extreme effects

Var Details

extreme_aroused_thoughts

A list of possible to_chat messages the chem is able to trigger after enough cycles in the mobs system

extreme_thought_threshold

How many cycles the chem has to be in the mob's system before triggering extreme effects

\ No newline at end of file diff --git a/datum/reagent/drug/aphrodisiac/dopamine.html b/datum/reagent/drug/aphrodisiac/dopamine.html new file mode 100644 index 0000000000000..f093917459c99 --- /dev/null +++ b/datum/reagent/drug/aphrodisiac/dopamine.html @@ -0,0 +1 @@ +/datum/reagent/drug/aphrodisiac/dopamine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dopamine

Vars

drugginess_amountHow druggy the chem will make the mob
drugginess_chanceHow likely the drug is to make the mob druggy per life process

Var Details

drugginess_amount

How druggy the chem will make the mob

drugginess_chance

How likely the drug is to make the mob druggy per life process

\ No newline at end of file diff --git a/datum/reagent/drug/aphrodisiac/incubus_draft.html b/datum/reagent/drug/aphrodisiac/incubus_draft.html new file mode 100644 index 0000000000000..a0b3dbe89bc43 --- /dev/null +++ b/datum/reagent/drug/aphrodisiac/incubus_draft.html @@ -0,0 +1,8 @@ +/datum/reagent/drug/aphrodisiac/incubus_draft - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

incubus_draft

Vars

ball_action_text_listWording chosen to grow the balls, shown only to the mob.
bigger_cock_text_listSynonyms for bigger cock.
cock_action_text_listWording chosen to extend the cock, shown only to the mob.
cock_text_listSynonyms for cock.
public_cock_action_text_listWording chosen to be seen by other mobs, while mob is unclothed.
words_for_bigger_cockWords for the cock when huge.

Procs

growth_to_chatHelper function used to display the messages that appear in chat while the growth is occurring
penis_growth_to_chatHelper function for the helper function used to display the messages that appear in chat while the growth is occurring
testicles_growth_to_chatHelper function for the helper function used to display the messages that appear in chat while the testicles growth is occurring

Var Details

ball_action_text_list

Wording chosen to grow the balls, shown only to the mob.

bigger_cock_text_list

Synonyms for bigger cock.

cock_action_text_list

Wording chosen to extend the cock, shown only to the mob.

cock_text_list

Synonyms for cock.

public_cock_action_text_list

Wording chosen to be seen by other mobs, while mob is unclothed.

words_for_bigger_cock

Words for the cock when huge.

Proc Details

growth_to_chat

Helper function used to display the messages that appear in chat while the growth is occurring

+

exposed_mob - the mob being affected by the reagent +genital - the genital that is causing the messages

penis_growth_to_chat

Helper function for the helper function used to display the messages that appear in chat while the growth is occurring

+

exposed_mob - the mob being affected by the reagent +mob_penis - the penis that is causing the message +NOTE: this function doesn't get called often enough to warrant suppressing chat, hence the var's omission

testicles_growth_to_chat

Helper function for the helper function used to display the messages that appear in chat while the testicles growth is occurring

+

exposed_mob - the mob being affected by the reagent +mob_testicles - the testicles that are causing the message

\ No newline at end of file diff --git a/datum/reagent/drug/aphrodisiac/succubus_milk.html b/datum/reagent/drug/aphrodisiac/succubus_milk.html new file mode 100644 index 0000000000000..24014da406160 --- /dev/null +++ b/datum/reagent/drug/aphrodisiac/succubus_milk.html @@ -0,0 +1,5 @@ +/datum/reagent/drug/aphrodisiac/succubus_milk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

succubus_milk

Vars

action_text_listWording chosen to expand the breasts,shown only to the mob.
bigger_boob_text_listSynonyms for bigger breasts.
boob_text_listSynonyms for breasts.
covered_boobs_listSynonyms for the chest.
notice_boobsWording chosen to be seen by other mobs, while mob is clothed.
public_action_text_listWording chosen to be seen by other mobs, while mob is unclothed.
public_bigger_action_text_listWording chosen to be seen by other mobs, regardless of whether mob is clothed/unclothed.
words_for_biggerWords for the breasts when huge.

Procs

growth_to_chatHelper function used to display the messages that appear in chat while the growth is occurring

Var Details

action_text_list

Wording chosen to expand the breasts,shown only to the mob.

bigger_boob_text_list

Synonyms for bigger breasts.

boob_text_list

Synonyms for breasts.

covered_boobs_list

Synonyms for the chest.

notice_boobs

Wording chosen to be seen by other mobs, while mob is clothed.

public_action_text_list

Wording chosen to be seen by other mobs, while mob is unclothed.

public_bigger_action_text_list

Wording chosen to be seen by other mobs, regardless of whether mob is clothed/unclothed.

words_for_bigger

Words for the breasts when huge.

Proc Details

growth_to_chat

Helper function used to display the messages that appear in chat while the growth is occurring

+

exposed_mob - the mob being affected by the reagent +genital - the genital that is causing the messages +suppress_chat - whether or not to display a message in chat +NOTE: this function doesn't get called often enough to warrant suppressing chat, hence the var's omission

\ No newline at end of file diff --git a/datum/reagent/drug/blastoff.html b/datum/reagent/drug/blastoff.html new file mode 100644 index 0000000000000..e5dc8d026f15c --- /dev/null +++ b/datum/reagent/drug/blastoff.html @@ -0,0 +1 @@ +/datum/reagent/drug/blastoff - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

blastoff

Vars

flip_countHow many flips have we done so far?
spin_countHow many spin have we done so far?
super_flip_requirementHow many flips for a super flip?

Procs

on_flipThis proc listens to the flip signal and throws the mob every third flip
on_spinThis proc listens to the spin signal and throws the mob every third spin

Var Details

flip_count

How many flips have we done so far?

spin_count

How many spin have we done so far?

super_flip_requirement

How many flips for a super flip?

Proc Details

on_flip

This proc listens to the flip signal and throws the mob every third flip

on_spin

This proc listens to the spin signal and throws the mob every third spin

\ No newline at end of file diff --git a/datum/reagent/drug/demoneye.html b/datum/reagent/drug/demoneye.html new file mode 100644 index 0000000000000..9bbc6b1502ef0 --- /dev/null +++ b/datum/reagent/drug/demoneye.html @@ -0,0 +1 @@ +/datum/reagent/drug/demoneye - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

demoneye

Vars

constant_dose_timeHow much time has the drug been in them?
user_left_eye_colorWhat the original color of the user's left eye is
user_right_eye_colorWhat the original color of the user's right eye is

Procs

hurt_that_mans_organsHurts a random organ, if its 'really_bad' we'll vomit blood too

Var Details

constant_dose_time

How much time has the drug been in them?

user_left_eye_color

What the original color of the user's left eye is

user_right_eye_color

What the original color of the user's right eye is

Proc Details

hurt_that_mans_organs

Hurts a random organ, if its 'really_bad' we'll vomit blood too

\ No newline at end of file diff --git a/datum/reagent/drug/saturnx.html b/datum/reagent/drug/saturnx.html new file mode 100644 index 0000000000000..315d3e7d83e1d --- /dev/null +++ b/datum/reagent/drug/saturnx.html @@ -0,0 +1 @@ +/datum/reagent/drug/saturnx - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

saturnx

Procs

turn_man_invisibleThis proc turns the living mob passed as the arg "invisible_man"s invisible by giving him the invisible man trait and updating his body, this changes the sprite of all his organic limbs to a 1 alpha version.

Proc Details

turn_man_invisible

This proc turns the living mob passed as the arg "invisible_man"s invisible by giving him the invisible man trait and updating his body, this changes the sprite of all his organic limbs to a 1 alpha version.

\ No newline at end of file diff --git a/datum/reagent/drug/twitch.html b/datum/reagent/drug/twitch.html new file mode 100644 index 0000000000000..cfb690e735cac --- /dev/null +++ b/datum/reagent/drug/twitch.html @@ -0,0 +1 @@ +/datum/reagent/drug/twitch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

twitch

Vars

constant_dose_timeHow much time has the drug been in them?
speech_effect_spanWhat type of span class do we change heard speech to?

Procs

distort_hearingChanges heard message spans into that defined on the drug earlier
dodge_bulletsTries to dodge incoming bullets if we aren't disabled for any reasons
on_movementLeaves an afterimage behind the mob when they move

Var Details

constant_dose_time

How much time has the drug been in them?

speech_effect_span

What type of span class do we change heard speech to?

Proc Details

distort_hearing

Changes heard message spans into that defined on the drug earlier

dodge_bullets

Tries to dodge incoming bullets if we aren't disabled for any reasons

on_movement

Leaves an afterimage behind the mob when they move

\ No newline at end of file diff --git a/datum/reagent/eigenstate.html b/datum/reagent/eigenstate.html new file mode 100644 index 0000000000000..a34c53e64790c --- /dev/null +++ b/datum/reagent/eigenstate.html @@ -0,0 +1 @@ +/datum/reagent/eigenstate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

eigenstate

Vars

eigenstateThe return point indicator
location_createdThe creation point assigned during the reaction
location_returnThe point you're returning to after the reagent is removed

Procs

expose_turfLets you link lockers together

Var Details

eigenstate

The return point indicator

location_created

The creation point assigned during the reaction

location_return

The point you're returning to after the reagent is removed

Proc Details

expose_turf

Lets you link lockers together

\ No newline at end of file diff --git a/datum/reagent/impurity/inacusiate.html b/datum/reagent/impurity/inacusiate.html new file mode 100644 index 0000000000000..e477149f4be67 --- /dev/null +++ b/datum/reagent/impurity/inacusiate.html @@ -0,0 +1 @@ +/datum/reagent/impurity/inacusiate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

inacusiate

Vars

random_spanThe random span we start hearing in

Var Details

random_span

The random span we start hearing in

\ No newline at end of file diff --git a/datum/reagent/impurity/mannitol.html b/datum/reagent/impurity/mannitol.html new file mode 100644 index 0000000000000..90fd9d3ed8748 --- /dev/null +++ b/datum/reagent/impurity/mannitol.html @@ -0,0 +1 @@ +/datum/reagent/impurity/mannitol - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mannitol

Vars

speech_optionThe speech we're forcing on the affected mob

Var Details

speech_option

The speech we're forcing on the affected mob

\ No newline at end of file diff --git a/datum/reagent/inverse.html b/datum/reagent/inverse.html new file mode 100644 index 0000000000000..2b67f13413ff8 --- /dev/null +++ b/datum/reagent/inverse.html @@ -0,0 +1 @@ +/datum/reagent/inverse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

inverse

Vars

tox_damagehow much this reagent does for tox damage too

Var Details

tox_damage

how much this reagent does for tox damage too

\ No newline at end of file diff --git a/datum/reagent/inverse/aiuri.html b/datum/reagent/inverse/aiuri.html new file mode 100644 index 0000000000000..4d7666871b363 --- /dev/null +++ b/datum/reagent/inverse/aiuri.html @@ -0,0 +1 @@ +/datum/reagent/inverse/aiuri - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

aiuri

Vars

amount_of_blur_appliedThe amount of blur applied per second. Given the average on_life interval is 2 seconds, that'd be 2.5s.

Var Details

amount_of_blur_applied

The amount of blur applied per second. Given the average on_life interval is 2 seconds, that'd be 2.5s.

\ No newline at end of file diff --git a/datum/reagent/inverse/corazargh.html b/datum/reagent/inverse/corazargh.html new file mode 100644 index 0000000000000..b7d1694389072 --- /dev/null +++ b/datum/reagent/inverse/corazargh.html @@ -0,0 +1 @@ +/datum/reagent/inverse/corazargh - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

corazargh

Procs

on_mob_end_metabolizeWe're done - remove the curse
on_mob_metabolizeGive the victim the manual heart beating component.

Proc Details

on_mob_end_metabolize

We're done - remove the curse

on_mob_metabolize

Give the victim the manual heart beating component.

\ No newline at end of file diff --git a/datum/reagent/inverse/cryostylane.html b/datum/reagent/inverse/cryostylane.html new file mode 100644 index 0000000000000..da06483872fbb --- /dev/null +++ b/datum/reagent/inverse/cryostylane.html @@ -0,0 +1 @@ +/datum/reagent/inverse/cryostylane - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cryostylane

Vars

cubeThe cube we're stasis'd in

Var Details

cube

The cube we're stasis'd in

\ No newline at end of file diff --git a/datum/reagent/inverse/healing/syriniver.html b/datum/reagent/inverse/healing/syriniver.html new file mode 100644 index 0000000000000..945a8f0a454c7 --- /dev/null +++ b/datum/reagent/inverse/healing/syriniver.html @@ -0,0 +1 @@ +/datum/reagent/inverse/healing/syriniver - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

syriniver

Vars

cached_reagent_listThe list of reagents we've affected

Var Details

cached_reagent_list

The list of reagents we've affected

\ No newline at end of file diff --git a/datum/reagent/inverse/ichiyuri.html b/datum/reagent/inverse/ichiyuri.html new file mode 100644 index 0000000000000..292ab1f5f3e9d --- /dev/null +++ b/datum/reagent/inverse/ichiyuri.html @@ -0,0 +1 @@ +/datum/reagent/inverse/ichiyuri - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ichiyuri

Vars

resetting_probabilityProbability of scratch - increases as a function of time
spammerPrevents message spam

Var Details

resetting_probability

Probability of scratch - increases as a function of time

spammer

Prevents message spam

\ No newline at end of file diff --git a/datum/reagent/inverse/oculine.html b/datum/reagent/inverse/oculine.html new file mode 100644 index 0000000000000..bcc7d21468119 --- /dev/null +++ b/datum/reagent/inverse/oculine.html @@ -0,0 +1 @@ +/datum/reagent/inverse/oculine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

oculine

Vars

headacheDid we get a headache?

Var Details

headache

Did we get a headache?

\ No newline at end of file diff --git a/datum/reagent/inverse/penthrite.html b/datum/reagent/inverse/penthrite.html new file mode 100644 index 0000000000000..6ddba062f066b --- /dev/null +++ b/datum/reagent/inverse/penthrite.html @@ -0,0 +1,5 @@ +/datum/reagent/inverse/penthrite - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

penthrite

Can bring a corpse back to life temporarily (if heart is intact) +Makes wounds bleed more, if it brought someone back, they take additional brute and heart damage +They can't die during this, but if they're past crit then take increasing stamina damage +If they're past fullcrit, their movement is slowed by half +If they OD, their heart explodes (if they were brought back from the dead)

Vars

back_from_the_deadIf we brought someone back from the dead
trait_buffsList of trait buffs to give to the affected mob, and remove as needed.

Var Details

back_from_the_dead

If we brought someone back from the dead

trait_buffs

List of trait buffs to give to the affected mob, and remove as needed.

\ No newline at end of file diff --git a/datum/reagent/lube.html b/datum/reagent/lube.html new file mode 100644 index 0000000000000..b950243bd2a3c --- /dev/null +++ b/datum/reagent/lube.html @@ -0,0 +1 @@ +/datum/reagent/lube - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lube

Used for clownery

Vars

chemical_flagsWhat kind of slipperiness gets added to turfs

Var Details

chemical_flags

What kind of slipperiness gets added to turfs

\ No newline at end of file diff --git a/datum/reagent/medicine/adminordrazine.html b/datum/reagent/medicine/adminordrazine.html new file mode 100644 index 0000000000000..1c408a41e9b75 --- /dev/null +++ b/datum/reagent/medicine/adminordrazine.html @@ -0,0 +1 @@ +/datum/reagent/medicine/adminordrazine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

adminordrazine

Vars

full_heal_flagsFlags to fullheal every metabolism tick

Var Details

full_heal_flags

Flags to fullheal every metabolism tick

\ No newline at end of file diff --git a/datum/reagent/medicine/antihol.html b/datum/reagent/medicine/antihol.html new file mode 100644 index 0000000000000..3c8e9a2ee76d7 --- /dev/null +++ b/datum/reagent/medicine/antihol.html @@ -0,0 +1,3 @@ +/datum/reagent/medicine/antihol - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

antihol

Vars

status_effects_to_clearAll status effects we remove on metabolize. +Does not include drunk (despite what you may thing) as that's decresed gradually

Var Details

status_effects_to_clear

All status effects we remove on metabolize. +Does not include drunk (despite what you may thing) as that's decresed gradually

\ No newline at end of file diff --git a/datum/reagent/medicine/c2/penthrite.html b/datum/reagent/medicine/c2/penthrite.html new file mode 100644 index 0000000000000..2d0283cc3ef81 --- /dev/null +++ b/datum/reagent/medicine/c2/penthrite.html @@ -0,0 +1 @@ +/datum/reagent/medicine/c2/penthrite - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

penthrite

ORGAN HEALING

Vars

subject_traitsList of traits to add/remove from our subject when we are in their system

Var Details

subject_traits

List of traits to add/remove from our subject when we are in their system

\ No newline at end of file diff --git a/datum/reagent/medicine/c2/seiver.html b/datum/reagent/medicine/c2/seiver.html new file mode 100644 index 0000000000000..fae7df22df180 --- /dev/null +++ b/datum/reagent/medicine/c2/seiver.html @@ -0,0 +1 @@ +/datum/reagent/medicine/c2/seiver - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

seiver

TOXIN

Vars

rads_heal_thresholdTemperatures below this number give radiation healing.

Var Details

rads_heal_threshold

Temperatures below this number give radiation healing.

\ No newline at end of file diff --git a/datum/reagent/medicine/c2/tirimol.html b/datum/reagent/medicine/c2/tirimol.html new file mode 100644 index 0000000000000..6ddd40674c3e0 --- /dev/null +++ b/datum/reagent/medicine/c2/tirimol.html @@ -0,0 +1 @@ +/datum/reagent/medicine/c2/tirimol - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tirimol

Vars

drowsycdA cooldown for spacing bursts of stamina damage

Var Details

drowsycd

A cooldown for spacing bursts of stamina damage

\ No newline at end of file diff --git a/datum/reagent/medicine/coagulant.html b/datum/reagent/medicine/coagulant.html new file mode 100644 index 0000000000000..dc7c91cbbb728 --- /dev/null +++ b/datum/reagent/medicine/coagulant.html @@ -0,0 +1 @@ +/datum/reagent/medicine/coagulant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

coagulant

Vars

clot_rateThe bloodiest wound that the patient has will have its blood_flow reduced by about half this much each second
passive_bleed_modifierWhile this reagent is in our bloodstream, we reduce all bleeding by this factor
was_workingFor tracking when we tell the person we're no longer bleeding
was_working_synthwas_working, but for electrical damage

Var Details

clot_rate

The bloodiest wound that the patient has will have its blood_flow reduced by about half this much each second

passive_bleed_modifier

While this reagent is in our bloodstream, we reduce all bleeding by this factor

was_working

For tracking when we tell the person we're no longer bleeding

was_working_synth

was_working, but for electrical damage

\ No newline at end of file diff --git a/datum/reagent/medicine/earthsblood.html b/datum/reagent/medicine/earthsblood.html new file mode 100644 index 0000000000000..6660402762236 --- /dev/null +++ b/datum/reagent/medicine/earthsblood.html @@ -0,0 +1 @@ +/datum/reagent/medicine/earthsblood - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

earthsblood

Procs

return_hippie_lineReturns a hippie-esque string for the person affected by the reagent to say.

Proc Details

return_hippie_line

Returns a hippie-esque string for the person affected by the reagent to say.

\ No newline at end of file diff --git a/datum/reagent/medicine/nanite_slurry.html b/datum/reagent/medicine/nanite_slurry.html new file mode 100644 index 0000000000000..6b6191969ba1d --- /dev/null +++ b/datum/reagent/medicine/nanite_slurry.html @@ -0,0 +1 @@ +/datum/reagent/medicine/nanite_slurry - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nanite_slurry

Vars

healingHow much brute and burn individually is healed per tick
temperature_changeHow much body temperature is increased by per overdose cycle on robotic bodyparts.

Var Details

healing

How much brute and burn individually is healed per tick

temperature_change

How much body temperature is increased by per overdose cycle on robotic bodyparts.

\ No newline at end of file diff --git a/datum/reagent/medicine/neurine.html b/datum/reagent/medicine/neurine.html new file mode 100644 index 0000000000000..668984b566c42 --- /dev/null +++ b/datum/reagent/medicine/neurine.html @@ -0,0 +1 @@ +/datum/reagent/medicine/neurine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

neurine

Vars

initial_bdamagebrain damage level when we first started taking the chem

Var Details

initial_bdamage

brain damage level when we first started taking the chem

\ No newline at end of file diff --git a/datum/reagent/medicine/oculine.html b/datum/reagent/medicine/oculine.html new file mode 100644 index 0000000000000..01f9e1250b9bc --- /dev/null +++ b/datum/reagent/medicine/oculine.html @@ -0,0 +1 @@ +/datum/reagent/medicine/oculine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

oculine

Vars

delta_lightThe lighting alpha that the mob had on addition

Var Details

delta_light

The lighting alpha that the mob had on addition

\ No newline at end of file diff --git a/datum/reagent/medicine/strange_reagent.html b/datum/reagent/medicine/strange_reagent.html new file mode 100644 index 0000000000000..44e6c65ac79c3 --- /dev/null +++ b/datum/reagent/medicine/strange_reagent.html @@ -0,0 +1 @@ +/datum/reagent/medicine/strange_reagent - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

strange_reagent

Vars

excess_healing_ratioThe ratio of the excess reagent used to contribute to excess healing
healing_per_reagent_unitThe amount of damage a single unit of this will heal
instantDo we instantly revive
max_revive_damage_ratioThe maximum amount of damage we can revive from, as a ratio of max health

Procs

calculate_amount_needed_to_full_healCalculates the amount of reagent that will be needed to both revive and full heal the target. Looks at healing_per_reagent_unit and excess_healing_ratio
calculate_amount_needed_to_reviveCalculates the amount of reagent to at a bare minimum make the target not dead

Var Details

excess_healing_ratio

The ratio of the excess reagent used to contribute to excess healing

healing_per_reagent_unit

The amount of damage a single unit of this will heal

instant

Do we instantly revive

max_revive_damage_ratio

The maximum amount of damage we can revive from, as a ratio of max health

Proc Details

calculate_amount_needed_to_full_heal

Calculates the amount of reagent that will be needed to both revive and full heal the target. Looks at healing_per_reagent_unit and excess_healing_ratio

calculate_amount_needed_to_revive

Calculates the amount of reagent to at a bare minimum make the target not dead

\ No newline at end of file diff --git a/datum/reagent/metalgen.html b/datum/reagent/metalgen.html new file mode 100644 index 0000000000000..6ac05ebee058c --- /dev/null +++ b/datum/reagent/metalgen.html @@ -0,0 +1 @@ +/datum/reagent/metalgen - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

metalgen

Vars

applied_material_flagsThe material flags used to apply the transmuted materials
default_material_amountThe amount of materials to apply to the transmuted objects if they don't contain materials

Procs

metal_morphturn an object into a special material

Var Details

applied_material_flags

The material flags used to apply the transmuted materials

default_material_amount

The amount of materials to apply to the transmuted objects if they don't contain materials

Proc Details

metal_morph

turn an object into a special material

\ No newline at end of file diff --git a/datum/reagent/toxin.html b/datum/reagent/toxin.html new file mode 100644 index 0000000000000..cfff6c8f6a3c6 --- /dev/null +++ b/datum/reagent/toxin.html @@ -0,0 +1 @@ +/datum/reagent/toxin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

toxin

Poison stuff (Toxins & Acids)

Vars

health_requiredThe afflicted must be above this health value in order for the toxin to deal damage
liver_damage_multiplierThe amount to multiply the liver damage this toxin does by (Handled solely in liver code)
silent_toxinwon't produce a pain message when processed by liver/life() if there isn't another non-silent toxin present if true
toxpwrThe amount of toxin damage this will cause when metabolized (also used to calculate liver damage)

Var Details

health_required

The afflicted must be above this health value in order for the toxin to deal damage

liver_damage_multiplier

The amount to multiply the liver damage this toxin does by (Handled solely in liver code)

silent_toxin

won't produce a pain message when processed by liver/life() if there isn't another non-silent toxin present if true

toxpwr

The amount of toxin damage this will cause when metabolized (also used to calculate liver damage)

\ No newline at end of file diff --git a/datum/reagent/toxin/plasma.html b/datum/reagent/toxin/plasma.html new file mode 100644 index 0000000000000..bb38e4aafc416 --- /dev/null +++ b/datum/reagent/toxin/plasma.html @@ -0,0 +1 @@ +/datum/reagent/toxin/plasma - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

plasma

Procs

on_temp_changeHandles plasma boiling.

Proc Details

on_temp_change

Handles plasma boiling.

\ No newline at end of file diff --git a/datum/reagent/toxin/venom.html b/datum/reagent/toxin/venom.html new file mode 100644 index 0000000000000..2db2f5bc30809 --- /dev/null +++ b/datum/reagent/toxin/venom.html @@ -0,0 +1 @@ +/datum/reagent/toxin/venom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

venom

Vars

current_sizeMob Size of the current mob sprite.

Var Details

current_size

Mob Size of the current mob sprite.

\ No newline at end of file diff --git a/datum/reagent/uranium.html b/datum/reagent/uranium.html new file mode 100644 index 0000000000000..a435c553c7517 --- /dev/null +++ b/datum/reagent/uranium.html @@ -0,0 +1 @@ +/datum/reagent/uranium - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

uranium

Vars

tox_damageHow much tox damage to deal per tick

Var Details

tox_damage

How much tox damage to deal per tick

\ No newline at end of file diff --git a/datum/reagent/water.html b/datum/reagent/water.html new file mode 100644 index 0000000000000..0369bb4a4428a --- /dev/null +++ b/datum/reagent/water.html @@ -0,0 +1 @@ +/datum/reagent/water - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

water

Procs

expose_mobWater reaction to a mob

Proc Details

expose_mob

Water reaction to a mob

\ No newline at end of file diff --git a/datum/reagent/yuck.html b/datum/reagent/yuck.html new file mode 100644 index 0000000000000..702a17d241f77 --- /dev/null +++ b/datum/reagent/yuck.html @@ -0,0 +1 @@ +/datum/reagent/yuck - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

yuck

Improvised reagent that induces vomiting. Created by dipping a dead mouse in welder fluid.

Vars

yuck_cycleThe current_cycle when puking starts.

Var Details

yuck_cycle

The current_cycle when puking starts.

\ No newline at end of file diff --git a/datum/reagents.html b/datum/reagents.html new file mode 100644 index 0000000000000..3ca125df6918f --- /dev/null +++ b/datum/reagents.html @@ -0,0 +1,232 @@ +/datum/reagents - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

reagents

////////////////////////////Main reagents code///////////////////////////////////////////// +Holder for a bunch of /datum/reagent

Vars

chem_tempCurrent temp of the holder volume
failed_but_capable_reactionsIf a reaction fails due to temperature or pH, this tracks the required temperature or pH for it to be enabled.
flagsvarious flags, see code__DEFINES\reagents.dm
is_reactingHard check to see if the reagents is presently reacting
maximum_volumeMax volume of this holder
my_atomThe atom this holder is attached to
phpH of the whole system
previous_reagent_listcached list of reagents typepaths (not object references), this is a lazylist for optimisation
reaction_listlist of reactions currently on going, this is a lazylist for optimisation
reagent_listThe reagents being held
total_volumeCurrent volume of all the reagents
ui_beaker_syncIf we're syncing with the beaker - so return reactions that are actively happening
ui_reaction_idUI lookup stuff +Keeps the id of the reaction displayed in the ui
ui_reaction_indexWhat index we're at if we have multiple reactions for a reagent product
ui_reagent_idKeeps the id of the reagent displayed in the ui
ui_tags_selectedThe bitflag of the currently selected tags in the ui

Procs

_multiply_reagentProc containing the operations called by both multiply_reagents() and multiply_single_reagent()
add_noreact_reagent_listLike add_reagent but you can enter a list. Adds them with no_react = TRUE. Format it like this: list(/datum/reagent/toxin = 10, "beer" = 15)
add_reagentAdds a reagent to this holder
add_reagent_listLike add_reagent but you can enter a list. +Arguments
adjust_thermal_energy
clear_reagentsRemoves all reagents
convert_reagentTurn one reagent into another, preserving volume, temp, purity, ph +Arguments
copy_dataShallow copies (deep copy of viruses) data from the provided reagent into our copy of that reagent +Arguments +current_reagent - the reagent(not typepath) to copy data from
copy_toCopies the reagents to the target object +Arguments
del_reagentRemoves an specific reagent from this holder +Arguments
determine_reaction_thermicsReturns a string descriptor of a reactions themic_constant
end_metabolizationSignals that metabolization has stopped, triggering the end of trait-based effects +Arguments
exposeApplies the relevant expose_ proc for every reagent in this holder
expose_temperatureApplies heat to this holder +Arguments
generate_taste_messageReturns what this holder's reagents taste like
generate_thermodynamic_profileGenerates a (rough) rate vs temperature graph profile
get_average_purityGet the average purity of all reagents (or all subtypes of provided typepath) +Arguments
get_external_reagent_log_stringOutputs a log-friendly list of reagents based on an external reagent list.
get_master_reagentGet a reference to the reagent there is the most of in this holder
get_reagent_amountGet the amount of this reagent or the sum of all its subtypes if specified +Arguments
get_reagent_log_stringOutputs a log-friendly list of reagents based on the internal reagent_list.
get_reagent_purityGet the purity of this reagent +Arguments
handle_reactionsHandle any reactions possible in this holder +Also UPDATES the reaction list +High potential for infinite loopsa if you're editing this.
handle_stasis_chemsProcesses any chems that have the REAGENT_IGNORE_STASIS bitflag ONLY +Arguments
has_changed_stateChecks to see if the reagents has a difference in reagents_list and previous_reagent_list (I.e. if there's a difference between the previous call and the last) +Also checks to see if the saved reactions in failed_but_capable_reactions can start as a result of temp/pH change
has_chemical_flag_skyratCheck if this holder contains a reagent with a chemical_flags_skyrat containing this flag.
has_reagentReturns a reagent from this holder if it matches all the specified arguments +Arguments
heat_capacityReturns the total heat capacity for all of the reagents currently in this holder.
holder_fullIs this holder full or not
instant_reactOld reaction mechanics, edited to work on one only +This is changed from the old - purity of the reagents will affect yield
metabolizeTriggers metabolizing for all the reagents in this holder
multiply_reagentsMultiplies the reagents inside this holder by a specific amount +Arguments
multiply_single_reagentMultiplies a single inside this holder by a specific amount +Arguments
process_mob_reagent_purityProcesses the reagents in the holder and converts them, only called in a mob/living/carbon on addition
remove_allRemoves all reagents either proportionally(amount is the direct volume to remove) +when proportional the total volume of all reagents removed will equal to amount +or relatively(amount is a percentile between 0->1) when relative amount is the % +of each reagent to be removed
remove_reagentRemoves a specific reagent. can supress reactions if needed +Arguments
set_all_reagents_purityDirectly set the purity of all contained reagents to a new value +Arguments
set_temperature
trans_toTransfer some stuff from this holder to a target object
update_totalUpdates /datum/reagents/var/total_volume

Var Details

chem_temp

Current temp of the holder volume

failed_but_capable_reactions

If a reaction fails due to temperature or pH, this tracks the required temperature or pH for it to be enabled.

flags

various flags, see code__DEFINES\reagents.dm

is_reacting

Hard check to see if the reagents is presently reacting

maximum_volume

Max volume of this holder

my_atom

The atom this holder is attached to

ph

pH of the whole system

previous_reagent_list

cached list of reagents typepaths (not object references), this is a lazylist for optimisation

reaction_list

list of reactions currently on going, this is a lazylist for optimisation

reagent_list

The reagents being held

total_volume

Current volume of all the reagents

ui_beaker_sync

If we're syncing with the beaker - so return reactions that are actively happening

ui_reaction_id

UI lookup stuff +Keeps the id of the reaction displayed in the ui

ui_reaction_index

What index we're at if we have multiple reactions for a reagent product

ui_reagent_id

Keeps the id of the reagent displayed in the ui

ui_tags_selected

The bitflag of the currently selected tags in the ui

Proc Details

_multiply_reagent

Proc containing the operations called by both multiply_reagents() and multiply_single_reagent()

add_noreact_reagent_list

Like add_reagent but you can enter a list. Adds them with no_react = TRUE. Format it like this: list(/datum/reagent/toxin = 10, "beer" = 15)

add_reagent

Adds a reagent to this holder

+

Arguments:

+

add_reagent_list

Like add_reagent but you can enter a list. +Arguments

+

adjust_thermal_energy

clear_reagents

Removes all reagents

convert_reagent

Turn one reagent into another, preserving volume, temp, purity, ph +Arguments

+

copy_data

Shallow copies (deep copy of viruses) data from the provided reagent into our copy of that reagent +Arguments +current_reagent - the reagent(not typepath) to copy data from

copy_to

Copies the reagents to the target object +Arguments

+

del_reagent

Removes an specific reagent from this holder +Arguments

+

determine_reaction_thermics

Returns a string descriptor of a reactions themic_constant

end_metabolization

Signals that metabolization has stopped, triggering the end of trait-based effects +Arguments

+

expose

Applies the relevant expose_ proc for every reagent in this holder

+ +

Arguments

+

expose_temperature

Applies heat to this holder +Arguments

+

generate_taste_message

Returns what this holder's reagents taste like

+

Arguments:

+

generate_thermodynamic_profile

Generates a (rough) rate vs temperature graph profile

get_average_purity

Get the average purity of all reagents (or all subtypes of provided typepath) +Arguments

+

get_external_reagent_log_string

Outputs a log-friendly list of reagents based on an external reagent list.

+

Arguments:

+

get_master_reagent

Get a reference to the reagent there is the most of in this holder

get_reagent_amount

Get the amount of this reagent or the sum of all its subtypes if specified +Arguments

+

get_reagent_log_string

Outputs a log-friendly list of reagents based on the internal reagent_list.

get_reagent_purity

Get the purity of this reagent +Arguments

+

handle_reactions

Handle any reactions possible in this holder +Also UPDATES the reaction list +High potential for infinite loopsa if you're editing this.

handle_stasis_chems

Processes any chems that have the REAGENT_IGNORE_STASIS bitflag ONLY +Arguments

+

has_changed_state

Checks to see if the reagents has a difference in reagents_list and previous_reagent_list (I.e. if there's a difference between the previous call and the last) +Also checks to see if the saved reactions in failed_but_capable_reactions can start as a result of temp/pH change

has_chemical_flag_skyrat

Check if this holder contains a reagent with a chemical_flags_skyrat containing this flag.

+

Arguments:

+

has_reagent

Returns a reagent from this holder if it matches all the specified arguments +Arguments

+

heat_capacity

Returns the total heat capacity for all of the reagents currently in this holder.

holder_full

Is this holder full or not

instant_react

Old reaction mechanics, edited to work on one only +This is changed from the old - purity of the reagents will affect yield

+

Arguments

+

metabolize

Triggers metabolizing for all the reagents in this holder

+

Arguments:

+

multiply_reagents

Multiplies the reagents inside this holder by a specific amount +Arguments

+

multiply_single_reagent

Multiplies a single inside this holder by a specific amount +Arguments

+

process_mob_reagent_purity

Processes the reagents in the holder and converts them, only called in a mob/living/carbon on addition

+

Arguments:

+

remove_all

Removes all reagents either proportionally(amount is the direct volume to remove) +when proportional the total volume of all reagents removed will equal to amount +or relatively(amount is a percentile between 0->1) when relative amount is the % +of each reagent to be removed

+

Arguments

+

remove_reagent

Removes a specific reagent. can supress reactions if needed +Arguments

+

set_all_reagents_purity

Directly set the purity of all contained reagents to a new value +Arguments

+

set_temperature

trans_to

Transfer some stuff from this holder to a target object

+

Arguments:

+

update_total

Updates /datum/reagents/var/total_volume

\ No newline at end of file diff --git a/datum/reagents/plumbing.html b/datum/reagents/plumbing.html new file mode 100644 index 0000000000000..05e38a81b0b0f --- /dev/null +++ b/datum/reagents/plumbing.html @@ -0,0 +1,12 @@ +/datum/reagents/plumbing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

plumbing

Specialized reagent container for plumbing. Uses the round robin approach of transferring reagents +so transfer 5 from 15 water, 15 sugar and 15 plasma becomes 10, 15, 15 instead of 13.3333, 13.3333 13.3333. Good if you hate floating point errors

Procs

trans_toSame as the parent trans_to except only a few arguments have impact here & the rest of the arguments are discarded. +Arguments

Proc Details

trans_to

Same as the parent trans_to except only a few arguments have impact here & the rest of the arguments are discarded. +Arguments

+
\ No newline at end of file diff --git a/datum/reality_smash_tracker.html b/datum/reality_smash_tracker.html new file mode 100644 index 0000000000000..9573e37ef9f74 --- /dev/null +++ b/datum/reality_smash_tracker.html @@ -0,0 +1,13 @@ +/datum/reality_smash_tracker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

reality_smash_tracker

#Reality smash tracker

+

A global singleton data that tracks all the heretic +influences ("reality smashes") that we've created, +and all of the heretics (minds) that can see them.

+

Handles ensuring all minds can see influences, generating +new influences for new heretic minds, and allowing heretics +to see new influences that are created.

Vars

num_drainedThe total number of influences that have been drained, for tracking.
smashesList of tracked influences (reality smashes)
tracked_hereticsList of minds with the ability to see influences

Procs

add_tracked_mindAdds a mind to the list of people that can see the reality smashes
generate_new_influencesGenerates a set amount of reality smashes +based on the number of already existing smashes +and the number of minds we're tracking.
remove_tracked_mindRemoves a mind from the list of people that can see the reality smashes

Var Details

num_drained

The total number of influences that have been drained, for tracking.

smashes

List of tracked influences (reality smashes)

tracked_heretics

List of minds with the ability to see influences

Proc Details

add_tracked_mind

Adds a mind to the list of people that can see the reality smashes

+

Use this whenever you want to add someone to the list

generate_new_influences

Generates a set amount of reality smashes +based on the number of already existing smashes +and the number of minds we're tracking.

remove_tracked_mind

Removes a mind from the list of people that can see the reality smashes

+

Use this whenever you want to remove someone from the list

\ No newline at end of file diff --git a/datum/record.html b/datum/record.html new file mode 100644 index 0000000000000..bbea3215802f0 --- /dev/null +++ b/datum/record.html @@ -0,0 +1 @@ +/datum/record - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

record

Record datum. Used for crew records and admin locked records.

Vars

ageAge of the character
blood_typeTheir blood type
character_appearanceCharacter appearance
chrono_ageChronological age of the character.
dna_stringDNA string
fingerprintFingerprint string (md5)
genderThe character's gender
initial_rankThe character's initial rank at roundstart
nameThe character's name
rankThe character's rank
speciesThe character's species
trimThe character's ID trim
voiceThe character's voice, if they have one.

Var Details

age

Age of the character

blood_type

Their blood type

character_appearance

Character appearance

chrono_age

Chronological age of the character.

dna_string

DNA string

fingerprint

Fingerprint string (md5)

gender

The character's gender

initial_rank

The character's initial rank at roundstart

name

The character's name

rank

The character's rank

species

The character's species

trim

The character's ID trim

voice

The character's voice, if they have one.

\ No newline at end of file diff --git a/datum/record/crew.html b/datum/record/crew.html new file mode 100644 index 0000000000000..94a3798440e42 --- /dev/null +++ b/datum/record/crew.html @@ -0,0 +1,22 @@ +/datum/record/crew - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

crew

Crew record datum

Vars

background_informationContains their background information.
citationsList of citations
crimesList of crimes
exploitable_informationContains their exploitable information.
lock_refUnique ID generated that is used to fetch lock record
major_disabilitiesNames of major disabilities
major_disabilities_descFancy description of major disabilities
medical_notesList of medical notes
mental_statusMental status of this person in medical records.
minor_disabilitiesNames of minor disabilities
minor_disabilities_descFancy description of minor disabilities
past_general_recordsContains their own custom past general records.
past_medical_recordsContains their own custom past medical records.
past_security_recordsContains their own custom past security records.
physical_statusPhysical status of this person in medical records.
quirk_notesPositive and neutral quirk strings
record_photosPhoto used for records, which we store here so we don't have to constantly make more of.
security_noteSecurity note
wanted_statusCurrent arrest status

Procs

delete_photosDeletes the existing photo for field_name
get_front_photoA helper proc to get the front photo of a character from the record. +Handles calling get_photo(), read its documentation for more information.
get_photoYou shouldn't be calling this directly, use get_front_photo() or get_side_photo() +instead.
get_rapsheetReturns a paper printout of the current record's crime data.
get_side_photoA helper proc to get the side photo of a character from the record. +Handles calling get_photo(), read its documentation for more information.
make_photomake_photo
recreate_manifest_photosA helper proc to recreate all photos of a character from the record.

Var Details

background_information

Contains their background information.

citations

List of citations

crimes

List of crimes

exploitable_information

Contains their exploitable information.

lock_ref

Unique ID generated that is used to fetch lock record

major_disabilities

Names of major disabilities

major_disabilities_desc

Fancy description of major disabilities

medical_notes

List of medical notes

mental_status

Mental status of this person in medical records.

minor_disabilities

Names of minor disabilities

minor_disabilities_desc

Fancy description of minor disabilities

past_general_records

Contains their own custom past general records.

past_medical_records

Contains their own custom past medical records.

past_security_records

Contains their own custom past security records.

physical_status

Physical status of this person in medical records.

quirk_notes

Positive and neutral quirk strings

record_photos

Photo used for records, which we store here so we don't have to constantly make more of.

security_note

Security note

wanted_status

Current arrest status

Proc Details

delete_photos

Deletes the existing photo for field_name

get_front_photo

A helper proc to get the front photo of a character from the record. +Handles calling get_photo(), read its documentation for more information.

get_photo

You shouldn't be calling this directly, use get_front_photo() or get_side_photo() +instead.

+

This is the proc that handles either fetching (if it was already generated before) or +generating (if it wasn't) the specified photo from the specified record. This is only +intended to be used by records that used to try to access fields["photo_front"] or +fields["photo_side"], and will return an empty icon if there isn't any of the necessary +fields.

+

Arguments:

+ +

Returns an empty /icon if there was no character_appearance entry in the fields list, +returns the generated/cached photo otherwise.

get_rapsheet

Returns a paper printout of the current record's crime data.

get_side_photo

A helper proc to get the side photo of a character from the record. +Handles calling get_photo(), read its documentation for more information.

make_photo

make_photo

+

Called if the person doesn't already have a photo, this will make a photo of the person, +then make a picture out of it, then finally create a new photo.

recreate_manifest_photos

A helper proc to recreate all photos of a character from the record.

\ No newline at end of file diff --git a/datum/record/locked.html b/datum/record/locked.html new file mode 100644 index 0000000000000..999be0039164c --- /dev/null +++ b/datum/record/locked.html @@ -0,0 +1 @@ +/datum/record/locked - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

locked

Admin locked record

Vars

locked_dnaMob's dna
mind_refMind datum
species_typeTypepath of species used by player, for usage in respawning via records

Var Details

locked_dna

Mob's dna

mind_ref

Mind datum

species_type

Typepath of species used by player, for usage in respawning via records

\ No newline at end of file diff --git a/datum/religion_rites.html b/datum/religion_rites.html new file mode 100644 index 0000000000000..114763f77f541 --- /dev/null +++ b/datum/religion_rites.html @@ -0,0 +1 @@ +/datum/religion_rites - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

religion_rites

Vars

auto_deletedoes the altar auto-delete the rite
descDescription of the religious rite
invoke_msgmessage when you invoke
namename of the religious rite
ritual_invocationslist of invocations said (strings) throughout the rite
ritual_lengthlength it takes to complete the ritual

Procs

invoke_effectDoes the thing if the rite was successfully performed. return value denotes that the effect successfully (IE a harm rite does harm)
perform_riteCalled to perform the invocation of the rite, with args being the performer and the altar where it's being performed. Maybe you want it to check for something else?

Var Details

auto_delete

does the altar auto-delete the rite

desc

Description of the religious rite

invoke_msg

message when you invoke

name

name of the religious rite

ritual_invocations

list of invocations said (strings) throughout the rite

ritual_length

length it takes to complete the ritual

Proc Details

invoke_effect

Does the thing if the rite was successfully performed. return value denotes that the effect successfully (IE a harm rite does harm)

perform_rite

Called to perform the invocation of the rite, with args being the performer and the altar where it's being performed. Maybe you want it to check for something else?

\ No newline at end of file diff --git a/datum/religion_rites/adapted_food.html b/datum/religion_rites/adapted_food.html new file mode 100644 index 0000000000000..1ad911f033275 --- /dev/null +++ b/datum/religion_rites/adapted_food.html @@ -0,0 +1 @@ +/datum/religion_rites/adapted_food - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

adapted_food

Vars

mold_targetthe food that will be molded, only one per rite

Var Details

mold_target

the food that will be molded, only one per rite

\ No newline at end of file diff --git a/datum/religion_rites/blazing_star.html b/datum/religion_rites/blazing_star.html new file mode 100644 index 0000000000000..4ef08842aa195 --- /dev/null +++ b/datum/religion_rites/blazing_star.html @@ -0,0 +1 @@ +/datum/religion_rites/blazing_star - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blazing_star

Vars

enchant_targetarrow to enchant

Var Details

enchant_target

arrow to enchant

\ No newline at end of file diff --git a/datum/religion_rites/burning_sacrifice.html b/datum/religion_rites/burning_sacrifice.html new file mode 100644 index 0000000000000..c944b635b08db --- /dev/null +++ b/datum/religion_rites/burning_sacrifice.html @@ -0,0 +1 @@ +/datum/religion_rites/burning_sacrifice - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

burning_sacrifice

Vars

chosen_sacrificethe burning corpse chosen for the sacrifice of the rite

Var Details

chosen_sacrifice

the burning corpse chosen for the sacrifice of the rite

\ No newline at end of file diff --git a/datum/religion_rites/ceremonial_weapon.html b/datum/religion_rites/ceremonial_weapon.html new file mode 100644 index 0000000000000..920df58803d83 --- /dev/null +++ b/datum/religion_rites/ceremonial_weapon.html @@ -0,0 +1 @@ +/datum/religion_rites/ceremonial_weapon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ceremonial_weapon

Vars

convertedthe material that will be attempted to be forged into a weapon

Var Details

converted

the material that will be attempted to be forged into a weapon

\ No newline at end of file diff --git a/datum/religion_rites/deaconize.html b/datum/religion_rites/deaconize.html new file mode 100644 index 0000000000000..2ec6f66edff96 --- /dev/null +++ b/datum/religion_rites/deaconize.html @@ -0,0 +1 @@ +/datum/religion_rites/deaconize - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

deaconize

Makes the person holy, but they now also have to follow the honorbound code (CBT). Actually earns favor, convincing others to uphold the code (tm) is not easy

Vars

new_crusaderthe invited crusader

Var Details

new_crusader

the invited crusader

\ No newline at end of file diff --git a/datum/religion_rites/fireproof.html b/datum/religion_rites/fireproof.html new file mode 100644 index 0000000000000..dbe38ebda5935 --- /dev/null +++ b/datum/religion_rites/fireproof.html @@ -0,0 +1 @@ +/datum/religion_rites/fireproof - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fireproof

Vars

chosen_clothingthe piece of clothing that will be fireproofed, only one per rite

Procs

apply_fireproofapply a bunch of fire immunity effect to clothing

Var Details

chosen_clothing

the piece of clothing that will be fireproofed, only one per rite

Proc Details

apply_fireproof

apply a bunch of fire immunity effect to clothing

\ No newline at end of file diff --git a/datum/religion_rites/nullrod_transformation.html b/datum/religion_rites/nullrod_transformation.html new file mode 100644 index 0000000000000..0a2d0ae73f670 --- /dev/null +++ b/datum/religion_rites/nullrod_transformation.html @@ -0,0 +1 @@ +/datum/religion_rites/nullrod_transformation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nullrod_transformation

Vars

transformation_targetThe rod that will be transmogrified.

Var Details

transformation_target

The rod that will be transmogrified.

\ No newline at end of file diff --git a/datum/religion_rites/portable_song_tuning.html b/datum/religion_rites/portable_song_tuning.html new file mode 100644 index 0000000000000..e90b838d97218 --- /dev/null +++ b/datum/religion_rites/portable_song_tuning.html @@ -0,0 +1 @@ +/datum/religion_rites/portable_song_tuning - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

portable_song_tuning

Vars

instrument_targetinstrument to empower

Var Details

instrument_target

instrument to empower

\ No newline at end of file diff --git a/datum/religion_rites/ritual_totem.html b/datum/religion_rites/ritual_totem.html new file mode 100644 index 0000000000000..36cd3a49d4772 --- /dev/null +++ b/datum/religion_rites/ritual_totem.html @@ -0,0 +1 @@ +/datum/religion_rites/ritual_totem - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ritual_totem

Vars

convertedthe food that will be molded, only one per rite

Var Details

converted

the food that will be molded, only one per rite

\ No newline at end of file diff --git a/datum/religion_rites/song_tuner.html b/datum/religion_rites/song_tuner.html new file mode 100644 index 0000000000000..43e17abbfbf8d --- /dev/null +++ b/datum/religion_rites/song_tuner.html @@ -0,0 +1,17 @@ +/datum/religion_rites/song_tuner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

song_tuner

prototype for rites that tune a song.

Vars

glow_colorwhat the instrument will glow when playing
particles_pathparticle effect of playing this tune
repeats_okayif repeats count as continuations instead of a song's end, TRUE
song_invocation_messagepersonal message sent to the chaplain as feedback for their chosen song
song_start_messagevisible message sent to indicate a song will have special properties

Procs

finish_effectWhen the song is long enough, it will have a special effect when it ends.
performer_start_effectSong effect applied when the performer starts playing.
song_effectPerform the song effect.

Var Details

glow_color

what the instrument will glow when playing

particles_path

particle effect of playing this tune

repeats_okay

if repeats count as continuations instead of a song's end, TRUE

song_invocation_message

personal message sent to the chaplain as feedback for their chosen song

song_start_message

visible message sent to indicate a song will have special properties

Proc Details

finish_effect

When the song is long enough, it will have a special effect when it ends.

+

If you want something that ALWAYS goes off regardless of song length, affix it to the Destroy proc. The rite is destroyed when smooth tunes is done.

+

Arguments:

+

performer_start_effect

Song effect applied when the performer starts playing.

+

Arguments:

+

song_effect

Perform the song effect.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/religion_rites/song_tuner/light.html b/datum/religion_rites/song_tuner/light.html new file mode 100644 index 0000000000000..6aaabd59298d0 --- /dev/null +++ b/datum/religion_rites/song_tuner/light.html @@ -0,0 +1 @@ +/datum/religion_rites/song_tuner/light - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

light

Vars

performer_light_objlighting object that makes chaplain glow

Var Details

performer_light_obj

lighting object that makes chaplain glow

\ No newline at end of file diff --git a/datum/religion_rites/song_tuner/lullaby.html b/datum/religion_rites/song_tuner/lullaby.html new file mode 100644 index 0000000000000..c52d9f88d9032 --- /dev/null +++ b/datum/religion_rites/song_tuner/lullaby.html @@ -0,0 +1 @@ +/datum/religion_rites/song_tuner/lullaby - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lullaby

Vars

listener_counterassoc list of weakrefs to who heard the song, for the finishing effect to look at.

Var Details

listener_counter

assoc list of weakrefs to who heard the song, for the finishing effect to look at.

\ No newline at end of file diff --git a/datum/religion_rites/sparring_contract.html b/datum/religion_rites/sparring_contract.html new file mode 100644 index 0000000000000..47bc6cd2559dc --- /dev/null +++ b/datum/religion_rites/sparring_contract.html @@ -0,0 +1 @@ +/datum/religion_rites/sparring_contract - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sparring_contract

sparring god rites

Vars

contract_targetpaper to turn into a sparring contract

Var Details

contract_target

paper to turn into a sparring contract

\ No newline at end of file diff --git a/datum/religion_rites/summon_rules.html b/datum/religion_rites/summon_rules.html new file mode 100644 index 0000000000000..17fb1793acecd --- /dev/null +++ b/datum/religion_rites/summon_rules.html @@ -0,0 +1 @@ +/datum/religion_rites/summon_rules - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

summon_rules

Vars

writ_targetpaper to turn into holy writ

Var Details

writ_target

paper to turn into holy writ

\ No newline at end of file diff --git a/datum/religion_sect.html b/datum/religion_sect.html new file mode 100644 index 0000000000000..bea866431bc79 --- /dev/null +++ b/datum/religion_sect.html @@ -0,0 +1,3 @@ +/datum/religion_sect - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Religious Sects

Religious Sects are a way to convert the fun of having an active 'god' (admin) to code-mechanics so you aren't having to press adminwho.

+

Sects are not meant to overwrite the fun of choosing a custom god/religion, but meant to enhance it. +The idea is that Space Jesus (or whoever you worship) can be an evil bloodgod who takes the lifeforce out of people, a nature lover, or all things righteous and good. You decide!

Vars

active_ritesCurrently Active (non-deleted) rites
alignmentholder for alignments.
altar_iconChanges the Altar of Gods icon
altar_icon_stateChanges the Altar of Gods icon_state
candle_overlayWhether the structure has CANDLE OVERLAYS!
default_item_favorThe default value for an item that can be sacrificed
descOpening message when someone gets converted
desired_itemsTurns into 'desired_items_typecache', and is optionally assoc'd to sacrifice instructions if needed.
desired_items_typecacheAutopopulated by desired_items
favorThe Sect's 'Mana'
max_favorThe max amount of favor the sect can have
nameName of the religious sect
quoteFlavorful quote given about the sect, used in tgui
rites_listLists of rites by type. Converts itself into a list of rites with "name - desc (favor_cost)" = type
smack_chanceChance that we fail a bible blessing.
starterDoes this require something before being available as an option?
tgui_iconTgui icon used by this sect - https://fontawesome.com/icons

Procs

adjust_favorAdjust Favor by a certain amount. Can provide optional features based on a user. Returns actual amount added/removed
can_sacrificeReturns TRUE if the item can be sacrificed. Can be modified to fit item being tested as well as person offering. Returning TRUE will stop the attackby sequence and proceed to on_sacrifice.
on_conversionActivates once selected and on newjoins, oriented around people who become holy.
on_deconversionActivates if religious sect is reset by admins, should clean up anything you added on conversion.
on_riteuseActivates when an individual uses a rite. Can provide different/additional benefits depending on the user.
on_sacrificeActivates when the sect sacrifices an item. This proc has NO bearing on the attackby sequence of other objects when used in conjunction with the religious_tool component.
sect_blessReplaces the bible's bless mechanic. Return TRUE if you want to not do the brain hit.
sect_dead_blessWhat happens if we bless a corpse? By default just do the default smack behavior
set_favorSets favor to a specific amount. Can provide optional features based on a user.
tool_examineReturns a description for religious tools

Var Details

active_rites

Currently Active (non-deleted) rites

alignment

holder for alignments.

altar_icon

Changes the Altar of Gods icon

altar_icon_state

Changes the Altar of Gods icon_state

candle_overlay

Whether the structure has CANDLE OVERLAYS!

default_item_favor

The default value for an item that can be sacrificed

desc

Opening message when someone gets converted

desired_items

Turns into 'desired_items_typecache', and is optionally assoc'd to sacrifice instructions if needed.

desired_items_typecache

Autopopulated by desired_items

favor

The Sect's 'Mana'

max_favor

The max amount of favor the sect can have

name

Name of the religious sect

quote

Flavorful quote given about the sect, used in tgui

rites_list

Lists of rites by type. Converts itself into a list of rites with "name - desc (favor_cost)" = type

smack_chance

Chance that we fail a bible blessing.

starter

Does this require something before being available as an option?

tgui_icon

Tgui icon used by this sect - https://fontawesome.com/icons

Proc Details

adjust_favor

Adjust Favor by a certain amount. Can provide optional features based on a user. Returns actual amount added/removed

can_sacrifice

Returns TRUE if the item can be sacrificed. Can be modified to fit item being tested as well as person offering. Returning TRUE will stop the attackby sequence and proceed to on_sacrifice.

on_conversion

Activates once selected and on newjoins, oriented around people who become holy.

on_deconversion

Activates if religious sect is reset by admins, should clean up anything you added on conversion.

on_riteuse

Activates when an individual uses a rite. Can provide different/additional benefits depending on the user.

on_sacrifice

Activates when the sect sacrifices an item. This proc has NO bearing on the attackby sequence of other objects when used in conjunction with the religious_tool component.

sect_bless

Replaces the bible's bless mechanic. Return TRUE if you want to not do the brain hit.

sect_dead_bless

What happens if we bless a corpse? By default just do the default smack behavior

set_favor

Sets favor to a specific amount. Can provide optional features based on a user.

tool_examine

Returns a description for religious tools

\ No newline at end of file diff --git a/datum/religion_sect/honorbound.html b/datum/religion_sect/honorbound.html new file mode 100644 index 0000000000000..7a609913573e2 --- /dev/null +++ b/datum/religion_sect/honorbound.html @@ -0,0 +1,3 @@ +/datum/religion_sect/honorbound - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

honorbound

Vars

currently_askingpeople who have been offered an invitation, they haven't finished the alert though.
possible_crusaderspeople who have agreed to join the crusade, and can be deaconized

Procs

invite_crusaderCalled by deaconize rite, this async'd proc waits for a response on joining the sect. +If yes, the deaconize rite can now recruit them instead of just offering invites

Var Details

currently_asking

people who have been offered an invitation, they haven't finished the alert though.

possible_crusaders

people who have agreed to join the crusade, and can be deaconized

Proc Details

invite_crusader

Called by deaconize rite, this async'd proc waits for a response on joining the sect. +If yes, the deaconize rite can now recruit them instead of just offering invites

\ No newline at end of file diff --git a/datum/religion_sect/spar.html b/datum/religion_sect/spar.html new file mode 100644 index 0000000000000..6f1f52f579f23 --- /dev/null +++ b/datum/religion_sect/spar.html @@ -0,0 +1 @@ +/datum/religion_sect/spar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spar

Vars

arenasplaces you can spar in. rites can be used to expand this list with new arenas!
existing_contractthe one allowed contract. making a new contract dusts the old one
matches_losthow many matches you've lost with holy stakes. 3 = excommunication
past_opponentspast opponents who you've beaten in holy battles. You can't fight them again to prevent favor farming

Var Details

arenas

places you can spar in. rites can be used to expand this list with new arenas!

existing_contract

the one allowed contract. making a new contract dusts the old one

matches_lost

how many matches you've lost with holy stakes. 3 = excommunication

past_opponents

past opponents who you've beaten in holy battles. You can't fight them again to prevent favor farming

\ No newline at end of file diff --git a/datum/replica_fabricator_output.html b/datum/replica_fabricator_output.html new file mode 100644 index 0000000000000..5aa056435db3f --- /dev/null +++ b/datum/replica_fabricator_output.html @@ -0,0 +1 @@ +/datum/replica_fabricator_output - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

replica_fabricator_output

Vars

costPower cost of the output
creation_delayHow long the creation actionbar is
nameName of the output
to_create_pathTypepath to spawn

Procs

on_createAny extra actions that need to be taken when an object is created

Var Details

cost

Power cost of the output

creation_delay

How long the creation actionbar is

name

Name of the output

to_create_path

Typepath to spawn

Proc Details

on_create

Any extra actions that need to be taken when an object is created

\ No newline at end of file diff --git a/datum/request.html b/datum/request.html new file mode 100644 index 0000000000000..a9f8573e4171a --- /dev/null +++ b/datum/request.html @@ -0,0 +1 @@ +/datum/request - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Request

A representation of an in-game request, such as a prayer.

Vars

additional_informationJust any information, which you can to send with request. For example paper datum.
atomic_idAtomic ID for increment unique request IDs
idUnique ID of the request
messageThe message associated with the request
ownerThe owner of the request, the player who created it
owner_ckeyThe ckey of the owner, used for re-binding variables on login
owner_nameThe name of the owner, in format /, assigned at time of request creation
req_typeThe type of request
timestampWhen the request was created

Var Details

additional_information

Just any information, which you can to send with request. For example paper datum.

atomic_id

Atomic ID for increment unique request IDs

id

Unique ID of the request

message

The message associated with the request

owner

The owner of the request, the player who created it

owner_ckey

The ckey of the owner, used for re-binding variables on login

owner_name

The name of the owner, in format /, assigned at time of request creation

req_type

The type of request

timestamp

When the request was created

\ No newline at end of file diff --git a/datum/request_manager.html b/datum/request_manager.html new file mode 100644 index 0000000000000..494b48663d7b2 --- /dev/null +++ b/datum/request_manager.html @@ -0,0 +1,51 @@ +/datum/request_manager - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Request Manager

Handles all player requests (prayers, centcom requests, syndicate requests) +that occur in the duration of a round.

Vars

requestsAssociative list of ckey -> list of requests
requests_by_idList where requests can be accessed by ID

Procs

client_loginUsed in the new client pipeline to catch when clients are reconnecting and need to have their +reference re-assigned to the 'owner' variable of any requests
client_logoutUsed in the destroy client pipeline to catch when clients are disconnecting and need to have their +reference nulled on the 'owner' variable of any requests
fax_requestCreates a request for fax answer
message_centcomCreates a request for a Centcom message
message_syndicateCreates a request for a Syndicate message
music_requestCreates a request for a song
nuke_requestCreates a request for the nuclear self destruct codes
prayCreates a request for a prayer, and notifies admins who have the sound notifications enabled when appropriate
request_for_clientCreates a request and registers the request with all necessary internal tracking lists

Var Details

requests

Associative list of ckey -> list of requests

requests_by_id

List where requests can be accessed by ID

Proc Details

client_login

Used in the new client pipeline to catch when clients are reconnecting and need to have their +reference re-assigned to the 'owner' variable of any requests

+

Arguments:

+

client_logout

Used in the destroy client pipeline to catch when clients are disconnecting and need to have their +reference nulled on the 'owner' variable of any requests

+

Arguments:

+

fax_request

Creates a request for fax answer

+

Arguments:

+

message_centcom

Creates a request for a Centcom message

+

Arguments:

+

message_syndicate

Creates a request for a Syndicate message

+

Arguments:

+

music_request

Creates a request for a song

+

Arguments:

+

nuke_request

Creates a request for the nuclear self destruct codes

+

Arguments:

+

pray

Creates a request for a prayer, and notifies admins who have the sound notifications enabled when appropriate

+

Arguments:

+

request_for_client

Creates a request and registers the request with all necessary internal tracking lists

+

Arguments:

+
\ No newline at end of file diff --git a/datum/request_message.html b/datum/request_message.html new file mode 100644 index 0000000000000..77cbf4d494ae9 --- /dev/null +++ b/datum/request_message.html @@ -0,0 +1 @@ +/datum/request_message - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

request_message

Vars

appended_listA list to be appended after the message, for example, list of ores
contentThe message itself
message_stamped_byThe name of the stamp that verified the message
message_verified_byThe name on the ID that verified the message
priorityThe priority of the message
radio_freqThe radio frequency the message should be broadcasted on
received_timeThe time when the message arrived
request_typeThe type of the request
sender_departmentThe r5tname of the department request console that sent the message

Procs

get_alertRetrieves the alert spoken/blared by the requests console that receives this message
message_ui_dataConverts the message into a format for the tgui ui_data json

Var Details

appended_list

A list to be appended after the message, for example, list of ores

content

The message itself

message_stamped_by

The name of the stamp that verified the message

message_verified_by

The name on the ID that verified the message

priority

The priority of the message

radio_freq

The radio frequency the message should be broadcasted on

received_time

The time when the message arrived

request_type

The type of the request

sender_department

The r5tname of the department request console that sent the message

Proc Details

get_alert

Retrieves the alert spoken/blared by the requests console that receives this message

message_ui_data

Converts the message into a format for the tgui ui_data json

\ No newline at end of file diff --git a/datum/required_item.html b/datum/required_item.html new file mode 100644 index 0000000000000..33015a81b8ed6 --- /dev/null +++ b/datum/required_item.html @@ -0,0 +1 @@ +/datum/required_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

required_item

Datum for tracking required map items

Vars

maximum_amountMax. amount of this type that should exist roundstart (inclusive)
minimum_amountMin. amount of this type that should exist roundstart (inclusive)
total_amountHow many exist in the world
tracked_typeType (exact) being tracked

Var Details

maximum_amount

Max. amount of this type that should exist roundstart (inclusive)

minimum_amount

Min. amount of this type that should exist roundstart (inclusive)

total_amount

How many exist in the world

tracked_type

Type (exact) being tracked

\ No newline at end of file diff --git a/datum/riding_minigame.html b/datum/riding_minigame.html new file mode 100644 index 0000000000000..dce7ffe6ed6ac --- /dev/null +++ b/datum/riding_minigame.html @@ -0,0 +1 @@ +/datum/riding_minigame - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

riding_minigame

Vars

cached_iconscached directional icons of our host
hostour host mob
maximum_attemptsthe total amount of tries the rider gets
maximum_failuresmaximum number of failures before we fail
mounterour current rider

Var Details

cached_icons

cached directional icons of our host

host

our host mob

maximum_attempts

the total amount of tries the rider gets

maximum_failures

maximum number of failures before we fail

mounter

our current rider

\ No newline at end of file diff --git a/datum/robot_energy_storage.html b/datum/robot_energy_storage.html new file mode 100644 index 0000000000000..8c8f11158e9b0 --- /dev/null +++ b/datum/robot_energy_storage.html @@ -0,0 +1 @@ +/datum/robot_energy_storage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

robot_energy_storage

Vars

renewableWhether this resource should refill from the aether inside a charging station.

Var Details

renewable

Whether this resource should refill from the aether inside a charging station.

\ No newline at end of file diff --git a/datum/robot_energy_storage/material.html b/datum/robot_energy_storage/material.html new file mode 100644 index 0000000000000..24dc1c6f7bece --- /dev/null +++ b/datum/robot_energy_storage/material.html @@ -0,0 +1 @@ +/datum/robot_energy_storage/material - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

material

Vars

mat_typeThe type of materials we should pull when restocking

Var Details

mat_type

The type of materials we should pull when restocking

\ No newline at end of file diff --git a/datum/round_event.html b/datum/round_event.html new file mode 100644 index 0000000000000..1dc81789b373b --- /dev/null +++ b/datum/round_event.html @@ -0,0 +1,11 @@ +/datum/round_event - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

round_event

Vars

activeForHow long the event has existed. You don't need to change this.
announce_chanceProbability of announcing, used in prob(), 0 to 100, default 100. Called in process, and for a second time in the ion storm event.
announce_whenWhen in the lifetime to call announce(). If you don't want it to announce use announce_chance, below. +This is in seconds - so 1 = ~2 seconds in.
cancel_eventWhether a admin wants this event to be cancelled
current_playersAmount of of alive, non-AFK human players on server at the time of event start
end_whenWhen in the lifetime the event should end. +This is in seconds - so 1 = ~2 seconds in.
fakeableCan be faked by fake news event.
has_startedWhether the event called its start() yet or not.
start_whenWhen in the lifetime to call start(). +This is in seconds - so 1 = ~2 seconds in.

Procs

announce_deadchatAnnounces the event name to deadchat, override this if what an event should show to deadchat is different to its event name.
event_minimum_security_levelICES - Intensity Credit Events System
try_startThis section of event processing is in a proc because roundstart events may get their start invoked.

Var Details

activeFor

How long the event has existed. You don't need to change this.

announce_chance

Probability of announcing, used in prob(), 0 to 100, default 100. Called in process, and for a second time in the ion storm event.

announce_when

When in the lifetime to call announce(). If you don't want it to announce use announce_chance, below. +This is in seconds - so 1 = ~2 seconds in.

cancel_event

Whether a admin wants this event to be cancelled

current_players

Amount of of alive, non-AFK human players on server at the time of event start

end_when

When in the lifetime the event should end. +This is in seconds - so 1 = ~2 seconds in.

fakeable

Can be faked by fake news event.

has_started

Whether the event called its start() yet or not.

start_when

When in the lifetime to call start(). +This is in seconds - so 1 = ~2 seconds in.

Proc Details

announce_deadchat

Announces the event name to deadchat, override this if what an event should show to deadchat is different to its event name.

event_minimum_security_level

ICES - Intensity Credit Events System

+

This is called by events to check/change security level. +Checks if the station security level is at least minimum_level, and if not, sets it to that level. +If orange, also sends the engineering override signal to airlocks to enable additional access. +Arguments: min_level: number, eng_access: boolean, maint_access: boolean

try_start

This section of event processing is in a proc because roundstart events may get their start invoked.

\ No newline at end of file diff --git a/datum/round_event/anomaly.html b/datum/round_event/anomaly.html new file mode 100644 index 0000000000000..d0dde62873a0c --- /dev/null +++ b/datum/round_event/anomaly.html @@ -0,0 +1 @@ +/datum/round_event/anomaly - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

anomaly

Vars

spawn_locationThe admin-chosen spawn location.

Procs

apply_anomaly_propertiesMake any further post-creation modifications to the anomaly

Var Details

spawn_location

The admin-chosen spawn location.

Proc Details

apply_anomaly_properties

Make any further post-creation modifications to the anomaly

\ No newline at end of file diff --git a/datum/round_event/anomaly/anomaly_dimensional.html b/datum/round_event/anomaly/anomaly_dimensional.html new file mode 100644 index 0000000000000..f1908d5491ded --- /dev/null +++ b/datum/round_event/anomaly/anomaly_dimensional.html @@ -0,0 +1 @@ +/datum/round_event/anomaly/anomaly_dimensional - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

anomaly_dimensional

Vars

anomaly_themeWhat theme should the anomaly initially apply to the area?

Var Details

anomaly_theme

What theme should the anomaly initially apply to the area?

\ No newline at end of file diff --git a/datum/round_event/anomaly/anomaly_ectoplasm.html b/datum/round_event/anomaly/anomaly_ectoplasm.html new file mode 100644 index 0000000000000..d1920375ccfaf --- /dev/null +++ b/datum/round_event/anomaly/anomaly_ectoplasm.html @@ -0,0 +1 @@ +/datum/round_event/anomaly/anomaly_ectoplasm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

anomaly_ectoplasm

Vars

effect_overrideThe admin-set impact effect intensity override
orbit_overrideThe admin-set number of ghosts, for use in calculating impact size.

Var Details

effect_override

The admin-set impact effect intensity override

orbit_override

The admin-set number of ghosts, for use in calculating impact size.

\ No newline at end of file diff --git a/datum/round_event/antagonist.html b/datum/round_event/antagonist.html new file mode 100644 index 0000000000000..9bcbfe5c37380 --- /dev/null +++ b/datum/round_event/antagonist.html @@ -0,0 +1 @@ +/datum/round_event/antagonist - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

antagonist

Vars

antag_countThe antag count passed from control
antag_datumThe antag datum passed from control
antag_flagThe antag flag passed from control
restricted_rolesThe restricted roles (jobs) passed from control
setup_mindsThe minds we've setup in setup() and need to finalize in start()

Var Details

antag_count

The antag count passed from control

antag_datum

The antag datum passed from control

antag_flag

The antag flag passed from control

restricted_roles

The restricted roles (jobs) passed from control

setup_minds

The minds we've setup in setup() and need to finalize in start()

\ No newline at end of file diff --git a/datum/round_event/brand_intelligence.html b/datum/round_event/brand_intelligence.html new file mode 100644 index 0000000000000..2c763be816efe --- /dev/null +++ b/datum/round_event/brand_intelligence.html @@ -0,0 +1 @@ +/datum/round_event/brand_intelligence - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

brand_intelligence

Vars

chosen_vendor_typeAdmin picked subtype for what kind of vendor goes haywire.
infected_machinesAll vending machines that have been infected.
origin_machineThe original machine infected. Killing it ends the event.
rampant_speechesMurderous sayings from the machines.
vending_machinesAll vending machines valid to get infected.

Var Details

chosen_vendor_type

Admin picked subtype for what kind of vendor goes haywire.

infected_machines

All vending machines that have been infected.

origin_machine

The original machine infected. Killing it ends the event.

rampant_speeches

Murderous sayings from the machines.

vending_machines

All vending machines valid to get infected.

\ No newline at end of file diff --git a/datum/round_event/carp_migration.html b/datum/round_event/carp_migration.html new file mode 100644 index 0000000000000..c318e8c2c6f7a --- /dev/null +++ b/datum/round_event/carp_migration.html @@ -0,0 +1 @@ +/datum/round_event/carp_migration - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

carp_migration

Vars

boss_typeRarer mob type to spawn, must also be a child of /mob/living/basic/carp. If one of these is created, it will take priority to show ghosts.
carp_typeMost common mob type to spawn, must be a child of /mob/living/basic/carp
fluff_signalWhat to describe detecting near the station
hasAnnouncedSet to true when we announce something to ghosts, to prevent duplicate announcements
z_migration_pathsAssociated lists of z level to a list of points to travel to, so that grouped fish move to the same places

Procs

pick_carp_migration_pointsGenerate two locations for carp to travel to, one in the station and one off in space

Var Details

boss_type

Rarer mob type to spawn, must also be a child of /mob/living/basic/carp. If one of these is created, it will take priority to show ghosts.

carp_type

Most common mob type to spawn, must be a child of /mob/living/basic/carp

fluff_signal

What to describe detecting near the station

hasAnnounced

Set to true when we announce something to ghosts, to prevent duplicate announcements

z_migration_paths

Associated lists of z level to a list of points to travel to, so that grouped fish move to the same places

Proc Details

pick_carp_migration_points

Generate two locations for carp to travel to, one in the station and one off in space

\ No newline at end of file diff --git a/datum/round_event/disease_outbreak.html b/datum/round_event/disease_outbreak.html new file mode 100644 index 0000000000000..b135e12ed5bac --- /dev/null +++ b/datum/round_event/disease_outbreak.html @@ -0,0 +1 @@ +/datum/round_event/disease_outbreak - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

disease_outbreak

Vars

afflictedDisease recipient candidates, passed from the round_event_control object
illness_typeThe preset (classic) or generated (advanced) illness name
virus_typeThe disease type we will be spawning

Var Details

afflicted

Disease recipient candidates, passed from the round_event_control object

illness_type

The preset (classic) or generated (advanced) illness name

virus_type

The disease type we will be spawning

\ No newline at end of file diff --git a/datum/round_event/disease_outbreak/advanced.html b/datum/round_event/disease_outbreak/advanced.html new file mode 100644 index 0000000000000..04aed8a025ebe --- /dev/null +++ b/datum/round_event/disease_outbreak/advanced.html @@ -0,0 +1,3 @@ +/datum/round_event/disease_outbreak/advanced - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

advanced

Vars

max_symptomsMaximum symptoms for our virus
requested_severityNumber of symptoms for our virus
requested_transmissibilityTransmissibility of our virus

Procs

startGenerate virus base values

Var Details

max_symptoms

Maximum symptoms for our virus

requested_severity

Number of symptoms for our virus

requested_transmissibility

Transmissibility of our virus

Proc Details

start

Generate virus base values

+

Generates a virus with either the admin selected parameters for severity and symptoms +or if it was not selected, randomly pick between the MIX and MAX configured in the defines.

\ No newline at end of file diff --git a/datum/round_event/earthquake.html b/datum/round_event/earthquake.html new file mode 100644 index 0000000000000..22b5136e2de8e --- /dev/null +++ b/datum/round_event/earthquake.html @@ -0,0 +1 @@ +/datum/round_event/earthquake - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

earthquake

Vars

edgesThe edges of our fault line, to receive light damage.
epicenterThe chosen location and center of our earthquake.
turfs_to_shredA list of turfs that will be damaged by this event.
underbellyA list of turfs directly under turfs_to_shred, for creating a proper chasm to the floor below.

Var Details

edges

The edges of our fault line, to receive light damage.

epicenter

The chosen location and center of our earthquake.

turfs_to_shred

A list of turfs that will be damaged by this event.

underbelly

A list of turfs directly under turfs_to_shred, for creating a proper chasm to the floor below.

\ No newline at end of file diff --git a/datum/round_event/falsealarm.html b/datum/round_event/falsealarm.html new file mode 100644 index 0000000000000..6b39ef3ba2b42 --- /dev/null +++ b/datum/round_event/falsealarm.html @@ -0,0 +1 @@ +/datum/round_event/falsealarm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

falsealarm

Vars

forced_typeAdmin's pick of fake event (wow! you picked blob!! you're so creative and smart!)

Var Details

forced_type

Admin's pick of fake event (wow! you picked blob!! you're so creative and smart!)

\ No newline at end of file diff --git a/datum/round_event/ghost_role.html b/datum/round_event/ghost_role.html new file mode 100644 index 0000000000000..483c7e78d642d --- /dev/null +++ b/datum/round_event/ghost_role.html @@ -0,0 +1,6 @@ +/datum/round_event/ghost_role - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ghost_role

Vars

cached_announcement_chanceA stored value of the event's announcement chance. Cached and not immediately used to prevent announcements for a failed event roll.
minimum_requiredThe minimum number of signups required for the event to continue past the polling period
role_nameThe name of the role, to be displayed in logs/polls/etc.
spawned_mobsA list of mobs generated by this event.
statusUsed to communicate the progress of the event firing, and whether or not the event was successfuly run.

Procs

spawn_rolePerforms the spawning of our role. Entirely specific to the event itself.
try_spawningAttempts to spawn the role, and cancels the event if it fails.

Var Details

cached_announcement_chance

A stored value of the event's announcement chance. Cached and not immediately used to prevent announcements for a failed event roll.

minimum_required

The minimum number of signups required for the event to continue past the polling period

role_name

The name of the role, to be displayed in logs/polls/etc.

spawned_mobs

A list of mobs generated by this event.

status

Used to communicate the progress of the event firing, and whether or not the event was successfuly run.

Proc Details

spawn_role

Performs the spawning of our role. Entirely specific to the event itself.

+

Should return SUCCESSFUL_SPAWN if role was successfully spawned, +return NOT_ENOUGH_PLAYERS if less than mimimum_required was found, +and return MAP_ERROR if a spawn location could not be found.

try_spawning

Attempts to spawn the role, and cancels the event if it fails.

+

Pauses the event right as it begins, and waits for setup/polling to end. +If successful, continues running the rest of the event and notifies ghosts.

\ No newline at end of file diff --git a/datum/round_event/ghost_role/bitrunning_glitch.html b/datum/round_event/ghost_role/bitrunning_glitch.html new file mode 100644 index 0000000000000..33ee044a1ddfa --- /dev/null +++ b/datum/round_event/ghost_role/bitrunning_glitch.html @@ -0,0 +1 @@ +/datum/round_event/ghost_role/bitrunning_glitch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bitrunning_glitch

Vars

forced_roleAdmin customization: What to spawn

Var Details

forced_role

Admin customization: What to spawn

\ No newline at end of file diff --git a/datum/round_event/ghost_role/fugitives.html b/datum/round_event/ghost_role/fugitives.html new file mode 100644 index 0000000000000..078fa478930b2 --- /dev/null +++ b/datum/round_event/ghost_role/fugitives.html @@ -0,0 +1 @@ +/datum/round_event/ghost_role/fugitives - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

fugitives

Procs

gear_fugitive_leaderspecial spawn for one member. it can be used for a special mob or simply to give one normal member special items.

Proc Details

gear_fugitive_leader

special spawn for one member. it can be used for a special mob or simply to give one normal member special items.

\ No newline at end of file diff --git a/datum/round_event/ghost_role/sentience.html b/datum/round_event/ghost_role/sentience.html new file mode 100644 index 0000000000000..cc13ed1a21acb --- /dev/null +++ b/datum/round_event/ghost_role/sentience.html @@ -0,0 +1 @@ +/datum/round_event/ghost_role/sentience - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

sentience

Procs

set_mob_priorityAdds a mob to either the high or low priority event list

Proc Details

set_mob_priority

Adds a mob to either the high or low priority event list

\ No newline at end of file diff --git a/datum/round_event/grey_tide.html b/datum/round_event/grey_tide.html new file mode 100644 index 0000000000000..6f3c1c1e202fc --- /dev/null +++ b/datum/round_event/grey_tide.html @@ -0,0 +1 @@ +/datum/round_event/grey_tide - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

grey_tide

Vars

grey_tide_areasThe area subtypes to be targeted by the event.
severityThe number of areas to be hit by the event.

Var Details

grey_tide_areas

The area subtypes to be targeted by the event.

severity

The number of areas to be hit by the event.

\ No newline at end of file diff --git a/datum/round_event/heart_attack.html b/datum/round_event/heart_attack.html new file mode 100644 index 0000000000000..4737a78e4a7ed --- /dev/null +++ b/datum/round_event/heart_attack.html @@ -0,0 +1,4 @@ +/datum/round_event/heart_attack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

heart_attack

Vars

quantityNumber of heart attacks to distribute
victimsA list of prime candidates for heart attacking

Procs

attack_heartPicks a victim from a list and attempts to give them a heart attack

Var Details

quantity

Number of heart attacks to distribute

victims

A list of prime candidates for heart attacking

Proc Details

attack_heart

Picks a victim from a list and attempts to give them a heart attack

+

Performs a pick_weight on a list of potential victims. Once selected, the "winner" +will receive heart disease. Returns TRUE if a heart attack is successfully given, and +FALSE if something blocks it.

\ No newline at end of file diff --git a/datum/round_event/immovable_rod.html b/datum/round_event/immovable_rod.html new file mode 100644 index 0000000000000..f1efec7ca7a59 --- /dev/null +++ b/datum/round_event/immovable_rod.html @@ -0,0 +1 @@ +/datum/round_event/immovable_rod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

immovable_rod

Vars

force_loopingAdmins can also force it to loop around forever, or at least until the RD gets their hands on it.
special_targetAdmins can pick a spot the rod will aim for.

Var Details

force_looping

Admins can also force it to loop around forever, or at least until the RD gets their hands on it.

special_target

Admins can pick a spot the rod will aim for.

\ No newline at end of file diff --git a/datum/round_event/market_crash.html b/datum/round_event/market_crash.html new file mode 100644 index 0000000000000..43d6e80f51829 --- /dev/null +++ b/datum/round_event/market_crash.html @@ -0,0 +1 @@ +/datum/round_event/market_crash - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

market_crash

Vars

tick_counterThis counts the number of ticks that the market crash event has been processing, so that we don't call vendor price updates every tick, but we still iterate for other mechanics that use inflation.

Var Details

tick_counter

This counts the number of ticks that the market crash event has been processing, so that we don't call vendor price updates every tick, but we still iterate for other mechanics that use inflation.

\ No newline at end of file diff --git a/datum/round_event/mass_hallucination.html b/datum/round_event/mass_hallucination.html new file mode 100644 index 0000000000000..ee6736d0d7448 --- /dev/null +++ b/datum/round_event/mass_hallucination.html @@ -0,0 +1 @@ +/datum/round_event/mass_hallucination - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mass_hallucination

Vars

admin_forced_argsFor admins, what arguments are we passing to said hallucination
admin_forced_hallucinationFor admins, what hallucination did we pick

Var Details

admin_forced_args

For admins, what arguments are we passing to said hallucination

admin_forced_hallucination

For admins, what hallucination did we pick

\ No newline at end of file diff --git a/datum/round_event/pirates.html b/datum/round_event/pirates.html new file mode 100644 index 0000000000000..873a62cf5be28 --- /dev/null +++ b/datum/round_event/pirates.html @@ -0,0 +1 @@ +/datum/round_event/pirates - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pirates

Vars

gang_listadmin chosen pirate team

Var Details

gang_list

admin chosen pirate team

\ No newline at end of file diff --git a/datum/round_event/portal_storm.html b/datum/round_event/portal_storm.html new file mode 100644 index 0000000000000..96950576556bd --- /dev/null +++ b/datum/round_event/portal_storm.html @@ -0,0 +1 @@ +/datum/round_event/portal_storm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

portal_storm

Vars

storm_appearancesList of mutable appearances in the form (plane offset + 1 -> appearance)

Var Details

storm_appearances

List of mutable appearances in the form (plane offset + 1 -> appearance)

\ No newline at end of file diff --git a/datum/round_event/radiation_leak.html b/datum/round_event/radiation_leak.html new file mode 100644 index 0000000000000..2a1d49dba5271 --- /dev/null +++ b/datum/round_event/radiation_leak.html @@ -0,0 +1,2 @@ +/datum/round_event/radiation_leak - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

radiation_leak

Vars

picked_machine_refWeakref to the machine spitting out rads
signals_to_addList of signals added to the picked machine, so we can clear them later

Procs

on_machine_tooledSignal proc for COMSIG_ATOM_TOOL_ACT, from a variety of signals, registered on the machine spitting radiation
puff_some_smokeHelper to shoot some smoke into the air around the passed atom
try_remove_radiationAttempts a do_after, and if successful, stops the event

Var Details

picked_machine_ref

Weakref to the machine spitting out rads

signals_to_add

List of signals added to the picked machine, so we can clear them later

Proc Details

on_machine_tooled

Signal proc for COMSIG_ATOM_TOOL_ACT, from a variety of signals, registered on the machine spitting radiation

+

We allow for someone to stop the event early by using the proper tools, hinted at in examine, on the machine

puff_some_smoke

Helper to shoot some smoke into the air around the passed atom

try_remove_radiation

Attempts a do_after, and if successful, stops the event

\ No newline at end of file diff --git a/datum/round_event/sandstorm.html b/datum/round_event/sandstorm.html new file mode 100644 index 0000000000000..95b41b2d5ba7a --- /dev/null +++ b/datum/round_event/sandstorm.html @@ -0,0 +1 @@ +/datum/round_event/sandstorm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sandstorm

Vars

start_sideWhich direction the storm will come from.

Var Details

start_side

Which direction the storm will come from.

\ No newline at end of file diff --git a/datum/round_event/scrubber_overflow.html b/datum/round_event/scrubber_overflow.html new file mode 100644 index 0000000000000..97c69b6fe5902 --- /dev/null +++ b/datum/round_event/scrubber_overflow.html @@ -0,0 +1 @@ +/datum/round_event/scrubber_overflow - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

scrubber_overflow

Vars

danger_chanceThe probability that the ejected reagents will be dangerous
forced_reagent_typeSpecific reagent to force all scrubbers to use, null for random reagent choice
overflow_probabilityProbability of an individual scrubber overflowing
reagents_amountAmount of reagents ejected from each scrubber
safer_chemsWhitelist of reagents we want scrubbers to dispense
scrubbersA list of scrubbers that will have reagents ejected from them

Procs

get_overflowing_reagentproc that will run the prob check of the event and return a safe or dangerous reagent based off of that.

Var Details

danger_chance

The probability that the ejected reagents will be dangerous

forced_reagent_type

Specific reagent to force all scrubbers to use, null for random reagent choice

overflow_probability

Probability of an individual scrubber overflowing

reagents_amount

Amount of reagents ejected from each scrubber

safer_chems

Whitelist of reagents we want scrubbers to dispense

scrubbers

A list of scrubbers that will have reagents ejected from them

Proc Details

get_overflowing_reagent

proc that will run the prob check of the event and return a safe or dangerous reagent based off of that.

\ No newline at end of file diff --git a/datum/round_event/scrubber_overflow/ices.html b/datum/round_event/scrubber_overflow/ices.html new file mode 100644 index 0000000000000..ba9a479f7141d --- /dev/null +++ b/datum/round_event/scrubber_overflow/ices.html @@ -0,0 +1 @@ +/datum/round_event/scrubber_overflow/ices - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ices

Vars

reagent_whitelistWhitelist of reagents we want scrubbers to dispense

Var Details

reagent_whitelist

Whitelist of reagents we want scrubbers to dispense

\ No newline at end of file diff --git a/datum/round_event/shuttle_loan.html b/datum/round_event/shuttle_loan.html new file mode 100644 index 0000000000000..3967e6ae014c8 --- /dev/null +++ b/datum/round_event/shuttle_loan.html @@ -0,0 +1 @@ +/datum/round_event/shuttle_loan - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shuttle_loan

Vars

dispatchedWhether the station has let Centcom commandeer the shuttle yet.
situationwhat type of shuttle loan situation the station faces.

Var Details

dispatched

Whether the station has let Centcom commandeer the shuttle yet.

situation

what type of shuttle loan situation the station faces.

\ No newline at end of file diff --git a/datum/round_event/spacevine.html b/datum/round_event/spacevine.html new file mode 100644 index 0000000000000..d39c422e15b32 --- /dev/null +++ b/datum/round_event/spacevine.html @@ -0,0 +1 @@ +/datum/round_event/spacevine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spacevine

Vars

mutations_overriddenused to confirm if admin selected mutations should be used or not.
override_mutationsAdmin selected mutations that the kudzu will spawn with, can be set to none to act as mutationless kudzu.
override_turfOverride location the vines will spawn in.
potencyPotency of the spawned kudzu.
productionProduction value of the spawned kuduz.

Var Details

mutations_overridden

used to confirm if admin selected mutations should be used or not.

override_mutations

Admin selected mutations that the kudzu will spawn with, can be set to none to act as mutationless kudzu.

override_turf

Override location the vines will spawn in.

potency

Potency of the spawned kudzu.

production

Production value of the spawned kuduz.

\ No newline at end of file diff --git a/datum/round_event/stray_cargo.html b/datum/round_event/stray_cargo.html new file mode 100644 index 0000000000000..c1a1bafe2c085 --- /dev/null +++ b/datum/round_event/stray_cargo.html @@ -0,0 +1,5 @@ +/datum/round_event/stray_cargo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

stray_cargo

Spawns a cargo pod containing a random cargo supply pack on a random area of the station

Vars

admin_override_contentsAdmin setable override to spawn a specific cargo pack type
admin_override_turfList of default spawnable supply packs, filtered from the cargo list +Admin setable override that is used instead of selecting a random location
announce_chanceRandomly picked area
stray_spawnable_supply_packsList of possible supply packs dropped in the pod, if empty picks from the cargo list

Procs

find_event_areaPicks an area that wouldn't risk critical damage if hit by a pod explosion
make_podHandles the creation of the pod, in case it needs to be modified beforehand
setupTries to find a valid area, throws an error if none are found +Also randomizes the start timer
startSpawns a random supply pack, puts it in a pod, and spawns it on a random tile of the selected area

Var Details

admin_override_contents

Admin setable override to spawn a specific cargo pack type

admin_override_turf

List of default spawnable supply packs, filtered from the cargo list +Admin setable override that is used instead of selecting a random location

announce_chance

Randomly picked area

stray_spawnable_supply_packs

List of possible supply packs dropped in the pod, if empty picks from the cargo list

Proc Details

find_event_area

Picks an area that wouldn't risk critical damage if hit by a pod explosion

make_pod

Handles the creation of the pod, in case it needs to be modified beforehand

setup

Tries to find a valid area, throws an error if none are found +Also randomizes the start timer

start

Spawns a random supply pack, puts it in a pod, and spawns it on a random tile of the selected area

\ No newline at end of file diff --git a/datum/round_event/stray_cargo/syndicate.html b/datum/round_event/stray_cargo/syndicate.html new file mode 100644 index 0000000000000..3166d5c9f0e53 --- /dev/null +++ b/datum/round_event/stray_cargo/syndicate.html @@ -0,0 +1 @@ +/datum/round_event/stray_cargo/syndicate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

syndicate

Procs

make_podApply the syndicate pod skin

Proc Details

make_pod

Apply the syndicate pod skin

\ No newline at end of file diff --git a/datum/round_event/stray_meteor.html b/datum/round_event/stray_meteor.html new file mode 100644 index 0000000000000..3d0eebbda5b17 --- /dev/null +++ b/datum/round_event/stray_meteor.html @@ -0,0 +1 @@ +/datum/round_event/stray_meteor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stray_meteor

Vars

chosen_meteorThe selected meteor type if chosen through admin setup.

Var Details

chosen_meteor

The selected meteor type if chosen through admin setup.

\ No newline at end of file diff --git a/datum/round_event/supermatter_surge.html b/datum/round_event/supermatter_surge.html new file mode 100644 index 0000000000000..1abc2dac427e5 --- /dev/null +++ b/datum/round_event/supermatter_surge.html @@ -0,0 +1 @@ +/datum/round_event/supermatter_surge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

supermatter_surge

Vars

engineTypecasted reference to the supermatter chosen at event start
sm_gasTypecasted reference to the nitrogen properies in the SM chamber
surge_classHow powerful is the supermatter surge going to be?

Var Details

engine

Typecasted reference to the supermatter chosen at event start

sm_gas

Typecasted reference to the nitrogen properies in the SM chamber

surge_class

How powerful is the supermatter surge going to be?

\ No newline at end of file diff --git a/datum/round_event/tram_malfunction.html b/datum/round_event/tram_malfunction.html new file mode 100644 index 0000000000000..b72d4e197abb6 --- /dev/null +++ b/datum/round_event/tram_malfunction.html @@ -0,0 +1 @@ +/datum/round_event/tram_malfunction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tram_malfunction

Vars

specific_transport_idThe ID of the tram we're going to malfunction

Var Details

specific_transport_id

The ID of the tram we're going to malfunction

\ No newline at end of file diff --git a/datum/round_event/vent_clog.html b/datum/round_event/vent_clog.html new file mode 100644 index 0000000000000..92299b41e6cdc --- /dev/null +++ b/datum/round_event/vent_clog.html @@ -0,0 +1,11 @@ +/datum/round_event/vent_clog - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

vent_clog

Vars

filth_spawn_typesThe list of decals we will choose from to spawn when producing a mob
living_mobsUsed to track/limit produced mobs.
maximum_spawnsCap on the number of spawned mobs that can be alive at once.
spawn_delayInterval between mob spawns.
spawned_mobWhat mob will be spawned
ventVent selected for the event.

Procs

attempt_unclogHandles the actual unclogging action and ends the event on completion.
clear_signalsClears the signals related to the event, before we wrap things up.
clog_ventHandles the initial steps of clogging a vent, either at event start or when the vent moves.
get_mobSelects which mob will be spawned for a given vent clog event.
get_ventFinds a valid vent to spawn mobs from.
life_checkChecks which mobs in the mob spawn list are alive.
plunger_unclogSignal catcher for plunger_act()
produce_mobHandles the production of our mob and adds it to our living_mobs list
vent_moveFinds a new vent for the event if the original is destroyed.

Var Details

filth_spawn_types

The list of decals we will choose from to spawn when producing a mob

living_mobs

Used to track/limit produced mobs.

maximum_spawns

Cap on the number of spawned mobs that can be alive at once.

spawn_delay

Interval between mob spawns.

spawned_mob

What mob will be spawned

vent

Vent selected for the event.

Proc Details

attempt_unclog

Handles the actual unclogging action and ends the event on completion.

clear_signals

Clears the signals related to the event, before we wrap things up.

clog_vent

Handles the initial steps of clogging a vent, either at event start or when the vent moves.

get_mob

Selects which mob will be spawned for a given vent clog event.

+

Creates a static list of mobs, which is different based on the severity of the event being run, and returns a pick() of it.

get_vent

Finds a valid vent to spawn mobs from.

+

Randomly selects a vent that is on-station, unwelded, and hosted by a passable turf. If no vents are found, the event +is immediately killed.

life_check

Checks which mobs in the mob spawn list are alive.

+

Checks each mob in the living_mobs list, to see if they're dead or not. If dead, they're removed from the list. +This is used to keep new mobs spawning as the old ones die.

plunger_unclog

Signal catcher for plunger_act()

produce_mob

Handles the production of our mob and adds it to our living_mobs list

+

Used by the vent clog random event to handle the spawning of mobs. The proc receives the mob that will be spawned, +and the event's current list of living mobs produced by the event so far. After checking if the vent is welded, the +new mob is created on the vent's turf, then added to the living_mobs list.

vent_move

Finds a new vent for the event if the original is destroyed.

+

This is used when the vent for the event is destroyed. It picks a new vent and announces that the event has moved elsewhere. +Handles the vent ref if there are no valid vents to replace it with.

\ No newline at end of file diff --git a/datum/round_event/wisdomcow.html b/datum/round_event/wisdomcow.html new file mode 100644 index 0000000000000..c41f36f5aef52 --- /dev/null +++ b/datum/round_event/wisdomcow.html @@ -0,0 +1 @@ +/datum/round_event/wisdomcow - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wisdomcow

Vars

forced_reagent_typeAn override that if set modifies what you can milk out of the cow
selected_experienceAn override that if set modifies the amount of wisdow the cow will add/remove, if not set will default to 500.
selected_wisdomAn override that if set rigs the cow to spawn with a specific wisdow rather than a random one.
spawn_locationLocation override that, if set causes the cow to spawn in a pre-determined locaction instead of randomly.

Var Details

forced_reagent_type

An override that if set modifies what you can milk out of the cow

selected_experience

An override that if set modifies the amount of wisdow the cow will add/remove, if not set will default to 500.

selected_wisdom

An override that if set rigs the cow to spawn with a specific wisdow rather than a random one.

spawn_location

Location override that, if set causes the cow to spawn in a pre-determined locaction instead of randomly.

\ No newline at end of file diff --git a/datum/round_event/wizard/deprevolt.html b/datum/round_event/wizard/deprevolt.html new file mode 100644 index 0000000000000..54f9402083715 --- /dev/null +++ b/datum/round_event/wizard/deprevolt.html @@ -0,0 +1 @@ +/datum/round_event/wizard/deprevolt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

deprevolt

Vars

announceAnnounce the separatist nation to the round?
dangerous_nationIs it going to try fighting other nations?
picked_departmentwhich department is revolting?

Var Details

announce

Announce the separatist nation to the round?

dangerous_nation

Is it going to try fighting other nations?

picked_department

which department is revolting?

\ No newline at end of file diff --git a/datum/round_event/wizard/madness.html b/datum/round_event/wizard/madness.html new file mode 100644 index 0000000000000..8daa40bb3a394 --- /dev/null +++ b/datum/round_event/wizard/madness.html @@ -0,0 +1 @@ +/datum/round_event/wizard/madness - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

madness

Vars

horrifying_truththe horrifying truth sent to the crew, can be picked by admins.

Var Details

horrifying_truth

the horrifying truth sent to the crew, can be picked by admins.

\ No newline at end of file diff --git a/datum/round_event/wizard/petsplosion.html b/datum/round_event/wizard/petsplosion.html new file mode 100644 index 0000000000000..444e0d03fe8bd --- /dev/null +++ b/datum/round_event/wizard/petsplosion.html @@ -0,0 +1 @@ +/datum/round_event/wizard/petsplosion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

petsplosion

Procs

duplicate_mobMakes a duplicate of a valid mob and increments our "too many mobs" counter

Proc Details

duplicate_mob

Makes a duplicate of a valid mob and increments our "too many mobs" counter

\ No newline at end of file diff --git a/datum/round_event_control.html b/datum/round_event_control.html new file mode 100644 index 0000000000000..0acf780fdd8fc --- /dev/null +++ b/datum/round_event_control.html @@ -0,0 +1,7 @@ +/datum/round_event_control - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

round_event_control

ICES - Intensity Credit Events System

+

This file is used for adjusting intensity credits. +Can be called on its own, or part of a timer.

Vars

admin_setupDatum that will handle admin options for forcing the event. +If there are no options, just leave it as an empty list.
calculated_weightLast calculated weight that the storyteller assigned this event
can_run_post_roundstartWhether a roundstart event can happen post roundstart. Very important for events which override job assignments.
dynamic_should_hijackWhether or not dynamic should hijack this event
intensity_restrictionWhether this event is intense enough to need special processing rules
map_flagsFlags dictating whether this event should be run on certain kinds of map
max_wizard_trigger_potencyMaximum wizard rituals at which to trigger this event, inclusive
min_wizard_trigger_potencyMinimum wizard rituals at which to trigger this event, inclusive
shared_occurencesTags of the event +List of the shared occurence types.

Procs

add_occurenceAdds an occurence. Has to use the setter to properly handle shared occurences
get_href_actionsPrints the action buttons for this event.
get_occurencesGets occurences. Has to use the getter to properly handle shared occurences
subtract_occurenceSubtracts an occurence. Has to use the setter to properly handle shared occurences
valid_for_mapReturns true if event can run in current map

Var Details

admin_setup

Datum that will handle admin options for forcing the event. +If there are no options, just leave it as an empty list.

calculated_weight

Last calculated weight that the storyteller assigned this event

can_run_post_roundstart

Whether a roundstart event can happen post roundstart. Very important for events which override job assignments.

dynamic_should_hijack

Whether or not dynamic should hijack this event

intensity_restriction

Whether this event is intense enough to need special processing rules

map_flags

Flags dictating whether this event should be run on certain kinds of map

max_wizard_trigger_potency

Maximum wizard rituals at which to trigger this event, inclusive

min_wizard_trigger_potency

Minimum wizard rituals at which to trigger this event, inclusive

shared_occurences

Tags of the event +List of the shared occurence types.

Proc Details

add_occurence

Adds an occurence. Has to use the setter to properly handle shared occurences

get_href_actions

Prints the action buttons for this event.

get_occurences

Gets occurences. Has to use the getter to properly handle shared occurences

subtract_occurence

Subtracts an occurence. Has to use the setter to properly handle shared occurences

valid_for_map

Returns true if event can run in current map

\ No newline at end of file diff --git a/datum/round_event_control/antagonist.html b/datum/round_event_control/antagonist.html new file mode 100644 index 0000000000000..f1868fbf72dd8 --- /dev/null +++ b/datum/round_event_control/antagonist.html @@ -0,0 +1 @@ +/datum/round_event_control/antagonist - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

antagonist

Vars

antag_datumThe antag datum to be applied
antag_flagThe antag flag to be used
base_antagsHow many baseline antags do we spawn
denominatorFor this many players we'll add 1 up to the maximum antag amount
maximum_antagsHow many maximum antags can we spawn
maximum_antags_globalStrict limit on how many antagonists of this type that should be in this round. 0 to ignore.
protected_rolesProtected roles from the antag roll. People will not get those roles if a config is enabled
restricted_rolesRestricted roles from the antag roll

Var Details

antag_datum

The antag datum to be applied

antag_flag

The antag flag to be used

base_antags

How many baseline antags do we spawn

denominator

For this many players we'll add 1 up to the maximum antag amount

maximum_antags

How many maximum antags can we spawn

maximum_antags_global

Strict limit on how many antagonists of this type that should be in this round. 0 to ignore.

protected_roles

Protected roles from the antag roll. People will not get those roles if a config is enabled

restricted_roles

Restricted roles from the antag roll

\ No newline at end of file diff --git a/datum/round_event_control/bitrunning_glitch.html b/datum/round_event_control/bitrunning_glitch.html new file mode 100644 index 0000000000000..f78a27cc2703b --- /dev/null +++ b/datum/round_event_control/bitrunning_glitch.html @@ -0,0 +1 @@ +/datum/round_event_control/bitrunning_glitch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bitrunning_glitch

Vars

active_serversList of servers on the station

Procs

validate_serversAll servers currently running, has players in it, and map has valid mobs

Var Details

active_servers

List of servers on the station

Proc Details

validate_servers

All servers currently running, has players in it, and map has valid mobs

\ No newline at end of file diff --git a/datum/round_event_control/disease_outbreak.html b/datum/round_event_control/disease_outbreak.html new file mode 100644 index 0000000000000..1381426f30c02 --- /dev/null +++ b/datum/round_event_control/disease_outbreak.html @@ -0,0 +1,4 @@ +/datum/round_event_control/disease_outbreak - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

disease_outbreak

Vars

disease_candidatesDisease recipient candidates

Procs

generate_candidatesCreates a list of people who are elligible to become disease carriers for the event

Var Details

disease_candidates

Disease recipient candidates

Proc Details

generate_candidates

Creates a list of people who are elligible to become disease carriers for the event

+

Searches through the player list, adding anyone who is elligible to be a disease carrier for the event. This checks for +whether or not the candidate is alive, a crewmember, is able to receive a disease, and whether or not a disease is already present in them. +This proc needs to be run at some point to ensure the event has candidates to infect.

\ No newline at end of file diff --git a/datum/round_event_control/grid_check.html b/datum/round_event_control/grid_check.html new file mode 100644 index 0000000000000..159a968b4148f --- /dev/null +++ b/datum/round_event_control/grid_check.html @@ -0,0 +1,3 @@ +/datum/round_event_control/grid_check - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

grid_check

Vars

announcement_spam_protectionCooldown for the announement associated with this event. +Necessary due to the fact that this event is player triggerable.

Var Details

announcement_spam_protection

Cooldown for the announement associated with this event. +Necessary due to the fact that this event is player triggerable.

\ No newline at end of file diff --git a/datum/round_event_control/heart_attack.html b/datum/round_event_control/heart_attack.html new file mode 100644 index 0000000000000..aad5c893ac7cd --- /dev/null +++ b/datum/round_event_control/heart_attack.html @@ -0,0 +1,4 @@ +/datum/round_event_control/heart_attack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

heart_attack

Vars

heart_attack_candidatesCandidates for receiving a healthy dose of heart disease

Procs

generate_candidatesPerforms initial analysis of which living players are eligible to be selected for a heart attack.

Var Details

heart_attack_candidates

Candidates for receiving a healthy dose of heart disease

Proc Details

generate_candidates

Performs initial analysis of which living players are eligible to be selected for a heart attack.

+

Traverses player_list and checks entries against a series of reviews to see if they should even be considered for a heart attack, +and at what weight should they be eligible to receive it. The check for whether or not a heart attack should be "blocked" by something is done +later, at the round_event level, so this proc mostly just checks users for whether or not a heart attack should be possible.

\ No newline at end of file diff --git a/datum/round_event_control/market_crash.html b/datum/round_event_control/market_crash.html new file mode 100644 index 0000000000000..3ee1763736892 --- /dev/null +++ b/datum/round_event_control/market_crash.html @@ -0,0 +1,2 @@ +/datum/round_event_control/market_crash - /tg/ Station 13
/tg/ Station 13 - Modules - Types

market_crash

An event which decreases the station target temporarily, causing the inflation var to increase heavily.

+

Done by decreasing the station_target by a high value per crew member, resulting in the station total being much higher than the target, and causing artificial inflation.

\ No newline at end of file diff --git a/datum/round_event_control/sandstorm.html b/datum/round_event_control/sandstorm.html new file mode 100644 index 0000000000000..419fd94d75489 --- /dev/null +++ b/datum/round_event_control/sandstorm.html @@ -0,0 +1,5 @@ +/datum/round_event_control/sandstorm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

sandstorm

Sandstorm Event: Throws dust/sand at one side of the station. High-intensity and relatively short, +however the incoming direction is given along with time to prepare. Damages can be reduced or +mitigated with a few people actively working to fix things as the storm hits, but leaving the event to run on its own can lead to widespread breaches.

+

Meant to be encountered mid-round, with enough spare manpower among the crew to properly respond. +Anyone with a welder or metal can contribute.

\ No newline at end of file diff --git a/datum/round_event_control/sandstorm_classic.html b/datum/round_event_control/sandstorm_classic.html new file mode 100644 index 0000000000000..89d10a4e12951 --- /dev/null +++ b/datum/round_event_control/sandstorm_classic.html @@ -0,0 +1,4 @@ +/datum/round_event_control/sandstorm_classic - /tg/ Station 13
/tg/ Station 13 - Modules - Types

sandstorm_classic

The original sandstorm event. An admin-only disasterfest that sands down all sides of the station +Uses space dust, meaning walls/rwalls are quickly chewed up very quickly.

+

Super dangerous, super funny, preserved for future admin use in case the new event reminds +them that this exists. It is unchanged from its original form and is arguably perfect.

\ No newline at end of file diff --git a/datum/round_event_control/shuttle_loan.html b/datum/round_event_control/shuttle_loan.html new file mode 100644 index 0000000000000..49835b402a46a --- /dev/null +++ b/datum/round_event_control/shuttle_loan.html @@ -0,0 +1 @@ +/datum/round_event_control/shuttle_loan - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shuttle_loan

Vars

admin_setupThe types of loan events already run (and to be excluded if the event triggers).
unavailable_situationsA list of normally unavailable (or already run) situations datums

Var Details

admin_setup

The types of loan events already run (and to be excluded if the event triggers).

unavailable_situations

A list of normally unavailable (or already run) situations datums

\ No newline at end of file diff --git a/datum/round_event_control/supermatter_surge.html b/datum/round_event_control/supermatter_surge.html new file mode 100644 index 0000000000000..8ef5d74d89d89 --- /dev/null +++ b/datum/round_event_control/supermatter_surge.html @@ -0,0 +1,5 @@ +/datum/round_event_control/supermatter_surge - /tg/ Station 13
/tg/ Station 13 - Modules - Types

supermatter_surge

Supermatter Surge

+

An engineering challenge event where the properties of the SM changes to be in a 'surge' of power. +For the duration of the event a powerloss inhibition is added to nitrogen, causing the crystal to retain more of its internal energy. +Heat modifier is lowered to generate some heat but not a high temp burn. +Bullet energy from emitters is raised slightly to raise meV while turned on.

\ No newline at end of file diff --git a/datum/round_event_control/valentines.html b/datum/round_event_control/valentines.html new file mode 100644 index 0000000000000..014fedb40bdbb --- /dev/null +++ b/datum/round_event_control/valentines.html @@ -0,0 +1 @@ +/datum/round_event_control/valentines - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

valentines

Vars

heartbreakerIf TRUE, any odd candidate out will be given the role of "heartbreaker" and will be tasked with ruining the dates.
items_to_give_outItems to give to all valentines
third_wheel_chanceProbability that any given pair will be given a third wheel candidate

Var Details

heartbreaker

If TRUE, any odd candidate out will be given the role of "heartbreaker" and will be tasked with ruining the dates.

items_to_give_out

Items to give to all valentines

third_wheel_chance

Probability that any given pair will be given a third wheel candidate

\ No newline at end of file diff --git a/datum/round_event_control/wizard/embedpocalypse.html b/datum/round_event_control/wizard/embedpocalypse.html new file mode 100644 index 0000000000000..1ab59d6ce3509 --- /dev/null +++ b/datum/round_event_control/wizard/embedpocalypse.html @@ -0,0 +1 @@ +/datum/round_event_control/wizard/embedpocalypse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

embedpocalypse

Procs

can_spawn_eventbehold... the only reason sticky is a subtype...

Proc Details

can_spawn_event

behold... the only reason sticky is a subtype...

\ No newline at end of file diff --git a/datum/round_event_control/wizard/petsplosion.html b/datum/round_event_control/wizard/petsplosion.html new file mode 100644 index 0000000000000..c28b2ee6ba173 --- /dev/null +++ b/datum/round_event_control/wizard/petsplosion.html @@ -0,0 +1 @@ +/datum/round_event_control/wizard/petsplosion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

petsplosion

Vars

mobs_to_dupeNumber of mobs we're going to duplicate

Procs

count_mobCounts whether we found some kind of valid living mob

Var Details

mobs_to_dupe

Number of mobs we're going to duplicate

Proc Details

count_mob

Counts whether we found some kind of valid living mob

\ No newline at end of file diff --git a/datum/rpgloot_controller.html b/datum/rpgloot_controller.html new file mode 100644 index 0000000000000..10aba04cf3dd4 --- /dev/null +++ b/datum/rpgloot_controller.html @@ -0,0 +1,13 @@ +/datum/rpgloot_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

rpgloot_controller

rpgloot controller!

+

Stored in a global datum, and created when rpgloot is turned on via event or VV'ing the GLOB.rpgloot_controller to be a new /datum/rpgloot_controller. +Makes every item in the world fantasy, but also hooks into global signals for new items created to also bless them with fantasy.

+

What do I mean by fantasy?

+

Procs

handle_current_items
on_new_item_in_existencesignal sent by a new item being created.

Proc Details

handle_current_items

handle_current_items

+

Gives every viable item in the world the fantasy component. +If the item it is giving fantasy to is a storage item, there's a chance it'll drop in an item fortification scroll. neat!

on_new_item_in_existence

signal sent by a new item being created.

\ No newline at end of file diff --git a/datum/rpgtitle_controller.html b/datum/rpgtitle_controller.html new file mode 100644 index 0000000000000..f97a8a92c5de7 --- /dev/null +++ b/datum/rpgtitle_controller.html @@ -0,0 +1,3 @@ +/datum/rpgtitle_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

rpgtitle_controller

Procs

handle_current_jobs
on_crewmember_joinsignal sent by a crewmember joining
on_mob_loginsignal sent by a player list expanding

Proc Details

handle_current_jobs

handle_current_jobs

+

Calls on_crewmember_join on every crewmember +If the item it is giving fantasy to is a storage item, there's a chance it'll drop in an item fortification scroll. neat!

on_crewmember_join

signal sent by a crewmember joining

on_mob_login

signal sent by a player list expanding

\ No newline at end of file diff --git a/datum/scan_condition.html b/datum/scan_condition.html new file mode 100644 index 0000000000000..22c2a16b21eb3 --- /dev/null +++ b/datum/scan_condition.html @@ -0,0 +1 @@ +/datum/scan_condition - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

scan_condition

Scan condition, these require some specific setup for the dish to count for the scan power for the given site

Procs

check_dishReturns power multiplier of the dish depending on condition.

Proc Details

check_dish

Returns power multiplier of the dish depending on condition.

\ No newline at end of file diff --git a/datum/scanner_controller.html b/datum/scanner_controller.html new file mode 100644 index 0000000000000..e58f52ff9c3a0 --- /dev/null +++ b/datum/scanner_controller.html @@ -0,0 +1 @@ +/datum/scanner_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

scanner_controller

Helper datum to calculate and store scanning power and track in progress scans

Vars

current_scanScan currently in progress if any.
scan_power_cacheCurrent scan power keyed by site
tracked_dishesList of dishes in working condition.
wide_scan_bandBand for the next wide scan. Increased after successful completion of wide scan.

Var Details

current_scan

Scan currently in progress if any.

scan_power_cache

Current scan power keyed by site

tracked_dishes

List of dishes in working condition.

wide_scan_band

Band for the next wide scan. Increased after successful completion of wide scan.

\ No newline at end of file diff --git a/datum/scar.html b/datum/scar.html new file mode 100644 index 0000000000000..aa0afbd2b9a4d --- /dev/null +++ b/datum/scar.html @@ -0,0 +1,10 @@ +/datum/scar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

scar

scars are cosmetic datums that are assigned to bodyparts once they recover from wounds. Each wound type and severity have their own descriptions for what the scars +look like, and then each body part has a list of "specific locations" like your elbow or wrist or wherever the scar can appear, to make it more interesting than "right arm"

+

Arguments:

Vars

check_any_biostatesIf false, we will only check to see if a limb has ALL our biostates, instead of just any.
coverableWhether this scar can actually be covered up by clothing
descriptionThe description of the scar for examining
fakeThese scars are assumed to come from changeling disguises, rather than from persistence or wounds. As such, they are deleted by dropping changeling disguises, and are ignored by persistence
persistent_character_slotIf we're a persistent scar or may become one, we go in this character slot
precise_locationA string detailing the specific part of the bodypart the scar is on, for fluff purposes. See /datum/scar/proc/generate
required_limb_biostateThe biostates we require from a limb to give them our scar.
severityThe severity of the scar, derived from the worst severity a wound was at before it was healed (see: slashes), determines how visible/bold the scar description is
visibilityHow many tiles away someone can see this scar, goes up with severity. Clothes covering this limb will decrease visibility by 1 each, except for the head/face which is a binary "is mask obscuring face" check

Procs

formatUsed to format a scar to save for either persistent scars, or for changeling disguises
format_amputatedUsed to format a scar to save in preferences for persistent scars
generategenerate() is used to actually fill out the info for a scar, according to the limb and wound it is provided.
get_examine_descriptionWhat will show up in examine_more() if this scar is visible
is_visibleWhether a scar can currently be seen by the viewer
lazy_attachUsed when we finalize a scar from a healing cut
loadUsed to "load" a persistent scar

Var Details

check_any_biostates

If false, we will only check to see if a limb has ALL our biostates, instead of just any.

coverable

Whether this scar can actually be covered up by clothing

description

The description of the scar for examining

fake

These scars are assumed to come from changeling disguises, rather than from persistence or wounds. As such, they are deleted by dropping changeling disguises, and are ignored by persistence

persistent_character_slot

If we're a persistent scar or may become one, we go in this character slot

precise_location

A string detailing the specific part of the bodypart the scar is on, for fluff purposes. See /datum/scar/proc/generate

required_limb_biostate

The biostates we require from a limb to give them our scar.

severity

The severity of the scar, derived from the worst severity a wound was at before it was healed (see: slashes), determines how visible/bold the scar description is

visibility

How many tiles away someone can see this scar, goes up with severity. Clothes covering this limb will decrease visibility by 1 each, except for the head/face which is a binary "is mask obscuring face" check

Proc Details

format

Used to format a scar to save for either persistent scars, or for changeling disguises

format_amputated

Used to format a scar to save in preferences for persistent scars

generate

generate() is used to actually fill out the info for a scar, according to the limb and wound it is provided.

+

After creating a scar, call this on it while targeting the scarred bodypart with a given wound to apply the scar.

+

Arguments:

+

get_examine_description

What will show up in examine_more() if this scar is visible

is_visible

Whether a scar can currently be seen by the viewer

lazy_attach

Used when we finalize a scar from a healing cut

load

Used to "load" a persistent scar

\ No newline at end of file diff --git a/datum/scheduled_event.html b/datum/scheduled_event.html new file mode 100644 index 0000000000000..4c97956455ae2 --- /dev/null +++ b/datum/scheduled_event.html @@ -0,0 +1 @@ +/datum/scheduled_event - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

scheduled_event

Scheduled event datum for SSgamemode to put events into.

Vars

alerted_adminsWhether we alerted admins about this schedule when it's close to being invoked.
announce_changeWhether the scheduled event will override the announcement change. If null it won't. TRUE = force yes. FALSE = force no.
costIf we were created by a storyteller, here's a cost to refund in case.
eventWhat event are scheduling.
fakes_occurenceWhether we are faking an occurence or not
ignores_checksWhether this ignores event can run checks. If bussed by an admin, you want to ignore checks
start_timeWhen do we start our event

Procs

rescheduleFor admins who want to reschedule the event.
try_fireTry and fire off the scheduled event

Var Details

alerted_admins

Whether we alerted admins about this schedule when it's close to being invoked.

announce_change

Whether the scheduled event will override the announcement change. If null it won't. TRUE = force yes. FALSE = force no.

cost

If we were created by a storyteller, here's a cost to refund in case.

event

What event are scheduling.

fakes_occurence

Whether we are faking an occurence or not

ignores_checks

Whether this ignores event can run checks. If bussed by an admin, you want to ignore checks

start_time

When do we start our event

Proc Details

reschedule

For admins who want to reschedule the event.

try_fire

Try and fire off the scheduled event

\ No newline at end of file diff --git a/datum/scientific_paper.html b/datum/scientific_paper.html new file mode 100644 index 0000000000000..e10acf9aedf62 --- /dev/null +++ b/datum/scientific_paper.html @@ -0,0 +1,39 @@ +/datum/scientific_paper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

scientific_paper

Scientific paper datum for retrieval and re-reading. A lot of the variables are there for fluff & flavor.

Vars

abstractAbstract.
authorThe principal author of our paper.
et_aliaWhether this paper is co-authored or not.
experiment_pathExperiment typepath.
gainsThe coop and funding gains from the paper.
partner_pathThe selected sponsor for our paper. Pathtype form.
tierDerived from tracked_variable. Used for indexing and to reduce duplicates. +Only one paper can be published in each tier for each experiment.
titleThe title of our paper.
tracked_variableThe main "score" of a particular experiment.

Procs

allowed_to_publish
calculate_gainsCalculate the gains of an experiment. +Gain calculation follows a sigmoid curve. +f(x) = L / (1+e^(-k(x-xo))) +L is the upper limit. This should be the gain variable * 2. +k is the steepness. +x0 is the midpoint. +x is our tracked variable. +Returns the expected value of that tier.
calculate_tierDetermine which tier can we publish at. Lower limit for an allowed tier is 10% of gain. Empty list if none are allowed.
clone_intoClones into a new paper type. +Important (non-fluff) variables will be carried over and should be cleaned with set_experiment by whoever is calling this.
return_gistReturns the formatted, readable gist of our paper in a list.
set_amount
set_experimentExperiment -> Tier -> Gains +Experiment -> Partners -> Gains +Changing anything in the chain means those following it should be recounted.
set_partner
set_tierSets a tier for us. Nulls the tier when called without args. Re-counts the amount.

Var Details

abstract

Abstract.

author

The principal author of our paper.

et_alia

Whether this paper is co-authored or not.

experiment_path

Experiment typepath.

gains

The coop and funding gains from the paper.

partner_path

The selected sponsor for our paper. Pathtype form.

tier

Derived from tracked_variable. Used for indexing and to reduce duplicates. +Only one paper can be published in each tier for each experiment.

title

The title of our paper.

tracked_variable

The main "score" of a particular experiment.

Proc Details

allowed_to_publish

calculate_gains

Calculate the gains of an experiment. +Gain calculation follows a sigmoid curve. +f(x) = L / (1+e^(-k(x-xo))) +L is the upper limit. This should be the gain variable * 2. +k is the steepness. +x0 is the midpoint. +x is our tracked variable. +Returns the expected value of that tier.

calculate_tier

Determine which tier can we publish at. Lower limit for an allowed tier is 10% of gain. Empty list if none are allowed.

clone_into

Clones into a new paper type. +Important (non-fluff) variables will be carried over and should be cleaned with set_experiment by whoever is calling this.

+

clone_into your own typepath will be like a normal clone.

+

If you want to subtype this, do it in a way that doesn't mess with the type change.

return_gist

Returns the formatted, readable gist of our paper in a list.

set_amount

set_experiment

Experiment -> Tier -> Gains +Experiment -> Partners -> Gains +Changing anything in the chain means those following it should be recounted.

+

Used when assigning an experiment to a specific paper. +Failing to provide a proper path, a tracked variable, or a correct data should null every non-fluff data. +Implement this in the children procs.

set_partner

set_tier

Sets a tier for us. Nulls the tier when called without args. Re-counts the amount.

\ No newline at end of file diff --git a/datum/scientific_paper/explosive.html b/datum/scientific_paper/explosive.html new file mode 100644 index 0000000000000..393a4400008dd --- /dev/null +++ b/datum/scientific_paper/explosive.html @@ -0,0 +1,3 @@ +/datum/scientific_paper/explosive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

explosive

Vars

explosion_recordUsed to check explosive experiments that needs to be unique. +References a tachyon record where applicable.

Procs

allowed_to_publishCheck if our explosion has already been published and whether the experiment path is correct or not.

Var Details

explosion_record

Used to check explosive experiments that needs to be unique. +References a tachyon record where applicable.

Proc Details

allowed_to_publish

Check if our explosion has already been published and whether the experiment path is correct or not.

\ No newline at end of file diff --git a/datum/scientific_paper/gaseous.html b/datum/scientific_paper/gaseous.html new file mode 100644 index 0000000000000..8b648e5790fb4 --- /dev/null +++ b/datum/scientific_paper/gaseous.html @@ -0,0 +1,5 @@ +/datum/scientific_paper/gaseous - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

gaseous

Procs

allowed_to_publishCheck if our record datum is a duplicate or no. +No index number is necessary because compressor records cant be replicated. +Also checks the experiment path.

Proc Details

allowed_to_publish

Check if our record datum is a duplicate or no. +No index number is necessary because compressor records cant be replicated. +Also checks the experiment path.

\ No newline at end of file diff --git a/datum/scientific_partner.html b/datum/scientific_partner.html new file mode 100644 index 0000000000000..eff8235777441 --- /dev/null +++ b/datum/scientific_partner.html @@ -0,0 +1 @@ +/datum/scientific_partner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

scientific_partner

Various informations on companies/scientific programs/journals etc that the players can sign on to.

Vars

accepted_experimentsList of ordnance experiments that our partner is willing to accept. If this list is not filled it means the partner will accept everything.
boostable_nodesAssociative list of which technology the partner might be able to boost and by how much.
flufftextBrief explanation of the associated program. Can be used for lore.
multipliersCash and renown multiplier for allying with this partner.
nameName of the partner, shown in the Science program's UI.

Var Details

accepted_experiments

List of ordnance experiments that our partner is willing to accept. If this list is not filled it means the partner will accept everything.

boostable_nodes

Associative list of which technology the partner might be able to boost and by how much.

flufftext

Brief explanation of the associated program. Can be used for lore.

multipliers

Cash and renown multiplier for allying with this partner.

name

Name of the partner, shown in the Science program's UI.

\ No newline at end of file diff --git a/datum/screen_object_holder.html b/datum/screen_object_holder.html new file mode 100644 index 0000000000000..064f51188f40e --- /dev/null +++ b/datum/screen_object_holder.html @@ -0,0 +1,2 @@ +/datum/screen_object_holder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

screen_object_holder

A helper instance that will handle adding objects from the client's screen +to easily remove from later.

Procs

give_protected_screen_objectGives the screen object to the client, but does not qdel it when it's cleared
give_screen_objectGives the screen object to the client, qdel'ing it when it's cleared

Proc Details

give_protected_screen_object

Gives the screen object to the client, but does not qdel it when it's cleared

give_screen_object

Gives the screen object to the client, qdel'ing it when it's cleared

\ No newline at end of file diff --git a/datum/scripture.html b/datum/scripture.html new file mode 100644 index 0000000000000..17bb7b80975c1 --- /dev/null +++ b/datum/scripture.html @@ -0,0 +1 @@ +/datum/scripture - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

scripture

Vars

button_icon_stateIcon state of the action button
categoryWhat category of scripture is this
cogs_requiredHow many cogs are required to be used to use this
descShown decription of the scripture in the UI
end_on_invocationOnly set to false if you call end_invoke somewhere in your scripture
invocation_chant_timerTimer object for the distance between invoking chants
invocation_textText said during invocation, automatically translates to Ratvarian
invocation_timeTime required to invoke this while standing still
invokerRef to the mob invoking this
invokers_requiredHow many people need to invoke this in sight of each other to use
invoking_slabRef to the slab invoking this
nameName of the scripture
power_costHow much power this scripture costs to use
recital_soundSound to play on finish
research_requiredIf this scripture requires research to be unlocked
tipTooltip shown on-hover. Keep to a few words
vitality_costHow much vitality this scripture costs to use

Procs

begin_invokeStart invoking a scripture, calling end_invoke() if it doesn't finish
check_special_requirementsCheck for any special requriements such as not having enough invokers, or not holding the slab
end_invokeEnd the invoking, nulling things out
invokeInvoke this scripture, checking if there's valid power and vitality
invoke_failOn failure of invoking the scripture
invoke_successOn success of invoking the scripture
recitalThe overall reciting proc for saying every single line for a scripture
reciteFor reciting an individual line of a scripture

Var Details

button_icon_state

Icon state of the action button

category

What category of scripture is this

cogs_required

How many cogs are required to be used to use this

desc

Shown decription of the scripture in the UI

end_on_invocation

Only set to false if you call end_invoke somewhere in your scripture

invocation_chant_timer

Timer object for the distance between invoking chants

invocation_text

Text said during invocation, automatically translates to Ratvarian

invocation_time

Time required to invoke this while standing still

invoker

Ref to the mob invoking this

invokers_required

How many people need to invoke this in sight of each other to use

invoking_slab

Ref to the slab invoking this

name

Name of the scripture

power_cost

How much power this scripture costs to use

recital_sound

Sound to play on finish

research_required

If this scripture requires research to be unlocked

tip

Tooltip shown on-hover. Keep to a few words

vitality_cost

How much vitality this scripture costs to use

Proc Details

begin_invoke

Start invoking a scripture, calling end_invoke() if it doesn't finish

check_special_requirements

Check for any special requriements such as not having enough invokers, or not holding the slab

end_invoke

End the invoking, nulling things out

invoke

Invoke this scripture, checking if there's valid power and vitality

invoke_fail

On failure of invoking the scripture

invoke_success

On success of invoking the scripture

recital

The overall reciting proc for saying every single line for a scripture

recite

For reciting an individual line of a scripture

\ No newline at end of file diff --git a/datum/scripture/create_structure.html b/datum/scripture/create_structure.html new file mode 100644 index 0000000000000..1c2bbe4880ffe --- /dev/null +++ b/datum/scripture/create_structure.html @@ -0,0 +1 @@ +/datum/scripture/create_structure - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

create_structure

Vars

summoned_structureTypepath for the structure to create

Var Details

summoned_structure

Typepath for the structure to create

\ No newline at end of file diff --git a/datum/scripture/slab.html b/datum/scripture/slab.html new file mode 100644 index 0000000000000..deea162df97da --- /dev/null +++ b/datum/scripture/slab.html @@ -0,0 +1 @@ +/datum/scripture/slab - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

slab

Vars

after_use_textText displayed after use
loop_timer_idID of the loop timer
pointed_spellInternal spell for pointed/aimed spells
progressProgressbar datum for count_down()
slab_overlayOverlay for the item/inhand state while this is invoked
time_leftHow much time left to use this
use_timeTime to perform this
usesHow many times this scripture can be used overall, is unchanging
uses_leftHow many times this can be used this particular invocation, can go down

Procs

apply_effectsApply the effects of a scripture to an atom
click_onWhat occurs when an atom is clicked on.
count_downCount down the progress bar
end_invocationWhat occurs when the invocation ends

Var Details

after_use_text

Text displayed after use

loop_timer_id

ID of the loop timer

pointed_spell

Internal spell for pointed/aimed spells

progress

Progressbar datum for count_down()

slab_overlay

Overlay for the item/inhand state while this is invoked

time_left

How much time left to use this

use_time

Time to perform this

uses

How many times this scripture can be used overall, is unchanging

uses_left

How many times this can be used this particular invocation, can go down

Proc Details

apply_effects

Apply the effects of a scripture to an atom

click_on

What occurs when an atom is clicked on.

count_down

Count down the progress bar

end_invocation

What occurs when the invocation ends

\ No newline at end of file diff --git a/datum/search_object.html b/datum/search_object.html new file mode 100644 index 0000000000000..76017d4e07f5c --- /dev/null +++ b/datum/search_object.html @@ -0,0 +1,2 @@ +/datum/search_object - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

search_object

Search Object

+

An object for content lists. Compacted item data.

Vars

iconUrl to the image of the object
icon_stateIcon state, for inexpensive icons
itemItem we're indexing
nameName of the original object
pathTypepath of the original object for ui grouping

Procs

generate_iconGenerates the icon for the search object. This is the expensive part.
on_item_movedParent item has been altered, search object no longer valid
on_turf_changeParent tile has been altered, entire search needs reset

Var Details

icon

Url to the image of the object

icon_state

Icon state, for inexpensive icons

item

Item we're indexing

name

Name of the original object

path

Typepath of the original object for ui grouping

Proc Details

generate_icon

Generates the icon for the search object. This is the expensive part.

on_item_moved

Parent item has been altered, search object no longer valid

on_turf_change

Parent tile has been altered, entire search needs reset

\ No newline at end of file diff --git a/datum/security_level.html b/datum/security_level.html new file mode 100644 index 0000000000000..91aeced607d8b --- /dev/null +++ b/datum/security_level.html @@ -0,0 +1,3 @@ +/datum/security_level - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

security_level

Security levels

+

These are used by the security level subsystem. Each one of these represents a security level that a player can set.

+

Base type is abstract

Vars

announcement_colorThe color of our announcement divider.
elevating_to_announcementOur announcement when elevating to this level
elevating_to_configuration_keyOur configuration key for elevating to text, if set, will override the default elevating to announcement.
fire_alarm_light_colorThe color of the fire alarm light set when changed to this security level
looping_soundThe looping sound that will be played while the security level is set
looping_sound_intervalThe looping sound interval
lowering_to_announcementOur announcement when lowering to this level
lowering_to_configuration_keyOur configuration key for lowering to text, if set, will override the default lowering to announcement.
nameThe name of this security level.
number_levelThe numerical level of this security level, see defines for more information.
shuttle_call_time_modThe shuttle call time modification of this security level
soundThe sound that we will play when this security level is set
status_display_icon_stateIcon state that will be displayed on displays during this security level

Var Details

announcement_color

The color of our announcement divider.

elevating_to_announcement

Our announcement when elevating to this level

elevating_to_configuration_key

Our configuration key for elevating to text, if set, will override the default elevating to announcement.

fire_alarm_light_color

The color of the fire alarm light set when changed to this security level

looping_sound

The looping sound that will be played while the security level is set

looping_sound_interval

The looping sound interval

lowering_to_announcement

Our announcement when lowering to this level

lowering_to_configuration_key

Our configuration key for lowering to text, if set, will override the default lowering to announcement.

name

The name of this security level.

number_level

The numerical level of this security level, see defines for more information.

shuttle_call_time_mod

The shuttle call time modification of this security level

sound

The sound that we will play when this security level is set

status_display_icon_state

Icon state that will be displayed on displays during this security level

\ No newline at end of file diff --git a/datum/security_level/amber.html b/datum/security_level/amber.html new file mode 100644 index 0000000000000..82bf7af85fb92 --- /dev/null +++ b/datum/security_level/amber.html @@ -0,0 +1,2 @@ +/datum/security_level/amber - /tg/ Station 13
/tg/ Station 13 - Modules - Types

amber

Amber

+

Securty emergency

\ No newline at end of file diff --git a/datum/security_level/blue.html b/datum/security_level/blue.html new file mode 100644 index 0000000000000..e40ccf8d62fbf --- /dev/null +++ b/datum/security_level/blue.html @@ -0,0 +1,2 @@ +/datum/security_level/blue - /tg/ Station 13
/tg/ Station 13 - Modules - Types

blue

BLUE

+

Caution advised

\ No newline at end of file diff --git a/datum/security_level/delta.html b/datum/security_level/delta.html new file mode 100644 index 0000000000000..4422d918deabb --- /dev/null +++ b/datum/security_level/delta.html @@ -0,0 +1,2 @@ +/datum/security_level/delta - /tg/ Station 13
/tg/ Station 13 - Modules - Types

delta

DELTA

+

Station destruction is imminent

\ No newline at end of file diff --git a/datum/security_level/epsilon.html b/datum/security_level/epsilon.html new file mode 100644 index 0000000000000..8e96fb97fb2bf --- /dev/null +++ b/datum/security_level/epsilon.html @@ -0,0 +1,2 @@ +/datum/security_level/epsilon - /tg/ Station 13
/tg/ Station 13 - Modules - Types

epsilon

Epsilon

+

Deathsquad comes to KILL ALL

\ No newline at end of file diff --git a/datum/security_level/gamma.html b/datum/security_level/gamma.html new file mode 100644 index 0000000000000..860d2a12974a1 --- /dev/null +++ b/datum/security_level/gamma.html @@ -0,0 +1,2 @@ +/datum/security_level/gamma - /tg/ Station 13
/tg/ Station 13 - Modules - Types

gamma

Gamma

+

XK-Class EOR Event

\ No newline at end of file diff --git a/datum/security_level/green.html b/datum/security_level/green.html new file mode 100644 index 0000000000000..b2d5a3a212fc1 --- /dev/null +++ b/datum/security_level/green.html @@ -0,0 +1,3 @@ +/datum/security_level/green - /tg/ Station 13
/tg/ Station 13 - Modules - Types

green

GREEN

+

No threats

+

Contains some overrides and our sec levels.

\ No newline at end of file diff --git a/datum/security_level/orange.html b/datum/security_level/orange.html new file mode 100644 index 0000000000000..1dff87607cbec --- /dev/null +++ b/datum/security_level/orange.html @@ -0,0 +1,2 @@ +/datum/security_level/orange - /tg/ Station 13
/tg/ Station 13 - Modules - Types

orange

Orange

+

Engineering emergency

\ No newline at end of file diff --git a/datum/security_level/red.html b/datum/security_level/red.html new file mode 100644 index 0000000000000..e4a85c1d91933 --- /dev/null +++ b/datum/security_level/red.html @@ -0,0 +1,2 @@ +/datum/security_level/red - /tg/ Station 13
/tg/ Station 13 - Modules - Types

red

RED

+

Hostile threats

\ No newline at end of file diff --git a/datum/security_level/violet.html b/datum/security_level/violet.html new file mode 100644 index 0000000000000..386ce4cb498e1 --- /dev/null +++ b/datum/security_level/violet.html @@ -0,0 +1,2 @@ +/datum/security_level/violet - /tg/ Station 13
/tg/ Station 13 - Modules - Types

violet

Violet

+

Medical emergency

\ No newline at end of file diff --git a/datum/select_equipment.html b/datum/select_equipment.html new file mode 100644 index 0000000000000..f1c9fccaf6f61 --- /dev/null +++ b/datum/select_equipment.html @@ -0,0 +1,26 @@ +/datum/select_equipment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

select_equipment

Procs

outfit_entryPacks up data about an outfit as an assoc list to send to the UI as an outfit entry.

Proc Details

outfit_entry

Packs up data about an outfit as an assoc list to send to the UI as an outfit entry.

+

Args:

+ +

Returns (list) An outfit entry

\ No newline at end of file diff --git a/datum/shuttle_event.html b/datum/shuttle_event.html new file mode 100644 index 0000000000000..39dc6c38a3151 --- /dev/null +++ b/datum/shuttle_event.html @@ -0,0 +1,5 @@ +/datum/shuttle_event - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shuttle_event

An event that can run during shuttle flight, and will run for the duration of it (configurable)

Vars

activate_atwhen do we activate?
activation_fractionfraction of the escape timer at which we activate, 0 means we start running immediately +(so if activation timer is 0.2 and shuttle takes 3 minutes to get going, it will activate in 36 seconds) +We only care about the timer from the moment of launch, any speed changed afterwards are not worth dealing with
activeTrack if we're allowed to run, gets turned to TRUE when the activation timer hits
event_probabilityprobability of this event to run from 0 to 100
nameHow we're announced to ghosts and stuff
portOur reference to the docking port and thus the shuttle

Procs

activateWe got activated
event_processProcess with the SShutle subsystem. Return SHUTTLE_EVENT_CLEAR to self-destruct

Var Details

activate_at

when do we activate?

activation_fraction

fraction of the escape timer at which we activate, 0 means we start running immediately +(so if activation timer is 0.2 and shuttle takes 3 minutes to get going, it will activate in 36 seconds) +We only care about the timer from the moment of launch, any speed changed afterwards are not worth dealing with

active

Track if we're allowed to run, gets turned to TRUE when the activation timer hits

event_probability

probability of this event to run from 0 to 100

name

How we're announced to ghosts and stuff

port

Our reference to the docking port and thus the shuttle

Proc Details

activate

We got activated

event_process

Process with the SShutle subsystem. Return SHUTTLE_EVENT_CLEAR to self-destruct

\ No newline at end of file diff --git a/datum/shuttle_event/simple_spawner.html b/datum/shuttle_event/simple_spawner.html new file mode 100644 index 0000000000000..6b3acee25fd06 --- /dev/null +++ b/datum/shuttle_event/simple_spawner.html @@ -0,0 +1 @@ +/datum/shuttle_event/simple_spawner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

simple_spawner

Spawns objects, mobs, whatever with all the necessary code to make it hit and/or miss the shuttle

Vars

remove_from_list_when_spawnedIf set to TRUE, every time an object is spawned their weight is decreased untill they are removed
self_destruct_when_emptyIf set to true, we'll delete ourselves if we cant spawn anything anymore. Useful in conjunction with remove_from_list_when_spawned
spawn_probability_per_processChance, from 0 to 100, for something to spawn
spawning_flagsbehaviour of spawning objects, if we spawn
spawning_listweighted list with spawnable movables
spawning_turfs_hitList of valid spawning turfs, generated from generate_spawning_turfs(), that will HIT the shuttle
spawning_turfs_missList of valid spawning turfs, generated from generate_spawning_turfs(), that will MISS the shuttle
spawns_per_spawnIncrement if you want more stuff to spawn at once

Procs

generate_spawning_turfsBounding coords are list(x0, y0, x1, y1) where x0 and y0 are top-left
get_spawn_turfPick a random turf from the valid turfs we got. Overwrite if you need some custom picking
get_type_to_spawnNot technically a getter if remove_from_list_when_spawned=TRUE. Otherwise, this returns the type we're going to spawn and throw at the shuttle
post_spawnDo any post-spawn edits you need to do
spawn_movableSpawn stuff! if you're not using this, don't use the simple_spawner subtype

Var Details

remove_from_list_when_spawned

If set to TRUE, every time an object is spawned their weight is decreased untill they are removed

self_destruct_when_empty

If set to true, we'll delete ourselves if we cant spawn anything anymore. Useful in conjunction with remove_from_list_when_spawned

spawn_probability_per_process

Chance, from 0 to 100, for something to spawn

spawning_flags

behaviour of spawning objects, if we spawn

spawning_list

weighted list with spawnable movables

spawning_turfs_hit

List of valid spawning turfs, generated from generate_spawning_turfs(), that will HIT the shuttle

spawning_turfs_miss

List of valid spawning turfs, generated from generate_spawning_turfs(), that will MISS the shuttle

spawns_per_spawn

Increment if you want more stuff to spawn at once

Proc Details

generate_spawning_turfs

Bounding coords are list(x0, y0, x1, y1) where x0 and y0 are top-left

get_spawn_turf

Pick a random turf from the valid turfs we got. Overwrite if you need some custom picking

get_type_to_spawn

Not technically a getter if remove_from_list_when_spawned=TRUE. Otherwise, this returns the type we're going to spawn and throw at the shuttle

post_spawn

Do any post-spawn edits you need to do

spawn_movable

Spawn stuff! if you're not using this, don't use the simple_spawner subtype

\ No newline at end of file diff --git a/datum/shuttle_event/simple_spawner/carp/friendly.html b/datum/shuttle_event/simple_spawner/carp/friendly.html new file mode 100644 index 0000000000000..9b19ae5c7df27 --- /dev/null +++ b/datum/shuttle_event/simple_spawner/carp/friendly.html @@ -0,0 +1 @@ +/datum/shuttle_event/simple_spawner/carp/friendly - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

friendly

Spawn a bunch of friendly carp to view from inside the shuttle! May occassionally pass through and nibble some windows, but are otherwise pretty harmless

Vars

hit_the_shuttle_chanceChance we hit the shuttle, instead of flying past it (most carp will go through anyway, and we dont want this to be too annoying to take away from the majesty)

Var Details

hit_the_shuttle_chance

Chance we hit the shuttle, instead of flying past it (most carp will go through anyway, and we dont want this to be too annoying to take away from the majesty)

\ No newline at end of file diff --git a/datum/shuttle_event/simple_spawner/meteor/dust.html b/datum/shuttle_event/simple_spawner/meteor/dust.html new file mode 100644 index 0000000000000..f4c7e1fa8f4bc --- /dev/null +++ b/datum/shuttle_event/simple_spawner/meteor/dust.html @@ -0,0 +1 @@ +/datum/shuttle_event/simple_spawner/meteor/dust - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dust

Very weak meteors, but may very rarely actually hit the shuttle!

Vars

hit_the_shuttle_chanceWe can, occassionally, hit the shuttle, but we dont do a lot of damage and should only do so pretty rarely

Var Details

hit_the_shuttle_chance

We can, occassionally, hit the shuttle, but we dont do a lot of damage and should only do so pretty rarely

\ No newline at end of file diff --git a/datum/shuttle_event/simple_spawner/player_controlled.html b/datum/shuttle_event/simple_spawner/player_controlled.html new file mode 100644 index 0000000000000..3c169a3607341 --- /dev/null +++ b/datum/shuttle_event/simple_spawner/player_controlled.html @@ -0,0 +1 @@ +/datum/shuttle_event/simple_spawner/player_controlled - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

player_controlled

Mobs spawned with this one are automatically player controlled, if possible

Vars

spawn_anyway_if_no_playerIf we cant find a ghost, do we spawn them anyway? Otherwise they go in the garbage bin

Procs

try_grant_ghost_controlAttempt to grant control of a mob to ghosts before spawning it in. if spawn_anyway_if_no_player = TRUE, we spawn the mob even if there's no ghosts

Var Details

spawn_anyway_if_no_player

If we cant find a ghost, do we spawn them anyway? Otherwise they go in the garbage bin

Proc Details

try_grant_ghost_control

Attempt to grant control of a mob to ghosts before spawning it in. if spawn_anyway_if_no_player = TRUE, we spawn the mob even if there's no ghosts

\ No newline at end of file diff --git a/datum/shuttle_event/simple_spawner/player_controlled/carp.html b/datum/shuttle_event/simple_spawner/player_controlled/carp.html new file mode 100644 index 0000000000000..2b60f685f9b51 --- /dev/null +++ b/datum/shuttle_event/simple_spawner/player_controlled/carp.html @@ -0,0 +1 @@ +/datum/shuttle_event/simple_spawner/player_controlled/carp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

carp

Spawns three player controlled carp!! Deadchats final chance to wreak havoc, probably really not that dangerous if even one person has a laser gun

Vars

max_carp_spawnshow many carp can we spawn max?

Var Details

max_carp_spawns

how many carp can we spawn max?

\ No newline at end of file diff --git a/datum/shuttle_event/simple_spawner/player_controlled/human.html b/datum/shuttle_event/simple_spawner/player_controlled/human.html new file mode 100644 index 0000000000000..d31b81a52375c --- /dev/null +++ b/datum/shuttle_event/simple_spawner/player_controlled/human.html @@ -0,0 +1 @@ +/datum/shuttle_event/simple_spawner/player_controlled/human - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

human

Human spawning events, with the ability to give them outfits!

Vars

outfitOutfits equipped to human mobs we send to the shuttle

Var Details

outfit

Outfits equipped to human mobs we send to the shuttle

\ No newline at end of file diff --git a/datum/shuttle_event/simple_spawner/projectile.html b/datum/shuttle_event/simple_spawner/projectile.html new file mode 100644 index 0000000000000..c6c226e7d960d --- /dev/null +++ b/datum/shuttle_event/simple_spawner/projectile.html @@ -0,0 +1 @@ +/datum/shuttle_event/simple_spawner/projectile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

projectile

Spawn projectiles towards the shuttle

Vars

angle_spreadSpread of the fired projectiles, to add some flair to it

Var Details

angle_spread

Spread of the fired projectiles, to add some flair to it

\ No newline at end of file diff --git a/datum/shuttle_event/turbulence.html b/datum/shuttle_event/turbulence.html new file mode 100644 index 0000000000000..5fa1838060294 --- /dev/null +++ b/datum/shuttle_event/turbulence.html @@ -0,0 +1 @@ +/datum/shuttle_event/turbulence - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

turbulence

Repeat the "buckle in or fall over" event a couple times

Vars

maximum_intervalMaximum time to wait between periods of turbulence
minimum_intervalMinimum time to wait between periods of turbulence
turbulence_cooldownTime until we should shake again
warning_intervalHow long do we give people to get buckled?

Procs

knock_downKnock them down
shakeWarn players to get buckled

Var Details

maximum_interval

Maximum time to wait between periods of turbulence

minimum_interval

Minimum time to wait between periods of turbulence

turbulence_cooldown

Time until we should shake again

warning_interval

How long do we give people to get buckled?

Proc Details

knock_down

Knock them down

shake

Warn players to get buckled

\ No newline at end of file diff --git a/datum/shuttle_loan_situation.html b/datum/shuttle_loan_situation.html new file mode 100644 index 0000000000000..7154da0b041f9 --- /dev/null +++ b/datum/shuttle_loan_situation.html @@ -0,0 +1 @@ +/datum/shuttle_loan_situation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shuttle_loan_situation

One of the potential shuttle loans you might receive.

Vars

announcement_textWhat they said about it.
bonus_pointsSupply points earned for taking the deal.
logging_descSmall description of the loan for easier log reading.
senderWho sent the shuttle
shuttle_transit_textWhat the shuttle says about it.
thanks_msgResponse for taking the deal.

Procs

spawn_itemsSpawns paths added to spawn_list, and passes empty shuttle turfs so you can spawn more complicated things like dead bodies.

Var Details

announcement_text

What they said about it.

bonus_points

Supply points earned for taking the deal.

logging_desc

Small description of the loan for easier log reading.

sender

Who sent the shuttle

shuttle_transit_text

What the shuttle says about it.

thanks_msg

Response for taking the deal.

Proc Details

spawn_items

Spawns paths added to spawn_list, and passes empty shuttle turfs so you can spawn more complicated things like dead bodies.

\ No newline at end of file diff --git a/datum/signal.html b/datum/signal.html new file mode 100644 index 0000000000000..ac3d600e8197d --- /dev/null +++ b/datum/signal.html @@ -0,0 +1,7 @@ +/datum/signal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

signal

Vars

dataThe data carried through this signal. Defaults to null, otherwise it's +an associative list of (string, any).
frequencyThe frequency on which this signal was emitted.
logging_dataLogging data, used for logging purposes. Makes sense, right?
sourceThe source of this signal.
transmission_methodThe method through which this signal was transmitted. +See all of the TRANSMISSION_X in code/__DEFINES/radio.dm for +all of the possible options.

Var Details

data

The data carried through this signal. Defaults to null, otherwise it's +an associative list of (string, any).

frequency

The frequency on which this signal was emitted.

logging_data

Logging data, used for logging purposes. Makes sense, right?

source

The source of this signal.

transmission_method

The method through which this signal was transmitted. +See all of the TRANSMISSION_X in code/__DEFINES/radio.dm for +all of the possible options.

\ No newline at end of file diff --git a/datum/signal/subspace.html b/datum/signal/subspace.html new file mode 100644 index 0000000000000..3e09a71a1a81c --- /dev/null +++ b/datum/signal/subspace.html @@ -0,0 +1,17 @@ +/datum/signal/subspace - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

subspace

Vars

blacklisted_spansBlacklisted spans we don't want being put into comms by anything, ever - a place to put any new spans we want to make without letting them annoy people on comms
levelsThe levels on which this signal can be received. Generally set by +a broadcaster, a relay or a message server. +If this list contains 0, then it will be receivable on every single +z-level.
originalThe signal that was the origin of this one, in case it was a copy.
server_typeThe type of server this signal is meant to be relayed to. +Not exclusive, the bus will usually try to send it through +more signals, but for that look for +/obj/machinery/telecomms/bus/receive_information()

Procs

broadcastHandles broadcasting this signal out, to be implemented by subtypes.
copyHandles creating a new subspace signal that's a hard copy of this one, linked +to this current signal via the original value, so that it can be traced back.
mark_doneHandles marking the current signal, as well as its original signal, +and their original signals (recursively) as done, in their data["done"].
send_to_receiversHandles sending this signal to every available receiver and mainframe.

Var Details

blacklisted_spans

Blacklisted spans we don't want being put into comms by anything, ever - a place to put any new spans we want to make without letting them annoy people on comms

levels

The levels on which this signal can be received. Generally set by +a broadcaster, a relay or a message server. +If this list contains 0, then it will be receivable on every single +z-level.

original

The signal that was the origin of this one, in case it was a copy.

server_type

The type of server this signal is meant to be relayed to. +Not exclusive, the bus will usually try to send it through +more signals, but for that look for +/obj/machinery/telecomms/bus/receive_information()

Proc Details

broadcast

Handles broadcasting this signal out, to be implemented by subtypes.

copy

Handles creating a new subspace signal that's a hard copy of this one, linked +to this current signal via the original value, so that it can be traced back.

mark_done

Handles marking the current signal, as well as its original signal, +and their original signals (recursively) as done, in their data["done"].

send_to_receivers

Handles sending this signal to every available receiver and mainframe.

\ No newline at end of file diff --git a/datum/signal/subspace/messaging/tablet_message.html b/datum/signal/subspace/messaging/tablet_message.html new file mode 100644 index 0000000000000..b2b77580900fe --- /dev/null +++ b/datum/signal/subspace/messaging/tablet_message.html @@ -0,0 +1,3 @@ +/datum/signal/subspace/messaging/tablet_message - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

tablet_message

Procs

format_messageReturns the formatted message contained in this message. Use this to apply +any processing to it if it needs to be formatted in a specific way.
format_photo_pathReturns the formatted photo path contained in this message, if there's one.
format_senderReturns a string representing the sender of this message, formatted properly.
format_targetReturns a string representing the target of this message, formatted properly.

Proc Details

format_message

Returns the formatted message contained in this message. Use this to apply +any processing to it if it needs to be formatted in a specific way.

format_photo_path

Returns the formatted photo path contained in this message, if there's one.

format_sender

Returns a string representing the sender of this message, formatted properly.

format_target

Returns a string representing the target of this message, formatted properly.

\ No newline at end of file diff --git a/datum/signal/subspace/vocal.html b/datum/signal/subspace/vocal.html new file mode 100644 index 0000000000000..20a5a6797d7b8 --- /dev/null +++ b/datum/signal/subspace/vocal.html @@ -0,0 +1 @@ +/datum/signal/subspace/vocal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

vocal

Vars

languageThe language this vocal transmission was sent in.
virtThe virtualspeaker associated with this vocal transmission.

Procs

broadcastThis is the meat function for making radios hear vocal transmissions.

Var Details

language

The language this vocal transmission was sent in.

virt

The virtualspeaker associated with this vocal transmission.

Proc Details

broadcast

This is the meat function for making radios hear vocal transmissions.

\ No newline at end of file diff --git a/datum/simple_research.html b/datum/simple_research.html new file mode 100644 index 0000000000000..55be6bc02c51b --- /dev/null +++ b/datum/simple_research.html @@ -0,0 +1 @@ +/datum/simple_research - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

simple_research

Vars

required_itemsany pre-req items for this simple research
research_itemthe item that results from successful research symbols
skilled_itemthe item that, if you hit the probability from research skill, will spawn instead

Var Details

required_items

any pre-req items for this simple research

research_item

the item that results from successful research symbols

skilled_item

the item that, if you hit the probability from research skill, will spawn instead

\ No newline at end of file diff --git a/datum/skill.html b/datum/skill.html new file mode 100644 index 0000000000000..845e4a7ef7ef1 --- /dev/null +++ b/datum/skill.html @@ -0,0 +1,16 @@ +/datum/skill - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

skill

Vars

levelDownMessagesList associating different messages that appear on level up with different levels
levelUpMessagesList associating different messages that appear on level up with different levels
modifiersDictionary of modifier type - list of modifiers (indexed by level). 7 entries in each list for all 7 skill levels.
skill_item_pathList Path pointing to the skill item reward that will appear when a user finishes leveling up a skill

Procs

Newnew: sets up some lists.
level_gainedlevel_gained: Gives skill levelup messages to the user
level_lostlevel_lost: See level_gained, same idea but fires on skill level-down
try_skill_rewardtry_skill_reward: Checks to see if a user is eligable for a tangible reward for reaching a certain skill level

Var Details

levelDownMessages

List associating different messages that appear on level up with different levels

levelUpMessages

List associating different messages that appear on level up with different levels

modifiers

Dictionary of modifier type - list of modifiers (indexed by level). 7 entries in each list for all 7 skill levels.

skill_item_path

List Path pointing to the skill item reward that will appear when a user finishes leveling up a skill

Proc Details

New

new: sets up some lists.

+

Can't happen in the datum's definition because these lists are not constant expressions

level_gained

level_gained: Gives skill levelup messages to the user

+

Only fires if the xp gain isn't silent, so only really useful for messages. +Arguments:

+

level_lost

level_lost: See level_gained, same idea but fires on skill level-down

try_skill_reward

try_skill_reward: Checks to see if a user is eligable for a tangible reward for reaching a certain skill level

+

Currently gives the user a special cloak when they reach a legendary level at any given skill +Arguments:

+
\ No newline at end of file diff --git a/datum/slime_type.html b/datum/slime_type.html new file mode 100644 index 0000000000000..cb4e1a4890f2f --- /dev/null +++ b/datum/slime_type.html @@ -0,0 +1 @@ +/datum/slime_type - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

slime_type

Vars

colourOur slime's colour as text. Used by both description, and icon
core_typeThe type our slime spawns
mutationsThe possible mutations of our slime
rgb_codeThe hexcode used by the slime to colour their victims
transparentWhether the slime icons should be semi-transparent

Var Details

colour

Our slime's colour as text. Used by both description, and icon

core_type

The type our slime spawns

mutations

The possible mutations of our slime

rgb_code

The hexcode used by the slime to colour their victims

transparent

Whether the slime icons should be semi-transparent

\ No newline at end of file diff --git a/datum/sm_delam.html b/datum/sm_delam.html new file mode 100644 index 0000000000000..16a313a18c9a5 --- /dev/null +++ b/datum/sm_delam.html @@ -0,0 +1,26 @@ +/datum/sm_delam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

sm_delam

Logic holder for supermatter delaminations, goes off the strategy design pattern. +Selected by /obj/machinery/power/supermatter_crystal/proc/set_delam

Procs

can_selectWhether we are eligible for this delamination or not. TRUE if valid, FALSE if not. +/obj/machinery/power/supermatter_crystal/proc/set_delam
count_down_messagesReturns a set of messages to be spouted during delams +First message is start of count down, second message is quitting of count down (if sm healed), third is 5 second intervals
delam_progressWhatever we're supposed to do when a delam is currently in progress. +Mostly just to tell people how useless engi is, and play some alarm sounds. +Returns TRUE if we just told people a delam is going on. FALSE if its healing or we didnt say anything. +[/obj/machinery/power/supermatter_crystal/proc/process_atmos]
delaminateCalled when the count down has been finished, do the nasty work. +/obj/machinery/power/supermatter_crystal/proc/count_down
effect_anomalySpawns anomalies all over the station. Half instantly, the other half over time.
effect_crystal_massScatters crystal mass over the event spawns as long as they are at least 30 tiles away from whatever we want to avoid.
effect_demoralizeHallucinates and makes mobs in Z level sad.
effect_evac_rift_endAnnounce the destruction of the rift and end the round.
effect_evac_rift_startSpawn an evacuation rift for people to go through.
effect_explosionExplodes
effect_irradiateIrradiates mobs around 20 tiles of the sm. +Just the mobs apparently.
effect_singuloSpawns a scrung and eat the SM.
effect_strand_shuttleMail the shuttle off to buy milk.
effect_teslaTeslas
examineAdded to an examine return value. +[/obj/machinery/power/supermatter_crystal/examine]
filtersApplies filters to the SM. +[/obj/machinery/power/supermatter_crystal/process_atmos]
lights[/obj/machinery/power/supermatter_crystal/process_atmos]
on_deselectCalled when a supermatter switches its strategy from us to something else. +/obj/machinery/power/supermatter_crystal/proc/set_delam
on_selectCalled when a supermatter switches its strategy from another one to us. +/obj/machinery/power/supermatter_crystal/proc/set_delam
overlaysAdd whatever overlay to the sm. +[/obj/machinery/power/supermatter_crystal/update_overlays]

Proc Details

can_select

Whether we are eligible for this delamination or not. TRUE if valid, FALSE if not. +/obj/machinery/power/supermatter_crystal/proc/set_delam

count_down_messages

Returns a set of messages to be spouted during delams +First message is start of count down, second message is quitting of count down (if sm healed), third is 5 second intervals

delam_progress

Whatever we're supposed to do when a delam is currently in progress. +Mostly just to tell people how useless engi is, and play some alarm sounds. +Returns TRUE if we just told people a delam is going on. FALSE if its healing or we didnt say anything. +[/obj/machinery/power/supermatter_crystal/proc/process_atmos]

delaminate

Called when the count down has been finished, do the nasty work. +/obj/machinery/power/supermatter_crystal/proc/count_down

effect_anomaly

Spawns anomalies all over the station. Half instantly, the other half over time.

effect_crystal_mass

Scatters crystal mass over the event spawns as long as they are at least 30 tiles away from whatever we want to avoid.

effect_demoralize

Hallucinates and makes mobs in Z level sad.

effect_evac_rift_end

Announce the destruction of the rift and end the round.

effect_evac_rift_start

Spawn an evacuation rift for people to go through.

effect_explosion

Explodes

effect_irradiate

Irradiates mobs around 20 tiles of the sm. +Just the mobs apparently.

effect_singulo

Spawns a scrung and eat the SM.

effect_strand_shuttle

Mail the shuttle off to buy milk.

effect_tesla

Teslas

examine

Added to an examine return value. +[/obj/machinery/power/supermatter_crystal/examine]

filters

Applies filters to the SM. +[/obj/machinery/power/supermatter_crystal/process_atmos]

lights

[/obj/machinery/power/supermatter_crystal/process_atmos]

on_deselect

Called when a supermatter switches its strategy from us to something else. +/obj/machinery/power/supermatter_crystal/proc/set_delam

on_select

Called when a supermatter switches its strategy from another one to us. +/obj/machinery/power/supermatter_crystal/proc/set_delam

overlays

Add whatever overlay to the sm. +[/obj/machinery/power/supermatter_crystal/update_overlays]

\ No newline at end of file diff --git a/datum/sm_delam/cascade.html b/datum/sm_delam/cascade.html new file mode 100644 index 0000000000000..3a62809eecd2c --- /dev/null +++ b/datum/sm_delam/cascade.html @@ -0,0 +1 @@ +/datum/sm_delam/cascade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cascade

Procs

end_round_holderSignal calls cant sleep, we gotta do this.

Proc Details

end_round_holder

Signal calls cant sleep, we gotta do this.

\ No newline at end of file diff --git a/datum/sm_gas.html b/datum/sm_gas.html new file mode 100644 index 0000000000000..6e0af4259a910 --- /dev/null +++ b/datum/sm_gas.html @@ -0,0 +1,3 @@ +/datum/sm_gas - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sm_gas

Contains effects of gases when absorbed by the sm. +If the gas has no effects you do not need to add another sm_gas subtype, +We already guard for nulls in /obj/machinery/power/supermatter_crystal/proc/calculate_gases

Vars

descGive a short description of the gas if needed. If the gas have extra effects describe it here.
gas_pathPath of the /datum/gas involved with this interaction.
heat_modifierHow much more waste heat and gas the SM generates.
heat_power_generationLets the sm generate extra power from heat. Yeah...
heat_resistanceHow extra hot the SM can run before taking damage
power_transmissionInfluences zap power without interfering with the crystal's own energy. Gets scaled by BASE_POWER_TRANSMISSION_RATE.
powerloss_inhibitionHow much powerloss do we get rid of.

Var Details

desc

Give a short description of the gas if needed. If the gas have extra effects describe it here.

gas_path

Path of the /datum/gas involved with this interaction.

heat_modifier

How much more waste heat and gas the SM generates.

heat_power_generation

Lets the sm generate extra power from heat. Yeah...

heat_resistance

How extra hot the SM can run before taking damage

power_transmission

Influences zap power without interfering with the crystal's own energy. Gets scaled by BASE_POWER_TRANSMISSION_RATE.

powerloss_inhibition

How much powerloss do we get rid of.

\ No newline at end of file diff --git a/datum/sm_gas/bz.html b/datum/sm_gas/bz.html new file mode 100644 index 0000000000000..71df7dc8b072d --- /dev/null +++ b/datum/sm_gas/bz.html @@ -0,0 +1 @@ +/datum/sm_gas/bz - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bz

Procs

extra_effectsStart to emit radballs at a maximum of 30% chance per tick

Proc Details

extra_effects

Start to emit radballs at a maximum of 30% chance per tick

\ No newline at end of file diff --git a/datum/sm_gas/carbon_dioxide.html b/datum/sm_gas/carbon_dioxide.html new file mode 100644 index 0000000000000..8e5480ded50eb --- /dev/null +++ b/datum/sm_gas/carbon_dioxide.html @@ -0,0 +1 @@ +/datum/sm_gas/carbon_dioxide - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

carbon_dioxide

Procs

extra_effectsCan be on Oxygen or CO2, but better lump it here since CO2 is rarer.

Proc Details

extra_effects

Can be on Oxygen or CO2, but better lump it here since CO2 is rarer.

\ No newline at end of file diff --git a/datum/sm_gas/miasma.html b/datum/sm_gas/miasma.html new file mode 100644 index 0000000000000..77cb7ab0c8627 --- /dev/null +++ b/datum/sm_gas/miasma.html @@ -0,0 +1 @@ +/datum/sm_gas/miasma - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

miasma

Procs

extra_effectsMiasma is really just microscopic particulate. It gets consumed like anything else that touches the crystal.

Proc Details

extra_effects

Miasma is really just microscopic particulate. It gets consumed like anything else that touches the crystal.

\ No newline at end of file diff --git a/datum/smite.html b/datum/smite.html new file mode 100644 index 0000000000000..fee682ca0375c --- /dev/null +++ b/datum/smite.html @@ -0,0 +1,5 @@ +/datum/smite - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

smite

A smite, used by admins to punish players, or for their own amusement

Vars

nameThe name of the smite, shown in the menu
should_logShould this smite write to logs?

Procs

configureCalled once after either choosing the option to smite a player, or when selected in smite build mode. +Use this to prompt the user configuration options. +Return FALSE if the smite should not be used.
effectThe effect of the smite, make sure to call this in your own smites

Var Details

name

The name of the smite, shown in the menu

should_log

Should this smite write to logs?

Proc Details

configure

Called once after either choosing the option to smite a player, or when selected in smite build mode. +Use this to prompt the user configuration options. +Return FALSE if the smite should not be used.

effect

The effect of the smite, make sure to call this in your own smites

\ No newline at end of file diff --git a/datum/smite/bad_luck.html b/datum/smite/bad_luck.html new file mode 100644 index 0000000000000..7bd95c6f379d6 --- /dev/null +++ b/datum/smite/bad_luck.html @@ -0,0 +1 @@ +/datum/smite/bad_luck - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bad_luck

Gives the target bad luck, optionally permanently

Vars

incidentsIs this permanent?
silentShould the target know they've received bad luck?

Var Details

incidents

Is this permanent?

silent

Should the target know they've received bad luck?

\ No newline at end of file diff --git a/datum/smite/berforate.html b/datum/smite/berforate.html new file mode 100644 index 0000000000000..fab5c0de274a7 --- /dev/null +++ b/datum/smite/berforate.html @@ -0,0 +1 @@ +/datum/smite/berforate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

berforate

Fires an absurd amount of bullets at the target

Vars

hatredDetermines how fucked the target is

Var Details

hatred

Determines how fucked the target is

\ No newline at end of file diff --git a/datum/smite/curse_of_babel.html b/datum/smite/curse_of_babel.html new file mode 100644 index 0000000000000..77538f9e0764d --- /dev/null +++ b/datum/smite/curse_of_babel.html @@ -0,0 +1 @@ +/datum/smite/curse_of_babel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

curse_of_babel

Strikes the target with a lightning bolt

Vars

durationHow long should the effect last

Var Details

duration

How long should the effect last

\ No newline at end of file diff --git a/datum/smite/custom_imaginary_friend.html b/datum/smite/custom_imaginary_friend.html new file mode 100644 index 0000000000000..264977bfeed5b --- /dev/null +++ b/datum/smite/custom_imaginary_friend.html @@ -0,0 +1,5 @@ +/datum/smite/custom_imaginary_friend - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

custom_imaginary_friend

Custom imaginary friend.

+

Allows the admin to select the ckey to put into the imaginary friend and whether the imaginary friend looks like the +ckey's character.

+

Is not tied to the brain trauma and can be used on all mobs, technically. Including cyborgs and simple/basic mobs.

+

Warranty void if used on AI eyes or other imaginary friends. Please smite responsibly.

Vars

ghost_pollingAre we polling for ghosts
polled_friend_countHow many imaginary friends should be added when polling
random_appearanceDo we randomise friend appearances or not?

Procs

pick_clientPick client manually
poll_ghostsTry to offer the role to ghosts

Var Details

ghost_polling

Are we polling for ghosts

polled_friend_count

How many imaginary friends should be added when polling

random_appearance

Do we randomise friend appearances or not?

Proc Details

pick_client

Pick client manually

poll_ghosts

Try to offer the role to ghosts

\ No newline at end of file diff --git a/datum/smite/objectify.html b/datum/smite/objectify.html new file mode 100644 index 0000000000000..84508ab90a511 --- /dev/null +++ b/datum/smite/objectify.html @@ -0,0 +1 @@ +/datum/smite/objectify - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

objectify

Turns the target into an object (for instance bread)

Vars

transform_pathWhat are we going to turn them into?

Var Details

transform_path

What are we going to turn them into?

\ No newline at end of file diff --git a/datum/smite/supply_pod_quick.html b/datum/smite/supply_pod_quick.html new file mode 100644 index 0000000000000..b7da3a4dab8d5 --- /dev/null +++ b/datum/smite/supply_pod_quick.html @@ -0,0 +1 @@ +/datum/smite/supply_pod_quick - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

supply_pod_quick

Quickly throws a supply pod at the target, optionally with an item

Vars

target_pathWhat is sent down with the pod

Var Details

target_path

What is sent down with the pod

\ No newline at end of file diff --git a/datum/song.html b/datum/song.html new file mode 100644 index 0000000000000..d71de44b938bc --- /dev/null +++ b/datum/song.html @@ -0,0 +1,32 @@ +/datum/song - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Song datum

These are the actual backend behind instruments. +They attach to an atom and provide the editor + playback functionality.

Vars

allowed_instrument_idsWhat instruments our built in picker can use. The picker won't show unless this is longer than one.
cached_exponential_dropoffDo not directly set, use update_sustain()
cached_legacy_dirCached legacy dir for legacy instruments
cached_legacy_extCached legacy ext for legacy instruments
cached_linear_dropoff/////// DO NOT DIRECTLY SET THESE! +Do not directly set, use update_sustain()
cached_samplesCached list of samples, referenced directly from the instrument for synthesized instruments
channels_idleList of channels that aren't being used, as text. This is to prevent unnecessary freeing and reallocations from SSsounds/SSinstruments.
channels_playingChannel as text = current volume percentage but it's 0 to 100 instead of 0 to 1.
compiled_chordsPlaying variables +Build by compile_chords() +Must be rebuilt on instrument switch. +Compilation happens when we start playing and is cleared after we finish playing. +Format: list of chord lists, with chordlists having (key1, key2, key3, tempodiv)
current_chordCurrent chord we're on.
debug_modeIf this is enabled, some things won't be strictly cleared when they usually are (liked compiled_chords on play stop)
delay_byAmount of delay to wait before playing the next chord
elapsed_delayCurrent section of a long chord we're on, so we don't need to make a billion chords, one for every unit ticklag.
full_sustain_held_noteShould we not decay our last played note?
hearing_mobsThe list of mobs that can hear us
instrument_rangeHow far we can be heard
last_channel_playedLast channel to play. text.
last_hearcheckLast world.time we checked for who can hear us
legacyAre we operating in legacy mode (so if the instrument is a legacy instrument)
linesOur song lines
max_repeatsMaximum times we can repeat
max_sound_channelsMax sound channels to occupy
max_volumeMax volume
min_volumeMin volume - This is so someone doesn't decide it's funny to set it to 0 and play invisible songs.
music_playerWho or what's playing us
nameName of the song
note_shift////////// !!FUN!! - Only works in synthesized mode! ///////////////// +Note numbers to shift.
octave_minDO NOT TOUCH THESE
parentThe atom we're attached to/playing from
playingAre we currently playing?
repeatRepeats left
sustain_dropoff_volumeWhen a note is considered dead if it is below this in volume
sustain_exponential_dropoffExponential sustain dropoff rate per decisecond
sustain_linear_durationTotal duration of linear sustain for 100 volume note to get to SUSTAIN_DROPOFF
sustain_modeThe kind of sustain we're using
tempodelay between notes in deciseconds
using_instrument///////// Cached instrument variables ///////////// +Instrument we are currently using
using_sound_channelsCurrent channels, so we can save a length() call.
volumeOur volume

Procs

ParseSongParses a song the user has input into lines and stores them.
compile_chordsCompiles chords.
compile_legacyCompiles our lines into "chords" with filenames for legacy playback. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag.
compile_synthesizedCompiles our lines into "chords" with numbers. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag.
do_hearcheckChecks and stores which mobs can hear us. Terminates sounds for mobs that leave our range.
get_bpmGets our beats per minute based on our tempo.
play_chordPlays a chord.
playkey_legacyProc to play a legacy note. Just plays the sound to hearing mobs (and does hearcheck if necessary), no fancy channel/sustain/management.
playkey_synthPlays a specific numerical key from our instrument to anyone who can hear us. +Does a hearing check if enough time has passed.
pop_channelPops a channel we have reserved so we don't have to release and re-request them from SSsounds every time we play a note. This is faster.
process_decayDecays our channels and updates their volumes to mobs who can hear us.
process_songProcesses our song.
sanitize_tempoSanitizes tempo to a value that makes sense and fits the current world.tick_lag.
set_bpmSets our tempo from a beats-per-minute, sanitizing it to a valid number first.
set_dropoff_volumeSetter for setting how low the volume has to get before a note is considered "dead" and dropped
set_exponential_drop_rateSetter for setting exponential falloff factor.
set_instrumentSets our instrument, caching anything necessary for faster accessing. Accepts an ID, typepath, or instantiated instrument datum.
set_linear_falloff_durationSetter for setting linear falloff duration.
set_repeatsSets and sanitizes the repeats variable.
set_volumeSetter for setting output volume.
should_stop_playingChecks if we should halt playback.
start_playingAttempts to start playing our song.
stop_playingStops playing, terminating all sounds if in synthesized mode. Clears hearing_mobs.
tempodiv_to_delayConverts a tempodiv to ticks to elapse before playing the next chord, taking into account our tempo.
terminate_all_soundsStops all sounds we are "responsible" for. Only works in synthesized mode.
terminate_sound_mobStops all sounds we are responsible for in a given person. Only works in synthesized mode.
update_sustainUpdates our cached linear/exponential falloff stuff, saving calculations down the line.

Var Details

allowed_instrument_ids

What instruments our built in picker can use. The picker won't show unless this is longer than one.

cached_exponential_dropoff

Do not directly set, use update_sustain()

cached_legacy_dir

Cached legacy dir for legacy instruments

cached_legacy_ext

Cached legacy ext for legacy instruments

cached_linear_dropoff

/////// DO NOT DIRECTLY SET THESE! +Do not directly set, use update_sustain()

cached_samples

Cached list of samples, referenced directly from the instrument for synthesized instruments

channels_idle

List of channels that aren't being used, as text. This is to prevent unnecessary freeing and reallocations from SSsounds/SSinstruments.

channels_playing

Channel as text = current volume percentage but it's 0 to 100 instead of 0 to 1.

compiled_chords

Playing variables +Build by compile_chords() +Must be rebuilt on instrument switch. +Compilation happens when we start playing and is cleared after we finish playing. +Format: list of chord lists, with chordlists having (key1, key2, key3, tempodiv)

current_chord

Current chord we're on.

debug_mode

If this is enabled, some things won't be strictly cleared when they usually are (liked compiled_chords on play stop)

delay_by

Amount of delay to wait before playing the next chord

elapsed_delay

Current section of a long chord we're on, so we don't need to make a billion chords, one for every unit ticklag.

full_sustain_held_note

Should we not decay our last played note?

hearing_mobs

The list of mobs that can hear us

instrument_range

How far we can be heard

last_channel_played

Last channel to play. text.

last_hearcheck

Last world.time we checked for who can hear us

legacy

Are we operating in legacy mode (so if the instrument is a legacy instrument)

lines

Our song lines

max_repeats

Maximum times we can repeat

max_sound_channels

Max sound channels to occupy

max_volume

Max volume

min_volume

Min volume - This is so someone doesn't decide it's funny to set it to 0 and play invisible songs.

music_player

Who or what's playing us

name

Name of the song

note_shift

////////// !!FUN!! - Only works in synthesized mode! ///////////////// +Note numbers to shift.

octave_min

DO NOT TOUCH THESE

parent

The atom we're attached to/playing from

playing

Are we currently playing?

repeat

Repeats left

sustain_dropoff_volume

When a note is considered dead if it is below this in volume

sustain_exponential_dropoff

Exponential sustain dropoff rate per decisecond

sustain_linear_duration

Total duration of linear sustain for 100 volume note to get to SUSTAIN_DROPOFF

sustain_mode

The kind of sustain we're using

tempo

delay between notes in deciseconds

using_instrument

///////// Cached instrument variables ///////////// +Instrument we are currently using

using_sound_channels

Current channels, so we can save a length() call.

volume

Our volume

Proc Details

ParseSong

Parses a song the user has input into lines and stores them.

compile_chords

Compiles chords.

compile_legacy

Compiles our lines into "chords" with filenames for legacy playback. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag.

compile_synthesized

Compiles our lines into "chords" with numbers. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag.

do_hearcheck

Checks and stores which mobs can hear us. Terminates sounds for mobs that leave our range.

get_bpm

Gets our beats per minute based on our tempo.

play_chord

Plays a chord.

playkey_legacy

Proc to play a legacy note. Just plays the sound to hearing mobs (and does hearcheck if necessary), no fancy channel/sustain/management.

+

Arguments:

+

playkey_synth

Plays a specific numerical key from our instrument to anyone who can hear us. +Does a hearing check if enough time has passed.

pop_channel

Pops a channel we have reserved so we don't have to release and re-request them from SSsounds every time we play a note. This is faster.

process_decay

Decays our channels and updates their volumes to mobs who can hear us.

+

Arguments:

+

process_song

Processes our song.

sanitize_tempo

Sanitizes tempo to a value that makes sense and fits the current world.tick_lag.

set_bpm

Sets our tempo from a beats-per-minute, sanitizing it to a valid number first.

set_dropoff_volume

Setter for setting how low the volume has to get before a note is considered "dead" and dropped

set_exponential_drop_rate

Setter for setting exponential falloff factor.

set_instrument

Sets our instrument, caching anything necessary for faster accessing. Accepts an ID, typepath, or instantiated instrument datum.

set_linear_falloff_duration

Setter for setting linear falloff duration.

set_repeats

Sets and sanitizes the repeats variable.

set_volume

Setter for setting output volume.

should_stop_playing

Checks if we should halt playback.

start_playing

Attempts to start playing our song.

stop_playing

Stops playing, terminating all sounds if in synthesized mode. Clears hearing_mobs.

+

Arguments:

+

tempodiv_to_delay

Converts a tempodiv to ticks to elapse before playing the next chord, taking into account our tempo.

terminate_all_sounds

Stops all sounds we are "responsible" for. Only works in synthesized mode.

terminate_sound_mob

Stops all sounds we are responsible for in a given person. Only works in synthesized mode.

update_sustain

Updates our cached linear/exponential falloff stuff, saving calculations down the line.

\ No newline at end of file diff --git a/datum/sort_instance.html b/datum/sort_instance.html new file mode 100644 index 0000000000000..906c072c17880 --- /dev/null +++ b/datum/sort_instance.html @@ -0,0 +1,11 @@ +/datum/sort_instance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

sort_instance

Procs

gallopRightLike gallopLeft, except that if the range contains an element equal to +key, gallopRight returns the index after the rightmost equal element.

Proc Details

gallopRight

Like gallopLeft, except that if the range contains an element equal to +key, gallopRight returns the index after the rightmost equal element.

+

@param key the key whose insertion point to search for +@param a the array in which to search +@param base the index of the first element in the range +@param len the length of the range; must be > 0 +@param hint the index at which to begin the search, 0 <= hint < n. +The closer hint is to the result, the faster this method will run. +@param c the comparator used to order the range, and to search +@return the int k, 0 <= k <= n such that a[b + k - 1] <= key < a[b + k]

\ No newline at end of file diff --git a/datum/sortrouter_filter.html b/datum/sortrouter_filter.html new file mode 100644 index 0000000000000..a45dd5b814881 --- /dev/null +++ b/datum/sortrouter_filter.html @@ -0,0 +1 @@ +/datum/sortrouter_filter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sortrouter_filter

Vars

dir_targetif it meets criteria, item is pushed to this direction
invertedis our output inverted? checked by sorter
namename of the filter shown in UI
sorterthe sorter we belong to
valuevalue of our filter, checked by us

Var Details

dir_target

if it meets criteria, item is pushed to this direction

inverted

is our output inverted? checked by sorter

name

name of the filter shown in UI

sorter

the sorter we belong to

value

value of our filter, checked by us

\ No newline at end of file diff --git a/datum/sortrouter_filter/is_path_specific.html b/datum/sortrouter_filter/is_path_specific.html new file mode 100644 index 0000000000000..3cc712b53aa15 --- /dev/null +++ b/datum/sortrouter_filter/is_path_specific.html @@ -0,0 +1 @@ +/datum/sortrouter_filter/is_path_specific - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

is_path_specific

Vars

currently_listeningare we currently listening for an item to set as our filter?

Var Details

currently_listening

are we currently listening for an item to set as our filter?

\ No newline at end of file diff --git a/datum/spacevine_controller.html b/datum/spacevine_controller.html new file mode 100644 index 0000000000000..2ced481d0fdb1 --- /dev/null +++ b/datum/spacevine_controller.html @@ -0,0 +1 @@ +/datum/spacevine_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spacevine_controller

Vars

growth_queueQueue of vines to process
max_mutation_severityMaximum sum of mutation severities
minimum_spread_rateMinimum spread rate per second
mutativenessThe chance that we will develop a new mutation
spread_capMaximum spreading limit (ie. how many kudzu can there be) for this controller
spread_multiplierSpread multiplier, depends on productivity, affects how often kudzu spreads
vinesCanonical list of all the vines we "own"

Procs

processLife cycle of a space vine

Var Details

growth_queue

Queue of vines to process

max_mutation_severity

Maximum sum of mutation severities

minimum_spread_rate

Minimum spread rate per second

mutativeness

The chance that we will develop a new mutation

spread_cap

Maximum spreading limit (ie. how many kudzu can there be) for this controller

spread_multiplier

Spread multiplier, depends on productivity, affects how often kudzu spreads

vines

Canonical list of all the vines we "own"

Proc Details

process

Life cycle of a space vine

\ No newline at end of file diff --git a/datum/spacevine_mutation.html b/datum/spacevine_mutation.html new file mode 100644 index 0000000000000..1b8c1502f5dd7 --- /dev/null +++ b/datum/spacevine_mutation.html @@ -0,0 +1 @@ +/datum/spacevine_mutation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spacevine_mutation

Vars

hueThe mutation's contribution to a given vine's color
nameDisplayed name of mutation
qualityThe quality of our mutation (how good or bad is it?)
severitySeverity of mutation in terms of gameplay, affects appearance chance and how many mutations can be on the same vine

Var Details

hue

The mutation's contribution to a given vine's color

name

Displayed name of mutation

quality

The quality of our mutation (how good or bad is it?)

severity

Severity of mutation in terms of gameplay, affects appearance chance and how many mutations can be on the same vine

\ No newline at end of file diff --git a/datum/spacevine_mutation/aggressive_spread.html b/datum/spacevine_mutation/aggressive_spread.html new file mode 100644 index 0000000000000..f172ef7d0ba03 --- /dev/null +++ b/datum/spacevine_mutation/aggressive_spread.html @@ -0,0 +1 @@ +/datum/spacevine_mutation/aggressive_spread - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

aggressive_spread

Procs

aggrospread_actHurts mobs. To be used when a vine with aggressive spread mutation spreads into the mob's tile or buckles them.
on_buckleWhat happens if an aggr spreading vine buckles a mob.
on_spreadChecks mobs on spread-target's turf to see if they should be hit by a damaging proc or not.

Proc Details

aggrospread_act

Hurts mobs. To be used when a vine with aggressive spread mutation spreads into the mob's tile or buckles them.

on_buckle

What happens if an aggr spreading vine buckles a mob.

on_spread

Checks mobs on spread-target's turf to see if they should be hit by a damaging proc or not.

\ No newline at end of file diff --git a/datum/spacevine_mutation/vine_eating.html b/datum/spacevine_mutation/vine_eating.html new file mode 100644 index 0000000000000..8688b645b7bb8 --- /dev/null +++ b/datum/spacevine_mutation/vine_eating.html @@ -0,0 +1 @@ +/datum/spacevine_mutation/vine_eating - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

vine_eating

Procs

on_spreadDestroys any vine on spread-target's tile. The checks for if this should be done are in the spread() proc.

Proc Details

on_spread

Destroys any vine on spread-target's tile. The checks for if this should be done are in the spread() proc.

\ No newline at end of file diff --git a/datum/sparring_match.html b/datum/sparring_match.html new file mode 100644 index 0000000000000..4c132530e86aa --- /dev/null +++ b/datum/sparring_match.html @@ -0,0 +1 @@ +/datum/sparring_match - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sparring_match

Vars

arena_conditionarea instance the participants must stay in
chaplainthe chaplain. it isn't actually a chaplain all the time, but in the cases where the chaplain is needed this will always be them.
chaplain_violations_allowedcheats from the chaplain
flubsoutside interventions that ruin the match
opponentthe other fighter
opponent_violations_allowedcheats from the non-chaplain
stakes_conditionwhat stakes the fight will have
weapons_conditionwhat weapons will be allowed during the sparring match

Procs

arena_violationsomeone tried to leave
check_for_victorysomeone is changing health state, end the fight in crit
cleanup_sparring_matchhelper to remove all the effects after a match ends
death_flubsomeone randomly fucking died
deletion_flubsomeone randomly fucking deleted
flubbed_matchthis match was interfered on, nobody wins or loses anything, just end
grenade_violationsomeone used a grenade
gun_violationsomeone used a gun
melee_violationsomeone used melee weapons
winmost of the effects are handled on lose() instead.

Var Details

arena_condition

area instance the participants must stay in

chaplain

the chaplain. it isn't actually a chaplain all the time, but in the cases where the chaplain is needed this will always be them.

chaplain_violations_allowed

cheats from the chaplain

flubs

outside interventions that ruin the match

opponent

the other fighter

opponent_violations_allowed

cheats from the non-chaplain

stakes_condition

what stakes the fight will have

weapons_condition

what weapons will be allowed during the sparring match

Proc Details

arena_violation

someone tried to leave

check_for_victory

someone is changing health state, end the fight in crit

cleanup_sparring_match

helper to remove all the effects after a match ends

death_flub

someone randomly fucking died

deletion_flub

someone randomly fucking deleted

flubbed_match

this match was interfered on, nobody wins or loses anything, just end

grenade_violation

someone used a grenade

gun_violation

someone used a gun

melee_violation

someone used melee weapons

win

most of the effects are handled on lose() instead.

\ No newline at end of file diff --git a/datum/spatial_grid_cell.html b/datum/spatial_grid_cell.html new file mode 100644 index 0000000000000..041b90738ec2a --- /dev/null +++ b/datum/spatial_grid_cell.html @@ -0,0 +1,3 @@ +/datum/spatial_grid_cell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Spatial Grid Cell

used by /datum/controller/subsystem/spatial_grid to cover every z level so that the coordinates of every turf in the world corresponds to one of these in +the subsystems list of grid cells by z level. each one of these contains content lists holding all atoms meeting a certain criteria that is in our borders. +these datums shouldnt have significant behavior, they should just hold data. the lists are filled and emptied by the subsystem.

Vars

atmos_contentsevery atmos machine inside this cell
cell_xour x index in the list of cells. this is our index inside of our row list
cell_your y index in the list of cells. this is the index of our row list inside of our z level grid
cell_zwhich z level we belong to, corresponding to the index of our gridmap in SSspatial_grid.grids_by_z_level
client_contentsevery client possessed mob inside this cell
hearing_contentsevery hearing sensitive movable inside this cell

Var Details

atmos_contents

every atmos machine inside this cell

cell_x

our x index in the list of cells. this is our index inside of our row list

cell_y

our y index in the list of cells. this is the index of our row list inside of our z level grid

cell_z

which z level we belong to, corresponding to the index of our gridmap in SSspatial_grid.grids_by_z_level

client_contents

every client possessed mob inside this cell

hearing_contents

every hearing sensitive movable inside this cell

\ No newline at end of file diff --git a/datum/species.html b/datum/species.html new file mode 100644 index 0000000000000..1ee1e4372f98e --- /dev/null +++ b/datum/species.html @@ -0,0 +1,212 @@ +/datum/species - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

species datum

Datum that handles different species in the game.

+

This datum handles species in the game, such as lizardpeople, mothmen, zombies, skeletons, etc. +It is used in carbon humans to determine various things about them, like their food preferences, if they have biological genders, their damage resistances, and more.

+

species datum

+

Datum that handles different species in the game.

+

This datum handles species in the game, such as lizardpeople, mothmen, zombies, skeletons, etc. +It is used in carbon humans to determine various things about them, like their food preferences, if they have biological genders, their damage resistances, and more.

Vars

ai_controlled_speciesThis supresses the "dosen't appear to be himself" examine text for if the mob is run by an AI controller. Should be used on any NPC human subtypes. Monkeys are the prime example.
always_customizableIf a species can always be picked in prefs for the purposes of customizing it for ghost roles or events
blood_deficiency_drain_rateThe rate at which blood is passively drained by having the blood deficiency quirk. Some races such as slimepeople can regen their blood at different rates so this is to account for that
body_markingsA list of actual body markings on the owner of the species. Associative lists with keys named by limbs defines, pointing to a list with names and colors for the marking to be rendered. This is also stored in the DNA
body_size_restrictedIs this species restricted from changing their body_size in character creation?
bodypart_overridesThe bodyparts this species uses. assoc of bodypart string - bodypart type. Make sure all the fucking entries are in or I'll skin you alive.
bodytemp_autorecovery_minMinimum amount of kelvin moved toward normal body temperature per tick.
bodytemp_cold_damage_limitThe body temperature limit the body can take before it starts taking damage from cold.
bodytemp_heat_damage_limitThe body temperature limit the body can take before it starts taking damage from heat.
bodytemp_normalThe natural temperature for a body
breathidWhat gas does this species breathe? Used by suffocation screen alerts, most of actual gas breathing is handled by mutantlungs. See [life.dm][code/modules/mob/living/carbon/human/life.dm]
can_augmentWhether a species can use augmentations in preferences
can_have_genitalsSelf explanatory
changesource_flagsBitflag that controls what in game ways something can select this species as a spawnable source, such as magic mirrors. See mob defines for possible sources.
coldmodmultiplier for damage from cold temperature
custom_worn_iconsPath to BODYSHAPE_CUSTOM species worn icons. An assoc list of ITEM_SLOT_X => /icon
damage_modifierStore body marking defines. See mobs.dm for bitflags +Flat modifier on all damage taken via apply_damage (so being punched, shot, etc.) +IE: 10 = 10% less damage taken.
death_soundUsed to set the mob's death_sound upon species change
dust_animWhat anim to use for dusting
examine_limb_idThis is used for children, it will determine their default limb ID for use of examine. See [/mob/living/carbon/human/proc/examine].
exotic_bloodIf your race bleeds something other than bog standard blood, change this to reagent id. For example, ethereals bleed liquid electricity.
exotic_bloodtypeIf your race uses a non standard bloodtype (A+, O-, AB-, etc). For example, lizards have L type blood.
external_organsList of external organs to generate like horns, frills, wings, etc. list(typepath of organ = "Round Beautiful BDSM Snout"). Still WIP
eyes_iconOverride of the eyes icon file, used for Vox and maybe more in the future - The future is now, with Teshari using it too
facial_hair_alphaThe alpha used by the facial hair. 255 is completely solid, 0 is invisible.
family_heirloomsList of family heirlooms this species can get with the family heirloom quirk. List of types.
fire_overlayThe icon_state of the fire overlay added when sufficently ablaze and standing. see onfire.dmi
fixed_mut_colorTo use MUTCOLOR with a fixed color that's independent of the mcolor feature in DNA.
flavor_textFlavor text of the species displayed on character creation screeen
gib_animWhat anim to use for gibbing
grab_soundSpecial sound for grabbing
hair_alphaThe alpha used by the hair. 255 is completely solid, 0 is invisible.
hair_color_modeThis allows races to have specific hair colors. +If null, it uses the mob's hair/facial hair colors. +If USE_MUTANT_COLOR, it uses the mob's mutant_color. +If USE_FIXED_MUTANT_COLOR, it uses fixedmutcolor
heatmodmultiplier for damage from hot temperature
idIf the game needs to manually check your race to do something not included in a proc here, it will use this.
inert_mutationSpecial mutation that can be found in the genepool exclusively in this species. Dont leave empty or changing species will be a headache
inherent_biotypesList of biotypes the mob belongs to. Used by diseases.
inherent_factionsList of factions the mob gain upon gaining this species.
inherent_respiration_typeThe type of respiration the mob is capable of doing. Used by adjustOxyLoss.
inherent_traitsGeneric traits tied to having the species.
knife_butcher_resultsList of results you get from knife-butchering. null means you cant butcher it. Associated by resulting type - value of amount
language_prefs_whitelistAdding a language type to this in the form of /datum/language will allow the language to be displayed in preferences for that species, even if it is a secret language. +Currently used for ashtongue in ashwalkers.
lore_protectedAre we lore protected? This prevents people from changing the species lore or species name.
markings_alphaOverride for alpha value of markings, should be much lower than the above value.
max_bodypart_countThe maximum number of bodyparts this species can have.
meatWhat the species drops when gibbed by a gibber machine.
modsuit_slot_exceptionsA bitfield of exceptions, relating to no_equip_flags. If a mod item is equipped into a blocked slot, and that slot is in this bitfield, it will not be skipped.
mutant_organsInternal organs that are unique to this race, like a tail. list(typepath of organ 1, typepath of organ 2)
mutantappendixReplaces default appendix with a different organ.
mutantbrainReplaces default brain with a different organ
mutantearsReplaces default ears with a different organ
mutanteyesReplaces default eyes with a different organ
mutantheartReplaces default heart with a different organ
mutantliverReplaces default liver with a different organ
mutantlungsReplaces default lungs with a different organ
mutantstomachReplaces default stomach with a different organ
mutanttongueReplaces default tongue with a different organ
nameThis is the fluff name. They are displayed on health analyzers and in the character setup menu. Leave them generic for other servers to customize.
no_equip_flagsflags for inventory slots the race can't equip stuff to. Golems cannot wear jumpsuits, for example.
no_gender_shapingWhether or not the gender shaping is disabled for this species
offset_featuresClothing offsets. If a species has a different body than other species, you can offset clothing so they look less weird.
outfit_important_for_lifeA path to an outfit that is important for species life e.g. plasmaman outfit
outfit_override_registryA list containing outfits that will be overridden in the species_equip_outfit proc. [Key = Typepath passed in] [Value = Typepath of outfit you want to equip for this specific species instead].
plural_formThe formatting of the name of the species in plural context. Defaults to "[name]\s" if unset. +Ex "[Plasmamen] are weak", "[Mothmen] are strong", "[Lizardpeople] don't like", "[Golems] hate"
preloadShould we preload this species's organs?
prevent_perspective_changeDo we try to prevent reset_perspective() from working? Useful for Dullahans to stop perspective changes when they're looking through their head.
properly_gainedWas on_species_gain ever actually called? +Species code is really odd...
reagent_flagsHow are we treated regarding processing reagents, by default we process them as if we're organic
roundstart_changedWas the species changed from its original type at the start of the round?
sexesWhether or not the race has sexual characteristics (biological genders). At the moment this is only FALSE for skeletons and shadows
siemens_coeffBase electrocution coefficient. Basically a multiplier for damage from electrocutions.
skinned_typeWhat skin the species drops when gibbed by a gibber machine.
special_step_soundsSounds to override barefeet walking
species_cookieUnique cookie given by admins through prayers
species_language_holderWhat languages this species can understand and say. +Use a language holder datum typepath in this var. +Should never be null.
specific_alphaOverride for the alpha of bodyparts and mutant parts.
stunmodmultiplier for stun durations
veteran_onlyIf a species requires the player to be a Veteran to be able to pick it.

Procs

add_body_markingsAdd species appropriate body markings
apply_burn_woundsUsed to apply burn wounds on random limbs
body_temperature_alertsUsed to set alerts and debuffs based on body temperature +vars:
body_temperature_coreUsed to stabilize the core temperature back to normal on living mobs
body_temperature_damageUsed to apply wounds and damage based on core/body temp +vars:
body_temperature_skinUsed to normalize the skin temperature on living mobs
check_head_flagsChecks if the species has a head with these head flags, by default. +Admittedly, this is a very weird and seemingly redundant proc, but it +gets used by some preferences (such as hair style) to determine whether +or not they are accessible.
check_roundstart_eligibleChecks if a species is eligible to be picked at roundstart.
copy_properties_fromCopies some vars and properties over that should be kept when creating a copy of this species.
create_fresh_bodyCreates body parts for the target completely from scratch based on the species
create_pref_biotypes_perksAdds adds any perks related to the species' inherent_biotypes flags.
create_pref_blood_perksAdds adds any perks related to the species' blood (or lack thereof).
create_pref_damage_perksAdds adds any perks related to sustaining damage. +For example, brute damage vulnerability, or fire damage resistance.
create_pref_language_perkAdds in a language perk based on all the languages the species +can speak by default (according to their language holder).
create_pref_organs_perksAdds any perks relating to inherent differences to this species' organs. +This proc is only suitable for generic differences, like alcohol tolerance, or heat threshold for breathing.
create_pref_temperature_perksAdds adds any perks related to how the species deals with temperature.
create_pref_unique_perksUsed to add any species specific perks to the perk list.
generate_custom_worn_iconAllow for custom clothing icon generation. Only called if the species is BODYSHAPE_CUSTOM +If null is returned, use default human icon. +Arguments:
generate_custom_worn_icon_fallbackGenerate a fallback worn icon, if the species supports it. You must call it in an override of generate_custom_worn_icon()
get_cough_soundReturns the species' cough sound.
get_cry_soundReturns the species' cry sound.
get_custom_worn_config_fallbackModularly get the species' fallback greyscale config. +Only used if you use generate_custom_worn_icon_fallback() +Arguments:
get_custom_worn_iconModularly returns one of worn_icon_vox, worn_icon_teshari, etc. +Arguments:
get_custom_worn_icon_cachedRead from freely usable cache of generated icons for your species. +Arguments:
get_default_mutant_bodypartsReturns a list of the default mutant bodyparts, and whether or not they can be randomized or not
get_featuresReturns a list of strings representing features this species has.
get_fixed_hair_colorGet what hair color is used by this species for a mob.
get_laugh_soundReturns the species' laugh sound
get_mutant_bodypartsReturns a list of mutant_bodyparts
get_mutant_organ_type_for_slotGets the default mutant organ for the species based on the provided slot.
get_physical_attributesGets a description of the species' physical attributes. What makes playing as one different. Used in magic mirrors.
get_sigh_soundReturns the species' sigh sound.
get_sneeze_soundReturns the species' sneeze sound.
get_sniff_soundReturns the species' sniff sound.
get_species_dietTranslate the species liked foods from bitfields into strings +and returns it in the form of an associated list.
get_species_loreGets the lore behind the type of species. Can be long. +Used in the preference menu.
get_species_perksGenerates a list of "perks" related to this species +(Postives, neutrals, and negatives) +in the format of a list of lists. +Used in the preference menu.
give_important_for_lifeEquip the outfit required for life. Replaces items currently worn.
go_baldMakes the target human bald.
grab_maneuver_state_checkState check for grab maneuver - because you can't logically suplex a man if you've stopped grappling them.
handle_arousalHandles throwing the arousal alerts to screen.
handle_body_temperatureBody temperature handler for species
handle_chemicalHandling special reagent interactions.
handle_environmentEnvironment handler for species
handle_environment_pressureHandle the air pressure of the environment
handle_radiationSpecies based handling for irradiation
harmThis proc handles punching damage. IMPORTANT: Our owner is the TARGET and not the USER in this proc. For whatever reason...
humanize_organsReplaces a couple organs to normal variants to not cause issues. Not super happy with this, alternative is disallowing vampiric races from being bloodsuckers
mutant_bodyparts_layertextHandles the body of a human
normalize_bloodNormalizes blood in a human if it is excessive. If it is above BLOOD_VOLUME_NORMAL, this will clamp it to that value. It will not give the human more blodo than they have less than this value.
on_bloodsucker_gainCalled once the target is made into a bloodsucker. Used for removing conflicting species organs mostly
on_owner_loginOwner login
on_species_lossProc called when a carbon is no longer this species.
overlay_painSends an icon to the screen that gives an approximate indication of the mob's pain. Looks like spikes/barbed wire.
overlay_pleasureSends an icon to the screen that gives an approximate indication of the mob's pleasure. Looks like a pink-white border on the arousal alert heart.
pre_equip_species_outfitEquips the necessary species-relevant gear before putting on the rest of the uniform.
prepare_human_for_previewGiven a human, will adjust it before taking a picture for the preferences UI. +This should create a CONSISTENT result, so the icons don't randomly change.
randomize_active_underwearProc that will randomise the underwear (i.e. top, pants and socks) of a species' associated mob
randomize_active_underwear_onlyProc that will randomise the underwear (i.e. top, pants and socks) of a species' associated mob, +but will not update the body right away.
randomize_main_appearance_elementProc that will randomise the hair, or primary appearance element (i.e. for moths wings) of a species' associated mob
remove_body_markingsRemove body markings
replace_bodyHandles replacing all of the bodyparts with their species version during set_species()
set_custom_worn_iconModularly set one of worn_icon_vox, worn_icon_teshari, etc. +Arguments:
set_custom_worn_icon_cachedWrite to a freely usable cache of generated icons for your species. +Arguments:
stagger_comboHandles the stagger combo effect of our punch. Follows the same logic as the above proc, target is our owner, user is our attacker.
throw_arousal_alertSends an icon to the screen that gives an approximate indication of the mob's arousal.
try_dislocateAttempts to perform a limb dislocation, with the user violently twisting one of target's limbs (as passed in). Only useful for extremities, because only extremities can eat dislocations.
try_grab_maneuverTries a grab maneuver - suplex, limb dislocation, or headslam depending on targeted limb.
try_headslamAttempts to perform a headslam, with the user slamming target's head into the floor. (Does not account for the potential nonexistence of aforementioned floor, e.g. space.)
try_suplexAttempts to perform a suplex after SUPLEX_TIMER, causing both to be stunned. (Why spacemen are able to do such a thing on reflex, nobody knows.)
update_body_markingsUpdate the overlays if necessary

Var Details

ai_controlled_species

This supresses the "dosen't appear to be himself" examine text for if the mob is run by an AI controller. Should be used on any NPC human subtypes. Monkeys are the prime example.

always_customizable

If a species can always be picked in prefs for the purposes of customizing it for ghost roles or events

blood_deficiency_drain_rate

The rate at which blood is passively drained by having the blood deficiency quirk. Some races such as slimepeople can regen their blood at different rates so this is to account for that

body_markings

A list of actual body markings on the owner of the species. Associative lists with keys named by limbs defines, pointing to a list with names and colors for the marking to be rendered. This is also stored in the DNA

body_size_restricted

Is this species restricted from changing their body_size in character creation?

bodypart_overrides

The bodyparts this species uses. assoc of bodypart string - bodypart type. Make sure all the fucking entries are in or I'll skin you alive.

bodytemp_autorecovery_min

Minimum amount of kelvin moved toward normal body temperature per tick.

bodytemp_cold_damage_limit

The body temperature limit the body can take before it starts taking damage from cold.

bodytemp_heat_damage_limit

The body temperature limit the body can take before it starts taking damage from heat.

bodytemp_normal

The natural temperature for a body

breathid

What gas does this species breathe? Used by suffocation screen alerts, most of actual gas breathing is handled by mutantlungs. See [life.dm][code/modules/mob/living/carbon/human/life.dm]

can_augment

Whether a species can use augmentations in preferences

can_have_genitals

Self explanatory

changesource_flags

Bitflag that controls what in game ways something can select this species as a spawnable source, such as magic mirrors. See mob defines for possible sources.

coldmod

multiplier for damage from cold temperature

custom_worn_icons

Path to BODYSHAPE_CUSTOM species worn icons. An assoc list of ITEM_SLOT_X => /icon

damage_modifier

Store body marking defines. See mobs.dm for bitflags +Flat modifier on all damage taken via apply_damage (so being punched, shot, etc.) +IE: 10 = 10% less damage taken.

death_sound

Used to set the mob's death_sound upon species change

dust_anim

What anim to use for dusting

examine_limb_id

This is used for children, it will determine their default limb ID for use of examine. See [/mob/living/carbon/human/proc/examine].

exotic_blood

If your race bleeds something other than bog standard blood, change this to reagent id. For example, ethereals bleed liquid electricity.

exotic_bloodtype

If your race uses a non standard bloodtype (A+, O-, AB-, etc). For example, lizards have L type blood.

external_organs

List of external organs to generate like horns, frills, wings, etc. list(typepath of organ = "Round Beautiful BDSM Snout"). Still WIP

eyes_icon

Override of the eyes icon file, used for Vox and maybe more in the future - The future is now, with Teshari using it too

facial_hair_alpha

The alpha used by the facial hair. 255 is completely solid, 0 is invisible.

family_heirlooms

List of family heirlooms this species can get with the family heirloom quirk. List of types.

fire_overlay

The icon_state of the fire overlay added when sufficently ablaze and standing. see onfire.dmi

fixed_mut_color

To use MUTCOLOR with a fixed color that's independent of the mcolor feature in DNA.

flavor_text

Flavor text of the species displayed on character creation screeen

gib_anim

What anim to use for gibbing

grab_sound

Special sound for grabbing

hair_alpha

The alpha used by the hair. 255 is completely solid, 0 is invisible.

hair_color_mode

This allows races to have specific hair colors. +If null, it uses the mob's hair/facial hair colors. +If USE_MUTANT_COLOR, it uses the mob's mutant_color. +If USE_FIXED_MUTANT_COLOR, it uses fixedmutcolor

heatmod

multiplier for damage from hot temperature

id

If the game needs to manually check your race to do something not included in a proc here, it will use this.

inert_mutation

Special mutation that can be found in the genepool exclusively in this species. Dont leave empty or changing species will be a headache

inherent_biotypes

List of biotypes the mob belongs to. Used by diseases.

inherent_factions

List of factions the mob gain upon gaining this species.

inherent_respiration_type

The type of respiration the mob is capable of doing. Used by adjustOxyLoss.

inherent_traits

Generic traits tied to having the species.

knife_butcher_results

List of results you get from knife-butchering. null means you cant butcher it. Associated by resulting type - value of amount

language_prefs_whitelist

Adding a language type to this in the form of /datum/language will allow the language to be displayed in preferences for that species, even if it is a secret language. +Currently used for ashtongue in ashwalkers.

lore_protected

Are we lore protected? This prevents people from changing the species lore or species name.

markings_alpha

Override for alpha value of markings, should be much lower than the above value.

max_bodypart_count

The maximum number of bodyparts this species can have.

meat

What the species drops when gibbed by a gibber machine.

modsuit_slot_exceptions

A bitfield of exceptions, relating to no_equip_flags. If a mod item is equipped into a blocked slot, and that slot is in this bitfield, it will not be skipped.

mutant_organs

Internal organs that are unique to this race, like a tail. list(typepath of organ 1, typepath of organ 2)

mutantappendix

Replaces default appendix with a different organ.

mutantbrain

Replaces default brain with a different organ

mutantears

Replaces default ears with a different organ

mutanteyes

Replaces default eyes with a different organ

mutantheart

Replaces default heart with a different organ

mutantliver

Replaces default liver with a different organ

mutantlungs

Replaces default lungs with a different organ

mutantstomach

Replaces default stomach with a different organ

mutanttongue

Replaces default tongue with a different organ

name

This is the fluff name. They are displayed on health analyzers and in the character setup menu. Leave them generic for other servers to customize.

no_equip_flags

flags for inventory slots the race can't equip stuff to. Golems cannot wear jumpsuits, for example.

no_gender_shaping

Whether or not the gender shaping is disabled for this species

offset_features

Clothing offsets. If a species has a different body than other species, you can offset clothing so they look less weird.

outfit_important_for_life

A path to an outfit that is important for species life e.g. plasmaman outfit

outfit_override_registry

A list containing outfits that will be overridden in the species_equip_outfit proc. [Key = Typepath passed in] [Value = Typepath of outfit you want to equip for this specific species instead].

plural_form

The formatting of the name of the species in plural context. Defaults to "[name]\s" if unset. +Ex "[Plasmamen] are weak", "[Mothmen] are strong", "[Lizardpeople] don't like", "[Golems] hate"

preload

Should we preload this species's organs?

prevent_perspective_change

Do we try to prevent reset_perspective() from working? Useful for Dullahans to stop perspective changes when they're looking through their head.

properly_gained

Was on_species_gain ever actually called? +Species code is really odd...

reagent_flags

How are we treated regarding processing reagents, by default we process them as if we're organic

roundstart_changed

Was the species changed from its original type at the start of the round?

sexes

Whether or not the race has sexual characteristics (biological genders). At the moment this is only FALSE for skeletons and shadows

siemens_coeff

Base electrocution coefficient. Basically a multiplier for damage from electrocutions.

skinned_type

What skin the species drops when gibbed by a gibber machine.

special_step_sounds

Sounds to override barefeet walking

Unique cookie given by admins through prayers

species_language_holder

What languages this species can understand and say. +Use a language holder datum typepath in this var. +Should never be null.

specific_alpha

Override for the alpha of bodyparts and mutant parts.

stunmod

multiplier for stun durations

veteran_only

If a species requires the player to be a Veteran to be able to pick it.

Proc Details

add_body_markings

Add species appropriate body markings

apply_burn_wounds

Used to apply burn wounds on random limbs

+

This is called from body_temperature_damage when exposure to extream heat adds up and causes a wound. +The wounds will increase in severity as the temperature increases. +vars:

+

body_temperature_alerts

Used to set alerts and debuffs based on body temperature +vars:

+

body_temperature_core

Used to stabilize the core temperature back to normal on living mobs

+

The metabolisim heats up the core of the mob trying to keep it at the normal body temp +vars:

+

body_temperature_damage

Used to apply wounds and damage based on core/body temp +vars:

+

body_temperature_skin

Used to normalize the skin temperature on living mobs

+

The core temp effects the skin, then the enviroment effects the skin, then we refect that back to the core. +This happens even when dead so bodies revert to room temp over time. +vars:

+ +

check_head_flags

Checks if the species has a head with these head flags, by default. +Admittedly, this is a very weird and seemingly redundant proc, but it +gets used by some preferences (such as hair style) to determine whether +or not they are accessible.

check_roundstart_eligible

Checks if a species is eligible to be picked at roundstart.

+

Checks the config to see if this species is allowed to be picked in the character setup menu. +Used by /proc/generate_selectable_species_and_languages.

copy_properties_from

Copies some vars and properties over that should be kept when creating a copy of this species.

+

Used by slimepeople to copy themselves, and by the DNA datum to hardset DNA to a species +Arguments:

+

create_fresh_body

Creates body parts for the target completely from scratch based on the species

create_pref_biotypes_perks

Adds adds any perks related to the species' inherent_biotypes flags.

+

Returns a list containing perks, or an empty list.

create_pref_blood_perks

Adds adds any perks related to the species' blood (or lack thereof).

+

Returns a list containing perks, or an empty list.

create_pref_damage_perks

Adds adds any perks related to sustaining damage. +For example, brute damage vulnerability, or fire damage resistance.

+

Returns a list containing perks, or an empty list.

create_pref_language_perk

Adds in a language perk based on all the languages the species +can speak by default (according to their language holder).

+

Returns a list containing perks, or an empty list.

create_pref_organs_perks

Adds any perks relating to inherent differences to this species' organs. +This proc is only suitable for generic differences, like alcohol tolerance, or heat threshold for breathing.

+

Returns a list containing perks, or an empty list.

create_pref_temperature_perks

Adds adds any perks related to how the species deals with temperature.

+

Returns a list containing perks, or an empty list.

create_pref_unique_perks

Used to add any species specific perks to the perk list.

+

Returns null by default. When overriding, return a list of perks.

generate_custom_worn_icon

Allow for custom clothing icon generation. Only called if the species is BODYSHAPE_CUSTOM +If null is returned, use default human icon. +Arguments:

+

generate_custom_worn_icon_fallback

Generate a fallback worn icon, if the species supports it. You must call it in an override of generate_custom_worn_icon()

get_cough_sound

Returns the species' cough sound.

get_cry_sound

Returns the species' cry sound.

get_custom_worn_config_fallback

Modularly get the species' fallback greyscale config. +Only used if you use generate_custom_worn_icon_fallback() +Arguments:

+

get_custom_worn_icon

Modularly returns one of worn_icon_vox, worn_icon_teshari, etc. +Arguments:

+

get_custom_worn_icon_cached

Read from freely usable cache of generated icons for your species. +Arguments:

+

get_default_mutant_bodyparts

Returns a list of the default mutant bodyparts, and whether or not they can be randomized or not

get_features

Returns a list of strings representing features this species has.

+

Used by the preferences UI to know what buttons to show.

get_fixed_hair_color

Get what hair color is used by this species for a mob.

+

Arguments

+ +

Returns a color string or null.

get_laugh_sound

Returns the species' laugh sound

get_mutant_bodyparts

Returns a list of mutant_bodyparts

+

Gets the default species mutant_bodyparts list for the given species datum and sets up its sprite accessories.

+

Arguments:

+

get_mutant_organ_type_for_slot

Gets the default mutant organ for the species based on the provided slot.

get_physical_attributes

Gets a description of the species' physical attributes. What makes playing as one different. Used in magic mirrors.

+

Returns a string.

get_sigh_sound

Returns the species' sigh sound.

get_sneeze_sound

Returns the species' sneeze sound.

get_sniff_sound

Returns the species' sniff sound.

get_species_diet

Translate the species liked foods from bitfields into strings +and returns it in the form of an associated list.

+

Returns a list, or null if they have no diet.

get_species_lore

Gets the lore behind the type of species. Can be long. +Used in the preference menu.

+

Returns a list of strings. +Between each entry in the list, a newline will be inserted, for formatting.

get_species_perks

Generates a list of "perks" related to this species +(Postives, neutrals, and negatives) +in the format of a list of lists. +Used in the preference menu.

+

"Perk" format is as followed: +list( +SPECIES_PERK_TYPE = type of perk (postiive, negative, neutral - use the defines) +SPECIES_PERK_ICON = icon shown within the UI +SPECIES_PERK_NAME = name of the perk on hover +SPECIES_PERK_DESC = description of the perk on hover +)

+

Returns a list of lists. +The outer list is an assoc list of [perk type]s to a list of perks. +The innter list is a list of perks. Can be empty, but won't be null.

give_important_for_life

Equip the outfit required for life. Replaces items currently worn.

go_bald

Makes the target human bald.

+

Arguments:

+

grab_maneuver_state_check

State check for grab maneuver - because you can't logically suplex a man if you've stopped grappling them.

handle_arousal

Handles throwing the arousal alerts to screen.

handle_body_temperature

Body temperature handler for species

+

These procs manage body temp, bamage, and alerts +Some of these will still fire when not alive to balance body temp to the room temp. +vars:

+

handle_chemical

Handling special reagent interactions.

+

Return null continue running the normal on_mob_life() for that reagent. +Return COMSIG_MOB_STOP_REAGENT_CHECK to not run the normal metabolism effects.

+

NOTE: If you return COMSIG_MOB_STOP_REAGENT_CHECK, that reagent will not be removed liike normal! You must handle it manually.

handle_environment

Environment handler for species

+

vars:

+

handle_environment_pressure

Handle the air pressure of the environment

handle_radiation

Species based handling for irradiation

+

Arguments:

+

harm

This proc handles punching damage. IMPORTANT: Our owner is the TARGET and not the USER in this proc. For whatever reason...

humanize_organs

Replaces a couple organs to normal variants to not cause issues. Not super happy with this, alternative is disallowing vampiric races from being bloodsuckers

mutant_bodyparts_layertext

Handles the body of a human

+

Handles lipstick, having no eyes, eye color, undergarnments like underwear, undershirts, and socks, and body layers. +Calls [handle_mutant_bodyparts][/datum/species/proc/handle_mutant_bodyparts] +Arguments:

+

normalize_blood

Normalizes blood in a human if it is excessive. If it is above BLOOD_VOLUME_NORMAL, this will clamp it to that value. It will not give the human more blodo than they have less than this value.

on_bloodsucker_gain

Called once the target is made into a bloodsucker. Used for removing conflicting species organs mostly

on_owner_login

Owner login

+

A simple proc to be overwritten if something needs to be done when a mob logs in. Does nothing by default.

+

Arguments:

+

on_species_loss

Proc called when a carbon is no longer this species.

+

This sets up and adds/changes/removes things, qualities, abilities, and traits so that the transformation is as smooth and bugfree as possible. +Produces a COMSIG_SPECIES_LOSS signal. +Arguments:

+

overlay_pain

Sends an icon to the screen that gives an approximate indication of the mob's pain. Looks like spikes/barbed wire.

overlay_pleasure

Sends an icon to the screen that gives an approximate indication of the mob's pleasure. Looks like a pink-white border on the arousal alert heart.

pre_equip_species_outfit

Equips the necessary species-relevant gear before putting on the rest of the uniform.

prepare_human_for_preview

Given a human, will adjust it before taking a picture for the preferences UI. +This should create a CONSISTENT result, so the icons don't randomly change.

randomize_active_underwear

Proc that will randomise the underwear (i.e. top, pants and socks) of a species' associated mob

randomize_active_underwear_only

Proc that will randomise the underwear (i.e. top, pants and socks) of a species' associated mob, +but will not update the body right away.

randomize_main_appearance_element

Proc that will randomise the hair, or primary appearance element (i.e. for moths wings) of a species' associated mob

remove_body_markings

Remove body markings

replace_body

Handles replacing all of the bodyparts with their species version during set_species()

set_custom_worn_icon

Modularly set one of worn_icon_vox, worn_icon_teshari, etc. +Arguments:

+

set_custom_worn_icon_cached

Write to a freely usable cache of generated icons for your species. +Arguments:

+

stagger_combo

Handles the stagger combo effect of our punch. Follows the same logic as the above proc, target is our owner, user is our attacker.

throw_arousal_alert

Sends an icon to the screen that gives an approximate indication of the mob's arousal.

try_dislocate

Attempts to perform a limb dislocation, with the user violently twisting one of target's limbs (as passed in). Only useful for extremities, because only extremities can eat dislocations.

try_grab_maneuver

Tries a grab maneuver - suplex, limb dislocation, or headslam depending on targeted limb.

try_headslam

Attempts to perform a headslam, with the user slamming target's head into the floor. (Does not account for the potential nonexistence of aforementioned floor, e.g. space.)

try_suplex

Attempts to perform a suplex after SUPLEX_TIMER, causing both to be stunned. (Why spacemen are able to do such a thing on reflex, nobody knows.)

update_body_markings

Update the overlays if necessary

\ No newline at end of file diff --git a/datum/species/akula.html b/datum/species/akula.html new file mode 100644 index 0000000000000..cd231d60a9eb7 --- /dev/null +++ b/datum/species/akula.html @@ -0,0 +1 @@ +/datum/species/akula - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

akula

Vars

dry_up_timerThis variable stores the timer datum which appears if the mob becomes wet

Procs

driedThis proc is called after a mob with the TRAIT_SLIPPERY has its related timer run out
on_species_gainLets register the signal which calls when we are above 10 wet_stacks
on_species_lossRemove the signal on species loss
wettedThis proc is called when a mob with TRAIT_SLICK_SKIN gains over 10 wet_stacks

Var Details

dry_up_timer

This variable stores the timer datum which appears if the mob becomes wet

Proc Details

dried

This proc is called after a mob with the TRAIT_SLIPPERY has its related timer run out

on_species_gain

Lets register the signal which calls when we are above 10 wet_stacks

on_species_loss

Remove the signal on species loss

wetted

This proc is called when a mob with TRAIT_SLICK_SKIN gains over 10 wet_stacks

\ No newline at end of file diff --git a/datum/species/dullahan.html b/datum/species/dullahan.html new file mode 100644 index 0000000000000..de291c977734f --- /dev/null +++ b/datum/species/dullahan.html @@ -0,0 +1 @@ +/datum/species/dullahan - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dullahan

Vars

my_headThe dullahan relay that's associated with the owner, used to handle many things such as talking and hearing.
owner_first_client_connection_handledDid our owner's first client connection get handled yet? Useful for when some proc needs to be called once we're sure that a client has moved into our owner, like for Dullahans.

Procs

on_gained_partIf we gained a new body part, it had better not be a head
on_head_destroyedIf our head is destroyed, so are we

Var Details

my_head

The dullahan relay that's associated with the owner, used to handle many things such as talking and hearing.

owner_first_client_connection_handled

Did our owner's first client connection get handled yet? Useful for when some proc needs to be called once we're sure that a client has moved into our owner, like for Dullahans.

Proc Details

on_gained_part

If we gained a new body part, it had better not be a head

on_head_destroyed

If our head is destroyed, so are we

\ No newline at end of file diff --git a/datum/species/ethereal.html b/datum/species/ethereal.html new file mode 100644 index 0000000000000..685a082e06696 --- /dev/null +++ b/datum/species/ethereal.html @@ -0,0 +1 @@ +/datum/species/ethereal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ethereal

Procs

on_light_eaterSpecial handling for getting hit with a light eater

Proc Details

on_light_eater

Special handling for getting hit with a light eater

\ No newline at end of file diff --git a/datum/species/human/felinid.html b/datum/species/human/felinid.html new file mode 100644 index 0000000000000..95cdf03b725ed --- /dev/null +++ b/datum/species/human/felinid.html @@ -0,0 +1 @@ +/datum/species/human/felinid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

felinid

Vars

original_felinidWhen false, this is a felinid created by mass-purrbation
species_cookieYummy!

Var Details

original_felinid

When false, this is a felinid created by mass-purrbation

Yummy!

\ No newline at end of file diff --git a/datum/species/jelly/luminescent.html b/datum/species/jelly/luminescent.html new file mode 100644 index 0000000000000..77df2b8439318 --- /dev/null +++ b/datum/species/jelly/luminescent.html @@ -0,0 +1 @@ +/datum/species/jelly/luminescent - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

luminescent

LUMINESCENTS

Vars

current_extractThe slime extract we currently have integrated
extract_cooldownThe cooldown of us using exteracts
glowInternal dummy used to glow (very cool)
glow_intensityHow strong is our glow
luminescent_actionsA list of all luminescent related actions we have

Procs

update_glowUpdates the glow of our internal glow object

Var Details

current_extract

The slime extract we currently have integrated

extract_cooldown

The cooldown of us using exteracts

glow

Internal dummy used to glow (very cool)

glow_intensity

How strong is our glow

luminescent_actions

A list of all luminescent related actions we have

Proc Details

update_glow

Updates the glow of our internal glow object

\ No newline at end of file diff --git a/datum/species/jelly/stargazer.html b/datum/species/jelly/stargazer.html new file mode 100644 index 0000000000000..d8321b77db3fe --- /dev/null +++ b/datum/species/jelly/stargazer.html @@ -0,0 +1 @@ +/datum/species/jelly/stargazer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stargazer

STARGAZERS

Vars

project_actionSpecial "project thought" telepathy action for stargazers.

Var Details

project_action

Special "project thought" telepathy action for stargazers.

\ No newline at end of file diff --git a/datum/species/lizard.html b/datum/species/lizard.html new file mode 100644 index 0000000000000..9553e60a704f4 --- /dev/null +++ b/datum/species/lizard.html @@ -0,0 +1 @@ +/datum/species/lizard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

lizard

Procs

body_temperature_coreLizards are cold blooded and do not stabilize body temperature naturally

Proc Details

body_temperature_core

Lizards are cold blooded and do not stabilize body temperature naturally

\ No newline at end of file diff --git a/datum/species/lizard/silverscale.html b/datum/species/lizard/silverscale.html new file mode 100644 index 0000000000000..28818514a6bc7 --- /dev/null +++ b/datum/species/lizard/silverscale.html @@ -0,0 +1 @@ +/datum/species/lizard/silverscale - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

silverscale

Vars

old_eye_color_leftstored eye color for when we turn back off of a silverscale.
old_eye_color_rightSee above
old_mutcolorstored mutcolor for when we turn back off of a silverscale.

Var Details

old_eye_color_left

stored eye color for when we turn back off of a silverscale.

old_eye_color_right

See above

old_mutcolor

stored mutcolor for when we turn back off of a silverscale.

\ No newline at end of file diff --git a/datum/species/mutant.html b/datum/species/mutant.html new file mode 100644 index 0000000000000..76e8cd7a912e4 --- /dev/null +++ b/datum/species/mutant.html @@ -0,0 +1 @@ +/datum/species/mutant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mutant

Vars

spooksA list of spooky sounds we can play intermittantly.

Procs

body_temperature_coremutants do not stabilize body temperature they are the walking dead and are cold blooded

Var Details

spooks

A list of spooky sounds we can play intermittantly.

Proc Details

body_temperature_core

mutants do not stabilize body temperature they are the walking dead and are cold blooded

\ No newline at end of file diff --git a/datum/species/mutant/infectious.html b/datum/species/mutant/infectious.html new file mode 100644 index 0000000000000..3c5c8a49c40bf --- /dev/null +++ b/datum/species/mutant/infectious.html @@ -0,0 +1 @@ +/datum/species/mutant/infectious - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

infectious

Vars

heal_rateThe rate the mutants regenerate at
regen_cooldownThe cooldown before the mutant can start regenerating

Procs

queue_regenerationStart the cooldown to regenerate - 5 seconds after taking damage

Var Details

heal_rate

The rate the mutants regenerate at

regen_cooldown

The cooldown before the mutant can start regenerating

Proc Details

queue_regeneration

Start the cooldown to regenerate - 5 seconds after taking damage

\ No newline at end of file diff --git a/datum/species/mutant/infectious/fast.html b/datum/species/mutant/infectious/fast.html new file mode 100644 index 0000000000000..d94f15a538259 --- /dev/null +++ b/datum/species/mutant/infectious/fast.html @@ -0,0 +1 @@ +/datum/species/mutant/infectious/fast - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fast

Vars

heal_rateThe rate the mutants regenerate at

Var Details

heal_rate

The rate the mutants regenerate at

\ No newline at end of file diff --git a/datum/species/mutant/infectious/slow.html b/datum/species/mutant/infectious/slow.html new file mode 100644 index 0000000000000..5f278828b165e --- /dev/null +++ b/datum/species/mutant/infectious/slow.html @@ -0,0 +1 @@ +/datum/species/mutant/infectious/slow - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

slow

Vars

heal_rateThe rate the mutants regenerate at

Var Details

heal_rate

The rate the mutants regenerate at

\ No newline at end of file diff --git a/datum/species/plasmaman.html b/datum/species/plasmaman.html new file mode 100644 index 0000000000000..0acee81ab4248 --- /dev/null +++ b/datum/species/plasmaman.html @@ -0,0 +1 @@ +/datum/species/plasmaman - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plasmaman

Vars

internal_fireIf the bones themselves are burning clothes won't help you much

Var Details

internal_fire

If the bones themselves are burning clothes won't help you much

\ No newline at end of file diff --git a/datum/species/snail.html b/datum/species/snail.html new file mode 100644 index 0000000000000..8eadd5fac1bac --- /dev/null +++ b/datum/species/snail.html @@ -0,0 +1 @@ +/datum/species/snail - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

snail

Vars

snail_speed_modMultiplier for the speed we give them. Positive numbers make it move slower, negative numbers make it move faster.

Var Details

snail_speed_mod

Multiplier for the speed we give them. Positive numbers make it move slower, negative numbers make it move faster.

\ No newline at end of file diff --git a/datum/species/synthetic.html b/datum/species/synthetic.html new file mode 100644 index 0000000000000..9983cfb8a58ef --- /dev/null +++ b/datum/species/synthetic.html @@ -0,0 +1,11 @@ +/datum/species/synthetic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

synthetic

Vars

saved_screenThis is the screen that is given to the user after they get revived. On death, their screen is temporarily set to BSOD before it turns off, hence the need for this var.
screenThe innate action that synths get, if they've got a screen selected on species being set.

Procs

bsod_deathMakes the IPC screen switch to BSOD followed by a blank screen
switch_to_screenSimple proc to switch the screen of a monitor-enabled synth, while updating their appearance.

Var Details

saved_screen

This is the screen that is given to the user after they get revived. On death, their screen is temporarily set to BSOD before it turns off, hence the need for this var.

screen

The innate action that synths get, if they've got a screen selected on species being set.

Proc Details

bsod_death

Makes the IPC screen switch to BSOD followed by a blank screen

+

Arguments:

+

switch_to_screen

Simple proc to switch the screen of a monitor-enabled synth, while updating their appearance.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/species/vampire.html b/datum/species/vampire.html new file mode 100644 index 0000000000000..54fc5f815afd3 --- /dev/null +++ b/datum/species/vampire.html @@ -0,0 +1 @@ +/datum/species/vampire - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vampire

Vars

info_textsome starter text sent to the vampire initially, because vampires have shit to do to stay alive

Var Details

info_text

some starter text sent to the vampire initially, because vampires have shit to do to stay alive

\ No newline at end of file diff --git a/datum/species/zombie.html b/datum/species/zombie.html new file mode 100644 index 0000000000000..f61898519035b --- /dev/null +++ b/datum/species/zombie.html @@ -0,0 +1 @@ +/datum/species/zombie - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

zombie

Vars

spooksSpooky growls we sometimes play while alive

Procs

body_temperature_coreZombies do not stabilize body temperature they are the walking dead and are cold blooded

Var Details

spooks

Spooky growls we sometimes play while alive

Proc Details

body_temperature_core

Zombies do not stabilize body temperature they are the walking dead and are cold blooded

\ No newline at end of file diff --git a/datum/spellbook_entry.html b/datum/spellbook_entry.html new file mode 100644 index 0000000000000..b1e94e61d5d2c --- /dev/null +++ b/datum/spellbook_entry.html @@ -0,0 +1,35 @@ +/datum/spellbook_entry - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spellbook_entry

Spellbook entries

+

Wizard spellbooks are automatically populated with +a list of every spellbook entry subtype when they're made.

+

Wizards can then buy entries from the book to learn magic, +invoke rituals, or summon items.

Vars

buy_wordFlavor. Verb used in saying how the spell is aquired. Ex "[Learn] Fireball" or "[Summon] Ghosts"
categoryWhat category the entry falls in
cooldownThe cooldown of the spell
costHow many book charges does the spell take
descThe description of the entry
limitThe limit on number of purchases from this entry in a given spellbook. If null, infinite are allowed.
nameThe name of the entry
no_coexistance_typecacheUsed so you can't have specific spells together
refundableIs this refundable?
requires_wizard_garbWhether the spell requires wizard garb or not
spell_typeThe type of spell that the entry grants (typepath)
timesHow many times has the spell been purchased. Compared against limit.

Procs

buy_spellActually buy the entry for the user
can_be_purchasedDetermines if this entry can be purchased from a spellbook +Used for configs / round related restrictions.
can_buyChecks if the user, with the supplied spellbook, can purchase the given entry.
can_refundChecks if the user, with the supplied spellbook, can refund the entry
refund_spellActually refund the entry for the user
set_spell_infoSet any of the spell info saved on our entry +after something has occured

Var Details

buy_word

Flavor. Verb used in saying how the spell is aquired. Ex "[Learn] Fireball" or "[Summon] Ghosts"

category

What category the entry falls in

cooldown

The cooldown of the spell

cost

How many book charges does the spell take

desc

The description of the entry

limit

The limit on number of purchases from this entry in a given spellbook. If null, infinite are allowed.

name

The name of the entry

no_coexistance_typecache

Used so you can't have specific spells together

refundable

Is this refundable?

requires_wizard_garb

Whether the spell requires wizard garb or not

spell_type

The type of spell that the entry grants (typepath)

times

How many times has the spell been purchased. Compared against limit.

Proc Details

buy_spell

Actually buy the entry for the user

+

Arguments

+ +

Return truthy if the purchase was successful, FALSE otherwise

can_be_purchased

Determines if this entry can be purchased from a spellbook +Used for configs / round related restrictions.

+

Return FALSE to prevent the entry from being added to wizard spellbooks, TRUE otherwise

can_buy

Checks if the user, with the supplied spellbook, can purchase the given entry.

+

Arguments

+ +

Return TRUE if it can be bought, FALSE otherwise

can_refund

Checks if the user, with the supplied spellbook, can refund the entry

+

Arguments

+ +

Return TRUE if it can refunded, FALSE otherwise

refund_spell

Actually refund the entry for the user

+

Arguments

+ +

Return -1 on failure, or return the point value of the refund on success

set_spell_info

Set any of the spell info saved on our entry +after something has occured

+

For example, updating the cooldown after upgrading it

\ No newline at end of file diff --git a/datum/spellbook_entry/item.html b/datum/spellbook_entry/item.html new file mode 100644 index 0000000000000..6954ea3dbaf48 --- /dev/null +++ b/datum/spellbook_entry/item.html @@ -0,0 +1 @@ +/datum/spellbook_entry/item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

item

Item summons, they give you an item.

Vars

item_pathTypepath of what item we create when purchased

Procs

try_equip_itemAttempts to give the item to the buyer on purchase.

Var Details

item_path

Typepath of what item we create when purchased

Proc Details

try_equip_item

Attempts to give the item to the buyer on purchase.

\ No newline at end of file diff --git a/datum/sprite_accessory.html b/datum/sprite_accessory.html new file mode 100644 index 0000000000000..6e2181b0fe030 --- /dev/null +++ b/datum/sprite_accessory.html @@ -0,0 +1,9 @@ +/datum/sprite_accessory - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sprite_accessory

Vars

always_color_customizableSet this to true to make an accessory appear as color customizable in preferences despite advanced color settings being off, will also prevent the accessory from being reset
centerShould we center the sprite?
ckey_whitelistIf defined, the accessory will be only available to ckeys inside the list. ITS ASSOCIATIVE, ie. ("ckey" = TRUE). For speed
default_colorWhich color we default to on acquisition of the accessory (such as switching species, default color for character customization etc) +You can also put down a a HEX color, to be used instead as the default
dimension_xThe width of the sprite in pixels. Used to center it if necessary.
dimension_yThe height of the sprite in pixels. Used to center it if necessary.
em_blockShould this sprite block emissives?
erp_accessoryIf this sprite accessory will be inaccessable if ERP config is disabled
factualThis is used to determine whether an accessory gets added to someone. This is important for accessories that are "None", which should have this set to false
flags_for_organFor all the flags that you need to pass from a sprite_accessory to an organ, when it's linked to one. +(i.e. passing through the fact that a snout should or shouldn't use a muzzled sprite for head worn items)
genderDetermines if the accessory will be skipped or included in random hair generations.
gender_specificSomething that can be worn by either gender, but looks different on each.
genericSet this to a name, then the accessory will be shown in preferences, if a species can have it. Most accessories have this +Notable things that have it set to FALSE are things that need special setup, such as genitals
geneticWhether this feature is genetic, and thus modifiable by DNA consoles
hasinnerDecides if this sprite has an "inner" part, such as the fleshy parts on ears.
iconThe icon file the accessory is located in.
icon_stateThe icon_state of the accessory.
keyUnique key of an accessory. All tails should have "tail", ears "ears" etc.
lockedIs this part locked from roundstart selection? Used for parts that apply effects.
nameThe preview name of the accessory.
natural_spawnDetermines if this is considered "sane" for the purpose of /proc/randomize_human_normie +Basically this is to blacklist the extremely wacky stuff from being picked in random human generation.
organ_typeUse this as a type path to an organ that this sprite_accessory will be associated. Make sure the organ has 'mutantpart_info' set properly.
relevent_layersWhich layers does this accessory affect
specialIf an accessory is special, it wont get included in the normal accessory lists
special_x_dimensionSpecial case of whether the accessory should be shifted in the X dimension, check taur genitals for example
use_custom_mod_iconSpecial case for MODsuit overlays
use_staticDetermines if the accessory will be skipped by color preferences.

Procs

lewd_is_hiddenHelper proc for adding overrides to bodyparts to hide them if a catsuit or sleeping bag is worn. Allows for overrides for each, in case a part shouldn't be hidden.

Var Details

always_color_customizable

Set this to true to make an accessory appear as color customizable in preferences despite advanced color settings being off, will also prevent the accessory from being reset

center

Should we center the sprite?

ckey_whitelist

If defined, the accessory will be only available to ckeys inside the list. ITS ASSOCIATIVE, ie. ("ckey" = TRUE). For speed

default_color

Which color we default to on acquisition of the accessory (such as switching species, default color for character customization etc) +You can also put down a a HEX color, to be used instead as the default

dimension_x

The width of the sprite in pixels. Used to center it if necessary.

dimension_y

The height of the sprite in pixels. Used to center it if necessary.

em_block

Should this sprite block emissives?

erp_accessory

If this sprite accessory will be inaccessable if ERP config is disabled

factual

This is used to determine whether an accessory gets added to someone. This is important for accessories that are "None", which should have this set to false

flags_for_organ

For all the flags that you need to pass from a sprite_accessory to an organ, when it's linked to one. +(i.e. passing through the fact that a snout should or shouldn't use a muzzled sprite for head worn items)

gender

Determines if the accessory will be skipped or included in random hair generations.

gender_specific

Something that can be worn by either gender, but looks different on each.

generic

Set this to a name, then the accessory will be shown in preferences, if a species can have it. Most accessories have this +Notable things that have it set to FALSE are things that need special setup, such as genitals

genetic

Whether this feature is genetic, and thus modifiable by DNA consoles

hasinner

Decides if this sprite has an "inner" part, such as the fleshy parts on ears.

icon

The icon file the accessory is located in.

icon_state

The icon_state of the accessory.

key

Unique key of an accessory. All tails should have "tail", ears "ears" etc.

locked

Is this part locked from roundstart selection? Used for parts that apply effects.

name

The preview name of the accessory.

natural_spawn

Determines if this is considered "sane" for the purpose of /proc/randomize_human_normie +Basically this is to blacklist the extremely wacky stuff from being picked in random human generation.

organ_type

Use this as a type path to an organ that this sprite_accessory will be associated. Make sure the organ has 'mutantpart_info' set properly.

relevent_layers

Which layers does this accessory affect

special

If an accessory is special, it wont get included in the normal accessory lists

special_x_dimension

Special case of whether the accessory should be shifted in the X dimension, check taur genitals for example

use_custom_mod_icon

Special case for MODsuit overlays

use_static

Determines if the accessory will be skipped by color preferences.

Proc Details

lewd_is_hidden

Helper proc for adding overrides to bodyparts to hide them if a catsuit or sleeping bag is worn. Allows for overrides for each, in case a part shouldn't be hidden.

\ No newline at end of file diff --git a/datum/sprite_accessory/bra.html b/datum/sprite_accessory/bra.html new file mode 100644 index 0000000000000..44c6b5178dc15 --- /dev/null +++ b/datum/sprite_accessory/bra.html @@ -0,0 +1 @@ +/datum/sprite_accessory/bra - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bra

BRAS and all the fun stuff of moving these about.

Vars

bra_objBra object to which the accessory is linked
from_objectIf it's generated from a bra object

Var Details

bra_obj

Bra object to which the accessory is linked

from_object

If it's generated from a bra object

\ No newline at end of file diff --git a/datum/sprite_accessory/genital.html b/datum/sprite_accessory/genital.html new file mode 100644 index 0000000000000..f0688f8ef5591 --- /dev/null +++ b/datum/sprite_accessory/genital.html @@ -0,0 +1 @@ +/datum/sprite_accessory/genital - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

genital

Vars

genital_locationWhere the genital is on the body. If clothing doesn't cover it, it shows up!
has_skintone_shadingIf true, then there should be a variant in the icon file that's slightly pinkier to match human base colors.

Var Details

genital_location

Where the genital is on the body. If clothing doesn't cover it, it shows up!

has_skintone_shading

If true, then there should be a variant in the icon file that's slightly pinkier to match human base colors.

\ No newline at end of file diff --git a/datum/sprite_accessory/gradient.html b/datum/sprite_accessory/gradient.html new file mode 100644 index 0000000000000..ce19c4637ec8d --- /dev/null +++ b/datum/sprite_accessory/gradient.html @@ -0,0 +1 @@ +/datum/sprite_accessory/gradient - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gradient

Vars

gradient_categorywhether this gradient applies to hair and/or beards. Some gradients do not work well on beards.

Var Details

gradient_category

whether this gradient applies to hair and/or beards. Some gradients do not work well on beards.

\ No newline at end of file diff --git a/datum/sprite_accessory/socks.html b/datum/sprite_accessory/socks.html new file mode 100644 index 0000000000000..03486dcf1b693 --- /dev/null +++ b/datum/sprite_accessory/socks.html @@ -0,0 +1 @@ +/datum/sprite_accessory/socks - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

socks

Vars

from_objectIf it's generated from a socks object
socks_objSocks object to which the accessory is linked

Var Details

from_object

If it's generated from a socks object

socks_obj

Socks object to which the accessory is linked

\ No newline at end of file diff --git a/datum/sprite_accessory/synth_chassis.html b/datum/sprite_accessory/synth_chassis.html new file mode 100644 index 0000000000000..2b0534c138baf --- /dev/null +++ b/datum/sprite_accessory/synth_chassis.html @@ -0,0 +1 @@ +/datum/sprite_accessory/synth_chassis - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

synth_chassis

Vars

dimorphicBoolean for if the body is actually dimorphic.
is_digi_compatibleIf true, allows for digitigrade to be used.

Var Details

dimorphic

Boolean for if the body is actually dimorphic.

is_digi_compatible

If true, allows for digitigrade to be used.

\ No newline at end of file diff --git a/datum/sprite_accessory/synth_head.html b/datum/sprite_accessory/synth_head.html new file mode 100644 index 0000000000000..914a5a0bfa05a --- /dev/null +++ b/datum/sprite_accessory/synth_head.html @@ -0,0 +1 @@ +/datum/sprite_accessory/synth_head - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

synth_head

Vars

dimorphicBoolean for if this is actually dimorphic.

Var Details

dimorphic

Boolean for if this is actually dimorphic.

\ No newline at end of file diff --git a/datum/sprite_accessory/tails.html b/datum/sprite_accessory/tails.html new file mode 100644 index 0000000000000..bc4f1b4c4cdaf --- /dev/null +++ b/datum/sprite_accessory/tails.html @@ -0,0 +1 @@ +/datum/sprite_accessory/tails - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tails

Vars

fluffyCan we use this tail for the fluffy tail turf emote?
spine_keyDescribes which tail spine sprites to use, if any.

Var Details

fluffy

Can we use this tail for the fluffy tail turf emote?

spine_key

Describes which tail spine sprites to use, if any.

\ No newline at end of file diff --git a/datum/sprite_accessory/taur.html b/datum/sprite_accessory/taur.html new file mode 100644 index 0000000000000..992bb94b83650 --- /dev/null +++ b/datum/sprite_accessory/taur.html @@ -0,0 +1 @@ +/datum/sprite_accessory/taur - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

taur

Vars

alt_taur_modeMust be a single specific tauric suit variation bitflag. Don't do FLAG_1|FLAG_2
taur_modeMust be a single specific tauric suit variation bitflag. Don't do FLAG_1|FLAG_2

Var Details

alt_taur_mode

Must be a single specific tauric suit variation bitflag. Don't do FLAG_1|FLAG_2

taur_mode

Must be a single specific tauric suit variation bitflag. Don't do FLAG_1|FLAG_2

\ No newline at end of file diff --git a/datum/sprite_accessory/undershirt.html b/datum/sprite_accessory/undershirt.html new file mode 100644 index 0000000000000..960eebcfd1353 --- /dev/null +++ b/datum/sprite_accessory/undershirt.html @@ -0,0 +1 @@ +/datum/sprite_accessory/undershirt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

undershirt

Vars

from_objectIf it's generated from a shirt object
hides_groinWhether this underwear includes a bottom (For Leotards and the likes)
shirt_objShirt object to which the accessory is linked

Var Details

from_object

If it's generated from a shirt object

hides_groin

Whether this underwear includes a bottom (For Leotards and the likes)

shirt_obj

Shirt object to which the accessory is linked

\ No newline at end of file diff --git a/datum/sprite_accessory/underwear.html b/datum/sprite_accessory/underwear.html new file mode 100644 index 0000000000000..4428a873bd722 --- /dev/null +++ b/datum/sprite_accessory/underwear.html @@ -0,0 +1 @@ +/datum/sprite_accessory/underwear - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

underwear

Vars

briefs_objBriefs object to which the accessory is linked
from_objectIf it's generated from a briefs object
has_digitigradeWhether the underwear uses a special sprite for digitigrade style (i.e. briefs, not panties). Adds a "_d" suffix to the icon state
hides_breastsWhether this underwear includes a top (Because gender = FEMALE doesn't actually apply here.). Hides breasts, nothing more.

Var Details

briefs_obj

Briefs object to which the accessory is linked

from_object

If it's generated from a briefs object

has_digitigrade

Whether the underwear uses a special sprite for digitigrade style (i.e. briefs, not panties). Adds a "_d" suffix to the icon state

hides_breasts

Whether this underwear includes a top (Because gender = FEMALE doesn't actually apply here.). Hides breasts, nothing more.

\ No newline at end of file diff --git a/datum/sprite_accessory/wings.html b/datum/sprite_accessory/wings.html new file mode 100644 index 0000000000000..8afc0ec8583e4 --- /dev/null +++ b/datum/sprite_accessory/wings.html @@ -0,0 +1,4 @@ +/datum/sprite_accessory/wings - /tg/ Station 13
/tg/ Station 13 - Modules - Types

wings

Wings!

+

When adding or making new wing sprites, try to use matrixed colors! +You can find a color palette to work with in modular_skyrat\modules\customization\icons\mob\sprite_accessory\wings.dmi as 'colorpalette matrixcolors' +Check some of the wings that make use of them for examples on how to make it look decent.

\ No newline at end of file diff --git a/datum/spy_bounty.html b/datum/spy_bounty.html new file mode 100644 index 0000000000000..cd11fbe80e0dc --- /dev/null +++ b/datum/spy_bounty.html @@ -0,0 +1,54 @@ +/datum/spy_bounty - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spy_bounty

Spy Bounty

+

A datum used to track a single spy bounty. +Not a singleton - whenever bounties are re-rolled, the entire list is deleted and new bounty datums are instantiated.

+

When bounties are completed, they are also not deleted, but instead marked as claimed.

Vars

black_market_probProbability that the stolen item will be sent to the black market instead of destroyed. +Guaranteed if the item is indestructible.
claimedWhether the bounty has been completed.
difficultyDifficult of the bounty, one of SPY_DIFFICULTY_EASY, SPY_DIFFICULTY_MEDIUM, SPY_DIFFICULTY_HARD. +Must be set to one of the possible bounties to be picked.
helpHelp text for the bounty. +Should include additional information about the bounty to assist the spy in figuring out what to do. +Should be punctuated. +IE: "Steal the captain's ID. It was last seen in the captain's office."
initalizedWhether the bounty's been fully initialized. If this is not set, the bounty will be rerolled.
nameThe name of the bounty. +Should be a short description without punctuation. +IE: "Steal the captain's ID"
reward_itemWhat uplink item the bounty will reward on completion.
theft_timeHow long of a do-after must be completed by the Spy to turn in the bounty.
weightWeight that the bounty will be selected.

Procs

can_claimCheck if the passed mob can claim this bounty.
check_dupeChecks if the passed dupe key is a duplicate of an previously claimed bounty.
clean_up_stolen_itemCalled when the bounty is completed, to handle how the stolen item is "stolen".
finish_cleanupCalled when cleaning up a stolen atom that was NOT sent to the black market.
get_dupe_protection_keyWhat is this bounty's "dupe protection key"? +This is used to determine if a duplicate of this bounty has been rolled before / in the last refresh. +You can check if a bounty has been duped by accessing the handler's claimed_bounties_from_last_pool or all_claimed_bounty_types list.
init_bountyInitializes the bounty, setting up targets and etc.
is_stealableChecks if the passed movable is a valid target for this bounty.
select_rewardSelects what uplink item the bounty will reward on completion.
send_to_black_marketHandles putting the passed movable up on the black market.
to_ui_dataHelper that translates the bounty into UI data for TGUI

Var Details

black_market_prob

Probability that the stolen item will be sent to the black market instead of destroyed. +Guaranteed if the item is indestructible.

claimed

Whether the bounty has been completed.

difficulty

Difficult of the bounty, one of SPY_DIFFICULTY_EASY, SPY_DIFFICULTY_MEDIUM, SPY_DIFFICULTY_HARD. +Must be set to one of the possible bounties to be picked.

help

Help text for the bounty. +Should include additional information about the bounty to assist the spy in figuring out what to do. +Should be punctuated. +IE: "Steal the captain's ID. It was last seen in the captain's office."

initalized

Whether the bounty's been fully initialized. If this is not set, the bounty will be rerolled.

name

The name of the bounty. +Should be a short description without punctuation. +IE: "Steal the captain's ID"

reward_item

What uplink item the bounty will reward on completion.

theft_time

How long of a do-after must be completed by the Spy to turn in the bounty.

weight

Weight that the bounty will be selected.

Proc Details

can_claim

Check if the passed mob can claim this bounty.

check_dupe

Checks if the passed dupe key is a duplicate of an previously claimed bounty.

+ +

Returns TRUE if the bounty is a dupe, FALSE if it is not.

clean_up_stolen_item

Called when the bounty is completed, to handle how the stolen item is "stolen".

+

By default, stolen items are simply deleted.

+

finish_cleanup

Called when cleaning up a stolen atom that was NOT sent to the black market.

+

get_dupe_protection_key

What is this bounty's "dupe protection key"? +This is used to determine if a duplicate of this bounty has been rolled before / in the last refresh. +You can check if a bounty has been duped by accessing the handler's claimed_bounties_from_last_pool or all_claimed_bounty_types list.

+ +

Return a string key, what this uses for dupe protection.

init_bounty

Initializes the bounty, setting up targets and etc.

+ +

Returning FALSE will cancel initialization and force it to reroll the bounty.

is_stealable

Checks if the passed movable is a valid target for this bounty.

+ +

Returning FALSE simply means that the passed movable is not valid for this bounty.

select_reward

Selects what uplink item the bounty will reward on completion.

send_to_black_market

Handles putting the passed movable up on the black market.

+

By the end of this proc, the item should either be deleted (if failure) or in nullspace (on the black market).

+

to_ui_data

Helper that translates the bounty into UI data for TGUI

\ No newline at end of file diff --git a/datum/spy_bounty/machine.html b/datum/spy_bounty/machine.html new file mode 100644 index 0000000000000..c3c06dfa520eb --- /dev/null +++ b/datum/spy_bounty/machine.html @@ -0,0 +1,5 @@ +/datum/spy_bounty/machine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

machine

Vars

location_typeWhat area (typepath) the desired machine is in. +Can be pre-set for subtypes. If set, requires the machine to be in the location_type. +If not set, picks a random machine from all areas it can currently be found in.
original_options_weakrefsList of weakrefs to all machines of the target type when the bounty was initialized.
target_typeWhat machine (typepath) we want to steal.

Var Details

location_type

What area (typepath) the desired machine is in. +Can be pre-set for subtypes. If set, requires the machine to be in the location_type. +If not set, picks a random machine from all areas it can currently be found in.

original_options_weakrefs

List of weakrefs to all machines of the target type when the bounty was initialized.

target_type

What machine (typepath) we want to steal.

\ No newline at end of file diff --git a/datum/spy_bounty/machine/random.html b/datum/spy_bounty/machine/random.html new file mode 100644 index 0000000000000..8712baf8e6beb --- /dev/null +++ b/datum/spy_bounty/machine/random.html @@ -0,0 +1 @@ +/datum/spy_bounty/machine/random - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

random

Vars

random_optionsList of all machines we can randomly draw from

Var Details

random_options

List of all machines we can randomly draw from

\ No newline at end of file diff --git a/datum/spy_bounty/objective_item.html b/datum/spy_bounty/objective_item.html new file mode 100644 index 0000000000000..c4ec8e3c29a85 --- /dev/null +++ b/datum/spy_bounty/objective_item.html @@ -0,0 +1 @@ +/datum/spy_bounty/objective_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

objective_item

Steal an item

Vars

blacklisted_item_typesTypecache of objective items that should not be selected.
desired_itemReference to an objective item datum that we want stolen.

Procs

is_valid_objective_itemDetermines if the passed objective item is a reasonable, valid theft target.

Var Details

blacklisted_item_types

Typecache of objective items that should not be selected.

desired_item

Reference to an objective item datum that we want stolen.

Proc Details

is_valid_objective_item

Determines if the passed objective item is a reasonable, valid theft target.

\ No newline at end of file diff --git a/datum/spy_bounty/some_bot.html b/datum/spy_bounty/some_bot.html new file mode 100644 index 0000000000000..8ea09927eff09 --- /dev/null +++ b/datum/spy_bounty/some_bot.html @@ -0,0 +1 @@ +/datum/spy_bounty/some_bot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

some_bot

Vars

bot_typeWhat typepath of bot we want to steal.
target_bot_refWeakref to the bot we want to steal.

Var Details

bot_type

What typepath of bot we want to steal.

target_bot_ref

Weakref to the bot we want to steal.

\ No newline at end of file diff --git a/datum/spy_bounty/targets_person.html b/datum/spy_bounty/targets_person.html new file mode 100644 index 0000000000000..7deba4317a114 --- /dev/null +++ b/datum/spy_bounty/targets_person.html @@ -0,0 +1,9 @@ +/datum/spy_bounty/targets_person - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

targets_person

Subtype for a bounty that targets a specific crew member

Vars

target_refWeakref to the mob target of the bounty

Procs

is_valid_crewmemberRan on every single member of the crew to determine if they are a valid target.
target_foundRan when a valid target is selected for the bounty.

Var Details

target_ref

Weakref to the mob target of the bounty

Proc Details

is_valid_crewmember

Ran on every single member of the crew to determine if they are a valid target.

+ +

Returning FALSE will exclude them from the list of possible targets.

target_found

Ran when a valid target is selected for the bounty.

+ +

Returning FALSE will stop the bounty from being finalized, this can be used for last minute checks.

\ No newline at end of file diff --git a/datum/spy_bounty/targets_person/some_item.html b/datum/spy_bounty/targets_person/some_item.html new file mode 100644 index 0000000000000..96aaf55cc238a --- /dev/null +++ b/datum/spy_bounty/targets_person/some_item.html @@ -0,0 +1 @@ +/datum/spy_bounty/targets_person/some_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

some_item

Subtype for a bounty that targets a specific crew member and a specific item on them

Vars

desired_typeTypepath of the item we want from the target
target_original_desired_refWeakref to the item that matches our desired type within the target at the time of bounty creation

Procs

find_desired_thingFinds the desired item type in the target crewmember.

Var Details

desired_type

Typepath of the item we want from the target

target_original_desired_ref

Weakref to the item that matches our desired type within the target at the time of bounty creation

Proc Details

find_desired_thing

Finds the desired item type in the target crewmember.

\ No newline at end of file diff --git a/datum/spy_bounty_handler.html b/datum/spy_bounty_handler.html new file mode 100644 index 0000000000000..cbaeef2fce1ef --- /dev/null +++ b/datum/spy_bounty_handler.html @@ -0,0 +1,16 @@ +/datum/spy_bounty_handler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spy_bounty_handler

Spy bounty handler

+

Singleton datum that handles determining active bounties for spies.

Vars

all_claimed_bounty_typesAssoc list of items stolen in the past to how many times they have been stolen +Sometimes item typepaths, sometimes REFs, in general just strings that represent stolen items
base_bounties_to_giveAssoc list that dictates how much of each bounty difficulty to give out at once. +Modified by the number of times we have refreshed bounties.
bountiesAssoc list of all active bounties.
bounty_typesAssoc list of all possible bounties for each difficulty, weighted. +This is static, no bounty types are removed from this list.
claimed_bounties_from_last_poolList of all items stolen in the last pool of bounties. +Same as above - strings that represent stolen items.
num_attempts_overrideOverride for the number of attempts to make a bounty.
num_refreshesNumber of times we have refreshed bounties
possible_uplink_itemsAssoc list of all uplink items possible to be given as bounties for each difficulty. +This is not static, as bounties are complete uplink items will be removed from this list.
refresh_timeTimer between when all bounties are refreshed.
refresh_timertimerID of the active refresh timer.

Procs

force_refreshForces a refresh of the bounty list. +Counts towards [num_refreshes].
get_all_bountiesHelper that returns a list of all active bounties in a single list, regardless of difficulty.
refresh_bounty_listRefreshes all active bounties for each difficulty, no matter if they were complete or not. +Then recursively calls itself via a timer.

Var Details

all_claimed_bounty_types

Assoc list of items stolen in the past to how many times they have been stolen +Sometimes item typepaths, sometimes REFs, in general just strings that represent stolen items

base_bounties_to_give

Assoc list that dictates how much of each bounty difficulty to give out at once. +Modified by the number of times we have refreshed bounties.

bounties

Assoc list of all active bounties.

bounty_types

Assoc list of all possible bounties for each difficulty, weighted. +This is static, no bounty types are removed from this list.

claimed_bounties_from_last_pool

List of all items stolen in the last pool of bounties. +Same as above - strings that represent stolen items.

num_attempts_override

Override for the number of attempts to make a bounty.

num_refreshes

Number of times we have refreshed bounties

Assoc list of all uplink items possible to be given as bounties for each difficulty. +This is not static, as bounties are complete uplink items will be removed from this list.

refresh_time

Timer between when all bounties are refreshed.

refresh_timer

timerID of the active refresh timer.

Proc Details

force_refresh

Forces a refresh of the bounty list. +Counts towards [num_refreshes].

get_all_bounties

Helper that returns a list of all active bounties in a single list, regardless of difficulty.

refresh_bounty_list

Refreshes all active bounties for each difficulty, no matter if they were complete or not. +Then recursively calls itself via a timer.

\ No newline at end of file diff --git a/datum/stack_canary.html b/datum/stack_canary.html new file mode 100644 index 0000000000000..e60c7fbede78a --- /dev/null +++ b/datum/stack_canary.html @@ -0,0 +1 @@ +/datum/stack_canary - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

stack_canary

Stack canary. Will go away if the stack it was primed by is ended by byond for return or stack overflow reasons.

Procs

use_variableempty proc to avoid warnings about unused variables. Call this proc on your canary in the stack it's watching.

Proc Details

use_variable

empty proc to avoid warnings about unused variables. Call this proc on your canary in the stack it's watching.

\ No newline at end of file diff --git a/datum/stack_end_detector.html b/datum/stack_end_detector.html new file mode 100644 index 0000000000000..df625af10df64 --- /dev/null +++ b/datum/stack_end_detector.html @@ -0,0 +1,6 @@ +/datum/stack_end_detector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

stack_end_detector

Stack End Detector. +Can detect if a given code stack has exited, used by the mc for stack overflow detection.

Procs

checkReturns true if the stack is still going. Calling before the canary has been primed also returns true
prime_canary

Proc Details

check

Returns true if the stack is still going. Calling before the canary has been primed also returns true

prime_canary

\ No newline at end of file diff --git a/datum/stack_recipe.html b/datum/stack_recipe.html new file mode 100644 index 0000000000000..7f413efde9d6c --- /dev/null +++ b/datum/stack_recipe.html @@ -0,0 +1 @@ +/datum/stack_recipe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stack_recipe

Vars

categoryCategory for general crafting menu
crafting_flagscrafting_flags var to hold bool values
max_res_amountMax amount of resulting atoms made
placement_checksBitflag of additional placement checks required to place. (STACK_CHECK_CARDINALS|STACK_CHECK_ADJACENT|STACK_CHECK_TRAM_FORBIDDEN|STACK_CHECK_TRAM_EXCLUSIVE)
req_amountAmount of stack required to make
res_amountAmount of resulting atoms made
result_typeWhat atom the recipe makes, typepath
timeHow long it takes to make
titleThe title of the recipe
trait_boosterWhat trait, if any, boosts the construction speed of this item
trait_modifierHow much the trait above, if supplied, boosts the construct speed of this item

Var Details

category

Category for general crafting menu

crafting_flags

crafting_flags var to hold bool values

max_res_amount

Max amount of resulting atoms made

placement_checks

Bitflag of additional placement checks required to place. (STACK_CHECK_CARDINALS|STACK_CHECK_ADJACENT|STACK_CHECK_TRAM_FORBIDDEN|STACK_CHECK_TRAM_EXCLUSIVE)

req_amount

Amount of stack required to make

res_amount

Amount of resulting atoms made

result_type

What atom the recipe makes, typepath

time

How long it takes to make

title

The title of the recipe

trait_booster

What trait, if any, boosts the construction speed of this item

trait_modifier

How much the trait above, if supplied, boosts the construct speed of this item

\ No newline at end of file diff --git a/datum/stack_recipe/radial.html b/datum/stack_recipe/radial.html new file mode 100644 index 0000000000000..03e5c06b521c8 --- /dev/null +++ b/datum/stack_recipe/radial.html @@ -0,0 +1 @@ +/datum/stack_recipe/radial - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

radial

Vars

descOptional info to be shown on the radial option for this item

Var Details

desc

Optional info to be shown on the radial option for this item

\ No newline at end of file diff --git a/datum/station_alert.html b/datum/station_alert.html new file mode 100644 index 0000000000000..3a99559e85de1 --- /dev/null +++ b/datum/station_alert.html @@ -0,0 +1 @@ +/datum/station_alert - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

station_alert

Vars

alarm_typesList of all alarm types we are listening to
camera_viewIf UI will also show and allow jumping to cameras connected to each alert area
holderHolder of the datum
listenerListens for alarms, provides the alarms list for our UI
titleTitle of our UI

Var Details

alarm_types

List of all alarm types we are listening to

camera_view

If UI will also show and allow jumping to cameras connected to each alert area

holder

Holder of the datum

listener

Listens for alarms, provides the alarms list for our UI

title

Title of our UI

\ No newline at end of file diff --git a/datum/station_goal/bluespace_cannon.html b/datum/station_goal/bluespace_cannon.html new file mode 100644 index 0000000000000..097c9495276d7 --- /dev/null +++ b/datum/station_goal/bluespace_cannon.html @@ -0,0 +1,2 @@ +/datum/station_goal/bluespace_cannon - /tg/ Station 13
/tg/ Station 13 - Modules - Types

bluespace_cannon

Bluespace artillery goal

+

Requires the crew to construct an artillery piece by shift end.

\ No newline at end of file diff --git a/datum/station_goal/station_shield.html b/datum/station_goal/station_shield.html new file mode 100644 index 0000000000000..28a57bdc25c72 --- /dev/null +++ b/datum/station_goal/station_shield.html @@ -0,0 +1,3 @@ +/datum/station_goal/station_shield - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

station_shield

Procs

update_coverageGets the coverage of all active meteor shield satellites +Can be expensive, ensure you need this before calling it

Proc Details

update_coverage

Gets the coverage of all active meteor shield satellites +Can be expensive, ensure you need this before calling it

\ No newline at end of file diff --git a/datum/station_request.html b/datum/station_request.html new file mode 100644 index 0000000000000..a2ef5569f1b8a --- /dev/null +++ b/datum/station_request.html @@ -0,0 +1,2 @@ +/datum/station_request - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

station_request

A combined all in one datum that stores everything about the request, the requester's account, as well as the requestee's account +All of this is passed to the Request Console UI in order to present in organized way.

Vars

applicantsthe account of the request fulfiller.
descriptionText description of the request to be shown within the UI.
ownerName of the Request Owner.
owner_accountThe account of the request owner.
req_numberInternal number of the request for organizing. Id card number.
valueValue of the request.

Var Details

applicants

the account of the request fulfiller.

description

Text description of the request to be shown within the UI.

owner

Name of the Request Owner.

owner_account

The account of the request owner.

req_number

Internal number of the request for organizing. Id card number.

value

Value of the request.

\ No newline at end of file diff --git a/datum/station_state.html b/datum/station_state.html new file mode 100644 index 0000000000000..a6c4b24c5f41a --- /dev/null +++ b/datum/station_state.html @@ -0,0 +1,7 @@ +/datum/station_state - /tg/ Station 13
/tg/ Station 13 - Modules - Types

station_state

For counting up how much of the station exists at the start of the shift, and how much is left behind by the end of it.

+

"For God's sake, please be careful with those fuel tanks, you're going to set them off and compromise the station's integrity." +"Relax boss, everyone knows this station has no integrity." +"Yeah, that's why we all like it so much!"

+
\ No newline at end of file diff --git a/datum/station_trait.html b/datum/station_trait.html new file mode 100644 index 0000000000000..6f6ee070d4859 --- /dev/null +++ b/datum/station_trait.html @@ -0,0 +1 @@ +/datum/station_trait - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

station_trait

Base class of station traits. These are used to influence rounds in one way or the other by influencing the levers of the station.

Vars

abstract_typeTrait should not be instantiated in a round if its type matches this type
blacklistWhat traits are incompatible with this one?
can_revertWhether or not this trait can be reverted by an admin
costThe cost of the trait, which is removed from the budget.
dynamic_categoryWhich ruleset flags to allow dynamic to use. NONE to disregard
dynamic_threat_idThe ID that we look for in dynamic.json. Not synced with 'name' because I can already see this go wrong
forceWhether this trait is always enabled; generally used for debugging
lobby_buttonsLobby buttons controlled by this trait
nameName of the trait
report_messageWhat message to show in the centcom report?
show_in_reportDoes this trait show in the centcom report?
sign_up_buttonIf set to true we'll show a button on the lobby to notify people about this trait
threat_reductionIf ran during dynamic, do we reduce the total threat? Will be overridden by config if set
trait_flagsExtra flags for station traits such as it being abstract, planetary or space only
trait_processesWhether or not this trait uses process()
trait_to_giveWhat code-trait does this station trait give? gives none if null
trait_typeThe type of this trait. Used to classify how this trait influences the station
weightChance relative to other traits of its type to be picked

Procs

can_display_lobby_buttonReturn TRUE if we want to show a lobby button, by default we assume we don't want it after the round begins
destroy_lobby_buttonsRemove all of our active lobby buttons
get_decal_colorReturn a color for the decals, if any
get_pulsar_messageCalled when overriding a pulsar star command report message.
get_reportReturns the type of info the centcom report has on this trait, if any.
on_round_startProc ran when round starts. Use this for roundstart effects. By default we clean up our buttons here.
revertWill attempt to revert the station trait, used by admins.

Var Details

abstract_type

Trait should not be instantiated in a round if its type matches this type

blacklist

What traits are incompatible with this one?

can_revert

Whether or not this trait can be reverted by an admin

cost

The cost of the trait, which is removed from the budget.

dynamic_category

Which ruleset flags to allow dynamic to use. NONE to disregard

dynamic_threat_id

The ID that we look for in dynamic.json. Not synced with 'name' because I can already see this go wrong

force

Whether this trait is always enabled; generally used for debugging

lobby_buttons

Lobby buttons controlled by this trait

name

Name of the trait

report_message

What message to show in the centcom report?

show_in_report

Does this trait show in the centcom report?

sign_up_button

If set to true we'll show a button on the lobby to notify people about this trait

threat_reduction

If ran during dynamic, do we reduce the total threat? Will be overridden by config if set

trait_flags

Extra flags for station traits such as it being abstract, planetary or space only

trait_processes

Whether or not this trait uses process()

trait_to_give

What code-trait does this station trait give? gives none if null

trait_type

The type of this trait. Used to classify how this trait influences the station

weight

Chance relative to other traits of its type to be picked

Proc Details

can_display_lobby_button

Return TRUE if we want to show a lobby button, by default we assume we don't want it after the round begins

destroy_lobby_buttons

Remove all of our active lobby buttons

get_decal_color

Return a color for the decals, if any

get_pulsar_message

Called when overriding a pulsar star command report message.

get_report

Returns the type of info the centcom report has on this trait, if any.

on_round_start

Proc ran when round starts. Use this for roundstart effects. By default we clean up our buttons here.

revert

Will attempt to revert the station trait, used by admins.

\ No newline at end of file diff --git a/datum/station_trait/birthday.html b/datum/station_trait/birthday.html new file mode 100644 index 0000000000000..0b50a788ae6dc --- /dev/null +++ b/datum/station_trait/birthday.html @@ -0,0 +1 @@ +/datum/station_trait/birthday - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

birthday

Vars

birthday_override_ckeyVariable that admins can override with a player's ckey in order to set them as the birthday person when the round starts.
birthday_personVariable that stores a reference to the person selected to have their birthday celebrated.
birthday_person_nameVariable that holds the real name of the birthday person once selected, just incase the birthday person's real_name changes.

Var Details

birthday_override_ckey

Variable that admins can override with a player's ckey in order to set them as the birthday person when the round starts.

birthday_person

Variable that stores a reference to the person selected to have their birthday celebrated.

birthday_person_name

Variable that holds the real name of the birthday person once selected, just incase the birthday person's real_name changes.

\ No newline at end of file diff --git a/datum/station_trait/cybernetic_revolution.html b/datum/station_trait/cybernetic_revolution.html new file mode 100644 index 0000000000000..4cfaaddc063be --- /dev/null +++ b/datum/station_trait/cybernetic_revolution.html @@ -0,0 +1 @@ +/datum/station_trait/cybernetic_revolution - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cybernetic_revolution

Vars

job_to_cyberneticList of all job types with the cybernetics they should receive.

Var Details

job_to_cybernetic

List of all job types with the cybernetics they should receive.

\ No newline at end of file diff --git a/datum/station_trait/ian_adventure.html b/datum/station_trait/ian_adventure.html new file mode 100644 index 0000000000000..4344f519aba64 --- /dev/null +++ b/datum/station_trait/ian_adventure.html @@ -0,0 +1 @@ +/datum/station_trait/ian_adventure - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ian_adventure

Procs

do_corgi_respawnMoves the new dog somewhere safe, equips it with the old one's inventory and makes it deadchat_playable.

Proc Details

do_corgi_respawn

Moves the new dog somewhere safe, equips it with the old one's inventory and makes it deadchat_playable.

\ No newline at end of file diff --git a/datum/station_trait/job.html b/datum/station_trait/job.html new file mode 100644 index 0000000000000..7ad64e888adbf --- /dev/null +++ b/datum/station_trait/job.html @@ -0,0 +1,2 @@ +/datum/station_trait/job - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

job

A station trait which enables a temporary job +Generally speaking these should always all be mutually exclusive, don't have too many at once

Vars

button_descWhat tooltip to show on the button
can_roll_antagCan this job roll antag?
job_to_addType of job to enable
lobby_candidatesWho signed up to this in the lobby
position_amountHow many positions to spawn?

Procs

pre_jobs_assignedCalled before we start assigning roles, assign ours first

Var Details

button_desc

What tooltip to show on the button

can_roll_antag

Can this job roll antag?

job_to_add

Type of job to enable

lobby_candidates

Who signed up to this in the lobby

position_amount

How many positions to spawn?

Proc Details

pre_jobs_assigned

Called before we start assigning roles, assign ours first

\ No newline at end of file diff --git a/datum/station_trait/job/bridge_assistant.html b/datum/station_trait/job/bridge_assistant.html new file mode 100644 index 0000000000000..96710f06cd8f9 --- /dev/null +++ b/datum/station_trait/job/bridge_assistant.html @@ -0,0 +1 @@ +/datum/station_trait/job/bridge_assistant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bridge_assistant

Procs

add_coffeemakerCreates a coffeemaker in the bridge, if we don't have one yet.

Proc Details

add_coffeemaker

Creates a coffeemaker in the bridge, if we don't have one yet.

\ No newline at end of file diff --git a/datum/station_trait/job/cargorilla.html b/datum/station_trait/job/cargorilla.html new file mode 100644 index 0000000000000..422b7c15f240b --- /dev/null +++ b/datum/station_trait/job/cargorilla.html @@ -0,0 +1 @@ +/datum/station_trait/job/cargorilla - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cargorilla

Adds a gorilla to the cargo department, replacing the sloth and the mech

Procs

replace_cargoRemove the cargo equipment and personnel that are being replaced by a gorilla.

Proc Details

replace_cargo

Remove the cargo equipment and personnel that are being replaced by a gorilla.

\ No newline at end of file diff --git a/datum/station_trait/job/human_ai.html b/datum/station_trait/job/human_ai.html new file mode 100644 index 0000000000000..3814020530522 --- /dev/null +++ b/datum/station_trait/job/human_ai.html @@ -0,0 +1 @@ +/datum/station_trait/job/human_ai - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

human_ai

Procs

give_fax_machineGives the AI SAT a fax machine if it doesn't have one. This is copy pasted from Bridge Assistant's coffee maker.

Proc Details

give_fax_machine

Gives the AI SAT a fax machine if it doesn't have one. This is copy pasted from Bridge Assistant's coffee maker.

\ No newline at end of file diff --git a/datum/station_trait/nebula.html b/datum/station_trait/nebula.html new file mode 100644 index 0000000000000..b73257fb6ae52 --- /dev/null +++ b/datum/station_trait/nebula.html @@ -0,0 +1 @@ +/datum/station_trait/nebula - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nebula

Station traits that influence the space background and apply some unique effects!

Vars

carp_color_overrideIf set, gives the basic carp different colors
nebula_layerThe parallax layer of the nebula

Var Details

carp_color_override

If set, gives the basic carp different colors

nebula_layer

The parallax layer of the nebula

\ No newline at end of file diff --git a/datum/station_trait/nebula/hostile.html b/datum/station_trait/nebula/hostile.html new file mode 100644 index 0000000000000..cc9210f313b13 --- /dev/null +++ b/datum/station_trait/nebula/hostile.html @@ -0,0 +1 @@ +/datum/station_trait/nebula/hostile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hostile

Station nebula that incur some sort of effect if no shielding is created

Vars

intensity_increment_timeHow long it takes to go to the next nebula level/intensity
maximum_nebula_intensityThe max intensity of a nebula
nebula_intensityIntensity of the nebula
shieldingObjects that we use to calculate the current shielding level

Procs

add_shielderAdd a shielding unit to ask for shielding
apply_nebula_effectThe station did not set up shielding, start creating effects
calculate_nebula_strengthCalculate how strong we currently are
get_shielding_levelCheck how strong the stations shielding is
remove_shielderRemove a shielding unit from our tracking
send_instructionsAnnounce to the station what's going on and what they need to do

Var Details

intensity_increment_time

How long it takes to go to the next nebula level/intensity

maximum_nebula_intensity

The max intensity of a nebula

nebula_intensity

Intensity of the nebula

shielding

Objects that we use to calculate the current shielding level

Proc Details

add_shielder

Add a shielding unit to ask for shielding

apply_nebula_effect

The station did not set up shielding, start creating effects

calculate_nebula_strength

Calculate how strong we currently are

get_shielding_level

Check how strong the stations shielding is

remove_shielder

Remove a shielding unit from our tracking

send_instructions

Announce to the station what's going on and what they need to do

\ No newline at end of file diff --git a/datum/station_trait/nebula/hostile/radiation.html b/datum/station_trait/nebula/hostile/radiation.html new file mode 100644 index 0000000000000..981fb597ef2ba --- /dev/null +++ b/datum/station_trait/nebula/hostile/radiation.html @@ -0,0 +1 @@ +/datum/station_trait/nebula/hostile/radiation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

radiation

The station will be inside a radioactive nebula! Space is radioactive and the station needs to start setting up nebula shielding

Vars

nebula_radglowThe glow of 'fake' radioactive objects in space
radioactive_areasArea's that are part of the radioactive nebula
send_care_package_atWhen are we going to send them a care package?
send_care_package_timeHow long does the storm have to last for us to send a care package?

Procs

on_enteredThey entered space? START BOMBING WITH RADS HAHAHAHA. old_area can be null for new objects
on_exitedCalled when an atom leaves space, so we can remove the radiation effect
on_spawned_mobWhen a mob is spawned by dynamic, intercept and give it a little radiation shield. Only works for dynamic mobs!
send_care_packageSend a care package because it is not going well

Var Details

nebula_radglow

The glow of 'fake' radioactive objects in space

radioactive_areas

Area's that are part of the radioactive nebula

send_care_package_at

When are we going to send them a care package?

send_care_package_time

How long does the storm have to last for us to send a care package?

Proc Details

on_entered

They entered space? START BOMBING WITH RADS HAHAHAHA. old_area can be null for new objects

on_exited

Called when an atom leaves space, so we can remove the radiation effect

on_spawned_mob

When a mob is spawned by dynamic, intercept and give it a little radiation shield. Only works for dynamic mobs!

send_care_package

Send a care package because it is not going well

\ No newline at end of file diff --git a/datum/station_trait/random_event_weight_modifier.html b/datum/station_trait/random_event_weight_modifier.html new file mode 100644 index 0000000000000..6e031e59ee67c --- /dev/null +++ b/datum/station_trait/random_event_weight_modifier.html @@ -0,0 +1 @@ +/datum/station_trait/random_event_weight_modifier - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

random_event_weight_modifier

Vars

event_control_pathThe path to the round_event_control that we modify.
max_occurrences_modifierFlat modifier added to the amount of max occurances the random event can have.
weight_multiplierMultiplier applied to the weight of the event.

Var Details

event_control_path

The path to the round_event_control that we modify.

max_occurrences_modifier

Flat modifier added to the amount of max occurances the random event can have.

weight_multiplier

Multiplier applied to the weight of the event.

\ No newline at end of file diff --git a/datum/station_trait/revolutionary_trashing.html b/datum/station_trait/revolutionary_trashing.html new file mode 100644 index 0000000000000..e71829bddb100 --- /dev/null +++ b/datum/station_trait/revolutionary_trashing.html @@ -0,0 +1,3 @@ +/datum/station_trait/revolutionary_trashing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

revolutionary_trashing

Vars

trash_talkThe IDs of the graffiti designs that we will generate.

Procs

trash_this_place"Trashes" the command areas of the station.

Var Details

trash_talk

The IDs of the graffiti designs that we will generate.

Proc Details

trash_this_place

"Trashes" the command areas of the station.

+

Creates random graffiti and damages certain machinery/structures in the +command areas of the station.

\ No newline at end of file diff --git a/datum/station_trait/skub.html b/datum/station_trait/skub.html new file mode 100644 index 0000000000000..5db316d83cc69 --- /dev/null +++ b/datum/station_trait/skub.html @@ -0,0 +1 @@ +/datum/station_trait/skub - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

skub

A trait that lets players choose whether they want pro-skub or anti-skub (or neither), and receive the appropriate equipment.

Vars

skubbersList of people signed up to be either pro_skub or anti_skub

Var Details

skubbers

List of people signed up to be either pro_skub or anti_skub

\ No newline at end of file diff --git a/datum/status_effect.html b/datum/status_effect.html new file mode 100644 index 0000000000000..b8a37fab26f57 --- /dev/null +++ b/datum/status_effect.html @@ -0,0 +1,46 @@ +/datum/status_effect - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

status_effect

Status effects are used to apply temporary or permanent effects to mobs. +This file contains their code, plus code for applying and removing them.

Vars

alert_typeThe typepath to the alert thrown by the status effect when created. +Status effect "name"s and "description"s are shown to the owner here.
durationWhen set initially / in on_creation, this is how long the status effect lasts in deciseconds. +While processing, this becomes the world.time when the status effect will expire. +-1 = infinite duration.
heal_flag_necessaryIf remove_on_fullheal is TRUE, what flag do we need to be removed?
idThe ID of the effect. ID is used in adding and removing effects to check for duplicates, among other things.
linked_alertThe alert itself, created in [proc/on_creation] (if alert_type is specified).
on_remove_on_mob_deleteIf TRUE, we call [proc/on_remove] when owner is deleted. Otherwise, we call [proc/be_replaced].
ownerThe mob affected by the status effect.
particle_effectA particle effect, for things like embers - Should be set on update_particles()
processing_speedUsed to define if the status effect should be using SSfastprocess or SSprocessing
remove_on_fullhealDo we self-terminate when a fullheal is called?
show_durationIf TRUE, and we have an alert, we will show a duration on the alert
status_typeHow many of the effect can be on one mob, and/or what happens when you try to add a duplicate.
tick_intervalWhen set initially / in on_creation, this is how long between [proc/tick] calls in deciseconds. +Note that this cannot be faster than the processing subsystem you choose to fire the effect on. (See: [var/processing_speed]) +While processing, this becomes the world.time when the next tick will occur. +-1 = will prevent ticks, and if duration is also unlimited (-1), stop processing wholesale.

Procs

be_replacedCalled instead of on_remove when a status effect +of status_type STATUS_EFFECT_REPLACE is replaced by itself, +or when a status effect with on_remove_on_mob_delete +set to FALSE has its mob deleted
before_removeCalled before being fully removed (before on_remove) +Returning FALSE will cancel removal
get_examine_textGets and formats examine text associated with our status effect. +Return 'null' to have no examine text appear (default behavior).
nextmove_adjustAdds nextmove adjustment additiviely to the owner while applied
nextmove_modifierAdds nextmove modifier multiplicatively to the owner while applied
on_applyCalled whenever the effect is applied in on_created +Returning FALSE will cause it to delete itself during creation instead.
on_creationCalled from New() with any supplied status effect arguments. +Not guaranteed to exist by the end. +Returning FALSE from on_apply will stop on_creation and self-delete the effect.
on_removeCalled whenever the buff expires or is removed (qdeleted) +Note that at the point this is called, it is out of the +owner's status_effects list, but owner is not yet null
refreshCalled when a status effect of status_type STATUS_EFFECT_REFRESH +has its duration refreshed in apply_status_effect - is passed New() args
remove_durationRemove [seconds] of duration from the status effect, qdeling / ending if we eclipse the current world time.
remove_effect_on_healSignal proc for COMSIG_LIVING_POST_FULLY_HEAL to remove us on fullheal
tickCalled every tick from process(). +This is only called of tick_interval is not -1.
update_particlesUpdates the particles for the status effects +Should be handled by subtypes!
update_shown_durationUpdates the status effect alert's maptext (if possible)

Var Details

alert_type

The typepath to the alert thrown by the status effect when created. +Status effect "name"s and "description"s are shown to the owner here.

duration

When set initially / in on_creation, this is how long the status effect lasts in deciseconds. +While processing, this becomes the world.time when the status effect will expire. +-1 = infinite duration.

heal_flag_necessary

If remove_on_fullheal is TRUE, what flag do we need to be removed?

id

The ID of the effect. ID is used in adding and removing effects to check for duplicates, among other things.

linked_alert

The alert itself, created in [proc/on_creation] (if alert_type is specified).

on_remove_on_mob_delete

If TRUE, we call [proc/on_remove] when owner is deleted. Otherwise, we call [proc/be_replaced].

owner

The mob affected by the status effect.

particle_effect

A particle effect, for things like embers - Should be set on update_particles()

processing_speed

Used to define if the status effect should be using SSfastprocess or SSprocessing

remove_on_fullheal

Do we self-terminate when a fullheal is called?

show_duration

If TRUE, and we have an alert, we will show a duration on the alert

status_type

How many of the effect can be on one mob, and/or what happens when you try to add a duplicate.

tick_interval

When set initially / in on_creation, this is how long between [proc/tick] calls in deciseconds. +Note that this cannot be faster than the processing subsystem you choose to fire the effect on. (See: [var/processing_speed]) +While processing, this becomes the world.time when the next tick will occur. +-1 = will prevent ticks, and if duration is also unlimited (-1), stop processing wholesale.

Proc Details

be_replaced

Called instead of on_remove when a status effect +of status_type STATUS_EFFECT_REPLACE is replaced by itself, +or when a status effect with on_remove_on_mob_delete +set to FALSE has its mob deleted

before_remove

Called before being fully removed (before on_remove) +Returning FALSE will cancel removal

get_examine_text

Gets and formats examine text associated with our status effect. +Return 'null' to have no examine text appear (default behavior).

nextmove_adjust

Adds nextmove adjustment additiviely to the owner while applied

nextmove_modifier

Adds nextmove modifier multiplicatively to the owner while applied

on_apply

Called whenever the effect is applied in on_created +Returning FALSE will cause it to delete itself during creation instead.

on_creation

Called from New() with any supplied status effect arguments. +Not guaranteed to exist by the end. +Returning FALSE from on_apply will stop on_creation and self-delete the effect.

on_remove

Called whenever the buff expires or is removed (qdeleted) +Note that at the point this is called, it is out of the +owner's status_effects list, but owner is not yet null

refresh

Called when a status effect of status_type STATUS_EFFECT_REFRESH +has its duration refreshed in apply_status_effect - is passed New() args

remove_duration

Remove [seconds] of duration from the status effect, qdeling / ending if we eclipse the current world time.

remove_effect_on_heal

Signal proc for COMSIG_LIVING_POST_FULLY_HEAL to remove us on fullheal

tick

Called every tick from process(). +This is only called of tick_interval is not -1.

+

Note that every tick =/= every processing cycle.

+

update_particles

Updates the particles for the status effects +Should be handled by subtypes!

update_shown_duration

Updates the status effect alert's maptext (if possible)

\ No newline at end of file diff --git a/datum/status_effect/agent_pinpointer.html b/datum/status_effect/agent_pinpointer.html new file mode 100644 index 0000000000000..ed5334d63a440 --- /dev/null +++ b/datum/status_effect/agent_pinpointer.html @@ -0,0 +1 @@ +/datum/status_effect/agent_pinpointer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

agent_pinpointer

Vars

minimum_rangeThe minimum range to start pointing towards your target.
range_farThe range until you're considered 'too far away'
range_fuzz_factorHow fuzzy will the pinpointer be, messing with it pointing to your target.
range_midThe range until you're considered 'close'
scan_targetThe target we are pointing towards, refreshes every tick.

Procs

point_to_targetShow the distance and direction of a scanned target
scan_for_targetAttempting to locate a nearby target to scan and point towards.

Var Details

minimum_range

The minimum range to start pointing towards your target.

range_far

The range until you're considered 'too far away'

range_fuzz_factor

How fuzzy will the pinpointer be, messing with it pointing to your target.

range_mid

The range until you're considered 'close'

scan_target

The target we are pointing towards, refreshes every tick.

Proc Details

point_to_target

Show the distance and direction of a scanned target

scan_for_target

Attempting to locate a nearby target to scan and point towards.

\ No newline at end of file diff --git a/datum/status_effect/ants.html b/datum/status_effect/ants.html new file mode 100644 index 0000000000000..9d300e513db99 --- /dev/null +++ b/datum/status_effect/ants.html @@ -0,0 +1 @@ +/datum/status_effect/ants - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ants

Vars

ant_debuff_speechCommon phrases people covered in ants scream
ants_remainingWill act as the main timer as well as changing how much damage the ants do.
damage_per_antAmount of damage done per ant on the victim

Var Details

ant_debuff_speech

Common phrases people covered in ants scream

ants_remaining

Will act as the main timer as well as changing how much damage the ants do.

damage_per_ant

Amount of damage done per ant on the victim

\ No newline at end of file diff --git a/datum/status_effect/ashwalker_damage.html b/datum/status_effect/ashwalker_damage.html new file mode 100644 index 0000000000000..21d8588627d1f --- /dev/null +++ b/datum/status_effect/ashwalker_damage.html @@ -0,0 +1 @@ +/datum/status_effect/ashwalker_damage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ashwalker_damage

Vars

total_damageHow much damage has been dealt to the mob

Var Details

total_damage

How much damage has been dealt to the mob

\ No newline at end of file diff --git a/datum/status_effect/basilisk_overheat.html b/datum/status_effect/basilisk_overheat.html new file mode 100644 index 0000000000000..aa05b828f08ff --- /dev/null +++ b/datum/status_effect/basilisk_overheat.html @@ -0,0 +1 @@ +/datum/status_effect/basilisk_overheat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

basilisk_overheat

Status effect gained by basilisks when they touch something hot

Vars

chilling_reagentsThings which will chill us out if we get hit by them

Procs

on_deathCool down if we die
on_shotCool down if shot with a cryo beam
on_splashedCool down if splashed with water

Var Details

chilling_reagents

Things which will chill us out if we get hit by them

Proc Details

on_death

Cool down if we die

on_shot

Cool down if shot with a cryo beam

on_splashed

Cool down if splashed with water

\ No newline at end of file diff --git a/datum/status_effect/bioware.html b/datum/status_effect/bioware.html new file mode 100644 index 0000000000000..62be1ab05e8c6 --- /dev/null +++ b/datum/status_effect/bioware.html @@ -0,0 +1,2 @@ +/datum/status_effect/bioware - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bioware

Bioware status effect

+

Simple holder status effects that grants the owner mob basic buffs

Procs

bioware_gainedCalled when applying to the mob.
bioware_lostCalled when removing from the mob.

Proc Details

bioware_gained

Called when applying to the mob.

bioware_lost

Called when removing from the mob.

\ No newline at end of file diff --git a/datum/status_effect/blood_regen_active.html b/datum/status_effect/blood_regen_active.html new file mode 100644 index 0000000000000..9769745f661c1 --- /dev/null +++ b/datum/status_effect/blood_regen_active.html @@ -0,0 +1 @@ +/datum/status_effect/blood_regen_active - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

blood_regen_active

Vars

blood_to_health_multiplierCurrent multiplier for how much blood they spend healing themselves for every point of damage healed.

Procs

on_applyBUBBER CHANGE, allows scaling of hemophage healing blood cost.

Var Details

blood_to_health_multiplier

Current multiplier for how much blood they spend healing themselves for every point of damage healed.

Proc Details

on_apply

BUBBER CHANGE, allows scaling of hemophage healing blood cost.

\ No newline at end of file diff --git a/datum/status_effect/blood_thirst_satiated.html b/datum/status_effect/blood_thirst_satiated.html new file mode 100644 index 0000000000000..201eec2f81c2d --- /dev/null +++ b/datum/status_effect/blood_thirst_satiated.html @@ -0,0 +1 @@ +/datum/status_effect/blood_thirst_satiated - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blood_thirst_satiated

Vars

bloodloss_speed_multiplierWhat will the bloodloss_speed_multiplier of the Hemophage be changed by upon receiving this status effect?

Var Details

bloodloss_speed_multiplier

What will the bloodloss_speed_multiplier of the Hemophage be changed by upon receiving this status effect?

\ No newline at end of file diff --git a/datum/status_effect/bugkiller_death.html b/datum/status_effect/bugkiller_death.html new file mode 100644 index 0000000000000..44182d4334ab2 --- /dev/null +++ b/datum/status_effect/bugkiller_death.html @@ -0,0 +1,2 @@ +/datum/status_effect/bugkiller_death - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bugkiller_death

If bugkiller delivers a lethal dosage, applies this effect which does a funny animation THEN kills 'em +Also makes it so simplemobs / basicmobs no longer delete when they die (if they do)

Vars

spasm_loopsHow many times the spasm loops

Var Details

spasm_loops

How many times the spasm loops

\ No newline at end of file diff --git a/datum/status_effect/choke.html b/datum/status_effect/choke.html new file mode 100644 index 0000000000000..c611d136e4f78 --- /dev/null +++ b/datum/status_effect/choke.html @@ -0,0 +1 @@ +/datum/status_effect/choke - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

choke

Vars

ashThe particle holder we're using to run our ash effects
choke_loopOur choking audio loop
choking_on_refWeakref to the thing we're choking on
delta_xThe delta client.pixel_x we've got
delta_yThe delta client.pixel_y we've got
flamingIf the thing we're choking on is on fire

Var Details

ash

The particle holder we're using to run our ash effects

choke_loop

Our choking audio loop

choking_on_ref

Weakref to the thing we're choking on

delta_x

The delta client.pixel_x we've got

delta_y

The delta client.pixel_y we've got

flaming

If the thing we're choking on is on fire

\ No newline at end of file diff --git a/datum/status_effect/cloudstruck.html b/datum/status_effect/cloudstruck.html new file mode 100644 index 0000000000000..761338c2aac27 --- /dev/null +++ b/datum/status_effect/cloudstruck.html @@ -0,0 +1 @@ +/datum/status_effect/cloudstruck - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cloudstruck

Vars

mob_overlayThis overlay is applied to the owner for the duration of the effect.

Var Details

mob_overlay

This overlay is applied to the owner for the duration of the effect.

\ No newline at end of file diff --git a/datum/status_effect/confusion.html b/datum/status_effect/confusion.html new file mode 100644 index 0000000000000..ad04d36ae5d50 --- /dev/null +++ b/datum/status_effect/confusion.html @@ -0,0 +1 @@ +/datum/status_effect/confusion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

confusion

A status effect used for adding confusion to a mob.

Procs

on_moveSignal proc for COMSIG_MOB_CLIENT_PRE_MOVE. We have a chance to mix up our movement pre-move with confusion.

Proc Details

on_move

Signal proc for COMSIG_MOB_CLIENT_PRE_MOVE. We have a chance to mix up our movement pre-move with confusion.

\ No newline at end of file diff --git a/datum/status_effect/cosmic_beam.html b/datum/status_effect/cosmic_beam.html new file mode 100644 index 0000000000000..f9fb8f2765b14 --- /dev/null +++ b/datum/status_effect/cosmic_beam.html @@ -0,0 +1,5 @@ +/datum/status_effect/cosmic_beam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cosmic_beam

Vars

activeWether the beam is active or not
check_delayThe delay of when the beam gets checked
current_beamThe storage for the beam
current_targetStores the current beam target
last_checkChecks the time of the last check
max_rangeThe maximum range of the beam

Procs

beam_diedProc that is only called when the beam fails due to something, so not when manually ended. +manual disconnection = lose_target, so it can silently end +automatic disconnection = beam_died, so we can give a warning message first
los_checkChecks if the beam is going through an invalid turf
lose_targetProc that always is called when we want to end the beam and makes sure things are cleaned up, see beam_died()
on_beam_hitWhat to add when the beam connects to a target
on_beam_releaseWhat to remove when the beam disconnects from a target
on_beam_tickWhat to process when the beam is connected to a target
start_beamUsed for starting the beam when a target has been acquired

Var Details

active

Wether the beam is active or not

check_delay

The delay of when the beam gets checked

current_beam

The storage for the beam

current_target

Stores the current beam target

last_check

Checks the time of the last check

max_range

The maximum range of the beam

Proc Details

beam_died

Proc that is only called when the beam fails due to something, so not when manually ended. +manual disconnection = lose_target, so it can silently end +automatic disconnection = beam_died, so we can give a warning message first

los_check

Checks if the beam is going through an invalid turf

lose_target

Proc that always is called when we want to end the beam and makes sure things are cleaned up, see beam_died()

on_beam_hit

What to add when the beam connects to a target

on_beam_release

What to remove when the beam disconnects from a target

on_beam_tick

What to process when the beam is connected to a target

start_beam

Used for starting the beam when a target has been acquired

\ No newline at end of file diff --git a/datum/status_effect/crusher_damage.html b/datum/status_effect/crusher_damage.html new file mode 100644 index 0000000000000..2f7088680d94e --- /dev/null +++ b/datum/status_effect/crusher_damage.html @@ -0,0 +1 @@ +/datum/status_effect/crusher_damage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crusher_damage

Vars

total_damageHow much damage?

Var Details

total_damage

How much damage?

\ No newline at end of file diff --git a/datum/status_effect/decloning.html b/datum/status_effect/decloning.html new file mode 100644 index 0000000000000..af19df2c4b3c4 --- /dev/null +++ b/datum/status_effect/decloning.html @@ -0,0 +1 @@ +/datum/status_effect/decloning - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

decloning

Vars

strikes_leftHow many strikes our status effect holder has left before they are dusted.

Var Details

strikes_left

How many strikes our status effect holder has left before they are dusted.

\ No newline at end of file diff --git a/datum/status_effect/dizziness.html b/datum/status_effect/dizziness.html new file mode 100644 index 0000000000000..6b7672c2e7fa0 --- /dev/null +++ b/datum/status_effect/dizziness.html @@ -0,0 +1 @@ +/datum/status_effect/dizziness - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

dizziness

Procs

clear_dizzinessSignal proc that self deletes our dizziness effect

Proc Details

clear_dizziness

Signal proc that self deletes our dizziness effect

\ No newline at end of file diff --git a/datum/status_effect/drowsiness.html b/datum/status_effect/drowsiness.html new file mode 100644 index 0000000000000..1b8b6bc4da9c7 --- /dev/null +++ b/datum/status_effect/drowsiness.html @@ -0,0 +1 @@ +/datum/status_effect/drowsiness - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

drowsiness

Procs

on_face_cleanSignal proc for COMSIG_COMPONENT_CLEAN_FACE_ACT. When we wash our face, reduce drowsiness by a bit.

Proc Details

on_face_clean

Signal proc for COMSIG_COMPONENT_CLEAN_FACE_ACT. When we wash our face, reduce drowsiness by a bit.

\ No newline at end of file diff --git a/datum/status_effect/drugginess.html b/datum/status_effect/drugginess.html new file mode 100644 index 0000000000000..e00b4b6842a17 --- /dev/null +++ b/datum/status_effect/drugginess.html @@ -0,0 +1 @@ +/datum/status_effect/drugginess - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

drugginess

Drugginess / "high" effect, makes your screen rainbow

Procs

remove_drugginessRemoves all of our drugginess (self delete) on signal

Proc Details

remove_drugginess

Removes all of our drugginess (self delete) on signal

\ No newline at end of file diff --git a/datum/status_effect/eigenstasium.html b/datum/status_effect/eigenstasium.html new file mode 100644 index 0000000000000..58d3477eb891b --- /dev/null +++ b/datum/status_effect/eigenstasium.html @@ -0,0 +1 @@ +/datum/status_effect/eigenstasium - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

eigenstasium

Vars

alt_cloneYour clone from another reality
current_cycleSo we know what cycle we're in during the status
phase_3_cycleThe addiction looper for addiction stage 3
stable_messageIf we display the stabilised message or not

Var Details

alt_clone

Your clone from another reality

current_cycle

So we know what cycle we're in during the status

phase_3_cycle

The addiction looper for addiction stage 3

stable_message

If we display the stabilised message or not

\ No newline at end of file diff --git a/datum/status_effect/eldritch.html b/datum/status_effect/eldritch.html new file mode 100644 index 0000000000000..16a44060a25f3 --- /dev/null +++ b/datum/status_effect/eldritch.html @@ -0,0 +1,2 @@ +/datum/status_effect/eldritch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

eldritch

Vars

effect_iconicon file for the underlay
effect_icon_stateicon state for the underlay
marked_underlayunderlay used to indicate that someone is marked

Procs

on_effectCalled when the mark is activated by the heretic.
update_owner_underlaySignal proc for COMSIG_ATOM_UPDATE_OVERLAYS.

Var Details

effect_icon

icon file for the underlay

effect_icon_state

icon state for the underlay

marked_underlay

underlay used to indicate that someone is marked

Proc Details

on_effect

Called when the mark is activated by the heretic.

update_owner_underlay

Signal proc for COMSIG_ATOM_UPDATE_OVERLAYS.

+

Adds the generated mark overlay to the afflicted.

\ No newline at end of file diff --git a/datum/status_effect/eldritch/ash.html b/datum/status_effect/eldritch/ash.html new file mode 100644 index 0000000000000..150c78f675dfd --- /dev/null +++ b/datum/status_effect/eldritch/ash.html @@ -0,0 +1 @@ +/datum/status_effect/eldritch/ash - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ash

Vars

repetitionsDictates how much stamina and burn damage the mark will cause on trigger.

Var Details

repetitions

Dictates how much stamina and burn damage the mark will cause on trigger.

\ No newline at end of file diff --git a/datum/status_effect/eldritch/blade.html b/datum/status_effect/eldritch/blade.html new file mode 100644 index 0000000000000..923f16dc6ef9e --- /dev/null +++ b/datum/status_effect/eldritch/blade.html @@ -0,0 +1 @@ +/datum/status_effect/eldritch/blade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

blade

Vars

locked_toIf set, the owner of the status effect will not be able to leave this area.

Procs

is_escaping_locked_areaChecks if the movement from moving_from to going_to leaves our [var/locked_to] area. Returns TRUE if so.
on_moveSignal proc for COMSIG_MOVABLE_MOVED that blocks any movement out of our locked area
on_pre_throwSignal proc for COMSIG_MOVABLE_PRE_THROW that prevents people from escaping our locked area via throw.
on_teleportSignal proc for COMSIG_MOVABLE_TELEPORTED that blocks any teleports from our locked area.

Var Details

locked_to

If set, the owner of the status effect will not be able to leave this area.

Proc Details

is_escaping_locked_area

Checks if the movement from moving_from to going_to leaves our [var/locked_to] area. Returns TRUE if so.

on_move

Signal proc for COMSIG_MOVABLE_MOVED that blocks any movement out of our locked area

on_pre_throw

Signal proc for COMSIG_MOVABLE_PRE_THROW that prevents people from escaping our locked area via throw.

on_teleport

Signal proc for COMSIG_MOVABLE_TELEPORTED that blocks any teleports from our locked area.

\ No newline at end of file diff --git a/datum/status_effect/eldritch/cosmic.html b/datum/status_effect/eldritch/cosmic.html new file mode 100644 index 0000000000000..e4ac3d9dce697 --- /dev/null +++ b/datum/status_effect/eldritch/cosmic.html @@ -0,0 +1 @@ +/datum/status_effect/eldritch/cosmic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cosmic

Vars

cosmic_diamondFor storing the location when the mark got applied.
teleport_effectEffect when triggering mark.

Var Details

cosmic_diamond

For storing the location when the mark got applied.

teleport_effect

Effect when triggering mark.

\ No newline at end of file diff --git a/datum/status_effect/eldritch/moon.html b/datum/status_effect/eldritch/moon.html new file mode 100644 index 0000000000000..9138cce1db030 --- /dev/null +++ b/datum/status_effect/eldritch/moon.html @@ -0,0 +1 @@ +/datum/status_effect/eldritch/moon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

moon

Vars

damage_sustainedUsed for checking if the pacifism effect should end early

Procs

on_damagedChecks for damage so the heretic can't just attack them with another weapon whilst they are unable to fight back

Var Details

damage_sustained

Used for checking if the pacifism effect should end early

Proc Details

on_damaged

Checks for damage so the heretic can't just attack them with another weapon whilst they are unable to fight back

\ No newline at end of file diff --git a/datum/status_effect/exercised.html b/datum/status_effect/exercised.html new file mode 100644 index 0000000000000..89c975808caa1 --- /dev/null +++ b/datum/status_effect/exercised.html @@ -0,0 +1 @@ +/datum/status_effect/exercised - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

exercised

Vars

supplementary_reagents_bonusHaving any of these reagents in your system extends the duration

Var Details

supplementary_reagents_bonus

Having any of these reagents in your system extends the duration

\ No newline at end of file diff --git a/datum/status_effect/eye_blur.html b/datum/status_effect/eye_blur.html new file mode 100644 index 0000000000000..e844a83414114 --- /dev/null +++ b/datum/status_effect/eye_blur.html @@ -0,0 +1,3 @@ +/datum/status_effect/eye_blur - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

eye_blur

Applies a blur to the user's screen, increasing in strength depending on duration remaining.

Procs

update_blurUpdates the blur of the owner of the status effect. +Also a signal proc for COMSIG_MOB_LOGIN, to trigger then when the mob gets a client.

Proc Details

update_blur

Updates the blur of the owner of the status effect. +Also a signal proc for COMSIG_MOB_LOGIN, to trigger then when the mob gets a client.

\ No newline at end of file diff --git a/datum/status_effect/fire_blasted.html b/datum/status_effect/fire_blasted.html new file mode 100644 index 0000000000000..801f400010a75 --- /dev/null +++ b/datum/status_effect/fire_blasted.html @@ -0,0 +1,2 @@ +/datum/status_effect/fire_blasted - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fire_blasted

Status effect applied when someone's hit by the fire blast.

+

Applies an overlay, then causes a damage over time (or heal over time)

Vars

animate_durationHow long does the animation of the appearance last? If 0 or negative, we make no overlay
tick_damageHow much fire / stam to do per tick (stamina damage is doubled this)

Var Details

animate_duration

How long does the animation of the appearance last? If 0 or negative, we make no overlay

tick_damage

How much fire / stam to do per tick (stamina damage is doubled this)

\ No newline at end of file diff --git a/datum/status_effect/fire_handler.html b/datum/status_effect/fire_handler.html new file mode 100644 index 0000000000000..3a0a811d56af2 --- /dev/null +++ b/datum/status_effect/fire_handler.html @@ -0,0 +1,5 @@ +/datum/status_effect/fire_handler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fire_handler

Vars

enemy_typesWhat status effect types do we remove uppon being applied. These are just deleted without any deduction from our or their stacks when forced.
merge_typesWhat status effect types do we merge into if they exist. Ignored when forced.
override_typesWhat status effect types do we override if they exist. These are simply deleted when forced.
stack_limitMaximum of stacks that we could possibly get
stack_modifierFor how much firestacks does one our stack count
stacksCurrent amount of stacks we have

Procs

cache_stacksRefresher for mob's fire_stacks
check_basic_mob_immunityChecks if the applicable basic mob is immune to the status effect we're trying to apply. Returns TRUE if it is, FALSE if it isn't.
set_stacksSetter and adjuster procs for firestacks

Var Details

enemy_types

What status effect types do we remove uppon being applied. These are just deleted without any deduction from our or their stacks when forced.

merge_types

What status effect types do we merge into if they exist. Ignored when forced.

override_types

What status effect types do we override if they exist. These are simply deleted when forced.

stack_limit

Maximum of stacks that we could possibly get

stack_modifier

For how much firestacks does one our stack count

stacks

Current amount of stacks we have

Proc Details

cache_stacks

Refresher for mob's fire_stacks

check_basic_mob_immunity

Checks if the applicable basic mob is immune to the status effect we're trying to apply. Returns TRUE if it is, FALSE if it isn't.

set_stacks

Setter and adjuster procs for firestacks

+

Arguments:

+
\ No newline at end of file diff --git a/datum/status_effect/fire_handler/fire_stacks.html b/datum/status_effect/fire_handler/fire_stacks.html new file mode 100644 index 0000000000000..549d17208de35 --- /dev/null +++ b/datum/status_effect/fire_handler/fire_stacks.html @@ -0,0 +1,14 @@ +/datum/status_effect/fire_handler/fire_stacks - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fire_stacks

Vars

moblightReference to the mob light emitter itself
moblight_typeType of mob light emitter we use when on fire
on_fireIf we're on fire

Procs

deal_damageProc that handles damage dealing and all special effects
extinguishHandles mob extinguishing, should be the only way to set on_fire to FALSE
harm_humanUsed to deal damage to humans and count their protection.
igniteHandles mob ignition, should be the only way to set on_fire to TRUE

Var Details

moblight

Reference to the mob light emitter itself

moblight_type

Type of mob light emitter we use when on fire

on_fire

If we're on fire

Proc Details

deal_damage

Proc that handles damage dealing and all special effects

+

Arguments:

+

extinguish

Handles mob extinguishing, should be the only way to set on_fire to FALSE

harm_human

Used to deal damage to humans and count their protection.

+

Arguments:

+

ignite

Handles mob ignition, should be the only way to set on_fire to TRUE

+

Arguments:

+
\ No newline at end of file diff --git a/datum/status_effect/fire_handler/wet_stacks.html b/datum/status_effect/fire_handler/wet_stacks.html new file mode 100644 index 0000000000000..a5b125d6a3a22 --- /dev/null +++ b/datum/status_effect/fire_handler/wet_stacks.html @@ -0,0 +1 @@ +/datum/status_effect/fire_handler/wet_stacks - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

wet_stacks

Procs

tickA simple overwrite which calls parent to listen to wet_stacks

Proc Details

tick

A simple overwrite which calls parent to listen to wet_stacks

\ No newline at end of file diff --git a/datum/status_effect/fire_ring.html b/datum/status_effect/fire_ring.html new file mode 100644 index 0000000000000..6cbfdc3bcb0ad --- /dev/null +++ b/datum/status_effect/fire_ring.html @@ -0,0 +1 @@ +/datum/status_effect/fire_ring - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fire_ring

Simple status effect for adding a ring of fire around a mob.

Vars

ring_radiusThe radius of the ring around us.

Var Details

ring_radius

The radius of the ring around us.

\ No newline at end of file diff --git a/datum/status_effect/food.html b/datum/status_effect/food.html new file mode 100644 index 0000000000000..15f9d18f17faa --- /dev/null +++ b/datum/status_effect/food.html @@ -0,0 +1 @@ +/datum/status_effect/food - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

food

Buffs given by eating hand-crafted food. The duration scales with consumable reagents purity.

Vars

strengthBuff power equal to food complexity (1 to 5)

Var Details

strength

Buff power equal to food complexity (1 to 5)

\ No newline at end of file diff --git a/datum/status_effect/food/quality_healing.html b/datum/status_effect/food/quality_healing.html new file mode 100644 index 0000000000000..90848df356645 --- /dev/null +++ b/datum/status_effect/food/quality_healing.html @@ -0,0 +1 @@ +/datum/status_effect/food/quality_healing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

quality_healing

Vars

qheal_strengthUsed to determine how good our heal is

Var Details

qheal_strength

Used to determine how good our heal is

\ No newline at end of file diff --git a/datum/status_effect/frenzy.html b/datum/status_effect/frenzy.html new file mode 100644 index 0000000000000..7c5e752a2310d --- /dev/null +++ b/datum/status_effect/frenzy.html @@ -0,0 +1 @@ +/datum/status_effect/frenzy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

frenzy

Vars

bloodsuckerdatumThe stored Bloodsucker antag datum
was_tooluserBoolean on whether they were an AdvancedToolUser, to give the trait back upon exiting.

Var Details

bloodsuckerdatum

The stored Bloodsucker antag datum

was_tooluser

Boolean on whether they were an AdvancedToolUser, to give the trait back upon exiting.

\ No newline at end of file diff --git a/datum/status_effect/genetic_damage.html b/datum/status_effect/genetic_damage.html new file mode 100644 index 0000000000000..7709644c7f95f --- /dev/null +++ b/datum/status_effect/genetic_damage.html @@ -0,0 +1 @@ +/datum/status_effect/genetic_damage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

genetic_damage

Vars

minimum_before_tox_damageThe amount of genetic damage a mob can sustain before taking toxin damage
remove_per_secondThe amount of genetic damage to remove per second
total_damageThe total genetic damage accumulated on the mob
toxin_damage_per_secondThe amount of toxin damage to deal per second, if over the minimum before taking damage

Var Details

minimum_before_tox_damage

The amount of genetic damage a mob can sustain before taking toxin damage

remove_per_second

The amount of genetic damage to remove per second

total_damage

The total genetic damage accumulated on the mob

toxin_damage_per_second

The amount of toxin damage to deal per second, if over the minimum before taking damage

\ No newline at end of file diff --git a/datum/status_effect/ghoul.html b/datum/status_effect/ghoul.html new file mode 100644 index 0000000000000..15f2ac0a51dd2 --- /dev/null +++ b/datum/status_effect/ghoul.html @@ -0,0 +1 @@ +/datum/status_effect/ghoul - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ghoul

Vars

master_mindReference to the master of the ghoul's mind
new_max_healthThe new max health value set for the ghoul, if supplied
on_lost_callbackAn optional callback invoked when a goul is unghouled (on_removed)
on_made_callbackAn optional callback invoked when a ghoul is made (on_apply)
stamina_mod_appliedWhat, if any, stamina modifier we applied to the ghoul mob

Procs

remove_ghoul_statusRemoves the ghoul effects from our owner and returns them to normal.

Var Details

master_mind

Reference to the master of the ghoul's mind

new_max_health

The new max health value set for the ghoul, if supplied

on_lost_callback

An optional callback invoked when a goul is unghouled (on_removed)

on_made_callback

An optional callback invoked when a ghoul is made (on_apply)

stamina_mod_applied

What, if any, stamina modifier we applied to the ghoul mob

Proc Details

remove_ghoul_status

Removes the ghoul effects from our owner and returns them to normal.

\ No newline at end of file diff --git a/datum/status_effect/goldeneye_pinpointer.html b/datum/status_effect/goldeneye_pinpointer.html new file mode 100644 index 0000000000000..e86ccbd989dd4 --- /dev/null +++ b/datum/status_effect/goldeneye_pinpointer.html @@ -0,0 +1 @@ +/datum/status_effect/goldeneye_pinpointer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

goldeneye_pinpointer

Vars

linked_antagonistOur linked antagonist datum, if any.
range_farThe range until you're considered 'too far away'
range_midThe range until you're considered 'close'
targetThe target we are pointing towards, refreshes every tick.

Procs

point_to_targetShow the distance and direction of a scanned target

Var Details

linked_antagonist

Our linked antagonist datum, if any.

range_far

The range until you're considered 'too far away'

range_mid

The range until you're considered 'close'

target

The target we are pointing towards, refreshes every tick.

Proc Details

point_to_target

Show the distance and direction of a scanned target

\ No newline at end of file diff --git a/datum/status_effect/golem.html b/datum/status_effect/golem.html new file mode 100644 index 0000000000000..3ec94a21ab871 --- /dev/null +++ b/datum/status_effect/golem.html @@ -0,0 +1 @@ +/datum/status_effect/golem - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

golem

Abstract holder for golem status effects, you should never have more than one of these active

Vars

active_overlaysOverlays we have applied to our mob
alert_descTooltip to display when hovering over the alert
alert_iconIcon used to represent the alert
alert_icon_stateIcon state to display to represent the alert
applied_fluffText to display on buff application
mineral_nameName of the mineral we ate to get this
overlay_state_prefixIcon state prefix for overlay to display on golem limbs

Var Details

active_overlays

Overlays we have applied to our mob

alert_desc

Tooltip to display when hovering over the alert

alert_icon

Icon used to represent the alert

alert_icon_state

Icon state to display to represent the alert

applied_fluff

Text to display on buff application

mineral_name

Name of the mineral we ate to get this

overlay_state_prefix

Icon state prefix for overlay to display on golem limbs

\ No newline at end of file diff --git a/datum/status_effect/golem/bananium.html b/datum/status_effect/golem/bananium.html new file mode 100644 index 0000000000000..ed6b43b0423f8 --- /dev/null +++ b/datum/status_effect/golem/bananium.html @@ -0,0 +1 @@ +/datum/status_effect/golem/bananium - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bananium

Makes you slippery

Vars

slipperinessThe slipperiness component which we have applied

Procs

try_slipOnly slip people when we're down on the ground

Var Details

slipperiness

The slipperiness component which we have applied

Proc Details

try_slip

Only slip people when we're down on the ground

\ No newline at end of file diff --git a/datum/status_effect/golem/diamond.html b/datum/status_effect/golem/diamond.html new file mode 100644 index 0000000000000..17baa02ce0eef --- /dev/null +++ b/datum/status_effect/golem/diamond.html @@ -0,0 +1 @@ +/datum/status_effect/golem/diamond - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

diamond

Makes you hard to see

Vars

alpha_per_tickAlpha to remove per second while stood still
modified_armsList of arms we have updated
moving_alphaAlpha to apply while moving

Procs

on_arm_destroyedRemove references to deleted arms
on_revealReset alpha to starting value
reset_arm_fluffMake our arm do whatever it originally did
set_arm_fluffMake our arm do slashing effects

Var Details

alpha_per_tick

Alpha to remove per second while stood still

modified_arms

List of arms we have updated

moving_alpha

Alpha to apply while moving

Proc Details

on_arm_destroyed

Remove references to deleted arms

on_reveal

Reset alpha to starting value

reset_arm_fluff

Make our arm do whatever it originally did

set_arm_fluff

Make our arm do slashing effects

\ No newline at end of file diff --git a/datum/status_effect/golem/plasma.html b/datum/status_effect/golem/plasma.html new file mode 100644 index 0000000000000..2b32dddeb7d2b --- /dev/null +++ b/datum/status_effect/golem/plasma.html @@ -0,0 +1 @@ +/datum/status_effect/golem/plasma - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

plasma

Heat immunity, turns heat damage into local power

Procs

on_burnedWhen we take fire damage (or... technically also cold damage, we don't differentiate), zap a nearby APC
zap_effectShoot a beam at the target atom

Proc Details

on_burned

When we take fire damage (or... technically also cold damage, we don't differentiate), zap a nearby APC

zap_effect

Shoot a beam at the target atom

\ No newline at end of file diff --git a/datum/status_effect/golem/titanium.html b/datum/status_effect/golem/titanium.html new file mode 100644 index 0000000000000..7f51f755b0c23 --- /dev/null +++ b/datum/status_effect/golem/titanium.html @@ -0,0 +1 @@ +/datum/status_effect/golem/titanium - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

titanium

Makes you tougher

Vars

brute_modifierAmount to reduce brute damage by
damage_increaseHow much extra damage do we do with our fists?
mining_bonusDeal this much extra damage to mining mobs, most of which take 0 unarmed damage usually
modified_armsList of arms we have updated

Procs

buff_armMake the targeted arm big and strong
debuff_armMake the targeted arm small and weak
on_arm_destroyedRemove references to deleted arms
on_punchedGive mining mobs an extra slap

Var Details

brute_modifier

Amount to reduce brute damage by

damage_increase

How much extra damage do we do with our fists?

mining_bonus

Deal this much extra damage to mining mobs, most of which take 0 unarmed damage usually

modified_arms

List of arms we have updated

Proc Details

buff_arm

Make the targeted arm big and strong

debuff_arm

Make the targeted arm small and weak

on_arm_destroyed

Remove references to deleted arms

on_punched

Give mining mobs an extra slap

\ No newline at end of file diff --git a/datum/status_effect/grouped.html b/datum/status_effect/grouped.html new file mode 100644 index 0000000000000..3f9bf700740d1 --- /dev/null +++ b/datum/status_effect/grouped.html @@ -0,0 +1 @@ +/datum/status_effect/grouped - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

grouped

Status effect from multiple sources, when all sources are removed, so is the effect

Vars

sourcesA list of all sources applying this status effect. Sources are a list of keys

Var Details

sources

A list of all sources applying this status effect. Sources are a list of keys

\ No newline at end of file diff --git a/datum/status_effect/grouped/cursed.html b/datum/status_effect/grouped/cursed.html new file mode 100644 index 0000000000000..3d24a086c6756 --- /dev/null +++ b/datum/status_effect/grouped/cursed.html @@ -0,0 +1,2 @@ +/datum/status_effect/grouped/cursed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cursed

Status effect that gives the target miscellanous debuffs while throwing a status alert and causing them to smoke from the damage they're incurring. +Purposebuilt for cursed slot machines.

Vars

branded_handThe hand we are branded to.
curse_countThe amount of times we have been "applied" to the target.
damage_chanceRaw probability we have to deal damage this tick.
max_curse_countThe max number of curses a target can incur with this status effect.
monologuingAre we currently in the process of sending a monologue?
smoke_pathThe cached path of the particles we're using to smoke

Procs

check_cursesChecks the number of curses we have and returns information back to the slot machine. max_curse_amount is set by the slot machine itself.
clear_cursesCleans ourselves up and removes our curses. Meant to be done in a "positive" way, when the curse is broken. Directly use qdel otherwise.
handle_after_effectsMakes a nice lorey message about the curse level we're at. I think it's nice
on_deathIf our owner dies without getting gibbed (as in of other causes), stop smoking because we've "expended all the life energy".
on_stat_changedIf our owner's stat changes, rapidly surge the damage chance.
update_curse_countHandles the debuffs of this status effect and incrementing the number of curses we have.

Var Details

branded_hand

The hand we are branded to.

curse_count

The amount of times we have been "applied" to the target.

damage_chance

Raw probability we have to deal damage this tick.

max_curse_count

The max number of curses a target can incur with this status effect.

monologuing

Are we currently in the process of sending a monologue?

smoke_path

The cached path of the particles we're using to smoke

Proc Details

check_curses

Checks the number of curses we have and returns information back to the slot machine. max_curse_amount is set by the slot machine itself.

clear_curses

Cleans ourselves up and removes our curses. Meant to be done in a "positive" way, when the curse is broken. Directly use qdel otherwise.

handle_after_effects

Makes a nice lorey message about the curse level we're at. I think it's nice

on_death

If our owner dies without getting gibbed (as in of other causes), stop smoking because we've "expended all the life energy".

on_stat_changed

If our owner's stat changes, rapidly surge the damage chance.

update_curse_count

Handles the debuffs of this status effect and incrementing the number of curses we have.

\ No newline at end of file diff --git a/datum/status_effect/grouped/nearsighted.html b/datum/status_effect/grouped/nearsighted.html new file mode 100644 index 0000000000000..49407e96b7d8e --- /dev/null +++ b/datum/status_effect/grouped/nearsighted.html @@ -0,0 +1 @@ +/datum/status_effect/grouped/nearsighted - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

nearsighted

Nearsighted

Vars

overlay_severityHow severe is our nearsightedness right now
update_signalsStatic list of signals that, when received, we force an update to our nearsighted overlay

Procs

set_nearsighted_severitySets the severity of our nearsighted overlay
should_be_nearsightedChecks if we should be nearsighted currently, or if we should clear the overlay
update_nearsighted_overlayUpdates our nearsightd overlay, either removing it if we have the trait or adding it if we don't
update_nearsightednessSignal proc for when we gain or lose TRAIT_NEARSIGHTED_CORRECTED - (temporarily) disable the overlay if we're correcting it

Var Details

overlay_severity

How severe is our nearsightedness right now

update_signals

Static list of signals that, when received, we force an update to our nearsighted overlay

Proc Details

set_nearsighted_severity

Sets the severity of our nearsighted overlay

should_be_nearsighted

Checks if we should be nearsighted currently, or if we should clear the overlay

update_nearsighted_overlay

Updates our nearsightd overlay, either removing it if we have the trait or adding it if we don't

update_nearsightedness

Signal proc for when we gain or lose TRAIT_NEARSIGHTED_CORRECTED - (temporarily) disable the overlay if we're correcting it

\ No newline at end of file diff --git a/datum/status_effect/grouped/screwy_hud.html b/datum/status_effect/grouped/screwy_hud.html new file mode 100644 index 0000000000000..567b48266bf9f --- /dev/null +++ b/datum/status_effect/grouped/screwy_hud.html @@ -0,0 +1,5 @@ +/datum/status_effect/grouped/screwy_hud - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

screwy_hud

Screwy hud status.

+

Applied to carbons, it will make their health bar look like it's incorrect - +in crit (SCREWYHUD_CRIT), dead (SCREWYHUD_DEAD), or fully healthy (SCREWYHUD_HEALTHY)

+

Grouped status effect, so multiple sources can add a screwyhud without +accidentally removing another source's hud.

Vars

override_iconThe icon we override our owner's healths.icon_state with
priorityThe priority of this screwyhud over other screwyhuds.

Var Details

override_icon

The icon we override our owner's healths.icon_state with

priority

The priority of this screwyhud over other screwyhuds.

\ No newline at end of file diff --git a/datum/status_effect/guardian_scout_mode.html b/datum/status_effect/guardian_scout_mode.html new file mode 100644 index 0000000000000..41704fc55b7ba --- /dev/null +++ b/datum/status_effect/guardian_scout_mode.html @@ -0,0 +1 @@ +/datum/status_effect/guardian_scout_mode - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

guardian_scout_mode

Become an incorporeal scout

Procs

on_clickWhile this is active we can't click anything
on_manifestRestore incorporeal move when we become corporeal, yes I know that suonds silly
on_ranged_attackWe can't do any ranged attacks while in scout mode.
on_recallStop having incorporeal move when we recall so that we can't move

Proc Details

on_click

While this is active we can't click anything

on_manifest

Restore incorporeal move when we become corporeal, yes I know that suonds silly

on_ranged_attack

We can't do any ranged attacks while in scout mode.

on_recall

Stop having incorporeal move when we recall so that we can't move

\ No newline at end of file diff --git a/datum/status_effect/guardian_stealth.html b/datum/status_effect/guardian_stealth.html new file mode 100644 index 0000000000000..784588092298b --- /dev/null +++ b/datum/status_effect/guardian_stealth.html @@ -0,0 +1 @@ +/datum/status_effect/guardian_stealth - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

guardian_stealth

Status effect which makes us sneakier and do bonus damage

Vars

damage_bonusDamage added in stealth mode.
stealth_wound_bonusOur wound bonus when in stealth mode. Allows you to actually cause wounds, unlike normal.

Procs

forced_exitForcibly exit the status effect
on_health_changedIf we take damage, exit the status effect

Var Details

damage_bonus

Damage added in stealth mode.

stealth_wound_bonus

Our wound bonus when in stealth mode. Allows you to actually cause wounds, unlike normal.

Proc Details

forced_exit

Forcibly exit the status effect

on_health_changed

If we take damage, exit the status effect

\ No newline at end of file diff --git a/datum/status_effect/hallucination.html b/datum/status_effect/hallucination.html new file mode 100644 index 0000000000000..4d5a0379124e4 --- /dev/null +++ b/datum/status_effect/hallucination.html @@ -0,0 +1,6 @@ +/datum/status_effect/hallucination - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hallucination

Hallucination status effect. How most hallucinations end up happening. +Hallucinations are drawn from the global weighted list, random_hallucination_weighted_list

Vars

barred_biotypesBiotypes which cannot hallucinate.
hallucination_cooldownThe cooldown for when the next hallucination can occur
lower_tick_intervalThe lower range of when the next hallucination will trigger after one occurs.
upper_tick_intervalThe upper range of when the next hallucination will trigger after one occurs.

Procs

on_bump_airlockSignal proc for COMSIG_CARBON_BUMPED_AIRLOCK_OPEN, bumping an airlock can cause a fake zap. +This only happens on airlock bump, future TODO - make this chance roll for attack_hand opening airlocks too
on_check_bodypartSignal proc for COMSIG_CARBON_CHECKING_BODYPART, +checking bodyparts while hallucinating can cause them to appear more damaged than they are
on_health_scanSignal proc for COMSIG_LIVING_HEALTHSCAN. Show we're hallucinating to (advanced) scanners.

Var Details

barred_biotypes

Biotypes which cannot hallucinate.

hallucination_cooldown

The cooldown for when the next hallucination can occur

lower_tick_interval

The lower range of when the next hallucination will trigger after one occurs.

upper_tick_interval

The upper range of when the next hallucination will trigger after one occurs.

Proc Details

on_bump_airlock

Signal proc for COMSIG_CARBON_BUMPED_AIRLOCK_OPEN, bumping an airlock can cause a fake zap. +This only happens on airlock bump, future TODO - make this chance roll for attack_hand opening airlocks too

on_check_bodypart

Signal proc for COMSIG_CARBON_CHECKING_BODYPART, +checking bodyparts while hallucinating can cause them to appear more damaged than they are

on_health_scan

Signal proc for COMSIG_LIVING_HEALTHSCAN. Show we're hallucinating to (advanced) scanners.

\ No newline at end of file diff --git a/datum/status_effect/hallucination/sanity.html b/datum/status_effect/hallucination/sanity.html new file mode 100644 index 0000000000000..6cd1b264dc2f4 --- /dev/null +++ b/datum/status_effect/hallucination/sanity.html @@ -0,0 +1 @@ +/datum/status_effect/hallucination/sanity - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

sanity

Procs

update_intervalsUpdates our upper and lower intervals based on our owner's current sanity level.

Proc Details

update_intervals

Updates our upper and lower intervals based on our owner's current sanity level.

\ No newline at end of file diff --git a/datum/status_effect/heretic_curse.html b/datum/status_effect/heretic_curse.html new file mode 100644 index 0000000000000..38dafcbdc18b6 --- /dev/null +++ b/datum/status_effect/heretic_curse.html @@ -0,0 +1 @@ +/datum/status_effect/heretic_curse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

heretic_curse

A curse given to people to disencourage them from retaliating against someone who sacrificed them

Vars

consequence_cooldownDon't experience bad things too often
the_curserWho cursed us?

Procs

experience_the_consequencesExperience something you may not enjoy which may also significantly shorten your lifespan
on_curser_attackedIf we attack the guy who cursed us, that's no good
on_curser_destroyedIf the heretic that cursed us is destroyed this thing is useless now
on_owner_attackedIf we are attacked by the guy who cursed us, that's also no good

Var Details

consequence_cooldown

Don't experience bad things too often

the_curser

Who cursed us?

Proc Details

experience_the_consequences

Experience something you may not enjoy which may also significantly shorten your lifespan

on_curser_attacked

If we attack the guy who cursed us, that's no good

on_curser_destroyed

If the heretic that cursed us is destroyed this thing is useless now

on_owner_attacked

If we are attacked by the guy who cursed us, that's also no good

\ No newline at end of file diff --git a/datum/status_effect/ice_block_talisman.html b/datum/status_effect/ice_block_talisman.html new file mode 100644 index 0000000000000..2705366fba5b7 --- /dev/null +++ b/datum/status_effect/ice_block_talisman.html @@ -0,0 +1 @@ +/datum/status_effect/ice_block_talisman - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ice_block_talisman

Vars

cubeStored icon overlay for the hit mob, removed when effect is removed

Procs

owner_movedBlocks movement from the status effect owner

Var Details

cube

Stored icon overlay for the hit mob, removed when effect is removed

Proc Details

owner_moved

Blocks movement from the status effect owner

\ No newline at end of file diff --git a/datum/status_effect/incapacitating/sleeping.html b/datum/status_effect/incapacitating/sleeping.html new file mode 100644 index 0000000000000..2f2030f56543b --- /dev/null +++ b/datum/status_effect/incapacitating/sleeping.html @@ -0,0 +1 @@ +/datum/status_effect/incapacitating/sleeping - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

sleeping

Procs

on_owner_insomniacIf the mob is sleeping and gain the TRAIT_SLEEPIMMUNE we remove the TRAIT_KNOCKEDOUT and stop the tick() from happening
on_owner_sleepyIf the mob has the TRAIT_SLEEPIMMUNE but somehow looses it we make him sleep and restart the tick()

Proc Details

on_owner_insomniac

If the mob is sleeping and gain the TRAIT_SLEEPIMMUNE we remove the TRAIT_KNOCKEDOUT and stop the tick() from happening

on_owner_sleepy

If the mob has the TRAIT_SLEEPIMMUNE but somehow looses it we make him sleep and restart the tick()

\ No newline at end of file diff --git a/datum/status_effect/incapacitating/stamcrit.html b/datum/status_effect/incapacitating/stamcrit.html new file mode 100644 index 0000000000000..59b396f7fd107 --- /dev/null +++ b/datum/status_effect/incapacitating/stamcrit.html @@ -0,0 +1 @@ +/datum/status_effect/incapacitating/stamcrit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stamcrit

Vars

diminishing_return_counterA counter that tracks every time we've taken enough damage to trigger diminishing returns
warn_cdCooldown between displaying warning messages that we hit diminishing returns

Var Details

diminishing_return_counter

A counter that tracks every time we've taken enough damage to trigger diminishing returns

warn_cd

Cooldown between displaying warning messages that we hit diminishing returns

\ No newline at end of file diff --git a/datum/status_effect/incapacitating/stun/goliath_tentacled.html b/datum/status_effect/incapacitating/stun/goliath_tentacled.html new file mode 100644 index 0000000000000..5ca77ce1dd072 --- /dev/null +++ b/datum/status_effect/incapacitating/stun/goliath_tentacled.html @@ -0,0 +1 @@ +/datum/status_effect/incapacitating/stun/goliath_tentacled - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

goliath_tentacled

Goliath tentacle stun with special removal conditions

Vars

tentacleThe tentacle that is tenderly holding us close

Procs

on_helpedSome kind soul has rescued us
on_tentacle_leftSomething happened to our associated tentacle
releaseSomething happened to make the tentacle let go

Var Details

tentacle

The tentacle that is tenderly holding us close

Proc Details

on_helped

Some kind soul has rescued us

on_tentacle_left

Something happened to our associated tentacle

release

Something happened to make the tentacle let go

\ No newline at end of file diff --git a/datum/status_effect/inebriated.html b/datum/status_effect/inebriated.html new file mode 100644 index 0000000000000..374512ff25803 --- /dev/null +++ b/datum/status_effect/inebriated.html @@ -0,0 +1,2 @@ +/datum/status_effect/inebriated - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

inebriated

The drunk status effect. +Slowly decreases in drunk_value over time, causing effects based on that value.

Vars

drunk_valueThe level of drunkness we are currently at.

Procs

on_tick_effectsSide effects done by this level of drunkness on tick.
set_drunk_valueSets the drunk value to set_to, deleting if the value drops to 0 or lower

Var Details

drunk_value

The level of drunkness we are currently at.

Proc Details

on_tick_effects

Side effects done by this level of drunkness on tick.

set_drunk_value

Sets the drunk value to set_to, deleting if the value drops to 0 or lower

\ No newline at end of file diff --git a/datum/status_effect/inebriated/drunk.html b/datum/status_effect/inebriated/drunk.html new file mode 100644 index 0000000000000..861cab61611f5 --- /dev/null +++ b/datum/status_effect/inebriated/drunk.html @@ -0,0 +1,2 @@ +/datum/status_effect/inebriated/drunk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

drunk

Stage 2 of being drunk, applied at drunk values between 6 and onward. +Has all the main side effects of being drunk, scaling up as they get more drunk.

Procs

clear_effectsClears any side effects we set due to being drunk.

Proc Details

clear_effects

Clears any side effects we set due to being drunk.

\ No newline at end of file diff --git a/datum/status_effect/inflated.html b/datum/status_effect/inflated.html new file mode 100644 index 0000000000000..883209fd123e2 --- /dev/null +++ b/datum/status_effect/inflated.html @@ -0,0 +1 @@ +/datum/status_effect/inflated - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

inflated

Status effect from the Expand action, makes you big and round and strong.

Procs

check_deathRemove status effect if we die

Proc Details

check_death

Remove status effect if we die

\ No newline at end of file diff --git a/datum/status_effect/interdiction.html b/datum/status_effect/interdiction.html new file mode 100644 index 0000000000000..d58939278e159 --- /dev/null +++ b/datum/status_effect/interdiction.html @@ -0,0 +1 @@ +/datum/status_effect/interdiction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

interdiction

Vars

running_toggledIf we kicked the owner out of running mode

Var Details

running_toggled

If we kicked the owner out of running mode

\ No newline at end of file diff --git a/datum/status_effect/jitter.html b/datum/status_effect/jitter.html new file mode 100644 index 0000000000000..1d3a8badd0077 --- /dev/null +++ b/datum/status_effect/jitter.html @@ -0,0 +1 @@ +/datum/status_effect/jitter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

jitter

Procs

remove_jitterRemoves all of our jitteriness on a signal

Proc Details

remove_jitter

Removes all of our jitteriness on a signal

\ No newline at end of file diff --git a/datum/status_effect/limited_buff.html b/datum/status_effect/limited_buff.html new file mode 100644 index 0000000000000..1807e9f7c49e2 --- /dev/null +++ b/datum/status_effect/limited_buff.html @@ -0,0 +1 @@ +/datum/status_effect/limited_buff - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

limited_buff

These effects reapply their on_apply() effect when refreshed while stacks < max_stacks.

Vars

max_stacksHow many stacks we can have maximum
stacksHow many stacks we currently have

Procs

maxed_outCalled whenever the buff is refreshed when there are more stacks than max_stacks.

Var Details

max_stacks

How many stacks we can have maximum

stacks

How many stacks we currently have

Proc Details

maxed_out

Called whenever the buff is refreshed when there are more stacks than max_stacks.

\ No newline at end of file diff --git a/datum/status_effect/limited_buff/health_buff.html b/datum/status_effect/limited_buff/health_buff.html new file mode 100644 index 0000000000000..e1c886f84f265 --- /dev/null +++ b/datum/status_effect/limited_buff/health_buff.html @@ -0,0 +1 @@ +/datum/status_effect/limited_buff/health_buff - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

health_buff

this buff provides a max health buff and a heal.

Vars

fragile_mob_health_buffIf the mob has a low max health, we instead use this flat value to increase max health and calculate any heal.
healing_modifierThis modifier multiplies the healing by the effect.
health_buff_modifierThis var determines how large the health buff will be. health_buff_modifier * historic_max_health * stacks
historic_max_healthThis var stores the mobs max health when the buff was first applied, and determines the size of future buffs.database.database.

Var Details

fragile_mob_health_buff

If the mob has a low max health, we instead use this flat value to increase max health and calculate any heal.

healing_modifier

This modifier multiplies the healing by the effect.

health_buff_modifier

This var determines how large the health buff will be. health_buff_modifier * historic_max_health * stacks

historic_max_health

This var stores the mobs max health when the buff was first applied, and determines the size of future buffs.database.database.

\ No newline at end of file diff --git a/datum/status_effect/limp.html b/datum/status_effect/limp.html new file mode 100644 index 0000000000000..1506b8975a75b --- /dev/null +++ b/datum/status_effect/limp.html @@ -0,0 +1 @@ +/datum/status_effect/limp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

limp

Vars

leftThe left leg of the limping person
limp_chance_leftThe chance we limp with the left leg each step it takes
limp_chance_rightThe chance we limp with the right leg each step it takes
next_legWhich leg we're limping with next
rightThe right leg of the limping person
slowdown_leftHow many deciseconds we limp for on the left leg
slowdown_rightHow many deciseconds we limp for on the right leg

Var Details

left

The left leg of the limping person

limp_chance_left

The chance we limp with the left leg each step it takes

limp_chance_right

The chance we limp with the right leg each step it takes

next_leg

Which leg we're limping with next

right

The right leg of the limping person

slowdown_left

How many deciseconds we limp for on the left leg

slowdown_right

How many deciseconds we limp for on the right leg

\ No newline at end of file diff --git a/datum/status_effect/lobster_rush.html b/datum/status_effect/lobster_rush.html new file mode 100644 index 0000000000000..db8a4b7f00308 --- /dev/null +++ b/datum/status_effect/lobster_rush.html @@ -0,0 +1,3 @@ +/datum/status_effect/lobster_rush - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

lobster_rush

Status effect: Makes you run really fast and ignore speed penalties for a short duration. +If you run into a wall indoors you will fall over and lose the buff. +If you run into someone you both fall over.

Procs

on_moveSpawn an afterimage every other step, because every step was too many

Proc Details

on_move

Spawn an afterimage every other step, because every step was too many

\ No newline at end of file diff --git a/datum/status_effect/mayhem.html b/datum/status_effect/mayhem.html new file mode 100644 index 0000000000000..980edef815d9c --- /dev/null +++ b/datum/status_effect/mayhem.html @@ -0,0 +1 @@ +/datum/status_effect/mayhem - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mayhem

Vars

chainsawThe chainsaw spawned by the status effect

Var Details

chainsaw

The chainsaw spawned by the status effect

\ No newline at end of file diff --git a/datum/status_effect/midas_blight.html b/datum/status_effect/midas_blight.html new file mode 100644 index 0000000000000..de9a10a70129b --- /dev/null +++ b/datum/status_effect/midas_blight.html @@ -0,0 +1 @@ +/datum/status_effect/midas_blight - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

midas_blight

Vars

goldscaleHow fast the gold in a person's system scales.
midas_stateThe visual overlay state, helps tell both you and enemies how much gold is in your system

Var Details

goldscale

How fast the gold in a person's system scales.

midas_state

The visual overlay state, helps tell both you and enemies how much gold is in your system

\ No newline at end of file diff --git a/datum/status_effect/moon_converted.html b/datum/status_effect/moon_converted.html new file mode 100644 index 0000000000000..57f3bc47504a1 --- /dev/null +++ b/datum/status_effect/moon_converted.html @@ -0,0 +1 @@ +/datum/status_effect/moon_converted - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

moon_converted

Used by moon heretics to make people mad

Vars

damage_sustainedused to track damage
effect_iconicon file for the overlay
effect_icon_stateicon state for the overlay
moon_insanity_overlayoverlay used to indicate that someone is marked

Var Details

damage_sustained

used to track damage

effect_icon

icon file for the overlay

effect_icon_state

icon state for the overlay

moon_insanity_overlay

overlay used to indicate that someone is marked

\ No newline at end of file diff --git a/datum/status_effect/next_shove_stuns.html b/datum/status_effect/next_shove_stuns.html new file mode 100644 index 0000000000000..846622343a0ad --- /dev/null +++ b/datum/status_effect/next_shove_stuns.html @@ -0,0 +1,3 @@ +/datum/status_effect/next_shove_stuns - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

next_shove_stuns

Status effect specifically for instances where someone is vulnerable to being stunned when shoved.

Vars

vulnverability_overlayOur visual cue for the vulnerable state this status effect puts us in.

Procs

clear_stun_vulnverabilityIf our owner is either stunned, paralzyed or immobilized, we remove the status effect. +This is both an anti-chainstun measure and a sanity check.
clear_stun_vulnverability_overlayClears our overlay where needed.

Var Details

vulnverability_overlay

Our visual cue for the vulnerable state this status effect puts us in.

Proc Details

clear_stun_vulnverability

If our owner is either stunned, paralzyed or immobilized, we remove the status effect. +This is both an anti-chainstun measure and a sanity check.

clear_stun_vulnverability_overlay

Clears our overlay where needed.

\ No newline at end of file diff --git a/datum/status_effect/offering.html b/datum/status_effect/offering.html new file mode 100644 index 0000000000000..e28fca343ceed --- /dev/null +++ b/datum/status_effect/offering.html @@ -0,0 +1,10 @@ +/datum/status_effect/offering - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

offering

Vars

give_alert_typeThe type of alert given to people when offered, in case you need to override some behavior (like for high-fives)
offered_itemThe actual item being offered
possible_takersThe people who were offered this item at the start

Procs

additional_taker_checkAdditional checks added to CanReach() and IS_DEAD_OR_INCAP() in is_taker_elligible(). +Should be what you override instead of is_taker_elligible(). By default, checks if the +taker can hold items.
check_owner_in_rangeThe offerer moved, see if anyone is out of range now
check_taker_in_rangeOne of our possible takers moved, see if they left us hanging
dropped_itemWe lost the item, give it up
is_taker_elligibleIs our taker valid as a target for the offering? Meant to be used when registering +takers in on_creation(). You should override additional_taker_check() instead of this.
register_candidateHook up the specified carbon mob to be offered the item in question, give them the alert and signals and all
remove_candidateRemove the alert and signals for the specified carbon mob. Automatically removes the status effect when we lost the last taker

Var Details

give_alert_type

The type of alert given to people when offered, in case you need to override some behavior (like for high-fives)

offered_item

The actual item being offered

possible_takers

The people who were offered this item at the start

Proc Details

additional_taker_check

Additional checks added to CanReach() and IS_DEAD_OR_INCAP() in is_taker_elligible(). +Should be what you override instead of is_taker_elligible(). By default, checks if the +taker can hold items.

+

Returns TRUE if the taker is valid as a target for the offering based on these +additional checks.

check_owner_in_range

The offerer moved, see if anyone is out of range now

check_taker_in_range

One of our possible takers moved, see if they left us hanging

dropped_item

We lost the item, give it up

is_taker_elligible

Is our taker valid as a target for the offering? Meant to be used when registering +takers in on_creation(). You should override additional_taker_check() instead of this.

+

Returns TRUE if the taker is valid as a target for the offering.

register_candidate

Hook up the specified carbon mob to be offered the item in question, give them the alert and signals and all

remove_candidate

Remove the alert and signals for the specified carbon mob. Automatically removes the status effect when we lost the last taker

\ No newline at end of file diff --git a/datum/status_effect/offering/no_item_received/needs_resting.html b/datum/status_effect/offering/no_item_received/needs_resting.html new file mode 100644 index 0000000000000..ca6a58e6b29df --- /dev/null +++ b/datum/status_effect/offering/no_item_received/needs_resting.html @@ -0,0 +1,4 @@ +/datum/status_effect/offering/no_item_received/needs_resting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

needs_resting

This status effect is meant only to be used for offerings that require the target to +be resting (like when you're trying to give them a hand to help them up). +Also doesn't require them to have their hands free (since you're not giving them +anything).

Procs

check_candidate_restingSimple signal handler that ensures that, should a candidate now be standing up, the offer won't be standing for them anymore!
check_owner_standingSimple signal handler that ensures that, if the owner stops standing, the offer no longer stands either!

Proc Details

check_candidate_resting

Simple signal handler that ensures that, should a candidate now be standing up, the offer won't be standing for them anymore!

check_owner_standing

Simple signal handler that ensures that, if the owner stops standing, the offer no longer stands either!

\ No newline at end of file diff --git a/datum/status_effect/organ_set_bonus.html b/datum/status_effect/organ_set_bonus.html new file mode 100644 index 0000000000000..966f35030fc3c --- /dev/null +++ b/datum/status_effect/organ_set_bonus.html @@ -0,0 +1 @@ +/datum/status_effect/organ_set_bonus - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

organ_set_bonus

Vars

bonus_activeif the bonus is active
bonus_traitsA list of traits added to the mob upon bonus activation, can be of any length.
organshow many organs the carbon with this has in the set
organs_neededhow many organs in the set you need to enable the bonus
required_biotypeRequired mob bio-type. Also checks DNA validity it's set to MOB_ORGANIC.

Var Details

bonus_active

if the bonus is active

bonus_traits

A list of traits added to the mob upon bonus activation, can be of any length.

organs

how many organs the carbon with this has in the set

organs_needed

how many organs in the set you need to enable the bonus

required_biotype

Required mob bio-type. Also checks DNA validity it's set to MOB_ORGANIC.

\ No newline at end of file diff --git a/datum/status_effect/organ_set_bonus/roach.html b/datum/status_effect/organ_set_bonus/roach.html new file mode 100644 index 0000000000000..2964dba88738c --- /dev/null +++ b/datum/status_effect/organ_set_bonus/roach.html @@ -0,0 +1 @@ +/datum/status_effect/organ_set_bonus/roach - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

roach

Vars

given_armorArmor type attached to the owner's physiology
old_biotypesStoring biotypes pre-organ bonus applied so we don't remove bug from mobs which should have it.

Var Details

given_armor

Armor type attached to the owner's physiology

old_biotypes

Storing biotypes pre-organ bonus applied so we don't remove bug from mobs which should have it.

\ No newline at end of file diff --git a/datum/status_effect/overwatch.html b/datum/status_effect/overwatch.html new file mode 100644 index 0000000000000..e95e5f62755e2 --- /dev/null +++ b/datum/status_effect/overwatch.html @@ -0,0 +1 @@ +/datum/status_effect/overwatch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

overwatch

Status effect which tracks whether our overwatched mob moves or acts

Vars

forbidden_actionsSignals which trigger a hostile response
linkVisual effect to make the status obvious
overwatch_triggeredDid the overwatch ever trigger during our run?
projectile_soundNoise to make when we shoot beam
projectile_typeType of projectile to fire
watch_rangeDistance at which we break off the ability
watcherWhich watcher is watching?

Procs

on_participant_diedCan't overwatch you if I don't exist
opportunity_attackUh oh, you did something within my threat radius, now we're going to shoot you
unregister_watcherClean up our association with the caster of this ability.

Var Details

forbidden_actions

Signals which trigger a hostile response

Visual effect to make the status obvious

overwatch_triggered

Did the overwatch ever trigger during our run?

projectile_sound

Noise to make when we shoot beam

projectile_type

Type of projectile to fire

watch_range

Distance at which we break off the ability

watcher

Which watcher is watching?

Proc Details

on_participant_died

Can't overwatch you if I don't exist

opportunity_attack

Uh oh, you did something within my threat radius, now we're going to shoot you

unregister_watcher

Clean up our association with the caster of this ability.

\ No newline at end of file diff --git a/datum/status_effect/protective_blades.html b/datum/status_effect/protective_blades.html new file mode 100644 index 0000000000000..a2d08082fd7b5 --- /dev/null +++ b/datum/status_effect/protective_blades.html @@ -0,0 +1,4 @@ +/datum/status_effect/protective_blades - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

protective_blades

Summons multiple foating knives around the owner. +Each knife will block an attack straight up.

Vars

blade_orbit_radiusThe radius of the blade's orbit.
blade_typeWhat blade type to create
bladesA list of blade effects orbiting / protecting our owner
delete_on_blades_goneIf TRUE, we self-delete our status effect after all the blades are deleted.
max_num_bladesThe number of blades we summon up to.
time_between_initial_bladesThe time between spawning blades.

Procs

create_bladeCreates a floating blade, adds it to our blade list, and makes it orbit our owner.
on_shield_reactionSignal proc for COMSIG_LIVING_CHECK_BLOCK. +If we have a blade in our list, consume it and block the incoming attack (shield it)
remove_bladeRemove deleted blades from our blades list properly.

Var Details

blade_orbit_radius

The radius of the blade's orbit.

blade_type

What blade type to create

blades

A list of blade effects orbiting / protecting our owner

delete_on_blades_gone

If TRUE, we self-delete our status effect after all the blades are deleted.

max_num_blades

The number of blades we summon up to.

time_between_initial_blades

The time between spawning blades.

Proc Details

create_blade

Creates a floating blade, adds it to our blade list, and makes it orbit our owner.

on_shield_reaction

Signal proc for COMSIG_LIVING_CHECK_BLOCK. +If we have a blade in our list, consume it and block the incoming attack (shield it)

remove_blade

Remove deleted blades from our blades list properly.

\ No newline at end of file diff --git a/datum/status_effect/protective_blades/recharging.html b/datum/status_effect/protective_blades/recharging.html new file mode 100644 index 0000000000000..4a5bf78701ccd --- /dev/null +++ b/datum/status_effect/protective_blades/recharging.html @@ -0,0 +1,2 @@ +/datum/status_effect/protective_blades/recharging - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

recharging

A subtype that doesn't self-delete / disappear when all blades are gone +It instead regenerates over time back to the max after blades are consumed

Vars

blade_recharge_timeThe amount of time it takes for a blade to recharge

Var Details

blade_recharge_time

The amount of time it takes for a blade to recharge

\ No newline at end of file diff --git a/datum/status_effect/protector_shield.html b/datum/status_effect/protector_shield.html new file mode 100644 index 0000000000000..98b0b3abdc86c --- /dev/null +++ b/datum/status_effect/protector_shield.html @@ -0,0 +1 @@ +/datum/status_effect/protector_shield - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

protector_shield

Makes the guardian even more durable, but slower

Vars

damage_penaltyDamage removed in protecting mode.
overlay_colourColour for our various overlays.
shield_overlayOverlay for our protection shield.
shielded_damageDamage coefficients when shielded

Procs

on_health_changedFlash an animation when someone tries to hurt us
on_update_overlaysShow an extra overlay when we're in shield mode

Var Details

damage_penalty

Damage removed in protecting mode.

overlay_colour

Colour for our various overlays.

shield_overlay

Overlay for our protection shield.

shielded_damage

Damage coefficients when shielded

Proc Details

on_health_changed

Flash an animation when someone tries to hurt us

on_update_overlays

Show an extra overlay when we're in shield mode

\ No newline at end of file diff --git a/datum/status_effect/psychic_projection.html b/datum/status_effect/psychic_projection.html new file mode 100644 index 0000000000000..bbc76507f5cf5 --- /dev/null +++ b/datum/status_effect/psychic_projection.html @@ -0,0 +1 @@ +/datum/status_effect/psychic_projection - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

psychic_projection

Status effect that adds a weird view to its owner and causes them to rapidly shoot a firearm in their general direction.

Vars

firing_delayNeeds to reach times_dry_fired for the next dry fire to happen.
times_dry_firedTimes the target has dry fired a weapon.

Var Details

firing_delay

Needs to reach times_dry_fired for the next dry fire to happen.

times_dry_fired

Times the target has dry fired a weapon.

\ No newline at end of file diff --git a/datum/status_effect/shadow_cloak.html b/datum/status_effect/shadow_cloak.html new file mode 100644 index 0000000000000..4053dd6120c1c --- /dev/null +++ b/datum/status_effect/shadow_cloak.html @@ -0,0 +1,2 @@ +/datum/status_effect/shadow_cloak - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shadow_cloak

Shadow cloak effect. Conceals the owner in a cloud of purple smoke, making them unidentifiable. +Also comes with some other buffs and debuffs - faster movespeed, slower actionspeed, etc.

Vars

cloak_imageThe image we place over the owner
damage_before_revealHow much damage we can be hit with before it starts rolling reveal chances
damage_sustainedHow much damage we've been hit with

Procs

on_body_position_changeSignal proc for COMSIG_LIVING_SET_BODY_POSITION, handles rotating the effect when we're downed
on_damagedSignal proc for COMSIG_MOB_APPLY_DAMAGE, being damaged past a threshold will roll a chance to stop the effect
on_dir_changeSignal proc for COMSIG_ATOM_DIR_CHANGE, handles turning the effect as we turn
on_moveSignal proc for COMSIG_MOVABLE_MOVED, leaves a cool looking trail behind us as we walk
on_stat_changeSignal proc for COMSIG_MOB_STATCHANGE, going past soft crit will stop the effect

Var Details

cloak_image

The image we place over the owner

damage_before_reveal

How much damage we can be hit with before it starts rolling reveal chances

damage_sustained

How much damage we've been hit with

Proc Details

on_body_position_change

Signal proc for COMSIG_LIVING_SET_BODY_POSITION, handles rotating the effect when we're downed

on_damaged

Signal proc for COMSIG_MOB_APPLY_DAMAGE, being damaged past a threshold will roll a chance to stop the effect

on_dir_change

Signal proc for COMSIG_ATOM_DIR_CHANGE, handles turning the effect as we turn

on_move

Signal proc for COMSIG_MOVABLE_MOVED, leaves a cool looking trail behind us as we walk

on_stat_change

Signal proc for COMSIG_MOB_STATCHANGE, going past soft crit will stop the effect

\ No newline at end of file diff --git a/datum/status_effect/shadow_regeneration.html b/datum/status_effect/shadow_regeneration.html new file mode 100644 index 0000000000000..29a6179bf920c --- /dev/null +++ b/datum/status_effect/shadow_regeneration.html @@ -0,0 +1 @@ +/datum/status_effect/shadow_regeneration - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

shadow_regeneration

Heal in darkness and potentially trigger other effects, persists for a short duration after leaving

Procs

heal_ownerRegenerate health whenever this status effect is applied or reapplied

Proc Details

heal_owner

Regenerate health whenever this status effect is applied or reapplied

\ No newline at end of file diff --git a/datum/status_effect/shapechange_mob.html b/datum/status_effect/shapechange_mob.html new file mode 100644 index 0000000000000..0bd6be2afcf78 --- /dev/null +++ b/datum/status_effect/shapechange_mob.html @@ -0,0 +1,11 @@ +/datum/status_effect/shapechange_mob - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shapechange_mob

Vars

already_restoredWhether we're currently undoing the change
caster_mobThe caster's mob. Who has transformed into us +This reference is handled in [/proc/restore_caster], which is always called if we delete

Procs

after_unchangeEffects done after the casting mob has reverted to their human form.
on_caster_deathSignal proc for COMSIG_LIVING_DEATH from our caster. +If our internal caster is killed, kill our owner, too (which causes the above signal). +This should very rarely end up being called but you never know
on_caster_deletedSignal proc for COMSIG_QDELETING from our caster, delete us / our owner if we get deleted
on_mob_transformedCalled when the transformed mob tries to change into a different kind of mob, we wouldn't handle this well so we'll just turn back
on_pre_type_changeCalled when we're turned into a different mob via the change_mob_type proc
on_pre_wabbajackCalled when we're shot by the Wabbajack but before we change into a different mob
on_shape_deathSignal proc for COMSIG_LIVING_DEATH from our owner. +If our owner mob is killed, we should revert back to normal.
restore_casterRestores the caster back to their human form. +if kill_caster_after is TRUE, the caster will have death() called on them after restoring.

Var Details

already_restored

Whether we're currently undoing the change

caster_mob

The caster's mob. Who has transformed into us +This reference is handled in [/proc/restore_caster], which is always called if we delete

Proc Details

after_unchange

Effects done after the casting mob has reverted to their human form.

on_caster_death

Signal proc for COMSIG_LIVING_DEATH from our caster. +If our internal caster is killed, kill our owner, too (which causes the above signal). +This should very rarely end up being called but you never know

on_caster_deleted

Signal proc for COMSIG_QDELETING from our caster, delete us / our owner if we get deleted

on_mob_transformed

Called when the transformed mob tries to change into a different kind of mob, we wouldn't handle this well so we'll just turn back

on_pre_type_change

Called when we're turned into a different mob via the change_mob_type proc

on_pre_wabbajack

Called when we're shot by the Wabbajack but before we change into a different mob

on_shape_death

Signal proc for COMSIG_LIVING_DEATH from our owner. +If our owner mob is killed, we should revert back to normal.

restore_caster

Restores the caster back to their human form. +if kill_caster_after is TRUE, the caster will have death() called on them after restoring.

\ No newline at end of file diff --git a/datum/status_effect/shapechange_mob/from_spell.html b/datum/status_effect/shapechange_mob/from_spell.html new file mode 100644 index 0000000000000..54f1d6f610af0 --- /dev/null +++ b/datum/status_effect/shapechange_mob/from_spell.html @@ -0,0 +1 @@ +/datum/status_effect/shapechange_mob/from_spell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

from_spell

Vars

source_weakrefThe shapechange spell that's caused our change

Var Details

source_weakref

The shapechange spell that's caused our change

\ No newline at end of file diff --git a/datum/status_effect/silenced.html b/datum/status_effect/silenced.html new file mode 100644 index 0000000000000..0e23a554caeea --- /dev/null +++ b/datum/status_effect/silenced.html @@ -0,0 +1 @@ +/datum/status_effect/silenced - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

silenced

Procs

clear_silenceSignal proc that clears any silence we have (self-deletes).

Proc Details

clear_silence

Signal proc that clears any silence we have (self-deletes).

\ No newline at end of file diff --git a/datum/status_effect/slime_food.html b/datum/status_effect/slime_food.html new file mode 100644 index 0000000000000..0e8e1089ad2cd --- /dev/null +++ b/datum/status_effect/slime_food.html @@ -0,0 +1 @@ +/datum/status_effect/slime_food - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

slime_food

Adds pheromones to a mob. If the target slime drains the mob to death, they might befriend the user

Procs

on_drainedHandles a slime completely draining someone
on_examineGaze upon the target
on_feeder_deletedHandles the source of the pheromones getting deleted, or the owner getting washed

Proc Details

on_drained

Handles a slime completely draining someone

on_examine

Gaze upon the target

on_feeder_deleted

Handles the source of the pheromones getting deleted, or the owner getting washed

\ No newline at end of file diff --git a/datum/status_effect/slime_leech.html b/datum/status_effect/slime_leech.html new file mode 100644 index 0000000000000..d5b8bc7bf3be5 --- /dev/null +++ b/datum/status_effect/slime_leech.html @@ -0,0 +1 @@ +/datum/status_effect/slime_leech - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

slime_leech

Procs

on_buckle_endIf the buckling ends

Proc Details

on_buckle_end

If the buckling ends

\ No newline at end of file diff --git a/datum/status_effect/slimed.html b/datum/status_effect/slimed.html new file mode 100644 index 0000000000000..b9de25650a5f8 --- /dev/null +++ b/datum/status_effect/slimed.html @@ -0,0 +1 @@ +/datum/status_effect/slimed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

slimed

Vars

rainbowChanges particle colors to rainbow, this overrides slime_color.
slime_colorSlime color, used for particles.
slime_stacksThe amount of slime stacks that were applied, reduced by showering yourself under water.

Var Details

rainbow

Changes particle colors to rainbow, this overrides slime_color.

slime_color

Slime color, used for particles.

slime_stacks

The amount of slime stacks that were applied, reduced by showering yourself under water.

\ No newline at end of file diff --git a/datum/status_effect/song/light.html b/datum/status_effect/song/light.html new file mode 100644 index 0000000000000..6f9e1715efe5c --- /dev/null +++ b/datum/status_effect/song/light.html @@ -0,0 +1 @@ +/datum/status_effect/song/light - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

light

Vars

mob_light_objlighting object that makes owner glow

Var Details

mob_light_obj

lighting object that makes owner glow

\ No newline at end of file diff --git a/datum/status_effect/space_regeneration.html b/datum/status_effect/space_regeneration.html new file mode 100644 index 0000000000000..ed25af87fbbec --- /dev/null +++ b/datum/status_effect/space_regeneration.html @@ -0,0 +1 @@ +/datum/status_effect/space_regeneration - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

space_regeneration

Regenerate in space

Procs

heal_ownerRegenerate health whenever this status effect is applied or reapplied

Proc Details

heal_owner

Regenerate health whenever this status effect is applied or reapplied

\ No newline at end of file diff --git a/datum/status_effect/spacer.html b/datum/status_effect/spacer.html new file mode 100644 index 0000000000000..7f8c24349aeed --- /dev/null +++ b/datum/status_effect/spacer.html @@ -0,0 +1,3 @@ +/datum/status_effect/spacer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spacer

Vars

nerfed_effects_because_planetaryEssentially, tracks whether this is a planetary map. +It'd be pretty miserable if you're playing a planetary map and getting the worse of all effects, so we handwave it a bit.

Var Details

nerfed_effects_because_planetary

Essentially, tracks whether this is a planetary map. +It'd be pretty miserable if you're playing a planetary map and getting the worse of all effects, so we handwave it a bit.

\ No newline at end of file diff --git a/datum/status_effect/spacer/gravity_sickness.html b/datum/status_effect/spacer/gravity_sickness.html new file mode 100644 index 0000000000000..cd6aa754f2f75 --- /dev/null +++ b/datum/status_effect/spacer/gravity_sickness.html @@ -0,0 +1 @@ +/datum/status_effect/spacer/gravity_sickness - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gravity_sickness

Vars

disgust_per_tickHow much disgust to gain per tick
max_disgustThe cap to which we can apply disgust
seconds_activeTracks how many seconds this has been active

Var Details

disgust_per_tick

How much disgust to gain per tick

max_disgust

The cap to which we can apply disgust

seconds_active

Tracks how many seconds this has been active

\ No newline at end of file diff --git a/datum/status_effect/spacer/gravity_wellness.html b/datum/status_effect/spacer/gravity_wellness.html new file mode 100644 index 0000000000000..cd4350ed433b2 --- /dev/null +++ b/datum/status_effect/spacer/gravity_wellness.html @@ -0,0 +1 @@ +/datum/status_effect/spacer/gravity_wellness - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gravity_wellness

Vars

disgust_healing_per_tickHow much disgust to heal per tick
seconds_in_nogravTracks how long we've been in no gravity
stamina_heal_per_tickHow much of stamina damage to heal per tick when we've been in nograv for a while
stun_heal_per_tickHow many seconds of stuns to reduce per tick when we've been in nograv for a while

Var Details

disgust_healing_per_tick

How much disgust to heal per tick

seconds_in_nograv

Tracks how long we've been in no gravity

stamina_heal_per_tick

How much of stamina damage to heal per tick when we've been in nograv for a while

stun_heal_per_tick

How many seconds of stuns to reduce per tick when we've been in nograv for a while

\ No newline at end of file diff --git a/datum/status_effect/speech.html b/datum/status_effect/speech.html new file mode 100644 index 0000000000000..cf35f47bb2a75 --- /dev/null +++ b/datum/status_effect/speech.html @@ -0,0 +1,6 @@ +/datum/status_effect/speech - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

speech

Vars

make_tts_message_originalIf TRUE, TTS will say the original message rather than what we changed it to
tts_filterIf set, this will be appended to the TTS filter of the message

Procs

apply_speechApplies the speech effects on the past character, changing +the original_char into the modified_char.
handle_messageSignal proc for COMSIG_LIVING_TREAT_MESSAGE

Var Details

make_tts_message_original

If TRUE, TTS will say the original message rather than what we changed it to

tts_filter

If set, this will be appended to the TTS filter of the message

Proc Details

apply_speech

Applies the speech effects on the past character, changing +the original_char into the modified_char.

+

Return the modified_char to be reapplied to the message.

handle_message

Signal proc for COMSIG_LIVING_TREAT_MESSAGE

+

Iterates over all of the characters in the passed message +and calls apply_speech() on each.

\ No newline at end of file diff --git a/datum/status_effect/speech/slurring.html b/datum/status_effect/speech/slurring.html new file mode 100644 index 0000000000000..4102f51753c2c --- /dev/null +++ b/datum/status_effect/speech/slurring.html @@ -0,0 +1 @@ +/datum/status_effect/speech/slurring - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

slurring

Vars

common_probThe chance that any given character in a message will be replaced with a common character
common_replacementsCommon replacements for characters - populated in on_creation
doubletext_probThe chance that any given character will be doubled, or even tripled
replacement_probThe chance that any given character will be entirely replaced with a new string / will have a string appended onto it
string_additionsStrings that are appended to a character - populated in on_creation
string_replacementsStrings that fully replace a character - populated in on_creation
text_modification_fileThe file we pull text modifications from
uncommon_probThe chance that any given character in a message will be replaced with an uncommon character
uncommon_replacementsUncommon replacements for characters - populated in on_creation

Var Details

common_prob

The chance that any given character in a message will be replaced with a common character

common_replacements

Common replacements for characters - populated in on_creation

doubletext_prob

The chance that any given character will be doubled, or even tripled

replacement_prob

The chance that any given character will be entirely replaced with a new string / will have a string appended onto it

string_additions

Strings that are appended to a character - populated in on_creation

string_replacements

Strings that fully replace a character - populated in on_creation

text_modification_file

The file we pull text modifications from

uncommon_prob

The chance that any given character in a message will be replaced with an uncommon character

uncommon_replacements

Uncommon replacements for characters - populated in on_creation

\ No newline at end of file diff --git a/datum/status_effect/speech/stutter.html b/datum/status_effect/speech/stutter.html new file mode 100644 index 0000000000000..9f76e6acb31c6 --- /dev/null +++ b/datum/status_effect/speech/stutter.html @@ -0,0 +1 @@ +/datum/status_effect/speech/stutter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stutter

Vars

four_char_chanceThe chance of a four character stutter
no_stutterRegex of characters we won't apply a stutter to
stutter_probThe probability of adding a stutter to any character
three_char_chanceThe chance of a three character stutter
two_char_chanceThe chance of a two character stutter

Var Details

four_char_chance

The chance of a four character stutter

no_stutter

Regex of characters we won't apply a stutter to

stutter_prob

The probability of adding a stutter to any character

three_char_chance

The chance of a three character stutter

two_char_chance

The chance of a two character stutter

\ No newline at end of file diff --git a/datum/status_effect/speech/stutter/derpspeech.html b/datum/status_effect/speech/stutter/derpspeech.html new file mode 100644 index 0000000000000..4eb7779eed267 --- /dev/null +++ b/datum/status_effect/speech/stutter/derpspeech.html @@ -0,0 +1 @@ +/datum/status_effect/speech/stutter/derpspeech - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

derpspeech

Vars

capitalize_probThe probability of making our message entirely uppercase + adding exclamations
message_stutter_probThe probability of adding a stutter to the entire message, if we're not already stuttering

Var Details

capitalize_prob

The probability of making our message entirely uppercase + adding exclamations

message_stutter_prob

The probability of adding a stutter to the entire message, if we're not already stuttering

\ No newline at end of file diff --git a/datum/status_effect/stabilized.html b/datum/status_effect/stabilized.html new file mode 100644 index 0000000000000..4da136878ca24 --- /dev/null +++ b/datum/status_effect/stabilized.html @@ -0,0 +1 @@ +/datum/status_effect/stabilized - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stabilized

STABILIZED EXTRACTS

Vars

colourColour of the extract providing the buff
linked_extractItem which provides this buff

Var Details

colour

Colour of the extract providing the buff

linked_extract

Item which provides this buff

\ No newline at end of file diff --git a/datum/status_effect/stabilized/black.html b/datum/status_effect/stabilized/black.html new file mode 100644 index 0000000000000..7baa2d053ff25 --- /dev/null +++ b/datum/status_effect/stabilized/black.html @@ -0,0 +1 @@ +/datum/status_effect/stabilized/black - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

black

Vars

draining_refWeakref to the mob we're currently draining every tick.
heal_amountHow much we heal per tick (also how much we damage per tick times DRAIN_DAMAGE_MULTIPLIER).

Procs

on_grabWhenever we grab someone by the neck, set "draining" to a weakref of them.

Var Details

draining_ref

Weakref to the mob we're currently draining every tick.

heal_amount

How much we heal per tick (also how much we damage per tick times DRAIN_DAMAGE_MULTIPLIER).

Proc Details

on_grab

Whenever we grab someone by the neck, set "draining" to a weakref of them.

\ No newline at end of file diff --git a/datum/status_effect/stabilized/pink.html b/datum/status_effect/stabilized/pink.html new file mode 100644 index 0000000000000..e7a4bee0da4bb --- /dev/null +++ b/datum/status_effect/stabilized/pink.html @@ -0,0 +1 @@ +/datum/status_effect/stabilized/pink - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pink

Vars

faction_nameName of our faction
mobsList of weakrefs to mobs we have pacified

Procs

update_nearby_mobsPacifies mobs you can see and unpacifies mobs you no longer can

Var Details

faction_name

Name of our faction

mobs

List of weakrefs to mobs we have pacified

Proc Details

update_nearby_mobs

Pacifies mobs you can see and unpacifies mobs you no longer can

\ No newline at end of file diff --git a/datum/status_effect/stabilized/purple.html b/datum/status_effect/stabilized/purple.html new file mode 100644 index 0000000000000..5012c7bcbb58a --- /dev/null +++ b/datum/status_effect/stabilized/purple.html @@ -0,0 +1 @@ +/datum/status_effect/stabilized/purple - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

purple

Vars

healed_last_tickWhether we healed from our last tick

Var Details

healed_last_tick

Whether we healed from our last tick

\ No newline at end of file diff --git a/datum/status_effect/stacking.html b/datum/status_effect/stacking.html new file mode 100644 index 0000000000000..195a35953830d --- /dev/null +++ b/datum/status_effect/stacking.html @@ -0,0 +1,13 @@ +/datum/status_effect/stacking - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

stacking

Status effects that can stack.

Vars

consumed_on_thresholdIf TRUE, the status effect is consumed / removed when stack_threshold is met
delay_before_decay(first stack will be removed at this time plus tick_interval)
max_stacksThe maximum number of stacks that can be applied
overlay_fileIcon file for overlays applied when the status effect is applied
overlay_stateIcon state for overlays applied when the status effect is applied +States in the file must be given a name, followed by a number which corresponds to a number of stacks. +Put the state name without the number in these state vars
stack_decayHow many stacks are lost per tick (decay trigger)
stack_thresholdThe threshold for having special effects occur when a certain stack number is reached
stacksHow many stacks are currently accumulated. +Also, the default stacks number given on application.
status_overlayA reference to our overlay appearance
status_underlayA reference to our underlay appearance
threshold_crossedSet to true once the stack_threshold is crossed, and false once it falls back below
underlay_fileIcon file for underlays applied when the status effect is applied
underlay_stateIcon state for underlays applied when the status effect is applied +The number is concatenated onto the string based on the number of stacks to get the correct state name.

Procs

add_stacksAdd (or remove) [stacks_added] stacks to our current stack count.
can_gain_stacksWhether the owner can currently gain stacks or not +Return FALSE if the owner is not in a valid state, or TRUE otherwise
can_have_statusWhether the owner can have the status effect. +Return FALSE if the owner is not in a valid state (self-deletes the effect), or TRUE otherwise
fadeout_effectEffects that occur if the status is removed due to being under 1 remaining stack
on_threshold_crossCalled when the stack_threshold is crossed (stacks go over the threshold)
on_threshold_dropCalled when the stack_threshold is uncrossed / dropped (stacks go under the threshold after being over it)
stack_decay_effectRuns every time tick(), causes stacks to decay over time
stacks_consumed_effectEffects that occur if the status effect is removed due to the stack_threshold being crossed
threshold_cross_effectEffects that occur when the stack count crosses stack_threshold

Var Details

consumed_on_threshold

If TRUE, the status effect is consumed / removed when stack_threshold is met

delay_before_decay

(first stack will be removed at this time plus tick_interval)

max_stacks

The maximum number of stacks that can be applied

overlay_file

Icon file for overlays applied when the status effect is applied

overlay_state

Icon state for overlays applied when the status effect is applied +States in the file must be given a name, followed by a number which corresponds to a number of stacks. +Put the state name without the number in these state vars

stack_decay

How many stacks are lost per tick (decay trigger)

stack_threshold

The threshold for having special effects occur when a certain stack number is reached

stacks

How many stacks are currently accumulated. +Also, the default stacks number given on application.

status_overlay

A reference to our overlay appearance

status_underlay

A reference to our underlay appearance

threshold_crossed

Set to true once the stack_threshold is crossed, and false once it falls back below

underlay_file

Icon file for underlays applied when the status effect is applied

underlay_state

Icon state for underlays applied when the status effect is applied +The number is concatenated onto the string based on the number of stacks to get the correct state name.

Proc Details

add_stacks

Add (or remove) [stacks_added] stacks to our current stack count.

can_gain_stacks

Whether the owner can currently gain stacks or not +Return FALSE if the owner is not in a valid state, or TRUE otherwise

can_have_status

Whether the owner can have the status effect. +Return FALSE if the owner is not in a valid state (self-deletes the effect), or TRUE otherwise

fadeout_effect

Effects that occur if the status is removed due to being under 1 remaining stack

on_threshold_cross

Called when the stack_threshold is crossed (stacks go over the threshold)

on_threshold_drop

Called when the stack_threshold is uncrossed / dropped (stacks go under the threshold after being over it)

stack_decay_effect

Runs every time tick(), causes stacks to decay over time

stacks_consumed_effect

Effects that occur if the status effect is removed due to the stack_threshold being crossed

threshold_cross_effect

Effects that occur when the stack count crosses stack_threshold

\ No newline at end of file diff --git a/datum/status_effect/stacking/brimdust_coating.html b/datum/status_effect/stacking/brimdust_coating.html new file mode 100644 index 0000000000000..1510369eb4389 --- /dev/null +++ b/datum/status_effect/stacking/brimdust_coating.html @@ -0,0 +1,3 @@ +/datum/status_effect/stacking/brimdust_coating - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

brimdust_coating

If you take brute damage with this buff, hurt and push everyone next to you. +If you catch fire and or on the space station, detonate all remaining stacks in a way which hurts you. +Washes off if you get wet.

Vars

blast_damageDamage to deal on explosion
delay_between_explosionsTime to wait between consuming stacks
dust_overlayOverlay effect added to mob when buff is present
explosion_cooldownCooldown between explosions
pressure_modifierDamage reduction when not in a mining pressure area

Procs

explodeHurts everything in a circle around you. Hurts less if in a pressurised environment.
on_cleanedWhen you are cleaned, wash off the buff
on_take_damageWhen you take brute damage, schedule an explosion

Var Details

blast_damage

Damage to deal on explosion

delay_between_explosions

Time to wait between consuming stacks

dust_overlay

Overlay effect added to mob when buff is present

explosion_cooldown

Cooldown between explosions

pressure_modifier

Damage reduction when not in a mining pressure area

Proc Details

explode

Hurts everything in a circle around you. Hurts less if in a pressurised environment.

on_cleaned

When you are cleaned, wash off the buff

on_take_damage

When you take brute damage, schedule an explosion

\ No newline at end of file diff --git a/datum/status_effect/staggered.html b/datum/status_effect/staggered.html new file mode 100644 index 0000000000000..72ddde7e4b999 --- /dev/null +++ b/datum/status_effect/staggered.html @@ -0,0 +1,3 @@ +/datum/status_effect/staggered - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

staggered

Staggered, Next Shove Stuns, No Side Kick +Status effects related to shoving effects and collisions due to shoving +Staggered can occur most often via shoving, but can also occur in other places too.

Procs

clear_staggeredSignal proc that self deletes our staggered effect

Proc Details

clear_staggered

Signal proc that self deletes our staggered effect

\ No newline at end of file diff --git a/datum/status_effect/star_mark.html b/datum/status_effect/star_mark.html new file mode 100644 index 0000000000000..394833db106a4 --- /dev/null +++ b/datum/status_effect/star_mark.html @@ -0,0 +1 @@ +/datum/status_effect/star_mark - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

star_mark

Vars

cosmic_overlayoverlay used to indicate that someone is marked
effect_iconicon file for the overlay
effect_icon_stateicon state for the overlay
spell_casterStorage for the spell caster

Procs

update_owner_overlayUpdates the overlay of the owner

Var Details

cosmic_overlay

overlay used to indicate that someone is marked

effect_icon

icon file for the overlay

effect_icon_state

icon state for the overlay

spell_caster

Storage for the spell caster

Proc Details

update_owner_overlay

Updates the overlay of the owner

\ No newline at end of file diff --git a/datum/status_effect/static_vision.html b/datum/status_effect/static_vision.html new file mode 100644 index 0000000000000..82725dd215875 --- /dev/null +++ b/datum/status_effect/static_vision.html @@ -0,0 +1 @@ +/datum/status_effect/static_vision - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

static_vision

Procs

remove_static_visionHandles clearing on death

Proc Details

remove_static_vision

Handles clearing on death

\ No newline at end of file diff --git a/datum/status_effect/strandling.html b/datum/status_effect/strandling.html new file mode 100644 index 0000000000000..226f2f4633c07 --- /dev/null +++ b/datum/status_effect/strandling.html @@ -0,0 +1,3 @@ +/datum/status_effect/strandling - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

strandling

Vars

time_to_removeHow long it takes to remove the status effect via [proc/try_remove_effect]

Procs

on_breatheSignal proc for COMSIG_CARBON_PRE_BREATHE, causes losebreath whenever we're trying to breathe
on_cutSignal proc for COMSIG_ATOM_TOOL_ACT with [TOOL_WIRECUTTER], allowing wirecutters to remove the effect (from others / themself)
on_self_checkSignal proc for COMSIG_CARBON_PRE_MISC_HELP, allowing someone to remove the effect by hand
try_remove_effectAttempts a do_after to remove the effect and stop the strangling.

Var Details

time_to_remove

How long it takes to remove the status effect via [proc/try_remove_effect]

Proc Details

on_breathe

Signal proc for COMSIG_CARBON_PRE_BREATHE, causes losebreath whenever we're trying to breathe

on_cut

Signal proc for COMSIG_ATOM_TOOL_ACT with [TOOL_WIRECUTTER], allowing wirecutters to remove the effect (from others / themself)

on_self_check

Signal proc for COMSIG_CARBON_PRE_MISC_HELP, allowing someone to remove the effect by hand

try_remove_effect

Attempts a do_after to remove the effect and stop the strangling.

+

user - the mob attempting to remove the strangle. Can be the same as the owner. +tool - the tool the user's using to remove the strange. Can be null.

\ No newline at end of file diff --git a/datum/status_effect/stun_absorption.html b/datum/status_effect/stun_absorption.html new file mode 100644 index 0000000000000..0df94b44212f5 --- /dev/null +++ b/datum/status_effect/stun_absorption.html @@ -0,0 +1,21 @@ +/datum/status_effect/stun_absorption - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Stun absorption

A status effect effectively functions as TRAIT_STUNIMMUNE, but with additional effects tied to it, +such as showing a message on trigger / examine, or only blocking a limited amount of stuns.

+

Apply this via /mob/living/proc/add_stun_absorption. If you do not supply a duration, +remove this via /mob/living/proc/remove_stun_absorption.

Vars

delete_after_passing_maxIf TRUE, after passing the max seconds of stuns blocked, we will delete ourself. +If FALSE, we will instead recharge after some time.
examine_messageMessage shown on anyone examining the owner.
incapacitation_effect_signalsStatic list of all generic "stun received " signals that we will react to and block. +These all have the same arguments sent, so we can handle them all via the same signal handler. +Note though that we can register other signals to block effects outside of these if we want.
max_seconds_of_stuns_blockedThe max number of seconds we can block before self-deleting.
priorityThe priority of the stun absorption. Used so that multiple sources will not trigger at once. +This number is arbitrary but try to keep in sane / in line with other sources that exist.
recharge_timeIf [delete_after_passing_max] is FALSE, this is how long we will wait before recharging.
seconds_of_stuns_absorbedHow many total seconds of stuns that have been blocked.
self_messageThe message shown to the owner when the effect triggers.
shown_messageThe message shown via visible message to all nearby mobs when the effect triggers.
sourceThe string key sourcer of the stun absorption, used for logging

Procs

absorb_stunAbsorb a number of seconds of stuns. +If we hit the max amount of absorption, we will qdel ourself in this proc.
can_absorb_stunSimply checks if the owner of the effect is in a valid state to absorb stuns.
recharge_absorptionUsed in callbacks to "recharge" the effect after passing the max seconds of stuns blocked.
try_absorb_generic_effectSignal proc for COMSIG_LIVING_GENERIC_STUN_CHECK. (Note, this includes being stamcrit)
try_absorb_incapacitating_effectSignal proc for generic stun signals being sent, such as COMSIG_LIVING_STATUS_STUN or COMSIG_LIVING_STATUS_KNOCKDOWN.

Var Details

delete_after_passing_max

If TRUE, after passing the max seconds of stuns blocked, we will delete ourself. +If FALSE, we will instead recharge after some time.

examine_message

Message shown on anyone examining the owner.

incapacitation_effect_signals

Static list of all generic "stun received " signals that we will react to and block. +These all have the same arguments sent, so we can handle them all via the same signal handler. +Note though that we can register other signals to block effects outside of these if we want.

max_seconds_of_stuns_blocked

The max number of seconds we can block before self-deleting.

priority

The priority of the stun absorption. Used so that multiple sources will not trigger at once. +This number is arbitrary but try to keep in sane / in line with other sources that exist.

recharge_time

If [delete_after_passing_max] is FALSE, this is how long we will wait before recharging.

seconds_of_stuns_absorbed

How many total seconds of stuns that have been blocked.

self_message

The message shown to the owner when the effect triggers.

shown_message

The message shown via visible message to all nearby mobs when the effect triggers.

source

The string key sourcer of the stun absorption, used for logging

Proc Details

absorb_stun

Absorb a number of seconds of stuns. +If we hit the max amount of absorption, we will qdel ourself in this proc.

+ +

Returns TRUE on successful absorption, or FALSE otherwise.

can_absorb_stun

Simply checks if the owner of the effect is in a valid state to absorb stuns.

recharge_absorption

Used in callbacks to "recharge" the effect after passing the max seconds of stuns blocked.

try_absorb_generic_effect

Signal proc for COMSIG_LIVING_GENERIC_STUN_CHECK. (Note, this includes being stamcrit)

+

Whenever a generic stun check is done against us, we'll just try to block it with "0 second" stun. +This prevents spam us from showing feedback messages, and is for the generic "can be stunned" check.

try_absorb_incapacitating_effect

Signal proc for generic stun signals being sent, such as COMSIG_LIVING_STATUS_STUN or COMSIG_LIVING_STATUS_KNOCKDOWN.

+

When we get stunned, we will try to absorb a number of seconds from the stun, and return [COMPONENT_NO_STUN] if we succeed.

\ No newline at end of file diff --git a/datum/status_effect/teleport_flux.html b/datum/status_effect/teleport_flux.html new file mode 100644 index 0000000000000..675de53bfbce5 --- /dev/null +++ b/datum/status_effect/teleport_flux.html @@ -0,0 +1 @@ +/datum/status_effect/teleport_flux - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

teleport_flux

Status effect applied to users of a Teleport Rod, damages them when they teleport

Vars

tp_damageAmount of damage to deal when teleporting in flux
tp_damage_typeDamage type to deal when teleporting in flux

Var Details

tp_damage

Amount of damage to deal when teleporting in flux

tp_damage_type

Damage type to deal when teleporting in flux

\ No newline at end of file diff --git a/datum/status_effect/teleport_flux/perma.html b/datum/status_effect/teleport_flux/perma.html new file mode 100644 index 0000000000000..245e979a5fa86 --- /dev/null +++ b/datum/status_effect/teleport_flux/perma.html @@ -0,0 +1,5 @@ +/datum/status_effect/teleport_flux/perma - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

perma

Procs

delayed_removeUsed to fade out the effect and remove it after a delay +This cannot be interrupted, but if a new permaflux effect is applied, +this one will be deleted instantly anyways, making it moot

Proc Details

delayed_remove

Used to fade out the effect and remove it after a delay +This cannot be interrupted, but if a new permaflux effect is applied, +this one will be deleted instantly anyways, making it moot

\ No newline at end of file diff --git a/datum/status_effect/temporary_transformation.html b/datum/status_effect/temporary_transformation.html new file mode 100644 index 0000000000000..cac4cf941ebae --- /dev/null +++ b/datum/status_effect/temporary_transformation.html @@ -0,0 +1,2 @@ +/datum/status_effect/temporary_transformation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

temporary_transformation

Transforms a carbon mob into a new DNA for a set amount of time, +then turns them back to how they were before transformation.

Vars

new_dnaA reference to a COPY of the DNA that the mob will be transformed into.
old_dnaA reference to a COPY of the DNA of the mob prior to transformation.

Var Details

new_dna

A reference to a COPY of the DNA that the mob will be transformed into.

old_dna

A reference to a COPY of the DNA of the mob prior to transformation.

\ No newline at end of file diff --git a/datum/status_effect/temporary_transformation/trans_sting.html b/datum/status_effect/temporary_transformation/trans_sting.html new file mode 100644 index 0000000000000..28a54fe8581f2 --- /dev/null +++ b/datum/status_effect/temporary_transformation/trans_sting.html @@ -0,0 +1 @@ +/datum/status_effect/temporary_transformation/trans_sting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

trans_sting

Vars

time_before_pauseTracks the time left on the effect when the owner last died. Used to pause the effect.
update_on_signalsSignals which we react to to determine if we should pause the effect.

Var Details

time_before_pause

Tracks the time left on the effect when the owner last died. Used to pause the effect.

update_on_signals

Signals which we react to to determine if we should pause the effect.

\ No newline at end of file diff --git a/datum/status_effect/terrified.html b/datum/status_effect/terrified.html new file mode 100644 index 0000000000000..32350f26a1492 --- /dev/null +++ b/datum/status_effect/terrified.html @@ -0,0 +1,8 @@ +/datum/status_effect/terrified - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

terrified

Vars

terror_buildupA value that represents how much "terror" the victim has built up. Higher amounts cause more averse effects.

Procs

check_surrounding_darknessChecks the surroundings of our victim and returns TRUE if the user is surrounded by enough darkness
comfort_ownerIf we get a hug from a friend, we calm down! If we get a hug from a nightmare, we FREAK OUT.
freak_outAdds to the victim's terror buildup, makes them scream, and knocks them over for a moment.

Var Details

terror_buildup

A value that represents how much "terror" the victim has built up. Higher amounts cause more averse effects.

Proc Details

check_surrounding_darkness

Checks the surroundings of our victim and returns TRUE if the user is surrounded by enough darkness

+

Checks the surrounded tiles for light amount. If the user has more light nearby, return true. +Otherwise, return false

comfort_owner

If we get a hug from a friend, we calm down! If we get a hug from a nightmare, we FREAK OUT.

freak_out

Adds to the victim's terror buildup, makes them scream, and knocks them over for a moment.

+

Makes the victm scream and adds the passed amount to their buildup. +Knocks over the victim for a brief moment.

+
\ No newline at end of file diff --git a/datum/status_effect/tox_vomit.html b/datum/status_effect/tox_vomit.html new file mode 100644 index 0000000000000..fa11391d8b2c8 --- /dev/null +++ b/datum/status_effect/tox_vomit.html @@ -0,0 +1 @@ +/datum/status_effect/tox_vomit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tox_vomit

Simple status effect applied when a mob has high toxins and starts to vomit regularly

Vars

puke_counterHas a chance to count up every tick, until it reaches a threshold, which causes the mob to vomit and resets

Var Details

puke_counter

Has a chance to count up every tick, until it reaches a threshold, which causes the mob to vomit and resets

\ No newline at end of file diff --git a/datum/status_effect/unholy_determination.html b/datum/status_effect/unholy_determination.html new file mode 100644 index 0000000000000..ce9ba8627ac2c --- /dev/null +++ b/datum/status_effect/unholy_determination.html @@ -0,0 +1 @@ +/datum/status_effect/unholy_determination - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

unholy_determination

The buff given to people within the shadow realm to assist them in surviving.

Vars

heal_per_secondHow much to heal every second

Var Details

heal_per_second

How much to heal every second

\ No newline at end of file diff --git a/datum/status_effect/void_chill.html b/datum/status_effect/void_chill.html new file mode 100644 index 0000000000000..8f18500916690 --- /dev/null +++ b/datum/status_effect/void_chill.html @@ -0,0 +1,5 @@ +/datum/status_effect/void_chill - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

void_chill

Vars

stack_limitMaximum of stacks that we could possibly get
stacksCurrent amount of stacks we have
stacks_overlayicon for the overlay

Procs

set_stacksSetter and adjuster procs for stacks
update_movespeedUpdates the movespeed of owner based on the amount of stacks of the debuff
update_stacks_overlayUpdates the overlay that gets applied on our victim

Var Details

stack_limit

Maximum of stacks that we could possibly get

stacks

Current amount of stacks we have

stacks_overlay

icon for the overlay

Proc Details

set_stacks

Setter and adjuster procs for stacks

+

Arguments:

+

update_movespeed

Updates the movespeed of owner based on the amount of stacks of the debuff

update_stacks_overlay

Updates the overlay that gets applied on our victim

\ No newline at end of file diff --git a/datum/status_effect/void_prison.html b/datum/status_effect/void_prison.html new file mode 100644 index 0000000000000..13ff24b30300a --- /dev/null +++ b/datum/status_effect/void_prison.html @@ -0,0 +1 @@ +/datum/status_effect/void_prison - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

void_prison

Vars

stasis_overlayThe overlay that gets applied to whoever has this status active

Procs

clear_overlayMakes sure to clear the ref in case the voidball ever suddenly disappears
enter_prisonFreezes our prisoner in place

Var Details

stasis_overlay

The overlay that gets applied to whoever has this status active

Proc Details

clear_overlay

Makes sure to clear the ref in case the voidball ever suddenly disappears

enter_prison

Freezes our prisoner in place

\ No newline at end of file diff --git a/datum/status_effect/vulnerable_to_damage.html b/datum/status_effect/vulnerable_to_damage.html new file mode 100644 index 0000000000000..5c239e25cbf38 --- /dev/null +++ b/datum/status_effect/vulnerable_to_damage.html @@ -0,0 +1 @@ +/datum/status_effect/vulnerable_to_damage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vulnerable_to_damage

Vars

bleed_modifier_additionHow much extra bleeding the mob is given
damage_resistance_subtractionThe percentage damage modifier we give the mob we're applied to

Var Details

bleed_modifier_addition

How much extra bleeding the mob is given

damage_resistance_subtraction

The percentage damage modifier we give the mob we're applied to

\ No newline at end of file diff --git a/datum/status_effect/wound.html b/datum/status_effect/wound.html new file mode 100644 index 0000000000000..224bf809d68d6 --- /dev/null +++ b/datum/status_effect/wound.html @@ -0,0 +1 @@ +/datum/status_effect/wound - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

wound

Procs

check_removecheck if the wound getting removed is the wound we're tied to

Proc Details

check_remove

check if the wound getting removed is the wound we're tied to

\ No newline at end of file diff --git a/datum/stock_market_event.html b/datum/stock_market_event.html new file mode 100644 index 0000000000000..ab06b6f1a5aa9 --- /dev/null +++ b/datum/stock_market_event.html @@ -0,0 +1,3 @@ +/datum/stock_market_event - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

stock_market_event

Vars

circumstanceA list of strings selected from the event that's used to describe the event in the news.
company_nameA list of company names to use for the event and the circumstance.
matWhat material is affected by the event?
nameThe name of the event, used to describe it in the news.
price_maximumConstant to multiply the original material value by to get the new maximum value.
price_minimumConstant to multiply the original material value by to get the new minimum value, unless the material has a minimum override.
trend_durationWhen this event is triggered, for how long will its effects last?
trend_valueWhen this event is ongoing, what direction will the price trend in?

Procs

create_newsThis proc is called to create a news string for the event, which is passed along to SSstock_market to be appended to the automatic newscaster messages.
end_eventWhen a stock_market_event is ended, this proc is called to apply any final effects and clean up anything that needs to be cleaned up.
handleThis proc is called every tick while the event is ongoing by SSstock_market.
start_eventWhen a new stock_market_event is created, this proc is called to set up the event if there's anything that needs to happen upon it starting. +@param _mat The material that this event will affect.

Var Details

circumstance

A list of strings selected from the event that's used to describe the event in the news.

company_name

A list of company names to use for the event and the circumstance.

mat

What material is affected by the event?

name

The name of the event, used to describe it in the news.

price_maximum

Constant to multiply the original material value by to get the new maximum value.

price_minimum

Constant to multiply the original material value by to get the new minimum value, unless the material has a minimum override.

trend_duration

When this event is triggered, for how long will its effects last?

trend_value

When this event is ongoing, what direction will the price trend in?

Proc Details

create_news

This proc is called to create a news string for the event, which is passed along to SSstock_market to be appended to the automatic newscaster messages.

end_event

When a stock_market_event is ended, this proc is called to apply any final effects and clean up anything that needs to be cleaned up.

handle

This proc is called every tick while the event is ongoing by SSstock_market.

start_event

When a new stock_market_event is created, this proc is called to set up the event if there's anything that needs to happen upon it starting. +@param _mat The material that this event will affect.

\ No newline at end of file diff --git a/datum/stock_part.html b/datum/stock_part.html new file mode 100644 index 0000000000000..eeda3270bfc52 --- /dev/null +++ b/datum/stock_part.html @@ -0,0 +1,16 @@ +/datum/stock_part - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

stock_part

Represents the concept of a stock part. +One is created for every stock part type for every level. +Machines have these inside their component_parts. +For example, scanning modules use /datum/stock_part/scanning_module. +In machines, you can perform a loop through something like +for (var/datum/stock_part/scanning_module/part in component_parts)

Vars

physical_object_base_typeWhat's the base path that this stock part refers to? +For example, a tier 2 capacitor will have a physical_object_type +of /obj/item/capacitor/tier2, but a physical_object_base_type of +/obj/item/capacitor
physical_object_referenceA single instance of the physical object type. +Used for icons, should never be moved out.
physical_object_typeWhat object does this stock part refer to?
tierBetter parts have higher tiers

Procs

energy_ratingReturns the energy rating of the stock part given a level. +The higher this is, the more power machines with these parts will consume.
nameReturns the name of the physical object

Var Details

physical_object_base_type

What's the base path that this stock part refers to? +For example, a tier 2 capacitor will have a physical_object_type +of /obj/item/capacitor/tier2, but a physical_object_base_type of +/obj/item/capacitor

physical_object_reference

A single instance of the physical object type. +Used for icons, should never be moved out.

physical_object_type

What object does this stock part refer to?

tier

Better parts have higher tiers

Proc Details

energy_rating

Returns the energy rating of the stock part given a level. +The higher this is, the more power machines with these parts will consume.

name

Returns the name of the physical object

\ No newline at end of file diff --git a/datum/storage.html b/datum/storage.html new file mode 100644 index 0000000000000..cfd45649c7f74 --- /dev/null +++ b/datum/storage.html @@ -0,0 +1,118 @@ +/datum/storage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

storage

Datumized Storage +Eliminates the need for custom signals specifically for the storage component, and attaches a storage variable (atom_storage) to every atom. +The parent and real_location variables are both weakrefs, so they must be resolved before they can be used. +If you're looking to create custom storage type behaviors, check ../subtypes

Vars

allow_big_nestingWhether we allow storage objects of the same size inside.
allow_quick_emptyIf TRUE, we can use-in-hand the storage object to dump all of its contents.
allow_quick_gatherIf TRUE, we can click on items with the storage object to pick them up and insert them.
animatedDetermines whether we play a rustle animation when inserting/removing items.
attack_hand_interactWhether we open when attack_handed (clicked on with an empty hand).
can_holdTypecache of items that can be inserted into this storage. +By default, all item types can be inserted (assuming other conditions are met). +Do not set directly, use set_holdable
can_hold_descriptionAn additional description shown on double-examine. +Is autogenerated to the can_hold list if not set.
cant_holdTypecache of items that cannot be inserted into this storage. +By default, no item types are barred from insertion. +Do not set directly, use set_holdable
click_alt_openSwitch this off if you want to handle click_alt in the parent atom
collection_modeThe mode for collection when allow_quick_gather is enabled. See [code/__DEFINES/storage.dm]
display_contentsIf TRUE, shows the contents of the storage in open_storage
do_rustleDetermines whether we play a rustle sound when inserting/removing items.
exception_holdTypecache of items that can always be inserted into this storage, regardless of size.
exception_maxFor use with an exception typecache: +The maximum amount of items of the exception type that can be inserted into this storage.
insert_on_attackdo we insert items when clicked by them?
insert_prepositionThe preposition used when inserting items into this storage. +IE: You put things in a bag, but on a plate.
is_usingList of all the mobs currently viewing the contents of this storage.
lockedWhether the storage is currently locked (inaccessible). See [code/__DEFINES/storage.dm]
max_slotsThe maximum amount of items that can be inserted into this storage.
max_specific_storageThe largest weight class that can be inserted into this storage, inclusive.
max_total_storageDetermines the maximum amount of weight that can be inserted into this storage. +Weight is calculated by the sum of all of our content's weight classes.
modeswitch_actionRef to the item action that toggles collectmode.
numerical_stackingInstead of displaying multiple items of the same type, display them as numbered contents.
open_soundThe sound to play when we open/access the storage
parentA reference to the atom linked to this storage object +If the parent goes, we go. Will never be null.
quickdrawif TRUE, alt-click takes an item out instantly rather than opening up storage.
real_locationA reference to the atom where the items are actually stored. +By default this is parent. Should generally never be null. +Sometimes it's not the parent, that's what is called "dissassociated storage".
rustle_soundPath for the item's rustle sound.
screen_max_columnsMaximum amount of columns a storage object can have
screen_max_rowsMaximum amount of rows a storage object can have
screen_pixel_xX-pixel location of the boxes and close button
screen_pixel_yY-pixel location of the boxes and close button
screen_start_xWhere storage starts being rendered, x-screen_loc wise
screen_start_yWhere storage starts being rendered, y-screen_loc wise
silentIf TRUE, chat messages for inserting/removing items will not be shown.
silent_for_userSame as above but only for the user. +Useful to cut on chat spam without removing feedback for other players.
storage_interfacesAssociated list that keeps track of all storage UI datums per person.
supports_smart_equipIf we support smartly removing/inserting things from ourselves

Procs

add_holdableProc to add holdables list to an existing storage datum
animate_parentGives a spiffy animation to our parent to represent opening and closing.
attempt_insertAttempts to insert an item into the storage
attempt_removeAttempts to remove an item from the storage +Ignores removal do_afters. Only use this if you're doing it as part of a dumping action
can_insertChecks if an item is capable of being inserted into the storage.
can_see_contentsChecks who is currently capable of viewing our storage (and is.)
close_allClose the storage UI for everyone viewing us.
close_distanceSignal handler for whenever a mob walks away with us, close if they can't reach us.
collect_on_turfCollects every item of a type on a turf.
contents_changed_w_classSignal proc for COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED to drop items out of our storage if they're suddenly too heavy.
dump_content_atDumps all of our contents at a specific location.
generate_hold_descGenerates a description, primarily for clothing storage.
get_exception_countReturns a count of how many items held due to exception_hold we have
get_total_weightReturns a sum of all of our content's weight classes
handle_enterAutomatically ran on all object insertions: flag marking and view refreshing.
handle_exitAutomatically ran on all object removals: flag marking and view refreshing.
handle_mass_pickupInserts every item in a given list, with a progress bar
hide_contentsHide our storage from a mob.
item_insertion_feedbackProvides visual feedback in chat for an item insertion
item_interact_insertCalled directly from the attack chain if [insert_on_attack] is TRUE. +Handles inserting an item into the storage when clicked.
mass_emptySignal handler for remove_all()
mousedrop_receiveSince items inside storages ignore transparency for QOL reasons, we're tracking when things are dropped onto them instead of our UI elements
on_attackSignal handler for whenever we're attacked by a mob.
on_click_altAlt click on the storage item. Default: Open the storage.
on_emp_actSignal handler for emp_act to emp all contents
on_mousedrop_ontoSignal handler for whenever we drag the storage somewhere.
on_mousedropped_ontoSignal handler for whenever something gets mouse-dropped onto us.
on_preattackSignal handler for preattack from an object.
open_storageOpens the storage to the mob, showing them the contents to their UI.
open_storage_on_signalSignal handler to open up the storage when we receive a signal.
orient_storageUpdates views of all objects in storage and stretches UI to appropriate size
process_numerical_displayGenerates the numbers on an item in storage to show stacking.
put_in_hands_asyncAsync version of putting something into a mobs hand.
real_location_deletedSignal handler for when the real location is deleted.
refresh_viewsRefresh the views of everyone currently viewing the storage.
remove_allRemoves everything inside of our storage
remove_and_refreshResets an object, removes it from our screen, and refreshes the view.
remove_singleAllows a mob to attempt to remove a single item from the storage +Allows for hooks into things like removal delays
remove_typeRemoves only a specific type of item from our storage
reset_itemRefreshes and item to be put back into the real world, out of storage.
return_invRecursive proc to get absolutely EVERYTHING inside a storage item, including the contents of inner items.
set_parentSet the passed atom as the parent
set_real_locationSets where items are physically being stored in the case it shouldn't be on the parent.
show_contentsShow our storage to a mob.
toggle_collection_modeToggles the collectmode of our storage.
update_actionsUpdates the action button for toggling collectmode.

Var Details

allow_big_nesting

Whether we allow storage objects of the same size inside.

allow_quick_empty

If TRUE, we can use-in-hand the storage object to dump all of its contents.

allow_quick_gather

If TRUE, we can click on items with the storage object to pick them up and insert them.

animated

Determines whether we play a rustle animation when inserting/removing items.

attack_hand_interact

Whether we open when attack_handed (clicked on with an empty hand).

can_hold

Typecache of items that can be inserted into this storage. +By default, all item types can be inserted (assuming other conditions are met). +Do not set directly, use set_holdable

can_hold_description

An additional description shown on double-examine. +Is autogenerated to the can_hold list if not set.

cant_hold

Typecache of items that cannot be inserted into this storage. +By default, no item types are barred from insertion. +Do not set directly, use set_holdable

click_alt_open

Switch this off if you want to handle click_alt in the parent atom

collection_mode

The mode for collection when allow_quick_gather is enabled. See [code/__DEFINES/storage.dm]

display_contents

If TRUE, shows the contents of the storage in open_storage

do_rustle

Determines whether we play a rustle sound when inserting/removing items.

exception_hold

Typecache of items that can always be inserted into this storage, regardless of size.

exception_max

For use with an exception typecache: +The maximum amount of items of the exception type that can be inserted into this storage.

insert_on_attack

do we insert items when clicked by them?

insert_preposition

The preposition used when inserting items into this storage. +IE: You put things in a bag, but on a plate.

is_using

List of all the mobs currently viewing the contents of this storage.

locked

Whether the storage is currently locked (inaccessible). See [code/__DEFINES/storage.dm]

max_slots

The maximum amount of items that can be inserted into this storage.

max_specific_storage

The largest weight class that can be inserted into this storage, inclusive.

max_total_storage

Determines the maximum amount of weight that can be inserted into this storage. +Weight is calculated by the sum of all of our content's weight classes.

modeswitch_action

Ref to the item action that toggles collectmode.

numerical_stacking

Instead of displaying multiple items of the same type, display them as numbered contents.

open_sound

The sound to play when we open/access the storage

parent

A reference to the atom linked to this storage object +If the parent goes, we go. Will never be null.

quickdraw

if TRUE, alt-click takes an item out instantly rather than opening up storage.

real_location

A reference to the atom where the items are actually stored. +By default this is parent. Should generally never be null. +Sometimes it's not the parent, that's what is called "dissassociated storage".

+

Do NOT set this directly, use set_real_location.

rustle_sound

Path for the item's rustle sound.

screen_max_columns

Maximum amount of columns a storage object can have

screen_max_rows

Maximum amount of rows a storage object can have

screen_pixel_x

X-pixel location of the boxes and close button

screen_pixel_y

Y-pixel location of the boxes and close button

screen_start_x

Where storage starts being rendered, x-screen_loc wise

screen_start_y

Where storage starts being rendered, y-screen_loc wise

silent

If TRUE, chat messages for inserting/removing items will not be shown.

silent_for_user

Same as above but only for the user. +Useful to cut on chat spam without removing feedback for other players.

storage_interfaces

Associated list that keeps track of all storage UI datums per person.

supports_smart_equip

If we support smartly removing/inserting things from ourselves

Proc Details

add_holdable

Proc to add holdables list to an existing storage datum

animate_parent

Gives a spiffy animation to our parent to represent opening and closing.

attempt_insert

Attempts to insert an item into the storage

+

Arguments

+

attempt_remove

Attempts to remove an item from the storage +Ignores removal do_afters. Only use this if you're doing it as part of a dumping action

+

Arguments

+

can_insert

Checks if an item is capable of being inserted into the storage.

+

Arguments

+

can_see_contents

Checks who is currently capable of viewing our storage (and is.)

close_all

Close the storage UI for everyone viewing us.

close_distance

Signal handler for whenever a mob walks away with us, close if they can't reach us.

collect_on_turf

Collects every item of a type on a turf.

+

@param obj/item/thing the initial object to pick up +@param mob/user the user who is picking up the items

contents_changed_w_class

Signal proc for COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED to drop items out of our storage if they're suddenly too heavy.

dump_content_at

Dumps all of our contents at a specific location.

+

@param atom/dest_object where to dump to +@param mob/user the user who is dumping the contents

generate_hold_desc

Generates a description, primarily for clothing storage.

get_exception_count

Returns a count of how many items held due to exception_hold we have

get_total_weight

Returns a sum of all of our content's weight classes

handle_enter

Automatically ran on all object insertions: flag marking and view refreshing.

handle_exit

Automatically ran on all object removals: flag marking and view refreshing.

handle_mass_pickup

Inserts every item in a given list, with a progress bar

+

Arguments

+

hide_contents

Hide our storage from a mob.

+

Arguments

+

item_insertion_feedback

Provides visual feedback in chat for an item insertion

+

Arguments

+

item_interact_insert

Called directly from the attack chain if [insert_on_attack] is TRUE. +Handles inserting an item into the storage when clicked.

mass_empty

Signal handler for remove_all()

mousedrop_receive

Since items inside storages ignore transparency for QOL reasons, we're tracking when things are dropped onto them instead of our UI elements

on_attack

Signal handler for whenever we're attacked by a mob.

on_click_alt

Alt click on the storage item. Default: Open the storage.

on_emp_act

Signal handler for emp_act to emp all contents

on_mousedrop_onto

Signal handler for whenever we drag the storage somewhere.

on_mousedropped_onto

Signal handler for whenever something gets mouse-dropped onto us.

on_preattack

Signal handler for preattack from an object.

open_storage

Opens the storage to the mob, showing them the contents to their UI.

open_storage_on_signal

Signal handler to open up the storage when we receive a signal.

orient_storage

Updates views of all objects in storage and stretches UI to appropriate size

process_numerical_display

Generates the numbers on an item in storage to show stacking.

put_in_hands_async

Async version of putting something into a mobs hand.

real_location_deleted

Signal handler for when the real location is deleted.

refresh_views

Refresh the views of everyone currently viewing the storage.

remove_all

Removes everything inside of our storage

+

Arguments

+

remove_and_refresh

Resets an object, removes it from our screen, and refreshes the view.

+

@param atom/movable/gone the object leaving our storage

remove_single

Allows a mob to attempt to remove a single item from the storage +Allows for hooks into things like removal delays

+

Arguments

+

remove_type

Removes only a specific type of item from our storage

+

Arguments

+

reset_item

Refreshes and item to be put back into the real world, out of storage.

return_inv

Recursive proc to get absolutely EVERYTHING inside a storage item, including the contents of inner items.

+

Arguments

+

set_parent

Set the passed atom as the parent

set_real_location

Sets where items are physically being stored in the case it shouldn't be on the parent.

+

Does not handle moving any existing items, that must be done manually.

+

Arguments

+

show_contents

Show our storage to a mob.

+

Arguments

+ +

Returns

+

toggle_collection_mode

Toggles the collectmode of our storage.

+

@param mob/to_show the mob toggling us

update_actions

Updates the action button for toggling collectmode.

\ No newline at end of file diff --git a/datum/storage/pod.html b/datum/storage/pod.html new file mode 100644 index 0000000000000..37cddd98a550a --- /dev/null +++ b/datum/storage/pod.html @@ -0,0 +1 @@ +/datum/storage/pod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pod

Vars

always_unlockedIf TRUE, we unlock regardless of security level

Var Details

always_unlocked

If TRUE, we unlock regardless of security level

\ No newline at end of file diff --git a/datum/storage/rped.html b/datum/storage/rped.html new file mode 100644 index 0000000000000..27f0c137502fb --- /dev/null +++ b/datum/storage/rped.html @@ -0,0 +1,11 @@ +/datum/storage/rped - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

rped

Vars

allowed_bluespace_typeswe check if the user is trying to insert any of these bluespace crystal types into the RPED +at any point the total sum of all these types in the RPED must be <= MAX_STACK_PICKUP
allowed_material_typesas of now only these stack components are required to build machines like[thermomaachine,crystallizer,electrolyzer] +so we limit the rped to pick up only these stack types so players dont cheat and use this as a general storage medium

Procs

remove_lowest_tierSearches through everything currently in storage, calculates the lowest tier of parts inside of it, +and then dumps out every part that has the equal tier of parts. Likely a worse implementation of remove_all.

Var Details

allowed_bluespace_types

we check if the user is trying to insert any of these bluespace crystal types into the RPED +at any point the total sum of all these types in the RPED must be <= MAX_STACK_PICKUP

allowed_material_types

as of now only these stack components are required to build machines like[thermomaachine,crystallizer,electrolyzer] +so we limit the rped to pick up only these stack types so players dont cheat and use this as a general storage medium

Proc Details

remove_lowest_tier

Searches through everything currently in storage, calculates the lowest tier of parts inside of it, +and then dumps out every part that has the equal tier of parts. Likely a worse implementation of remove_all.

+

Arguments

+
\ No newline at end of file diff --git a/datum/storage/security.html b/datum/storage/security.html new file mode 100644 index 0000000000000..16fd9bce8a91b --- /dev/null +++ b/datum/storage/security.html @@ -0,0 +1 @@ +/datum/storage/security - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

security

Procs

open_storageEnables you to quickdraw weapons from security holsters

Proc Details

open_storage

Enables you to quickdraw weapons from security holsters

\ No newline at end of file diff --git a/datum/storage_interface.html b/datum/storage_interface.html new file mode 100644 index 0000000000000..bec7cf990b221 --- /dev/null +++ b/datum/storage_interface.html @@ -0,0 +1 @@ +/datum/storage_interface - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

storage_interface

Datum tracker for storage UI

Vars

closerUI elements for this theme
parent_storageStorage that owns us

Procs

list_ui_elementsReturns all UI elements under this theme
update_positionUpdates position of all UI elements

Var Details

closer

UI elements for this theme

parent_storage

Storage that owns us

Proc Details

list_ui_elements

Returns all UI elements under this theme

update_position

Updates position of all UI elements

\ No newline at end of file diff --git a/datum/story_manager_interface.html b/datum/story_manager_interface.html new file mode 100644 index 0000000000000..34b49366ebafc --- /dev/null +++ b/datum/story_manager_interface.html @@ -0,0 +1 @@ +/datum/story_manager_interface - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

story_manager_interface

Vars

archived_storiesA static list of archived stories, generated on New()
current_storiesA static list of current stories, generated on New()

Procs

generate_storiesReturn a list of generated stories in a dict from a passed in file location

Var Details

archived_stories

A static list of archived stories, generated on New()

current_stories

A static list of current stories, generated on New()

Proc Details

generate_stories

Return a list of generated stories in a dict from a passed in file location

\ No newline at end of file diff --git a/datum/storyteller.html b/datum/storyteller.html new file mode 100644 index 0000000000000..c2dfcb0f1f775 --- /dev/null +++ b/datum/storyteller.html @@ -0,0 +1 @@ +/datum/storyteller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

storyteller

The storyteller datum. He operates with the SSgamemode data to run events

Vars

antag_divisorThe antag divisor, the higher it is the lower the antag cap gets. Basically means "for every antag_divisor crew, spawn 1 antag".
cost_variancePercentual variance in cost of the purchased events. Effectively affects frequency of events
descDescription of our storyteller.
disable_distributionWhether the storyteller has the distributions disabled. Important for ghost storytellers
event_repetition_multiplierThis is the multiplier for repetition penalty in event weight. The lower the harsher it is
guarantees_roundstart_crewsetWhether the storyteller guaranteed a crewset roll (crew antag) on roundstart. (Still needs to pass pop check)
nameName of our storyteller.
population_maxIf defined, it will not be votable if exceeding the population
population_minIf defined, will need a minimum of population to be votable
roundstart_points_variancePercentual variance in the budget of roundstart points.
starting_point_multipliersMultipliers for starting points. // TODO - Rewrite into some variation
storyteller_typeTwo tellers of the same intensity group can't run in 2 consecutive rounds
tag_multipliersMultipliers of weight to apply for each tag of an event.
track_dataThe datum containing track size data
votableWhether people can vote for the storyteller
welcome_textText that the players will be greeted with when this storyteller is chosen.

Procs

add_pointsAdd points to all tracks while respecting the multipliers.
buy_eventFind and buy a valid event from a track.
calculate_weightsCalculates the weights of the events from a passed track.
find_and_buy_event_from_trackFind and buy a valid event from a track.
handle_tracksGoes through every track of the gamemode and checks if it passes a threshold to buy an event, if does, buys one.

Var Details

antag_divisor

The antag divisor, the higher it is the lower the antag cap gets. Basically means "for every antag_divisor crew, spawn 1 antag".

cost_variance

Percentual variance in cost of the purchased events. Effectively affects frequency of events

desc

Description of our storyteller.

disable_distribution

Whether the storyteller has the distributions disabled. Important for ghost storytellers

event_repetition_multiplier

This is the multiplier for repetition penalty in event weight. The lower the harsher it is

guarantees_roundstart_crewset

Whether the storyteller guaranteed a crewset roll (crew antag) on roundstart. (Still needs to pass pop check)

name

Name of our storyteller.

population_max

If defined, it will not be votable if exceeding the population

population_min

If defined, will need a minimum of population to be votable

roundstart_points_variance

Percentual variance in the budget of roundstart points.

starting_point_multipliers

Multipliers for starting points. // TODO - Rewrite into some variation

storyteller_type

Two tellers of the same intensity group can't run in 2 consecutive rounds

tag_multipliers

Multipliers of weight to apply for each tag of an event.

track_data

The datum containing track size data

votable

Whether people can vote for the storyteller

welcome_text

Text that the players will be greeted with when this storyteller is chosen.

Proc Details

add_points

Add points to all tracks while respecting the multipliers.

buy_event

Find and buy a valid event from a track.

calculate_weights

Calculates the weights of the events from a passed track.

find_and_buy_event_from_track

Find and buy a valid event from a track.

handle_tracks

Goes through every track of the gamemode and checks if it passes a threshold to buy an event, if does, buys one.

\ No newline at end of file diff --git a/datum/strip_menu.html b/datum/strip_menu.html new file mode 100644 index 0000000000000..392604200a98a --- /dev/null +++ b/datum/strip_menu.html @@ -0,0 +1 @@ +/datum/strip_menu - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

strip_menu

A representation of the stripping UI

Vars

interactionsA lazy list of user mobs to a list of strip menu keys that they're interacting with
ownerThe owner who has the element /datum/element/strippable
strippableThe strippable element itself

Var Details

interactions

A lazy list of user mobs to a list of strip menu keys that they're interacting with

owner

The owner who has the element /datum/element/strippable

strippable

The strippable element itself

\ No newline at end of file diff --git a/datum/strippable_item.html b/datum/strippable_item.html new file mode 100644 index 0000000000000..82cfe8bd78b08 --- /dev/null +++ b/datum/strippable_item.html @@ -0,0 +1,27 @@ +/datum/strippable_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

strippable_item

A representation of an item that can be stripped down

Vars

can_be_silentCan it be silent?
keyThe STRIPPABLE_ITEM_* key
show_visible_messageShould we give feedback messages?

Procs

finish_equipThe proc that places the item on the source. This should not yield.
finish_unequipThe proc that unequips the item from the source. This should not yield.
get_alternate_actionsReturns a list of alternate actions that can be performed on this strippable_item. +All string keys in the list must be inside tgui\packages\tgui\interfaces\StripMenu.tsx +You can also return null if there are no alternate actions.
get_itemGets the item from the given source.
get_obscuringReturns a STRIPPABLE_OBSCURING_* define to report on whether or not this is obscured.
perform_alternate_actionPerforms an alternate action on this strippable_item.
should_showReturns whether or not this item should show.
start_equipStart the equipping process. This is the proc you should yield in. +Returns TRUE/FALSE depending on if it is allowed.
start_unequipStart the unequipping process. This is the proc you should yield in. +Returns TRUE/FALSE depending on if it is allowed.
try_equipTries to equip the item onto the given source. +Returns TRUE/FALSE depending on if it is allowed. +This should be used for checking if an item CAN be equipped. +It should not perform the equipping itself.
try_unequipTries to unequip the item from the given source. +Returns TRUE/FALSE depending on if it is allowed. +This should be used for checking if it CAN be unequipped. +It should not perform the unequipping itself.

Var Details

can_be_silent

Can it be silent?

key

The STRIPPABLE_ITEM_* key

show_visible_message

Should we give feedback messages?

Proc Details

finish_equip

The proc that places the item on the source. This should not yield.

finish_unequip

The proc that unequips the item from the source. This should not yield.

get_alternate_actions

Returns a list of alternate actions that can be performed on this strippable_item. +All string keys in the list must be inside tgui\packages\tgui\interfaces\StripMenu.tsx +You can also return null if there are no alternate actions.

get_item

Gets the item from the given source.

get_obscuring

Returns a STRIPPABLE_OBSCURING_* define to report on whether or not this is obscured.

perform_alternate_action

Performs an alternate action on this strippable_item.

+

should_show

Returns whether or not this item should show.

start_equip

Start the equipping process. This is the proc you should yield in. +Returns TRUE/FALSE depending on if it is allowed.

start_unequip

Start the unequipping process. This is the proc you should yield in. +Returns TRUE/FALSE depending on if it is allowed.

try_equip

Tries to equip the item onto the given source. +Returns TRUE/FALSE depending on if it is allowed. +This should be used for checking if an item CAN be equipped. +It should not perform the equipping itself.

try_unequip

Tries to unequip the item from the given source. +Returns TRUE/FALSE depending on if it is allowed. +This should be used for checking if it CAN be unequipped. +It should not perform the unequipping itself.

\ No newline at end of file diff --git a/datum/strippable_item/hand.html b/datum/strippable_item/hand.html new file mode 100644 index 0000000000000..641c5504eac09 --- /dev/null +++ b/datum/strippable_item/hand.html @@ -0,0 +1 @@ +/datum/strippable_item/hand - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hand

A strippable item for a hand

Vars

hand_indexWhich hand?

Var Details

hand_index

Which hand?

\ No newline at end of file diff --git a/datum/strippable_item/mannequin_slot.html b/datum/strippable_item/mannequin_slot.html new file mode 100644 index 0000000000000..b30cdf9b602f1 --- /dev/null +++ b/datum/strippable_item/mannequin_slot.html @@ -0,0 +1 @@ +/datum/strippable_item/mannequin_slot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mannequin_slot

Vars

item_slotThe ITEM_SLOT_* to equip to.

Var Details

item_slot

The ITEM_SLOT_* to equip to.

\ No newline at end of file diff --git a/datum/strippable_item/mob_item_slot.html b/datum/strippable_item/mob_item_slot.html new file mode 100644 index 0000000000000..cdd7c5097c953 --- /dev/null +++ b/datum/strippable_item/mob_item_slot.html @@ -0,0 +1 @@ +/datum/strippable_item/mob_item_slot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mob_item_slot

A preset for equipping items onto mob slots

Vars

item_slotThe ITEM_SLOT_* to equip to.

Procs

get_equip_delayReturns the delay of equipping this item to a mob

Var Details

item_slot

The ITEM_SLOT_* to equip to.

Proc Details

get_equip_delay

Returns the delay of equipping this item to a mob

\ No newline at end of file diff --git a/datum/strippable_item/mob_item_slot/pocket.html b/datum/strippable_item/mob_item_slot/pocket.html new file mode 100644 index 0000000000000..e39d9d9cad7b7 --- /dev/null +++ b/datum/strippable_item/mob_item_slot/pocket.html @@ -0,0 +1 @@ +/datum/strippable_item/mob_item_slot/pocket - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pocket

Vars

pocket_sideWhich pocket we're referencing. Used for visible text.

Var Details

pocket_side

Which pocket we're referencing. Used for visible text.

\ No newline at end of file diff --git a/datum/summon_things_controller.html b/datum/summon_things_controller.html new file mode 100644 index 0000000000000..7ed242f5fab5c --- /dev/null +++ b/datum/summon_things_controller.html @@ -0,0 +1,4 @@ +/datum/summon_things_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

summon_things_controller

The "Give everyone in the crew and also latejoins a buncha stuff" controller. +Used for summon magic and summon guns.

Vars

survivor_probabilityProb. chance someone who is given things will be made a survivalist antagonist.

Procs

can_give_toDetermins if the mob is valid to be given whatever we're handing out.
equip_all_affectedCalled manually to give out our things to all minds returned by [proc/get_affected_minds()]
equip_latejoinerCalled via signal to equip latejoin crewmembers
get_affected_mindsReturns a list of minds of all mobs affected by what we're giving out.
on_latejoinSignal proc from COMSIG_GLOB_CREWMEMBER_JOINED. +Calls give_proc_path on latejoiners a number of times (based on num_to_give_to_latejoiners)

Var Details

survivor_probability

Prob. chance someone who is given things will be made a survivalist antagonist.

Proc Details

can_give_to

Determins if the mob is valid to be given whatever we're handing out.

equip_all_affected

Called manually to give out our things to all minds returned by [proc/get_affected_minds()]

equip_latejoiner

Called via signal to equip latejoin crewmembers

get_affected_minds

Returns a list of minds of all mobs affected by what we're giving out.

on_latejoin

Signal proc from COMSIG_GLOB_CREWMEMBER_JOINED. +Calls give_proc_path on latejoiners a number of times (based on num_to_give_to_latejoiners)

\ No newline at end of file diff --git a/datum/summon_things_controller/item.html b/datum/summon_things_controller/item.html new file mode 100644 index 0000000000000..bd702e58487e5 --- /dev/null +++ b/datum/summon_things_controller/item.html @@ -0,0 +1 @@ +/datum/summon_things_controller/item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

item

Vars

give_proc_pathThe proc path we call on someone to equip them with stuff. Cannot function without it.
num_to_give_to_latejoinersThe number of equipment we give to latejoiners, to make sure they catch up if it was casted multiple times.

Var Details

give_proc_path

The proc path we call on someone to equip them with stuff. Cannot function without it.

num_to_give_to_latejoiners

The number of equipment we give to latejoiners, to make sure they catch up if it was casted multiple times.

\ No newline at end of file diff --git a/datum/summon_things_controller/spellbook_entry.html b/datum/summon_things_controller/spellbook_entry.html new file mode 100644 index 0000000000000..18e4b292acece --- /dev/null +++ b/datum/summon_things_controller/spellbook_entry.html @@ -0,0 +1 @@ +/datum/summon_things_controller/spellbook_entry - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spellbook_entry

Vars

used_entrySpellbook entry instance to hand out

Var Details

used_entry

Spellbook entry instance to hand out

\ No newline at end of file diff --git a/datum/supply_order.html b/datum/supply_order.html new file mode 100644 index 0000000000000..dc0ad1a9bdb94 --- /dev/null +++ b/datum/supply_order.html @@ -0,0 +1 @@ +/datum/supply_order - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

supply_order

Vars

can_be_cancelledBoolean on whether the manifest can be cancelled through cargo consoles.
charge_on_purchaseIf set to FALSE, we won't charge when the cargo shuttle arrives with this.
department_destinationarea this order wants to reach, if not null then it will come with the deliver_first component set to this area
manifest_can_failBoolean on whether the manifest can fail or not.

Procs

on_spawnA proc to be overriden if you want custom code to happen when SSshuttle spawns the order

Var Details

can_be_cancelled

Boolean on whether the manifest can be cancelled through cargo consoles.

charge_on_purchase

If set to FALSE, we won't charge when the cargo shuttle arrives with this.

department_destination

area this order wants to reach, if not null then it will come with the deliver_first component set to this area

manifest_can_fail

Boolean on whether the manifest can fail or not.

Proc Details

on_spawn

A proc to be overriden if you want custom code to happen when SSshuttle spawns the order

\ No newline at end of file diff --git a/datum/supply_order/company_import.html b/datum/supply_order/company_import.html new file mode 100644 index 0000000000000..f508f419be3e0 --- /dev/null +++ b/datum/supply_order/company_import.html @@ -0,0 +1 @@ +/datum/supply_order/company_import - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

company_import

Vars

selected_entryThe armament entry used to fill the supply order
used_componentThe component used to create the order

Var Details

selected_entry

The armament entry used to fill the supply order

used_component

The component used to create the order

\ No newline at end of file diff --git a/datum/supply_pack.html b/datum/supply_pack.html new file mode 100644 index 0000000000000..b0b2664c85a6a --- /dev/null +++ b/datum/supply_pack.html @@ -0,0 +1 @@ +/datum/supply_pack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

supply_pack

Vars

accessWhat access is required to open the crate when spawned?
access_anyIf someone with any of the following accesses in a list can open this cargo pack crate.
access_viewWho can view this supply_pack and with what access.
admin_spawnedWas this spawned through an admin proc?
containsA list of items that are spawned in the crate of the supply pack.
contrabandIs this supply pack purchasable outside of the standard purchasing band? Contraband is available by multitooling the cargo purchasing board.
costCost of the crate. DO NOT GO ANY LOWER THAN X1.4 the "CARGO_CRATE_VALUE" value if using regular crates, or infinite profit will be possible!
crate_nameWhat is the name of the crate that is spawned with the crate's contents??
crate_typeWhat typepath of crate do you spawn?
dangerousShould we message admins?
descThe description shown on the cargo purchasing UI. No desc by default.
discountableCan coupons target this pack? If so, how rarely?
drop_pod_onlyOnly usable by the Bluespace Drop Pod via the express cargo console
goodyGoodies can only be purchased by private accounts and can have coupons apply to them. They also come in a lockbox instead of a full crate, so the 700 min doesn't apply
groupThe group that the supply pack is sorted into within the cargo purchasing UI.
hiddenIs this cargo supply pack visible to the cargo purchasing UI.
idWhen spawning a gas canistor, what kind of gas type are we spawning?
nameThe name of the supply pack, as listed on th cargo purchasing UI.
specialEvent/Station Goals/Admin enabled packs
special_enabledWhen a cargo pack can be unlocked by special events (as seen in special), this toggles if it's been enabled in the round yet (For example, after the station alert, we can now enable buying the station goal pack).
special_podIf this pack comes shipped in a specific pod when launched from the express console

Procs

generate_supply_packsFor generating supply packs at runtime. Returns a list of supply packs to use instead of this one.

Var Details

access

What access is required to open the crate when spawned?

access_any

If someone with any of the following accesses in a list can open this cargo pack crate.

access_view

Who can view this supply_pack and with what access.

admin_spawned

Was this spawned through an admin proc?

contains

A list of items that are spawned in the crate of the supply pack.

contraband

Is this supply pack purchasable outside of the standard purchasing band? Contraband is available by multitooling the cargo purchasing board.

cost

Cost of the crate. DO NOT GO ANY LOWER THAN X1.4 the "CARGO_CRATE_VALUE" value if using regular crates, or infinite profit will be possible!

crate_name

What is the name of the crate that is spawned with the crate's contents??

crate_type

What typepath of crate do you spawn?

dangerous

Should we message admins?

desc

The description shown on the cargo purchasing UI. No desc by default.

discountable

Can coupons target this pack? If so, how rarely?

drop_pod_only

Only usable by the Bluespace Drop Pod via the express cargo console

goody

Goodies can only be purchased by private accounts and can have coupons apply to them. They also come in a lockbox instead of a full crate, so the 700 min doesn't apply

group

The group that the supply pack is sorted into within the cargo purchasing UI.

hidden

Is this cargo supply pack visible to the cargo purchasing UI.

id

When spawning a gas canistor, what kind of gas type are we spawning?

name

The name of the supply pack, as listed on th cargo purchasing UI.

special

Event/Station Goals/Admin enabled packs

special_enabled

When a cargo pack can be unlocked by special events (as seen in special), this toggles if it's been enabled in the round yet (For example, after the station alert, we can now enable buying the station goal pack).

special_pod

If this pack comes shipped in a specific pod when launched from the express console

Proc Details

generate_supply_packs

For generating supply packs at runtime. Returns a list of supply packs to use instead of this one.

\ No newline at end of file diff --git a/datum/supply_pack/misc/syndicate.html b/datum/supply_pack/misc/syndicate.html new file mode 100644 index 0000000000000..9623660d1c482 --- /dev/null +++ b/datum/supply_pack/misc/syndicate.html @@ -0,0 +1 @@ +/datum/supply_pack/misc/syndicate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

syndicate

Special supply crate that generates random syndicate gear up to a determined TC value

Vars

contents_uplink_typeWhat uplink the contents are pulled from
crate_valueTotal TC worth of contained uplink items

Procs

fillGenerate assorted uplink items, taking into account the same surplus modifiers used for surplus crates

Var Details

What uplink the contents are pulled from

crate_value

Total TC worth of contained uplink items

Proc Details

fill

Generate assorted uplink items, taking into account the same surplus modifiers used for surplus crates

\ No newline at end of file diff --git a/datum/supply_pack/misc/vanguard_surplus.html b/datum/supply_pack/misc/vanguard_surplus.html new file mode 100644 index 0000000000000..1a94cddaf86d4 --- /dev/null +++ b/datum/supply_pack/misc/vanguard_surplus.html @@ -0,0 +1 @@ +/datum/supply_pack/misc/vanguard_surplus - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vanguard_surplus

Vars

num_containedHow many of the contains to put in the crate

Var Details

num_contained

How many of the contains to put in the crate

\ No newline at end of file diff --git a/datum/supply_pack/organic/pizza.html b/datum/supply_pack/organic/pizza.html new file mode 100644 index 0000000000000..aa158c548043d --- /dev/null +++ b/datum/supply_pack/organic/pizza.html @@ -0,0 +1 @@ +/datum/supply_pack/organic/pizza - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pizza

Vars

anomalous_box_providedWhether we've provided an infinite pizza box already this shift or not.
bomb_dud_chance1 in 3 pizza bombs spawned will be a dud
bomb_pizza_chancethree percent chance for a pizza box to be the pizza bomb box
boombox_providedWhether we've provided a bomb pizza box already this shift or not.
infinite_pizza_chanceone percent chance for a pizza box to be the ininfite pizza box
pizza_typeslist of pizza that can randomly go inside of a crate, weighted by how disruptive it would be

Procs

add_anomalousadds the chance for an infinite pizza box
add_boomboxadds a chance of a pizza bomb replacing a pizza
add_normal_pizzaadds a randomized pizza from the pizza list
anomalous_pizza_reporttells crew that an infinite pizza box exists, half of the time, based on a roll in the anamolous box proc

Var Details

anomalous_box_provided

Whether we've provided an infinite pizza box already this shift or not.

bomb_dud_chance

1 in 3 pizza bombs spawned will be a dud

bomb_pizza_chance

three percent chance for a pizza box to be the pizza bomb box

boombox_provided

Whether we've provided a bomb pizza box already this shift or not.

infinite_pizza_chance

one percent chance for a pizza box to be the ininfite pizza box

pizza_types

list of pizza that can randomly go inside of a crate, weighted by how disruptive it would be

Proc Details

add_anomalous

adds the chance for an infinite pizza box

add_boombox

adds a chance of a pizza bomb replacing a pizza

add_normal_pizza

adds a randomized pizza from the pizza list

anomalous_pizza_report

tells crew that an infinite pizza box exists, half of the time, based on a roll in the anamolous box proc

\ No newline at end of file diff --git a/datum/surgery.html b/datum/surgery.html new file mode 100644 index 0000000000000..d1b8d3da7cb7b --- /dev/null +++ b/datum/surgery.html @@ -0,0 +1,5 @@ +/datum/surgery - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

surgery

Vars

descThe description of the surgery, what it does.
locationThe bodypart this specific surgery is being performed on.
nameThe name of the surgery operation
operated_bodypartThe specific bodypart being operated on.
operated_woundThe wound datum that is being operated on.
organ_to_manipulateOrgan being directly manipulated, used for checking if the organ is still in the body after surgery has begun
possible_locsThe possible bodyparts that the surgery can be started on.
removes_target_bodypartWhether this surgery aims to remove or replace the target bodypart, with the goal of being used +with a bodypart's can_be_surgically_removed variable. Defaults to FALSE.
replaced_bytypepath of a surgery that will, once researched, replace this surgery in the operating menu.
requires_bodypart_typeThe types of bodyparts that this surgery can have performed on it. Used for augmented surgeries.
requires_techWhether the surgery requires research to do. You need to add a design if using this!
speed_modifierThe speed modifier given to the surgery through external means.
statusThe surgery step we're currently on, increases each time we do a step.
step_in_progressBoolean on whether a surgery step is currently being done, to prevent multi-surgery.
stepsAll steps the surgery has to do to complete.
surgery_flagsFrom __DEFINES/surgery.dm +Selection: SURGERY_IGNORE_CLOTHES | SURGERY_SELF_OPERABLE | SURGERY_REQUIRE_RESTING | SURGERY_REQUIRE_LIMB | SURGERY_REQUIRES_REAL_LIMB | SURGERY_MORBID_CURIOSITY
targetThe person the surgery is being performed on. Funnily enough, it isn't always a carbon.
target_mobtypesMobs that are valid to have surgery performed on them.
targetable_woundTypes of wounds this surgery can target.

Procs

locate_operating_computerReturns a nearby operating computer linked to an operating table

Var Details

desc

The description of the surgery, what it does.

location

The bodypart this specific surgery is being performed on.

name

The name of the surgery operation

operated_bodypart

The specific bodypart being operated on.

operated_wound

The wound datum that is being operated on.

organ_to_manipulate

Organ being directly manipulated, used for checking if the organ is still in the body after surgery has begun

possible_locs

The possible bodyparts that the surgery can be started on.

removes_target_bodypart

Whether this surgery aims to remove or replace the target bodypart, with the goal of being used +with a bodypart's can_be_surgically_removed variable. Defaults to FALSE.

replaced_by

typepath of a surgery that will, once researched, replace this surgery in the operating menu.

requires_bodypart_type

The types of bodyparts that this surgery can have performed on it. Used for augmented surgeries.

requires_tech

Whether the surgery requires research to do. You need to add a design if using this!

speed_modifier

The speed modifier given to the surgery through external means.

status

The surgery step we're currently on, increases each time we do a step.

step_in_progress

Boolean on whether a surgery step is currently being done, to prevent multi-surgery.

steps

All steps the surgery has to do to complete.

surgery_flags

From __DEFINES/surgery.dm +Selection: SURGERY_IGNORE_CLOTHES | SURGERY_SELF_OPERABLE | SURGERY_REQUIRE_RESTING | SURGERY_REQUIRE_LIMB | SURGERY_REQUIRES_REAL_LIMB | SURGERY_MORBID_CURIOSITY

target

The person the surgery is being performed on. Funnily enough, it isn't always a carbon.

target_mobtypes

Mobs that are valid to have surgery performed on them.

targetable_wound

Types of wounds this surgery can target.

Proc Details

locate_operating_computer

Returns a nearby operating computer linked to an operating table

\ No newline at end of file diff --git a/datum/surgery/advanced/bioware.html b/datum/surgery/advanced/bioware.html new file mode 100644 index 0000000000000..3b25692ef8582 --- /dev/null +++ b/datum/surgery/advanced/bioware.html @@ -0,0 +1,3 @@ +/datum/surgery/advanced/bioware - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bioware

Vars

status_effect_gainedWhat status effect is gained when the surgery is successful? +Used to check against other bioware types to prevent stacking.

Var Details

status_effect_gained

What status effect is gained when the surgery is successful? +Used to check against other bioware types to prevent stacking.

\ No newline at end of file diff --git a/datum/surgery/revival.html b/datum/surgery/revival.html new file mode 100644 index 0000000000000..0241c1800bc3f --- /dev/null +++ b/datum/surgery/revival.html @@ -0,0 +1 @@ +/datum/surgery/revival - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

revival

Procs

is_valid_targetExtra checks which can be overridden

Proc Details

is_valid_target

Extra checks which can be overridden

\ No newline at end of file diff --git a/datum/surgery/robot_healing.html b/datum/surgery/robot_healing.html new file mode 100644 index 0000000000000..4278af0f3470d --- /dev/null +++ b/datum/surgery/robot_healing.html @@ -0,0 +1 @@ +/datum/surgery/robot_healing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

robot_healing

Vars

healing_step_typeThe step to use in the 4th surgery step.
surgery_preop_message_sentIf true, doesn't send the surgery preop message. Set during surgery.

Var Details

healing_step_type

The step to use in the 4th surgery step.

surgery_preop_message_sent

If true, doesn't send the surgery preop message. Set during surgery.

\ No newline at end of file diff --git a/datum/surgery_step.html b/datum/surgery_step.html new file mode 100644 index 0000000000000..79d3563bad621 --- /dev/null +++ b/datum/surgery_step.html @@ -0,0 +1,11 @@ +/datum/surgery_step - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

surgery_step

Vars

surgery_effects_moodIf the surgery causes mood changes if the patient is conscious.
surgery_failure_mood_eventWhich mood event to give the consious patient when surgery fails. Lasts muuuuuch longer.
surgery_started_mood_eventWhich mood event to give the patient when surgery is starting while they're conscious. This should be permanent/not have a timer until the surgery either succeeds or fails, as those states will immediately replace it. Mostly just flavor text.
surgery_success_mood_eventWhich mood event to give the conscious patient when surgery succeeds. Lasts far shorter than if it failed.

Procs

display_painSends a pain message to the target, including a chance of screaming.
update_surgery_moodHandles updating the mob's mood depending on the surgery states.

Var Details

surgery_effects_mood

If the surgery causes mood changes if the patient is conscious.

surgery_failure_mood_event

Which mood event to give the consious patient when surgery fails. Lasts muuuuuch longer.

surgery_started_mood_event

Which mood event to give the patient when surgery is starting while they're conscious. This should be permanent/not have a timer until the surgery either succeeds or fails, as those states will immediately replace it. Mostly just flavor text.

surgery_success_mood_event

Which mood event to give the conscious patient when surgery succeeds. Lasts far shorter than if it failed.

Proc Details

display_pain

Sends a pain message to the target, including a chance of screaming.

+

Arguments:

+

update_surgery_mood

Handles updating the mob's mood depending on the surgery states.

+
\ No newline at end of file diff --git a/datum/surgery_step/debride.html b/datum/surgery_step/debride.html new file mode 100644 index 0000000000000..f3922759a4c6c --- /dev/null +++ b/datum/surgery_step/debride.html @@ -0,0 +1 @@ +/datum/surgery_step/debride - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

debride

Debride

Vars

infestation_removedHow much infestation is removed per step (positive number)
sanitization_addedHow much sanitization is added per step

Procs

get_progressTo give the surgeon a heads up how much work they have ahead of them

Var Details

infestation_removed

How much infestation is removed per step (positive number)

sanitization_added

How much sanitization is added per step

Proc Details

get_progress

To give the surgeon a heads up how much work they have ahead of them

\ No newline at end of file diff --git a/datum/surgery_step/dress.html b/datum/surgery_step/dress.html new file mode 100644 index 0000000000000..5ebb2fe1ba033 --- /dev/null +++ b/datum/surgery_step/dress.html @@ -0,0 +1 @@ +/datum/surgery_step/dress - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dress

Dressing burns

Vars

flesh_healing_addedHow much flesh healing is added
sanitization_addedHow much sanitization is added

Var Details

flesh_healing_added

How much flesh healing is added

sanitization_added

How much sanitization is added

\ No newline at end of file diff --git a/datum/surgery_step/experimental_dissection.html b/datum/surgery_step/experimental_dissection.html new file mode 100644 index 0000000000000..367746a14588f --- /dev/null +++ b/datum/surgery_step/experimental_dissection.html @@ -0,0 +1 @@ +/datum/surgery_step/experimental_dissection - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

experimental_dissection

Procs

check_valueCalculates how many research points dissecting 'target' is worth.

Proc Details

check_value

Calculates how many research points dissecting 'target' is worth.

\ No newline at end of file diff --git a/datum/surgery_step/filter_blood.html b/datum/surgery_step/filter_blood.html new file mode 100644 index 0000000000000..56b9b02d7454b --- /dev/null +++ b/datum/surgery_step/filter_blood.html @@ -0,0 +1,8 @@ +/datum/surgery_step/filter_blood - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

filter_blood

Procs

has_filterable_chemsChecks if the mob contains chems we can filter

Proc Details

has_filterable_chems

Checks if the mob contains chems we can filter

+

If the blood filter's whitelist is empty this checks if the mob contains any chems +If the whitelist contains chems it checks if any chems in the mob match chems in the whitelist

+

Arguments:

+
\ No newline at end of file diff --git a/datum/surgery_step/heal.html b/datum/surgery_step/heal.html new file mode 100644 index 0000000000000..964c880d44994 --- /dev/null +++ b/datum/surgery_step/heal.html @@ -0,0 +1 @@ +/datum/surgery_step/heal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

heal

Procs

get_progressReturns a string letting the surgeon know roughly how much longer the surgery is estimated to take at the going rate

Proc Details

get_progress

Returns a string letting the surgeon know roughly how much longer the surgery is estimated to take at the going rate

\ No newline at end of file diff --git a/datum/surgery_step/heal/brute.html b/datum/surgery_step/heal/brute.html new file mode 100644 index 0000000000000..51eac1f0465d9 --- /dev/null +++ b/datum/surgery_step/heal/brute.html @@ -0,0 +1 @@ +/datum/surgery_step/heal/brute - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

brute

Procs

get_progressBRUTE STEPS

Proc Details

get_progress

BRUTE STEPS

\ No newline at end of file diff --git a/datum/surgery_step/heal/burn.html b/datum/surgery_step/heal/burn.html new file mode 100644 index 0000000000000..016eaf43e2590 --- /dev/null +++ b/datum/surgery_step/heal/burn.html @@ -0,0 +1 @@ +/datum/surgery_step/heal/burn - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

burn

Procs

get_progressBURN STEPS

Proc Details

get_progress

BURN STEPS

\ No newline at end of file diff --git a/datum/surgery_step/heal/combo.html b/datum/surgery_step/heal/combo.html new file mode 100644 index 0000000000000..991356c4e1971 --- /dev/null +++ b/datum/surgery_step/heal/combo.html @@ -0,0 +1 @@ +/datum/surgery_step/heal/combo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

combo

Procs

get_progressCOMBO STEPS

Proc Details

get_progress

COMBO STEPS

\ No newline at end of file diff --git a/datum/surgery_step/manipulate_organs.html b/datum/surgery_step/manipulate_organs.html new file mode 100644 index 0000000000000..41d42c5266ece --- /dev/null +++ b/datum/surgery_step/manipulate_organs.html @@ -0,0 +1 @@ +/datum/surgery_step/manipulate_organs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

manipulate_organs

Organ manipulation base class. Do not use, it wont work. Use its subtypes

Procs

can_use_organYou can never use this MUHAHAHAHAHAHAH (because its the byond version of abstract)

Proc Details

can_use_organ

You can never use this MUHAHAHAHAHAHAH (because its the byond version of abstract)

\ No newline at end of file diff --git a/datum/surgery_step/manipulate_organs/external.html b/datum/surgery_step/manipulate_organs/external.html new file mode 100644 index 0000000000000..48d52b29666c2 --- /dev/null +++ b/datum/surgery_step/manipulate_organs/external.html @@ -0,0 +1 @@ +/datum/surgery_step/manipulate_organs/external - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

external

Surgery step for external organs/features, like tails, frills, wings etc

Procs

can_use_organOnly operate on external organs

Proc Details

can_use_organ

Only operate on external organs

\ No newline at end of file diff --git a/datum/surgery_step/manipulate_organs/internal.html b/datum/surgery_step/manipulate_organs/internal.html new file mode 100644 index 0000000000000..38507f874699e --- /dev/null +++ b/datum/surgery_step/manipulate_organs/internal.html @@ -0,0 +1 @@ +/datum/surgery_step/manipulate_organs/internal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

internal

Surgery step for internal organs, like hearts and brains

Procs

can_use_organonly operate on internal organs

Proc Details

can_use_organ

only operate on internal organs

\ No newline at end of file diff --git a/datum/surgery_step/revive.html b/datum/surgery_step/revive.html new file mode 100644 index 0000000000000..dff5678e890df --- /dev/null +++ b/datum/surgery_step/revive.html @@ -0,0 +1 @@ +/datum/surgery_step/revive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

revive

Procs

on_revivedCalled when you have been successfully raised from the dead

Proc Details

on_revived

Called when you have been successfully raised from the dead

\ No newline at end of file diff --git a/datum/surgery_step/robot_heal.html b/datum/surgery_step/robot_heal.html new file mode 100644 index 0000000000000..2d4427286c406 --- /dev/null +++ b/datum/surgery_step/robot_heal.html @@ -0,0 +1,12 @@ +/datum/surgery_step/robot_heal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

robot_heal

Vars

brute_heal_amountHow much healing the sugery gives.
burn_heal_amountHow much healing the sugery gives.
heals_bruteIf this surgery is healing brute damage. Set during operation steps.
heals_burnIf this surgery is healing burn damage. Set during operation steps.
missing_health_bonusHeals an extra point of damage per X missing damage of type (burn damage for burn healing, brute for brute). Smaller number = more healing!

Procs

get_progressArgs:

Var Details

brute_heal_amount

How much healing the sugery gives.

burn_heal_amount

How much healing the sugery gives.

heals_brute

If this surgery is healing brute damage. Set during operation steps.

heals_burn

If this surgery is healing burn damage. Set during operation steps.

missing_health_bonus

Heals an extra point of damage per X missing damage of type (burn damage for burn healing, brute for brute). Smaller number = more healing!

Proc Details

get_progress

Args:

+ +

Returns:

+
\ No newline at end of file diff --git a/datum/symptom.html b/datum/symptom.html new file mode 100644 index 0000000000000..668de1c9c59c3 --- /dev/null +++ b/datum/symptom.html @@ -0,0 +1,2 @@ +/datum/symptom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

symptom

Vars

base_message_chanceBase chance of sending warning messages, so it can be modified
descBasic symptom description
idThe hash tag for our diseases, we will add it up with our other symptoms to get a unique id! ID MUST BE UNIQUE!!!
illnessPotential illness name caused by the symptom
levelThe type level of the symptom. Higher is harder to generate.
naturally_occuringIf this symptom can appear from /datum/disease/advance/GenerateSymptoms()
neuteredA neutered symptom has no effect, and only affects statistics.
next_activationTicks between each activation
powerCan be used to multiply virus effects
required_organIf the symptom requires an organ for the effects to function, robotic organs are immune to disease unless inorganic biology symptom is present
resistanceHow the symptom affects the disease's resistance stat, positive values make it harder to cure
severityThe severity level of the symptom. Higher is more dangerous.
stage_speedHow the symptom affects the disease's stage speed stat, positive values cause faster stage progression
stealthHow the symptom affects the disease's stealth stat, positive values make it less noticeable
suppress_warningIf the early warnings are suppressed or not
threshold_descsDescriptions of threshold effects
transmittableHow the symptom affects the disease's transmissibility
weightHow much space does this symptom use?

Procs

EndCalled when the advance disease is going to be deleted or when the advance disease stops processing.
OnAddOverload when a symptom needs to be active before processing, like changing biotypes.
OnRemoveOverload for running after processing.
StartCalled when processing of the advance disease that holds this symptom infects a host and upon each Refresh() of that advance disease.
can_generate_randomlyCheck if we can generate randomly
get_symptom_dataReturns a list for all of the traits of this symptom.

Var Details

base_message_chance

Base chance of sending warning messages, so it can be modified

desc

Basic symptom description

id

The hash tag for our diseases, we will add it up with our other symptoms to get a unique id! ID MUST BE UNIQUE!!!

illness

Potential illness name caused by the symptom

level

The type level of the symptom. Higher is harder to generate.

naturally_occuring

If this symptom can appear from /datum/disease/advance/GenerateSymptoms()

neutered

A neutered symptom has no effect, and only affects statistics.

next_activation

Ticks between each activation

power

Can be used to multiply virus effects

required_organ

If the symptom requires an organ for the effects to function, robotic organs are immune to disease unless inorganic biology symptom is present

resistance

How the symptom affects the disease's resistance stat, positive values make it harder to cure

severity

The severity level of the symptom. Higher is more dangerous.

stage_speed

How the symptom affects the disease's stage speed stat, positive values cause faster stage progression

stealth

How the symptom affects the disease's stealth stat, positive values make it less noticeable

suppress_warning

If the early warnings are suppressed or not

threshold_descs

Descriptions of threshold effects

transmittable

How the symptom affects the disease's transmissibility

weight

How much space does this symptom use?

Proc Details

End

Called when the advance disease is going to be deleted or when the advance disease stops processing.

OnAdd

Overload when a symptom needs to be active before processing, like changing biotypes.

OnRemove

Overload for running after processing.

Start

Called when processing of the advance disease that holds this symptom infects a host and upon each Refresh() of that advance disease.

can_generate_randomly

Check if we can generate randomly

get_symptom_data

Returns a list for all of the traits of this symptom.

+

@returns {list} symptom - The desired symptoms as a list.

\ No newline at end of file diff --git a/datum/symptom/beard.html b/datum/symptom/beard.html new file mode 100644 index 0000000000000..e87f717335f95 --- /dev/null +++ b/datum/symptom/beard.html @@ -0,0 +1,9 @@ +/datum/symptom/beard - /tg/ Station 13
/tg/ Station 13 - Modules - Types

beard

\ No newline at end of file diff --git a/datum/symptom/chills.html b/datum/symptom/chills.html new file mode 100644 index 0000000000000..8430cd4438727 --- /dev/null +++ b/datum/symptom/chills.html @@ -0,0 +1,15 @@ +/datum/symptom/chills - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

chills

Procs

Endremove the body temp change when removing symptom
on_stage_changeUpdate the body temp change based on the new stage
set_body_tempset_body_temp Sets the body temp change

Proc Details

End

remove the body temp change when removing symptom

on_stage_change

Update the body temp change based on the new stage

set_body_temp

set_body_temp Sets the body temp change

+

Sets the body temp change to the mob based on the stage and resistance of the disease +arguments:

+
\ No newline at end of file diff --git a/datum/symptom/choking.html b/datum/symptom/choking.html new file mode 100644 index 0000000000000..46686142075f0 --- /dev/null +++ b/datum/symptom/choking.html @@ -0,0 +1,9 @@ +/datum/symptom/choking - /tg/ Station 13
/tg/ Station 13 - Modules - Types

choking

*Choking

+
\ No newline at end of file diff --git a/datum/symptom/confusion.html b/datum/symptom/confusion.html new file mode 100644 index 0000000000000..f3ea82e08b5e5 --- /dev/null +++ b/datum/symptom/confusion.html @@ -0,0 +1,9 @@ +/datum/symptom/confusion - /tg/ Station 13
/tg/ Station 13 - Modules - Types

confusion

*Confusion

+
\ No newline at end of file diff --git a/datum/symptom/cough.html b/datum/symptom/cough.html new file mode 100644 index 0000000000000..d0f665f1939f8 --- /dev/null +++ b/datum/symptom/cough.html @@ -0,0 +1,9 @@ +/datum/symptom/cough - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cough

*Coughing

+

Vars

cough_cooldownemote cooldowns
off_cooldown_coughedif FALSE, there is a percentage chance that the mob will emote coughing while cough_cooldown is on cooldown. If TRUE, won't emote again until after the off cooldown cough occurs.

Var Details

cough_cooldown

emote cooldowns

off_cooldown_coughed

if FALSE, there is a percentage chance that the mob will emote coughing while cough_cooldown is on cooldown. If TRUE, won't emote again until after the off cooldown cough occurs.

\ No newline at end of file diff --git a/datum/symptom/deafness.html b/datum/symptom/deafness.html new file mode 100644 index 0000000000000..9f9acf0cd918f --- /dev/null +++ b/datum/symptom/deafness.html @@ -0,0 +1,9 @@ +/datum/symptom/deafness - /tg/ Station 13
/tg/ Station 13 - Modules - Types

deafness

*Deafness

+
\ No newline at end of file diff --git a/datum/symptom/disfiguration.html b/datum/symptom/disfiguration.html new file mode 100644 index 0000000000000..0b9fd9767e031 --- /dev/null +++ b/datum/symptom/disfiguration.html @@ -0,0 +1,9 @@ +/datum/symptom/disfiguration - /tg/ Station 13
/tg/ Station 13 - Modules - Types

disfiguration

*Disfiguration

+
\ No newline at end of file diff --git a/datum/symptom/dizzy.html b/datum/symptom/dizzy.html new file mode 100644 index 0000000000000..cdb6de0725a56 --- /dev/null +++ b/datum/symptom/dizzy.html @@ -0,0 +1,9 @@ +/datum/symptom/dizzy - /tg/ Station 13
/tg/ Station 13 - Modules - Types

dizzy

*Dizziness

+
\ No newline at end of file diff --git a/datum/symptom/fever.html b/datum/symptom/fever.html new file mode 100644 index 0000000000000..f1f48e312bec3 --- /dev/null +++ b/datum/symptom/fever.html @@ -0,0 +1,15 @@ +/datum/symptom/fever - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

fever

*Fever

+

Procs

Endremove the body temp change when removing symptom
on_stage_changeUpdate the body temp change based on the new stage
set_body_tempset_body_temp Sets the body temp change

Proc Details

End

remove the body temp change when removing symptom

on_stage_change

Update the body temp change based on the new stage

set_body_temp

set_body_temp Sets the body temp change

+

Sets the body temp change to the mob based on the stage and resistance of the disease +arguments:

+
\ No newline at end of file diff --git a/datum/symptom/fire.html b/datum/symptom/fire.html new file mode 100644 index 0000000000000..a3d60a45f88f4 --- /dev/null +++ b/datum/symptom/fire.html @@ -0,0 +1,9 @@ +/datum/symptom/fire - /tg/ Station 13
/tg/ Station 13 - Modules - Types

fire

*Spontaneous Combustion

+
\ No newline at end of file diff --git a/datum/symptom/itching.html b/datum/symptom/itching.html new file mode 100644 index 0000000000000..267b6242620dc --- /dev/null +++ b/datum/symptom/itching.html @@ -0,0 +1 @@ +/datum/symptom/itching - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

itching

Vars

itching_cooldownemote cooldowns
off_cooldown_scratchedif FALSE, there is a percentage chance that the mob will emote scratching while itching_cooldown is on cooldown. If TRUE, won't emote again until after the off cooldown scratch occurs.

Var Details

itching_cooldown

emote cooldowns

off_cooldown_scratched

if FALSE, there is a percentage chance that the mob will emote scratching while itching_cooldown is on cooldown. If TRUE, won't emote again until after the off cooldown scratch occurs.

\ No newline at end of file diff --git a/datum/symptom/sneeze.html b/datum/symptom/sneeze.html new file mode 100644 index 0000000000000..49fb77e2a831b --- /dev/null +++ b/datum/symptom/sneeze.html @@ -0,0 +1 @@ +/datum/symptom/sneeze - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sneeze

Vars

off_cooldown_sneezedif FALSE, there is a percentage chance that the mob will emote sneezing while sneeze_cooldown is on cooldown. If TRUE, won't emote again until after the off cooldown sneeze occurs.
sneeze_cooldownEmote cooldowns

Var Details

off_cooldown_sneezed

if FALSE, there is a percentage chance that the mob will emote sneezing while sneeze_cooldown is on cooldown. If TRUE, won't emote again until after the off cooldown sneeze occurs.

sneeze_cooldown

Emote cooldowns

\ No newline at end of file diff --git a/datum/symptom/visionloss.html b/datum/symptom/visionloss.html new file mode 100644 index 0000000000000..5310cebc9aefb --- /dev/null +++ b/datum/symptom/visionloss.html @@ -0,0 +1 @@ +/datum/symptom/visionloss - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

visionloss

Vars

remove_eyesAt max stage: If FALSE, cause blindness. If TRUE, cause their eyes to fall out.

Var Details

remove_eyes

At max stage: If FALSE, cause blindness. If TRUE, cause their eyes to fall out.

\ No newline at end of file diff --git a/datum/syndicate_contract.html b/datum/syndicate_contract.html new file mode 100644 index 0000000000000..d1ba8541b67fc --- /dev/null +++ b/datum/syndicate_contract.html @@ -0,0 +1,6 @@ +/datum/syndicate_contract - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

syndicate_contract

Vars

contractThe related Objective datum for the contract, holding the target and such.
idThe 'id' of this particular contract. Used to keep track of statuses from TGUI.
payout_typeThe level of payout, which affects the TC we get paid on completion.
ransomHow much we will pay out upon completion. This is not the TC completion, it's typically credits.
statusThe current status of the contract. Starts off by default.
target_rankThe job position of the target.
victim_belongingsList of everything found on the victim at the time of contracting, used to return their stuff afterwards.
victim_timeridtimerid for stuff that handles victim chat messages, effects and returnal
wanted_messageFlavortext wanted message for the person we're after.

Procs

handle_victim_experiencehandle_victim_experience
on_victim_shippedCalled if the victim is being returned to the station early, when from the black market.
return_victimWe're returning the victim to the station
returnal_side_effectsThe annoying negative effects applied to the victim when returned to the station.

Var Details

contract

The related Objective datum for the contract, holding the target and such.

id

The 'id' of this particular contract. Used to keep track of statuses from TGUI.

payout_type

The level of payout, which affects the TC we get paid on completion.

ransom

How much we will pay out upon completion. This is not the TC completion, it's typically credits.

status

The current status of the contract. Starts off by default.

target_rank

The job position of the target.

victim_belongings

List of everything found on the victim at the time of contracting, used to return their stuff afterwards.

victim_timerid

timerid for stuff that handles victim chat messages, effects and returnal

wanted_message

Flavortext wanted message for the person we're after.

Proc Details

handle_victim_experience

handle_victim_experience

+

Handles the effects given to victims upon being contracted. +We heal them up and cause them immersive effects, just for fun. +Args: +victim - The person we're harassing +level - The current stage of harassement they are facing. This increases by itself, looping until finished.

on_victim_shipped

Called if the victim is being returned to the station early, when from the black market.

return_victim

We're returning the victim to the station

returnal_side_effects

The annoying negative effects applied to the victim when returned to the station.

\ No newline at end of file diff --git a/datum/targeting_strategy.html b/datum/targeting_strategy.html new file mode 100644 index 0000000000000..166df94ce2e4e --- /dev/null +++ b/datum/targeting_strategy.html @@ -0,0 +1,2 @@ +/datum/targeting_strategy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

targeting_strategy

Datum for basic mobs to define what they can attack, +Global, just like ai_behaviors

Procs

can_attackReturns true or false depending on if the target can be attacked by the mob
find_hidden_mobsReturns something the target might be hiding inside of

Proc Details

can_attack

Returns true or false depending on if the target can be attacked by the mob

find_hidden_mobs

Returns something the target might be hiding inside of

\ No newline at end of file diff --git a/datum/targeting_strategy/basic.html b/datum/targeting_strategy/basic.html new file mode 100644 index 0000000000000..ebf6c36a20baf --- /dev/null +++ b/datum/targeting_strategy/basic.html @@ -0,0 +1 @@ +/datum/targeting_strategy/basic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

basic

Vars

check_factions_exactlyWhen we do our basic faction check, do we look for exact faction matches?
ignore_sightWhether we care for seeing the target or not
minimum_stat_keyBlackboard key containing the minimum stat of a living mob to target
target_wounded_keyIf this blackboard key is TRUE, makes us only target wounded mobs

Procs

faction_checkReturns true if the mob and target share factions

Var Details

check_factions_exactly

When we do our basic faction check, do we look for exact faction matches?

ignore_sight

Whether we care for seeing the target or not

minimum_stat_key

Blackboard key containing the minimum stat of a living mob to target

target_wounded_key

If this blackboard key is TRUE, makes us only target wounded mobs

Proc Details

faction_check

Returns true if the mob and target share factions

\ No newline at end of file diff --git a/datum/targeting_strategy/basic/holding_object.html b/datum/targeting_strategy/basic/holding_object.html new file mode 100644 index 0000000000000..1da6537aff23f --- /dev/null +++ b/datum/targeting_strategy/basic/holding_object.html @@ -0,0 +1,3 @@ +/datum/targeting_strategy/basic/holding_object - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

holding_object

Find mobs who are holding the bb configurable object type

+

This is an extension of basic targeting behaviour, that allows you to +only target the mob if they have a specific item in their hand.

Vars

target_item_keyBB key that holds the target typepath to use

Procs

can_attackReturns true or false depending on if the target can be attacked by the mob

Var Details

target_item_key

BB key that holds the target typepath to use

Proc Details

can_attack

Returns true or false depending on if the target can be attacked by the mob

\ No newline at end of file diff --git a/datum/targeting_strategy/basic/mook.html b/datum/targeting_strategy/basic/mook.html new file mode 100644 index 0000000000000..8be7265d13e15 --- /dev/null +++ b/datum/targeting_strategy/basic/mook.html @@ -0,0 +1 @@ +/datum/targeting_strategy/basic/mook - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mook

Procs

faction_checkcheck for faction if not a ash walker, otherwise just attack

Proc Details

faction_check

check for faction if not a ash walker, otherwise just attack

\ No newline at end of file diff --git a/datum/targeting_strategy/basic/mushroom.html b/datum/targeting_strategy/basic/mushroom.html new file mode 100644 index 0000000000000..e9e9c9842c339 --- /dev/null +++ b/datum/targeting_strategy/basic/mushroom.html @@ -0,0 +1 @@ +/datum/targeting_strategy/basic/mushroom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mushroom

Procs

faction_checkwe only attacked another mushrooms

Proc Details

faction_check

we only attacked another mushrooms

\ No newline at end of file diff --git a/datum/targeting_strategy/basic/not_friends.html b/datum/targeting_strategy/basic/not_friends.html new file mode 100644 index 0000000000000..5a1a243e2e365 --- /dev/null +++ b/datum/targeting_strategy/basic/not_friends.html @@ -0,0 +1 @@ +/datum/targeting_strategy/basic/not_friends - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

not_friends

Don't target an atom in our friends list (or turfs), anything else is fair game

Vars

attack_closed_turfIf we can try to closed turfs or not
attack_until_past_statStop regarding someone as a valid target once they pass this stat level, setting it to DEAD means you will happily attack corpses

Procs

can_attackReturns true or false depending on if the target can be attacked by the mob
faction_checkfriends dont care about factions

Var Details

attack_closed_turf

If we can try to closed turfs or not

attack_until_past_stat

Stop regarding someone as a valid target once they pass this stat level, setting it to DEAD means you will happily attack corpses

Proc Details

can_attack

Returns true or false depending on if the target can be attacked by the mob

faction_check

friends dont care about factions

\ No newline at end of file diff --git a/datum/targeting_strategy/basic/of_size.html b/datum/targeting_strategy/basic/of_size.html new file mode 100644 index 0000000000000..83d4bddb385d3 --- /dev/null +++ b/datum/targeting_strategy/basic/of_size.html @@ -0,0 +1 @@ +/datum/targeting_strategy/basic/of_size - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

of_size

Subtype which searches for mobs of a size relative to ours

Vars

find_smallerIf true, we will return mobs which are smaller than us. If false, larger.
inclusiveIf true, we will return mobs which are the same size as us.

Var Details

find_smaller

If true, we will return mobs which are smaller than us. If false, larger.

inclusive

If true, we will return mobs which are the same size as us.

\ No newline at end of file diff --git a/datum/targeting_strategy/lightgeist.html b/datum/targeting_strategy/lightgeist.html new file mode 100644 index 0000000000000..6247369393d64 --- /dev/null +++ b/datum/targeting_strategy/lightgeist.html @@ -0,0 +1 @@ +/datum/targeting_strategy/lightgeist - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lightgeist

Attack only mobs who have damage that we can heal, I think this is specific enough not to be a generic type

Vars

heal_biotypesTypes of mobs we can heal, not in a blackboard key because there is no point changing this at runtime because the component will already exist
required_bodytypeType of limb we can heal

Var Details

heal_biotypes

Types of mobs we can heal, not in a blackboard key because there is no point changing this at runtime because the component will already exist

required_bodytype

Type of limb we can heal

\ No newline at end of file diff --git a/datum/team.html b/datum/team.html new file mode 100644 index 0000000000000..ced8b32422cef --- /dev/null +++ b/datum/team.html @@ -0,0 +1,8 @@ +/datum/team - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

team

Vars

member_nameWhat members are considered in the roundend report (ex: 'cultists')
membersList of all members in the team
nameName of the entire Team
objectivesCommon objectives, these won't be added or removed automatically, subtypes handle this, this is here for bookkeeping purposes.
players_spawnedList of players in a team, mainly used to make sure someone cant spawn ghost roll more then once in a row
show_roundend_reportWhether the team shows up in the roundend report.

Procs

antag_listing_entryBuilds section for the team
antag_listing_nameCustom names for individuals in a team
get_team_antagsFinds all minds in a team antagonist, then checks their individual datums +Checks if that antag datum is in the team, then checks if it's the right datum +If it all passes, they're put in the list

Var Details

member_name

What members are considered in the roundend report (ex: 'cultists')

members

List of all members in the team

name

Name of the entire Team

objectives

Common objectives, these won't be added or removed automatically, subtypes handle this, this is here for bookkeeping purposes.

players_spawned

List of players in a team, mainly used to make sure someone cant spawn ghost roll more then once in a row

show_roundend_report

Whether the team shows up in the roundend report.

Proc Details

antag_listing_entry

Builds section for the team

antag_listing_name

Custom names for individuals in a team

get_team_antags

Finds all minds in a team antagonist, then checks their individual datums +Checks if that antag datum is in the team, then checks if it's the right datum +If it all passes, they're put in the list

+

Args: +antag_datum - The antag datum path we are looking for +include_subtypes - Whether we allow suntypes of the antag_datum, otherwise it will stricly be type

\ No newline at end of file diff --git a/datum/team/abductor_team.html b/datum/team/abductor_team.html new file mode 100644 index 0000000000000..772d3f7708924 --- /dev/null +++ b/datum/team/abductor_team.html @@ -0,0 +1 @@ +/datum/team/abductor_team - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

abductor_team

Vars

abducteesList of all brainwashed victims' minds

Var Details

abductees

List of all brainwashed victims' minds

\ No newline at end of file diff --git a/datum/team/ashwalkers.html b/datum/team/ashwalkers.html new file mode 100644 index 0000000000000..d5fc714727429 --- /dev/null +++ b/datum/team/ashwalkers.html @@ -0,0 +1 @@ +/datum/team/ashwalkers - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ashwalkers

Vars

eggs_createdA list of how many eggs were created by the Necropolis
sacrifices_madeA list of "worthy" (meat-bearing) sacrifices made to the Necropolis

Var Details

eggs_created

A list of how many eggs were created by the Necropolis

sacrifices_made

A list of "worthy" (meat-bearing) sacrifices made to the Necropolis

\ No newline at end of file diff --git a/datum/team/assault_operatives.html b/datum/team/assault_operatives.html new file mode 100644 index 0000000000000..648dbe03c1e25 --- /dev/null +++ b/datum/team/assault_operatives.html @@ -0,0 +1 @@ +/datum/team/assault_operatives - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

assault_operatives

ASSAULT OPERATIVE TEAM DATUM

Vars

core_objectiveOur core objective, it's obviously goldeneye.

Var Details

core_objective

Our core objective, it's obviously goldeneye.

\ No newline at end of file diff --git a/datum/team/battlecruiser.html b/datum/team/battlecruiser.html new file mode 100644 index 0000000000000..76933963b3b8d --- /dev/null +++ b/datum/team/battlecruiser.html @@ -0,0 +1 @@ +/datum/team/battlecruiser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

battlecruiser

Vars

core_objectiveThe central objective of this battlecruiser
nukeThe assigned nuke of this team

Var Details

core_objective

The central objective of this battlecruiser

nuke

The assigned nuke of this team

\ No newline at end of file diff --git a/datum/team/brother_team.html b/datum/team/brother_team.html new file mode 100644 index 0000000000000..933f644a8ed9b --- /dev/null +++ b/datum/team/brother_team.html @@ -0,0 +1 @@ +/datum/team/brother_team - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

brother_team

Procs

add_brotherAdds a new brother to the team
set_brothers_leftControl how many more people we can recruit

Proc Details

add_brother

Adds a new brother to the team

set_brothers_left

Control how many more people we can recruit

\ No newline at end of file diff --git a/datum/team/cult.html b/datum/team/cult.html new file mode 100644 index 0000000000000..4ffb8fbb6f6f9 --- /dev/null +++ b/datum/team/cult.html @@ -0,0 +1 @@ +/datum/team/cult - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cult

Vars

blood_targetThe blood mark target
blood_target_imageImage of the blood mark target
blood_target_reset_timerTimer for the blood mark expiration
cult_ascendentHas the cult ascended, and gotten halos?
cult_leader_datumThe cult leader
cult_risenHas the cult risen, and gotten red eyes?
cult_vote_calledHas a vote been called for a leader?
narsie_summonedHas narsie been summoned yet?
reckoning_completeHas the mass teleport been used yet?
size_at_maximumHow large were we at max size.
true_cultistslist of cultists just before summoning Narsie
unlocked_heretic_itemsList that keeps track of which items have been unlocked after a heretic was sacked.

Procs

set_blood_targetSets a blood target for the cult.
unset_blood_targetUnsets out blood target, clearing the images from all the cultists.
unset_blood_target_and_timerUnsets our blood target when they get deleted.

Var Details

blood_target

The blood mark target

blood_target_image

Image of the blood mark target

blood_target_reset_timer

Timer for the blood mark expiration

cult_ascendent

Has the cult ascended, and gotten halos?

cult_leader_datum

The cult leader

cult_risen

Has the cult risen, and gotten red eyes?

cult_vote_called

Has a vote been called for a leader?

narsie_summoned

Has narsie been summoned yet?

reckoning_complete

Has the mass teleport been used yet?

size_at_maximum

How large were we at max size.

true_cultists

list of cultists just before summoning Narsie

unlocked_heretic_items

List that keeps track of which items have been unlocked after a heretic was sacked.

Proc Details

set_blood_target

Sets a blood target for the cult.

unset_blood_target

Unsets out blood target, clearing the images from all the cultists.

unset_blood_target_and_timer

Unsets our blood target when they get deleted.

\ No newline at end of file diff --git a/datum/team/nation.html b/datum/team/nation.html new file mode 100644 index 0000000000000..c893ce0b51d4c --- /dev/null +++ b/datum/team/nation.html @@ -0,0 +1,8 @@ +/datum/team/nation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

nation

Vars

dangerous_nationwhether to forge objectives attacking other nations
departmentdepartment said team is related to
potential_recruitsa list of ranks that can join this nation.

Procs

generate_nation_objectivesCalled by department revolt event to give the team some objectives.
new_possible_separatistSignal for adding new crewmembers (players joining the game) to the revolution.

Var Details

dangerous_nation

whether to forge objectives attacking other nations

department

department said team is related to

potential_recruits

a list of ranks that can join this nation.

Proc Details

generate_nation_objectives

Called by department revolt event to give the team some objectives.

+

Arguments: +dangerous_nation: whether this nation will get objectives that are very very bloodthirsty, like killing other departments. +target_nation: string of the nation they need to destroy/befriend

new_possible_separatist

Signal for adding new crewmembers (players joining the game) to the revolution.

+

Arguments: +source: global signal, so this is SSdcs. +crewmember: new onboarding crewmember. +rank: new crewmember's rank.

\ No newline at end of file diff --git a/datum/team/revolution.html b/datum/team/revolution.html new file mode 100644 index 0000000000000..73eb844258d89 --- /dev/null +++ b/datum/team/revolution.html @@ -0,0 +1,11 @@ +/datum/team/revolution - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

revolution

Vars

ex_headrevsList of all ex-headrevs. Useful because dynamic removes antag status when it ends, so this can be kept for the roundend report.
ex_revsList of all ex-revs. Useful because dynamic removes antag status when it ends, so this can be kept for the roundend report.
heads_objectiveThe objective of the heads of staff, aka to kill the headrevs.
max_headrevsMaximum number of headrevs

Procs

check_heads_victoryChecks if heads have won
check_rev_victoryChecks if revs have won
defeat_effectsHandles effects of revs losing, such as making ex-headrevs unrevivable and setting up head of staff memories.
get_head_revolutionariesReturns a list of all headrevs.
process_victoryUpdates the state of the world depending on if revs won or loss. +Returns who won, at which case this method should no longer be called.
round_resultMutates the ticker to report that the revs have won
save_membersSaves a list of all ex-headrevs and a list of all revs.
update_objectivesProc called on periodic timer. +Updates the rev team's objectives to make sure all heads are targets, useful when new heads latejoin. +Propagates all objectives to all revs.
update_rev_headsProc called on periodic timer. +Tries to make sure an appropriate number of headrevs are part of the revolution. +Will promote up revs to headrevs as necessary based on the hard max_headrevs cap and the soft cap based on the number of heads of staff and sec.
victory_effectsHandles any pre-round-ending effects on rev victory. An example use case is recording memories.

Var Details

ex_headrevs

List of all ex-headrevs. Useful because dynamic removes antag status when it ends, so this can be kept for the roundend report.

ex_revs

List of all ex-revs. Useful because dynamic removes antag status when it ends, so this can be kept for the roundend report.

heads_objective

The objective of the heads of staff, aka to kill the headrevs.

max_headrevs

Maximum number of headrevs

Proc Details

check_heads_victory

Checks if heads have won

check_rev_victory

Checks if revs have won

defeat_effects

Handles effects of revs losing, such as making ex-headrevs unrevivable and setting up head of staff memories.

get_head_revolutionaries

Returns a list of all headrevs.

process_victory

Updates the state of the world depending on if revs won or loss. +Returns who won, at which case this method should no longer be called.

round_result

Mutates the ticker to report that the revs have won

save_members

Saves a list of all ex-headrevs and a list of all revs.

update_objectives

Proc called on periodic timer. +Updates the rev team's objectives to make sure all heads are targets, useful when new heads latejoin. +Propagates all objectives to all revs.

update_rev_heads

Proc called on periodic timer. +Tries to make sure an appropriate number of headrevs are part of the revolution. +Will promote up revs to headrevs as necessary based on the hard max_headrevs cap and the soft cap based on the number of heads of staff and sec.

victory_effects

Handles any pre-round-ending effects on rev victory. An example use case is recording memories.

\ No newline at end of file diff --git a/datum/team/xeno/captive.html b/datum/team/xeno/captive.html new file mode 100644 index 0000000000000..5deee8e0b1579 --- /dev/null +++ b/datum/team/xeno/captive.html @@ -0,0 +1 @@ +/datum/team/xeno/captive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

captive

Captive Xenomorphs team

Vars

progenitorThe first member of this team, presumably the queen.

Var Details

progenitor

The first member of this team, presumably the queen.

\ No newline at end of file diff --git a/datum/techweb.html b/datum/techweb.html new file mode 100644 index 0000000000000..37324fc787fd9 --- /dev/null +++ b/datum/techweb.html @@ -0,0 +1,47 @@ +/datum/techweb - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Techweb

A datum representing a research techweb

+

Techweb datums are meant to store unlocked research, being able to be stored +on research consoles, servers, and disks. They are NOT global.

Vars

available_experimentsThis is a list of all incomplete experiment datums that are accessible for scientists to complete
available_nodesNodes that can immediately be researched, all reqs met. assoc list, id = TRUE
boosted_nodesAlready boosted nodes that can't be boosted again. node id = path of boost object.
completed_experimentsA list of all experiment datums that have been complete
consoles_accessingAll RD consoles connected to this individual techweb.
custom_designsCustom inserted designs like from disks that should survive recalculation.
deconstructed_itemsList of items already deconstructed for research points, preventing infinite research point generation.
discovered_mutationsMutations discovered by genetics, this way they are shared and cant be destroyed by destroying a single console
hidden_nodesHidden nodes. id = TRUE. Used for unhiding nodes when requirements are met by removing the entry of the node.
idThe id/name of the whole Techweb viewable to players.
income_modifierA multiplier applied to all research gain, cut in half if the Master server was sabotaged.
last_bitcoinsCurrent per-second production, used for display only.
last_incomeThe amount of research points generated the techweb generated the latest time it generated.
organizationOrganization name, used for display
published_papersAssoc list of papers already published by the crew. +published_papers[experiment_typepath][tier] = paper +Filled with nulls on init, populated only on publication.
research_logsGame logs of research nodes, "node_name" "node_cost" "node_researcher" "node_research_location"
research_pointsAvailable research points, type = number
research_queue_nodesAssoc list of nodes queued for automatic research when there are enough points available +research_queue_nodes[node_id] = user_enqueued
researched_designsDesigns that are available for use. Assoc list, id = TRUE
researched_nodesAlready unlocked and all designs are now available. Assoc list, id = TRUE
scientific_cooperationAssoc list of relationships with various partners +scientific_cooperation[partner_typepath] = relationship
should_generate_pointsBoolean on whether the techweb should generate research points overtime.
skipped_experiment_typesAssoc list of all experiment datums that have been skipped, to tech point reward for completing them - +That is, upon researching a node without completing its associated discounts, their experiments go here. +Completing these experiments will have a refund.
techweb_serversAll research servers connected to this individual techweb.
tiersAssoc list, id = number, 1 is available, 2 is all reqs are 1, so on
visible_nodesVisible nodes, doesn't mean it can be researched. Assoc list, id = TRUE

Procs

add_design_by_idadd_design_by_id +The main way to add add designs to techweb +Uses the techweb node's ID +Args: +id - the ID of the techweb node to research +custom - Boolean on whether the node should also be added to custom_designs +add_to - A custom list to add the node to, overwriting research_designs.
add_experimentAdds an experiment to this techweb by its type, ensures that no duplicates are added.
add_experimentsAdds a list of experiments to this techweb by their types, ensures that no duplicates are added.
add_scientific_paperPublish the paper into our techweb. Cancel if we are not allowed to.
boost_techweb_nodeBoosts a techweb node.
can_unlock_nodeChecks if a node can be unlocked on this techweb, having the required points and experiments
complete_experimentNotifies the techweb that an experiment has been completed, updating internal state of the techweb to reflect this.
have_experiments_for_nodeChecks if all experiments have been completed for a given node on this techweb
initialize_published_papersFill published_papers with nulls.
unhide_nodeRemoves a node from the hidden_nodes list, making it viewable and researchable (if no experiments are required).

Var Details

available_experiments

This is a list of all incomplete experiment datums that are accessible for scientists to complete

available_nodes

Nodes that can immediately be researched, all reqs met. assoc list, id = TRUE

boosted_nodes

Already boosted nodes that can't be boosted again. node id = path of boost object.

completed_experiments

A list of all experiment datums that have been complete

consoles_accessing

All RD consoles connected to this individual techweb.

custom_designs

Custom inserted designs like from disks that should survive recalculation.

deconstructed_items

List of items already deconstructed for research points, preventing infinite research point generation.

discovered_mutations

Mutations discovered by genetics, this way they are shared and cant be destroyed by destroying a single console

hidden_nodes

Hidden nodes. id = TRUE. Used for unhiding nodes when requirements are met by removing the entry of the node.

id

The id/name of the whole Techweb viewable to players.

income_modifier

A multiplier applied to all research gain, cut in half if the Master server was sabotaged.

last_bitcoins

Current per-second production, used for display only.

last_income

The amount of research points generated the techweb generated the latest time it generated.

organization

Organization name, used for display

published_papers

Assoc list of papers already published by the crew. +published_papers[experiment_typepath][tier] = paper +Filled with nulls on init, populated only on publication.

research_logs

Game logs of research nodes, "node_name" "node_cost" "node_researcher" "node_research_location"

research_points

Available research points, type = number

research_queue_nodes

Assoc list of nodes queued for automatic research when there are enough points available +research_queue_nodes[node_id] = user_enqueued

researched_designs

Designs that are available for use. Assoc list, id = TRUE

researched_nodes

Already unlocked and all designs are now available. Assoc list, id = TRUE

scientific_cooperation

Assoc list of relationships with various partners +scientific_cooperation[partner_typepath] = relationship

should_generate_points

Boolean on whether the techweb should generate research points overtime.

skipped_experiment_types

Assoc list of all experiment datums that have been skipped, to tech point reward for completing them - +That is, upon researching a node without completing its associated discounts, their experiments go here. +Completing these experiments will have a refund.

techweb_servers

All research servers connected to this individual techweb.

tiers

Assoc list, id = number, 1 is available, 2 is all reqs are 1, so on

visible_nodes

Visible nodes, doesn't mean it can be researched. Assoc list, id = TRUE

Proc Details

add_design_by_id

add_design_by_id +The main way to add add designs to techweb +Uses the techweb node's ID +Args: +id - the ID of the techweb node to research +custom - Boolean on whether the node should also be added to custom_designs +add_to - A custom list to add the node to, overwriting research_designs.

add_experiment

Adds an experiment to this techweb by its type, ensures that no duplicates are added.

+

Arguments:

+

add_experiments

Adds a list of experiments to this techweb by their types, ensures that no duplicates are added.

+

Arguments:

+

add_scientific_paper

Publish the paper into our techweb. Cancel if we are not allowed to.

boost_techweb_node

Boosts a techweb node.

can_unlock_node

Checks if a node can be unlocked on this techweb, having the required points and experiments

+

Arguments:

+

complete_experiment

Notifies the techweb that an experiment has been completed, updating internal state of the techweb to reflect this.

+

Arguments:

+

have_experiments_for_node

Checks if all experiments have been completed for a given node on this techweb

+

Arguments:

+

initialize_published_papers

Fill published_papers with nulls.

unhide_node

Removes a node from the hidden_nodes list, making it viewable and researchable (if no experiments are required).

\ No newline at end of file diff --git a/datum/techweb/autounlocking.html b/datum/techweb/autounlocking.html new file mode 100644 index 0000000000000..d10e9d50d3899 --- /dev/null +++ b/datum/techweb/autounlocking.html @@ -0,0 +1,3 @@ +/datum/techweb/autounlocking - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

autounlocking

Techweb node that automatically unlocks a given buildtype. +Saved in GLOB.autounlock_techwebs and used to prevent +creating new ones each time it's needed.

Vars

allowed_buildtypesThe buildtype we will automatically unlock.
hacked_designsDesigns that are only available when the printer is hacked.

Var Details

allowed_buildtypes

The buildtype we will automatically unlock.

hacked_designs

Designs that are only available when the printer is hacked.

\ No newline at end of file diff --git a/datum/techweb_node.html b/datum/techweb_node.html new file mode 100644 index 0000000000000..98ea4512cf15a --- /dev/null +++ b/datum/techweb_node.html @@ -0,0 +1,8 @@ +/datum/techweb_node - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Techweb Node

A datum representing a researchable node in the techweb.

+

Techweb nodes are GLOBAL, there should only be one instance of them in the game. Persistant +changes should never be made to them in-game. USE SSRESEARCH PROCS TO OBTAIN REFERENCES. +DO NOT REFERENCE OUTSIDE OF SSRESEARCH OR YOU WILL FUCK UP GC.

Vars

announce_channelsIf set, the researched node will be announced on these channels by an announcement system +with 'announce_research_node' set to TRUE when researched by the station. +Not every node has to be announced if you want, some are best kept a little "subtler", like Illegal Weapons.
autounlock_by_boostBoosting this will autounlock this node
categoryThe category of the node
descriptionA description of the node to show on UIs
discount_experimentsIf completed, these experiments give a specific point amount discount to the node.area
display_nameThe name of the node as it is shown on UIs
experimentalIf the tech can be randomly generated by BEPIS tech as a reward. Meant to be fully given in tech disks, not researched
experiments_to_unlockWhen this node is completed, allows these experiments to be performed.
hiddenWhether it starts off hidden
idInternal ID of the node
illegal_mech_nodeHidden Mech nodes unlocked when mech fabricator emaged.
required_experimentsThe list of experiments required to research the node
required_items_to_unlockList of items you need to deconstruct to unlock this node.
research_costsThe points cost to research the node, type = amount
show_on_wikiWhether or not this node should show on the wiki
starting_nodeWhether it's available without any research
unlock_idsCALCULATED FROM OTHER NODE'S PREREQUISITIES. Associated list id = TRUE

Procs

on_station_researchProc called when the Station (Science techweb specific) researches a node.

Var Details

announce_channels

If set, the researched node will be announced on these channels by an announcement system +with 'announce_research_node' set to TRUE when researched by the station. +Not every node has to be announced if you want, some are best kept a little "subtler", like Illegal Weapons.

autounlock_by_boost

Boosting this will autounlock this node

category

The category of the node

description

A description of the node to show on UIs

discount_experiments

If completed, these experiments give a specific point amount discount to the node.area

display_name

The name of the node as it is shown on UIs

experimental

If the tech can be randomly generated by BEPIS tech as a reward. Meant to be fully given in tech disks, not researched

experiments_to_unlock

When this node is completed, allows these experiments to be performed.

hidden

Whether it starts off hidden

id

Internal ID of the node

illegal_mech_node

Hidden Mech nodes unlocked when mech fabricator emaged.

required_experiments

The list of experiments required to research the node

required_items_to_unlock

List of items you need to deconstruct to unlock this node.

research_costs

The points cost to research the node, type = amount

show_on_wiki

Whether or not this node should show on the wiki

starting_node

Whether it's available without any research

unlock_ids

CALCULATED FROM OTHER NODE'S PREREQUISITIES. Associated list id = TRUE

Proc Details

on_station_research

Proc called when the Station (Science techweb specific) researches a node.

\ No newline at end of file diff --git a/datum/techweb_node/consoles.html b/datum/techweb_node/consoles.html new file mode 100644 index 0000000000000..f5213fba2f362 --- /dev/null +++ b/datum/techweb_node/consoles.html @@ -0,0 +1 @@ +/datum/techweb_node/consoles - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

consoles

Procs

NewComputer tech

Proc Details

New

Computer tech

\ No newline at end of file diff --git a/datum/techweb_node/cytology.html b/datum/techweb_node/cytology.html new file mode 100644 index 0000000000000..cee1dac616158 --- /dev/null +++ b/datum/techweb_node/cytology.html @@ -0,0 +1 @@ +/datum/techweb_node/cytology - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cytology

Procs

NewMedical

Proc Details

New

Medical

\ No newline at end of file diff --git a/datum/techweb_node/energy_manipulation.html b/datum/techweb_node/energy_manipulation.html new file mode 100644 index 0000000000000..e4416bde723d7 --- /dev/null +++ b/datum/techweb_node/energy_manipulation.html @@ -0,0 +1 @@ +/datum/techweb_node/energy_manipulation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

energy_manipulation

Procs

NewEMP tech

Proc Details

New

EMP tech

\ No newline at end of file diff --git a/datum/techweb_node/fusion.html b/datum/techweb_node/fusion.html new file mode 100644 index 0000000000000..74edb0193f02c --- /dev/null +++ b/datum/techweb_node/fusion.html @@ -0,0 +1 @@ +/datum/techweb_node/fusion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

fusion

Procs

Newengineering tech

Proc Details

New

engineering tech

\ No newline at end of file diff --git a/datum/techweb_node/hydroponics.html b/datum/techweb_node/hydroponics.html new file mode 100644 index 0000000000000..38631e75cd2eb --- /dev/null +++ b/datum/techweb_node/hydroponics.html @@ -0,0 +1 @@ +/datum/techweb_node/hydroponics - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

hydroponics

Procs

NewTools

Proc Details

New

Tools

\ No newline at end of file diff --git a/datum/techweb_node/robotics.html b/datum/techweb_node/robotics.html new file mode 100644 index 0000000000000..ebc2d91bb25cb --- /dev/null +++ b/datum/techweb_node/robotics.html @@ -0,0 +1 @@ +/datum/techweb_node/robotics - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

robotics

Procs

Newrobotics tech

Proc Details

New

robotics tech

\ No newline at end of file diff --git a/datum/tgs_api/v5.html b/datum/tgs_api/v5.html new file mode 100644 index 0000000000000..cc42bb5fbdfd7 --- /dev/null +++ b/datum/tgs_api/v5.html @@ -0,0 +1 @@ +/datum/tgs_api/v5 - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

v5

Vars

intercepted_message_queueList of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call
offline_message_queueList of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call

Var Details

intercepted_message_queue

List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call

offline_message_queue

List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call

\ No newline at end of file diff --git a/datum/tgs_chat_channel.html b/datum/tgs_chat_channel.html new file mode 100644 index 0000000000000..95208bc175529 --- /dev/null +++ b/datum/tgs_chat_channel.html @@ -0,0 +1 @@ +/datum/tgs_chat_channel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tgs_chat_channel

Represents a connected chat channel.

Vars

connection_nameName of the chat connection. This is the IRC server address or the Discord guild.
custom_tagTag string associated with the channel in TGS.
embeds_supported[TRUE]/[FALSE] if the channel supports embeds.
friendly_nameUser friendly name of the channel.
idTGS internal channel ID.
is_admin_channel[TRUE]/[FALSE] based on if the server operator has marked this channel for game admins only.
is_private_channel[TRUE]/[FALSE] if the channel is a private message channel for a /datum/tgs_chat_user.

Var Details

connection_name

Name of the chat connection. This is the IRC server address or the Discord guild.

custom_tag

Tag string associated with the channel in TGS.

embeds_supported

[TRUE]/[FALSE] if the channel supports embeds.

friendly_name

User friendly name of the channel.

id

TGS internal channel ID.

is_admin_channel

[TRUE]/[FALSE] based on if the server operator has marked this channel for game admins only.

is_private_channel

[TRUE]/[FALSE] if the channel is a private message channel for a /datum/tgs_chat_user.

\ No newline at end of file diff --git a/datum/tgs_chat_command.html b/datum/tgs_chat_command.html new file mode 100644 index 0000000000000..315ec0e357174 --- /dev/null +++ b/datum/tgs_chat_command.html @@ -0,0 +1,7 @@ +/datum/tgs_chat_command - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tgs_chat_command

User definable chat command. This abstract version MUST be overridden to be used.

Vars

admin_onlyIf this command should be available to game administrators only.
help_textThe help text displayed for this command.
ignore_typeA subtype of /datum/tgs_chat_command that is ignored when enumerating available commands. Use this to create shared base /datums for commands.
nameThe string to trigger this command on a chat bot. e.g @bot name ... or !tgs name ....

Procs

RunProcess command activation. Should return a /datum/tgs_message_content to respond to the issuer with. +MUST be implemented

Var Details

admin_only

If this command should be available to game administrators only.

help_text

The help text displayed for this command.

ignore_type

A subtype of /datum/tgs_chat_command that is ignored when enumerating available commands. Use this to create shared base /datums for commands.

name

The string to trigger this command on a chat bot. e.g @bot name ... or !tgs name ....

Proc Details

Run

Process command activation. Should return a /datum/tgs_message_content to respond to the issuer with. +MUST be implemented

+
\ No newline at end of file diff --git a/datum/tgs_chat_command/validated.html b/datum/tgs_chat_command/validated.html new file mode 100644 index 0000000000000..d10fac980bfe3 --- /dev/null +++ b/datum/tgs_chat_command/validated.html @@ -0,0 +1 @@ +/datum/tgs_chat_command/validated - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

validated

subtype tgs chat command with validated admin ranks. Only supports discord.

Vars

required_rightsvalidate discord userid is linked to a game admin with these flags.

Procs

Runcalled by tgs
Validated_RunCalled if the sender passes validation checks or if those checks are disabled.

Var Details

required_rights

validate discord userid is linked to a game admin with these flags.

Proc Details

Run

called by tgs

Validated_Run

Called if the sender passes validation checks or if those checks are disabled.

\ No newline at end of file diff --git a/datum/tgs_chat_embed/field.html b/datum/tgs_chat_embed/field.html new file mode 100644 index 0000000000000..fee72838c4cff --- /dev/null +++ b/datum/tgs_chat_embed/field.html @@ -0,0 +1 @@ +/datum/tgs_chat_embed/field - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

field

See https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure for details.

Vars

nameMust be set in New().
valueMust be set in New().

Procs

NewCreate a /datum/tgs_chat_embed/field.

Var Details

name

Must be set in New().

value

Must be set in New().

Proc Details

New

Create a /datum/tgs_chat_embed/field.

\ No newline at end of file diff --git a/datum/tgs_chat_embed/footer.html b/datum/tgs_chat_embed/footer.html new file mode 100644 index 0000000000000..d41940db31052 --- /dev/null +++ b/datum/tgs_chat_embed/footer.html @@ -0,0 +1 @@ +/datum/tgs_chat_embed/footer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

footer

See https://discord.com/developers/docs/resources/message#embed-object-embed-footer-structure for details.

Vars

textMust be set in New().

Procs

NewCreate a /datum/tgs_chat_embed/footer.

Var Details

text

Must be set in New().

Proc Details

New

Create a /datum/tgs_chat_embed/footer.

\ No newline at end of file diff --git a/datum/tgs_chat_embed/media.html b/datum/tgs_chat_embed/media.html new file mode 100644 index 0000000000000..29293ece13088 --- /dev/null +++ b/datum/tgs_chat_embed/media.html @@ -0,0 +1 @@ +/datum/tgs_chat_embed/media - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

media

Common datum for similar Discord embed medias.

Vars

urlMust be set in New().

Procs

NewCreate a /datum/tgs_chat_embed.

Var Details

url

Must be set in New().

Proc Details

New

Create a /datum/tgs_chat_embed.

\ No newline at end of file diff --git a/datum/tgs_chat_embed/provider/author.html b/datum/tgs_chat_embed/provider/author.html new file mode 100644 index 0000000000000..ccb6f25b8b950 --- /dev/null +++ b/datum/tgs_chat_embed/provider/author.html @@ -0,0 +1 @@ +/datum/tgs_chat_embed/provider/author - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

author

See https://discord.com/developers/docs/resources/message#embed-object-embed-author-structure for details. Must have name set in New().

Procs

NewCreate a /datum/tgs_chat_embed/footer.

Proc Details

New

Create a /datum/tgs_chat_embed/footer.

\ No newline at end of file diff --git a/datum/tgs_chat_embed/structure.html b/datum/tgs_chat_embed/structure.html new file mode 100644 index 0000000000000..d375b4431a226 --- /dev/null +++ b/datum/tgs_chat_embed/structure.html @@ -0,0 +1 @@ +/datum/tgs_chat_embed/structure - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

structure

User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/message#embed-object for details.

Vars

colourColour must be #AARRGGBB or #RRGGBB hex string.
imageSee https://discord.com/developers/docs/resources/message#embed-object-embed-image-structure for details.
thumbnailSee https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure for details.
timestampTimestamp must be encoded as: time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss"). Use the active timezone.
videoSee https://discord.com/developers/docs/resources/message#embed-object-embed-video-structure for details.

Var Details

colour

Colour must be #AARRGGBB or #RRGGBB hex string.

image

See https://discord.com/developers/docs/resources/message#embed-object-embed-image-structure for details.

thumbnail

See https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure for details.

timestamp

Timestamp must be encoded as: time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss"). Use the active timezone.

video

See https://discord.com/developers/docs/resources/message#embed-object-embed-video-structure for details.

\ No newline at end of file diff --git a/datum/tgs_chat_user.html b/datum/tgs_chat_user.html new file mode 100644 index 0000000000000..253b95e67a98e --- /dev/null +++ b/datum/tgs_chat_user.html @@ -0,0 +1 @@ +/datum/tgs_chat_user - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tgs_chat_user

Vars

channelThe /datum/tgs_chat_channel the user was from.
friendly_nameThe user's display name.
idTGS internal user ID.
mentionThe string to use to ping this user in a message.

Var Details

channel

The /datum/tgs_chat_channel the user was from.

friendly_name

The user's display name.

id

TGS internal user ID.

mention

The string to use to ping this user in a message.

\ No newline at end of file diff --git a/datum/tgs_event_handler.html b/datum/tgs_event_handler.html new file mode 100644 index 0000000000000..3e0f7e4ca3a15 --- /dev/null +++ b/datum/tgs_event_handler.html @@ -0,0 +1,2 @@ +/datum/tgs_event_handler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tgs_event_handler

User definable handler for TGS events This abstract version SHOULD be overridden to be used.

Vars

receive_health_checksIf the handler receieves TGS_EVENT_HEALTH_CHECK events.

Procs

HandleEventUser definable callback for handling TGS events.

Var Details

receive_health_checks

If the handler receieves TGS_EVENT_HEALTH_CHECK events.

Proc Details

HandleEvent

User definable callback for handling TGS events.

+

event_code - One of the TGS_EVENT_ defines. Extra parameters will be documented in each.

\ No newline at end of file diff --git a/datum/tgs_http_handler.html b/datum/tgs_http_handler.html new file mode 100644 index 0000000000000..becb920e27603 --- /dev/null +++ b/datum/tgs_http_handler.html @@ -0,0 +1,8 @@ +/datum/tgs_http_handler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

tgs_http_handler

User definable handler for HTTP calls. This abstract version MUST be overridden to be used.

Procs

PerformGetUser definable callback for executing HTTP GET requests. +MUST perform BYOND sleeps while the request is in flight. +MUST return a /datum/tgs_http_result. +SHOULD log its own errors

Proc Details

PerformGet

User definable callback for executing HTTP GET requests. +MUST perform BYOND sleeps while the request is in flight. +MUST return a /datum/tgs_http_result. +SHOULD log its own errors

+

url - The full URL to execute the GET request for including query parameters.

\ No newline at end of file diff --git a/datum/tgs_http_result.html b/datum/tgs_http_result.html new file mode 100644 index 0000000000000..7dccc291cc8d7 --- /dev/null +++ b/datum/tgs_http_result.html @@ -0,0 +1,5 @@ +/datum/tgs_http_result - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tgs_http_result

Result of a /datum/tgs_http_handler call. MUST NOT be overridden.

Vars

response_textHTTP response as text
successBoolean request success flag. Set for any 2XX response code.

Procs

NewCreate a /datum/tgs_http_result.

Var Details

response_text

HTTP response as text

success

Boolean request success flag. Set for any 2XX response code.

Proc Details

New

Create a /datum/tgs_http_result.

+
\ No newline at end of file diff --git a/datum/tgs_message_content.html b/datum/tgs_message_content.html new file mode 100644 index 0000000000000..7f45141359caa --- /dev/null +++ b/datum/tgs_message_content.html @@ -0,0 +1,4 @@ +/datum/tgs_message_content - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tgs_message_content

User definable chat message. MUST NOT be overridden.

Vars

embedThe /datum/tgs_chat_embed to embed in the message. Not supported on all chat providers.
textThe string content of the message. Must be provided in New().

Procs

NewCreate a /datum/tgs_message_content.

Var Details

embed

The /datum/tgs_chat_embed to embed in the message. Not supported on all chat providers.

text

The string content of the message. Must be provided in New().

Proc Details

New

Create a /datum/tgs_message_content.

+
\ No newline at end of file diff --git a/datum/tgs_revision_information.html b/datum/tgs_revision_information.html new file mode 100644 index 0000000000000..41b0c85ca4213 --- /dev/null +++ b/datum/tgs_revision_information.html @@ -0,0 +1 @@ +/datum/tgs_revision_information - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tgs_revision_information

Represents git revision information.

Vars

commitFull SHA of the commit.
origin_commitFull sha of last known remote commit. This may be null if the TGS repository is not currently tracking a remote branch.
timestampISO 8601 timestamp of when the commit was created.

Var Details

commit

Full SHA of the commit.

origin_commit

Full sha of last known remote commit. This may be null if the TGS repository is not currently tracking a remote branch.

timestamp

ISO 8601 timestamp of when the commit was created.

\ No newline at end of file diff --git a/datum/tgs_revision_information/test_merge.html b/datum/tgs_revision_information/test_merge.html new file mode 100644 index 0000000000000..64a454b803d61 --- /dev/null +++ b/datum/tgs_revision_information/test_merge.html @@ -0,0 +1 @@ +/datum/tgs_revision_information/test_merge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

test_merge

Represents a merge of a GitHub pull request.

Vars

authorThe Username of the test merge source's author.
bodyThe test merge source's body when it was merged.
commentOptional comment left by the TGS user who initiated the merge.
head_commitThe SHA of the test merge when that was merged.
numberThe test merge number.
titleThe test merge source's title when it was merged.
urlAn http URL to the test merge source.

Var Details

author

The Username of the test merge source's author.

body

The test merge source's body when it was merged.

comment

Optional comment left by the TGS user who initiated the merge.

head_commit

The SHA of the test merge when that was merged.

number

The test merge number.

title

The test merge source's title when it was merged.

url

An http URL to the test merge source.

\ No newline at end of file diff --git a/datum/tgs_version.html b/datum/tgs_version.html new file mode 100644 index 0000000000000..f325bee35acce --- /dev/null +++ b/datum/tgs_version.html @@ -0,0 +1 @@ +/datum/tgs_version - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tgs_version

Represents a version.

Vars

deprecated_patchLegacy version number. Generally null.
deprefixed_parameterString value minus prefix.
minorThe minor version number. null for wildcards.
patchThe patch version number. null for wildcards.
raw_parameterUnparsed string value.
suiteThe suite/major version number.

Var Details

deprecated_patch

Legacy version number. Generally null.

deprefixed_parameter

String value minus prefix.

minor

The minor version number. null for wildcards.

patch

The patch version number. null for wildcards.

raw_parameter

Unparsed string value.

suite

The suite/major version number.

\ No newline at end of file diff --git a/datum/tgui.html b/datum/tgui.html new file mode 100644 index 0000000000000..784ae6b784206 --- /dev/null +++ b/datum/tgui.html @@ -0,0 +1,34 @@ +/datum/tgui - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tgui

tgui datum (represents a UI).

Vars

autoupdateUpdate the UI every MC tick.
closingStops further updates when close() was called.
initializedIf the UI has been initialized yet.
interfaceThe interface (template) to be used for this UI.
mouse_hookedAre byond mouse events beyond the window passed in to the ui
opened_atTime of opening the window.
refresh_cooldownRate limit client refreshes to prevent DoS.
refreshingTimed refreshing state
src_objectThe object which owns the UI.
stateTopic state used to determine status/interactability.
statusThe status/visibility of the UI.
titleThe title of the UI.
userThe mob who opened/is using the UI.
windowThe window_id for browse() and onclose().
window_keyKey that is used for remembering the window geometry.
window_sizeDeprecated: Window size.

Procs

Newpublic
closepublic
get_payloadprivate
on_act_messageWrapper for behavior to potentially wait until the next tick if the server is overloaded
on_messageprivate
openpublic
processprivate
process_statusprivate
send_assetpublic
send_full_updatepublic
send_updatepublic
set_autoupdatepublic
set_mouse_hookpublic
set_statepublic

Var Details

autoupdate

Update the UI every MC tick.

closing

Stops further updates when close() was called.

initialized

If the UI has been initialized yet.

interface

The interface (template) to be used for this UI.

mouse_hooked

Are byond mouse events beyond the window passed in to the ui

opened_at

Time of opening the window.

refresh_cooldown

Rate limit client refreshes to prevent DoS.

refreshing

Timed refreshing state

src_object

The object which owns the UI.

state

Topic state used to determine status/interactability.

status

The status/visibility of the UI.

title

The title of the UI.

user

The mob who opened/is using the UI.

window

The window_id for browse() and onclose().

window_key

Key that is used for remembering the window geometry.

window_size

Deprecated: Window size.

Proc Details

New

public

+

Create a new UI.

+

required user mob The mob who opened/is using the UI. +required src_object datum The object or datum which owns the UI. +required interface string The interface used to render the UI. +optional title string The title of the UI. +optional ui_x int Deprecated: Window width. +optional ui_y int Deprecated: Window height.

+

return datum/tgui The requested UI.

close

public

+

Close the UI.

+

optional can_be_suspended bool

get_payload

private

+

Package the data to send to the UI, as JSON.

+

return list

on_act_message

Wrapper for behavior to potentially wait until the next tick if the server is overloaded

on_message

private

+

Callback for handling incoming tgui messages.

open

public

+

Open this UI (and initialize it with data).

+

return bool - TRUE if a new pooled window is opened, FALSE in all other situations including if a new pooled window didn't open because one already exists.

process

private

+

Run an update cycle for this UI. Called internally by SStgui +every second or so.

process_status

private

+

Updates the status, and returns TRUE if status has changed.

send_asset

public

+

Makes an asset available to use in tgui.

+

required asset datum/asset

+

return bool - true if an asset was actually sent

send_full_update

public

+

Send a full update to the client (includes static data).

+

optional custom_data list Custom data to send instead of ui_data. +optional force bool Send an update even if UI is not interactive.

send_update

public

+

Send a partial update to the client (excludes static data).

+

optional custom_data list Custom data to send instead of ui_data. +optional force bool Send an update even if UI is not interactive.

set_autoupdate

public

+

Enable/disable auto-updating of the UI.

+

required value bool Enable/disable auto-updating.

set_mouse_hook

public

+

Enable/disable passing through byond mouse events to the window

+

required value bool Enable/disable hooking.

set_state

public

+

Replace current ui.state with a new one.

+

required state datum/ui_state/state Next state

\ No newline at end of file diff --git a/datum/tgui_alert.html b/datum/tgui_alert.html new file mode 100644 index 0000000000000..4996361f637fe --- /dev/null +++ b/datum/tgui_alert.html @@ -0,0 +1,4 @@ +/datum/tgui_alert - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tgui_alert

Datum used for instantiating and using a TGUI-controlled modal that prompts the user with +a message and has buttons for responses.

Vars

autofocusThe bool that controls if this modal should grab window focus
buttonsThe list of buttons (responses) provided on the TGUI window
choiceThe button that the user has pressed, null if no selection has been made
closedBoolean field describing if the tgui_alert was closed by the user.
messageThe textual body of the TGUI window
start_timeThe time at which the tgui_alert was created, for displaying timeout progress.
stateThe TGUI UI state that will be returned in ui_state(). Default: always_state
timeoutThe lifespan of the tgui_alert, after which the window will close and delete itself.
titleThe title of the TGUI window

Procs

waitWaits for a user's response to the tgui_alert's prompt before returning. Returns early if +the window was closed by the user.

Var Details

autofocus

The bool that controls if this modal should grab window focus

buttons

The list of buttons (responses) provided on the TGUI window

choice

The button that the user has pressed, null if no selection has been made

closed

Boolean field describing if the tgui_alert was closed by the user.

message

The textual body of the TGUI window

start_time

The time at which the tgui_alert was created, for displaying timeout progress.

state

The TGUI UI state that will be returned in ui_state(). Default: always_state

timeout

The lifespan of the tgui_alert, after which the window will close and delete itself.

title

The title of the TGUI window

Proc Details

wait

Waits for a user's response to the tgui_alert's prompt before returning. Returns early if +the window was closed by the user.

\ No newline at end of file diff --git a/datum/tgui_checkbox_input.html b/datum/tgui_checkbox_input.html new file mode 100644 index 0000000000000..64be832f8f842 --- /dev/null +++ b/datum/tgui_checkbox_input.html @@ -0,0 +1 @@ +/datum/tgui_checkbox_input - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tgui_checkbox_input

Window for tgui_input_checkboxes

Vars

choicesList of selected items
closedWhether the input was closed
itemsList of items to display
max_checkedMaximum number of checkboxes that can be checked
messageMessage to display
min_checkedMinimum number of checkboxes that must be checked
start_timeTime when the input was created
stateThe TGUI UI state that will be returned in ui_state(). Default: always_state
timeoutTimeout for the input
titleTitle of the window

Var Details

choices

List of selected items

closed

Whether the input was closed

items

List of items to display

max_checked

Maximum number of checkboxes that can be checked

message

Message to display

min_checked

Minimum number of checkboxes that must be checked

start_time

Time when the input was created

state

The TGUI UI state that will be returned in ui_state(). Default: always_state

timeout

Timeout for the input

title

Title of the window

\ No newline at end of file diff --git a/datum/tgui_input_keycombo.html b/datum/tgui_input_keycombo.html new file mode 100644 index 0000000000000..a8737235bee7a --- /dev/null +++ b/datum/tgui_input_keycombo.html @@ -0,0 +1,4 @@ +/datum/tgui_input_keycombo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tgui_input_keycombo

Datum used for instantiating and using a TGUI-controlled key input that prompts the user with +a message and listens for key presses.

Vars

closedBoolean field describing if the tgui_input_number was closed by the user.
defaultThe default (or current) value, shown as a default. Users can press reset with this.
entryThe entry that the user has return_typed in.
messageThe prompt's body, if any, of the TGUI window.
start_timeThe time at which the number input was created, for displaying timeout progress.
stateThe TGUI UI state that will be returned in ui_state(). Default: always_state
timeoutThe lifespan of the number input, after which the window will close and delete itself.
titleThe title of the TGUI window

Procs

waitWaits for a user's response to the tgui_input_keycombo's prompt before returning. Returns early if +the window was closed by the user.

Var Details

closed

Boolean field describing if the tgui_input_number was closed by the user.

default

The default (or current) value, shown as a default. Users can press reset with this.

entry

The entry that the user has return_typed in.

message

The prompt's body, if any, of the TGUI window.

start_time

The time at which the number input was created, for displaying timeout progress.

state

The TGUI UI state that will be returned in ui_state(). Default: always_state

timeout

The lifespan of the number input, after which the window will close and delete itself.

title

The title of the TGUI window

Proc Details

wait

Waits for a user's response to the tgui_input_keycombo's prompt before returning. Returns early if +the window was closed by the user.

\ No newline at end of file diff --git a/datum/tgui_input_number.html b/datum/tgui_input_number.html new file mode 100644 index 0000000000000..45cba68a2d049 --- /dev/null +++ b/datum/tgui_input_number.html @@ -0,0 +1,4 @@ +/datum/tgui_input_number - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tgui_input_number

Datum used for instantiating and using a TGUI-controlled number input that prompts the user with +a message and has an input for number entry.

Vars

closedBoolean field describing if the tgui_input_number was closed by the user.
defaultThe default (or current) value, shown as a default. Users can press reset with this.
entryThe entry that the user has return_typed in.
max_valueThe maximum value that can be entered.
messageThe prompt's body, if any, of the TGUI window.
min_valueThe minimum value that can be entered.
round_valueWhether the submitted number is rounded down into an integer.
start_timeThe time at which the number input was created, for displaying timeout progress.
stateThe TGUI UI state that will be returned in ui_state(). Default: always_state
timeoutThe lifespan of the number input, after which the window will close and delete itself.
titleThe title of the TGUI window

Procs

waitWaits for a user's response to the tgui_input_number's prompt before returning. Returns early if +the window was closed by the user.

Var Details

closed

Boolean field describing if the tgui_input_number was closed by the user.

default

The default (or current) value, shown as a default. Users can press reset with this.

entry

The entry that the user has return_typed in.

max_value

The maximum value that can be entered.

message

The prompt's body, if any, of the TGUI window.

min_value

The minimum value that can be entered.

round_value

Whether the submitted number is rounded down into an integer.

start_time

The time at which the number input was created, for displaying timeout progress.

state

The TGUI UI state that will be returned in ui_state(). Default: always_state

timeout

The lifespan of the number input, after which the window will close and delete itself.

title

The title of the TGUI window

Proc Details

wait

Waits for a user's response to the tgui_input_number's prompt before returning. Returns early if +the window was closed by the user.

\ No newline at end of file diff --git a/datum/tgui_input_text.html b/datum/tgui_input_text.html new file mode 100644 index 0000000000000..d4a3a9277df2b --- /dev/null +++ b/datum/tgui_input_text.html @@ -0,0 +1,11 @@ +/datum/tgui_input_text - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tgui_input_text

tgui_input_text

+

Datum used for instantiating and using a TGUI-controlled text input that prompts the user with +a message and has an input for text entry.

Vars

closedBoolean field describing if the tgui_input_text was closed by the user.
defaultThe default (or current) value, shown as a default.
encodeWhether the input should be stripped using html_encode
entryThe entry that the user has return_typed in.
max_lengthThe maximum length for text entry
messageThe prompt's body, if any, of the TGUI window.
multilineMultiline input for larger input boxes.
start_timeThe time at which the text input was created, for displaying timeout progress.
stateThe TGUI UI state that will be returned in ui_state(). Default: always_state
timeoutThe lifespan of the text input, after which the window will close and delete itself.
titleThe title of the TGUI window

Procs

set_entrySets the return value for the tgui text proc. +If html encoding is enabled, the text will be encoded. +This can sometimes result in a string that is longer than the max length. +If the string is longer than the max length, it will be clipped.
waitWaits for a user's response to the tgui_input_text's prompt before returning. Returns early if +the window was closed by the user.

Var Details

closed

Boolean field describing if the tgui_input_text was closed by the user.

default

The default (or current) value, shown as a default.

encode

Whether the input should be stripped using html_encode

entry

The entry that the user has return_typed in.

max_length

The maximum length for text entry

message

The prompt's body, if any, of the TGUI window.

multiline

Multiline input for larger input boxes.

start_time

The time at which the text input was created, for displaying timeout progress.

state

The TGUI UI state that will be returned in ui_state(). Default: always_state

timeout

The lifespan of the text input, after which the window will close and delete itself.

title

The title of the TGUI window

Proc Details

set_entry

Sets the return value for the tgui text proc. +If html encoding is enabled, the text will be encoded. +This can sometimes result in a string that is longer than the max length. +If the string is longer than the max length, it will be clipped.

wait

Waits for a user's response to the tgui_input_text's prompt before returning. Returns early if +the window was closed by the user.

\ No newline at end of file diff --git a/datum/tgui_list_input.html b/datum/tgui_list_input.html new file mode 100644 index 0000000000000..69ceb4becbf16 --- /dev/null +++ b/datum/tgui_list_input.html @@ -0,0 +1,4 @@ +/datum/tgui_list_input - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tgui_list_input

Datum used for instantiating and using a TGUI-controlled list input that prompts the user with +a message and shows a list of selectable options

Vars

choiceThe button that the user has pressed, null if no selection has been made
closedBoolean field describing if the tgui_list_input was closed by the user.
defaultThe default button to be selected
invalidWhether the tgui list input is invalid or not (i.e. due to all list entries being null)
itemsThe list of items (responses) provided on the TGUI window
items_mapButtons (strings specifically) mapped to the actual value (e.g. a mob or a verb)
messageThe textual body of the TGUI window
start_timeThe time at which the tgui_list_input was created, for displaying timeout progress.
stateThe TGUI UI state that will be returned in ui_state(). Default: always_state
timeoutThe lifespan of the tgui_list_input, after which the window will close and delete itself.
titleThe title of the TGUI window

Procs

waitWaits for a user's response to the tgui_list_input's prompt before returning. Returns early if +the window was closed by the user.

Var Details

choice

The button that the user has pressed, null if no selection has been made

closed

Boolean field describing if the tgui_list_input was closed by the user.

default

The default button to be selected

invalid

Whether the tgui list input is invalid or not (i.e. due to all list entries being null)

items

The list of items (responses) provided on the TGUI window

items_map

Buttons (strings specifically) mapped to the actual value (e.g. a mob or a verb)

message

The textual body of the TGUI window

start_time

The time at which the tgui_list_input was created, for displaying timeout progress.

state

The TGUI UI state that will be returned in ui_state(). Default: always_state

timeout

The lifespan of the tgui_list_input, after which the window will close and delete itself.

title

The title of the TGUI window

Proc Details

wait

Waits for a user's response to the tgui_list_input's prompt before returning. Returns early if +the window was closed by the user.

\ No newline at end of file diff --git a/datum/tgui_panel.html b/datum/tgui_panel.html new file mode 100644 index 0000000000000..d9c3f8baa09ae --- /dev/null +++ b/datum/tgui_panel.html @@ -0,0 +1,20 @@ +/datum/tgui_panel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tgui_panel

tgui_panel datum +Hosts tgchat and other nice features.

Vars

telemetry_analyzed_atTime of telemetry analysis completion
telemetry_connectionsList of previous client connections
telemetry_requested_atTime of telemetry request

Procs

analyze_telemetryprivate
initializepublic
is_readypublic
on_initialize_timed_outprivate
on_messageprivate
play_musicpublic
request_telemetryprivate
send_roundrestartpublic
stop_musicpublic

Var Details

telemetry_analyzed_at

Time of telemetry analysis completion

telemetry_connections

List of previous client connections

telemetry_requested_at

Time of telemetry request

Proc Details

analyze_telemetry

private

+

Analyzes a telemetry packet.

+

Is currently only useful for detecting ban evasion attempts.

initialize

public

+

Initializes tgui panel.

is_ready

public

+

TRUE if panel is initialized and ready to receive messages.

on_initialize_timed_out

private

+

Called when initialization has timed out.

on_message

private

+

Callback for handling incoming tgui messages.

play_music

public

+

Sends music data to the browser.

+

Optional settings:

+ +

required url string Must be an https URL. +optional extra_data list Optional settings.

request_telemetry

private

+

Requests some telemetry from the client.

send_roundrestart

public

+

Sends a round restart notification.

stop_music

public

+

Stops playing music through the browser.

\ No newline at end of file diff --git a/datum/tgui_say.html b/datum/tgui_say.html new file mode 100644 index 0000000000000..768bc00e6a5f4 --- /dev/null +++ b/datum/tgui_say.html @@ -0,0 +1,43 @@ +/datum/tgui_say - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tgui_say

The tgui say modal. This initializes an input window which hides until +the user presses one of the speech hotkeys. Once something is entered, it will +delegate the speech to the proper channel.

Vars

clientThe user who opened the window
hurt_phrasesInjury phrases to blurt out
max_lengthMax message length
windowThe modal window
window_openBoolean for whether the tgui_say was opened by the user.

Procs

NewCreates the new input window to exist in the background.
alter_entryAlters text when players are injured. +Adds text, trims left and right side
closeCloses the window serverside. Closes any open chat bubbles +regardless of preference. Logs the event.
delegate_speechDelegates the speech to the proper channel.
force_sayForce say handler. +Sends a message to the say modal to send its current value.
handle_entryHandles text entry and forced speech.
initializeAfter a brief period, injects the scripts into +the window to listen for open commands.
loadEnsures nothing funny is going on window load. +Minimizes the window, sets max length, closes all +typing and thinking indicators. This is triggered +as soon as the window sends the "ready" message.
on_messageThe equivalent of ui_act, this waits on messages from the window +and delegates actions.
openSets the window as "opened" server side, though it is already +visible to the user. We do this to set local vars & +start typing (if enabled and in an IC channel). Logs the event.
start_thinkingSets the mob as "thinking" - with indicator and the TRAIT_THINKING_IN_CHARACTER trait
start_typingHandles the user typing. After a brief period of inactivity, +signals the client mob to revert to the "thinking" icon.
stop_thinkingRemoves typing/thinking indicators and flags the mob as not thinking
stop_typingRemove the typing indicator after a brief period of inactivity or during say events. +If the user was typing IC, the thinking indicator is shown.

Var Details

client

The user who opened the window

hurt_phrases

Injury phrases to blurt out

max_length

Max message length

window

The modal window

window_open

Boolean for whether the tgui_say was opened by the user.

Proc Details

New

Creates the new input window to exist in the background.

alter_entry

Alters text when players are injured. +Adds text, trims left and right side

+

Arguments: +payload - a string list containing entry & channel +Returns: +string - the altered entry

close

Closes the window serverside. Closes any open chat bubbles +regardless of preference. Logs the event.

delegate_speech

Delegates the speech to the proper channel.

+

Arguments: +entry - the text to broadcast +channel - the channel to broadcast in +Returns: +boolean - on success or failure

force_say

Force say handler. +Sends a message to the say modal to send its current value.

handle_entry

Handles text entry and forced speech.

+

Arguments: +type - a string "entry" or "force" based on how this function is called +payload - a string list containing entry & channel +Returns: +boolean - success or failure

initialize

After a brief period, injects the scripts into +the window to listen for open commands.

load

Ensures nothing funny is going on window load. +Minimizes the window, sets max length, closes all +typing and thinking indicators. This is triggered +as soon as the window sends the "ready" message.

on_message

The equivalent of ui_act, this waits on messages from the window +and delegates actions.

open

Sets the window as "opened" server side, though it is already +visible to the user. We do this to set local vars & +start typing (if enabled and in an IC channel). Logs the event.

+

Arguments: +payload - A list containing the channel the window was opened in.

start_thinking

Sets the mob as "thinking" - with indicator and the TRAIT_THINKING_IN_CHARACTER trait

start_typing

Handles the user typing. After a brief period of inactivity, +signals the client mob to revert to the "thinking" icon.

stop_thinking

Removes typing/thinking indicators and flags the mob as not thinking

stop_typing

Remove the typing indicator after a brief period of inactivity or during say events. +If the user was typing IC, the thinking indicator is shown.

\ No newline at end of file diff --git a/datum/tgui_window.html b/datum/tgui_window.html new file mode 100644 index 0000000000000..95ced42232be6 --- /dev/null +++ b/datum/tgui_window.html @@ -0,0 +1,49 @@ +/datum/tgui_window - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tgui_window

Vars

byondToTguiEventMapStatic list used to map in macros that will then emit execute events to the tgui window +A small disclaimer though I'm no tech wiz: I don't think it's possible to map in right or middle +clicks in the current state, as they're keywords rather than modifiers.

Procs

Newpublic
acquire_lockpublic
can_be_suspendedpublic
closepublic
flush_message_queueprivate
initializepublic
is_readypublic
on_messageprivate
reinitializepublic
release_lockpublic
replace_htmlpublic
send_assetpublic
send_messagepublic
send_raw_messagepublic
subscribepublic
unsubscribepublic

Var Details

byondToTguiEventMap

Static list used to map in macros that will then emit execute events to the tgui window +A small disclaimer though I'm no tech wiz: I don't think it's possible to map in right or middle +clicks in the current state, as they're keywords rather than modifiers.

Proc Details

New

public

+

Create a new tgui window.

+

required client /client +required id string A unique window identifier.

acquire_lock

public

+

Acquire the window lock. Pool will not be able to provide this window +to other UIs for the duration of the lock.

+

Can be given an optional tgui datum, which will be automatically +subscribed to incoming messages via the on_message proc.

+

optional ui /datum/tgui

can_be_suspended

public

+

Checks if the window can be sanely suspended.

+

return bool

close

public

+

Close the UI.

+

optional can_be_suspended bool

flush_message_queue

private

+

Sends queued messages if the queue wasn't empty.

initialize

public

+

Initializes the window with a fresh page. Puts window into the "loading" +state. You can begin sending messages right after initializing. Messages +will be put into the queue until the window finishes loading.

+

optional strict_mode bool - Enables strict error handling and BSOD. +optional fancy bool - If TRUE and if this is NOT a panel, will hide the window titlebar. +optional assets list - List of assets to load during initialization. +optional inline_html string - Custom HTML to inject. +optional inline_js string - Custom JS to inject. +optional inline_css string - Custom CSS to inject.

is_ready

public

+

Checks if the window is ready to receive data.

+

return bool

on_message

private

+

Callback for handling incoming tgui messages.

reinitialize

public

+

Reinitializes the panel with previous data used for initialization.

release_lock

public

+

Release the window lock.

replace_html

public

+

Replaces the inline HTML content.

+

required inline_html string HTML to inject

send_asset

public

+

Makes an asset available to use in tgui.

+

required asset datum/asset

+

return bool - TRUE if any assets had to be sent to the client

send_message

public

+

Sends a message to tgui window.

+

required type string Message type +required payload list Message payload +optional force bool Send regardless of the ready status.

send_raw_message

public

+

Sends a raw payload to tgui window.

+

required message string JSON+urlencoded blob to send. +optional force bool Send regardless of the ready status.

subscribe

public

+

Subscribes the datum to consume window messages on a specified proc.

+

Note, that this supports only one subscriber, because code for that +is simpler and therefore faster. If necessary, this can be rewritten +to support multiple subscribers.

unsubscribe

public

+

Unsubscribes the datum. Do not forget to call this when cleaning up.

\ No newline at end of file diff --git a/datum/thrownthing.html b/datum/thrownthing.html new file mode 100644 index 0000000000000..903d98da7b36f --- /dev/null +++ b/datum/thrownthing.html @@ -0,0 +1 @@ +/datum/thrownthing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

thrownthing

Vars

callbackIf a thrown thing has a callback, it can be invoked here within thrownthing.
delayed_timeHow long an object has been paused for, to be added to the travel time.
diagonal_errorHow many tiles that need to be moved in order to travel to the target.
diagonals_firstA variable that helps in describing objects thrown at an angle, if it should be moved diagonally first or last.
dist_travelledTracks how far a thrownthing has traveled mid-throw for the purposes of maxrange
dist_xDistance to travel in the X axis/direction.
dist_yDistance to travel in the y axis/direction.
dxThe Horizontal direction we're traveling (EAST or WEST)
dyThe VERTICAL direction we're traveling (NORTH or SOUTH)
forceThe movement force provided to a given object in transit. More info on these in move_force.dm
gentleIf the throw is gentle, then the thrownthing is harmless on impact.
init_dirThe initial direction of the thrower of the thrownthing for building the trajectory of the throw.
initial_targetWeakref to the original intended target of the throw, to prevent hardDels
last_moveThe last world.time value stored when the thrownthing was moving.
maxrangeThe maximum number of turfs that the thrownthing will travel to reach its target.
pausedMainly exists for things that would freeze a thrown object in place, like a timestop'd tile. Or a Tractor Beam.
pure_diagonalSet to TRUE if the throw is exclusively diagonal (45 Degree angle throws for example)
speedTurfs to travel per tick
start_timeThe start_time obtained via world.time for the purposes of tiles moved/tick.
starting_turfThe turf that we were thrown from.
target_turfThe turf that the target was on, if it's not a turf itself.
target_zoneIf the target happens to be a carbon and that carbon has a body zone aimed at, this is carried on here.
throwerIf a mob is the one who has thrown the object, then it's moved here. This can be null and must be null checked before trying to use it.
thrownthingDefines the atom that has been thrown (Objects and Mobs, mostly.)

Procs

get_throwerReturns the mob thrower, or null
on_thrownthing_qdelDefines the datum behavior on the thrownthing's qdeletion event.

Var Details

callback

If a thrown thing has a callback, it can be invoked here within thrownthing.

delayed_time

How long an object has been paused for, to be added to the travel time.

diagonal_error

How many tiles that need to be moved in order to travel to the target.

diagonals_first

A variable that helps in describing objects thrown at an angle, if it should be moved diagonally first or last.

dist_travelled

Tracks how far a thrownthing has traveled mid-throw for the purposes of maxrange

dist_x

Distance to travel in the X axis/direction.

dist_y

Distance to travel in the y axis/direction.

dx

The Horizontal direction we're traveling (EAST or WEST)

dy

The VERTICAL direction we're traveling (NORTH or SOUTH)

force

The movement force provided to a given object in transit. More info on these in move_force.dm

gentle

If the throw is gentle, then the thrownthing is harmless on impact.

init_dir

The initial direction of the thrower of the thrownthing for building the trajectory of the throw.

initial_target

Weakref to the original intended target of the throw, to prevent hardDels

last_move

The last world.time value stored when the thrownthing was moving.

maxrange

The maximum number of turfs that the thrownthing will travel to reach its target.

paused

Mainly exists for things that would freeze a thrown object in place, like a timestop'd tile. Or a Tractor Beam.

pure_diagonal

Set to TRUE if the throw is exclusively diagonal (45 Degree angle throws for example)

speed

Turfs to travel per tick

start_time

The start_time obtained via world.time for the purposes of tiles moved/tick.

starting_turf

The turf that we were thrown from.

target_turf

The turf that the target was on, if it's not a turf itself.

target_zone

If the target happens to be a carbon and that carbon has a body zone aimed at, this is carried on here.

thrower

If a mob is the one who has thrown the object, then it's moved here. This can be null and must be null checked before trying to use it.

thrownthing

Defines the atom that has been thrown (Objects and Mobs, mostly.)

Proc Details

get_thrower

Returns the mob thrower, or null

on_thrownthing_qdel

Defines the datum behavior on the thrownthing's qdeletion event.

\ No newline at end of file diff --git a/datum/ticket_history.html b/datum/ticket_history.html new file mode 100644 index 0000000000000..f0578166fd97f --- /dev/null +++ b/datum/ticket_history.html @@ -0,0 +1 @@ +/datum/ticket_history - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ticket_history

Holds information about a ticket

Vars

ticket_numberNumber of the ticket for that round

Var Details

ticket_number

Number of the ticket for that round

\ No newline at end of file diff --git a/datum/ticket_history_holder.html b/datum/ticket_history_holder.html new file mode 100644 index 0000000000000..38ba4abb0b48e --- /dev/null +++ b/datum/ticket_history_holder.html @@ -0,0 +1 @@ +/datum/ticket_history_holder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ticket_history_holder

Vars

ticket_historiesAssosciative list of ticket histories. ckey -> list/datum/ticket_history
user_selectionsAssosciative list of user_ckey -> target_ckey

Var Details

ticket_histories

Assosciative list of ticket histories. ckey -> list/datum/ticket_history

user_selections

Assosciative list of user_ckey -> target_ckey

\ No newline at end of file diff --git a/datum/tile_info.html b/datum/tile_info.html new file mode 100644 index 0000000000000..15613c24bcf3c --- /dev/null +++ b/datum/tile_info.html @@ -0,0 +1,7 @@ +/datum/tile_info - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tile_info

stores the name, type, icon & cost for each tile type

Vars

costrcd units to consume for this tile creation
icon_stateicon for this tile to display for ui
namename of this tile design for ui
selected_directioncurrent direction this tile should be rotated in before being placed on the plating
tile_directionsdirections this tile can be placed on the turf
tile_typepath to create this tile type
ui_directional_datauser friendly names of the tile_directions to be sent to ui

Procs

fill_ui_datafill all information to be sent to the UI
get_icon_stateretrieve the icon for this tile design based on its direction +for complex directions like NORTHSOUTH etc we create an seperated blended icon in the asset file for example floor-northsouth +so we check which icons we want to retrieve based on its direction +for basic directions its rotated with CSS so there is no need for icon
new_tileconvinience proc to quickly convert the tile design into an physical tile to lay on the plating
set_directionchange the direction the tile is laid on the turf
set_infodecompress a single tile design list element from GLOB.floor_designs into its individual variables

Var Details

cost

rcd units to consume for this tile creation

icon_state

icon for this tile to display for ui

name

name of this tile design for ui

selected_direction

current direction this tile should be rotated in before being placed on the plating

tile_directions

directions this tile can be placed on the turf

tile_type

path to create this tile type

ui_directional_data

user friendly names of the tile_directions to be sent to ui

Proc Details

fill_ui_data

fill all information to be sent to the UI

get_icon_state

retrieve the icon for this tile design based on its direction +for complex directions like NORTHSOUTH etc we create an seperated blended icon in the asset file for example floor-northsouth +so we check which icons we want to retrieve based on its direction +for basic directions its rotated with CSS so there is no need for icon

new_tile

convinience proc to quickly convert the tile design into an physical tile to lay on the plating

set_direction

change the direction the tile is laid on the turf

set_info

decompress a single tile design list element from GLOB.floor_designs into its individual variables

\ No newline at end of file diff --git a/datum/timedevent.html b/datum/timedevent.html new file mode 100644 index 0000000000000..97a04a6eccef5 --- /dev/null +++ b/datum/timedevent.html @@ -0,0 +1,11 @@ +/datum/timedevent - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Timed Event

This is the actual timer, it contains the callback and necessary data to maintain +the timer.

+

See the documentation for the timer subsystem for an explanation of the buckets referenced +below in next and prev

Vars

bucket_joinedBoolean indicating if timer joined into bucket
bucket_posInitial bucket position
callBackThe callback to invoke after the timer completes
flagsFlags associated with the timer, see _DEFINES/subsystems.dm
hashUnique hash generated when TIMER_UNIQUE flag is present
idID used for timers when the TIMER_STOPPABLE flag is present
nextNext timed event in the bucket
prevPrevious timed event in the bucket
sourceThe source of the timedevent, whatever called addtimer
spentTime at which the timer was invoked or destroyed
timeToRunThe time at which the callback should be invoked at
timer_infoHolds info about this timer, stored from the moment it was created +Used to create a visible "name" whenever the timer is stringified
timer_subsystemThe timer subsystem this event is associated with
waitThe length of the timer

Procs

bucketEjectRemoves this timed event from any relevant buckets, or the secondary queue
bucketJoinAttempts to add this timed event to a bucket, will enter the secondary queue +if there are no appropriate buckets at this time.
getcallingtypeReturns a string of the type of the callback for this timer

Var Details

bucket_joined

Boolean indicating if timer joined into bucket

bucket_pos

Initial bucket position

callBack

The callback to invoke after the timer completes

flags

Flags associated with the timer, see _DEFINES/subsystems.dm

hash

Unique hash generated when TIMER_UNIQUE flag is present

id

ID used for timers when the TIMER_STOPPABLE flag is present

next

Next timed event in the bucket

prev

Previous timed event in the bucket

source

The source of the timedevent, whatever called addtimer

spent

Time at which the timer was invoked or destroyed

timeToRun

The time at which the callback should be invoked at

timer_info

Holds info about this timer, stored from the moment it was created +Used to create a visible "name" whenever the timer is stringified

timer_subsystem

The timer subsystem this event is associated with

wait

The length of the timer

Proc Details

bucketEject

Removes this timed event from any relevant buckets, or the secondary queue

bucketJoin

Attempts to add this timed event to a bucket, will enter the secondary queue +if there are no appropriate buckets at this time.

+

Secondary queueing of timed events will occur when the timespan covered by the existing +buckets is exceeded by the time at which this timed event is scheduled to be invoked. +If the timed event is tracking client time, it will be added to a special bucket.

getcallingtype

Returns a string of the type of the callback for this timer

\ No newline at end of file diff --git a/datum/tinker_cache_item.html b/datum/tinker_cache_item.html new file mode 100644 index 0000000000000..243d2241772e8 --- /dev/null +++ b/datum/tinker_cache_item.html @@ -0,0 +1 @@ +/datum/tinker_cache_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tinker_cache_item

Vars

item_pathPath to the object that this will create
nameName of the item
power_useAmount of power this will consume to create
research_iconOverride icon file for the item for the technologist's lectern
research_icon_stateOverride icon state for the item for the technologist's lectern
research_lockedIf this is locked behind research
time_delay_multMultiplier for time delay (default 4m) after producing this item

Var Details

item_path

Path to the object that this will create

name

Name of the item

power_use

Amount of power this will consume to create

research_icon

Override icon file for the item for the technologist's lectern

research_icon_state

Override icon state for the item for the technologist's lectern

research_locked

If this is locked behind research

time_delay_mult

Multiplier for time delay (default 4m) after producing this item

\ No newline at end of file diff --git a/datum/tlv.html b/datum/tlv.html new file mode 100644 index 0000000000000..330ed62ed9275 --- /dev/null +++ b/datum/tlv.html @@ -0,0 +1,34 @@ +/datum/tlv - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

tlv

Procs

New
reset_value
set_value

Proc Details

New

reset_value

set_value

\ No newline at end of file diff --git a/datum/trackable.html b/datum/trackable.html new file mode 100644 index 0000000000000..e24401daff8ef --- /dev/null +++ b/datum/trackable.html @@ -0,0 +1,15 @@ +/datum/trackable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

trackable

Vars

cameraticksHow many times we've failed to locate our target.
humansList of all humans trackable by cameras.
namecountsList of all namecounts for mobs with the exact same name, just in-case.
namesList of all names that can be tracked.
othersList of all non-humans trackable by cameras, split so humans take priority.
recheckingIf we're currently rechecking our target's trackability in hopes of something changing
tracked_mobWhat mob are we currently tracking, if any
tracking_holderReference to the atom that owns us, used for tracking.

Procs

attempt_trackTries to track onto our target mob. Returns true if it succeeds, false otherwise
find_trackable_mobsGenerates a list of trackable people by name, returning a list of Humans + Non-Humans that can be tracked.
reset_trackingreset_tracking
set_recheckingControls if we're processing to recheck the conditions that prevent tracking or not
set_tracked_mobTakes a mob to track, resets our state and begins trying to follow it +Best we can at least
track_inputtrack_input
track_mobtrack_mob
track_nametrack_name

Var Details

cameraticks

How many times we've failed to locate our target.

humans

List of all humans trackable by cameras.

namecounts

List of all namecounts for mobs with the exact same name, just in-case.

names

List of all names that can be tracked.

others

List of all non-humans trackable by cameras, split so humans take priority.

rechecking

If we're currently rechecking our target's trackability in hopes of something changing

tracked_mob

What mob are we currently tracking, if any

tracking_holder

Reference to the atom that owns us, used for tracking.

Proc Details

attempt_track

Tries to track onto our target mob. Returns true if it succeeds, false otherwise

find_trackable_mobs

Generates a list of trackable people by name, returning a list of Humans + Non-Humans that can be tracked.

reset_tracking

reset_tracking

+

Resets our tracking

set_rechecking

Controls if we're processing to recheck the conditions that prevent tracking or not

set_tracked_mob

Takes a mob to track, resets our state and begins trying to follow it +Best we can at least

track_input

track_input

+

Sets a mob as being tracked, will give a tgui input list to find targets to track. +Args: +tracker - The person trying to track, used for feedback messages. This is not the same as tracking_holder

track_mob

track_mob

+

Sets a mob as being tracked, will track the passed in target +Args: +tracker - The person trying to track, used for feedback messages. This is not the same as tracking_holder +tracked - The person being tracked.

track_name

track_name

+

Sets a mob as being tracked, will track the passed in target name's target +Args: +tracker - The person trying to track, used for feedback messages. This is not the same as tracking_holder +tracked_mob_name - The person being tracked.

\ No newline at end of file diff --git a/datum/trader_data.html b/datum/trader_data.html new file mode 100644 index 0000000000000..014e72f85f5d7 --- /dev/null +++ b/datum/trader_data.html @@ -0,0 +1,6 @@ +/datum/trader_data - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

trader_data

Used to contain the traders initial wares, and speech

Vars

currency_nameThe currency name
initial_productsThe initial products that the trader offers
initial_wantedsThe initial products that the trader buys
say_phrasesThe speech data of the trader
sell_soundSound used when item sold/bought
shop_spot_typeThe item that marks the shopkeeper will sit on
sign_typeThe sign that will greet the customers

Procs

return_trader_phraseDepending on the passed parameter/override, returns a randomly picked string out of a list

Var Details

currency_name

The currency name

initial_products

The initial products that the trader offers

initial_wanteds

The initial products that the trader buys

say_phrases

The speech data of the trader

sell_sound

Sound used when item sold/bought

shop_spot_type

The item that marks the shopkeeper will sit on

sign_type

The sign that will greet the customers

Proc Details

return_trader_phrase

Depending on the passed parameter/override, returns a randomly picked string out of a list

+

Do note when overriding this argument, you will need to ensure pick(the list) doesn't get supplied with a list of zero length +Arguments:

+
\ No newline at end of file diff --git a/datum/traitor_objective.html b/datum/traitor_objective.html new file mode 100644 index 0000000000000..2adf8124ca346 --- /dev/null +++ b/datum/traitor_objective.html @@ -0,0 +1,17 @@ +/datum/traitor_objective - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

traitor_objective

A traitor objective. Traitor objectives should not be deleted after they have been created and established, only failed. +If a traitor objective needs to be removed from the failed/completed objective list of their handler, then you are doing something wrong +and you should reconsider. When an objective is failed/completed, that is final and the only way you can change that is by refactoring the code.

Vars

abstract_typeAbstract type that won't be included as a possible objective
descriptionThe description of the traitor objective
duplicate_typeThe duplicate type that will be used to check for duplicates. +If undefined, this will either take from the abstract type or the type of the objective itself
forcedWhether this objective was forced upon by an admin. Won't get autocleared by the traitor subsystem if progression surpasses an amount
global_progression_deviance_requiredDetermines how great the deviance has to be before progression starts to get reduced.
global_progression_influence_intensityDetermines how influential global progression will affect this objective. Set to 0 to disable.
global_progression_limit_coeffDetermines the minimum and maximum progression this objective can be worth as a result of being influenced by global progression +Should only be smaller than or equal to 1
handlerThe uplink handler holder to give the progression and telecrystals to.
nameThe name of the traitor objective
needs_rewardUsed only in unit testing. Can be used to explicitly skip the progression_reward and telecrystal_reward check for non-abstract objectives. +Useful for final objectives as they don't need a reward.
objective_stateThe current state of this objective
original_progressionThe percentage that this objective has been increased or decreased by as a result of progression. Used by the UI
progression_cost_coeffThis gets added onto the coeff when calculating the updated progression cost. Used for variability and a slight bit of randomness
progression_cost_coeff_devianceThe deviance coefficient used to determine the randomness of the progression rewards.
progression_maximumThe maximum progression before this objective cannot appear anymore
progression_minimumThe minimum required progression points for this objective
progression_rewardThe progression that is rewarded from completing this traitor objective. Can either be a list of list(min, max) or a direct value
skippedWhether this objective was skipped by going from an inactive state to a failed state.
telecrystal_penaltyTC penalty for failing an objective or cancelling it
telecrystal_rewardThe telecrystals that are rewarded from completing this traitor objective. Can either be a list of list(min,max) or a direct value
time_of_completionThe time at which this objective was completed
time_of_creationThe time at which this objective was first created

Procs

can_generate_objectiveCalled whenever the objective is about to be generated. Bypassed by forcefully adding objectives. +Returning false or true will do the same as the generate_objective proc.
completion_payoutCalled when rewards should be given to the user.
fail_objectiveUsed to fail objectives. Players can clear completed objectives in the UI
finish_objectiveCalled by player input, do not call directly. Validates whether the objective is finished and pays out the handler if it is.
generate_objectiveCalled when the objective should be generated. Should return if the objective has been successfully generated. +If false is returned, the objective will be removed as a potential objective for the traitor it is being generated for. +This is only temporary, it will run the proc again when objectives are generated for the traitor again.
generate_ui_buttonsUsed for generating the UI buttons for the UI. Use ui_perform_action to respond to clicks.
handle_cleanupUsed to handle cleaning up the objective.
replace_in_nameReplaces a word in the name of the proc. Also does it for the description
succeed_objectiveUsed to succeed objectives. Allows the player to cash it out in the UI.
supported_configuration_changesReturns a list of variables that can be changed by config, allows for balance through configuration. +It is not recommended to finetweak any values of objectives on your server.
to_debug_stringConverts the type into a useful debug string to be used for logging and debug display.
ui_perform_actionReturn TRUE to trigger a UI update
ungenerate_objectiveUsed to clean up signals and stop listening to states.
update_progression_rewardUpdates the progression reward, scaling it depending on their current progression compared against the global progression
uplink_ui_dataUsed for sending data to the uplink UI

Var Details

abstract_type

Abstract type that won't be included as a possible objective

description

The description of the traitor objective

duplicate_type

The duplicate type that will be used to check for duplicates. +If undefined, this will either take from the abstract type or the type of the objective itself

forced

Whether this objective was forced upon by an admin. Won't get autocleared by the traitor subsystem if progression surpasses an amount

global_progression_deviance_required

Determines how great the deviance has to be before progression starts to get reduced.

global_progression_influence_intensity

Determines how influential global progression will affect this objective. Set to 0 to disable.

global_progression_limit_coeff

Determines the minimum and maximum progression this objective can be worth as a result of being influenced by global progression +Should only be smaller than or equal to 1

handler

The uplink handler holder to give the progression and telecrystals to.

name

The name of the traitor objective

needs_reward

Used only in unit testing. Can be used to explicitly skip the progression_reward and telecrystal_reward check for non-abstract objectives. +Useful for final objectives as they don't need a reward.

objective_state

The current state of this objective

original_progression

The percentage that this objective has been increased or decreased by as a result of progression. Used by the UI

progression_cost_coeff

This gets added onto the coeff when calculating the updated progression cost. Used for variability and a slight bit of randomness

progression_cost_coeff_deviance

The deviance coefficient used to determine the randomness of the progression rewards.

progression_maximum

The maximum progression before this objective cannot appear anymore

progression_minimum

The minimum required progression points for this objective

progression_reward

The progression that is rewarded from completing this traitor objective. Can either be a list of list(min, max) or a direct value

skipped

Whether this objective was skipped by going from an inactive state to a failed state.

telecrystal_penalty

TC penalty for failing an objective or cancelling it

telecrystal_reward

The telecrystals that are rewarded from completing this traitor objective. Can either be a list of list(min,max) or a direct value

time_of_completion

The time at which this objective was completed

time_of_creation

The time at which this objective was first created

Proc Details

can_generate_objective

Called whenever the objective is about to be generated. Bypassed by forcefully adding objectives. +Returning false or true will do the same as the generate_objective proc.

completion_payout

Called when rewards should be given to the user.

fail_objective

Used to fail objectives. Players can clear completed objectives in the UI

finish_objective

Called by player input, do not call directly. Validates whether the objective is finished and pays out the handler if it is.

generate_objective

Called when the objective should be generated. Should return if the objective has been successfully generated. +If false is returned, the objective will be removed as a potential objective for the traitor it is being generated for. +This is only temporary, it will run the proc again when objectives are generated for the traitor again.

generate_ui_buttons

Used for generating the UI buttons for the UI. Use ui_perform_action to respond to clicks.

handle_cleanup

Used to handle cleaning up the objective.

replace_in_name

Replaces a word in the name of the proc. Also does it for the description

succeed_objective

Used to succeed objectives. Allows the player to cash it out in the UI.

supported_configuration_changes

Returns a list of variables that can be changed by config, allows for balance through configuration. +It is not recommended to finetweak any values of objectives on your server.

to_debug_string

Converts the type into a useful debug string to be used for logging and debug display.

ui_perform_action

Return TRUE to trigger a UI update

ungenerate_objective

Used to clean up signals and stop listening to states.

update_progression_reward

Updates the progression reward, scaling it depending on their current progression compared against the global progression

Used for sending data to the uplink UI

\ No newline at end of file diff --git a/datum/traitor_objective/destroy_heirloom.html b/datum/traitor_objective/destroy_heirloom.html new file mode 100644 index 0000000000000..d6003854a459c --- /dev/null +++ b/datum/traitor_objective/destroy_heirloom.html @@ -0,0 +1 @@ +/datum/traitor_objective/destroy_heirloom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

destroy_heirloom

Vars

maximum_objectives_in_periodThe maximum number of objectives that can be taken in this period.
objective_periodThe objective period at which we consider if it is an 'objective'. Set to 0 to accept all objectives.
target_itemthe item we need to destroy
target_jobsThe jobs that this objective is targeting.
target_mindthe owner of the item we need to destroy

Var Details

maximum_objectives_in_period

The maximum number of objectives that can be taken in this period.

objective_period

The objective period at which we consider if it is an 'objective'. Set to 0 to accept all objectives.

target_item

the item we need to destroy

target_jobs

The jobs that this objective is targeting.

target_mind

the owner of the item we need to destroy

\ No newline at end of file diff --git a/datum/traitor_objective/destroy_heirloom/common.html b/datum/traitor_objective/destroy_heirloom/common.html new file mode 100644 index 0000000000000..b171bed54a393 --- /dev/null +++ b/datum/traitor_objective/destroy_heirloom/common.html @@ -0,0 +1 @@ +/datum/traitor_objective/destroy_heirloom/common - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

common

Vars

progression_minimum30 minutes in, syndicate won't care about common heirlooms anymore

Var Details

progression_minimum

30 minutes in, syndicate won't care about common heirlooms anymore

\ No newline at end of file diff --git a/datum/traitor_objective/destroy_heirloom/rare.html b/datum/traitor_objective/destroy_heirloom/rare.html new file mode 100644 index 0000000000000..e2a8cc6419cc1 --- /dev/null +++ b/datum/traitor_objective/destroy_heirloom/rare.html @@ -0,0 +1 @@ +/datum/traitor_objective/destroy_heirloom/rare - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rare

Vars

progression_maximum60 minutes in, syndicate won't care about rare heirlooms anymore

Var Details

progression_maximum

60 minutes in, syndicate won't care about rare heirlooms anymore

\ No newline at end of file diff --git a/datum/traitor_objective/destroy_heirloom/uncommon.html b/datum/traitor_objective/destroy_heirloom/uncommon.html new file mode 100644 index 0000000000000..77766137aa5b7 --- /dev/null +++ b/datum/traitor_objective/destroy_heirloom/uncommon.html @@ -0,0 +1 @@ +/datum/traitor_objective/destroy_heirloom/uncommon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

uncommon

Vars

progression_minimum45 minutes in, syndicate won't care about uncommon heirlooms anymore

Var Details

progression_minimum

45 minutes in, syndicate won't care about uncommon heirlooms anymore

\ No newline at end of file diff --git a/datum/traitor_objective/destroy_item.html b/datum/traitor_objective/destroy_item.html new file mode 100644 index 0000000000000..b6ea21980c9e9 --- /dev/null +++ b/datum/traitor_objective/destroy_item.html @@ -0,0 +1 @@ +/datum/traitor_objective/destroy_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

destroy_item

Vars

special_equipmentAny special equipment that may be needed
target_itemThe current target item that we are stealing.
tracked_itemsItems that are currently tracked and will succeed this objective when destroyed.

Var Details

special_equipment

Any special equipment that may be needed

target_item

The current target item that we are stealing.

tracked_items

Items that are currently tracked and will succeed this objective when destroyed.

\ No newline at end of file diff --git a/datum/traitor_objective/kill_pet.html b/datum/traitor_objective/kill_pet.html new file mode 100644 index 0000000000000..e5eed6c0abdc4 --- /dev/null +++ b/datum/traitor_objective/kill_pet.html @@ -0,0 +1 @@ +/datum/traitor_objective/kill_pet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

kill_pet

Vars

limited_to_department_headWhether or not we only take from the traitor's own department head or not.
targetThe head that we are targeting
target_petThe actual pet that needs to be killed

Var Details

limited_to_department_head

Whether or not we only take from the traitor's own department head or not.

target

The head that we are targeting

target_pet

The actual pet that needs to be killed

\ No newline at end of file diff --git a/datum/traitor_objective/locate_weakpoint.html b/datum/traitor_objective/locate_weakpoint.html new file mode 100644 index 0000000000000..10fbcdc476e76 --- /dev/null +++ b/datum/traitor_objective/locate_weakpoint.html @@ -0,0 +1 @@ +/datum/traitor_objective/locate_weakpoint - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

locate_weakpoint

Vars

bomb_sentHave we sent a bomb yet?
locator_sentHave we sent a weakpoint locator yet?
scan_areasAreas that need to be scanned
weakpoint_areaWeakpoint where the bomb should be planted
weakpoint_foundHave we located the weakpoint yet?

Var Details

bomb_sent

Have we sent a bomb yet?

locator_sent

Have we sent a weakpoint locator yet?

scan_areas

Areas that need to be scanned

weakpoint_area

Weakpoint where the bomb should be planted

weakpoint_found

Have we located the weakpoint yet?

\ No newline at end of file diff --git a/datum/traitor_objective/sabotage_machinery.html b/datum/traitor_objective/sabotage_machinery.html new file mode 100644 index 0000000000000..719fdea0d79f0 --- /dev/null +++ b/datum/traitor_objective/sabotage_machinery.html @@ -0,0 +1 @@ +/datum/traitor_objective/sabotage_machinery - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sabotage_machinery

Vars

applicable_jobsThe possible target machinery and the jobs tied to each one.
chosen_jobThe chosen job. Used to check for duplicates
maximum_allowedThe maximum amount of this type of objective a traitor can have, set to 0 for no limit.

Procs

prepare_machineMarks a given machine as our target

Var Details

applicable_jobs

The possible target machinery and the jobs tied to each one.

chosen_job

The chosen job. Used to check for duplicates

maximum_allowed

The maximum amount of this type of objective a traitor can have, set to 0 for no limit.

Proc Details

prepare_machine

Marks a given machine as our target

\ No newline at end of file diff --git a/datum/traitor_objective/sabotage_machinery/trap.html b/datum/traitor_objective/sabotage_machinery/trap.html new file mode 100644 index 0000000000000..7346e8ad87639 --- /dev/null +++ b/datum/traitor_objective/sabotage_machinery/trap.html @@ -0,0 +1 @@ +/datum/traitor_objective/sabotage_machinery/trap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

trap

Vars

bonus_progressionBonus progression to grant if you booby trap successfully
bonus_tcBonus reward to grant if you booby trap successfully
traitor_trapper_givenHave we given out a traitor trap item?

Procs

sabotage_successCalled when you successfully proc the booby trap, gives a bonus reward

Var Details

bonus_progression

Bonus progression to grant if you booby trap successfully

bonus_tc

Bonus reward to grant if you booby trap successfully

traitor_trapper_given

Have we given out a traitor trap item?

Proc Details

sabotage_success

Called when you successfully proc the booby trap, gives a bonus reward

\ No newline at end of file diff --git a/datum/traitor_objective/smuggle.html b/datum/traitor_objective/smuggle.html new file mode 100644 index 0000000000000..132dcc182fc7f --- /dev/null +++ b/datum/traitor_objective/smuggle.html @@ -0,0 +1 @@ +/datum/traitor_objective/smuggle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

smuggle

smuggle! bring a traitor item from its arrival area to the cargo shuttle, where the objective completes on selling the item

Vars

contrabandthe contraband that must be exported on the shuttle
contraband_typetype of contraband to spawn
possible_contrabandspossible objective items. Mapped by item type = penalty cost for failing
smuggle_spawn_typearea type the objective owner must be in to receive the contraband

Var Details

contraband

the contraband that must be exported on the shuttle

contraband_type

type of contraband to spawn

possible_contrabands

possible objective items. Mapped by item type = penalty cost for failing

smuggle_spawn_type

area type the objective owner must be in to receive the contraband

\ No newline at end of file diff --git a/datum/traitor_objective/steal_item.html b/datum/traitor_objective/steal_item.html new file mode 100644 index 0000000000000..4272c17f4f354 --- /dev/null +++ b/datum/traitor_objective/steal_item.html @@ -0,0 +1 @@ +/datum/traitor_objective/steal_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

steal_item

Vars

bugThe bug that will be put onto the item
extra_progressionExtra progression given for holding the item for the required duration of time.
extra_tcExtra TC given for holding the item for the required duration of time.
hold_time_requiredA list of 2 elements, which contain the range that the time will be in. Represented in minutes.
max_distanceThe maximum distance between the bug and the objective taker for time to count as fulfilled
minutes_per_telecrystalTelecrystal reward increase per unit of time.
special_equipmentAny special equipment that may be needed
target_itemThe current target item that we are stealing.
time_fulfilledThe current time fulfilled around the item

Var Details

bug

The bug that will be put onto the item

extra_progression

Extra progression given for holding the item for the required duration of time.

extra_tc

Extra TC given for holding the item for the required duration of time.

hold_time_required

A list of 2 elements, which contain the range that the time will be in. Represented in minutes.

max_distance

The maximum distance between the bug and the objective taker for time to count as fulfilled

minutes_per_telecrystal

Telecrystal reward increase per unit of time.

special_equipment

Any special equipment that may be needed

target_item

The current target item that we are stealing.

time_fulfilled

The current time fulfilled around the item

\ No newline at end of file diff --git a/datum/traitor_objective/target_player.html b/datum/traitor_objective/target_player.html new file mode 100644 index 0000000000000..4d25c47f27d65 --- /dev/null +++ b/datum/traitor_objective/target_player.html @@ -0,0 +1,3 @@ +/datum/traitor_objective/target_player - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

target_player

The point of this datum is to act as a means to group target player objectives +Not all 'target player' objectives have to be under this subtype, it's only used if you don't want duplicates among the current +children types under this type.

Vars

maximum_objectives_in_periodThe maximum number of objectives we can get within this period.
objective_periodThe objective period at which we consider if it is an 'objective'. Set to 0 to accept all objectives.
targetThe target that we need to target.

Var Details

maximum_objectives_in_period

The maximum number of objectives we can get within this period.

objective_period

The objective period at which we consider if it is an 'objective'. Set to 0 to accept all objectives.

target

The target that we need to target.

\ No newline at end of file diff --git a/datum/traitor_objective/target_player/assassinate.html b/datum/traitor_objective/target_player/assassinate.html new file mode 100644 index 0000000000000..3ad226b45c38f --- /dev/null +++ b/datum/traitor_objective/target_player/assassinate.html @@ -0,0 +1,5 @@ +/datum/traitor_objective/target_player/assassinate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

assassinate

Vars

heads_of_staffMakes the objective only set heads as targets when true, and block them from being targets when false. +This also blocks the objective from generating UNTIL the un-heads_of_staff version (WHICH SHOULD BE A DIRECT PARENT) is completed. +example: calling card objective, you kill someone, you unlock the chance to roll a head of staff target version of calling card.

Procs

special_target_filterproc for checking for special states that invalidate a target

Var Details

heads_of_staff

Makes the objective only set heads as targets when true, and block them from being targets when false. +This also blocks the objective from generating UNTIL the un-heads_of_staff version (WHICH SHOULD BE A DIRECT PARENT) is completed. +example: calling card objective, you kill someone, you unlock the chance to roll a head of staff target version of calling card.

Proc Details

special_target_filter

proc for checking for special states that invalidate a target

\ No newline at end of file diff --git a/datum/traitor_objective/target_player/assault.html b/datum/traitor_objective/target_player/assault.html new file mode 100644 index 0000000000000..2eca92fd38816 --- /dev/null +++ b/datum/traitor_objective/target_player/assault.html @@ -0,0 +1 @@ +/datum/traitor_objective/target_player/assault - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

assault

Vars

attacks_inflictedTotal number of successful attacks recorded.
attacks_requiredThe random number picked for the number of required attacks to pass this objective.
max_attacks_requiredMax attacks required to pass the objective. Picked at random between this and min.
min_attacks_requiredMin attacks required to pass the objective. Picked at random between this and max.

Var Details

attacks_inflicted

Total number of successful attacks recorded.

attacks_required

The random number picked for the number of required attacks to pass this objective.

max_attacks_required

Max attacks required to pass the objective. Picked at random between this and min.

min_attacks_required

Min attacks required to pass the objective. Picked at random between this and max.

\ No newline at end of file diff --git a/datum/traitor_objective/target_player/eyesnatching.html b/datum/traitor_objective/target_player/eyesnatching.html new file mode 100644 index 0000000000000..2de0c43b447f1 --- /dev/null +++ b/datum/traitor_objective/target_player/eyesnatching.html @@ -0,0 +1 @@ +/datum/traitor_objective/target_player/eyesnatching - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

eyesnatching

Vars

heads_of_staffIf we're targeting heads of staff or not
spawned_eyesnatcherHave we already spawned an eyesnatcher

Var Details

heads_of_staff

If we're targeting heads of staff or not

spawned_eyesnatcher

Have we already spawned an eyesnatcher

\ No newline at end of file diff --git a/datum/traitor_objective/target_player/infect.html b/datum/traitor_objective/target_player/infect.html new file mode 100644 index 0000000000000..6107a7497905a --- /dev/null +++ b/datum/traitor_objective/target_player/infect.html @@ -0,0 +1,3 @@ +/datum/traitor_objective/target_player/infect - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

infect

Vars

heads_of_staffif TRUE, can only target heads of staff +if FALSE, CANNOT target heads of staff
injector_givenif TRUE, the injector item has been bestowed upon the player

Procs

special_target_filterproc for checking for special states that invalidate a target

Var Details

heads_of_staff

if TRUE, can only target heads of staff +if FALSE, CANNOT target heads of staff

injector_given

if TRUE, the injector item has been bestowed upon the player

Proc Details

special_target_filter

proc for checking for special states that invalidate a target

\ No newline at end of file diff --git a/datum/traitor_objective/target_player/kidnapping.html b/datum/traitor_objective/target_player/kidnapping.html new file mode 100644 index 0000000000000..4f2c2c35de34a --- /dev/null +++ b/datum/traitor_objective/target_player/kidnapping.html @@ -0,0 +1 @@ +/datum/traitor_objective/target_player/kidnapping - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

kidnapping

Vars

alive_bonusHow much TC do we get from sending the target alive
dropoff_areaArea that the target needs to be delivered to
pod_calledHave we called the pod yet?
target_belongingsAll stripped targets belongings (weakrefs)
target_jobsThe jobs that this objective is targeting.
victim_timeridThe ID of the stoppable timer for returning the captured crew

Var Details

alive_bonus

How much TC do we get from sending the target alive

dropoff_area

Area that the target needs to be delivered to

pod_called

Have we called the pod yet?

target_belongings

All stripped targets belongings (weakrefs)

target_jobs

The jobs that this objective is targeting.

victim_timerid

The ID of the stoppable timer for returning the captured crew

\ No newline at end of file diff --git a/datum/traitor_objective/ultimate/battle_royale.html b/datum/traitor_objective/ultimate/battle_royale.html new file mode 100644 index 0000000000000..2e8f8d73f3dc1 --- /dev/null +++ b/datum/traitor_objective/ultimate/battle_royale.html @@ -0,0 +1 @@ +/datum/traitor_objective/ultimate/battle_royale - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

battle_royale

Vars

equippedWhether the kit was sent already.
kit_spawn_areaArea type the objective owner must be in to receive the tools.

Var Details

equipped

Whether the kit was sent already.

kit_spawn_area

Area type the objective owner must be in to receive the tools.

\ No newline at end of file diff --git a/datum/traitor_objective/ultimate/battlecruiser.html b/datum/traitor_objective/ultimate/battlecruiser.html new file mode 100644 index 0000000000000..b801b37d71bbc --- /dev/null +++ b/datum/traitor_objective/ultimate/battlecruiser.html @@ -0,0 +1 @@ +/datum/traitor_objective/ultimate/battlecruiser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

battlecruiser

Vars

sent_accesscardChecks whether we have sent the card to the traitor yet.
teamBattlecruiser team that we get assigned to

Var Details

sent_accesscard

Checks whether we have sent the card to the traitor yet.

team

Battlecruiser team that we get assigned to

\ No newline at end of file diff --git a/datum/traitor_objective/ultimate/dark_matteor.html b/datum/traitor_objective/ultimate/dark_matteor.html new file mode 100644 index 0000000000000..6b854df30fbc3 --- /dev/null +++ b/datum/traitor_objective/ultimate/dark_matteor.html @@ -0,0 +1 @@ +/datum/traitor_objective/ultimate/dark_matteor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dark_matteor

Vars

satellites_spawnarea_typearea type the objective owner must be in to receive the satellites
sent_satelliteschecker on whether we have sent the satellites yet.

Var Details

satellites_spawnarea_type

area type the objective owner must be in to receive the satellites

sent_satellites

checker on whether we have sent the satellites yet.

\ No newline at end of file diff --git a/datum/traitor_objective/ultimate/infect_ai.html b/datum/traitor_objective/ultimate/infect_ai.html new file mode 100644 index 0000000000000..7332d4b316026 --- /dev/null +++ b/datum/traitor_objective/ultimate/infect_ai.html @@ -0,0 +1 @@ +/datum/traitor_objective/ultimate/infect_ai - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

infect_ai

Vars

board_area_pickuparea type the objective owner must be in to receive the law upload module
sent_boardchecker on whether we have sent the law upload module

Var Details

board_area_pickup

area type the objective owner must be in to receive the law upload module

sent_board

checker on whether we have sent the law upload module

\ No newline at end of file diff --git a/datum/traitor_objective/ultimate/romerol.html b/datum/traitor_objective/ultimate/romerol.html new file mode 100644 index 0000000000000..fd366bba920d6 --- /dev/null +++ b/datum/traitor_objective/ultimate/romerol.html @@ -0,0 +1 @@ +/datum/traitor_objective/ultimate/romerol - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

romerol

Vars

romerol_spawnarea_typearea type the objective owner must be in to receive the romerol
sent_romerolchecker on whether we have sent the romerol yet.

Var Details

romerol_spawnarea_type

area type the objective owner must be in to receive the romerol

sent_romerol

checker on whether we have sent the romerol yet.

\ No newline at end of file diff --git a/datum/traitor_objective/ultimate/supermatter_cascade.html b/datum/traitor_objective/ultimate/supermatter_cascade.html new file mode 100644 index 0000000000000..1eb369614f5b5 --- /dev/null +++ b/datum/traitor_objective/ultimate/supermatter_cascade.html @@ -0,0 +1 @@ +/datum/traitor_objective/ultimate/supermatter_cascade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

supermatter_cascade

Vars

dest_crystal_area_pickuparea type the objective owner must be in to receive the destabilizing crystal
sent_crystalchecker on whether we have sent the crystal yet.

Var Details

dest_crystal_area_pickup

area type the objective owner must be in to receive the destabilizing crystal

sent_crystal

checker on whether we have sent the crystal yet.

\ No newline at end of file diff --git a/datum/traitor_objective_category.html b/datum/traitor_objective_category.html new file mode 100644 index 0000000000000..1aed082ce6976 --- /dev/null +++ b/datum/traitor_objective_category.html @@ -0,0 +1,4 @@ +/datum/traitor_objective_category - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

traitor_objective_category

The objective category. +Used to group up entire objectives into 1 weight objects to prevent having a +higher chance of getting an objective due to an increased number of different objective subtypes. +These are nothing but informational holders and will have no other purpose.

Vars

nameName of the category, unused but may help in the future
objectivesAssoc list of objectives by type mapped to their weight. Can also contain lists of objectives mapped to weight
weightThe weight of the category. How likely this category is to be chosen.

Var Details

name

Name of the category, unused but may help in the future

objectives

Assoc list of objectives by type mapped to their weight. Can also contain lists of objectives mapped to weight

weight

The weight of the category. How likely this category is to be chosen.

\ No newline at end of file diff --git a/datum/tram_mfg_info.html b/datum/tram_mfg_info.html new file mode 100644 index 0000000000000..6ae07c4d0c5c5 --- /dev/null +++ b/datum/tram_mfg_info.html @@ -0,0 +1,4 @@ +/datum/tram_mfg_info - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tram_mfg_info

Vars

activeis it the active tram for the map
collisionslifetime number of players hit by the tram
distance_travelledlifetime distance the tram has travelled
install_locationwhat map the tram is used on
mfg_datedate the tram was created
serial_numberserial number of this tram (what round ID it first appeared in)

Procs

NewAssign registration details to a new tram.

Var Details

active

is it the active tram for the map

collisions

lifetime number of players hit by the tram

distance_travelled

lifetime distance the tram has travelled

install_location

what map the tram is used on

mfg_date

date the tram was created

serial_number

serial number of this tram (what round ID it first appeared in)

Proc Details

New

Assign registration details to a new tram.

+

When a new tram is created, we give it a builder's plate with the date it was created. +We track a few stats about it, and keep a small historical record on the +information plate inside the tram.

\ No newline at end of file diff --git a/datum/transport_controller/linear.html b/datum/transport_controller/linear.html new file mode 100644 index 0000000000000..ee48f8e7cfd0e --- /dev/null +++ b/datum/transport_controller/linear.html @@ -0,0 +1,57 @@ +/datum/transport_controller/linear - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

linear

coordinate and control movement across linked transport_controllers. allows moving large single multitile platforms and many 1 tile platforms. +also is capable of linking platforms across linked z levels

Vars

controller_statusbitfield of various transport states
create_modular_settaken from our lift platforms. if true we go through each z level of platforms and attempt to make the lowest left corner platform +into one giant multitile object the size of all other platforms on that z level.
ignored_smashthroughsTypepath list of what to ignore smashing through, controls all lifts
modular_setwhether the lift handled by this transport_controller datum is multitile as opposed to nxm platforms per z level
specific_transport_idoverridable ID string to link control units to this specific transport_controller datum. created by placing a transport id landmark object +somewhere on the tram, if its anywhere on the tram we'll find it in init and set this to whatever it specifies
throw_chanceprobability of being thrown hard during an emergency stop
transport_idtransport_id taken from our base lift platform, used to put us into SStransport.transports_by_type
transport_modulesthe lift platforms we consider as part of this transport. ordered in order of lowest z level to highest z level after init. +(the sorting algorithm sucks btw)
z_sortedlift platforms have already been sorted in order of z level.

Procs

Check_lift_moveCheck destination turfs
check_for_landmarkscheck for any landmarks placed inside the locs of the given transport_module
controls_lockSets transport controls_locked state. Used to prevent moving mid movement, or cooldowns.
create_modular_set_for_z_levelgoes through all platforms in the given list and finds the one in the lower left corner
finish_simple_move_wrapperWrap everything up from simple_move_wrapper finishing its movement
get_platforms_on_levelreturns all transport modules associated with this transport on the given z level or given atoms z level
get_zs_we_are_onReturns a list of all the z-levels our transport is currently on.
link_transport_modulesCollect all bordered platforms via a simple floodfill algorithm. allows multiz trams because its funny
move_after_delayMoves the platform after a passed delay.
move_lift_verticallyMoves the platform UP or DOWN, this is what users invoke with their hand. +This is a SAFE proc, ensuring every part of it moves SANELY.
move_to_zlevelMoves the platform to the passed z-level.
move_transport_horizontallyMoves the platform, this is what users invoke with their hand. +This is a SAFE proc, ensuring every part of the lift moves SANELY. +It also locks controls for the (miniscule) duration of the movement, so the elevator cannot be broken by spamming.
open_lift_doors_callbackHelper used in callbacks to open all the doors our platform is on
order_platforms_by_z_levelorders the lift platforms in order of lowest z level to highest z level.
reset_lift_contentsresets the contents of all platforms to their original state in case someone put a bunch of shit onto the platform. +intended to be called by admins. passes all arguments to reset_contents() for each of our platforms.
return_closest_platform_toreturns the closest transport to the specified atom, prioritizing transports on the same z level. used for comparing distance
return_closest_platform_to_zReturns a platform on the z-level which is vertically closest to the passed target_z
set_info_from_id_landmarkset vars and such given an overriding transport_id landmark
simple_move_wrapperSimple wrapper for checking if we can move 1 zlevel, and if we can, do said move. +Locks controls, closes all doors, then moves the platform and re-opens the doors afterwards.
update_lift_doorsUpdates all blast doors and shutters that share an ID with our lift.

Var Details

controller_status

bitfield of various transport states

create_modular_set

taken from our lift platforms. if true we go through each z level of platforms and attempt to make the lowest left corner platform +into one giant multitile object the size of all other platforms on that z level.

ignored_smashthroughs

Typepath list of what to ignore smashing through, controls all lifts

modular_set

whether the lift handled by this transport_controller datum is multitile as opposed to nxm platforms per z level

specific_transport_id

overridable ID string to link control units to this specific transport_controller datum. created by placing a transport id landmark object +somewhere on the tram, if its anywhere on the tram we'll find it in init and set this to whatever it specifies

throw_chance

probability of being thrown hard during an emergency stop

transport_id

transport_id taken from our base lift platform, used to put us into SStransport.transports_by_type

transport_modules

the lift platforms we consider as part of this transport. ordered in order of lowest z level to highest z level after init. +(the sorting algorithm sucks btw)

z_sorted

lift platforms have already been sorted in order of z level.

Proc Details

Check_lift_move

Check destination turfs

check_for_landmarks

check for any landmarks placed inside the locs of the given transport_module

controls_lock

Sets transport controls_locked state. Used to prevent moving mid movement, or cooldowns.

create_modular_set_for_z_level

goes through all platforms in the given list and finds the one in the lower left corner

finish_simple_move_wrapper

Wrap everything up from simple_move_wrapper finishing its movement

get_platforms_on_level

returns all transport modules associated with this transport on the given z level or given atoms z level

get_zs_we_are_on

Returns a list of all the z-levels our transport is currently on.

Collect all bordered platforms via a simple floodfill algorithm. allows multiz trams because its funny

move_after_delay

Moves the platform after a passed delay.

+

This is a more "user friendly" or "realistic" move. +It includes things like:

+ +

Arguments: +duration - required, how long do we wait to move the platform? +door_duration - optional, how long should we wait to open the doors after arriving? If null, we won't open or close doors +direction - which direction are we moving the lift? +user - optional, who is moving the lift?

move_lift_vertically

Moves the platform UP or DOWN, this is what users invoke with their hand. +This is a SAFE proc, ensuring every part of it moves SANELY.

+

Arguments: +going - UP or DOWN directions, where the platform should go. Keep in mind by this point checks of whether it should go up or down have already been done. +user - Whomever made the movement.

move_to_zlevel

Moves the platform to the passed z-level.

+

Checks for validity of the move: Are we moving to the same z-level, can we actually move to that z-level? +Does NOT check if the controls are currently locked.

+

Moves to the passed z-level by calling move_after_delay repeatedly until the passed z-level is reached. +This proc sleeps as it moves.

+

Arguments: +target_z - required, the Z we want to move to +loop_callback - optional, an additional callback invoked during the loop that allows the move to cancel. +user - optional, who started the move

move_transport_horizontally

Moves the platform, this is what users invoke with their hand. +This is a SAFE proc, ensuring every part of the lift moves SANELY. +It also locks controls for the (miniscule) duration of the movement, so the elevator cannot be broken by spamming.

open_lift_doors_callback

Helper used in callbacks to open all the doors our platform is on

order_platforms_by_z_level

orders the lift platforms in order of lowest z level to highest z level.

reset_lift_contents

resets the contents of all platforms to their original state in case someone put a bunch of shit onto the platform. +intended to be called by admins. passes all arguments to reset_contents() for each of our platforms.

+

Arguments:

+

return_closest_platform_to

returns the closest transport to the specified atom, prioritizing transports on the same z level. used for comparing distance

return_closest_platform_to_z

Returns a platform on the z-level which is vertically closest to the passed target_z

set_info_from_id_landmark

set vars and such given an overriding transport_id landmark

simple_move_wrapper

Simple wrapper for checking if we can move 1 zlevel, and if we can, do said move. +Locks controls, closes all doors, then moves the platform and re-opens the doors afterwards.

+

Arguments: +direction - which direction are we moving? +lift_move_duration - how long does the move take? can be 0 or null for instant move. +door_duration - how long does it take for the doors to open after a move? +user - optional, who moved it?

update_lift_doors

Updates all blast doors and shutters that share an ID with our lift.

+

Arguments: +on_z_level - optional, only open doors on this z-level or list of z-levels +action - how do we update the doors? CYCLE_OPEN to make them open, CYCLE_CLOSED to make them shut

\ No newline at end of file diff --git a/datum/transport_controller/linear/tram.html b/datum/transport_controller/linear/tram.html new file mode 100644 index 0000000000000..87bbf9028b5b1 --- /dev/null +++ b/datum/transport_controller/linear/tram.html @@ -0,0 +1,72 @@ +/datum/transport_controller/linear/tram - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tram

Tram specific variant of the generic linear transport controller.

+

Hierarchy +The sstransport subsystem manages a list of controllers, +A controller manages a list of transport modules (individual tiles) which together make up a transport unit (in this case a tram)

Vars

base_speed_limiterversion of speed_limiter that gets set in init and is considered our base speed if our lift gets slowed down
collision_lethalitymultiplier on how much damage/force the tram imparts on things it hits
controller_activewhether this controller is active (any state we don't accept new orders, not nessecarily moving)
controller_operationalwhether all required parts of the tram are considered operational
destination_platformreference to the destination landmark we consider ourselves travelling towards.
home_controllerthe home controller located in telecoms
idle_platformreference to the landmark we consider ourself stationary at.
malf_activeif the tram's next stop will be the tram malfunction event sequence
nav_beaconreference to the navigation landmark associated with this tram. since we potentially span multiple z levels we dont actually +know where on us this platform is. as long as we know THAT its on us we can just move the distance and direction between this +and the destination landmark.
paired_cabinetthe controller cabinet located on the tram
recovery_activate_counthow many times we moved while costing more than SStransport.max_time milliseconds per movement. +if this exceeds SStransport.max_exceeding_moves
recovery_clear_counthow many times we moved while costing less than 0.5 * SStransport.max_time milliseconds per movement
recovery_modewhether we have been slowed down automatically
scheduled_movethe world.time we should next move at. in case our speed is set to less than 1 movement per tick
speed_limiterdecisecond delay between horizontal movement. cannot make the tram move faster than 1 movement per world.tick_lag.
tram_historyprevious trams that have been destroyed
tram_registrationfluff information of the tram, such as ongoing kill count and age
travel_directionif we're travelling, what direction are we going
travel_remainingif we're travelling, how far do we have to go
travel_trip_lengthhow far in total we'll be travelling

Procs

NewMake sure all modules have matching speed limiter vars, pull save data from persistence
add_transport_modulesRegister transport modules to the controller
calculate_routeCalculate the journey details to the requested platform
check_for_landmarksThe mapper should have placed the tram at one of the stations, the controller will search for a landmark within +its control area and set it as its idle position.
check_starting_landmarkVerify tram is in a valid starting location, start the subsystem.
closest_nav_in_travel_dirReturns the closest tram nav beacon to an atom
crash_fxTram crash sound and visuals
cycle_doorsCycle all the doors on the tram.
degraded_stopTram comes to an in-station degraded stop, throwing the players. Caused by power loss or tram malfunction event.
dispatch_transportHandles moving the tram
end_malf_eventRemove effects of tram malfunction event.
gracefully_breakThe tram explodes if it hits a few types of objects.
halt_and_catch_fireTram comes to an emergency stop without completing its trip. Caused by emergency stop button or some catastrophic tram failure.
normal_stopTram stops normally, performs post-trip actions and updates the tram registration.
processTram processing loop
reset_positionPerforms a reset of the tram's position data by finding a predetermined reference landmark, then driving to it.
rod_collisionMoves the tram when hit by an immovable rod
set_activeSets the active status for the controller and sends a signal to listeners.
set_status_codeSets the controller status bitfield
start_malf_eventTram malfunction random event. Set comm error, requiring engineering or AI intervention.
unlock_controlsHandles unlocking the tram controls for use after moving
update_statusPart of the pre-departure list, checks the status of the doors on the tram
vv_edit_varIf someone VVs the base speed limiter of the tram, copy it to the current active speed limiter.

Var Details

base_speed_limiter

version of speed_limiter that gets set in init and is considered our base speed if our lift gets slowed down

collision_lethality

multiplier on how much damage/force the tram imparts on things it hits

controller_active

whether this controller is active (any state we don't accept new orders, not nessecarily moving)

controller_operational

whether all required parts of the tram are considered operational

destination_platform

reference to the destination landmark we consider ourselves travelling towards.

home_controller

the home controller located in telecoms

idle_platform

reference to the landmark we consider ourself stationary at.

malf_active

if the tram's next stop will be the tram malfunction event sequence

nav_beacon

reference to the navigation landmark associated with this tram. since we potentially span multiple z levels we dont actually +know where on us this platform is. as long as we know THAT its on us we can just move the distance and direction between this +and the destination landmark.

paired_cabinet

the controller cabinet located on the tram

recovery_activate_count

how many times we moved while costing more than SStransport.max_time milliseconds per movement. +if this exceeds SStransport.max_exceeding_moves

recovery_clear_count

how many times we moved while costing less than 0.5 * SStransport.max_time milliseconds per movement

recovery_mode

whether we have been slowed down automatically

scheduled_move

the world.time we should next move at. in case our speed is set to less than 1 movement per tick

speed_limiter

decisecond delay between horizontal movement. cannot make the tram move faster than 1 movement per world.tick_lag.

tram_history

previous trams that have been destroyed

tram_registration

fluff information of the tram, such as ongoing kill count and age

travel_direction

if we're travelling, what direction are we going

travel_remaining

if we're travelling, how far do we have to go

travel_trip_length

how far in total we'll be travelling

Proc Details

New

Make sure all modules have matching speed limiter vars, pull save data from persistence

+

We track a few stats about it, and keep a small historical record on the +information plate inside the tram.

add_transport_modules

Register transport modules to the controller

+

Spreads out searching neighbouring tiles for additional transport modules, to combine into one full tram. +We register to every module's signal that it's collided with something, be it mob, structure, etc.

calculate_route

Calculate the journey details to the requested platform

+

These will eventually be passed to the transport modules as args telling them where to move. +We do some sanity checking in case of discrepencany between where the subsystem thinks the +tram is and where the tram actually is. (For example, moving the landmarks after round start.)

check_for_landmarks

The mapper should have placed the tram at one of the stations, the controller will search for a landmark within +its control area and set it as its idle position.

check_starting_landmark

Verify tram is in a valid starting location, start the subsystem.

+

Throw an error if someone mapped a tram with no landmarks available for it to register. +The processing subsystem starts off because not all maps have elevators/transports. +Now that the tram is aware of its surroundings, we start the subsystem.

closest_nav_in_travel_dir

Returns the closest tram nav beacon to an atom

+

Creates a list of nav beacons in the requested direction +and returns the closest to be passed to the industrial_lift

+

Arguments: source: the starting point to find a beacon +travel_dir: travel direction in tram form, INBOUND or OUTBOUND +beacon_type: what list of beacons we pull from

crash_fx

Tram crash sound and visuals

cycle_doors

Cycle all the doors on the tram.

degraded_stop

Tram comes to an in-station degraded stop, throwing the players. Caused by power loss or tram malfunction event.

dispatch_transport

Handles moving the tram

+

Called by the subsystem, the controller tells the individual tram parts where to actually go and has extra safety checks +incase multiple inputs get through, preventing conflicting directions and the tram literally ripping itself apart. +All of the actual movement is handled by SStransport.

+

If we're this far all the PRE_DEPARTURE checks should have passed, so we leave the PRE_DEPARTURE status and actually move. +We send a signal to anything registered that cares about the physical movement of the tram.

+

Arguments:

+

end_malf_event

Remove effects of tram malfunction event.

+

If engineers didn't already repair the tram by the end of the event, +automagically reset it remotely.

gracefully_break

The tram explodes if it hits a few types of objects.

+

Signal for when the tram runs into a field of which it cannot go through. +Stops the train's travel fully, sends a message, and destroys the train. +Arguments:

+

halt_and_catch_fire

Tram comes to an emergency stop without completing its trip. Caused by emergency stop button or some catastrophic tram failure.

normal_stop

Tram stops normally, performs post-trip actions and updates the tram registration.

process

Tram processing loop

+

Moves the tram to its set destination. +When it arrives at its destination perform callback to the post-arrival procs like controls and lights. +We update the odometer and kill the process until we need to move again.

+

If the status is EMERGENCY_STOP the tram should immediately come to a stop regardless of the travel_remaining. +Some extra things happen in an emergency stop (throwing the passengers) and when reset will run a +recovery procedure to head to the nearest platform and sync logical and physical location data +(idle_platform and nav_beacon) once the issue is resolved.

reset_position

Performs a reset of the tram's position data by finding a predetermined reference landmark, then driving to it.

rod_collision

Moves the tram when hit by an immovable rod

+

Tells the individual tram parts where to actually go and has an extra safety checks +incase multiple inputs get through, preventing conflicting directions and the tram +literally ripping itself apart. all of the actual movement is handled by SStramprocess

+

Arguments: collided_rod (the immovable rod that hit the tram) +Return: push_destination (the landmark /obj/effect/landmark/transport/nav_beacon/tram/nav that the tram is being pushed to due to the rod's trajectory)

set_active

Sets the active status for the controller and sends a signal to listeners.

+

The main signal used by most components, it has the active status, the bitfield of the controller's status, its direction, and set destination.

+

Arguments: +new_status - The active status of the controller (whether it's busy doing something and not taking commands right now)

set_status_code

Sets the controller status bitfield

+

This status var is used by various components like lights, crossing signals, signs +Sent via signal the listening components will perform required actions based on +the status codes.

+

Arguments:

+

start_malf_event

Tram malfunction random event. Set comm error, requiring engineering or AI intervention.

unlock_controls

Handles unlocking the tram controls for use after moving

+

More safety checks to make sure the tram has actually docked properly +at a location before users are allowed to interact with the tram console again. +Tram finds its location at this point before fully unlocking controls to the user.

update_status

Part of the pre-departure list, checks the status of the doors on the tram

+

Checks if all doors are closed, and updates the status code accordingly.

+

TODO: this is probably better renamed check_door_status()

vv_edit_var

If someone VVs the base speed limiter of the tram, copy it to the current active speed limiter.

\ No newline at end of file diff --git a/datum/trophy_data.html b/datum/trophy_data.html new file mode 100644 index 0000000000000..6078385164d27 --- /dev/null +++ b/datum/trophy_data.html @@ -0,0 +1 @@ +/datum/trophy_data - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

trophy_data

trophy data datum, for admin manipulation

Vars

messagethe message that appears under the item
pathpath of the item the trophy will try to mimic, null if path_string is invalid
placer_keythe key of the one who placed the item in the trophy case

Var Details

message

the message that appears under the item

path

path of the item the trophy will try to mimic, null if path_string is invalid

placer_key

the key of the one who placed the item in the trophy case

\ No newline at end of file diff --git a/datum/tts_request.html b/datum/tts_request.html new file mode 100644 index 0000000000000..defce1e450862 --- /dev/null +++ b/datum/tts_request.html @@ -0,0 +1,3 @@ +/datum/tts_request - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tts_request

A struct containing information on an individual player or mob who has made a TTS request

Vars

audio_fileThe audio file of this tts request.
audio_file_blipsThe blips audio file of this tts request.
audio_lengthThe audio length of this tts request.
identifierThe message identifier
languageThe language to limit this TTS message to
listenersThe people who are going to hear this TTS message +Does nothing if local is set to TRUE
localWhether this TTS message should be sent to the target only or not.
messageThe message itself
message_rangeThe message range to play this TTS message
pitchWhat's the pitch adjustment?
requestThe HTTP request of this message
request_blipsThe HTTP request of this message for blips
start_timeThe time at which this request was started
targetThe mob to play this TTS message on
timed_outWhether this request was timed out or not
use_blipsDoes this use blips during local generation or not?
volume_offsetThe volume offset to play this TTS at.
when_to_playWhen the audio file should play at the minimum

Var Details

audio_file

The audio file of this tts request.

audio_file_blips

The blips audio file of this tts request.

audio_length

The audio length of this tts request.

identifier

The message identifier

language

The language to limit this TTS message to

listeners

The people who are going to hear this TTS message +Does nothing if local is set to TRUE

local

Whether this TTS message should be sent to the target only or not.

message

The message itself

message_range

The message range to play this TTS message

pitch

What's the pitch adjustment?

request

The HTTP request of this message

request_blips

The HTTP request of this message for blips

start_time

The time at which this request was started

target

The mob to play this TTS message on

timed_out

Whether this request was timed out or not

use_blips

Does this use blips during local generation or not?

volume_offset

The volume offset to play this TTS at.

when_to_play

When the audio file should play at the minimum

\ No newline at end of file diff --git a/datum/turf_reservation.html b/datum/turf_reservation.html new file mode 100644 index 0000000000000..711e5b39acbcb --- /dev/null +++ b/datum/turf_reservation.html @@ -0,0 +1 @@ +/datum/turf_reservation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

turf_reservation

Vars

bottom_left_turfsList of the bottom left turfs. Indexed by what their z index for this reservation is
cordon_turfsTurfs around the reservation for cordoning
heightThe height of the reservation
pre_cordon_distanceDistance away from the cordon where we can put a "sort-cordon" and run some extra code (see make_repel). 0 makes nothing happen
pre_cordon_turfsArea of turfs next to the cordon to fill with pre_cordon_area's
reserved_turfsAll turfs that we've reserved
top_right_turfsList of the top right turfs. Indexed by what their z index for this reservation is
turf_typeThe turf type the reservation is initially made with
turf_type_is_baseturfDo we override baseturfs with turf_type?
widthThe width of the reservation
z_sizeThe z stack size of the reservation. Note that reservations are ALWAYS reserved from the bottom up

Procs

_reserve_areaInternal proc which handles reserving the area for the reservation.
calculate_cordon_turfsAttempts to calaculate and store a list of turfs around the reservation for cordoning. Returns whether a valid cordon was calculated
calculate_turf_bounds_informationCalculates the effective bounds information for the given turf. Returns a list of the information, or null if not applicable.
generate_cordonActually generates the cordon around the reservation, and marking the cordon turfs as reserved
get_turf_aboveGets the turf above the given target. Returns null if there is no turf above the target
get_turf_belowGets the turf below the given target. Returns null if there is no turf below the target
make_repelRegister signals in the cordon "danger zone" to do something with whoever trespasses
stop_repelUnregister all the signals we added in RegisterRepelSignals

Var Details

bottom_left_turfs

List of the bottom left turfs. Indexed by what their z index for this reservation is

cordon_turfs

Turfs around the reservation for cordoning

height

The height of the reservation

pre_cordon_distance

Distance away from the cordon where we can put a "sort-cordon" and run some extra code (see make_repel). 0 makes nothing happen

pre_cordon_turfs

Area of turfs next to the cordon to fill with pre_cordon_area's

reserved_turfs

All turfs that we've reserved

top_right_turfs

List of the top right turfs. Indexed by what their z index for this reservation is

turf_type

The turf type the reservation is initially made with

turf_type_is_baseturf

Do we override baseturfs with turf_type?

width

The width of the reservation

z_size

The z stack size of the reservation. Note that reservations are ALWAYS reserved from the bottom up

Proc Details

_reserve_area

Internal proc which handles reserving the area for the reservation.

calculate_cordon_turfs

Attempts to calaculate and store a list of turfs around the reservation for cordoning. Returns whether a valid cordon was calculated

calculate_turf_bounds_information

Calculates the effective bounds information for the given turf. Returns a list of the information, or null if not applicable.

generate_cordon

Actually generates the cordon around the reservation, and marking the cordon turfs as reserved

get_turf_above

Gets the turf above the given target. Returns null if there is no turf above the target

get_turf_below

Gets the turf below the given target. Returns null if there is no turf below the target

make_repel

Register signals in the cordon "danger zone" to do something with whoever trespasses

stop_repel

Unregister all the signals we added in RegisterRepelSignals

\ No newline at end of file diff --git a/datum/turf_reservation/transit.html b/datum/turf_reservation/transit.html new file mode 100644 index 0000000000000..3750755d47662 --- /dev/null +++ b/datum/turf_reservation/transit.html @@ -0,0 +1 @@ +/datum/turf_reservation/transit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

transit

Procs

space_dump_softOnly dump if we don't have the hyperspace cordon movement exemption trait

Proc Details

space_dump_soft

Only dump if we don't have the hyperspace cordon movement exemption trait

\ No newline at end of file diff --git a/datum/tutorial.html b/datum/tutorial.html new file mode 100644 index 0000000000000..da92fbadce304 --- /dev/null +++ b/datum/tutorial.html @@ -0,0 +1,24 @@ +/datum/tutorial - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tutorial

The base for a contextual tutorial. +In order to give a tutorial to someone, use SStutorials.suggest_tutorial(user, /datum/tutorial/subtype)

Vars

grandfather_dateIf set, any account who started playing before this date will not be given this tutorial. +Date is in YYYY-MM-DD format.
userThe mob we are giving the tutorial to

Procs

animate_ui_elementCreates a UI element with the given icon_state, starts it at initial_screen_loc, and animates it to target_screen_loc. +Waits animate_start_time before moving.
completeCalled by the tutorial when the user has successfully completed it. +Will mark it as completed in the datbaase and kick off destruction of the tutorial.
dismissAs opposed to complete(), this merely hides the tutorial. +This should be used when the user doesn't need the tutorial anymore, but didn't +actually properly finish it.
keybinding_messageGiven a keybind and a message, will replace %KEY% in message with the first keybind they have. +As a fallback, will return the third parameter, message_without_keybinds, if none are set.
managerGets the [/datum/tutorial_manager] that owns this tutorial.
performThe actual steps of the tutorial. Is given any excess arguments of suggest_tutorial. +Must be overridden.
perform_completion_effects_with_delayCalled when the tutorial is being hidden, but before it is deleted. +You should unregister signals and fade out any of your creations in here. +Returns how long extra to delay the deletion.
should_performReturns TRUE/FALSE if this tutorial should be given. +If FALSE, does not mean it won't come back later.
show_instructionShows a large piece of text on the user's screen with the given message. +If a message already exists, will fade it out and replace it.

Var Details

grandfather_date

If set, any account who started playing before this date will not be given this tutorial. +Date is in YYYY-MM-DD format.

user

The mob we are giving the tutorial to

Proc Details

animate_ui_element

Creates a UI element with the given icon_state, starts it at initial_screen_loc, and animates it to target_screen_loc. +Waits animate_start_time before moving.

complete

Called by the tutorial when the user has successfully completed it. +Will mark it as completed in the datbaase and kick off destruction of the tutorial.

dismiss

As opposed to complete(), this merely hides the tutorial. +This should be used when the user doesn't need the tutorial anymore, but didn't +actually properly finish it.

keybinding_message

Given a keybind and a message, will replace %KEY% in message with the first keybind they have. +As a fallback, will return the third parameter, message_without_keybinds, if none are set.

manager

Gets the [/datum/tutorial_manager] that owns this tutorial.

perform

The actual steps of the tutorial. Is given any excess arguments of suggest_tutorial. +Must be overridden.

perform_completion_effects_with_delay

Called when the tutorial is being hidden, but before it is deleted. +You should unregister signals and fade out any of your creations in here. +Returns how long extra to delay the deletion.

should_perform

Returns TRUE/FALSE if this tutorial should be given. +If FALSE, does not mean it won't come back later.

show_instruction

Shows a large piece of text on the user's screen with the given message. +If a message already exists, will fade it out and replace it.

\ No newline at end of file diff --git a/datum/tutorial_manager.html b/datum/tutorial_manager.html new file mode 100644 index 0000000000000..0d3ad856e9f7c --- /dev/null +++ b/datum/tutorial_manager.html @@ -0,0 +1,15 @@ +/datum/tutorial_manager - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tutorial_manager

A singleton that manages when to create tutorials of a specific tutorial type.

Vars

finished_ckeysckeys that we know have finished the tutorial
performing_ckeysckeys that have performed the tutorial, but have not completed it. +Doesn't mean that they can still see the tutorial, might have meant the tutorial was dismissed +without being completed, such as during a log out.

Procs

completeMarks the tutorial as completed. +Call /datum/tutorial/proc/complete() instead.
dismissDismisses the tutorial, not marking it as completed in the database. +Call /datum/tutorial/proc/dismiss() instead.
get_keyGives the key that will be saved in the database. +Must be 64 characters or less.
mark_as_completedGiven a ckey, will mark them as being completed without affecting the database. +Call /datum/tutorial/proc/complete() instead.
should_runChecks if the user should be given this tutorial
try_performChecks if we should perform the tutorial for the given user, and performs if so. +Use SStutorials.suggest_tutorial instead of calling this directly.

Var Details

finished_ckeys

ckeys that we know have finished the tutorial

performing_ckeys

ckeys that have performed the tutorial, but have not completed it. +Doesn't mean that they can still see the tutorial, might have meant the tutorial was dismissed +without being completed, such as during a log out.

Proc Details

complete

Marks the tutorial as completed. +Call /datum/tutorial/proc/complete() instead.

dismiss

Dismisses the tutorial, not marking it as completed in the database. +Call /datum/tutorial/proc/dismiss() instead.

get_key

Gives the key that will be saved in the database. +Must be 64 characters or less.

mark_as_completed

Given a ckey, will mark them as being completed without affecting the database. +Call /datum/tutorial/proc/complete() instead.

should_run

Checks if the user should be given this tutorial

try_perform

Checks if we should perform the tutorial for the given user, and performs if so. +Use SStutorials.suggest_tutorial instead of calling this directly.

\ No newline at end of file diff --git a/datum/ui_state.html b/datum/ui_state.html new file mode 100644 index 0000000000000..468c5e48f8730 --- /dev/null +++ b/datum/ui_state.html @@ -0,0 +1,6 @@ +/datum/ui_state - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ui_state

Procs

can_use_topicprivate

Proc Details

can_use_topic

private

+

Checks if a user can use src_object's UI, and returns the state. +Can call a mob proc, which allows overrides for each mob.

+

required src_object datum The object/datum which owns the UI. +required user mob The mob who opened/is using the UI.

+

return UI_state The state of the UI.

\ No newline at end of file diff --git a/datum/unit_test.html b/datum/unit_test.html new file mode 100644 index 0000000000000..c0669533cfdd3 --- /dev/null +++ b/datum/unit_test.html @@ -0,0 +1,5 @@ +/datum/unit_test - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

unit_test

Vars

abstract_typeDo not instantiate if type matches this
priorityThe priority of the test, the larger it is the later it fires
run_loc_floor_bottom_leftThe bottom left floor turf of the testing zone
run_loc_floor_top_rightThe top right floor turf of the testing zone
uncreatablesList of atoms that we don't want to ever initialize in an agnostic context, like for Create and Destroy. Stored on the base datum for usability in other relevant tests that need this data.

Procs

allocateAllocates an instance of the provided type, and places it somewhere in an available loc +Instances allocated through this proc will be destroyed when the test is over
build_list_of_uncreatablesBuilds (and returns) a list of atoms that we shouldn't initialize in generic testing, like Create and Destroy. +It is appreciated to add the reason why the atom shouldn't be initialized if you add it to this list.
get_flat_icon_for_all_directionsHelper for screenshot tests to take an image of an atom from all directions and insert it into one icon
log_for_testLogs a test message. Will use GitHub action syntax found at https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions
restore_atmosResets the air of our testing room to its default

Var Details

abstract_type

Do not instantiate if type matches this

priority

The priority of the test, the larger it is the later it fires

run_loc_floor_bottom_left

The bottom left floor turf of the testing zone

run_loc_floor_top_right

The top right floor turf of the testing zone

uncreatables

List of atoms that we don't want to ever initialize in an agnostic context, like for Create and Destroy. Stored on the base datum for usability in other relevant tests that need this data.

Proc Details

allocate

Allocates an instance of the provided type, and places it somewhere in an available loc +Instances allocated through this proc will be destroyed when the test is over

build_list_of_uncreatables

Builds (and returns) a list of atoms that we shouldn't initialize in generic testing, like Create and Destroy. +It is appreciated to add the reason why the atom shouldn't be initialized if you add it to this list.

get_flat_icon_for_all_directions

Helper for screenshot tests to take an image of an atom from all directions and insert it into one icon

log_for_test

Logs a test message. Will use GitHub action syntax found at https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions

restore_atmos

Resets the air of our testing room to its default

\ No newline at end of file diff --git a/datum/unit_test/atmospheric_gas_transfer.html b/datum/unit_test/atmospheric_gas_transfer.html new file mode 100644 index 0000000000000..9eba72177521a --- /dev/null +++ b/datum/unit_test/atmospheric_gas_transfer.html @@ -0,0 +1,9 @@ +/datum/unit_test/atmospheric_gas_transfer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

atmospheric_gas_transfer

Test to make sure the pressure pumping proc used by things like portable pumps, pressure pumps, etc actually work.

Procs

nob_to_tritProc to transfer x moles of x temp nob to x moles of x temp trit.

Proc Details

nob_to_trit

Proc to transfer x moles of x temp nob to x moles of x temp trit.

+

Arguments:

+
\ No newline at end of file diff --git a/datum/unit_test/atmospherics_sanity.html b/datum/unit_test/atmospherics_sanity.html new file mode 100644 index 0000000000000..fb490d5c60036 --- /dev/null +++ b/datum/unit_test/atmospherics_sanity.html @@ -0,0 +1,3 @@ +/datum/unit_test/atmospherics_sanity - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

atmospherics_sanity

This test checks that all expected areas are connected to a starting area

Vars

crawled_areasList of areas already crawled, to prevent needless crawling
crawlsWe run this test in parallel, so we need to keep track of how many crawls are running +This is to prevent stack overflow mostly
remaining_areasList of areas remaining to be checked
starting_areasList of areas to start crawling from

Procs

crawl_areaCrawls through an area, iterating over all vents/scrubbers and their connected pipelines
crawl_areasIterates over starting_areas and ensures that all goal areas are connected to atleast one start
crawl_pipelineCrawls through a pipeline, iterating over all connected machines and their connected areas

Var Details

crawled_areas

List of areas already crawled, to prevent needless crawling

crawls

We run this test in parallel, so we need to keep track of how many crawls are running +This is to prevent stack overflow mostly

remaining_areas

List of areas remaining to be checked

starting_areas

List of areas to start crawling from

Proc Details

crawl_area

Crawls through an area, iterating over all vents/scrubbers and their connected pipelines

crawl_areas

Iterates over starting_areas and ensures that all goal areas are connected to atleast one start

crawl_pipeline

Crawls through a pipeline, iterating over all connected machines and their connected areas

\ No newline at end of file diff --git a/datum/unit_test/bake_a_cake.html b/datum/unit_test/bake_a_cake.html new file mode 100644 index 0000000000000..9e0bd29acb109 --- /dev/null +++ b/datum/unit_test/bake_a_cake.html @@ -0,0 +1 @@ +/datum/unit_test/bake_a_cake - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bake_a_cake

Procs

RunConfirm that it is possible to bake a cake, get the food buff from a hand-made food and confirm that the reagents are consistent throughout the process

Proc Details

Run

Confirm that it is possible to bake a cake, get the food buff from a hand-made food and confirm that the reagents are consistent throughout the process

\ No newline at end of file diff --git a/datum/unit_test/binary_insert.html b/datum/unit_test/binary_insert.html new file mode 100644 index 0000000000000..a86ff8581e36e --- /dev/null +++ b/datum/unit_test/binary_insert.html @@ -0,0 +1 @@ +/datum/unit_test/binary_insert - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

binary_insert

Procs

RunA test to ensure the sanity of BINARY_INSERT

Proc Details

Run

A test to ensure the sanity of BINARY_INSERT

\ No newline at end of file diff --git a/datum/unit_test/blindness.html b/datum/unit_test/blindness.html new file mode 100644 index 0000000000000..9c1d569101bbb --- /dev/null +++ b/datum/unit_test/blindness.html @@ -0,0 +1,2 @@ +/datum/unit_test/blindness - /tg/ Station 13
/tg/ Station 13 - Modules - Types

blindness

Unit test to check that blindness adds the correct status effects, overlays, and client colors

+

Also checks that blindness is added and removed correctly when it should and shouldn't be

\ No newline at end of file diff --git a/datum/unit_test/breath.html b/datum/unit_test/breath.html new file mode 100644 index 0000000000000..9cf1b5c0c964c --- /dev/null +++ b/datum/unit_test/breath.html @@ -0,0 +1,6 @@ +/datum/unit_test/breath - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

breath

Tests to ensure humans, plasmamen, and ashwalkers can breath in normal situations. +Ensures algorithmic correctness of the "breathe()" and "toggle_internals()" procs. +Built to prevent regression on an issue surrounding QUANTIZE() and BREATH_VOLUME. +See the comment on BREATH_VOLUME for more details.

Procs

equip_labrat_internalsEquips the given Human with a new instance of the given tank type and a breathing mask. +Returns the new equipped tank.

Proc Details

equip_labrat_internals

Equips the given Human with a new instance of the given tank type and a breathing mask. +Returns the new equipped tank.

\ No newline at end of file diff --git a/datum/unit_test/container_resist.html b/datum/unit_test/container_resist.html new file mode 100644 index 0000000000000..5c5da21d837ce --- /dev/null +++ b/datum/unit_test/container_resist.html @@ -0,0 +1 @@ +/datum/unit_test/container_resist - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

container_resist

Procs

RunTest that you can resist out of a container

Proc Details

Run

Test that you can resist out of a container

\ No newline at end of file diff --git a/datum/unit_test/dcs_check_list_arguments.html b/datum/unit_test/dcs_check_list_arguments.html new file mode 100644 index 0000000000000..4df9c56e25cbf --- /dev/null +++ b/datum/unit_test/dcs_check_list_arguments.html @@ -0,0 +1,18 @@ +/datum/unit_test/dcs_check_list_arguments - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dcs_check_list_arguments

list arguments for bespoke elements are treated as a text ref in the ID, like any other datum. +Which means that, unless cached, using lists as arguments will lead to multiple instance of the same element +being created over and over.

+

Because of how it works, this unit test checks that these list datum args +do not share similar contents (when rearranged in descending alpha-numerical order), to ensure that +the least necessary amount of elements is created. So, using static lists may not be enough, +for example, in the case of two different critters using the death_drops element to drop ectoplasm on death, since, +despite being static lists, the two are different instances assigned to different mob types.

+

Most of the time, you won't encounter two different static lists with similar contents used as element args, +meaning using static lists is accepted. However, should that happen, it's advised to replace the instances +with various string_x procs: lists, assoc_lists, assoc_nested_lists or numbers_list, depending on the type.

+

In the case of an element where the position of the contents of each datum list argument is important, +ELEMENT_DONT_SORT_LIST_ARGS should be added to its flags, to prevent such issues where the contents are similar +when sorted, but the element instances are not.

+

In the off-chance the element is not compatible with this unit test (such as for connect_loc et simila), +you can also use ELEMENT_NO_LIST_UNIT_TEST so that they won't be processed by this unit test at all.

Vars

priorityThis unit test requires every (unless ignored) atom to have been created at least once +for a more accurate search, which is why it's run after create_and_destroy is done running.

Var Details

priority

This unit test requires every (unless ignored) atom to have been created at least once +for a more accurate search, which is why it's run after create_and_destroy is done running.

\ No newline at end of file diff --git a/datum/unit_test/defined_inhand_icon_states.html b/datum/unit_test/defined_inhand_icon_states.html new file mode 100644 index 0000000000000..40b77f13638d8 --- /dev/null +++ b/datum/unit_test/defined_inhand_icon_states.html @@ -0,0 +1,5 @@ +/datum/unit_test/defined_inhand_icon_states - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

defined_inhand_icon_states

Makes sure items with defined inhand_icon_states... actually have icons that exist!

Vars

additional_inhands_locationadditional_inhands_location is for downstream modularity support. as an example, for skyrat's usage, set additional_inhands_location = "modular_skyrat/master_files/icons/mob/inhands/" +Make sure this location is also present in tools/deploy.sh +If you need additional paths ontop of this second one, you can add another generate_possible_icon_states_list("your/folder/path/inhands/") below the if(additional_inhands_location) block in Run(), and make sure to add that path to tools/deploy.sh as well.

Var Details

additional_inhands_location

additional_inhands_location is for downstream modularity support. as an example, for skyrat's usage, set additional_inhands_location = "modular_skyrat/master_files/icons/mob/inhands/" +Make sure this location is also present in tools/deploy.sh +If you need additional paths ontop of this second one, you can add another generate_possible_icon_states_list("your/folder/path/inhands/") below the if(additional_inhands_location) block in Run(), and make sure to add that path to tools/deploy.sh as well.

\ No newline at end of file diff --git a/datum/unit_test/dismemberment.html b/datum/unit_test/dismemberment.html new file mode 100644 index 0000000000000..532009e351265 --- /dev/null +++ b/datum/unit_test/dismemberment.html @@ -0,0 +1,2 @@ +/datum/unit_test/dismemberment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

dismemberment

Procs

RunUnit test to check that held items are dropped correctly when we are dismembered.

Proc Details

Run

Unit test to check that held items are dropped correctly when we are dismembered.

+

Also tests for edge cases such as undroppable items.

\ No newline at end of file diff --git a/datum/unit_test/ensure_subtree_operational_datum.html b/datum/unit_test/ensure_subtree_operational_datum.html new file mode 100644 index 0000000000000..2f26f497f7bb4 --- /dev/null +++ b/datum/unit_test/ensure_subtree_operational_datum.html @@ -0,0 +1,2 @@ +/datum/unit_test/ensure_subtree_operational_datum - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ensure_subtree_operational_datum

Unit Test that ensure that if we add a specific planning subtree to a basic mob's planning tree, that we also have the operational datum needed for it (component/element). +This can be extended to other "mandatory" operational datums for certain subtrees to work.

Vars

testable_mobsAssociated list of mobs that we need to test this on. Key is the typepath of the mob, value is a list of the planning subtree and the operational datums that are required for it.

Procs

gather_testable_mobsFirst, look for all mobs that have a planning subtree that requires an element, then add it to the list for stuff to test afterwards. Done like this to not have one mumbo proc that's hard to read.
test_applicable_mobsThen, test the mobs that we've found

Var Details

testable_mobs

Associated list of mobs that we need to test this on. Key is the typepath of the mob, value is a list of the planning subtree and the operational datums that are required for it.

Proc Details

gather_testable_mobs

First, look for all mobs that have a planning subtree that requires an element, then add it to the list for stuff to test afterwards. Done like this to not have one mumbo proc that's hard to read.

test_applicable_mobs

Then, test the mobs that we've found

\ No newline at end of file diff --git a/datum/unit_test/explosion_action.html b/datum/unit_test/explosion_action.html new file mode 100644 index 0000000000000..a74f524aa3186 --- /dev/null +++ b/datum/unit_test/explosion_action.html @@ -0,0 +1,7 @@ +/datum/unit_test/explosion_action - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

explosion_action

Tests the EX_ACT macro on several different types of atoms to ensure that it still works as expected.

Vars

alien_brute_lossrolling var for how much brute damage the alien has taken.
alien_burn_lossrolling var for how much burn damage the alien has taken.
alien_ear_damagealiens get a bit of damage done to their ears when exploded, so check that too.

Procs

execute_mob_testsTests the EX_ACT macro on several different types of mobs to ensure that it still works as expected. +Throughout this test, we use the "abstract" type of a /mob/living to ensure that the raw framework will still work and remain hardy against any ex_act() overrides +that may be done on the subtype-to-subtype basis. Any time we use an explicit subtype is to test that framework, so if you update that for some reason, you should also update this test. +Like, if you balance aliens to take more ear damage and this test fails, just update the test to reflect that. That's it.
execute_obj_testsTests the EX_ACT() macro on objs to ensure some level of the underlying framework still functions.
execute_turf_testsTests the EX_ACT() macro on turf subtypes to ensure some level of the underlying framework still functions.
read_alien_damagesProc to lessen the amount of copypasta we do for the alien tests, simply sets the rolling vars we have.
set_up_test_dogSets up a fully armored corgi for testing purposes. Split out into its own proc as to not clutter up the main test.

Var Details

alien_brute_loss

rolling var for how much brute damage the alien has taken.

alien_burn_loss

rolling var for how much burn damage the alien has taken.

alien_ear_damage

aliens get a bit of damage done to their ears when exploded, so check that too.

Proc Details

execute_mob_tests

Tests the EX_ACT macro on several different types of mobs to ensure that it still works as expected. +Throughout this test, we use the "abstract" type of a /mob/living to ensure that the raw framework will still work and remain hardy against any ex_act() overrides +that may be done on the subtype-to-subtype basis. Any time we use an explicit subtype is to test that framework, so if you update that for some reason, you should also update this test. +Like, if you balance aliens to take more ear damage and this test fails, just update the test to reflect that. That's it.

execute_obj_tests

Tests the EX_ACT() macro on objs to ensure some level of the underlying framework still functions.

execute_turf_tests

Tests the EX_ACT() macro on turf subtypes to ensure some level of the underlying framework still functions.

read_alien_damages

Proc to lessen the amount of copypasta we do for the alien tests, simply sets the rolling vars we have.

set_up_test_dog

Sets up a fully armored corgi for testing purposes. Split out into its own proc as to not clutter up the main test.

\ No newline at end of file diff --git a/datum/unit_test/font_awesome_icons.html b/datum/unit_test/font_awesome_icons.html new file mode 100644 index 0000000000000..85a5a9bd42923 --- /dev/null +++ b/datum/unit_test/font_awesome_icons.html @@ -0,0 +1,3 @@ +/datum/unit_test/font_awesome_icons - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

font_awesome_icons

This unit test verifies that all Font Awesome icons are present in code, and that all quirk icons are valid.

Procs

load_parse_verifyLoads the Font Awesome CSS file, parses it into a list of icon names, and compares it to the list of icons in code. +If there are any differences, note them.
parse_fa_css_into_icon_listParses the given Font Awesome CSS file into a list of icon names.
verify_quirk_iconsVerifies that all quirk icons are valid.

Proc Details

load_parse_verify

Loads the Font Awesome CSS file, parses it into a list of icon names, and compares it to the list of icons in code. +If there are any differences, note them.

parse_fa_css_into_icon_list

Parses the given Font Awesome CSS file into a list of icon names.

verify_quirk_icons

Verifies that all quirk icons are valid.

\ No newline at end of file diff --git a/datum/unit_test/frame_stacking.html b/datum/unit_test/frame_stacking.html new file mode 100644 index 0000000000000..b67c5fe25ab58 --- /dev/null +++ b/datum/unit_test/frame_stacking.html @@ -0,0 +1,6 @@ +/datum/unit_test/frame_stacking - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

frame_stacking

Procs

RunSimple unit test to ensure there's no regression in behaviour where machine frames should not be stacked.

Proc Details

Run

Simple unit test to ensure there's no regression in behaviour where machine frames should not be stacked.

+

We attempt to use the RCD to build multiple stacked machine frames on a turf. If we end up with any number that +is not equal to 1, this means we've either built no machine frames (bad) or built more than one (regression).

+

If this is successful, we attempt to spawn in some no-density machines that result in machine frames and we run +the test again on our turf containing our single frame, deconstructing the machines! This should also not spawn +any stacked machine frames.

\ No newline at end of file diff --git a/datum/unit_test/glass_style_icons.html b/datum/unit_test/glass_style_icons.html new file mode 100644 index 0000000000000..1e568e490f6b8 --- /dev/null +++ b/datum/unit_test/glass_style_icons.html @@ -0,0 +1 @@ +/datum/unit_test/glass_style_icons - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

glass_style_icons

Unit tests all glass style datums with icons / icon states that those are valid and not missing.

Vars

generic_drink_locThe generic commonplace DMI for all normal drink sprites
generic_mixed_drink_locThe generic commonplace DMI for all mixed drink sprites

Var Details

generic_drink_loc

The generic commonplace DMI for all normal drink sprites

generic_mixed_drink_loc

The generic commonplace DMI for all mixed drink sprites

\ No newline at end of file diff --git a/datum/unit_test/hydroponics_harvest.html b/datum/unit_test/hydroponics_harvest.html new file mode 100644 index 0000000000000..ccdaf252aa2bb --- /dev/null +++ b/datum/unit_test/hydroponics_harvest.html @@ -0,0 +1,15 @@ +/datum/unit_test/hydroponics_harvest - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

hydroponics_harvest

Procs

RunA test to make sure harvesting plants in hydroponics results in the correct number of plants with the correct chemicals inside of it.

Proc Details

Run

A test to make sure harvesting plants in hydroponics results in the correct number of plants with the correct chemicals inside of it.

+

We plant a seed into a tray and harvest it with a human. +This seed is set to have the maximum potency and yield with no instability to prevent mutations. +Then we check how many products we got from the harvest. For most plants, this should be 10 products, as we have a yield of 10. +Alternatively, if the plant has a trait that halves the products on harvest, it should result in 5 products.

+

After we harvest our seed, we check for the plant's nutriments and vitamins. +Most plants have nutriments, so most plants should result in a number of nutriments. +Some plants have vitamins and some don't, so we then check the number of vitamins. +Additionally, the plant may have traits that double the amount of chemicals it can hold. We check the max volume in that case and adjust accordingly. +Plants may have additional chemicals genes that we don't check. +Plants may have traits that effect the final product's contents that we don't check. +Chemicals may react inside of the plant on harvest, which we don't check.

+

After we check the harvest and the chemicals in the harvest, we go ahead and clean up the harvested products and remove the seed if it has perennial growth.

+

This test checks both /obj/item/food/grown items and /obj/item/grown items since, despite both being used in hydroponics, +they aren't the same type so everything that works with one isn't guaranteed to work with the other.

\ No newline at end of file diff --git a/datum/unit_test/knockoff_component.html b/datum/unit_test/knockoff_component.html new file mode 100644 index 0000000000000..49c193131c937 --- /dev/null +++ b/datum/unit_test/knockoff_component.html @@ -0,0 +1,2 @@ +/datum/unit_test/knockoff_component - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

knockoff_component

Test that the knockoff component will properly cause something +with it applied to be knocked off when it should be.

Procs

set_glasses_wearerHelper to reset the glasses dummy back to its original position, clear knockdown, and return glasses (if gone)

Proc Details

set_glasses_wearer

Helper to reset the glasses dummy back to its original position, clear knockdown, and return glasses (if gone)

\ No newline at end of file diff --git a/datum/unit_test/lungs.html b/datum/unit_test/lungs.html new file mode 100644 index 0000000000000..f81396722e46a --- /dev/null +++ b/datum/unit_test/lungs.html @@ -0,0 +1,6 @@ +/datum/unit_test/lungs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

lungs

Tests the standard, plasmaman, and lavaland lungs organ to ensure breathing and suffocation behave as expected. +Performs a check on each main (can be life-sustaining) gas, and ensures gas alerts are only thrown when expected.

Procs

create_gas_mixSet up a 2500-Litre gas mixture with the given gases and percentages.
create_lavaland_mixSet up an Lavaland gas mix which is "ideal" for Ashwalker life.
create_nitrogen_mixSet up a pure Nitrogen gas mix.
create_plasma_mixSet up an O2/N2 gas mix which is "ideal" for plasmamen.
create_standard_mixSet up an O2/N2 gas mix which is "ideal" for organic life.
lungs_test_alert_maxTests maximum gas alerts by comparing gas pressure.
lungs_test_alert_minTests minimum gas alerts by comparing gas pressure.
lungs_test_check_breathComprehensive unit test for [/obj/item/organ/internal/lungs/proc/check_breath()] +If "expect_failure" is set to TRUE, the test ensures the given Human suffocated. +A "test_name" string is required to contextualize test logs. Describe the gas you're testing.

Proc Details

create_gas_mix

Set up a 2500-Litre gas mixture with the given gases and percentages.

create_lavaland_mix

Set up an Lavaland gas mix which is "ideal" for Ashwalker life.

create_nitrogen_mix

Set up a pure Nitrogen gas mix.

create_plasma_mix

Set up an O2/N2 gas mix which is "ideal" for plasmamen.

create_standard_mix

Set up an O2/N2 gas mix which is "ideal" for organic life.

lungs_test_alert_max

Tests maximum gas alerts by comparing gas pressure.

lungs_test_alert_min

Tests minimum gas alerts by comparing gas pressure.

lungs_test_check_breath

Comprehensive unit test for [/obj/item/organ/internal/lungs/proc/check_breath()] +If "expect_failure" is set to TRUE, the test ensures the given Human suffocated. +A "test_name" string is required to contextualize test logs. Describe the gas you're testing.

\ No newline at end of file diff --git a/datum/unit_test/mafia.html b/datum/unit_test/mafia.html new file mode 100644 index 0000000000000..8b071dc68b062 --- /dev/null +++ b/datum/unit_test/mafia.html @@ -0,0 +1,4 @@ +/datum/unit_test/mafia - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mafia

Checks if a Mafia game with a Modular Computer and a Ghost will run with 'basic_setup', which is the default +way the game is ran, without admin-intervention. +The game should immediately end in a Town Victory due to lack of evils, but we can verify that both the PDA and the ghost +successfully managed to get into the round.

Vars

mafia_game_startedBoolean on whether the Mafia game started or not. Will Fail if it hasn't.

Var Details

mafia_game_started

Boolean on whether the Mafia game started or not. Will Fail if it hasn't.

\ No newline at end of file diff --git a/datum/unit_test/mapload_space_verification.html b/datum/unit_test/mapload_space_verification.html new file mode 100644 index 0000000000000..28cce789bde76 --- /dev/null +++ b/datum/unit_test/mapload_space_verification.html @@ -0,0 +1,4 @@ +/datum/unit_test/mapload_space_verification - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mapload_space_verification

Verifies that there are no space turfs inside a station area, or on any planetary z-level. Sometimes, these are introduced during the load of the map and are not present in the DMM itself. +Let's just make sure that we have a stop-gap measure in place to catch these if they pop up so we don't put it onto production servers should something errant come up.

Procs

validate_planetary_mapVerifies that there are ZERO space turfs on a valid planetary station. We NEVER want space turfs here, so we do not check for /area/space here since something completely undesirable is happening. +There are also a few considerations specific to planetary stations included within, so let's spin it out into a separate proc for clarity.

Proc Details

validate_planetary_map

Verifies that there are ZERO space turfs on a valid planetary station. We NEVER want space turfs here, so we do not check for /area/space here since something completely undesirable is happening. +There are also a few considerations specific to planetary stations included within, so let's spin it out into a separate proc for clarity.

\ No newline at end of file diff --git a/datum/unit_test/mecha_damage.html b/datum/unit_test/mecha_damage.html new file mode 100644 index 0000000000000..5d019029d66ca --- /dev/null +++ b/datum/unit_test/mecha_damage.html @@ -0,0 +1,2 @@ +/datum/unit_test/mecha_damage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mecha_damage

Unit test to ensure that mechs take the correct amount of damage +based on armor, and that their equipment is properly damaged as well.

Procs

check_integritySimple helper to check if the integrity of an atom involved has taken damage, and if they took the amount of damage it should have.

Proc Details

check_integrity

Simple helper to check if the integrity of an atom involved has taken damage, and if they took the amount of damage it should have.

\ No newline at end of file diff --git a/datum/unit_test/mind_swap_spell.html b/datum/unit_test/mind_swap_spell.html new file mode 100644 index 0000000000000..a38c29af4f3c3 --- /dev/null +++ b/datum/unit_test/mind_swap_spell.html @@ -0,0 +1,4 @@ +/datum/unit_test/mind_swap_spell - /tg/ Station 13
/tg/ Station 13 - Modules - Types

mind_swap_spell

Validates that the mind swap spell +properly transfers minds between a caster and a target.

+

Also checks that the mindswap spell itself was transferred over +to the new body on cast.

\ No newline at end of file diff --git a/datum/unit_test/missing_icons.html b/datum/unit_test/missing_icons.html new file mode 100644 index 0000000000000..455a77144facd --- /dev/null +++ b/datum/unit_test/missing_icons.html @@ -0,0 +1,5 @@ +/datum/unit_test/missing_icons - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

missing_icons

Makes sure objects actually have icons that exist!

Vars

additional_icon_locationadditional_icon_location is for downstream modularity support. +Make sure this location is also present in tools/deploy.sh +If you need additional paths ontop of this second one, you can add another generate_possible_icon_states_list("your/folder/path/") below the if(additional_icon_location) block in Run(), and make sure to add that path to tools/deploy.sh as well.

Var Details

additional_icon_location

additional_icon_location is for downstream modularity support. +Make sure this location is also present in tools/deploy.sh +If you need additional paths ontop of this second one, you can add another generate_possible_icon_states_list("your/folder/path/") below the if(additional_icon_location) block in Run(), and make sure to add that path to tools/deploy.sh as well.

\ No newline at end of file diff --git a/datum/unit_test/mob_damage.html b/datum/unit_test/mob_damage.html new file mode 100644 index 0000000000000..24eafd4c3a0f3 --- /dev/null +++ b/datum/unit_test/mob_damage.html @@ -0,0 +1,56 @@ +/datum/unit_test/mob_damage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mob_damage

Tests to make sure mob damage procs are working correctly

Procs

apply_damageApply a specific amount of damage to the mob using adjustBruteLoss(), adjustToxLoss(), etc.
set_damageSet a specific amount of damage for the mob using setBruteLoss(), setToxLoss(), etc.
test_apply_damageTest whether the adjust damage procs return the correct values and that the mob's health is the expected value afterwards.
test_biotypesTesting biotypes
test_godmodeTests damage procs with godmode on
test_nobreathTesting oxyloss with the TRAIT_NOBREATH
test_ordered_healingTesting heal_ordered_damage()
test_sanity_complexSanity tests damage and healing using the more complex procs like take_overall_damage(), heal_overall_damage(), etc
test_sanity_simpleSanity tests damage and healing using adjustToxLoss, adjustBruteLoss, etc
test_set_damageTest whether the set damage procs return the correct values and that the mob's health is the expected value afterwards.
test_toxintraitsTesting toxloss with TRAIT_TOXINLOVER and TRAIT_TOXIMMUNE
verify_damageCheck that the mob has a specific amount of damage

Proc Details

apply_damage

Apply a specific amount of damage to the mob using adjustBruteLoss(), adjustToxLoss(), etc.

+

By default this applies damage of every type to the mob, and checks that the damage procs return the value +Arguments:

+

set_damage

Set a specific amount of damage for the mob using setBruteLoss(), setToxLoss(), etc.

+

By default this sets every type of damage to for the mob, and checks that the damage procs return the value +Arguments:

+

test_apply_damage

Test whether the adjust damage procs return the correct values and that the mob's health is the expected value afterwards.

+

By default this calls apply_damage(amount) followed by verify_damage(amount_after) and returns TRUE if both succeeded. +amount_after defaults to the mob's current stamina loss but can be overridden as needed.

+

Arguments:

+

test_biotypes

Testing biotypes

test_godmode

Tests damage procs with godmode on

test_nobreath

Testing oxyloss with the TRAIT_NOBREATH

test_ordered_healing

Testing heal_ordered_damage()

test_sanity_complex

Sanity tests damage and healing using the more complex procs like take_overall_damage(), heal_overall_damage(), etc

test_sanity_simple

Sanity tests damage and healing using adjustToxLoss, adjustBruteLoss, etc

test_set_damage

Test whether the set damage procs return the correct values and that the mob's health is the expected value afterwards.

+

By default this calls set_damage(amount) followed by verify_damage(amount_after) and returns TRUE if both succeeded. +amount_after defaults to the mob's current stamina loss but can be overridden as needed.

+

Arguments:

+

test_toxintraits

Testing toxloss with TRAIT_TOXINLOVER and TRAIT_TOXIMMUNE

verify_damage

Check that the mob has a specific amount of damage

+

By default this checks that the mob has of every type of damage. +Arguments:

+
\ No newline at end of file diff --git a/datum/unit_test/mob_damage/basic.html b/datum/unit_test/mob_damage/basic.html new file mode 100644 index 0000000000000..52ce55f928d29 --- /dev/null +++ b/datum/unit_test/mob_damage/basic.html @@ -0,0 +1,9 @@ +/datum/unit_test/mob_damage/basic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

basic

Tests that mob damage procs are working as intended for basic mobs

Procs

verify_damageCheck that the mob has a specific amount of damage. Note: basic mobs have all incoming damage types besides stam converted into brute damage.

Proc Details

verify_damage

Check that the mob has a specific amount of damage. Note: basic mobs have all incoming damage types besides stam converted into brute damage.

+

By default this checks that the mob has of every type of damage. +Arguments:

+
\ No newline at end of file diff --git a/datum/unit_test/modify_fantasy_variable.html b/datum/unit_test/modify_fantasy_variable.html new file mode 100644 index 0000000000000..657a21604e9ec --- /dev/null +++ b/datum/unit_test/modify_fantasy_variable.html @@ -0,0 +1 @@ +/datum/unit_test/modify_fantasy_variable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

modify_fantasy_variable

Procs

generate_failure_messageReturns a string that we use to describe the failure of the test.

Proc Details

generate_failure_message

Returns a string that we use to describe the failure of the test.

\ No newline at end of file diff --git a/datum/unit_test/monkey_business.html b/datum/unit_test/monkey_business.html new file mode 100644 index 0000000000000..158b6a2480c55 --- /dev/null +++ b/datum/unit_test/monkey_business.html @@ -0,0 +1,5 @@ +/datum/unit_test/monkey_business - /tg/ Station 13
/tg/ Station 13 - Modules - Types

monkey_business

Monkey Business

+

This unit test spawns a predefined number of monkies, each of which +are set to have a 100% chance of attempting to use something next to them each Life

+

This test basically just checks to see if attack procs are working correctly, +but its also hilarious and fun to watch locally.

\ No newline at end of file diff --git a/datum/unit_test/mutant_hands.html b/datum/unit_test/mutant_hands.html new file mode 100644 index 0000000000000..91fdc6bc2c5ca --- /dev/null +++ b/datum/unit_test/mutant_hands.html @@ -0,0 +1,3 @@ +/datum/unit_test/mutant_hands - /tg/ Station 13
/tg/ Station 13 - Modules - Types

mutant_hands

Test: Mutant hands component

+

Adding mutant hand component gives two mutant hands in each hand slot +Losing a limb removes the associated hand, and re-gaining the limb re-gives the associated hand

\ No newline at end of file diff --git a/datum/unit_test/mutant_hands_carry.html b/datum/unit_test/mutant_hands_carry.html new file mode 100644 index 0000000000000..2183f6a5b3fb5 --- /dev/null +++ b/datum/unit_test/mutant_hands_carry.html @@ -0,0 +1,3 @@ +/datum/unit_test/mutant_hands_carry - /tg/ Station 13
/tg/ Station 13 - Modules - Types

mutant_hands_carry

Test: Mutant hands fireman carrying

+

Mutant hands currently do not support fireman carrying despite being theoretically allowed, +tests that this continues to be the case. Can be updated if this assertion is changed.

\ No newline at end of file diff --git a/datum/unit_test/mutant_hands_with_nodrop.html b/datum/unit_test/mutant_hands_with_nodrop.html new file mode 100644 index 0000000000000..d64c891d2ea2b --- /dev/null +++ b/datum/unit_test/mutant_hands_with_nodrop.html @@ -0,0 +1,3 @@ +/datum/unit_test/mutant_hands_with_nodrop - /tg/ Station 13
/tg/ Station 13 - Modules - Types

mutant_hands_with_nodrop

Test: Mutant hands component with a nodrop item in place

+

Adding mutant hand component does not force no-drop items out of hands +If the no-drop item disappears / is deleted, a new hand should re-appear immediately

\ No newline at end of file diff --git a/datum/unit_test/nuke_cinematic.html b/datum/unit_test/nuke_cinematic.html new file mode 100644 index 0000000000000..2e276e0486d21 --- /dev/null +++ b/datum/unit_test/nuke_cinematic.html @@ -0,0 +1,2 @@ +/datum/unit_test/nuke_cinematic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

nuke_cinematic

Unit tests that a nuke going off plays a cinematic, +and that it actually kills people.

Vars

cinematic_playingUsed to track via signal if the correct cinematic / animation is playing.
cinematic_playing_typeTracks what typepath of cinematic is being played.

Procs

check_cinematicUsed to track whenever a cinematic starts playing, so we can check if it's the right one.

Var Details

cinematic_playing

Used to track via signal if the correct cinematic / animation is playing.

cinematic_playing_type

Tracks what typepath of cinematic is being played.

Proc Details

check_cinematic

Used to track whenever a cinematic starts playing, so we can check if it's the right one.

\ No newline at end of file diff --git a/datum/unit_test/objectives_category.html b/datum/unit_test/objectives_category.html new file mode 100644 index 0000000000000..8d9068f73dc57 --- /dev/null +++ b/datum/unit_test/objectives_category.html @@ -0,0 +1 @@ +/datum/unit_test/objectives_category - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

objectives_category

Procs

reward_is_zeroReturns whether the reward specified (in format (min, max)) is zero or not.

Proc Details

reward_is_zero

Returns whether the reward specified (in format (min, max)) is zero or not.

\ No newline at end of file diff --git a/datum/unit_test/required_map_items.html b/datum/unit_test/required_map_items.html new file mode 100644 index 0000000000000..7b98fbd03ba26 --- /dev/null +++ b/datum/unit_test/required_map_items.html @@ -0,0 +1,10 @@ +/datum/unit_test/required_map_items - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

required_map_items

Tests that all expected items are mapped in roundstart.

+

How to add an item to this test:

+

Vars

expected_typesA list of all typepaths that we expect to be in the required items list

Procs

setup_expected_typesUsed to fill the expected types list with all the types we look for on the map. +This list will just be full of typepaths that we expect. +More detailed information about each item (mainly, how much of each should exist) is set on a per item basis

Var Details

expected_types

A list of all typepaths that we expect to be in the required items list

Proc Details

setup_expected_types

Used to fill the expected types list with all the types we look for on the map. +This list will just be full of typepaths that we expect. +More detailed information about each item (mainly, how much of each should exist) is set on a per item basis

\ No newline at end of file diff --git a/datum/unit_test/screenshot_high_luminosity_eyes.html b/datum/unit_test/screenshot_high_luminosity_eyes.html new file mode 100644 index 0000000000000..d7393439d9b4a --- /dev/null +++ b/datum/unit_test/screenshot_high_luminosity_eyes.html @@ -0,0 +1 @@ +/datum/unit_test/screenshot_high_luminosity_eyes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

screenshot_high_luminosity_eyes

Tests to make sure no punks have broken high luminosity eyes

Procs

create_iconCreate the mob icon with light cone underlay

Proc Details

create_icon

Create the mob icon with light cone underlay

\ No newline at end of file diff --git a/datum/unit_test/security_levels.html b/datum/unit_test/security_levels.html new file mode 100644 index 0000000000000..5b9a69c140002 --- /dev/null +++ b/datum/unit_test/security_levels.html @@ -0,0 +1,2 @@ +/datum/unit_test/security_levels - /tg/ Station 13
/tg/ Station 13 - Modules - Types

security_levels

Security Level Unit Test

+

This test is here to ensure there are no security levels with the same name or number level. Having the same name or number level will cause problems.

\ No newline at end of file diff --git a/datum/unit_test/servingtray.html b/datum/unit_test/servingtray.html new file mode 100644 index 0000000000000..873b670136ace --- /dev/null +++ b/datum/unit_test/servingtray.html @@ -0,0 +1 @@ +/datum/unit_test/servingtray - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

servingtray

Procs

RunCheck that standard food items fit on the serving tray

Proc Details

Run

Check that standard food items fit on the serving tray

\ No newline at end of file diff --git a/datum/unit_test/species_config_sanity.html b/datum/unit_test/species_config_sanity.html new file mode 100644 index 0000000000000..6cebcc8ee3542 --- /dev/null +++ b/datum/unit_test/species_config_sanity.html @@ -0,0 +1,5 @@ +/datum/unit_test/species_config_sanity - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

species_config_sanity

Procs

RunSpecies IDs are used in keyed_list config entries and their config values can either be set implicitly or explicitly.

Proc Details

Run

Species IDs are used in keyed_list config entries and their config values can either be set implicitly or explicitly.

+

In order to accomplish this, the keyed_list looks for a specific splitter that is meant to separate the key from the value.

+

While it supports multiple instances of the splitter (for example, space) being present, the intent is ambiguous.

+

To combat that, this unit test runs through every species ID and make sure it doesn't contain the splitter character, so +valid config entries are never ambiguous.

\ No newline at end of file diff --git a/datum/unit_test/spell_names.html b/datum/unit_test/spell_names.html new file mode 100644 index 0000000000000..6c1d96173fb37 --- /dev/null +++ b/datum/unit_test/spell_names.html @@ -0,0 +1,8 @@ +/datum/unit_test/spell_names - /tg/ Station 13
/tg/ Station 13 - Modules - Types

spell_names

Validates that all spells have a different name.

+

Spell names are used for debugging in some places +as well as an option for admins giving out spells, +so every spell should have a distinct name.

+

If you're making a subtype with only one or two big changes, +consider adding an adjective to the name.

+

"Lesser Fireball" for a subtype of Fireball with a shorter cooldown. +"Deadly Magic Missile" for a subtype of Magic Missile that does damage, etc.

\ No newline at end of file diff --git a/datum/unit_test/stop_drop_and_roll.html b/datum/unit_test/stop_drop_and_roll.html new file mode 100644 index 0000000000000..e2c9fb8383ddf --- /dev/null +++ b/datum/unit_test/stop_drop_and_roll.html @@ -0,0 +1 @@ +/datum/unit_test/stop_drop_and_roll - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

stop_drop_and_roll

Procs

RunTest that stop, drop, and roll lowers fire stacks

Proc Details

Run

Test that stop, drop, and roll lowers fire stacks

\ No newline at end of file diff --git a/datum/unit_test/test_human_base.html b/datum/unit_test/test_human_base.html new file mode 100644 index 0000000000000..ba6d88aba7106 --- /dev/null +++ b/datum/unit_test/test_human_base.html @@ -0,0 +1 @@ +/datum/unit_test/test_human_base - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

test_human_base

Procs

RunThis test is used to make sure a flesh-and-bone base human can suffer all the types of wounds, and that suffering more severe wounds removes and replaces the lesser wound. Also tests that /mob/living/carbon/proc/fully_heal removes all wounds

Proc Details

Run

This test is used to make sure a flesh-and-bone base human can suffer all the types of wounds, and that suffering more severe wounds removes and replaces the lesser wound. Also tests that /mob/living/carbon/proc/fully_heal removes all wounds

\ No newline at end of file diff --git a/datum/unit_test/test_human_bone.html b/datum/unit_test/test_human_bone.html new file mode 100644 index 0000000000000..19164d41397d8 --- /dev/null +++ b/datum/unit_test/test_human_bone.html @@ -0,0 +1 @@ +/datum/unit_test/test_human_bone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

test_human_bone

Procs

RunThis test is used for making sure species with bones but no flesh (skeletons, plasmamen) can only suffer BONE_WOUNDS, and nothing tagged with FLESH_WOUND (it's possible to require both)

Proc Details

Run

This test is used for making sure species with bones but no flesh (skeletons, plasmamen) can only suffer BONE_WOUNDS, and nothing tagged with FLESH_WOUND (it's possible to require both)

\ No newline at end of file diff --git a/datum/unit_test/transformation_sting.html b/datum/unit_test/transformation_sting.html new file mode 100644 index 0000000000000..d44a4fd9366dc --- /dev/null +++ b/datum/unit_test/transformation_sting.html @@ -0,0 +1 @@ +/datum/unit_test/transformation_sting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

transformation_sting

Tests transformation sting goes back and forth correctly

Procs

add_to_screenshotAdds both mobs to the screenshot test, if both_species is TRUE, it also adds the victim in lizard form

Proc Details

add_to_screenshot

Adds both mobs to the screenshot test, if both_species is TRUE, it also adds the victim in lizard form

\ No newline at end of file diff --git a/datum/unit_test/worn_icons.html b/datum/unit_test/worn_icons.html new file mode 100644 index 0000000000000..fd831f27c9b4b --- /dev/null +++ b/datum/unit_test/worn_icons.html @@ -0,0 +1,5 @@ +/datum/unit_test/worn_icons - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

worn_icons

Makes sure suit slot items aren't using CS:S fallbacks.

Vars

additional_icon_locationadditional_icon_location is for downstream modularity support for finding missing sprites in additonal DMI file locations. +Make sure this location is also present in tools/deploy.sh +If you need additional paths ontop of this second one, you can add another generate_possible_icon_states_list("your/folder/path/") below the if(additional_icon_location) block in Run(), and make sure to add that path to tools/deploy.sh as well.

Var Details

additional_icon_location

additional_icon_location is for downstream modularity support for finding missing sprites in additonal DMI file locations. +Make sure this location is also present in tools/deploy.sh +If you need additional paths ontop of this second one, you can add another generate_possible_icon_states_list("your/folder/path/") below the if(additional_icon_location) block in Run(), and make sure to add that path to tools/deploy.sh as well.

\ No newline at end of file diff --git a/datum/uplink_category.html b/datum/uplink_category.html new file mode 100644 index 0000000000000..97843e322258f --- /dev/null +++ b/datum/uplink_category.html @@ -0,0 +1 @@ +/datum/uplink_category - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

uplink_category

Vars

nameName of the category
weightWeight of the category. Used to determine the positioning in the uplink. High weight = appears first

Var Details

name

Name of the category

weight

Weight of the category. Used to determine the positioning in the uplink. High weight = appears first

\ No newline at end of file diff --git a/datum/uplink_handler.html b/datum/uplink_handler.html new file mode 100644 index 0000000000000..035e1738a4b6f --- /dev/null +++ b/datum/uplink_handler.html @@ -0,0 +1,2 @@ +/datum/uplink_handler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

uplink_handler

Uplink Handler

+

The uplink handler, used to handle a traitor's TC and experience points and the uplink UI.

Vars

active_objectivesCurrent objectives taken
assigned_roleThe role that this uplink handler is associated to.
assigned_speciesThe species this uplink handler is associated to.
can_replace_objectivesCallback which returns true if you can choose to replace your objectives with different ones
can_take_objectivesWhether this uplink handler can TAKE objectives.
completed_objectivesObjectives that have been completed.
contractor_hubReference to a contractor hub that the infiltrator can run, if they purchase it.
debug_modeWhether this is in debug mode or not. If in debug mode, allows all purchases. Bypasses the shop lock.
extra_purchasableExtra stuff that can be purchased by an uplink, regardless of flag.
final_objectiveText of the final objective, once assigned. Used for uplink data and traitor greentext. Empty string means not yet reached.
has_objectivesWhether this uplink handler has objectives.
has_progressionThis uplink has progression
item_stockAssociative array of stock keys = stock left. For items that don't share stock, the key is their typepath
maximum_active_objectivesThe maximum number of objectives that can be taken
maximum_potential_objectivesThe maximum number of potential objectives that can exist.
ownerThe owner of this uplink handler.
potential_duplicate_objectivesAll objectives assigned by type to handle any duplicates
potential_objectivesPotential objectives that can be taken
primary_objectivesObjectives that must be completed for traitor greentext. Set by the traitor datum.
progression_pointsThe amount of experience points this traitor has
purchase_logThe purchase log of this uplink handler
replace_objectivesCallback which performs that operation
shop_lockedWhether the shop is locked or not. If set to true, nothing can be purchased.
telecrystalsThe amount of telecrystals contained in this traitor has
uplink_flagThe current uplink flag of this uplink

Procs

add_telecrystalsHelper to add telecrystals to the uplink handler, calling set_telecrystals.
check_if_restrictedChecks for uplink flags as well as items restricted to roles and species
complete_objectiveUsed to complete objectives, failed or successful.
not_enough_reputationChecks if traitor has enough reputation to purchase an item
on_updateCalled whenever an update occurs on this uplink handler. Used for UIs
set_telecrystalsSets how many telecrystals the uplink handler has, then updates the UI for any players watching.
update_objectivesUpdates the objectives on the uplink and deletes

Var Details

active_objectives

Current objectives taken

assigned_role

The role that this uplink handler is associated to.

assigned_species

The species this uplink handler is associated to.

can_replace_objectives

Callback which returns true if you can choose to replace your objectives with different ones

can_take_objectives

Whether this uplink handler can TAKE objectives.

completed_objectives

Objectives that have been completed.

contractor_hub

Reference to a contractor hub that the infiltrator can run, if they purchase it.

debug_mode

Whether this is in debug mode or not. If in debug mode, allows all purchases. Bypasses the shop lock.

extra_purchasable

Extra stuff that can be purchased by an uplink, regardless of flag.

final_objective

Text of the final objective, once assigned. Used for uplink data and traitor greentext. Empty string means not yet reached.

has_objectives

Whether this uplink handler has objectives.

has_progression

This uplink has progression

item_stock

Associative array of stock keys = stock left. For items that don't share stock, the key is their typepath

maximum_active_objectives

The maximum number of objectives that can be taken

maximum_potential_objectives

The maximum number of potential objectives that can exist.

owner

The owner of this uplink handler.

potential_duplicate_objectives

All objectives assigned by type to handle any duplicates

potential_objectives

Potential objectives that can be taken

primary_objectives

Objectives that must be completed for traitor greentext. Set by the traitor datum.

progression_points

The amount of experience points this traitor has

purchase_log

The purchase log of this uplink handler

replace_objectives

Callback which performs that operation

shop_locked

Whether the shop is locked or not. If set to true, nothing can be purchased.

telecrystals

The amount of telecrystals contained in this traitor has

The current uplink flag of this uplink

Proc Details

add_telecrystals

Helper to add telecrystals to the uplink handler, calling set_telecrystals.

check_if_restricted

Checks for uplink flags as well as items restricted to roles and species

complete_objective

Used to complete objectives, failed or successful.

not_enough_reputation

Checks if traitor has enough reputation to purchase an item

on_update

Called whenever an update occurs on this uplink handler. Used for UIs

set_telecrystals

Sets how many telecrystals the uplink handler has, then updates the UI for any players watching.

update_objectives

Updates the objectives on the uplink and deletes

\ No newline at end of file diff --git a/datum/uplink_item.html b/datum/uplink_item.html new file mode 100644 index 0000000000000..2110b8524aca8 --- /dev/null +++ b/datum/uplink_item.html @@ -0,0 +1,12 @@ +/datum/uplink_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

uplink_item

Uplink Items

+

Items that can be spawned from an uplink. Can be limited by gamemode.

Vars

cant_discountWhether this can be discounted or not
categoryCategory of the uplink
costCost of the item.
cost_override_stringString to be shown instead of the price, e.g for the Random item.
descDescription of the uplink
discountedIf discounted, is true. Used to send a signal to update reimbursement.
itemPath to the item to spawn.
limited_stockHow many items of this stock can be purchased.
lock_other_purchasesWhether this item locks all other items from being purchased. Used by syndicate balloon and a few other purchases. +Can't be purchased if you've already bought other things +Uses the purchase log, so items purchased that are not visible in the purchase log will not count towards this. +However, they won't be purchasable afterwards.
nameName of the uplink item
progression_minimumThe minimum amount of progression needed for this item to be added to uplinks.
purchasable_fromA bitfield to represent what uplinks can purchase this item. +See [code/__DEFINES/uplink.dm].
purchase_log_visWhether this purchase is visible in the purchase log.
refund_amountAmount of TC to refund, in case there's a TC penalty for refunds.
refundableWhether this item is refundable or not.
restrictedWhether this purchase is restricted or not (VR/Events related)
restricted_rolesIf this uplink item is only available to certain roles. Roles are dependent on the frequency chip or stored ID.
restricted_speciesThe species able to purchase this uplink item.
stock_keyIf this value is changed on two items they will share stock, defaults to not sharing stock with any other item
uplink_item_flagsFlags related to if an item will provide illegal tech, or trips contraband detectors once spawned in as an item.

Procs

can_be_boughtFor special overrides if an item can be bought or not.
get_discountReturns by how much percentage do we reduce the price of the selected item
get_discount_valueReceives a traitor discount type value, returns the amount by which we will reduce the price
purchaseSpawns an item and logs its purchase
replace_pinUsed by spawn_item_for_generic_use to replace the pin of a gun with a normal one
spawn_itemSpawns an item in the world
spawn_item_for_generic_useUsed to create the uplink's item for generic use, rather than use by a Syndie specifically +Can be used to "de-restrict" some items, such as Nukie guns spawning with Syndicate pins

Var Details

cant_discount

Whether this can be discounted or not

category

Category of the uplink

cost

Cost of the item.

cost_override_string

String to be shown instead of the price, e.g for the Random item.

desc

Description of the uplink

discounted

If discounted, is true. Used to send a signal to update reimbursement.

item

Path to the item to spawn.

limited_stock

How many items of this stock can be purchased.

lock_other_purchases

Whether this item locks all other items from being purchased. Used by syndicate balloon and a few other purchases. +Can't be purchased if you've already bought other things +Uses the purchase log, so items purchased that are not visible in the purchase log will not count towards this. +However, they won't be purchasable afterwards.

name

Name of the uplink item

progression_minimum

The minimum amount of progression needed for this item to be added to uplinks.

purchasable_from

A bitfield to represent what uplinks can purchase this item. +See [code/__DEFINES/uplink.dm].

purchase_log_vis

Whether this purchase is visible in the purchase log.

refund_amount

Amount of TC to refund, in case there's a TC penalty for refunds.

refundable

Whether this item is refundable or not.

restricted

Whether this purchase is restricted or not (VR/Events related)

restricted_roles

If this uplink item is only available to certain roles. Roles are dependent on the frequency chip or stored ID.

restricted_species

The species able to purchase this uplink item.

stock_key

If this value is changed on two items they will share stock, defaults to not sharing stock with any other item

Flags related to if an item will provide illegal tech, or trips contraband detectors once spawned in as an item.

Proc Details

can_be_bought

For special overrides if an item can be bought or not.

get_discount

Returns by how much percentage do we reduce the price of the selected item

get_discount_value

Receives a traitor discount type value, returns the amount by which we will reduce the price

purchase

Spawns an item and logs its purchase

replace_pin

Used by spawn_item_for_generic_use to replace the pin of a gun with a normal one

spawn_item

Spawns an item in the world

spawn_item_for_generic_use

Used to create the uplink's item for generic use, rather than use by a Syndie specifically +Can be used to "de-restrict" some items, such as Nukie guns spawning with Syndicate pins

\ No newline at end of file diff --git a/datum/uplink_item/bundles_tc/surplus.html b/datum/uplink_item/bundles_tc/surplus.html new file mode 100644 index 0000000000000..1b977ec9d9718 --- /dev/null +++ b/datum/uplink_item/bundles_tc/surplus.html @@ -0,0 +1 @@ +/datum/uplink_item/bundles_tc/surplus - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

surplus

Vars

crate_typecrate that will be used for the surplus crate

Procs

fill_cratefills the crate that will be given to the traitor, edit this to change the crate and how the item is filled
generate_possible_itemsgenerates items that can go inside crates, edit this proc to change what items could go inside your specialized crate
pick_possible_itempicks items from the list given to proc and generates a valid uplink item that is less or equal to the amount of TC it can spend
spawn_itemoverwrites item spawning proc for surplus items to spawn an appropriate crate via a podspawn

Var Details

crate_type

crate that will be used for the surplus crate

Proc Details

fill_crate

fills the crate that will be given to the traitor, edit this to change the crate and how the item is filled

generate_possible_items

generates items that can go inside crates, edit this proc to change what items could go inside your specialized crate

pick_possible_item

picks items from the list given to proc and generates a valid uplink item that is less or equal to the amount of TC it can spend

spawn_item

overwrites item spawning proc for surplus items to spawn an appropriate crate via a podspawn

\ No newline at end of file diff --git a/datum/uplink_item/bundles_tc/surplus/united.html b/datum/uplink_item/bundles_tc/surplus/united.html new file mode 100644 index 0000000000000..63b68f6663c6e --- /dev/null +++ b/datum/uplink_item/bundles_tc/surplus/united.html @@ -0,0 +1 @@ +/datum/uplink_item/bundles_tc/surplus/united - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

united

Procs

fill_crateedited version of fill crate for super surplus to ensure it can only be unlocked with the syndicrate key

Proc Details

fill_crate

edited version of fill crate for super surplus to ensure it can only be unlocked with the syndicrate key

\ No newline at end of file diff --git a/datum/venue.html b/datum/venue.html new file mode 100644 index 0000000000000..122c0f47fc1de --- /dev/null +++ b/datum/venue.html @@ -0,0 +1 @@ +/datum/venue - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

venue

Represents the abstract concept of a food venue in the code.

Vars

current_visitorsLists the current visitors of a venue
customer_typesWeighted list of customer types
customers_servedhow many robots got their wanted thing
linked_seatsSeats linked to this venue, assoc list of key holosign of seat position, and value of robot assigned to it, if any.
max_guestsMax amount of guests at any time
max_time_between_visitorMax time between new visits
min_time_between_visitorMin time between new visits
mob_blacklistBlacklist for idiots that attack bots. Key is the mob that did it, and the value is the amount of warnings they've received.
nameName of the venue, also used for the icon state of any radials it can be selected in
openIs the venue open at the moment?
req_accessRequired access to mess with the venue
restaurant_portalPortal linked to this venue at the moment
total_incomeTotal income of those venue
venue_typeWhat kind of Venue are we
visit_cooldownCooldown for next guest to arrive

Procs

create_new_customerSpawns a new customer at the portal
get_food_appearancegets the appearance of the ordered object that shows up when hovering your cursor over the customer mob.
is_correct_orderChecks if the object used is correct for the venue
on_get_orderEffects for when a customer receives their order at this venue
order_food_lineThe line the robot says when ordering
toggle_openToggles whether the venue is open or not

Var Details

current_visitors

Lists the current visitors of a venue

customer_types

Weighted list of customer types

customers_served

how many robots got their wanted thing

linked_seats

Seats linked to this venue, assoc list of key holosign of seat position, and value of robot assigned to it, if any.

max_guests

Max amount of guests at any time

max_time_between_visitor

Max time between new visits

min_time_between_visitor

Min time between new visits

mob_blacklist

Blacklist for idiots that attack bots. Key is the mob that did it, and the value is the amount of warnings they've received.

name

Name of the venue, also used for the icon state of any radials it can be selected in

open

Is the venue open at the moment?

req_access

Required access to mess with the venue

restaurant_portal

Portal linked to this venue at the moment

total_income

Total income of those venue

venue_type

What kind of Venue are we

visit_cooldown

Cooldown for next guest to arrive

Proc Details

create_new_customer

Spawns a new customer at the portal

get_food_appearance

gets the appearance of the ordered object that shows up when hovering your cursor over the customer mob.

is_correct_order

Checks if the object used is correct for the venue

on_get_order

Effects for when a customer receives their order at this venue

order_food_line

The line the robot says when ordering

toggle_open

Toggles whether the venue is open or not

\ No newline at end of file diff --git a/datum/view_data.html b/datum/view_data.html new file mode 100644 index 0000000000000..5bf6a246c99b3 --- /dev/null +++ b/datum/view_data.html @@ -0,0 +1,13 @@ +/datum/view_data - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

view_data

Container for client viewsize

Vars

chiefThe client that owns this view packet
defaultThis client's current "default" view, in the format "WidthxHeight" +We add/remove from this when we want to change their window size
heightHeight offset to apply to the default view string, see above
is_suppressedIf the view is currently being suppressed by some other "monitor" +For when you want to own the client's eye without fucking with their viewport +Doesn't make sense for a binocoler to effect your view in a camera console
widthWidth offset to apply to the default view string if we're not suppressed for some reason
zoomThis client's current zoom level, if it's not being suppressed +If it's 0, we autoscale to the size of the window. Otherwise it's treated as the ratio between +the pixels on the map and output pixels. Only looks proper nice in increments of whole numbers (iirc) +Stored here so other parts of the code have a non blocking way of getting a user's functional zoom

Var Details

chief

The client that owns this view packet

default

This client's current "default" view, in the format "WidthxHeight" +We add/remove from this when we want to change their window size

height

Height offset to apply to the default view string, see above

is_suppressed

If the view is currently being suppressed by some other "monitor" +For when you want to own the client's eye without fucking with their viewport +Doesn't make sense for a binocoler to effect your view in a camera console

width

Width offset to apply to the default view string if we're not suppressed for some reason

zoom

This client's current zoom level, if it's not being suppressed +If it's 0, we autoscale to the size of the window. Otherwise it's treated as the ratio between +the pixels on the map and output pixels. Only looks proper nice in increments of whole numbers (iirc) +Stored here so other parts of the code have a non blocking way of getting a user's functional zoom

\ No newline at end of file diff --git a/datum/visual_data.html b/datum/visual_data.html new file mode 100644 index 0000000000000..7c62f071e6c04 --- /dev/null +++ b/datum/visual_data.html @@ -0,0 +1 @@ +/datum/visual_data - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

visual_data

Vars

client_eyeWhat the client is seeing "out of", client.eye
mirroring_off_refWeakref to the mob we're mirroring off
see_darksee_in_dark values
see_invissee_invisible values
sightSight flags

Var Details

client_eye

What the client is seeing "out of", client.eye

mirroring_off_ref

Weakref to the mob we're mirroring off

see_dark

see_in_dark values

see_invis

see_invisible values

sight

Sight flags

\ No newline at end of file diff --git a/datum/visual_data/mirroring.html b/datum/visual_data/mirroring.html new file mode 100644 index 0000000000000..daeb7ac8ce703 --- /dev/null +++ b/datum/visual_data/mirroring.html @@ -0,0 +1 @@ +/datum/visual_data/mirroring - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mirroring

Tracks and updates another mob with our mob's visual data

Vars

mirror_onto_refWeakref to what mob, if any, we should mirror our changes onto

Var Details

mirror_onto_ref

Weakref to what mob, if any, we should mirror our changes onto

\ No newline at end of file diff --git a/datum/visual_data/tracking.html b/datum/visual_data/tracking.html new file mode 100644 index 0000000000000..4460cf9a972a8 --- /dev/null +++ b/datum/visual_data/tracking.html @@ -0,0 +1,2 @@ +/datum/visual_data/tracking - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tracking

Tracks but does not relay updates to someone's visual data +Accepts a second visual data datum to use as a source of truth for the mob's values

Vars

default_to_refWeakref to the visual data datum to reset our mob to

Var Details

default_to_ref

Weakref to the visual data datum to reset our mob to

\ No newline at end of file diff --git a/datum/voice_of_god_command.html b/datum/voice_of_god_command.html new file mode 100644 index 0000000000000..f7a37e240f3fc --- /dev/null +++ b/datum/voice_of_god_command.html @@ -0,0 +1 @@ +/datum/voice_of_god_command - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

voice_of_god_command

Voice of god command datums that are used in [/proc/voice_of_god()]

Vars

cooldowncooldown variable which is normally returned to [proc/voice_of_god] and used as its return value.
is_regexIs the trigger supposed to be a regex? If so, convert it to such on New()
triggera text string or regex that triggers the command.

Var Details

cooldown

cooldown variable which is normally returned to [proc/voice_of_god] and used as its return value.

is_regex

Is the trigger supposed to be a regex? If so, convert it to such on New()

trigger

a text string or regex that triggers the command.

\ No newline at end of file diff --git a/datum/voice_of_god_command/emote.html b/datum/voice_of_god_command/emote.html new file mode 100644 index 0000000000000..17fe0b75aa7df --- /dev/null +++ b/datum/voice_of_god_command/emote.html @@ -0,0 +1 @@ +/datum/voice_of_god_command/emote - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

emote

Supertype of all those commands that make people emote and nothing else. Fuck copypasta.

Vars

emote_nameThe emote to run.

Var Details

emote_name

The emote to run.

\ No newline at end of file diff --git a/datum/voice_of_god_command/who_are_you.html b/datum/voice_of_god_command/who_are_you.html new file mode 100644 index 0000000000000..06304575aecae --- /dev/null +++ b/datum/voice_of_god_command/who_are_you.html @@ -0,0 +1,2 @@ +/datum/voice_of_god_command/who_are_you - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

who_are_you

This command forces the listeners to say their true name (so masks and hoods won't help). +Basic and simple mobs who are forced to state their name and don't have one already will... reveal their actual one!

Procs

state_namejust states the target's name, but also includes the renaming funny.

Proc Details

state_name

just states the target's name, but also includes the renaming funny.

\ No newline at end of file diff --git a/datum/vore_pref.html b/datum/vore_pref.html new file mode 100644 index 0000000000000..0de5547fa34d6 --- /dev/null +++ b/datum/vore_pref.html @@ -0,0 +1,39 @@ +/datum/vore_pref - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

vore_pref

Procs

create_default_valueProduce a default, potentially random value for when no value for this +preference is found in the savefile. +Either this or create_informed_default_value must be overriden by subtypes.
create_informed_default_valueProduce a default, potentially random value for when no value for this +preference is found in the savefile. +Unlike create_default_value(), will provide the preferences object if you +need to use it. +If not overriden, will call create_default_value() instead.
deserializeCalled on the saved input when retrieving. +Also called by the value sent from the user through UI. Do not trust it. +Input is the value inside the savefile, output is to tell other code +what the value is. +This is useful either for more optimal data saving or for migrating +older data. +Must be overridden by subtypes. +Can return null if no value was found.
is_validChecks that a given value is valid. +Must be overriden by subtypes. +Any type can be passed through.
readGiven a savefile, return either the saved data or an acceptable default. +This will write to the savefile if a value was not found with the new value.
serializeCalled on the input while saving. +Input is the current value, output is what to save in the savefile.
writeGiven a savefile, writes the inputted value. +Returns TRUE for a successful application. +Return FALSE if it is invalid.

Proc Details

create_default_value

Produce a default, potentially random value for when no value for this +preference is found in the savefile. +Either this or create_informed_default_value must be overriden by subtypes.

create_informed_default_value

Produce a default, potentially random value for when no value for this +preference is found in the savefile. +Unlike create_default_value(), will provide the preferences object if you +need to use it. +If not overriden, will call create_default_value() instead.

deserialize

Called on the saved input when retrieving. +Also called by the value sent from the user through UI. Do not trust it. +Input is the value inside the savefile, output is to tell other code +what the value is. +This is useful either for more optimal data saving or for migrating +older data. +Must be overridden by subtypes. +Can return null if no value was found.

is_valid

Checks that a given value is valid. +Must be overriden by subtypes. +Any type can be passed through.

read

Given a savefile, return either the saved data or an acceptable default. +This will write to the savefile if a value was not found with the new value.

serialize

Called on the input while saving. +Input is the current value, output is what to save in the savefile.

write

Given a savefile, writes the inputted value. +Returns TRUE for a successful application. +Return FALSE if it is invalid.

\ No newline at end of file diff --git a/datum/vote.html b/datum/vote.html new file mode 100644 index 0000000000000..14eae53b6f1a2 --- /dev/null +++ b/datum/vote.html @@ -0,0 +1,32 @@ +/datum/vote - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Vote Singleton

A singleton datum that represents a type of vote for the voting subsystem.

+

Vote Singleton

+

A singleton datum that represents a type of vote for the voting subsystem.

Vars

choicesAn assoc list of [all choices] to [number of votes in the current running vote].
choices_by_ckeyA assoc list of [ckey] to [what they voted for in the current running vote].
contains_vote_in_nameDoes the name of this vote contain the word "vote"?
count_methodThe counting method we use for votes.
default_choicesA list of default choices we have for this vote.
default_messageWhat message do we show as the tooltip of this vote if the vote can be initiated?
display_statisticsShould we show details about the number of votes submitted for each option?
nameThe name of the vote.
override_questionIf supplied, an override question will be displayed instead of the name of the vote.
reminder_firedHas the vote reminder fired yet
started_timeThe world time this vote was started.
time_remainingThe time remaining in this vote's run.
vote_reminderProvide a reminder notification to those who haven't voted
vote_soundThe sound effect played to everyone when this vote is initiated.
winner_methodThe method for selecting a winner.

Procs

can_be_initiatedChecks if the passed mob can initiate this vote.
create_voteCalled prior to the vote being initiated.
finalize_voteCalled when a vote is actually all said and done. +Apply actual vote effects here.
get_random_winnerGets the winner of the vote, selecting a random choice from all choices based on their vote count.
get_result_textGets the resulting text displayed when the vote is completed.
get_simple_winnerGets the winner of the vote, selecting the choice with the most votes.
get_vote_resultGets the result of the vote.
get_winner_textGets the text that displays the winning options within the result text.
initiate_voteCalled when this vote is actually initiated.
is_accessible_voteUsed to determine if this vote is a possible +vote type for the vote subsystem.
is_config_enabledIf this vote has a config associated, returns its value (True or False, usually). +If it has no config, returns -1.
resetResets our vote to its default state.
tiebreakerHow this vote handles a tiebreaker between multiple winners.
toggle_votableIf this vote has a config associated, toggles it between enabled and disabled.

Var Details

choices

An assoc list of [all choices] to [number of votes in the current running vote].

choices_by_ckey

A assoc list of [ckey] to [what they voted for in the current running vote].

contains_vote_in_name

Does the name of this vote contain the word "vote"?

count_method

The counting method we use for votes.

default_choices

A list of default choices we have for this vote.

default_message

What message do we show as the tooltip of this vote if the vote can be initiated?

display_statistics

Should we show details about the number of votes submitted for each option?

name

The name of the vote.

override_question

If supplied, an override question will be displayed instead of the name of the vote.

reminder_fired

Has the vote reminder fired yet

started_time

The world time this vote was started.

time_remaining

The time remaining in this vote's run.

vote_reminder

Provide a reminder notification to those who haven't voted

vote_sound

The sound effect played to everyone when this vote is initiated.

winner_method

The method for selecting a winner.

Proc Details

can_be_initiated

Checks if the passed mob can initiate this vote.

+ +

Return VOTE_AVAILABLE if the mob can initiate the vote. +Return a string with the reason why the mob can't initiate the vote.

create_vote

Called prior to the vote being initiated.

+

Return FALSE to prevent the vote from being initiated.

finalize_vote

Called when a vote is actually all said and done. +Apply actual vote effects here.

get_random_winner

Gets the winner of the vote, selecting a random choice from all choices based on their vote count.

get_result_text

Gets the resulting text displayed when the vote is completed.

+

all_winners - list of all options that won. Can be multiple, in the event of ties. +real_winner - the option that actually won. +non_voters - a list of all ckeys who didn't vote in the vote.

+

Return a formatted string of text to be displayed to everyone.

get_simple_winner

Gets the winner of the vote, selecting the choice with the most votes.

get_vote_result

Gets the result of the vote.

+

non_voters - a list of all ckeys who didn't vote in the vote.

+

Returns a list of all options that won. +If there were no votes at all, the list will be length = 0, non-null. +If only one option one, the list will be length = 1. +If there was a tie, the list will be length > 1.

get_winner_text

Gets the text that displays the winning options within the result text.

+

all_winners - list of all options that won. Can be multiple, in the event of ties. +real_winner - the option that actually won. +non_voters - a list of all ckeys who didn't vote in the vote.

+

Return a formatted string of text to be displayed to everyone.

initiate_vote

Called when this vote is actually initiated.

+

Return a string - the text displayed to the world when the vote is initiated.

is_accessible_vote

Used to determine if this vote is a possible +vote type for the vote subsystem.

+

If FALSE is returned, this vote singleton +will not be created when the vote subsystem initializes, +meaning no one will be able to hold this vote.

is_config_enabled

If this vote has a config associated, returns its value (True or False, usually). +If it has no config, returns -1.

reset

Resets our vote to its default state.

tiebreaker

How this vote handles a tiebreaker between multiple winners.

toggle_votable

If this vote has a config associated, toggles it between enabled and disabled.

\ No newline at end of file diff --git a/datum/vote/restart_vote.html b/datum/vote/restart_vote.html new file mode 100644 index 0000000000000..efbb0ec6f8b74 --- /dev/null +++ b/datum/vote/restart_vote.html @@ -0,0 +1 @@ +/datum/vote/restart_vote - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

restart_vote

Procs

admins_presentThis proc checks to see if any admins are online for the purposes of this vote to see if it can pass. Returns TRUE if there are valid admins online (Has +SERVER and is not AFK), FALSE otherwise.

Proc Details

admins_present

This proc checks to see if any admins are online for the purposes of this vote to see if it can pass. Returns TRUE if there are valid admins online (Has +SERVER and is not AFK), FALSE otherwise.

\ No newline at end of file diff --git a/datum/voucher_set.html b/datum/voucher_set.html new file mode 100644 index 0000000000000..64aa1d15eaadc --- /dev/null +++ b/datum/voucher_set.html @@ -0,0 +1 @@ +/datum/voucher_set - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Voucher Set

A set consisting of a various equipment that can be then used as a reward for redeeming a mining voucher.

Vars

descriptionDescription of the set
iconIcon of the set
icon_stateIcon state of the set
nameName of the set
set_itemsList of items contained in the set

Var Details

description

Description of the set

icon

Icon of the set

icon_state

Icon state of the set

name

Name of the set

set_items

List of items contained in the set

\ No newline at end of file diff --git a/datum/wanted_message.html b/datum/wanted_message.html new file mode 100644 index 0000000000000..d32f0562a7e67 --- /dev/null +++ b/datum/wanted_message.html @@ -0,0 +1 @@ +/datum/wanted_message - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wanted_message

Vars

activeIs this criminal alert still active?
bodyMessage body used to describe what crime has been committed.
criminalWhat is the criminal in question's name? Not a mob reference as this is a text field.
imgIcon image to be attached to the newscaster message.
is_admin_msgIs this an admin message? Prevents editing unless performed by an admin rank.
photo_fileReference to the photo file used by wanted message on creation.
scanned_userWho was it that created this wanted message?

Var Details

active

Is this criminal alert still active?

body

Message body used to describe what crime has been committed.

criminal

What is the criminal in question's name? Not a mob reference as this is a text field.

img

Icon image to be attached to the newscaster message.

is_admin_msg

Is this an admin message? Prevents editing unless performed by an admin rank.

photo_file

Reference to the photo file used by wanted message on creation.

scanned_user

Who was it that created this wanted message?

\ No newline at end of file diff --git a/datum/weakref.html b/datum/weakref.html new file mode 100644 index 0000000000000..e9aebc9303eb9 --- /dev/null +++ b/datum/weakref.html @@ -0,0 +1,40 @@ +/datum/weakref - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

weakref

A weakref holds a non-owning reference to a datum. +The datum can be referenced again using resolve().

+

To figure out why this is important, you must understand how deletion in +BYOND works.

+

Imagine a datum as a TV in a living room. When one person enters to watch +TV, they turn it on. Others can come into the room and watch the TV. +When the last person leaves the room, they turn off the TV because it's +no longer being used.

+

A datum being deleted tells everyone who's watching the TV to stop. +If everyone leaves properly (AKA cleaning up their references), then the +last person will turn off the TV, and everything is well. +However, if someone is resistant (holds a hard reference after deletion), +then someone has to walk in, drag them away, and turn off the TV forecefully. +This process is very slow, and it's known as hard deletion.

+

This is where weak references come in. Weak references don't count as someone +watching the TV. Thus, when what it's referencing is destroyed, it will +hopefully clean up properly, and limit hard deletions.

+

A common use case for weak references is holding onto what created itself. +For example, if a machine wanted to know what its last user was, it might +create a var/mob/living/last_user. However, this is a strong reference to +the mob, and thus will force a hard deletion when that mob is deleted. +It is often better in this case to instead create a weakref to the user, +meaning this type definition becomes var/datum/weakref/last_user.

+

A good rule of thumb is that you should hold strong references to things +that you own. For example, a dog holding a chew toy would be the owner +of that chew toy, and thus a var/obj/item/chew_toy reference is fine +(as long as it is cleaned up properly). +However, a chew toy does not own its dog, so a var/mob/living/dog/owner +might be inferior to a weakref. +This is also a good rule of thumb to avoid circular references, such as the +chew toy example. A circular reference that doesn't clean itself up properly +will always hard delete.

Procs

hard_resolveSERIOUSLY READ THE AUTODOC COMMENT FOR THIS PROC BEFORE EVEN THINKING ABOUT USING IT
resolveRetrieves the datum that this weakref is referencing.

Proc Details

hard_resolve

SERIOUSLY READ THE AUTODOC COMMENT FOR THIS PROC BEFORE EVEN THINKING ABOUT USING IT

+

Like resolve, but doesn't care if the datum is being qdeleted but hasn't been deleted yet.

+

The return value of this proc leaves hanging references if the datum is being qdeleted but hasn't been deleted yet.

+

Do not do anything that would create a lasting reference to the return value, such as giving it a tag, putting it on the map, +adding it to an atom's contents or vis_contents, giving it a key (if it's a mob), attaching it to an atom (if it's an image), +or assigning it to a datum or list referenced somewhere other than a temporary value.

+

Unless you're resolving a weakref to a datum in a COMSIG_QDELETING signal handler registered on that very same datum, +just use resolve instead.

resolve

Retrieves the datum that this weakref is referencing.

+

This will return null if the datum was deleted. This MUST be respected.

\ No newline at end of file diff --git a/datum/weather.html b/datum/weather.html new file mode 100644 index 0000000000000..c9b707f71042f --- /dev/null +++ b/datum/weather.html @@ -0,0 +1,14 @@ +/datum/weather - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

weather

Causes weather to occur on a z level in certain area types

+

The effects of weather occur across an entire z-level. For instance, lavaland has periodic ash storms that scorch most unprotected creatures. +Weather always occurs on different z levels at different times, regardless of weather type. +Can have custom durations, targets, and can automatically protect indoor areas.

Vars

aestheticIf the weather has no purpose other than looks
area_typeTypes of area to affect
barometer_predictableWhether a barometer can predict when the weather will happen
descdescription of weather
end_durationIn deciseconds, how long the "wind-down" graphic will appear before vanishing entirely
end_messageDisplayed once the weather is over
end_overlayArea overlay while weather is ending
end_soundSound that plays while weather is ending
immunity_typeUsed by mobs (or movables containing mobs, such as enviro bags) to prevent them from being affected by the weather.
impacted_areasAreas to be affected by the weather, calculated when the weather begins
impacted_z_levelsThe list of z-levels that this weather is actively affecting
namename of weather
next_hit_timeFor barometers to know when the next storm will hit
overlay_cacheList of all overlays to apply to our turfs
overlay_layerSince it's above everything else, this is the layer used by default.
overlay_planePlane for the overlay
perpetualThis causes the weather to only end if forced to
probabilityWeight amongst other eligible weather. If zero, will never happen randomly.
protect_indoorsTRUE value protects areas with outdoors marked as false, regardless of area type
protected_areasAreas that are protected and excluded from the affected areas.
stageThe stage of the weather, from 1-4
target_traitThe z-level trait to affect when run randomly or when not overridden.
telegraph_durationIn deciseconds, how long from the beginning of the telegraph until the weather begins
telegraph_messageThe message displayed in chat to foreshadow the weather's beginning
telegraph_overlayThe overlay applied to all tiles on the z-level
telegraph_soundThe sound file played to everyone on an affected z-level
use_glowIf this bit of weather should also draw an overlay that's uneffected by lighting onto the area +Taken from weather_glow.dmi
weather_colorColor to apply to the area while weather is occuring
weather_durationIn deciseconds, how long the weather lasts once it begins
weather_duration_lowerSee above - this is the lowest possible duration
weather_duration_upperSee above - this is the highest possible duration
weather_messageDisplayed in chat once the weather begins in earnest
weather_overlayArea overlay while the weather is occuring
weather_soundLooping sound while weather is occuring

Procs

can_weather_actReturns TRUE if the living mob can be affected by the weather
endFully ends the weather
generate_overlay_cacheReturns a list of visual offset -> overlays to use
startStarts the actual weather and effects from it
telegraphTelegraphs the beginning of the weather on the impacted z levels
update_areasUpdates the overlays on impacted areas
weather_actAffects the mob with whatever the weather does
wind_downWeather enters the winding down phase, stops effects

Var Details

aesthetic

If the weather has no purpose other than looks

area_type

Types of area to affect

barometer_predictable

Whether a barometer can predict when the weather will happen

desc

description of weather

end_duration

In deciseconds, how long the "wind-down" graphic will appear before vanishing entirely

end_message

Displayed once the weather is over

end_overlay

Area overlay while weather is ending

end_sound

Sound that plays while weather is ending

immunity_type

Used by mobs (or movables containing mobs, such as enviro bags) to prevent them from being affected by the weather.

impacted_areas

Areas to be affected by the weather, calculated when the weather begins

impacted_z_levels

The list of z-levels that this weather is actively affecting

name

name of weather

next_hit_time

For barometers to know when the next storm will hit

overlay_cache

List of all overlays to apply to our turfs

overlay_layer

Since it's above everything else, this is the layer used by default.

overlay_plane

Plane for the overlay

perpetual

This causes the weather to only end if forced to

probability

Weight amongst other eligible weather. If zero, will never happen randomly.

protect_indoors

TRUE value protects areas with outdoors marked as false, regardless of area type

protected_areas

Areas that are protected and excluded from the affected areas.

stage

The stage of the weather, from 1-4

target_trait

The z-level trait to affect when run randomly or when not overridden.

telegraph_duration

In deciseconds, how long from the beginning of the telegraph until the weather begins

telegraph_message

The message displayed in chat to foreshadow the weather's beginning

telegraph_overlay

The overlay applied to all tiles on the z-level

telegraph_sound

The sound file played to everyone on an affected z-level

use_glow

If this bit of weather should also draw an overlay that's uneffected by lighting onto the area +Taken from weather_glow.dmi

weather_color

Color to apply to the area while weather is occuring

weather_duration

In deciseconds, how long the weather lasts once it begins

weather_duration_lower

See above - this is the lowest possible duration

weather_duration_upper

See above - this is the highest possible duration

weather_message

Displayed in chat once the weather begins in earnest

weather_overlay

Area overlay while the weather is occuring

weather_sound

Looping sound while weather is occuring

Proc Details

can_weather_act

Returns TRUE if the living mob can be affected by the weather

end

Fully ends the weather

+

Effects no longer occur and area overlays are removed +Removes weather from processing completely

generate_overlay_cache

Returns a list of visual offset -> overlays to use

start

Starts the actual weather and effects from it

+

Updates area overlays and sends sounds and messages to mobs to notify them +Begins dealing effects from weather to mobs in the area

telegraph

Telegraphs the beginning of the weather on the impacted z levels

+

Sends sounds and details to mobs in the area +Calculates duration and hit areas, and makes a callback for the actual weather to start

update_areas

Updates the overlays on impacted areas

weather_act

Affects the mob with whatever the weather does

wind_down

Weather enters the winding down phase, stops effects

+

Updates areas to be in the winding down phase +Sends sounds and messages to mobs to notify them

\ No newline at end of file diff --git a/datum/weather/floor_is_lava.html b/datum/weather/floor_is_lava.html new file mode 100644 index 0000000000000..27c77cfc0cdf0 --- /dev/null +++ b/datum/weather/floor_is_lava.html @@ -0,0 +1,5 @@ +/datum/weather/floor_is_lava - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

floor_is_lava

Vars

use_glowWe don't draw on walls, so this ends up lookin weird +Can't really use like, the emissive system here because I am not about to make +all walls block emissive

Var Details

use_glow

We don't draw on walls, so this ends up lookin weird +Can't really use like, the emissive system here because I am not about to make +all walls block emissive

\ No newline at end of file diff --git a/datum/weather/rad_storm.html b/datum/weather/rad_storm.html new file mode 100644 index 0000000000000..2658cb52e5639 --- /dev/null +++ b/datum/weather/rad_storm.html @@ -0,0 +1 @@ +/datum/weather/rad_storm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rad_storm

Vars

mutate_chanceChance we mutate
negative_mutation_chanceChance we get a negative mutation, if we fail we get a positive one

Var Details

mutate_chance

Chance we mutate

negative_mutation_chance

Chance we get a negative mutation, if we fail we get a positive one

\ No newline at end of file diff --git a/datum/weather/rad_storm/nebula.html b/datum/weather/rad_storm/nebula.html new file mode 100644 index 0000000000000..8ec4bf324b8d3 --- /dev/null +++ b/datum/weather/rad_storm/nebula.html @@ -0,0 +1 @@ +/datum/weather/rad_storm/nebula - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nebula

Used by the radioactive nebula when the station doesnt have enough shielding

Vars

radiation_chanceChance we pulse a living during the storm

Var Details

radiation_chance

Chance we pulse a living during the storm

\ No newline at end of file diff --git a/datum/weather/sand_storm.html b/datum/weather/sand_storm.html new file mode 100644 index 0000000000000..8f0ee094f971d --- /dev/null +++ b/datum/weather/sand_storm.html @@ -0,0 +1 @@ +/datum/weather/sand_storm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

sand_storm

Procs

generate_overlay_cacheCopied from the base weather.dm file to make this modular. I fucking hate modularity.

Proc Details

generate_overlay_cache

Copied from the base weather.dm file to make this modular. I fucking hate modularity.

\ No newline at end of file diff --git a/datum/weather/snow_storm.html b/datum/weather/snow_storm.html new file mode 100644 index 0000000000000..63a1a69a416aa --- /dev/null +++ b/datum/weather/snow_storm.html @@ -0,0 +1 @@ +/datum/weather/snow_storm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

snow_storm

Vars

cooling_lowerLowest we can cool someone randomly per weather act. Positive values only
cooling_upperHighest we can cool someone randomly per weather act. Positive values only

Var Details

cooling_lower

Lowest we can cool someone randomly per weather act. Positive values only

cooling_upper

Highest we can cool someone randomly per weather act. Positive values only

\ No newline at end of file diff --git a/datum/wires.html b/datum/wires.html new file mode 100644 index 0000000000000..34bc363f37dee --- /dev/null +++ b/datum/wires.html @@ -0,0 +1,13 @@ +/datum/wires - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wires

Vars

assembliesList of attached assemblies.
colorsDictionary of colours to wire.
cut_wiresList of cut wires.
dictionary_keyKey that enables wire assignments to be common across different holders. If null, will use the holder_type as a key.
holderThe holder (atom that contains these wires).
holder_typeThe holder's typepath (used for sanity checks to make sure the holder is the appropriate type for these wire sets).
proper_nameThe display name for the wire set shown in station blueprints. Not shown in blueprints if randomize is TRUE or it's an item NT wouldn't know about (Explosives/Nuke). Also used in the hacking interface.
randomizeIf every instance of these wires should be random. Prevents wires from showing up in station blueprints.
studied_photosLazy assoc list of refs to mobs to refs to photos they have studied for wires
wiresList of all wires.

Procs

always_reveal_wireWhether the given wire should always be revealed.
can_reveal_wiresChecks whether wire assignments should be revealed.
emp_pulseCalled from /atom/proc/emp_act
on_holder_qdelCalled when holder is qdeleted for us to clean ourselves as not to leave any unlawful references.
try_study_photoAttempts to study a photo for blueprints.

Var Details

assemblies

List of attached assemblies.

colors

Dictionary of colours to wire.

cut_wires

List of cut wires.

dictionary_key

Key that enables wire assignments to be common across different holders. If null, will use the holder_type as a key.

holder

The holder (atom that contains these wires).

holder_type

The holder's typepath (used for sanity checks to make sure the holder is the appropriate type for these wire sets).

proper_name

The display name for the wire set shown in station blueprints. Not shown in blueprints if randomize is TRUE or it's an item NT wouldn't know about (Explosives/Nuke). Also used in the hacking interface.

randomize

If every instance of these wires should be random. Prevents wires from showing up in station blueprints.

studied_photos

Lazy assoc list of refs to mobs to refs to photos they have studied for wires

wires

List of all wires.

Proc Details

always_reveal_wire

Whether the given wire should always be revealed.

+

Intended to be overridden. Allows for forcing a wire's assignmenmt to always be revealed +in the hacking interface. +Arguments:

+

can_reveal_wires

Checks whether wire assignments should be revealed.

+

Returns TRUE if the wires should be revealed, FALSE otherwise. +Currently checks for admin ghost AI, abductor multitool and blueprints. +Arguments:

+

emp_pulse

Called from /atom/proc/emp_act

on_holder_qdel

Called when holder is qdeleted for us to clean ourselves as not to leave any unlawful references.

try_study_photo

Attempts to study a photo for blueprints.

\ No newline at end of file diff --git a/datum/wires/airlock.html b/datum/wires/airlock.html new file mode 100644 index 0000000000000..f42af32346248 --- /dev/null +++ b/datum/wires/airlock.html @@ -0,0 +1 @@ +/datum/wires/airlock - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

airlock

Procs

on_pulsePulse to disable emergency access/engineering override and flash the red lights.

Proc Details

on_pulse

Pulse to disable emergency access/engineering override and flash the red lights.

\ No newline at end of file diff --git a/datum/wires/collar_bomb.html b/datum/wires/collar_bomb.html new file mode 100644 index 0000000000000..1f71499889806 --- /dev/null +++ b/datum/wires/collar_bomb.html @@ -0,0 +1 @@ +/datum/wires/collar_bomb - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

collar_bomb

Procs

emp_pulseI'd rather not get people killed by EMP here.

Proc Details

emp_pulse

I'd rather not get people killed by EMP here.

\ No newline at end of file diff --git a/datum/wires/conveyor.html b/datum/wires/conveyor.html new file mode 100644 index 0000000000000..e7e8df6f3ef1d --- /dev/null +++ b/datum/wires/conveyor.html @@ -0,0 +1 @@ +/datum/wires/conveyor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

conveyor

Vars

fingerman_refvar holder that logs who put the assembly inside and gets transferred to the switch on pulse

Var Details

fingerman_ref

var holder that logs who put the assembly inside and gets transferred to the switch on pulse

\ No newline at end of file diff --git a/datum/wires/vending.html b/datum/wires/vending.html new file mode 100644 index 0000000000000..047ab59b39616 --- /dev/null +++ b/datum/wires/vending.html @@ -0,0 +1 @@ +/datum/wires/vending - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vending

Vars

language_iteratorKeeps track of which language is selected

Var Details

language_iterator

Keeps track of which language is selected

\ No newline at end of file diff --git a/datum/worn_feature_offset.html b/datum/worn_feature_offset.html new file mode 100644 index 0000000000000..c7bcf192240df --- /dev/null +++ b/datum/worn_feature_offset.html @@ -0,0 +1,2 @@ +/datum/worn_feature_offset - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

worn_feature_offset

A datum for controlling how to position items on an unusually offset body part +For instance if you have an asymmetrical head, hats might need to be offset to one side

Vars

attached_partWhat are we attached to
feature_keyKey used to identify what this offset applies to
offset_xOffsets to apply on the x axis for each direction
offset_yOffsets to apply on the y axis for each direction
ownerOwner of mob we are attached to, could be null on a severed limb

Procs

apply_offsetApplies the current offset to a provided overlay image
changed_ownerWhen the owner of the bodypart changes, update our signal registrations
get_offsetReturns the current offset which should be used for this feature
on_dir_changeWhen we change direction, re-apply the offset
on_owner_deletedIf the owner is deleted, stop updating

Var Details

attached_part

What are we attached to

feature_key

Key used to identify what this offset applies to

offset_x

Offsets to apply on the x axis for each direction

offset_y

Offsets to apply on the y axis for each direction

owner

Owner of mob we are attached to, could be null on a severed limb

Proc Details

apply_offset

Applies the current offset to a provided overlay image

changed_owner

When the owner of the bodypart changes, update our signal registrations

get_offset

Returns the current offset which should be used for this feature

on_dir_change

When we change direction, re-apply the offset

on_owner_deleted

If the owner is deleted, stop updating

\ No newline at end of file diff --git a/datum/wound.html b/datum/wound.html new file mode 100644 index 0000000000000..b92767300a7a0 --- /dev/null +++ b/datum/wound.html @@ -0,0 +1,40 @@ +/datum/wound - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wound

Vars

a_or_fromneeded for "your arm has a compound fracture" vs "your arm has some third degree burns"
actionspeed_modThe actionspeed modifier we will use in case we are on the arms and have a interaction penalty. Qdelled on destroy.
already_scarredIf we've already tried scarring while removing (remove_wound can be called twice in a del chain, let's be nice to our code yeah?) TODO: make this cleaner
attached_surgeryIf we're operating on this wound and it gets healed, we'll nix the surgery too
base_treat_timeHow long it will take to treat this wound with a standard effective tool, assuming it doesn't need surgery
base_xadone_progress_to_qdelThe base amount of [cryo_progress] required to have ourselves fully healed by cryo. Multiplied against severity.
blood_flowHow much we're contributing to this limb's bleed_rate
can_scarIf this wound can generate a scar.
cryo_progressif you're a lazy git and just throw them in cryo, the wound will go away after accumulating severity * [base_xadone_progress_to_qdel] power
damage_multiplier_penaltyIncoming damage on this limb will be multiplied by this, to simulate tenderness and vulnerability (mostly burns).
default_scar_fileThe default file we take our scar descriptions from, if we fail to get the ideal file.
descThe description shown on the scanners
disablingIf having this wound makes currently makes the parent bodypart unusable
examine_descWhat the limb looks like on a cursory examine
homemade_treat_textImprovised remedies indicated by the first aid analyzer only.
interaction_efficiency_penaltyUsing this limb in a do_after interaction will multiply the length by this duration (arms)
limbThe bodypart we're parented to. Not guaranteed to be non-null, especially after/during removal or if we haven't been applied
limp_chanceIf this wound has a limp_slowdown and is applied to a leg, it has this chance to limp each step
limp_slowdownIf set and this wound is applied to a leg, we take this many deciseconds extra per step on this leg
nameWhat it's named
occur_textThe visible message when this happens
processesIf we need to process each life tick
scar_keywordWhat kind of scars this wound will create description wise once healed
series_threshold_penaltyHow much having this wound will add to all future check_wounding() rolls on this limb, but only for wounds of its own series
severityEither WOUND_SEVERITY_TRIVIAL (meme wounds like stubbed toe), WOUND_SEVERITY_MODERATE, WOUND_SEVERITY_SEVERE, or WOUND_SEVERITY_CRITICAL (or maybe WOUND_SEVERITY_LOSS)
simple_descSimple description, shortened for clarity if defined. Otherwise just takes the normal desc in the analyzer proc.
simple_treat_textSimple analyzer's wound description, which focuses less on the clinical aspect of the wound and more on easily readable treatment instructions.
sound_effectThis sound will be played upon the wound being applied
sound_volumeThe volume of [sound_effect]
status_effect_typeWhat status effect we assign on application
threshold_penaltyHow much having this wound will add to all future check_wounding() rolls on this limb, to allow progression to worse injuries with repeated damage
treat_textThe basic treatment suggested by health analyzers
treat_text_shortEven more basic treatment
treatable_bySpecific items such as bandages or sutures that can try directly treating this wound
treatable_by_grabbedSpecific items such as bandages or sutures that can try directly treating this wound only if the user has the victim in an aggressive grab or higher
treatable_toolsAny tools with any of the flags in this list will be usable to try directly treating this wound
unique_idThe unique ID of our wound for use with [actionspeed_mod]. Defaults to REF(src).
victimWho owns the body part that we're wounding
wound_flagsWhat flags apply to this wound
wound_sourceThe source of how we got the wound, typically a weapon.

Procs

adjust_blood_flowUse this to modify blood flow. You must use this to change the variable +Takes the amount to adjust by, and the lowest amount we're allowed to have post adjust
apply_woundapply_wound() is used once a wound type is instantiated to assign it to a bodypart, and actually come into play.
can_be_applied_toReturns TRUE if we can be applied to the limb.
check_grab_treatmentsReturn TRUE if we have an item that can only be used while aggro grabbed (unhanded aggro grab treatments go in /datum/wound/proc/try_handling). Treatment is still is handled in /datum/wound/proc/treat
drag_bleed_amountUsed when we're being dragged while bleeding, the value we return is how much bloodloss this wound causes from being dragged. Since it's a proc, you can let bandages soak some of the blood
gauze_state_changedSignal proc for if gauze has been applied or removed from our limb.
generate_actionspeed_modifierIf we have no actionspeed_mod, generates a new one with our unique ID, sets actionspeed_mod to it, then returns it.
generate_unique_idGenerates the ID we use for [unique_id], which is also set as our actionspeed mod's ID
get_action_delay_incrementReturns the decisecond increment of any click interactions, assuming our limb is being used.
get_action_delay_multReturns the decisecond multiplier of any click interactions, assuming our limb is being used.
get_bleed_rate_of_changeget_bleed_rate_of_change() is used in /mob/living/carbon/proc/bleed_warn to gauge whether this wound (if bleeding) is becoming worse, better, or staying the same over time
get_desc_intensitySpans [desc] based on our severity.
get_dismember_chance_bonusGets the flat percentage chance increment of a dismember occurring, if a dismember is attempted (requires mangled flesh and bone). returning 15 = +15%.
get_effective_actionspeed_modifierReturns a "adjusted" interaction_efficiency_penalty that will be used for the actionspeed mod.
get_examine_descriptionget_examine_description() is used in carbon/examine and human/examine to show the status of this wound. Useful if you need to show some status like the wound being splinted or bandaged.
get_limb_examine_descriptionReturns what string is displayed when a limb that has sustained this wound is examined +(This is examining the LIMB ITSELF, when it's not attached to someone.)
get_pregen_dataReturns our pregen data, which is practically guaranteed to exist, so this proc can safely be used raw. +In fact, since it's RETURN_TYPEd to wound_pregen_data, you can even directly access the variables without having to store the value of this proc in a typed variable. +Ex. get_pregen_data().wound_series
get_required_biostateReturns the biostate we require to be applied.
get_scanner_descriptionPrints the details about the wound for the wound scanner on simple mode
get_scar_fileGetter proc for our scar_file, in case we might have some custom scar gen logic.
get_scar_keywordGetter proc for our scar_keyword, in case we might have some custom scar gen logic.
get_simple_scanner_descriptionPrints the details about the wound for the wound scanner on complex mode
get_topic_nameGets the name of the wound with any interactable topic if possible
get_viable_zonesReturns the zones we can be applied to.
get_xadone_progress_to_qdelReturns the amount of [cryo_progress] we need to be qdeleted.
handle_processIf var/processing is TRUE, this is run on each life tick
handle_xadone_progressDoes various actions based on [cryo_progress]. By default, qdeletes the wound past a certain threshold.
limb_essentialReturns TRUE if our limb is the head or chest, FALSE otherwise. +Essential in the sense of "we cannot live without it".
modify_desc_before_spanA hook proc used to modify desc before it is spanned via [get_desc_intensity]. Useful for inserting spans yourself.
on_stasisCalled when the patient is undergoing stasis, so that having fully treated a wound doesn't make you sit there helplessly until you think to unbuckle them
on_synthfleshWhen synthflesh is applied to the victim, we call this. No sense in setting up an entire chem reaction system for wounds when we only care for a few chems. Probably will change in the future
on_xadoneCalled from cryoxadone and pyroxadone when they're proc'ing. Wounds will slowly be fixed separately from other methods when these are in effect. crappy name but eh
receive_damageWhen our parent bodypart is hurt.
remove_actionspeed_modifierIf we have an actionspeed_mod, qdels it and sets our ref of it to null.
remove_woundRemove the wound from whatever it's afflicting, and cleans up whatever status effects it had or modifiers it had on interaction times. ignore_limb is used for detachments where we only want to forget the victim
replace_woundreplace_wound() is used when you want to replace the current wound with a new wound, presumably of the same category, just of a different severity (either up or down counts)
second_windAdditional beneficial effects when the wound is gained, in case you want to give a temporary boost to allow the victim to try an escape or last stand
set_blood_flowSets our blood flow
set_disablingProc called to change the variable disabling and react to the event.
set_interaction_efficiency_penaltySetter for [interaction_efficiency_penalty]. Updates the actionspeed of our actionspeed mod.
set_limbProc called to change the variable limb and react to the event.
set_victimSetter for [victim]. Should completely transfer signals, attributes, etc. To the new victim - if there is any, as it can be null.
severity_textReturns what text describes this wound
should_have_actionspeed_modifierReturns TRUE if we have an interaction_efficiency_penalty, and if we are on the arms, FALSE otherwise.
show_wound_topicWhether we should show an interactable topic in examines of the wound. href_list["wound_topic"]
still_existsFor use in do_after callback checks
treatSomeone is using something that might be used for treating the wound on this limb
try_handlingLike try_treating() but for unhanded interactions, used by joint dislocations for manual bodypart chiropractice for example. Ignores thick material checks since you can pop an arm into place through a thick suit unlike using sutures
try_treatingtry_treating() is an intercept run from [/mob/living/carbon/proc/attackby] right after surgeries but before anything else. Return TRUE here if the item is something that is relevant to treatment to take over the interaction.
update_actionspeed_modifierIf we should have an actionspeed_mod, ensures we do and updates its slowdown. Otherwise, ensures we don't have one +by qdeleting any existing modifier.
update_inefficienciesUpdates our limping and interaction penalties in accordance with our gauze.
wound_injuryThe immediate negative effects faced as a result of the wound

Var Details

a_or_from

needed for "your arm has a compound fracture" vs "your arm has some third degree burns"

actionspeed_mod

The actionspeed modifier we will use in case we are on the arms and have a interaction penalty. Qdelled on destroy.

already_scarred

If we've already tried scarring while removing (remove_wound can be called twice in a del chain, let's be nice to our code yeah?) TODO: make this cleaner

attached_surgery

If we're operating on this wound and it gets healed, we'll nix the surgery too

base_treat_time

How long it will take to treat this wound with a standard effective tool, assuming it doesn't need surgery

base_xadone_progress_to_qdel

The base amount of [cryo_progress] required to have ourselves fully healed by cryo. Multiplied against severity.

blood_flow

How much we're contributing to this limb's bleed_rate

can_scar

If this wound can generate a scar.

cryo_progress

if you're a lazy git and just throw them in cryo, the wound will go away after accumulating severity * [base_xadone_progress_to_qdel] power

damage_multiplier_penalty

Incoming damage on this limb will be multiplied by this, to simulate tenderness and vulnerability (mostly burns).

default_scar_file

The default file we take our scar descriptions from, if we fail to get the ideal file.

desc

The description shown on the scanners

disabling

If having this wound makes currently makes the parent bodypart unusable

examine_desc

What the limb looks like on a cursory examine

homemade_treat_text

Improvised remedies indicated by the first aid analyzer only.

interaction_efficiency_penalty

Using this limb in a do_after interaction will multiply the length by this duration (arms)

limb

The bodypart we're parented to. Not guaranteed to be non-null, especially after/during removal or if we haven't been applied

limp_chance

If this wound has a limp_slowdown and is applied to a leg, it has this chance to limp each step

limp_slowdown

If set and this wound is applied to a leg, we take this many deciseconds extra per step on this leg

name

What it's named

occur_text

The visible message when this happens

processes

If we need to process each life tick

scar_keyword

What kind of scars this wound will create description wise once healed

series_threshold_penalty

How much having this wound will add to all future check_wounding() rolls on this limb, but only for wounds of its own series

severity

Either WOUND_SEVERITY_TRIVIAL (meme wounds like stubbed toe), WOUND_SEVERITY_MODERATE, WOUND_SEVERITY_SEVERE, or WOUND_SEVERITY_CRITICAL (or maybe WOUND_SEVERITY_LOSS)

simple_desc

Simple description, shortened for clarity if defined. Otherwise just takes the normal desc in the analyzer proc.

simple_treat_text

Simple analyzer's wound description, which focuses less on the clinical aspect of the wound and more on easily readable treatment instructions.

sound_effect

This sound will be played upon the wound being applied

sound_volume

The volume of [sound_effect]

status_effect_type

What status effect we assign on application

threshold_penalty

How much having this wound will add to all future check_wounding() rolls on this limb, to allow progression to worse injuries with repeated damage

treat_text

The basic treatment suggested by health analyzers

treat_text_short

Even more basic treatment

treatable_by

Specific items such as bandages or sutures that can try directly treating this wound

treatable_by_grabbed

Specific items such as bandages or sutures that can try directly treating this wound only if the user has the victim in an aggressive grab or higher

treatable_tools

Any tools with any of the flags in this list will be usable to try directly treating this wound

unique_id

The unique ID of our wound for use with [actionspeed_mod]. Defaults to REF(src).

victim

Who owns the body part that we're wounding

wound_flags

What flags apply to this wound

wound_source

The source of how we got the wound, typically a weapon.

Proc Details

adjust_blood_flow

Use this to modify blood flow. You must use this to change the variable +Takes the amount to adjust by, and the lowest amount we're allowed to have post adjust

apply_wound

apply_wound() is used once a wound type is instantiated to assign it to a bodypart, and actually come into play.

+

Arguments:

+

can_be_applied_to

Returns TRUE if we can be applied to the limb.

check_grab_treatments

Return TRUE if we have an item that can only be used while aggro grabbed (unhanded aggro grab treatments go in /datum/wound/proc/try_handling). Treatment is still is handled in /datum/wound/proc/treat

drag_bleed_amount

Used when we're being dragged while bleeding, the value we return is how much bloodloss this wound causes from being dragged. Since it's a proc, you can let bandages soak some of the blood

gauze_state_changed

Signal proc for if gauze has been applied or removed from our limb.

generate_actionspeed_modifier

If we have no actionspeed_mod, generates a new one with our unique ID, sets actionspeed_mod to it, then returns it.

generate_unique_id

Generates the ID we use for [unique_id], which is also set as our actionspeed mod's ID

get_action_delay_increment

Returns the decisecond increment of any click interactions, assuming our limb is being used.

get_action_delay_mult

Returns the decisecond multiplier of any click interactions, assuming our limb is being used.

get_bleed_rate_of_change

get_bleed_rate_of_change() is used in /mob/living/carbon/proc/bleed_warn to gauge whether this wound (if bleeding) is becoming worse, better, or staying the same over time

+

Returns BLOOD_FLOW_STEADY if we're not bleeding or there's no change (like piercing), BLOOD_FLOW_DECREASING if we're clotting (non-critical slashes, gauzed, coagulant, etc), BLOOD_FLOW_INCREASING if we're opening up (crit slashes/heparin/nitrous oxide)

get_desc_intensity

Spans [desc] based on our severity.

get_dismember_chance_bonus

Gets the flat percentage chance increment of a dismember occurring, if a dismember is attempted (requires mangled flesh and bone). returning 15 = +15%.

get_effective_actionspeed_modifier

Returns a "adjusted" interaction_efficiency_penalty that will be used for the actionspeed mod.

get_examine_description

get_examine_description() is used in carbon/examine and human/examine to show the status of this wound. Useful if you need to show some status like the wound being splinted or bandaged.

+

Return the full string line you want to show, note that we're already dealing with the 'warning' span at this point, and that \n is already appended for you in the place this is called from

+

Arguments:

+

get_limb_examine_description

Returns what string is displayed when a limb that has sustained this wound is examined +(This is examining the LIMB ITSELF, when it's not attached to someone.)

get_pregen_data

Returns our pregen data, which is practically guaranteed to exist, so this proc can safely be used raw. +In fact, since it's RETURN_TYPEd to wound_pregen_data, you can even directly access the variables without having to store the value of this proc in a typed variable. +Ex. get_pregen_data().wound_series

get_required_biostate

Returns the biostate we require to be applied.

get_scanner_description

Prints the details about the wound for the wound scanner on simple mode

get_scar_file

Getter proc for our scar_file, in case we might have some custom scar gen logic.

get_scar_keyword

Getter proc for our scar_keyword, in case we might have some custom scar gen logic.

get_simple_scanner_description

Prints the details about the wound for the wound scanner on complex mode

get_topic_name

Gets the name of the wound with any interactable topic if possible

get_viable_zones

Returns the zones we can be applied to.

get_xadone_progress_to_qdel

Returns the amount of [cryo_progress] we need to be qdeleted.

handle_process

If var/processing is TRUE, this is run on each life tick

handle_xadone_progress

Does various actions based on [cryo_progress]. By default, qdeletes the wound past a certain threshold.

limb_essential

Returns TRUE if our limb is the head or chest, FALSE otherwise. +Essential in the sense of "we cannot live without it".

modify_desc_before_span

A hook proc used to modify desc before it is spanned via [get_desc_intensity]. Useful for inserting spans yourself.

on_stasis

Called when the patient is undergoing stasis, so that having fully treated a wound doesn't make you sit there helplessly until you think to unbuckle them

on_synthflesh

When synthflesh is applied to the victim, we call this. No sense in setting up an entire chem reaction system for wounds when we only care for a few chems. Probably will change in the future

on_xadone

Called from cryoxadone and pyroxadone when they're proc'ing. Wounds will slowly be fixed separately from other methods when these are in effect. crappy name but eh

receive_damage

When our parent bodypart is hurt.

remove_actionspeed_modifier

If we have an actionspeed_mod, qdels it and sets our ref of it to null.

remove_wound

Remove the wound from whatever it's afflicting, and cleans up whatever status effects it had or modifiers it had on interaction times. ignore_limb is used for detachments where we only want to forget the victim

replace_wound

replace_wound() is used when you want to replace the current wound with a new wound, presumably of the same category, just of a different severity (either up or down counts)

+

Arguments:

+

second_wind

Additional beneficial effects when the wound is gained, in case you want to give a temporary boost to allow the victim to try an escape or last stand

set_blood_flow

Sets our blood flow

set_disabling

Proc called to change the variable disabling and react to the event.

set_interaction_efficiency_penalty

Setter for [interaction_efficiency_penalty]. Updates the actionspeed of our actionspeed mod.

set_limb

Proc called to change the variable limb and react to the event.

set_victim

Setter for [victim]. Should completely transfer signals, attributes, etc. To the new victim - if there is any, as it can be null.

severity_text

Returns what text describes this wound

should_have_actionspeed_modifier

Returns TRUE if we have an interaction_efficiency_penalty, and if we are on the arms, FALSE otherwise.

show_wound_topic

Whether we should show an interactable topic in examines of the wound. href_list["wound_topic"]

still_exists

For use in do_after callback checks

treat

Someone is using something that might be used for treating the wound on this limb

try_handling

Like try_treating() but for unhanded interactions, used by joint dislocations for manual bodypart chiropractice for example. Ignores thick material checks since you can pop an arm into place through a thick suit unlike using sutures

try_treating

try_treating() is an intercept run from [/mob/living/carbon/proc/attackby] right after surgeries but before anything else. Return TRUE here if the item is something that is relevant to treatment to take over the interaction.

+

This proc leads into /datum/wound/proc/treat and probably shouldn't be added onto in children types. You can specify what items or tools you want to be intercepted +with var/list/treatable_by and var/treatable_tool, then if an item fulfills one of those requirements and our wound claims it first, it goes over to treat() and treat_self().

+

Arguments:

+

update_actionspeed_modifier

If we should have an actionspeed_mod, ensures we do and updates its slowdown. Otherwise, ensures we don't have one +by qdeleting any existing modifier.

update_inefficiencies

Updates our limping and interaction penalties in accordance with our gauze.

wound_injury

The immediate negative effects faced as a result of the wound

\ No newline at end of file diff --git a/datum/wound/blunt/bone.html b/datum/wound/blunt/bone.html new file mode 100644 index 0000000000000..f6956d51d5b7c --- /dev/null +++ b/datum/wound/blunt/bone.html @@ -0,0 +1 @@ +/datum/wound/blunt/bone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bone

Vars

active_traumaIf we suffer severe head booboos, we can get brain traumas tied to them
brain_trauma_groupWhat brain trauma group, if any, we can draw from for head wounds
gelledHave we been bone gel'd?
internal_bleeding_chanceIf this is a chest wound and this is set, we have this chance to cough up blood when hit in the chest
next_trauma_cycleIf we deal brain traumas, when is the next one due?
regen_ticks_currentOur current counter for gel + surgical tape regeneration
regen_ticks_neededIf we did the gel + surgical tape healing method for fractures, how many ticks does it take to heal by default
tapedHave we been taped?
trauma_cycle_cooldownHow long do we wait +/- 20% for the next trauma?

Procs

attack_with_hurt_handIf we're a human who's punching something with a broken arm, we might hurt ourselves doing so
gelif someone is using bone gel on our wound
skelly_gelskellies are less averse to bone gel, since they're literally all bone
tapeif someone is using surgical tape on our wound

Var Details

active_trauma

If we suffer severe head booboos, we can get brain traumas tied to them

brain_trauma_group

What brain trauma group, if any, we can draw from for head wounds

gelled

Have we been bone gel'd?

internal_bleeding_chance

If this is a chest wound and this is set, we have this chance to cough up blood when hit in the chest

next_trauma_cycle

If we deal brain traumas, when is the next one due?

regen_ticks_current

Our current counter for gel + surgical tape regeneration

regen_ticks_needed

If we did the gel + surgical tape healing method for fractures, how many ticks does it take to heal by default

taped

Have we been taped?

trauma_cycle_cooldown

How long do we wait +/- 20% for the next trauma?

Proc Details

attack_with_hurt_hand

If we're a human who's punching something with a broken arm, we might hurt ourselves doing so

gel

if someone is using bone gel on our wound

skelly_gel

skellies are less averse to bone gel, since they're literally all bone

tape

if someone is using surgical tape on our wound

\ No newline at end of file diff --git a/datum/wound/blunt/bone/moderate.html b/datum/wound/blunt/bone/moderate.html new file mode 100644 index 0000000000000..6a359317a4faa --- /dev/null +++ b/datum/wound/blunt/bone/moderate.html @@ -0,0 +1 @@ +/datum/wound/blunt/bone/moderate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

moderate

Joint Dislocation (Moderate Blunt)

Procs

chiropracticeIf someone is snapping our dislocated joint back into place by hand with an aggro grab and help intent
door_crushGetting smushed in an airlock/firelock is a last-ditch attempt to try relocating your limb
malpracticeIf someone is snapping our dislocated joint into a fracture by hand with an aggro grab and harm or disarm intent

Proc Details

chiropractice

If someone is snapping our dislocated joint back into place by hand with an aggro grab and help intent

door_crush

Getting smushed in an airlock/firelock is a last-ditch attempt to try relocating your limb

malpractice

If someone is snapping our dislocated joint into a fracture by hand with an aggro grab and harm or disarm intent

\ No newline at end of file diff --git a/datum/wound/blunt/robotic.html b/datum/wound/blunt/robotic.html new file mode 100644 index 0000000000000..f4c23ea410121 --- /dev/null +++ b/datum/wound/blunt/robotic.html @@ -0,0 +1,5 @@ +/datum/wound/blunt/robotic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

robotic

Vars

active_traumaIf we suffer severe head booboos, we can get brain traumas tied to them
aftershock_stopped_moving_score_multIf the victim stops moving before the aftershock, aftershock effects will be multiplied against this.
base_aftershock_camera_shake_durationThe base duration of a stagger's aftershock's camerashake.
base_aftershock_camera_shake_strengthThe base strength of a stagger's aftershock's camerashake.
base_movement_stagger_scoreThe base score given to stagger() when we successfully stagger on a move.
base_stagger_movement_shake_durationThe base duration of a stagger()'s sprite shaking if caused by movement.
base_stagger_shake_durationThe base duration of a stagger()'s sprite shaking.
brain_trauma_groupWhat brain trauma group, if any, we can draw from for head wounds
chest_attacked_stagger_chance_ratioThe ratio of damage to stagger chance on hit.
chest_attacked_stagger_minimum_scoreThe minimum score an attack must do to trigger a stagger.
chest_attacked_stagger_multThe ratio damage applied will be multiplied against for determining our stagger score.
chest_movement_stagger_chanceThe base chance of moving to trigger stagger().
last_time_victim_movedThe last time our victim has moved. Used for determining if we should increase or decrease the chance of having stagger aftershock.
limb_burn_percent_to_max_threshold_for_malleableThe percent our limb must get to max possible damage by burn damage alone to count as malleable if it has no T2 burn wound.
movement_stagger_cooldownWhenever an oscillation is triggered by movement, we wait 4 seconds before trying to do another.
movement_stagger_shiftThe amount of x and y pixels we will be shaken around by during a movement stagger.
next_trauma_cycleIf we deal brain traumas, when is the next one due?
oscillatingIf we are currently oscillating. If true, we cannot stagger().
percussive_maintenance_damage_maxDamage must be under this to proc percussive maintenance.
percussive_maintenance_damage_minDamage must be over this to proc percussive maintenance.
percussive_maintenance_repair_chance% chance for hitting our limb to fix something.
stagger_aftershock_knockdown_movement_ratioIn the stagger after shock, the stagger score will be multiplied against this (if caused by movement) for determining how long we are knocked down for.
stagger_aftershock_knockdown_ratioIn the stagger aftershock, the stagger score will be multiplied against for determining how long we are knocked down for.
stagger_camera_shake_chance_ratioThe ratio of stagger score to camera shake chance.
stagger_drop_chance_ratioIn the stagger aftershock, the stagger score will be multiplied against for determining the chance of dropping held items.
stagger_fall_chance_ratioIn the stagger aftershock, the stagger score will be multiplied against for determining the chance of falling over.
stagger_movement_chance_ratioThe ratio stagger score will be multiplied against for determining the final chance of moving away from the attacker.
stagger_score_to_shake_duration_ratioThe ratio of stagger score to shake duration during a stagger() call
stagger_shake_shift_ratioThe ratio stagger score will be multiplied against for determining the amount of pixelshifting we will do when we are hit.
time_til_next_movement_shake_allowedThe time, in world time, that we will be allowed to do another movement shake. Useful because it lets us prioritize attacked shakes over movement shakes.
trauma_cycle_cooldownHow long do we wait +/- 20% for the next trauma?

Procs

aftershockTimer proc from stagger().
get_buckled_movement_consequence_multReturns a multiplier to our movement effects based on what our victim is buckled to.
get_overheat_woundIf we have one, returns a robotic overheat wound of severe severity or higher. Null otherwise.
handle_percussive_maintenance_failureCalled when percussive maintenance fails at its random roll.
handle_percussive_maintenance_successCalled when percussive maintenance succeeds at its random roll.
limb_malleableIf true, allows our superstructure to be modified if we are T3. RCDs can always fix our superstructure.
staggerCauses an oscillation, which 1. has a chance to move our victim away from the attacker, and 2. after a delay, calls aftershock().
uses_percussive_maintenanceIf this wound can be treated in its current state by just hitting it with a low force object. Exists for conditional logic, e.g. "Should we respond +to percussive maintenance right now?". Critical blunt uses this to only react when the limb is malleable and superstructure is broken.
victim_attackedSignal handler proc to when our victim has damage applied via apply_damage(), which is a external attack.
victim_movedSignal handler proc that applies movements affect to our victim if they were moved.

Var Details

active_trauma

If we suffer severe head booboos, we can get brain traumas tied to them

aftershock_stopped_moving_score_mult

If the victim stops moving before the aftershock, aftershock effects will be multiplied against this.

base_aftershock_camera_shake_duration

The base duration of a stagger's aftershock's camerashake.

base_aftershock_camera_shake_strength

The base strength of a stagger's aftershock's camerashake.

base_movement_stagger_score

The base score given to stagger() when we successfully stagger on a move.

base_stagger_movement_shake_duration

The base duration of a stagger()'s sprite shaking if caused by movement.

base_stagger_shake_duration

The base duration of a stagger()'s sprite shaking.

brain_trauma_group

What brain trauma group, if any, we can draw from for head wounds

chest_attacked_stagger_chance_ratio

The ratio of damage to stagger chance on hit.

chest_attacked_stagger_minimum_score

The minimum score an attack must do to trigger a stagger.

chest_attacked_stagger_mult

The ratio damage applied will be multiplied against for determining our stagger score.

chest_movement_stagger_chance

The base chance of moving to trigger stagger().

last_time_victim_moved

The last time our victim has moved. Used for determining if we should increase or decrease the chance of having stagger aftershock.

limb_burn_percent_to_max_threshold_for_malleable

The percent our limb must get to max possible damage by burn damage alone to count as malleable if it has no T2 burn wound.

movement_stagger_cooldown

Whenever an oscillation is triggered by movement, we wait 4 seconds before trying to do another.

movement_stagger_shift

The amount of x and y pixels we will be shaken around by during a movement stagger.

next_trauma_cycle

If we deal brain traumas, when is the next one due?

oscillating

If we are currently oscillating. If true, we cannot stagger().

percussive_maintenance_damage_max

Damage must be under this to proc percussive maintenance.

percussive_maintenance_damage_min

Damage must be over this to proc percussive maintenance.

percussive_maintenance_repair_chance

% chance for hitting our limb to fix something.

stagger_aftershock_knockdown_movement_ratio

In the stagger after shock, the stagger score will be multiplied against this (if caused by movement) for determining how long we are knocked down for.

stagger_aftershock_knockdown_ratio

In the stagger aftershock, the stagger score will be multiplied against for determining how long we are knocked down for.

stagger_camera_shake_chance_ratio

The ratio of stagger score to camera shake chance.

stagger_drop_chance_ratio

In the stagger aftershock, the stagger score will be multiplied against for determining the chance of dropping held items.

stagger_fall_chance_ratio

In the stagger aftershock, the stagger score will be multiplied against for determining the chance of falling over.

stagger_movement_chance_ratio

The ratio stagger score will be multiplied against for determining the final chance of moving away from the attacker.

stagger_score_to_shake_duration_ratio

The ratio of stagger score to shake duration during a stagger() call

stagger_shake_shift_ratio

The ratio stagger score will be multiplied against for determining the amount of pixelshifting we will do when we are hit.

time_til_next_movement_shake_allowed

The time, in world time, that we will be allowed to do another movement shake. Useful because it lets us prioritize attacked shakes over movement shakes.

trauma_cycle_cooldown

How long do we wait +/- 20% for the next trauma?

Proc Details

aftershock

Timer proc from stagger().

+

Based on chance, causes items to be dropped, knockdown to be applied, and/or screenshake to occur. +Chance is massively reduced if the victim isn't moving.

get_buckled_movement_consequence_mult

Returns a multiplier to our movement effects based on what our victim is buckled to.

get_overheat_wound

If we have one, returns a robotic overheat wound of severe severity or higher. Null otherwise.

handle_percussive_maintenance_failure

Called when percussive maintenance fails at its random roll.

handle_percussive_maintenance_success

Called when percussive maintenance succeeds at its random roll.

limb_malleable

If true, allows our superstructure to be modified if we are T3. RCDs can always fix our superstructure.

stagger

Causes an oscillation, which 1. has a chance to move our victim away from the attacker, and 2. after a delay, calls aftershock().

uses_percussive_maintenance

If this wound can be treated in its current state by just hitting it with a low force object. Exists for conditional logic, e.g. "Should we respond +to percussive maintenance right now?". Critical blunt uses this to only react when the limb is malleable and superstructure is broken.

victim_attacked

Signal handler proc to when our victim has damage applied via apply_damage(), which is a external attack.

victim_moved

Signal handler proc that applies movements affect to our victim if they were moved.

\ No newline at end of file diff --git a/datum/wound/blunt/robotic/moderate.html b/datum/wound/blunt/robotic/moderate.html new file mode 100644 index 0000000000000..02e3a8c138d71 --- /dev/null +++ b/datum/wound/blunt/robotic/moderate.html @@ -0,0 +1 @@ +/datum/wound/blunt/robotic/moderate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

moderate

Procs

fasten_screwsThe main treatment for T1 blunt. Uses a screwdriver, guaranteed to always work, better with a diag hud. Removes the wound.

Proc Details

fasten_screws

The main treatment for T1 blunt. Uses a screwdriver, guaranteed to always work, better with a diag hud. Removes the wound.

\ No newline at end of file diff --git a/datum/wound/blunt/robotic/secures_internals.html b/datum/wound/blunt/robotic/secures_internals.html new file mode 100644 index 0000000000000..708e3b5801a2a --- /dev/null +++ b/datum/wound/blunt/robotic/secures_internals.html @@ -0,0 +1,12 @@ +/datum/wound/blunt/robotic/secures_internals - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

secures_internals

A subtype of blunt wounds that has a "secure internals" step

Vars

crowbarred_openIf our external plating has been torn open and we can access our internals without a tool
gel_damageTotal brute damage taken over the span of [regen_time_needed] deciseconds when we gel our limb.
gelledIf we have used bone gel to secure internals.
ready_to_resolderIf internals are secured, and we are ready to weld our limb closed and end the wound
ready_to_secure_internalsIf we are ready to begin screwdrivering or gelling our limb.
regen_time_elapsedOur current counter for gel + gauze regeneration
regen_time_neededTime needed for gel to secure internals.

Procs

apply_gel"Premium" ghetto option of the secure internals step for T2/T3. Requires bone gel. Guaranteed to work. +Deals damage over time and disables the limb, but finishes the step afterwards.
crowbar_openAvailable during the "secure internals" step of T2 and T3. Requires a crowbar. Low-quality ghetto option.
get_wound_statusReturns info specific to the dynamic state of the wound.
get_wound_step_infoReturns a string with our current treatment step for use in health analyzers.
item_can_secure_internalsReturns TRUE if the item can be used in our 1st step (2nd if T3) of repairs.
resolderThe final step of T2/T3, requires a welder/cautery. Guaranteed to work. Cautery is slower. +Once complete, removes the wound entirely.
secure_internals_normallyThe primary way of performing the secure internals step for T2/T3. Uses a screwdriver/wrench. Very hard to do by yourself, or without a diag hud/wire knowledge. +Roboticists/engineers have a very high chance of succeeding. +Deals some brute damage on failure, but moves to the final step of treatment (re-soldering) on success.
set_torn_openSets [crowbarred_open] to the new value. If we werent originally disabling, or if we arent currently and we're torn open, we set disabling to true.

Var Details

crowbarred_open

If our external plating has been torn open and we can access our internals without a tool

gel_damage

Total brute damage taken over the span of [regen_time_needed] deciseconds when we gel our limb.

gelled

If we have used bone gel to secure internals.

ready_to_resolder

If internals are secured, and we are ready to weld our limb closed and end the wound

ready_to_secure_internals

If we are ready to begin screwdrivering or gelling our limb.

regen_time_elapsed

Our current counter for gel + gauze regeneration

regen_time_needed

Time needed for gel to secure internals.

Proc Details

apply_gel

"Premium" ghetto option of the secure internals step for T2/T3. Requires bone gel. Guaranteed to work. +Deals damage over time and disables the limb, but finishes the step afterwards.

crowbar_open

Available during the "secure internals" step of T2 and T3. Requires a crowbar. Low-quality ghetto option.

+

Tears open the limb, exposing internals. This massively increases the chance of secure internals succeeding, and removes the self-tend malice.

+

Deals significant damage to the limb, and shocks the user (causing failure) if victim is alive, this limb is wired, and user is not insulated.

get_wound_status

Returns info specific to the dynamic state of the wound.

get_wound_step_info

Returns a string with our current treatment step for use in health analyzers.

item_can_secure_internals

Returns TRUE if the item can be used in our 1st step (2nd if T3) of repairs.

resolder

The final step of T2/T3, requires a welder/cautery. Guaranteed to work. Cautery is slower. +Once complete, removes the wound entirely.

secure_internals_normally

The primary way of performing the secure internals step for T2/T3. Uses a screwdriver/wrench. Very hard to do by yourself, or without a diag hud/wire knowledge. +Roboticists/engineers have a very high chance of succeeding. +Deals some brute damage on failure, but moves to the final step of treatment (re-soldering) on success.

+

If [crowbarred_open], made far more likely and remove the self-tend malice.

set_torn_open

Sets [crowbarred_open] to the new value. If we werent originally disabling, or if we arent currently and we're torn open, we set disabling to true.

\ No newline at end of file diff --git a/datum/wound/blunt/robotic/secures_internals/critical.html b/datum/wound/blunt/robotic/secures_internals/critical.html new file mode 100644 index 0000000000000..ec95d4713b53a --- /dev/null +++ b/datum/wound/blunt/robotic/secures_internals/critical.html @@ -0,0 +1,15 @@ +/datum/wound/blunt/robotic/secures_internals/critical - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

critical

Vars

superstructure_remediedHas the first stage of our treatment been completed? E.g. RCDed, manually molded...

Procs

heat_metalA "safe" way to give our victim a T2 burn wound. Requires an aggrograb, and a welder. This is required to mold metal, the 1st step of treatment. +Guaranteed to work. After a delay, causes a T2 burn wound with no damage. +Can be sabotaged by enabling combat mode to cause a T3.
mold_metalStandard treatment for 1st step of T3, after the limb has been made malleable. Done via aggrograb. +High chance to work, very high with robo/engi wires and diag hud. +Can be sabotaged by switching to combat mode. +Deals brute to the limb on failure. +Burns the hand of the user if its not insulated.
plungeGoofy but practical, this is the superior ghetto self-tend of T3's first step compared to percussive maintenance. +Still requires the limb to be malleable, but has a high chance of success and doesn't burn your hand, but gives worse bonuses for wires/HUD.
rcd_superstructureThe "premium" treatment for 1st step of T3. Requires an RCD. Guaranteed to work, but can cause damage if delay is high.
set_superstructure_statusTransitions our steps by setting both superstructure and secure internals readiness.

Var Details

superstructure_remedied

Has the first stage of our treatment been completed? E.g. RCDed, manually molded...

Proc Details

heat_metal

A "safe" way to give our victim a T2 burn wound. Requires an aggrograb, and a welder. This is required to mold metal, the 1st step of treatment. +Guaranteed to work. After a delay, causes a T2 burn wound with no damage. +Can be sabotaged by enabling combat mode to cause a T3.

mold_metal

Standard treatment for 1st step of T3, after the limb has been made malleable. Done via aggrograb. +High chance to work, very high with robo/engi wires and diag hud. +Can be sabotaged by switching to combat mode. +Deals brute to the limb on failure. +Burns the hand of the user if its not insulated.

plunge

Goofy but practical, this is the superior ghetto self-tend of T3's first step compared to percussive maintenance. +Still requires the limb to be malleable, but has a high chance of success and doesn't burn your hand, but gives worse bonuses for wires/HUD.

rcd_superstructure

The "premium" treatment for 1st step of T3. Requires an RCD. Guaranteed to work, but can cause damage if delay is high.

set_superstructure_status

Transitions our steps by setting both superstructure and secure internals readiness.

\ No newline at end of file diff --git a/datum/wound/burn/flesh.html b/datum/wound/burn/flesh.html new file mode 100644 index 0000000000000..0718980b47735 --- /dev/null +++ b/datum/wound/burn/flesh.html @@ -0,0 +1 @@ +/datum/wound/burn/flesh - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

flesh

Vars

flesh_damageHow much damage to our flesh we currently have. Once both this and infestation reach 0, the wound is considered healed
flesh_healingOur current counter for how much flesh regeneration we have stacked from regenerative mesh/synthflesh/whatever, decrements each tick and lowers flesh_damage
infestationOur current level of infection
infestation_rateHow quickly infection breeds on this burn if we don't have disinfectant
sanitizationOur current level of sanitization/anti-infection, from disinfectants/alcohol/UV lights. While positive, totally pauses and slowly reverses infestation effects each tick
strikes_to_lose_limbOnce we reach infestation beyond WOUND_INFESTATION_SEPSIS, we get this many warnings before the limb is completely paralyzed (you'd have to ignore a really bad burn for a really long time for this to happen)

Procs

ointmentmeshif someone is using ointment or mesh on our burns
uvParamedic UV penlights

Var Details

flesh_damage

How much damage to our flesh we currently have. Once both this and infestation reach 0, the wound is considered healed

flesh_healing

Our current counter for how much flesh regeneration we have stacked from regenerative mesh/synthflesh/whatever, decrements each tick and lowers flesh_damage

infestation

Our current level of infection

infestation_rate

How quickly infection breeds on this burn if we don't have disinfectant

sanitization

Our current level of sanitization/anti-infection, from disinfectants/alcohol/UV lights. While positive, totally pauses and slowly reverses infestation effects each tick

strikes_to_lose_limb

Once we reach infestation beyond WOUND_INFESTATION_SEPSIS, we get this many warnings before the limb is completely paralyzed (you'd have to ignore a really bad burn for a really long time for this to happen)

Proc Details

ointmentmesh

if someone is using ointment or mesh on our burns

uv

Paramedic UV penlights

\ No newline at end of file diff --git a/datum/wound/burn/robotic/overheat.html b/datum/wound/burn/robotic/overheat.html new file mode 100644 index 0000000000000..aa6fee8c9dbd1 --- /dev/null +++ b/datum/wound/burn/robotic/overheat.html @@ -0,0 +1,5 @@ +/datum/wound/burn/robotic/overheat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

overheat

Vars

base_reagent_temp_coefficientThe coefficient of heat transfer we will use when receiving heat from reagent contact.
bodytemp_coeffThe coefficient of heat transfer we will use when shifting our temp to the victim's.
bodytemp_difference_expose_bonus_ratioFor every degree below normal bodytemp, we will multiply our incoming temperature by 1 + degrees * this. Allows incentivization of freezing yourself instead of just waiting.
chassis_temperatureThe virtual temperature of the chassis. Crucial for many things, like our severity, the temp we transfer, our cooling damage, etc.
cooling_demote_bufferThe buffer in kelvin we will subtract from the chassis_temperature of a wound we demote to.
cooling_thresholdIf [chassis_temperature] goes below this, we reduce in severity.
demotes_toThe wound we demote to when we go below cooling threshold. If null, removes us.
heat_shock_delta_to_damage_ratioThe ratio of temp shift -> brute damage. Careful with this value, it can make stuff really really nasty.
heat_shock_minimum_deltaThe minimum heat difference we must have on reagent contact to cause heat shock damage.
heating_promote_bufferThe buffer in kelvin we will add to the chassis_temperature of a wound we promote to.
heating_thresholdIf [chassis_temperature] goes above this, we increase in severity.
highest_scarA bad system I'm using to track the worst scar we earned (since we can demote, we want the biggest our wound has been, not what it was when it was cured (probably moderate))
important_outgoing_multThe mult applied to heat output when we are on a important limb, e.g. head/torso.
incoming_damage_heat_coeffIf we are hit with burn damage, the damage will be multiplied against this to determine the effective heat we get.
light_colorThe color of the light we will generate.
light_powerThe power of the light we will generate.
light_rangeThe range of the light we will generate.
max_outgoing_temperatureThe maximum temperature we can cause by heating our victim.
mob_glowThe glow we have attached to our victim, to simulate our limb glowing.
outgoing_bodytemp_coeffThe coefficient of heat transfer we will use when shifting our victim's temp to ours.
promotes_toThe wound we promote to when we go above heating threshold.
reagent_types_to_extra_coolingA assoc list of (reagent typepath -> cooling), where cooling is how much its presence will reduce the effective temperature of a reagent spray for cooling us.
reagent_types_to_thermal_shock_multA assoc list of (reagent typepath -> damage mult), where the mult will be multiplied against the thermal shock damage.
sprayed_with_reagent_clothed_multIf we are sprayed with a extinguisher/shower with obscuring clothing on (think clothing that prevents surgery), the effect is multiplied against this.
starting_temperature_maxThe upper bound of the chassis_temperature we can start with.
starting_temperature_minThe lower bound of the chassis_temperature we can start with.
turf_coeffThe coefficient of heat transfer we will use when shifting our temp to a turf.

Procs

check_temperatureRemoves, demotes, or promotes ourselves to a new wound type if our temperature is past a heating/cooling threshold.
expose_temperatureAdjusts chassis_temperature by the delta between temperature and itself, multiplied by coeff. +If heat_shock is TRUE, limb will receive brute damage based on the delta.
get_wound_status_infoReturns a string with our temperature and heating/cooling thresholds, for use in health analyzers.
victim_attackedSignal proc for when our victim is externally attacked. Increases chassis temp based on burn damage received.
victim_exposed_to_reagentsSignal proc for when our victim is exposed to reagents, obviously.

Var Details

base_reagent_temp_coefficient

The coefficient of heat transfer we will use when receiving heat from reagent contact.

bodytemp_coeff

The coefficient of heat transfer we will use when shifting our temp to the victim's.

bodytemp_difference_expose_bonus_ratio

For every degree below normal bodytemp, we will multiply our incoming temperature by 1 + degrees * this. Allows incentivization of freezing yourself instead of just waiting.

chassis_temperature

The virtual temperature of the chassis. Crucial for many things, like our severity, the temp we transfer, our cooling damage, etc.

cooling_demote_buffer

The buffer in kelvin we will subtract from the chassis_temperature of a wound we demote to.

cooling_threshold

If [chassis_temperature] goes below this, we reduce in severity.

demotes_to

The wound we demote to when we go below cooling threshold. If null, removes us.

heat_shock_delta_to_damage_ratio

The ratio of temp shift -> brute damage. Careful with this value, it can make stuff really really nasty.

heat_shock_minimum_delta

The minimum heat difference we must have on reagent contact to cause heat shock damage.

heating_promote_buffer

The buffer in kelvin we will add to the chassis_temperature of a wound we promote to.

heating_threshold

If [chassis_temperature] goes above this, we increase in severity.

highest_scar

A bad system I'm using to track the worst scar we earned (since we can demote, we want the biggest our wound has been, not what it was when it was cured (probably moderate))

important_outgoing_mult

The mult applied to heat output when we are on a important limb, e.g. head/torso.

incoming_damage_heat_coeff

If we are hit with burn damage, the damage will be multiplied against this to determine the effective heat we get.

light_color

The color of the light we will generate.

light_power

The power of the light we will generate.

light_range

The range of the light we will generate.

max_outgoing_temperature

The maximum temperature we can cause by heating our victim.

mob_glow

The glow we have attached to our victim, to simulate our limb glowing.

outgoing_bodytemp_coeff

The coefficient of heat transfer we will use when shifting our victim's temp to ours.

promotes_to

The wound we promote to when we go above heating threshold.

reagent_types_to_extra_cooling

A assoc list of (reagent typepath -> cooling), where cooling is how much its presence will reduce the effective temperature of a reagent spray for cooling us.

reagent_types_to_thermal_shock_mult

A assoc list of (reagent typepath -> damage mult), where the mult will be multiplied against the thermal shock damage.

sprayed_with_reagent_clothed_mult

If we are sprayed with a extinguisher/shower with obscuring clothing on (think clothing that prevents surgery), the effect is multiplied against this.

starting_temperature_max

The upper bound of the chassis_temperature we can start with.

starting_temperature_min

The lower bound of the chassis_temperature we can start with.

turf_coeff

The coefficient of heat transfer we will use when shifting our temp to a turf.

Proc Details

check_temperature

Removes, demotes, or promotes ourselves to a new wound type if our temperature is past a heating/cooling threshold.

expose_temperature

Adjusts chassis_temperature by the delta between temperature and itself, multiplied by coeff. +If heat_shock is TRUE, limb will receive brute damage based on the delta.

get_wound_status_info

Returns a string with our temperature and heating/cooling thresholds, for use in health analyzers.

victim_attacked

Signal proc for when our victim is externally attacked. Increases chassis temp based on burn damage received.

victim_exposed_to_reagents

Signal proc for when our victim is exposed to reagents, obviously.

+

Equalizes temp to the reagent temp, but also causes thermal shock. Basically, does damage based on the temp differential. +Clothes reduce the effects massively. Hercuri reduces the thermal shock and gets a special temp buff.

\ No newline at end of file diff --git a/datum/wound/electrical_damage.html b/datum/wound/electrical_damage.html new file mode 100644 index 0000000000000..ef783c4bff86f --- /dev/null +++ b/datum/wound/electrical_damage.html @@ -0,0 +1,13 @@ +/datum/wound/electrical_damage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

electrical_damage

Vars

disable_at_intensity_multIf [get_intensity_mult()] is at or above this, the limb gets disabled. If null, it will never occur.
heat_differential_healing_multThe mult that heat differences between normal and bodytemp threshold is multiplied against. Controls passive heat healing.
heat_heal_message_chancePercent chance for a heat repair to give the victim a message.
heat_thresh_to_healThe bodyheat our victim must be at or above to start getting passive healing.
initial_sparks_amountHow many sparks do we spawn when we're gained?
intensityThe overall "intensity" of this wound. Goes up to [processing_full_shock_threshold], and is used for determining our effect scaling. Measured in deciseconds.
limb_unimportant_damage_multMult for our damage if we are unimportant.
limb_unimportant_progress_multMult for our progress if we are unimportant.
minimum_intensityIf [intensity] is at or below this, we remove ourselves.
overall_effect_multThe basic multiplier to all our effects. Damage, progress, etc.
process_shock_message_chanceThe chance for each processed shock to message the user.
process_shock_spark_count_maxHow many sparks we spawn if a shock sparks. Upper bound
process_shock_spark_count_minHow many sparks we spawn if a shock sparks. Lower bound
processing_full_shock_thresholdThe time, in deciseconds, it takes to reach 100% power.
processing_shock_power_per_second_maxHow much shock power we add to [processing_shock_power_this_tick] per tick. Upper bound
processing_shock_power_per_second_minHow much shock power we add to [processing_shock_power_this_tick] per tick. Lower bound
processing_shock_power_this_tickIn the case we get below 1 power, we add the power to this buffer and use it next tick.
processing_shock_spark_chanceThe chance for each processed shock to spark.
processing_shock_stun_chanceThe chance for each processed shock to stun the user.
seconds_per_intensity_multSimple mult for how much of real time is added to [intensity].
shock_immunity_self_damage_reductionHow much of our damage is reduced if the target is shock immune. Percent.
wire_repair_percentThe percent, in decimal, a successful wire use will reduce intensity by.
wirecut_repair_percentThe percent, in decimal, a successful wirecut use will reduce intensity by.

Procs

adjust_intensityChanges intensity by the given amount, and then updates our status, removing ourselves if fixed.
do_suture_repairsDoes a while loop that repairs us with cables. A proc for containing runtimes and allowing trait removal at all times.
do_wirecutter_repairsDoes a while loop that repairs us with a wirecutter. A proc for containing runtimes and allowing trait removal at all times.
fixedShould we remove ourselves?
get_base_multReturns the global multiplier used by both progress and damage.
get_damage_multReturns the multiplier used by the damage we deal.
get_heat_healingReturns how many deciseconds progress should be reduced by, based on the current heat of our victim's body.
get_intensity_multReturns the multiplier we apply to our outgoing damage based off our current intensity. Is always between 0-1.
get_progress_multReturns the multiplier used by our intensity progress. Intensity increment is multiplied against this.
get_wound_status_infoReturns a string with our fault intensity and threshold to removal for use in health analyzers.
modify_progress_after_progress_multIs called after seconds_for_intensity is modified by get_progress_mult().
remove_if_fixedIf fixed() is true, we remove ourselves and return TRUE. FALSE otherwise.
suture_wiresThe "trauma" treatment, done with cables/sutures. Sutures get a debuff. +Low self-tend penalty. +Very fast, but low value. Eats up wires for breakfast. +Has limited wire/HUD bonuses. If you're a robo, use a wirecutter instead.
wirecutThe "proper" treatment, done with wirecutters/retractors. Retractors get a debuff. +High self-tend penalty. +Slow, but high value. +Has high wire/HUD bonuses. The ideal treatment for a robo.
zapWrapper for electrocute_act

Var Details

disable_at_intensity_mult

If [get_intensity_mult()] is at or above this, the limb gets disabled. If null, it will never occur.

heat_differential_healing_mult

The mult that heat differences between normal and bodytemp threshold is multiplied against. Controls passive heat healing.

heat_heal_message_chance

Percent chance for a heat repair to give the victim a message.

heat_thresh_to_heal

The bodyheat our victim must be at or above to start getting passive healing.

initial_sparks_amount

How many sparks do we spawn when we're gained?

intensity

The overall "intensity" of this wound. Goes up to [processing_full_shock_threshold], and is used for determining our effect scaling. Measured in deciseconds.

limb_unimportant_damage_mult

Mult for our damage if we are unimportant.

limb_unimportant_progress_mult

Mult for our progress if we are unimportant.

minimum_intensity

If [intensity] is at or below this, we remove ourselves.

overall_effect_mult

The basic multiplier to all our effects. Damage, progress, etc.

process_shock_message_chance

The chance for each processed shock to message the user.

process_shock_spark_count_max

How many sparks we spawn if a shock sparks. Upper bound

process_shock_spark_count_min

How many sparks we spawn if a shock sparks. Lower bound

processing_full_shock_threshold

The time, in deciseconds, it takes to reach 100% power.

processing_shock_power_per_second_max

How much shock power we add to [processing_shock_power_this_tick] per tick. Upper bound

processing_shock_power_per_second_min

How much shock power we add to [processing_shock_power_this_tick] per tick. Lower bound

processing_shock_power_this_tick

In the case we get below 1 power, we add the power to this buffer and use it next tick.

processing_shock_spark_chance

The chance for each processed shock to spark.

processing_shock_stun_chance

The chance for each processed shock to stun the user.

seconds_per_intensity_mult

Simple mult for how much of real time is added to [intensity].

shock_immunity_self_damage_reduction

How much of our damage is reduced if the target is shock immune. Percent.

wire_repair_percent

The percent, in decimal, a successful wire use will reduce intensity by.

wirecut_repair_percent

The percent, in decimal, a successful wirecut use will reduce intensity by.

Proc Details

adjust_intensity

Changes intensity by the given amount, and then updates our status, removing ourselves if fixed.

do_suture_repairs

Does a while loop that repairs us with cables. A proc for containing runtimes and allowing trait removal at all times.

do_wirecutter_repairs

Does a while loop that repairs us with a wirecutter. A proc for containing runtimes and allowing trait removal at all times.

fixed

Should we remove ourselves?

get_base_mult

Returns the global multiplier used by both progress and damage.

get_damage_mult

Returns the multiplier used by the damage we deal.

get_heat_healing

Returns how many deciseconds progress should be reduced by, based on the current heat of our victim's body.

get_intensity_mult

Returns the multiplier we apply to our outgoing damage based off our current intensity. Is always between 0-1.

get_progress_mult

Returns the multiplier used by our intensity progress. Intensity increment is multiplied against this.

get_wound_status_info

Returns a string with our fault intensity and threshold to removal for use in health analyzers.

modify_progress_after_progress_mult

Is called after seconds_for_intensity is modified by get_progress_mult().

remove_if_fixed

If fixed() is true, we remove ourselves and return TRUE. FALSE otherwise.

suture_wires

The "trauma" treatment, done with cables/sutures. Sutures get a debuff. +Low self-tend penalty. +Very fast, but low value. Eats up wires for breakfast. +Has limited wire/HUD bonuses. If you're a robo, use a wirecutter instead.

wirecut

The "proper" treatment, done with wirecutters/retractors. Retractors get a debuff. +High self-tend penalty. +Slow, but high value. +Has high wire/HUD bonuses. The ideal treatment for a robo.

zap

Wrapper for electrocute_act

\ No newline at end of file diff --git a/datum/wound/loss.html b/datum/wound/loss.html new file mode 100644 index 0000000000000..2966f6ff9c150 --- /dev/null +++ b/datum/wound/loss.html @@ -0,0 +1 @@ +/datum/wound/loss - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

loss

Vars

loss_wounding_typeThe wounding_type of the attack that caused us. Used to generate the description of our scar. Currently unused, but primarily exists in case non-biological wounds are added.

Procs

apply_dismemberOur special proc for our special dismembering, the wounding type only matters for what text we have

Var Details

loss_wounding_type

The wounding_type of the attack that caused us. Used to generate the description of our scar. Currently unused, but primarily exists in case non-biological wounds are added.

Proc Details

apply_dismember

Our special proc for our special dismembering, the wounding type only matters for what text we have

\ No newline at end of file diff --git a/datum/wound/muscle.html b/datum/wound/muscle.html new file mode 100644 index 0000000000000..8af20a5bd58bf --- /dev/null +++ b/datum/wound/muscle.html @@ -0,0 +1 @@ +/datum/wound/muscle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

muscle

Vars

regen_ticks_currentOur current counter for healing
regen_ticks_neededHow much do we need to regen. Will regen faster if we're splinted and or laying down

Procs

attack_with_hurt_handIf we're a human who's punching something with a broken arm, we might hurt ourselves doing so

Var Details

regen_ticks_current

Our current counter for healing

regen_ticks_needed

How much do we need to regen. Will regen faster if we're splinted and or laying down

Proc Details

attack_with_hurt_hand

If we're a human who's punching something with a broken arm, we might hurt ourselves doing so

\ No newline at end of file diff --git a/datum/wound/pierce/bleed.html b/datum/wound/pierce/bleed.html new file mode 100644 index 0000000000000..b0888d465fc8b --- /dev/null +++ b/datum/wound/pierce/bleed.html @@ -0,0 +1 @@ +/datum/wound/pierce/bleed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bleed

Vars

gauzed_clot_rateIf gauzed, what percent of the internal bleeding actually clots of the total absorption rate
initial_flowHow much blood we start losing when this wound is first applied
internal_bleeding_chanceWhen hit on this bodypart, we have this chance of losing some blood + the incoming damage
internal_bleeding_coefficientIf we let off blood when hit, the max blood lost is this * the incoming damage

Procs

sutureIf someone is using a suture to close this puncture
tool_cauterizeIf someone is using either a cautery tool or something with heat to cauterize this pierce

Var Details

gauzed_clot_rate

If gauzed, what percent of the internal bleeding actually clots of the total absorption rate

initial_flow

How much blood we start losing when this wound is first applied

internal_bleeding_chance

When hit on this bodypart, we have this chance of losing some blood + the incoming damage

internal_bleeding_coefficient

If we let off blood when hit, the max blood lost is this * the incoming damage

Proc Details

suture

If someone is using a suture to close this puncture

tool_cauterize

If someone is using either a cautery tool or something with heat to cauterize this pierce

\ No newline at end of file diff --git a/datum/wound/slash/flesh.html b/datum/wound/slash/flesh.html new file mode 100644 index 0000000000000..944eece021dac --- /dev/null +++ b/datum/wound/slash/flesh.html @@ -0,0 +1 @@ +/datum/wound/slash/flesh - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

flesh

Vars

clot_rateHow much our blood_flow will naturally decrease per second, not only do larger cuts bleed more blood faster, they clot slower (higher number = clot quicker, negative = opening up)
demotes_toOnce the blood flow drops below minimum_flow, we demote it to this type of wound. If there's none, we're all better
highest_flowThe maximum flow we've had so far
highest_scarA bad system I'm using to track the worst scar we earned (since we can demote, we want the biggest our wound has been, not what it was when it was cured (probably moderate))
initial_flowHow much blood we start losing when this wound is first applied
minimum_flowWhen we have less than this amount of flow, either from treatment or clotting, we demote to a lower cut or are healed of the wound

Procs

las_cauterizeIf someone's putting a laser gun up to our cut to cauterize it
lick_woundsif a felinid is licking this cut to reduce bleeding
sutureIf someone is using a suture to close this cut
tool_cauterizeIf someone is using either a cautery tool or something with heat to cauterize this cut

Var Details

clot_rate

How much our blood_flow will naturally decrease per second, not only do larger cuts bleed more blood faster, they clot slower (higher number = clot quicker, negative = opening up)

demotes_to

Once the blood flow drops below minimum_flow, we demote it to this type of wound. If there's none, we're all better

highest_flow

The maximum flow we've had so far

highest_scar

A bad system I'm using to track the worst scar we earned (since we can demote, we want the biggest our wound has been, not what it was when it was cured (probably moderate))

initial_flow

How much blood we start losing when this wound is first applied

minimum_flow

When we have less than this amount of flow, either from treatment or clotting, we demote to a lower cut or are healed of the wound

Proc Details

las_cauterize

If someone's putting a laser gun up to our cut to cauterize it

lick_wounds

if a felinid is licking this cut to reduce bleeding

suture

If someone is using a suture to close this cut

tool_cauterize

If someone is using either a cautery tool or something with heat to cauterize this cut

\ No newline at end of file diff --git a/datum/wound_pregen_data.html b/datum/wound_pregen_data.html new file mode 100644 index 0000000000000..c08e014d473b1 --- /dev/null +++ b/datum/wound_pregen_data.html @@ -0,0 +1,29 @@ +/datum/wound_pregen_data - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wound_pregen_data

A singleton datum that holds pre-gen and static data about a wound. Each wound datum should have a corresponding wound_pregen_data.

Vars

abstractWill this be instantiated?
can_be_randomly_generatedIf true, our wound can be selected in ordinary wound rolling. If this is set to false, our wound can only be directly instantiated by use of specific typepath.
compete_for_woundingIf true, we will attempt to, during a random wound roll, overpower and remove other wound typepaths from the possible wounds list using [competition_mode] and [overpower_wounds_of_even_severity].
competition_modeThe competition mode with which we will remove other wounds from a possible wound roll assuming [compete_for_wounding] is TRUE. See wounds.dm, the defines file, for more information on what these do.
duplicates_allowedIf false, we will iterate through wounds on a given limb, and if any match our type, we wont add our wound.
ignore_cannot_bleedIf we require BIO_BLOODED, we will not add our wound if this is true and the limb cannot bleed.
match_all_wounding_typesIf true, this wound can only be generated by all [required_wounding_types] at once, not just any.
overpower_wounds_of_even_severityIf this and [compete_for_wounding] is true, we will remove wounds of an even severity to us during a random wound roll.
require_any_biostateIf false, we will check if the limb has all of our required biostates instead of just any.
required_limb_biostateA list of biostates a limb must have to receive our wound, in wounds.dm.
required_wounding_typesThe types of attack that can generate this wound. E.g. WOUND_SLASH = A sharp attack can cause this, WOUND_BLUNT = an attack with no sharpness/an attack with sharpness against a limb with mangled exterior can cause this.
scar_prioritiesA list of BIO_ defines that will be iterated over in order to determine the scar file our wound will generate. +Use generate_scar_priorities to create a custom list.
threshold_minimumThe minimum injury roll a attack must get to generate us. Affected by our wound's threshold_penalty and series_threshold_penalty, as well as the attack's wound_bonus. See check_wounding_mods().
viable_zonesA list of bodyzones we are applicable to.
weightThe weight that will be used if, by the end of wound selection, there are multiple valid wounds. This will be inserted into pick_weight, so use integers.
wound_path_to_generateThe typepath of the wound we will be handling and storing data of. NECESSARY IF THIS IS A NON-ABSTRACT TYPE!
wound_seriesThe series of wounds this is in. See wounds.dm (the defines file) for a more detailed explanation - but tldr is that no 2 wounds of the same series can be on a limb.

Procs

biostate_validReturns true if we have the given biostates, or any biostate in it if check_for_any is true. False otherwise.
can_be_applied_toArgs:
generate_instanceReturns a new instance of our wound datum.
generate_scar_prioritiesShould return a list of BIO_ biostate priorities, in order. See [scar_priorities] for further documentation.
get_threshold_forA simple getter for [threshold_minimum], with arguments supplied to allow custom behavior.
get_weightA simple getter for [weight], with arguments supplied to allow custom behavior.
wounding_types_validReturns TRUE if we use WOUND_ALL, or we require all types and have all/if we require any and have any, FALSE otherwise.

Var Details

abstract

Will this be instantiated?

can_be_randomly_generated

If true, our wound can be selected in ordinary wound rolling. If this is set to false, our wound can only be directly instantiated by use of specific typepath.

compete_for_wounding

If true, we will attempt to, during a random wound roll, overpower and remove other wound typepaths from the possible wounds list using [competition_mode] and [overpower_wounds_of_even_severity].

competition_mode

The competition mode with which we will remove other wounds from a possible wound roll assuming [compete_for_wounding] is TRUE. See wounds.dm, the defines file, for more information on what these do.

duplicates_allowed

If false, we will iterate through wounds on a given limb, and if any match our type, we wont add our wound.

ignore_cannot_bleed

If we require BIO_BLOODED, we will not add our wound if this is true and the limb cannot bleed.

match_all_wounding_types

If true, this wound can only be generated by all [required_wounding_types] at once, not just any.

overpower_wounds_of_even_severity

If this and [compete_for_wounding] is true, we will remove wounds of an even severity to us during a random wound roll.

require_any_biostate

If false, we will check if the limb has all of our required biostates instead of just any.

required_limb_biostate

A list of biostates a limb must have to receive our wound, in wounds.dm.

required_wounding_types

The types of attack that can generate this wound. E.g. WOUND_SLASH = A sharp attack can cause this, WOUND_BLUNT = an attack with no sharpness/an attack with sharpness against a limb with mangled exterior can cause this.

scar_priorities

A list of BIO_ defines that will be iterated over in order to determine the scar file our wound will generate. +Use generate_scar_priorities to create a custom list.

threshold_minimum

The minimum injury roll a attack must get to generate us. Affected by our wound's threshold_penalty and series_threshold_penalty, as well as the attack's wound_bonus. See check_wounding_mods().

viable_zones

A list of bodyzones we are applicable to.

weight

The weight that will be used if, by the end of wound selection, there are multiple valid wounds. This will be inserted into pick_weight, so use integers.

wound_path_to_generate

The typepath of the wound we will be handling and storing data of. NECESSARY IF THIS IS A NON-ABSTRACT TYPE!

wound_series

The series of wounds this is in. See wounds.dm (the defines file) for a more detailed explanation - but tldr is that no 2 wounds of the same series can be on a limb.

Proc Details

biostate_valid

Returns true if we have the given biostates, or any biostate in it if check_for_any is true. False otherwise.

can_be_applied_to

Args:

+ +

Returns: +FALSE if the limb cannot be wounded, if the wounding types don't match ours (via wounding_types_valid()), if we have a higher severity wound already in our series, +if we have a biotype mismatch, if the limb isn't in a viable zone, or if there's any duplicate wound types. +TRUE otherwise.

generate_instance

Returns a new instance of our wound datum.

generate_scar_priorities

Should return a list of BIO_ biostate priorities, in order. See [scar_priorities] for further documentation.

get_threshold_for

A simple getter for [threshold_minimum], with arguments supplied to allow custom behavior.

+

Args:

+

get_weight

A simple getter for [weight], with arguments supplied to allow custom behavior.

+

Args:

+ +

Returns: +Our weight.

wounding_types_valid

Returns TRUE if we use WOUND_ALL, or we require all types and have all/if we require any and have any, FALSE otherwise.

\ No newline at end of file diff --git a/datum/z_pillar.html b/datum/z_pillar.html new file mode 100644 index 0000000000000..376232e9b7491 --- /dev/null +++ b/datum/z_pillar.html @@ -0,0 +1,10 @@ +/datum/z_pillar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

z_pillar

Grouping datum that manages transparency for a block of space +Setup to ease debugging, and to make add/remove operations cheaper

Vars

drawing_objectAssoc list of turfs using z holders in the form displayed turf -> z holder
turf_sourcesAssoc list in the form displayed turf -> list of sources

Procs

display_turfDisplays a turf from the z level below us on our level
hide_turfHides an existing turf from our vis_contents, or the vis_contents of the source if applicable
parent_clearedCalled when a transparent turf is cleared. We wait a tick, then check to see what +Kind of turf replaced our former holder, and resetup our visuals as desired +We do not need to do this for non transparent holders, because they will have their abstract object cleared +When a transparent holder comes back.
refresh_orphanRuns the actual refresh of some formerly orphaned via vis_loc deletiong turf +We'll only reup if we either have no souece, or if the source is a transparent turf

Var Details

drawing_object

Assoc list of turfs using z holders in the form displayed turf -> z holder

turf_sources

Assoc list in the form displayed turf -> list of sources

Proc Details

display_turf

Displays a turf from the z level below us on our level

hide_turf

Hides an existing turf from our vis_contents, or the vis_contents of the source if applicable

parent_cleared

Called when a transparent turf is cleared. We wait a tick, then check to see what +Kind of turf replaced our former holder, and resetup our visuals as desired +We do not need to do this for non transparent holders, because they will have their abstract object cleared +When a transparent holder comes back.

refresh_orphan

Runs the actual refresh of some formerly orphaned via vis_loc deletiong turf +We'll only reup if we either have no souece, or if the source is a transparent turf

\ No newline at end of file diff --git a/dmdoc.css b/dmdoc.css new file mode 100644 index 0000000000000..367f005d2a85d --- /dev/null +++ b/dmdoc.css @@ -0,0 +1,112 @@ +body { + margin: auto; + background: #f4f4f4; + color: #333333; + font-size: 16px; + line-height: 1.3; + max-width: 73%; + overflow-y: scroll; + font-family: Arial, Helvetica, sans-serif; +} +pre, code { + background: white; + tab-size: 4; + -moz-tab-size: 4; +} +pre { + padding: 8px; + white-space: pre-wrap; +} +code { + font-family: Consolas, "DejaVu Sans Mono", "Courier New", Courier, monospace; +} +a { + color: #333333; +} +article { + margin: 2.5% auto; +} +header, footer { + margin: 2.5% -6px; + border: 1px solid #444444; + border-radius: 5px; + padding: 5px; +} +h1 aside, h2 aside, h3 aside, h4 aside, h5 aside { + display: inline; + font-weight: normal; + font-size: smaller; +} +aside.declaration, aside.parent { + display: inline-block; + position: relative; + text-align: right; + width: 100px; + margin-right: -100px; + right: 105px; +} +aside.declaration { + font-style: italic; +} +table.summary tr:first-child > td > :first-child { + margin-top: 0; +} +table.summary tr:last-child > td > :last-child { + margin-bottom: 0; +} +table.summary th, table.summary td { + text-align: left; + vertical-align: top; + padding-left: 0; + padding-right: 1em; +} +table.summary th { + padding-left: 1em; + padding-bottom: 4px; + text-indent: -1em; +} +.no-substance { + color: #888888; +} +:target { + background-color: white; + border-radius: 5px; + padding-left: 3px; + padding-right: 3px; + margin-left: -3px; + margin-right: 3px; +} +img[src="git.png"] { + opacity: 0.8; +} +.expander { + cursor: pointer; + display: inline-block; + position: relative; + text-align: right; + width: 50px; + margin-right: -50px; + right: 53px; +} + +@media (prefers-color-scheme: dark) { + body { + background-color: #151520; + color: #e0e0e0; + } + a { + color: #e0e0e0; + } + header, footer { + border-color: #d0d0d0; + } + .no-substance { + color: #bbbbbb; + } + pre, code, :target { + background-color: #252530; + } + img[src="git.png"] { + filter: invert(1); + } +} diff --git a/dmdoc.js b/dmdoc.js new file mode 100644 index 0000000000000..6bf31f7e94411 --- /dev/null +++ b/dmdoc.js @@ -0,0 +1,58 @@ +// ---------------------------------------------------------------------------- +// Index page tree browsing + +document.addEventListener("DOMContentLoaded", function() { + var items = document.getElementsByClassName("index-tree"); + var nodes = []; + + for (var i = 0; i < items.length; ++i) { + var node = items[i]; + var parent = node.parentElement; + if (!parent || parent.tagName.toLowerCase() != "li") { + continue; + } + node.hidden = true; + parent.style.listStyle = "none"; + var expander = document.createElement("span"); + expander.className = "expander"; + expander.textContent = "\u2795"; + expander.addEventListener("click", function(node) { + return function(event) { + if (event.target.tagName.toLowerCase() == "a") { + return; + } + event.preventDefault(); + event.stopPropagation(true); + node.hidden = !node.hidden; + this.textContent = node.hidden ? "\u2795" : "\u2796"; + }; + }(node)); + + if (node.parentElement.parentElement.classList.contains("modules")) { + node.hidden = false; + expander.textContent = "\u2796"; + } + + parent.insertBefore(expander, parent.firstChild); + nodes.push({ node, expander }); + } + + if (nodes.length) { + var toggle = document.createElement("a"); + toggle.href = "#"; + toggle.appendChild(document.createTextNode("Toggle All")); + toggle.addEventListener("click", function(event) { + event.preventDefault(); + + var hidden = !nodes[1].node.hidden; + for (var i = 0; i < nodes.length; ++i) { + nodes[i].node.hidden = hidden; + nodes[i].expander.textContent = hidden ? "\u2795" : "\u2796"; + } + }); + + var header = document.getElementsByTagName("header")[0]; + header.appendChild(document.createTextNode(" \u2014 ")); + header.appendChild(toggle); + } +}); diff --git a/git.png b/git.png new file mode 100644 index 0000000000000000000000000000000000000000..c190e8538b5c10d941a5527d6cd86cf088502733 GIT binary patch literal 2383 zcmb_edsGuw8o!ev4?qHLT``Cz^-=7uB0>*HMP}Aw@h!E|Ajk>IT2LP0Er?`BrH9h0 zAoYRZA@+dPvsR@=2?e?{)w(<)gk8jH1rj#6krhZt*yc6K?2PB^>Hf3b)9%js=Kk*d zzTY?B_uYHuo~ex65$od>-~|Bi*}N%c7XT2(-U66m&eui8GY}THZTCh7f9}=DeY=N= z@hjN1<6U41@f)~IqA9peQXQAmZ2Pqk0zlBQIp%k}i=oLspV+q%0wgKdPa#=ZVfPP| z4?kD6%2tQpE79N2Mi!N&CiZvT8#!Gn{p0na_lukQdM_H&zg*Ce-dbQ#C;4h_TMQZX zi!0LVx372fx?09Qct7bvjZ1neD4OepJYL%Golw(H+HGek_{Byu-ADlN066e~{xt)( z2#iUZmJhZ|<^Lu7Pt^9%3C;d!h%o2wXqjZsNANrI$~N%IonO&I{pE6bXku<7I~^6UnH?lSDA3~xW&VC4@aay)c)7xXX< zUu`=E)QcrRBY)2@HnNOB@I#k@!Yu;NV&QpffkwmYUKfBHuEHyMJe}PRB1E{s0M83y zJp2ToIi$q`1uS5x&v_mncFT);T6i9U9_5!&PfvO?PG9f@2atWLMlP11s6suQ5fTkF zvhm^lD4s(V^{#_C<$6`H(aTQ~NZc^r6!|mna_xjUF?!X;(Lxp@a@|KkgErKl;p^;K zT$c+fR*cfAD4tHW=4uc-h$0G0F3b`5ozh0V^DYNQQB zAvA=B1~Zk*@c9xnMsd9kLKQ8kJc<3rAs(>zofqNbs?S7VJfb5F)Mzs=LYov@OIT0u z9MYr#Q8d$U{nS<*yg?rg=(RY%J1t;}q5A`w^)t%;5Q#E%67jjP&0az;M*)HuwXFc6 zs7_*|K*#j8)Wc-4xaV?Mzkubja-dL*A{$t#_*Gn~v{w0%8jUmd=gIkk>W{f5Y(K!o zCM@U2(aK$MNB)BDa4?$y+aN3rFS_YC^x`WR%KPF&cWciVSA?Fx)aZ7DH~Z&8K=DW` zMq?NH0bK>N%D1mT4E0zmPI(>X0IHcl&}?>s6H7tPx+FGL0-MUpUoiQ}>A8kkv%8Vg zbOuuouR2Lz124!|3g>^UM^=)N(+SV!cVh{7XVshUq_v=KJtwpACR)0TJ_h};#u~qO zRSok>$~#VLP>z3J8;j3I(~h%O(fIbsGPnBOY{SJScQn0hy@B&^)IgU!c$!m`fhp-# z>z^%0&wZ`IhVn-}jx=J5e%GbJg|2@DVx^zb!DhvgLE;08RqhDVhr85x)3IChefLb= z4t=tFQH05u;S$ZdjbZ&O-gksH{!S%Mukx z?}sAvfncOUzi<6?Cy;`LjH5PtdD(|?+x=C^3xi&CJY}t!X$d(6_v$uZb zpW={KdWX2Kf6J|P$N!bHjs8t8^cnVlk$EjjF+LgdHC4>1ZXdVZeT@`{l0h$|NrxMd z9K2v6LLJm6UW-Ns9^S^Yo#3TEajqU`4w@N)NWMZsb$Xe=6zdZgTC^*OIdV36A5QdT zunlkQJ*bGr>CT3w5Va3(dJF3inksw-&RERFEKm0P=zIfoXVW}&RU%z=+9I8==yLZR zm;v2+IagP;KvyjfBE=zOu;D!%Nx`c+VH?bQZqDZ0^xU@bWSD`3XCt2MGSfm+m$&3w zC3DP~+);=)1#*=rqRGEo`Angm7%P2lzKJv2;<%EpfsQhft%F1lrJd`$M3v_Xj`lPri4CU zEG)y3OpuZENVU$9{fTxisoE(cnu-4X;r3*R+DhMv_2&yw$ZtdCwqeJuqN&@{*pfJo zeCFYV%u6uvTM6#$g4<*`4yMJvIt9exv|&-WlPeJD+%sU>U-BOX!z*6OavE9jzm4}j z1plLHAGGFMrS*Nc_7mXK+Fxj6$SWzij%Jvyzp>M(+GEx}Dabu?b>t-U#Jv4jrs(YU uu*mfpirO`AcnbGKEqUPIF?8O0O4v1cuzhf6?OOJ?X!FJ$F*i4)9RDY%f@^R9 literal 0 HcmV?d00001 diff --git a/global.html b/global.html new file mode 100644 index 0000000000000..478eb274211ef --- /dev/null +++ b/global.html @@ -0,0 +1,2286 @@ +(global) - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

/(global)

Vars

FailsafeFailsafe
MasterStonedMC
SSaccessoriessubsystem that just holds lists of sprite accessories for accession in generating said sprites. +A sprite accessory is something that we add to a human sprite to make them look different. This is hair, facial hair, underwear, mutant bits, etc.
SSacidThe subsystem used to tick /datum/component/acid instances.
SSai_behaviorsThe subsystem used to tick /datum/ai_behavior instances. Handling the individual actions an AI can take like punching someone in the fucking NUTS
SSai_controllersThe subsystem used to tick /datum/ai_controllers instances. Handling the re-checking of plans.
SSai_movementThe subsystem used to tick /datum/ai_movement instances. Handling the movement of individual AI instances
SSambienceThe subsystem used to play ambience to users every now and then, makes them real excited.
SSarea_contentsResponsible for managing the sizes of area.contained_turfs and area.turfs_to_uncontain +These lists do not check for duplicates, which is fine, but it also means they can balloon in size over time +as a consequence of repeated changes in area in a space +They additionally may not always resolve often enough to avoid memory leaks +This is annoying, so lets keep an eye on them and cut them down to size if needed
SSarmamentsArmament entries
SSasset_loadingAllows us to lazyload asset datums +Anything inserted here will fully load if directly gotten +So this just serves to remove the requirement to load assets fully during init
SSauraThe subsystem used to tick auras (/datum/component/aura_healing and /datum/component/damage_aura).
SSautomapperThe AUTOMAPPER
SSban_cacheSubsystem that batches a ban cache list for clients on initialize +This way we don't need to do ban checks in series later in the code
SSburningThe subsystem used to tick /datum/component/burning instances.
SScliff_fallingSubsystem to handle falling of off cliffs
SSclock_componentThe subsystem used to tick /datum/component/acid instances.
SSdigital_clockThe subsystem used to tick digital clocks
SSdiscord
SSearly_assetsInitializes any assets that need to be loaded ASAP. +This houses preference menu assets, since they can be loaded at any time, +most dangerously before the atoms SS initializes. +Thus, we want it to fail consistently in CI as if it would've if a player +opened it up early.
SSescape_menuSubsystem for controlling anything related to the escape menu
SSfishingsubsystem for the fishing minigame processing.
SSfluids
SSfoamThe subsystem responsible for processing foam propagation and effects.
SSgoldeneyeGoldenEye defence network
SShyperspace_driftThis subsystem handles the hyperspace shuttle pull movement loops
SSid_accessNon-processing subsystem that holds various procs and data structures to manage ID cards, trims and access.
SSinit_profilerSubsystem exists so we can separately log init time costs from the costs of general operation +Hopefully this makes sorting out what causes problems when easier
SSlag_switchThe subsystem for controlling drastic performance enhancements aimed at reducing server load for a smoother albeit slightly duller gaming experience
SSlibraryManages library data, loading bookselves, etc
SSlootingQueues image generation for search objects without icons
SSmouse_enteredDefers MouseEntered inputs to only apply to the most recently hovered over atom in the tick
SSnewtonian_movementThe subsystem is intended to tick things related to space/newtonian movement, such as constant sources of inertia
SSpathfinderQueues and manages JPS pathfinding steps
SSpoints_of_interestSubsystem for managing all POIs.
SSradioactive_nebulaControls making objects irradiated when Radioactive Nebula is in effect.
SSsinguloprocessVery rare subsystem, provides any active singularities with the timings and seclusion they need to succeed
SSsmokeThe subsystem responsible for processing smoke propagation and effects.
SSspatial_grid
SSspeech_controllerverb_manager subsystem just for handling say's
SStguitgui subsystem
SSticket_pingPings admins every (time chosen in config) for all open tickets/OPFOR applications
SStimer
SStutorialsNamespace for housing code relating to giving contextual tutorials to users.
SSunplanned_controllersHandles making mobs perform lightweight "idle" behaviors such as wandering around when they have nothing planned
SSverb_managerSSverb_manager, a subsystem that runs every tick and runs through its entire queue without yielding like SSinput. +this exists because of how the byond tick works and where user inputted verbs are put within it.
SSvoreUsed to handle global hooks like Login and process bellies
SSwardrobeThis subsystem strives to make loading large amounts of select objects as smooth at execution as possible +It preloads a set of types to store, and caches them until requested +Doesn't catch everything mind, this is intentional. There's many types that expect to either +A: Not sit in a list for 2 hours, or B: have extra context passed into them, or for their parent to be their location +You should absolutely not spam this system, it will break things in new and wonderful ways +S close enough for government work though. +Fuck you goonstation
SSweatherUsed for all kinds of weather, ex. lavaland ash storms.
SSwiremod_compositeThis subsystem is to handle creating and storing +composite templates that are used to create composite datatypes +for integrated circuits

Procs

GUIDreturns a GUID like identifier (using a mostly made up record format) +guids are not on their own suitable for access or security tokens, as most of their bits are predictable. +(But may make a nice salt to one)
GetBestWeaponReturns either the best weapon from the given choices or null if held weapons are better
GetTgsStealthKeyGets TGS's stealth key, generates one if none is found
GibberishTurn text into complete gibberish!
HandleUserlessProcCallHandles a userless proccall, used by circuits.
HandleUserlessSDQLHandles a userless sdql, used by circuits and tgs.
IsEdiblereturns if something can be consumed, drink or food
REF\ref behaviour got changed in 512 so this is necesary to replicate old behaviour. +If it ever becomes necesary to get a more performant REF(), this lies here in wait +#define REF(thing) (thing && isdatum(thing) && (thing:datum_flags & DF_USE_TAG) && thing:tag ? "[thing:tag]" : text_ref(thing))
RoundDiagBarDiagnostic HUDs!
WEAKREFCreates a weakref to the given input. +See /datum/weakref's documentation for more information.
WrapAdminProcCallWrapper for proccalls where the datum is flagged as vareditted
___TraitAddDO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
___TraitRemoveDO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
______qdel_list_wrapperthe underscores are to encourage people not to use this directly.
__check_serialization_semverChecks if the actual semver is equal or later than the wanted semver +Must be passed as TEXT; you're probably looking for CHECK_SERIALIZATION_SEMVER, look right above
__lua_awakenDequeues the task at the front of the sleep queue and resumes it
__lua_callCalls a lua function
__lua_get_globalsGet the variables within a state's environment. +Values not convertible to DM values are substituted +for their types as text
__lua_get_tasksGet a list of all tasks currently in progress within a state
__lua_kill_taskKills a task in progress
__lua_loadLoads a chunk of lua source code and executes it
__lua_new_stateCreates a new lua state.
__lua_resumeRemoves the task at the specified index from the yield table +and resumes it
__lua_set_datum_proc_call_wrapperSets a global proc to call in place of just outright calling a given proc on a datum
__lua_set_execution_limitSets the maximum amount of time a lua chunk or function can execute without sleeping or yielding. +Chunks/functions that exceed this duration will produce an error.
__lua_set_global_proc_call_wrapperSets a global proc to call in place of just outright calling a given global proc
__lua_set_print_wrapperSets a global proc as a wrapper for lua's print function
__lua_set_set_var_wrapperSets a global proc to call in place of just outright setting a datum's var to a given value
_add_memory_in_rangeUnless you need to use this for an explicit reason, use the add_memory_in_range macro wrapper.
_addtimerCreate a new timer and insert it in the queue. +You should not call this directly, and should instead use the addtimer macro, which includes source information.
_alert_dronesBroadcast a message to all drones in a faction
_animate_filterAuxtools REALLY doesn't know how to handle filters as values; +when passed as arguments to auxtools-called procs, they aren't simply treated as nulls - +they don't even count towards the length of args. +For example, calling some_proc([a filter], foo, bar) from auxtools +is equivalent to calling some_proc(foo, bar). Thus, we can't use _animate directly on filters. +Use this to perform animation steps on a filter. Consecutive steps on the same filter can be +achieved by calling _animate with no target.
_export_loopThe main bit responsible for selling the item. Shared by export_single_item() and export_item_and_contents()
_malf_ai_undo_lockdownFor Lockdown malf AI ability. Opens all doors on the station.
_pick_listAllow me to explain +for some reason, if pick() is passed arglist(args) directly and args contains only one list +it considers it to be a list of lists +this means something like _pick(list) would fail +need to do this instead
_queue_verbqueue a callback for the given verb/verblike proc and any given arguments to the specified verb subsystem, so that they process in the next tick. +intended to only work with verbs or verblike procs called directly from client input, use as part of TRY_QUEUE_VERB() and co.
_save_mapHey bud don't call this directly, it exists so we can invoke async and prevent the buildmode datum being qdel'd from halting this proc
_stack_tracegives us the stack trace from CRASH() without ending the current proc. +Do not call directly, use the stack_trace macro instead.
above_neckWould this zone be above the neck
actionspeed_data_null_checkChecks if a action speed modifier is valid and not missing any data
active_free_borgsSilicon Mob Procs
add_image_to_clientAdds an image to a client's .images. Useful as a callback.
add_image_to_clientsLike add_image_to_client, but will add the image from a list of clients
add_keybindingAdds an instanced keybinding to the global tracker
add_lua_editor_variantsGiven a list and a list of its variant hints, appends variants that aren't explicitly required by dreamluau, +but are required by the lua editor tgui.
add_messengerRegisters an NTMessenger instance to the list of pda_messengers.
add_recipes_to_sublistAdd a list of recipes to an existing recipe sublist.
add_sabotage_machineMarks a machine as a possible traitor sabotage target
add_startup_messageAdds a startup message to the splashscreen.
add_to_signaler_investigate_logUsed to add a text log to the signaler investigation log. +Do not add to the list directly; if the list is too large it can cause lag when an admin tries to view it.
add_verbhandles adding verbs and updating the stat panel browser
admin_ticket_logUse this proc when an admin takes action that may be related to an open ticket on what +what can be a client, ckey, or mob +player_message: If the message should be shown in the player ticket panel, fill this out +log_in_blackbox: Whether or not this message with the blackbox system. +If disabled, this message should be logged with a different proc call
adminscrubRuns STRIP_HTML_SIMPLE and byond's sanitization proc.
alert_sound_to_playingThis is quite franlky the most important proc relating to global sounds, it uses area definition to play sounds depending on your location, and respects the players announcement volume. Generally if you're sending an announcement you want to use priority_announce.
alert_to_permissions_elevation_attemptSends a message in the event that someone attempts to elevate their permissions through invoking a certain proc.
alone_in_areaChecks if the mob provided (must_be_alone) is alone in an area
amount2sheetTurns material amount into the number of sheets, returning FALSE if the number is less than SHEET_MATERIAL_AMOUNT
announce_arrivalSend a message in common radio when a player arrives
anyprobchances are 1:value. anyprob(1) will always return true
apply_dynamic_human_appearanceThis exists to apply the icons async, as that cannot be done in Initialize because of possible sleeps.
armor_to_protection_classRounds armor_value down to the nearest 10, divides it by 10 and then converts it to Roman numerals.
armor_to_protection_nameReturns the client readable name of an armor type
assert_sortedRuntimes if the passed in list is not sorted
assign_random_nameGenerate a name devices
assoc_to_keysTurns an associative list into a flat list of keys
assoc_to_keys_featuresTurns an associative list into a flat list of keys, but for sprite accessories, respecting the locked variable
assoc_value_sumGets the total amount of everything in the associative list.
at_leastTakes a value, and a threshold it has to at least match +returns the correctly signed value max'd to the threshold
atmos_handbooks_initAutomatically populates gas_handbook and reaction_handbook. They are formatted lists containing information regarding gases and reactions they participate in. +Structure can be found in TS form at AtmosHandbook.tsx
atmos_scanOutputs a message to the user describing the target's gasmixes.
autopunct_bareEnsures sentences end in appropriate punctuation (a period if none exist) +and that all whitespace-bounded 'i' characters are capitalized.
avoid_assoc_duplicate_keystakes an input_key, as text, and the list of keys already used, outputting a replacement key in the format of "[input_key] ([number_of_duplicates])" if it finds a duplicate +use this for lists of things that might have the same name, like mobs or objects, that you plan on giving to a player as input
baseturfs_string_listA wrapper for baseturf string lists, to offer support of non list values, and a stack_trace if we have major issues
begin_the_endBegins the process of ending the round via cult narsie win +Consists of later called procs (in order of called):
bit_countcounts the number of bits in Byond's 16-bit width field, in constant time and memory!
bitfield_to_listConverts a bitfield to a list of numbers (or words if a wordlist is provided)
blend_cutoff_colorsUsed to blend together two different color cutoffs +Uses the screen blendmode under the hood, essentially just /proc/blend_screen_color +But paired down and modified to work for our color range +Accepts the color cutoffs as two 3 length list(0-100,...) arguments
blend_screen_colorBlends together two colors (passed as 3 or 4 length lists) using the screen blend mode +Much like multiply, screen effects the brightness of the resulting color +Screen blend will always lighten the resulting color, since before multiplication we invert the colors +This makes our resulting output brighter instead of darker
body_zone2cover_flagsFor finding out what body parts a body zone covers, the inverse of the below basically
border_diamond_range_turfsReturns the list of turfs around the outside of a center based on RANGE_TURFS()
build_chemical_reactions_listsChemical Reactions - Initialises all /datum/chemical_reaction into a list +It is filtered into multiple lists within a list. +For example: +chemical_reactions_list_reactant_index/datum/reagent/toxin/plasma is a list of all reactions relating to plasma +For chemical reaction list product index - indexes reactions based off the product reagent type - see get_recipe_from_reagent_product() in helpers +For chemical reactions list lookup list - creates a bit list of info passed to the UI. This is saved to reduce lag from new windows opening, since it's a lot of data.
build_exploration_site_ui_dataHelper proc for exploration site listings in ui.
build_medicine_reagentsJust grab every craftable medicine you can think off
build_name2reagentlistBuilds map of reagent name to its datum path
build_planeed_apperance_queueTakes a list of mutable appearances +Returns a list in the form: +1 - a list of all mutable appearances that would need to be updated to change planes in the event of a z layer change, alnongside the commands required +to properly track parents to update +2 - a list of all parents that will require updating
calculate_light_offsetReturns a list of x and y offsets to apply to our visual lighting position
calculate_projectile_angle_and_pixel_offsetsCalculates the pixel offsets and angle that a projectile should be launched at.
calculate_tgm_header_indexGenerates a key matching our index
callback_on_everyone_on_zInvokes a callback on every living mob on the provided z level.
callback_selectRuns a list of callbacks asyncronously, returning only when all have finished
camera_sortSorts the list of cameras by their c_tag to display to players.
can_seeStep-towards method of determining whether one atom can see another. Similar to viewers() +note: this is a line of sight algorithm, view() does not do any sort of raycasting and cannot be emulated by it accurately
censor_ic_filter_for_pdasGiven a pda message, will replace any match in the message with grawlixs.
center_imageCenter's an image. +Requires: +The Image +The x dimension of the icon file used in the image +The y dimension of the icon file used in the image +eg: center_image(image_to_center, 32,32) +eg2: center_image(image_to_center, 96,96)
chatter_speakWe're going to take a list that dictates the pace of speech, and a sentence fragment to say +Then say() that fragment at that pace +You can pass in a starting delay to wait before speaking the next sound
check_asay_linksChecks a given message to see if any of the words are something we want to treat specially, as detailed below.
check_gasesA simple helped proc that checks if the contents of a list of gases are within acceptable terms.
check_holidaysChecks that the passed holiday is located in the global holidays list.
check_pda_message_against_filterChecks a PDA message against the IC/Soft IC filter. Returns TRUE if the message should be sent. +Notifies the user passed in arguments if the message matched either filter.
check_target_facingsReturns the direction that the initiator and the target are facing
check_teleport_validValidates that the teleport being attempted is valid or not
check_topdown_validityChecks if a passed in MA or atom is allowed to have its current plane/layer matchup
check_vore_preferencesThis is so complicated because we have to support three distinct use cases all in one proc:
check_wall_itemCheck if there is already a wall item on the turf loc +floor_loc = floor tile in front of the wall +dir_toward_wall = direction from the floor tile in front of the wall towards the wall +check_external = truthy if we should be checking against items coming out of the wall, rather than visually on top of the wall.
check_zoneConvert a PRECISE ZONE into the BODY_ZONE
chem_splashThe basic chemical bomb proc. +Combines a set of reagent holders into one holder and reacts it. +If there are any reagents left over it spreads them across the surrounding environment. +The maximum volume of the holder is temporarily adjusted to allow for reactions which increase total volume to work at full effectiveness. +The maximum volume of the holder is then reset to its original value.
circle_rangeReturns all atoms present in a circle around the center
circle_range_turfsReturns a list of turfs around a center based on RANGE_TURFS()
circle_viewReturns all atoms present in a circle around the center but uses view() instead of range() (Currently not used)
circle_view_turfsReturns a list of turfs around a center based on view()
cleanup_ghostsGives a farewell message and deletes the ghosts produced by a ghost portal structure.
clockwork_sayCauses the mob or movable in question to speak a message; it assumes that the message is already translated to ratvar speech using text2ratvar()
cmp_assoc_list_namePassed a list of assoc lists, sorts them by the list's "name" keys.
cmp_autowiki_fish_sources_contentSort the autowiki fish entries by their weight. However, duds always come first.
cmp_bodypart_by_body_part_ascOrders bodyparts by their body_part value, ascending.
cmp_crafting_req_prioritySorts crafting recipe requirements before the crafting recipe is inserted into GLOB.crafting_recipes
cmp_fish_fluidOrders fish types following this order (freshwater -> saltwater -> anadromous -> sulphuric water -> any water -> air) +If both share the same required fluid type, they'll be ordered by name instead.
cmp_heretic_knowledgeOrders heretic knowledge by priority
cmp_mob_healthOrders mobs by health
cmp_port_order_ascOrders by integrated circuit weight
cmp_uplink_category_descOrders by uplink category weight
color_to_full_rgba_matrixConverts RGB shorthands into RGBA matrices complete of constants rows (ergo a 20 keys list in byond). +if return_identity_on_fail is true, stack_trace is called instead of CRASH, and an identity is returned.
colorize_stringGets a color for a name, will return the same color for a given string consistently within a round.atom
compare_listcompare two lists, returns TRUE if they are the same
conditional_pref_soundconditional_pref_sound is similar to playsound but it does not pass through walls, doesn't play for ghosts, and checks for prefs. +This is useful if we have something like the organic interface content, which everyone may not want to hear.
considered_afkChecks if a player is considered AFK
considered_aliveChecks if the passed mind has a mob that is "alive"
considered_escapedChecks if the passed mind is considered "escaped".
considered_exiledExiled check
construct_phobia_regexCreates a regular expression to match against the given phobia +Capture group 2 = the scary word +Capture group 3 = an optional suffix on the scary word
convert_integer_to_wordsTakes an integer up to 999,999,999 and returns it in words. Works with negative numbers and 0.
convert_ph_to_readable_colorConverts the pH into a tgui readable color - i.e. white and black text is readable over it. This is NOT the colourwheel for pHes however.
coords2turfConverts a list of coordinates, or an assosciative list if passed, into a turf by calling locate(x, y, z) based on the values in the list
count_by_typereturn the amount of items of the same type inside a list
cracker_reactions_listGlobal proc to build up the list of co2 cracker reactions
create_announcement_divInserts a span styled message into an alert box div
create_atmos_zoneCreate an atmos zone (Think ZAS), similiar to [proc/detect_room] but it ignores walls and turfs which are non-[atmos_can_pass]
create_basketball_gameCreates the global datum for playing basketball games, destroys the last if that's required and returns the new.
create_ctf_gameCreates a CTF game with the provided team ID then returns a reference to the new controller. If a controller already exists provides a reference to it.
create_delusionHelper to give the passed mob the ability to create a delusion hallucination (even a custom one). +Returns a list of arguments - pass these to _cause_hallucination to cause the desired hallucination
create_glass_stylesConstructs a nested list of glass style singletons
create_mafia_gameCreates the global datum for playing mafia games, destroys the last if that's required and returns the new.
create_ooc_announcement_divInserts a span styled message into an OOC alert style div
create_random_puzzgridReturns a random puzzgrid from config. +If config is empty, or no valid puzzgrids can be found in time, will return null.
create_separatist_nation
create_strippable_listCreates an assoc list of keys to /datum/strippable_item
create_uplink_salesSelects a set number of unique items from the uplink, and deducts a percentage discount from them
cult_ending_helperSelects cinematic to play as part of the cult end depending on the outcome then ends the round afterward +called either when narsie eats everyone, or when [/proc/begin_the_end()] reaches its conclusion
cure_curse_of_babelMainly so admin triggered tower of babel can be undone
cut_relative_directionTakes a screen_loc string and cut out any directions like NORTH or SOUTH
day_of_monthReturns the day (mon, tues, wen...) in number format, 1 (monday) - 7 (sunday) from the passed in date (year, month, day) +All inputs are expected indexed at 1
debug_hallucination_weighted_listDebug proc for getting the total weight of the random_hallucination_weighted_list
debug_variableGet displayed variable in VV variable list
deep_compare_listCompares 2 lists, returns TRUE if they are the same
deep_copy_listCopies a list, and all lists inside it recusively +Does not copy any other reference type
default_ui_stateThe sane defaults for a UI such as a computer or a machine.
delete_all_SS_and_recreate_masterDelete all existing SS to basically start over
delta_to_angleCalculate the angle produced by a pair of x and y deltas
deltimerDelete a timer
deprecise_zoneTakes a zone and returns its "parent" zone, if it has one.
diff_appearancesTakes two appearances as args, prints out, logs, and returns a text representation of their differences +Including suboverlays
dir2offsetReturns a list(x, y), being the change in position required to step in the passed in direction
dir_to_all_junctionsTakes a direction, turns it into all the junctions that contain it
disambiguate_clientTakes an argument which could be either a ckey, /client, or IRC marker, and returns a client if possible +Returns [EXTERNAL_PM_USER] if an IRC marker is detected +Otherwise returns null
disease_air_spread_walkHelper for checking if there is an air path between two turfs
diseasescanChecks the individual for any diseases that are visible to the scanner, and displays the diseases in the attacked to the attacker.
dispatch_announcement_to_playersProc that just dispatches the announcement to our applicable audience. Only the announcement is a mandatory arg.
display_cornersMakes all lighting corners visible, debug to aid in understanding
display_energyFormat an energy value in prefixed joules. +Arguments
display_power*Format a power value in prefixed watts.
doPortalSpawnSpawns a portal storm that spawns in sentient/non sentient mobs +portal_appearance is a list in the form (turf's plane offset + 1) -> appearance to use
do_afterTimed action involving one mob user. Target is optional.
do_chem_smokeHelper to quickly create a cloud of reagent smoke
do_smokeA helper proc used to spawn small puffs of smoke.
do_sweepSweep objects in the direction we're facing towards our direction +Arguments
dump_in_spaceDump a movable in a random valid spacetile
duplicate_object
dviewVersion of view() which ignores darkness, because BYOND doesn't have it (I actually suggested it but it was tagged redundant, BUT HEARERS IS A T- /rant).
dyn_explosionUsing default dyn_ex scale:
emissive_appearanceProduces a mutable appearance glued to the [EMISSIVE_PLANE] dyed to be the EMISSIVE_COLOR.
emissive_appearance_copyCreates a mutable appearance glued to the EMISSIVE_PLAN, using the values from a mutable appearance
emissive_blockerProduces a mutable appearance glued to the [EMISSIVE_PLANE] dyed to be the EM_BLOCK_COLOR.
end_cooldownCallback called by a timer to end an associative-list-indexed cooldown.
end_message_delaySimply resets the message delay and the recent messages list, to ensure that +recent messages can be sent again. Is called on a one second timer after a +delay is set, from /obj/machinery/telecomms/broadcaster/receive_information()
ending_helperHelper to set the round to end asap. Current usage Cult round end code
endswithReturns TRUE if the input_text ends with the ending
energy_to_powerConverts the joule to the watt, assuming SSmachines tick rate. +Arguments
engaged_role_play_checkChecks if a player meets certain conditions to exclude them from event selection.
english_listReturns a list in plain english as a string
expand_three_digit_colorGiven a 3 character color (no hash), converts it into #RRGGBB (with hash)
expand_weightsTakes a weighted list (see above) and expands it into raw entries +This eats more memory, but saves time when actually picking from it
explosionMakes a given atom explode.
export_single_itemIt works like export_item_and_contents(), however it ignores the contents. Meaning only exported_atom will be valued.
failed_narsie_summonSummon failed, time to work backwards
fast_split_stackSplits a stack. we don't use /obj/item/stack/proc/fast_split_stack because Byond complains that should only be called asynchronously. +This proc is also more faster because it doesn't deal with mobs, copying evidences or refreshing atom storages +Has special internal uses for e.g. by the material container
fill_holidaysFills the holidays list if applicable, or leaves it an empty list.
fill_with_onesGiven a list, return a copy where values without defined weights are given weight 1. +For example, fill_with_ones(list(A, B=2, C)) = list(A=1, B=2, C=1) +Useful for weighted random choices (loot tables, syllables in languages, etc.)
filter_name_icHelper proc to check if a name is valid for the IC filter
findTrueKeyTakes a stealthed ckey as input, returns the true key it represents
find_functional_ntnet_relayChecks whether NTNet is available by ensuring at least one relay exists and is operational.
find_maintenance_spawnFinds us a generic maintenance spawn location.
find_obstruction_free_locationFind an obstruction free turf that's within the range of the center. Can also condition on if it is of a certain area type.
find_reagentReturns reagent datum from typepath
find_recordReturns the first record in the list that matches the name
find_space_spawnFinds us a generic spawn location in space.
findnameFind if the message has the real name of any user mob in the mob_list
finish_equip_mobA utility function for /datum/strippable_items to finish equipping an item to a mob.
finish_unequip_mobA utility function for /datum/strippable_items to finish unequipping an item from a mob.
fire_curse_handTorment the target with a frightening hand
firing_squadfiring_squad is a proc for the :B:erforate smite to shoot each individual bullet at them, so that we can add actual delays without sleep() nonsense
flash_colorFlash a color on the passed mob
flatten_listFlattens a keyed list into a list of its contents
flick_overlay_globalAdd an image to a list of clients and calls a proc to remove it after a duration
force_apc_arcingSet all APCs to start (or stop) arcing
format_frequencyFormat frequency by moving the decimal.
format_textProperly format a string of text by using replacetext()
full_capitalizeReturns a string with the first letter of each word capitialized
gas_mixture_parser
gather_z_level_informationReturns all necessary z-level information. Argument append_grid allows the user to see a table showing all of the z-level linkages, which is only visible and useful in-game.
generateStealthCkeyHands back a stealth ckey to use, guarenteed to be unique
generate_DNR_trait_overlayInstantiates GLOB.DNR_trait_overlay by creating a new mutable_appearance instance of the overlay.
generate_adjacent_directionsEncodes connectivity between border objects +Returns a list accessable by a border object's dir, the direction between it and a target, and a target +Said list will return the direction the two objects connect, if any exists (if the target isn't a border object and the direction is fine, return the inverse of the direction in use)
generate_and_hash_rsc_filegenerates a filename for a given asset. +like generate_asset_name(), except returns the rsc reference and the rsc file hash as well as the asset name (sans extension) +used so that certain asset files don't have to be hashed twice
generate_asset_nameGenerate a filename for this asset +The same asset will always lead to the same asset name +(Generated names do not include file extention.)
generate_autowiki_outputReturns a string of the autowiki output file
generate_bitfieldsTurns /datum/bitfield subtypes into a list for use in debugging
generate_changeling_meteorReceives a mob candidate, transforms them into a changeling, and hurls them at the station inside of a changeling meteor
generate_chemwiki_lineGenerate the big list of reagent based reactions. +style='background-color:#FFEE88;'|{{anchor|Synthetic-derived growth factor}}Synthetic-derived growth factor
generate_clockcult_scripturesGenerate all scriptures in a global assoc of name:ref. Only needs to be done once
generate_cult_rune_typesReturns an associated list of rune types. [rune.cultist_name] = [typepath]
generate_customizable_racesGenerates races available to choose in character setup at roundstart, yet not playable on the station.
generate_generator_indexCreates generator__id => type map.
generate_hallucination_weighted_listGenerates the global weighted list of random hallucinations.
generate_icon_alpha_maskHelper proc to generate a cutout alpha mask out of an icon.
generate_items_insideCreates new items inside an atom based on a list
generate_lazy_template_mapIterates through all lazy template datums that exist and returns a list of them as an associative list of key -> instance.
generate_map_list_from_directoryReturns a list of all maps to be found in the directory that is passed in.
generate_quirk_constant_dataConstructs [GLOB.all_quirk_constant_data] by iterating through a typecache of pregen data, ignoring abstract types, and instantiating the rest.
generate_random_nameGenerate a random name based off of one of the roundstart languages
generate_selectable_species_and_languagesGenerates species available to choose in character setup at roundstart
generate_space_underlayGenerates a space underlay for a turf +This provides proper lighting support alongside just looking nice +Accepts the appearance to make "spaceish", and the turf we're doing this for
generate_taur_clothingProc to generate a taur variation of clothes, with the intent of caching them. +It is meant for suits and uniforms at the moment, to cut out the bottom half so that +it doesn't look too out of place.
generate_unique_announcement_headerProc that just generates a custom header based on variables fed into priority_announce() +Will return a string.
generate_wound_series_collectionGenerates [wound_series_collections] by iterating through all pregen_data. Refer to the mentioned list for documentation
generate_wound_static_dataConstructs [GLOB.all_wound_pregen_data] by iterating through a typecache of pregen data, ignoring abstract types, and instantiating the rest.
getReturns the atom type in the specified loc
getFlatIconCreate a single /icon from a given /atom or /image.
get_active_player_countGet active players who are playing in the round
get_adjacent_areasReturns a list of all areas that are adjacent to the center atom's area, clear the list of nulls at the end.
get_adjacent_open_areasReturns a list with all the adjacent areas by getting the adjacent open turfs
get_adjacent_open_turfsReturns a list with all the adjacent open turfs. Clears the list of nulls in the end.
get_airlock_overlayOverlay cache. Why isn't this just in /obj/machinery/door/airlock? Because its used just a +tiny bit in door_assembly.dm Refactored so you don't have to make a null copy of airlock +to get to the damn thing +Someone, for the love of god, profile this. Is there a reason to cache mutable_appearance +if so, why are we JUST doing the airlocks when we can put this in mutable_appearance.dm for +everything
get_allowed_instrument_idsGet all non admin_only instruments as a list of text ids.
get_angleCalculate the angle between two movables and the west|east coordinate
get_angle_rawAngle between two arbitrary points and horizontal line same as /proc/get_angle
get_antag_mindsReturns MINDS of the assigned antags of given type/subtypes +Supplying no antag type grants all minds with antag datums
get_area_nameReturns the name of the area the atom is in
get_areas_in_rangeReturns a list with the names of the areas around a center at a certain distance +Returns the local area if no distance is indicated +Returns an empty list if the center is null
get_armor_by_typeGets an armor type datum using the given type by formatting it into the expected datum tag
get_atom_on_turfReturns the top-most atom sitting on the turf. +For example, using this on a disk, which is in a bag, on a mob, +will return the mob because it's on the turf.
get_bbox_of_atomsGet a bounding box of a list of atoms.
get_blueprint_dataget_blueprint_data +Gets a list of turfs around a central turf and gets the blueprint data in a list +Args:
get_cached_actionspeed_modifierGrabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO!
get_cached_movespeed_modifierGrabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO!
get_camera_listget_camera_list
get_cardinal_dirGet the cardinal direction between two atoms
get_chasm_categoryReturns a key to store, remove and access fallen mobs depending on the z-level. +This stops rescuing people from places that are waaaaaaaay too far-fetched.
get_chat_togglesGet the given client's chat toggle prefs.
get_chem_idReturns reagent datum from reagent name string
get_closest_atomReturns the closest atom of a specific type in a list from a source
get_consistent_feature_entryTakes in an accessory list and returns the first entry from that list, ensuring that we dont return SPRITE_ACCESSORY_NONE in the process.
get_corresponding_wound_typeSearches through all wounds for any of proper type, series, and biostate, and then returns a single one via pickweight. +Is able to discern between, say, a flesh slash wound, and a metallic slash wound, and will return the respective one for the provided limb.
get_ctf_voting_controllerReturns the existing /datum/ctf_voting_controller for the given ID, or makes one
get_customizable_racesGets a list of all customizable races on roundstart.
get_dist_euclideanReturns the distance between two atoms
get_dummy_savefileGets a dummy savefile for usage in icon generation. +Savefiles generated from this proc will be empty.
get_dynamic_human_appearanceCreates a human with the given parameters and returns an appearance of it
get_edge_target_turfReturns the turf located at the map edge in the specified direction relative to target_atom used for mass driver
get_element_by_varreturn first thing in L which has var/varname == value +this is typecaste as list/L, but you could actually feed it an atom instead. +completely safe to use
get_first_open_turf_in_areaIterates over all turfs in the target area and returns the first non-dense one
get_flat_existing_human_iconA simpler version of get_flat_human_icon() that uses an existing human as a base to create the icon. +Does not feature caching yet, since I could not think of a good way to cache them without having a possibility +of using the cached version when we don't want to, so only use this proc if you just need this flat icon +generated once and handle the caching yourself if you need to access that icon multiple times, or +refactor this proc to feature caching of icons.
get_flat_human_icon
get_general_adminwho_informationProc that gathers adminwho information for a general player, which will only give information if an admin isn't AFK, and handles potential fakekeying. +Will return a list of strings.
get_hearLike view but bypasses luminosity check
get_hearers_in_LOSReturns a list of movable atoms that are hearing sensitive in view_radius and line of sight to source +the majority of the work is passed off to the spatial grid if view_radius > 0 +because view() isnt a raycasting algorithm, this does not hold symmetry to it. something in view might not be hearable with this. +if you want that use get_hearers_in_view() - however thats significantly more expensive
get_hearers_in_looc_range
get_hearers_in_rangeThe exact same as get_hearers_in_view, but not limited by visibility. Does no filtering for traits, line of sight, or any other such criteria. +Filtering is intended to be done by whatever calls this function.
get_hearers_in_viewreturns every hearaing movable in view to the turf of source not taking into account lighting +useful when you need to maintain always being able to hear something if a sound is emitted from it and you can see it (and youre in range). +otherwise this is just a more expensive version of get_hearers_in_LOS().
get_icon_dimensionsReturns a list containing the width and height of an icon file
get_icon_dmi_pathgiven an icon object, dmi file path, or atom/image/mutable_appearance, attempts to find and return an associated dmi file path. +a weird quirk about dm is that /icon objects represent both compile-time or dynamic icons in the rsc, +but stringifying rsc references returns a dmi file path +ONLY if that icon represents a completely unchanged dmi file from when the game was compiled. +so if the given object is associated with an icon that was in the rsc when the game was compiled, this returns a path. otherwise it returns ""
get_lineGet a list of turfs in a line from starting_atom to ending_atom.
get_linked_admin_nameProc that will return the applicable display name, linkified or not, based on the input client reference.
get_list_of_adminsProc that returns a list of cliented admins. Remember that this list can contain nulls! +Also, will return null if we don't have any admins.
get_messenger_nameGet the display name of a messenger instance
get_messengers_sorted_by_jobGets all messengers, sorted by their job
get_messengers_sorted_by_nameGets all messengers, sorted by their name
get_mob_by_ckeyreturns a mob type controlled by a specified ckey
get_mob_by_keyReturn the mob type that is being controlled by a ckey
get_mob_or_brainmobReturns the occupant mob or brain from a specified input
get_most_experiencedFrom a list of players (minds, mobs or clients), finds the one with the highest playtime (either from a specific role or overall living) and returns it.
get_nested_locsReturns a list of all locations (except the area) the movable is within.
get_officer_departmentsReturns the distribution of splitting the given security officers into departments. +Return value is an assoc list of candidate => SEC_DEPT_*.
get_offset_target_turfreturns turf relative to target_atom offset in dx and dy tiles, bound to map limits
get_open_turf_in_dirReturns the open turf next to the center in a specific direction
get_path_by_slotReturns a generic path of the object based on the slot
get_path_toThis is the proc you use whenever you want to have pathfinding more complex than "try stepping towards the thing". +If no path was found, returns an empty list, which is important for bots like medibots who expect an empty list rather than nothing. +It will yield until a path is returned, using magic
get_perceived_radiation_dangerGets the perceived "danger" of radiation pulse, given the threshold to the target. +Returns a RADIATION_DANGER_* define, see code/__DEFINES/radiation.dm
get_perimeterGet a list of turfs in a perimeter given the center_atom and radius. +Automatically rounds down decimals and does not accept values less than positive 1 as they don't play well with it. +Is efficient on large circles but ugly on small ones +Uses Jesko`s method to the midpoint circle Algorithm.
get_pixel_anglefor getting the angle when animating something's pixel_x and pixel_y
get_pixel_distanceFinds the distance between two atoms, in pixels
+centered = FALSE counts from turf edge to edge
+centered = TRUE counts from turf center to turf center
+of course mathematically this is just adding world.icon_size on again
get_player_clientReturns a client from a mob, mind or client
get_powernet_info_from_sourceExtracts the powernet and cell of the provided power source
get_preferences_in_priority_orderReturns a flat list of preferences in order of their priority
get_random_coinGets a random coin excluding the blocked type and including extra coins which aren't pathed like coins.
get_random_drinkGets a random drink excluding the blocked type
get_random_drink_idReturns a random reagent consumable ethanol object minus blacklisted reagents
get_random_foodGet a random food item exluding the blocked ones
get_random_jumpskirtReturns a random, acceptable jumpskirt typepath
get_random_jumpsuitReturns a random, acceptable jumpsuit typepath
get_random_reagent_idReturns a random reagent object, with the option to blacklist reagents.
get_random_station_turfReturns a random turf on the station
get_random_valid_hallucination_subtypeGets a random subtype of the passed hallucination type that has a random_hallucination_weight > 0. +If no subtype is passed, it will get any random hallucination subtype that is not abstract and has weight > 0. +This can be used instead of picking from the global weighted list to just get a random valid hallucination.
get_ranged_target_turf_directGet ranged target turf, but with direct targets as opposed to directions
get_reagent_type_from_product_stringReturns a list of chemical_reaction datums that have the input STRING as a product
get_recipe_from_reagent_productTakes a type in and returns a list of associated recipes
get_round_default_lawsetA getter that sets up the round default if it has not been yet.
get_safe_random_station_turfReturns a random turf on the station, excludes dense turfs (like walls) and areas that have valid_territory set to FALSE
get_selectable_speciesGets a list of all species available to choose in roundstart.
get_sensitive_adminwho_informationProc that gathers adminwho information for admins, which will contain information on if the admin is AFK, readied to join, etc. Only arg is a list of clients to use. +Will return a list of strings.
get_sfxUsed to convert a SFX define into a .ogg so we can add some variance to sounds. If soundin is already a .ogg, we simply return it
get_size_in_tilesReturns the size of the sprite in tiles. +Takes the icon size and divides it by the world icon size (default 32). +This gives the size of the sprite in tiles.
get_small_overlayFikou's fix for making toast alerts look nice - resets offsets, transforms to fit
get_sorted_areasReturns a sorted version of GLOB.areas, by name
get_swarm_path_toPOTENTIALLY cheaper version of get_path_to +This proc generates a path map for the end atom's turf, which allows us to cheaply do pathing operations "at" it +Generation is significantly SLOWER then get_path_to, but if many things are/might be pathing at something then it is much faster +Runs the risk of returning an suboptimal or INVALID PATH if the delay between map creation and use is too long
get_teleport_locReturns location. Returns null if no location was found.
get_temp_change_amountUsed to get the amount of change between two body temperatures
get_turf_pixelLets the turf this atom's ICON appears to inhabit +it takes into account: +Pixel_x/y +Matrix x/y +NOTE: if your atom has non-standard bounds then this proc +will handle it, but: +if the bounds are even, then there are an even amount of "middle" turfs, the one to the EAST, NORTH, or BOTH is picked +this may seem bad, but you're at least as close to the center of the atom as possible, better than byond's default loc being all the way off) +if the bounds are odd, the true middle turf of the atom is returned
get_valid_screen_locationReturns a valid location to place a screen object without overflowing the viewport
get_visual_offsetReturns how visually "off" the atom is from its source turf as a list of x, y (in pixel steps) +it takes into account: +Pixel_x/y +Matrix x/y +Icon width/height
give_admin_popupTries to give the target an admin popup. +If it fails, will send the error to the passed admin.
give_escape_menu_detailsProvides a singleton for the escape menu details screen.
give_escape_menu_titleProvides a singleton for the escape menu details screen.
goonchem_vortexMagical move-wooney that happens sometimes.
grawlixGenerate a grawlix string of length of the text argument.
greatest_common_factorTakes a list of numbers as input, returns the highest value that is cleanly divides them all +Note: this implementation is expensive as heck for large numbers, I only use it because most of my usecase +Is < 10 ints
hallucination_pulseEmits a hallucinating pulse around the passed atom. +Affects everyone in the passed radius except for those with TRAIT_MADNESS_IMMUNE. This affects blind players.
handle_job_exempt_menu_topicTopic handler for the job exempt menu
haunt_outburstTakes a given area and chance, applying the haunted_item component to objects in the area.
healthscanhealthscan +returns a list of everything a health scan should give to a player. +Examples of where this is used is Health Analyzer and the Physical Scanner tablet app. +Args: +user - The person with the scanner +target - The person being scanned +mode - Uses SCANNER_CONDENSED or SCANNER_VERBOSE to decide whether to give a list of all individual limb damage +advanced - Whether it will give more advanced details, such as husk source. +tochat - Whether to immediately post the result into the chat of the user, otherwise it will return the results.
honkerblastUnleashes a honkerblast similar to the honkmech weapon, but with more granular control.
hsv2rgbConverts a list storing hsva into an rgb color
htmlrendertextPerform a whitespace cleanup on the text, similar to what HTML renderers do
icon2base64Converts an icon to base64. Operates by putting the icon in the iconCache savefile, +exporting it as text, and then parsing the base64 from that. +(This relies on byond automatically storing icons in savefiles as base64)
icon2htmlgenerate an asset for the given icon or the icon of the given appearance for [thing], and send it to any clients in target. +Arguments:
icon_existsChecks if the given iconstate exists in the given file, caching the result. Setting scream to TRUE will print a stack trace ONCE.
inLineOfSightCalculate if two atoms are in sight, returns TRUE or FALSE
init_alcohol_containers////////////////////////////////////////////Alchohol bottles! -Agouri ////////////////////////// +Initializes GLOB.alcohol_containers, only containers that actually have reagents are added to the list.
init_chemical_reagent_listInitialises all /datum/reagent into a list indexed by reagent id
init_crafting_recipesInits crafting recipe lists
init_crafting_recipes_atomsInits atoms used in crafting recipes
init_exportMakes sure the exports list is populated and that the report isn't null.
init_gas_id_to_canisterReturns a map of canister id to its type path
init_hotspot_reactionsReturns reactions which will contribute to a hotspot's size.
init_keybindingsCreates and sorts all the keybinding datums
init_language_holder_prototypesInits the global list of language holder prototypes.
init_loadout_categoriesInits the global list of loadout category singletons +Also inits loadout item singletons
init_pirate_gangsinitializes the pirate gangs glob list, adding all subtypes that can roll today.
init_subtypes_w_path_keysFunctions like init_subtypes, but uses the subtype's path as a key for easy access
init_surgeries//Initial Building/////
initialize_starting_knowledgeReturns a list of all heretic knowledge TYPEPATHS +that have route set to PATH_START.
int_to_wordsTakes a 1, 2 or 3 digit number and returns it in words. Don't call this directly, use convert_integer_to_words() instead.
invert_HTML_colourInverts the colour of an HTML string
ion_numPicks a string of symbols to display as the law number for hacked or ion laws +is at the start to prevent us from changing say modes via get_message_mode()
isAdminGhostAIReturns TRUE/FALSE on whether the mob is an Admin Ghost AI. +This requires this snowflake check because AI interact gives the access to the mob's client, rather +than the mob like everyone else, and we keep it that way so they can't accidentally give someone Admin AI access.
isAdminObserverIs the passed in mob a ghost with admin powers, doesn't check for AI interact like isAdminGhost() used to
is_adminReturns if the given client is an admin, REGARDLESS of if they're deadminned or not.
is_banned_fromChecks client ban cache or, if it doesn't exist, queries the DB ban table to see if the player's +ckey is banned from at least one of the provided roles.
is_color_darkGiven a color in the format of "#RRGGBB", will return if the color +is dark.
is_convertable_to_cultReturns whether the given mob is convertable to the blood cult
is_ctf_targetProc that identifies if something is a valid target for CTF related checks, checks if an object is a ctf barrier or has ctf component if they are a player.
is_factual_sprite_accessoryThis will check if SSaccessories.sprite_accessories[mutant_part]?[part_name] is associated with sprite accessory with factual TRUE.
is_guest_keyReturns whether or not a player is a guest using their ckey as an input
is_ic_filteredGiven a text, will return what word is on the IC filter, with the reason. +Returns null if the message is OK.
is_ic_filtered_for_pdasGiven a text, will return what word is on the IC filter, ignoring words allowed on the PDA, with the reason. +Returns null if the message is OK.
is_infiltrator_docked_at_syndiebaseReturns whether or not syndicate operatives escaped.
is_job_exempt_fromReturns whether a ckey has the job exemption for a job
is_matching_baitHelper proc that checks if a bait matches identifier from fav/disliked bait list
is_on_a_planetChecks if the passed non-area atom is on a "planet".
is_ooc_filteredGiven a text, will return what word is on the OOC filter, with the reason. +Returns null if the message is OK.
is_path_in_listChecks for specific paths in a list.
is_safe_turfChecks if a given turf is a "safe" location
is_soft_ic_filteredGiven a text, will return what word is on the soft IC filter, with the reason. +Returns null if the message is OK.
is_soft_ic_filtered_for_pdasGiven a text, will return what word is on the soft IC filter, ignoring words allowed on the PDA, with the reason. +Returns null if the message is OK.
is_soft_ooc_filteredGiven a text, will return that word is on the soft OOC filter, with the reason. +Returns null if the message is OK.
is_source_facing_targetCompare source's dir, the clockwise dir of source and the anticlockwise dir of source +To the opposite dir of the dir returned by get_dir(target,source) +If one of them is a match, then source is facing target
is_special_characterReturns TRUE if the game has started and we're either an AI with a 0th law, or we're someone with a special role/antag datum +If allow_fake_antags is set to FALSE, Valentines, ERTs, and any such roles with FLAG_FAKE_ANTAG won't pass.
is_type_in_listChecks for specific types in a list.
is_type_on_turfChecks whether or not a particular typepath or subtype of it is present on a turf
is_valid_dmi_filegiven a text string, returns whether it is a valid dmi icons folder path
is_valid_srcCheck if a datum has not been deleted and is a valid source
is_valid_z_level
is_within_radio_jammer_rangeChecks if a given atom is in range of a radio jammer, returns TRUE if it is.
ishumanbasicReturns if the given target is a human. Like, a REAL human. +Not a moth, not a felinid (which are human subtypes), but a human.
iso_to_weekdayReturns an integer in ISO format 1 (Monday) - 7 (Sunday) as a string day
isolate_lightHides all the lights around a source temporarially, for the sake of figuring out how bad a light bleeds +(Except for turf lights, because they're a part of the "scene" and rarely modified)
isvineimmuneUsed to determine whether the mob is immune to actions by the vine. +Use cases: Stops vine from attacking itself, other plants.
join_admin_ranksTakes a list of rank names and joins them with +
json_deserialize_datumConvert a list of json to datum
json_serialize_datumConvert a datum into a json blob
kvpify_listConverts a list into a list of assoc lists of the form ("key" = key, "value" = value) +so that list keys that are themselves lists can be fully json-encoded +and that unique objects with the same string representation do not +produce duplicate keys that are clobbered by the standard JavaScript JSON.parse function
lavaland_equipment_pressure_checkCheck if the turf pressure allows specialized equipment to work
lawid_to_typereturns the law datum with the lawid in question, law boards and law datums should share this id.
level_announceSends an announcement about the level changing to players. Uses the passed in datum and the subsystem's previous security level to generate the message.
library_updatedIncrements every time WE update the library db table, causes all existing consoles to repull when they next check
lightningboltthis is the actual bolt effect and damage, made into its own proc because it is used elsewhere
list_clear_empty_weakrefsRemoves any empty weakrefs from the list +Returns TRUE if the list had empty refs, FALSE otherwise
list_clear_nullsRemoves any null entries from the list +Returns TRUE if the list had nulls, FALSE otherwise
list_holy_successorsCreate a list of the holy successors mobs from GLOB.holy_successors weakref list
living_player_countReturns the amount of currently living players
load_admin_ranksLoads admin ranks. +Return a list containing the backup data if they were loaded from the database backup json
load_admins(Re)Loads the admin list. +returns TRUE if database admins had to be loaded from the backup json
load_adventuresLoads all adventures from DB
load_default_map_configProc that simply loads the default map config, which should always be functional.
load_job_exempt_cacheLoads job exempt cache for ckey, for internal use
load_mapHelper and recommened way to load a map file
load_map_configProc handling the loading of map configs. Will return the default map config using /proc/load_default_map_config if the loading of said file fails for any reason whatsoever, so we always have a working map for the server to run. +Arguments:
load_poll_dataLoads all current and future server polls and their options to store both as datums.
loadout_list_to_datumsTakes a list of paths (such as a loadout list) +and returns a list of their singleton loadout item datums
localweb_soundTakes an input from either proc/play_web_sound or the request manager and runs it through youtube-dl and prompts the user before playing it to the server.
log_accessLogging for logging in & out of the game, with error messages.
log_adminGeneral logging for admin actions
log_admin_circuitLogging for admin actions on or with circuits
log_admin_privateGeneral logging for admin actions
log_adminsayLogging for AdminSay (ASAY) messages
log_assetLogging for loading and caching assets
log_atmosLogs the contents of the gasmix to the game log, prefixed by text
log_attackGeneric attack logging
log_bomberLogging for bombs detonating
log_borer_evolutionLogging for borer evolutions
log_changeling_powerLogging for changeling powers purchased
log_chatLogging for chatting on modular computer channels
log_combatLog a combat message in the attack log
log_commentLogging for newscaster comments
log_configLogging for config errors +Rarely gets called; just here in case the config breaks.
log_creatorThis logs character creator changes in debug.log
log_directed_talkHelper for logging of messages with only one sender and receiver (i.e. mind links)
log_dsayLogging for DeachatSay (DSAY) messages
log_dynamicLogging for dynamic procs
log_emoteLogging for emotes
log_filterLogs to the filter log with the given message, match, and scope
log_gameLogging for generic/unsorted game messages
log_heretic_knowledgeLogging for heretic powers learned
log_internet_requestLogging for music requests
log_job_debugLogging for job slot changes
log_luaLogging for lua scripting
log_malf_upgradesLogging for upgrades purchased by a malfunctioning (or combat upgraded) AI
log_manifestLogging for player manifest (ckey, name, job, special role, roundstart/latejoin)
log_mappingLogging for mapping errors
log_mechaLogging for mech actions
log_oocLogging for messages sent in OOC
log_paperLogging for writing made on paper
log_pdaLogging for PDA messages sent
log_perfLogging for game performance
log_played_namesAdds the new names to the player's played_names list on their /datum/player_details for use of admins. +ckey should be their ckey, and data should be an associative list with the keys being the names they played under and the values being the unique mob ID tied to that name.
log_prayerLogging for prayed messages
log_qdelLogging for hard deletes
log_radio_emoteLogging for emotes sent over the radio
log_researchPuts the text into the research html file, not log. See [INVESTIGATE_RESEARCH] for [/atom/proc/investigate_log]
log_sayLogging for generic spoken messages
log_shuttleLogging for shuttle actions
log_speech_indicatorsLogging for speech indicators.
log_spellbookLogging for wizard powers learned
log_spyLogs bounties completed by spies and their rewards
log_sqlLogging for DB errors
log_subtleThis logs subtle emotes in game.log
log_subtlerThis logs subtler emotes in game.log, if the conflig flag in config\skyrat\skyrat_config.txt is true.
log_suspicious_loginWrites to a special log file if the log_suspicious_login config flag is set, +which is intended to contain all logins that failed under suspicious circumstances.
log_telecommsLogging for speech taking place over comms, as well as tcomms equipment
log_tguiAppends a tgui-related log entry. All arguments are optional.
log_toolLogging for tool usage
log_topicLogging for world/Topic
log_traitorLogging for traitor objectives
log_transportLogging for transport (tram/elevator) actions
log_uplinkLogging for items purchased from a traitor uplink
log_virusLogging for the creation and contraction of viruses
log_voteLogging for OOC votes
log_whisperLogging for whispered messages
log_worldLog to both DD and the logfile.
log_woundlog_wound() is for when someone is attacked and suffers a wound. Note that this only captures wounds from damage, so smites/forced wounds aren't logged, as well as demotions like cuts scabbing over
make_associativeMake a normal list an associative one
make_bodyUses stripped down and bastardized code from respawn character
make_datum_reference_listsLegacy procs that really should be replaced with proper _INIT macros
make_into_clownHelper proc that handles making someone into a clown after a bananium nuke goes off.
make_tupleReturns the name of the mathematical tuple of same length as the number arg (rounded down).
material_insertion_animationCreates a mutable appearance with the material color applied for its insertion animation into an autolathe or techfab +Arguments
md5asfileSave file as an external file then md5 it. +Used because md5ing files stored in the rsc sometimes gives incorrect md5 results.
md5filepathReturns the md5 of a file at a given path.
message_centcomUsed by communications consoles to message CentCom
message_syndicateUsed by communications consoles to message the Syndicate
message_to_htmlMessage-related procs
minor_announceSends a minor annoucement to players. +Minor announcements are large text, with the title in red and message in white. +Only mobs that can hear can see the announcements.
mobs_in_area_typeTakes: list of area types +Returns: all mobs that are in an area type
mouse_angle_from_clientReturns an angle in degrees relative to the position of the mouse and that of the client eye.
move_elementMove a single element from position from_index within a list, to position to_index +All elements in the range [1,to_index) before the move will be before the pivot afterwards +All elements in the range [to_index, L.len+1) before the move will be after the pivot afterwards +In other words, it's as if the range [from_index,to_index) have been rotated using a <<< operation common to other languages. +from_index and to_index must be in the range [1,L.len+1] +This will preserve associations ~Carnie
move_rangeMove elements [from_index,from_index+len) to [to_index-len, to_index) +Same as moveElement but for ranges of elements +This will preserve associations ~Carnie
movespeed_data_null_checkChecks if a move speed modifier is valid and not missing any data
mutable_appearance
narsie_apocalypseThird crew last second win check and flufftext for [/proc/begin_the_end()]
narsie_end_begin_checkFirst crew last second win check and flufftext for [/proc/begin_the_end()]
narsie_end_second_checkSecond crew last second win check and flufftext for [/proc/begin_the_end()]
narsie_last_second_winCalled only if the crew managed to destroy narsie at the very last second for [/proc/begin_the_end()]
narsie_start_destroy_stationsecurity level and shuttle lockdowns for [/proc/begin_the_end()]
next_list_itemReturns the next item in a list
notify_ghostsFancy notifications for ghosts
nuke_gibHelper proc that handles gibbing someone who has been nuked.
nuke_requestUsed by communications consoles to request the nuclear launch codes
objectify"Turns" people into objects. Really, we just add them to the contents of the item.
offer_controlOffer control of the passed in mob to dead player
offset_to_screen_locTakes a list in the form (x_offset, y_offset) +And converts it to a screen loc string +Accepts an optional view string/size to force the screen_loc around, so it can't go out of scope
overlays2textConverts an overlay list into text for debug printing +Of note: overlays aren't actually mutable appearances, they're just appearances +Don't have access to that type tho, so this is the best you're gonna get
parse_caught_click_modifiersReturns a turf based on text inputs, original turf and viewing client
parse_slot_flagsReturns a list of strings for a given slot flag.
parse_zoneReturn a string for the specified body zone. Should be used for parsing non-instantiated bodyparts, otherwise use /obj/item/bodypart/var/plaintext_zone
partially_block_emissivesTakes a non area atom and a threshold +Makes it block emissive with any pixels with more alpha then that threshold, with the rest allowing the light to pass +Returns a list of objects, automatically added to your vis_contents, that apply this effect +QDEL them when appropriate
passA do nothing proc
path_map_passalongWe generate a path for the passed in callbacks, and then pipe it over
pathfinding_finishedUses funny pass by reference bullshit to take the output created by pathfinding, and insert it into a return list +We'll be able to use this return list to tell a sleeping proc to continue execution
pathwalkTakes a directory and returns every file within every sub directory. +If extensions_filter is provided then only files that end in that extension are given back. +If extensions_filter is a list, any file that matches at least one entry is given back.
peekReturns the top (last) element from the list, does not remove it from the list. Stack functionality.
permissive_sanitize_nameMuch more permissive version of reject_bad_name(). +Returns a trimmed string or null if the name is invalid. +Allows most characters except for IC chat prohibited words.
phase_filterCool filter that I'm using for some of this :)))
pick_closest_pathReturns a chosen path that is the closest to a list of matches
pick_holy_successorChooses a valid holy successor from GLOB.holy_successor weakref list and sets things up for them to be the new high priest
pick_n_takePick a random element from the list and remove it from the list.
pick_weightPicks a random element from a list based on a weighting system. +For example, given the following list: +A = 6, B = 3, C = 1, D = 0 +A would have a 60% chance of being picked, +B would have a 30% chance of being picked, +C would have a 10% chance of being picked, +and D would have a 0% chance of being picked. +You should only pass integers in.
pick_weight_recursiveLike pick_weight, but allowing for nested lists.
pick_weighted_lawsetreturns a law datum based off of config. will never roll asimov as the weighted datum if the station has a unique AI.
piglatin_sentenceruns piglatin_word() proc on each word in a sentence. preserves caps and punctuation
piglatin_wordtakes "word", and returns it piglatinized.
pixel_offset_turfTakes a turf, and a list of x and y pixel offsets and returns the turf that the offset position best lands in
play_cinematicPlays a cinematic, duh. Can be to a select few people, or everyone.
play_fov_effectPlays a visual effect representing a sound cue for people with vision obstructed by FOV or blindness
playsoundplaysound is a proc used to play a 3D sound in a specific range. This uses SOUND_RANGE + extra_range to determine that.
podspawnOne proc for easy spawning of pods in the code to drop off items before whizzling (please don't proc call this in game, it will destroy you)
poll_cultists_for_leaderPolls all Cultists on whether the person putting themselves forward should be made the Cult Leader, if they can actually be such.
poll_holidayTakes a holiday datum, a starting month, ending month, max amount of days to test in, and min/max year as input +Returns a list in the form list("yyyy/m/d", ...) representing all days the holiday runs on in the tested range
popReturns the top(last) element from the list and removes it from the list (typical stack function)
populate_editable_sign_typesThis proc populates GLOBAL_LIST_EMPTY(editable_sign_types)
populate_interaction_instancesGlobal loading procs
power_failDisable power in the station APCs
power_failureCauses a power failure across the station.
power_restoreRestores power to all rooms on the station.
power_restore_quickA quicker version of /proc/power_restore that only handles recharging SMESs.
power_to_energyConverts the watt to the joule, assuming SSmachines tick rate.
prepare_explosion_turfsReturns a list of turfs in X range from the epicenter +Returns in a unique order, spiraling outwards +This is done to ensure our progressive cache of blast resistance is always valid +This is quite fast
prepare_infuser_entriesGlobal proc that sets up each /datum/infuser_entry sub-type as singleton instances in a list, and returns it.
prepare_lua_editor_listIntermediate step for preparing lists to be passed into the lua editor tgui. +Resolves weakrefs, converts some values without a standard textual representation to text, +and can handle self-referential lists and potential duplicate output keys.
pretty_string_from_reagent_listInput a reagent_list, outputs pretty readable text! +Default output will be formatted as
previous_list_itemReturns the previous item in a list
print_holidayDoes the same as /proc/poll_holiday, but prints the output to admins instead of returning it
print_language_listHelper proc to print a list of languages in a human readable format
priority_announceMake a big red text announcement to
process_chat_colorConverts a given color to comply within a smaller subset of colors to be used in runechat. +If a color is outside the min/max saturation or lum, it will be set at the nearest +value that passes validation.
process_teleport_locsGenerate a list of turfs you can teleport to from the areas list
propagate_networkremove the old powernet and replace it with a new one throughout the network.
qdelShould be treated as a replacement for the 'del' keyword.
radiation_pulseSends out a pulse of radiation, eminating from the source. +Radiation is performed by collecting all radiatables within the max range (0 means source only, 1 means adjacent, etc), +then makes their way towards them. A number, starting at 1, is multiplied +by the insulation amounts of whatever is in the way (for example, walls lowering it down). +If this number hits equal or below the threshold, then the target can no longer be irradiated. +If the number is above the threshold, then the chance is the chance that the target will be irradiated. +As a consumer, this means that max_range going up usually means you want to lower the threshold too, +as well as the other way around. +If max_range is high, but threshold is too high, then it usually won't reach the source at the max range in time. +If max_range is low, but threshold is too low, then it basically guarantees everyone nearby, even if there's walls +and such in the way, can be irradiated. +You can also pass in a minimum exposure time. If this is set, then this radiation pulse +will not irradiate the source unless they have been around any radioactive source for that +period of time. +The chance to get irradiated diminishes over range, and from objects that block radiation. +Assuming there is nothing in the way, the chance will determine what the chance is to get irradiated from half of max_range. +Example: If chance is equal to 30%, and max_range is equal to 8, +then the chance for a thing to get irradiated is 30% if they are 4 turfs away from the pulse source.
ran_zoneReturn the zone or randomly, another valid zone
random_bounty
random_colourReturns a random color picked from a list, has 2 modes (0 and 1), mode 1 doesn't pick white, black or gray
random_fish_typeReturns random fish, using random_case_rarity probabilities.
random_nukecodeReturns a string for a random nuke code
random_stepForces the atom to take a step in a random direction
randomize_human_normieRandomizes a human, but produces someone who looks exceedingly average (by most standards).
ranks_from_rank_nameConverts a rank name (such as "Coder+Moth") into a list of /datum/admin_rank
ratvar2textReverts ravarian styling and rot13 in text.
rcd_result_with_memoryProduces a new RCD result from the given one if it can be calculated that +the RCD should speed up with the remembered form.
rcd_scanGlobal proc that generates RCD hologram in a range.
read_sheetDebug proc, for when lighting sheets fuck up +Accepts the sheet (2 or 3 (multiz) dimensional list of lighting values at some offset) +alongside x and y delta values and the sheet's "offset", which is the amount required to ensure everything indexes at 1 +Optionally, you can pass similar values for multiz stuff
realize_appearance_queueTakes a list of appearnces, makes them mutable so they can be properly vv'd and inspected
reciprocal_addTakes two values x and y, and returns 1/((1/x) + y) +Useful for providing an additive modifier to a value that is used as a divisor, such as /obj/projectile/var/speed
recover_all_SS_and_recreate_masterRecreate all SSs which will still cause data survive due to Recover(), the new Master will then find and take them from global.vars
recursive_list_resolveReturns a list with all weakrefs resolved
recursive_list_resolve_elementHelper for recursive_list_resolve()
recursive_loc_checkRecursively checks if an item is inside a given type/atom, even through layers of storage. Returns the atom if it finds it.
reebe_station_warningTells the station that there's a clockie portal, along with making it usable by all
reject_bad_chattextThe procedure to check the text of the entered text on ntnrc_client.dm
reject_bad_nameFilters out undesirable characters from names.
reject_bad_textReturns the text if properly formatted, or null else.
relay_to_list_and_observersSends a message to everyone within the list, as well as all observers.
remove_clunky_diagonalsProcesses a path (list of turfs), removes any diagonal moves that would lead to a weird bump
remove_diagonalsProcesses a path (list of turfs), removes any diagonal moves
remove_erp_thingsIf the "Remove ERP Interaction" config is disabled, remove ERP things from various lists
remove_image_from_clientRemoves an image from a client's .images. Useful as a callback.
remove_image_from_clientsLike remove_image_from_client, but will remove the image from a list of clients
remove_messengerUnregisters an NTMessenger instance from the pda_messengers table.
remove_non_dm_variantsGiven a list and a list of its variant hints, removes any list key/values that are represent lua values that could not be directly converted to DM.
remove_synth_defib_traumaGlobal timer proc used in defib.dm. Removes the temporary trauma caused by being defibbed as a synth.
remove_verbhandles removing verb and sending it to browser to update, use this for removing verbs
rename_arearename_area +Renames an area to the given new name, updating all machines' names and firedoors +to properly ensure alarms and machines are named correctly at all times. +Args:
request_station_colorsCalled by decals if they can be colored, to see if we got some cool colors for them. Only takes the first station trait
request_z_pillarReturns a z pillar to insert turfs into
reset_cooldownProc used by stoppable timers to end a cooldown before the time has ran out.
reset_religionIt's time to kill GLOB +Reset religion to its default state so the new chaplain becomes high priest and can change the sect, armor, weapon type, etc +Also handles the selection of a holy successor from existing crew if multiple chaplains are on station.
reset_religious_sectRemoves any existing religious sect from chaplains, allowing another to be selected
resolve_ai_icon_syncA form of resolve_ai_icon that is guaranteed to never sleep. +Not always accurate, but always synchronous.
retrieve_ban_cacheGets the ban cache of the passed in client +If the cache has not been generated, we start off a query +If we still have a query going for this request, we just sleep until it's received back
return_atmos_handbooksReturns an assoc list of the gas handbook and the reaction handbook. +For UIs, simply do data += return_atmos_handbooks() to use.
return_generator_argsreturns the arguments given to a generator and manually extracts them from the internal byond object +returns:
return_unused_frequencyreturns a random unused frequency between MIN_FREE_FREQ & MAX_FREE_FREQ if free = TRUE, and MIN_FREQ & MAX_FREQ if FALSE
reverse_angle180s an angle
reverse_rangereplaces reverseList ~Carnie
rgb2hsvConverts an rgb color into a list storing hsva +Exists because it's useful to have a guaranteed alpha value
rustg_get_versionGets the version of rust_g
rustg_unix_timestampReturns the timestamp as a string
safe_read_prefSafely read a given preference datum from a given client.
sanitizeRuns byond's html encoding sanitization proc, after replacing new-lines and tabs for the # character.
sanitize_colorMakes sure the input color is text with a # at the start followed by 6 hexadecimal characters. Examples: "#ff1234", "#A38321", COLOR_GREEN_GRAY
sanitize_css_class_nameRemoves all non-alphanumerics from the text, keep in mind this can lead to id conflicts
sanitize_filepathSanitizes the name of each node in the path.
sanitize_frequencyEnsure the frequency is within bounds of what it should be sending/receiving at
sanitize_namereturns nothing with an alert instead of the message if it contains something in the ic filter, and sanitizes normally if the name is fine. It returns nothing so it backs out of the input the same way as if you had entered nothing.
scramble_message_replace_charsSlightly expensive proc to scramble a message using equal probabilities of character replacement from a list. DOES NOT SUPPORT HTML!
screen_loc_to_offsetTakes a screen loc string in the format +"+-left-offset:+-pixel,+-bottom-offset:+-pixel" +Where the :pixel is optional, and returns +A list in the format (x_offset, y_offset) +We require context to get info out of screen locs that contain relative info, so NORTH, SOUTH, etc
screen_loc_to_turfAlmost identical to the params_to_turf(), but unused (remove?)
screen_textReturn an object with a new maptext (not currently in use)
seedRuinsLoads the ruins for a given z level. +@param z_levels The z levels to load ruins on. +@param budget The budget to spend on ruins. Compare against the cost of the ruins in /datum/map_template/ruin. +@param whitelist A list of areas to allow ruins to be placed in. +@param potentialRuins A list of ruins to choose from. +@param clear_below Whether to clear the area below the ruin. Used for multiz ruins. +@param mineral_budget The budget to spend on ruins that spawn ore vents. Map templates with vents have that defined by mineral_cost. +@param mineral_budget_update What type of ore distribution should spawn from ruins picked by this cave generator? This list is copied from ores_spawned.dm into SSore_generation.ore_vent_minerals.
seedifyFinds and extracts seeds from an object
select_hallucination_typeHelper to give the passed mob the ability to select a hallucination from the list of all hallucination subtypes.
semver_to_listConverts a semver string into a list of numbers
send2adminchatAsynchronously sends a message to TGS admin chat channels.
send2chatAsynchronously sends a message to TGS chat channels.
send2otherserverSends a message to a set of cross-communications-enabled servers using world topic calls
send_clock_messageSend sent_message to all other clock cultists and ghosts from the user
send_exported_mapA procedure for saving DMM text to a file and then sending it to the user. +Arguments:
send_fax_to_areaSends a fax to a fax machine in an area! fax_area is a type, where all subtypes are also queried. If multiple machines, one is randomly picked +If force is TRUE, we send a droppod with a fax machine and fax the message to that fax machine
send_ooc_announcementSends a div formatted chat box announcement
send_supply_pod_to_areaEasily send a supplypod to an area
send_tip_of_the_roundSends a round tip to a target. If selected_tip is null, a random tip will be sent instead (5% chance of it being silly). +Tips that starts with the @ character won't be html encoded. That's necessary for any tip containing markup tags, +just make sure they don't also have html characters like <, > and ' which will be garbled.
send_to_observersSends a message to all dead and observing players, if a source is provided a follow link will be attached.
send_to_playing_playerssends a whatever to all playing players; use instead of to_chat(world, where needed)
serialize_antag_nameSerializes an antag name to be used for preferences UI
set_area_machinery_titleRenames all machines in a defined area from the old title to the new title. +Used when renaming an area to ensure that all machiens are labeled the new area's machine. +Args:
set_dynamic_human_appearanceThis proc gets an argument of a target and runs
set_job_exempt_stateSets the job exempt state of a ckey to desired state
set_network_broadcast_statusSets the camera network status on all entertainment monitors. +A way to force a network to a status if you are unsure of the current state.
set_new_religious_sectSets a new religious sect used by all chaplains int he round
setupExportsCalled when the global exports_list is empty, and sets it up.
setup_clockwork_researchReturns a list of every initialized clockwork research datum
setup_mod_themesGlobal proc that sets up all MOD themes as singletons in a list and returns it.
setup_round_default_lawsfirst called when something wants round default laws for the first time in a round, considers config +returns a law datum that GLOB._round_default_lawset will be set to.
shake_cameraShake the camera of the person viewing the mob SO REAL! +Takes the mob to shake, the time span to shake for, and the amount of tiles we're allowed to shake by in tiles +Duration isn't taken as a strict limit, since we don't trust our coders to not make things feel shitty. So it's more like a soft cap.
sheet2amountTurns number of sheets into material amount, returning FALSE if the number is <= 0
should_have_space_before_emoteReturns a boolean based on whether or not the string contains a comma or an apostrophe, +to be used for emotes to decide whether or not to have a space between the name of the user +and the emote.
show_job_exempt_menuDisplays the job exempt menu UI to target admin user
shuffleRandomize: Return the list in a random order
shuffle_inplacesame as shuffle, but returns nothing and acts on list in place
siunitFormats a number to human readable form with the appropriate SI unit.
siunit_isolatedFormats a number into a list representing the si unit. +Access the coefficient with [SI_COEFFICIENT], and access the unit with [SI_UNIT].
siunit_pressure
slice_off_turfsReturns a slice of a list of turfs, defined by the ones that are inside the inner/outer angle's bounds
sm_gas_dataReturn a list info of the SM gases. +Can only run after init_sm_gas
sortInsert
sortMerge
sortTim
sort_keyfor sorting clients or mobs by ckey
sort_listsort any value in a list
sort_mobsOrders mobs by type then by name. Accepts optional arg to sort a custom list, otherwise copies GLOB.mob_list.
sort_namesuses sort_list() but uses the var's name specifically. This should probably be using mergeAtom() instead
sort_recordSpecifically for record datums in a list.
spanning_screen_locReturns a screen_loc format for a tiling screen objects from start and end positions. Start should be bottom left corner, and end top right corner.
spawn_reebeSpawn reebe with the appropriate fanfare after sacrificing a blood cultist
special_list_filterReturns a list with items filtered from a list that can call callback
spiral_rangesimilar function to range(), but with no limitations on the distance; will search spiralling outwards from the center
spiral_range_turfssimilar function to RANGE_TURFS(), but will search spiralling outwards from the center (like the above, but only turfs)
split_colorGiven a color in the format of "#RRGGBB" or "#RRGGBBAA", gives back a 4 entry list with the number values of each
split_materials_uniformlydivides a list of materials uniformly among all contents of the target_object recursively +Used to set materials of printed items with their design cost by taking into consideration their already existing materials +e.g. if 12 iron is to be divided uniformly among 2 objects A, B who's current iron contents are 3 & 7 +Then first we normalize those values i.e. find their weights to decide who gets an higher share of iron +total_sum = 3 + 7 = 10, A = 3/10 = 0.3, B = 7/10 = 0.7 +Then we finally multiply those weights with the user value of 12 we get +A = 0.3 * 12 = 3.6, B = 0.7 * 12 = 8.4 i.e. 3.6 + 8.4 = 12!! +Off course we round the values so we don't have to deal with floating point materials so the actual value +ends being less but that's not an issue +Arguments
spread_reagentsExposes all accessible atoms within some distance of an epicenter to some reagents. +Does not clear the source reagent holder; that must be done manually if it is desired.
starsConvert random parts of a passed in message to stars
start_broadcasting_networkAdds a camera network to all entertainment monitors.
start_poll_cultists_for_leaderStart the poll for Cult Leaeder.
start_unequip_mobA utility function for /datum/strippable_items to start unequipping an item from a mob.
started_narsie_summonWhen narsie begins to be summoned, slowly dim the saturation of parallax and starlight
starts_with_anyReturns TRUE if the input_text starts with any of the beginnings
stifledFor when you're only able to speak a limited amount of words +phrase - the string to convert +definitive_limit - the amount of words to limit the phrase to, optional
stop_broadcasting_networkRemoves a camera network from all entertainment monitors.
stoplagreturns the number of ticks slept
string_listCaches lists with non-numeric stringify-able values (text or typepath).
strip_htmlRuns STRIP_HTML_SIMPLE and sanitize.
strip_html_fullRuns STRIP_HTML_FULL and sanitize.
stripped_inputUsed to get a properly sanitized input. Returns null if cancel is pressed.
stripped_multiline_inputUsed to get a properly sanitized input in a larger box. Works very similarly to stripped_input.
summon_eventsTriggers Summon Events from [user]. +If Summon Events has already been triggered, speeds up the event timer.
summon_ghostsTriggers Summon Ghosts from [user].
summon_gunsTriggers Summon Guns from [user]. +Can optionally be passed [survivor_probability], to set the chance of creating survivalists. +If Summon Guns has already been triggered, gives out guns to everyone again.
summon_magicTriggers Summon Magic from [user]. +Can optionally be passed [survivor_probability], to set the chance of creating survivalists. +If Summon Magic has already been triggered, gives out magic to everyone again.
swap_rangeMove elements from [from_index, from_index+len) to [to_index, to_index+len) +Move any elements being overwritten by the move to the now-empty elements, preserving order +Note: if the two ranges overlap, only the destination order will be preserved fully, since some elements will be within both ranges ~Carnie
techweb_item_unlock_checkReturns an associative list of techweb node datums with values of the nodes it unlocks.
test_whiteship_sizesHelper proc that tests to ensure all whiteship templates can spawn at their docking port, and logs their sizes +This should be a unit test, but too much of our other code breaks during shuttle movement, so not yet, not yet.
text2ratvarTakes english and applies ratvarian styling rules (and rot13) to it.
tgalertDEPRECATED: USE tgui_alert(...) INSTEAD
tgm_encodeTakes a constant, encodes it into a TGM valid string
tgui_TopicMiddleware for /client/Topic.
tgui_alertCreates a TGUI alert window and returns the user's response.
tgui_input_checkboxes
tgui_input_keycomboCreates a TGUI window with a key input. Returns the user's response as a full key with modifiers, eg ShiftK.
tgui_input_listCreates a TGUI input list window and returns the user's response.
tgui_input_numberCreates a TGUI window with a number input. Returns the user's response as num | null.
tgui_input_textCreates a TGUI window with a text input. Returns the user's response.
time_to_twelve_hourConverts a time expressed in deciseconds (like world.time) to the 12-hour time format. +the format arg is the format passed down to time2text() (e.g. "hh:mm" is hours and minutes but not seconds). +the timezone is the time value offset from the local time. It's to be applied outside time2text() to get the AM/PM right.
timeleftGet the remaining deciseconds on a timer
to_chatSends the message to the recipient (target).
to_chat_immediateCircumvents the message queue and sends the message +to the recipient (target) as soon as possible.
toggle_id_ctfProc that handles toggling and unloading CTF.
tool_behaviour_namereturns an ic name of the tool needed +Arguments:
truncateTruncate a string to the given length
try_move_adjacentTries to move an atom to an adjacent turf, return TRUE if successful
turf_peelBehaves like the orange() proc, but only looks in the outer range of the function (The "peel" of the orange). +This is useful for things like checking if a mob is in a certain range, but not within a smaller range.
typecache_filter_listreturns a new list with only atoms that are in the typecache list
typecache_filter_list_reversereturn a new list with atoms that are not in the typecache list
typecache_filter_multi_list_exclusionsimilar to typecache_filter_list and typecache_filter_list_reverse but it supports an inclusion list and and exclusion list
typecacheofLike typesof() or subtypesof(), but returns a typecache instead of a list.
ui_status_only_livingReturns a UI status such that the dead will be able to watch, but not interact.
ui_status_silicon_has_accessReturns a UI status such that silicons will be able to interact with whatever +they would have access to if this was a machine. For example, AIs can +interact if there's cameras with wireless control is enabled.
ui_status_user_has_free_handsReturns a UI status such that those without blocked hands will be able to interact, +but everyone else can only watch.
ui_status_user_is_abledReturns a UI status such that users with debilitating conditions, such as +being dead or not having power for silicons, will not be able to interact. +Being dead will disable UI, being incapacitated will continue updating it, +and anything else will make it interactive.
ui_status_user_is_adjacentReturns a UI status such that users adjacent to source will be able to interact, +far away users will be able to see, and anyone farther won't see anything. +Dead users will receive updates no matter what, though you likely want to add +a [ui_status_only_living] check for finer observer interactions.
ui_status_user_is_advanced_tool_userReturns a UI status such that advanced tool users will be able to interact, +but everyone else can only watch.
ui_status_user_is_conscious_and_lying_downReturns UI_INTERACTIVE if the user is conscious and lying down. +Returns UI_UPDATE otherwise.
ui_status_user_strictly_adjacentReturn UI_INTERACTIVE if the user is strictly adjacent to the target atom, whether they can see it or not. +Return UI_CLOSE otherwise.
unformat_frequencyOpposite of format, returns as a number
unique_listReturn a list with no duplicate entries
unique_list_in_placesame as unique_list, but returns nothing and acts on list in place (also handles associated values properly)
unvalidated_client_errorProc that just logs whenever an uninitialized client tries to do something before they have fully gone through New(). +Intended to be used in conjunction with the VALIDATE_CLIENT_INITIALIZATION() macro, but can be dropped anywhere when we look at the fully_created var on /client.
update_all_security_hudsUpdates the visual security huds on all mobs in GLOB.human_list
update_matching_security_hudsUpdates the visual security huds on all mobs in GLOB.human_list that match the name passed to it.
updatetimedelayUpdate the delay on an existing LOOPING timer +Will come into effect on the next process
urangeultra range (no limitations on distance, faster than range for distances > 8); including areas drastically decreases performance
url2htmlloaderReturn html to load a url. +for use inside of browse() calls to html assets that might be loaded on a cdn.
valid_build_directionChecks whether the target turf is in a valid state to accept a directional construction +such as windows or railings.
validate_suppression_statusCheck if the delam suppression setup is valid on the map
view_to_pixelsTakes a string or num view, and converts it to pixel width/height in a list(pixel_width, pixel_height)
visible_hallucination_pulseEmits a hallucinating pulse around the passed atom. +Affects everyone in the passed radius who can view the center, +except for those with TRAIT_MADNESS_IMMUNE, or those who are blind.
weakrefify_listReturns a copy of the list where any element that is a datum is converted into a weakref
wear_taur_versionProc that handles returning a mutable appearance that can fit on a taur body without looking too janky!
web_soundTakes an input from either proc/play_web_sound or the request manager and runs it through yt-dlp and prompts the user before playing it to the server.
weekday_to_isoReturns a string day as an integer in ISO format 1 (Monday) - 7 (Sunday)
weight_class_to_textReturns a string based on the weight class define used as argument
window_flashFlash the window of a player
woundscanDisplays wounds with extended information on their status vs medscanners
write_mapProcedure for converting a coordinate-selected part of the map into text for the .dmi format
zebra_typecacheofLike typesof() or subtypesof(), but returns a typecache instead of a list. +This time it also uses the associated values given by the input list for the values of the subtypes.

Var Details

Failsafe

Failsafe

+

Pretty much pokes the MC to make sure it's still alive.

Master

StonedMC

+

Designed to properly split up a given tick among subsystems +Note: if you read parts of this code and think "why is it doing it that way" +Odds are, there is a reason

SSaccessories

subsystem that just holds lists of sprite accessories for accession in generating said sprites. +A sprite accessory is something that we add to a human sprite to make them look different. This is hair, facial hair, underwear, mutant bits, etc.

SSacid

The subsystem used to tick /datum/component/acid instances.

SSai_behaviors

The subsystem used to tick /datum/ai_behavior instances. Handling the individual actions an AI can take like punching someone in the fucking NUTS

SSai_controllers

The subsystem used to tick /datum/ai_controllers instances. Handling the re-checking of plans.

SSai_movement

The subsystem used to tick /datum/ai_movement instances. Handling the movement of individual AI instances

SSambience

The subsystem used to play ambience to users every now and then, makes them real excited.

SSarea_contents

Responsible for managing the sizes of area.contained_turfs and area.turfs_to_uncontain +These lists do not check for duplicates, which is fine, but it also means they can balloon in size over time +as a consequence of repeated changes in area in a space +They additionally may not always resolve often enough to avoid memory leaks +This is annoying, so lets keep an eye on them and cut them down to size if needed

SSarmaments

Armament entries

+

These are basic entries that are compiled into the global list of armaments. +It is strongly suggested that if you wish to make your own armaments station, you +create your own entries.

+

Armament stations are capable of having a restricted list of products, which you should fill if you plan on making +your own station. This is the products variable. If you plan on using the premade list, you can leave this empty.

+

Create your own file with all of the entries if you do wish to make your own custom armaments vendor.

+

@author Gandalf2k15

SSasset_loading

Allows us to lazyload asset datums +Anything inserted here will fully load if directly gotten +So this just serves to remove the requirement to load assets fully during init

SSaura

The subsystem used to tick auras (/datum/component/aura_healing and /datum/component/damage_aura).

SSautomapper

The AUTOMAPPER

+

This is a subsystem designed to make modular mapping far easier.

+

It does two things: Loads maps from an automapper config and loads area spawn datums for simpler items.

+

The benefits? We no longer need to have _skyrat maps and can have a more unique feeling map experience as each time, it can be different.

+

Please note, this uses some black magic to interject the templates mid world load to prevent mass runtimes down the line.

+

LIMITED SUPPORT FOR NON-STATION LEVELS(until someone adds a better Z level handling system for this)

SSban_cache

Subsystem that batches a ban cache list for clients on initialize +This way we don't need to do ban checks in series later in the code

SSburning

The subsystem used to tick /datum/component/burning instances.

SScliff_falling

Subsystem to handle falling of off cliffs

SSclock_component

The subsystem used to tick /datum/component/acid instances.

SSdigital_clock

The subsystem used to tick digital clocks

SSdiscord

Discord Subsystem

+

This subsystem handles some integrations with discord

+

NOTES:

+
    +
  • There is a DB table to track ckeys and associated discord IDs. (discord_link)
  • +
  • This system REQUIRES TGS for notifying users at end of the round
  • +
  • The SS uses fire() instead of just pure shutdown, so people can be notified if it comes back after a crash, where the SS wasn't properly shutdown
  • +
  • It only writes to the disk every 5 minutes, and it won't write to disk if the file is the same as it was the last time it was written. This is to save on disk writes
  • +
  • The system is kept per-server (EG: Terry will not notify people who pressed notify on Sybil), but the accounts are between servers so you dont have to relink on each server.
  • +
+

HOW NOTIFYING WORKS

ROUNDSTART:

+
    +
  1. The file is loaded and the discord IDs are extracted
  2. +
  3. A ping is sent to the discord with the IDs of people who wished to be notified
  4. +
  5. The file is emptied
  6. +
+

MIDROUND:

+
    +
  1. Someone usees the notify verb, it adds their discord ID to the list.
  2. +
  3. On fire, it will write that to the disk, as long as conditions above are correct
  4. +
+

END ROUND:

+
    +
  1. The file is force-saved, incase it hasn't fired at end round
  2. +
+

This is an absolute clusterfuck, but its my clusterfuck -aa07

SSearly_assets

Initializes any assets that need to be loaded ASAP. +This houses preference menu assets, since they can be loaded at any time, +most dangerously before the atoms SS initializes. +Thus, we want it to fail consistently in CI as if it would've if a player +opened it up early.

SSescape_menu

Subsystem for controlling anything related to the escape menu

SSfishing

subsystem for the fishing minigame processing.

SSfluids

Fluid Subsystem

+

A subsystem that processes the propagation and effects of a particular fluid.

+

Both fluid spread and effect processing are handled through a carousel system. +Fluids being spread and fluids being processed are organized into buckets. +Each fresh (non-resumed) fire one bucket of each is selected to be processed. +These selected buckets are then fully processed. +The next fresh fire selects the next bucket in each set for processing. +If this would walk off the end of a carousel list we wrap back to the first element. +This effectively makes each set a circular list, hence a carousel.

SSfoam

The subsystem responsible for processing foam propagation and effects.

SSgoldeneye

GoldenEye defence network

+

Contains: Subsystem, Keycard, Terminal and Objective

SShyperspace_drift

This subsystem handles the hyperspace shuttle pull movement loops

SSid_access

Non-processing subsystem that holds various procs and data structures to manage ID cards, trims and access.

SSinit_profiler

Subsystem exists so we can separately log init time costs from the costs of general operation +Hopefully this makes sorting out what causes problems when easier

SSlag_switch

The subsystem for controlling drastic performance enhancements aimed at reducing server load for a smoother albeit slightly duller gaming experience

SSlibrary

Manages library data, loading bookselves, etc

SSlooting

Queues image generation for search objects without icons

SSmouse_entered

Defers MouseEntered inputs to only apply to the most recently hovered over atom in the tick

SSnewtonian_movement

The subsystem is intended to tick things related to space/newtonian movement, such as constant sources of inertia

SSpathfinder

Queues and manages JPS pathfinding steps

SSpoints_of_interest

Subsystem for managing all POIs.

SSradioactive_nebula

Controls making objects irradiated when Radioactive Nebula is in effect.

SSsinguloprocess

Very rare subsystem, provides any active singularities with the timings and seclusion they need to succeed

SSsmoke

The subsystem responsible for processing smoke propagation and effects.

SSspatial_grid

Spatial Grid

+

a gamewide grid of spatial_grid_cell datums, each "covering" SPATIAL_GRID_CELLSIZE ^ 2 turfs. +each spatial_grid_cell datum stores information about what is inside its covered area, so that searches through that area dont have to literally search +through all turfs themselves to know what is within it since view() calls are expensive, and so is iterating through stuff you dont want. +this allows you to only go through lists of what you want very cheaply.

+

you can also register to objects entering and leaving a spatial cell, this allows you to do things like stay idle until a player enters, so you wont +have to use expensive view() calls or iteratite over the global list of players and call get_dist() on every one. which is fineish for a few things, but is +k * n operations for k objects iterating through n players.

+

currently this system is only designed for searching for relatively uncommon things, small subsets of /atom/movable. +dont add stupid shit to the cells please, keep the information that the cells store to things that need to be searched for often

+

The system currently implements two different "classes" of spatial type

+

The first exists to support important_recursive_contents. +So if a client is inside a locker and the locker crosses a boundary, you'll still get a signal from the spatial grid. +These types are SPATIAL_GRID_CONTENTS_TYPE_HEARING and SPATIAL_GRID_CONTENTS_TYPE_CLIENTS

+

The second pattern is more paired down, and supports more wide use. +Rather then the object and anything the object is in being sensitive, it's limited to just the object itself +Currently only SPATIAL_GRID_CONTENTS_TYPE_ATMOS uses this pattern. This is because it's far more common, and so worth optimizing

SSspeech_controller

verb_manager subsystem just for handling say's

SStgui

tgui subsystem

+

Contains all tgui state and subsystem code.

SSticket_ping

Pings admins every (time chosen in config) for all open tickets/OPFOR applications

SStimer

Timer Subsystem

+

Handles creation, callbacks, and destruction of timed events.

+

It is important to understand the buckets used in the timer subsystem are just a series of doubly-linked +lists. The object at a given index in bucket_list is a /datum/timedevent, the head of a list, which has prev +and next references for the respective elements in that bucket's list.

SStutorials

Namespace for housing code relating to giving contextual tutorials to users.

SSunplanned_controllers

Handles making mobs perform lightweight "idle" behaviors such as wandering around when they have nothing planned

SSverb_manager

SSverb_manager, a subsystem that runs every tick and runs through its entire queue without yielding like SSinput. +this exists because of how the byond tick works and where user inputted verbs are put within it.

+

see TICK_ORDER.md for more info on how the byond tick is structured.

+

The way the MC allots its time is via TICK_LIMIT_RUNNING, it simply subtracts the cost of SendMaps (MAPTICK_LAST_INTERNAL_TICK_USAGE) +plus TICK_BYOND_RESERVE from the tick and uses up to that amount of time (minus the percentage of the tick used by the time it executes subsystems) +on subsystems running cool things like atmospherics or Life or SSInput or whatever.

+

Without this subsystem, verbs are likely to cause overtime if the MC uses all of the time it has allotted for itself in the tick, and SendMaps +uses as much as its expected to, and an expensive verb ends up executing that tick. This is because the MC is completely blind to the cost of +verbs, it can't account for it at all. The only chance for verbs to not cause overtime in a tick where the MC used as much of the tick +as it allotted itself and where SendMaps costed as much as it was expected to is if the verb(s) take less than TICK_BYOND_RESERVE percent of +the tick, which isn't much. Not to mention if SendMaps takes more than 30% of the tick and the MC forces itself to take at least 70% of the +normal tick duration which causes ticks to naturally overrun even in the absence of verbs.

+

With this subsystem, the MC can account for the cost of verbs and thus stop major overruns of ticks. This means that the most important subsystems +like SSinput can start at the same time they were supposed to, leading to a smoother experience for the player since ticks aren't riddled with +minor hangs over and over again.

SSvore

Used to handle global hooks like Login and process bellies

SSwardrobe

This subsystem strives to make loading large amounts of select objects as smooth at execution as possible +It preloads a set of types to store, and caches them until requested +Doesn't catch everything mind, this is intentional. There's many types that expect to either +A: Not sit in a list for 2 hours, or B: have extra context passed into them, or for their parent to be their location +You should absolutely not spam this system, it will break things in new and wonderful ways +S close enough for government work though. +Fuck you goonstation

SSweather

Used for all kinds of weather, ex. lavaland ash storms.

SSwiremod_composite

This subsystem is to handle creating and storing +composite templates that are used to create composite datatypes +for integrated circuits

+

See: https://en.wikipedia.org/wiki/Composite_data_type

Proc Details

GUID

returns a GUID like identifier (using a mostly made up record format) +guids are not on their own suitable for access or security tokens, as most of their bits are predictable. +(But may make a nice salt to one)

GetBestWeapon

Returns either the best weapon from the given choices or null if held weapons are better

GetTgsStealthKey

Gets TGS's stealth key, generates one if none is found

Gibberish

Turn text into complete gibberish!

+

text is the inputted message, replace_characters will cause original letters to be replaced and chance are the odds that a character gets modified.

HandleUserlessProcCall

Handles a userless proccall, used by circuits.

+

Arguments:

+
    +
  • user - a string used to identify the user
  • +
  • target - the target to proccall on
  • +
  • proc - the proc to call
  • +
  • arguments - any arguments
  • +

HandleUserlessSDQL

Handles a userless sdql, used by circuits and tgs.

+

Arguments:

+
    +
  • user - a string used to identify the user
  • +
  • query_text - the query text
  • +

IsEdible

returns if something can be consumed, drink or food

REF

\ref behaviour got changed in 512 so this is necesary to replicate old behaviour. +If it ever becomes necesary to get a more performant REF(), this lies here in wait +#define REF(thing) (thing && isdatum(thing) && (thing:datum_flags & DF_USE_TAG) && thing:tag ? "[thing:tag]" : text_ref(thing))

RoundDiagBar

Diagnostic HUDs!

WEAKREF

Creates a weakref to the given input. +See /datum/weakref's documentation for more information.

WrapAdminProcCall

Wrapper for proccalls where the datum is flagged as vareditted

___TraitAdd

DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.

___TraitRemove

DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.

______qdel_list_wrapper

the underscores are to encourage people not to use this directly.

__check_serialization_semver

Checks if the actual semver is equal or later than the wanted semver +Must be passed as TEXT; you're probably looking for CHECK_SERIALIZATION_SEMVER, look right above

__lua_awaken

Dequeues the task at the front of the sleep queue and resumes it

+

required state text a pointer to the state in which +to resume a task

+

return list|text|null a list of lua return information, +an error message if the state is corrupted, +or null if the sleep queue is empty

+

Lua return information is formatted as followed:

+
    +
  • ["status"]: How the chunk or function stopped code execution +
      +
    • "sleeping": The chunk or function called dm.sleep, +placing it in the sleep queue. Items in the sleep +queue can be resumed using /proc/__lua_awaken
    • +
    • "yielded": The chunk or function called coroutine.yield, +placing it in the yield table. Items in the yield +table can can be resumed by passing their index +to /proc/__lua_resume
    • +
    • "finished": The chunk or function finished
    • +
    • "errored": The chunk or function produced an error
    • +
    • "bad return": The chunk or function yielded or finished, +but its return value could not be converted to DM values
    • +
    +
  • +
  • ["param"]: Depends on status. +
      +
    • "sleeping": null
    • +
    • "yielded" or "finished": The return/yield value(s)
    • +
    • "errored" or "bad return": The error message
    • +
    +
  • +
  • ["yield_index"]: The index in the yield table where the +chunk or function is located, for calls to __lua_resume
  • +
  • ["name"]: The name of the chunk or function, for logging
  • +

__lua_call

Calls a lua function

+

required state text a pointer to the state +in which to call the function +required function text the name of the function to call +optional arguments list arguments to pass to the function

+

return list|text a list of lua return information +or an error message if the state was corrupted

+

Lua return information is formatted as followed:

+
    +
  • ["status"]: How the chunk or function stopped code execution +
      +
    • "sleeping": The chunk or function called dm.sleep, +placing it in the sleep queue. Items in the sleep +queue can be resumed using /proc/__lua_awaken
    • +
    • "yielded": The chunk or function called coroutine.yield, +placing it in the yield table. Items in the yield +table can can be resumed by passing their index +to /proc/__lua_resume
    • +
    • "finished": The chunk or function finished
    • +
    • "errored": The chunk or function produced an error
    • +
    • "bad return": The chunk or function yielded or finished, +but its return value could not be converted to DM values
    • +
    +
  • +
  • ["param"]: Depends on status. +
      +
    • "sleeping": null
    • +
    • "yielded" or "finished": The return/yield value(s)
    • +
    • "errored" or "bad return": The error message
    • +
    +
  • +
  • ["yield_index"]: The index in the yield table where the +chunk or function is located, for calls to __lua_resume
  • +
  • ["name"]: The name of the chunk or function, for logging
  • +

__lua_get_globals

Get the variables within a state's environment. +Values not convertible to DM values are substituted +for their types as text

+

required state text a pointer to the state +to get the variables from

+

return list the variables of the state's environment

__lua_get_tasks

Get a list of all tasks currently in progress within a state

+

required state text a pointer to the state +to get the tasks from

+

return list a list of the state's tasks, formatted as follows:

+
    +
  • name: The name of the task
  • +
  • status: Whether the task is sleeping or yielding
  • +
  • index: The index of the task in the sleep queue +or yield table, whichever is applicable
  • +

__lua_kill_task

Kills a task in progress

+

required state text a pointer to the state +in which to kill a task +required info list the task info

__lua_load

Loads a chunk of lua source code and executes it

+

required state text a pointer to the state +in which to execute the code +required script text the lua source code to execute +optional name text a name to give to the chunk

+

return list|text a list of lua return information +or an error message if the state was corrupted

+

Lua return information is formatted as followed:

+
    +
  • ["status"]: How the chunk or function stopped code execution +
      +
    • "sleeping": The chunk or function called dm.sleep, +placing it in the sleep queue. Items in the sleep +queue can be resumed using /proc/__lua_awaken
    • +
    • "yielded": The chunk or function called coroutine.yield, +placing it in the yield table. Items in the yield +table can can be resumed by passing their index +to /proc/__lua_resume
    • +
    • "finished": The chunk or function finished
    • +
    • "errored": The chunk or function produced an error
    • +
    • "bad return": The chunk or function yielded or finished, +but its return value could not be converted to DM values
    • +
    +
  • +
  • ["param"]: Depends on status. +
      +
    • "sleeping": null
    • +
    • "yielded" or "finished": The return/yield value(s)
    • +
    • "errored" or "bad return": The error message
    • +
    +
  • +
  • ["yield_index"]: The index in the yield table where the +chunk or function is located, for calls to __lua_resume
  • +
  • ["name"]: The name of the chunk or function, for logging
  • +

__lua_new_state

Creates a new lua state.

+

return text a pointer to the created state.

__lua_resume

Removes the task at the specified index from the yield table +and resumes it

+

required state text a pointer to the state in which to +resume a task +required index number the index in the yield table of the +task to resume +optional arguments list the arguments to resume the task with

+

return list|text|null a list of lua return information, +an error message if the state is corrupted, +or null if there is no task at the specified index

+

Lua return information is formatted as followed:

+
    +
  • ["status"]: How the chunk or function stopped code execution +
      +
    • "sleeping": The chunk or function called dm.sleep, +placing it in the sleep queue. Items in the sleep +queue can be resumed using /proc/__lua_awaken
    • +
    • "yielded": The chunk or function called coroutine.yield, +placing it in the yield table. Items in the yield +table can can be resumed by passing their index +to /proc/__lua_resume
    • +
    • "finished": The chunk or function finished
    • +
    • "errored": The chunk or function produced an error
    • +
    • "bad return": The chunk or function yielded or finished, +but its return value could not be converted to DM values
    • +
    +
  • +
  • ["param"]: Depends on status. +
      +
    • "sleeping": null
    • +
    • "yielded" or "finished": The return/yield value(s)
    • +
    • "errored" or "bad return": The error message
    • +
    +
  • +
  • ["yield_index"]: The index in the yield table where the +chunk or function is located, for calls to __lua_resume
  • +
  • ["name"]: The name of the chunk or function, for logging
  • +

__lua_set_datum_proc_call_wrapper

Sets a global proc to call in place of just outright calling a given proc on a datum

+

The proc will be called with the arguments (datum/thing_to_call, proc_to_call, list/arguments)

+

required wrapper text the name of the proc to use as the wrapper

__lua_set_execution_limit

Sets the maximum amount of time a lua chunk or function can execute without sleeping or yielding. +Chunks/functions that exceed this duration will produce an error.

+

required limit number the execution limit, in milliseconds

__lua_set_global_proc_call_wrapper

Sets a global proc to call in place of just outright calling a given global proc

+

The proc will be called with the arguments (proc_to_call, list/arguments)

+

required wrapper text the name of the proc to use as the wrapper

__lua_set_print_wrapper

Sets a global proc as a wrapper for lua's print function

+

The proc will be called with the arguments (state_id, list/arguments)

+

required wrapper text the name of the proc to use as the wrapper

__lua_set_set_var_wrapper

Sets a global proc to call in place of just outright setting a datum's var to a given value

+

The proc will be called with the arguments (datum/datum_to_modify, var_name, value)

+

required wrapper text the name of the proc to use as the wrapper

_add_memory_in_range

Unless you need to use this for an explicit reason, use the add_memory_in_range macro wrapper.

_addtimer

Create a new timer and insert it in the queue. +You should not call this directly, and should instead use the addtimer macro, which includes source information.

+

Arguments:

+
    +
  • callback the callback to call on timer finish
  • +
  • wait deciseconds to run the timer for
  • +
  • flags flags for this timer, see: code__DEFINES\subsystems.dm
  • +
  • timer_subsystem the subsystem to insert this timer into
  • +

_alert_drones

Broadcast a message to all drones in a faction

+

Arguments:

+
    +
  • msg - The message to send
  • +
  • dead_can_hear - Boolean that determines if ghosts can hear the message (FALSE by default)
  • +
  • source - /atom source that created the message
  • +
  • faction_checked_mob - /mob/living to determine faction matches from
  • +
  • exact_faction_match - Passed to [/mob/proc/faction_check_atom]
  • +

_animate_filter

Auxtools REALLY doesn't know how to handle filters as values; +when passed as arguments to auxtools-called procs, they aren't simply treated as nulls - +they don't even count towards the length of args. +For example, calling some_proc([a filter], foo, bar) from auxtools +is equivalent to calling some_proc(foo, bar). Thus, we can't use _animate directly on filters. +Use this to perform animation steps on a filter. Consecutive steps on the same filter can be +achieved by calling _animate with no target.

_export_loop

The main bit responsible for selling the item. Shared by export_single_item() and export_item_and_contents()

_malf_ai_undo_lockdown

For Lockdown malf AI ability. Opens all doors on the station.

_pick_list

Allow me to explain +for some reason, if pick() is passed arglist(args) directly and args contains only one list +it considers it to be a list of lists +this means something like _pick(list) would fail +need to do this instead

+

I hate this timeline

_queue_verb

queue a callback for the given verb/verblike proc and any given arguments to the specified verb subsystem, so that they process in the next tick. +intended to only work with verbs or verblike procs called directly from client input, use as part of TRY_QUEUE_VERB() and co.

+

returns TRUE if the queuing was successful, FALSE otherwise.

_save_map

Hey bud don't call this directly, it exists so we can invoke async and prevent the buildmode datum being qdel'd from halting this proc

_stack_trace

gives us the stack trace from CRASH() without ending the current proc. +Do not call directly, use the stack_trace macro instead.

above_neck

Would this zone be above the neck

actionspeed_data_null_check

Checks if a action speed modifier is valid and not missing any data

active_free_borgs

Silicon Mob Procs

add_image_to_client

Adds an image to a client's .images. Useful as a callback.

add_image_to_clients

Like add_image_to_client, but will add the image from a list of clients

add_keybinding

Adds an instanced keybinding to the global tracker

add_lua_editor_variants

Given a list and a list of its variant hints, appends variants that aren't explicitly required by dreamluau, +but are required by the lua editor tgui.

add_messenger

Registers an NTMessenger instance to the list of pda_messengers.

add_recipes_to_sublist

Add a list of recipes to an existing recipe sublist.

+

Arguments:

+
    +
  • stack_recipes - the existing list of stack recipes.
  • +
  • recipe_list_title - the title for the recipe list we're adding to
  • +
  • appent_recipes - Add these recipes to the given recipe list.
  • +

add_sabotage_machine

Marks a machine as a possible traitor sabotage target

add_startup_message

Adds a startup message to the splashscreen.

+

Arguments:

+
    +
  • msg - the message to show users.
  • +
  • warning - optional: TRUE to indicate this is an error/warning
  • +

add_to_signaler_investigate_log

Used to add a text log to the signaler investigation log. +Do not add to the list directly; if the list is too large it can cause lag when an admin tries to view it.

add_verb

handles adding verbs and updating the stat panel browser

+

pass the verb type path to this instead of adding it directly to verbs so the statpanel can update +Arguments:

+
    +
  • target - Who the verb is being added to, client or mob typepath
  • +
  • verb - typepath to a verb, or a list of verbs, supports lists of lists
  • +

admin_ticket_log

Use this proc when an admin takes action that may be related to an open ticket on what +what can be a client, ckey, or mob +player_message: If the message should be shown in the player ticket panel, fill this out +log_in_blackbox: Whether or not this message with the blackbox system. +If disabled, this message should be logged with a different proc call

adminscrub

Runs STRIP_HTML_SIMPLE and byond's sanitization proc.

alert_sound_to_playing

This is quite franlky the most important proc relating to global sounds, it uses area definition to play sounds depending on your location, and respects the players announcement volume. Generally if you're sending an announcement you want to use priority_announce.

alert_to_permissions_elevation_attempt

Sends a message in the event that someone attempts to elevate their permissions through invoking a certain proc.

alone_in_area

Checks if the mob provided (must_be_alone) is alone in an area

amount2sheet

Turns material amount into the number of sheets, returning FALSE if the number is less than SHEET_MATERIAL_AMOUNT

+

Arguments:

+
    +
  • amt: amount to convert
  • +

announce_arrival

Send a message in common radio when a player arrives

anyprob

chances are 1:value. anyprob(1) will always return true

apply_dynamic_human_appearance

This exists to apply the icons async, as that cannot be done in Initialize because of possible sleeps.

armor_to_protection_class

Rounds armor_value down to the nearest 10, divides it by 10 and then converts it to Roman numerals.

+

Arguments:

+
    +
  • armor_value - Number we're converting
  • +

armor_to_protection_name

Returns the client readable name of an armor type

+

Arguments:

+
    +
  • armor_type - The type to convert
  • +

assert_sorted

Runtimes if the passed in list is not sorted

assign_random_name

Generate a name devices

+

Creates a randomly generated tag or name for devices or anything really +it keeps track of a special list that makes sure no name is used more than +once

+

args:

+
    +
  • len (int)(Optional) Default=5 The length of the name
  • +
  • prefix (string)(Optional) static text in front of the random name
  • +
  • postfix (string)(Optional) static text in back of the random name +Returns (string) The generated name
  • +

assoc_to_keys

Turns an associative list into a flat list of keys

assoc_to_keys_features

Turns an associative list into a flat list of keys, but for sprite accessories, respecting the locked variable

assoc_value_sum

Gets the total amount of everything in the associative list.

at_least

Takes a value, and a threshold it has to at least match +returns the correctly signed value max'd to the threshold

atmos_handbooks_init

Automatically populates gas_handbook and reaction_handbook. They are formatted lists containing information regarding gases and reactions they participate in. +Structure can be found in TS form at AtmosHandbook.tsx

atmos_scan

Outputs a message to the user describing the target's gasmixes.

+

Gets called by analyzer_act, which in turn is called by tool_act. +Also used in other chat-based gas scans.

autopunct_bare

Ensures sentences end in appropriate punctuation (a period if none exist) +and that all whitespace-bounded 'i' characters are capitalized.

avoid_assoc_duplicate_keys

takes an input_key, as text, and the list of keys already used, outputting a replacement key in the format of "[input_key] ([number_of_duplicates])" if it finds a duplicate +use this for lists of things that might have the same name, like mobs or objects, that you plan on giving to a player as input

baseturfs_string_list

A wrapper for baseturf string lists, to offer support of non list values, and a stack_trace if we have major issues

begin_the_end

Begins the process of ending the round via cult narsie win +Consists of later called procs (in order of called):

+
    +
  • [/proc/narsie_end_begin_check()]
  • +
  • [/proc/narsie_end_second_check()]
  • +
  • [/proc/narsie_start_destroy_station()]
  • +
  • [/proc/narsie_apocalypse()]
  • +
  • [/proc/narsie_last_second_win()]
  • +
  • [/proc/cult_ending_helper()]
  • +

bit_count

counts the number of bits in Byond's 16-bit width field, in constant time and memory!

bitfield_to_list

Converts a bitfield to a list of numbers (or words if a wordlist is provided)

blend_cutoff_colors

Used to blend together two different color cutoffs +Uses the screen blendmode under the hood, essentially just /proc/blend_screen_color +But paired down and modified to work for our color range +Accepts the color cutoffs as two 3 length list(0-100,...) arguments

blend_screen_color

Blends together two colors (passed as 3 or 4 length lists) using the screen blend mode +Much like multiply, screen effects the brightness of the resulting color +Screen blend will always lighten the resulting color, since before multiplication we invert the colors +This makes our resulting output brighter instead of darker

body_zone2cover_flags

For finding out what body parts a body zone covers, the inverse of the below basically

border_diamond_range_turfs

Returns the list of turfs around the outside of a center based on RANGE_TURFS()

build_chemical_reactions_lists

Chemical Reactions - Initialises all /datum/chemical_reaction into a list +It is filtered into multiple lists within a list. +For example: +chemical_reactions_list_reactant_index/datum/reagent/toxin/plasma is a list of all reactions relating to plasma +For chemical reaction list product index - indexes reactions based off the product reagent type - see get_recipe_from_reagent_product() in helpers +For chemical reactions list lookup list - creates a bit list of info passed to the UI. This is saved to reduce lag from new windows opening, since it's a lot of data.

build_exploration_site_ui_data

Helper proc for exploration site listings in ui.

build_medicine_reagents

Just grab every craftable medicine you can think off

build_name2reagentlist

Builds map of reagent name to its datum path

build_planeed_apperance_queue

Takes a list of mutable appearances +Returns a list in the form: +1 - a list of all mutable appearances that would need to be updated to change planes in the event of a z layer change, alnongside the commands required +to properly track parents to update +2 - a list of all parents that will require updating

calculate_light_offset

Returns a list of x and y offsets to apply to our visual lighting position

calculate_projectile_angle_and_pixel_offsets

Calculates the pixel offsets and angle that a projectile should be launched at.

+

Arguments:

+
    +
  • source: The thing that the projectile is being shot from.
  • +
  • target: (Optional) The thing that the projectile is being shot at. +
      +
    • If this is not provided the source atom must be a mob with a client.
    • +
    +
  • +
  • modifiers: A list of click parameters used to modify the shot angle.
  • +

calculate_tgm_header_index

Generates a key matching our index

callback_on_everyone_on_z

Invokes a callback on every living mob on the provided z level.

callback_select

Runs a list of callbacks asyncronously, returning only when all have finished

+

Callbacks can be repeated, to call it multiple times

+

Arguments:

+
    +
  • list/callbacks the list of callbacks to be called
  • +
  • list/callback_args the list of lists of arguments to pass into each callback
  • +
  • savereturns Optionally save and return the list of returned values from each of the callbacks
  • +
  • resolution The number of byond ticks between each time you check if all callbacks are complete
  • +

camera_sort

Sorts the list of cameras by their c_tag to display to players.

can_see

Step-towards method of determining whether one atom can see another. Similar to viewers() +note: this is a line of sight algorithm, view() does not do any sort of raycasting and cannot be emulated by it accurately

censor_ic_filter_for_pdas

Given a pda message, will replace any match in the message with grawlixs.

center_image

Center's an image. +Requires: +The Image +The x dimension of the icon file used in the image +The y dimension of the icon file used in the image +eg: center_image(image_to_center, 32,32) +eg2: center_image(image_to_center, 96,96)

chatter_speak

We're going to take a list that dictates the pace of speech, and a sentence fragment to say +Then say() that fragment at that pace +You can pass in a starting delay to wait before speaking the next sound

Checks a given message to see if any of the words are something we want to treat specially, as detailed below.

+

There are 3 cases where a word is something we want to act on

+
    +
  1. Admin pings, like @adminckey. Pings the admin in question, text is not clickable
  2. +
  3. Datum refs, like @0x2001169 or @mob_23. Clicking on the link opens up the VV for that datum
  4. +
  5. Ticket refs, like #3. Displays the status and ahelper in the link, clicking on it brings up the ticket panel for it. +Returns a list being used as a tuple. Index ASAY_LINK_NEW_MESSAGE_INDEX contains the new message text (with clickable links and such) +while index ASAY_LINK_PINGED_ADMINS_INDEX contains a list of pinged admin clients, if there are any.
  6. +
+

Arguments:

+
    +
  • msg - the message being scanned
  • +

check_gases

A simple helped proc that checks if the contents of a list of gases are within acceptable terms.

+

Arguments:

+
    +
  • gases: The list of gases which contents are being checked
  • +
  • gases to check: An associated list of gas types and acceptable boundaries in moles. e.g. /datum/gas/oxygen = list(16, 30)
  • +
  • +
      +
    • if the assoc list is null, then it'll be considered a safe gas and won't return FALSE.
    • +
    +
  • +
  • extraneous_gas_limit: If a gas not in gases is found, this is the limit above which the proc will return FALSE.
  • +

check_holidays

Checks that the passed holiday is located in the global holidays list.

+

Returns a holiday datum, or null if it's not that holiday.

check_pda_message_against_filter

Checks a PDA message against the IC/Soft IC filter. Returns TRUE if the message should be sent. +Notifies the user passed in arguments if the message matched either filter.

check_target_facings

Returns the direction that the initiator and the target are facing

check_teleport_valid

Validates that the teleport being attempted is valid or not

check_topdown_validity

Checks if a passed in MA or atom is allowed to have its current plane/layer matchup

check_vore_preferences

This is so complicated because we have to support three distinct use cases all in one proc:

+
    +
  1. Pred eating prey, user = pred
  2. +
  3. Prey feeding themselves to pred, user = prey
  4. +
  5. A feeder feeding prey to pred, user = feeder +assume_active_consent is used for the secondary check after the do_after to avoid prompting prey/preds twice
  6. +

check_wall_item

Check if there is already a wall item on the turf loc +floor_loc = floor tile in front of the wall +dir_toward_wall = direction from the floor tile in front of the wall towards the wall +check_external = truthy if we should be checking against items coming out of the wall, rather than visually on top of the wall.

check_zone

Convert a PRECISE ZONE into the BODY_ZONE

chem_splash

The basic chemical bomb proc. +Combines a set of reagent holders into one holder and reacts it. +If there are any reagents left over it spreads them across the surrounding environment. +The maximum volume of the holder is temporarily adjusted to allow for reactions which increase total volume to work at full effectiveness. +The maximum volume of the holder is then reset to its original value.

+

Arguments:

+
    +
  • epicenter: The epicenter of the splash if some of the reagents aren't consumed.
  • +
  • holder: The holder to combine all of the reagents into. A temporary one is created if this is null.
  • +
  • [reactants][/list/datum/reagents]: The set of reagent holders to combine.
  • +
  • extra_heat: Some amount to heat the combined reagents by before reacting them.
  • +
  • threatscale: A multiplier for the reagent quantities involved.
  • +
  • adminlog: Whether to alert the admins that this has occured.
  • +

circle_range

Returns all atoms present in a circle around the center

circle_range_turfs

Returns a list of turfs around a center based on RANGE_TURFS()

circle_view

Returns all atoms present in a circle around the center but uses view() instead of range() (Currently not used)

circle_view_turfs

Returns a list of turfs around a center based on view()

cleanup_ghosts

Gives a farewell message and deletes the ghosts produced by a ghost portal structure.

+

Handles cleanup of all ghost mobs spawned a ghost portal. Iterates through the list +and calls qdel on its contents, gives a short message, and leaves behind some goop. +Stored as a global, as it is called immediately after the portal deletes itself.

+
    +
  • delete_list - The list of entities to be deleted by this proc.
  • +

clockwork_say

Causes the mob or movable in question to speak a message; it assumes that the message is already translated to ratvar speech using text2ratvar()

cmp_assoc_list_name

Passed a list of assoc lists, sorts them by the list's "name" keys.

cmp_autowiki_fish_sources_content

Sort the autowiki fish entries by their weight. However, duds always come first.

cmp_bodypart_by_body_part_asc

Orders bodyparts by their body_part value, ascending.

cmp_crafting_req_priority

Sorts crafting recipe requirements before the crafting recipe is inserted into GLOB.crafting_recipes

+

Prioritises /datum/reagent to ensure reagent requirements are always processed first when crafting. +This prevents any reagent_containers from being consumed before the reagents they contain, which can +lead to runtimes and item duplication when it happens.

cmp_fish_fluid

Orders fish types following this order (freshwater -> saltwater -> anadromous -> sulphuric water -> any water -> air) +If both share the same required fluid type, they'll be ordered by name instead.

cmp_heretic_knowledge

Orders heretic knowledge by priority

cmp_mob_health

Orders mobs by health

cmp_port_order_asc

Orders by integrated circuit weight

Orders by uplink category weight

color_to_full_rgba_matrix

Converts RGB shorthands into RGBA matrices complete of constants rows (ergo a 20 keys list in byond). +if return_identity_on_fail is true, stack_trace is called instead of CRASH, and an identity is returned.

colorize_string

Gets a color for a name, will return the same color for a given string consistently within a round.atom

+

Note that this proc aims to produce pastel-ish colors using the HSL colorspace. These seem to be favorable for displaying on the map.

+

Arguments:

+
    +
  • name - The name to generate a color for
  • +
  • sat_shift - A value between 0 and 1 that will be multiplied against the saturation
  • +
  • lum_shift - A value between 0 and 1 that will be multiplied against the luminescence
  • +

compare_list

compare two lists, returns TRUE if they are the same

conditional_pref_sound

conditional_pref_sound is similar to playsound but it does not pass through walls, doesn't play for ghosts, and checks for prefs. +This is useful if we have something like the organic interface content, which everyone may not want to hear.

+

source - Origin of sound. +soundin - Either a file, or a string that can be used to get an SFX. +vol - The volume of the sound, excluding falloff and pressure affection. +vary - bool that determines if the sound changes pitch every time it plays. +extrarange - modifier for sound range. This gets added on top of SOUND_RANGE. +falloff_exponent - Rate of falloff for the audio. Higher means quicker drop to low volume. Should generally be over 1 to indicate a quick dive to 0 rather than a slow dive. +frequency - playback speed of audio. +channel - The channel the sound is played at. +pressure_affected - Whether or not difference in pressure affects the sound (E.g. if you can hear in space). +falloff_distance - Distance at which falloff begins. Sound is at peak volume (in regards to falloff) aslong as it is in this range. +pref_to_check - the path of the pref that we want to check

considered_afk

Checks if a player is considered AFK

considered_alive

Checks if the passed mind has a mob that is "alive"

+
    +
  • player_mind - who to check for alive status
  • +
  • enforce_human - if TRUE, the checks fails if the mind's mob is a silicon, brain, or infectious zombie.
  • +
+

Returns TRUE if they're alive, FALSE otherwise

considered_escaped

Checks if the passed mind is considered "escaped".

+

Escaped mobs are used to check certain antag objectives / results.

+

Escaped includes minds with alive, non-exiled mobs generally.

+

Returns TRUE if they're a free person, or FALSE if they failed

considered_exiled

Exiled check

+

Checks if the current body of the mind has an exile implant and is currently in +an away mission. Returns FALSE if any of those conditions aren't met.

construct_phobia_regex

Creates a regular expression to match against the given phobia +Capture group 2 = the scary word +Capture group 3 = an optional suffix on the scary word

convert_integer_to_words

Takes an integer up to 999,999,999 and returns it in words. Works with negative numbers and 0.

+

Arguments:

+
    +
  • number - Integer up to 999,999,999 to convert.
  • +
  • capitalise - Whether the number it returns should be capitalised or not, e.g. "Eighty Million" vs. "eighty million".
  • +

convert_ph_to_readable_color

Converts the pH into a tgui readable color - i.e. white and black text is readable over it. This is NOT the colourwheel for pHes however.

coords2turf

Converts a list of coordinates, or an assosciative list if passed, into a turf by calling locate(x, y, z) based on the values in the list

count_by_type

return the amount of items of the same type inside a list

cracker_reactions_list

Global proc to build up the list of co2 cracker reactions

create_announcement_div

Inserts a span styled message into an alert box div

+

Arguments

+
    +
  • message - required, the message contents
  • +
  • color - optional, set a div color other than default
  • +

create_atmos_zone

Create an atmos zone (Think ZAS), similiar to [proc/detect_room] but it ignores walls and turfs which are non-[atmos_can_pass]

+

Arguments +source - the turf which to find all connected atmos turfs +range - the max range to check

+

Returns a list of turfs, which is an area of isolated atmos

create_basketball_game

Creates the global datum for playing basketball games, destroys the last if that's required and returns the new.

create_ctf_game

Creates a CTF game with the provided team ID then returns a reference to the new controller. If a controller already exists provides a reference to it.

create_delusion

Helper to give the passed mob the ability to create a delusion hallucination (even a custom one). +Returns a list of arguments - pass these to _cause_hallucination to cause the desired hallucination

create_glass_styles

Constructs a nested list of glass style singletons

+

List format:

+
    +
  • list(glasses = list(beer = style datum, vodka = style datum), shot glasses = list(vodka = different style datum))
  • +
+

Where

+
    +
  • "glasses" and "shotglasses" are item typepaths
  • +
  • "beer" and "vodka" are reagent typepaths
  • +
  • "style datum" is a glass style singleton datum
  • +
+

Returns the list.

create_mafia_game

Creates the global datum for playing mafia games, destroys the last if that's required and returns the new.

create_ooc_announcement_div

Inserts a span styled message into an OOC alert style div

+

Arguments

+
    +
  • message - required, the message contents
  • +

create_random_puzzgrid

Returns a random puzzgrid from config. +If config is empty, or no valid puzzgrids can be found in time, will return null.

create_separatist_nation

create_separatist_nation()

+

Helper called to create the separatist antagonist via making a department independent from the station.

+
    +
  • Arguments:
  • +
  • department: which department to revolt. if null, will pick a random non-independent department. starts as a type, then turns into the reference to the singleton.
  • +
  • announcement: whether to tell the station a department has gone independent.
  • +
  • dangerous: whether this nation will have objectives to attack other independent departments, requires more than one nation to exist obviously
  • +
  • message_admins: whether this will admin log how the nation creation went. Errors are still put in runtime log either way.
  • +
+

Returns nothing.

create_strippable_list

Creates an assoc list of keys to /datum/strippable_item

Selects a set number of unique items from the uplink, and deducts a percentage discount from them

cult_ending_helper

Selects cinematic to play as part of the cult end depending on the outcome then ends the round afterward +called either when narsie eats everyone, or when [/proc/begin_the_end()] reaches its conclusion

cure_curse_of_babel

Mainly so admin triggered tower of babel can be undone

cut_relative_direction

Takes a screen_loc string and cut out any directions like NORTH or SOUTH

day_of_month

Returns the day (mon, tues, wen...) in number format, 1 (monday) - 7 (sunday) from the passed in date (year, month, day) +All inputs are expected indexed at 1

debug_hallucination_weighted_list

Debug proc for getting the total weight of the random_hallucination_weighted_list

debug_variable

Get displayed variable in VV variable list

deep_compare_list

Compares 2 lists, returns TRUE if they are the same

deep_copy_list

Copies a list, and all lists inside it recusively +Does not copy any other reference type

default_ui_state

The sane defaults for a UI such as a computer or a machine.

delete_all_SS_and_recreate_master

Delete all existing SS to basically start over

delta_to_angle

Calculate the angle produced by a pair of x and y deltas

deltimer

Delete a timer

+

Arguments:

+
    +
  • id a timerid or a /datum/timedevent
  • +

deprecise_zone

Takes a zone and returns its "parent" zone, if it has one.

diff_appearances

Takes two appearances as args, prints out, logs, and returns a text representation of their differences +Including suboverlays

dir2offset

Returns a list(x, y), being the change in position required to step in the passed in direction

dir_to_all_junctions

Takes a direction, turns it into all the junctions that contain it

disambiguate_client

Takes an argument which could be either a ckey, /client, or IRC marker, and returns a client if possible +Returns [EXTERNAL_PM_USER] if an IRC marker is detected +Otherwise returns null

disease_air_spread_walk

Helper for checking if there is an air path between two turfs

diseasescan

Checks the individual for any diseases that are visible to the scanner, and displays the diseases in the attacked to the attacker.

dispatch_announcement_to_players

Proc that just dispatches the announcement to our applicable audience. Only the announcement is a mandatory arg.

display_corners

Makes all lighting corners visible, debug to aid in understanding

display_energy

Format an energy value in prefixed joules. +Arguments

+
    +
  • units - the value t convert
  • +

display_power

*Format a power value in prefixed watts.

+
    +
  • Converts from energy if convert is true.
  • +
  • Args:
  • +
  • +
      +
    • power: The value of power to format.
    • +
    +
  • +
  • +
      +
    • convert: Whether to convert this from joules.
    • +
    +
  • +
  • +
      +
    • datum/controller/subsystem/scheduler: used in the conversion
    • +
    +
  • +
  • Returns: The string containing the formatted power.
  • +

doPortalSpawn

Spawns a portal storm that spawns in sentient/non sentient mobs +portal_appearance is a list in the form (turf's plane offset + 1) -> appearance to use

do_after

Timed action involving one mob user. Target is optional.

+

Checks that user does not move, change hands, get stunned, etc. for the +given delay. Returns TRUE on success or FALSE on failure.

+

@param {mob} user - The mob performing the action.

+

@param {number} delay - The time in deciseconds. Use the SECONDS define for readability. 1 SECONDS is 10 deciseconds.

+

@param {atom} target - The target of the action. This is where the progressbar will display.

+

@param {flag} timed_action_flags - Flags to control the behavior of the timed action.

+

@param {boolean} progress - Whether to display a progress bar / cogbar.

+

@param {datum/callback} extra_checks - Additional checks to perform before the action is executed.

+

@param {string} interaction_key - The assoc key under which the do_after is capped, with max_interact_count being the cap. Interaction key will default to target if not set.

+

@param {number} max_interact_count - The maximum amount of interactions allowed.

+

@param {boolean} hidden - By default, any action 1 second or longer shows a cog over the user while it is in progress. If hidden is set to TRUE, the cog will not be shown.

do_chem_smoke

Helper to quickly create a cloud of reagent smoke

do_smoke

A helper proc used to spawn small puffs of smoke.

+

Arguments:

+
    +
  • range: The amount of smoke to produce as number of steps from origin covered.
  • +
  • amount: The amount of smoke to produce as the total desired coverage area. Autofilled from the range arg if not set.
  • +
  • location: Where to produce the smoke cloud.
  • +
  • smoke_type: The smoke typepath to spawn.
  • +

do_sweep

Sweep objects in the direction we're facing towards our direction +Arguments

+
    +
  • broomer - The object being used for brooming
  • +
  • user - The person who is brooming
  • +
  • target - The object or tile that's target of a broom click or being moved into
  • +
  • sweep_dir - The directions in which we sweep objects
  • +

dump_in_space

Dump a movable in a random valid spacetile

duplicate_object

duplicate_object

+

Makes a copy of an item and transfers most vars over, barring GLOB.duplicate_forbidden_vars +Args: +original - Atom being duplicated +spawning_location - Turf where the duplicated atom will be spawned at.

dview

Version of view() which ignores darkness, because BYOND doesn't have it (I actually suggested it but it was tagged redundant, BUT HEARERS IS A T- /rant).

dyn_explosion

Using default dyn_ex scale:

+

100 explosion power is a (5, 10, 20) explosion. +75 explosion power is a (4, 8, 17) explosion. +50 explosion power is a (3, 7, 14) explosion. +25 explosion power is a (2, 5, 10) explosion. +10 explosion power is a (1, 3, 6) explosion. +5 explosion power is a (0, 1, 3) explosion. +1 explosion power is a (0, 0, 1) explosion.

+

Arguments:

+
    +
  • epicenter: Turf the explosion is centered at.
  • +
  • power - Dyn explosion power. See reference above.
  • +
  • flame_range: Flame range. Equal to the equivalent of the light impact range multiplied by this value.
  • +
  • flash_range: The range at which the explosion flashes people. Equal to the equivalent of the light impact range multiplied by this value.
  • +
  • adminlog: Whether to log the explosion/report it to the administration.
  • +
  • ignorecap: Whether to ignore the relevant bombcap. Defaults to FALSE.
  • +
  • flame_range: The range at which the explosion should produce hotspots.
  • +
  • silent: Whether to generate/execute sound effects.
  • +
  • smoke: Whether to generate a smoke cloud provided the explosion is powerful enough to warrant it.
  • +
  • explosion_cause: [Optional] The atom that caused the explosion, when different to the origin. Used for logging.
  • +

emissive_appearance

Produces a mutable appearance glued to the [EMISSIVE_PLANE] dyed to be the EMISSIVE_COLOR.

emissive_appearance_copy

Creates a mutable appearance glued to the EMISSIVE_PLAN, using the values from a mutable appearance

emissive_blocker

Produces a mutable appearance glued to the [EMISSIVE_PLANE] dyed to be the EM_BLOCK_COLOR.

end_cooldown

Callback called by a timer to end an associative-list-indexed cooldown.

+

Arguments:

+
    +
  • source - datum storing the cooldown
  • +
  • index - string index storing the cooldown on the cooldowns associative list
  • +
+

This sends a signal reporting the cooldown end.

end_message_delay

Simply resets the message delay and the recent messages list, to ensure that +recent messages can be sent again. Is called on a one second timer after a +delay is set, from /obj/machinery/telecomms/broadcaster/receive_information()

ending_helper

Helper to set the round to end asap. Current usage Cult round end code

endswith

Returns TRUE if the input_text ends with the ending

energy_to_power

Converts the joule to the watt, assuming SSmachines tick rate. +Arguments

+
    +
  • joules - the value in joules to convert
  • +
  • datum/controller/subsystem/scheduler - the subsystem whos wait time is used in the conversion
  • +

engaged_role_play_check

Checks if a player meets certain conditions to exclude them from event selection.

english_list

Returns a list in plain english as a string

expand_three_digit_color

Given a 3 character color (no hash), converts it into #RRGGBB (with hash)

expand_weights

Takes a weighted list (see above) and expands it into raw entries +This eats more memory, but saves time when actually picking from it

explosion

Makes a given atom explode.

+

Arguments:

+
    +
  • origin: The atom that's exploding.
  • +
  • devastation_range: The range at which the effects of the explosion are at their strongest.
  • +
  • heavy_impact_range: The range at which the effects of the explosion are relatively severe.
  • +
  • light_impact_range: The range at which the effects of the explosion are relatively weak.
  • +
  • flash_range: The range at which the explosion flashes people.
  • +
  • adminlog: Whether to log the explosion/report it to the administration.
  • +
  • ignorecap: Whether to ignore the relevant bombcap. Defaults to FALSE.
  • +
  • flame_range: The range at which the explosion should produce hotspots.
  • +
  • silent: Whether to generate/execute sound effects.
  • +
  • smoke: Whether to generate a smoke cloud provided the explosion is powerful enough to warrant it.
  • +
  • protect_epicenter: Whether to leave the epicenter turf unaffected by the explosion
  • +
  • explosion_cause: [Optional] The atom that caused the explosion, when different to the origin. Used for logging.
  • +
  • explosion_direction: The angle in which the explosion is pointed (for directional explosions.)
  • +
  • explosion_arc: The angle of the arc covered by a directional explosion (if 360 the explosion is non-directional.)
  • +

export_single_item

It works like export_item_and_contents(), however it ignores the contents. Meaning only exported_atom will be valued.

failed_narsie_summon

Summon failed, time to work backwards

fast_split_stack

Splits a stack. we don't use /obj/item/stack/proc/fast_split_stack because Byond complains that should only be called asynchronously. +This proc is also more faster because it doesn't deal with mobs, copying evidences or refreshing atom storages +Has special internal uses for e.g. by the material container

+

Arguments:

+
    +
  • target: the stack to split
  • +
  • [amount]: amount to split by
  • +

fill_holidays

Fills the holidays list if applicable, or leaves it an empty list.

fill_with_ones

Given a list, return a copy where values without defined weights are given weight 1. +For example, fill_with_ones(list(A, B=2, C)) = list(A=1, B=2, C=1) +Useful for weighted random choices (loot tables, syllables in languages, etc.)

filter_name_ic

Helper proc to check if a name is valid for the IC filter

findTrueKey

Takes a stealthed ckey as input, returns the true key it represents

find_functional_ntnet_relay

Checks whether NTNet is available by ensuring at least one relay exists and is operational.

find_maintenance_spawn

Finds us a generic maintenance spawn location.

+

Goes through the list of the generic mainteance landmark locations, checking for atmos safety if required, and returns +a valid turf. Returns MAP_ERROR if no valid locations are present. +Returns nothing and alerts admins if no valid points are found. Keep this in mind +when using this helper.

find_obstruction_free_location

Find an obstruction free turf that's within the range of the center. Can also condition on if it is of a certain area type.

find_reagent

Returns reagent datum from typepath

find_record

Returns the first record in the list that matches the name

+

If locked_only is TRUE, locked records will be checked

+

If locked_only is FALSE, crew records will be checked

+

If no record is found, returns null

find_space_spawn

Finds us a generic spawn location in space.

+

Goes through the list of the space carp spawn locations, picks from the list, and +returns that turf. Returns MAP_ERROR if no landmarks are found.

findname

Find if the message has the real name of any user mob in the mob_list

finish_equip_mob

A utility function for /datum/strippable_items to finish equipping an item to a mob.

finish_unequip_mob

A utility function for /datum/strippable_items to finish unequipping an item from a mob.

fire_curse_hand

Torment the target with a frightening hand

firing_squad

firing_squad is a proc for the :B:erforate smite to shoot each individual bullet at them, so that we can add actual delays without sleep() nonsense

+

Hilariously, if you drag someone away mid smite, the bullets will still chase after them from the original spot, possibly hitting other people. Too funny to fix imo

+

Arguments:

+
    +
  • target- guy we're shooting obviously
  • +
  • source_turf- where the bullet begins, preferably on a turf next to the target
  • +
  • body_zone- which bodypart we're aiming for, if there is one there
  • +
  • wound_bonus- the wounding power we're assigning to the bullet, since we don't care about the base one
  • +
  • damage- the damage we're assigning to the bullet, since we don't care about the base one
  • +

flash_color

Flash a color on the passed mob

flatten_list

Flattens a keyed list into a list of its contents

flick_overlay_global

Add an image to a list of clients and calls a proc to remove it after a duration

force_apc_arcing

Set all APCs to start (or stop) arcing

format_frequency

Format frequency by moving the decimal.

format_text

Properly format a string of text by using replacetext()

full_capitalize

Returns a string with the first letter of each word capitialized

gas_mixture_parser

    +
  • A simple rudimentary gasmix to information list converter. Can be used for UIs.
  • +
  • Args:
  • +
  • + +
  • +
  • +
      +
    • name: String used to name the list, optional.
    • +
    +
  • +
  • Returns: A list parsed_gasmixes with the following structure:
  • +
  • +
      +
    • parsed_gasmixes Value: Assoc List Desc: The thing we return
    • +
    +
  • +
  • -- Key: name Value: String Desc: Gasmix Name
  • +
  • -- Key: temperature Value: Number Desc: Temperature in kelvins
  • +
  • -- Key: volume Value: Number Desc: Volume in liters
  • +
  • -- Key: pressure Value: Number Desc: Pressure in kPa
  • +
  • -- Key: ref Value: String Desc: The reference for the instantiated gasmix.
  • +
  • -- Key: gases Value: Numbered list Desc: List of gasses in our gasmix
  • +
  • --- Key: 1 Value: String Desc: gas id var from the gas
  • +
  • --- Key: 2 Value: String Desc: Human readable gas name.
  • +
  • --- Key: 3 Value: Number Desc: Mol amount of the gas.
  • +
  • -- Key: gases Value: Numbered list Desc: Assoc list of reactions that occur inside.
  • +
  • --- Key: 1 Value: String Desc: reaction id var from the gas.
  • +
  • --- Key: 2 Value: String Desc: Human readable reaction name.
  • +
  • --- Key: 3 Value: Number Desc: The number associated with the reaction.
  • +
  • Returned list should always be filled with keys even if value are nulls.
  • +

gather_z_level_information

Returns all necessary z-level information. Argument append_grid allows the user to see a table showing all of the z-level linkages, which is only visible and useful in-game.

generateStealthCkey

Hands back a stealth ckey to use, guarenteed to be unique

generate_DNR_trait_overlay

Instantiates GLOB.DNR_trait_overlay by creating a new mutable_appearance instance of the overlay.

generate_adjacent_directions

Encodes connectivity between border objects +Returns a list accessable by a border object's dir, the direction between it and a target, and a target +Said list will return the direction the two objects connect, if any exists (if the target isn't a border object and the direction is fine, return the inverse of the direction in use)

generate_and_hash_rsc_file

generates a filename for a given asset. +like generate_asset_name(), except returns the rsc reference and the rsc file hash as well as the asset name (sans extension) +used so that certain asset files don't have to be hashed twice

generate_asset_name

Generate a filename for this asset +The same asset will always lead to the same asset name +(Generated names do not include file extention.)

generate_autowiki_output

Returns a string of the autowiki output file

generate_bitfields

Turns /datum/bitfield subtypes into a list for use in debugging

generate_changeling_meteor

Receives a mob candidate, transforms them into a changeling, and hurls them at the station inside of a changeling meteor

+

Takes a given candidate and turns them into a changeling, generates a changeling meteor, and throws it at the station. +Returns the changeling generated by the event, NOT the meteor. This is so that it plays nicely with the dynamic ruleset +while still being usable in the ghost_role event as well.

+

Arguments:

+
    +
  • candidate - The mob (player) to be transformed into a changeling and meteored.
  • +

generate_chemwiki_line

Generate the big list of reagent based reactions. +style='background-color:#FFEE88;'|{{anchor|Synthetic-derived growth factor}}Synthetic-derived growth factor

generate_clockcult_scriptures

Generate all scriptures in a global assoc of name:ref. Only needs to be done once

generate_cult_rune_types

Returns an associated list of rune types. [rune.cultist_name] = [typepath]

generate_customizable_races

Generates races available to choose in character setup at roundstart, yet not playable on the station.

+

This proc generates which species are available to pick from in character setup.

generate_generator_index

Creates generator__id => type map.

generate_hallucination_weighted_list

Generates the global weighted list of random hallucinations.

generate_icon_alpha_mask

Helper proc to generate a cutout alpha mask out of an icon.

+

Why is it a helper if it's so simple?

+

Because BYOND's documentation is hot garbage and I don't trust anyone to actually +figure this out on their own without sinking countless hours into it. Yes, it's that +simple, now enjoy.

+

But why not use filters?

+

Filters do not allow for masks that are not the exact same on every dir. An example of a +need for that can be found in [/proc/generate_left_leg_mask()].

+

Arguments:

+
    +
  • icon_to_mask - The icon file you want to generate an alpha mask out of.
  • +
  • icon_state_to_mask - The specific icon_state you want to generate an alpha mask out of.
  • +
+

Returns an /icon that is the alpha mask of the provided icon and icon_state.

generate_items_inside

Creates new items inside an atom based on a list

generate_lazy_template_map

Iterates through all lazy template datums that exist and returns a list of them as an associative list of key -> instance.

+

Screams if more than one key exists, loudly.

generate_map_list_from_directory

Returns a list of all maps to be found in the directory that is passed in.

generate_quirk_constant_data

Constructs [GLOB.all_quirk_constant_data] by iterating through a typecache of pregen data, ignoring abstract types, and instantiating the rest.

generate_random_name

Generate a random name based off of one of the roundstart languages

+
    +
  • gender - What gender to pick from. Picks between male, female if not provided.
  • +
  • unique - If the name should be unique, IE, avoid picking names that mobs already have.
  • +
  • list/language_weights - A list of language weights to pick from. +If not provided, it will default to a list of roundstart languages, with common being the most likely.
  • +

generate_selectable_species_and_languages

Generates species available to choose in character setup at roundstart

+

This proc generates which species are available to pick from in character setup. +If there are no available roundstart species, defaults to human.

generate_space_underlay

Generates a space underlay for a turf +This provides proper lighting support alongside just looking nice +Accepts the appearance to make "spaceish", and the turf we're doing this for

generate_taur_clothing

Proc to generate a taur variation of clothes, with the intent of caching them. +It is meant for suits and uniforms at the moment, to cut out the bottom half so that +it doesn't look too out of place.

+

Arguments:

+
    +
  • index - The index at which the icon will be stored. Overwrites existing icons if there was one, +do your checks before calling this proc.
  • +
  • icon_to_process (/icon) - The icon we want to run through the process of masking off the bottom part of.
  • +
  • icon_state - The icon_state of the icon we're being given, to obtain a proper icon object.
  • +
+

Add a taur_type here if you ever want to add different cropping options, for whatever reason.

generate_unique_announcement_header

Proc that just generates a custom header based on variables fed into priority_announce() +Will return a string.

generate_wound_series_collection

Generates [wound_series_collections] by iterating through all pregen_data. Refer to the mentioned list for documentation

generate_wound_static_data

Constructs [GLOB.all_wound_pregen_data] by iterating through a typecache of pregen data, ignoring abstract types, and instantiating the rest.

get

Returns the atom type in the specified loc

getFlatIcon

Create a single /icon from a given /atom or /image.

+

Very low-performance. Should usually only be used for HTML, where BYOND's +appearance system (overlays/underlays, etc.) is not available.

+

Only the first argument is required.

get_active_player_count

Get active players who are playing in the round

get_adjacent_areas

Returns a list of all areas that are adjacent to the center atom's area, clear the list of nulls at the end.

get_adjacent_open_areas

Returns a list with all the adjacent areas by getting the adjacent open turfs

get_adjacent_open_turfs

Returns a list with all the adjacent open turfs. Clears the list of nulls in the end.

get_airlock_overlay

Overlay cache. Why isn't this just in /obj/machinery/door/airlock? Because its used just a +tiny bit in door_assembly.dm Refactored so you don't have to make a null copy of airlock +to get to the damn thing +Someone, for the love of god, profile this. Is there a reason to cache mutable_appearance +if so, why are we JUST doing the airlocks when we can put this in mutable_appearance.dm for +everything

get_allowed_instrument_ids

Get all non admin_only instruments as a list of text ids.

get_angle

Calculate the angle between two movables and the west|east coordinate

get_angle_raw

Angle between two arbitrary points and horizontal line same as /proc/get_angle

get_antag_minds

Returns MINDS of the assigned antags of given type/subtypes +Supplying no antag type grants all minds with antag datums

get_area_name

Returns the name of the area the atom is in

get_areas_in_range

Returns a list with the names of the areas around a center at a certain distance +Returns the local area if no distance is indicated +Returns an empty list if the center is null

get_armor_by_type

Gets an armor type datum using the given type by formatting it into the expected datum tag

get_atom_on_turf

Returns the top-most atom sitting on the turf. +For example, using this on a disk, which is in a bag, on a mob, +will return the mob because it's on the turf.

+

Arguments

+
    +
  • something_in_turf - a movable within the turf, somewhere.
  • +
  • stop_type - optional - stops looking if stop_type is found in the turf, returning that type (if found).
  • +

get_bbox_of_atoms

Get a bounding box of a list of atoms.

+

Arguments:

+
    +
  • atoms - List of atoms. Can accept output of view() and range() procs.
  • +
+

Returns: list(x1, y1, x2, y2)

get_blueprint_data

get_blueprint_data +Gets a list of turfs around a central turf and gets the blueprint data in a list +Args:

+
    +
  • central_turf: The center turf we're getting data from.
  • +
  • viewsize: The viewsize we're getting the turfs around central_turf of.
  • +

get_cached_actionspeed_modifier

Grabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO!

get_cached_movespeed_modifier

Grabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO!

get_camera_list

get_camera_list

+

Builds a list of all available cameras that can be seen to networks_available +Args: +networks_available - List of networks that we use to see which cameras are visible to it.

get_cardinal_dir

Get the cardinal direction between two atoms

get_chasm_category

Returns a key to store, remove and access fallen mobs depending on the z-level. +This stops rescuing people from places that are waaaaaaaay too far-fetched.

get_chat_toggles

Get the given client's chat toggle prefs.

+

Getter function for prefs.chat_toggles which guards against null client and null prefs. +The client object is fickle and can go null at times, so use this instead of directly accessing the var +if you want to ensure no runtimes.

+

returns client.prefs.chat_toggles or FALSE if something went wrong.

+

Arguments:

+
    +
  • client/prefs_holder - the client to get the chat_toggles pref from.
  • +

get_chem_id

Returns reagent datum from reagent name string

get_closest_atom

Returns the closest atom of a specific type in a list from a source

get_consistent_feature_entry

Takes in an accessory list and returns the first entry from that list, ensuring that we dont return SPRITE_ACCESSORY_NONE in the process.

get_corresponding_wound_type

Searches through all wounds for any of proper type, series, and biostate, and then returns a single one via pickweight. +Is able to discern between, say, a flesh slash wound, and a metallic slash wound, and will return the respective one for the provided limb.

+

The severity_max and severity_pick_mode args mostly exist in case you want a wound in a series that may not have your ideal severity wound, as it lets you +essentially set a "fallback", where if your ideal wound doesnt exist, it'll still return something, trying to get closest to your ideal severity.

+

Generally speaking, if you want a critical/severe/moderate wound, you should set severity_min to WOUND_SEVERITY_MODERATE, severity_max to your ideal wound, +and severity_pick_mode to WOUND_PICK_HIGHEST_SEVERITY - UNLESS you for some reason want the LOWEST severity, in which case you should set +severity_max to the highest wound you're willing to tolerate, and severity_pick_mode to WOUND_PICK_LOWEST_SEVERITY.

+

Args:

+
    +
  • list/wounding_types: A list of wounding_types. Only wounds that accept these wound types will be considered.
  • +
  • obj/item/bodypart/part: The limb we are considering. Extremely important for biostates.
  • +
  • severity_min: The minimum wound severity we will search for.
  • +
  • severity_max = severity_min: The maximum wound severity we will search for.
  • +
  • severity_pick_mode = WOUND_PICK_HIGHEST_SEVERITY: The "pick mode" we will use when considering multiple wounds of acceptable severity. See the above defines.
  • +
  • random_roll = TRUE: If this is considered a "random" consideration. If true, only wounds that can be randomly generated will be considered.
  • +
  • duplicates_allowed = FALSE: If exact duplicates of a given wound on part are tolerated. Useful for simply getting a path and not instantiating.
  • +
  • care_about_existing_wounds = TRUE: If we iterate over wounds to see if any are above or at a given wounds severity, and disregard it if any are. Useful for simply getting a path and not instantiating.
  • +
+

Returns: +A randomly picked wound typepath meeting all the above criteria and being applicable to the part's biotype - or null if there were none.

get_ctf_voting_controller

Returns the existing /datum/ctf_voting_controller for the given ID, or makes one

get_customizable_races

Gets a list of all customizable races on roundstart.

get_dist_euclidean

Returns the distance between two atoms

get_dummy_savefile

Gets a dummy savefile for usage in icon generation. +Savefiles generated from this proc will be empty.

get_dynamic_human_appearance

Creates a human with the given parameters and returns an appearance of it

get_edge_target_turf

Returns the turf located at the map edge in the specified direction relative to target_atom used for mass driver

get_element_by_var

return first thing in L which has var/varname == value +this is typecaste as list/L, but you could actually feed it an atom instead. +completely safe to use

get_first_open_turf_in_area

Iterates over all turfs in the target area and returns the first non-dense one

get_flat_existing_human_icon

A simpler version of get_flat_human_icon() that uses an existing human as a base to create the icon. +Does not feature caching yet, since I could not think of a good way to cache them without having a possibility +of using the cached version when we don't want to, so only use this proc if you just need this flat icon +generated once and handle the caching yourself if you need to access that icon multiple times, or +refactor this proc to feature caching of icons.

+

Arguments:

+
    +
  • existing_human - The human we want to get a flat icon out of.
  • +
  • directions_to_output - The directions of the resulting flat icon, defaults to all cardinal directions.
  • +

get_flat_human_icon

If you already have a human and need to get its flat icon, call get_flat_existing_human_icon() instead.

+

For creating consistent icons for human looking simple animals.

get_general_adminwho_information

Proc that gathers adminwho information for a general player, which will only give information if an admin isn't AFK, and handles potential fakekeying. +Will return a list of strings.

get_hear

Like view but bypasses luminosity check

get_hearers_in_LOS

Returns a list of movable atoms that are hearing sensitive in view_radius and line of sight to source +the majority of the work is passed off to the spatial grid if view_radius > 0 +because view() isnt a raycasting algorithm, this does not hold symmetry to it. something in view might not be hearable with this. +if you want that use get_hearers_in_view() - however thats significantly more expensive

+
    +
  • view_radius - what radius search circle we are using, worse performance as this increases but not as much as it used to
  • +
  • source - object at the center of our search area. everything in get_turf(source) is guaranteed to be part of the search area
  • +

get_hearers_in_looc_range

    +
  • Get all hearers in range, ignores walls and such. Code stolen from /proc/get_hearers_in_view()
  • +
  • Much faster and less expensive than range()
  • +

get_hearers_in_range

The exact same as get_hearers_in_view, but not limited by visibility. Does no filtering for traits, line of sight, or any other such criteria. +Filtering is intended to be done by whatever calls this function.

+

This function exists to allow for mobs to hear speech without line of sight, if such a thing is needed.

+
    +
  • radius - what radius search circle we are using, worse performance as this increases
  • +
  • source - object at the center of our search area. everything in get_turf(source) is guaranteed to be part of the search area
  • +

get_hearers_in_view

returns every hearaing movable in view to the turf of source not taking into account lighting +useful when you need to maintain always being able to hear something if a sound is emitted from it and you can see it (and youre in range). +otherwise this is just a more expensive version of get_hearers_in_LOS().

+
    +
  • view_radius - what radius search circle we are using, worse performance as this increases
  • +
  • source - object at the center of our search area. everything in get_turf(source) is guaranteed to be part of the search area
  • +

get_icon_dimensions

Returns a list containing the width and height of an icon file

get_icon_dmi_path

given an icon object, dmi file path, or atom/image/mutable_appearance, attempts to find and return an associated dmi file path. +a weird quirk about dm is that /icon objects represent both compile-time or dynamic icons in the rsc, +but stringifying rsc references returns a dmi file path +ONLY if that icon represents a completely unchanged dmi file from when the game was compiled. +so if the given object is associated with an icon that was in the rsc when the game was compiled, this returns a path. otherwise it returns ""

get_line

Get a list of turfs in a line from starting_atom to ending_atom.

+

Uses the ultra-fast Bresenham Line-Drawing Algorithm.

get_linked_admin_name

Proc that will return the applicable display name, linkified or not, based on the input client reference.

get_list_of_admins

Proc that returns a list of cliented admins. Remember that this list can contain nulls! +Also, will return null if we don't have any admins.

get_messenger_name

Get the display name of a messenger instance

get_messengers_sorted_by_job

Gets all messengers, sorted by their job

get_messengers_sorted_by_name

Gets all messengers, sorted by their name

get_mob_by_ckey

returns a mob type controlled by a specified ckey

get_mob_by_key

Return the mob type that is being controlled by a ckey

get_mob_or_brainmob

Returns the occupant mob or brain from a specified input

get_most_experienced

From a list of players (minds, mobs or clients), finds the one with the highest playtime (either from a specific role or overall living) and returns it.

get_nested_locs

Returns a list of all locations (except the area) the movable is within.

get_officer_departments

Returns the distribution of splitting the given security officers into departments. +Return value is an assoc list of candidate => SEC_DEPT_*.

get_offset_target_turf

returns turf relative to target_atom offset in dx and dy tiles, bound to map limits

get_open_turf_in_dir

Returns the open turf next to the center in a specific direction

get_path_by_slot

Returns a generic path of the object based on the slot

get_path_to

This is the proc you use whenever you want to have pathfinding more complex than "try stepping towards the thing". +If no path was found, returns an empty list, which is important for bots like medibots who expect an empty list rather than nothing. +It will yield until a path is returned, using magic

+

Arguments:

+
    +
  • caller: The movable atom that's trying to find the path
  • +
  • end: What we're trying to path to. It doesn't matter if this is a turf or some other atom, we're gonna just path to the turf it's on anyway
  • +
  • max_distance: The maximum number of steps we can take in a given path to search (default: 30, 0 = infinite)
  • +
  • mintargetdistance: Minimum distance to the target before path returns, could be used to get near a target, but not right to it - for an AI mob with a gun, for example.
  • +
  • access: A list representing what access we have and what doors we can open.
  • +
  • simulated_only: Whether we consider tur fs without atmos simulation (AKA do we want to ignore space)
  • +
  • exclude: If we want to avoid a specific turf, like if we're a mulebot who already got blocked by some turf
  • +
  • skip_first: Whether or not to delete the first item in the path. This would be done because the first item is the starting tile, which can break movement for some creatures.
  • +
  • diagonal_handling: defines how we handle diagonal moves. see __DEFINES/path.dm
  • +

get_perceived_radiation_danger

Gets the perceived "danger" of radiation pulse, given the threshold to the target. +Returns a RADIATION_DANGER_* define, see code/__DEFINES/radiation.dm

get_perimeter

Get a list of turfs in a perimeter given the center_atom and radius. +Automatically rounds down decimals and does not accept values less than positive 1 as they don't play well with it. +Is efficient on large circles but ugly on small ones +Uses Jesko`s method to the midpoint circle Algorithm.

get_pixel_angle

for getting the angle when animating something's pixel_x and pixel_y

get_pixel_distance

Finds the distance between two atoms, in pixels
+centered = FALSE counts from turf edge to edge
+centered = TRUE counts from turf center to turf center
+of course mathematically this is just adding world.icon_size on again

get_player_client

Returns a client from a mob, mind or client

get_powernet_info_from_source

Extracts the powernet and cell of the provided power source

get_preferences_in_priority_order

Returns a flat list of preferences in order of their priority

get_random_coin

Gets a random coin excluding the blocked type and including extra coins which aren't pathed like coins.

get_random_drink

Gets a random drink excluding the blocked type

get_random_drink_id

Returns a random reagent consumable ethanol object minus blacklisted reagents

get_random_food

Get a random food item exluding the blocked ones

get_random_jumpskirt

Returns a random, acceptable jumpskirt typepath

get_random_jumpsuit

Returns a random, acceptable jumpsuit typepath

get_random_reagent_id

Returns a random reagent object, with the option to blacklist reagents.

get_random_station_turf

Returns a random turf on the station

get_random_valid_hallucination_subtype

Gets a random subtype of the passed hallucination type that has a random_hallucination_weight > 0. +If no subtype is passed, it will get any random hallucination subtype that is not abstract and has weight > 0. +This can be used instead of picking from the global weighted list to just get a random valid hallucination.

get_ranged_target_turf_direct

Get ranged target turf, but with direct targets as opposed to directions

+

Starts at atom starting_atom and gets the exact angle between starting_atom and target +Moves from starting_atom with that angle, Range amount of times, until it stops, bound to map size +Arguments:

+
    +
  • starting_atom - Initial Firer / Position
  • +
  • target - Target to aim towards
  • +
  • range - Distance of returned target turf from starting_atom
  • +
  • offset - Angle offset, 180 input would make the returned target turf be in the opposite direction
  • +

get_reagent_type_from_product_string

Returns a list of chemical_reaction datums that have the input STRING as a product

get_recipe_from_reagent_product

Takes a type in and returns a list of associated recipes

get_round_default_lawset

A getter that sets up the round default if it has not been yet.

+

round_default_lawset is what is considered the default for the round. Aka, new AI and other silicons would get this. +You might recognize the fact that 99% of the time it is asimov.

+

This requires config, so it is generated at the first request to use this var.

get_safe_random_station_turf

Returns a random turf on the station, excludes dense turfs (like walls) and areas that have valid_territory set to FALSE

get_selectable_species

Gets a list of all species available to choose in roundstart.

get_sensitive_adminwho_information

Proc that gathers adminwho information for admins, which will contain information on if the admin is AFK, readied to join, etc. Only arg is a list of clients to use. +Will return a list of strings.

get_sfx

Used to convert a SFX define into a .ogg so we can add some variance to sounds. If soundin is already a .ogg, we simply return it

get_size_in_tiles

Returns the size of the sprite in tiles. +Takes the icon size and divides it by the world icon size (default 32). +This gives the size of the sprite in tiles.

+

@return size of the sprite in tiles

get_small_overlay

Fikou's fix for making toast alerts look nice - resets offsets, transforms to fit

get_sorted_areas

Returns a sorted version of GLOB.areas, by name

get_swarm_path_to

POTENTIALLY cheaper version of get_path_to +This proc generates a path map for the end atom's turf, which allows us to cheaply do pathing operations "at" it +Generation is significantly SLOWER then get_path_to, but if many things are/might be pathing at something then it is much faster +Runs the risk of returning an suboptimal or INVALID PATH if the delay between map creation and use is too long

+

If no path was found, returns an empty list, which is important for bots like medibots who expect an empty list rather than nothing. +It will yield until a path is returned, using magic

+

Arguments:

+
    +
  • caller: The movable atom that's trying to find the path
  • +
  • end: What we're trying to path to. It doesn't matter if this is a turf or some other atom, we're gonna just path to the turf it's on anyway
  • +
  • max_distance: The maximum number of steps we can take in a given path to search (default: 30, 0 = infinite)
  • +
  • mintargetdistance: Minimum distance to the target before path returns, could be used to get near a target, but not right to it - for an AI mob with a gun, for example.
  • +
  • age: How old a path map can be before we'll avoid reusing it. Use the defines found in code/__DEFINES/path.dm, values larger then MAP_REUSE_SLOWEST will be discarded
  • +
  • access: A list representing what access we have and what doors we can open.
  • +
  • simulated_only: Whether we consider tur fs without atmos simulation (AKA do we want to ignore space)
  • +
  • exclude: If we want to avoid a specific turf, like if we're a mulebot who already got blocked by some turf
  • +
  • skip_first: Whether or not to delete the first item in the path. This would be done because the first item is the starting tile, which can break movement for some creatures.
  • +

get_teleport_loc

Returns location. Returns null if no location was found.

get_temp_change_amount

Used to get the amount of change between two body temperatures

+

When passed the difference between two temperatures returns the amount of change to temperature to apply. +The change rate should be kept at a low value tween 0.16 and 0.02 for optimal results. +vars:

+
    +
  • temp_diff (required) The difference between two temperatures
  • +
  • change_rate (optional)(Default: 0.06) The rate of range multiplier
  • +

get_turf_pixel

Lets the turf this atom's ICON appears to inhabit +it takes into account: +Pixel_x/y +Matrix x/y +NOTE: if your atom has non-standard bounds then this proc +will handle it, but: +if the bounds are even, then there are an even amount of "middle" turfs, the one to the EAST, NORTH, or BOTH is picked +this may seem bad, but you're at least as close to the center of the atom as possible, better than byond's default loc being all the way off) +if the bounds are odd, the true middle turf of the atom is returned

get_valid_screen_location

Returns a valid location to place a screen object without overflowing the viewport

+
    +
  • target: The target location as a purely number based screen_loc string "+-left-offset:+-pixel,+-bottom-offset:+-pixel"
  • +
  • target_offset: The amount we want to offset the target location by. We explictly don't care about direction here, we will try all 4
  • +
  • view: The view variable of the client we're doing this for. We use this to get the size of the screen
  • +
+

Returns a screen loc representing the valid location

get_visual_offset

Returns how visually "off" the atom is from its source turf as a list of x, y (in pixel steps) +it takes into account: +Pixel_x/y +Matrix x/y +Icon width/height

give_admin_popup

Tries to give the target an admin popup. +If it fails, will send the error to the passed admin.

give_escape_menu_details

Provides a singleton for the escape menu details screen.

give_escape_menu_title

Provides a singleton for the escape menu details screen.

goonchem_vortex

Magical move-wooney that happens sometimes.

+

Simulates a vortex that moves nearby movable atoms towards or away from the turf T. +Range also determines the strength of the effect. High values cause nearby objects to be thrown. +Arguments:

+
    +
  • T - turf where it happens
  • +
  • setting_type - does it suck or does it blow?
  • +
  • range - range.
  • +

grawlix

Generate a grawlix string of length of the text argument.

greatest_common_factor

Takes a list of numbers as input, returns the highest value that is cleanly divides them all +Note: this implementation is expensive as heck for large numbers, I only use it because most of my usecase +Is < 10 ints

hallucination_pulse

Emits a hallucinating pulse around the passed atom. +Affects everyone in the passed radius except for those with TRAIT_MADNESS_IMMUNE. This affects blind players.

+

center - required, the center of the pulse +radius - the radius around that the pulse reaches +hallucination_duration - how much hallucination is added by the pulse. reduced based on distance to the center. +hallucination_max_duration - a cap on how much hallucination can be added +optional_messages - optional list of messages passed. Those affected by pulses will be given one of the messages in said list.

handle_job_exempt_menu_topic

Topic handler for the job exempt menu

+

Arguments:

+
    +
  • user - The administrator mob invoking the Topic
  • +
  • href - The href token
  • +
  • href_list - The href list
  • +
  • target_ckey - The ckey to edit
  • +

haunt_outburst

Takes a given area and chance, applying the haunted_item component to objects in the area.

+

Takes an epicenter, and within the range around it, runs a haunt_chance percent chance of +applying the haunted_item component to nearby objects.

+
    +
  • epicenter - The center of the outburst area.
  • +
  • range - The range of the outburst, centered around the epicenter.
  • +
  • haunt_chance - The percent chance that an object caught in the epicenter will be haunted.
  • +
  • duration - How long the haunting will remain for.
  • +

healthscan

healthscan +returns a list of everything a health scan should give to a player. +Examples of where this is used is Health Analyzer and the Physical Scanner tablet app. +Args: +user - The person with the scanner +target - The person being scanned +mode - Uses SCANNER_CONDENSED or SCANNER_VERBOSE to decide whether to give a list of all individual limb damage +advanced - Whether it will give more advanced details, such as husk source. +tochat - Whether to immediately post the result into the chat of the user, otherwise it will return the results.

honkerblast

Unleashes a honkerblast similar to the honkmech weapon, but with more granular control.

hsv2rgb

Converts a list storing hsva into an rgb color

htmlrendertext

Perform a whitespace cleanup on the text, similar to what HTML renderers do

+

This is useful if you want to better predict how text is going to look like when displaying it to a user. +HTML renderers collapse multiple whitespaces into one, trims prepending and appending spaces, among other things. This proc attempts to do the same thing. +HTML5 defines whitespace pretty much exactly like regex defines the \s group, [ \t\r\n\f].

+

Arguments:

+
    +
  • t - The text to "render"
  • +

icon2base64

Converts an icon to base64. Operates by putting the icon in the iconCache savefile, +exporting it as text, and then parsing the base64 from that. +(This relies on byond automatically storing icons in savefiles as base64)

icon2html

generate an asset for the given icon or the icon of the given appearance for [thing], and send it to any clients in target. +Arguments:

+
    +
  • thing - either a /icon object, or an object that has an appearance (atom, image, mutable_appearance).
  • +
  • target - either a reference to or a list of references to /client's or mobs with clients
  • +
  • icon_state - string to force a particular icon_state for the icon to be used
  • +
  • dir - dir number to force a particular direction for the icon to be used
  • +
  • frame - what frame of the icon_state's animation for the icon being used
  • +
  • moving - whether or not to use a moving state for the given icon
  • +
  • sourceonly - if TRUE, only generate the asset and send back the asset url, instead of tags that display the icon to players
  • +
  • extra_clases - string of extra css classes to use when returning the icon string
  • +

icon_exists

Checks if the given iconstate exists in the given file, caching the result. Setting scream to TRUE will print a stack trace ONCE.

inLineOfSight

Calculate if two atoms are in sight, returns TRUE or FALSE

init_alcohol_containers

////////////////////////////////////////////Alchohol bottles! -Agouri ////////////////////////// +Initializes GLOB.alcohol_containers, only containers that actually have reagents are added to the list.

init_chemical_reagent_list

Initialises all /datum/reagent into a list indexed by reagent id

init_crafting_recipes

Inits crafting recipe lists

init_crafting_recipes_atoms

Inits atoms used in crafting recipes

init_export

Makes sure the exports list is populated and that the report isn't null.

init_gas_id_to_canister

Returns a map of canister id to its type path

init_hotspot_reactions

Returns reactions which will contribute to a hotspot's size.

init_keybindings

Creates and sorts all the keybinding datums

init_language_holder_prototypes

Inits the global list of language holder prototypes.

init_loadout_categories

Inits the global list of loadout category singletons +Also inits loadout item singletons

init_pirate_gangs

initializes the pirate gangs glob list, adding all subtypes that can roll today.

init_subtypes_w_path_keys

Functions like init_subtypes, but uses the subtype's path as a key for easy access

init_surgeries

//Initial Building/////

+

Inits GLOB.surgeries

initialize_starting_knowledge

Returns a list of all heretic knowledge TYPEPATHS +that have route set to PATH_START.

int_to_words

Takes a 1, 2 or 3 digit number and returns it in words. Don't call this directly, use convert_integer_to_words() instead.

+

Arguments:

+
    +
  • number - 1, 2 or 3 digit number to convert.
  • +
  • carried_string - Text to append after number is converted to words, e.g. "million", as in "eighty million".
  • +
  • capitalise - Whether the number it returns should be capitalised or not, e.g. "Eighty-Eight" vs. "eighty-eight".
  • +

invert_HTML_colour

Inverts the colour of an HTML string

ion_num

Picks a string of symbols to display as the law number for hacked or ion laws +is at the start to prevent us from changing say modes via get_message_mode()

isAdminGhostAI

Returns TRUE/FALSE on whether the mob is an Admin Ghost AI. +This requires this snowflake check because AI interact gives the access to the mob's client, rather +than the mob like everyone else, and we keep it that way so they can't accidentally give someone Admin AI access.

isAdminObserver

Is the passed in mob a ghost with admin powers, doesn't check for AI interact like isAdminGhost() used to

is_admin

Returns if the given client is an admin, REGARDLESS of if they're deadminned or not.

is_banned_from

Checks client ban cache or, if it doesn't exist, queries the DB ban table to see if the player's +ckey is banned from at least one of the provided roles.

+

Returns TRUE if the player matches with one or more role bans. +Returns FALSE if the player doesn't match with any role bans. Possible errors states also return FALSE.

+

Args:

+
    +
  • player_key - Either key or ckey of the player you want to check for role bans.
  • +
  • roles - Accepts either a single role string, or a list of role strings.
  • +

is_color_dark

Given a color in the format of "#RRGGBB", will return if the color +is dark.

is_convertable_to_cult

Returns whether the given mob is convertable to the blood cult

is_ctf_target

Proc that identifies if something is a valid target for CTF related checks, checks if an object is a ctf barrier or has ctf component if they are a player.

is_factual_sprite_accessory

This will check if SSaccessories.sprite_accessories[mutant_part]?[part_name] is associated with sprite accessory with factual TRUE.

is_guest_key

Returns whether or not a player is a guest using their ckey as an input

is_ic_filtered

Given a text, will return what word is on the IC filter, with the reason. +Returns null if the message is OK.

is_ic_filtered_for_pdas

Given a text, will return what word is on the IC filter, ignoring words allowed on the PDA, with the reason. +Returns null if the message is OK.

is_infiltrator_docked_at_syndiebase

Returns whether or not syndicate operatives escaped.

is_job_exempt_from

Returns whether a ckey has the job exemption for a job

+

Arguments:

+
    +
  • ckey - The ckey you're checking, both key and ckey work
  • +
  • job_title - The job.title of the job you're checking
  • +

is_matching_bait

Helper proc that checks if a bait matches identifier from fav/disliked bait list

is_on_a_planet

Checks if the passed non-area atom is on a "planet".

+

A planet is defined as anything with planetary atmos that has gravity, with some hardcoded exceptions.

+
    +
  • Nullspace counts as "not a planet", so you may want to check that separately.
  • +
  • The mining z-level (Lavaland) is always considered a planet.
  • +
  • The station z-level is considered a planet if the map config says so.
  • +
  • Central Command is always not a planet.
  • +
  • Syndicate recon outpost is always on a planet.
  • +
+

Returns TRUE if we are on a planet. +Returns FALSE if we are not in a planet, or otherwise, "in space".

is_ooc_filtered

Given a text, will return what word is on the OOC filter, with the reason. +Returns null if the message is OK.

is_path_in_list

Checks for specific paths in a list.

+

If using zebra mode the list should be an assoc list with truthy/falsey values. +The check short circuits so earlier entries in the input list will take priority. +Ergo, subpaths should come before parent paths. +Notice that this is the opposite priority of /proc/typecacheof.

+

Arguments:

+
    +
  • path_to_check: A typepath to check.
  • +
  • list_to_check: A list of typepaths to check the path_to_check against.
  • +
  • zebra: Whether to use the value of the mathing path in the list instead of just returning true when a match is found.
  • +

is_safe_turf

Checks if a given turf is a "safe" location

is_soft_ic_filtered

Given a text, will return what word is on the soft IC filter, with the reason. +Returns null if the message is OK.

is_soft_ic_filtered_for_pdas

Given a text, will return what word is on the soft IC filter, ignoring words allowed on the PDA, with the reason. +Returns null if the message is OK.

is_soft_ooc_filtered

Given a text, will return that word is on the soft OOC filter, with the reason. +Returns null if the message is OK.

is_source_facing_target

Compare source's dir, the clockwise dir of source and the anticlockwise dir of source +To the opposite dir of the dir returned by get_dir(target,source) +If one of them is a match, then source is facing target

is_special_character

Returns TRUE if the game has started and we're either an AI with a 0th law, or we're someone with a special role/antag datum +If allow_fake_antags is set to FALSE, Valentines, ERTs, and any such roles with FLAG_FAKE_ANTAG won't pass.

is_type_in_list

Checks for specific types in a list.

+

If using zebra mode the list should be an assoc list with truthy/falsey values. +The check short circuits so earlier entries in the input list will take priority. +Ergo, subtypes should come before parent types. +Notice that this is the opposite priority of /proc/typecacheof.

+

Arguments:

+
    +
  • type_to_check: An instance to check.
  • +
  • list_to_check: A list of typepaths to check the type_to_check against.
  • +
  • zebra: Whether to use the value of the matching type in the list instead of just returning true when a match is found.
  • +

is_type_on_turf

Checks whether or not a particular typepath or subtype of it is present on a turf

+

Returns the first instance located if an instance of the desired type or a subtype of it is found +Returns null if the type is not found, or if no turf is supplied

+

Arguments:

+
    +
  • location - The turf to be checked for the desired type
  • +
  • type_to_find - The typepath whose presence you are checking for
  • +

is_valid_dmi_file

given a text string, returns whether it is a valid dmi icons folder path

is_valid_src

Check if a datum has not been deleted and is a valid source

is_valid_z_level

    +
  • is_valid_z_level
  • +
+

Checks if source_loc and checking_loc is both on the station, or on the same z level. +This is because the station's several levels aren't considered the same z, so multi-z stations need this special case.

+

Args: +source_loc - turf of the source we're comparing. +checking_loc - turf we are comparing to source_loc.

+

returns TRUE if connection is valid, FALSE otherwise.

is_within_radio_jammer_range

Checks if a given atom is in range of a radio jammer, returns TRUE if it is.

ishumanbasic

Returns if the given target is a human. Like, a REAL human. +Not a moth, not a felinid (which are human subtypes), but a human.

iso_to_weekday

Returns an integer in ISO format 1 (Monday) - 7 (Sunday) as a string day

isolate_light

Hides all the lights around a source temporarially, for the sake of figuring out how bad a light bleeds +(Except for turf lights, because they're a part of the "scene" and rarely modified)

isvineimmune

Used to determine whether the mob is immune to actions by the vine. +Use cases: Stops vine from attacking itself, other plants.

join_admin_ranks

Takes a list of rank names and joins them with +

json_deserialize_datum

Convert a list of json to datum

json_serialize_datum

Convert a datum into a json blob

kvpify_list

Converts a list into a list of assoc lists of the form ("key" = key, "value" = value) +so that list keys that are themselves lists can be fully json-encoded +and that unique objects with the same string representation do not +produce duplicate keys that are clobbered by the standard JavaScript JSON.parse function

lavaland_equipment_pressure_check

Check if the turf pressure allows specialized equipment to work

lawid_to_type

returns the law datum with the lawid in question, law boards and law datums should share this id.

level_announce

Sends an announcement about the level changing to players. Uses the passed in datum and the subsystem's previous security level to generate the message.

library_updated

Increments every time WE update the library db table, causes all existing consoles to repull when they next check

lightningbolt

this is the actual bolt effect and damage, made into its own proc because it is used elsewhere

list_clear_empty_weakrefs

Removes any empty weakrefs from the list +Returns TRUE if the list had empty refs, FALSE otherwise

list_clear_nulls

Removes any null entries from the list +Returns TRUE if the list had nulls, FALSE otherwise

list_holy_successors

Create a list of the holy successors mobs from GLOB.holy_successors weakref list

+

Returns the list of valid holy successors

living_player_count

Returns the amount of currently living players

load_admin_ranks

Loads admin ranks. +Return a list containing the backup data if they were loaded from the database backup json

load_admins

(Re)Loads the admin list. +returns TRUE if database admins had to be loaded from the backup json

load_adventures

Loads all adventures from DB

load_default_map_config

Proc that simply loads the default map config, which should always be functional.

load_job_exempt_cache

Loads job exempt cache for ckey, for internal use

+

Arguments:

+
    +
  • ckey - The ckey to load the cache for
  • +

load_map

Helper and recommened way to load a map file

+
    +
  • dmm_file: The path to the map file
  • +
  • x_offset: The x offset to load the map at
  • +
  • y_offset: The y offset to load the map at
  • +
  • z_offset: The z offset to load the map at
  • +
  • crop_map: If true, the map will be cropped to the world bounds
  • +
  • measure_only: If true, the map will not be loaded, but the bounds will be calculated
  • +
  • no_changeturf: If true, the map will not call /turf/AfterChange
  • +
  • x_lower: The minimum x coordinate to load
  • +
  • x_upper: The maximum x coordinate to load
  • +
  • y_lower: The minimum y coordinate to load
  • +
  • y_upper: The maximum y coordinate to load
  • +
  • z_lower: The minimum z coordinate to load
  • +
  • z_upper: The maximum z coordinate to load
  • +
  • place_on_top: Whether to use /turf/proc/PlaceOnTop rather than /turf/proc/ChangeTurf
  • +
  • new_z: If true, a new z level will be created for the map
  • +

load_map_config

Proc handling the loading of map configs. Will return the default map config using /proc/load_default_map_config if the loading of said file fails for any reason whatsoever, so we always have a working map for the server to run. +Arguments:

+
    +
  • filename - Name of the config file for the map we want to load. The .json file extension is added during the proc, so do not specify filenames with the extension.
  • +
  • directory - Name of the directory containing our .json - Must be in MAP_DIRECTORY_WHITELIST. We default this to MAP_DIRECTORY_MAPS as it will likely be the most common usecase. If no filename is set, we ignore this.
  • +
  • error_if_missing - Bool that says whether failing to load the config for the map will be logged in log_world or not as it's passed to LoadConfig().
  • +
+

Returns the config for the map to load.

load_poll_data

Loads all current and future server polls and their options to store both as datums.

loadout_list_to_datums

Takes a list of paths (such as a loadout list) +and returns a list of their singleton loadout item datums

+

loadout_list - the list being checked

+

Returns a list of singleton datums

localweb_sound

Takes an input from either proc/play_web_sound or the request manager and runs it through youtube-dl and prompts the user before playing it to the server.

log_access

Logging for logging in & out of the game, with error messages.

log_admin

General logging for admin actions

log_admin_circuit

Logging for admin actions on or with circuits

log_admin_private

General logging for admin actions

log_adminsay

Logging for AdminSay (ASAY) messages

log_asset

Logging for loading and caching assets

log_atmos

Logs the contents of the gasmix to the game log, prefixed by text

log_attack

Generic attack logging

log_bomber

Logging for bombs detonating

log_borer_evolution

Logging for borer evolutions

log_changeling_power

Logging for changeling powers purchased

log_chat

Logging for chatting on modular computer channels

log_combat

Log a combat message in the attack log

+

Arguments:

+
    +
  • atom/user - argument is the actor performing the action
  • +
  • atom/target - argument is the target of the action
  • +
  • what_done - is a verb describing the action (e.g. punched, throwed, kicked, etc.)
  • +
  • atom/object - is a tool with which the action was made (usually an item)
  • +
  • addition - is any additional text, which will be appended to the rest of the log line
  • +

log_comment

Logging for newscaster comments

log_config

Logging for config errors +Rarely gets called; just here in case the config breaks.

log_creator

This logs character creator changes in debug.log

log_directed_talk

Helper for logging of messages with only one sender and receiver (i.e. mind links)

log_dsay

Logging for DeachatSay (DSAY) messages

log_dynamic

Logging for dynamic procs

log_emote

Logging for emotes

log_filter

Logs to the filter log with the given message, match, and scope

log_game

Logging for generic/unsorted game messages

log_heretic_knowledge

Logging for heretic powers learned

log_internet_request

Logging for music requests

log_job_debug

Logging for job slot changes

log_lua

Logging for lua scripting

log_malf_upgrades

Logging for upgrades purchased by a malfunctioning (or combat upgraded) AI

log_manifest

Logging for player manifest (ckey, name, job, special role, roundstart/latejoin)

log_mapping

Logging for mapping errors

log_mecha

Logging for mech actions

log_ooc

Logging for messages sent in OOC

log_paper

Logging for writing made on paper

log_pda

Logging for PDA messages sent

log_perf

Logging for game performance

log_played_names

Adds the new names to the player's played_names list on their /datum/player_details for use of admins. +ckey should be their ckey, and data should be an associative list with the keys being the names they played under and the values being the unique mob ID tied to that name.

log_prayer

Logging for prayed messages

log_qdel

Logging for hard deletes

log_radio_emote

Logging for emotes sent over the radio

log_research

Puts the text into the research html file, not log. See [INVESTIGATE_RESEARCH] for [/atom/proc/investigate_log]

log_say

Logging for generic spoken messages

log_shuttle

Logging for shuttle actions

log_speech_indicators

Logging for speech indicators.

log_spellbook

Logging for wizard powers learned

log_spy

Logs bounties completed by spies and their rewards

log_sql

Logging for DB errors

log_subtle

This logs subtle emotes in game.log

log_subtler

This logs subtler emotes in game.log, if the conflig flag in config\skyrat\skyrat_config.txt is true.

log_suspicious_login

Writes to a special log file if the log_suspicious_login config flag is set, +which is intended to contain all logins that failed under suspicious circumstances.

+

Mirrors this log entry to log_access when access_log_mirror is TRUE, so this proc +doesn't need to be used alongside log_access and can replace it where appropriate.

log_telecomms

Logging for speech taking place over comms, as well as tcomms equipment

log_tgui

Appends a tgui-related log entry. All arguments are optional.

log_tool

Logging for tool usage

log_topic

Logging for world/Topic

log_traitor

Logging for traitor objectives

log_transport

Logging for transport (tram/elevator) actions

Logging for items purchased from a traitor uplink

log_virus

Logging for the creation and contraction of viruses

log_vote

Logging for OOC votes

log_whisper

Logging for whispered messages

log_world

Log to both DD and the logfile.

log_wound

log_wound() is for when someone is attacked and suffers a wound. Note that this only captures wounds from damage, so smites/forced wounds aren't logged, as well as demotions like cuts scabbing over

+

Note that this has no info on the attack that dealt the wound: information about where damage came from isn't passed to the bodypart's damaged proc. When in doubt, check the attack log for attacks at that same time +TODO later: Add logging for healed wounds, though that will require some rewriting of healing code to prevent admin heals from spamming the logs. Not high priority

+

Arguments:

+
    +
  • victim- The guy who got wounded
  • +
  • suffered_wound- The wound, already applied, that we're logging. It has to already be attached so we can get the limb from it
  • +
  • dealt_damage- How much damage is associated with the attack that dealt with this wound.
  • +
  • dealt_wound_bonus- The wound_bonus, if one was specified, of the wounding attack
  • +
  • dealt_bare_wound_bonus- The bare_wound_bonus, if one was specified and applied, of the wounding attack. Not shown if armor was present
  • +
  • base_roll- Base wounding ability of an attack is a random number from 1 to (dealt_damage ** WOUND_DAMAGE_EXPONENT). This is the number that was rolled in there, before mods
  • +

make_associative

Make a normal list an associative one

make_body

Uses stripped down and bastardized code from respawn character

make_datum_reference_lists

Legacy procs that really should be replaced with proper _INIT macros

make_into_clown

Helper proc that handles making someone into a clown after a bananium nuke goes off.

make_tuple

Returns the name of the mathematical tuple of same length as the number arg (rounded down).

material_insertion_animation

Creates a mutable appearance with the material color applied for its insertion animation into an autolathe or techfab +Arguments

+
    +
  • color - the material color that will be applied
  • +

md5asfile

Save file as an external file then md5 it. +Used because md5ing files stored in the rsc sometimes gives incorrect md5 results.

md5filepath

Returns the md5 of a file at a given path.

message_centcom

Used by communications consoles to message CentCom

message_syndicate

Used by communications consoles to message the Syndicate

message_to_html

Message-related procs

+

Message format (/list):

+
    +
  • type - Message type, must be one of defines in code/__DEFINES/chat.dm
  • +
  • text - Plain message text
  • +
  • html - HTML message text
  • +
  • Optional metadata, can be any key/value pair.
  • +
+

Copyright (c) 2020 Aleksej Komarov +SPDX-License-Identifier: MIT

minor_announce

Sends a minor annoucement to players. +Minor announcements are large text, with the title in red and message in white. +Only mobs that can hear can see the announcements.

+

message - the message contents of the announcement. +title - the title of the announcement, which is often "who sent it". +alert - whether this announcement is an alert, or just a notice. Only changes the sound that is played by default. +html_encode - if TRUE, we will html encode our title and message before sending it, to prevent player input abuse. +players - optional, a list mobs to send the announcement to. If unset, sends to all palyers. +sound_override - optional, use the passed sound file instead of the default notice sounds. +should_play_sound - Whether the notice sound should be played or not. +color_override - optional, use the passed color instead of the default notice color.

mobs_in_area_type

Takes: list of area types +Returns: all mobs that are in an area type

mouse_angle_from_client

Returns an angle in degrees relative to the position of the mouse and that of the client eye.

move_element

Move a single element from position from_index within a list, to position to_index +All elements in the range [1,to_index) before the move will be before the pivot afterwards +All elements in the range [to_index, L.len+1) before the move will be after the pivot afterwards +In other words, it's as if the range [from_index,to_index) have been rotated using a <<< operation common to other languages. +from_index and to_index must be in the range [1,L.len+1] +This will preserve associations ~Carnie

move_range

Move elements [from_index,from_index+len) to [to_index-len, to_index) +Same as moveElement but for ranges of elements +This will preserve associations ~Carnie

movespeed_data_null_check

Checks if a move speed modifier is valid and not missing any data

mutable_appearance

    +
  • +

    Helper similar to image()

    +
  • +
  • +

    icon - Our appearance's icon

    +
  • +
  • +

    icon_state - Our appearance's icon state

    +
  • +
  • +

    layer - Our appearance's layer

    +
  • +
  • +

    atom/offset_spokesman - An atom to use as reference for the z position of this appearance.

    +
  • +
  • +

    Only required if a plane is passed in. If this is not passed in we accept offset_const as a substitute

    +
  • +
  • +

    plane - The plane to use for the appearance. If this is not FLOAT_PLANE we require context for the offset to use

    +
  • +
  • +

    alpha - Our appearance's alpha

    +
  • +
  • +

    appearance_flags - Our appearance's appearance_flags

    +
  • +
  • +

    offset_const - A constant to offset our plane by, so it renders on the right "z layer"

    +
  • +

narsie_apocalypse

Third crew last second win check and flufftext for [/proc/begin_the_end()]

narsie_end_begin_check

First crew last second win check and flufftext for [/proc/begin_the_end()]

narsie_end_second_check

Second crew last second win check and flufftext for [/proc/begin_the_end()]

narsie_last_second_win

Called only if the crew managed to destroy narsie at the very last second for [/proc/begin_the_end()]

narsie_start_destroy_station

security level and shuttle lockdowns for [/proc/begin_the_end()]

next_list_item

Returns the next item in a list

notify_ghosts

Fancy notifications for ghosts

+

The kitchen sink of notification procs

+

Arguments:

+
    +
  • message: The message displayed in chat.
  • +
  • source: The source of the notification. This is required for an icon
  • +
  • header: The title text to display on the icon tooltip.
  • +
  • alert_overlay: Optional. Create a custom overlay if you want, otherwise it will use the source
  • +
  • click_interact: If true, adds a link + clicking the icon will attack_ghost the source
  • +
  • custom_link: Optional. If you want to add a custom link to the chat notification
  • +
  • ghost_sound: sound to play
  • +
  • ignore_key: Ignore keys if they're in the GLOB.poll_ignore list
  • +
  • notify_volume: How loud the sound should be to spook the user
  • +

nuke_gib

Helper proc that handles gibbing someone who has been nuked.

nuke_request

Used by communications consoles to request the nuclear launch codes

objectify

"Turns" people into objects. Really, we just add them to the contents of the item.

offer_control

Offer control of the passed in mob to dead player

+

Automatic logging and uses poll_candidates_for_mob, how convenient

offset_to_screen_loc

Takes a list in the form (x_offset, y_offset) +And converts it to a screen loc string +Accepts an optional view string/size to force the screen_loc around, so it can't go out of scope

overlays2text

Converts an overlay list into text for debug printing +Of note: overlays aren't actually mutable appearances, they're just appearances +Don't have access to that type tho, so this is the best you're gonna get

parse_caught_click_modifiers

Returns a turf based on text inputs, original turf and viewing client

parse_slot_flags

Returns a list of strings for a given slot flag.

parse_zone

Return a string for the specified body zone. Should be used for parsing non-instantiated bodyparts, otherwise use /obj/item/bodypart/var/plaintext_zone

partially_block_emissives

Takes a non area atom and a threshold +Makes it block emissive with any pixels with more alpha then that threshold, with the rest allowing the light to pass +Returns a list of objects, automatically added to your vis_contents, that apply this effect +QDEL them when appropriate

pass

A do nothing proc

path_map_passalong

We generate a path for the passed in callbacks, and then pipe it over

pathfinding_finished

Uses funny pass by reference bullshit to take the output created by pathfinding, and insert it into a return list +We'll be able to use this return list to tell a sleeping proc to continue execution

pathwalk

Takes a directory and returns every file within every sub directory. +If extensions_filter is provided then only files that end in that extension are given back. +If extensions_filter is a list, any file that matches at least one entry is given back.

peek

Returns the top (last) element from the list, does not remove it from the list. Stack functionality.

permissive_sanitize_name

Much more permissive version of reject_bad_name(). +Returns a trimmed string or null if the name is invalid. +Allows most characters except for IC chat prohibited words.

phase_filter

Cool filter that I'm using for some of this :)))

pick_closest_path

Returns a chosen path that is the closest to a list of matches

pick_holy_successor

Chooses a valid holy successor from GLOB.holy_successor weakref list and sets things up for them to be the new high priest

+

Returns the chosen holy successor, or null if no valid successor

pick_n_take

Pick a random element from the list and remove it from the list.

pick_weight

Picks a random element from a list based on a weighting system. +For example, given the following list: +A = 6, B = 3, C = 1, D = 0 +A would have a 60% chance of being picked, +B would have a 30% chance of being picked, +C would have a 10% chance of being picked, +and D would have a 0% chance of being picked. +You should only pass integers in.

pick_weight_recursive

Like pick_weight, but allowing for nested lists.

+

For example, given the following list: +list(A = 1, list(B = 1, C = 1)) +A would have a 50% chance of being picked, +and list(B, C) would have a 50% chance of being picked. +If list(B, C) was picked, B and C would then each have a 50% chance of being picked. +So the final probabilities would be 50% for A, 25% for B, and 25% for C.

+

Weights should be integers. Entries without weights are assigned weight 1 (so unweighted lists can be used as well)

pick_weighted_lawset

returns a law datum based off of config. will never roll asimov as the weighted datum if the station has a unique AI.

piglatin_sentence

runs piglatin_word() proc on each word in a sentence. preserves caps and punctuation

piglatin_word

takes "word", and returns it piglatinized.

pixel_offset_turf

Takes a turf, and a list of x and y pixel offsets and returns the turf that the offset position best lands in

play_cinematic

Plays a cinematic, duh. Can be to a select few people, or everyone.

+

cinematic_type - datum typepath to what cinematic you wish to play. +watchers - a list of all mobs you are playing the cinematic to. If world, the cinematical will play globally to all players. +special_callback - optional callback to be invoked mid-cinematic.

play_fov_effect

Plays a visual effect representing a sound cue for people with vision obstructed by FOV or blindness

playsound

playsound is a proc used to play a 3D sound in a specific range. This uses SOUND_RANGE + extra_range to determine that.

+

Arguments:

+
    +
  • source - Origin of sound.
  • +
  • soundin - Either a file, or a string that can be used to get an SFX.
  • +
  • vol - The volume of the sound, excluding falloff and pressure affection.
  • +
  • vary - bool that determines if the sound changes pitch every time it plays.
  • +
  • extrarange - modifier for sound range. This gets added on top of SOUND_RANGE.
  • +
  • falloff_exponent - Rate of falloff for the audio. Higher means quicker drop to low volume. Should generally be over 1 to indicate a quick dive to 0 rather than a slow dive.
  • +
  • frequency - playback speed of audio.
  • +
  • channel - The channel the sound is played at.
  • +
  • pressure_affected - Whether or not difference in pressure affects the sound (E.g. if you can hear in space).
  • +
  • ignore_walls - Whether or not the sound can pass through walls.
  • +
  • falloff_distance - Distance at which falloff begins. Sound is at peak volume (in regards to falloff) aslong as it is in this range.
  • +

podspawn

One proc for easy spawning of pods in the code to drop off items before whizzling (please don't proc call this in game, it will destroy you)

+

Arguments:

+
    +
  • specifications: special mods to the pod, see non var edit specifications for details on what you should fill this with +Non var edit specifications:
  • +
  • target = where you want the pod to drop
  • +
  • path = a special specific pod path if you want, this can save you a lot of var edits
  • +
  • style = style of the pod, defaults to the normal pod
  • +
  • spawn = spawned path or a list of the paths spawned, what you're sending basically +Returns the pod spawned, in case you want to spawn items yourself and modify them before putting them in.
  • +

poll_cultists_for_leader

Polls all Cultists on whether the person putting themselves forward should be made the Cult Leader, if they can actually be such.

poll_holiday

Takes a holiday datum, a starting month, ending month, max amount of days to test in, and min/max year as input +Returns a list in the form list("yyyy/m/d", ...) representing all days the holiday runs on in the tested range

pop

Returns the top(last) element from the list and removes it from the list (typical stack function)

populate_editable_sign_types

This proc populates GLOBAL_LIST_EMPTY(editable_sign_types)

+

The first time a pen is used on any sign, this populates GLOBAL_LIST_EMPTY(editable_sign_types), creating a global list of all the signs that you can set a sign backing to with a pen.

populate_interaction_instances

Global loading procs

power_fail

Disable power in the station APCs

power_failure

Causes a power failure across the station.

+

All SMESs and APCs will be fully drained, and all areas will power down.

+

The drain is permanent (that is, it won't automatically come back after some time like the grid check event), +but the crew themselves can return power via the engine, solars, or other means of creating power.

power_restore

Restores power to all rooms on the station.

+

Magically fills ALL APCs and SMESs to capacity, and restores power to depowered areas.

power_restore_quick

A quicker version of /proc/power_restore that only handles recharging SMESs.

+

This will also repower an entire station - it is not instantaneous like power restore, +but it is faster performance-wise as it only handles SMES units.

+

Great as a less magical / more IC way to return power to a sapped station.

power_to_energy

Converts the watt to the joule, assuming SSmachines tick rate.

+
    +
  • +

    Arguments

    +
  • +
  • +

    joules - the value in joules to convert

    +
  • +
  • +

    datum/controller/subsystem/scheduler - the subsystem whos wait time is used in the conversion

    +
  • +

prepare_explosion_turfs

Returns a list of turfs in X range from the epicenter +Returns in a unique order, spiraling outwards +This is done to ensure our progressive cache of blast resistance is always valid +This is quite fast

prepare_infuser_entries

Global proc that sets up each /datum/infuser_entry sub-type as singleton instances in a list, and returns it.

prepare_lua_editor_list

Intermediate step for preparing lists to be passed into the lua editor tgui. +Resolves weakrefs, converts some values without a standard textual representation to text, +and can handle self-referential lists and potential duplicate output keys.

pretty_string_from_reagent_list

Input a reagent_list, outputs pretty readable text! +Default output will be formatted as

+
    +
  • +

    water, 5 | silicon, 6 | soup, 4 | space lube, 8

    +
  • +
  • +

    names_only will remove the amount displays, showing

    +
  • +
  • +

    water | silicon | soup | space lube

    +
  • +
  • +

    join_text will alter the text between reagents

    +
  • +
  • +

    setting to ", " will result in

    +
  • +
  • +

    water, 5, silicon, 6, soup, 4, space lube, 8

    +
  • +
  • +

    final_and should be combined with the above. will format as

    +
  • +
  • +

    water, 5, silicon, 6, soup, 4, and space lube, 8

    +
  • +
  • +

    capitalize_names will result in

    +
  • +
  • +

    Water, 5 | Silicon, 6 | Soup, 4 | Space lube, 8

    +
  • +
  • +
      +
    • use (reagents.reagent_list, names_only, join_text = ", ", final_and, capitalize_names) for the formatting
    • +
    +
  • +
  • +
      +
    • Water, Silicon, Soup, and Space Lube
    • +
    +
  • +

previous_list_item

Returns the previous item in a list

print_holiday

Does the same as /proc/poll_holiday, but prints the output to admins instead of returning it

print_language_list

Helper proc to print a list of languages in a human readable format

priority_announce

Make a big red text announcement to

+

Formatted like:

+

" Message from sender "

+

" Title "

+

" Text "

+

Arguments

+
    +
  • text - required, the text to announce
  • +
  • title - optional, the title of the announcement.
  • +
  • sound - optional, the sound played accompanying the announcement
  • +
  • type - optional, the type of the announcement, for some "preset" announcement templates. See __DEFINES/announcements.dm
  • +
  • sender_override - optional, modifies the sender of the announcement
  • +
  • has_important_message - is this message critical to the game (and should not be overridden by station traits), or not
  • +
  • players - a list of all players to send the message to. defaults to all players (not including new players)
  • +
  • encode_title - if TRUE, the title will be HTML encoded
  • +
  • encode_text - if TRUE, the text will be HTML encoded
  • +

process_chat_color

Converts a given color to comply within a smaller subset of colors to be used in runechat. +If a color is outside the min/max saturation or lum, it will be set at the nearest +value that passes validation.

+

Arguments:

+
    +
  • color - The color to process
  • +
  • sat_shift - A value between 0 and 1 that will be multiplied against the saturation
  • +
  • lum_shift - A value between 0 and 1 that will be multiplied against the luminescence
  • +

process_teleport_locs

Generate a list of turfs you can teleport to from the areas list

+

Includes areas if they're not a shuttle or not not teleport or have no contents

+

The chosen turf is the first item in the areas contents that is a station level

+

The returned list of turfs is sorted by name

propagate_network

remove the old powernet and replace it with a new one throughout the network.

qdel

Should be treated as a replacement for the 'del' keyword.

+

Datums passed to this will be given a chance to clean up references to allow the GC to collect them.

radiation_pulse

Sends out a pulse of radiation, eminating from the source. +Radiation is performed by collecting all radiatables within the max range (0 means source only, 1 means adjacent, etc), +then makes their way towards them. A number, starting at 1, is multiplied +by the insulation amounts of whatever is in the way (for example, walls lowering it down). +If this number hits equal or below the threshold, then the target can no longer be irradiated. +If the number is above the threshold, then the chance is the chance that the target will be irradiated. +As a consumer, this means that max_range going up usually means you want to lower the threshold too, +as well as the other way around. +If max_range is high, but threshold is too high, then it usually won't reach the source at the max range in time. +If max_range is low, but threshold is too low, then it basically guarantees everyone nearby, even if there's walls +and such in the way, can be irradiated. +You can also pass in a minimum exposure time. If this is set, then this radiation pulse +will not irradiate the source unless they have been around any radioactive source for that +period of time. +The chance to get irradiated diminishes over range, and from objects that block radiation. +Assuming there is nothing in the way, the chance will determine what the chance is to get irradiated from half of max_range. +Example: If chance is equal to 30%, and max_range is equal to 8, +then the chance for a thing to get irradiated is 30% if they are 4 turfs away from the pulse source.

ran_zone

Return the zone or randomly, another valid zone

+

probability controls the chance it chooses the passed in zone, or another random zone +defaults to 80

random_bounty

    +
  • +

    Returns a new bounty of random type, but does not add it to GLOB.bounties_list.

    +
  • +
  • +

    *Guided determines what specific catagory of bounty should be chosen.

    +
  • +

random_colour

Returns a random color picked from a list, has 2 modes (0 and 1), mode 1 doesn't pick white, black or gray

random_fish_type

Returns random fish, using random_case_rarity probabilities.

random_nukecode

Returns a string for a random nuke code

random_step

Forces the atom to take a step in a random direction

randomize_human_normie

Randomizes a human, but produces someone who looks exceedingly average (by most standards).

+

(IE, no wacky hair styles / colors)

ranks_from_rank_name

Converts a rank name (such as "Coder+Moth") into a list of /datum/admin_rank

ratvar2text

Reverts ravarian styling and rot13 in text.

rcd_result_with_memory

Produces a new RCD result from the given one if it can be calculated that +the RCD should speed up with the remembered form.

rcd_scan

Global proc that generates RCD hologram in a range.

+

Arguments:

+
    +
  • source - The atom the scans originate from
  • +
  • scan_range - The range of turfs we grab from the source
  • +
  • fade_time - The time for RCD holograms to fade
  • +

read_sheet

Debug proc, for when lighting sheets fuck up +Accepts the sheet (2 or 3 (multiz) dimensional list of lighting values at some offset) +alongside x and y delta values and the sheet's "offset", which is the amount required to ensure everything indexes at 1 +Optionally, you can pass similar values for multiz stuff

realize_appearance_queue

Takes a list of appearnces, makes them mutable so they can be properly vv'd and inspected

reciprocal_add

Takes two values x and y, and returns 1/((1/x) + y) +Useful for providing an additive modifier to a value that is used as a divisor, such as /obj/projectile/var/speed

recover_all_SS_and_recreate_master

Recreate all SSs which will still cause data survive due to Recover(), the new Master will then find and take them from global.vars

recursive_list_resolve

Returns a list with all weakrefs resolved

recursive_list_resolve_element

Helper for recursive_list_resolve()

recursive_loc_check

Recursively checks if an item is inside a given type/atom, even through layers of storage. Returns the atom if it finds it.

reebe_station_warning

Tells the station that there's a clockie portal, along with making it usable by all

reject_bad_chattext

The procedure to check the text of the entered text on ntnrc_client.dm

+

This procedure is designed to check the text you type into the chat client. +It checks for invalid characters and the size of the entered text.

reject_bad_name

Filters out undesirable characters from names.

+
    +
  • strict - return null immediately instead of filtering out
  • +
  • allow_numbers - allows numbers and common special characters - used for silicon/other weird things names
  • +
  • cap_after_symbols - words like Bob's will be capitalized to Bob'S by default. False is good for titles.
  • +

reject_bad_text

Returns the text if properly formatted, or null else.

+

Things considered improper:

+
    +
  • Larger than max_length.
  • +
  • Presence of non-ASCII characters if asci_only is set to TRUE.
  • +
  • Only whitespaces, tabs and/or line breaks in the text.
  • +
  • Presence of the <, >, \ and / characters.
  • +
  • Presence of ASCII special control characters (horizontal tab and new line not included).
  • +

relay_to_list_and_observers

Sends a message to everyone within the list, as well as all observers.

remove_clunky_diagonals

Processes a path (list of turfs), removes any diagonal moves that would lead to a weird bump

+

path - The path to process down +pass_info - Holds all the info about what this path attempt can go through +simulated_only - If we are not allowed to pass space turfs +avoid - A turf to be avoided

remove_diagonals

Processes a path (list of turfs), removes any diagonal moves

+

path - The path to process down +pass_info - Holds all the info about what this path attempt can go through +simulated_only - If we are not allowed to pass space turfs +avoid - A turf to be avoided

remove_erp_things

If the "Remove ERP Interaction" config is disabled, remove ERP things from various lists

remove_image_from_client

Removes an image from a client's .images. Useful as a callback.

remove_image_from_clients

Like remove_image_from_client, but will remove the image from a list of clients

remove_messenger

Unregisters an NTMessenger instance from the pda_messengers table.

remove_non_dm_variants

Given a list and a list of its variant hints, removes any list key/values that are represent lua values that could not be directly converted to DM.

remove_synth_defib_trauma

Global timer proc used in defib.dm. Removes the temporary trauma caused by being defibbed as a synth.

+

Args:

+
    +
  • obj/item/organ/internal/brain/synth_brain: The brain with the trauma on it. Non-nullable.
  • +
  • datum/brain_trauma/trauma: The trauma itself. Non-nullable.
  • +

remove_verb

handles removing verb and sending it to browser to update, use this for removing verbs

+

pass the verb type path to this instead of removing it from verbs so the statpanel can update +Arguments:

+
    +
  • target - Who the verb is being removed from, client or mob typepath
  • +
  • verb - typepath to a verb, or a list of verbs, supports lists of lists
  • +

rename_area

rename_area +Renames an area to the given new name, updating all machines' names and firedoors +to properly ensure alarms and machines are named correctly at all times. +Args:

+
    +
  • area_to_rename: The area that's being renamed.
  • +
  • new_name: The name we're changing said area to.
  • +

request_station_colors

Called by decals if they can be colored, to see if we got some cool colors for them. Only takes the first station trait

request_z_pillar

Returns a z pillar to insert turfs into

reset_cooldown

Proc used by stoppable timers to end a cooldown before the time has ran out.

+

Arguments:

+
    +
  • source - datum storing the cooldown
  • +
  • index - string index storing the cooldown on the cooldowns associative list
  • +
+

This sends a signal reporting the cooldown end, passing the time left as an argument.

reset_religion

It's time to kill GLOB +Reset religion to its default state so the new chaplain becomes high priest and can change the sect, armor, weapon type, etc +Also handles the selection of a holy successor from existing crew if multiple chaplains are on station.

reset_religious_sect

Removes any existing religious sect from chaplains, allowing another to be selected

resolve_ai_icon_sync

A form of resolve_ai_icon that is guaranteed to never sleep. +Not always accurate, but always synchronous.

retrieve_ban_cache

Gets the ban cache of the passed in client +If the cache has not been generated, we start off a query +If we still have a query going for this request, we just sleep until it's received back

return_atmos_handbooks

Returns an assoc list of the gas handbook and the reaction handbook. +For UIs, simply do data += return_atmos_handbooks() to use.

return_generator_args

returns the arguments given to a generator and manually extracts them from the internal byond object +returns:

+
    +
  • flat list of strings for args given to the generator.
  • +
  • Note: this means things like "list(1,2,3)" will need to be processed
  • +

return_unused_frequency

returns a random unused frequency between MIN_FREE_FREQ & MAX_FREE_FREQ if free = TRUE, and MIN_FREQ & MAX_FREQ if FALSE

reverse_angle

180s an angle

reverse_range

replaces reverseList ~Carnie

rgb2hsv

Converts an rgb color into a list storing hsva +Exists because it's useful to have a guaranteed alpha value

rustg_get_version

Gets the version of rust_g

rustg_unix_timestamp

Returns the timestamp as a string

safe_read_pref

Safely read a given preference datum from a given client.

+

Reads the given preference datum from the given client, and guards against null client and null prefs. +The client object is fickle and can go null at times, so use this instead of read_preference() if you +want to ensure no runtimes.

+

returns client.prefs.read_preference(prefs_to_read) or FALSE if something went wrong.

+

Arguments:

+
    +
  • client/prefs_holder - the client to read the pref from
  • +
  • datum/preference/pref_to_read - the type of preference datum to read.
  • +

sanitize

Runs byond's html encoding sanitization proc, after replacing new-lines and tabs for the # character.

sanitize_color

Makes sure the input color is text with a # at the start followed by 6 hexadecimal characters. Examples: "#ff1234", "#A38321", COLOR_GREEN_GRAY

sanitize_css_class_name

Removes all non-alphanumerics from the text, keep in mind this can lead to id conflicts

sanitize_filepath

Sanitizes the name of each node in the path.

+

Im case you are wondering when to use this proc and when to use SANITIZE_FILENAME,

+

You use SANITIZE_FILENAME to sanitize the name of a file [e.g. example.txt]

+

You use sanitize_filepath sanitize the path of a file [e.g. root/node/example.txt]

+

If you use SANITIZE_FILENAME to sanitize a file path things will break.

sanitize_frequency

Ensure the frequency is within bounds of what it should be sending/receiving at

sanitize_name

returns nothing with an alert instead of the message if it contains something in the ic filter, and sanitizes normally if the name is fine. It returns nothing so it backs out of the input the same way as if you had entered nothing.

scramble_message_replace_chars

Slightly expensive proc to scramble a message using equal probabilities of character replacement from a list. DOES NOT SUPPORT HTML!

screen_loc_to_offset

Takes a screen loc string in the format +"+-left-offset:+-pixel,+-bottom-offset:+-pixel" +Where the :pixel is optional, and returns +A list in the format (x_offset, y_offset) +We require context to get info out of screen locs that contain relative info, so NORTH, SOUTH, etc

screen_loc_to_turf

Almost identical to the params_to_turf(), but unused (remove?)

screen_text

Return an object with a new maptext (not currently in use)

seedRuins

Loads the ruins for a given z level. +@param z_levels The z levels to load ruins on. +@param budget The budget to spend on ruins. Compare against the cost of the ruins in /datum/map_template/ruin. +@param whitelist A list of areas to allow ruins to be placed in. +@param potentialRuins A list of ruins to choose from. +@param clear_below Whether to clear the area below the ruin. Used for multiz ruins. +@param mineral_budget The budget to spend on ruins that spawn ore vents. Map templates with vents have that defined by mineral_cost. +@param mineral_budget_update What type of ore distribution should spawn from ruins picked by this cave generator? This list is copied from ores_spawned.dm into SSore_generation.ore_vent_minerals.

seedify

Finds and extracts seeds from an object

+

Checks if the object is such that creates a seed when extracted. Used by seed +extractors or posably anything that would create seeds in some way. The seeds +are dropped either at the extractor, if it exists, or where the original object +was and it qdel's the object

+

Arguments:

+
    +
  • O - Object containing the seed, can be the loc of the dumping of seeds
  • +
  • t_max - Amount of seed copies to dump, -1 is ranomized
  • +
  • extractor - Seed Extractor, used as the dumping loc for the seeds and seed multiplier
  • +
  • user - checks if we can remove the object from the inventory
  • +

select_hallucination_type

Helper to give the passed mob the ability to select a hallucination from the list of all hallucination subtypes.

semver_to_list

Converts a semver string into a list of numbers

send2adminchat

Asynchronously sends a message to TGS admin chat channels.

+

category - The category of the mssage. +message - The message to send.

send2chat

Asynchronously sends a message to TGS chat channels.

+

message - The /datum/tgs_message_content to send. +channel_tag - Required. If "", the message with be sent to all connected (Game-type for TGS3) channels. Otherwise, it will be sent to TGS4 channels with that tag (Delimited by ','s). +admin_only - Determines if this communication can only be sent to admin only channels.

send2otherserver

Sends a message to a set of cross-communications-enabled servers using world topic calls

+

Arguments:

+
    +
  • source - Who sent this message
  • +
  • msg - The message body
  • +
  • type - The type of message, becomes the topic command under the hood
  • +
  • target_servers - A collection of servers to send the message to, defined in config
  • +
  • additional_data - An (optional) associated list of extra parameters and data to send with this world topic call
  • +

send_clock_message

Send sent_message to all other clock cultists and ghosts from the user

send_exported_map

A procedure for saving DMM text to a file and then sending it to the user. +Arguments:

+
    +
  • user - a user which get map
  • +
  • name - name of file + .dmm
  • +
  • map - text with DMM format
  • +

send_fax_to_area

Sends a fax to a fax machine in an area! fax_area is a type, where all subtypes are also queried. If multiple machines, one is randomly picked +If force is TRUE, we send a droppod with a fax machine and fax the message to that fax machine

send_ooc_announcement

Sends a div formatted chat box announcement

+

Formatted like:

+

" Server Announcement " (or sender_override)

+

" Title "

+

" Text "

+

Arguments

+
    +
  • text - required, the text to announce
  • +
  • title - optional, the title of the announcement.
  • +
  • players - optional, a list of all players to send the message to. defaults to the entire world
  • +
  • play_sound - if TRUE, play a sound with the announcement (based on player option)
  • +
  • sound_override - optional, override the default announcement sound
  • +
  • sender_override - optional, modifies the sender of the announcement
  • +
  • encode_title - if TRUE, the title will be HTML encoded (escaped)
  • +
  • encode_text - if TRUE, the text will be HTML encoded (escaped)
  • +

send_supply_pod_to_area

Easily send a supplypod to an area

send_tip_of_the_round

Sends a round tip to a target. If selected_tip is null, a random tip will be sent instead (5% chance of it being silly). +Tips that starts with the @ character won't be html encoded. That's necessary for any tip containing markup tags, +just make sure they don't also have html characters like <, > and ' which will be garbled.

send_to_observers

Sends a message to all dead and observing players, if a source is provided a follow link will be attached.

send_to_playing_players

sends a whatever to all playing players; use instead of to_chat(world, where needed)

serialize_antag_name

Serializes an antag name to be used for preferences UI

set_area_machinery_title

Renames all machines in a defined area from the old title to the new title. +Used when renaming an area to ensure that all machiens are labeled the new area's machine. +Args:

+
    +
  • area_renaming: The area being renamed, which we'll check turfs from to rename machines in.
  • +
  • title: The new name of the area that we're swapping into.
  • +
  • oldtitle: The old name of the area that we're replacing text from.
  • +

set_dynamic_human_appearance

This proc gets an argument of a target and runs

set_job_exempt_state

Sets the job exempt state of a ckey to desired state

+

Arguments:

+
    +
  • ckey - The ckey to set the state for
  • +
  • job_title - The job.title of the state
  • +
  • state - New TRUE or FALSE state to set it to
  • +

set_network_broadcast_status

Sets the camera network status on all entertainment monitors. +A way to force a network to a status if you are unsure of the current state.

+
    +
  • camera_net - The camera network ID to set on the monitors.
  • +
  • is_show_active - Whether the show is active or not.
  • +
  • announcement - Optional, what announcement to make. +Note this announcement will be made regardless of the current state of the show: +This means if it's currently on and you set it to on, the announcement will still be made. +Likewise, there's no way to differentiate off -> on and on -> off, unless you handle that yourself.
  • +

set_new_religious_sect

Sets a new religious sect used by all chaplains int he round

setupExports

Called when the global exports_list is empty, and sets it up.

setup_clockwork_research

Returns a list of every initialized clockwork research datum

setup_mod_themes

Global proc that sets up all MOD themes as singletons in a list and returns it.

setup_round_default_laws

first called when something wants round default laws for the first time in a round, considers config +returns a law datum that GLOB._round_default_lawset will be set to.

shake_camera

Shake the camera of the person viewing the mob SO REAL! +Takes the mob to shake, the time span to shake for, and the amount of tiles we're allowed to shake by in tiles +Duration isn't taken as a strict limit, since we don't trust our coders to not make things feel shitty. So it's more like a soft cap.

sheet2amount

Turns number of sheets into material amount, returning FALSE if the number is <= 0

+

Arguments:

+
    +
  • amt: amount to convert
  • +

should_have_space_before_emote

Returns a boolean based on whether or not the string contains a comma or an apostrophe, +to be used for emotes to decide whether or not to have a space between the name of the user +and the emote.

+

Requires the message to be HTML decoded beforehand. Not doing it here for performance reasons.

+

Returns TRUE if there should be a space, FALSE if there shouldn't.

show_job_exempt_menu

Displays the job exempt menu UI to target admin user

+

Arguments:

+
    +
  • user - The administrator mob to display the UI to
  • +
  • target_ckey - The ckey to inspect and possibly modify the job exemption statuses
  • +

shuffle

Randomize: Return the list in a random order

shuffle_inplace

same as shuffle, but returns nothing and acts on list in place

siunit

Formats a number to human readable form with the appropriate SI unit.

+

Supports SI exponents between 1e-15 to 1e15, but properly handles numbers outside that range as well. +Examples:

+
    +
  • +

    siunit(1234, "Pa", 1) -> "1.2 kPa"

    +
  • +
  • +

    siunit(0.5345, "A", 0) -> "535 mA"

    +
  • +
  • +

    siunit(1000, "Pa", 4) -> "1 kPa" +Arguments:

    +
  • +
  • +

    value - The number to convert to text. Can be positive or negative.

    +
  • +
  • +

    unit - The base unit of the number, such as "Pa" or "W".

    +
  • +
  • +

    maxdecimals - Maximum amount of decimals to display for the final number. Defaults to 1.

    +
  • +
  • +

    For pressure conversion, use proc/siunit_pressure() below

    +
  • +

siunit_isolated

Formats a number into a list representing the si unit. +Access the coefficient with [SI_COEFFICIENT], and access the unit with [SI_UNIT].

+

Supports SI exponents between 1e-15 to 1e15, but properly handles numbers outside that range as well. +Arguments:

+
    +
  • value - The number to convert to text. Can be positive or negative.
  • +
  • unit - The base unit of the number, such as "Pa" or "W".
  • +
  • maxdecimals - Maximum amount of decimals to display for the final number. Defaults to 1. +Returns: [SI_COEFFICIENT = si unit coefficient, SI_UNIT = prefixed si unit.]
  • +

siunit_pressure

    +
  • The game code never uses Pa, but kPa, since 1 Pa is too small to reasonably handle
  • +
  • Thus, to ensure correct conversion from any kPa in game code, this value needs to be multiplied by 10e3 to get Pa, which the siunit() proc expects
  • +
  • Args:
  • +
  • +
      +
    • value_in_kpa - Value that should be converted to readable text in kPa
    • +
    +
  • +
  • +
      +
    • maxdecimals - maximum number of decimals that are displayed, defaults to 1 in proc/siunit()
    • +
    +
  • +

slice_off_turfs

Returns a slice of a list of turfs, defined by the ones that are inside the inner/outer angle's bounds

sm_gas_data

Return a list info of the SM gases. +Can only run after init_sm_gas

sortInsert

Insertion Sort

+

Simple sorting algorithm that builds the final sorted list one item at a time.

+

@see

+
    +
  • https://en.wikipedia.org/wiki/Insertion_sort
  • +

sortMerge

Merge Sort

+

Divide and conquer sorting algorithm.

+

@see

+
    +
  • https://en.wikipedia.org/wiki/Merge_sort
  • +

sortTim

Tim Sort

+

Hybrid sorting algorithm derived from merge sort and insertion sort.

+

Sorts in place. +You might not need to get the return value.

+

@see +https://en.wikipedia.org/wiki/Timsort

+

@param {list} to_sort - The list to sort.

+

@param {proc} cmp - The comparison proc to use. Default: Numeric ascending.

+

@param {boolean} associative - Whether the list is associative. Default: FALSE.

+

@param {int} fromIndex - The index to start sorting from. Default: 1.

+

@param {int} toIndex - The index to stop sorting at. Default: 0.

sort_key

for sorting clients or mobs by ckey

sort_list

sort any value in a list

sort_mobs

Orders mobs by type then by name. Accepts optional arg to sort a custom list, otherwise copies GLOB.mob_list.

sort_names

uses sort_list() but uses the var's name specifically. This should probably be using mergeAtom() instead

sort_record

Specifically for record datums in a list.

spanning_screen_loc

Returns a screen_loc format for a tiling screen objects from start and end positions. Start should be bottom left corner, and end top right corner.

spawn_reebe

Spawn reebe with the appropriate fanfare after sacrificing a blood cultist

special_list_filter

Returns a list with items filtered from a list that can call callback

spiral_range

similar function to range(), but with no limitations on the distance; will search spiralling outwards from the center

spiral_range_turfs

similar function to RANGE_TURFS(), but will search spiralling outwards from the center (like the above, but only turfs)

split_color

Given a color in the format of "#RRGGBB" or "#RRGGBBAA", gives back a 4 entry list with the number values of each

split_materials_uniformly

divides a list of materials uniformly among all contents of the target_object recursively +Used to set materials of printed items with their design cost by taking into consideration their already existing materials +e.g. if 12 iron is to be divided uniformly among 2 objects A, B who's current iron contents are 3 & 7 +Then first we normalize those values i.e. find their weights to decide who gets an higher share of iron +total_sum = 3 + 7 = 10, A = 3/10 = 0.3, B = 7/10 = 0.7 +Then we finally multiply those weights with the user value of 12 we get +A = 0.3 * 12 = 3.6, B = 0.7 * 12 = 8.4 i.e. 3.6 + 8.4 = 12!! +Off course we round the values so we don't have to deal with floating point materials so the actual value +ends being less but that's not an issue +Arguments

+
    +
  • [custom_materials][list] - the list of materials to set for the object
  • +
  • multiplier - multiplier passed to set_custom_materials
  • +
  • target_object - the target object who's custom materials we are trying to modify
  • +

spread_reagents

Exposes all accessible atoms within some distance of an epicenter to some reagents. +Does not clear the source reagent holder; that must be done manually if it is desired.

+

Arguments:

+
    +
  • source: The reagents to spread around.
  • +
  • epicenter: The epicenter/source location of the reagent spread.
  • +
  • spread_range: The range in which to spread the reagents. Will not go over 20
  • +

stars

Convert random parts of a passed in message to stars

+
    +
  • phrase - the string to convert
  • +
  • probability - probability any character gets changed
  • +
+

This proc is dangerously laggy, avoid it or die

start_broadcasting_network

Adds a camera network to all entertainment monitors.

+
    +
  • camera_net - The camera network ID to add to the monitors.
  • +
  • announcement - Optional, what announcement to make when the show starts.
  • +

start_poll_cultists_for_leader

Start the poll for Cult Leaeder.

start_unequip_mob

A utility function for /datum/strippable_items to start unequipping an item from a mob.

started_narsie_summon

When narsie begins to be summoned, slowly dim the saturation of parallax and starlight

starts_with_any

Returns TRUE if the input_text starts with any of the beginnings

stifled

For when you're only able to speak a limited amount of words +phrase - the string to convert +definitive_limit - the amount of words to limit the phrase to, optional

stop_broadcasting_network

Removes a camera network from all entertainment monitors.

+
    +
  • camera_net - The camera network ID to remove from the monitors.
  • +
  • announcement - Optional, what announcement to make when the show ends.
  • +

stoplag

returns the number of ticks slept

string_list

Caches lists with non-numeric stringify-able values (text or typepath).

strip_html

Runs STRIP_HTML_SIMPLE and sanitize.

strip_html_full

Runs STRIP_HTML_FULL and sanitize.

stripped_input

Used to get a properly sanitized input. Returns null if cancel is pressed.

+

Arguments

+
    +
  • user - Target of the input prompt.
  • +
  • message - The text inside of the prompt.
  • +
  • title - The window title of the prompt.
  • +
  • max_length - If you intend to impose a length limit - default is 1024.
  • +
  • no_trim - Prevents the input from being trimmed if you intend to parse newlines or whitespace.
  • +

stripped_multiline_input

Used to get a properly sanitized input in a larger box. Works very similarly to stripped_input.

+

Arguments

+
    +
  • user - Target of the input prompt.
  • +
  • message - The text inside of the prompt.
  • +
  • title - The window title of the prompt.
  • +
  • max_length - If you intend to impose a length limit - default is 1024.
  • +
  • no_trim - Prevents the input from being trimmed if you intend to parse newlines or whitespace.
  • +

summon_events

Triggers Summon Events from [user]. +If Summon Events has already been triggered, speeds up the event timer.

summon_ghosts

Triggers Summon Ghosts from [user].

summon_guns

Triggers Summon Guns from [user]. +Can optionally be passed [survivor_probability], to set the chance of creating survivalists. +If Summon Guns has already been triggered, gives out guns to everyone again.

summon_magic

Triggers Summon Magic from [user]. +Can optionally be passed [survivor_probability], to set the chance of creating survivalists. +If Summon Magic has already been triggered, gives out magic to everyone again.

swap_range

Move elements from [from_index, from_index+len) to [to_index, to_index+len) +Move any elements being overwritten by the move to the now-empty elements, preserving order +Note: if the two ranges overlap, only the destination order will be preserved fully, since some elements will be within both ranges ~Carnie

techweb_item_unlock_check

Returns an associative list of techweb node datums with values of the nodes it unlocks.

test_whiteship_sizes

Helper proc that tests to ensure all whiteship templates can spawn at their docking port, and logs their sizes +This should be a unit test, but too much of our other code breaks during shuttle movement, so not yet, not yet.

text2ratvar

Takes english and applies ratvarian styling rules (and rot13) to it.

tgalert

DEPRECATED: USE tgui_alert(...) INSTEAD

+

Designed as a drop in replacement for alert(); functions the same. (outside of needing User specified) +Arguments:

+
    +
  • User - The user to show the alert to.
  • +
  • Message - The textual body of the alert.
  • +
  • Title - The title of the alert's window.
  • +
  • Button1 - The first button option.
  • +
  • Button2 - The second button option.
  • +
  • Button3 - The third button option.
  • +
  • StealFocus - Boolean operator controlling if the alert will steal the user's window focus.
  • +
  • Timeout - The timeout of the window, after which no responses will be valid.
  • +

tgm_encode

Takes a constant, encodes it into a TGM valid string

tgui_Topic

Middleware for /client/Topic.

+

return bool If TRUE, prevents propagation of the topic call.

tgui_alert

Creates a TGUI alert window and returns the user's response.

+

This proc should be used to create alerts that the caller will wait for a response from. +Arguments:

+
    +
  • user - The user to show the alert to.
  • +
  • message - The content of the alert, shown in the body of the TGUI window.
  • +
  • title - The of the alert modal, shown on the top of the TGUI window.
  • +
  • buttons - The options that can be chosen by the user, each string is assigned a button on the UI.
  • +
  • timeout - The timeout of the alert, after which the modal will close and qdel itself. Set to zero for no timeout.
  • +
  • autofocus - The bool that controls if this alert should grab window focus.
  • +

tgui_input_checkboxes

tgui_input_checkbox

+

Opens a window with a list of checkboxes and returns a list of selected choices.

+

user - The mob to display the window to +message - The message inside the window +title - The title of the window +list/items - The list of items to display +min_checked - The minimum number of checkboxes that must be checked (defaults to 1) +max_checked - The maximum number of checkboxes that can be checked (optional) +timeout - The timeout for the input (optional)

tgui_input_keycombo

Creates a TGUI window with a key input. Returns the user's response as a full key with modifiers, eg ShiftK.

+

This proc should be used to create windows for key entry that the caller will wait for a response from. +If tgui fancy chat is turned off: Will return a normal input.

+

Arguments:

+
    +
  • user - The user to show the number input to.
  • +
  • message - The content of the number input, shown in the body of the TGUI window.
  • +
  • title - The title of the number input modal, shown on the top of the TGUI window.
  • +
  • default - The default (or current) key, shown as a placeholder.
  • +

tgui_input_list

Creates a TGUI input list window and returns the user's response.

+

This proc should be used to create alerts that the caller will wait for a response from. +Arguments:

+
    +
  • user - The user to show the input box to.
  • +
  • message - The content of the input box, shown in the body of the TGUI window.
  • +
  • title - The title of the input box, shown on the top of the TGUI window.
  • +
  • items - The options that can be chosen by the user, each string is assigned a button on the UI.
  • +
  • default - If an option is already preselected on the UI. Current values, etc.
  • +
  • timeout - The timeout of the input box, after which the menu will close and qdel itself. Set to zero for no timeout.
  • +

tgui_input_number

Creates a TGUI window with a number input. Returns the user's response as num | null.

+

This proc should be used to create windows for number entry that the caller will wait for a response from. +If tgui fancy chat is turned off: Will return a normal input. If a max or min value is specified, will +validate the input inside the UI and ui_act.

+

Arguments:

+
    +
  • user - The user to show the number input to.
  • +
  • message - The content of the number input, shown in the body of the TGUI window.
  • +
  • title - The title of the number input modal, shown on the top of the TGUI window.
  • +
  • default - The default (or current) value, shown as a placeholder. Users can press refresh with this.
  • +
  • max_value - Specifies a maximum value. If none is set, any number can be entered. Pressing "max" defaults to 1000.
  • +
  • min_value - Specifies a minimum value. Often 0.
  • +
  • timeout - The timeout of the number input, after which the modal will close and qdel itself. Set to zero for no timeout.
  • +
  • round_value - whether the inputted number is rounded down into an integer.
  • +

tgui_input_text

Creates a TGUI window with a text input. Returns the user's response.

+

This proc should be used to create windows for text entry that the caller will wait for a response from. +If tgui fancy chat is turned off: Will return a normal input. If max_length is specified, will return +stripped_multiline_input.

+

Arguments:

+
    +
  • user - The user to show the text input to.
  • +
  • message - The content of the text input, shown in the body of the TGUI window.
  • +
  • title - The title of the text input modal, shown on the top of the TGUI window.
  • +
  • default - The default (or current) value, shown as a placeholder.
  • +
  • max_length - Specifies a max length for input. MAX_MESSAGE_LEN is default (1024)
  • +
  • multiline - Bool that determines if the input box is much larger. Good for large messages, laws, etc.
  • +
  • encode - Toggling this determines if input is filtered via html_encode. Setting this to FALSE gives raw input.
  • +
  • timeout - The timeout of the textbox, after which the modal will close and qdel itself. Set to zero for no timeout.
  • +

time_to_twelve_hour

Converts a time expressed in deciseconds (like world.time) to the 12-hour time format. +the format arg is the format passed down to time2text() (e.g. "hh:mm" is hours and minutes but not seconds). +the timezone is the time value offset from the local time. It's to be applied outside time2text() to get the AM/PM right.

timeleft

Get the remaining deciseconds on a timer

+

Arguments:

+
    +
  • id a timerid or a /datum/timedevent
  • +

to_chat

Sends the message to the recipient (target).

+

Recommended way to write to_chat calls:

+
to_chat(client,
+    type = MESSAGE_TYPE_INFO,
+    html = "You have found <strong>[object]</strong>")
+

to_chat_immediate

Circumvents the message queue and sends the message +to the recipient (target) as soon as possible.

toggle_id_ctf

Proc that handles toggling and unloading CTF.

tool_behaviour_name

returns an ic name of the tool needed +Arguments:

+
    +
  • tool_behaviour: the tool described!
  • +

truncate

Truncate a string to the given length

+

Will only truncate if the string is larger than the length and ignores unicode concerns

+

This exists soley because trim does other stuff too.

+

Arguments:

+
    +
  • text - String
  • +
  • max_length - integer length to truncate at
  • +

try_move_adjacent

Tries to move an atom to an adjacent turf, return TRUE if successful

turf_peel

Behaves like the orange() proc, but only looks in the outer range of the function (The "peel" of the orange). +This is useful for things like checking if a mob is in a certain range, but not within a smaller range.

+

@params outer_range - The outer range of the cicle to pull from. +@params inner_range - The inner range of the circle to NOT pull from. +@params center - The center of the circle to pull from, can be an atom (we'll apply get_turf() to it within circle_x_turfs procs.) +@params view_based - If TRUE, we'll use circle_view_turfs instead of circle_range_turfs procs.

typecache_filter_list

returns a new list with only atoms that are in the typecache list

typecache_filter_list_reverse

return a new list with atoms that are not in the typecache list

typecache_filter_multi_list_exclusion

similar to typecache_filter_list and typecache_filter_list_reverse but it supports an inclusion list and and exclusion list

typecacheof

Like typesof() or subtypesof(), but returns a typecache instead of a list.

+

Arguments:

+
    +
  • path: A typepath or list of typepaths.
  • +
  • only_root_path: Whether the typecache should be specifically of the passed types.
  • +
  • ignore_root_path: Whether to ignore the root path when caching subtypes.
  • +

ui_status_only_living

Returns a UI status such that the dead will be able to watch, but not interact.

ui_status_silicon_has_access

Returns a UI status such that silicons will be able to interact with whatever +they would have access to if this was a machine. For example, AIs can +interact if there's cameras with wireless control is enabled.

ui_status_user_has_free_hands

Returns a UI status such that those without blocked hands will be able to interact, +but everyone else can only watch.

ui_status_user_is_abled

Returns a UI status such that users with debilitating conditions, such as +being dead or not having power for silicons, will not be able to interact. +Being dead will disable UI, being incapacitated will continue updating it, +and anything else will make it interactive.

ui_status_user_is_adjacent

Returns a UI status such that users adjacent to source will be able to interact, +far away users will be able to see, and anyone farther won't see anything. +Dead users will receive updates no matter what, though you likely want to add +a [ui_status_only_living] check for finer observer interactions.

ui_status_user_is_advanced_tool_user

Returns a UI status such that advanced tool users will be able to interact, +but everyone else can only watch.

ui_status_user_is_conscious_and_lying_down

Returns UI_INTERACTIVE if the user is conscious and lying down. +Returns UI_UPDATE otherwise.

ui_status_user_strictly_adjacent

Return UI_INTERACTIVE if the user is strictly adjacent to the target atom, whether they can see it or not. +Return UI_CLOSE otherwise.

unformat_frequency

Opposite of format, returns as a number

unique_list

Return a list with no duplicate entries

unique_list_in_place

same as unique_list, but returns nothing and acts on list in place (also handles associated values properly)

unvalidated_client_error

Proc that just logs whenever an uninitialized client tries to do something before they have fully gone through New(). +Intended to be used in conjunction with the VALIDATE_CLIENT_INITIALIZATION() macro, but can be dropped anywhere when we look at the fully_created var on /client.

update_all_security_huds

Updates the visual security huds on all mobs in GLOB.human_list

update_matching_security_huds

Updates the visual security huds on all mobs in GLOB.human_list that match the name passed to it.

updatetimedelay

Update the delay on an existing LOOPING timer +Will come into effect on the next process

+

Arguments:

+
    +
  • id a timerid or a /datum/timedevent
  • +
  • new_wait the new wait to give this looping timer
  • +

urange

ultra range (no limitations on distance, faster than range for distances > 8); including areas drastically decreases performance

url2htmlloader

Return html to load a url. +for use inside of browse() calls to html assets that might be loaded on a cdn.

valid_build_direction

Checks whether the target turf is in a valid state to accept a directional construction +such as windows or railings.

+

Returns FALSE if the target turf cannot accept a directional construction. +Returns TRUE otherwise.

+

Arguments:

+
    +
  • dest_turf - The destination turf to check for existing directional constructions
  • +
  • test_dir - The prospective dir of some atom you'd like to put on this turf.
  • +
  • is_fulltile - Whether the thing you're attempting to move to this turf takes up the entire tile or whether it supports multiple movable atoms on its tile.
  • +

validate_suppression_status

Check if the delam suppression setup is valid on the map

view_to_pixels

Takes a string or num view, and converts it to pixel width/height in a list(pixel_width, pixel_height)

visible_hallucination_pulse

Emits a hallucinating pulse around the passed atom. +Affects everyone in the passed radius who can view the center, +except for those with TRAIT_MADNESS_IMMUNE, or those who are blind.

+

center - required, the center of the pulse +radius - the radius around that the pulse reaches +hallucination_duration - how much hallucination is added by the pulse. reduced based on distance to the center. +hallucination_max_duration - a cap on how much hallucination can be added +optional_messages - optional list of messages passed. Those affected by pulses will be given one of the messages in said list.

weakrefify_list

Returns a copy of the list where any element that is a datum is converted into a weakref

wear_taur_version

Proc that handles returning a mutable appearance that can fit on a taur body without looking too janky!

+

It will check the cache to see if there was already an icon created for the taur version of that item, +and will generate one if there was none, and will return the proper icon straight from GLOB.taur_clothing_icons, +to avoid expensive icon operations.

+

Arguments:

+
    +
  • icon_state - The icon state that was used to create the icon that will now be processed. +Used to store the taur icon in the cache.
  • +
  • icon_to_process (/icon) - The icon that we want to process. Do note that this is already +an icon, and NOT an icon file, because we want to be able to operate on icons that have been +modified to fit female bodytypes, for instance.
  • +
  • layer - The layer we want the mutable appearance to be on.
  • +
  • female_type - The female_flags of the clothing item used to generate the icon that +we're operating on, if appropriate, to allow the caching of female-fitted uniforms.
  • +
  • greyscale_colors - The colors of the icon if it was a greyscale one, to make this GAGS-compatible.
  • +
+

Returns a taur-compatible mutable_appearance!

web_sound

Takes an input from either proc/play_web_sound or the request manager and runs it through yt-dlp and prompts the user before playing it to the server.

weekday_to_iso

Returns a string day as an integer in ISO format 1 (Monday) - 7 (Sunday)

weight_class_to_text

Returns a string based on the weight class define used as argument

window_flash

Flash the window of a player

woundscan

Displays wounds with extended information on their status vs medscanners

write_map

Procedure for converting a coordinate-selected part of the map into text for the .dmi format

zebra_typecacheof

Like typesof() or subtypesof(), but returns a typecache instead of a list. +This time it also uses the associated values given by the input list for the values of the subtypes.

+

Latter values from the input list override earlier values. +Thus subtypes should come after parent types in the input list. +Notice that this is the opposite priority of /proc/is_type_in_list and /proc/is_path_in_list.

+

Arguments:

+
    +
  • path: A typepath or list of typepaths with associated values.
  • +
  • single_value: The assoc value used if only a single path is passed as the first variable.
  • +
  • only_root_path: Whether the typecache should be specifically of the passed types.
  • +
  • ignore_root_path: Whether to ignore the root path when caching subtypes.
  • +
  • clear_nulls: Whether to remove keys with null assoc values from the typecache after generating it.
  • +
\ No newline at end of file diff --git a/image.html b/image.html new file mode 100644 index 0000000000000..0a10588bcc500 --- /dev/null +++ b/image.html @@ -0,0 +1,5 @@ +/image - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

image

Vars

realized_overlaysList of overlay "keys" (info about the appearance) -> mutable versions of static appearances +Drawn from the overlays list
realized_underlaysList of underlay "keys" (info about the appearance) -> mutable versions of static appearances +Drawn from the underlays list

Procs

debug_variable_valueMakes nice short vv names for images
dump_harddel_infoimages are pretty generic, this should help a bit with tracking harddels related to them
get_vv_link_refReturns the ref string to use when displaying this image in the vv menu of something else
realize_overlaysTakes the image's existing overlays, and makes them mutable so they can be properly vv'd in the realized_overlays list
vv_get_headerShows a header name on top when you investigate an appearance/image

Var Details

realized_overlays

List of overlay "keys" (info about the appearance) -> mutable versions of static appearances +Drawn from the overlays list

realized_underlays

List of underlay "keys" (info about the appearance) -> mutable versions of static appearances +Drawn from the underlays list

Proc Details

debug_variable_value

Makes nice short vv names for images

dump_harddel_info

images are pretty generic, this should help a bit with tracking harddels related to them

Returns the ref string to use when displaying this image in the vv menu of something else

realize_overlays

Takes the image's existing overlays, and makes them mutable so they can be properly vv'd in the realized_overlays list

vv_get_header

Shows a header name on top when you investigate an appearance/image

\ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000000000..be49ebd321067 --- /dev/null +++ b/index.html @@ -0,0 +1,1021 @@ +Index - /tg/ Station 13 + +
/tg/ Station 13 - Modules - Types

/tg/ Station 13

Modules

Types

  • (global)
  • area - A grouping of tiles into a logical space, mostly used by map editors
    • centcom/voidwalker_void - Voidwalker void where the people go
    • golem - A blank area subtype solely used by the golem area editor for the purpose of +allowing golems to create new areas without suffering from the hazard_area debuffs.
    • icemoon - Ice Moon Areas
      • surface/outdoors/nospawn - this is the area you use for stuff to not spawn, but if you still want weather.
    • lavaland - Lavaland Areas
      • surface/outdoors
        • unexplored/danger/no_ruins - Same thing as parent, but uses a different map generator for the icemoon ruin that needs it.
        • virtual_domain - Custom subtypes
    • mine - Mine areas
    • misc
      • cordon - Area used in conjunction with the cordon turf to create a fully functioning world border.
      • survivalpod - Survival Pod
    • ruin/space/has_grav
      • atmosasteroid - The Atmos Asteroid Ruin, has a subtype for rapid identification since this has some unique atmospherics properties and we can easily detect it if something goes wonky.
      • cybersun - Cybersun, Forgotten Ship
      • powered/skyrat/smugglies - Generic Skyrat Ruins
      • skyrat/interdynefob - Interdyne, Forward Operating Base
      • syndicate_forgotten_ship - forgottenship areas
    • shuttle
      • abandoned - White Ship
      • hunter - Bounty Hunter Shuttles
      • pirate - Pirate Shuttle
      • ruin/caravan - Special shuttles made for the Caravan Ambush ruin.
      • syndicate - Multi-area shuttles +Syndicate infiltrator
      • transit - Single-area shuttles
    • space
    • station
      • ai_monitored
        • command/storage/eva - Set the areas that will receive expanded access for the engineers on an orange alert +Maintenance, bridge, departmental lobbies and inner rooms. No access to security. +Sensitive areas like the vault, command quarters, heads' offices, etc. are not applicable.
        • turret_protected
      • cargo/bitrunning - Station side
      • maintenance
    • template_noop - Template noop (no operation) is used to skip a turf or area when the template is loaded this allows for template transparency +ex. if a ship has gaps in its design, you would use template_noop to fill these in so that when the ship moves z-level, any +tiles these gaps land on will not be deleted and replaced with the ships (empty) tiles
    • virtual_domain - VDOM
      • protected_space - Areas that virtual entities should not be in
      • safehouse - Safehouse
  • atom - The base type for nearly all physical objects in SS13
    • movable
      • flick_visual - Helper atom that copies an appearance and exists for a period
      • immerse_overlay - The not-quite-perfect movable used by the immerse element for its nefarious deeds.
      • plane_master_controller - Atom that manages and controls multiple planes. It's an atom so we can hook into add_filter etc. Multiple controllers can control one plane. +Of note: plane master controllers are currently not very extensively used, because render plates fill a semi similar niche +This could well change someday, and I'd like to keep this stuff around, so we use it for a few cases just out of convenience
        • colorblind - Exists for convienience when referencing all game render plates
        • game - Exists for convienience when referencing all game render plates
        • non_master - Exists for convienience when referencing all non-master render plates. +This is the whole game and the UI, but not the escape menu.
      • render_plane_relay - Render relay object assigned to a plane master to be able to relay its render onto other planes that are not its own
      • render_step - Internal atom that uses render relays to apply "appearance things" to a render source +Branch, subtypes have behavior
        • color - Render step that modfies an atom's color +Useful for creating coherent emissive blockers out of things like glass floors by lowering alpha statically using matrixes +Other stuff too I'm sure
        • emissive - Render step that makes the passed in render source GLOW
        • emissive_blocker - Render step that makes the passed in render source block emissives
      • screen
        • action_landing - Exists so you have a place to put your buttons when you move them around
        • admin_popup - The UI element for admin popups
        • alert
          • give
          • modlink_call
          • notify_action
          • poll_alert
          • status_effect - Alert base type for status effect alerts
            • agent_pinpointer/Ghoul Pinpointer - Pinpointer that points to their Master's location at all times. +Unlike the Monster hunter one, this one is permanently active, and has no power needed to activate it.
            • drunk - Status effect for being fully drunk (not tipsy).
            • Status effect - This is the status effect given to Bloodsuckers in a Frenzy +This deals with everything entering/exiting Frenzy is meant to deal with.
            • golem_status
            • high - The status effect for "drugginess"
            • slimed
            • teleport_flux - Alert for the Teleport Flux status effect
            • terrified - The status effect popup for the terror status effect
            • unholy_determination - Screen alert for the below status effect.
            • wound - WOUNDS
          • succumb - Gives the player the option to succumb while in critical condition
        • ammo_counter
        • background - A generic background object. +It is also implicitly used to allocate a rectangle on the map, which will +be used for auto-scaling the map.
        • button_palette
        • cinematic - The cinematic screen showed to everyone
        • combattoggle/flashy
        • escape_menu/home_button_text
        • fishing_hud - The screen object which bait, fish, and completion bar are visually attached to.
        • fullscreen
          • carrier
          • cursor_catcher - An effect which tracks the cursor's location on the screen
            • lock_on - Tracks cursor movement and passes clicks through to the turf under the cursor
            • scope
        • hud_bait
        • hunger
        • inventory
        • mafia_popup - The popup used for sending important messages to players.
        • map_view
        • movable
        • palette_scroll
        • parallax_layer/random - Parallax layers that vary between rounds. Has some code to make sure we all have the same one
          • asteroids - Big asteroid rocks appear in the background
          • space_gas - Gassy background with a few random colors
            • radioactive - Space gas but green for the radioactive nebula station trait
        • plane_master
          • default - Plane master that byond will by default draw to +Shouldn't be used, exists to prevent people using plane 0 +NOTE: If we used SEE_BLACKNESS on a map format that wasn't SIDE_MAP, this is where its darkness would land +This would allow us to control it and do fun things. But we can't because side map doesn't support it, so this is just a stub
          • emissive - Handles emissive overlays and emissive blockers.
          • floor - Contains just the floor
          • o_light_visual - This will not work through multiz, because of a byond bug with BLEND_MULTIPLY +Bug report is up, waiting on a fix
          • parallax - Contains space parallax
          • rendering_plate
            • game_plate - renders general in charachter game objects
            • game_world - Contains most things in the game world
            • lighting - Contains all lighting objects
            • masked_game_plate - renders the parts of the plate masked by fov
            • master - this plate renders the final screen to show to the player
            • non_game - render plate for OOC stuff like ghosts, hud-screen effects, etc
            • unmasked_game_plate - renders the parts of the plate unmasked by fov
          • turf_lighting - Contains all turf lighting
        • secret_appearance_holder - This is a tricky little thing to guarantee that \ref[prey.appearance] works in the vore panel +Basically, we force the pred to load the prey's appearance by putting the prey in this screen object's vis_contents
        • text - UI obj holders for all your maptext needs
          • screen_timer - A screen object that shows the time left on a timer
        • wanted
      • visual/cryo_occupant - This is a visual helper that shows the occupant inside the cryo cell.
  • client - Client datum
  • datum - The absolute base class for everything
    • abductor_gear
    • achievement_data - Datum that handles
    • achievement_report - A datum containing the info necessary for an achievement readout, reported and added to the global list in /datum/award/achievement/on_unlock(mob/user)
    • Action system - A simple base for an modular behavior attached to atom or datum.
    • action_group
    • actionspeed_modifier
      • status_effect/midas_blight - Get slower the more gold is in your system.
    • addiction - base class for addiction, handles when you become addicted and what the effects of that are. By default you become addicted when you hit a certain threshold, and stop being addicted once you go below another one.
      • alcohol - Alcohol
      • medicine - Makes you a hypochondriac - I'd like to call it hypochondria, but "I could use some hypochondria" doesn't work
      • opioids - Opioids
      • stimulants - Stimulants
    • admin_book_viewer - Weaps around a book's sql data, feeds it into a ui that allows us to at base view the contents of the book
    • Adminhelp Ticket
    • Adminhelp Ticket Manager
    • admin_message - Represents a message stored in the db
    • admin_pda_panel - Panel
    • admin_verb - This is the admin verb datum. It is used to store the verb's information and handle the verb's functionality. +All of this is setup for you, and you should not be defining this manually. +That means you reader.
      • admin_change_title_screen - Enables an admin to upload a new titlescreen image.
      • change_title_screen_html - An admin debug command that enables you to change the HTML on the go.
      • change_title_screen_notice - Sets a titlescreen notice, a big red text on the main screen.
      • create_command_report - Verb to open the create command report window and send command reports.
      • intensity_credits_panel - Allows an admin to open the panel
      • spawn_atom - ADMIN HELPER PROCS
      • test_area_spawner - Show overlay over area of priorities. Wall priority over open priority.
      • toggle_delam_suppression - Lets admins disable/enable the delam suppression system
      • try_stop_delam - Lets an admin activate the delam suppression system
    • admins
    • adventure - text adventure instance, holds data about nodes/choices/etc and of current play state.
    • adventure_browser - Admin adventure manager
    • adventure_db_entry
    • adventure_loot_generator - Adventure loot category identified by ID
      • cargo - Unlocks special cargo crates
      • maintenance - Uses manintenance loot generators
      • pet - Pets and pet accesories in carriers
      • simple - Just picks and instatiates the path from the list
        • cash - Valuables
        • drugs - Drugs
        • materials - Rare minerals/materials
        • syndicate_fish - Rare fish! Of the syndicate variety
        • unique - Unique exploration-only rewards - this is contextless
        • weapons - Assorted weaponry
    • adventure_node
    • ai_behavior - Abstract class for an action an AI can take, can range from movement to grabbing a nearby weapon.
      • attack - This behavior involves attacking a target.
      • attack_obstructions - Something is in our way, get it outta here
      • basic_melee_attack
        • bumbles - Attack with a 30 second cooldown.
        • dog - Pursue the target, growl if we're close, and bite if we're adjacent +Dogs are actually not very aggressive and won't attack unless you approach them +Adds a floor to the melee damage of the dog, as most pet dogs don't actually have any melee strength
        • goliath - Go for the tentacles if they're available
        • interact_once/extinguish - behavior to extinguish mobs or turfs
        • magicarp - Interrupt your attack chain if: you have a spell, it's not on cooldown, and it has a target
        • opportunistic - Attack something which is already adjacent to us without moving
      • basic_ranged_attack
      • battle_screech
      • befriend_target - behavior to befriend any targets
      • bot_search
        • party_friends - behavior that searches for party friends
        • people_on_fire - behavior for finding people on fire
      • bot_speech - behavior to make our bot talk
      • bumbles_rest - Bumbles rests or sits up.
      • call_reinforcements - Call out to all mobs in the specified range for help
      • capricious_retaliate - Add or remove people to our retaliation shitlist just on an arbitrary whim
      • cover_minimum_distance - instead of taking a single step, we cover the entire distance
      • crawl_through_vents - We hop into the vents through a vent outlet, and then crawl around a bit. Jolly good times. +This also assumes that we are on the turf that the vent outlet is on. If it isn't, shit. +Warning: this was really snowflake code lifted from an obscure feature that likely has not been touched for over five years years. +Something that isn't implemented is the ability to actually crawl through vents ourselves because I think that's just a waste of time for the same effect (instead of psuedo-teleportation, do REAL forceMoving) +If you are seriously considering using this component, it would be a great idea to extend this proc to be more versatile/less overpowered - the mobs that currently implement this benefit the most +since they are weak as shit with only five health. Up to you though, don't take what's written here as gospel.
      • deliver_fetched_item - The second half of fetching, deliver the item to a target.
      • drag_target_to_rune - behavior to drag the target onto the rune
      • drop_item - Drops items in hands, very important for future behaviors that require the pawn to grab stuff
      • eat_fetched_snack - The alternate second half of fetching, attack the item if we can eat it. +Or make pleading eyes at someone who has picked it up.
      • emagged_borgi_attack - Shoot a random target.
      • fetch_seek - Traverse to a target with the intention of picking it up. +If we can't do that, add it to a list of ignored items.
      • find_and_set - *find and set
        • animatable - Variant of find and set which returns an object which can be animated with a staff of change
        • conscious_person - A variant that looks for a human who is not dead or incapacitated, and has a mind
        • edible - Variant of find and set that also requires the item to be edible. checks hands too
        • friendly_corpses - Variant of find and set which returns corpses who share your faction
        • friendly_cultist - behavior to find cultists that we befriend
        • in_hands - Variant of find and set that only checks in hands, search range should be excluded for this
        • in_list - Variant of find and set that takes a list of things to find.
          • turf_location - Like find_and_set/in_list, but we return the turf location of the item instead of the item itself.
        • nearest_wall - Variant of find and set which returns the nearest wall which isn't invulnerable
        • pawn_must_hold_item - Variant of find and set that fails if the living pawn doesn't hold something
        • swim_alternate - find land if its time to get out of water, otherwise find water
      • find_furthest_turf_from_target - find furtherst turf target so we may teleport to it
      • find_hunt_target - Finds a specific atom type to hunt.
        • corpses - Find nearby dead mobs
      • find_mom
      • Find next carp migration step - Records the next turf we want to travel to into the blackboard for other actions
      • find_partner - Find a compatible, living partner, if we're also alone.
      • find_potential_targets
        • most_wounded - Picks targets based on which one has the lowest health
        • nearest - Picks targets based on which one is closest to you, choice between targets at equal distance is arbitrary
          • magicarp - This subtype only exists because if you queue multiple of the same action with different arguments it deletes their stored arguments
        • prioritize_trait - Targets with the trait specified by the BB_TARGET_PRIORITY_TRAIT blackboard key will be prioritized over the rest.
      • find_unwebbed_turf - Find an unwebbed nearby turf and store it
      • follow - This behavior involves attacking a target.
      • forget_failed_fetches - Clear our failed fetch list every so often
      • goliath_dig - If we got nothing better to do, dig a little hole
      • goliath_find_diggable_turf
      • grab_fingers - If our target is an arm then move over and drag it
      • hoard_fingers - If we are dragging an arm then run away until we are out of range and feast
      • hunt_target - Hunts down a specific atom type.
      • item_escape_grasp - This behavior is for obj/items, it is used to free themselves out of the hands of whoever is holding them
      • item_move_close_and_attack - This behavior is for obj/items, it is used to move closer to a target and throw themselves towards them.
      • make_babies - Reproduce.
      • Make carp rift - Make a carp rift somewhere
        • Make carp rift away - Make a rift bringing you further away from your target
        • Make carp rift forwards - Make a rift bringing you closer to your target
          • Make carp rift forwards (aggressive) - Make a rift towards your target if you are blocked from moving or if it is far away
          • Make carp rift forwards (unvalidated) - Skip validation checks because we already did them in the controller
      • monkey_attack_mob
      • monkey_equip
      • move_to_cardinal - Try to line up with a cardinal direction of your target
      • move_to_target - Moves to target then finishes
      • perch_on_target - Parrot behavior that allows them to perch on a target.
      • pet_follow_friend - Just keep following the target until the command is interrupted
      • pet_use_ability - Pet owners can't see their pet's ability cooldowns so we keep attempting to use an ability until we succeed
      • pick_up_item - Simple behaviour for picking up an item we are already in range of. +The blackboard storage key isn't very safe because it doesn't make sense to register signals in here. +Use the AI held item component to manage this.
      • play_dead - Pretend to be dead
      • play_with_mouse
      • pursue_to_range - Pursue a target until we are within a provided range
      • ranged_skirmish - How often will we try to perform our ranged attack?
      • relay_message - behavior that allow us to go communicate with other hivebots
      • return_home
      • run_away_from_target - Move to a position further away from your current target
      • run_emote - Emote from a blackboard key
      • search_burning_turfs - behavior to find burning turfs
      • setup_shop - The ai will create a shop the moment they see a potential costumer
      • sleep_after_targetless_time - Disables AI after a certain amount of time spent with no target, you will have to enable the AI again somewhere else
      • spin_web - Move to an unwebbed nearby turf and web it up
      • step_away - Take one step away
      • Step towards turf - Moves a short distance towards a location repeatedly until you arrive at the destination. +You'd use this over travel_towards if you're travelling a long distance over a long time, because the AI controller has a maximum range.
        • Step towards turf in area - Moves a short distance towards a location in an area +Unlike step_towards_turf it will reacquire a new turf from the area if it loses its target
      • stop_and_stare - Makes a mob simply stop and stare at a movable... yea...
      • swirl_around_target
      • target_from_retaliate_list - Picks a target from a provided list of atoms who have been pissing you off +You will probably need /datum/element/ai_retaliate to take advantage of this unless you're populating the blackboard yourself
        • nearest - As above but targets have been filtered from the 'retaliate' blackboard list
      • Targeted Mob Ability - Attempts to use a mob's cooldown ability on a target
        • Try Mob Ability and clear target - Attempts to use a mob's cooldown ability on a target and releases the target when the action completes
          • vibebot_party - behavior we use to party with people
        • Try Mob Ability and plan execute - Attempts to use a mob's cooldown ability on a target and then move the target into a special target blackboard datum +Doesn't need another subtype to clear BB_BASIC_MOB_EXECUTION_TARGET because it will be the target key for the normal action
        • brimbeam
        • ice_whelp
        • min_range - Attempts to move into the provided range and then use a mob's cooldown ability on a target
      • territorial_struggle
      • tipped_reaction - type of tipped reaction that is akin to puppy dog eyes
      • Travel Towards - Moves towards the atom in the passed blackboard key. +Planning continues during this action so it can be interrupted by higher priority actions.
      • Travel Towards Atom - Travel towards an atom you pass directly from the controller rather than a blackboard key. +You might need to do this to avoid repeating some checks in both a controller and an action.
      • use_in_hand - Use in hand the currently held item
      • use_mob_ability/shapeshift - Selects a random shapeshift ability before shifting
      • use_on_object - Use the currently held item, or unarmed, on a weakref to an object in the world
      • vendor_crush
      • vendor_rise_up
      • wander
    • ai_controller
      • basic_controller
        • abductor - Melee
          • ranged - Ranged
        • artificer - Artificers
        • blob_spore - As blob zombie but will prioritise attacking corpses to zombify them
        • blob_zombie - Move to a point designated by the overmind, otherwise just slap people nearby
        • blobbernaut - Extremely simple AI, this isn't a very smart boy +Only notable quirk is that it uses JPS movement, simple avoidance would fail to realise it can path through blobs
        • bot
        • brimdemon - Slap someone who is nearby, line up with target, blast with a beam
        • carp - AI controller for carp +Expected flow is:
          • mega - Megacarps. The only difference is that they don't flee from scary fishermen and prioritize them.
          • passive - Carp which bites back, but doesn't look for targets and doesnt do as much damage +Still migrate and stuff
          • pet - Carp which bites back, but doesn't look for targets. +'Not hunting targets' includes food (and can rings), because they have been well trained.
          • ranged - AI for carp with a spell. +Flow is basically the same as regular carp, except it will try and cast a spell at its target whenever possible and not fleeing.
        • crab - The basic ai controller for crabs
        • cybersun_ai_core - how the ai core thinks
        • dog
          • borgi - Dog controller but with emag attack support
          • corgi - Same thing but with make tiny corgis and use access cards.
            • chadian - AI controller that adds chad ian emotes
        • giant_spider - Attacks people it can see, spins webs if it can't see anything to attack.
          • pest - Retaliates, hunts other maintenance creatures, runs away from larger attackers, and spins webs.
          • retaliate - Used by Araneus, who only attacks those who attack first. He is house-trained and will not web up the HoS office.
          • weak - Giant spider which won't attack structures
        • goat - Goats are normally content to sorta hang around and crunch any plant in sight, but they will go ape on someone who attacks them.
        • gorilla - Pretty basic, just click people to death. Also hunt and eat bananas.
        • headslug - This is a bit neutered since these aren't intended to exist outside of player control, but it's a bit weird to just have these guys be completely stationary. +No attacking or anything like that, though. Just something so they seem alive.
        • hivelord - Basically just keep away and shit out worms
        • juggernaut - Juggernauts
        • leaper - so they dont attack the leaper or the wizard master
        • legion - Keep away and launch skulls at every opportunity, prioritising injured allies
        • legion_brood - Chase and attack whatever we are targeting, if it's friendly we will heal them
        • legion_monkey - Opportunistically hops in and out of vents, if it can find one and is not biting someone.
        • lobstrosity/juvenile - Ensure that juveline lobstrosities witll charge at things they can reach.
          • calm - A subtype of juvenile lobster AI that has the target_retaliate behaviour instead of simple_find_target
          • capricious - A subtype of juvenile lobster AI that has the capricious_retaliate behaviour instead of simple_find_target
        • meteor_heart - A spellcasting AI which does not move
        • mook
          • bard - bard mook plays nice music for the village
          • support - healer mooks guard the village from intruders and heal the miner mooks when they come home
          • tribal_chief - the chief would rather command his mooks to attack people than attack them himself
        • morph - No fleshed out AI implementation, just something that make these fellers seem lively if they're just dropped into a station. +Only real human-powered intelligence is capable of playing prop hunt in SS13 (until further notice).
        • mouse - The mouse AI controller
          • guaranteed_to_bite - Dummy mouse's ai controller that is guaranteed to find and bite a cable beneath it
          • rat - AI controller for rats, slightly more complex than mice becuase they attack people
        • node_drone - The node drone AI controller
        • parrot/ghost - Used for ghost poly.
        • pet_cult
        • proteon - Proteons
        • raw_prophet - Walk and attack people, blind them when we can
        • rust_walker - Converts unconverted terrain, sprays pocket sand around
        • simple_hostile - The most basic AI tree which just finds a guy and then runs at them to click them
        • simple_hostile_obstacles - Find a target, walk at target, attack intervening obstacles
        • skeleton - Skeletons mostly just beat people to death, but they'll also find and drink milk.
        • sloth - They're really passive in game, so they just wanna get away if you start smacking them. No trees in space from them to use for clawing your eyes out, but they will try if desperate.
        • snake - Snakes are primarily concerned with getting those tasty, tasty mice, but aren't afraid to strike back at those who attack them
        • space_bat - Controller for space bats, has nothing unique, just retaliation.
        • spiderling - Opportunistically hops in and out of vents, if it can find one. We aren't interested in attacking due to how weak we are, we gotta be quick and hidey.
        • stalker - Changes shape and lies in wait when it has no target, uses EMP and attacks once it does
        • wizard - Wizards run away from their targets while flinging spells at them and blinking constantly.
        • wraith - Wraiths
        • wumborian_fugu - Cowardly when small, aggressive when big. Tries to transform whenever possible.
        • young_spider - Used by all young spiders if they ever appear.
      • cursed item ai! - Haunted AI tries to not be interacted with, and will attack people who do. +Cursed AI instead tries to be interacted with, and will attempt to equip itself onto people. +Added by /datum/element/cursed, and as such will try to remove this element and go dormant when it finds a victim to curse
      • haunted
      • hostile_friend - This code needs to be removed at some point as it doesn't actually utilize the AI.
      • mod - An AI controller for the MODsuit pathfinder module. It's activated by implant and attaches itself to the user.
      • monkey - OOK OOK OOK
      • robot_customer
      • vending_machine - AI controller for vending machine gone rogue, Don't try using this on anything else, it wont work.
    • ai_laws
    • ai_module - The base module type, which holds info about each ability.
      • malf
        • destructive - Modules causing destruction
          • blackout - Blackout: Overloads a random number of lights across the station. Three uses.
          • destroy_rcd - Destroy RCDs: Detonates all non-cyborg RCDs on the station.
          • lockdown - Hostile Station Lockdown: Locks, bolts, and electrifies every airlock on the station. After 90 seconds, the doors reset.
          • megahonk - HIGH IMPACT HONKING
          • nuke_station - Doomsday Device: Starts the self-destruct timer. It can only be stopped by killing the AI completely.
          • overload_machine - Overload Machine: Allows the AI to overload a machine, detonating it after a delay. Two uses per purchase.
          • override_machine - Override Machine: Allows the AI to override a machine, animating it into an angry, living version of itself.
        • upgrade - Modules that are improving AI abilities and assets
          • eavesdrop - Enhanced Surveillance: Enables AI to hear conversations going on near its active vision.
          • mecha_domination - Unlock Mech Domination: Unlocks the ability to dominate mechs. Big shocker, right?
          • upgrade_cameras - Upgrade Camera Network: EMP-proofs all cameras, in addition to giving them X-ray vision.
          • upgrade_turrets - AI Turret Upgrade: Increases the health and damage of all turrets.
        • utility - Modules with stealthy and utility uses
          • break_air_alarms - Air Alarm Safety Override: Unlocks the ability to enable dangerous modes on all air alarms.
          • break_fire_alarms - Thermal Sensor Override: Unlocks the ability to disable all fire alarms from doing their job.
          • emergency_lights - Disable Emergency Lights
          • place_cyborg_transformer - Robotic Factory: Places a large machine that converts humans that go through it into cyborgs. Unlocking this ability removes shunting.
          • reactivate_cameras - Reactivate Camera Network: Reactivates up to 30 cameras across the station.
    • ai_movement - This datum is an abstract class that can be overridden for different types of movement
      • basic_avoidance - Uses Byond's basic obstacle avoidance movement
        • backstep - Move immediately and don't update our facing
      • complete_stop - Come to a complete stop for a set amount of time.
      • dumb - The most brain-dead type of movement, bee-line to the target with no concern of whats in front of us.
      • jps - This movement datum represents smart-pathing
    • ai_planning_subtree - A subtree is attached to a controller and is occasionally called by /ai_controller/SelectBehaviors(), this mainly exists to act as a way to subtype and modify SelectBehaviors() without needing to subtype the ai controller itself
      • acknowledge_chief
      • attack_obstacle_in_path - If there's something between us and our target then we need to queue a behaviour to make it not be there
      • bane_hunting
      • basic_melee_attack_subtree
        • bumbles - Attack with a 30 second cooldown.
        • magicarp - As basic attack tree but interrupt if your health gets low or if your spell is off cooldown
        • mega_arachnid - only engage in melee combat against cuffed targets, otherwise keep throwing restraints at them
        • opportunistic - Attack something which is already adjacent to us, without ending planning
      • basic_ranged_attack_subtree
        • alien - Alien projectile +Try to avoid friendly fire, and has a 3 second delay.
        • minebot - operational datums is null because we dont use a ranged component, we use a gun in our contents
      • befriend_ashwalkers - find ashwalkers and add them to the list of masters
      • befriend_cultists - befriend all cultists around us!
      • bumbles_rest - Plan to rest or sit up.
      • burn_trees - subtree to look for trees and burn them with our flamethrower
      • call_reinforcements - Calls all nearby mobs that share a faction to give backup in combat
      • capricious_retaliate - Add or remove people to our retaliation shitlist just on an arbitrary whim
      • Carp Migration - Will try to plan a path between a list of locations for carp to travel through
      • climb_trees
      • dig_away_from_danger - only dig away if storm is coming or if humans are around
      • dog_harassment - Find someone we don't like and annoy them
      • emagged_borgi - Subtree that schedules borgi to randomly shoot if they're emagged.
      • enter_exit_home
      • express_happiness
      • extinguishing_people - subtree for extinguishing people
      • extinguishing_turfs - subtree for finding turfs to extinguish
      • find_and_hunt_target - Tells the AI to find a certain target nearby to hunt. +If a target has been found, we will start to move towards it, and eventually attack it.
        • baby_egg - find our child's egg and pull it!
        • break_boulders - break boulders so that we can find more food!
        • corpses - Find and attack corpses
          • human - Find and attack specifically human corpses
        • destroy_surveillance - destroy surveillance objects to boost our stealth
        • drink_water - subtree to go around drinking water
        • food_trough - consume food!
        • graze - subtree to go around grazing
        • harvest_vents - break boulders so that we can find more food!
        • hunt_ores - consume food!
          • minebot - store ores in our body
          • mook - hunt ores that we will haul off back to the village
          • tribal_chief - find an ore, only pick it up when a mook brings it close to us
        • injured_mooks - find injured miner mooks after they come home from a long day of work
        • look_for_cables/guaranteed - Cable hunting subtree that's guarantee to hunt its target.
        • mark_territory - subtree to mark trees as territories
        • material_stand - deposit ores into the stand!
      • find_dead_cultist - find targets that we can revive
      • find_fingers - Look for loose arms lying around
      • find_food - similar to finding a target but looks for food types in the // the what?
      • find_nearest_magicarp_spell_target - Find a target for the magicarp's spell +This gets weird because different spells want different targeting +but I didn't want a new ai controller for every different spell
      • find_nearest_thing_which_attacked_me_to_flee - Find the nearest thing on our list of 'things which have done damage to me' and set it as the flee target
      • find_occupied_rune - subtree to find a rune with a viable target on it, so we can go activate it
      • find_party_friends - subtree we use to find party friends in general
      • find_patrol_beacon
      • find_playmates - ai behavior that lets us search for other orbies to play with
      • find_target_prioritize_traits - Find something with a specific trait to run from
      • find_unwebbed_turf - Search for a nearby location to put webs on
      • firebot_speech - subtree to make us say funny idle lines
      • flee_target - Try to escape from your current target, without performing any other actions.
        • from_fisherman - A subtype that forces the mob to flee from targets with the scary fisherman trait anyway.
        • from_flee_key - Try to escape from your current target, without performing any other actions. +Reads from some fleeing-specific targeting keys rather than the current mob target.
        • legion - Don't run away from friendlies
        • mega_arachnid - spray slippery acid as we flee!
        • mouse - Don't look for anything to run away from if you are distracted by being adjacent to cheese
      • generic_hunger
      • generic_play_instrument
      • generic_resist
      • go_for_swim - subtree to go and swim!
      • goliath_dig
      • goliath_find_diggable_turf - If we got nothing better to do, find a turf we can search for tasty roots and such
      • hive_communicate
      • hoard_fingers - If you see an arm, grab it and run
      • hoard_items - subtree to steal items
      • issue_commands
      • locate_dead_humans
      • look_for_adult
      • look_for_village - look for our village
      • maintain_distance - Step away if too close, or towards if too far
      • make_babies - Reproduce with a similar mob.
      • Make carp rift - Plan a carp rift action, so basically teleport somewhere if the action is available
        • Make carp rift (aggressive) - Plan to teleport towards our target so we can fuck them up
        • Make carp rift (panic) - Plan to teleport away from our target so they can't fuck us up
      • manage_unreachable_list - subtree to manage our list of unreachables, we reset it every 15 seconds
      • minebot_mining
      • monkey_combat
      • move_to_cardinal - Try to line up with a cardinal direction of your target
      • opportunistic_ventcrawler - Opportunistically searches for and hides/scurries through vents.
      • parrot_as_in_repeat - When a parrot... parrots...
      • perch_on_target - subtree to perch on targets
      • Pet Planning - Perform behaviour based on what pet commands you have received. This is delegated to the pet command datum. +When a command is set, we blackboard a key to our currently active command. +The blackboard also has a weak reference to every command datum available to us. +We use the key to figure out which datum to run, then ask it to figure out how to execute its action.
      • play_music_for_visitor - find an audience to follow and play music for!
      • play_with_friends - subtree to go around playing with other deers
      • possess_humans - subtree to possess humans
      • prepare_travel_to_destination - Subtree that checks if we are on the target atom's tile, and sets it as a travel target if not +The target is taken from the blackboard. This one always requires a specific implementation.
      • random_speech
        • bumbles - Buzz
        • cow/wisdom - unlike normal cows, wisdom cows speak of wisdom and won't shut the fuck up
        • legion - Make spooky sounds, if we have a corpse inside then impersonate them
        • rabbit/easter - For the easter subvariant of rabbits, these ones actually speak catchphrases.
          • space - These ones have a space mask on, so their catchphrases are muffled.
      • ranged_skirmish - Fire a ranged attack without interrupting movement.
      • reside_in_home
      • run_emote - Intermittently run an emote
      • sculpt_statues - subtree to find icy rocks and create sculptures out of them
      • setup_shop - Subtree to find our very first customer and set up our shop after walking right into their face
        • jumpscare - Version of setup show where the trader will run at you to assault you with incredible deals
      • shapechange_ambush - Shapeshift when we have no target, until someone has been nearby for long enough
      • Shortcut to target through carp rift - If there's a carp rift heading your way, plan to ride it to your target
      • simple_find_nearest_target_to_flee - Find the nearest thing which we assume is hostile and set it as the flee target
      • simple_find_target
      • simple_find_wounded_target - Selects the most wounded potential target that we can see
      • sleep_with_no_target - Disables AI after a certain amount of time spent with no target, you will have to enable the AI again somewhere else
        • meteor_heart - After enough time with no target, deaggro and change animation state
      • spin_web - Run the spin web behaviour if we have an ability to use for it
      • stare_at_thing - Locate a thing (practically any atom) to stop and stare at.
      • target_retaliate - Sets the BB target to a mob which you can see and who has recently attacked you
        • to_flee - Places a mob which you can see and who has recently attacked you into some 'run away from this' AI keys +Can use a different targeting strategy than you use to select attack targets +Not required if fleeing is the only target behaviour or uses the same target datum
      • targeted_mob_ability - Attempts to use a mob ability on a target
        • arachnid_restrain
        • lightning_strike - DA SPELLS!
        • lobster - Don't use charge ability on an adjacent target, and make sure you're visible before you start
        • magicarp - Then use it on that target
        • wizard_spell - Cast a wizard spell. There is a minimum cooldown between spellcasts to prevent overwhelming spam.
      • teleport_away_from_target - behavior to activate ability to escape from target
      • territorial_struggle
      • tip_reaction - used by cows
      • travel_to_point - Simply walk to a location
      • use_mob_ability - Simple behaviours which simply try to use an ability whenever it is available. +For something which wants a target try targeted_mob_ability.
        • mook_jump
        • rust_walker - Use if we're not stood on rust right now
      • wander_away_from_village - explore the lands away from the village to look for ore
    • air_alarm_mode - Various modes that an /obj/machinery/airalarm can assume.
      • cycle
      • filtering - The default.
    • alarm_handler - Represents a single source of alarms, one alarm handler will only ever count for one alarm per listener
    • alarm_listener
    • anomaly_placer
    • anonymous_theme
    • antagonist
    • area_spawn - Area spawn datums
    • area_spawn_over - Spawns an atom on any turf that contains specific over atoms.
    • armament_entry
    • armor - The armor datum holds information about different types of armor that an atom can have. +It also contains logic and helpers for calculating damage and effective damage
      • clothing_under/wetsuit - Suit armor
      • crate_syndicrate - if the crate takes damage it will explode 25% of the time
      • helmet_monkey_sentience - which icon state color this is (red, blue, yellow)
      • immune - A version of armor that cannot be modified and will always return itself when attempted to be modified
      • item_tank - Closes the tank if dropped while open.
      • none - A version of armor with no protections
      • wetsuit_helmet - Helmet armor
    • armour_dimensional_theme - Datum describing a 'theme' which transforms a 3x3 area's turfs when applied. +It also creates a number of themed barriers in that area.
      • dangerous - Dangerous themes can potentially impede the user as much as people pursuing them
      • safe - Themes which will largely be probably useful for the user
    • ash_ritual
    • asset
      • json - A subtype to generate a JSON file from a list
        • icon_ref_map - Maps icon names to ref values
        • preferences - Sends information needed for shared details on individual preferences
        • uplink - Sends information needed for uplinks
      • simple - If you don't need anything complicated.
        • body_zones - Spritesheet for body zones. Necessary if your tgui uses BodyZoneSelector
        • namespaced - Namespace'ed assets (for static css and html files) +When sent over a cdn transport, all assets in the same asset datum will exist in the same folder, as their plain names. +Used to ensure css files can reference files by url() without having to generate the css at runtime, both the css file and the files it depends on must exist in the same namespace asset datum. (Also works for html) +For example blah.css with asset blah.png will get loaded as namespaces/a3d..14f/f12..d3c.css and namespaces/a3d..14f/blah.png. allowing the css file to load blah.png by a relative url rather then compute the generated url with get_url_mappings(). +The namespace folder's name will change if any of the assets change. (excluding parent assets)
      • spritesheet
        • antagonists - Sprites generated for the antagonists panel
        • chemmaster - Icons for containers printed in ChemMaster
        • crafting - Representative icons for the contents of each crafting recipe
        • decals
        • plumbing
        • preferences - Assets generated from /datum/preference icons
    • asset_cache_item - An internal datum containing info on items in the asset cache. Mainly used to cache md5 info for speed.
    • asset_transport - Base browse_rsc asset transport
      • webroot - CDN Webroot asset transport.
    • atom_hud
      • alternate_appearance
        • basic
          • antagonist_hud - An alternate appearance that will show all the antagonists this mob has
          • has_antagonist - An alternate appearance that will only show if you have the antag datum
            • heretic - Hud used for heretics to see influences
    • augment_item
    • autowiki - A representation of an automated wiki page.
      • stock_parts - Automtically generated string list of stock part templates and relevant data for the /tg/station wiki
    • avatar_help_text
    • award
      • achievement - Achievements are one-off awards for usually doing cool things.
        • mafia
          • assistant - ALL THE ACHIEVEMENTS FOR WINNING A ROUND AS A ROLE
          • universally_hated - ALL THE ACHIEVEMENTS FOR MISC MAFIA ODDITIES
      • score - Scores are for leaderboarded things, such as killcount of a specific boss
        • achievements_score - Defining this here 'cause it's the first score a player should see in the Scores category.
        • hardcore_random - How many times did we survive being a cripple?
        • intento_score - How high of a score on the Intento did we get?
        • maintenance_pill - How many maintenance pills did you eat?
        • style_score - What's the highest amount of style points we've gotten?
    • bank_account
    • barsign
    • basketball_controller - The basketball controller handles the basketball minigame in progress. +It is first created when the first ghost signs up to play.
    • battle_arcade_gear
    • battle_royale_controller - Datum which controls the conflict
    • battle_royale_master - Basically just exists to hold references to datums so that they don't GC
    • beam
    • biological_sample - This datum is a simple holder for the micro_organisms in a sample.
    • biome - This datum handles the transitioning from a turf to a specific biome, and handles spawning decorative structures and mobs.
    • bitfield - Specifies a bitfield for smarter debugging
      • bot_access_flags - bitfield, used by basic bots, for our access flags
      • bot_cover_flags - bitfield, used by simple bots, for our access flags
      • no_equip_flags - Inventory slots that can be blacklisted by a species from being equipped into
    • blobstrain
    • bloodsucker_clan - Bloodsucker clans
    • blooper - It's was stoolen from Splurt build >:3 and from fluffySTG!! nyeehehehheee!~
    • body_marking
    • body_marking_set
    • bodypart_overlay - Bodypart ovarlay datum. These can be added to any limb to give them a proper overlay, that'll even stay if the limb gets removed +This is the abstract parent, don't use it!!
      • mutant - Variant of bodypart_overlay meant to work synchronously with external organs. Gets imprinted upon Insert in on_species_gain
        • antennae - Moth antennae datum, with full burning functionality
        • genital
        • mushroom_cap - Bodypart overlay for the mushroom cap organ
        • pod_hair - Podperson bodypart overlay, with special coloring functionality to render the flowers in the inverse color
        • spines - Bodypart overlay for spines
        • tail - Tail parent type, with wagging functionality
          • cat - Cat tail bodypart overlay
          • lizard - Lizard tail bodypart overlay datum
          • monkey - Monkey tail bodypart overlay
        • tail_spines - Bodypart overlay for tail spines. Handled by the tail - has no actual organ associated.
        • wings - Bodypart overlay of default wings. Does not have any wing functionality
          • functional - Bodypart overlay of function wings, including open and close functionality!
          • moth - Moth wing bodypart overlay, including burn functionality!
      • simple - For simple overlays that really dont need to be complicated. Sometimes icon_state and icon is enough +Remember to set the layers or shit wont work
        • bags - bags drawn beneath the eyes
        • body_marking - For body markings applied on the species, which need some extra code
        • emote - Variant of bodypart_overlay for displaying emote overlays. See /datum/emote/living/blush/run_emote for an example on how to use one of these.
        • golem_overlay - Body part overlays applied by golem status effects
        • sixpack - A sixpack drawn on the chest
      • texture - Bodypart overlays focused on texturing limbs
    • book_history_entry - This mostly exists to document the form of the library_action table, since it doesn't do that good a job on its own
    • book_info - A datum which contains all the metadata of a book
    • borer_evolution
    • borer_focus
    • bounty
      • item
        • assistant/fish
          • fluid - A subtype of the fish bounty that requires fish with a specific fluid type
        • atmospherics
        • science/genetics
        • security/paperwork - Bounties that require you to perform documentation and inspection of your department to send to centcom.
      • pill
    • brain_trauma
    • buildmode
    • buildmode_mode
    • Callback Datums - A datum that holds a proc to be called on another object, used to track proccalls to other objects
      • verb_callback - like normal callbacks but they also record their creation time for measurement purposes +they also require the same usr/user that made the callback to both still exist and to still have a client in order to execute
    • callback_select - Helper datum for the select callbacks proc
    • camerachunk
    • cameranet
    • can_pass_info - Holds all information about what an atom can move through +Passed into CanAStarPass to provide context for a pathing attempt
    • candidate_poll - The datum that describes one instance of candidate polling
    • card
    • cardboard_cutout
    • cargo_company
    • carrier_room - carrier Room
    • cell_tracker - Spatial gridmap, cell tracking
    • cellular_emporium
    • centcom_announcer - Data holder for the announcers that can be used in a game, this can be used to have alternative announcements outside of the default e.g.the intern
    • centcom_podlauncher
    • changeling_profile
    • chasm_detritus - A datum that retrieves something which fell into a chasm.
      • restricted - Variant of the chasm detritus that allows for an easier time at fishing out +bodies, and sometimes less desireable monsters too.
    • chat_payload - Stores information about a chat payload
    • Chat Message Overlay - Datum for generating a message overlay on the map
    • chemical_reaction - #Chemical Reaction
      • acetone - Other goon stuff
      • ammonia - Cleaning and hydroponics
      • drink - Drink recipe base
      • food - FOOD MIXTURES
        • soup
          • custom - So this one's kind of a "failed" result, but also a "custom" result +Getting to this temperature and having no other soup reaction made means you're either messing something up +or you simply aren't following a recipe. So it'll just combine
          • mysterysoup
      • ice - Ice and water
      • medical_speed_catalyst - MEDICINES
      • medicine
        • convermol - OXY
        • helbital - BRUTE
        • inacusiate
        • lenturi - BURN
        • medsuture - medical stacks
        • seiver - TOX
      • prefactor_a - Example competitive reaction (REACTION_COMPETITIVE)
      • randomized
        • metalgen - Random recipe for meme chem metalgen. Always requires wittel and resets every 3 days
      • slime - End example
      • surfactant - foam and foam precursor
      • virus_food - VIROLOGY
    • cinematic - Cinematic datum. Used to show an animation to everyone.
      • cult_arm - A blood cult summoned Nar'sie, and most of the station was harvested or converted!
      • cult_fail - A blood cult summoned Nar'sie, but some badass (or admin) managed to destroy Nar'sie themselves.
      • malf - A malfunctioning AI has activated the doomsday device and wiped the station!
      • nuke - Simple, base cinematic for all animations based around a nuke detonating.
        • clown - The clown operative nuclear bomb was activated and clowned the station!
        • cult - A blood cult summoned Nar'sie, but central command deployed a nuclear package to stop them.
        • fake - A fake version of the nuclear detonation, where it winds up, but doesn't explode.
        • far_explosion - The syndicate nuclear bomb was activated, but just missed the station by a whole z-level!
        • mutual_destruction - The syndicate nuclear bomb was activated, and the nuclear operatives failed to extract on their shuttle before it detonated on the station!
        • no_core - A fake version of the nuclear detonation, where it winds up, but doesn't explode as the nuke core within was missing.
        • ops_miss - The syndicate nuclear bomb was activated, but just barely missed the station!
        • ops_victory - The syndicate nuclear bomb was activated, and destroyed the station!
        • self_destruct - The self destruct, or another station-destroying entity like a blob, destroyed the station!
        • self_destruct_miss - The self destruct was activated, yet somehow avoided destroying the station!
    • circuit_composite_template - A template used to make composite datatypes for circuits. +Used so that we don't have to generate every single possible combination of types
    • circuit_datatype - A circuit datatype. Used to determine the datatype of a port and also handle any additional behaviour.
    • circuit_variable - A circuit variable that holds the name, the datatype and the colour of the variable (taken from the datatype).
    • client_colour - Client Colour Priority System By RemieRichards (then refactored by another contributor) +A System that gives finer control over which client.colour value to display on screen +so that the "highest priority" one is always displayed as opposed to the default of +"whichever was set last is displayed".
      • halloween_helmet - A client colour that makes the screen look a bit more grungy, halloweenesque even.
    • client_interface - This should match the interface of /client wherever necessary.
    • clockwork_research
    • cogbar
    • colorblind_tester - Used to test the game for issues with different types of color blindness +WARNING ASSHOLE: Because we can only apply matrixes, and can't preform gamma correction +https://web.archive.org/web/20220227030606/https://ixora.io/projects/colorblindness/color-blindness-simulation-research/ +The results of this tool aren't perfect. It's way better then nothing, but IT IS NOT A PROPER SIMULATION +Please do not make us look like assholes by assuming it is. Thanks.
    • colored_assistant - Defines a style of jumpsuit/jumpskirt for assistants. +Jumpsuit and jumpskirt lists should match in colors, as they are used interchangably.
      • solid - Will pick one color, and stick with it
    • comm_log_entry - Simple log entry datum for the telecommunication server
    • command_report_menu - Datum for holding the TGUI window for command reports.
    • communciations_controller
    • Component - The component datum
      • acid - Component representing acid applied to an object. +Must be attached to an atom. +Processes, repeatedly damaging whatever it is attached to. +If the parent atom is a turf it applies acid to the contents of the turf. +If not being applied to a mob or turf, the atom must use the integrity system.
      • action_item_overlay - Apply to an action to allow it to take an item +and apply it as an overlay of the action button
      • adjust_fishing_difficulty - Influences the difficulty of the minigame when worn or if buckled to.
      • admin_popup - Applied to clients when they receive an admin popup, alerting them to +their ticket.
      • aggro_emote - A component for ai-controlled atoms which plays a sound if they switch to a living target which they can attack
      • ai_listen_to_weather - given to a mob to set a key on or off when a storm is coming or ending
      • ai_retaliate_advanced - Attached to a mob with an AI controller, passes things which have damaged it to a blackboard. +The AI controller is responsible for doing anything with that information. +Differs from the element as it passes new entries through a callback.
      • ai_target_timer - Increments a blackboard key while the attached mob is engaged with a particular target, does nothing else on its own
      • ammo_hud
      • amputating_limbs - This component will intercept bare-handed attacks by the owner on sufficiently injured carbons and amputate random limbs instead
      • anti_magic - This provides different types of magic resistance on an object
      • appearance_on_aggro - Changes visuals of the attached mob while it has a target
      • aquarium_content - Allows movables to be inserted/displayed in aquariums.
      • area_based_godmode - Area-based godmode. +Gain and Lose message can only be set once, at initial component creation; adding a source will not update them.
      • area_sound_manager - Allows you to set a theme for a set of areas without tying them to looping sounds explicitly
      • areabound - Movables with this component will automatically return to their original turf if moved outside their initial area
      • armament - This is the component that runs the armaments vendor.
      • armor_plate
      • ash_age - 20 minutes = ash storm immunity +40 minutes = armor +60 minutes = base punch +80 minutes = lavaproof +100 minutes = firebreath
      • ash_cursed
      • atmos_reaction_recorder - Component for atmos-related atoms to be able to record and transmit their reaction_results data +Use this ONLY for atoms, gasmixtures will be accessed by calling return air on the object. +Add this component after gasmixes has been initialized.
      • aura_healing - Applies healing to those in the area. +Will provide them with an alert while they're in range, as well as +give them a healing particle. +Can be applied to those only with a trait conditionally.
      • automatic_fire
      • avatar_connection - Essentially temporary body with a twist - the virtual domain variant uses damage connections, +listens for vdom relevant signals.
      • bakeable - This component indicates this object can be baked in an oven.
      • banned_from_space - Following recent tomfoolery, we've decided to ban you from space.
      • basic_inhands - Basic handling for showing held items in a mob's hands
      • basic_mob_ability_telegraph - Component given to creatures to telegraph their abilities!
      • basic_mob_attack_telegraph - Delays outgoing attacks which are directed at mobs to give players time to get out of the way
      • basic_ranged_ready_overlay - Fade in an overlay x seconds after a basic mob makes a ranged attack +Indicates that it will be ready to fire again
      • bayonet_attachable - Component which allows you to attach a bayonet to an item, +be it a piece of clothing or a tool.
      • bitrunning_points - Attaches to a turf so it spawns a crate when a certain amount of points are added to it.
      • blob_minion - Common behaviour shared by things which are minions to a blob
      • blood_walk - Blood walk, a component that causes you to make blood wherever you walk.
      • bloodysoles - Component for clothing items that can pick up blood from decals and spread it around everywhere when walking, such as shoes or suits with integrated shoes.
        • feet - Like its parent but can be applied to carbon mobs instead of clothing items
      • boomerang - If an ojvect is given the boomerang component, it should be thrown back to the thrower after either hitting its target, or landing on the thrown tile. +Thrown objects should be thrown back to the original thrower with this component, a number of tiles defined by boomerang_throw_range.
      • boss_music - Attaches to a hostile simplemob and plays that music while they have a target.
      • brass_spreader - A component that spreads brass to a tile in [range] every [cooldown] seconds, converting everything on it into brass as well.
      • breed
      • bullet_intercepting - Component which allows an equipped item to occasionally absorb a projectile.
      • bumpattack
      • burning - Component representing an atom being on fire. +Should not be used on mobs, they use the fire stacks status effects. +Can only be used on atoms that use the integrity system.
      • butchering
        • mecha
        • recycler - Special snowflake component only used for the recycler.
        • wearable
      • callouts - Component that allows its owner/owner's wearer to use callouts system - their pointing is replaced with a fancy radial which allows them to summon glowing markers
      • caltrop - Caltrop element; for hurting people when they walk over this.
      • can_flash_from_behind - This mob can flash others from behind and still get at least a partial
      • carrier - Carrier Component
      • carrier_communicator
      • carrier_user - The component given to carrier inhabitants
      • cell
      • chasm
      • chuunibyou
      • circuit_component_add_port - Helper component that handles users adding/removing ports from a circuit component.
      • cleaner - Component that can be used to clean things. +Takes care of duration, cleaning skill and special cleaning interactions. +A callback can be set by the datum holding the cleaner to add custom functionality. +Soap uses a callback to decrease the amount of uses it has left after cleaning for example.
      • clickbox - This component adds a near-invisible underlay to a movable target to expand the clickable surface of its icon without +resorting to MOUSE_OPACITY_OPAQUE. +The underlay ignores the parent's color and alpha and can be offset. +The name is a portmanteau of "click" and "hitbox", because technically this isn't an hitbox, +but it helps catch clicks, and I don't want to give it a loooong name like openspace_item_click_handler
      • clockwork_trap
      • clothing_damaged_by_bullets - Component that lets clothing be damaged in zones by piercing bullets. The parent MUST have limb_integrity set.
      • clothing_fov_visor - An element to add a FOV trait to the wearer, removing it when an item is unequipped, but only as long as the visor is up.
      • codeword_hearing - Component that allows for highlighting of words or phrases in chat based on regular expressions.
      • combo_attacks
      • combustible_flooder - Component that floods gas when ignited by fire.
      • connect_containers - This component behaves similar to connect_loc_behalf, but it's nested and hooks a signal onto all MOVABLES containing this atom.
      • connect_loc_behalf - This component behaves similar to connect_loc, hooking into a signal on a tracked object's turf +It has the ability to react to that signal on behalf of a separate listener however +This has great use, primarily for components, but it carries with it some overhead +So we do it separately as it needs to hold state which is very likely to lead to bugs if it remains as an element.
      • connect_mob_behalf - This component behaves similar to connect_loc_behalf, but working off clients and mobs instead of loc +To be clear, we hook into a signal on a tracked client's mob +We retain the ability to react to that signal on a separate listener, which makes this quite powerful
      • connect_range - This component behaves similar to connect_loc_behalf but for all turfs in range, hooking into a signal on each of them. +Just like connect_loc_behalf, It can react to that signal on behalf of a separate listener. +Good for components, though it carries some overhead. Can't be an element as that may lead to bugs.
      • connectable_computer - If attached to a machine, adds the connectable computer overlays and smooths to other computers.
      • construction/mecha - Construction datums
      • container_item - Container item, an item which can be stored by specialized containers.
        • tank_holder - Tank holder item - Added to an object which can be added to a tank holder.
      • convey - Manages the loop caused by being on a conveyor belt +Prevents movement while you're floating, etc +Takes the direction to move, delay between steps, and time before starting to move as arguments
      • cracked - Tracks damage to add or remove crack overlays, when none are needed this components is qdeleted
      • crank_recharge
      • crate_carrier - Component for simplemobs and basicmobs that allow them to carry crates.
      • ctf_player - A component added to the mind of anyone who is playing in an ongoing CTF match. Any player specific CTF functionality should be implemented here. (someone should implement score tracking here)
      • cult_ritual_item
      • curse_of_hunger - curse of hunger component; for very hungry items.
      • curse_of_polymorph - curse of polymorph component;
      • Custom Atom Component - When added to an atom, item ingredients can be put into that. +The sprite is updated and reagents are transferred.
      • damage_aura - Applies a status effect and deals damage to people in the area. +Will deal more damage the more people are present.
      • damage_chain - Draws a line between you and another atom, hurt anyone stood in the line
      • damage_tracker - This component tracks the original damage values of a mob when it is attached.
        • human - This does the same as it's parent, but it also tracks organ damage.
      • dart_insert - Component for allowing items to be inserted into foam darts. +The parent can register signal handlers for COMSIG_DART_INSERT_ADDED, +COMSIG_DART_INSERT_REMOVED to define custom behavior for when the item +is added to/removed from a dart, and COMSIG_DART_INSERT_GET_VAR_MODIFIERS +to define the modifications the item makes to the vars of the fired projectile.
      • deadchat_control - Deadchat Plays Things - The Componenting
      • death_linked
      • decomposition - Makes things decompose when exposed to germs. Requires /datum/component/germ_sensitive to detect exposure.
      • dejavu - A component to reset the parent to its previous state after some time passes
        • timeline - differently themed dejavu for modsuits.
      • deployable - Deployable - Bring your big guns with you, and smack em' down where you want.
      • direct_explosive_trap - Responds to certain signals and 'explodes' on the person using the item. +Differs from interaction_booby_trap in that this doesn't actually explode, it just directly calls ex_act on one person.
      • echolocation
      • edible
      • effect_remover
      • egg layer component! - Component that manages how many eggs to lay, what can be fed to the mob to make them lay more, and what is actually laid. +Since the only real interaction with the component is an attackby, the nice part is that we're able to make this an atom level proc. +egg_layer will loudly fail if you do not provide it the arguments, as to encourage explicicy(?)
      • electrified_buckle component: - attach it to any atom/movable that can be buckled to in order to have it shock mobs buckled to it. by default it shocks mobs buckled to parent every shock_loop_time. +the parent is supposed to define its behavior with arguments in AddComponent
      • embedded
      • energized
      • engraved component! - component for walls that applies an engraved overlay and lets you examine it to read a story (+ art element yay) +new creations will get a high art value, cross round scrawlings will get a low one. +MUST be a component, though it doesn't look like it. SSPersistence demandeth
      • evolutionary_leap
      • Experiment Handler - This is the component for interacting with experiments from a connected techweb. It is generic +and should be set-up to automatically work on any class it is attached to without outside code +(Excluding potential callbacks)
      • explodable - Component specifically for explosion sensetive things, currently only applies to heat based explosions but can later perhaps be used for things that are dangerous to handle carelessly like nitroglycerin.
      • explode_on_attack - Bombs the user after an attack
      • face_decal - Face decal component
      • faction_granter
      • fantasy
      • fertile_egg
      • fish_growth - A simple component that manages raising things from aquarium fish.
      • fishing_spot
      • focused_attacker - Increases our attack damage every time we attack the same target +Not compatible with any other component or status effect which modifies attack damage
      • follow - Follow component
      • food_storage - --Food storage component-- +This component lets you slide one item into large foods, such as bread, cheese wheels, or cakes. +Consuming food storages with an item inside can cause unique interactions, such as eating glass shards.
      • force_move - Forced directional movement, but with a twist +Let's block pressure and client movements while doing it so we can't be interrupted +Supports spinning on each move, for lube related reasons
      • fov_handler - Component which handles Field of View masking for clients. FoV attributes are at /mob/living
      • gas_leaker - A component to leak gas over time from damaged objects with gas storage
      • geiger_sound - Atoms with this component will play sounds depending on nearby radiation
      • germ_sensitive - Makes items infective if left on floor, also sending corresponding signals to parent
      • ghost_direct_control - Component which lets ghosts click on a mob to take control of it
      • ghost_edible - Allows ghosts to eat this by orbiting it +They do this by consuming the reagents in the object, so if it doesn't have any then it won't work
      • glass_passer - Allows us to move through glass but not electrified glass. Can also do a little slowdown before passing through
      • glitch
      • golem_food - Component which allows something to be eaten by a golem
      • gps - GPS component. Atoms that have this show up on gps. Pretty simple stuff.
        • item - GPS component subtype. Only gps/item's can be used to open the UI.
      • grillable
      • Ground sinking component (basicly only for garden gnomes ever at this point) - A basic mob with this component will sink into the ground, once sinked into the ground it will regenerate and +might gain damage resistence. Can be combined with caltrop.
      • growth_and_differentiation
      • gun_safety - Component that will prevent a gun from firing if the safety is turned on
      • gunpoint
      • happiness
      • haunted_item - Makes our item SUPER spooky! +Adds the haunted element and some other bonuses
      • hazard_area - This is a relatively simple component that attempts to deter the parent of the component away +from a specific area or areas. By default it simply applies a penalty where all movement is +four times slower than usual and any action that would affect your 'next move' has a penalty +multiplier of 4 attached.
      • Healing Touch component - A mob with this component will be able to heal certain targets by attacking them. +This intercepts the attack and starts a do_after if the target is in its allowed type list.
      • health_scaling_effects
      • heart_eater
      • heirloom - Heirloom component. For use with the family heirloom quirk, tracks that an item is someone's family heirloom.
      • holderloving
      • ice_cream_holder - Ice Cream Holder: Allows the edible parent object to be used as an ice cream cone (or cup... in a next future).
      • infective
      • interactable
      • interaction_booby_trap - Attached to an atom, creates an explosion when it is interacted with
      • irradiated - This atom is irradiated, and will glow green. +Humans will take toxin damage until all their toxin damage is cleared.
      • itembound - When a movable has this component AND they are in the contents of a container, they will no longer be able to use their hands and be immobilized until they are removed from the container. So far, this is only useful for smites.
      • itempicky - You can only hold whitelisted items
      • jetpack
      • joint_damage
      • jousting - ##jousting
      • keep_me_secure
      • kinetic_crusher
      • knockoff - Items with this component will have a chance to get knocked off +(unequipped and sent to the ground) when the wearer is disarmed or knocked down.
      • leash - Keeps the parent within the distance of its owner as naturally as possible, +but teleporting if necessary.
      • life_link - A mob with this component passes all damage (and healing) it takes to another mob, passed as a parameter +Essentially we use another mob's health bar as our health bar
      • light_eater - Makes anything it attaches to capable of removing something's ability to produce light until it is destroyed
      • ling_decoy_brain - Component applied to ling brains to make them into decoy brains, as ling brains are vestigial and don't do anything
      • liquids_interaction - This element allows for items to interact with liquids on turfs.
      • listen_and_repeat - Simple element that will deterministically set a value based on stuff that the source has heard and will then compel the source to repeat it. +Requires a valid AI Blackboard.
      • Living Heart Component - Applied to a heart to turn it into a heretic's 'living heart'. +The living heart is what they use to track people they need to sacrifice.
      • lock_on_cursor
      • lockable_storage - ##lockable_storage +Adds a UI to the object that triggers when you use it in hand (if item) or attack (everything else). +The UI is a lock that, when unlocked, allows you to access the contents inside of it. +When using this, make sure you have icons for on_update_icon_state.
      • magnet - Attracts items of a certain typepath
      • manual_heart - Manual heart pumping component. Requires the holder to pump their heart manually every +so often or die.
      • marionette - Marionette component
      • martial_art_giver - when equipped and unequipped this item gives a martial art
      • material_container
      • medigun_relocation - Used to handle teleporting if there is a grace period
      • Mind Linker - A component that handles linking multiple player's minds +into one network which allows them to talk directly to one another. +Like telepathy but for multiple people at once!
        • active_linking - Subtype of mind linker (I know) which is more active rather than passive, +which involves the master linking people manually rather than people being added automatically.
      • mindless_killer
      • mob_chain - Component allowing you to create a linked list of mobs. +These mobs will follow each other and attack as one, as well as sharing damage taken.
      • mob_harvest - Harvesting component. Useful if you want to be able to harvest items from living mobs.
      • money_sense - Added whenever the money_sense NIFSoft is active
      • morgue_radio
      • multiple_lives - A simple component that spawns a mob of the same type and transfers itself to it when parent dies. +For more complex behaviors, use the COMSIG_ON_MULTIPLE_LIVES_RESPAWN comsig.
      • mutant_hands
      • mutant_infection
      • netpod_healing
      • nif_examine
      • npc_friendly - Makes a mob friendly with most NPC factions
      • Nuclear Bomb Operator - Component applied to handless non-carbon mobs to allow them to perform the function of a nuclear operative. +Effectively this means they need to be able to:
      • Obeys Commands Component - Manages a list of pet command datums, allowing you to boss it around +Creates a radial menu of pet commands when this creature is alt-clicked, if it has any
      • object_possession - Component that allows a user to control any object as if it were a mob. Does give the user incorporeal movement.
      • off_duty_timer
      • omen - omen.dm: For when you want someone to have a really bad day
        • bible - The bible omen. +While it lasts, parent gets a cursed aura filter.
        • quirk - The quirk omen. Permanent. +Has only a 50% chance of bad things happening, and takes only 25% of normal damage.
        • smite - The smite omen. Permanent.
      • onwear_mood - Add to clothing to give the wearer a mood buff and a unique examine text
      • organ_corruption - Component for Hemophage tumor-induced organ corruption, for the organs +that need to receive the ORGAN_TUMOR_CORRUPTED flag, to corrupt +them properly.
      • overlay_lighting - Movable atom overlay-based lighting component.
      • palette - A component that stores colors for use by painting-related items like spraycans or palettes +which can be accessed through a radial menu by right clicking the item while it's held by the user mob. +Right-clicking a color will open a color input prompt to edit it. Left clicking will instead select it +and call set_painting_tool_color() on the parent for more specific object behavior.
      • parriable_projectile - Add to a projectile to allow it to be parried by mobs with a certain trait (TRAIT_MINING_PARRYING by default)
      • payment - Handles simple payment operations where the cost of the object in question doesn't change.
      • pellet_cloud
      • personal_crafting
      • phylactery
      • pinata - Objects or mobs with this component will drop items when taking damage.
      • pinnable_accessory - This accessory can be pinned onto someone else
      • pixel_shift
      • plane_hide_highest_offset - Component that takes a plane master, and will hide it if it's the highest offset of its kind +This allows us to not show PMs to clients if they're not actively doing anything
      • planet_allergy
      • plumbing
        • acclimator
        • acidic_input - Special connect that we currently use for reaction chambers. Being used so we can keep certain inputs separate, like into a special internal acid container
        • alkaline_input - Special connect that we currently use for reaction chambers. Being used so we can keep certain inputs separate, like into a special internal base container
        • aquarium - Lazily demand from any direction. Overlays won't look good, and the aquarium sprite occupies about the entire 32x32 area anyway.
        • filter - The magical plumbing component used by the chemical filters. The different supply connects behave differently depending on the filters set on the chemical filter
        • hydroponics - Special demand connector that consumes as normal, but redirects water into the magical water space.
        • manifold - Connects different layer of ducts
        • simple_demand - has one pipe input that only takes, example is manual output pipe
        • simple_supply - has one pipe output that only supplies. example is liquid pump and manual input pipe
        • tank - input and output, like a holding tank
      • plundering_attacks - Component that makes basic mobs' melee attacks steal money from the target's ID card. +Plundered money is stored and dropped on death or removal of the component.
      • polarization_controller - A component for windows to allow them to be dynamically rendered opaque / +transparent based on a button press.
      • previous_body - A component that is given to a body when the soul inside is inhabiting a soulcatcher. this is mostly here so that the bodies of souls can be revived.
      • pricetag
      • profound_fisher - component that allows player mobs to play the fishing minigame without a rod equipped, non-player mobs will "pretend" fish
      • puzzgrid - Attaches a puzzgrid to the atom. +You are expected to pass in the puzzgrid, likely from create_random_puzzgrid(). +This is so you can handle when a puzzgrid can't be generated, either because the +config does not exist, or because the config is not set up properly.
      • radiation_countdown - Begins the countdown before a target can be irradiated. +Added by the radiation subsystem when a pulse information has a minimum exposure time. +Will clear itself out after a while.
      • Radioactive Emitter - Simple component that you can attach to something to make it emit radiation pulses over time.
      • radioactive_exposure - For directly applying to carbons to irradiate them, without pulses
      • ranged_attacks - Configurable ranged attack for basic mobs.
      • ranged_mob_full_auto - Allows a mob to autofire by holding down the cursor
      • reagent_clothing
      • reagent_refiller
      • reagent_weapon
      • recharging_attacks - Reduces the cooldown of a given action upon landing attacks, critting, or killing mobs.
      • redirect_attack_hand_from_turf - Will redirect touching the turf it is on with your hand to the attack_hand of the parent object.
      • reflection - A simple-ish component that reflects the icons of movables on the parent like a mirror. +Sadly, there's no easy way to make the SOUTH dir reflection flip the visual so that you can see +the back NORTH dir of a target while it's facing SOUTH beside adding the VIS_INHERIT_DIR flag +to the target movable, which I'm not doing to spare eventual issues with other vis overlays in the future.
      • regenerative_shield - gives the mobs a regenerative shield, it will tank hits for them and then need to recharge for a bit
      • Regenerator component - A mob with this component will regenerate its health over time, as long as it has not received damage +in the last X seconds. Taking any damage will reset this cooldown.
      • religious_tool - Allows the parent to act similarly to the Altar of Gods with modularity. Invoke and Sect Selection is done via attacking with a bible. This means you cannot sacrifice Bibles (you shouldn't want to do this anyways although now that I mentioned it you probably will want to).
      • remote_materials
      • rename - The rename component.
      • respawner
      • revenge_ability - Automatically triggers a linked ability at a target who attacks us. +The ability might not necessarily be on our mob. +Make sure that /datum/element/relay_attackers is also present or you'll never receive the triggering signal.
      • riding - This is the riding component, which is applied to a movable atom by the ridable element when a mob is successfully buckled to said movable.
        • creature
          • human - Yes, I said humans. No, this won't end well...
        • vehicle
          • scooter/skateboard
            • hover - This one lets the rider ignore gravity, move in zero g and son on, but only on ground turfs or at most one z-level above them.
      • rot - Makes a thing rotting, carries with it a start delay and some things that can halt the rot, along with infection logic
      • scope - A component that allows players to use the item to zoom out. Mainly intended for firearms, but now works with other items too.
      • seclite_attachable - Component which allows you to attach a seclight to an item, +be it a piece of clothing or a tool.
      • sect_nullrod_bonus - sect nullrod bonus component; for sekret rite combos
      • security_vision - This component allows you to judge someone's level of criminal activity by examining them
      • seethrough - A component that lets you turn an object invisible when you're standing on certain relative turfs to it, like behind a tree
      • seethrough_mob - A component that lets you turn your character transparent in order to see and click through yourself.
      • shell - Makes an atom a shell that is able to take in an attached circuit.
      • shielded - The shielded component causes the parent item to nullify a certain number of attacks against the wearer, see: shielded vests.
      • shovel_hands - This component lets mobs dig up the floor with their bare hands
      • shrink
      • shuttle_cling - Gets added to all movables that enter hyperspace and are supposed to suffer from "hyperspace drift" +This lets people fly around shuttles during transit using jetpacks, or cling to the side if they got a spacesuit +Dumping into deepspace is handled by the hyperspace turf, not the component. +Not giving something this component while on hyperspace is safe, it just means free movement like carps
      • shy - You can't use items on anyone other than yourself if there are other living mobs around you
      • shy_in_room - You can't use items on anyone other than yourself if you stand in a blacklisted room
      • sign_language - Reactive Sign Language Component for Carbons. Allows Carbons to speak with sign language if they have the relevant traits. +Implements sign language by incrementally overriding several critical functions, variables, and argument lists.
      • simple_access - This component allows us to give a mob access without giving them an ID card.
      • simple_bodycam - Simple component to integrate a bodycam into a mob
      • simple_farm
      • simple_rotation
      • singularity - Things that maybe move around and does stuff to things around them +Used for the singularity (duh) and Nar'Sie
      • sisyphus_awarder - This component awards the sisyphus achievement if you cart a boulder from lavaland to centcom +It's not really reusable but its a component just to encapsulate and destroy the behaviour neatly
      • sizzle
      • sliding_under
      • slime_friends
      • Slip behaviour component - Add this component to an object to make it a slippery object, slippery objects make mobs that cross them fall over. +Items with this component that get picked up may give their parent mob the slip behaviour.
      • smooth_tunes - Smooth tunes component! Applied to musicians to give the songs they play special effects, according to a rite! +Comes with BARTICLES!!!
      • soapbox
      • soul_stealer
      • sound_player - Sound Player component
      • space_camo - Camouflage us when we enter space by increasing alpha and or changing color
      • space_dive - Lets us dive under the station from space
      • space_kidnap - Component that lets us space kidnap people as the voidwalker with our HAAAADS
      • spawner
      • speechmod - Used to apply certain speech patterns +Can be used on organs, wearables, mutations and mobs
      • spin2win
      • spinny - spinny.dm
      • spirit_holding - spirit holding component; for items to have spirits inside of them for "advice"
      • splat
      • splattercasting component! - Component that makes casted spells cost blood from the user and dramatically lowers their cooldown.
      • spy_uplink
      • squashable - This component allows something to be when crossed, for example for cockroaches.
      • squeak
      • stationloving - Teleports the movable atom back to a safe turf on the station if it leaves the z-level or becomes inaccessible.
      • stationstuck
      • status_indicator
      • sticker
      • storm_hating - The parent of this component will be destroyed if it's on the ground during a storm
      • Stove Component - Makes the attached object a stove
        • primitive - Stove component subtype with changed visuals and not much else
      • strong_pull
      • stun_n_cuff
      • style
      • subtype_picker - subtype picker component allows for an item to transform into its subtypes (this is not enforced and you can turn in whatever types, but +i used this name as it was incredibly accurate for current usage of the behavior)
      • summoned_item
      • summoning
      • supermatter_crystal
      • surgery_initiator - Allows an item to be used to initiate surgeries.
      • swabbing
      • tackler - For when you want to throw a person at something and have fun stuff happen
      • tactical - A simple component that replacess the user's appearance with that of the parent item when equipped.
      • takes_reagent_appearance
      • tameable - This component lets you make specific mobs tameable by feeding them
      • tattoo
      • technointrovert - You can't use machines unless they are in a whitelist
      • technoshy - You can't use machines when they've been touched within the last [unused_duration], unless it was by a mob in [whitelist]
      • temporary_body - ##temporary_body
      • temporary_description - Adds examine text to something which is removed when receiving specified signals, by default the revive signal. +The default settings are set up to be applied to a corpse to add some kind of immersive storytelling text which goes away upon revival.
      • temporary_glass_shatterer
      • temporary_pollution_emission
      • temporary_size - Component that temporarily applies a size to a human.
      • tether - Creates a tether between two objects that limits movement range. Tether requires LOS and can be adjusted by left/right clicking its
      • thermite
      • throwbonus_on_windup
      • tippable - Tippable component. For making mobs able to be tipped, like cows and medibots.
      • toggle_attached_clothing - Component which allows clothing to deploy a different kind of clothing onto you. +The simplest example is hooded suits deploying hoods onto your head.
      • toggle_icon
      • torn_wall - Component applied to a wall to progressively destroy it. +If component is applied to something which already has it, stage increases. +Wall is destroyed on third application. +Can be fixed using a welder
      • Trader NPC Component - Manages the barks and the stocks of the traders +Also manages the interactive radial menu
      • traitor_objective_limit_per_time - Helper component to track events on
      • traitor_objective_mind_tracker - Helper component to track events on
      • traitor_objective_register - Helper component that registers signals on an object +This is not necessary to use and gives little control over the conditions
      • transforming
      • trapdoor
      • tree_climber
      • two_hand_reach
      • two_handed - Two Handed Component
      • udder - Udder component; for farm animals to generate milk.
      • unobserved_actor
      • unusual_effect - Creates a cool looking effect on the movable. +In the future, this could be expanded to have more interesting particles and effects.
      • uplink - Uplinks
      • usb_port - Opens up a USB port that can be connected to by circuits, creating registerable circuit components
      • Vacuum Component - Adds a vacuum functionality to an atom, requires a trashbag to be linked +using signals
      • virtual_entity - Handles all special considerations for "virtual entities" such as bitrunning ghost roles or digital anomaly antagonists.
      • vision_hurting - A component that damages eyes that look at the owner
      • vore - REMINDER: This component serves triple duty! +Everyone participating in mechanical vore must have this component for the UI +Preds must have this component to handle their bellies +Prey must have this component to handle the prey panel +Feeders must have this component to handle feeding preys to preds
      • wall_mounted
      • wearertargeting
      • weather_announcer - Component which makes you yell about what the weather is
      • wet_floor
      • wetsuit
    • computer_file
    • config_entry
      • flag
        • allow_admin_asaycolor - allows admins with relevant permissions to have a personalized asay color
        • allow_admin_ooccolor - allows admins with relevant permissions to have their own ooc colour
        • allow_intern_job_tags - Config flag to allow intern tags to be added to ID's
        • allow_respawn - Determines if a player can respawn after dying. +0 / RESPAWN_FLAG_DISABLED = Cannot respawn (default) +1 / RESPAWN_FLAG_FREE = Can respawn +2 / RESPAWN_FLAG_NEW_CHARACTER = Can respawn if choosing a different character
        • allow_rock_the_vote - allow players to vote to re-do the map vote
        • allow_vote_map - allow votes to change map
        • allow_vote_restart - allow votes to restart
        • allow_vote_transfer - Determines if the transfer vote can be started by anyone or not.
        • autoadmin - if autoadmin is enabled
        • autotransfer - Determines if the autotransfer system runs or not.
        • check_vetted - Config to toggle the vetted system
        • default_no_vote - If disabled, non-voters will automatically have their votes added to certain vote options +(For example: restart votes will default to "no restart", map votes will default to their preferred map / default map, rocking the vote will default to "no")
        • disable_quirk_points - Disables Quirk point balancing for the server and clients.
        • donator_legacy_system - Defines whether the server uses the legacy donator system with donators.txt or the SQL system.
        • file_game_log - Whether or not we log game logs to files on the server when we're already logging them on the server, if SQL_GAME_LOG is enabled.
        • forbid_preferences_export - Allows players to export their own preferences as a JSON file. Left as a config toggle in case it needs to be turned off due to server-specific needs.
        • hub - if the game appears on the hub or not
        • log_access - log login/logout
        • log_admin - log admin actions
        • log_adminchat - log admin chat messages
        • log_as_human_readable - Log human readable versions of json log entries
        • log_asset - log assets
        • log_attack - log attack messages
        • log_econ - log economy actions
        • log_emote - log emotes
        • log_game - log game events
        • log_internet_request - Log Music Requests
        • log_job_debug - log roundstart divide occupations debug information to a file
        • log_manifest - log crew manifest to separate file
        • log_mecha - log mech data
        • log_ooc - log messages sent in OOC
        • log_pda - log pda messages
        • log_prayer - log prayers
        • log_say - log client say
        • log_shuttle - log shuttle related actions, ie shuttle computers, shuttle manipulator, emergency console
        • log_silicon - log silicons
        • log_speech_indicators - log speech indicators(started/stopped speaking)
        • log_suspicious_login - Config entry which special logging of failed logins under suspicious circumstances.
        • log_telecomms - log telecomms messages
        • log_timers_on_bucket_reset - logs all timers in buckets on automatic bucket reset (Useful for timer debugging)
        • log_tools - log usage of tools
        • log_traitor - log traitor objectives
        • log_twitter - log certain expliotable parrots and other such fun things in a JSON file of twitter valid phrases.
        • log_uplink - log uplink/spellbook/codex ciatrix purchases and refunds
        • log_virus - log virology data
        • log_vote - log voting
        • log_whisper - log client whisper
        • log_world_topic - log all world.Topic() calls
        • log_zone_switch - log manual zone switching
        • mentor_legacy_system - Defines whether the server uses the legacy mentor system with mentors.txt or the SQL system.
        • mentors_mobname_only - Defines whether or not mentors can see ckeys alongside mobnames.
        • min_flavor_text - Config entry for enabling flavortext min character count, good to disable for debugging purposes
        • no_dead_vote - Prevents dead people from voting.
        • panic_bunker_interview - Flag for requiring players who would otherwise be denied access by the panic bunker to complete a written interview
        • popup_admin_pm - Gives the ability to send players a maptext popup.
        • secure_chat_commands - validate ownership of admin flags for chat commands
        • silicon_asimov_superiority_override - Controls if Asimov Superiority appears as a perk for humans even if standard Asimov isn't the default AI lawset
        • split_threat_budget - Split the threat budget between roundstart and midrounds
        • sql_game_log - Whether or not we log game logs to the SQL database. Requires the SQL database to function, as well as our Skyrat-only table, game_log.
        • use_exp_restrictions_heads - Enables head jobs time restrictions.
        • use_exp_restrictions_other - Enables non-head jobs time restrictions.
        • use_intern_master_job_unlock_threshold - Config flag to tag interns based on whether they unlocked the master job (head position usually)
        • veteran_legacy_system - Defines whether the server uses the legacy veteran system with veteran_players.txt or the SQL system.
      • keyed_list
        • gateway_delays_by_id - An override to gateway_delay for specific maps or start points
      • number
        • event_frequency_lower - Lower value for random events at highpop.
        • event_frequency_upper - Upper value for random events at highpop.
        • flavor_text_character_requirement - Config entry for enabling flavortext min character count, good to disable for debugging purposes
        • intensity_credit_rate - Rate at which high intensity random events are limited to occur.
        • intern_threshold_cargo - Intern time for cargo jobs
        • intern_threshold_command - Intern time for command jobs
        • intern_threshold_engineering - Intern time for engineering jobs
        • intern_threshold_medical - Intern time for medical jobs
        • intern_threshold_science - Intern time for science jobs
        • intern_threshold_security - Intern time for security jobs
        • intern_threshold_service - Intern time for service jobs
        • lobby_countdown - Countdown between lobby and the round starting.
        • map_vote_flat_bonus - The flat amount all maps get by default
        • map_vote_maximum_tallies - The maximum number of tallies a map vote entry can have.
        • map_vote_minimum_tallies - The minimum number of tallies a map vote entry can have.
        • map_vote_tally_carryover_percentage - The number of tallies that are carried over between rounds.
        • max_hub_pop - Pop requirement for the server to be removed from the hub
        • max_positive_quirks - The maximum amount of positive quirks one character can have at roundstart.
        • max_rocking_votes - the number of times we allow players to rock the vote
        • maximum_potential_objectives - Determines how many potential objectives a traitor can have.
        • mundane_point_gain_multiplier - Gamemode related configs below
        • outdated_movedelay - Outdated move delay
        • random_loot_weight_modifier - A config that skews with the random spawners weights +If the value is lower than 1, it'll tend to even out the odds +If higher than 1, it'll lean toward common spawns even more.
        • respawn_delay - Determines how long (in deciseconds) before a player is allowed to respawn.
        • round_end_countdown - Post round murder death kill countdown.
        • seconds_cooldown_for_preferences_export - The number of seconds a player must wait between preference export attempts.
        • sql_game_log_min_bundle_size - The minimum amount of entries there should be in the list of game logs for a mass query to be sent to the database. +Depends on SQL_GAME_LOG being enabled, doesn't mean anything otherwise. +Setting this to a value that's too low risks to severely affect perceptible performance, due to a high amount of +sleeps being involved with running queries.
        • ticket_ping_frequency - Ticket ping frequency. Set 0 for disable that subsystem. 3000 - 5 minutes, 600 - 1 minute.
        • traitor_ideal_player_count - Determines the ideal player count for maximum progression per minute.
        • traitor_scaling_multiplier - Determines how fast traitors scale in general.
        • vote_autotransfer_initial - Length of time before the first autotransfer vote is called (deciseconds, default 2 hours) +Set to 0 to disable the subsystem altogether.
        • vote_autotransfer_interval - length of time to wait before subsequent autotransfer votes (deciseconds, default 30 minutes)
        • vote_autotransfer_maximum - maximum extensions until the round autoends. +Set to 0 to force automatic crew transfer after the 'vote_autotransfer_initial' elapsed. +Set to -1 to disable the maximum extensions cap.
        • vote_delay - minimum time between voting sessions (deciseconds, 10 minute default)
        • vote_period - length of voting period (deciseconds, default 1 minute)
      • str_list - List config entry, used for configuring a list of strings
      • string
        • admin_2fa_url - URL for admins to be redirected to for 2FA
        • autoadmin_rank - the rank given to autoadmins
        • db_daemon - The exe for mariadbd.exe. +Shouldn't really be set on production servers, primarily for EZDB.
        • servername - server name (the name of the game window)
        • serversqlname - short form server name used for the DB
        • stationname - station name (the name of the station in-game)
    • contractor_hub
    • controller
    • coupon_code - datum used by the Coupon Master PDA app to generate coupon items redeemed by a bank account.
    • cracker_reaction
    • crafting_bench_recipe
    • crafting_recipe
      • bottled - Abstract types for all drink recipes that use bottles and result in another bottle, so that the message_in_a_bottle item is properly transferred.
        • holybottle - Non-alcoholic recipes
      • clown_scanner_upgrade - Recipe used for upgrading fake N-spect scanners to bananium HONK-spect scanners
      • food
        • bananacreampie - PIES
        • carrotcake - CAKE
        • donkpocket - DONKPOCCKETS
        • donut - DONUTS
          • jelly/berry - JELLY DONUTS
          • slimejelly/berry - SLIME DONUTS
        • flavorless_sc - SNOW CONES
        • herbsalad - SALADS
        • humanburger - BURGERS
        • humankebab - KEBABS
        • khachapuri - OTHER
        • margheritapizza - PIZZA!!!
        • meatbread - BREAD
        • muffin - MUFFINS
        • orange_popsicle - POPSICLES
        • reaction
        • sandwich - SANDWICHES
        • sausageegg - EGG RECIPE's
        • slimetoast - TOAST
        • spidereggsham - MR SPIDER
        • tempehstarter - MISC RECIPE's
        • tomatopasta - SPAGHETTI
        • waffles - WAFFLES
      • lizardwine - Booze & Bottles
    • crewmonitor
    • crime - Crime data. Used to store information about crimes.
    • ctf_controller - The CTF controller acts as a manager for an individual CTF game, each CTF game should have its own, the controller should handle all game-wide functionality.
    • ctf_team - A datum that holds details about individual CTF teams, any team specific CTF functionality should be implemented here.
    • ctf_voting_controller
    • custom_order - custom order datums +Used for less generic orders (ice cream for example) +without snowflaking venue and customer code too much.
    • customer_data
      • malfunction - MALFUNCTIONING - only shows up once per venue, very rare
      • moth
    • data - Currently used for experiments, vending products.
    • data_rc_msg
    • data_tablet_msg - Log datums stored by the message server.
    • db_query
    • deathmatch_controller
    • deathmatch_lobby
    • deathmatch_modifier - Deathmatch modifiers are little options the host can choose to spice the match a bit.
    • deck_card - A basic interface for creating a card for a deck that isn't just a name.
      • of_type - A /datum/deck_card that just creates a card of the given type
    • decompose_matrix - Datum which stores information about a matrix decomposed with decompose().
    • demoralise_moods - Mood application categories for this objective +Used to reduce duplicate code for applying moods to players based on their state
    • design - Design Datums +All the data for building stuff.
      • alienscalpel - Alien Surgical Tools
      • alienwrench - Alien Tools
      • basic_cell - Power
      • beacon - Bluespace
      • board - Computer Boards
        • aicore - AI Module Disks
        • electrolyzer - MISC Boards
        • ripley_main - Mecha Module Disks
        • subspace_receiver - Subspace Telecomms
      • borg_upgrade_rename - Borg Upgrades
      • c38/sec - Weapons
      • cargo_express - Mining
      • cyberimp_breather - Cybernetic Implants
      • fire_extinguisher_advanced - Tools
      • glucose - Despite being in the medical.dm file, it's still used to fill your hunger up, as such, technically, is food.
      • healthanalyzer - Medical Tools
      • hypokit/deluxe - Hyposprays
      • hypovial/large - Large hypovials
      • implanter - Regular Implants
      • intellicard - Non-Board Computer Stuff
      • leftarm - Designs
      • mech_scattershot - Mecha Equpment
      • milk - Biogenerator Designs
      • pen - For reasons unknown, pens are included as an autolathe design here, in the hypospray module of all places. +I'm not touching this unless a maint asks me to because it feels weird and haunted, like the picture of a potato that bricks Source if you remove it.
      • plasteel_alloy - SMELTABLE ALLOYS
      • portabledrive/basic - Computer Parts
      • rped - Stock Parts
      • surgery - Surgery Designs
      • tarkonpowerator - Bubber added Tarkon Tech
      • tech_disk - Disk Construction Disks
      • wall_mounted_space_heater - Space heater, but it mounts on walls
    • dimension_theme - Datum which describes a theme and replaces turfs and objects in specified locations to match that theme
    • discord_embed - Documentation for the embed object and all of its variables can be found at +https://discord.com/developers/docs/resources/channel#embed-object +It is recommended to read the documentation on the discord website, as the information below could become outdated in the future.
    • discord_link_record - Represents a record from the discord link table in a nicer format
    • disease
    • dna - DNA DATUM
    • dog_fashion
    • dream - Contains all the behavior needed to play a kind of dream. +All dream types get randomly selected from based on weight when an appropriate mobs dreams.
      • hear_something - Dream plays a random sound at you, chosen from all sounds in the folder
      • random - The classic random dream of various words that might form a cohesive narrative, but usually wont
    • drift_handler - Component that handles drifting +Manages a movement loop that actually does the legwork of moving someone +Alongside dealing with the post movement input blocking required to make things look nice
    • ductnet - We handle the unity part of plumbing. We track who is connected to who.
    • duel
    • dynamic_ruleset
      • latejoin
        • provocateur
        • stowaway_changeling - Ruleset for latejoin changelings
      • midround - Midround Rulesets
        • dangerous_pirates - Dangerous Space Pirates ruleset
        • from_ghosts
          • blob - Midround Blob Ruleset (From Ghosts)
          • changeling_midround - Midround Space Changeling Ruleset (From Ghosts)
          • cortical_borer
          • nightmare - Midround Nightmare Ruleset (From Ghosts)
          • nuclear - Midround Nuclear Operatives Ruleset (From Ghosts)
          • paradox_clone - Midround Paradox Clone Ruleset (From Ghosts)
          • revenant - Midround Revenant Ruleset (From Ghosts)
          • space_dragon - Midround Space Dragon Ruleset (From Ghosts)
          • space_ninja - Midround Space Ninja Ruleset (From Ghosts)
          • voidwalker - Midround Voidwalker Ruleset (From Ghosts)
          • wizard - Midround Wizard Ruleset (From Ghosts)
          • xenomorph - Midround Xenomorph Ruleset (From Ghosts)
        • from_living - subtype to handle checking players
          • autotraitor - Midround Traitor Ruleset (From Living)
          • blob_infection - Midround Blob Infection Ruleset (From Living)
          • obsessed - Midround Obsessed Ruleset (From Living)
        • malf - Midround Malf AI Ruleset (From Living)
        • pirates - Midround Space Pirates Ruleset (From Ghosts)
        • spiders - Midround Spiders Ruleset (From Ghosts)
      • roundstart
    • dynamic_snapshot - A "snapshot" of dynamic at an important point in time. +Exported to JSON in the dynamic.json log file.
    • dynamic_snapshot_ruleset - A ruleset chosen during a snapshot
    • effect_system
      • fluid_spread - A factory which produces fluid groups.
        • foam - A factory for foam fluid floods.
          • firefighting - A factory which produces firefighting foam
          • long - A factory which produces foam with an extended lifespan.
          • metal - A factory which produces aluminium metal foam.
            • iron - A factory which produces iron metal foam.
            • smart - A factory which produces smart aluminium metal foam.
        • smoke - A factory which produces clouds of smoke.
          • bad - A factory which produces smoke that makes you cough.
            • black - A factory which produces black smoke that makes you cough.
            • green - A factory which produces green smoke that makes you cough.
          • chem - A factory which produces clouds of chemical bearing smoke.
            • smoke_machine - A factory which produces clouds of smoke for the smoke machine.
          • colourful - Spawns randomly coloured smoke
          • freezing - A factory which produces light blue, transparent smoke and a blast that chills every turf in the area.
            • decon - A variant of the base freezing smoke formerly used by the vent decontamination event.
          • quick - A factory which produces smoke that dissipates as quickly as possible.
          • sleeping - A factory which produces sleeping smoke.
          • transparent - Same as the base type, but the smoke produced is not opaque
      • reagents_explosion
      • trail_follow - ///// Attach a trail to any object, that spawns when it moves (like for the jetpack) +just pass in the object to attach it to in set_up +Then do start() to start it and stop() to stop it, obviously +and don't call start() in a loop that will be repeated otherwise it'll get spammed!
    • eigenstate_manager - A singleton used to teleport people to a linked web of itterative entries. If one entry is deleted, the 2 around it will forge a link instead.
    • element - A holder for simple behaviour that can be attached to many different types
      • ai_control_examine - ai control examine; which gives the pawn of the parent the noticable organs depending on AI status!
      • ai_flee_while_injured - Attached to a mob with an AI controller, simply sets a flag on whether or not to run away based on current health values.
      • AI Held Item Element - Manages holding an item for a mob which doesn't have hands but needs to for AI purposes.
      • ai_retaliate - Attached to a mob with an AI controller, passes things which have damaged it to a blackboard. +The AI controller is responsible for doing anything with that information.
      • ai_swap_combat_mode - Attached to a mob with an AI controller, updates combat mode when the affected mob acquires or loses targets
      • ai_target_damagesource - Attached to a mob with an AI controller, sets the blackboard current target to the most recent thing to attack this mob. +The AI controller is responsible for doing anything with that information.
      • airbag - Airbag Element
      • Animal variety element! - Element that picks an suffix to append onto the icon state from a list given on creation, +among some pixel shifting stuff. Basically you will see VARIETY in a batch of animals.
      • atmos_requirements
      • attack_equip - Attached to an item, when the item is used to attack a human, and the attacker isn't in combat mode, attempts to equip the item to the target after the normal delay.
      • attack_zone_randomiser - Pick a random attack zone before you attack something
      • backblast - When attached to a gun and the gun is successfully fired, this element creates a "backblast", like you'd find in a rocket launcher or recoilless rifle
      • bane - Deals extra damage to mobs of a certain type, species, or biotype. +This doesn't directly modify the normal damage of the weapon, instead it applies its own damage separately ON TOP of normal damage +ie. a sword that does 10 damage with a bane element attached that has a 0.5 damage_multiplier will do: +10 damage from the swords normal attack + 5 damage (50%) from the bane element
      • basic_eating
      • basic_health_examine - A simple element for basic mobs that prints out a custom damaged state message
      • beauty - Beauty element. It makes the indoor area the parent is in prettier or uglier depending on the beauty var value. +Clean and well decorated areas lead to positive moodlets for passerbies; +Shabbier, dirtier ones lead to negative moodlets EXCLUSIVE to characters with the snob quirk.
      • bed_tuckable - Tucking element, for things that can be tucked into bed.
      • Befriend Petting - Element which makes a mob befriend you if you pet it enough.
      • block_turf_fingerprints
      • blocks_explosives - Apply this element to a movable atom when you want it to block explosions +It will mirror the blocking down to that movable's turf, keeping explosion work cheap
      • body_temp_sensitive - When attached to a basic mob, it gives it the ability to be hurt by cold/hot body temperatures
      • bombable_turf - Apply this to a turf (usually a wall) and it will be destroyed instantly by any explosion. +Most walls can already be destroyed by explosions so this is largely for usually indestructible ones. +For applying it in a map editor, use /obj/effect/mapping_helpers/bombable_wall
      • bonus_damage - Attached to a mob that will then deal bonus damage to a victim with low, or potentially in the future, high health.
      • bugkiller_reagent - Simple element to be applied to reagents +When those reagents are exposed to mobs with the bug biotype, causes toxins damage +If this delivers the killing blow on a non-humanoid mob, it applies a special status effect that does a funny animation
      • bump_click - Bump click bespoke element
      • can_barricade
      • can_shatter - When attached to something, will make that thing shatter into shards on throw impact or z level falling +Or even when used as a weapon if the 'shatters_as_weapon' arg is TRUE
      • caseless - An element that deletes the casing when fired and, if reusable is true, adds the projectile_drop element to the bullet. +Just make sure to not add components or elements that also use COMSIG_FIRE_CASING after this one. +Not compatible with pellets (how the eff would that work in a senible way tho?).
      • change_force_on_death - Element to change a mob's move forces on death and reset them on living
      • chemical_transfer
      • chewable - Anything with this element will provide the reagents inside the +item to the user when it is equipped.
      • cliff_walking - Lets a mob walk cliffs and keeps track of if they're alive or not to add/remove the trait
      • climbable
      • clockwork_description
      • clockwork_pickup
      • clockwork_structure_info
      • connect_loc - This element hooks a signal onto the loc the current object is on. +When the object moves, it will unhook the signal and rehook it to the new object.
      • consumable_mob - element for mobs that can be consumed!
      • content_barfer - Content Barfer; which expels the contents of a mob when it dies, or is transformed
      • contextual_screentip_bare_hands - Apply basic contextual screentips when the user hovers over this item with an empty hand. +A "Type B" interaction. +This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
      • contextual_screentip_item_typechecks - Apply basic contextual screentips when the user hovers over this item with a provided item. +A "Type B" interaction. +This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
      • contextual_screentip_mob_typechecks - Apply basic contextual screentips when a user of a specific typepath hovers over us. +A "Type B" interaction. +This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
      • contextual_screentip_sharpness - Apply basic contextual screentips when the user hovers over this item with an item of the given tool behavior. +A "Type B" interaction. +This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
      • contextual_screentip_tools - Apply basic contextual screentips when the user hovers over this item with an item of the given tool behavior. +A "Type B" interaction. +This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
      • corrupted_organ - Component applying shared behaviour by cursed organs granted when sacrificed by a heretic +Mostly just does something spooky when it is removed
      • crackable - Adds crack overlays to an object when integrity gets low
      • crusher_loot - Crusher Loot; which makes the attached mob drop a crusher trophy of some type if the majority damage was from a crusher!
      • cuffsnapping - cuffsnapping element replaces the item's secondary attack with an aimed attack at the kneecaps under certain circumstances.
      • Cult eyes element - Applies and removes the glowing cult eyes
      • Cult halo element - Applies and removes the cult halo
      • cultist_pet
      • curse announcement element! - Bespoke element that sends a harrowing message when you first pick up an item, applying a spooky color outline and renaming the item. +For most items, it will announce when picked up. If the item can be equipped, though, it will only announce when the item is worn. +Possible improvements for the future: add an option to allow the cursed affix to be a prefix. right now only coded for suffixes
      • cursed element! - Attaching this element to something will make it float, and get a special ai controller!
      • damage_threshold - Applied to living mobs. +Adds a force threshold for which attacks will be blocked entirely. +IE, if they are hit with an attack that deals less than X damage, the attack does nothing.
      • dangerous_surgical_removal
      • death_drops
      • death_explosion
      • death_gases
      • decal
      • delete_on_drop - Attaches to an item, if that item is dropped on the floor delete it
      • deliver_first
      • dextrous - Sets up the attachee to have hands and manages things like dropping items on death and displaying them on examine +Actual hand performance is managed by code on /living/ and not encapsulated here, we just enable it
      • diggable - Lets you make hitting a turf with a shovel pop something out, and scrape the turf
      • disarm_attack - An element that allows items to be used to shove people around just like right-clicking would.
      • door_pryer - Attached to a basic mob. +Causes attacks on doors to attempt to open them.
      • drag_pickup - drag_pickup element; for allowing things to be picked up by dragging.
      • dryable
      • dusts_on_catatonia
      • effect_trail
      • elevation - Manages the elevation of the turf the source is on (can be the turf itself) +The atom with the highest pixel_shift gets to set the elevation of the turf to that value.
      • elevation_core - The core element attached to the turf itself. Do not use this directly!
      • embed
      • envenomable_casing
      • eyestab - An element that lets you stab people in the eyes when targeting them
      • falling_hazard - An element that will make a target thing do damage to any mob that it falls on from a z-level above
      • firestacker - Can be applied to /atom/movable subtypes to make them apply fire stacks to things they hit
      • fish_safe_storage - An element that puts in stasis any fish that enters the atom.
      • floor_loving - Prevents a movable atom from moving to somewhere which isn't an open turf with floor on it
      • food_trash
      • foodlike_drink - This element can be attached to a reagent container to make it loop after drinking like a food item
      • footstep - Footstep element. Plays footsteps at parents location when it is appropriate.
      • footstep_override - When attached, the footstep sound played by the footstep element will be replaced by this one's
      • forced_gravity
      • fried_item - Items fried through the deep fryer.
      • frozen - simple element to handle frozen obj's
      • gags_recolorable - An element that lets players recolor the item through the greyscale menu with the help of a spraycan.
      • give_turf_traits - A bespoke element that adds a set of traits to the turf while occupied by at least one attached movabled.
      • glass_pacifist - Prevents the living from attacking windows
      • gravedigger - Gravedigger element. Allows for graves to be dug from certain tiles
      • grilled_item - Items grilled through the grill.
      • gun_launches_little_guys - An element that makes guns throw their user back if they are just a little guy
      • mobs that can wear hats!
      • haunted - Attaching this element to something will make it float, get a special ai controller, and gives it a spooky outline.
      • heretic_focus - Heretic focus element, simple element for making an item a heretic focus, +allowing heretics to cast advanced spells (examine message included).
      • High Fiver Element - Attach to an item to make it offer a "high five" when offered to people
      • honkspam - Attachable to items. Plays a bikehorn sound whenever attack_self is called (with a cooldown).
      • hostile_machine - AIs will attack this as a potential target if they see it
      • human_biter - Allows carbons with heads to attempt to bite mobs if attacking with cuffed hands / missing arms
      • immerse - A visual element that makes movables entering the attached turfs look immersed into that turf.
      • item_fov - An element to unconditonally add a FOV trait to the wearer, removing it when an item is unequipped
      • item_scaling - Element for scaling item appearances in the overworld or in inventory/storage.
      • kneecapping - Kneecapping element replaces the item's secondary attack with an aimed attack at the kneecaps under certain circumstances.
      • kneejerk - An element which enables certain items to tap people on their knees to measure brain health
      • knockback - Mobs and items with this element will knock movable targets they hit away from them. +Guns and turrets will instead fire projectiles with similar effects.
      • lazy_fishing_spot - Lazy fishing spot element so fisheable turfs do not have a component each since +they're usually pretty common on their respective maps (lava/water/etc)
      • leeching_walk - Buffs and heals the target while standing on rust.
      • lifesteal - Heals the user (if attached to an item) or the mob itself (if attached to a hostile simple mob) +by a flat amount whenever a successful attack is performed against another living mob.
      • light_blocking - Attached to movable atoms with opacity. Listens to them move and updates their old and new turf loc's opacity accordingly.
      • light_eaten - Makes anything that it attaches to incapable of producing light
      • light_eater - Makes anything it attaches to capable of permanently removing something's ability to produce light.
      • liquids_height - Liquid Height element; for dynamically applying liquid blockages.
      • living_limb_initialiser - Spawns a living limb mob inside a limb upon attachment if it doesn't have one
      • loomable - Element that makes items turn into other items when you use them on a loom (or any other thing really if you change the var)
      • lube_walking - Makes a mob cause a turf to get wet as they walk, requires lying down. +Has configurable args for wet flags, time, and resting requirements.
      • manufacturer_examine - Element that will tell anyone who examines the parent what company made it
      • microwavable - Atoms that can be microwaved from one type to another.
      • mirage_border - Creates a mirage effect allowing you to see around the world border, by adding the opposite side to its vis_contents.
      • mob_access - element given to mobs that have levels of access
      • mob_grabber - Grab onto mobs we attack
      • mob_killed_tally - Mob Killed Tally; which ticks up a blackbox when the mob dies
      • movement_turf_changer - movement_turf_changer element; which makes the movement of a movable atom change the turf it moved to
      • movetype_handler - An element that enables and disables movetype bitflags whenever the relative traits are added or removed. +It also handles the +2/-2 pixel y anim loop typical of mobs possessing the FLYING or FLOATING movetypes. +This element is necessary for the TRAIT_MOVE_ traits to work correctly, so make sure to attach this element +before adding them to non-living movables.
      • nerfed_pulling - This living will be slower when pulling/moving anything in the given typecache
      • nifsoft_hud
      • no_crit_hitting - Stops a mob from hitting someone in crit. doesn't account for projectiles or spells
      • noticable_organ - noticable organ element; which makes organs have a special description added to the person with the organ, if certain body zones aren't covered.
        • ai_control - Subtype of noticable organs for AI control, that will make a few more ai status checks before forking over the examine.
      • obj_regen - Object integrity regeneration element added by alien alloy.
      • on_hit_effect
      • only_pull_living - Element for only letting a living pull other livings
      • openspace_item_click_handler - allow players to easily use items such as iron rods, rcds on open space without +having to pixelhunt for portions not occupied by object or mob visuals.
      • organ_set_bonus - organ set bonus element; which makes organs in the same set, all in one person, provide a unique bonus!
      • perma_fire_overlay - When applied to a mob, they will always have a fire overlay regardless of if they are actually on fire.
      • Pet bonus element! - Bespoke element that plays a fun message, sends a heart out, and gives a stronger mood bonus when you pet this animal. +I may have been able to make this work for carbons, but it would have been interjecting on some help mode interactions anyways.
      • plant_backfire - -- Plant backfire element -- +Certain high-danger plants, like death-nettles, will backfire and harm the holder if they're not properly protected. +If a user is protected with something like leather gloves, they can handle them normally. +If they're not protected properly, we invoke a callback on the user, harming or inconveniencing them.
      • point_of_interest - Designates the atom as a "point of interest", meaning it can be directly orbited
      • pollution_emitter
      • poster_tearer - Allows mobs with this element attached to just simply tear down any poster they desire to.
      • prevent_attacking_of_types - This hostile will not be able to attack a given typecache, and will receive +a balloon alert when it tries to.
      • processable
      • proficient_miner - element given to mobs that can mine when moving
      • projectile_drop - A simple element that spawns an atom when the bullet hits an object or reaches the end of its range +If the projectile has embedding and it can embed into the target, then it won't spawn the drop, +since embedding the embed element already handles that.
      • projectile_shield
      • quality_food_ingredient - An element that adds extra food quality to any edible that was made from an atom with this attached.
      • radiation_protected_clothing - Marks the item as being radiation protected. +Adds the TRAIT_RADIATION_PROTECTED_CLOTHING trait, as well as adding an +extra bit to the examine descrpition.
      • radioactive - This atom will regularly pulse radiation.
      • ranged_armour - Reduces or nullifies damage from ranged weaponry with force below a certain value
      • relay_attackers - This element registers to a shitload of signals which can signify "someone attacked me". +If anyone does it sends a single "someone attacked me" signal containing details about who done it. +This prevents other components and elements from having to register to the same list of a million signals, should be more maintainable in one place.
      • repackable - An element that allows objects to be right clicked and turned into another item after a delay
      • ridable - This element is used to indicate that a movable atom can be mounted by mobs in order to ride it. The movable is considered mounted when a mob is buckled to it, +at which point a riding component is created on the movable, and that component handles the actual riding behavior.
      • rsd_interface
      • rust - Adding this element to an atom will have it automatically render an overlay. +The overlay can be specified in new as the first paramter; if not set it defaults to rust_overlay's rust_default
        • heretic - For rust applied by heretics
      • sedated_mob - Attached to a mob with an AI controller, if this mob is attacked then it will replace the AI controller.
      • series
      • sideway_movement - A simple element that forces the mob to face a perpendicular direction when moving, like crabs.
      • simple flying element! - Non bespoke element (1 in existence) that makes animals fly while living and... not while dead! +Note: works for carbons and above, but please do something better. humans have wings got dangit!
      • skill_reward - An element that forbids mobs without a required skill level from equipping the item.
        • veteran - Welp, the code is pretty much the same, except for one tiny detail, I suppose it's ok to make a subtype of this element. +That tiny detail is that we don't check for skills, but if the player has played for thousands of hours.
      • slapcrafting - Slapcrafting component!
      • soft_landing
      • squish - squish.dm
      • squish_sound - Plays a sound when walked into, lower sounding if the person walking into it has light stepping.
      • strippable - An element for atoms that, when dragged and dropped onto a mob, opens a strip panel.
      • structure_repair - Intercepts attacks from mobs with this component to instead repair specified structures.
      • swabable
      • temporary_atom - Deletes the atom with a little fading out animation after a specified time
      • tenacious - tenacious element; which makes the parent move faster while crawling
      • tiny_mob_hunter - Deals bonus brute damage to smaller mobs
      • tool_flash - Tool flash bespoke element
      • tool_renaming - Renaming tool element
      • toy_talk - Allows people to talk via the item with .l or .r
      • tumor_corruption - Element that handles spreading the Hemophages' pulsating tumor corruption +to applicable organs, so that they can be properly corrupted, even if they +weren't roundstart-corrupted organs.
      • turf_z_transparency
      • undertile - Add to an object if you want to be able to be hidden under tiles
      • Unfriend Attacker - Element which makes a mob remove you from its friends list you if you hurt it. +Doesn't make a callout post because we don't have twitter integration.
      • update_icon_blocker - Prevents calling anything in update_icon() like update_icon_state() or update_overlays()
      • update_icon_updates_onmob
      • uplink_reimburse - Uplink Reimburse element. +When element is applied onto items, it allows them to be reimbursed if an user pokes an item with a uplink component with them.
      • venomous - Venomous element; which makes the attacks of the simplemob attached poison the enemy.
      • venue_price - This component can be used to give something value for venues
      • volatile_gas_storage - An element to make an /obj explode based on gas pressure when broken
      • wall_engraver - An element that lets you engrave walls when right click is used
      • Wall Smasher - An element you put on mobs to let their attacks break walls +If put in the hands of a player this can cause a lot of problems, be careful
      • wall_tearer - Allows attached mobs to destroy walls over time, a little less unreasonable than the instant wall deletion of wall_smasher
      • wall_walker - This element will allow the mob it's attached to to pass through a specified type of wall, and drag anything through it.
      • weapon_description - The purpose of this element is to widely provide the ability to examine an object and determine its stats, with the ability to add +additional notes or information based on type or other factors
      • wearable_client_colour - An element that adds a client colour to the wearer when equipped to the right slot, under the right conditions.
      • wears_collar
      • weather_listener - This element just handles creating and destroying an area sound manager that's hooked into weather stuff
      • Web Walker element - A mob with this element will move more slowly when it's not stood on a webbed turf.
      • wheel - Element which spins you as you move
      • Window Smashing - An element you put on mobs to let them smash through walls on movement +For example, throwing someone through a glass window
    • embed_data
      • esword - Energy swords.
    • Emote - Most of the text that's not someone talking is based off of this.
      • living
        • carbon/human/monkey - Snowflake emotes only for le epic chimp
        • mark_turf
        • yawn
      • slime/mood
    • equilibrium
    • ert
    • escape_menu
    • event_admin_setup - Datum that holds a proc for additional options when running an event. +Prototypes are declared here, non-prototypes on the event files.
      • anomaly_ectoplasm
      • carp_migration
      • input_number
      • listed_options - A very common pattern is picking from a tgui list input, so this does that. +Supply a list in get_list and prompt admins will have the admin pick from it or cancel.
        • departmental_revolt - which department is revolting?
        • disease_outbreak - Handles actually selecting whicch disease will spawn.
        • disease_outbreak_advanced/severity - Admin virus customization
      • mass_hallucination
      • minimum_candidate_requirement - For events that mandate a set number of candidates to function
        • disease_outbreak - Handles checking and alerting admins about the number of valid candidates
      • multiple_choice
      • question - For events that require a true/false question
        • departmental_revolt_annouce - Announce the separatist nation to the round?
        • departmental_revolt_dangerous - Is it going to try fighting other nations?
        • immovable_rod - Admins can also force it to loop around forever, or at least until the RD gets their hands on it.
      • set_location
        • immovable_rod - Admins can pick a spot the rod will aim for
      • syndicate_cargo_pod
      • text_input - For admin setups that want a custom string. Suggests what the event would have picked normally.
      • warn_admin - Some events are not always a good idea when a game state is in a certain situation. +This runs a check and warns the admin.
    • events
    • examine_panel
    • excited_group - EXCITED GROUPS
    • exoscan - Represents scan in progress, only one globally for now, todo later split per z or allow partial dish swarm usage
    • Experiment - This is the base datum for experiments, storing the base definition.
      • exploration_scan/random
      • ordnance - A ordnance experiment datum. What gives the science in the first place. +One is instantiated by the techweb, another one is also kept on SSresearch for the briefing. +A disk should contain several of these in a list. Only one should get picked for the final paper.
      • physical
      • Scanning Experiment - This is the base implementation of scanning experiments.
        • fish - A special scanning experiment that unlocks further settings for the fishing portal generator. +Mainly as an inventive solution to many a fish source being limited to maps that have it, +and to make the fishing portal generator a bit than just gubby and goldfish.
        • people - An experiment where you scan your fellow humans
          • android - Scan an android
          • augmented_organs - Scan for cybernetic organs
          • mutant - Scan a person with any mutation
          • novel_organs - Scan for organs you didn't start the round with
          • skillchip - Scan for skillchips
        • points
          • machinery_pinpoint_scan
          • machinery_tiered_scan - This experiment type will turn up TRUE if at least one of the stock parts in the scanned machine is of the required_tier. +Pretend to upgrade security's techfab but in reality apply only one better matter bin! +Note that a stock part in a machine can either be an object, or a datum.
        • random
        • reagent - An experiment where you scan a container with a specified reagent of certain purity
    • exploration_event - Exploration event
      • adventure - Adventure wrapper event
      • fluff - Just a message in the log nothing more
      • simple - Simple events, not a full fledged adventure, consist only of single encounter screen
        • danger - Danger event - unskippable, if you have appriopriate tool you can mitigate damage.
          • carp - Danger events
            • surface_variety - They get everywhere
        • resource - Simple event type that checks if you have a tool and after a retrieval delay adds loot to drone.
          • concealed_cache - Resource Events
        • trader - Trader events - If drone is loaded with X exchanges it for Y, might require translator tool.
          • vendor_ai - Trade events
    • exploration_site - Exploration site, drone travel destination representing interesting zone for exploration.
      • abandoned_refueling_station - Sites
    • export
      • food - Original Food export file got eaten somewhere along the line and I have no idea when or where it got completely deleted. +Foods given a venue value are exportable to cargo as a backup to selling from venues, however at the expense of elasticity.
      • large/gas_canister - Gas canister exports. +I'm going to put a quick aside here as this has been a pain to balance for several years now, and I'd like to at least break how to keep gas exports tame. +So: Gasses are sold in canisters below, which have a variable amount of maximum pressure before they start to break. The largest of which is 9.2e13 kPa. +This means we can determine a theoretical maximum value for gas sale prices using the ideal gas laws, as we know we have a minimum gas temperature of 2.7 kelvin.
      • photocopy
      • pirate
    • export_report
    • fantasy_affix
      • bane - Good suffixes
      • fool - Bad suffixes
    • fax_panel_interface - Admin Fax Panel. Tool for sending fax messages faster.
    • feed_channel
    • feed_comment
    • feed_message
    • feed_network
    • fish_evolution - Fish evolution datums
      • dummy/two - This is used by both fish_evolution and fish_growth unit tests.
    • fish_movement - Fish movements are simple datums, generated by the fishing minigame, that represent how the fish moves suring the minigame.
      • accelerando - fish movement datum that progressively gets faster until acceleration and velocity are double the starting ones.
      • choppy - Fish movement datum that updates the fish position twice per second.
      • plunger - Fish movement datum that weakly pushes the fish up and then down with greater force once it reaches the top of the minigame.
      • slow - Generic fish movement datum that only performs slow, uninterrupted long jumps
      • zippy - Generic fish movement datum with triple the short jump chance.
    • fish_source - Where the fish actually come from - every fishing spot has one assigned but multiple fishing holes +can share single source, ie single shared one for ocean/lavaland river
      • portal
        • random - A special portal fish source which fish table is populated on init with the contents of all +portal fish sources, except for FISHING_DUD, and a couple more caveats.
        • syndicate - Unlocked by emagging the fishing portal generator with an emag.
      • water_basin - Fishing source for fishing out of basins that have been upgraded, contains saltwater fish (lizard fish fall under this too!)
    • fish_trait
      • anxiety - Anxiety means the fish will die if in a location with more than 3 fish (including itself) +This is just barely enough to crossbreed out of anxiety, but it severely limits the potential of
      • no_mating - Useful for those species with the parthenogenesis trait if you don't want them to mate with each other, +or for similar shenanigans, I don't know. +Otherwise you could just set the stable_population to 1.
      • recessive - Prevent offsprings of fish with this trait from being of the same type (unless self-mating or the partner also has the trait)
    • fishing_challenge
    • fluid_group - SMOKE SYSTEMS +A group of fluid objects.
    • font - A font datum, it exists to define a custom font to use in a span style later.
      • grand9k - For clean results on map, use only sizing pt, multiples of 6: 6pt 12pt 18pt 24pt etc. - Not for use with px sizing +Can be used in TGUI etc, px sizing is pt / 0.75. 6pt = 8px, 12pt = 16px etc. +Base font
        • size_6pt - For icon overlays +Grand9K 6pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus) +Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
      • pixellari - For clean results on map, use only sizing pt, multiples of 12: 12pt 24pt 48pt etc. - Not for use with px sizing +Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc. +Base font
        • size_12pt - For icon overlays +Pixellari 12pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus) +Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
      • spessfont - For clean results on map, use only sizing pt, multiples of 6: 6t 12pt 18pt etc. - Not for use with px sizing +Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc. +Base font
        • size_6pt - For icon overlays +Spess Font 6pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus) +Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
      • tiny_unicode - For clean results on map, use only sizing pt, multiples of 12: 12pt 24pt 48pt etc. - Not for use with px sizing +Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc. +Base font
        • size_12pt - For icon overlays +TinyUnicode 12pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus) +Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
    • food_prefs_menu
    • food_processor_process
    • force_event - Force Event Panel
    • foreign_calendar
    • forensics - Forensics datum
    • gas
    • gas_machine_connector - To be used when there is the need of an atmos connection without repathing everything (eg: cryo.dm)
    • gas_mixture
    • gas_reaction
    • gas_recipe
    • gateway_destination - Corresponds to single entry in gateway control.
    • glass_style
      • has_foodtype
        • soup/watery_soup - This style runs dual purpose - +Primarily it's just a bowl style for water, +but secondarily it lets chefs know if their soup had too much water in it
    • global_funny_embedding
      • pointy - everything will be... POINTY!!!!
      • sticky - everything will be... sticky? sure, why not
    • golem_food_buff - An effect you gain from eating minerals
      • glass - Can eat at any time, but isn't very nutritious
      • iron - More filling, and heals you
    • grand_finale - A big final event to run when you complete seven rituals
      • all_access - Open all of the doors
      • armageddon - Kill yourself and probably a bunch of other people
      • cheese - Gives the wizard a defensive/mood buff and a Wabbajack, a juiced up chaos staff that will surely break something. +Everyone but the wizard goes crazy, suffers major brain damage, and is given a vendetta against the wizard. +Already insane people are instead cured of their madness, ignoring any other effects as the station around them loses its marbles.
      • clown - Dress the crew as magical clowns
      • immortality - Nobody will ever die ever again +Or if they do, they will be back
      • magic - Give everyone magic items, its so simple it feels pointless to give it its own file
      • midas - Completely transform the station
      • usurp - Become the official Captain of the station
    • grand_side_effect - Describes something which can happen in a local area when the grand ritual is completed.
      • create_anomalies - Spawn some anomalies in the area, ones which are not too dangerous
      • create_food - Rain food in the area
      • emp - EMP nearby machines
      • gore - Make a bloody mess
      • orchestra - Provides musical accompaniment
      • scramble_turfs - Casts dimensional instability on the area
      • slippery - Spawn lube in the area
      • smoke - Create colourful smoke
      • spawn_delayed_mobs - Spawn some mobs after a delay
      • spell - A side effect which just casts a spell at its position
      • summon_crewmate - Grabs one person and pulls them to this location, after a delay
      • translocate - Swap locations of nearby mobs arbitrarily and confuse them
      • transmogrify_area - Transform the surrounding area into something else.
    • greyscale_config - A datum tying together a greyscale configuration and dmi file. Required for using GAGS and handles the code interactions.
    • greyscale_layer
      • color_matrix - A layer to modify the previous layer's colors with a color matrix
      • icon_state - The most basic greyscale layer; a layer which is created from a single icon_state in the given icon file
      • reference - A layer created by using another greyscale icon's configuration
    • greyscale_modify_menu - The controller for the ui in charge of all runtime greyscale configuration/debug. +If Unlock() is not called the menu is safe for players to use.
      • spray_paint - Used for spray painting items in the gags_recolorable component
    • guardian_fluff - Defines a theme used by guardian mobs for visuals and some text output +The default is used for ones created by wizards
      • carp - Used by holocarp spawned by admins
      • miner - Used by powerminers found in necropolis chests
      • tech - Used by holoparasites in the Traitor uplink
    • gutlunch_inherited_stats - stats we inherit from the parent
    • Hallucination datum. - Handles effects of a hallucination on a living mob. +Created and triggered via the [cause hallucination proc][/mob/living/proc/cause_hallucination].
      • battle - Battle hallucination, makes it sound like a melee or gun battle is going on in the background.
        • bomb - A hallucination of a syndicate bomb ticking down.
        • e_sword - A hallucination of someone unsheathing an energy sword, going to town, and sheathing it again.
        • gun - Subtype of battle hallucination for gun based battles, where it sounds like someone is being shot.
          • disabler - Gun battle hallucination that sounds like disabler fire.
          • laser - Gun battle hallucination that sounds like laser fire.
        • harm_baton - A hallucination of someone being stun batonned, and subsequently harmbatonned.
        • stun_prod - A hallucination of someone being hit with a stun prod, followed by cable cuffing.
      • body - Makes a random body appear and disappear quickly in view of the hallucinator.
      • bolts
      • chat - Sends a fake chat message to the hallucinator.
      • death
      • delusion - A hallucination that makes us and (possibly) other people look like something else.
        • custom - Used for making custom delusions.
        • preset
          • mare - Hallucination used by the nightmare vision goggles to turn everyone except you into mares
          • moon - Hallucination used by the path of moon heretic to turn everyone into a lunar mass
      • fake_alert - Fake alert hallucination. Causes a fake alert to be thrown to the hallucinator.
      • fake_flood - Plasma starts flooding from the nearby vent
      • fake_health_doll - Causes the target to see incorrect health damages on the healthdoll
      • fake_item - Hallucinates a fake item in our hands, pockets, or belt or whatever.
      • fake_sound - Hallucination that plays a fake sound somewhere nearby.
      • fire
      • hazard - Hallucinations that create a hazard somewhere nearby that actually has a danger associated.
      • ice - Causes the hallucinator to believe themselves frozen in ice. Man am I glad he's frozen in there etc etc
      • nearby_fake_item - A hallucination that delivers the illusion that someone nearby has pulled out a weapon or item.
      • oh_yeah - Sends a fake bubblegum charging through a nearby wall to our target.
      • screwy_hud - Screwyhud, makes the user's health bar hud wonky
      • shock - Causes a fake "zap" to the hallucinator.
      • station_message/heretic
      • stray_bullet - Shoots a random, fake projectile to the hallucinator
      • xeno_attack - Xeno crawls from nearby vent, jumps at you, and goes back in.
      • your_mother - Your mother appears to scold you.
    • Heretic Knowledge - The datums that allow heretics to progress and learn new spells and rituals.
    • hfr_fuel
    • highlander_controller - The highlander controller handles the admin highlander mode, if enabled. +It is first created when "there can only be one" triggers it, and it can be referenced from GLOB.highlander_controller
    • holiday
      • garbageday - Garbage DAYYYYY +Huh?.... NOOOO +GUNSHOT +AHHHGHHHHHHH
      • nth_week - A holiday lasting one day only that falls on the nth weekday in a month i.e. 3rd Wednesday of February.
    • holocall
    • hook_and_move - Lightweight datum that just handles moving a target for the hook. +For the love of God, do not use this outside this file.
    • http_request
    • hud
    • human_appearance_profile - Store of data we use to recreate someone who was gibbed, like a simplified version of changeling profiles
    • ice_cream_flavour
      • vanilla - OUR TYPES OF ICE CREAM, COME GET SOME.
    • id_trim - Simple datum that holds the basic information associated with an ID card trim.
      • admin - Trim for admins and debug cards. Has every single access in the game.
      • away - Generic away/offstation trim.
        • cat_surgeon - Trim for the cat surgeon ruin.
        • hilbert - Trim for Hilbert in Hilbert's Hotel.
        • hotel - Trim for the hotel ruin. Not Hilbert's Hotel.
          • security - Trim for the hotel ruin. Not Hilbert's Hotel.
        • old
          • eng - Trim for the oldstation ruin/Charlie station
          • equipment - Trim for the oldstation ruin/Charlie station to access APCs and other equipment
          • robo - Trim for the oldstation ruin/Charlie station to access robots, and downloading of paper publishing software for experiments
          • sci - Trim for the oldstation ruin/Charlie station
          • sec - Trim for the oldstation ruin/Charlie station
      • battlecruiser - Trim for Syndicate mobs, outfits and corpses.
        • captain - Trim for Syndicate mobs, outfits and corpses.
      • bit_avatar - Trim for player controlled avatars in the Virtual Domain.
      • bounty_hunter - Trim for Bounty Hunters NOT hired by centcom. (?)
      • centcom - Trim for basic Centcom cards.
        • admiral - Trim for Centcom (Soviet) Admirals. All Centcom and Station Access.
        • bartender - Trim for Centcom Bartenders.
        • bounty_hunter - Trim for Bounty Hunters hired by centcom.
        • commander - Trim for Centcom Commanders. All Centcom and Station Access.
        • corpse
          • assault - Trim for various Centcom corpses.
          • bridge_officer - Trim for various Centcom corpses.
          • commander - Trim for various Centcom corpses.
          • private_security - Trim for various Centcom corpses.
            • tradepost_officer - Trim for various Centcom corpses.
        • custodian - Trim for Centcom Custodians.
        • deathsquad - Trim for Deathsquad officers. All Centcom and Station Access.
        • ert - Trim for generic ERT interns. No universal ID card changing access.
          • chaplain - Trim for generic ERT chaplains. No universal ID card changing access.
          • clown - Trim for generic ERT clowns. No universal ID card changing access.
          • commander - Trim for ERT Commanders. All station and centcom access.
          • engineer - Trim for generic ERT engineers. No universal ID card changing access.
          • janitor - Trim for generic ERT janitors. No universal ID card changing access.
          • medical - Trim for generic ERT medics. No universal ID card changing access.
          • security - Trim for generic ERT seccies. No universal ID card changing access.
        • intern - Trim for Centcom Interns.
          • head - Trim for Centcom Head Interns. Different assignment, common station access added on.
        • medical_officer - Trim for Centcom Medical Officers.
        • official - Trim for Centcom Officials.
        • research_officer - Trim for Centcom Research Officers.
        • specops_officer - Trim for Centcom Specops Officers. All Centcom and Station Access.
        • thunderdome_overseer - Trim for Centcom Thunderdome Overseers.
        • vip - Trim for Centcom VIPs
      • chameleon - Trim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards.
        • operative - Trim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards.
          • clown - Trim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards.
          • clown_leader - Trim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards.
          • nuke_leader - Trim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards.
      • cyber_police - Trim for cyber police in the Virtual Domain.
      • engioutpost - Trim for various various ruins.
      • highlander - Trim for highlander cards, used during the highlander adminbus event.
      • job - This file contains all the trims associated with station jobs. +It also contains special prisoner trims and the miner's spare ID trim. +ID Trims for station jobs.
        • captain
        • security_officer - Sec officers have departmental variants. They each have their own trims with bonus departmental accesses.
        • shaft_miner/spare - ID card obtained from the mining Disney dollar points vending machine.
        • station_engineer/gunner - Trim for various various ruins.
      • lifeguard - Trim for beach bum lifeguards.
      • mobster - Trim for the mobster outfit.
      • pirate - Trim for pirates.
        • captain - Trim for the pirate captain.
      • reaper_assassin - This file contains all the trims associated with outfits. +Trim for the assassin outfit.
      • space_bartender - Trim for beach bum bartenders.
      • syndicom - Trim for Syndicate mobs, outfits and corpses.
        • Interdyne
          • pharmacist - Interdyne medical Staff
          • pharmacist_director - Interdyne head medical Staff
        • captain - Trim for Syndicate mobs, outfits and corpses.
        • crew - Trim for Syndicate mobs, outfits and corpses.
        • irs - Trim for the space IRS agents (why are they syndie access? I wouldn't worry about it.)
        • skyrat - SYNDICATE ID TRIMS
          • ds2 - DS-2
          • interdyne - Interdyne
      • tunnel_clown - Trim for the Tunnel Clown! outfit. Has all access.
      • vr - Trim for VR outfits.
        • operative - Trim for VR outfits.
    • idle_behavior
    • infuser_entry
    • instability_meltdown - A possible genetic meltdown that occurs when someone exceeds 100 genetic instability
      • alright - Does nothing
      • corgi - Turns you into a corgi
      • crab - Turns you into the ultimate lifeform
      • decloning - Makes you take cell damage and gibs you after some time
      • fatal
        • ceiling - Makes you look up and melts out your eyes
        • dismember - Either dismembers you, or if unable to, gibs you
        • dust - Dusts you
        • gib - Instantly gibs you
        • petrify - Turns you into a statue
        • psyker - Slowly turns you into a psyker
        • skeletonize - Turns you into a skeleton, with a high chance of killing you soon after
      • monkey - Turns you into a monkey
      • not_alright - Gives you the same text as above but now when you're hit you take 200 times more damage
      • organ_vomit - Makes you vomit up a random organ
      • paraplegic - Gives you brain trauma that makes your legs disfunctional and gifts you a wheelchair
      • slime - Turns you into a slime
      • snail - Turns you into a snail
      • yeet - Makes you phase through walls into a random direction
    • Instrument Datums - Instrument datums hold the data for any given instrument, as well as data on how to play it and what bounds there are to playing it.
    • instrument_key - Instrument key datums contain everything needed to know how to play a specific +note of an instrument.*
    • intensity_credits_panel - ICES panel
    • interaction
    • interview - Represents a new-player interview form
    • Interview Manager - Handles all interviews in the duration of a round, includes the primary functionality for +handling the interview queue.
    • ip_intel - The ip intel for a given address
    • job - This is the file you should use to add alternate titles for each job, just +follow the way they're done here, it's easy enough and shouldn't take any +time at all to add more or add some for a job that doesn't have any.
      • assault_operative - ASSAULT OPERATIVE JOB TYPE
      • nanotrasen_consultant - Job antagonist restriction file
      • pun_pun - Special job, active during monkey day.
      • security_officer
      • unassigned - This type is used to indicate a lack of a job. +The mind variable assigned_role will point here by default. +As any other job datum, this is a singleton.
    • job_config_type - Lightweight datum simply used to store the applicable config type for each job such that the whole system is a tad bit more flexible.
      • default_positions - The number of positions a job can have at any given time.
      • playtime_requirements - The amount of playtime required to join a job (minutes).
      • required_account_age - The amount of time required to have an account to join a job (days).
      • required_character_age - The required age a character must be to join a job (which is in years).
      • starting_positions - The number of positions a job can have at the start of the round.
    • job_department - Singleton representing a category of jobs forming a department.
      • assistant - A special assistant only department, primarily for use by the preferences menu
      • captain - A special captain only department, for use by the preferences menu
      • undefined - Catch-all department for undefined jobs.
    • jps_node - The JPS Node datum represents a turf that we find interesting enough to add to the open list and possibly search for new tiles from
    • json_database - Represents a json file being used as a database in the data/ folder. +Changes made here will save back to the associated file, with recovery. +Will defer writes until later if multiple happen in the same tick. +Do not add an extra cache on top of this. This IS your cache.
    • json_reader - Takes a json list and extracts a single value. +Subtypes represent different conversions of that value.
    • json_savefile - A savefile implementation that handles all data using json. +Also saves it using JSON too, fancy. +If you pass in a null path, it simply acts as a memory tree instead, and cannot be saved.
    • keybinding/human/quick_equip_belt
    • known_alts
    • language - Datum based languages. Easily editable and modular.
    • language_holder
      • synthetic - Modularized the Cyborg and AI language_holder, add here the languages that you want them to be able to speak and understand.
    • language_holder_adjustor
    • laser_weapon_mode
    • latejoin_menu
    • lazy_template - Datum used to designate certain areas that do not need to exist nor be loaded at world start +but do want to be loaded under certain circumstances. Use this for stuff like the nukie base or wizden, aka stuff that only matters when their antag is rolled.
    • light_source
    • light_template - Light templates. They describe how a light looks, and links that to names/icons that can be used when templating/debugging
      • read_light - Template that reads info off a light subtype
    • lighting_corner
    • lighting_object
    • liquid_group - A group of any liquids, helps not make processing a pain in the ass by handling all the turfs as one big group
    • Loadout categories - Loadout categories are singletons used to group loadout items together in the loadout screen.
      • accessories - Accessory Items (Moves overrided items to backpack)
      • glasses - Glasses Slot Items (Moves overrided items to backpack)
      • head - Head Slot Items (Deletes overrided items)
      • inhands - Inhand items (Moves overrided items to backpack)
      • neck - Neck Slot Items (Deletes overrided items)
      • pocket - Pocket items (Moved to backpack)
    • Loadout item datum - Singleton that holds all the information about each loadout items, and how to equip them.
    • log_category - The main datum that contains all log entries for a category
    • log_entry - A datum which contains log information.
    • log_holder - Main datum to manage logging actions
    • looping_sound - A datum for sounds that need to loop, with a high amount of configurability.
      • acid - Soundloop for the acid component.
      • burning - Soundloop for the fire (bonfires, fireplaces, etc.)
      • lewd - The looping sound datum but we check for prefs and use conditional_pref_sound instead of playsound
    • lootpanel
    • lua_editor
    • lua_state
    • mafia_ability
    • mafia_controller - The mafia controller handles the mafia minigame in progress. +It is first created when the first ghost signs up to play.
    • mafia_role
    • manifest - Stores crew records.
    • map_config
    • map_generator - This type is responsible for any map generation behavior that is done in areas, override this to allow for +area-specific map generation. This generation is ran by areas in initialize.
    • map_preloader - Preloader datum
    • map_report - An error report generated by /datum/parsed_map/proc/check_for_errors.
    • map_template
    • market
    • market_item
      • hostage - A special category for mobs captured by pirates, tots and contractors, should someone ever want to get them back in advance.
      • local_good - A special category for goods placed on the market by station by someone with the LTSRBT.
      • stolen_good - A special category for goods stolen by spies for their bounties.
      • tool/Fake N-spect scanner black market entry
    • market_purchase
    • martial_art
      • boxing
        • evil - Evil Boxing; for sick, evil scoundrels. Has no honor, making it more lethal (therefore unable to be used by pacifists). +Grants Strength and Stimmed to speed up any experience gain.
        • hunter - Hunter Boxing: for the uncaring, completely deranged one-spacer ecological disaster. +The honor check accepts boxing ready targets, OR various biotypes as valid targets. Uses a special crit effect rather than the standard one (against monsters). +I guess technically, this allows for lethal boxing. If you want.
      • cqc
      • the_sleeping_carp
    • material
      • adamantine - Stronk force increase
      • alloy - Materials made from other materials.
      • bananium - Honks and slips
      • biomass - Force decrease and mushy sound effect. (Not yet implemented)
      • bluespace - Can cause bluespace effects on use. (Teleportation) (Not yet implemented)
      • diamond - Has no special properties
      • glass - Breaks extremely easily but is transparent.
      • gold - Slight force increase
      • iron - Has no special properties.
      • meat - It's gross, gets the name of its owner, and is all kinds of fucked up
      • mythril - RPG Magic.
      • plasma - Adds firestacks on hit (Still needs support to turn into gas on destruction)
      • plastic - Force decrease
      • silver - Has no special properties. Could be good against vampires in the future perhaps.
      • titanium - Mediocre force increase
      • uranium - Is slightly radioactive
    • maturity_prompt
    • medical_note - Player-written medical note.
    • memory - Little tidbits of past events generated by the player doing things.
      • bomb_defuse_failure - Failed to defuse a bomb, by triggering it early.
      • bomb_defuse_success - Succeeded in defusing a bomb!
      • bomb_planted - Planted a bomb.
        • nuke - Planted a NUKE!
        • syndicate - Planted a SYNDICATE bomb.
      • caught_fish - Catching a fish
      • dna_infusion - Becoming a mutant via infusion
      • good_drink - Had a good drink.
      • good_food - Had some good food.
      • held_at_gunpoint - Got held at gunpoint by someone!
      • heretic_knowledge_ritual - When a heretic finishes their ritual of knowledge
      • high_five - Got a sweet high five.
      • key - I am affectionally titling these "key memories"
        • account - Your bank account ID, can't get into it without it
        • captains_spare_code - The code to the captain's spare ID, ONLY give to the real captain.
        • nuke_code - The nuclear bomb code, for nuke ops
        • quirk_alcoholic - Tracks what beverage an alcoholic quirk user likes
        • quirk_allergy - Tracks what medicines someone with the "allergies" quirk is allergic to
        • quirk_smoker - Tracks what brand a smoker quirk user likes
        • traitor_uplink - Where our traitor uplink is, and what is its code
      • kissed - Got kissed! AHHHHH!
      • lost_spaghetti - Had spaghetti fall from their pockets.
      • megafauna_slayer - Killed a Megafauna
      • pet_died - Our pet died...
      • playing_card_pickup - Played 52 card pickup with another person.
      • playing_cards - Played cards with another person.
      • received_medal - Watched someone receive a commendation medal
      • recruited_by_blood_brother - Who converted into a blood brother
      • recruited_by_headrev - Who rev'd me, so if a mindreader reads a rev, they have a clue on who to hunt down
      • revolution_heads_defeated - Given to heads of staff if they lose a revolution and are alive still.
      • revolution_heads_victory - Given to heads of staff, and those around them, upon defeating the revolutionaries.
      • revolution_rev_defeat - Given to head revs for failing the revolution!
      • revolution_rev_victory - The revolution was triumphant! +Given to head revs and those nearby when the revs win a revolution.
      • surgery - A doctor successfuly completed a surgery on someone.
      • was_burning - Was set on fire and started to burn.
      • was_cyborged - Was cyborgized.
      • was_dismembered - Got a limb removed by force.
      • was_slipped - Got slipped by something.
      • witness_gib - Saw someone get gibbed.
      • witness_supermatter_dusting - Saw someone get dusted by the supermatter.
      • witness_vendor_crush - Saw someone get crushed by a vending machine.
      • witnessed_creampie - Witnessed someone get creampied nearby.
      • witnessed_death - Witnessed someone die nearby.
      • witnessed_gods_wrath - Saw someone play Russian Roulette.
      • witnessed_inking - Witnessed someone get splashed with squid ink.
      • witnessed_russian_roulette - Saw someone play Russian Roulette.
    • merger - A datum that tracks a type or types of objects in a cluster
    • micro_organism - A single type of growth.
      • cell_line - A "mob" cell. Can grow into a mob in a growing vat.
        • cockroach - MISC
        • mouse - VERTEBRATES
        • slime - SLIMES, OOZES & BLOBS
      • virus - A micro_organism that supports the ability to be converted to a real virus, allowing virology to get new symptoms
    • mind
    • mod_link - A MODlink datum, used to handle unique functions that will be used in the MODlink call.
    • mod_link_call - A MODlink call datum, used to handle the call between two MODlinks.
    • mod_part - Datum to handle interactions between a MODsuit and its parts.
    • mod_theme - MODsuit theme, instanced once and then used by MODsuits to grab various statistics.
      • medical/corpsman - Identical to medical MODsuit, but uses the alternate skin by default.
      • prototype/hauler - Prototype Hauler Suit
    • modular_mob_segment - A list for mob spawning landmarks to use.
    • modular_persistence - The master persistence datum. Add vars onto this in your own code. Just be aware that you'll need to use simple data types, such as strings, ints, and lists.
    • module_picker - The datum and interface for the malf unlock menu, which lets them choose actions to unlock.
    • mold_type
    • mood - Mood datum
    • mood_event
      • area
      • clown_world - Clown enjoyers who are effected by this become ecstatic, they have achieved their life's dream. +This moodlet is equivalent to the one for simply being a traitor.
      • drunk
      • madness_despair - Wizard cheesy grand finale - what everyone but the wizard gets
      • madness_elation - Wizard cheesy grand finale - what the wizard gets
      • minor_overdose - To notify, but not harm the player in terms of mood. Used for camphor, pentacamphor, succubus milk, and incubus draft.
      • vampcandle - Candelabrum's mood event to non Bloodsucker/Ghouls
    • move_loop - Template class of the movement datums, handles the timing portion of the loops
      • disposal_holder - Disposal holders need to move through a chain of pipes +Rather then through the world. This supports this +If this ever changes, get rid of this, add drift component like logic to the holder +And move them to move()
      • freeze - As close as you can get to a "do-nothing" move loop, the pure intention of this is to absolutely resist all and any automated movement until the move loop times out.
      • has_target
        • dist_bound - Base class of move_to and move_away, deals with the distance and target aspect of things
          • move_away - Wrapper around walk_away()
          • move_to - Wrapper around walk_to()
        • force_move - Used for force-move loops
        • jps
        • move_towards - Used as a alternative to walk_towards
        • move_towards_budget - The actual implementation of walk_towards()
      • move - Replacement for walk()
      • move_rand - This isn't actually the same as walk_rand +Because walk_rand is really more like walk_to_rand +It appears to pick a spot outside of range, and move towards it, then pick a new spot, etc. +I can't actually replicate this on our side, because of how bad our pathfinding is, and cause I'm not totally sure I know what it's doing. +I can just implement a random-walk though
      • move_to_rand - Wrapper around step_rand
      • smooth_move
    • move_manager - Acts as a namespace for movement packet/type related procs
    • movement_detector - A datum to handle the busywork of registering signals to handle in depth tracking of a movable
    • movement_packet - A packet of information that describes the current state of a moving object
    • movespeed_modifier
      • equipment_speedmod - Movespeed modifier applied by worn equipment.
        • immutable - Movespeed modifier applied by immutably slow worn equipment. Should never be ignored, because that's the point.
      • gorilla_standing - Gorillas are slower when carrying something
      • grounded_voidwalker - THE GRAVITY!!! IT WEIGHS!!!
      • heavy_fish - The movespeed modifier from the heavy fish trait when applied to mobs.
      • landed_on_feet - Modifier for mobs landing on their feet after a fall
      • status_effect/midas_blight - Get slower the more gold is in your system.
    • mutation/human
    • newspanel
    • nifsoft - The base NIFSoft
    • nobody_wants_to_learn_matrix_math
    • ntnet_conversation
    • objective
      • assassinate
        • obsessed - CREEPY objectives (few chosen per obsession)
        • paradox_clone - Paradox clone assassinate objective +Similar to the original, but with a different flavortext.
      • bloodsucker
        • conversion - Ghoulify a certain person / people
        • embrace - Convert a crewmate - Ventrue Clan objective
        • ghoulhim - Ghoulify a target.
        • gourmand - Eat blood from a lot of people
        • kindred - Steal the Book of Nod - Nosferatu Clan objective
        • tremere_power - Max out a Tremere Power - Tremere Clan objective
      • door_jack
      • heretic_research - Heretic's research objective. "Research" is heretic knowledge nodes (You start with some).
      • heretic_summon
      • hijack
      • inspect_area
      • major_sacrifice - Heretic's major sacrifice objective. "Major sacrifices" are heads of staff.
      • minor_sacrifice - Heretic's minor sacrifice objective. "Minor sacrifices" includes anyone.
      • mutiny
      • sacrifice
      • steal_n_of_type/IMPORTANT NOTE!! - Look for Job Values on mobs! This is assigned at the start, but COULD be changed via the HoP +ALSO - Search through all jobs (look for prefs earlier that look for all jobs, and search through all jobs to see if their head matches the head listed, or it IS the head) +ALSO - registered_account in _vending.dm for banks, and assigning new ones. +Steal hearts. You just really wanna have some hearts.
      • survey
      • survive/bloodsucker - Space_Station_13_areas.dm <--- all the areas
    • objective_item
    • objective_item_handler
    • objective_target_machine_handler - Datum which manages references to things we are instructed to destroy
    • opposing_force
    • opposing_force_equipment - OPFOR EQUIPMENT DATUM
    • opposing_force_objective
    • opposing_force_selected_equipment
    • orbit_menu
    • orderable_item - A datum for chef ordering options from the chef's computer.
    • ore_silo_log - The log entry for an ore silo action
    • orion_event
      • black_hole - Black Hole - final (emag can spawn singulo, see death event)
      • black_hole_death - You died to a black hole, have some fluff text
      • electronic_part - Malfunction - spend one engine part or wait 3 days (emag effect randomizes some stats)
      • engine_part - Engine Breakdown - spend one engine part or wait 3 days (harmless emag effect)
      • hull_part - Collision - spend one engine part or wait 3 days (has a nasty emag effect)
      • space_port - You found a space port!
        • tau_ceti - You found the midway mark!
      • space_port_raid - You raided a space port!
    • Outfit datums - This is a clean system of applying outfits to mobs, if you need to equip someone in a uniform +this is the way to do it cleanly and properly.
      • backpack_user - And just in case we'll check backpacks
      • basketball
      • beachbum_combat
      • consumed_clown
      • ctf
      • deathmatch_loadout
        • battler - battlers
        • heresy
        • wizard - wizards
      • duffel_user - outfit_sanity needs to cover insertions into duffelbags
      • job
        • assistant/gimmick - Parent type of gimmick loadouts for assistants for the functional assistant station traits
        • scientist/consistent - A version of the scientist outfit that is guaranteed to be the same every time
        • wizard_captain - An outfit which replaces parts of a wizard's clothes with captain's clothes but keeps the robes
      • mafia/abductee - Map-specific custom outfits
      • stachel_user - Satchels too
      • stacks_in_hands - See #66313 and #60901. outfit_sanity used to runtime whenever you had two mergable sheets in either hand. Previously, this only had a 3% chance of occuring. Now 100%.
      • syndicate
      • tarkon/loot - Corpse/Mob Spawners Below
    • overlay_info - Stores the decal & overlays on the floor to preserve texture of the design +in short its just an wrapper for mutable appearance where we retrieve the nessassary information +to recreate an mutable appearance
    • pai_candidate - #pAI Candidate
    • painting
    • paintings_manager - Painting Admin Management Panel
    • paper_field - A reference to some data that replaces a modifiable input field at some given index in paper raw input parsing.
    • paper_input - A single instance of a saved raw input onto paper.
    • paper_stamp - A single instance of a saved stamp on paper.
    • parsed_map
    • particle_editor
    • path_map - Datum that describes the shortest path between a source turf and any turfs within a distance
    • pathfind - The datum used to handle the JPS pathfinding, completely self-contained
      • jps
      • sssp - Single source shortest path +Generates a flow map of a reachable turf -> the turf next closest to the map's center
    • pda_chat - Chat log data type, stores information about the recipient, +the messages themselves and other metadata.
    • pda_message - Chat message data type, stores data about messages themselves.
    • Pet Command - Set some AI blackboard commands in response to receiving instructions +This is abstract and should be extended for actual behaviour
      • Pet Command: Follow - Tells a pet to follow you until you tell it to do something else
        • bee - pet commands
      • Pet Command: Stop - Tells a pet to exit command mode and resume its normal behaviour, which includes regular target-seeking and what have you
        • minebot - pet commands
      • Pet Command: Good Boy - React if complimented
      • Pet Command: Idle - Tells a pet to resume its idle behaviour, usually staying put where you leave it
      • minebot_ability
      • Pet Command: Play Dead - Pretend to be dead for a random period of time
      • Point Targeting Pet Command - As above but also listens for you pointing at something and marks it as a target
        • Pet Command: Attack - Tells a pet to chase and bite the next thing you point at
          • swirl - swirl around the owner in menacing fashion
        • Breed command. breed with a partner!
        • Pet Command: Fetch - Watch for someone throwing or pointing at something and then go get it and bring it back. +If it's food we might eat it instead.
        • Fish command: command the mob to fish at the next fishing spot you point at. Requires the profound fisher component
        • Pet Command: Targetted Ability - Tells a pet to use some kind of ability on the next thing you point at
          • lob_charge - Command the lobster to charge at someone.
          • solarbeam - pet commands
      • protect_owner
      • Pet Command: Use ability - Use an an ability that does not require any targets
        • draw_rune - command ability to draw runes
        • pet_lights - command to make our pet turn its lights on, we need to be level 2 to activate this ability
    • physiology
    • picture
    • pipe_icon_generator
    • pipeline
    • pirate_gang - datum for a pirate team that is spawning to attack the station.
      • grey - Previous Nanotrasen Assitant workers fired for many reasons now looking for revenge and your bank account.
      • interdyne - Expirienced formed employes of Interdyne Pharmaceutics now in a path of thievery and reckoning
      • irs - Agents from the space I.R.S. heavily armed to stea- I mean, collect the station's tax dues
      • nri_raiders - NRI police patrol with a mission to find out if the fine reason is legitimate and then act from there.
      • rogues - classic FTL-esque space pirates.
      • silverscales - aristocrat lizards looking to hunt the serfs
      • skeletons - undead skeleton crew looking for booty
    • plane_master_debug - Used for testing/debugger plane masters and their associated rendering plates
    • plane_master_group - Datum that represents one "group" of plane masters +So all the main window planes would be in one, all the spyglass planes in another +Etc
      • hudless - Hudless group. Exists for testing
      • main - Holds the main plane master
      • popup - Holds plane masters for popups, like camera windows +Note: We do not scale this plane, even though we could +This is because it's annoying to get turfs to position inside it correctly +If you wanna try someday feel free, but I can't manage it
    • plant_gene - Plant gene datums - things that build and modify a plant or seed.
      • reagent - Reagent genes store a reagent ID and reagent ratio.
        • preset - Preset plant reagent genes that are unremovable from a plant.
          • carbon - Carbon Roses's fragile Carbon
          • liquidelectricity - Jupitercup's fragile Liquid Electricity
          • polypyr - Spaceman's Trumpet fragile Polypyrylium Oligomers
      • trait - Traits that affect the grown product.
        • anti_magic - Holymelon's anti-magic trait. Charges based on potency.
        • attack - Traits that turn a plant into a weapon, giving them force and effects on attack.
          • nettle_attack - Normal nettle's force + degradation on attack
            • death - Deathnettle force + degradation on attack
          • novaflower_attack - Novaflower's attack effects (sets people on fire) + degradation on attack
          • sunflower_attack - Sunflower's attack effect (shows cute text)
        • backfire - Traits for plants with backfire effects. These are negative effects that occur when a plant is handled without gloves/unsafely.
          • bluespace - Bluespace Tomato squashing on the user on backfire
          • chili_heat - Ghost-Chili heating up on backfire
          • nettle_burn - Normal Nettle hannd burn on backfire
            • death - Deathnettle hand burn + stun on backfire
          • novaflower_heat - Novaflower's hand burn on backfire
          • rose_thorns - Rose's prick on backfire
        • battery
        • bomb_plant - Plants that explode when used (based on their reagent contents)
          • potency_based - A subtype of bomb plants that have their boom sized based on potency instead of reagent contents.
        • brewing - A plant trait that causes the plant's food reagents to ferment instead.
        • carnivory/jupitercup - Jupitercup's essential carnivory
        • chem_cooling - This trait is the opposite of above - it cools down the plant's chemical contents on harvest. +This requires nutriment to fuel. 1u nutriment = -5 K.
        • chem_heating - This trait automatically heats up the plant's chemical contents when harvested. +This requires nutriment to fuel. 1u nutriment = 25 K.
        • eyes - A plant trait that causes the plant to gain aesthetic googly eyes.
        • fire_resistance - Makes the plant and its seeds fireproof. From lavaland plants.
        • gas_production - Corpseflower's miasma production. +Can be generalized in the future to spawn any gas, but I don't think that's necessarily a good idea.
        • glow
          • blue - Blue (the best one)
          • green - Green (oh no, now i'm radioactive)
          • purple - Purple (did you know that notepad++ doesnt think bioluminescence is a word) (was the person who wrote this using notepad++ for dm?)
          • red - Red
          • white - Colored versions of bioluminescence. +White
          • yellow - Yellow (not the disgusting glowshroom yellow hopefully)
        • invasive - Invasive spreading lets the plant jump to other trays, and the spreading plant won't replace plants of the same type.
          • galaxythistle - Starthistle's essential invasive spreading
        • juicing - Similar to auto-distilling, but instead of brewing the plant's contents it juices it.
        • maxchem - A plant trait that causes the plant's capacity to double.
        • mob_transformation - Traits for plants that can be activated to turn into a mob.
          • shroom - Walking Mushroom's transformation gene
          • tomato - Killer Tomato's transformation gene.
        • modified_volume - Traits for plants with a different base max_volume.
          • cherry_bomb - Cherry Bomb's increased max volume gene
          • omega_weed - Omegaweed's funny 420 max volume gene
        • never_mutate - Prevents species mutation, while still allowing wild mutation harvest and Floral Somatoray species mutation. Trait acts as a tag for hydroponics.dm to recognise.
        • one_bite - Traiit for plants eaten in 1 bite.
        • plant_laughter - Plays a laughter sound when someone slips on it. +Like the sitcom component but for plants. +Just like slippery skin, if we have a trash type this only functions on that. (Banana peels)
        • plant_type - Plant type traits. Incompatible with one another.
          • alien_properties - Currently unused and does nothing. Appears in strange seeds.
          • fungal_metabolism - Mushrooms need less light and have a minimum yield.
          • weed_hardy - Weeds don't get annoyed by weeds in their tray.
        • preserved - Traits for flowers, makes plants not decompose.
        • repeated_harvest - Allows a plant to be harvested multiple times.
        • slip
        • smoke - Explodes into reagent-filled smoke when squashed.
        • squash - Allows the plant to be squashed when thrown or slipped on, leaving a colored mess and trash type item behind.
        • stable_stats - Prevents stat mutation caused by instability. Trait acts as a tag for hydroponics.dm to recognise.
        • sticky - Makes the plant embed on thrown impact.
    • player_details - Tracks information about a client between log in and log outs
    • player_rank_controller - This datum is intended to be used as a method of abstraction for the different +ways that each player rank handles adding and removing players from their global +lists, as well as handling the legacy adding, removing, loading and saving of +said lists.
    • pod_style - Datum holding information about pod type visuals, VFX, name and description +These are not created anywhere and thus should not be assigned procs, only being used as data storage
    • point - A precise point on the map in absolute pixel locations based on world.icon_size. Pixels are FROM THE EDGE OF THE MAP!
    • point_of_interest - Simple helper datum for points of interest.
    • poll_option - Datum which holds details of a poll option loaded from the database.
    • poll_question - Datum which holds details of a running poll loaded from the database and supplementary info.
    • pollutant
      • bright_cosmos - A special "Quick Dispersal" smoke for special cigars
      • carbon_air_pollution - Dangerous fires release this from the waste they're burning
      • chemical_vapors - Green goo piles and medicine chemical reactions make this
      • decaying_waste - Organic waste and garbage makes this
      • dust - Dust from mining drills
      • metallic_scent - Splashing blood makes a tiny bit of this
      • smoke - Smoke coming from cigarettes and fires
        • cannabis - From smoking weed
      • sulphur - Sulphur coming from igniting matches
    • pollution
    • Component Port - A port used by a component. Connects to other ports.
      • Input Port - An input port remembers connected output ports.
      • Output Port - An output port that many input ports can connect to
    • portrait_picker
    • position - For positions with map x/y/z and pixel x/y so you don't have to return lists. Could use addition/subtraction in the future I guess.
    • powernet
    • preference - Represents an individual preference.
      • choiced - A preference that is a choice of one option among a fixed set. +Used for preferences such as clothing.
        • ai_core_display - What to show on the AI screen
        • ai_emote_display - What to show on the AI monitor
        • ai_hologram_display - What to show on the AI hologram
        • backpack - Backpack preference
        • brief_outfit - What outfit to equip when spawning as a briefing officer for an ERT
        • digitigrade_legs - Legs
        • directory_character_prefs - Pref for all the things with the same "Yes", "No", "No ERP", "Check OOC", "Unset", "Maybe" setting +Saves us on copypaste code
        • gender - Gender preference
        • genital
        • ghost_accessories - Determines what accessories your ghost will look like they have.
        • ghost_form - Determines the appearance of your ghost to others, when you are a BYOND member
        • ghost_lighting - How bright a ghost's lighting plane is
        • ghost_orbit - Determines what ghosts orbiting look like to you.
        • ghost_others - Determines how to show other ghosts
        • jumpsuit - Jumpsuit preference
        • mod_select - Switches between mouse buttons for MODsuit active modules
        • mutant_choice - Base class for choices character features, mainly mutant body parts
          • ipc_screen - IPC Screens
          • synth_antenna - IPC Antennas
          • synth_chassis - IPC Chassis
          • synth_head - IPC Head
        • parallax - Determines parallax, "fancy space"
        • pda_theme - PDA theme
        • preferred_map - During map rotation, this will help determine the chosen map.
        • prisoner_crime - Which crime is the prisoner permabrigged for. For fluff!
        • scaling_method - The scaling method to show the world in, e.g. nearest neighbor
        • security_department - Which department to put security officers in, when the config is enabled
        • socks - Socks preference
        • species - Species preference
        • ui_style - UI style preference
        • undershirt - Undershirt preference
        • underwear - Underwear preference
        • voice - TTS voice preference
      • color - A preference that represents an RGB color of something. +Will give the value as 6 hex digits, without a hash.
        • blindfold_color - Preference for the roundstart color of the blindfold given by the Blindness quirk.
        • ooc_color - The color admins will speak in for OOC.
        • paint_color - Preference for the roundstart color of the spraycan given by the Tagger quirk.
      • loadout
      • name - A preference for a name. Used not just for normal names, but also for clown names, etc.
        • backup_human - The name for a backup human, when nonhumans are made into head of staff
        • hacker_alias - The name to use while bitrunning
        • operative_alias - The first name given to nuclear operative antagonists. The last name will be chosen by the team leader.
        • real_name - A character's real name
      • numeric - A numeric preference with a minimum and maximum value
        • hair_opacity
        • multiz_performance - Boundary for how many z levels down to render properly before we start going cheapo mode
        • sound_blooper_volume - Can I have a slider to adjust the volume of the barks?
      • text - A string-based preference accepting arbitrary string values entered by the user, with a maximum length.
        • headshot
        • pda_ringtone - This is the preference for the player's SpaceMessenger ringtone. +Currently only applies to humans spawned in with a job, as it's hooked +into /datum/job/proc/after_spawn().
      • toggle - A preference whose value is always TRUE or FALSE
        • ambient_occlusion - Whether or not to toggle ambient occlusion, the shadows around people
        • be_intern - Enables the choice of players disabling their Intern ID tag
        • broadcast_login_logout - Whether or not to announce when the player logs in or out.
        • darkened_flash - When toggled, being flashed will show a dark screen rather than a light one.
        • emissive
        • erp/sounds - Sounds from interaction menu and stimuli
        • eye_emissives
        • ghost_hud - Toggles the HUD for ghosts
        • ghost_roles - When enabled, prevents any and all ghost role pop-ups.
        • ghost_roles_as_admin - When enabled, prevents any and all ghost role pop-ups WHILE ADMINNED.
        • hear_sound_blooper - Can I hear everyone else's bloops?
        • inquisitive_ghost - Whether or not ghosts can examine things by clicking on them.
        • multiz_parallax - Whether or not to toggle multiz parallax, the parallax effect for lower z-levels.
        • mutant_toggle - Base class for character feature togglers
          • caps - Caps
          • ears - Ears
          • fluff - Fluff
          • frills - Frills
          • head_acc - Head Accessories - Unless more get added, this is only able to be applied for one person, a donator only thing
          • horns - Horns
          • moth_antennae - Moth Antennae
          • moth_markings - Moth Markings - They don't work, and we use regular markings for those anyway, so we're going to disable them.
          • neck_acc - Neck Accessories - Same as head_acc
          • skrell_hair - Skrell Hair
          • snout - Snouts
          • spines - Spines
          • tail - Tails
          • taur - Taur
          • wings - Wings
          • xenodorsal - Xenodorsal
          • xenohead - Xeno heads
        • nuke_ops_species - When TRUE, will spawn you as a human when selected for an operative role +When FALSE, players will be placed into the game as their character's species
        • playtime_reward_cloak - This can be set to TRUE from the prefs menu only once the user has +gained over 5K playtime hours. +If true, it allows the user to get a cool looking roundstart cloak.
        • radio_noise - Controls hearing radio noise
        • send_sound_blooper - Can I use the blooper?
        • sound_ambience - Controls hearing ambience
        • sound_announcements - Controls hearing announcement sounds
        • sound_combatmode - Controls hearing the combat mode toggle sound
        • sound_elevator - Controls hearing elevator music
        • sound_endofround - Controls hearing round end sounds
        • sound_instruments - Controls hearing instruments
        • sound_jukebox - Controls hearing dance machines
        • sound_lobby - Controls hearing lobby music
        • sound_midi - Controls hearing admin music
        • sound_ship_ambience - Controls hearing ship ambience
        • tgui_input_large - Large button preference. Error text is in tooltip.
        • tgui_input_swapped - Swapped button state - sets buttons to SS13 traditional SUBMIT/CANCEL
        • tgui_say_light_mode - Light mode for tgui say
        • typing_indicator - Whether or not to show a typing indicator when speaking. Defaults to on.
        • window_flashing - Enables flashing the window in your task tray for important events
    • preference_middleware - Preference middleware is code that helps to decentralize complicated preference features.
      • blooper
      • keybindings - Middleware to handle keybindings
      • languages - Middleware to handle languages
      • legacy_toggles - In the before times, toggles were all stored in one bitfield. +In order to preserve this existing data (and code) without massive +migrations, this middleware attempts to handle this in a way +transparent to the preferences UI itself. +In the future, the existing toggles data should just be migrated to +individual /datum/preference/toggles.
      • loadout
      • names - Middleware that handles telling the UI which name to show, and waht names +they have.
      • quirks - Middleware to handle quirks
      • random - Middleware for handling randomization preferences
      • species - Handles the assets for species icons
      • tts - Middleware to handle quirks
    • preferences
    • prisoner_crime
    • progressbar
    • promise - Byondapi hooks act as "set waitfor = 0" procs. This means that whenever +a proc directly called from an external library sleeps, the hook returns with whatever +the called proc had as its return value at the moment it slept. This may not +be desired behavior, so this datum exists to wrap these procs.
    • proximity_monitor
    • puzzgrid - Represents an individual puzzgrid
    • puzzgrid_group - Represents an individual group in a puzzgrid
    • qdel_item - Qdel Item: Holds statistics on each type that passes thru qdel
    • queue_link
    • quirk
    • quirk_constant_data - A singleton datum representing constant data and procs used by quirks.
    • radial_menu
    • radial_menu_choice - Can be provided to choices in radial menus if you want to provide more information
    • radio_frequency
    • raptor_inheritance
    • rat_fashion - Decides how regal rats can look
      • classic - Old sprite
      • default - Normal
      • rat_queen - Rat queen (thicc rat)
      • rat_queen_alt - Rat queen alt (thicc rat but fat)
      • ringmaster - Ringmaster (thicc rat but clothed)
    • reagent - A single reagent
    • reagents - ////////////////////////////Main reagents code///////////////////////////////////////////// +Holder for a bunch of /datum/reagent
      • plumbing - Specialized reagent container for plumbing. Uses the round robin approach of transferring reagents +so transfer 5 from 15 water, 15 sugar and 15 plasma becomes 10, 15, 15 instead of 13.3333, 13.3333 13.3333. Good if you hate floating point errors
    • reality_smash_tracker - #Reality smash tracker
    • record - Record datum. Used for crew records and admin locked records.
      • crew - Crew record datum
      • locked - Admin locked record
    • record_manifest - A datum that's mainly used to get exploitables for antagonists.
    • religion_rites
    • Religious Sects - Religious Sects are a way to convert the fun of having an active 'god' (admin) to code-mechanics so you aren't having to press adminwho.
      • honorbound
      • mechanical - Mechanical God
      • puritanism - Nanotrasen Approved God
      • pyre - Pyre God
      • spar
    • replica_fabricator_output
    • Request - A representation of an in-game request, such as a prayer.
    • Request Manager - Handles all player requests (prayers, centcom requests, syndicate requests) +that occur in the duration of a round.
    • request_message
    • required_item - Datum for tracking required map items
    • riding_minigame
    • robot_energy_storage
      • material
      • package_wrap - Holders for the package wrap and the wrapping paper synthetizers.
    • round_event
    • round_event_control - ICES - Intensity Credit Events System
      • antagonist
      • bitrunning_glitch
      • disease_outbreak
      • earthquake - Earthquake random event. +Draws a curve of turfs between a high and low point. These turfs will shake and eventually "collapse", forming a cut in the station that drops to the z-level below. +Much of the actual structural damage is done through the explosions subsystem. Objects, machines, and especially people +that aren't moved out of the epicenter area (indicated by the wobbly tiles) will not just be thrown down a z-level, but also be destroyed/maimed in the process.
      • grid_check
      • heart_attack
      • immovable_rod - Immovable rod random event. +The rod will spawn at some location outside the station, and travel in a straight line to the opposite side of the station
      • market_crash - An event which decreases the station target temporarily, causing the inflation var to increase heavily.
      • sandstorm - Sandstorm Event: Throws dust/sand at one side of the station. High-intensity and relatively short, +however the incoming direction is given along with time to prepare. Damages can be reduced or +mitigated with a few people actively working to fix things as the storm hits, but leaving the event to run on its own can lead to widespread breaches.
      • sandstorm_classic - The original sandstorm event. An admin-only disasterfest that sands down all sides of the station +Uses space dust, meaning walls/rwalls are quickly chewed up very quickly.
      • shuttle_loan
      • stray_cargo - Spawns a cargo pod containing a random cargo supply pack on a random area of the station
        • syndicate - A rare variant that drops a crate containing syndicate uplink items
      • supermatter_surge - Supermatter Surge
      • valentines
      • wizard
      • wizard_dice - Immovable rod random event. +The rod will spawn at some location outside the station, and travel in a straight line to the opposite side of the station
    • rpgloot_controller
    • rpgtitle_controller
    • scan_condition - Scan condition, these require some specific setup for the dish to count for the scan power for the given site
    • scanner_controller - Helper datum to calculate and store scanning power and track in progress scans
    • scar - scars are cosmetic datums that are assigned to bodyparts once they recover from wounds. Each wound type and severity have their own descriptions for what the scars +look like, and then each body part has a list of "specific locations" like your elbow or wrist or wherever the scar can appear, to make it more interesting than "right arm"
    • scheduled_event - Scheduled event datum for SSgamemode to put events into.
    • scientific_paper - Scientific paper datum for retrieval and re-reading. A lot of the variables are there for fluff & flavor.
    • scientific_partner - Various informations on companies/scientific programs/journals etc that the players can sign on to.
    • screen_object_holder - A helper instance that will handle adding objects from the client's screen +to easily remove from later.
    • scripture
    • search_object
    • security_level - Security levels
    • select_equipment
    • shared_uplink_stock - Code that enables the ability to have limited stock that is shared by different items
    • shuttle_event - An event that can run during shuttle flight, and will run for the duration of it (configurable)
      • simple_spawner - Spawns objects, mobs, whatever with all the necessary code to make it hit and/or miss the shuttle
        • black_hole - Sensors indicate that a black hole's gravitational field is affecting the region of space we were headed through
          • adminbus - Kobayashi Maru version
        • carp - CARPTIDE! CARPTIDE! CARPTIDE! A swarm of carp will pass by and through the shuttle, including consequences of carp going through the shuttle
          • friendly - Spawn a bunch of friendly carp to view from inside the shuttle! May occassionally pass through and nibble some windows, but are otherwise pretty harmless
          • friendly_but_no_personal_space - Same as /friendly, but we only go through the shuttle, MUHAHAHAHAHAHA!! They dont actually harm anyone, but itll be a clusterfuck of confusion
          • magic - CARPTIDE! CARPTIDE! CARPTIDE! Magical carp will attack the shuttle!
        • fake_ttv - We do a little bit of tomfoolery
        • italian - thats amoreeeeee
        • maintenance - Just spawn random maint garbage
        • meteor
          • dust - Very weak meteors, but may very rarely actually hit the shuttle!
          • safe - Okay this spawns a lot of really bad meteors, but they never hit the shuttle so it's perfectly safe (unless you go outside lol)
        • player_controlled - Mobs spawned with this one are automatically player controlled, if possible
          • alien_queen - BACK FOR REVENGE!!!
          • carp - Spawns three player controlled carp!! Deadchats final chance to wreak havoc, probably really not that dangerous if even one person has a laser gun
          • fire_shark - Spawns some player controlled fire sharks
          • human - Human spawning events, with the ability to give them outfits!
        • projectile - Spawn projectiles towards the shuttle
      • turbulence - Repeat the "buckle in or fall over" event a couple times
    • shuttle_loan_situation - One of the potential shuttle loans you might receive.
      • mail_strike - A special shuttle loan situation enabled by the 'mail blocked' station trait. +It sends back a lot of mail to the station, at the cost of wrecking the cargo shuttle a little.
    • signal
    • simple_research
      • scanner - 19 items
    • skill
      • fishing - skill associated with the fishing feature. It modifies the fishing minigame difficulty +and is gained each time one is completed.
    • slime_type
    • sm_delam - Logic holder for supermatter delaminations, goes off the strategy design pattern. +Selected by /obj/machinery/power/supermatter_crystal/proc/set_delam
      • cascade
      • explosive - Default delam.
      • singularity - When we have too much gas.
      • tesla - When we have too much power.
    • sm_gas - Contains effects of gases when absorbed by the sm. +If the gas has no effects you do not need to add another sm_gas subtype, +We already guard for nulls in /obj/machinery/power/supermatter_crystal/proc/calculate_gases
    • smite - A smite, used by admins to punish players, or for their own amusement
      • bad_luck - Gives the target bad luck, optionally permanently
      • berforate - Fires an absurd amount of bullets at the target
      • bloodless - Slashes up the target
      • boneless - Gives the target critically bad wounds
      • brain_damage - Inflicts crippling brain damage on the target
      • bsa - Fires the BSA at the target
      • curse_of_babel - Strikes the target with a lightning bolt
      • custom_imaginary_friend - Custom imaginary friend.
      • dock_pay - Docks the target's pay
      • fake_bwoink - Sends the target a fake adminhelp sound
      • fat - Fattens the target
      • fireball - Throws a fireball down at the target
      • gib - Gibs the target
      • immerse - "Fully immerses" the player, making them manually breathe and blink
      • knot_shoes - Ties the target's shoes
      • lightning - Strikes the target with a lightning bolt
      • nugget - Rips off all the limbs of the target
      • objectify - Turns the target into an object (for instance bread)
      • ocky_icky - "Immerses" the player, making them unable to use some OOC terms IC
      • petrify - Turn pur target to stone, forever
      • puzzgrid - Turns the user into a puzzgrid
      • puzzle - Turns the user into a sliding puzzle
      • rod - Throw an immovable rod at the target
      • scarify - Gives the target fake scars
      • supply_pod - Throws a supply pod at the target, with no item inside
      • supply_pod_quick - Quickly throws a supply pod at the target, optionally with an item
    • Song datum - These are the actual backend behind instruments. +They attach to an atom and provide the editor + playback functionality.
    • sort_instance
    • sortrouter_filter
    • spacevine_controller
    • spacevine_mutation
    • sparring_match
    • Spatial Grid Cell - used by /datum/controller/subsystem/spatial_grid to cover every z level so that the coordinates of every turf in the world corresponds to one of these in +the subsystems list of grid cells by z level. each one of these contains content lists holding all atoms meeting a certain criteria that is in our borders. +these datums shouldnt have significant behavior, they should just hold data. the lists are filled and emptied by the subsystem.
    • species datum - Datum that handles different species in the game.
    • spellbook_entry
      • challenge - Non-purchasable flavor spells to populate the spell book with, for style.
      • item - Item summons, they give you an item.
      • summon - Ritual, these cause station wide effects and are (pretty much) a blank slate to implement stuff in
        • specific_spell - A wizard ritual that allows the wizard to teach a specific spellbook enty to everyone on the station. +This includes item entries (which will be given to everyone) but disincludes other rituals like itself
    • sprite_accessory
    • spy_bounty
    • spy_bounty_handler
    • stack_canary - Stack canary. Will go away if the stack it was primed by is ended by byond for return or stack overflow reasons.
    • stack_end_detector - Stack End Detector. +Can detect if a given code stack has exited, used by the mc for stack overflow detection.
    • stack_recipe
    • station_alert
    • station_goal
    • station_request - A combined all in one datum that stores everything about the request, the requester's account, as well as the requestee's account +All of this is passed to the Request Console UI in order to present in organized way.
    • station_state - For counting up how much of the station exists at the start of the shift, and how much is left behind by the end of it.
    • station_trait - Base class of station traits. These are used to influence rounds in one way or the other by influencing the levers of the station.
      • assistant_gimmicks - Spawns assistants with some gear, either gimmicky or functional. Maybe, one day, it will inspire an assistant to do something productive or fun
      • background_checks - Crew don't ever spawn as enemies of the station. Obsesseds, blob infection, space changelings etc can still happen though
      • bananium_shipment - This station traits gives 5 bananium sheets to the clown (and every dead clown out there in deep space or lavaland).
      • birthday
      • cybernetic_revolution
      • forested - Tells the area map generator to ADD MORE TREEEES
      • glowsticks - A positive station trait that scatters a bunch of lit glowsticks throughout maintenance
      • ian_adventure
      • job - A station trait which enables a temporary job +Generally speaking these should always all be mutually exclusive, don't have too many at once
      • mail_blocked - A negative trait that stops mail from arriving (or the inverse if on holiday). It also enables a specific shuttle loan situation.
      • nebula - Station traits that influence the space background and apply some unique effects!
        • hostile - Station nebula that incur some sort of effect if no shielding is created
          • radiation - The station will be inside a radioactive nebula! Space is radioactive and the station needs to start setting up nebula shielding
      • random_event_weight_modifier
      • revolutionary_trashing
      • skub - A trait that lets players choose whether they want pro-skub or anti-skub (or neither), and receive the appropriate equipment.
      • storm - Starts a storm on roundstart
        • foreverstorm - Calls down an eternal storm on planetary stations
      • vending_shortage - A negative trait that reduces the amount of products available from vending machines throughout the station.
    • status_effect - Status effects are used to apply temporary or permanent effects to mobs. +This file contains their code, plus code for applying and removing them.
      • agent_pinpointer
      • ants
      • ashwalker_damage
      • basilisk_overheat - Status effect gained by basilisks when they touch something hot
      • bioware
        • heart
          • muscled_veins - Muscled veins - Removes the need to have a heart
          • threaded_veins - Threaded veins - Bleed way less
      • blessing_of_insanity - Granted to wizards upon satisfying the cheese sacrifice during grand rituals. +Halves incoming damage and makes the owner stun immune, damage slow immune, levitating(even in space and hyperspace!) and glowing.
      • blood_regen_active
      • blood_thirst_satiated
      • borg_throw_slow - Reduce a cyborg's speed when you throw things at it
      • brimdust_concussion - Slowdown applied when you are detonated on the space station
      • bugkiller_death - If bugkiller delivers a lethal dosage, applies this effect which does a funny animation THEN kills 'em +Also makes it so simplemobs / basicmobs no longer delete when they die (if they do)
      • carp_invigoration - Makes you run faster for the duration
      • choke
      • cloudstruck
      • confusion - A status effect used for adding confusion to a mob.
      • cosmic_beam
      • crusher_damage
      • decloning
      • dizziness
      • drowsiness
      • drugginess - Drugginess / "high" effect, makes your screen rainbow
      • eigenstasium
      • eldritch
      • exercised
      • eye_blur - Applies a blur to the user's screen, increasing in strength depending on duration remaining.
      • fire_blasted - Status effect applied when someone's hit by the fire blast.
      • fire_handler
      • fire_ring - Simple status effect for adding a ring of fire around a mob.
      • firecookie - CONSUMING EXTRACTS
      • food - Buffs given by eating hand-crafted food. The duration scales with consumable reagents purity.
        • chilling - food effect applied by ice cream and frozen treats
        • haste - Haste makes the eater move and act faster
        • quality_healing
        • speech - Temporary modifies the speech using the /datum/component/speechmod
        • trait - Makes you gain a trait
      • frenzy
      • genetic_damage
      • ghoul
      • goldeneye_pinpointer
      • golem - Abstract holder for golem status effects, you should never have more than one of these active
        • bananium - Makes you slippery
        • diamond - Makes you hard to see
        • gold - Makes you reflect energy projectiles
        • plasma - Heat immunity, turns heat damage into local power
        • plasteel - Makes you spaceproof
        • silver - Magic immunity
        • titanium - Makes you tougher
        • uranium - Freezes hunger for the duration
      • golem_lightbulb - Lights up the golem, NOT using the golem subtype because it is not exclusive with other status effects
      • golem_statued - Uh oh, you can't move, yell for help
      • grouped - Status effect from multiple sources, when all sources are removed, so is the effect
        • blindness - Blindness
        • cursed - Status effect that gives the target miscellanous debuffs while throwing a status alert and causing them to smoke from the damage they're incurring. +Purposebuilt for cursed slot machines.
        • hooked - Status effect applied when casting a fishing rod at someone, provided the attached fishing hook allows it.
          • jaws - Version used by the jawed fishing hook, which also applies slowdown
        • nearsighted - Nearsighted
        • screwy_hud - Screwy hud status.
        • wetsuit - The status effect which apply_wetsuit_status_effect gives
      • guardian_scout_mode - Become an incorporeal scout
      • guardian_stealth - Status effect which makes us sneakier and do bonus damage
      • hallucination - Hallucination status effect. How most hallucinations end up happening. +Hallucinations are drawn from the global weighted list, random_hallucination_weighted_list
      • hazard_area - The dedicated status effect for the hazard_area component - use with caution and know what it does!
      • heretic_curse - A curse given to people to disencourage them from retaliating against someone who sacrificed them
      • ice_block_talisman
      • incapacitating
        • incapacitated - This status effect represents anything that leaves a character unable to perform basic tasks (interrupting do-afters, for example), but doesn't incapacitate them further than that (no stuns etc..)
        • sleeping
        • stamcrit
        • stun/goliath_tentacled - Goliath tentacle stun with special removal conditions
      • inebriated - The drunk status effect. +Slowly decreases in drunk_value over time, causing effects based on that value.
        • drunk - Stage 2 of being drunk, applied at drunk values between 6 and onward. +Has all the main side effects of being drunk, scaling up as they get more drunk.
        • tipsy - Stage 1 of drunk, applied at drunk values between 0 and 6. +Basically is the "drunk but no side effects" stage.
      • inflated - Status effect from the Expand action, makes you big and round and strong.
      • interdiction
      • jitter
      • jump_jet - Gives you a brief period of anti-gravity
      • limited_buff - These effects reapply their on_apply() effect when refreshed while stacks < max_stacks.
        • health_buff - this buff provides a max health buff and a heal.
      • limp
      • lobster_rush - Status effect: Makes you run really fast and ignore speed penalties for a short duration. +If you run into a wall indoors you will fall over and lose the buff. +If you run into someone you both fall over.
        • extended - You get a longer buff if you take the time to implant it in yourself
      • Status effect - This is what the Masquerade power gives, handles their bonuses and gives them a neat icon to tell them they're on Masquerade.
      • mayhem
      • midas_blight
      • moon_converted - Used by moon heretics to make people mad
      • next_shove_stuns - Status effect specifically for instances where someone is vulnerable to being stunned when shoved.
      • no_side_kick - Status effect to prevent stuns from a shove +Only applied by shoving someone to paralyze them
      • offering
        • no_item_received - This status effect is meant only for items that you don't actually receive +when offered, mostly useful for /obj/item/hand_item subtypes.
          • high_five - Subtype for high fives, so we can fake out people
          • needs_resting - This status effect is meant only to be used for offerings that require the target to +be resting (like when you're trying to give them a hand to help them up). +Also doesn't require them to have their hands free (since you're not giving them +anything).
      • organ_set_bonus
        • carp - bonus of the carp: you can swim through space!
        • fly - bonus of the fly: you... are a flyperson now. sorry.
        • goliath - bonus of the goliath: you can swim through space!
        • gondola - bonus of the observing gondola: you can ignore environmental hazards
        • rat - bonus of the rat: you can ventcrawl!
        • roach
      • overwatch - Status effect which tracks whether our overwatched mob moves or acts
      • overwatch_immune - Blocks further applications of the ability for a little while
      • protective_blades - Summons multiple foating knives around the owner. +Each knife will block an attack straight up.
        • recharging - A subtype that doesn't self-delete / disappear when all blades are gone +It instead regenerates over time back to the max after blades are consumed
      • protector_shield - Makes the guardian even more durable, but slower
      • psychic_projection - Status effect that adds a weird view to its owner and causes them to rapidly shoot a firearm in their general direction.
      • radiation_immunity - Makes the mob immune to radiation for a short bit to help with safely spawning in hazardous areas
      • revenant - Parent type for all unique revenant status effects
      • shadow_cloak - Shadow cloak effect. Conceals the owner in a cloud of purple smoke, making them unidentifiable. +Also comes with some other buffs and debuffs - faster movespeed, slower actionspeed, etc.
      • shadow_regeneration - Heal in darkness and potentially trigger other effects, persists for a short duration after leaving
      • shapechange_mob
      • silenced
      • slime_food - Adds pheromones to a mob. If the target slime drains the mob to death, they might befriend the user
      • slime_leech
      • slimed
      • song - Type of status effect applied by music played by the festival sect. Stacks upon itself, and removes all other song subtypes other than itself.
      • space_regeneration - Regenerate in space
      • spacer
      • speech
      • stabilized - STABILIZED EXTRACTS
      • stacking - Status effects that can stack.
        • brimdust_coating - If you take brute damage with this buff, hurt and push everyone next to you. +If you catch fire and or on the space station, detonate all remaining stacks in a way which hurts you. +Washes off if you get wet.
      • staggered - Staggered, Next Shove Stuns, No Side Kick +Status effects related to shoving effects and collisions due to shoving +Staggered can occur most often via shoving, but can also occur in other places too.
      • star_mark
      • static_vision
      • strandling
      • Stun absorption - A status effect effectively functions as TRAIT_STUNIMMUNE, but with additional effects tied to it, +such as showing a message on trigger / examine, or only blocking a limited amount of stuns.
      • surrender_timed - For when you need to make someone be prompted for surrender, but not forever
      • teleport_flux - Status effect applied to users of a Teleport Rod, damages them when they teleport
      • teleport_madness - Maddly teleports the victim around all of space for 10 seconds
      • temporary_blindness - This status effect handles applying a temporary blind to the mob.
      • temporary_transformation - Transforms a carbon mob into a new DNA for a set amount of time, +then turns them back to how they were before transformation.
      • terrified
      • tinlux_light - Makes the mob luminescent for the duration of the effect.
      • tox_vomit - Simple status effect applied when a mob has high toxins and starts to vomit regularly
      • unholy_determination - The buff given to people within the shadow realm to assist them in surviving.
      • void_chill
      • void_prison
      • vulnerable_to_damage
      • wound
    • stock_market_event
    • stock_part - Represents the concept of a stock part. +One is created for every stock part type for every level. +Machines have these inside their component_parts. +For example, scanning modules use /datum/stock_part/scanning_module. +In machines, you can perform a loop through something like +for (var/datum/stock_part/scanning_module/part in component_parts)
      • ansible - Subspace stock parts
    • storage - Datumized Storage +Eliminates the need for custom signals specifically for the storage component, and attaches a storage variable (atom_storage) to every atom. +The parent and real_location variables are both weakrefs, so they must be resolved before they can be used. +If you're looking to create custom storage type behaviors, check ../subtypes
      • inflatables_box - The storage for the inflatables box.
      • pod
      • rped
      • security
      • tcg - A storage component to be used on card piles, for use as hands/decks/discard piles. Don't use on something that's not a card pile!
    • storage_interface - Datum tracker for storage UI
    • story_manager_interface
    • storyteller - The storyteller datum. He operates with the SSgamemode data to run events
    • storyteller_data/tracks - Storyteller track data, for easy overriding of tracks without having to copypaste +thresholds - Used to show how many points the track has to collect before it triggers, lower means faster
    • strip_menu - A representation of the stripping UI
    • strippable_item - A representation of an item that can be stripped down
    • summon_things_controller - The "Give everyone in the crew and also latejoins a buncha stuff" controller. +Used for summon magic and summon guns.
    • supply_order
      • company_import
      • disposable - Custom type of order who's supply pack can be safely deleted
        • materials - Custom material order to append cargo crate value to the final order cost
    • supply_pack
      • critter/doublecrab - Cost of the crate. DO NOT GO ANY LOWER THAN X1.4 the "CARGO_CRATE_VALUE" value if using regular crates, or infinite profit will be possible!
      • custom - Custom supply pack +The contents are given on New rather than being static +This is for adding custom orders to the Cargo console (like order consoles)
      • engine - Engine Construction
      • exploration - Exploration drone unlockables
      • imports - Imports category. +This is for crates not intended for goodies, but also not intended for departmental orders. +This allows us to have a few crates meant for deliberate purchase through cargo, and for cargo to have a few items +they explicitly control. It also holds all of the black market material and contraband material, including items +meant for purchase only through emagging the console.
        • blackmarket_telepad - The Long To Short Range Bluespace Teleporter, used to deliver (black) market purchases more effiiently +It can also be used to restock it, if you hit it with enough credits.
      • misc
        • syndicate - Special supply crate that generates random syndicate gear up to a determined TC value
          • custom_value - Syndicate supply crate that can have its contents value changed by admins, uses a seperate datum to avoid having admins touch the original one.
        • vanguard_surplus
      • organic/pizza
      • security/armory - Armory packs
      • service
        • bar_sign - Spare bar sign wallmount
        • greyidbox - Box of 7 grey IDs.
        • silverid - Single silver ID.
      • vending/wardrobes/autodrobe - Clothing Vending Restocks
    • surgery
      • advanced/bioware
      • bioreactor - Bioreactor Maintenance
      • cranial_reconstruction - Surgery to repair cranial fissures
      • debride - BURN FIXING SURGERIES////// +Debride burnt flesh
      • healing
        • brute - BRUTE
        • burn - BURN
        • combo - COMBO
      • heatsink - Heatsink Repair Surgery
      • hydraulic_maintenance - Hydraulic Pump Surgery
      • reagent_pump - Reagent Processor Repair surgery
      • repair_bone_compound - Repair Compound Fracture (Critical)
      • repair_bone_hairline - BONE FIXING SURGERIES////// +Repair Hairline Fracture (Severe)
      • repair_puncture - Repair puncture wounds
      • revival
        • carbon - Additional revival effects if the target has a brain
      • robot_healing
        • basic - TYPES
    • surgery_step
      • debride - Debride
      • dress - Dressing burns
      • experimental_dissection
      • filter_blood
      • gastrectomy - Gastrectomy, because we truly needed a way to repair stomachs.
      • heal
      • hepatectomy - hepatectomy, removes damaged parts of the liver so that the liver may regenerate properly
      • manipulate_organs - Organ manipulation base class. Do not use, it wont work. Use its subtypes
        • external - Surgery step for external organs/features, like tails, frills, wings etc
          • mechanic - prosthetic surgery gives full effectiveness to crowbars (and hemostats)
        • internal - Surgery step for internal organs, like hearts and brains
          • mechanic - prosthetic surgery gives full effectiveness to crowbars (and hemostats)
      • repair_bone_compound - Repair Compound Fracture (Crticial)
      • repair_bone_hairline - Repair Hairline Fracture (Severe)
      • repair_innards - realign the blood vessels so we can reweld them
      • replace_limb - AUGMENTATION SURGERIES
      • reset_compound_fracture - Reset Compound Fracture (Crticial)
      • revive
      • robot_heal
        • basic - STEPS
      • seal_veins - Sealing the vessels back together
    • symptom
    • syndicate_contract
    • targeting_strategy - Datum for basic mobs to define what they can attack, +Global, just like ai_behaviors
      • basic
        • allow_items - Subtype more forgiving for items. +Careful, this can go wrong and keep a mob hyper-focused on an item it can't lose aggro on
          • moonicorn - moonicorns will not attack people holding something that could tame them.
        • cultist - targeting strat to attack non cultists
        • holding_object - Find mobs who are holding the bb configurable object type
        • legion - Target nearby friendlies if they are hurt (and are not themselves Legions)
        • mook
        • mushroom
        • not_friends - Don't target an atom in our friends list (or turfs), anything else is fair game
          • allow_items - Subtype that allows us to target items while deftly avoiding attacking our allies. Be careful when it comes to targeting items as an AI could get trapped targeting something it can't destroy.
        • of_size - Subtype which searches for mobs of a size relative to ours
        • same_faction - Makes the mob only attack their own faction. Useful mostly if their attacks do something helpful (e.g. healing touch).
          • construct - Targeting strategy that will only allow mobs that constructs can heal.
      • fishing - A very simple targeting strategy that checks that the target is a valid fishing spot.
      • lightgeist - Attack only mobs who have damage that we can heal, I think this is specific enough not to be a generic type
    • team
    • Techweb - A datum representing a research techweb
      • admin - Admin techweb that has everything unlocked by default
      • autounlocking - Techweb node that automatically unlocks a given buildtype. +Saved in GLOB.autounlock_techwebs and used to prevent +creating new ones each time it's needed.
      • disk - Techweb made through tech disks +Contains nothing, subtype mostly meant to make it easy for admins to see.
      • interdyne - Bubber added Syndicate Tech +First we enstate a techweb so we can add the node.
      • science - Global Science techweb for RND consoles
      • tarkon - First we enstate a techweb so we can add the node.
    • Techweb Node - A datum representing a researchable node in the techweb.
    • tgs_api/v5
    • tgs_chat_channel - Represents a connected chat channel.
    • tgs_chat_command - User definable chat command. This abstract version MUST be overridden to be used.
      • reload_admins - Reload admins tgs chat command. Intentionally not validated.
      • validated - subtype tgs chat command with validated admin ranks. Only supports discord.
    • tgs_chat_embed
      • field - See https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure for details.
      • footer - See https://discord.com/developers/docs/resources/message#embed-object-embed-footer-structure for details.
      • media - Common datum for similar Discord embed medias.
      • provider - See https://discord.com/developers/docs/resources/message#embed-object-embed-provider-structure for details.
        • author - See https://discord.com/developers/docs/resources/message#embed-object-embed-author-structure for details. Must have name set in New().
      • structure - User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/message#embed-object for details.
    • tgs_chat_user
    • tgs_event_handler - User definable handler for TGS events This abstract version SHOULD be overridden to be used.
    • tgs_http_handler - User definable handler for HTTP calls. This abstract version MUST be overridden to be used.
    • tgs_http_result - Result of a /datum/tgs_http_handler call. MUST NOT be overridden.
    • tgs_message_content - User definable chat message. MUST NOT be overridden.
    • tgs_revision_information - Represents git revision information.
      • test_merge - Represents a merge of a GitHub pull request.
    • tgs_version - Represents a version.
    • tgui - tgui datum (represents a UI).
    • tgui_alert - Datum used for instantiating and using a TGUI-controlled modal that prompts the user with +a message and has buttons for responses.
    • tgui_checkbox_input - Window for tgui_input_checkboxes
    • tgui_input_keycombo - Datum used for instantiating and using a TGUI-controlled key input that prompts the user with +a message and listens for key presses.
    • tgui_input_number - Datum used for instantiating and using a TGUI-controlled number input that prompts the user with +a message and has an input for number entry.
    • tgui_input_text - tgui_input_text
    • tgui_list_input - Datum used for instantiating and using a TGUI-controlled list input that prompts the user with +a message and shows a list of selectable options
    • tgui_panel - tgui_panel datum +Hosts tgchat and other nice features.
    • tgui_say - The tgui say modal. This initializes an input window which hides until +the user presses one of the speech hotkeys. Once something is entered, it will +delegate the speech to the proper channel.
    • tgui_window
    • thrownthing
    • ticket_history - Holds information about a ticket
    • ticket_history_holder
    • tile_info - stores the name, type, icon & cost for each tile type
    • Timed Event - This is the actual timer, it contains the callback and necessary data to maintain +the timer.
    • tinker_cache_item
    • tlv
    • trackable
    • trader_data - Used to contain the traders initial wares, and speech
    • traitor_category_handler - The traitor category handler. This is where the probability of all objectives are managed.
    • traitor_objective - A traitor objective. Traitor objectives should not be deleted after they have been created and established, only failed. +If a traitor objective needs to be removed from the failed/completed objective list of their handler, then you are doing something wrong +and you should reconsider. When an objective is failed/completed, that is final and the only way you can change that is by refactoring the code.
    • traitor_objective_category - The objective category. +Used to group up entire objectives into 1 weight objects to prevent having a +higher chance of getting an objective due to an increased number of different objective subtypes. +These are nothing but informational holders and will have no other purpose.
      • sabotage_machinery - Traitor objective to destroy a machine the crew cares about
    • tram_mfg_info
    • transport_controller/linear - coordinate and control movement across linked transport_controllers. allows moving large single multitile platforms and many 1 tile platforms. +also is capable of linking platforms across linked z levels
      • tram - Tram specific variant of the generic linear transport controller.
    • triple_ai_controller - The triple ai controller handles the admin triple AI mode, if enabled. +It is first created when "Toggle AI Triumvirate" triggers it, and it can be referenced from GLOB.triple_ai_controller +After it handles roundstart business, it cleans itself up.
    • trophy_data - trophy data datum, for admin manipulation
    • trophy_manager - Trophy Admin Management Panel
    • tts_request - A struct containing information on an individual player or mob who has made a TTS request
    • turf_reservation
    • tutorial - The base for a contextual tutorial. +In order to give a tutorial to someone, use SStutorials.suggest_tutorial(user, /datum/tutorial/subtype)
      • drop - Tutorial for showing how to drop items. +Fired when clicking on an item with another item with a filled inactive hand.
      • switch_hands - Tutorial for showing how to switch hands. +Fired when clicking on an item with another item with an empty inactive hand.
    • tutorial_manager - A singleton that manages when to create tutorials of a specific tutorial type.
    • ui_state
    • unit_test
      • abductor_baton_spell - Tests that abductors get their baton recall spell when being equipped
      • ablative_hood_hud - Check that player gains and loses sec hud when toggling the ablative hood
      • achievements - Checks that all achievements have an existing icon state in the achievements icon file.
      • actions_moved_on_mind_transfer - Tests that actions assigned to a mob's mind +are successfuly transferred when their mind is transferred to a new mob.
      • anonymous_themes - Ensure that anonymous themes works without changing your preferences
      • area_contents - Verifies that an area's perception of their "turfs" is correct, and no other area overlaps with them +Quite slow, but needed
      • area_spawn - This is like /datum/unit_test/log_mapping and tests if the integration with the current map failed.
      • armor_verification - Verifies that armor procs are working as expected
      • atmospheric_gas_transfer - Test to make sure the pressure pumping proc used by things like portable pumps, pressure pumps, etc actually work.
      • atmospherics_sanity - This test checks that all expected areas are connected to a starting area
      • automapper - Checks that all automapper TOML entries actually link to a map and that the config exists.
      • autowiki - Tests that all autowikis generate something without runtiming
      • autowiki_include_template - Test that include_template produces reasonable results
      • bake_a_cake
      • barsigns_emp - Test that an emped barsign displays correctly
      • barsigns_icon - Test if icon states for each datum actually exist in the DMI.
      • barsigns_name - Check that bar signs have a name and desc, and that the name is unique.
      • baseturfs_placed_on_bottom - Validates that specially placed baseturfs BELOW tear down properly
      • baseturfs_placed_on_top - Validates that specially placed baseturfs tear down properly
      • baseturfs_unmodified_scrape - Validates that unmodified baseturfs tear down properly
      • binary_insert
      • bitrunner_vdom_settings - Ensures settings on vdoms are correct
      • blindness - Unit test to check that blindness adds the correct status effects, overlays, and client colors
      • blood_deficiency_mail - Ensures the blood deficiency quirk updates its mail goodies correctly
      • bloody_footprints - Tests to make sure bloody footprits work as expected +So no stacking, they actually apply, and shoe staining thrown in for free
      • book_of_babel - Tests that the book of babel, and by extension grant_all_languages, works as intended
      • breath - Tests to ensure humans, plasmamen, and ashwalkers can breath in normal situations. +Ensures algorithmic correctness of the "breathe()" and "toggle_internals()" procs. +Built to prevent regression on an issue surrounding QUANTIZE() and BREATH_VOLUME. +See the comment on BREATH_VOLUME for more details.
        • breath_sanity_ashwalker - Tests to make sure ashwalkers can breathe from the lavaland air.
        • breath_sanity_plasmamen - Tests to make sure plasmaman can breath from their internal tanks
      • burning - Tests that no runtimes are thrown when a mob is on fire
      • cable_powernets - Checking all powernets to see if they are properly connected and powered.
      • can_see_test - Unit test to make sure can_see is working properly
      • cardboard_cutouts - Validates that cardboard cutouts have the proper icons
      • cargo_selling - Makes sure exports work and things can be sold
      • chat_filter_sanity - Tests the sanity of the chat filter, ensuring it properly blocks words and gives the reason
      • circuit_component_category - Tests to make sure each circuit component that could potentially be available to a player has a category
      • client_colours - Checks that client colours have valid colour variables values at least when inited.
      • closets - Checks that the length of the initial contents of a closet doesn't exceed its storage capacity. +Also checks that nothing inside that isn't immediate is a steal objective.
      • clothing_under_armor_subtype_check - Test if all jumpsuits are using the proper armor subtype.
      • computer_disassembly - Test that the computer is disassembled correctly
      • connect_loc_basic - Test that the connect_loc element handles basic movement cases
      • connect_loc_change_turf - Test that the connect_loc element handles turf changes
      • connect_loc_multiple_on_turf - Tests that multiple objects can have connect_loc on the same turf without runtimes.
      • container_resist
      • contents_barfer - Unit test for the contents barfer element
      • crayon_naming - Makes sure that crayons have their crayon_color in their initial name (to differentiate them in the crafting menu).
      • create_and_destroy - Delete one of every type, sleep a while, then check to see if anything has gone fucky
      • cult_conversion - Tests that cults can convert people with their rune
      • cyborg_tool - Regression test for the cyborg omnitool to ensure it goes through proper channels
      • dcs_check_list_arguments - list arguments for bespoke elements are treated as a text ref in the ID, like any other datum. +Which means that, unless cached, using lists as arguments will lead to multiple instance of the same element +being created over and over.
      • dcs_get_id_from_arguments - Tests that DCS' GetIdFromArguments works as expected with standard and odd cases
      • defined_inhand_icon_states - Makes sure items with defined inhand_icon_states... actually have icons that exist!
      • dismemberment
      • door_access_check - Tests to make sure door access works correctly.
      • drink_icons - Unit tests glass subtypes have a valid icon setup
      • dummy_spawn_outfit - Equips and devests our dummy of one of every job outfit
      • dummy_spawn_species - This set of tests is focused on ensuring the stability of preference dummies +And by extension the hacks built to make them fast +Organ consistency, object pooling via the wardrobe ss, etc
      • dynamic_roundstart_ruleset_sanity - Verifies that roundstart dynamic rulesets are setup properly without external configuration.
      • dynamic_unique_antag_flags - Verifies that dynamic rulesets have unique antag_flag.
      • egg_glands - Verifies that all glands for an egg are valid
      • ensure_subtree_operational_datum - Unit Test that ensure that if we add a specific planning subtree to a basic mob's planning tree, that we also have the operational datum needed for it (component/element). +This can be extended to other "mandatory" operational datums for certain subtrees to work.
      • explosion_action - Tests the EX_ACT macro on several different types of atoms to ensure that it still works as expected.
      • eye_damage - Unit test to ensure eyes are properly blinded and nearsighted by eye damage
      • fish_aquarium_icons - Ensures that all fish have an aquarium icon state and that sprite_width and sprite_height have been set.
      • fish_breeding - Checks that fish breeding works correctly.
      • fish_evolution - Checks that fish evolutions work correctly.
      • fish_growth - Check that the fish growth component works.
      • fish_portal_gen_linking - A test that checks that fishing portals can be linked and function as expected
      • fish_randomize_size_weight - Check that nothing wrong happens when randomizing size and weight of a fish
      • fish_rescue_hook - Checks that we are able to fish people out of chasms with priority and that they end up in the right location
      • fish_size_weight - Checks that things associated with fish size and weight work correctly.
      • focus_only - These tests perform no behavior of their own, and have their tests offloaded onto other procs. +This is useful in cases like in build_appearance_list where we want to know if any fail, +but is not useful to right a test for. +This file exists so that you can change any of these to TEST_FOCUS and only check for that test. +For example, change /datum/unit_test/focus_only/invalid_overlays to TEST_FOCUS(/datum/unit_test/focus_only/invalid_overlays), +and you will only test the check for invalid overlays in appearance building.
        • atmos_and_temp_requirements - Checks that maploaded mobs with either the atmos_requirements or body_temp_sensitive
        • bad_cooking_crafting_icons - Checks for bad icon / icon state setups in cooking crafting menu
        • fish_sources_tables - Checks that the contents of the fish_counts list are also present in fish_table
        • invalid_emissives - Checks that every created emissive has a valid icon_state
        • invalid_overlays - Checks that every overlay passed into build_appearance_list exists in the icon
        • invalid_research_designs - Checks that every icon sent to the research_designs spritesheet is valid
        • invalid_vending_machine_icon_states - Checks that every icon sent to vending machines is valid
        • missing_job_datum_variables - Checks to ensure that variables expected to exist in a job datum (for config reasons) actually exist
        • multiple_space_initialization - Checks that space does not initialize multiple times
        • nightvision_color_cutoffs - Checks that nightvision eyes have a full set of color lists
        • openspace_clear - Ensures openspace never spawns on the bottom of a z stack
        • sorted_smoothing_groups - Checks that smoothing_groups and canSmoothWith are properly sorted in /atom/Initialize
        • stacked_lights - Checks that no light shares a tile/pixel offsets with another
        • topdown_filtering - Ensures only whitelisted planes can have TOPDOWN_LAYERing, and vis versa
        • valid_turf_states - Checks that floor tiles are properly mapped to broken/burnt
      • font_awesome_icons - This unit test verifies that all Font Awesome icons are present in code, and that all quirk icons are valid.
      • food_edibility_check - Makes sure that spawned food has reagents and the edible component (or else it can't be eaten).
      • frame_stacking
      • full_heal_damage_types - Tests the fully heal combination flag HEAL_DAMAGE.
      • full_heal_heals_organs - Tests the fully heal flag HEAL_ORGANS.
      • full_heal_regenerates_organs - Tests the fully heal flag HEAL_REFRESH_ORGANS.
      • get_message_mods - Test to verify message mods are parsed correctly
      • get_turf_pixel - ensures that get_turf_pixel() returns turfs within the bounds of the map, +even when called on a movable with its sprite out of bounds
      • geyser - Geysers listen to reagent signals to know when to start processing, which is very cool, smart, optimized and fragile +Tests: +Check for reagent datum +Check if our geyser starts with the right reagent +Check if our geyser refills (by clearing the reagents, setting refresh rate to max and manually firing the subsystem) +Check if our geyser refilled with the right reagent
      • glass_style_functionality - Unit tests glass style datums are applied to drinking glasses
      • glass_style_icons - Unit tests all glass style datums with icons / icon states that those are valid and not missing.
      • gloves_and_shoes_armor - Checks if any gloves or shoes that have non bio/fire/acid armor haven't been marked with ARMS or LEGS coverage respectively
      • golem_food - Unit test to ensure that golems can eat rocks successfully
      • greyscale_color_count - Makes sure objects using greyscale configs have, if any, the correct number of colors
      • greyscale_item_icon_states - Makes sure items using GAGS have all the icon states needed to work
      • gun_go_bang - Shoots a victim with a gun to ensure the gun properly loads and the victim take the correct amount of damage.
      • hallucination_icons - Unit tests various image related hallucinations +that their icon_states and icons still exist, +as often hallucinations are copy and pasted +implementations of existing image setups +that may be changed and not updated.
      • handcuff_bite - Tests handcuffed (HANDS_BLOCKED) monkeys can still bite despite being cuffed
      • handcuff_punch - Tests handcuffed (HANDS_BLOCKED) mobs cannot punch
      • high_five_walk_away - Tests someone offering a high five correctly stops offering when all takers walks away
      • hulk_attack - Tests hulk attacking over normal attacking
      • hulk_north_star - Tests that hulks aren't given rapid attacks from rapid attack gloves
      • human_default_traits - Tests /mob/living/carbon/human/proc/setup_organless_effects, specifically that they aren't applied when init is done
      • human_through_recycler - Puts a consistent assistant into an emagged recycler, and verifies that all intended behavior of an emagged recycler occurs (chewing up all the clothing, applying a level of melee damage, etc.)
      • human_tox_damage - Tests that humans get the tox_vomit status effect when heavily poisoned
      • hunger_curse - Tests that the curse of hunger, from /datum/component/curse_of_hunger, +is properly added when equipped to the correct slot and removed when dropped / deleted
      • hydroponics_extractor_storage - Unit test to ensure seeds can properly be added to the plant seed extractor through multiple methods. +This only tests transferring seeds to the storage, it does NOT test creating seeds.
      • hydroponics_harvest
      • hydroponics_self_mutation - Unit test to ensure plants can't self-mutate into themselves.
      • hydroponics_validate_genes - Unit test to ensure plants don't have multiple of a plant type at once by default.
      • job_roundstart_spawnpoints - Tests that /datum/job/proc/get_default_roundstart_spawn_point returns a landmark from all joinable jobs.
      • json_savefiles - The job of this unit test is to ensure that save files are correctly imported from BYOND to JSON. +It's a rather convoluted process and so this test ensures that something didn't fuck up somewhere.
      • knockdown - Tests knockdown and the canknockdown flag
      • knockoff_component - Test that the knockoff component will properly cause something +with it applied to be knocked off when it should be.
      • language_mind_swap - Tests that mind bound languages are not lost when swapping with another person (wiz mindswap)
      • language_mind_transfer - Tests that mind bound languages are not lost swapping into a new mob, but other languages are
      • language_species_change_other_known - Test that other random languages known are not lost on species change
      • language_species_swap_complex - Tests species changes which are more complex are functional (e.g. from a species which speaks common to one which does not)
      • language_species_swap_simple - Simply tests that swapping to a new species gives you the languages of that species and removes the languages of the old species
      • leash
        • limit_range - Validates that the leashed object cannot move outside of the max distance from owner
        • no_teleport - Validates the leash component will keep its parent within range without teleporting +when possible.
        • will_teleport - Validates that the leash component will forcibly teleport when necessary
      • lesserform - Unit test to ensure that changelings can consistently turn from monkeys to humans and back
      • ling_decap - Test lings don't die when decapitated.
      • load_map_security - Tests to ensure we can load a map from a whitelisted directory (_maps), but not a non-whitelisted directory (i.e "fartyShitPants")
      • log_mapping - Conveys all log_mapping messages as unit test failures, as they all indicate mapping problems.
      • lungs - Tests the standard, plasmaman, and lavaland lungs organ to ensure breathing and suffocation behave as expected. +Performs a check on each main (can be life-sustaining) gas, and ensures gas alerts are only thrown when expected.
        • lungs_sanity_ashwalker - Tests the lavaland/Ashwalker lungs organ. +Ensures they can breathe from the lavaland air mixture properly, and suffocate on inadequate mixture.
        • lungs_sanity_plasmaman - Tests the Plasmaman lungs organ to ensure Plasma breathing and suffocation behave as expected.
      • machine_disassembly - Ensures that when disassembling a machine, all the parts are given back
      • mafia - Checks if a Mafia game with a Modular Computer and a Ghost will run with 'basic_setup', which is the default +way the game is ran, without admin-intervention. +The game should immediately end in a Town Victory due to lack of evils, but we can verify that both the PDA and the ghost +successfully managed to get into the round.
      • mapload_space_verification - Verifies that there are no space turfs inside a station area, or on any planetary z-level. Sometimes, these are introduced during the load of the map and are not present in the DMM itself. +Let's just make sure that we have a stop-gap measure in place to catch these if they pop up so we don't put it onto production servers should something errant come up.
      • mapping_nearstation_test - Detects movables that may have been accidentally placed in space, as well as movables which do not have the proper nearspace area (meaning they aren't lit properly.)
      • market - Ensures market items have acceptable variable values and restocking works.
      • mecha_damage - Unit test to ensure that mechs take the correct amount of damage +based on armor, and that their equipment is properly damaged as well.
      • mind_swap_spell - Validates that the mind swap spell +properly transfers minds between a caster and a target.
      • missing_icons - Makes sure objects actually have icons that exist!
      • mob_chains - Checks if mobs who are linked together with the mob chain component react as expected
      • mob_damage - Tests to make sure mob damage procs are working correctly
        • basic - Tests that mob damage procs are working as intended for basic mobs
      • mob_faction - Checks if any mob's faction var initial value is not a list, which is not supported by the current code
      • mob_spawn - Verifies that all glands for an egg are valid
      • modify_fantasy_variable
      • modsuit_checks - Checks all pre-equipped MODsuit paths to see if they have something set wrong.
      • monkey_business - Monkey Business
      • moth_food - Unit test to ensure that moths can eat t-shirts successfully
      • mouse_bite_cable - Unit Test to ensure that a mouse bites a cable, gets shocked, and dies.
      • mutant_hands - Test: Mutant hands component
      • mutant_hands_carry - Test: Mutant hands fireman carrying
      • mutant_hands_with_nodrop - Test: Mutant hands component with a nodrop item in place
      • mutant_organs - Iterates over all species to ensure that organs are valid after being set to a mutant species.
      • nearsightedness - Unit test to check that nearsighted is added and disabled correctly
      • normal_decap - Tests people get decapitated properly.
      • novaflower_burn - Unit tests that the novaflower's unique genes function.
      • nuke_cinematic - Unit tests that a nuke going off plays a cinematic, +and that it actually kills people.
      • objectives_category
      • operating_table - Make a mob hop on an optable, rest, get up, rest again, and then move to another tile. +While the mob is still an active patient, move another mob in too. +This is so the replacement code can kick in when the original mob is no longer valid.
      • opfor_items - Checks that all OPFOR items have an item_type associated with them
      • orderable_items - Makes sure that no orderable items have dynamic descriptions, if they +don't explicitly set a description. +Also makes sure 2 orderable items don't sell the same thing.
      • organ_bodypart_shuffle - Moves organs in and out of bodyparts, and moves the bodyparts around to see if someone didn't fuck up their movement
      • organ_damage - Tests organ damage cap. +Organ damage should never bypass the cap. +Every internal organ is tested.
      • organ_sanity - Check organ insertion and removal, for all organ subtypes usable in-game. +Ensures algorithmic correctness of the "Insert()" and "Remove()" procs. +This test is especially useful because developers frequently override those.
      • organ_set_bonus_id - Checks that all "organ_set_bonus" status effects have unique "id" vars. +Required to ensure that the status effects are treated as "unique".
      • organ_set_bonus_sanity - Checks that all implantable DNA Infuser organs are set up correctly and without error. +Tests the "organ set bonus" Elements and Status Effects, which are for the DNA Infuser. +This test ensures that the "organ_set_bonus" status effects activate and deactivate when expected.
      • orphaned_genturf - Ensures we do not leave genturfs sitting around post work +They serve as notice to the mapper and have no functionality, but it's good to make note of it here
      • oxyloss_suffocation - Test getting over a certain threshold of oxy damage results in KO
      • paintings - Checks that all kind of painting frames have a sprite for each canvas type in the game.
      • paralyze - Tests paralyze and stuns that have two flags checked (in this case, canstun and canknockdown)
      • plane_double_transform - Ensures plane masters that get shrunk by multiz NEVER render into each other
      • plane_dupe_detector - Checks if we don't have two planes on the same layer
      • plane_layer_sanity - Ensures we have no invalid plane/layer combos post init
      • preference_species - Checks that all enabled roundstart species +selectable within the preferences menu +have their info / page setup correctly.
      • preferences_implement_everything - Requires all preferences to implement required methods.
      • preferences_should_generate_icons_sanity - Validates that every choiced preference with should_generate_icons implements icon_for, +and that every one that doesn't, doesn't.
      • preferences_valid_main_feature_name - Requires all main features have a main_feature_name
      • preferences_valid_savefile_key - Requires all preferences to have a valid, unique savefile_identifier.
      • projectile_movetypes - Tests all projectiles that none of them are phasing.
      • quirk_icons - Ensure every quirk has a unique icon
      • range_return - This tests for an unspecified bit of behavior we rely on in energy_ball.dm code +Essentially, as of the current byond version, range and view will return turfs in what looks "roughly" like a circle +So we can be guarenteed that if we find a turf, it will be the closest turf of that sort, or at least one of them +This code tests for that. If this ever fails, remove the logic fron energy_ball.dm, and test if spiral_turfs would be faster
      • reagent_container_defaults - Checks if reagent container transfer amount defaults match with actual possible values
      • reagent_container_sanity - Test to ensure that all possible reagent containers have enough space to hold any reagents they spawn in with. +A drink can with only 30 units of space should not be able to hold 50 units of drink, as an example.
      • reagent_names - Test that all reagent names are different in order to prevent #65231 and tests that searching for that reagent by name gives the correct one
      • reagent_transfer - Tests transferring reagents between two reagents datums.
      • required_map_items - Tests that all expected items are mapped in roundstart.
      • revolution_conversion - Tests that headrevs can convert people by clicking on them with flashes
      • say_signal - Test to verify COMSIG_MOB_SAY is sent the exact same list as the message args, as they're operated on
      • screenshot_antag_icons - A screenshot test to make sure every antag icon in the preferences menu is consistent
      • screenshot_basic - This is an example for screenshot tests, and a meta-test to make sure they work in the success case. +It creates a picture that is red on the left side, green on the other.
      • screenshot_dynamic_human_icons - A screenshot test for specific dynamic human icons
      • screenshot_high_luminosity_eyes - Tests to make sure no punks have broken high luminosity eyes
      • screenshot_humanoids - A screenshot test for every humanoid species with a handful of jobs.
      • screenshot_husk - A screenshot test for husks
      • screenshot_saturnx - A screenshot test for making sure invisible limbs function, keeping them clothed so we know they're there.
      • security_levels - Security Level Unit Test
      • security_officer_latejoin_distribution - Test that latejoin security officers are put into the correct department
      • security_officer_roundstart_distribution - Test that security officers with specific distributions get their departments.
      • self_punch - Tests you can punch yourself
      • servingtray
      • shadow_jaunt - Tests Shadow Walk can be entered and exited
      • shapeshift_health - Validates that shapeshifting carries health or death between forms properly, if it is supposed to
      • shapeshift_holoparasites - Validates that shapeshifts function properly with holoparasites.
      • shapeshift_spell - Validates that shapeshift spells put the mob in another mob, as they should.
      • shapeshift_spell_validity - Validates that all shapeshift type spells have a valid possible_shapes setup.
      • simple_animal_freeze - Tests that no new simple_animal subtypes are added.
      • slime_mood - Unit test that tests all types of moods for slimes, to make sure they all have proper icons, excluding moods that intentionally don't have an icon.
      • slips - Unit test that forces various slips on a mob and checks return values and mob state to see if the slip has likely been successful.
      • space_dragon_expiration - Unit tests that the space dragon - when its rift expires and it gets qdel'd - doesn't delete all the mobs it has eaten
      • spawn_mobs - Unit test that spawns all mobs that can be spawned by golden slimes
      • species_change_clothing - Gives a Human lizard-incompatible shoes, then changes their species over to see if they drop the now incompatible shoes, testing if Digitigrade feet works. +Gives a Monkey a collar, then changes their species to Human to see if item's restrictions works on species change.
      • species_change_held_items - Gives a Human items in both hands, then swaps them to be another species. Held items should remain.
      • species_change_organs - Unit test to ensure that, when a mob changes species, +certain aspects are carried over between their old and new set of organs +(brain traumas, cybernetics, and organ damage)
      • species_config_sanity
      • species_unique_id - Every species should use a species ID unique to it and it alone. This test runs through every subtype of /datum/species, and checks for a species ID. +Every ID is written to a list, gathered_species_ids, and if a previously written ID is written again, this test will fail.
      • speech - This runs some simple speech tests on a speaker and listener and determines if a person can hear whispering or speaking as they are moved a distance away
      • speech_modifiers - Test to ensure native tongue languages properly impact speech
      • spell_invocations - Validates that all spells have a correct +invocation type and invocation setup.
      • spell_names - Validates that all spells have a different name.
      • spritesheets - Checks if spritesheet assets contain icon states with invalid names
      • spy_bounty - Tests spy bounty setup
      • stack_singular_name - Goes through every subtype of /obj/item/stack to check for a singular name, var/singular_name. +Everything within the blacklist does not need to be tested because it exists to be overridden. +This test will fail if a subtype of /obj/item/stack is missing a singular name.
      • stam_regen - Tests stamina regen after the set time
      • stamcrit - Tests 100 stamina damage = stamcrit
      • start_tend_wounds - Ensures that the tend wounds surgery can be started
      • status_effect_ticks - This test spawns various station traits and looks through them to see if there's any errors. +Validates status effect tick interval setup
      • stop_drop_and_roll
      • storage - Test storage datums
      • strange_reagent - Checks to ensure strange reagent works as expected
      • stun - Tests stun and the canstun flag
      • stun_absorb - Tests for stun absorption
      • subsystem_init - Tests that all subsystems that need to properly initialize.
      • suit_storage_icons - Makes sure suit slot items aren't using CS:S fallbacks.
      • tail_wag - Tests to make sure tail wagging behaves as expected
      • test_human_base
      • test_human_bone
      • tgui_create_message - Test that TGUI_CREATE_MESSAGE is correctly implemented
      • timestop - Regression test for timestop being a 3x3 instead of a 5x5
      • trait_addition_and_removal - Simple Unit Test to ensure multiple methods of adding/removing a trait work as intended.
      • traitor_mail_content_check - Makes sure that fake mail doesn't get random goods.
      • transformation_sting - Tests transformation sting goes back and forth correctly
      • translate_language - This unit test translates a string from one language to another depending on if the person can understand the language
      • trauma_granting - Tests that brain traumas can be granted and removed properly.
      • turf_icons - Makes sure turf icons actually exist. :)
      • tutorial_sanity - Verifies that every tutorial has properly set variables
      • unconsciousness - Tests unconsciousness and the canunconscious flag
      • underwear_items - This unit test tests underwear items in the game, and makes sure each legacy sprite item corresponds to an underwear item.
      • verify_config_tags - Unit Test to ensure that all config tags that we associate to all jobs in SSjob.joinable_occupations are valid.
      • verify_emoji_names - Apparently, spritesheets (or maybe how the CSS backend works) do not respond well to icon_state names that are just pure numbers (which was a behavior in emoji.dmi). +In case we add more emoji, let's just make sure that we don't have any pure numbers in the emoji.dmi file if we ever add more.
      • wizard_loadout - Test loadouts for crashes, runtimes, stack traces and infinite loops. No ASSERTs necessary.
      • worn_icons - Makes sure suit slot items aren't using CS:S fallbacks.
    • uplink_category
    • uplink_handler - Uplink Handler
    • uplink_item - Uplink Items
    • venue - Represents the abstract concept of a food venue in the code.
      • bar - BAR
      • restaurant - RESTAURANT
    • view_data - Container for client viewsize
    • visual_data
      • mirroring - Tracks and updates another mob with our mob's visual data
      • tracking - Tracks but does not relay updates to someone's visual data +Accepts a second visual data datum to use as a source of truth for the mob's values
    • voice_of_god_command - Voice of god command datums that are used in [/proc/voice_of_god()]
      • attract - This command throws the listeners at the user.
      • bleed - This command makes carbon listeners bleed from a random body part.
      • brute - This command applies 15 points of brute damage to the listeners. There's subtle theological irony in this being more powerful than healing.
      • burn - This command sets the listeners ablaze.
      • cold - This command cools the listeners down like freezing water.
      • emote - Supertype of all those commands that make people emote and nothing else. Fuck copypasta.
      • getup - This command forces the listeners to get the fuck up, resetting all stuns.
      • hallucinate - This command makes the listeners see others as corgis, carps, skellies etcetera etcetera.
      • heal - This command heals the listeners for 10 points of total damage.
      • honk - This command plays a bikehorn sound after 2 seconds and a half have passed, and also slips listeners if the user is a clown.
      • hot - This command heats the listeners up like boiling water.
      • immobilize - This command stops the listeners from moving.
      • jump - This command forces the listener to do the jump emote 3/4 of the times or reply "HOW HIGH?!!".
      • knock_knock - This command forces the listeners to say "Who's there?".
      • knockdown - This command knocks the listeners down.
      • move - This command forces the listeners to take step in a direction chosen by the user, otherwise a random cardinal one.
      • multispin - This command spins the listeners 1800° degrees clockwise.
      • repulse - This command throws the listeners away from the user.
      • run - This command forces the listeners to switch to run intent.
      • say_my_name - This command forces the listeners to say the user's name
      • silence - This command silences the listeners. Thrice as effective is the user is a mime or curator.
      • sit - This command forces each listener to buckle to a chair found on the same tile.
      • speak - This command forces the listeners to say a brain damage line.
      • stand - This command forces each listener to unbuckle from whatever they are buckled to.
      • state_laws - This command forces silicon listeners to state all their laws.
      • throw_catch - This command turns the listeners' throw mode on.
      • vomit - This command makes carbon listeners throw up like Mr. Creosote.
      • wake_up - This command wakes up the listeners.
      • walk - This command forces the listeners to switch to walk intent.
      • who_are_you - This command forces the listeners to say their true name (so masks and hoods won't help). +Basic and simple mobs who are forced to state their name and don't have one already will... reveal their actual one!
    • vore_pref
    • Vote Singleton - A singleton datum that represents a type of vote for the voting subsystem.
    • Voucher Set - A set consisting of a various equipment that can be then used as a reward for redeeming a mining voucher.
    • wanted_message
    • weakref - A weakref holds a non-owning reference to a datum. +The datum can be referenced again using resolve().
    • weather - Causes weather to occur on a z level in certain area types
    • wires
    • worn_feature_offset - A datum for controlling how to position items on an unusually offset body part +For instance if you have an asymmetrical head, hats might need to be offset to one side
    • wound
      • blunt
      • burn
        • flesh
          • severe
            • brand - special severe wound caused by sparring interference or other god related punishments.
            • cursed_brand - special severe wound caused by the cursed slot machine.
        • robotic/overheat
      • cranial_fissure - A wound applied when receiving significant enough damage to the head. +Will allow other players to take your eyes out of your head, and slipping +will cause your brain to fall out of your head.
      • electrical_damage
      • loss
      • muscle
        • moderate - Moderate (Muscle Tear)
      • pierce/bleed
      • slash/flesh
    • wound_pregen_data - A singleton datum that holds pre-gen and static data about a wound. Each wound datum should have a corresponding wound_pregen_data.
    • z_pillar - Grouping datum that manages transparency for a block of space +Setup to ease debugging, and to make add/remove operations cheaper
  • image
  • matrix
  • mob - The mob, usually meant to be a creature of some type
    • camera
    • dead
    • living
      • basic - Simple animals 2.0, This time, let's really try to keep it simple. This basetype should purely be used as a base-level for implementing simplified behaviours for things such as damage and attacks. Everything else should be in components or AI behaviours.
        • abductor
        • alien
          • maid
            • barmaid - Barmaid special type +Spawns on emergency shuttles, has access to them and godmode while inside of them.
          • queen
          • sentinel
        • bat/away_caves - Subtype used in the caves away mission
        • bear
        • bee
          • timed - A bee which despawns after a short amount of time (beespawns?)
        • blob_minion - Root of shared behaviour for mobs spawned by blobs, is abstract and should not be spawned
          • blobbernaut - Player-piloted brute mob. Mostly just a "move and click" kind of guy. +Has a variant which takes damage when away from blob tiles
            • minion - This variant is the one actually spawned by blob factories, takes damage when away from blob tiles
          • spore - A floating fungus which turns people into zombies and explodes into reagent clouds upon death.
            • minion - Variant of the blob spore which is actually spawned by blob factories
              • weak - Weakened spore spawned by distributed neurons, can't zombify people and makes a teeny explosion
          • zombie - A shambling mob made out of a crew member
            • controlled - Blob-created zombies will ping for player control when they make a zombie
        • bot
        • butterfly/lavaland/temporary
        • carp
          • ella - Carp-parasite from carpellosis disease
          • holographic - Holographic carp from the holodeck
          • Magicarp - Carp who can cast spells! +Mostly created via wizard event or transformation. +Come in 'does one thing' and 'does random things' varieties.
            • Chaos Magicarp - Fires a random spell (and changes colour) every time, also beefier. +Sometimes actually more durable than the much larger megacarp. That's magic for you. +They trade off for this with a tendency to fireball themselves.
            • xenobiology - Has a more limited spell pool but can appear from gold slime cores
          • mega
          • passive - Wild carp that just vibe ya know
          • pet - Pet carp, abstract carp which just holds some shared properties.
            • cayenne - Cayenne - Loyal member of the nuclear operatives. +Spawns in the nuke op shuttle, can be made sapient if they want to do that for some reason. +Is very talented and also capable of holding the nuclear disk.
            • lia - Lia - Sometimes the pet of the Head of Security. +Has a lot more health than a normal carp because she's meant to be a mildly more threatening pet to have to assassinate than an aging corgi.
        • cat_butcherer
        • chick
          • permanent - Variant of chick that just spawns in the holodeck so you can pet it. Doesn't grow up.
        • chicken
        • clockwork_marauder
        • clown
        • cockroach
        • construct
          • artificer
            • hostile - Hostile NPC version. Heals nearby constructs and cult structures, avoids targets that aren't extremely hurt.
          • harvester
          • juggernaut/hostile - Hostile NPC version. Pretty dumb, just attacks whoever is near.
          • proteon - Proteon - a very weak construct that only appears in NPC form in various ruins.
          • wraith/hostile - Hostile NPC version. Attempts to kill the lowest-health mob it can see.
        • cortical_borer
        • cow
          • moonicorn - moonicorn subtype, very hostile unless there's some food to be eatin'
          • wisdom - Wisdom cow, gives XP to a random skill and speaks wisdoms
        • crab
        • cybersun_ai_core
        • deer
          • ice - Cold resistent and doesn't need to breathe
        • demon - Player controlled mobs that rip and tear, typically summoned by wizards.
          • slaughter - The famous blood-crawling slaughter demons of wizardry fame.
            • laughter - The laughter demon! It's everyone's best friend! It just wants to hug them so much, it wants to hug everyone at once!
        • drone - Maintenance Drone
          • classic - "Classic" drones, which are not shy and get a duffelbag of tools instead of built-in tools.
          • derelict - Derelict drones, a ghost role tasked with repairing KS13. Get gibbed if they leave.
          • polymorphed - A free drone that people can be turned into via wabbajack.
          • snowflake - A drone that spawns with a chameleon hat for fashion purposes.
            • bardrone - Bar staff, mobs with the TRAIT_GODMODE trait (as long as they stay in the shuttle) +that just want to make sure people have drinks and a good shuttle time.
          • syndrone - A Syndicate drone, tasked to cause chaos on the station. +Has a lot more health and its own uplink with 10 TC.
            • badass - A version of the syndrone that gets a nuclear uplink, a firearms implant, and 30 TC.
        • eyeball
        • faithless
        • flesh_spider - Spider-esque mob summoned by changelings. Exclusively player-controlled. +An independent hit-and-run antagonist which can make webs and heals itself if left undamaged for a few seconds. +Not a spider subtype because it keeps getting hit by unrelated balance changes intended for the Giant Spiders gamemode.
        • frog
        • garden_gnome
        • ghost
          • swarm - Weaker variant of ghosts. Meant to be summoned in swarms via the ectoplasmic anomaly and associated ghost portal.
        • goat - The Greatest (animal) Of All Time. Cud chewing, shin-kicking, kitchen-dwelling nuisance.
        • gorilla - Like a bigger monkey +They make a lot of noise and punch limbs off unconscious folks
          • cargorilla - Cargo's wonderful mascot, the tranquil box-carrying ape
          • genetics - A version of the gorilla achieved by reaching enough genetic damage as a monkey
          • lesser - A smaller gorilla summoned via magic
        • guardian - A mob which acts as a guardian angel to another mob, sharing health but protecting them using special powers. +Usually either obtained in magical form by a wizard, or technological form by a traitor. Sometimes found by miners.
          • assassin - Can enter stealth mode to become invisible and deal bonus damage on their next attack, an ambush predator.
          • charger - Very fast, has a charging attack, and most importantly can be ridden like a horse.
          • dextrous - Dextrous guardians have some of the most powerful abilities of all: hands and pockets
          • explosive - A durable guardian which can convert objects into hidden explosives.
          • gaseous - Not particularly resistant, but versatile due to the selection of gases it can generate.
          • gravitokinetic - Somewhat durable guardian who can increase gravity in an area
          • lightning - A reasonably durable guardian linked to you by a chain of lightning, zapping people who get between you
          • protector - Very durable, and reverses the usual leash dynamic. Can slow down to become extremely durable.
          • ranged - A ranged guardian can fling shards of glass at people very very quickly. It can also enter a long-range scouting mode.
          • standard - Plain, but durable and strong. Can destroy walls.
            • timestop - The Guardian itself
          • support - Quick-moving mob which can teleport things to a beacon and heal its allies
        • headslug
          • beakless - Neutered version to prevent people from turning themselves into changelings with sentience potions or transformation
        • heretic_summon
          • armsy - The "Terror of the Night" / Armsy, a large worm made of multiple bodyparts that occupies multiple tiles
          • ash_spirit - Player-only mob which is fast, can jaunt a short distance, and is dangerous at close range
          • maid_in_the_mirror - Scout and assassin who can appear and disappear from glass surfaces. Damaged by being examined.
          • raw_prophet - A funny little rolling guy who is great at scouting. +It can see through walls, jaunt, and create a psychic network to report its findings. +It can blind people to make a getaway, but also get stronger if it attacks the same target consecutively.
            • ascended - Variant raw prophet used by eldritch transformation with more base attack power
            • ruins - NPC variant with a less bullshit ability
          • rust_walker - Pretty simple mob which creates areas of rust and has a rust-creating projectile spell
          • stalker - Durable ambush mob with an EMP ability
        • hivebot
        • hivelord_brood - Attack worms spawned by the hivelord
        • leaper
        • legion_brood - A spooky skull which heals lavaland mobs, attacks miners, and infests their bodies
          • snow - Like the Legion's summoned skull but funnier (it's snow now)
        • lightgeist
        • living_limb_flesh
        • lizard
          • eats_the_roaches - Another pet lizard for the janitor.
          • space - Lizards that can survive in space.
          • wags_his_tail - Janitor's pet lizard.
        • meteor_heart
        • migo
          • hatsune - The special hatsune miku themed mi-go.
        • mining - prototype for mining mobs
          • basilisk - Watchers' ground-dwelling cousins, they shoot at you until they get into melee and absorb laser fire to power up.
          • bileworm
          • brimdemon - Lavaland mob which tries to line up with its target and fire a laser
          • demon_afterimage
            • crusher - afterimage subtypes summoned by the crusher
          • goldgrub
          • goliath - Slow moving mob which attempts to immobilise its target
            • ancient - Legacy Goliath mob with different sprites, largely the same behaviour
              • immortal - Rare Goliath variant which occasionally replaces the normal mining mob, releases shitloads of tentacles
            • deathmatch - Version of the goliath that already starts saddled and doesn't require a lasso to be ridden.
          • gutlunch
          • hivelord - Mob which retreats and spawns annoying sub-mobs to attack you
          • ice_whelp
          • legion - Avoids players while throwing skulls at them. +Legion skulls heal allies, bite enemies, and infest dying humans to make more legions.
            • dwarf - Like a Legion but shorter and faster
            • large - Like a Legion but larger and spawns regular Legions, not currently used anywhere and very soulful
            • monkey - Weak mob spawned if a legion infests a monkey
              • snow - Icebox variant
            • snow - Like a Legion but it's an adorable snowman
              • spawner_made - As Snow Legion but spawns corpses which don't have any exciting loot
          • lobstrosity - Cowardly mob with a charging attack
            • juvenile - A weaker, yet somewhat faster lobstrosity. Sources include aquarium chasm chrabs, chasms, plasma rivers and perhaps xenobio.
            • lava - Lavaland lobster variant, it basically just looks different
          • mook
          • watcher - A floating eyeball which keeps its distance and sometimes make you look away.
            • icewing - Less durable, freezing projectiles
            • magmawing - More durable, burning projectiles
        • mining_drone
        • mold
        • morph - The classic morph, Corpus Accipientis (or "The body of the recipient"). It's a blob that can disguise itself as other things simply put.
        • mothroach/pet/mr_fluff - == DONATOR PET: Mr. Fluff, Central's Mothroach, ckey centralsmith ==
        • mouse
          • cable_lover - Dummy mouse that is guaranteed to die when biting shocked cables.
        • mushroom
        • node_drone - Mining drones that are spawned when starting a ore vent's wave defense minigame. +They will latch onto the vent to defend it from lavaland mobs, and will flee if attacked by lavaland mobs. +If the drone survives, they will fly away to safety as the vent spawns ores. +If the drone dies, the wave defense will fail.
        • orbie
        • paper_wizard
        • parrot - Parrots! Klepto bastards that imitate your speech and hoard your shit.
          • headsetted - Parrot that will just randomly spawn with a headset. Nothing too special beyond that.
          • poly - The classically famous compadre to the Chief Engineer, Poly.
        • pet
        • pig
        • pony
        • rabbit
          • easter - The easter subtype of rabbits, will lay eggs and say Eastery catchphrases.
            • space - Same deal as the standard easter subtype, but these ones are able to brave the cold of space with their handy gas mask.
        • raptor
        • regal_rat - The cheesiest, most crowned rat of them all. Regent superior of all rats in maintenance... at least until someone else tries to encroach on their claim.
          • controlled - Regal rat subtype which can be possessed by ghosts
        • revenant - Revenants: "Ghosts" that are invisible and move like ghosts, cannot take damage while invisible +Can hear deadchat, but are NOT normal ghosts and do NOT have x-ray vision +Admin-spawn or random event
        • revolutionary
        • robot_customer - Robot customers
        • seedling - A mobile plant with a rapid ranged attack. +It can pick up watering cans and look after plants.
        • shade
        • sheep
        • skeleton
        • slime
          • pet - Friendly docile subtype
          • random - Random slime subtype
          • transformed_slime - Transformed slime - from Burning Black
        • snake
        • space_dragon - Advanced stage of the space carp life cycle, spawned as a midround antagonist +Can eat corpses to heal, blow people back with its wings, and obviously as a dragon it breathes fire. It can even tear through walls. +The midround even version also creates rifts which summon carp, and heals when near them.
          • spawn_with_antag - Subtype used by the midround/event
        • spider - Base type of various spider life stages
          • Giant Spider - A mob which can be created by dynamic event, botany, or xenobiology. +The basic type is the guard, which is slow but sturdy and outputs good damage. +All spiders can produce webbing.
          • growing - Spider which turns into another spider over time
            • Spiderlings - Baby spiders that are generated through a variety of means (like botany for instance). +Able to vent-crawl and eventually grow into a full fledged giant spider.
              • ambush - Will differentiate into the "ambush" young spider.
              • breacher - Will differentiate into the "breacher" young spider.
              • guard - This whole file is just a container for the spiderling subtypes that actually differentiate into different young spiders. None of them are particularly special as of now. +Will differentiate into the base young spider (known colloquially as the "guard" spider).
              • hunter - Will differentiate into the "hunter" young spider.
              • midwife - Will differentiate into the "midwife" young spider.
              • nurse - Will differentiate into the "nurse" young spider.
              • scout - Will differentiate into the "scout" young spider.
              • tangle - Will differentiate into the "tangle" young spider.
              • tank - Will differentiate into the "tank" young spider.
              • tarantula - Will differentiate into the "tarantula" young spider.
              • viper - Will differentiate into the "viper" young spider.
            • Young Spider - A mob which can be created by spiderlings/spider eggs. +The basic type is the guard, which is slow but sturdy and outputs good damage. +All spiders can produce webbing.
              • ambush - Will differentiate into the "ambush" giant spider.
              • breacher - Will differentiate into the "breacher" giant spider.
              • guard - Will differentiate into the base giant spider (known colloquially as the "guard" spider).
              • hunter - Will differentiate into the "hunter" giant spider.
              • midwife - Will differentiate into the "midwife" giant spider.
              • nurse - Will differentiate into the "nurse" giant spider.
              • scout - Will differentiate into the "scout" giant spider.
              • tangle - Will differentiate into the "tangle" giant spider.
              • tank - Will differentiate into the "tank" giant spider.
              • tarantula - Will differentiate into the "tarantula" giant spider.
              • viper - Will differentiate into the "viper" giant spider.
          • maintenance
        • statue/mannequin
        • supermatter_spider - A nasty little robotic bug that dusts people on attack. Jeepers. This should be a very, very, very rare spawn.
        • trader
        • tree
        • trooper
          • abductor - Abductor troopers
          • cin_soldier/ranged
          • nanotrasen - Nanotrasen Private Security forces
            • peaceful - A more peaceful variant that will only attack when attacked, or when another Nanotrasen officer calls for help.
            • ranged
            • screaming - A variant that calls for reinforcements on spotting a target
          • pirate - Pirate trooper subtype
          • russian - Russian trooper subtype
          • syndicate - Syndicate troopers
            • ranged - Guns
              • smg/orion - Spawns from an emagged orion trail machine set to kill the player.
        • venus_human_trap - Venus Human Trap
        • viscerator - Misc
        • wizard
          • classic - Uses the colors and loadout of the original wizard simplemob
        • Wumborian Fugu - A strange alien creature capable of increasing its mass when threatened, when not inflated it is virtually defenceless. +Mostly only appears from xenobiology, or the occasional wizard. +On death, the "fugu gland" is dropped, which can be used on mobs to increase their size, health, strength, and lets them smash walls.
      • brain
      • carbon
        • alien
          • adult
            • hunter
            • skyrat - SKYRAT MODULE SKYRAT_XENO_REDO
              • defender - SKYRAT MODULE SKYRAT_XENO_REDO
              • drone - SKYRAT MODULE SKYRAT_XENO_REDO
              • praetorian - SKYRAT MODULE SKYRAT_XENO_REDO
              • queen - SKYRAT MODULE SKYRAT_XENO_REDO
              • runner
              • sentinel - SKYRAT MODULE SKYRAT_XENO_REDO
              • spitter - SKYRAT MODULE SKYRAT_XENO_REDO
              • warrior - SKYRAT MODULE SKYRAT_XENO_REDO
          • larva
        • human - Any humanoid (non-Xeno) mob, such as humans, plasmamen, lizards.
          • consistent - Provides a dummy for unit_tests that functions like a normal human, but with a standardized appearance +Copies the stock dna setup from the dummy/consistent type
          • dummy
            • consistent - Provides a dummy that is consistently bald, white, naked, etc.
          • species/monkey
      • Drone - A movable mob that can be fed inputs on which direction to travel.
      • silicon
        • ai
        • pai
        • robot - The Shrinkening
          • nocell - This is the subtype that gets created by robot suits. It's needed so that those kind of borgs don't have a useless cell in them
      • simple_animal - Simple, mostly AI-controlled critters, such as pets, bots, and drones.
        • bot
        • hostile
          • asteroid
            • elite
              • Goliath Broodmother - A stronger, faster variation of the goliath. Has the ability to spawn baby goliaths, which it can later detonate at will. +When its health is below half, tendrils will spawn randomly around it. When it is below a quarter of health, this effect is doubled. +Its attacks are as follows:
              • Herald - A slow-moving projectile user with a few tricks up its sleeve. Less unga-bunga than Colossus, with more cleverness in its fighting style. +As its health gets lower, the amount of projectiles fired per-attack increases. +Its attacks are as follows:
              • Legionnaire - A towering skeleton, embodying the power of Legion. +As its health gets lower, the head does more damage. +Its attacks are as follows:
              • Pandora - A box with a similar design to the Hierophant which trades large, single attacks for more frequent smaller ones. +As its health gets lower, the time between its attacks decrease. +Its attacks are as follows:
            • polarbear
          • blackmesa/xen
          • illusion
            • escape - Actual Types
          • megafauna
          • mimic
          • ooze - Oozes are slime-esque creatures, they are highly gluttonous creatures primarily intended for player controll.
          • retaliate
          • vatbeast - Vatbeasts are creatures from vatgrowing and are literaly a beast in a vat, yup. They are designed to be a powerful mount roughly equal to a gorilla in power.
          • zombie
        • soulscythe
      • soulcatcher_soul
    • oranges_ear
    • proccall_handler - Used to handle proccalls called indirectly by an admin (e.g. tgs, circuits). +Has to be a mob because IsAdminAdvancedProcCall() checks usr, which is a mob variable. +So usr is set to this for any proccalls that don't have any usr mob/client to refer to.
  • obj
    • cascade_portal
    • crystal_mass
    • docking_port
    • durand_shield - Shield processing +*An object to take the hit for us when using the Durand's defense mode. +It is spawned in during the durand's initilization, and always stays on the same tile. +Normally invisible, until defense mode is actvated. When the durand detects an attack that should be blocked, the +attack is passed to the shield. The shield takes the damage, uses it to calculate charge cost, and then sets its +own integrity back to max. Shield is automatically dropped if we run out of power or the user gets out.
    • effect
      • abstract - The abstract effect ignores even more effects and is often typechecked for atoms that should truly not be fucked with.
        • chasm_storage - An abstract object which is basically just a bag that the chasm puts people inside
        • elevator_music_zone
        • fake_steam - Fake steam effect
        • info - An info button that, when clicked, puts some text in the user's chat
        • liquid_turf
        • local_food_rain - Makes food land near it until it expires
        • particle_holder - objects can only have one particle on them at a time, so we use these abstract effects to hold and display the effects. You know, so multiple particle effects can exist at once. +also because some objects do not display particles due to how their visuals are built
        • surveillance_snare - An invisible marker placed by a ranged guardian, alerts the owner when crossed
        • voidball
        • z_holder - Exists to be placed on the turf of walls and such to hold the vis_contents of the tile below +Otherwise the lower turf might get shifted around, which is dumb. do this instead.
      • anomaly
        • bioscrambler
          • docile - A bioscrambler anomaly subtype which does not pursue people, for purposes of a space ruin
        • bluespace
          • big - Bigger, meaner, immortal bluespace anomaly
        • dimensional
        • ectoplasm
        • flux
          • big - Bigger, meaner, immortal flux anomaly
          • minor - A flux anomaly which doesn't explode or produce a core
        • grav
          • high/big - Bigger, meaner, immortal gravity anomaly. although this is just the super grav anomaly but bigger and shattering move force
        • hallucination
        • pyro
          • big - Bigger, meaner, immortal pyro anomaly
      • aquarium - The visual overlay of the aquarium content. It holds a few vars that we can modity them during signals.
      • ash_rune
      • baseturf_helper
      • big_manipulator_hand - Manipulator hand. Effect we animate to show that the manipulator is working and moving something.
      • bluespace_stream - Static bluespace stream used in its ghost poll icon.
      • brimbeam - Segments of the actual beam, these hurt if you stand in them
      • bug_moving - The effect of the bug moving towards the selected machinery to mess with.
      • bump_teleporter - Abstract effect, that when a mob touches it, it will forceMove them to the teleporter-exit point (that matches the ID set map-side).
        • filtering - Subtype that uses do_teleport instead, to leverage any NO_TELEPORT traits that you might need to add in a given map
      • client_image_holder - Simple effect that holds an image +to be shown to one or multiple clients only.
        • hallucination - A client-side image effect tied to the existence of a hallucination.
          • bubblegum - Fake bubblegum hallucination effect for the oh yeah hallucination
          • danger - These hallucination effects cause side effects when the hallucinator walks into them.
          • fake_door_lock
          • xeno - The xeno hallucination that goes with the xeno attack hallucination.
        • Phobetor Tears - The phobetor tears created by the Brain trauma.
      • collapse
      • collapsing_demonic_portal
      • cosmic_rune - A rune that allows you to teleport to the location of a linked rune.
      • cross_action/spacetime_dist
      • decal
      • dummy
        • lighting_obj - Basically, a fake object that emits light.
        • phased_mob
          • chrono - special subtype for phased mobs.
          • shadow
          • spell_jaunt - The dummy that holds people jaunting. Maybe one day we can replace it.
      • ebeam
        • chain - Beam definition for our lightning chain
        • reacting - A beam subtype used for advanced beams, to react to atoms entering the beam
      • fishing_float - The visual that appears over the fishing spot
      • floating_blade
      • forcefield
        • cosmic_field - The cosmic heretics forcefield
        • cult - Cult forcefields
          • permanent - A form of the cult forcefield that lasts permanently. +Used on the Shuttle 667.
        • mime - Mime forcefields (invisible walls)
        • psychic - Psyker forcefield
        • wizard - The wizard's forcefield, summoned by forcewall
      • goliath_tentacle - A tentacle which grabs you if you don't get away from it
      • grand_rune - Magic rune used in the grand ritual. +A wizard sits themselves on this thing and waves their hands for a while shouting silly words. +Then something (usually bad) happens.
        • finale - Variant rune used for the Final Ritual
          • cheesy - Spawned when 50 or more cheese was sacrificed during previous grand rituals. +Will spawn instead of the usual grand ritual rune, and its effect is already set and can't be changed. +Sorry, no narwal fighting on the open ocean this time.
      • heretic_influence
      • heretic_rune - The heretic's rune, which they use to complete transmutation rituals.
        • big - A 3x3 heretic rune. The kind heretics actually draw in game.
      • hotspot - Hotspot objects interfaces with the temperature of turf gasmixtures while also providing visual effects. +One important thing to note about hotspots are that they can roughly be divided into two categories based on the bypassing variable.
      • immovablerod - "What the fuck was that?!"
        • wizard - Wizard Version of the Immovable Rod.
      • landmark
        • atmospheric_sanity - Atmospheric Sanity Landmark - base
          • goal_area - Marks an area as a goal for atmospheric connectivity; ignored if the map contains the mark all station areas landmark!
          • ignore_area - Marks an area as ignored for purposes of default station connectivity.
          • mark_all_station_areas_as_goal - Marks ALL station areas as a goal, ignoring any other goals.
          • start_area - Marks an area as a starting point for crawling atmospheric connectivity.
        • bitrunning
          • cache_goal_turf - Where the crates need to be taken
          • cache_spawn - Where you want the crate to spawn
          • crate_replacer - Swaps the locations of an encrypted crate in the area with another randomly selected crate. +Randomizes names, so you have to inspect crates manually.
          • curiosity_spawn - Where you want secondary objectives to spawn
          • hololadder_spawn - Where the exit hololadder spawns
          • loot_signal - In case you want to gate the crate behind a special condition.
          • mob_segment - A location for mobs to spawn.
          • permanent_exit - A permanent exit for the domain
        • event_spawn - Generic event spawn points
        • heretic - Lardmarks meant to designate where heretic sacrifices are sent.
        • start
        • transport
          • nav_beacon/tram - transport_controller landmarks. used to map specific destinations on the map.
          • transport_id - transport_controller landmarks. used to map in specific_transport_id to trams and elevators. when the transport_controller encounters one on a tile +it sets its specific_transport_id to that landmark. allows you to have multiple trams and multiple objects linking to their specific tram
        • unit_test_bottom_left - Marks the bottom left of the testing zone. +In landmarks.dm and not unit_test.dm so it is always active in the mapping tools.
        • unit_test_top_right - Marks the top right of the testing zone. +In landmarks.dm and not unit_test.dm so it is always active in the mapping tools.
        • voidwalker_void - Lardmarks meant to designate where voidwalker kidnapees are sent
      • lectern_light
      • light_emitter - Light
      • lock_portal
      • mapping_error - Used for marking mapping errors. These should only be created by cases explicitly caught by unit tests, and should NEVER actually appear in production.
      • mapping_helpers
      • meteor
        • cluster
        • dark_matteor - The dark matt-eor. Only attracted by emagging 10 satellites and maximizing meteor chances, and it drops a singulo. Otherwise, it's not that bad.
        • meaty/changeling
      • mine
        • explosive
          • nri - A nerfed down version of a landmine I really should've done a long time ago but only did it now.
        • minebot
        • shrapnel - These mines spawn pellet_clouds around them when triggered
      • mob_spawn
        • corpse - these mob spawn subtypes trigger immediately (New or Initialize) and are not player controlled... since they're dead, you know?
          • ai - dead ai, blue screen and everything.
          • facehugger - dead facehuggers, great for xeno ruins so you can have a cool ruin without spiraling the entire round into xenomorph hell. also, this is a terrible terrible artifact of time
          • goliath - dead goliath spawner
          • headcrab - Dead headcrab for changeling-themed ruins
          • human
            • guard_zombie
            • hecu_zombie
            • legioninfested - Mob spawner used by Legion to spawn costumed bodies
              • dwarf - Corpse spawner used by dwarf legions to make small corpses
              • skeleton - Creates a dead legion-infested skeleton
                • charred - Creates a dead and burned legion-infested skeleton
              • snow - Corpse spawner used by snow legions with alternate costumes
            • skeleton/mrbones - Spawners for outfits
            • syndicatesoldier - all the corpses meant as mob drops yes, these definitely could be sorted properly. i invite (you) to do it!!
            • tigercultist/perforated - Tiger cultist corpse but with an exit wound
          • slime - dead slimes, with a var for whatever color you want.
        • ghost_role - these mob spawn subtypes do not trigger until attacked by a ghost.
      • overlay
      • overloader_trap
      • particle_effect
        • fluid - A particle effect that belongs to a fluid group.
          • foam
            • firefighting - A variant of foam which absorbs plasma in the air if there is a fire.
            • intermediate_life - A foam variant which dissipates after a duration.
            • long_life - A foam variant which lasts for an extended amount of time.
            • metal - A foam variant which
              • iron - A metal foam variant which produces slightly sturdier walls.
              • resin - A foam variant which produces atmos resin walls.
                • halon - A variant of resin foam that is created from halon combustion. It does not dissolve in heat to allow the gas to spread before foaming.
              • smart - A variant of metal foam which only produces walls at area boundaries.
            • short_life - A foam variant which dissipates quickly.
          • smoke - A fluid which spreads through the air affecting every mob it engulfs.
            • bad - Smoke that makes you cough and reduces the power of lasers.
              • black - Black smoke that makes you cough. (Actually dark grey)
              • brimdust - Smoke which applies brimdust to you, and is also bad for your lungs
              • green - Green smoke that makes you cough.
            • chem - Smoke which contains reagents which it applies to everything it comes into contact with.
              • quick - A version of chemical smoke with a very short lifespan.
              • smoke_machine - Smoke which is produced by the smoke machine. Slightly transparent and does not block line of sight.
            • colourful - Randomly coloured smoke
            • freezing - Light blue, transparent smoke which is usually paired with a blast that chills every turf in the area.
            • quick - Smoke that dissipates as quickly as possible.
            • sleeping - Smoke which knocks you out if you breathe it in.
            • transparent - Same as the base type, but is not opaque.
        • water/extinguisher - Extinguisher snowflake
      • playeronly_barrier - only player mobs (has ckey) may pass, reverse for the opposite
      • portal
      • powerup
      • projectile/tracer/legion - Used for the legion turret beam.
        • tracer - Used for the legion turret tracer.
      • puzzle_death_signal_holder
      • puzzle_poddoor_open
      • rune
      • side_rune
      • skyfall_landingzone - a simple indicator of where the skyfall is going to land.
      • slippery_acid
      • spawner
        • armory_spawn
        • debug_leash - A debug spawner that will create a corgi leashed to a bike horn, plus a beam
        • newbomb - Spawns a TTV.
        • random - Base class for all random spawners.
          • aimodule/harmless - AI uploads have the ai_module/reset , ai_module/supplied/freeform , ai_module/reset/purge , and ai_module/core/full/asimov directly mapped in
          • big_anomaly - Spawns a big, amped up fat anomaly
          • environmentally_safe_anomaly - Spawns a stable anomally that doesnt drop cores and doesn't destroy or alter the environment
          • food_or_drink/cake_ingredients - Used for the employee birthday station trait
          • glass_debris
          • glass_shards
          • lavaland_mob - For map generation, has a chance to instantiate as a special subtype
            • goliath - Spawns random goliath variants during map generation
            • legion - Spawns random legion variants during map generation
            • watcher - Spawns random watcher variants during map generation
          • maintenance/no_decals - A subtype of maintenance loot spawner that does not spawn any decals, for when you want to place them on chasm turfs and such +decals such as ashes will cause NeverShouldHaveComeHere() to fail on such turfs, which creates annoying rng based CI failures
          • structure/twelve_percent_spirit_board - 12% chance to spawn a ouija board, or a potted plant. Btw, Wawastation has a guaranteed board.
          • trash
          • vending
        • structure/window
        • xmastree
      • spectre_of_resurrection - A ghostly image of a mob showing where and what is going to respawn
        • human - A ressurection spectre with extra behaviour for humans
      • step_trigger/thrower
      • sunbeam
      • temp_visual - temporary visual effects
        • brim_burst - Show a funny animation before doing an explosion
        • circle_wave - Visual effect spawned when the bioscrambler scrambles your bio
          • syndi_teleporter - Visual effect spawned when teleporting
        • decoy/twitch_afterimage
        • delayed_mob_portal - Spawns a mob when it expires
        • despawn_effect - Plays a dispersing animation on hivelord and legion minions so they don't just vanish
        • drawing_heretic_rune
        • effect_trail - An invisible effect which chases a target, spawning spikes every so often.
          • burrowed_tentacle - An invisible effect which chases a target, spawning tentacles every so often.
          • spike_chaser - An invisible effect which chases a target, spawning spikes every so often.
        • emerging_ground_spike - A spike comes out of the ground, dealing damage after a short delay
        • falling_rocket
        • hivebrood_spawn - Fast animation to show a worm spawning
        • immortality_blast - Visual flair on the wizard when cast
        • immortality_pulse - Visual flair on living creatures who have become immortal
        • legion_brood_indicator - A skull is going to be here! Oh no!
        • legion_skull_depart - Animation for launching a skull
        • legion_skull_land - Animation for landing a skull
        • lesser_carp_rift - If you touch the entrance you are teleported to the exit, exit doesn't do anything
          • entrance - If you touch this you are taken to the exit
          • exit - Doesn't actually do anything, just a visual marker
        • lesser_carp_rift_dissipating - Just an animation
        • lightning_strike
        • meteor_heart_death - Dramatic death animation for the meteor heart mob
        • mining_overlay
        • morgue_content - Used to mimic the appearance of an object sliding into a morgue tray.
        • portal_animation - Animation used for transitioning atoms which are teleporting somewhere via a portal
        • resonance
        • slippery_ice
        • sonar_ping
        • teleport_flux - Temp visual displayed on both sides of a teleport rod teleport
        • teleporting_tornado - Teleporting tornado, spawned by warp whistle, teleports the user if they manage to pick them up.
        • thrusting_spines
        • wizard_rune - Abstract holder for shared animation behaviour
          • drawing - Animates drawing a cool rune
            • cheese - Cheese drawing
          • failed - Displayed if you stop drawing it
            • cheese - Cheese fail
      • timestop
        • channelled - indefinite version, but only if no immune atoms move.
      • trading_card_panel - A display panel that renders a set of icons (in this case mana crystals), this is generated by /obj/machinery/trading_card_button and can be manipulated by the button which generates it.
        • health - A variant of the display panel for life shards, this one is set up to display two columns.
      • turf_decal
        • board_number/one - ALPHANUMERIC DECALS (SO FAR ONLY FOR CHESS ALGEBRAIC NOTATION)
        • raven_ship_sign - NTSS RAVEN EMERGENCY SHUTTLE LOGO
        • skyrat_decals
          • departments/bridge - Departments
          • ds2/left - DS-2 Sign
          • enclave - ENCLAVE EMBLEM
          • misc/handicapped - Misc
          • syndicate/bottom/left - SYNDICATE EMBLEM
        • syndicateemblem/bottom/left - SYNDICATE EMBLEM
        • tile
          • bar - Bar tiles
          • blue - Blue tiles
          • brown - Brown tiles
          • dark - Dark tiles
          • dark_blue - Dark blue tiles
          • dark_green - Dark green tiles
          • dark_red - Dark red tiles +Dark red tiles
          • green - Green tiles
          • holiday - Date-specific tiles
            • rainbow - Pattern tiles
          • neutral - Neutral tiles
          • purple - Purple tiles
          • red - Red tiles
            • opposingcorners - Bar tiles
            • real_red - To make upstream mapping easier we overwrote the color for Red to be not red but blue for our weird bluesec +This re-adds a red coloring to be used by mappers in other areas. +Real Red Tiles
          • yellow - Yellow tiles
        • trimline - Trimlines
          • blue - Blue trimlines
          • brown - Brown trimlines
          • dark - Dark trimlines
          • dark_blue - Dark blue trimlines
          • dark_green - Dark green Trimlines
          • dark_red - Dark red trimlines
          • green - Green trimlines
          • neutral - Neutral trimlines
          • purple - Purple trimlines
          • red - Red trimlines
            • real_red - Real Red Trimlines
          • tram - Tram trimlines
          • white - White trimlines
          • yellow - Yellow trimlines
      • watcher_orbiter - Orbiting visual which shoots at mining mobs
      • wisp_food - we only exist to be eaten by wisps for food 😔👊
      • wisp_mobile - Mini car where people drive around in in their mangled corpse to heal a bit before they get dumped back on station
      • wizard_magnetism
    • energy_ball - The Tesla engine
    • gravity_fluff_field
    • item - Anything you can pick up and hold.
      • abductor/alien_omnitool
      • access_key
      • ai_module
        • core
          • full/cybersun - AI Laws
          • round_default_fallback - When the default lawset spawner cannot find a module object to spawn, it will spawn this, and this sets itself to the round default. +This is so /datum/lawsets can be picked even if they have no module for themselves.
        • malf - Makes the AI Malf, as well as give it syndicate laws.
      • aicard
        • syndie - One use AI card which downloads a ghost as a syndicate AI to put in your MODsuit
      • air_sensor - A portable version of the /obj/machinery/air_sensor +Wrenching it & turning it on will convert it back to /obj/machinery/air_sensor +Unwelding /obj/machinery/air_sensor will turn it back to /obj/item/air_sensor +The logic is same as meters
      • airbag
      • airlock_painter
      • aiupgrade - AI Upgrades
      • ammo_box
      • ammo_casing
        • arrow - base arrow
          • holy - holy arrows
            • blazing - special pyre sect arrow +in the future, this needs a special sprite, but bows don't support non-hardcoded arrow sprites
          • plastic - plastic arrows
          • poison - poison arrows
          • sticky - sticky arrows
        • foam_dart
        • laser - not exactly an energy ammo casing, but it's used by the laser gatling.
        • strilka310/lionhunter
      • analyzer
      • anesthetic_machine_kit - A boxed version of the Anesthetic Machine. This is what is printed from the medical prolathe.
      • anomaly_neutralizer
      • anomaly_releaser - Use on an anomaly core to "awake" the anomaly and stabilize it
      • antag_granter
      • antag_spawner
        • contract - WIZARD
        • loadout - A subtype meant for 'normal' antag spawner items so as to reduce the amount of required hardcoding.
        • nuke_ops - BORGS AND OPERATIVES +Device to request reinforcments from ghost pop
          • borg_tele - SYNDICATE BORG
          • clown - CLOWN OP
        • slaughter_demon - SLAUGHTER DEMON
      • aquarium_upgrade - Aquarium upgrades, can be applied to a basic aquarium to upgrade it into an advanced subtype.
      • armament_points_card - Armament points card
      • arrow_spawner
      • ash_staff
      • assembly
      • assembly_holder
      • attachable_soulcatcher
      • autosurgeon
      • bait_can
      • banner
      • barcode
      • barcodescanner
      • bdsm_candle
      • bedsheet
      • bee_smoker
      • bikehorn
      • biopsy_tool - Tool capable of taking biological samples from mobs
      • bitrunning_disk - Bitrunning tech disks which let you load items or programs into the vdom on first avatar generation. +For the record: Balance shouldn't be a primary concern. +You can make the custom cheese spells you've always wanted. +Just make it fun and engaging, it's PvE content.
        • ability
          • tier1 - Tier 1 programs. Simple, funny, or helpful.
          • tier2 - Tier 2 programs. More complex, powerful, or useful.
          • tier3 - Tier 3 abilities. Very powerful, game breaking.
        • item
          • pka_mods - proto-kinetic accelerator mods, to be applied to pka's given inside domains
          • pkc_mods - proto-kinetic crusher trophies, to be applied to pkc's given inside domains
          • tier1 - Tier 1 items. Simple, funny, or helpful.
          • tier2 - Tier 2 items. More complex, powerful, or useful.
          • tier3 - Tier 3 items. Very powerful, game breaking.
      • blood_filter
      • bloodcrawl - Bloodcrawl "hands", prevent the user from holding items in bloodcrawl
      • blueprints - Blueprints +Used to see the wires of machines on the station, the roundstart layout of pipes/cables/tubes, +as well as allowing you to rename existing areas and create new ones. +Used by the station, cyborgs, and golems.
        • cyborg - Cyborg blueprints - The same as regular but with a different fluff text.
        • golem - Golem blueprints - Used to make golem areas that won't give the hazardous area debuffs.
        • slime - Slime blueprints - Makes areas colored and compatible with xenobiology camera consoles, one time use.
      • bluespace_finger - Point at a target and teleport somewhere vaguely close to it
      • bodybag
      • bodypart
        • arm - Parent Type for arms, should not appear in game.
        • chest
          • arachnid
          • synth - Synth Chest, custom EMP effects go here to avoid stacking multiple. If they're alive they'll always have this, the rest go to organs.
        • head
          • abductor - ABDUCTOR
          • dullahan - Dullahan head preserves organs inside it
          • fly - FLY
          • jelly - JELLY
            • luminescent - LUMINESCENT
            • slime - SLIME
          • mushroom - MUSHROOM
          • mutant - General mutant bodyparts. Used in most mutant species.
          • pod - PODPEOPLE
          • robot/android - This is ultra stupid, but essentially androids use robotic limb subtypes that are NOT +immune to being replaced on species change. +Yes, that is the entire reason these exist.
          • shadow - SHADOW
          • skeleton - SKELETON
          • snail - SNAIL
          • zombie - ZOMBIE
        • leg - Parent Type for legs, should not appear in game.
      • bombcore - Bomb Cores
        • chemical
        • syndicate - Bomb Core Subtypes/// +Subtype for the bomb cores found inside syndicate bombs, which will not detonate due to explosion/burning.
      • bong
      • book
        • bible
        • granter - Books that teach things.
          • action
            • spell
              • mime/mimery
              • mindswap
              • random - Simple granter that's replaced with a random spell granter on Initialize.
              • true_random - A more volatile granter that can potentially have any spell within. Use wisely.
          • chuunibyou - Turns the user into a chuunibyou.
          • crafting_recipe
          • martial
          • sign_language - Sign language book adds the sign language component to the reading Human. +Grants reader the ability to toggle sign language using a HUD button.
        • kindred
        • manual - MANUALS (BOOKS)
          • ancient_parchment - Fluff book to hint at the cheesy grand ritual.
          • fish_catalog - Book detailing where to get the fish and their properties.
          • wiki
        • random
      • borer_egg
      • borg
        • apparatus
          • beaker/drink - Used by the service borg drink apparatus upgrade, holds drink-related items
          • circuit - Apparatus allowing Engineer/Sabo borgs to manipulate Machine and Computer circuit boards
          • organ_storage - allows medical cyborgs to manipulate organs without hands
          • sheet_manipulator - Apparatus to allow Engineering/Sabo borgs to manipulate any material sheets.
        • charger
        • cyborg_omnitool
        • cyborghug
        • forging_setup
        • hydraulic_clamp - THE CLAMPS!!
          • better - Better Clamp
          • mail
        • lollipop
        • paperplane_crossbow
        • projectile_dampen
        • stun
        • upgrade
          • affectionmodule - Quadborg time
          • borg_shapeshifter - ShapeShifter
          • defib/backpack - A version of the above that also acts as a holder of an actual defibrillator item used in place of the upgrade chip.
          • dominatrixmodule - Dominatrix time
          • selfrepair
          • snack_dispenser
          • surgerytools - Use this file to add UPGRADES to borgs, the standard items will go in the modular robot_items.dm +Advanced Surgery Tools
          • transform/syndicatejack - Syndijack
          • welder - Welder
      • borg_restart_board - This isn't an upgrade or part of the same path, but I'm gonna just stick it here because it's a tool used on cyborgs.
      • borg_shapeshifter - Shapeshifter
      • borg_snack_dispenser
      • bot_assembly
      • boulder - The objects that ore vents produce, which is refined into minerals.
        • artifact - Boulders with special artificats that can give higher mining points
        • gulag - Boulders usually spawned in lavaland labour camp area
        • gulag_expanded - Boulders usually spawned in lavaland labour camp area but with bluespace material
        • shabby - lowgrade boulder, most commonly spawned
      • boulder_beacon - Beacon to launch a new mining setup when activated. For testing and speed!
      • bounty_cube - Upon completion of a civilian bounty, one of these is created. It is sold to cargo to give the cargo budget bounty money, and the person who completed it cash.
      • boxcutter
      • broadcast_camera
      • broken_bottle
      • burner
      • camera
      • canvas
      • capturedevice
      • card
        • cardboard - A fake ID card any silly-willy can craft with wirecutters, cardboard and a writing utensil +Beside the gimmick of changing the visible name when worn, they do nothing. They cannot have an account. +They don't fit in PDAs nor wallets, They have no access. They won't trick securitrons. They won't work with chameleon masks. +Etcetera etcetera. Furthermore, talking, or getting examined on will pretty much give it away.
        • emag
        • emagfake
        • id - "Retro" ID card that renders itself as the icon state with no overlays.
          • advanced
            • cargo_gorilla - Cargorilla's ID card
            • chameleon
              • black - A special variant of the classic chameleon ID card which accepts all access.
            • heretic - An ID card capable of shapeshifting to other IDs given by the Key Keepers Burden knowledge
            • plainclothes - An ID that you can flip with attack_self_secondary, overriding the appearance of the ID (useful for plainclothes detectives for example).
            • prisoner
        • mining_point_card
      • cardboard_cutout
      • cardpack
      • cargo_teleporter
      • carrier_holder - This is the object we use if we give a mob soulcatcher. Having the souls directly parented could cause issues.
      • cautery
      • ceremonial_blade - ritual weapons. they're really bad, but they become normal weapons when sparring.
      • chainsaw
      • chameleon_scanner - Small handheld chameleon item that allows a user to mimic the outfit of another person quickly.
      • changeling/id
      • chisel - Other Stuff
      • choice_beacon
        • unholy - This is essentially just a copy paste of the holy beacon, but with all options unlocked regardless of the global religion
      • cigarette
      • Integrated Circuit Component - A component that performs a function when given an input
      • circuitboard
        • computer
          • order_console/Syndicate Produce Orders Console - A produce orders console modified to use a specified department account, and only allow express orders
          • syndiepad - Computer for activating the bounty pad
          • white_ship/ruin - ruined whiteship
        • machine
          • netpod - quantum server design +are you absolutely sure??
          • rdserver/tarkon - Now we make the physical server
          • Syndicate Pad &amp; Pad Terminal - A citizen pad modified to accept goods and return money to a specified account
        • mecha - Circuitboards
      • circular_saw
      • civ_bounty_beacon - Beacon to launch a new bounty setup when activated.
      • claymore/dragonslayer
      • climbing_hook
      • clipboard - Clipboard
      • clockwork
      • clothing
      • codeword_granter
      • codex_cicatrix
      • coin - Coin
        • eldritch
        • silver/doubloon - Coins used in the dutchmen money bag.
      • collar_bomb_button - The button that detonates the collar.
      • Compact Remote - A handheld device with one big button.
      • computer_disk
        • command - Command
        • engineering - Engineering
        • maintenance
          • arcade - A version of the arcade program with less HP/MP for the enemy and more for the player
          • camera - Camera app, forced to always have largest image size
          • modsuit_control - MODsuit UI, in your PDA!
          • scanner - Medical health analyzer app
          • spectre_meter - Returns A 'spookiness' value based on the number of ghastly creature and hauntium and their distance from the PC.
        • medical - Medical
        • ordnance - Science
        • quartermaster - Supply
        • security - Security
        • syndie_ai_upgrade - Upgrade disk used to increase the range of a syndicate AI
        • virus - Virus disk +Can't hold apps, instead does unique actions.
          • clown - Clown virus +Makes people's PDA honk +Can also be used on open panel airlocks to make them honk on opening.
          • detomatix - Detomatix virus +Sends a false message, and blows the PDA up if the target responds to it (or opens their messenger before a timer)
          • frame - Frame cartridge +Creates and opens a false uplink on someone's PDA +Can be loaded with TC to show up on the false uplink.
          • mime - Mime virus +Makes PDA's silent, removing their ringtone.
      • condom_pack - CONDOM
      • construction
        • plumbing - The plumbing RCD. All the blueprints are located in _globalvars > lists > construction.dm
        • rcd
          • borg
          • internal - Base console's internal RCD. Has a large material capacity and a fast buildspeed.
        • rld
        • rtd - An tool used to create, destroy, and copy & clear decals of floor tiles +Great for janitor but can be made only in engineering +Supports silo link upgrade and refill with glass, plasteel & iron
      • construction_kit - The item used as the basis for construction kits for organic interface
      • Compact Remote - A handheld device with several buttons. +In game, this translates to having different signals for normal usage, alt-clicking, and ctrl-clicking when in your hand.
      • conveyor_sorter
      • cortical_cage
      • cosmic_skull - Gives someone the stable voided trauma and then self destructs
      • coupon
      • crowbar
        • cyborg/power - Engineering Modules
        • power
      • crusher_trophy
      • ctf_flag - A flag used for the CTF minigame.
      • cult_shift
      • cutting_board
      • defibrillator
      • delivery
      • dest_tagger
      • desynchronizer
      • detective_scanner
      • device
      • dice - this is a prototype for dice, for a real d6 use "/obj/item/dice/d6"
      • disk
        • ammo_workbench
        • design_disk
          • bepis
            • remove_tech - Subtype of Bepis tech disk +Removes the tech disk that's held on it from the experimental node list, making them not show up in future disks.
          • cleric_mace - cleric's den items.
          • knight_gear - Wizard tower item
          • limbs - Design disks and designs - for adding limbs and organs to the limbgrower.
        • holodisk/ruin/waystation - Syndicate Holodisk
        • nifsoft_uploader - A disk that can upload NIFSofts to a recpient with a NIFSoft installed.
        • nuclear
        • surgery
          • advanced_plastic_surgery - Disk containing info for doing advanced plastic surgery. Spawns in maint and available as a role-restricted item in traitor uplinks.
          • forgottenship - forgottenship items
          • irs - Surgery disk for the space IRS (I don't know where to dump them anywhere else)
      • dna_probe - DNA Probe
        • carp_scanner - Used for scanning carps, and then turning yourself into one.
      • dnainjector/acidflesh - DNA INJECTORS
      • secret documents - Indestructible antag objective that can be photocopied.
        • nanotrasen - Nanotrasen documents
        • secret documents (photocopy) - Outcome of photocopying documents. Can be copied, and can have a blue/red seal forged.
        • syndicate - Syndicate documents
          • blue - Syndicate documents with a blue seal
          • mining - Syndicate mining documents
          • red - Syndicate documents with a red seal
      • dog_bone - A dog bone fully heals a dog, and befriends it if it's not your friend.
      • door_seal
      • dragnet_beacon
      • dualsaber
        • chaplain - HYPEREUTACTIC BLADE
      • dullahan_relay
      • dyespray
      • ectoplasm
        • construct - Construct ectoplasm. Largely a placeholder, since the death drop element needs a unique list.
        • revenant
      • eldritch_potion
      • electronics/airlock
      • encryptionkey
      • Energy Katana - The space ninja's katana.
      • exodrone - Exploration drone
      • Experi-Scanner - Handheld scanning unit to perform scanning experiments
      • extinguisher
      • extraction_pack
      • eyesnatcher
      • fireaxe
      • firelance - Two handed fire lance. Melts wall after short windup.
      • firing_pin
      • fish
        • chasm_crab - Commonly found on the mining fishing spots. Can be grown into lobstrosities
        • emulsijack - Contains fish that can be found in the syndicate fishing portal setting as well as the ominous fish case.
        • fryish
        • lavaloop
        • mastodon - From oil puddles from the elephant graveyard. Also an evolution of the "unmarine bonemass"
        • skin_crab - From the cursed spring
        • soul - From the cursed spring
        • starfish
        • tadpole
        • testdummy - dummy fish item used for the tests, as well with related subtypes and datums.
      • fish_analyzer - An item that can be used to gather information on the fish, such as but not limited to: health, hunger and traits.
      • fish_feed - Fish feed can
      • fishing_hook
      • fishing_line
        • auto_reel - A special line reel that let you skip the biting phase of the minigame, netting you a completion bonus, +and thrown hooked items at you, so you can rapidly catch them from afar. +It may also work on mobs if the right hook is attached.
      • fishing_lure
      • fishing_rod
        • mob_fisher/athletic - The internal fishing rod of the athletic fishing gloves. The more athletic you're, the easier the minigame will be.
        • telescopic
        • unslotted - Found in the fishing toolbox (the hook and line are separate items)
      • flashlight
      • flatpack
      • flatpacked_machine
      • folder
      • food - Abstract class to allow us to easily create all the generic "normal" food without too much copy pasta of adding more components
        • badrecipe
        • baguette
          • combat - Deadly bread used by a mime
        • bait
          • doughball
            • syntethic/unconsumable - Bound to the tech fishing rod, from which cannot be removed, +Bait-related preferences and traits, both negative and positive, +should be ignored by this bait. +Otherwise it'd be hard/impossible to cath some fish with it, +making that rod a shoddy choice in the long run.
            • synthetic - The abstract synthetic doughball type.
              • super - Found in the can of omni-baits, only available from the super fishing toolbox, from the fishing mystery box.
        • bread - Abstract parent object for bread items. Should not be made obtainable in game.
        • bubblegum
        • cake
        • candy - SNACKS FROM VENDING MACHINES
        • canned/envirochow
        • Abstract cheese class - Everything that is a subclass of this counts as cheese for regal rats.
        • chocolateegg - EGGS
        • clothing
        • cookie - OTHER
        • cubancarp - FISH
        • deadmouse - Mice turn into food when they die
        • donkpocket - DONK POCKETS
        • donut
          • jelly - JELLY DONUTS
            • slimejelly - SLIME DONUTS
        • egg
          • raptor_egg
          • watcher - Egg which hatches into a helpful pet. Or you can eat it if you want.
        • fishmeat
          • carp
          • donkfish - donkfish fillets. The yuck reagent is now added by the fish trait of the same name.
          • gunner_jellyfish/supply - Premade gunner jellyfish fillets from supply orders. Contains the halluginogen that'd be normally from the fish trait.
        • golem_food - Abstract food item used to feed golems
        • grown
          • banana
          • barrelmelon - Barrel melon Fruit
          • mushroom
          • poppy/geranium/fraxinella - Fraxinella Flowers.
          • pumpkin
          • star_cactus - Star Cactus Plants.
        • icecream
        • ink_sac - Extracted from squids, or any fish with the ink fish trait.
        • kebab - KEBABS AND OTHER SKEWERS
        • meat
          • cutlet
          • rawcutlet - MEAT CUTLETS
          • slab
            • human - HUMAN MEATS
            • synthmeat - OTHER MEATS
          • steak - MEAT STEAKS
        • monkeycube
        • muffin - MUFFINS
        • nugget
          • fish - subtype harvested from fish caught from, you guess it, the deepfryer
        • pancakes
        • patty/plain - Exists purely for the crafting recipe (because it'll take subtypes)
        • pie
        • pizza
        • rationpack
        • ready_donk
        • salad - SALAD
        • sandwich/death
        • spaghetti - spaghetti prototype used by all subtypes
        • tempeh - MEATS AND ALIKE
        • vendor_tray_meal
        • waffles - WAFFLES
        • watermelonslice - OTHER
      • forcefield_projector
      • forging
      • frog_contract
      • frog_statue
      • fuel_pellet
      • fugu_gland - Item you use on a mob to make it bigger and stronger
      • gas_filter
      • gibtonite
      • gibtonite_hand - Lets you hold a gibtonite ore in one hand and shoot it like a gun
      • gift - Gifts to give to players, will contain a nice toy or other fun item for them to play with.
        • anything - Gifts that typically only very OP stuff or admins or Santa Claus himself should be giving out, as they contain ANY valid subtype of /obj/item, including stuff like instagib rifles. Wow!
      • glassblowing
      • goldeneye_key
      • golem_shell
        • servant - made with xenobiology, the golem obeys its creator
      • goliath_infuser_hammer
      • goliath_saddle - Use this to ride a goliath
      • gps
      • graft - A new subsystem for hydroponics, as a way to share specific traits into plants, as a way to phase out the DNA manipulator.
      • grapple_gun
      • gravity_harness
      • greentext
      • grenade - Base class for all grenades.
        • c4
          • es8
          • Spider Charge - A unique version of c4 possessed only by the space ninja. Has a stronger blast radius. +Can only be detonated by space ninjas with the bombing objective. Can only be set up where the objective says it can. +When it primes, the space ninja responsible will have their objective set to complete.
        • chem_grenade
          • metalfoam - PREMADE GRENADES
        • gas_crystal
        • iedcasing
        • mirage
        • primer
        • smokebomb - This is smoke bomb, mezum koman. It is a grenade subtype. All craftmanship is of the highest quality. +It menaces with spikes of iron. On it is a depiction of an assistant. +The assistant is bleeding. The assistant has a painful expression. The assistant is dead.
        • xen_crystal
      • grown
      • guardian_creator - An item which grants you your very own soul buddy
        • carp - Guardian creator only spawned by admins, which creates a holographic fish. You can have several of them.
        • miner - Guardian creator available to miners from chests, very limited selection and randomly assigned.
        • tech - Guardian creator available in the traitor uplink. All but dextrous are available, you can pick which you want, and changelings cannot use it.
        • wizard - Guardian creator available in the wizard spellbook. All but support are available.
      • gun
        • ballistic - Subtype for any kind of ballistic gun +This has a shitload of vars on it, and I'm sorry for that, but it does make making new subtypes really easy
          • automatic
            • ar/modular/m44a
            • mini_uzi/chimpgun - Weak uzi for syndicate chimps. It comes in a 4 TC kit. +Roughly 9 damage per bullet every 0.2 seconds, equaling out to downing an opponent in a bit over a second, if they have no armor.
            • pistol
              • m1911/chimpgun - Weak 1911 for syndicate chimps. It comes in a 4 TC kit. +15 damage every.. second? 7 shots to kill. Not fast.
              • robohand - obj/item/clothing/head/hats/sus_bowler/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) +obj/item/clothing/head/hats/sus_bowler/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, gentle = FALSE, quickstart = TRUE)
            • rom_flech
            • rom_smg
            • smart_machine_gun
            • smartgun
            • sol_grenade_launcher
            • sol_rifle
            • tommygun
              • chimpgun - Weak tommygun for syndicate chimps. It comes in a 4 TC kit. +Roughly 9 damage per bullet every 0.2 seconds, equaling out to downing an opponent in a bit over a second, if they have no armor.
          • bow
            • clockwork
            • divine - chaplain's divine archer bow
            • longbow - basic bow, used for medieval sim
            • shortbow - Shortbow, made via the crafting recipe
          • revolver/chaplain
          • rifle
            • boltaction/pipegun - PIPE GUNS
            • enchanted - MAGICAL BOLT ACTIONS
          • rocketlauncher
          • shotgun
            • automatic/dual_tube
            • bulldog
            • monkey - An underpowered shotgun given to Pun Pun when the station job trait roll.
        • blastcannon - A gun that consumes a TTV to shoot an projectile with equivalent power.
        • energy
          • alien/zeta - Weaponry
          • cell_loaded
            • alltypes - A cellgun used for debug, it is able to use any weaponcell.
          • dueling
          • e_gun/dragnet
          • ionrifle - GUN SPRITE OVERWRITES
          • laser
          • lasercannon - Laser Cannon
          • marksman_revolver
          • modular_laser_rifle
          • recharge
            • fisher - A silly gun that does literally zero damage, but disrupts electrical sources of light, like flashlights.
            • kinetic_accelerator
            • resonant_system - Yes. This is a lot of code frankensteining. I am not proud of my work but damned am i proud it works... Atleast if you're seeing this it works.
          • Circuit Gun - A gun that lets you fire projectiles to enact circuitry.
          • xray - X-ray gun
        • magic
          • hook - Meat Hook
            • debug - Debug hook for fun (AKA admin abuse). doesn't do any more damage or anything just lets you wildfire it.
          • midas_hand
          • staff
            • change
            • chaos
              • true_wabbajack - Staff of chaos given to the wizard upon completing a cheesy grand ritual. Is completely evil and if something +breaks, it's completely intended. Fuck off. +Also can be used by everyone, because why not.
            • healing
        • medbeam
          • mech - Mech Version
        • microfusion
          • mcr01/advanced - Gun for cargo crates.
        • syringe
          • syndicate/prototype - syndicate prototype for smuggling missions
      • hairbrush
      • hallucinated
      • hand_item - For all of the items that are really just the user's hand used in different ways, mostly (all, really) from emotes
      • hand_labeler - A mini-tool used to apply label items onto something to modify its name.
      • hand_tele
      • handheld_soulcatcher
      • hardened_spike
      • harmalarm
      • healthanalyzer
      • hemostat
      • heretic_labyrinth_handbook - A heretic item that spawns a barrier at the clicked turf, 3 uses
      • hfr_box
      • hierophant_club
      • highfrequencyblade
      • hivemind_keyboard
      • holochip
      • holocigarette
      • holosign_creator/atmos
      • house_edge
      • hypospray/mkii
      • implant - Parent class for all implants
        • abductor
        • beacon - Essentially, just turns the implantee into a teleport beacon.
        • chem
        • exile/noteleport - Used to help the staff of the space hotel resist the urge to use the space hotel's incredibly alluring roundstart teleporter to ignore their flavor/greeting text and come to the station.
        • explosive
          • battle_royale - Implant used by the traitor Battle Royale objective, is not active immediately
          • deniability - Microbomb which prevents you from going into critical condition but also explodes after a timer when you reach critical condition in the first place.
          • macro - Macrobomb has the strength and delay of 10 microbombs
        • mod
        • sad_trombone - A passive implant that plays sound/misc/sadtrombone.ogg when you deathgasp for any reason
        • spell
        • teleport_blocker - Blocks the implantee from being teleported
        • tracking
        • uplink
      • implantcase - Item used to store implants. Can be renamed with a pen. Implants are moved between those and implanters when a mob uses an implanter on a case.
        • sad_trombone - Implant case that spawns with a sad trombone implant, as well as an appropriate name and description
        • tracking - An implant case that spawns with a tracking implant, as well as an appropriate name and description.
        • weapons_auth - An implant case that spawns with a firearms authentication implant, as well as an appropriate name and description.
      • implanter - Players can use this item to put obj/item/implant's in living mobs. Can be renamed with a pen.
        • sad_trombone - Implanter that spawns with a sad trombone implant, as well as an appropriate name
      • implantpad
      • inducer
      • inert_anomaly - Doesn't do anything, consolation prize if you neu
      • inflatable
      • N-spect scanner - Creates reports for area inspection bounties.
      • instrument
      • Integrated Circuitboard - A circuitboard that holds components that work together
        • loaded
          • Hello World preset - Says "Hello World" when triggered. Needs to be wired up and connected first.
          • Speech Relay preset - Acts like poly. Says whatever it hears.
      • Janicart Upgrade - Functional upgrades that can be installed into a janicart.
      • key/kink_collar
      • key_card - Keycard that's meant to be able to open a /obj/machinery/door/airlock/keyed. Without it, the door will not open.
      • kheiral_cuffs - Kheiral Cuffs +Acts as a GPS beacon & connects to station crew monitors from lavaland
      • kinetic_crusher
      • kinky_shocker
      • kirbyplants
      • kitchen/tongs - Tongs, let you pick up and feed people food from further away.
      • knife
      • label - The label item applied when labelling something
      • language_manual
      • laser_pointer
      • lazarus_injector - Players can revive simplemobs with this.
      • light
      • light_eater - An armblade that instantly snuffs out lights
      • lighter
      • lightreplacer
      • lipstick
      • machine_remote
      • mail - Mail is tamper-evident and unresealable, postmarked by CentCom for an individual recepient.
        • junkmail
        • mail_strike - Generic mail used in the mail strike shuttle loan event
        • traitor
          • mail_strike - Also found in the mail strike shuttle loan. It contains a random grenade that'll be triggered when unwrapped
      • market_uplink
      • match
      • mecha_ammo
        • missiles_pep - PEP-6 Missile type - Used by Robotics
        • missiles_srm - Missile Ammo +SRM-8 Missile type - Used by Nuclear Operatives
      • mecha_parts - Mecha Parts
        • chassis
          • clarke - Clarke
          • durand - Durand
          • gygax - Gygax
          • honker - HONK
          • odysseus - Odysseus
          • phazon - Phazon
          • ripley - Ripley
        • mecha_equipment - Mecha Equipment +All mech equippables are currently childs of this
          • air_tank - Mech air tank module
          • armor - ARMOR BOOSTER MODULES
          • concealed_weapon_bay - CONCEALED WEAPON BAY
          • drill
          • ejector
          • extinguisher
          • generator - GENERATOR
          • gravcatapult
          • hydraulic_clamp
          • medical
          • orebox_manager - Special equipment for the Clarke mech, handles moving ore without giving the mech a hydraulic clamp and cargo compartment.
          • radio - Mech radio module
          • rcd
          • repair_droid - REPAIR DROID
          • teleporter - TELEPORTER
          • thrusters - THRUSTERS
          • weapon
            • ballistic
              • launcher
              • missile_rack - Missiles +SRM-8 Missile Rack - Used by Nuclear Operatives - Explodes when it hits anything
                • breaching - PEP-6 Missile Rack - Used by Robotics - Explodes only when it hits dense objects like walls, borgs and mechs
            • paddy_claw - long claw of the law
          • wormhole_generator - WORMHOLE GENERATOR
        • mecha_tracking
      • melee
      • mending_globule - This item is what is embedded into the mob, and actually handles healing of mending globules
      • microfusion_cell_attachment
      • microfusion_gun_attachment - MICROFUSION GUN UPGRADE ATTACHMENTS +For adding unique abilities to microfusion guns, these can directly interact with the gun!
      • microfusion_phase_emitter
      • mind_controller
      • minebot_remote_control
      • minespawner
      • mining_scanner - Mining Scanners
      • mining_stabilizer - Stabilising serum prevents monster organs from decaying before you can use them.
      • mining_voucher - Mining Equipment Voucher
      • mmi
        • posibrain
          • sphere - Posibrains but spherical. They can roll around and you can kick them
      • mod - MODsuits, trade-off between armor and utility
        • control - Misc stuff to avoid having files with three lines in them.
        • core
        • module - MOD Module - A special device installed in a MODsuit allowing the suit to do new stuff.
          • active_sonar - Active Sonar - Displays a hud circle on the turf of any living creatures in the given radius
          • adrenaline_boost - Adrenaline Boost - Stops all stuns the ninja is affected with, increases his speed.
          • anomaly_locked - Anomaly Locked - Causes the module to not function without an anomaly.
            • antigrav - Anti-Gravity - Makes the user weightless.
            • kinesis - Kinesis - Gives you the ability to move and launch objects.
              • admin - Admin suit version of kinesis. Can grab anything at any range, may enable phasing through walls.
            • teleporter - Teleporter - Lets the user teleport to a nearby location.
          • anti_magic - Magic Nullifier - Protects you from magic.
          • armor_booster - Armor Booster - Grants your suit more armor and speed in exchange for EVA protection. Also acts as a welding screen.
          • ash_accretion
          • atrocinator - Atrocinator - Flips your gravity.
          • auto_doc - Blatant copy of the adrenaline boost module.
          • balloon - Balloon Blower - Blows a balloon.
            • advanced - Advanced Balloon Blower - Blows a long balloon.
          • baton_holster
          • bikehorn - Bike Horn - Plays a bike horn sound.
          • chameleon - Chameleon - lets the suit disguise as any item that would fit on that slot.
          • circuit
          • clamp - Hydraulic Clamp - Lets you pick up and drop crates.
          • constructor - Constructor - Lets you build quicker and create RCD holograms.
          • criminalcapture - Criminal Capture - Generates hardlight bags you can put people in and sinch.
            • patienttransport - Patrient Transport - Generates hardlight bags you can put people in.
          • defibrillator - Defibrillator - Gives the suit an extendable pair of shock paddles.
          • dispenser - Dispenser - Dispenses an item after a time passes.
            • mirage - Mirage grenade dispenser - Dispenses grenades that copy the user's appearance.
          • dna_lock - DNA Lock - Prevents people without the set DNA from activating the suit.
          • drill - Drill - Lets you dig through rock and basalt.
          • emp_shield - EMP Shield - Protects the suit from EMPs.
          • energy_net - Energy Net - Ensnares enemies in a net that prevents movement.
          • energy_shield - Energy Shield - Gives you a rechargeable energy shield that nullifies attacks.
          • eradication_lock - Eradication lock - Prevents people who aren't the owner of the suit from existing on the timeline via eradicating the suit with the intruder inside
          • flamethrower - Flamethrower - Launches fire across the area.
          • flashlight - Flashlight - Gives the suit a customizable flashlight.
            • darkness - Like the flashlight module, except the light color is stuck to black and cannot be changed.
          • gps - Internal GPS - Extends a GPS you can use.
          • hacker - Hacker - This module hooks onto your right-clicks with empty hands and causes ninja actions.
          • hat_stabilizer - Hat Stabilizer - Allows displaying a hat over the MOD-helmet, à la plasmamen helmets.
          • headprotector - Safety-First Head Protection - Protects your brain matter from sudden impacts.
          • health_analyzer - Health Analyzer - Gives the user a ranged health analyzer and their health status in the panel.
          • holster - Holster - Instantly holsters any not huge gun.
          • hydraulic
          • infiltrator
          • injector - Injector - Gives the suit an extendable large-capacity piercing syringe.
          • insignia - Insignia - Gives you a skin specific stripe.
          • jetpack - Ion Jetpack - Lets the user fly freely through space using battery charge.
          • joint_torsion - A module that recharges the suit by an itsy tiny bit whenever the user takes a step. Originally called "magneto module" but the videogame reference sounds cooler.
          • jump_jet - Jump Jet - Briefly removes the effect of gravity and pushes you up one z-level if possible.
          • longfall - Longfall - Nullifies fall damage, removing charge instead.
          • magboot - Magnetic Stability - Gives the user a slowdown but makes them negate gravity and be immune to slips.
          • magnetic_harness - Magnetic Harness - Automatically puts guns in your suit storage when you drop them.
          • medbeam - Medbeam - Medbeam but built into a modsuit
          • megaphone - Megaphone - Lets you speak loud.
          • microwave_beam - Microwave Beam - Microwaves items instantly.
          • mister - Mister - Sprays water over an area.
            • atmos - Resin Mister - Sprays resin over an area.
          • mouthhole - Eating Apparatus - Lets the user eat/drink with the suit on.
          • noslip - Anti Slip - Prevents you from slipping on water.
          • orebag - Ore Bag - Lets you pick up ores and drop them from the suit.
          • organizer - Organizer - Lets you shoot organs, immediately replacing them if the target has the organ manipulation surgery.
          • paper_dispenser - Paper Dispenser - Dispenses (sometimes burning) paper sheets.
          • pathfinder - Pathfinder - Can fly the suit from a long distance to an implant installed in someone.
          • pepper_shoulders - Pepper Shoulders - When hit, reacts with a spray of pepper spray around the user.
          • plasma_stabilizer - Plasma Stabilizer - Prevents plasmamen from igniting in the suit
          • plate_compression - Plate Compression - Compresses the suit to normal size
          • power_kick - Power kick - Lets the user launch themselves at someone to kick them.
          • projectile_dampener - Projectile Dampener - Weakens projectiles in range.
          • quick_carry - Quick Carry - Lets the user carry bodies quicker.
          • rad_protection - Radiation Protection - Protects the user from radiation, gives them a geiger counter and rad info in the panel.
          • reagent_scanner - Reagent Scanner - Lets the user scan reagents.
          • recycler - Module that shoves garbage inside its material container when the user crosses it, and eject the recycled material with MMB.
            • donk - A black market variant of the above that dispenses riot foam dart boxes
          • rewinder - Rewinder - Activating saves a point in time, after 10 seconds you will jump back to that state.
          • shooting_assistant - A module that enhances the user's ability with firearms, with a couple drawbacks: +In 'Stormtrooper' mode, the user will be given faster firerate, but lower accuracy. +In 'Sharpshooter' mode, the user will have better accuracy and ricochet to his shots, but slower movement speed. +Both modes prevent the user from dual wielding guns.
          • signlang_radio - Sign Language Translator - allows people to sign over comms using the modsuit's gloves.
          • smartgun
          • sphere_transform
          • springlock - Springlock Mechanism - allows your modsuit to activate faster, but reagents are very dangerous.
            • contractor/no_complexity - This exists for the adminbus contractor modsuit. Do not use otherwise
          • stamp - Stamper - Extends a stamp that can switch between accept/deny modes.
          • status_readout - Status Readout - Puts a lot of information including health, nutrition, fingerprints, temperature to the suit TGUI.
            • ninja - Ninja Status Readout - Like the normal status display (see the base type), but with a clock.
            • operational - Unrelated-to-Spider-Clan version of the module.
          • stealth - Cloaking - Lowers the user's visibility, can be interrupted by being touched or attacked.
          • storage - Storage - Adds a storage component to the suit.
          • surgical_processor - Surgical Processor - Lets you do advanced surgeries portably.
          • t_ray - T-Ray Scan - Scans the terrain for undertile objects.
          • tanner - Tanner - Tans you with spraytan.
          • tem - TEM - Lets you eradicate people.
          • tether - Emergency Tether - Shoots a grappling hook projectile in 0g that throws the user towards it.
          • thermal_regulator - Thermal Regulator - Regulates the wearer's core temperature.
          • thread_ripper - Thread Ripper - Temporarily rips apart clothing to make it not cover the body.
          • timeline_jumper - Timeline Jumper - Infinite phasing. needs some special effects
          • timestopper - Timestopper - Need I really explain? It's the wizard's time stop, but the user channels it by not moving instead of a duration.
          • visor - Base Visor - Adds a specific HUD and traits to you.
            • rave - Rave Visor - Gives you a rainbow visor and plays jukebox music to you.
          • weapon_recall - Weapon Recall - Teleports your katana to you, prevents gun use.
          • welding - Welding Protection - Makes the helmet protect from flashes and welding.
            • camera_vision - Camera Vision - Prevents flashes, blocks tracking.
      • modular_computer
        • debug - Debug ModPC +Used to spawn all programs for Create and Destroy unit test.
        • pda
          • assistant - No Department/Station Trait
          • cargo - Supply
          • clown
          • engineering - Engineering
          • heads - Command
          • janitor - Service
          • medical - Medical
          • nukeops - Nuclear PDA
          • science - Science
          • security - Security
          • silicon - Silicon PDA
          • syndicate - Non-roles
          • synth - Custom computer for synth brains
        • processor
      • mop
      • mounted_machine_gun_folded
      • multitool - Multitool -- A multitool is used for hacking electronic devices.
      • mutant_hand - Generic mutant hand type for use with the mutant hands component +(Technically speaking, the component doesn't require you use this type. But it's here for posterity)
        • shattered_risen - The "hand" "weapon" used by shattered risen
      • necromantic_stone - Necromantic Stone
      • newspaper - Newspapers +A static version of the newscaster, that won't update as new stories are added. +Can be scribbed upon to add extra text for future readers.
      • nif_hud_adapter
      • nif_repair_kit - NIF Repair Kit.
      • nifsoft_remover - NIFSoft Remover. This is mostly here so that security and antags have a way to remove NIFSofts from someome
      • nuclear_challenge
        • literally_just_does_the_message - Subtype that does nothing but plays the war op message. Intended for debugging
      • nullrod
        • claymore - Claymore Variant +This subtype possesses a block chance and is sharp.
        • godhand - Other Variants +Not a special category on their own, but usually possess more unique mechanics
        • nullblade
        • staff
        • vibro - Vibro Variant +This subtype possesses armor penetration and is sharp.
      • offhand - The offhand dummy item for two handed items
      • ore_sensor - Ashwalker ore sensor crafted from brimdemon ash
      • organ
        • external - System for drawing organs with overlays. These overlays are drawn directly on the bodypart, attached to a person or not +Works in tandem with the /datum/sprite_accessory datum to generate sprites +Unlike normal organs, we're actually inside a persons limbs at all times
          • antennae - A moth's antennae
          • frills - The frills of a lizard (like weird fin ears)
          • genital
          • horns - The horns of a lizard!
          • mushroom_cap - A mushpersons mushroom cap organ
          • pod_hair - The leafy hair of a podperson
          • snout - Guess what part of the lizard this is?
          • spines - A lizards spines (those things on their back), but also including tail spines (gasp)
          • tail - Tail parent, it doesn't do very much.
          • taur_body
          • wings - Wing base type. doesn't really do anything
            • functional - The true wings that you can use to fly and shit (you cant actually shit with them)
              • angel - angel wings, which relate to humans. comes with holiness.
              • dragon - dragon wings, which relate to lizards.
              • fly - fly wings, which relate to flies.
              • moth
                • megamoth - megamoth wings, which relate to moths as an alternate choice. they're both pretty cool.
                • mothra - mothra wings, which relate to moths.
              • robotic - robotic wings, which relate to androids.
              • skeleton - skeletal wings, which relate to skeletal races.
              • slime - slime wings, which relate to slimes.
            • moth - Moth wings! They can flutter in low-grav and burn off in heat
        • internal
          • alien
          • appendix
            • corrupt - It's full of worms
            • golem
            • roach - Roach appendix: +No appendicitus! weee!
          • body_egg
          • borer_body
          • brain
            • carp - carp brain. you need to occasionally go to a new zlevel. think of it as... walking your dog!
            • goliath - goliath brain. you can't use gloves but one of your arms becomes a tendril hammer that can be used to mine!
            • primate
            • shadow - the key to some of their powers
            • synth
            • voidwalker - Voidwalker brain stacked with a lot of the abilities
          • cyberimp
            • arm
              • razor_claws/right_arm - bespoke subtypes for augs menu since it's a bit wonky
              • strongarm
            • brain
              • anti_stun
              • nif
                • standard - This is the standard 'baseline' NIF model.
            • chest/spine
            • eyes/hud
          • ears
          • empowered_borer_egg
          • eyes
            • corrupt - Renders you unable to see people who were heretics at the time that this organ is gained
            • night_vision
              • goliath - goliath eyes, simple night vision
              • rat - way better night vision, super sensitive. lotta things work like this, huh?
            • robotic - Robotic
            • voidwalker - Voidwalker eyes with nightvision and thermals
          • heart
            • carp - makes you cold resistant, but heat-weak.
            • corrupt - Occasionally bombards you with spooky hands and lets everyone hear your pulse.
            • cybernetic
            • demon - The loot from killing a slaughter demon - can be consumed to allow the user to blood crawl
            • ethereal
            • freedom
            • gland
            • goliath - goliath heart gives you the ability to survive ash storms.
            • gondola - makes you a pacifist and turns most mobs neutral towards you
            • hemophage
            • monkey - just a typepath to specify that it's monkey-owned, used for the heart thief objective
            • nightmare
            • rat - makes you smaller, walk over tables, and take 1.5x damage
            • roach - Roach heart: +Reduces damage taken from brute attacks from behind, +but increases duration of knockdowns
            • snail
          • legion_tumour - Left behind when a legion infects you, for medical enrichment
          • liver
            • bone - Bone liver +Gives the owner liverless metabolism, makes them vulnerable to bone hurting juice and +makes milk heal them through meme magic.
              • plasmaman - Plasmaman liver +Makes plasma and hot ice heal wounds, also makes gunpowder a hallucinogen.
            • corrupt - Randomly secretes alcohol or hallucinogens when you're drinking something
            • golem - Golem liver +Basically only exists to remove the nutriment factor from consumables, +so golems can only consume minerals even when injecting reagents.
            • gondola - Loving arms: your hands become unable to hold much of anything but your hugs now infuse the subject with pax.
            • roach - Roach liver: +Purges toxins at a higher threshold, but takes more damage from them if not purged
          • lungs
            • carp - Carp lungs! You can breathe in space! Oh... you can't breathe on the station, you need low oxygen environments. +Inverts behavior of lungs. Bypasses suffocation due to space / lack of gas, but also allows Oxygen to suffocate.
            • corrupt - Sometimes cough out some kind of dangerous gas
            • ethereal
            • lavaland/goliath - goliath lungs! You can breathe lavaland air mix but can't breath pure O2 from a tank anymore.
          • monster_core - Useful organs which drop as loot from a mining creature. +Generalised behaviour is that they will decay and become useless unless provided with serum. +These should usually do something both when used in-hand, or when implanted into someone.
            • brimdust_sac - Gives you three stacks of Brimdust Coating, when you get hit by anything it will make a short ranged explosion. +If this happens on the station it does much less damage, and slows down the bearer. +If implanted, you can shake off a cloud of brimdust to give this buff to people around you.area +It will also automatically grant you one stack every 30 seconds if you are on lavaland.
            • regenerative_core - On use in hand, heals you over time and removes injury movement debuffs. Also makes you a bit sad. +On use when implanted, fully heals. Automatically fully heals if you would enter crit.
              • legion - Different graphics/desc for the lavaland legion
            • rush_gland - On use in hand, makes you run really fast for 5 seconds and ignore injury movement decrease. +On use when implanted, run for longer and ignore all negative movement. Automatically triggers if health is low (to escape).
          • stomach
            • alien - The stomach that lets aliens eat people/things
            • corrupt - Rapidly become hungry if you are not digesting blood
            • ethereal
            • golem
            • rat - increases hunger, disgust recovers quicker, expands what is defined as "food"
            • roach - Roach stomach: +Makes disgust a non-issue, very slightly worse at passing off reagents +Also makes you more hungry
            • synth
          • tongue
            • carp - occasionally sheds carp teeth, stronger melee (bite) attacks, but you can't cover your mouth anymore.
            • corrupt - Sometimes speak in incomprehensible tongues
            • gondola - Zen (tounge): You can no longer speak, but get a powerful positive moodlet
            • human - This "human" tongue is only used in Character Preferences / Augmentation menu. +The base tongue class lacked a say_mod. With say_mod included it makes a non-Human user sound like a Human.
            • rat - you occasionally squeak, and have some rat related verbal tics
      • orion_ship - A minibomb achieved from winning at emagged Orion.
      • pai_cable
      • pai_card
      • paint
      • paint_palette - Simple painting utility.
      • paper - Paper +also scraps of paper
        • crumpled
          • bloody/ruins/lavaland/clown_planet/escape - lavaland clown planet papers
          • ruins
            • bigderelict1/manifest - bigderelict1 items
            • derelict_sulaco/captain - derelictsulaco items
            • originalcontent - originalcontent items
            • snowdin/foreshadowing - papers
        • fake_report - Reports printed by fake N-spect scanner
        • fluff
          • awaymissions/astrum - Fluff notes
          • export_gate - Small explanation for engineering on how to set-up the radioactive nebula shielding
          • operative - instructions for nuclear operatives on how to use their medipen
          • overwatch - One of the special items that spawns in the overwatch agent's room.
          • radiation_nebula - Small explanation for engineering on how to set-up the radioactive nebula shielding
          • radiation_nebula_virologist - Warns medical that they can't use radioactive resonance
          • ruins
            • asteroid4/extraction - asteroid4 items
            • crashedclownship/true_nation - crashedclownship items
            • dangerous_research
              • armstrong_memo_1 - Armstrong Memos
              • beaches_journal_1 - Dream-Of-Beaches Journal
              • manifest - Paper Fluff Lore
            • deepstorage/water_concern - deepstorage items
            • djstation - djstation items
            • forgottenship/password - forgottenship lore
            • interdyne/reception - Research notes
            • listeningstation/reports - Papers used in The Listening Station ruin.
            • oldstation - Oldstation items
              • protosupermatter - Supermatter crystal fluff paper used in Charlie station ruin
            • spacehotel/notice - spacehotel items
            • the_outlet/amos_note - lore papers
            • thederelict/equipment - thederelict items
            • waystation
              • memo - Vault Paper
              • menu - Dorms Room Papers
              • sop - Cargo Bay Paper
          • scrambled_pass
          • spaceruins/lizardsgas/memorandum - Space Ruins
          • stations
            • centcom/disk_memo - CentCom
            • lavaland
              • orm_notice - Lavaland
              • sloth/note - lavaland slot ruin items
              • surface/henderson_report - lavaland surface papers
        • guides/jobs
          • engi/gravity_gen - Gravity generator instruction guide
          • hydroponics - Job guides n' fluff
        • joker
        • monitorkey - Monitor decryption key paper
        • paperslip
          • fishing_tip - Used to give the average player info about fishing stuff that's unknown to many.
          • ration_ticket
        • report
        • secretrecipe
        • work_contract
      • paper_bin
      • papercutter
      • paperplane
        • syndicate/hardlight - The fabled paper plane crossbow and its hardlight paper planes.
      • Paperwork - Paperwork documents that can be stamped by their associated stamp to provide a bonus to cargo.
      • pen
        • edagger
          • prototype - syndicate prototype for smuggling missions
        • uplink
      • perfume
      • permanent_portal_anchor
      • permanent_portal_creator - A simple one-use beacon to activate a two-way portal to the anchored receiver it's linked to.
      • petri_dish - Holds a biological sample which can then be put into the growing vat
        • random - Petri dish with random sample already in it.
      • ph_booklet
      • ph_meter
      • ph_paper
      • physic_manipulation_tool
      • pickaxe - Pickaxes & Drills & Shovels
      • piggy_bank - Piggy banks. They store your hard-earned money until you or someone destroys it. +If the persistence id is set, money will be carried between rounds until broken.
      • pillow
      • pinata - An item that when used inhand spawns an immovable pinata
      • pinpointer
      • pipe
      • pipe_dispenser
      • pitchfork - Pitchfork item
      • pizzabox
      • plant_analyzer
      • plaque
      • plate
      • plate_shard
      • plunger - A wearable tool that lets you empty plumbing machinery and some other stuff
        • reinforced - A faster reinforced plunger
      • polymorph_belt - Belt which can turn you into a beast, once an anomaly core is inserted
        • functioning - Pre-activated polymorph belt
      • poster - The rolled up item form of a poster
      • powersink
      • pressure_plate
      • pushbroom
      • quantum_keycard
      • queen_bee
      • radio
        • borg - Borg Radios
        • headset
        • intercom
        • weather_monitor - Portable mining radio purchasable by miners
      • raptor_dex
      • Raw Anomaly Cores - The current precursor to anomaly cores, these are manufactured into 'finished' anomaly cores for use in research, items, and more.
      • rcl
      • reagent_containers
        • blood
          • o_minus/bloodsucker - Bloodbag of Bloodsucker blood (used by Ghouls only)
        • borghypo - Borg Hypospray
          • borgshaker - Borg Shaker for the serviceborgs
          • clown - Clownborg hypospray
          • medical - Default Medborg Hypospray
          • peace - Peacekeeper hypospray
          • syndicate - Syndicate medborg hypospray
        • chem_pack
        • chemtank
        • condiment - Condiments
        • cup
          • bottle/syrup_bottle
          • bowl
            • soup - This subtype is only for easy mapping / spawning in specific types of soup. +Do not use it anywhere else.
          • glass - Drinks.
            • bottle
              • champagne
              • juice - Cartons +Subtype of glass that don't break, and share a common carton hand state. +Meant to be a subtype for use in Molotovs
              • molotov - MOLOTOV
              • pruno
              • ritual_wine - A fun drink enjoyed by the tiger cooperative, might corrode your brain if you drink the whole bottle
            • coffee - Drinks
            • colocup
            • drinkingglass
            • shaker - drinkingglass and shaker
            • waterbottle/large/cryptobiolin - Not exactly a MODsuit thing but it's needed for the refills huh?
          • rag
          • soda_cans
          • soup_pot
          • tube - Test tubes created by chem master and pandemic and placed in racks
          • watering_can/advanced
        • hypospray
        • pill
          • happinesspsych - Psychologist inventory pills
          • maintenance - Black and white pills that spawn in maintenance and have random reagent contents
          • shadowtoxin - this pill is used only in a legion mob drop
          • zoom - drugs
        • spray
          • waterflower/superlube - Subtype used for the lavaland clown ruin.
        • syringe
      • research_notes
      • research_paper
      • research_scrap
      • resonator - Resonator
      • respawn_implant
      • Generic restraints - Parent class for handcuffs and handcuff accessories
        • Handcuffs - Stuff that makes humans unable to use hands
          • Alien handcuffs - Abductor reskin of the handcuffs.
          • Cable restraints - Ghetto handcuffs. Removing those is faster.
            • blue - Blue cable restraints
            • cyan - Cyan cable restraints
            • green - Green cable restraints
            • orange - Orange (the color) cable restraints
            • pink - Pink cable restraints
            • red - Red cable restraints
            • Sinew restraints - Primal ghetto handcuffs
            • white - White cable restraints
            • yellow - Yellow cable restraints
            • Zipties - One-use handcuffs that take 45 seconds to resist out of instead of one minute. This turns into the used version when applied.
              • Fake Zipties - One-use handcuffs that is very easy to break out of, meant as a one-use alternative to regular fake handcuffs.
              • Used zipties - What zipties turn into when applied. These can't be used to cuff people.
          • Fake handcuffs - Fake handcuffs that can be removed near-instantly.
          • milker
        • Generic leg cuffs - Parent class for everything that can legcuff carbons. Can't legcuff anything itself.
      • resurrection_crystal
      • retractor
      • reverse_bear_trap
      • ritual_totem
      • rna_extractor
      • robot_model - Definition of /obj/item/robot_model, which defines behavior for each model. +Deals with the creation and deletion of modules (tools). +Assigns modules and traits to a borg with a specific model selected.
      • robot_suit
      • royale_implanter - Quietly implants people with battle royale implants
      • royale_remote - Activates implants implanted by linked royale implanter
      • rpd_upgrade
      • rsd_interface
      • rsf
      • runic_vendor_scepter
      • rwd
      • sales_tagger
      • scalpel
      • screwdriver
      • scrying - Scrying
      • secateurs
      • seeds
        • bamboo - and bamboo!
        • poppy/geranium/fraxinella - Fraxinella seeds.
        • replicapod - The actual replica pods themselves!
        • star_cactus - Star Cactus seeds, mutation of lavaland cactus.
        • watermelon/barrel - Barrel melon Seeds
      • sequence_scanner
      • serviette
      • serviette_pack
      • Whetstone - Items used for sharpening stuff
      • Shell Item - Printed out by protolathes. Screwdriver to complete the shell.
      • shield
        • Blood Shield - The shield spawned when using Thaumaturgy when strong enough. +Copied mostly from '/obj/item/shield/changeling'
        • energy
        • riot
      • shockpaddles
      • shovel/giant_wrench
      • shuttle_curse
      • sign
        • flag
          • usa - Please, for the love of God, use this in Black Mesa ONLY. NOWHERE ELSE. It's the only reason it was allowed in the game.
      • singularityhammer
      • skillchip
        • big_pointer - A skillchip that gives the user bigger arrows when pointing at things (like some id trims do). +As a bonus, they can costumize the color of the arrow/pointer too.
        • job/chef
        • matrix_taunt
      • sliced_pipe
      • slime_extract - Slime Extracts
      • slimecross - SLIME CROSSBREEDS
      • slimepotion - Slime-derived potions +#Slime potions
      • smelling_salts
      • soap
      • solfed_reporter
      • soulscythe
      • soulstone
        • bloodsucker - a malkavian bloodsucker that has entered final death. does nothing, other than signify they are dead
      • space_crawl - Spacecrawl "hands", prevent the user from holding items in spacecrawl
      • spanking_pad
      • sparkler
      • sparring_contract
      • spear
      • spellbook
      • spess_knife
      • stack
      • stake
        • hardened - Created by welding and acid-treating a simple stake.
      • sticker - What stickers can do?
      • stock_block
      • stock_parts
        • capacitor
        • Power store abstract type - Abstract type for a stock part that holds power.
          • Power cell - Power cells, used primarily for handheld and portable things. Holds a reasonable amount of power.
            • crank
            • infinite/nif_cell - This cell is only meant for use in items temporarily created by a NIF. Do not let players extract this from devices.
            • microfusion
            • self_charge
      • storage
        • backpack
        • bag
        • belt/military/cin_surplus/random_color
        • box - The common cardboard box.
        • briefcase/secure - Secure briefcase +Uses the lockable storage component to give it a lock.
          • riches - A briefcase that contains various sought-after spoils
          • syndie - Syndie variant of Secure Briefcase. Contains space cash, slightly more robust.
        • dice - holding bag for dice
        • fancy
        • fish_case - Stasis fish case container for moving fish between aquariums safely. +Their w_class scales with that of the fish inside it. +Most subtypes of this also start with a fish already inside.
          • blackmarket - Subtype bought from the blackmarket at a gratuitously cheap price. The catch? The fish inside it is dead.
        • hypospraykit
          • cmo - Deluxe hypokit: more storage, but you can't pocket it.
            • combat - Combat hypokit
            • preloaded - Preloaded version: this is what goes in the locker.
        • inflatable - The box full of inflatables
        • lockbox
        • mail_counterfeit_device
          • advanced - Unobtainable item mostly for (b)admin purposes.
          • bluespace - Unobtainable item mostly for (b)admin purposes.
        • medkit
        • organbox - A box which takes in coolant and uses it to preserve organs and body parts
          • preloaded - A subtype of organ storage box which starts with a full coolant tank
        • part_replacer/bluespace
        • pill_bottle/happinesspsych - Psychologist inventory pillbottles
        • portable_chem_mixer
        • pouch - Base pouch type. Fits in pockets, as its main gimmick.
          • medical - It's a pocket medkit. Use sparingly?
            • firstaid - It's... not as egregious as a full pocket medkit.
        • toolbox
        • wallet
          • money - Used by the toilet fish source.
      • style_meter
      • summon_beacon
      • supplypod_beacon
      • surgery_tray - Surgery Trays +A storage object that displays tools in its contents based on tier, better tools are more visible. +Can be folded up and carried. Click it to draw a random tool.
        • full/advanced - Surgery tray with advanced tools for debug
      • surgicaldrill
      • survivalcapsule
        • botany - Botany Pods - Home is where the green is...
      • swab - Tool capable of taking biological samples from mobs
      • swapper
      • switchblade
      • syndicate_contacts - Syndicate item that upgrades the flash protection of your eyes.
      • syndicate_teleporter
      • syndicatedetonator - Syndicate Detonator (aka the big red button)
      • synth_powercord
      • t_scanner
      • table_clock
      • Gas Tank - Handheld gas canisters +Can rupture explosively if overpressurized
      • tape
        • captains_log - Captain's log +Credits to goonstation13 for orginal SS13 lore +https://wiki.ss13.co/Storyline +https://www.youtube.com/watch?v=7M-JPH5SOmI (old video) +https://www.youtube.com/watch?v=FHH1vfY6HTA (new video)
        • ruins
          • black_mesa/first_eas - I couldn't do this via radios. I'll do this via tapes. +Various announcements and radio transmissions I've copypasted from the Black Mesa, to make the away mission feel more a u t h e n t i c . +Three EASes for the Vanguard and BMST, three HECU-related ones to tell them they're fucked.
      • taperecorder
      • target
      • tattoo_kit
      • tcgcard
      • tcgcard_deck - A stack item that's not actually a stack because ORDER MATTERS with a deck of cards! +The "top" card of the deck will always be the bottom card in the stack for our purposes.
      • teleport_rod - Totally NOT a Rod of Discord +Teleports you to where you click!
      • teleportation_scroll
      • thermometer
      • throwing_star/stamina/Ninja Throwing Star - a throwing star which specifically makes sure you know it came from a real ninja.
      • tk_grab
      • towel
      • toy
      • trade_chip - Supply pack unlocker chip
      • training_toolbox - Device that simply counts the number of times you've hit a mob or target with. Looks like a toolbox but isn't.
      • traitor_bug
      • traitor_machine_trapper - Item which you use on a machine to cause it to explode next time someone interacts with it
      • traitor_spraycan
      • transfer_valve
      • trapdoor_kit - trapdoor parts kit, allows trapdoors to be made by players
      • trapdoor_remote
        • preloaded - subtype with internals already included. If you're giving a department a roundstart trapdoor, this is what you want
      • trash/bee
      • turbine_parts
      • turret_control
      • udder item - Abstract item that is held in nullspace and manages reagents. Created by udder component. +While perhaps reagents created by udder component COULD be managed in the mob, it would be somewhat finnicky and I actually like the abstract udders.
        • gutlunch udder subtype
      • universal_scanner
      • uplink
        • loneop - A subtype used for lone ops, with some of the stuff they shouldn't/can't access removed from purchase.
      • usb_cable - A cable that can connect integrated circuits to anything with a USB port, such as computers and machines.
      • vape
      • veilrender - Veil Render
      • vending_refill
      • virgin_mary
      • void_eater - An armblade that pops windows
      • vorpalscythe
      • wallframe
        • camera - Camera assembly frame +Putting this on a wall will put a deconstructed camera machine on the wall.
        • clocktrap
        • wall_heater
      • wargame_projector
      • warp_whistle - Warp whistle, spawns a tornado that teleports you
      • watcher_hatchling - A cute pet who will occasionally attack lavaland mobs for you
      • weaponcell
      • weaponcrafting/gunkit - These gun kits are printed from the security protolathe to then be used in making new weapons
      • weldingtool
      • wheelchair
        • gold - A reward item for obtaining 5K hardcore random points. Do not use for anything else
      • wirebrush - The wirebrush is a tool whose sole purpose is to remove rust from anything that is rusty. +Because of the inherent nature of hard countering rust heretics it does it very slowly.
      • wirecutters
      • Scanner - A handheld device that lets you flash it over people.
      • wormhole_jaunter - Jaunter
      • wrench/medical
      • xenoarch
    • lightning_thrower
    • loop_spawner
    • machinery - Machines in the world, such as computers, pipes, and airlocks.
    • merge_conflict_marker
    • modular_map_root
      • djstation - djstation module roots
      • generic - Generic maps with several available biomes.
      • safehouse - Bitrunning safehouses. Typically 7x6 rooms with a single entrance.
    • mystery_box_item - This represents the item that comes out of the box and is constantly changing before the box finishes deciding. Can probably be just an /atom or /movable.
    • narsie - Nar'Sie, the God of the blood cultists
    • projectile
      • baby_watcher_blast - Beam fired by a baby watcher, doesn't actually do less damage than its parent
      • basilisk_hot - Projectile basilisks use when hot
      • beam
        • cybersun_laser
        • laser/laser_eyes - Projectile type used by laser eyes
        • legion - Used for the legion turret.
      • blastwave - The projectile used by the blastcannon
      • bullet
        • arrow - base arrow projectile
          • holy - holy arrow projectile
          • plastic - plastic arrow projectile
          • poison - poison arrow projctile
          • sticky - sticky arrow projectile
        • c40sol/incendiary
        • c980grenade
        • cannonball
        • coin - Marksman Coin
        • dart/syringe/dart
        • incendiary
          • fire - Incendiary bullet that more closely resembles a real flamethrower sorta deal, no visible bullet, just flames.
        • junk
        • marksman - Marksman Shot
        • p50
        • p60strela
        • pellet
          • shotgun_buckshot/old - A slightly weaker version of the buckshot, available from the blackmarket. +The casings they're in have a very small chance to misfire and will gradually damage the firearm, making it weaker.
          • shotgun_rubbershot
        • rocket - PM9 standard HE rocket
          • heap - PM9 HEAP rocket - the anti-anything missile you always craved.
          • pep - PEP-6 Missile - Used by the PEP-6 Exosuit missile rack. +Employed by Roboticists out of spite to put down enemy hereteks, mechanized nuclear operatives, the janitor's hot rod, +the clown's 'taxi service', uppity borgs, vengeful ais, doors they don't like, the escape shuttle's hull, and more!
          • srm - SRM-8 Missile - Used by the SRM-8 Exosuit missile rack. +Employed by Nuclear Operatives Maulers and Nanotrasen Marauders and Seraphs to kill everything and anyone.
          • weak - PM9 weak rocket - just kind of a failure
      • colossus/wendigo_shockwave
      • curse_hand
      • energy
      • energy_net
      • floating_blade
      • globule - This projectile embeds into mobs and heals them over time.
      • guardian - The glass shards we throw as a guardian. They have low damage because you can fire them very very quickly.
      • hallucination - Hallucinated projectiles.
      • hook
      • kiss
      • magic
      • moon_parade
      • organ
      • sneeze - Sneeze projectile launched by sneezing. gross
      • temp/watcher - Chilling projectile, hurts and slows you down
        • ice_wing - Freezing projectile, freezes you
        • magma_wing - Lava projectile, ignites you
      • tentacle
      • tether
    • reality_tear - Tear in the Fabric of Reality
    • singularity - The gravitational singularity
      • dark_matter - This type of singularity cannot grow as big, but it constantly hunts down living targets.
      • orion - Special singularity spawned by being sucked into a black hole during emagged orion trail.
      • shuttle_event - Special singularity that spawns for shuttle events only
    • structure - Inert structures, such as girders, machine frames, and crates/lockers.
    • tear_in_reality - Tear in reality, spawned by the veil render
    • vehicle
    • vore_belly
  • particles
    • musical_notes - musical notes! Try to use these sparingly, gents.
    • slime - Slime particles.
      • rainbow - Rainbow slime particles.
    • teleport_flux - Particles for Teleport Flux and other similar effects
  • procpath - Represents a proc or verb path.
  • regex/Subtype of regex that holds context to /obj/item/circuit_component/format
  • sound - Default override for echo
  • turf - Any floor or wall. What makes up the station and the rest of the map.
    • closed
      • mineral - Mineral deposits
        • random
        • snowmountain
          • do_not_chasm - Near exact same subtype as parent, just used in ruins to prevent other ruins/chasms from spawning on top of it.
          • icemoon/unscrapeable - This snowy mountain will never be scraped away for any reason what so ever.
        • volcanic/lava_land_surface/do_not_chasm - A turf that can't we can't build openspace chasms on or spawn ruins in.
      • wall
        • mineral
          • plastitanium - Plastitanium walls
          • titanium - Titanium walls
          • uranium
        • r_wall
    • cordon - Turf type that appears to be a world border, completely impassable and non-interactable to all physical (alive) entities.
      • secret - This type of cordon will block ghosts from passing through it. Useful for stuff like Away Missions, where you feasibly want to block ghosts from entering to keep a certain map section a secret.
    • open
      • chasm
      • cliff - A cliff tile from where people can fall. Should generally fall downwards, but you can change it if you want
        • snowrock - Snowy cliff!
      • floor - Anything above a lattice should go here.
      • genturf - This turf doesn't actually do anything beyond provide contrast for mappers and be very visible when stuff breaks in game. The actual areas are what drive cave generation.
      • lava
      • mirage
      • misc - Used as a parent type for types that want to allow construction, but do not want to be floors +I wish I could use components for turfs at scale +Please do not bloat this. Love you <3
        • asteroid - Asteroid +No breaking the glass (doesn't leave plating behind)
          • basalt/lava_land_surface - Surface. The surface is warm, but survivable without a suit. Internals are required. The floors break to chasms, which drop you into the underground.
            • no_ruins - Used for the lavaland icemoon ruin.
          • snow/icemoon/do_not_chasm - Exact subtype as parent, just used in ruins to prevent other ruins/chasms from spawning on top of it.
        • grass
      • openspace
      • space
      • water
    • template_noop - See above explanation
  • World - Two possibilities exist: either we are alone in the Universe or we are not. Both are equally terrifying. ~ Arthur C. Clarke
\ No newline at end of file diff --git a/interface/fonts/fonts_datum.html b/interface/fonts/fonts_datum.html new file mode 100644 index 0000000000000..c313d1e54ef90 --- /dev/null +++ b/interface/fonts/fonts_datum.html @@ -0,0 +1 @@ +interface/fonts/fonts_datum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

interface/fonts/fonts_datum.dm

/datum/fontA font datum, it exists to define a custom font to use in a span style later.
\ No newline at end of file diff --git a/interface/fonts/grand_9k.html b/interface/fonts/grand_9k.html new file mode 100644 index 0000000000000..4cfdf77a8adb2 --- /dev/null +++ b/interface/fonts/grand_9k.html @@ -0,0 +1,5 @@ +interface/fonts/grand_9k.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

interface/fonts/grand_9k.dm

/datum/font/grand9kFor clean results on map, use only sizing pt, multiples of 6: 6pt 12pt 18pt 24pt etc. - Not for use with px sizing +Can be used in TGUI etc, px sizing is pt / 0.75. 6pt = 8px, 12pt = 16px etc. +Base font
/datum/font/grand9k/size_6ptFor icon overlays +Grand9K 6pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus) +Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
\ No newline at end of file diff --git a/interface/fonts/license.html b/interface/fonts/license.html new file mode 100644 index 0000000000000..d54d7ceac05bb --- /dev/null +++ b/interface/fonts/license.html @@ -0,0 +1,14 @@ +interface/fonts/license.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

interface/fonts/license.txt

Grand9K Pixel created by Jayvee Enaguas. Licensed under Creative Commons Attribution 4.0 International (CC BY 4.0)
+(https://creativecommons.org/licenses/by/4.0/) (https://www.dafont.com/grand9k-pixel.font)
+
+Pixellari created by Zacchary Dempsey-Plante. Website indicates free for commercial use.
+(https://www.dafont.com/pixellari.font?fpp=200)
+
+Spess Font created by MTandi (discord) for /tg/station.
+
+Tiny Unicode created by Jakob Riedle/DuffsDevice. Website indicates free for commercial use.
+(https://fontmeme.com/fonts/tiny-unicode-font/)
+
+VCR OSD Mono created by Riciery Leal/mrmanet. Website indicates 100% free, author confirms it's free for all to use.
+(https://www.dafont.com/font-comment.php?file=vcr_osd_mono)
+
\ No newline at end of file diff --git a/interface/fonts/pixellari.html b/interface/fonts/pixellari.html new file mode 100644 index 0000000000000..fdd49ac468ab2 --- /dev/null +++ b/interface/fonts/pixellari.html @@ -0,0 +1,5 @@ +interface/fonts/pixellari.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

interface/fonts/pixellari.dm

/datum/font/pixellariFor clean results on map, use only sizing pt, multiples of 12: 12pt 24pt 48pt etc. - Not for use with px sizing +Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc. +Base font
/datum/font/pixellari/size_12ptFor icon overlays +Pixellari 12pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus) +Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
\ No newline at end of file diff --git a/interface/fonts/spess_font.html b/interface/fonts/spess_font.html new file mode 100644 index 0000000000000..32f1de94d6561 --- /dev/null +++ b/interface/fonts/spess_font.html @@ -0,0 +1,5 @@ +interface/fonts/spess_font.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

interface/fonts/spess_font.dm

/datum/font/spessfontFor clean results on map, use only sizing pt, multiples of 6: 6t 12pt 18pt etc. - Not for use with px sizing +Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc. +Base font
/datum/font/spessfont/size_6ptFor icon overlays +Spess Font 6pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus) +Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
\ No newline at end of file diff --git a/interface/fonts/tiny_unicode.html b/interface/fonts/tiny_unicode.html new file mode 100644 index 0000000000000..4cc1b59875eab --- /dev/null +++ b/interface/fonts/tiny_unicode.html @@ -0,0 +1,5 @@ +interface/fonts/tiny_unicode.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

interface/fonts/tiny_unicode.dm

/datum/font/tiny_unicodeFor clean results on map, use only sizing pt, multiples of 12: 12pt 24pt 48pt etc. - Not for use with px sizing +Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc. +Base font
/datum/font/tiny_unicode/size_12ptFor icon overlays +TinyUnicode 12pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus) +Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
\ No newline at end of file diff --git a/matrix.html b/matrix.html new file mode 100644 index 0000000000000..af270626f148a --- /dev/null +++ b/matrix.html @@ -0,0 +1,8 @@ +/matrix - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

matrix

Procs

ShearShear the transform on either or both axes.
decomposeDecomposes a matrix into scale, shift and rotation.
get_x_shiftThe X pixel offset of this matrix
get_y_shiftThe Y pixel offset of this matrix

Proc Details

Shear

Shear the transform on either or both axes.

+
    +
  • x - X axis shearing
  • +
  • y - Y axis shearing
  • +

decompose

Decomposes a matrix into scale, shift and rotation.

+

If other operations were applied on the matrix, such as shearing, the result +will not be precise.

+

Negative scales are now supported. =)

get_x_shift

The X pixel offset of this matrix

get_y_shift

The Y pixel offset of this matrix

\ No newline at end of file diff --git a/mob.html b/mob.html new file mode 100644 index 0000000000000..ed7b9d4cbb3be --- /dev/null +++ b/mob.html @@ -0,0 +1,363 @@ +/mob - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mob

The mob, usually meant to be a creature of some type

+

Has a client attached that is a living person (most of the time), although I have to admit +sometimes it's hard to tell they're sentient

+

Has a lot of the creature game world logic, such as health etc

Vars

actionsList of action hud items the user has
actionspeed_mod_immunitiesList of action speed modifiers ignored by this mob. List -> List (id) -> List (sources)
actionspeed_modificationList of action speed modifiers applying to this mob
active_hand_indexWhat hand is the active hand
active_storageStorage component (for mob inventory)
active_thinking_indicatorthe icon currently used for the thinking indicator's bubble
active_typing_indicatorthe icon currently used for the typing indicator's bubble
alertsContains /atom/movable/screen/alert only.
ambience_tracked_areaA ref of the area we're taking our ambient loop from.
bodytemperatureDefault body temperature
buckledmovable atom we are buckled to
cached_multiplicative_actions_slowdownThe calculated mob action speed slowdown based on the modifiers list
cached_multiplicative_slowdownThe calculated mob speed slowdown based on the modifiers list
canon_clientThe current client inhabiting this mob. Managed by login/logout +This exists so we can do cleanup in logout for occasions where a client was transfere rather then destroyed +We need to do this because the mob on logout never actually has a reference to client +We also need to clear this var/do other cleanup in client/Destroy, since that happens before logout +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
click_interceptAllows a datum to intercept all click calls this mob is the source of
do_aftersFor storing what do_after's someone has, key = string, value = amount of interactions of that type happening.
emotes_usedUsed for tracking last uses of emotes for cooldown purposes
examine_cursor_iconCursor icon used when holding shift over things
has_unlimited_silicon_privilegeCan they interact with station electronics
held_itemslist of items held in hands
hud_usedActive hud
incapacitatedWhether and how a mob is incapacitated
jobWhat job does this mob have
lastKnownIPThe last known IP of the client who was in this mob
lighting_color_cutoffsA list of red, green and blue cutoffs +This is what actually gets applied to the mob, it's modified by things like glasses
lighting_cutoffPercentage of how much rgb to max the lighting plane at +This lets us brighten it without washing out color +Scale from 0-100, reset off update_sight()
listed_turfthe current turf being examined in the stat panel
mock_clientA mock client, provided by tests and friends
movespeed_mod_immunitiesList of movement speed modifiers ignored by this mob. List -> List (id) -> List (sources)
movespeed_modificationList of movement speed modifiers applying to this mob
next_moveTick time the mob can next move
nutritionHunger level of the mob
observersThe list of people observing this mob.
old_bodytemperatureOur body temperatue as of the last process, prevents pointless work when handling alerts
overeatdurationHow many ticks this mob has been over reating
progressbarsList of progress bars this mob is currently seeing for actions
real_nameWhat is the mobs real name (name is overridden for disguises etc)
registered_zThe z level this mob is currently registered in
remote_controlCalls relay_move() to whatever this is set to when the mob tries to move
satietySatiation level of the mob
sound_environment_overrideOverride for sound_environments. If this is set the user will always hear a specific type of reverb (Instead of the area defined reverb)
statWhether a mob is alive or dead. TODO: Move this to living - Nodrak (2019, still here)
status_flagsbitflags defining which status effects can be inflicted (replaces canknockdown, canstun, etc)
tgui_open_uisglobal
throw_modeIs the mob throw intent on
updating_glide_sizeWhether the mob is updating glide size when movespeed updates or not
zone_selectedThe zone this mob is currently targeting

Procs

AltClickOnMain proc for primary alt click
AltClickSecondaryOnMain proc for secondary alt click
CellSome kind of debug verb that gives atmosphere environment details
ClickOnStandard mob ClickOn()
CtrlClickOnCtrl click
CtrlMiddleClickOnCtrl mouse wheel click +Except for tagging datumns same as control click
CtrlShiftClickOnControl+Shift click +Unused except for AI
DblClickOnDefault behavior: ignore double clicks (the second click that makes the doubleclick call already calls for a normal click)
GenerateTagGenerate the tag for this mob
MiddleClickOnMiddle click +Mainly used for swapping hands
MouseWheelOnMouseWheelOn
Process_SpacemoveHandles mob/living movement in space (or no gravity)
RangedAttackRanged unarmed attack:
ShiftClickOnShift click +For most mobs, examine. +This is overridden in ai.dm
UnarmedAttackUnarmedAttack: The higest level of mob click chain discounting click itself.
_pointedpossibly delayed verb that finishes the pointing process starting in [/mob/verb/pointed()]. +either called immediately or in the tick after pointed() was called, as per the [DEFAULT_QUEUE_OR_CALL_VERB()] macro
abandon_mobAllows you to respawn, abandoning your current mob
add_actionspeed_modifierAdd a action speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID.
add_client_colourAdds an instance of colour_type to the mob's client_colours list +colour_type - a typepath (subtyped from /datum/client_colour)
add_movespeed_modifierAdd a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID.
add_to_alive_mob_listAdds the mob reference to the list of all mobs alive. If mob is cliented, it adds it to the list of all living player-mobs.
add_to_current_dead_playersAdds the cliented mob reference to either the list of dead player-mobs or to the list of observers, depending on how they joined the game.
add_to_current_living_antagsAdds the cliented mob reference to the list of living antag player-mobs.
add_to_current_living_playersAdds the cliented mob reference to the list of living player-mobs. If the mob is an antag, it adds it to the list of living antag player-mobs.
add_to_dead_mob_listAdds the mob reference to the list of all the dead mobs. If mob is cliented, it adds it to the list of all dead player-mobs.
add_to_mob_listAdds the mob reference to the list and directory of all mobs. Called on Initialize().
add_to_mob_suicide_listAdds a mob reference to the list of all suicided mobs
add_to_player_listAdds the cliented mob reference to the list of all player-mobs, besides to either the of dead or alive player-mob lists, as appropriate. Called on Login().
adjust_bodytemperatureAdjust the body temperature of a mob, with min/max settings
adjust_degradationAdjusts the mob's linked death consequences trauma (see get_death_consequences_trauma())'s degradation by increment.
adjust_disgustAdjust the disgust level of a mob
adjust_nutritionAdjust the nutrition of a mob
animate_client_colourWorks similarly to 'update_client_colour', but animated.
apply_pref_nameGeneralised helper proc for letting mobs rename themselves. Used to be clname() and ainame()
attack_uiThis proc is called whenever someone clicks an inventory ui slot.
audible_messageShow a message to all mobs in earshot of this one
auto_deadmin_on_loginChecks if the attached client is an admin and may deadmin them
base_click_alt
base_click_alt_secondary
base_click_ctrl
base_click_ctrl_shift
become_unclientedCleanup proc that's called when a mob loses a client, either through client destroy or logout +Logout happens post client del, so we can't just copypaste this there. This keeps things clean and consistent
buckle_mobBuckle a living mob to this mob. Also turns you to face the other mob
build_incapacitatedReturns an updated incapacitated bitflag. If a flag is set it means we're incapacitated in that case
canUseStorageCan this mob use storage
can_block_magicChecks to see if the mob can block magic
can_cast_magicChecks to see if the mob can cast normal magic spells.
can_hearCan the mob hear
can_hold_itemsCan this mob hold items
can_interact_withCan the mob interact() with an atom?
can_mutateReturns TRUE if the mob is allowed to mutate via its DNA, or FALSE if otherwise. +Only an organic Carbon with valid DNA may mutate; not robots, AIs, aliens, Ians, or other mobs.
can_perform_actionChecks whether a mob can perform an action to interact with an object
can_readCan this mob read
can_resistCan this mob resist (default FALSE)
can_see_reagentsCan the mob see reagents inside of containers?
can_writeProc that returns TRUE if the mob can write using the writing_instrument, FALSE otherwise.
cancel_cameraSometimes helps if the user is stuck in another perspective or camera
change_mob_type_uncheckedVersion of [change_mob_type] that does no usr prompting (may send an error message though). Satisfies procs with the SHOULD_NOT_SLEEP restriction
check_emoteCheck if this message is an emote
check_respawn_delayChecks if the mob can respawn yet according to the respawn delay
clear_important_client_contentsClears the clients channel of this mob
click_random_mobClicks a random nearby mob with the source from this mob
copy_recent_speechReturns an associative list of the logs of a certain amount of lines spoken recently by this mob +copy_amount - number of lines to return +line_chance - chance to return a line, if you don't want just the most recent x lines
create_chat_messageCreates a message overlay at a defined location for a given speaker
create_thinking_indicatorCreates a thinking indicator over the mob.
create_typing_indicatorCreates a typing indicator over the mob.
default_lighting_cutoffReturns this mob's default lighting alpha
do_after_countReturns the total amount of do_afters this mob is taking part in
downMoves a mob down a z level
dropItemToGroundUsed to drop an item (if it exists) to the ground.
drop_all_held_itemsReturns a list of all dropped held items. +If none were dropped, returns an empty list.
drop_everythingSafely drop everything, without deconstructing the mob
enable_client_mobs_in_contentspropogates ourselves through our nested contents, similar to other important_recursive_contents procs +main difference is that client contents need to possibly duplicate recursive contents for the clients mob AND its eye
equip_to_appropriate_slotAuto equip the passed in item the appropriate slot based on equipment priority
equip_to_slotActually equips an item to a slot (UNSAFE)
equip_to_slot_if_possibleTry to equip an item to a slot on the mob
equip_to_slot_or_delEquip an item to the slot or delete
examinateExamine a mob
execute_modeproc version to finish /mob/verb/mode() execution. used in case the proc needs to be queued for the tick after its first called
execute_quick_equipproc extender of [/mob/verb/quick_equip] used to make the verb queuable if the server is overloaded
face_atomSimple helper to face what you clicked on, in case it should be needed in more than one place
first_nameFind the first name of a mob from the real name with regex
fully_replace_character_nameFully update the name of a mob
generate_random_mob_nameGenerates a random name for the mob based on their gender or species (for humans)
get_actions_for_statpanelConvert a list of spells into a displyable list for the statpanel
get_actionspeed_modifiersGet the action speed modifiers list of the mob
get_active_handGet the bodypart for whatever hand we have active, Only relevant for carbons
get_active_held_itemReturns the thing we're currently holding
get_config_multiplicative_speedGet the global config movespeed of a mob by type
get_death_consequences_traumaSearches mind.current for a death_consequences trauma. Allows this proc to be used on both ghosts and living beings to find their linked trauma.
get_equipped_speed_mod_itemsGet all items in our possession that should affect our movespeed
get_inactive_handGets the inactive hand of the mob. Returns FALSE on non-carbons, otherwise returns the /obj/item/bodypart.
get_item_by_slotGet the item on the mob in the storage slot identified by the id passed in
get_message_modsExtracts and cleans message of any extenstions at the begining of the message +Inserts the info into the passed list, returns the cleaned message
get_mob_buckling_heightreturns the height in pixel the mob should have when buckled to another mob.
get_movespeed_modifiersGet the move speed modifiers list of the mob
get_num_held_itemsFind number of held items, multihand compatible
get_organ_by_typeGet the organ object from the mob matching the passed in typepath
get_organ_slotReturns a list of all organs in specified slot
get_organs_for_zoneGet organ objects by zone
get_photo_descriptionReturn the desc of this mob for a photo
get_policy_keywordsGet the list of keywords for policy config
get_random_valid_zoneMore or less ran_zone, but only returns bodyzones that the mob /actually/ has.
get_realname_stringReturns a mob's real name between brackets. Useful when you want to display a mob's name alongside their real name
get_slot_by_itemGets what slot the item on the mob is held in. +Returns null if the item isn't in any slots on our mob. +Does not check if the passed item is null, which may result in unexpected outcoms.
get_spacemove_backupFinds a target near a mob that is viable for pushing off when moving. +Takes the intended movement direction as input, alongside if the context is checking if we're allowed to continue drifting
get_status_tab_itemsAdds this list to the output to the stat browser
grant_actions_by_listTakes in an associated list (key /datum/action typepaths, value is the AI blackboard key) and handles granting the action and adding it to the mob's AI controller blackboard. +This is only useful in instances where you don't want to store the reference to the action on a variable on the mob. +You can set the value to null if you don't want to add it to the blackboard (like in player controlled instances). Is also safe with null AI controllers. +Assumes that the action will be initialized and held in the mob itself, which is typically standard.
handle_eye_contacthandle_eye_contact() is called when we examine() something. If we examine an alive mob with a mind who has examined us in the last 2 seconds within 5 tiles, we make eye contact!
has_actionspeed_modifierIs there a actionspeed modifier for this mob
has_light_nearbyChecks if there is enough light where the mob is located
has_movespeed_modifierIs there a movespeed modifier for this mob
has_nightvisionCan this mob see in the dark
has_status_effectChecks if this mob has a status effect that shares the passed effect's ID
has_status_effect_from_sourceChecks if this mob has a status effect that shares the passed effect's ID +and has the passed sources are in its list of sources (ONLY works for grouped efects!)
has_status_effect_listReturns a list of all status effects that share the passed effect type's ID
hide_other_mob_action_buttonsHide another mob's action buttons from this mob
hivecheckCheck if the mob has a hivemind channel
initialize_actionspeedAdds a default action speed
is_holding_itemsReturns true if a mob is holding something
is_literateThis mob is abile to read books
is_nearsighted_currentlyIs the mob nearsighted CURRENTLY? +This check fails if the mob is nearsighted but is wearing glasses, +While is_nearsighted will always succeed even if they are wearing glasses.
last_nameFind the last name of a mob from the real name with regex
limb_attack_selfCalled by using Activate Held Object with an empty hand/limb
log_manual_zone_selected_updateGenerates a log message when a user manually changes their targeted zone. +Only need to one of new_target or old_target, and the other will be auto populated with the current selected zone.
log_messageLogs a message in a mob's individual log, and in the global logs as well if log_globally is true
log_mob_tagLogs a message to the mob_tags log, including the mobs tag +Arguments:
lost_gameThis proc sends the COMSIG_MOB_LOST_VIDEOGAME signal
lowest_buckled_mobFind the mob at the bottom of a buckle chain
make_paiCreates a new pAI.
me_verbThe me emote verb
memoryShows a tgui window with memories
mob_negates_gravityDoes this mob ignore gravity
modeVerb to activate the object in your held hand
notify_revivalNotify a ghost that its body is being revived
onShuttleMoveMob move procs
on_block_magic_effectsCalled whenever a magic effect with a charge cost is blocked and we haven't recently blocked magic.
on_observing_action_grantedSignal proc for COMSIG_MOB_GRANTED_ACTION - If we're viewing another mob's action buttons, +we need to update with any newly added buttons granted to the mob.
on_observing_action_removedSignal proc for COMSIG_MOB_REMOVED_ACTION - If we're viewing another mob's action buttons, +we need to update with any removed buttons from the mob.
open_language_menu_verbShow the language menu for this mob
perform_hand_swapPerforms the actual ritual of swapping hands, such as setting the held index variables
played_gameThis proc sends the COMSIG_MOB_PLAYED_VIDEOGAME signal
playsound_localPlays a sound with a specific point of origin for src mob +Affected by pressure, distance, terrain and environment (see arguments)
pointedPoint at an atom
post_buckle_mobCall back post buckle to a mob to offset your visual height
post_unbuckle_mobCall back post unbuckle from a mob, (reset your visual height here)
query_heartAsk someone if they'd like to award a commendation for the round, 3 tries to get the name they want before we give up
ranged_secondary_attackRanged secondary attack
reagent_checkProc used for custom metabolization of reagents, if any
refresh_death_consequencesCalls update_variables() on this mob's linked death consequences trauma. See that proc for further info.
regenerate_iconsRedraws the entire mob. For carbons, this is rather expensive, please use the individual update_X procs.
remove_actionspeed_modifierRemove a action speed modifier from a mob, whether static or variable.
remove_all_indicatorsRemoves any indicators and marks the mob as not speaking IC.
remove_client_colourRemoves an instance of colour_type from the mob's client_colours list +colour_type - a typepath (subtyped from /datum/client_colour)
remove_from_alive_mob_listRemoves the mob reference from the list of all mobs alive. If mob is cliented, it removes it from the list of all living player-mobs.
remove_from_current_dead_playersRemoves the mob reference from either the list of dead player-mobs or from the list of observers, depending on how they joined the game.
remove_from_current_living_antagsRemoves the mob reference from the list of living antag player-mobs.
remove_from_current_living_playersRemoves the mob reference from the list of living player-mobs. If the mob is an antag, it removes it from the list of living antag player-mobs.
remove_from_dead_mob_listRemvoes the mob reference from list of all the dead mobs. If mob is cliented, it adds it to the list of all dead player-mobs.
remove_from_mob_listRemoves the mob reference from the list and directory of all mobs. Called on Destroy().
remove_from_mob_suicide_listRemoves a mob references from the list of all suicided mobs
remove_from_player_listRemoves the mob reference from the list of all player-mobs, besides from either the of dead or alive player-mob lists, as appropriate. Called on Logout().
remove_movespeed_modifierRemove a move speed modifier from a mob, whether static or variable.
remove_thinking_indicatorRemoves the thinking indicator over the mob.
remove_typing_indicatorRemoves the typing indicator over the mob.
replace_identification_nameupdate the ID name of this mob
replace_records_nameUpdates GLOB.manifest records with new name , see mob/living/carbon/human
reset_perspectiveReset the attached clients perspective (viewpoint)
say_deadSpeak as a dead person (ghost etc)
say_verbwhat clients use to speak. when you type a message into the chat bar in say mode, this is the first thing that goes off serverside.
send_to_cryoSend player in not-quiet cryopod. If with_paper = TRUE, place a paper with notification under player.
set_disgustSet the disgust level of a mob
set_invis_seesee invisibility is the mob's capability to see things that ought to be hidden from it +Can think of it as a primitive version of changing the alpha of planes +We mostly use it to hide ghosts, no real reason why
set_nutritionForce set the mob nutrition
set_sightSight here is the mob.sight var, which tells byond what to actually show to our client +See code__DEFINES\sight.dm for more details
set_speciesDNA MOB-PROCS
shared_ui_interactionpublic
show_messageShow a message to this mob (visual or audible)
show_other_mob_action_buttonsShow (most) of the another mob's action buttons to this mob
shuttleRotateMob rotate procs
slipCalled when this mob slips over, override as needed
spinSpin this mob around it's central axis
sync_lighting_plane_cutoffSet the lighting plane hud filters to the mobs lighting_cutoff var
throw_alertProc to create or update an alert. Returns the alert if the alert is new or updated, 0 if it was thrown already +category is a text string. Each mob may only have one alert per category; the previous one will be replaced +path is a type path of the actual alert type to throw +severity is an optional number that will be placed at the end of the icon_state for this alert +for example, high pressure's icon_state is "highpressure" and can be serverity 1 or 2 to get "highpressure1" or "highpressure2" +new_master is optional and sets the alert's icon state to "template" in the ui_style icons with the master as an overlay. +flicks are forwarded to master +override makes it so the alert is not replaced until cleared by a clear_alert with clear_override, and it's used for hallucinations.
upMoves a mob upwards in z level
update_action_buttonsThis proc handles adding all of the mob's actions to their screen
update_actionspeedGo through the list of actionspeed modifiers and calculate a final actionspeed. ANY ADD/REMOVE DONE IN UPDATE_actionspeed MUST HAVE THE UPDATE ARGUMENT SET AS FALSE!
update_ambience_areaAmbience buzz handling called by either area/Enter() or refresh_looping_ambience()
update_bodyUpdates every part of a carbon's body. Including parts, mutant parts, lips, underwear, and socks.
update_client_colourResets the mob's client.color to null, and then reapplies a new color based +on the client_colour datums it currently has.
update_config_movespeedSet or update the global movespeed config on a mob
update_equipment_speed_modsApply a proper movespeed modifier based on items we have equipped
update_held_itemsUpdates the held items overlay(s) & HUD element.
update_incapacitatedCalled whenever anything that modifes incapacitated is ran, updates it and sends a signal if it changes +Returns TRUE if anything changed, FALSE otherwise
update_mob_action_buttonsUpdates all action buttons this mob has.
update_mouse_pointerUpdate the mouse pointer of the attached client in this mob
update_movespeedGo through the list of movespeed modifiers and calculate a final movespeed. ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE!
update_pocketsUpdates the pocket overlay & HUD element.
update_pull_hud_iconUpdate the pulling hud icon
update_rest_hud_iconUpdate the resting hud icon
update_sightUpdate the lighting plane and sight of this mob (sends COMSIG_MOB_UPDATE_SIGHT)
update_stamina_hudChanges the stamina HUD based on new information
update_suit_storageUpdates the suit storage overlay & HUD element.
update_worn_backUpdates the back overlay & HUD element.
update_worn_beltUpdates the belt overlay & HUD element.
update_worn_braUpdates the bra overlay & HUD element.
update_worn_earsUpdates the headset overlay & HUD element.
update_worn_ears_extraUpdates the headset on the other side overlay & HUD element.
update_worn_glassesUpdates the glasses overlay & HUD element.
update_worn_glovesUpdates the glasses overlay & HUD element.
update_worn_handcuffsUpdates the handcuff overlay & HUD element.
update_worn_headUpdates the on-head overlay & HUD element.
update_worn_idUpdates the id overlay & HUD element.
update_worn_legcuffsUpdates the legcuff overlay & HUD element.
update_worn_maskUpdates the mask overlay & HUD element.
update_worn_neckUpdates the neck overlay & HUD element.
update_worn_oversuitUpdates the oversuit overlay & HUD element.
update_worn_shirtUpdates the shirt overlay & HUD element.
update_worn_shoesUpdates the shoes overlay & HUD element.
update_worn_socksUpdates the socks overlay & HUD element.
update_worn_undersuitUpdates the undersuit/uniform overlay & HUD element.
update_worn_underwearUpdates the underwear overlay & HUD element.
update_worn_wristsUpdates the wrists overlay & HUD element.
visible_messageAdds the functionality to self_message.
voteMob level verb that allows players to vote on the current vote.
vv_get_dropdownEXTRA MOB VV
vv_get_varextra var handling for the logging var
vv_load_prefsOverrides someones mob with their loaded prefs.
vv_send_cryoSends said person to a cryopod.
whisperWhisper a message.
whisper_verbWhisper verb
won_gameThis proc sends the COMSIG_MOB_WON_VIDEOGAME signal

Var Details

actions

List of action hud items the user has

actionspeed_mod_immunities

List of action speed modifiers ignored by this mob. List -> List (id) -> List (sources)

actionspeed_modification

List of action speed modifiers applying to this mob

active_hand_index

What hand is the active hand

active_storage

Storage component (for mob inventory)

active_thinking_indicator

the icon currently used for the thinking indicator's bubble

active_typing_indicator

the icon currently used for the typing indicator's bubble

alerts

Contains /atom/movable/screen/alert only.

+

On /mob so clientless mobs will throw alerts properly.

ambience_tracked_area

A ref of the area we're taking our ambient loop from.

bodytemperature

Default body temperature

buckled

movable atom we are buckled to

cached_multiplicative_actions_slowdown

The calculated mob action speed slowdown based on the modifiers list

cached_multiplicative_slowdown

The calculated mob speed slowdown based on the modifiers list

canon_client

The current client inhabiting this mob. Managed by login/logout +This exists so we can do cleanup in logout for occasions where a client was transfere rather then destroyed +We need to do this because the mob on logout never actually has a reference to client +We also need to clear this var/do other cleanup in client/Destroy, since that happens before logout +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

click_intercept

Allows a datum to intercept all click calls this mob is the source of

do_afters

For storing what do_after's someone has, key = string, value = amount of interactions of that type happening.

emotes_used

Used for tracking last uses of emotes for cooldown purposes

examine_cursor_icon

Cursor icon used when holding shift over things

has_unlimited_silicon_privilege

Can they interact with station electronics

held_items

list of items held in hands

+

len = number of hands, eg: 2 nulls is 2 empty hands, 1 item and 1 null is 1 full hand +and 1 empty hand.

+

NB: contains nulls!

+

held_items[active_hand_index] is the actively held item, but please use +get_active_held_item() instead, because OOP

hud_used

Active hud

incapacitated

Whether and how a mob is incapacitated

+

Normally being restrained, agressively grabbed, or in stasis counts as incapacitated +unless there is a flag being used to check if it's ignored

+
    +
  • bitflags: (see code/__DEFINES/status_effects.dm)
  • +
  • INCAPABLE_RESTRAINTS - if our mob is in a restraint (handcuffs)
  • +
  • INCAPABLE_STASIS - if our mob is in stasis (stasis bed, etc.)
  • +
  • INCAPABLE_GRAB - if our mob is being agressively grabbed
  • +

job

What job does this mob have

lastKnownIP

The last known IP of the client who was in this mob

lighting_color_cutoffs

A list of red, green and blue cutoffs +This is what actually gets applied to the mob, it's modified by things like glasses

lighting_cutoff

Percentage of how much rgb to max the lighting plane at +This lets us brighten it without washing out color +Scale from 0-100, reset off update_sight()

listed_turf

the current turf being examined in the stat panel

mock_client

A mock client, provided by tests and friends

movespeed_mod_immunities

List of movement speed modifiers ignored by this mob. List -> List (id) -> List (sources)

movespeed_modification

List of movement speed modifiers applying to this mob

next_move

Tick time the mob can next move

nutrition

Hunger level of the mob

observers

The list of people observing this mob.

old_bodytemperature

Our body temperatue as of the last process, prevents pointless work when handling alerts

overeatduration

How many ticks this mob has been over reating

progressbars

List of progress bars this mob is currently seeing for actions

real_name

What is the mobs real name (name is overridden for disguises etc)

registered_z

The z level this mob is currently registered in

remote_control

Calls relay_move() to whatever this is set to when the mob tries to move

satiety

Satiation level of the mob

sound_environment_override

Override for sound_environments. If this is set the user will always hear a specific type of reverb (Instead of the area defined reverb)

stat

Whether a mob is alive or dead. TODO: Move this to living - Nodrak (2019, still here)

status_flags

bitflags defining which status effects can be inflicted (replaces canknockdown, canstun, etc)

tgui_open_uis

global

+

Tracks open UIs for a user.

throw_mode

Is the mob throw intent on

updating_glide_size

Whether the mob is updating glide size when movespeed updates or not

zone_selected

The zone this mob is currently targeting

Proc Details

AltClickOn

Main proc for primary alt click

AltClickSecondaryOn

Main proc for secondary alt click

Cell

Some kind of debug verb that gives atmosphere environment details

ClickOn

Standard mob ClickOn()

+

After that, mostly just check your state, check whether you're holding an item, +check whether you're adjacent to the target, then pass off the click to whoever is receiving it.

+

The most common are:

+

CtrlClickOn

Ctrl click

CtrlMiddleClickOn

Ctrl mouse wheel click +Except for tagging datumns same as control click

CtrlShiftClickOn

Control+Shift click +Unused except for AI

DblClickOn

Default behavior: ignore double clicks (the second click that makes the doubleclick call already calls for a normal click)

GenerateTag

Generate the tag for this mob

+

This is simply "mob_"+ a global incrementing counter that goes up for every mob

MiddleClickOn

Middle click +Mainly used for swapping hands

MouseWheelOn

MouseWheelOn

Process_Spacemove

Handles mob/living movement in space (or no gravity)

+

Called by /client/Move()

+

return TRUE for movement or FALSE for none

+

You can move in space if you have a spacewalk ability

RangedAttack

Ranged unarmed attack:

+

This currently is just a default for all mobs, involving +laser eyes and telekinesis. You could easily add exceptions +for things like ranged glove touches, spitting alien acid/neurotoxin, +animals lunging, etc.

ShiftClickOn

Shift click +For most mobs, examine. +This is overridden in ai.dm

UnarmedAttack

UnarmedAttack: The higest level of mob click chain discounting click itself.

+

This handles, just "clicking on something" without an item. It translates +into atom/proc/attack_hand, atom/proc/attack_animal etc.

+

Note: proximity_flag here is used to distinguish between normal usage (flag=1), +and usage when clicking on things telekinetically (flag=0). This proc will +not be called at ranged except with telekinesis.

+

proximity_flag is not currently passed to attack_hand, and is instead used +in human click code to allow glove touches only at melee range.

+

modifiers is a lazy list of click modifiers this attack had, +used for figuring out different properties of the click, mostly right vs left and such.

_pointed

possibly delayed verb that finishes the pointing process starting in [/mob/verb/pointed()]. +either called immediately or in the tick after pointed() was called, as per the [DEFAULT_QUEUE_OR_CALL_VERB()] macro

abandon_mob

Allows you to respawn, abandoning your current mob

+

This sends you back to the lobby creating a new dead mob

+

Only works if flag/allow_respawn is allowed in config

add_actionspeed_modifier

Add a action speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID.

add_client_colour

Adds an instance of colour_type to the mob's client_colours list +colour_type - a typepath (subtyped from /datum/client_colour)

add_movespeed_modifier

Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID.

add_to_alive_mob_list

Adds the mob reference to the list of all mobs alive. If mob is cliented, it adds it to the list of all living player-mobs.

add_to_current_dead_players

Adds the cliented mob reference to either the list of dead player-mobs or to the list of observers, depending on how they joined the game.

add_to_current_living_antags

Adds the cliented mob reference to the list of living antag player-mobs.

add_to_current_living_players

Adds the cliented mob reference to the list of living player-mobs. If the mob is an antag, it adds it to the list of living antag player-mobs.

add_to_dead_mob_list

Adds the mob reference to the list of all the dead mobs. If mob is cliented, it adds it to the list of all dead player-mobs.

add_to_mob_list

Adds the mob reference to the list and directory of all mobs. Called on Initialize().

add_to_mob_suicide_list

Adds a mob reference to the list of all suicided mobs

add_to_player_list

Adds the cliented mob reference to the list of all player-mobs, besides to either the of dead or alive player-mob lists, as appropriate. Called on Login().

adjust_bodytemperature

Adjust the body temperature of a mob, with min/max settings

adjust_degradation

Adjusts the mob's linked death consequences trauma (see get_death_consequences_trauma())'s degradation by increment.

adjust_disgust

Adjust the disgust level of a mob

adjust_nutrition

Adjust the nutrition of a mob

animate_client_colour

Works similarly to 'update_client_colour', but animated.

apply_pref_name

Generalised helper proc for letting mobs rename themselves. Used to be clname() and ainame()

attack_ui

This proc is called whenever someone clicks an inventory ui slot.

+

Mostly tries to put the item into the slot if possible, or call attack hand +on the item in the slot if the users active hand is empty

audible_message

Show a message to all mobs in earshot of this one

+

This would be for audible actions by the src mob

+

vars:

+
    +
  • message is the message output to anyone who can hear.
  • +
  • self_message (optional) is what the src mob hears.
  • +
  • deaf_message (optional) is what deaf people will see.
  • +
  • hearing_distance (optional) is the range, how many tiles away the message can be heard.
  • +

auto_deadmin_on_login

Checks if the attached client is an admin and may deadmin them

+

Configs:

+
    +
  • flag/auto_deadmin_players
  • +
  • client.prefs?.toggles & DEADMIN_ALWAYS
  • +
  • User is antag and flag/auto_deadmin_antagonists or client.prefs?.toggles & DEADMIN_ANTAGONIST
  • +
  • or if their job demands a deadminning SSjob.handle_auto_deadmin_roles()
  • +
+

Called from login

base_click_alt

Base proc for alt click interaction left click. Returns if the click was intercepted & handled

+

If you wish to add custom click_alt behavior for a single type, use that proc.

base_click_alt_secondary

Base proc for alt click interaction right click.

+

If you wish to add custom click_alt_secondary behavior for a single type, use that proc.

base_click_ctrl

Base proc for ctrl click interaction left click.

+

If you wish to add custom click_ctrl behavior for a single type, use that proc.

base_click_ctrl_shift

Base proc for ctrl shift click interaction left click.

+

If you wish to add custom click_ctrl_shift behavior for a single type, use that proc.

become_uncliented

Cleanup proc that's called when a mob loses a client, either through client destroy or logout +Logout happens post client del, so we can't just copypaste this there. This keeps things clean and consistent

buckle_mob

Buckle a living mob to this mob. Also turns you to face the other mob

+

You can buckle on mobs if you're next to them since most are dense

build_incapacitated

Returns an updated incapacitated bitflag. If a flag is set it means we're incapacitated in that case

canUseStorage

Can this mob use storage

can_block_magic

Checks to see if the mob can block magic

+

args:

+
    +
  • casted_magic_flags (optional) A bitfield with the types of magic resistance being checked (see flags at: /datum/component/anti_magic)
  • +
  • charge_cost (optional) The cost of charge to block a spell that will be subtracted from the protection used
  • +

can_cast_magic

Checks to see if the mob can cast normal magic spells.

+

args:

+
    +
  • magic_flags (optional) A bitfield with the type of magic being cast (see flags at: /datum/component/anti_magic)
  • +

can_hear

Can the mob hear

can_hold_items

Can this mob hold items

can_interact_with

Can the mob interact() with an atom?

can_mutate

Returns TRUE if the mob is allowed to mutate via its DNA, or FALSE if otherwise. +Only an organic Carbon with valid DNA may mutate; not robots, AIs, aliens, Ians, or other mobs.

can_perform_action

Checks whether a mob can perform an action to interact with an object

+

The default behavior checks if the mob is:

+
    +
  • Directly adjacent (1-tile radius)
  • +
  • Standing up (not resting)
  • +
  • Allows telekinesis to be used to skip adjacent checks (if they have DNA mutation)
  • +
+

action_bitflags: (see code/__DEFINES/mobs.dm)

+
    +
  • NEED_GRAVITY - If gravity must be present to perform action (can't use pens without gravity)
  • +
  • NEED_LITERACY - If reading is required to perform action (can't read a book if you are illiterate)
  • +
  • NEED_LIGHT - If lighting must be present to perform action (can't heal someone in the dark)
  • +
  • NEED_DEXTERITY - If other mobs (monkeys, aliens, etc) can perform action (can't use computers if you are a monkey)
  • +
  • NEED_HANDS - If hands are required to perform action (can't pickup items if you are a cyborg)
  • +
  • FORBID_TELEKINESIS_REACH - If telekinesis is forbidden to perform action from a distance (ex. canisters are blacklisted from telekinesis manipulation)
  • +
  • ALLOW_SILICON_REACH - If silicons are allowed to perform action from a distance (silicons can operate airlocks from far away)
  • +
  • ALLOW_RESTING - If resting on the floor is allowed to perform action ()
  • +
  • ALLOW_VENTCRAWL - Mobs with ventcrawl traits can alt-click this to vent
  • +
  • BYPASS_ADJACENCY - The target does not have to be adjacent
  • +
  • SILENT_ADJACENCY - Adjacency is required but errors are not printed
  • +
  • NOT_INSIDE_TARGET - The target maybe adjacent but the mob should not be inside the target
  • +
+

silence_adjacency: Sometimes we want to use this proc to check interaction without allowing it to throw errors for base case adjacency +Alt click uses this, as otherwise you can detect what is interactable from a distance via the error message

can_read

Can this mob read

can_resist

Can this mob resist (default FALSE)

can_see_reagents

Can the mob see reagents inside of containers?

can_write

Proc that returns TRUE if the mob can write using the writing_instrument, FALSE otherwise.

+

This proc a side effect, outputting a message to the mob's chat with a reason if it returns FALSE. +Unless silent_if_not_writing_tool is TRUE. In that case it'll be silent if it isn't a writing implement/tool/instrument w/e.

cancel_camera

Sometimes helps if the user is stuck in another perspective or camera

change_mob_type_unchecked

Version of [change_mob_type] that does no usr prompting (may send an error message though). Satisfies procs with the SHOULD_NOT_SLEEP restriction

check_emote

Check if this message is an emote

check_respawn_delay

Checks if the mob can respawn yet according to the respawn delay

clear_important_client_contents

Clears the clients channel of this mob

click_random_mob

Clicks a random nearby mob with the source from this mob

copy_recent_speech

Returns an associative list of the logs of a certain amount of lines spoken recently by this mob +copy_amount - number of lines to return +line_chance - chance to return a line, if you don't want just the most recent x lines

create_chat_message

Creates a message overlay at a defined location for a given speaker

+

Arguments:

+
    +
  • speaker - The atom who is saying this message
  • +
  • message_language - The language that the message is said in
  • +
  • raw_message - The text content of the message
  • +
  • spans - Additional classes to be added to the message
  • +

create_thinking_indicator

Creates a thinking indicator over the mob.

create_typing_indicator

Creates a typing indicator over the mob.

default_lighting_cutoff

Returns this mob's default lighting alpha

do_after_count

Returns the total amount of do_afters this mob is taking part in

down

Moves a mob down a z level

dropItemToGround

Used to drop an item (if it exists) to the ground.

+
    +
  • Will return null if the item wasn't dropped.
  • +
  • If it was, returns the item. +If the item can be dropped, it will be forceMove()'d to the ground and the turf's Entered() will be called.
  • +

drop_all_held_items

Returns a list of all dropped held items. +If none were dropped, returns an empty list.

drop_everything

Safely drop everything, without deconstructing the mob

enable_client_mobs_in_contents

propogates ourselves through our nested contents, similar to other important_recursive_contents procs +main difference is that client contents need to possibly duplicate recursive contents for the clients mob AND its eye

equip_to_appropriate_slot

Auto equip the passed in item the appropriate slot based on equipment priority

+

puts the item "W" into an appropriate slot in a human's inventory

+

returns 0 if it cannot, 1 if successful

equip_to_slot

Actually equips an item to a slot (UNSAFE)

+

This is an UNSAFE proc. It merely handles the actual job of equipping. All the checks on +whether you can or can't equip need to be done before! Use mob_can_equip() for that task.

+

In most cases you will want to use equip_to_slot_if_possible()

equip_to_slot_if_possible

Try to equip an item to a slot on the mob

+

This is a SAFE proc. Use this instead of equip_to_slot()!

+

set qdel_on_fail to have it delete W if it fails to equip

+

set disable_warning to disable the 'you are unable to equip that' warning.

+

unset redraw_mob to prevent the mob icons from being redrawn at the end.

+

Initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it

+

set indirect_action to allow insertions into "soft" locked objects, things that are easily opened by the owning mob

equip_to_slot_or_del

Equip an item to the slot or delete

+

This is just a commonly used configuration for the equip_to_slot_if_possible() proc, used to +equip people when the round starts and when events happen and such.

+

Also bypasses equip delay checks, since the mob isn't actually putting it on. +Initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it +set indirect_action to allow insertions into "soft" locked objects, things that are easily opened by the owning mob

examinate

Examine a mob

+

mob verbs are faster than object verbs. See +this byond forum post +for why this isn't atom/verb/examine()

execute_mode

proc version to finish /mob/verb/mode() execution. used in case the proc needs to be queued for the tick after its first called

execute_quick_equip

proc extender of [/mob/verb/quick_equip] used to make the verb queuable if the server is overloaded

face_atom

Simple helper to face what you clicked on, in case it should be needed in more than one place

first_name

Find the first name of a mob from the real name with regex

fully_replace_character_name

Fully update the name of a mob

+

This will update a mob's name, real_name, mind.name, GLOB.manifest records, pda, id and traitor text

+

Calling this proc without an oldname will only update the mob and skip updating the pda, id and records ~Carn

generate_random_mob_name

Generates a random name for the mob based on their gender or species (for humans)

+
    +
  • unique - If the name should be unique, IE, avoid picking names that mobs already have.
  • +

get_actions_for_statpanel

Convert a list of spells into a displyable list for the statpanel

+

Shows charge and other important info

get_actionspeed_modifiers

Get the action speed modifiers list of the mob

get_active_hand

Get the bodypart for whatever hand we have active, Only relevant for carbons

get_active_held_item

Returns the thing we're currently holding

get_config_multiplicative_speed

Get the global config movespeed of a mob by type

get_death_consequences_trauma

Searches mind.current for a death_consequences trauma. Allows this proc to be used on both ghosts and living beings to find their linked trauma.

get_equipped_speed_mod_items

Get all items in our possession that should affect our movespeed

get_inactive_hand

Gets the inactive hand of the mob. Returns FALSE on non-carbons, otherwise returns the /obj/item/bodypart.

get_item_by_slot

Get the item on the mob in the storage slot identified by the id passed in

get_message_mods

Extracts and cleans message of any extenstions at the begining of the message +Inserts the info into the passed list, returns the cleaned message

+

Result can be

+
    +
  • SAY_MODE (Things like aliens, channels that aren't channels)
  • +
  • MODE_WHISPER (Quiet speech)
  • +
  • MODE_SING (Singing)
  • +
  • MODE_HEADSET (Common radio channel)
  • +
  • RADIO_EXTENSION the extension we're using (lots of values here)
  • +
  • RADIO_KEY the radio key we're using, to make some things easier later (lots of values here)
  • +
  • LANGUAGE_EXTENSION the language we're trying to use (lots of values here)
  • +

get_mob_buckling_height

returns the height in pixel the mob should have when buckled to another mob.

get_movespeed_modifiers

Get the move speed modifiers list of the mob

get_num_held_items

Find number of held items, multihand compatible

get_organ_by_type

Get the organ object from the mob matching the passed in typepath

+

Arguments:

+
    +
  • typepath The typepath of the organ to get
  • +

get_organ_slot

Returns a list of all organs in specified slot

+

Arguments:

+
    +
  • slot Slot to get the organs from
  • +

get_organs_for_zone

Get organ objects by zone

+

This will return a list of all the organs that are relevant to the zone that is passedin

+

Arguments:

+

get_photo_description

Return the desc of this mob for a photo

get_policy_keywords

Get the list of keywords for policy config

+

This gets the type, mind assigned roles and antag datums as a list, these are later used +to send the user relevant headadmin policy config

get_random_valid_zone

More or less ran_zone, but only returns bodyzones that the mob /actually/ has.

+
    +
  • +

    blacklisted_parts - allows you to specify zones that will not be chosen. eg: list(BODY_ZONE_CHEST, BODY_ZONE_R_LEG)

    +
  • +
  • +
      +
    • !!!! blacklisting BODY_ZONE_CHEST is really risky since it's the only bodypart guarunteed to ALWAYS exists !!!!
    • +
    +
  • +
  • +
      +
    • !!!! Only do that if you're REALLY CERTAIN they have limbs, otherwise we'll CRASH() !!!!
    • +
    +
  • +
  • +

    ran_zone has a base prob(80) to return the base_zone (or if null, BODY_ZONE_CHEST) vs something in our generated list of limbs.

    +
  • +
  • +

    this probability is overriden when either blacklisted_parts contains BODY_ZONE_CHEST and we aren't passed a base_zone (since the default fallback for ran_zone would be the chest in that scenario), or if even_weights is enabled.

    +
  • +
  • +

    you can also manually adjust this probability by altering base_probability

    +
  • +
  • +

    even_weights - ran_zone has a 40% chance (after the prob(80) mentioned above) of picking a limb, vs the torso & head which have an additional 10% chance.

    +
  • +
  • +

    Setting even_weight to TRUE will make it just a straight up pick() between all possible bodyparts.

    +
  • +

get_realname_string

Returns a mob's real name between brackets. Useful when you want to display a mob's name alongside their real name

get_slot_by_item

Gets what slot the item on the mob is held in. +Returns null if the item isn't in any slots on our mob. +Does not check if the passed item is null, which may result in unexpected outcoms.

get_spacemove_backup

Finds a target near a mob that is viable for pushing off when moving. +Takes the intended movement direction as input, alongside if the context is checking if we're allowed to continue drifting

get_status_tab_items

Adds this list to the output to the stat browser

grant_actions_by_list

Takes in an associated list (key /datum/action typepaths, value is the AI blackboard key) and handles granting the action and adding it to the mob's AI controller blackboard. +This is only useful in instances where you don't want to store the reference to the action on a variable on the mob. +You can set the value to null if you don't want to add it to the blackboard (like in player controlled instances). Is also safe with null AI controllers. +Assumes that the action will be initialized and held in the mob itself, which is typically standard.

handle_eye_contact

handle_eye_contact() is called when we examine() something. If we examine an alive mob with a mind who has examined us in the last 2 seconds within 5 tiles, we make eye contact!

+

Note that if either party has their face obscured, the other won't get the notice about the eye contact +Also note that examine_more() doesn't proc this or extend the timer, just because it's simpler this way and doesn't lose much. +The nice part about relying on examining is that we don't bother checking visibility, because we already know they were both visible to each other within the last second, and the one who triggers it is currently seeing them

has_actionspeed_modifier

Is there a actionspeed modifier for this mob

has_light_nearby

Checks if there is enough light where the mob is located

+

Args: +light_amount (optional) - A decimal amount between 1.0 through 0.0 (default is 0.2)

has_movespeed_modifier

Is there a movespeed modifier for this mob

has_nightvision

Can this mob see in the dark

+

This checks all traits, glasses, and robotic eyeball implants to see if the mob can see in the dark +this does NOT check if the mob is missing it's eyeballs.

has_status_effect

Checks if this mob has a status effect that shares the passed effect's ID

+

checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not its typepath

+

Returns an instance of a status effect, or NULL if none were found.

has_status_effect_from_source

Checks if this mob has a status effect that shares the passed effect's ID +and has the passed sources are in its list of sources (ONLY works for grouped efects!)

+

checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not its typepath

+

Returns an instance of a status effect, or NULL if none were found.

has_status_effect_list

Returns a list of all status effects that share the passed effect type's ID

+

checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not its typepath

+

Returns a list

hide_other_mob_action_buttons

Hide another mob's action buttons from this mob

+

Used for observers viewing another mob's screen

hivecheck

Check if the mob has a hivemind channel

initialize_actionspeed

Adds a default action speed

is_holding_items

Returns true if a mob is holding something

is_literate

This mob is abile to read books

is_nearsighted_currently

Is the mob nearsighted CURRENTLY? +This check fails if the mob is nearsighted but is wearing glasses, +While is_nearsighted will always succeed even if they are wearing glasses.

last_name

Find the last name of a mob from the real name with regex

limb_attack_self

Called by using Activate Held Object with an empty hand/limb

+

Does nothing by default. The intended use is to allow limbs to call their +own attack_self procs. It is up to the individual mob to override this +parent and actually use it.

log_manual_zone_selected_update

Generates a log message when a user manually changes their targeted zone. +Only need to one of new_target or old_target, and the other will be auto populated with the current selected zone.

log_message

Logs a message in a mob's individual log, and in the global logs as well if log_globally is true

log_mob_tag

Logs a message to the mob_tags log, including the mobs tag +Arguments:

+
    +
  • text - text to log.
  • +

lost_game

This proc sends the COMSIG_MOB_LOST_VIDEOGAME signal

+

This should be called by games when the gamer reaches a losing state

lowest_buckled_mob

Find the mob at the bottom of a buckle chain

make_pai

Creates a new pAI.

+

@param {boolean} delete_old - If TRUE, deletes the old pAI.

me_verb

The me emote verb

memory

Shows a tgui window with memories

mob_negates_gravity

Does this mob ignore gravity

mode

Verb to activate the object in your held hand

+

Calls attack self on the item and updates the inventory hud for hands

notify_revival

Notify a ghost that its body is being revived

onShuttleMove

Mob move procs

on_block_magic_effects

Called whenever a magic effect with a charge cost is blocked and we haven't recently blocked magic.

on_observing_action_granted

Signal proc for COMSIG_MOB_GRANTED_ACTION - If we're viewing another mob's action buttons, +we need to update with any newly added buttons granted to the mob.

on_observing_action_removed

Signal proc for COMSIG_MOB_REMOVED_ACTION - If we're viewing another mob's action buttons, +we need to update with any removed buttons from the mob.

open_language_menu_verb

Show the language menu for this mob

perform_hand_swap

Performs the actual ritual of swapping hands, such as setting the held index variables

played_game

This proc sends the COMSIG_MOB_PLAYED_VIDEOGAME signal

+

This should be called by games whenever the gamer interacts with the device

playsound_local

Plays a sound with a specific point of origin for src mob +Affected by pressure, distance, terrain and environment (see arguments)

+

Arguments:

+
    +
  • turf_source - The turf our sound originates from, if this is not a turf, the sound is played with no spatial audio
  • +
  • soundin - Either a file, or a string that can be used to get an SFX.
  • +
  • vol - The volume of the sound, excluding falloff and pressure affection.
  • +
  • vary - bool that determines if the sound changes pitch every time it plays.
  • +
  • frequency - playback speed of audio.
  • +
  • falloff_exponent - Rate of falloff for the audio. Higher means quicker drop to low volume. Should generally be over 1 to indicate a quick dive to 0 rather than a slow dive.
  • +
  • channel - Optional: The channel the sound is played at.
  • +
  • pressure_affected - bool Whether or not difference in pressure affects the sound (E.g. if you can hear in space).
  • +
  • sound_to_use - Optional: Will default to soundin when absent
  • +
  • max_distance - number, determines the maximum distance of our sound
  • +
  • falloff_distance - Distance at which falloff begins. Sound is at peak volume (in regards to falloff) aslong as it is in this range.
  • +
  • distance_multiplier - Default 1, multiplies the maximum distance of our sound
  • +
  • use_reverb - bool default TRUE, determines if our sound has reverb
  • +

pointed

Point at an atom

+

mob verbs are faster than object verbs. See +this byond forum post +for why this isn't atom/verb/pointed()

+

note: ghosts can point, this is intended

+

visible_message will handle invisibility properly

+

overridden here and in /mob/dead/observer for different point span classes and sanity checks

post_buckle_mob

Call back post buckle to a mob to offset your visual height

post_unbuckle_mob

Call back post unbuckle from a mob, (reset your visual height here)

query_heart

Ask someone if they'd like to award a commendation for the round, 3 tries to get the name they want before we give up

ranged_secondary_attack

Ranged secondary attack

+

If the same conditions are met to trigger RangedAttack but it is +instead initialized via a right click, this will trigger instead. +Useful for mobs that have their abilities mapped to right click.

reagent_check

Proc used for custom metabolization of reagents, if any

refresh_death_consequences

Calls update_variables() on this mob's linked death consequences trauma. See that proc for further info.

regenerate_icons

Redraws the entire mob. For carbons, this is rather expensive, please use the individual update_X procs.

remove_actionspeed_modifier

Remove a action speed modifier from a mob, whether static or variable.

remove_all_indicators

Removes any indicators and marks the mob as not speaking IC.

remove_client_colour

Removes an instance of colour_type from the mob's client_colours list +colour_type - a typepath (subtyped from /datum/client_colour)

remove_from_alive_mob_list

Removes the mob reference from the list of all mobs alive. If mob is cliented, it removes it from the list of all living player-mobs.

remove_from_current_dead_players

Removes the mob reference from either the list of dead player-mobs or from the list of observers, depending on how they joined the game.

remove_from_current_living_antags

Removes the mob reference from the list of living antag player-mobs.

remove_from_current_living_players

Removes the mob reference from the list of living player-mobs. If the mob is an antag, it removes it from the list of living antag player-mobs.

remove_from_dead_mob_list

Remvoes the mob reference from list of all the dead mobs. If mob is cliented, it adds it to the list of all dead player-mobs.

remove_from_mob_list

Removes the mob reference from the list and directory of all mobs. Called on Destroy().

remove_from_mob_suicide_list

Removes a mob references from the list of all suicided mobs

remove_from_player_list

Removes the mob reference from the list of all player-mobs, besides from either the of dead or alive player-mob lists, as appropriate. Called on Logout().

remove_movespeed_modifier

Remove a move speed modifier from a mob, whether static or variable.

remove_thinking_indicator

Removes the thinking indicator over the mob.

remove_typing_indicator

Removes the typing indicator over the mob.

replace_identification_name

update the ID name of this mob

replace_records_name

Updates GLOB.manifest records with new name , see mob/living/carbon/human

reset_perspective

Reset the attached clients perspective (viewpoint)

+

reset_perspective(null) set eye to common default : mob on turf, loc otherwise +reset_perspective(thing) set the eye to the thing (if it's equal to current default reset to mob perspective)

say_dead

Speak as a dead person (ghost etc)

say_verb

what clients use to speak. when you type a message into the chat bar in say mode, this is the first thing that goes off serverside.

send_to_cryo

Send player in not-quiet cryopod. If with_paper = TRUE, place a paper with notification under player.

set_disgust

Set the disgust level of a mob

set_invis_see

see invisibility is the mob's capability to see things that ought to be hidden from it +Can think of it as a primitive version of changing the alpha of planes +We mostly use it to hide ghosts, no real reason why

set_nutrition

Force set the mob nutrition

set_sight

Sight here is the mob.sight var, which tells byond what to actually show to our client +See code__DEFINES\sight.dm for more details

set_species

DNA MOB-PROCS

shared_ui_interaction

public

+

Standard interaction/sanity checks. Different mob types may have overrides.

+

return UI_state The state of the UI.

show_message

Show a message to this mob (visual or audible)

show_other_mob_action_buttons

Show (most) of the another mob's action buttons to this mob

+

Used for observers viewing another mob's screen

shuttleRotate

Mob rotate procs

slip

Called when this mob slips over, override as needed

+

knockdown_amount - time (in deciseconds) the slip leaves them on the ground +slipped_on - optional, what'd we slip on? if not set, we assume they just fell over +lube - bitflag of "lube flags", see [mobs.dm] for more information +paralyze - time (in deciseconds) the slip leaves them paralyzed / unable to move +force_drop = the slip forces them to drop held items

spin

Spin this mob around it's central axis

sync_lighting_plane_cutoff

Set the lighting plane hud filters to the mobs lighting_cutoff var

throw_alert

Proc to create or update an alert. Returns the alert if the alert is new or updated, 0 if it was thrown already +category is a text string. Each mob may only have one alert per category; the previous one will be replaced +path is a type path of the actual alert type to throw +severity is an optional number that will be placed at the end of the icon_state for this alert +for example, high pressure's icon_state is "highpressure" and can be serverity 1 or 2 to get "highpressure1" or "highpressure2" +new_master is optional and sets the alert's icon state to "template" in the ui_style icons with the master as an overlay. +flicks are forwarded to master +override makes it so the alert is not replaced until cleared by a clear_alert with clear_override, and it's used for hallucinations.

up

Moves a mob upwards in z level

update_action_buttons

This proc handles adding all of the mob's actions to their screen

+

If you just need to update existing buttons, use /mob/proc/update_mob_action_buttons!

+

Arguments:

+
    +
  • update_flags - reload_screen - bool, if TRUE, this proc will add the button to the screen of the passed mob as well
  • +

update_actionspeed

Go through the list of actionspeed modifiers and calculate a final actionspeed. ANY ADD/REMOVE DONE IN UPDATE_actionspeed MUST HAVE THE UPDATE ARGUMENT SET AS FALSE!

update_ambience_area

Ambience buzz handling called by either area/Enter() or refresh_looping_ambience()

update_body

Updates every part of a carbon's body. Including parts, mutant parts, lips, underwear, and socks.

update_client_colour

Resets the mob's client.color to null, and then reapplies a new color based +on the client_colour datums it currently has.

update_config_movespeed

Set or update the global movespeed config on a mob

update_equipment_speed_mods

Apply a proper movespeed modifier based on items we have equipped

update_held_items

Updates the held items overlay(s) & HUD element.

update_incapacitated

Called whenever anything that modifes incapacitated is ran, updates it and sends a signal if it changes +Returns TRUE if anything changed, FALSE otherwise

update_mob_action_buttons

Updates all action buttons this mob has.

+

Arguments:

+
    +
  • update_flags - Which flags of the action should we update
  • +
  • force - Force buttons update even if the given button icon state has not changed
  • +

update_mouse_pointer

Update the mouse pointer of the attached client in this mob

update_movespeed

Go through the list of movespeed modifiers and calculate a final movespeed. ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE!

update_pockets

Updates the pocket overlay & HUD element.

update_pull_hud_icon

Update the pulling hud icon

update_rest_hud_icon

Update the resting hud icon

update_sight

Update the lighting plane and sight of this mob (sends COMSIG_MOB_UPDATE_SIGHT)

update_stamina_hud

Changes the stamina HUD based on new information

update_suit_storage

Updates the suit storage overlay & HUD element.

update_worn_back

Updates the back overlay & HUD element.

update_worn_belt

Updates the belt overlay & HUD element.

update_worn_bra

Updates the bra overlay & HUD element.

update_worn_ears

Updates the headset overlay & HUD element.

update_worn_ears_extra

Updates the headset on the other side overlay & HUD element.

update_worn_glasses

Updates the glasses overlay & HUD element.

update_worn_gloves

Updates the glasses overlay & HUD element.

update_worn_handcuffs

Updates the handcuff overlay & HUD element.

update_worn_head

Updates the on-head overlay & HUD element.

update_worn_id

Updates the id overlay & HUD element.

update_worn_legcuffs

Updates the legcuff overlay & HUD element.

update_worn_mask

Updates the mask overlay & HUD element.

update_worn_neck

Updates the neck overlay & HUD element.

update_worn_oversuit

Updates the oversuit overlay & HUD element.

update_worn_shirt

Updates the shirt overlay & HUD element.

update_worn_shoes

Updates the shoes overlay & HUD element.

update_worn_socks

Updates the socks overlay & HUD element.

update_worn_undersuit

Updates the undersuit/uniform overlay & HUD element.

update_worn_underwear

Updates the underwear overlay & HUD element.

update_worn_wrists

Updates the wrists overlay & HUD element.

visible_message

Adds the functionality to self_message.

vote

Mob level verb that allows players to vote on the current vote.

vv_get_dropdown

EXTRA MOB VV

vv_get_var

extra var handling for the logging var

vv_load_prefs

Overrides someones mob with their loaded prefs.

vv_send_cryo

Sends said person to a cryopod.

whisper

Whisper a message.

+

Basic level implementation just speaks the message, nothing else.

whisper_verb

Whisper verb

won_game

This proc sends the COMSIG_MOB_WON_VIDEOGAME signal

+

This should be called by games when the gamer reaches a winning state

\ No newline at end of file diff --git a/mob/camera.html b/mob/camera.html new file mode 100644 index 0000000000000..2227508d2a4db --- /dev/null +++ b/mob/camera.html @@ -0,0 +1 @@ +/mob/camera - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

camera

Vars

has_emotesToggles if the camera can use emotes
move_on_shuttleToggles if the camera can move on shuttles

Var Details

has_emotes

Toggles if the camera can use emotes

move_on_shuttle

Toggles if the camera can move on shuttles

\ No newline at end of file diff --git a/mob/camera/ai_eye.html b/mob/camera/ai_eye.html new file mode 100644 index 0000000000000..5927c78478b59 --- /dev/null +++ b/mob/camera/ai_eye.html @@ -0,0 +1 @@ +/mob/camera/ai_eye - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ai_eye

Procs

update_visibilityUsed in cases when the eye is located in a movable object (i.e. mecha)

Proc Details

update_visibility

Used in cases when the eye is located in a movable object (i.e. mecha)

\ No newline at end of file diff --git a/mob/camera/ai_eye/remote/base_construction.html b/mob/camera/ai_eye/remote/base_construction.html new file mode 100644 index 0000000000000..a0711833c9cad --- /dev/null +++ b/mob/camera/ai_eye/remote/base_construction.html @@ -0,0 +1,4 @@ +/mob/camera/ai_eye/remote/base_construction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

base_construction

A mob used by /obj/machinery/computer/camera_advanced/base_construction for building in specific areas.

+

Controlled by a user who is using a base construction console. +The user will be granted a set of building actions by the console, and the actions will be carried out by this mob. +The mob is constrained to a given area defined by the base construction console.

Vars

linked_consoleReference to the camera console controlling this drone

Var Details

linked_console

Reference to the camera console controlling this drone

\ No newline at end of file diff --git a/mob/camera/blob.html b/mob/camera/blob.html new file mode 100644 index 0000000000000..ee8d93544dfad --- /dev/null +++ b/mob/camera/blob.html @@ -0,0 +1 @@ +/mob/camera/blob - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

blob

Vars

all_blobsA list of all blob structures
strain_choicesThe list of strains the blob can reroll for.

Procs

assume_direct_controlGive our new minion the properties of a minion
can_buySimple price check
check_core_visibilityChecks proximity for mobs
check_objects_tileChecks for previous blobs or denose objects on the tile.
create_blobbernautPreliminary check before polling ghosts.
create_shieldCreates a shield to reflect projectiles
create_specialPlaces important blob structures
create_sporeCreate a blob spore and link it to us
directional_attackFinds cardinal and diagonal attack directions
expand_blobExpands to nearby tiles
jump_to_nodeJumps to a node
on_blobbernaut_attackedWhen one of our boys attacked something, we sometimes want to perform extra effects
on_minion_deathWhen a spore (or zombie) dies then we do this
on_poll_concludedCalled when the ghost poll concludes
open_reroll_menuControls changing strains
pick_blobbernaut_candidatePolls ghosts to get a blobbernaut candidate.
place_blob_corePlaces the core itself
rally_sporesRally spores to a location
register_new_minionAdd something to our list of mobs and wait for it to die
relocate_coreMoves the core
remove_blobSearches the tile for a blob and removes it.
strain_rerollOpens the reroll menu to change strains
toggle_node_reqToggles requiring nodes
transport_coreMoves the core elsewhere.

Var Details

all_blobs

A list of all blob structures

strain_choices

The list of strains the blob can reroll for.

Proc Details

assume_direct_control

Give our new minion the properties of a minion

can_buy

Simple price check

check_core_visibility

Checks proximity for mobs

check_objects_tile

Checks for previous blobs or denose objects on the tile.

create_blobbernaut

Preliminary check before polling ghosts.

create_shield

Creates a shield to reflect projectiles

create_special

Places important blob structures

create_spore

Create a blob spore and link it to us

directional_attack

Finds cardinal and diagonal attack directions

expand_blob

Expands to nearby tiles

jump_to_node

Jumps to a node

on_blobbernaut_attacked

When one of our boys attacked something, we sometimes want to perform extra effects

on_minion_death

When a spore (or zombie) dies then we do this

on_poll_concluded

Called when the ghost poll concludes

open_reroll_menu

Controls changing strains

pick_blobbernaut_candidate

Polls ghosts to get a blobbernaut candidate.

place_blob_core

Places the core itself

rally_spores

Rally spores to a location

register_new_minion

Add something to our list of mobs and wait for it to die

relocate_core

Moves the core

remove_blob

Searches the tile for a blob and removes it.

strain_reroll

Opens the reroll menu to change strains

toggle_node_req

Toggles requiring nodes

transport_core

Moves the core elsewhere.

\ No newline at end of file diff --git a/mob/camera/imaginary_friend.html b/mob/camera/imaginary_friend.html new file mode 100644 index 0000000000000..602dd78d3ca91 --- /dev/null +++ b/mob/camera/imaginary_friend.html @@ -0,0 +1,9 @@ +/mob/camera/imaginary_friend - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

imaginary_friend

Vars

extended_message_rangeWhether our host and other imaginary friends can hear us only when nearby or practically anywhere.

Procs

InitializeArguments:
attach_to_ownerLinks this imaginary friend to the provided mob
group_clientsReturns all member clients of the imaginary_group
setup_appearanceCopies appearance from passed player prefs, or randomises them if none are provided
setup_friendRandomise friend name and appearance
setup_friend_from_prefsSets up the imaginary friend's name and look using a set of datum preferences.

Var Details

extended_message_range

Whether our host and other imaginary friends can hear us only when nearby or practically anywhere.

Proc Details

Initialize

Arguments:

+
    +
  • imaginary_friend_owner - The living mob that owns the imaginary friend.
  • +
  • appearance_from_prefs - If this is a valid set of prefs, the appearance of the imaginary friend is based on these prefs.
  • +

attach_to_owner

Links this imaginary friend to the provided mob

group_clients

Returns all member clients of the imaginary_group

setup_appearance

Copies appearance from passed player prefs, or randomises them if none are provided

setup_friend

Randomise friend name and appearance

setup_friend_from_prefs

Sets up the imaginary friend's name and look using a set of datum preferences.

+

Arguments:

+
    +
  • appearance_from_prefs - If this is a valid set of prefs, the appearance of the imaginary friend is based on the currently selected character in them. Otherwise, it's random.
  • +
\ No newline at end of file diff --git a/mob/dead.html b/mob/dead.html new file mode 100644 index 0000000000000..586159e903318 --- /dev/null +++ b/mob/dead.html @@ -0,0 +1,3 @@ +/mob/dead - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

dead

Procs

update_zupdates the Z level for dead players +If they don't have a new z, we'll keep the old one, preventing bugs from ghosting and re-entering, among others

Proc Details

update_z

updates the Z level for dead players +If they don't have a new z, we'll keep the old one, preventing bugs from ghosting and re-entering, among others

\ No newline at end of file diff --git a/mob/dead/new_player.html b/mob/dead/new_player.html new file mode 100644 index 0000000000000..d7df3f797b35b --- /dev/null +++ b/mob/dead/new_player.html @@ -0,0 +1,11 @@ +/mob/dead/new_player - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

new_player

Vars

ineligible_for_rolesUsed to make sure someone doesn't get spammed with messages if they're ineligible for roles.
jobs_menu_mountedUsed to track if the player's jobs menu sent a message saying it successfully mounted.
new_characterFor instant transfer once the round is set up
reset_hud_cooldownCooldown for the Reset Lobby Menu HUD verb
spawningReferenced when you want to delete the new_player later on in the code.
title_screen_is_readyTitle screen is ready to receive signals

Procs

create_characterCreates, assigns and returns the new_character to spawn as. Assumes a valid mind.assigned_role exists.
handle_player_pollingShows a list of currently running polls a player can vote/has voted on
hide_title_screenRemoves the titlescreen entirely from a mob.
open_interviewVerb for opening the existing interview, or if relevant creating a new interview if possible.
playerpollsShows the player a list of current polls, if any.
poll_playerRedirects a player to the correct poll window based on poll type.
poll_player_irvShows voting window for an IRV type poll, listing its options and relevant details.
poll_player_multiShows voting window for a multiple choice type poll, listing its options and relevant details.
poll_player_optionShows voting window for an option type poll, listing its options and relevant details.
poll_player_ratingShows voting window for a rating type poll, listing its options and relevant details.
poll_player_textShows voting window for a text response type poll, listing its relevant details.
register_for_interviewPrepares a client for the interview system, and provides them with a new interview
reset_menu_hudResets the Lobby Menu HUD, recreating and reassigning it to the new player
server_swapAllows the player to select a server to join from any loaded servers.
show_job_traitsShows currently available job traits
show_title_screenShows the titlescreen to a new player.
update_title_screenHard updates the title screen HTML, it causes visual glitches if used.
vote_on_poll_handlerRuns some poll validation before a vote is processed.
vote_on_poll_irvProcesses vote form data and saves results to the database for an IRV type poll.
vote_on_poll_multiProcesses vote form data and saves results to the database for a multiple choice type poll.
vote_on_poll_optionProcesses vote form data and saves results to the database for an option type poll.
vote_on_poll_ratingProcesses vote form data and saves results to the database for a rating type poll.
vote_on_poll_textProcesses response form data and saves results to the database for a text response type poll.

Var Details

ineligible_for_roles

Used to make sure someone doesn't get spammed with messages if they're ineligible for roles.

jobs_menu_mounted

Used to track if the player's jobs menu sent a message saying it successfully mounted.

new_character

For instant transfer once the round is set up

reset_hud_cooldown

Cooldown for the Reset Lobby Menu HUD verb

spawning

Referenced when you want to delete the new_player later on in the code.

title_screen_is_ready

Title screen is ready to receive signals

Proc Details

create_character

Creates, assigns and returns the new_character to spawn as. Assumes a valid mind.assigned_role exists.

handle_player_polling

Shows a list of currently running polls a player can vote/has voted on

hide_title_screen

Removes the titlescreen entirely from a mob.

open_interview

Verb for opening the existing interview, or if relevant creating a new interview if possible.

playerpolls

Shows the player a list of current polls, if any.

poll_player

Redirects a player to the correct poll window based on poll type.

poll_player_irv

Shows voting window for an IRV type poll, listing its options and relevant details.

+

If already voted on, the options are sorted how a player voted for them, otherwise they are randomly shuffled.

poll_player_multi

Shows voting window for a multiple choice type poll, listing its options and relevant details.

+

If already voted on, the options a player voted for are pre-selected.

poll_player_option

Shows voting window for an option type poll, listing its options and relevant details.

+

If already voted on, the option a player voted for is pre-selected.

poll_player_rating

Shows voting window for a rating type poll, listing its options and relevant details.

+

If already voted on, the options a player voted for are pre-selected.

poll_player_text

Shows voting window for a text response type poll, listing its relevant details.

+

If already responded to, the saved response of a player is shown.

register_for_interview

Prepares a client for the interview system, and provides them with a new interview

+

This proc will both prepare the user by removing all verbs from them, as well as +giving them the interview form and forcing it to appear.

reset_menu_hud

Resets the Lobby Menu HUD, recreating and reassigning it to the new player

server_swap

Allows the player to select a server to join from any loaded servers.

show_job_traits

Shows currently available job traits

show_title_screen

Shows the titlescreen to a new player.

update_title_screen

Hard updates the title screen HTML, it causes visual glitches if used.

vote_on_poll_handler

Runs some poll validation before a vote is processed.

+

Checks a player is who they claim to be and that a poll is actually still running. +Also loads the vote_id to pass onto single-option and text polls. +Increments the vote count when successful.

vote_on_poll_irv

Processes vote form data and saves results to the database for an IRV type poll.

vote_on_poll_multi

Processes vote form data and saves results to the database for a multiple choice type poll.

vote_on_poll_option

Processes vote form data and saves results to the database for an option type poll.

vote_on_poll_rating

Processes vote form data and saves results to the database for a rating type poll.

vote_on_poll_text

Processes response form data and saves results to the database for a text response type poll.

\ No newline at end of file diff --git a/mob/dead/observer.html b/mob/dead/observer.html new file mode 100644 index 0000000000000..ff9ec72f9c5c8 --- /dev/null +++ b/mob/dead/observer.html @@ -0,0 +1 @@ +/mob/dead/observer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

observer

Vars

orbiting_refThe POI we're orbiting (orbit menu)

Procs

jump_to_interactWe orbit and interact with the target
observer_viewWe orbit the target or jump if its a turf
on_deorbitCalled when we exit the orbiting state

Var Details

orbiting_ref

The POI we're orbiting (orbit menu)

Proc Details

jump_to_interact

We orbit and interact with the target

observer_view

We orbit the target or jump if its a turf

on_deorbit

Called when we exit the orbiting state

\ No newline at end of file diff --git a/mob/living.html b/mob/living.html new file mode 100644 index 0000000000000..04e31cf5befd6 --- /dev/null +++ b/mob/living.html @@ -0,0 +1,539 @@ +/mob/living - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

living

Vars

blood_volumehow much blood the mob has
body_maptext_height_offsetThe height offset of a mob's maptext due to their current size.
body_positionVariable to track the body position of a mob, regardgless of the actual angle of rotation (usually matching it, but not necessarily).
body_position_pixel_x_offsetThe x amount a mob's sprite should be offset due to the current position they're in
body_position_pixel_y_offsetThe y amount a mob's sprite should be offset due to the current position they're in or size (e.g. lying down moves your sprite down)
body_temp_changesList of changes to body temperature, used by desease symtoms like fever
brutelossBrutal damage caused by brute force (punching, being clubbed by a toolbox ect... this also accounts for pressure damage)
bubble_iconused to prevent spam with smoke reagent reaction on mob. +what icon the mob uses for speechbubbles
butcher_difficultyeffectiveness prob. is modified negatively by this amount; positive numbers make it more difficult, negative ones make it easier
butcher_resultsthese will be yielded from butchering with a probability chance equal to the butcher item's effectiveness
can_be_heldwhether this can be picked up and held.
can_buckle_toIs this mob allowed to be buckled/unbuckled to/from things?
combat_indicatorIs combat indicator enabled for this mob? Boolean.
combat_modeIf combat mode is on or not
crit_thresholdwhen the mob goes from "normal" to crit
current_sizeTracks the current size of the mob in relation to its original size. Use update_transform(resize) to change it.
current_turf_slowdownwhat multiplicative slowdown we get from turfs currently.
death_messageA message sent when the mob dies, with the *deathgasp emote
death_soundA sound sent when the mob dies, with the *deathgasp emote
default_num_handsHow many hands does this mob have by default. This shouldn't change at runtime.
default_num_legsHow many legs does this mob have by default. This shouldn't change at runtime.
diseaseslist of all diseases in a mob
fire_stack_decay_rateRate at which fire stacks should decay from this mob
firelossBurn damage caused by being way too hot, too cold or burnt.
fov_traitsLazy list of FOV traits that will apply a FOV view when handled.
fov_viewFOV view that is applied from either nativeness or traits
ghost_controllableIf set to TRUE, ghosts will be able to click on the simple mob and take control of it.
gp_effectThe effect from gunpointing, to make sure we dont create multiples
gravity_stateWhat our current gravity state is. Used to avoid duplicate animates and such
guaranteed_butcher_resultsthese will always be yielded from butchering
gunpointedWho is gunpointing at our person?
gunpointingWho is the person gunpointing at? If they are
hardcrit_thresholdWhen the mob enters hard critical state and is fully incapacitated.
has_limbsdoes the mob have distinct limbs?(arms,legs, chest,head)
head_iconwhat it looks like when the mob is held on your head
healthThe mob's current health.
health_doll_iconif this exists AND the normal sprite is bigger than 32x32, this is the replacement icon state (because health doll size limitations). the icon will always be screen_gen.dmi
held_lhleft hand icon for holding mobs
held_rhright hand icon for holding mobs
held_stateicon_state for holding mobs.
held_w_classThe w_class of the holder when held.
imaginary_groupContains the owner and all imaginary friend mobs if they exist, otherwise null
incorporeal_moveAllows mobs to move through dense areas without restriction. For instance, in space or out of holder objects.
last_specialUsed by the resist verb, likely used to prevent players from bypassing next_move by logging in/out.
last_vent_dirThe last direction we moved in a vent. Used to make holding two directions feel nice
last_wordsused for database logging
limb_destroyerSets AI behavior that allows mobs to target and dismember limbs with their basic attack.
living_flagsGeneric bitflags for boolean conditions at the /mob/living level. Keep this for inherent traits of living types, instead of runtime-changeable ones.
looking_verticallyIs the mob looking vertically
lying_angleNumber of degrees of rotation of a mob. 0 means no rotation, up-side facing NORTH. 90 means up-side rotated to face EAST, and so on.
lying_prevValue of lying lying_angle before last change. TODO: Remove the need for this.
maxHealthMaximum health that should be possible.
melee_damage_lowerLower bound of damage done by unarmed melee attacks. Mob code is a mess, only works where this is checked for.
melee_damage_upperUpper bound of damage done by unarmed melee attacks. Please ensure you check the xyz_defenses.dm for the mobs in question to see if it uses this or hardcoded values.
metabolism_efficiencymore or less efficiency to metabolize helpful/harmful reagents and regulate body temperature..
mob_biotypesList of biotypes the mob belongs to. Used by diseases and reagents mainly.
mob_moodLiving mob's mood datum
mob_respiration_typeThe type of respiration the mob is capable of doing. Used by adjustOxyLoss.
mob_surgery_speed_modMob specific surgery speed modifier
mobility_flagsFlags that determine the potential of a mob to perform certain actions. Do not change this directly.
move_intentThe movement intent of the mob (run/wal)
navigate_cooldownCooldown of the navigate() verb.
nextcombatpopupWhen is the next time this mob will be able to use flick_emote and put the fluff text in chat?
now_pushingUsed by [living/Bump()][/mob/living/proc/Bump] and [living/PushAM()][/mob/living/proc/PushAM] to prevent potential infinite loop.
num_handsHow many hands hands does this mob currently have. Should only be changed through set_num_hands()
num_legsHow many legs does this mob currently have. Should only be changed through set_num_legs()
numbathe id a mob gets when it's created
on_fireHelper vars for quick access to firestacks, these should be updated every time firestacks are adjusted
oxylossOxygen depravation damage (no air in lungs)
pipetrackerCell tracker datum we use to manage the pipes around us, for faster ventcrawling +Should only exist if you're in a pipe
rotate_on_lyingDoes the mob rotate when lying
slowed_by_dragWhether the mob is slowed down when dragging another prone mob
stamina_regen_timeHow long it takes to return to 0 stam
staminalossStamina damage, or exhaustion. You recover it slowly naturally, and are knocked down if it gets too high. Holodeck and hallucinations deal this.
station_timestamp_timeofdeathThe mob's latest time-of-death, as a station timestamp instead of world.time
status_effectsa list of all status effects the mob has
surgeriesa list of surgery datums. generally empty, they're added when the player wants them.
timeofdeathThe mob's latest time-of-death
toxlossToxic damage caused by being poisoned or radiated
unique_nameif a mob's name should be appended with an id when created e.g. Mob (666)
usable_handsHow many usable hands does this mob currently have. Should only be changed through set_usable_hands()
usable_legsHow many usable legs this mob currently has. Should only be changed through set_usable_legs()
worn_slot_flagsif it can be held, can it be equipped to any slots? (think pAI's on head)

Procs

IsFrozenFROZEN
LifeHandles the biological and general over-time processes of the mob.
PermaSleepingAllows us to set a permanent sleep on a player (use with caution and remember to unset it with SetSleeping() after the effect is over)
Write_MemoryProc used by different station pets such as Ian and Poly so that some of their data can persist between rounds. +This base definition only contains a trait and comsig to stop memory from being (over)written. +Specific behavior is defined on subtypes that use it.
ZImpactDamageCalled when this mob is receiving damage from falling
_cause_hallucinationUnless you need this for an explicit reason, use the cause_hallucination wrapper.
add_body_temperature_changeadd_body_temperature_change Adds modifications to the body temperature
add_cum_splatter_floorUsed to add a cum decal to the floor while transferring viruses and DNA to it
add_fov_traitAdds a trait which limits a user's FOV
add_mood_eventAdds a mood event to the mob
add_movespeed_mod_immunitiesIgnores specific slowdowns. Accepts a list of slowdowns.
add_quirkAdds the passed quirk to the mob
add_stun_absorption[proc/apply_status_effect] wrapper specifically for /datum/status_effect/stun_absorption, +specifically so that it's easier to apply stun absorptions with named arguments.
adjust_drunk_effectAdjust the "drunk value" the mob is currently experiencing, +or applies a drunk effect if the mob isn't currently drunk (or tipsy)
adjust_fire_stacksAdjust the amount of fire stacks on a mob
adjust_incapacitated
adjust_painAdds or removes pain, this should be used instead of the modifying the var, due to quirk logic. +Makes the human scream and shiver when pain hits the soft limit, provided autoemote is enabled.
adjust_status_effects_on_shake_upCLEAR STATUS
adjust_timed_status_effectAdjusts a timed status effect on the mob,taking into account any existing timed status effects. +This can be any status effect that takes into account "duration" with their initialize arguments.
admin_give_delusionAdmin only proc for giving the mob a delusion hallucination with specific arguments
admin_give_hallucinationAdmin only proc for making the mob hallucinate a certain thing
admin_give_speech_impedimentAdmin only proc for giving a certain speech impediment to this mob
am_stakedDo I have a stake in my heart?
amount_incapacitatedProc that returns the remaining duration of the status efect in deciseconds.
appears_aliveHelper to check if we seem to be alive or not
apply_damageApplies damage to this mob.
apply_damagesApplies multiple damages at once via apply_damage
apply_effectapplies various common status effects or common hardcoded mob effects
apply_effectsApplies multiple effects at once via /mob/living/proc/apply_effect
apply_prefs_jobApplies the preference options to the spawning mob, taking the job into account. Assumes the client has the proper mind.
apply_status_effectApplies a given status effect to this mob.
apply_suicide_damageThe actual proc that will apply the damage to the suiciding mob. damage_type is the actual type of damage we want to deal, if that matters. +Return TRUE if we actually apply any real damage, FALSE otherwise.
attack_effectsCalled when we take damage, used to cause effects such as a blood splatter.
base_click_ctrlCtrl click +For most objects, pull
became_unhuskableCalled when we become unhuskable while already husked
befriendProc for giving a mob a new 'friend', generally used for AI control and targeting. Returns false if already friends.
bleedDragAmountReturns how much blood we're losing from being dragged a tile, from [/mob/living/proc/makeTrail]
block_projectile_effectsPerforms the aftereffects of blocking a projectile.
calculate_fitnessReturns an arbitrary number which very roughly correlates with how buff you look
can_be_revivedChecks if we are actually able to ressuscitate this mob. +(We don't want to revive then to have them instantly die again)
can_be_spread_airborne_diseaseChecks if this mob can currently be infected by air based diseases +Nondeterministic
can_be_stakedCan this target be staked? If someone stands up before this is complete, it fails. Best used on someone stationary.
can_catch_itemChecks the requites for catching a throw item.
can_disarmCheck if the universal conditions for disarming/shoving are met.
can_enter_ventChecks if the mob is able to enter the vent, and provides feedback if they are unable to.
can_injectReturns whether or not the mob can be injected. Should not perform any side effects.
can_look_upChecks if the user is incapacitated or on cooldown.
can_spread_airborne_diseasesChecks if this mob can currently spread air based diseases. +Nondeterministic
can_suicideChecks if we are in a valid state to suicide (not already suiciding, capable of actually killing ourselves, area checks, etc.) Returns TRUE if we can suicide, FALSE if we can not.
can_trackChecks if this mob can be actively tracked by cameras / AI. +Can optionally be passed a user, which is the mob who is tracking src.
can_unarmed_attackChecks if this mob is in a valid state to punch someone.
carrier_emotePrompts the parent mob to send a emote to the soulcatcher. Returns False if no soulcatcher or emote could be found.
carrier_sayPrompts the parent mob to send a say message to the soulcatcher. Returns False if no soulcatcher or message could be found.
check_erp_prefsChecks to see if the parent mob has pref_to_check enabled, returns FALSE if the pref cannot be found or is set to False, otherwise returns TRUE
check_hit_limb_zone_nameReturns the string form of the def_zone we have hit.
check_prefs_in_viewChecks the prefs of all mobs in view(). If there is a mob with the pref_to_check set to false, we return FALSE otherwise, we return TRUE
check_stun_immunityChecks if we have stun immunity. Godmode always passes this check.
clean_lipsA wrapper for mob/living/carbon/human/proc/update_lips that sets the lip style and color to null.
clear_mood_eventClears a mood event from the mob
compare_fitnessCreate a report string about how strong this person looks, generated in a somewhat arbitrary fashion
compare_sentience_typeHelper proc for basic and simple animals to return true if the passed sentience type matches theirs +Living doesn't have a sentience type though so it always returns false if not a basic or simple mob
contract_airborne_diseaseHandle being contracted a disease via airborne transmission
create_thinking_indicatorOverrides for overlay creation
disarmAttempt to disarm the target mob. Some items might let you do it, also carbon can do it with right click. +Will shove the target mob back, and drop them if they're in front of something dense +or another carbon.
dismembering_strikeReally weird proc that attempts to dismebmer the passed zone if it is at max damage +Unless the attacker is an NPC, in which case it disregards the zone and picks a random one
do_jitter_animationHelper proc that causes the mob to do a jittering animation by jitter_amount. +jitter_amount will only apply up to 300 (maximum jitter effect).
do_rust_heretic_actwrapper proc that passes our mob's rust_strength to the target we are rusting
do_slap_animationDoes a slap animation on an atom
do_stagger_animationHelper proc that causes the mob to do a stagger animation. +Doesn't change significantly, just meant to represent swaying back and forth
do_strange_reagent_revivalCalled by strange_reagent, with the amount of healing the strange reagent is doing +It uses the healing amount on brute/fire damage, and then uses the excess healing for revive
dustThis is the proc for turning a mob into ash. +Dusting robots does not eject the MMI, so it's a bit more powerful than gib()
edit_immerse_overlayCalled in /datum/element/immerse/apply_filter
electrocute_actAs the name suggests, this should be called to apply electric shocks.
end_block_effectsRemoevs the effects of blocking a projectile and allows the user to block another.
execute_resistproc extender of [/mob/living/verb/resist] meant to make the process queable if the server is overloaded when the verb is called
expose_reagents
extinguish_mobExtinguish all fire on the mob
fakedeathInduces fake death on a living mob.
final_checkoutInserts in logging and death + mind dissociation when we're fully done with ending the life of our mob, as well as adjust the health. We will disallow re-entering the body when this is called. +The suicide_tool variable is currently only used for humans in order to allow suicide log to properly put stuff in investigate log. +Set apply_damage to FALSE in order to not do damage (in case it's handled elsewhere in the verb or another proc that the suicide tree calls). Will dissociate client from mind and ghost the player regardless.
find_nearest_stair_or_ladderFinds nearest ladder or staircase either up or down.
flick_emote_popup_on_mobA proc type that, when called, causes a image/sprite to appear above whatever entity it is called on.
fully_healA grand proc used whenever this mob is, quote, "fully healed". +Fully healed could mean a number of things, such as "healing all the main damage types", "healing all the organs", etc +So, you can pass flags to specify
gather_belongingsReturns a list of things that the provided mob has, including any storage-capable implants.
getBruteLoss_nonProsthetic
getFireLoss_nonProstheticBurn
get_accessReturns the access list for this mob
get_adjacent_humansReturns a list containing all of the humans adjacent to the user.
get_all_linked_holoparasitesReturns a list of all holoparasites that has this mob as a summoner.
get_all_status_effect_of_idGets every status effect of an ID and returns all of them in a list, rather than the individual 'has_status_effect'
get_allergic_foodtypesGets food this mob is allergic to +Essentially toxic food+, not only disgusting but outright lethal
get_attack_typeReturns the attack damage type of a living mob such as BRUTE.
get_blind_suicide_messageReturns an appropriate string for what people who lack visibility hear when this mob kills itself. +If you don't want a message, prefer to override send_applicable_messages() on your subtype instead.
get_blood_dna_listreturns the mob's dna info as a list, to be inserted in an object's blood_DNA list
get_body_temp_cold_damage_limitReturns the body temperature at which this mob will start taking cold damage.
get_body_temp_heat_damage_limitReturns the body temperature at which this mob will start taking heat damage.
get_body_temp_normalget_body_temp_normal Returns the mobs normal body temperature with any modifications applied
get_body_temp_normal_changeget_body_temp_normal_change Returns the aggregate change to body temperature
get_butt_spriteSprite to show for photocopying mob butts
get_current_carrier_roomAttempts to find and return the current carrier room the mob is using.
get_current_damage_of_typereturn the damage amount for the type given +Simply a wrapper for calling mob getXLoss() procs to get a certain damage type, +when you don't know what damage type you're getting exactly.
get_damage_modReturns a multiplier to apply to a specific kind of damage
get_disliked_foodtypesGets food flags that this mob dislikes
get_drunk_amountHelper to get the amount of drunkness the mob's currently experiencing.
get_equipped_itemsUsed to return a list of equipped items on a mob; does not include held items (use get_all_gear)
get_exp_listReturns an assoc list of assignments and minutes for updating a client's exp time in the databse.
get_fire_overlayGets the fire overlay to use for this mob
get_food_taste_reactionGets the food reaction a mob would normally have from the given food item, +assuming that no check_liked callback was used in the edible component.
get_fullnessGet the fullness of the mob
get_hit_area_messageOverridable proc so subtypes can have unique targetted strike zone messages, return a string.
get_idcardGets ID card from a mob. +Argument:
get_incoming_damage_modifierUsed in tandem with /mob/living/proc/apply_damage to calculate modifier applied into incoming damage
get_liked_foodtypesGets food flags that this mob likes
get_organic_healthReturns the health of the mob while ignoring damage of non-organic (prosthetic) limbs +Used by cryo cells to not permanently imprison those with damage from prosthetics, +as they cannot be healed through chemicals.
get_pixel_y_offset_standingReturns what the body_position_pixel_y_offset should be if the current size were value
get_quirkGetter function for a mob's quirk
get_quirk_stringget_quirk_string() is used to get a printable string of all the quirk traits someone has for certain criteria
get_shove_flagsCheck if there's anything that could stop the knockdown from being shoved into something or someone.
get_shoving_messageSend the chat feedback message for shoving
get_status_effect_examinationsShows any and all examine text related to any status effects the user has.
get_taste_sensitivityGets taste sensitivity of given mob
get_timed_status_effect_durationGets how many deciseconds are remaining in +the duration of the passed status effect on this mob.
get_total_damagereturn the total damage of all types which update your health
get_toxic_foodtypesGets food flags that this mob hates +Toxic food is the only category that ignores ageusia, KEEP IT LIKE THAT!
get_visible_suicide_messageReturns a subtype-specific flavorful string pertaining to this exact living mob's ending their own life to those who can see it (visible message). +If you don't want a message, prefer to override send_applicable_messages() on your subtype instead.
gibBlow up the mob into giblets
grabCalled when a mob is grabbing another mob.
grabbedbyCalled when this mob is grabbed by another mob.
gravity_setupLiving Mob use event based gravity +We check here to ensure we haven't dropped any gravity changes
handle_ricochetSimplified ricochet angle calculation for mobs (also the base version doesn't work on mobs)
handle_suicideActually handles the bare basics of the suicide process. Message type is the message we want to dispatch in the world regarding the suicide, using the defines in this file. +Override this ENTIRELY if you want to add any special behavior to your suicide handling, if you fuck up the order of operations then shit will break.
handle_suicide_damage_spreadIf we want to apply multiple types of damage to a carbon mob based on the way they suicide, this is the proc that handles that. +Currently only compatible with Brute, Burn, Toxin, and Suffocation Damage. damage_type is the bitflag that carries the information.
handle_ventcrawlHandles the entrance and exit on ventcrawling
has_reagentCheck if the mob contains this reagent.
heal_and_reviveHeals up the mob up to [heal_to] of the main damage types. +EX: If heal_to is 50, and they have 150 brute damage, they will heal 100 brute (up to 50 brute damage)
heal_bodypart_damageheal ONE external organ, organ gets randomly selected from damaged ones.
heal_damage_typeSimply a wrapper for calling mob adjustXLoss() procs to heal a certain damage type, +when you don't know what damage type you're healing exactly.
heal_ordered_damageheal up to amount damage, in a given order
heal_overall_damageheal MANY bodyparts, in random order. note: stamina arg nonfunctional for carbon mobs
ignore_slowdownIgnores all slowdowns that lack the IGNORE_NOSLOW flag.
in_fovIs observed_atom in a mob's field of view? This takes blindness, nearsightness and FOV into consideration
incapacitate
infectious_sneezeLaunch a sneeze that can infect with a disease
is_ears_coveredChecks if the mob's ears (BOTH EARS, BOWMANS NEED NOT APPLY) are covered by something. +Returns the atom covering the mob's ears, or null if their ears are uncovered.
is_eyes_coveredChecks if our mob has their eyes covered.
is_face_visibleOnly defined for carbons who can wear masks and helmets, we just assume other mobs have visible faces
is_mouth_coveredChecks if our mob has their mouth covered.
is_pepper_proofChecks if our mob is protected from pepper spray.
itchPrint a message about an annoying sensation you are feeling. Returns TRUE if successful.
launch_sneezeShoot the sneeze projectile
lazarus_reviveProc called when TARGETED by a lazarus injector
look_downlook_down Changes the perspective of the mob to any openspace turf below the mob
look_uplook_up Changes the perspective of the mob to any openspace turf above the mob
lying_angle_on_movementCalled by mob Move() when the lying_angle is different than zero, to better visually simulate crawling.
move_into_ventMoves living mob directly into the vent as a ventcrawler
ominous_nosebleedPrints an ominous message if something bad is going to happen to you
on_deathcoma_trait_gainCalled when TRAIT_DEATHCOMA is added to the mob.
on_deathcoma_trait_lossCalled when TRAIT_DEATHCOMA is removed from the mob.
on_fallCalled when mob changes from a standing position into a prone while lacking the ability to stand up at the moment.
on_fire_stackHandles effects happening when mob is on normal fire
on_floored_endProc to append behavior to the condition of being floored. Called when the condition ends.
on_floored_startProc to append behavior to the condition of being floored. Called when the condition starts.
on_floored_trait_gainCalled when TRAIT_FLOORED is added to the mob.
on_floored_trait_lossCalled when TRAIT_FLOORED is removed from the mob.
on_force_gravityCalled when TRAIT_FORCED_GRAVITY is gained or lost
on_forced_standing_trait_gainCalled when TRAIT_FORCED_STANDING is added to the mob.
on_forced_standing_trait_lossCalled when TRAIT_FORCED_STANDING is removed from the mob.
on_handsblocked_endProc to append behavior to the condition of being handsblocked. Called when the condition ends.
on_handsblocked_startProc to append behavior to the condition of being handsblocked. Called when the condition starts.
on_handsblocked_trait_gainCalled when TRAIT_HANDS_BLOCKED is added to the mob.
on_handsblocked_trait_lossCalled when TRAIT_HANDS_BLOCKED is removed from the mob.
on_hearing_lossCalled when [TRAIT_DEAF] is added to the mob.
on_hearing_regainCalled when [TRAIT_DEAF] is added to the mob.
on_ignore_gravityCalled when TRAIT_IGNORING_GRAVITY is gained or lost
on_immobilized_trait_gainCalled when TRAIT_IMMOBILIZED is added to the mob.
on_immobilized_trait_lossCalled when TRAIT_IMMOBILIZED is removed from the mob.
on_incapacitated_trait_gainCalled when [TRAIT_INCAPACITATED] is added to the mob.
on_incapacitated_trait_lossCalled when [TRAIT_INCAPACITATED] is removed from the mob.
on_knockedout_trait_gainCalled when TRAIT_KNOCKEDOUT is added to the mob.
on_knockedout_trait_lossCalled when TRAIT_KNOCKEDOUT is removed from the mob.
on_loc_force_gravityCalled when our loc's TRAIT_FORCED_GRAVITY is gained or lost
on_lying_downProc to append behavior related to lying down.
on_movement_type_flag_disabledFrom [element/movetype_handler/on_movement_type_trait_loss()]
on_movement_type_flag_enabledFrom [element/movetype_handler/on_movement_type_trait_gain()]
on_negate_gravityCalled when TRAIT_NEGATES_GRAVITY is gained or lost
on_pull_blocked_trait_gainCalled when TRAIT_PULL_BLOCKED is added to the mob.
on_pull_blocked_trait_lossCalled when TRAIT_PULL_BLOCKED is removed from the mob.
on_restrained_trait_gainCalled when TRAIT_RESTRAINED is added to the mob.
on_restrained_trait_lossCalled when TRAIT_RESTRAINED is removed from the mob.
on_skittish_trait_gainCalled when [TRAIT_SKITTISH] is added to the mob.
on_skittish_trait_lossCalled when [TRAIT_SKITTISH] is removed from the mob.
on_standing_upProc to append behavior related to lying down.
on_stasis_trait_gainCalled when TRAIT_STASIS is added to the mob
on_stasis_trait_lossCalled when TRAIT_STASIS is removed from the mob
on_ui_blocked_trait_gainCalled when TRAIT_UI_BLOCKED is added to the mob.
on_ui_blocked_trait_lossCalled when TRAIT_UI_BLOCKED is removed from the mob.
parse_zone_with_bodypartReturns a string for the specified body zone. If we have a bodypart in this zone, refers to its plaintext_zone instead.
prefs_get_brain_to_useReturns a type to use based off of a given preference value (ORGAN_PREF_POSI_BRAIN, ORGAN_PREF_MMI_BRAIN and ORGAN_PREF_CIRCUIT_BRAIN), and if they're a cyborg or not.
process_captureCommon proc used to deduct money from cargo, announce the kidnapping and add src to the black market. +Returns the black market item, for extra stuff like signals that need to be registered.
received_stamina_damageThe mob has received stamina damage
refresh_gravityHandles gravity effects. Call if something about our gravity has potentially changed!
register_init_signalsCalled on /mob/living/Initialize(mapload), for the mob to register to relevant signals.
remove_body_temperature_changeremove_body_temperature_change Removes the modifications to the body temperature
remove_emote_popup_on_mobA proc that is automatically called whenever flick_emote_popup_on_mob's addtimer expires, and removes the popup.
remove_fov_traitRemoves a trait which limits a user's FOV
remove_movespeed_mod_immunitiesUnignores specific slowdowns. Accepts a list of slowdowns.
remove_status_effectRemoves all instances of a given status effect from this mob
remove_stun_absorptionRemoves all stub absorptions with the passed source.
resolve_right_click_attackCalled when an unarmed attack performed with right click hasn't been stopped by the LIVING_UNARMED_ATTACK_BLOCKED macro. +This will call a secondary attack proc that can vary from mob type to mob type on the target. +Sometimes, a target is interacted differently when right_clicked, in that case the secondary attack proc should return +a SECONDARY_ATTACK_* value that's not SECONDARY_ATTACK_CALL_NORMAL. +Otherwise, it should just return SECONDARY_ATTACK_CALL_NORMAL. Failure to do so will result in an exception (runtime error).
resolve_unarmed_attackCalled when the unarmed attack hasn't been stopped by the LIVING_UNARMED_ATTACK_BLOCKED macro or the right_click_attack_chain proc. +This will call an attack proc that can vary from mob type to mob type on the target.
reviveProc used to resuscitate a mob, bringing them back to life.
right_click_attack_chainChecks for RIGHT_CLICK in modifiers and runs resolve_right_click_attack if so. Returns TRUE if normal chain blocked.
send_applicable_messagesSend all suicide-related messages out to the world. message_type can be used to change out the dispatched suicide message depending on the suicide context.
setGrabStateUpdates the grab state of the mob and updates movespeed
set_body_positionChanges the value of the [living/body_position] variable. Call this before set_lying_angle()
set_buckledReports the event of the change in value of the buckled variable.
set_combat_indicatorCalled whenever a mob's CI status changes for any reason.
set_drunk_effectDirectly sets the "drunk value" the mob is currently experiencing to the passed value, +or applies a drunk effect with the passed value if the mob isn't currently drunk
set_facial_hair_gradient_colorSet the facial hair gradient color of a human. +Update calls update_body_parts().
set_facial_hair_gradient_styleSet the facial hair gradient style of a human. +Update calls update_body_parts().
set_facial_haircolorSet the facial hair color of a human. +Override instead sets the override value, it will not be changed away from the override value until override is set to null. +Update calls update_body_parts().
set_facial_hairstyleSet the facial hair style of a human. +Update calls update_body_parts().
set_fire_stacksSet the fire stacks on a mob
set_hair_gradient_colorSet the hair gradient color of a human. +Update calls update_body_parts().
set_hair_gradient_styleSet the hair gradient style of a human. +Update calls update_body_parts().
set_haircolorSet the hair color of a human. +Override instead sets the override value, it will not be changed away from the override value until override is set to null. +Update calls update_body_parts().
set_hairstyleSet the hair style of a human. +Update calls update_body_parts().
set_healthSets the current mob's health value. Do not call directly if you don't know what you are doing, use the damage procs, instead.
set_incapacitated
set_lying_angleChanges the inclination angle of a mob, used by humans and others to differentiate between standing up and prone positions.
set_lying_downChange the [body_position] to LYING_DOWN and update associated behavior.
set_num_handsProc to modify the value of num_hands and hook behavior associated to this event.
set_num_legsProc to modify the value of num_legs and hook behavior associated to this event.
set_restingProc to hook behavior to the change of value in the resting variable.
set_suicideProc that handles adding the TRAIT_SUICIDED on the mob in question, as well as additional operations to ensure that everything goes smoothly when we're certain that this person is going to kill themself. +suicide_state is a boolean, and we handle adding/removing the trait in question. Have the trait function reference this mob as the source if we want to do in-depth tracking of where a suicided trait comes from. +For example, the /mob/dead/observer that will inevitably come from the suicidee will inherit the suicided trait upon creation, and keep this reference. Handy for doing checking should we need it.
set_timed_status_effectSets a timed status effect of some kind on a mob to a specific value. +If only_if_higher is TRUE, it will only set the value up to the passed duration, +so any pre-existing status effects of the same type won't be reduced down
set_usable_handsProc to modify the value of usable_hands and hook behavior associated to this event.
set_usable_legsProc to modify the value of usable_legs and hook behavior associated to this event.
shared_living_ui_distancepublic
singularity_actLogs, gibs and returns point values of whatever mob is unfortunate enough to get eaten.
sleeping_carp_helpVerb added to humans who learn the art of the sleeping carp.
sneezeInhale and start the sneeze timer. on_sneeze_callback can be used to do custom sneezes, on_sneeze_hit_callback for special effects, but probably usually making it infect
spawn_gibsSpawn bloody gib mess on the floor
spill_organsDrops a mob's organs on the floor
spread_bodypartsLaunches all bodyparts away from the mob
suicideVerb to simply kill yourself (in a very visual way to all players) in game! How family-friendly. Can be governed by a series of multiple checks (i.e. confirmation, is it allowed in this area, etc.) which are +handled and called by the proc this verb invokes. It's okay to block this, because we typically always give mobs in-game the ability to Ghost out of their current mob irregardless of context. This, in contrast, +can have as many different checks as you desire to prevent people from doing the deed to themselves.
suicide_alertSends a TGUI Alert to the person attempting to commit suicide. Returns TRUE if they confirm they want to die, FALSE otherwise. Check can_suicide here as well.
suicide_logInserts logging in both the mob's logs and the investigate log pertaining to their death. Suicide tool is the object we used to commit suicide, if one was held and used (presently only humans use this arg).
take_bodypart_damagedamage ONE external organ, organ gets randomly selected from damaged ones.
take_overall_damagedamage MANY bodyparts, in random order. note: stamina arg nonfunctional for carbon mobs
tally_physical_creditsTotals the physical cash on the mob and returns the total.
tasteNon destructively tastes a reagent container +and gives feedback to the user.
toggle_admin_freezeToggle admin frozen
toggle_admin_sleepToggle admin sleeping
toggle_move_intentToggle the move intent of the mob
tram_slam_landA proc triggered by callback when someone gets slammed by the tram and lands somewhere.
transfer_blood_toBLOOD TRANSFERS
treat_messageTreats the passed message with things that may modify speech (stuttering, slurring etc).
try_catch_itemThe core of catching thrown items, which non-carbons cannot without the help of items or abilities yet, as they've no throw mode.
try_injectLike can_inject, but it can perform side effects.
try_sneeze_infectTry and infect following a sneeze hit. force to always infect
undense_changedCalled when TRAIT_UNDENSE is gained or lost
unequip_everythingReturns the items that were succesfully unequipped.
unfriendProc for removing a friend you added with the proc 'befriend'. Returns true if you removed a friend.
unignore_slowdownUnignores all slowdowns that lack the IGNORE_NOSLOW flag.
update_dnr_hudAdds the DNR HUD element if src has TRAIT_DNR. Removes it otherwise.
update_fovUpdates the applied FOV value and applies the handler to client if able
update_fov_clientUpdates the FOV for the client.
update_fullscreenProc used to handle the fullscreen overlay updates, realistically meant for the reset_perspective() proc.
update_lipsUsed to update the makeup on a human and apply/remove lipstick traits, then store/unstore them on the head object in case it gets severed
update_medhud_on_signalUpdates medhud when receiving relevant signals.
update_pipe_visionEverything related to pipe vision on ventcrawling is handled by update_pipe_vision(). +Called on exit, entrance, and pipenet differences (e.g. moving to a new pipenet). +One important thing to note however is that the movement of the client's eye is handled by the relaymove() proc in /obj/machinery/atmospherics. +We move first and then call update. Dont flip this around
update_restingProc to append and redefine behavior to the change of the [/mob/living/var/resting] variable.
update_succumb_actionCalled when traits that alter succumbing are added/removed.
update_transformCalled whenever the mob is to be resized or when lying/standing up for carbons. +IMPORTANT: Multiple animate() calls do not stack well, so try to do them all at once if you can.
update_usable_leg_statusProc that updates the status of the mob's legs without setting its leg value to something else.
update_wound_overlaysProc that only really gets called for humans, to handle bleeding overlays.
user_toggle_combat_indicatorCalled whenever the user hits their combat indicator keybind, defaulted to C.
wabbajackPolymorphs our mob into another mob. +If successful, our current mob is qdeleted!
whisperLiving level whisper.
will_escape_storageWhether or not this mob will escape from storages while being picked up/held.
zMoveWe want to relay the zmovement to the buckled atom when possible +and only run what we can't have on buckled.zMove() or buckled.can_z_move() here. +This way we can avoid esoteric bugs, copypasta and inconsistencies.

Var Details

blood_volume

how much blood the mob has

body_maptext_height_offset

The height offset of a mob's maptext due to their current size.

body_position

Variable to track the body position of a mob, regardgless of the actual angle of rotation (usually matching it, but not necessarily).

body_position_pixel_x_offset

The x amount a mob's sprite should be offset due to the current position they're in

body_position_pixel_y_offset

The y amount a mob's sprite should be offset due to the current position they're in or size (e.g. lying down moves your sprite down)

body_temp_changes

List of changes to body temperature, used by desease symtoms like fever

bruteloss

Brutal damage caused by brute force (punching, being clubbed by a toolbox ect... this also accounts for pressure damage)

bubble_icon

used to prevent spam with smoke reagent reaction on mob. +what icon the mob uses for speechbubbles

butcher_difficulty

effectiveness prob. is modified negatively by this amount; positive numbers make it more difficult, negative ones make it easier

butcher_results

these will be yielded from butchering with a probability chance equal to the butcher item's effectiveness

can_be_held

whether this can be picked up and held.

can_buckle_to

Is this mob allowed to be buckled/unbuckled to/from things?

combat_indicator

Is combat indicator enabled for this mob? Boolean.

combat_mode

If combat mode is on or not

crit_threshold

when the mob goes from "normal" to crit

current_size

Tracks the current size of the mob in relation to its original size. Use update_transform(resize) to change it.

current_turf_slowdown

what multiplicative slowdown we get from turfs currently.

death_message

A message sent when the mob dies, with the *deathgasp emote

death_sound

A sound sent when the mob dies, with the *deathgasp emote

default_num_hands

How many hands does this mob have by default. This shouldn't change at runtime.

default_num_legs

How many legs does this mob have by default. This shouldn't change at runtime.

diseases

list of all diseases in a mob

fire_stack_decay_rate

Rate at which fire stacks should decay from this mob

fireloss

Burn damage caused by being way too hot, too cold or burnt.

fov_traits

Lazy list of FOV traits that will apply a FOV view when handled.

fov_view

FOV view that is applied from either nativeness or traits

ghost_controllable

If set to TRUE, ghosts will be able to click on the simple mob and take control of it.

gp_effect

The effect from gunpointing, to make sure we dont create multiples

gravity_state

What our current gravity state is. Used to avoid duplicate animates and such

guaranteed_butcher_results

these will always be yielded from butchering

gunpointed

Who is gunpointing at our person?

gunpointing

Who is the person gunpointing at? If they are

hardcrit_threshold

When the mob enters hard critical state and is fully incapacitated.

has_limbs

does the mob have distinct limbs?(arms,legs, chest,head)

head_icon

what it looks like when the mob is held on your head

health

The mob's current health.

health_doll_icon

if this exists AND the normal sprite is bigger than 32x32, this is the replacement icon state (because health doll size limitations). the icon will always be screen_gen.dmi

held_lh

left hand icon for holding mobs

held_rh

right hand icon for holding mobs

held_state

icon_state for holding mobs.

held_w_class

The w_class of the holder when held.

imaginary_group

Contains the owner and all imaginary friend mobs if they exist, otherwise null

incorporeal_move

Allows mobs to move through dense areas without restriction. For instance, in space or out of holder objects.

+

FALSE is off, INCORPOREAL_MOVE_BASIC is normal, INCORPOREAL_MOVE_SHADOW is for ninjas +and INCORPOREAL_MOVE_JAUNT is blocked by holy water/salt

last_special

Used by the resist verb, likely used to prevent players from bypassing next_move by logging in/out.

last_vent_dir

The last direction we moved in a vent. Used to make holding two directions feel nice

last_words

used for database logging

limb_destroyer

Sets AI behavior that allows mobs to target and dismember limbs with their basic attack.

living_flags

Generic bitflags for boolean conditions at the /mob/living level. Keep this for inherent traits of living types, instead of runtime-changeable ones.

looking_vertically

Is the mob looking vertically

lying_angle

Number of degrees of rotation of a mob. 0 means no rotation, up-side facing NORTH. 90 means up-side rotated to face EAST, and so on.

lying_prev

Value of lying lying_angle before last change. TODO: Remove the need for this.

maxHealth

Maximum health that should be possible.

melee_damage_lower

Lower bound of damage done by unarmed melee attacks. Mob code is a mess, only works where this is checked for.

melee_damage_upper

Upper bound of damage done by unarmed melee attacks. Please ensure you check the xyz_defenses.dm for the mobs in question to see if it uses this or hardcoded values.

metabolism_efficiency

more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature..

mob_biotypes

List of biotypes the mob belongs to. Used by diseases and reagents mainly.

mob_mood

Living mob's mood datum

mob_respiration_type

The type of respiration the mob is capable of doing. Used by adjustOxyLoss.

mob_surgery_speed_mod

Mob specific surgery speed modifier

mobility_flags

Flags that determine the potential of a mob to perform certain actions. Do not change this directly.

move_intent

The movement intent of the mob (run/wal)

navigate_cooldown

Cooldown of the navigate() verb.

nextcombatpopup

When is the next time this mob will be able to use flick_emote and put the fluff text in chat?

now_pushing

Used by [living/Bump()][/mob/living/proc/Bump] and [living/PushAM()][/mob/living/proc/PushAM] to prevent potential infinite loop.

num_hands

How many hands hands does this mob currently have. Should only be changed through set_num_hands()

num_legs

How many legs does this mob currently have. Should only be changed through set_num_legs()

numba

the id a mob gets when it's created

on_fire

Helper vars for quick access to firestacks, these should be updated every time firestacks are adjusted

oxyloss

Oxygen depravation damage (no air in lungs)

pipetracker

Cell tracker datum we use to manage the pipes around us, for faster ventcrawling +Should only exist if you're in a pipe

rotate_on_lying

Does the mob rotate when lying

slowed_by_drag

Whether the mob is slowed down when dragging another prone mob

stamina_regen_time

How long it takes to return to 0 stam

staminaloss

Stamina damage, or exhaustion. You recover it slowly naturally, and are knocked down if it gets too high. Holodeck and hallucinations deal this.

station_timestamp_timeofdeath

The mob's latest time-of-death, as a station timestamp instead of world.time

status_effects

a list of all status effects the mob has

surgeries

a list of surgery datums. generally empty, they're added when the player wants them.

timeofdeath

The mob's latest time-of-death

toxloss

Toxic damage caused by being poisoned or radiated

unique_name

if a mob's name should be appended with an id when created e.g. Mob (666)

usable_hands

How many usable hands does this mob currently have. Should only be changed through set_usable_hands()

usable_legs

How many usable legs this mob currently has. Should only be changed through set_usable_legs()

worn_slot_flags

if it can be held, can it be equipped to any slots? (think pAI's on head)

Proc Details

IsFrozen

FROZEN

Life

Handles the biological and general over-time processes of the mob.

+

Arguments:

+
    +
  • seconds_per_tick: The amount of time that has elapsed since this last fired.
  • +
  • times_fired: The number of times SSmobs has fired
  • +

PermaSleeping

Allows us to set a permanent sleep on a player (use with caution and remember to unset it with SetSleeping() after the effect is over)

Write_Memory

Proc used by different station pets such as Ian and Poly so that some of their data can persist between rounds. +This base definition only contains a trait and comsig to stop memory from being (over)written. +Specific behavior is defined on subtypes that use it.

ZImpactDamage

Called when this mob is receiving damage from falling

+
    +
  • impacted_turf - the turf we are falling onto
  • +
  • levels - the number of levels we are falling
  • +

_cause_hallucination

Unless you need this for an explicit reason, use the cause_hallucination wrapper.

add_body_temperature_change

add_body_temperature_change Adds modifications to the body temperature

+

This collects all body temperature changes that the mob is experiencing to the list body_temp_changes +the aggrogate result is used to derive the new body temperature for the mob

+

arguments:

+
    +
  • key_name (str) The unique key for this change, if it already exist it will be overridden
  • +
  • amount (int) The amount of change from the base body temperature
  • +

add_cum_splatter_floor

Used to add a cum decal to the floor while transferring viruses and DNA to it

add_fov_trait

Adds a trait which limits a user's FOV

add_mood_event

Adds a mood event to the mob

add_movespeed_mod_immunities

Ignores specific slowdowns. Accepts a list of slowdowns.

add_quirk

Adds the passed quirk to the mob

+

Arguments

+
    +
  • quirktype - Quirk typepath to add to the mob +If not passed, defaults to this mob's client.
  • +
+

Returns TRUE on success, FALSE on failure (already has the quirk, etc)

add_stun_absorption

[proc/apply_status_effect] wrapper specifically for /datum/status_effect/stun_absorption, +specifically so that it's easier to apply stun absorptions with named arguments.

+

If the mob already has a stun absorption from the same source, will not re-apply the effect, +unless the new effect's priority is higher than the old effect's priority.

+

Arguments

+
    +
  • source - the source of the stun absorption.
  • +
  • duration - how long does the stun absorption last before it ends? -1 or null (or infinity) = infinite duration
  • +
  • priority - what is this effect's priority to other stun absorptions? higher = more priority
  • +
  • message - optional, "other message" arg of visible message, shown on trigger. Use %EFFECT_OWNER if you want the owner's name to be inserted.
  • +
  • self_message - optional, "self message" arg of visible message, shown on trigger
  • +
  • examine_message - optional, what is shown on examine of the mob.
  • +
  • max_seconds_of_stuns_blocked - optional, how many seconds of stuns can it block before deleting? the stun that breaks over this number is still blocked, even if it is much higher.
  • +
  • delete_after_passing_max - optional, if TRUE, after passing the max seconds of stuns blocked, we will delete ourself. +If FALSE, we will instead recharge after some time.
  • +
  • recharge_time - optional, if [delete_after_passing_max] is FALSE, this is how long we will wait before recharging. +does nothing if [delete_after_passing_max] is TRUE.
  • +
+

Returns an instance of a stun absorption effect, or NULL if failure

adjust_drunk_effect

Adjust the "drunk value" the mob is currently experiencing, +or applies a drunk effect if the mob isn't currently drunk (or tipsy)

+

The drunk effect doesn't have a set duration, like dizziness or drugginess, +but instead relies on a value that decreases every status effect tick (2 seconds) by: +4% the current drunk_value + 0.01

+

A "drunk value" of 6 is the border between "tipsy" and "drunk".

+

amount - the amount of "drunkness" to apply to the mob. +down_to - the lower end of the clamp, when adding the value +up_to - the upper end of the clamp, when adding the value

adjust_fire_stacks

Adjust the amount of fire stacks on a mob

+

This modifies the fire stacks on a mob.

+

Vars:

+
    +
  • stacks: int The amount to modify the fire stacks
  • +
  • fire_type: type Type of fire status effect that we apply, should be subtype of /datum/status_effect/fire_handler/fire_stacks
  • +

adjust_incapacitated

    +
  • Proc that adds duration to an incapacitated status effect.
  • +
  • Checks if the mob has the status effect. If yes, it adds the amount passed in arguments to the remaining duration. If not, applies the status effect
  • +
  • and sets the duration to the amount passed in arguments.
  • +
  • +
      +
    • amount - Amount of time the status effect should be set to, in deciseconds.
    • +
    +
  • +
  • +
      +
    • ignore_canstun - If TRUE, the mob's resistance to stuns is ignored.
    • +
    +
  • +

adjust_pain

Adds or removes pain, this should be used instead of the modifying the var, due to quirk logic. +Makes the human scream and shiver when pain hits the soft limit, provided autoemote is enabled.

adjust_status_effects_on_shake_up

CLEAR STATUS

adjust_timed_status_effect

Adjusts a timed status effect on the mob,taking into account any existing timed status effects. +This can be any status effect that takes into account "duration" with their initialize arguments.

+

Positive durations will add deciseconds to the duration of existing status effects +or apply a new status effect of that duration to the mob.

+

Negative durations will remove deciseconds from the duration of an existing version of the status effect, +removing the status effect entirely if the duration becomes less than zero (less than the current world time).

+

duration - the duration, in deciseconds, to add or remove from the effect +effect - the type of status effect being adjusted on the mob +max_duration - optional - if set, positive durations will only be added UP TO the passed max duration

admin_give_delusion

Admin only proc for giving the mob a delusion hallucination with specific arguments

admin_give_hallucination

Admin only proc for making the mob hallucinate a certain thing

admin_give_speech_impediment

Admin only proc for giving a certain speech impediment to this mob

am_staked

Do I have a stake in my heart?

amount_incapacitated

Proc that returns the remaining duration of the status efect in deciseconds.

appears_alive

Helper to check if we seem to be alive or not

apply_damage

Applies damage to this mob.

+

Sends COMSIG_MOB_APPLY_DAMAGE

+

Arguuments:

+
    +
  • damage - Amount of damage
  • +
  • damagetype - What type of damage to do. one of BRUTE, BURN, TOX, OXY, STAMINA, BRAIN.
  • +
  • def_zone - What body zone is being hit. Or a reference to what bodypart is being hit.
  • +
  • blocked - Percent modifier to damage. 100 = 100% less damage dealt, 50% = 50% less damage dealt.
  • +
  • forced - "Force" exactly the damage dealt. This means it skips damage modifier from blocked.
  • +
  • spread_damage - For carbons, spreads the damage across all bodyparts rather than just the targeted zone.
  • +
  • wound_bonus - Bonus modifier for wound chance.
  • +
  • bare_wound_bonus - Bonus modifier for wound chance on bare skin.
  • +
  • sharpness - Sharpness of the weapon.
  • +
  • attack_direction - Direction of the attack from the attacker to [src].
  • +
  • attacking_item - Item that is attacking [src].
  • +
  • wound_clothing - If this should cause damage to clothing.
  • +
+

Returns the amount of damage dealt.

apply_damages

Applies multiple damages at once via apply_damage

apply_effect

applies various common status effects or common hardcoded mob effects

apply_effects

Applies multiple effects at once via /mob/living/proc/apply_effect

+

Pretty much only used for projectiles applying effects on hit, +don't use this for anything else please just cause the effects directly

apply_prefs_job

Applies the preference options to the spawning mob, taking the job into account. Assumes the client has the proper mind.

apply_status_effect

Applies a given status effect to this mob.

+

new_effect - TYPEPATH of a status effect to apply. +Additional status effect arguments can be passed.

+

Returns the instance of the created effected, if successful. +Returns 'null' if unsuccessful.

apply_suicide_damage

The actual proc that will apply the damage to the suiciding mob. damage_type is the actual type of damage we want to deal, if that matters. +Return TRUE if we actually apply any real damage, FALSE otherwise.

attack_effects

Called when we take damage, used to cause effects such as a blood splatter.

+

Return TRUE if an effect was done, FALSE otherwise.

base_click_ctrl

Ctrl click +For most objects, pull

became_unhuskable

Called when we become unhuskable while already husked

befriend

Proc for giving a mob a new 'friend', generally used for AI control and targeting. Returns false if already friends.

bleedDragAmount

Returns how much blood we're losing from being dragged a tile, from [/mob/living/proc/makeTrail]

block_projectile_effects

Performs the aftereffects of blocking a projectile.

calculate_fitness

Returns an arbitrary number which very roughly correlates with how buff you look

can_be_revived

Checks if we are actually able to ressuscitate this mob. +(We don't want to revive then to have them instantly die again)

can_be_spread_airborne_disease

Checks if this mob can currently be infected by air based diseases +Nondeterministic

can_be_staked

Can this target be staked? If someone stands up before this is complete, it fails. Best used on someone stationary.

can_catch_item

Checks the requites for catching a throw item.

can_disarm

Check if the universal conditions for disarming/shoving are met.

can_enter_vent

Checks if the mob is able to enter the vent, and provides feedback if they are unable to.

can_inject

Returns whether or not the mob can be injected. Should not perform any side effects.

+

Arguments:

+
    +
  • user - The user trying to inject the mob.
  • +
  • target_zone - The zone being targeted.
  • +
  • injection_flags - A bitflag for extra properties to check. +Check _DEFINES/injection.dm for more details, specifically the ones prefixed INJECT_CHECK*.
  • +

can_look_up

Checks if the user is incapacitated or on cooldown.

can_spread_airborne_diseases

Checks if this mob can currently spread air based diseases. +Nondeterministic

can_suicide

Checks if we are in a valid state to suicide (not already suiciding, capable of actually killing ourselves, area checks, etc.) Returns TRUE if we can suicide, FALSE if we can not.

can_track

Checks if this mob can be actively tracked by cameras / AI. +Can optionally be passed a user, which is the mob who is tracking src.

can_unarmed_attack

Checks if this mob is in a valid state to punch someone.

+

(Potentially) gives feedback to the mob if they cannot.

carrier_emote

Prompts the parent mob to send a emote to the soulcatcher. Returns False if no soulcatcher or emote could be found.

carrier_say

Prompts the parent mob to send a say message to the soulcatcher. Returns False if no soulcatcher or message could be found.

check_erp_prefs

Checks to see if the parent mob has pref_to_check enabled, returns FALSE if the pref cannot be found or is set to False, otherwise returns TRUE

+

This proc should be used when checking direct one-time interactions where logging would be benefical. +If you don't need to use logging, please use the read_preference proc

+

Arguments

+
    +
  • pref_to_check - The toggle preference that we want to check to make sure works.
  • +
  • mechanic_user - The person using the erp mechanic on the parent mob?
  • +
  • used_item - What item, if any, is being used on the parent mob?
  • +

check_hit_limb_zone_name

Returns the string form of the def_zone we have hit.

check_prefs_in_view

Checks the prefs of all mobs in view(). If there is a mob with the pref_to_check set to false, we return FALSE otherwise, we return TRUE

check_stun_immunity

Checks if we have stun immunity. Godmode always passes this check.

+
    +
  • check_flags - bitflag of status flags that must be set in order for the stun to succeed. Passing NONE will always return false.
  • +
  • force_stun - whether we ignore stun immunity with the exception of godmode
  • +
+

returns TRUE if stun immune, FALSE otherwise

clean_lips

A wrapper for mob/living/carbon/human/proc/update_lips that sets the lip style and color to null.

clear_mood_event

Clears a mood event from the mob

compare_fitness

Create a report string about how strong this person looks, generated in a somewhat arbitrary fashion

compare_sentience_type

Helper proc for basic and simple animals to return true if the passed sentience type matches theirs +Living doesn't have a sentience type though so it always returns false if not a basic or simple mob

contract_airborne_disease

Handle being contracted a disease via airborne transmission

+
    +
  • disease - the disease datum that's infecting us
  • +

create_thinking_indicator

Overrides for overlay creation

disarm

Attempt to disarm the target mob. Some items might let you do it, also carbon can do it with right click. +Will shove the target mob back, and drop them if they're in front of something dense +or another carbon.

dismembering_strike

Really weird proc that attempts to dismebmer the passed zone if it is at max damage +Unless the attacker is an NPC, in which case it disregards the zone and picks a random one

+

Cannot dismember heads

+

Returns a falsy value (null) on success, and a truthy value (the hit zone) on failure

do_jitter_animation

Helper proc that causes the mob to do a jittering animation by jitter_amount. +jitter_amount will only apply up to 300 (maximum jitter effect).

do_rust_heretic_act

wrapper proc that passes our mob's rust_strength to the target we are rusting

do_slap_animation

Does a slap animation on an atom

+

Uses do_attack_animation to animate the attacker attacking +then draws a hand moving across the top half of the target(where a mobs head would usually be) to look like a slap +Arguments:

+
    +
  • atom/A - atom being slapped
  • +

do_stagger_animation

Helper proc that causes the mob to do a stagger animation. +Doesn't change significantly, just meant to represent swaying back and forth

do_strange_reagent_revival

Called by strange_reagent, with the amount of healing the strange reagent is doing +It uses the healing amount on brute/fire damage, and then uses the excess healing for revive

dust

This is the proc for turning a mob into ash. +Dusting robots does not eject the MMI, so it's a bit more powerful than gib()

+

Arguments:

+
    +
  • just_ash - If TRUE, ash will spawn where the mob was, as opposed to remains
  • +
  • drop_items - Should the mob drop their items before dusting?
  • +
  • force - Should this mob be FORCABLY dusted?
  • +

edit_immerse_overlay

Called in /datum/element/immerse/apply_filter

electrocute_act

As the name suggests, this should be called to apply electric shocks.

end_block_effects

Remoevs the effects of blocking a projectile and allows the user to block another.

execute_resist

proc extender of [/mob/living/verb/resist] meant to make the process queable if the server is overloaded when the verb is called

expose_reagents

    +
  • +

    Handles exposing a mob to reagents.

    +
  • +
  • +

    If the methods include INGEST the mob tastes the reagents.

    +
  • +
  • +

    If the methods include VAPOR it incorporates permiability protection.

    +
  • +

extinguish_mob

Extinguish all fire on the mob

+

This removes all fire stacks, fire effects, alerts, and moods +Signals the extinguishing.

fakedeath

Induces fake death on a living mob.

final_checkout

Inserts in logging and death + mind dissociation when we're fully done with ending the life of our mob, as well as adjust the health. We will disallow re-entering the body when this is called. +The suicide_tool variable is currently only used for humans in order to allow suicide log to properly put stuff in investigate log. +Set apply_damage to FALSE in order to not do damage (in case it's handled elsewhere in the verb or another proc that the suicide tree calls). Will dissociate client from mind and ghost the player regardless.

find_nearest_stair_or_ladder

Finds nearest ladder or staircase either up or down.

+

Arguments:

+
    +
  • direction - UP or DOWN.
  • +

flick_emote_popup_on_mob

A proc type that, when called, causes a image/sprite to appear above whatever entity it is called on.

+

There are two types: on_mob and on_obj, they can only be called on their respective typepaths.

+

Arguments:

+
    +
  • state -- The icon_state of whatever .dmi file you're attempting to use for the sprite, in "" format. Ex. "combat", not combat.dmi.
  • +
  • time -- The amount of time the sprite remains before remove_emote_popup_on_mob is called. Is used in the addtimer.
  • +

fully_heal

A grand proc used whenever this mob is, quote, "fully healed". +Fully healed could mean a number of things, such as "healing all the main damage types", "healing all the organs", etc +So, you can pass flags to specify

+

See [mobs.dm] for more information on the flags

+

If you ever think "hey I'm adding something and want it to be reverted on full heal", +consider handling it via signal instead of implementing it in this proc

gather_belongings

Returns a list of things that the provided mob has, including any storage-capable implants.

getBruteLoss_nonProsthetic

    +
  • +

    CARBON INTEGRATION

    +
  • +
  • +

    All overrides of mob/living and mob/living/carbon +Brute

    +
  • +

getFireLoss_nonProsthetic

Burn

get_access

Returns the access list for this mob

get_adjacent_humans

Returns a list containing all of the humans adjacent to the user.

get_all_linked_holoparasites

Returns a list of all holoparasites that has this mob as a summoner.

get_all_status_effect_of_id

Gets every status effect of an ID and returns all of them in a list, rather than the individual 'has_status_effect'

get_allergic_foodtypes

Gets food this mob is allergic to +Essentially toxic food+, not only disgusting but outright lethal

get_attack_type

Returns the attack damage type of a living mob such as BRUTE.

get_blind_suicide_message

Returns an appropriate string for what people who lack visibility hear when this mob kills itself. +If you don't want a message, prefer to override send_applicable_messages() on your subtype instead.

get_blood_dna_list

returns the mob's dna info as a list, to be inserted in an object's blood_DNA list

get_body_temp_cold_damage_limit

Returns the body temperature at which this mob will start taking cold damage.

get_body_temp_heat_damage_limit

Returns the body temperature at which this mob will start taking heat damage.

get_body_temp_normal

get_body_temp_normal Returns the mobs normal body temperature with any modifications applied

+

This applies the result from proc/get_body_temp_normal_change() against the BODYTEMP_NORMAL and returns the result

+

arguments:

+
    +
  • apply_change (optional) Default True This applies the changes to body temperature normal
  • +

get_body_temp_normal_change

get_body_temp_normal_change Returns the aggregate change to body temperature

+

This aggregates all the changes in the body_temp_changes list and returns the result

get_butt_sprite

Sprite to show for photocopying mob butts

get_current_carrier_room

Attempts to find and return the current carrier room the mob is using.

get_current_damage_of_type

return the damage amount for the type given +Simply a wrapper for calling mob getXLoss() procs to get a certain damage type, +when you don't know what damage type you're getting exactly.

get_damage_mod

Returns a multiplier to apply to a specific kind of damage

get_disliked_foodtypes

Gets food flags that this mob dislikes

get_drunk_amount

Helper to get the amount of drunkness the mob's currently experiencing.

get_equipped_items

Used to return a list of equipped items on a mob; does not include held items (use get_all_gear)

+

Argument(s):

+
    +
  • Optional - include_flags, (see obj.flags.dm) describes which optional things to include or not (pockets, accessories, held items)
  • +

get_exp_list

Returns an assoc list of assignments and minutes for updating a client's exp time in the databse.

+

Arguments:

+
    +
  • minutes - The number of minutes to allocate to each valid role.
  • +

get_fire_overlay

Gets the fire overlay to use for this mob

+

Args:

+
    +
  • stacks: Current amount of fire_stacks
  • +
  • on_fire: If we're lit on fire
  • +
+

Return a mutable appearance, the overlay that will be applied.

get_food_taste_reaction

Gets the food reaction a mob would normally have from the given food item, +assuming that no check_liked callback was used in the edible component.

+

Does not get called if the owner has ageusia.

get_fullness

Get the fullness of the mob

+

This returns a value form 0 upwards to represent how full the mob is. +The value is a total amount of consumable reagents in the body combined +with the total amount of nutrition they have. +This does not have an upper limit.

get_hit_area_message

Overridable proc so subtypes can have unique targetted strike zone messages, return a string.

get_idcard

Gets ID card from a mob. +Argument:

+
    +
  • hand_firsts - boolean that checks the hands of the mob first if TRUE.
  • +

get_incoming_damage_modifier

Used in tandem with /mob/living/proc/apply_damage to calculate modifier applied into incoming damage

get_liked_foodtypes

Gets food flags that this mob likes

get_organic_health

Returns the health of the mob while ignoring damage of non-organic (prosthetic) limbs +Used by cryo cells to not permanently imprison those with damage from prosthetics, +as they cannot be healed through chemicals.

get_pixel_y_offset_standing

Returns what the body_position_pixel_y_offset should be if the current size were value

get_quirk

Getter function for a mob's quirk

+

Arguments:

+
    +
  • quirktype - the type of the quirk to acquire e.g. /datum/quirk/some_quirk
  • +
+

Returns the mob's quirk datum if the mob this is called on has the quirk, null on failure

get_quirk_string

get_quirk_string() is used to get a printable string of all the quirk traits someone has for certain criteria

+

Arguments:

+
    +
  • Medical- If we want the long, fancy descriptions that show up in medical records, or if not, just the name
  • +
  • Category- Which types of quirks we want to print out. Defaults to everything
  • +
  • from_scan- If the source of this call is like a health analyzer or HUD, in which case QUIRK_HIDE_FROM_MEDICAL hides the quirk.
  • +

get_shove_flags

Check if there's anything that could stop the knockdown from being shoved into something or someone.

get_shoving_message

Send the chat feedback message for shoving

get_status_effect_examinations

Shows any and all examine text related to any status effects the user has.

get_taste_sensitivity

Gets taste sensitivity of given mob

+

This is used in calculating what flavours the mob can pick up, +with a lower number being able to pick up more distinct flavours.

get_timed_status_effect_duration

Gets how many deciseconds are remaining in +the duration of the passed status effect on this mob.

+

If the mob is unaffected by the passed effect, returns 0.

get_total_damage

return the total damage of all types which update your health

get_toxic_foodtypes

Gets food flags that this mob hates +Toxic food is the only category that ignores ageusia, KEEP IT LIKE THAT!

get_visible_suicide_message

Returns a subtype-specific flavorful string pertaining to this exact living mob's ending their own life to those who can see it (visible message). +If you don't want a message, prefer to override send_applicable_messages() on your subtype instead.

gib

Blow up the mob into giblets

+

drop_bitflags: (see code/__DEFINES/blood.dm)

+
    +
  • DROP_BRAIN - Gibbed mob will drop a brain
  • +
  • DROP_ORGANS - Gibbed mob will drop organs
  • +
  • DROP_BODYPARTS - Gibbed mob will drop bodyparts (arms, legs, etc.)
  • +
  • DROP_ITEMS - Gibbed mob will drop carried items (otherwise they get deleted)
  • +
  • DROP_ALL_REMAINS - Gibbed mob will drop everything
  • +

grab

Called when a mob is grabbing another mob.

grabbedby

Called when this mob is grabbed by another mob.

gravity_setup

Living Mob use event based gravity +We check here to ensure we haven't dropped any gravity changes

handle_ricochet

Simplified ricochet angle calculation for mobs (also the base version doesn't work on mobs)

handle_suicide

Actually handles the bare basics of the suicide process. Message type is the message we want to dispatch in the world regarding the suicide, using the defines in this file. +Override this ENTIRELY if you want to add any special behavior to your suicide handling, if you fuck up the order of operations then shit will break.

handle_suicide_damage_spread

If we want to apply multiple types of damage to a carbon mob based on the way they suicide, this is the proc that handles that. +Currently only compatible with Brute, Burn, Toxin, and Suffocation Damage. damage_type is the bitflag that carries the information.

handle_ventcrawl

Handles the entrance and exit on ventcrawling

has_reagent

Check if the mob contains this reagent.

+

This will validate the the reagent holder for the mob and any sub holders contain the requested reagent. +Vars:

+
    +
  • reagent (typepath) takes a PATH to a reagent.
  • +
  • amount (int) checks for having a specific amount of that chemical.
  • +
  • needs_metabolizing (bool) takes into consideration if the chemical is matabolizing when it's checked.
  • +

heal_and_revive

Heals up the mob up to [heal_to] of the main damage types. +EX: If heal_to is 50, and they have 150 brute damage, they will heal 100 brute (up to 50 brute damage)

+

If the target is dead, also revives them and heals their organs / restores blood. +If we have a [revive_message], play a visible message if the revive was successful.

+

Arguments

+
    +
  • heal_to - the health threshold to heal the mob up to for each of the main damage types.
  • +
  • revive_message - if provided, a visible message to show on a successful revive.
  • +
+

Returns TRUE if the mob is alive afterwards, or FALSE if they're still dead (revive failed).

heal_bodypart_damage

heal ONE external organ, organ gets randomly selected from damaged ones.

+

returns the net change in damage

heal_damage_type

Simply a wrapper for calling mob adjustXLoss() procs to heal a certain damage type, +when you don't know what damage type you're healing exactly.

heal_ordered_damage

heal up to amount damage, in a given order

heal_overall_damage

heal MANY bodyparts, in random order. note: stamina arg nonfunctional for carbon mobs

ignore_slowdown

Ignores all slowdowns that lack the IGNORE_NOSLOW flag.

in_fov

Is observed_atom in a mob's field of view? This takes blindness, nearsightness and FOV into consideration

incapacitate

    +
  • Proc that actually applies the status effect.
  • +
  • Applies the Incapacitated status effect to a mob/living.
  • +
  • +
      +
    • amount - Amount of time the status effect should be applied for, in deciseconds.
    • +
    +
  • +
  • +
      +
    • ignore_canstun - If TRUE, the mob's resistance to stuns is ignored.
    • +
    +
  • +

infectious_sneeze

Launch a sneeze that can infect with a disease

is_ears_covered

Checks if the mob's ears (BOTH EARS, BOWMANS NEED NOT APPLY) are covered by something. +Returns the atom covering the mob's ears, or null if their ears are uncovered.

is_eyes_covered

Checks if our mob has their eyes covered.

+

Note that we only care about ITEM_SLOT_HEAD, ITEM_SLOT_MASK, and [ITEM_SLOT_GLASSES]. +That is also the priority order (so if you check all slots, it'll return head, then mask, then glasses)

+

Arguments

+
    +
  • check_flags: What item slots should we check?
  • +
+

Retuns a truthy value (a ref to what is covering eyes), or a falsy value (null)

is_face_visible

Only defined for carbons who can wear masks and helmets, we just assume other mobs have visible faces

is_mouth_covered

Checks if our mob has their mouth covered.

+

Note that we only care about ITEM_SLOT_HEAD and ITEM_SLOT_MASK. +(so if you check all slots, it'll return head, then mask) +That is also the priority order +Arguments

+
    +
  • check_flags: What item slots should we check?
  • +
+

Retuns a truthy value (a ref to what is covering mouth), or a falsy value (null)

is_pepper_proof

Checks if our mob is protected from pepper spray.

+

Note that we only care about ITEM_SLOT_HEAD and ITEM_SLOT_MASK. +That is also the priority order (so if you check all slots, it'll return head, then mask)

+

Arguments

+
    +
  • check_flags: What item slots should we check?
  • +
+

Retuns a truthy value (a ref to what is protecting us), or a falsy value (null)

itch

Print a message about an annoying sensation you are feeling. Returns TRUE if successful.

launch_sneeze

Shoot the sneeze projectile

lazarus_revive

Proc called when TARGETED by a lazarus injector

look_down

look_down Changes the perspective of the mob to any openspace turf below the mob

+

This also checks if an openspace turf is below the mob before looking down or resets the perspective if already looking up

look_up

look_up Changes the perspective of the mob to any openspace turf above the mob

+

This also checks if an openspace turf is above the mob before looking up or resets the perspective if already looking up

lying_angle_on_movement

Called by mob Move() when the lying_angle is different than zero, to better visually simulate crawling.

move_into_vent

Moves living mob directly into the vent as a ventcrawler

+

Arguments:

+
    +
  • ventcrawl_target - The vent into which we are moving the mob
  • +

ominous_nosebleed

Prints an ominous message if something bad is going to happen to you

on_deathcoma_trait_gain

Called when TRAIT_DEATHCOMA is added to the mob.

on_deathcoma_trait_loss

Called when TRAIT_DEATHCOMA is removed from the mob.

on_fall

Called when mob changes from a standing position into a prone while lacking the ability to stand up at the moment.

on_fire_stack

Handles effects happening when mob is on normal fire

+

Vars:

+
    +
  • seconds_per_tick
  • +
  • times_fired
  • +
  • fire_handler: Current fire status effect that called the proc
  • +

on_floored_end

Proc to append behavior to the condition of being floored. Called when the condition ends.

on_floored_start

Proc to append behavior to the condition of being floored. Called when the condition starts.

on_floored_trait_gain

Called when TRAIT_FLOORED is added to the mob.

on_floored_trait_loss

Called when TRAIT_FLOORED is removed from the mob.

on_force_gravity

Called when TRAIT_FORCED_GRAVITY is gained or lost

on_forced_standing_trait_gain

Called when TRAIT_FORCED_STANDING is added to the mob.

on_forced_standing_trait_loss

Called when TRAIT_FORCED_STANDING is removed from the mob.

on_handsblocked_end

Proc to append behavior to the condition of being handsblocked. Called when the condition ends.

on_handsblocked_start

Proc to append behavior to the condition of being handsblocked. Called when the condition starts.

on_handsblocked_trait_gain

Called when TRAIT_HANDS_BLOCKED is added to the mob.

on_handsblocked_trait_loss

Called when TRAIT_HANDS_BLOCKED is removed from the mob.

on_hearing_loss

Called when [TRAIT_DEAF] is added to the mob.

on_hearing_regain

Called when [TRAIT_DEAF] is added to the mob.

on_ignore_gravity

Called when TRAIT_IGNORING_GRAVITY is gained or lost

on_immobilized_trait_gain

Called when TRAIT_IMMOBILIZED is added to the mob.

on_immobilized_trait_loss

Called when TRAIT_IMMOBILIZED is removed from the mob.

on_incapacitated_trait_gain

Called when [TRAIT_INCAPACITATED] is added to the mob.

on_incapacitated_trait_loss

Called when [TRAIT_INCAPACITATED] is removed from the mob.

on_knockedout_trait_gain

Called when TRAIT_KNOCKEDOUT is added to the mob.

on_knockedout_trait_loss

Called when TRAIT_KNOCKEDOUT is removed from the mob.

on_loc_force_gravity

Called when our loc's TRAIT_FORCED_GRAVITY is gained or lost

on_lying_down

Proc to append behavior related to lying down.

on_movement_type_flag_disabled

From [element/movetype_handler/on_movement_type_trait_loss()]

on_movement_type_flag_enabled

From [element/movetype_handler/on_movement_type_trait_gain()]

on_negate_gravity

Called when TRAIT_NEGATES_GRAVITY is gained or lost

on_pull_blocked_trait_gain

Called when TRAIT_PULL_BLOCKED is added to the mob.

on_pull_blocked_trait_loss

Called when TRAIT_PULL_BLOCKED is removed from the mob.

on_restrained_trait_gain

Called when TRAIT_RESTRAINED is added to the mob.

on_restrained_trait_loss

Called when TRAIT_RESTRAINED is removed from the mob.

on_skittish_trait_gain

Called when [TRAIT_SKITTISH] is added to the mob.

on_skittish_trait_loss

Called when [TRAIT_SKITTISH] is removed from the mob.

on_standing_up

Proc to append behavior related to lying down.

on_stasis_trait_gain

Called when TRAIT_STASIS is added to the mob

on_stasis_trait_loss

Called when TRAIT_STASIS is removed from the mob

on_ui_blocked_trait_gain

Called when TRAIT_UI_BLOCKED is added to the mob.

on_ui_blocked_trait_loss

Called when TRAIT_UI_BLOCKED is removed from the mob.

parse_zone_with_bodypart

Returns a string for the specified body zone. If we have a bodypart in this zone, refers to its plaintext_zone instead.

prefs_get_brain_to_use

Returns a type to use based off of a given preference value (ORGAN_PREF_POSI_BRAIN, ORGAN_PREF_MMI_BRAIN and ORGAN_PREF_CIRCUIT_BRAIN), and if they're a cyborg or not.

process_capture

Common proc used to deduct money from cargo, announce the kidnapping and add src to the black market. +Returns the black market item, for extra stuff like signals that need to be registered.

received_stamina_damage

The mob has received stamina damage

+
    +
  • current_level: The mob's current stamina damage amount (to save unnecessary getStaminaLoss() calls)
  • +
  • amount_actual: The amount of stamina damage received, in actuality +For example, if you are taking 50 stamina damage but are at 90, you would actually only receive 30 stamina damage (due to the cap)
  • +
  • amount: The amount of stamina damage received, raw
  • +

refresh_gravity

Handles gravity effects. Call if something about our gravity has potentially changed!

register_init_signals

Called on /mob/living/Initialize(mapload), for the mob to register to relevant signals.

remove_body_temperature_change

remove_body_temperature_change Removes the modifications to the body temperature

+

This removes the recorded change to body temperature from the body_temp_changes list

+

arguments:

+
    +
  • key_name (str) The unique key for this change that will be removed
  • +

remove_emote_popup_on_mob

A proc that is automatically called whenever flick_emote_popup_on_mob's addtimer expires, and removes the popup.

+

Arguments:

+
    +
  • emote_overlay -- Inherits state from the preceding proc.
  • +

remove_fov_trait

Removes a trait which limits a user's FOV

remove_movespeed_mod_immunities

Unignores specific slowdowns. Accepts a list of slowdowns.

remove_status_effect

Removes all instances of a given status effect from this mob

+

removed_effect - TYPEPATH of a status effect to remove. +Additional status effect arguments can be passed - these are passed into before_remove.

+

Returns TRUE if at least one was removed.

remove_stun_absorption

Removes all stub absorptions with the passed source.

+

Returns TRUE if an effect was deleted, FALSE otherwise

resolve_right_click_attack

Called when an unarmed attack performed with right click hasn't been stopped by the LIVING_UNARMED_ATTACK_BLOCKED macro. +This will call a secondary attack proc that can vary from mob type to mob type on the target. +Sometimes, a target is interacted differently when right_clicked, in that case the secondary attack proc should return +a SECONDARY_ATTACK_* value that's not SECONDARY_ATTACK_CALL_NORMAL. +Otherwise, it should just return SECONDARY_ATTACK_CALL_NORMAL. Failure to do so will result in an exception (runtime error).

resolve_unarmed_attack

Called when the unarmed attack hasn't been stopped by the LIVING_UNARMED_ATTACK_BLOCKED macro or the right_click_attack_chain proc. +This will call an attack proc that can vary from mob type to mob type on the target.

revive

Proc used to resuscitate a mob, bringing them back to life.

+

Note that, even if a mob cannot be revived, the healing from this proc will still be applied.

+

Arguments

+
    +
  • full_heal_flags - Optional. If supplied, /mob/living/fully_heal will be called with these flags before revival.
  • +
  • excess_healing - Optional. If supplied, this number will be used to apply a bit of healing to the mob. Currently, 1 "excess healing" translates to -1 oxyloss, -1 toxloss, +2 blood, -5 to all organ damage.
  • +
  • force_grab_ghost - We grab the ghost of the mob on revive. If TRUE, we force grab the ghost (includes suiciders). If FALSE, we do not. See [/mob/grab_ghost].
  • +

right_click_attack_chain

Checks for RIGHT_CLICK in modifiers and runs resolve_right_click_attack if so. Returns TRUE if normal chain blocked.

send_applicable_messages

Send all suicide-related messages out to the world. message_type can be used to change out the dispatched suicide message depending on the suicide context.

setGrabState

Updates the grab state of the mob and updates movespeed

set_body_position

Changes the value of the [living/body_position] variable. Call this before set_lying_angle()

set_buckled

Reports the event of the change in value of the buckled variable.

set_combat_indicator

Called whenever a mob's CI status changes for any reason.

+

Checks if the mob is dead, if config disallows CI, or if the current CI status is the same as state, and if it is, it will change CI status to state.

+

Arguments:

+
    +
  • state -- Boolean. Inherited from the procs that call this, basically it's what that proc wants CI to change to - true or false, on or off.
  • +

set_drunk_effect

Directly sets the "drunk value" the mob is currently experiencing to the passed value, +or applies a drunk effect with the passed value if the mob isn't currently drunk

+

set_to - the amount of "drunkness" to set on the mob.

set_facial_hair_gradient_color

Set the facial hair gradient color of a human. +Update calls update_body_parts().

set_facial_hair_gradient_style

Set the facial hair gradient style of a human. +Update calls update_body_parts().

set_facial_haircolor

Set the facial hair color of a human. +Override instead sets the override value, it will not be changed away from the override value until override is set to null. +Update calls update_body_parts().

set_facial_hairstyle

Set the facial hair style of a human. +Update calls update_body_parts().

set_fire_stacks

Set the fire stacks on a mob

+

This sets the fire stacks on a mob, stacks are clamped between -20 and 20. +If the fire stacks are reduced to 0 then we will extinguish the mob.

+

Vars:

+
    +
  • stacks: int The amount to set fire_stacks to
  • +
  • fire_type: type Type of fire status effect that we apply, should be subtype of /datum/status_effect/fire_handler/fire_stacks
  • +
  • remove_wet_stacks: bool If we remove all wet stacks upon doing this
  • +

set_hair_gradient_color

Set the hair gradient color of a human. +Update calls update_body_parts().

set_hair_gradient_style

Set the hair gradient style of a human. +Update calls update_body_parts().

set_haircolor

Set the hair color of a human. +Override instead sets the override value, it will not be changed away from the override value until override is set to null. +Update calls update_body_parts().

set_hairstyle

Set the hair style of a human. +Update calls update_body_parts().

set_health

Sets the current mob's health value. Do not call directly if you don't know what you are doing, use the damage procs, instead.

set_incapacitated

    +
  • Proc that set the incapacitated status effect's remaining duration to a certain time.
  • +
  • Checks if the mob has the status effect. If yes, it sets the duration to the amount passed in arguments. If not, applies the status effect
  • +
  • and sets the duration to the amount passed in arguments.
  • +
  • +
      +
    • amount - Amount of time the status effect should be set to, in deciseconds.
    • +
    +
  • +
  • +
      +
    • ignore_canstun - If TRUE, the mob's resistance to stuns is ignored.
    • +
    +
  • +

set_lying_angle

Changes the inclination angle of a mob, used by humans and others to differentiate between standing up and prone positions.

+

In BYOND-angles 0 is NORTH, 90 is EAST, 180 is SOUTH and 270 is WEST. +This usually means that 0 is standing up, 90 and 270 are horizontal positions to right and left respectively, and 180 is upside-down. +Mobs that do now follow these conventions due to unusual sprites should require a special handling or redefinition of this proc, due to the density and layer changes. +The return of this proc is the previous value of the modified lying_angle if a change was successful (might include zero), or null if no change was made.

set_lying_down

Change the [body_position] to LYING_DOWN and update associated behavior.

set_num_hands

Proc to modify the value of num_hands and hook behavior associated to this event.

set_num_legs

Proc to modify the value of num_legs and hook behavior associated to this event.

set_resting

Proc to hook behavior to the change of value in the resting variable.

set_suicide

Proc that handles adding the TRAIT_SUICIDED on the mob in question, as well as additional operations to ensure that everything goes smoothly when we're certain that this person is going to kill themself. +suicide_state is a boolean, and we handle adding/removing the trait in question. Have the trait function reference this mob as the source if we want to do in-depth tracking of where a suicided trait comes from. +For example, the /mob/dead/observer that will inevitably come from the suicidee will inherit the suicided trait upon creation, and keep this reference. Handy for doing checking should we need it.

set_timed_status_effect

Sets a timed status effect of some kind on a mob to a specific value. +If only_if_higher is TRUE, it will only set the value up to the passed duration, +so any pre-existing status effects of the same type won't be reduced down

+

duration - the duration, in deciseconds, of the effect. 0 or lower will either remove the current effect or do nothing if none are present +effect - the type of status effect given to the mob +only_if_higher - if TRUE, we will only set the effect to the new duration if the new duration is longer than any existing duration

set_usable_hands

Proc to modify the value of usable_hands and hook behavior associated to this event.

set_usable_legs

Proc to modify the value of usable_legs and hook behavior associated to this event.

shared_living_ui_distance

public

+

Distance versus interaction check.

+

required src_object atom/movable The object which owns the UI.

+

return UI_state The state of the UI.

singularity_act

Logs, gibs and returns point values of whatever mob is unfortunate enough to get eaten.

sleeping_carp_help

Verb added to humans who learn the art of the sleeping carp.

sneeze

Inhale and start the sneeze timer. on_sneeze_callback can be used to do custom sneezes, on_sneeze_hit_callback for special effects, but probably usually making it infect

spawn_gibs

Spawn bloody gib mess on the floor

+

drop_bitflags: (see code/__DEFINES/blood.dm)

+
    +
  • DROP_BODYPARTS - Gibs will spawn with bodypart limbs present
  • +

spill_organs

Drops a mob's organs on the floor

+

drop_bitflags: (see code/__DEFINES/blood.dm)

+
    +
  • DROP_BRAIN - Mob will drop a brain
  • +
  • DROP_ORGANS - Mob will drop organs
  • +
  • DROP_BODYPARTS - Mob will drop bodyparts (arms, legs, etc.)
  • +
  • DROP_ALL_REMAINS - Mob will drop everything
  • +

spread_bodyparts

Launches all bodyparts away from the mob

+

drop_bitflags: (see code/__DEFINES/blood.dm)

+
    +
  • DROP_BRAIN - Detaches the head from the mob and launches it away from the body
  • +

suicide

Verb to simply kill yourself (in a very visual way to all players) in game! How family-friendly. Can be governed by a series of multiple checks (i.e. confirmation, is it allowed in this area, etc.) which are +handled and called by the proc this verb invokes. It's okay to block this, because we typically always give mobs in-game the ability to Ghost out of their current mob irregardless of context. This, in contrast, +can have as many different checks as you desire to prevent people from doing the deed to themselves.

suicide_alert

Sends a TGUI Alert to the person attempting to commit suicide. Returns TRUE if they confirm they want to die, FALSE otherwise. Check can_suicide here as well.

suicide_log

Inserts logging in both the mob's logs and the investigate log pertaining to their death. Suicide tool is the object we used to commit suicide, if one was held and used (presently only humans use this arg).

take_bodypart_damage

damage ONE external organ, organ gets randomly selected from damaged ones.

take_overall_damage

damage MANY bodyparts, in random order. note: stamina arg nonfunctional for carbon mobs

tally_physical_credits

Totals the physical cash on the mob and returns the total.

taste

Non destructively tastes a reagent container +and gives feedback to the user.

toggle_admin_freeze

Toggle admin frozen

toggle_admin_sleep

Toggle admin sleeping

toggle_move_intent

Toggle the move intent of the mob

+

triggers an update the move intent hud as well

tram_slam_land

A proc triggered by callback when someone gets slammed by the tram and lands somewhere.

+

This proc is used to force people to fall through things like lattice and unplated flooring at the expense of some +extra damage, so jokers can't use half a stack of iron rods to make getting hit by the tram immediately lethal.

transfer_blood_to

BLOOD TRANSFERS

treat_message

Treats the passed message with things that may modify speech (stuttering, slurring etc).

+

message - The message to treat. +capitalize_message - Whether we run capitalize() on the message after we're done.

+

Returns a list, which is a packet of information corresponding to the message that has been treated, which +contains the new message, as well as text-to-speech information.

try_catch_item

The core of catching thrown items, which non-carbons cannot without the help of items or abilities yet, as they've no throw mode.

try_inject

Like can_inject, but it can perform side effects.

+

Arguments:

+
    +
  • user - The user trying to inject the mob.
  • +
  • target_zone - The zone being targeted.
  • +
  • injection_flags - A bitflag for extra properties to check. Check __DEFINES/injection.dm for more details. +Check _DEFINES/injection.dm for more details. Unlike can_inject, the INJECT_TRY* defines will behave differently.
  • +

try_sneeze_infect

Try and infect following a sneeze hit. force to always infect

undense_changed

Called when TRAIT_UNDENSE is gained or lost

unequip_everything

Returns the items that were succesfully unequipped.

unfriend

Proc for removing a friend you added with the proc 'befriend'. Returns true if you removed a friend.

unignore_slowdown

Unignores all slowdowns that lack the IGNORE_NOSLOW flag.

update_dnr_hud

Adds the DNR HUD element if src has TRAIT_DNR. Removes it otherwise.

update_fov

Updates the applied FOV value and applies the handler to client if able

update_fov_client

Updates the FOV for the client.

update_fullscreen

Proc used to handle the fullscreen overlay updates, realistically meant for the reset_perspective() proc.

update_lips

Used to update the makeup on a human and apply/remove lipstick traits, then store/unstore them on the head object in case it gets severed

update_medhud_on_signal

Updates medhud when receiving relevant signals.

update_pipe_vision

Everything related to pipe vision on ventcrawling is handled by update_pipe_vision(). +Called on exit, entrance, and pipenet differences (e.g. moving to a new pipenet). +One important thing to note however is that the movement of the client's eye is handled by the relaymove() proc in /obj/machinery/atmospherics. +We move first and then call update. Dont flip this around

update_resting

Proc to append and redefine behavior to the change of the [/mob/living/var/resting] variable.

update_succumb_action

Called when traits that alter succumbing are added/removed.

+

Will show or hide the succumb alert prompt.

update_transform

Called whenever the mob is to be resized or when lying/standing up for carbons. +IMPORTANT: Multiple animate() calls do not stack well, so try to do them all at once if you can.

update_usable_leg_status

Proc that updates the status of the mob's legs without setting its leg value to something else.

update_wound_overlays

Proc that only really gets called for humans, to handle bleeding overlays.

user_toggle_combat_indicator

Called whenever the user hits their combat indicator keybind, defaulted to C.

+

If the user is conscious, it will set CI to be whatever the opposite of what it is currently.

wabbajack

Polymorphs our mob into another mob. +If successful, our current mob is qdeleted!

+

what_to_randomize - what are we randomizing the mob into? See the defines for valid options. +change_flags - only used for humanoid randomization (currently), what pool of changeflags should we draw from?

+

Returns a mob (what our mob turned into) or null (if we failed).

whisper

Living level whisper.

+

Living mobs which whisper have their message only appear to people very close.

+

message - the message to display +bubble_type - the type of speech bubble that shows up when they speak (currently does nothing) +spans - a list of spans to apply around the message +sanitize - whether we sanitize the message +language - typepath language to force them to speak / whisper in +ignore_spam - whether we ignore the spam filter +forced - string source of what forced this speech to happen, also bypasses spam filter / mutes if supplied +filterproof - whether we ignore the word filter

will_escape_storage

Whether or not this mob will escape from storages while being picked up/held.

zMove

We want to relay the zmovement to the buckled atom when possible +and only run what we can't have on buckled.zMove() or buckled.can_z_move() here. +This way we can avoid esoteric bugs, copypasta and inconsistencies.

\ No newline at end of file diff --git a/mob/living/basic.html b/mob/living/basic.html new file mode 100644 index 0000000000000..65896e798b5ce --- /dev/null +++ b/mob/living/basic.html @@ -0,0 +1,16 @@ +/mob/living/basic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

basic

Simple animals 2.0, This time, let's really try to keep it simple. This basetype should purely be used as a base-level for implementing simplified behaviours for things such as damage and attacks. Everything else should be in components or AI behaviours.

Vars

armour_penetrationHow much armour they ignore, as a flat reduction from the targets armour value.
attack_soundSound played when the critter attacks.
attack_verb_continuousBasic mob's own attacks verbs, +Attacking verb in present continuous tense.
attack_verb_simpleAttacking verb in present simple tense.
attack_vis_effectOverride for the visual attack effect shown on 'do_attack_animation()'.
attacked_soundPlayed when someone punches the creature.
bare_wound_bonusHow much bare wounding power it has
damage_coeff1 for full damage, 0 for none, -1 for 1:1 heal from that source.
environment_smashVariable maintained for compatibility with attack_animal procs until simple animals can be refactored away. Use element instead of setting manually.
friendly_verb_continuousAttacking, but without damage, verb in present continuous tense.
friendly_verb_simpleAttacking, but without damage, verb in present simple tense.
gold_core_spawnableIf the mob can be spawned with a gold slime core. HOSTILE_SPAWN are spawned with plasma, FRIENDLY_SPAWN are spawned with blood.
habitable_atmosLeaving something at 0 means it's off - has no maximum.
icon_deadIcon when the animal is dead. Don't use animated icons for this.
icon_gibWe only try to show a gibbing animation if this exists.
icon_living/////THIS SECTION COULD BE ITS OWN ELEMENT +Icon to use
maximum_survivable_temperatureMaximal body temperature without receiving damage
melee_attack_cooldownHow often can you melee attack?
melee_damage_typeDamage type of a simple mob's melee attack, should it do damage.
minimum_survivable_temperatureMinimal body temperature without receiving damage
obj_damagehow much damage this basic mob does to objects, if any.
reagent_healthwhether the simple animal can be healed/damaged through reagents
response_disarm_continuousDisarm-intent verb in present continuous tense.
response_disarm_simpleDisarm-intent verb in present simple tense.
response_harm_continuousHarm-intent verb in present continuous tense.
response_harm_simpleHarm-intent verb in present simple tense.
response_help_continuousWhen someone interacts with the simple animal. +Help-intent verb in present continuous tense.
response_help_simpleHelp-intent verb in present simple tense.
sentience_typeSentience type, for slime potions. SHOULD BE AN ELEMENT BUT I DONT CARE ABOUT IT FOR NOW
sharpnessIf the attacks from this are sharp
speak_emoteVerbs used for speaking e.g. "Says" or "Chitters". This can be elementized
speedDefines how fast the basic mob can move. This is not a multiplier
stamina_recoveryHow much stamina the mob recovers per second
unsuitable_atmos_damageThis damage is taken when atmos doesn't fit all the requirements above. Set to 0 to avoid adding the atmos_requirements element.
unsuitable_cold_damageThis damage is taken when the body temp is too cold. Set both this and unsuitable_heat_damage to 0 to avoid adding the body_temp_sensitive element.
unsuitable_heat_damageThis damage is taken when the body temp is too hot. Set both this and unsuitable_cold_damage to 0 to avoid adding the body_temp_sensitive element.
wound_bonusHow much wounding power it has

Procs

adjust_healthAdjusts the health of a simple mob by a set amount
apply_atmos_requirementsEnsures this mob can take atmospheric damage if it's supposed to
apply_temperature_requirementsEnsures this mob can take temperature damage if it's supposed to
look_aliveApply the appearance and properties this mob has when it is alive
look_deadApply the appearance and properties this mob has when it dies +This is called by the mob pretending to be dead too so don't put loot drops in here or something
update_staminaUpdates movement speed based on stamina loss

Var Details

armour_penetration

How much armour they ignore, as a flat reduction from the targets armour value.

attack_sound

Sound played when the critter attacks.

attack_verb_continuous

Basic mob's own attacks verbs, +Attacking verb in present continuous tense.

attack_verb_simple

Attacking verb in present simple tense.

attack_vis_effect

Override for the visual attack effect shown on 'do_attack_animation()'.

attacked_sound

Played when someone punches the creature.

bare_wound_bonus

How much bare wounding power it has

damage_coeff

1 for full damage, 0 for none, -1 for 1:1 heal from that source.

environment_smash

Variable maintained for compatibility with attack_animal procs until simple animals can be refactored away. Use element instead of setting manually.

friendly_verb_continuous

Attacking, but without damage, verb in present continuous tense.

friendly_verb_simple

Attacking, but without damage, verb in present simple tense.

gold_core_spawnable

If the mob can be spawned with a gold slime core. HOSTILE_SPAWN are spawned with plasma, FRIENDLY_SPAWN are spawned with blood.

habitable_atmos

Leaving something at 0 means it's off - has no maximum.

icon_dead

Icon when the animal is dead. Don't use animated icons for this.

icon_gib

We only try to show a gibbing animation if this exists.

icon_living

/////THIS SECTION COULD BE ITS OWN ELEMENT +Icon to use

maximum_survivable_temperature

Maximal body temperature without receiving damage

melee_attack_cooldown

How often can you melee attack?

melee_damage_type

Damage type of a simple mob's melee attack, should it do damage.

minimum_survivable_temperature

Minimal body temperature without receiving damage

obj_damage

how much damage this basic mob does to objects, if any.

reagent_health

whether the simple animal can be healed/damaged through reagents

response_disarm_continuous

Disarm-intent verb in present continuous tense.

response_disarm_simple

Disarm-intent verb in present simple tense.

response_harm_continuous

Harm-intent verb in present continuous tense.

response_harm_simple

Harm-intent verb in present simple tense.

response_help_continuous

When someone interacts with the simple animal. +Help-intent verb in present continuous tense.

response_help_simple

Help-intent verb in present simple tense.

sentience_type

Sentience type, for slime potions. SHOULD BE AN ELEMENT BUT I DONT CARE ABOUT IT FOR NOW

sharpness

If the attacks from this are sharp

speak_emote

Verbs used for speaking e.g. "Says" or "Chitters". This can be elementized

speed

Defines how fast the basic mob can move. This is not a multiplier

stamina_recovery

How much stamina the mob recovers per second

unsuitable_atmos_damage

This damage is taken when atmos doesn't fit all the requirements above. Set to 0 to avoid adding the atmos_requirements element.

unsuitable_cold_damage

This damage is taken when the body temp is too cold. Set both this and unsuitable_heat_damage to 0 to avoid adding the body_temp_sensitive element.

unsuitable_heat_damage

This damage is taken when the body temp is too hot. Set both this and unsuitable_cold_damage to 0 to avoid adding the body_temp_sensitive element.

wound_bonus

How much wounding power it has

Proc Details

adjust_health

Adjusts the health of a simple mob by a set amount

+

Arguments:

+
    +
  • amount The amount that will be used to adjust the mob's health
  • +
  • updating_health If the mob's health should be immediately updated to the new value
  • +
  • forced If we should force update the adjustment of the mob's health no matter the restrictions, like TRAIT_GODMODE +returns the net change in bruteloss after applying the damage amount
  • +

apply_atmos_requirements

Ensures this mob can take atmospheric damage if it's supposed to

apply_temperature_requirements

Ensures this mob can take temperature damage if it's supposed to

look_alive

Apply the appearance and properties this mob has when it is alive

look_dead

Apply the appearance and properties this mob has when it dies +This is called by the mob pretending to be dead too so don't put loot drops in here or something

update_stamina

Updates movement speed based on stamina loss

\ No newline at end of file diff --git a/mob/living/basic/abductor.html b/mob/living/basic/abductor.html new file mode 100644 index 0000000000000..27fd1eabc2112 --- /dev/null +++ b/mob/living/basic/abductor.html @@ -0,0 +1 @@ +/mob/living/basic/abductor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

abductor

Vars

lootWhat this mob drops on death

Var Details

loot

What this mob drops on death

\ No newline at end of file diff --git a/mob/living/basic/alien.html b/mob/living/basic/alien.html new file mode 100644 index 0000000000000..cfc3697397580 --- /dev/null +++ b/mob/living/basic/alien.html @@ -0,0 +1 @@ +/mob/living/basic/alien - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

alien

Vars

can_lay_eggsBoolean on whether the xeno can lay eggs.
can_plant_weedsBoolean on whether the xeno can plant weeds.
lootList of loot items to drop when deleted, if this is set then we apply DEL_ON_DEATH

Procs

lay_alien_eggLays an egg on the turf the mob is currently standing on.
place_weedsPlaces alien weeds on the turf the mob is currently standing on.

Var Details

can_lay_eggs

Boolean on whether the xeno can lay eggs.

can_plant_weeds

Boolean on whether the xeno can plant weeds.

loot

List of loot items to drop when deleted, if this is set then we apply DEL_ON_DEATH

Proc Details

lay_alien_egg

Lays an egg on the turf the mob is currently standing on.

place_weeds

Places alien weeds on the turf the mob is currently standing on.

\ No newline at end of file diff --git a/mob/living/basic/alien/maid.html b/mob/living/basic/alien/maid.html new file mode 100644 index 0000000000000..964e50e8d6f14 --- /dev/null +++ b/mob/living/basic/alien/maid.html @@ -0,0 +1 @@ +/mob/living/basic/alien/maid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

maid

Procs

pre_attackHandles the maid attacking other players, cancelling the attack to clean up instead.

Proc Details

pre_attack

Handles the maid attacking other players, cancelling the attack to clean up instead.

\ No newline at end of file diff --git a/mob/living/basic/alien/maid/barmaid.html b/mob/living/basic/alien/maid/barmaid.html new file mode 100644 index 0000000000000..b9a290b294031 --- /dev/null +++ b/mob/living/basic/alien/maid/barmaid.html @@ -0,0 +1,2 @@ +/mob/living/basic/alien/maid/barmaid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

barmaid

Barmaid special type +Spawns on emergency shuttles, has access to them and godmode while inside of them.

Vars

access_cardThe access card we use to store access to the emergency shuttle.

Var Details

access_card

The access card we use to store access to the emergency shuttle.

\ No newline at end of file diff --git a/mob/living/basic/alien/queen.html b/mob/living/basic/alien/queen.html new file mode 100644 index 0000000000000..a5c097dc261bc --- /dev/null +++ b/mob/living/basic/alien/queen.html @@ -0,0 +1 @@ +/mob/living/basic/alien/queen - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

queen

Vars

projectilesoundThe sound that plays when the projectile is fired.
projectiletypeThe type of projectile that fires from attacks.

Var Details

projectilesound

The sound that plays when the projectile is fired.

projectiletype

The type of projectile that fires from attacks.

\ No newline at end of file diff --git a/mob/living/basic/alien/sentinel.html b/mob/living/basic/alien/sentinel.html new file mode 100644 index 0000000000000..95ae4115af2d7 --- /dev/null +++ b/mob/living/basic/alien/sentinel.html @@ -0,0 +1 @@ +/mob/living/basic/alien/sentinel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sentinel

Vars

projectilesoundThe sound that plays when the projectile is fired.
projectiletypeThe type of projectile that fires from attacks.

Var Details

projectilesound

The sound that plays when the projectile is fired.

projectiletype

The type of projectile that fires from attacks.

\ No newline at end of file diff --git a/mob/living/basic/bear.html b/mob/living/basic/bear.html new file mode 100644 index 0000000000000..de88ef3960070 --- /dev/null +++ b/mob/living/basic/bear.html @@ -0,0 +1 @@ +/mob/living/basic/bear - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bear

Vars

armoredis the bear wearing a armor?

Var Details

armored

is the bear wearing a armor?

\ No newline at end of file diff --git a/mob/living/basic/bee.html b/mob/living/basic/bee.html new file mode 100644 index 0000000000000..ad9bc58131b12 --- /dev/null +++ b/mob/living/basic/bee.html @@ -0,0 +1 @@ +/mob/living/basic/bee - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bee

Vars

beegentthe reagent the bee has
beehomethe house we live in
icon_baseour icon base
is_queenthe bee is a queen?
pet_commandscommands we follow

Procs

spawn_corpseLeave something to remember us by

Var Details

beegent

the reagent the bee has

beehome

the house we live in

icon_base

our icon base

is_queen

the bee is a queen?

pet_commands

commands we follow

Proc Details

spawn_corpse

Leave something to remember us by

\ No newline at end of file diff --git a/mob/living/basic/bee/timed.html b/mob/living/basic/bee/timed.html new file mode 100644 index 0000000000000..a824109691996 --- /dev/null +++ b/mob/living/basic/bee/timed.html @@ -0,0 +1 @@ +/mob/living/basic/bee/timed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

timed

A bee which despawns after a short amount of time (beespawns?)

Vars

lifespanHow long do we live?

Var Details

lifespan

How long do we live?

\ No newline at end of file diff --git a/mob/living/basic/blob_minion.html b/mob/living/basic/blob_minion.html new file mode 100644 index 0000000000000..d628dab52d5fa --- /dev/null +++ b/mob/living/basic/blob_minion.html @@ -0,0 +1 @@ +/mob/living/basic/blob_minion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

blob_minion

Root of shared behaviour for mobs spawned by blobs, is abstract and should not be spawned

Procs

link_to_factoryAssociates this mob with a specific blob factory node
on_factory_destroyedCalled when our factory is destroyed
on_strain_updatedCalled when our blob overmind changes their variant, update some of our mob properties

Proc Details

Associates this mob with a specific blob factory node

on_factory_destroyed

Called when our factory is destroyed

on_strain_updated

Called when our blob overmind changes their variant, update some of our mob properties

\ No newline at end of file diff --git a/mob/living/basic/blob_minion/blobbernaut/minion.html b/mob/living/basic/blob_minion/blobbernaut/minion.html new file mode 100644 index 0000000000000..d39802d0d6f58 --- /dev/null +++ b/mob/living/basic/blob_minion/blobbernaut/minion.html @@ -0,0 +1 @@ +/mob/living/basic/blob_minion/blobbernaut/minion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

minion

This variant is the one actually spawned by blob factories, takes damage when away from blob tiles

Vars

orphanedIs our factory dead?

Procs

assign_keyCalled by the blob creation power to give us a mind and a basic task orientation
on_factory_destroyedCalled by our factory to inform us that it's not going to support us financially any more
on_strain_updatedSet our attack damage based on blob's properties

Var Details

orphaned

Is our factory dead?

Proc Details

assign_key

Called by the blob creation power to give us a mind and a basic task orientation

on_factory_destroyed

Called by our factory to inform us that it's not going to support us financially any more

on_strain_updated

Set our attack damage based on blob's properties

\ No newline at end of file diff --git a/mob/living/basic/blob_minion/spore.html b/mob/living/basic/blob_minion/spore.html new file mode 100644 index 0000000000000..95a171fdedef1 --- /dev/null +++ b/mob/living/basic/blob_minion/spore.html @@ -0,0 +1 @@ +/mob/living/basic/blob_minion/spore - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spore

A floating fungus which turns people into zombies and explodes into reagent clouds upon death.

Vars

death_cloud_sizeSize of cloud produced from a dying spore
zombie_typeType of mob to create

Procs

death_burstCreate an explosion of spores on death
zombifyBecome a zombie

Var Details

death_cloud_size

Size of cloud produced from a dying spore

zombie_type

Type of mob to create

Proc Details

death_burst

Create an explosion of spores on death

zombify

Become a zombie

\ No newline at end of file diff --git a/mob/living/basic/blob_minion/spore/minion.html b/mob/living/basic/blob_minion/spore/minion.html new file mode 100644 index 0000000000000..d303531ed94b4 --- /dev/null +++ b/mob/living/basic/blob_minion/spore/minion.html @@ -0,0 +1 @@ +/mob/living/basic/blob_minion/spore/minion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

minion

Variant of the blob spore which is actually spawned by blob factories

Vars

z_turfWe die if we leave the same turf as this z level

Procs

link_to_factoryMark the turf we need to track from our factory
on_strain_updatedIf the blob changes to distributed neurons then you can control the spores
on_z_changedWhen we z-move check that we're on the same z level as our factory was

Var Details

z_turf

We die if we leave the same turf as this z level

Proc Details

Mark the turf we need to track from our factory

on_strain_updated

If the blob changes to distributed neurons then you can control the spores

on_z_changed

When we z-move check that we're on the same z level as our factory was

\ No newline at end of file diff --git a/mob/living/basic/blob_minion/zombie.html b/mob/living/basic/blob_minion/zombie.html new file mode 100644 index 0000000000000..a300e59b7bb04 --- /dev/null +++ b/mob/living/basic/blob_minion/zombie.html @@ -0,0 +1 @@ +/mob/living/basic/blob_minion/zombie - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

zombie

A shambling mob made out of a crew member

Vars

corpseThe dead body we have inside

Procs

consume_corpseStore a body so that we can drop it on death
death_burstCreate an explosion of spores on death
on_corpse_revivedDynamic changeling reentry

Var Details

corpse

The dead body we have inside

Proc Details

consume_corpse

Store a body so that we can drop it on death

death_burst

Create an explosion of spores on death

on_corpse_revived

Dynamic changeling reentry

\ No newline at end of file diff --git a/mob/living/basic/bot.html b/mob/living/basic/bot.html new file mode 100644 index 0000000000000..6d39503383f0a --- /dev/null +++ b/mob/living/basic/bot.html @@ -0,0 +1,5 @@ +/mob/living/basic/bot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bot

Vars

access_cardour access card
additional_accessThe trim type that will grant additional acces
announcement_typeType of bot_announcement ability we want
bot_access_flagsBot-related cover flags on the Bot to deal with what has been done to their cover, including emagging. BOT_COVER_MAINTS_OPEN | BOT_COVER_LOCKED | BOT_COVER_EMAGGED | BOT_COVER_HACKED
bot_mode_flagsBot-related mode flags on the Bot indicating how they will act. BOT_MODE_ON | BOT_MODE_AUTOPATROL | BOT_MODE_REMOTE_ENABLED | BOT_MODE_CAN_BE_SAPIENT | BOT_MODE_ROUNDSTART_POSSESSION +DO NOT MODIFY MANUALLY, USE set_bot_mode_flags. If you don't shit breaks BAD
bot_typeThe type of bot it is, for radio control.
calling_ai_refLinks a bot to the AI calling it.
can_be_possessedIf true we will allow ghosts to control this mob
current_pathed_turfslist of all layed path icons
data_hud_typeThe type of data HUD the bot uses. Diagnostic by default.
hackablesSmall name of what the bot gets messed with when getting hacked/emagged.
initial_accessAll initial access this bot started with.
internal_radioThe bot's radio, for speaking to people.
modeStandardizes the vars that indicate the bot is busy with its function.
offer_ghosts_cooldownIf true we will offer this
on_toggle_traitslist of traits we apply and remove when turning on/off
pa_systemAction we use to say voice lines out loud, also we just pass anything we try to say through here just in case it plays a voice line
paicardThe inserted (if any) pAI in this bot.
path_image_colorwhat color this path icon will use
path_image_iconfile the path icon is stored in
path_image_icon_statestate of the path icon
possessed_messageMessage to display upon possession
radio_channelThe bot's default radio channel
radio_keywhich channels can the bot listen to
robot_armThe Robot arm attached to this robot - has a 50% chance to drop on death.

Procs

check_possessionReturns true if this mob can be controlled
clear_path_hudproc that handles deleting the bot's drawn path when needed
disable_possessionDisables this bot from being possessed by ghosts
eject_pai_remoteEjects the pAI remotely.
ejectpaiEjects a pAI from this bot
enable_possessionAllows this bot to be controlled by a ghost, who will become its mind
generate_bot_pathproc that handles drawing and transforming the bot's path onto diagnostic huds
get_emagged_messageReturns a string of flavor text for emagged bots as defined by policy.
get_mode_uiReturns a status string about the bot's current status, if it's moving, manually controlled, or idle.
handle_loop_movementproc that handles moving along the bot's drawn path
insertpaiPlaces a pAI in control of this mob
post_possessionFired after something takes control of this mob
renameAllows renaming the bot to something else
speakPass a message to have the bot say() it, passing through our announcement action to potentially also play a sound. +Optionally pass a frequency to say it on the radio.
topic_deniedAccess check proc for bot topics! Remember to place in a bot's individual Topic if desired.

Var Details

access_card

our access card

additional_access

The trim type that will grant additional acces

announcement_type

Type of bot_announcement ability we want

bot_access_flags

Bot-related cover flags on the Bot to deal with what has been done to their cover, including emagging. BOT_COVER_MAINTS_OPEN | BOT_COVER_LOCKED | BOT_COVER_EMAGGED | BOT_COVER_HACKED

bot_mode_flags

Bot-related mode flags on the Bot indicating how they will act. BOT_MODE_ON | BOT_MODE_AUTOPATROL | BOT_MODE_REMOTE_ENABLED | BOT_MODE_CAN_BE_SAPIENT | BOT_MODE_ROUNDSTART_POSSESSION +DO NOT MODIFY MANUALLY, USE set_bot_mode_flags. If you don't shit breaks BAD

bot_type

The type of bot it is, for radio control.

calling_ai_ref

Links a bot to the AI calling it.

can_be_possessed

If true we will allow ghosts to control this mob

current_pathed_turfs

list of all layed path icons

data_hud_type

The type of data HUD the bot uses. Diagnostic by default.

hackables

Small name of what the bot gets messed with when getting hacked/emagged.

initial_access

All initial access this bot started with.

internal_radio

The bot's radio, for speaking to people.

mode

Standardizes the vars that indicate the bot is busy with its function.

offer_ghosts_cooldown

If true we will offer this

on_toggle_traits

list of traits we apply and remove when turning on/off

pa_system

Action we use to say voice lines out loud, also we just pass anything we try to say through here just in case it plays a voice line

paicard

The inserted (if any) pAI in this bot.

path_image_color

what color this path icon will use

path_image_icon

file the path icon is stored in

path_image_icon_state

state of the path icon

possessed_message

Message to display upon possession

radio_channel

The bot's default radio channel

radio_key

which channels can the bot listen to

robot_arm

The Robot arm attached to this robot - has a 50% chance to drop on death.

Proc Details

check_possession

Returns true if this mob can be controlled

clear_path_hud

proc that handles deleting the bot's drawn path when needed

disable_possession

Disables this bot from being possessed by ghosts

eject_pai_remote

Ejects the pAI remotely.

ejectpai

Ejects a pAI from this bot

enable_possession

Allows this bot to be controlled by a ghost, who will become its mind

generate_bot_path

proc that handles drawing and transforming the bot's path onto diagnostic huds

get_emagged_message

Returns a string of flavor text for emagged bots as defined by policy.

get_mode_ui

Returns a status string about the bot's current status, if it's moving, manually controlled, or idle.

handle_loop_movement

proc that handles moving along the bot's drawn path

insertpai

Places a pAI in control of this mob

post_possession

Fired after something takes control of this mob

rename

Allows renaming the bot to something else

speak

Pass a message to have the bot say() it, passing through our announcement action to potentially also play a sound. +Optionally pass a frequency to say it on the radio.

topic_denied

Access check proc for bot topics! Remember to place in a bot's individual Topic if desired.

\ No newline at end of file diff --git a/mob/living/basic/bot/cleanbot.html b/mob/living/basic/bot/cleanbot.html new file mode 100644 index 0000000000000..8d89a59177cd4 --- /dev/null +++ b/mob/living/basic/bot/cleanbot.html @@ -0,0 +1,3 @@ +/mob/living/basic/bot/cleanbot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cleanbot

Vars

ascendedif we have all the top titles, grant achievements to living mobs that gaze upon our cleanbot god
base_iconthe base icon state, used in updating icons.
build_bucketthe bucket used to build us.
cleanable_bloodblood we can clean
cleanable_decalsdecals we can clean
cleanable_drawingsdrawings we hunt
emagged_phrasesemagged phrases
huntable_pestspests we hunt
huntable_trashtrash we will burn
janitor_mode_flagsFlags indicating what kind of cleanables we should scan for to set as our target to clean. +Options: CLEANBOT_CLEAN_BLOOD | CLEANBOT_CLEAN_TRASH | CLEANBOT_CLEAN_PESTS | CLEANBOT_CLEAN_DRAWINGS
job_titlesjob titles we can get
officers_titleslist of our officer titles
our_mopour mop item
pet_commandslist of pet commands we follow
stolen_valorList of all stolen names the cleanbot currently has.
suffix_job_titleswhich job titles should be placed after the name?
weaponCurrently attached weapon, usually a knife.

Var Details

ascended

if we have all the top titles, grant achievements to living mobs that gaze upon our cleanbot god

base_icon

the base icon state, used in updating icons.

build_bucket

the bucket used to build us.

cleanable_blood

blood we can clean

cleanable_decals

decals we can clean

cleanable_drawings

drawings we hunt

emagged_phrases

emagged phrases

huntable_pests

pests we hunt

huntable_trash

trash we will burn

janitor_mode_flags

Flags indicating what kind of cleanables we should scan for to set as our target to clean. +Options: CLEANBOT_CLEAN_BLOOD | CLEANBOT_CLEAN_TRASH | CLEANBOT_CLEAN_PESTS | CLEANBOT_CLEAN_DRAWINGS

job_titles

job titles we can get

officers_titles

list of our officer titles

our_mop

our mop item

pet_commands

list of pet commands we follow

stolen_valor

List of all stolen names the cleanbot currently has.

suffix_job_titles

which job titles should be placed after the name?

weapon

Currently attached weapon, usually a knife.

\ No newline at end of file diff --git a/mob/living/basic/bot/firebot.html b/mob/living/basic/bot/firebot.html new file mode 100644 index 0000000000000..f835b2b84115e --- /dev/null +++ b/mob/living/basic/bot/firebot.html @@ -0,0 +1 @@ +/mob/living/basic/bot/firebot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

firebot

Vars

firebot_mode_flagsFlags firebots use to decide how they function.
foam_cooldowncooldown before we release foam all over
internal_extour inbuilt fire extinguisher

Var Details

firebot_mode_flags

Flags firebots use to decide how they function.

foam_cooldown

cooldown before we release foam all over

internal_ext

our inbuilt fire extinguisher

\ No newline at end of file diff --git a/mob/living/basic/bot/honkbot.html b/mob/living/basic/bot/honkbot.html new file mode 100644 index 0000000000000..abbd52d987328 --- /dev/null +++ b/mob/living/basic/bot/honkbot.html @@ -0,0 +1 @@ +/mob/living/basic/bot/honkbot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

honkbot

Vars

honkbot_flagsHonkbot's flags
honkbot_soundsour voicelines

Var Details

honkbot_flags

Honkbot's flags

honkbot_sounds

our voicelines

\ No newline at end of file diff --git a/mob/living/basic/bot/hygienebot.html b/mob/living/basic/bot/hygienebot.html new file mode 100644 index 0000000000000..f7fe575cd947d --- /dev/null +++ b/mob/living/basic/bot/hygienebot.html @@ -0,0 +1 @@ +/mob/living/basic/bot/hygienebot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hygienebot

Vars

cleaned_announcementsannouncements we say after we have cleaned our target
fire_overlayVisual overlay of the bot commiting warcrimes.
found_announcementsannouncements we say when we find a target
threat_announcementsannouncements we say when the target keeps moving away
washingare we currently washing someone?
water_overlayVisual overlay of the bot spraying water.

Var Details

cleaned_announcements

announcements we say after we have cleaned our target

fire_overlay

Visual overlay of the bot commiting warcrimes.

found_announcements

announcements we say when we find a target

threat_announcements

announcements we say when the target keeps moving away

washing

are we currently washing someone?

water_overlay

Visual overlay of the bot spraying water.

\ No newline at end of file diff --git a/mob/living/basic/bot/medbot.html b/mob/living/basic/bot/medbot.html new file mode 100644 index 0000000000000..c358a8ea2289c --- /dev/null +++ b/mob/living/basic/bot/medbot.html @@ -0,0 +1 @@ +/mob/living/basic/bot/medbot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

medbot

Vars

afterheal_announcementsannouncements after we heal someone
damage_type_healerWhat damage type does this bot support. Because the default is brute, if the medkit is brute-oriented there is a slight bonus to healing. set to "all" for it to heal any of the 4 base damage types
emagged_announcementsannouncements when we are emagged
heal_amountHow much healing do we do at a time?
heal_thresholdStart healing when they have this much damage in a category
health_analyzerdrop determining variable
idle_linesannouncements when we are idle
linked_techwebtechweb linked to the medbot
medical_mode_flagsFlags Medbots use to decide how they should be acting.
medkit_typedrop determining variable
near_death_announcementsannouncements when we are healing someone near death
skinbased off medkit_X skins in aibots.dmi for your selection; X goes here IE medskin_tox means skin var should be "tox"
tipped_announcementsannouncements when we are being tipped
tipperour tipper
untipped_announcementsannouncements when we are being untipped
wait_announcementsanouncements when we find a target to heal
worried_announcementsannouncements when we are worried

Var Details

afterheal_announcements

announcements after we heal someone

damage_type_healer

What damage type does this bot support. Because the default is brute, if the medkit is brute-oriented there is a slight bonus to healing. set to "all" for it to heal any of the 4 base damage types

emagged_announcements

announcements when we are emagged

heal_amount

How much healing do we do at a time?

heal_threshold

Start healing when they have this much damage in a category

health_analyzer

drop determining variable

idle_lines

announcements when we are idle

linked_techweb

techweb linked to the medbot

medical_mode_flags

Flags Medbots use to decide how they should be acting.

medkit_type

drop determining variable

near_death_announcements

announcements when we are healing someone near death

skin

based off medkit_X skins in aibots.dmi for your selection; X goes here IE medskin_tox means skin var should be "tox"

tipped_announcements

announcements when we are being tipped

tipper

our tipper

untipped_announcements

announcements when we are being untipped

wait_announcements

anouncements when we find a target to heal

worried_announcements

announcements when we are worried

\ No newline at end of file diff --git a/mob/living/basic/butterfly/lavaland/temporary.html b/mob/living/basic/butterfly/lavaland/temporary.html new file mode 100644 index 0000000000000..e8ee9ac14484b --- /dev/null +++ b/mob/living/basic/butterfly/lavaland/temporary.html @@ -0,0 +1,3 @@ +/mob/living/basic/butterfly/lavaland/temporary - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

temporary

Vars

despawn_timerDespawn timer of the butterfly
max_distanceMax distance in tiles before the butterfly despawns
sourceThe atom that's spawning the butterflies
will_be_destroyedWhether the butterfly will be destroyed at the end of its despawn timer

Procs

fadeoutFade the butterfly out before deleting it. +Looks much better than it just blipping out of existence
should_despawnChecks whether the butterfly should be despawned after the next check, based on distance from source

Var Details

despawn_timer

Despawn timer of the butterfly

max_distance

Max distance in tiles before the butterfly despawns

source

The atom that's spawning the butterflies

will_be_destroyed

Whether the butterfly will be destroyed at the end of its despawn timer

Proc Details

fadeout

Fade the butterfly out before deleting it. +Looks much better than it just blipping out of existence

should_despawn

Checks whether the butterfly should be despawned after the next check, based on distance from source

\ No newline at end of file diff --git a/mob/living/basic/carp.html b/mob/living/basic/carp.html new file mode 100644 index 0000000000000..464c88eeab263 --- /dev/null +++ b/mob/living/basic/carp.html @@ -0,0 +1,7 @@ +/mob/living/basic/carp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

carp

Space Carp

+

A migratory dwarf fortress reference who swim through space and sometimes bump into the space station. +Can be created in dehydrated form by traitors, and are also summoned through rifts by space dragons.

+

Begin regenerating their health after a short time without taking any damage, and will try to run away to do this if they get hurt. +Lethally attracted to loose plastic.

+

Tameable by feeding them meat, and can follow basic instructions. Rideable. +Owned as a pet both by the HoS (sometimes) and also the Nuclear Operatives.

Vars

allowed_obstacle_targetsStructures that AI carp are willing to attack. This prevents them from deconstructing supermatter cooling equipment.
cell_lineCytology cells you can swab from this creature
cowardlyIf true we will run away from attackers even at full health
desired_foodCarp want to eat raw meat
desired_trashCarp want to eat delicious six pack plastic rings
regenerate_colourWhat colour is our 'healing' outline?
ridable_dataInformation to apply when treating this carp as a vehicle
tamed_commandsCommands you can give this carp once it is tamed, not static because subtypes can modify it
teleportAbility which lets carp teleport around

Procs

apply_colourSet a random colour on the carp, override to do something else
migrate_toGives the carp a list of weakrefs of destinations to try and travel between when it has nothing better to do
ranged_secondary_attackTeleport when you right click away from you
setup_eatingTell the elements and the blackboard what food we want to eat
tamedCalled when another mob has forged a bond of friendship with this one, passed the taming mob as 'tamer'

Var Details

allowed_obstacle_targets

Structures that AI carp are willing to attack. This prevents them from deconstructing supermatter cooling equipment.

cell_line

Cytology cells you can swab from this creature

cowardly

If true we will run away from attackers even at full health

desired_food

Carp want to eat raw meat

desired_trash

Carp want to eat delicious six pack plastic rings

regenerate_colour

What colour is our 'healing' outline?

ridable_data

Information to apply when treating this carp as a vehicle

tamed_commands

Commands you can give this carp once it is tamed, not static because subtypes can modify it

teleport

Ability which lets carp teleport around

Proc Details

apply_colour

Set a random colour on the carp, override to do something else

migrate_to

Gives the carp a list of weakrefs of destinations to try and travel between when it has nothing better to do

ranged_secondary_attack

Teleport when you right click away from you

setup_eating

Tell the elements and the blackboard what food we want to eat

tamed

Called when another mob has forged a bond of friendship with this one, passed the taming mob as 'tamer'

\ No newline at end of file diff --git a/mob/living/basic/carp/holographic.html b/mob/living/basic/carp/holographic.html new file mode 100644 index 0000000000000..c1561dd7ef879 --- /dev/null +++ b/mob/living/basic/carp/holographic.html @@ -0,0 +1 @@ +/mob/living/basic/carp/holographic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

holographic

Holographic carp from the holodeck

Procs

setup_eatingHolocarp don't eat food

Proc Details

setup_eating

Holocarp don't eat food

\ No newline at end of file diff --git a/mob/living/basic/carp/magic.html b/mob/living/basic/carp/magic.html new file mode 100644 index 0000000000000..14f45ea233e7c --- /dev/null +++ b/mob/living/basic/carp/magic.html @@ -0,0 +1,5 @@ +/mob/living/basic/carp/magic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Magicarp

Carp who can cast spells! +Mostly created via wizard event or transformation. +Come in 'does one thing' and 'does random things' varieties.

Vars

allowed_projectile_typesList of all projectiles we can fire. +Non-static, because subtypes can have their own lists.
spellOur magic attack

Procs

RangedAttackShoot when you click away from you
assign_spellUpdates name based on chosen spell
assign_spell_aiIf you have certain spells, use a different targeting strategy
spell_listReturns the list of spells we are allowed to cast

Var Details

allowed_projectile_types

List of all projectiles we can fire. +Non-static, because subtypes can have their own lists.

spell

Our magic attack

Proc Details

RangedAttack

Shoot when you click away from you

assign_spell

Updates name based on chosen spell

assign_spell_ai

If you have certain spells, use a different targeting strategy

spell_list

Returns the list of spells we are allowed to cast

\ No newline at end of file diff --git a/mob/living/basic/carp/mega.html b/mob/living/basic/carp/mega.html new file mode 100644 index 0000000000000..aad18e8c9c036 --- /dev/null +++ b/mob/living/basic/carp/mega.html @@ -0,0 +1,4 @@ +/mob/living/basic/carp/mega - /tg/ Station 13
/tg/ Station 13 - Modules - Types

mega

Mega Space Carp

+

A bigger space carp with more health and greater ability to smash objects. +Brings in some buddies when it starts fleeing as a distraction. +Has mildly randomised stats for some inexplicable reason, makes it somewhat more like a randomised Diablo mob.

\ No newline at end of file diff --git a/mob/living/basic/carp/passive.html b/mob/living/basic/carp/passive.html new file mode 100644 index 0000000000000..7d291557f04b0 --- /dev/null +++ b/mob/living/basic/carp/passive.html @@ -0,0 +1 @@ +/mob/living/basic/carp/passive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

passive

Wild carp that just vibe ya know

Procs

on_attackedIf someone slaps one of the school, scatter

Proc Details

on_attacked

If someone slaps one of the school, scatter

\ No newline at end of file diff --git a/mob/living/basic/carp/pet/cayenne.html b/mob/living/basic/carp/pet/cayenne.html new file mode 100644 index 0000000000000..9724dc11ef6ed --- /dev/null +++ b/mob/living/basic/carp/pet/cayenne.html @@ -0,0 +1,3 @@ +/mob/living/basic/carp/pet/cayenne - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cayenne

Cayenne - Loyal member of the nuclear operatives. +Spawns in the nuke op shuttle, can be made sapient if they want to do that for some reason. +Is very talented and also capable of holding the nuclear disk.

Vars

disk_overlayOverlay to apply to display the disk
mouth_overlayOverlay to apply over the disk so it looks like cayenne is holding it

Procs

display_diskAdds an overlay to show the disk on Cayenne
got_diskShe did it! Treats for Cayenne!

Var Details

disk_overlay

Overlay to apply to display the disk

mouth_overlay

Overlay to apply over the disk so it looks like cayenne is holding it

Proc Details

display_disk

Adds an overlay to show the disk on Cayenne

got_disk

She did it! Treats for Cayenne!

\ No newline at end of file diff --git a/mob/living/basic/cat_butcherer.html b/mob/living/basic/cat_butcherer.html new file mode 100644 index 0000000000000..98986d7522a4e --- /dev/null +++ b/mob/living/basic/cat_butcherer.html @@ -0,0 +1,2 @@ +/mob/living/basic/cat_butcherer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cat_butcherer

Cat Surgeon

+

A mean motherfucker who wants to steal them cat tails... be warned should you see it, as it doesn't really speak much either.

Vars

drop_on_deathThe stuff we drop on death.

Var Details

drop_on_death

The stuff we drop on death.

\ No newline at end of file diff --git a/mob/living/basic/chick.html b/mob/living/basic/chick.html new file mode 100644 index 0000000000000..ee7b4d3dc74f0 --- /dev/null +++ b/mob/living/basic/chick.html @@ -0,0 +1,2 @@ +/mob/living/basic/chick - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chick

Chicks

+

Baby birds that grow into big chickens.

Vars

grow_asWhat we grow into.

Procs

ready_to_growWe don't grow into a chicken if we're not conscious.

Var Details

grow_as

What we grow into.

Proc Details

ready_to_grow

We don't grow into a chicken if we're not conscious.

\ No newline at end of file diff --git a/mob/living/basic/chicken.html b/mob/living/basic/chicken.html new file mode 100644 index 0000000000000..c08751111ac6f --- /dev/null +++ b/mob/living/basic/chicken.html @@ -0,0 +1 @@ +/mob/living/basic/chicken - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chicken

Vars

fertileboolean deciding whether eggs laid by this chicken can hatch into chicks

Var Details

fertile

boolean deciding whether eggs laid by this chicken can hatch into chicks

\ No newline at end of file diff --git a/mob/living/basic/clockwork_marauder.html b/mob/living/basic/clockwork_marauder.html new file mode 100644 index 0000000000000..59a270521c68d --- /dev/null +++ b/mob/living/basic/clockwork_marauder.html @@ -0,0 +1 @@ +/mob/living/basic/clockwork_marauder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

clockwork_marauder

Vars

lootItems to be dropped on death
shield_healthHow many hits the shield can take before it breaks.

Procs

damage_shieldDamage the marauder's shield by one tick

Var Details

loot

Items to be dropped on death

shield_health

How many hits the shield can take before it breaks.

Proc Details

damage_shield

Damage the marauder's shield by one tick

\ No newline at end of file diff --git a/mob/living/basic/clown.html b/mob/living/basic/clown.html new file mode 100644 index 0000000000000..bf392165dae45 --- /dev/null +++ b/mob/living/basic/clown.html @@ -0,0 +1 @@ +/mob/living/basic/clown - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

clown

Vars

emotesblackboard emote list
lootlist of stuff we drop on death
waddlesdo we waddle (honk)

Var Details

emotes

blackboard emote list

loot

list of stuff we drop on death

waddles

do we waddle (honk)

\ No newline at end of file diff --git a/mob/living/basic/clown/mutant/glutton.html b/mob/living/basic/clown/mutant/glutton.html new file mode 100644 index 0000000000000..38f5ef8267049 --- /dev/null +++ b/mob/living/basic/clown/mutant/glutton.html @@ -0,0 +1 @@ +/mob/living/basic/clown/mutant/glutton - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

glutton

Vars

prank_pouchThis is the list of items we are ready to regurgitate,

Procs

check_edibleReturns whether or not the supplied movable atom is edible.
eat_atomThis proc eats the atom, certain funny items are stored directly in the prank pouch while bananas grant a heal based on their potency and the peels are retained in the pouch.

Var Details

prank_pouch

This is the list of items we are ready to regurgitate,

Proc Details

check_edible

Returns whether or not the supplied movable atom is edible.

eat_atom

This proc eats the atom, certain funny items are stored directly in the prank pouch while bananas grant a heal based on their potency and the peels are retained in the pouch.

\ No newline at end of file diff --git a/mob/living/basic/cockroach/glockroach.html b/mob/living/basic/cockroach/glockroach.html new file mode 100644 index 0000000000000..4d51ba7e0c377 --- /dev/null +++ b/mob/living/basic/cockroach/glockroach.html @@ -0,0 +1 @@ +/mob/living/basic/cockroach/glockroach - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

glockroach

Vars

burst_shotsnumber of burst shots
ranged_cooldowncooldown between attacks

Var Details

burst_shots

number of burst shots

ranged_cooldown

cooldown between attacks

\ No newline at end of file diff --git a/mob/living/basic/cockroach/hauberoach.html b/mob/living/basic/cockroach/hauberoach.html new file mode 100644 index 0000000000000..762881f2bba13 --- /dev/null +++ b/mob/living/basic/cockroach/hauberoach.html @@ -0,0 +1 @@ +/mob/living/basic/cockroach/hauberoach - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

hauberoach

Procs

on_squishProc used to override the squashing behavior of the normal cockroach.

Proc Details

on_squish

Proc used to override the squashing behavior of the normal cockroach.

\ No newline at end of file diff --git a/mob/living/basic/construct.html b/mob/living/basic/construct.html new file mode 100644 index 0000000000000..59ae68de2df8c --- /dev/null +++ b/mob/living/basic/construct.html @@ -0,0 +1 @@ +/mob/living/basic/construct - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

construct

Vars

can_repairWhether this construct can repair other constructs or cult buildings. Gets the healing_touch component if so.
can_repair_selfWhether this construct can repair itself. Works independently of can_repair.
construct_masterThe construct's master
construct_spellsList of spells that this construct can cast
playstyle_stringFlavor text shown to players when they spawn as this construct
remains_by_themeThe different flavors of goop constructs can drop, depending on theme.
seekingWhether this construct is currently seeking nar nar
smashes_wallsCan this construct destroy walls?
themeTheme controls color. THEME_CULT is red THEME_WIZARD is purple and THEME_HOLY is blue

Var Details

can_repair

Whether this construct can repair other constructs or cult buildings. Gets the healing_touch component if so.

can_repair_self

Whether this construct can repair itself. Works independently of can_repair.

construct_master

The construct's master

construct_spells

List of spells that this construct can cast

playstyle_string

Flavor text shown to players when they spawn as this construct

remains_by_theme

The different flavors of goop constructs can drop, depending on theme.

seeking

Whether this construct is currently seeking nar nar

smashes_walls

Can this construct destroy walls?

theme

Theme controls color. THEME_CULT is red THEME_WIZARD is purple and THEME_HOLY is blue

\ No newline at end of file diff --git a/mob/living/basic/construct/artificer.html b/mob/living/basic/construct/artificer.html new file mode 100644 index 0000000000000..841ed6ea8255a --- /dev/null +++ b/mob/living/basic/construct/artificer.html @@ -0,0 +1 @@ +/mob/living/basic/construct/artificer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

artificer

Vars

health_hudThe health HUD applied to this mob.

Var Details

health_hud

The health HUD applied to this mob.

\ No newline at end of file diff --git a/mob/living/basic/construct/harvester.html b/mob/living/basic/construct/harvester.html new file mode 100644 index 0000000000000..aa3b281475d53 --- /dev/null +++ b/mob/living/basic/construct/harvester.html @@ -0,0 +1 @@ +/mob/living/basic/construct/harvester - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

harvester

Procs

resolve_unarmed_attackIf the attack is a limbless carbon, abort the attack, paralyze them, and get a special message from Nar'Sie.

Proc Details

resolve_unarmed_attack

If the attack is a limbless carbon, abort the attack, paralyze them, and get a special message from Nar'Sie.

\ No newline at end of file diff --git a/mob/living/basic/construct/proteon/hostile.html b/mob/living/basic/construct/proteon/hostile.html new file mode 100644 index 0000000000000..0bcd306978e61 --- /dev/null +++ b/mob/living/basic/construct/proteon/hostile.html @@ -0,0 +1 @@ +/mob/living/basic/construct/proteon/hostile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

hostile

Hostile NPC version

Procs

ai_retaliate_behaviourSet a timer to clear our retaliate list

Proc Details

ai_retaliate_behaviour

Set a timer to clear our retaliate list

\ No newline at end of file diff --git a/mob/living/basic/cortical_borer.html b/mob/living/basic/cortical_borer.html new file mode 100644 index 0000000000000..6e2554038cbd5 --- /dev/null +++ b/mob/living/basic/cortical_borer.html @@ -0,0 +1 @@ +/mob/living/basic/cortical_borer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cortical_borer

Vars

blood_chems_learnedhow many blood chems have been learned through the blood
body_focusesWhat focuses the borer has unlocked
brain_hostThe brain we are currently hooked to
changeling_restrictedborers are unable to enter changelings if true
chem_regen_per_levelChemical regen you gain per level
chem_storage_per_levelHow much more chemical storage you gain per level
chemical_evolutionthe amount of "evolution" points a borer has for chemicals. Start with one
chemical_regenhow fast chemicals are gained. Goes up only when inside a host
chemical_storagehow many chemical points the borer has
children_producedhow many children the borer has produced
deathgasp_oncewe dont want to spam the chat
genome_lockedIf the borer has evolved with a genome that locks out others of the same & higher tier
health_per_levelHow much health you gain per level
health_regenmultiplies the current health up to the max health
health_regen_per_levelHow much health regen you gain per level
host_harm_multiplierMultiplier for a borer's negative effects to their host
human_hostThe human we are hosted in
injection_cooldownCooldown between injecting chemicals
injection_rate_currentWhat is the current injection rate of the borer
injection_ratesAssoc list of chemical injection rates that the borer can have
injection_rates_unlockedWhich injection rates the borer has unlocked
known_abilitiesthe list of actions that the borer has
known_chemicalswhat chemicals borers know, starting with none
levelHow many times you've levelled up over all
maturity_agehow old the borer is, starting from zero. Goes up only when inside a host
max_chemical_storagehow many chemical points the borer can have. Can be upgraded
organic_restrictedborers can only enter biologicals if true
past_evolutionsEvolutions we've already learned
possible_focusesList of focus datums
potential_chemicalswhat chemicals the borer can learn
stat_evolutionthe amount of "evolution" points a borer has for stats
upgrade_flagsBitflag of upgrades and effects the borer has

Procs

check_for_target_bio_protectionChecks if the target's head is bio protected, returns true if this is the case
handle_environmentBase mob environment handler for body temperature, overridden to take into consideration being inside a host
leave_host_cleanThis is the version for correctly cleaning up the borer when qdeling/moving out. Don't call this directly
matureCalled on Life() for the borer to age a bit
on_brain_removedIf a person is debrained, the borer is removed with this
recalculate_statsUse to recalculate a borer's health and chemical stats when something retroactively affects them

Var Details

blood_chems_learned

how many blood chems have been learned through the blood

body_focuses

What focuses the borer has unlocked

brain_host

The brain we are currently hooked to

changeling_restricted

borers are unable to enter changelings if true

chem_regen_per_level

Chemical regen you gain per level

chem_storage_per_level

How much more chemical storage you gain per level

chemical_evolution

the amount of "evolution" points a borer has for chemicals. Start with one

chemical_regen

how fast chemicals are gained. Goes up only when inside a host

chemical_storage

how many chemical points the borer has

children_produced

how many children the borer has produced

deathgasp_once

we dont want to spam the chat

genome_locked

If the borer has evolved with a genome that locks out others of the same & higher tier

health_per_level

How much health you gain per level

health_regen

multiplies the current health up to the max health

health_regen_per_level

How much health regen you gain per level

host_harm_multiplier

Multiplier for a borer's negative effects to their host

human_host

The human we are hosted in

injection_cooldown

Cooldown between injecting chemicals

injection_rate_current

What is the current injection rate of the borer

injection_rates

Assoc list of chemical injection rates that the borer can have

injection_rates_unlocked

Which injection rates the borer has unlocked

known_abilities

the list of actions that the borer has

known_chemicals

what chemicals borers know, starting with none

level

How many times you've levelled up over all

maturity_age

how old the borer is, starting from zero. Goes up only when inside a host

max_chemical_storage

how many chemical points the borer can have. Can be upgraded

organic_restricted

borers can only enter biologicals if true

past_evolutions

Evolutions we've already learned

possible_focuses

List of focus datums

potential_chemicals

what chemicals the borer can learn

stat_evolution

the amount of "evolution" points a borer has for stats

upgrade_flags

Bitflag of upgrades and effects the borer has

Proc Details

check_for_target_bio_protection

Checks if the target's head is bio protected, returns true if this is the case

handle_environment

Base mob environment handler for body temperature, overridden to take into consideration being inside a host

leave_host_clean

This is the version for correctly cleaning up the borer when qdeling/moving out. Don't call this directly

mature

Called on Life() for the borer to age a bit

on_brain_removed

If a person is debrained, the borer is removed with this

recalculate_stats

Use to recalculate a borer's health and chemical stats when something retroactively affects them

\ No newline at end of file diff --git a/mob/living/basic/cow.html b/mob/living/basic/cow.html new file mode 100644 index 0000000000000..cd95f81eeac31 --- /dev/null +++ b/mob/living/basic/cow.html @@ -0,0 +1 @@ +/mob/living/basic/cow - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cow

Vars

food_typeswhat this cow munches on, and what can be used to tame it.
milked_reagentWhat kind of juice do we produce?
self_tame_messagesingular version for player cows
tame_messagemessage sent when tamed

Procs

setup_udderwrapper for the udder component addition so you can have uniquely uddered cow subtypes

Var Details

food_types

what this cow munches on, and what can be used to tame it.

milked_reagent

What kind of juice do we produce?

self_tame_message

singular version for player cows

tame_message

message sent when tamed

Proc Details

setup_udder

wrapper for the udder component addition so you can have uniquely uddered cow subtypes

\ No newline at end of file diff --git a/mob/living/basic/cow/wisdom.html b/mob/living/basic/cow/wisdom.html new file mode 100644 index 0000000000000..a21c6b6bd8229 --- /dev/null +++ b/mob/living/basic/cow/wisdom.html @@ -0,0 +1 @@ +/mob/living/basic/cow/wisdom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wisdom

Wisdom cow, gives XP to a random skill and speaks wisdoms

Vars

granted_experienceHow much experience this cow will grant.
granted_wisdomThe type of wisdom this cow will grant

Procs

attack_handGive intense wisdom to the attacker if they're being friendly about it

Var Details

granted_experience

How much experience this cow will grant.

granted_wisdom

The type of wisdom this cow will grant

Proc Details

attack_hand

Give intense wisdom to the attacker if they're being friendly about it

\ No newline at end of file diff --git a/mob/living/basic/crab.html b/mob/living/basic/crab.html new file mode 100644 index 0000000000000..4015258819817 --- /dev/null +++ b/mob/living/basic/crab.html @@ -0,0 +1 @@ +/mob/living/basic/crab - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crab

Vars

attack_verb_continuousIn the case 'melee_damage_upper' is somehow raised above 0

Var Details

attack_verb_continuous

In the case 'melee_damage_upper' is somehow raised above 0

\ No newline at end of file diff --git a/mob/living/basic/cybersun_ai_core.html b/mob/living/basic/cybersun_ai_core.html new file mode 100644 index 0000000000000..2772683ea7a9d --- /dev/null +++ b/mob/living/basic/cybersun_ai_core.html @@ -0,0 +1 @@ +/mob/living/basic/cybersun_ai_core - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cybersun_ai_core

Vars

donk_laserAbility which fires da big laser
lightning_strikeAbility which fires da lightning bolt
selfdestruct_queue_idthe queue id for the stuff that selfdestructs when we die

Var Details

donk_laser

Ability which fires da big laser

lightning_strike

Ability which fires da lightning bolt

selfdestruct_queue_id

the queue id for the stuff that selfdestructs when we die

\ No newline at end of file diff --git a/mob/living/basic/deer.html b/mob/living/basic/deer.html new file mode 100644 index 0000000000000..9ab86bdfc1eb1 --- /dev/null +++ b/mob/living/basic/deer.html @@ -0,0 +1 @@ +/mob/living/basic/deer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

deer

Vars

stationary_scary_thingsThings that will scare us into being stationary. Vehicles are scary to deers because they might have headlights.

Var Details

stationary_scary_things

Things that will scare us into being stationary. Vehicles are scary to deers because they might have headlights.

\ No newline at end of file diff --git a/mob/living/basic/demon.html b/mob/living/basic/demon.html new file mode 100644 index 0000000000000..4edf84f350348 --- /dev/null +++ b/mob/living/basic/demon.html @@ -0,0 +1 @@ +/mob/living/basic/demon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

demon

Player controlled mobs that rip and tear, typically summoned by wizards.

Vars

antag_typeTypepath of the antag datum to add to the demon when applicable

Procs

grant_lootProc that adds the necessary loot for the demon. Return an empty list if you don't want to add anything.
mind_initializeProc that just sets up the demon's antagonism status.

Var Details

antag_type

Typepath of the antag datum to add to the demon when applicable

Proc Details

grant_loot

Proc that adds the necessary loot for the demon. Return an empty list if you don't want to add anything.

mind_initialize

Proc that just sets up the demon's antagonism status.

\ No newline at end of file diff --git a/mob/living/basic/demon/slaughter.html b/mob/living/basic/demon/slaughter.html new file mode 100644 index 0000000000000..7c77bc08e7378 --- /dev/null +++ b/mob/living/basic/demon/slaughter.html @@ -0,0 +1 @@ +/mob/living/basic/demon/slaughter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

slaughter

The famous blood-crawling slaughter demons of wizardry fame.

Vars

crawl_typeWhich blood crawl do we give to the demon
current_hitstreakHow many times we have hit humanoid targets since we last bloodcrawled, scaling wounding power
slam_cooldownCooldown tracker for the slam
slam_cooldown_timeHow long it takes for the alt-click slam attack to come off cooldown
wound_bonus_hitstreak_maxHow much our wound_bonus hitstreak bonus caps at (peak demonry)
wound_bonus_per_hitHow much both our wound_bonus and bare_wound_bonus go up per hitstreak hit

Procs

bodyslamPerforms the classic slaughter demon bodyslam on the attack_target. Yeets them a screen away.
on_attackProc that we execute on attacking someone to keep track of our hitstreaks and wound bonuses. Also handles triggering the bodyslam on attacks.
on_crawlWhenever we enter or exit blood crawl, reset our bonus and hitstreaks.

Var Details

crawl_type

Which blood crawl do we give to the demon

current_hitstreak

How many times we have hit humanoid targets since we last bloodcrawled, scaling wounding power

slam_cooldown

Cooldown tracker for the slam

slam_cooldown_time

How long it takes for the alt-click slam attack to come off cooldown

wound_bonus_hitstreak_max

How much our wound_bonus hitstreak bonus caps at (peak demonry)

wound_bonus_per_hit

How much both our wound_bonus and bare_wound_bonus go up per hitstreak hit

Proc Details

bodyslam

Performs the classic slaughter demon bodyslam on the attack_target. Yeets them a screen away.

on_attack

Proc that we execute on attacking someone to keep track of our hitstreaks and wound bonuses. Also handles triggering the bodyslam on attacks.

on_crawl

Whenever we enter or exit blood crawl, reset our bonus and hitstreaks.

\ No newline at end of file diff --git a/mob/living/basic/demon/slaughter/laughter.html b/mob/living/basic/demon/slaughter/laughter.html new file mode 100644 index 0000000000000..6c0df78f7d638 --- /dev/null +++ b/mob/living/basic/demon/slaughter/laughter.html @@ -0,0 +1 @@ +/mob/living/basic/demon/slaughter/laughter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

laughter

The laughter demon! It's everyone's best friend! It just wants to hug them so much, it wants to hug everyone at once!

Procs

on_deathWe do our own special thing on death, which is to spawn a kitten.

Proc Details

on_death

We do our own special thing on death, which is to spawn a kitten.

\ No newline at end of file diff --git a/mob/living/basic/drone.html b/mob/living/basic/drone.html new file mode 100644 index 0000000000000..4e116e9c5d020 --- /dev/null +++ b/mob/living/basic/drone.html @@ -0,0 +1,54 @@ +/mob/living/basic/drone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

drone

Maintenance Drone

+

Small player controlled fixer-upper

+

The maintenace drone is a ghost role with the objective to repair and +maintain the station.

+

Featuring two dexterous hands, and a built in toolbox stocked with +tools.

+

They have laws to prevent them from doing anything else.

Vars

can_unhackWhether this drone can be un-hacked. Used for subtypes that cannot be meaningfully "fixed".
colourStored drone color, restored when unhacked
default_headwearDefault /mob/living/basic/drone/var/head item
drone_area_blacklist_flatblacklisted drone areas, direct
drone_area_blacklist_recursiveblacklisted drone areas, recursive/includes descendants
drone_item_whitelist_flatwhitelisted drone items, direct
drone_item_whitelist_recursivewhitelisted drone items, recursive/includes descendants
drone_machinery_blacklist_compiledblacklisted drone machine typecache, compiled from [var/drone_machinery_blacklist_flat], [var/list/drone_machinery_blacklist_recursive], negated by their whitelist counterparts
drone_machinery_blacklist_flatblacklisted drone machines, direct
drone_machinery_blacklist_recursiveblacklisted drone machines, recursive/includes descendants
drone_machinery_whitelist_flatcancels out blacklisted machines, direct
drone_machinery_whitelist_recursivecancels out blacklisted machines, recursive/includes descendants
flavortextFlavor text announced to drones on [/mob/proc/Login]
hackedHacked state, see /mob/living/basic/drone/proc/update_drone_hack
headHeadwear slot
heavy_emp_damageAmount of damage sustained if hit by a heavy EMP pulse
internal_storageInternal storage slot. Fits any item
lawsDrone laws announced on spawn
listenerAlarm listener datum, handes caring about alarm events and such
pickedTRUE if we have picked our visual appearance, FALSE otherwise (default)
shy_machine_whitelistmachines whitelisted from being shy with
visualAppearanceicon_state of drone from icons/mobs/drone.dmi

Procs

alert_dronesWraps /proc/_alert_drones with defaults
check_lawsEchoes drone laws to the user
check_menucheck_menu: Checks if we are allowed to interact with a radial menu
drone_chatWraps /mob/living/basic/drone/proc/alert_drones as a Drone Chat
drone_pingCreates an alert to drones in the same network
get_armor_effectivenessReturns a multiplier for any head armor you wear as a drone.
liberateMakes the drone into a Free Drone, who have no real laws and can do whatever they like. +Only currently used for players wabbajacked into drones.
pickVisualAppearancePrompt for user to pick /mob/living/basic/drone/var/visualAppearance
screwdriver_actScrewdrivering repairs the drone to full hp, if it isn't dead.
try_reactivateCalled when a drone attempts to reactivate a dead drone
update_drone_hackHack or unhack a drone
update_drone_icon_hackedChanges the icon state to a hacked version
wrench_actWrenching un-hacks hacked drones.

Var Details

can_unhack

Whether this drone can be un-hacked. Used for subtypes that cannot be meaningfully "fixed".

colour

Stored drone color, restored when unhacked

default_headwear

Default /mob/living/basic/drone/var/head item

drone_area_blacklist_flat

blacklisted drone areas, direct

drone_area_blacklist_recursive

blacklisted drone areas, recursive/includes descendants

drone_item_whitelist_flat

whitelisted drone items, direct

drone_item_whitelist_recursive

whitelisted drone items, recursive/includes descendants

drone_machinery_blacklist_compiled

blacklisted drone machine typecache, compiled from [var/drone_machinery_blacklist_flat], [var/list/drone_machinery_blacklist_recursive], negated by their whitelist counterparts

drone_machinery_blacklist_flat

blacklisted drone machines, direct

drone_machinery_blacklist_recursive

blacklisted drone machines, recursive/includes descendants

drone_machinery_whitelist_flat

cancels out blacklisted machines, direct

drone_machinery_whitelist_recursive

cancels out blacklisted machines, recursive/includes descendants

flavortext

Flavor text announced to drones on [/mob/proc/Login]

hacked

Hacked state, see /mob/living/basic/drone/proc/update_drone_hack

head

Headwear slot

heavy_emp_damage

Amount of damage sustained if hit by a heavy EMP pulse

internal_storage

Internal storage slot. Fits any item

laws

Drone laws announced on spawn

listener

Alarm listener datum, handes caring about alarm events and such

picked

TRUE if we have picked our visual appearance, FALSE otherwise (default)

shy_machine_whitelist

machines whitelisted from being shy with

visualAppearance

icon_state of drone from icons/mobs/drone.dmi

+

Possible states are:

+

Proc Details

alert_drones

Wraps /proc/_alert_drones with defaults

+
    +
  • source - src
  • +
  • faction_check_atom - src
  • +
  • dead_can_hear - TRUE
  • +

check_laws

Echoes drone laws to the user

+

See /mob/living/basic/drone/var/laws

check_menu

check_menu: Checks if we are allowed to interact with a radial menu

drone_chat

Wraps /mob/living/basic/drone/proc/alert_drones as a Drone Chat

+

Shares the same radio code with binary

drone_ping

Creates an alert to drones in the same network

+

Prompts user for alert level of:

+
    +
  • Low
  • +
  • Medium
  • +
  • High
  • +
  • Critical
  • +
+

Attaches area name to message

get_armor_effectiveness

Returns a multiplier for any head armor you wear as a drone.

liberate

Makes the drone into a Free Drone, who have no real laws and can do whatever they like. +Only currently used for players wabbajacked into drones.

pickVisualAppearance

Prompt for user to pick /mob/living/basic/drone/var/visualAppearance

+

Does nothing if there is no user

+

Called on [/mob/proc/Login]

screwdriver_act

Screwdrivering repairs the drone to full hp, if it isn't dead.

try_reactivate

Called when a drone attempts to reactivate a dead drone

+

If the owner is still ghosted, will notify them. +If the owner cannot be found, fails with an error message.

+

Arguments:

+
    +
  • user - The /mob/living attempting to reactivate the drone
  • +

update_drone_hack

Hack or unhack a drone

+

This changes the drone's laws to destroy the station or resets them +to normal.

+

Some debuffs are applied like slowing the drone down and disabling +vent crawling

+

Arguments

+
    +
  • hack - Boolean if the drone is being hacked or unhacked
  • +

update_drone_icon_hacked

Changes the icon state to a hacked version

+

See also

+

wrench_act

Wrenching un-hacks hacked drones.

\ No newline at end of file diff --git a/mob/living/basic/drone/syndrone.html b/mob/living/basic/drone/syndrone.html new file mode 100644 index 0000000000000..50905094b31d9 --- /dev/null +++ b/mob/living/basic/drone/syndrone.html @@ -0,0 +1,2 @@ +/mob/living/basic/drone/syndrone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

syndrone

A Syndicate drone, tasked to cause chaos on the station. +Has a lot more health and its own uplink with 10 TC.

Vars

telecrystal_countThe number of telecrystals to put in the drone's uplink

Var Details

telecrystal_count

The number of telecrystals to put in the drone's uplink

\ No newline at end of file diff --git a/mob/living/basic/eyeball.html b/mob/living/basic/eyeball.html new file mode 100644 index 0000000000000..ba93a2422483e --- /dev/null +++ b/mob/living/basic/eyeball.html @@ -0,0 +1 @@ +/mob/living/basic/eyeball - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

eyeball

Vars

cryingis this eyeball crying?
eye_healingcooldown to heal eyes
healing_factorhow much we will heal eyes
on_hit_overlaythe crying overlay we add when is hit

Var Details

crying

is this eyeball crying?

eye_healing

cooldown to heal eyes

healing_factor

how much we will heal eyes

on_hit_overlay

the crying overlay we add when is hit

\ No newline at end of file diff --git a/mob/living/basic/faithless.html b/mob/living/basic/faithless.html new file mode 100644 index 0000000000000..318bab5e47418 --- /dev/null +++ b/mob/living/basic/faithless.html @@ -0,0 +1 @@ +/mob/living/basic/faithless - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

faithless

Vars

paralyze_chanceWhat are the odds we paralyze a target on attack
paralyze_durationHow long do we paralyze a target for if we attack them

Var Details

paralyze_chance

What are the odds we paralyze a target on attack

paralyze_duration

How long do we paralyze a target for if we attack them

\ No newline at end of file diff --git a/mob/living/basic/frog.html b/mob/living/basic/frog.html new file mode 100644 index 0000000000000..d6d244503ca93 --- /dev/null +++ b/mob/living/basic/frog.html @@ -0,0 +1 @@ +/mob/living/basic/frog - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

frog

Vars

poison_per_biteHow much of a reagent the mob injects on attack
poison_typeWhat reagent the mob injects targets with

Var Details

poison_per_bite

How much of a reagent the mob injects on attack

poison_type

What reagent the mob injects targets with

\ No newline at end of file diff --git a/mob/living/basic/frog/frog_suicide.html b/mob/living/basic/frog/frog_suicide.html new file mode 100644 index 0000000000000..d9d8db5d46738 --- /dev/null +++ b/mob/living/basic/frog/frog_suicide.html @@ -0,0 +1 @@ +/mob/living/basic/frog/frog_suicide - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

frog_suicide

Vars

existence_periodhow long do we exist for

Var Details

existence_period

how long do we exist for

\ No newline at end of file diff --git a/mob/living/basic/garden_gnome.html b/mob/living/basic/garden_gnome.html new file mode 100644 index 0000000000000..0d30b6d22bb25 --- /dev/null +++ b/mob/living/basic/garden_gnome.html @@ -0,0 +1 @@ +/mob/living/basic/garden_gnome - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

garden_gnome

Vars

chosen_hat_colourThe chosen hat colour
gnome_beard_coloursRealistically weighted list of usual gnome beard colours
gnome_body_coloursRealistically weighted list of usual gnome body colours
gnome_hat_coloursRealistically weighted list of usual gnome hat colours
gnome_pants_coloursRealistically weighted list of usual gnome pants colours
resistance_when_sinkedThe damage resistence when sinked into the ground

Var Details

chosen_hat_colour

The chosen hat colour

gnome_beard_colours

Realistically weighted list of usual gnome beard colours

gnome_body_colours

Realistically weighted list of usual gnome body colours

gnome_hat_colours

Realistically weighted list of usual gnome hat colours

gnome_pants_colours

Realistically weighted list of usual gnome pants colours

resistance_when_sinked

The damage resistence when sinked into the ground

\ No newline at end of file diff --git a/mob/living/basic/ghost.html b/mob/living/basic/ghost.html new file mode 100644 index 0000000000000..56ed402997b04 --- /dev/null +++ b/mob/living/basic/ghost.html @@ -0,0 +1,6 @@ +/mob/living/basic/ghost - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ghost

Vars

ghost_facial_hairThe resulting facial hair to be displayed on the ghost
ghost_facial_hair_colorWhat color will this ghost's facial hair be
ghost_facial_hairstyleWhat facial hairstyle will this ghost have
ghost_hairThe resulting hair to be displayed on the ghost
ghost_hair_colorWhat color will this ghost's hair be
ghost_hairstyleWhat hairstyle will this ghost have
random_identityWill this ghost spawn with a randomly generated name and hair?

Procs

give_identityGenerates hair, facial hair, and a random name for ghosts if one is needed.

Var Details

ghost_facial_hair

The resulting facial hair to be displayed on the ghost

ghost_facial_hair_color

What color will this ghost's facial hair be

ghost_facial_hairstyle

What facial hairstyle will this ghost have

ghost_hair

The resulting hair to be displayed on the ghost

ghost_hair_color

What color will this ghost's hair be

ghost_hairstyle

What hairstyle will this ghost have

random_identity

Will this ghost spawn with a randomly generated name and hair?

Proc Details

give_identity

Generates hair, facial hair, and a random name for ghosts if one is needed.

+

Handles generating the mutable_appearance objects for a ghost's hair/facial hair, +as well as assigning a random name if needed. If random_identity is false, it will only create and display +the hair as defined by ghost_hairstyle/ghost_facial_hairstyle variables, without changing the name. +If random_identity is true, hair/facial/name will all be randomly generated and displayed. +When creating a ghost with a custom identity (for away missions, ruins, etc.) be sure random_identity is false.

\ No newline at end of file diff --git a/mob/living/basic/goat.html b/mob/living/basic/goat.html new file mode 100644 index 0000000000000..ebc91689448ea --- /dev/null +++ b/mob/living/basic/goat.html @@ -0,0 +1,3 @@ +/mob/living/basic/goat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

goat

The Greatest (animal) Of All Time. Cud chewing, shin-kicking, kitchen-dwelling nuisance.

Vars

ediblesList of stuff (flora) that we want to eat
gleam_cooldownTime until we can next gleam evilly
gleam_delayHow often will we develop an evil gleam in our eye?

Procs

add_udderWhen invoked, adds an udder when applicable. Male goats do not have udders.
eat_plantProc that handles dealing with the various types of plants we might eat. Assumes that a valid list of type(s) will be passed in.
on_attackedIf we are being attacked by someone, give a nice fluff message. But only once in a while.
on_moveHandles automagically eating a plant when we move into a turf that has one.
on_pre_attackCalled when we attack something in order to piece together the intent of the AI/user and provide desired behavior. The element might be okay here but I'd rather the fluff. +Goats are really good at beating up plants by taking bites out of them, but we use the default attack for everything else

Var Details

edibles

List of stuff (flora) that we want to eat

gleam_cooldown

Time until we can next gleam evilly

gleam_delay

How often will we develop an evil gleam in our eye?

Proc Details

add_udder

When invoked, adds an udder when applicable. Male goats do not have udders.

eat_plant

Proc that handles dealing with the various types of plants we might eat. Assumes that a valid list of type(s) will be passed in.

on_attacked

If we are being attacked by someone, give a nice fluff message. But only once in a while.

on_move

Handles automagically eating a plant when we move into a turf that has one.

on_pre_attack

Called when we attack something in order to piece together the intent of the AI/user and provide desired behavior. The element might be okay here but I'd rather the fluff. +Goats are really good at beating up plants by taking bites out of them, but we use the default attack for everything else

\ No newline at end of file diff --git a/mob/living/basic/gorilla.html b/mob/living/basic/gorilla.html new file mode 100644 index 0000000000000..9b208a880a8bf --- /dev/null +++ b/mob/living/basic/gorilla.html @@ -0,0 +1,2 @@ +/mob/living/basic/gorilla - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gorilla

Like a bigger monkey +They make a lot of noise and punch limbs off unconscious folks

Vars

gorilla_foodTypes of things we want to find and eat
oogasA counter for when we can scream again
paralyze_chanceHow likely our meaty fist is to stun someone

Procs

ooga_oogaAssert your dominance with audio cues

Var Details

gorilla_food

Types of things we want to find and eat

oogas

A counter for when we can scream again

paralyze_chance

How likely our meaty fist is to stun someone

Proc Details

ooga_ooga

Assert your dominance with audio cues

\ No newline at end of file diff --git a/mob/living/basic/guardian.html b/mob/living/basic/guardian.html new file mode 100644 index 0000000000000..8e1270ede0297 --- /dev/null +++ b/mob/living/basic/guardian.html @@ -0,0 +1,2 @@ +/mob/living/basic/guardian - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

guardian

A mob which acts as a guardian angel to another mob, sharing health but protecting them using special powers. +Usually either obtained in magical form by a wizard, or technological form by a traitor. Sometimes found by miners.

Vars

control_actionsList of actions we give to our summoner
creator_descDescription used by the guardian creator.
creator_iconIcon used by the guardian creator.
creator_nameName used by the guardian creator.
guardian_colourThe guardian's colour, used for their sprite, chat, and some effects.
guardian_typeWhat type of guardian are we?
lockedAre we forced to not be able to manifest/recall?
manifest_cooldownCooldown between manifests/recalls.
overlayColoured overlay we apply
playstyle_stringA string explaining to the guardian what they can do.
rangeHow far from the summoner the guardian can be.
resetting_cooldownCooldown between the summoner resetting the guardian's client.
summonerThe summoner of the guardian, we share health with them and can't move too far away (usually)
themeHow are we themed?
toggle_button_typeWhich toggle button the HUD uses.

Procs

check_typePrints what type of guardian we are and what we can do.
communicateSpeak with our boss at a distance
cut_summonerRemove all references to our summoner
generate_random_namePicks a random name as a suggestion
guardian_recolourPick a new colour for our guardian
is_deployedReturns true if you are out and about
leash_toConnects these two mobs by a leash
manifestPop out into the realm of the living.
manifest_effectsDo something when we appear.
on_harmCalled when our health changes, inform our owner of why they are getting hurt (if they are)
on_summoner_deathCalled when our owner dies. We fucked up, so now neither of us get to exist.
on_summoner_deletionWhen our owner is deleted, we go too.
on_summoner_shapeshiftedSignal proc for COMSIG_LIVING_SHAPESHIFTED, when our summoner is shapeshifted we should change to the new mob
on_summoner_unshapeshiftedSignal proc for COMSIG_LIVING_UNSHAPESHIFTED, when our summoner unshapeshifts go back to that mob
on_summoner_wabbajackedSignal proc for COMSIG_LIVING_ON_WABBAJACKED, when our summoner is wabbajacked we should be alerted.
recallGo and hide inside your boss.
recall_effectsDo something when we vanish.
set_guardian_colourApply a new colour to our guardian
set_summonerLink up with a summoner mob.
shares_summonerReturns true if this holoparasite has the same summoner as the passed holoparasite.
toggle_lightTurn an internal light on or off.
toggle_modesSwap to a different mode... if we have one
unleashRemoves the leash from this guardian

Var Details

control_actions

List of actions we give to our summoner

creator_desc

Description used by the guardian creator.

creator_icon

Icon used by the guardian creator.

creator_name

Name used by the guardian creator.

guardian_colour

The guardian's colour, used for their sprite, chat, and some effects.

guardian_type

What type of guardian are we?

locked

Are we forced to not be able to manifest/recall?

manifest_cooldown

Cooldown between manifests/recalls.

overlay

Coloured overlay we apply

playstyle_string

A string explaining to the guardian what they can do.

range

How far from the summoner the guardian can be.

resetting_cooldown

Cooldown between the summoner resetting the guardian's client.

summoner

The summoner of the guardian, we share health with them and can't move too far away (usually)

theme

How are we themed?

toggle_button_type

Which toggle button the HUD uses.

Proc Details

check_type

Prints what type of guardian we are and what we can do.

communicate

Speak with our boss at a distance

cut_summoner

Remove all references to our summoner

generate_random_name

Picks a random name as a suggestion

guardian_recolour

Pick a new colour for our guardian

is_deployed

Returns true if you are out and about

leash_to

Connects these two mobs by a leash

manifest

Pop out into the realm of the living.

manifest_effects

Do something when we appear.

on_harm

Called when our health changes, inform our owner of why they are getting hurt (if they are)

on_summoner_death

Called when our owner dies. We fucked up, so now neither of us get to exist.

on_summoner_deletion

When our owner is deleted, we go too.

on_summoner_shapeshifted

Signal proc for COMSIG_LIVING_SHAPESHIFTED, when our summoner is shapeshifted we should change to the new mob

on_summoner_unshapeshifted

Signal proc for COMSIG_LIVING_UNSHAPESHIFTED, when our summoner unshapeshifts go back to that mob

on_summoner_wabbajacked

Signal proc for COMSIG_LIVING_ON_WABBAJACKED, when our summoner is wabbajacked we should be alerted.

recall

Go and hide inside your boss.

recall_effects

Do something when we vanish.

set_guardian_colour

Apply a new colour to our guardian

set_summoner

Link up with a summoner mob.

shares_summoner

Returns true if this holoparasite has the same summoner as the passed holoparasite.

toggle_light

Turn an internal light on or off.

toggle_modes

Swap to a different mode... if we have one

unleash

Removes the leash from this guardian

\ No newline at end of file diff --git a/mob/living/basic/guardian/assassin.html b/mob/living/basic/guardian/assassin.html new file mode 100644 index 0000000000000..d81ed07eb9a27 --- /dev/null +++ b/mob/living/basic/guardian/assassin.html @@ -0,0 +1 @@ +/mob/living/basic/guardian/assassin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

assassin

Can enter stealth mode to become invisible and deal bonus damage on their next attack, an ambush predator.

Vars

stealth_cooldownCooldown for the stealth toggle.
stealth_cooldown_timeHow long to put stealth on cooldown if we are forced out?

Procs

on_forced_unstealthCalled when we are removed from stealth involuntarily
show_can_stealthDisplays an alert letting us know that we can enter stealth

Var Details

stealth_cooldown

Cooldown for the stealth toggle.

stealth_cooldown_time

How long to put stealth on cooldown if we are forced out?

Proc Details

on_forced_unstealth

Called when we are removed from stealth involuntarily

show_can_stealth

Displays an alert letting us know that we can enter stealth

\ No newline at end of file diff --git a/mob/living/basic/guardian/dextrous.html b/mob/living/basic/guardian/dextrous.html new file mode 100644 index 0000000000000..6002777dea830 --- /dev/null +++ b/mob/living/basic/guardian/dextrous.html @@ -0,0 +1 @@ +/mob/living/basic/guardian/dextrous - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dextrous

Dextrous guardians have some of the most powerful abilities of all: hands and pockets

Vars

internal_storageAn internal pocket we can put stuff in

Var Details

internal_storage

An internal pocket we can put stuff in

\ No newline at end of file diff --git a/mob/living/basic/guardian/explosive.html b/mob/living/basic/guardian/explosive.html new file mode 100644 index 0000000000000..b8665480f3682 --- /dev/null +++ b/mob/living/basic/guardian/explosive.html @@ -0,0 +1 @@ +/mob/living/basic/guardian/explosive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

explosive

A durable guardian which can convert objects into hidden explosives.

Vars

bombAbility which plants bombs

Var Details

bomb

Ability which plants bombs

\ No newline at end of file diff --git a/mob/living/basic/guardian/gaseous.html b/mob/living/basic/guardian/gaseous.html new file mode 100644 index 0000000000000..e34d77a2766eb --- /dev/null +++ b/mob/living/basic/guardian/gaseous.html @@ -0,0 +1 @@ +/mob/living/basic/guardian/gaseous - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gaseous

Not particularly resistant, but versatile due to the selection of gases it can generate.

Vars

gasAbility we use to select gases
temp_stabilization_rateRate of temperature stabilization per second.

Procs

on_summoner_ignitedPrevent our summoner from being on fire
on_summoner_lifeMaintain our summoner at a stable body temperature
pre_pressure_movedWe stand firm in the face of gas

Var Details

gas

Ability we use to select gases

temp_stabilization_rate

Rate of temperature stabilization per second.

Proc Details

on_summoner_ignited

Prevent our summoner from being on fire

on_summoner_life

Maintain our summoner at a stable body temperature

pre_pressure_moved

We stand firm in the face of gas

\ No newline at end of file diff --git a/mob/living/basic/guardian/gravitokinetic.html b/mob/living/basic/guardian/gravitokinetic.html new file mode 100644 index 0000000000000..e517040d982d8 --- /dev/null +++ b/mob/living/basic/guardian/gravitokinetic.html @@ -0,0 +1 @@ +/mob/living/basic/guardian/gravitokinetic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gravitokinetic

Somewhat durable guardian who can increase gravity in an area

Vars

gravity_power_rangeDistance at which our ability works
gravity_targetsTargets we have applied our gravity effects on.
punch_gravityGravity added on punches.
turf_gravityGravity added to turfs.

Procs

add_gravityMake something heavier
clear_gravityRemove our forced gravity from all targets
on_movedWhen we or something we are inside move check if we are now too far away
on_target_movedWhen something we put gravity on moves check if it's too far away
remove_gravityStop making something heavier
slam_turfApply forced gravity to the floor

Var Details

gravity_power_range

Distance at which our ability works

gravity_targets

Targets we have applied our gravity effects on.

punch_gravity

Gravity added on punches.

turf_gravity

Gravity added to turfs.

Proc Details

add_gravity

Make something heavier

clear_gravity

Remove our forced gravity from all targets

on_moved

When we or something we are inside move check if we are now too far away

on_target_moved

When something we put gravity on moves check if it's too far away

remove_gravity

Stop making something heavier

slam_turf

Apply forced gravity to the floor

\ No newline at end of file diff --git a/mob/living/basic/guardian/lightning.html b/mob/living/basic/guardian/lightning.html new file mode 100644 index 0000000000000..88c7685fe9b80 --- /dev/null +++ b/mob/living/basic/guardian/lightning.html @@ -0,0 +1 @@ +/mob/living/basic/guardian/lightning - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lightning

A reasonably durable guardian linked to you by a chain of lightning, zapping people who get between you

Vars

enemy_chainsAssociative list of chained enemies to their chains
summoner_chainLink between us and our summoner

Procs

chain_toCreate a damaging lightning chain between ourselves and a target
clear_chainsRemove all of our chains
on_chain_deletedHandle losing our reference when we delete a chain
on_chain_zapCalled every few zaps by a chain
validate_targetConfirm whether something is valid to zap with lightning

Var Details

enemy_chains

Associative list of chained enemies to their chains

summoner_chain

Link between us and our summoner

Proc Details

chain_to

Create a damaging lightning chain between ourselves and a target

clear_chains

Remove all of our chains

on_chain_deleted

Handle losing our reference when we delete a chain

on_chain_zap

Called every few zaps by a chain

validate_target

Confirm whether something is valid to zap with lightning

\ No newline at end of file diff --git a/mob/living/basic/guardian/protector.html b/mob/living/basic/guardian/protector.html new file mode 100644 index 0000000000000..ff2146657f9fb --- /dev/null +++ b/mob/living/basic/guardian/protector.html @@ -0,0 +1 @@ +/mob/living/basic/guardian/protector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

protector

Very durable, and reverses the usual leash dynamic. Can slow down to become extremely durable.

Vars

shieldAction which toggles our shield

Var Details

shield

Action which toggles our shield

\ No newline at end of file diff --git a/mob/living/basic/guardian/standard.html b/mob/living/basic/guardian/standard.html new file mode 100644 index 0000000000000..bf64d2e6e0ae5 --- /dev/null +++ b/mob/living/basic/guardian/standard.html @@ -0,0 +1 @@ +/mob/living/basic/guardian/standard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

standard

Plain, but durable and strong. Can destroy walls.

Vars

battlecryThe text we shout when attacking.

Procs

do_attack_soundEcho our punching sounds

Var Details

battlecry

The text we shout when attacking.

Proc Details

do_attack_sound

Echo our punching sounds

\ No newline at end of file diff --git a/mob/living/basic/guardian/support.html b/mob/living/basic/guardian/support.html new file mode 100644 index 0000000000000..ce294ddce0a05 --- /dev/null +++ b/mob/living/basic/guardian/support.html @@ -0,0 +1 @@ +/mob/living/basic/guardian/support - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

support

Quick-moving mob which can teleport things to a beacon and heal its allies

Vars

healing_amountAmount of each damage type to heal per hit

Procs

after_healedCalled after we heal someone, show some visuals

Var Details

healing_amount

Amount of each damage type to heal per hit

Proc Details

after_healed

Called after we heal someone, show some visuals

\ No newline at end of file diff --git a/mob/living/basic/headslug.html b/mob/living/basic/headslug.html new file mode 100644 index 0000000000000..89ca0feebcffe --- /dev/null +++ b/mob/living/basic/headslug.html @@ -0,0 +1,4 @@ +/mob/living/basic/headslug - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

headslug

Headslugs

+

Player-controlled slugs that arise from a changeling ability in order to live on in an extremely limited capacity until they can find a suitable corpse to inhabit.

Vars

egg_lainSet to true once we've implanted our egg

Procs

check_and_implantSignal Handler proc that runs on every attack and checks to see if this is a valid target for implantation. If so, it implants the egg and starts the countdown to death.
infectSimply infects the target corpse with our changeling eggs. This shouldn't fail, because all checks should have been done in check_and_implant() +Just to be super-duper safe to the player, we do return TRUE if all goes well and read that value in check_and_implant() to be nice to the player.

Var Details

egg_lain

Set to true once we've implanted our egg

Proc Details

check_and_implant

Signal Handler proc that runs on every attack and checks to see if this is a valid target for implantation. If so, it implants the egg and starts the countdown to death.

infect

Simply infects the target corpse with our changeling eggs. This shouldn't fail, because all checks should have been done in check_and_implant() +Just to be super-duper safe to the player, we do return TRUE if all goes well and read that value in check_and_implant() to be nice to the player.

\ No newline at end of file diff --git a/mob/living/basic/heretic_summon/armsy.html b/mob/living/basic/heretic_summon/armsy.html new file mode 100644 index 0000000000000..aaf0e88334adf --- /dev/null +++ b/mob/living/basic/heretic_summon/armsy.html @@ -0,0 +1 @@ +/mob/living/basic/heretic_summon/armsy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

armsy

The "Terror of the Night" / Armsy, a large worm made of multiple bodyparts that occupies multiple tiles

Vars

backPrevious segment in the chain, we hold onto this purely to keep track of how long we currently are and to attach new growth to the back
current_stacksCurrently eaten arms
stacks_to_growHow many arms do we have to eat to expand?

Procs

new_segmentGrows a new segment behind the passed mob
register_behindRecord that we got another guy on our ass
tail_deletedWhen our tail is gone stop holding a reference to it

Var Details

back

Previous segment in the chain, we hold onto this purely to keep track of how long we currently are and to attach new growth to the back

current_stacks

Currently eaten arms

stacks_to_grow

How many arms do we have to eat to expand?

Proc Details

new_segment

Grows a new segment behind the passed mob

register_behind

Record that we got another guy on our ass

tail_deleted

When our tail is gone stop holding a reference to it

\ No newline at end of file diff --git a/mob/living/basic/heretic_summon/maid_in_the_mirror.html b/mob/living/basic/heretic_summon/maid_in_the_mirror.html new file mode 100644 index 0000000000000..a2abba0de4f96 --- /dev/null +++ b/mob/living/basic/heretic_summon/maid_in_the_mirror.html @@ -0,0 +1 @@ +/mob/living/basic/heretic_summon/maid_in_the_mirror - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

maid_in_the_mirror

Scout and assassin who can appear and disappear from glass surfaces. Damaged by being examined.

Vars

harmed_by_examineWhether we take damage when someone looks at us
recent_examine_damage_cooldownHow often being examined by a specific mob can hurt us
recent_examiner_refsA list of REFs to people who recently examined us

Var Details

harmed_by_examine

Whether we take damage when someone looks at us

recent_examine_damage_cooldown

How often being examined by a specific mob can hurt us

recent_examiner_refs

A list of REFs to people who recently examined us

\ No newline at end of file diff --git a/mob/living/basic/heretic_summon/raw_prophet.html b/mob/living/basic/heretic_summon/raw_prophet.html new file mode 100644 index 0000000000000..33f53207abdb5 --- /dev/null +++ b/mob/living/basic/heretic_summon/raw_prophet.html @@ -0,0 +1,3 @@ +/mob/living/basic/heretic_summon/raw_prophet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

raw_prophet

A funny little rolling guy who is great at scouting. +It can see through walls, jaunt, and create a psychic network to report its findings. +It can blind people to make a getaway, but also get stronger if it attacks the same target consecutively.

Vars

innate_abilitiesList of innate abilities we have to add.

Procs

get_innate_abilitiesReturns a list of abilities that we should add.

Var Details

innate_abilities

List of innate abilities we have to add.

Proc Details

get_innate_abilities

Returns a list of abilities that we should add.

\ No newline at end of file diff --git a/mob/living/basic/heretic_summon/stalker.html b/mob/living/basic/heretic_summon/stalker.html new file mode 100644 index 0000000000000..9d9b8e18bfbac --- /dev/null +++ b/mob/living/basic/heretic_summon/stalker.html @@ -0,0 +1 @@ +/mob/living/basic/heretic_summon/stalker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stalker

Durable ambush mob with an EMP ability

Vars

actions_to_addActions to grant on spawn

Var Details

actions_to_add

Actions to grant on spawn

\ No newline at end of file diff --git a/mob/living/basic/hivebot.html b/mob/living/basic/hivebot.html new file mode 100644 index 0000000000000..8ccb7eb5f4245 --- /dev/null +++ b/mob/living/basic/hivebot.html @@ -0,0 +1 @@ +/mob/living/basic/hivebot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hivebot

Vars

ranged_attack_cooldownHow often can we shoot?
ranged_attackerdoes this type do range attacks?

Var Details

ranged_attack_cooldown

How often can we shoot?

ranged_attacker

does this type do range attacks?

\ No newline at end of file diff --git a/mob/living/basic/hivebot/mechanic.html b/mob/living/basic/hivebot/mechanic.html new file mode 100644 index 0000000000000..129ad44db78aa --- /dev/null +++ b/mob/living/basic/hivebot/mechanic.html @@ -0,0 +1 @@ +/mob/living/basic/hivebot/mechanic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mechanic

Vars

repair_cooldowncooldown to repair machines

Var Details

repair_cooldown

cooldown to repair machines

\ No newline at end of file diff --git a/mob/living/basic/leaper.html b/mob/living/basic/leaper.html new file mode 100644 index 0000000000000..a68cbd0e184df --- /dev/null +++ b/mob/living/basic/leaper.html @@ -0,0 +1 @@ +/mob/living/basic/leaper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

leaper

Vars

dead_overlayappearance when we dead
living_overlayappearance when we are alive
pet_commandslist of pet commands we can issue

Var Details

dead_overlay

appearance when we dead

living_overlay

appearance when we are alive

pet_commands

list of pet commands we can issue

\ No newline at end of file diff --git a/mob/living/basic/legion_brood.html b/mob/living/basic/legion_brood.html new file mode 100644 index 0000000000000..8c159254df0fe --- /dev/null +++ b/mob/living/basic/legion_brood.html @@ -0,0 +1 @@ +/mob/living/basic/legion_brood - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

legion_brood

A spooky skull which heals lavaland mobs, attacks miners, and infests their bodies

Vars

created_byReference to a guy who made us

Procs

assign_creatorSets someone as our creator, mostly so you can't use skulls to heal yourself
creator_destroyedReference handling
get_legion_typeReturns the kind of legion we make out of the target
infestTurn the targeted mob into one of us

Var Details

created_by

Reference to a guy who made us

Proc Details

assign_creator

Sets someone as our creator, mostly so you can't use skulls to heal yourself

creator_destroyed

Reference handling

get_legion_type

Returns the kind of legion we make out of the target

infest

Turn the targeted mob into one of us

\ No newline at end of file diff --git a/mob/living/basic/lightgeist.html b/mob/living/basic/lightgeist.html new file mode 100644 index 0000000000000..734e80d1967cd --- /dev/null +++ b/mob/living/basic/lightgeist.html @@ -0,0 +1,2 @@ +/mob/living/basic/lightgeist - /tg/ Station 13
/tg/ Station 13 - Modules - Types

lightgeist

Lightgeists

+

Small critters meant to heal other living mobs and unable to interact with almost everything else.

\ No newline at end of file diff --git a/mob/living/basic/living_limb_flesh.html b/mob/living/basic/living_limb_flesh.html new file mode 100644 index 0000000000000..441ec76ae2a47 --- /dev/null +++ b/mob/living/basic/living_limb_flesh.html @@ -0,0 +1 @@ +/mob/living/basic/living_limb_flesh - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

living_limb_flesh

Vars

current_bodypartthe meat bodypart we are currently inside, used to like drain nutrition and dismember and shit

Var Details

current_bodypart

the meat bodypart we are currently inside, used to like drain nutrition and dismember and shit

\ No newline at end of file diff --git a/mob/living/basic/lizard.html b/mob/living/basic/lizard.html new file mode 100644 index 0000000000000..e0385d8194866 --- /dev/null +++ b/mob/living/basic/lizard.html @@ -0,0 +1 @@ +/mob/living/basic/lizard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lizard

Vars

ediblesTypecache of things that we seek out to eat. Yummy.

Var Details

edibles

Typecache of things that we seek out to eat. Yummy.

\ No newline at end of file diff --git a/mob/living/basic/meteor_heart.html b/mob/living/basic/meteor_heart.html new file mode 100644 index 0000000000000..a09799472e082 --- /dev/null +++ b/mob/living/basic/meteor_heart.html @@ -0,0 +1 @@ +/mob/living/basic/meteor_heart - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

meteor_heart

Vars

soundloopLooping heartbeat sound

Procs

aggroCalled when we get mad at something, either for attacking us or attacking the nearby area
deaggroCalled when we stop being mad
used_abilityAnimate when using certain abilities

Var Details

soundloop

Looping heartbeat sound

Proc Details

aggro

Called when we get mad at something, either for attacking us or attacking the nearby area

deaggro

Called when we stop being mad

used_ability

Animate when using certain abilities

\ No newline at end of file diff --git a/mob/living/basic/meteor_heart/opens_puzzle_door.html b/mob/living/basic/meteor_heart/opens_puzzle_door.html new file mode 100644 index 0000000000000..9ef85d5b86fef --- /dev/null +++ b/mob/living/basic/meteor_heart/opens_puzzle_door.html @@ -0,0 +1 @@ +/mob/living/basic/meteor_heart/opens_puzzle_door - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

opens_puzzle_door

Vars

idthe puzzle id we send on death
queue_sizequeue size, must match

Var Details

id

the puzzle id we send on death

queue_size

queue size, must match

\ No newline at end of file diff --git a/mob/living/basic/migo.html b/mob/living/basic/migo.html new file mode 100644 index 0000000000000..c6c5ed7a9a11d --- /dev/null +++ b/mob/living/basic/migo.html @@ -0,0 +1 @@ +/mob/living/basic/migo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

migo

Vars

dodge_probOdds migo will dodge

Procs

update_dodge_chanceMakes the migo more likely to dodge around the more damaged it is

Var Details

dodge_prob

Odds migo will dodge

Proc Details

update_dodge_chance

Makes the migo more likely to dodge around the more damaged it is

\ No newline at end of file diff --git a/mob/living/basic/mining.html b/mob/living/basic/mining.html new file mode 100644 index 0000000000000..c5ce38bda46f8 --- /dev/null +++ b/mob/living/basic/mining.html @@ -0,0 +1 @@ +/mob/living/basic/mining - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mining

prototype for mining mobs

Vars

crusher_drop_chanceWhat is the chance the mob drops it if all their health was taken by crusher attacks
crusher_lootWhat crusher trophy this mob drops, if any
throw_blocked_messageMessage to output if throwing damage is absorbed

Var Details

crusher_drop_chance

What is the chance the mob drops it if all their health was taken by crusher attacks

crusher_loot

What crusher trophy this mob drops, if any

throw_blocked_message

Message to output if throwing damage is absorbed

\ No newline at end of file diff --git a/mob/living/basic/mining/basilisk.html b/mob/living/basic/mining/basilisk.html new file mode 100644 index 0000000000000..45033a1676e7e --- /dev/null +++ b/mob/living/basic/mining/basilisk.html @@ -0,0 +1 @@ +/mob/living/basic/mining/basilisk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

basilisk

Watchers' ground-dwelling cousins, they shoot at you until they get into melee and absorb laser fire to power up.

Vars

ranged_attacksThe component we use for making ranged attacks

Procs

check_lavaAre we standing in lava?
heat_upWe got hit by something hot, go into heat mode
set_projectile_typeChange what kind of beam we fire

Var Details

ranged_attacks

The component we use for making ranged attacks

Proc Details

check_lava

Are we standing in lava?

heat_up

We got hit by something hot, go into heat mode

set_projectile_type

Change what kind of beam we fire

\ No newline at end of file diff --git a/mob/living/basic/mining/bileworm.html b/mob/living/basic/mining/bileworm.html new file mode 100644 index 0000000000000..d20a4b6fefc69 --- /dev/null +++ b/mob/living/basic/mining/bileworm.html @@ -0,0 +1 @@ +/mob/living/basic/mining/bileworm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bileworm

Vars

attack_action_pathwhich action this mob will be given, subtypes have different attacks
evolve_pathwhich, if at all, mob this evolves into at the 30 min mark

Var Details

attack_action_path

which action this mob will be given, subtypes have different attacks

evolve_path

which, if at all, mob this evolves into at the 30 min mark

\ No newline at end of file diff --git a/mob/living/basic/mining/brimdemon.html b/mob/living/basic/mining/brimdemon.html new file mode 100644 index 0000000000000..53e1a72c09d15 --- /dev/null +++ b/mob/living/basic/mining/brimdemon.html @@ -0,0 +1 @@ +/mob/living/basic/mining/brimdemon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

brimdemon

Lavaland mob which tries to line up with its target and fire a laser

Vars

beamHow we get blasting

Var Details

beam

How we get blasting

\ No newline at end of file diff --git a/mob/living/basic/mining/demon_afterimage.html b/mob/living/basic/mining/demon_afterimage.html new file mode 100644 index 0000000000000..5902c1c19976d --- /dev/null +++ b/mob/living/basic/mining/demon_afterimage.html @@ -0,0 +1 @@ +/mob/living/basic/mining/demon_afterimage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

demon_afterimage

Vars

existence_periodhow long do we exist for

Var Details

existence_period

how long do we exist for

\ No newline at end of file diff --git a/mob/living/basic/mining/goldgrub.html b/mob/living/basic/mining/goldgrub.html new file mode 100644 index 0000000000000..fdccd310044e9 --- /dev/null +++ b/mob/living/basic/mining/goldgrub.html @@ -0,0 +1 @@ +/mob/living/basic/mining/goldgrub - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

goldgrub

Vars

can_lay_eggscan this mob lay eggs
can_tamecan we tame this mob

Var Details

can_lay_eggs

can this mob lay eggs

can_tame

can we tame this mob

\ No newline at end of file diff --git a/mob/living/basic/mining/goliath.html b/mob/living/basic/mining/goliath.html new file mode 100644 index 0000000000000..c13a6201e1a85 --- /dev/null +++ b/mob/living/basic/mining/goliath.html @@ -0,0 +1 @@ +/mob/living/basic/mining/goliath - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

goliath

Slow moving mob which attempts to immobilise its target

Vars

ability_animation_cooldownSlight cooldown to prevent double-dipping if we use both abilities at once
goliath_foodsThings we want to eat off the floor (or a plate, we're not picky)
melee_tentaclesOur melee tentacles ability
saddledCan someone ride us around like a horse?
tameableCan this kind of goliath be tamed?
tamedHas this particular goliath been tamed?
tentacle_lineOur long-ranged tentacles ability
tentacle_warning_stateIcon state to use when tentacles are available
tentaclesOur base tentacles ability

Procs

tamedGet ready for mounting
tentacles_readyCalled slightly before tentacles ability comes off cooldown, as a warning
used_abilityWhen we use an ability, activate some kind of visual tell

Var Details

ability_animation_cooldown

Slight cooldown to prevent double-dipping if we use both abilities at once

goliath_foods

Things we want to eat off the floor (or a plate, we're not picky)

melee_tentacles

Our melee tentacles ability

saddled

Can someone ride us around like a horse?

tameable

Can this kind of goliath be tamed?

tamed

Has this particular goliath been tamed?

tentacle_line

Our long-ranged tentacles ability

tentacle_warning_state

Icon state to use when tentacles are available

tentacles

Our base tentacles ability

Proc Details

tamed

Get ready for mounting

tentacles_ready

Called slightly before tentacles ability comes off cooldown, as a warning

used_ability

When we use an ability, activate some kind of visual tell

\ No newline at end of file diff --git a/mob/living/basic/mining/goliath/ancient/immortal.html b/mob/living/basic/mining/goliath/ancient/immortal.html new file mode 100644 index 0000000000000..699f9b4bd0344 --- /dev/null +++ b/mob/living/basic/mining/goliath/ancient/immortal.html @@ -0,0 +1 @@ +/mob/living/basic/mining/goliath/ancient/immortal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

immortal

Rare Goliath variant which occasionally replaces the normal mining mob, releases shitloads of tentacles

Vars

retarget_turfs_cooldownDon't re-check nearby turfs for this long
tentacle_target_turfsList of places we might spawn a tentacle, if we're alive

Procs

cache_nearby_turfsStore nearby turfs in our list so we can pop them out later

Var Details

retarget_turfs_cooldown

Don't re-check nearby turfs for this long

tentacle_target_turfs

List of places we might spawn a tentacle, if we're alive

Proc Details

cache_nearby_turfs

Store nearby turfs in our list so we can pop them out later

\ No newline at end of file diff --git a/mob/living/basic/mining/gutlunch.html b/mob/living/basic/mining/gutlunch.html new file mode 100644 index 0000000000000..149e219d3e248 --- /dev/null +++ b/mob/living/basic/mining/gutlunch.html @@ -0,0 +1 @@ +/mob/living/basic/mining/gutlunch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gutlunch

Vars

can_breedcan we breed?
possible_colorspossible colors we can have

Var Details

can_breed

can we breed?

possible_colors

possible colors we can have

\ No newline at end of file diff --git a/mob/living/basic/mining/gutlunch/grub.html b/mob/living/basic/mining/gutlunch/grub.html new file mode 100644 index 0000000000000..edccd82c53e79 --- /dev/null +++ b/mob/living/basic/mining/gutlunch/grub.html @@ -0,0 +1 @@ +/mob/living/basic/mining/gutlunch/grub - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

grub

Vars

inherited_statslist of stats we inherited

Var Details

inherited_stats

list of stats we inherited

\ No newline at end of file diff --git a/mob/living/basic/mining/gutlunch/milk.html b/mob/living/basic/mining/gutlunch/milk.html new file mode 100644 index 0000000000000..c00d329b7325b --- /dev/null +++ b/mob/living/basic/mining/gutlunch/milk.html @@ -0,0 +1 @@ +/mob/living/basic/mining/gutlunch/milk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

milk

Vars

full_udderoverlay we display when our udder is full!

Var Details

full_udder

overlay we display when our udder is full!

\ No newline at end of file diff --git a/mob/living/basic/mining/hivelord.html b/mob/living/basic/mining/hivelord.html new file mode 100644 index 0000000000000..2ff2210077f66 --- /dev/null +++ b/mob/living/basic/mining/hivelord.html @@ -0,0 +1 @@ +/mob/living/basic/mining/hivelord - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hivelord

Mob which retreats and spawns annoying sub-mobs to attack you

Vars

death_spawn_typeMobs to spawn when we die, varedit this to be recursive to give the players a fun surprise
spawn_broodAction which spawns worms

Procs

complete_spawnSpawns a worm on the specified turf

Var Details

death_spawn_type

Mobs to spawn when we die, varedit this to be recursive to give the players a fun surprise

spawn_brood

Action which spawns worms

Proc Details

complete_spawn

Spawns a worm on the specified turf

\ No newline at end of file diff --git a/mob/living/basic/mining/ice_whelp.html b/mob/living/basic/mining/ice_whelp.html new file mode 100644 index 0000000000000..5a5e990f2d471 --- /dev/null +++ b/mob/living/basic/mining/ice_whelp.html @@ -0,0 +1 @@ +/mob/living/basic/mining/ice_whelp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ice_whelp

Vars

heal_on_cannibalizehow much we will heal when cannibalizing a target

Procs

cannibalize_victimGib and consume our fellow ice drakes
create_sculptureCarve a stone into a beautiful self-portrait

Var Details

heal_on_cannibalize

how much we will heal when cannibalizing a target

Proc Details

cannibalize_victim

Gib and consume our fellow ice drakes

create_sculpture

Carve a stone into a beautiful self-portrait

\ No newline at end of file diff --git a/mob/living/basic/mining/legion.html b/mob/living/basic/mining/legion.html new file mode 100644 index 0000000000000..8ed3c1cbdcc68 --- /dev/null +++ b/mob/living/basic/mining/legion.html @@ -0,0 +1,2 @@ +/mob/living/basic/mining/legion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

legion

Avoids players while throwing skulls at them. +Legion skulls heal allies, bite enemies, and infest dying humans to make more legions.

Vars

brood_typeWhat kind of mob do we spawn?
corpse_typeWhat kind of corpse spawner do we leave behind on death?
stored_mobWho is inside of us?

Procs

assign_abilitiesGive the Legion its spells
consumePut a corpse in this guy
get_loot_listCreate what we want to drop on death, in proc form so we can always return a static list
on_consumed_reviveA Legion which only drops skeletons instead of corpses which might have fun loot, so it cannot be farmed

Var Details

brood_type

What kind of mob do we spawn?

corpse_type

What kind of corpse spawner do we leave behind on death?

stored_mob

Who is inside of us?

Proc Details

assign_abilities

Give the Legion its spells

consume

Put a corpse in this guy

get_loot_list

Create what we want to drop on death, in proc form so we can always return a static list

on_consumed_revive

A Legion which only drops skeletons instead of corpses which might have fun loot, so it cannot be farmed

\ No newline at end of file diff --git a/mob/living/basic/mining/legion/large.html b/mob/living/basic/mining/legion/large.html new file mode 100644 index 0000000000000..01b96faad8ee7 --- /dev/null +++ b/mob/living/basic/mining/legion/large.html @@ -0,0 +1 @@ +/mob/living/basic/mining/legion/large - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

large

Like a Legion but larger and spawns regular Legions, not currently used anywhere and very soulful

Procs

get_loot_listCreate what we want to drop on death, in proc form so we can always return a static list

Proc Details

get_loot_list

Create what we want to drop on death, in proc form so we can always return a static list

\ No newline at end of file diff --git a/mob/living/basic/mining/lobstrosity.html b/mob/living/basic/mining/lobstrosity.html new file mode 100644 index 0000000000000..cd0c66b400d36 --- /dev/null +++ b/mob/living/basic/mining/lobstrosity.html @@ -0,0 +1 @@ +/mob/living/basic/mining/lobstrosity - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lobstrosity

Cowardly mob with a charging attack

Vars

base_fishing_levelLobstrosities are natural anglers. This rapresent their proficiency at fishing when not mindless
chargeCharging ability
charge_commandThe pet command for the charging ability we give this mob
charge_typeThe type of charging ability we give this mob
snip_speedAt which speed do we amputate limbs
target_foodsThings we will eat if we see them (arms, chiefly)

Var Details

base_fishing_level

Lobstrosities are natural anglers. This rapresent their proficiency at fishing when not mindless

charge

Charging ability

charge_command

The pet command for the charging ability we give this mob

charge_type

The type of charging ability we give this mob

snip_speed

At which speed do we amputate limbs

target_foods

Things we will eat if we see them (arms, chiefly)

\ No newline at end of file diff --git a/mob/living/basic/mining/lobstrosity/juvenile.html b/mob/living/basic/mining/lobstrosity/juvenile.html new file mode 100644 index 0000000000000..d80cc48fea188 --- /dev/null +++ b/mob/living/basic/mining/lobstrosity/juvenile.html @@ -0,0 +1 @@ +/mob/living/basic/mining/lobstrosity/juvenile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

juvenile

A weaker, yet somewhat faster lobstrosity. Sources include aquarium chasm chrabs, chasms, plasma rivers and perhaps xenobio.

Vars

grow_typeWhat do we become when we grow up?
was_tamedWere we tamed? If yes, tame the mob we become when we grow up too.

Procs

CanAllowThroughJuvenile lobstrosities can swarm and pass through each other, but only 3 at most can stand the same turf.

Var Details

grow_type

What do we become when we grow up?

was_tamed

Were we tamed? If yes, tame the mob we become when we grow up too.

Proc Details

CanAllowThrough

Juvenile lobstrosities can swarm and pass through each other, but only 3 at most can stand the same turf.

\ No newline at end of file diff --git a/mob/living/basic/mining/mook.html b/mob/living/basic/mining/mook.html new file mode 100644 index 0000000000000..74e7af8b253ea --- /dev/null +++ b/mob/living/basic/mining/mook.html @@ -0,0 +1 @@ +/mob/living/basic/mining/mook - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mook

Vars

attack_stanceoverlay for attacking stance
attack_statethe state of combat we are in
held_orethe ore we are holding if any
is_healerare we a healer?
neutral_stanceoverlay for neutral stance
ore_overlayoverlay when we hold an ore
pet_commandscommands we obey

Procs

get_innate_abilitiesReturns a list of actions and blackboard keys to pass into grant_actions_by_list.

Var Details

attack_stance

overlay for attacking stance

attack_state

the state of combat we are in

held_ore

the ore we are holding if any

is_healer

are we a healer?

neutral_stance

overlay for neutral stance

ore_overlay

overlay when we hold an ore

pet_commands

commands we obey

Proc Details

get_innate_abilities

Returns a list of actions and blackboard keys to pass into grant_actions_by_list.

\ No newline at end of file diff --git a/mob/living/basic/mining/mook/worker/bard.html b/mob/living/basic/mining/mook/worker/bard.html new file mode 100644 index 0000000000000..aa69b02b18e1a --- /dev/null +++ b/mob/living/basic/mining/mook/worker/bard.html @@ -0,0 +1 @@ +/mob/living/basic/mining/mook/worker/bard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bard

Vars

held_guitarour guitar

Var Details

held_guitar

our guitar

\ No newline at end of file diff --git a/mob/living/basic/mining/mook/worker/tribal_chief.html b/mob/living/basic/mining/mook/worker/tribal_chief.html new file mode 100644 index 0000000000000..d40807457d035 --- /dev/null +++ b/mob/living/basic/mining/mook/worker/tribal_chief.html @@ -0,0 +1 @@ +/mob/living/basic/mining/mook/worker/tribal_chief - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tribal_chief

Vars

chief_activeoverlay in our active state
chief_neutraloverlay in our neutral state
chief_strikeoverlay in our striking state
chief_warmupoverlay in our warmup state

Var Details

chief_active

overlay in our active state

chief_neutral

overlay in our neutral state

chief_strike

overlay in our striking state

chief_warmup

overlay in our warmup state

\ No newline at end of file diff --git a/mob/living/basic/mining/watcher.html b/mob/living/basic/mining/watcher.html new file mode 100644 index 0000000000000..c3a7697848187 --- /dev/null +++ b/mob/living/basic/mining/watcher.html @@ -0,0 +1 @@ +/mob/living/basic/mining/watcher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

watcher

A floating eyeball which keeps its distance and sometimes make you look away.

Vars

eye_glowIcon state for our eye overlay
gaze_attackTypepath of our gaze ability
projectile_typeWhat kind of beams we got?
ranged_cooldownHow often can we shoot?
shoot_soundSound to play when we shoot

Procs

consumeI love eating diamonds yum

Var Details

eye_glow

Icon state for our eye overlay

gaze_attack

Typepath of our gaze ability

projectile_type

What kind of beams we got?

ranged_cooldown

How often can we shoot?

shoot_sound

Sound to play when we shoot

Proc Details

consume

I love eating diamonds yum

\ No newline at end of file diff --git a/mob/living/basic/mining_drone.html b/mob/living/basic/mining_drone.html new file mode 100644 index 0000000000000..9fc3d800f1300 --- /dev/null +++ b/mob/living/basic/mining_drone.html @@ -0,0 +1 @@ +/mob/living/basic/mining_drone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mining_drone

Vars

combat_overlayour combat mode overlay
neutral_overlayour normal overlay
pet_commandsthe commands our owner can give us
possible_colorspossible colors the bot can have
selected_colorour current color, if any
stored_gunthe gun we use to kill

Var Details

combat_overlay

our combat mode overlay

neutral_overlay

our normal overlay

pet_commands

the commands our owner can give us

possible_colors

possible colors the bot can have

selected_color

our current color, if any

stored_gun

the gun we use to kill

\ No newline at end of file diff --git a/mob/living/basic/mold/centaur.html b/mob/living/basic/mold/centaur.html new file mode 100644 index 0000000000000..bd6e33975b35d --- /dev/null +++ b/mob/living/basic/mold/centaur.html @@ -0,0 +1,3 @@ +/mob/living/basic/mold/centaur - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

centaur

RADIATION MOLD

+

Weird centipede things that spawn with a rad mold +They have a chance to irradiate their target on hit

Vars

irradiate_chanceThe chance to irradiate on hit

Var Details

irradiate_chance

The chance to irradiate on hit

\ No newline at end of file diff --git a/mob/living/basic/mold/diseased_rat.html b/mob/living/basic/mold/diseased_rat.html new file mode 100644 index 0000000000000..5ab51b3bbf49d --- /dev/null +++ b/mob/living/basic/mold/diseased_rat.html @@ -0,0 +1,3 @@ +/mob/living/basic/mold/diseased_rat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

diseased_rat

DISEASE MOLD

+

Giant rats that are created by the disease mold +They try to inject their target on melee attacks and, if successful, make them contract a disease

Vars

given_diseaseThe disease given on melee attacks

Var Details

given_disease

The disease given on melee attacks

\ No newline at end of file diff --git a/mob/living/basic/mold/electric_mosquito.html b/mob/living/basic/mold/electric_mosquito.html new file mode 100644 index 0000000000000..9dabe9dd52e5e --- /dev/null +++ b/mob/living/basic/mold/electric_mosquito.html @@ -0,0 +1,3 @@ +/mob/living/basic/mold/electric_mosquito - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

electric_mosquito

ELECTRIC MOLD

+

Giant mosquitos spawned by the electric mold +They inject their target with teslium on melee attacks

Vars

inject_amountHow many units to inject per bite
inject_reagentWhat the mob injects per bite

Var Details

inject_amount

How many units to inject per bite

inject_reagent

What the mob injects per bite

\ No newline at end of file diff --git a/mob/living/basic/mold/oil_shambler.html b/mob/living/basic/mold/oil_shambler.html new file mode 100644 index 0000000000000..569c33c213434 --- /dev/null +++ b/mob/living/basic/mold/oil_shambler.html @@ -0,0 +1,3 @@ +/mob/living/basic/mold/oil_shambler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

oil_shambler

OIL SHAMBLERS

+

The mob for the fire mold - humanoids that are (visually) on fire +They're immune to burn damage and have a chance to add fire stacks on melee attack

Vars

additional_fire_stacksHow many fire stacks to apply on hit
ignite_chanceThe chance to apply fire stacks on melee hit

Var Details

additional_fire_stacks

How many fire stacks to apply on hit

ignite_chance

The chance to apply fire stacks on melee hit

\ No newline at end of file diff --git a/mob/living/basic/morph.html b/mob/living/basic/morph.html new file mode 100644 index 0000000000000..6c1fe4a560dcd --- /dev/null +++ b/mob/living/basic/morph.html @@ -0,0 +1,7 @@ +/mob/living/basic/morph - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

morph

The classic morph, Corpus Accipientis (or "The body of the recipient"). It's a blob that can disguise itself as other things simply put.

Vars

disguise_abilityThe ability that allows us to disguise ourselves.
eat_while_disguisedCan we eat while disguised?
form_typepathA typepath pointing of the form we are currently assumed as. Remember, TYPEPATH!!!
form_weakrefA weakref pointing to the form we are currently assumed as.
melee_damage_disguisedHow much damage are we doing while disguised?

Procs

eatEat stuff. Delicious. Return TRUE if we ate something, FALSE otherwise. +Required: eatable is the thing (item or mob) that we are going to eat. +Optional: delay is the applicable time-based delay to pass into do_after() before the logic is ran. +Optional: update_health is an integer that will be added (or maybe subtracted if you're cruel) to our health after we eat something. Passed into adjust_health() so make sure what you pass in is accurate.
on_disguiseDo some more logic for the morph when we disguise through the action.
on_undisguiseDo some more logic for the morph when we undisguise through the action.
pre_attackHandles the logic for attacking anything.
trigger_abilityAlias for the disguise ability to be used as a keybind.

Var Details

disguise_ability

The ability that allows us to disguise ourselves.

eat_while_disguised

Can we eat while disguised?

form_typepath

A typepath pointing of the form we are currently assumed as. Remember, TYPEPATH!!!

form_weakref

A weakref pointing to the form we are currently assumed as.

melee_damage_disguised

How much damage are we doing while disguised?

Proc Details

eat

Eat stuff. Delicious. Return TRUE if we ate something, FALSE otherwise. +Required: eatable is the thing (item or mob) that we are going to eat. +Optional: delay is the applicable time-based delay to pass into do_after() before the logic is ran. +Optional: update_health is an integer that will be added (or maybe subtracted if you're cruel) to our health after we eat something. Passed into adjust_health() so make sure what you pass in is accurate.

on_disguise

Do some more logic for the morph when we disguise through the action.

on_undisguise

Do some more logic for the morph when we undisguise through the action.

pre_attack

Handles the logic for attacking anything.

trigger_ability

Alias for the disguise ability to be used as a keybind.

\ No newline at end of file diff --git a/mob/living/basic/mouse.html b/mob/living/basic/mouse.html new file mode 100644 index 0000000000000..fde19b798ca35 --- /dev/null +++ b/mob/living/basic/mouse.html @@ -0,0 +1 @@ +/mob/living/basic/mouse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mouse

Vars

body_colorWhat color our mouse is. Brown, gray and white - leave blank for random.
cable_zap_probProbability that, if we successfully bite a shocked cable, that we will die to it.
contributes_to_ratcapDoes this mouse contribute to the ratcap?
tameWhether this rat is friendly to players

Procs

create_a_new_ratCreates a new mouse based on this mouse's subtype.
evolve_into_regal_ratEvolves this rat into a regal rat
on_enteredSignal proc for COMSIG_ATOM_ENTERED. Sends a lil' squeak to chat when someone walks over us.
splatKills the rat and changes its icon state to be splatted (bloody).
tamedCalled when a mouse is hand-fed some cheese, it will stop being afraid of humans
try_bite_cableBiting into a cable will cause a mouse to get shocked and die if applicable. Or do nothing if they're lucky.
try_consume_cheeseAttempts to consume a piece of cheese, causing a few effects.

Var Details

body_color

What color our mouse is. Brown, gray and white - leave blank for random.

cable_zap_prob

Probability that, if we successfully bite a shocked cable, that we will die to it.

contributes_to_ratcap

Does this mouse contribute to the ratcap?

tame

Whether this rat is friendly to players

Proc Details

create_a_new_rat

Creates a new mouse based on this mouse's subtype.

evolve_into_regal_rat

Evolves this rat into a regal rat

on_entered

Signal proc for COMSIG_ATOM_ENTERED. Sends a lil' squeak to chat when someone walks over us.

splat

Kills the rat and changes its icon state to be splatted (bloody).

tamed

Called when a mouse is hand-fed some cheese, it will stop being afraid of humans

try_bite_cable

Biting into a cable will cause a mouse to get shocked and die if applicable. Or do nothing if they're lucky.

try_consume_cheese

Attempts to consume a piece of cheese, causing a few effects.

\ No newline at end of file diff --git a/mob/living/basic/mushroom.html b/mob/living/basic/mushroom.html new file mode 100644 index 0000000000000..71a439ed39b96 --- /dev/null +++ b/mob/living/basic/mushroom.html @@ -0,0 +1 @@ +/mob/living/basic/mushroom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mushroom

Vars

bruisedIf someone tries to cheat the system by attacking a shroom to lower its health, punish them so that it won't award levels to shrooms that eat it
cap_deadWhere we store our cap icons so we dont generate them constantly to update our icon
cap_livingWhere we store our cap icons so we dont generate them constantly to update our icon
faint_tickerIf we hit three, another mushroom's gonna eat us
powerlevelTracks our general strength level gained from eating other shrooms
recovery_cooldownCooldown that tracks how long its been since revival

Var Details

bruised

If someone tries to cheat the system by attacking a shroom to lower its health, punish them so that it won't award levels to shrooms that eat it

cap_dead

Where we store our cap icons so we dont generate them constantly to update our icon

cap_living

Where we store our cap icons so we dont generate them constantly to update our icon

faint_ticker

If we hit three, another mushroom's gonna eat us

powerlevel

Tracks our general strength level gained from eating other shrooms

recovery_cooldown

Cooldown that tracks how long its been since revival

\ No newline at end of file diff --git a/mob/living/basic/node_drone.html b/mob/living/basic/node_drone.html new file mode 100644 index 0000000000000..4d01a532bf690 --- /dev/null +++ b/mob/living/basic/node_drone.html @@ -0,0 +1,4 @@ +/mob/living/basic/node_drone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

node_drone

Mining drones that are spawned when starting a ore vent's wave defense minigame. +They will latch onto the vent to defend it from lavaland mobs, and will flee if attacked by lavaland mobs. +If the drone survives, they will fly away to safety as the vent spawns ores. +If the drone dies, the wave defense will fail.

Vars

active_nodeIs the drone currently attached to a vent?
attached_ventWeakref to the vent the drone is currently attached to.
escapingSet when the drone is begining to leave lavaland after the vent is secured.
flying_stateWhat status do we currently track for icon purposes?

Procs

escapeCalled when wave defense is completed. Visually flicks the escape sprite and then deletes the mob.

Var Details

active_node

Is the drone currently attached to a vent?

attached_vent

Weakref to the vent the drone is currently attached to.

escaping

Set when the drone is begining to leave lavaland after the vent is secured.

flying_state

What status do we currently track for icon purposes?

Proc Details

escape

Called when wave defense is completed. Visually flicks the escape sprite and then deletes the mob.

\ No newline at end of file diff --git a/mob/living/basic/orbie.html b/mob/living/basic/orbie.html new file mode 100644 index 0000000000000..7918620d3eeb1 --- /dev/null +++ b/mob/living/basic/orbie.html @@ -0,0 +1 @@ +/mob/living/basic/orbie - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

orbie

Vars

eyes_overlayoverlay for our neutral eyes
flame_overlayoverlay for the flame propellar
happy_eyes_overlayoverlay for our happy eyes
happy_stateare we happy or not?
orbie_light_overlayoverlay for when our eyes are emitting light
pet_commandscommands we can give orbie

Var Details

eyes_overlay

overlay for our neutral eyes

flame_overlay

overlay for the flame propellar

happy_eyes_overlay

overlay for our happy eyes

happy_state

are we happy or not?

orbie_light_overlay

overlay for when our eyes are emitting light

pet_commands

commands we can give orbie

\ No newline at end of file diff --git a/mob/living/basic/paper_wizard.html b/mob/living/basic/paper_wizard.html new file mode 100644 index 0000000000000..3dfc9fb83c265 --- /dev/null +++ b/mob/living/basic/paper_wizard.html @@ -0,0 +1 @@ +/mob/living/basic/paper_wizard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

paper_wizard

Vars

dropped_lootthe loot we will drop
mimicspell to summon clones
summonspell to summon minions

Var Details

dropped_loot

the loot we will drop

mimic

spell to summon clones

summon

spell to summon minions

\ No newline at end of file diff --git a/mob/living/basic/parrot.html b/mob/living/basic/parrot.html new file mode 100644 index 0000000000000..6dec4ebf8495e --- /dev/null +++ b/mob/living/basic/parrot.html @@ -0,0 +1,13 @@ +/mob/living/basic/parrot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

parrot

Parrots! Klepto bastards that imitate your speech and hoard your shit.

Vars

buckled_to_humanWhether the parrot is on a human's shoulder or not
desired_perchesContains all of the perches that parrots will generally sit on until something catches their eye.
earsHeadset for Poly to yell at engineers :)
ediblesFood that Poly loves to eat (spoiler alert it's just crackers)
forced_speech_cooldownTracks the times when we send a phrase through either being pet or attack to ensure it's not abused to flood
held_itemParrots are kleptomaniacs. This variable ... stores the item a parrot is holding.
icon_sitIcon we use while sitting
ignore_itemsitems we wont pick up
speech_blackboard_keyThe blackboard key we use to store the string we're repeating
speech_probability_rateThe generic probability odds we have to do a speech-related action
speech_shuffle_rateThe generic probability odds we have to switch out our speech string

Procs

consume_crackerEats a cracker (or anything i guess). This would be nice to eventually fold into the basic_eating element but we do too much snowflake inventory code stuff for this to be reliable presently. +We don't qdel the item here, we assume the invoking proc will have handled that somehow. +Returns TRUE if we ate the thing.
drop_held_itemHandles dropping items we're holding. Gently is a special modifier we can use for special interactions.
get_available_channelsGets the available channels that this parrot has access to. Returns a list of the channels we can use.
get_phraseProc that handles sending the signal and returning a valid phrase to say. Will not do anything if we don't have a stat or if we're cliented. +Will return either a string or null.
get_static_list_of_phrasesGets a static list of phrases we wish to pass to the element.
on_attackedIf we're right-clicked on with a cracker, we eat the cracker.
on_clickProc that we just use to see if we're rightclicking something for perch behavior or dropping the item we currently ahve
on_injuredHandles special behavior whenever we are injured.
on_petProc that listens for when a parrot is pet so we can dispatch a voice line.
perch_on_humanProc that will perch us on a human. Returns TRUE if we perched, FALSE otherwise.
pick_up_itemHandles picking up the item we're holding, done in its own proc because of a snowflake edge case we need to account for. No additional logic beyond that. +Returns TRUE if we picked it up, FALSE otherwise.
pre_attackingMaster proc which will determine the intent of OUR attacks on an object and summon the relevant procs accordingly. +This is pretty much meant for players, AI will use the task-specific procs instead.
setup_headsetWill simply set up the headset for the parrot to use. Stub, implemented on subtypes.
start_perchingProc that ascertains the type of perch we're dealing with and starts the perching process. +Returns TRUE if we started perching, FALSE otherwise.
steal_from_groundPicks up an item from the ground and puts it in our claws. Returns TRUE if we picked it up, FALSE otherwise.
steal_from_mobLooks for an item that we can snatch and puts it in our claws. Returns TRUE if we picked it up, FALSE otherwise.
update_speech_blackboardsUpdates our speech blackboards mob-side to reflect the current speech on the controller to ensure everything is synchronized.

Var Details

buckled_to_human

Whether the parrot is on a human's shoulder or not

desired_perches

Contains all of the perches that parrots will generally sit on until something catches their eye.

ears

Headset for Poly to yell at engineers :)

edibles

Food that Poly loves to eat (spoiler alert it's just crackers)

forced_speech_cooldown

Tracks the times when we send a phrase through either being pet or attack to ensure it's not abused to flood

held_item

Parrots are kleptomaniacs. This variable ... stores the item a parrot is holding.

icon_sit

Icon we use while sitting

ignore_items

items we wont pick up

speech_blackboard_key

The blackboard key we use to store the string we're repeating

speech_probability_rate

The generic probability odds we have to do a speech-related action

speech_shuffle_rate

The generic probability odds we have to switch out our speech string

Proc Details

consume_cracker

Eats a cracker (or anything i guess). This would be nice to eventually fold into the basic_eating element but we do too much snowflake inventory code stuff for this to be reliable presently. +We don't qdel the item here, we assume the invoking proc will have handled that somehow. +Returns TRUE if we ate the thing.

drop_held_item

Handles dropping items we're holding. Gently is a special modifier we can use for special interactions.

get_available_channels

Gets the available channels that this parrot has access to. Returns a list of the channels we can use.

get_phrase

Proc that handles sending the signal and returning a valid phrase to say. Will not do anything if we don't have a stat or if we're cliented. +Will return either a string or null.

get_static_list_of_phrases

Gets a static list of phrases we wish to pass to the element.

on_attacked

If we're right-clicked on with a cracker, we eat the cracker.

on_click

Proc that we just use to see if we're rightclicking something for perch behavior or dropping the item we currently ahve

on_injured

Handles special behavior whenever we are injured.

on_pet

Proc that listens for when a parrot is pet so we can dispatch a voice line.

perch_on_human

Proc that will perch us on a human. Returns TRUE if we perched, FALSE otherwise.

pick_up_item

Handles picking up the item we're holding, done in its own proc because of a snowflake edge case we need to account for. No additional logic beyond that. +Returns TRUE if we picked it up, FALSE otherwise.

pre_attacking

Master proc which will determine the intent of OUR attacks on an object and summon the relevant procs accordingly. +This is pretty much meant for players, AI will use the task-specific procs instead.

setup_headset

Will simply set up the headset for the parrot to use. Stub, implemented on subtypes.

start_perching

Proc that ascertains the type of perch we're dealing with and starts the perching process. +Returns TRUE if we started perching, FALSE otherwise.

steal_from_ground

Picks up an item from the ground and puts it in our claws. Returns TRUE if we picked it up, FALSE otherwise.

steal_from_mob

Looks for an item that we can snatch and puts it in our claws. Returns TRUE if we picked it up, FALSE otherwise.

update_speech_blackboards

Updates our speech blackboards mob-side to reflect the current speech on the controller to ensure everything is synchronized.

\ No newline at end of file diff --git a/mob/living/basic/parrot/poly.html b/mob/living/basic/parrot/poly.html new file mode 100644 index 0000000000000..b1c6e6d7b8e2c --- /dev/null +++ b/mob/living/basic/parrot/poly.html @@ -0,0 +1 @@ +/mob/living/basic/parrot/poly - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

poly

The classically famous compadre to the Chief Engineer, Poly.

Vars

longest_deathstreakHow many rounds in a row have we been dead for?
longest_survivalHow long have we survived for at max?
memory_savedDid we write the memory to disk?
roundend_callbackCallback to save our memory at the end of the round.
rounds_survivedHow long has this bird been alive for?

Procs

determine_special_polyDetermines the type of Poly we might have here based on the statistics we got from the memory.
read_memoryReads the memory of the parrot, and updates the necessary variables. Returns a list of phrases to add to the parrot's speech buffer.

Var Details

longest_deathstreak

How many rounds in a row have we been dead for?

longest_survival

How long have we survived for at max?

memory_saved

Did we write the memory to disk?

roundend_callback

Callback to save our memory at the end of the round.

rounds_survived

How long has this bird been alive for?

Proc Details

determine_special_poly

Determines the type of Poly we might have here based on the statistics we got from the memory.

read_memory

Reads the memory of the parrot, and updates the necessary variables. Returns a list of phrases to add to the parrot's speech buffer.

\ No newline at end of file diff --git a/mob/living/basic/pet.html b/mob/living/basic/pet.html new file mode 100644 index 0000000000000..c7397c4bbf82b --- /dev/null +++ b/mob/living/basic/pet.html @@ -0,0 +1 @@ +/mob/living/basic/pet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pet

Vars

unique_petif the mob is protected from being renamed by collars.

Var Details

unique_pet

if the mob is protected from being renamed by collars.

\ No newline at end of file diff --git a/mob/living/basic/pet/bumbles.html b/mob/living/basic/pet/bumbles.html new file mode 100644 index 0000000000000..5df9a04c11720 --- /dev/null +++ b/mob/living/basic/pet/bumbles.html @@ -0,0 +1,6 @@ +/mob/living/basic/pet/bumbles - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bumbles

Vars

flower_typesList of flower types that can be attacked to smell, or are targetted by AI.

Procs

smell_flowerSmell a flower, either via AI or unarmed attack.

Var Details

flower_types

List of flower types that can be attacked to smell, or are targetted by AI.

Proc Details

smell_flower

Smell a flower, either via AI or unarmed attack.

+

Arguments:

+
    +
  • source - Signal source. Will be the same as src.
  • +
  • target - The thing being attacked.
  • +
\ No newline at end of file diff --git a/mob/living/basic/pet/cat.html b/mob/living/basic/pet/cat.html new file mode 100644 index 0000000000000..a277c56e49626 --- /dev/null +++ b/mob/living/basic/pet/cat.html @@ -0,0 +1 @@ +/mob/living/basic/pet/cat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cat

Vars

can_breedcan this cat breed?
can_hold_itemcan hold items?
can_interact_with_stovecan this cat interact with stoves?
collar_icon_stateicon of the collar we can wear
cult_icon_stateicon state of our cult icon
held_fooditem we are currently holding
held_item_overlaymutable appearance for held item
huntable_itemslist of items we can carry

Var Details

can_breed

can this cat breed?

can_hold_item

can hold items?

can_interact_with_stove

can this cat interact with stoves?

collar_icon_state

icon of the collar we can wear

cult_icon_state

icon state of our cult icon

held_food

item we are currently holding

held_item_overlay

mutable appearance for held item

huntable_items

list of items we can carry

\ No newline at end of file diff --git a/mob/living/basic/pet/cat/runtime.html b/mob/living/basic/pet/cat/runtime.html new file mode 100644 index 0000000000000..d4c455ee407e4 --- /dev/null +++ b/mob/living/basic/pet/cat/runtime.html @@ -0,0 +1 @@ +/mob/living/basic/pet/cat/runtime - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

runtime

Vars

cats_deployedhave we deployed the cats?
childrensaved list of kids
familythe family we will bring in when a round starts
memory_savedhave we saved memory?
register_familycallback we use to register our family

Var Details

cats_deployed

have we deployed the cats?

children

saved list of kids

family

the family we will bring in when a round starts

memory_saved

have we saved memory?

register_family

callback we use to register our family

\ No newline at end of file diff --git a/mob/living/basic/pet/chinchilla.html b/mob/living/basic/pet/chinchilla.html new file mode 100644 index 0000000000000..9b3e64c68be22 --- /dev/null +++ b/mob/living/basic/pet/chinchilla.html @@ -0,0 +1,5 @@ +/mob/living/basic/pet/chinchilla - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chinchilla

Vars

attack_verb_continuousIn the case 'melee_damage_upper' is somehow raised above 0
body_colorThe color (i.e. "black" or "white") of this chinchilla, to determine the icon_states to use for +this specific instance. null by default, which makes it pick a valid value at random in +Initialize()`.

Var Details

attack_verb_continuous

In the case 'melee_damage_upper' is somehow raised above 0

body_color

The color (i.e. "black" or "white") of this chinchilla, to determine the icon_states to use for +this specific instance. null by default, which makes it pick a valid value at random in +Initialize()`.

\ No newline at end of file diff --git a/mob/living/basic/pet/dog.html b/mob/living/basic/pet/dog.html new file mode 100644 index 0000000000000..f6367a19a1699 --- /dev/null +++ b/mob/living/basic/pet/dog.html @@ -0,0 +1 @@ +/mob/living/basic/pet/dog - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dog

Vars

collar_icon_stateicon state of the collar we can wear
cult_icon_stateicon state of our cult icon
pet_commandsInstructions you can give to dogs

Procs

tamedProc to run on a successful taming attempt
update_dog_speechUpdates dog speech and emotes

Var Details

collar_icon_state

icon state of the collar we can wear

cult_icon_state

icon state of our cult icon

pet_commands

Instructions you can give to dogs

Proc Details

tamed

Proc to run on a successful taming attempt

update_dog_speech

Updates dog speech and emotes

\ No newline at end of file diff --git a/mob/living/basic/pet/dog/corgi.html b/mob/living/basic/pet/dog/corgi.html new file mode 100644 index 0000000000000..d21ccb2cf82f8 --- /dev/null +++ b/mob/living/basic/pet/dog/corgi.html @@ -0,0 +1,7 @@ +/mob/living/basic/pet/dog/corgi - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

corgi

Vars

access_cardAccess card for the corgi.
can_be_shavedCan this corgi be shaved by an electric razor?
can_breedcan this mob breed?
inventory_backCurrently worn item on the back slot
inventory_headCurrently worn item on the head slot
is_slowIs this corgi physically slow due to age, etc?
shavedDid this corgi get mutilated and has had their fur shaved by an electric razor, oh the humanity?
strippable_inventory_slotsItem slots that are available for this corgi to equip stuff into

Procs

borkDeadchat plays bark.
drop_hatDeadchat plays command that drops the current hat off Ian.
find_new_hatDeadchat plays command that picks a new hat for Ian.
getarmorCorgis get full protection from their equipped fashion items if attacked in a way that passes def_zone, +which usually means any direct attack like melee or gunshot. Anything abstract like a bomb or acid or something +will instead give half the armor value.
on_appearance_changeHandles updating any existing overlays for the corgi (such as fashion items) when it changes how it appears, as in, dead or alive.
on_tried_accessHandler for COMSIG_MOB_TRIED_ACCESS
place_on_headPlaces an item on the corgi's head, handling updating the corgi's appearance and the item's dog fashion modifiers +to the name, description, speech etc. Doesn't need the user to complete, and is also used in station traits/events/persistence reading.
stop_deadchat_playsTurn AI back on.
undress_dogRemoves the hat and shirt (but not ID) of this corgi

Var Details

access_card

Access card for the corgi.

can_be_shaved

Can this corgi be shaved by an electric razor?

can_breed

can this mob breed?

inventory_back

Currently worn item on the back slot

inventory_head

Currently worn item on the head slot

is_slow

Is this corgi physically slow due to age, etc?

shaved

Did this corgi get mutilated and has had their fur shaved by an electric razor, oh the humanity?

strippable_inventory_slots

Item slots that are available for this corgi to equip stuff into

Proc Details

bork

Deadchat plays bark.

drop_hat

Deadchat plays command that drops the current hat off Ian.

find_new_hat

Deadchat plays command that picks a new hat for Ian.

getarmor

Corgis get full protection from their equipped fashion items if attacked in a way that passes def_zone, +which usually means any direct attack like melee or gunshot. Anything abstract like a bomb or acid or something +will instead give half the armor value.

on_appearance_change

Handles updating any existing overlays for the corgi (such as fashion items) when it changes how it appears, as in, dead or alive.

on_tried_access

Handler for COMSIG_MOB_TRIED_ACCESS

place_on_head

Places an item on the corgi's head, handling updating the corgi's appearance and the item's dog fashion modifiers +to the name, description, speech etc. Doesn't need the user to complete, and is also used in station traits/events/persistence reading.

stop_deadchat_plays

Turn AI back on.

undress_dog

Removes the hat and shirt (but not ID) of this corgi

\ No newline at end of file diff --git a/mob/living/basic/pet/dog/corgi/borgi.html b/mob/living/basic/pet/dog/corgi/borgi.html new file mode 100644 index 0000000000000..0b10b3ad6b3f5 --- /dev/null +++ b/mob/living/basic/pet/dog/corgi/borgi.html @@ -0,0 +1,6 @@ +/mob/living/basic/pet/dog/corgi/borgi - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

borgi

Vars

borgi_dropsA list of the things dropped when it dies
emaggedHas E-N been emagged already?
rage_hpThe threshold of HP before the borgi attacks non-friends
spark_chanceThe chance to spark (on life)

Procs

harass_targetTry to harass a target, considering if they are a friend.

Var Details

borgi_drops

A list of the things dropped when it dies

emagged

Has E-N been emagged already?

rage_hp

The threshold of HP before the borgi attacks non-friends

spark_chance

The chance to spark (on life)

Proc Details

harass_target

Try to harass a target, considering if they are a friend.

+

Arguments:

+
    +
  • target - the target to harrass
  • +
  • always_shoot - always shoot the target, as opposed to only if not a friend.
  • +
\ No newline at end of file diff --git a/mob/living/basic/pet/dog/corgi/ian.html b/mob/living/basic/pet/dog/corgi/ian.html new file mode 100644 index 0000000000000..889ae35244791 --- /dev/null +++ b/mob/living/basic/pet/dog/corgi/ian.html @@ -0,0 +1 @@ +/mob/living/basic/pet/dog/corgi/ian - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ian

Vars

ageTracks how many rounds did Ian survive from start to finish
i_will_surviveCallback to execute upon roundend to check whether Ian has survived the round or not
memory_savedWhether we have already recorded this Ian's achievements(survival and equipped hat) to the database
record_ageHighest achieved consecutive rounds that Ian survived from start to finish
saved_headPath of the item Ian was wearing in a previous shift, if he survived through it

Procs

Read_MemoryReads the database's persistence json file and applies age, record_age and saved_head to Ian.
check_ian_survivalChecks whether Ian has survived the round or not

Var Details

age

Tracks how many rounds did Ian survive from start to finish

i_will_survive

Callback to execute upon roundend to check whether Ian has survived the round or not

memory_saved

Whether we have already recorded this Ian's achievements(survival and equipped hat) to the database

record_age

Highest achieved consecutive rounds that Ian survived from start to finish

saved_head

Path of the item Ian was wearing in a previous shift, if he survived through it

Proc Details

Read_Memory

Reads the database's persistence json file and applies age, record_age and saved_head to Ian.

check_ian_survival

Checks whether Ian has survived the round or not

\ No newline at end of file diff --git a/mob/living/basic/pet/dog/corgi/narsie.html b/mob/living/basic/pet/dog/corgi/narsie.html new file mode 100644 index 0000000000000..a95959174dae6 --- /dev/null +++ b/mob/living/basic/pet/dog/corgi/narsie.html @@ -0,0 +1 @@ +/mob/living/basic/pet/dog/corgi/narsie - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

narsie

Vars

edible_typesMobs we will consume in the name of Nar'Sie

Procs

on_prey_approachedAttempt to eat a pet we get near

Var Details

edible_types

Mobs we will consume in the name of Nar'Sie

Proc Details

on_prey_approached

Attempt to eat a pet we get near

\ No newline at end of file diff --git a/mob/living/basic/pet/dog/markus.html b/mob/living/basic/pet/dog/markus.html new file mode 100644 index 0000000000000..1925969f72507 --- /dev/null +++ b/mob/living/basic/pet/dog/markus.html @@ -0,0 +1 @@ +/mob/living/basic/pet/dog/markus - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

markus

Vars

can_breedcan this mob breed?
markus_speakList of possible dialogue options. This is both used by the AI and as an override when a sentient Markus speaks.

Var Details

can_breed

can this mob breed?

markus_speak

List of possible dialogue options. This is both used by the AI and as an override when a sentient Markus speaks.

\ No newline at end of file diff --git a/mob/living/basic/pet/gondola.html b/mob/living/basic/pet/gondola.html new file mode 100644 index 0000000000000..42ec77a02a826 --- /dev/null +++ b/mob/living/basic/pet/gondola.html @@ -0,0 +1 @@ +/mob/living/basic/pet/gondola - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gondola

Vars

lootList of loot drops on death, since it deletes itself on death (like trooper).

Var Details

loot

List of loot drops on death, since it deletes itself on death (like trooper).

\ No newline at end of file diff --git a/mob/living/basic/pet/gondola/gondolapod.html b/mob/living/basic/pet/gondola/gondolapod.html new file mode 100644 index 0000000000000..0efd5edf858d8 --- /dev/null +++ b/mob/living/basic/pet/gondola/gondolapod.html @@ -0,0 +1 @@ +/mob/living/basic/pet/gondola/gondolapod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gondolapod

Vars

gondola_delivering_actionsStatic list of actions the gondola is given on creation, and taken away when it successfully delivers.
linked_podThe supply pod attached to the gondola, that actually holds the contents of our delivery.
openedBoolean on whether the pod is currently open, and should appear such.

Var Details

gondola_delivering_actions

Static list of actions the gondola is given on creation, and taken away when it successfully delivers.

linked_pod

The supply pod attached to the gondola, that actually holds the contents of our delivery.

opened

Boolean on whether the pod is currently open, and should appear such.

\ No newline at end of file diff --git a/mob/living/basic/pet/penguin.html b/mob/living/basic/pet/penguin.html new file mode 100644 index 0000000000000..8fa3620d11396 --- /dev/null +++ b/mob/living/basic/pet/penguin.html @@ -0,0 +1 @@ +/mob/living/basic/pet/penguin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

penguin

Vars

can_lay_eggsit can lay an egg?
carried_eggthe egg it carries

Var Details

can_lay_eggs

it can lay an egg?

carried_egg

the egg it carries

\ No newline at end of file diff --git a/mob/living/basic/pet/penguin/baby.html b/mob/living/basic/pet/penguin/baby.html new file mode 100644 index 0000000000000..c29d1b0826500 --- /dev/null +++ b/mob/living/basic/pet/penguin/baby.html @@ -0,0 +1 @@ +/mob/living/basic/pet/penguin/baby - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

baby

Vars

can_grow_upwill it grow up?

Var Details

can_grow_up

will it grow up?

\ No newline at end of file diff --git a/mob/living/basic/pet/poppy.html b/mob/living/basic/pet/poppy.html new file mode 100644 index 0000000000000..7eb026b42d59f --- /dev/null +++ b/mob/living/basic/pet/poppy.html @@ -0,0 +1 @@ +/mob/living/basic/pet/poppy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

poppy

Vars

near_engineAre they near the supermatter?
safety_inspectionIs the inspection currently being passed?
upsetAre they scared already?

Var Details

near_engine

Are they near the supermatter?

safety_inspection

Is the inspection currently being passed?

upset

Are they scared already?

\ No newline at end of file diff --git a/mob/living/basic/pig.html b/mob/living/basic/pig.html new file mode 100644 index 0000000000000..3a7aefdbe2923 --- /dev/null +++ b/mob/living/basic/pig.html @@ -0,0 +1 @@ +/mob/living/basic/pig - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

pig

Procs

make_tameablewrapper for the tameable component addition so you can have non tamable cow subtypes

Proc Details

make_tameable

wrapper for the tameable component addition so you can have non tamable cow subtypes

\ No newline at end of file diff --git a/mob/living/basic/pony.html b/mob/living/basic/pony.html new file mode 100644 index 0000000000000..d035de78d6f88 --- /dev/null +++ b/mob/living/basic/pony.html @@ -0,0 +1 @@ +/mob/living/basic/pony - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pony

Vars

my_ownerThe person we've been tamed by
ponycolorsGreyscale color config; 1st color is body, 2nd is mane
unique_tamerDo we register a unique rider?

Procs

on_prebuckleOnly let us get ridden if the buckler is our owner, if we have a unique owner.

Var Details

my_owner

The person we've been tamed by

ponycolors

Greyscale color config; 1st color is body, 2nd is mane

unique_tamer

Do we register a unique rider?

Proc Details

on_prebuckle

Only let us get ridden if the buckler is our owner, if we have a unique owner.

\ No newline at end of file diff --git a/mob/living/basic/rabbit.html b/mob/living/basic/rabbit.html new file mode 100644 index 0000000000000..7645026906821 --- /dev/null +++ b/mob/living/basic/rabbit.html @@ -0,0 +1,3 @@ +/mob/living/basic/rabbit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rabbit

Rabbit

+

A creature that hops around with small tails and long ears.

+

This contains the code for both your standard rabbit as well as the subtypes commonly found during Easter.

Vars

icon_prefixpassed to animal_varity as the prefix icon.

Var Details

icon_prefix

passed to animal_varity as the prefix icon.

\ No newline at end of file diff --git a/mob/living/basic/rabbit/easter.html b/mob/living/basic/rabbit/easter.html new file mode 100644 index 0000000000000..44cae9d47cee1 --- /dev/null +++ b/mob/living/basic/rabbit/easter.html @@ -0,0 +1 @@ +/mob/living/basic/rabbit/easter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

easter

The easter subtype of rabbits, will lay eggs and say Eastery catchphrases.

Vars

initial_egg_amountpassed to the egg_layer component as how many eggs it starts out as able to lay.
max_eggs_heldpassed to the egg_layer component as how many eggs it's allowed to hold at most.

Var Details

initial_egg_amount

passed to the egg_layer component as how many eggs it starts out as able to lay.

max_eggs_held

passed to the egg_layer component as how many eggs it's allowed to hold at most.

\ No newline at end of file diff --git a/mob/living/basic/raptor.html b/mob/living/basic/raptor.html new file mode 100644 index 0000000000000..f3d4257f29784 --- /dev/null +++ b/mob/living/basic/raptor.html @@ -0,0 +1 @@ +/mob/living/basic/raptor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

raptor

Vars

can_breedcan this mob breed
change_offsetsshould we change offsets on direction change?
child_pathpath of our child
dex_descriptionthe description that appears in the dex
inherited_statsthings we inherited from our parent
raptor_colorour color
ridable_componentcan we ride this mob

Procs

egg_inheritpass down our inheritance to the egg

Var Details

can_breed

can this mob breed

change_offsets

should we change offsets on direction change?

child_path

path of our child

dex_description

the description that appears in the dex

inherited_stats

things we inherited from our parent

raptor_color

our color

ridable_component

can we ride this mob

Proc Details

egg_inherit

pass down our inheritance to the egg

\ No newline at end of file diff --git a/mob/living/basic/raptor/baby_raptor.html b/mob/living/basic/raptor/baby_raptor.html new file mode 100644 index 0000000000000..be38ead2dc7f5 --- /dev/null +++ b/mob/living/basic/raptor/baby_raptor.html @@ -0,0 +1 @@ +/mob/living/basic/raptor/baby_raptor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

baby_raptor

Vars

growth_pathwhat do we grow into
roll_rateprobability we are to be rolled

Var Details

growth_path

what do we grow into

roll_rate

probability we are to be rolled

\ No newline at end of file diff --git a/mob/living/basic/regal_rat.html b/mob/living/basic/regal_rat.html new file mode 100644 index 0000000000000..f6fa197703f6f --- /dev/null +++ b/mob/living/basic/regal_rat.html @@ -0,0 +1,5 @@ +/mob/living/basic/regal_rat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

regal_rat

The cheesiest, most crowned rat of them all. Regent superior of all rats in maintenance... at least until someone else tries to encroach on their claim.

Vars

current_lookWhat kind of fashion are we rocking
fashion_selectPress this to change your rat outfit
poll_ghostsShould we request a mind immediately upon spawning?
special_monikerString tied to our special moniker for examination. Contains a nice message tied to the potential funny regal name we have.

Procs

allowed_to_attackChecks if we are allowed to attack this mob. Will return TRUE if we are potentially allowed to attack, but if we end up in a case where we should NOT attack, return FALSE.
became_player_controlledTriggers an alert to all ghosts that the rat has become player controlled.
cheese_healConditionally "eat" cheese object and heal, if injured.
grant_titlesGrants the rat a special name.
on_loginSupplementary work we do when we login. Done this way so we synchronize with the ai controller shutting off and all that jazz as well as allowing more shit to be passed in if need be in future.
pick_random_lookRandomise how we look on init
poison_targetAttempts to add rat spit to a target, effectively poisoning it to whoever eats it. Yuckers.
pre_attackChecks if we are able to attack this object, as well as send out the signal to see if we get any special regal rat interactions.

Var Details

current_look

What kind of fashion are we rocking

fashion_select

Press this to change your rat outfit

poll_ghosts

Should we request a mind immediately upon spawning?

special_moniker

String tied to our special moniker for examination. Contains a nice message tied to the potential funny regal name we have.

Proc Details

allowed_to_attack

Checks if we are allowed to attack this mob. Will return TRUE if we are potentially allowed to attack, but if we end up in a case where we should NOT attack, return FALSE.

became_player_controlled

Triggers an alert to all ghosts that the rat has become player controlled.

cheese_heal

Conditionally "eat" cheese object and heal, if injured.

+

A private proc for sending a message to the mob's chat about them +eating some sort of cheese, then healing them, then deleting the cheese. +The "eating" is only conditional on the mob being injured in the first +place.

grant_titles

Grants the rat a special name.

on_login

Supplementary work we do when we login. Done this way so we synchronize with the ai controller shutting off and all that jazz as well as allowing more shit to be passed in if need be in future.

pick_random_look

Randomise how we look on init

poison_target

Attempts to add rat spit to a target, effectively poisoning it to whoever eats it. Yuckers.

pre_attack

Checks if we are able to attack this object, as well as send out the signal to see if we get any special regal rat interactions.

\ No newline at end of file diff --git a/mob/living/basic/revenant.html b/mob/living/basic/revenant.html new file mode 100644 index 0000000000000..95ff2cf0579ae --- /dev/null +++ b/mob/living/basic/revenant.html @@ -0,0 +1,7 @@ +/mob/living/basic/revenant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

revenant

Revenants: "Ghosts" that are invisible and move like ghosts, cannot take damage while invisible +Can hear deadchat, but are NOT normal ghosts and do NOT have x-ray vision +Admin-spawn or random event

Vars

abilitiesList of action ability datums to grant on Initialize. Keep in mind that anything with the /aoe/revenant subtype starts locked by default.
dormantAre we currently dormant (ectoplasm'd)?
drained_mobsLazylist of drained mobs to ensure that we don't steal a soul from someone twice
drainingAre we currently draining someone?
essenceThe resource, and health, of revenants.
essence_accumulatedHow much essence the revenant has stolen
essence_excessHow much stolen essence is available for unlocks
essence_regen_amountHow much essence regenerates per second
essence_regeneratingIf the revenant regenerates essence or not
generated_objectives_and_spellsHave we already given this revenant abilities?
icon_drainThe icon we use while draining someone.
icon_idleThe icon we use while just floating around.
icon_revealThe icon we use while in a revealed state.
icon_stunThe icon we use when stunned (temporarily frozen)
max_essenceThe regeneration cap of essence (go figure); regenerates every Life() tick up to this amount.
perfectsoulsHow many perfect, regen-cap increasing souls the revenant has. //TODO, add objective for getting a perfect soul(s?)
unreveal_timeHow long the revenant is revealed for, is about 2 seconds times this var.

Procs

attempt_harvestContainer proc for harvest(), handles the pre-checks as well as potential early-exits for any reason. +Will return FALSE if we can't execute harvest(), or will otherwise the result of harvest(): a boolean value.
create_login_stringGenerates the information the player needs to know how to play their role, and returns it as a list.
harvest_soulHarvest; activated by clicking a target, will try to drain their essence. Handles all messages and handling of the target. +Returns FALSE if we exit out of the harvest, TRUE if it is fully done.
incorporeal_move_checkIncorporeal move check: blocked by holy-watered tiles and salt piles.
move_to_ectoplasmForces the mob, once dormant, to move inside ectoplasm until it can regenerate.
on_lifeSignal Handler Injection to handle Life() stuff for revenants

Var Details

abilities

List of action ability datums to grant on Initialize. Keep in mind that anything with the /aoe/revenant subtype starts locked by default.

dormant

Are we currently dormant (ectoplasm'd)?

drained_mobs

Lazylist of drained mobs to ensure that we don't steal a soul from someone twice

draining

Are we currently draining someone?

essence

The resource, and health, of revenants.

essence_accumulated

How much essence the revenant has stolen

essence_excess

How much stolen essence is available for unlocks

essence_regen_amount

How much essence regenerates per second

essence_regenerating

If the revenant regenerates essence or not

generated_objectives_and_spells

Have we already given this revenant abilities?

icon_drain

The icon we use while draining someone.

icon_idle

The icon we use while just floating around.

icon_reveal

The icon we use while in a revealed state.

icon_stun

The icon we use when stunned (temporarily frozen)

max_essence

The regeneration cap of essence (go figure); regenerates every Life() tick up to this amount.

perfectsouls

How many perfect, regen-cap increasing souls the revenant has. //TODO, add objective for getting a perfect soul(s?)

unreveal_time

How long the revenant is revealed for, is about 2 seconds times this var.

Proc Details

attempt_harvest

Container proc for harvest(), handles the pre-checks as well as potential early-exits for any reason. +Will return FALSE if we can't execute harvest(), or will otherwise the result of harvest(): a boolean value.

create_login_string

Generates the information the player needs to know how to play their role, and returns it as a list.

harvest_soul

Harvest; activated by clicking a target, will try to drain their essence. Handles all messages and handling of the target. +Returns FALSE if we exit out of the harvest, TRUE if it is fully done.

incorporeal_move_check

Incorporeal move check: blocked by holy-watered tiles and salt piles.

move_to_ectoplasm

Forces the mob, once dormant, to move inside ectoplasm until it can regenerate.

on_life

Signal Handler Injection to handle Life() stuff for revenants

\ No newline at end of file diff --git a/mob/living/basic/revolutionary.html b/mob/living/basic/revolutionary.html new file mode 100644 index 0000000000000..2fa294791cbb4 --- /dev/null +++ b/mob/living/basic/revolutionary.html @@ -0,0 +1 @@ +/mob/living/basic/revolutionary - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

revolutionary

Vars

causesList of causes to #support
female_screamsFemale screams
male_screamsMale screams
monkey_screechesMonkey screeches
phrasesList of things to shout
possible_weaponslist of weapons we can have

Var Details

causes

List of causes to #support

female_screams

Female screams

male_screams

Male screams

monkey_screeches

Monkey screeches

phrases

List of things to shout

possible_weapons

list of weapons we can have

\ No newline at end of file diff --git a/mob/living/basic/robot_customer.html b/mob/living/basic/robot_customer.html new file mode 100644 index 0000000000000..e418cf40da22e --- /dev/null +++ b/mob/living/basic/robot_customer.html @@ -0,0 +1 @@ +/mob/living/basic/robot_customer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

robot_customer

Robot customers

Vars

clothes_setThe clothes that we draw on this tourist.
hud_to_show_on_hoverReference to the hud that we show when the player hovers over us.

Procs

DestroyClean up on the mobs seat etc when its deleted (Either by murder or because it left)
spawn_gibsRobots need robot gibs...!

Var Details

clothes_set

The clothes that we draw on this tourist.

hud_to_show_on_hover

Reference to the hud that we show when the player hovers over us.

Proc Details

Destroy

Clean up on the mobs seat etc when its deleted (Either by murder or because it left)

spawn_gibs

Robots need robot gibs...!

\ No newline at end of file diff --git a/mob/living/basic/seedling.html b/mob/living/basic/seedling.html new file mode 100644 index 0000000000000..eb0651f33ca31 --- /dev/null +++ b/mob/living/basic/seedling.html @@ -0,0 +1,2 @@ +/mob/living/basic/seedling - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

seedling

A mobile plant with a rapid ranged attack. +It can pick up watering cans and look after plants.

Vars

combatant_statethe state of combat we are in
held_canthe bucket we carry
petal_activeappearance when we are in the firing state
petal_deadappearance when we are dead
petal_neutralappearance when we are in our normal state
petal_warmupappearance when we are in our warmup state
possible_colorsthe colors our petals can have
seedling_commandscommands we follow

Procs

treat_hydro_trayseedlings can water trays, remove weeds, or remove dead plants

Var Details

combatant_state

the state of combat we are in

held_can

the bucket we carry

petal_active

appearance when we are in the firing state

petal_dead

appearance when we are dead

petal_neutral

appearance when we are in our normal state

petal_warmup

appearance when we are in our warmup state

possible_colors

the colors our petals can have

seedling_commands

commands we follow

Proc Details

treat_hydro_tray

seedlings can water trays, remove weeds, or remove dead plants

\ No newline at end of file diff --git a/mob/living/basic/shade.html b/mob/living/basic/shade.html new file mode 100644 index 0000000000000..1e159e1e41149 --- /dev/null +++ b/mob/living/basic/shade.html @@ -0,0 +1 @@ +/mob/living/basic/shade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shade

Vars

remains_by_themeThe different flavors of goop shades can drop, depending on theme.
themeTheme controls color. THEME_CULT is red THEME_WIZARD is purple and THEME_HOLY is blue

Var Details

remains_by_theme

The different flavors of goop shades can drop, depending on theme.

theme

Theme controls color. THEME_CULT is red THEME_WIZARD is purple and THEME_HOLY is blue

\ No newline at end of file diff --git a/mob/living/basic/sheep.html b/mob/living/basic/sheep.html new file mode 100644 index 0000000000000..78533e719a9c3 --- /dev/null +++ b/mob/living/basic/sheep.html @@ -0,0 +1 @@ +/mob/living/basic/sheep - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sheep

Vars

cult_convertedWere we sacrificed by cultists?

Procs

on_sacrificedSignal proc for COMSIG_LIVING_CULT_SACRIFICED to have special interaction with sacrificing a lamb

Var Details

cult_converted

Were we sacrificed by cultists?

Proc Details

on_sacrificed

Signal proc for COMSIG_LIVING_CULT_SACRIFICED to have special interaction with sacrificing a lamb

\ No newline at end of file diff --git a/mob/living/basic/skeleton.html b/mob/living/basic/skeleton.html new file mode 100644 index 0000000000000..76ef64a471642 --- /dev/null +++ b/mob/living/basic/skeleton.html @@ -0,0 +1 @@ +/mob/living/basic/skeleton - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

skeleton

Vars

bad_drinksBad milk that skeletons hate
good_drinksTypes of milk skeletons like to drink
held_itemPath of the held item we give to the mob's visuals.
lootLoot this mob drops on death.
outfitPath of the outfit we give to the mob's visuals.
speciesPath of the species we give to the mob's visuals.

Var Details

bad_drinks

Bad milk that skeletons hate

good_drinks

Types of milk skeletons like to drink

held_item

Path of the held item we give to the mob's visuals.

loot

Loot this mob drops on death.

outfit

Path of the outfit we give to the mob's visuals.

species

Path of the species we give to the mob's visuals.

\ No newline at end of file diff --git a/mob/living/basic/slime.html b/mob/living/basic/slime.html new file mode 100644 index 0000000000000..c245522c8e596 --- /dev/null +++ b/mob/living/basic/slime.html @@ -0,0 +1 @@ +/mob/living/basic/slime - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

slime

Vars

amount_grownControls how long the slime has been overfed, if 10, grows or reproduces
applied_crossbreed_amountHow many extracts of the modtype have been applied.
coresThe number of /obj/item/slime_extract's the slime has left inside
crossbreed_modificationWhat cross core modification is being used.
current_moodOur slime's current mood
evolve_actionOur evolve action
hunger_disabledNo hunger
life_stageWhat is our current lifestage?
mutation_chanceChance of mutating, should be between 25 and 35
mutator_usedHas a mutator been used on the slime? Only one is allowed
pet_commandsInstructions you can give to slimes
powerlevel1-10 controls how much electricity they are generating
reproduce_actionOur reproduction action

Procs

apply_waterHandles the adverse effects of water on slimes
can_feed_onCan the slime leech life energy from the target?
check_item_passthroughChecks if an item harmlessly passes through the slime
discipline_slimeStops the slime from feeding, and might remove rabidity and targets
handle_nutritionHandles the consumption of nutrition, and growth
handle_slime_stasisHandles if a slime's environment would cause it to enter stasis. Ignores TRAIT_STASIS
on_attack_handIf a slime is attack with an empty hand, shoves included, try to wrestle them off the mob they are on
on_slime_pre_attackHandles slime attacking restrictions, and any extra effects that would trigger
random_colourrandomizes the colour of a slime
reproduceSplits the slime into multiple children if possible
resist_buckleSlimes can hop off mobs they have latched onto
set_default_behaviourMakes the slime hungry but mostly friendly
set_enraged_behaviourMakes the slime angry and hungry
set_life_stageChanges the slime's current life state
set_pacified_behaviourMakes the slime peaceful and content
set_slime_typeSets the slime's type, name and its icons
spawn_corecrossSpawns a crossed slimecore item
start_feedingThe slime will start feeding on the target
stop_feedingThe slime will stop feeding
try_discipline_slimeAttempts to use the item to discipline the unruly slime
try_extract_coresProc for slime core removal surgery, tries to remove cores from a dead slime.
use_sheetHandles feeding a sheet of plasma to a slime
use_xeno_bagHandles feeding a slim with a bag full of extracts

Var Details

amount_grown

Controls how long the slime has been overfed, if 10, grows or reproduces

applied_crossbreed_amount

How many extracts of the modtype have been applied.

cores

The number of /obj/item/slime_extract's the slime has left inside

crossbreed_modification

What cross core modification is being used.

current_mood

Our slime's current mood

evolve_action

Our evolve action

hunger_disabled

No hunger

life_stage

What is our current lifestage?

mutation_chance

Chance of mutating, should be between 25 and 35

mutator_used

Has a mutator been used on the slime? Only one is allowed

pet_commands

Instructions you can give to slimes

powerlevel

1-10 controls how much electricity they are generating

reproduce_action

Our reproduction action

Proc Details

apply_water

Handles the adverse effects of water on slimes

can_feed_on

Can the slime leech life energy from the target?

check_item_passthrough

Checks if an item harmlessly passes through the slime

discipline_slime

Stops the slime from feeding, and might remove rabidity and targets

handle_nutrition

Handles the consumption of nutrition, and growth

handle_slime_stasis

Handles if a slime's environment would cause it to enter stasis. Ignores TRAIT_STASIS

on_attack_hand

If a slime is attack with an empty hand, shoves included, try to wrestle them off the mob they are on

on_slime_pre_attack

Handles slime attacking restrictions, and any extra effects that would trigger

random_colour

randomizes the colour of a slime

reproduce

Splits the slime into multiple children if possible

resist_buckle

Slimes can hop off mobs they have latched onto

set_default_behaviour

Makes the slime hungry but mostly friendly

set_enraged_behaviour

Makes the slime angry and hungry

set_life_stage

Changes the slime's current life state

set_pacified_behaviour

Makes the slime peaceful and content

set_slime_type

Sets the slime's type, name and its icons

spawn_corecross

Spawns a crossed slimecore item

start_feeding

The slime will start feeding on the target

stop_feeding

The slime will stop feeding

try_discipline_slime

Attempts to use the item to discipline the unruly slime

try_extract_cores

Proc for slime core removal surgery, tries to remove cores from a dead slime.

use_sheet

Handles feeding a sheet of plasma to a slime

use_xeno_bag

Handles feeding a slim with a bag full of extracts

\ No newline at end of file diff --git a/mob/living/basic/snake.html b/mob/living/basic/snake.html new file mode 100644 index 0000000000000..35a6ed476701e --- /dev/null +++ b/mob/living/basic/snake.html @@ -0,0 +1 @@ +/mob/living/basic/snake - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

snake

Vars

ediblesList of stuff (mice) that we want to eat

Var Details

edibles

List of stuff (mice) that we want to eat

\ No newline at end of file diff --git a/mob/living/basic/space_dragon.html b/mob/living/basic/space_dragon.html new file mode 100644 index 0000000000000..e516a535458c6 --- /dev/null +++ b/mob/living/basic/space_dragon.html @@ -0,0 +1,3 @@ +/mob/living/basic/space_dragon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

space_dragon

Advanced stage of the space carp life cycle, spawned as a midround antagonist +Can eat corpses to heal, blow people back with its wings, and obviously as a dragon it breathes fire. It can even tear through walls. +The midround even version also creates rifts which summon carp, and heals when near them.

Vars

buffetOur wing flap action
chosen_colourThe colour of the space dragon
devastation_damage_max_percentageMaximum devastation damage dealt coefficient based on max health
devastation_damage_min_percentageMinimum devastation damage dealt coefficient based on max health
fire_breathOur fire breath action

Procs

eatSucceed in putting something inside us
eaten_stat_changedRelease consumed mobs if they transition from dead to alive
on_explodedWe take devastating bomb damage as a random percentage of our maximum health instead of being gibbed
on_stat_changedWhen our stat changes, make sure we are using the correct overlay
pre_attackBefore we attack something, check if we want to do something else instead
rename_dragonAllows the space dragon to pick a funny name
select_colourSelect scale colour with the colour picker
try_eatTry putting something inside us

Var Details

buffet

Our wing flap action

chosen_colour

The colour of the space dragon

devastation_damage_max_percentage

Maximum devastation damage dealt coefficient based on max health

devastation_damage_min_percentage

Minimum devastation damage dealt coefficient based on max health

fire_breath

Our fire breath action

Proc Details

eat

Succeed in putting something inside us

eaten_stat_changed

Release consumed mobs if they transition from dead to alive

on_exploded

We take devastating bomb damage as a random percentage of our maximum health instead of being gibbed

on_stat_changed

When our stat changes, make sure we are using the correct overlay

pre_attack

Before we attack something, check if we want to do something else instead

rename_dragon

Allows the space dragon to pick a funny name

select_colour

Select scale colour with the colour picker

try_eat

Try putting something inside us

\ No newline at end of file diff --git a/mob/living/basic/spider.html b/mob/living/basic/spider.html new file mode 100644 index 0000000000000..97b4b6711d00d --- /dev/null +++ b/mob/living/basic/spider.html @@ -0,0 +1 @@ +/mob/living/basic/spider - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spider

Base type of various spider life stages

Vars

apply_spider_antagIf true then you shouldn't be told that you're a spider antagonist as soon as you are placed into this mob
bite_injection_flagsHow tough is our bite?
directiveThe message that the mother spider left for this spider when the egg was layed.
menu_descriptionShort description of what this mob is capable of, for radial menu uses
player_speed_modifierSpeed modifier to apply if controlled by a human player
poison_per_biteHow much of a reagent the mob injects on attack
poison_typeWhat reagent the mob injects targets with
web_speedMultiplier to apply to web laying speed. Fractional numbers make it faster, because it's a multiplier.
web_typeType of webbing ability to learn.

Var Details

apply_spider_antag

If true then you shouldn't be told that you're a spider antagonist as soon as you are placed into this mob

bite_injection_flags

How tough is our bite?

directive

The message that the mother spider left for this spider when the egg was layed.

menu_description

Short description of what this mob is capable of, for radial menu uses

player_speed_modifier

Speed modifier to apply if controlled by a human player

poison_per_bite

How much of a reagent the mob injects on attack

poison_type

What reagent the mob injects targets with

web_speed

Multiplier to apply to web laying speed. Fractional numbers make it faster, because it's a multiplier.

web_type

Type of webbing ability to learn.

\ No newline at end of file diff --git a/mob/living/basic/spider/giant.html b/mob/living/basic/spider/giant.html new file mode 100644 index 0000000000000..80debc26ca41e --- /dev/null +++ b/mob/living/basic/spider/giant.html @@ -0,0 +1,3 @@ +/mob/living/basic/spider/giant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Giant Spider

A mob which can be created by dynamic event, botany, or xenobiology. +The basic type is the guard, which is slow but sturdy and outputs good damage. +All spiders can produce webbing.

Vars

innate_actionsActions to grant on Initialize

Var Details

innate_actions

Actions to grant on Initialize

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/ambush.html b/mob/living/basic/spider/giant/ambush.html new file mode 100644 index 0000000000000..5b57422a44768 --- /dev/null +++ b/mob/living/basic/spider/giant/ambush.html @@ -0,0 +1,3 @@ +/mob/living/basic/spider/giant/ambush - /tg/ Station 13
/tg/ Station 13 - Modules - Types

ambush

Ambush Spider

+

A subtype of the giant spider which is slower, stronger and able to sneak into its surroundings to pull pray aggressively. +This spider is only slightly slower than a human.

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/breacher.html b/mob/living/basic/spider/giant/breacher.html new file mode 100644 index 0000000000000..7b05b545fccbd --- /dev/null +++ b/mob/living/basic/spider/giant/breacher.html @@ -0,0 +1,3 @@ +/mob/living/basic/spider/giant/breacher - /tg/ Station 13
/tg/ Station 13 - Modules - Types

breacher

Spider Breacher

+

A subtype of the giant spider, specialized in breaching and invasion. +This spider is only slightly slower than a human.

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/guard.html b/mob/living/basic/spider/giant/guard.html new file mode 100644 index 0000000000000..09889e3b5617c --- /dev/null +++ b/mob/living/basic/spider/giant/guard.html @@ -0,0 +1,3 @@ +/mob/living/basic/spider/giant/guard - /tg/ Station 13
/tg/ Station 13 - Modules - Types

guard

Guard Spider

+

A subtype of the giant spider which is similar on every single way, +This spider is only slightly slower than a human.

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/hunter.html b/mob/living/basic/spider/giant/hunter.html new file mode 100644 index 0000000000000..4a8f2e93d322f --- /dev/null +++ b/mob/living/basic/spider/giant/hunter.html @@ -0,0 +1,3 @@ +/mob/living/basic/spider/giant/hunter - /tg/ Station 13
/tg/ Station 13 - Modules - Types

hunter

Hunter Spider

+

A subtype of the giant spider which is faster, has toxin injection, but less health and damage. +This spider is only slightly slower than a human.

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/hunter/ice.html b/mob/living/basic/spider/giant/hunter/ice.html new file mode 100644 index 0000000000000..b96aeb049ecc3 --- /dev/null +++ b/mob/living/basic/spider/giant/hunter/ice.html @@ -0,0 +1,2 @@ +/mob/living/basic/spider/giant/hunter/ice - /tg/ Station 13
/tg/ Station 13 - Modules - Types

ice

Ice Hunter Spider

+

A temperature-proof hunter with chilling venom. Also unused.

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/hunter/scrawny.html b/mob/living/basic/spider/giant/hunter/scrawny.html new file mode 100644 index 0000000000000..7a5adc90b069b --- /dev/null +++ b/mob/living/basic/spider/giant/hunter/scrawny.html @@ -0,0 +1,3 @@ +/mob/living/basic/spider/giant/hunter/scrawny - /tg/ Station 13
/tg/ Station 13 - Modules - Types

scrawny

Scrawny Hunter Spider

+

A hunter spider that trades damage for health, unable to smash enviroments. +Used as a minor threat in abandoned places, such as areas in maintenance or a ruin.

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/ice.html b/mob/living/basic/spider/giant/ice.html new file mode 100644 index 0000000000000..c87d0e5329f82 --- /dev/null +++ b/mob/living/basic/spider/giant/ice.html @@ -0,0 +1,3 @@ +/mob/living/basic/spider/giant/ice - /tg/ Station 13
/tg/ Station 13 - Modules - Types

ice

Giant Ice Spider

+

A subtype of the giant spider which is immune to temperature damage, unlike its normal counterpart. +Currently unused in the game unless spawned by admins.

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/midwife.html b/mob/living/basic/spider/giant/midwife.html new file mode 100644 index 0000000000000..a39c51b6e8695 --- /dev/null +++ b/mob/living/basic/spider/giant/midwife.html @@ -0,0 +1,5 @@ +/mob/living/basic/spider/giant/midwife - /tg/ Station 13
/tg/ Station 13 - Modules - Types

midwife

Spider Broodmother

+

A subtype of the giant spider which is the crux of a spider horde, and the way which it grows. +Has very little offensive capabilities but can lay eggs at any time to create more basic spiders. +After consuming human bodies can lay specialised eggs including more broodmothers. +They are also capable of sending messages to all living spiders and setting directives for their children.

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/nurse.html b/mob/living/basic/spider/giant/nurse.html new file mode 100644 index 0000000000000..aafc758ee836d --- /dev/null +++ b/mob/living/basic/spider/giant/nurse.html @@ -0,0 +1,4 @@ +/mob/living/basic/spider/giant/nurse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nurse

Nurse Spider

+

A subtype of the giant spider which specializes in support skills. +Nurses can place down webbing in a quarter of the time that other species can and can wrap other spiders' wounds, healing them. +Note that it cannot heal itself.

Vars

health_hudThe health HUD applied to the mob.

Var Details

health_hud

The health HUD applied to the mob.

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/nurse/ice.html b/mob/living/basic/spider/giant/nurse/ice.html new file mode 100644 index 0000000000000..a67d0cc9244fa --- /dev/null +++ b/mob/living/basic/spider/giant/nurse/ice.html @@ -0,0 +1,2 @@ +/mob/living/basic/spider/giant/nurse/ice - /tg/ Station 13
/tg/ Station 13 - Modules - Types

ice

Ice Nurse Spider

+

A temperature-proof nurse spider. Also unused.

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/nurse/scrawny.html b/mob/living/basic/spider/giant/nurse/scrawny.html new file mode 100644 index 0000000000000..3c6abf18a6b46 --- /dev/null +++ b/mob/living/basic/spider/giant/nurse/scrawny.html @@ -0,0 +1,4 @@ +/mob/living/basic/spider/giant/nurse/scrawny - /tg/ Station 13
/tg/ Station 13 - Modules - Types

scrawny

Scrawny Nurse Spider

+

A weaker version of the nurse spider with reduced health, unable to smash enviroments. +Mainly used as a weak threat in abandoned places, such as areas in maintenance or a ruin. +In the future we should give this AI so that it actually heals its teammates.

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/scout.html b/mob/living/basic/spider/giant/scout.html new file mode 100644 index 0000000000000..e77b2a1c3ac69 --- /dev/null +++ b/mob/living/basic/spider/giant/scout.html @@ -0,0 +1,3 @@ +/mob/living/basic/spider/giant/scout - /tg/ Station 13
/tg/ Station 13 - Modules - Types

scout

Scout Spider

+

A subtype of the giant spider which is faster, has thermal vision, but less health and damage. +This spider is only slightly faster than a human.

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/sgt_araneus.html b/mob/living/basic/spider/giant/sgt_araneus.html new file mode 100644 index 0000000000000..6c6319971d778 --- /dev/null +++ b/mob/living/basic/spider/giant/sgt_araneus.html @@ -0,0 +1,2 @@ +/mob/living/basic/spider/giant/sgt_araneus - /tg/ Station 13
/tg/ Station 13 - Modules - Types

sgt_araneus

Sergeant Araneus

+

This friendly arachnid hangs out in the HoS office on some space stations. Better trained than an average officer and does not attack except in self-defence.

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/tangle.html b/mob/living/basic/spider/giant/tangle.html new file mode 100644 index 0000000000000..6d2a4f1128a5f --- /dev/null +++ b/mob/living/basic/spider/giant/tangle.html @@ -0,0 +1,4 @@ +/mob/living/basic/spider/giant/tangle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

tangle

Tangle Spider

+

A subtype of the giant spider which specializes in support skills. +Tangle spiders can place down webbing in a quarter of the time that other species plus has an expanded arsenal of traps and web structures to place to benefit the nest. +Note that it can heal itself.

Procs

can_mendPrevent you from healing other tangle spiders, or healing when on fire

Proc Details

can_mend

Prevent you from healing other tangle spiders, or healing when on fire

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/tank.html b/mob/living/basic/spider/giant/tank.html new file mode 100644 index 0000000000000..a72f9d052aa34 --- /dev/null +++ b/mob/living/basic/spider/giant/tank.html @@ -0,0 +1,3 @@ +/mob/living/basic/spider/giant/tank - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

tank

Spider Tank

+

A subtype of the giant spider, specialized in taking damage. +This spider is only slightly slower than a human.

Procs

can_mendPrevent you from healing when on fire

Proc Details

can_mend

Prevent you from healing when on fire

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/tarantula.html b/mob/living/basic/spider/giant/tarantula.html new file mode 100644 index 0000000000000..04190942b5eae --- /dev/null +++ b/mob/living/basic/spider/giant/tarantula.html @@ -0,0 +1,3 @@ +/mob/living/basic/spider/giant/tarantula - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tarantula

Tarantula

+

A subtype of the giant spider which specializes in pure strength and staying power. +Is slowed down when not on webbing, but can lunge to throw off attackers and possibly to stun them.

Vars

chargeCharging ability, kept seperate from innate_actions due to implementation details

Procs

ranged_secondary_attackLunge if you click something at range

Var Details

charge

Charging ability, kept seperate from innate_actions due to implementation details

Proc Details

ranged_secondary_attack

Lunge if you click something at range

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/tarantula/scrawny.html b/mob/living/basic/spider/giant/tarantula/scrawny.html new file mode 100644 index 0000000000000..982d4f29d8aed --- /dev/null +++ b/mob/living/basic/spider/giant/tarantula/scrawny.html @@ -0,0 +1,3 @@ +/mob/living/basic/spider/giant/tarantula/scrawny - /tg/ Station 13
/tg/ Station 13 - Modules - Types

scrawny

Scrawny Tarantula

+

A weaker version of the Tarantula, unable to smash enviroments. +Used as a moderately strong but slow threat in abandoned places, such as areas in maintenance or a ruin.

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/viper.html b/mob/living/basic/spider/giant/viper.html new file mode 100644 index 0000000000000..ec5ca7f101654 --- /dev/null +++ b/mob/living/basic/spider/giant/viper.html @@ -0,0 +1,3 @@ +/mob/living/basic/spider/giant/viper - /tg/ Station 13
/tg/ Station 13 - Modules - Types

viper

Spider Viper

+

A subtype of the giant spider which specializes in speed and poison. +Injects a deadlier toxin than other spiders, moves extremely fast, but has a limited amount of health.

\ No newline at end of file diff --git a/mob/living/basic/spider/giant/viper/wizard.html b/mob/living/basic/spider/giant/viper/wizard.html new file mode 100644 index 0000000000000..ca69e0f9bf9bc --- /dev/null +++ b/mob/living/basic/spider/giant/viper/wizard.html @@ -0,0 +1,2 @@ +/mob/living/basic/spider/giant/viper/wizard - /tg/ Station 13
/tg/ Station 13 - Modules - Types

wizard

Viper Spider (Wizard)

+

A spider form for wizards. Has the viper spider's extreme speed and strong venom, with additional health and vent crawling abilities.

\ No newline at end of file diff --git a/mob/living/basic/spider/growing.html b/mob/living/basic/spider/growing.html new file mode 100644 index 0000000000000..a4d0c2cca0dac --- /dev/null +++ b/mob/living/basic/spider/growing.html @@ -0,0 +1,5 @@ +/mob/living/basic/spider/growing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

growing

Spider which turns into another spider over time

Vars

grow_asThe mob type we will grow into.
spider_growth_timeThe time it takes for the spider to grow into the next stage

Procs

grow_upActually grows the young spider into a giant spider. We have to do a bunch of unique behavior that really can't be genericized, so we have to override the component in this manner. +Actually move to our next stage of life.
ready_to_growChecks to see if we're ready to grow, primarily if we are on solid ground and not in a vent or something. +The component will automagically grow us when we return TRUE and that threshold has been met.

Var Details

grow_as

The mob type we will grow into.

spider_growth_time

The time it takes for the spider to grow into the next stage

Proc Details

grow_up

Actually grows the young spider into a giant spider. We have to do a bunch of unique behavior that really can't be genericized, so we have to override the component in this manner. +Actually move to our next stage of life.

ready_to_grow

Checks to see if we're ready to grow, primarily if we are on solid ground and not in a vent or something. +The component will automagically grow us when we return TRUE and that threshold has been met.

\ No newline at end of file diff --git a/mob/living/basic/spider/growing/young/nurse.html b/mob/living/basic/spider/growing/young/nurse.html new file mode 100644 index 0000000000000..10a4ec5c5b551 --- /dev/null +++ b/mob/living/basic/spider/growing/young/nurse.html @@ -0,0 +1 @@ +/mob/living/basic/spider/growing/young/nurse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nurse

Will differentiate into the "nurse" giant spider.

Vars

health_hudThe health HUD applied to the mob.

Var Details

health_hud

The health HUD applied to the mob.

\ No newline at end of file diff --git a/mob/living/basic/spider/growing/young/tangle.html b/mob/living/basic/spider/growing/young/tangle.html new file mode 100644 index 0000000000000..c307f9e95fd90 --- /dev/null +++ b/mob/living/basic/spider/growing/young/tangle.html @@ -0,0 +1 @@ +/mob/living/basic/spider/growing/young/tangle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

tangle

Will differentiate into the "tangle" giant spider.

Procs

can_mendPrevent you from healing other tangle spiders, or healing when on fire

Proc Details

can_mend

Prevent you from healing other tangle spiders, or healing when on fire

\ No newline at end of file diff --git a/mob/living/basic/spider/growing/young/tank.html b/mob/living/basic/spider/growing/young/tank.html new file mode 100644 index 0000000000000..af88700ff4475 --- /dev/null +++ b/mob/living/basic/spider/growing/young/tank.html @@ -0,0 +1 @@ +/mob/living/basic/spider/growing/young/tank - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

tank

Will differentiate into the "tank" giant spider.

Procs

can_mendPrevent you from healing when on fire

Proc Details

can_mend

Prevent you from healing when on fire

\ No newline at end of file diff --git a/mob/living/basic/spider/maintenance.html b/mob/living/basic/spider/maintenance.html new file mode 100644 index 0000000000000..b6eae521aebc9 --- /dev/null +++ b/mob/living/basic/spider/maintenance.html @@ -0,0 +1,2 @@ +/mob/living/basic/spider/maintenance - /tg/ Station 13
/tg/ Station 13 - Modules - Types

maintenance

Duct Spider

+

A less than giant spider which lives in the maintenance ducts and makes them annoying to traverse.

\ No newline at end of file diff --git a/mob/living/basic/statue/mannequin.html b/mob/living/basic/statue/mannequin.html new file mode 100644 index 0000000000000..615735da27e26 --- /dev/null +++ b/mob/living/basic/statue/mannequin.html @@ -0,0 +1 @@ +/mob/living/basic/statue/mannequin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mannequin

Vars

hatthe path to a fake hat we will wear
held_itemthe path to a fake item we will hold in our right hand

Var Details

hat

the path to a fake hat we will wear

held_item

the path to a fake item we will hold in our right hand

\ No newline at end of file diff --git a/mob/living/basic/supermatter_spider.html b/mob/living/basic/supermatter_spider.html new file mode 100644 index 0000000000000..addd4db0b60eb --- /dev/null +++ b/mob/living/basic/supermatter_spider.html @@ -0,0 +1 @@ +/mob/living/basic/supermatter_spider - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

supermatter_spider

A nasty little robotic bug that dusts people on attack. Jeepers. This should be a very, very, very rare spawn.

Vars

single_useIf we successfully dust something, should we die?

Procs

dust_feedbackSimple proc that plays the supermatter dusting sound and sends a visible message.
on_attackProc that we call on attacking something to dust 'em.

Var Details

single_use

If we successfully dust something, should we die?

Proc Details

dust_feedback

Simple proc that plays the supermatter dusting sound and sends a visible message.

on_attack

Proc that we call on attacking something to dust 'em.

\ No newline at end of file diff --git a/mob/living/basic/trader.html b/mob/living/basic/trader.html new file mode 100644 index 0000000000000..77e052f85768e --- /dev/null +++ b/mob/living/basic/trader.html @@ -0,0 +1 @@ +/mob/living/basic/trader - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

trader

Vars

currency_nameThe currency name
held_weapon_visualWeapon path, for visuals
lootThe loot we drop when we die
ranged_attack_casingCasing used to shoot during retaliation
ranged_attack_soundSound to make while doing a retalitory attack
sell_soundSound used when item sold/bought
spawner_pathThe spawner we use to create our look
species_pathOur species to create our look
trader_data_pathType path for the trader datum to use for retrieving the traders wares, speech, etc

Var Details

currency_name

The currency name

held_weapon_visual

Weapon path, for visuals

loot

The loot we drop when we die

ranged_attack_casing

Casing used to shoot during retaliation

ranged_attack_sound

Sound to make while doing a retalitory attack

sell_sound

Sound used when item sold/bought

spawner_path

The spawner we use to create our look

species_path

Our species to create our look

trader_data_path

Type path for the trader datum to use for retrieving the traders wares, speech, etc

\ No newline at end of file diff --git a/mob/living/basic/tree.html b/mob/living/basic/tree.html new file mode 100644 index 0000000000000..d133fae370ca5 --- /dev/null +++ b/mob/living/basic/tree.html @@ -0,0 +1 @@ +/mob/living/basic/tree - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tree

Vars

anger_boostAdditional paralyze chance
infuriating_objectsitems that make us angry
paralyze_probchance of target getting paralyzed
paralyze_valuefor how the target is paralyzed

Var Details

anger_boost

Additional paralyze chance

infuriating_objects

items that make us angry

paralyze_prob

chance of target getting paralyzed

paralyze_value

for how the target is paralyzed

\ No newline at end of file diff --git a/mob/living/basic/trooper.html b/mob/living/basic/trooper.html new file mode 100644 index 0000000000000..18ecb2878fe1b --- /dev/null +++ b/mob/living/basic/trooper.html @@ -0,0 +1 @@ +/mob/living/basic/trooper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

trooper

Vars

l_handPath of the left hand held item we give to the mob's visuals.
lootLoot this mob drops on death.
mob_spawnerPath of the mob spawner we base the mob's visuals off of.
r_handPath of the right hand held item we give to the mob's visuals.

Var Details

l_hand

Path of the left hand held item we give to the mob's visuals.

loot

Loot this mob drops on death.

mob_spawner

Path of the mob spawner we base the mob's visuals off of.

r_hand

Path of the right hand held item we give to the mob's visuals.

\ No newline at end of file diff --git a/mob/living/basic/trooper/abductor/ranged.html b/mob/living/basic/trooper/abductor/ranged.html new file mode 100644 index 0000000000000..185aae25f6827 --- /dev/null +++ b/mob/living/basic/trooper/abductor/ranged.html @@ -0,0 +1 @@ +/mob/living/basic/trooper/abductor/ranged - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ranged

Vars

burst_shotsnumber of burst shots
casingtypeType of bullet we use
projectilesoundSound to play when firing weapon
ranged_cooldownTime between taking shots

Var Details

burst_shots

number of burst shots

casingtype

Type of bullet we use

projectilesound

Sound to play when firing weapon

ranged_cooldown

Time between taking shots

\ No newline at end of file diff --git a/mob/living/basic/trooper/cin_soldier/ranged.html b/mob/living/basic/trooper/cin_soldier/ranged.html new file mode 100644 index 0000000000000..4e6b2c3f4e8b3 --- /dev/null +++ b/mob/living/basic/trooper/cin_soldier/ranged.html @@ -0,0 +1 @@ +/mob/living/basic/trooper/cin_soldier/ranged - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ranged

Vars

burst_shotsnumber of burst shots
casingtypeType of bullet we use
projectilesoundSound to play when firing weapon
ranged_cooldownTime between taking shots

Var Details

burst_shots

number of burst shots

casingtype

Type of bullet we use

projectilesound

Sound to play when firing weapon

ranged_cooldown

Time between taking shots

\ No newline at end of file diff --git a/mob/living/basic/trooper/nanotrasen/ranged.html b/mob/living/basic/trooper/nanotrasen/ranged.html new file mode 100644 index 0000000000000..f719c9f1eab14 --- /dev/null +++ b/mob/living/basic/trooper/nanotrasen/ranged.html @@ -0,0 +1 @@ +/mob/living/basic/trooper/nanotrasen/ranged - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ranged

Vars

burst_shotsnumber of burst shots
casingtypeType of bullet we use
projectilesoundSound to play when firing weapon
ranged_cooldownTime between taking shots

Var Details

burst_shots

number of burst shots

casingtype

Type of bullet we use

projectilesound

Sound to play when firing weapon

ranged_cooldown

Time between taking shots

\ No newline at end of file diff --git a/mob/living/basic/trooper/pirate.html b/mob/living/basic/trooper/pirate.html new file mode 100644 index 0000000000000..e54c2b803a116 --- /dev/null +++ b/mob/living/basic/trooper/pirate.html @@ -0,0 +1 @@ +/mob/living/basic/trooper/pirate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pirate

Pirate trooper subtype

Vars

plunder_creditsThe amount of money to steal with a melee attack

Var Details

plunder_credits

The amount of money to steal with a melee attack

\ No newline at end of file diff --git a/mob/living/basic/trooper/pirate/ranged.html b/mob/living/basic/trooper/pirate/ranged.html new file mode 100644 index 0000000000000..e4480737e9c7b --- /dev/null +++ b/mob/living/basic/trooper/pirate/ranged.html @@ -0,0 +1 @@ +/mob/living/basic/trooper/pirate/ranged - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ranged

Vars

burst_shotsnumber of burst shots
projectilesoundSound to play when firing weapon
projectiletypeType of bullet we use
ranged_cooldownTime between taking shots

Var Details

burst_shots

number of burst shots

projectilesound

Sound to play when firing weapon

projectiletype

Type of bullet we use

ranged_cooldown

Time between taking shots

\ No newline at end of file diff --git a/mob/living/basic/trooper/syndicate/ranged.html b/mob/living/basic/trooper/syndicate/ranged.html new file mode 100644 index 0000000000000..e1c533d9f6d94 --- /dev/null +++ b/mob/living/basic/trooper/syndicate/ranged.html @@ -0,0 +1 @@ +/mob/living/basic/trooper/syndicate/ranged - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ranged

Guns

Vars

burst_shotsnumber of burst shots
casingtypeType of bullet we use
projectilesoundSound to play when firing weapon
ranged_cooldownTime between taking shots

Var Details

burst_shots

number of burst shots

casingtype

Type of bullet we use

projectilesound

Sound to play when firing weapon

ranged_cooldown

Time between taking shots

\ No newline at end of file diff --git a/mob/living/basic/venus_human_trap.html b/mob/living/basic/venus_human_trap.html new file mode 100644 index 0000000000000..b1a45f6f504c7 --- /dev/null +++ b/mob/living/basic/venus_human_trap.html @@ -0,0 +1,7 @@ +/mob/living/basic/venus_human_trap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

venus_human_trap

Venus Human Trap

+

The result of a kudzu flower bud, these enemies use vines to drag prey close to them for attack.

+

A carnivorious plant which uses vines to catch and ensnare prey. Spawns from kudzu flower buds. +Each one can attach up to two temporary vines to objects or mobs and drag them around with it. +Attempting to attach a vine to something with a vine already attached to it will pull all movable targets closer on command. +Once the prey is in melee range, melee attacks from the venus human trap heals itself for 10% of its max health, assuming the target is alive. +Akin to certain spiders, venus human traps can also be possessed and controlled by ghosts.

Vars

alert_shownif the balloon alert was shown atleast once, reset after healing in weeds
no_weed_damagehow much damage we take out of weeds
sightcopied over from the code from eyeballs (the mob) to make it easier for venus human traps to see in kudzu that doesn't have the transparency mutation
weed_healhow much do we heal in weeds

Var Details

alert_shown

if the balloon alert was shown atleast once, reset after healing in weeds

no_weed_damage

how much damage we take out of weeds

sight

copied over from the code from eyeballs (the mob) to make it easier for venus human traps to see in kudzu that doesn't have the transparency mutation

weed_heal

how much do we heal in weeds

\ No newline at end of file diff --git a/mob/living/basic/wizard.html b/mob/living/basic/wizard.html new file mode 100644 index 0000000000000..af60cf6d43948 --- /dev/null +++ b/mob/living/basic/wizard.html @@ -0,0 +1 @@ +/mob/living/basic/wizard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wizard

Vars

secondary_spell_listList of possible secondary spells to pick from
secondary_spell_pathTypepath for the wizard's secondary spell. If null, selects randomly.
selected_outfitA specified wizard corpse spawner to use. If null, picks from the list above instead.
targeted_spell_listList of possible targeted spells to pick from
targeted_spell_pathTypepath for the wizard's targeted spell. If null, selects randomly.
wizard_outfitsA list of possible wizard corpses, and therefore wizard outfits, to select from

Var Details

secondary_spell_list

List of possible secondary spells to pick from

secondary_spell_path

Typepath for the wizard's secondary spell. If null, selects randomly.

selected_outfit

A specified wizard corpse spawner to use. If null, picks from the list above instead.

targeted_spell_list

List of possible targeted spells to pick from

targeted_spell_path

Typepath for the wizard's targeted spell. If null, selects randomly.

wizard_outfits

A list of possible wizard corpses, and therefore wizard outfits, to select from

\ No newline at end of file diff --git a/mob/living/basic/wumborian_fugu.html b/mob/living/basic/wumborian_fugu.html new file mode 100644 index 0000000000000..e954475e5b04e --- /dev/null +++ b/mob/living/basic/wumborian_fugu.html @@ -0,0 +1,3 @@ +/mob/living/basic/wumborian_fugu - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Wumborian Fugu

A strange alien creature capable of increasing its mass when threatened, when not inflated it is virtually defenceless. +Mostly only appears from xenobiology, or the occasional wizard. +On death, the "fugu gland" is dropped, which can be used on mobs to increase their size, health, strength, and lets them smash walls.

Vars

expandAbility used by the mob to become large, dangerous, and invulnerable

Var Details

expand

Ability used by the mob to become large, dangerous, and invulnerable

\ No newline at end of file diff --git a/mob/living/brain.html b/mob/living/brain.html new file mode 100644 index 0000000000000..7c1d882d3cb07 --- /dev/null +++ b/mob/living/brain.html @@ -0,0 +1 @@ +/mob/living/brain - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

brain

Procs

send_applicable_messagesOverride parent here because... the blind message doesn't really work given what's happen when a brain suicides. Can't hear a brain going grey. So, we omit the "blind" message.

Proc Details

send_applicable_messages

Override parent here because... the blind message doesn't really work given what's happen when a brain suicides. Can't hear a brain going grey. So, we omit the "blind" message.

\ No newline at end of file diff --git a/mob/living/carbon.html b/mob/living/carbon.html new file mode 100644 index 0000000000000..2263bdbf45464 --- /dev/null +++ b/mob/living/carbon.html @@ -0,0 +1,256 @@ +/mob/living/carbon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

carbon

Vars

all_scarsAll of the scars a carbon has afflicted throughout their limbs
all_woundsAll of the wounds a carbon has afflicted throughout their limbs
body_zone_dismembered_byAssoc list of BODY_ZONE -> wounding_type. Set when a limb is dismembered, unset when one is attached. Used for determining what scar to add when it comes time to generate them.
bodypartsGets filled up in /datum/species/proc/replace_body. +Will either contain a list of typepaths if nothing has been created yet, +or a list of the body part objects.
bodyshapeA bitfield of "bodyshapes", updated by /obj/item/bodypart/proc/synchronize_bodyshapes()
bodytypeA bitfield of "bodytypes", updated by /obj/item/bodypart/proc/synchronize_bodytypes()
breathing_loopSound loop for breathing when using internals
can_be_shoved_intoCan other carbons be shoved into this one to make it fall?
co2overloadtimeUsed in [carbon/proc/check_breath] and [lungs/proc/check_breath]]
cold_protectionProtection (insulation) from the cold, Value 0-1 corresponding to the percentage of protection
damageoverlaytempUsed to temporarily increase severity of / apply a new damage overlay (the red ring around the ui / screen). +This number will translate to equivalent brute or burn damage taken. Handled in [mob/living/proc/update_damage_hud]. +(For example, setting damageoverlaytemp = 20 will add 20 "damage" to the overlay the next time it updates.) +This number is also reset to 0 every tick of carbon Life(). Pain.
disgustMeasure of how disgusted we are. See DISGUST_LEVEL_GROSS and friends
dnaCarbon, you should really only be accessing this through has_dna() but it's your life
earsonly used by humans.
external"External" air tank. Never set this manually. Not required to stay directly equipped on the mob (i.e. could be a machine or MOD suit module).
failed_last_breathThis is used to determine if the mob failed a breath. If they did fail a breath, they will attempt to breathe each tick, otherwise just once per 4 ticks.
glassesonly used by humans.
glovesonly used by humans
hand_bodypartsA collection of arms (or actually whatever the fug /bodyparts you monsters use to wreck my systems)
handcuffedWhether or not the mob is handcuffed
heat_protectionProtection (insulation) from the heat, Value 0-1 corresponding to the percentage of protection
icon_render_keysA cache of bodypart = icon to prevent excessive icon creation.
internalEquipped air tank. Never set this manually.
last_mindlast mind to control this mob, for blood-based cloning
last_top_offsetStores the result of our last known top_offset generation for optimisation purposes when drawing limb icons.
legcuffedSame as handcuffs but for legs. Bear traps use this.
old_disgustHow disgusted we were LAST time we processed disgust. Helps prevent unneeded work
organsList of /obj/item/organs in the mob. They don't go in the contents for some reason I don't want to know.
organs_slotSame as above, but stores "slot ID" - "organ" pairs for easy access.
shoesonly used by humans.
skillchip_complexity_modifierSimple modifier for whether this mob can handle greater or lesser skillchip complexity. See /datum/mutation/human/biotechcompat/ for example.
transformation_timerTimer id of any transformation
visual_only_organsOnly load in visual organs

Procs

add_bodypartProc to hook behavior on bodypart additions. Do not directly call. You're looking for [/obj/item/bodypart/proc/try_attach_limb()].
adjustOrganLossIf an organ exists in the slot requested, and we are capable of taking damage (we don't have TRAIT_GODMODE), call the damage proc on that organ.
adjustPlasmaAdjusts the plasma level of the carbon's plasma vessel if they have one
adjust_bodytemperatureAdjust the body temperature of a mob +expanded for carbon mobs allowing the use of insulation and change steps
adjust_skillchip_complexity_modifierModifies max_skillchip_count and updates active skillchips
bioscrambleRandomise a body part and organ of this mob
bleed_warnbleed_warn() is used to for carbons with an active client to occasionally receive messages warning them about their bleeding status (if applicable)
can_breathe_helmetReturns TRUE if an air tank compatible helmet is equipped.
can_breathe_internalsReturns TRUE if an air tank compatible mask or breathing tube is equipped.
can_breathe_maskReturns TRUE if an air tank compatible mask is equipped.
can_breathe_tubeReturns TRUE if a breathing tube is equipped.
can_touch_acidThis proc is used to determine whether or not the mob can handle touching an acid affected object.
can_touch_burningThis proc is used to determine whether or not the mob can handle touching a burning object.
cause_wound_of_type_and_severityA simple proc to force a type of wound onto this mob. If you just want to force a specific mainline (fractures, bleeding, etc.) wound, you only need to care about the first 3 args.
check_breathThis proc tests if the lungs can breathe, if the mob can breathe a given gas mixture, and throws/clears gas alerts. +If there are moles of gas in the given gas mixture, side-effects may be applied/removed on the mob. +This proc expects a lungs organ in order to breathe successfully, but does not defer any work to it.
check_passoutCheck to see if we should be passed out from oxyloss
check_self_for_injuriesCheck ourselves to see if we've got any shrapnel, return true if we do. This is a much simpler version of what humans do, we only indicate we're checking ourselves if there's actually shrapnel
check_virusMedical HUD! Basic mode needs suit sensors on.
clone_skillchip_listCreates a list of new skillchips cloned from old skillchips in the mob's brain.
close_all_airtanksQuickly/lazily close all airtanks without any returns or notifications.
close_externalsClose the the currently open external (that's EX-ternal) air tank. Returns TRUE if successful.
close_internalsActually closes the active internal or external air tank. +Returns TRUE if the tank was opened successfully.
create_bodypartsCreates body parts for this carbon completely from scratch. +Optionally takes a map of body zones to what type to instantiate instead of them.
cuff_resistHelper to break the cuffs from hands +@param {obj/item} cuffs - The cuffs to break +@param {number} breakouttime - The time it takes to break the cuffs. Use SECONDS/MINUTES defines +@param {number} cuff_break - Speed multiplier, 0 is default, see _DEFINES\combat.dm
cutoff_internalsPrepares emergency disconnect from open air tanks and notifies in chat. Usually called after mob suddenly unequips breathing apparatus.
del_and_replace_bodypartReplaces a single limb and deletes the old one if there was one
destroy_all_skillchipsDestroys all skillchips in the brain, handling appropriate cleanup and event calls.
dreamGenerates a dream sequence to be displayed to the sleeper.
dream_sequenceDisplays the passed list of dream fragments to a sleeping carbon.
electrocute_actAdds to the parent by also adding functionality to propagate shocks through pulling and doing some fluff effects.
equip_conspicuous_itemAttempts to equip the given item in a conspicious place. +This is used when, for instance, a character spawning with an item +in their hands would be a dead giveaway that they are an antagonist. +Returns the human readable name of where it placed the item, or null otherwise.
expel_ingestedExpel the reagents you just tried to ingest
generate_death_examine_textReturns death message for mob examine text
generate_fake_scarsgenerate_fake_scars()- for when you want to scar someone, but you don't want to hurt them first. These scars don't count for temporal scarring (hence, fake)
getPlasmaGets the plasma level of this carbon's plasma vessel, or -1 if they don't have one
get_all_covered_flagsReturns a bitfield of all zones covered by clothing
get_bleed_rateA helper to see how much blood we're losing per tick
get_blood_compatibilityReturns TRUE if src is compatible with donor's blood, otherwise FALSE.
get_blood_dna_listGet the mobs dna list
get_breath_from_internalAttempts to take a breath from the external or internal air tank.
get_clothing_examine_infoCoolects examine information about the mob's clothing and equipment
get_cold_protectionThis returns the percentage of protection from cold as a value from 0 - 1 +temperature is the temperature you're being exposed to
get_covered_body_zonesReturns a list of all body_zones covered by clothing
get_damageable_bodypartsReturns a list of damageable bodyparts
get_damaged_bodypartsReturns a list of damaged bodyparts
get_face_nameReturns "Unknown" if facially disfigured and real_name if not. +Useful for setting name when Fluacided or when updating a human's name variable
get_heat_protectionThis returns the percentage of protection from heat as a value from 0 - 1 +temperature is the temperature you're being exposed to
get_held_overlaysGenerate held item overlays
get_hud_examine_infoCollects info displayed about any HUDs the user has when examining src
get_insulation_protectionGet the insulation that is appropriate to the temperature you're being exposed to. +All clothing, natural insulation, and traits are combined returning a single value.
get_majority_bodypart_damage_descReturns a list of "damtype" => damage description based off of which bodypart description is most common
get_medhud_examine_infoCollects information displayed about src when examined by a user with a medical HUD.
get_organ_lossIf an organ exists in the slot requested, return the amount of damage that organ has
get_sechud_examine_infoCollects information displayed about src when examined by a user with a security HUD.
get_total_bleed_rateget our total bleedrate
get_traumastodo move this to it's own trait or something
get_uplink_locationGets an item that can be used as an uplink somewhere on the mob's person.
get_visible_itemsReturns items which are currently visible on the mob
get_wound_threshold_of_wound_typeLimb is nullable, but picks a random one. Defers to limb.get_wound_threshold_of_wound_type, see it for documentation.
get_wounded_bodypartsReturns a list of bodyparts with wounds (in case someone has a wound on an otherwise fully healed limb)
giveProc called when offering an item to another player
handle_breath_temperatureFourth and final link in a breath chain
handle_dead_metabolizationHandles calling metabolization for dead people. +Due to how reagent metabolization code works this couldn't be done anywhere else.
handle_dreamsBegins the dreaming process on a sleeping carbon.
handle_environmentBase carbon environment handler, adds natural stabilization
handle_liverCheck to see if we have the liver, if not automatically gives you last-stage effects of lacking a liver.
handle_suffocationApplies suffocation side-effects to a given Human, scaling based on ratio of required pressure VS "true" pressure. +If pressure is greater than 0, the return value will represent the amount of gas successfully breathed.
has_equippedThis proc is called after an item has been successfully handled and equipped to a slot.
heal_bodypart_damageHeals ONE bodypart randomly selected from damaged ones.
humanizeHumanize
implant_skillchipAttempts to implant this skillchip into the target carbon's brain.
init_bioscrambler_listsFill in the lists of things we can bioscramble into people
invalid_internalsReturns truthy if air tank is open and mob lacks apparatus, or if the tank moved away from the mob.
is_bleedingif any of our bodyparts are bleeding
lying_angle_on_lying_downSpecial carbon interaction on lying down, to transform its sprite by a rotation.
make_virtual_mobRemoves all the "organic" traits from a mob, used for virtual antagonists
natural_bodytemperature_stabilizationUsed to stabilize the body temperature back to normal on living mobs
on_added_handCalled when a new hand is added
on_agender_trait_gainOn gain of TRAIT_AGENDER
on_agender_trait_lossOn removal of TRAIT_AGENDER
on_geneless_trait_gainOn gain of TRAIT_GENELLESS
on_liverless_metabolism_trait_gainOn gain of TRAIT_LIVERLESS_METABOLISM
on_lost_handCleans up references to a hand when it is dismembered or deleted
on_nobreath_trait_gainOn gain of TRAIT_NOBREATH
on_toximmune_trait_gainOn gain of TRAIT_TOXIMMUNE
on_virusimmune_trait_gainOn gain of TRAIT_VIRUSIMMUNE
open_internalsOpen the internal air tank without checking for any breathing apparatus. +Returns TRUE if the air tank was opened successfully. +Closes any existing tanks before opening another one.
regenerate_organsHeals all of the mob's organs, and re-adds any missing ones.
remove_all_embedded_objectsRemove all embedded objects from all limbs on the carbon mob
remove_bodypartProc to hook behavior on bodypart removals. Do not directly call. You're looking for [/obj/item/bodypart/proc/drop_limb()].
remove_embedded_objectRemove a specific embedded item from the carbon mob
remove_skillchipAttempts to remove this skillchip from the target carbon's brain.
return_and_replace_bodypartReplaces a single limb and returns the old one if there was one
secondary_shockCalled slightly after electrocute act to apply a secondary stun.
setOrganLossIf an organ exists in the slot requested, and we are capable of taking damage (we don't have TRAIT_GODMODE), call the set damage proc on that organ, which can +set or clear the failing variable on that organ, making it either cease or start functions again, unlike adjustOrganLoss.
set_handcuffedModifies the handcuffed value if a different value is passed, returning FALSE otherwise. The variable should only be changed through this proc.
set_heartattackCauses the mob to either start or stop having a heart attack.
share_bodytemperatureHave two mobs share body heat between each other. +Account for the insulation and max temperature change range for the mob
should_electrocuteReturns whether or not the carbon should be able to be shocked
spray_bloodThis proc is a helper for spraying blood for things like slashing/piercing wounds and dismemberment.
synchronize_bodyshapesMakes sure that the owner's bodyshape flags match the flags of all of its parts and organs
synchronize_bodytypesMakes sure that the owner's bodytype flags match the flags of all of its parts and organs
takeProc called when the player clicks the give alert
take_bodypart_damageDamages ONE bodypart randomly selected from damagable ones.
toggle_close_internalsPrepares to close the currently open internal air tank and notifies in chat. +Handles displaying messages to the user before doing the actual closing. +Returns TRUE if
toggle_externalsToggles the given external (that's EX-ternal) air tank open, or close the currently open one, if a compatible breathing apparatus is found. +Returns TRUE if the tank was opened successfully.
toggle_internalsToggles the given internal air tank open, or close the currently open one, if a compatible breathing apparatus is found. +Returns TRUE if the tank was opened successfully.
toggle_open_internalsPrepares to open the internal air tank and notifies the mob in chat. +Handles displaying messages to the user before doing the actual opening. +Returns TRUE if the tank was opened/closed successfully.
try_open_internalsOpens the given internal air tank if a breathing apparatus is found. Returns TRUE if successful, FALSE otherwise. +Returns TRUE if the tank was opened successfully.
unwag_tailHelper to cleanly stop all tail wagging +Returns true if successful, false otherwise
update_body_partsChecks to see if any bodyparts need to be redrawn, then does so. update_limb_data = TRUE redraws the limbs to conform to the owner.
update_bodypart_bleed_overlaysHas each bodypart update its bleed/wound overlay icon states
update_bodypart_speed_modifierUpdates the bodypart speed modifier based on our bodyparts.
update_featuresUpdates features and clothing attached to a specific limb with limb-specific offsets
update_tintCalculates how visually impaired the mob is by their equipment and other factors
vomitProc that compels the mob to throw up. Returns TRUE if the mob actually threw up.
wag_tailHelper to cleanly trigger tail wagging +Accepts an optional timeout after which we remove the tail wagging +Returns true if successful, false otherwise
wearing_shock_proof_glovesReturns if the carbon is wearing shock proof gloves

Var Details

all_scars

All of the scars a carbon has afflicted throughout their limbs

all_wounds

All of the wounds a carbon has afflicted throughout their limbs

body_zone_dismembered_by

Assoc list of BODY_ZONE -> wounding_type. Set when a limb is dismembered, unset when one is attached. Used for determining what scar to add when it comes time to generate them.

bodyparts

Gets filled up in /datum/species/proc/replace_body. +Will either contain a list of typepaths if nothing has been created yet, +or a list of the body part objects.

bodyshape

A bitfield of "bodyshapes", updated by /obj/item/bodypart/proc/synchronize_bodyshapes()

bodytype

A bitfield of "bodytypes", updated by /obj/item/bodypart/proc/synchronize_bodytypes()

breathing_loop

Sound loop for breathing when using internals

can_be_shoved_into

Can other carbons be shoved into this one to make it fall?

co2overloadtime

Used in [carbon/proc/check_breath] and [lungs/proc/check_breath]]

cold_protection

Protection (insulation) from the cold, Value 0-1 corresponding to the percentage of protection

damageoverlaytemp

Used to temporarily increase severity of / apply a new damage overlay (the red ring around the ui / screen). +This number will translate to equivalent brute or burn damage taken. Handled in [mob/living/proc/update_damage_hud]. +(For example, setting damageoverlaytemp = 20 will add 20 "damage" to the overlay the next time it updates.) +This number is also reset to 0 every tick of carbon Life(). Pain.

disgust

Measure of how disgusted we are. See DISGUST_LEVEL_GROSS and friends

dna

Carbon, you should really only be accessing this through has_dna() but it's your life

ears

only used by humans.

external

"External" air tank. Never set this manually. Not required to stay directly equipped on the mob (i.e. could be a machine or MOD suit module).

failed_last_breath

This is used to determine if the mob failed a breath. If they did fail a breath, they will attempt to breathe each tick, otherwise just once per 4 ticks.

glasses

only used by humans.

gloves

only used by humans

hand_bodyparts

A collection of arms (or actually whatever the fug /bodyparts you monsters use to wreck my systems)

handcuffed

Whether or not the mob is handcuffed

heat_protection

Protection (insulation) from the heat, Value 0-1 corresponding to the percentage of protection

icon_render_keys

A cache of bodypart = icon to prevent excessive icon creation.

internal

Equipped air tank. Never set this manually.

last_mind

last mind to control this mob, for blood-based cloning

last_top_offset

Stores the result of our last known top_offset generation for optimisation purposes when drawing limb icons.

legcuffed

Same as handcuffs but for legs. Bear traps use this.

old_disgust

How disgusted we were LAST time we processed disgust. Helps prevent unneeded work

organs

List of /obj/item/organs in the mob. They don't go in the contents for some reason I don't want to know.

organs_slot

Same as above, but stores "slot ID" - "organ" pairs for easy access.

shoes

only used by humans.

skillchip_complexity_modifier

Simple modifier for whether this mob can handle greater or lesser skillchip complexity. See /datum/mutation/human/biotechcompat/ for example.

transformation_timer

Timer id of any transformation

visual_only_organs

Only load in visual organs

Proc Details

add_bodypart

Proc to hook behavior on bodypart additions. Do not directly call. You're looking for [/obj/item/bodypart/proc/try_attach_limb()].

adjustOrganLoss

If an organ exists in the slot requested, and we are capable of taking damage (we don't have TRAIT_GODMODE), call the damage proc on that organ.

+

Arguments:

+
    +
  • slot - organ slot, like [ORGAN_SLOT_HEART]
  • +
  • amount - damage to be done
  • +
  • maximum - currently an arbitrarily large number, can be set so as to limit damage
  • +
  • required_organ_flag - targets only a specific organ type if set to ORGAN_ORGANIC or ORGAN_ROBOTIC
  • +
+

Returns: The net change in damage from apply_organ_damage()

adjustPlasma

Adjusts the plasma level of the carbon's plasma vessel if they have one

adjust_bodytemperature

Adjust the body temperature of a mob +expanded for carbon mobs allowing the use of insulation and change steps

+

vars:

+
    +
  • amount The amount of degrees to change body temperature by
  • +
  • min_temp (optional) The minimum body temperature after adjustment
  • +
  • max_temp (optional) The maximum body temperature after adjustment
  • +
  • use_insulation (optional) modifies the amount based on the amount of insulation the mob has
  • +
  • use_steps (optional) Use the body temp divisors and max change rates
  • +
  • capped (optional) default True used to cap step mode
  • +

adjust_skillchip_complexity_modifier

Modifies max_skillchip_count and updates active skillchips

bioscramble

Randomise a body part and organ of this mob

bleed_warn

bleed_warn() is used to for carbons with an active client to occasionally receive messages warning them about their bleeding status (if applicable)

+

Arguments:

+

can_breathe_helmet

Returns TRUE if an air tank compatible helmet is equipped.

can_breathe_internals

Returns TRUE if an air tank compatible mask or breathing tube is equipped.

can_breathe_mask

Returns TRUE if an air tank compatible mask is equipped.

can_breathe_tube

Returns TRUE if a breathing tube is equipped.

can_touch_acid

This proc is used to determine whether or not the mob can handle touching an acid affected object.

can_touch_burning

This proc is used to determine whether or not the mob can handle touching a burning object.

cause_wound_of_type_and_severity

A simple proc to force a type of wound onto this mob. If you just want to force a specific mainline (fractures, bleeding, etc.) wound, you only need to care about the first 3 args.

+

Args:

+
    +
  • wounding_type: The wounding_type, e.g. WOUND_BLUNT, WOUND_SLASH to force onto the mob. Can be a list.
  • +
  • obj/item/bodypart/limb: The limb we wil be applying the wound to. If null, a random bodypart will be picked.
  • +
  • min_severity: The minimum severity that will be considered.
  • +
  • max_severity: The maximum severity that will be considered.
  • +
  • severity_pick_mode: The "pick mode" to be used. See get_corresponding_wound_type's documentation
  • +
  • wound_source: The source of the wound to be applied. Nullable.
  • +
+

For the rest of the args, refer to get_corresponding_wound_type().

+

Returns: +A new wound instance if the application was successful, null otherwise.

check_breath

This proc tests if the lungs can breathe, if the mob can breathe a given gas mixture, and throws/clears gas alerts. +If there are moles of gas in the given gas mixture, side-effects may be applied/removed on the mob. +This proc expects a lungs organ in order to breathe successfully, but does not defer any work to it.

+

Returns TRUE if the breath was successful, or FALSE if otherwise.

+

Arguments:

+
    +
  • breath: A gas mixture to test, or null.
  • +

check_passout

Check to see if we should be passed out from oxyloss

check_self_for_injuries

Check ourselves to see if we've got any shrapnel, return true if we do. This is a much simpler version of what humans do, we only indicate we're checking ourselves if there's actually shrapnel

check_virus

Medical HUD! Basic mode needs suit sensors on.

clone_skillchip_list

Creates a list of new skillchips cloned from old skillchips in the mob's brain.

+

Returns a complete list of new skillchips cloned from the mob's brain's existing skillchip stock. +Rumour has it that Changelings just LOVE this proc. +Arguments:

+
    +
  • cloned_chip_holder - The new holder for the cloned chips. Please don't be null.
  • +
  • not_removable - Special override, whether or not to force cloned chips to be non-removable, i.e. to delete on removal.
  • +

close_all_airtanks

Quickly/lazily close all airtanks without any returns or notifications.

close_externals

Close the the currently open external (that's EX-ternal) air tank. Returns TRUE if successful.

close_internals

Actually closes the active internal or external air tank. +Returns TRUE if the tank was opened successfully.

+

Arguments:

+
    +
  • is_external - A boolean which indicates if the air tank must be equipped, or stored elsewhere.
  • +

create_bodyparts

Creates body parts for this carbon completely from scratch. +Optionally takes a map of body zones to what type to instantiate instead of them.

cuff_resist

Helper to break the cuffs from hands +@param {obj/item} cuffs - The cuffs to break +@param {number} breakouttime - The time it takes to break the cuffs. Use SECONDS/MINUTES defines +@param {number} cuff_break - Speed multiplier, 0 is default, see _DEFINES\combat.dm

cutoff_internals

Prepares emergency disconnect from open air tanks and notifies in chat. Usually called after mob suddenly unequips breathing apparatus.

del_and_replace_bodypart

Replaces a single limb and deletes the old one if there was one

destroy_all_skillchips

Destroys all skillchips in the brain, handling appropriate cleanup and event calls.

dream

Generates a dream sequence to be displayed to the sleeper.

+

Generates the "dream" to display to the sleeper. A dream consists of a subject, a verb, and (most of the time) an object, displayed in sequence to the sleeper. +Dreams are generated as a list of strings stored inside dream_fragments, which is passed to and displayed in dream_sequence(). +Bedsheets on the sleeper will provide a custom subject for the dream, pulled from the dream_messages on each bedsheet.

dream_sequence

Displays the passed list of dream fragments to a sleeping carbon.

+

Displays the first string of the passed dream fragments, then either ends the dream sequence +or performs a callback on itself depending on if there are any remaining dream fragments to display.

+

Arguments:

+
    +
  • dream_fragments - A list of strings, in the order they will be displayed.
  • +
  • current_dream - The dream datum used for the current dream
  • +

electrocute_act

Adds to the parent by also adding functionality to propagate shocks through pulling and doing some fluff effects.

equip_conspicuous_item

Attempts to equip the given item in a conspicious place. +This is used when, for instance, a character spawning with an item +in their hands would be a dead giveaway that they are an antagonist. +Returns the human readable name of where it placed the item, or null otherwise.

expel_ingested

Expel the reagents you just tried to ingest

+

When you try to ingest reagents but you do not have a stomach +you will spew the reagents on the floor.

+

Vars:

+
    +
  • bite: /atom the reagents to expel
  • +
  • amount: int The amount of reagent
  • +

generate_death_examine_text

Returns death message for mob examine text

generate_fake_scars

generate_fake_scars()- for when you want to scar someone, but you don't want to hurt them first. These scars don't count for temporal scarring (hence, fake)

+

If you want a specific wound scar, pass that wound type as the second arg, otherwise you can pass a list like WOUND_LIST_SLASH to generate a random cut scar.

+

Arguments:

+
    +
  • num_scars- A number for how many scars you want to add
  • +
  • forced_type- Which wound or category of wounds you want to choose from, WOUND_LIST_BLUNT, WOUND_LIST_SLASH, or WOUND_LIST_BURN (or some combination). If passed a list, picks randomly from the listed wounds. Defaults to all 3 types
  • +

getPlasma

Gets the plasma level of this carbon's plasma vessel, or -1 if they don't have one

get_all_covered_flags

Returns a bitfield of all zones covered by clothing

get_bleed_rate

A helper to see how much blood we're losing per tick

get_blood_compatibility

Returns TRUE if src is compatible with donor's blood, otherwise FALSE.

+
    +
  • donor: Carbon mob, the one that is donating blood.
  • +

get_blood_dna_list

Get the mobs dna list

get_breath_from_internal

Attempts to take a breath from the external or internal air tank.

get_clothing_examine_info

Coolects examine information about the mob's clothing and equipment

get_cold_protection

This returns the percentage of protection from cold as a value from 0 - 1 +temperature is the temperature you're being exposed to

get_covered_body_zones

Returns a list of all body_zones covered by clothing

get_damageable_bodyparts

Returns a list of damageable bodyparts

get_damaged_bodyparts

Returns a list of damaged bodyparts

get_face_name

Returns "Unknown" if facially disfigured and real_name if not. +Useful for setting name when Fluacided or when updating a human's name variable

get_heat_protection

This returns the percentage of protection from heat as a value from 0 - 1 +temperature is the temperature you're being exposed to

get_held_overlays

Generate held item overlays

get_hud_examine_info

Collects info displayed about any HUDs the user has when examining src

get_insulation_protection

Get the insulation that is appropriate to the temperature you're being exposed to. +All clothing, natural insulation, and traits are combined returning a single value.

+

required temperature The Temperature that you're being exposed to

+

return the percentage of protection as a value from 0 - 1

get_majority_bodypart_damage_desc

Returns a list of "damtype" => damage description based off of which bodypart description is most common

get_medhud_examine_info

Collects information displayed about src when examined by a user with a medical HUD.

get_organ_loss

If an organ exists in the slot requested, return the amount of damage that organ has

+

Arguments:

+
    +
  • slot - organ slot, like [ORGAN_SLOT_HEART]
  • +

get_sechud_examine_info

Collects information displayed about src when examined by a user with a security HUD.

get_total_bleed_rate

get our total bleedrate

get_traumas

todo move this to it's own trait or something

Gets an item that can be used as an uplink somewhere on the mob's person.

+
    +
  • desired_location: the location to look for the uplink in. An UPLINK_ define. +If the desired location is not found, defaults to another location.
  • +
+

Returns the item found, or null if no item was found.

get_visible_items

Returns items which are currently visible on the mob

get_wound_threshold_of_wound_type

Limb is nullable, but picks a random one. Defers to limb.get_wound_threshold_of_wound_type, see it for documentation.

get_wounded_bodyparts

Returns a list of bodyparts with wounds (in case someone has a wound on an otherwise fully healed limb)

give

Proc called when offering an item to another player

+

This handles creating an alert and adding an overlay to it

handle_breath_temperature

Fourth and final link in a breath chain

handle_dead_metabolization

Handles calling metabolization for dead people. +Due to how reagent metabolization code works this couldn't be done anywhere else.

+

Arguments:

+
    +
  • seconds_per_tick: The amount of time that has elapsed since the last tick.
  • +
  • times_fired: The number of times SSmobs has ticked.
  • +

handle_dreams

Begins the dreaming process on a sleeping carbon.

+

Checks a 10% chance and whether or not the carbon this is called on is already dreaming. If +the prob() passes and there are no dream images left to display, a new dream is constructed.

handle_environment

Base carbon environment handler, adds natural stabilization

handle_liver

Check to see if we have the liver, if not automatically gives you last-stage effects of lacking a liver.

handle_suffocation

Applies suffocation side-effects to a given Human, scaling based on ratio of required pressure VS "true" pressure. +If pressure is greater than 0, the return value will represent the amount of gas successfully breathed.

has_equipped

This proc is called after an item has been successfully handled and equipped to a slot.

heal_bodypart_damage

Heals ONE bodypart randomly selected from damaged ones.

+

It automatically updates damage overlays if necessary

+

It automatically updates health status

humanize

Humanize

implant_skillchip

Attempts to implant this skillchip into the target carbon's brain.

+

Returns whether the skillchip was inserted or not. Can optionally give chat message notification to the mob. +Arguments:

+
    +
  • skillchip - The skillchip you want to insert.
  • +
  • silent - Whether or not to display the implanting message.
  • +
  • force - Whether to force the implant to happen, including forcing activating if activate = TRUE. Ignores incompatibility checks. Used by changelings.
  • +

init_bioscrambler_lists

Fill in the lists of things we can bioscramble into people

invalid_internals

Returns truthy if air tank is open and mob lacks apparatus, or if the tank moved away from the mob.

is_bleeding

if any of our bodyparts are bleeding

lying_angle_on_lying_down

Special carbon interaction on lying down, to transform its sprite by a rotation.

make_virtual_mob

Removes all the "organic" traits from a mob, used for virtual antagonists

natural_bodytemperature_stabilization

Used to stabilize the body temperature back to normal on living mobs

+

Arguments:

+
    +
  • environemnt: The environment gas mix
  • +
  • seconds_per_tick: The amount of time that has elapsed since the last tick
  • +
  • times_fired: The number of times SSmobs has ticked
  • +

on_added_hand

Called when a new hand is added

on_agender_trait_gain

On gain of TRAIT_AGENDER

+

This will make the mob get it's gender set to PLURAL.

on_agender_trait_loss

On removal of TRAIT_AGENDER

+

This will make the mob get it's gender set to whatever the DNA says it should be.

on_geneless_trait_gain

On gain of TRAIT_GENELLESS

+

This will clear all DNA mutations on on the mob.

on_liverless_metabolism_trait_gain

On gain of TRAIT_LIVERLESS_METABOLISM

+

This will clear all moods related to addictions and stop metabolization.

on_lost_hand

Cleans up references to a hand when it is dismembered or deleted

on_nobreath_trait_gain

On gain of TRAIT_NOBREATH

+

This will clear all alerts and moods related to breathing.

on_toximmune_trait_gain

On gain of TRAIT_TOXIMMUNE

+

This will clear all toxin damage on the mob.

on_virusimmune_trait_gain

On gain of TRAIT_VIRUSIMMUNE

+

This will clear all diseases on the mob.

open_internals

Open the internal air tank without checking for any breathing apparatus. +Returns TRUE if the air tank was opened successfully. +Closes any existing tanks before opening another one.

+

Arguments:

+
    +
  • tank - The given tank to open and start breathing from.
  • +
  • is_external - A boolean which indicates if the air tank must be equipped, or stored elsewhere.
  • +

regenerate_organs

Heals all of the mob's organs, and re-adds any missing ones.

+
    +
  • regenerate_existing - if TRUE, existing organs will be deleted and replaced with new ones
  • +

remove_all_embedded_objects

Remove all embedded objects from all limbs on the carbon mob

remove_bodypart

Proc to hook behavior on bodypart removals. Do not directly call. You're looking for [/obj/item/bodypart/proc/drop_limb()].

remove_embedded_object

Remove a specific embedded item from the carbon mob

remove_skillchip

Attempts to remove this skillchip from the target carbon's brain.

+

Returns FALSE when the skillchip couldn't be removed for some reason, +including the target or brain not existing or the skillchip not being in the brain. +Arguments:

+
    +
  • target - The living carbon whose brain you want to remove the chip from.
  • +
  • silent - Whether or not to display the removal message.
  • +

return_and_replace_bodypart

Replaces a single limb and returns the old one if there was one

secondary_shock

Called slightly after electrocute act to apply a secondary stun.

setOrganLoss

If an organ exists in the slot requested, and we are capable of taking damage (we don't have TRAIT_GODMODE), call the set damage proc on that organ, which can +set or clear the failing variable on that organ, making it either cease or start functions again, unlike adjustOrganLoss.

+

Arguments:

+
    +
  • slot - organ slot, like [ORGAN_SLOT_HEART]
  • +
  • amount - damage to be set to
  • +
  • required_organ_flag - targets only a specific organ type if set to ORGAN_ORGANIC or ORGAN_ROBOTIC
  • +
+

Returns: The net change in damage from set_organ_damage()

set_handcuffed

Modifies the handcuffed value if a different value is passed, returning FALSE otherwise. The variable should only be changed through this proc.

set_heartattack

Causes the mob to either start or stop having a heart attack.

+

status - Pass TRUE to start a heart attack, or FALSE to stop one.

+

Returns TRUE if heart status was changed (heart attack -> no heart attack, or visa versa)

share_bodytemperature

Have two mobs share body heat between each other. +Account for the insulation and max temperature change range for the mob

+

vars:

+
    +
  • M The mob/living/carbon that is sharing body heat
  • +

should_electrocute

Returns whether or not the carbon should be able to be shocked

spray_blood

This proc is a helper for spraying blood for things like slashing/piercing wounds and dismemberment.

+

The strength of the splatter in the second argument determines how much it can dirty and how far it can go

+

Arguments:

+
    +
  • splatter_direction: Which direction the blood is flying
  • +
  • splatter_strength: How many tiles it can go, and how many items it can pass over and dirty
  • +

synchronize_bodyshapes

Makes sure that the owner's bodyshape flags match the flags of all of its parts and organs

synchronize_bodytypes

Makes sure that the owner's bodytype flags match the flags of all of its parts and organs

take

Proc called when the player clicks the give alert

+

Handles checking if the player taking the item has open slots and is in range of the offerer +Also deals with the actual transferring of the item to the players hands +Arguments:

+
    +
  • offerer - The person giving the original item
  • +
  • I - The item being given by the offerer
  • +

take_bodypart_damage

Damages ONE bodypart randomly selected from damagable ones.

+

It automatically updates damage overlays if necessary

+

It automatically updates health status

toggle_close_internals

Prepares to close the currently open internal air tank and notifies in chat. +Handles displaying messages to the user before doing the actual closing. +Returns TRUE if

+

Arguments:

+
    +
  • is_external - A boolean which indicates if the air tank must be equipped, or stored elsewhere.
  • +

toggle_externals

Toggles the given external (that's EX-ternal) air tank open, or close the currently open one, if a compatible breathing apparatus is found. +Returns TRUE if the tank was opened successfully.

+

Arguments:

+
    +
  • tank - The given tank to toggle open and start breathing from externally.
  • +

toggle_internals

Toggles the given internal air tank open, or close the currently open one, if a compatible breathing apparatus is found. +Returns TRUE if the tank was opened successfully.

+

Arguments:

+
    +
  • tank - The given tank to toggle open and start breathing from internally.
  • +

toggle_open_internals

Prepares to open the internal air tank and notifies the mob in chat. +Handles displaying messages to the user before doing the actual opening. +Returns TRUE if the tank was opened/closed successfully.

+

Arguments:

+
    +
  • tank - The given tank to toggle open and start breathing from.
  • +
  • is_external - A boolean which indicates if the air tank must be equipped, or stored elsewhere.
  • +

try_open_internals

Opens the given internal air tank if a breathing apparatus is found. Returns TRUE if successful, FALSE otherwise. +Returns TRUE if the tank was opened successfully.

+

Arguments:

+
    +
  • tank - The given tank we will attempt to toggle open and start breathing from.
  • +
  • is_external - A boolean which indicates if the air tank must be equipped, or stored elsewhere.
  • +

unwag_tail

Helper to cleanly stop all tail wagging +Returns true if successful, false otherwise

update_body_parts

Checks to see if any bodyparts need to be redrawn, then does so. update_limb_data = TRUE redraws the limbs to conform to the owner.

update_bodypart_bleed_overlays

Has each bodypart update its bleed/wound overlay icon states

update_bodypart_speed_modifier

Updates the bodypart speed modifier based on our bodyparts.

update_features

Updates features and clothing attached to a specific limb with limb-specific offsets

update_tint

Calculates how visually impaired the mob is by their equipment and other factors

+

This is where clothing adds its various vision limiting effects, such as welding helmets

vomit

Proc that compels the mob to throw up. Returns TRUE if the mob actually threw up.

wag_tail

Helper to cleanly trigger tail wagging +Accepts an optional timeout after which we remove the tail wagging +Returns true if successful, false otherwise

wearing_shock_proof_gloves

Returns if the carbon is wearing shock proof gloves

\ No newline at end of file diff --git a/mob/living/carbon/alien.html b/mob/living/carbon/alien.html new file mode 100644 index 0000000000000..0ced8160767bb --- /dev/null +++ b/mob/living/carbon/alien.html @@ -0,0 +1 @@ +/mob/living/carbon/alien - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

alien

Vars

alien_speedThe speed this alien should move at.
leapingWhether or not the alien is leaping. Only used by hunters.

Procs

adjustStaminaLossaliens are immune to stamina damage.
adjustToxLossalien immune to tox damage
change_nameChanges the name of the xeno we are evolving into in order to keep the same numerical identifier the old xeno had.
getToxLossalien immune to tox damage
setStaminaLossaliens are immune to stamina damage.

Var Details

alien_speed

The speed this alien should move at.

leaping

Whether or not the alien is leaping. Only used by hunters.

Proc Details

adjustStaminaLoss

aliens are immune to stamina damage.

adjustToxLoss

alien immune to tox damage

change_name

Changes the name of the xeno we are evolving into in order to keep the same numerical identifier the old xeno had.

getToxLoss

alien immune to tox damage

setStaminaLoss

aliens are immune to stamina damage.

\ No newline at end of file diff --git a/mob/living/carbon/alien/adult.html b/mob/living/carbon/alien/adult.html new file mode 100644 index 0000000000000..a556fcf665e8c --- /dev/null +++ b/mob/living/carbon/alien/adult.html @@ -0,0 +1,5 @@ +/mob/living/carbon/alien/adult - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

adult

Procs

devour_ladAttempts to devour the passed in thing in devour_time seconds +The mob needs to be consumable, as decided by [/mob/living/carbon/alien/adult/proc/can_consume] +Returns FALSE if the attempt never even started, TRUE otherwise

Proc Details

devour_lad

Attempts to devour the passed in thing in devour_time seconds +The mob needs to be consumable, as decided by [/mob/living/carbon/alien/adult/proc/can_consume] +Returns FALSE if the attempt never even started, TRUE otherwise

\ No newline at end of file diff --git a/mob/living/carbon/alien/adult/hunter.html b/mob/living/carbon/alien/adult/hunter.html new file mode 100644 index 0000000000000..c6df875022bca --- /dev/null +++ b/mob/living/carbon/alien/adult/hunter.html @@ -0,0 +1 @@ +/mob/living/carbon/alien/adult/hunter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hunter

Vars

pounce_speedHow fast does our pounce move us?

Var Details

pounce_speed

How fast does our pounce move us?

\ No newline at end of file diff --git a/mob/living/carbon/alien/adult/skyrat.html b/mob/living/carbon/alien/adult/skyrat.html new file mode 100644 index 0000000000000..508d8d5f8a87e --- /dev/null +++ b/mob/living/carbon/alien/adult/skyrat.html @@ -0,0 +1 @@ +/mob/living/carbon/alien/adult/skyrat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

skyrat

SKYRAT MODULE SKYRAT_XENO_REDO

Vars

alt_inhands_fileWhat icon file update_held_items will look for when making inhands for xenos
evolution_cooldown_timeHow long xenos should be unable to evolve after recently evolving
has_evolved_recentlyKeeps track of if a xeno has evolved recently, if so then we prevent them from evolving until that time is up
next_evolutionSetting this will give a xeno generic_evolve set to evolve them into this type
on_fire_pixel_xPixel X shifting of the on fire overlay
on_fire_pixel_yPixel Y shifting of the on fire overlay
unable_to_use_abilitiesDetermines if a xeno is unable to use abilities

Procs

can_evolve_once_againAllows xenos to evolve again if they are currently unable to
has_just_evolvedCalled when a larva or xeno evolves, adds a configurable timer on evolving again to the xeno

Var Details

alt_inhands_file

What icon file update_held_items will look for when making inhands for xenos

evolution_cooldown_time

How long xenos should be unable to evolve after recently evolving

has_evolved_recently

Keeps track of if a xeno has evolved recently, if so then we prevent them from evolving until that time is up

next_evolution

Setting this will give a xeno generic_evolve set to evolve them into this type

on_fire_pixel_x

Pixel X shifting of the on fire overlay

on_fire_pixel_y

Pixel Y shifting of the on fire overlay

unable_to_use_abilities

Determines if a xeno is unable to use abilities

Proc Details

can_evolve_once_again

Allows xenos to evolve again if they are currently unable to

has_just_evolved

Called when a larva or xeno evolves, adds a configurable timer on evolving again to the xeno

\ No newline at end of file diff --git a/mob/living/carbon/alien/adult/skyrat/runner.html b/mob/living/carbon/alien/adult/skyrat/runner.html new file mode 100644 index 0000000000000..70fa5d51f403e --- /dev/null +++ b/mob/living/carbon/alien/adult/skyrat/runner.html @@ -0,0 +1 @@ +/mob/living/carbon/alien/adult/skyrat/runner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

runner

Vars

evade_abilityHolds the evade ability to be granted to the runner later

Var Details

evade_ability

Holds the evade ability to be granted to the runner later

\ No newline at end of file diff --git a/mob/living/carbon/alien/larva.html b/mob/living/carbon/alien/larva.html new file mode 100644 index 0000000000000..12c9230d767ce --- /dev/null +++ b/mob/living/carbon/alien/larva.html @@ -0,0 +1 @@ +/mob/living/carbon/alien/larva - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

larva

Procs

bioscrambleDon't scramble a larva's body parts, it doesn't have any

Proc Details

bioscramble

Don't scramble a larva's body parts, it doesn't have any

\ No newline at end of file diff --git a/mob/living/carbon/human.html b/mob/living/carbon/human.html new file mode 100644 index 0000000000000..68d64b86b6254 --- /dev/null +++ b/mob/living/carbon/human.html @@ -0,0 +1,91 @@ +/mob/living/carbon/human - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

human

Any humanoid (non-Xeno) mob, such as humans, plasmamen, lizards.

Vars

afk_theftsWhen an braindead player has their equipment fiddled with, we log that info here for when they come back so they know who took their ID while they were DC'd for 30 seconds
blood_in_handsHow many "units of blood" we have on our hands
braThe selected bra.
bra_colorColor of the bra.
can_ride_typecacheWhat types of mobs are allowed to ride/buckle to this mob
combat_focusAre we currently in combat focus?
coretemperatureThe core temperature of the human compaired to the skin temp of the body
eye_color_heterochromaticVar used to keep track of a human mob having a heterochromatic right eye. To ensure prefs don't overwrite shit
grad_colorColours used for hair and facial hair gradients.
grad_styleStyles used for hair and facial hair gradients.
hair_alphaAlpha of the hair. Takes precedent over species hair_alpha if non-null.
heat_exposure_stacksExposure to damaging heat levels increases stacks, stacks clean over time when temperatures are lower. Stack is consumed to add a wound.
mob_heightHeight of the mob
mutant_renderkeyRender key for mutant bodyparts, utilized to reduce the amount of re-rendering
oversized_piggydamBase damage for oversized piggyback riding.
oversized_piggyknockParalyze time for oversized piggyback riding in deciseconds. (10 deciseconds = 1 second)
oversized_piggywound_chanceChance for oversized to wound someone smaller, if they try to piggyback ride them.
physiqueWhich body type to use
refractory_periodUsed to prevent nightmare scenarios.
socks_colorColor of the socks
tguiThe Examine Panel TGUI.
try_hide_mutant_partsA list of mutant parts the human is trying to hide, read from mutant_renderkey
undershirt_colorColor of the undershirt
underwear_visibilityFlags for showing/hiding underwear, toggleabley by a verb

Procs

adjust_arousalAdjusts the parent human's arousal value based off the value assigned to arous.
adjust_coretemperatureAdjust the core temperature of a mob
apply_height_filtersApplies a filter to an appearance according to mob height
apply_height_offsetsUsed in some circumstances where appearances can get cut off from the mob sprite from being too tall
attack_alienSKYRAT MODULE SKYRAT_XENO_REDO
bra_hiddenProc to check if bra is hidden.
burn_clothingUsed by fire code to damage worn items.
check_if_off_dutyChecks is the parent mob is currently off duty. Returns FALSE if the mob isn't clocked out.
check_organ_damageReturns the damage of the organ_to_check, if the organ isn't there, the proc returns 100.
check_pocket_weghtSignal proc for COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED to check if an item is suddenly too heavy for our pockets
check_reflectReflection checks for anything in your l_hand, r_hand, or wear_suit based on the reflection chance of the object
clean_faceCalled on the COMSIG_COMPONENT_CLEAN_FACE_ACT signal
copy_clothing_prefscopies over clothing preferences like underwear to another human
crabizeTurns the source atom into a crab crab, the peak of evolutionary design.
do_cprPerforms CPR on the target after a delay.
electrocute_actCalculates the siemens coeff based on clothing and species, can also restart hearts.
equip_outfit_and_loadoutEquips this mob with a given outfit and loadout items as per the passed preferences.
equip_species_outfitA version of equipOutfit that overrides passed in outfits with their entry on the species' outfit override registry
fan_hud_set_fandomFAN HUDs! For identifying other fans on-sight.
find_nifsoftChecks to see if a human with a NIF has the nifsoft_to_find type of NIFSoft installed?
force_sayMakes the player force say what's in their current input box.
format_scarsFor use formatting all of the scars this human has for saving for persistent scarring, returns a string with all current scars/missing limb amputation scars for saving or loading purposes
get_body_temp_normalget_body_temperature Returns the body temperature with any modifications applied
get_clothing_on_partGet all the clothing on a specific body part
get_equipped_itemsUsed to return a list of equipped items on a human mob; does not by default include held items, see include_flags
get_medhud_examine_infoCollects information displayed about src when examined by a user with a medical HUD.
get_mob_heightGetter for mob height
get_name_partFrom compose_message(). Snowflake code converted into its own signal proc
get_num_feetGets the number of feet the human has.
get_taur_modeGet a human's taur mode in a standardized way.
give_emote_overlayCreates a new emote bodypart overlay and applies it to the human. The overlay can be removed by simply deleting the returned overlay.
handle_blood1 tile down +2 tiles down +6 pixels to the right, zero tiles & 5 pixels DOWN. +Maptext define for Bloodsucker HUDs +Maptext define for Bloodsucker Sunlight HUDs
handle_environmentEnvironment handlers for species
hardset_dnaSets the DNA of the mob to the given DNA.
has_anusReturns true if the human has an accessible anus for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.
has_armsReturns true if the human has a accessible feet for the parameter, returning the number of feet the human has if they do. Accepts any of the REQUIRE_GENITAL_ defines.
has_ballsReturns true if the human has a accessible balls for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.
has_breastsReturns true if the human has a accessible breasts for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.
has_earsReturns true if the human has a accessible ears for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.
has_eyesReturns true if the human has accessible eyes for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.
has_feetReturns true if the human has a accessible feet for the parameter, returning the number of feet the human has if they do. Accepts any of the REQUIRE_GENITAL_ defines.
has_penisReturns true if the human has an accessible penis for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.
has_tailReturns true if the human has accessible tail for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.
has_vaginaReturns true if the human has an accessible vagina for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.
increment_scar_slotWhen we're joining the game in /mob/dead/new_player/proc/create_character, we increment our scar slot then store the slot in our mind datum.
infuse_organAttempt to replace/add-to the occupant's organs with "mutated" equivalents. +Returns TRUE on success, FALSE on failure. +Requires the target mob to have an existing organic organ to "mutate".
is_barefootAre we wearing something that covers our shoes?
is_bottomlessAre we wearing something that covers our groin?
is_toplessAre we wearing something that covers our chest?
is_wearing_condomChecks if the human is wearing a condom, and also hasn't broken it.
load_nif_dataLoads the NIF data for an individual user.
load_persistent_scarsRead all the scars we have for the designated character/scar slots, verify they're good/dump them if they're old/wrong format, create them on the user, and write the scars that passed muster back to the file
load_scarTakes a single scar from the persistent scar loader and recreates it from the saved data
make_clever_and_no_dna_scrambleProc used to prevent syndicate monkeys and player-selectable Pun Pun able to use objects while stuck in monkey mode.
make_full_human_copyMakes a full copy of src and returns it. +Attempts to copy as much as possible to be a close to the original. +This includes job outfit (which handles skillchips), quirks, and mutations. +We do not set a mind here, so this is purely the body. +Args: +location - The turf the human will be spawned on.
on_dwarf_traitGaining or losing [TRAIT_DWARF] updates our height
on_unknown_traitGaining or losing TRAIT_UNKNOWN updates our name and our sechud
pick_infusion_organPicks a random mutated organ from the given infuser entry which is also compatible with this human. +Tries to return a typepath of a valid mutant organ if all of the following criteria are true:
psykerizeProc with no side effects that turns someone into a psyker. returns FALSE if it could not psykerize.
randomize_human_appearanceFully randomizes everything according to the given flags.
return_items_to_consoleReturns any items inside of the items_to_send list to a cryo console on station.
save_individual_persistenceSaves the persistence data for the owner.
save_nif_dataSaves the NIF data for a individual user.
save_persistent_scarsSave any scars we have to our designated slot, then write our current slot so that the next time we call /mob/living/carbon/human/proc/increment_scar_slot (the next round we join), we'll be there
sec_hud_set_IDSecurity HUDs! Basic mode shows only the job.
send_applicable_messagesAny "special" suicide messages are handled by the related item that the mob uses to kill itself. This is just messages for when it's done with the bare hands.
set_genderSets the gender of the human, respecting prefs unless it's forced. Do not force in non-admin operations.
set_mob_heightSetter for mob height
set_service_styleGives the appearance of being an agent
setup_organless_effectsThis proc is for holding effects applied when a mob is missing certain organs +It is called very, very early in human init because all humans innately spawn with no organs and gain them during init +Gaining said organs removes these effects
singularity_actOverrides the point value that the mob is worth
slow_psykerizeflavorful variant of psykerizing that deals damage and sends messages before calling psykerize()
smart_equip_targetedtake the most recent item out of a slot or place held item in a slot
socks_hiddenProc to check if socks are hidden.
something_horribleDNA HELPER-PROCS
toggle_externalsReturns TRUE if the tank successfully toggles open/closed. Opens the tank only if a breathing apparatus is found.
undershirt_hiddenProc to check if undershirt is hidden.
underwear_hiddenProc to check if underwear is hidden.
update_inv_anusUpdating anus slot
update_inv_lewdHelper proc for calling all the lewd slot update_inv_ procs.
update_inv_nipplesUpdating nipples slot
update_inv_penisUpdating penis slot
update_inv_vaginaUpdating vagina slot
update_sensor_listAdds or removes a mob from the global suit sensors list based on sensor status and mode
washCalled when this human should be washed
wash_handsWash the hands, cleaning either the gloves if equipped and not obscured, otherwise the hands themselves if they're not obscured.
wrists_hiddenProc to check if wrists are hidden.

Var Details

afk_thefts

When an braindead player has their equipment fiddled with, we log that info here for when they come back so they know who took their ID while they were DC'd for 30 seconds

blood_in_hands

How many "units of blood" we have on our hands

bra

The selected bra.

bra_color

Color of the bra.

can_ride_typecache

What types of mobs are allowed to ride/buckle to this mob

combat_focus

Are we currently in combat focus?

coretemperature

The core temperature of the human compaired to the skin temp of the body

eye_color_heterochromatic

Var used to keep track of a human mob having a heterochromatic right eye. To ensure prefs don't overwrite shit

grad_color

Colours used for hair and facial hair gradients.

grad_style

Styles used for hair and facial hair gradients.

hair_alpha

Alpha of the hair. Takes precedent over species hair_alpha if non-null.

heat_exposure_stacks

Exposure to damaging heat levels increases stacks, stacks clean over time when temperatures are lower. Stack is consumed to add a wound.

mob_height

Height of the mob

mutant_renderkey

Render key for mutant bodyparts, utilized to reduce the amount of re-rendering

oversized_piggydam

Base damage for oversized piggyback riding.

oversized_piggyknock

Paralyze time for oversized piggyback riding in deciseconds. (10 deciseconds = 1 second)

oversized_piggywound_chance

Chance for oversized to wound someone smaller, if they try to piggyback ride them.

physique

Which body type to use

refractory_period

Used to prevent nightmare scenarios.

socks_color

Color of the socks

tgui

The Examine Panel TGUI.

try_hide_mutant_parts

A list of mutant parts the human is trying to hide, read from mutant_renderkey

undershirt_color

Color of the undershirt

underwear_visibility

Flags for showing/hiding underwear, toggleabley by a verb

Proc Details

adjust_arousal

Adjusts the parent human's arousal value based off the value assigned to arous.

adjust_coretemperature

Adjust the core temperature of a mob

+

vars:

+
    +
  • amount The amount of degrees to change body temperature by
  • +
  • min_temp (optional) The minimum body temperature after adjustment
  • +
  • max_temp (optional) The maximum body temperature after adjustment
  • +

apply_height_filters

Applies a filter to an appearance according to mob height

apply_height_offsets

Used in some circumstances where appearances can get cut off from the mob sprite from being too tall

+

upper_torso is to specify whether the appearance is locate in the upper half of the mob rather than the lower half, +higher up things (hats for example) need to be offset more due to the location of the filter displacement

attack_alien

SKYRAT MODULE SKYRAT_XENO_REDO

bra_hidden

Proc to check if bra is hidden.

burn_clothing

Used by fire code to damage worn items.

+

Arguments:

+
    +
  • seconds_per_tick
  • +
  • times_fired
  • +
  • stacks: Current amount of firestacks
  • +

check_if_off_duty

Checks is the parent mob is currently off duty. Returns FALSE if the mob isn't clocked out.

+

Arguements

+
    +
  • whitelisted_deparments - This list contains the paths of /datum/job_departments we want to check if the parent mob is part of. +If present, we will only check if the mob is off-duty if they are a member of one of the departments in the list +Otherwise, if we have nothing in the list, we will check all departments
  • +
  • blacklisted_jobs - This is a list that contains paths of the /datum/jobs that we will always return TRUE for +This typically applies for jobs like assistant where clock status probably wouldn't really matter.
  • +

check_organ_damage

Returns the damage of the organ_to_check, if the organ isn't there, the proc returns 100.

check_pocket_weght

Signal proc for COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED to check if an item is suddenly too heavy for our pockets

check_reflect

Reflection checks for anything in your l_hand, r_hand, or wear_suit based on the reflection chance of the object

clean_face

Called on the COMSIG_COMPONENT_CLEAN_FACE_ACT signal

copy_clothing_prefs

copies over clothing preferences like underwear to another human

crabize

Turns the source atom into a crab crab, the peak of evolutionary design.

do_cpr

Performs CPR on the target after a delay.

electrocute_act

Calculates the siemens coeff based on clothing and species, can also restart hearts.

equip_outfit_and_loadout

Equips this mob with a given outfit and loadout items as per the passed preferences.

+

Loadout items override the pre-existing item in the corresponding slot of the job outfit. +Some job items are preserved after being overridden - belt items, ear items, and glasses. +The rest of the slots, the items are overridden completely and deleted.

+

Species with special outfits are snowflaked to have loadout items placed in their bags instead of overriding the outfit.

+
    +
  • outfit - the job outfit we're equipping
  • +
  • preference_source - the preferences to draw loadout items from.
  • +
  • visuals_only - whether we call special equipped procs, or if we just look like we equipped it
  • +

equip_species_outfit

A version of equipOutfit that overrides passed in outfits with their entry on the species' outfit override registry

fan_hud_set_fandom

FAN HUDs! For identifying other fans on-sight.

find_nifsoft

Checks to see if a human with a NIF has the nifsoft_to_find type of NIFSoft installed?

force_say

Makes the player force say what's in their current input box.

format_scars

For use formatting all of the scars this human has for saving for persistent scarring, returns a string with all current scars/missing limb amputation scars for saving or loading purposes

get_body_temp_normal

get_body_temperature Returns the body temperature with any modifications applied

+

This applies the result from proc/get_body_temp_normal_change() against the bodytemp_normal +for the species and returns the result

+

arguments:

+
    +
  • apply_change (optional) Default True This applies the changes to body temperature normal
  • +

get_clothing_on_part

Get all the clothing on a specific body part

get_equipped_items

Used to return a list of equipped items on a human mob; does not by default include held items, see include_flags

+

Argument(s):

+
    +
  • Optional - include_flags, (see obj.flags.dm) describes which optional things to include or not (pockets, accessories, held items)
  • +

get_medhud_examine_info

Collects information displayed about src when examined by a user with a medical HUD.

get_mob_height

Getter for mob height

+

Mainly so that dwarfism can adjust height without needing to override existing height

+

Returns a mob height num

get_name_part

From compose_message(). Snowflake code converted into its own signal proc

get_num_feet

Gets the number of feet the human has.

get_taur_mode

Get a human's taur mode in a standardized way.

+

Returns STYLE_TAUR_* or NONE.

give_emote_overlay

Creates a new emote bodypart overlay and applies it to the human. The overlay can be removed by simply deleting the returned overlay.

+
    +
  • Arguments:
  • +
  • overlay_typepath - Typepath to the overlay that should be applied. Should be a subtype of datum/bodypart_overlay/simple/emote.
  • +
+

Returns the given overlay, which can be deleted to stop displaying it. Will return null if no bodypart matching the overlay's attached_body_zone field can be found.

handle_blood

1 tile down +2 tiles down +6 pixels to the right, zero tiles & 5 pixels DOWN. +Maptext define for Bloodsucker HUDs +Maptext define for Bloodsucker Sunlight HUDs

handle_environment

Environment handlers for species

hardset_dna

Sets the DNA of the mob to the given DNA.

has_anus

Returns true if the human has an accessible anus for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.

has_arms

Returns true if the human has a accessible feet for the parameter, returning the number of feet the human has if they do. Accepts any of the REQUIRE_GENITAL_ defines.

has_balls

Returns true if the human has a accessible balls for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.

has_breasts

Returns true if the human has a accessible breasts for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.

has_ears

Returns true if the human has a accessible ears for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.

has_eyes

Returns true if the human has accessible eyes for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.

has_feet

Returns true if the human has a accessible feet for the parameter, returning the number of feet the human has if they do. Accepts any of the REQUIRE_GENITAL_ defines.

has_penis

Returns true if the human has an accessible penis for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.

has_tail

Returns true if the human has accessible tail for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.

has_vagina

Returns true if the human has an accessible vagina for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.

increment_scar_slot

When we're joining the game in /mob/dead/new_player/proc/create_character, we increment our scar slot then store the slot in our mind datum.

infuse_organ

Attempt to replace/add-to the occupant's organs with "mutated" equivalents. +Returns TRUE on success, FALSE on failure. +Requires the target mob to have an existing organic organ to "mutate".

is_barefoot

Are we wearing something that covers our shoes?

is_bottomless

Are we wearing something that covers our groin?

is_topless

Are we wearing something that covers our chest?

is_wearing_condom

Checks if the human is wearing a condom, and also hasn't broken it.

load_nif_data

Loads the NIF data for an individual user.

load_persistent_scars

Read all the scars we have for the designated character/scar slots, verify they're good/dump them if they're old/wrong format, create them on the user, and write the scars that passed muster back to the file

load_scar

Takes a single scar from the persistent scar loader and recreates it from the saved data

make_clever_and_no_dna_scramble

Proc used to prevent syndicate monkeys and player-selectable Pun Pun able to use objects while stuck in monkey mode.

make_full_human_copy

Makes a full copy of src and returns it. +Attempts to copy as much as possible to be a close to the original. +This includes job outfit (which handles skillchips), quirks, and mutations. +We do not set a mind here, so this is purely the body. +Args: +location - The turf the human will be spawned on.

on_dwarf_trait

Gaining or losing [TRAIT_DWARF] updates our height

on_unknown_trait

Gaining or losing TRAIT_UNKNOWN updates our name and our sechud

pick_infusion_organ

Picks a random mutated organ from the given infuser entry which is also compatible with this human. +Tries to return a typepath of a valid mutant organ if all of the following criteria are true:

+
    +
  1. Target must have a pre-existing organ in the same organ slot as the new organ;
  2. +
+
    +
  • or the new organ must be external.
  • +
+
    +
  1. Target's pre-existing organ must be organic / not robotic.
  2. +
  3. Target must not have the same/identical organ.
  4. +

psykerize

Proc with no side effects that turns someone into a psyker. returns FALSE if it could not psykerize.

randomize_human_appearance

Fully randomizes everything according to the given flags.

return_items_to_console

Returns any items inside of the items_to_send list to a cryo console on station.

save_individual_persistence

Saves the persistence data for the owner.

save_nif_data

Saves the NIF data for a individual user.

save_persistent_scars

Save any scars we have to our designated slot, then write our current slot so that the next time we call /mob/living/carbon/human/proc/increment_scar_slot (the next round we join), we'll be there

sec_hud_set_ID

Security HUDs! Basic mode shows only the job.

send_applicable_messages

Any "special" suicide messages are handled by the related item that the mob uses to kill itself. This is just messages for when it's done with the bare hands.

set_gender

Sets the gender of the human, respecting prefs unless it's forced. Do not force in non-admin operations.

set_mob_height

Setter for mob height

+

Exists so that the update is done immediately

+

Returns TRUE if changed, FALSE otherwise

set_service_style

Gives the appearance of being an agent

setup_organless_effects

This proc is for holding effects applied when a mob is missing certain organs +It is called very, very early in human init because all humans innately spawn with no organs and gain them during init +Gaining said organs removes these effects

singularity_act

Overrides the point value that the mob is worth

slow_psykerize

flavorful variant of psykerizing that deals damage and sends messages before calling psykerize()

smart_equip_targeted

take the most recent item out of a slot or place held item in a slot

socks_hidden

Proc to check if socks are hidden.

something_horrible

DNA HELPER-PROCS

toggle_externals

Returns TRUE if the tank successfully toggles open/closed. Opens the tank only if a breathing apparatus is found.

undershirt_hidden

Proc to check if undershirt is hidden.

underwear_hidden

Proc to check if underwear is hidden.

update_inv_anus

Updating anus slot

update_inv_lewd

Helper proc for calling all the lewd slot update_inv_ procs.

update_inv_nipples

Updating nipples slot

update_inv_penis

Updating penis slot

update_inv_vagina

Updating vagina slot

update_sensor_list

Adds or removes a mob from the global suit sensors list based on sensor status and mode

wash

Called when this human should be washed

wash_hands

Wash the hands, cleaning either the gloves if equipped and not obscured, otherwise the hands themselves if they're not obscured.

+

Returns false if we couldn't wash our hands due to them being obscured, otherwise true

wrists_hidden

Proc to check if wrists are hidden.

\ No newline at end of file diff --git a/mob/living/carbon/human/dummy.html b/mob/living/carbon/human/dummy.html new file mode 100644 index 0000000000000..eb1ef31b5a70b --- /dev/null +++ b/mob/living/carbon/human/dummy.html @@ -0,0 +1 @@ +/mob/living/carbon/human/dummy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

dummy

Procs

harvest_organsLet's extract our dummies organs and limbs for storage, to reduce the cache missed that spamming a dummy cause

Proc Details

harvest_organs

Let's extract our dummies organs and limbs for storage, to reduce the cache missed that spamming a dummy cause

\ No newline at end of file diff --git a/mob/living/carbon/human/species/monkey/angry.html b/mob/living/carbon/human/species/monkey/angry.html new file mode 100644 index 0000000000000..f4aca8f1f9a05 --- /dev/null +++ b/mob/living/carbon/human/species/monkey/angry.html @@ -0,0 +1 @@ +/mob/living/carbon/human/species/monkey/angry - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

angry

Procs

give_ape_escape_helmetGives our funny monkey an Ape Escape hat reference

Proc Details

give_ape_escape_helmet

Gives our funny monkey an Ape Escape hat reference

\ No newline at end of file diff --git a/mob/living/carbon/human/species/monkey/punpun.html b/mob/living/carbon/human/species/monkey/punpun.html new file mode 100644 index 0000000000000..6deae0218123b --- /dev/null +++ b/mob/living/carbon/human/species/monkey/punpun.html @@ -0,0 +1 @@ +/mob/living/carbon/human/species/monkey/punpun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

punpun

Vars

ancestor_chainThe number of times Pun Pun has died since he was last gibbed
ancestor_nameIf we had one of the rare names in a past life

Var Details

ancestor_chain

The number of times Pun Pun has died since he was last gibbed

ancestor_name

If we had one of the rare names in a past life

\ No newline at end of file diff --git a/mob/living/silicon.html b/mob/living/silicon.html new file mode 100644 index 0000000000000..0417061d0bdd1 --- /dev/null +++ b/mob/living/silicon.html @@ -0,0 +1,11 @@ +/mob/living/silicon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

silicon

Vars

alarm_types_showIf this is a path, this gets created as an object in Initialize.
emaggedWhether we have been emagged
hackedcheckList keeping track of hacked laws to announce
ioncheckList keeping track of ion laws to announce
lawcheckList keeping track of which laws to announce
selected_screamThe scream emote selected in prefs
sensors_onAre our siliconHUDs on? TRUE for yes, FALSE for no.

Procs

assemble_lawsAssembles all the zeroth, inherent and supplied laws into a single list.
checklawsGives you a link-driven interface for deciding what laws the statelaws() proc will share with the crew.
do_camera_updateThe actual update - also passes our unique update buffer. This makes our static update faster than stationary cameras, +helping us to avoid running out of the camera's FoV.
fulfill_door_requestAllows the AI to interact somewhat with a door if the requester can be tracked by cameras and the AI can normally access it.
fully_replace_character_nameSame as the normal character name replacement, but updates the contents of the modular interface.
get_ui_accessReturns a UI status representing this silicon's capability to access +the given source. Called by ui_status_silicon_has_access.
logeventRecords an IC event log entry in the cyborg's internal tablet.
transfer_brain_prefTransfers the brain type pref to the silicon mob
transfer_chat_color_prefTransfers the chat color pref to the silicon mob
transfer_emote_prefTransfers the emote pref to the silicon mob
transfer_silicon_prefsSets the MMI type for a cyborg/AI, if applicable, as well as the chat color

Var Details

alarm_types_show

If this is a path, this gets created as an object in Initialize.

emagged

Whether we have been emagged

hackedcheck

List keeping track of hacked laws to announce

ioncheck

List keeping track of ion laws to announce

lawcheck

List keeping track of which laws to announce

selected_scream

The scream emote selected in prefs

sensors_on

Are our siliconHUDs on? TRUE for yes, FALSE for no.

Proc Details

assemble_laws

Assembles all the zeroth, inherent and supplied laws into a single list.

checklaws

Gives you a link-driven interface for deciding what laws the statelaws() proc will share with the crew.

do_camera_update

The actual update - also passes our unique update buffer. This makes our static update faster than stationary cameras, +helping us to avoid running out of the camera's FoV.

fulfill_door_request

Allows the AI to interact somewhat with a door if the requester can be tracked by cameras and the AI can normally access it.

fully_replace_character_name

Same as the normal character name replacement, but updates the contents of the modular interface.

get_ui_access

Returns a UI status representing this silicon's capability to access +the given source. Called by ui_status_silicon_has_access.

logevent

Records an IC event log entry in the cyborg's internal tablet.

+

Creates an entry in the borglog list of the cyborg's internal tablet (if it's a borg), listing the current +in-game time followed by the message given. These logs can be seen by the cyborg in their +BorgUI tablet app. By design, logging fails if the cyborg is dead.

+

(This used to be in robot.dm. It's in here now.)

+

Arguments: +arg1: a string containing the message to log.

transfer_brain_pref

Transfers the brain type pref to the silicon mob

transfer_chat_color_pref

Transfers the chat color pref to the silicon mob

transfer_emote_pref

Transfers the emote pref to the silicon mob

transfer_silicon_prefs

Sets the MMI type for a cyborg/AI, if applicable, as well as the chat color

\ No newline at end of file diff --git a/mob/living/silicon/ai.html b/mob/living/silicon/ai.html new file mode 100644 index 0000000000000..0fa9cce69e0f9 --- /dev/null +++ b/mob/living/silicon/ai.html @@ -0,0 +1 @@ +/mob/living/silicon/ai - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ai

Vars

aiMultiUsed as a fake multitoool in tcomms machinery
ai_tracking_toolThe internal tool used to track players visible through cameras.
alert_controlStation alert datum for showing alerts UI
bot_refWeakref to the bot the ai's commanding right now
hacked_apcsList of hacked APCs
is_anchoredwhether AI is anchored or not, used for checks
lastlocremember AI's last location
openedwhether its cover is opened, so you can wirecut it for deconstruction
posibrain_insidewhether its mmi is a posibrain or regular mmi when going ai mob to ai core structure
vox_typeThe currently selected VOX Announcer voice.
vox_voicesThe list of available VOX Announcer voices to choose from.
vox_word_stringThe VOX word(s) that were previously inputed.

Procs

ai_base_click_altReimplementation of base_click_alt for AI
apply_emote_displayApply an emote to all AI status displays on the station
apply_pref_emote_displayApply an AI's emote display preference
apply_pref_hologram_displayApply an AI's hologram preference
on_track_targetCalled when an AI finds their tracking target.
remove_malf_abilitiesRemoves all malfunction-related abilities from the AI
setAiRestorePowerRoutineProc to hook behavior to the changes of the value of [aiRestorePowerRoutine].
tracked_glidesize_changedKeeps our rate of gliding in step with the mob we're following

Var Details

aiMulti

Used as a fake multitoool in tcomms machinery

ai_tracking_tool

The internal tool used to track players visible through cameras.

alert_control

Station alert datum for showing alerts UI

bot_ref

Weakref to the bot the ai's commanding right now

hacked_apcs

List of hacked APCs

is_anchored

whether AI is anchored or not, used for checks

lastloc

remember AI's last location

opened

whether its cover is opened, so you can wirecut it for deconstruction

posibrain_inside

whether its mmi is a posibrain or regular mmi when going ai mob to ai core structure

vox_type

The currently selected VOX Announcer voice.

vox_voices

The list of available VOX Announcer voices to choose from.

vox_word_string

The VOX word(s) that were previously inputed.

Proc Details

ai_base_click_alt

Reimplementation of base_click_alt for AI

apply_emote_display

Apply an emote to all AI status displays on the station

apply_pref_emote_display

Apply an AI's emote display preference

apply_pref_hologram_display

Apply an AI's hologram preference

on_track_target

Called when an AI finds their tracking target.

remove_malf_abilities

Removes all malfunction-related abilities from the AI

setAiRestorePowerRoutine

Proc to hook behavior to the changes of the value of [aiRestorePowerRoutine].

tracked_glidesize_changed

Keeps our rate of gliding in step with the mob we're following

\ No newline at end of file diff --git a/mob/living/silicon/pai.html b/mob/living/silicon/pai.html new file mode 100644 index 0000000000000..11b3b3e341df1 --- /dev/null +++ b/mob/living/silicon/pai.html @@ -0,0 +1,66 @@ +/mob/living/silicon/pai - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pai

Vars

atmos_analyzerAtmospheric analyzer
available_softwareList of all available downloads
can_holoIf someone has enabled/disabled the pAIs ability to holo
can_receiveWhether this pAI can receive radio messages
can_transmitWhether this pAI can transmit radio messages
cardThe card we inhabit
chassisThe current chasis that will appear when in holoform
encrypt_modToggles whether the pAI can hold encryption keys or not
hacking_cableThe cable we produce when hacking a door
holochassis_healthThe current health of the holochassis
holochassis_readyHolochassis available to use
holoformWhether we are currently holoformed
installed_softwareInstalled software on the pAI
instrumentMusic Synthesizer
internal_gpsGPS
languages_grantedToggles whether universal translator has been activated. Cannot be reversed
leashThe current leash to the owner
master_dnaDNA string for owner verification
master_nameThe master's name string
master_refReference of the bound master
medHUDToggles whether the Medical HUD is active or not
messenger_abilityThe messeenger ability that pAIs get when they are put in a PDA.
newscasterNewscaster
possible_chassisList of all possible chasises. TRUE means the pAI can be picked up in this chasis.
possible_overlaysList of all available card overlays.
ramUsed as currency to purchase different abilities
secHUDToggles whether the Security HUD is active or not
signalerRemote signaler

Procs

buy_softwarePurchases the selected software from the list and deducts their +available ram.
change_imageChanges the image displayed on the pAI.
check_dnaSupporting proc for the pAI to prick it's master's hand +or... whatever. It must be held in order to work +Gives the owner a popup if they want to get the jab.
check_menuChecks if we are allowed to interact with a radial menu
choose_chassisSets a new holochassis skin based on a pAI's choice.
door_jackSwitch that handles door jack operations.
extend_cable#Extend cable supporting proc
find_masterResolves the weakref of the pai's master. +If the master has been deleted, calls reset_software().
fix_speechFixes weird speech issues with the pai.
fold_inReturns the pAI to card mode.
fold_outEngage holochassis form.
get_holderGets the current holder of the pAI if its +being carried in card or holoform.
give_messenger_abilityGives the messenger ability to the pAI, creating a new one if it doesn't have one already.
grant_languagesGrant all languages to the current pAI.
hack_door#Door jacking supporting proc
handle_emagHandles the pai card or the pai itself being hit with an emag. +This replaces any current laws, masters, and DNA.
handle_moveA periodic check to see if the source pAI is nearby. +Deletes the extended cable if the source pAI is not nearby.
host_scanHost scan supporting proc
increment_rangeUpdates the distance we can be from our pai card
on_cult_sacrificedSignal proc for COMSIG_LIVING_CULT_SACRIFICED to give a funny message when a pai is attempted to be sac'd
on_shell_damagedCalled when we take burn or brute damage, pass it to the shell instead
on_shell_weakenedCalled when we take stamina damage, pass it to the shell instead
remove_messenger_abilityRemoves the messenger ability from the pAI, but does not delete it.
reset_softwareResets the pAI and any emagged status.
retract_cableHandles deleting the hacking cable and notifying the user.
set_dnaImprints your DNA onto the downloaded pAI
set_holochassisSets the holochassis skin and updates the icons
set_lawsOpens a tgui alert that allows someone to enter laws.
toggle_holoToggles the ability of the pai to enter holoform
toggle_hudProc that toggles any active huds based on the option.
toggle_integrated_lightToggles the onboard light
toggle_radioToggles the radio settings on and off.
track_paiTracks the associated pai
track_thingTracks the associated hacking_cable
untrack_paiUntracks the associated pai
untrack_thingUntracks the associated hacking
use_cameraAll inclusive camera proc. Zooms, snaps, prints.
wipe_paiWipes the current pAI on the card.

Var Details

atmos_analyzer

Atmospheric analyzer

available_software

List of all available downloads

can_holo

If someone has enabled/disabled the pAIs ability to holo

can_receive

Whether this pAI can receive radio messages

can_transmit

Whether this pAI can transmit radio messages

card

The card we inhabit

chassis

The current chasis that will appear when in holoform

encrypt_mod

Toggles whether the pAI can hold encryption keys or not

hacking_cable

The cable we produce when hacking a door

holochassis_health

The current health of the holochassis

holochassis_ready

Holochassis available to use

holoform

Whether we are currently holoformed

installed_software

Installed software on the pAI

instrument

Music Synthesizer

internal_gps

GPS

languages_granted

Toggles whether universal translator has been activated. Cannot be reversed

leash

The current leash to the owner

master_dna

DNA string for owner verification

master_name

The master's name string

master_ref

Reference of the bound master

medHUD

Toggles whether the Medical HUD is active or not

messenger_ability

The messeenger ability that pAIs get when they are put in a PDA.

newscaster

Newscaster

possible_chassis

List of all possible chasises. TRUE means the pAI can be picked up in this chasis.

possible_overlays

List of all available card overlays.

ram

Used as currency to purchase different abilities

secHUD

Toggles whether the Security HUD is active or not

signaler

Remote signaler

Proc Details

buy_software

Purchases the selected software from the list and deducts their +available ram.

+

@param {string} selection - The software to purchase.

+

@returns {boolean} - TRUE if the software was purchased, FALSE otherwise.

change_image

Changes the image displayed on the pAI.

+

@returns {boolean} - TRUE if the image was changed, FALSE otherwise.

check_dna

Supporting proc for the pAI to prick it's master's hand +or... whatever. It must be held in order to work +Gives the owner a popup if they want to get the jab.

+

@returns {boolean} - TRUE if a sample was taken, FALSE otherwise.

check_menu

Checks if we are allowed to interact with a radial menu

+

@param {atom} anchor - The atom that is anchoring the menu.

+

@returns {boolean} - TRUE if we are allowed to interact with the menu, +FALSE otherwise.

choose_chassis

Sets a new holochassis skin based on a pAI's choice.

+

@returns {boolean} - True if the skin was successfully set. +FALSE otherwise.

door_jack

Switch that handles door jack operations.

+

@param {string} mode - The requested operation of the door jack.

+

@returns {boolean} - TRUE if the door jack state was switched, FALSE otherwise.

extend_cable

#Extend cable supporting proc

+

When doorjack is installed, allows the pAI to drop +a cable which is placed either on the floor or in +someone's hands based (on distance).

+

@returns {boolean} - TRUE if the cable was dropped, FALSE otherwise.

find_master

Resolves the weakref of the pai's master. +If the master has been deleted, calls reset_software().

+

@returns {mob/living || FALSE} - The master mob, or +FALSE if the master is gone.

fix_speech

Fixes weird speech issues with the pai.

+

@returns {boolean} - TRUE if successful.

fold_in

Returns the pAI to card mode.

+

@param {boolean} force - If TRUE, the pAI will be forced to card mode.

+

@returns {boolean} - TRUE if the pAI was forced to card mode. +FALSE otherwise.

fold_out

Engage holochassis form.

+

@param {boolean} force - Force the form to engage.

+

@returns {boolean} - TRUE if the form was successfully engaged. +FALSE otherwise.

get_holder

Gets the current holder of the pAI if its +being carried in card or holoform.

+

@returns {living/carbon || FALSE} - The holder of the pAI, +or FALSE if the pAI is not being carried.

give_messenger_ability

Gives the messenger ability to the pAI, creating a new one if it doesn't have one already.

grant_languages

Grant all languages to the current pAI.

+

@returns {boolean} - TRUE if the languages were granted, FALSE otherwise.

hack_door

#Door jacking supporting proc

+

After a 15 second timer, the door will crack open, +provided they don't move out of the way.

+

@returns {boolean} - TRUE if the door was jacked, FALSE otherwise.

handle_emag

Handles the pai card or the pai itself being hit with an emag. +This replaces any current laws, masters, and DNA.

+

@param {living/carbon} attacker - The user performing the action. +@returns {boolean} - TRUE if successful, FALSE if not.

handle_move

A periodic check to see if the source pAI is nearby. +Deletes the extended cable if the source pAI is not nearby.

host_scan

Host scan supporting proc

+

Allows the pAI to scan its host's health vitals +using an integrated health analyzer.

+

@returns {boolean} - TRUE if the scan was successful, FALSE otherwise.

increment_range

Updates the distance we can be from our pai card

on_cult_sacrificed

Signal proc for COMSIG_LIVING_CULT_SACRIFICED to give a funny message when a pai is attempted to be sac'd

on_shell_damaged

Called when we take burn or brute damage, pass it to the shell instead

on_shell_weakened

Called when we take stamina damage, pass it to the shell instead

remove_messenger_ability

Removes the messenger ability from the pAI, but does not delete it.

reset_software

Resets the pAI and any emagged status.

+

@returns {boolean} - TRUE if successful, FALSE if not.

retract_cable

Handles deleting the hacking cable and notifying the user.

set_dna

Imprints your DNA onto the downloaded pAI

+

@param {mob} user - The user performing the imprint. +@returns {boolean} - TRUE if successful, FALSE if not.

set_holochassis

Sets the holochassis skin and updates the icons

+

@param {string} choice - The skin that will be used for the pAI holoform

+

@returns {boolean} - TRUE if the skin was successfully set. FALSE otherwise.

set_laws

Opens a tgui alert that allows someone to enter laws.

+

@param {mob} user - The user performing the law change. +@returns {boolean} - TRUE if successful, FALSE if not.

toggle_holo

Toggles the ability of the pai to enter holoform

+

@returns {boolean} - TRUE if successful, FALSE if not.

toggle_hud

Proc that toggles any active huds based on the option.

+

@param {string} mode - The hud to toggle.

toggle_integrated_light

Toggles the onboard light

+

@returns {boolean} - TRUE if the light was toggled.

toggle_radio

Toggles the radio settings on and off.

+

@param {string} option - The option being toggled.

track_pai

Tracks the associated pai

track_thing

Tracks the associated hacking_cable

untrack_pai

Untracks the associated pai

untrack_thing

Untracks the associated hacking

use_camera

All inclusive camera proc. Zooms, snaps, prints.

+

@param {mob} user - The pAI requesting the camera.

+

@param {string} mode - The camera option to toggle.

+

@returns {boolean} - TRUE if the camera worked.

wipe_pai

Wipes the current pAI on the card.

+

@param {mob} user - The user performing the action.

+

@returns {boolean} - TRUE if successful, FALSE if not.

\ No newline at end of file diff --git a/mob/living/silicon/robot.html b/mob/living/silicon/robot.html new file mode 100644 index 0000000000000..6ebc81a61e74f --- /dev/null +++ b/mob/living/silicon/robot.html @@ -0,0 +1,76 @@ +/mob/living/silicon/robot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

robot

The Shrinkening

Vars

ai_lockdownBoolean of whether the borg was locked by its AI or nothing
alert_controlStation alert datum for showing alerts UI
can_ride_typecacheWhat types of mobs are allowed to ride/buckle to this mob
cellIf this is a path, this gets created as an object in Initialize.
disabled_modulesFor checking which modules are disabled or not.
disabled_timeIf we've been forcibly disabled for a temporary amount of time.
eye_flash_timerHolds a reference to the timer taking care of blinking lights on dead cyborgs
identRandom serial number generated for each cyborg upon its initialization
interfaceButtonThe reference to the built-in tablet that borgs carry.
ion_trailIonpulse effect.
ionpulseJetpack-like effect.
ionpulse_onJetpack-like effect.
lampButtonLamp button reference
lamp_colorSet lamp color
lamp_doomSet to true if a doomsday event is locking our lamp to on and RED
lamp_enabledIf the lamp is turned on
lamp_functionalIf the lamp isn't broken.
lamp_intensityLamp brightness. Starts at 3, but can be 1 - 5.
lamp_power_consumptionPower consumption of the light per lamp_intensity.
lawupdateCyborgs will sync their laws with their AI by default
lockchargeBoolean of whether the borg is locked down or not
lockdown_timerTimer that allows the borg to self-unlock after a set amount of time
low_power_modeWhether the robot has no charge left.
modelRepresents the cyborg's model (engineering, medical, etc.)
previous_healththe last health before updating - to check net change in health
robot_suitUsed for deconstruction to remember what the borg was constructed out of.
scrambledcodesUsed to determine if a borg shows up on the robotics console. Setting to TRUE hides them.
shown_robot_modulesUsed to determine whether they have the module menu shown or not
smoke_particlesSmoke particle holder for brute damage
spark_particlesSpark particle holder for burn damage
spark_systemSo they can initialize sparks whenever/N

Procs

ExitedChecking Exited() to detect if a hat gets up and walks off. +Drones and pAIs might do this, after all.
activate_moduleFinds the first available slot and attemps to put item item_module in it.
activatedChecks if the item is currently in a slot.
add_to_upgradesMoves the upgrade inside the robot and registers relevant signals.
after_rightedFor any special cases for robots after being righted.
apply_upgradeCalled when a mob uses an upgrade on an open borg. Checks to make sure the upgrade can be applied
borg_emag_endA async proc called from [emag_act] that gives the borg a lot of flavortext, and applies the syndicate lawset after a delay.
break_all_cyborg_slotsBreaks all of a cyborg's slots.
break_cyborg_slotBreaks the slot number, changing the icon.
can_restSafe check of the cyborg's model_features list.
cyborg_deconstructCompletely deconstructs the borg, dropping the MMI/posibrain, removing applied upgrades and stripping the exoskeleton of all limbs, +while also burning out the flashes and prying out the cabling and the cell used in construction
cycle_modulesCycles through the list of enabled modules, deselecting the current one and selecting the next one.
deploy_initdeploy_init: Deploys AI unit into AI shell
deselect_moduleDeselects the module in the slot module_num. +Arguments
draw_powerDraw power from the robot
dump_into_mmiDumps the current occupant of the cyborg into an MMI at the passed location +Returns the borg's MMI on success
get_active_held_itemReturns the thing in our active hand (whatever is in our active module-slot, in this case)
get_selected_moduleReturns the slot number of the selected module, or zero if no modules are selected.
is_invalid_module_numberChecks if the provided module number is a valid number.
lockdown_overrideAllows the borg to unlock themselves after a lenghty period of time.
make_shellmake_shell: Makes an AI shell out of a cyborg unit
observer_screen_updateUpdates the observers's screens with cyborg itemss. +Arguments
on_light_eaterSpecial handling for getting hit with a light eater
on_saboteurspecial handling for getting shot with a light disruptor/saboteur e.g. the fisher
on_upgrade_deletedCalled when an applied upgrade is deleted.
remove_from_upgradesCalled when an upgrade is moved outside the robot. So don't call this directly, use forceMove etc.
repair_all_cyborg_slotsRepairs all slots. Unbroken slots are unaffected.
repair_cyborg_slotRepairs the slot number, updating the icon.
revert_shellrevert_shell: Reverts AI shell back into a normal cyborg unit
select_moduleSelects the module in the slot module_num. +Arguments
set_lockchargeReports the event of the change in value of the lockcharge variable.
set_modularInterface_themeSets the tablet theme and icon
setup_default_nameUsed to setup the a basic and (somewhat) unique name for the robot.
smash_headlampHandles headlamp smashing
toggle_headlampHandles headlamp toggling, disabling, and color setting.
toggle_moduleToggles selection of the module in the slot module_num. +Arguments
uneq_activeUnequips the active held item, if there is one.

Var Details

ai_lockdown

Boolean of whether the borg was locked by its AI or nothing

alert_control

Station alert datum for showing alerts UI

can_ride_typecache

What types of mobs are allowed to ride/buckle to this mob

cell

If this is a path, this gets created as an object in Initialize.

disabled_modules

For checking which modules are disabled or not.

disabled_time

If we've been forcibly disabled for a temporary amount of time.

eye_flash_timer

Holds a reference to the timer taking care of blinking lights on dead cyborgs

ident

Random serial number generated for each cyborg upon its initialization

interfaceButton

The reference to the built-in tablet that borgs carry.

ion_trail

Ionpulse effect.

ionpulse

Jetpack-like effect.

ionpulse_on

Jetpack-like effect.

lampButton

Lamp button reference

lamp_color

Set lamp color

lamp_doom

Set to true if a doomsday event is locking our lamp to on and RED

lamp_enabled

If the lamp is turned on

lamp_functional

If the lamp isn't broken.

lamp_intensity

Lamp brightness. Starts at 3, but can be 1 - 5.

lamp_power_consumption

Power consumption of the light per lamp_intensity.

lawupdate

Cyborgs will sync their laws with their AI by default

lockcharge

Boolean of whether the borg is locked down or not

lockdown_timer

Timer that allows the borg to self-unlock after a set amount of time

low_power_mode

Whether the robot has no charge left.

model

Represents the cyborg's model (engineering, medical, etc.)

previous_health

the last health before updating - to check net change in health

robot_suit

Used for deconstruction to remember what the borg was constructed out of.

scrambledcodes

Used to determine if a borg shows up on the robotics console. Setting to TRUE hides them.

shown_robot_modules

Used to determine whether they have the module menu shown or not

smoke_particles

Smoke particle holder for brute damage

spark_particles

Spark particle holder for burn damage

spark_system

So they can initialize sparks whenever/N

Proc Details

Exited

Checking Exited() to detect if a hat gets up and walks off. +Drones and pAIs might do this, after all.

activate_module

Finds the first available slot and attemps to put item item_module in it.

+

Arguments

+
    +
  • item_module - the item being equipped to a slot.
  • +

activated

Checks if the item is currently in a slot.

+

If the item is found in a slot, this returns TRUE. Otherwise, it returns FALSE +Arguments

+
    +
  • item_module - the item being checked
  • +

add_to_upgrades

Moves the upgrade inside the robot and registers relevant signals.

after_righted

For any special cases for robots after being righted.

apply_upgrade

Called when a mob uses an upgrade on an open borg. Checks to make sure the upgrade can be applied

borg_emag_end

A async proc called from [emag_act] that gives the borg a lot of flavortext, and applies the syndicate lawset after a delay.

break_all_cyborg_slots

Breaks all of a cyborg's slots.

break_cyborg_slot

Breaks the slot number, changing the icon.

+

Arguments

+
    +
  • module_num - the slot number being repaired.
  • +

can_rest

Safe check of the cyborg's model_features list.

+

model_features is defined in modular_skyrat\modules\altborgs\code\modules\mob\living\silicon\robot\robot_model.dm.

cyborg_deconstruct

Completely deconstructs the borg, dropping the MMI/posibrain, removing applied upgrades and stripping the exoskeleton of all limbs, +while also burning out the flashes and prying out the cabling and the cell used in construction

cycle_modules

Cycles through the list of enabled modules, deselecting the current one and selecting the next one.

deploy_init

deploy_init: Deploys AI unit into AI shell

+

Arguments:

+
    +
  • AI - AI unit that initiated the deployment into the AI shell
  • +

deselect_module

Deselects the module in the slot module_num. +Arguments

+
    +
  • module_num - the slot number being de-selected
  • +

draw_power

Draw power from the robot

dump_into_mmi

Dumps the current occupant of the cyborg into an MMI at the passed location +Returns the borg's MMI on success

get_active_held_item

Returns the thing in our active hand (whatever is in our active module-slot, in this case)

get_selected_module

Returns the slot number of the selected module, or zero if no modules are selected.

is_invalid_module_number

Checks if the provided module number is a valid number.

+

If the number is between 1 and 3 (if check_all_slots is true) or between 1 and the number of disabled +modules (if check_all_slots is false), then it returns FALSE. Otherwise, it returns TRUE. +Arguments

+
    +
  • module_num - the passed module num that is checked for validity.
  • +
  • check_all_slots - TRUE = the proc checks all slots | FALSE = the proc only checks un-disabled slots
  • +

lockdown_override

Allows the borg to unlock themselves after a lenghty period of time.

make_shell

make_shell: Makes an AI shell out of a cyborg unit

+

Arguments:

+
    +
  • board - B.O.R.I.S. module board used for transforming the cyborg into AI shell
  • +

observer_screen_update

Updates the observers's screens with cyborg itemss. +Arguments

+
    +
  • item_module - the item being added or removed from the screen
  • +
  • add - whether or not the item is being added, or removed.
  • +

on_light_eater

Special handling for getting hit with a light eater

on_saboteur

special handling for getting shot with a light disruptor/saboteur e.g. the fisher

on_upgrade_deleted

Called when an applied upgrade is deleted.

remove_from_upgrades

Called when an upgrade is moved outside the robot. So don't call this directly, use forceMove etc.

repair_all_cyborg_slots

Repairs all slots. Unbroken slots are unaffected.

repair_cyborg_slot

Repairs the slot number, updating the icon.

+

Arguments

+
    +
  • module_num - the module number being repaired.
  • +

revert_shell

revert_shell: Reverts AI shell back into a normal cyborg unit

select_module

Selects the module in the slot module_num. +Arguments

+
    +
  • module_num - the slot number being selected
  • +

set_lockcharge

Reports the event of the change in value of the lockcharge variable.

set_modularInterface_theme

Sets the tablet theme and icon

+

These variables are based on if the borg is a syndicate type or is emagged. This gets used in model change code +and also borg emag code.

setup_default_name

Used to setup the a basic and (somewhat) unique name for the robot.

smash_headlamp

Handles headlamp smashing

+

When called (such as by the shadowperson lighteater's attack), this proc will break the borg's headlamp +and then call toggle_headlamp to disable the light. It also plays a sound effect of glass breaking, and +tells the borg what happened to its chat. Broken lights can be repaired by using a flashlight on the borg.

toggle_headlamp

Handles headlamp toggling, disabling, and color setting.

+

The initial if statment is a bit long, but the gist of it is that should the lamp be on AND the update_color +arg be true, we should simply change the color of the lamp but not disable it. Otherwise, should the turn_off +arg be true, the lamp already be enabled, any of the normal reasons the lamp would turn off happen, or the +update_color arg be passed with the lamp not on, we should set the lamp off. The update_color arg is only +ever true when this proc is called from the borg tablet, when the color selection feature is used.

+

Arguments:

+
    +
  • arg1 - turn_off, if enabled will force the lamp into an off state (rather than toggling it if possible)
  • +
  • arg2 - update_color, if enabled, will adjust the behavior of the proc to change the color of the light if it is already on.
  • +

toggle_module

Toggles selection of the module in the slot module_num. +Arguments

+
    +
  • module_num - the slot number being toggled
  • +

uneq_active

Unequips the active held item, if there is one.

\ No newline at end of file diff --git a/mob/living/simple_animal.html b/mob/living/simple_animal.html new file mode 100644 index 0000000000000..228b5ac2fb5a9 --- /dev/null +++ b/mob/living/simple_animal.html @@ -0,0 +1,15 @@ +/mob/living/simple_animal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

simple_animal

Simple, mostly AI-controlled critters, such as pets, bots, and drones.

Vars

AIStatusThe Status of our AI, can be set to AI_ON (On, usual processing), AI_IDLE (Will not process, but will return to AI_ON if an enemy comes near), AI_OFF (Off, Not processing ever).
access_cardSimple_animal access. +Innate access uses an internal ID card.
animal_speciesSorry, no spider+corgi buttbabies.
armour_penetrationHow much armour they ignore, as a flat reduction from the targets armour value.
atmos_requirementsAtmos effect - Yes, you can make creatures that require plasma or co2 to survive. N2O is a trace gas and handled separately, hence why it isn't here. It'd be hard to add it. Hard and me don't mix (Yes, yes make all the dick jokes you want with that.) - Errorage +Leaving something at 0 means it's off - has no maximum.
attack_soundSound played when the critter attacks.
attack_verb_continuousAttacking verb in present continuous tense.
attack_verb_simpleAttacking verb in present simple tense.
attack_vis_effectOverride for the visual attack effect shown on 'do_attack_animation()'.
attacked_soundPlayed when someone punches the creature.
bare_wound_bonusHow much bare wounding power it has
can_have_aionce we have become sentient, we can never go back.
childtypeHot simple_animal baby making vars.
damage_coeff1 for full damage , 0 for none , -1 for 1:1 heal from that source.
del_on_deathCauses mob to be deleted on death, useful for mobs that spawn lootable corpses.
emote_cooldownLimits how often mobs can hunt other mobs
emote_hearHearable emotes
emote_seeUnlike speak_emote, the list of things in this variable only show by themselves with no spoken text. IE: Ian barks, Ian yaps
environment_smashSet to 1 to allow breaking of crates,lockers,racks,tables; 2 for walls; 3 for Rwalls.
flip_on_deathFlip the sprite upside down on death. Mostly here for things lacking custom dead sprites.
footstep_typeWhat kind of footstep this mob should have. Null if it shouldn't have any.
friendly_verb_continuousAttacking, but without damage, verb in present continuous tense.
friendly_verb_simpleAttacking, but without damage, verb in present simple tense.
gold_core_spawnableIf the mob can be spawned with a gold slime core. HOSTILE_SPAWN are spawned with plasma, FRIENDLY_SPAWN are spawned with blood.
icon_deadIcon when the animal is dead. Don't use animated icons for this.
icon_gibWe only try to show a gibbing animation if this exists.
inept_hunterIs this animal horrible at hunting?
lootList of things spawned at mob's loc when it dies.
max_staminalossMaximum amount of stamina damage the mob can be inflicted with total
maxbodytempMaximal body temperature without receiving damage
melee_damage_typeDamage type of a simple mob's melee attack, should it do damage.
minbodytempMinimal body temperature without receiving damage
my_zI don't want to confuse this with client registered_z.
obj_damagehow much damage this simple animal does to objects, if any.
prevent_goto_movementMakes Goto() return FALSE and not start a move loop
reagent_healthwhether the simple animal can be healed/damaged through reagents
response_disarm_continuousDisarm-intent verb in present continuous tense.
response_disarm_simpleDisarm-intent verb in present simple tense.
response_harm_continuousHarm-intent verb in present continuous tense.
response_harm_simpleHarm-intent verb in present simple tense.
response_help_continuousWhen someone interacts with the simple animal. +Help-intent verb in present continuous tense.
response_help_simpleHelp-intent verb in present simple tense.
sentience_typeSentience type, for slime potions.
sharpnessIf the attacks from this are sharp
shouldwakeupconvenience var for forcibly waking up an idling AI on next check.
simple_mob_flagsGeneric flags
speak_emoteEmotes while speaking IE: Ian [emote], [text] -- Ian barks, "WOOF!". Spoken text is generated from the speak variable.
speedLETS SEE IF I CAN SET SPEEDS FOR SIMPLE MOBS WITHOUT DESTROYING EVERYTHING. Higher speed is slower, negative speed is faster.
stamina_recoveryHow much stamina the mob recovers per second
stop_automated_movementUse this to temporarely stop random movement or to if you write special movement code for animals.
stop_automated_movement_when_pulledWhen set to 1 this stops the animal from moving when someone is pulling it.
temperature_normalization_speedHow fast the mob's temperature normalizes. The greater the value, the slower their temperature normalizes. Should always be greater than 0.
turns_per_moveticks up every time handle_automated_movement() is called, which is every 2 seconds at the time of documenting. 1 turns per move is 1 movement every 2 seconds.
unsuitable_atmos_damageThis damage is taken when atmos doesn't fit all the requirements above.
unsuitable_cold_damageThis damage is taken when the body temp is too cold.
unsuitable_heat_damageThis damage is taken when the body temp is too hot.
wanderDoes the mob wander around when idle?
weather_immunitiesList of weather immunity traits that are then added on Initialize(), see traits.dm.
wound_bonusHow much wounding power it has

Procs

add_cell_sampleThis proc is used for adding the swabbale element to mobs so that they are able to be biopsied and making sure holograpic and butter-based creatures don't yield viable cells samples.
adjustHealthAdjusts the health of a simple mob by a set amount and wakes AI if its idle to react
ex_act_devastateCalled when a devastating explosive acts on this mob
ex_act_heavyCalled when a heavy explosive acts on this mob
ex_act_lightCalled when a light explosive acts on this mob
update_staminaUpdates the simple mob's stamina loss.

Var Details

AIStatus

The Status of our AI, can be set to AI_ON (On, usual processing), AI_IDLE (Will not process, but will return to AI_ON if an enemy comes near), AI_OFF (Off, Not processing ever).

access_card

Simple_animal access. +Innate access uses an internal ID card.

animal_species

Sorry, no spider+corgi buttbabies.

armour_penetration

How much armour they ignore, as a flat reduction from the targets armour value.

atmos_requirements

Atmos effect - Yes, you can make creatures that require plasma or co2 to survive. N2O is a trace gas and handled separately, hence why it isn't here. It'd be hard to add it. Hard and me don't mix (Yes, yes make all the dick jokes you want with that.) - Errorage +Leaving something at 0 means it's off - has no maximum.

attack_sound

Sound played when the critter attacks.

attack_verb_continuous

Attacking verb in present continuous tense.

attack_verb_simple

Attacking verb in present simple tense.

attack_vis_effect

Override for the visual attack effect shown on 'do_attack_animation()'.

attacked_sound

Played when someone punches the creature.

bare_wound_bonus

How much bare wounding power it has

can_have_ai

once we have become sentient, we can never go back.

childtype

Hot simple_animal baby making vars.

damage_coeff

1 for full damage , 0 for none , -1 for 1:1 heal from that source.

del_on_death

Causes mob to be deleted on death, useful for mobs that spawn lootable corpses.

emote_cooldown

Limits how often mobs can hunt other mobs

emote_hear

Hearable emotes

emote_see

Unlike speak_emote, the list of things in this variable only show by themselves with no spoken text. IE: Ian barks, Ian yaps

environment_smash

Set to 1 to allow breaking of crates,lockers,racks,tables; 2 for walls; 3 for Rwalls.

flip_on_death

Flip the sprite upside down on death. Mostly here for things lacking custom dead sprites.

footstep_type

What kind of footstep this mob should have. Null if it shouldn't have any.

friendly_verb_continuous

Attacking, but without damage, verb in present continuous tense.

friendly_verb_simple

Attacking, but without damage, verb in present simple tense.

gold_core_spawnable

If the mob can be spawned with a gold slime core. HOSTILE_SPAWN are spawned with plasma, FRIENDLY_SPAWN are spawned with blood.

icon_dead

Icon when the animal is dead. Don't use animated icons for this.

icon_gib

We only try to show a gibbing animation if this exists.

inept_hunter

Is this animal horrible at hunting?

loot

List of things spawned at mob's loc when it dies.

max_staminaloss

Maximum amount of stamina damage the mob can be inflicted with total

maxbodytemp

Maximal body temperature without receiving damage

melee_damage_type

Damage type of a simple mob's melee attack, should it do damage.

minbodytemp

Minimal body temperature without receiving damage

my_z

I don't want to confuse this with client registered_z.

obj_damage

how much damage this simple animal does to objects, if any.

prevent_goto_movement

Makes Goto() return FALSE and not start a move loop

reagent_health

whether the simple animal can be healed/damaged through reagents

response_disarm_continuous

Disarm-intent verb in present continuous tense.

response_disarm_simple

Disarm-intent verb in present simple tense.

response_harm_continuous

Harm-intent verb in present continuous tense.

response_harm_simple

Harm-intent verb in present simple tense.

response_help_continuous

When someone interacts with the simple animal. +Help-intent verb in present continuous tense.

response_help_simple

Help-intent verb in present simple tense.

sentience_type

Sentience type, for slime potions.

sharpness

If the attacks from this are sharp

shouldwakeup

convenience var for forcibly waking up an idling AI on next check.

simple_mob_flags

Generic flags

speak_emote

Emotes while speaking IE: Ian [emote], [text] -- Ian barks, "WOOF!". Spoken text is generated from the speak variable.

speed

LETS SEE IF I CAN SET SPEEDS FOR SIMPLE MOBS WITHOUT DESTROYING EVERYTHING. Higher speed is slower, negative speed is faster.

stamina_recovery

How much stamina the mob recovers per second

stop_automated_movement

Use this to temporarely stop random movement or to if you write special movement code for animals.

stop_automated_movement_when_pulled

When set to 1 this stops the animal from moving when someone is pulling it.

temperature_normalization_speed

How fast the mob's temperature normalizes. The greater the value, the slower their temperature normalizes. Should always be greater than 0.

turns_per_move

ticks up every time handle_automated_movement() is called, which is every 2 seconds at the time of documenting. 1 turns per move is 1 movement every 2 seconds.

unsuitable_atmos_damage

This damage is taken when atmos doesn't fit all the requirements above.

unsuitable_cold_damage

This damage is taken when the body temp is too cold.

unsuitable_heat_damage

This damage is taken when the body temp is too hot.

wander

Does the mob wander around when idle?

weather_immunities

List of weather immunity traits that are then added on Initialize(), see traits.dm.

wound_bonus

How much wounding power it has

Proc Details

add_cell_sample

This proc is used for adding the swabbale element to mobs so that they are able to be biopsied and making sure holograpic and butter-based creatures don't yield viable cells samples.

adjustHealth

Adjusts the health of a simple mob by a set amount and wakes AI if its idle to react

+

Arguments:

+
    +
  • amount The amount that will be used to adjust the mob's health
  • +
  • updating_health If the mob's health should be immediately updated to the new value
  • +
  • forced If we should force update the adjustment of the mob's health no matter the restrictions, like TRAIT_GODMODE
  • +

ex_act_devastate

Called when a devastating explosive acts on this mob

ex_act_heavy

Called when a heavy explosive acts on this mob

ex_act_light

Called when a light explosive acts on this mob

update_stamina

Updates the simple mob's stamina loss.

+

Updates the speed and staminaloss of a given simplemob. +Reduces the stamina loss by stamina_recovery

\ No newline at end of file diff --git a/mob/living/simple_animal/bot.html b/mob/living/simple_animal/bot.html new file mode 100644 index 0000000000000..a89e8392ae074 --- /dev/null +++ b/mob/living/simple_animal/bot.html @@ -0,0 +1,6 @@ +/mob/living/simple_animal/bot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bot

Vars

ai_waypointThe end point of a bot's path, or the target location.
automated_announcementsList of strings to sound effects corresponding to automated messages the bot can play
base_speedThe speed at which the bot moves, or the number of times it moves per process() tick.
bot_cover_flagsBot-related cover flags on the Bot to deal with what has been done to their cover, including emagging. BOT_COVER_MAINTS_OPEN | BOT_COVER_LOCKED | BOT_COVER_EMAGGED | BOT_COVER_HACKED
bot_mode_flagsBot-related mode flags on the Bot indicating how they will act. BOT_MODE_ON | BOT_MODE_AUTOPATROL | BOT_MODE_REMOTE_ENABLED | BOT_MODE_CAN_BE_SAPIENT | BOT_MODE_ROUNDSTART_POSSESSION
bot_typeThe type of bot it is, for radio control.
calling_aiLinks a bot to the AI calling it.
can_be_possessedIf true we will allow ghosts to control this mob
data_hud_typeThe type of data HUD the bot uses. Diagnostic by default.
destinationDestination description tag
frustrationUsed by some bots for tracking failures to reach their target.
hackablesSmall name of what the bot gets messed with when getting hacked/emagged.
ignore_listList of unreachable targets for an ignore-list enabled bot to ignore.
internal_radioThe bot's radio, for speaking to people.
modeStandardizes the vars that indicate the bot is busy with its function.
nearest_beaconthe nearest beacon's tag
nearest_beacon_locThe nearest beacon's location
new_destinationPending new destination (waiting for beacon response)
next_destinationThe next destination in the patrol route
next_salute_checkCooldown between salutations for commissioned bots
offer_ghosts_cooldownIf true we will offer this
pa_systemAction we use to say voice lines out loud, also we just pass anything we try to say through here just in case it plays a voice line
paicardThe inserted (if any) pAI in this bot.
pathList of turfs through which a bot 'steps' to reach the waypoint, associated with the path image, if there is one.
pathsetThe bot is on a custom set path.
patrol_targetTurf a bot is summoned to navitage towards.
player_accessAdditonal access given to player-controlled bots.
possessed_messageMessage to display upon possession
prev_accessAll initial access this bot started with.
radio_channelThe bot's default radio channel
radio_keywhich channels can the bot listen to
robot_armThe Robot arm attached to this robot - has a 50% chance to drop on death.
summon_targetTurf of a user summoning a bot towards their location.
triesNumber of times the bot tried and failed to move.

Procs

bot_stepPerforms a step_towards and increments the path if successful. Returns TRUE if the bot moved and FALSE otherwise.
check_possessionReturns true if this mob can be controlled
disable_possessionDisables this bot from being possessed by ghosts
ejectpaiEjects a pAI from this bot
ejectpairemoteEjects the pAI remotely.
enable_possessionAllows this bot to be controlled by a ghost, who will become its mind
get_emagged_messageReturns a string of flavor text for emagged bots as defined by policy.
get_mode_uiReturns a status string about the bot's current status, if it's moving, manually controlled, or idle.
insertpaiPlaces a pAI in control of this mob
post_possessionFired after something takes control of this mob
renameAllows renaming the bot to something else
scanAttempt to scan tiles near [src], first by checking adjacent, then if a target is still not found, nearby.
speakPass a message to have the bot say() it, passing through our announcement action to potentially also play a sound. +Optionally pass a frequency to say it on the radio.
topic_deniedAccess check proc for bot topics! Remember to place in a bot's individual Topic if desired.

Var Details

ai_waypoint

The end point of a bot's path, or the target location.

automated_announcements

List of strings to sound effects corresponding to automated messages the bot can play

base_speed

The speed at which the bot moves, or the number of times it moves per process() tick.

bot_cover_flags

Bot-related cover flags on the Bot to deal with what has been done to their cover, including emagging. BOT_COVER_MAINTS_OPEN | BOT_COVER_LOCKED | BOT_COVER_EMAGGED | BOT_COVER_HACKED

bot_mode_flags

Bot-related mode flags on the Bot indicating how they will act. BOT_MODE_ON | BOT_MODE_AUTOPATROL | BOT_MODE_REMOTE_ENABLED | BOT_MODE_CAN_BE_SAPIENT | BOT_MODE_ROUNDSTART_POSSESSION

bot_type

The type of bot it is, for radio control.

calling_ai

Links a bot to the AI calling it.

can_be_possessed

If true we will allow ghosts to control this mob

data_hud_type

The type of data HUD the bot uses. Diagnostic by default.

destination

Destination description tag

frustration

Used by some bots for tracking failures to reach their target.

hackables

Small name of what the bot gets messed with when getting hacked/emagged.

ignore_list

List of unreachable targets for an ignore-list enabled bot to ignore.

internal_radio

The bot's radio, for speaking to people.

mode

Standardizes the vars that indicate the bot is busy with its function.

nearest_beacon

the nearest beacon's tag

nearest_beacon_loc

The nearest beacon's location

new_destination

Pending new destination (waiting for beacon response)

next_destination

The next destination in the patrol route

next_salute_check

Cooldown between salutations for commissioned bots

offer_ghosts_cooldown

If true we will offer this

pa_system

Action we use to say voice lines out loud, also we just pass anything we try to say through here just in case it plays a voice line

paicard

The inserted (if any) pAI in this bot.

path

List of turfs through which a bot 'steps' to reach the waypoint, associated with the path image, if there is one.

pathset

The bot is on a custom set path.

patrol_target

Turf a bot is summoned to navitage towards.

player_access

Additonal access given to player-controlled bots.

possessed_message

Message to display upon possession

prev_access

All initial access this bot started with.

radio_channel

The bot's default radio channel

radio_key

which channels can the bot listen to

robot_arm

The Robot arm attached to this robot - has a 50% chance to drop on death.

summon_target

Turf of a user summoning a bot towards their location.

tries

Number of times the bot tried and failed to move.

Proc Details

bot_step

Performs a step_towards and increments the path if successful. Returns TRUE if the bot moved and FALSE otherwise.

check_possession

Returns true if this mob can be controlled

disable_possession

Disables this bot from being possessed by ghosts

ejectpai

Ejects a pAI from this bot

ejectpairemote

Ejects the pAI remotely.

enable_possession

Allows this bot to be controlled by a ghost, who will become its mind

get_emagged_message

Returns a string of flavor text for emagged bots as defined by policy.

get_mode_ui

Returns a status string about the bot's current status, if it's moving, manually controlled, or idle.

insertpai

Places a pAI in control of this mob

post_possession

Fired after something takes control of this mob

rename

Allows renaming the bot to something else

scan

Attempt to scan tiles near [src], first by checking adjacent, then if a target is still not found, nearby.

+

scan_types - list (of typepaths) that nearby tiles are being scanned for. +old_target - what has already been scanned, and will early return at checkscan. +scan_range - how far away from [src] will be scanned, if nothing is found directly adjacent.

speak

Pass a message to have the bot say() it, passing through our announcement action to potentially also play a sound. +Optionally pass a frequency to say it on the radio.

topic_denied

Access check proc for bot topics! Remember to place in a bot's individual Topic if desired.

\ No newline at end of file diff --git a/mob/living/simple_animal/bot/floorbot.html b/mob/living/simple_animal/bot/floorbot.html new file mode 100644 index 0000000000000..c7fa557e86b42 --- /dev/null +++ b/mob/living/simple_animal/bot/floorbot.html @@ -0,0 +1 @@ +/mob/living/simple_animal/bot/floorbot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

floorbot

Procs

check_bot_workingChecks a given turf to see if another floorbot is there, working as well.
toggle_magnetmobs should use move_resist instead of anchored.

Proc Details

check_bot_working

Checks a given turf to see if another floorbot is there, working as well.

toggle_magnet

mobs should use move_resist instead of anchored.

\ No newline at end of file diff --git a/mob/living/simple_animal/bot/mulebot.html b/mob/living/simple_animal/bot/mulebot.html new file mode 100644 index 0000000000000..49d9762c22c49 --- /dev/null +++ b/mob/living/simple_animal/bot/mulebot.html @@ -0,0 +1,3 @@ +/mob/living/simple_animal/bot/mulebot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mulebot

Vars

blockcounttrue if already reached the target +Number of times retried a blocked path
cell_move_power_usageInternal Powercell
home_destinationthis the direction to unload onto/load from
idunique identifier in case there are multiple mulebots.
loadicon_state to use in update_icon_state
loaddirthis is turf to navigate to (location of beacon)
mulebot_delivery_flagsflags of mulebot mode
num_stepsHow much power we use when we move.
passengerwhat we're transporting
reached_targettag of home delivery beacon
targetwho's riding us

Procs

InitializeThe amount of steps we should take until we rest for a time.
check_pre_stepChecks whether the bot can complete a step_towards, checking whether the bot is on and has the charge to do the move. Returns COMPONENT_MOB_BOT_CANCELSTEP if the bot should not step.
get_load_nameresolves the name to display for the loaded mob. primarily needed for the paranormal subtype since we don't want to show the name of ghosts riding it.
has_powerreturns true if the bot is fully powered.
on_bot_stepUses power from the cell when the bot steps.

Var Details

blockcount

true if already reached the target +Number of times retried a blocked path

cell_move_power_usage

Internal Powercell

home_destination

this the direction to unload onto/load from

id

unique identifier in case there are multiple mulebots.

load

icon_state to use in update_icon_state

loaddir

this is turf to navigate to (location of beacon)

mulebot_delivery_flags

flags of mulebot mode

num_steps

How much power we use when we move.

passenger

what we're transporting

reached_target

tag of home delivery beacon

target

who's riding us

Proc Details

Initialize

The amount of steps we should take until we rest for a time.

check_pre_step

Checks whether the bot can complete a step_towards, checking whether the bot is on and has the charge to do the move. Returns COMPONENT_MOB_BOT_CANCELSTEP if the bot should not step.

get_load_name

resolves the name to display for the loaded mob. primarily needed for the paranormal subtype since we don't want to show the name of ghosts riding it.

has_power

returns true if the bot is fully powered.

on_bot_step

Uses power from the cell when the bot steps.

\ No newline at end of file diff --git a/mob/living/simple_animal/bot/secbot.html b/mob/living/simple_animal/bot/secbot.html new file mode 100644 index 0000000000000..5b8f934efd350 --- /dev/null +++ b/mob/living/simple_animal/bot/secbot.html @@ -0,0 +1 @@ +/mob/living/simple_animal/bot/secbot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

secbot

Vars

baton_typeThe type of baton this Secbot will use
commissionedWhether this secbot is considered 'commissioned' and given the trait on Initialize.
cuff_typeThe type of cuffs we use on criminals after making arrests
fair_market_price_arrestOn arrest, charges the violator this much. If they don't have that much in their account, they will get beaten instead
fair_market_price_detainCharged each time the violator is stunned on detain
last_foundTime since last seeing their perpetrator
oldtarget_nameName of their last target to prevent spamming
payment_departmentThe department the secbot will deposit collected money into
security_mode_flagsFlags SecBOTs use on what to check on targets when arresting, and whether they should announce it to security/handcuff their target
targetTheir current target
target_lastlocThe last location their target was seen at
threatlevelThe threat level of the BOT, will arrest anyone at threatlevel 4 or above
weaponThe weapon (from baton_type) that will be used to make arrests.
weapon_forceForce of the harmbaton used on them

Procs

check_nap_violationsReturns false if the current target is unable to pay the fair_market_price for being arrested/detained
nap_violationDoes nothing
threat_reactReact to detecting criminal scum by making some kind of noise

Var Details

baton_type

The type of baton this Secbot will use

commissioned

Whether this secbot is considered 'commissioned' and given the trait on Initialize.

cuff_type

The type of cuffs we use on criminals after making arrests

fair_market_price_arrest

On arrest, charges the violator this much. If they don't have that much in their account, they will get beaten instead

fair_market_price_detain

Charged each time the violator is stunned on detain

last_found

Time since last seeing their perpetrator

oldtarget_name

Name of their last target to prevent spamming

payment_department

The department the secbot will deposit collected money into

security_mode_flags

Flags SecBOTs use on what to check on targets when arresting, and whether they should announce it to security/handcuff their target

target

Their current target

target_lastloc

The last location their target was seen at

threatlevel

The threat level of the BOT, will arrest anyone at threatlevel 4 or above

weapon

The weapon (from baton_type) that will be used to make arrests.

weapon_force

Force of the harmbaton used on them

Proc Details

check_nap_violations

Returns false if the current target is unable to pay the fair_market_price for being arrested/detained

nap_violation

Does nothing

threat_react

React to detecting criminal scum by making some kind of noise

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile.html b/mob/living/simple_animal/hostile.html new file mode 100644 index 0000000000000..72fd1e4205d9d --- /dev/null +++ b/mob/living/simple_animal/hostile.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hostile

Vars

aggro_vision_rangeIf a mob is aggro, we search in this radius. Defaults to 9 to keep in line with original simple mob aggro radius
approaching_targetWe should dodge now
attack_all_objectsif true, equivalent to having a wanted_objects list containing ALL objects.
attack_sameSet us to TRUE to allow us to attack our own faction
casingtypeset ONLY it and NULLIFY projectiletype, if we have projectile IN CASING
check_friendly_fireShould the ranged mob check for friendlies when shooting
dodge_probProbability that we dodge
dodgingAre we dodging?
emote_tauntList of emotes this mob can do when it taunts
friendsList of mobs this mob is friendly towards
in_meleeWe should sidestep now
lose_patience_timeout30 seconds by default, so there's no major changes to AI behaviour, beyond actually bailing if stuck forever
lose_patience_timer_idid for a timer to call LoseTarget(), used to stop mobs fixating on a target they can't reach
melee_queue_distanceIf target is close enough start preparing to hit them if we have rapid_melee enabled
minimum_distanceMinimum approach distance, so ranged mobs chase targets down, but still keep their distance set in tiles to the target, set higher to make mobs keep distance
move_to_delaydelay for the automated movement.
projectilesoundSound our projectile makes when fired
projectiletypeset ONLY it and NULLIFY casingtype var, if we have ONLY projectile
rangedDoes this mob use ranged attacks?
ranged_cooldownWhat the current cooldown on ranged attacks is, generally world.time + ranged_cooldown_time
ranged_cooldown_timeHow long, in deciseconds, the cooldown of ranged attacks is
ranged_ignores_visionif it'll fire ranged attacks even if it lacks vision on its target, only works with environment smash
ranged_messageFluff text for ranged mobs
rapidHow many shots per volley.
rapid_fire_delayTime between rapid fire shots
rapid_meleeNumber of melee attacks between each npc pool tick. Spread evenly.
retreat_distanceIf our mob runs from players when they're too close, set in tile distance. By default, mobs do not retreat.
robust_searchingBy default, mobs have a simple searching method, set this to TRUE for the more scrutinous searching (stat_attack, stat_exclusive, etc), should be disabled on most mobs
search_objectsIf we want to consider objects when searching around, set this to 1. If you want to search for objects while also ignoring mobs until hurt, set it to 2. To completely ignore mobs, even when attacked, set it to 3
search_objects_regain_timeThe delay between being attacked and gaining our old search_objects value back
search_objects_timer_idTimer for regaining our old search_objects value after being attacked
sidestep_per_cycleHow many sidesteps per npcpool cycle when in melee
stat_attackMobs ignore mob/living targets with a stat lower than that of stat_attack. If set to DEAD, then they'll include corpses in their targets, if to HARD_CRIT they'll keep attacking until they kill, and so on.
stat_exclusiveMobs with this set to TRUE will exclusively attack things defined by stat_attack, stat_attack DEAD means they will only attack corpses
targetThe current target of our attacks, use GiveTarget and LoseTarget to set this var
targets_fromall range/attack/etc. calculations should be done from the atom this weakrefs, useful for Vehicles and such.
taunt_chanceProbability that the mob will taunt
vision_rangeHow big of an area to search for targets in, a vision of 9 attempts to find targets as soon as they walk into screen view
wanted_objectsA typecache of objects types that will be checked against to attack, should we have search_objects enabled

Procs

AICanContinueAI Status
ListTargetsHOSTILE MOB TARGETING AND AGGRESSION
deathEND HOSTILE MOB TARGETING AND AGGRESSION

Var Details

aggro_vision_range

If a mob is aggro, we search in this radius. Defaults to 9 to keep in line with original simple mob aggro radius

approaching_target

We should dodge now

attack_all_objects

if true, equivalent to having a wanted_objects list containing ALL objects.

attack_same

Set us to TRUE to allow us to attack our own faction

casingtype

set ONLY it and NULLIFY projectiletype, if we have projectile IN CASING

check_friendly_fire

Should the ranged mob check for friendlies when shooting

dodge_prob

Probability that we dodge

dodging

Are we dodging?

emote_taunt

List of emotes this mob can do when it taunts

friends

List of mobs this mob is friendly towards

in_melee

We should sidestep now

lose_patience_timeout

30 seconds by default, so there's no major changes to AI behaviour, beyond actually bailing if stuck forever

lose_patience_timer_id

id for a timer to call LoseTarget(), used to stop mobs fixating on a target they can't reach

melee_queue_distance

If target is close enough start preparing to hit them if we have rapid_melee enabled

minimum_distance

Minimum approach distance, so ranged mobs chase targets down, but still keep their distance set in tiles to the target, set higher to make mobs keep distance

move_to_delay

delay for the automated movement.

projectilesound

Sound our projectile makes when fired

projectiletype

set ONLY it and NULLIFY casingtype var, if we have ONLY projectile

ranged

Does this mob use ranged attacks?

ranged_cooldown

What the current cooldown on ranged attacks is, generally world.time + ranged_cooldown_time

ranged_cooldown_time

How long, in deciseconds, the cooldown of ranged attacks is

ranged_ignores_vision

if it'll fire ranged attacks even if it lacks vision on its target, only works with environment smash

ranged_message

Fluff text for ranged mobs

rapid

How many shots per volley.

rapid_fire_delay

Time between rapid fire shots

rapid_melee

Number of melee attacks between each npc pool tick. Spread evenly.

retreat_distance

If our mob runs from players when they're too close, set in tile distance. By default, mobs do not retreat.

robust_searching

By default, mobs have a simple searching method, set this to TRUE for the more scrutinous searching (stat_attack, stat_exclusive, etc), should be disabled on most mobs

search_objects

If we want to consider objects when searching around, set this to 1. If you want to search for objects while also ignoring mobs until hurt, set it to 2. To completely ignore mobs, even when attacked, set it to 3

search_objects_regain_time

The delay between being attacked and gaining our old search_objects value back

search_objects_timer_id

Timer for regaining our old search_objects value after being attacked

sidestep_per_cycle

How many sidesteps per npcpool cycle when in melee

stat_attack

Mobs ignore mob/living targets with a stat lower than that of stat_attack. If set to DEAD, then they'll include corpses in their targets, if to HARD_CRIT they'll keep attacking until they kill, and so on.

stat_exclusive

Mobs with this set to TRUE will exclusively attack things defined by stat_attack, stat_attack DEAD means they will only attack corpses

target

The current target of our attacks, use GiveTarget and LoseTarget to set this var

targets_from

all range/attack/etc. calculations should be done from the atom this weakrefs, useful for Vehicles and such.

taunt_chance

Probability that the mob will taunt

vision_range

How big of an area to search for targets in, a vision of 9 attempts to find targets as soon as they walk into screen view

wanted_objects

A typecache of objects types that will be checked against to attack, should we have search_objects enabled

Proc Details

AICanContinue

AI Status

ListTargets

HOSTILE MOB TARGETING AND AGGRESSION

death

END HOSTILE MOB TARGETING AND AGGRESSION

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/asteroid.html b/mob/living/simple_animal/hostile/asteroid.html new file mode 100644 index 0000000000000..a05ec4e0cdc70 --- /dev/null +++ b/mob/living/simple_animal/hostile/asteroid.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/asteroid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

asteroid

Vars

crusher_drop_modwhat is the chance the mob drops it if all their health was taken by crusher attacks
crusher_lootwhat trophy this mob drops
from_spawnerIs this mob subtype from a spawner (e.g. necropolis tendril, demonic portal)? Can be used to affect what it drops (e.g. legions force-dropping ashen skeletons).

Var Details

crusher_drop_mod

what is the chance the mob drops it if all their health was taken by crusher attacks

crusher_loot

what trophy this mob drops

from_spawner

Is this mob subtype from a spawner (e.g. necropolis tendril, demonic portal)? Can be used to affect what it drops (e.g. legions force-dropping ashen skeletons).

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/asteroid/elite/broodmother.html b/mob/living/simple_animal/hostile/asteroid/elite/broodmother.html new file mode 100644 index 0000000000000..0796e78c656b9 --- /dev/null +++ b/mob/living/simple_animal/hostile/asteroid/elite/broodmother.html @@ -0,0 +1,10 @@ +/mob/living/simple_animal/hostile/asteroid/elite/broodmother - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Goliath Broodmother

A stronger, faster variation of the goliath. Has the ability to spawn baby goliaths, which it can later detonate at will. +When its health is below half, tendrils will spawn randomly around it. When it is below a quarter of health, this effect is doubled. +Its attacks are as follows:

+
    +
  • Spawns a 3x3/plus shape of tentacles on the target location
  • +
  • Spawns 2 baby goliaths on its tile, up to a max of 8. Children blow up when they die.
  • +
  • The broodmother lets out a noise, and is able to move faster for 6.5 seconds.
  • +
  • Summons your children around you. +The broodmother is a fight revolving around stage control, as the activator has to manage the baby goliaths and the broodmother herself, along with all the tendrils.
  • +
\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/asteroid/elite/herald.html b/mob/living/simple_animal/hostile/asteroid/elite/herald.html new file mode 100644 index 0000000000000..433b774f2b1b1 --- /dev/null +++ b/mob/living/simple_animal/hostile/asteroid/elite/herald.html @@ -0,0 +1,10 @@ +/mob/living/simple_animal/hostile/asteroid/elite/herald - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Herald

A slow-moving projectile user with a few tricks up its sleeve. Less unga-bunga than Colossus, with more cleverness in its fighting style. +As its health gets lower, the amount of projectiles fired per-attack increases. +Its attacks are as follows:

+
    +
  • Fires three projectiles in a given direction.
  • +
  • Fires a spread in every cardinal and diagonal direction at once, then does it again after a bit.
  • +
  • Shoots a single, golden bolt. Wherever it lands, the herald will be teleported to the location.
  • +
  • Spawns a mirror which reflects projectiles directly at the target. +Herald is a more concentrated variation of the Colossus fight, having less projectiles overall, but more focused attacks.
  • +
\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/asteroid/elite/legionnaire.html b/mob/living/simple_animal/hostile/asteroid/elite/legionnaire.html new file mode 100644 index 0000000000000..3b02b4a3d9289 --- /dev/null +++ b/mob/living/simple_animal/hostile/asteroid/elite/legionnaire.html @@ -0,0 +1,10 @@ +/mob/living/simple_animal/hostile/asteroid/elite/legionnaire - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Legionnaire

A towering skeleton, embodying the power of Legion. +As its health gets lower, the head does more damage. +Its attacks are as follows:

+
    +
  • Charges at the target after a telegraph, throwing them across the arena should it connect.
  • +
  • Legionnaire's head detaches, attacking as its own entity. Has abilities of its own later into the fight. Once dead, regenerates after a brief period. If the skill is used while the head is off, it will be killed.
  • +
  • Leaves a pile of bones at your location. Upon using this skill again, you'll swap locations with the bone pile.
  • +
  • Spews a cloud of smoke from its maw, wherever said maw is. +A unique fight incorporating the head mechanic of legion into a whole new beast. Combatants will need to make sure the tag-team of head and body don't lure them into a deadly trap.
  • +

Vars

chargingWhether or not the legionnaire is currently charging, used to deny movement input if he is

Var Details

charging

Whether or not the legionnaire is currently charging, used to deny movement input if he is

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/asteroid/elite/pandora.html b/mob/living/simple_animal/hostile/asteroid/elite/pandora.html new file mode 100644 index 0000000000000..60cf3e758bc5f --- /dev/null +++ b/mob/living/simple_animal/hostile/asteroid/elite/pandora.html @@ -0,0 +1,10 @@ +/mob/living/simple_animal/hostile/asteroid/elite/pandora - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Pandora

A box with a similar design to the Hierophant which trades large, single attacks for more frequent smaller ones. +As its health gets lower, the time between its attacks decrease. +Its attacks are as follows:

+
    +
  • Fires hierophant blasts in a straight line. Can only fire in a straight line in 8 directions, being the diagonals and cardinals.
  • +
  • Creates a box of hierophant blasts around the target. If they try to run away to avoid it, they'll very likely get hit.
  • +
  • Teleports the pandora from one location to another, almost identical to Hierophant.
  • +
  • Spawns a 7x7 AOE at the location of choice, spreading out from the center. +Pandora's fight mirrors Hierophant's closely, but has stark differences in attack effects. Instead of long-winded dodge times and long cooldowns, Pandora constantly attacks the opponent, but leaves itself open for attack.
  • +
\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/asteroid/polarbear.html b/mob/living/simple_animal/hostile/asteroid/polarbear.html new file mode 100644 index 0000000000000..3211891548677 --- /dev/null +++ b/mob/living/simple_animal/hostile/asteroid/polarbear.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/asteroid/polarbear - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

polarbear

Vars

aggressive_message_saidMessage for when the polar bear starts to attack faster

Var Details

aggressive_message_said

Message for when the polar bear starts to attack faster

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/blackmesa/xen.html b/mob/living/simple_animal/hostile/blackmesa/xen.html new file mode 100644 index 0000000000000..6f57d19612da5 --- /dev/null +++ b/mob/living/simple_animal/hostile/blackmesa/xen.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/blackmesa/xen - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

xen

Vars

can_be_shieldedCan we be shielded by pylons?
shield_countHow many shields we have protecting us
shieldedIf we have support pylons, this is true.

Var Details

can_be_shielded

Can we be shielded by pylons?

shield_count

How many shields we have protecting us

shielded

If we have support pylons, this is true.

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/blackmesa/xen/headcrab.html b/mob/living/simple_animal/hostile/blackmesa/xen/headcrab.html new file mode 100644 index 0000000000000..be5845c3182b8 --- /dev/null +++ b/mob/living/simple_animal/hostile/blackmesa/xen/headcrab.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/blackmesa/xen/headcrab - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

headcrab

Vars

chargeCharging ability

Var Details

charge

Charging ability

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/blackmesa/xen/headcrab_zombie/gordon_freeman.html b/mob/living/simple_animal/hostile/blackmesa/xen/headcrab_zombie/gordon_freeman.html new file mode 100644 index 0000000000000..7aa1868c3f566 --- /dev/null +++ b/mob/living/simple_animal/hostile/blackmesa/xen/headcrab_zombie/gordon_freeman.html @@ -0,0 +1,3 @@ +/mob/living/simple_animal/hostile/blackmesa/xen/headcrab_zombie/gordon_freeman - /tg/ Station 13
/tg/ Station 13 - Modules - Types

gordon_freeman

Gordon Freeman - Xen boss

+

This boss uses crystal pylons to supply a shield that is not penetrable until these pylons are destroyed.

+

Once destroyed, the shield falls, and the mob can be killed.

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/blackmesa/xen/houndeye.html b/mob/living/simple_animal/hostile/blackmesa/xen/houndeye.html new file mode 100644 index 0000000000000..b95c83ee51fbf --- /dev/null +++ b/mob/living/simple_animal/hostile/blackmesa/xen/houndeye.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/blackmesa/xen/houndeye - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

houndeye

Vars

chargeCharging ability

Var Details

charge

Charging ability

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/blackmesa/xen/vortigaunt.html b/mob/living/simple_animal/hostile/blackmesa/xen/vortigaunt.html new file mode 100644 index 0000000000000..82925f6c80522 --- /dev/null +++ b/mob/living/simple_animal/hostile/blackmesa/xen/vortigaunt.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/blackmesa/xen/vortigaunt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vortigaunt

Vars

follow_soundsSOunds we play when asked to follow/unfollow.

Var Details

follow_sounds

SOunds we play when asked to follow/unfollow.

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/illusion.html b/mob/living/simple_animal/hostile/illusion.html new file mode 100644 index 0000000000000..fd4d3b7c651c4 --- /dev/null +++ b/mob/living/simple_animal/hostile/illusion.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/illusion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

illusion

Vars

multiply_chanceProb of getting a clone on attack
parent_mob_refWeakref to what we're copying

Var Details

multiply_chance

Prob of getting a clone on attack

parent_mob_ref

Weakref to what we're copying

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/megafauna.html b/mob/living/simple_animal/hostile/megafauna.html new file mode 100644 index 0000000000000..2b180ab96b7b5 --- /dev/null +++ b/mob/living/simple_animal/hostile/megafauna.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/megafauna - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

megafauna

Vars

achievement_typeAchievement given to surrounding players when the megafauna is killed
anger_modifierModifies attacks when at lower health
attack_action_typesAttack actions, sets chosen_attack to the number in the action
chosen_attackThe chosen attack by the megafauna
crusher_achievement_typeCrusher achievement given to players when megafauna is killed
crusher_lootCrusher loot dropped when the megafauna is killed with a crusher
eliminationIf the megafauna was actually killed (not just dying, then transforming into another type)
gps_nameName for the GPS signal of the megafauna
recovery_timeNext time the megafauna can use a melee attack
score_achievement_typeScore given to players when megafauna is killed
summon_lineSummoning line, said when summoned via megafauna vents.
true_spawnIf this is a megafauna that is real (has achievements, gps signal)

Procs

devourDevours a target and restores health to the megafauna
grant_achievementGrants medals and achievements to surrounding players
make_virtual_megafaunaRemoves all the loot and achievements from megafauna for bitrunning related
spawn_crusher_lootSpawns crusher loot instead of normal loot
update_cooldownsSets/adds the next time the megafauna can use a melee or ranged attack, in deciseconds. It is a list to allow using named args. Use the ignore_staggered var if youre setting the cooldown to ranged_cooldown_time.

Var Details

achievement_type

Achievement given to surrounding players when the megafauna is killed

anger_modifier

Modifies attacks when at lower health

attack_action_types

Attack actions, sets chosen_attack to the number in the action

chosen_attack

The chosen attack by the megafauna

crusher_achievement_type

Crusher achievement given to players when megafauna is killed

crusher_loot

Crusher loot dropped when the megafauna is killed with a crusher

elimination

If the megafauna was actually killed (not just dying, then transforming into another type)

gps_name

Name for the GPS signal of the megafauna

recovery_time

Next time the megafauna can use a melee attack

score_achievement_type

Score given to players when megafauna is killed

summon_line

Summoning line, said when summoned via megafauna vents.

true_spawn

If this is a megafauna that is real (has achievements, gps signal)

Proc Details

devour

Devours a target and restores health to the megafauna

grant_achievement

Grants medals and achievements to surrounding players

make_virtual_megafauna

Removes all the loot and achievements from megafauna for bitrunning related

spawn_crusher_loot

Spawns crusher loot instead of normal loot

update_cooldowns

Sets/adds the next time the megafauna can use a melee or ranged attack, in deciseconds. It is a list to allow using named args. Use the ignore_staggered var if youre setting the cooldown to ranged_cooldown_time.

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.html b/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.html new file mode 100644 index 0000000000000..71048ed0444da --- /dev/null +++ b/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blood_drunk_miner

Vars

dashDash ability
dash_attackDash Attack Ability
guidanceDoes this blood-drunk miner heal slightly while attacking and heal more when gibbing people?
kinetic_acceleratorKinetic accelerator ability
transform_weaponTransform weapon ability

Var Details

dash

Dash ability

dash_attack

Dash Attack Ability

guidance

Does this blood-drunk miner heal slightly while attacking and heal more when gibbing people?

kinetic_accelerator

Kinetic accelerator ability

transform_weapon

Transform weapon ability

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/megafauna/bubblegum.html b/mob/living/simple_animal/hostile/megafauna/bubblegum.html new file mode 100644 index 0000000000000..275d1d7f6d6d0 --- /dev/null +++ b/mob/living/simple_animal/hostile/megafauna/bubblegum.html @@ -0,0 +1,8 @@ +/mob/living/simple_animal/hostile/megafauna/bubblegum - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bubblegum

Vars

blood_warpBlood warp ability
enrage_tillActual time where enrage ends
enrage_timeDuration of enrage ability
hallucination_chargeHallucination charge ability
hallucination_charge_surroundHallucination charge surround ability
spawn_bloodCheck to see if we should spawn blood
triple_chargeTriple charge ability

Procs

attackbyAttack by override for bubblegum

Var Details

blood_warp

Blood warp ability

enrage_till

Actual time where enrage ends

enrage_time

Duration of enrage ability

hallucination_charge

Hallucination charge ability

hallucination_charge_surround

Hallucination charge surround ability

spawn_blood

Check to see if we should spawn blood

triple_charge

Triple charge ability

Proc Details

attackby

Attack by override for bubblegum

+

This is used to award the frenching achievement for hitting bubblegum with a tongue

+

Arguments:

+
    +
  • obj/item/W the item hitting bubblegum
  • +
  • mob/user The user of the item
  • +
  • params, extra parameters
  • +
\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/megafauna/colossus.html b/mob/living/simple_animal/hostile/megafauna/colossus.html new file mode 100644 index 0000000000000..480306cfb0ca3 --- /dev/null +++ b/mob/living/simple_animal/hostile/megafauna/colossus.html @@ -0,0 +1,13 @@ +/mob/living/simple_animal/hostile/megafauna/colossus - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

colossus

COLOSSUS

+

The colossus spawns randomly wherever a lavaland creature is able to spawn. It is powerful, ancient, and extremely deadly. +The colossus has a degree of sentience, proving this in speech during its attacks.

+

It acts as a melee creature, chasing down and attacking its target while also using different attacks to augment its power that increase as it takes damage.

+

The colossus' true danger lies in its ranged capabilities. It fires immensely damaging death bolts that penetrate all armor in a variety of ways: +A. The colossus fires death bolts in alternating patterns: the cardinal directions and the diagonal directions. +B. The colossus fires death bolts in a shotgun-like pattern, instantly downing anything unfortunate enough to be hit by all of them. +C. The colossus fires a spiral of death bolts. +At 33% health, the colossus gains an additional attack: +D. The colossus fires two spirals of death bolts, spinning in opposite directions.

+

When a colossus dies, it leaves behind a chunk of glowing crystal known as a black box. Anything placed inside will carry over into future rounds. +For instance, you could place a bag of holding into the black box, and then kill another colossus next round and retrieve the bag of holding from inside.

+

Intended Difficulty: Very Hard

Vars

colossus_finalFinal attack ability
dir_shotsDirectional shots ability
final_availableHave we used DIE yet?
random_shotsRandom shots ablity
shotgun_blastShotgun blast ability
spiral_shotsSpiral shots ability

Var Details

colossus_final

Final attack ability

dir_shots

Directional shots ability

final_available

Have we used DIE yet?

random_shots

Random shots ablity

shotgun_blast

Shotgun blast ability

spiral_shots

Spiral shots ability

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.html b/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.html new file mode 100644 index 0000000000000..2fe669ca76006 --- /dev/null +++ b/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

demonic_frost_miner

Vars

enragedIf the demonic frost miner is in its enraged state
enragingIf the demonic frost miner is currently transforming to its enraged state
frost_orbsFrost orbs ability
hard_frost_orbsHard version of frost orbs
hard_ice_shotgunHard Ice Shotgun Ability
hard_snowball_machine_gunHard Snowball Machine gun Ability
ice_shotgunIce Shotgun Ability
snowball_machine_gunSnowball Machine gun Ability

Procs

check_enragedChecks if the demonic frost miner is ready to be enraged
start_attackPre-ability usage stuff

Var Details

enraged

If the demonic frost miner is in its enraged state

enraging

If the demonic frost miner is currently transforming to its enraged state

frost_orbs

Frost orbs ability

hard_frost_orbs

Hard version of frost orbs

hard_ice_shotgun

Hard Ice Shotgun Ability

hard_snowball_machine_gun

Hard Snowball Machine gun Ability

ice_shotgun

Ice Shotgun Ability

snowball_machine_gun

Snowball Machine gun Ability

Proc Details

check_enraged

Checks if the demonic frost miner is ready to be enraged

start_attack

Pre-ability usage stuff

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/megafauna/dragon.html b/mob/living/simple_animal/hostile/megafauna/dragon.html new file mode 100644 index 0000000000000..6d6fedb0dfff8 --- /dev/null +++ b/mob/living/simple_animal/hostile/megafauna/dragon.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/megafauna/dragon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dragon

Vars

fire_coneFire cone ability
lava_swoopLava swoop ability
mass_fireMass fire ability
meteorsMeteors ability

Var Details

fire_cone

Fire cone ability

lava_swoop

Lava swoop ability

mass_fire

Mass fire ability

meteors

Meteors ability

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/megafauna/gladiator.html b/mob/living/simple_animal/hostile/megafauna/gladiator.html new file mode 100644 index 0000000000000..37311d11c4efc --- /dev/null +++ b/mob/living/simple_animal/hostile/megafauna/gladiator.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/megafauna/gladiator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gladiator

A mean-ass single-combat sword-wielding nigh-demigod that is nothing but a walking, talking, breathing Berserk reference. He do kill shit doe!

Vars

anger_timer_idThis mob will not attack mobs randomly if not in anger, the time doubles as a check for anger
block_chanceChance to block damage entirely on phases 1 and 4
chargerangeMaximum range for charging, in case we don't ram any closed turf
chargetilesIf we are charging, this is a counter for how many tiles we have ran past
chargingAre we doing the charge attack
introducedPeople we have introduced ourselves to - WEAKREF list
phaseBoss phase, from 1 to 3
spinningAre we doing the spin attack?
spinning_rangeRange of spin attack
stunnedWe get stunned whenever we ram into a closed turf

Procs

BumpFucks up the day of whoever he walks into, so long as he's charging and the mob is alive. If he walks into a wall, he gets stunned instead!
MoveAs the marked one is only theoretically capable of ignoring gravity, this makes him not walk on chasms, and prevents him from moving if spinning or stunned. It also figures out if he hits a wall while charging!
OpenFireUsed to determine what attacks the Marked One actually uses. This works by making him a ranged mob without a projectile. Shitcode? Maybe! But it woooorks.
adjustHealthGets him mad at you if you're a species he's not racist towards, and provides the 50% to block attacks in the first and fourth phases
bone_knife_throwBone Knife Throw makes him throw bone knives. woah.
chargeThe Marked One's charge is extremely quick, but takes a moment to power-up, allowing you to get behind cover to stun him if he hits a wall.
dischargeDischarge stuns the marked one momentarily after landing a charge into a wall or a person
examineAdds the text descriptor of what phase the Marked One is in, or tells you he's a corpse if he's dead as fuck
get_angryMakes the Marked One unhappy and more befitting of his "hostile" subtype status.
get_calmMakes the Marked One a sleepy boy that don't wanna hurt nobody. He starts like this and progresses to his hostile state after seeing an ash walker or being punched in the noggin.
ground_poundEffectively just a copied and pasted version of the wendigo ground slam. Used to create radiating shockwaves that force quick thinking and repositioning, and must be defined here because someone un-globaled the shit out of this proc
introductionProc that makes the Marked One spout a morally grey/absurdly racist one-liner dependong on who his target is
spinattackProc name speaks for itself. Vinesauce Joel
stompSort range slam with faster shockwave travel
swordslamLarge radius but slow-to-move radiating ground slam
teleportTeleport makes him teleport. woah.
update_phaseChecks against the Marked One's current health and updates his phase accordingly. Uses variable shitcode to make sure his phase updates only ever happen once

Var Details

anger_timer_id

This mob will not attack mobs randomly if not in anger, the time doubles as a check for anger

block_chance

Chance to block damage entirely on phases 1 and 4

chargerange

Maximum range for charging, in case we don't ram any closed turf

chargetiles

If we are charging, this is a counter for how many tiles we have ran past

charging

Are we doing the charge attack

introduced

People we have introduced ourselves to - WEAKREF list

phase

Boss phase, from 1 to 3

spinning

Are we doing the spin attack?

spinning_range

Range of spin attack

stunned

We get stunned whenever we ram into a closed turf

Proc Details

Bump

Fucks up the day of whoever he walks into, so long as he's charging and the mob is alive. If he walks into a wall, he gets stunned instead!

Move

As the marked one is only theoretically capable of ignoring gravity, this makes him not walk on chasms, and prevents him from moving if spinning or stunned. It also figures out if he hits a wall while charging!

OpenFire

Used to determine what attacks the Marked One actually uses. This works by making him a ranged mob without a projectile. Shitcode? Maybe! But it woooorks.

adjustHealth

Gets him mad at you if you're a species he's not racist towards, and provides the 50% to block attacks in the first and fourth phases

bone_knife_throw

Bone Knife Throw makes him throw bone knives. woah.

charge

The Marked One's charge is extremely quick, but takes a moment to power-up, allowing you to get behind cover to stun him if he hits a wall.

discharge

Discharge stuns the marked one momentarily after landing a charge into a wall or a person

examine

Adds the text descriptor of what phase the Marked One is in, or tells you he's a corpse if he's dead as fuck

get_angry

Makes the Marked One unhappy and more befitting of his "hostile" subtype status.

get_calm

Makes the Marked One a sleepy boy that don't wanna hurt nobody. He starts like this and progresses to his hostile state after seeing an ash walker or being punched in the noggin.

ground_pound

Effectively just a copied and pasted version of the wendigo ground slam. Used to create radiating shockwaves that force quick thinking and repositioning, and must be defined here because someone un-globaled the shit out of this proc

introduction

Proc that makes the Marked One spout a morally grey/absurdly racist one-liner dependong on who his target is

spinattack

Proc name speaks for itself. Vinesauce Joel

stomp

Sort range slam with faster shockwave travel

swordslam

Large radius but slow-to-move radiating ground slam

teleport

Teleport makes him teleport. woah.

update_phase

Checks against the Marked One's current health and updates his phase accordingly. Uses variable shitcode to make sure his phase updates only ever happen once

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/megafauna/hierophant.html b/mob/living/simple_animal/hostile/megafauna/hierophant.html new file mode 100644 index 0000000000000..dc3fc260344ba --- /dev/null +++ b/mob/living/simple_animal/hostile/megafauna/hierophant.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/megafauna/hierophant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hierophant

Vars

arena_cooldown_timebase delay for making arenas
beam_rangerange on cross blast beams
blinkingif we're doing something that requires us to stand still and not attack
burst_rangerange on burst aoe
chaser_cooldownthe current chaser cooldown
chaser_cooldown_timebase delay for spawning chasers
chaser_speedhow fast chasers are currently
major_attack_cooldownbase delay for major attacks
respawn_timer_idtimer id for any active attempts to "go home"
sitting_at_centerIf we are sitting at home base and not doing anything
spawned_beacon_refweakref to our "home base" beacon

Var Details

arena_cooldown_time

base delay for making arenas

beam_range

range on cross blast beams

blinking

if we're doing something that requires us to stand still and not attack

burst_range

range on burst aoe

chaser_cooldown

the current chaser cooldown

chaser_cooldown_time

base delay for spawning chasers

chaser_speed

how fast chasers are currently

major_attack_cooldown

base delay for major attacks

respawn_timer_id

timer id for any active attempts to "go home"

sitting_at_center

If we are sitting at home base and not doing anything

spawned_beacon_ref

weakref to our "home base" beacon

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/megafauna/legion.html b/mob/living/simple_animal/hostile/megafauna/legion.html new file mode 100644 index 0000000000000..dfadc520544d6 --- /dev/null +++ b/mob/living/simple_animal/hostile/megafauna/legion.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/megafauna/legion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

legion

Vars

chase_targetCharge Target Ability
create_legion_skullCreate Skulls ability
create_legion_turretsCreate Turrets Ability

Procs

AttackingTargetIn addition to parent functionality, this will also turn the target into a small legion if they are unconscious.
SplitSplits legion into smaller skulls.
adjustHealthThis makes sure that the legion door opens on taking damage, so you can't cheese this boss.
deathSpecial snowflake death() here. Can only die if size is 1 or lower and HP is 0 or below.
throw_impactDeals some extra damage on throw impact.

Var Details

chase_target

Charge Target Ability

create_legion_skull

Create Skulls ability

create_legion_turrets

Create Turrets Ability

Proc Details

AttackingTarget

In addition to parent functionality, this will also turn the target into a small legion if they are unconscious.

Split

Splits legion into smaller skulls.

adjustHealth

This makes sure that the legion door opens on taking damage, so you can't cheese this boss.

death

Special snowflake death() here. Can only die if size is 1 or lower and HP is 0 or below.

throw_impact

Deals some extra damage on throw impact.

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/megafauna/wendigo.html b/mob/living/simple_animal/hostile/megafauna/wendigo.html new file mode 100644 index 0000000000000..8b888cbce55ff --- /dev/null +++ b/mob/living/simple_animal/hostile/megafauna/wendigo.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/megafauna/wendigo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wendigo

Vars

alternating_circleAlternating Projectiles Ability
ground_slamGround Slam Ability
scream_cooldownStores the last scream time so it doesn't spam it
scream_cooldown_timeTime before the wendigo can scream again
shotgun_blastShotgun Ability
spiralSpiral Projectiles Ability
startingSaves the turf the megafauna was created at (spawns exit portal here)
stomp_rangeRange for wendigo stomping when it moves
stored_move_dirsStores directions the mob is moving, then calls that a move has fully ended when these directions are removed in moved
teleportTeleport Ability
waveWave Projectiles Ability

Var Details

alternating_circle

Alternating Projectiles Ability

ground_slam

Ground Slam Ability

scream_cooldown

Stores the last scream time so it doesn't spam it

scream_cooldown_time

Time before the wendigo can scream again

shotgun_blast

Shotgun Ability

spiral

Spiral Projectiles Ability

starting

Saves the turf the megafauna was created at (spawns exit portal here)

stomp_range

Range for wendigo stomping when it moves

stored_move_dirs

Stores directions the mob is moving, then calls that a move has fully ended when these directions are removed in moved

teleport

Teleport Ability

wave

Wave Projectiles Ability

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/mimic.html b/mob/living/simple_animal/hostile/mimic.html new file mode 100644 index 0000000000000..4cfbab1d4ea47 --- /dev/null +++ b/mob/living/simple_animal/hostile/mimic.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/mimic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mimic

Vars

mob_storage_capacityA cap for mobs. Mobs count towards the item cap. Same purpose as above.
storage_capacityA cap for items in the mimic. Prevents the mimic from eating enough stuff to cause lag when opened.

Var Details

mob_storage_capacity

A cap for mobs. Mobs count towards the item cap. Same purpose as above.

storage_capacity

A cap for items in the mimic. Prevents the mimic from eating enough stuff to cause lag when opened.

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/mimic/xenobio.html b/mob/living/simple_animal/hostile/mimic/xenobio.html new file mode 100644 index 0000000000000..9cd43a6de073a --- /dev/null +++ b/mob/living/simple_animal/hostile/mimic/xenobio.html @@ -0,0 +1,11 @@ +/mob/living/simple_animal/hostile/mimic/xenobio - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

xenobio

Vars

full_soundsound played when the mimic attempts to eat more items than it can

Procs

insertCalled by toggle_open to put items inside the mimic when it's being closed
toggle_openUsed to open and close the mimic

Var Details

full_sound

sound played when the mimic attempts to eat more items than it can

Proc Details

insert

Called by toggle_open to put items inside the mimic when it's being closed

+

Will return -1 if the insertion fails due to the storage capacity of the mimic having been reached +Will return FALSE if insertion fails +Will return TRUE if insertion succeeds +Arguments:

+
    +
  • AM - item to be inserted
  • +

toggle_open

Used to open and close the mimic

+

Will insert tile contents into the mimic when closing +Will dump mimic contents into the time when opening +Does nothing if the mimic locked itself

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/ooze.html b/mob/living/simple_animal/hostile/ooze.html new file mode 100644 index 0000000000000..aae1bf52644e2 --- /dev/null +++ b/mob/living/simple_animal/hostile/ooze.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/ooze - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ooze

Oozes are slime-esque creatures, they are highly gluttonous creatures primarily intended for player controll.

Vars

edible_food_typesBitfield of edible food types
ooze_nutritionOozes have their own nutrition. Changes based on them eating

Procs

LifeHandles nutrition gain/loss of mob and also makes it take damage if it's too low on nutrition, only happens for sentient mobs.
adjust_ooze_nutritionDoes ooze_nutrition + supplied amount and clamps it within 0 and 500
eat_atomTries to transfer the atoms reagents then delete it
get_innate_actionsReturns an applicable list of actions to grant to the mob. Will return a list or null.
updateNutritionDisplayUpdates the display that shows the mobs nutrition

Var Details

edible_food_types

Bitfield of edible food types

ooze_nutrition

Oozes have their own nutrition. Changes based on them eating

Proc Details

Life

Handles nutrition gain/loss of mob and also makes it take damage if it's too low on nutrition, only happens for sentient mobs.

adjust_ooze_nutrition

Does ooze_nutrition + supplied amount and clamps it within 0 and 500

eat_atom

Tries to transfer the atoms reagents then delete it

get_innate_actions

Returns an applicable list of actions to grant to the mob. Will return a list or null.

updateNutritionDisplay

Updates the display that shows the mobs nutrition

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/ooze/gelatinous.html b/mob/living/simple_animal/hostile/ooze/gelatinous.html new file mode 100644 index 0000000000000..7664e76fcaf10 --- /dev/null +++ b/mob/living/simple_animal/hostile/ooze/gelatinous.html @@ -0,0 +1,4 @@ +/mob/living/simple_animal/hostile/ooze/gelatinous - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gelatinous

    +
  • Gelatinious Ooze code below *\\ +Its good stats and high mobility makes this a good assasin type creature. It's vulnerabilites against cold, shotguns and
  • +

Vars

consumeThe ability to consume mobs

Procs

InitializeInitializes the mobs abilities and gives them to the mob
container_resist_actIf this mob gets resisted by something, its trying to escape consumption.

Var Details

consume

The ability to consume mobs

Proc Details

Initialize

Initializes the mobs abilities and gives them to the mob

container_resist_act

If this mob gets resisted by something, its trying to escape consumption.

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/ooze/grapes.html b/mob/living/simple_animal/hostile/ooze/grapes.html new file mode 100644 index 0000000000000..1f2a89cba7b1c --- /dev/null +++ b/mob/living/simple_animal/hostile/ooze/grapes.html @@ -0,0 +1,4 @@ +/mob/living/simple_animal/hostile/ooze/grapes - /tg/ Station 13
/tg/ Station 13 - Modules - Types

grapes

    +
  • Gelatinious Grapes code below *\\ +Child of the ooze mob which is orientated at being a healer type creature.
  • +
\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/retaliate.html b/mob/living/simple_animal/hostile/retaliate.html new file mode 100644 index 0000000000000..181b9f6a37026 --- /dev/null +++ b/mob/living/simple_animal/hostile/retaliate.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/retaliate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

retaliate

Vars

enemiesA list of weakrefs pointing at things that we consider targets

Var Details

enemies

A list of weakrefs pointing at things that we consider targets

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/retaliate/goose/vomit.html b/mob/living/simple_animal/hostile/retaliate/goose/vomit.html new file mode 100644 index 0000000000000..47501b268310d --- /dev/null +++ b/mob/living/simple_animal/hostile/retaliate/goose/vomit.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/retaliate/goose/vomit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

vomit

Procs

deadchat_playsA proc to make it easier for admins to make the goose playable by deadchat.

Proc Details

deadchat_plays

A proc to make it easier for admins to make the goose playable by deadchat.

\ No newline at end of file diff --git a/mob/living/simple_animal/hostile/zombie.html b/mob/living/simple_animal/hostile/zombie.html new file mode 100644 index 0000000000000..6c64ce5e43cda --- /dev/null +++ b/mob/living/simple_animal/hostile/zombie.html @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/zombie - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

zombie

Vars

infection_chanceThe probability that we give people real zombie infections on hit.
outfitOutfit the zombie spawns with for visuals.

Var Details

infection_chance

The probability that we give people real zombie infections on hit.

outfit

Outfit the zombie spawns with for visuals.

\ No newline at end of file diff --git a/mob/living/simple_animal/soulscythe.html b/mob/living/simple_animal/soulscythe.html new file mode 100644 index 0000000000000..e66dc2a9b4712 --- /dev/null +++ b/mob/living/simple_animal/soulscythe.html @@ -0,0 +1 @@ +/mob/living/simple_animal/soulscythe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

soulscythe

Vars

blood_levelBlood level, used for movement and abilities in a soulscythe

Var Details

blood_level

Blood level, used for movement and abilities in a soulscythe

\ No newline at end of file diff --git a/mob/living/soulcatcher_soul.html b/mob/living/soulcatcher_soul.html new file mode 100644 index 0000000000000..3a518522a43d1 --- /dev/null +++ b/mob/living/soulcatcher_soul.html @@ -0,0 +1 @@ +/mob/living/soulcatcher_soul - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

soulcatcher_soul

Vars

able_to_leaveIs the soul able to leave the soulcatcher?
body_scan_neededDoes the body need scanned?
previous_bodyAssuming we died inside of the round? What is our previous body?
round_participantDid the soul live within the round? This is checked if we want to transfer the soul to another body.

Procs

leave_soulcatcherChecks if the mob wants to leave the soulcatcher. If they do and are able to leave, they are booted out.
return_to_bodyAssuming we have a previous body a present mind on our soul, we are going to transfer the mind back to the old body.

Var Details

able_to_leave

Is the soul able to leave the soulcatcher?

body_scan_needed

Does the body need scanned?

previous_body

Assuming we died inside of the round? What is our previous body?

round_participant

Did the soul live within the round? This is checked if we want to transfer the soul to another body.

Proc Details

leave_soulcatcher

Checks if the mob wants to leave the soulcatcher. If they do and are able to leave, they are booted out.

return_to_body

Assuming we have a previous body a present mind on our soul, we are going to transfer the mind back to the old body.

\ No newline at end of file diff --git a/mob/oranges_ear.html b/mob/oranges_ear.html new file mode 100644 index 0000000000000..54f950cd5fcc1 --- /dev/null +++ b/mob/oranges_ear.html @@ -0,0 +1,35 @@ +/mob/oranges_ear - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

oranges_ear

    +
  • Oranges Ear

  • +
  • +

    turns out view() spends a significant portion of its processing time generating lists of contents of viewable turfs which includes EVERYTHING on it visible

    +
  • +
  • +

    and the turf itself. there is an optimization to view() which makes it only iterate through either /obj or /mob contents, as well as normal list typechecking filters

    +
  • +
  • +

    a fuckton of these are generated as part of its SS's init and stored in a list, when requested for a list of movables returned by the spatial grid or by some

    +
  • +
  • +

    superset of the final output that must be narrowed down by view(), one of these gets put on every turf that contains the movables that need filtering

    +
  • +
  • +

    and each is given references to the movables they represent. that way you can do for(var/mob/oranges_ear/ear in view(...)) and check what they reference

    +
  • +
  • +

    as opposed to for(var/atom/movable/target in view(...)) and checking if they have the properties you want which leads to much larger lists generated by view()

    +
  • +
  • +

    and also leads to iterating through more movables to filter them.

    +
  • +
  • +

    TLDR: iterating through just mobs is much faster than all movables when iterating through view() on average, this system leverages that to boost speed

    +
  • +
  • +

    enough to offset the cost of allocating the mobs

    +
  • +
  • +

    named because the idea was first made by oranges and i didnt know what else to call it (note that this system was originally made for get_hearers_in_view())

    +
  • +

Vars

referencesreferences to everything "on" the turf we are assigned to, that we care about. populated in assign() and cleared in unassign(). +movables iside of other movables count as being "on" if they have get_turf(them) == our turf. intentionally not a lazylist

Procs

unassignclean this oranges_ear up for future use

Var Details

references

references to everything "on" the turf we are assigned to, that we care about. populated in assign() and cleared in unassign(). +movables iside of other movables count as being "on" if they have get_turf(them) == our turf. intentionally not a lazylist

Proc Details

unassign

clean this oranges_ear up for future use

\ No newline at end of file diff --git a/mob/proccall_handler.html b/mob/proccall_handler.html new file mode 100644 index 0000000000000..85604dcdd365f --- /dev/null +++ b/mob/proccall_handler.html @@ -0,0 +1,3 @@ +/mob/proccall_handler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

proccall_handler

Used to handle proccalls called indirectly by an admin (e.g. tgs, circuits). +Has to be a mob because IsAdminAdvancedProcCall() checks usr, which is a mob variable. +So usr is set to this for any proccalls that don't have any usr mob/client to refer to.

Procs

add_callerAdds a caller.
remove_callerRemoves a caller.

Proc Details

add_caller

Adds a caller.

remove_caller

Removes a caller.

\ No newline at end of file diff --git a/modular_skyrat.html b/modular_skyrat.html new file mode 100644 index 0000000000000..22b2a9c6d16a6 --- /dev/null +++ b/modular_skyrat.html @@ -0,0 +1,251 @@ +modular_skyrat/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

The modularization handbook - Skyrat style, v0.2

Failure to follow this guide will result in your PR being denied.

Introduction

+

To develop and maintain a separate codebase is a big task, that many have failed and suffered the consequences of, such as outdated, and messy code. +It's not necessarily the fault of lack of skill of the people maintaining it, merely the lack of resources and how much continuous effort such an endeavor takes.

+

One of the solutions for such, is to base our server on a solid codebase, that is primarily maintained by somebody else, in this case tgstation, and insert our content in a modular fashion, while following the general code (but not gameplay) direction of the upstream, mirroring any changes they do for parity.

+

Git, as a version control system, is very useful, however it is just a very methodical thing, that follows its many algorithms, that sadly cannot always intelligently resolve certain changes in the code in an unambiguous way, giving us conflicts, that need to be resolved in a manual fashion.

+

Due to maintainability being one of the main reasons behind our rebase to another codebase, this protocol will seriously be enforced. +A well organized, documented and atomized code saves our maintainers a lot of headache, when being reviewed. +Don't dump on them the work that you could have done yourself.

+

This document is meant to be updated and changed, whenever any new exceptions are added onto it. It might be worth it to check, from time to time, whether we didn't define a more unique standardized way of handling some common change.

+

Important note - TEST YOUR PULL REQUESTS

+

You are responsible for the testing of your content. You should not mark a pull request ready for review until you have actually tested it. If you require a separate client for testing, you can use a guest account by logging out of BYOND and connecting to your test server. Test merges are not for bug finding, they are for stress tests where local testing simply doesn't allow for this.

+

The nature of conflicts

+

For example, let's have an original

+
var/something = 1
+
+

in the core code, that we decide to change from 1 to 2 on our end,

+
- var/something = 1
++ var/something = 2 //SKYRAT EDIT
+
+

but then our upstream introduces a change in their codebase, changing it from 1 to 4

+
- var/something = 1
++ var/something = 4
+
+

As easy of an example as it is, it results in a relatively simple conflict, in the form of

+
var/something = 2 //SKYRAT EDIT
+
+

where we pick the preferable option manually.

+

The solution

+

That is something that cannot and likely shouldn't be resolved automatically, because it might introduce errors and bugs that will be very hard to track down, not to even bring up more complex examples of conflicts, such as ones that involve changes that add, remove and move lines of code all over the place.

+

tl;dr it tries its best but ultimately is just a dumb program, therefore, we must ourselves do work to ensure that it can do most of the work, while minimizing the effort spent on manual involvement, in the cases where the conflicts will be inevitable.

+

Our answer to this is modularization of the code.

+

Modularization means, that most of the changes and additions we do, will be kept in a separate modular_skyrat/ folder, as independent from the core code as possible, and those which absolutely cannot be modularized, will need to be properly marked by comments, specifying where the changes start, where they end, and which feature they are a part of, but more on that in the next section.

+

The modularization protocol

+

Always start by thinking of the theme/purpose of your work. It's oftentimes a good idea to see if there isn't an already existing one, that you should append to.

+

If it's a tgcode-specific tweak or bugfix, first course of action should be an attempt to discuss and PR it upstream, instead of needlessly modularizing it here.

+

Otherwise, pick a new ID for your module. E.g. DNA-FEATURE-WINGS or XENOARCHEAOLOGY or SHUTTLE_TOGGLE - We will use this in future documentation. It is essentially your module ID. It must be uniform throughout the entire module. All references MUST be exactly the same. This is to allow for easy searching.

+

And then you'll want to establish your core folder that you'll be working out of which is normally your module ID. E.g. modular_skyrat/modules/shuttle_toggle

+

Maps

+

IMPORTANT: MAP CONTRIBUTION GUIDELINES HAVE BEEN UPDATED

+

When you are adding a new item to the map you MUST follow this procedure: +Start by deciding how big of a change it is going to be, if it is a small 1 item change, you should use the simple area automapper. If it is an entire room, you should use the template automapper.

+

We will no longer have _skyrat map versions.

+

DO NOT CHANGE TG MAPS, THEY ARE HELD TO THE SAME STANDARD AS ICONS. USE THE ABOVE TO MAKE MAP EDITS.

+

The automapper uses prebaked templates to override sections of a map using coordinates to plot the starting location. See entries in automapper_config.toml for examples.

+

The simple area automapper uses datum entries to place down a single item in an area of a map that makes vauge sense.

+

Assets: images, sounds, icons and binaries

+

Git doesn't handle conflicts of binary files well at all, therefore changes to core binary files are absolutely forbidden, unless you have a really really really good reason to do otherwise.

+

All assets added by us should be placed into the same modular folder as your code. This means everything is kept inside your module folder, sounds, icons and code files.

+
    +
  • +

    Example: You're adding a new lavaland mob.

    +

    First of all you create your modular folder. E.g. modular_skyrat/modules/lavalandmob

    +

    And then you'd want to create sub-folders for each component. E.g. /code for code and /sounds for sound files and /icons for any icon files.

    +

    After doing this, you'll want to set your references within the code.

    +
      /mob/lavaland/newmob
    +    icon = 'modular_skyrat/modules/lavalandmob/icons/mob.dmi'
    +    icon_state = "dead_1"
    +    sound = 'modular_skyrat/modules/lavalandmob/sounds/boom.ogg'
    +
    +

    This ensures your code is fully modular and will make it easier for future edits.

    +
  • +
  • +

    Other assets, binaries and tools, should usually be handled likewise, depending on the case-by-case context. When in doubt, ask a maintainer or other contributors for tips and suggestions.

    +
  • +
  • +

    Any additional clothing icon files you add MUST go into the existing files in master_files clothing section.

    +
  • +
+

The master_files Folder

+

You should always put any modular overrides of icons, sound, code, etc. inside this folder, and it must follow the core code folder layout.

+

Example: code/modules/mob/living/living.dm -> modular_skyrat/master_files/code/modules/mob/living/living.dm

+

This is to make it easier to figure out what changed about a base file without having to search through proc definitions.

+

It also helps prevent modules needlessly overriding the same proc multiple times. More information on these types of edits come later.

+

Fully modular portions of your code

+

This section will be fairly straightforward, however, I will try to go over the basics and give simple examples, as the guide is aimed at new contributors likewise.

+

The rule of thumb is that if you don't absolutely have to, you shouldn't make any changes to core codebase files. With some exceptions that will be mentioned shortly.

+

In short, most of the modular code will be placed in the subfolders of your main module folder modular_skyrat/modules/yourmodule/code/, with similar rules as with the assets. Do not mirror core code folder structures inside your modular folder.

+

For example, modular_skyrat/modules/xenoarcheaology/code containing all the code, tools, items and machinery related to it.

+

Such modules, unless very simple, need to have a readme.md in their folder, containing the following:

+
    +
  • links to the PRs that implemented this module or made any significant changes to it
  • +
  • short description of the module
  • +
  • list of files changed in the core code, with a short description of the change, and a list of changes in other modular files that are not part of the same module, that were necessary for this module to function properly
  • +
  • (optionally) a bit more elaborative documentation for future-proofing the code, that will be useful further development and maintenance
  • +
  • credits
  • +
+

Template: Here

+

Modular Overrides (Important!!)

+

Note, that it is possible to append code in front, or behind a core proc, in a modular fashion, without editing the original proc, through referring the parent proc, using . = ..() or ..(). And likewise, it is possible to add a new var to an existing datum or obj, without editing the core files.

+

Note about proc overrides: Just because you can, doesn't mean you should!!

+

In general they are a good idea and encouraged whenever it is possible to do so. However this is not a hard rule, and sometimes Skyrat edits are preferable. Just try to use your common sense about it.

+

For example: please do not copy paste an entire TG proc into a modular override, make one small change, and then bill it as 'fully modular'. These procs are an absolute nightmare to maintain because once something changes upstream you have to update the overridden proc.

+

Sometimes you aren't even aware the override exists if it compiles fine and doesn't cause any bugs. This often causes features that were added upstream to be missing here. So yeah. Avoid that. It's okay if something isn't fully modular. Sometimes it's the better choice.

+

The best candidates for modular proc overrides are ones where you can just tack something on after calling the parent, or weave a parent call cleverly in the middle somewhere to achieve your desired effect.

+

Performance should also be considered when you are overriding a hot proc (like Life() for example), as each additional call adds overhead. Skyrat edits are much more performant in those cases. For most procs this won't be something you have to think about, though.

+

These modular overrides should be kept in master_files, and you should avoid putting them inside modules as much as possible.

+

To keep it simple, let's assume you wanted to make guns spark when shot, for simulating muzzle flash or whatever other reasons, and you want potentially to use it with all kinds of guns.

+

You could start, in a modular file, by adding a var.

+
/obj/item/gun
+    var/muzzle_flash = TRUE
+
+

And it will work just fine. Afterwards, let's say you want to check that var and spawn your sparks after firing a shot. +Knowing the original proc being called by shooting is

+
/obj/item/gun/proc/shoot_live_shot(mob/living/user, pointblank = 0, atom/pbtarget = null, message = 1)
+
+

you can define a child proc for it, that will get inserted into the inheritance chain of the related procs (big words, but in simple cases like this, you don't need to worry)

+
/obj/item/gun/shoot_live_shot(mob/living/user, pointblank = 0, atom/pbtarget = null, message = 1)
+    . = ..() //. is the default return value, we assign what the parent proc returns to it, as we call it before ours
+    if(muzzle_flash)
+        spawn_sparks(src) //For simplicity, I assume you've already made a proc for this
+
+

And that wraps the basics of it up.

+

Non-modular changes to the core code - IMPORTANT

+

Every once in a while, there comes a time, where editing the core files becomes inevitable.

+

Please be sure to log these in the module readme.md. Any file changes.

+

In those cases, we've decided to apply the following convention, with examples:

+
    +
  • +

    Addition:

    +
    //SKYRAT EDIT ADDITION BEGIN - SHUTTLE_TOGGLE - (Optional Reason/comment)
    +var/adminEmergencyNoRecall = FALSE
    +var/lastMode = SHUTTLE_IDLE
    +var/lastCallTime = 6000
    +//SKYRAT EDIT ADDITION END
    +
    +
  • +
  • +

    Removal:

    +
    //SKYRAT EDIT REMOVAL BEGIN - SHUTTLE_TOGGLE - (Optional Reason/comment)
    +/*
    +for(var/obj/docking_port/stationary/S in stationary)
    +  if(S.id = id)
    +    return S
    +*/
    +//SKYRAT EDIT REMOVAL END
    +WARNING("couldn't find dock with id: [id]")
    +
    +

    And for any removals that are moved to different files:

    +
    //SKYRAT EDIT REMOVAL BEGIN - SHUTTLE_TOGGLE - (Moved to modular_skyrat/shuttle_toggle/randomverbs.dm)
    +/*
    +/client/proc/admin_call_shuttle()
    +set category = "Admin - Events"
    +set name = "Call Shuttle"
    +
    +if(EMERGENCY_AT_LEAST_DOCKED)
    +  return
    +
    +if(!check_rights(R_ADMIN))
    +  return
    +
    +var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No")
    +if(confirm != "Yes")
    +  return
    +
    +SSshuttle.emergency.request()
    +SSblackbox.record_feedback("tally", "admin_verb", 1, "Call Shuttle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
    +log_admin("[key_name(usr)] admin-called the emergency shuttle.")
    +message_admins(span_adminnotice("[key_name_admin(usr)] admin-called the emergency shuttle."))
    +return
    +*/
    +//SKYRAT EDIT REMOVAL END
    +
    +
  • +
  • +

    Change:

    +
    //SKYRAT EDIT CHANGE BEGIN - SHUTTLE_TOGGLE - (Optional Reason/comment)
    +//if(SHUTTLE_STRANDED, SHUTTLE_ESCAPE) - SKYRAT EDIT - ORIGINAL
    +if(SHUTTLE_STRANDED, SHUTTLE_ESCAPE, SHUTTLE_DISABLED)
    +//SKYRAT EDIT CHANGE END
    +    return 1
    +
    +
  • +
+

Exceptional cases of modular code

+

From every rule, there's exceptions, due to many circumstances. Don't think about it too much.

+

Defines

+

Due to the way byond loads files, it has become necessary to make a different folder for handling our modular defines. +That folder is code/__DEFINES/~skyrat_defines, in which you can add them to the existing files, or create those files as necessary.

+

If you have a define that's used in more than one file, it must be declared here.

+

If you have a define that's used in one file, and won't be used anywhere else, declare it at the top, and #undef MY_DEFINE at the bottom of the file. This is to keep context menus clean, and to prevent confusion by those using IDEs with autocomplete.

+

Module folder layout

+

To keep form and ensure most modules are easy to navigate and to keep control of the amount of files and folders being made in the repository, you are required to follow this layout.

+

Ensure the folder names are exactly as stated.

+

Top most folder: module_id

+

DO NOT COPY THE CORE CODE FILE STRUCTURE IN YOUR MODULE!!

+

Code: Any .DM files must go in here.

+
    +
  • Good: /modular_skyrat/modules/example_module/code/disease_mob.dm
  • +
  • Bad: /modular_skyrat/modules/example_module/code/modules/antagonists/disease/disease_mob.dm
  • +
+

Icons: Any .DMI files must go in here.

+
    +
  • Good: /modular_skyrat/modules/example_module/icons/mining_righthand.dmi
  • +
  • Bad: /modular_skyrat/modules/example_module/icons/mob/inhands/equipment/mining_righthand.dmi
  • +
+

Sound: Any SOUND files must go in here.

+
    +
  • Good: See above.
  • +
  • Bad: See above.
  • +
+

The readme should go into the parent folder, module_id.

+

DO NOT MIX AND MATCH FILE TYPES IN FOLDERS!

+

Commenting out code - DON'T DO IT

+

If you are commenting out redundant code in modules, do not comment it out, instead, delete it.

+

Even if you think someone is going to redo whatever it is you're commenting out, don't, gitblame exists for a reason.

+

This also applies to files, do not comment out entire files, just delete them instead. This helps us keep down on filebloat and pointless comments.

+

This does not apply to non-modular changes.

+

Modular TGUI

+

TGUI is another exceptional case, since it uses javascript and isn't able to be modular in the same way that DM code is. +ALL of the tgui files are located in /tgui/packages/tgui/interfaces and its subdirectories; there is no specific folder for Skyrat UIs.

+

Modifying upstream files

+

When modifying upstream TGUI files the same rules apply as modifying upstream DM code, however the grammar for comments may be slightly different.

+

You can do both // SKYRAT EDIT and /* SKYRAT EDIT */, though in some cases you may have to use one over the other.

+

In general try to keep your edit comments on the same line as the change. Preferably inside the JSX tag. e.g:

+
<Button
+	onClick={() => act('spin', { high_quality: true })}
+	icon="rat" // SKYRAT EDIT ADDITION
+</Button>
+
+
<Button
+	onClick={() => act('spin', { high_quality: true })}
+	// SKYRAT EDIT ADDITION START - another example, multiline changes
+	icon="rat"
+	tooltip="spin the rat."
+	// SKYRAT EDIT ADDITION END
+</Button>
+
+
<SomeThing someProp="whatever" /* it also works in self-closing tags */ />
+
+

If that is not possible, you can wrap your edit in curly brackets e.g.

+
{/* SKYRAT EDIT ADDITION START */} 
+<SomeThing>
+	someProp="whatever"
+</SomeThing>
+{/* SKYRAT EDIT ADDITION END */}
+
+

Creating new TGUI files

+

IMPORTANT! When creating a new TGUI file from scratch, please add the following at the very top of the file (line 1):

+
// THIS IS A SKYRAT UI FILE
+
+

This way they are easily identifiable as modular TGUI .tsx/.jsx files. You do not have to do anything further, and there will never be any need for a Skyrat edit comment in a modular TGUI file.

+

Exemplary PR's

+

Here are a couple PR's that are great examples of the guide being followed, reference them if you are stuck:

+ +

Afterword

+

It might seem like a lot to take in, but if we remain consistent, it will save us a lot of headache in the long run, once we start having to resolve conflicts manually. +Thanks to a bit more scrupulous documentation, it will be immediately obvious what changes were done and where and by which features, things will be a lot less ambiguous and messy.

+

Best of luck in your coding. Remember that the community is there for you, if you ever need help.

\ No newline at end of file diff --git a/modular_skyrat/master_files.html b/modular_skyrat/master_files.html new file mode 100644 index 0000000000000..3c759937a8c36 --- /dev/null +++ b/modular_skyrat/master_files.html @@ -0,0 +1,35 @@ +modular_skyrat/master_files/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/readme.md

This is the logging file for any master icon and sound files that we have.

+

Please check this list before adding your own master file to see if it already exists. If it does exist then please put your icon in it.

+

MASTER ICON FILES

+
    +
  • /master_files/icons/emoji.dmi
  • +
  • /master_files/icons/mob/hud.dmi
  • +
  • /master_files/icons/obj/clothing/gloves.dmi
  • +
  • /master_files/icons/mob/clothing/hands.dmi
  • +
  • /master_files/icons/obj/trash_piles.dmi
  • +
  • /master_files/icons/mob/popup_flicks.dmi
  • +
+

MASTER SOUND FILES

+
    +
  • /master_files/sound/effects/heart_beat_loop3.ogg
  • +
  • /master_files/sound/effects/heart_beat_once.ogg
  • +
+

MASTER CODE FILES

+
    +
  • /master_files/code/modules/power/lighting.dm
  • +
  • /master_files/code/modules/clothing/non_anthro_clothes.dm > PLEASE USE THIS TO LOG ANY CLOTHES THAT DO NOT NEED ANTHRO VARIANTS.
  • +
  • /master_files/code/modules/clothing/anthro_clothes.dm > PLEASE USE THIS TO LOG ANY CLOTHES THAT DO NEED ANTHRO VARIANTS.
  • +
  • /master_files/code/datums/traits/neutral.dm > USE THIS FOR ANY NEUTRAL TRAITS
  • +
  • /master_files/code/datums/traits/negative.dm > USE THIS FOR ANY NEGATIVE TRAITS
  • +
  • /master_files/code/datums/traits/good.dm > USE THIS FOR ANY GOOD TRAITS
  • +
  • /master_files/code/game/objects/structures/trash_pile.dm
  • +
  • /master_files/code/modules/mob/living/carbon/carbon_say.dm
  • +
  • /master_files/code/modules/mob/living/emote_popup.dm
  • +
  • /master_files/code/game/machinery/doors/firedoor.dm
  • +
  • /master_files/code/modules/jobs/job_types/cyborg.dm
  • +
  • /master_files/code/modules/antagonists/_common/antag_datum.dm
  • +
+

MASTER GLOBAL VARS

+
    +
  • modular_skyrat/master_files/code/_globalvars/configuration.dm > GLOBAL_VAR_INIT(looc_allowed, TRUE)
  • +
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/_globalvars/configuration.html b/modular_skyrat/master_files/code/_globalvars/configuration.html new file mode 100644 index 0000000000000..8a079cef21433 --- /dev/null +++ b/modular_skyrat/master_files/code/_globalvars/configuration.html @@ -0,0 +1,4 @@ +modular_skyrat/master_files/code/_globalvars/configuration.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/_globalvars/configuration.dm

/datum/config_entry/flag/sql_game_logWhether or not we log game logs to the SQL database. Requires the SQL database to function, as well as our Skyrat-only table, game_log.
/datum/config_entry/flag/file_game_logWhether or not we log game logs to files on the server when we're already logging them on the server, if SQL_GAME_LOG is enabled.
/datum/config_entry/number/sql_game_log_min_bundle_sizeThe minimum amount of entries there should be in the list of game logs for a mass query to be sent to the database. +Depends on SQL_GAME_LOG being enabled, doesn't mean anything otherwise. +Setting this to a value that's too low risks to severely affect perceptible performance, due to a high amount of +sleeps being involved with running queries.
/datum/config_entry/number/event_frequency_upperUpper value for random events at highpop.
/datum/config_entry/number/event_frequency_lowerLower value for random events at highpop.
/datum/config_entry/number/intensity_credit_rateRate at which high intensity random events are limited to occur.
/datum/config_entry/number/ticket_ping_frequencyTicket ping frequency. Set 0 for disable that subsystem. 3000 - 5 minutes, 600 - 1 minute.
/datum/config_entry/flag/split_threat_budgetSplit the threat budget between roundstart and midrounds
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/_globalvars/lists/chat.html b/modular_skyrat/master_files/code/_globalvars/lists/chat.html new file mode 100644 index 0000000000000..5de31d34e0626 --- /dev/null +++ b/modular_skyrat/master_files/code/_globalvars/lists/chat.html @@ -0,0 +1,3 @@ +modular_skyrat/master_files/code/_globalvars/lists/chat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/_globalvars/lists/chat.dm

/proc/should_have_space_before_emoteReturns a boolean based on whether or not the string contains a comma or an apostrophe, +to be used for emotes to decide whether or not to have a space between the name of the user +and the emote.
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/_globalvars/text.html b/modular_skyrat/master_files/code/_globalvars/text.html new file mode 100644 index 0000000000000..adae74586f85e --- /dev/null +++ b/modular_skyrat/master_files/code/_globalvars/text.html @@ -0,0 +1,2 @@ +modular_skyrat/master_files/code/_globalvars/text.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/_globalvars/text.dm

/proc/autopunct_bareEnsures sentences end in appropriate punctuation (a period if none exist) +and that all whitespace-bounded 'i' characters are capitalized.
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/_onclick/hud.html b/modular_skyrat/master_files/code/_onclick/hud.html new file mode 100644 index 0000000000000..b521f091b9a85 --- /dev/null +++ b/modular_skyrat/master_files/code/_onclick/hud.html @@ -0,0 +1,5 @@ +modular_skyrat/master_files/code/_onclick/hud/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/_onclick/hud/readme.md

This is the directory for any hud additions, please add them appropriately and log them in this file.

+

Current huds:

+
    +
  • Gun hud - Gunhud
  • +
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/controllers/configuration/entries/skyrat_config_entries.html b/modular_skyrat/master_files/code/controllers/configuration/entries/skyrat_config_entries.html new file mode 100644 index 0000000000000..a9e20cdb22163 --- /dev/null +++ b/modular_skyrat/master_files/code/controllers/configuration/entries/skyrat_config_entries.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/controllers/configuration/entries/skyrat_config_entries.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/controllers/configuration/entries/skyrat_config_entries.dm

/datum/config_entry/flag/min_flavor_textConfig entry for enabling flavortext min character count, good to disable for debugging purposes
/datum/config_entry/number/flavor_text_character_requirementConfig entry for enabling flavortext min character count, good to disable for debugging purposes
/datum/config_entry/flag/mentors_mobname_onlyDefines whether or not mentors can see ckeys alongside mobnames.
/datum/config_entry/flag/donator_legacy_systemDefines whether the server uses the legacy donator system with donators.txt or the SQL system.
/datum/config_entry/flag/mentor_legacy_systemDefines whether the server uses the legacy mentor system with mentors.txt or the SQL system.
/datum/config_entry/flag/veteran_legacy_systemDefines whether the server uses the legacy veteran system with veteran_players.txt or the SQL system.
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.html b/modular_skyrat/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.html new file mode 100644 index 0000000000000..8492ef6f585f9 --- /dev/null +++ b/modular_skyrat/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm

MAX_MATRIXED_COLORSThe greatest amount of colors that can be in a matrixed bodypart_overlay.
ALPHA_OPAQUEDefault value for alpha, making it fully opaque.

Define Details

ALPHA_OPAQUE

Default value for alpha, making it fully opaque.

MAX_MATRIXED_COLORS

The greatest amount of colors that can be in a matrixed bodypart_overlay.

\ No newline at end of file diff --git a/modular_skyrat/master_files/code/datums/components/damage_tracker.html b/modular_skyrat/master_files/code/datums/components/damage_tracker.html new file mode 100644 index 0000000000000..10e93ce0c3abe --- /dev/null +++ b/modular_skyrat/master_files/code/datums/components/damage_tracker.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/datums/components/damage_tracker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/datums/components/damage_tracker.dm

/datum/component/damage_trackerThis component tracks the original damage values of a mob when it is attached.
/datum/component/damage_tracker/humanThis does the same as it's parent, but it also tracks organ damage.
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/datums/id_trim/syndicate.html b/modular_skyrat/master_files/code/datums/id_trim/syndicate.html new file mode 100644 index 0000000000000..86110995c8b86 --- /dev/null +++ b/modular_skyrat/master_files/code/datums/id_trim/syndicate.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/datums/id_trim/syndicate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/datums/id_trim/syndicate.dm

/datum/id_trim/syndicom/skyratSYNDICATE ID TRIMS
/datum/id_trim/syndicom/skyrat/ds2DS-2
/datum/id_trim/syndicom/skyrat/interdyneInterdyne
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/game/objects/effects/decals/turfdecals/tilecoloring.html b/modular_skyrat/master_files/code/game/objects/effects/decals/turfdecals/tilecoloring.html new file mode 100644 index 0000000000000..47009c2305265 --- /dev/null +++ b/modular_skyrat/master_files/code/game/objects/effects/decals/turfdecals/tilecoloring.html @@ -0,0 +1,3 @@ +modular_skyrat/master_files/code/game/objects/effects/decals/turfdecals/tilecoloring.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/game/objects/effects/decals/turfdecals/tilecoloring.dm

/obj/effect/turf_decal/tile/red/real_redTo make upstream mapping easier we overwrote the color for Red to be not red but blue for our weird bluesec +This re-adds a red coloring to be used by mappers in other areas. +Real Red Tiles
/obj/effect/turf_decal/trimline/red/real_redReal Red Trimlines
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/game/objects/items/stacks/sheets/sheet_types.html b/modular_skyrat/master_files/code/game/objects/items/stacks/sheets/sheet_types.html new file mode 100644 index 0000000000000..87e7eea5cd3de --- /dev/null +++ b/modular_skyrat/master_files/code/game/objects/items/stacks/sheets/sheet_types.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/game/objects/items/stacks/sheets/sheet_types.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/game/objects/items/stacks/sheets/sheet_types.dm

/proc/add_recipes_to_sublistAdd a list of recipes to an existing recipe sublist.
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/antagonists/traitor/objectives/smuggling.html b/modular_skyrat/master_files/code/modules/antagonists/traitor/objectives/smuggling.html new file mode 100644 index 0000000000000..6e9893d243b28 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/antagonists/traitor/objectives/smuggling.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/modules/antagonists/traitor/objectives/smuggling.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/modules/antagonists/traitor/objectives/smuggling.dm

/datum/traitor_objective/smugglesmuggle! bring a traitor item from its arrival area to the cargo shuttle, where the objective completes on selling the item
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/client/preferences/_preference.html b/modular_skyrat/master_files/code/modules/client/preferences/_preference.html new file mode 100644 index 0000000000000..ed298821a1d09 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/client/preferences/_preference.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/modules/client/preferences/_preference.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/modules/client/preferences/_preference.dm

/datum/preference/toggle/mutant_toggleBase class for character feature togglers
/datum/preference/choiced/mutant_choiceBase class for choices character features, mainly mutant body parts
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/client/preferences/erp_preferences.html b/modular_skyrat/master_files/code/modules/client/preferences/erp_preferences.html new file mode 100644 index 0000000000000..be3c9296b99f8 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/client/preferences/erp_preferences.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/modules/client/preferences/erp_preferences.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/modules/client/preferences/erp_preferences.dm

/datum/preference/toggle/erp/soundsSounds from interaction menu and stimuli
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/client/preferences/middleware/languages.html b/modular_skyrat/master_files/code/modules/client/preferences/middleware/languages.html new file mode 100644 index 0000000000000..7d4f228854192 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/client/preferences/middleware/languages.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/modules/client/preferences/middleware/languages.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/modules/client/preferences/middleware/languages.dm

/datum/preference_middleware/languagesMiddleware to handle languages
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/client/preferences/mutant_parts.html b/modular_skyrat/master_files/code/modules/client/preferences/mutant_parts.html new file mode 100644 index 0000000000000..cd2019eb1d011 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/client/preferences/mutant_parts.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/modules/client/preferences/mutant_parts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/modules/client/preferences/mutant_parts.dm

/datum/preference/toggle/mutant_toggle/tailTails
/datum/preference/toggle/mutant_toggle/snoutSnouts
/datum/preference/toggle/mutant_toggle/hornsHorns
/datum/preference/toggle/mutant_toggle/earsEars
/datum/preference/toggle/mutant_toggle/wingsWings
/datum/preference/toggle/mutant_toggle/frillsFrills
/datum/preference/toggle/mutant_toggle/spinesSpines
/datum/preference/toggle/mutant_toggle/capsCaps
/datum/preference/toggle/mutant_toggle/moth_antennaeMoth Antennae
/datum/preference/toggle/mutant_toggle/moth_markingsMoth Markings - They don't work, and we use regular markings for those anyway, so we're going to disable them.
/datum/preference/toggle/mutant_toggle/fluffFluff
/datum/preference/choiced/mutant_choice/ipc_screenIPC Screens
/datum/preference/choiced/mutant_choice/synth_antennaIPC Antennas
/datum/preference/choiced/mutant_choice/synth_chassisIPC Chassis
/datum/preference/choiced/mutant_choice/synth_headIPC Head
/datum/preference/toggle/mutant_toggle/skrell_hairSkrell Hair
/datum/preference/toggle/mutant_toggle/taurTaur
/datum/preference/toggle/mutant_toggle/xenodorsalXenodorsal
/datum/preference/toggle/mutant_toggle/xenoheadXeno heads
/datum/preference/toggle/mutant_toggle/head_accHead Accessories - Unless more get added, this is only able to be applied for one person, a donator only thing
/datum/preference/toggle/mutant_toggle/neck_accNeck Accessories - Same as head_acc
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/client/preferences/species_features/digitigrade_legs.html b/modular_skyrat/master_files/code/modules/client/preferences/species_features/digitigrade_legs.html new file mode 100644 index 0000000000000..1a211b53fb2de --- /dev/null +++ b/modular_skyrat/master_files/code/modules/client/preferences/species_features/digitigrade_legs.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/modules/client/preferences/species_features/digitigrade_legs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/modules/client/preferences/species_features/digitigrade_legs.dm

/datum/preference/choiced/digitigrade_legsLegs
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/client/preferences/voice.html b/modular_skyrat/master_files/code/modules/client/preferences/voice.html new file mode 100644 index 0000000000000..9ef70a38a6887 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/client/preferences/voice.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/modules/client/preferences/voice.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/master_files/code/modules/client/preferences/voice.dm

TTS_VOICE_NONEThe option for not having a voice.

Define Details

TTS_VOICE_NONE

The option for not having a voice.

\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/client/preferences_savefile.html b/modular_skyrat/master_files/code/modules/client/preferences_savefile.html new file mode 100644 index 0000000000000..61ca3657c83a1 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/client/preferences_savefile.html @@ -0,0 +1,5 @@ +modular_skyrat/master_files/code/modules/client/preferences_savefile.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/master_files/code/modules/client/preferences_savefile.dm

MODULAR_SAVEFILE_VERSION_MAXThis is a cheap replica of the standard savefile version, only used for characters for now. +You can't really use the non-modular version, least you eventually want asinine merge +conflicts and/or potentially disastrous issues to arise, so here's your own.

Define Details

MODULAR_SAVEFILE_VERSION_MAX

This is a cheap replica of the standard savefile version, only used for characters for now. +You can't really use the non-modular version, least you eventually want asinine merge +conflicts and/or potentially disastrous issues to arise, so here's your own.

\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/clothing/clothing.html b/modular_skyrat/master_files/code/modules/clothing/clothing.html new file mode 100644 index 0000000000000..1d472f82a264c --- /dev/null +++ b/modular_skyrat/master_files/code/modules/clothing/clothing.html @@ -0,0 +1,3 @@ +modular_skyrat/master_files/code/modules/clothing/clothing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/modules/clothing/clothing.dm

/proc/generate_taur_clothingProc to generate a taur variation of clothes, with the intent of caching them. +It is meant for suits and uniforms at the moment, to cut out the bottom half so that +it doesn't look too out of place.
/proc/wear_taur_versionProc that handles returning a mutable appearance that can fit on a taur body without looking too janky!
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/clothing/clothing_variation_overrides/under.html b/modular_skyrat/master_files/code/modules/clothing/clothing_variation_overrides/under.html new file mode 100644 index 0000000000000..cd3cc9b0dd43c --- /dev/null +++ b/modular_skyrat/master_files/code/modules/clothing/clothing_variation_overrides/under.html @@ -0,0 +1,2 @@ +modular_skyrat/master_files/code/modules/clothing/clothing_variation_overrides/under.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/modules/clothing/clothing_variation_overrides/under.dm

/obj/item/clothing/under/suit/henchmenNONE(Squash) +Clothing that does not have a digitigrade version, and thus will squash legs to fit.
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/clothing/head/monkey_magnification_helmet.html b/modular_skyrat/master_files/code/modules/clothing/head/monkey_magnification_helmet.html new file mode 100644 index 0000000000000..d3f5f4eb7cbba --- /dev/null +++ b/modular_skyrat/master_files/code/modules/clothing/head/monkey_magnification_helmet.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/modules/clothing/head/monkey_magnification_helmet.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/modules/clothing/head/monkey_magnification_helmet.dm

/datum/armor/helmet_monkey_sentiencewhich icon state color this is (red, blue, yellow)
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/clothing/suits/skinsuits.html b/modular_skyrat/master_files/code/modules/clothing/suits/skinsuits.html new file mode 100644 index 0000000000000..f7d3affa0e810 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/clothing/suits/skinsuits.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/modules/clothing/suits/skinsuits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/modules/clothing/suits/skinsuits.dm

/obj/item/clothing/under/skinsuitA space-worthy skinsuit to be combined with the skinsuit armor
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/clothing/towels.html b/modular_skyrat/master_files/code/modules/clothing/towels.html new file mode 100644 index 0000000000000..058d5037a859c --- /dev/null +++ b/modular_skyrat/master_files/code/modules/clothing/towels.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/modules/clothing/towels.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/master_files/code/modules/clothing/towels.dm

TOWEL_FOLDEDDefault shape of the towel, when it's folded.
TOWEL_FULLChest-down variant of the towel.
TOWEL_WAISTWaist-down variant of the towel.
TOWEL_HEADHead variant of the towel.
TOWEL_USEDShape of the towel when it has been used, and is no longer neatly folded.
TOWEL_OBJ_ICONIcon path to the obj icon of the towel.
TOWEL_WORN_ICONIcon path to the worn icon of the towel.
TOWEL_WORN_ICON_DIGIIcon path to the worn icon of the towel for digitigrades.
TOWEL_LEFTHAND_ICONIcon path to the left-hand inhand icons of the towel.
TOWEL_RIGHTHAND_ICONIcon path to the right-hand inhand icons of the towel.
TOWEL_CLOTH_AMOUNTHow much cloth goes into a towel.
TOWEL_WRING_LOSS_FACTORRatio of how much reagents are lost when a towel is wrung.
TOWEL_WRING_AMOUNTHow many reagents can be wrung at once.

Define Details

TOWEL_CLOTH_AMOUNT

How much cloth goes into a towel.

TOWEL_FOLDED

Default shape of the towel, when it's folded.

TOWEL_FULL

Chest-down variant of the towel.

TOWEL_HEAD

Head variant of the towel.

TOWEL_LEFTHAND_ICON

Icon path to the left-hand inhand icons of the towel.

TOWEL_OBJ_ICON

Icon path to the obj icon of the towel.

TOWEL_RIGHTHAND_ICON

Icon path to the right-hand inhand icons of the towel.

TOWEL_USED

Shape of the towel when it has been used, and is no longer neatly folded.

TOWEL_WAIST

Waist-down variant of the towel.

TOWEL_WORN_ICON

Icon path to the worn icon of the towel.

TOWEL_WORN_ICON_DIGI

Icon path to the worn icon of the towel for digitigrades.

TOWEL_WRING_AMOUNT

How many reagents can be wrung at once.

TOWEL_WRING_LOSS_FACTOR

Ratio of how much reagents are lost when a towel is wrung.

\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/clothing/under/akula_jobs.html b/modular_skyrat/master_files/code/modules/clothing/under/akula_jobs.html new file mode 100644 index 0000000000000..3ef1abf02ce39 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/clothing/under/akula_jobs.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/modules/clothing/under/akula_jobs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/master_files/code/modules/clothing/under/akula_jobs.dm

TAIL_OVERLAY_DMIThe DMI containing the tail overlay sprites
TAIL_OVERLAY_LAYERThe proper layer to render the tail overlays onto
/datum/armor/clothing_under/wetsuitSuit armor
/datum/armor/wetsuit_helmetHelmet armor

Define Details

TAIL_OVERLAY_DMI

The DMI containing the tail overlay sprites

TAIL_OVERLAY_LAYER

The proper layer to render the tail overlays onto

\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/jobs/job_types/_job_attire.html b/modular_skyrat/master_files/code/modules/jobs/job_types/_job_attire.html new file mode 100644 index 0000000000000..05b225568beaa --- /dev/null +++ b/modular_skyrat/master_files/code/modules/jobs/job_types/_job_attire.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/modules/jobs/job_types/_job_attire.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/modules/jobs/job_types/_job_attire.dm

/datum/job/nanotrasen_consultantJob antagonist restriction file
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/mob/living/blood.html b/modular_skyrat/master_files/code/modules/mob/living/blood.html new file mode 100644 index 0000000000000..ad0306d69ddd3 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/mob/living/blood.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/modules/mob/living/blood.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/master_files/code/modules/mob/living/blood.dm

MONKEY_ORIGINSAccessor for the monkey_blood field in the blood data list.

Define Details

MONKEY_ORIGINS

Accessor for the monkey_blood field in the blood data list.

\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/bumbles.html b/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/bumbles.html new file mode 100644 index 0000000000000..fb4c0b3ec3271 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/bumbles.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/bumbles.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/bumbles.dm

/datum/ai_planning_subtree/basic_melee_attack_subtree/bumblesAttack with a 30 second cooldown.
/datum/ai_behavior/basic_melee_attack/bumblesAttack with a 30 second cooldown.
/datum/ai_planning_subtree/bumbles_restPlan to rest or sit up.
/datum/ai_behavior/bumbles_restBumbles rests or sits up.
/datum/ai_planning_subtree/random_speech/bumblesBuzz
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/dogs.html b/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/dogs.html new file mode 100644 index 0000000000000..c7f4d0a8f63db --- /dev/null +++ b/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/dogs.html @@ -0,0 +1 @@ +modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/dogs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/dogs.dm

/datum/ai_controller/basic_controller/dog/borgiDog controller but with emag attack support
/datum/ai_planning_subtree/emagged_borgiSubtree that schedules borgi to randomly shoot if they're emagged.
/datum/ai_behavior/emagged_borgi_attackShoot a random target.
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/religion/religious_sects.html b/modular_skyrat/master_files/code/modules/religion/religious_sects.html new file mode 100644 index 0000000000000..68f2663c6a416 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/religion/religious_sects.html @@ -0,0 +1,3 @@ +modular_skyrat/master_files/code/modules/religion/religious_sects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/modules/religion/religious_sects.dm

/proc/reset_religionIt's time to kill GLOB +Reset religion to its default state so the new chaplain becomes high priest and can change the sect, armor, weapon type, etc +Also handles the selection of a holy successor from existing crew if multiple chaplains are on station.
/proc/pick_holy_successorChooses a valid holy successor from GLOB.holy_successor weakref list and sets things up for them to be the new high priest
/proc/list_holy_successorsCreate a list of the holy successors mobs from GLOB.holy_successors weakref list
\ No newline at end of file diff --git a/modular_skyrat/master_files/code/modules/wiremod/components/bci/reagent_injector_bluespace.html b/modular_skyrat/master_files/code/modules/wiremod/components/bci/reagent_injector_bluespace.html new file mode 100644 index 0000000000000..a0be9085084f8 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/wiremod/components/bci/reagent_injector_bluespace.html @@ -0,0 +1,2 @@ +modular_skyrat/master_files/code/modules/wiremod/components/bci/reagent_injector_bluespace.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/master_files/code/modules/wiremod/components/bci/reagent_injector_bluespace.dm

/obj/item/circuit_component/reagent_injector_bluespaceInjects reagents into the user. +Requires a BCI shell.
\ No newline at end of file diff --git a/modular_skyrat/module_template.html b/modular_skyrat/module_template.html new file mode 100644 index 0000000000000..4743fe0681b19 --- /dev/null +++ b/modular_skyrat/module_template.html @@ -0,0 +1,33 @@ +modular_skyrat/module_template.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/module_template.md

+

https://github.com/Skyrat-SS13/Skyrat-tg/pull/

+

<Title Here>

+

Module ID:

+

Description:

+

TG Proc/File Changes:

+
    +
  • N/A
  • +
+ +

Modular Overrides:

+
    +
  • N/A
  • +
+ +

Defines:

+
    +
  • N/A
  • +
+ +

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+ +

Credits:

\ No newline at end of file diff --git a/modular_skyrat/modules/QOL.html b/modular_skyrat/modules/QOL.html new file mode 100644 index 0000000000000..2a5a18f31277f --- /dev/null +++ b/modular_skyrat/modules/QOL.html @@ -0,0 +1,23 @@ +modular_skyrat/modules/QOL/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/QOL/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull

+

Title: QOL changes

+

MODULE ID: QOL

+

Description:

+

A subset of QOL changes that we make, store them here.

+

TG Proc Changes:

+
    +
  • +
+

Defines:

+
    +
  • +
+

Master file additions

+
    +
  • +
+

Included files that are not contained in this module:

+
    +
  • +
+

Credits:

+

Gandalf2k15

\ No newline at end of file diff --git a/modular_skyrat/modules/SiliconQoL.html b/modular_skyrat/modules/SiliconQoL.html new file mode 100644 index 0000000000000..afe02a025111e --- /dev/null +++ b/modular_skyrat/modules/SiliconQoL.html @@ -0,0 +1,25 @@ +modular_skyrat/modules/SiliconQoL/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/SiliconQoL/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/1167

+

Title: Allows AI to examine and adds more QoL features. #1167

+

MODULE ID: SiliconQoL

+

Description:

+

1.Ports AI/Cyborg QoL from SkyratSS13 +-Interacting with doors no longer requires to click the sprite itself , it now also works by clicking the turf. +2.Allows AI to examine , creates a new proc for it. +3.Allows AI to close firelocks by clicking the turf they are on.

+

TG Proc Changes:

+

Added a comment informing of the overrides.

+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

MLGTastica - Code , Ideas +Bobjoga - Helping with the code , a lot.

\ No newline at end of file diff --git a/modular_skyrat/modules/additional_circuit.html b/modular_skyrat/modules/additional_circuit.html new file mode 100644 index 0000000000000..079d63adc383b --- /dev/null +++ b/modular_skyrat/modules/additional_circuit.html @@ -0,0 +1,28 @@ +modular_skyrat/modules/additional_circuit/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Title: Additional Circuits

MODULE ID: AD_CIRCUITS

+

Description

+

Adds circuit component(s).

+

Currently added

+
    +
  1. Mining Circuit
  2. +
  3. Radar Scanner
  4. +
  5. Cell Reader
  6. +
  7. Item Interact
  8. +
+

TG Proc Changes

+
    +
  • N/A
  • +
+

Defines

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module

+
    +
  • N/A
  • +
+

Credits

+

Jake Park

\ No newline at end of file diff --git a/modular_skyrat/modules/additional_circuit/code/cell_reader.html b/modular_skyrat/modules/additional_circuit/code/cell_reader.html new file mode 100644 index 0000000000000..1c10ad06d7b8f --- /dev/null +++ b/modular_skyrat/modules/additional_circuit/code/cell_reader.html @@ -0,0 +1 @@ +modular_skyrat/modules/additional_circuit/code/cell_reader.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/additional_circuit/code/cell_reader.dm

/obj/item/circuit_component/cell_chargeAllows for reading of the max/current charge of the cell in an integrated circuit.
\ No newline at end of file diff --git a/modular_skyrat/modules/additional_circuit/code/interact_item.html b/modular_skyrat/modules/additional_circuit/code/interact_item.html new file mode 100644 index 0000000000000..aa09641816ee0 --- /dev/null +++ b/modular_skyrat/modules/additional_circuit/code/interact_item.html @@ -0,0 +1 @@ +modular_skyrat/modules/additional_circuit/code/interact_item.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/additional_circuit/code/interact_item.dm

/obj/item/circuit_component/item_interactAllows for interaction with an item. Drone shell only.
\ No newline at end of file diff --git a/modular_skyrat/modules/additional_circuit/code/mining_circuit.html b/modular_skyrat/modules/additional_circuit/code/mining_circuit.html new file mode 100644 index 0000000000000..04291df16d512 --- /dev/null +++ b/modular_skyrat/modules/additional_circuit/code/mining_circuit.html @@ -0,0 +1 @@ +modular_skyrat/modules/additional_circuit/code/mining_circuit.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/additional_circuit/code/mining_circuit.dm

/obj/item/circuit_component/miningAllows for mining of mineral walls (walls with ores). Requires a shell.
\ No newline at end of file diff --git a/modular_skyrat/modules/additional_circuit/code/target_scanner.html b/modular_skyrat/modules/additional_circuit/code/target_scanner.html new file mode 100644 index 0000000000000..34e4e2dd1ab1f --- /dev/null +++ b/modular_skyrat/modules/additional_circuit/code/target_scanner.html @@ -0,0 +1 @@ +modular_skyrat/modules/additional_circuit/code/target_scanner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/additional_circuit/code/target_scanner.dm

/obj/item/circuit_component/target_scannerAllows for creating a list of atoms within a range of 1.
\ No newline at end of file diff --git a/modular_skyrat/modules/admin.html b/modular_skyrat/modules/admin.html new file mode 100644 index 0000000000000..cd9fead14e41b --- /dev/null +++ b/modular_skyrat/modules/admin.html @@ -0,0 +1,29 @@ +modular_skyrat/modules/admin/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/admin/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pulls

+

Title: Admin

+

MODULE ID: ADMIN

+

Description:

+

Adds multuple admin features, loud asay. As well as bold/itallics/underline.

+

TG Proc Changes:

+
    +
  • code\datums\chatmessage.dm > /datum/chatmessage/proc/generate_image
  • +
  • code\game\say.dm > /atom/movable/proc/compose_message
  • +
  • code\modules\admin\verbs\adminhelp.dm
  • +
  • code\modules\admin\verbs\adminpm.dm
  • +
  • code\modules\admin\admin_verbs.dm
  • +
  • code\modules\mob\living\emote.dm > /datum/emote/living/custom/run_emote
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Gandalf2k15 - Porting and Refactoring +Akrilla - OG code

\ No newline at end of file diff --git a/modular_skyrat/modules/admin/code/localsound.html b/modular_skyrat/modules/admin/code/localsound.html new file mode 100644 index 0000000000000..fcaba0d5ce1d8 --- /dev/null +++ b/modular_skyrat/modules/admin/code/localsound.html @@ -0,0 +1 @@ +modular_skyrat/modules/admin/code/localsound.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/admin/code/localsound.dm

/proc/localweb_soundTakes an input from either proc/play_web_sound or the request manager and runs it through youtube-dl and prompts the user before playing it to the server.
\ No newline at end of file diff --git a/modular_skyrat/modules/admin/code/player_ranks.html b/modular_skyrat/modules/admin/code/player_ranks.html new file mode 100644 index 0000000000000..ce9e3948d2c00 --- /dev/null +++ b/modular_skyrat/modules/admin/code/player_ranks.html @@ -0,0 +1 @@ +modular_skyrat/modules/admin/code/player_ranks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/admin/code/player_ranks.dm

SKYRAT_PLAYER_RANKSThe list of the available special player ranks

Define Details

SKYRAT_PLAYER_RANKS

The list of the available special player ranks

\ No newline at end of file diff --git a/modular_skyrat/modules/advanced_engineering.html b/modular_skyrat/modules/advanced_engineering.html new file mode 100644 index 0000000000000..fadd2f19680f4 --- /dev/null +++ b/modular_skyrat/modules/advanced_engineering.html @@ -0,0 +1,14 @@ +modular_skyrat/modules/advanced_engineering/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/advanced_engineering/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/20040/

+

Title:

+

MODULE ID: ADVANCED_ENGINEERING

+

Description:

+

Adds some new high tier engineering gear for use by ERTs.

+

TG Proc/File Changes:

+

None

+

Defines

+

#define RADIO_CHANNEL_SOLFED "SolFed" +#define RADIO_KEY_SOLFED "l" +#define RADIO_TOKEN_SOLFED ":l"

+

#define FREQ_SOLFED 1377

+

Credits:

+

LT3

\ No newline at end of file diff --git a/modular_skyrat/modules/aesthetics.html b/modular_skyrat/modules/aesthetics.html new file mode 100644 index 0000000000000..6848591f6d047 --- /dev/null +++ b/modular_skyrat/modules/aesthetics.html @@ -0,0 +1,26 @@ +modular_skyrat/modules/aesthetics/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/aesthetics/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/1245

+

Title: General aesthetic change.

+

MODULE ID: AESTHETICS

+

Description:

+

This takes a few sprites from TauCeti station and ports them over to us. With a few sound modifications too.

+

TG Proc Changes:

+
    +
  • Please see changed files on PR. Skyrat tags applied.
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+
    +
  • TauCeti station
  • +
  • Gandalf2k15
  • +
\ No newline at end of file diff --git a/modular_skyrat/modules/aesthetics/flag/code/signs_flags.html b/modular_skyrat/modules/aesthetics/flag/code/signs_flags.html new file mode 100644 index 0000000000000..2273271aaab4e --- /dev/null +++ b/modular_skyrat/modules/aesthetics/flag/code/signs_flags.html @@ -0,0 +1 @@ +modular_skyrat/modules/aesthetics/flag/code/signs_flags.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/aesthetics/flag/code/signs_flags.dm

/obj/structure/sign/flag/usaPlease, for the love of God, use this in Black Mesa ONLY. NOWHERE ELSE. It's the only reason it was allowed in the game.
/obj/item/sign/flag/usaPlease, for the love of God, use this in Black Mesa ONLY. NOWHERE ELSE. It's the only reason it was allowed in the game.
\ No newline at end of file diff --git a/modular_skyrat/modules/aesthetics/keyed_doors/code/keyed_door.html b/modular_skyrat/modules/aesthetics/keyed_doors/code/keyed_door.html new file mode 100644 index 0000000000000..f7f3e4112a29c --- /dev/null +++ b/modular_skyrat/modules/aesthetics/keyed_doors/code/keyed_door.html @@ -0,0 +1,2 @@ +modular_skyrat/modules/aesthetics/keyed_doors/code/keyed_door.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/aesthetics/keyed_doors/code/keyed_door.dm

/obj/item/key_cardKeycard that's meant to be able to open a /obj/machinery/door/airlock/keyed. Without it, the door will not open.
/obj/machinery/door/airlock/keyedThe doors and Keys need to match when being built, demo variants are found below +along with the requirements for use. Make sure the access_id matches the door or it won't work.
\ No newline at end of file diff --git a/modular_skyrat/modules/aesthetics/lights/code/lighting.html b/modular_skyrat/modules/aesthetics/lights/code/lighting.html new file mode 100644 index 0000000000000..db0fa66648137 --- /dev/null +++ b/modular_skyrat/modules/aesthetics/lights/code/lighting.html @@ -0,0 +1 @@ +modular_skyrat/modules/aesthetics/lights/code/lighting.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/aesthetics/lights/code/lighting.dm

NIGHTSHIFT_LIGHT_MODIFIERDynamically calculate nightshift brightness. How TG does it is painful to modify.

Define Details

NIGHTSHIFT_LIGHT_MODIFIER

Dynamically calculate nightshift brightness. How TG does it is painful to modify.

\ No newline at end of file diff --git a/modular_skyrat/modules/aesthetics/vending/access_vending.html b/modular_skyrat/modules/aesthetics/vending/access_vending.html new file mode 100644 index 0000000000000..b32ba85caf520 --- /dev/null +++ b/modular_skyrat/modules/aesthetics/vending/access_vending.html @@ -0,0 +1 @@ +modular_skyrat/modules/aesthetics/vending/access_vending.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/aesthetics/vending/access_vending.dm

/obj/machinery/vending/accessThis vending machine supports a list of items that changes based on the user/card's access.
/obj/machinery/vending/access/debugDebug version to verify access checking is working and functional
\ No newline at end of file diff --git a/modular_skyrat/modules/airlock_override.html b/modular_skyrat/modules/airlock_override.html new file mode 100644 index 0000000000000..354cd81e2b807 --- /dev/null +++ b/modular_skyrat/modules/airlock_override.html @@ -0,0 +1,16 @@ +modular_skyrat/modules/airlock_override/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/airlock_override/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/16787

+

Title:

+

Engineering override for airlocks on orange alert +MODULE ID: AIRLOCK_OVERRIDE

+

Description:

+

Adds functionality to the airlocks so that when the alert level is set to orange, engineers receive expanded access so they aren't stuck at an airlock when disaster happens.

+

TG Proc/File Changes:

+

code/game/machinery/computer/communications.dm +code/modules/security_levels/keycard_authentication.dm +tgui/packages/tgui/interfaces/CommunicationsConsole.js +tgui/packages/tgui/interfaces/KeycardAuth.js

+

Defines:

+

AIRLOCK_LIGHT_ENGINEERING in \Skyrat-tg\modular_skyrat\modules\aesthetics\airlock\code\airlock.dm +AIRLOCK_ENGINEERING_LIGHT_COLOR in \Skyrat-tg\modular_skyrat\modules\aesthetics\airlock\code\airlock.dm

+

Credits:

+

LT3

\ No newline at end of file diff --git a/modular_skyrat/modules/akula/code/wetsuit.html b/modular_skyrat/modules/akula/code/wetsuit.html new file mode 100644 index 0000000000000..ea83b70731ecd --- /dev/null +++ b/modular_skyrat/modules/akula/code/wetsuit.html @@ -0,0 +1 @@ +modular_skyrat/modules/akula/code/wetsuit.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/akula/code/wetsuit.dm

STATUS_EFFECT_STACKSHow many wetstacks does the clothing's status effect apply to its wearer
/datum/status_effect/grouped/wetsuitThe status effect which apply_wetsuit_status_effect gives

Define Details

STATUS_EFFECT_STACKS

How many wetstacks does the clothing's status effect apply to its wearer

\ No newline at end of file diff --git a/modular_skyrat/modules/alcohol_processing.html b/modular_skyrat/modules/alcohol_processing.html new file mode 100644 index 0000000000000..54e70d3660136 --- /dev/null +++ b/modular_skyrat/modules/alcohol_processing.html @@ -0,0 +1,20 @@ +modular_skyrat/modules/alcohol_processing/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/alcohol_processing/readme.md

Title: Alcohol Processing

+

MODULE ID: ALCOHOL_PROCESSING

+

Description:

+

Adjusts the rate of alcohol processing, its effects, and thresholds. Drinks last longer with a smoother up and down for more predictable roleplay drinking.

+

TG Proc Changes:

+
    +
  • EDIT: code/datums/mood.dm > /datum/mood/proc/print_mood(mob/user)
  • +
  • EDIT: code/datums/status_effects/debuffs/drunk.dm > /datum/status_effect/inebriated/drunk/on_tick_effects(), /datum/status_effect/inebriated/tick()
  • +
  • EDIT: code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm > /datum/reagent/consumable/ethanol/on_mob_life()
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

LT3

\ No newline at end of file diff --git a/modular_skyrat/modules/alerts.html b/modular_skyrat/modules/alerts.html new file mode 100644 index 0000000000000..8c7346111d90d --- /dev/null +++ b/modular_skyrat/modules/alerts.html @@ -0,0 +1,24 @@ +modular_skyrat/modules/alerts/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/alerts/readme.md

Title: Alerts

+

MODULE ID: ALERTS

+

Description:

+

Adds new alert levels, and some extra details regarding the alerts

+

TG Proc Changes:

+
    +
  • EDIT: code/controllers/subsystem/shuttle.dm > /datum/controller/subsystem/shuttle/proc/canRecall()
  • +
  • EDIT: code/game/machinery/computer/communications.dm > /obj/machinery/computer/communications/Topic(), /obj/machinery/computer/communications/ui_interact()
  • +
  • EDIT: code/modules/mob/dead/new_player/new_player.dm > /mob/dead/new_player/proc/LateChoices()
  • +
  • MOVED: code/modules/security_levels/security_levels.dm > about the entire file
  • +
+

Defines:

+

./code/__DEFINES/misc.dm > moved alert defines to: code/__DEFINES/~skyrat_defines/security_alerts.dm

+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Azarak - Porting +Afya - OG code

\ No newline at end of file diff --git a/modular_skyrat/modules/alerts/code/alert_sound_to_playing.html b/modular_skyrat/modules/alerts/code/alert_sound_to_playing.html new file mode 100644 index 0000000000000..6caaa9a4897fe --- /dev/null +++ b/modular_skyrat/modules/alerts/code/alert_sound_to_playing.html @@ -0,0 +1 @@ +modular_skyrat/modules/alerts/code/alert_sound_to_playing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/alerts/code/alert_sound_to_playing.dm

/proc/alert_sound_to_playingThis is quite franlky the most important proc relating to global sounds, it uses area definition to play sounds depending on your location, and respects the players announcement volume. Generally if you're sending an announcement you want to use priority_announce.
\ No newline at end of file diff --git a/modular_skyrat/modules/alerts/code/security_level_datums.html b/modular_skyrat/modules/alerts/code/security_level_datums.html new file mode 100644 index 0000000000000..b5bae64a5a1f4 --- /dev/null +++ b/modular_skyrat/modules/alerts/code/security_level_datums.html @@ -0,0 +1 @@ +modular_skyrat/modules/alerts/code/security_level_datums.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/alerts/code/security_level_datums.dm

/datum/security_level/violetViolet
/datum/security_level/orangeOrange
/datum/security_level/amberAmber
/datum/security_level/epsilonEpsilon
/datum/security_level/gammaGamma
\ No newline at end of file diff --git a/modular_skyrat/modules/alt_vox/credits.html b/modular_skyrat/modules/alt_vox/credits.html new file mode 100644 index 0000000000000..e0e7e82eab314 --- /dev/null +++ b/modular_skyrat/modules/alt_vox/credits.html @@ -0,0 +1 @@ +modular_skyrat/modules/alt_vox/credits.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/alt_vox/credits.md

Credits to Crowbar Collective for any sound assets; specifically from the free Black Mesa Source mod.

\ No newline at end of file diff --git a/modular_skyrat/modules/alternative_job_titles.html b/modular_skyrat/modules/alternative_job_titles.html new file mode 100644 index 0000000000000..922be9932d8ff --- /dev/null +++ b/modular_skyrat/modules/alternative_job_titles.html @@ -0,0 +1,24 @@ +modular_skyrat/modules/alternative_job_titles/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/alternative_job_titles/readme.md

Title: Alternative Job Titles

+

MODULE ID: ALTERNATIVE_JOB_TITLES

+

Description:

+

Adds functionality to custom job titles, making them show up in manifests, ID's and announcements. +Unfortunately, all 3 of the categories are not set up to be very modular, so this almost entirely consists of TG proc changes.

+

TG Proc Changes:

+
    +
  • ./code/controllers/subsystem/job.dm > /datum/controller/subsystem/job/proc/EquipRank()
  • +
  • ./code/datums/datacore.dm > /datum/datacore/proc/get_manifest(), /datum/datacore/proc/get_manifest_html(), /datum/datacore/proc/manifest_inject()
  • +
  • ./code/modules/admin/verbs/admingame.dm > /client/proc/respawn_character()
  • +
  • ./code/modules/jobs/job_types/_job.dm > /datum/job/proc/announce_job(), /datum/job/proc/announce_head()
  • +
  • ./code/modules/mob/dead/new_player/new_player.dm > /mob/dead/new_player/proc/AttemptLateSpawn()
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • ./tgui/packages/tgui/interfaces/CrewManifest.js
  • +
  • ./tgui/packages/tgui/interfaces/NtosCrewManifest.js
  • +
+

Credits:

+

Tastyfish

\ No newline at end of file diff --git a/modular_skyrat/modules/apc_arcing/code/apc.html b/modular_skyrat/modules/apc_arcing/code/apc.html new file mode 100644 index 0000000000000..65e9604281cc2 --- /dev/null +++ b/modular_skyrat/modules/apc_arcing/code/apc.html @@ -0,0 +1 @@ +modular_skyrat/modules/apc_arcing/code/apc.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/apc_arcing/code/apc.dm

/proc/force_apc_arcingSet all APCs to start (or stop) arcing
\ No newline at end of file diff --git a/modular_skyrat/modules/armaments/code/armament_component.html b/modular_skyrat/modules/armaments/code/armament_component.html new file mode 100644 index 0000000000000..8e24227ea6baa --- /dev/null +++ b/modular_skyrat/modules/armaments/code/armament_component.html @@ -0,0 +1 @@ +modular_skyrat/modules/armaments/code/armament_component.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/armaments/code/armament_component.dm

/datum/component/armamentThis is the component that runs the armaments vendor.
\ No newline at end of file diff --git a/modular_skyrat/modules/armaments/code/armament_entries.html b/modular_skyrat/modules/armaments/code/armament_entries.html new file mode 100644 index 0000000000000..f2b3aa5652704 --- /dev/null +++ b/modular_skyrat/modules/armaments/code/armament_entries.html @@ -0,0 +1 @@ +modular_skyrat/modules/armaments/code/armament_entries.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/armaments/code/armament_entries.dm

/var/SSarmamentsArmament entries
\ No newline at end of file diff --git a/modular_skyrat/modules/armaments/code/armament_station.html b/modular_skyrat/modules/armaments/code/armament_station.html new file mode 100644 index 0000000000000..efaa7d5acf239 --- /dev/null +++ b/modular_skyrat/modules/armaments/code/armament_station.html @@ -0,0 +1 @@ +modular_skyrat/modules/armaments/code/armament_station.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/armaments/code/armament_station.dm

/obj/machinery/armament_stationArmament Station
/obj/item/armament_points_cardArmament points card
\ No newline at end of file diff --git a/modular_skyrat/modules/ashwalkers.html b/modular_skyrat/modules/ashwalkers.html new file mode 100644 index 0000000000000..16985da86a8c7 --- /dev/null +++ b/modular_skyrat/modules/ashwalkers.html @@ -0,0 +1,29 @@ +modular_skyrat/modules/ashwalkers/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/ashwalkers/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/3129 +https://github.com/Skyrat-SS13/Skyrat-tg/pull/7514 +https://github.com/Skyrat-SS13/Skyrat-tg/pull/8122 +https://github.com/Skyrat-SS13/Skyrat-tg/pull/7619

+

Title: Ashwalker Re-Buff

+

MODULE ID: ASHWALKER_BUFF

+

Description:

+

Re-adds Ashwalker NV and Ash Immunity, also adjusts their damage resistances

+

When ashwalkers use regenerating cores on the tendril, it'll stablize the core.

+

When ashwalkers use laterns on the tendril, it'll corrupt them, making them not require a battery.

+

When a non-ashwalker touches the tendril with their bare hands when two ashwalkers are nearby, they will be prompted if they want to turn into an ashwalker.

+

Ashwalkers will now have the ability to change open turfs to basalt (lavaland) by using a shaman staff. +Obtainaing and maintaining it though will be the challenge. +Adds primal tools (surgery and engineering) +Adds some more ashwalker clothing

+

As a way to increase the agrarian life for ashwalkers, the ability to plant on lavaland is being introduced. +This will not be limited to ashies, but will be increased to non-ashies trying to plant

+

TG Proc Changes:

Defines:

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Yawet330 - 3129 - Porting and "refactoring" +Jake Park - 7514 - 7619 - 8122 - Coding +Dragonfruits - 8122 - Sprite

\ No newline at end of file diff --git a/modular_skyrat/modules/ashwalkers/code/species/Ashwalkers.html b/modular_skyrat/modules/ashwalkers/code/species/Ashwalkers.html new file mode 100644 index 0000000000000..9ea4a4f49db0e --- /dev/null +++ b/modular_skyrat/modules/ashwalkers/code/species/Ashwalkers.html @@ -0,0 +1,5 @@ +modular_skyrat/modules/ashwalkers/code/species/Ashwalkers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/ashwalkers/code/species/Ashwalkers.dm

/datum/component/ash_age20 minutes = ash storm immunity +40 minutes = armor +60 minutes = base punch +80 minutes = lavaproof +100 minutes = firebreath
\ No newline at end of file diff --git a/modular_skyrat/modules/assault_operatives/code/assault_operatives.html b/modular_skyrat/modules/assault_operatives/code/assault_operatives.html new file mode 100644 index 0000000000000..85ede53f54dfb --- /dev/null +++ b/modular_skyrat/modules/assault_operatives/code/assault_operatives.html @@ -0,0 +1 @@ +modular_skyrat/modules/assault_operatives/code/assault_operatives.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/assault_operatives/code/assault_operatives.dm

/datum/antagonist/assault_operativeASSAULT OPERATIVE ANTAG DATUM
/datum/team/assault_operativesASSAULT OPERATIVE TEAM DATUM
/datum/job/assault_operativeASSAULT OPERATIVE JOB TYPE
\ No newline at end of file diff --git a/modular_skyrat/modules/assault_operatives/code/goldeneye.html b/modular_skyrat/modules/assault_operatives/code/goldeneye.html new file mode 100644 index 0000000000000..dc09316003375 --- /dev/null +++ b/modular_skyrat/modules/assault_operatives/code/goldeneye.html @@ -0,0 +1 @@ +modular_skyrat/modules/assault_operatives/code/goldeneye.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/assault_operatives/code/goldeneye.dm

/var/SSgoldeneyeGoldenEye defence network
\ No newline at end of file diff --git a/modular_skyrat/modules/assault_operatives/code/interrogator.html b/modular_skyrat/modules/assault_operatives/code/interrogator.html new file mode 100644 index 0000000000000..ffd86680b4a8c --- /dev/null +++ b/modular_skyrat/modules/assault_operatives/code/interrogator.html @@ -0,0 +1 @@ +modular_skyrat/modules/assault_operatives/code/interrogator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/assault_operatives/code/interrogator.dm

/obj/machinery/interrogatorThe interrorgator, a piece of machinery used in assault ops to extract GoldenEye keys from heads of staff.
\ No newline at end of file diff --git a/modular_skyrat/modules/automapper.html b/modular_skyrat/modules/automapper.html new file mode 100644 index 0000000000000..7051f1a824b00 --- /dev/null +++ b/modular_skyrat/modules/automapper.html @@ -0,0 +1,10 @@ +modular_skyrat/modules/automapper/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/automapper/readme.md

Credits

+

Code: [@Gandalf2k15]

+

About

+

This automapper is designed to make mapping far easier for modular maps, it should mean less manual map resets(ideally, never). +It supports two types of automapping, simple area automapper and template automapper.

+

Simple Area Automapper

+

What this will do is check an area for a suitable single tile to spawn an object in. It uses "intelligent" heatmapping to choose a suitable place. +It uses an algorithm to decide where to place a singular item, it will avoid blocking hallways or doors.

+

Template Automapper

+

This automapper is designed to load templates over existing maps using a template file and entry in the config toml.

\ No newline at end of file diff --git a/modular_skyrat/modules/automapper/code/area_spawn_subsystem.html b/modular_skyrat/modules/automapper/code/area_spawn_subsystem.html new file mode 100644 index 0000000000000..36498a1f03342 --- /dev/null +++ b/modular_skyrat/modules/automapper/code/area_spawn_subsystem.html @@ -0,0 +1 @@ +modular_skyrat/modules/automapper/code/area_spawn_subsystem.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/automapper/code/area_spawn_subsystem.dm

/datum/area_spawnArea spawn datums
/datum/area_spawn_overSpawns an atom on any turf that contains specific over atoms.
/datum/admin_verb/test_area_spawnerShow overlay over area of priorities. Wall priority over open priority.
\ No newline at end of file diff --git a/modular_skyrat/modules/automapper/code/automapper_subsystem.html b/modular_skyrat/modules/automapper/code/automapper_subsystem.html new file mode 100644 index 0000000000000..e77ba3dcd9505 --- /dev/null +++ b/modular_skyrat/modules/automapper/code/automapper_subsystem.html @@ -0,0 +1 @@ +modular_skyrat/modules/automapper/code/automapper_subsystem.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/automapper/code/automapper_subsystem.dm

/var/SSautomapperThe AUTOMAPPER
\ No newline at end of file diff --git a/modular_skyrat/modules/autotransfer.html b/modular_skyrat/modules/autotransfer.html new file mode 100644 index 0000000000000..c57662ec1c0e1 --- /dev/null +++ b/modular_skyrat/modules/autotransfer.html @@ -0,0 +1,23 @@ +modular_skyrat/modules/autotransfer/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/autotransfer/readme.md

Title: Autotransfer

+

MODULE ID: AUTOTRANSFER

+

Description:

+

Adds an automatically called vote for the shuttle to come, timed with real time, so no TD.

+

TG Proc Changes:

+
    +
  • code/controllers/subsystems/vote.dm
  • +
  • code/modules/shuttle/emergency.dm
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Azarak - porting

\ No newline at end of file diff --git a/modular_skyrat/modules/autotransfer/code/autotransfer_config.html b/modular_skyrat/modules/autotransfer/code/autotransfer_config.html new file mode 100644 index 0000000000000..2e3a4cddeb322 --- /dev/null +++ b/modular_skyrat/modules/autotransfer/code/autotransfer_config.html @@ -0,0 +1,4 @@ +modular_skyrat/modules/autotransfer/code/autotransfer_config.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/autotransfer/code/autotransfer_config.dm

/datum/config_entry/number/vote_autotransfer_initialLength of time before the first autotransfer vote is called (deciseconds, default 2 hours) +Set to 0 to disable the subsystem altogether.
/datum/config_entry/number/vote_autotransfer_intervallength of time to wait before subsequent autotransfer votes (deciseconds, default 30 minutes)
/datum/config_entry/number/vote_autotransfer_maximummaximum extensions until the round autoends. +Set to 0 to force automatic crew transfer after the 'vote_autotransfer_initial' elapsed. +Set to -1 to disable the maximum extensions cap.
/datum/config_entry/flag/autotransferDetermines if the autotransfer system runs or not.
/datum/config_entry/flag/allow_vote_transferDetermines if the transfer vote can be started by anyone or not.
\ No newline at end of file diff --git a/modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/abductor_ai.html b/modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/abductor_ai.html new file mode 100644 index 0000000000000..843aca3898f95 --- /dev/null +++ b/modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/abductor_ai.html @@ -0,0 +1 @@ +modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/abductor_ai.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/abductor_ai.dm

/datum/ai_controller/basic_controller/abductorMelee
/datum/ai_controller/basic_controller/abductor/rangedRanged
\ No newline at end of file diff --git a/modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/fluff.html b/modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/fluff.html new file mode 100644 index 0000000000000..f422017716c2c --- /dev/null +++ b/modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/fluff.html @@ -0,0 +1 @@ +modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/fluff.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/fluff.dm

/obj/item/paper/fluff/awaymissions/astrumFluff notes
\ No newline at end of file diff --git a/modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/gear.html b/modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/gear.html new file mode 100644 index 0000000000000..f233d6159dacf --- /dev/null +++ b/modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/gear.html @@ -0,0 +1 @@ +modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/gear.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/gear.dm

/obj/item/gun/energy/alien/zetaWeaponry
/obj/item/clothing/suit/armor/abductor/astrumArmour
\ No newline at end of file diff --git a/modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/mob.html b/modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/mob.html new file mode 100644 index 0000000000000..ea589e263aba6 --- /dev/null +++ b/modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/mob.html @@ -0,0 +1 @@ +modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/mob.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/awaymissions_skyrat/mothership_astrum/mob.dm

/mob/living/simple_animal/hostile/megafauna/hierophant/astrumBOSS
\ No newline at end of file diff --git a/modular_skyrat/modules/barsigns.html b/modular_skyrat/modules/barsigns.html new file mode 100644 index 0000000000000..505048ba23b5e --- /dev/null +++ b/modular_skyrat/modules/barsigns.html @@ -0,0 +1,13 @@ +modular_skyrat/modules/barsigns/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/barsigns/readme.md

Title: Bar Signs

+

MODULE ID: barsigns

+

Description:

+

Ports over the large collection of bar signs from /vg/station, and repaths existing barsigns to new file.

+

TG File Changes:

+
    +
  • code\game\objects\structures\barsigns.dm, single edit, tagged.
  • +
+

Credits:

+
    +
  • /vg/station
  • +
  • werewolfboyfriend
  • +
\ No newline at end of file diff --git a/modular_skyrat/modules/better_vox.html b/modular_skyrat/modules/better_vox.html new file mode 100644 index 0000000000000..57f5c20526c88 --- /dev/null +++ b/modular_skyrat/modules/better_vox.html @@ -0,0 +1,10 @@ +modular_skyrat/modules/better_vox/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/better_vox/readme.md

Credits

+

Code: [@Gandalf2k15] +Original Sprites: [TauCeti] +Sprite Modifications: [CandleJaxx]

+

TODO

+

Get all clothing sprites to fit. +Get all bodyparts to fit. +Add the bodypart color selection. +Make the tails work. +Fix the legs not being fully there without a tail.

\ No newline at end of file diff --git a/modular_skyrat/modules/bitrunning/code/virtual_domains/ancient_milsim/virtual_domain.html b/modular_skyrat/modules/bitrunning/code/virtual_domains/ancient_milsim/virtual_domain.html new file mode 100644 index 0000000000000..e00d0a1eb7f40 --- /dev/null +++ b/modular_skyrat/modules/bitrunning/code/virtual_domains/ancient_milsim/virtual_domain.html @@ -0,0 +1 @@ +modular_skyrat/modules/bitrunning/code/virtual_domains/ancient_milsim/virtual_domain.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/bitrunning/code/virtual_domains/ancient_milsim/virtual_domain.dm

/datum/lazy_template/virtual_domain/ancient_milsimModular Map Loader doesnt like subfolders
\ No newline at end of file diff --git a/modular_skyrat/modules/black_mesa/code/fluff.html b/modular_skyrat/modules/black_mesa/code/fluff.html new file mode 100644 index 0000000000000..709241201cdeb --- /dev/null +++ b/modular_skyrat/modules/black_mesa/code/fluff.html @@ -0,0 +1,3 @@ +modular_skyrat/modules/black_mesa/code/fluff.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/black_mesa/code/fluff.dm

/obj/item/tape/ruins/black_mesa/first_easI couldn't do this via radios. I'll do this via tapes. +Various announcements and radio transmissions I've copypasted from the Black Mesa, to make the away mission feel more a u t h e n t i c . +Three EASes for the Vanguard and BMST, three HECU-related ones to tell them they're fucked.
\ No newline at end of file diff --git a/modular_skyrat/modules/black_mesa/code/follow_component.html b/modular_skyrat/modules/black_mesa/code/follow_component.html new file mode 100644 index 0000000000000..c3f8cb8607de7 --- /dev/null +++ b/modular_skyrat/modules/black_mesa/code/follow_component.html @@ -0,0 +1 @@ +modular_skyrat/modules/black_mesa/code/follow_component.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/black_mesa/code/follow_component.dm

/datum/component/followFollow component
\ No newline at end of file diff --git a/modular_skyrat/modules/black_mesa/code/mobs/gordon_freeman.html b/modular_skyrat/modules/black_mesa/code/mobs/gordon_freeman.html new file mode 100644 index 0000000000000..af988538d6592 --- /dev/null +++ b/modular_skyrat/modules/black_mesa/code/mobs/gordon_freeman.html @@ -0,0 +1 @@ +modular_skyrat/modules/black_mesa/code/mobs/gordon_freeman.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/black_mesa/code/mobs/gordon_freeman.dm

/mob/living/simple_animal/hostile/blackmesa/xen/headcrab_zombie/gordon_freemanGordon Freeman - Xen boss
\ No newline at end of file diff --git a/modular_skyrat/modules/black_mesa/code/objects.html b/modular_skyrat/modules/black_mesa/code/objects.html new file mode 100644 index 0000000000000..145522c09f390 --- /dev/null +++ b/modular_skyrat/modules/black_mesa/code/objects.html @@ -0,0 +1 @@ +modular_skyrat/modules/black_mesa/code/objects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/black_mesa/code/objects.dm

/obj/effect/mine/explosive/nriA nerfed down version of a landmine I really should've done a long time ago but only did it now.
\ No newline at end of file diff --git a/modular_skyrat/modules/black_mesa/code/rationpacks.html b/modular_skyrat/modules/black_mesa/code/rationpacks.html new file mode 100644 index 0000000000000..1376d126597ae --- /dev/null +++ b/modular_skyrat/modules/black_mesa/code/rationpacks.html @@ -0,0 +1 @@ +modular_skyrat/modules/black_mesa/code/rationpacks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/black_mesa/code/rationpacks.dm

EDIBLE_PIZZA_LISTHandpicked list of various pizzas and "pizzas" to make sure it's both 'safe' (human-edible) and doesn't spawn the base type like the bomb pizza can.

Define Details

EDIBLE_PIZZA_LIST

Handpicked list of various pizzas and "pizzas" to make sure it's both 'safe' (human-edible) and doesn't spawn the base type like the bomb pizza can.

\ No newline at end of file diff --git a/modular_skyrat/modules/blastwave_outfits.html b/modular_skyrat/modules/blastwave_outfits.html new file mode 100644 index 0000000000000..5cba2bc6e564c --- /dev/null +++ b/modular_skyrat/modules/blastwave_outfits.html @@ -0,0 +1,41 @@ +modular_skyrat/modules/blastwave_outfits/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/blastwave_outfits/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/14165 (initial)

+

Title: GWTB-like Outfit.

+

MODULE ID: N/A

+

Description:

+

Adds "Gone with the Blastwave" webcomic-inspired outfit. Colors are pre-set via reskinning, and it is not GAGsified. +This version does not provide armor values.

+

TG Proc/File Changes:

+
    +
  • N/A
  • +
+ +

Defines:

+
    +
  • N/A
  • +
+ +

Master file additions

+
    +
  • #CHANGE modular_skyrat\master_files\icons\mob\clothing\head.dmi
  • +
  • #CHANGE modular_skyrat\master_files\icons\mob\clothing\mask_muzzled.dmi
  • +
  • #CHANGE modular_skyrat\master_files\icons\mob\clothing\mask.dmi
  • +
  • #CHANGE modular_skyrat\master_files\icons\mob\clothing\suit_digi.dmi
  • +
  • #CHANGE modular_skyrat\master_files\icons\mob\clothing\suit.dmi
  • +
  • #CHANGE modular_skyrat\master_files\icons\mob\clothing\uniform_digi.dmi
  • +
  • #CHANGE modular_skyrat\master_files\icons\mob\clothing\uniform.dmi
  • +
  • #CHANGE modular_skyrat\master_files\icons\obj\clothing\hats.dmi
  • +
  • #CHANGE modular_skyrat\master_files\icons\obj\clothing\masks.dmi
  • +
  • #CHANGE modular_skyrat\master_files\icons\obj\clothing\suits.dmi
  • +
  • #CHANGE modular_skyrat\master_files\icons\obj\clothing\uniforms.dmi
  • +
+ +

Included files that are not contained in this module:

+
    +
  • #CHANGE modular_skyrat\modules\loadouts\loadout_items\loadout_datum_heads.dm
  • +
  • #CHANGE modular_skyrat\modules\loadouts\loadout_items\loadout_datum_suit.dm
  • +
  • #CHANGE modular_skyrat\modules\loadouts\loadout_items\under\loadout_datum_under.dm
  • +
+ +

Credits:

+

Initially used older TG-Station's Detective's Greycoat (blastwave coats are modified versions of it: added colored arm-patches, cuffs and lining), normal helmets (added paint and removed in-built goggles), officer's cap (added colored pin), utility uniform (added color-collar and shoulders);

+

Gone with the Blastwave webcomic by Kimmo Lemetti (aka Morr) - inspiration.

\ No newline at end of file diff --git a/modular_skyrat/modules/blueshield.html b/modular_skyrat/modules/blueshield.html new file mode 100644 index 0000000000000..349d687a8e287 --- /dev/null +++ b/modular_skyrat/modules/blueshield.html @@ -0,0 +1,27 @@ +modular_skyrat/modules/blueshield/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/blueshield/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/127

+

Title: Blueshield

+

MODULE ID: BLUESHIELD

+

Description:

+

Adds the blueshield job to the game. It does not however add the blueshield office to the map. This includes all the blueshields items and job descriptors.

+

TG Proc Changes:

+
    +
  • code/modules/jobs/jobs.dm > GLOBAL_LIST_INIT(security_positions, list()
  • +
  • code/modules/jobs/access.dm > /proc/get_all_accesses()
  • +
+

Defines:

+
    +
  • #define JOB_DISPLAY_ORDER_BLUESHIELD 34
  • +
  • #define ACCESS_BLUESHIELD 71
  • +
+

Master file additions

+
    +
  • ./modular_skyrat/master_files/icons/mob/hud.dmi #NEW
  • +
  • ./modular_skyrat/master_files/icons/clothing/hands.dmi #NEW
  • +
  • ./modular_skyrat/master_files/icons/obj/clothing/gloves.dmi #NEW
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Gandalf2k15 - Porting

\ No newline at end of file diff --git a/modular_skyrat/modules/bluespace_miner.html b/modular_skyrat/modules/bluespace_miner.html new file mode 100644 index 0000000000000..f95d940debb7a --- /dev/null +++ b/modular_skyrat/modules/bluespace_miner.html @@ -0,0 +1,21 @@ +modular_skyrat/modules/bluespace_miner/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Title: Bluespace Miner

MODULE ID: BS_MINER

+

Description

+

Adds the bluespace miner, a machine that will, through the power of bluespace, produce materials (to a connected ore silo)

+

TG Proc Changes

+
    +
  • N/A
  • +
+

Defines

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module

+
    +
  • N/A
  • +
+

Credits

+

Jake Park

\ No newline at end of file diff --git a/modular_skyrat/modules/bodyparts/code/_mutant_bodyparts.html b/modular_skyrat/modules/bodyparts/code/_mutant_bodyparts.html new file mode 100644 index 0000000000000..a1c6a028d95dc --- /dev/null +++ b/modular_skyrat/modules/bodyparts/code/_mutant_bodyparts.html @@ -0,0 +1 @@ +modular_skyrat/modules/bodyparts/code/_mutant_bodyparts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/bodyparts/code/_mutant_bodyparts.dm

/obj/item/bodypart/head/mutantGeneral mutant bodyparts. Used in most mutant species.
\ No newline at end of file diff --git a/modular_skyrat/modules/bongs/code/bong.html b/modular_skyrat/modules/bongs/code/bong.html new file mode 100644 index 0000000000000..d18f18757f6ed --- /dev/null +++ b/modular_skyrat/modules/bongs/code/bong.html @@ -0,0 +1 @@ +modular_skyrat/modules/bongs/code/bong.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/bongs/code/bong.dm

/obj/effect/abstract/fake_steamFake steam effect
\ No newline at end of file diff --git a/modular_skyrat/modules/borg_buffs.html b/modular_skyrat/modules/borg_buffs.html new file mode 100644 index 0000000000000..2bae70ea30267 --- /dev/null +++ b/modular_skyrat/modules/borg_buffs.html @@ -0,0 +1,23 @@ +modular_skyrat/modules/borg_buffs/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/borg_buffs/readme.md

Title: Borg Buffs

+

MODULE ID: BORG_BUFF

+

Description:

+

Splits service borg shaker into multiple; adds a few more reagents to the shakers.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Jake Park - Shakers: Code and Sprite +Guidesu - Cooking Multitool: Code and Sprite

\ No newline at end of file diff --git a/modular_skyrat/modules/borgs.html b/modular_skyrat/modules/borgs.html new file mode 100644 index 0000000000000..0ba0e8647cf8a --- /dev/null +++ b/modular_skyrat/modules/borgs.html @@ -0,0 +1,28 @@ +modular_skyrat/modules/borgs/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/borgs/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/127

+

Title: borgs

+

MODULE ID: BORGS

+

Description:

+

Condenses modular borg skins, items, upgrades and buffs to one folder for sanity's sake

+

TG Proc Changes:

+
    +
  • APPEND: modular_skyrat/modules/altborgs > modular_skyrat/modules/borgs
  • +
  • /code/modules/mob/living/silicon/robot/robot_modules.dm
  • +
  • /code/modules/research/techweb/all_nodes.dm
  • +
+

Defines:

+
    +
  • /code/modules/research/techweb/all_nodes.dm > /datum/techweb_node/cyborg_upg_util
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Gandalf2k15 - Porting & refactoring +Azarak - porting +DuffCreeper - Code, Spriting +Zergspower - Refactoring

\ No newline at end of file diff --git a/modular_skyrat/modules/borgs/code/robot_items.html b/modular_skyrat/modules/borgs/code/robot_items.html new file mode 100644 index 0000000000000..3b57dbccc0238 --- /dev/null +++ b/modular_skyrat/modules/borgs/code/robot_items.html @@ -0,0 +1 @@ +modular_skyrat/modules/borgs/code/robot_items.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/borgs/code/robot_items.dm

CYBORG_FONTUse this file to add STANDARD ITEMS to borgs, the upgrade items will go in the modular robot_upgrade.dm
/obj/item/borg/hydraulic_clampTHE CLAMPS!!
/obj/item/paperplane/syndicate/hardlightThe fabled paper plane crossbow and its hardlight paper planes.
/datum/robot_energy_storage/package_wrapHolders for the package wrap and the wrapping paper synthetizers.
/obj/item/crowbar/cyborg/powerEngineering Modules
/obj/item/borg_shapeshifterShapeshifter
/obj/item/borg/hydraulic_clamp/betterBetter Clamp

Define Details

CYBORG_FONT

Use this file to add STANDARD ITEMS to borgs, the upgrade items will go in the modular robot_upgrade.dm

\ No newline at end of file diff --git a/modular_skyrat/modules/borgs/code/robot_upgrade.html b/modular_skyrat/modules/borgs/code/robot_upgrade.html new file mode 100644 index 0000000000000..ecadef8211c33 --- /dev/null +++ b/modular_skyrat/modules/borgs/code/robot_upgrade.html @@ -0,0 +1,2 @@ +modular_skyrat/modules/borgs/code/robot_upgrade.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/borgs/code/robot_upgrade.dm

/obj/item/borg/upgrade/surgerytoolsUse this file to add UPGRADES to borgs, the standard items will go in the modular robot_items.dm +Advanced Surgery Tools
ENGINEERING_CYBORG_CHARGE_PER_STACKAdvanced Materials
/obj/item/borg/upgrade/welderWelder
/obj/item/borg/upgrade/borg_shapeshifterShapeShifter
/obj/item/borg/upgrade/affectionmoduleQuadborg time
/obj/item/borg/upgrade/transform/syndicatejackSyndijack
/obj/item/borg/upgrade/dominatrixmoduleDominatrix time

Define Details

ENGINEERING_CYBORG_CHARGE_PER_STACK

Advanced Materials

\ No newline at end of file diff --git a/modular_skyrat/modules/borgs/icons.html b/modular_skyrat/modules/borgs/icons.html new file mode 100644 index 0000000000000..0c1fe18e26293 --- /dev/null +++ b/modular_skyrat/modules/borgs/icons.html @@ -0,0 +1,23 @@ +modular_skyrat/modules/borgs/icons/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/borgs/icons/readme.md

Current version: v0.8

+

Credits:

+

TheOOZ (https://github.com/theOOZ), AKA ghostsheep (https://twitter.com/_ghostsheep) +MekaNIKA skinline

+
    +
  • Peacekeeper
  • +
  • Service
  • +
  • Service (Alt)
  • +
  • Janitor
  • +
  • Medical
  • +
  • Cargo-technician
  • +
  • Miner
  • +
  • Syndicate
  • +
  • Ninja
  • +
+

Terms of use:

+

Tallborg and its MekaNIKA skinline falls under the same licensing as the TG-13 repository.

+

If you are porting this content, it is the personal request of the artist that:

+
    +
  • This readme, and the credit icon_state within the .dmi's remain present besides the skinline art.
  • +
  • This skinline is ported in full, even if your codebase has no use for a certain job-module.
  • +
+

This content was made for free.

\ No newline at end of file diff --git a/modular_skyrat/modules/bsa_overhaul/code/bsa_cannon.html b/modular_skyrat/modules/bsa_overhaul/code/bsa_cannon.html new file mode 100644 index 0000000000000..a31823cfddf26 --- /dev/null +++ b/modular_skyrat/modules/bsa_overhaul/code/bsa_cannon.html @@ -0,0 +1 @@ +modular_skyrat/modules/bsa_overhaul/code/bsa_cannon.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/bsa_overhaul/code/bsa_cannon.dm

/obj/machinery/bsaBSA parts
/obj/machinery/bsa/fullThe full BSA cannon
\ No newline at end of file diff --git a/modular_skyrat/modules/bsa_overhaul/code/bsa_computer.html b/modular_skyrat/modules/bsa_overhaul/code/bsa_computer.html new file mode 100644 index 0000000000000..c2ecab7192db5 --- /dev/null +++ b/modular_skyrat/modules/bsa_overhaul/code/bsa_computer.html @@ -0,0 +1 @@ +modular_skyrat/modules/bsa_overhaul/code/bsa_computer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/bsa_overhaul/code/bsa_computer.dm

/obj/machinery/computer/bsa_controlThe control computer
\ No newline at end of file diff --git a/modular_skyrat/modules/bsa_overhaul/code/station_goal.html b/modular_skyrat/modules/bsa_overhaul/code/station_goal.html new file mode 100644 index 0000000000000..93d9c1075b149 --- /dev/null +++ b/modular_skyrat/modules/bsa_overhaul/code/station_goal.html @@ -0,0 +1 @@ +modular_skyrat/modules/bsa_overhaul/code/station_goal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/bsa_overhaul/code/station_goal.dm

/datum/station_goal/bluespace_cannonBluespace artillery goal
\ No newline at end of file diff --git a/modular_skyrat/modules/cargo.html b/modular_skyrat/modules/cargo.html new file mode 100644 index 0000000000000..2689ef57d8f4a --- /dev/null +++ b/modular_skyrat/modules/cargo.html @@ -0,0 +1,24 @@ +modular_skyrat/modules/cargo/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/cargo/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/2003

+

Title: Adds a bunch of crates to cargo.

+

MODULE ID: N/A

+

Description:

+

Adds more stuff to cargo.

+

TG Proc/File Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • modular_skyrat/master_files/code/modules/cargo/packs/security.dm: var/special
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Porting some of my stuff from the old base. - Owai-Seek +Citadel Station, and Ghommie, for some of the packs that aren't mine.

\ No newline at end of file diff --git a/modular_skyrat/modules/cargo/code/export_gate.html b/modular_skyrat/modules/cargo/code/export_gate.html new file mode 100644 index 0000000000000..83fe995bcd352 --- /dev/null +++ b/modular_skyrat/modules/cargo/code/export_gate.html @@ -0,0 +1 @@ +modular_skyrat/modules/cargo/code/export_gate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/cargo/code/export_gate.dm

/obj/item/paper/fluff/export_gateSmall explanation for engineering on how to set-up the radioactive nebula shielding
\ No newline at end of file diff --git a/modular_skyrat/modules/cargo/code/packs.html b/modular_skyrat/modules/cargo/code/packs.html new file mode 100644 index 0000000000000..856a1af9c9e49 --- /dev/null +++ b/modular_skyrat/modules/cargo/code/packs.html @@ -0,0 +1 @@ +modular_skyrat/modules/cargo/code/packs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/cargo/code/packs.dm

/datum/supply_pack/critter/doublecrabCost of the crate. DO NOT GO ANY LOWER THAN X1.4 the "CARGO_CRATE_VALUE" value if using regular crates, or infinite profit will be possible!
\ No newline at end of file diff --git a/modular_skyrat/modules/cargo_teleporter.html b/modular_skyrat/modules/cargo_teleporter.html new file mode 100644 index 0000000000000..9eb69068ac191 --- /dev/null +++ b/modular_skyrat/modules/cargo_teleporter.html @@ -0,0 +1,6 @@ +modular_skyrat/modules/cargo_teleporter/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/cargo_teleporter/readme.md

Title: Cargo Teleporter

+

MODULE ID: CARGO_TELE

+

Description:

+

An item that can teleport items to a specified location marked by the items. It can be upgraded to do various additional things

+

TG Proc Changes:

Defines:

Master file additions

Included files that are not contained in this module:

Credits:

+

Jake Park

\ No newline at end of file diff --git a/modular_skyrat/modules/carriers/code/carrier_component.html b/modular_skyrat/modules/carriers/code/carrier_component.html new file mode 100644 index 0000000000000..5c752ff70b641 --- /dev/null +++ b/modular_skyrat/modules/carriers/code/carrier_component.html @@ -0,0 +1 @@ +modular_skyrat/modules/carriers/code/carrier_component.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/carriers/code/carrier_component.dm

/datum/component/carrierCarrier Component
/datum/carrier_roomcarrier Room
\ No newline at end of file diff --git a/modular_skyrat/modules/carriers/code/carrier_user_component.html b/modular_skyrat/modules/carriers/code/carrier_user_component.html new file mode 100644 index 0000000000000..b4e03e50996f7 --- /dev/null +++ b/modular_skyrat/modules/carriers/code/carrier_user_component.html @@ -0,0 +1 @@ +modular_skyrat/modules/carriers/code/carrier_user_component.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/carriers/code/carrier_user_component.dm

/datum/component/carrier_userThe component given to carrier inhabitants
\ No newline at end of file diff --git a/modular_skyrat/modules/cellguns.html b/modular_skyrat/modules/cellguns.html new file mode 100644 index 0000000000000..aaee58aecd63c --- /dev/null +++ b/modular_skyrat/modules/cellguns.html @@ -0,0 +1,17 @@ +modular_skyrat/modules/cellguns/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/cellguns/readme.md

Title: Cell Guns

+

MODULE ID: cellguns

+

Description:

+

Contains the code for cellguns and mediguns. If you are making any cellguns, please put them inside of this folder!

+

TG Proc Changes:

+
    +
  • CMO Medigun kit has been added to the CMO locker.
  • +
  • Various changes have been made to the master research files to include Medicells and Medigun Upgrades.
  • +
+

Defines:

+
    +
  • #define UPGRADED_MEDICELL_PASSFLAGS PASSTABLE | PASSGLASS | PASSGRILLE
  • +
  • #define MINIMUM_TEMP_DIFFERENCE 25
  • +
  • #define TEMP_PER_SHOT 30
  • +
+

Master file additions

Included files that are not contained in this module:

Credits:

+

softcerv

\ No newline at end of file diff --git a/modular_skyrat/modules/cellguns/code/cellguns.html b/modular_skyrat/modules/cellguns/code/cellguns.html new file mode 100644 index 0000000000000..645364b27a0fe --- /dev/null +++ b/modular_skyrat/modules/cellguns/code/cellguns.html @@ -0,0 +1 @@ +modular_skyrat/modules/cellguns/code/cellguns.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/cellguns/code/cellguns.dm

/obj/item/gun/energy/cell_loaded/alltypesA cellgun used for debug, it is able to use any weaponcell.
\ No newline at end of file diff --git a/modular_skyrat/modules/cellguns/code/medigun_cells.html b/modular_skyrat/modules/cellguns/code/medigun_cells.html new file mode 100644 index 0000000000000..3e1962d5c8e68 --- /dev/null +++ b/modular_skyrat/modules/cellguns/code/medigun_cells.html @@ -0,0 +1 @@ +modular_skyrat/modules/cellguns/code/medigun_cells.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/cellguns/code/medigun_cells.dm

/datum/component/medigun_relocationUsed to handle teleporting if there is a grace period
\ No newline at end of file diff --git a/modular_skyrat/modules/chadian/code/chadian.html b/modular_skyrat/modules/chadian/code/chadian.html new file mode 100644 index 0000000000000..60d43ac8007a4 --- /dev/null +++ b/modular_skyrat/modules/chadian/code/chadian.html @@ -0,0 +1 @@ +modular_skyrat/modules/chadian/code/chadian.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/chadian/code/chadian.dm

/datum/ai_controller/basic_controller/dog/corgi/chadianAI controller that adds chad ian emotes
\ No newline at end of file diff --git a/modular_skyrat/modules/chat_colors/code/chat_color.html b/modular_skyrat/modules/chat_colors/code/chat_color.html new file mode 100644 index 0000000000000..60ef568829640 --- /dev/null +++ b/modular_skyrat/modules/chat_colors/code/chat_color.html @@ -0,0 +1,3 @@ +modular_skyrat/modules/chat_colors/code/chat_color.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/chat_colors/code/chat_color.dm

/proc/process_chat_colorConverts a given color to comply within a smaller subset of colors to be used in runechat. +If a color is outside the min/max saturation or lum, it will be set at the nearest +value that passes validation.
\ No newline at end of file diff --git a/modular_skyrat/modules/clock_cult/code/actions/whirring_convergence.html b/modular_skyrat/modules/clock_cult/code/actions/whirring_convergence.html new file mode 100644 index 0000000000000..2cb608b09c716 --- /dev/null +++ b/modular_skyrat/modules/clock_cult/code/actions/whirring_convergence.html @@ -0,0 +1 @@ +modular_skyrat/modules/clock_cult/code/actions/whirring_convergence.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/clock_cult/code/actions/whirring_convergence.dm

/proc/send_clock_messageSend sent_message to all other clock cultists and ghosts from the user
\ No newline at end of file diff --git a/modular_skyrat/modules/clock_cult/code/components/brass_spreader.html b/modular_skyrat/modules/clock_cult/code/components/brass_spreader.html new file mode 100644 index 0000000000000..63d81804f4634 --- /dev/null +++ b/modular_skyrat/modules/clock_cult/code/components/brass_spreader.html @@ -0,0 +1 @@ +modular_skyrat/modules/clock_cult/code/components/brass_spreader.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/clock_cult/code/components/brass_spreader.dm

/datum/component/brass_spreaderA component that spreads brass to a tile in [range] every [cooldown] seconds, converting everything on it into brass as well.
\ No newline at end of file diff --git a/modular_skyrat/modules/clock_cult/code/globals.html b/modular_skyrat/modules/clock_cult/code/globals.html new file mode 100644 index 0000000000000..0c174e57b6867 --- /dev/null +++ b/modular_skyrat/modules/clock_cult/code/globals.html @@ -0,0 +1 @@ +modular_skyrat/modules/clock_cult/code/globals.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/clock_cult/code/globals.dm

/proc/setup_clockwork_researchReturns a list of every initialized clockwork research datum
\ No newline at end of file diff --git a/modular_skyrat/modules/clock_cult/code/language.html b/modular_skyrat/modules/clock_cult/code/language.html new file mode 100644 index 0000000000000..f4ace1f826320 --- /dev/null +++ b/modular_skyrat/modules/clock_cult/code/language.html @@ -0,0 +1 @@ +modular_skyrat/modules/clock_cult/code/language.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/clock_cult/code/language.dm

/proc/text2ratvarTakes english and applies ratvarian styling rules (and rot13) to it.
/proc/ratvar2textReverts ravarian styling and rot13 in text.
/proc/clockwork_sayCauses the mob or movable in question to speak a message; it assumes that the message is already translated to ratvar speech using text2ratvar()
\ No newline at end of file diff --git a/modular_skyrat/modules/clock_cult/code/outpost_of_cogs.html b/modular_skyrat/modules/clock_cult/code/outpost_of_cogs.html new file mode 100644 index 0000000000000..74a585e051934 --- /dev/null +++ b/modular_skyrat/modules/clock_cult/code/outpost_of_cogs.html @@ -0,0 +1 @@ +modular_skyrat/modules/clock_cult/code/outpost_of_cogs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/clock_cult/code/outpost_of_cogs.dm

/proc/spawn_reebeSpawn reebe with the appropriate fanfare after sacrificing a blood cultist
/proc/reebe_station_warningTells the station that there's a clockie portal, along with making it usable by all
\ No newline at end of file diff --git a/modular_skyrat/modules/clock_cult/code/scriptures/_scripture.html b/modular_skyrat/modules/clock_cult/code/scriptures/_scripture.html new file mode 100644 index 0000000000000..960f7804c9297 --- /dev/null +++ b/modular_skyrat/modules/clock_cult/code/scriptures/_scripture.html @@ -0,0 +1 @@ +modular_skyrat/modules/clock_cult/code/scriptures/_scripture.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/clock_cult/code/scriptures/_scripture.dm

/proc/generate_clockcult_scripturesGenerate all scriptures in a global assoc of name:ref. Only needs to be done once
\ No newline at end of file diff --git a/modular_skyrat/modules/clock_cult/code/structures/_structure.html b/modular_skyrat/modules/clock_cult/code/structures/_structure.html new file mode 100644 index 0000000000000..2aa774bc70954 --- /dev/null +++ b/modular_skyrat/modules/clock_cult/code/structures/_structure.html @@ -0,0 +1 @@ +modular_skyrat/modules/clock_cult/code/structures/_structure.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/clock_cult/code/structures/_structure.dm

/obj/structure/destructible/clockworkThe base clockwork structure. Can have an alternate desc and will show up in the list of clockwork objects.
\ No newline at end of file diff --git a/modular_skyrat/modules/cme.html b/modular_skyrat/modules/cme.html new file mode 100644 index 0000000000000..49aa932b6f2e8 --- /dev/null +++ b/modular_skyrat/modules/cme.html @@ -0,0 +1,13 @@ +modular_skyrat/modules/cme/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/cme/readme.md

Title: Coronal Mass Ejection Event

+

MODULE ID: CME

+

Description:

+

Adds in a new event called CME, an EMP based event that spawns random EMP's across the station.

+

TG Proc Changes:

+

N/A

+

Defines:

+

N/A

+

Included files:

+

N/A

+

Credits:

+

Gandalf2k15 - OG +CME sound effect - Faster Than Light(FTL)

\ No newline at end of file diff --git a/modular_skyrat/modules/colony_fabricator/code/appliances/co2_cracker.html b/modular_skyrat/modules/colony_fabricator/code/appliances/co2_cracker.html new file mode 100644 index 0000000000000..b958779220395 --- /dev/null +++ b/modular_skyrat/modules/colony_fabricator/code/appliances/co2_cracker.html @@ -0,0 +1 @@ +modular_skyrat/modules/colony_fabricator/code/appliances/co2_cracker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/colony_fabricator/code/appliances/co2_cracker.dm

/proc/cracker_reactions_listGlobal proc to build up the list of co2 cracker reactions
\ No newline at end of file diff --git a/modular_skyrat/modules/colony_fabricator/code/design_datums/appliances.html b/modular_skyrat/modules/colony_fabricator/code/design_datums/appliances.html new file mode 100644 index 0000000000000..759d62c57a423 --- /dev/null +++ b/modular_skyrat/modules/colony_fabricator/code/design_datums/appliances.html @@ -0,0 +1 @@ +modular_skyrat/modules/colony_fabricator/code/design_datums/appliances.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/colony_fabricator/code/design_datums/appliances.dm

/datum/design/wall_mounted_space_heaterSpace heater, but it mounts on walls
\ No newline at end of file diff --git a/modular_skyrat/modules/colony_fabricator/code/repacking_element.html b/modular_skyrat/modules/colony_fabricator/code/repacking_element.html new file mode 100644 index 0000000000000..f82b1cd021efd --- /dev/null +++ b/modular_skyrat/modules/colony_fabricator/code/repacking_element.html @@ -0,0 +1 @@ +modular_skyrat/modules/colony_fabricator/code/repacking_element.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/colony_fabricator/code/repacking_element.dm

/datum/element/repackableAn element that allows objects to be right clicked and turned into another item after a delay
\ No newline at end of file diff --git a/modular_skyrat/modules/colony_fabricator/sound/attributions.html b/modular_skyrat/modules/colony_fabricator/sound/attributions.html new file mode 100644 index 0000000000000..1efd97f61cac4 --- /dev/null +++ b/modular_skyrat/modules/colony_fabricator/sound/attributions.html @@ -0,0 +1,17 @@ +modular_skyrat/modules/colony_fabricator/sound/attributions.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/colony_fabricator/sound/attributions.txt

The following sounds have been recorded, edited and added by Paxilmaniac:
+
+modular_nova/modules/colony_fabricator/sound/arc_furnace/arc_furnace_mid_(1 - 4).wav
+modular_nova/modules/colony_fabricator/sound/fabricator/fabricator_mid_(1 - 4).wav
+modular_nova/modules/colony_fabricator/sound/fabricator/fabricator_end.wav
+modular_nova/modules/colony_fabricator/sound/fabricator/fabricator_start.wav
+
+The following sounds are from https://pixabay.com/sound-effects/wall-air-conditioner-43901/
+
+modular_nova/modules/colony_fabricator/sound/conditioner/conditioner_(1 - 4).wav
+
+The following sounds are from https://pixabay.com/sound-effects/welder-3-54547/
+
+modular_nova/modules/colony_fabricator/sound/arc_welder/arc_welder.ogg
+
+The sounds at modular_skyrat/modules/colony_fabriactor_event_code/sound/manual_door are from https://pixabay.com/sound-effects/schlonk-107321/
+
\ No newline at end of file diff --git a/modular_skyrat/modules/company_imports/code.html b/modular_skyrat/modules/company_imports/code.html new file mode 100644 index 0000000000000..94451d8ca43cb --- /dev/null +++ b/modular_skyrat/modules/company_imports/code.html @@ -0,0 +1,20 @@ +modular_skyrat/modules/company_imports/code/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/company_imports/code/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/

+

<Title Here>

+

Module ID:

+

Description:

TG Proc/File Changes:

+
    +
  • N/A
  • +
+

Modular Overrides:

+
    +
  • modular_skyrat/master_files/code/modules/cargo/orderconsole.dm: proc/ui_act
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

\ No newline at end of file diff --git a/modular_skyrat/modules/company_imports/code/armament_datums/kahraman_industries.html b/modular_skyrat/modules/company_imports/code/armament_datums/kahraman_industries.html new file mode 100644 index 0000000000000..319fb62d0bab7 --- /dev/null +++ b/modular_skyrat/modules/company_imports/code/armament_datums/kahraman_industries.html @@ -0,0 +1 @@ +modular_skyrat/modules/company_imports/code/armament_datums/kahraman_industries.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/company_imports/code/armament_datums/kahraman_industries.dm

/datum/armament_entry/company_import/kahraman/machineryKahraman-made machines
\ No newline at end of file diff --git a/modular_skyrat/modules/connecting_computer.html b/modular_skyrat/modules/connecting_computer.html new file mode 100644 index 0000000000000..23d6f027e05cd --- /dev/null +++ b/modular_skyrat/modules/connecting_computer.html @@ -0,0 +1,12 @@ +modular_skyrat/modules/connecting_computer/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/connecting_computer/readme.md

Title: Connecting Computer

+

MODULE ID: CONNECTING_COMPUTER

+

Description:

+

Changing icons and some small procs to allow computers to connect with one another.

+

TG Proc Changes:

+

N/A

+

Defines:

+

N/A

+

Included files:

+

N/A

+

Credits:

+

Jake Park

\ No newline at end of file diff --git a/modular_skyrat/modules/connecting_computer/code/connectable_component.html b/modular_skyrat/modules/connecting_computer/code/connectable_component.html new file mode 100644 index 0000000000000..347d5d256aa90 --- /dev/null +++ b/modular_skyrat/modules/connecting_computer/code/connectable_component.html @@ -0,0 +1 @@ +modular_skyrat/modules/connecting_computer/code/connectable_component.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/connecting_computer/code/connectable_component.dm

/datum/component/connectable_computerIf attached to a machine, adds the connectable computer overlays and smooths to other computers.
\ No newline at end of file diff --git a/modular_skyrat/modules/container_emotes.html b/modular_skyrat/modules/container_emotes.html new file mode 100644 index 0000000000000..f5cae8e49b83f --- /dev/null +++ b/modular_skyrat/modules/container_emotes.html @@ -0,0 +1,25 @@ +modular_skyrat/modules/container_emotes/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/container_emotes/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/10106

+

Title: Allows emotes to be done on mob containers

+

MODULE ID: container_emotes

+

Description:

+

Allows mobs within certain containers (e.g. mechs) to emote USING those containers with a seperate emote.

+

TG Proc/File Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+
    +
  • Niko#7526
  • +
\ No newline at end of file diff --git a/modular_skyrat/modules/contractor/code/items/modsuit/modules.html b/modular_skyrat/modules/contractor/code/items/modsuit/modules.html new file mode 100644 index 0000000000000..55418f4735bf0 --- /dev/null +++ b/modular_skyrat/modules/contractor/code/items/modsuit/modules.html @@ -0,0 +1 @@ +modular_skyrat/modules/contractor/code/items/modsuit/modules.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/contractor/code/items/modsuit/modules.dm

/obj/item/mod/module/springlock/contractor/no_complexityThis exists for the adminbus contractor modsuit. Do not use otherwise
\ No newline at end of file diff --git a/modular_skyrat/modules/conveyor_sorter.html b/modular_skyrat/modules/conveyor_sorter.html new file mode 100644 index 0000000000000..28a7b820a7165 --- /dev/null +++ b/modular_skyrat/modules/conveyor_sorter.html @@ -0,0 +1,12 @@ +modular_skyrat/modules/conveyor_sorter/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/conveyor_sorter/readme.md

Title: Conveyor Sorter

+

MODULE ID: CONVEYOR_SORT

+

Description:

+

A machine that will sort items that cross over it. An item is used to obtain a list that can be inserted into the machine

+

TG Proc Changes:

+

N/A

+

Defines:

+

N/A

+

Included files:

+

N/A

+

Credits:

+

Jake Park

\ No newline at end of file diff --git a/modular_skyrat/modules/cortical_borer.html b/modular_skyrat/modules/cortical_borer.html new file mode 100644 index 0000000000000..6954c314fbbef --- /dev/null +++ b/modular_skyrat/modules/cortical_borer.html @@ -0,0 +1,13 @@ +modular_skyrat/modules/cortical_borer/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/cortical_borer/readme.md

Title: Cortical Borer

+

MODULE ID: CORT_BORER

+

Description:

+

Adds the Cortical Borer.

+

TG Proc Changes:

+

N/A

+

Defines:

+

N/A

+

Included files:

+

N/A

+

Credits:

+

Jake Park - Code +/vg/station - Partial Icons

\ No newline at end of file diff --git a/modular_skyrat/modules/cortical_borer/code/cortical_borer.html b/modular_skyrat/modules/cortical_borer/code/cortical_borer.html new file mode 100644 index 0000000000000..a4fb9fe065c71 --- /dev/null +++ b/modular_skyrat/modules/cortical_borer/code/cortical_borer.html @@ -0,0 +1 @@ +modular_skyrat/modules/cortical_borer/code/cortical_borer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/cortical_borer/code/cortical_borer.dm

BODYTEMP_DIVISORThis divisor controls how fast body temperature changes to match the environment

Define Details

BODYTEMP_DIVISOR

This divisor controls how fast body temperature changes to match the environment

\ No newline at end of file diff --git a/modular_skyrat/modules/cryosleep.html b/modular_skyrat/modules/cryosleep.html new file mode 100644 index 0000000000000..a9a96ebd13c99 --- /dev/null +++ b/modular_skyrat/modules/cryosleep.html @@ -0,0 +1,14 @@ +modular_skyrat/modules/cryosleep/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/cryosleep/readme.md

Title: Cryosleep

+

MODULE ID: CRYOSLEEP

+

Description:

+

Adds in a green sleeper-like cryosleep machine, to allow people who wish to stop playing the game to exit with an IC way.

+

TG Proc Changes:

+
    +
  • ADDITION: /code/game/machinery/announcement_system.dm > /obj/machinery/announcement_system/proc/announce()
  • +
+

Defines:

+

N/A

+

Included files:

+

N/A

+

Credits:

+

Azarak - Porting/refactoring

\ No newline at end of file diff --git a/modular_skyrat/modules/cryosleep/code/cryopod.html b/modular_skyrat/modules/cryosleep/code/cryopod.html new file mode 100644 index 0000000000000..313b681f729cd --- /dev/null +++ b/modular_skyrat/modules/cryosleep/code/cryopod.html @@ -0,0 +1 @@ +modular_skyrat/modules/cryosleep/code/cryopod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/cryosleep/code/cryopod.dm

/obj/machinery/cryopod/prisonSpecial wall mounted cryopod for the prison, making it easier to autospawn.
\ No newline at end of file diff --git a/modular_skyrat/modules/customization.html b/modular_skyrat/modules/customization.html new file mode 100644 index 0000000000000..5063c455b754e --- /dev/null +++ b/modular_skyrat/modules/customization.html @@ -0,0 +1,72 @@ +modular_skyrat/modules/customization/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/readme.md

Title: Customization

+

MODULE ID: CUSTOMIZATION

+

Description:

+

IF YOU WANT TO ADD AN EXTRA FEATURE TO SOMEONES DNA LOOK AT "code/__DEFINES/~skyrat_defines/DNA.dm"

+

Re-writes how mutant bodyparts exist and how they're handled. Adds in a per limb body marking system. Adds in loadout, with lots of clothing ported over. Adds in all the missing species. Adds in flavor text and OOC prefs. Adds in special rendering cases for digitigrades, taurs, snouts, voxes etc. Adds in changeable PDA ringtone message.

+

TG Proc Changes:

+

./code/__HELPERS/global_lists.dm > /proc/make_datum_references_lists() +./code/__HELPERS/mobs.dm > /proc/random_features() +./code/controllers/subsystem/job.dm > /datum/controller/subsystem/job/proc/EquipRank() +./code/datums/dna.dm > /datum/dna/proc/initialize_dna() , /mob/living/carbon/set_species() +./code/modules/admin/create_mob.dm > /proc/randomize_human() +./code/modules/client/preferences.dm > ALMOST THE ENTIRETY OF THE FILE +./code/modules/client/preferences_savefile.dm > ONCE AGAIN, THE ENTIRE FILE +./code/modules/mob/dead/new_player/preferences_setup.dm > /datum/preferences/proc/random_character(), /datum/preferences/proc/random_species(), /datum/preferences/proc/update_preview_icon() +./code/modules/mob/living/carbon/carbon_update_icons.dm > /mob/living/carbon/update_inv_wear_mask(), /mob/living/carbon/update_inv_head(), /mob/living/carbon/proc/update_body_parts(), /mob/living/carbon/proc/generate_icon_render_key() +./code/modules/mob/living/carbon/human/emote.dm > /datum/emote/living/carbon/human/wag/run_emote(), /datum/emote/living/carbon/human/wag/can_run_emote() +./code/modules/mob/living/carbon/human/examine.dm > /mob/living/carbon/human/examine() +./code/modules/mob/living/carbon/human/human_update_icons.dm > /mob/living/carbon/human/update_inv_w_uniform(), /mob/living/carbon/human/update_inv_glasses(), /mob/living/carbon/human/update_inv_shoes(), /mob/living/carbon/human/update_inv_wear_suit(), /obj/item/proc/build_worn_icon(), /mob/living/carbon/human/generate_icon_render_key() +./code/modules/mob/living/carbon/human/species.dm > /datum/species/proc/on_species_gain(), /datum/species/proc/handle_body(), /datum/species/proc/handle_mutant_bodyparts(), /datum/species/proc/can_equip(), /datum/species/proc/handle_hair() +./code/modules/mob/living/carbon/human/species_types/felinid.dm > the 5 procs related to wagging tail +./code/modules/mob/living/carbon/human/species_types/lizardpeople.dm the 5 procs related to wagging tail and - /datum/species/lizard/on_species_gain() +./code/modules/surgery/bodyparts/_bodyparts.dm > /obj/item/bodypart/proc/get_limb_icon() +./code/modules/surgery/organs/ears.dm > /obj/item/organ/internal/ears/cat/Insert(), /obj/item/organ/internal/ears/cat/Remove() +./code/modules/surgery/organs/tails.dm > /obj/item/organ/external/tail/cat/Insert(), /obj/item/organ/external/tail/cat/Remove(), /obj/item/organ/external/tail/lizard/Initialize(mapload), /obj/item/organ/external/tail/lizard/Insert(), /obj/item/organ/external/tail/lizard/Remove() +./code/modules/surgery/bodyparts/dismemberment.dm > /mob/living/carbon/regenerate_limb() +./code/modules/mob/living/carbon/human/status_procs.dm > /mob/living/carbon/human/become_husk() > APPENDED +./code/modules/reagents/chemistry/holder.dm > /datum/reagents/metabolize() +./code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm > /obj/item/reagent_containers/cup/glass/drinkingglass/on_reagent_change() +./code/modules/mob/living/carbon/human/human_defense.dm > /mob/living/carbon/human/emp_act() +./code/modules/mob/living/carbon/human.dm > /mob/living/carbon/human/revive() > APPENDED +./code/modules/reagents/chemistry/reagents/food_reagents.dm > datum/reagent/consumable/on_mob_life() +./code/datums/traits/negative.dm > /datum/quirk/prosthetic_limb +.\code\modules\client.dm > /client/proc/update_special_keybinds() +./code/datums/traits/negative.dm > /datum/quirk/prosthetic_limb

+

./code/modules/mob/living/carbon/human/species.dm > /datum/species/regenerate_organs() > APPENDED

+

./code/controllers/subsystem/job.dm > /datum/controller/subsystem/job/proc/FindOccupationCandidates(), /datum/controller/subsystem/job/proc/GiveRandomJob(), /datum/controller/subsystem/job/proc/DivideOccupations(), /datum/controller/subsystem/job/proc/AssignRole() +./code/modules/mob/dead/new_player/new_player.dm > /mob/dead/new_player/proc/IsJobUnavailable(), /proc/get_job_unavailable_error_message()

+

Defines:

+

./code/modules/surgery/organs/tongue.dm > var/static/list/languages_possible_base - added 2 languages +./code/modules/mob/living/carbon/human/species_types/lizardpeople.dm > commented out "mutant_organs = list(/obj/item/organ/external/tail/lizard)" +./code/modules/mob/living/carbon/human/species_types/felinid.dm > commented out "mutantears = /obj/item/organ/internal/ears/cat" and "mutant_organs = list(/obj/item/organ/external/tail/cat)" +./code/modules/mob/living/carbon/human/species.dm > var/list/list/mutant_bodyparts (added typed list type) +./code/_globalvars/lists/flavor_misc.dm > Removed accessory list defines +.\code\datums\keybindings\living.dm > /datum/keybinding/living/look_up > from L to P

+

./code/__DEFINES/~skyrat_defines/DNA.dm > A TON of defines +./code/__DEFINES/~skyrat_defines/obj_flags.dm > Organ flags +./code/__DEFINES/~skyrat_defines/say.dm > MAX_FLAVOR_LEN +./code/__DEFINES/~skyrat_defines/traits.dm > TRAIT_NO_HUSK

+

.\modular_skyrat\modules\customization\modules\reagents\chemistry\reagents.dm > var/process_flags

+

Master file additions

+

.\modular_skyrat\master_files\icons\mob\clothing\eyes_vox.dmi +.\modular_skyrat\master_files\icons\mob\clothing\feet_digi.dmi +.\modular_skyrat\master_files\icons\mob\clothing\head_muzzled.dmi +.\modular_skyrat\master_files\icons\mob\clothing\head_vox.dmi +.\modular_skyrat\master_files\icons\mob\clothing\mask_muzzled.dmi +.\modular_skyrat\master_files\icons\mob\clothing\mask_vox.dmi +.\modular_skyrat\master_files\icons\mob\clothing\suit_digi.dmi +.\modular_skyrat\master_files\icons\mob\clothing\suit_taur_hoof.dmi +.\modular_skyrat\master_files\icons\mob\clothing\suit_taur_paw.dmi +.\modular_skyrat\master_files\icons\mob\clothing\suit_taur_snake.dmi +.\modular_skyrat\master_files\icons\mob\clothing\uniform_digi.dmi +.\modular_skyrat\master_files\icons\mob\clothing\under\uniform_digi.dmi +.\modular_skyrat\master_files\icons\mob\clothing\under\uniform_taur_hoof.dmi +.\modular_skyrat\master_files\icons\mob\clothing\under\uniform_taur_paw.dmi +.\modular_skyrat\master_files\icons\mob\clothing\under\uniform_taur_snake.dmi

+

./modular_skyrat/master_files/icons/obj/drinks.dmi

+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Azarak

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/__HELPERS/global_lists.html b/modular_skyrat/modules/customization/__HELPERS/global_lists.html new file mode 100644 index 0000000000000..1536c9691cdee --- /dev/null +++ b/modular_skyrat/modules/customization/__HELPERS/global_lists.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/__HELPERS/global_lists.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/__HELPERS/global_lists.dm

/proc/remove_erp_thingsIf the "Remove ERP Interaction" config is disabled, remove ERP things from various lists
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/clothing/glasses/glasses.html b/modular_skyrat/modules/customization/modules/clothing/glasses/glasses.html new file mode 100644 index 0000000000000..cb7873024ae0f --- /dev/null +++ b/modular_skyrat/modules/customization/modules/clothing/glasses/glasses.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/clothing/glasses/glasses.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/modules/clothing/glasses/glasses.dm

/obj/item/clothing/glasses/thinGLASSSES
/obj/item/clothing/glasses/bikerGOGGLES
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/clothing/glasses/hud.html b/modular_skyrat/modules/customization/modules/clothing/glasses/hud.html new file mode 100644 index 0000000000000..b78627487bba8 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/clothing/glasses/hud.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/clothing/glasses/hud.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/modules/clothing/glasses/hud.dm

/obj/item/clothing/glasses/trickblindfold/obsoleteBLINDFOLD HUDS
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/clothing/storage.html b/modular_skyrat/modules/customization/modules/clothing/storage.html new file mode 100644 index 0000000000000..1e8487aa1061d --- /dev/null +++ b/modular_skyrat/modules/customization/modules/clothing/storage.html @@ -0,0 +1,24 @@ +modular_skyrat/modules/customization/modules/clothing/storage/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/modules/clothing/storage/readme.md

Title: Storage

+

MODULE ID: Storage

+

Description:

+

A seperate folder under customization for adding new (WORN) storage items, such as new bags and belts.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+

(Both the new sprite files, which are in the normal clothing icon locations)

+
    +
  • modular_skyrat/master_files/icons/mob/clothing/storage.dmi
  • +
  • modular_skyrat/master_files/icons/obj/clothing/storage.dmi
  • +
+

Credits:

+

Orion_the_Fox

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/clothing/under/security.html b/modular_skyrat/modules/customization/modules/clothing/under/security.html new file mode 100644 index 0000000000000..327062466a4b6 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/clothing/under/security.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/clothing/under/security.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/modules/clothing/under/security.dm

/obj/item/clothing/under/rank/prisoner/protcustPRISONER
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/clothing/under/utility_port.html b/modular_skyrat/modules/customization/modules/clothing/under/utility_port.html new file mode 100644 index 0000000000000..fb0d2de599432 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/clothing/under/utility_port.html @@ -0,0 +1,40 @@ +modular_skyrat/modules/customization/modules/clothing/under/utility_port/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/modules/clothing/under/utility_port/readme.md

Title: Utility Port

+

MODULE ID: utility_port

+

Description:

+

Ports several outfits from citbase, with the highlight being Utility Uniforms: dark-grey jumpsuits with departmental markings, with the same stats as the department's default jumpsuit. +It also ports: +Other "utility" uniforms such as a gas/chemical hazard uniform; +Japanese and Victorian costumes; +Two short dresses; +Several departmental/head-of-staff berets; +All items are avaliable through either the Loadout, Vendors, or Both.

+

PART 2! +Ports the rest of what I was given with the utility uniforms, namely the Suits that go with all the previously added outfits. Also tweaks some of the previously added items (i.e., making the gas/chemical haz-uniform actually acidproof)

+

TG Proc/File Changes:

+

To show items in vendors:

+
    +
  • core/modules/vending/autodrobe.dm
  • +
  • core/modules/vending/clothesmate.dm
  • +
  • core/modules/vending/wardrobes.dm
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+

To add digitigrade variants:

+
    +
  • Skyrat-tg/modular_skyrat/master_files/icons/mob/clothing/uniform_digi.dmi
  • +
  • Skyrat-tg/modular_skyrat/master_files/icons/mob/clothing/under/uniform_digi.dmi
  • +
+

Included files that are not contained in this module:

+

Modifications to:

+
    +
  • modules/client/loadout/head.dm
  • +
  • modules/client/loadout/uniform.dm
  • +
  • icons/mob/clothing/uniform.dmi
  • +
  • icons/obj/clothing/uniforms.dmi
  • +
+

Credits:

+

Orion_the_Fox, with help from SarmentiCampbell +Sprites taken from https://github.com/Citadel-Station-13/Citadel-Station-13/pull/13475

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/clothing/~donator/donator_clothing.html b/modular_skyrat/modules/customization/modules/clothing/~donator/donator_clothing.html new file mode 100644 index 0000000000000..fa4045eef5527 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/clothing/~donator/donator_clothing.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/clothing/~donator/donator_clothing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/modules/clothing/~donator/donator_clothing.dm

/obj/item/clothing/suit/hooded/wintercoat/colourableSKYRAT REWARDS
/obj/item/clothing/suit/jacket/ryddidCKEY EXCLUSIVES
/obj/item/clothing/mask/gas/nightlightCALIGRA DONATIONS
/obj/item/clothing/neck/cloak/infernoLEGACY REWARDS
/datum/action/item_action/toggle_steampunk_goggles_welding_protectionAction button for toggling the welding shutters (aka, welding protection) on or off.
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories.html b/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories.html new file mode 100644 index 0000000000000..8b14c47033cf8 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories.dm

SPRITE_ACCESSORY_USE_MUZZLED_SPRITEThe flag to show that snouts should use the muzzled sprite.
SPRITE_ACCESSORY_WAG_ABLEThe flag to show that this tail sprite can wag.
SPRITE_ACCESSORY_HIDE_SHOESThe flag that controls whether or not this sprite accessory should force the wearer to hide its shoes.
SPRITE_ACCESSORY_USE_ALT_FACEWEAR_LAYERThe flag to that controls whether or not this sprite accessory should force worn facewear to use layers 5 (for glasses) and 4 (for masks and hats).
/datum/sprite_accessory/braBRAS and all the fun stuff of moving these about.

Define Details

SPRITE_ACCESSORY_HIDE_SHOES

The flag that controls whether or not this sprite accessory should force the wearer to hide its shoes.

SPRITE_ACCESSORY_USE_ALT_FACEWEAR_LAYER

The flag to that controls whether or not this sprite accessory should force worn facewear to use layers 5 (for glasses) and 4 (for masks and hats).

SPRITE_ACCESSORY_USE_MUZZLED_SPRITE

The flag to show that snouts should use the muzzled sprite.

SPRITE_ACCESSORY_WAG_ABLE

The flag to show that this tail sprite can wag.

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/genitals.html b/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/genitals.html new file mode 100644 index 0000000000000..2ffcbebfc01fc --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/genitals.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/genitals.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/genitals.dm

TAUR_DIMENSION_XThe alternative dimension_x to use if it's a taur.

Define Details

TAUR_DIMENSION_X

The alternative dimension_x to use if it's a taur.

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/ipc.html b/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/ipc.html new file mode 100644 index 0000000000000..f1e0dd0645439 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/ipc.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/ipc.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/ipc.dm

/datum/sprite_accessory/screenIPC SCREENS
/datum/sprite_accessory/antennaIPC Antennas
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/snout.html b/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/snout.html new file mode 100644 index 0000000000000..47d4f8ec699d1 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/snout.html @@ -0,0 +1,2 @@ +modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/snout.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/snout.dm

/datum/sprite_accessory/snouts/mammal/top*** Snouts *** +but higher up
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.html b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.html new file mode 100644 index 0000000000000..6c0b17eb68179 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm

/proc/get_customizable_racesGets a list of all customizable races on roundstart.
/proc/generate_customizable_racesGenerates races available to choose in character setup at roundstart, yet not playable on the station.
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/akula.html b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/akula.html new file mode 100644 index 0000000000000..efe477f50f78b --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/akula.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/akula.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/akula.dm

DRY_UP_TIMEHow long the akula will stay wet for, AKA how long until they get a mood debuff
WETSTACK_INITIALHow many wetstacks an Akula will get upon creation
WETSTACK_THRESHOLDHow many wetstacks an Akula needs to activate the TRAIT_SLIPPERY trait

Define Details

DRY_UP_TIME

How long the akula will stay wet for, AKA how long until they get a mood debuff

WETSTACK_INITIAL

How many wetstacks an Akula will get upon creation

WETSTACK_THRESHOLD

How many wetstacks an Akula needs to activate the TRAIT_SLIPPERY trait

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/_hemophage_defines.html b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/_hemophage_defines.html new file mode 100644 index 0000000000000..3faed08da1e34 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/_hemophage_defines.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/_hemophage_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/_hemophage_defines.dm

ORGAN_TUMOR_CORRUPTEDOrgan flag for organs of hemophage origin, or organs that have since been infected by an hemophage's tumor.
PULSATING_TUMOR_ACTIVEWe have a pulsating tumor, it's active.
PULSATING_TUMOR_DORMANTWe have a pulsating tumor, it's dormant.
PULSATING_TUMOR_MISSINGWe don't have a pulsating tumor.
MINIMUM_VOLUME_FOR_REGENMinimum amount of blood that you can reach via blood regeneration, regeneration will stop below this.
HEMOPHAGE_VOMIT_FLAGSVomit flags for hemophages who eat food
HEMOPHAGE_VOMIT_PURGE_RATIOThe ratio of reagents that get purged while a Hemophage vomits from trying to eat/drink something that their tumor doesn't like.
TUMOR_DISLIKED_FOOD_DISGUSTHow much disgust we're at after eating/drinking something the tumor doesn't like.

Define Details

HEMOPHAGE_VOMIT_FLAGS

Vomit flags for hemophages who eat food

HEMOPHAGE_VOMIT_PURGE_RATIO

The ratio of reagents that get purged while a Hemophage vomits from trying to eat/drink something that their tumor doesn't like.

MINIMUM_VOLUME_FOR_REGEN

Minimum amount of blood that you can reach via blood regeneration, regeneration will stop below this.

ORGAN_TUMOR_CORRUPTED

Organ flag for organs of hemophage origin, or organs that have since been infected by an hemophage's tumor.

PULSATING_TUMOR_ACTIVE

We have a pulsating tumor, it's active.

PULSATING_TUMOR_DORMANT

We have a pulsating tumor, it's dormant.

PULSATING_TUMOR_MISSING

We don't have a pulsating tumor.

TUMOR_DISLIKED_FOOD_DISGUST

How much disgust we're at after eating/drinking something the tumor doesn't like.

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/_organ_corruption.html b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/_organ_corruption.html new file mode 100644 index 0000000000000..84d257e5dc532 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/_organ_corruption.html @@ -0,0 +1,5 @@ +modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/_organ_corruption.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/_organ_corruption.dm

BASE_TIME_BEFORE_CORRUPTIONHow long it takes for an organ to be corrupted by default.
GENERIC_CORRUPTED_ORGAN_COLORThe generic corrupted organ color.
CORRUPTED_ORGAN_DAMAGE_TUMORLESSHow much organ damage do all corrupted organs take per second when the tumor is removed? +This will go by MUCH faster than you might expect, don't set it up too high.
/datum/component/organ_corruptionComponent for Hemophage tumor-induced organ corruption, for the organs +that need to receive the ORGAN_TUMOR_CORRUPTED flag, to corrupt +them properly.

Define Details

BASE_TIME_BEFORE_CORRUPTION

How long it takes for an organ to be corrupted by default.

CORRUPTED_ORGAN_DAMAGE_TUMORLESS

How much organ damage do all corrupted organs take per second when the tumor is removed? +This will go by MUCH faster than you might expect, don't set it up too high.

GENERIC_CORRUPTED_ORGAN_COLOR

The generic corrupted organ color.

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/corrupted_liver.html b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/corrupted_liver.html new file mode 100644 index 0000000000000..6892e2d65d2b7 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/corrupted_liver.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/corrupted_liver.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/corrupted_liver.dm

MINIMUM_BLOOD_REGENING_REAGENT_RATIOThe minimum ratio of reagents that need to have the REAGENT_BLOOD_REGENERATING chemical_flags for the Hemophage not to violently vomit upon consumption.

Define Details

MINIMUM_BLOOD_REGENING_REAGENT_RATIO

The minimum ratio of reagents that need to have the REAGENT_BLOOD_REGENERATING chemical_flags for the Hemophage not to violently vomit upon consumption.

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/corrupted_tongue.html b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/corrupted_tongue.html new file mode 100644 index 0000000000000..bfa601caecc7c --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/corrupted_tongue.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/corrupted_tongue.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/corrupted_tongue.dm

HEMOPHAGE_DRAIN_AMOUNTMaximum an Hemophage will drain, they will drain less if they hit their cap.
BLOOD_DRAIN_MULTIPLIER_CKEYThe multiplier for blood received by Hemophages out of humans with ckeys.

Define Details

BLOOD_DRAIN_MULTIPLIER_CKEY

The multiplier for blood received by Hemophages out of humans with ckeys.

HEMOPHAGE_DRAIN_AMOUNT

Maximum an Hemophage will drain, they will drain less if they hit their cap.

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_actions.html b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_actions.html new file mode 100644 index 0000000000000..35408075996a4 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_actions.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_actions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_actions.dm

DORMANT_STATE_START_MESSAGEThe message displayed in the hemophage's chat when they enter their dormant state.
DORMANT_STATE_END_MESSAGEThe message displayed in the hemophage's chat when they leave their dormant state.

Define Details

DORMANT_STATE_END_MESSAGE

The message displayed in the hemophage's chat when they leave their dormant state.

DORMANT_STATE_START_MESSAGE

The message displayed in the hemophage's chat when they enter their dormant state.

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_organs.html b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_organs.html new file mode 100644 index 0000000000000..537477d31bac8 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_organs.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_organs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_organs.dm

GENERIC_CORRUPTED_ORGAN_DESCGeneric description for the corrupted organs that don't have one.
BLOOD_METABOLIZATION_RATEThe rate at which blood metabolizes in a Hemophage's stomach subtype.
ORGAN_CORRUPTION_INSTANTDefines the time for making a corrupted organ start off corrupted.

Define Details

BLOOD_METABOLIZATION_RATE

The rate at which blood metabolizes in a Hemophage's stomach subtype.

GENERIC_CORRUPTED_ORGAN_DESC

Generic description for the corrupted organs that don't have one.

ORGAN_CORRUPTION_INSTANT

Defines the time for making a corrupted organ start off corrupted.

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_species.html b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_species.html new file mode 100644 index 0000000000000..11054ef2feed8 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_species.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_species.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_species.dm

HEMOPHAGE_SPAWN_TEXTSome starter text sent to the Hemophage initially, because Hemophages have shit to do to stay alive.

Define Details

HEMOPHAGE_SPAWN_TEXT

Some starter text sent to the Hemophage initially, because Hemophages have shit to do to stay alive.

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_status_effects.html b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_status_effects.html new file mode 100644 index 0000000000000..f710bc87de101 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_status_effects.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_status_effects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_status_effects.dm

BLOOD_REGEN_BRUTE_AMOUNTHow much brute damage their body regenerates per second while using blood regeneration.
BLOOD_REGEN_BURN_AMOUNTHow much burn damage their body regenerates per second while using blood regeneration.
BLOOD_REGEN_TOXIN_AMOUNTHow much toxin damage their body regenerates per second while using blood regeneration.
BLOOD_REGEN_CELLULAR_AMOUNTHow much cellular damage their body regenerates per second while using blood regeneration.

Define Details

BLOOD_REGEN_BRUTE_AMOUNT

How much brute damage their body regenerates per second while using blood regeneration.

BLOOD_REGEN_BURN_AMOUNT

How much burn damage their body regenerates per second while using blood regeneration.

BLOOD_REGEN_CELLULAR_AMOUNT

How much cellular damage their body regenerates per second while using blood regeneration.

BLOOD_REGEN_TOXIN_AMOUNT

How much toxin damage their body regenerates per second while using blood regeneration.

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_tumor.html b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_tumor.html new file mode 100644 index 0000000000000..2b33200cdbc20 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_tumor.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_tumor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/hemophage_tumor.dm

MINIMUM_LIGHT_THRESHOLD_FOR_REGENMinimum amount of light for Hemophages to be considered in pure darkness, and therefore be allowed to heal just like in a closet.
DORMANT_DAMAGE_MULTIPLIERHow high should the damage multiplier to the Hemophage be when they're in a dormant state?
DORMANT_BLOODLOSS_MULTIPLIERBy how much the blood drain will be divided when the tumor is in a dormant state.
NORMAL_BLOOD_DRAINHow much blood do Hemophages normally lose per second (visible effect is every two seconds, so twice this value).
FLOATING_POINT_ERROR_AVOIDING_FACTORJust a conversion factor that ensures there's no weird floating point errors when blood is draining.

Define Details

DORMANT_BLOODLOSS_MULTIPLIER

By how much the blood drain will be divided when the tumor is in a dormant state.

DORMANT_DAMAGE_MULTIPLIER

How high should the damage multiplier to the Hemophage be when they're in a dormant state?

FLOATING_POINT_ERROR_AVOIDING_FACTOR

Just a conversion factor that ensures there's no weird floating point errors when blood is draining.

MINIMUM_LIGHT_THRESHOLD_FOR_REGEN

Minimum amount of light for Hemophages to be considered in pure darkness, and therefore be allowed to heal just like in a closet.

NORMAL_BLOOD_DRAIN

How much blood do Hemophages normally lose per second (visible effect is every two seconds, so twice this value).

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/tumor_corruption.html b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/tumor_corruption.html new file mode 100644 index 0000000000000..72a01f68f5bf3 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/tumor_corruption.html @@ -0,0 +1,3 @@ +modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/tumor_corruption.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage/tumor_corruption.dm

/datum/element/tumor_corruptionElement that handles spreading the Hemophages' pulsating tumor corruption +to applicable organs, so that they can be properly corrupted, even if they +weren't roundstart-corrupted organs.
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/roundstartslime.html b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/roundstartslime.html new file mode 100644 index 0000000000000..8901900910296 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/roundstartslime.html @@ -0,0 +1,3 @@ +modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/roundstartslime.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/roundstartslime.dm

/datum/action/innate/alter_formAlter Form is the ability of slimes to edit many of their character attributes at will +This covers most thing about their character, from body size or colour, to adding new wings, tails, ears, etc, to changing the presence of their genitalia +There are some balance concerns with some of these (looking at you, body size), but nobody has abused it Yet:tm:, and it would be exceedingly obvious if they did
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/xeno.html b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/xeno.html new file mode 100644 index 0000000000000..fb70934e97c09 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/xeno.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/xeno.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/xeno.dm

BUILD_DURATIONXenomorph organs modified to suit roundstart styling

Define Details

BUILD_DURATION

Xenomorph organs modified to suit roundstart styling

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/reagents/chemistry/reagents/drinks.html b/modular_skyrat/modules/customization/modules/reagents/chemistry/reagents/drinks.html new file mode 100644 index 0000000000000..8e3ac68ed3cc5 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/reagents/chemistry/reagents/drinks.html @@ -0,0 +1 @@ +modular_skyrat/modules/customization/modules/reagents/chemistry/reagents/drinks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/customization/modules/reagents/chemistry/reagents/drinks.dm

SODA_FIZZINESS_THROWNHow much fizziness is added to the can of soda by throwing it, in percentage points
SODA_FIZZINESS_SHAKEHow much fizziness is added to the can of soda by shaking it, in percentage points

Define Details

SODA_FIZZINESS_SHAKE

How much fizziness is added to the can of soda by shaking it, in percentage points

SODA_FIZZINESS_THROWN

How much fizziness is added to the can of soda by throwing it, in percentage points

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/spines.html b/modular_skyrat/modules/customization/modules/surgery/organs/spines.html new file mode 100644 index 0000000000000..41a6b9a26f324 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/surgery/organs/spines.html @@ -0,0 +1,3 @@ +modular_skyrat/modules/customization/modules/surgery/organs/spines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/customization/modules/surgery/organs/spines.dm

SPINES_LAYER_OFFSETAllows us to offset the spines' layer by a very small amount, to make it appear above the tails. +Not the best solution, but the simplest I found in the amount of time I had.

Define Details

SPINES_LAYER_OFFSET

Allows us to offset the spines' layer by a very small amount, to make it appear above the tails. +Not the best solution, but the simplest I found in the amount of time I had.

\ No newline at end of file diff --git a/modular_skyrat/modules/customization/strings/names/callsigns_nri.html b/modular_skyrat/modules/customization/strings/names/callsigns_nri.html new file mode 100644 index 0000000000000..00c400d861d94 --- /dev/null +++ b/modular_skyrat/modules/customization/strings/names/callsigns_nri.html @@ -0,0 +1,47 @@ +modular_skyrat/modules/customization/strings/names/callsigns_nri.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/strings/names/callsigns_nri.txt

Defender
+Hero
+Jury
+King
+Line
+Patrol
+Roller
+Union
+Victor
+Xray
+Yellow
+Apex
+Ion
+Jet
+Kilo
+Mace
+Nova
+Payback
+Sundown
+Uniform
+Echo
+Flatline
+Helix
+Ice
+Quicksand
+Ripcord
+Flash
+Ranger
+Hammer
+Sweeper
+Swift
+Sword
+Tracker
+Razor
+Spear
+Dagger
+Ghost
+Reaper
+Nomad
+Hurricane
+Phantom
+Judge
+Shadow
+Stinger
+Storm
+Winder```
+
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/strings/names/first_female_taj.html b/modular_skyrat/modules/customization/strings/names/first_female_taj.html new file mode 100644 index 0000000000000..e26a65d60f7d3 --- /dev/null +++ b/modular_skyrat/modules/customization/strings/names/first_female_taj.html @@ -0,0 +1,228 @@ +modular_skyrat/modules/customization/strings/names/first_female_taj.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/strings/names/first_female_taj.txt

Aahin
+Aahni
+Afeliz
+Ahana
+Aheh
+Ahrazad
+Ajjan
+Akhtar
+Anita
+Araya
+Ariba
+Ashima
+Ashivari
+Asrin
+Atima
+Azita
+Aziahin
+Aziahni
+Azifeliz
+Azihana
+Aziheh
+Azihrazad
+Azijjan
+Azikhtar
+Azinita
+Aziraya
+Aziriba
+Azishima
+Azisrin
+Azitima
+Azizita
+Elaahin
+Elaahni
+Elafeliz
+Elahana
+Elaheh
+Elahrazad
+Elajjan
+Elakhtar
+Elanita
+Elaraya
+Elariba
+Elashima
+Elasrin
+Elatima
+Elazita
+Faahin
+Faahni
+Fafeliz
+Fa'fenia
+Fahana
+Faheh
+Fahrazad
+Fajjan
+Fakhtar
+Fanita
+Faraya
+Fariba
+Fashima
+Fasrin
+Fatima
+Fazita
+Khaahin
+Khaahni
+Khafeliz
+Khahana
+Khaheh
+Khahrazad
+Khajjan
+Khakhtar
+Khanita
+Kharaya
+Khariba
+Khashima
+Khasrin
+Khatima
+Khazita
+Kiahin
+Kiahni
+Kifeliz
+Kihana
+Kiheh
+Kihrazad
+Kijjan
+Kikhtar
+Kinita
+Kiraya
+Kiriba
+Kishima
+Kisrin
+Kitima
+Kizita
+Moahin
+Moahni
+Mofeliz
+Mohana
+Moheh
+Mohrazad
+Mojjan
+Mokhtar
+Monita
+Moraya
+Moriba
+Moshima
+Mosrin
+Motima
+Mozita
+Naahin
+Naahni
+Nafeliz
+Nahana
+Naheh
+Nahrazad
+Najjan
+Nakhtar
+Nanita
+Naraya
+Nariba
+Nashima
+Nasrin
+Natima
+Nazita
+Raahin
+Raahni
+Rafeliz
+Rahana
+Raheh
+Rahrazad
+Rajjan
+Rakhtar
+Ranita
+Raraya
+Rariba
+Rashima
+Rasrin
+Ratima
+Razita
+Riahin
+Riahni
+Rifeliz
+Rihana
+Riheh
+Rihrazad
+Rijjan
+Rikhtar
+Rinita
+Riraya
+Ririba
+Rishima
+Risrin
+Ritima
+Rizita
+Saahin
+Saahni
+Safeliz
+Sahana
+Saheh
+Sahrazad
+Sajjan
+Sakhtar
+Sanita
+Saraya
+Sariba
+Sashima
+Sasrin
+Satima
+Sazita
+Shaahin
+Shaahni
+Shafeliz
+Shahana
+Shaheh
+Shahrazad
+Shajjan
+Shakhtar
+Shanita
+Sharaya
+Shariba
+Shashima
+Shasrin
+Shatima
+Shazita
+Soahin
+Soahni
+Sofeliz
+Sohana
+Soheh
+Sohrazad
+Sojjan
+Sokhtar
+Sonita
+Soraya
+Soriba
+Soshima
+Sosrin
+Sotima
+Sozita
+Taahin
+Taahni
+Tafeliz
+Tahana
+Taheh
+Tahrazad
+Tajjan
+Takhtar
+Tanita
+Taraya
+Tariba
+Tashima
+Tasrin
+Tatima
+Tazita
+Zaahin
+Zaahni
+Zafeliz
+Zahana
+Zaheh
+Zahrazad
+Zajjan
+Zakhtar
+Zanita
+Zaraya
+Zariba
+Zashima
+Zasrin
+Zatima
+Zazita```
+
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/strings/names/first_female_vulp.html b/modular_skyrat/modules/customization/strings/names/first_female_vulp.html new file mode 100644 index 0000000000000..e3d3bc70dce09 --- /dev/null +++ b/modular_skyrat/modules/customization/strings/names/first_female_vulp.html @@ -0,0 +1,49 @@ +modular_skyrat/modules/customization/strings/names/first_female_vulp.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/strings/names/first_female_vulp.txt

Ada
+Adel
+Alana
+Allovera
+Almira
+Amalia
+Aubriella
+Belinda
+Bernarda
+Bertha
+Bianca
+Blanca
+Carla
+Carol
+Charlotte
+Deloise
+Edelmira
+Edda
+Eloise
+Elfreda
+Emma
+Enrica
+Fredrica
+Frida
+Genevieve
+Geraldine
+Heidi
+Helmi
+Ishild
+Isotta
+Jadwiga
+Lou
+Lulu
+Mafalda
+Matilda
+Mattie
+Maud
+Odelia
+Ramona
+Rilla
+Rosalyn
+Ulrika
+Valda
+Vanda
+Wilhelmina
+Ysolt
+Yvette
+Zinnia```
+
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/strings/names/first_male_taj.html b/modular_skyrat/modules/customization/strings/names/first_male_taj.html new file mode 100644 index 0000000000000..b42917e639cec --- /dev/null +++ b/modular_skyrat/modules/customization/strings/names/first_male_taj.html @@ -0,0 +1,240 @@ +modular_skyrat/modules/customization/strings/names/first_male_taj.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/strings/names/first_male_taj.txt

Ab'ar
+Ab'bar
+Ab'bil
+Ab'der
+Ab'dul
+Ab'gh
+Ab'ir
+Ab'kir
+Ab'med
+Ab'nir
+Ab'noud
+Ab'sien
+Ab'soud
+Ab'taba
+Ab'tabe
+Ab'urabi
+Ak'ar
+Ak'bar
+Ak'bil
+Ak'der
+Ak'dul
+Ak'gh
+Ak'ir
+Ak'kir
+Ak'med
+Ak'nir
+Ak'noud
+Ak'sien
+Ak'soud
+Ak'taba
+Ak'tabe
+Ak'urabi
+Akh'ar
+Akh'bar
+Akh'bil
+Akh'der
+Akh'dul
+Akh'gh
+Akh'ir
+Akh'kir
+Akh'med
+Akh'nir
+Akh'noud
+Akh'sien
+Akh'soud
+Akh'taba
+Akh'tabe
+Akh'urabi
+Amar
+Ambar
+Ambil
+Amder
+Amdul
+Amgh
+Amir
+Amkir
+Ammed
+Amnir
+Amnoud
+Amsien
+Amsoud
+Amtaba
+Amtabe
+Amurabi
+Fa'ar
+Fa'bar
+Fa'bil
+Fa'der
+Fa'dul
+Fa'gh
+Fa'ir
+Fa'kir
+Fa'med
+Fa'nir
+Fa'noud
+Fa'sien
+Fa'soud
+Fa'taba
+Fa'tabe
+Fa'urabi
+Husar
+Husbar
+Husbil
+Husder
+Husdul
+Husgh
+Husir
+Huskir
+Husmed
+Husnir
+Husnoud
+Hussien
+Hussoud
+Hustaba
+Hustabe
+Husurabi
+Moar
+Mobar
+Mobil
+Moder
+Modul
+Mogh
+Moir
+Mokir
+Momed
+Monir
+Monoud
+Mosien
+Mosoud
+Motaba
+Motabe
+Mourabi
+Mohamar
+Mohambar
+Mohambil
+Mohamder
+Mohamdul
+Mohamgh
+Mohamir
+Mohamkir
+Mohamnir
+Mohamnoud
+Mohamsien
+Mohamsoud
+Mohamtaba
+Mohamtabe
+Mohamurabi
+Mojar
+Mojbar
+Mojbil
+Mojder
+Mojdul
+Mojgh
+Mojir
+Mojkir
+Mojmed
+Mojnir
+Mojnoud
+Mojsien
+Mojsoud
+Mojtaba
+Mojtabe
+Mojurabi
+Naar
+Nabar
+Nabil
+Nader
+Nadul
+Nagh
+Nair
+Nakir
+Named
+Nanir
+Nanoud
+Nasien
+Nasoud
+Nataba
+Natabe
+Naurabi
+Omar
+Ombar
+Ombil
+Omder
+Omdul
+Omgh
+Omir
+Omkir
+Ommed
+Omnir
+Omnoud
+Omsien
+Omsoud
+Omtaba
+Omtabe
+Omurabi
+Shaar
+Shabar
+Shabil
+Shader
+Shadul
+Shagh
+Shair
+Shakir
+Shamed
+Shanir
+Shanoud
+Shasien
+Shasoud
+Shataba
+Shatabe
+Shaurabi
+Sinar
+Sinbar
+Sinbil
+Sinder
+Sindul
+Singh
+Sinir
+Sinkir
+Sinmed
+Sinnir
+Sinnoud
+Sinsien
+Sinsoud
+Sintaba
+Sintabe
+Sinurabi
+Za'ar
+Za'bar
+Za'bil
+Za'der
+Za'dul
+Za'gh
+Za'ir
+Za'kir
+Za'med
+Za'nir
+Za'noud
+Za'sien
+Za'soud
+Za'taba
+Za'tabe
+Za'urabi
+Zan'ar
+Zan'bar
+Zan'bil
+Zan'der
+Zan'dul
+Zan'gh
+Zan'ir
+Zan'kir
+Zan'med
+Zan'nir
+Zan'noud
+Zan'sien
+Zan'soud
+Zan'taba
+Zan'tabe
+Zan'urabi```
+
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/strings/names/first_male_vulp.html b/modular_skyrat/modules/customization/strings/names/first_male_vulp.html new file mode 100644 index 0000000000000..5b2214d2669c6 --- /dev/null +++ b/modular_skyrat/modules/customization/strings/names/first_male_vulp.html @@ -0,0 +1,64 @@ +modular_skyrat/modules/customization/strings/names/first_male_vulp.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/strings/names/first_male_vulp.txt

Adelhart
+Adelram
+Ademar
+Albert
+Alder
+Aldrich
+Alois
+Archibald
+Arman
+Baldrick
+Baldwin
+Bhaltair
+Bertrand
+Carlo
+Carol
+Caz
+Colbert
+Conrad
+Derrick
+Dietrich
+Dietz
+Dixon
+Earnest
+Edsel
+Eggert
+Enrique
+Enzo
+Ferdinard
+Faramond
+Friedrich
+Fulbright
+Geoffrey
+Gerard
+Gunther
+Hadwin
+Hagan
+Hardling
+Henrick
+Ingram
+Jagger
+Jarrel
+Kessler
+Konrad
+Lindell
+Lockhart
+Lothar
+Merrick
+Meinhard
+Pershing
+Perry
+Rabbie
+Raymund
+Reynolds
+Ricardo
+Rolf
+Tel
+Thelonius
+Vilmar
+Wagner
+Waldemar
+Winfried
+Zikmund
+Bhaltazar```
+
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/strings/names/last_taj.html b/modular_skyrat/modules/customization/strings/names/last_taj.html new file mode 100644 index 0000000000000..5cc62c8e3e73b --- /dev/null +++ b/modular_skyrat/modules/customization/strings/names/last_taj.html @@ -0,0 +1,211 @@ +modular_skyrat/modules/customization/strings/names/last_taj.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/strings/names/last_taj.txt

Abiri
+Abus
+Adavi
+Ahan
+Ahir
+Akar
+Amanni
+Amnin
+Anai
+Aoni
+Arabi
+Aspoor
+Astae
+Atani
+Avandi
+Barabiri
+Barabus
+Baradavi
+Barahan
+Barahir
+Barakar
+Baramanni
+Baramnin
+Baranai
+Baraoni
+Bararabi
+Baraspoor
+Barastae
+Baratani
+Baravandi
+Hammubiri
+Hammubus
+Hammudavi
+Hammuhan
+Hammuhir
+Hammukar
+Hammumanni
+Hammumnin
+Hammunai
+Hammuoni
+Hammurabi
+Hammuspoor
+Hammustae
+Hammutani
+Hammuvandi
+Jabiri
+Jabus
+Jadavi
+Jahan
+Jahir
+Jakar
+Jamanni
+Jamnin
+Janai
+Jaoni
+Jarabi
+Jaspoor
+Jastae
+Jatani
+Javandi
+Khabiri
+Khabus
+Khadavi
+Khahan
+Khahir
+Khakar
+Khamanni
+Khamnin
+Khanai
+Khaoni
+Kharabi
+Khaspoor
+Khastae
+Khatani
+Khavandi
+Kibiri
+Kibus
+Kidavi
+Kihan
+Kihir
+Kikar
+Kimanni
+Kimnin
+Kinai
+Kioni
+Kirabi
+Kispoor
+Kistae
+Kitani
+Kivandi
+Mahbiri
+Mahbus
+Mahdavi
+Mahhan
+Mahhir
+Mahkar
+Mahmanni
+Mahmnin
+Mahnai
+Mahoni
+Mahrabi
+Mahspoor
+Mahstae
+Mahtani
+Mahvandi
+Raibiri
+Raibus
+Raidavi
+Raihan
+Raihir
+Raikar
+Raimanni
+Raimnin
+Rainai
+Raioni
+Rairabi
+Raispoor
+Raistae
+Raitani
+Raivandi
+Robiri
+Robus
+Rodavi
+Rohan
+Rohir
+Rokar
+Romanni
+Romnin
+Ronai
+Rooni
+Rorabi
+Rospoor
+Rostae
+Rotani
+Rovandi
+Sabiri
+Sabus
+Sadavi
+Sahan
+Sahir
+Sakar
+Samanni
+Samnin
+Sanai
+Saoni
+Sarabi
+Saspoor
+Sastae
+Satani
+Savandi
+Sibiri
+Sibus
+Sidavi
+Sihan
+Sihir
+Sikar
+Simanni
+Simnin
+Sinai
+Sioni
+Sirabi
+Sispoor
+Sistae
+Sitani
+Sivandi
+Solbiri
+Solbus
+Soldavi
+Solhan
+Solhir
+Solkar
+Solmanni
+Solmnin
+Solnai
+Soloni
+Solrabi
+Solspoor
+Solstae
+Soltani
+Solvandi
+Tavakbiri
+Tavakbus
+Tavakdavi
+Tavakhan
+Tavakhir
+Tavakkar
+Tavakmanni
+Tavakmnin
+Tavaknai
+Tavakoni
+Tavakrabi
+Tavakspoor
+Tavakstae
+Tavaktani
+Tavakvandi
+Zabiri
+Zabus
+Zadavi
+Zahan
+Zahir
+Zakar
+Zamanni
+Zamnin
+Zanai
+Zaoni
+Zarabi
+Zaspoor
+Zastae
+Zatani
+Zavandi```
+
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/strings/names/last_vulp.html b/modular_skyrat/modules/customization/strings/names/last_vulp.html new file mode 100644 index 0000000000000..c7b21e88a90a4 --- /dev/null +++ b/modular_skyrat/modules/customization/strings/names/last_vulp.html @@ -0,0 +1,51 @@ +modular_skyrat/modules/customization/strings/names/last_vulp.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/strings/names/last_vulp.txt

Muller
+Schmidt
+Schneider
+Fischer
+Weber
+Schafer
+Meyer
+Wagner
+Becker
+Bauer
+Hoffmann
+Shulz
+Koch
+Richter
+Klein
+Wolf
+Shroder
+Neumann
+Braun
+Werner
+Schwarz
+Hofmann
+Schmitt
+Hartmann
+Kruger
+Lange
+Meier
+Walter
+Kohler
+Konig
+Schulze
+Lehmann
+Kaiser
+Fuchs
+Herrmann
+Lang
+Thomas
+Stein
+Jung
+Moller
+Berger
+Martin
+Friedrich
+Vogel
+Heinrich
+Otto
+Graf
+Schulte
+Dietrich
+Sauer```
+
\ No newline at end of file diff --git a/modular_skyrat/modules/customization/strings/names/phonetic_alphabet_numbers.html b/modular_skyrat/modules/customization/strings/names/phonetic_alphabet_numbers.html new file mode 100644 index 0000000000000..a7494a075764b --- /dev/null +++ b/modular_skyrat/modules/customization/strings/names/phonetic_alphabet_numbers.html @@ -0,0 +1,11 @@ +modular_skyrat/modules/customization/strings/names/phonetic_alphabet_numbers.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/customization/strings/names/phonetic_alphabet_numbers.txt

Zero
+One
+Two
+Three
+Four
+Five
+Six
+Seven
+Eight
+Niner
+
\ No newline at end of file diff --git a/modular_skyrat/modules/death_consequences_perk.html b/modular_skyrat/modules/death_consequences_perk.html new file mode 100644 index 0000000000000..d5cb3bfdab0a3 --- /dev/null +++ b/modular_skyrat/modules/death_consequences_perk.html @@ -0,0 +1,38 @@ +modular_skyrat/modules/death_consequences_perk/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/death_consequences_perk/readme.md

+

https://github.com/Skyrat-SS13/Skyrat-tg/pull/23733

+

Skyrat Medical Update

+

Module ID: death_consequences

+

Description:

+

A highly customizable quirk designed to make you fear death, and introduce a more fair mortality the DNR quirk is unable to.

+ +

TG Proc/File Changes:

+
    +
  • healthscanner.dm: /proc/healthscan(), added text for the quirk
  • +
  • species_features.tsx: Necessary for the preference UI
  • +
+ +

Modular Overrides:

+
    +
  • N/A
  • +
+ +

Defines:

+
    +
  • ~skyrat_defines/quirks.dm: A lot of prefixed defines
  • +
+ +

Included files that are not contained in this module:

+
    +
  • modular_skyrat\master_files\code\modules\client\preferences\quirks\death_consequences.dm
  • +
+ +

Credits:

+

Niko - Original author

+
\ No newline at end of file diff --git a/modular_skyrat/modules/death_consequences_perk/death_consequences_trauma.html b/modular_skyrat/modules/death_consequences_perk/death_consequences_trauma.html new file mode 100644 index 0000000000000..43fb7f862bc70 --- /dev/null +++ b/modular_skyrat/modules/death_consequences_perk/death_consequences_trauma.html @@ -0,0 +1 @@ +modular_skyrat/modules/death_consequences_perk/death_consequences_trauma.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/death_consequences_perk/death_consequences_trauma.dm

DEATH_CONSEQUENCES_REZADONE_MINIMUM_PURITYOnly rezadone at or above this purity can reduce degradation. Needed because of borg synthesizers.

Define Details

DEATH_CONSEQUENCES_REZADONE_MINIMUM_PURITY

Only rezadone at or above this purity can reduce degradation. Needed because of borg synthesizers.

\ No newline at end of file diff --git a/modular_skyrat/modules/decay_subsystem/code/decaySS.html b/modular_skyrat/modules/decay_subsystem/code/decaySS.html new file mode 100644 index 0000000000000..8d7fccea8d4a7 --- /dev/null +++ b/modular_skyrat/modules/decay_subsystem/code/decaySS.html @@ -0,0 +1 @@ +modular_skyrat/modules/decay_subsystem/code/decaySS.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/decay_subsystem/code/decaySS.dm

WALL_RUST_PERCENT_CHANCEThey shouldn't break and they shouldn't be dirty, it's literally already a dirty turf.

Define Details

WALL_RUST_PERCENT_CHANCE

They shouldn't break and they shouldn't be dirty, it's literally already a dirty turf.

\ No newline at end of file diff --git a/modular_skyrat/modules/deforest_medical_items/code/chemicals/twitch.html b/modular_skyrat/modules/deforest_medical_items/code/chemicals/twitch.html new file mode 100644 index 0000000000000..13100b1790b5c --- /dev/null +++ b/modular_skyrat/modules/deforest_medical_items/code/chemicals/twitch.html @@ -0,0 +1 @@ +modular_skyrat/modules/deforest_medical_items/code/chemicals/twitch.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/deforest_medical_items/code/chemicals/twitch.dm

/proc/phase_filterCool filter that I'm using for some of this :)))
\ No newline at end of file diff --git a/modular_skyrat/modules/delam_emergency_stop.html b/modular_skyrat/modules/delam_emergency_stop.html new file mode 100644 index 0000000000000..085f69384f760 --- /dev/null +++ b/modular_skyrat/modules/delam_emergency_stop.html @@ -0,0 +1,31 @@ +modular_skyrat/modules/delam_emergency_stop/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/delam_emergency_stop/README.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/22145

+

Title: Delam SCRAM (Suppression System)

+

MODULE ID: DELAM_SCRAM

+

Description:

+

Adds an emergency stop for the supermatter engine. Operable in the first 30 minutes, allows Engineering to screw up without admin intervention to delete the crystal.

+

TG Proc Changes:

+ + +
File LocationChanged TG Proc
code/modules/power/supermatter/supermatter.dm
/obj/machinery/power/supermatter_crystal/proc/count_down
+

code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm +/datum/sm_delam/proc/delam_progress(obj/machinery/power/supermatter_crystal/sm)

+

TG File Changes:

+
    +
  • code/modules/power/supermatter/supermatter.dm
  • +
  • code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm
  • +
+

Defines:

+ +
File LocationDefines
code/__DEFINES/~skyrat_defines/signals.dm#define COMSIG_MAIN_SM_DELAMINATING "delam_time"
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+
    +
  • LT3
  • +
\ No newline at end of file diff --git a/modular_skyrat/modules/delam_emergency_stop/code/admin_scram.html b/modular_skyrat/modules/delam_emergency_stop/code/admin_scram.html new file mode 100644 index 0000000000000..3f409ccd783cf --- /dev/null +++ b/modular_skyrat/modules/delam_emergency_stop/code/admin_scram.html @@ -0,0 +1 @@ +modular_skyrat/modules/delam_emergency_stop/code/admin_scram.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/delam_emergency_stop/code/admin_scram.dm

/datum/admin_verb/try_stop_delamLets an admin activate the delam suppression system
/datum/admin_verb/toggle_delam_suppressionLets admins disable/enable the delam suppression system
/proc/validate_suppression_statusCheck if the delam suppression setup is valid on the map
\ No newline at end of file diff --git a/modular_skyrat/modules/delam_emergency_stop/code/scram.html b/modular_skyrat/modules/delam_emergency_stop/code/scram.html new file mode 100644 index 0000000000000..123e6f7596791 --- /dev/null +++ b/modular_skyrat/modules/delam_emergency_stop/code/scram.html @@ -0,0 +1 @@ +modular_skyrat/modules/delam_emergency_stop/code/scram.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/delam_emergency_stop/code/scram.dm

/obj/machinery/atmospherics/components/unary/delam_scramAn atmos device that uses freezing cold air to attempt an emergency shutdown of the supermatter engine
/obj/machinery/button/delam_scramA big red button you can smash to stop the supermatter engine, oh how tempting!
\ No newline at end of file diff --git a/modular_skyrat/modules/digi_bloodsole.html b/modular_skyrat/modules/digi_bloodsole.html new file mode 100644 index 0000000000000..c69aa4d5f3464 --- /dev/null +++ b/modular_skyrat/modules/digi_bloodsole.html @@ -0,0 +1,25 @@ +modular_skyrat/modules/digi_bloodsole/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/digi_bloodsole/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pulls

+

Title: Digitigrade Bloody Soles

+

MODULE ID: DIGI_BLOODSOLE

+

Description:

+

Adds digitigrade bloody soles overlays.

+

TG Proc Changes:

+
    +
  • ./code/modules/clothing/shoes/_shoes.dm > /obj/item/clothing/shoes/worn_overlays()
  • +
  • ./code/datums/components/bloodysoles.dm > /datum/component/bloodysoles/feet/Initialize()
  • +
  • ./code/datums/components/bloodysoles.dm > /datum/component/bloodysoles/feet/on_step_blood()
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Seris02 - Porting of sprites/Some code

\ No newline at end of file diff --git a/modular_skyrat/modules/electric_welder.html b/modular_skyrat/modules/electric_welder.html new file mode 100644 index 0000000000000..e87ba964375f6 --- /dev/null +++ b/modular_skyrat/modules/electric_welder.html @@ -0,0 +1,20 @@ +modular_skyrat/modules/electric_welder/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/electric_welder/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/

+

<Title Here>

+

Module ID:

+

Description:

TG Proc/File Changes:

+
    +
  • code/game/objects/items/storage/belt.dm: proc/get_types_to_preload
  • +
+

Modular Overrides:

+
    +
  • modular_skyrat/master_files/code/modules/cargo/exports/tools.dm: var/export_types
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

\ No newline at end of file diff --git a/modular_skyrat/modules/emotes.html b/modular_skyrat/modules/emotes.html new file mode 100644 index 0000000000000..4be7b1019ccda --- /dev/null +++ b/modular_skyrat/modules/emotes.html @@ -0,0 +1,51 @@ +modular_skyrat/modules/emotes/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/emotes/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/892 +https://github.com/Skyrat-SS13/Skyrat-tg/pull/1925 +https://github.com/Skyrat-SS13/Skyrat-tg/pull/2320 +https://github.com/Skyrat-SS13/Skyrat-tg/pull/6259

+

Title: All the emotes.

+

MODULE ID: EMOTES

+

Description:

+

Adds all the emotes we once had on the oldbase, and shoves them right into here.

+

Adds some new emotes, and adjusted sound files.

+

Pretty much anything that changes emotes is in here

+

TG Proc Changes:

+ + + +
File LocationChanged TG Proc
code/datums/emotes.dm/datum/emote/proc/check_cooldown(mob/user, intentional)
code/datums/emotes.dm/datum/emote/proc/run_emote(mob/user, params, type_override, intentional = FALSE)
code/modules/mob/living/carbon/carbon_defense.dm/mob/living/carbon/proc/help_shake_act(mob/living/carbon/M)
+

TG File Changes:

+
    +
  • code/datums/emotes.dm
  • +
  • code/modules/mob/living/emote.dm
  • +
  • code/modules/mob/living/carbon/emote.dm
  • +
+

Defines:

+ + +
File LocationDefines
code/__DEFINES/~skyrat_defines/traits.dm#define TRAIT_EXCITABLE "wagwag"
modular_skyrat/modules/emotes/code/emotes.dm#define EMOTE_DELAY
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+
    +
  • Gandalf2k15 - porting and refactoring
  • +
  • Avunia Takiya +
      +
    • refactoring code
    • +
    • adjusting existing sound files
    • +
    • adding more emotes
    • +
    +
  • +
  • TheOOZ Additional emotes +
      +
    • overlay emotes
    • +
    • turf emotes
    • +
    +
  • +
  • VOREstation - a couple of the soundfiles and emote texts
  • +
\ No newline at end of file diff --git a/modular_skyrat/modules/encounters/code/nri_raiders.html b/modular_skyrat/modules/encounters/code/nri_raiders.html new file mode 100644 index 0000000000000..ec9f0c94a092a --- /dev/null +++ b/modular_skyrat/modules/encounters/code/nri_raiders.html @@ -0,0 +1 @@ +modular_skyrat/modules/encounters/code/nri_raiders.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/encounters/code/nri_raiders.dm

INSPECTION_LISTPossible places/departments to inspect
NRI_JOB_LISTList of possible decorative job titles for additional roleplay potential
NRI_LEADER_JOB_LISTList of possible decorative leader job titles for additional roleplay potential
CONFISCATE_LOWERAmount of items to "confiscate", lower amount
CONFISCATE_HIGHERAmount of items to "confiscate", higher amount
/datum/pirate_gang/nri_raidersNRI police patrol with a mission to find out if the fine reason is legitimate and then act from there.

Define Details

CONFISCATE_HIGHER

Amount of items to "confiscate", higher amount

CONFISCATE_LOWER

Amount of items to "confiscate", lower amount

INSPECTION_LIST

Possible places/departments to inspect

NRI_JOB_LIST

List of possible decorative job titles for additional roleplay potential

NRI_LEADER_JOB_LIST

List of possible decorative leader job titles for additional roleplay potential

\ No newline at end of file diff --git a/modular_skyrat/modules/escape_menu/code.html b/modular_skyrat/modules/escape_menu/code.html new file mode 100644 index 0000000000000..443c2e5ecdce8 --- /dev/null +++ b/modular_skyrat/modules/escape_menu/code.html @@ -0,0 +1,13 @@ +modular_skyrat/modules/escape_menu/code/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/escape_menu/code/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/19291

+

Title:

+

SR escape menu customisation +MODULE ID: ESCAPE_MENU

+

Description:

+

Adds SR specific functionality to the escape menu

+

TG Proc/File Changes:

+

code/modules/escape_menu/home_page.dm +code/modules/escape_menu/escape_menu.dm

+

Defines:

+

N/A

+

Credits:

+

LT3

\ No newline at end of file diff --git a/modular_skyrat/modules/events.html b/modular_skyrat/modules/events.html new file mode 100644 index 0000000000000..d30b4cd4f4ee1 --- /dev/null +++ b/modular_skyrat/modules/events.html @@ -0,0 +1,15 @@ +modular_skyrat/modules/events/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/events/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pulls

+

Title: Events

+

MODULE ID: EVENT

+

Description:

+

Changes to the existing TG events, aswell our own events

+

TG Proc Changes:

Defines:

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Azarak

\ No newline at end of file diff --git a/modular_skyrat/modules/examinemore/code.html b/modular_skyrat/modules/examinemore/code.html new file mode 100644 index 0000000000000..22f9779df213f --- /dev/null +++ b/modular_skyrat/modules/examinemore/code.html @@ -0,0 +1,22 @@ +modular_skyrat/modules/examinemore/code/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/examinemore/code/readme.md

Title: Special Examine System

+

MODULE ID: examinemore

+

Description:

+

Adds a system for setting special descriptors for items that trigger dependant on the below defines. Please check the files for more information.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • code__DEFINES~skyrat_defines\examine_defines.dm
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Gandalf2k15 - OG code

\ No newline at end of file diff --git a/modular_skyrat/modules/faction.html b/modular_skyrat/modules/faction.html new file mode 100644 index 0000000000000..4fdb7878fd155 --- /dev/null +++ b/modular_skyrat/modules/faction.html @@ -0,0 +1,22 @@ +modular_skyrat/modules/faction/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/faction/readme.md

Title: Faction.

+

MODULE ID: FACTION

+

Description:

+

This adds a set of content introducing a new faction, including their own access, radio frequency, outfits and map prefabs. This is to be used with the Event Spawners Menu for easy event organisation.

+

TG Proc Changes:

+
    +
  • Please see changed files on PR. Skyrat tags applied.
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Azarak

\ No newline at end of file diff --git a/modular_skyrat/modules/food_replicator/code/replicator_designs/replicator_food.html b/modular_skyrat/modules/food_replicator/code/replicator_designs/replicator_food.html new file mode 100644 index 0000000000000..ece4f2d0d0018 --- /dev/null +++ b/modular_skyrat/modules/food_replicator/code/replicator_designs/replicator_food.html @@ -0,0 +1 @@ +modular_skyrat/modules/food_replicator/code/replicator_designs/replicator_food.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/food_replicator/code/replicator_designs/replicator_food.dm

/datum/design/glucoseDespite being in the medical.dm file, it's still used to fill your hunger up, as such, technically, is food.
\ No newline at end of file diff --git a/modular_skyrat/modules/ghostcafe.html b/modular_skyrat/modules/ghostcafe.html new file mode 100644 index 0000000000000..242811bdfb824 --- /dev/null +++ b/modular_skyrat/modules/ghostcafe.html @@ -0,0 +1,23 @@ +modular_skyrat/modules/ghostcafe/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/ghostcafe/readme.md

Title: Ghost Cafe

+

MODULE ID: GHOSTCAFE

+

Description:

+

Ports the Ghost Cafe that Kathrin made for the old codebase. This folder will contain the necessary code, icons and objects used.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

KathrinBailey - Making the ghost cafe +Ranged66 - Porting

\ No newline at end of file diff --git a/modular_skyrat/modules/gladiator.html b/modular_skyrat/modules/gladiator.html new file mode 100644 index 0000000000000..5882648226521 --- /dev/null +++ b/modular_skyrat/modules/gladiator.html @@ -0,0 +1 @@ +modular_skyrat/modules/gladiator/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/gladiator/readme.md

bob joga was here

\ No newline at end of file diff --git a/modular_skyrat/modules/gladiator/code/modules/mob/living/simple_animal/hostile/megafauna/markedone.html b/modular_skyrat/modules/gladiator/code/modules/mob/living/simple_animal/hostile/megafauna/markedone.html new file mode 100644 index 0000000000000..2e6b4257ed94b --- /dev/null +++ b/modular_skyrat/modules/gladiator/code/modules/mob/living/simple_animal/hostile/megafauna/markedone.html @@ -0,0 +1 @@ +modular_skyrat/modules/gladiator/code/modules/mob/living/simple_animal/hostile/megafauna/markedone.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/gladiator/code/modules/mob/living/simple_animal/hostile/megafauna/markedone.dm

/mob/living/simple_animal/hostile/megafauna/gladiatorA mean-ass single-combat sword-wielding nigh-demigod that is nothing but a walking, talking, breathing Berserk reference. He do kill shit doe!
\ No newline at end of file diff --git a/modular_skyrat/modules/goofsec.html b/modular_skyrat/modules/goofsec.html new file mode 100644 index 0000000000000..64d33a7f237ff --- /dev/null +++ b/modular_skyrat/modules/goofsec.html @@ -0,0 +1,22 @@ +modular_skyrat/modules/goofsec/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/goofsec/readme.md

Title: GoofSec

+

MODULE ID: GoofSec

+

Description:

+

Fixing Security for Skyrat. Includes the defines for Security guns, the new Departmental Guards, and the new SSC Sheriff/Deputies.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Iamgoofball

\ No newline at end of file diff --git a/modular_skyrat/modules/gun_safety.html b/modular_skyrat/modules/gun_safety.html new file mode 100644 index 0000000000000..34c3f7caa5900 --- /dev/null +++ b/modular_skyrat/modules/gun_safety.html @@ -0,0 +1,23 @@ +modular_skyrat/modules/gun_safety/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/gun_safety/readme.md

Title: Gun safeties!

+

MODULE ID: gunsafety

+

Description:

+

Adds a huge QOL feature, GUN SAFTIES.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Gandalf2k15 - OG code +Paxilmaniac - Turned it into a component

\ No newline at end of file diff --git a/modular_skyrat/modules/gun_safety/code/safety_component.html b/modular_skyrat/modules/gun_safety/code/safety_component.html new file mode 100644 index 0000000000000..9e7429a6f3a75 --- /dev/null +++ b/modular_skyrat/modules/gun_safety/code/safety_component.html @@ -0,0 +1 @@ +modular_skyrat/modules/gun_safety/code/safety_component.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/gun_safety/code/safety_component.dm

/datum/component/gun_safetyComponent that will prevent a gun from firing if the safety is turned on
\ No newline at end of file diff --git a/modular_skyrat/modules/gunhud.html b/modular_skyrat/modules/gunhud.html new file mode 100644 index 0000000000000..c3386f1a61a82 --- /dev/null +++ b/modular_skyrat/modules/gunhud.html @@ -0,0 +1,25 @@ +modular_skyrat/modules/gunhud/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/gunhud/readme.md

Title: Gunpoint

+

MODULE ID: GUNHUD

+

Description:

+

Adds a dynamic hud system for energy and some ballistics guns.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+

.code__DEFINES\atom_hud.dm > #define AMMO_HUD "25"

+

.code\modules\projectiles\guns\ballistic.dm > /obj/item/gun/ballistic/examine(mob/user)

+

Master file additions

+
    +
  • Hud directory > _defines.dm, human.dm, hud.dm
  • +
  • modular_skyrat\master_files\code\game\objects\items\tools\weldingtool.dm: proc/Initialize, proc/set_welding
  • +
  • modular_skyrat\master_files\code\modules\projectiles\guns\ballistic.dm: proc/eject_magazine, proc/insert_magazine
  • +
  • modular_skyrat\master_files\code\modules\projectiles\guns\energy.dm: proc/process, proc/select_fire
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Gandalf2k15 - OG creation. +Larentoun - modularisation

\ No newline at end of file diff --git a/modular_skyrat/modules/gunpoint.html b/modular_skyrat/modules/gunpoint.html new file mode 100644 index 0000000000000..fbb3e7ff91309 --- /dev/null +++ b/modular_skyrat/modules/gunpoint.html @@ -0,0 +1,28 @@ +modular_skyrat/modules/gunpoint/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/gunpoint/readme.md

Title: Gunpoint

+

MODULE ID: GUNPOINT

+

Description:

+

Allows anyone with a gun to use SHIFT + MMB to hold someone at gunpoint, much like how baystation does it, but in a more visually clear way

+

TG Proc Changes:

+

./modular_skyrat/modules/gunpoint/code/datum/gunpoint/gunpoint.dm > /mob/living/ShiftMiddleClickOn() > CHILD PROC +./code/_onclick/hud/radial.dm > /datum/radial_menu/proc/setup_menu() +./code/_onclick/item_attack.dm > /obj/item/proc/attack_self() +./code/game/objects/items/devices/radio/radio.dm > /obj/item/radio/talk_into() +./code/game/objects/items/devices/radio/headset.dm > /obj/item/radio/headset/talk_into() +./code/modules/mob/living/carbon/human/examine.dm > /mob/living/carbon/human/examine() +./code/modules/mob/living/living.dm > /mob/living/proc/update_mobility() +./code/modules/mob/living/living.dm > /mob/living/proc/MobBump() +./code/modules/mob/mob_movement.dm > /mob/proc/toggle_move_intent()

+

Defines:

+

./code/_onclick/hud/radial.dm > /datum/radial_menu - var/icon_path +./code/__DEFINES/~skyrat_defines/signals.dm - COMSIG_MOVABLE_RADIO_TALK_INTO, COMSIG_LIVING_UPDATED_RESTING +./code/__DEFINES/~skyrat_defines/traits.dm - TRAIT_NORUNNING

+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Azarak - original code & porting

\ No newline at end of file diff --git a/modular_skyrat/modules/hev_suit.html b/modular_skyrat/modules/hev_suit.html new file mode 100644 index 0000000000000..c5dac28bbdc1a --- /dev/null +++ b/modular_skyrat/modules/hev_suit.html @@ -0,0 +1,9 @@ +modular_skyrat/modules/hev_suit/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/hev_suit/readme.md

Title: HEV Mark IV

+

MODULE ID: hev

+

Description:

+

Adds a fully functional HEV suit.

+

Credits:

+

Gandalf2k15 - All code +Sojourn/Eris - Helmet Sprites - Modified by Gandalf2k15 +Crowbar Collective - HEV sounds - Modified by Gandalf2k15 +Hippiestation - HEV sprites - Modified by Gandalf2k15

\ No newline at end of file diff --git a/modular_skyrat/modules/holdingfashion_port.html b/modular_skyrat/modules/holdingfashion_port.html new file mode 100644 index 0000000000000..d3a2094b39165 --- /dev/null +++ b/modular_skyrat/modules/holdingfashion_port.html @@ -0,0 +1,23 @@ +modular_skyrat/modules/holdingfashion_port/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/holdingfashion_port/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/

+

Title: Satchel and duffel bag of holding port

+

MODULE ID: HOLDINGFASHION_PORT

+

Description:

+

Ports satchel and duffel bag of holding from Skyrat13

+

TG Proc/File Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Folkess (Port)

\ No newline at end of file diff --git a/modular_skyrat/modules/horrorform.html b/modular_skyrat/modules/horrorform.html new file mode 100644 index 0000000000000..e691b754cb1f6 --- /dev/null +++ b/modular_skyrat/modules/horrorform.html @@ -0,0 +1,25 @@ +modular_skyrat/modules/horrorform/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/horrorform/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/241

+

Title: Changeling Horror Form

+

MODULE ID: HORROR_FORM

+

Description:

+

Allows changelings to turn into the simple_mob horror_form which they are powerful but slow and loud. Can change back too.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • modular_skyrat\master_files\sound\misc\tear.ogg
  • +
  • modular_skyrat\master_files\sound\effects\horror_scream_reverb.ogg
  • +
  • modular_skyrat\master_files\sound\effects\horror_scream.ogg
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Gandalf2k15 - porting & refactoring

\ No newline at end of file diff --git a/modular_skyrat/modules/huds.html b/modular_skyrat/modules/huds.html new file mode 100644 index 0000000000000..876e7500953c8 --- /dev/null +++ b/modular_skyrat/modules/huds.html @@ -0,0 +1,10 @@ +modular_skyrat/modules/huds/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/huds/readme.md

Title: Prescription HUDS

+

MODULE ID: HUDS

+

Description:

+

Adds Prescription HUDS to the game and loadout.

+

TG Proc Changes:

+

N/A

+

Defines:

+

N/A

+

Credits:

+

ShadeAware - Code/Sprites

\ No newline at end of file diff --git a/modular_skyrat/modules/hydra.html b/modular_skyrat/modules/hydra.html new file mode 100644 index 0000000000000..7af2e6e7ab622 --- /dev/null +++ b/modular_skyrat/modules/hydra.html @@ -0,0 +1,28 @@ +modular_skyrat/modules/hydra/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/hydra/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/4211

+

Title: Mechanical Hydra Heads

+

MODULE ID: hydra

+

Description:

+
    +
  • Adds a baseline sprite file, sprite override files, and mechanics for supporting three voices per person
  • +
+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • TRAIT_HYDRA_HEADS
  • +
+

Master file additions

+
    +
  • modular_skyrat/master_files/code/datums/traits/neutral.dm // Added Hydra Heads trait
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+
    +
  • Yawet330 - Code
  • +
  • C0rva1r - Sprites and base idea
  • +
\ No newline at end of file diff --git a/modular_skyrat/modules/hyposprays.html b/modular_skyrat/modules/hyposprays.html new file mode 100644 index 0000000000000..18bd60ea70119 --- /dev/null +++ b/modular_skyrat/modules/hyposprays.html @@ -0,0 +1,41 @@ +modular_skyrat/modules/hyposprays/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/hyposprays/readme.md

Original PR: https://github.com/Skyrat-SS13/Skyrat-tg/pull/1929

+

Title: Hyposprays

+

MODULE ID: HYPOSPRAYS

+

Description:

+

Gives Medical back its Hyposprays. Oldbase stuff is good.

+

TG Proc Changes:

+
    +
  • CMO's locker now contains a new object, the CMO's Hypospray Kit. Old Hypospray has been commented out.
  • +
  • Chemistry lockers now contain two boxes of Standard Hypospray Kits.
  • +
  • Medical belts can carry the Mk II Hyposprays, vials, and Hypospray Kits.
  • +
  • Adds CAT_HYPOS to code/_globalvars/lists/reagents.dm to allow vials to be printed from chem dispensers.
  • +
  • Bluespace technicans get combat hypospray kits for QOL and testing.
  • +
+

Defines:

+
    +
  • #define HYPO_SPRAY 0
  • +
  • #define HYPO_INJECT 1
  • +
  • #define WAIT_SPRAY 25
  • +
  • #define WAIT_INJECT 25
  • +
  • #define SELF_SPRAY 15
  • +
  • #define SELF_INJECT 15
  • +
  • #define DELUXE_WAIT_SPRAY 0
  • +
  • #define DELUXE_WAIT_INJECT 5
  • +
  • #define DELUXE_SELF_SPRAY 10
  • +
  • #define DELUXE_SELF_INJECT 10
  • +
  • #define COMBAT_WAIT_SPRAY 0
  • +
  • #define COMBAT_WAIT_INJECT 0
  • +
  • #define COMBAT_SELF_SPRAY 0
  • +
  • #define COMBAT_SELF_INJECT 0
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

ShadeAware - Porting +CliffracerX - Tweaks & new sprites

\ No newline at end of file diff --git a/modular_skyrat/modules/hyposprays/code/autolathe_designs.html b/modular_skyrat/modules/hyposprays/code/autolathe_designs.html new file mode 100644 index 0000000000000..8a2a2bf03a5b9 --- /dev/null +++ b/modular_skyrat/modules/hyposprays/code/autolathe_designs.html @@ -0,0 +1,2 @@ +modular_skyrat/modules/hyposprays/code/autolathe_designs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/hyposprays/code/autolathe_designs.dm

/datum/design/hypovial/largeLarge hypovials
/datum/design/hypokit/deluxeHyposprays
/datum/design/penFor reasons unknown, pens are included as an autolathe design here, in the hypospray module of all places. +I'm not touching this unless a maint asks me to because it feels weird and haunted, like the picture of a potato that bricks Source if you remove it.
\ No newline at end of file diff --git a/modular_skyrat/modules/hyposprays/code/hypospray_kits.html b/modular_skyrat/modules/hyposprays/code/hypospray_kits.html new file mode 100644 index 0000000000000..e2042320fbbbf --- /dev/null +++ b/modular_skyrat/modules/hyposprays/code/hypospray_kits.html @@ -0,0 +1 @@ +modular_skyrat/modules/hyposprays/code/hypospray_kits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/hyposprays/code/hypospray_kits.dm

/obj/item/storage/hypospraykit/cmoDeluxe hypokit: more storage, but you can't pocket it.
/obj/item/storage/hypospraykit/cmo/preloadedPreloaded version: this is what goes in the locker.
/obj/item/storage/hypospraykit/cmo/combatCombat hypokit
/obj/item/storage/box/vialsBoxes of empty hypovials, coming in every style.
\ No newline at end of file diff --git a/modular_skyrat/modules/ices_events.html b/modular_skyrat/modules/ices_events.html new file mode 100644 index 0000000000000..e1f719014c114 --- /dev/null +++ b/modular_skyrat/modules/ices_events.html @@ -0,0 +1,14 @@ +modular_skyrat/modules/ices_events/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/ices_events/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/19505

+

Title: ICES - Intensity Credit Events System

+

MODULE ID: ICES_EVENTS

+

Description:

+

Documentation: https://hackmd.io/@lessthanthree/HJKVFH0yn

+

Based on the TG weighted random events system, a mostly modular system to run random events based on a system of weights and intensity. +Includes some new Skyrat-specific custom events.

+

TG Proc Changes:

Defines:

Master file additions

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

LT3 +Discord: lessthanthree#0003 122553868985827329

\ No newline at end of file diff --git a/modular_skyrat/modules/ices_events/code/ICES_intensity_credits.html b/modular_skyrat/modules/ices_events/code/ICES_intensity_credits.html new file mode 100644 index 0000000000000..db95485b91b50 --- /dev/null +++ b/modular_skyrat/modules/ices_events/code/ICES_intensity_credits.html @@ -0,0 +1,4 @@ +modular_skyrat/modules/ices_events/code/ICES_intensity_credits.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/ices_events/code/ICES_intensity_credits.dm

REMOVE_INTENSITY_CREDIT

Define Details

REMOVE_INTENSITY_CREDIT

    +
  • // BUBBER EDIT BEGIN
  • +
  • Abductors
  • +
\ No newline at end of file diff --git a/modular_skyrat/modules/ices_events/code/ICES_tgui.html b/modular_skyrat/modules/ices_events/code/ICES_tgui.html new file mode 100644 index 0000000000000..6ff5badebef96 --- /dev/null +++ b/modular_skyrat/modules/ices_events/code/ICES_tgui.html @@ -0,0 +1 @@ +modular_skyrat/modules/ices_events/code/ICES_tgui.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/ices_events/code/ICES_tgui.dm

/datum/admin_verb/intensity_credits_panelAllows an admin to open the panel
/datum/intensity_credits_panelICES panel
\ No newline at end of file diff --git a/modular_skyrat/modules/ices_events/code/effects/ef_foam.html b/modular_skyrat/modules/ices_events/code/effects/ef_foam.html new file mode 100644 index 0000000000000..a220b6d4a7ce1 --- /dev/null +++ b/modular_skyrat/modules/ices_events/code/effects/ef_foam.html @@ -0,0 +1 @@ +modular_skyrat/modules/ices_events/code/effects/ef_foam.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/ices_events/code/effects/ef_foam.dm

/obj/effect/particle_effect/fluid/foam/intermediate_lifeA foam variant which dissipates after a duration.
\ No newline at end of file diff --git a/modular_skyrat/modules/ices_events/code/events/ev_roleplay_check.html b/modular_skyrat/modules/ices_events/code/events/ev_roleplay_check.html new file mode 100644 index 0000000000000..10c1d8ac9ce41 --- /dev/null +++ b/modular_skyrat/modules/ices_events/code/events/ev_roleplay_check.html @@ -0,0 +1 @@ +modular_skyrat/modules/ices_events/code/events/ev_roleplay_check.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/ices_events/code/events/ev_roleplay_check.dm

/proc/engaged_role_play_checkChecks if a player meets certain conditions to exclude them from event selection.
\ No newline at end of file diff --git a/modular_skyrat/modules/icspawning.html b/modular_skyrat/modules/icspawning.html new file mode 100644 index 0000000000000..7ce7fe8f2ff8a --- /dev/null +++ b/modular_skyrat/modules/icspawning.html @@ -0,0 +1,20 @@ +modular_skyrat/modules/icspawning/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/icspawning/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/104

+

Title: IC Spawning for admins

+

MODULE ID: ICSPAWNING

+

Description:

+

Adds a control click function to ghosts which allows an admin to spawn the player in via a supply pod or teleportation with effects, also adds a bluespace tech loadout and some bluespace tech +items.

+

TG Proc Changes:

+

N/A

+

Defines:

+

N/A

+

Included files:

+
    +
  • ./cards_ids.dm
  • +
  • ./observer.dm
  • +
  • ./spell.dm
  • +
  • ./standard.dm
  • +
+

Credits:

+

Gandalf2k15 - Porting +BunBun - Cration

\ No newline at end of file diff --git a/modular_skyrat/modules/implants.html b/modular_skyrat/modules/implants.html new file mode 100644 index 0000000000000..975b68e55c993 --- /dev/null +++ b/modular_skyrat/modules/implants.html @@ -0,0 +1,21 @@ +modular_skyrat/modules/implants/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/implants/readme.md

PUT THE LINK HERE!!!!!!!

+

Title: Implant time bitch

+

MODULE ID: IMPLANTS

+

Description:

+

Ports over the implant expansion from the old base.

+

TG Proc Changes:

+

N/A

+

Defines:

+
    +
  • #define ORGAN_SLOT_SCANNER "scanner"
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • Master_Files now has a sound folder. Currently only holds the bloodyslice.ogg sound effect for the arm blade, but it can be used by anyone really.
  • +
+

Credits:

+

ShadeAware - Code, Sprites

\ No newline at end of file diff --git a/modular_skyrat/modules/implants/code/augments_arms.html b/modular_skyrat/modules/implants/code/augments_arms.html new file mode 100644 index 0000000000000..26c1bdd107d07 --- /dev/null +++ b/modular_skyrat/modules/implants/code/augments_arms.html @@ -0,0 +1 @@ +modular_skyrat/modules/implants/code/augments_arms.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/implants/code/augments_arms.dm

/obj/item/organ/internal/cyberimp/arm/razor_claws/right_armbespoke subtypes for augs menu since it's a bit wonky
\ No newline at end of file diff --git a/modular_skyrat/modules/imported_vendors.html b/modular_skyrat/modules/imported_vendors.html new file mode 100644 index 0000000000000..1c7740f30d230 --- /dev/null +++ b/modular_skyrat/modules/imported_vendors.html @@ -0,0 +1,22 @@ +modular_skyrat/modules/imported_vendors/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/imported_vendors/readme.md

Title: ImportedVendors

+

MODULE ID: CulturalVendors

+

Description:

+

Adds random, imported food and drink vendors to the pool of snack vendors that can spawn across the maps

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Paxilmaniac

\ No newline at end of file diff --git a/modular_skyrat/modules/indicators.html b/modular_skyrat/modules/indicators.html new file mode 100644 index 0000000000000..975b57f5890be --- /dev/null +++ b/modular_skyrat/modules/indicators.html @@ -0,0 +1,32 @@ +modular_skyrat/modules/indicators/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/indicators/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/9922 -- Mech CI PR from Niko

+

Title: Indicators

+

MODULE ID: INDICATORS

+

Description:

+

The compilation of all player indicators (CI, SSD, Typing) +Combat Indicator - Toggleable by players, declares intent to engage in combat +SSD Indicator - Automatically shows when a player has disconnected +Typing Indicator - Shows when a player is typing

+

TG Proc Changes:

+

Combat Indicator

+
    +
  • ADDITION: code/modules/mob/living/death.dm > /mob/living/death()
  • +
  • CHANGE: code/datums/keybinding/mob.dm > /datum/keybinding/mob/toggle_move_intent() +Typing Indicator
  • +
  • APPEND: code/modules/keybindings/setup.dm > /datum/proc/key_down()
  • +
  • ADDITION: code/onclick/_click.dm > /mob/proc/ClickOn()
  • +
  • ADDITION: code/modules/mob/mob_say.dm > /mob/verb/say_verb(), /mob/verb/me_verb()
  • +
  • CHANGE: code\modules\mob\living\living_say.dm > /mob/living/send_speech
  • +
  • ADDITION: code/modules/mob/living/death.dm > /mob/living/death() +SSD Indicator +./code/modules/mob/living/carbon/human/examine.dm > /mob/living/carbon/human/examine()
  • +
  • ADDITION: code/modules/mob/living/death.dm > /mob/living/death()
  • +
+

Defines:

+

N/A

+

Included files:

+

N/A

+

Credits:

+

Azarak - Porting and OG code for Combat Indicator, Typing Indicator, SSD Indicator +FlamingLily - Consolidation, surrender alert +Niko - making CI work with mechs and stuff +GoldenAlphrex - Being invaluably helpful in telling me (niko) how to do things

\ No newline at end of file diff --git a/modular_skyrat/modules/inflatables.html b/modular_skyrat/modules/inflatables.html new file mode 100644 index 0000000000000..0049ec0750481 --- /dev/null +++ b/modular_skyrat/modules/inflatables.html @@ -0,0 +1,22 @@ +modular_skyrat/modules/inflatables/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/inflatables/readme.md

Title: Inflatable Walls

+

MODULE ID: INFLATABLES

+

Description:

+

Adds inflatable walls to the game, which will hopefully replace atmos holofans.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Gandalf2k15 - Porting & OG

\ No newline at end of file diff --git a/modular_skyrat/modules/inflatables/code/inflatable.html b/modular_skyrat/modules/inflatables/code/inflatable.html new file mode 100644 index 0000000000000..52a729d9d5d73 --- /dev/null +++ b/modular_skyrat/modules/inflatables/code/inflatable.html @@ -0,0 +1 @@ +modular_skyrat/modules/inflatables/code/inflatable.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/inflatables/code/inflatable.dm

/datum/storage/inflatables_boxThe storage for the inflatables box.
/obj/item/storage/inflatableThe box full of inflatables
\ No newline at end of file diff --git a/modular_skyrat/modules/interaction_menu/code/interaction_datum.html b/modular_skyrat/modules/interaction_menu/code/interaction_datum.html new file mode 100644 index 0000000000000..2aaa04bf4b89e --- /dev/null +++ b/modular_skyrat/modules/interaction_menu/code/interaction_datum.html @@ -0,0 +1 @@ +modular_skyrat/modules/interaction_menu/code/interaction_datum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/interaction_menu/code/interaction_datum.dm

/proc/populate_interaction_instancesGlobal loading procs
\ No newline at end of file diff --git a/modular_skyrat/modules/jukebox.html b/modular_skyrat/modules/jukebox.html new file mode 100644 index 0000000000000..9c520fa0b7192 --- /dev/null +++ b/modular_skyrat/modules/jukebox.html @@ -0,0 +1,24 @@ +modular_skyrat/modules/jukebox/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/jukebox/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/892

+

Title: Jukebox

+

MODULE ID: JUKEBOX

+

Description:

+

Adds a new sound system for the jukebox, and also updates the jukebox to be good.

+

TG Proc Changes:

+
    +
  • Skyrat-tg\code__DEFINES\sound.dm > DEFINES CHANGED, SEE FILE.
  • +
+

Defines:

+
    +
  • #define CHANNEL_JUKEBOX_START 1016
  • +
+

Master file additions

+
    +
  • modular_skyrat\master_files\code\game\sound.dm
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Gandalf2k15 - porting +NotRanged - Original code

\ No newline at end of file diff --git a/modular_skyrat/modules/jukebox/code/dance_machine.html b/modular_skyrat/modules/jukebox/code/dance_machine.html new file mode 100644 index 0000000000000..ebfe74c7995d8 --- /dev/null +++ b/modular_skyrat/modules/jukebox/code/dance_machine.html @@ -0,0 +1 @@ +modular_skyrat/modules/jukebox/code/dance_machine.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/jukebox/code/dance_machine.dm

HAS_JUKEBOX_PREFHelper macro to check if the passed mob has jukebox sound preference enabled

Define Details

HAS_JUKEBOX_PREF

Helper macro to check if the passed mob has jukebox sound preference enabled

\ No newline at end of file diff --git a/modular_skyrat/modules/jukebox/code/ravemod.html b/modular_skyrat/modules/jukebox/code/ravemod.html new file mode 100644 index 0000000000000..285f92a1bd5cc --- /dev/null +++ b/modular_skyrat/modules/jukebox/code/ravemod.html @@ -0,0 +1 @@ +modular_skyrat/modules/jukebox/code/ravemod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/jukebox/code/ravemod.dm

/obj/item/mod/module/visor/raveRave Visor - Gives you a rainbow visor and plays jukebox music to you.
\ No newline at end of file diff --git a/modular_skyrat/modules/jungle.html b/modular_skyrat/modules/jungle.html new file mode 100644 index 0000000000000..3c7bb3a66d934 --- /dev/null +++ b/modular_skyrat/modules/jungle.html @@ -0,0 +1,22 @@ +modular_skyrat/modules/jungle/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/jungle/readme.md

Title: Ghost Cafe

+

MODULE ID: Jungle Objects

+

Description:

+

Contains many objects - plants and the like - that belonged to the oldbase jungle. Currently used in ghost cafe.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Ranged66 - Porting

\ No newline at end of file diff --git a/modular_skyrat/modules/kahraman_equipment/sound/attributions.html b/modular_skyrat/modules/kahraman_equipment/sound/attributions.html new file mode 100644 index 0000000000000..87ba618b49914 --- /dev/null +++ b/modular_skyrat/modules/kahraman_equipment/sound/attributions.html @@ -0,0 +1,8 @@ +modular_skyrat/modules/kahraman_equipment/sound/attributions.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/kahraman_equipment/sound/attributions.txt

The sounds at modular_skyrat/modules/colony_fabriactor_event_code/sound/thumper_fan are from https://pixabay.com/sound-effects/fan-1-6360/
+
+The sounds at modular_skyrat/modules/colony_fabriactor_event_code/sound/thumper_thump are from https://pixabay.com/sound-effects/punch-press-10-ton-clip1-104921/
+
+The following sounds are from https://pixabay.com/sound-effects/sos-signal-137144/
+
+modular_skyrat/modules/colony_fabricator/sound/morse_signal.wav
+
\ No newline at end of file diff --git a/modular_skyrat/modules/layer_shift.html b/modular_skyrat/modules/layer_shift.html new file mode 100644 index 0000000000000..dc12d5055cac5 --- /dev/null +++ b/modular_skyrat/modules/layer_shift.html @@ -0,0 +1,8 @@ +modular_skyrat/modules/layer_shift/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/layer_shift/readme.md

Title: Pixel shifting for RP positioning

+

MODULE ID: LAYER_SHIFT

+

Description:

+

This module adds 2 verbs that lets mobs shift their layer var ever so slightly to complement pixel-shifting, in order to maintain IC hierarchy of who should be showing up above one another sprite-wise.

+

TG Proc Changes:

Defines:

Included files:

+

N/A

+

Credits:

+

Ranged66 - Coding

\ No newline at end of file diff --git a/modular_skyrat/modules/layer_shift/code/mob_movement.html b/modular_skyrat/modules/layer_shift/code/mob_movement.html new file mode 100644 index 0000000000000..d1e6fcd5ff7ff --- /dev/null +++ b/modular_skyrat/modules/layer_shift/code/mob_movement.html @@ -0,0 +1,3 @@ +modular_skyrat/modules/layer_shift/code/mob_movement.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/layer_shift/code/mob_movement.dm

MOB_LAYER_MULTIPLIERThe amount by which layers are multiplied before being modified. +Helps avoiding floating point errors.

Define Details

MOB_LAYER_MULTIPLIER

The amount by which layers are multiplied before being modified. +Helps avoiding floating point errors.

\ No newline at end of file diff --git a/modular_skyrat/modules/liquids/code/liquid_systems/liquid_groups.html b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_groups.html new file mode 100644 index 0000000000000..359a39810f4df --- /dev/null +++ b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_groups.html @@ -0,0 +1 @@ +modular_skyrat/modules/liquids/code/liquid_systems/liquid_groups.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/liquids/code/liquid_systems/liquid_groups.dm

/datum/liquid_groupA group of any liquids, helps not make processing a pain in the ass by handling all the turfs as one big group
\ No newline at end of file diff --git a/modular_skyrat/modules/liquids/code/liquid_systems/liquid_height.html b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_height.html new file mode 100644 index 0000000000000..2cb79a50befa2 --- /dev/null +++ b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_height.html @@ -0,0 +1 @@ +modular_skyrat/modules/liquids/code/liquid_systems/liquid_height.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/liquids/code/liquid_systems/liquid_height.dm

/datum/element/liquids_heightLiquid Height element; for dynamically applying liquid blockages.
\ No newline at end of file diff --git a/modular_skyrat/modules/liquids/code/liquid_systems/liquid_interaction.html b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_interaction.html new file mode 100644 index 0000000000000..5cf4d52e32888 --- /dev/null +++ b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_interaction.html @@ -0,0 +1 @@ +modular_skyrat/modules/liquids/code/liquid_systems/liquid_interaction.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/liquids/code/liquid_systems/liquid_interaction.dm

/datum/component/liquids_interactionThis element allows for items to interact with liquids on turfs.
\ No newline at end of file diff --git a/modular_skyrat/modules/liquids/code/liquid_systems/liquid_plumbers.html b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_plumbers.html new file mode 100644 index 0000000000000..c5402d60b6991 --- /dev/null +++ b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_plumbers.html @@ -0,0 +1 @@ +modular_skyrat/modules/liquids/code/liquid_systems/liquid_plumbers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/liquids/code/liquid_systems/liquid_plumbers.dm

/obj/machinery/plumbing/floor_pumpBase class for underfloor plumbing machines that mess with floor liquids.
\ No newline at end of file diff --git a/modular_skyrat/modules/lorecaster.html b/modular_skyrat/modules/lorecaster.html new file mode 100644 index 0000000000000..f53c2485e448c --- /dev/null +++ b/modular_skyrat/modules/lorecaster.html @@ -0,0 +1,22 @@ +modular_skyrat/modules/lorecaster/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/lorecaster/readme.md

Title: Lorecasters

+

MODULE ID: LORECASTERS

+

Description:

+

For broadcasting lore-related stories via newscasters and the archives app. +To add a story to rotation, add it to config/skyrat/news_stories.json, ideally at the top of the file for maximum organization +Once a story's been out too long, or there's too many in circulation, move older ones to config/skyrat/archived_stories.json, again ideally add it to the top (however these entries auto-sort by date in-game)

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
\ No newline at end of file diff --git a/modular_skyrat/modules/manufacturer_examine.html b/modular_skyrat/modules/manufacturer_examine.html new file mode 100644 index 0000000000000..036fd04135378 --- /dev/null +++ b/modular_skyrat/modules/manufacturer_examine.html @@ -0,0 +1,21 @@ +modular_skyrat/modules/manufacturer_examine/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/manufacturer_examine/readme.md

Title: Manufacturer Examine

Description:

+

Tells you what company made what item this component is attached to, originally for guns

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Zonespace - Did the whole manufacturer thing originally I think +Paxilmaniac - Turned it into a component

\ No newline at end of file diff --git a/modular_skyrat/modules/manufacturer_examine/code/manufacturer_element.html b/modular_skyrat/modules/manufacturer_examine/code/manufacturer_element.html new file mode 100644 index 0000000000000..966d0050c1034 --- /dev/null +++ b/modular_skyrat/modules/manufacturer_examine/code/manufacturer_element.html @@ -0,0 +1 @@ +modular_skyrat/modules/manufacturer_examine/code/manufacturer_element.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/manufacturer_examine/code/manufacturer_element.dm

/datum/element/manufacturer_examineElement that will tell anyone who examines the parent what company made it
\ No newline at end of file diff --git a/modular_skyrat/modules/mapping.html b/modular_skyrat/modules/mapping.html new file mode 100644 index 0000000000000..a26977263dd0c --- /dev/null +++ b/modular_skyrat/modules/mapping.html @@ -0,0 +1,23 @@ +modular_skyrat/modules/mapping/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/mapping/readme.md

Title: Mapping

+

MODULE ID: MAPPING

+

Description:

+

For adding new assets to be utilised by mappers and admins in-game. +Aesthetics is for reskinning stuff, this is for new assets. Got a new Halloween-themed turf for an event map? Goes here.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Floof Ball

\ No newline at end of file diff --git a/modular_skyrat/modules/mapping/code/areas/space.html b/modular_skyrat/modules/mapping/code/areas/space.html new file mode 100644 index 0000000000000..ae32583f75e81 --- /dev/null +++ b/modular_skyrat/modules/mapping/code/areas/space.html @@ -0,0 +1 @@ +modular_skyrat/modules/mapping/code/areas/space.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/mapping/code/areas/space.dm

/area/ruin/space/has_grav/cybersunCybersun, Forgotten Ship
/area/ruin/space/has_grav/powered/skyrat/smuggliesGeneric Skyrat Ruins
/area/ruin/space/has_grav/skyrat/interdynefobInterdyne, Forward Operating Base
\ No newline at end of file diff --git a/modular_skyrat/modules/mapping/code/interlink_helper.html b/modular_skyrat/modules/mapping/code/interlink_helper.html new file mode 100644 index 0000000000000..bb9750f8413ef --- /dev/null +++ b/modular_skyrat/modules/mapping/code/interlink_helper.html @@ -0,0 +1 @@ +modular_skyrat/modules/mapping/code/interlink_helper.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/mapping/code/interlink_helper.dm

INIT_ANNOUNCEA file to help with making it possible to load the Interlink modularly instead of leaving it stuck in Z-2 where station should be and spawning all manner of bad behaviour.

Define Details

INIT_ANNOUNCE

A file to help with making it possible to load the Interlink modularly instead of leaving it stuck in Z-2 where station should be and spawning all manner of bad behaviour.

\ No newline at end of file diff --git a/modular_skyrat/modules/mapping/code/pool.html b/modular_skyrat/modules/mapping/code/pool.html new file mode 100644 index 0000000000000..232f7c1021f6d --- /dev/null +++ b/modular_skyrat/modules/mapping/code/pool.html @@ -0,0 +1 @@ +modular_skyrat/modules/mapping/code/pool.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/mapping/code/pool.dm

/turf/open/water/overlayPlanetside water, indestructible.
/turf/open/water/overlay/outdoorsPlanetside water, indestructible.
/turf/open/water/overlay/hotspringHotpsrings! They give a positive mood event.
\ No newline at end of file diff --git a/modular_skyrat/modules/mapping/code/space_hotel.html b/modular_skyrat/modules/mapping/code/space_hotel.html new file mode 100644 index 0000000000000..2e372a3a58070 --- /dev/null +++ b/modular_skyrat/modules/mapping/code/space_hotel.html @@ -0,0 +1 @@ +modular_skyrat/modules/mapping/code/space_hotel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/mapping/code/space_hotel.dm

/obj/item/permanent_portal_creatorA simple one-use beacon to activate a two-way portal to the anchored receiver it's linked to.
\ No newline at end of file diff --git a/modular_skyrat/modules/mapping/code/turf_decals.html b/modular_skyrat/modules/mapping/code/turf_decals.html new file mode 100644 index 0000000000000..a1e75a119bcea --- /dev/null +++ b/modular_skyrat/modules/mapping/code/turf_decals.html @@ -0,0 +1 @@ +modular_skyrat/modules/mapping/code/turf_decals.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/mapping/code/turf_decals.dm

/obj/effect/turf_decal/skyrat_decals/syndicate/bottom/leftSYNDICATE EMBLEM
/obj/effect/turf_decal/skyrat_decals/enclaveENCLAVE EMBLEM
/obj/effect/turf_decal/skyrat_decals/departments/bridgeDepartments
/obj/effect/turf_decal/skyrat_decals/ds2/leftDS-2 Sign
/obj/effect/turf_decal/skyrat_decals/misc/handicappedMisc
\ No newline at end of file diff --git a/modular_skyrat/modules/mapping/code/wardrobes.html b/modular_skyrat/modules/mapping/code/wardrobes.html new file mode 100644 index 0000000000000..775f934db051f --- /dev/null +++ b/modular_skyrat/modules/mapping/code/wardrobes.html @@ -0,0 +1 @@ +modular_skyrat/modules/mapping/code/wardrobes.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/mapping/code/wardrobes.dm

/obj/item/choice_beacon/unholyThis is essentially just a copy paste of the holy beacon, but with all options unlocked regardless of the global religion
\ No newline at end of file diff --git a/modular_skyrat/modules/mapping/voidraptor.html b/modular_skyrat/modules/mapping/voidraptor.html new file mode 100644 index 0000000000000..5331eeca6fd05 --- /dev/null +++ b/modular_skyrat/modules/mapping/voidraptor.html @@ -0,0 +1,22 @@ +modular_skyrat/modules/mapping/voidraptor/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/mapping/voidraptor/readme.md

Title:

+

MODULE ID: VOIDRAPTOR

+

Description:

+

Assets used in the Void Raptor Map

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Mahalia

\ No newline at end of file diff --git a/modular_skyrat/modules/maturity-prompt.html b/modular_skyrat/modules/maturity-prompt.html new file mode 100644 index 0000000000000..08db3494a07ab --- /dev/null +++ b/modular_skyrat/modules/maturity-prompt.html @@ -0,0 +1 @@ +modular_skyrat/modules/maturity-prompt/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/maturity-prompt/readme.md

\ No newline at end of file diff --git a/modular_skyrat/modules/medical.html b/modular_skyrat/modules/medical.html new file mode 100644 index 0000000000000..a29343d719930 --- /dev/null +++ b/modular_skyrat/modules/medical.html @@ -0,0 +1,42 @@ +modular_skyrat/modules/medical/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/medical/readme.md

+

https://github.com/Skyrat-SS13/Skyrat-tg/pull/2336 +https://github.com/Skyrat-SS13/Skyrat-tg/pull/23733

+

Skyrat Medical Update

+

Module ID: SKYRAT_MEDICAL_UPDATE

+

Description:

+

Various changes to the medical system, from adding bandage overlays, to new wounds, to modularized procs.

+ +

TG Proc/File Changes:

+
    +
  • code/_DEFINES/wounds.dm: Added muscle/synth wound series, added them to the global list of wound series
  • +
  • cat2_medicine_reagents.dm: /datum/reagent/medicine/c2/hercuri/on_mob_life, Allowed hercuri to affect synthetics, also changed hercuri process flags for this purpose
  • +
  • quirks.dm: Commented out the quadruple_amputee/frail blacklist as frail can now apply to prosthetics
  • +
+ +

Modular Overrides:

+
    +
  • N/A
  • +
+ +

Defines:

+
    +
  • Many local synthetic wound defines
  • +
+ +

Included files that are not contained in this module:

+
    +
  • strings/wounds/metal_scar_desc.json -- Required to be here for _string_lists.dm usage
  • +
+ +

Credits:

+

Azarak - Original medical update, muscle wounds, bandage overlays +Niko - Synthetic wounds +TG coding/Skyrat coding channels and community - Support, ideas, reviews

+
\ No newline at end of file diff --git a/modular_skyrat/modules/medical/attributions.html b/modular_skyrat/modules/medical/attributions.html new file mode 100644 index 0000000000000..3efb1bebfde43 --- /dev/null +++ b/modular_skyrat/modules/medical/attributions.html @@ -0,0 +1,3 @@ +modular_skyrat/modules/medical/attributions.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/medical/attributions.txt

robotic_slash_T1.ogg, robotic_slash_T2.ogg, and robotic_slash_T3.ogg adapated from CGEffex's Bug Zapper2.wav (CC Attribution 4.0)
+https://freesound.org/people/CGEffex/sounds/107004/
+
\ No newline at end of file diff --git a/modular_skyrat/modules/medical/code/anesthetic_machine.html b/modular_skyrat/modules/medical/code/anesthetic_machine.html new file mode 100644 index 0000000000000..a86f43b20c15c --- /dev/null +++ b/modular_skyrat/modules/medical/code/anesthetic_machine.html @@ -0,0 +1 @@ +modular_skyrat/modules/medical/code/anesthetic_machine.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/medical/code/anesthetic_machine.dm

/obj/item/clothing/mask/breath/anestheticThis a special version of the breath mask used for the anesthetic machine.
/obj/item/anesthetic_machine_kitA boxed version of the Anesthetic Machine. This is what is printed from the medical prolathe.
\ No newline at end of file diff --git a/modular_skyrat/modules/medical/code/wounds/muscle.html b/modular_skyrat/modules/medical/code/wounds/muscle.html new file mode 100644 index 0000000000000..d6241d3802c12 --- /dev/null +++ b/modular_skyrat/modules/medical/code/wounds/muscle.html @@ -0,0 +1 @@ +modular_skyrat/modules/medical/code/wounds/muscle.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/medical/code/wounds/muscle.dm

/datum/wound/muscle/moderateModerate (Muscle Tear)
\ No newline at end of file diff --git a/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt.html b/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt.html new file mode 100644 index 0000000000000..391d415cb163f --- /dev/null +++ b/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt.html @@ -0,0 +1,3 @@ +modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt.dm

ROBOTIC_WOUND_DETERMINATION_MOVEMENT_EFFECT_MODThe multiplier put against our movement effects if our victim has the determined reagent +The multiplier put against our movement effects if our victim has the determined reagent
ROBOTIC_WOUND_DETERMINATION_STAGGER_MOVEMENT_MULTThe multiplier of stagger intensity on hit if our victim has the determined reagent
ROBOTIC_BLUNT_GRASPED_MOVEMENT_MULTThe multiplier put against our movement effects if our limb is grasped
OSCILLATION_ATTACKED_LYING_DOWN_EFFECT_MULTIf our victim is lying down and is attacked in the chest, effective oscillation damage is multiplied against this.
PERCUSSIVE_MAINTENANCE_DIAG_HUD_CHANCE_MULTIf the attacker is wearing a diag hud, chance of percussive maintenance succeeding is multiplied against this.
PERCUSSIVE_MAINTENANCE_WOUND_SCANNED_CHANCE_MULTIf our wound has been scanned by a wound analyzer, chance of percussive maintenance succeeding is multiplied against this.
PERCUSSIVE_MAINTENANCE_ATTACKER_NOT_VICTIM_CHANCE_MULTIf the attacker is NOT our victim, chance of percussive maintenance succeeding is multiplied against this.
STAGGER_PERCENT_OF_SHAKE_DURATION_TO_AFTERSHOCK_DELAYThe percent, in decimal, of a stagger's shake() duration, that will be used in a addtimer() to queue aftershock().
VICTIM_MOVED_NO_GRAVITY_EFFECT_MULTIf our victim has no gravity, the effects of movement are multiplied by this.
VICTIM_MOVED_CAREFULLY_EFFECT_MULTIf our victim is resting, or is walking and isnt forced to move, the effects of movement are multiplied by this.
VICTIM_BUCKLED_BASE_MOVEMENT_EFFECT_MULTIf our victim is buckled to a generic object, movement effects will be multiplied against this.
VICTIM_BUCKLED_ROLLER_BED_MOVEMENT_EFFECT_MULTIf our victim is buckled to a medical bed (e.g. rollerbed), movement effects will be multiplied against this.

Define Details

OSCILLATION_ATTACKED_LYING_DOWN_EFFECT_MULT

If our victim is lying down and is attacked in the chest, effective oscillation damage is multiplied against this.

PERCUSSIVE_MAINTENANCE_ATTACKER_NOT_VICTIM_CHANCE_MULT

If the attacker is NOT our victim, chance of percussive maintenance succeeding is multiplied against this.

PERCUSSIVE_MAINTENANCE_DIAG_HUD_CHANCE_MULT

If the attacker is wearing a diag hud, chance of percussive maintenance succeeding is multiplied against this.

PERCUSSIVE_MAINTENANCE_WOUND_SCANNED_CHANCE_MULT

If our wound has been scanned by a wound analyzer, chance of percussive maintenance succeeding is multiplied against this.

ROBOTIC_BLUNT_GRASPED_MOVEMENT_MULT

The multiplier put against our movement effects if our limb is grasped

ROBOTIC_WOUND_DETERMINATION_MOVEMENT_EFFECT_MOD

The multiplier put against our movement effects if our victim has the determined reagent +The multiplier put against our movement effects if our victim has the determined reagent

ROBOTIC_WOUND_DETERMINATION_STAGGER_MOVEMENT_MULT

The multiplier of stagger intensity on hit if our victim has the determined reagent

STAGGER_PERCENT_OF_SHAKE_DURATION_TO_AFTERSHOCK_DELAY

The percent, in decimal, of a stagger's shake() duration, that will be used in a addtimer() to queue aftershock().

VICTIM_BUCKLED_BASE_MOVEMENT_EFFECT_MULT

If our victim is buckled to a generic object, movement effects will be multiplied against this.

VICTIM_BUCKLED_ROLLER_BED_MOVEMENT_EFFECT_MULT

If our victim is buckled to a medical bed (e.g. rollerbed), movement effects will be multiplied against this.

VICTIM_MOVED_CAREFULLY_EFFECT_MULT

If our victim is resting, or is walking and isnt forced to move, the effects of movement are multiplied by this.

VICTIM_MOVED_NO_GRAVITY_EFFECT_MULT

If our victim has no gravity, the effects of movement are multiplied by this.

\ No newline at end of file diff --git a/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt_T3.html b/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt_T3.html new file mode 100644 index 0000000000000..cba9af7b4a2d1 --- /dev/null +++ b/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt_T3.html @@ -0,0 +1 @@ +modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt_T3.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt_T3.dm

MOLD_METAL_SABOTAGE_BRUTE_DAMAGEIf the user turns combat mode on after they start to mold metal, our limb takes this much brute damage.
MOLD_METAL_FAILURE_BRUTE_DAMAGEOur limb takes this much brute damage on a failed mold metal attempt.
MOLD_METAL_HAND_BURNT_BURN_DAMAGEIf the user's hand is unprotected from heat when they mold metal, we do this much burn damage to it.
MOLD_METAL_HEAT_RESISTANCE_THRESHOLDGloves must be above or at this threshold to cause the user to not be burnt apon trying to mold metal.
ROBOTIC_T3_BLUNT_WOUND_RCD_COSTCost of an RCD to quickly fix our broken in raw matter
ROBOTIC_T3_BLUNT_WOUND_RCD_SILO_COSTCost of an RCD to quickly fix our broken in silo material

Define Details

MOLD_METAL_FAILURE_BRUTE_DAMAGE

Our limb takes this much brute damage on a failed mold metal attempt.

MOLD_METAL_HAND_BURNT_BURN_DAMAGE

If the user's hand is unprotected from heat when they mold metal, we do this much burn damage to it.

MOLD_METAL_HEAT_RESISTANCE_THRESHOLD

Gloves must be above or at this threshold to cause the user to not be burnt apon trying to mold metal.

MOLD_METAL_SABOTAGE_BRUTE_DAMAGE

If the user turns combat mode on after they start to mold metal, our limb takes this much brute damage.

ROBOTIC_T3_BLUNT_WOUND_RCD_COST

Cost of an RCD to quickly fix our broken in raw matter

ROBOTIC_T3_BLUNT_WOUND_RCD_SILO_COST

Cost of an RCD to quickly fix our broken in silo material

\ No newline at end of file diff --git a/modular_skyrat/modules/medical/code/wounds/synth/blunt/secures_internals.html b/modular_skyrat/modules/medical/code/wounds/synth/blunt/secures_internals.html new file mode 100644 index 0000000000000..2c310fe62ecb4 --- /dev/null +++ b/modular_skyrat/modules/medical/code/wounds/synth/blunt/secures_internals.html @@ -0,0 +1 @@ +modular_skyrat/modules/medical/code/wounds/synth/blunt/secures_internals.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/medical/code/wounds/synth/blunt/secures_internals.dm

/datum/wound/blunt/robotic/secures_internalsA subtype of blunt wounds that has a "secure internals" step
CROWBAR_OPEN_ESSENTIAL_LIMB_DAMAGE_MULTIf our limb is essential, damage dealt to it by tearing it open will be multiplied against this.
CROWBAR_OPEN_SHOCK_POWERThe "power" put into electrocute_act whenever someone gets shocked when they crowbar open our limb
CROWBAR_OPEN_BRUTE_DAMAGEThe brute damage done to this limb (doubled on essential limbs) when it is crowbarred open
SECURE_INTERNALS_CONFUSED_CHANCE_THRESHOLDIf, on a secure internals attempt, we have less than this chance to succeed, we warn the user.

Define Details

CROWBAR_OPEN_BRUTE_DAMAGE

The brute damage done to this limb (doubled on essential limbs) when it is crowbarred open

CROWBAR_OPEN_ESSENTIAL_LIMB_DAMAGE_MULT

If our limb is essential, damage dealt to it by tearing it open will be multiplied against this.

CROWBAR_OPEN_SHOCK_POWER

The "power" put into electrocute_act whenever someone gets shocked when they crowbar open our limb

SECURE_INTERNALS_CONFUSED_CHANCE_THRESHOLD

If, on a secure internals attempt, we have less than this chance to succeed, we warn the user.

\ No newline at end of file diff --git a/modular_skyrat/modules/medical/code/wounds/synth/robotic_slash.html b/modular_skyrat/modules/medical/code/wounds/synth/robotic_slash.html new file mode 100644 index 0000000000000..344b6026d5730 --- /dev/null +++ b/modular_skyrat/modules/medical/code/wounds/synth/robotic_slash.html @@ -0,0 +1 @@ +modular_skyrat/modules/medical/code/wounds/synth/robotic_slash.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/medical/code/wounds/synth/robotic_slash.dm

ELECTRICAL_DAMAGE_ON_STASIS_MULTHow much damage and progress is reduced when on stasis.
ELECTRICAL_DAMAGE_GRASPED_MULTHow much damage and progress is reduced when limb is grasped.
ELECTRICAL_DAMAGE_LYING_DOWN_MULTHow much damage and progress is reduced when our victim lies down.
ELECTRICAL_DAMAGE_DEAD_PROGRESS_MULTHow much progress is reduced when our victim is dead.
ELECTRICAL_DAMAGE_WIRECUTTER_BASE_DELAYBase time for a wirecutter being used.
ELECTRICAL_DAMAGE_SUTURE_WIRE_BASE_DELAYBase time for a cable coil being used.
ELECTRICAL_DAMAGE_POWER_PER_TICK_MULTGlobal damage multiplier for the power a given electrical damage wound will add per tick.
ELECTRICAL_DAMAGE_SUTURE_WIRE_HEALING_AMOUNT_MULTGlobal damage multiplier for how much repairing wiring will reduce intensity. Higher is more.
ELECTRICAL_DAMAGE_MINIMUM_SHOCK_POWER_PER_ZAPThe minimum shock power we must have available to zap our victim. Must be at least one, since electrocute_act fails if its lower.
ELECTRICAL_DAMAGE_MAX_BURN_DAMAGE_TO_LET_WIRES_REPAIRThe maximum burn damage our limb can have before we refuse to let people who havent aggrograbbed the limb repair it with wires. This is so people can opt to just fix the burn damage.
ELECTRICAL_DAMAGE_CLOTTING_PROGRESS_MULTIf progress is positive (not decreasing) after applying ELECTRICAL_DAMAGE_CLOTTING_HEALING_AMOUNT, we multiply it against this.
LIMB_AGGROGRABBED_PROGRESS_MULTIf someone is aggrograbbing us and targetting our limb, intensity progress is multiplied against this.

Define Details

ELECTRICAL_DAMAGE_CLOTTING_PROGRESS_MULT

If progress is positive (not decreasing) after applying ELECTRICAL_DAMAGE_CLOTTING_HEALING_AMOUNT, we multiply it against this.

ELECTRICAL_DAMAGE_DEAD_PROGRESS_MULT

How much progress is reduced when our victim is dead.

ELECTRICAL_DAMAGE_GRASPED_MULT

How much damage and progress is reduced when limb is grasped.

ELECTRICAL_DAMAGE_LYING_DOWN_MULT

How much damage and progress is reduced when our victim lies down.

ELECTRICAL_DAMAGE_MAX_BURN_DAMAGE_TO_LET_WIRES_REPAIR

The maximum burn damage our limb can have before we refuse to let people who havent aggrograbbed the limb repair it with wires. This is so people can opt to just fix the burn damage.

ELECTRICAL_DAMAGE_MINIMUM_SHOCK_POWER_PER_ZAP

The minimum shock power we must have available to zap our victim. Must be at least one, since electrocute_act fails if its lower.

ELECTRICAL_DAMAGE_ON_STASIS_MULT

How much damage and progress is reduced when on stasis.

ELECTRICAL_DAMAGE_POWER_PER_TICK_MULT

Global damage multiplier for the power a given electrical damage wound will add per tick.

ELECTRICAL_DAMAGE_SUTURE_WIRE_BASE_DELAY

Base time for a cable coil being used.

ELECTRICAL_DAMAGE_SUTURE_WIRE_HEALING_AMOUNT_MULT

Global damage multiplier for how much repairing wiring will reduce intensity. Higher is more.

ELECTRICAL_DAMAGE_WIRECUTTER_BASE_DELAY

Base time for a wirecutter being used.

LIMB_AGGROGRABBED_PROGRESS_MULT

If someone is aggrograbbing us and targetting our limb, intensity progress is multiplied against this.

\ No newline at end of file diff --git a/modular_skyrat/modules/mentor.html b/modular_skyrat/modules/mentor.html new file mode 100644 index 0000000000000..a94ccc0171778 --- /dev/null +++ b/modular_skyrat/modules/mentor.html @@ -0,0 +1,24 @@ +modular_skyrat/modules/mentor/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/mentor/readme.md

Title: Mentor

+

MODULE ID: MENTOR

+

Description:

+

Adds a mentor system, allowing for players to send a-help like messages to mentors, asking them about game mechanics and help.

+

TG Proc Changes:

+
    +
  • code/modules/client/client_procs.dm > client/Topic()
  • +
  • /code/modules/admin/secrets.dm > /datum/admins/proc/Secrets_topic(), /datum/admins/proc/Secrets()
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Azarak - Porting, tweaks +Poojawa - Implementation

\ No newline at end of file diff --git a/modular_skyrat/modules/microfusion/code/_microfusion_defines.html b/modular_skyrat/modules/microfusion/code/_microfusion_defines.html new file mode 100644 index 0000000000000..47ad32b4df184 --- /dev/null +++ b/modular_skyrat/modules/microfusion/code/_microfusion_defines.html @@ -0,0 +1 @@ +modular_skyrat/modules/microfusion/code/_microfusion_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/microfusion/code/_microfusion_defines.dm

SHOT_SUCCESSReturned when the phase emtiter process is successful.
SHOT_FAILURE_NO_EMITTERReturned when a gun is fired but there is no phase emitter.
GUN_SLOT_BARRELThe gun barrel slot.
GUN_SLOT_UNDERBARRELThe gun underbarrel slot.
GUN_SLOT_RAILThe gun rail slot.
GUN_SLOT_UNIQUEUnique slots, can hold as many as you want.
GUN_SLOT_CAMOCamo slot. Because why would you put four overlapping camos on your gun?

Define Details

GUN_SLOT_BARREL

The gun barrel slot.

GUN_SLOT_CAMO

Camo slot. Because why would you put four overlapping camos on your gun?

GUN_SLOT_RAIL

The gun rail slot.

GUN_SLOT_UNDERBARREL

The gun underbarrel slot.

GUN_SLOT_UNIQUE

Unique slots, can hold as many as you want.

SHOT_FAILURE_NO_EMITTER

Returned when a gun is fired but there is no phase emitter.

SHOT_SUCCESS

Returned when the phase emtiter process is successful.

\ No newline at end of file diff --git a/modular_skyrat/modules/microfusion/code/gun_types.html b/modular_skyrat/modules/microfusion/code/gun_types.html new file mode 100644 index 0000000000000..121ac46c08b9d --- /dev/null +++ b/modular_skyrat/modules/microfusion/code/gun_types.html @@ -0,0 +1 @@ +modular_skyrat/modules/microfusion/code/gun_types.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/microfusion/code/gun_types.dm

/obj/item/gun/microfusion/mcr01/advancedGun for cargo crates.
\ No newline at end of file diff --git a/modular_skyrat/modules/microfusion/code/microfusion_cell.html b/modular_skyrat/modules/microfusion/code/microfusion_cell.html new file mode 100644 index 0000000000000..2ca8ec01e5022 --- /dev/null +++ b/modular_skyrat/modules/microfusion/code/microfusion_cell.html @@ -0,0 +1 @@ +modular_skyrat/modules/microfusion/code/microfusion_cell.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/microfusion/code/microfusion_cell.dm

MICROFUSION_CELL_DRAIN_FAILUREThe amount of cell charge drained during a drain failure.
MICROFUSION_CELL_EMP_HEAVY_FAILUREThe heavy EMP range for when a cell suffers an EMP failure.
MICROFUSION_CELL_EMP_LIGHT_FAILUREThe light EMP range for when a cell suffers an EMP failure.
MICROFUSION_CELL_RADIATION_RANGE_FAILUREThe radiation range for when a cell suffers a radiation failure.
MICROFUSION_CELL_FAILURE_LOWERThe lower most time for a microfusion cell meltdown.
MICROFUSION_CELL_FAILURE_UPPERThe upper most time for a microfusion cell meltdown.

Define Details

MICROFUSION_CELL_DRAIN_FAILURE

The amount of cell charge drained during a drain failure.

MICROFUSION_CELL_EMP_HEAVY_FAILURE

The heavy EMP range for when a cell suffers an EMP failure.

MICROFUSION_CELL_EMP_LIGHT_FAILURE

The light EMP range for when a cell suffers an EMP failure.

MICROFUSION_CELL_FAILURE_LOWER

The lower most time for a microfusion cell meltdown.

MICROFUSION_CELL_FAILURE_UPPER

The upper most time for a microfusion cell meltdown.

MICROFUSION_CELL_RADIATION_RANGE_FAILURE

The radiation range for when a cell suffers a radiation failure.

\ No newline at end of file diff --git a/modular_skyrat/modules/microfusion/code/microfusion_gun_attachments.html b/modular_skyrat/modules/microfusion/code/microfusion_gun_attachments.html new file mode 100644 index 0000000000000..1f381c20cf9c3 --- /dev/null +++ b/modular_skyrat/modules/microfusion/code/microfusion_gun_attachments.html @@ -0,0 +1,2 @@ +modular_skyrat/modules/microfusion/code/microfusion_gun_attachments.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/microfusion/code/microfusion_gun_attachments.dm

/obj/item/microfusion_gun_attachmentMICROFUSION GUN UPGRADE ATTACHMENTS +For adding unique abilities to microfusion guns, these can directly interact with the gun!
\ No newline at end of file diff --git a/modular_skyrat/modules/microfusion/code/phase_emitter.html b/modular_skyrat/modules/microfusion/code/phase_emitter.html new file mode 100644 index 0000000000000..ed75ff6a554df --- /dev/null +++ b/modular_skyrat/modules/microfusion/code/phase_emitter.html @@ -0,0 +1 @@ +modular_skyrat/modules/microfusion/code/phase_emitter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/microfusion/code/phase_emitter.dm

PHASE_FAILURE_DAMAGEDThe error message returned when the phase emitter is processed but damaged.
PHASE_FAILURE_THROTTLEThe error message returned when the phase emitter has reached it's htermal throttle.
PHASE_HEAT_DISSIPATION_BONUS_SPACEThe heat dissipation bonus of an emitter being in space!
PHASE_HEAT_DISSIPATION_BONUS_AIRThe heat dissipation bonus of an emitter being in air!

Define Details

PHASE_FAILURE_DAMAGED

The error message returned when the phase emitter is processed but damaged.

PHASE_FAILURE_THROTTLE

The error message returned when the phase emitter has reached it's htermal throttle.

PHASE_HEAT_DISSIPATION_BONUS_AIR

The heat dissipation bonus of an emitter being in air!

PHASE_HEAT_DISSIPATION_BONUS_SPACE

The heat dissipation bonus of an emitter being in space!

\ No newline at end of file diff --git a/modular_skyrat/modules/modular_ert/code.html b/modular_skyrat/modules/modular_ert/code.html new file mode 100644 index 0000000000000..848b1e1791cc0 --- /dev/null +++ b/modular_skyrat/modules/modular_ert/code.html @@ -0,0 +1,54 @@ +modular_skyrat/modules/modular_ert/code/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_ert/code/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/2946 & https://github.com/Skyrat-SS13/Skyrat-tg/pull/10662 for NTrauma +https://github.com/Skyrat-SS13/Skyrat-tg/pull/4781 for ODST +https://github.com/Skyrat-SS13/Skyrat-tg/pull/6440 for Fumigator and Engineer +https://github.com/Skyrat-SS13/Skyrat-tg/pull/5630 for Pizza

+

Title: Modular Emergency Response Teams

+

MODULE ID: modular_ert

+

Description:

+
    +
  • +

    Use this module for any Skyrat-unique ERTs, including their outfits, unique equipment, and ERT datums!

    +
  • +
  • +

    DO NOT PUT GENERAL-USE ITEMS IN HERE. ITEMS IN HERE SHOULD #ONLY# SHOW UP ON THEIR RELATED ERT.

    +
  • +
  • +

    (Using TG Outfits and Datums) Adds a simple Engi-Maintinence ERT of non-spaceproof, generic repair dudes.

    +
  • +
  • +

    Adds a Fumigator ERT specialized in pest control.

    +
  • +
  • +

    Adds a specialized orbital shok droop trooper ERT that allows for a quick security response via pod.

    +
  • +
  • +

    Adds a Pizza Delivery "ERT" for... pizza delivery.

    +
  • +
  • +

    Adds a specialized medical team ERT that allows for a better medical response.

    +
  • +
+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • Most clothing icon files:
  • +
  • modular_skyrat/master_files/icons/mob/clothing/xyz
  • +
  • modular_skyrat/master_files/icons/obj/clothing/xyz
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+
    +
  • pinkblossom6 - Original Sprites and Code for NTrauma & ODST
  • +
  • Orion_the_Fox - Updated Sprites and Code for NTrauma
  • +
  • thestubborn - Engineer, Fumigator, and Pizza ERTs
  • +
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_implants/code/misc_devices.html b/modular_skyrat/modules/modular_implants/code/misc_devices.html new file mode 100644 index 0000000000000..5cc4f6590da41 --- /dev/null +++ b/modular_skyrat/modules/modular_implants/code/misc_devices.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_implants/code/misc_devices.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_implants/code/misc_devices.dm

/obj/item/nifsoft_removerNIFSoft Remover. This is mostly here so that security and antags have a way to remove NIFSofts from someome
/obj/item/nif_repair_kitNIF Repair Kit.
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_implants/code/nif_actions.html b/modular_skyrat/modules/modular_implants/code/nif_actions.html new file mode 100644 index 0000000000000..d544e20fde262 --- /dev/null +++ b/modular_skyrat/modules/modular_implants/code/nif_actions.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_implants/code/nif_actions.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_implants/code/nif_actions.dm

/datum/action/item_action/nifAction used to pull up the NIF menu
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_implants/code/nif_implants.html b/modular_skyrat/modules/modular_implants/code/nif_implants.html new file mode 100644 index 0000000000000..0e311919f1d5e --- /dev/null +++ b/modular_skyrat/modules/modular_implants/code/nif_implants.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_implants/code/nif_implants.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_implants/code/nif_implants.dm

/obj/item/organ/internal/cyberimp/brain/nif/standardThis is the standard 'baseline' NIF model.
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_implants/code/nif_persistence.html b/modular_skyrat/modules/modular_implants/code/nif_persistence.html new file mode 100644 index 0000000000000..1f89bffb94236 --- /dev/null +++ b/modular_skyrat/modules/modular_implants/code/nif_persistence.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_implants/code/nif_persistence.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/modular_implants/code/nif_persistence.dm

LOSS_WITH_NIF_UNINSTALLEDHow much damage is done to the NIF if the user ends the round with it uninstalled?
/datum/modular_persistenceThe master persistence datum. Add vars onto this in your own code. Just be aware that you'll need to use simple data types, such as strings, ints, and lists.

Define Details

LOSS_WITH_NIF_UNINSTALLED

How much damage is done to the NIF if the user ends the round with it uninstalled?

\ No newline at end of file diff --git a/modular_skyrat/modules/modular_implants/code/nifsofts.html b/modular_skyrat/modules/modular_implants/code/nifsofts.html new file mode 100644 index 0000000000000..6336937154ad1 --- /dev/null +++ b/modular_skyrat/modules/modular_implants/code/nifsofts.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_implants/code/nifsofts.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_implants/code/nifsofts.dm

/datum/nifsoftThe base NIFSoft
/obj/item/disk/nifsoft_uploaderA disk that can upload NIFSofts to a recpient with a NIFSoft installed.
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_implants/code/nifsofts/base_types/action_granter.html b/modular_skyrat/modules/modular_implants/code/nifsofts/base_types/action_granter.html new file mode 100644 index 0000000000000..2c82266b798a8 --- /dev/null +++ b/modular_skyrat/modules/modular_implants/code/nifsofts/base_types/action_granter.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_implants/code/nifsofts/base_types/action_granter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_implants/code/nifsofts/base_types/action_granter.dm

/datum/nifsoft/action_granterThis type of NIFSoft grants the user an action when active.
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_implants/code/nifsofts/money_sense.html b/modular_skyrat/modules/modular_implants/code/nifsofts/money_sense.html new file mode 100644 index 0000000000000..d086ed9106f4b --- /dev/null +++ b/modular_skyrat/modules/modular_implants/code/nifsofts/money_sense.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_implants/code/nifsofts/money_sense.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_implants/code/nifsofts/money_sense.dm

/datum/component/money_senseAdded whenever the money_sense NIFSoft is active
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_implants/code/nifsofts/prop_summoner.html b/modular_skyrat/modules/modular_implants/code/nifsofts/prop_summoner.html new file mode 100644 index 0000000000000..557b8c52d8f5d --- /dev/null +++ b/modular_skyrat/modules/modular_implants/code/nifsofts/prop_summoner.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_implants/code/nifsofts/prop_summoner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_implants/code/nifsofts/prop_summoner.dm

/obj/item/toy/katana/naniteA somehow wekaer version of the toy katana
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_implants/code/nifsofts/scryer.html b/modular_skyrat/modules/modular_implants/code/nifsofts/scryer.html new file mode 100644 index 0000000000000..f326a258a5eb1 --- /dev/null +++ b/modular_skyrat/modules/modular_implants/code/nifsofts/scryer.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_implants/code/nifsofts/scryer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_implants/code/nifsofts/scryer.dm

/obj/item/stock_parts/power_store/cell/infinite/nif_cellThis cell is only meant for use in items temporarily created by a NIF. Do not let players extract this from devices.
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_implants/code/nifsofts/shapeshifter.html b/modular_skyrat/modules/modular_implants/code/nifsofts/shapeshifter.html new file mode 100644 index 0000000000000..84bec6a0dd6f3 --- /dev/null +++ b/modular_skyrat/modules/modular_implants/code/nifsofts/shapeshifter.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_implants/code/nifsofts/shapeshifter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_implants/code/nifsofts/shapeshifter.dm

/datum/action/innate/alter_form/nifThe NIF version of alter form. This lacks the ability to change body color.
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_implants/code/nifsofts/soul_poem.html b/modular_skyrat/modules/modular_implants/code/nifsofts/soul_poem.html new file mode 100644 index 0000000000000..3858c7bedfe05 --- /dev/null +++ b/modular_skyrat/modules/modular_implants/code/nifsofts/soul_poem.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_implants/code/nifsofts/soul_poem.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_implants/code/nifsofts/soul_poem.dm

/datum/proximity_monitor/advanced/soul_poemThe proximty_monitor datum used by the soul_poem NIFSoft
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_implants/code/nifsofts/soulcatcher.html b/modular_skyrat/modules/modular_implants/code/nifsofts/soulcatcher.html new file mode 100644 index 0000000000000..21636834656ea --- /dev/null +++ b/modular_skyrat/modules/modular_implants/code/nifsofts/soulcatcher.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_implants/code/nifsofts/soulcatcher.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_implants/code/nifsofts/soulcatcher.dm

/obj/item/carrier_holderThis is the object we use if we give a mob soulcatcher. Having the souls directly parented could cause issues.
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_implants/code/soulcatcher/soulcatcher_body_component.html b/modular_skyrat/modules/modular_implants/code/soulcatcher/soulcatcher_body_component.html new file mode 100644 index 0000000000000..18cad56ed0b84 --- /dev/null +++ b/modular_skyrat/modules/modular_implants/code/soulcatcher/soulcatcher_body_component.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_implants/code/soulcatcher/soulcatcher_body_component.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_implants/code/soulcatcher/soulcatcher_body_component.dm

/datum/component/previous_bodyA component that is given to a body when the soul inside is inhabiting a soulcatcher. this is mostly here so that the bodies of souls can be revived.
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_items.html b/modular_skyrat/modules/modular_items.html new file mode 100644 index 0000000000000..30dee5c2499d4 --- /dev/null +++ b/modular_skyrat/modules/modular_items.html @@ -0,0 +1,26 @@ +modular_skyrat/modules/modular_items/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_items/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/248

+

Title: Modular Items

+

MODULE ID: MODULAR_ITEMS

+

Description:

+

A modular folder for various single-item additions that don't deserve their own folder, be it new ones or old-skyrat ported items.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Ranged66 - Material pouch ported +KathrinBailey - Pretty much a whole bunch of clothes. +mel-byond - Ported Baystation12 Aviators +RimiNosha - Fixing up code no one else would touch.

\ No newline at end of file diff --git a/modular_skyrat/modules/modular_items/code/bags.html b/modular_skyrat/modules/modular_items/code/bags.html new file mode 100644 index 0000000000000..93787038a4047 --- /dev/null +++ b/modular_skyrat/modules/modular_items/code/bags.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_items/code/bags.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_items/code/bags.dm

/obj/item/storage/pouchBase pouch type. Fits in pockets, as its main gimmick.
/obj/item/storage/pouch/medicalIt's a pocket medkit. Use sparingly?
/obj/item/storage/pouch/medical/firstaidIt's... not as egregious as a full pocket medkit.
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/mood_events.html b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/mood_events.html new file mode 100644 index 0000000000000..2e94d85322bca --- /dev/null +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/mood_events.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/mood_events.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/mood_events.dm

/datum/mood_event/minor_overdoseTo notify, but not harm the player in terms of mood. Used for camphor, pentacamphor, succubus milk, and incubus draft.
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/_aphrodisiac.html b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/_aphrodisiac.html new file mode 100644 index 0000000000000..36bd3988ff798 --- /dev/null +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/_aphrodisiac.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/_aphrodisiac.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/_aphrodisiac.dm

GENITAL_PENISUsed for determining which genitals the chemical should affect

Define Details

GENITAL_PENIS

Used for determining which genitals the chemical should affect

\ No newline at end of file diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/camphor.html b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/camphor.html new file mode 100644 index 0000000000000..c6bf58a788c0c --- /dev/null +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/camphor.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/camphor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/camphor.dm

/datum/reagent/drug/aphrodisiac/camphorAble to reset one's genital size back to normal upon OD, or alternatively, if the user sets the size and then disables the organ, that size.
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_helpers/sounds.html b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_helpers/sounds.html new file mode 100644 index 0000000000000..025f2bc7342fd --- /dev/null +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_helpers/sounds.html @@ -0,0 +1,2 @@ +modular_skyrat/modules/modular_items/lewd_items/code/lewd_helpers/sounds.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_items/lewd_items/code/lewd_helpers/sounds.dm

/proc/conditional_pref_soundconditional_pref_sound is similar to playsound but it does not pass through walls, doesn't play for ghosts, and checks for prefs. +This is useful if we have something like the organic interface content, which everyone may not want to hear.
/datum/looping_sound/lewdThe looping sound datum but we check for prefs and use conditional_pref_sound instead of playsound
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/condom.html b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/condom.html new file mode 100644 index 0000000000000..0a7fa11f5711d --- /dev/null +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/condom.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/condom.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/condom.dm

/obj/item/condom_packCONDOM
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/size_items.html b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/size_items.html new file mode 100644 index 0000000000000..df6cfa5dcfb49 --- /dev/null +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/size_items.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/size_items.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/size_items.dm

SIZE_WHITELISTED_AREASWhat areas are we allowed to use size items in?
/datum/component/temporary_sizeComponent that temporarily applies a size to a human.

Define Details

SIZE_WHITELISTED_AREAS

What areas are we allowed to use size items in?

\ No newline at end of file diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/construction.html b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/construction.html new file mode 100644 index 0000000000000..d8f30a980645d --- /dev/null +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/construction.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/construction.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/construction.dm

/obj/item/construction_kitThe item used as the basis for construction kits for organic interface
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_persistence.html b/modular_skyrat/modules/modular_persistence.html new file mode 100644 index 0000000000000..32b16c67582d5 --- /dev/null +++ b/modular_skyrat/modules/modular_persistence.html @@ -0,0 +1,19 @@ +modular_skyrat/modules/modular_persistence/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_persistence/README.md

Modular Persistence

+

Module ID: MODULAR_PERSISTENCE

+

Description:

+

An extremely easy to extend per-character persistence file. Supports all the basic types, plus lists.

+

Simply add the vars you want to have saved to /datum/modular_persistence, and make sure those var values are updated before round end so that they're saved.

+

Loaded and saved on only station-side players for now. Will be expanded to support more in the future.

+

TG Proc/File Changes:

+
    +
  • code\modules\mob\dead\new_player\new_player.dm: /mob/dead/new_player/proc/AttemptLateSpawn
  • +
  • code\controllers\subsystem\persistence.dm: /datum/controller/subsystem/persistence/proc/collect_data
  • +
+

Defines:

+
    +
  • modular_skyrat\modules\modular_persistence\code\modular_persistence.dm: GLOB.modular_persistence_ignored_vars
  • +
+

Credits:

+
    +
  • RimiNosha - Code
  • +
\ No newline at end of file diff --git a/modular_skyrat/modules/modular_weapons.html b/modular_skyrat/modules/modular_weapons.html new file mode 100644 index 0000000000000..95048486122db --- /dev/null +++ b/modular_skyrat/modules/modular_weapons.html @@ -0,0 +1,23 @@ +modular_skyrat/modules/modular_weapons/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_weapons/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/248

+

Title: Modular Weapons & Weaponcrafting

+

MODULE ID: MODULAR_WEAPONS

+

Description:

+

Adds improvised weapons and new firearms to the game as well as new ammo and mob in-hands for the weapons.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Floof Ball#0798 / Kathrin Morrison

\ No newline at end of file diff --git a/modular_skyrat/modules/modular_weapons/code/company_and_or_faction_based/saibasan/laser_guns.html b/modular_skyrat/modules/modular_weapons/code/company_and_or_faction_based/saibasan/laser_guns.html new file mode 100644 index 0000000000000..ab02a79a38e08 --- /dev/null +++ b/modular_skyrat/modules/modular_weapons/code/company_and_or_faction_based/saibasan/laser_guns.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_weapons/code/company_and_or_faction_based/saibasan/laser_guns.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/modular_weapons/code/company_and_or_faction_based/saibasan/laser_guns.dm

LONG_MOD_LASER_SPEECHFile location for the long gun's speech
SHORT_MOD_LASER_SPEECHFile location for the short gun's speech
MOD_LASER_SPEECH_COOLDOWNHow long the gun should wait between speaking to lessen spam
DEFAULT_RUNECHAT_GUN_COLORWhat color is the default kill mode for these guns, used to make sure the chat colors are right at roundstart

Define Details

DEFAULT_RUNECHAT_GUN_COLOR

What color is the default kill mode for these guns, used to make sure the chat colors are right at roundstart

LONG_MOD_LASER_SPEECH

File location for the long gun's speech

MOD_LASER_SPEECH_COOLDOWN

How long the gun should wait between speaking to lessen spam

SHORT_MOD_LASER_SPEECH

File location for the short gun's speech

\ No newline at end of file diff --git a/modular_skyrat/modules/modular_weapons/code/gun_launches_little_guys_element.html b/modular_skyrat/modules/modular_weapons/code/gun_launches_little_guys_element.html new file mode 100644 index 0000000000000..f8b72b0be153a --- /dev/null +++ b/modular_skyrat/modules/modular_weapons/code/gun_launches_little_guys_element.html @@ -0,0 +1 @@ +modular_skyrat/modules/modular_weapons/code/gun_launches_little_guys_element.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/modular_weapons/code/gun_launches_little_guys_element.dm

/datum/element/gun_launches_little_guysAn element that makes guns throw their user back if they are just a little guy
\ No newline at end of file diff --git a/modular_skyrat/modules/mold.html b/modular_skyrat/modules/mold.html new file mode 100644 index 0000000000000..35a33d811fe27 --- /dev/null +++ b/modular_skyrat/modules/mold.html @@ -0,0 +1,29 @@ +modular_skyrat/modules/mold/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/mold/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/1356

+

Title: Mold - Advanced PvE Blob-Vine Encounter

+

MODULE ID: BIOHAZ_MOLD

+

Description:

+

100% PVE +Spreads much like glowshrooms and space vines, has a main core like a blob. During the spreading it builds structures, currently there's 2. One of them will release something harmful on proximity, another will spawn enemies. The blob also releases harmful stuff depending on the type, on cooldown.

+

The resin grows and bashes through doors and firelocks, when it meets a space tile it walls it off. It isn't too hard of an encounter and it doesn't spread too fast.

+

There's 4 types right now, for each type people should take be taking different tactics and pre-cautions.

+

Currently not tied to any event, just admin spawn for the purposes of tests and stuff.

+

When the core dies, everything slowly decays away.

+

TG Proc/File Changes:

+
    +
  • N/A
  • +
+

Defines:

+ +
File LocationDefines
modular_skyrat/modules/biohazard_blob/code/_biohazard_blob_defines.dmBIO_MOLD_TYPE_FUNGUS
BIO_MOLD_TYPE_FIRE
BIO_MOLD_TYPE_EMP
BIO_MOLD_TYPE_TOXIC
ALL_BIO_BLOB_TYPES
FACTION_MOLD
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+
    +
  • Azarak
  • +
\ No newline at end of file diff --git a/modular_skyrat/modules/mold/code/mold.html b/modular_skyrat/modules/mold/code/mold.html new file mode 100644 index 0000000000000..ab7d666cfb735 --- /dev/null +++ b/modular_skyrat/modules/mold/code/mold.html @@ -0,0 +1 @@ +modular_skyrat/modules/mold/code/mold.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/mold/code/mold.dm

/datum/mold_type/fireFire mold
/datum/mold_type/diseaseDisease mold
/datum/mold_type/empEMP mold
/datum/mold_type/toxicToxic mold
/datum/mold_type/radioactiveRadioactive mold
\ No newline at end of file diff --git a/modular_skyrat/modules/mold/code/mold_mobs.html b/modular_skyrat/modules/mold/code/mold_mobs.html new file mode 100644 index 0000000000000..bce319408cc86 --- /dev/null +++ b/modular_skyrat/modules/mold/code/mold_mobs.html @@ -0,0 +1 @@ +modular_skyrat/modules/mold/code/mold_mobs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/mold/code/mold_mobs.dm

/mob/living/basic/mold/oil_shamblerOIL SHAMBLERS
/mob/living/basic/mold/diseased_ratDISEASE MOLD
/mob/living/basic/mold/electric_mosquitoELECTRIC MOLD
/mob/living/basic/mold/centaurRADIATION MOLD
\ No newline at end of file diff --git a/modular_skyrat/modules/mold/code/mold_structures.html b/modular_skyrat/modules/mold/code/mold_structures.html new file mode 100644 index 0000000000000..e153e85b5929b --- /dev/null +++ b/modular_skyrat/modules/mold/code/mold_structures.html @@ -0,0 +1,2 @@ +modular_skyrat/modules/mold/code/mold_structures.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/mold/code/mold_structures.dm

/obj/structure/mold/structure/coreThe core
/obj/structure/mold/structure/core/firePreset types +Useful for admins
/obj/structure/mold/resinMold resin
/obj/structure/mold/structure/bulbBulbs
/obj/structure/mold/structure/wallWall
/obj/structure/mold/structure/conditionerConditioner
/obj/structure/mold/structure/spawnerHatchery
\ No newline at end of file diff --git a/modular_skyrat/modules/more_briefcases.html b/modular_skyrat/modules/more_briefcases.html new file mode 100644 index 0000000000000..f6145441655cd --- /dev/null +++ b/modular_skyrat/modules/more_briefcases.html @@ -0,0 +1,3 @@ +modular_skyrat/modules/more_briefcases/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/more_briefcases/readme.md

Credits

+

Gandalf2k15 - Porting +TauCeti - Original sprites(https://github.com/TauCetiStation/TauCetiClassic/pull/8966)

\ No newline at end of file diff --git a/modular_skyrat/modules/morefermentplants.html b/modular_skyrat/modules/morefermentplants.html new file mode 100644 index 0000000000000..a9ae6169dc44c --- /dev/null +++ b/modular_skyrat/modules/morefermentplants.html @@ -0,0 +1,23 @@ +modular_skyrat/modules/morefermentplants/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/morefermentplants/readme.md

Title: Alerts

+

MODULE ID: More Plant Fermentation

+

Description:

+

Adds new plant fermentation results for plants that didn't have them

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

lyricalpaws - Coding +ambrosia - Original bounty

\ No newline at end of file diff --git a/modular_skyrat/modules/moretraitoritems.html b/modular_skyrat/modules/moretraitoritems.html new file mode 100644 index 0000000000000..8082a91a4d7c7 --- /dev/null +++ b/modular_skyrat/modules/moretraitoritems.html @@ -0,0 +1,32 @@ +modular_skyrat/modules/moretraitoritems/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/moretraitoritems/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/

+

Title: moretraitoritems

+

MODULE ID: MORETRAITORITEMS

+

Description:

+

Add a new category with loadouts in it, Along with Holocarps and a space assassin bundle

+

Nowadays used to add new small traitor items

+

TG Proc/File Changes:

+
    +
  • N/A
  • +
+ +

Defines:

+
    +
  • N/A
  • +
+ +

Master file additions

+
    +
  • N/A
  • +
+ +

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+ +

Credits:

+

Funce#7321 - Funce +Tyger#8082 - SarmentiCampbell +Dawson#8115 - Dawsonkeyes +ErdinyoBarboza#4088 - ErdinyoBarboza

+
\ No newline at end of file diff --git a/modular_skyrat/modules/moretraitoritems/code/smuggling_gear.html b/modular_skyrat/modules/moretraitoritems/code/smuggling_gear.html new file mode 100644 index 0000000000000..775d2dd6b93f4 --- /dev/null +++ b/modular_skyrat/modules/moretraitoritems/code/smuggling_gear.html @@ -0,0 +1 @@ +modular_skyrat/modules/moretraitoritems/code/smuggling_gear.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/moretraitoritems/code/smuggling_gear.dm

/obj/item/gun/syringe/syndicate/prototypesyndicate prototype for smuggling missions
/obj/item/pen/edagger/prototypesyndicate prototype for smuggling missions
\ No newline at end of file diff --git a/modular_skyrat/modules/moretraitoritems/code/weapons.html b/modular_skyrat/modules/moretraitoritems/code/weapons.html new file mode 100644 index 0000000000000..57aff71f34267 --- /dev/null +++ b/modular_skyrat/modules/moretraitoritems/code/weapons.html @@ -0,0 +1,2 @@ +modular_skyrat/modules/moretraitoritems/code/weapons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/moretraitoritems/code/weapons.dm

/obj/item/gun/ballistic/automatic/pistol/robohandobj/item/clothing/head/hats/sus_bowler/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) +obj/item/clothing/head/hats/sus_bowler/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, gentle = FALSE, quickstart = TRUE)
\ No newline at end of file diff --git a/modular_skyrat/modules/multiserver.html b/modular_skyrat/modules/multiserver.html new file mode 100644 index 0000000000000..45422dbba32d7 --- /dev/null +++ b/modular_skyrat/modules/multiserver.html @@ -0,0 +1,39 @@ +modular_skyrat/modules/multiserver/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/multiserver/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/4032

+

Title: Stuff to accomodate multiple servers talking to the same database.

+

MODULE ID: MULTISERVER

+

Description:

+

So far includes:
+Toggle between local and global bans.
+Ability to more easily organize statistics from separate servers in the database.

+

It isn't coded in an idiotproof way, so make sure your configs and db are up to date before merging this.

+

TG Proc/File Changes:

+
    +
  • **code/controllers/subsystem/blackbox.dm** - added a column with server name in death logs and population statistics
  • +
  • **code/controllers/subsystem/dbcore.dm** - added a column with server name in round logs
  • +
  • **code/modules/admin/IsBanned.dm**, **code/modules/admin/sql_ban_system.dm** - a column with server name and tracking whether the bans are global, also altered the banning panel to allow global/local ban choices
  • +
  • **code/modules/admin/sql_message_system.dm** - notes are cross-server, but now they track which server they were applied on
  • +
  • **code/modules/client/client_procs.dm** - added a column with server name in server login logs
  • +
  • **code/__DEFINES/subsystems.dm** - Increment minor version of DB schema
  • +
+

Defines:

+
    +
  • #define DB_MINOR_VERSION 12 -> 13
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Implementing on Skyrat: Useroth

+

Heavily inspired by the solutions presented in the BeeStation-Hornet codebase

+

Hard to really pinpoint all the original authors of the code due to the incredible web of ports involved in this, including some now removed code that was present in the tg codebase in the past, but I'll try the major ones who put the effort into porting or implementing it in the first place.
+Feel free to poke me if I omitted anyone.

+

MarkSuckeberg
+Crossedfall
+qwertyqwerty

+

Patch Log

+

PR: https://github.com/Skyrat-SS13/Skyrat-tg/pull/4785

\ No newline at end of file diff --git a/modular_skyrat/modules/mutants.html b/modular_skyrat/modules/mutants.html new file mode 100644 index 0000000000000..62d68fa2c98ca --- /dev/null +++ b/modular_skyrat/modules/mutants.html @@ -0,0 +1,18 @@ +modular_skyrat/modules/mutants/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/mutants/readme.md

Title: HNZ1 Mutants

+

MODULE ID: MUTANTS

+

Description:

+

https://github.com/Skyrat-SS13/Skyrat-tg/pull/4664

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Gandalf2k15 - Original Creator

\ No newline at end of file diff --git a/modular_skyrat/modules/mutants/code/mutant_component.html b/modular_skyrat/modules/mutants/code/mutant_component.html new file mode 100644 index 0000000000000..164e7a28a3af1 --- /dev/null +++ b/modular_skyrat/modules/mutants/code/mutant_component.html @@ -0,0 +1,3 @@ +modular_skyrat/modules/mutants/code/mutant_component.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/mutants/code/mutant_component.dm

CURE_TIMEMutant Component

Define Details

CURE_TIME

Mutant Component

+

This component is used to handle all of the intermediate processes for transforming someone from a human +into a zombie.

\ No newline at end of file diff --git a/modular_skyrat/modules/new_cells.html b/modular_skyrat/modules/new_cells.html new file mode 100644 index 0000000000000..39dd964425f5e --- /dev/null +++ b/modular_skyrat/modules/new_cells.html @@ -0,0 +1,9 @@ +modular_skyrat/modules/new_cells/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Title: New Cells

MODULE ID: NEW_CELLS

+

Description

+

Adds two new cells.

+
    +
  1. Crank Cell - You wind it up to power it, just know it doesn't store much and naturally loses power over time.
  2. +
  3. Recharge Cell - A special cell that will charge itself over time; it can only be found in xenoarch.
  4. +
+

Credits

+

Jake Park

\ No newline at end of file diff --git a/modular_skyrat/modules/novaya_ert.html b/modular_skyrat/modules/novaya_ert.html new file mode 100644 index 0000000000000..09096cdaf7226 --- /dev/null +++ b/modular_skyrat/modules/novaya_ert.html @@ -0,0 +1,11 @@ +modular_skyrat/modules/novaya_ert/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/novaya_ert/readme.md

Title: Novaya Rossiyskaya Imperiya Module

+

MODULE ID: NRI STUFF

+

Description:

+

Everything mainly NRI-related, from various cosmetic clothing to guns to ERTs.

+

Credits:

+

Gandalf2k15 - Code and some icons. +Stalkeros - Code and some icons. +Zydras - NRI police clothing, stun gun and NRI holobarriers icons. +Ramirez - Icons and idea. +Flavrius - Icons + misc. +Paxilmaniac - Surplus weapons and armor.

\ No newline at end of file diff --git a/modular_skyrat/modules/novaya_ert/code/mod_suit.html b/modular_skyrat/modules/novaya_ert/code/mod_suit.html new file mode 100644 index 0000000000000..5ea26f68929d9 --- /dev/null +++ b/modular_skyrat/modules/novaya_ert/code/mod_suit.html @@ -0,0 +1 @@ +modular_skyrat/modules/novaya_ert/code/mod_suit.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/novaya_ert/code/mod_suit.dm

/obj/item/mod/module/status_readout/operationalUnrelated-to-Spider-Clan version of the module.
/obj/item/mod/module/auto_docBlatant copy of the adrenaline boost module.
/obj/item/reagent_containers/cup/glass/waterbottle/large/cryptobiolinNot exactly a MODsuit thing but it's needed for the refills huh?
\ No newline at end of file diff --git a/modular_skyrat/modules/opposing_force/code/equipment/equip_parent.html b/modular_skyrat/modules/opposing_force/code/equipment/equip_parent.html new file mode 100644 index 0000000000000..a73ec9c86e4cc --- /dev/null +++ b/modular_skyrat/modules/opposing_force/code/equipment/equip_parent.html @@ -0,0 +1 @@ +modular_skyrat/modules/opposing_force/code/equipment/equip_parent.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/opposing_force/code/equipment/equip_parent.dm

/datum/opposing_force_equipmentOPFOR EQUIPMENT DATUM
\ No newline at end of file diff --git a/modular_skyrat/modules/organs/code/tongue.html b/modular_skyrat/modules/organs/code/tongue.html new file mode 100644 index 0000000000000..5dec5b9f2de98 --- /dev/null +++ b/modular_skyrat/modules/organs/code/tongue.html @@ -0,0 +1,2 @@ +modular_skyrat/modules/organs/code/tongue.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/organs/code/tongue.dm

/obj/item/organ/internal/tongue/humanThis "human" tongue is only used in Character Preferences / Augmentation menu. +The base tongue class lacked a say_mod. With say_mod included it makes a non-Human user sound like a Human.
\ No newline at end of file diff --git a/modular_skyrat/modules/oversized.html b/modular_skyrat/modules/oversized.html new file mode 100644 index 0000000000000..2512a91736ae5 --- /dev/null +++ b/modular_skyrat/modules/oversized.html @@ -0,0 +1,6 @@ +modular_skyrat/modules/oversized/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/oversized/readme.md

Title: Pixel shifting for RP positioning

+

MODULE ID: OVERSIZED

+

Description:

+

Adds a veteran-crew locked perk that makes your sprite much larger with some associated upsides and downsides.

+

Code Embargo:

+

Anything that could be perceived as a balance or feature change directly to the oversized quirk, be it code in this module or elsewhere in the code, must be passed by the maintainers prior to PRing, or else your PR risks being closed.

\ No newline at end of file diff --git a/modular_skyrat/modules/panicbunker/code.html b/modular_skyrat/modules/panicbunker/code.html new file mode 100644 index 0000000000000..d0bff05627914 --- /dev/null +++ b/modular_skyrat/modules/panicbunker/code.html @@ -0,0 +1,21 @@ +modular_skyrat/modules/panicbunker/code/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/panicbunker/code/readme.md

Title: Panic bunker

+

MODULE ID: PANICBUNKER

+

Description:

+

Adds a system that uses a JSON file to enable bunker bypassing. This is a very much needed update.

+

TG Proc Changes:

+

.code\controllers\subsystem\persistence.dm > /datum/controller/subsystem/persistence/Initialize() & /datum/controller/subsystem/persistence/proc/CollectData() +.code\modules\client\client_procs.dm > /client/proc/set_client_age_from_db()

+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Gandalf2k15 - Porting

\ No newline at end of file diff --git a/modular_skyrat/modules/pixel_shift.html b/modular_skyrat/modules/pixel_shift.html new file mode 100644 index 0000000000000..5b7bb18430a13 --- /dev/null +++ b/modular_skyrat/modules/pixel_shift.html @@ -0,0 +1,28 @@ +modular_skyrat/modules/pixel_shift/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/pixel_shift/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/870

+

Title: Pixel shifting for RP positioning

+

MODULE ID: PIXEL_SHIFT

+

Description:

+

Adds the ability for living mobs to shift their sprite to fit an RP situation better (standing against a wall for example). Not appended to proc due to it being a busy proc

+

TG Proc/File Changes:

+
    +
  • N/A
  • +
+

Modular Overrides:

+
    +
  • modular_skyrat/master_files/code/datums/keybinding/mob.dm: var/list/hotkey_keys
  • +
  • modular_skyrat/master_files/code/modules/mob/living/living.dm: proc/set_pull_offsets, proc/reset_pull_offsets
  • +
  • modular_skyrat/master_files/code/modules/mob/living/living_movement.dm: proc/CanAllowThrough
  • +
+

Defines:

+
    +
  • code/__DEFINES/~skyrat_defines/keybindings.dm: COMSIG_KB_MOB_PIXEL_SHIFT_DOWN, COMSIG_KB_MOB_PIXEL_SHIFT_UP
  • +
  • code/__DEFINES/~skyrat_defines/living.dm: COMSIG_LIVING_SET_PULL_OFFSET, COMSIG_LIVING_RESET_PULL_OFFSETS, COMSIG_LIVING_CAN_ALLOW_THROUGH, COMPONENT_LIVING_PASSABLE
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Azarak - Porting +Gandalf2k15 - Refactoring +Larentoun - Moved to Component

\ No newline at end of file diff --git a/modular_skyrat/modules/player_ranks/code/player_rank_controller/_player_rank_controller.html b/modular_skyrat/modules/player_ranks/code/player_rank_controller/_player_rank_controller.html new file mode 100644 index 0000000000000..90c5c2d0e8c00 --- /dev/null +++ b/modular_skyrat/modules/player_ranks/code/player_rank_controller/_player_rank_controller.html @@ -0,0 +1,4 @@ +modular_skyrat/modules/player_ranks/code/player_rank_controller/_player_rank_controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/player_ranks/code/player_rank_controller/_player_rank_controller.dm

INDEX_CKEYThe index of the ckey in the items of a given row in a query for player ranks.
/datum/player_rank_controllerThis datum is intended to be used as a method of abstraction for the different +ways that each player rank handles adding and removing players from their global +lists, as well as handling the legacy adding, removing, loading and saving of +said lists.

Define Details

INDEX_CKEY

The index of the ckey in the items of a given row in a query for player ranks.

\ No newline at end of file diff --git a/modular_skyrat/modules/player_ranks/code/subsystem/player_ranks.html b/modular_skyrat/modules/player_ranks/code/subsystem/player_ranks.html new file mode 100644 index 0000000000000..e0efce900d683 --- /dev/null +++ b/modular_skyrat/modules/player_ranks/code/subsystem/player_ranks.html @@ -0,0 +1,3 @@ +modular_skyrat/modules/player_ranks/code/subsystem/player_ranks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/player_ranks/code/subsystem/player_ranks.dm

PLAYER_RANK_TABLE_NAMEThe name of the table on the database containing the player ranks. +See skyrat_schema.sql for the schema of the table.
INDEX_CKEYThe index of the ckey in the items of a given row in a query for player ranks.
LEGACY_MIGRATION_ADMIN_CKEYThe name entered in the database for the admin_ckey for legacy migrations.

Define Details

INDEX_CKEY

The index of the ckey in the items of a given row in a query for player ranks.

LEGACY_MIGRATION_ADMIN_CKEY

The name entered in the database for the admin_ckey for legacy migrations.

PLAYER_RANK_TABLE_NAME

The name of the table on the database containing the player ranks. +See skyrat_schema.sql for the schema of the table.

\ No newline at end of file diff --git a/modular_skyrat/modules/polarized_windows/polarization_controller.html b/modular_skyrat/modules/polarized_windows/polarization_controller.html new file mode 100644 index 0000000000000..81538529c7ea8 --- /dev/null +++ b/modular_skyrat/modules/polarized_windows/polarization_controller.html @@ -0,0 +1,2 @@ +modular_skyrat/modules/polarized_windows/polarization_controller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/polarized_windows/polarization_controller.dm

/datum/component/polarization_controllerA component for windows to allow them to be dynamically rendered opaque / +transparent based on a button press.
\ No newline at end of file diff --git a/modular_skyrat/modules/pollution/code/pollutants_generic.html b/modular_skyrat/modules/pollution/code/pollutants_generic.html new file mode 100644 index 0000000000000..b6e65e5a82541 --- /dev/null +++ b/modular_skyrat/modules/pollution/code/pollutants_generic.html @@ -0,0 +1 @@ +modular_skyrat/modules/pollution/code/pollutants_generic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/pollution/code/pollutants_generic.dm

/datum/pollutant/smokeSmoke coming from cigarettes and fires
/datum/pollutant/smoke/cannabisFrom smoking weed
/datum/pollutant/dustDust from mining drills
/datum/pollutant/sulphurSulphur coming from igniting matches
/datum/pollutant/decaying_wasteOrganic waste and garbage makes this
/datum/pollutant/metallic_scentSplashing blood makes a tiny bit of this
/datum/pollutant/bright_cosmosA special "Quick Dispersal" smoke for special cigars
/datum/pollutant/chemical_vaporsGreen goo piles and medicine chemical reactions make this
/datum/pollutant/carbon_air_pollutionDangerous fires release this from the waste they're burning
\ No newline at end of file diff --git a/modular_skyrat/modules/positronic_alert_console.html b/modular_skyrat/modules/positronic_alert_console.html new file mode 100644 index 0000000000000..3311bda060052 --- /dev/null +++ b/modular_skyrat/modules/positronic_alert_console.html @@ -0,0 +1,22 @@ +modular_skyrat/modules/positronic_alert_console/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Title: POSITRONIC ALERT CONSOLE

MODULE ID: POSI_ALERT:

+

Description

+

Adds a machine to be added to Skyrat maps. The Automated Postronic alert can be clicked on by ghosts to notify nearby mobs of ghost presence for posibrains.

+

TG Proc/File Changes

+
    +
  • N/A
  • +
+

Defines

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module

+
    +
  • N/A
  • +
+

Credits

+

Original Code - jjpark-kb (Jake Park) +Ported from OldRat - Funce (Foxtrot)

\ No newline at end of file diff --git a/modular_skyrat/modules/primitive_cooking_additions.html b/modular_skyrat/modules/primitive_cooking_additions.html new file mode 100644 index 0000000000000..c6c6b73214a17 --- /dev/null +++ b/modular_skyrat/modules/primitive_cooking_additions.html @@ -0,0 +1,20 @@ +modular_skyrat/modules/primitive_cooking_additions/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/primitive_cooking_additions/readme.md

Title: PRIMITIVE COOKING ADDITIONS

Description:

+

Adds several ways to cook and prepare foods without the use of powered machines

+

TG Proc/File Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Paxilmaniac

\ No newline at end of file diff --git a/modular_skyrat/modules/primitive_cooking_additions/code/plant_bag.html b/modular_skyrat/modules/primitive_cooking_additions/code/plant_bag.html new file mode 100644 index 0000000000000..bc6b0d3581539 --- /dev/null +++ b/modular_skyrat/modules/primitive_cooking_additions/code/plant_bag.html @@ -0,0 +1 @@ +modular_skyrat/modules/primitive_cooking_additions/code/plant_bag.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/primitive_cooking_additions/code/plant_bag.dm

/obj/item/storage/bag/plants/primitiveA helper for the primitive variant, for mappers.
\ No newline at end of file diff --git a/modular_skyrat/modules/primitive_cooking_additions/code/stone_stove.html b/modular_skyrat/modules/primitive_cooking_additions/code/stone_stove.html new file mode 100644 index 0000000000000..b67006ceb5c7a --- /dev/null +++ b/modular_skyrat/modules/primitive_cooking_additions/code/stone_stove.html @@ -0,0 +1 @@ +modular_skyrat/modules/primitive_cooking_additions/code/stone_stove.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/primitive_cooking_additions/code/stone_stove.dm

/datum/component/stove/primitiveStove component subtype with changed visuals and not much else
\ No newline at end of file diff --git a/modular_skyrat/modules/primitive_production.html b/modular_skyrat/modules/primitive_production.html new file mode 100644 index 0000000000000..3b0575e08ed56 --- /dev/null +++ b/modular_skyrat/modules/primitive_production.html @@ -0,0 +1,20 @@ +modular_skyrat/modules/primitive_production/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/primitive_production/readme.md

Title: PRIMITIVE PRODUCTION

Description:

+

Adds a variety of 'primitive' ways to produce items

+

TG Proc/File Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Jake Park

\ No newline at end of file diff --git a/modular_skyrat/modules/primitive_structures.html b/modular_skyrat/modules/primitive_structures.html new file mode 100644 index 0000000000000..190918977945c --- /dev/null +++ b/modular_skyrat/modules/primitive_structures.html @@ -0,0 +1,20 @@ +modular_skyrat/modules/primitive_structures/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/primitive_structures/readme.md

Title: PRIMITIVE

Description:

+

Contains various items of primitive style for icecats and sometimes even ashwalkers

+

TG Proc/File Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Paxilmaniac

\ No newline at end of file diff --git a/modular_skyrat/modules/quirks/neutral.html b/modular_skyrat/modules/quirks/neutral.html new file mode 100644 index 0000000000000..e86c73bcd260b --- /dev/null +++ b/modular_skyrat/modules/quirks/neutral.html @@ -0,0 +1 @@ +modular_skyrat/modules/quirks/neutral.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/quirks/neutral.dm

/proc/generate_DNR_trait_overlayInstantiates GLOB.DNR_trait_overlay by creating a new mutable_appearance instance of the overlay.
\ No newline at end of file diff --git a/modular_skyrat/modules/radiosound.html b/modular_skyrat/modules/radiosound.html new file mode 100644 index 0000000000000..e9011c3f51abe --- /dev/null +++ b/modular_skyrat/modules/radiosound.html @@ -0,0 +1,24 @@ +modular_skyrat/modules/radiosound/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/radiosound/readme.md

ttps://github.com/Skyrat-SS13/Skyrat-tg/pull

+

Title: RADIOSOUND

+

MODULE ID: RADIOSOUND

+

Description:

+

Makes radios go chk chk.

+

TG Proc Changes:

+
    +
  • APPEND: /code/game/objects/items/devices/radio/headset.dm > /obj/item/radio/headset/talk_into()
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Gandalf2k15 - porting +Bob - OG code

\ No newline at end of file diff --git a/modular_skyrat/modules/reagent_forging.html b/modular_skyrat/modules/reagent_forging.html new file mode 100644 index 0000000000000..55da354671a55 --- /dev/null +++ b/modular_skyrat/modules/reagent_forging.html @@ -0,0 +1,23 @@ +modular_skyrat/modules/reagent_forging/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/reagent_forging/readme.md

Title: Reagent Forging

+

MODULE ID: REAGENT_FORGING

+

Description:

+

Reagent forging is a form of forging where users are able to create various items that have the ability to become imbued with reagents. Items that have been imbued have the ability to permanently inject +imbued reagents into the targets.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Jake Park

\ No newline at end of file diff --git a/modular_skyrat/modules/reagent_forging/code/crafting_bench.html b/modular_skyrat/modules/reagent_forging/code/crafting_bench.html new file mode 100644 index 0000000000000..a6c9cfd726b8b --- /dev/null +++ b/modular_skyrat/modules/reagent_forging/code/crafting_bench.html @@ -0,0 +1 @@ +modular_skyrat/modules/reagent_forging/code/crafting_bench.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/reagent_forging/code/crafting_bench.dm

WEAPON_COMPLETION_WOOD_AMOUNTHow many planks of wood are required to complete a weapon?
BAD_HIT_PENALTYThe number of hits you are set back when a bad hit is made

Define Details

BAD_HIT_PENALTY

The number of hits you are set back when a bad hit is made

WEAPON_COMPLETION_WOOD_AMOUNT

How many planks of wood are required to complete a weapon?

\ No newline at end of file diff --git a/modular_skyrat/modules/reagent_forging/code/forge.html b/modular_skyrat/modules/reagent_forging/code/forge.html new file mode 100644 index 0000000000000..6e5d68f7a9cee --- /dev/null +++ b/modular_skyrat/modules/reagent_forging/code/forge.html @@ -0,0 +1 @@ +modular_skyrat/modules/reagent_forging/code/forge.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/reagent_forging/code/forge.dm

BASELINE_ACTION_TIMEThe baseline time to take for doing actions with the forge, like heating glass, setting ceramics, etc.
BASELINE_HEATING_DURATIONThe basline for how long an item such as molten glass will be kept workable after heating
FORGE_DEFAULT_TEMPERATURE_CHANGEThe amount the forge's temperature will change per process
MAX_FORGE_TEMPThe maximum temperature the forge can reach
MIN_FORGE_TEMPThe minimum temperature for using the forge
FORGE_HEATING_DURATIONThe duration that objects heated in the forge are heated for
FORGE_LEVEL_YOU_PLAY_LIKE_A_NOOBDefines for different levels of the forge, ranging from no level (you play like a noob) to legendary
MAX_TEMPERATURE_LOSS_DECREASEThe maximum amount of temperature loss decrease that upgrades can give the forge
CHARCOAL_CHANCEThe chance per piece of wood added that charcoal will form later
MINIMUM_IMBUING_REAGENT_AMOUNTThe minimum units of a reagent rerquired to imbue it into a weapon
SMOKE_STATE_NONEDefines for the different levels of smoke coming out of the forge, (good, neutral, bad) are all used for baking, (not cooking) is used for when there is no tray in the forge

Define Details

BASELINE_ACTION_TIME

The baseline time to take for doing actions with the forge, like heating glass, setting ceramics, etc.

BASELINE_HEATING_DURATION

The basline for how long an item such as molten glass will be kept workable after heating

CHARCOAL_CHANCE

The chance per piece of wood added that charcoal will form later

FORGE_DEFAULT_TEMPERATURE_CHANGE

The amount the forge's temperature will change per process

FORGE_HEATING_DURATION

The duration that objects heated in the forge are heated for

FORGE_LEVEL_YOU_PLAY_LIKE_A_NOOB

Defines for different levels of the forge, ranging from no level (you play like a noob) to legendary

MAX_FORGE_TEMP

The maximum temperature the forge can reach

MAX_TEMPERATURE_LOSS_DECREASE

The maximum amount of temperature loss decrease that upgrades can give the forge

MINIMUM_IMBUING_REAGENT_AMOUNT

The minimum units of a reagent rerquired to imbue it into a weapon

MIN_FORGE_TEMP

The minimum temperature for using the forge

SMOKE_STATE_NONE

Defines for the different levels of smoke coming out of the forge, (good, neutral, bad) are all used for baking, (not cooking) is used for when there is no tray in the forge

\ No newline at end of file diff --git a/modular_skyrat/modules/reagent_forging/code/water_basin.html b/modular_skyrat/modules/reagent_forging/code/water_basin.html new file mode 100644 index 0000000000000..1d79a48531769 --- /dev/null +++ b/modular_skyrat/modules/reagent_forging/code/water_basin.html @@ -0,0 +1 @@ +modular_skyrat/modules/reagent_forging/code/water_basin.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/reagent_forging/code/water_basin.dm

/datum/fish_source/water_basinFishing source for fishing out of basins that have been upgraded, contains saltwater fish (lizard fish fall under this too!)
\ No newline at end of file diff --git a/modular_skyrat/modules/records_on_examine.html b/modular_skyrat/modules/records_on_examine.html new file mode 100644 index 0000000000000..52b5a54f5014d --- /dev/null +++ b/modular_skyrat/modules/records_on_examine.html @@ -0,0 +1,23 @@ +modular_skyrat/modules/records_on_examine/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/records_on_examine/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/9081

+

Title: Re-implements complete records functionality, my old records on examine PR, implements a exploitables menu.

+

MODULE ID: records_on_examine

+

Description:

+

This PR allows med/sec huds to view medical/security records on examine, respectively, as well as allowing you to view general records. It +also allows certain antags to view exploitables on examine as well. It also fully restores what functionality records had prior to the pref rework. Basically, +my last 2 prs in one. It also refactors how record saves are handled, and how admin antag removals work.

+

TG Proc/File Changes:

+

EDIT: examine.dm, human.dm, datacore.dm, flavor_text.dm, species_features.tx, tgui.dm, preferences_savefile.dm, antag_datum.dm, mind.dm. Allowed links to appear in chat when viewing people with huds/as certain antags, allows clikcing them to paste the records of the other party into chat. Re-implements the storing and handling of records into datacore, adds UI for that in flavor_text and species_features. Modified TGUI to recognize the exploitable manifest. Changed preferences_savefile.dm to comment out the way we used to save and load records, it's handled in flavor_text.dm now. Adds and removes the exploitables verb now, by changing mind.dm and antag_datum.dm.

+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • code/modules/antagonists/_common/antag_datum.dm
  • +
+

Included files that are not contained in this module:

+
    +
  • RecordManifest.js
  • +
+

Credits:

+

Niko#7526, MrMelbert for giving me much needed advice and code examples, and #development_discuss for helping me

\ No newline at end of file diff --git a/modular_skyrat/modules/records_on_examine/code/record_manifest.html b/modular_skyrat/modules/records_on_examine/code/record_manifest.html new file mode 100644 index 0000000000000..8433e94ed0f48 --- /dev/null +++ b/modular_skyrat/modules/records_on_examine/code/record_manifest.html @@ -0,0 +1 @@ +modular_skyrat/modules/records_on_examine/code/record_manifest.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/records_on_examine/code/record_manifest.dm

/datum/record_manifestA datum that's mainly used to get exploitables for antagonists.
\ No newline at end of file diff --git a/modular_skyrat/modules/science_tools.html b/modular_skyrat/modules/science_tools.html new file mode 100644 index 0000000000000..5c02226972fdc --- /dev/null +++ b/modular_skyrat/modules/science_tools.html @@ -0,0 +1,37 @@ +modular_skyrat/modules/science_tools/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/science_tools/readme.md

+

https://github.com/Skyrat-SS13/Skyrat-tg/pull/24162

+

Science tools

+

Module ID: SCIENCE_TOOLS

+

Description: Lets sci print watered down engi tools, and robotics, medical tools.

+

TG Proc/File Changes:

+
    +
  • N/A
  • +
+ +

Modular Overrides:

+
    +
  • N/A
  • +
+ +

Defines:

+
    +
  • 2 defines in research.dm
  • +
+ +

Included files that are not contained in this module:

+
    +
  • ~skyrat_defines/research.dm
  • +
+ +

Credits:

+
    +
  • Niko: Author
  • +
+
\ No newline at end of file diff --git a/modular_skyrat/modules/sec_haul.html b/modular_skyrat/modules/sec_haul.html new file mode 100644 index 0000000000000..275d37a3c2fa7 --- /dev/null +++ b/modular_skyrat/modules/sec_haul.html @@ -0,0 +1,27 @@ +modular_skyrat/modules/sec_haul/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/sec_haul/readme.md

Title: Security overhaul

+

MODULE ID: MODULAR_WEAPONS

+

Description:

+

Completely overhauls security to something that will hopefully fit us.

+

TG Proc Changes:

+
    +
  • See: https://github.com/Skyrat-SS13/Skyrat-tg/pull/2860
  • +
+

Defines:

+
    +
  • See: https://github.com/Skyrat-SS13/Skyrat-tg/pull/2860
  • +
+

Master file additions

+
    +
  • modular_skyrat/master_files/code/modules/cargo/packs/vending_restock.dm: var/special
  • +
  • modular_skyrat/master_files/code/modules/cargo/packs/security.dm: var/special, var/cost
  • +
+

Included files that are not contained in this module:

+
    +
  • See: https://github.com/Skyrat-SS13/Skyrat-tg/pull/2860
  • +
+

Credits:

+

Code: Gandalf2k15 +Sprite modification: Gandalf2k15 +Uniforms and equipment sprites: JungleRat +Gun sprites: Eris and Sojourn +de-goofsec'd guns: ErdinyoBarboza

\ No newline at end of file diff --git a/modular_skyrat/modules/self_actualization_device/code/self_actualization_device.html b/modular_skyrat/modules/self_actualization_device/code/self_actualization_device.html new file mode 100644 index 0000000000000..19fab4b0c87a6 --- /dev/null +++ b/modular_skyrat/modules/self_actualization_device/code/self_actualization_device.html @@ -0,0 +1 @@ +modular_skyrat/modules/self_actualization_device/code/self_actualization_device.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/self_actualization_device/code/self_actualization_device.dm

NO_CONSENTPossible states of player consent for using the machine.
BREAKOUT_TIMEHow long does it take to break out of the machine?
ADVERT_TIMEThe interval that advertisements are said by the machine's speaker.

Define Details

ADVERT_TIME

The interval that advertisements are said by the machine's speaker.

BREAKOUT_TIME

How long does it take to break out of the machine?

Possible states of player consent for using the machine.

\ No newline at end of file diff --git a/modular_skyrat/modules/simple_research/simple_research.html b/modular_skyrat/modules/simple_research/simple_research.html new file mode 100644 index 0000000000000..c4dc97a880996 --- /dev/null +++ b/modular_skyrat/modules/simple_research/simple_research.html @@ -0,0 +1 @@ +modular_skyrat/modules/simple_research/simple_research.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/simple_research/simple_research.dm

/datum/simple_research/scanner19 items
\ No newline at end of file diff --git a/modular_skyrat/modules/skyrat_access_helpers.html b/modular_skyrat/modules/skyrat_access_helpers.html new file mode 100644 index 0000000000000..1950e5fce8e69 --- /dev/null +++ b/modular_skyrat/modules/skyrat_access_helpers.html @@ -0,0 +1,4 @@ +modular_skyrat/modules/skyrat_access_helpers/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/skyrat_access_helpers/README.md

Title: Skyrat Access Helpers

+

Module ID: skyrat_access_helpers

+

Description:

+

Adds modular access_helpers for mapping.

\ No newline at end of file diff --git a/modular_skyrat/modules/skyrat_access_helpers/accesshelpers.html b/modular_skyrat/modules/skyrat_access_helpers/accesshelpers.html new file mode 100644 index 0000000000000..59cd3bb8c6e42 --- /dev/null +++ b/modular_skyrat/modules/skyrat_access_helpers/accesshelpers.html @@ -0,0 +1 @@ +modular_skyrat/modules/skyrat_access_helpers/accesshelpers.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/skyrat_access_helpers/accesshelpers.dm

/obj/effect/mapping_helpers/airlock/access/any/cent_com
\ No newline at end of file diff --git a/modular_skyrat/modules/soulstone_changes.html b/modular_skyrat/modules/soulstone_changes.html new file mode 100644 index 0000000000000..dea3edb37b04b --- /dev/null +++ b/modular_skyrat/modules/soulstone_changes.html @@ -0,0 +1,31 @@ +modular_skyrat/modules/soulstone_changes/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Pull Request Link

'https://github.com/Skyrat-SS13/Skyrat-tg/pull/'

+

Title:

+

MODULE ID: SOULSTONE_CHANGES

+

Description

+

Makes soulstone no longer permakill people, and makes construct's souls return to their original bodies if the construct is killed.

+ +

TG Proc/File Changes

+
    +
  • code/modules/antagonist/wizard/equipment/soulstone.dm > /obj/item/soulstone/proc/transfer_mob()
  • +
  • code/modules/antagonist/wizard/equipment/soulstone.dm > /obj/item/soulstone/proc/init_shade()
  • +
  • code/modules/antagonist/wizard/equipment/soulstone.dm > /obj/item/soulstone/proc/getCultGhost()
  • +
+ +

Defines

+
    +
  • code/__DEFINES/~skyrat_defines/traits.dm > TRAIT_SACRIFICED
  • +
+ +

Master file additions

+
    +
  • N/A
  • +
+ +

Included files that are not contained in this module

+
    +
  • N/A
  • +
+ +

Credits

+

https://github.com/Arturlang

+
\ No newline at end of file diff --git a/modular_skyrat/modules/specialist_armor/code/clothing_bullet_damage_component.html b/modular_skyrat/modules/specialist_armor/code/clothing_bullet_damage_component.html new file mode 100644 index 0000000000000..28c89cb6e8756 --- /dev/null +++ b/modular_skyrat/modules/specialist_armor/code/clothing_bullet_damage_component.html @@ -0,0 +1 @@ +modular_skyrat/modules/specialist_armor/code/clothing_bullet_damage_component.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/specialist_armor/code/clothing_bullet_damage_component.dm

/datum/component/clothing_damaged_by_bulletsComponent that lets clothing be damaged in zones by piercing bullets. The parent MUST have limb_integrity set.
\ No newline at end of file diff --git a/modular_skyrat/modules/stasisrework.html b/modular_skyrat/modules/stasisrework.html new file mode 100644 index 0000000000000..00ee61e761a3e --- /dev/null +++ b/modular_skyrat/modules/stasisrework.html @@ -0,0 +1,25 @@ +modular_skyrat/modules/stasisrework/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/stasisrework/readme.md

Title: Stasis Rework

+

MODULE ID: stasisrework

+

Description:

+

Introduces Bodybags that keep a dead, and only dead, body in stasis while closed, albeit without the ability for treatment while closed.

+

Makes stasis beds have a lid when they're active.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Baystation12 - Concept for the bodybag +TGstation - Stasis Bed code and sleeper code +FlamingLily - Jerryrigging the stasis bed code into a stasis bodybag and frankenstining sleeper and stasis bed code together

\ No newline at end of file diff --git a/modular_skyrat/modules/station_traits.html b/modular_skyrat/modules/station_traits.html new file mode 100644 index 0000000000000..d30a7795bab43 --- /dev/null +++ b/modular_skyrat/modules/station_traits.html @@ -0,0 +1,12 @@ +modular_skyrat/modules/station_traits/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/station_traits/readme.md

Title: Station Traits

+

MODULE ID: STATION_TRAITS

+

Description:

+

Skyrat changes to the roundstart station traits

+

TG Proc Changes:

+

/datum/station_trait/cybernetic_revolution/New()

+

Master file additions

+
    +
  • N/A
  • +
+

Credits:

+

LT3

\ No newline at end of file diff --git a/modular_skyrat/modules/subsystems.html b/modular_skyrat/modules/subsystems.html new file mode 100644 index 0000000000000..a5e96c912f3d1 --- /dev/null +++ b/modular_skyrat/modules/subsystems.html @@ -0,0 +1,20 @@ +modular_skyrat/modules/subsystems/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/subsystems/readme.md

Title: Subsystems

+

MODULE ID: MISC_SUBSYSTEMS

+

Description:

+

Misc subsytems that are too small for their own module.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • Ticket Ping Subsystem: code/modules/admin/verbs/adminhelp.dm
  • +
\ No newline at end of file diff --git a/modular_skyrat/modules/subsystems/code/ticket_ping/ticket_ss.html b/modular_skyrat/modules/subsystems/code/ticket_ping/ticket_ss.html new file mode 100644 index 0000000000000..a6ef23e60f1bb --- /dev/null +++ b/modular_skyrat/modules/subsystems/code/ticket_ping/ticket_ss.html @@ -0,0 +1 @@ +modular_skyrat/modules/subsystems/code/ticket_ping/ticket_ss.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/subsystems/code/ticket_ping/ticket_ss.dm

/var/SSticket_pingPings admins every (time chosen in config) for all open tickets/OPFOR applications
\ No newline at end of file diff --git a/modular_skyrat/modules/suicide_verb.html b/modular_skyrat/modules/suicide_verb.html new file mode 100644 index 0000000000000..e4750c8609435 --- /dev/null +++ b/modular_skyrat/modules/suicide_verb.html @@ -0,0 +1,34 @@ +modular_skyrat/modules/suicide_verb/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/suicide_verb/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/3194

+

Title: Suicide verb removal

+

MODULE ID: SUICIDE_VERB

+

Description:

+

Removes the LRP suicide verb, in the same manner as most RP servers.

+

TG Proc/File Changes:

+

Modified:

+
    +
  • code/modules/client/verbs/suicide.dm
  • +
+

Removed:

+
    +
  • /mob/living/carbon/human/verb/suicide()
  • +
  • /mob/living/brain/verb/suicide()
  • +
  • /mob/living/silicon/ai/verb/suicide()
  • +
  • /mob/living/silicon/robot/verb/suicide()
  • +
  • /mob/living/silicon/pai/verb/suicide()
  • +
  • /mob/living/carbon/alien/adult/verb/suicide()
  • +
  • /mob/living/simple_animal/verb/suicide()
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Rohesie

\ No newline at end of file diff --git a/modular_skyrat/modules/synths/code.html b/modular_skyrat/modules/synths/code.html new file mode 100644 index 0000000000000..9f2a35c2a6df6 --- /dev/null +++ b/modular_skyrat/modules/synths/code.html @@ -0,0 +1,27 @@ +modular_skyrat/modules/synths/code/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/synths/code/README.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/18193, plus many others, which I can't find easily.

+

Synths

+

Module ID: SYNTHS

+

Description:

+

Adds in a roundstart robotic race. Currently in a very sad state, and is being worked on by RimiNosha at the moment.

+

TG Proc/File Changes:

+
    +
  • defib.dm: /obj/item/shockpaddles/proc/do_help() modified
  • +
  • Will fill out as I discover what edits were made to acommodate these.
  • +
+

Modular Overrides:

+
    +
  • Will fill out as I discover what edits were made to acommodate these.
  • +
+

Defines:

+
    +
  • ~skyrat_defines/medical_defines.dm: SYNTH_DEFIBBED_TRAUMA_DURATION
  • +
  • ~skyrat_defines/medical_defines.dm: SYNTH_DEFIBBED_TRAUMA_SEVERITY
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Niko - Making defibs fuck synths up +Nerevar - Initial code, I think. Correct this file if wrong. +RimiNosha - Updating the code and adding various QoL features.

\ No newline at end of file diff --git a/modular_skyrat/modules/synths/code/bodyparts/internal_computer/internal_computer.html b/modular_skyrat/modules/synths/code/bodyparts/internal_computer/internal_computer.html new file mode 100644 index 0000000000000..4ead0da345e5c --- /dev/null +++ b/modular_skyrat/modules/synths/code/bodyparts/internal_computer/internal_computer.html @@ -0,0 +1 @@ +modular_skyrat/modules/synths/code/bodyparts/internal_computer/internal_computer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/synths/code/bodyparts/internal_computer/internal_computer.dm

/obj/item/modular_computer/pda/synthCustom computer for synth brains
\ No newline at end of file diff --git a/modular_skyrat/modules/synths/code/bodyparts/limbs.html b/modular_skyrat/modules/synths/code/bodyparts/limbs.html new file mode 100644 index 0000000000000..77456f2390efe --- /dev/null +++ b/modular_skyrat/modules/synths/code/bodyparts/limbs.html @@ -0,0 +1 @@ +modular_skyrat/modules/synths/code/bodyparts/limbs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/synths/code/bodyparts/limbs.dm

SYNTH_BRUTE_MODIFIERDamage to LIMB modifier defines
SYNTH_LIGHT_BRUTE_MSGExmaine text for Synth limb damage
/obj/item/bodypart/chest/synthSynth Chest, custom EMP effects go here to avoid stacking multiple. If they're alive they'll always have this, the rest go to organs.

Define Details

SYNTH_BRUTE_MODIFIER

Damage to LIMB modifier defines

SYNTH_LIGHT_BRUTE_MSG

Exmaine text for Synth limb damage

\ No newline at end of file diff --git a/modular_skyrat/modules/synths/code/defib.html b/modular_skyrat/modules/synths/code/defib.html new file mode 100644 index 0000000000000..86779a04388a3 --- /dev/null +++ b/modular_skyrat/modules/synths/code/defib.html @@ -0,0 +1 @@ +modular_skyrat/modules/synths/code/defib.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/synths/code/defib.dm

/proc/remove_synth_defib_traumaGlobal timer proc used in defib.dm. Removes the temporary trauma caused by being defibbed as a synth.
\ No newline at end of file diff --git a/modular_skyrat/modules/synths/code/surgery/robot_healing.html b/modular_skyrat/modules/synths/code/surgery/robot_healing.html new file mode 100644 index 0000000000000..7166bd3bd174c --- /dev/null +++ b/modular_skyrat/modules/synths/code/surgery/robot_healing.html @@ -0,0 +1 @@ +modular_skyrat/modules/synths/code/surgery/robot_healing.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/synths/code/surgery/robot_healing.dm

/datum/surgery/robot_healing/basicTYPES
/datum/surgery_step/robot_heal/basicSTEPS
\ No newline at end of file diff --git a/modular_skyrat/modules/synths/code/surgery/robot_heart_surgery.html b/modular_skyrat/modules/synths/code/surgery/robot_heart_surgery.html new file mode 100644 index 0000000000000..ed99247a91567 --- /dev/null +++ b/modular_skyrat/modules/synths/code/surgery/robot_heart_surgery.html @@ -0,0 +1 @@ +modular_skyrat/modules/synths/code/surgery/robot_heart_surgery.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/synths/code/surgery/robot_heart_surgery.dm

/datum/surgery/hydraulic_maintenanceHydraulic Pump Surgery
\ No newline at end of file diff --git a/modular_skyrat/modules/synths/code/surgery/robot_liver_surgery.html b/modular_skyrat/modules/synths/code/surgery/robot_liver_surgery.html new file mode 100644 index 0000000000000..9b4cd9c7a5c79 --- /dev/null +++ b/modular_skyrat/modules/synths/code/surgery/robot_liver_surgery.html @@ -0,0 +1 @@ +modular_skyrat/modules/synths/code/surgery/robot_liver_surgery.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/synths/code/surgery/robot_liver_surgery.dm

/datum/surgery/reagent_pumpReagent Processor Repair surgery
\ No newline at end of file diff --git a/modular_skyrat/modules/synths/code/surgery/robot_lung_surgery.html b/modular_skyrat/modules/synths/code/surgery/robot_lung_surgery.html new file mode 100644 index 0000000000000..ad6891a39d417 --- /dev/null +++ b/modular_skyrat/modules/synths/code/surgery/robot_lung_surgery.html @@ -0,0 +1 @@ +modular_skyrat/modules/synths/code/surgery/robot_lung_surgery.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/synths/code/surgery/robot_lung_surgery.dm

/datum/surgery/heatsinkHeatsink Repair Surgery
\ No newline at end of file diff --git a/modular_skyrat/modules/synths/code/surgery/robot_stomach_surgery.html b/modular_skyrat/modules/synths/code/surgery/robot_stomach_surgery.html new file mode 100644 index 0000000000000..5b57fb93f1fb7 --- /dev/null +++ b/modular_skyrat/modules/synths/code/surgery/robot_stomach_surgery.html @@ -0,0 +1 @@ +modular_skyrat/modules/synths/code/surgery/robot_stomach_surgery.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/synths/code/surgery/robot_stomach_surgery.dm

/datum/surgery/bioreactorBioreactor Maintenance
\ No newline at end of file diff --git a/modular_skyrat/modules/tagline.html b/modular_skyrat/modules/tagline.html new file mode 100644 index 0000000000000..ed76e5cd717d7 --- /dev/null +++ b/modular_skyrat/modules/tagline.html @@ -0,0 +1,14 @@ +modular_skyrat/modules/tagline/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/tagline/readme.md

Title: Tagline

+

MODULE ID: TAGLINE

+

Description:

+

Gives the server a customised tagline and description, while removing needless information.

+

TG Proc Changes:

+
    +
  • REMOVAL: Skyrat-tg\code\game\world.dm > /world/proc/update_status()
  • +
+

Defines:

+

N/A

+

Included files:

+

N/A

+

Credits:

+

Gandalf2k15

\ No newline at end of file diff --git a/modular_skyrat/modules/tarkon/code/clothing/mod.html b/modular_skyrat/modules/tarkon/code/clothing/mod.html new file mode 100644 index 0000000000000..3b537a513a1a5 --- /dev/null +++ b/modular_skyrat/modules/tarkon/code/clothing/mod.html @@ -0,0 +1 @@ +modular_skyrat/modules/tarkon/code/clothing/mod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/tarkon/code/clothing/mod.dm

/datum/mod_theme/prototype/haulerPrototype Hauler Suit
\ No newline at end of file diff --git a/modular_skyrat/modules/tarkon/code/guns/resonance_disruptor.html b/modular_skyrat/modules/tarkon/code/guns/resonance_disruptor.html new file mode 100644 index 0000000000000..db103ebd02110 --- /dev/null +++ b/modular_skyrat/modules/tarkon/code/guns/resonance_disruptor.html @@ -0,0 +1 @@ +modular_skyrat/modules/tarkon/code/guns/resonance_disruptor.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/tarkon/code/guns/resonance_disruptor.dm

/obj/item/gun/energy/recharge/resonant_systemYes. This is a lot of code frankensteining. I am not proud of my work but damned am i proud it works... Atleast if you're seeing this it works.
\ No newline at end of file diff --git a/modular_skyrat/modules/tarkon/code/misc-fluff/research.html b/modular_skyrat/modules/tarkon/code/misc-fluff/research.html new file mode 100644 index 0000000000000..267ca23ec6efb --- /dev/null +++ b/modular_skyrat/modules/tarkon/code/misc-fluff/research.html @@ -0,0 +1 @@ +modular_skyrat/modules/tarkon/code/misc-fluff/research.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/tarkon/code/misc-fluff/research.dm

/datum/techweb/tarkonFirst we enstate a techweb so we can add the node.
/obj/item/circuitboard/machine/rdserver/tarkonNow we make the physical server
\ No newline at end of file diff --git a/modular_skyrat/modules/tarkon/code/misc-fluff/spawner.html b/modular_skyrat/modules/tarkon/code/misc-fluff/spawner.html new file mode 100644 index 0000000000000..96808deff07f5 --- /dev/null +++ b/modular_skyrat/modules/tarkon/code/misc-fluff/spawner.html @@ -0,0 +1 @@ +modular_skyrat/modules/tarkon/code/misc-fluff/spawner.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/tarkon/code/misc-fluff/spawner.dm

/datum/outfit/tarkon/lootCorpse/Mob Spawners Below
\ No newline at end of file diff --git a/modular_skyrat/modules/taur_mechanics/code/constrict.html b/modular_skyrat/modules/taur_mechanics/code/constrict.html new file mode 100644 index 0000000000000..9cfc803fc8173 --- /dev/null +++ b/modular_skyrat/modules/taur_mechanics/code/constrict.html @@ -0,0 +1 @@ +modular_skyrat/modules/taur_mechanics/code/constrict.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/taur_mechanics/code/constrict.dm

CONSTRICT_BASE_PIXEL_SHIFTWhen a mob is constricted, its pixel_x will be modified by this. Reverted on unconstriction. Modified by sprite scaling.
CONSTRICT_ESCAPE_CHANCEThe base chance a mob has to escape from a constriction.
SERPENTINE_TAIL_SLIME_ALPHASince slimepeople are transparent, we have to match their alpha. What our alpha is set to when our owner is a slime.
CONSTRICTED_FORCE_WOUND_BONUS_MINThe minimum wound bonus caused by a forced wound in squeeze_constricted.
CONSTRICTED_FORCE_WOUND_BONUS_MAXThe maximum wound bonus caused by a forced wound in squeeze_constricted.
SERPENTINE_TAIL_DESTRUCTION_OWNER_BRUTE_DAMAGEThe damage dealt to a serpentine tail's owner apon its destruction.
SERPENTINE_TAIL_DESTRUCTION_R_LEG_CHANCEThe chance that the damage dealt to a destroyed tail's owner goes to the right leg over the left leg.
SERPENTINE_TAIL_UNBUCKLE_TIMEThe time it takes for a constricted thing to do a break-out attempt.

Define Details

CONSTRICTED_FORCE_WOUND_BONUS_MAX

The maximum wound bonus caused by a forced wound in squeeze_constricted.

CONSTRICTED_FORCE_WOUND_BONUS_MIN

The minimum wound bonus caused by a forced wound in squeeze_constricted.

CONSTRICT_BASE_PIXEL_SHIFT

When a mob is constricted, its pixel_x will be modified by this. Reverted on unconstriction. Modified by sprite scaling.

CONSTRICT_ESCAPE_CHANCE

The base chance a mob has to escape from a constriction.

SERPENTINE_TAIL_DESTRUCTION_OWNER_BRUTE_DAMAGE

The damage dealt to a serpentine tail's owner apon its destruction.

SERPENTINE_TAIL_DESTRUCTION_R_LEG_CHANCE

The chance that the damage dealt to a destroyed tail's owner goes to the right leg over the left leg.

SERPENTINE_TAIL_SLIME_ALPHA

Since slimepeople are transparent, we have to match their alpha. What our alpha is set to when our owner is a slime.

SERPENTINE_TAIL_UNBUCKLE_TIME

The time it takes for a constricted thing to do a break-out attempt.

\ No newline at end of file diff --git a/modular_skyrat/modules/tesh_augments.html b/modular_skyrat/modules/tesh_augments.html new file mode 100644 index 0000000000000..cd6fac6e3489e --- /dev/null +++ b/modular_skyrat/modules/tesh_augments.html @@ -0,0 +1,5 @@ +modular_skyrat/modules/tesh_augments/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/tesh_augments/readme.md

/* +teshari_ cybernetics +all done by aKhromatopsia +that's all +*/

\ No newline at end of file diff --git a/modular_skyrat/modules/time_clock/code/console_tgui.html b/modular_skyrat/modules/time_clock/code/console_tgui.html new file mode 100644 index 0000000000000..a82a7cae6142e --- /dev/null +++ b/modular_skyrat/modules/time_clock/code/console_tgui.html @@ -0,0 +1 @@ +modular_skyrat/modules/time_clock/code/console_tgui.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/time_clock/code/console_tgui.dm

TIME_CLOCK_RETURN_ITEMSWhat items do we want to remove from the person clocking out?

Define Details

TIME_CLOCK_RETURN_ITEMS

What items do we want to remove from the person clocking out?

\ No newline at end of file diff --git a/modular_skyrat/modules/title_screen.html b/modular_skyrat/modules/title_screen.html new file mode 100644 index 0000000000000..b7bf152e6f1f8 --- /dev/null +++ b/modular_skyrat/modules/title_screen.html @@ -0,0 +1,28 @@ +modular_skyrat/modules/title_screen/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Title: Lobby screens!

MODULE ID: lobbyscreen

+

Description:

+

Adds a brand new look to the lobby screen, adds a splash screen too, since that shit is awesome. Inspired by TauCeti, heavily modified by me.

+

Guide:

+

To make sure your server doesn't/does have this feature, see config.txt +##Enable server swapping, uncomment to enable reading of swap_ips.txt (file directory: config/skyrat/swap_ips.txt) +SERVER_SWAP_ENABLED +if you use this, make sure swap_ips.txt is present in skyrat config.

+

We offer the option to customise the lobby HTML by giving you access to a file named lobby_html.txt in the config. The server will runtime if this file does not exist. Ensure it exists in directory config/skyrat/lobby_html.txt.

+

DO NOT UNDER ANY CIRCUMSTANCES RENAME THE ELEMENTS WITHIN THE HTML FILE, KEEP THEM AS THEY ARE.

+

Elements: +.bg - the background image +.container_terminal - This is the startup terminal html, generally, don't change this unless you want a cooler startup terminal. +.terminal_text - Terminal text +.container_progress - This is the container for the progress bar. Changing this likely involves changing the .container_terminal. +.progress_bar - The moving part of the progress bar. Must start at 0% width; the body script updates the width live. +.fade_out - Generic class that fades content out. Currently applied to .container_progress when the progress bar overruns 100%. +.container_nav - This is the main menu container box, it defines where the menu is, and what it looks like. +.menu_button - The "buttons" for the main menu(join, observe, etc). +.menu_button:hover - The animation for hovering over buttons. +.menu_newpoll - This is the new polls text, so players attention is brought to it, flashes in and out with @ pollsmove animation. +.container_notice - This is the admin notice container for when an admin sets the title notice. This button is under fun in the admin tab. +.menu_notice - Admin notice text. +.unchecked - Unchecked ☒ box. +.checked - Checked ☑ box. +REMEMBER, DO NOT EDIT THESE ELEMENT NAMES ELSE THE LOBBYSCREEN WILL BREAK.

+

Credits:

+

Gandalf2k15 & TauCeti

\ No newline at end of file diff --git a/modular_skyrat/modules/title_screen/code/title_screen_controls.html b/modular_skyrat/modules/title_screen/code/title_screen_controls.html new file mode 100644 index 0000000000000..5c7e9790fc7ae --- /dev/null +++ b/modular_skyrat/modules/title_screen/code/title_screen_controls.html @@ -0,0 +1 @@ +modular_skyrat/modules/title_screen/code/title_screen_controls.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/title_screen/code/title_screen_controls.dm

/datum/admin_verb/admin_change_title_screenEnables an admin to upload a new titlescreen image.
/datum/admin_verb/change_title_screen_noticeSets a titlescreen notice, a big red text on the main screen.
/datum/admin_verb/change_title_screen_htmlAn admin debug command that enables you to change the HTML on the go.
\ No newline at end of file diff --git a/modular_skyrat/modules/title_screen/code/title_screen_subsystem.html b/modular_skyrat/modules/title_screen/code/title_screen_subsystem.html new file mode 100644 index 0000000000000..a21cfd137f82d --- /dev/null +++ b/modular_skyrat/modules/title_screen/code/title_screen_subsystem.html @@ -0,0 +1 @@ +modular_skyrat/modules/title_screen/code/title_screen_subsystem.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/title_screen/code/title_screen_subsystem.dm

/proc/add_startup_messageAdds a startup message to the splashscreen.
\ No newline at end of file diff --git a/modular_skyrat/modules/trim_tokens.html b/modular_skyrat/modules/trim_tokens.html new file mode 100644 index 0000000000000..a5e83d664cd79 --- /dev/null +++ b/modular_skyrat/modules/trim_tokens.html @@ -0,0 +1,18 @@ +modular_skyrat/modules/trim_tokens/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/trim_tokens/readme.md

Title: Trim Tokens

+

MODULE ID: TRIM_TOKENS

+

Description:

+

Adds some TrimTokens, that allow for some one-use rapid trim modification that update the trim and access of the card it's used on.

+

TG Proc Changes:

+
    +
  • /obj/item/card/id/attackby(obj/item/W, mob/user, params) - cards_ids.dm
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

Credits:

+

Code: GoldenAlpharex

\ No newline at end of file diff --git a/modular_skyrat/modules/turretid.html b/modular_skyrat/modules/turretid.html new file mode 100644 index 0000000000000..2f577702a6d8b --- /dev/null +++ b/modular_skyrat/modules/turretid.html @@ -0,0 +1,22 @@ +modular_skyrat/modules/turretid/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/turretid/readme.md

Title: Turret ID System

+

MODULE ID: TIS

+

Description:

+

This systems enables you to assign turrets a system_id which will be placed into the turret control system. Great for setting turret control for turrets in different areas!

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • GLOB.turret_id_refs
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Gandalfk2k15 - Original Code

\ No newline at end of file diff --git a/modular_skyrat/modules/verbs.html b/modular_skyrat/modules/verbs.html new file mode 100644 index 0000000000000..c8e4d4a60a913 --- /dev/null +++ b/modular_skyrat/modules/verbs.html @@ -0,0 +1,25 @@ +modular_skyrat/modules/verbs/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/verbs/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/872

+

Title: More verbs and subtler.

+

MODULE ID: VERBS

+

Description:

+

Adds a few emotes and verbs for players to use, such as LOOC, subtle.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • #define CHAT_LOOC (1<<12)
  • +
  • #define CHAT_LOOC_ADMIN (1<<13)
  • +
  • #define LOG_SUBTLER (1 << 20)
  • +
+

Master file additions

+
    +
  • D:\Documents\Github\SS13\Skyrat-tg\modular_skyrat\master_files\code_globalvars\configuration.dm
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Gandalf2k15 - porting and refactoring

\ No newline at end of file diff --git a/modular_skyrat/modules/veteran_only.html b/modular_skyrat/modules/veteran_only.html new file mode 100644 index 0000000000000..545935d2bdc83 --- /dev/null +++ b/modular_skyrat/modules/veteran_only.html @@ -0,0 +1,25 @@ +modular_skyrat/modules/veteran_only/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/veteran_only/readme.md

Title: Veteran Only Overrides

+

MODULE ID: VETERAN_ONLY

+

Description:

+

Overrides or extends /tg/ definitions with veteran only requirements.

+

As of module creation, there are no veteran_only overrides remaining in the master files.

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • None!
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+
    +
  • N/A
  • +
\ No newline at end of file diff --git a/modular_skyrat/modules/vox_sprites.html b/modular_skyrat/modules/vox_sprites.html new file mode 100644 index 0000000000000..47510d379ec73 --- /dev/null +++ b/modular_skyrat/modules/vox_sprites.html @@ -0,0 +1,47 @@ +modular_skyrat/modules/vox_sprites/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/vox_sprites/readme.md

https://github.com/Skyrat-SS13/Skyrat-tg/pull/7522

+

Title: Vox sprite fixes, updates, and additions

+

MODULE ID: VOX_SPRITES

+

Description:

+

Ports the Vox species and clothing sprites from Paradise plus some new GAGS-compatible ones, and adds code to support them.

+

TG Proc/File Changes:

+
    +
  • APPEND: code/game/objects/items.dm > /obj/item/update_greyscale()
  • +
  • APPEND: code/modules/mob/living/carbon/human/human_update_icons.dm > /mob/living/carbon/human/update_worn_gloves()
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+

Species sprites:

+
    +
  • modular_skyrat/master_files/icons/mob/body_markings/vox_secondary.dmi #CHANGE
  • +
  • modular_skyrat/master_files/icons/mob/species/vox_eyes.dmi #CHANGE
  • +
  • modular_skyrat/master_files/icons/mob/species/vox_parts_greyscale.dmi #CHANGE
  • +
  • modular_skyrat/master_files/icons/mob/sprite_accessory/vox_facial_hair.dmi #CHANGE
  • +
  • modular_skyrat/master_files/icons/mob/sprite_accessory/vox_hair.dmi #CHANGE
  • +
  • modular_skyrat/master_files/icons/mob/sprite_accessory/vox_snouts.dmi #CHANGE
  • +
+

Clothing sprites:

+
    +
  • modular_skyrat/master_files/icons/mob/clothing/head_vox.dmi #CHANGE
  • +
  • modular_skyrat/master_files/icons/mob/clothing/mask_vox.dmi #CHANGE
  • +
  • modular_skyrat/master_files/icons/mob/clothing/species/vox/back.dmi #ADD
  • +
  • modular_skyrat/master_files/icons/mob/clothing/species/vox/color_gags_vox.dmi #ADD
  • +
  • modular_skyrat/master_files/icons/mob/clothing/species/vox/ears.dmi #ADD
  • +
  • modular_skyrat/master_files/icons/mob/clothing/species/vox/eyes.dmi #ADD
  • +
  • modular_skyrat/master_files/icons/mob/clothing/species/vox/feet.dmi #ADD
  • +
  • modular_skyrat/master_files/icons/mob/clothing/species/vox/hands.dmi #ADD
  • +
  • modular_skyrat/master_files/icons/mob/clothing/species/vox/head.dmi #ADD
  • +
  • modular_skyrat/master_files/icons/mob/clothing/species/vox/helmet.dmi #ADD
  • +
  • modular_skyrat/master_files/icons/mob/clothing/species/vox/suit.dmi #ADD
  • +
  • modular_skyrat/master_files/icons/mob/clothing/species/vox/uniform.dmi #ADD
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Vox species and clothing sprites - Paradise Station

+

PR Code - SabreML +PR Sprite implementation & GAGS compatibility - CandleJaxx

\ No newline at end of file diff --git a/modular_skyrat/modules/wargame_projectors.html b/modular_skyrat/modules/wargame_projectors.html new file mode 100644 index 0000000000000..0d5d123578554 --- /dev/null +++ b/modular_skyrat/modules/wargame_projectors.html @@ -0,0 +1,22 @@ +modular_skyrat/modules/wargame_projectors/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/wargame_projectors/readme.md

Title: Wargame Holoprojectors

+

MODULE ID: wargame_projectors

+

Description:

+

Based upon a silly idea and a silly game made up in a round, projectors for partaking in wargames of various sorts. What could be more rp than NT command testing their tactical prowess?

+

TG Proc Changes:

+
    +
  • N/A
  • +
+

Defines:

+
    +
  • N/A
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

Paxilmaniac - Everything

\ No newline at end of file diff --git a/modular_skyrat/modules/window_airbags.html b/modular_skyrat/modules/window_airbags.html new file mode 100644 index 0000000000000..18ef7c483325f --- /dev/null +++ b/modular_skyrat/modules/window_airbags.html @@ -0,0 +1,5 @@ +modular_skyrat/modules/window_airbags/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/window_airbags/readme.md

Credits

+

Code: [@Gandalf2k15] +Sprites: [TauCeti]

+

Developer Comments

+

I just want to say, this is a really cute little thing lol.

\ No newline at end of file diff --git a/modular_skyrat/modules/window_airbags/code/window_airbag.html b/modular_skyrat/modules/window_airbags/code/window_airbag.html new file mode 100644 index 0000000000000..6405967694522 --- /dev/null +++ b/modular_skyrat/modules/window_airbags/code/window_airbag.html @@ -0,0 +1 @@ +modular_skyrat/modules/window_airbags/code/window_airbag.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/window_airbags/code/window_airbag.dm

/datum/element/airbagAirbag Element
\ No newline at end of file diff --git a/modular_skyrat/modules/xenoarch.html b/modular_skyrat/modules/xenoarch.html new file mode 100644 index 0000000000000..73b8d0466d5ee --- /dev/null +++ b/modular_skyrat/modules/xenoarch.html @@ -0,0 +1,12 @@ +modular_skyrat/modules/xenoarch/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/xenoarch/readme.md

Title: Xenoarchaeology

+

MODULE ID: XENOARCH

+

Description:

+

Xenoarch: Archaeology based around foreign bodies. Dig up encased relics of a time long past (or dig up our garbage on accident).

+

TG Proc Changes:

+

N/A

+

Defines:

+

N/A

+

Included files:

+

N/A

+

Credits:

+

Jake Park

\ No newline at end of file diff --git a/modular_skyrat/modules/xenos_skyrat_redo.html b/modular_skyrat/modules/xenos_skyrat_redo.html new file mode 100644 index 0000000000000..a0adaacf76839 --- /dev/null +++ b/modular_skyrat/modules/xenos_skyrat_redo.html @@ -0,0 +1,38 @@ +modular_skyrat/modules/xenos_skyrat_redo/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/xenos_skyrat_redo/readme.md

Title: Skyrat Xeno Rework

+

MODULE ID: SKYRAT_XENO_REDO

+

Description:

+

Reworks and rebalances xenomorphs to be more in line a tgmc style of alien, especially focusing on unique abilites and lack of rclick and ranged instant hardstuns

+

TG Proc/File Changes:

+
    +
  • +

    MOVED: +code\modules\mob\living\carbon\alien\larva\powers.dm > /datum/action/cooldown/alien/larva_evolve/Activate +TO: +modular_skyrat\modules\xenos_skyrat_redo\code\larva.dm

    +
  • +
  • +

    MOVED: +code\modules\mob\living\carbon\human\human_defense.dm > /mob/living/carbon/human/attack_alien +TO: +modular_skyrat\modules\xenos_skyrat_redo\code\human_defense.dm

    +
  • +
+

Defines:

+

IN: code/__DEFINES/~skyrat_defines/traits.dm

+
    +
  • TRAIT_XENO_INNATE
  • +
  • TRAIT_XENO_ABILITY_GIVEN
  • +
  • TRAIT_XENO_HEAL_AURA
  • +
+

Master file additions

+
    +
  • N/A
  • +
+

Included files that are not contained in this module:

+
    +
  • N/A
  • +
+

Credits:

+

@Paxilmaniac - Porting the xenos from TGMC, adopting their stuff to work with our code +TGMC - Where the sprites, sound, and ideas for caste abilities came from +Those two rounds where xenos curbstomped the whole station - Inspiration for doing this in the first place

\ No newline at end of file diff --git a/modular_skyrat/modules/xenos_skyrat_redo/code/base_skyrat_xeno.html b/modular_skyrat/modules/xenos_skyrat_redo/code/base_skyrat_xeno.html new file mode 100644 index 0000000000000..aa349fd8a6445 --- /dev/null +++ b/modular_skyrat/modules/xenos_skyrat_redo/code/base_skyrat_xeno.html @@ -0,0 +1 @@ +modular_skyrat/modules/xenos_skyrat_redo/code/base_skyrat_xeno.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/xenos_skyrat_redo/code/base_skyrat_xeno.dm

/mob/living/carbon/alien/adult/skyratSKYRAT MODULE SKYRAT_XENO_REDO
\ No newline at end of file diff --git a/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/defender.html b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/defender.html new file mode 100644 index 0000000000000..48d10c001cf1a --- /dev/null +++ b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/defender.html @@ -0,0 +1 @@ +modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/defender.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/defender.dm

/mob/living/carbon/alien/adult/skyrat/defenderSKYRAT MODULE SKYRAT_XENO_REDO
\ No newline at end of file diff --git a/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/drone.html b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/drone.html new file mode 100644 index 0000000000000..5e49595e5c25b --- /dev/null +++ b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/drone.html @@ -0,0 +1 @@ +modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/drone.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/drone.dm

/mob/living/carbon/alien/adult/skyrat/droneSKYRAT MODULE SKYRAT_XENO_REDO
\ No newline at end of file diff --git a/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/praetorian.html b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/praetorian.html new file mode 100644 index 0000000000000..196cd6dce5250 --- /dev/null +++ b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/praetorian.html @@ -0,0 +1 @@ +modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/praetorian.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/praetorian.dm

/mob/living/carbon/alien/adult/skyrat/praetorianSKYRAT MODULE SKYRAT_XENO_REDO
\ No newline at end of file diff --git a/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/queen.html b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/queen.html new file mode 100644 index 0000000000000..b732dc4e2a623 --- /dev/null +++ b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/queen.html @@ -0,0 +1 @@ +modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/queen.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/queen.dm

/mob/living/carbon/alien/adult/skyrat/queenSKYRAT MODULE SKYRAT_XENO_REDO
\ No newline at end of file diff --git a/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/ravager.html b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/ravager.html new file mode 100644 index 0000000000000..9360054be0923 --- /dev/null +++ b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/ravager.html @@ -0,0 +1 @@ +modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/ravager.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/ravager.dm

RAVAGER_OUTLINE_EFFECTSKYRAT MODULE SKYRAT_XENO_REDO

Define Details

RAVAGER_OUTLINE_EFFECT

SKYRAT MODULE SKYRAT_XENO_REDO

\ No newline at end of file diff --git a/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/rouny.html b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/rouny.html new file mode 100644 index 0000000000000..f75fcae630ee0 --- /dev/null +++ b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/rouny.html @@ -0,0 +1 @@ +modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/rouny.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/rouny.dm

EVASION_VENTCRAWL_INABILTY_CD_PERCENTAGESKYRAT MODULE SKYRAT_XENO_REDO

Define Details

EVASION_VENTCRAWL_INABILTY_CD_PERCENTAGE

SKYRAT MODULE SKYRAT_XENO_REDO

\ No newline at end of file diff --git a/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/sentinel.html b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/sentinel.html new file mode 100644 index 0000000000000..75c803c87a4b1 --- /dev/null +++ b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/sentinel.html @@ -0,0 +1 @@ +modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/sentinel.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/sentinel.dm

/mob/living/carbon/alien/adult/skyrat/sentinelSKYRAT MODULE SKYRAT_XENO_REDO
\ No newline at end of file diff --git a/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/spitter.html b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/spitter.html new file mode 100644 index 0000000000000..4c004b3ac62fc --- /dev/null +++ b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/spitter.html @@ -0,0 +1 @@ +modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/spitter.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/spitter.dm

/mob/living/carbon/alien/adult/skyrat/spitterSKYRAT MODULE SKYRAT_XENO_REDO
\ No newline at end of file diff --git a/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/warrior.html b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/warrior.html new file mode 100644 index 0000000000000..9dee9ebf619b2 --- /dev/null +++ b/modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/warrior.html @@ -0,0 +1 @@ +modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/warrior.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_skyrat/modules/xenos_skyrat_redo/code/xeno_types/warrior.dm

/mob/living/carbon/alien/adult/skyrat/warriorSKYRAT MODULE SKYRAT_XENO_REDO
\ No newline at end of file diff --git a/modular_zubbers/code/__DEFINES/bloodsucker_defines.html b/modular_zubbers/code/__DEFINES/bloodsucker_defines.html new file mode 100644 index 0000000000000..747c68438a600 --- /dev/null +++ b/modular_zubbers/code/__DEFINES/bloodsucker_defines.html @@ -0,0 +1,27 @@ +modular_zubbers/code/__DEFINES/bloodsucker_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_zubbers/code/__DEFINES/bloodsucker_defines.dm

TRAIT_BLOODSUCKER_HUNTERUncomment this to enable testing of Bloodsucker features (such as ghoulizing people with a mind instead of a client). +You have special interactions with Bloodsuckers
FINAL_DEATH_HEALTH_TO_BURNAt what health to burn damage ratio you Final Death
BS_BLOOD_VOLUME_MAX_REGENBlood-level defines +Determines Bloodsucker regeneration rate
TORTURE_BLOOD_HALF_COSTCost to torture someone halfway, in blood. Called twice for full cost
TORTURE_CONVERSION_COSTCost to convert someone after successful torture, in blood
SPECIAL_GHOUL_COSTHow much blood it costs you to make a ghoul into a special ghoul
FRENZY_THRESHOLD_ENTERMinimum and maximum frenzy blood thresholds +Once blood is this low, will enter Frenzy
FRENZY_THRESHOLD_EXITOnce blood is this high, will exit Frenzy
HUMANITY_LOST_MAXIMUMa bloodsucker can't loose more humanity than this, and looses the masquerade ability when reaching it
BLOODSUCKER_LEVELUP_PERCENTAGELevel up blood cost define, max_blood * this = blood cost
BLOODSUCKER_HIGH_LEVELThe level when at a bloodsucker becomes snobby about who they drink from and gain their non-fledling reputation
TIME_BLOODSUCKER_DAYSol defines +How long Sol will last until it's night again.
TIME_BLOODSUCKER_NIGHT_MAXBase time nighttime should be in for, until Sol rises.
TIME_BLOODSUCKER_DAY_WARNTime left to send an alert to Bloodsuckers about an incoming Sol.
TIME_BLOODSUCKER_DAY_FINAL_WARNTime left to send an urgent alert to Bloodsuckers about an incoming Sol.
TIME_BLOODSUCKER_BURN_INTERVALTime left to alert that Sol is rising.
TIME_BLOODSUCKER_SOL_DELAYHow much time Sol can be 'off' by, keeping the time inconsistent.
GHOULIZATION_ALLOWEDGhoul defines +If someone passes all checks and can be ghoulized
GHOULIZATION_DISLOYALIf someone has to accept ghoulization
GHOULIZATION_BANNEDIf someone is not allowed under any circimstances to become a Ghoul
BLOODSUCKER_SPAM_HEALINGCooldown defines +Used in Cooldowns Bloodsuckers use to prevent spamming +Spam prevention for healing messages.
BLOODSUCKER_SPAM_MASQUERADESpan prevention for Sol Masquerade messages.
BLOODSUCKER_SPAM_SOLSpan prevention for Sol messages.
CLAN_NONEClan defines
BP_CANT_USE_IN_TORPORPower defines +This Power can't be used in Torpor
BP_CANT_USE_IN_FRENZYThis Power can't be used in Frenzy.
BP_CAN_USE_TRANSFORMEDThis Power can be used while transformed, for example by the shapeshift spell
BP_CAN_USE_WHILE_STAKEDThis Power can be used with a stake in you
BP_CAN_USE_HEARTLESSThis Power can be used while heartless
BLOODSUCKER_CAN_BUYThis Power can be purchased by Bloodsuckers
BLOODSUCKER_DEFAULT_POWERThis is a Default Power that all Bloodsuckers get.
TREMERE_CAN_BUYThis Power can be purchased by Tremere Bloodsuckers
GHOUL_CAN_BUYThis Power can be purchased by Ghouls
CAN_BUY_OWNEDIf this Power can be bought if you already own it
BP_CONTINUOUS_EFFECTThis Power is a Continuous Effect, processing every tick
BP_AM_SINGLEUSEThis Power is a Single-Use Power
BP_AM_STATIC_COOLDOWNThis Power has a Static cooldown
BP_AM_COSTLESS_UNCONSCIOUSThis Power doesn't cost bloot to run while unconscious
TORPOR_SKIP_CHECK_ALLTorpor check bitflags
COMSIG_BLOODSUCKER_RANK_UPBloodsucker Signals +Called when a Bloodsucker ranks up: (datum/bloodsucker_datum, mob/owner, mob/target)
COMSIG_BLOODSUCKER_INTERACT_WITH_GHOULCalled when a Bloodsucker interacts with a Ghoul on their persuasion rack.
COMSIG_BLOODSUCKER_MAKE_FAVORITECalled when a Bloodsucker makes a Ghoul into their Favorite Ghoul: (datum/ghoul_datum, mob/master)
COMSIG_BLOODSUCKER_MADE_GHOULCalled when a new Ghoul is successfully made: (datum/bloodsucker_datum)
COMSIG_BLOODSUCKER_EXIT_TORPORCalled when a Bloodsucker exits Torpor.
COMSIG_BLOODSUCKER_FINAL_DEATHCalled when a Bloodsucker reaches Final Death.
DONT_DUSTWhether the Bloodsucker should not be dusted when arriving Final Death
COMSIG_BLOODSUCKER_BROKE_MASQUERADECalled when a Bloodsucker breaks the Masquerade
COMSIG_BLOODSUCKER_ENTERS_FRENZYCalled when a Bloodsucker enters Frenzy
COMSIG_BLOODSUCKER_EXITS_FRENZYCalled when a Bloodsucker exits Frenzy
COMSIG_BLOODSUCKER_EXAMINECOMSIG_ATOM_EXAMINE that correctly updates when the bloodsucker datum is moved
COMSIG_SOL_RANKUP_BLOODSUCKERSSol signals & Defines
COMSIG_SOL_WARNING_GIVENSent when a warning for Sol is meant to go out: (danger_level, vampire_warning_message, ghoul_warning_message)
COMSIG_BLOODSUCKER_ON_LIFETICKCalled on a Bloodsucker's Lifetick.
BLOODSUCKER_UPDATE_BLOODCalled when a Bloodsucker's blood is updated
BLOODSUCKER_DRINK_NORMALClan defines
BLOODSUCKER_DRINK_SNOBBYDrinks blood but is snobby, refusing to drink from mindless
BLOODSUCKER_DRINK_INHUMANELYDrinks blood from disgusting creatures without Humanity consequences.
TRAIT_MASQUERADETraits +Falsifies Health analyzer blood levels
TRAIT_COLDBLOODEDYour body is literal room temperature. Does not make you immune to the temp
BLOODSUCKER_TRAITSources +Source trait for Bloodsuckers-related traits
MESMERIZE_TRAITSource trait for dominate related traits
HUNTER_TRAITSource trait for Monster Hunter-related traits
FEED_TRAITSource trait while Feeding
FRENZY_TRAITSource trait during a Frenzy
IS_BLOODSUCKERWhether a mob is a Bloodsucker
IS_GHOULWhether a mob is a Ghoul
IS_FAVORITE_GHOULWhether a mob is a Favorite Ghoul
IS_REVENGE_GHOULWhether a mob is a Revenge Ghoul
IS_MONSTERHUNTERWhether a mob is a Monster Hunter-NOT NEEDED RIGHT NOW +For future use

Define Details

BLOODSUCKER_CAN_BUY

This Power can be purchased by Bloodsuckers

BLOODSUCKER_DEFAULT_POWER

This is a Default Power that all Bloodsuckers get.

BLOODSUCKER_DRINK_INHUMANELY

Drinks blood from disgusting creatures without Humanity consequences.

BLOODSUCKER_DRINK_NORMAL

Clan defines

+

This is stuff that is used solely by Clans for clan-related activity. +Drinks blood the normal Bloodsucker way.

BLOODSUCKER_DRINK_SNOBBY

Drinks blood but is snobby, refusing to drink from mindless

BLOODSUCKER_HIGH_LEVEL

The level when at a bloodsucker becomes snobby about who they drink from and gain their non-fledling reputation

BLOODSUCKER_LEVELUP_PERCENTAGE

Level up blood cost define, max_blood * this = blood cost

BLOODSUCKER_SPAM_HEALING

Cooldown defines +Used in Cooldowns Bloodsuckers use to prevent spamming +Spam prevention for healing messages.

BLOODSUCKER_SPAM_MASQUERADE

Span prevention for Sol Masquerade messages.

BLOODSUCKER_SPAM_SOL

Span prevention for Sol messages.

BLOODSUCKER_TRAIT

Sources +Source trait for Bloodsuckers-related traits

BLOODSUCKER_UPDATE_BLOOD

Called when a Bloodsucker's blood is updated

BP_AM_COSTLESS_UNCONSCIOUS

This Power doesn't cost bloot to run while unconscious

BP_AM_SINGLEUSE

This Power is a Single-Use Power

BP_AM_STATIC_COOLDOWN

This Power has a Static cooldown

BP_CANT_USE_IN_FRENZY

This Power can't be used in Frenzy.

BP_CANT_USE_IN_TORPOR

Power defines +This Power can't be used in Torpor

BP_CAN_USE_HEARTLESS

This Power can be used while heartless

BP_CAN_USE_TRANSFORMED

This Power can be used while transformed, for example by the shapeshift spell

BP_CAN_USE_WHILE_STAKED

This Power can be used with a stake in you

BP_CONTINUOUS_EFFECT

This Power is a Continuous Effect, processing every tick

BS_BLOOD_VOLUME_MAX_REGEN

Blood-level defines +Determines Bloodsucker regeneration rate

CAN_BUY_OWNED

If this Power can be bought if you already own it

CLAN_NONE

Clan defines

COMSIG_BLOODSUCKER_BROKE_MASQUERADE

Called when a Bloodsucker breaks the Masquerade

COMSIG_BLOODSUCKER_ENTERS_FRENZY

Called when a Bloodsucker enters Frenzy

COMSIG_BLOODSUCKER_EXAMINE

COMSIG_ATOM_EXAMINE that correctly updates when the bloodsucker datum is moved

COMSIG_BLOODSUCKER_EXITS_FRENZY

Called when a Bloodsucker exits Frenzy

COMSIG_BLOODSUCKER_EXIT_TORPOR

Called when a Bloodsucker exits Torpor.

COMSIG_BLOODSUCKER_FINAL_DEATH

Called when a Bloodsucker reaches Final Death.

COMSIG_BLOODSUCKER_INTERACT_WITH_GHOUL

Called when a Bloodsucker interacts with a Ghoul on their persuasion rack.

COMSIG_BLOODSUCKER_MADE_GHOUL

Called when a new Ghoul is successfully made: (datum/bloodsucker_datum)

COMSIG_BLOODSUCKER_MAKE_FAVORITE

Called when a Bloodsucker makes a Ghoul into their Favorite Ghoul: (datum/ghoul_datum, mob/master)

COMSIG_BLOODSUCKER_ON_LIFETICK

Called on a Bloodsucker's Lifetick.

COMSIG_BLOODSUCKER_RANK_UP

Bloodsucker Signals +Called when a Bloodsucker ranks up: (datum/bloodsucker_datum, mob/owner, mob/target)

COMSIG_SOL_RANKUP_BLOODSUCKERS

Sol signals & Defines

COMSIG_SOL_WARNING_GIVEN

Sent when a warning for Sol is meant to go out: (danger_level, vampire_warning_message, ghoul_warning_message)

DONT_DUST

Whether the Bloodsucker should not be dusted when arriving Final Death

FEED_TRAIT

Source trait while Feeding

FINAL_DEATH_HEALTH_TO_BURN

At what health to burn damage ratio you Final Death

FRENZY_THRESHOLD_ENTER

Minimum and maximum frenzy blood thresholds +Once blood is this low, will enter Frenzy

FRENZY_THRESHOLD_EXIT

Once blood is this high, will exit Frenzy

FRENZY_TRAIT

Source trait during a Frenzy

GHOULIZATION_ALLOWED

Ghoul defines +If someone passes all checks and can be ghoulized

GHOULIZATION_BANNED

If someone is not allowed under any circimstances to become a Ghoul

GHOULIZATION_DISLOYAL

If someone has to accept ghoulization

GHOUL_CAN_BUY

This Power can be purchased by Ghouls

HUMANITY_LOST_MAXIMUM

a bloodsucker can't loose more humanity than this, and looses the masquerade ability when reaching it

HUNTER_TRAIT

Source trait for Monster Hunter-related traits

IS_BLOODSUCKER

Whether a mob is a Bloodsucker

IS_FAVORITE_GHOUL

Whether a mob is a Favorite Ghoul

IS_GHOUL

Whether a mob is a Ghoul

IS_MONSTERHUNTER

Whether a mob is a Monster Hunter-NOT NEEDED RIGHT NOW +For future use

IS_REVENGE_GHOUL

Whether a mob is a Revenge Ghoul

MESMERIZE_TRAIT

Source trait for dominate related traits

SPECIAL_GHOUL_COST

How much blood it costs you to make a ghoul into a special ghoul

TIME_BLOODSUCKER_BURN_INTERVAL

Time left to alert that Sol is rising.

TIME_BLOODSUCKER_DAY

Sol defines +How long Sol will last until it's night again.

TIME_BLOODSUCKER_DAY_FINAL_WARN

Time left to send an urgent alert to Bloodsuckers about an incoming Sol.

TIME_BLOODSUCKER_DAY_WARN

Time left to send an alert to Bloodsuckers about an incoming Sol.

TIME_BLOODSUCKER_NIGHT_MAX

Base time nighttime should be in for, until Sol rises.

TIME_BLOODSUCKER_SOL_DELAY

How much time Sol can be 'off' by, keeping the time inconsistent.

TORPOR_SKIP_CHECK_ALL

Torpor check bitflags

TORTURE_BLOOD_HALF_COST

Cost to torture someone halfway, in blood. Called twice for full cost

TORTURE_CONVERSION_COST

Cost to convert someone after successful torture, in blood

TRAIT_BLOODSUCKER_HUNTER

Uncomment this to enable testing of Bloodsucker features (such as ghoulizing people with a mind instead of a client). +You have special interactions with Bloodsuckers

TRAIT_COLDBLOODED

Your body is literal room temperature. Does not make you immune to the temp

TRAIT_MASQUERADE

Traits +Falsifies Health analyzer blood levels

TREMERE_CAN_BUY

This Power can be purchased by Tremere Bloodsuckers

\ No newline at end of file diff --git a/modular_zubbers/code/_onclick/hud/screen_objects/hud_timer.html b/modular_zubbers/code/_onclick/hud/screen_objects/hud_timer.html new file mode 100644 index 0000000000000..c0c03c95e6c56 --- /dev/null +++ b/modular_zubbers/code/_onclick/hud/screen_objects/hud_timer.html @@ -0,0 +1 @@ +modular_zubbers/code/_onclick/hud/screen_objects/hud_timer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/_onclick/hud/screen_objects/hud_timer.dm

/atom/movable/screen/text/screen_timerA screen object that shows the time left on a timer
\ No newline at end of file diff --git a/modular_zubbers/code/controllers/configuration/entries/nsfw.html b/modular_zubbers/code/controllers/configuration/entries/nsfw.html new file mode 100644 index 0000000000000..35ea978f6e569 --- /dev/null +++ b/modular_zubbers/code/controllers/configuration/entries/nsfw.html @@ -0,0 +1 @@ +modular_zubbers/code/controllers/configuration/entries/nsfw.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/controllers/configuration/entries/nsfw.dm

/datum/config_entry/flag/check_vettedConfig to toggle the vetted system
\ No newline at end of file diff --git a/modular_zubbers/code/datums/brain_damage/magic.html b/modular_zubbers/code/datums/brain_damage/magic.html new file mode 100644 index 0000000000000..d008f7e0928b9 --- /dev/null +++ b/modular_zubbers/code/datums/brain_damage/magic.html @@ -0,0 +1 @@ +modular_zubbers/code/datums/brain_damage/magic.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/datums/brain_damage/magic.dm

/datum/brain_trauma/special/bluespace_prophet/phobetorBeefmen's Brain trauma, causing phobetor tears to traverse through.
/obj/effect/client_image_holder/phobetorThe phobetor tears created by the Brain trauma.
\ No newline at end of file diff --git a/modular_zubbers/code/datums/components/vore.html b/modular_zubbers/code/datums/components/vore.html new file mode 100644 index 0000000000000..3943e5de0d795 --- /dev/null +++ b/modular_zubbers/code/datums/components/vore.html @@ -0,0 +1,24 @@ +modular_zubbers/code/datums/components/vore/README.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Modular DCS Vore

This is an implementation of vore made entirely using components.

+

By Shadow Larkens

+

Configuration

+

Most critical options are in _defines.dm including things such as the max amount of bellies that can +be created, how many prey can be eaten, etc.

+

Debugging

+

If you need to debug this system, go to the top of _defines.dm and uncomment #define VORE_TESTING +to enable helpful debugging features such as not needing clients and working on all living mobs.

+

Code Overview

+

_defines.dm - Settings and constants. +absorb_control.dm - Component used for prey controlling preds temporarily +belly.dm - Individual areas that have their own name, description and digestion mode. +belly_messages.dm - Contains helpers for all of the many different customizable messages a belly can produce. +belly_serde.dm - Controls belly serialization and deserialization. +digest_modes.dm - Singletons that handle affecting a belly's contents on each process. +preferences.dm - Vore related preferences +subsystem.dm - Belly processing subsystem / global event listener +ui.dm - tgui interface for managing the component +vore.dm - The main component that orchestrates everything else. +z_undefs.dm - undefs to keep defines from escaping.

+

Special Notes

+
    +
  • Being absorbed is marked by TRAIT_RESTRAINED and TRAIT_STASIS with a source of TRAIT_SOURCE_VORE.
  • +
\ No newline at end of file diff --git a/modular_zubbers/code/datums/components/vore/_defines.html b/modular_zubbers/code/datums/components/vore/_defines.html new file mode 100644 index 0000000000000..133489c242392 --- /dev/null +++ b/modular_zubbers/code/datums/components/vore/_defines.html @@ -0,0 +1,7 @@ +modular_zubbers/code/datums/components/vore/_defines.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_zubbers/code/datums/components/vore/_defines.dm

VORE_DB_REPOIf you want to make everything as easy to test as possible, uncomment this for maximum permissiveness +Key used for versioning savefiles
VORE_DB_VERSIONValue used for versioning savefiles
VORE_BELLY_KEYKey used for belly versioning independent of savefile version
VORE_BELLY_VERSIONValue used for belly versioning independent of savefile version
MAX_BELLIESMaximum amount of bellies allowed within one layout
MAX_PREYMaximum amount of prey that can be eaten at once
VORE_DELAYAmount of time it takes for players to eat someone
VORE_EJECT_DELAYAmount of time it takes for players to eject someone
MATRYOSHKA_BANNEDIf true, prevents people with prey inside them from being eaten
DISABLES_SENSORSIf true, automatically disables sensors when prey is eaten
NO_DEADIf true, prevents mobs in crit or death from engaging in vore
REQUIRES_PLAYERIf true, mobs with no player cannot be pred or prey
BELLY_BACKUP_COUNTMakes every mob spawn with a vore component, just for testing +Number of rolling backups bellies will keep
MAX_BELLY_LAYOUTSMaximum number of belly layout slots
BELLY_CREATION_COOLDOWNRate limit on belly creation, as it can get a little expensive
MAX_JSON_CHARACTERSMaximum length() of a json file's text before we refuse to parse it +Default here is to support at least MAX_BELLIES with maxxed descriptions, plus their metadata
MAX_JSON_ENTRIESMaximum length() of a parsed json file before we refuse to parse it further
VORE_SOUND_VOLUMEVolume used for all vore noises
PREYLOOP_VOLUMEVolume used specifically for the preyloop
MAX_BURN_DAMAGEMax burn damage a player is allowed to set their belly to
MAX_BRUTE_DAMAGEMax brute damage a player is allowed to set their belly to
MIN_ESCAPE_TIMEMinimum time that can be set for escaping a belly
NUTRITION_PER_DAMAGEAmount of nutrition given per point of damage dealt
NUTRITION_PER_KILLAmount of nutrition given when digesting something fully
ABSORB_NUTRITION_BARRIEROnce prey goes below this nutrition barrier, they will be absorbed
COOLDOWN_ESCAPE_TIMECooldown on trying to escape, reduces amount of noise they can make

Define Details

ABSORB_NUTRITION_BARRIER

Once prey goes below this nutrition barrier, they will be absorbed

BELLY_BACKUP_COUNT

Makes every mob spawn with a vore component, just for testing +Number of rolling backups bellies will keep

BELLY_CREATION_COOLDOWN

Rate limit on belly creation, as it can get a little expensive

COOLDOWN_ESCAPE_TIME

Cooldown on trying to escape, reduces amount of noise they can make

DISABLES_SENSORS

If true, automatically disables sensors when prey is eaten

MATRYOSHKA_BANNED

If true, prevents people with prey inside them from being eaten

MAX_BELLIES

Maximum amount of bellies allowed within one layout

MAX_BELLY_LAYOUTS

Maximum number of belly layout slots

MAX_BRUTE_DAMAGE

Max brute damage a player is allowed to set their belly to

MAX_BURN_DAMAGE

Max burn damage a player is allowed to set their belly to

MAX_JSON_CHARACTERS

Maximum length() of a json file's text before we refuse to parse it +Default here is to support at least MAX_BELLIES with maxxed descriptions, plus their metadata

MAX_JSON_ENTRIES

Maximum length() of a parsed json file before we refuse to parse it further

MAX_PREY

Maximum amount of prey that can be eaten at once

MIN_ESCAPE_TIME

Minimum time that can be set for escaping a belly

NO_DEAD

If true, prevents mobs in crit or death from engaging in vore

NUTRITION_PER_DAMAGE

Amount of nutrition given per point of damage dealt

NUTRITION_PER_KILL

Amount of nutrition given when digesting something fully

PREYLOOP_VOLUME

Volume used specifically for the preyloop

REQUIRES_PLAYER

If true, mobs with no player cannot be pred or prey

VORE_BELLY_KEY

Key used for belly versioning independent of savefile version

VORE_BELLY_VERSION

Value used for belly versioning independent of savefile version

VORE_DB_REPO

If you want to make everything as easy to test as possible, uncomment this for maximum permissiveness +Key used for versioning savefiles

VORE_DB_VERSION

Value used for versioning savefiles

VORE_DELAY

Amount of time it takes for players to eat someone

VORE_EJECT_DELAY

Amount of time it takes for players to eject someone

VORE_SOUND_VOLUME

Volume used for all vore noises

\ No newline at end of file diff --git a/modular_zubbers/code/datums/components/vore/subsystem.html b/modular_zubbers/code/datums/components/vore/subsystem.html new file mode 100644 index 0000000000000..a8e03d627fc0d --- /dev/null +++ b/modular_zubbers/code/datums/components/vore/subsystem.html @@ -0,0 +1 @@ +modular_zubbers/code/datums/components/vore/subsystem.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/datums/components/vore/subsystem.dm

/var/SSvoreUsed to handle global hooks like Login and process bellies
\ No newline at end of file diff --git a/modular_zubbers/code/datums/components/vore/ui.html b/modular_zubbers/code/datums/components/vore/ui.html new file mode 100644 index 0000000000000..e98e905d219e0 --- /dev/null +++ b/modular_zubbers/code/datums/components/vore/ui.html @@ -0,0 +1,5 @@ +modular_zubbers/code/datums/components/vore/ui.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/datums/components/vore/ui.dm

/datum/component/voreREMINDER: This component serves triple duty! +Everyone participating in mechanical vore must have this component for the UI +Preds must have this component to handle their bellies +Prey must have this component to handle the prey panel +Feeders must have this component to handle feeding preys to preds
\ No newline at end of file diff --git a/modular_zubbers/code/datums/components/vore/vore.html b/modular_zubbers/code/datums/components/vore/vore.html new file mode 100644 index 0000000000000..98756249123ce --- /dev/null +++ b/modular_zubbers/code/datums/components/vore/vore.html @@ -0,0 +1,2 @@ +modular_zubbers/code/datums/components/vore/vore.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/datums/components/vore/vore.dm

/atom/movable/screen/secret_appearance_holderThis is a tricky little thing to guarantee that \ref[prey.appearance] works in the vore panel +Basically, we force the pred to load the prey's appearance by putting the prey in this screen object's vis_contents
/proc/check_vore_preferencesThis is so complicated because we have to support three distinct use cases all in one proc:
\ No newline at end of file diff --git a/modular_zubbers/code/datums/mood_events/bloodsucker_events.html b/modular_zubbers/code/datums/mood_events/bloodsucker_events.html new file mode 100644 index 0000000000000..e0819380e469e --- /dev/null +++ b/modular_zubbers/code/datums/mood_events/bloodsucker_events.html @@ -0,0 +1 @@ +modular_zubbers/code/datums/mood_events/bloodsucker_events.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/datums/mood_events/bloodsucker_events.dm

/datum/mood_event/vampcandleCandelabrum's mood event to non Bloodsucker/Ghouls
\ No newline at end of file diff --git a/modular_zubbers/code/game/machinery/computer/orders/order_computer/cook_order_interdyne.html b/modular_zubbers/code/game/machinery/computer/orders/order_computer/cook_order_interdyne.html new file mode 100644 index 0000000000000..8eef5000378e5 --- /dev/null +++ b/modular_zubbers/code/game/machinery/computer/orders/order_computer/cook_order_interdyne.html @@ -0,0 +1 @@ +modular_zubbers/code/game/machinery/computer/orders/order_computer/cook_order_interdyne.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/game/machinery/computer/orders/order_computer/cook_order_interdyne.dm

/obj/item/circuitboard/computer/order_console/interdyneA produce orders console modified to use a specified department account, and only allow express orders
\ No newline at end of file diff --git a/modular_zubbers/code/game/machinery/syndiepad.html b/modular_zubbers/code/game/machinery/syndiepad.html new file mode 100644 index 0000000000000..1b1d53b662472 --- /dev/null +++ b/modular_zubbers/code/game/machinery/syndiepad.html @@ -0,0 +1 @@ +modular_zubbers/code/game/machinery/syndiepad.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_zubbers/code/game/machinery/syndiepad.dm

SYN_BOUNTY_PAD_WARM_TIMEThe amount of time it takes for the pad to warm up
/obj/item/circuitboard/machine/syndiepadA citizen pad modified to accept goods and return money to a specified account
/obj/item/circuitboard/computer/syndiepadComputer for activating the bounty pad

Define Details

SYN_BOUNTY_PAD_WARM_TIME

The amount of time it takes for the pad to warm up

\ No newline at end of file diff --git a/modular_zubbers/code/game/objects/items/holy_weapons.html b/modular_zubbers/code/game/objects/items/holy_weapons.html new file mode 100644 index 0000000000000..8a6f639f21bac --- /dev/null +++ b/modular_zubbers/code/game/objects/items/holy_weapons.html @@ -0,0 +1 @@ +modular_zubbers/code/game/objects/items/holy_weapons.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/game/objects/items/holy_weapons.dm

/obj/item/dualsaber/chaplainHYPEREUTACTIC BLADE
\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/hud.html b/modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/hud.html new file mode 100644 index 0000000000000..a40f54c470595 --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/hud.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/hud.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/hud.dm

UI_BLOOD_DISPLAY1 tile down
UI_VAMPRANK_DISPLAY2 tiles down
UI_SUNLIGHT_DISPLAY6 pixels to the right, zero tiles & 5 pixels DOWN.
FORMAT_BLOODSUCKER_HUD_TEXTMaptext define for Bloodsucker HUDs
FORMAT_BLOODSUCKER_SUNLIGHT_TEXTMaptext define for Bloodsucker Sunlight HUDs

Define Details

FORMAT_BLOODSUCKER_HUD_TEXT

Maptext define for Bloodsucker HUDs

FORMAT_BLOODSUCKER_SUNLIGHT_TEXT

Maptext define for Bloodsucker Sunlight HUDs

UI_BLOOD_DISPLAY

1 tile down

UI_SUNLIGHT_DISPLAY

6 pixels to the right, zero tiles & 5 pixels DOWN.

UI_VAMPRANK_DISPLAY

2 tiles down

\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/life.html b/modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/life.html new file mode 100644 index 0000000000000..a96861cc8703d --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/life.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/life.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/life.dm

BLOODSUCKER_PASSIVE_BLOOD_DRAINHow much Blood it costs to live.

Define Details

BLOODSUCKER_PASSIVE_BLOOD_DRAIN

How much Blood it costs to live.

\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/objectives.html b/modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/objectives.html new file mode 100644 index 0000000000000..8d175b9a1b274 --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/objectives.html @@ -0,0 +1,4 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/objectives.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/objectives.dm

/datum/objective/survive/bloodsuckerSpace_Station_13_areas.dm <--- all the areas
/datum/objective/bloodsucker/conversionGhoulify a certain person / people
/datum/objective/steal_n_of_type/heartsLook for Job Values on mobs! This is assigned at the start, but COULD be changed via the HoP +ALSO - Search through all jobs (look for prefs earlier that look for all jobs, and search through all jobs to see if their head matches the head listed, or it IS the head) +ALSO - registered_account in _vending.dm for banks, and assigning new ones. +Steal hearts. You just really wanna have some hearts.
/datum/objective/bloodsucker/gourmandEat blood from a lot of people
/datum/objective/bloodsucker/kindredSteal the Book of Nod - Nosferatu Clan objective
/datum/objective/bloodsucker/tremere_powerMax out a Tremere Power - Tremere Clan objective
/datum/objective/bloodsucker/embraceConvert a crewmate - Ventrue Clan objective
/datum/objective/bloodsucker/ghoulhimGhoulify a target.
\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/shaded_bloodsucker.html b/modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/shaded_bloodsucker.html new file mode 100644 index 0000000000000..d48115775689d --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/shaded_bloodsucker.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/shaded_bloodsucker.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/antagonists/bloodsucker/bloodsuckers/shaded_bloodsucker.dm

/obj/item/soulstone/bloodsuckera malkavian bloodsucker that has entered final death. does nothing, other than signify they are dead
\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/clans/clan.html b/modular_zubbers/code/modules/antagonists/bloodsucker/clans/clan.html new file mode 100644 index 0000000000000..68a6ad1bca878 --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/clans/clan.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/clans/clan.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/antagonists/bloodsucker/clans/clan.dm

/datum/bloodsucker_clanBloodsucker clans
\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/clans/clan_ventrue.html b/modular_zubbers/code/modules/antagonists/bloodsucker/clans/clan_ventrue.html new file mode 100644 index 0000000000000..dd415e3310809 --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/clans/clan_ventrue.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/clans/clan_ventrue.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_zubbers/code/modules/antagonists/bloodsucker/clans/clan_ventrue.dm

VENTRUE_MAX_POWERSThe maximum level a Ventrue Bloodsucker can be, before they have to level up their ghoul instead.

Define Details

VENTRUE_MAX_POWERS

The maximum level a Ventrue Bloodsucker can be, before they have to level up their ghoul instead.

\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/credit_file.html b/modular_zubbers/code/modules/antagonists/bloodsucker/credit_file.html new file mode 100644 index 0000000000000..27f6cd7f18974 --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/credit_file.html @@ -0,0 +1,27 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/credit_file.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/antagonists/bloodsucker/credit_file.md

+

Sheits (Throne, vamp_obj_64.dmi) https://github.com/fulpstation/fulpstation/pull/393 +modular_zubbers/icons/obj/structures/vamp_obj_64.dmi

+

ReinaCoder (Book, vamp_obj.dmi) https://github.com/fulpstation/fulpstation/pull/649 +modular_zubbers/icons/obj/structures/vamp_obj.dmi

+

A majority of credit goes to JohnFulpWillard for coding and spriting Bloodsuckers. +Code paths: +This folder, +modular_zubbers/code/datums/components/crafting/crafting/furniture.dm +modular_zubbers/code/datums/components/crafting/crafting/melee_weapon.dm +modular_zubbers/code/controllers/subsystem/sol_subsystem.dm +modular_zubbers/code/modules/languages/vampiric.dm +modular_zubbers/code/__DEFINES/bloodsucker.dm

+

Sprite paths: +modular_zubbers/icons/obj/equipment/stakes.dmi +modular_zubbers/icons/mob/inhands/weapons/bloodsucker_lefthand.dmi +modular_zubbers/icons/mob/inhands/weapons/bloodsucker_righthand.dmi +modular_zubbers/icons/mob/actions/bloodsucker.dmi +modular_zubbers/icons/mob/actions/tremere_bloodsucker.dmi +modular_zubbers/icons/effects/radials/clan_icons.dmi +modular_zubbers/icons/misc/language.dmi +modular_zubbers/icons/huds/bloodsucker.dmi +modular_zubbers/icons/effects/phobetor_tear.dmi

+

Sound paths: +everything in modular_zubbers/sound/bloodsucker +modular_zubbers/sound/machines/coffin_close.ogg +modular_zubbers/sound/machines/coffin_open.ogg

\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/powers/gohome.html b/modular_zubbers/code/modules/antagonists/bloodsucker/powers/gohome.html new file mode 100644 index 0000000000000..588f978a8bcec --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/powers/gohome.html @@ -0,0 +1,3 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/powers/gohome.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/antagonists/bloodsucker/powers/gohome.dm

/datum/action/cooldown/bloodsucker/gohomeGiven to Bloodsuckers near Sol if they have a Coffin claimed. +Teleports them to their Coffin after a delay. +Makes them drop everything if someone witnesses the act.
\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/powers/masquerade.html b/modular_zubbers/code/modules/antagonists/bloodsucker/powers/masquerade.html new file mode 100644 index 0000000000000..039a32ca874dc --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/powers/masquerade.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/powers/masquerade.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/antagonists/bloodsucker/powers/masquerade.dm

/datum/action/cooldown/bloodsucker/masquerade
/datum/status_effect/masqueradeThis is what the Masquerade power gives, handles their bonuses and gives them a neat icon to tell them they're on Masquerade.
\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/powers/targeted/mesmerize.html b/modular_zubbers/code/modules/antagonists/bloodsucker/powers/targeted/mesmerize.html new file mode 100644 index 0000000000000..2fb571822c933 --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/powers/targeted/mesmerize.html @@ -0,0 +1,7 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/powers/targeted/mesmerize.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_zubbers/code/modules/antagonists/bloodsucker/powers/targeted/mesmerize.dm

MESMERIZE_MUTE_LEVEL

Define Details

MESMERIZE_MUTE_LEVEL

MEZMERIZE
+ Locks a target in place for a certain amount of time.
+
+Level 2: Additionally mutes
+Level 3: Can be used through face protection
+Level 5: Doesn't need to be facing you anymore
+
\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/_powers_tremere.html b/modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/_powers_tremere.html new file mode 100644 index 0000000000000..52ac4bc3736d1 --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/_powers_tremere.html @@ -0,0 +1,2 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/_powers_tremere.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/_powers_tremere.dm

/datum/action/cooldown/bloodsucker/targeted/tremereThis file is for Tremere power procs and Bloodsucker procs that deals exclusively with Tremere. +Tremere has quite a bit of unique things to it, so I thought it's own subtype would be nice
\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/auspex.html b/modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/auspex.html new file mode 100644 index 0000000000000..493c54dcc182f --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/auspex.html @@ -0,0 +1,6 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/auspex.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/auspex.dm

AUSPEX_BLOOD_COST_PER_TILE

Define Details

AUSPEX_BLOOD_COST_PER_TILE

Auspex

+

Level 1 - Cloak of Darkness until clicking an area, teleports the user to the selected area (max 2 tile) +Level 2 - Cloak of Darkness until clicking an area, teleports the user to the selected area (max 3 tiles) +Level 3 - Cloak of Darkness until clicking an area, teleports the user to the selected area +Level 4 - Cloak of Darkness until clicking an area, teleports the user to the selected area, causes nearby people to bleed. +Level 5 - Cloak of Darkness until clicking an area, teleports the user to the selected area, causes nearby people to fall asleep.

\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/dominate.html b/modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/dominate.html new file mode 100644 index 0000000000000..9213ab9d738ad --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/dominate.html @@ -0,0 +1,6 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/dominate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/dominate.dm

TEMP_GHOULIZE_COST

Define Details

TEMP_GHOULIZE_COST

Dominate;

+

Level 1 - Mesmerizes target +Level 2 - Mesmerizes and mutes target +Level 3 - Mesmerizes, blinds and mutes target +Level 4 - Target (if at least in crit & has a mind) will revive as a Mute/Deaf Ghoul for 5 minutes before dying. +Level 5 - Target (if at least in crit & has a mind) will revive as a Ghoul for 8 minutes before dying.

\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/thaumaturgy.html b/modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/thaumaturgy.html new file mode 100644 index 0000000000000..f6dbe48d0f84b --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/thaumaturgy.html @@ -0,0 +1,7 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/thaumaturgy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_zubbers/code/modules/antagonists/bloodsucker/powers/tremere/thaumaturgy.dm

BLOOD_SHIELD_BLOCK_CHANCE
/obj/projectile/magic/arcane_barrage/bloodsucker
/obj/item/shield/bloodsuckerThe shield spawned when using Thaumaturgy when strong enough. +Copied mostly from '/obj/item/shield/changeling'

Define Details

BLOOD_SHIELD_BLOCK_CHANCE

Thaumaturgy

+

Level 1 - One shot bloodbeam spell +Level 2 - Bloodbeam spell - Gives them a Blood shield until they use Bloodbeam +Level 3 - Bloodbeam spell that breaks open lockers/doors - Gives them a Blood shield until they use Bloodbeam +Level 4 - Bloodbeam spell that breaks open lockers/doors + double damage to victims - Gives them a Blood shield until they use Bloodbeam +Level 5 - Bloodbeam spell that breaks open lockers/doors + double damage & steals blood - Gives them a Blood shield until they use Bloodbeam

\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/powers/vassal/recuperate.html b/modular_zubbers/code/modules/antagonists/bloodsucker/powers/vassal/recuperate.html new file mode 100644 index 0000000000000..24852e18ad9d6 --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/powers/vassal/recuperate.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/powers/vassal/recuperate.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/antagonists/bloodsucker/powers/vassal/recuperate.dm

/datum/action/cooldown/bloodsucker/recuperateUsed by Ghouls
\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/structures/crypt.html b/modular_zubbers/code/modules/antagonists/bloodsucker/structures/crypt.html new file mode 100644 index 0000000000000..19825e5520998 --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/structures/crypt.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/structures/crypt.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/antagonists/bloodsucker/structures/crypt.dm

/obj/structure/bloodsucker/bloodthroneBlood Throne - Allows Bloodsuckers to remotely speak with their Ghouls. - Code (Mostly) stolen from comfy chairs (armrests) and chairs (layers)
\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/structures/objects.html b/modular_zubbers/code/modules/antagonists/bloodsucker/structures/objects.html new file mode 100644 index 0000000000000..d55dc0424ae18 --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/structures/objects.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/structures/objects.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/antagonists/bloodsucker/structures/objects.dm

/obj/item/reagent_containers/blood/o_minus/bloodsuckerBloodbag of Bloodsucker blood (used by Ghouls only)
/obj/item/stake/hardenedCreated by welding and acid-treating a simple stake.
/obj/item/book/kindred
/obj/item/organ/internal/heart/monkeyjust a typepath to specify that it's monkey-owned, used for the heart thief objective
\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/batform.html b/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/batform.html new file mode 100644 index 0000000000000..ea4df83849cb0 --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/batform.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/vassal/batform.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/antagonists/bloodsucker/vassal/batform.dm

/datum/action/cooldown/spell/shapeshift/batTG removed this, so we're re-adding it
\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_datum.html b/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_datum.html new file mode 100644 index 0000000000000..de71379fa795e --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_datum.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_datum.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_datum.dm

GHOUL_SCAN_PING_TIME2s update time.

Define Details

GHOUL_SCAN_PING_TIME

2s update time.

\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_pinpointer.html b/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_pinpointer.html new file mode 100644 index 0000000000000..63171cc22816b --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_pinpointer.html @@ -0,0 +1,2 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_pinpointer.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_pinpointer.dm

/atom/movable/screen/alert/status_effect/agent_pinpointer/ghoul_editionPinpointer that points to their Master's location at all times. +Unlike the Monster hunter one, this one is permanently active, and has no power needed to activate it.
\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/ex_vassal.html b/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/ex_vassal.html new file mode 100644 index 0000000000000..a6546e11f1a31 --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/ex_vassal.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/ex_vassal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/ex_vassal.dm

/datum/reagent/blood/bloodsuckerBloodsucker Blood
\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/favorite_vassal.html b/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/favorite_vassal.html new file mode 100644 index 0000000000000..163619d68cfe7 --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/favorite_vassal.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/favorite_vassal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/favorite_vassal.dm

/datum/antagonist/ghoul/favoriteFavorite Ghoul
\ No newline at end of file diff --git a/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/revenge_vassal.html b/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/revenge_vassal.html new file mode 100644 index 0000000000000..3990ef292545f --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/revenge_vassal.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/revenge_vassal.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/antagonists/bloodsucker/vassal/vassal_types/revenge_vassal.dm

/datum/antagonist/ghoul/revengeRevenge Ghoul
\ No newline at end of file diff --git a/modular_zubbers/code/modules/arcades/code/minesweeper/minesweeper.html b/modular_zubbers/code/modules/arcades/code/minesweeper/minesweeper.html new file mode 100644 index 0000000000000..9cbf0eb4237a2 --- /dev/null +++ b/modular_zubbers/code/modules/arcades/code/minesweeper/minesweeper.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/arcades/code/minesweeper/minesweeper.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/arcades/code/minesweeper/minesweeper.dm

/obj/machinery/computer/arcade/minesweeperThe machine itself.
/datum/computer_file/program/minesweeperCOMPUTER MINESWEEPER PROGRAM
\ No newline at end of file diff --git a/modular_zubbers/code/modules/blooper/bark.html b/modular_zubbers/code/modules/blooper/bark.html new file mode 100644 index 0000000000000..0193f51745d1c --- /dev/null +++ b/modular_zubbers/code/modules/blooper/bark.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/blooper/bark.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/blooper/bark.dm

/datum/preference/toggle/send_sound_blooperCan I use the blooper?
/datum/preference/toggle/hear_sound_blooperCan I hear everyone else's bloops?
/datum/preference/numeric/sound_blooper_volumeCan I have a slider to adjust the volume of the barks?
/datum/blooperIt's was stoolen from Splurt build >:3 and from fluffySTG!! nyeehehehheee!~
\ No newline at end of file diff --git a/modular_zubbers/code/modules/client/verbs/character_directory.html b/modular_zubbers/code/modules/client/verbs/character_directory.html new file mode 100644 index 0000000000000..596bf09f2a13d --- /dev/null +++ b/modular_zubbers/code/modules/client/verbs/character_directory.html @@ -0,0 +1,2 @@ +modular_zubbers/code/modules/client/verbs/character_directory.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/client/verbs/character_directory.dm

/datum/preference/choiced/directory_character_prefsPref for all the things with the same "Yes", "No", "No ERP", "Check OOC", "Unset", "Maybe" setting +Saves us on copypaste code
\ No newline at end of file diff --git a/modular_zubbers/code/modules/clothing/under/security.html b/modular_zubbers/code/modules/clothing/under/security.html new file mode 100644 index 0000000000000..e8cae84cc5625 --- /dev/null +++ b/modular_zubbers/code/modules/clothing/under/security.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/clothing/under/security.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/clothing/under/security.dm

/obj/item/clothing/under/rank/medical/scrubs/skyrat/red/secSECMED
\ No newline at end of file diff --git a/modular_zubbers/code/modules/hydroponics.html b/modular_zubbers/code/modules/hydroponics.html new file mode 100644 index 0000000000000..7e3502d728b45 --- /dev/null +++ b/modular_zubbers/code/modules/hydroponics.html @@ -0,0 +1,9 @@ +modular_zubbers/code/modules/hydroponics/readme.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/hydroponics/readme.txt

# BUBBERSTATION MODULAR HYDROPONICS
+
+## What to put here
+Any completely new seeds, produce, sprites, and mechanics.
+Do not put any actual craftable foods here, instead either create or use, (if already created) the relevant modular folder.
+
+
+Overrides of mechanics on parent repos (TG, Skyrat) should still be done in the code folder.
+
\ No newline at end of file diff --git a/modular_zubbers/code/modules/job_exempt/job_exempt.html b/modular_zubbers/code/modules/job_exempt/job_exempt.html new file mode 100644 index 0000000000000..9bc0c0670f7b8 --- /dev/null +++ b/modular_zubbers/code/modules/job_exempt/job_exempt.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/job_exempt/job_exempt.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/job_exempt/job_exempt.dm

/proc/is_job_exempt_fromReturns whether a ckey has the job exemption for a job
/proc/load_job_exempt_cacheLoads job exempt cache for ckey, for internal use
/proc/set_job_exempt_stateSets the job exempt state of a ckey to desired state
/proc/show_job_exempt_menuDisplays the job exempt menu UI to target admin user
/proc/handle_job_exempt_menu_topicTopic handler for the job exempt menu
\ No newline at end of file diff --git a/modular_zubbers/code/modules/job_interns/config.html b/modular_zubbers/code/modules/job_interns/config.html new file mode 100644 index 0000000000000..02c43d48c895f --- /dev/null +++ b/modular_zubbers/code/modules/job_interns/config.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/job_interns/config.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/job_interns/config.dm

/datum/config_entry/flag/allow_intern_job_tagsConfig flag to allow intern tags to be added to ID's
/datum/config_entry/flag/use_intern_master_job_unlock_thresholdConfig flag to tag interns based on whether they unlocked the master job (head position usually)
/datum/config_entry/number/intern_threshold_securityIntern time for security jobs
/datum/config_entry/number/intern_threshold_cargoIntern time for cargo jobs
/datum/config_entry/number/intern_threshold_medicalIntern time for medical jobs
/datum/config_entry/number/intern_threshold_scienceIntern time for science jobs
/datum/config_entry/number/intern_threshold_serviceIntern time for service jobs
/datum/config_entry/number/intern_threshold_engineeringIntern time for engineering jobs
/datum/config_entry/number/intern_threshold_commandIntern time for command jobs
\ No newline at end of file diff --git a/modular_zubbers/code/modules/job_interns/job_interns.html b/modular_zubbers/code/modules/job_interns/job_interns.html new file mode 100644 index 0000000000000..c2731f39aaaf8 --- /dev/null +++ b/modular_zubbers/code/modules/job_interns/job_interns.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/job_interns/job_interns.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/job_interns/job_interns.dm

/datum/preference/toggle/be_internEnables the choice of players disabling their Intern ID tag
\ No newline at end of file diff --git a/modular_zubbers/code/modules/mining/equipment/survival_pod.html b/modular_zubbers/code/modules/mining/equipment/survival_pod.html new file mode 100644 index 0000000000000..fa52ab71c6d0e --- /dev/null +++ b/modular_zubbers/code/modules/mining/equipment/survival_pod.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/mining/equipment/survival_pod.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/mining/equipment/survival_pod.dm

/obj/item/survivalcapsule/botanyBotany Pods - Home is where the green is...
\ No newline at end of file diff --git a/modular_zubbers/code/modules/mob/living/basic/guardian/guardian_types/holoparasite_timestop.html b/modular_zubbers/code/modules/mob/living/basic/guardian/guardian_types/holoparasite_timestop.html new file mode 100644 index 0000000000000..a38e2e91a8c5f --- /dev/null +++ b/modular_zubbers/code/modules/mob/living/basic/guardian/guardian_types/holoparasite_timestop.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/mob/living/basic/guardian/guardian_types/holoparasite_timestop.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/mob/living/basic/guardian/guardian_types/holoparasite_timestop.dm

/mob/living/basic/guardian/standard/timestopThe Guardian itself
/datum/action/cooldown/spell/timestop/guardianGuardian Timestop ability
\ No newline at end of file diff --git a/modular_zubbers/code/modules/ratqueen/regalrat.html b/modular_zubbers/code/modules/ratqueen/regalrat.html new file mode 100644 index 0000000000000..32efdcfa7abf7 --- /dev/null +++ b/modular_zubbers/code/modules/ratqueen/regalrat.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/ratqueen/regalrat.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/ratqueen/regalrat.dm

/datum/action/cooldown/rat_fashionRegal rat swallows sludge to transform themselves into a different looking rat
/datum/rat_fashionDecides how regal rats can look
/datum/rat_fashion/defaultNormal
/datum/rat_fashion/classicOld sprite
/datum/rat_fashion/rat_queenRat queen (thicc rat)
/datum/rat_fashion/rat_queen_altRat queen alt (thicc rat but fat)
/datum/rat_fashion/ringmasterRingmaster (thicc rat but clothed)
\ No newline at end of file diff --git a/modular_zubbers/code/modules/status_effects/buffs/frenzy.html b/modular_zubbers/code/modules/status_effects/buffs/frenzy.html new file mode 100644 index 0000000000000..8c5c94e266aed --- /dev/null +++ b/modular_zubbers/code/modules/status_effects/buffs/frenzy.html @@ -0,0 +1,2 @@ +modular_zubbers/code/modules/status_effects/buffs/frenzy.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/status_effects/buffs/frenzy.dm

/atom/movable/screen/alert/status_effect/frenzyThis is the status effect given to Bloodsuckers in a Frenzy +This deals with everything entering/exiting Frenzy is meant to deal with.
\ No newline at end of file diff --git a/modular_zubbers/code/modules/storyteller/config.html b/modular_zubbers/code/modules/storyteller/config.html new file mode 100644 index 0000000000000..c52b88401f486 --- /dev/null +++ b/modular_zubbers/code/modules/storyteller/config.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/storyteller/config.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/storyteller/config.dm

/datum/config_entry/number/mundane_point_gain_multiplierGamemode related configs below
\ No newline at end of file diff --git a/modular_zubbers/code/modules/storyteller/event_defines.html b/modular_zubbers/code/modules/storyteller/event_defines.html new file mode 100644 index 0000000000000..80a71a1b56591 --- /dev/null +++ b/modular_zubbers/code/modules/storyteller/event_defines.html @@ -0,0 +1,6 @@ +modular_zubbers/code/modules/storyteller/event_defines/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Storyteller event overrides/defines

Existing events

+

All tg/skyrat event categorizations and adjustments are to be done in the correct track folder, in a .dm file whose name specifies it is an override.

+

(An exception applies to antag rolls, which are handled independently from any tg or skyrat code)

+

Some events might have multiple severities, these are to be put in the "multitrack" folder (If you don't see one that means there are no such events yet. Feel free to add it!)

+

New events

+

So you have decided to create a new event. Depending on how much code you might need to write, you either create a single dm file in the relevant folder, or create a subfolder if you need more code!

\ No newline at end of file diff --git a/modular_zubbers/code/modules/storyteller/scheduled_event.html b/modular_zubbers/code/modules/storyteller/scheduled_event.html new file mode 100644 index 0000000000000..e55524c470f14 --- /dev/null +++ b/modular_zubbers/code/modules/storyteller/scheduled_event.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/storyteller/scheduled_event.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/storyteller/scheduled_event.dm

/datum/scheduled_eventScheduled event datum for SSgamemode to put events into.
\ No newline at end of file diff --git a/modular_zubbers/code/modules/storyteller/storytellers/data/_track.html b/modular_zubbers/code/modules/storyteller/storytellers/data/_track.html new file mode 100644 index 0000000000000..57ac26379b633 --- /dev/null +++ b/modular_zubbers/code/modules/storyteller/storytellers/data/_track.html @@ -0,0 +1,2 @@ +modular_zubbers/code/modules/storyteller/storytellers/data/_track.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/storyteller/storytellers/data/_track.dm

/datum/storyteller_data/tracksStoryteller track data, for easy overriding of tracks without having to copypaste +thresholds - Used to show how many points the track has to collect before it triggers, lower means faster
\ No newline at end of file diff --git a/modular_zubbers/code/modules/storyteller/storytellers/tellers/_storyteller.html b/modular_zubbers/code/modules/storyteller/storytellers/tellers/_storyteller.html new file mode 100644 index 0000000000000..ed98b178de4ae --- /dev/null +++ b/modular_zubbers/code/modules/storyteller/storytellers/tellers/_storyteller.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/storyteller/storytellers/tellers/_storyteller.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/storyteller/storytellers/tellers/_storyteller.dm

/datum/storytellerThe storyteller datum. He operates with the SSgamemode data to run events
\ No newline at end of file diff --git a/modular_zubbers/code/modules/syndicate_offstation/code/misc-fluff/research.html b/modular_zubbers/code/modules/syndicate_offstation/code/misc-fluff/research.html new file mode 100644 index 0000000000000..6edb965e34ef7 --- /dev/null +++ b/modular_zubbers/code/modules/syndicate_offstation/code/misc-fluff/research.html @@ -0,0 +1,2 @@ +modular_zubbers/code/modules/syndicate_offstation/code/misc-fluff/research.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/syndicate_offstation/code/misc-fluff/research.dm

/datum/techweb/interdyneBubber added Syndicate Tech +First we enstate a techweb so we can add the node.
\ No newline at end of file diff --git a/modular_zubbers/code/modules/tarkon/code/misc-fluff/research.html b/modular_zubbers/code/modules/tarkon/code/misc-fluff/research.html new file mode 100644 index 0000000000000..f57ee89e4f03e --- /dev/null +++ b/modular_zubbers/code/modules/tarkon/code/misc-fluff/research.html @@ -0,0 +1 @@ +modular_zubbers/code/modules/tarkon/code/misc-fluff/research.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/tarkon/code/misc-fluff/research.dm

/datum/design/tarkonpoweratorBubber added Tarkon Tech
\ No newline at end of file diff --git a/modular_zubbers/code/modules/wizard_dize/wizard_dice_event.html b/modular_zubbers/code/modules/wizard_dize/wizard_dice_event.html new file mode 100644 index 0000000000000..cc9047155901b --- /dev/null +++ b/modular_zubbers/code/modules/wizard_dize/wizard_dice_event.html @@ -0,0 +1,2 @@ +modular_zubbers/code/modules/wizard_dize/wizard_dice_event.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/wizard_dize/wizard_dice_event.dm

/datum/round_event_control/wizard_diceImmovable rod random event. +The rod will spawn at some location outside the station, and travel in a straight line to the opposite side of the station
\ No newline at end of file diff --git a/modular_zubbers/code/modules/~donator/mothdonator.html b/modular_zubbers/code/modules/~donator/mothdonator.html new file mode 100644 index 0000000000000..c20564cabb6e9 --- /dev/null +++ b/modular_zubbers/code/modules/~donator/mothdonator.html @@ -0,0 +1,2 @@ +modular_zubbers/code/modules/~donator/mothdonator.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/code/modules/~donator/mothdonator.dm

/obj/item/clothing/head/mob_holder/petThis is a special subtype of mob_holder that spawns with a mob included instead of being created by scooping a mob. +It can override the name & description of the included mob as well.
/mob/living/basic/mothroach/pet/mr_fluff== DONATOR PET: Mr. Fluff, Central's Mothroach, ckey centralsmith ==
\ No newline at end of file diff --git a/modular_zubbers/maps/biodome/sedated_mob.html b/modular_zubbers/maps/biodome/sedated_mob.html new file mode 100644 index 0000000000000..07a81482e90e9 --- /dev/null +++ b/modular_zubbers/maps/biodome/sedated_mob.html @@ -0,0 +1 @@ +modular_zubbers/maps/biodome/sedated_mob.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/maps/biodome/sedated_mob.dm

/datum/element/sedated_mobAttached to a mob with an AI controller, if this mob is attacked then it will replace the AI controller.
\ No newline at end of file diff --git a/modular_zubbers/master_files/code/modules/entombed_quirk/code/entombed.html b/modular_zubbers/master_files/code/modules/entombed_quirk/code/entombed.html new file mode 100644 index 0000000000000..ab4c949660814 --- /dev/null +++ b/modular_zubbers/master_files/code/modules/entombed_quirk/code/entombed.html @@ -0,0 +1 @@ +modular_zubbers/master_files/code/modules/entombed_quirk/code/entombed.dm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesDefine Details

modular_zubbers/master_files/code/modules/entombed_quirk/code/entombed.dm

ENTOMBED_TICK_DAMAGEHow much damage should we be taking when the suit's been disabled a while?

Define Details

ENTOMBED_TICK_DAMAGE

How much damage should we be taking when the suit's been disabled a while?

\ No newline at end of file diff --git a/modular_zubbers/sound/voice/nerdsuit/audacity settings.html b/modular_zubbers/sound/voice/nerdsuit/audacity settings.html new file mode 100644 index 0000000000000..4a68729a45dc1 --- /dev/null +++ b/modular_zubbers/sound/voice/nerdsuit/audacity settings.html @@ -0,0 +1,6 @@ +modular_zubbers/sound/voice/nerdsuit/audacity settings.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/sound/voice/nerdsuit/audacity settings.txt

https://www.youtube.com/watch?v=rMUQeMcbs7c
+
+filter curve > bass cut
+echo > delay 0.01, decay factor 0.5
+bitrate > 11025 ```
+
\ No newline at end of file diff --git a/modular_zubbers/sound/vore/CREDIT.html b/modular_zubbers/sound/vore/CREDIT.html new file mode 100644 index 0000000000000..a05914604e86d --- /dev/null +++ b/modular_zubbers/sound/vore/CREDIT.html @@ -0,0 +1,2 @@ +modular_zubbers/sound/vore/CREDIT.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/sound/vore/CREDIT.md

These sounds are from VOREStation under CC BY-SA 3.0 unless otherwise +stated (such as Sunesound)

\ No newline at end of file diff --git a/modular_zubbers/sound/vore/sunesound/LICENSE.html b/modular_zubbers/sound/vore/sunesound/LICENSE.html new file mode 100644 index 0000000000000..524a414044e18 --- /dev/null +++ b/modular_zubbers/sound/vore/sunesound/LICENSE.html @@ -0,0 +1,2 @@ +modular_zubbers/sound/vore/sunesound/LICENSE.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zubbers/sound/vore/sunesound/LICENSE.txt

Audio work within these folders are © Poojawa 2017, all rights reserved.```
+
\ No newline at end of file diff --git a/modular_zzplurt.html b/modular_zzplurt.html new file mode 100644 index 0000000000000..b262ed47b7c70 --- /dev/null +++ b/modular_zzplurt.html @@ -0,0 +1,129 @@ +modular_zzplurt/readme.md - /tg/ Station 13
/tg/ Station 13 - Modules - Types

The Modularization Handbook - S.P.L.U.R.T. Style, v1.0

Introduction

+

Welcome to the S.P.L.U.R.T. codebase's modularization handbook! Our goal is to make contributing to our codebase as easy and comfy as possible for coders while upkeeping our code standards. We understand that maintaining a codebase that's a fork of another can be challenging, but with the right practices, we can keep our code clean, organized, and easy to manage. This handbook outlines our modularization protocols and coding standards to help you get started.

+

If you'd like to know more about coding, contributing and contribution standards, feel free to read this repository's contribution guides!

+

Important Note - Test Your Pull Requests

+

You are responsible for testing your content. Please do not mark a pull request as ready for review until you have thoroughly tested it. If you need a separate client for testing, you can use a guest account by logging out of BYOND and connecting to your test server. Test merges are for stress tests, not for finding bugs that could have been caught with local testing.

+

The Nature of Conflicts

+

Conflicts can arise when changes are made to the same lines of code in different branches. For example, if the original code is:

+
var/something = 1
+
+

And we change it to:

+
- var/something = 1
++ var/something = 2 //SPLURT EDIT
+
+

But upstream changes it to:

+
- var/something = 1
++ var/something = 4
+
+

This results in a conflict that needs to be resolved manually. Our solution is modularization.

+

The Modularization Protocol

+

Modularization is the practice of organizing code into separate, self-contained modules that can be developed, tested, and maintained independently. In the context of our codebase, this means placing as much as possible of the new code, icons, sounds, and other assets into the modular_zzplurt folder. This approach helps keep our core codebase clean and reduces the likelihood of conflicts when merging changes. By following a structure that resembles the main repository within the modular_zzplurt folder, we ensure that our modular code is easy to navigate and manage. This also allows us to make changes and add new features without directly modifying the core files, thereby maintaining the integrity and stability of the main codebase.

+

Our modularization protocols are founded on three pillars:

+
    +
  1. Modularize anything that's reasonable to modularize: This includes anything that can be modularized without decreasing its quality or the quality of existing code, and won't logically cause more issues by modularizing than not doing it.
  2. +
  3. Use commenting conventions for non-modular edits: When editing non-modular code, make sure to adequately use the commenting conventions to ensure it is known that it's a non-modular edit.
  4. +
  5. It's ok to mess up: These guidelines are intended less as a set of ironclad rules for contributors to strictly follow, but rather coding standards that we all collectively help to attain, for example through maintainers helping any contributors fulfill them in their pull requests.
  6. +
+

Modular Overrides

+

Modular overrides allow us to extend or modify the behavior of existing code without directly editing the core files. This is done by creating new definitions or modifying existing ones in a way that they can be easily integrated into the core codebase.

+

There are two main types of modular overrides: Variable Overrides and Proc Overrides.

+

Variable Overrides

+

Variable overrides allow you to modify existing variables in a modular fashion. This is useful when you need to introduce new properties to existing objects without altering the core code. For example:

+
/obj/item/gun
+    var/muzzle_flash = TRUE
+
+    ...
+
+/obj/item/gun
+    muzzle_flash = FALSE
+
+

In this example, a new variable muzzle_flash is added to the /obj/item/gun object with a value of TRUE. The value of this variable is later changed to FALSE through overriding.

+

Proc Overrides

+

Proc overrides allow you to extend or modify the behavior of existing procedures (procs) without directly editing the core files. This is done by defining a new proc that calls the original proc and then adds the new behavior. For example:

+
/obj/item/gun/shoot_live_shot(mob/living/user, pointblank = 0, atom/pbtarget = null, message = 1)
+    . = ..() // Call the original proc and set its value to the default return value
+    if(muzzle_flash)
+        spawn_sparks(src) // Add new behavior
+
+

In this example, the shoot_live_shot proc is overridden to add a new behavior (spawning sparks) after calling the original proc. This ensures that the new behavior is added without modifying the core code.

+

How and Why Modular Overrides Work

+

Modular overrides work by leveraging BYOND's file inclusion and proc definition order. When BYOND compiles the code, it processes files and definitions in the order that they're included in tgstation.dme. BYOND orders said includes in alphabetical order, with _ being before all letters, and ~ being after.

+

Proc overrides run in the order of last-defined to first-defined. This means that the most recently defined proc will be the one that is executed. By placing our overrides in files that are included later in the compilation process, we ensure that they take precedence over earlier definitions.

+

Why modular_zzplurt?

+

The folder is named modular_zzplurt rather than modular_splurt to ensure that it comes after all other modular_ folders in the alphabetical order. This guarantees that our modular overrides are processed last, allowing them to effectively override any previous definitions.

+

When to Use Modular Overrides

+

Modular overrides should be used whenever possible to keep the core codebase clean and maintainable. However, it's important to use them judiciously and ensure that they do not introduce performance issues or make the code harder to understand and maintain. Specifically:

+
    +
  • Use modular overrides when they won't cause more issues than not modularizing them: If a modular override would introduce significant complexity, performance issues, or maintenance challenges, it may be better to make a non-modular edit with proper commenting.
  • +
  • Document your overrides: Clearly documenting any modular overrides in your code helps maintainers and other contributors understand your changes and their purpose.
  • +
+

By following these guidelines, we can ensure that our codebase remains clean, maintainable, and easy to navigate, while still allowing for the flexibility to add new features and make necessary changes.

+

Folder Structure

+

Instead of using different modules for every different bit of the game, we prefer to use a structure that resembles the structure of the repo itself inside our modular folder. This means we have one coding folder for all the code, one icons folder, one sounds folder, etc.

+
    +
  • Code: Any .dm files should go in modular_zzplurt/code/.
  • +
  • Icons: Any .dmi files should go in modular_zzplurt/icons/.
  • +
  • Sounds: Any sound files should go in modular_zzplurt/sounds/.
  • +
+

Commenting Conventions

+

When making non-modular changes to the core code, please use the following commenting conventions or similar:

+
    +
  • Addition:
  • +
+
  //SPLURT EDIT ADDITION BEGIN - FEATURE_NAME - (Optional Reason/comment)
+  var/adminEmergencyNoRecall = FALSE
+  var/lastMode = SHUTTLE_IDLE
+  var/lastCallTime = 6000
+  //SPLURT EDIT ADDITION END
+
+
    +
  • Removal:
  • +
+
  //SPLURT EDIT REMOVAL BEGIN - FEATURE_NAME - (Optional Reason/comment)
+  /*
+  for(var/obj/docking_port/stationary/S in stationary)
+    if(S.id = id)
+      return S
+  */
+  //SPLURT EDIT REMOVAL END
+  WARNING("couldn't find dock with id: [id]")
+
+
    +
  • Change:
  • +
+
  //SPLURT EDIT CHANGE BEGIN - FEATURE_NAME - (Optional Reason/comment)
+  //if(SHUTTLE_STRANDED, SHUTTLE_ESCAPE) - SPLURT EDIT - ORIGINAL
+  if(SHUTTLE_STRANDED, SHUTTLE_ESCAPE, SHUTTLE_DISABLED)
+  //SPLURT EDIT CHANGE END
+      return 1
+
+

Modular Defines

+

Our modular defines are located at code/__DEFINES/~~~splurt_defines. If you have a define that's used in more than one file, it must be declared here. If you have a define that's used in one file and won't be used anywhere else, declare it at the top and #undef MY_DEFINE at the bottom of the file.

+

Binary Files and Maps

+

It's preferable to use modular binary files (sounds, icons, assets, etc.) to add content rather than editing non-modular binary files. This should always be your first option when working with binary files. However, if it is absolutely necessary, you may edit non-modular binary files. Remember, if you want to edit maps or binary files, you must install the hooks located in tools/hooks/install.bat.

+

For sound files the only accepted format to use in the codebase is .ogg. All files should be as compressed as possible to not bloat our rsc files.

+

Maps

+

When editing maps, especially those that exist in the upstream codebase, the first option should be to use the automapper. The automapper allows you to make modular edits to maps by applying changes through predefined templates and coordinates, ensuring that the core map files remain untouched.

+

There are two main ways to use the automapper: the simple area automapper for small changes and the template automapper for larger changes.

+
    +
  1. +

    Simple Area Automapper:

    +
      +
    • Use this for small changes, such as adding a single item to an area.
    • +
    • Define the item and its location in the automapper configuration.
    • +
    • This will place the specified item at the given coordinates in the specified area.
    • +
    +
  2. +
  3. +

    Template Automapper:

    +
      +
    • Use this for larger changes, such as modifying entire rooms or sections of the map.
    • +
    • Create a template file that defines the changes you want to make.
    • +
    • Add entries to the automapper_config.toml file to specify where and how the template should be applied.
    • +
    • This will apply the changes defined in the template file at the given coordinates.
    • +
    +
  4. +
+

Direct edits to the map files should only be made if the automapper is not sufficient for the intended edits. This ensures that our map changes remain modular and easier to manage.

+

Afterword

+

We hope this handbook makes contributing to S.P.L.U.R.T. a pleasant experience. Remember, these guidelines are here to help maintain the quality and organization of our codebase. If you have any questions or need assistance, don't hesitate to reach out to our maintainers or the community. Happy coding!

\ No newline at end of file diff --git a/modular_zzplurt/code/modules/clothing/underwear/shirt.html b/modular_zzplurt/code/modules/clothing/underwear/shirt.html new file mode 100644 index 0000000000000..1d271ce1b50a1 --- /dev/null +++ b/modular_zzplurt/code/modules/clothing/underwear/shirt.html @@ -0,0 +1 @@ +modular_zzplurt/code/modules/clothing/underwear/shirt.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zzplurt/code/modules/clothing/underwear/shirt.dm

/obj/item/clothing/underwear/shirt
\ No newline at end of file diff --git a/modular_zzplurt/code/modules/clothing/underwear/socks.html b/modular_zzplurt/code/modules/clothing/underwear/socks.html new file mode 100644 index 0000000000000..80b92e201ab9a --- /dev/null +++ b/modular_zzplurt/code/modules/clothing/underwear/socks.html @@ -0,0 +1 @@ +modular_zzplurt/code/modules/clothing/underwear/socks.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zzplurt/code/modules/clothing/underwear/socks.dm

/obj/item/clothing/underwear/socks
\ No newline at end of file diff --git a/modular_zzplurt/code/modules/clothing/underwear/~generated_files/briefs.html b/modular_zzplurt/code/modules/clothing/underwear/~generated_files/briefs.html new file mode 100644 index 0000000000000..1000ace5333b1 --- /dev/null +++ b/modular_zzplurt/code/modules/clothing/underwear/~generated_files/briefs.html @@ -0,0 +1 @@ +modular_zzplurt/code/modules/clothing/underwear/~generated_files/briefs.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zzplurt/code/modules/clothing/underwear/~generated_files/briefs.dm

/obj/item/clothing/underwear/briefs/nude
\ No newline at end of file diff --git a/modular_zzplurt/code/modules/clothing/underwear/~generated_files/shirt.html b/modular_zzplurt/code/modules/clothing/underwear/~generated_files/shirt.html new file mode 100644 index 0000000000000..4ee4a5fab4ff5 --- /dev/null +++ b/modular_zzplurt/code/modules/clothing/underwear/~generated_files/shirt.html @@ -0,0 +1 @@ +modular_zzplurt/code/modules/clothing/underwear/~generated_files/shirt.dm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zzplurt/code/modules/clothing/underwear/~generated_files/shirt.dm

/obj/item/clothing/underwear/shirt/bra/nudebra section
\ No newline at end of file diff --git a/modular_zzplurt/sound/voice/catpeople/credits.html b/modular_zzplurt/sound/voice/catpeople/credits.html new file mode 100644 index 0000000000000..012714af078a2 --- /dev/null +++ b/modular_zzplurt/sound/voice/catpeople/credits.html @@ -0,0 +1,2 @@ +modular_zzplurt/sound/voice/catpeople/credits.txt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

modular_zzplurt/sound/voice/catpeople/credits.txt

Sound Files ported from https://github.com/Nyanotrasen/Nyanotrasen/ created by Elijahrane```
+
\ No newline at end of file diff --git a/obj.html b/obj.html new file mode 100644 index 0000000000000..e142882819031 --- /dev/null +++ b/obj.html @@ -0,0 +1,65 @@ +/obj - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

obj

Vars

anchored_tabletop_offsetThe vertical pixel_z offset applied when the object is anchored on a tile with table +Ignored when set to 0 - to avoid shifting directional wall-mounted objects above tables
bare_wound_bonusIf this attacks a human with no wound armor on the affected body part, add this to the wound mod. Some attacks may be significantly worse at wounding if there's even a slight layer of armor to absorb some of it vs bare flesh
burning_particlesParticles this obj uses when burning, if any
custom_fire_overlayCustom fire overlay icon, will just use the default overlay if this is null
demolition_modA multiplier to an object's force when used against a structure, vehicle, machine, or robot.
desc_controlsExtra examine line to describe controls, such as right-clicking, left-clicking, etc.
icon_previewIcon to use as a 32x32 preview in crafting menus and such
id_tagMap tag for something. Tired of it being used on snowflake items. Moved here for some semblance of a standard. +Next pr after the network fix will have me refactor door interactions, so help me god.
no_damage_feedbackThe context returned when an attack against this object doesn't deal any traditional damage to the object.
skyrat_obj_flagsthe skyrat version of obj_flags, to prevent any potential future conflict
wound_bonusHow good a given object is at causing wounds on carbons. Higher values equal better shots at creating serious wounds.

Procs

GetExplosionBlockreturns how much the object blocks an explosion. Used by subtypes.
acid_act// ACID +the obj's reaction when touched by acid
acid_meltcalled when the obj is destroyed by acid.
atom_deconstructCustom behaviour per atom subtype on how they should deconstruct themselves +Arguments
atom_destructionwhat happens when the obj's integrity reaches zero.
attack_tk_grabTelekinesis object grab act.
burnShould be called when the atom is destroyed by fire, comparable to acid_melt() proc
can_be_unfasten_wrenchIf we can unwrench this object; returns SUCCESSFUL_UNFASTEN and FAILED_UNFASTEN, which are both TRUE, or CANT_UNFASTEN, which isn't.
check_on_tableAdjusts the vertical pixel_z offset when the object is anchored on a tile with table
deconstructThe obj is deconstructed into pieces, whether through careful disassembly or when destroyed. +Arguments
default_unfasten_wrenchTry to unwrench an object in a WONDERFUL DYNAMIC WAY
expose_reagentsHandles exposing an object to reagents.
find_and_hang_on_wall
fire_act/ FIRE +Called when the obj is exposed to fire.
flick_emote_popup_on_objA proc type that, when called, causes a image/sprite to appear above whatever entity it is called on.
freezeAttempt to freeze this obj if possible. returns TRUE if it succeeded, FALSE otherwise.
gender_revealCreates an animation of the item slowly lifting up from the floor with a colored outline, then slowly drifting back down. +Arguments:
handle_deconstructThe interminate proc between deconstruct() & atom_deconstruct(). By default this delegates deconstruction to +atom_deconstruct if NO_DEBRIS_AFTER_DECONSTRUCTION is absent but subtypes can override this to handle NO_DEBRIS_AFTER_DECONSTRUCTION in their +own unique way. Override this if for example you want to dump out important content like mobs from the +atom before deconstruction regardless if NO_DEBRIS_AFTER_DECONSTRUCTION is present or not +Arguments
on_object_savedA procedure for saving non-standard properties of an object. +For example, saving ore into a silo, and further spavn by coordinates of metal stacks objects
pipe_ejectGeneral proc used to expel a holder's contents through src (for bins holder is also the src).
receive_signalProc for reacting to a received /datum/signal. To be implemented as needed, +does nothing by default.
remove_emote_popup_on_objA proc that is automatically called whenever flick_emote_popup_on_obj's addtimer expires, and removes the popup.
remove_gender_reveal_fxRemoves the non-animate effects from above proc
set_boundsUpdates the bounds of a rotated object +This ensures that the bounds are always correct, +even if the object is rotated after init.
unfasten_wrench_checkFor the do_after, this checks if unfastening conditions are still valid
unfreezeUnfreezes this obj if its frozen
zap_actCalled when the obj is hit by a tesla bolt.
zap_buckle_checkOnly tesla coils, vehicles, and grounding rods currently call this because mobs are already targeted over all other objects, but this might be useful for more things later.

Var Details

anchored_tabletop_offset

The vertical pixel_z offset applied when the object is anchored on a tile with table +Ignored when set to 0 - to avoid shifting directional wall-mounted objects above tables

bare_wound_bonus

If this attacks a human with no wound armor on the affected body part, add this to the wound mod. Some attacks may be significantly worse at wounding if there's even a slight layer of armor to absorb some of it vs bare flesh

burning_particles

Particles this obj uses when burning, if any

custom_fire_overlay

Custom fire overlay icon, will just use the default overlay if this is null

demolition_mod

A multiplier to an object's force when used against a structure, vehicle, machine, or robot.

desc_controls

Extra examine line to describe controls, such as right-clicking, left-clicking, etc.

icon_preview

Icon to use as a 32x32 preview in crafting menus and such

id_tag

Map tag for something. Tired of it being used on snowflake items. Moved here for some semblance of a standard. +Next pr after the network fix will have me refactor door interactions, so help me god.

no_damage_feedback

The context returned when an attack against this object doesn't deal any traditional damage to the object.

skyrat_obj_flags

the skyrat version of obj_flags, to prevent any potential future conflict

wound_bonus

How good a given object is at causing wounds on carbons. Higher values equal better shots at creating serious wounds.

Proc Details

GetExplosionBlock

returns how much the object blocks an explosion. Used by subtypes.

acid_act

// ACID +the obj's reaction when touched by acid

acid_melt

called when the obj is destroyed by acid.

atom_deconstruct

Custom behaviour per atom subtype on how they should deconstruct themselves +Arguments

+
    +
  • disassembled - TRUE means we cleanly took this atom apart using tools. FALSE means this was destroyed in a violent way
  • +

atom_destruction

what happens when the obj's integrity reaches zero.

attack_tk_grab

Telekinesis object grab act.

+
    +
  • Called by /obj/attack_tk().
  • +
  • Returns COMPONENT_CANCEL_ATTACK_CHAIN when it performs any action, to further acts on the attack chain.
  • +

burn

Should be called when the atom is destroyed by fire, comparable to acid_melt() proc

can_be_unfasten_wrench

If we can unwrench this object; returns SUCCESSFUL_UNFASTEN and FAILED_UNFASTEN, which are both TRUE, or CANT_UNFASTEN, which isn't.

check_on_table

Adjusts the vertical pixel_z offset when the object is anchored on a tile with table

deconstruct

The obj is deconstructed into pieces, whether through careful disassembly or when destroyed. +Arguments

+
    +
  • disassembled - TRUE means we cleanly took this atom apart using tools. FALSE means this was destroyed in a violent way
  • +

default_unfasten_wrench

Try to unwrench an object in a WONDERFUL DYNAMIC WAY

expose_reagents

Handles exposing an object to reagents.

find_and_hang_on_wall

Checks object direction and then verifies if there's a wall in that direction. Finally, applies a wall_mounted component to the object.
+
+@param directional If TRUE, will use the direction of the object to determine the wall to attach to. If FALSE, will use the object's loc.
+@param custom_drop_callback If set, will use this callback instead of the default deconstruct callback.
+

fire_act

/ FIRE +Called when the obj is exposed to fire.

flick_emote_popup_on_obj

A proc type that, when called, causes a image/sprite to appear above whatever entity it is called on.

+

There are two types: on_mob and on_obj, they can only be called on their respective typepaths.

+

Arguments:

+
    +
  • state -- The icon_state of whatever .dmi file you're attempting to use for the sprite, in "" format. Ex. "combat", not combat.dmi.
  • +
  • time -- The amount of time the sprite remains before remove_emote_popup_on_obj is called. Is used in the addtimer.
  • +

freeze

Attempt to freeze this obj if possible. returns TRUE if it succeeded, FALSE otherwise.

gender_reveal

Creates an animation of the item slowly lifting up from the floor with a colored outline, then slowly drifting back down. +Arguments:

+
    +
  • outline_color: Default is between pink and light blue, is the color of the outline filter.
  • +
  • ray_color: Null by default. If not set, just copies outline. Used for the ray filter.
  • +
  • anim_time: Total time of the animation. Split into two different calls.
  • +
  • do_float: Lets you disable the sprite floating up and down.
  • +
  • do_layer: Lets you disable the layering increase.
  • +

handle_deconstruct

The interminate proc between deconstruct() & atom_deconstruct(). By default this delegates deconstruction to +atom_deconstruct if NO_DEBRIS_AFTER_DECONSTRUCTION is absent but subtypes can override this to handle NO_DEBRIS_AFTER_DECONSTRUCTION in their +own unique way. Override this if for example you want to dump out important content like mobs from the +atom before deconstruction regardless if NO_DEBRIS_AFTER_DECONSTRUCTION is present or not +Arguments

+
    +
  • disassembled - TRUE means we cleanly took this atom apart using tools. FALSE means this was destroyed in a violent way
  • +

on_object_saved

A procedure for saving non-standard properties of an object. +For example, saving ore into a silo, and further spavn by coordinates of metal stacks objects

pipe_eject

General proc used to expel a holder's contents through src (for bins holder is also the src).

receive_signal

Proc for reacting to a received /datum/signal. To be implemented as needed, +does nothing by default.

remove_emote_popup_on_obj

A proc that is automatically called whenever flick_emote_popup_on_obj's addtimer expires, and removes the popup.

+

Arguments:

+
    +
  • emote_overlay -- Inherits state from the preceding proc.
  • +

remove_gender_reveal_fx

Removes the non-animate effects from above proc

set_bounds

Updates the bounds of a rotated object +This ensures that the bounds are always correct, +even if the object is rotated after init.

unfasten_wrench_check

For the do_after, this checks if unfastening conditions are still valid

unfreeze

Unfreezes this obj if its frozen

zap_act

Called when the obj is hit by a tesla bolt.

zap_buckle_check

Only tesla coils, vehicles, and grounding rods currently call this because mobs are already targeted over all other objects, but this might be useful for more things later.

\ No newline at end of file diff --git a/obj/cascade_portal.html b/obj/cascade_portal.html new file mode 100644 index 0000000000000..3e7e39e8fdd73 --- /dev/null +++ b/obj/cascade_portal.html @@ -0,0 +1,2 @@ +/obj/cascade_portal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cascade_portal

Procs

consumeProc to consume the objects colliding with the portal

Proc Details

consume

Proc to consume the objects colliding with the portal

+

Arguments: atom/movable/consumed_object is the object hitting the portal

\ No newline at end of file diff --git a/obj/crystal_mass.html b/obj/crystal_mass.html new file mode 100644 index 0000000000000..a7b443cd47062 --- /dev/null +++ b/obj/crystal_mass.html @@ -0,0 +1 @@ +/obj/crystal_mass - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crystal_mass

Vars

available_dirsAll dirs we can expand to
sm_compHandler that helps with properly killing mobs that the crystal grows over
sm_wall_cooldownCooldown on the expansion process

Var Details

available_dirs

All dirs we can expand to

sm_comp

Handler that helps with properly killing mobs that the crystal grows over

sm_wall_cooldown

Cooldown on the expansion process

\ No newline at end of file diff --git a/obj/docking_port.html b/obj/docking_port.html new file mode 100644 index 0000000000000..8e6330cd98f79 --- /dev/null +++ b/obj/docking_port.html @@ -0,0 +1,7 @@ +/obj/docking_port - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

docking_port

Vars

delete_afterDelete this port after ship fly off.
dheightposition relative to covered area, parallel to dir. You shouldn't modify this for mobile dockingports, set automatically.
dirCommon standard is for this to point -away- from the dockingport door, ie towards the ship
dwidthposition relative to covered area, perpendicular to dir. You shouldn't modify this for mobile dockingports, set automatically.
heightsize of covered area, parallel to dir. You shouldn't modify this for mobile dockingports, set automatically.
hiddenare we invisible to shuttle navigation computers?
port_destinationsPossible destinations
registeredare we registered in SSshuttles?
shuttle_idThe identifier of the port or ship. +This will be used in numerous other places like the console, +stationary ports and whatnot to tell them your ship's mobile +port can be used in these places, or the docking port is compatible, etc.
widthsize of covered area, perpendicular to dir. You shouldn't modify this for mobile dockingports, set automatically.

Procs

registerregister to SSshuttles
return_coordsreturns a list(x0,y0, x1,y1) where points 0 and 1 are bounding corners of the projected rectangle
return_ordered_turfsreturns turfs within our projected rectangle in a specific order.this ensures that turfs are copied over in the same order, regardless of any rotation
return_turfsreturns turfs within our projected rectangle in no particular order
unregisterunregister from SSshuttles

Var Details

delete_after

Delete this port after ship fly off.

dheight

position relative to covered area, parallel to dir. You shouldn't modify this for mobile dockingports, set automatically.

dir

Common standard is for this to point -away- from the dockingport door, ie towards the ship

dwidth

position relative to covered area, perpendicular to dir. You shouldn't modify this for mobile dockingports, set automatically.

height

size of covered area, parallel to dir. You shouldn't modify this for mobile dockingports, set automatically.

hidden

are we invisible to shuttle navigation computers?

port_destinations

Possible destinations

registered

are we registered in SSshuttles?

shuttle_id

The identifier of the port or ship. +This will be used in numerous other places like the console, +stationary ports and whatnot to tell them your ship's mobile +port can be used in these places, or the docking port is compatible, etc.

width

size of covered area, perpendicular to dir. You shouldn't modify this for mobile dockingports, set automatically.

Proc Details

register

register to SSshuttles

return_coords

returns a list(x0,y0, x1,y1) where points 0 and 1 are bounding corners of the projected rectangle

return_ordered_turfs

returns turfs within our projected rectangle in a specific order.this ensures that turfs are copied over in the same order, regardless of any rotation

return_turfs

returns turfs within our projected rectangle in no particular order

unregister

unregister from SSshuttles

\ No newline at end of file diff --git a/obj/docking_port/mobile.html b/obj/docking_port/mobile.html new file mode 100644 index 0000000000000..90dbf926c9d01 --- /dev/null +++ b/obj/docking_port/mobile.html @@ -0,0 +1,21 @@ +/obj/docking_port/mobile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mobile

Vars

alert_coeffSpeed multiplier based on station alert level
callTimetime spent in transit (deciseconds). Should not be lower then 10 seconds without editing the animation of the hyperspace ripples.
can_move_docking_portsif this shuttle can move docking ports other than the one it is docked at
current_engine_powerHow much engine power (thrust) the shuttle currently has.
engine_coeffHow fast the shuttle should be, taking engine thrust into account.
engine_listList of all currently used engines that propels us.
event_listList of shuttle events that can run or are running
ignitionTimetime spent "starting the engines". Also rate limits how often we try to reserve transit space if its ever full of transiting shuttles.
initial_engine_powerHow much engine power (thrust) the shuttle starts with at mapload.
landing_soundThe landing sound to be played
modecurrent shuttle mode
movement_forceWhether or not you want your ship to knock people down, and also whether it will throw them several tiles upon launching.
port_directionrelative direction of the docking port from the front of the shuttle. NORTH is towards front, EAST would be starboard side, WEST port, etc.
prearrivalTimetime spent after transit 'landing' before actually arriving
preferred_directionThe direction the shuttle prefers to travel in, ie what direction the animation will cause it to appear to be traveling in
rechargeTimetime spent after arrival before being able to begin ignition
shuttle_areasList of all areas our shuttle holds.
shuttle_soundsDoes this shuttle play sounds upon landing and takeoff?
sound_rangeThe sound range coeff for the landing and take off sound effect
takeoff_soundThe take off sound to be played
timerused as a timer (if you want time left to complete move, use timeLeft proc)

Procs

add_shuttle_eventGive a typepath of a shuttle event to add to the shuttle. If added during endgame transit, will insta start the event
announce_shuttle_eventsLet people know shits about to go down
beforeShuttleMoveMisc move procs
calculate_docking_port_informationCalculated and populates the information used for docking and some internal vars. +This can also be used to calculate from shuttle_areas so that you can expand/shrink shuttles!
get_status_text_tguiGets shuttle location status in a form of string for tgui interfaces
initiate_dockingThis is the main proc. It instantly moves our mobile port to stationary port new_dock.
intoTheSunsetGhosts and marks as escaped (for greentext purposes) all mobs, then deletes the shuttle. +Used by the Shuttle Manipulator
postregisterActions to be taken after shuttle is loaded and has been moved to its final location
process_eventsProcess all the shuttle events for every shuttle tick we get
registerActions to be taken after shuttle is loaded but before it has been moved out of transit z-level to its final location
requestCalls the shuttle to the destination port, respecting its ignition and call timers

Var Details

alert_coeff

Speed multiplier based on station alert level

callTime

time spent in transit (deciseconds). Should not be lower then 10 seconds without editing the animation of the hyperspace ripples.

can_move_docking_ports

if this shuttle can move docking ports other than the one it is docked at

current_engine_power

How much engine power (thrust) the shuttle currently has.

engine_coeff

How fast the shuttle should be, taking engine thrust into account.

engine_list

List of all currently used engines that propels us.

event_list

List of shuttle events that can run or are running

ignitionTime

time spent "starting the engines". Also rate limits how often we try to reserve transit space if its ever full of transiting shuttles.

initial_engine_power

How much engine power (thrust) the shuttle starts with at mapload.

landing_sound

The landing sound to be played

mode

current shuttle mode

movement_force

Whether or not you want your ship to knock people down, and also whether it will throw them several tiles upon launching.

port_direction

relative direction of the docking port from the front of the shuttle. NORTH is towards front, EAST would be starboard side, WEST port, etc.

prearrivalTime

time spent after transit 'landing' before actually arriving

preferred_direction

The direction the shuttle prefers to travel in, ie what direction the animation will cause it to appear to be traveling in

rechargeTime

time spent after arrival before being able to begin ignition

shuttle_areas

List of all areas our shuttle holds.

shuttle_sounds

Does this shuttle play sounds upon landing and takeoff?

sound_range

The sound range coeff for the landing and take off sound effect

takeoff_sound

The take off sound to be played

timer

used as a timer (if you want time left to complete move, use timeLeft proc)

Proc Details

add_shuttle_event

Give a typepath of a shuttle event to add to the shuttle. If added during endgame transit, will insta start the event

announce_shuttle_events

Let people know shits about to go down

beforeShuttleMove

Misc move procs

calculate_docking_port_information

Calculated and populates the information used for docking and some internal vars. +This can also be used to calculate from shuttle_areas so that you can expand/shrink shuttles!

+

Arguments:

+
    +
  • loading_from - The template that the shuttle was loaded from, if not given we iterate shuttle_areas to calculate information instead
  • +

get_status_text_tgui

Gets shuttle location status in a form of string for tgui interfaces

initiate_docking

This is the main proc. It instantly moves our mobile port to stationary port new_dock.

intoTheSunset

Ghosts and marks as escaped (for greentext purposes) all mobs, then deletes the shuttle. +Used by the Shuttle Manipulator

postregister

Actions to be taken after shuttle is loaded and has been moved to its final location

+

Arguments:

+
    +
  • replace - TRUE if this shuttle is replacing an existing one. FALSE by default.
  • +

process_events

Process all the shuttle events for every shuttle tick we get

register

Actions to be taken after shuttle is loaded but before it has been moved out of transit z-level to its final location

+

Arguments:

+
    +
  • replace - TRUE if this shuttle is replacing an existing one. FALSE by default.
  • +

request

Calls the shuttle to the destination port, respecting its ignition and call timers

+

Arguments:

+
    +
  • destination_port - Stationary docking port to move the shuttle to
  • +
\ No newline at end of file diff --git a/obj/docking_port/mobile/arrivals.html b/obj/docking_port/mobile/arrivals.html new file mode 100644 index 0000000000000..7b265df4b01f6 --- /dev/null +++ b/obj/docking_port/mobile/arrivals.html @@ -0,0 +1,6 @@ +/obj/docking_port/mobile/arrivals - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

arrivals

Procs

QueueAnnounceQueues an announcement arrival.

Proc Details

QueueAnnounce

Queues an announcement arrival.

+

Arguments:

+
    +
  • mob - The arriving mob.
  • +
  • rank - The job of the arriving mob.
  • +
\ No newline at end of file diff --git a/obj/docking_port/mobile/arrivals_skyrat.html b/obj/docking_port/mobile/arrivals_skyrat.html new file mode 100644 index 0000000000000..71e3e5cca4dfe --- /dev/null +++ b/obj/docking_port/mobile/arrivals_skyrat.html @@ -0,0 +1 @@ +/obj/docking_port/mobile/arrivals_skyrat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

arrivals_skyrat

Vars

consoleOur shuttle's control console
wait_timeHow much time are we waiting before returning to interlink. Sets itself automatically from config file
waitingState variable. True when our shuttle is waiting before autoreturn

Procs

check_occupiedChecks if our shuttle is occupied by someone alive, and returns TRUE if it is, FALSE otherwise.

Var Details

console

Our shuttle's control console

wait_time

How much time are we waiting before returning to interlink. Sets itself automatically from config file

waiting

State variable. True when our shuttle is waiting before autoreturn

Proc Details

check_occupied

Checks if our shuttle is occupied by someone alive, and returns TRUE if it is, FALSE otherwise.

\ No newline at end of file diff --git a/obj/docking_port/mobile/emergency.html b/obj/docking_port/mobile/emergency.html new file mode 100644 index 0000000000000..afc05f2e3cbb9 --- /dev/null +++ b/obj/docking_port/mobile/emergency.html @@ -0,0 +1,7 @@ +/obj/docking_port/mobile/emergency - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

emergency

Procs

elimination_hijackProc that handles checking if the emergency shuttle was successfully hijacked via being the only people present on the shuttle for the elimination hijack or highlander objective
setup_shuttle_eventsGenerate a list of events to run during the departure

Proc Details

elimination_hijack

Proc that handles checking if the emergency shuttle was successfully hijacked via being the only people present on the shuttle for the elimination hijack or highlander objective

+

Checks for all mobs on the shuttle, checks their status, and checks if they're +borgs or simple animals. Depending on the args, certain mobs may be ignored, +and the presence of other antags may or may not invalidate a hijack. +Args: +filter_by_human, default TRUE, tells the proc that only humans should block a hijack. Borgs and animals are ignored and will not block if this is TRUE. +solo_hijack, default FALSE, tells the proc to fail with multiple hijackers, such as for Highlander mode.

setup_shuttle_events

Generate a list of events to run during the departure

\ No newline at end of file diff --git a/obj/docking_port/mobile/pod.html b/obj/docking_port/mobile/pod.html new file mode 100644 index 0000000000000..e0c2a059b8daf --- /dev/null +++ b/obj/docking_port/mobile/pod.html @@ -0,0 +1,5 @@ +/obj/docking_port/mobile/pod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

pod

Procs

check_for_evacSignal handler for COMSIG_SECURITY_LEVEL_CHANGED. +Pulls minimum required alert level from modular config and sets pod's [var/launch_status] as [NOLAUNCH] or [UNLAUNCHED] accordingly. +Will not do anything if pod already launched.

Proc Details

check_for_evac

Signal handler for COMSIG_SECURITY_LEVEL_CHANGED. +Pulls minimum required alert level from modular config and sets pod's [var/launch_status] as [NOLAUNCH] or [UNLAUNCHED] accordingly. +Will not do anything if pod already launched.

\ No newline at end of file diff --git a/obj/docking_port/mobile/supply.html b/obj/docking_port/mobile/supply.html new file mode 100644 index 0000000000000..8864c837bd816 --- /dev/null +++ b/obj/docking_port/mobile/supply.html @@ -0,0 +1 @@ +/obj/docking_port/mobile/supply - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

supply

Procs

get_order_countTakes a supply pack, returns the amount we currently have on order (or OVER_ORDER_LIMIT if we are over the hardcap on orders of this type)
return_blacklisted_things_homeReturns anything on the cargo blacklist found within areas_to_check back to the turf of the home docking port via Centcom branded supply pod.
sellDeletes and sells the items on the shuttle

Proc Details

get_order_count

Takes a supply pack, returns the amount we currently have on order (or OVER_ORDER_LIMIT if we are over the hardcap on orders of this type)

return_blacklisted_things_home

Returns anything on the cargo blacklist found within areas_to_check back to the turf of the home docking port via Centcom branded supply pod.

sell

Deletes and sells the items on the shuttle

\ No newline at end of file diff --git a/obj/docking_port/stationary.html b/obj/docking_port/stationary.html new file mode 100644 index 0000000000000..8d04936cbeb5b --- /dev/null +++ b/obj/docking_port/stationary.html @@ -0,0 +1 @@ +/obj/docking_port/stationary - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stationary

Vars

json_keyUsed to check if the shuttle template is enabled in the config file
override_can_dock_checksIf true, the shuttle can always dock at this docking port, despite its area checks, or if something is already docked
roundstart_templateMap template to load when the dock is loaded

Var Details

json_key

Used to check if the shuttle template is enabled in the config file

override_can_dock_checks

If true, the shuttle can always dock at this docking port, despite its area checks, or if something is already docked

roundstart_template

Map template to load when the dock is loaded

\ No newline at end of file diff --git a/obj/docking_port/stationary/escape_pod.html b/obj/docking_port/stationary/escape_pod.html new file mode 100644 index 0000000000000..b12a51e206dff --- /dev/null +++ b/obj/docking_port/stationary/escape_pod.html @@ -0,0 +1 @@ +/obj/docking_port/stationary/escape_pod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

escape_pod

Subtype for escape pod ports so that we can give them trait behaviour

Vars

enforce_specific_podSet to true if you have a snowflake escape pod dock which needs to always have the normal pod or some other one

Var Details

enforce_specific_pod

Set to true if you have a snowflake escape pod dock which needs to always have the normal pod or some other one

\ No newline at end of file diff --git a/obj/docking_port/stationary/picked.html b/obj/docking_port/stationary/picked.html new file mode 100644 index 0000000000000..6638d4d3e6d28 --- /dev/null +++ b/obj/docking_port/stationary/picked.html @@ -0,0 +1 @@ +/obj/docking_port/stationary/picked - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

picked

Vars

shuttlekeysHolds a list of map name strings for the port to pick from

Var Details

shuttlekeys

Holds a list of map name strings for the port to pick from

\ No newline at end of file diff --git a/obj/docking_port/stationary/random.html b/obj/docking_port/stationary/random.html new file mode 100644 index 0000000000000..c66200a5e4c44 --- /dev/null +++ b/obj/docking_port/stationary/random.html @@ -0,0 +1 @@ +/obj/docking_port/stationary/random - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

random

Vars

edge_distanceMinimal distance from the map edge, setting this too low can result in shuttle landing on the edge and getting "sliced"
target_areaThe area the pod tries to land at

Var Details

edge_distance

Minimal distance from the map edge, setting this too low can result in shuttle landing on the edge and getting "sliced"

target_area

The area the pod tries to land at

\ No newline at end of file diff --git a/obj/docking_port/stationary/transit.html b/obj/docking_port/stationary/transit.html new file mode 100644 index 0000000000000..1b3e4e97c780c --- /dev/null +++ b/obj/docking_port/stationary/transit.html @@ -0,0 +1 @@ +/obj/docking_port/stationary/transit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

transit

Vars

assigned_areaThe area created during the transit area reservation
ownerThe mobile port that owns this transit port
reserved_areaThe turf reservation returned by the transit area request

Var Details

assigned_area

The area created during the transit area reservation

owner

The mobile port that owns this transit port

reserved_area

The turf reservation returned by the transit area request

\ No newline at end of file diff --git a/obj/durand_shield.html b/obj/durand_shield.html new file mode 100644 index 0000000000000..2cc32a3c0d57d --- /dev/null +++ b/obj/durand_shield.html @@ -0,0 +1,19 @@ +/obj/durand_shield - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

durand_shield

Shield processing +*An object to take the hit for us when using the Durand's defense mode. +It is spawned in during the durand's initilization, and always stays on the same tile. +Normally invisible, until defense mode is actvated. When the durand detects an attack that should be blocked, the +attack is passed to the shield. The shield takes the damage, uses it to calculate charge cost, and then sets its +own integrity back to max. Shield is automatically dropped if we run out of power or the user gets out.

Vars

chassisOur link back to the durand
switchingTo keep track of things during the animation

Procs

activateHandles activating and deactivating the shield.
make_invisibleSets invisibility to INVISIBILITY_MAXIMUM if defense mode is disabled

Var Details

chassis

Our link back to the durand

switching

To keep track of things during the animation

Proc Details

activate

Handles activating and deactivating the shield.

+

This proc is called by a signal sent from the mech's action button and +relayed by the mech itself. The "forced" variable, signal_args[1], will +skip the to-pilot text and is meant for when the shield is disabled by +means other than the action button (like running out of power).

+

Arguments:

+
    +
  • source: the shield
  • +
  • owner: mob that activated the shield
  • +
  • signal_args: whether it's forced
  • +

make_invisible

Sets invisibility to INVISIBILITY_MAXIMUM if defense mode is disabled

+

We need invisibility set to higher than 25 for the shield to not appear +in the right-click context menu, but if we do it too early, we miss the +deactivate animation. Hense, timer and this proc.

\ No newline at end of file diff --git a/obj/effect/abstract/chasm_storage.html b/obj/effect/abstract/chasm_storage.html new file mode 100644 index 0000000000000..bd078cb0011f6 --- /dev/null +++ b/obj/effect/abstract/chasm_storage.html @@ -0,0 +1,7 @@ +/obj/effect/abstract/chasm_storage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

chasm_storage

An abstract object which is basically just a bag that the chasm puts people inside

Procs

on_reviveCalled if something comes back to life inside the pit. Expected sources are badmins and changelings. +Ethereals should take enough damage to be smashed and not revive. +Arguments +escapee - Lucky guy who just came back to life at the bottom of a hole.

Proc Details

on_revive

Called if something comes back to life inside the pit. Expected sources are badmins and changelings. +Ethereals should take enough damage to be smashed and not revive. +Arguments +escapee - Lucky guy who just came back to life at the bottom of a hole.

\ No newline at end of file diff --git a/obj/effect/abstract/elevator_music_zone.html b/obj/effect/abstract/elevator_music_zone.html new file mode 100644 index 0000000000000..92d24455aa0b3 --- /dev/null +++ b/obj/effect/abstract/elevator_music_zone.html @@ -0,0 +1 @@ +/obj/effect/abstract/elevator_music_zone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

elevator_music_zone

Vars

linked_elevator_idWhat specific_transport_id do we link with?
rangeRadius around this map helper in which to play the sound
sound_playerProximity monitor which handles playing sounds to clients
soundloop_typeSound loop type to use

Procs

on_panel_depoweredStop sound loops if power is lost
on_panel_destroyedDie if panel is destroyed, although currently they are invincible
on_panel_poweredStart sound loops when power is restored

Var Details

linked_elevator_id

What specific_transport_id do we link with?

range

Radius around this map helper in which to play the sound

sound_player

Proximity monitor which handles playing sounds to clients

soundloop_type

Sound loop type to use

Proc Details

on_panel_depowered

Stop sound loops if power is lost

on_panel_destroyed

Die if panel is destroyed, although currently they are invincible

on_panel_powered

Start sound loops when power is restored

\ No newline at end of file diff --git a/obj/effect/abstract/info.html b/obj/effect/abstract/info.html new file mode 100644 index 0000000000000..d8127ce3a9268 --- /dev/null +++ b/obj/effect/abstract/info.html @@ -0,0 +1 @@ +/obj/effect/abstract/info - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

info

An info button that, when clicked, puts some text in the user's chat

Vars

info_textWhat should the info button display when clicked?

Var Details

info_text

What should the info button display when clicked?

\ No newline at end of file diff --git a/obj/effect/abstract/liquid_turf.html b/obj/effect/abstract/liquid_turf.html new file mode 100644 index 0000000000000..82be20f38e503 --- /dev/null +++ b/obj/effect/abstract/liquid_turf.html @@ -0,0 +1,21 @@ +/obj/effect/abstract/liquid_turf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

liquid_turf

Vars

liquid_state_messagesState-specific message chunks for examine_turf()

Procs

examine_turfHandles COMSIG_ATOM_EXAMINE for the turf.
make_liquid_overlayMakes and returns the liquid effect overlay.
make_state_layerReturns a list of over and underlays for different liquid states.
reagents_to_textCreates a string of the reagents that make up this liquid.

Var Details

liquid_state_messages

State-specific message chunks for examine_turf()

Proc Details

examine_turf

Handles COMSIG_ATOM_EXAMINE for the turf.

+

Adds reagent info to examine text. +Arguments:

+
    +
  • source - the turf we're peekin at
  • +
  • examiner - the user
  • +
  • examine_text - the examine list
  • +

make_liquid_overlay

Makes and returns the liquid effect overlay.

+

Arguments:

+
    +
  • overlay_state - the icon state of the new overlay
  • +
  • overlay_layer - the layer
  • +
  • overlay_plane - the plane
  • +

make_state_layer

Returns a list of over and underlays for different liquid states.

+

Arguments:

+
    +
  • state - the stage number.
  • +
  • has_top - if this stage has a top.
  • +

reagents_to_text

Creates a string of the reagents that make up this liquid.

+

Puts the reagent(s) that make up the liquid into string form e.g. "plasma" or "plasma and water", or 'plasma, milk, and water' depending on how many reagents there are.

+

Returns the reagents list string or a generic "liquid" if there are no reagents somehow

\ No newline at end of file diff --git a/obj/effect/abstract/liquid_turf/pwr_gamr.html b/obj/effect/abstract/liquid_turf/pwr_gamr.html new file mode 100644 index 0000000000000..b4692fc024af7 --- /dev/null +++ b/obj/effect/abstract/liquid_turf/pwr_gamr.html @@ -0,0 +1 @@ +/obj/effect/abstract/liquid_turf/pwr_gamr - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pwr_gamr

Vars

starting_mixturethe starting mixture for the liquid
starting_tempthe starting temp for the liquid

Var Details

starting_mixture

the starting mixture for the liquid

starting_temp

the starting temp for the liquid

\ No newline at end of file diff --git a/obj/effect/abstract/particle_holder.html b/obj/effect/abstract/particle_holder.html new file mode 100644 index 0000000000000..49f2051ca0daa --- /dev/null +++ b/obj/effect/abstract/particle_holder.html @@ -0,0 +1,6 @@ +/obj/effect/abstract/particle_holder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

particle_holder

objects can only have one particle on them at a time, so we use these abstract effects to hold and display the effects. You know, so multiple particle effects can exist at once. +also because some objects do not display particles due to how their visuals are built

Vars

particle_flagsHolds info about how this particle emitter works +See \code__DEFINES\particles.dm

Procs

on_movesignal called when a parent that's been hooked into this moves +does a variety of checks to ensure overrides work out properly
parent_deletedNon movables don't delete contents on destroy, so we gotta do this
set_particle_positionSets the particles position to the passed coordinates

Var Details

particle_flags

Holds info about how this particle emitter works +See \code__DEFINES\particles.dm

Proc Details

on_move

signal called when a parent that's been hooked into this moves +does a variety of checks to ensure overrides work out properly

parent_deleted

Non movables don't delete contents on destroy, so we gotta do this

set_particle_position

Sets the particles position to the passed coordinates

\ No newline at end of file diff --git a/obj/effect/abstract/surveillance_snare.html b/obj/effect/abstract/surveillance_snare.html new file mode 100644 index 0000000000000..e5a7c3ca71c5f --- /dev/null +++ b/obj/effect/abstract/surveillance_snare.html @@ -0,0 +1 @@ +/obj/effect/abstract/surveillance_snare - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

surveillance_snare

An invisible marker placed by a ranged guardian, alerts the owner when crossed

Vars

ownerWho do we notify when someone steps on us?

Procs

assign_ownerSet up crossed notification
on_enteredWhen crossed notify our owner
owner_destroyedIf the person who placed us doesn't exist we might as well die

Var Details

owner

Who do we notify when someone steps on us?

Proc Details

assign_owner

Set up crossed notification

on_entered

When crossed notify our owner

owner_destroyed

If the person who placed us doesn't exist we might as well die

\ No newline at end of file diff --git a/obj/effect/abstract/voidball.html b/obj/effect/abstract/voidball.html new file mode 100644 index 0000000000000..e487f40708df9 --- /dev/null +++ b/obj/effect/abstract/voidball.html @@ -0,0 +1 @@ +/obj/effect/abstract/voidball - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

voidball

Procs

animate_closingPlays a closing animation
animate_openingPlays a opening animation

Proc Details

animate_closing

Plays a closing animation

animate_opening

Plays a opening animation

\ No newline at end of file diff --git a/obj/effect/anomaly.html b/obj/effect/anomaly.html new file mode 100644 index 0000000000000..46e3fd0bbc0c2 --- /dev/null +++ b/obj/effect/anomaly.html @@ -0,0 +1 @@ +/obj/effect/anomaly - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

anomaly

Vars

drops_coreDo we drop a core when we're neutralized?
immortalDo we keep on living forever?
move_chanceChance per second that we will move

Procs

move_anomalyMove in a direction
stabilizeStabilize an anomaly, letting it stay around forever or untill destabilizes by a player. An anomaly without a core can't be signalled, but can be destabilized

Var Details

drops_core

Do we drop a core when we're neutralized?

immortal

Do we keep on living forever?

move_chance

Chance per second that we will move

Proc Details

move_anomaly

Move in a direction

stabilize

Stabilize an anomaly, letting it stay around forever or untill destabilizes by a player. An anomaly without a core can't be signalled, but can be destabilized

\ No newline at end of file diff --git a/obj/effect/anomaly/bioscrambler.html b/obj/effect/anomaly/bioscrambler.html new file mode 100644 index 0000000000000..8da4a1950199b --- /dev/null +++ b/obj/effect/anomaly/bioscrambler.html @@ -0,0 +1 @@ +/obj/effect/anomaly/bioscrambler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bioscrambler

Vars

pulse_cooldownCooldown for every anomaly pulse
pulse_delayHow many seconds between each anomaly pulses
pursuit_targetWho are we moving towards?
rangeRange of the anomaly pulse

Procs

find_nearest_targetReturns the closest conscious carbon on our z level or null if there somehow isn't one
update_targetSelect a new target if we need one

Var Details

pulse_cooldown

Cooldown for every anomaly pulse

pulse_delay

How many seconds between each anomaly pulses

pursuit_target

Who are we moving towards?

range

Range of the anomaly pulse

Proc Details

find_nearest_target

Returns the closest conscious carbon on our z level or null if there somehow isn't one

update_target

Select a new target if we need one

\ No newline at end of file diff --git a/obj/effect/anomaly/bluespace.html b/obj/effect/anomaly/bluespace.html new file mode 100644 index 0000000000000..0491d882ae67c --- /dev/null +++ b/obj/effect/anomaly/bluespace.html @@ -0,0 +1 @@ +/obj/effect/anomaly/bluespace - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bluespace

Vars

teleport_distanceDistance we can teleport someone passively
teleport_rangerange from which we can teleport someone

Var Details

teleport_distance

Distance we can teleport someone passively

teleport_range

range from which we can teleport someone

\ No newline at end of file diff --git a/obj/effect/anomaly/dimensional.html b/obj/effect/anomaly/dimensional.html new file mode 100644 index 0000000000000..b3a067868ac32 --- /dev/null +++ b/obj/effect/anomaly/dimensional.html @@ -0,0 +1,3 @@ +/obj/effect/anomaly/dimensional - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dimensional

Vars

rangeRange of effect, if left alone anomaly will convert a 2(range)+1 squared area.
target_turfsList of turfs this anomaly will try to transform before relocating
themeCurrent anomaly 'theme', dictates what tiles to create.
theme_iconEffect displaying on the anomaly to represent the theme.

Procs

apply_theme_iconApplies an overlay icon based on the current theme.
prepare_areaPrepare a new area for transformation into a new theme. +Optionally pass in the typepath of an anomaly theme to use that one.
relocateMoves the anomaly somewhere else and announces it.
transmute_areaTransforms a turf in our prepared area.

Var Details

range

Range of effect, if left alone anomaly will convert a 2(range)+1 squared area.

target_turfs

List of turfs this anomaly will try to transform before relocating

theme

Current anomaly 'theme', dictates what tiles to create.

theme_icon

Effect displaying on the anomaly to represent the theme.

Proc Details

apply_theme_icon

Applies an overlay icon based on the current theme.

prepare_area

Prepare a new area for transformation into a new theme. +Optionally pass in the typepath of an anomaly theme to use that one.

relocate

Moves the anomaly somewhere else and announces it.

transmute_area

Transforms a turf in our prepared area.

\ No newline at end of file diff --git a/obj/effect/anomaly/ectoplasm.html b/obj/effect/anomaly/ectoplasm.html new file mode 100644 index 0000000000000..2026aabb06b6a --- /dev/null +++ b/obj/effect/anomaly/ectoplasm.html @@ -0,0 +1,3 @@ +/obj/effect/anomaly/ectoplasm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ectoplasm

Vars

effect_powerThe numerical power of the anomaly. Calculated in anomalyEffect. Also used in determining the category of detonation effects.
ghosts_orbitingThe actual number of ghosts orbiting the anomaly.
override_ghostsBlocks the anomaly from updating ghost count. Used in case an admin wants to rig the anomaly to be a certain size or intensity.

Procs

intensity_updateManages updating the sprite for the anomaly based on how many orbiters it has.

Var Details

effect_power

The numerical power of the anomaly. Calculated in anomalyEffect. Also used in determining the category of detonation effects.

ghosts_orbiting

The actual number of ghosts orbiting the anomaly.

override_ghosts

Blocks the anomaly from updating ghost count. Used in case an admin wants to rig the anomaly to be a certain size or intensity.

Proc Details

intensity_update

Manages updating the sprite for the anomaly based on how many orbiters it has.

+

A check that is run to determine which sprite the anoamly should currently be displaying. +With 50% or more participation, the "heavy" sprite is used. Otherwise, it is reverted to the normal anomaly sprite.

\ No newline at end of file diff --git a/obj/effect/anomaly/flux/big.html b/obj/effect/anomaly/flux/big.html new file mode 100644 index 0000000000000..77b617248c1cf --- /dev/null +++ b/obj/effect/anomaly/flux/big.html @@ -0,0 +1 @@ +/obj/effect/anomaly/flux/big - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

big

Bigger, meaner, immortal flux anomaly

Vars

zap_flagsthe zappy flags
zap_powerstrength of the zappy
zap_rangerange in whuich we zap

Var Details

zap_flags

the zappy flags

zap_power

strength of the zappy

zap_range

range in whuich we zap

\ No newline at end of file diff --git a/obj/effect/anomaly/grav.html b/obj/effect/anomaly/grav.html new file mode 100644 index 0000000000000..9e3009700b582 --- /dev/null +++ b/obj/effect/anomaly/grav.html @@ -0,0 +1 @@ +/obj/effect/anomaly/grav - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

grav

Vars

warpWarp effect holder for displacement filter to "pulse" the anomaly

Var Details

warp

Warp effect holder for displacement filter to "pulse" the anomaly

\ No newline at end of file diff --git a/obj/effect/anomaly/hallucination.html b/obj/effect/anomaly/hallucination.html new file mode 100644 index 0000000000000..ad29cb750ff5d --- /dev/null +++ b/obj/effect/anomaly/hallucination.html @@ -0,0 +1 @@ +/obj/effect/anomaly/hallucination - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hallucination

Vars

messagesMessages sent to people feeling the pulses
release_delayHow many seconds between each small hallucination pulses
ticksTime passed since the last effect, increased by seconds_per_tick of the SSobj

Var Details

messages

Messages sent to people feeling the pulses

release_delay

How many seconds between each small hallucination pulses

ticks

Time passed since the last effect, increased by seconds_per_tick of the SSobj

\ No newline at end of file diff --git a/obj/effect/anomaly/hallucination/decoy.html b/obj/effect/anomaly/hallucination/decoy.html new file mode 100644 index 0000000000000..b388263ada0bc --- /dev/null +++ b/obj/effect/anomaly/hallucination/decoy.html @@ -0,0 +1 @@ +/obj/effect/anomaly/hallucination/decoy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

decoy

Vars

report_textStores the fake analyzer scan text, so the result is always consistent for each anomaly.

Var Details

report_text

Stores the fake analyzer scan text, so the result is always consistent for each anomaly.

\ No newline at end of file diff --git a/obj/effect/anomaly/pyro.html b/obj/effect/anomaly/pyro.html new file mode 100644 index 0000000000000..eb73428524789 --- /dev/null +++ b/obj/effect/anomaly/pyro.html @@ -0,0 +1 @@ +/obj/effect/anomaly/pyro - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pyro

Vars

releasedelayHow many seconds between each gas release

Var Details

releasedelay

How many seconds between each gas release

\ No newline at end of file diff --git a/obj/effect/aquarium.html b/obj/effect/aquarium.html new file mode 100644 index 0000000000000..880f313eab3bf --- /dev/null +++ b/obj/effect/aquarium.html @@ -0,0 +1 @@ +/obj/effect/aquarium - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

aquarium

The visual overlay of the aquarium content. It holds a few vars that we can modity them during signals.

Vars

base_pxBase px offset of the visual object in current aquarium aka current base position
base_pyBase px offset of the visual object in current aquarium aka current base position
layer_modeHow the visual will be layered

Var Details

base_px

Base px offset of the visual object in current aquarium aka current base position

base_py

Base px offset of the visual object in current aquarium aka current base position

layer_mode

How the visual will be layered

\ No newline at end of file diff --git a/obj/effect/ash_rune.html b/obj/effect/ash_rune.html new file mode 100644 index 0000000000000..a2716b25f2ecf --- /dev/null +++ b/obj/effect/ash_rune.html @@ -0,0 +1 @@ +/obj/effect/ash_rune - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ash_rune

Vars

current_ritualthe current chosen ritual
side_runesList of connected side runes

Var Details

current_ritual

the current chosen ritual

side_runes

List of connected side runes

\ No newline at end of file diff --git a/obj/effect/baseturf_helper.html b/obj/effect/baseturf_helper.html new file mode 100644 index 0000000000000..babcb3cc64907 --- /dev/null +++ b/obj/effect/baseturf_helper.html @@ -0,0 +1 @@ +/obj/effect/baseturf_helper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

baseturf_helper

Vars

baseturfThe desired bottom turf
baseturf_to_replaceReplacing a specific turf

Procs

replace_baseturfReplaces all the requested baseturfs (usually space/baseturfbottom) with the desired baseturf. Skips if its already there

Var Details

baseturf

The desired bottom turf

baseturf_to_replace

Replacing a specific turf

Proc Details

replace_baseturf

Replaces all the requested baseturfs (usually space/baseturfbottom) with the desired baseturf. Skips if its already there

\ No newline at end of file diff --git a/obj/effect/brimbeam.html b/obj/effect/brimbeam.html new file mode 100644 index 0000000000000..315762f217c70 --- /dev/null +++ b/obj/effect/brimbeam.html @@ -0,0 +1 @@ +/obj/effect/brimbeam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

brimbeam

Segments of the actual beam, these hurt if you stand in them

Vars

creatorWho made us?

Procs

assign_creatorIgnore damage dealt to this mob
damageHurt the passed mob
disperseDisappear

Var Details

creator

Who made us?

Proc Details

assign_creator

Ignore damage dealt to this mob

damage

Hurt the passed mob

disperse

Disappear

\ No newline at end of file diff --git a/obj/effect/bug_moving.html b/obj/effect/bug_moving.html new file mode 100644 index 0000000000000..dd940d6c5d9df --- /dev/null +++ b/obj/effect/bug_moving.html @@ -0,0 +1 @@ +/obj/effect/bug_moving - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bug_moving

The effect of the bug moving towards the selected machinery to mess with.

Vars

controllerThe controller that's sending us out to the machine.
thing_moving_towardsThe machine we are trying to get remote access to.

Var Details

controller

The controller that's sending us out to the machine.

thing_moving_towards

The machine we are trying to get remote access to.

\ No newline at end of file diff --git a/obj/effect/bump_teleporter.html b/obj/effect/bump_teleporter.html new file mode 100644 index 0000000000000..10ff915626b65 --- /dev/null +++ b/obj/effect/bump_teleporter.html @@ -0,0 +1 @@ +/obj/effect/bump_teleporter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bump_teleporter

Abstract effect, that when a mob touches it, it will forceMove them to the teleporter-exit point (that matches the ID set map-side).

Vars

AllTeleportersList of all teleporters in the world.
idid of this bump_teleporter.
id_targetid of bump_teleporter which this moves you to.

Procs

teleport_actionActually move our target atom from one position to another. Return TRUE if everything is fine. Override this proc on subtypes for specific teleportation methods.
validate_setupCheck to see if our teleporter was set up correctly mapside. Return TRUE if everything is fine, FALSE if not.

Var Details

AllTeleporters

List of all teleporters in the world.

id

id of this bump_teleporter.

id_target

id of bump_teleporter which this moves you to.

Proc Details

teleport_action

Actually move our target atom from one position to another. Return TRUE if everything is fine. Override this proc on subtypes for specific teleportation methods.

validate_setup

Check to see if our teleporter was set up correctly mapside. Return TRUE if everything is fine, FALSE if not.

\ No newline at end of file diff --git a/obj/effect/bump_teleporter/filtering.html b/obj/effect/bump_teleporter/filtering.html new file mode 100644 index 0000000000000..a4c43fc272407 --- /dev/null +++ b/obj/effect/bump_teleporter/filtering.html @@ -0,0 +1 @@ +/obj/effect/bump_teleporter/filtering - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

filtering

Subtype that uses do_teleport instead, to leverage any NO_TELEPORT traits that you might need to add in a given map

Procs

teleport_actionAs promised in the name of this subtype, use do_teleport to leverage all of the filtering checks that it does.

Proc Details

teleport_action

As promised in the name of this subtype, use do_teleport to leverage all of the filtering checks that it does.

\ No newline at end of file diff --git a/obj/effect/client_image_holder.html b/obj/effect/client_image_holder.html new file mode 100644 index 0000000000000..dc31fc590f4b1 --- /dev/null +++ b/obj/effect/client_image_holder.html @@ -0,0 +1,3 @@ +/obj/effect/client_image_holder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

client_image_holder

Simple effect that holds an image +to be shown to one or multiple clients only.

+

Pass a list of mobs in initialize() that corresponds to all mobs that can see it.

Vars

image_colorOptional, the color of the image
image_iconThe icon file the image uses. If null, we have no image
image_layerThe layer of the image
image_pixel_xThe x pixel offset of the image
image_pixel_yThe y pixel offset of the image
image_planeThe plane of the image
image_stateThe icon state the image uses
shown_imageThe created image, what we look like.
who_sees_usA list of mobs which can see us.

Procs

generate_imageGenerates the image which we take on.
hide_image_fromHides the image we generated from the passed mob
regenerate_imageSimple helper for refreshing / showing the image to everyone in our list.
remove_seerSignal proc to clean up references if people who see us are deleted.
show_image_toShows the image we generated to the passed mob

Var Details

image_color

Optional, the color of the image

image_icon

The icon file the image uses. If null, we have no image

image_layer

The layer of the image

image_pixel_x

The x pixel offset of the image

image_pixel_y

The y pixel offset of the image

image_plane

The plane of the image

image_state

The icon state the image uses

shown_image

The created image, what we look like.

who_sees_us

A list of mobs which can see us.

Proc Details

generate_image

Generates the image which we take on.

hide_image_from

Hides the image we generated from the passed mob

regenerate_image

Simple helper for refreshing / showing the image to everyone in our list.

remove_seer

Signal proc to clean up references if people who see us are deleted.

show_image_to

Shows the image we generated to the passed mob

\ No newline at end of file diff --git a/obj/effect/client_image_holder/hallucination.html b/obj/effect/client_image_holder/hallucination.html new file mode 100644 index 0000000000000..ebca4cd19d69a --- /dev/null +++ b/obj/effect/client_image_holder/hallucination.html @@ -0,0 +1 @@ +/obj/effect/client_image_holder/hallucination - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hallucination

A client-side image effect tied to the existence of a hallucination.

Vars

parentThe hallucination that created us.

Procs

parent_deletingSignal proc for COMSIG_QDELETING, if our associated hallucination deletes, we should too

Var Details

parent

The hallucination that created us.

Proc Details

parent_deleting

Signal proc for COMSIG_QDELETING, if our associated hallucination deletes, we should too

\ No newline at end of file diff --git a/obj/effect/client_image_holder/hallucination/danger.html b/obj/effect/client_image_holder/hallucination/danger.html new file mode 100644 index 0000000000000..2b97e5b727256 --- /dev/null +++ b/obj/effect/client_image_holder/hallucination/danger.html @@ -0,0 +1 @@ +/obj/effect/client_image_holder/hallucination/danger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

danger

These hallucination effects cause side effects when the hallucinator walks into them.

Procs

on_hallucinator_enteredApplies effects whenever the hallucinator enters the turf with our hallucination present.

Proc Details

on_hallucinator_entered

Applies effects whenever the hallucinator enters the turf with our hallucination present.

\ No newline at end of file diff --git a/obj/effect/client_image_holder/hallucination/fake_door_lock.html b/obj/effect/client_image_holder/hallucination/fake_door_lock.html new file mode 100644 index 0000000000000..bc15ac2d896c0 --- /dev/null +++ b/obj/effect/client_image_holder/hallucination/fake_door_lock.html @@ -0,0 +1 @@ +/obj/effect/client_image_holder/hallucination/fake_door_lock - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fake_door_lock

Vars

airlockThe real airlock we're fake bolting down.

Var Details

airlock

The real airlock we're fake bolting down.

\ No newline at end of file diff --git a/obj/effect/client_image_holder/hallucination/xeno.html b/obj/effect/client_image_holder/hallucination/xeno.html new file mode 100644 index 0000000000000..3fe01b8d8d1c2 --- /dev/null +++ b/obj/effect/client_image_holder/hallucination/xeno.html @@ -0,0 +1 @@ +/obj/effect/client_image_holder/hallucination/xeno - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

xeno

The xeno hallucination that goes with the xeno attack hallucination.

Procs

set_leapingSets our icon to look like we're leaping.
set_unleapingResets our icon to our initial state.

Proc Details

set_leaping

Sets our icon to look like we're leaping.

set_unleaping

Resets our icon to our initial state.

\ No newline at end of file diff --git a/obj/effect/client_image_holder/phobetor.html b/obj/effect/client_image_holder/phobetor.html new file mode 100644 index 0000000000000..e7d6330f88b0c --- /dev/null +++ b/obj/effect/client_image_holder/phobetor.html @@ -0,0 +1 @@ +/obj/effect/client_image_holder/phobetor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Phobetor Tears

The phobetor tears created by the Brain trauma.

Vars

created_onThe time of this tear's creation
exist_lengthHow long this will exist for
linked_toThe phobetor tear this is linked to
seerThe person able to see this tear.

Var Details

created_on

The time of this tear's creation

exist_length

How long this will exist for

linked_to

The phobetor tear this is linked to

seer

The person able to see this tear.

\ No newline at end of file diff --git a/obj/effect/collapse.html b/obj/effect/collapse.html new file mode 100644 index 0000000000000..12d01bfc029b6 --- /dev/null +++ b/obj/effect/collapse.html @@ -0,0 +1 @@ +/obj/effect/collapse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

collapse

Vars

collectedweakref list of which mobs have gotten their loot from this effect.
emitted_lighta bit of light as to make less unfair deaths from the chasm

Procs

has_collectedHelper proc that resolves weakrefs to determine if collector is in collected list, returning a boolean.

Var Details

collected

weakref list of which mobs have gotten their loot from this effect.

emitted_light

a bit of light as to make less unfair deaths from the chasm

Proc Details

has_collected

Helper proc that resolves weakrefs to determine if collector is in collected list, returning a boolean.

\ No newline at end of file diff --git a/obj/effect/collapsing_demonic_portal.html b/obj/effect/collapsing_demonic_portal.html new file mode 100644 index 0000000000000..0c2f9f93f719a --- /dev/null +++ b/obj/effect/collapsing_demonic_portal.html @@ -0,0 +1 @@ +/obj/effect/collapsing_demonic_portal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

collapsing_demonic_portal

Procs

collapseHandles portal deletion
drop_lootDrops loot from the portal

Proc Details

collapse

Handles portal deletion

drop_loot

Drops loot from the portal

\ No newline at end of file diff --git a/obj/effect/cosmic_rune.html b/obj/effect/cosmic_rune.html new file mode 100644 index 0000000000000..2d7326c844486 --- /dev/null +++ b/obj/effect/cosmic_rune.html @@ -0,0 +1 @@ +/obj/effect/cosmic_rune - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cosmic_rune

A rune that allows you to teleport to the location of a linked rune.

Vars

linked_runeThe other rune this rune is linked with
rune_effectEffect for when someone teleports

Procs

fail_invokeFor if someone failed to invoke the rune
invokeFor invoking the rune
link_runeFor linking a new rune
unlink_runeUsed for unlinking the other rune if this rune gets destroyed

Var Details

linked_rune

The other rune this rune is linked with

rune_effect

Effect for when someone teleports

Proc Details

fail_invoke

For if someone failed to invoke the rune

invoke

For invoking the rune

For linking a new rune

Used for unlinking the other rune if this rune gets destroyed

\ No newline at end of file diff --git a/obj/effect/cross_action/spacetime_dist.html b/obj/effect/cross_action/spacetime_dist.html new file mode 100644 index 0000000000000..6b39faa063125 --- /dev/null +++ b/obj/effect/cross_action/spacetime_dist.html @@ -0,0 +1 @@ +/obj/effect/cross_action/spacetime_dist - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spacetime_dist

Vars

antimagic_flagsA flags which save people from being thrown about

Var Details

antimagic_flags

A flags which save people from being thrown about

\ No newline at end of file diff --git a/obj/effect/decal.html b/obj/effect/decal.html new file mode 100644 index 0000000000000..91c9782ae5ee2 --- /dev/null +++ b/obj/effect/decal.html @@ -0,0 +1 @@ +/obj/effect/decal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

decal

Procs

NeverShouldHaveComeHereChecks if we are allowed to be in here_turf, and returns that result. Subtypes should override this when necessary.

Proc Details

NeverShouldHaveComeHere

Checks if we are allowed to be in here_turf, and returns that result. Subtypes should override this when necessary.

\ No newline at end of file diff --git a/obj/effect/decal/chempuff.html b/obj/effect/decal/chempuff.html new file mode 100644 index 0000000000000..9bf61d47e109d --- /dev/null +++ b/obj/effect/decal/chempuff.html @@ -0,0 +1,3 @@ +/obj/effect/decal/chempuff - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chempuff

Vars

lifetimeHow many interactions we have left before we disappear early
logging_stringString used in combat logs containing reagents present for when the puff hits something
sprayerThe sprayer who fired this puff
streamAre we a part of a stream?
userThe mob who sourced this puff, if one exists

Procs

spray_down_atomActually handles exposing the passed atom to the reagents and logging
spray_down_turfHandles going through every movable on the passed turf and calling [spray_down_atom] on them.

Var Details

lifetime

How many interactions we have left before we disappear early

logging_string

String used in combat logs containing reagents present for when the puff hits something

sprayer

The sprayer who fired this puff

stream

Are we a part of a stream?

user

The mob who sourced this puff, if one exists

Proc Details

spray_down_atom

Actually handles exposing the passed atom to the reagents and logging

spray_down_turf

Handles going through every movable on the passed turf and calling [spray_down_atom] on them.

+

[travelled_max_distance] is used to determine if we're at the end of the life, as in some +contexts an atom may or may not end up being exposed depending on how far we've travelled.

\ No newline at end of file diff --git a/obj/effect/decal/cleanable.html b/obj/effect/decal/cleanable.html new file mode 100644 index 0000000000000..6976551749c5e --- /dev/null +++ b/obj/effect/decal/cleanable.html @@ -0,0 +1 @@ +/obj/effect/decal/cleanable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cleanable

Vars

blood_stateI'm sorry but cleanable/blood code is ass, and so is blood_DNA
bloodiness0-100, amount of blood in this decal, used for making footprints and affecting the alpha of bloody footprints
clean_typeThe type of cleaning required to clean the decal. See __DEFINES/cleaning.dm for the options
decal_reagentThe reagent this decal holds. Leave blank for none.
mergeable_decalWhen two of these are on a same tile or do we need to merge them into just one?
reagent_amountThe amount of reagent this decal holds, if decal_reagent is defined

Procs

can_bloodcrawl_inChecks if this decal is a valid decal that can be blood crawled in.
get_blood_colorGets the color associated with the any blood present on this decal. If there is no blood, returns null.

Var Details

blood_state

I'm sorry but cleanable/blood code is ass, and so is blood_DNA

bloodiness

0-100, amount of blood in this decal, used for making footprints and affecting the alpha of bloody footprints

clean_type

The type of cleaning required to clean the decal. See __DEFINES/cleaning.dm for the options

decal_reagent

The reagent this decal holds. Leave blank for none.

mergeable_decal

When two of these are on a same tile or do we need to merge them into just one?

reagent_amount

The amount of reagent this decal holds, if decal_reagent is defined

Proc Details

can_bloodcrawl_in

Checks if this decal is a valid decal that can be blood crawled in.

get_blood_color

Gets the color associated with the any blood present on this decal. If there is no blood, returns null.

\ No newline at end of file diff --git a/obj/effect/decal/cleanable/ants.html b/obj/effect/decal/cleanable/ants.html new file mode 100644 index 0000000000000..4155609839323 --- /dev/null +++ b/obj/effect/decal/cleanable/ants.html @@ -0,0 +1 @@ +/obj/effect/decal/cleanable/ants - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ants

Vars

bite_soundSound the ants make when biting

Var Details

bite_sound

Sound the ants make when biting

\ No newline at end of file diff --git a/obj/effect/decal/cleanable/blood.html b/obj/effect/decal/cleanable/blood.html new file mode 100644 index 0000000000000..d83fac1b676f1 --- /dev/null +++ b/obj/effect/decal/cleanable/blood.html @@ -0,0 +1 @@ +/obj/effect/decal/cleanable/blood - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

blood

Procs

dryThis is what actually "dries" the blood. Returns true if it's all out of blood to dry, and false otherwise

Proc Details

dry

This is what actually "dries" the blood. Returns true if it's all out of blood to dry, and false otherwise

\ No newline at end of file diff --git a/obj/effect/decal/cleanable/blood/footprints.html b/obj/effect/decal/cleanable/blood/footprints.html new file mode 100644 index 0000000000000..944c4a270eb46 --- /dev/null +++ b/obj/effect/decal/cleanable/blood/footprints.html @@ -0,0 +1 @@ +/obj/effect/decal/cleanable/blood/footprints - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

footprints

Vars

shoe_typesList of shoe or other clothing that covers feet types that have made footprints here.
species_typesList of species that have made footprints here.

Var Details

shoe_types

List of shoe or other clothing that covers feet types that have made footprints here.

species_types

List of species that have made footprints here.

\ No newline at end of file diff --git a/obj/effect/decal/cleanable/blood/hitsplatter.html b/obj/effect/decal/cleanable/blood/hitsplatter.html new file mode 100644 index 0000000000000..d88ff209ea5c2 --- /dev/null +++ b/obj/effect/decal/cleanable/blood/hitsplatter.html @@ -0,0 +1 @@ +/obj/effect/decal/cleanable/blood/hitsplatter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hitsplatter

Vars

blood_dna_infoThe cached info about the blood
hit_endpointInsurance so that we don't keep moving once we hit a stoppoint
prev_locThe turf we just came from, so we can back up when we hit a wall
skipSkip making the final blood splatter when we're done, like if we're not in a turf
splatter_strengthHow many tiles/items/people we can paint red

Procs

fly_towardsSet the splatter up to fly through the air until it rounds out of steam or hits something
land_on_windowA special case for hitsplatters hitting windows, since those can actually be moved around, store it in the window and slap it in the vis_contents

Var Details

blood_dna_info

The cached info about the blood

hit_endpoint

Insurance so that we don't keep moving once we hit a stoppoint

prev_loc

The turf we just came from, so we can back up when we hit a wall

skip

Skip making the final blood splatter when we're done, like if we're not in a turf

splatter_strength

How many tiles/items/people we can paint red

Proc Details

fly_towards

Set the splatter up to fly through the air until it rounds out of steam or hits something

land_on_window

A special case for hitsplatters hitting windows, since those can actually be moved around, store it in the window and slap it in the vis_contents

\ No newline at end of file diff --git a/obj/effect/decal/cleanable/cargo_mark.html b/obj/effect/decal/cleanable/cargo_mark.html new file mode 100644 index 0000000000000..94b602525d238 --- /dev/null +++ b/obj/effect/decal/cleanable/cargo_mark.html @@ -0,0 +1 @@ +/obj/effect/decal/cleanable/cargo_mark - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cargo_mark

Vars

parent_itemthe reference to the item that spawned the cargo mark

Var Details

parent_item

the reference to the item that spawned the cargo mark

\ No newline at end of file diff --git a/obj/effect/decal/cleanable/crayon/puzzle.html b/obj/effect/decal/cleanable/crayon/puzzle.html new file mode 100644 index 0000000000000..78a28a26777d6 --- /dev/null +++ b/obj/effect/decal/cleanable/crayon/puzzle.html @@ -0,0 +1 @@ +/obj/effect/decal/cleanable/crayon/puzzle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

puzzle

Vars

puzzle_idThe id of the puzzle we're linked to.

Var Details

puzzle_id

The id of the puzzle we're linked to.

\ No newline at end of file diff --git a/obj/effect/decal/cleanable/fuel_pool.html b/obj/effect/decal/cleanable/fuel_pool.html new file mode 100644 index 0000000000000..030c6b7b5c19f --- /dev/null +++ b/obj/effect/decal/cleanable/fuel_pool.html @@ -0,0 +1,5 @@ +/obj/effect/decal/cleanable/fuel_pool - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fuel_pool

Vars

burn_amountMaximum amount of hotspots this pool can create before deleting itself
burningIs this fuel pool currently burning?
hotspot_typeType of hotspot fuel pool spawns upon being ignited

Procs

burn_processSpends 1 burn_amount and spawns a hotspot. If burn_amount is equal to 0, deletes the fuel pool. +Else, queues another call of this proc upon hotspot getting deleted and ignites other fuel pools around itself after 0.5 seconds. +THIS SHOULD NOT BE CALLED DIRECTLY.
igniteIgnites the fuel pool. This should be the only way to ignite fuel pools.
ignite_othersIgnites other oil pools around itself.

Var Details

burn_amount

Maximum amount of hotspots this pool can create before deleting itself

burning

Is this fuel pool currently burning?

hotspot_type

Type of hotspot fuel pool spawns upon being ignited

Proc Details

burn_process

Spends 1 burn_amount and spawns a hotspot. If burn_amount is equal to 0, deletes the fuel pool. +Else, queues another call of this proc upon hotspot getting deleted and ignites other fuel pools around itself after 0.5 seconds. +THIS SHOULD NOT BE CALLED DIRECTLY.

ignite

Ignites the fuel pool. This should be the only way to ignite fuel pools.

ignite_others

Ignites other oil pools around itself.

\ No newline at end of file diff --git a/obj/effect/decal/cleanable/traitor_rune.html b/obj/effect/decal/cleanable/traitor_rune.html new file mode 100644 index 0000000000000..7953e4ca2ea49 --- /dev/null +++ b/obj/effect/decal/cleanable/traitor_rune.html @@ -0,0 +1,11 @@ +/obj/effect/decal/cleanable/traitor_rune - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

traitor_rune

Vars

clean_proofWhether we protect the rune from being cleaned up
demoraliserProximity sensor to make people sad if they're nearby
drawn_stageThe stage of drawing we have reached
protected_timerTimer until the rune can be cleaned up off the floor

Procs

set_stageSets the "drawing stage" of the rune. +This affects the appearance, behaviour, and description of the effect.
slipMakes someone fall over. If it's not the traitor, this counts as demoralising the crew.

Var Details

clean_proof

Whether we protect the rune from being cleaned up

demoraliser

Proximity sensor to make people sad if they're nearby

drawn_stage

The stage of drawing we have reached

protected_timer

Timer until the rune can be cleaned up off the floor

Proc Details

set_stage

Sets the "drawing stage" of the rune. +This affects the appearance, behaviour, and description of the effect.

+

Arguments

+
    +
  • stage - new stage to apply
  • +

slip

Makes someone fall over. If it's not the traitor, this counts as demoralising the crew.

+

Arguments

+
    +
  • victim - whoever just slipped, point and laugh at them
  • +
\ No newline at end of file diff --git a/obj/effect/decal/conveyor_sorter.html b/obj/effect/decal/conveyor_sorter.html new file mode 100644 index 0000000000000..10e6432100705 --- /dev/null +++ b/obj/effect/decal/conveyor_sorter.html @@ -0,0 +1 @@ +/obj/effect/decal/conveyor_sorter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

conveyor_sorter

Vars

parent_itemthe parent conveyor sorter lister item, used for deletion
sorting_listthe list of items that will be sorted to the sorted direction
use_cooldownTo prevent spam

Var Details

parent_item

the parent conveyor sorter lister item, used for deletion

sorting_list

the list of items that will be sorted to the sorted direction

use_cooldown

To prevent spam

\ No newline at end of file diff --git a/obj/effect/decal/puzzle_dots.html b/obj/effect/decal/puzzle_dots.html new file mode 100644 index 0000000000000..1f602ac3403c1 --- /dev/null +++ b/obj/effect/decal/puzzle_dots.html @@ -0,0 +1 @@ +/obj/effect/decal/puzzle_dots - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

puzzle_dots

A dotted board that can be used as clue for PIN puzzle machinery

Vars

idThe id of the puzzle we're linked to.

Var Details

id

The id of the puzzle we're linked to.

\ No newline at end of file diff --git a/obj/effect/decal/remains/human/smokey.html b/obj/effect/decal/remains/human/smokey.html new file mode 100644 index 0000000000000..303029e60d53e --- /dev/null +++ b/obj/effect/decal/remains/human/smokey.html @@ -0,0 +1 @@ +/obj/effect/decal/remains/human/smokey - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

smokey

Vars

gas_cooldownA cooldown for how frequently the gas is released when disturbed.
gas_cooldown_lengthThe length of the aforementioned cooldown.
proximity_monitorOur proximity monitor, for detecting nearby looters.
that_shit_that_killed_saddamThe reagent we will release when our remains are disturbed.

Procs

release_smokeReleases a cloud of smoke based on the randomly generated reagent in Initialize().

Var Details

gas_cooldown

A cooldown for how frequently the gas is released when disturbed.

gas_cooldown_length

The length of the aforementioned cooldown.

proximity_monitor

Our proximity monitor, for detecting nearby looters.

that_shit_that_killed_saddam

The reagent we will release when our remains are disturbed.

Proc Details

release_smoke

Releases a cloud of smoke based on the randomly generated reagent in Initialize().

\ No newline at end of file diff --git a/obj/effect/dummy/lighting_obj.html b/obj/effect/dummy/lighting_obj.html new file mode 100644 index 0000000000000..008a421c238a5 --- /dev/null +++ b/obj/effect/dummy/lighting_obj.html @@ -0,0 +1,3 @@ +/obj/effect/dummy/lighting_obj - /tg/ Station 13
/tg/ Station 13 - Modules - Types

lighting_obj

Basically, a fake object that emits light.

+

Why is this used sometimes instead of giving atoms light values directly? +Because using these, you can have multiple light sources in a single object.

\ No newline at end of file diff --git a/obj/effect/dummy/phased_mob.html b/obj/effect/dummy/phased_mob.html new file mode 100644 index 0000000000000..3133c848cb5f4 --- /dev/null +++ b/obj/effect/dummy/phased_mob.html @@ -0,0 +1 @@ +/obj/effect/dummy/phased_mob - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

phased_mob

Vars

jaunterThe movable which's jaunting in this dummy
movedelayThe delay between moves while jaunted
movespeedThe speed of movement while jaunted

Procs

eject_jaunterRemoves [jaunter] from our phased mob
on_stat_changeSignal proc for COMSIG_MOB_STATCHANGE, to throw us out of the jaunt if we lose consciousness.
phased_checkChecks if the conditions are valid to be able to phase. Returns a turf destination if positive.
set_jaunterSets [new_jaunter] as our jaunter, forcemoves them into our contents

Var Details

jaunter

The movable which's jaunting in this dummy

movedelay

The delay between moves while jaunted

movespeed

The speed of movement while jaunted

Proc Details

eject_jaunter

Removes [jaunter] from our phased mob

on_stat_change

Signal proc for COMSIG_MOB_STATCHANGE, to throw us out of the jaunt if we lose consciousness.

phased_check

Checks if the conditions are valid to be able to phase. Returns a turf destination if positive.

set_jaunter

Sets [new_jaunter] as our jaunter, forcemoves them into our contents

\ No newline at end of file diff --git a/obj/effect/dummy/phased_mob/shadow.html b/obj/effect/dummy/phased_mob/shadow.html new file mode 100644 index 0000000000000..496894e3872df --- /dev/null +++ b/obj/effect/dummy/phased_mob/shadow.html @@ -0,0 +1,10 @@ +/obj/effect/dummy/phased_mob/shadow - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shadow

Vars

healing_rateThe amount that shadow heals us per SSobj tick (times seconds_per_tick)
light_alert_givenHas the jaunter recently received a warning about light?
light_maxMax amount of light permitted before being kicked out
light_step_cooldownWhen cooldown is active, you are prevented from moving into tiles that would eject you from your jaunt

Procs

check_light_levelChecks the light level. If above the minimum acceptable amount (0.2), returns TRUE.
light_step_warningChecks if the user should receive a warning that they're moving into light.
reactivate_light_alertSets light_alert_given to false.

Var Details

healing_rate

The amount that shadow heals us per SSobj tick (times seconds_per_tick)

light_alert_given

Has the jaunter recently received a warning about light?

light_max

Max amount of light permitted before being kicked out

light_step_cooldown

When cooldown is active, you are prevented from moving into tiles that would eject you from your jaunt

Proc Details

check_light_level

Checks the light level. If above the minimum acceptable amount (0.2), returns TRUE.

+

Checks the light level of a given location to see if it is too bright to +continue a jaunt in. Returns FALSE if it's acceptably dark, and TRUE if it is too bright.

+
    +
  • location_to_check - The location to have its light level checked.
  • +

light_step_warning

Checks if the user should receive a warning that they're moving into light.

+

Checks the cooldown for the warning message on moving into the light. +If the message has been displayed, and the cooldown (delay period) is complete, returns TRUE.

reactivate_light_alert

Sets light_alert_given to false.

+

Sets light_alert_given to false, making the light alert pop up and intercept movement once again. +Added in its own proc to reset the alert without having to call light_step_warning().

\ No newline at end of file diff --git a/obj/effect/dummy/phased_mob/spell_jaunt.html b/obj/effect/dummy/phased_mob/spell_jaunt.html new file mode 100644 index 0000000000000..85b710ee0e592 --- /dev/null +++ b/obj/effect/dummy/phased_mob/spell_jaunt.html @@ -0,0 +1 @@ +/obj/effect/dummy/phased_mob/spell_jaunt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spell_jaunt

The dummy that holds people jaunting. Maybe one day we can replace it.

Vars

reappearingWhether we're currently reappearing - we can't move if so

Var Details

reappearing

Whether we're currently reappearing - we can't move if so

\ No newline at end of file diff --git a/obj/effect/ebeam/reacting.html b/obj/effect/ebeam/reacting.html new file mode 100644 index 0000000000000..6af021fbf55c8 --- /dev/null +++ b/obj/effect/ebeam/reacting.html @@ -0,0 +1 @@ +/obj/effect/ebeam/reacting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

reacting

A beam subtype used for advanced beams, to react to atoms entering the beam

Vars

react_on_initIf TRUE, atoms that exist in the beam's loc when inited count as "entering" the beam

Procs

beam_enteredSome atom entered the beam's line
beam_exitedSome atom exited the beam's line
beam_turfs_changedSome turf the beam covers has changed to a new turf type

Var Details

react_on_init

If TRUE, atoms that exist in the beam's loc when inited count as "entering" the beam

Proc Details

beam_entered

Some atom entered the beam's line

beam_exited

Some atom exited the beam's line

beam_turfs_changed

Some turf the beam covers has changed to a new turf type

\ No newline at end of file diff --git a/obj/effect/fishing_float.html b/obj/effect/fishing_float.html new file mode 100644 index 0000000000000..074420f4645f3 --- /dev/null +++ b/obj/effect/fishing_float.html @@ -0,0 +1,3 @@ +/obj/effect/fishing_float - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fishing_float

The visual that appears over the fishing spot

Vars

spin_frequencyA list with two keys delimiting the spinning interval in which a mouse click has to be pressed while fishing. +If set, an emissive overlay will be added, colored green when the lure is ready to be spun, otherwise red.
spin_readyIs the bait ready to be spun?

Var Details

spin_frequency

A list with two keys delimiting the spinning interval in which a mouse click has to be pressed while fishing. +If set, an emissive overlay will be added, colored green when the lure is ready to be spun, otherwise red.

spin_ready

Is the bait ready to be spun?

\ No newline at end of file diff --git a/obj/effect/floating_blade.html b/obj/effect/floating_blade.html new file mode 100644 index 0000000000000..f4bd1db923823 --- /dev/null +++ b/obj/effect/floating_blade.html @@ -0,0 +1 @@ +/obj/effect/floating_blade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

floating_blade

Vars

glow_colorThe color the knife glows around it.

Var Details

glow_color

The color the knife glows around it.

\ No newline at end of file diff --git a/obj/effect/forcefield.html b/obj/effect/forcefield.html new file mode 100644 index 0000000000000..f34f2c80c557c --- /dev/null +++ b/obj/effect/forcefield.html @@ -0,0 +1 @@ +/obj/effect/forcefield - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

forcefield

Vars

initial_durationIf set, how long the force field lasts after it's created. Set to 0 to have infinite duration forcefields.

Var Details

initial_duration

If set, how long the force field lasts after it's created. Set to 0 to have infinite duration forcefields.

\ No newline at end of file diff --git a/obj/effect/forcefield/cosmic_field.html b/obj/effect/forcefield/cosmic_field.html new file mode 100644 index 0000000000000..d7f91f386ac24 --- /dev/null +++ b/obj/effect/forcefield/cosmic_field.html @@ -0,0 +1 @@ +/obj/effect/forcefield/cosmic_field - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cosmic_field

The cosmic heretics forcefield

Vars

antimagic_flagsFlags for what antimagic can just ignore our forcefields

Var Details

antimagic_flags

Flags for what antimagic can just ignore our forcefields

\ No newline at end of file diff --git a/obj/effect/forcefield/wizard.html b/obj/effect/forcefield/wizard.html new file mode 100644 index 0000000000000..e46569ffaa1ac --- /dev/null +++ b/obj/effect/forcefield/wizard.html @@ -0,0 +1 @@ +/obj/effect/forcefield/wizard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wizard

The wizard's forcefield, summoned by forcewall

Vars

antimagic_flagsFlags for what antimagic can just ignore our forcefields
caster_weakrefA weakref to whoever casted our forcefield.

Var Details

antimagic_flags

Flags for what antimagic can just ignore our forcefields

caster_weakref

A weakref to whoever casted our forcefield.

\ No newline at end of file diff --git a/obj/effect/goliath_tentacle.html b/obj/effect/goliath_tentacle.html new file mode 100644 index 0000000000000..500c8da7f996b --- /dev/null +++ b/obj/effect/goliath_tentacle.html @@ -0,0 +1 @@ +/obj/effect/goliath_tentacle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

goliath_tentacle

A tentacle which grabs you if you don't get away from it

Vars

action_timerTimer for our current action stage
grapple_timeTime in which to grab people
max_damageUpper bound of damage to inflict
min_damageLower bound of damage to inflict

Procs

animate_grabChange to next icon state and set up grapple
grabGrab everyone we share space with. If it's nobody, go home.
retractPlay exit animation.

Var Details

action_timer

Timer for our current action stage

grapple_time

Time in which to grab people

max_damage

Upper bound of damage to inflict

min_damage

Lower bound of damage to inflict

Proc Details

animate_grab

Change to next icon state and set up grapple

grab

Grab everyone we share space with. If it's nobody, go home.

retract

Play exit animation.

\ No newline at end of file diff --git a/obj/effect/grand_rune.html b/obj/effect/grand_rune.html new file mode 100644 index 0000000000000..d6a38da789eef --- /dev/null +++ b/obj/effect/grand_rune.html @@ -0,0 +1,5 @@ +/obj/effect/grand_rune - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

grand_rune

Magic rune used in the grand ritual. +A wizard sits themselves on this thing and waves their hands for a while shouting silly words. +Then something (usually bad) happens.

Vars

cheese_sacrificedHow much cheese was sacrificed to the other realm, if any
invoke_timeTime to take per invocation of rune.
is_in_usePrevent ritual spam click.
magic_wordsMagic words you say to invoke the ritual
possible_magic_wordsThings you might yell when invoking a rune
potencyHow many prior grand rituals have been completed?
remains_typepathWhat kind of remains this rune leaves behind after completing invokation
spell_colourWhat colour you glow while channeling
times_invokedNumber of times this rune has been cast

Procs

InitializePrepare magic words and hide from silicons
add_channel_effectAdd special effects for casting a spell, basically you glow and hover in the air.
announce_runeI cast Summon Security
invoke_runeActually does the whole invoking thing
on_invocation_completeCalled when you actually finish the damn thing
remove_channel_effectRemove special effects for casting a spell
summon_round_eventTriggers some form of event somewhere on the station
tear_realityInvoking the ritual spawns up to three reality tears based on potency. +Each of these has a 50% chance to spawn already expended.
trigger_side_effectsApplies some local side effects to the area

Var Details

cheese_sacrificed

How much cheese was sacrificed to the other realm, if any

invoke_time

Time to take per invocation of rune.

is_in_use

Prevent ritual spam click.

magic_words

Magic words you say to invoke the ritual

possible_magic_words

Things you might yell when invoking a rune

potency

How many prior grand rituals have been completed?

remains_typepath

What kind of remains this rune leaves behind after completing invokation

spell_colour

What colour you glow while channeling

times_invoked

Number of times this rune has been cast

Proc Details

Initialize

Prepare magic words and hide from silicons

add_channel_effect

Add special effects for casting a spell, basically you glow and hover in the air.

announce_rune

I cast Summon Security

invoke_rune

Actually does the whole invoking thing

on_invocation_complete

Called when you actually finish the damn thing

remove_channel_effect

Remove special effects for casting a spell

summon_round_event

Triggers some form of event somewhere on the station

tear_reality

Invoking the ritual spawns up to three reality tears based on potency. +Each of these has a 50% chance to spawn already expended.

trigger_side_effects

Applies some local side effects to the area

\ No newline at end of file diff --git a/obj/effect/grand_rune/finale.html b/obj/effect/grand_rune/finale.html new file mode 100644 index 0000000000000..06765e796c97d --- /dev/null +++ b/obj/effect/grand_rune/finale.html @@ -0,0 +1 @@ +/obj/effect/grand_rune/finale - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

finale

Variant rune used for the Final Ritual

Vars

chosen_effectHas the player chosen an outcome?
dire_warnings_givenIf we need to warn the crew, have we done so?
finale_effectWhat does the player want to do?

Procs

select_finaleMake a selection from a radial menu.

Var Details

chosen_effect

Has the player chosen an outcome?

dire_warnings_given

If we need to warn the crew, have we done so?

finale_effect

What does the player want to do?

Proc Details

select_finale

Make a selection from a radial menu.

\ No newline at end of file diff --git a/obj/effect/heretic_influence.html b/obj/effect/heretic_influence.html new file mode 100644 index 0000000000000..100445bea3f1a --- /dev/null +++ b/obj/effect/heretic_influence.html @@ -0,0 +1,4 @@ +/obj/effect/heretic_influence - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

heretic_influence

Vars

being_drainedWhether we're currently being drained or not.
real_icon_stateThe icon state applied to the image created for this influence.

Procs

after_drainHandle the effects of the drain.
drain_influenceBegin to drain the influence, setting being_drained, +registering an examine signal, and beginning a do_after.
generate_nameGenerates a random name for the influence.

Var Details

being_drained

Whether we're currently being drained or not.

real_icon_state

The icon state applied to the image created for this influence.

Proc Details

after_drain

Handle the effects of the drain.

drain_influence

Begin to drain the influence, setting being_drained, +registering an examine signal, and beginning a do_after.

+

If successful, the influence is drained and deleted.

generate_name

Generates a random name for the influence.

\ No newline at end of file diff --git a/obj/effect/heretic_rune.html b/obj/effect/heretic_rune.html new file mode 100644 index 0000000000000..d1f19f04b6160 --- /dev/null +++ b/obj/effect/heretic_rune.html @@ -0,0 +1,9 @@ +/obj/effect/heretic_rune - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

heretic_rune

The heretic's rune, which they use to complete transmutation rituals.

Vars

is_in_useUsed mainly for summoning ritual to prevent spamming the rune to create millions of monsters.

Procs

do_ritualAttempt to invoke a ritual from the past list of knowledges.
try_ritualsAttempt to begin a ritual, giving them an input list to chose from. +Also ensures is_in_use is enabled and disabled before and after.

Var Details

is_in_use

Used mainly for summoning ritual to prevent spamming the rune to create millions of monsters.

Proc Details

do_ritual

Attempt to invoke a ritual from the past list of knowledges.

+

Arguments

+
    +
  • user - the heretic / the person who invoked the rune
  • +
  • knowledge_list - a non-assoc list of heretic_knowledge datums.
  • +
+

returns TRUE if any rituals passed succeeded, FALSE if they all failed.

try_rituals

Attempt to begin a ritual, giving them an input list to chose from. +Also ensures is_in_use is enabled and disabled before and after.

\ No newline at end of file diff --git a/obj/effect/hotspot.html b/obj/effect/hotspot.html new file mode 100644 index 0000000000000..0dbb5cc362d06 --- /dev/null +++ b/obj/effect/hotspot.html @@ -0,0 +1,21 @@ +/obj/effect/hotspot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hotspot

Hotspot objects interfaces with the temperature of turf gasmixtures while also providing visual effects. +One important thing to note about hotspots are that they can roughly be divided into two categories based on the bypassing variable.

Vars

bypassingWhether the hotspot becomes passive and follows the gasmix temp instead of changing it.
cold_fireAre we burning freon?
just_spawnedWhether the hotspot is new or not. Used for bypass logic.
temperatureTemperature handles the initial ignition and the colouring.
volumeVolume is the representation of how big and healthy a fire is. +Hotspot volume will be divided by turf volume to get the ratio for temperature setting on non bypassing mode. +Also some visual stuffs for fainter fires.

Procs

gauss_lerpMathematics to be used for color calculation.
perform_exposurePerform interactions between the hotspot and the gasmixture.
processRegular process proc for hotspots governed by the controller. +Handles the calling of perform_exposure() which handles the bulk of temperature processing. +Burning or fire_act() are also called by perform_exposure(). +Also handles the dying and qdeletion of the hotspot and hotspot creations on adjacent cardinal turfs. +And some visual stuffs too! Colors and fainter icons for specific conditions.

Var Details

bypassing

Whether the hotspot becomes passive and follows the gasmix temp instead of changing it.

cold_fire

Are we burning freon?

just_spawned

Whether the hotspot is new or not. Used for bypass logic.

temperature

Temperature handles the initial ignition and the colouring.

volume

Volume is the representation of how big and healthy a fire is. +Hotspot volume will be divided by turf volume to get the ratio for temperature setting on non bypassing mode. +Also some visual stuffs for fainter fires.

Proc Details

gauss_lerp

Mathematics to be used for color calculation.

perform_exposure

Perform interactions between the hotspot and the gasmixture.

+

For the first tick, hotspots will take a sample of the air in the turf, +set the temperature equal to a certain amount, and then reacts it. +In some implementations the ratio comes out to around 1, so all of the air in the turf.

+

Afterwards if the reaction is big enough it mostly just tags along the fire, +copying the temperature and handling the colouring. +If the reaction is too small it will perform like the first tick.

+

Also calls fire_act() which handles burning.

process

Regular process proc for hotspots governed by the controller. +Handles the calling of perform_exposure() which handles the bulk of temperature processing. +Burning or fire_act() are also called by perform_exposure(). +Also handles the dying and qdeletion of the hotspot and hotspot creations on adjacent cardinal turfs. +And some visual stuffs too! Colors and fainter icons for specific conditions.

\ No newline at end of file diff --git a/obj/effect/immovablerod.html b/obj/effect/immovablerod.html new file mode 100644 index 0000000000000..2e8af5f07a3ef --- /dev/null +++ b/obj/effect/immovablerod.html @@ -0,0 +1,17 @@ +/obj/effect/immovablerod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

immovablerod

"What the fuck was that?!"

Vars

destination_turfThe turf we're looking to coast to.
dnd_style_level_upThe rod levels up with each kill, increasing in size and auto-renaming itself.
loopy_rodWhether the rod can loop across other z-levels. The rod will still loop when the z-level is self-looping even if this is FALSE.
notifyWhether we notify ghosts.
num_mobs_hitHow many mobs we've penetrated one way or another
num_sentient_mobs_hitHow many mobs we've hit with clients
num_sentient_people_hitHow many people we've hit with clients
special_targetWe can designate a specific target to aim for, in which case we'll try to snipe them rather than just flying in a random direction

Procs

go_for_a_walkAllows your rod to release restraint level zero and go for a walk.
rod_vs_tram_battleRod will push the tram to a landmark if it hits the tram from the front/back +while flying parallel.
sit_stay_good_rodStops your rod's automated movement. Sit... Stay... Good rod!
suplex_rodCalled when someone manages to suplex the rod.
walk_in_directionRod will walk towards edge turf in the specified direction.

Var Details

destination_turf

The turf we're looking to coast to.

dnd_style_level_up

The rod levels up with each kill, increasing in size and auto-renaming itself.

loopy_rod

Whether the rod can loop across other z-levels. The rod will still loop when the z-level is self-looping even if this is FALSE.

notify

Whether we notify ghosts.

num_mobs_hit

How many mobs we've penetrated one way or another

num_sentient_mobs_hit

How many mobs we've hit with clients

num_sentient_people_hit

How many people we've hit with clients

special_target

We can designate a specific target to aim for, in which case we'll try to snipe them rather than just flying in a random direction

Proc Details

go_for_a_walk

Allows your rod to release restraint level zero and go for a walk.

+

If walkies_location is set, rod will move towards the location, chasing it across z-levels if necessary. +If walkies_location is not set, rod will call complete_trajectory() and follow the logic from that proc.

+

Arguments:

+
    +
  • walkies_location - Any atom that the immovable rod will now chase down as a special target.
  • +

rod_vs_tram_battle

Rod will push the tram to a landmark if it hits the tram from the front/back +while flying parallel.

sit_stay_good_rod

Stops your rod's automated movement. Sit... Stay... Good rod!

suplex_rod

Called when someone manages to suplex the rod.

+

Arguments

+
    +
  • strongman - the suplexer of the rod.
  • +

walk_in_direction

Rod will walk towards edge turf in the specified direction.

+

Arguments:

+
    +
  • direction - The direction to walk the rod towards: NORTH, SOUTH, EAST, WEST.
  • +
\ No newline at end of file diff --git a/obj/effect/immovablerod/wizard.html b/obj/effect/immovablerod/wizard.html new file mode 100644 index 0000000000000..47425b632e760 --- /dev/null +++ b/obj/effect/immovablerod/wizard.html @@ -0,0 +1,9 @@ +/obj/effect/immovablerod/wizard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wizard

Wizard Version of the Immovable Rod.

Vars

damage_bonusThe damage bonus of the rod when it smacks people.
max_distanceThe distance the rod will go.
our_wizardThe wizard who's piloting our rod.
start_turfThe turf the rod started from, to calcuate distance.

Procs

eject_wizardEject our current wizard, removing them from the rod +and fixing all of the variables we changed.
set_wizardSet wizard as our_wizard, placing them in the rod +and preparing them for travel.
stop_travelCalled when the wizard rod reaches its maximum distance +or is otherwise stopped by something. +Dumps out the wizard, and deletes.

Var Details

damage_bonus

The damage bonus of the rod when it smacks people.

max_distance

The distance the rod will go.

our_wizard

The wizard who's piloting our rod.

start_turf

The turf the rod started from, to calcuate distance.

Proc Details

eject_wizard

Eject our current wizard, removing them from the rod +and fixing all of the variables we changed.

set_wizard

Set wizard as our_wizard, placing them in the rod +and preparing them for travel.

stop_travel

Called when the wizard rod reaches its maximum distance +or is otherwise stopped by something. +Dumps out the wizard, and deletes.

\ No newline at end of file diff --git a/obj/effect/landmark/atmospheric_sanity.html b/obj/effect/landmark/atmospheric_sanity.html new file mode 100644 index 0000000000000..54502f18abe37 --- /dev/null +++ b/obj/effect/landmark/atmospheric_sanity.html @@ -0,0 +1,2 @@ +/obj/effect/landmark/atmospheric_sanity - /tg/ Station 13
/tg/ Station 13 - Modules - Types

atmospheric_sanity

Atmospheric Sanity Landmark - base

+

This is the base type for all atmospheric sanity landmarks and are used to ensure atmos connectivity is maintained to how the map designer intended.

\ No newline at end of file diff --git a/obj/effect/landmark/bitrunning/mob_segment.html b/obj/effect/landmark/bitrunning/mob_segment.html new file mode 100644 index 0000000000000..7ad4214c44aa2 --- /dev/null +++ b/obj/effect/landmark/bitrunning/mob_segment.html @@ -0,0 +1 @@ +/obj/effect/landmark/bitrunning/mob_segment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mob_segment

A location for mobs to spawn.

Procs

spawn_mobsHandles spawning mobs for this landmark. Sends a signal when done.

Proc Details

spawn_mobs

Handles spawning mobs for this landmark. Sends a signal when done.

\ No newline at end of file diff --git a/obj/effect/landmark/event_spawn.html b/obj/effect/landmark/event_spawn.html new file mode 100644 index 0000000000000..a7d296d159991 --- /dev/null +++ b/obj/effect/landmark/event_spawn.html @@ -0,0 +1,4 @@ +/obj/effect/landmark/event_spawn - /tg/ Station 13
/tg/ Station 13 - Modules - Types

event_spawn

Generic event spawn points

+

These are placed in locales where there are likely to be players, and places which are identifiable at a glance - +Such as public hallways, department rooms, head of staff offices, and non-generic maintenance locations

+

Used in events to cause effects in locations where it is likely to effect players

\ No newline at end of file diff --git a/obj/effect/landmark/heretic.html b/obj/effect/landmark/heretic.html new file mode 100644 index 0000000000000..5f26d2e79bf2e --- /dev/null +++ b/obj/effect/landmark/heretic.html @@ -0,0 +1 @@ +/obj/effect/landmark/heretic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

heretic

Lardmarks meant to designate where heretic sacrifices are sent.

Vars

for_heretic_pathWhat path this landmark is intended for.

Var Details

for_heretic_path

What path this landmark is intended for.

\ No newline at end of file diff --git a/obj/effect/landmark/start/depsec.html b/obj/effect/landmark/start/depsec.html new file mode 100644 index 0000000000000..8be0df91b70a9 --- /dev/null +++ b/obj/effect/landmark/start/depsec.html @@ -0,0 +1 @@ +/obj/effect/landmark/start/depsec - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

depsec

Vars

departmentWhat department this spawner is for

Var Details

department

What department this spawner is for

\ No newline at end of file diff --git a/obj/effect/landmark/start/hangover.html b/obj/effect/landmark/start/hangover.html new file mode 100644 index 0000000000000..4a92be420c18d --- /dev/null +++ b/obj/effect/landmark/start/hangover.html @@ -0,0 +1 @@ +/obj/effect/landmark/start/hangover - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hangover

Vars

hangover_debrisA list of everything this hangover spawn created as part of the hangover station trait
party_debrisA list of everything this hangover spawn created as part of the birthday station trait

Procs

make_hungoverSpawns the mob with some drugginess/drunkeness, and some disgust.

Var Details

hangover_debris

A list of everything this hangover spawn created as part of the hangover station trait

party_debris

A list of everything this hangover spawn created as part of the birthday station trait

Proc Details

make_hungover

Spawns the mob with some drugginess/drunkeness, and some disgust.

\ No newline at end of file diff --git a/obj/effect/landmark/transport/nav_beacon/tram.html b/obj/effect/landmark/transport/nav_beacon/tram.html new file mode 100644 index 0000000000000..980245a15c697 --- /dev/null +++ b/obj/effect/landmark/transport/nav_beacon/tram.html @@ -0,0 +1 @@ +/obj/effect/landmark/transport/nav_beacon/tram - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tram

transport_controller landmarks. used to map specific destinations on the map.

Vars

platform_codeThe ID of that particular destination
specific_transport_idThe ID of the tram we're linked to
tgui_iconsIcons for the tgui console to list out for what is at this location

Var Details

platform_code

The ID of that particular destination

specific_transport_id

The ID of the tram we're linked to

tgui_icons

Icons for the tgui console to list out for what is at this location

\ No newline at end of file diff --git a/obj/effect/landmark/transport/transport_id.html b/obj/effect/landmark/transport/transport_id.html new file mode 100644 index 0000000000000..6741780157cd0 --- /dev/null +++ b/obj/effect/landmark/transport/transport_id.html @@ -0,0 +1,2 @@ +/obj/effect/landmark/transport/transport_id - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

transport_id

transport_controller landmarks. used to map in specific_transport_id to trams and elevators. when the transport_controller encounters one on a tile +it sets its specific_transport_id to that landmark. allows you to have multiple trams and multiple objects linking to their specific tram

Vars

specific_transport_idwhat specific id we give to the tram we're placed on, should explicitely set this if its a subtype, or weird things might happen

Var Details

specific_transport_id

what specific id we give to the tram we're placed on, should explicitely set this if its a subtype, or weird things might happen

\ No newline at end of file diff --git a/obj/effect/lectern_light.html b/obj/effect/lectern_light.html new file mode 100644 index 0000000000000..c0c5fc46c2bfa --- /dev/null +++ b/obj/effect/lectern_light.html @@ -0,0 +1 @@ +/obj/effect/lectern_light - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

lectern_light

Procs

closeClose the book
openOpen the book

Proc Details

close

Close the book

open

Open the book

\ No newline at end of file diff --git a/obj/effect/lock_portal.html b/obj/effect/lock_portal.html new file mode 100644 index 0000000000000..1412b96cd0ee2 --- /dev/null +++ b/obj/effect/lock_portal.html @@ -0,0 +1 @@ +/obj/effect/lock_portal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lock_portal

Vars

destinationThe knock portal we teleport to
invertedif true the heretic is teleported to a random airlock, nonheretics are sent to the target
our_airlockThe airlock we are linked to, we delete if it is destroyed

Procs

async_opendoorAsynchronous proc to unbolt, then open the passed door
delete_on_door_deleteDeletes us and our destination portal if our_airlock is destroyed
find_random_airlockReturns a random airlock on the same Z level as our portal, that isnt our airlock
on_enteredSignal handler for when our location is entered, calls teleport on the victim, if their old_loc didnt contain a portal already (to prevent loops)
teleportTeleports the teleportee, to a random airlock if the teleportee isnt a heretic, or the other portal if they are one

Var Details

destination

The knock portal we teleport to

inverted

if true the heretic is teleported to a random airlock, nonheretics are sent to the target

our_airlock

The airlock we are linked to, we delete if it is destroyed

Proc Details

async_opendoor

Asynchronous proc to unbolt, then open the passed door

delete_on_door_delete

Deletes us and our destination portal if our_airlock is destroyed

find_random_airlock

Returns a random airlock on the same Z level as our portal, that isnt our airlock

on_entered

Signal handler for when our location is entered, calls teleport on the victim, if their old_loc didnt contain a portal already (to prevent loops)

teleport

Teleports the teleportee, to a random airlock if the teleportee isnt a heretic, or the other portal if they are one

\ No newline at end of file diff --git a/obj/effect/mapping_helpers/airlock/access/any/cent_com.html b/obj/effect/mapping_helpers/airlock/access/any/cent_com.html new file mode 100644 index 0000000000000..cdf7d43137831 --- /dev/null +++ b/obj/effect/mapping_helpers/airlock/access/any/cent_com.html @@ -0,0 +1,8 @@ +/obj/effect/mapping_helpers/airlock/access/any/cent_com - /tg/ Station 13
/tg/ Station 13 - Modules - Types

cent_com

    +
  • Read the main access_helpers.dm for more information on these mapping tools.
  • +
  • TLDR:
  • +
  • Any requires ONLY THAT access defined on the ID to open the door
  • +
  • All requires THAT AND THE OTHER access defined on the ID, meaning you will need "ai_uload" and "command" to open AI Upload doors
  • +
  • For mapping examples, look at /TG/s MetaStation
  • +
  • For more information about these, see https://hackmd.io/@tgstation/ry4-gbKH5#On-Room-Structure-and-Security
  • +
\ No newline at end of file diff --git a/obj/effect/mapping_helpers/atom_injector.html b/obj/effect/mapping_helpers/atom_injector.html new file mode 100644 index 0000000000000..c7dcecb619afa --- /dev/null +++ b/obj/effect/mapping_helpers/atom_injector.html @@ -0,0 +1 @@ +/obj/effect/mapping_helpers/atom_injector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

atom_injector

Helpers used for injecting stuff into atoms on the map.

Vars

first_match_onlyWill inject into all fitting the criteria if false, otherwise first found.
target_nameWill inject into atoms with this name.
target_typeWill inject into atoms of this type.

Procs

check_validityChecks if whatever we are trying to inject with is valid
generate_stack_traceGenerates text for our stack trace
injectInjects our stuff into the atom

Var Details

first_match_only

Will inject into all fitting the criteria if false, otherwise first found.

target_name

Will inject into atoms with this name.

target_type

Will inject into atoms of this type.

Proc Details

check_validity

Checks if whatever we are trying to inject with is valid

generate_stack_trace

Generates text for our stack trace

inject

Injects our stuff into the atom

\ No newline at end of file diff --git a/obj/effect/mapping_helpers/atom_injector/component_injector.html b/obj/effect/mapping_helpers/atom_injector/component_injector.html new file mode 100644 index 0000000000000..2a93577d71f80 --- /dev/null +++ b/obj/effect/mapping_helpers/atom_injector/component_injector.html @@ -0,0 +1 @@ +/obj/effect/mapping_helpers/atom_injector/component_injector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

component_injector

This helper applies components to things on the map directly.

Vars

component_argsArguments for the component.
component_typeTypepath of the component.

Var Details

component_args

Arguments for the component.

component_type

Typepath of the component.

\ No newline at end of file diff --git a/obj/effect/mapping_helpers/atom_injector/custom_icon.html b/obj/effect/mapping_helpers/atom_injector/custom_icon.html new file mode 100644 index 0000000000000..152cde80f9436 --- /dev/null +++ b/obj/effect/mapping_helpers/atom_injector/custom_icon.html @@ -0,0 +1 @@ +/obj/effect/mapping_helpers/atom_injector/custom_icon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

custom_icon

Fetches an external dmi and applies to the target object

Vars

icon_fileThe icon file we fetched from the http get request.
icon_urlThis should return raw dmi in response to http get request. For example: "https://github.com/tgstation/SS13-sprites/raw/master/mob/medu.dmi?raw=true"
target_variableThis is the var that will be set with the fetched icon. In case you want to set some secondary icon sheets like inhands and such.

Var Details

icon_file

The icon file we fetched from the http get request.

icon_url

This should return raw dmi in response to http get request. For example: "https://github.com/tgstation/SS13-sprites/raw/master/mob/medu.dmi?raw=true"

target_variable

This is the var that will be set with the fetched icon. In case you want to set some secondary icon sheets like inhands and such.

\ No newline at end of file diff --git a/obj/effect/mapping_helpers/atom_injector/custom_sound.html b/obj/effect/mapping_helpers/atom_injector/custom_sound.html new file mode 100644 index 0000000000000..f8f3d21744ed7 --- /dev/null +++ b/obj/effect/mapping_helpers/atom_injector/custom_sound.html @@ -0,0 +1 @@ +/obj/effect/mapping_helpers/atom_injector/custom_sound - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

custom_sound

Fetches an external sound and applies to the target object

Vars

sound_fileThe sound file we fetched from the http get request.
sound_urlThis should return raw sound in response to http get request. For example: "https://github.com/tgstation/tgstation/blob/master/sound/misc/bang.ogg?raw=true"
target_variableThis is the var that will be set with the fetched sound.

Var Details

sound_file

The sound file we fetched from the http get request.

sound_url

This should return raw sound in response to http get request. For example: "https://github.com/tgstation/tgstation/blob/master/sound/misc/bang.ogg?raw=true"

target_variable

This is the var that will be set with the fetched sound.

\ No newline at end of file diff --git a/obj/effect/mapping_helpers/atom_injector/element_injector.html b/obj/effect/mapping_helpers/atom_injector/element_injector.html new file mode 100644 index 0000000000000..722d6636db9e7 --- /dev/null +++ b/obj/effect/mapping_helpers/atom_injector/element_injector.html @@ -0,0 +1 @@ +/obj/effect/mapping_helpers/atom_injector/element_injector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

element_injector

This helper applies elements to things on the map directly.

Vars

element_argsArguments for the element.
element_typeTypepath of the element.

Var Details

element_args

Arguments for the element.

element_type

Typepath of the element.

\ No newline at end of file diff --git a/obj/effect/mapping_helpers/atom_injector/human_icon_injector.html b/obj/effect/mapping_helpers/atom_injector/human_icon_injector.html new file mode 100644 index 0000000000000..c2104dfc21c1b --- /dev/null +++ b/obj/effect/mapping_helpers/atom_injector/human_icon_injector.html @@ -0,0 +1 @@ +/obj/effect/mapping_helpers/atom_injector/human_icon_injector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

human_icon_injector

This helper applies dynamic human icons to things on the map

Vars

animatedDo we draw more than one frame for the mob?
bloody_slotsWhich slots on the mob should be bloody?
l_handPath of the left hand item we give the human.
mob_spawn_pathPath of the mob spawner we base the human off of.
outfit_pathPath of the outfit we give the human.
r_handPath of the right hand item we give the human.
species_pathPath of the species we give the human.

Var Details

animated

Do we draw more than one frame for the mob?

bloody_slots

Which slots on the mob should be bloody?

l_hand

Path of the left hand item we give the human.

mob_spawn_path

Path of the mob spawner we base the human off of.

outfit_path

Path of the outfit we give the human.

r_hand

Path of the right hand item we give the human.

species_path

Path of the species we give the human.

\ No newline at end of file diff --git a/obj/effect/mapping_helpers/atom_injector/trait_injector.html b/obj/effect/mapping_helpers/atom_injector/trait_injector.html new file mode 100644 index 0000000000000..903844ce75c49 --- /dev/null +++ b/obj/effect/mapping_helpers/atom_injector/trait_injector.html @@ -0,0 +1 @@ +/obj/effect/mapping_helpers/atom_injector/trait_injector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

trait_injector

This helper applies traits to things on the map directly.

Vars

trait_nameName of the trait, in the lower-case text (NOT the upper-case define) form.

Var Details

trait_name

Name of the trait, in the lower-case text (NOT the upper-case define) form.

\ No newline at end of file diff --git a/obj/effect/mapping_helpers/basic_mob_flags.html b/obj/effect/mapping_helpers/basic_mob_flags.html new file mode 100644 index 0000000000000..9707d3c998eee --- /dev/null +++ b/obj/effect/mapping_helpers/basic_mob_flags.html @@ -0,0 +1 @@ +/obj/effect/mapping_helpers/basic_mob_flags - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

basic_mob_flags

Basic mob flag helpers for things like deleting on death.

Vars

flag_to_giveThe basic mob flag that we're adding to all basic mobs on the turf.

Var Details

flag_to_give

The basic mob flag that we're adding to all basic mobs on the turf.

\ No newline at end of file diff --git a/obj/effect/mapping_helpers/circuit_spawner.html b/obj/effect/mapping_helpers/circuit_spawner.html new file mode 100644 index 0000000000000..f32ee971fd731 --- /dev/null +++ b/obj/effect/mapping_helpers/circuit_spawner.html @@ -0,0 +1 @@ +/obj/effect/mapping_helpers/circuit_spawner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

circuit_spawner

Vars

circuit_shellThe shell for the circuit.
json_urlThe url for the json. Example: "https://pastebin.com/raw/eH7VnP9d"
shell_capacityCapacity of the shell.

Var Details

circuit_shell

The shell for the circuit.

json_url

The url for the json. Example: "https://pastebin.com/raw/eH7VnP9d"

shell_capacity

Capacity of the shell.

\ No newline at end of file diff --git a/obj/effect/mapping_helpers/damaged_window.html b/obj/effect/mapping_helpers/damaged_window.html new file mode 100644 index 0000000000000..1989ccfd1aec2 --- /dev/null +++ b/obj/effect/mapping_helpers/damaged_window.html @@ -0,0 +1 @@ +/obj/effect/mapping_helpers/damaged_window - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

damaged_window

Deals random damage to the first window found on a tile to appear cracked

Vars

integrity_damage_maxMaximum roll of integrity damage in percents needed to show cracks
integrity_damage_minMinimum roll of integrity damage in percents needed to show cracks

Var Details

integrity_damage_max

Maximum roll of integrity damage in percents needed to show cracks

integrity_damage_min

Minimum roll of integrity damage in percents needed to show cracks

\ No newline at end of file diff --git a/obj/effect/mapping_helpers/dead_body_placer.html b/obj/effect/mapping_helpers/dead_body_placer.html new file mode 100644 index 0000000000000..3460424ea6ef4 --- /dev/null +++ b/obj/effect/mapping_helpers/dead_body_placer.html @@ -0,0 +1 @@ +/obj/effect/mapping_helpers/dead_body_placer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dead_body_placer

Vars

admin_spawnedif TRUE, was spawned out of mapload.
blacklisted_from_rng_placementThese species IDs will be barred from spawning if morgue_cadaver_disable_nonhumans is disabled (In the future, we can also dehardcode this)
bodycountnumber of bodies to spawn

Var Details

admin_spawned

if TRUE, was spawned out of mapload.

blacklisted_from_rng_placement

These species IDs will be barred from spawning if morgue_cadaver_disable_nonhumans is disabled (In the future, we can also dehardcode this)

bodycount

number of bodies to spawn

\ No newline at end of file diff --git a/obj/effect/mapping_helpers/ianbirthday.html b/obj/effect/mapping_helpers/ianbirthday.html new file mode 100644 index 0000000000000..39b10be4ca101 --- /dev/null +++ b/obj/effect/mapping_helpers/ianbirthday.html @@ -0,0 +1 @@ +/obj/effect/mapping_helpers/ianbirthday - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ianbirthday

Vars

balloon_clustersHow many clusters of balloons to spawn.
map_warningif TRUE, we give a map log warning if we can't find Ian's dogbed.

Var Details

balloon_clusters

How many clusters of balloons to spawn.

map_warning

if TRUE, we give a map log warning if we can't find Ian's dogbed.

\ No newline at end of file diff --git a/obj/effect/mapping_helpers/mob_buckler.html b/obj/effect/mapping_helpers/mob_buckler.html new file mode 100644 index 0000000000000..a26148596fd9e --- /dev/null +++ b/obj/effect/mapping_helpers/mob_buckler.html @@ -0,0 +1 @@ +/obj/effect/mapping_helpers/mob_buckler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mob_buckler

this helper buckles all mobs on the tile to the first buckleable object

Vars

force_bucklewhether we force a buckle

Var Details

force_buckle

whether we force a buckle

\ No newline at end of file diff --git a/obj/effect/mapping_helpers/requests_console.html b/obj/effect/mapping_helpers/requests_console.html new file mode 100644 index 0000000000000..5e712e6ea348d --- /dev/null +++ b/obj/effect/mapping_helpers/requests_console.html @@ -0,0 +1 @@ +/obj/effect/mapping_helpers/requests_console - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

requests_console

Procs

payloadFills out the request console's variables

Proc Details

payload

Fills out the request console's variables

\ No newline at end of file diff --git a/obj/effect/mapping_helpers/trapdoor_placer.html b/obj/effect/mapping_helpers/trapdoor_placer.html new file mode 100644 index 0000000000000..a5835ce01b3ae --- /dev/null +++ b/obj/effect/mapping_helpers/trapdoor_placer.html @@ -0,0 +1,6 @@ +/obj/effect/mapping_helpers/trapdoor_placer - /tg/ Station 13
/tg/ Station 13 - Modules - Types

trapdoor_placer

trapdoor placer!

+

This places an unlinked trapdoor in the tile its on (so someone with a remote needs to link it up first) +Pre-mapped trapdoors (unlike player-made ones) are not conspicuous by default so nothing stands out with them +Admins may spawn this in the round for additional trapdoors if they so desire +if YOU want to learn more about trapdoors, read about the component at trapdoor.dm +note: this is not a turf subtype because the trapdoor needs the type of the turf to turn back into

\ No newline at end of file diff --git a/obj/effect/mapping_helpers/ztrait_injector.html b/obj/effect/mapping_helpers/ztrait_injector.html new file mode 100644 index 0000000000000..53296ba387dc9 --- /dev/null +++ b/obj/effect/mapping_helpers/ztrait_injector.html @@ -0,0 +1 @@ +/obj/effect/mapping_helpers/ztrait_injector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ztrait_injector

Vars

traits_to_addList of traits to add to this Z-level.

Var Details

traits_to_add

List of traits to add to this Z-level.

\ No newline at end of file diff --git a/obj/effect/meteor.html b/obj/effect/meteor.html new file mode 100644 index 0000000000000..7fc68f69e05f0 --- /dev/null +++ b/obj/effect/meteor.html @@ -0,0 +1,13 @@ +/obj/effect/meteor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

meteor

Vars

destThe thing we're moving towards, usually a turf
dropamtHow much stuff to spawn when you die
hitpwrLevel of ex_act to be called on hit.
hitsThe resilience of our meteor
lifetimeLifetime in seconds
meteorsoundSound to play when you hit something
signatureUsed by Stray Meteor event to indicate meteor type (the type of sensor that "detected" it) in announcement
threatUsed for determining which meteors are most interesting
z_originalOur starting z level, prevents infinite meteors

Procs

check_examine_awardUsed to check if someone who has examined a meteor will receive an award.
moved_off_zDeals with what happens when we stop moving, IE we die
shield_defenseHandles the meteor's interaction with meteor shields.

Var Details

dest

The thing we're moving towards, usually a turf

dropamt

How much stuff to spawn when you die

hitpwr

Level of ex_act to be called on hit.

hits

The resilience of our meteor

lifetime

Lifetime in seconds

meteorsound

Sound to play when you hit something

signature

Used by Stray Meteor event to indicate meteor type (the type of sensor that "detected" it) in announcement

threat

Used for determining which meteors are most interesting

z_original

Our starting z level, prevents infinite meteors

Proc Details

check_examine_award

Used to check if someone who has examined a meteor will receive an award.

+

Checks the criteria to receive the "examine a meteor" award. +Admin spawned meteors will not grant the user an achievement.

+

Arguments:

+
    +
  • user - the person who will be receiving the examine award.
  • +

moved_off_z

Deals with what happens when we stop moving, IE we die

shield_defense

Handles the meteor's interaction with meteor shields.

+

Returns TRUE if the meteor should be destroyed. Overridable for custom shield interaction. +Return FALSE if a meteor's interaction with meteor shields should NOT destroy it.

+

Arguments:

+
    +
  • defender - The meteor shield that is vaporizing us.
  • +
\ No newline at end of file diff --git a/obj/effect/meteor/cluster.html b/obj/effect/meteor/cluster.html new file mode 100644 index 0000000000000..e405178c220c8 --- /dev/null +++ b/obj/effect/meteor/cluster.html @@ -0,0 +1 @@ +/obj/effect/meteor/cluster - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cluster

Vars

cluster_countNumber of fragmentation meteors to be spawned

Var Details

cluster_count

Number of fragmentation meteors to be spawned

\ No newline at end of file diff --git a/obj/effect/meteor/dark_matteor.html b/obj/effect/meteor/dark_matteor.html new file mode 100644 index 0000000000000..f68da53d9b9f3 --- /dev/null +++ b/obj/effect/meteor/dark_matteor.html @@ -0,0 +1 @@ +/obj/effect/meteor/dark_matteor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dark_matteor

The dark matt-eor. Only attracted by emagging 10 satellites and maximizing meteor chances, and it drops a singulo. Otherwise, it's not that bad.

Vars

previous_security_levelin case we miss, we can go back to the previous security level
spark_systemand another oh shit in the form of quantum sparks
warpdistortion to really give you that sense of oh shit

Var Details

previous_security_level

in case we miss, we can go back to the previous security level

spark_system

and another oh shit in the form of quantum sparks

warp

distortion to really give you that sense of oh shit

\ No newline at end of file diff --git a/obj/effect/meteor/meaty/changeling.html b/obj/effect/meteor/meaty/changeling.html new file mode 100644 index 0000000000000..9f1e7e8095393 --- /dev/null +++ b/obj/effect/meteor/meaty/changeling.html @@ -0,0 +1 @@ +/obj/effect/meteor/meaty/changeling - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

changeling

Vars

landing_targetWhere we want our changeling to, by whatever means, end up at.

Var Details

landing_target

Where we want our changeling to, by whatever means, end up at.

\ No newline at end of file diff --git a/obj/effect/mine.html b/obj/effect/mine.html new file mode 100644 index 0000000000000..6428f1b45a0c1 --- /dev/null +++ b/obj/effect/mine.html @@ -0,0 +1,5 @@ +/obj/effect/mine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mine

Vars

arm_delayIf set, we default armed to FALSE and set it to TRUE after this long from initializing
armedCan be set to FALSE if we want a short 'coming online' delay, then set to TRUE. Can still be set off by damage
foot_on_mineWho's got their foot on the mine's pressure plate +Stepping on the mine will set this to the first mob who stepped over it +The mine will not detonate via movement unless the first mob steps off of it
triggeredWe manually check to see if we've been triggered in case multiple atoms cross us in the time between the mine being triggered and it actually deleting, to avoid a race condition with multiple detonations

Procs

can_triggerCan this mine trigger on the passed movable?
mineEffectThe effect of the mine
now_armedIf the landmine was previously inactive, this beeps and displays a message marking it active
triggermineWhen something sets off a mine

Var Details

arm_delay

If set, we default armed to FALSE and set it to TRUE after this long from initializing

armed

Can be set to FALSE if we want a short 'coming online' delay, then set to TRUE. Can still be set off by damage

foot_on_mine

Who's got their foot on the mine's pressure plate +Stepping on the mine will set this to the first mob who stepped over it +The mine will not detonate via movement unless the first mob steps off of it

triggered

We manually check to see if we've been triggered in case multiple atoms cross us in the time between the mine being triggered and it actually deleting, to avoid a race condition with multiple detonations

Proc Details

can_trigger

Can this mine trigger on the passed movable?

mineEffect

The effect of the mine

now_armed

If the landmine was previously inactive, this beeps and displays a message marking it active

triggermine

When something sets off a mine

\ No newline at end of file diff --git a/obj/effect/mine/explosive.html b/obj/effect/mine/explosive.html new file mode 100644 index 0000000000000..c96856fba430c --- /dev/null +++ b/obj/effect/mine/explosive.html @@ -0,0 +1 @@ +/obj/effect/mine/explosive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

explosive

Vars

range_devastationThe devastation range of the resulting explosion.
range_flameThe flame range of the resulting explosion.
range_flashThe flash range of the resulting explosion.
range_heavyThe heavy impact range of the resulting explosion.
range_lightThe light impact range of the resulting explosion.

Var Details

range_devastation

The devastation range of the resulting explosion.

range_flame

The flame range of the resulting explosion.

range_flash

The flash range of the resulting explosion.

range_heavy

The heavy impact range of the resulting explosion.

range_light

The light impact range of the resulting explosion.

\ No newline at end of file diff --git a/obj/effect/mine/explosive/nri.html b/obj/effect/mine/explosive/nri.html new file mode 100644 index 0000000000000..c1b25d3773ee3 --- /dev/null +++ b/obj/effect/mine/explosive/nri.html @@ -0,0 +1 @@ +/obj/effect/mine/explosive/nri - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nri

A nerfed down version of a landmine I really should've done a long time ago but only did it now.

Vars

stun_timeStun time after an activation.

Var Details

stun_time

Stun time after an activation.

\ No newline at end of file diff --git a/obj/effect/mine/minebot.html b/obj/effect/mine/minebot.html new file mode 100644 index 0000000000000..358d42bbfd631 --- /dev/null +++ b/obj/effect/mine/minebot.html @@ -0,0 +1 @@ +/obj/effect/mine/minebot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

minebot

Vars

damage_to_applythe damage we apply to whoever steps on us
ignore_listwe dont detonate if any of these people step on us

Var Details

damage_to_apply

the damage we apply to whoever steps on us

ignore_list

we dont detonate if any of these people step on us

\ No newline at end of file diff --git a/obj/effect/mine/shrapnel.html b/obj/effect/mine/shrapnel.html new file mode 100644 index 0000000000000..fe5283684feca --- /dev/null +++ b/obj/effect/mine/shrapnel.html @@ -0,0 +1 @@ +/obj/effect/mine/shrapnel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shrapnel

These mines spawn pellet_clouds around them when triggered

Vars

shrapnel_magnitudeBroadly, how many pellets we're spawning, the total is n! - (n-1)! pellets, so don't set it too high. For reference, 15 is probably pushing it at MAX
shrapnel_typeThe type of projectiles we're shooting out of this
shred_triggererIf TRUE, we spawn extra pellets to eviscerate the person who stepped on it, otherwise it just spawns a ring of pellets around the tile we're on (making setting it off an offensive move)

Var Details

shrapnel_magnitude

Broadly, how many pellets we're spawning, the total is n! - (n-1)! pellets, so don't set it too high. For reference, 15 is probably pushing it at MAX

shrapnel_type

The type of projectiles we're shooting out of this

shred_triggerer

If TRUE, we spawn extra pellets to eviscerate the person who stepped on it, otherwise it just spawns a ring of pellets around the tile we're on (making setting it off an offensive move)

\ No newline at end of file diff --git a/obj/effect/mob_spawn.html b/obj/effect/mob_spawn.html new file mode 100644 index 0000000000000..cee449d96a7c9 --- /dev/null +++ b/obj/effect/mob_spawn.html @@ -0,0 +1,5 @@ +/obj/effect/mob_spawn - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mob_spawn

Vars

facial_haircolorsets a human's facial hair color
facial_hairstylesets a human's facial hair
haircolorsets a human's hair color (use special for gradients, sorry)
hairstylesets a human's hairstyle
infinite_useCan this spawner be used up?
mob_nameA forced name of the mob, though can be overridden if a special name is passed as an argument
mob_species/Human specific stuff. Don't set these if you aren't using a human, the unit tests will put a stop to your sinful hand. +sets the human as a species, use a typepath (example: /datum/species/skeleton)
mob_typethe type of the mob, you best inherit this
outfitequips the human with an outfit.
outfit_overridefor mappers to override parts of the outfit. really only in here for secret away missions, please try to refrain from using this out of laziness
skin_tonesets a human's skin tone
spawned_mob_refWeakref to the mob this spawner created - just if you needed to do something with it.

Procs

createThis edit would cause somewhat ugly diffs, so I'm just replacing it. +Original proc in code/modules/mob_spawn/mob_spawn.dm ~line 39.

Var Details

facial_haircolor

sets a human's facial hair color

facial_hairstyle

sets a human's facial hair

haircolor

sets a human's hair color (use special for gradients, sorry)

hairstyle

sets a human's hairstyle

infinite_use

Can this spawner be used up?

mob_name

A forced name of the mob, though can be overridden if a special name is passed as an argument

mob_species

/Human specific stuff. Don't set these if you aren't using a human, the unit tests will put a stop to your sinful hand. +sets the human as a species, use a typepath (example: /datum/species/skeleton)

mob_type

the type of the mob, you best inherit this

outfit

equips the human with an outfit.

outfit_override

for mappers to override parts of the outfit. really only in here for secret away missions, please try to refrain from using this out of laziness

skin_tone

sets a human's skin tone

spawned_mob_ref

Weakref to the mob this spawner created - just if you needed to do something with it.

Proc Details

create

This edit would cause somewhat ugly diffs, so I'm just replacing it. +Original proc in code/modules/mob_spawn/mob_spawn.dm ~line 39.

\ No newline at end of file diff --git a/obj/effect/mob_spawn/corpse.html b/obj/effect/mob_spawn/corpse.html new file mode 100644 index 0000000000000..0882ff3a6125b --- /dev/null +++ b/obj/effect/mob_spawn/corpse.html @@ -0,0 +1,3 @@ +/obj/effect/mob_spawn/corpse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

corpse

these mob spawn subtypes trigger immediately (New or Initialize) and are not player controlled... since they're dead, you know?

Vars

brute_damage/damage values (very often, mappers want corpses to be mangled) +brute damage this corpse will spawn with
burn_damageburn damage this corpse will spawn with
corpse_descriptionwhat environmental storytelling script should this corpse have
naive_corpse_descriptionoptionally different text to display if the target is a clown
oxy_damageoxy damage this corpse will spawn with
spawn_whenwhen this mob spawn should auto trigger.

Var Details

brute_damage

/damage values (very often, mappers want corpses to be mangled) +brute damage this corpse will spawn with

burn_damage

burn damage this corpse will spawn with

corpse_description

what environmental storytelling script should this corpse have

naive_corpse_description

optionally different text to display if the target is a clown

oxy_damage

oxy damage this corpse will spawn with

spawn_when

when this mob spawn should auto trigger.

\ No newline at end of file diff --git a/obj/effect/mob_spawn/corpse/human.html b/obj/effect/mob_spawn/corpse/human.html new file mode 100644 index 0000000000000..427496acdbddd --- /dev/null +++ b/obj/effect/mob_spawn/corpse/human.html @@ -0,0 +1 @@ +/obj/effect/mob_spawn/corpse/human - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

human

Vars

conceal_presencedisables PDA and sensors. only makes sense on corpses because ghost roles could simply turn those on again.
huskhusks the corpse if true.

Var Details

conceal_presence

disables PDA and sensors. only makes sense on corpses because ghost roles could simply turn those on again.

husk

husks the corpse if true.

\ No newline at end of file diff --git a/obj/effect/mob_spawn/corpse/human/guard_zombie.html b/obj/effect/mob_spawn/corpse/human/guard_zombie.html new file mode 100644 index 0000000000000..0d57d9b5af2f8 --- /dev/null +++ b/obj/effect/mob_spawn/corpse/human/guard_zombie.html @@ -0,0 +1 @@ +/obj/effect/mob_spawn/corpse/human/guard_zombie - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

guard_zombie

Vars

brute_damageIt 'vaguely' looks like the guard

Var Details

brute_damage

It 'vaguely' looks like the guard

\ No newline at end of file diff --git a/obj/effect/mob_spawn/corpse/human/hecu_zombie.html b/obj/effect/mob_spawn/corpse/human/hecu_zombie.html new file mode 100644 index 0000000000000..a16983a2cbb6f --- /dev/null +++ b/obj/effect/mob_spawn/corpse/human/hecu_zombie.html @@ -0,0 +1 @@ +/obj/effect/mob_spawn/corpse/human/hecu_zombie - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hecu_zombie

Vars

brute_damageIt 'vaguely' looks like HECU

Var Details

brute_damage

It 'vaguely' looks like HECU

\ No newline at end of file diff --git a/obj/effect/mob_spawn/corpse/human/legioninfested.html b/obj/effect/mob_spawn/corpse/human/legioninfested.html new file mode 100644 index 0000000000000..bb330593abab8 --- /dev/null +++ b/obj/effect/mob_spawn/corpse/human/legioninfested.html @@ -0,0 +1 @@ +/obj/effect/mob_spawn/corpse/human/legioninfested - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

legioninfested

Mob spawner used by Legion to spawn costumed bodies

Procs

select_outfitReturns the outfit worn by our corpse

Proc Details

select_outfit

Returns the outfit worn by our corpse

\ No newline at end of file diff --git a/obj/effect/mob_spawn/corpse/slime.html b/obj/effect/mob_spawn/corpse/slime.html new file mode 100644 index 0000000000000..46c04ea2495ba --- /dev/null +++ b/obj/effect/mob_spawn/corpse/slime.html @@ -0,0 +1 @@ +/obj/effect/mob_spawn/corpse/slime - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

slime

dead slimes, with a var for whatever color you want.

Vars

slime_speciesthe color of the slime you're spawning.

Var Details

slime_species

the color of the slime you're spawning.

\ No newline at end of file diff --git a/obj/effect/mob_spawn/ghost_role.html b/obj/effect/mob_spawn/ghost_role.html new file mode 100644 index 0000000000000..d3715cfcc7286 --- /dev/null +++ b/obj/effect/mob_spawn/ghost_role.html @@ -0,0 +1,14 @@ +/obj/effect/mob_spawn/ghost_role - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ghost_role

these mob spawn subtypes do not trigger until attacked by a ghost.

Vars

banned_speciesList of species which cannot be chosen to spawn with. Mutually exclusive with restricted species.
ckeys_trying_to_spawnA list of the ckeys that currently are trying to access this spawner, so that they can't try to spawn more than once (in case there's sleeps). +Static because you only really want to be able to spawn in one spawner at a time, obviously.
computer_areaFor figuring out where the local cryopod computer is. Must be set for cryo computer announcements.
deletes_on_zero_uses_leftDoes the spawner delete itself when it runs out of uses?
flavour_textThis should be the actual instructions/description/context to the ghost role. This should be the really long explainy bit, basically.
important_textThis is critical non-policy information about the ghost role. Shown in the spawner menu and after spawning last.
loadout_enabledCan we use our loadout for this role?
prompt_ghostif false, you won't prompt for this role. best used for replacing the prompt system with something else like a radial, or something.
prompt_namea short, lowercase name for the mob used in possession prompt that pops up on ghost attacks. must be set.
quirks_enabledCan we use our quirks for this role?
random_appearanceDo we use a random appearance for this ghost role?
restricted_speciesAre we limited to a certain species type? LISTED TYPE
role_ban/bans and policy +which role to check for a job ban (ROLE_LAVALAND is the default ghost role ban)
show_flavorShow these on spawn? Usually used for hardcoded special flavor
spawner_job_pathTypepath indicating the kind of job datum this ghost role will have. PLEASE inherit this with a new job datum, it's not hard. jobs come with policy configs.
temp_bodyWhether this offers a temporary body or not. Essentially, you'll be able to reenter your body after using this spawner.
use_outfit_nameset this to make the spawner use the outfit.name instead of its name var for things like cryo announcements and ghost records +modifying the actual name during the game will cause issues with the GLOB.mob_spawners associative list
useshow many times this spawner can be used (it won't delete unless it's out of uses and the var to delete itself is set)
you_are_text/descriptions +This should be the declaration of what the ghost role is, and maybe a short blurb after if you want. Shown in the spawner menu and after spawning first.

Procs

allow_spawnoverride this to add special spawn conditions to a ghost role
check_usesChecks if the spawner has zero uses left, if so, delete yourself... NOW!
create_from_ghostUses a use and creates a mob from a passed ghost
get_spawner_outfit_nameReturns the the alt name for this spawner, which is 'outfit.name'.

Var Details

banned_species

List of species which cannot be chosen to spawn with. Mutually exclusive with restricted species.

ckeys_trying_to_spawn

A list of the ckeys that currently are trying to access this spawner, so that they can't try to spawn more than once (in case there's sleeps). +Static because you only really want to be able to spawn in one spawner at a time, obviously.

computer_area

For figuring out where the local cryopod computer is. Must be set for cryo computer announcements.

deletes_on_zero_uses_left

Does the spawner delete itself when it runs out of uses?

flavour_text

This should be the actual instructions/description/context to the ghost role. This should be the really long explainy bit, basically.

important_text

This is critical non-policy information about the ghost role. Shown in the spawner menu and after spawning last.

loadout_enabled

Can we use our loadout for this role?

prompt_ghost

if false, you won't prompt for this role. best used for replacing the prompt system with something else like a radial, or something.

prompt_name

a short, lowercase name for the mob used in possession prompt that pops up on ghost attacks. must be set.

quirks_enabled

Can we use our quirks for this role?

random_appearance

Do we use a random appearance for this ghost role?

restricted_species

Are we limited to a certain species type? LISTED TYPE

role_ban

/bans and policy +which role to check for a job ban (ROLE_LAVALAND is the default ghost role ban)

show_flavor

Show these on spawn? Usually used for hardcoded special flavor

spawner_job_path

Typepath indicating the kind of job datum this ghost role will have. PLEASE inherit this with a new job datum, it's not hard. jobs come with policy configs.

temp_body

Whether this offers a temporary body or not. Essentially, you'll be able to reenter your body after using this spawner.

use_outfit_name

set this to make the spawner use the outfit.name instead of its name var for things like cryo announcements and ghost records +modifying the actual name during the game will cause issues with the GLOB.mob_spawners associative list

uses

how many times this spawner can be used (it won't delete unless it's out of uses and the var to delete itself is set)

you_are_text

/descriptions +This should be the declaration of what the ghost role is, and maybe a short blurb after if you want. Shown in the spawner menu and after spawning first.

Proc Details

allow_spawn

override this to add special spawn conditions to a ghost role

check_uses

Checks if the spawner has zero uses left, if so, delete yourself... NOW!

create_from_ghost

Uses a use and creates a mob from a passed ghost

+

Does NOT validate that the spawn is possible or valid - assumes this has been done already!

+

If you are manually forcing a player into this mob spawn, +you should be using this and not directly calling [proc/create].

get_spawner_outfit_name

Returns the the alt name for this spawner, which is 'outfit.name'.

+

For when you might want to use that for things instead of the name var. +example: the DS2 spawners, which have a number of different types of spawner with the same name.

\ No newline at end of file diff --git a/obj/effect/mob_spawn/ghost_role/borer_egg.html b/obj/effect/mob_spawn/ghost_role/borer_egg.html new file mode 100644 index 0000000000000..e438a6a95668e --- /dev/null +++ b/obj/effect/mob_spawn/ghost_role/borer_egg.html @@ -0,0 +1 @@ +/obj/effect/mob_spawn/ghost_role/borer_egg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

borer_egg

Vars

generationwhat the generation of the borer egg is
host_eggthe egg that is attached to this mob spawn
mob_typeType of mob that will be spawned

Var Details

generation

what the generation of the borer egg is

host_egg

the egg that is attached to this mob spawn

mob_type

Type of mob that will be spawned

\ No newline at end of file diff --git a/obj/effect/mob_spawn/ghost_role/drone.html b/obj/effect/mob_spawn/ghost_role/drone.html new file mode 100644 index 0000000000000..daf735ce88da9 --- /dev/null +++ b/obj/effect/mob_spawn/ghost_role/drone.html @@ -0,0 +1,11 @@ +/obj/effect/mob_spawn/ghost_role/drone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

drone

    +
  • +

    Drone Shell: Ghost role item for drones

    +
  • +
  • +

    A simple mob spawner item that transforms into a maintenance drone

    +
  • +
  • +

    Respects drone minimum age

    +
  • +

Vars

mob_typeType of drone that will be spawned

Var Details

mob_type

Type of drone that will be spawned

\ No newline at end of file diff --git a/obj/effect/mob_spawn/ghost_role/human/golem.html b/obj/effect/mob_spawn/ghost_role/human/golem.html new file mode 100644 index 0000000000000..5f05de68b3d86 --- /dev/null +++ b/obj/effect/mob_spawn/ghost_role/human/golem.html @@ -0,0 +1 @@ +/obj/effect/mob_spawn/ghost_role/human/golem - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

golem

Vars

initial_typeTypepath to a material to feed to the golem as soon as it is built

Procs

give_directiveGives lavaland golems some noble ideas, and enslaved ones a master
try_keep_homeMakes free golems slow and sad on the space station

Var Details

initial_type

Typepath to a material to feed to the golem as soon as it is built

Proc Details

give_directive

Gives lavaland golems some noble ideas, and enslaved ones a master

try_keep_home

Makes free golems slow and sad on the space station

\ No newline at end of file diff --git a/obj/effect/mob_spawn/ghost_role/human/golem/servant.html b/obj/effect/mob_spawn/ghost_role/human/golem/servant.html new file mode 100644 index 0000000000000..ab1d1a58111f1 --- /dev/null +++ b/obj/effect/mob_spawn/ghost_role/human/golem/servant.html @@ -0,0 +1 @@ +/obj/effect/mob_spawn/ghost_role/human/golem/servant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

servant

Vars

owner_refWeakref to the creator of this golem shell.

Var Details

owner_ref

Weakref to the creator of this golem shell.

\ No newline at end of file diff --git a/obj/effect/mob_spawn/ghost_role/human/pirate.html b/obj/effect/mob_spawn/ghost_role/human/pirate.html new file mode 100644 index 0000000000000..7532f945cfc41 --- /dev/null +++ b/obj/effect/mob_spawn/ghost_role/human/pirate.html @@ -0,0 +1 @@ +/obj/effect/mob_spawn/ghost_role/human/pirate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pirate

Vars

fluff_spawnPath of the structure we spawn after creating a pirate.
name_beginningsjson key to pirate names, the first part ("Comet" in "Cometfish")
name_endingsjson key to pirate names, the last part ("fish" in "Cometfish")
rankRank of the pirate on the ship, it's used in generating pirate names!

Var Details

fluff_spawn

Path of the structure we spawn after creating a pirate.

name_beginnings

json key to pirate names, the first part ("Comet" in "Cometfish")

name_endings

json key to pirate names, the last part ("fish" in "Cometfish")

rank

Rank of the pirate on the ship, it's used in generating pirate names!

\ No newline at end of file diff --git a/obj/effect/mob_spawn/ghost_role/human/primitive_catgirl.html b/obj/effect/mob_spawn/ghost_role/human/primitive_catgirl.html new file mode 100644 index 0000000000000..d98ce40b203b3 --- /dev/null +++ b/obj/effect/mob_spawn/ghost_role/human/primitive_catgirl.html @@ -0,0 +1 @@ +/obj/effect/mob_spawn/ghost_role/human/primitive_catgirl - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

primitive_catgirl

Vars

teamThe team the spawner will assign players to and use to keep track of people that have already used the spawner

Var Details

team

The team the spawner will assign players to and use to keep track of people that have already used the spawner

\ No newline at end of file diff --git a/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser.html b/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser.html new file mode 100644 index 0000000000000..1cdb286c2a0e3 --- /dev/null +++ b/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser.html @@ -0,0 +1 @@ +/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

battlecruiser

battlecruiser stuff

Vars

antag_datum_to_giveThe antag datum to give to the player spawned
antag_teamThe antag team to apply the player to

Var Details

antag_datum_to_give

The antag datum to give to the player spawned

antag_team

The antag team to apply the player to

\ No newline at end of file diff --git a/obj/effect/mob_spawn/ghost_role/human/virtual_domain.html b/obj/effect/mob_spawn/ghost_role/human/virtual_domain.html new file mode 100644 index 0000000000000..3865b407d5bcc --- /dev/null +++ b/obj/effect/mob_spawn/ghost_role/human/virtual_domain.html @@ -0,0 +1 @@ +/obj/effect/mob_spawn/ghost_role/human/virtual_domain - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

virtual_domain

Procs

artificial_spawnSimulates a ghost role spawn without calling special(), ie a bitrunner spawn instead of a ghost.

Proc Details

artificial_spawn

Simulates a ghost role spawn without calling special(), ie a bitrunner spawn instead of a ghost.

\ No newline at end of file diff --git a/obj/effect/mob_spawn/ghost_role/spider.html b/obj/effect/mob_spawn/ghost_role/spider.html new file mode 100644 index 0000000000000..cbb19846fba69 --- /dev/null +++ b/obj/effect/mob_spawn/ghost_role/spider.html @@ -0,0 +1,7 @@ +/obj/effect/mob_spawn/ghost_role/spider - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spider

Vars

amount_grownThe amount the egg cluster has grown. Is able to produce a spider when it hits 100.
cluster_typeType of the cluster that the spawner spawns
directiveThe mother's directive at the time the egg was produced. Passed onto the child.
eggPhysical structure housing the spawner
flash_windowDo we flash the byond window when this particular egg type is available?
granted_datumWhich antag datum do we grant?
potentialspawnsThe types of spiders that the spawner can produce
readyPrevents spawning from this mob_spawn until TRUE, set by the egg growing

Procs

createMakes a ghost into a spider based on the type of egg cluster.
get_radial_choicePick a spider type from a radial menu

Var Details

amount_grown

The amount the egg cluster has grown. Is able to produce a spider when it hits 100.

cluster_type

Type of the cluster that the spawner spawns

directive

The mother's directive at the time the egg was produced. Passed onto the child.

egg

Physical structure housing the spawner

flash_window

Do we flash the byond window when this particular egg type is available?

granted_datum

Which antag datum do we grant?

potentialspawns

The types of spiders that the spawner can produce

ready

Prevents spawning from this mob_spawn until TRUE, set by the egg growing

Proc Details

create

Makes a ghost into a spider based on the type of egg cluster.

+

Allows a ghost to get a prompt to use the egg cluster to become a spider.

+

Arguments:

+
    +
  • user - The ghost attempting to become a spider
  • +
  • newname - If set, renames the mob to this name
  • +

get_radial_choice

Pick a spider type from a radial menu

\ No newline at end of file diff --git a/obj/effect/mob_spawn/ghost_role/venus_human_trap.html b/obj/effect/mob_spawn/ghost_role/venus_human_trap.html new file mode 100644 index 0000000000000..b8856b6b9151c --- /dev/null +++ b/obj/effect/mob_spawn/ghost_role/venus_human_trap.html @@ -0,0 +1 @@ +/obj/effect/mob_spawn/ghost_role/venus_human_trap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

venus_human_trap

Handles logic for ghost spawning code, visible object in game is handled by /obj/structure/alien/resin/flower_bud

Vars

flower_budPhysical structure housing the spawner
readyUsed to determine when to notify ghosts

Procs

bear_fruitCalled when the attached flower bud has borne fruit (ie. is ready)

Var Details

flower_bud

Physical structure housing the spawner

ready

Used to determine when to notify ghosts

Proc Details

bear_fruit

Called when the attached flower bud has borne fruit (ie. is ready)

\ No newline at end of file diff --git a/obj/effect/overlay/happiness_overlay.html b/obj/effect/overlay/happiness_overlay.html new file mode 100644 index 0000000000000..ae6d5610fadd5 --- /dev/null +++ b/obj/effect/overlay/happiness_overlay.html @@ -0,0 +1 @@ +/obj/effect/overlay/happiness_overlay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

happiness_overlay

Vars

heart_iconicon of our heart
hearts_percentagehow many hearts should we display

Var Details

heart_icon

icon of our heart

hearts_percentage

how many hearts should we display

\ No newline at end of file diff --git a/obj/effect/overlay/status_display_text.html b/obj/effect/overlay/status_display_text.html new file mode 100644 index 0000000000000..fc26a38122515 --- /dev/null +++ b/obj/effect/overlay/status_display_text.html @@ -0,0 +1,12 @@ +/obj/effect/overlay/status_display_text - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

status_display_text

Nice overlay to make text smoothly scroll with no client updates after setup.

Vars

messageThe message this overlay is displaying.
status_keyThe status key we represent
use_countAmount of usage this overlay is getting

Procs

disownStatus displays are static, shared by everyone who needs them +This marks us as no longer being used by a guy
generate_textGenerate the actual maptext. +Arguments:
ownStatus displays are static, shared by everyone who needs them +This marks us as being used by one more guy

Var Details

message

The message this overlay is displaying.

status_key

The status key we represent

use_count

Amount of usage this overlay is getting

Proc Details

disown

Status displays are static, shared by everyone who needs them +This marks us as no longer being used by a guy

generate_text

Generate the actual maptext. +Arguments:

+
    +
  • text - the text to display
  • +
  • center - center the text if TRUE, otherwise right-align (the direction the text is coming from)
  • +
  • text_color - the text color
  • +

own

Status displays are static, shared by everyone who needs them +This marks us as being used by one more guy

\ No newline at end of file diff --git a/obj/effect/overlay/vis.html b/obj/effect/overlay/vis.html new file mode 100644 index 0000000000000..b004770fb5676 --- /dev/null +++ b/obj/effect/overlay/vis.html @@ -0,0 +1 @@ +/obj/effect/overlay/vis - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vis

Vars

cache_expirationoverlays which go unused for this amount of time get cleaned up
unusedWhen detected to be unused it gets set to world.time, after a while it gets removed

Var Details

cache_expiration

overlays which go unused for this amount of time get cleaned up

unused

When detected to be unused it gets set to world.time, after a while it gets removed

\ No newline at end of file diff --git a/obj/effect/overlay/windup_bar.html b/obj/effect/overlay/windup_bar.html new file mode 100644 index 0000000000000..d30150e6f4e55 --- /dev/null +++ b/obj/effect/overlay/windup_bar.html @@ -0,0 +1 @@ +/obj/effect/overlay/windup_bar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

windup_bar

Vars

current_countthe current count we are at
maximum_countthe maximum windup bonus

Var Details

current_count

the current count we are at

maximum_count

the maximum windup bonus

\ No newline at end of file diff --git a/obj/effect/overloader_trap.html b/obj/effect/overloader_trap.html new file mode 100644 index 0000000000000..3f05068205427 --- /dev/null +++ b/obj/effect/overloader_trap.html @@ -0,0 +1 @@ +/obj/effect/overloader_trap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

overloader_trap

Vars

shock_damagedamage from getting zapped by this trap

Var Details

shock_damage

damage from getting zapped by this trap

\ No newline at end of file diff --git a/obj/effect/particle_effect/fluid.html b/obj/effect/particle_effect/fluid.html new file mode 100644 index 0000000000000..24defcfe32f07 --- /dev/null +++ b/obj/effect/particle_effect/fluid.html @@ -0,0 +1,2 @@ +/obj/effect/particle_effect/fluid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fluid

A particle effect that belongs to a fluid group.

Vars

effect_bucketWhat SSfluid bucket this particle effect is currently in.
groupThe fluid group that this particle effect belongs to.
spread_bucketThe index of the fluid spread bucket this is being spread in.

Procs

spreadAttempts to spread this fluid node to wherever it can spread.

Var Details

effect_bucket

What SSfluid bucket this particle effect is currently in.

group

The fluid group that this particle effect belongs to.

spread_bucket

The index of the fluid spread bucket this is being spread in.

Proc Details

spread

Attempts to spread this fluid node to wherever it can spread.

+

Exact results vary by subtype implementation.

\ No newline at end of file diff --git a/obj/effect/particle_effect/fluid/foam.html b/obj/effect/particle_effect/fluid/foam.html new file mode 100644 index 0000000000000..fdcc4b8474f41 --- /dev/null +++ b/obj/effect/particle_effect/fluid/foam.html @@ -0,0 +1,13 @@ +/obj/effect/particle_effect/fluid/foam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

foam

Foam

+

Similar to smoke, but slower and mobs absorb its reagent through their exposed skin.

Vars

allow_duplicate_resultsWhether or not this foam can produce a remnant movable if something of the same type is already on its turf.
blacklisted_turfsThe types of turfs that this foam cannot spread to.
lifetimeThe amount of time this foam stick around for before it dissipates.
result_typeThe typepath for what this foam leaves behind when it dissipates.
slippery_foamWhether or not this foam should be slippery.

Procs

foam_mobApplies the effect of this foam to a mob.
kill_foamMakes the foam dissipate and create whatever remnants it must.
make_resultMakes the foam leave behind something when it dissipates.

Var Details

allow_duplicate_results

Whether or not this foam can produce a remnant movable if something of the same type is already on its turf.

blacklisted_turfs

The types of turfs that this foam cannot spread to.

lifetime

The amount of time this foam stick around for before it dissipates.

result_type

The typepath for what this foam leaves behind when it dissipates.

slippery_foam

Whether or not this foam should be slippery.

Proc Details

foam_mob

Applies the effect of this foam to a mob.

+

Arguments:

+
    +
  • foaming: The mob that this foam is acting on.
  • +
  • seconds_per_tick: The amount of time that this foam is acting on them over.
  • +
+

Returns:

+
    +
  • [TRUE]: If the foam was successfully applied to the mob. Used to scale how quickly foam dissipates according to the number of mobs it is applied to.
  • +
  • +

kill_foam

Makes the foam dissipate and create whatever remnants it must.

make_result

Makes the foam leave behind something when it dissipates.

+

Returns the thing the foam leaves behind for further modification by subtypes.

\ No newline at end of file diff --git a/obj/effect/particle_effect/fluid/foam/firefighting.html b/obj/effect/particle_effect/fluid/foam/firefighting.html new file mode 100644 index 0000000000000..b76e87021cafd --- /dev/null +++ b/obj/effect/particle_effect/fluid/foam/firefighting.html @@ -0,0 +1 @@ +/obj/effect/particle_effect/fluid/foam/firefighting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

firefighting

A variant of foam which absorbs plasma in the air if there is a fire.

Vars

absorbed_plasmaThe amount of plasma gas this foam has absorbed. To be deposited when the foam dissipates.

Var Details

absorbed_plasma

The amount of plasma gas this foam has absorbed. To be deposited when the foam dissipates.

\ No newline at end of file diff --git a/obj/effect/particle_effect/fluid/smoke.html b/obj/effect/particle_effect/fluid/smoke.html new file mode 100644 index 0000000000000..3bff3476b03c1 --- /dev/null +++ b/obj/effect/particle_effect/fluid/smoke.html @@ -0,0 +1,19 @@ +/obj/effect/particle_effect/fluid/smoke - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

smoke

A fluid which spreads through the air affecting every mob it engulfs.

Vars

lifetimeHow long the smoke sticks around before it dissipates.
loc_connectionsMakes the smoke react to changes on/of its turf.

Procs

fade_outAnimates the smoke gradually fading out of visibility. +Also makes the smoke turf transparent as it passes 160 alpha.
kill_smokeMakes the smoke fade out and then deletes it.
react_to_atmos_adjacency_changesMakes the smoke react to nearby opening/closing airlocks and the like. +Makes it possible for smoke to spread through airlocks that open after the edge of the smoke cloud has already spread past them.
smoke_mobHandles the effects of this smoke on any mobs it comes into contact with.

Var Details

lifetime

How long the smoke sticks around before it dissipates.

loc_connections

Makes the smoke react to changes on/of its turf.

Proc Details

fade_out

Animates the smoke gradually fading out of visibility. +Also makes the smoke turf transparent as it passes 160 alpha.

+

Arguments:

+
    +
  • frames = 0.8 [SECONDS]: The amount of time the smoke should fade out over.
  • +

kill_smoke

Makes the smoke fade out and then deletes it.

react_to_atmos_adjacency_changes

Makes the smoke react to nearby opening/closing airlocks and the like. +Makes it possible for smoke to spread through airlocks that open after the edge of the smoke cloud has already spread past them.

+

Arguments:

+
    +
  • source: The turf that has been touched by an atmos adjacency change.
  • +

smoke_mob

Handles the effects of this smoke on any mobs it comes into contact with.

+

Arguments:

+
    +
  • smoker: The mob that is being exposed to this smoke.
  • +
  • seconds_per_tick: A scaling factor for the effects this has. Primarily based off of tick rate to normalize effects to units of rate/sec.
  • +
+

Returns whether the smoke effect was applied to the mob.

\ No newline at end of file diff --git a/obj/effect/particle_effect/fluid/smoke/bad.html b/obj/effect/particle_effect/fluid/smoke/bad.html new file mode 100644 index 0000000000000..10ee55c7704b8 --- /dev/null +++ b/obj/effect/particle_effect/fluid/smoke/bad.html @@ -0,0 +1,8 @@ +/obj/effect/particle_effect/fluid/smoke/bad - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bad

Smoke that makes you cough and reduces the power of lasers.

Procs

on_enteredReduces the power of any beam projectile that passes through the smoke.

Proc Details

on_entered

Reduces the power of any beam projectile that passes through the smoke.

+

Arguments:

+
    +
  • source: The location that has just been entered. If /datum/element/connect_loc is working this is src.loc.
  • +
  • arrived: The atom that has just entered the source location.
  • +
  • old_loc: The location the entering atom just was in.
  • +
  • [old_locs][/list/atom]: The set of locations the entering atom was just in.
  • +
\ No newline at end of file diff --git a/obj/effect/particle_effect/fluid/smoke/colourful.html b/obj/effect/particle_effect/fluid/smoke/colourful.html new file mode 100644 index 0000000000000..1b9763d68c480 --- /dev/null +++ b/obj/effect/particle_effect/fluid/smoke/colourful.html @@ -0,0 +1 @@ +/obj/effect/particle_effect/fluid/smoke/colourful - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

colourful

Randomly coloured smoke

Vars

coloursColours that the smoke can be

Var Details

colours

Colours that the smoke can be

\ No newline at end of file diff --git a/obj/effect/particle_effect/water/extinguisher.html b/obj/effect/particle_effect/water/extinguisher.html new file mode 100644 index 0000000000000..fac85576c2542 --- /dev/null +++ b/obj/effect/particle_effect/water/extinguisher.html @@ -0,0 +1,3 @@ +/obj/effect/particle_effect/water/extinguisher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

extinguisher

Extinguisher snowflake

Procs

move_atStarts the effect moving at a target with a delay in deciseconds, and a lifetime in moves +Returns the created loop

Proc Details

move_at

Starts the effect moving at a target with a delay in deciseconds, and a lifetime in moves +Returns the created loop

\ No newline at end of file diff --git a/obj/effect/portal.html b/obj/effect/portal.html new file mode 100644 index 0000000000000..ab2c279702443 --- /dev/null +++ b/obj/effect/portal.html @@ -0,0 +1 @@ +/obj/effect/portal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

portal

Vars

allow_anchoredDo we teleport anchored objects?
force_teleportDoes this portal bypass teleport restrictions? like TRAIT_NO_TELEPORT and NOTELEPORT flags.
hard_targetFor when a portal needs a hard target and isn't to be linked.
hardlinkedRequires a linked portal at all times. Destroy if there's no linked portal, if there is destroy it when this one is deleted.
innate_accuracy_penaltyWhat precision value do we pass to do_teleport (how far from the target destination we will pop out at).
last_effectUsed to track how often sparks should be output. Might want to turn this into a cooldown.
linkedA reference to another "linked" destination portal
mech_sizedAre mechs able to enter this portal?
sparklessDoes this portal create spark effect when teleporting?
teleport_channelWhat teleport channel does this portal use?
wibblesIf FALSE, the wibble filter will not be applied to this portal (only a visual effect).

Var Details

allow_anchored

Do we teleport anchored objects?

force_teleport

Does this portal bypass teleport restrictions? like TRAIT_NO_TELEPORT and NOTELEPORT flags.

hard_target

For when a portal needs a hard target and isn't to be linked.

hardlinked

Requires a linked portal at all times. Destroy if there's no linked portal, if there is destroy it when this one is deleted.

innate_accuracy_penalty

What precision value do we pass to do_teleport (how far from the target destination we will pop out at).

last_effect

Used to track how often sparks should be output. Might want to turn this into a cooldown.

linked

A reference to another "linked" destination portal

mech_sized

Are mechs able to enter this portal?

sparkless

Does this portal create spark effect when teleporting?

teleport_channel

What teleport channel does this portal use?

wibbles

If FALSE, the wibble filter will not be applied to this portal (only a visual effect).

\ No newline at end of file diff --git a/obj/effect/portal/permanent/one_way/reebe/clock_only.html b/obj/effect/portal/permanent/one_way/reebe/clock_only.html new file mode 100644 index 0000000000000..bfbd0a25c0770 --- /dev/null +++ b/obj/effect/portal/permanent/one_way/reebe/clock_only.html @@ -0,0 +1 @@ +/obj/effect/portal/permanent/one_way/reebe/clock_only - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

clock_only

Vars

clock_onlyIf this prevents non-clockies from entering

Var Details

clock_only

If this prevents non-clockies from entering

\ No newline at end of file diff --git a/obj/effect/powerup.html b/obj/effect/powerup.html new file mode 100644 index 0000000000000..919c971b16b9f --- /dev/null +++ b/obj/effect/powerup.html @@ -0,0 +1 @@ +/obj/effect/powerup - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

powerup

Vars

lifetimeHow long the powerup stays on the ground, if no value it will stay forever
pickup_messageMessage given when powerup is picked up
pickup_soundSound played when powerup is picked up
respawn_cooldownCooldown for the powerup to respawn after it's been used
respawn_timeHow long in deciseconds it will take for the powerup to respawn, if no value it won't respawn

Procs

triggerTriggers the effect of the powerup on the target, returns FALSE if the target is not /mob/living, is dead or the cooldown hasn't finished, returns TRUE otherwise

Var Details

lifetime

How long the powerup stays on the ground, if no value it will stay forever

pickup_message

Message given when powerup is picked up

pickup_sound

Sound played when powerup is picked up

respawn_cooldown

Cooldown for the powerup to respawn after it's been used

respawn_time

How long in deciseconds it will take for the powerup to respawn, if no value it won't respawn

Proc Details

trigger

Triggers the effect of the powerup on the target, returns FALSE if the target is not /mob/living, is dead or the cooldown hasn't finished, returns TRUE otherwise

\ No newline at end of file diff --git a/obj/effect/powerup/health.html b/obj/effect/powerup/health.html new file mode 100644 index 0000000000000..3d56e6ffd30ee --- /dev/null +++ b/obj/effect/powerup/health.html @@ -0,0 +1 @@ +/obj/effect/powerup/health - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

health

Vars

full_healDoes this pickup fully heal when picked up
heal_amountHow much the pickup heals when picked up
heal_flagsIf full heal, what flags do we pass?

Var Details

full_heal

Does this pickup fully heal when picked up

heal_amount

How much the pickup heals when picked up

heal_flags

If full heal, what flags do we pass?

\ No newline at end of file diff --git a/obj/effect/puzzle_death_signal_holder.html b/obj/effect/puzzle_death_signal_holder.html new file mode 100644 index 0000000000000..49e999d02a291 --- /dev/null +++ b/obj/effect/puzzle_death_signal_holder.html @@ -0,0 +1 @@ +/obj/effect/puzzle_death_signal_holder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

puzzle_death_signal_holder

Vars

delaydelay

Var Details

delay

delay

\ No newline at end of file diff --git a/obj/effect/puzzle_poddoor_open.html b/obj/effect/puzzle_poddoor_open.html new file mode 100644 index 0000000000000..dfc8618bede4b --- /dev/null +++ b/obj/effect/puzzle_poddoor_open.html @@ -0,0 +1 @@ +/obj/effect/puzzle_poddoor_open - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

puzzle_poddoor_open

Vars

iddoor id
queue_idif we receive a puzzle signal with this we do our thing

Var Details

id

door id

queue_id

if we receive a puzzle signal with this we do our thing

\ No newline at end of file diff --git a/obj/effect/rune.html b/obj/effect/rune.html new file mode 100644 index 0000000000000..0a4d55ec2af7c --- /dev/null +++ b/obj/effect/rune.html @@ -0,0 +1 @@ +/obj/effect/rune - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rune

Vars

can_be_scribedWhether this rune can be scribed or if it's admin only / special spawned / whatever
construct_invokeIf constructs can invoke it
cultist_descThe description of the rune shown to cultists who examine it
cultist_nameThe name of the rune to cultists
erase_timeHow long the rune takes to erase
failed_to_createGlobal proc to call if the rune fails to be created
invocationThis is said by cultists when the rune is invoked.
invoke_damageHow much damage invokers take when invoking it
keywordThe actual keyword for the rune
log_when_erasedUsed when you want to keep track of who erased the rune
no_scribe_boostIf a rune cannot be speed boosted while scribing on certain turfs
req_cultistsThe amount of cultists required around the rune to invoke it.
req_cultists_textIf we have a description override for required cultists to invoke
req_keywordIf the rune requires a keyword when scribed
rune_in_useUsed for some runes, this is for when you want a rune to not be usable when in use.
scribe_damageHhow much damage you take doing it
scribe_delayHow long the rune takes to create
started_creatingGlobal proc to call while the rune is being created

Var Details

can_be_scribed

Whether this rune can be scribed or if it's admin only / special spawned / whatever

construct_invoke

If constructs can invoke it

cultist_desc

The description of the rune shown to cultists who examine it

cultist_name

The name of the rune to cultists

erase_time

How long the rune takes to erase

failed_to_create

Global proc to call if the rune fails to be created

invocation

This is said by cultists when the rune is invoked.

invoke_damage

How much damage invokers take when invoking it

keyword

The actual keyword for the rune

log_when_erased

Used when you want to keep track of who erased the rune

no_scribe_boost

If a rune cannot be speed boosted while scribing on certain turfs

req_cultists

The amount of cultists required around the rune to invoke it.

req_cultists_text

If we have a description override for required cultists to invoke

req_keyword

If the rune requires a keyword when scribed

rune_in_use

Used for some runes, this is for when you want a rune to not be usable when in use.

scribe_damage

Hhow much damage you take doing it

scribe_delay

How long the rune takes to create

started_creating

Global proc to call while the rune is being created

\ No newline at end of file diff --git a/obj/effect/rune/convert.html b/obj/effect/rune/convert.html new file mode 100644 index 0000000000000..3df2f565a8056 --- /dev/null +++ b/obj/effect/rune/convert.html @@ -0,0 +1 @@ +/obj/effect/rune/convert - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

convert

Procs

animate_spawn_swordDoes an animation of a null rod transforming into a cult sword
try_spawn_swordTries to convert a null rod over the rune to a cult sword

Proc Details

animate_spawn_sword

Does an animation of a null rod transforming into a cult sword

try_spawn_sword

Tries to convert a null rod over the rune to a cult sword

\ No newline at end of file diff --git a/obj/effect/rune/narsie.html b/obj/effect/rune/narsie.html new file mode 100644 index 0000000000000..fa92661384b0d --- /dev/null +++ b/obj/effect/rune/narsie.html @@ -0,0 +1 @@ +/obj/effect/rune/narsie - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

narsie

Vars

usedHas the rune been used already?

Var Details

used

Has the rune been used already?

\ No newline at end of file diff --git a/obj/effect/rune/wall.html b/obj/effect/rune/wall.html new file mode 100644 index 0000000000000..719e8fd084cf8 --- /dev/null +++ b/obj/effect/rune/wall.html @@ -0,0 +1 @@ +/obj/effect/rune/wall - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wall

Vars

barrierThe barrier summoned by the rune when invoked. Tracked as a variable to prevent refreshing the barrier's integrity.

Var Details

barrier

The barrier summoned by the rune when invoked. Tracked as a variable to prevent refreshing the barrier's integrity.

\ No newline at end of file diff --git a/obj/effect/side_rune.html b/obj/effect/side_rune.html new file mode 100644 index 0000000000000..e66bd1e897e06 --- /dev/null +++ b/obj/effect/side_rune.html @@ -0,0 +1 @@ +/obj/effect/side_rune - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

side_rune

Vars

connected_runethe central rune that this is connected to

Var Details

connected_rune

the central rune that this is connected to

\ No newline at end of file diff --git a/obj/effect/skyfall_landingzone.html b/obj/effect/skyfall_landingzone.html new file mode 100644 index 0000000000000..d4e721f65c075 --- /dev/null +++ b/obj/effect/skyfall_landingzone.html @@ -0,0 +1 @@ +/obj/effect/skyfall_landingzone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

skyfall_landingzone

a simple indicator of where the skyfall is going to land.

Vars

mechareference to mecha following

Procs

followcalled when the mecha moves

Var Details

mecha

reference to mecha following

Proc Details

follow

called when the mecha moves

\ No newline at end of file diff --git a/obj/effect/slippery_acid.html b/obj/effect/slippery_acid.html new file mode 100644 index 0000000000000..a5e99a8cd27ff --- /dev/null +++ b/obj/effect/slippery_acid.html @@ -0,0 +1 @@ +/obj/effect/slippery_acid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

slippery_acid

Vars

duration_timehow long does the acid exist for

Var Details

duration_time

how long does the acid exist for

\ No newline at end of file diff --git a/obj/effect/spawner.html b/obj/effect/spawner.html new file mode 100644 index 0000000000000..852f9c78326af --- /dev/null +++ b/obj/effect/spawner.html @@ -0,0 +1 @@ +/obj/effect/spawner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

spawner

Procs

can_spawnOverride to define loot blacklist behavior

Proc Details

can_spawn

Override to define loot blacklist behavior

\ No newline at end of file diff --git a/obj/effect/spawner/armory_spawn.html b/obj/effect/spawner/armory_spawn.html new file mode 100644 index 0000000000000..4886305633aaa --- /dev/null +++ b/obj/effect/spawner/armory_spawn.html @@ -0,0 +1 @@ +/obj/effect/spawner/armory_spawn - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

armory_spawn

Vars

fan_out_itemsDo we fan out the items spawned for a natural effect?
gunsA list of possible guns to spawn.
mags_to_spawnHow many mags per gun do we spawn, if it takes magazines.
vertical_gunsDo we want to angle it so that it is horizontal?

Var Details

fan_out_items

Do we fan out the items spawned for a natural effect?

guns

A list of possible guns to spawn.

mags_to_spawn

How many mags per gun do we spawn, if it takes magazines.

vertical_guns

Do we want to angle it so that it is horizontal?

\ No newline at end of file diff --git a/obj/effect/spawner/newbomb.html b/obj/effect/spawner/newbomb.html new file mode 100644 index 0000000000000..e7e6031b9576a --- /dev/null +++ b/obj/effect/spawner/newbomb.html @@ -0,0 +1,5 @@ +/obj/effect/spawner/newbomb - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

newbomb

Spawns a TTV.

Procs

InitializeThe part of code that actually spawns the bomb. Always call the parent's initialize first for subtypes of these.

Proc Details

Initialize

The part of code that actually spawns the bomb. Always call the parent's initialize first for subtypes of these.

+

Arguments:

+
    +
  • assembly - An assembly typepath to add to the ttv.
  • +
\ No newline at end of file diff --git a/obj/effect/spawner/random.html b/obj/effect/spawner/random.html new file mode 100644 index 0000000000000..6db05829c7a1d --- /dev/null +++ b/obj/effect/spawner/random.html @@ -0,0 +1,3 @@ +/obj/effect/spawner/random - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

random

Base class for all random spawners.

Vars

anchoredStops persistent lootdrop spawns from being shoved into lockers
lootA list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect)
loot_subtype_pathThe subtypes (this excludes the provided path) to combine with the loot list
loot_type_pathThe subtypes AND type to combine with the loot list
remove_if_cant_spawnWhether items that cannot be spawned will be removed from the loot list. Keep it TRUE unless you've a good reason.
spawn_all_lootWhether the spawner should spawn all the loot in the list
spawn_loot_chanceThe chance for the spawner to create loot (ignores spawn_loot_count)
spawn_loot_countHow many items will be spawned
spawn_loot_doubleIf the same item can be spawned twice
spawn_loot_splitWhether the items should be distributed to offsets 0,1,-1,2,-2,3,-3.. This overrides pixel_x/y on the spawner itself
spawn_loot_split_pixel_offsetsThe pixel x/y divider offsets for spawn_loot_split (spaced 1 pixel apart by default)
spawn_random_offsetWhether the items should have a random pixel_x/y offset (maxium offset distance is ±16 pixels for x/y)
spawn_scatter_radiusDetermines how big of a range (in tiles) we should scatter things in.

Procs

get_spawn_locationsIf the spawner has a spawn_scatter_radius set, this creates a list of nearby turfs available that are in view and have an unblocked line to them.
make_itemMakes the actual item related to our spawner.
skew_loot_weightsLevels out the weights of loot if lower than 1, or makes rarer spawns even more rare.
spawn_lootIf the spawner has any loot defined, randomly picks some and spawns it. Does not cleanup the spawner.

Var Details

anchored

Stops persistent lootdrop spawns from being shoved into lockers

loot

A list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect)

loot_subtype_path

The subtypes (this excludes the provided path) to combine with the loot list

loot_type_path

The subtypes AND type to combine with the loot list

remove_if_cant_spawn

Whether items that cannot be spawned will be removed from the loot list. Keep it TRUE unless you've a good reason.

spawn_all_loot

Whether the spawner should spawn all the loot in the list

spawn_loot_chance

The chance for the spawner to create loot (ignores spawn_loot_count)

spawn_loot_count

How many items will be spawned

spawn_loot_double

If the same item can be spawned twice

spawn_loot_split

Whether the items should be distributed to offsets 0,1,-1,2,-2,3,-3.. This overrides pixel_x/y on the spawner itself

spawn_loot_split_pixel_offsets

The pixel x/y divider offsets for spawn_loot_split (spaced 1 pixel apart by default)

spawn_random_offset

Whether the items should have a random pixel_x/y offset (maxium offset distance is ±16 pixels for x/y)

spawn_scatter_radius

Determines how big of a range (in tiles) we should scatter things in.

Proc Details

get_spawn_locations

If the spawner has a spawn_scatter_radius set, this creates a list of nearby turfs available that are in view and have an unblocked line to them.

make_item

Makes the actual item related to our spawner.

+

spawn_loc - where are we spawning it? +type_path_to_make - what are we spawning?

skew_loot_weights

Levels out the weights of loot if lower than 1, or makes rarer spawns even more rare.

spawn_loot

If the spawner has any loot defined, randomly picks some and spawns it. Does not cleanup the spawner.

\ No newline at end of file diff --git a/obj/effect/spawner/random/environmentally_safe_anomaly.html b/obj/effect/spawner/random/environmentally_safe_anomaly.html new file mode 100644 index 0000000000000..82263ce92de5e --- /dev/null +++ b/obj/effect/spawner/random/environmentally_safe_anomaly.html @@ -0,0 +1 @@ +/obj/effect/spawner/random/environmentally_safe_anomaly - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

environmentally_safe_anomaly

Spawns a stable anomally that doesnt drop cores and doesn't destroy or alter the environment

Vars

anchor_anomalyDo we anchor the anomaly? Set to true if you don't want anomalies drifting away (like if theyre in space or something)

Var Details

anchor_anomaly

Do we anchor the anomaly? Set to true if you don't want anomalies drifting away (like if theyre in space or something)

\ No newline at end of file diff --git a/obj/effect/spawner/random/glass_debris.html b/obj/effect/spawner/random/glass_debris.html new file mode 100644 index 0000000000000..291449afa9487 --- /dev/null +++ b/obj/effect/spawner/random/glass_debris.html @@ -0,0 +1 @@ +/obj/effect/spawner/random/glass_debris - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

glass_debris

Vars

lootWeighted list for the debris we spawn

Var Details

loot

Weighted list for the debris we spawn

\ No newline at end of file diff --git a/obj/effect/spawner/random/glass_shards.html b/obj/effect/spawner/random/glass_shards.html new file mode 100644 index 0000000000000..af967df514e01 --- /dev/null +++ b/obj/effect/spawner/random/glass_shards.html @@ -0,0 +1 @@ +/obj/effect/spawner/random/glass_shards - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

glass_shards

Vars

max_spawnMax shards we generate
min_spawnMin shards we generate

Var Details

max_spawn

Max shards we generate

min_spawn

Min shards we generate

\ No newline at end of file diff --git a/obj/effect/spawner/random/trash/crushed_can.html b/obj/effect/spawner/random/trash/crushed_can.html new file mode 100644 index 0000000000000..854881c3f0f2a --- /dev/null +++ b/obj/effect/spawner/random/trash/crushed_can.html @@ -0,0 +1 @@ +/obj/effect/spawner/random/trash/crushed_can - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crushed_can

Vars

soda_iconsWhether the can will spawn with this spawner's icon_state instead of a random one (used for mapedits)

Var Details

soda_icons

Whether the can will spawn with this spawner's icon_state instead of a random one (used for mapedits)

\ No newline at end of file diff --git a/obj/effect/spawner/random/trash/graffiti.html b/obj/effect/spawner/random/trash/graffiti.html new file mode 100644 index 0000000000000..900f35aca2cbf --- /dev/null +++ b/obj/effect/spawner/random/trash/graffiti.html @@ -0,0 +1 @@ +/obj/effect/spawner/random/trash/graffiti - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

graffiti

Vars

random_colorWhether the graffiti will spawn with a random color (used for mapedits)
random_iconWhether the graffiti will spawn with this spawner's icon_state instead of a random one (used for mapedits)

Var Details

random_color

Whether the graffiti will spawn with a random color (used for mapedits)

random_icon

Whether the graffiti will spawn with this spawner's icon_state instead of a random one (used for mapedits)

\ No newline at end of file diff --git a/obj/effect/spawner/random/vending.html b/obj/effect/spawner/random/vending.html new file mode 100644 index 0000000000000..2ce415f2f68a9 --- /dev/null +++ b/obj/effect/spawner/random/vending.html @@ -0,0 +1 @@ +/obj/effect/spawner/random/vending - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vending

Vars

hackedwhether it hacks the vendor on spawn (only used for mapedits)

Var Details

hacked

whether it hacks the vendor on spawn (only used for mapedits)

\ No newline at end of file diff --git a/obj/effect/spawner/structure/window.html b/obj/effect/spawner/structure/window.html new file mode 100644 index 0000000000000..9fce1ff1bcdf9 --- /dev/null +++ b/obj/effect/spawner/structure/window.html @@ -0,0 +1,9 @@ +/obj/effect/spawner/structure/window - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

window

Vars

polarizer_idA variable for mappers to make the windows spawned by this spawner to +start polarized, with a specific id linked, for the polarization +controller to link to. Mapping stuff. Should usually be a string, so it +doesn't get confused with what players can make the id on the controller be. +FOR MAPPERS ONLY. DONE THIS WAY TO AVOID HAVING TO CREATE A TON OF SUBTYPES.

Var Details

polarizer_id

A variable for mappers to make the windows spawned by this spawner to +start polarized, with a specific id linked, for the polarization +controller to link to. Mapping stuff. Should usually be a string, so it +doesn't get confused with what players can make the id on the controller be. +FOR MAPPERS ONLY. DONE THIS WAY TO AVOID HAVING TO CREATE A TON OF SUBTYPES.

\ No newline at end of file diff --git a/obj/effect/spawner/xmastree.html b/obj/effect/spawner/xmastree.html new file mode 100644 index 0000000000000..20b0125d8fa86 --- /dev/null +++ b/obj/effect/spawner/xmastree.html @@ -0,0 +1 @@ +/obj/effect/spawner/xmastree - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

xmastree

Vars

christmas_treeChristmas tree, presents included.
festive_treeChristmas tree, no presents included.

Var Details

christmas_tree

Christmas tree, presents included.

festive_tree

Christmas tree, no presents included.

\ No newline at end of file diff --git a/obj/effect/spectre_of_resurrection.html b/obj/effect/spectre_of_resurrection.html new file mode 100644 index 0000000000000..3265ea29509c2 --- /dev/null +++ b/obj/effect/spectre_of_resurrection.html @@ -0,0 +1 @@ +/obj/effect/spectre_of_resurrection - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spectre_of_resurrection

A ghostly image of a mob showing where and what is going to respawn

Vars

corpseWho are we reviving?
dead_mindWho if anyone is playing as them?

Procs

on_corpse_deletedIf the body is destroyed then we can't come back, F
on_corpse_revivedRemove our stored corpse back to the living world
on_mind_lostIf the mind is deleted somehow we just don't transfer it on revival
reviveBring our body back to life
set_up_resurrectionPrepare to revive someone
setup_iconCopy appearance from ressurecting mob

Var Details

corpse

Who are we reviving?

dead_mind

Who if anyone is playing as them?

Proc Details

on_corpse_deleted

If the body is destroyed then we can't come back, F

on_corpse_revived

Remove our stored corpse back to the living world

on_mind_lost

If the mind is deleted somehow we just don't transfer it on revival

revive

Bring our body back to life

set_up_resurrection

Prepare to revive someone

setup_icon

Copy appearance from ressurecting mob

\ No newline at end of file diff --git a/obj/effect/spectre_of_resurrection/human.html b/obj/effect/spectre_of_resurrection/human.html new file mode 100644 index 0000000000000..44ac1fd8c9bec --- /dev/null +++ b/obj/effect/spectre_of_resurrection/human.html @@ -0,0 +1 @@ +/obj/effect/spectre_of_resurrection/human - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

human

A ressurection spectre with extra behaviour for humans

Vars

human_appearanceStored data used to restore someone to a fascimile of what they were before

Var Details

human_appearance

Stored data used to restore someone to a fascimile of what they were before

\ No newline at end of file diff --git a/obj/effect/step_trigger/thrower.html b/obj/effect/step_trigger/thrower.html new file mode 100644 index 0000000000000..0e8533d0dc569 --- /dev/null +++ b/obj/effect/step_trigger/thrower.html @@ -0,0 +1 @@ +/obj/effect/step_trigger/thrower - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

thrower

Vars

affectingList of moving atoms mapped to their inital direction

Var Details

affecting

List of moving atoms mapped to their inital direction

\ No newline at end of file diff --git a/obj/effect/sunbeam.html b/obj/effect/sunbeam.html new file mode 100644 index 0000000000000..bfa81f1063bee --- /dev/null +++ b/obj/effect/sunbeam.html @@ -0,0 +1 @@ +/obj/effect/sunbeam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sunbeam

Vars

beam_offset_yHow much do we offset the mid beam?
movement_cooldownUsed to control how slowly the beam moves.
obliteration_cooldownOur obliteration cooldown.
obliteration_range_fireThe range of fire to spawn.
obliteration_range_flattenThe range of objects and atoms to be atomised.
soundloopOur sound loop.
target_atomA reference to the target we will move towards

Var Details

beam_offset_y

How much do we offset the mid beam?

movement_cooldown

Used to control how slowly the beam moves.

obliteration_cooldown

Our obliteration cooldown.

obliteration_range_fire

The range of fire to spawn.

obliteration_range_flatten

The range of objects and atoms to be atomised.

soundloop

Our sound loop.

target_atom

A reference to the target we will move towards

\ No newline at end of file diff --git a/obj/effect/temp_visual.html b/obj/effect/temp_visual.html new file mode 100644 index 0000000000000..e4df5d03ab51a --- /dev/null +++ b/obj/effect/temp_visual.html @@ -0,0 +1 @@ +/obj/effect/temp_visual - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

temp_visual

temporary visual effects

Vars

durationtime, in deciseconds, that this object will exist
randomdirif true, will pick a random direction when created.
timeridid of the deletion timer

Var Details

duration

time, in deciseconds, that this object will exist

randomdir

if true, will pick a random direction when created.

timerid

id of the deletion timer

\ No newline at end of file diff --git a/obj/effect/temp_visual/brim_burst.html b/obj/effect/temp_visual/brim_burst.html new file mode 100644 index 0000000000000..df0d37a270808 --- /dev/null +++ b/obj/effect/temp_visual/brim_burst.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/brim_burst - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

brim_burst

Show a funny animation before doing an explosion

Procs

bangMake an explosion

Proc Details

bang

Make an explosion

\ No newline at end of file diff --git a/obj/effect/temp_visual/circle_wave.html b/obj/effect/temp_visual/circle_wave.html new file mode 100644 index 0000000000000..cdedad08027d8 --- /dev/null +++ b/obj/effect/temp_visual/circle_wave.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/circle_wave - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

circle_wave

Visual effect spawned when the bioscrambler scrambles your bio

Vars

amount_to_scaleHow far the effect would scale in size

Var Details

amount_to_scale

How far the effect would scale in size

\ No newline at end of file diff --git a/obj/effect/temp_visual/decoy/twitch_afterimage.html b/obj/effect/temp_visual/decoy/twitch_afterimage.html new file mode 100644 index 0000000000000..5824da9bafcab --- /dev/null +++ b/obj/effect/temp_visual/decoy/twitch_afterimage.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/decoy/twitch_afterimage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

twitch_afterimage

Vars

matrix_endThe color matrix it should be by the time it despawns
matrix_startThe color matrix it should be at spawn

Var Details

matrix_end

The color matrix it should be by the time it despawns

matrix_start

The color matrix it should be at spawn

\ No newline at end of file diff --git a/obj/effect/temp_visual/drawing_heretic_rune.html b/obj/effect/temp_visual/drawing_heretic_rune.html new file mode 100644 index 0000000000000..54bf9d2260994 --- /dev/null +++ b/obj/effect/temp_visual/drawing_heretic_rune.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/drawing_heretic_rune - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

drawing_heretic_rune

Vars

animation_stateWe only set this state after setting the colour, otherwise the animation doesn't colour correctly

Var Details

animation_state

We only set this state after setting the colour, otherwise the animation doesn't colour correctly

\ No newline at end of file diff --git a/obj/effect/temp_visual/effect_trail.html b/obj/effect/temp_visual/effect_trail.html new file mode 100644 index 0000000000000..a002c756d93b0 --- /dev/null +++ b/obj/effect/temp_visual/effect_trail.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/effect_trail - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

effect_trail

An invisible effect which chases a target, spawning spikes every so often.

Vars

homingDo we home in after we started moving?
max_spawnedStop spawning if we have this many effects already
move_speedSpeed at which we chase target
movementHandles chasing the target
spawn_intervalHow often do we spawn our other effect?
spawned_effectTypepath of our spawned effect
targetWhat are we chasing?

Procs

on_target_invalidDestroy ourselves if the target is no longer valid

Var Details

homing

Do we home in after we started moving?

max_spawned

Stop spawning if we have this many effects already

move_speed

Speed at which we chase target

movement

Handles chasing the target

spawn_interval

How often do we spawn our other effect?

spawned_effect

Typepath of our spawned effect

target

What are we chasing?

Proc Details

on_target_invalid

Destroy ourselves if the target is no longer valid

\ No newline at end of file diff --git a/obj/effect/temp_visual/emerging_ground_spike.html b/obj/effect/temp_visual/emerging_ground_spike.html new file mode 100644 index 0000000000000..d803e779dab2e --- /dev/null +++ b/obj/effect/temp_visual/emerging_ground_spike.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/emerging_ground_spike - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

emerging_ground_spike

A spike comes out of the ground, dealing damage after a short delay

Vars

damage_blacklist_typecacheTypecache of types of mobs not to damage
harm_delayTime until we hurt people stood on us
impale_damageDamage to deal on impale
position_varianceAmount by which to vary our position on spawn
standing_damage_zonesWeighted list of body zones to target while standing

Procs

impaleStab people who are stood on us after a delay in the shins

Var Details

damage_blacklist_typecache

Typecache of types of mobs not to damage

harm_delay

Time until we hurt people stood on us

impale_damage

Damage to deal on impale

position_variance

Amount by which to vary our position on spawn

standing_damage_zones

Weighted list of body zones to target while standing

Proc Details

impale

Stab people who are stood on us after a delay in the shins

\ No newline at end of file diff --git a/obj/effect/temp_visual/falling_rocket.html b/obj/effect/temp_visual/falling_rocket.html new file mode 100644 index 0000000000000..259baf87efb90 --- /dev/null +++ b/obj/effect/temp_visual/falling_rocket.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/falling_rocket - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

falling_rocket

Vars

explosion_damagedamage of our explosion
explosion_radiusthe radius of our explosion

Var Details

explosion_damage

damage of our explosion

explosion_radius

the radius of our explosion

\ No newline at end of file diff --git a/obj/effect/temp_visual/hivebrood_spawn.html b/obj/effect/temp_visual/hivebrood_spawn.html new file mode 100644 index 0000000000000..4c5f46f692e04 --- /dev/null +++ b/obj/effect/temp_visual/hivebrood_spawn.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/hivebrood_spawn - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

hivebrood_spawn

Fast animation to show a worm spawning

Procs

create_fromSet up our visuals and start a timer for a callback

Proc Details

create_from

Set up our visuals and start a timer for a callback

\ No newline at end of file diff --git a/obj/effect/temp_visual/legion_skull_depart.html b/obj/effect/temp_visual/legion_skull_depart.html new file mode 100644 index 0000000000000..0437c11da5770 --- /dev/null +++ b/obj/effect/temp_visual/legion_skull_depart.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/legion_skull_depart - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

legion_skull_depart

Animation for launching a skull

Procs

set_appearanceCopy appearance from the passed atom type

Proc Details

set_appearance

Copy appearance from the passed atom type

\ No newline at end of file diff --git a/obj/effect/temp_visual/legion_skull_land.html b/obj/effect/temp_visual/legion_skull_land.html new file mode 100644 index 0000000000000..bc9af9c338e0c --- /dev/null +++ b/obj/effect/temp_visual/legion_skull_land.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/legion_skull_land - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

legion_skull_land

Animation for landing a skull

Procs

set_appearanceCopy appearance from the passed atom type and store what to do on animation complete

Proc Details

set_appearance

Copy appearance from the passed atom type and store what to do on animation complete

\ No newline at end of file diff --git a/obj/effect/temp_visual/lesser_carp_rift.html b/obj/effect/temp_visual/lesser_carp_rift.html new file mode 100644 index 0000000000000..170abb6fb96f4 --- /dev/null +++ b/obj/effect/temp_visual/lesser_carp_rift.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/lesser_carp_rift - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lesser_carp_rift

If you touch the entrance you are teleported to the exit, exit doesn't do anything

Vars

destroy_timerHolds a reference to a timer until this gets deleted

Var Details

destroy_timer

Holds a reference to a timer until this gets deleted

\ No newline at end of file diff --git a/obj/effect/temp_visual/lesser_carp_rift/entrance.html b/obj/effect/temp_visual/lesser_carp_rift/entrance.html new file mode 100644 index 0000000000000..e463842d0ce0b --- /dev/null +++ b/obj/effect/temp_visual/lesser_carp_rift/entrance.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/lesser_carp_rift/entrance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

entrance

If you touch this you are taken to the exit

Vars

disorient_timeClick CD to apply after teleporting
exit_locsWhere you get teleported to

Var Details

disorient_time

Click CD to apply after teleporting

exit_locs

Where you get teleported to

\ No newline at end of file diff --git a/obj/effect/temp_visual/lightning_strike.html b/obj/effect/temp_visual/lightning_strike.html new file mode 100644 index 0000000000000..bd0f6687dde2e --- /dev/null +++ b/obj/effect/temp_visual/lightning_strike.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/lightning_strike - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lightning_strike

Vars

damage_blacklist_typecachedon't hurt these guys capiche?

Var Details

damage_blacklist_typecache

don't hurt these guys capiche?

\ No newline at end of file diff --git a/obj/effect/temp_visual/meteor_heart_death.html b/obj/effect/temp_visual/meteor_heart_death.html new file mode 100644 index 0000000000000..23210cb81cdeb --- /dev/null +++ b/obj/effect/temp_visual/meteor_heart_death.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/meteor_heart_death - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

meteor_heart_death

Dramatic death animation for the meteor heart mob

Vars

soundloopLooping heartbeat sound

Procs

gibMake this place a mess

Var Details

soundloop

Looping heartbeat sound

Proc Details

gib

Make this place a mess

\ No newline at end of file diff --git a/obj/effect/temp_visual/mining_overlay.html b/obj/effect/temp_visual/mining_overlay.html new file mode 100644 index 0000000000000..83c18ddf4cd29 --- /dev/null +++ b/obj/effect/temp_visual/mining_overlay.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/mining_overlay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mining_overlay

Vars

easing_styleWhat animation easing to use when we create the ore overlay on rock walls/ore vents.

Var Details

easing_style

What animation easing to use when we create the ore overlay on rock walls/ore vents.

\ No newline at end of file diff --git a/obj/effect/temp_visual/portal_animation.html b/obj/effect/temp_visual/portal_animation.html new file mode 100644 index 0000000000000..f4faf14b4040b --- /dev/null +++ b/obj/effect/temp_visual/portal_animation.html @@ -0,0 +1,2 @@ +/obj/effect/temp_visual/portal_animation - /tg/ Station 13
/tg/ Station 13 - Modules - Types

portal_animation

Animation used for transitioning atoms which are teleporting somewhere via a portal

+

To use, pass it the atom doing the teleporting and the atom that is being teleported in init.

\ No newline at end of file diff --git a/obj/effect/temp_visual/resonance.html b/obj/effect/temp_visual/resonance.html new file mode 100644 index 0000000000000..424625086bfc8 --- /dev/null +++ b/obj/effect/temp_visual/resonance.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/resonance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

resonance

Vars

adding_failurethe number that is added to the failure_prob. Will default to 50
creatorthe parent creator (user) of this field
damage_multiplierthe modifier to resonance_damage; affected by the quick_burst_mod from the resonator
failure_probthe probability that the field will not be able to spread
parent_resonatorthe parent resonator of this field
resonance_damagethe amount of damage living beings will take whilst inside the field during its burst
rupturingwhether the field is rupturing currently or not (to prevent recursion)

Var Details

adding_failure

the number that is added to the failure_prob. Will default to 50

creator

the parent creator (user) of this field

damage_multiplier

the modifier to resonance_damage; affected by the quick_burst_mod from the resonator

failure_prob

the probability that the field will not be able to spread

parent_resonator

the parent resonator of this field

resonance_damage

the amount of damage living beings will take whilst inside the field during its burst

rupturing

whether the field is rupturing currently or not (to prevent recursion)

\ No newline at end of file diff --git a/obj/effect/temp_visual/slippery_ice.html b/obj/effect/temp_visual/slippery_ice.html new file mode 100644 index 0000000000000..a6a9f0f0c8112 --- /dev/null +++ b/obj/effect/temp_visual/slippery_ice.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/slippery_ice - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

slippery_ice

Vars

phase_in_periodhow long does it take for the effect to phase in

Var Details

phase_in_period

how long does it take for the effect to phase in

\ No newline at end of file diff --git a/obj/effect/temp_visual/sonar_ping.html b/obj/effect/temp_visual/sonar_ping.html new file mode 100644 index 0000000000000..a0f61167805d7 --- /dev/null +++ b/obj/effect/temp_visual/sonar_ping.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/sonar_ping - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sonar_ping

Vars

creature_xCreature's X & Y coords, which can either be overridden or kept the same depending on follow_creature.
follow_creatureDoes the visual follow the creature?
mod_manThe person in the modsuit at the moment, really just used to remove this from their screen
modsuit_imageThe image shown to modsuit users
pinged_personThe creature we're placing this on
real_icon_stateThe icon state applied to the image created for this ping.

Procs

add_mindAdd the image to the modsuit wearer's screen
processUpdate the position of the ping while it's still up. Not sure if i need to use the full proc but just being safe
remove_mindRemove the image from the modsuit wearer's screen

Var Details

creature_x

Creature's X & Y coords, which can either be overridden or kept the same depending on follow_creature.

follow_creature

Does the visual follow the creature?

mod_man

The person in the modsuit at the moment, really just used to remove this from their screen

modsuit_image

The image shown to modsuit users

pinged_person

The creature we're placing this on

real_icon_state

The icon state applied to the image created for this ping.

Proc Details

add_mind

Add the image to the modsuit wearer's screen

process

Update the position of the ping while it's still up. Not sure if i need to use the full proc but just being safe

remove_mind

Remove the image from the modsuit wearer's screen

\ No newline at end of file diff --git a/obj/effect/temp_visual/teleporting_tornado.html b/obj/effect/temp_visual/teleporting_tornado.html new file mode 100644 index 0000000000000..a9c35bacb3091 --- /dev/null +++ b/obj/effect/temp_visual/teleporting_tornado.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/teleporting_tornado - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

teleporting_tornado

Teleporting tornado, spawned by warp whistle, teleports the user if they manage to pick them up.

Vars

pickedup_mobsList of all mobs currently held by the tornado.
whistleReference to the whistle

Procs

DestroyDestroy the tornado and teleport everyone on it away.
check_teleportCheck if anything the tornado crosses is the creator.

Var Details

pickedup_mobs

List of all mobs currently held by the tornado.

whistle

Reference to the whistle

Proc Details

Destroy

Destroy the tornado and teleport everyone on it away.

check_teleport

Check if anything the tornado crosses is the creator.

\ No newline at end of file diff --git a/obj/effect/temp_visual/thrusting_spines.html b/obj/effect/temp_visual/thrusting_spines.html new file mode 100644 index 0000000000000..dcbde2ba87864 --- /dev/null +++ b/obj/effect/temp_visual/thrusting_spines.html @@ -0,0 +1 @@ +/obj/effect/temp_visual/thrusting_spines - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

thrusting_spines

Vars

activeIf this will trigger a trap when entered
impale_damageDamage to deal on activation
standing_damage_zonesWeighted list of body zones to target while standing
thrust_delayTime between activations

Procs

on_enteredCalled when something enters our turf, if it is a non-flying mob then give it a stab
readyCalled when we're ready to start impaling people
retractCalled when it is time to stop impaling people

Var Details

active

If this will trigger a trap when entered

impale_damage

Damage to deal on activation

standing_damage_zones

Weighted list of body zones to target while standing

thrust_delay

Time between activations

Proc Details

on_entered

Called when something enters our turf, if it is a non-flying mob then give it a stab

ready

Called when we're ready to start impaling people

retract

Called when it is time to stop impaling people

\ No newline at end of file diff --git a/obj/effect/timestop.html b/obj/effect/timestop.html new file mode 100644 index 0000000000000..40afda2f6bd54 --- /dev/null +++ b/obj/effect/timestop.html @@ -0,0 +1 @@ +/obj/effect/timestop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

timestop

Vars

channelledif true, immune atoms moving ends the timestop instead of duration.
hiddenhides time icon effect and mutes sound

Var Details

channelled

if true, immune atoms moving ends the timestop instead of duration.

hidden

hides time icon effect and mutes sound

\ No newline at end of file diff --git a/obj/effect/trading_card_panel.html b/obj/effect/trading_card_panel.html new file mode 100644 index 0000000000000..afd61cab4fbff --- /dev/null +++ b/obj/effect/trading_card_panel.html @@ -0,0 +1 @@ +/obj/effect/trading_card_panel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

trading_card_panel

A display panel that renders a set of icons (in this case mana crystals), this is generated by /obj/machinery/trading_card_button and can be manipulated by the button which generates it.

Vars

empty_gem_iconThe icon of an "inactive" gem.
gem_bar_offset_wWhere the gem bar is placed in relation to the centre of the panel on the X axis, useful for multi-column displays.
gem_bar_offset_zWhere the gem bar is placed in relation to the centre of the panel on the Y axis.
gem_iconThe icon of an "active" gem.
gem_icon_fileFile that both icon states for gems are pulled from
gem_slotsHow many "inactive" gems will appear
gem_titleThe name of what this panel tracks, used in the description
gemsHow much "active" gems will appear
individual_gem_offset_xThe gap between each gem on the X axis
individual_gem_offset_yThe gap between each gem on the Y axis
max_gemsThe maximum number of inactive or active gems that can be set.
number_of_columnsThe maximum number of columns that can be displayed on the panel.
number_of_rowsThe maximum number of rows that can be displayed on the panel.

Var Details

empty_gem_icon

The icon of an "inactive" gem.

gem_bar_offset_w

Where the gem bar is placed in relation to the centre of the panel on the X axis, useful for multi-column displays.

gem_bar_offset_z

Where the gem bar is placed in relation to the centre of the panel on the Y axis.

gem_icon

The icon of an "active" gem.

gem_icon_file

File that both icon states for gems are pulled from

gem_slots

How many "inactive" gems will appear

gem_title

The name of what this panel tracks, used in the description

gems

How much "active" gems will appear

individual_gem_offset_x

The gap between each gem on the X axis

individual_gem_offset_y

The gap between each gem on the Y axis

max_gems

The maximum number of inactive or active gems that can be set.

number_of_columns

The maximum number of columns that can be displayed on the panel.

number_of_rows

The maximum number of rows that can be displayed on the panel.

\ No newline at end of file diff --git a/obj/effect/turf_decal.html b/obj/effect/turf_decal.html new file mode 100644 index 0000000000000..27c0d8b098163 --- /dev/null +++ b/obj/effect/turf_decal.html @@ -0,0 +1 @@ +/obj/effect/turf_decal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

turf_decal

Vars

patternThe pattern used when recoloring the decal. If null, it'll use the def of the station or holiday.
use_holiday_colorsDoes this decal change colors on holidays

Var Details

pattern

The pattern used when recoloring the decal. If null, it'll use the def of the station or holiday.

use_holiday_colors

Does this decal change colors on holidays

\ No newline at end of file diff --git a/obj/effect/watcher_orbiter.html b/obj/effect/watcher_orbiter.html new file mode 100644 index 0000000000000..c36e708f4e414 --- /dev/null +++ b/obj/effect/watcher_orbiter.html @@ -0,0 +1 @@ +/obj/effect/watcher_orbiter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

watcher_orbiter

Orbiting visual which shoots at mining mobs

Vars

fire_delayTime between taking potshots at goliaths
on_death_multiplierHow much faster do we shoot when avenging our parent?
parentWho are we following?
projectile_soundSound to make when we shoot
projectile_typeType of projectile we fire
shot_cooldownTime taken between shots
target_factionTypes of mobs to attack
trackerDatum which keeps us hanging out with our parent

Procs

followSet ourselves up to track and orbit around a guy
on_glide_size_changedMake sure we glide at the same speed as our parent
on_parent_deletedCalled if the guy we're tracking is deleted somehow
on_parent_diedWe must guard this corpse
on_parent_movedFollow our parent
on_parent_revivedExit hyperactive mode
orbit_animationDo our orbiting animation
shoot_atTake a shot

Var Details

fire_delay

Time between taking potshots at goliaths

on_death_multiplier

How much faster do we shoot when avenging our parent?

parent

Who are we following?

projectile_sound

Sound to make when we shoot

projectile_type

Type of projectile we fire

shot_cooldown

Time taken between shots

target_faction

Types of mobs to attack

tracker

Datum which keeps us hanging out with our parent

Proc Details

follow

Set ourselves up to track and orbit around a guy

on_glide_size_changed

Make sure we glide at the same speed as our parent

on_parent_deleted

Called if the guy we're tracking is deleted somehow

on_parent_died

We must guard this corpse

on_parent_moved

Follow our parent

on_parent_revived

Exit hyperactive mode

orbit_animation

Do our orbiting animation

shoot_at

Take a shot

\ No newline at end of file diff --git a/obj/effect/wisp_mobile.html b/obj/effect/wisp_mobile.html new file mode 100644 index 0000000000000..b1d128518b64b --- /dev/null +++ b/obj/effect/wisp_mobile.html @@ -0,0 +1 @@ +/obj/effect/wisp_mobile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wisp_mobile

Mini car where people drive around in in their mangled corpse to heal a bit before they get dumped back on station

Vars

can_movewhen can we move again?
food_typewhat do we eatt?
heal_per_foodhow much do we heal per food?
move_delayDelay between movements
wisp_driver_traitsTraits given to the wisp driver

Procs

maybe_loop_usLoop us around, maybe, if we're going to bump into a wall

Var Details

can_move

when can we move again?

food_type

what do we eatt?

heal_per_food

how much do we heal per food?

move_delay

Delay between movements

wisp_driver_traits

Traits given to the wisp driver

Proc Details

maybe_loop_us

Loop us around, maybe, if we're going to bump into a wall

\ No newline at end of file diff --git a/obj/effect/wizard_magnetism.html b/obj/effect/wizard_magnetism.html new file mode 100644 index 0000000000000..21650a9a13ae8 --- /dev/null +++ b/obj/effect/wizard_magnetism.html @@ -0,0 +1 @@ +/obj/effect/wizard_magnetism - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wizard_magnetism

Vars

ownerWe need to orbit around someone.

Var Details

owner

We need to orbit around someone.

\ No newline at end of file diff --git a/obj/gravity_fluff_field.html b/obj/gravity_fluff_field.html new file mode 100644 index 0000000000000..d522449077fe3 --- /dev/null +++ b/obj/gravity_fluff_field.html @@ -0,0 +1 @@ +/obj/gravity_fluff_field - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gravity_fluff_field

Vars

emissiveour emissive appearance

Var Details

emissive

our emissive appearance

\ No newline at end of file diff --git a/obj/item.html b/obj/item.html new file mode 100644 index 0000000000000..06794c6c6ace3 --- /dev/null +++ b/obj/item.html @@ -0,0 +1,213 @@ +/obj/item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

item

Anything you can pick up and hold.

Vars

actionslist of /datum/action's that this item has.
actions_typeslist of paths of action datums to give to the item on New().
age_restrictedWhether spessmen with an ID with an age below AGE_MINOR (20 by default) can buy this item
alternate_worn_layerForced mob worn layer instead of the standard preferred size.
armour_penetrationpercentage of armour effectiveness to remove
attack_speedThe click cooldown given after attacking. Lower numbers means faster attacks
attack_verb_continuousUsed in atom/proc/attackby to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]"
belt_icon_stateIcon state for the belt overlay, if null the normal icon_state will be used.
block_chanceChance of blocking incoming attack
block_effectEffect of blocking
block_soundSound which is produced when blocking an attack
body_parts_coveredWhat body parts are covered by the clothing when you wear it
breakouttimeHow long it takes to resist out of the item (cuffs and such)
cold_protectionflags which determine which body parts are protected from cold. [See here][HEAD]
current_skinHas the item been reskinned?
custom_premium_pricePrice of an item in a vending machine, overriding the premium vending machine price. Define in terms of paycheck defines as opposed to raw numbers.
custom_pricePrice of an item in a vending machine, overriding the base vending machine price. Define in terms of paycheck defines as opposed to raw numbers.
digitigrade_greyscale_colorsGreyscale colors used when generating digitigrade versions of the sprite. +Optional - If not set it will default to normal greyscale colors, or approximate them if those are unset as well
digitigrade_greyscale_config_wornGreyscale config used when generating digitigrade versions of the sprite.
dog_fashionReference to the datum that determines whether dogs can wear the item: Needs to be in /obj/item because corgis can wear a lot of non-clothing items
drop_soundSound uses when dropping the item, or when its thrown if a thrown sound isn't specified.
dye_colorUsed as the dye color source in the washing machine only (at the moment). Can be a hex color or a key corresponding to a registry entry, see washing_machine.dm
dying_keyWhat dye registry should be looked at when dying this item; see washing_machine.dm
embed_dataStores embedding data
embed_typeDoes it embed and if yes, what kind of embed
equip_delay_otherIn deciseconds, how long an item takes to put on another person
equip_delay_selfIn deciseconds, how long an item takes to equip; counts only for normal clothing slots, not pockets etc.
equip_soundSound used when equipping the item into a valid slot
extra_slot_flagsUnderwear and extra slots
fantasy_modificationsA lazylist used for applying fantasy values, contains the actual modification applied to a variable.
flags_coverfor flags such as [GLASSESCOVERSEYES]
flags_invThis flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc.
force_stringstring form of an item's force. Edit this var only to set a custom force string
greyscale_config_beltThe config type to use for greyscaled belt overlays. Both this and greyscale_colors must be assigned to work.
greyscale_config_inhand_leftThe config type to use for greyscaled left inhand sprites. Both this and greyscale_colors must be assigned to work.
greyscale_config_inhand_rightThe config type to use for greyscaled right inhand sprites. Both this and greyscale_colors must be assigned to work.
greyscale_config_wornThe config type to use for greyscaled worn sprites. Both this and greyscale_colors must be assigned to work.
greyscale_config_worn_better_voxThe config type to use for greyscaled worn sprites for vox primalis characters. Both this and greyscale_colors must be assigned to work.
greyscale_config_worn_digiThe config type to use for greyscaled worn sprites for digitigrade characters. Both this and greyscale_colors must be assigned to work.
greyscale_config_worn_monkeyThe config type to use for greyscale worn sprites for monkeys. Both this and greyscale_colors must be assigned to work.
greyscale_config_worn_muzzledThe config type to use for greyscaled worn sprites for characters with a muzzle sprite accessory. Both this and greyscale_colors must be assigned to work.
greyscale_config_worn_teshariThe config type to use for greyscaled worn sprites for Teshari characters. Both this and greyscale_colors must be assigned to work.
greyscale_config_worn_voxThe config type to use for greyscaled worn sprites for vox characters. Both this and greyscale_colors must be assigned to work.
grind_resultsGrinder var:A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only
heat_protectionflags which determine which body parts are protected from heat. [See here][HEAD]
hitsoundSound played when you hit something with the item
inhand_icon_stateicon state for inhand overlays.
inhand_x_dimensionSame as for worn_x_dimension but for inhands, uses the lefthand_ and righthand_ file vars
inhand_y_dimensionSame as for worn_y_dimension but for inhands, uses the lefthand_ and righthand_ file vars
interaction_flags_itemflags for what should be done when you click on the item, default is picking it up
item_flagsItem flags for the item
juice_typepathA reagent the nutriments are converted into when the item is juiced.
lefthand_fileIcon file for left hand inhand overlays
masterThis var exists as a weird proxy "owner" ref +It's used in a few places. Stop using it, and optimially replace all uses please
max_heat_protection_temperatureSet this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection flags
min_cold_protection_temperatureSet this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection flags
mob_throw_hit_soundUsed when yate into a mob
mouse_drag_pointerthe icon to indicate this object is being dragged
offensive_notesUsed in obj/item/examine to give additional notes on what the weapon does, separate from the predetermined output variables
operating_soundPlayed when item is used for long progress
override_notesUsed in obj/item/examine to determines whether or not to detail an item's statistics even if it does not meet the force requirements
pickup_soundSound uses when picking the item up (into your hands)
power_use_amountHow much power would this item use?
reachIn tiles, how far this weapon can reach; 1 for adjacent, which is default
resist_cooldownDo we apply a click cooldown when resisting this object if it is restraining them?
righthand_fileIcon file for right inhand overlays
secondary_attack_speedThe click cooldown on secondary attacks. Lower numbers mean faster attacks. Will use attack_speed if undefined.
sharpnessAll items with sharpness of SHARP_EDGED or higher will automatically get the butchering component.
siemens_coefficientfor electrical admittance/conductance (electrocution checks and shit)
slot_equipment_priorityThe list of slots by priority. equip_to_appropriate_slot() uses this list. Doesn't matter if a mob type doesn't have a slot. For default list, see /mob/proc/equip_to_appropriate_slot
slot_flagsThis is used to determine on which slots an item can fit.
slowdownHow much clothing is slowing you down. Negative values speeds you up
sound_varyDo the drop and pickup sounds vary?
species_clothing_color_coordsUsed for BODYSHAPE_CUSTOM: Needs to follow this syntax: a list() with the x and y coordinates of the pixel you want to get the color from. Colors are filled in as GAGs values for fallback.
species_exceptionlist() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item
stealthy_audioWhether or not we use stealthy audio levels for this item's attack sounds
strip_delayIn deciseconds, how long an item takes to remove from another person
supports_variations_flagsThis is a bitfield that defines what variations exist for bodyparts like Digi legs. See: code_DEFINES\inventory.dm
throw_drop_soundSound used on impact when the item is thrown.
throw_verbUsed if we want to have a custom verb text for throwing. "John Spaceman flicks the ciggerate" for example.
thrownbyA weakref to the mob who threw the item
tk_throw_rangeItems can by default thrown up to 10 tiles by TK users
tool_behaviourHow a tool acts when you use it on something, such as wirecutters cutting wires while multitools measure power
toolspeedHow fast does the tool work
transparent_protectionyou can see someone's mask through their transparent visor, but you can't reach it
trigger_guardDetermines who can shoot this
undyeableWhether the item is unaffected by standard dying.
unique_reskinList of options to reskin.
uses_advanced_reskinsDoes this use the advanced reskinning setup?
usesoundPlayed when the item is used, for example tools
w_classHow large is the object, used for stuff like whether it can fit in backpacks or not
weak_against_armourWhether or not our object is easily hindered by the presence of armor
worn_iconIcon file for mob worn overlays.
worn_icon_better_voxIcon file for mob worn overlays, if the user is a better vox.
worn_icon_digiIcon file for mob worn overlays, if the user is digi.
worn_icon_monkeyIcon file for mob worn overlays, if the user is a monkey.
worn_icon_stateIcon state for mob worn overlays, if null the normal icon_state will be used.
worn_icon_teshariIcon file for mob worn overlays, if the user is a teshari.
worn_icon_voxIcon file for mob worn overlays, if the user is a vox.
worn_x_dimensionDimensions of the icon file used when this item is worn, eg: hats.dmi (32x32 sprite, 64x64 sprite, etc.). Allows inhands/worn sprites to be of any size, but still centered on a mob properly
worn_y_dimensionDimensions of the icon file used when this item is worn, eg: hats.dmi (32x32 sprite, 64x64 sprite, etc.). Allows inhands/worn sprites to be of any size, but still centered on a mob properly
worn_y_offsetWorn overlay will be shifted by this along y axis

Procs

IsReflectThis proc determines if and at what an object will reflect energy projectiles if it's in l_hand,r_hand or wear_suit
add_item_actionAdds an item action to our list of item actions. +Item actions are actions linked to our item, that are granted to mobs who equip us. +This also ensures that the actions are properly tracked in the actions list and removed if they're deleted. +Can be be passed a typepath of an action or an instance of an action.
add_item_contextCreates a "Type-A" contextual screentip interaction. +When a user hovers over something with this item in hand, this proc will be called in order +to provide context for contextual screentips. +You must call register_item_context() in order for this to be registered. +A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm) +that map to the action as text. +If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET. +source can, in all cases, be replaced with src, and only exists because this proc directly connects to a signal.
add_stealing_item_objectiveCalled if this item is supposed to be a steal objective item objective.
add_weapon_descriptionAdds the weapon_description element, which shows the 'warning label' for especially dangerous objects. Override this for item types with special notes.
afterattackLast proc in the /obj/item/proc/melee_attack_chain. +Returns a bitfield containing AFTERATTACK_PROCESSED_ITEM if the user is likely intending to use this item on another item. +Some consumers currently return TRUE to mean "processed". These are not consistent and should be taken with a grain of salt.
attackCalled from [/mob/living/proc/attackby]
attack_atomThe equivalent of the standard version of /obj/item/proc/attack but for non mob targets.
attack_secondaryThe equivalent of /obj/item/proc/attack but for alternate attacks, AKA right clicking
attack_selfCalled when the item is in the active hand, and clicked; alternately, there is an 'activate held object' verb or you can hit pagedown.
attack_self_secondaryCalled when the item is in the active hand, and right-clicked. Intended for alternate or opposite functions, such as lowering reagent transfer amount. At the moment, there is no verb or hotkey.
blend_requirementsUsed to check for extra requirements for blending(grinding or juicing) an object
check_allowed_itemsChecks if an item is allowed to be used on an atom/target +Returns TRUE if allowed.
check_baitChecks if the bait is liked by the fish type or not. Returns a multiplier that affects the chance of catching it.
check_reskin_menuChecks if we are allowed to interact with a radial menu for reskins
check_setup_reskinningChecks if we should set up reskinning, +by default if unique_reskin is set.
compare_zone_to_item_slotWhen called on an item, and given a body targeting zone, this will return TRUE if the item slot matches the target zone, and FALSE otherwise. +Currently supports the jumpsuit, outersuit, backpack, belt, gloves, hat, ears, neck, mask, eyes, and feet slots. All other slots will auto return FALSE.
cyborg_unequipParent proc - triggers when an item/module is unequipped from a cyborg.
disableEmbeddingFor when you want to disable an item's embedding capabilities (like transforming weapons and such), this proc will detach any active embed elements from it.
droppedCalled when a mob drops an item.
equip_to_best_slotTries to equip an item, store it in open storage, or in next best storage
equippedCalled by on_equipped. Don't call this directly, we want the ITEM_POST_EQUIPPED signal to be sent after everything else.
failedEmbedIn case we want to do something special (like self delete) upon failing to embed in something.
get_belt_overlayReturns the icon used for overlaying the object on a belt
get_embedFetches embedding data
get_part_ratingReturns a numeric value for sorting items used as parts in machines, so they can be replaced by the rped
get_proxy_attacker_forReturns the atom(either itself or an internal module) that will interact/attack the target on behalf of us +For example an object can have different tool_behaviours (e.g borg omni tool) but will return an internal reference of that tool to attack for us +You can use it for general purpose polymorphism if you need a proxy atom to interact in a specific way +with a target on behalf on this atom
get_sechud_job_icon_stateReturns the SecHUD job icon state for whatever this object's ID card is, if it has one.
get_sharpnessReturns the sharpness of src. If you want to get the sharpness of an item use this.
get_surgery_tool_overlayExtend this to give the item an appearance when placed in a surgical tray. Uses an icon state in medicart.dmi.
get_temperatureReturns the temperature of src. If you want to know if an item is hot use this proc.
get_worn_offsetsReturns offsets used for equipped item overlays in list(px_offset,py_offset) form.
get_writing_implement_detailsReturns null if this object cannot be used to interact with physical writing mediums such as paper. +Returns a list of key attributes for this object interacting with paper otherwise.
give_item_actionGives one of our item actions to a mob, when equipped to a certain slot
grant_action_to_bearerGrant the action to anyone who has this item equipped to an appropriate slot
grindGrind item, adding grind_results to item's reagents and transfering to target_holder if specified
handle_openspace_clickCalled on [/datum/element/openspace_item_click_handler/proc/on_afterattack]. Check the relative file for information.
help_light_cigFinds a cigarette on another mob to help light.
ignition_effectIf an object can successfully be used as a fire starter it will return a message
interact_with_atomCalled when this item is being used to interact with an atom, +IE, a mob is clicking on an atom with this item.
interact_with_atom_secondaryCalled when this item is being used to interact with an atom WITH RIGHT CLICK, +IE, a mob is right clicking on an atom with this item.
is_contrabandUsed to determine if an item should be considered contraband by N-spect scanners or scanner gates. +Returns true when an item has the contraband trait, or is included in the traitor uplink.
is_embed_harmlessDoes the current embedding var meet the criteria for being harmless? Namely, does it have a pain multiplier and jostle pain mult of 0? If so, return true.
is_mod_shell_componentReturns TRUE if this is a mod control module, a mod core, or a piece of mod clothing. FALSE otherwise.
item_action_slot_checkSometimes we only want to grant the item's action if it's equipped in a specific slot.
item_ctrl_clickSubtypes only override this proc for ctrl click purposes. obeys same principles as ctrl_click()
item_start_equipThis proc calls at the begining of anytime an item is being equiped to a target by another mob. +It handles initial messages, AFK stripping, and initial logging.
item_use_powerUse the power of an attached component that posesses power handling, will return the signal bitflag.
juiceJuice item, converting nutriments into juice_typepath and transfering to target_holder if specified
melee_attack_chainThis is the proc that handles the order of an item_attack.
mob_can_equipthe mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't. +if this is being done by a mob other than M, it will include the mob equipper, who is trying to equip the item to mob M. equipper will be null otherwise. +If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen. +Arguments:
modify_fantasy_variableModifies the fantasy variable
on_action_deletedCalled when an action associated with our item is deleted
on_click_alt_reskinCalled when alt clicked and the item has unique reskin options
on_equippedCalled after an item is placed in an equipment slot. Runs equipped(), then sends a signal. +This should be called last or near-to-last, after all other inventory code stuff is handled.
on_foundcalled when "found" in pockets and storage items. Returns 1 if the search should end.
on_grindCalled BEFORE the object is ground up - use this to change grind results based on conditions. Return "-1" to prevent the grinding from occurring
on_juiceCalled BEFORE the object is ground up - use this to change grind results based on conditions. Return "-1" to prevent the grinding from occurring
on_offer_takenAn interrupt for someone trying to accept an offered item, called mainly from /mob/living/carbon/proc/take, in case you want to run your own take behavior instead.
on_offeredAn interrupt for offering an item to other people, called mainly from /mob/living/carbon/proc/give, in case you want to run your own offer behavior instead.
on_outfit_equipSKYRAT EDIT ADDITION END +Special stuff you want to do when an outfit equips this item.
on_thrownCalled by the carbon throw_item() proc. Returns null if the item negates the throw, or a reference to the thing to suffer the throw else.
open_flameCreates an ignition hotspot if item is lit and located on turf, in mask, or in hand
pick_painting_tool_colorCommon proc used by painting tools like spraycans and palettes that can access the entire 24 bits color space.
pickupcalled just as an item is picked up (loc is not yet changed)
play_tool_operating_soundPlay item's operating sound
play_tool_soundPlays item's usesound, if any.
post_reskinAutomatically called after a reskin, for any extra variable changes.
pre_attackCalled on the item before it hits something
pre_attack_secondaryCalled on the item before it hits something, when right clicking.
ranged_interact_with_atomCalled when this item is being used to interact with an atom from a distance, +IE, a mob is clicking on an atom with this item and is not adjacent.
ranged_interact_with_atom_secondaryCalled when this item is being used to interact with an atom from a distance WITH RIGHT CLICK, +IE, a mob is right clicking on an atom with this item and is not adjacent.
register_item_contextCreate a "Type-A" contextual screentip interaction, registering to add_item_context(). +This will run add_item_context() when the item hovers over another object for context. +add_item_context() will not be called unless this is run. +This is not necessary for Type-A interactions, as you can just apply the flag and register to the signal yourself.
remove_item_actionRemoves an instance of an action from our list of item actions.
remove_item_from_storageTakes the location to move the item to, and optionally the mob doing the removing +If no mob is provided, we'll pass in the location, assuming it is a mob +Please use this if you're going to snowflake an item out of a obj/item/storage
reset_fantasy_variableReturns the original fantasy variable value
reskin_objSKYRAT EDIT ADDITION START
setup_reskinningRegisters signals and context for reskinning, +if check_setup_reskinning() passes.
suicide_act*Makes cool stuff happen when you suicide with an item
talk_intoHandles someone talking INTO an item
tool_check_callbackUsed in a callback that is passed by use_tool into do_after call. Do not override, do not call manually.
tool_start_checkCalled before obj/item/proc/use_tool if there is a delay, or by obj/item/proc/use_tool if there isn't. Only ever used by welding tools and stacks, so it's not added on any other obj/item/proc/use_tool checks.
tool_use_checkA check called by /obj/item/proc/tool_start_check once, and by use_tool on every tick of delay.
tryEmbedtryEmbed() is for when you want to try embedding something without dealing with the damage + hit messages of calling hitby() on the item while targeting the target.
ui_action_clickThis proc is executed when someone clicks the on-screen UI button. +The default action is attack_self(). +Checks before we get to here are: mob is alive, mob is not restrained, stunned, asleep, resting, laying, item is on the mob.
update_greyscaleChecks if this atom uses the GAGS system and if so updates the worn and inhand icons
update_item_action_buttonsUpdates all action buttons associated with this item
update_weight_classUsed to update the weight class of the item in a way that other atoms can react to the change.
useGeneric use proc. Depending on the item, it uses up fuel, charges, sheets, etc. Returns TRUE on success, FALSE on failure.
use_toolCalled when a mob tries to use the item as a tool. Handles most checks.
visual_equippedTo be overwritten to only perform visual tasks; +this is directly called instead of equipped on visual-only features like human dummies equipping outfits.

Var Details

actions

list of /datum/action's that this item has.

actions_types

list of paths of action datums to give to the item on New().

age_restricted

Whether spessmen with an ID with an age below AGE_MINOR (20 by default) can buy this item

alternate_worn_layer

Forced mob worn layer instead of the standard preferred size.

armour_penetration

percentage of armour effectiveness to remove

attack_speed

The click cooldown given after attacking. Lower numbers means faster attacks

attack_verb_continuous

Used in atom/proc/attackby to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]"

belt_icon_state

Icon state for the belt overlay, if null the normal icon_state will be used.

block_chance

Chance of blocking incoming attack

block_effect

Effect of blocking

block_sound

Sound which is produced when blocking an attack

body_parts_covered

What body parts are covered by the clothing when you wear it

breakouttime

How long it takes to resist out of the item (cuffs and such)

cold_protection

flags which determine which body parts are protected from cold. [See here][HEAD]

current_skin

Has the item been reskinned?

custom_premium_price

Price of an item in a vending machine, overriding the premium vending machine price. Define in terms of paycheck defines as opposed to raw numbers.

custom_price

Price of an item in a vending machine, overriding the base vending machine price. Define in terms of paycheck defines as opposed to raw numbers.

digitigrade_greyscale_colors

Greyscale colors used when generating digitigrade versions of the sprite. +Optional - If not set it will default to normal greyscale colors, or approximate them if those are unset as well

digitigrade_greyscale_config_worn

Greyscale config used when generating digitigrade versions of the sprite.

dog_fashion

Reference to the datum that determines whether dogs can wear the item: Needs to be in /obj/item because corgis can wear a lot of non-clothing items

drop_sound

Sound uses when dropping the item, or when its thrown if a thrown sound isn't specified.

dye_color

Used as the dye color source in the washing machine only (at the moment). Can be a hex color or a key corresponding to a registry entry, see washing_machine.dm

dying_key

What dye registry should be looked at when dying this item; see washing_machine.dm

embed_data

Stores embedding data

embed_type

Does it embed and if yes, what kind of embed

equip_delay_other

In deciseconds, how long an item takes to put on another person

equip_delay_self

In deciseconds, how long an item takes to equip; counts only for normal clothing slots, not pockets etc.

equip_sound

Sound used when equipping the item into a valid slot

extra_slot_flags

Underwear and extra slots

fantasy_modifications

A lazylist used for applying fantasy values, contains the actual modification applied to a variable.

flags_cover

for flags such as [GLASSESCOVERSEYES]

flags_inv

This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc.

force_string

string form of an item's force. Edit this var only to set a custom force string

greyscale_config_belt

The config type to use for greyscaled belt overlays. Both this and greyscale_colors must be assigned to work.

greyscale_config_inhand_left

The config type to use for greyscaled left inhand sprites. Both this and greyscale_colors must be assigned to work.

greyscale_config_inhand_right

The config type to use for greyscaled right inhand sprites. Both this and greyscale_colors must be assigned to work.

greyscale_config_worn

The config type to use for greyscaled worn sprites. Both this and greyscale_colors must be assigned to work.

greyscale_config_worn_better_vox

The config type to use for greyscaled worn sprites for vox primalis characters. Both this and greyscale_colors must be assigned to work.

greyscale_config_worn_digi

The config type to use for greyscaled worn sprites for digitigrade characters. Both this and greyscale_colors must be assigned to work.

greyscale_config_worn_monkey

The config type to use for greyscale worn sprites for monkeys. Both this and greyscale_colors must be assigned to work.

greyscale_config_worn_muzzled

The config type to use for greyscaled worn sprites for characters with a muzzle sprite accessory. Both this and greyscale_colors must be assigned to work.

greyscale_config_worn_teshari

The config type to use for greyscaled worn sprites for Teshari characters. Both this and greyscale_colors must be assigned to work.

greyscale_config_worn_vox

The config type to use for greyscaled worn sprites for vox characters. Both this and greyscale_colors must be assigned to work.

grind_results

Grinder var:A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only

heat_protection

flags which determine which body parts are protected from heat. [See here][HEAD]

hitsound

Sound played when you hit something with the item

inhand_icon_state

icon state for inhand overlays.

inhand_x_dimension

Same as for worn_x_dimension but for inhands, uses the lefthand_ and righthand_ file vars

inhand_y_dimension

Same as for worn_y_dimension but for inhands, uses the lefthand_ and righthand_ file vars

interaction_flags_item

flags for what should be done when you click on the item, default is picking it up

item_flags

Item flags for the item

juice_typepath

A reagent the nutriments are converted into when the item is juiced.

lefthand_file

Icon file for left hand inhand overlays

master

This var exists as a weird proxy "owner" ref +It's used in a few places. Stop using it, and optimially replace all uses please

max_heat_protection_temperature

Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection flags

min_cold_protection_temperature

Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection flags

mob_throw_hit_sound

Used when yate into a mob

mouse_drag_pointer

the icon to indicate this object is being dragged

offensive_notes

Used in obj/item/examine to give additional notes on what the weapon does, separate from the predetermined output variables

operating_sound

Played when item is used for long progress

override_notes

Used in obj/item/examine to determines whether or not to detail an item's statistics even if it does not meet the force requirements

pickup_sound

Sound uses when picking the item up (into your hands)

power_use_amount

How much power would this item use?

reach

In tiles, how far this weapon can reach; 1 for adjacent, which is default

resist_cooldown

Do we apply a click cooldown when resisting this object if it is restraining them?

righthand_file

Icon file for right inhand overlays

secondary_attack_speed

The click cooldown on secondary attacks. Lower numbers mean faster attacks. Will use attack_speed if undefined.

sharpness

All items with sharpness of SHARP_EDGED or higher will automatically get the butchering component.

siemens_coefficient

for electrical admittance/conductance (electrocution checks and shit)

slot_equipment_priority

The list of slots by priority. equip_to_appropriate_slot() uses this list. Doesn't matter if a mob type doesn't have a slot. For default list, see /mob/proc/equip_to_appropriate_slot

slot_flags

This is used to determine on which slots an item can fit.

slowdown

How much clothing is slowing you down. Negative values speeds you up

sound_vary

Do the drop and pickup sounds vary?

species_clothing_color_coords

Used for BODYSHAPE_CUSTOM: Needs to follow this syntax: a list() with the x and y coordinates of the pixel you want to get the color from. Colors are filled in as GAGs values for fallback.

species_exception

list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item

stealthy_audio

Whether or not we use stealthy audio levels for this item's attack sounds

strip_delay

In deciseconds, how long an item takes to remove from another person

supports_variations_flags

This is a bitfield that defines what variations exist for bodyparts like Digi legs. See: code_DEFINES\inventory.dm

throw_drop_sound

Sound used on impact when the item is thrown.

throw_verb

Used if we want to have a custom verb text for throwing. "John Spaceman flicks the ciggerate" for example.

thrownby

A weakref to the mob who threw the item

tk_throw_range

Items can by default thrown up to 10 tiles by TK users

tool_behaviour

How a tool acts when you use it on something, such as wirecutters cutting wires while multitools measure power

toolspeed

How fast does the tool work

transparent_protection

you can see someone's mask through their transparent visor, but you can't reach it

trigger_guard

Determines who can shoot this

undyeable

Whether the item is unaffected by standard dying.

unique_reskin

List of options to reskin.

uses_advanced_reskins

Does this use the advanced reskinning setup?

usesound

Played when the item is used, for example tools

w_class

How large is the object, used for stuff like whether it can fit in backpacks or not

weak_against_armour

Whether or not our object is easily hindered by the presence of armor

worn_icon

Icon file for mob worn overlays.

worn_icon_better_vox

Icon file for mob worn overlays, if the user is a better vox.

worn_icon_digi

Icon file for mob worn overlays, if the user is digi.

worn_icon_monkey

Icon file for mob worn overlays, if the user is a monkey.

worn_icon_state

Icon state for mob worn overlays, if null the normal icon_state will be used.

worn_icon_teshari

Icon file for mob worn overlays, if the user is a teshari.

worn_icon_vox

Icon file for mob worn overlays, if the user is a vox.

worn_x_dimension

Dimensions of the icon file used when this item is worn, eg: hats.dmi (32x32 sprite, 64x64 sprite, etc.). Allows inhands/worn sprites to be of any size, but still centered on a mob properly

worn_y_dimension

Dimensions of the icon file used when this item is worn, eg: hats.dmi (32x32 sprite, 64x64 sprite, etc.). Allows inhands/worn sprites to be of any size, but still centered on a mob properly

worn_y_offset

Worn overlay will be shifted by this along y axis

Proc Details

IsReflect

This proc determines if and at what an object will reflect energy projectiles if it's in l_hand,r_hand or wear_suit

add_item_action

Adds an item action to our list of item actions. +Item actions are actions linked to our item, that are granted to mobs who equip us. +This also ensures that the actions are properly tracked in the actions list and removed if they're deleted. +Can be be passed a typepath of an action or an instance of an action.

add_item_context

Creates a "Type-A" contextual screentip interaction. +When a user hovers over something with this item in hand, this proc will be called in order +to provide context for contextual screentips. +You must call register_item_context() in order for this to be registered. +A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm) +that map to the action as text. +If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET. +source can, in all cases, be replaced with src, and only exists because this proc directly connects to a signal.

add_stealing_item_objective

Called if this item is supposed to be a steal objective item objective.

add_weapon_description

Adds the weapon_description element, which shows the 'warning label' for especially dangerous objects. Override this for item types with special notes.

afterattack

Last proc in the /obj/item/proc/melee_attack_chain. +Returns a bitfield containing AFTERATTACK_PROCESSED_ITEM if the user is likely intending to use this item on another item. +Some consumers currently return TRUE to mean "processed". These are not consistent and should be taken with a grain of salt.

+

Arguments:

+
    +
  • atom/target - The thing that was hit
  • +
  • mob/user - The mob doing the hitting
  • +
  • proximity_flag - is 1 if this afterattack was called on something adjacent, in your square, or on your person.
  • +
  • click_parameters - is the params string from byond /atom/proc/Click code, see that documentation.
  • +

attack

Called from [/mob/living/proc/attackby]

+

Arguments:

+
    +
  • mob/living/target_mob - The mob being hit by this item
  • +
  • mob/living/user - The mob hitting with this item
  • +
  • params - Click params of this attack
  • +

attack_atom

The equivalent of the standard version of /obj/item/proc/attack but for non mob targets.

attack_secondary

The equivalent of /obj/item/proc/attack but for alternate attacks, AKA right clicking

attack_self

Called when the item is in the active hand, and clicked; alternately, there is an 'activate held object' verb or you can hit pagedown.

attack_self_secondary

Called when the item is in the active hand, and right-clicked. Intended for alternate or opposite functions, such as lowering reagent transfer amount. At the moment, there is no verb or hotkey.

blend_requirements

Used to check for extra requirements for blending(grinding or juicing) an object

check_allowed_items

Checks if an item is allowed to be used on an atom/target +Returns TRUE if allowed.

+

Args: +target_self - Whether we will check if we (src) are in target, preventing people from using items on themselves. +not_inside - Whether target (or target's loc) has to be a turf.

check_bait

Checks if the bait is liked by the fish type or not. Returns a multiplier that affects the chance of catching it.

check_reskin_menu

Checks if we are allowed to interact with a radial menu for reskins

+

Arguments:

+
    +
  • user The mob interacting with the menu
  • +

check_setup_reskinning

Checks if we should set up reskinning, +by default if unique_reskin is set.

+

Called on setup_reskinning(). +Inheritors should override this to add their own checks.

compare_zone_to_item_slot

When called on an item, and given a body targeting zone, this will return TRUE if the item slot matches the target zone, and FALSE otherwise. +Currently supports the jumpsuit, outersuit, backpack, belt, gloves, hat, ears, neck, mask, eyes, and feet slots. All other slots will auto return FALSE.

cyborg_unequip

Parent proc - triggers when an item/module is unequipped from a cyborg.

disableEmbedding

For when you want to disable an item's embedding capabilities (like transforming weapons and such), this proc will detach any active embed elements from it.

dropped

Called when a mob drops an item.

equip_to_best_slot

Tries to equip an item, store it in open storage, or in next best storage

equipped

Called by on_equipped. Don't call this directly, we want the ITEM_POST_EQUIPPED signal to be sent after everything else.

+

Note that hands count as slots.

+

Arguments:

+
    +
  • user is mob that equipped it
  • +
  • slot uses the slot_X defines found in setup.dm for items that can be placed in multiple slots
  • +
  • initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it
  • +

failedEmbed

In case we want to do something special (like self delete) upon failing to embed in something.

get_belt_overlay

Returns the icon used for overlaying the object on a belt

get_embed

Fetches embedding data

get_part_rating

Returns a numeric value for sorting items used as parts in machines, so they can be replaced by the rped

get_proxy_attacker_for

Returns the atom(either itself or an internal module) that will interact/attack the target on behalf of us +For example an object can have different tool_behaviours (e.g borg omni tool) but will return an internal reference of that tool to attack for us +You can use it for general purpose polymorphism if you need a proxy atom to interact in a specific way +with a target on behalf on this atom

+

Currently used only in the object melee attack chain but can be used anywhere else or even moved up to the atom level if required

get_sechud_job_icon_state

Returns the SecHUD job icon state for whatever this object's ID card is, if it has one.

get_sharpness

Returns the sharpness of src. If you want to get the sharpness of an item use this.

get_surgery_tool_overlay

Extend this to give the item an appearance when placed in a surgical tray. Uses an icon state in medicart.dmi.

+
    +
  • tray_extended - If true, the surgical tray the item is placed on is in "table mode"
  • +

get_temperature

Returns the temperature of src. If you want to know if an item is hot use this proc.

get_worn_offsets

Returns offsets used for equipped item overlays in list(px_offset,py_offset) form.

get_writing_implement_details

Returns null if this object cannot be used to interact with physical writing mediums such as paper. +Returns a list of key attributes for this object interacting with paper otherwise.

give_item_action

Gives one of our item actions to a mob, when equipped to a certain slot

grant_action_to_bearer

Grant the action to anyone who has this item equipped to an appropriate slot

grind

Grind item, adding grind_results to item's reagents and transfering to target_holder if specified

handle_openspace_click

Called on [/datum/element/openspace_item_click_handler/proc/on_afterattack]. Check the relative file for information.

help_light_cig

Finds a cigarette on another mob to help light.

ignition_effect

If an object can successfully be used as a fire starter it will return a message

interact_with_atom

Called when this item is being used to interact with an atom, +IE, a mob is clicking on an atom with this item.

+

Return an ITEM_INTERACT_ flag in the event the interaction was handled, to cancel further interaction code. +Return NONE to allow default interaction / tool handling.

interact_with_atom_secondary

Called when this item is being used to interact with an atom WITH RIGHT CLICK, +IE, a mob is right clicking on an atom with this item.

+

Default behavior has it run the same code as left click.

+

Return an ITEM_INTERACT_ flag in the event the interaction was handled, to cancel further interaction code. +Return NONE to allow default interaction / tool handling.

is_contraband

Used to determine if an item should be considered contraband by N-spect scanners or scanner gates. +Returns true when an item has the contraband trait, or is included in the traitor uplink.

is_embed_harmless

Does the current embedding var meet the criteria for being harmless? Namely, does it have a pain multiplier and jostle pain mult of 0? If so, return true.

is_mod_shell_component

Returns TRUE if this is a mod control module, a mod core, or a piece of mod clothing. FALSE otherwise.

item_action_slot_check

Sometimes we only want to grant the item's action if it's equipped in a specific slot.

item_ctrl_click

Subtypes only override this proc for ctrl click purposes. obeys same principles as ctrl_click()

item_start_equip

This proc calls at the begining of anytime an item is being equiped to a target by another mob. +It handles initial messages, AFK stripping, and initial logging.

item_use_power

Use the power of an attached component that posesses power handling, will return the signal bitflag.

juice

Juice item, converting nutriments into juice_typepath and transfering to target_holder if specified

melee_attack_chain

This is the proc that handles the order of an item_attack.

+

The order of procs called is:

+

mob_can_equip

the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't. +if this is being done by a mob other than M, it will include the mob equipper, who is trying to equip the item to mob M. equipper will be null otherwise. +If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen. +Arguments:

+
    +
  • disable_warning to TRUE if you wish it to not give you text outputs.
  • +
  • slot is the slot we are trying to equip to
  • +
  • bypass_equip_delay_self for whether we want to bypass the equip delay
  • +
  • ignore_equipped ignores any already equipped items in that slot
  • +
  • indirect_action allows inserting into "soft locked" bags, things that can be easily opened by the owner
  • +

modify_fantasy_variable

Modifies the fantasy variable

on_action_deleted

Called when an action associated with our item is deleted

on_click_alt_reskin

Called when alt clicked and the item has unique reskin options

on_equipped

Called after an item is placed in an equipment slot. Runs equipped(), then sends a signal. +This should be called last or near-to-last, after all other inventory code stuff is handled.

+

Arguments:

+
    +
  • user is mob that equipped it
  • +
  • slot uses the slot_X defines found in setup.dm for items that can be placed in multiple slots
  • +
  • initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it
  • +

on_found

called when "found" in pockets and storage items. Returns 1 if the search should end.

on_grind

Called BEFORE the object is ground up - use this to change grind results based on conditions. Return "-1" to prevent the grinding from occurring

on_juice

Called BEFORE the object is ground up - use this to change grind results based on conditions. Return "-1" to prevent the grinding from occurring

on_offer_taken

An interrupt for someone trying to accept an offered item, called mainly from /mob/living/carbon/proc/take, in case you want to run your own take behavior instead.

+

Return TRUE if you want to interrupt the taking.

+

Arguments: +offerer - the person offering the item +taker - the person trying to accept the offer

on_offered

An interrupt for offering an item to other people, called mainly from /mob/living/carbon/proc/give, in case you want to run your own offer behavior instead.

+

Return TRUE if you want to interrupt the offer.

+

Arguments: +offerer - The person offering the item. +offered - The person being offered the item.

on_outfit_equip

SKYRAT EDIT ADDITION END +Special stuff you want to do when an outfit equips this item.

on_thrown

Called by the carbon throw_item() proc. Returns null if the item negates the throw, or a reference to the thing to suffer the throw else.

open_flame

Creates an ignition hotspot if item is lit and located on turf, in mask, or in hand

pick_painting_tool_color

Common proc used by painting tools like spraycans and palettes that can access the entire 24 bits color space.

pickup

called just as an item is picked up (loc is not yet changed)

play_tool_operating_sound

Play item's operating sound

play_tool_sound

Plays item's usesound, if any.

post_reskin

Automatically called after a reskin, for any extra variable changes.

pre_attack

Called on the item before it hits something

+

Arguments:

+
    +
  • atom/A - The atom about to be hit
  • +
  • mob/living/user - The mob doing the htting
  • +
  • params - click params such as alt/shift etc
  • +
+

See: /obj/item/proc/melee_attack_chain

pre_attack_secondary

Called on the item before it hits something, when right clicking.

+

Arguments:

+
    +
  • atom/target - The atom about to be hit
  • +
  • mob/living/user - The mob doing the htting
  • +
  • params - click params such as alt/shift etc
  • +
+

See: /obj/item/proc/melee_attack_chain

ranged_interact_with_atom

Called when this item is being used to interact with an atom from a distance, +IE, a mob is clicking on an atom with this item and is not adjacent.

+

Does NOT include Telekinesis users, they are considered adjacent generally +(so long as this item is adjacent to the atom).

+

Return an ITEM_INTERACT_ flag in the event the interaction was handled, to cancel further interaction code.

ranged_interact_with_atom_secondary

Called when this item is being used to interact with an atom from a distance WITH RIGHT CLICK, +IE, a mob is right clicking on an atom with this item and is not adjacent.

+

Default behavior has it run the same code as left click.

register_item_context

Create a "Type-A" contextual screentip interaction, registering to add_item_context(). +This will run add_item_context() when the item hovers over another object for context. +add_item_context() will not be called unless this is run. +This is not necessary for Type-A interactions, as you can just apply the flag and register to the signal yourself.

remove_item_action

Removes an instance of an action from our list of item actions.

remove_item_from_storage

Takes the location to move the item to, and optionally the mob doing the removing +If no mob is provided, we'll pass in the location, assuming it is a mob +Please use this if you're going to snowflake an item out of a obj/item/storage

reset_fantasy_variable

Returns the original fantasy variable value

reskin_obj

SKYRAT EDIT ADDITION START

setup_reskinning

Registers signals and context for reskinning, +if check_setup_reskinning() passes.

+

Called on Initialize(...). +Inheritors should override this to add their own setup steps, +or to avoid double calling register_context().

suicide_act

*Makes cool stuff happen when you suicide with an item

+

*Outputs a creative message and then return the damagetype done

+
    +
  • Arguments:
  • +
  • +
      +
    • user: The mob that is suiciding
    • +
    +
  • +

talk_into

Handles someone talking INTO an item

+

Commonly used by someone holding it and using .r or .l +Also used by radios

+
    +
  • speaker - the atom that is doing the talking
  • +
  • message - the message being spoken
  • +
  • channel - the channel the message is being spoken on, only really used for radios
  • +
  • spans - the spans of the message
  • +
  • language - the language the message is in
  • +
  • message_mods - any message mods that should be applied to the message
  • +
+

Return a flag that modifies the original message

tool_check_callback

Used in a callback that is passed by use_tool into do_after call. Do not override, do not call manually.

tool_start_check

Called before obj/item/proc/use_tool if there is a delay, or by obj/item/proc/use_tool if there isn't. Only ever used by welding tools and stacks, so it's not added on any other obj/item/proc/use_tool checks.

tool_use_check

A check called by /obj/item/proc/tool_start_check once, and by use_tool on every tick of delay.

tryEmbed

tryEmbed() is for when you want to try embedding something without dealing with the damage + hit messages of calling hitby() on the item while targeting the target.

+

Really, this is used mostly with projectiles with shrapnel payloads, from [/datum/element/embed/proc/checkEmbedProjectile], and called on said shrapnel. Mostly acts as an intermediate between different embed elements.

+

Returns TRUE if it embedded successfully, nothing otherwise

+

Arguments:

+
    +
  • target- Either a body part or a carbon. What are we hitting?
  • +
  • forced- Do we want this to go through 100%?
  • +

ui_action_click

This proc is executed when someone clicks the on-screen UI button. +The default action is attack_self(). +Checks before we get to here are: mob is alive, mob is not restrained, stunned, asleep, resting, laying, item is on the mob.

update_greyscale

Checks if this atom uses the GAGS system and if so updates the worn and inhand icons

update_item_action_buttons

Updates all action buttons associated with this item

+

Arguments:

+
    +
  • update_flags - Which flags of the action should we update
  • +
  • force - Force buttons update even if the given button icon state has not changed
  • +

update_weight_class

Used to update the weight class of the item in a way that other atoms can react to the change.

+

Arguments:

+
    +
  • new_w_class - The new weight class of the item.
  • +
+

Returns:

+
    +
  • TRUE if weight class was successfully updated
  • +
  • FALSE otherwise
  • +

use

Generic use proc. Depending on the item, it uses up fuel, charges, sheets, etc. Returns TRUE on success, FALSE on failure.

use_tool

Called when a mob tries to use the item as a tool. Handles most checks.

visual_equipped

To be overwritten to only perform visual tasks; +this is directly called instead of equipped on visual-only features like human dummies equipping outfits.

+

This separation exists to prevent things like the monkey sentience helmet from +polling ghosts while it's just being equipped as a visual preview for a dummy.

\ No newline at end of file diff --git a/obj/item/abductor/alien_omnitool.html b/obj/item/abductor/alien_omnitool.html new file mode 100644 index 0000000000000..5b652105ff6c2 --- /dev/null +++ b/obj/item/abductor/alien_omnitool.html @@ -0,0 +1 @@ +/obj/item/abductor/alien_omnitool - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

alien_omnitool

Vars

active_toolsetWhich toolset do we have active currently?
tool_listA list of all the tools we offer. Stored as "Tool" for the key, and the icon/icon_state as the value.

Var Details

active_toolset

Which toolset do we have active currently?

tool_list

A list of all the tools we offer. Stored as "Tool" for the key, and the icon/icon_state as the value.

\ No newline at end of file diff --git a/obj/item/access_key.html b/obj/item/access_key.html new file mode 100644 index 0000000000000..12e5d590a12bd --- /dev/null +++ b/obj/item/access_key.html @@ -0,0 +1,19 @@ +/obj/item/access_key - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

access_key

Vars

department_accessThe departmental access given to the key.

Procs

attempt_open_doorCalled when attempting to open an airlock. +Checks if the keys have access, returns try_to_activate_door if it does, returns FALSE otherwise. +Args: +user - The person attempting to open the door +airlock - The door we're attempting to open
clear_accessCalled when a keycard authenticator runs out of time +Clears the department access and alerts nearby people of such.
department_access_givenCalled when a keycard authenticator sends region access +Stores it on the key to use for access, then sets a timer to clear it. +Args: +source - the keycard authenticator giving us the access +region_access - the list of access we're being sent, we only take the first entry in the list as there should only have one department at a time.

Var Details

department_access

The departmental access given to the key.

Proc Details

attempt_open_door

Called when attempting to open an airlock. +Checks if the keys have access, returns try_to_activate_door if it does, returns FALSE otherwise. +Args: +user - The person attempting to open the door +airlock - The door we're attempting to open

clear_access

Called when a keycard authenticator runs out of time +Clears the department access and alerts nearby people of such.

department_access_given

Called when a keycard authenticator sends region access +Stores it on the key to use for access, then sets a timer to clear it. +Args: +source - the keycard authenticator giving us the access +region_access - the list of access we're being sent, we only take the first entry in the list as there should only have one department at a time.

\ No newline at end of file diff --git a/obj/item/ai_module.html b/obj/item/ai_module.html new file mode 100644 index 0000000000000..ce9321948e253 --- /dev/null +++ b/obj/item/ai_module.html @@ -0,0 +1 @@ +/obj/item/ai_module - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ai_module

Vars

bypass_law_amt_checkUsed to skip laws being checked (for reset & remove boards that have no laws)
lawsThis is where our laws get put at for the module

Procs

display_lawsReturns a text display of the laws for the module.
handle_unique_aiwhat this module should do if it is mapload spawning on a unique AI station trait round.

Var Details

bypass_law_amt_check

Used to skip laws being checked (for reset & remove boards that have no laws)

laws

This is where our laws get put at for the module

Proc Details

display_laws

Returns a text display of the laws for the module.

handle_unique_ai

what this module should do if it is mapload spawning on a unique AI station trait round.

\ No newline at end of file diff --git a/obj/item/ai_module/malf.html b/obj/item/ai_module/malf.html new file mode 100644 index 0000000000000..a4e39dbe5d77e --- /dev/null +++ b/obj/item/ai_module/malf.html @@ -0,0 +1 @@ +/obj/item/ai_module/malf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

malf

Makes the AI Malf, as well as give it syndicate laws.

Vars

functionalIs this upload board unused?

Var Details

functional

Is this upload board unused?

\ No newline at end of file diff --git a/obj/item/aicard.html b/obj/item/aicard.html new file mode 100644 index 0000000000000..a0970cd5ba519 --- /dev/null +++ b/obj/item/aicard.html @@ -0,0 +1 @@ +/obj/item/aicard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

aicard

Procs

capture_aiTries to get an AI from the atom clicked
upload_aiTries to upload the AI we have captured to the atom clicked

Proc Details

capture_ai

Tries to get an AI from the atom clicked

upload_ai

Tries to upload the AI we have captured to the atom clicked

\ No newline at end of file diff --git a/obj/item/aicard/syndie/loaded.html b/obj/item/aicard/syndie/loaded.html new file mode 100644 index 0000000000000..b85fe67c1fd55 --- /dev/null +++ b/obj/item/aicard/syndie/loaded.html @@ -0,0 +1 @@ +/obj/item/aicard/syndie/loaded - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

loaded

Vars

finding_candidateSet to true while we're waiting for ghosts to sign up

Procs

on_poll_concludedPoll has concluded with a ghost, create the AI
procure_aiSets up the ghost poll

Var Details

finding_candidate

Set to true while we're waiting for ghosts to sign up

Proc Details

on_poll_concluded

Poll has concluded with a ghost, create the AI

procure_ai

Sets up the ghost poll

\ No newline at end of file diff --git a/obj/item/air_sensor.html b/obj/item/air_sensor.html new file mode 100644 index 0000000000000..6a93722965cce --- /dev/null +++ b/obj/item/air_sensor.html @@ -0,0 +1,4 @@ +/obj/item/air_sensor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

air_sensor

A portable version of the /obj/machinery/air_sensor +Wrenching it & turning it on will convert it back to /obj/machinery/air_sensor +Unwelding /obj/machinery/air_sensor will turn it back to /obj/item/air_sensor +The logic is same as meters

Vars

input_idThe injector linked with this sensor
output_idThe vent pump linked with this sensor

Var Details

input_id

The injector linked with this sensor

output_id

The vent pump linked with this sensor

\ No newline at end of file diff --git a/obj/item/airbag.html b/obj/item/airbag.html new file mode 100644 index 0000000000000..9ccecfb89cc6b --- /dev/null +++ b/obj/item/airbag.html @@ -0,0 +1 @@ +/obj/item/airbag - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

airbag

Vars

armedAre we currently armed?
armed_soundThe sound we play when armed
bang_soundThe sound we play when we go bang
detonate_timeThe time in which we deploy
drop_typeThe item we drop on detonation
immediate_armAre we immediately armed?

Var Details

armed

Are we currently armed?

armed_sound

The sound we play when armed

bang_sound

The sound we play when we go bang

detonate_time

The time in which we deploy

drop_type

The item we drop on detonation

immediate_arm

Are we immediately armed?

\ No newline at end of file diff --git a/obj/item/airlock_painter.html b/obj/item/airlock_painter.html new file mode 100644 index 0000000000000..c55a25c6485e0 --- /dev/null +++ b/obj/item/airlock_painter.html @@ -0,0 +1 @@ +/obj/item/airlock_painter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

airlock_painter

Vars

available_paint_jobsAssociate list of all paint jobs the airlock painter can apply. The key is the name of the airlock the user will see. The value is the type path of the airlock
initial_ink_typeThe type path to instantiate for the ink cartridge the device initially comes with, eg. /obj/item/toner
inkThe ink cartridge to pull charges from.

Var Details

available_paint_jobs

Associate list of all paint jobs the airlock painter can apply. The key is the name of the airlock the user will see. The value is the type path of the airlock

initial_ink_type

The type path to instantiate for the ink cartridge the device initially comes with, eg. /obj/item/toner

ink

The ink cartridge to pull charges from.

\ No newline at end of file diff --git a/obj/item/airlock_painter/decal.html b/obj/item/airlock_painter/decal.html new file mode 100644 index 0000000000000..86da1e7fcb81d --- /dev/null +++ b/obj/item/airlock_painter/decal.html @@ -0,0 +1,13 @@ +/obj/item/airlock_painter/decal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

decal

Vars

color_listList of color options as list(user-friendly label, color value to return)
decal_listList of decal options as list(user-friendly label, icon state base value to return)
dir_listList of direction options as list(user-friendly label, dir value to return)
spritesheet_typeThe type path of the spritesheet being used for the frontend.
stored_colorThe current color of the decal being printed.
stored_custom_colorCurrent custom color
stored_decalThe current base icon state of the decal being printed.
stored_decal_totalThe full icon state of the decal being printed.
stored_dirThe current direction of the decal being printed
supports_custom_colorDoes this printer implementation support custom colors?

Procs

get_decal_pathReturn the final icon_state for the given decal options
paint_floorActually add current decal to the floor.

Var Details

color_list

List of color options as list(user-friendly label, color value to return)

decal_list

List of decal options as list(user-friendly label, icon state base value to return)

dir_list

List of direction options as list(user-friendly label, dir value to return)

spritesheet_type

The type path of the spritesheet being used for the frontend.

stored_color

The current color of the decal being printed.

stored_custom_color

Current custom color

stored_decal

The current base icon state of the decal being printed.

stored_decal_total

The full icon state of the decal being printed.

stored_dir

The current direction of the decal being printed

supports_custom_color

Does this printer implementation support custom colors?

Proc Details

get_decal_path

Return the final icon_state for the given decal options

+

Arguments:

+
    +
  • decal - the selected decal base icon state
  • +
  • color - the selected color
  • +
  • dir - the selected dir
  • +

paint_floor

Actually add current decal to the floor.

+

Responsible for actually adding the element to the turf for maximum flexibility.area +Can be overridden for different decal behaviors. +Arguments:

+
    +
  • target - The turf being painted to
  • +
\ No newline at end of file diff --git a/obj/item/airlock_painter/decal/tile.html b/obj/item/airlock_painter/decal/tile.html new file mode 100644 index 0000000000000..ff26dd2f44aff --- /dev/null +++ b/obj/item/airlock_painter/decal/tile.html @@ -0,0 +1 @@ +/obj/item/airlock_painter/decal/tile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tile

Vars

default_alphaDefault alpha for /obj/effect/turf_decal/tile
rgba_regexRegex to split alpha out.

Var Details

default_alpha

Default alpha for /obj/effect/turf_decal/tile

rgba_regex

Regex to split alpha out.

\ No newline at end of file diff --git a/obj/item/aiupgrade.html b/obj/item/aiupgrade.html new file mode 100644 index 0000000000000..27584c77441f1 --- /dev/null +++ b/obj/item/aiupgrade.html @@ -0,0 +1 @@ +/obj/item/aiupgrade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

aiupgrade

AI Upgrades

Vars

to_giftThe upgrade that will be applied to the AI when installed

Var Details

to_gift

The upgrade that will be applied to the AI when installed

\ No newline at end of file diff --git a/obj/item/ammo_box.html b/obj/item/ammo_box.html new file mode 100644 index 0000000000000..a99fd906669a3 --- /dev/null +++ b/obj/item/ammo_box.html @@ -0,0 +1,8 @@ +/obj/item/ammo_box - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ammo_box

Vars

ammo_band_colorIf this and ammo_band_icon aren't null, run update_ammo_band(). Is the color of the band, such as blue on the detective's Iceblox.
ammo_band_iconIf this and ammo_band_color aren't null, run update_ammo_band() Is the greyscale icon used for the ammo band.
ammo_band_icon_emptyIs the greyscale icon used for the ammo band when it's empty of bullets, only if it's not null.
ammo_typetype that the magazine will be searching for, rejects if not a subtype of
caliberString, used for checking if ammo of different types but still fits can fit inside it; generally used for magazines
casing_phrasingwording used for individual units of ammo, e.g. cartridges (regular ammo), shells (shotgun shells)
max_ammomaximum amount of ammo in the magazine
multiloadAllows multiple bullets to be loaded in from one click of another box/magazine
multiple_sprite_use_baseFor sprite updating, do we use initial(icon_state) or base_icon_state?
multiple_spritesControls how sprites are updated for the ammo box; see defines in combat.dm: AMMO_BOX_ONE_SPRITE; AMMO_BOX_PER_BULLET; AMMO_BOX_FULL_EMPTY
multitypeWhen inserted into an ammo workbench, does this ammo box check for parent ammunition to search for subtypes of? Relevant for surplus clips, multi-sprite magazines. +Maybe don't enable this for shotgun ammo boxes.
start_emptyWhether the magazine should start with nothing in it
stored_ammolist containing the actual ammo within the magazine

Procs

can_loadWhether or not the box can be loaded, used in overrides
get_roundgets a round from the magazine, if keep is TRUE the round will be moved to the bottom of the list.
give_roundputs a round into the magazine
top_offtop_off is used to refill the magazine to max, in case you want to increase the size of a magazine with VV then refill it at once

Var Details

ammo_band_color

If this and ammo_band_icon aren't null, run update_ammo_band(). Is the color of the band, such as blue on the detective's Iceblox.

ammo_band_icon

If this and ammo_band_color aren't null, run update_ammo_band() Is the greyscale icon used for the ammo band.

ammo_band_icon_empty

Is the greyscale icon used for the ammo band when it's empty of bullets, only if it's not null.

ammo_type

type that the magazine will be searching for, rejects if not a subtype of

caliber

String, used for checking if ammo of different types but still fits can fit inside it; generally used for magazines

casing_phrasing

wording used for individual units of ammo, e.g. cartridges (regular ammo), shells (shotgun shells)

max_ammo

maximum amount of ammo in the magazine

multiload

Allows multiple bullets to be loaded in from one click of another box/magazine

multiple_sprite_use_base

For sprite updating, do we use initial(icon_state) or base_icon_state?

multiple_sprites

Controls how sprites are updated for the ammo box; see defines in combat.dm: AMMO_BOX_ONE_SPRITE; AMMO_BOX_PER_BULLET; AMMO_BOX_FULL_EMPTY

multitype

When inserted into an ammo workbench, does this ammo box check for parent ammunition to search for subtypes of? Relevant for surplus clips, multi-sprite magazines. +Maybe don't enable this for shotgun ammo boxes.

start_empty

Whether the magazine should start with nothing in it

stored_ammo

list containing the actual ammo within the magazine

Proc Details

can_load

Whether or not the box can be loaded, used in overrides

get_round

gets a round from the magazine, if keep is TRUE the round will be moved to the bottom of the list.

give_round

puts a round into the magazine

top_off

top_off is used to refill the magazine to max, in case you want to increase the size of a magazine with VV then refill it at once

+

Arguments:

+
    +
  • load_type - if you want to specify a specific ammo casing type to load, enter the path here, otherwise it'll use the basic /obj/item/ammo_box/var/ammo_type. Must be a compatible round
  • +
  • starting - Relevant for revolver cylinders, if FALSE then we mind the nulls that represent the empty cylinders (since those nulls don't exist yet if we haven't initialized when this is TRUE)
  • +
\ No newline at end of file diff --git a/obj/item/ammo_box/magazine.html b/obj/item/ammo_box/magazine.html new file mode 100644 index 0000000000000..39031cbab5996 --- /dev/null +++ b/obj/item/ammo_box/magazine.html @@ -0,0 +1 @@ +/obj/item/ammo_box/magazine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

magazine

Procs

ammo_countCount of number of bullets in the magazine
ammo_listlist of every bullet in the magazine
empty_magazinedrops the entire contents of the magazine on the floor

Proc Details

ammo_count

Count of number of bullets in the magazine

ammo_list

list of every bullet in the magazine

empty_magazine

drops the entire contents of the magazine on the floor

\ No newline at end of file diff --git a/obj/item/ammo_box/magazine/internal/cylinder.html b/obj/item/ammo_box/magazine/internal/cylinder.html new file mode 100644 index 0000000000000..68e0086a52507 --- /dev/null +++ b/obj/item/ammo_box/magazine/internal/cylinder.html @@ -0,0 +1 @@ +/obj/item/ammo_box/magazine/internal/cylinder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cylinder

Procs

remove_from_stored_ammoHere, we have to maintain the list size, to emulate a cylinder with several chambers, empty or otherwise.

Proc Details

remove_from_stored_ammo

Here, we have to maintain the list size, to emulate a cylinder with several chambers, empty or otherwise.

\ No newline at end of file diff --git a/obj/item/ammo_casing.html b/obj/item/ammo_casing.html new file mode 100644 index 0000000000000..a8f06328aa6ea --- /dev/null +++ b/obj/item/ammo_casing.html @@ -0,0 +1,7 @@ +/obj/item/ammo_casing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ammo_casing

Vars

advanced_print_reqIf it can be printed, does this casing require an advanced ammunition datadisk? Mainly for specialized ammo. +Rubbers aren't advanced. Standard ammo (or FMJ if you're particularly pedantic) isn't advanced. +Think more specialized or weird, niche ammo, like armor-piercing, incendiary, hollowpoint, or God forbid, phasic.
caliberWhich kind of guns it can be loaded into
can_be_printedCan this bullet casing be printed at an ammunition workbench?
can_misfireIf set to true or false, this ammunition can or cannot misfire, regardless the gun can_misfire setting
click_cooldown_overrideOverride this to make your gun have a faster fire rate, in tenths of a second. 4 is the default gun cooldown.
delayDelay for energy weapons
fire_soundWhat sound should play when this ammo is fired
fire_sound_volumeWhat volume should the sound play at?
firing_effect_typethe visual effect appearing when the ammo is fired.
harmfulpacifism check for boolet, set to FALSE if bullet is non-lethal
integrity_damageIf set, this casing will damage any gun it's fired from by the specified amount
loaded_projectilethe loaded projectile in this ammo casing
misfire_incrementThis is how much misfire probability is added to the gun when it fires this casing.
newtonian_forceHow much force is applied when fired in zero-G
pelletsPellets for spreadshot
projectile_typeThe bullet type to create when New() is called
randomspreadRandomspread for automatics
varianceVariance for inaccuracy fundamental to the casing

Procs

add_notes_ammoOutputs type-specific weapon stats for ammunition based on the projectile loaded inside the casing. +Distinguishes between critting and stam-critting in separate lines

Var Details

advanced_print_req

If it can be printed, does this casing require an advanced ammunition datadisk? Mainly for specialized ammo. +Rubbers aren't advanced. Standard ammo (or FMJ if you're particularly pedantic) isn't advanced. +Think more specialized or weird, niche ammo, like armor-piercing, incendiary, hollowpoint, or God forbid, phasic.

caliber

Which kind of guns it can be loaded into

can_be_printed

Can this bullet casing be printed at an ammunition workbench?

can_misfire

If set to true or false, this ammunition can or cannot misfire, regardless the gun can_misfire setting

click_cooldown_override

Override this to make your gun have a faster fire rate, in tenths of a second. 4 is the default gun cooldown.

delay

Delay for energy weapons

fire_sound

What sound should play when this ammo is fired

fire_sound_volume

What volume should the sound play at?

firing_effect_type

the visual effect appearing when the ammo is fired.

harmful

pacifism check for boolet, set to FALSE if bullet is non-lethal

integrity_damage

If set, this casing will damage any gun it's fired from by the specified amount

loaded_projectile

the loaded projectile in this ammo casing

misfire_increment

This is how much misfire probability is added to the gun when it fires this casing.

newtonian_force

How much force is applied when fired in zero-G

pellets

Pellets for spreadshot

projectile_type

The bullet type to create when New() is called

randomspread

Randomspread for automatics

variance

Variance for inaccuracy fundamental to the casing

Proc Details

add_notes_ammo

Outputs type-specific weapon stats for ammunition based on the projectile loaded inside the casing. +Distinguishes between critting and stam-critting in separate lines

\ No newline at end of file diff --git a/obj/item/ammo_casing/arrow.html b/obj/item/ammo_casing/arrow.html new file mode 100644 index 0000000000000..a8e4517823cc4 --- /dev/null +++ b/obj/item/ammo_casing/arrow.html @@ -0,0 +1 @@ +/obj/item/ammo_casing/arrow - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

arrow

base arrow

Vars

reusableWhether the bullet type spawns another casing of the same type or not.

Var Details

reusable

Whether the bullet type spawns another casing of the same type or not.

\ No newline at end of file diff --git a/obj/item/ammo_casing/foam_dart.html b/obj/item/ammo_casing/foam_dart.html new file mode 100644 index 0000000000000..2c84276cb7c65 --- /dev/null +++ b/obj/item/ammo_casing/foam_dart.html @@ -0,0 +1 @@ +/obj/item/ammo_casing/foam_dart - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

foam_dart

Vars

tip_colorFor colored magazine overlays.

Var Details

tip_color

For colored magazine overlays.

\ No newline at end of file diff --git a/obj/item/ammo_casing/strilka310/lionhunter.html b/obj/item/ammo_casing/strilka310/lionhunter.html new file mode 100644 index 0000000000000..686546bc01780 --- /dev/null +++ b/obj/item/ammo_casing/strilka310/lionhunter.html @@ -0,0 +1 @@ +/obj/item/ammo_casing/strilka310/lionhunter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lionhunter

Vars

currently_aimingWhether we're currently aiming this casing at something
min_distanceThe minimum distance required to gain a damage bonus from aiming
seconds_per_distanceHow many seconds it takes to aim per tile of distance between the target

Procs

check_fireChecks if we can successfully fire our projectile.
check_fire_callbackCallback for the do_after within the check_fire proc to see if something will prevent us from firing while aiming

Var Details

currently_aiming

Whether we're currently aiming this casing at something

min_distance

The minimum distance required to gain a damage bonus from aiming

seconds_per_distance

How many seconds it takes to aim per tile of distance between the target

Proc Details

check_fire

Checks if we can successfully fire our projectile.

check_fire_callback

Callback for the do_after within the check_fire proc to see if something will prevent us from firing while aiming

\ No newline at end of file diff --git a/obj/item/analyzer.html b/obj/item/analyzer.html new file mode 100644 index 0000000000000..25bb92706e779 --- /dev/null +++ b/obj/item/analyzer.html @@ -0,0 +1 @@ +/obj/item/analyzer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

analyzer

Vars

barometer_accuracy0 is best accuracy
cooldownBoolean whether this has a CD
cooldown_timeThe time in deciseconds
last_gasmix_dataCached gasmix data from ui_interact
ranged_scan_distanceMax scan distance

Procs

butchertimeApplies the barometer inaccuracy to the gas reading.
on_analyzeCalled when our analyzer is used on something

Var Details

barometer_accuracy

0 is best accuracy

cooldown

Boolean whether this has a CD

cooldown_time

The time in deciseconds

last_gasmix_data

Cached gasmix data from ui_interact

ranged_scan_distance

Max scan distance

Proc Details

butchertime

Applies the barometer inaccuracy to the gas reading.

on_analyze

Called when our analyzer is used on something

\ No newline at end of file diff --git a/obj/item/anomaly_neutralizer.html b/obj/item/anomaly_neutralizer.html new file mode 100644 index 0000000000000..aae8fe93ac36c --- /dev/null +++ b/obj/item/anomaly_neutralizer.html @@ -0,0 +1 @@ +/obj/item/anomaly_neutralizer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

anomaly_neutralizer

Procs

on_anomaly_neutralizedCallback for the effect remover component to handle neutralizing anomalies.
on_useUse up the anomaly neutralizer. Cause some sparks and delete it.
on_use_cmeCallback for the effect remover component to handle neutralizing CMEs.

Proc Details

on_anomaly_neutralized

Callback for the effect remover component to handle neutralizing anomalies.

on_use

Use up the anomaly neutralizer. Cause some sparks and delete it.

on_use_cme

Callback for the effect remover component to handle neutralizing CMEs.

\ No newline at end of file diff --git a/obj/item/anomaly_releaser.html b/obj/item/anomaly_releaser.html new file mode 100644 index 0000000000000..ba4be1cc13ae2 --- /dev/null +++ b/obj/item/anomaly_releaser.html @@ -0,0 +1 @@ +/obj/item/anomaly_releaser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

anomaly_releaser

Use on an anomaly core to "awake" the anomaly and stabilize it

Vars

infiniteCan we be used infinitely?
usedare we used? if used we can't be used again
used_icon_stateicon state after being used up

Var Details

infinite

Can we be used infinitely?

used

are we used? if used we can't be used again

used_icon_state

icon state after being used up

\ No newline at end of file diff --git a/obj/item/antag_granter.html b/obj/item/antag_granter.html new file mode 100644 index 0000000000000..f98e80c18c68b --- /dev/null +++ b/obj/item/antag_granter.html @@ -0,0 +1 @@ +/obj/item/antag_granter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

antag_granter

Vars

antag_datumWhat antag datum to give
user_messageWhat to tell the user when they use the granter

Var Details

antag_datum

What antag datum to give

user_message

What to tell the user when they use the granter

\ No newline at end of file diff --git a/obj/item/antag_spawner/loadout.html b/obj/item/antag_spawner/loadout.html new file mode 100644 index 0000000000000..9c7c92ae70716 --- /dev/null +++ b/obj/item/antag_spawner/loadout.html @@ -0,0 +1 @@ +/obj/item/antag_spawner/loadout - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

loadout

A subtype meant for 'normal' antag spawner items so as to reduce the amount of required hardcoding.

Vars

antag_datumThe antag datum applied
fail_texttext given when device fails to secure candidates
outfitThe applied outfit. Won't work with nonhuman spawn types.
pod_styleStyle used by the droppod
poll_ignore_categoryWhat category to ignore the poll
poll_role_checkThe antag role we check if the ghosts have enabled to get the poll.
role_to_playThe mind's special role.
spawn_typeThe mob type to spawn.
species_typeThe species type to set a human spawn to.
use_subtypesDo we use a random subtype of the outfit?

Procs

setup_podCreates the drop pod the spawned_mob will be dropped by

Var Details

antag_datum

The antag datum applied

fail_text

text given when device fails to secure candidates

outfit

The applied outfit. Won't work with nonhuman spawn types.

pod_style

Style used by the droppod

poll_ignore_category

What category to ignore the poll

poll_role_check

The antag role we check if the ghosts have enabled to get the poll.

role_to_play

The mind's special role.

spawn_type

The mob type to spawn.

species_type

The species type to set a human spawn to.

use_subtypes

Do we use a random subtype of the outfit?

Proc Details

setup_pod

Creates the drop pod the spawned_mob will be dropped by

\ No newline at end of file diff --git a/obj/item/antag_spawner/nuke_ops.html b/obj/item/antag_spawner/nuke_ops.html new file mode 100644 index 0000000000000..4bfcc21558d26 --- /dev/null +++ b/obj/item/antag_spawner/nuke_ops.html @@ -0,0 +1,2 @@ +/obj/item/antag_spawner/nuke_ops - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

nuke_ops

BORGS AND OPERATIVES +Device to request reinforcments from ghost pop

Vars

antag_datumThe antag datum applied
outfitThe applied outfit
pod_styleStyle used by the droppod
spawn_locationWhere do we land our pod?
special_role_nameThe name of the special role given to the recruit
use_subtypesDo we use a random subtype of the outfit?

Procs

setup_podCreates the drop pod the nukie will be dropped by

Var Details

antag_datum

The antag datum applied

outfit

The applied outfit

pod_style

Style used by the droppod

spawn_location

Where do we land our pod?

special_role_name

The name of the special role given to the recruit

use_subtypes

Do we use a random subtype of the outfit?

Proc Details

setup_pod

Creates the drop pod the nukie will be dropped by

\ No newline at end of file diff --git a/obj/item/aquarium_upgrade.html b/obj/item/aquarium_upgrade.html new file mode 100644 index 0000000000000..6db98804ca791 --- /dev/null +++ b/obj/item/aquarium_upgrade.html @@ -0,0 +1 @@ +/obj/item/aquarium_upgrade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

aquarium_upgrade

Aquarium upgrades, can be applied to a basic aquarium to upgrade it into an advanced subtype.

Vars

upgrade_from_typeWhat kind of aquarium can accept this upgrade. Strict type check, no subtypes.
upgrade_to_typetypepath of the new aquarium subtype created.

Var Details

upgrade_from_type

What kind of aquarium can accept this upgrade. Strict type check, no subtypes.

upgrade_to_type

typepath of the new aquarium subtype created.

\ No newline at end of file diff --git a/obj/item/armament_points_card.html b/obj/item/armament_points_card.html new file mode 100644 index 0000000000000..59cc02b30d407 --- /dev/null +++ b/obj/item/armament_points_card.html @@ -0,0 +1,2 @@ +/obj/item/armament_points_card - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

armament_points_card

Armament points card

+

To be used with the armaments vendor.

Vars

pointsHow many points does this card have to use at the vendor?

Var Details

points

How many points does this card have to use at the vendor?

\ No newline at end of file diff --git a/obj/item/arrow_spawner.html b/obj/item/arrow_spawner.html new file mode 100644 index 0000000000000..63e6f84866832 --- /dev/null +++ b/obj/item/arrow_spawner.html @@ -0,0 +1 @@ +/obj/item/arrow_spawner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

arrow_spawner

Vars

spawning_amountthe amount of arrows that are spawned from the spawner

Var Details

spawning_amount

the amount of arrows that are spawned from the spawner

\ No newline at end of file diff --git a/obj/item/ash_staff.html b/obj/item/ash_staff.html new file mode 100644 index 0000000000000..15e0d33e7f45f --- /dev/null +++ b/obj/item/ash_staff.html @@ -0,0 +1 @@ +/obj/item/ash_staff - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ash_staff

Vars

staff_timeIf the world.time is above this, it wont work. Charging requires whacking the necropolis nest

Var Details

staff_time

If the world.time is above this, it wont work. Charging requires whacking the necropolis nest

\ No newline at end of file diff --git a/obj/item/assembly.html b/obj/item/assembly.html new file mode 100644 index 0000000000000..e1555f29200f7 --- /dev/null +++ b/obj/item/assembly.html @@ -0,0 +1,7 @@ +/obj/item/assembly - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

assembly

Vars

assembly_flagsFlags related to this assembly. See [assemblies.dm]
is_position_sensitiveSet to true if the device has different icons for each position. +This will prevent things such as visible lasers from facing the incorrect direction when transformed by assembly_holder's update_appearance()

Procs

activateWhat the device does when turned on
holder_movementholder_movement: Called when the assembly's holder detects movement
on_attachon_attach: Called when attached to a holder, wiring datum, or other special assembly
on_detachon_detach: Called when removed from an assembly holder or wiring datum
pulsePulse: This device is emitting a pulse to act on another device
pulsedPulsed: This device was pulsed by another device

Var Details

assembly_flags

Flags related to this assembly. See [assemblies.dm]

is_position_sensitive

Set to true if the device has different icons for each position. +This will prevent things such as visible lasers from facing the incorrect direction when transformed by assembly_holder's update_appearance()

Proc Details

activate

What the device does when turned on

holder_movement

holder_movement: Called when the assembly's holder detects movement

on_attach

on_attach: Called when attached to a holder, wiring datum, or other special assembly

+

Will also be called if the assembly holder is attached to a plasma (internals) tank or welding fuel (dispenser) tank.

on_detach

on_detach: Called when removed from an assembly holder or wiring datum

pulse

Pulse: This device is emitting a pulse to act on another device

pulsed

Pulsed: This device was pulsed by another device

+
    +
  • pulser: Who triggered the pulse
  • +
\ No newline at end of file diff --git a/obj/item/assembly/control.html b/obj/item/assembly/control.html new file mode 100644 index 0000000000000..b8a13665b7757 --- /dev/null +++ b/obj/item/assembly/control.html @@ -0,0 +1 @@ +/obj/item/assembly/control - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

control

Vars

cooldownCooldown of the door's controller. Updates when pressed (activate())
idThe ID of the blast door electronics to match to the ID of the blast door being used.

Var Details

cooldown

Cooldown of the door's controller. Updates when pressed (activate())

id

The ID of the blast door electronics to match to the ID of the blast door being used.

\ No newline at end of file diff --git a/obj/item/assembly/control/camkillswitch.html b/obj/item/assembly/control/camkillswitch.html new file mode 100644 index 0000000000000..b189c3379c9c9 --- /dev/null +++ b/obj/item/assembly/control/camkillswitch.html @@ -0,0 +1 @@ +/obj/item/assembly/control/camkillswitch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

camkillswitch

Vars

camera_networkCamera network to kill

Var Details

camera_network

Camera network to kill

\ No newline at end of file diff --git a/obj/item/assembly/control/elevator.html b/obj/item/assembly/control/elevator.html new file mode 100644 index 0000000000000..096a01db33d9d --- /dev/null +++ b/obj/item/assembly/control/elevator.html @@ -0,0 +1,5 @@ +/obj/item/assembly/control/elevator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

elevator

Vars

lift_weakrefA weakref to the transport_controller datum we control

Procs

call_elevatorActually calls the elevator. +Returns FALSE if we failed to setup the move. +Returns TRUE if the move setup was a success, EVEN IF the move itself fails afterwards
check_buttonCallback for move_to_zlevel / general proc to check if we're still in a button
get_liftGets the elevator associated with our assembly / button

Var Details

lift_weakref

A weakref to the transport_controller datum we control

Proc Details

call_elevator

Actually calls the elevator. +Returns FALSE if we failed to setup the move. +Returns TRUE if the move setup was a success, EVEN IF the move itself fails afterwards

check_button

Callback for move_to_zlevel / general proc to check if we're still in a button

get_lift

Gets the elevator associated with our assembly / button

\ No newline at end of file diff --git a/obj/item/assembly/control/photobooth_control.html b/obj/item/assembly/control/photobooth_control.html new file mode 100644 index 0000000000000..131fe826a802c --- /dev/null +++ b/obj/item/assembly/control/photobooth_control.html @@ -0,0 +1 @@ +/obj/item/assembly/control/photobooth_control - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

photobooth_control

Vars

booth_machine_refWeakref to the photobooth we're connected to.

Procs

find_machineLocate the photobooth we're linked via ID

Var Details

booth_machine_ref

Weakref to the photobooth we're connected to.

Proc Details

find_machine

Locate the photobooth we're linked via ID

\ No newline at end of file diff --git a/obj/item/assembly/control/polarizer.html b/obj/item/assembly/control/polarizer.html new file mode 100644 index 0000000000000..addfd9b920938 --- /dev/null +++ b/obj/item/assembly/control/polarizer.html @@ -0,0 +1 @@ +/obj/item/assembly/control/polarizer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

polarizer

Vars

polarizingWhether the connected windows are meant to be polarized or not.

Var Details

polarizing

Whether the connected windows are meant to be polarized or not.

\ No newline at end of file diff --git a/obj/item/assembly/control/showtime.html b/obj/item/assembly/control/showtime.html new file mode 100644 index 0000000000000..d05898b0f1a12 --- /dev/null +++ b/obj/item/assembly/control/showtime.html @@ -0,0 +1 @@ +/obj/item/assembly/control/showtime - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

showtime

Vars

is_show_activeStores if the show associated with this controller is active or not
tv_endersList of phrases the entertainment console may say when the show ends
tv_network_idThe camera network id this controller toggles
tv_show_nameThe display TV show name
tv_startersList of phrases the entertainment console may say when the show begins

Var Details

is_show_active

Stores if the show associated with this controller is active or not

tv_enders

List of phrases the entertainment console may say when the show ends

tv_network_id

The camera network id this controller toggles

tv_show_name

The display TV show name

tv_starters

List of phrases the entertainment console may say when the show begins

\ No newline at end of file diff --git a/obj/item/assembly/control/ticket_machine.html b/obj/item/assembly/control/ticket_machine.html new file mode 100644 index 0000000000000..21c508c663951 --- /dev/null +++ b/obj/item/assembly/control/ticket_machine.html @@ -0,0 +1 @@ +/obj/item/assembly/control/ticket_machine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ticket_machine

Vars

ticket_machine_refWeakref to our ticket machine

Procs

find_machineLocate the ticket machine to which we're linked by our ID

Var Details

ticket_machine_ref

Weakref to our ticket machine

Proc Details

find_machine

Locate the ticket machine to which we're linked by our ID

\ No newline at end of file diff --git a/obj/item/assembly/control/transport.html b/obj/item/assembly/control/transport.html new file mode 100644 index 0000000000000..736a452a752ce --- /dev/null +++ b/obj/item/assembly/control/transport.html @@ -0,0 +1 @@ +/obj/item/assembly/control/transport - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

transport

Vars

optionsOptions to be passed with the requests to the transport subsystem
specific_transport_idThe ID of the tram we're linked to

Var Details

options

Options to be passed with the requests to the transport subsystem

specific_transport_id

The ID of the tram we're linked to

\ No newline at end of file diff --git a/obj/item/assembly/control/transport/call_button.html b/obj/item/assembly/control/transport/call_button.html new file mode 100644 index 0000000000000..5ced861f6d519 --- /dev/null +++ b/obj/item/assembly/control/transport/call_button.html @@ -0,0 +1 @@ +/obj/item/assembly/control/transport/call_button - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

call_button

Vars

idID to link to allow us to link to one specific tram in the world

Var Details

id

ID to link to allow us to link to one specific tram in the world

\ No newline at end of file diff --git a/obj/item/assembly/control/transport/remote.html b/obj/item/assembly/control/transport/remote.html new file mode 100644 index 0000000000000..2adc084bd0b5b --- /dev/null +++ b/obj/item/assembly/control/transport/remote.html @@ -0,0 +1 @@ +/obj/item/assembly/control/transport/remote - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

remote

Vars

destinationdesired tram destination

Procs

activatesend our selected commands to the tram
item_ctrl_clickset safety bypass

Var Details

destination

desired tram destination

Proc Details

activate

send our selected commands to the tram

item_ctrl_click

set safety bypass

\ No newline at end of file diff --git a/obj/item/assembly/flash.html b/obj/item/assembly/flash.html new file mode 100644 index 0000000000000..e6560e9399d97 --- /dev/null +++ b/obj/item/assembly/flash.html @@ -0,0 +1,16 @@ +/obj/item/assembly/flash - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

flash

Vars

flashingWhether we currently have the flashing overlay.
flashing_overlayThe overlay we use for flashing.

Procs

calculate_deviationHandles the directionality of the attack
flash_carbonHandles actual flashing part of the attack

Var Details

flashing

Whether we currently have the flashing overlay.

flashing_overlay

The overlay we use for flashing.

Proc Details

calculate_deviation

Handles the directionality of the attack

+

Returns the amount of 'deviation', 0 being facing each other, 1 being sideways, 2 being facing away from each other. +Arguments:

+
    +
  • victim - Victim
  • +
  • attacker - Attacker
  • +

flash_carbon

Handles actual flashing part of the attack

+

This proc is awful in every sense of the way, someone should definitely refactor this whole code. +Arguments:

+
    +
  • M - Victim
  • +
  • user - Attacker
  • +
  • confusion_duration - handles the amount of confusion it gives you
  • +
  • targeted - determines if it was aoe or targeted
  • +
  • generic_message - checks if it should display default message.
  • +
\ No newline at end of file diff --git a/obj/item/assembly/infra.html b/obj/item/assembly/infra.html new file mode 100644 index 0000000000000..1dc57c64afa29 --- /dev/null +++ b/obj/item/assembly/infra.html @@ -0,0 +1 @@ +/obj/item/assembly/infra - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

infra

Vars

active_beamThe current active beam datum
beam_pass_flagsPass flags the beam uses to determine what it can pass through
buffer_turfA reference to the turf at the END of our active beam
hearing_rangeThe radius of which people can hear triggers
max_beam_lengthThe length the beam can go
onWhether the beam is beaming
visibleWhether the beam is visible

Procs

atom_blocks_beamChecks if the passed movable can block the beam.
make_beamUsed to refresh the beam in whatever context.
toggle_onToggles the beam on or off.
toggle_visibleToggles the visibility of the beam.
turf_blocks_beamChecks if the passed turf (or something on it) can block the beam.
update_visibleUpdates the visibility of the beam (if active).

Var Details

active_beam

The current active beam datum

beam_pass_flags

Pass flags the beam uses to determine what it can pass through

buffer_turf

A reference to the turf at the END of our active beam

hearing_range

The radius of which people can hear triggers

max_beam_length

The length the beam can go

on

Whether the beam is beaming

visible

Whether the beam is visible

Proc Details

atom_blocks_beam

Checks if the passed movable can block the beam.

make_beam

Used to refresh the beam in whatever context.

toggle_on

Toggles the beam on or off.

toggle_visible

Toggles the visibility of the beam.

turf_blocks_beam

Checks if the passed turf (or something on it) can block the beam.

update_visible

Updates the visibility of the beam (if active).

\ No newline at end of file diff --git a/obj/item/assembly/mousetrap.html b/obj/item/assembly/mousetrap.html new file mode 100644 index 0000000000000..e6f608d399a78 --- /dev/null +++ b/obj/item/assembly/mousetrap.html @@ -0,0 +1,9 @@ +/obj/item/assembly/mousetrap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mousetrap

Procs

clumsy_checkclumsy_check: Sets off the mousetrap if handled by a clown (with some probability)
update_hostupdate_host: automatically setup host and host_turf

Proc Details

clumsy_check

clumsy_check: Sets off the mousetrap if handled by a clown (with some probability)

+

Arguments:

+
    +
  • user: The mob handling the trap
  • +

update_host

update_host: automatically setup host and host_turf

+

Arguments:

+
    +
  • force: Re-register signals even if the host or loc is unchanged
  • +
\ No newline at end of file diff --git a/obj/item/assembly/prox_sensor.html b/obj/item/assembly/prox_sensor.html new file mode 100644 index 0000000000000..32a04eafc71a1 --- /dev/null +++ b/obj/item/assembly/prox_sensor.html @@ -0,0 +1 @@ +/obj/item/assembly/prox_sensor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

prox_sensor

Vars

proximity_monitorProximity monitor associated with this atom, needed for it to work.

Var Details

proximity_monitor

Proximity monitor associated with this atom, needed for it to work.

\ No newline at end of file diff --git a/obj/item/assembly/signaler.html b/obj/item/assembly/signaler.html new file mode 100644 index 0000000000000..d31f58f584016 --- /dev/null +++ b/obj/item/assembly/signaler.html @@ -0,0 +1 @@ +/obj/item/assembly/signaler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

signaler

Vars

codeThe code sent by this signaler.
cooldown_lengthHow long of a cooldown exists on this signaller.
frequencyThe frequency this signaler is set to.
hearing_rangeHow many tiles away can you hear when this signaler is used or gets activated.
last_receive_signal_logString containing the last piece of logging data relating to when this signaller has received a signal.
radio_connectionThe radio frequency connection this signaler is using.
suicide_mobHolds a reference string to the mob, decides how much of a gamer you are.
suiciderHolds the mind that commited suicide.

Var Details

code

The code sent by this signaler.

cooldown_length

How long of a cooldown exists on this signaller.

frequency

The frequency this signaler is set to.

hearing_range

How many tiles away can you hear when this signaler is used or gets activated.

last_receive_signal_log

String containing the last piece of logging data relating to when this signaller has received a signal.

radio_connection

The radio frequency connection this signaler is using.

suicide_mob

Holds a reference string to the mob, decides how much of a gamer you are.

suicider

Holds the mind that commited suicide.

\ No newline at end of file diff --git a/obj/item/assembly/trapdoor.html b/obj/item/assembly/trapdoor.html new file mode 100644 index 0000000000000..90312858c161b --- /dev/null +++ b/obj/item/assembly/trapdoor.html @@ -0,0 +1,5 @@ +/obj/item/assembly/trapdoor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

trapdoor

Vars

linkedif true, a trapdoor in the world has a reference to this assembly and is listening for when it is pulsed.
search_cooldownif the trapdoor isn't linked it will try to link on pulse, this shouldn't be spammable
search_cooldown_timetrapdoor link cooldown time here!
stored_decalslist of lists that are arguments for readding decals when the linked trapdoor comes back. pain.

Var Details

linked

if true, a trapdoor in the world has a reference to this assembly and is listening for when it is pulsed.

search_cooldown

if the trapdoor isn't linked it will try to link on pulse, this shouldn't be spammable

search_cooldown_time

trapdoor link cooldown time here!

stored_decals

list of lists that are arguments for readding decals when the linked trapdoor comes back. pain.

+

we are storing this data FOR the trapdoor component we are linked to. kinda like a multitool. +format: list(list(element's description, element's cleanable, element's directional, element's pic)) +the list will be filled with all the data of the deleting elements (when ChangeTurf is called) only when the trapdoor begins to open. +so any other case the elements will be changed but not recorded.

\ No newline at end of file diff --git a/obj/item/assembly/voice.html b/obj/item/assembly/voice.html new file mode 100644 index 0000000000000..c490406adcc98 --- /dev/null +++ b/obj/item/assembly/voice.html @@ -0,0 +1 @@ +/obj/item/assembly/voice - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

voice

Vars

recordedThe activation message is tracked using this var.

Var Details

recorded

The activation message is tracked using this var.

\ No newline at end of file diff --git a/obj/item/assembly_holder.html b/obj/item/assembly_holder.html new file mode 100644 index 0000000000000..940955236af78 --- /dev/null +++ b/obj/item/assembly_holder.html @@ -0,0 +1,13 @@ +/obj/item/assembly_holder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

assembly_holder

Vars

assembliesused to store the list of assemblies making up our assembly holder

Procs

add_assemblyAdds an assembly to the assembly holder
on_attachon_attach: Pass on_attach message to child assemblies
process_activationthis proc is used to process the activation of the assembly holder

Var Details

assemblies

used to store the list of assemblies making up our assembly holder

Proc Details

add_assembly

Adds an assembly to the assembly holder

+

This proc is used to add an assembly to the assembly holder, update the appearance, and the name of it. +Arguments:

+
    +
  • attached_assembly - assembly we are adding to the assembly holder
  • +
  • user - user we pass into attach()
  • +

on_attach

on_attach: Pass on_attach message to child assemblies

process_activation

this proc is used to process the activation of the assembly holder

+

This proc is usually called by signalers, timers, or anything that can trigger and +send a pulse to the assembly holder, which then calls this proc that actually activates the assemblies +Arguments:

+
    +
  • /obj/device - the device we sent the pulse from which called this proc
  • +
\ No newline at end of file diff --git a/obj/item/attachable_soulcatcher.html b/obj/item/attachable_soulcatcher.html new file mode 100644 index 0000000000000..ffa4d6220790a --- /dev/null +++ b/obj/item/attachable_soulcatcher.html @@ -0,0 +1 @@ +/obj/item/attachable_soulcatcher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

attachable_soulcatcher

Vars

blacklisted_itemsWhat items do we want to prevent the viewer from attaching this to?
destroy_on_useDo we want to destory the item once it is attached to an item?
linked_soulcatcherWhat soulcathcer component is currnetly linked to this object?

Var Details

blacklisted_items

What items do we want to prevent the viewer from attaching this to?

destroy_on_use

Do we want to destory the item once it is attached to an item?

linked_soulcatcher

What soulcathcer component is currnetly linked to this object?

\ No newline at end of file diff --git a/obj/item/autosurgeon.html b/obj/item/autosurgeon.html new file mode 100644 index 0000000000000..15e7256d5ed96 --- /dev/null +++ b/obj/item/autosurgeon.html @@ -0,0 +1 @@ +/obj/item/autosurgeon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

autosurgeon

Vars

loaded_overlayThe overlay that shows when the autosurgeon has an organ inside of it.
organ_whitelistThe list of organs and their children we allow into the autosurgeon. An empty list means no whitelist.
starting_organWhat organ will the autosurgeon sub-type will start with. ie, CMO autosurgeon start with a medi-hud.
stored_organThe organ currently loaded in the autosurgeon, ready to be implanted.
surgery_speedThe percentage modifier for how fast you can use the autosurgeon to implant other people.
usesHow many times you can use the autosurgeon before it becomes useless

Var Details

loaded_overlay

The overlay that shows when the autosurgeon has an organ inside of it.

organ_whitelist

The list of organs and their children we allow into the autosurgeon. An empty list means no whitelist.

starting_organ

What organ will the autosurgeon sub-type will start with. ie, CMO autosurgeon start with a medi-hud.

stored_organ

The organ currently loaded in the autosurgeon, ready to be implanted.

surgery_speed

The percentage modifier for how fast you can use the autosurgeon to implant other people.

uses

How many times you can use the autosurgeon before it becomes useless

\ No newline at end of file diff --git a/obj/item/bait_can.html b/obj/item/bait_can.html new file mode 100644 index 0000000000000..d8eb962cd0285 --- /dev/null +++ b/obj/item/bait_can.html @@ -0,0 +1 @@ +/obj/item/bait_can - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bait_can

Vars

bait_removal_cooldownTracking until we can take out another bait item
bait_typeWhat bait item it produces
cooldown_timeTime between bait retrievals
uses_leftHow many uses does it have left.

Var Details

bait_removal_cooldown

Tracking until we can take out another bait item

bait_type

What bait item it produces

cooldown_time

Time between bait retrievals

uses_left

How many uses does it have left.

\ No newline at end of file diff --git a/obj/item/banner.html b/obj/item/banner.html new file mode 100644 index 0000000000000..7045738decae9 --- /dev/null +++ b/obj/item/banner.html @@ -0,0 +1 @@ +/obj/item/banner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

banner

Vars

job_loyaltiesMobs with assigned roles whose department bitflags match these will be inspired.
role_loyaltiesMobs with any of these special roles will be inspired

Var Details

job_loyalties

Mobs with assigned roles whose department bitflags match these will be inspired.

role_loyalties

Mobs with any of these special roles will be inspired

\ No newline at end of file diff --git a/obj/item/barcode.html b/obj/item/barcode.html new file mode 100644 index 0000000000000..cf254a07a7571 --- /dev/null +++ b/obj/item/barcode.html @@ -0,0 +1 @@ +/obj/item/barcode - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

barcode

Vars

cut_multiplierThe percentage of profit to give to the payments_acc, from 0 to 1.
payments_accThe bank account assigned to pay out to from the sales tagger.

Var Details

cut_multiplier

The percentage of profit to give to the payments_acc, from 0 to 1.

payments_acc

The bank account assigned to pay out to from the sales tagger.

\ No newline at end of file diff --git a/obj/item/barcodescanner.html b/obj/item/barcodescanner.html new file mode 100644 index 0000000000000..f160f8785bb7b --- /dev/null +++ b/obj/item/barcodescanner.html @@ -0,0 +1 @@ +/obj/item/barcodescanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

barcodescanner

Vars

computer_refWeakref to the library computer we are connected to.
scan_modeThe current scanning mode (BARCODE_SCANNER_CHECKIN|BARCODE_SCANNER_INVENTORY)

Var Details

computer_ref

Weakref to the library computer we are connected to.

scan_mode

The current scanning mode (BARCODE_SCANNER_CHECKIN|BARCODE_SCANNER_INVENTORY)

\ No newline at end of file diff --git a/obj/item/bdsm_candle.html b/obj/item/bdsm_candle.html new file mode 100644 index 0000000000000..3c5a50911febf --- /dev/null +++ b/obj/item/bdsm_candle.html @@ -0,0 +1 @@ +/obj/item/bdsm_candle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bdsm_candle

Vars

candle_designsStatic list used for displaying colors in the radial selection menu
candlelightsStatic list of possible colors for the candle
color_changedIf the color has been changed before
current_colorCurrent color of the candle, can be changed and affects sprite
litIf the candle is on
start_litIf the candle should spawn lit

Var Details

candle_designs

Static list used for displaying colors in the radial selection menu

candlelights

Static list of possible colors for the candle

color_changed

If the color has been changed before

current_color

Current color of the candle, can be changed and affects sprite

lit

If the candle is on

start_lit

If the candle should spawn lit

\ No newline at end of file diff --git a/obj/item/bedsheet.html b/obj/item/bedsheet.html new file mode 100644 index 0000000000000..150b22252fbd7 --- /dev/null +++ b/obj/item/bedsheet.html @@ -0,0 +1 @@ +/obj/item/bedsheet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bedsheet

Vars

bedsheet_typeDenotes if the bedsheet is a single, double, or other kind of bedsheet
dream_messagesCustom nouns to act as the subject of dreams
stack_amountThe number of sheets dropped by this bedsheet when cut
stack_typeCutting it up will yield this.

Var Details

bedsheet_type

Denotes if the bedsheet is a single, double, or other kind of bedsheet

dream_messages

Custom nouns to act as the subject of dreams

stack_amount

The number of sheets dropped by this bedsheet when cut

stack_type

Cutting it up will yield this.

\ No newline at end of file diff --git a/obj/item/bedsheet/gondola.html b/obj/item/bedsheet/gondola.html new file mode 100644 index 0000000000000..e132c5eb96396 --- /dev/null +++ b/obj/item/bedsheet/gondola.html @@ -0,0 +1 @@ +/obj/item/bedsheet/gondola - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gondola

Vars

gondola_eyesone of four icon states that represent its eyes
gondola_mouthone of four icon states that represent its mouth

Var Details

gondola_eyes

one of four icon states that represent its eyes

gondola_mouth

one of four icon states that represent its mouth

\ No newline at end of file diff --git a/obj/item/bee_smoker.html b/obj/item/bee_smoker.html new file mode 100644 index 0000000000000..32cc2f26e4fb9 --- /dev/null +++ b/obj/item/bee_smoker.html @@ -0,0 +1 @@ +/obj/item/bee_smoker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bee_smoker

Vars

activatedare we currently activated?
beesmoke_loopsound to play when releasing smoke
current_herb_fuelcurrent level of fuel we have
max_herb_fuelmaximum amount of fuel we can hold
single_use_costhow much fuel it costs to use this item

Var Details

activated

are we currently activated?

beesmoke_loop

sound to play when releasing smoke

current_herb_fuel

current level of fuel we have

max_herb_fuel

maximum amount of fuel we can hold

single_use_cost

how much fuel it costs to use this item

\ No newline at end of file diff --git a/obj/item/bikehorn.html b/obj/item/bikehorn.html new file mode 100644 index 0000000000000..9b07bdb8d7c11 --- /dev/null +++ b/obj/item/bikehorn.html @@ -0,0 +1 @@ +/obj/item/bikehorn - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bikehorn

Vars

sound_filesound file given to the squeaky component we make in Initialize() so sub-types can specify their own sound

Var Details

sound_file

sound file given to the squeaky component we make in Initialize() so sub-types can specify their own sound

\ No newline at end of file diff --git a/obj/item/biopsy_tool.html b/obj/item/biopsy_tool.html new file mode 100644 index 0000000000000..4894094a5ab34 --- /dev/null +++ b/obj/item/biopsy_tool.html @@ -0,0 +1 @@ +/obj/item/biopsy_tool - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

biopsy_tool

Tool capable of taking biological samples from mobs

Procs

InitializeAdds the swabbing component to the biopsy tool

Proc Details

Initialize

Adds the swabbing component to the biopsy tool

\ No newline at end of file diff --git a/obj/item/bitrunning_disk.html b/obj/item/bitrunning_disk.html new file mode 100644 index 0000000000000..f57a0b7d21298 --- /dev/null +++ b/obj/item/bitrunning_disk.html @@ -0,0 +1,4 @@ +/obj/item/bitrunning_disk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bitrunning_disk

Bitrunning tech disks which let you load items or programs into the vdom on first avatar generation. +For the record: Balance shouldn't be a primary concern. +You can make the custom cheese spells you've always wanted. +Just make it fun and engaging, it's PvE content.

Vars

choice_madeName of the choice made

Var Details

choice_made

Name of the choice made

\ No newline at end of file diff --git a/obj/item/bitrunning_disk/ability.html b/obj/item/bitrunning_disk/ability.html new file mode 100644 index 0000000000000..4a8cc79bb13cc --- /dev/null +++ b/obj/item/bitrunning_disk/ability.html @@ -0,0 +1 @@ +/obj/item/bitrunning_disk/ability - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ability

Vars

granted_actionThe selected ability that this grants
selectable_actionsThe list of actions that this can grant

Var Details

granted_action

The selected ability that this grants

selectable_actions

The list of actions that this can grant

\ No newline at end of file diff --git a/obj/item/bitrunning_disk/item.html b/obj/item/bitrunning_disk/item.html new file mode 100644 index 0000000000000..9995cca4a8d4f --- /dev/null +++ b/obj/item/bitrunning_disk/item.html @@ -0,0 +1 @@ +/obj/item/bitrunning_disk/item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

item

Vars

granted_itemThe selected item that this grants
selectable_itemsThe list of actions that this can grant

Var Details

granted_item

The selected item that this grants

selectable_items

The list of actions that this can grant

\ No newline at end of file diff --git a/obj/item/blood_filter.html b/obj/item/blood_filter.html new file mode 100644 index 0000000000000..003d071362f17 --- /dev/null +++ b/obj/item/blood_filter.html @@ -0,0 +1 @@ +/obj/item/blood_filter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blood_filter

Vars

whitelistAssoc list of chem ids to names, used for deciding which chems to filter when used for surgery

Var Details

whitelist

Assoc list of chem ids to names, used for deciding which chems to filter when used for surgery

\ No newline at end of file diff --git a/obj/item/blueprints.html b/obj/item/blueprints.html new file mode 100644 index 0000000000000..d27638f9a229f --- /dev/null +++ b/obj/item/blueprints.html @@ -0,0 +1,24 @@ +/obj/item/blueprints - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

blueprints

Blueprints +Used to see the wires of machines on the station, the roundstart layout of pipes/cables/tubes, +as well as allowing you to rename existing areas and create new ones. +Used by the station, cyborgs, and golems.

Vars

fluffnoticeA string of flavortext to be displayed at the top of the UI, related to the type of blueprints we are.
in_useBoolean on whether the blueprints are currently being used, which prevents double-using them to rename/create areas.
legend_viewingThe legend type the blueprints are currently looking at, which is either modularly +set by wires datums, the main page, or an overview of them all.
new_area_typeThe type of area we'll create when we make a new area. This is a typepath.
showingList of images that we're showing to a client, used for showing blueprint data.
viewingThe client that is being shown the list of 'showing' images of blueprint data.

Procs

clear_viewerClears the client we're showig images to and deletes the images of blueprint data +we made to show them.
edit_areaedit_area +Takes input from the player and renames the area the blueprints are currently in.
get_area_typeGets the area type the user is currently standing in. +Returns: AREA_STATION, AREA_OUTDOORS, or AREA_SPECIAL +Args:
set_viewerSets the user's client as the person viewing blueprint data, and builds blueprint data +around the user. +Args:

Var Details

fluffnotice

A string of flavortext to be displayed at the top of the UI, related to the type of blueprints we are.

in_use

Boolean on whether the blueprints are currently being used, which prevents double-using them to rename/create areas.

legend_viewing

The legend type the blueprints are currently looking at, which is either modularly +set by wires datums, the main page, or an overview of them all.

new_area_type

The type of area we'll create when we make a new area. This is a typepath.

showing

List of images that we're showing to a client, used for showing blueprint data.

viewing

The client that is being shown the list of 'showing' images of blueprint data.

Proc Details

clear_viewer

Clears the client we're showig images to and deletes the images of blueprint data +we made to show them.

edit_area

edit_area +Takes input from the player and renames the area the blueprints are currently in.

get_area_type

Gets the area type the user is currently standing in. +Returns: AREA_STATION, AREA_OUTDOORS, or AREA_SPECIAL +Args:

+
    +
  • user: The person we're getting the area of to check if it's a special area.
  • +

set_viewer

Sets the user's client as the person viewing blueprint data, and builds blueprint data +around the user. +Args:

+
    +
  • user: The person who's client we're giving images to.
  • +
\ No newline at end of file diff --git a/obj/item/bluespace_finger.html b/obj/item/bluespace_finger.html new file mode 100644 index 0000000000000..8d773f4e44b71 --- /dev/null +++ b/obj/item/bluespace_finger.html @@ -0,0 +1 @@ +/obj/item/bluespace_finger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bluespace_finger

Point at a target and teleport somewhere vaguely close to it

Vars

teleport_rangeHow far away can you point?
teleport_timeHow long does it take to teleport?
teleport_varyHow accurate are you?

Var Details

teleport_range

How far away can you point?

teleport_time

How long does it take to teleport?

teleport_vary

How accurate are you?

\ No newline at end of file diff --git a/obj/item/bodybag.html b/obj/item/bodybag.html new file mode 100644 index 0000000000000..6916d574ba88a --- /dev/null +++ b/obj/item/bodybag.html @@ -0,0 +1,5 @@ +/obj/item/bodybag - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bodybag

Vars

unfoldedbag_pathStored path we use for spawning a new body bag entity when unfolded.

Procs

deploy_bodybagCreates a new body bag item when unfolded, at the provided location, replacing the body bag item.

Var Details

unfoldedbag_path

Stored path we use for spawning a new body bag entity when unfolded.

Proc Details

deploy_bodybag

Creates a new body bag item when unfolded, at the provided location, replacing the body bag item.

+
    +
  • mob/user: User opening the body bag.
  • +
  • atom/location: the place/entity/mob where the body bag is being deployed from.
  • +
\ No newline at end of file diff --git a/obj/item/bodypart.html b/obj/item/bodypart.html new file mode 100644 index 0000000000000..50ef625fce4be --- /dev/null +++ b/obj/item/bodypart.html @@ -0,0 +1,94 @@ +/obj/item/bodypart - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bodypart

Vars

any_existing_wound_can_mangle_our_exteriorIf false, no wound that can be applied to us can mangle our exterior. Used for determining if we should use [hp_percent_to_dismemberable] instead of normal dismemberment.
any_existing_wound_can_mangle_our_interiorIf false, no wound that can be applied to us can mangle our interior. Used for determining if we should use [hp_percent_to_dismemberable] instead of normal dismemberment.
attack_typeType of an attack from this limb does. Arms will do punches, Legs for kicks, and head for bites. (TO ADD: tactical chestbumps)
aux_zone_markingsA list of all our aux zone markings(hands)
base_limb_idWhat is our normal limb ID? used for squashing legs.
biological_stateA bitfield of biological states, exclusively used to determine which wounds this limb will get, +as well as how easily it will happen. +Set to BIO_STANDARD_UNJOINTED because most species have both flesh bone and blood in their limbs.
bleed_overlay_iconIf we're bleeding, which icon are we displaying on this part
body_damage_coeffA mutiplication of the burn and brute damage that the limb's stored damage contributes to its attached mob's overall wellbeing.
body_partbitflag used to check which clothes cover this bodypart
body_zoneBODY_ZONE_CHEST, BODY_ZONE_L_ARM, etc , used for def_zone
bodypart_disabledControls if the limb is disabled. TRUE means it is disabled (similar to being removed, but still present for the sake of targeted interactions).
bodypart_flagsRandom flags that describe this bodypart
bodypart_overlaysA list of all bodypart overlays to draw
bodypart_trait_sourceThe name of the trait source that the organ gives. Should not be altered during the events of gameplay, and will cause problems if it is.
bodypart_traitsTraits that are given to the holder of the part. This does not update automatically on life(), only when the organs are initially generated or inserted!
bodyshapeA bitfield of bodyshapes for clothing and other sprite information
bodytypeA bitfield of bodytypes for surgery, and misc information
brute_damThe current amount of brute damage the limb has
brute_modifierBrute damage gets multiplied by this on receive_damage()
burn_damThe current amount of burn damage the limb has
burn_modifierBurn damage gets multiplied by this on receive_damage()
cached_bleed_rateOur current bleed rate. Cached, update with refresh_bleed_rate()
can_be_disabledWhether it is possible for the limb to be disabled whatsoever. TRUE means that it is possible.
can_be_surgically_removedWhether or not this bodypart can be surgically removed. Independant of the dismemberable variable, +meaning that you can have one and not the other, both or none, and all will still work. This only +affects amputation and augmentation surgeries.
change_exempt_flagsDefines when a bodypart should not be changed. Example: BP_BLOCK_CHANGE_SPECIES prevents the limb from being overwritten on species gain
cremation_progressGradually increases while burning when at full damage, destroys the limb when at 100
current_gauzeIf we have a gauze wrapping currently applied (not including splints)
current_styleThe bodypart's currently applied style's name. Only necessary for bodyparts that come in multiple +variants, like prosthetics and cyborg bodyparts.
damage_overlay_colora color (optionally matrix) for the damage overlays to give the limb
disabled_wound_penaltyWhen this bodypart hits max damage, this number is added to all wound rolls. Obviously only relevant for bodyparts that have damage caps.
disabling_threshold_percentageHandles limb disabling by damage. If 0 (0%), a limb can't be disabled via damage. If 1 (100%), it is disabled at max limb damage. Anything between is the percentage of damage against maximum limb damage needed to disable the limb.
dmg_overlay_typethe type of damage overlay (if any) to use when this bodypart is bruised/burned.
draw_colorThe actual color a limb is drawn as, set by /proc/update_limb()
embedded_objectsList of obj/item's embedded inside us. Managed by embedded components, do not modify directly
feature_offsetsList of the above datums which have actually been instantiated, managed automatically
generic_bleedstacksHow much generic bleedstacks we have on this bodypart
grappled_attack_verbif we have a special attack verb for hitting someone who is grappled by us, it goes here.
grasped_byIf something is currently grasping this bodypart and trying to staunch bleeding (see /obj/item/hand_item/self_grasp)
held_indexare we a hand? if so, which one!
hp_percent_to_dismemberableIn the case we dont have dismemberable features, or literally cant get wounds, we will use this percent to determine when we can be dismembered. +Compared to our ABSOLUTE maximum. Stored in decimal; 0.8 = 80%.
husk_colorThe color to multiply the greyscaled husk sprites by. Can be null. Old husk sprite chest color is #A6A6A6
husk_typeThe type of husk for building an iconstate
icon_greyscaleThe icon for Organic limbs using greyscale
icon_huskThe icon for husked limbs
icon_invisibleThe icon for invisible limbs
icon_staticThe icon for non-greyscale limbs
is_dimorphicIs there a sprite difference between male and female?
is_huskedWhether the bodypart (and the owner) is husked.
is_invisibleWhether the bodypart (and the owner) is invisible through invisibleman trait.
last_maxedSo we know if we need to scream if this limb hits max damage
limb_idThe ID of a species used to generate the icon. Needs to match the icon_state portion in the limbs file!
markingsA list of all of our bodypart markings.
markings_alphaThe alpha override of our markings.
max_damageThe maximum brute OR burn damage a bodypart can take. Once we hit this cap, no more damage of either type!
ownerThe mob that "owns" this limb +DO NOT MODIFY DIRECTLY. Use update_owner()
plaintext_zoneThe body zone of this part in english ("chest", "left arm", etc) without the species attached to it
robotic_emp_paralyze_damage_percent_thresholdget_damage() / total_damage must surpass this to allow our limb to be disabled, even temporarily, by an EMP.
scarrableIf this limb can be scarred.
scarsThe scars currently afflicting this body part
scars_covered_by_clothesA hat won't cover your face, but a shirt covering your chest will cover your... you know, chest
should_draw_greyscaleLimbs need this information as a back-up incase they are generated outside of a carbon (limbgrower)
show_iconIf we even wanna try and handle icons/overlays of the limb (Taurs don't, f.e.). See update_body_parts
speed_modifierA speed modifier we apply to the owner when attached, if any. Positive numbers make it move slower, negative numbers make it move faster.
texture_bodypart_overlayA potential texturing overlay to put on the limb
unarmed_attack_effectwhat visual effect is used when this limb is used to strike someone.
unarmed_attack_soundSounds when this bodypart is used in an umarmed attack
unarmed_attack_verbsthe verbs used for an unarmed attack when using this limb, such as arm.unarmed_attack_verbs = list("punch")
unarmed_damage_highHighest possible punch damage this bodypart can ive.
unarmed_damage_lowLowest possible punch damage this bodypart can give. If this is set to 0, unarmed attacks will always miss.
unarmed_effectivenessDetermines the accuracy bonus, armor penetration and knockdown probability.
unarmed_sharpnessIf this limb has sharp unarmed attacks, by default off. You probably want to use SHARP_EDGED, SHARP_POINTY would be nuts balance-wise.
use_alternate_dismemberment_calc_even_if_mangleableIf true, we will use [hp_percent_to_dismemberable] even if we are dismemberable via wounds. Useful for things with extreme wound resistance.
variable_colorAn "override" color that can be applied to ANY limb, greyscale or not.
wound_damage_multiplierOur current stored wound damage multiplier
wound_resistanceThis number is subtracted from all wound rolls on this bodypart, higher numbers mean more defense, negative means easier to wound
woundsThe wounds currently afflicting this body part

Procs

_embed_objectINTERNAL PROC, DO NOT USE +Properly sets us up to manage an inserted embeded object
_unembed_objectINTERNAL PROC, DO NOT USE +Cleans up any attachment we have to the embedded object, removes it from our list
add_bodypart_overlayAdd a bodypart overlay and call the appropriate update procs
adjustBleedStacksModifies our generic bleedstacks. You must use this to change the variable +Takes the amount to adjust by, and the lowest amount we're allowed to have post adjust
apply_ownershipApply ownership of a limb to someone, giving the appropriate traits, updates and signals
attempt_feature_restyleAsks the external organs inside the limb if they can restyle
can_attach_limbChecks if you can attach a limb, returns TRUE if you can.
can_be_graspedIf TRUE, the owner of this bodypart can try grabbing it to slow bleeding, as well as various other effects.
change_appearanceA multi-purpose setter for all things immediately important to the icon and iconstate of the limb.
check_for_frankensteinChecks if a limb qualifies as a BODYPART_IMPLANTED
check_for_injuriesCalled when a bodypart is checked for injuries.
check_series_wounding_modsShould return an assoc list of (wound_series -> penalty). Will be used in determining series-specific penalties for wounding.
check_woundingcheck_wounding() is where we handle rolling for, selecting, and applying a wound if we meet the criteria
check_woundings_modscheck_wounding_mods() is where we handle the various modifiers of a wound roll
clear_ownershipRun all necessary procs to remove a limbs ownership and remove the appropriate signals and traits
dismemberRemove target limb from its owner, with side effects.
dismemberable_by_total_damageReturns TRUE if our total percent damage is more or equal to our dismemberable percentage, but FALSE if a wound can cause us to be dismembered.
dismemberable_by_woundReturns if our current mangling status allows us to be dismembered. Requires both no exterior/mangled exterior and no interior/mangled interior.
drop_limblimb removal. The "special" argument is used for swapping a limb with a new one without the effects of losing a limb kicking in.
emp_effectThe actual effect of EMPs on the limb. Allows children to override it however they want
forced_removalIn-case someone, somehow only teleports someones limb
generate_husk_keyGenerates a cache key specifically for husks
get_bio_state_statusReturns a bitflag using ANATOMY_EXTERIOR or ANATOMY_INTERIOR. Used to determine if we as a whole have a interior or exterior biostate, or both.
get_external_descriptionReturns the generic description of our BIO_EXTERNAL feature(s), prioritizing certain ones over others. Returns error on failure.
get_internal_descriptionReturns the generic description of our BIO_INTERNAL feature(s), prioritizing certain ones over others. Returns error on failure.
get_limb_iconGenerates an /image for the limb to be used as an overlay
get_mangled_stateget_mangled_state() is relevant for flesh and bone bodyparts, and returns whether this bodypart has mangled skin, mangled bone, or both (or neither i guess)
get_modified_bleed_rateReturns our bleed rate, taking into account laying down and grabbing the limb
get_wound_threshold_of_wound_typeA simple proc that gets the best wound to fit the criteria laid out, then returns its wound threshold.
get_wound_typeGet whatever wound of the given type is currently attached to this limb, if any
on_addingCalled on addition of a bodypart
on_attempt_feature_restyleInvoke async so we don't break signals
on_attempt_feature_restyle_mobSomeone used a restyling thingymajigga on our limb owner
on_owner_nolimbdisable_trait_gainCalled when TRAIT_NOLIMBDISABLE is added to the owner.
on_owner_nolimbdisable_trait_lossCalled when TRAIT_NOLIMBDISABLE is removed from the owner.
on_paralysis_trait_gainCalled when TRAIT_PARALYSIS is added to the limb.
on_paralysis_trait_lossCalled when TRAIT_PARALYSIS is removed from the limb.
on_removalCalled on removal of a bodypart.
painless_wound_rollAllows us to roll for and apply a wound without actually dealing damage. Used for aggregate wounding power with pellet clouds
receive_damage#receive_damage
recolor_external_organsLoops through all of the bodypart's external organs and update's their color.
refresh_bleed_rateRefresh the cache of our rate of bleeding sans any modifiers +ANYTHING ADDED TO THIS PROC NEEDS TO CALL IT WHEN ITS EFFECT CHANGES
remove_bodypart_overlayRemove a bodypart overlay and call the appropriate update procs
replace_limbTry to attach this bodypart to a mob, while replacing one if it exists, does nothing if it fails.
reset_appearanceResets the base appearance of a limb to it's default values.
seep_gauzeseep_gauze() is for when a gauze wrapping absorbs blood or pus from wounds, lowering its absorption capacity.
setBleedStacksSets our generic bleedstacks
set_brute_damProc to hook behavior associated to the change of the brute_dam variable's value.
set_burn_damProc to hook behavior associated to the change of the burn_dam variable's value.
set_can_be_disabledProc to change the value of the can_be_disabled variable and react to the event of its change.
set_disabledProc to change the value of the disabled variable and react to the event of its change.
set_icon_static
set_initial_damageSets the damage of a bodypart when it is created.
try_attach_limbAttach src to target mob if able, returns FALSE if it fails to.
try_dismembertry_dismember() is used, once we've confirmed that a flesh and bone bodypart has both the skin and bone mangled, to actually roll for it
update_ownerProc to change the value of the owner variable and react to the event of its change.
update_wound_theoryUpdates our "can be theoretically dismembered by wounds" variables by iterating through all wound static data.
update_woundsupdate_wounds() is called whenever a wound is gained or lost on this bodypart, as well as if there's a change of some kind on a bone wound possibly changing disabled status

Var Details

any_existing_wound_can_mangle_our_exterior

If false, no wound that can be applied to us can mangle our exterior. Used for determining if we should use [hp_percent_to_dismemberable] instead of normal dismemberment.

any_existing_wound_can_mangle_our_interior

If false, no wound that can be applied to us can mangle our interior. Used for determining if we should use [hp_percent_to_dismemberable] instead of normal dismemberment.

attack_type

Type of an attack from this limb does. Arms will do punches, Legs for kicks, and head for bites. (TO ADD: tactical chestbumps)

aux_zone_markings

A list of all our aux zone markings(hands)

base_limb_id

What is our normal limb ID? used for squashing legs.

biological_state

A bitfield of biological states, exclusively used to determine which wounds this limb will get, +as well as how easily it will happen. +Set to BIO_STANDARD_UNJOINTED because most species have both flesh bone and blood in their limbs.

bleed_overlay_icon

If we're bleeding, which icon are we displaying on this part

body_damage_coeff

A mutiplication of the burn and brute damage that the limb's stored damage contributes to its attached mob's overall wellbeing.

body_part

bitflag used to check which clothes cover this bodypart

body_zone

BODY_ZONE_CHEST, BODY_ZONE_L_ARM, etc , used for def_zone

bodypart_disabled

Controls if the limb is disabled. TRUE means it is disabled (similar to being removed, but still present for the sake of targeted interactions).

bodypart_flags

Random flags that describe this bodypart

bodypart_overlays

A list of all bodypart overlays to draw

bodypart_trait_source

The name of the trait source that the organ gives. Should not be altered during the events of gameplay, and will cause problems if it is.

bodypart_traits

Traits that are given to the holder of the part. This does not update automatically on life(), only when the organs are initially generated or inserted!

bodyshape

A bitfield of bodyshapes for clothing and other sprite information

bodytype

A bitfield of bodytypes for surgery, and misc information

brute_dam

The current amount of brute damage the limb has

brute_modifier

Brute damage gets multiplied by this on receive_damage()

burn_dam

The current amount of burn damage the limb has

burn_modifier

Burn damage gets multiplied by this on receive_damage()

cached_bleed_rate

Our current bleed rate. Cached, update with refresh_bleed_rate()

can_be_disabled

Whether it is possible for the limb to be disabled whatsoever. TRUE means that it is possible.

can_be_surgically_removed

Whether or not this bodypart can be surgically removed. Independant of the dismemberable variable, +meaning that you can have one and not the other, both or none, and all will still work. This only +affects amputation and augmentation surgeries.

change_exempt_flags

Defines when a bodypart should not be changed. Example: BP_BLOCK_CHANGE_SPECIES prevents the limb from being overwritten on species gain

cremation_progress

Gradually increases while burning when at full damage, destroys the limb when at 100

current_gauze

If we have a gauze wrapping currently applied (not including splints)

current_style

The bodypart's currently applied style's name. Only necessary for bodyparts that come in multiple +variants, like prosthetics and cyborg bodyparts.

damage_overlay_color

a color (optionally matrix) for the damage overlays to give the limb

disabled_wound_penalty

When this bodypart hits max damage, this number is added to all wound rolls. Obviously only relevant for bodyparts that have damage caps.

disabling_threshold_percentage

Handles limb disabling by damage. If 0 (0%), a limb can't be disabled via damage. If 1 (100%), it is disabled at max limb damage. Anything between is the percentage of damage against maximum limb damage needed to disable the limb.

dmg_overlay_type

the type of damage overlay (if any) to use when this bodypart is bruised/burned.

draw_color

The actual color a limb is drawn as, set by /proc/update_limb()

embedded_objects

List of obj/item's embedded inside us. Managed by embedded components, do not modify directly

feature_offsets

List of the above datums which have actually been instantiated, managed automatically

generic_bleedstacks

How much generic bleedstacks we have on this bodypart

grappled_attack_verb

if we have a special attack verb for hitting someone who is grappled by us, it goes here.

grasped_by

If something is currently grasping this bodypart and trying to staunch bleeding (see /obj/item/hand_item/self_grasp)

held_index

are we a hand? if so, which one!

hp_percent_to_dismemberable

In the case we dont have dismemberable features, or literally cant get wounds, we will use this percent to determine when we can be dismembered. +Compared to our ABSOLUTE maximum. Stored in decimal; 0.8 = 80%.

husk_color

The color to multiply the greyscaled husk sprites by. Can be null. Old husk sprite chest color is #A6A6A6

husk_type

The type of husk for building an iconstate

icon_greyscale

The icon for Organic limbs using greyscale

icon_husk

The icon for husked limbs

icon_invisible

The icon for invisible limbs

icon_static

The icon for non-greyscale limbs

is_dimorphic

Is there a sprite difference between male and female?

is_husked

Whether the bodypart (and the owner) is husked.

is_invisible

Whether the bodypart (and the owner) is invisible through invisibleman trait.

last_maxed

So we know if we need to scream if this limb hits max damage

limb_id

The ID of a species used to generate the icon. Needs to match the icon_state portion in the limbs file!

markings

A list of all of our bodypart markings.

markings_alpha

The alpha override of our markings.

max_damage

The maximum brute OR burn damage a bodypart can take. Once we hit this cap, no more damage of either type!

owner

The mob that "owns" this limb +DO NOT MODIFY DIRECTLY. Use update_owner()

plaintext_zone

The body zone of this part in english ("chest", "left arm", etc) without the species attached to it

robotic_emp_paralyze_damage_percent_threshold

get_damage() / total_damage must surpass this to allow our limb to be disabled, even temporarily, by an EMP.

scarrable

If this limb can be scarred.

scars

The scars currently afflicting this body part

scars_covered_by_clothes

A hat won't cover your face, but a shirt covering your chest will cover your... you know, chest

should_draw_greyscale

Limbs need this information as a back-up incase they are generated outside of a carbon (limbgrower)

show_icon

If we even wanna try and handle icons/overlays of the limb (Taurs don't, f.e.). See update_body_parts

speed_modifier

A speed modifier we apply to the owner when attached, if any. Positive numbers make it move slower, negative numbers make it move faster.

texture_bodypart_overlay

A potential texturing overlay to put on the limb

unarmed_attack_effect

what visual effect is used when this limb is used to strike someone.

unarmed_attack_sound

Sounds when this bodypart is used in an umarmed attack

unarmed_attack_verbs

the verbs used for an unarmed attack when using this limb, such as arm.unarmed_attack_verbs = list("punch")

unarmed_damage_high

Highest possible punch damage this bodypart can ive.

unarmed_damage_low

Lowest possible punch damage this bodypart can give. If this is set to 0, unarmed attacks will always miss.

unarmed_effectiveness

Determines the accuracy bonus, armor penetration and knockdown probability.

unarmed_sharpness

If this limb has sharp unarmed attacks, by default off. You probably want to use SHARP_EDGED, SHARP_POINTY would be nuts balance-wise.

use_alternate_dismemberment_calc_even_if_mangleable

If true, we will use [hp_percent_to_dismemberable] even if we are dismemberable via wounds. Useful for things with extreme wound resistance.

variable_color

An "override" color that can be applied to ANY limb, greyscale or not.

wound_damage_multiplier

Our current stored wound damage multiplier

wound_resistance

This number is subtracted from all wound rolls on this bodypart, higher numbers mean more defense, negative means easier to wound

wounds

The wounds currently afflicting this body part

Proc Details

_embed_object

INTERNAL PROC, DO NOT USE +Properly sets us up to manage an inserted embeded object

_unembed_object

INTERNAL PROC, DO NOT USE +Cleans up any attachment we have to the embedded object, removes it from our list

add_bodypart_overlay

Add a bodypart overlay and call the appropriate update procs

adjustBleedStacks

Modifies our generic bleedstacks. You must use this to change the variable +Takes the amount to adjust by, and the lowest amount we're allowed to have post adjust

apply_ownership

Apply ownership of a limb to someone, giving the appropriate traits, updates and signals

attempt_feature_restyle

Asks the external organs inside the limb if they can restyle

can_attach_limb

Checks if you can attach a limb, returns TRUE if you can.

can_be_grasped

If TRUE, the owner of this bodypart can try grabbing it to slow bleeding, as well as various other effects.

change_appearance

A multi-purpose setter for all things immediately important to the icon and iconstate of the limb.

check_for_frankenstein

Checks if a limb qualifies as a BODYPART_IMPLANTED

check_for_injuries

Called when a bodypart is checked for injuries.

+

Modifies the check_list list with the resulting report of the limb's status.

check_series_wounding_mods

Should return an assoc list of (wound_series -> penalty). Will be used in determining series-specific penalties for wounding.

check_wounding

check_wounding() is where we handle rolling for, selecting, and applying a wound if we meet the criteria

+

We generate a "score" for how woundable the attack was based on the damage and other factors discussed in /obj/item/bodypart/proc/check_woundings_mods, then go down the list from most severe to least severe wounds in that category. +We can promote a wound from a lesser to a higher severity this way, but we give up if we have a wound of the given type and fail to roll a higher severity, so no sidegrades/downgrades

+

Arguments:

+
    +
  • woundtype- Either WOUND_BLUNT, WOUND_SLASH, WOUND_PIERCE, or WOUND_BURN based on the attack type.
  • +
  • damage- How much damage is tied to this attack, since wounding potential scales with damage in an attack (see: WOUND_DAMAGE_EXPONENT)
  • +
  • wound_bonus- The wound_bonus of an attack
  • +
  • bare_wound_bonus- The bare_wound_bonus of an attack
  • +
  • wound_clothing- If this should damage clothing.
  • +

check_woundings_mods

check_wounding_mods() is where we handle the various modifiers of a wound roll

+

A short list of things we consider: any armor a human target may be wearing, and if they have no wound armor on the limb, if we have a bare_wound_bonus to apply, plus the plain wound_bonus +We also flick through all of the wounds we currently have on this limb and add their threshold penalties, so that having lots of bad wounds makes you more liable to get hurt worse +Lastly, we add the inherent wound_resistance variable the bodypart has (heads and chests are slightly harder to wound), and a small bonus if the limb is already disabled

+

Arguments:

+

clear_ownership

Run all necessary procs to remove a limbs ownership and remove the appropriate signals and traits

dismember

Remove target limb from its owner, with side effects.

dismemberable_by_total_damage

Returns TRUE if our total percent damage is more or equal to our dismemberable percentage, but FALSE if a wound can cause us to be dismembered.

dismemberable_by_wound

Returns if our current mangling status allows us to be dismembered. Requires both no exterior/mangled exterior and no interior/mangled interior.

drop_limb

limb removal. The "special" argument is used for swapping a limb with a new one without the effects of losing a limb kicking in.

emp_effect

The actual effect of EMPs on the limb. Allows children to override it however they want

forced_removal

In-case someone, somehow only teleports someones limb

generate_husk_key

Generates a cache key specifically for husks

get_bio_state_status

Returns a bitflag using ANATOMY_EXTERIOR or ANATOMY_INTERIOR. Used to determine if we as a whole have a interior or exterior biostate, or both.

get_external_description

Returns the generic description of our BIO_EXTERNAL feature(s), prioritizing certain ones over others. Returns error on failure.

get_internal_description

Returns the generic description of our BIO_INTERNAL feature(s), prioritizing certain ones over others. Returns error on failure.

get_limb_icon

Generates an /image for the limb to be used as an overlay

get_mangled_state

get_mangled_state() is relevant for flesh and bone bodyparts, and returns whether this bodypart has mangled skin, mangled bone, or both (or neither i guess)

+

Dismemberment for flesh and bone requires the victim to have the skin on their bodypart destroyed (either a critical cut or piercing wound), and at least a hairline fracture +(severe bone), at which point we can start rolling for dismembering. The attack must also deal at least 10 damage, and must be a brute attack of some kind (sorry for now, cakehat, maybe later)

+

Returns: BODYPART_MANGLED_NONE if we're fine, BODYPART_MANGLED_EXTERIOR if our skin is broken, BODYPART_MANGLED_INTERIOR if our bone is broken, or BODYPART_MANGLED_BOTH if both are broken and we're up for dismembering

get_modified_bleed_rate

Returns our bleed rate, taking into account laying down and grabbing the limb

get_wound_threshold_of_wound_type

A simple proc that gets the best wound to fit the criteria laid out, then returns its wound threshold.

+

Args:

+
    +
  • wounding_type: The wounding_type, e.g. WOUND_BLUNT, WOUND_SLASH to force onto the mob. Can be a list of wounding_types.
  • +
  • severity: The severity that will be considered.
  • +
  • return_value_if_no_wound: If no wound is found, we will return this instead. (It is reccomended to use named args for this one, as its unclear what it is without)
  • +
  • wound_source: The theoretical source of the wound. Nullable.
  • +
+

Returns: +return_value_if_no_wound if no wound is found - if one IS found, the wound threshold for that wound.

get_wound_type

Get whatever wound of the given type is currently attached to this limb, if any

on_adding

Called on addition of a bodypart

on_attempt_feature_restyle

Invoke async so we don't break signals

on_attempt_feature_restyle_mob

Someone used a restyling thingymajigga on our limb owner

on_owner_nolimbdisable_trait_gain

Called when TRAIT_NOLIMBDISABLE is added to the owner.

on_owner_nolimbdisable_trait_loss

Called when TRAIT_NOLIMBDISABLE is removed from the owner.

on_paralysis_trait_gain

Called when TRAIT_PARALYSIS is added to the limb.

on_paralysis_trait_loss

Called when TRAIT_PARALYSIS is removed from the limb.

on_removal

Called on removal of a bodypart.

painless_wound_roll

Allows us to roll for and apply a wound without actually dealing damage. Used for aggregate wounding power with pellet clouds

receive_damage

#receive_damage

+

called when a bodypart is taking damage +Damage will not exceed max_damage using this proc, and negative damage cannot be used to heal +Returns TRUE if damage icon states changes +Args: +brute - The amount of brute damage dealt. +burn - The amount of burn damage dealt. +blocked - The amount of damage blocked by armor. +update_health - Whether to update the owner's health from receiving the hit. +required_bodytype - A bodytype flag requirement to get this damage (ex: BODYTYPE_ORGANIC) +wound_bonus - Additional bonus chance to get a wound. +bare_wound_bonus - Additional bonus chance to get a wound if the bodypart is naked. +wound_clothing - If this should damage clothing. +sharpness - Flag on whether the attack is edged or pointy +attack_direction - The direction the bodypart is attacked from, used to send blood flying in the opposite direction. +damage_source - The source of damage, typically a weapon.

recolor_external_organs

Loops through all of the bodypart's external organs and update's their color.

refresh_bleed_rate

Refresh the cache of our rate of bleeding sans any modifiers +ANYTHING ADDED TO THIS PROC NEEDS TO CALL IT WHEN ITS EFFECT CHANGES

remove_bodypart_overlay

Remove a bodypart overlay and call the appropriate update procs

replace_limb

Try to attach this bodypart to a mob, while replacing one if it exists, does nothing if it fails.

reset_appearance

Resets the base appearance of a limb to it's default values.

seep_gauze

seep_gauze() is for when a gauze wrapping absorbs blood or pus from wounds, lowering its absorption capacity.

+

The passed amount of seepage is deducted from the bandage's absorption capacity, and if we reach a negative absorption capacity, the bandages falls off and we're left with nothing.

+

Arguments:

+
    +
  • seep_amt - How much absorption capacity we're removing from our current bandages (think, how much blood or pus are we soaking up this tick?)
  • +

setBleedStacks

Sets our generic bleedstacks

set_brute_dam

Proc to hook behavior associated to the change of the brute_dam variable's value.

set_burn_dam

Proc to hook behavior associated to the change of the burn_dam variable's value.

set_can_be_disabled

Proc to change the value of the can_be_disabled variable and react to the event of its change.

set_disabled

Proc to change the value of the disabled variable and react to the event of its change.

set_icon_static

This should only be ran by augments, if you don't know what you're doing, you shouldn't be touching this.

+

A setter for the icon_static variable of the bodypart. Runs through icon_exists() for sanity, and it won't +change anything in the event that the check fails.

+

Arguments:

+
    +
  • new_icon - The new icon filepath that you want to replace icon_static with.
  • +

set_initial_damage

Sets the damage of a bodypart when it is created.

try_attach_limb

Attach src to target mob if able, returns FALSE if it fails to.

try_dismember

try_dismember() is used, once we've confirmed that a flesh and bone bodypart has both the skin and bone mangled, to actually roll for it

+

Mangling is described in the above proc, /obj/item/bodypart/proc/get_mangled_state. This simply makes the roll for whether we actually dismember or not +using how damaged the limb already is, and how much damage this blow was for. If we have a critical bone wound instead of just a severe, we add +10% to the roll. +Lastly, we choose which kind of dismember we want based on the wounding type we hit with. Note we don't care about all the normal mods or armor for this

+

Arguments:

+
    +
  • wounding_type: Either WOUND_BLUNT, WOUND_SLASH, or WOUND_PIERCE, basically only matters for the dismember message
  • +
  • wounding_dmg: The damage of the strike that prompted this roll, higher damage = higher chance
  • +
  • wound_bonus: Not actually used right now, but maybe someday
  • +
  • bare_wound_bonus: ditto above
  • +

update_owner

Proc to change the value of the owner variable and react to the event of its change.

update_wound_theory

Updates our "can be theoretically dismembered by wounds" variables by iterating through all wound static data.

update_wounds

update_wounds() is called whenever a wound is gained or lost on this bodypart, as well as if there's a change of some kind on a bone wound possibly changing disabled status

+

Covers tabulating the damage multipliers we have from wounds (burn specifically), as well as deleting our gauze wrapping if we don't have any wounds that can use bandaging

+

Arguments:

+
    +
  • replaced- If true, this is being called from the remove_wound() of a wound that's being replaced, so the bandage that already existed is still relevant, but the new wound hasn't been added yet
  • +
\ No newline at end of file diff --git a/obj/item/bodypart/arm.html b/obj/item/bodypart/arm.html new file mode 100644 index 0000000000000..6601de14a8875 --- /dev/null +++ b/obj/item/bodypart/arm.html @@ -0,0 +1 @@ +/obj/item/bodypart/arm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

arm

Parent Type for arms, should not appear in game.

Vars

appendage_nounThe noun to use when referring to this arm's appendage, e.g. "hand" or "paw"
grappled_attack_verbThe classic punch, wonderfully classic and completely random
held_hand_offsetDatum describing how to offset things held in the hands of this arm, the x offset IS functional here
worn_glove_offsetDatum describing how to offset things worn on the hands of this arm, note that an x offset won't do anything here

Procs

apply_ownershipWe need to add hand hud items and appearance, so do that here
clear_ownershipWe need to clear out hand hud items and appearance, so do that here

Var Details

appendage_noun

The noun to use when referring to this arm's appendage, e.g. "hand" or "paw"

grappled_attack_verb

The classic punch, wonderfully classic and completely random

held_hand_offset

Datum describing how to offset things held in the hands of this arm, the x offset IS functional here

worn_glove_offset

Datum describing how to offset things worn on the hands of this arm, note that an x offset won't do anything here

Proc Details

apply_ownership

We need to add hand hud items and appearance, so do that here

clear_ownership

We need to clear out hand hud items and appearance, so do that here

\ No newline at end of file diff --git a/obj/item/bodypart/arm/left.html b/obj/item/bodypart/arm/left.html new file mode 100644 index 0000000000000..6524d6691e2f0 --- /dev/null +++ b/obj/item/bodypart/arm/left.html @@ -0,0 +1 @@ +/obj/item/bodypart/arm/left - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

left

Procs

on_owner_paralysis_gainProc to react to the owner gaining the TRAIT_PARALYSIS_L_ARM trait.
on_owner_paralysis_lossProc to react to the owner losing the TRAIT_PARALYSIS_L_ARM trait.

Proc Details

on_owner_paralysis_gain

Proc to react to the owner gaining the TRAIT_PARALYSIS_L_ARM trait.

on_owner_paralysis_loss

Proc to react to the owner losing the TRAIT_PARALYSIS_L_ARM trait.

\ No newline at end of file diff --git a/obj/item/bodypart/arm/left/self_destruct.html b/obj/item/bodypart/arm/left/self_destruct.html new file mode 100644 index 0000000000000..bfb41bcfae43b --- /dev/null +++ b/obj/item/bodypart/arm/left/self_destruct.html @@ -0,0 +1 @@ +/obj/item/bodypart/arm/left/self_destruct - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

self_destruct

Procs

try_attach_limbSelf Destructing Bodyparts, For Augmentation. I'm leaving out heads + chests as, while it would be cool for synths, I also don't want people to start the round unrevivable sans botany because they're dumb as heck. You know who and what you are.

Proc Details

try_attach_limb

Self Destructing Bodyparts, For Augmentation. I'm leaving out heads + chests as, while it would be cool for synths, I also don't want people to start the round unrevivable sans botany because they're dumb as heck. You know who and what you are.

\ No newline at end of file diff --git a/obj/item/bodypart/arm/right.html b/obj/item/bodypart/arm/right.html new file mode 100644 index 0000000000000..f701c01bfb5db --- /dev/null +++ b/obj/item/bodypart/arm/right.html @@ -0,0 +1 @@ +/obj/item/bodypart/arm/right - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

right

Procs

on_owner_paralysis_gainProc to react to the owner gaining the TRAIT_PARALYSIS_R_ARM trait.
on_owner_paralysis_lossProc to react to the owner losing the TRAIT_PARALYSIS_R_ARM trait.

Proc Details

on_owner_paralysis_gain

Proc to react to the owner gaining the TRAIT_PARALYSIS_R_ARM trait.

on_owner_paralysis_loss

Proc to react to the owner losing the TRAIT_PARALYSIS_R_ARM trait.

\ No newline at end of file diff --git a/obj/item/bodypart/chest.html b/obj/item/bodypart/chest.html new file mode 100644 index 0000000000000..2faa17b1f98ad --- /dev/null +++ b/obj/item/bodypart/chest.html @@ -0,0 +1 @@ +/obj/item/bodypart/chest - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chest

Vars

acceptable_bodyshapeThe bodyshape(s) allowed to attach to this chest.
acceptable_bodytypeThe bodytype(s) allowed to attach to this chest.
wing_typesWhich functional (i.e. flightpotion) wing types (if any) does this bodypart support? If count is >1 a radial menu is used to choose between all icons in list
worn_accessory_offsetThe offset datum for our accessory overlay.
worn_back_offsetOffset to apply to overlays placed on the back
worn_belt_offsetOffset to apply to equipment worn on the hips
worn_id_offsetOffset to apply to equipment worn on the id slot
worn_neck_offsetOffset to apply to equipment worn on the neck
worn_shirt_offsetOffset to apply to equipment worn as a shirt
worn_suit_offsetOffset to apply to equipment worn as a suit
worn_suit_storage_offsetOffset to apply to equipment worn in the suit slot
worn_underwear_offsetOffset to apply to equipment worn as underwear
worn_uniform_offsetOffset to apply to equipment worn as a uniform

Procs

get_butt_spriteSprite to show for photocopying mob butts

Var Details

acceptable_bodyshape

The bodyshape(s) allowed to attach to this chest.

acceptable_bodytype

The bodytype(s) allowed to attach to this chest.

wing_types

Which functional (i.e. flightpotion) wing types (if any) does this bodypart support? If count is >1 a radial menu is used to choose between all icons in list

worn_accessory_offset

The offset datum for our accessory overlay.

worn_back_offset

Offset to apply to overlays placed on the back

worn_belt_offset

Offset to apply to equipment worn on the hips

worn_id_offset

Offset to apply to equipment worn on the id slot

worn_neck_offset

Offset to apply to equipment worn on the neck

worn_shirt_offset

Offset to apply to equipment worn as a shirt

worn_suit_offset

Offset to apply to equipment worn as a suit

worn_suit_storage_offset

Offset to apply to equipment worn in the suit slot

worn_underwear_offset

Offset to apply to equipment worn as underwear

worn_uniform_offset

Offset to apply to equipment worn as a uniform

Proc Details

get_butt_sprite

Sprite to show for photocopying mob butts

\ No newline at end of file diff --git a/obj/item/bodypart/chest/arachnid.html b/obj/item/bodypart/chest/arachnid.html new file mode 100644 index 0000000000000..581f901c380d2 --- /dev/null +++ b/obj/item/bodypart/chest/arachnid.html @@ -0,0 +1 @@ +/obj/item/bodypart/chest/arachnid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

arachnid

Vars

wing_typesArachnids' phylum is arthropods, which include butterflies. Might as well hit them with moth wings.

Var Details

wing_types

Arachnids' phylum is arthropods, which include butterflies. Might as well hit them with moth wings.

\ No newline at end of file diff --git a/obj/item/bodypart/head.html b/obj/item/bodypart/head.html new file mode 100644 index 0000000000000..79b7db46a14d0 --- /dev/null +++ b/obj/item/bodypart/head.html @@ -0,0 +1 @@ +/obj/item/bodypart/head - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

head

Vars

facial_hair_alphaFacial hair alpha
facial_hair_colorFacial hair color
facial_hair_hiddenIs the facial hair currently hidden by something?
facial_hairstyleFacial hair style
fixed_hair_colorAn override that cannot be cleared under any circumstances, affects both hair and facial hair
gradient_colorsGradient colors, if any
gradient_stylesGradient styles, if any
hair_alphaHair alpha
hair_colorHair colour and style
hair_hiddenIs the hair currently hidden by something?
hairstyleHair style
head_flagsFlags related to appearance, such as hair, lips, etc
lip_colorLipstick color
lip_styleType of lipstick being used, basically
override_hair_colorAn override color that can be cleared later, affects both hair and facial hair
real_nameReplacement name
show_debrainedDraw this head as "debrained"
show_eyelessDraw this head as missing eyes
show_organs_on_examineDo we show the information about missing organs upon being examined? Defaults to TRUE, useful for Dullahan heads.
stored_lipstick_traitCurrent lipstick trait, if any (such as TRAIT_KISS_OF_DEATH)
teeth_countHow many teeth the head's species has, humans have 32 so that's the default. Used for a limit to dental pill implants.
worn_ears_offsetOffset to apply to equipment worn on the ears
worn_face_offsetOffset to apply to overlays placed on the face
worn_glasses_offsetOffset to apply to equipment worn on the eyes
worn_head_offsetOffset to apply to equipment worn on the head
worn_mask_offsetOffset to apply to equipment worn on the mouth

Procs

get_debrain_overlayReturns an appropriate debrained overlay
get_eyeless_overlayReturns an appropriate missing eyes overlay
get_gradient_overlayReturns an appropriate hair/facial hair gradient overlay
update_hair_and_lipsPart of update_limb(), basically does all the head specific icon stuff.

Var Details

facial_hair_alpha

Facial hair alpha

facial_hair_color

Facial hair color

facial_hair_hidden

Is the facial hair currently hidden by something?

facial_hairstyle

Facial hair style

fixed_hair_color

An override that cannot be cleared under any circumstances, affects both hair and facial hair

gradient_colors

Gradient colors, if any

gradient_styles

Gradient styles, if any

hair_alpha

Hair alpha

hair_color

Hair colour and style

hair_hidden

Is the hair currently hidden by something?

hairstyle

Hair style

head_flags

Flags related to appearance, such as hair, lips, etc

lip_color

Lipstick color

lip_style

Type of lipstick being used, basically

override_hair_color

An override color that can be cleared later, affects both hair and facial hair

real_name

Replacement name

show_debrained

Draw this head as "debrained"

show_eyeless

Draw this head as missing eyes

show_organs_on_examine

Do we show the information about missing organs upon being examined? Defaults to TRUE, useful for Dullahan heads.

stored_lipstick_trait

Current lipstick trait, if any (such as TRAIT_KISS_OF_DEATH)

teeth_count

How many teeth the head's species has, humans have 32 so that's the default. Used for a limit to dental pill implants.

worn_ears_offset

Offset to apply to equipment worn on the ears

worn_face_offset

Offset to apply to overlays placed on the face

worn_glasses_offset

Offset to apply to equipment worn on the eyes

worn_head_offset

Offset to apply to equipment worn on the head

worn_mask_offset

Offset to apply to equipment worn on the mouth

Proc Details

get_debrain_overlay

Returns an appropriate debrained overlay

get_eyeless_overlay

Returns an appropriate missing eyes overlay

get_gradient_overlay

Returns an appropriate hair/facial hair gradient overlay

update_hair_and_lips

Part of update_limb(), basically does all the head specific icon stuff.

\ No newline at end of file diff --git a/obj/item/bodypart/leg.html b/obj/item/bodypart/leg.html new file mode 100644 index 0000000000000..fde7ae7f28f78 --- /dev/null +++ b/obj/item/bodypart/leg.html @@ -0,0 +1,11 @@ +/obj/item/bodypart/leg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

leg

Parent Type for legs, should not appear in game.

Vars

footprint_spriteUsed by the bloodysoles component to make footprints
worn_foot_offsetDatum describing how to offset things worn on the foot of this leg, note that an x offset won't do anything here

Procs

generate_masked_legThis proc serves as a way to ensure that legs layer properly on a mob. +To do this, two separate images are created - A low layer one, and a normal layer one. +Each of the image will appropriately crop out dirs that are not used on that given layer.

Var Details

footprint_sprite

Used by the bloodysoles component to make footprints

worn_foot_offset

Datum describing how to offset things worn on the foot of this leg, note that an x offset won't do anything here

Proc Details

generate_masked_leg

This proc serves as a way to ensure that legs layer properly on a mob. +To do this, two separate images are created - A low layer one, and a normal layer one. +Each of the image will appropriately crop out dirs that are not used on that given layer.

+

Arguments:

+
    +
  • limb_overlay - The limb image being masked, not necessarily the original limb image as it could be an overlay on top of it
  • +
  • image_dir - Direction of the masked images.
  • +
+

Returns the list of masked images, or null if the limb_overlay didn't exist

\ No newline at end of file diff --git a/obj/item/bodypart/leg/left.html b/obj/item/bodypart/leg/left.html new file mode 100644 index 0000000000000..7b29215c6bece --- /dev/null +++ b/obj/item/bodypart/leg/left.html @@ -0,0 +1 @@ +/obj/item/bodypart/leg/left - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

left

Vars

digitigrade_typeThis is used in digitigrade legs, when this leg is swapped out with the digitigrade version.

Procs

on_owner_paralysis_gainProc to react to the owner gaining the TRAIT_PARALYSIS_L_ARM trait.
on_owner_paralysis_lossProc to react to the owner losing the TRAIT_PARALYSIS_L_LEG trait.

Var Details

digitigrade_type

This is used in digitigrade legs, when this leg is swapped out with the digitigrade version.

Proc Details

on_owner_paralysis_gain

Proc to react to the owner gaining the TRAIT_PARALYSIS_L_ARM trait.

on_owner_paralysis_loss

Proc to react to the owner losing the TRAIT_PARALYSIS_L_LEG trait.

\ No newline at end of file diff --git a/obj/item/bodypart/leg/right.html b/obj/item/bodypart/leg/right.html new file mode 100644 index 0000000000000..1b8f615c823bc --- /dev/null +++ b/obj/item/bodypart/leg/right.html @@ -0,0 +1 @@ +/obj/item/bodypart/leg/right - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

right

Vars

digitigrade_typeThis is used in digitigrade legs, when this leg is swapped out with the digitigrade version.

Procs

on_owner_paralysis_gainProc to react to the owner gaining the TRAIT_PARALYSIS_R_LEG trait.
on_owner_paralysis_lossProc to react to the owner losing the TRAIT_PARALYSIS_R_LEG trait.

Var Details

digitigrade_type

This is used in digitigrade legs, when this leg is swapped out with the digitigrade version.

Proc Details

on_owner_paralysis_gain

Proc to react to the owner gaining the TRAIT_PARALYSIS_R_LEG trait.

on_owner_paralysis_loss

Proc to react to the owner losing the TRAIT_PARALYSIS_R_LEG trait.

\ No newline at end of file diff --git a/obj/item/bombcore/chemical.html b/obj/item/bombcore/chemical.html new file mode 100644 index 0000000000000..3909a665485ca --- /dev/null +++ b/obj/item/bombcore/chemical.html @@ -0,0 +1 @@ +/obj/item/bombcore/chemical - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chemical

Vars

beakersThe set of beakers that have been inserted into the bombcore.
core_holder_volumeThe initial volume of the reagent holder the bombcore has.
max_beakersThe maximum number of beakers that this bombcore can have.
spread_rangeThe range this spreads the reagents added to the bombcore.
temp_boostHow much this heats the reagents in it on detonation.
time_releaseThe amount of reagents released with each detonation.

Var Details

beakers

The set of beakers that have been inserted into the bombcore.

core_holder_volume

The initial volume of the reagent holder the bombcore has.

max_beakers

The maximum number of beakers that this bombcore can have.

spread_range

The range this spreads the reagents added to the bombcore.

temp_boost

How much this heats the reagents in it on detonation.

time_release

The amount of reagents released with each detonation.

\ No newline at end of file diff --git a/obj/item/bong.html b/obj/item/bong.html new file mode 100644 index 0000000000000..2e8c10fdc2db2 --- /dev/null +++ b/obj/item/bong.html @@ -0,0 +1 @@ +/obj/item/bong - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bong

Vars

bong_hitsHow many uses does the bong have remaining?
chem_volumeMax units able to be stored inside the bong
icon_offThe icon state when the bong is not lit
icon_onThe icon state when the bong is lit
litWhether the bong is lit or not
max_hitsHow many hits can the bong be used for?
moan_chanceHow likely is it we moan instead of cough?
packed_itemIs it filled?
reagent_transfer_per_useHow many reagents do we transfer each use?
smoke_rangeHow far does the smoke reach per use?

Var Details

bong_hits

How many uses does the bong have remaining?

chem_volume

Max units able to be stored inside the bong

icon_off

The icon state when the bong is not lit

icon_on

The icon state when the bong is lit

lit

Whether the bong is lit or not

max_hits

How many hits can the bong be used for?

moan_chance

How likely is it we moan instead of cough?

packed_item

Is it filled?

reagent_transfer_per_use

How many reagents do we transfer each use?

smoke_range

How far does the smoke reach per use?

\ No newline at end of file diff --git a/obj/item/book.html b/obj/item/book.html new file mode 100644 index 0000000000000..0e9e7d9d1dfe1 --- /dev/null +++ b/obj/item/book.html @@ -0,0 +1 @@ +/obj/item/book - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

book

Vars

book_dataThe packet of information that describes this book
cannot_carveIs the parent book unable to be carved? TRUE prevents carving. By default this is unset
carvedwhether or not we have been carved out
due_dateGame time in 1/10th seconds
maximum_book_stateMaximum icon state number
starting_authorThe initial author, for use in var editing and such
starting_contentThe initial bit of content, for use in var editing and such
starting_titleThe initial title, for use in var editing and such
uniquefalse - Normal book, true - Should not be treated as normal book, unable to be copied, unable to be modified

Procs

can_read_bookProc that checks if the user is capable of reading the book, for UI interactions and otherwise. Returns TRUE if they can, FALSE if they can't.
carve_outCalled when the book gets carved successfully
credit_book_to_readerProc that adds the book to a list on the user's mind so we know what works of art they've been catching up on.
display_contentProc that handles sending the book information to the user, as well as some housekeeping stuff.
gen_random_icon_stateGenerates a random icon state for the book

Var Details

book_data

The packet of information that describes this book

cannot_carve

Is the parent book unable to be carved? TRUE prevents carving. By default this is unset

carved

whether or not we have been carved out

due_date

Game time in 1/10th seconds

maximum_book_state

Maximum icon state number

starting_author

The initial author, for use in var editing and such

starting_content

The initial bit of content, for use in var editing and such

starting_title

The initial title, for use in var editing and such

unique

false - Normal book, true - Should not be treated as normal book, unable to be copied, unable to be modified

Proc Details

can_read_book

Proc that checks if the user is capable of reading the book, for UI interactions and otherwise. Returns TRUE if they can, FALSE if they can't.

carve_out

Called when the book gets carved successfully

credit_book_to_reader

Proc that adds the book to a list on the user's mind so we know what works of art they've been catching up on.

display_content

Proc that handles sending the book information to the user, as well as some housekeeping stuff.

gen_random_icon_state

Generates a random icon state for the book

\ No newline at end of file diff --git a/obj/item/book/bible.html b/obj/item/book/bible.html new file mode 100644 index 0000000000000..e60044550756e --- /dev/null +++ b/obj/item/book/bible.html @@ -0,0 +1,5 @@ +/obj/item/book/bible - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bible

Vars

deity_nameDeity this bible is related to

Procs

check_menuChecks if we are allowed to interact with a radial menu
on_intercepted_bulletDestroy the bible when it's shot by a bullet

Var Details

deity_name

Deity this bible is related to

Proc Details

check_menu

Checks if we are allowed to interact with a radial menu

+

Arguments:

+
    +
  • user The mob interacting with the menu
  • +

on_intercepted_bullet

Destroy the bible when it's shot by a bullet

\ No newline at end of file diff --git a/obj/item/book/granter.html b/obj/item/book/granter.html new file mode 100644 index 0000000000000..e4939a99d3896 --- /dev/null +++ b/obj/item/book/granter.html @@ -0,0 +1,2 @@ +/obj/item/book/granter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

granter

Books that teach things.

+

(Intrinsic actions like bar flinging, spells like fireball or smoke, or martial arts)

Vars

book_soundsThe sounds played as the user's reading the book.
pages_to_masteryControls how long a mob must keep the book in his hand to actually successfully learn
readingSanity, whether it's currently being read
reading_timeThe time it takes to read the book
remarksFlavor messages displayed to mobs reading the granter
usesThe amount of uses on the granter.

Procs

can_learnChecks if the user can learn whatever this granter... grants
on_reading_finishedCalled when the reading is completely finished. This is where the actual granting should happen.
on_reading_startCalled when the user starts to read the granter.
on_reading_stoppedCalled when the reading is interrupted without finishing.
recoilEffects that occur whenever the book is read when it has no uses left.
turn_pageThe actual "turning over of the page" flavor bit that happens while someone is reading the granter.

Var Details

book_sounds

The sounds played as the user's reading the book.

pages_to_mastery

Controls how long a mob must keep the book in his hand to actually successfully learn

reading

Sanity, whether it's currently being read

reading_time

The time it takes to read the book

remarks

Flavor messages displayed to mobs reading the granter

uses

The amount of uses on the granter.

Proc Details

can_learn

Checks if the user can learn whatever this granter... grants

on_reading_finished

Called when the reading is completely finished. This is where the actual granting should happen.

on_reading_start

Called when the user starts to read the granter.

on_reading_stopped

Called when the reading is interrupted without finishing.

recoil

Effects that occur whenever the book is read when it has no uses left.

turn_page

The actual "turning over of the page" flavor bit that happens while someone is reading the granter.

\ No newline at end of file diff --git a/obj/item/book/granter/action.html b/obj/item/book/granter/action.html new file mode 100644 index 0000000000000..5940b877ff230 --- /dev/null +++ b/obj/item/book/granter/action.html @@ -0,0 +1 @@ +/obj/item/book/granter/action - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

action

Vars

action_nameThe name of the action, formatted in a more text-friendly way.
granted_actionThe typepath of action that is given

Var Details

action_name

The name of the action, formatted in a more text-friendly way.

granted_action

The typepath of action that is given

\ No newline at end of file diff --git a/obj/item/book/granter/action/spell.html b/obj/item/book/granter/action/spell.html new file mode 100644 index 0000000000000..9d41513531546 --- /dev/null +++ b/obj/item/book/granter/action/spell.html @@ -0,0 +1,2 @@ +/obj/item/book/granter/action/spell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

spell

Procs

on_magic_chargeSignal proc for COMSIG_ITEM_MAGICALLY_CHARGED

Proc Details

on_magic_charge

Signal proc for COMSIG_ITEM_MAGICALLY_CHARGED

+

Refreshes uses on our spell granter, or make it quicker to read if it's already infinite use

\ No newline at end of file diff --git a/obj/item/book/granter/action/spell/mime/mimery.html b/obj/item/book/granter/action/spell/mime/mimery.html new file mode 100644 index 0000000000000..97e6287677266 --- /dev/null +++ b/obj/item/book/granter/action/spell/mime/mimery.html @@ -0,0 +1,5 @@ +/obj/item/book/granter/action/spell/mime/mimery - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mimery

Procs

check_menuChecks if we are allowed to interact with a radial menu

Proc Details

check_menu

Checks if we are allowed to interact with a radial menu

+

Arguments:

+
    +
  • user The human mob interacting with the menu
  • +
\ No newline at end of file diff --git a/obj/item/book/granter/action/spell/mindswap.html b/obj/item/book/granter/action/spell/mindswap.html new file mode 100644 index 0000000000000..1ef857e236038 --- /dev/null +++ b/obj/item/book/granter/action/spell/mindswap.html @@ -0,0 +1 @@ +/obj/item/book/granter/action/spell/mindswap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mindswap

Vars

stored_swap_refMob used in book recoils to store an identity for mindswaps

Var Details

stored_swap_ref

Mob used in book recoils to store an identity for mindswaps

\ No newline at end of file diff --git a/obj/item/book/granter/action/spell/true_random.html b/obj/item/book/granter/action/spell/true_random.html new file mode 100644 index 0000000000000..24c50131427d2 --- /dev/null +++ b/obj/item/book/granter/action/spell/true_random.html @@ -0,0 +1 @@ +/obj/item/book/granter/action/spell/true_random - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

true_random

A more volatile granter that can potentially have any spell within. Use wisely.

Vars

blacklisted_schoolsA list of schools we probably shouldn't grab, for various reasons

Var Details

blacklisted_schools

A list of schools we probably shouldn't grab, for various reasons

\ No newline at end of file diff --git a/obj/item/book/granter/crafting_recipe.html b/obj/item/book/granter/crafting_recipe.html new file mode 100644 index 0000000000000..8434ba74817a5 --- /dev/null +++ b/obj/item/book/granter/crafting_recipe.html @@ -0,0 +1 @@ +/obj/item/book/granter/crafting_recipe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crafting_recipe

Vars

crafting_recipe_typesA list of all recipe types we grant on learn

Var Details

crafting_recipe_types

A list of all recipe types we grant on learn

\ No newline at end of file diff --git a/obj/item/book/granter/martial.html b/obj/item/book/granter/martial.html new file mode 100644 index 0000000000000..dd5e060213762 --- /dev/null +++ b/obj/item/book/granter/martial.html @@ -0,0 +1 @@ +/obj/item/book/granter/martial - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

martial

Vars

greetThe text given to the user when they learn the martial arts
martialThe martial arts type we give
martial_nameThe name of the martial arts, formatted in a more text-friendly way.

Var Details

greet

The text given to the user when they learn the martial arts

martial

The martial arts type we give

martial_name

The name of the martial arts, formatted in a more text-friendly way.

\ No newline at end of file diff --git a/obj/item/book/granter/sign_language.html b/obj/item/book/granter/sign_language.html new file mode 100644 index 0000000000000..1c3371c23dca2 --- /dev/null +++ b/obj/item/book/granter/sign_language.html @@ -0,0 +1,2 @@ +/obj/item/book/granter/sign_language - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

sign_language

Sign language book adds the sign language component to the reading Human. +Grants reader the ability to toggle sign language using a HUD button.

Procs

on_reading_finishedCalled when the reading is completely finished. This is where the actual granting should happen.

Proc Details

on_reading_finished

Called when the reading is completely finished. This is where the actual granting should happen.

\ No newline at end of file diff --git a/obj/item/book/kindred.html b/obj/item/book/kindred.html new file mode 100644 index 0000000000000..42795ed7f9c92 --- /dev/null +++ b/obj/item/book/kindred.html @@ -0,0 +1,12 @@ +/obj/item/book/kindred - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

kindred

# Archives of the Kindred:
+
+
    +
  • +

    A book that can only be used by Curators. +When used on a player, after a short timer, will reveal if the player is a Bloodsucker, including their real name and Clan. +This book should not work on Bloodsuckers using the Masquerade ability. +If it reveals a Bloodsucker, the Curator will then be able to tell they are a Bloodsucker on examine (Like a Ghoul). +Reading it normally will allow Curators to read what each Clan does, with some extra flavor text ones.

    +

    Regular Bloodsuckers won't have any negative effects from the book, while everyone else will get burns/eye damage.

    +
  • +

Vars

bloodsucker_check_cooldownBoolean on whether the book is currently being used, so you can only use it on one person at a time.

Procs

afterattackAttacking someone with the book.

Var Details

bloodsucker_check_cooldown

Boolean on whether the book is currently being used, so you can only use it on one person at a time.

Proc Details

afterattack

Attacking someone with the book.

\ No newline at end of file diff --git a/obj/item/book/manual/wiki.html b/obj/item/book/manual/wiki.html new file mode 100644 index 0000000000000..72df288a1e19b --- /dev/null +++ b/obj/item/book/manual/wiki.html @@ -0,0 +1 @@ +/obj/item/book/manual/wiki - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wiki

Vars

page_linkThe ending URL of the page that we link to.

Var Details

The ending URL of the page that we link to.

\ No newline at end of file diff --git a/obj/item/book/random.html b/obj/item/book/random.html new file mode 100644 index 0000000000000..79de4d39069d3 --- /dev/null +++ b/obj/item/book/random.html @@ -0,0 +1 @@ +/obj/item/book/random - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

random

Vars

random_categoryThe category of books to pick from when creating this book.
random_loadedIf this book has already been 'generated' yet.

Var Details

random_category

The category of books to pick from when creating this book.

random_loaded

If this book has already been 'generated' yet.

\ No newline at end of file diff --git a/obj/item/borer_egg.html b/obj/item/borer_egg.html new file mode 100644 index 0000000000000..0d03411dbf2d7 --- /dev/null +++ b/obj/item/borer_egg.html @@ -0,0 +1 @@ +/obj/item/borer_egg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

borer_egg

Vars

host_spawnerthe spawner that is attached to this item

Var Details

host_spawner

the spawner that is attached to this item

\ No newline at end of file diff --git a/obj/item/borg/apparatus.html b/obj/item/borg/apparatus.html new file mode 100644 index 0000000000000..169c92a5c70b0 --- /dev/null +++ b/obj/item/borg/apparatus.html @@ -0,0 +1,3 @@ +/obj/item/borg/apparatus - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

apparatus

Vars

storableWhitelist of types allowed in this apparatus
storedThe item stored inside of this apparatus

Procs

attack_selfAttack_self will pass for the stored item.
on_stored_updated_iconUpdates the appearance of the apparatus when the stored object's icon gets updated.
safedeconIf we're safely deconstructed, we put the item neatly onto the ground, rather than deleting it.
verb_dropHeldA right-click verb, for those not using hotkey mode.

Var Details

storable

Whitelist of types allowed in this apparatus

stored

The item stored inside of this apparatus

Proc Details

attack_self

Attack_self will pass for the stored item.

on_stored_updated_icon

Updates the appearance of the apparatus when the stored object's icon gets updated.

+

Returns NONE as we have not done anything to the stored object itself, +which is where this signal that this handler intercepts is sent from.

safedecon

If we're safely deconstructed, we put the item neatly onto the ground, rather than deleting it.

verb_dropHeld

A right-click verb, for those not using hotkey mode.

\ No newline at end of file diff --git a/obj/item/borg/charger.html b/obj/item/borg/charger.html new file mode 100644 index 0000000000000..64aa40fe17f34 --- /dev/null +++ b/obj/item/borg/charger.html @@ -0,0 +1 @@ +/obj/item/borg/charger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

charger

Vars

charge_itemsWhitelist of chargable items
charge_machinesWhitelist of charging machines
modeCharging mode

Var Details

charge_items

Whitelist of chargable items

charge_machines

Whitelist of charging machines

mode

Charging mode

\ No newline at end of file diff --git a/obj/item/borg/cyborg_omnitool.html b/obj/item/borg/cyborg_omnitool.html new file mode 100644 index 0000000000000..8b328d02902d2 --- /dev/null +++ b/obj/item/borg/cyborg_omnitool.html @@ -0,0 +1,6 @@ +/obj/item/borg/cyborg_omnitool - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cyborg_omnitool

Vars

atomsMap of solid objects internally used by the omni tool
omni_toolkitour tools (list of item typepaths)
referenceobject we are referencing to for force, sharpness and sound

Procs

get_proxy_attacker_forThe omnitool interacts with real world objects based on the state it has assumed
set_upgradedIs this omni tool upgraded or not +Arguments

Var Details

atoms

Map of solid objects internally used by the omni tool

omni_toolkit

our tools (list of item typepaths)

reference

object we are referencing to for force, sharpness and sound

Proc Details

get_proxy_attacker_for

The omnitool interacts with real world objects based on the state it has assumed

set_upgraded

Is this omni tool upgraded or not +Arguments

+
    +
  • upgrade - TRUE/FALSE for upgraded
  • +
\ No newline at end of file diff --git a/obj/item/borg/cyborghug.html b/obj/item/borg/cyborghug.html new file mode 100644 index 0000000000000..23267447eb36e --- /dev/null +++ b/obj/item/borg/cyborghug.html @@ -0,0 +1 @@ +/obj/item/borg/cyborghug - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cyborghug

Vars

crush_cooldownCrush cooldown
modeHug mode
shock_cooldownShock cooldown
shockallowedCan it be a stunarm when emagged. Only PK borgs get this by default.

Var Details

crush_cooldown

Crush cooldown

mode

Hug mode

shock_cooldown

Shock cooldown

shockallowed

Can it be a stunarm when emagged. Only PK borgs get this by default.

\ No newline at end of file diff --git a/obj/item/borg/forging_setup.html b/obj/item/borg/forging_setup.html new file mode 100644 index 0000000000000..6f88a6f92fb91 --- /dev/null +++ b/obj/item/borg/forging_setup.html @@ -0,0 +1 @@ +/obj/item/borg/forging_setup - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

forging_setup

Vars

charge_costhow much charge the item will use per use

Var Details

charge_cost

how much charge the item will use per use

\ No newline at end of file diff --git a/obj/item/borg/hydraulic_clamp.html b/obj/item/borg/hydraulic_clamp.html new file mode 100644 index 0000000000000..cc64ea04677f5 --- /dev/null +++ b/obj/item/borg/hydraulic_clamp.html @@ -0,0 +1 @@ +/obj/item/borg/hydraulic_clamp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hydraulic_clamp

THE CLAMPS!!

Vars

can_hold_mobsCan it hold mobs? (Dangerous, it is recommended to leave this to FALSE)
charge_costHow much power does it draw per operation?
clamp_cooldownCooldown for the clamp.
clamp_soundAudio for using the hydraulic clamp.
clamp_sound_volumeVolume of the clamp's loading and unloading noise.
cooldown_durationHow long is the clamp on cooldown for after every usage?
cyborg_holding_meWeakref to the cyborg we're currently connected to.
in_useIs it currently in use?
item_weight_limitWeight limit on the items it can hold. Leave as NONE if there isn't.
loading_timeHow long does it take to load in an item?
selected_item_indexIndex of the item we want to take out of the clamp, 0 if nothing selected.
storage_capacityHow many items can it hold at once in its internal storage?
unloading_timeHow long does it take to unload an item?
whitelisted_contentsDoes it require the items it takes in to be wrapped in paper wrap? Can have unforeseen consequences, change to FALSE at your own risks.
whitelisted_item_descriptionA short description used when the check to pick up something has failed.
whitelisted_item_typesWhat kind of wrapped item can it hold, if whitelisted_contents is set to true?

Procs

empty_contentsA simple proc to empty the contents of the hydraulic clamp, forcing them on the turf it's on. Also forces selected_item_index to 0, to avoid any possible issues resulting from it.

Var Details

can_hold_mobs

Can it hold mobs? (Dangerous, it is recommended to leave this to FALSE)

charge_cost

How much power does it draw per operation?

clamp_cooldown

Cooldown for the clamp.

clamp_sound

Audio for using the hydraulic clamp.

clamp_sound_volume

Volume of the clamp's loading and unloading noise.

cooldown_duration

How long is the clamp on cooldown for after every usage?

cyborg_holding_me

Weakref to the cyborg we're currently connected to.

in_use

Is it currently in use?

item_weight_limit

Weight limit on the items it can hold. Leave as NONE if there isn't.

loading_time

How long does it take to load in an item?

selected_item_index

Index of the item we want to take out of the clamp, 0 if nothing selected.

storage_capacity

How many items can it hold at once in its internal storage?

unloading_time

How long does it take to unload an item?

whitelisted_contents

Does it require the items it takes in to be wrapped in paper wrap? Can have unforeseen consequences, change to FALSE at your own risks.

whitelisted_item_description

A short description used when the check to pick up something has failed.

whitelisted_item_types

What kind of wrapped item can it hold, if whitelisted_contents is set to true?

Proc Details

empty_contents

A simple proc to empty the contents of the hydraulic clamp, forcing them on the turf it's on. Also forces selected_item_index to 0, to avoid any possible issues resulting from it.

\ No newline at end of file diff --git a/obj/item/borg/hydraulic_clamp/mail.html b/obj/item/borg/hydraulic_clamp/mail.html new file mode 100644 index 0000000000000..a07876ef3f5e6 --- /dev/null +++ b/obj/item/borg/hydraulic_clamp/mail.html @@ -0,0 +1,2 @@ +/obj/item/borg/hydraulic_clamp/mail - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mail

Procs

pre_attackCargoborg specific items

Proc Details

pre_attack

Cargoborg specific items

+

Refer to modular_skyrat/modules/cargoborg/code/robot_items.dm for original definitions

\ No newline at end of file diff --git a/obj/item/borg/lollipop.html b/obj/item/borg/lollipop.html new file mode 100644 index 0000000000000..bbfc167691558 --- /dev/null +++ b/obj/item/borg/lollipop.html @@ -0,0 +1 @@ +/obj/item/borg/lollipop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lollipop

Vars

candyThe current amount of available candy
candymaxThe maximum amount of candy possible to hold
charge_delayLength of time it takes to regenerate a new candy
chargingIs the fabricator charging right now?
firedelayDelay until next fire
modeDispensing mode

Procs

charge_lollipopsIncreases the amount of lollipops
check_amountQueues another lollipop to be fabricated if there is enough room for one
dispenseDispenses a lollipop
shootGShoot a gumball
shootLShoot a lollipop

Var Details

candy

The current amount of available candy

candymax

The maximum amount of candy possible to hold

charge_delay

Length of time it takes to regenerate a new candy

charging

Is the fabricator charging right now?

firedelay

Delay until next fire

mode

Dispensing mode

Proc Details

charge_lollipops

Increases the amount of lollipops

check_amount

Queues another lollipop to be fabricated if there is enough room for one

dispense

Dispenses a lollipop

shootG

Shoot a gumball

shootL

Shoot a lollipop

\ No newline at end of file diff --git a/obj/item/borg/paperplane_crossbow.html b/obj/item/borg/paperplane_crossbow.html new file mode 100644 index 0000000000000..6cc9c7f7d82b5 --- /dev/null +++ b/obj/item/borg/paperplane_crossbow.html @@ -0,0 +1 @@ +/obj/item/borg/paperplane_crossbow - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

paperplane_crossbow

Vars

charge_delayTime it takes to regenerate one plane
chargingIs the crossbow currently charging a new paper plane?
max_planesMaximum of planes the crossbow can hold.
planesHow many planes does the crossbow currently have in its internal magazine?
shooting_cooldownAre we ready to fire again?
shooting_delayHow long is the cooldown between shots?

Procs

charge_paper_planesA simple proc to charge paper planes, that then calls [/obj/item/borg/paperplane_crossbow/proc/check_amount()] to see if it should charge another one, over and over.
check_amountA simple proc to check if we're at the max amount of planes, if not, we keep on charging. Called by [/obj/item/borg/paperplane_crossbow/proc/charge_paper_planes()].
shootA proc for shooting a projectile at the target, it's just that simple, really.

Var Details

charge_delay

Time it takes to regenerate one plane

charging

Is the crossbow currently charging a new paper plane?

max_planes

Maximum of planes the crossbow can hold.

planes

How many planes does the crossbow currently have in its internal magazine?

shooting_cooldown

Are we ready to fire again?

shooting_delay

How long is the cooldown between shots?

Proc Details

charge_paper_planes

A simple proc to charge paper planes, that then calls [/obj/item/borg/paperplane_crossbow/proc/check_amount()] to see if it should charge another one, over and over.

check_amount

A simple proc to check if we're at the max amount of planes, if not, we keep on charging. Called by [/obj/item/borg/paperplane_crossbow/proc/charge_paper_planes()].

shoot

A proc for shooting a projectile at the target, it's just that simple, really.

\ No newline at end of file diff --git a/obj/item/borg/projectile_dampen.html b/obj/item/borg/projectile_dampen.html new file mode 100644 index 0000000000000..427ebcb95108d --- /dev/null +++ b/obj/item/borg/projectile_dampen.html @@ -0,0 +1,3 @@ +/obj/item/borg/projectile_dampen - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

projectile_dampen

Vars

cyborg_cell_critical_percentageCritical power level percentage
cycle_cooldownactivation cooldown
dampening_fieldThe field
energyCurrent energy level
energy_rechargeRecharging rate in energy per second
hostThe owner of the dampener
maxenergyMax energy this dampener can hold
projectile_damage_tick_ecost_coefficientEnergy cost per tracked projectile damage amount per second
projectile_speed_coefficientSpeed coefficient +Higher the coefficient slower the projectile.
projectile_tick_speed_ecostEnergy cost per tracked projectile per second
trackedProjectile sent out by the dampener

Var Details

cyborg_cell_critical_percentage

Critical power level percentage

cycle_cooldown

activation cooldown

dampening_field

The field

energy

Current energy level

energy_recharge

Recharging rate in energy per second

host

The owner of the dampener

maxenergy

Max energy this dampener can hold

projectile_damage_tick_ecost_coefficient

Energy cost per tracked projectile damage amount per second

projectile_speed_coefficient

Speed coefficient +Higher the coefficient slower the projectile.

projectile_tick_speed_ecost

Energy cost per tracked projectile per second

tracked

Projectile sent out by the dampener

\ No newline at end of file diff --git a/obj/item/borg/stun.html b/obj/item/borg/stun.html new file mode 100644 index 0000000000000..cc23210124c90 --- /dev/null +++ b/obj/item/borg/stun.html @@ -0,0 +1 @@ +/obj/item/borg/stun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stun

Vars

cooldowncooldown between attacks

Var Details

cooldown

cooldown between attacks

\ No newline at end of file diff --git a/obj/item/borg/upgrade.html b/obj/item/borg/upgrade.html new file mode 100644 index 0000000000000..f11e105e28edf --- /dev/null +++ b/obj/item/borg/upgrade.html @@ -0,0 +1 @@ +/obj/item/borg/upgrade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

upgrade

Vars

items_to_addList of items to add with the module, if any
items_to_removeList of items to remove with the module, if any
model_flagsBitflags listing model compatibility. Used in the exosuit fabricator for creating sub-categories.

Var Details

items_to_add

List of items to add with the module, if any

items_to_remove

List of items to remove with the module, if any

model_flags

Bitflags listing model compatibility. Used in the exosuit fabricator for creating sub-categories.

\ No newline at end of file diff --git a/obj/item/borg/upgrade/selfrepair.html b/obj/item/borg/upgrade/selfrepair.html new file mode 100644 index 0000000000000..e5f0960e0a558 --- /dev/null +++ b/obj/item/borg/upgrade/selfrepair.html @@ -0,0 +1 @@ +/obj/item/borg/upgrade/selfrepair - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

selfrepair

Vars

next_repairworld.time of next repair
repair_cooldownMinimum time between repairs in seconds

Var Details

next_repair

world.time of next repair

repair_cooldown

Minimum time between repairs in seconds

\ No newline at end of file diff --git a/obj/item/borg/upgrade/snack_dispenser.html b/obj/item/borg/upgrade/snack_dispenser.html new file mode 100644 index 0000000000000..57622748c5bd6 --- /dev/null +++ b/obj/item/borg/upgrade/snack_dispenser.html @@ -0,0 +1 @@ +/obj/item/borg/upgrade/snack_dispenser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

snack_dispenser

Vars

removed_modulesFor storing modules that we remove, since the upgraded snack dispensor automatically removes inferior versions

Var Details

removed_modules

For storing modules that we remove, since the upgraded snack dispensor automatically removes inferior versions

\ No newline at end of file diff --git a/obj/item/borg_shapeshifter.html b/obj/item/borg_shapeshifter.html new file mode 100644 index 0000000000000..ddecf16cc7fac --- /dev/null +++ b/obj/item/borg_shapeshifter.html @@ -0,0 +1,5 @@ +/obj/item/borg_shapeshifter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

borg_shapeshifter

Shapeshifter

Vars

disguise_model_featuresTraits unique to this model (deadsprite, wide/dogborginess, etc.). Mirrors the definition in modular_skyrat\modules\borgs\code\modules\mob\living\silicon\robot\robot_model.dm

Procs

check_menucheck_menu: Checks if we are allowed to interact with a radial menu

Var Details

disguise_model_features

Traits unique to this model (deadsprite, wide/dogborginess, etc.). Mirrors the definition in modular_skyrat\modules\borgs\code\modules\mob\living\silicon\robot\robot_model.dm

Proc Details

check_menu

check_menu: Checks if we are allowed to interact with a radial menu

+

Arguments:

+
    +
  • user The mob interacting with a menu
  • +
\ No newline at end of file diff --git a/obj/item/borg_snack_dispenser.html b/obj/item/borg_snack_dispenser.html new file mode 100644 index 0000000000000..c06bb94858ace --- /dev/null +++ b/obj/item/borg_snack_dispenser.html @@ -0,0 +1 @@ +/obj/item/borg_snack_dispenser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

borg_snack_dispenser

Vars

borg_charge_cutoffMinimum amount of charge a borg can have before snack printing is disallowed
borg_charge_usageThe amount of charge used per print of a snack
launch_modeWhether snacks are launched when targeted at a distance
selected_snackContains the PATH of the selected snack
valid_snacksA list of all valid snacks

Var Details

borg_charge_cutoff

Minimum amount of charge a borg can have before snack printing is disallowed

borg_charge_usage

The amount of charge used per print of a snack

launch_mode

Whether snacks are launched when targeted at a distance

selected_snack

Contains the PATH of the selected snack

valid_snacks

A list of all valid snacks

\ No newline at end of file diff --git a/obj/item/bot_assembly.html b/obj/item/bot_assembly.html new file mode 100644 index 0000000000000..d2f742268b74c --- /dev/null +++ b/obj/item/bot_assembly.html @@ -0,0 +1,7 @@ +/obj/item/bot_assembly - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bot_assembly

Procs

can_finish_buildChecks if the user can finish constructing a bot with a given item.

Proc Details

can_finish_build

Checks if the user can finish constructing a bot with a given item.

+

Arguments:

+
    +
  • I - Item to be used
  • +
  • user - Mob doing the construction
  • +
  • drop_item - Whether or no the item should be dropped; defaults to 1. Should be set to 0 if the item is a tool, stack, or otherwise doesn't need to be dropped. If not set to 0, item must be deleted afterwards.
  • +
\ No newline at end of file diff --git a/obj/item/boulder.html b/obj/item/boulder.html new file mode 100644 index 0000000000000..53f24bc3c7b89 --- /dev/null +++ b/obj/item/boulder.html @@ -0,0 +1,11 @@ +/obj/item/boulder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

boulder

The objects that ore vents produce, which is refined into minerals.

Vars

boulder_sizeWhat was the size of the boulder when it was spawned? This is used for inheiriting the icon_state.
boulder_stringUsed in inheriting the icon_state from our parent vent in update_icon.
durabilityHow many steps of refinement this boulder has gone through. Starts at 5-8, goes down one each machine process.
processed_byWhen a refinery machine is working on this boulder, we'll set this. Re reset when the process is finished, but the boulder may still be refined/operated on further.

Procs

break_apartMoves boulder contents to the drop location, and then deletes the boulder.
convert_to_oreThis is called when a boulder is processed by a mob or tool, and reduces the durability of the boulder. +@param obj/item/weapon The weapon that is being used to process the boulder, that we pull toolspeed from. If null, we use the override_speed_multiplier instead. +@param mob/living/user The mob that is processing the boulder. +@param override_speed_multiplier The speed multiplier to use if weapon is null. The do_after will take 2 * this value seconds to complete. +@param continued Whether or not this is a continued process, or the first one. If true, we don't play the "You swing at the boulder" message.

Var Details

boulder_size

What was the size of the boulder when it was spawned? This is used for inheiriting the icon_state.

boulder_string

Used in inheriting the icon_state from our parent vent in update_icon.

durability

How many steps of refinement this boulder has gone through. Starts at 5-8, goes down one each machine process.

processed_by

When a refinery machine is working on this boulder, we'll set this. Re reset when the process is finished, but the boulder may still be refined/operated on further.

Proc Details

break_apart

Moves boulder contents to the drop location, and then deletes the boulder.

convert_to_ore

This is called when a boulder is processed by a mob or tool, and reduces the durability of the boulder. +@param obj/item/weapon The weapon that is being used to process the boulder, that we pull toolspeed from. If null, we use the override_speed_multiplier instead. +@param mob/living/user The mob that is processing the boulder. +@param override_speed_multiplier The speed multiplier to use if weapon is null. The do_after will take 2 * this value seconds to complete. +@param continued Whether or not this is a continued process, or the first one. If true, we don't play the "You swing at the boulder" message.

+

This function is called while breaking boulders manually, and drops ore based on the boulder's mineral content. +Quantity of ore spawned here is 1 less than if the boulder was processed by a machine, but clamped at 10 maximum, 1 minimum.

\ No newline at end of file diff --git a/obj/item/boulder/artifact.html b/obj/item/boulder/artifact.html new file mode 100644 index 0000000000000..01d95bea4c2cc --- /dev/null +++ b/obj/item/boulder/artifact.html @@ -0,0 +1 @@ +/obj/item/boulder/artifact - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

artifact

Boulders with special artificats that can give higher mining points

Vars

artifact_insideReferences to the relic inside the boulder, if any.
artifact_typeThis is the type of item that will be inside the boulder. Default is a strange object.

Procs

DestroyThis could be poggers for archaeology in the future.

Var Details

artifact_inside

References to the relic inside the boulder, if any.

artifact_type

This is the type of item that will be inside the boulder. Default is a strange object.

Proc Details

Destroy

This could be poggers for archaeology in the future.

\ No newline at end of file diff --git a/obj/item/boulder_beacon.html b/obj/item/boulder_beacon.html new file mode 100644 index 0000000000000..254943766df7d --- /dev/null +++ b/obj/item/boulder_beacon.html @@ -0,0 +1,3 @@ +/obj/item/boulder_beacon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

boulder_beacon

Beacon to launch a new mining setup when activated. For testing and speed!

Vars

usesNumber of activations left on this beacon. Uses will be removed as the beacon is used and each triggers a different machine to be spawned from it.

Procs

launch_payloadSpawns a new bouldertech machine from the beacon, then removes a use from the beacon. +Use one spawns a BRM teleporter, then a refinery, and lastly a smelter.

Var Details

uses

Number of activations left on this beacon. Uses will be removed as the beacon is used and each triggers a different machine to be spawned from it.

Proc Details

launch_payload

Spawns a new bouldertech machine from the beacon, then removes a use from the beacon. +Use one spawns a BRM teleporter, then a refinery, and lastly a smelter.

\ No newline at end of file diff --git a/obj/item/bounty_cube.html b/obj/item/bounty_cube.html new file mode 100644 index 0000000000000..a806826ef6420 --- /dev/null +++ b/obj/item/bounty_cube.html @@ -0,0 +1 @@ +/obj/item/bounty_cube - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bounty_cube

Upon completion of a civilian bounty, one of these is created. It is sold to cargo to give the cargo budget bounty money, and the person who completed it cash.

Vars

bounty_handler_accountBank account of the person who receives the handling tip.
bounty_holderWho completed the bounty.
bounty_holder_accountBank account of the person who completed the bounty.
bounty_holder_jobWhat job the bounty holder had.
bounty_nameWhat the bounty was for.
bounty_valueValue of the bounty that this bounty cube sells for.
handler_tipMultiplier for the bounty payout received by the person who claims the handling tip.
holder_cutMultiplier for the bounty payout received by the person who completed the bounty.
nag_cooldownTime between nags.
nag_cooldown_multiplierHow much the time between nags extends each nag.
next_nag_timeNext world tick to nag Supply listeners.
radioOur internal radio.
radio_keyThe key our internal radio uses.
speed_bonusMultiplier for the bounty payout received by the Supply budget if the cube is sent without having to nag.

Var Details

bounty_handler_account

Bank account of the person who receives the handling tip.

bounty_holder

Who completed the bounty.

bounty_holder_account

Bank account of the person who completed the bounty.

bounty_holder_job

What job the bounty holder had.

bounty_name

What the bounty was for.

bounty_value

Value of the bounty that this bounty cube sells for.

handler_tip

Multiplier for the bounty payout received by the person who claims the handling tip.

holder_cut

Multiplier for the bounty payout received by the person who completed the bounty.

nag_cooldown

Time between nags.

nag_cooldown_multiplier

How much the time between nags extends each nag.

next_nag_time

Next world tick to nag Supply listeners.

radio

Our internal radio.

radio_key

The key our internal radio uses.

speed_bonus

Multiplier for the bounty payout received by the Supply budget if the cube is sent without having to nag.

\ No newline at end of file diff --git a/obj/item/boxcutter.html b/obj/item/boxcutter.html new file mode 100644 index 0000000000000..34d966f9fdab4 --- /dev/null +++ b/obj/item/boxcutter.html @@ -0,0 +1 @@ +/obj/item/boxcutter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

boxcutter

Vars

snap_time_strong_handcuffsUsed on Initialize, how much time to cut real handcuffs. Null means it can't.
snap_time_weak_handcuffsUsed on Initialize, how much time to cut cable restraints and zipties.
start_extendedStarts open if true

Var Details

snap_time_strong_handcuffs

Used on Initialize, how much time to cut real handcuffs. Null means it can't.

snap_time_weak_handcuffs

Used on Initialize, how much time to cut cable restraints and zipties.

start_extended

Starts open if true

\ No newline at end of file diff --git a/obj/item/broadcast_camera.html b/obj/item/broadcast_camera.html new file mode 100644 index 0000000000000..72638edbb4c90 --- /dev/null +++ b/obj/item/broadcast_camera.html @@ -0,0 +1 @@ +/obj/item/broadcast_camera - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

broadcast_camera

Vars

activeIs camera streaming
active_microphoneIs the microphone turned on
broadcast_nameThe name of the broadcast
camera_networksThe networks it broadcasts to, default is CAMERANET_NETWORK_CURATOR
internal_cameraThe "virtual" security camera inside of the physical camera
internal_radioThe "virtual" radio inside of the the physical camera, a la microphone

Procs

on_activatingWhen activating the camera
on_deactivatingWhen deactivating the camera

Var Details

active

Is camera streaming

active_microphone

Is the microphone turned on

broadcast_name

The name of the broadcast

camera_networks

The networks it broadcasts to, default is CAMERANET_NETWORK_CURATOR

internal_camera

The "virtual" security camera inside of the physical camera

internal_radio

The "virtual" radio inside of the the physical camera, a la microphone

Proc Details

on_activating

When activating the camera

on_deactivating

When deactivating the camera

\ No newline at end of file diff --git a/obj/item/broken_bottle.html b/obj/item/broken_bottle.html new file mode 100644 index 0000000000000..95d303e43e8ee --- /dev/null +++ b/obj/item/broken_bottle.html @@ -0,0 +1,3 @@ +/obj/item/broken_bottle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

broken_bottle

Vars

broken_outlineThe mask image for mimicking a broken-off bottom of the bottle
flipped_broken_outlineThe mask image for mimicking a broken-off neck of the bottle

Procs

mimic_brokenMimics the appearance and properties of the passed in bottle. +Takes the broken bottle to mimic, and the thing the bottle was broken agaisnt as args

Var Details

broken_outline

The mask image for mimicking a broken-off bottom of the bottle

flipped_broken_outline

The mask image for mimicking a broken-off neck of the bottle

Proc Details

mimic_broken

Mimics the appearance and properties of the passed in bottle. +Takes the broken bottle to mimic, and the thing the bottle was broken agaisnt as args

\ No newline at end of file diff --git a/obj/item/burner.html b/obj/item/burner.html new file mode 100644 index 0000000000000..1a14795fb36dd --- /dev/null +++ b/obj/item/burner.html @@ -0,0 +1 @@ +/obj/item/burner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

burner

Vars

litIf the flame is lit - i.e. if we're processing and burning
max_volumetotal reagent volume
reagent_typeWhat the creation reagent is

Var Details

lit

If the flame is lit - i.e. if we're processing and burning

max_volume

total reagent volume

reagent_type

What the creation reagent is

\ No newline at end of file diff --git a/obj/item/camera.html b/obj/item/camera.html new file mode 100644 index 0000000000000..4c24c9c14598b --- /dev/null +++ b/obj/item/camera.html @@ -0,0 +1 @@ +/obj/item/camera - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

camera

Vars

print_picture_on_snapWhether the camera should print pictures immediately when a picture is taken.

Var Details

print_picture_on_snap

Whether the camera should print pictures immediately when a picture is taken.

\ No newline at end of file diff --git a/obj/item/camera/siliconcam.html b/obj/item/camera/siliconcam.html new file mode 100644 index 0000000000000..e048ce7fe433c --- /dev/null +++ b/obj/item/camera/siliconcam.html @@ -0,0 +1,3 @@ +/obj/item/camera/siliconcam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

siliconcam

Vars

storedList of all pictures taken by this camera.

Procs

can_take_pictureChecks if we can take a picture at this moment. Returns TRUE if we can, FALSE if we can't.
toggle_camera_modeToggles the camera mode on or off. +If sound is TRUE, plays a sound effect and displays a message on successful toggle

Var Details

stored

List of all pictures taken by this camera.

Proc Details

can_take_picture

Checks if we can take a picture at this moment. Returns TRUE if we can, FALSE if we can't.

toggle_camera_mode

Toggles the camera mode on or off. +If sound is TRUE, plays a sound effect and displays a message on successful toggle

\ No newline at end of file diff --git a/obj/item/camera/siliconcam/pai_camera.html b/obj/item/camera/siliconcam/pai_camera.html new file mode 100644 index 0000000000000..0c7fc811e43b2 --- /dev/null +++ b/obj/item/camera/siliconcam/pai_camera.html @@ -0,0 +1,4 @@ +/obj/item/camera/siliconcam/pai_camera - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

pai_camera

Procs

pai_printHandles selecting and printing stored images.

Proc Details

pai_print

Handles selecting and printing stored images.

+

@param {mob} user - The pAI.

+

@returns {boolean} - TRUE if the pAI prints an image, +FALSE otherwise.

\ No newline at end of file diff --git a/obj/item/canvas.html b/obj/item/canvas.html new file mode 100644 index 0000000000000..5bf5a4efbdd0d --- /dev/null +++ b/obj/item/canvas.html @@ -0,0 +1,3 @@ +/obj/item/canvas - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

canvas

Vars

canvas_colorempty canvas color
last_patronreference to the last patron's mind datum, used to allow them (and no others) to change the frame before the round ends.
no_saveboolean that blocks persistence from saving it. enabled from printing copies, because we do not want to save copies.
pixels_per_unitHow big the grid cells that compose the painting are in the UI (multiplied by zoom). +This impacts the size of the UI, so smaller values are generally better for bigger canvases and viceversa
show_gridWhether a grid should be shown in the UI if the canvas is editable and the viewer is holding a painting tool.
usedIs it clean canvas or was there something painted on it at some point, used to decide when to show wip splotch overlay
zoom_by_observerA list that keeps track of the current zoom value for each current viewer.

Procs

get_paint_tool_mediumGenerates medium description

Var Details

canvas_color

empty canvas color

last_patron

reference to the last patron's mind datum, used to allow them (and no others) to change the frame before the round ends.

no_save

boolean that blocks persistence from saving it. enabled from printing copies, because we do not want to save copies.

pixels_per_unit

How big the grid cells that compose the painting are in the UI (multiplied by zoom). +This impacts the size of the UI, so smaller values are generally better for bigger canvases and viceversa

show_grid

Whether a grid should be shown in the UI if the canvas is editable and the viewer is holding a painting tool.

used

Is it clean canvas or was there something painted on it at some point, used to decide when to show wip splotch overlay

zoom_by_observer

A list that keeps track of the current zoom value for each current viewer.

Proc Details

get_paint_tool_medium

Generates medium description

\ No newline at end of file diff --git a/obj/item/capturedevice.html b/obj/item/capturedevice.html new file mode 100644 index 0000000000000..79cb9aee660d4 --- /dev/null +++ b/obj/item/capturedevice.html @@ -0,0 +1 @@ +/obj/item/capturedevice - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

capturedevice

Vars

traits_on_transfertraits we give and remove from the mob on exit and entry

Var Details

traits_on_transfer

traits we give and remove from the mob on exit and entry

\ No newline at end of file diff --git a/obj/item/card.html b/obj/item/card.html new file mode 100644 index 0000000000000..f9aced25b98e0 --- /dev/null +++ b/obj/item/card.html @@ -0,0 +1 @@ +/obj/item/card - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

card

Vars

cached_flat_iconCached icon that has been built for this card. Intended to be displayed in chat. Cardboards IDs and actual IDs use it.

Procs

get_cached_flat_iconIf no cached_flat_icon exists, this proc creates it and crops it. This proc then returns the cached_flat_icon. Intended for use displaying ID card icons in chat.

Var Details

cached_flat_icon

Cached icon that has been built for this card. Intended to be displayed in chat. Cardboards IDs and actual IDs use it.

Proc Details

get_cached_flat_icon

If no cached_flat_icon exists, this proc creates it and crops it. This proc then returns the cached_flat_icon. Intended for use displaying ID card icons in chat.

\ No newline at end of file diff --git a/obj/item/card/cardboard.html b/obj/item/card/cardboard.html new file mode 100644 index 0000000000000..51d4ad32226da --- /dev/null +++ b/obj/item/card/cardboard.html @@ -0,0 +1,4 @@ +/obj/item/card/cardboard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cardboard

A fake ID card any silly-willy can craft with wirecutters, cardboard and a writing utensil +Beside the gimmick of changing the visible name when worn, they do nothing. They cannot have an account. +They don't fit in PDAs nor wallets, They have no access. They won't trick securitrons. They won't work with chameleon masks. +Etcetera etcetera. Furthermore, talking, or getting examined on will pretty much give it away.

Vars

details_colorsThe colors for each of the above variables, for when overlays are updated.
scribbled_assignmentThe assignment written on this card.
scribbled_nameThe "name" of the "owner" of this "ID"
scribbled_trimAn icon state used as trim.

Procs

after_input_checkChecks that the conditions to be able to modify the cardboard card are still present after user input calls.
modify_cardLets the user write a name, assignment or trim on the card, or reset it. Only the name is important for the component.

Var Details

details_colors

The colors for each of the above variables, for when overlays are updated.

scribbled_assignment

The assignment written on this card.

scribbled_name

The "name" of the "owner" of this "ID"

scribbled_trim

An icon state used as trim.

Proc Details

after_input_check

Checks that the conditions to be able to modify the cardboard card are still present after user input calls.

modify_card

Lets the user write a name, assignment or trim on the card, or reset it. Only the name is important for the component.

\ No newline at end of file diff --git a/obj/item/card/emag/battlecruiser.html b/obj/item/card/emag/battlecruiser.html new file mode 100644 index 0000000000000..7a6ae358bf209 --- /dev/null +++ b/obj/item/card/emag/battlecruiser.html @@ -0,0 +1 @@ +/obj/item/card/emag/battlecruiser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

battlecruiser

Vars

teamThe battlecruiser team that the battlecruiser will get added to
usedwhether we have called the battlecruiser

Var Details

team

The battlecruiser team that the battlecruiser will get added to

used

whether we have called the battlecruiser

\ No newline at end of file diff --git a/obj/item/card/emag/one_shot.html b/obj/item/card/emag/one_shot.html new file mode 100644 index 0000000000000..9888ae0b4149e --- /dev/null +++ b/obj/item/card/emag/one_shot.html @@ -0,0 +1 @@ +/obj/item/card/emag/one_shot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

one_shot

Vars

callerWho summoned this?
chargesHow many uses does it have left?

Var Details

caller

Who summoned this?

charges

How many uses does it have left?

\ No newline at end of file diff --git a/obj/item/card/emagfake.html b/obj/item/card/emagfake.html new file mode 100644 index 0000000000000..8334af120b4c5 --- /dev/null +++ b/obj/item/card/emagfake.html @@ -0,0 +1 @@ +/obj/item/card/emagfake - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

emagfake

Vars

explodingWhether we are exploding

Var Details

exploding

Whether we are exploding

\ No newline at end of file diff --git a/obj/item/card/id.html b/obj/item/card/id.html new file mode 100644 index 0000000000000..4d9e323be8a3b --- /dev/null +++ b/obj/item/card/id.html @@ -0,0 +1,75 @@ +/obj/item/card/id - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

id

"Retro" ID card that renders itself as the icon state with no overlays.

Vars

accessAccess levels held by this card.
assignmentThe job name registered on the card (for example: Assistant).
available_logosList of logos available for holopay customization - via font awesome 5
big_pointerIf true, the wearer will have bigger arrow when pointing at things. Passed down by trims.
holopay_feeReplaces the "pay whatever" functionality with a set amount when non-zero.
holopay_logoThe holopay icon chosen by the user
holopay_max_feeMaximum forced fee. It's unlikely for a user to encounter this type of money, much less pay it willingly.
holopay_min_feeMinimum forced fee for holopay stations. Registers as "pay what you want."
holopay_nameThe holopay name chosen by the user
is_internBoolean value. If TRUE, the [Intern] tag gets prepended to this ID card when the label is updated.
last_holopay_projectionCooldown between projecting holopays
my_storeLinked holopay.
pointer_colorIf set, the arrow will have a different color.
registered_accountLinked bank account.
registered_ageRegistered owner's age.
registered_nameThe name registered on the card (for example: Dr Bryan See)
trimTrim datum associated with the card. Controls which job icon is displayed on the card and which accesses do not require wildcards.
wildcard_slotsList of wildcard slot names as keys with lists of wildcard data as values.

Procs

add_accessAttempts to add the given accesses to the ID card as non-wildcards.
add_wildcardsAttempts to add the given wildcards to the ID card.
alt_click_can_use_idHelper proc. Can the user alt-click the ID?
build_access_listsHelper proc. Creates access lists for the access procs.
can_add_wildcardsHelper proc, checks whether the ID card can hold any given set of wildcards.
can_be_used_in_paymentHelper proc that determines if a card can be used in certain types of payment transactions.
can_proj_holopayDetermines whether a new holopay can be placed on the given turf. +Checks if there are dense contents, too many contents, or another +holopay already exists on the turf.
clear_accessClears all accesses from the ID card - both wildcard and normal.
clear_accountClears the economy account from the ID card.
get_trim_assignmentReturns the trim assignment name.
get_trim_sechud_icon_stateReturns the trim sechud icon state.
insert_moneyInsert credits or coins into the ID card and add their value to the associated bank account.
mass_insert_moneyInsert multiple money or money-equivalent items at once.
remove_accessRemoves the given accesses from the ID Card.
remove_wildcardsRemoves wildcards from the ID card.
set_accessAttempts to set the card's accesses to the given accesses, clearing all accesses not in the given list.
set_holopay_feeSetter for changing the force fee on a holopay.
set_holopay_logoSetter for the shop logo on linked holopays
set_holopay_nameSetter for changing the holopay name.
set_intern_statusSets an intern status and updates the label of the ID
set_new_accountAttempts to set a new bank account on the ID card.
update_in_walletCalled on COMSIG_ATOM_UPDATED_ICON. Updates the visuals of the wallet this card is in.
update_labelUpdates the name based on the card's vars and state.

Var Details

access

Access levels held by this card.

assignment

The job name registered on the card (for example: Assistant).

available_logos

List of logos available for holopay customization - via font awesome 5

big_pointer

If true, the wearer will have bigger arrow when pointing at things. Passed down by trims.

holopay_fee

Replaces the "pay whatever" functionality with a set amount when non-zero.

The holopay icon chosen by the user

holopay_max_fee

Maximum forced fee. It's unlikely for a user to encounter this type of money, much less pay it willingly.

holopay_min_fee

Minimum forced fee for holopay stations. Registers as "pay what you want."

holopay_name

The holopay name chosen by the user

is_intern

Boolean value. If TRUE, the [Intern] tag gets prepended to this ID card when the label is updated.

last_holopay_projection

Cooldown between projecting holopays

my_store

Linked holopay.

pointer_color

If set, the arrow will have a different color.

registered_account

Linked bank account.

registered_age

Registered owner's age.

registered_name

The name registered on the card (for example: Dr Bryan See)

trim

Trim datum associated with the card. Controls which job icon is displayed on the card and which accesses do not require wildcards.

wildcard_slots

List of wildcard slot names as keys with lists of wildcard data as values.

Proc Details

add_access

Attempts to add the given accesses to the ID card as non-wildcards.

+

Depending on the mode, may add accesses as wildcards or error if it can't add them as non-wildcards. +Arguments:

+
    +
  • add_accesses - List of accesses to check.
  • +
  • try_wildcard - If not null, will attempt to add all accesses that require wildcard slots to this wildcard slot only.
  • +
  • mode - The method to use when adding accesses. See define for ERROR_ON_FAIL
  • +

add_wildcards

Attempts to add the given wildcards to the ID card.

+

Arguments:

+
    +
  • wildcard_list - List of accesses to add.
  • +
  • try_wildcard - If not null, will attempt to add all wildcards to this wildcard slot only.
  • +
  • mode - The method to use when adding wildcards. See define for ERROR_ON_FAIL
  • +

alt_click_can_use_id

Helper proc. Can the user alt-click the ID?

build_access_lists

Helper proc. Creates access lists for the access procs.

+

Takes the accesses list and compares it with the trim. Any basic accesses that match the trim are +added to basic_access_list and the rest are added to wildcard_access_list.

+

This proc directly modifies the lists passed in as args. It expects these lists to be instantiated. +There is no return value. +Arguments:

+
    +
  • accesses - List of accesses you want to stort into basic_access_list and wildcard_access_list. Should not be null.
  • +
  • basic_access_list - Mandatory argument. The proc modifies the list passed in this argument and adds accesses the trim supports to it.
  • +
  • wildcard_access_list - Mandatory argument. The proc modifies the list passed in this argument and adds accesses the trim does not support to it.
  • +

can_add_wildcards

Helper proc, checks whether the ID card can hold any given set of wildcards.

+

Returns TRUE if the card can hold the wildcards, FALSE otherwise. +Arguments:

+
    +
  • wildcard_list - List of accesses to check.
  • +
  • try_wildcard - If not null, will attempt to add wildcards for this wildcard specifically and will return FALSE if the card cannot hold all wildcards in this slot.
  • +

can_be_used_in_payment

Helper proc that determines if a card can be used in certain types of payment transactions.

can_proj_holopay

Determines whether a new holopay can be placed on the given turf. +Checks if there are dense contents, too many contents, or another +holopay already exists on the turf.

+

Arguments:

+
    +
  • turf/target - The target turf to be checked for dense contents +Returns:
  • +
  • TRUE if the target is a valid holopay location, FALSE otherwise.
  • +

clear_access

Clears all accesses from the ID card - both wildcard and normal.

clear_account

Clears the economy account from the ID card.

get_trim_assignment

Returns the trim assignment name.

get_trim_sechud_icon_state

Returns the trim sechud icon state.

insert_money

Insert credits or coins into the ID card and add their value to the associated bank account.

+

Returns TRUE if the money was successfully inserted, FALSE otherwise. +Arguments: +money - The item to attempt to convert to credits and insert into the card. +user - The user inserting the item. +physical_currency - Boolean, whether this is a physical currency such as a coin and not a holochip.

mass_insert_money

Insert multiple money or money-equivalent items at once.

+

Arguments: +money - List of items to attempt to convert to credits and insert into the card. +user - The user inserting the items.

remove_access

Removes the given accesses from the ID Card.

+

Will remove the wildcards if the accesses given are on the card as wildcard accesses. +Arguments:

+
    +
  • rem_accesses - List of accesses to remove.
  • +

remove_wildcards

Removes wildcards from the ID card.

+

Arguments:

+
    +
  • wildcard_list - List of accesses to remove.
  • +

set_access

Attempts to set the card's accesses to the given accesses, clearing all accesses not in the given list.

+

Depending on the mode, may add accesses as wildcards or error if it can't add them as non-wildcards. +Arguments:

+
    +
  • new_access_list - List of all accesses that this card should hold exclusively.
  • +
  • mode - The method to use when setting accesses. See define for ERROR_ON_FAIL
  • +

set_holopay_fee

Setter for changing the force fee on a holopay.

+

Arguments:

+
    +
  • new_fee - The new fee to be set.
  • +

Setter for the shop logo on linked holopays

+

Arguments:

+
    +
  • new_logo - The new logo to be set.
  • +

set_holopay_name

Setter for changing the holopay name.

+

Arguments:

+
    +
  • new_name - The new name to be set.
  • +

set_intern_status

Sets an intern status and updates the label of the ID

set_new_account

Attempts to set a new bank account on the ID card.

update_in_wallet

Called on COMSIG_ATOM_UPDATED_ICON. Updates the visuals of the wallet this card is in.

update_label

Updates the name based on the card's vars and state.

\ No newline at end of file diff --git a/obj/item/card/id/advanced.html b/obj/item/card/id/advanced.html new file mode 100644 index 0000000000000..0a4a12356e88f --- /dev/null +++ b/obj/item/card/id/advanced.html @@ -0,0 +1 @@ +/obj/item/card/id/advanced - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

advanced

Vars

assigned_icon_stateAn overlay icon state for when the card is assigned to a name. Usually manifests itself as a little scribble to the right of the job icon.
department_color_overrideIf this is set, will manually override the department color for this trim. Intended for admins to VV edit and chameleon ID cards.
department_state_overrideIf this is set, will manually override the department icon state for the trim. Intended for admins to VV edit and chameleon ID cards.
sechud_icon_state_overrideIf this is set, will manually override the trim shown for SecHUDs. Intended for admins to VV edit and chameleon ID cards.
subdepartment_color_overrideIf this is set, will manually override the subdepartment color for this trim. Intended for admins to VV edit and chameleon ID cards.
trim_assignment_overrideIf this is set, will manually override the trim's assignmment as it appears in the crew monitor and elsewhere. Intended for admins to VV edit and chameleon ID cards.
trim_icon_overrideIf this is set, will manually override the icon file for the trim. Intended for admins to VV edit and chameleon ID cards.
trim_state_overrideIf this is set, will manually override the icon state for the trim. Intended for admins to VV edit and chameleon ID cards.

Procs

get_trim_sechud_icon_stateReturns the trim sechud icon state.

Var Details

assigned_icon_state

An overlay icon state for when the card is assigned to a name. Usually manifests itself as a little scribble to the right of the job icon.

department_color_override

If this is set, will manually override the department color for this trim. Intended for admins to VV edit and chameleon ID cards.

department_state_override

If this is set, will manually override the department icon state for the trim. Intended for admins to VV edit and chameleon ID cards.

sechud_icon_state_override

If this is set, will manually override the trim shown for SecHUDs. Intended for admins to VV edit and chameleon ID cards.

subdepartment_color_override

If this is set, will manually override the subdepartment color for this trim. Intended for admins to VV edit and chameleon ID cards.

trim_assignment_override

If this is set, will manually override the trim's assignmment as it appears in the crew monitor and elsewhere. Intended for admins to VV edit and chameleon ID cards.

trim_icon_override

If this is set, will manually override the icon file for the trim. Intended for admins to VV edit and chameleon ID cards.

trim_state_override

If this is set, will manually override the icon state for the trim. Intended for admins to VV edit and chameleon ID cards.

Proc Details

get_trim_sechud_icon_state

Returns the trim sechud icon state.

\ No newline at end of file diff --git a/obj/item/card/id/advanced/chameleon.html b/obj/item/card/id/advanced/chameleon.html new file mode 100644 index 0000000000000..edc31da2daa63 --- /dev/null +++ b/obj/item/card/id/advanced/chameleon.html @@ -0,0 +1 @@ +/obj/item/card/id/advanced/chameleon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chameleon

Vars

anyoneAnti-metagaming protections. If TRUE, anyone can change the ID card's details. If FALSE, only syndicate agents can.
forgedHave we set a custom name and job assignment, or will we use what we're given when we chameleon change?
theft_targetWeak ref to the ID card we're currently attempting to steal access from.

Var Details

anyone

Anti-metagaming protections. If TRUE, anyone can change the ID card's details. If FALSE, only syndicate agents can.

forged

Have we set a custom name and job assignment, or will we use what we're given when we chameleon change?

theft_target

Weak ref to the ID card we're currently attempting to steal access from.

\ No newline at end of file diff --git a/obj/item/card/id/advanced/heretic.html b/obj/item/card/id/advanced/heretic.html new file mode 100644 index 0000000000000..07048665c916e --- /dev/null +++ b/obj/item/card/id/advanced/heretic.html @@ -0,0 +1 @@ +/obj/item/card/id/advanced/heretic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

heretic

An ID card capable of shapeshifting to other IDs given by the Key Keepers Burden knowledge

Vars

fused_idsList of IDs this card consumed
invertedare our created portals inverted? (heretics get sent to a random airlock, crew get sent to the target)
linkThe first door we are linking in the pair, so we can create a portal pair
portal_oneThe first portal in the portal pair, so we can clear it later
portal_twoThe second portal in the portal pair, so we can clear it later

Procs

clear_portal_refsClears portal references
clear_portalsDeletes and nulls our portal pair
make_portalCreates a portal pair at door1 and door2, displays a balloon alert to user
shapeshiftChanges our appearance to the passed ID card

Var Details

fused_ids

List of IDs this card consumed

inverted

are our created portals inverted? (heretics get sent to a random airlock, crew get sent to the target)

The first door we are linking in the pair, so we can create a portal pair

portal_one

The first portal in the portal pair, so we can clear it later

portal_two

The second portal in the portal pair, so we can clear it later

Proc Details

clear_portal_refs

Clears portal references

clear_portals

Deletes and nulls our portal pair

make_portal

Creates a portal pair at door1 and door2, displays a balloon alert to user

shapeshift

Changes our appearance to the passed ID card

\ No newline at end of file diff --git a/obj/item/card/id/advanced/plainclothes.html b/obj/item/card/id/advanced/plainclothes.html new file mode 100644 index 0000000000000..c055106aefc13 --- /dev/null +++ b/obj/item/card/id/advanced/plainclothes.html @@ -0,0 +1 @@ +/obj/item/card/id/advanced/plainclothes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plainclothes

An ID that you can flip with attack_self_secondary, overriding the appearance of the ID (useful for plainclothes detectives for example).

Vars

alt_trimThe trim that we use as plainclothes identity

Var Details

alt_trim

The trim that we use as plainclothes identity

\ No newline at end of file diff --git a/obj/item/card/id/advanced/prisoner.html b/obj/item/card/id/advanced/prisoner.html new file mode 100644 index 0000000000000..d4879d980a227 --- /dev/null +++ b/obj/item/card/id/advanced/prisoner.html @@ -0,0 +1 @@ +/obj/item/card/id/advanced/prisoner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

prisoner

Vars

goalNumber of gulag points required to earn freedom.
pointsNumber of gulag points earned.
time_leftTime left on a card till they can leave.
time_to_assignTime to assign to the card when they pass through the security gate.
timedIf the card has a timer set on it for temporary stay.

Var Details

goal

Number of gulag points required to earn freedom.

points

Number of gulag points earned.

time_left

Time left on a card till they can leave.

time_to_assign

Time to assign to the card when they pass through the security gate.

timed

If the card has a timer set on it for temporary stay.

\ No newline at end of file diff --git a/obj/item/card/mining_point_card.html b/obj/item/card/mining_point_card.html new file mode 100644 index 0000000000000..d47491072d5f6 --- /dev/null +++ b/obj/item/card/mining_point_card.html @@ -0,0 +1 @@ +/obj/item/card/mining_point_card - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mining_point_card

Vars

pointsAmount of points this card contains.

Var Details

points

Amount of points this card contains.

\ No newline at end of file diff --git a/obj/item/cardboard_cutout.html b/obj/item/cardboard_cutout.html new file mode 100644 index 0000000000000..fe165fcb586e7 --- /dev/null +++ b/obj/item/cardboard_cutout.html @@ -0,0 +1,11 @@ +/obj/item/cardboard_cutout - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cardboard_cutout

Vars

deceptiveIf the cutout actually appears as what it portray and not a discolored version
pushed_overIf the cutout is pushed over and has to be righted
starting_cutoutWhat cutout datum we spawn at the start? Uses the name, not the path.
tacticoolReference to the tactical component that should be deleted when the cutout is toppled.

Procs

change_appearancechange_appearance: Changes a skin of the cardboard cutout based on a user's choice
check_menucheck_menu: Checks if we are allowed to interact with a radial menu

Var Details

deceptive

If the cutout actually appears as what it portray and not a discolored version

pushed_over

If the cutout is pushed over and has to be righted

starting_cutout

What cutout datum we spawn at the start? Uses the name, not the path.

tacticool

Reference to the tactical component that should be deleted when the cutout is toppled.

Proc Details

change_appearance

change_appearance: Changes a skin of the cardboard cutout based on a user's choice

+

Arguments:

+
    +
  • crayon The crayon used to change and recolor the cardboard cutout
  • +
  • user The mob choosing a skin of the cardboard cutout
  • +

check_menu

check_menu: Checks if we are allowed to interact with a radial menu

+

Arguments:

+
    +
  • user The mob interacting with a menu
  • +
  • crayon The crayon used to interact with a menu
  • +
\ No newline at end of file diff --git a/obj/item/cardpack.html b/obj/item/cardpack.html new file mode 100644 index 0000000000000..418504e897d1b --- /dev/null +++ b/obj/item/cardpack.html @@ -0,0 +1 @@ +/obj/item/cardpack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cardpack

Vars

card_countThe amount of cards to draw from the rarity table
contains_coinChance of the pack having a coin in it out of 10
guar_rarityThe guaranteed rarity table, acts about the same as the rarity table. it can have as many or as few raritys as you'd like
guaranteed_countThe amount of cards to draw from the guaranteed rarity table
rarity_tableThe rarity table, the set must contain at least one of each
seriesThe card series to look in

Procs

buildCardListWithRarityReturns a list of cards ids of card_cnt weighted by rarity from the pack's tables that have matching series, with gnt_cnt of the guaranteed table.
returnCardsByRarityReturns a list of card datums of the length cardCount that match a random rarity weighted by rarity_table[]

Var Details

card_count

The amount of cards to draw from the rarity table

contains_coin

Chance of the pack having a coin in it out of 10

guar_rarity

The guaranteed rarity table, acts about the same as the rarity table. it can have as many or as few raritys as you'd like

guaranteed_count

The amount of cards to draw from the guaranteed rarity table

rarity_table

The rarity table, the set must contain at least one of each

series

The card series to look in

Proc Details

buildCardListWithRarity

Returns a list of cards ids of card_cnt weighted by rarity from the pack's tables that have matching series, with gnt_cnt of the guaranteed table.

returnCardsByRarity

Returns a list of card datums of the length cardCount that match a random rarity weighted by rarity_table[]

\ No newline at end of file diff --git a/obj/item/cargo_teleporter.html b/obj/item/cargo_teleporter.html new file mode 100644 index 0000000000000..3af1c155c9704 --- /dev/null +++ b/obj/item/cargo_teleporter.html @@ -0,0 +1 @@ +/obj/item/cargo_teleporter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cargo_teleporter

Vars

marker_childrenthe list of markers spawned by this item

Var Details

marker_children

the list of markers spawned by this item

\ No newline at end of file diff --git a/obj/item/cautery.html b/obj/item/cautery.html new file mode 100644 index 0000000000000..edef4be9bf391 --- /dev/null +++ b/obj/item/cautery.html @@ -0,0 +1 @@ +/obj/item/cautery - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cautery

Vars

surgical_tray_overlayHow this looks when placed in a surgical tray

Var Details

surgical_tray_overlay

How this looks when placed in a surgical tray

\ No newline at end of file diff --git a/obj/item/chainsaw.html b/obj/item/chainsaw.html new file mode 100644 index 0000000000000..dc277f89a81c6 --- /dev/null +++ b/obj/item/chainsaw.html @@ -0,0 +1,5 @@ +/obj/item/chainsaw - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chainsaw

Vars

chainsaw_loopThe looping sound for our chainsaw when running

Procs

apply_componentsHandles adding components to the chainsaw. Added in Initialize() +Applies components to the chainsaw. Added as a separate proc to allow for +variance between subtypes

Var Details

chainsaw_loop

The looping sound for our chainsaw when running

Proc Details

apply_components

Handles adding components to the chainsaw. Added in Initialize() +Applies components to the chainsaw. Added as a separate proc to allow for +variance between subtypes

\ No newline at end of file diff --git a/obj/item/chameleon_scanner.html b/obj/item/chameleon_scanner.html new file mode 100644 index 0000000000000..8de07ed09e6c9 --- /dev/null +++ b/obj/item/chameleon_scanner.html @@ -0,0 +1,8 @@ +/obj/item/chameleon_scanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chameleon_scanner

Small handheld chameleon item that allows a user to mimic the outfit of another person quickly.

Vars

scan_cooldownCooldown between scans. +Not entirely intended to be a balance knob, but rather intended to prevent accidentally scanning the same person in quick succession.
scan_rangeRange that we can scan people

Procs

scan_targetAttempts to scan a human's outfit

Var Details

scan_cooldown

Cooldown between scans. +Not entirely intended to be a balance knob, but rather intended to prevent accidentally scanning the same person in quick succession.

scan_range

Range that we can scan people

Proc Details

scan_target

Attempts to scan a human's outfit

+
    +
  • scanned - the atom being scanned.
  • +
  • scanner - the mob doing the scanning
  • +
+

Returns null or a list of paths scanned. Will not return an empty list.

\ No newline at end of file diff --git a/obj/item/changeling/id.html b/obj/item/changeling/id.html new file mode 100644 index 0000000000000..6ed9d77b141b0 --- /dev/null +++ b/obj/item/changeling/id.html @@ -0,0 +1 @@ +/obj/item/changeling/id - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

id

Vars

cached_flat_iconCached flat icon of the ID
hud_iconHUD job icon of the ID

Procs

get_cached_flat_iconReturns cached flat icon of the ID, creates one if there is not one already cached

Var Details

cached_flat_icon

Cached flat icon of the ID

hud_icon

HUD job icon of the ID

Proc Details

get_cached_flat_icon

Returns cached flat icon of the ID, creates one if there is not one already cached

\ No newline at end of file diff --git a/obj/item/chisel.html b/obj/item/chisel.html new file mode 100644 index 0000000000000..81c5f06851840 --- /dev/null +++ b/obj/item/chisel.html @@ -0,0 +1 @@ +/obj/item/chisel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chisel

Other Stuff

Vars

prepared_blockBlock we're currently carving in
sculptingCurrently sculpting
tracked_userIf tracked user moves we stop sculpting

Procs

set_blockTo setup the sculpting target for the carving block
start_sculptingStarts or continues the sculpting action on the carving block material
stop_sculptingCancel the sculpting action

Var Details

prepared_block

Block we're currently carving in

sculpting

Currently sculpting

tracked_user

If tracked user moves we stop sculpting

Proc Details

set_block

To setup the sculpting target for the carving block

start_sculpting

Starts or continues the sculpting action on the carving block material

stop_sculpting

Cancel the sculpting action

\ No newline at end of file diff --git a/obj/item/choice_beacon.html b/obj/item/choice_beacon.html new file mode 100644 index 0000000000000..4fe0f9072991c --- /dev/null +++ b/obj/item/choice_beacon.html @@ -0,0 +1,3 @@ +/obj/item/choice_beacon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

choice_beacon

Vars

company_messageUsed inthe deployment message - What is the company saying with their message, flavor
company_sourceUsed in the deployment message - What company is sending the equipment, flavor
usesHow many uses this item has before being deleted

Procs

can_use_beaconChecks if this mob can use the beacon, returns TRUE if so or FALSE otherwise.
consume_useConsumes a use of the beacon, sending the user a message and creating their item in the process
generate_display_namesReturn the list that will be used in the choice selection. +Entries should be in (type.name = type) fashion.
open_options_menuOpens a menu and allows the mob to pick an option from the list
spawn_optionActually spawns the item selected by the user

Var Details

company_message

Used inthe deployment message - What is the company saying with their message, flavor

company_source

Used in the deployment message - What company is sending the equipment, flavor

uses

How many uses this item has before being deleted

Proc Details

can_use_beacon

Checks if this mob can use the beacon, returns TRUE if so or FALSE otherwise.

consume_use

Consumes a use of the beacon, sending the user a message and creating their item in the process

generate_display_names

Return the list that will be used in the choice selection. +Entries should be in (type.name = type) fashion.

open_options_menu

Opens a menu and allows the mob to pick an option from the list

spawn_option

Actually spawns the item selected by the user

\ No newline at end of file diff --git a/obj/item/cigarette.html b/obj/item/cigarette.html new file mode 100644 index 0000000000000..d54c796bbb899 --- /dev/null +++ b/obj/item/cigarette.html @@ -0,0 +1 @@ +/obj/item/cigarette - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cigarette

Vars

chem_volumeThe capacity for chems this cigarette has.
choke_foreverIf, when glorf'd, we will choke on this cig forever
choke_time_maxWhen choking, what is the maximum amount of time we COULD choke for
cig_smokeThe particle effect of the smoke rising out of the cigarette when lit
cigarette_eatersWhich people ate cigarettes and how many
drag_cooldownThe cooldown that prevents just huffing the entire cigarette at once.
dragtimeHow much time between drags of the cigarette.
how_long_have_we_been_smokinHow long the current mob has been smoking this cigarette
icon_offThe icon state used when this is extinguished.
icon_onThe icon state used when this is lit.
inhand_icon_offThe inhand icon state used when this is extinguished.
inhand_icon_onThe inhand icon state used when this is lit.
list_reagentsThe reagents that this cigarette starts with.
litWhether this cigarette has been lit.
lung_harmHow much damage this deals to the lungs per drag.
mob_smokeThe particle effect of the smoke rising out of the mob when...smoked
smoke_allShould we smoke all of the chems in the cig before it runs out. Splits each puff to take a portion of the overall chems so by the end you'll always have consumed all of the chems inside.
smoketimeHow long the cigarette lasts in seconds
starts_litWhether this cigarette should start lit.
type_buttThe type of cigarette butt spawned when this burns out.

Procs

check_oxygenChecks that we have enough air to smoke
handle_reagentsHandles processing the reagents in the cigarette.
lightLights the cigarette with given flavor text.

Var Details

chem_volume

The capacity for chems this cigarette has.

choke_forever

If, when glorf'd, we will choke on this cig forever

choke_time_max

When choking, what is the maximum amount of time we COULD choke for

cig_smoke

The particle effect of the smoke rising out of the cigarette when lit

cigarette_eaters

Which people ate cigarettes and how many

drag_cooldown

The cooldown that prevents just huffing the entire cigarette at once.

dragtime

How much time between drags of the cigarette.

how_long_have_we_been_smokin

How long the current mob has been smoking this cigarette

icon_off

The icon state used when this is extinguished.

icon_on

The icon state used when this is lit.

inhand_icon_off

The inhand icon state used when this is extinguished.

inhand_icon_on

The inhand icon state used when this is lit.

list_reagents

The reagents that this cigarette starts with.

lit

Whether this cigarette has been lit.

lung_harm

How much damage this deals to the lungs per drag.

mob_smoke

The particle effect of the smoke rising out of the mob when...smoked

smoke_all

Should we smoke all of the chems in the cig before it runs out. Splits each puff to take a portion of the overall chems so by the end you'll always have consumed all of the chems inside.

smoketime

How long the cigarette lasts in seconds

starts_lit

Whether this cigarette should start lit.

type_butt

The type of cigarette butt spawned when this burns out.

Proc Details

check_oxygen

Checks that we have enough air to smoke

handle_reagents

Handles processing the reagents in the cigarette.

light

Lights the cigarette with given flavor text.

\ No newline at end of file diff --git a/obj/item/cigarette/pipe.html b/obj/item/cigarette/pipe.html new file mode 100644 index 0000000000000..b4febef6daa35 --- /dev/null +++ b/obj/item/cigarette/pipe.html @@ -0,0 +1 @@ +/obj/item/cigarette/pipe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pipe

Vars

packeditemname of the stuff packed inside this pipe

Var Details

packeditem

name of the stuff packed inside this pipe

\ No newline at end of file diff --git a/obj/item/circuit_component.html b/obj/item/circuit_component.html new file mode 100644 index 0000000000000..9cb60f198cf8a --- /dev/null +++ b/obj/item/circuit_component.html @@ -0,0 +1,89 @@ +/obj/item/circuit_component - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Integrated Circuit Component

A component that performs a function when given an input

+

Can be attached to an integrated circuitboard, where it can then +be connected between other components to provide an output or to receive +an input. This is the base type of all components

Vars

categoryThe category of the component in the UI
circuit_flagsThe flags of the circuit to control basic generalised behaviour.
circuit_sizeDetermines the amount of space this circuit occupies in an integrated circuit.
display_nameThe name of the component shown on the UI
energy_usage_per_inputThe energy usage whenever this component receives an input.
input_portsA list that contains the components the input ports on this component +Used to connect between the ports
output_portsA list that contains the outpurt ports on this component +Used to connect between the ports
parentThe integrated_circuit that this component is attached to.
rel_xUsed to determine the x position of the component within the UI
rel_yUsed to determine the y position of the component within the UI
removableWhether the component is removable or not. Only affects user UI
required_shellsDefines which shells support this component. Only used as an informational guide, does not restrict placing these components in circuits.
trigger_inputGeneric trigger input for triggering this component
ui_buttonsThe UI buttons of this circuit component. An assoc list that has this format: "button_icon" = "action_name"
ui_colorThe colour this circuit component appears in the UI

Procs

add_input_portAdds an input port and returns it
add_option_portExtension of add_input_port. Simplifies the code to make an option port to reduce boilerplate
add_output_portAdds an output port and returns it
add_toCalled when this component is about to be added to an integrated_circuit.
create_table_noticesCreates a table UI notice entry to be used in get_ui_notices()
create_ui_noticeCreates a UI notice entry to be used in get_ui_notices()
disconnectDisconnects a component from other components
get_locationCalled when trying to get the physical location of this object
get_ui_noticesGets the UI notices to be displayed on the CircuitInfo panel.
input_receivedCalled from trigger_component. General component behaviour should go in this proc. This is the default proc that is called if no trigger proc is specified.
load_data_from_listLoads data from a list
populate_optionsCalled when the option ports should be set up
populate_portsCalled when the rest of the ports should be set up
pre_input_receivedCalled before input_received and should_receive_input. Used to perform behaviour that shouldn't care whether the input should be received or not.
register_shellCalled when a shell is registered from the component/the component is added to a circuit.
register_usb_parentCalled when a circuit component is added to an object with a USB port.
remove_input_portRemoves an input port and deletes it. This will not cleanup any references made by derivatives of the circuit component
remove_output_portRemoves an output port and deletes it. This will not cleanup any references made by derivatives of the circuit component
removed_fromCalled when this component is removed from an integrated_circuit.
save_data_to_listSaves data to a list. Shouldn't be used unless you are quite literally saving the data of a component to a list. Input value is the list to save the data to
send_ntnet_dataCalled when a circuit component requests to send Ntnet data signal.
should_receive_inputCalled whether this circuit component should receive an input. +If this returns false, the proc that is supposed to be triggered will not be called and an output signal will not be sent. +This is to only return false if flow of execution should be stopped because something bad has happened (e.g. no power) +Returning no value in input_received() is not an issue because it means flow of execution will continue even if the component failed to execute properly.
trigger_componentCalled whenever an input is received from one of the ports.
ui_perform_actionCalled when a special button is pressed on this component in the UI.
unregister_shellCalled when a shell is unregistered from the component/the component is removed from a circuit.
unregister_usb_parentCalled when a circuit component is removed from an object with a USB port.

Var Details

category

The category of the component in the UI

circuit_flags

The flags of the circuit to control basic generalised behaviour.

circuit_size

Determines the amount of space this circuit occupies in an integrated circuit.

display_name

The name of the component shown on the UI

energy_usage_per_input

The energy usage whenever this component receives an input.

input_ports

A list that contains the components the input ports on this component +Used to connect between the ports

output_ports

A list that contains the outpurt ports on this component +Used to connect between the ports

parent

The integrated_circuit that this component is attached to.

rel_x

Used to determine the x position of the component within the UI

rel_y

Used to determine the y position of the component within the UI

removable

Whether the component is removable or not. Only affects user UI

required_shells

Defines which shells support this component. Only used as an informational guide, does not restrict placing these components in circuits.

trigger_input

Generic trigger input for triggering this component

ui_buttons

The UI buttons of this circuit component. An assoc list that has this format: "button_icon" = "action_name"

ui_color

The colour this circuit component appears in the UI

Proc Details

add_input_port

Adds an input port and returns it

+

Arguments:

+
    +
  • name - The name of the input port
  • +
  • type - The datatype it handles
  • +
  • trigger - Whether this input port triggers an update on the component when updated.
  • +

add_option_port

Extension of add_input_port. Simplifies the code to make an option port to reduce boilerplate

add_output_port

Adds an output port and returns it

+

Arguments:

+
    +
  • name - The name of the output port
  • +
  • type - The datatype it handles.
  • +

add_to

Called when this component is about to be added to an integrated_circuit.

create_table_notices

Creates a table UI notice entry to be used in get_ui_notices()

+

Returns a list that can then be added to the return list in get_ui_notices() +Used by components to list their available columns. Recommended to use at the end of get_ui_notices()

create_ui_notice

Creates a UI notice entry to be used in get_ui_notices()

+

Returns a list that can then be added to the return list in get_ui_notices()

disconnect

Disconnects a component from other components

+

Disconnects both the input and output ports of the component

get_location

Called when trying to get the physical location of this object

get_ui_notices

Gets the UI notices to be displayed on the CircuitInfo panel.

+

Returns a list of buttons in the following format +list( +"icon" = ICON(string) +"content" = CONTENT(string) +"color" = COLOR(string, not a hex) +)

input_received

Called from trigger_component. General component behaviour should go in this proc. This is the default proc that is called if no trigger proc is specified.

+

Return value indicates that the circuit should not send an output signal. +Arguments:

+
    +
  • port - Can be null. The port that sent the input
  • +
  • return_values - Only defined if the component is receiving an input due to instant execution. Contains the values to be returned once execution has stopped.
  • +

load_data_from_list

Loads data from a list

populate_options

Called when the option ports should be set up

populate_ports

Called when the rest of the ports should be set up

pre_input_received

Called before input_received and should_receive_input. Used to perform behaviour that shouldn't care whether the input should be received or not.

register_shell

Called when a shell is registered from the component/the component is added to a circuit.

+

Register all signals here on the shell. +Arguments:

+
    +
  • shell - Shell being registered
  • +

register_usb_parent

Called when a circuit component is added to an object with a USB port.

+

Arguments:

+
    +
  • shell - The object that USB cables can connect to
  • +

remove_input_port

Removes an input port and deletes it. This will not cleanup any references made by derivatives of the circuit component

+

Arguments:

+
    +
  • input_port - The input port to remove.
  • +

remove_output_port

Removes an output port and deletes it. This will not cleanup any references made by derivatives of the circuit component

+

Arguments:

+
    +
  • output_port - The output port to remove.
  • +

removed_from

Called when this component is removed from an integrated_circuit.

save_data_to_list

Saves data to a list. Shouldn't be used unless you are quite literally saving the data of a component to a list. Input value is the list to save the data to

send_ntnet_data

Called when a circuit component requests to send Ntnet data signal.

+

Arguments:

+
    +
  • port - The required list port needed by the Ntnet receive
  • +
  • key - The encryption key
  • +
  • signal_type - The signal type used for sending this global signal (optional, default is COMSIG_GLOB_CIRCUIT_NTNET_DATA_SENT)
  • +

should_receive_input

Called whether this circuit component should receive an input. +If this returns false, the proc that is supposed to be triggered will not be called and an output signal will not be sent. +This is to only return false if flow of execution should be stopped because something bad has happened (e.g. no power) +Returning no value in input_received() is not an issue because it means flow of execution will continue even if the component failed to execute properly.

+

Return value indicates whether or not +Arguments:

+
    +
  • port - Can be null. The port that sent the input
  • +

trigger_component

Called whenever an input is received from one of the ports.

+

Return value indicates whether the trigger was successful or not. +Arguments:

+
    +
  • port - Can be null. The port that sent the input
  • +
  • return_values - Only defined if the component is receiving an input due to instant execution. Contains the values to be returned once execution has stopped.
  • +

ui_perform_action

Called when a special button is pressed on this component in the UI.

+

Arguments:

+
    +
  • user - Interacting mob
  • +
  • action - A string for which action is being performed. No parameters passed because it's only a button press.
  • +

unregister_shell

Called when a shell is unregistered from the component/the component is removed from a circuit.

+

Unregister all signals here on the shell. +Arguments:

+
    +
  • shell - Shell being unregistered
  • +

unregister_usb_parent

Called when a circuit component is removed from an object with a USB port.

+

Arguments:

+
    +
  • shell - The object that USB cables can connect to
  • +
\ No newline at end of file diff --git a/obj/item/circuit_component/air_alarm_general.html b/obj/item/circuit_component/air_alarm_general.html new file mode 100644 index 0000000000000..9f180576f138b --- /dev/null +++ b/obj/item/circuit_component/air_alarm_general.html @@ -0,0 +1 @@ +/obj/item/circuit_component/air_alarm_general - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

air_alarm_general

Vars

current_modeThe current set mode
disable_fire_alarmDisables the fire alarm
enable_fire_alarmEnables the fire alarm
fire_alarm_enabledWhether the fire alarm is enabled or not
modeThe mode to set the air alarm to
set_modeThe trigger to set the mode

Var Details

current_mode

The current set mode

disable_fire_alarm

Disables the fire alarm

enable_fire_alarm

Enables the fire alarm

fire_alarm_enabled

Whether the fire alarm is enabled or not

mode

The mode to set the air alarm to

set_mode

The trigger to set the mode

\ No newline at end of file diff --git a/obj/item/circuit_component/air_alarm_scrubbers.html b/obj/item/circuit_component/air_alarm_scrubbers.html new file mode 100644 index 0000000000000..785ee70c53ebc --- /dev/null +++ b/obj/item/circuit_component/air_alarm_scrubbers.html @@ -0,0 +1 @@ +/obj/item/circuit_component/air_alarm_scrubbers - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

air_alarm_scrubbers

Vars

disableDisables the scrubber
disable_extended_rangeDisables extended range
disable_siphonDisables siphoning
enableEnables the scrubber
enable_extended_rangeEnables extended range
enable_siphonEnables siphoning
enabledWhether the scrubber is enabled or not
filteringInformation based on what the scrubber is filtering. Outputs null if the scrubber is siphoning
gas_filterGas to filter using the scrubber
is_siphoningWhether the scrubber is siphoning or not
request_updateRequests an update of the data
set_gas_filterSets the filter
update_receivedSent when an update is received

Var Details

disable

Disables the scrubber

disable_extended_range

Disables extended range

disable_siphon

Disables siphoning

enable

Enables the scrubber

enable_extended_range

Enables extended range

enable_siphon

Enables siphoning

enabled

Whether the scrubber is enabled or not

filtering

Information based on what the scrubber is filtering. Outputs null if the scrubber is siphoning

gas_filter

Gas to filter using the scrubber

is_siphoning

Whether the scrubber is siphoning or not

request_update

Requests an update of the data

set_gas_filter

Sets the filter

update_received

Sent when an update is received

\ No newline at end of file diff --git a/obj/item/circuit_component/air_alarm_vents.html b/obj/item/circuit_component/air_alarm_vents.html new file mode 100644 index 0000000000000..2be80754ea781 --- /dev/null +++ b/obj/item/circuit_component/air_alarm_vents.html @@ -0,0 +1 @@ +/obj/item/circuit_component/air_alarm_vents - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

air_alarm_vents

Vars

current_external_pressureReported external pressure
current_internal_pressureReported internal pressure
disableDisables the vent
disable_externalDisables external
disable_internalDisables internal
disable_siphonDisables siphoning
enableEnables the vent
enable_externalEnables external
enable_internalEnables internal
enable_siphonEnables siphoning
enabledWhether the scrubber is enabled or not
external_onWhether external pressure is on or not
external_pressureExternal target pressure
internal_onWhether internal pressure is on or not
internal_pressureInternal target pressure
is_siphoningWhether the scrubber is siphoning or not
request_updateRequests an update of the data
update_receivedSent when an update is received

Var Details

current_external_pressure

Reported external pressure

current_internal_pressure

Reported internal pressure

disable

Disables the vent

disable_external

Disables external

disable_internal

Disables internal

disable_siphon

Disables siphoning

enable

Enables the vent

enable_external

Enables external

enable_internal

Enables internal

enable_siphon

Enables siphoning

enabled

Whether the scrubber is enabled or not

external_on

Whether external pressure is on or not

external_pressure

External target pressure

internal_on

Whether internal pressure is on or not

internal_pressure

Internal target pressure

is_siphoning

Whether the scrubber is siphoning or not

request_update

Requests an update of the data

update_received

Sent when an update is received

\ No newline at end of file diff --git a/obj/item/circuit_component/airlock.html b/obj/item/circuit_component/airlock.html new file mode 100644 index 0000000000000..e02aa6c134397 --- /dev/null +++ b/obj/item/circuit_component/airlock.html @@ -0,0 +1 @@ +/obj/item/circuit_component/airlock - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

airlock

Vars

attached_airlockThe shell, if it is an airlock.
boltBolts the airlock (if possible)
boltedCalled when the airlock is bolted
closeCloses the airlock (if possible)
closedCalled when the airlock is closed
is_boltedContains whether the airlock is bolted or not
is_openContains whether the airlock is open or not
openOpens the airlock (if possible)
openedCalled when the airlock is opened.
unboltUnbolts the airlock (if possible)
unboltedCalled when the airlock is unbolted

Var Details

attached_airlock

The shell, if it is an airlock.

bolt

Bolts the airlock (if possible)

bolted

Called when the airlock is bolted

close

Closes the airlock (if possible)

closed

Called when the airlock is closed

is_bolted

Contains whether the airlock is bolted or not

is_open

Contains whether the airlock is open or not

open

Opens the airlock (if possible)

opened

Called when the airlock is opened.

unbolt

Unbolts the airlock (if possible)

unbolted

Called when the airlock is unbolted

\ No newline at end of file diff --git a/obj/item/circuit_component/airlock_access_event.html b/obj/item/circuit_component/airlock_access_event.html new file mode 100644 index 0000000000000..6535397401481 --- /dev/null +++ b/obj/item/circuit_component/airlock_access_event.html @@ -0,0 +1 @@ +/obj/item/circuit_component/airlock_access_event - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

airlock_access_event

Vars

accessing_entityThe person trying to open the airlock.
attached_airlockThe shell, if it is an airlock.
event_triggeredThe signal sent when this event is triggered
open_airlockTells the event to open the airlock.

Var Details

accessing_entity

The person trying to open the airlock.

attached_airlock

The shell, if it is an airlock.

event_triggered

The signal sent when this event is triggered

open_airlock

Tells the event to open the airlock.

\ No newline at end of file diff --git a/obj/item/circuit_component/arctan2.html b/obj/item/circuit_component/arctan2.html new file mode 100644 index 0000000000000..5847b100b89a5 --- /dev/null +++ b/obj/item/circuit_component/arctan2.html @@ -0,0 +1 @@ +/obj/item/circuit_component/arctan2 - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Arctangent 2 function

A variant of arctan. When given a deltaX and deltaY, returns the angle. I will blow you out of the sky

Vars

input_port_xThe input port for the x-offset
input_port_yThe input port for the y-offset
outputThe result from the output

Var Details

input_port_x

The input port for the x-offset

input_port_y

The input port for the y-offset

output

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/arithmetic.html b/obj/item/circuit_component/arithmetic.html new file mode 100644 index 0000000000000..709eaa54b5de4 --- /dev/null +++ b/obj/item/circuit_component/arithmetic.html @@ -0,0 +1,2 @@ +/obj/item/circuit_component/arithmetic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Arithmetic Component

General arithmetic unit with add/sub/mult/divide capabilities +This one only works with numbers.

Vars

outputThe result from the output

Var Details

output

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/arrest_console_arrest.html b/obj/item/circuit_component/arrest_console_arrest.html new file mode 100644 index 0000000000000..3993f3f4c4f7f --- /dev/null +++ b/obj/item/circuit_component/arrest_console_arrest.html @@ -0,0 +1 @@ +/obj/item/circuit_component/arrest_console_arrest - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

arrest_console_arrest

Vars

new_statusSets the new status of the targets.
new_status_setReturns the new status set once the setting is complete. Good for locating errors.
on_failSends a signal on failure
targetsThe targets to set the status of.

Var Details

new_status

Sets the new status of the targets.

new_status_set

Returns the new status set once the setting is complete. Good for locating errors.

on_fail

Sends a signal on failure

targets

The targets to set the status of.

\ No newline at end of file diff --git a/obj/item/circuit_component/arrest_console_data.html b/obj/item/circuit_component/arrest_console_data.html new file mode 100644 index 0000000000000..17bcddcae126a --- /dev/null +++ b/obj/item/circuit_component/arrest_console_data.html @@ -0,0 +1 @@ +/obj/item/circuit_component/arrest_console_data - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

arrest_console_data

Security circuit component

Vars

on_failSends a signal on failure
recordsThe records retrieved

Var Details

on_fail

Sends a signal on failure

records

The records retrieved

\ No newline at end of file diff --git a/obj/item/circuit_component/assoc_literal.html b/obj/item/circuit_component/assoc_literal.html new file mode 100644 index 0000000000000..d1ac10243a464 --- /dev/null +++ b/obj/item/circuit_component/assoc_literal.html @@ -0,0 +1 @@ +/obj/item/circuit_component/assoc_literal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Assoc List Literal Component

Return an associative list literal.

Vars

entry_portsThe inputs used to create the list
key_portsThe inputs used to create the list
list_optionsThe list type
list_outputThe result from the output

Var Details

entry_ports

The inputs used to create the list

key_ports

The inputs used to create the list

list_options

The list type

list_output

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/atmos_meter.html b/obj/item/circuit_component/atmos_meter.html new file mode 100644 index 0000000000000..2955cb1f9dacf --- /dev/null +++ b/obj/item/circuit_component/atmos_meter.html @@ -0,0 +1 @@ +/obj/item/circuit_component/atmos_meter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

atmos_meter

Vars

connected_meterThe component parent object
pressurePressure of the pipenet
request_dataSignals the circuit to retrieve the pipenet's current pressure and temperature
temperatureTemperature of the pipenet

Var Details

connected_meter

The component parent object

pressure

Pressure of the pipenet

request_data

Signals the circuit to retrieve the pipenet's current pressure and temperature

temperature

Temperature of the pipenet

\ No newline at end of file diff --git a/obj/item/circuit_component/atmos_pump.html b/obj/item/circuit_component/atmos_pump.html new file mode 100644 index 0000000000000..d3be2fd94c738 --- /dev/null +++ b/obj/item/circuit_component/atmos_pump.html @@ -0,0 +1 @@ +/obj/item/circuit_component/atmos_pump - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

atmos_pump

Vars

connected_pumpThe component parent object
input_pressurePressure of the input port
input_temperatureTemperature of the input port
is_activeWhether the pump is currently active
offDeactivate the pump
onActivate the pump
output_pressurePressure of the output port
output_temperatureTemperature of the output port
pressure_valueSet the target pressure of the pump
request_dataSignals the circuit to retrieve the pump's current pressure and temperature
turned_offSend a signal when the pump is turned off
turned_onSend a signal when the pump is turned on

Var Details

connected_pump

The component parent object

input_pressure

Pressure of the input port

input_temperature

Temperature of the input port

is_active

Whether the pump is currently active

off

Deactivate the pump

on

Activate the pump

output_pressure

Pressure of the output port

output_temperature

Temperature of the output port

pressure_value

Set the target pressure of the pump

request_data

Signals the circuit to retrieve the pump's current pressure and temperature

turned_off

Send a signal when the pump is turned off

turned_on

Send a signal when the pump is turned on

\ No newline at end of file diff --git a/obj/item/circuit_component/atmos_volume_pump.html b/obj/item/circuit_component/atmos_volume_pump.html new file mode 100644 index 0000000000000..cf2b45175e760 --- /dev/null +++ b/obj/item/circuit_component/atmos_volume_pump.html @@ -0,0 +1 @@ +/obj/item/circuit_component/atmos_volume_pump - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

atmos_volume_pump

Vars

connected_pumpThe component parent object
input_pressurePressure of the input port
input_temperatureTemperature of the input port
is_activeWhether the pump is currently active
offDeactivate the pump
onActivate the pump
output_pressurePressure of the output port
output_temperatureTemperature of the output port
request_dataSignals the circuit to retrieve the pump's current pressure and temperature
transfer_rateSet the transfer rate of the pump
turned_offSend a signal when the pump is turned off
turned_onSend a signal when the pump is turned on

Var Details

connected_pump

The component parent object

input_pressure

Pressure of the input port

input_temperature

Temperature of the input port

is_active

Whether the pump is currently active

off

Deactivate the pump

on

Activate the pump

output_pressure

Pressure of the output port

output_temperature

Temperature of the output port

request_data

Signals the circuit to retrieve the pump's current pressure and temperature

transfer_rate

Set the transfer rate of the pump

turned_off

Send a signal when the pump is turned off

turned_on

Send a signal when the pump is turned on

\ No newline at end of file diff --git a/obj/item/circuit_component/bci_core.html b/obj/item/circuit_component/bci_core.html new file mode 100644 index 0000000000000..e2bfb69a425bf --- /dev/null +++ b/obj/item/circuit_component/bci_core.html @@ -0,0 +1 @@ +/obj/item/circuit_component/bci_core - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bci_core

Vars

charge_actionA reference to the action button to look at charge/get info

Var Details

charge_action

A reference to the action button to look at charge/get info

\ No newline at end of file diff --git a/obj/item/circuit_component/begin_animation.html b/obj/item/circuit_component/begin_animation.html new file mode 100644 index 0000000000000..3b9bac6a1d48d --- /dev/null +++ b/obj/item/circuit_component/begin_animation.html @@ -0,0 +1 @@ +/obj/item/circuit_component/begin_animation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

begin_animation

Vars

animate_eventCalled when performing the animation.
animation_loopsThe amount of times this animation will loop
atom_or_filterWhether we are animating an atom or a filter on the atom
filter_targetThe filter to animate
parallelUsed to determine if the animation runs in parallel or not.
stop_all_animationsCalled to stop all animations on this object
targetThe target to animate

Var Details

animate_event

Called when performing the animation.

animation_loops

The amount of times this animation will loop

atom_or_filter

Whether we are animating an atom or a filter on the atom

filter_target

The filter to animate

parallel

Used to determine if the animation runs in parallel or not.

stop_all_animations

Called to stop all animations on this object

target

The target to animate

\ No newline at end of file diff --git a/obj/item/circuit_component/binary_conversion.html b/obj/item/circuit_component/binary_conversion.html new file mode 100644 index 0000000000000..8d5b7c47059f4 --- /dev/null +++ b/obj/item/circuit_component/binary_conversion.html @@ -0,0 +1 @@ +/obj/item/circuit_component/binary_conversion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Binary Conversion Component

Return an array of binary digits from a number input.

Vars

bit_arrayMany binary digits
numberOne number

Var Details

bit_array

Many binary digits

number

One number

\ No newline at end of file diff --git a/obj/item/circuit_component/bot.html b/obj/item/circuit_component/bot.html new file mode 100644 index 0000000000000..da7886a9262ae --- /dev/null +++ b/obj/item/circuit_component/bot.html @@ -0,0 +1 @@ +/obj/item/circuit_component/bot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bot

Vars

entityThe user who used the bot
signalCalled when attack_hand is called on the shell.

Var Details

entity

The user who used the bot

signal

Called when attack_hand is called on the shell.

\ No newline at end of file diff --git a/obj/item/circuit_component/bot_circuit.html b/obj/item/circuit_component/bot_circuit.html new file mode 100644 index 0000000000000..f1ac0d5b93c1a --- /dev/null +++ b/obj/item/circuit_component/bot_circuit.html @@ -0,0 +1 @@ +/obj/item/circuit_component/bot_circuit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bot_circuit

Vars

move_delayDelay between each movement
northThe inputs to allow for the drone to move

Var Details

move_delay

Delay between each movement

north

The inputs to allow for the drone to move

\ No newline at end of file diff --git a/obj/item/circuit_component/camera.html b/obj/item/circuit_component/camera.html new file mode 100644 index 0000000000000..d751ca68479b8 --- /dev/null +++ b/obj/item/circuit_component/camera.html @@ -0,0 +1 @@ +/obj/item/circuit_component/camera - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

camera

Vars

adjust_size_xAdjusts the picture_size_x variable of the camera.
adjust_size_yIdem but for picture_size_y.
cameraThe camera this circut is attached to.
photographed_atomThe atom that was photographed from either user click or trigger input.
picture_coord_xIf the above is unset, these coordinates will be used.
picture_takenThe item that was added/removed.
picture_targetIf set, the trigger input will target this atom.

Var Details

adjust_size_x

Adjusts the picture_size_x variable of the camera.

adjust_size_y

Idem but for picture_size_y.

camera

The camera this circut is attached to.

photographed_atom

The atom that was photographed from either user click or trigger input.

picture_coord_x

If the above is unset, these coordinates will be used.

picture_taken

The item that was added/removed.

picture_target

If set, the trigger input will target this atom.

\ No newline at end of file diff --git a/obj/item/circuit_component/cell_charge.html b/obj/item/circuit_component/cell_charge.html new file mode 100644 index 0000000000000..97f03a1df0743 --- /dev/null +++ b/obj/item/circuit_component/cell_charge.html @@ -0,0 +1 @@ +/obj/item/circuit_component/cell_charge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Cell Charge Component

Allows for reading of the max/current charge of the cell in an integrated circuit.

Vars

max_chargemax and current charge for the cell

Var Details

max_charge

max and current charge for the cell

\ No newline at end of file diff --git a/obj/item/circuit_component/clock.html b/obj/item/circuit_component/clock.html new file mode 100644 index 0000000000000..cf7ccf8499c5e --- /dev/null +++ b/obj/item/circuit_component/clock.html @@ -0,0 +1,3 @@ +/obj/item/circuit_component/clock - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Clock Component

Fires every tick of the circuit timer SS

Vars

onWhether the clock is on or not
signalThe signal from this clock component

Procs

start_processAdds the component to the SSclock_component process list
stop_processRemoves the component to the SSclock_component process list

Var Details

on

Whether the clock is on or not

signal

The signal from this clock component

Proc Details

start_process

Adds the component to the SSclock_component process list

+

Starts ticking to send signals between periods of time

stop_process

Removes the component to the SSclock_component process list

+

Signals stop getting sent.

\ No newline at end of file diff --git a/obj/item/circuit_component/compact_remote.html b/obj/item/circuit_component/compact_remote.html new file mode 100644 index 0000000000000..b567c6e937933 --- /dev/null +++ b/obj/item/circuit_component/compact_remote.html @@ -0,0 +1 @@ +/obj/item/circuit_component/compact_remote - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

compact_remote

Vars

entityThe user who used the bot
signalCalled when attack_self is called on the shell.

Procs

send_triggerCalled when the shell item is used in hand.

Var Details

entity

The user who used the bot

signal

Called when attack_self is called on the shell.

Proc Details

send_trigger

Called when the shell item is used in hand.

\ No newline at end of file diff --git a/obj/item/circuit_component/compare.html b/obj/item/circuit_component/compare.html new file mode 100644 index 0000000000000..d3cf6950a6050 --- /dev/null +++ b/obj/item/circuit_component/compare.html @@ -0,0 +1 @@ +/obj/item/circuit_component/compare - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Compare Component

Abstract component to build conditional components

Vars

compareThe trigger for the true/false signals
resultThe result from the output
trueSignals sent on compare

Procs

do_comparisonsDo the comparisons and return a result
populate_custom_portsUsed by derivatives to load their own ports in for custom use.

Var Details

compare

The trigger for the true/false signals

result

The result from the output

true

Signals sent on compare

Proc Details

do_comparisons

Do the comparisons and return a result

populate_custom_ports

Used by derivatives to load their own ports in for custom use.

\ No newline at end of file diff --git a/obj/item/circuit_component/compare/access.html b/obj/item/circuit_component/compare/access.html new file mode 100644 index 0000000000000..d0cfbd7d2c664 --- /dev/null +++ b/obj/item/circuit_component/compare/access.html @@ -0,0 +1 @@ +/obj/item/circuit_component/compare/access - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

access

Vars

check_anyWhether to check for all or any of the required accesses
required_accessesA list of the accesses required to return true
subject_accessesA list of the accesses to check

Var Details

check_any

Whether to check for all or any of the required accesses

required_accesses

A list of the accesses required to return true

subject_accesses

A list of the accesses to check

\ No newline at end of file diff --git a/obj/item/circuit_component/compare/comparison.html b/obj/item/circuit_component/compare/comparison.html new file mode 100644 index 0000000000000..a631ed754b518 --- /dev/null +++ b/obj/item/circuit_component/compare/comparison.html @@ -0,0 +1 @@ +/obj/item/circuit_component/compare/comparison - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Comparison Component

Compares two objects

Vars

first_portFirst value to compare with the second value
second_portSecond value to compare with the first value

Var Details

first_port

First value to compare with the second value

second_port

Second value to compare with the first value

\ No newline at end of file diff --git a/obj/item/circuit_component/compare/health_state.html b/obj/item/circuit_component/compare/health_state.html new file mode 100644 index 0000000000000..01063e60e486e --- /dev/null +++ b/obj/item/circuit_component/compare/health_state.html @@ -0,0 +1 @@ +/obj/item/circuit_component/compare/health_state - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Compare Health State Component

Returns true when state matches entity.

Vars

input_portThe input port
state_optionCompare state option

Var Details

input_port

The input port

state_option

Compare state option

\ No newline at end of file diff --git a/obj/item/circuit_component/compare/logic.html b/obj/item/circuit_component/compare/logic.html new file mode 100644 index 0000000000000..3f9b66008d6ef --- /dev/null +++ b/obj/item/circuit_component/compare/logic.html @@ -0,0 +1 @@ +/obj/item/circuit_component/compare/logic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Logic Component

General logic unit with AND OR capabilities

Vars

comparison_portsPorts to do comparisons with

Var Details

comparison_ports

Ports to do comparisons with

\ No newline at end of file diff --git a/obj/item/circuit_component/compare/toggle.html b/obj/item/circuit_component/compare/toggle.html new file mode 100644 index 0000000000000..f688fa12222a9 --- /dev/null +++ b/obj/item/circuit_component/compare/toggle.html @@ -0,0 +1 @@ +/obj/item/circuit_component/compare/toggle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Toggle Component

Does a toggle between true and false on trigger

Vars

toggle_and_compareA signal to toggle and return the current state
toggle_setA signal to reset the toggle back to 0

Var Details

toggle_and_compare

A signal to toggle and return the current state

toggle_set

A signal to reset the toggle back to 0

\ No newline at end of file diff --git a/obj/item/circuit_component/compare/typecheck.html b/obj/item/circuit_component/compare/typecheck.html new file mode 100644 index 0000000000000..9a6abe59c34e0 --- /dev/null +++ b/obj/item/circuit_component/compare/typecheck.html @@ -0,0 +1 @@ +/obj/item/circuit_component/compare/typecheck - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Typecheck Component

Checks the type of a value

Vars

thing_to_checkObject to typecheck

Var Details

thing_to_check

Object to typecheck

\ No newline at end of file diff --git a/obj/item/circuit_component/concat.html b/obj/item/circuit_component/concat.html new file mode 100644 index 0000000000000..d261f054caa74 --- /dev/null +++ b/obj/item/circuit_component/concat.html @@ -0,0 +1 @@ +/obj/item/circuit_component/concat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Concatenate Component

General string concatenation component. Puts strings together.

Vars

outputThe result from the output

Var Details

output

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/concat_list.html b/obj/item/circuit_component/concat_list.html new file mode 100644 index 0000000000000..7a36afd4c6bd5 --- /dev/null +++ b/obj/item/circuit_component/concat_list.html @@ -0,0 +1 @@ +/obj/item/circuit_component/concat_list - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Concat List Component

Concatenates a list with a separator

Vars

list_portThe input port
outputThe result from the output
separatorThe seperator

Var Details

list_port

The input port

output

The result from the output

separator

The seperator

\ No newline at end of file diff --git a/obj/item/circuit_component/controller.html b/obj/item/circuit_component/controller.html new file mode 100644 index 0000000000000..5023233103ccb --- /dev/null +++ b/obj/item/circuit_component/controller.html @@ -0,0 +1 @@ +/obj/item/circuit_component/controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

controller

Vars

entityThe entity output
signalThe three separate buttons that are called in attack_hand on the shell.

Procs

send_alternate_signalCalled when the shell item is alt-clicked
send_right_signalCalled when the shell item is right-clicked in active hand
send_triggerCalled when the shell item is used in hand

Var Details

entity

The entity output

signal

The three separate buttons that are called in attack_hand on the shell.

Proc Details

send_alternate_signal

Called when the shell item is alt-clicked

send_right_signal

Called when the shell item is right-clicked in active hand

send_trigger

Called when the shell item is used in hand

\ No newline at end of file diff --git a/obj/item/circuit_component/conveyor_switch.html b/obj/item/circuit_component/conveyor_switch.html new file mode 100644 index 0000000000000..b3651b14a172b --- /dev/null +++ b/obj/item/circuit_component/conveyor_switch.html @@ -0,0 +1 @@ +/obj/item/circuit_component/conveyor_switch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

conveyor_switch

Vars

attached_switchThe switch this conveyor switch component is attached to.
directionThe current direction of the conveyor attached to the component.
stopDirection input ports.

Var Details

attached_switch

The switch this conveyor switch component is attached to.

direction

The current direction of the conveyor attached to the component.

stop

Direction input ports.

\ No newline at end of file diff --git a/obj/item/circuit_component/decimal_conversion.html b/obj/item/circuit_component/decimal_conversion.html new file mode 100644 index 0000000000000..96ee1f512bd49 --- /dev/null +++ b/obj/item/circuit_component/decimal_conversion.html @@ -0,0 +1 @@ +/obj/item/circuit_component/decimal_conversion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Decimal Conversion Component

Return a number from an array of binary inputs.

Vars

bit_arrayMany binary digits
numberOne number

Var Details

bit_array

Many binary digits

number

One number

\ No newline at end of file diff --git a/obj/item/circuit_component/delay.html b/obj/item/circuit_component/delay.html new file mode 100644 index 0000000000000..b97499f98e890 --- /dev/null +++ b/obj/item/circuit_component/delay.html @@ -0,0 +1 @@ +/obj/item/circuit_component/delay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Delay Component

Delays a signal by a specified duration.

Vars

delay_amountAmount to delay by
interruptInterrupts the delay before it fires
outputThe output of the signal
triggerInput signal to fire the delay

Var Details

delay_amount

Amount to delay by

interrupt

Interrupts the delay before it fires

output

The output of the signal

trigger

Input signal to fire the delay

\ No newline at end of file diff --git a/obj/item/circuit_component/digital_valve.html b/obj/item/circuit_component/digital_valve.html new file mode 100644 index 0000000000000..33c7828c8d343 --- /dev/null +++ b/obj/item/circuit_component/digital_valve.html @@ -0,0 +1 @@ +/obj/item/circuit_component/digital_valve - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

digital_valve

Vars

closeCloses the digital valve
closedSent when the valve is closed
is_openWhether the valve is currently open
openOpens the digital valve
openedSent when the valve is opened

Var Details

close

Closes the digital valve

closed

Sent when the valve is closed

is_open

Whether the valve is currently open

open

Opens the digital valve

opened

Sent when the valve is opened

\ No newline at end of file diff --git a/obj/item/circuit_component/direction.html b/obj/item/circuit_component/direction.html new file mode 100644 index 0000000000000..dad8d3252a875 --- /dev/null +++ b/obj/item/circuit_component/direction.html @@ -0,0 +1 @@ +/obj/item/circuit_component/direction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Direction Component

Return the direction of a mob relative to the component

Vars

input_portThe input port
max_rangeMaximum range for a valid direction to be returned
outputThe result from the output

Var Details

input_port

The input port

max_range

Maximum range for a valid direction to be returned

output

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/dispenser_bot.html b/obj/item/circuit_component/dispenser_bot.html new file mode 100644 index 0000000000000..f11ae254ed149 --- /dev/null +++ b/obj/item/circuit_component/dispenser_bot.html @@ -0,0 +1 @@ +/obj/item/circuit_component/dispenser_bot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dispenser_bot

Vars

itemThe item that was added/removed.
item_listThe list of items
on_item_addedCalled when an item is added.
on_item_removedCalled when an item is removed.
vendor_componentsVendor components attached to this dispenser bot

Var Details

item

The item that was added/removed.

item_list

The list of items

on_item_added

Called when an item is added.

on_item_removed

Called when an item is removed.

vendor_components

Vendor components attached to this dispenser bot

\ No newline at end of file diff --git a/obj/item/circuit_component/equipment_action.html b/obj/item/circuit_component/equipment_action.html new file mode 100644 index 0000000000000..61ff5b7f61f75 --- /dev/null +++ b/obj/item/circuit_component/equipment_action.html @@ -0,0 +1 @@ +/obj/item/circuit_component/equipment_action - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

equipment_action

Vars

button_nameThe name to use for the button
granted_toAn assoc list of datum REF()s, linked to the actions granted.
icon_optionsThe icon of the button
signalCalled when the user presses the button
userThe mob who activated their granted action

Var Details

button_name

The name to use for the button

granted_to

An assoc list of datum REF()s, linked to the actions granted.

icon_options

The icon of the button

signal

Called when the user presses the button

user

The mob who activated their granted action

\ No newline at end of file diff --git a/obj/item/circuit_component/filter_list.html b/obj/item/circuit_component/filter_list.html new file mode 100644 index 0000000000000..99853145f6726 --- /dev/null +++ b/obj/item/circuit_component/filter_list.html @@ -0,0 +1 @@ +/obj/item/circuit_component/filter_list - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

For Each Component

Filters

Vars

accept_entryAdds the list to the result
current_indexThe current index from the list
elementThe current element from the list
finished_listThe finished list
limitThe limit of iterations before it breaks. Used to prevent from someone iterating a massive list constantly
list_optionsThe list type
list_to_filterThe list to filter over
on_failedA signal that is sent when the filtering has failed
on_finishedA signal that is sent when the filtering has finished
on_next_indexA signal that is sent when the list has moved onto the next index.

Var Details

accept_entry

Adds the list to the result

current_index

The current index from the list

element

The current element from the list

finished_list

The finished list

limit

The limit of iterations before it breaks. Used to prevent from someone iterating a massive list constantly

list_options

The list type

list_to_filter

The list to filter over

on_failed

A signal that is sent when the filtering has failed

on_finished

A signal that is sent when the filtering has finished

on_next_index

A signal that is sent when the list has moved onto the next index.

\ No newline at end of file diff --git a/obj/item/circuit_component/firealarm.html b/obj/item/circuit_component/firealarm.html new file mode 100644 index 0000000000000..b14d40248995a --- /dev/null +++ b/obj/item/circuit_component/firealarm.html @@ -0,0 +1 @@ +/obj/item/circuit_component/firealarm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

firealarm

Vars

is_onReturns a boolean value of 0 or 1 if the fire alarm is on or not.
resetReturns when the alarm is turned off
triggeredReturns when the alarm is turned on

Var Details

is_on

Returns a boolean value of 0 or 1 if the fire alarm is on or not.

reset

Returns when the alarm is turned off

triggered

Returns when the alarm is turned on

\ No newline at end of file diff --git a/obj/item/circuit_component/foreach.html b/obj/item/circuit_component/foreach.html new file mode 100644 index 0000000000000..db5bad8ee711d --- /dev/null +++ b/obj/item/circuit_component/foreach.html @@ -0,0 +1 @@ +/obj/item/circuit_component/foreach - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

For Each Component

Sends a signal for each item in a list

Vars

current_indexThe current index from the list
elementThe current element from the list
list_optionsThe list type
list_to_iterateThe list to iterate over
next_indexMove to the next index
on_finishedA signal that is sent when the list has finished iterating
on_next_indexA signal that is sent when the list has moved onto the next index.
reset_indexResets the index to 0

Var Details

current_index

The current index from the list

element

The current element from the list

list_options

The list type

list_to_iterate

The list to iterate over

next_index

Move to the next index

on_finished

A signal that is sent when the list has finished iterating

on_next_index

A signal that is sent when the list has moved onto the next index.

reset_index

Resets the index to 0

\ No newline at end of file diff --git a/obj/item/circuit_component/format.html b/obj/item/circuit_component/format.html new file mode 100644 index 0000000000000..3b88b9299bf19 --- /dev/null +++ b/obj/item/circuit_component/format.html @@ -0,0 +1,10 @@ +/obj/item/circuit_component/format - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Format List Component

Formats lists by replacing %n in format string with nth parameter. +Alternative to the Concatenate component.

Vars

outputThe result from the output
param_regexThe regex used to find a parameter.

Procs

get_list_itemGet an item from the list. +Return null to indicate invalid index. +Arguments:

Var Details

output

The result from the output

param_regex

The regex used to find a parameter.

Proc Details

get_list_item

Get an item from the list. +Return null to indicate invalid index. +Arguments:

+
    +
  • param_list - The resolved list.
  • +
  • index_string - The raw list index, as a string.
  • +
\ No newline at end of file diff --git a/obj/item/circuit_component/get_column.html b/obj/item/circuit_component/get_column.html new file mode 100644 index 0000000000000..3354d76ee7fee --- /dev/null +++ b/obj/item/circuit_component/get_column.html @@ -0,0 +1 @@ +/obj/item/circuit_component/get_column - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Get Column Component

Gets the column of a table and returns it as a regular list.

Vars

column_nameThe name of the column to check
output_listThe filtered list
received_tableThe list to perform the filter on

Var Details

column_name

The name of the column to check

output_list

The filtered list

received_table

The list to perform the filter on

\ No newline at end of file diff --git a/obj/item/circuit_component/get_variable.html b/obj/item/circuit_component/get_variable.html new file mode 100644 index 0000000000000..6226e08939122 --- /dev/null +++ b/obj/item/circuit_component/get_variable.html @@ -0,0 +1 @@ +/obj/item/circuit_component/get_variable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Get Variable Component

A component that gets a variable on an object

Vars

entityEntity to get variable of
expected_output_typeExpected type of output
getvar_optionsWhether to grab a global variable or a variable from this entity.
output_valueVariable value
variable_nameVariable name

Var Details

entity

Entity to get variable of

expected_output_type

Expected type of output

getvar_options

Whether to grab a global variable or a variable from this entity.

output_value

Variable value

variable_name

Variable name

\ No newline at end of file diff --git a/obj/item/circuit_component/gps.html b/obj/item/circuit_component/gps.html new file mode 100644 index 0000000000000..b8aeed7e5d0e8 --- /dev/null +++ b/obj/item/circuit_component/gps.html @@ -0,0 +1 @@ +/obj/item/circuit_component/gps - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

GPS Component

Return the location of this

Vars

x_posThe result from the output

Var Details

x_pos

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/health.html b/obj/item/circuit_component/health.html new file mode 100644 index 0000000000000..28ec4a5829dc4 --- /dev/null +++ b/obj/item/circuit_component/health.html @@ -0,0 +1 @@ +/obj/item/circuit_component/health - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Get Health Component

Return the health of a mob

Vars

bruteBrute damage
burnBurn damage
healthHealth
input_portThe input port
oxyOxyloss damage
toxinToxin damage

Var Details

brute

Brute damage

burn

Burn damage

health

Health

input_port

The input port

oxy

Oxyloss damage

toxin

Toxin damage

\ No newline at end of file diff --git a/obj/item/circuit_component/hear.html b/obj/item/circuit_component/hear.html new file mode 100644 index 0000000000000..0dc6394f4158c --- /dev/null +++ b/obj/item/circuit_component/hear.html @@ -0,0 +1 @@ +/obj/item/circuit_component/hear - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Hear Component

Listens for messages. Requires a shell.

Vars

language_portThe language heard
message_portThe message heard
onThe on/off port
speaker_nameThe speaker name port, usually the name of the person who spoke.
speaker_portThe speaker entity that is currently speaking. Not necessarily the person who is speaking.
trigger_portThe trigger sent when this event occurs

Var Details

language_port

The language heard

message_port

The message heard

on

The on/off port

speaker_name

The speaker name port, usually the name of the person who spoke.

speaker_port

The speaker entity that is currently speaking. Not necessarily the person who is speaking.

trigger_port

The trigger sent when this event occurs

\ No newline at end of file diff --git a/obj/item/circuit_component/hydroponics.html b/obj/item/circuit_component/hydroponics.html new file mode 100644 index 0000000000000..ef1be91091578 --- /dev/null +++ b/obj/item/circuit_component/hydroponics.html @@ -0,0 +1 @@ +/obj/item/circuit_component/hydroponics - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hydroponics

The usb port circuit

Vars

is_self_sustainingWhether the self sustaining mode is on
last_harvestThe product amount of the last harvest
pests_levelThe amount of pests in the tray.
plant_diedTriggered when the plant dies
plant_harvestedTriggered when the plant is harvested
plant_healthThe health of the plant in the tray.
plant_statusWhether the plant in the tray is harvestable, alive, missing or dead.
reagents_levelThe amount of reagents in the tray
seeds_plantedTriggered when a seed is either planted by someone or takes over the tray.
selfsustaining_settingIf self-sustaining (also called auto-grow) should be turned on or off when the trigger is triggered.
toxic_levelThe amount of toxins in the tray.
water_levelThe amount of water in the tray.
weeds_levelThe amount of weeds in the tray.

Var Details

is_self_sustaining

Whether the self sustaining mode is on

last_harvest

The product amount of the last harvest

pests_level

The amount of pests in the tray.

plant_died

Triggered when the plant dies

plant_harvested

Triggered when the plant is harvested

plant_health

The health of the plant in the tray.

plant_status

Whether the plant in the tray is harvestable, alive, missing or dead.

reagents_level

The amount of reagents in the tray

seeds_planted

Triggered when a seed is either planted by someone or takes over the tray.

selfsustaining_setting

If self-sustaining (also called auto-grow) should be turned on or off when the trigger is triggered.

toxic_level

The amount of toxins in the tray.

water_level

The amount of water in the tray.

weeds_level

The amount of weeds in the tray.

\ No newline at end of file diff --git a/obj/item/circuit_component/id_access_reader.html b/obj/item/circuit_component/id_access_reader.html new file mode 100644 index 0000000000000..6d4cb7cb0fc1a --- /dev/null +++ b/obj/item/circuit_component/id_access_reader.html @@ -0,0 +1 @@ +/obj/item/circuit_component/id_access_reader - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

id_access_reader

Vars

access_portA list of the accesses on the ID
targetThe input port

Var Details

access_port

A list of the accesses on the ID

target

The input port

\ No newline at end of file diff --git a/obj/item/circuit_component/id_getter.html b/obj/item/circuit_component/id_getter.html new file mode 100644 index 0000000000000..7776122088e24 --- /dev/null +++ b/obj/item/circuit_component/id_getter.html @@ -0,0 +1 @@ +/obj/item/circuit_component/id_getter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

id_getter

Vars

id_portThe reference to the ID
prioritize_handsWhether to prioritize the target's hands when checking for an ID
targetThe input port

Var Details

id_port

The reference to the ID

prioritize_hands

Whether to prioritize the target's hands when checking for an ID

target

The input port

\ No newline at end of file diff --git a/obj/item/circuit_component/id_info_reader.html b/obj/item/circuit_component/id_info_reader.html new file mode 100644 index 0000000000000..f4dbe2cc7bdd6 --- /dev/null +++ b/obj/item/circuit_component/id_info_reader.html @@ -0,0 +1 @@ +/obj/item/circuit_component/id_info_reader - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

id_info_reader

Vars

age_portThe age registered on the ID
name_portThe name registered on the ID
rank_portThe rank registered on the ID
targetThe input port

Var Details

age_port

The age registered on the ID

name_port

The name registered on the ID

rank_port

The rank registered on the ID

target

The input port

\ No newline at end of file diff --git a/obj/item/circuit_component/index.html b/obj/item/circuit_component/index.html new file mode 100644 index 0000000000000..8e53bd0f9d3bd --- /dev/null +++ b/obj/item/circuit_component/index.html @@ -0,0 +1 @@ +/obj/item/circuit_component/index - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Index Component

Return the index of a list

Vars

list_optionsThe list type
list_portThe input port
outputThe result from the output

Var Details

list_options

The list type

list_port

The input port

output

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/index_table.html b/obj/item/circuit_component/index_table.html new file mode 100644 index 0000000000000..95d1fd5578cd0 --- /dev/null +++ b/obj/item/circuit_component/index_table.html @@ -0,0 +1 @@ +/obj/item/circuit_component/index_table - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Index Table Component

Gets the row of a table as an associative list using the index inputted. Will return no value if the index is invalid or a proper table is not returned.

Vars

output_listThe filtered list
received_tableThe list to perform the filter on
target_indexThe target index

Var Details

output_list

The filtered list

received_table

The list to perform the filter on

target_index

The target index

\ No newline at end of file diff --git a/obj/item/circuit_component/input_request.html b/obj/item/circuit_component/input_request.html new file mode 100644 index 0000000000000..3d480b94aa493 --- /dev/null +++ b/obj/item/circuit_component/input_request.html @@ -0,0 +1 @@ +/obj/item/circuit_component/input_request - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Input Request Component

Requests an input from someone.

Vars

entityThe input path to convert into a typepath
input_failedTriggered when the player fails to give an input.
input_optionsOptions for input requests
input_responseThe response from the player
input_triggeredTriggered when the input is received
parameterThe custom parameter of the option

Var Details

entity

The input path to convert into a typepath

input_failed

Triggered when the player fails to give an input.

input_options

Options for input requests

input_response

The response from the player

input_triggered

Triggered when the input is received

parameter

The custom parameter of the option

\ No newline at end of file diff --git a/obj/item/circuit_component/item_interact.html b/obj/item/circuit_component/item_interact.html new file mode 100644 index 0000000000000..8d7c98c58d344 --- /dev/null +++ b/obj/item/circuit_component/item_interact.html @@ -0,0 +1 @@ +/obj/item/circuit_component/item_interact - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Item Interact Component

Allows for interaction with an item. Drone shell only.

Vars

primary_interactWhether to use primary attack_self or secondary attack_self

Var Details

primary_interact

Whether to use primary attack_self or secondary attack_self

\ No newline at end of file diff --git a/obj/item/circuit_component/keyboard_shell.html b/obj/item/circuit_component/keyboard_shell.html new file mode 100644 index 0000000000000..80ea0dd327f95 --- /dev/null +++ b/obj/item/circuit_component/keyboard_shell.html @@ -0,0 +1 @@ +/obj/item/circuit_component/keyboard_shell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

keyboard_shell

Vars

entityEntity who used the shell
outputThe string, entity typed and submitted
signalCalled when the input window is closed

Var Details

entity

Entity who used the shell

output

The string, entity typed and submitted

signal

Called when the input window is closed

\ No newline at end of file diff --git a/obj/item/circuit_component/laserpointer.html b/obj/item/circuit_component/laserpointer.html new file mode 100644 index 0000000000000..50678fc13dff1 --- /dev/null +++ b/obj/item/circuit_component/laserpointer.html @@ -0,0 +1 @@ +/obj/item/circuit_component/laserpointer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

laser pointer Component

Points a laser at a tile or mob

Vars

target_inputThe input port

Var Details

target_input

The input port

\ No newline at end of file diff --git a/obj/item/circuit_component/length.html b/obj/item/circuit_component/length.html new file mode 100644 index 0000000000000..eac9631274ce5 --- /dev/null +++ b/obj/item/circuit_component/length.html @@ -0,0 +1 @@ +/obj/item/circuit_component/length - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Length Component

Return the length of an input

Vars

input_portThe input port
outputThe result from the output

Var Details

input_port

The input port

output

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/light.html b/obj/item/circuit_component/light.html new file mode 100644 index 0000000000000..43efd1958dc9b --- /dev/null +++ b/obj/item/circuit_component/light.html @@ -0,0 +1 @@ +/obj/item/circuit_component/light - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Light Component

Emits a light of a specific brightness and colour. Requires a shell.

Vars

brightnessThe brightness
onWhether the light is on or not
redThe colours of the light

Var Details

brightness

The brightness

on

Whether the light is on or not

red

The colours of the light

\ No newline at end of file diff --git a/obj/item/circuit_component/light_switch.html b/obj/item/circuit_component/light_switch.html new file mode 100644 index 0000000000000..44003b917eb71 --- /dev/null +++ b/obj/item/circuit_component/light_switch.html @@ -0,0 +1 @@ +/obj/item/circuit_component/light_switch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

light_switch

Vars

is_onWhether the lights are turned on
on_settingIf the lights should be turned on or off when the trigger is triggered.

Var Details

is_on

Whether the lights are turned on

on_setting

If the lights should be turned on or off when the trigger is triggered.

\ No newline at end of file diff --git a/obj/item/circuit_component/list_literal.html b/obj/item/circuit_component/list_literal.html new file mode 100644 index 0000000000000..2ac3060560ae3 --- /dev/null +++ b/obj/item/circuit_component/list_literal.html @@ -0,0 +1 @@ +/obj/item/circuit_component/list_literal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

List Literal Component

Return a list literal.

Vars

entry_portsThe inputs used to create the list
list_optionsThe list type
list_outputThe result from the output

Var Details

entry_ports

The inputs used to create the list

list_options

The list type

list_output

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/list_literal/ntnet_send.html b/obj/item/circuit_component/list_literal/ntnet_send.html new file mode 100644 index 0000000000000..a60b57ef62766 --- /dev/null +++ b/obj/item/circuit_component/list_literal/ntnet_send.html @@ -0,0 +1,3 @@ +/obj/item/circuit_component/list_literal/ntnet_send - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

NTNet Transmitter List Literal Component

Create a list literal and send a data package through NTNet

+

This file is based off of ntnet_send.dm +Any changes made to those files should be copied over with discretion

Vars

enc_keyEncryption key

Var Details

enc_key

Encryption key

\ No newline at end of file diff --git a/obj/item/circuit_component/list_pick.html b/obj/item/circuit_component/list_pick.html new file mode 100644 index 0000000000000..feef0848d51a3 --- /dev/null +++ b/obj/item/circuit_component/list_pick.html @@ -0,0 +1 @@ +/obj/item/circuit_component/list_pick - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

List pick component

Allows user to select 1 entry from a list

Vars

failureEither it was canceld or out of range
input_listThe list that will be shown to the user
input_nameName passed onto the TGUI(gives the UI a name)
list_optionsThe data type of the input_list
outputWhat was picked from input_list
successA value was picked
userThe user to show the list too

Procs

show_listShow a list of options to the user using standed TGUI input list

Var Details

failure

Either it was canceld or out of range

input_list

The list that will be shown to the user

input_name

Name passed onto the TGUI(gives the UI a name)

list_options

The data type of the input_list

output

What was picked from input_list

success

A value was picked

user

The user to show the list too

Proc Details

show_list

Show a list of options to the user using standed TGUI input list

\ No newline at end of file diff --git a/obj/item/circuit_component/listin.html b/obj/item/circuit_component/listin.html new file mode 100644 index 0000000000000..087eeae459113 --- /dev/null +++ b/obj/item/circuit_component/listin.html @@ -0,0 +1 @@ +/obj/item/circuit_component/listin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

List Find Component

Finds an element in a list and returns the index.

Vars

foundSignal to say we have found the element.
indexIndex of the element if found.
list_to_checkList to check
list_typeThe list type we're checking
not_foundSignal to say we haven't found the element.
resultResult of the search
to_checkElement to check

Var Details

found

Signal to say we have found the element.

index

Index of the element if found.

list_to_check

List to check

list_type

The list type we're checking

not_found

Signal to say we haven't found the element.

result

Result of the search

to_check

Element to check

\ No newline at end of file diff --git a/obj/item/circuit_component/matscanner.html b/obj/item/circuit_component/matscanner.html new file mode 100644 index 0000000000000..41b50cfea440d --- /dev/null +++ b/obj/item/circuit_component/matscanner.html @@ -0,0 +1 @@ +/obj/item/circuit_component/matscanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Material Scanner

Returns the materials of an atom

Vars

break_down_alloysWhether we consider the materials alloys are made when scanning.
resultThe result from the output

Var Details

break_down_alloys

Whether we consider the materials alloys are made when scanning.

result

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/medical_console_data.html b/obj/item/circuit_component/medical_console_data.html new file mode 100644 index 0000000000000..8a92f4269b3bf --- /dev/null +++ b/obj/item/circuit_component/medical_console_data.html @@ -0,0 +1 @@ +/obj/item/circuit_component/medical_console_data - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

medical_console_data

Vars

recordsThe records retrieved

Var Details

records

The records retrieved

\ No newline at end of file diff --git a/obj/item/circuit_component/mining.html b/obj/item/circuit_component/mining.html new file mode 100644 index 0000000000000..72c9fd95e38c5 --- /dev/null +++ b/obj/item/circuit_component/mining.html @@ -0,0 +1 @@ +/obj/item/circuit_component/mining - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Mining Component

Allows for mining of mineral walls (walls with ores). Requires a shell.

Vars

targetFrequency input

Var Details

target

Frequency input

\ No newline at end of file diff --git a/obj/item/circuit_component/mmi.html b/obj/item/circuit_component/mmi.html new file mode 100644 index 0000000000000..d393a0c8940bf --- /dev/null +++ b/obj/item/circuit_component/mmi.html @@ -0,0 +1 @@ +/obj/item/circuit_component/mmi - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Man-Machine Interface Component

Allows an MMI to be inserted into a shell, allowing it to be linked up. Requires a shell.

Vars

attackCalled when the MMI clicks.
brainThe current MMI card
clicked_atomReturns what the MMI last clicked on.
eastCalled when the MMI tries moving east
ejectEjects the current MMI
max_lengthMaximum length of the message that can be sent to the MMI
messageThe message to send to the MMI in the shell.
northCalled when the MMI tries moving north
secondary_attackCalled when the MMI right clicks.
sendSends the current MMI a message
southCalled when the MMI tries moving south
westCalled when the MMI tries moving west

Var Details

attack

Called when the MMI clicks.

brain

The current MMI card

clicked_atom

Returns what the MMI last clicked on.

east

Called when the MMI tries moving east

eject

Ejects the current MMI

max_length

Maximum length of the message that can be sent to the MMI

message

The message to send to the MMI in the shell.

north

Called when the MMI tries moving north

secondary_attack

Called when the MMI right clicks.

send

Sends the current MMI a message

south

Called when the MMI tries moving south

west

Called when the MMI tries moving west

\ No newline at end of file diff --git a/obj/item/circuit_component/mod_adapter_core.html b/obj/item/circuit_component/mod_adapter_core.html new file mode 100644 index 0000000000000..d3240feb9eadc --- /dev/null +++ b/obj/item/circuit_component/mod_adapter_core.html @@ -0,0 +1 @@ +/obj/item/circuit_component/mod_adapter_core - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mod_adapter_core

Vars

activatedWhether or not the suit is activated
attached_moduleThe MODsuit module this circuit is associated with
deployedWhether or not the suit is deployed
deployed_partsA list of the names of all currently deployed parts
module_to_selectThe name of the module to select
on_deployThe signal that is triggered when the suit is deployed by a signal
on_module_selectedThe signal that is triggered when a module is selected
on_toggle_finishThe signal that is triggered when the suit has finished toggling itself after being activated by a signal
select_moduleThe signal to select a module
selected_moduleThe name of the last selected module
toggle_deployThe signal to toggle deployment of the modsuit
toggle_suitThe signal to toggle the suit
wearerA reference to the wearer of the MODsuit

Var Details

activated

Whether or not the suit is activated

attached_module

The MODsuit module this circuit is associated with

deployed

Whether or not the suit is deployed

deployed_parts

A list of the names of all currently deployed parts

module_to_select

The name of the module to select

on_deploy

The signal that is triggered when the suit is deployed by a signal

on_module_selected

The signal that is triggered when a module is selected

on_toggle_finish

The signal that is triggered when the suit has finished toggling itself after being activated by a signal

select_module

The signal to select a module

selected_module

The name of the last selected module

toggle_deploy

The signal to toggle deployment of the modsuit

toggle_suit

The signal to toggle the suit

wearer

A reference to the wearer of the MODsuit

\ No newline at end of file diff --git a/obj/item/circuit_component/mod_program.html b/obj/item/circuit_component/mod_program.html new file mode 100644 index 0000000000000..56c96f1eebe79 --- /dev/null +++ b/obj/item/circuit_component/mod_program.html @@ -0,0 +1,7 @@ +/obj/item/circuit_component/mod_program - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mod_program

Circuit components of modular programs are special. +They're added to the unremovable components of the shell when the prog is installed and deleted if uninstalled. +This means they don't work like normal unremovable comps that live and die along with their shell.

Vars

associated_programThe program that installed us into the shell/usb_port comp. Needed to avoid having too many signals for every program. +This is also the program we need to install on the modular computer if the circuit is admin-loaded. +Just make sure each of these components is associated to one and only type of program, no subtypes of anything.
killkills the program.
runningbinary for whether the program is running or not
startStarts the program if possible, placing it in the background if another's active.

Procs

should_receive_inputFor most programs, triggers only work if they're open (either active or idle).

Var Details

associated_program

The program that installed us into the shell/usb_port comp. Needed to avoid having too many signals for every program. +This is also the program we need to install on the modular computer if the circuit is admin-loaded. +Just make sure each of these components is associated to one and only type of program, no subtypes of anything.

kill

kills the program.

running

binary for whether the program is running or not

start

Starts the program if possible, placing it in the background if another's active.

Proc Details

should_receive_input

For most programs, triggers only work if they're open (either active or idle).

\ No newline at end of file diff --git a/obj/item/circuit_component/mod_program/borg_monitor.html b/obj/item/circuit_component/mod_program/borg_monitor.html new file mode 100644 index 0000000000000..a27d84a3bf9b4 --- /dev/null +++ b/obj/item/circuit_component/mod_program/borg_monitor.html @@ -0,0 +1 @@ +/obj/item/circuit_component/mod_program/borg_monitor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

borg_monitor

Vars

set_messageThe message we want to send
target_robotCircuit input for the robot we want to message

Var Details

set_message

The message we want to send

target_robot

Circuit input for the robot we want to message

\ No newline at end of file diff --git a/obj/item/circuit_component/mod_program/camera.html b/obj/item/circuit_component/mod_program/camera.html new file mode 100644 index 0000000000000..00c8ca2c94c56 --- /dev/null +++ b/obj/item/circuit_component/mod_program/camera.html @@ -0,0 +1,5 @@ +/obj/item/circuit_component/mod_program/camera - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

camera

Vars

photo_takenPinged when the image has been captured. +I'm not using the default trigger output here because the process is asynced, +even though I'm mostly sure it only sleeps if there's a set user.
photographedThe photographed target
picture_targetA target to take a picture of.

Var Details

photo_taken

Pinged when the image has been captured. +I'm not using the default trigger output here because the process is asynced, +even though I'm mostly sure it only sleeps if there's a set user.

photographed

The photographed target

picture_target

A target to take a picture of.

\ No newline at end of file diff --git a/obj/item/circuit_component/mod_program/messenger.html b/obj/item/circuit_component/mod_program/messenger.html new file mode 100644 index 0000000000000..563a35229bbdf --- /dev/null +++ b/obj/item/circuit_component/mod_program/messenger.html @@ -0,0 +1 @@ +/obj/item/circuit_component/mod_program/messenger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

messenger

Vars

messageA message to be sent when triggered
receivedPinged whenever a message is received.
received_messageContents of the last received message
ringPlays the ringtone when the input is received
ring_cdthe cooldown of the ringtone.
sender_deviceReference to the device that sent the message. Usually a PDA.
sender_jobJob title of the sender of the above
sender_nameName of the sender of the above
set_ringSet the ringtone to the input
targetsA list of PDA targets for the message to be sent

Procs

message_sentSet the cooldown after the message was sent (by us)

Var Details

message

A message to be sent when triggered

received

Pinged whenever a message is received.

received_message

Contents of the last received message

ring

Plays the ringtone when the input is received

ring_cd

the cooldown of the ringtone.

sender_device

Reference to the device that sent the message. Usually a PDA.

sender_job

Job title of the sender of the above

sender_name

Name of the sender of the above

set_ring

Set the ringtone to the input

targets

A list of PDA targets for the message to be sent

Proc Details

message_sent

Set the cooldown after the message was sent (by us)

\ No newline at end of file diff --git a/obj/item/circuit_component/mod_program/modsuit_control.html b/obj/item/circuit_component/mod_program/modsuit_control.html new file mode 100644 index 0000000000000..ad9d060cf42c2 --- /dev/null +++ b/obj/item/circuit_component/mod_program/modsuit_control.html @@ -0,0 +1 @@ +/obj/item/circuit_component/mod_program/modsuit_control - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

modsuit_control

Vars

suit_portCircuit port for loading a new suit to control

Var Details

suit_port

Circuit port for loading a new suit to control

\ No newline at end of file diff --git a/obj/item/circuit_component/mod_program/notepad.html b/obj/item/circuit_component/mod_program/notepad.html new file mode 100644 index 0000000000000..42300027ab0a8 --- /dev/null +++ b/obj/item/circuit_component/mod_program/notepad.html @@ -0,0 +1 @@ +/obj/item/circuit_component/mod_program/notepad - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

notepad

Vars

set_textWhen the input is received, the written note will be set to its value.
updatedPinged whenever the text is updated
updated_textThe written note output, sent everytime notes are updated.

Var Details

set_text

When the input is received, the written note will be set to its value.

updated

Pinged whenever the text is updated

updated_text

The written note output, sent everytime notes are updated.

\ No newline at end of file diff --git a/obj/item/circuit_component/mod_program/nt_pay.html b/obj/item/circuit_component/mod_program/nt_pay.html new file mode 100644 index 0000000000000..0390270769e79 --- /dev/null +++ b/obj/item/circuit_component/mod_program/nt_pay.html @@ -0,0 +1 @@ +/obj/item/circuit_component/mod_program/nt_pay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nt_pay

Vars

money_portThe port for the money to send
payment_amountAmount of a received payment
payment_deviceThe device from which the payment was received
payment_receivedPinged whether a payment is received
payment_statusLet's us know if the payment has gone through or not.
token_portCircuit variables. This one is for the token we want to pay

Var Details

money_port

The port for the money to send

payment_amount

Amount of a received payment

payment_device

The device from which the payment was received

payment_received

Pinged whether a payment is received

payment_status

Let's us know if the payment has gone through or not.

token_port

Circuit variables. This one is for the token we want to pay

\ No newline at end of file diff --git a/obj/item/circuit_component/mod_program/ntnetmonitor.html b/obj/item/circuit_component/mod_program/ntnetmonitor.html new file mode 100644 index 0000000000000..50af807c29525 --- /dev/null +++ b/obj/item/circuit_component/mod_program/ntnetmonitor.html @@ -0,0 +1 @@ +/obj/item/circuit_component/mod_program/ntnetmonitor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ntnetmonitor

Vars

all_messengersReturns a list of all PDA Messengers when the "Get Messengers" input is pinged
get_pdasSee above
purge_logsPurges modpc logs when triggered
targetThe stored NTnet relay or PDA to be used as the target of triggers
toggle_idsSets intrusion_detection_alarm when triggered
toggle_mass_pdaToggles the spam mode of the target PDA when triggered
toggle_mime_modeToggle mime mode of the target PDA when triggered
toggle_relayToggles the target ntnet relay on/off when triggered

Var Details

all_messengers

Returns a list of all PDA Messengers when the "Get Messengers" input is pinged

get_pdas

See above

purge_logs

Purges modpc logs when triggered

target

The stored NTnet relay or PDA to be used as the target of triggers

toggle_ids

Sets intrusion_detection_alarm when triggered

toggle_mass_pda

Toggles the spam mode of the target PDA when triggered

toggle_mime_mode

Toggle mime mode of the target PDA when triggered

toggle_relay

Toggles the target ntnet relay on/off when triggered

\ No newline at end of file diff --git a/obj/item/circuit_component/mod_program/radar.html b/obj/item/circuit_component/mod_program/radar.html new file mode 100644 index 0000000000000..09651a598ea08 --- /dev/null +++ b/obj/item/circuit_component/mod_program/radar.html @@ -0,0 +1,9 @@ +/obj/item/circuit_component/mod_program/radar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

radar

Base circuit for the radar program. +The abstract radar doesn't have this, nor this one is associated to it, so +make sure to specify the associate_program and circuit_comp_type of subtypes,

Vars

selected_by_appThe selected target, from the app
targetThe target to track
x_posThe result from the output

Procs

can_trackCheck if we can track the object. When making different definitions of this proc for subtypes, include typical +targets as an exception to this (e.g humans for lifeline) so that even if they're coming from a circuit input +they won't get filtered by the maximum distance, because they're "supported entities".
get_atomReturn the value of the target port.
input_receivedSet the selected ref of the program to the target (if it exists) and update the x/y pos ports (if trackable) when triggered.
on_selectedWhen a target is selected by the app, reset the target port, update the x/pos ports (if trackable) +and set selected_by_app port to the target atom.

Var Details

selected_by_app

The selected target, from the app

target

The target to track

x_pos

The result from the output

Proc Details

can_track

Check if we can track the object. When making different definitions of this proc for subtypes, include typical +targets as an exception to this (e.g humans for lifeline) so that even if they're coming from a circuit input +they won't get filtered by the maximum distance, because they're "supported entities".

get_atom

Return the value of the target port.

input_received

Set the selected ref of the program to the target (if it exists) and update the x/y pos ports (if trackable) when triggered.

on_selected

When a target is selected by the app, reset the target port, update the x/pos ports (if trackable) +and set selected_by_app port to the target atom.

\ No newline at end of file diff --git a/obj/item/circuit_component/mod_program/signaler.html b/obj/item/circuit_component/mod_program/signaler.html new file mode 100644 index 0000000000000..e6e217e68f671 --- /dev/null +++ b/obj/item/circuit_component/mod_program/signaler.html @@ -0,0 +1 @@ +/obj/item/circuit_component/mod_program/signaler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

signaler

Vars

codeSignal input
freqFrequency input

Var Details

code

Signal input

freq

Frequency input

\ No newline at end of file diff --git a/obj/item/circuit_component/mod_program/spectre_meter.html b/obj/item/circuit_component/mod_program/spectre_meter.html new file mode 100644 index 0000000000000..35c32b1497e30 --- /dev/null +++ b/obj/item/circuit_component/mod_program/spectre_meter.html @@ -0,0 +1 @@ +/obj/item/circuit_component/mod_program/spectre_meter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spectre_meter

Vars

scan_resultsReturns the spookiness of each scan.
scannedPinged whenever a scan is done.

Var Details

scan_results

Returns the spookiness of each scan.

scanned

Pinged whenever a scan is done.

\ No newline at end of file diff --git a/obj/item/circuit_component/mod_program/status.html b/obj/item/circuit_component/mod_program/status.html new file mode 100644 index 0000000000000..50829171396e8 --- /dev/null +++ b/obj/item/circuit_component/mod_program/status.html @@ -0,0 +1 @@ +/obj/item/circuit_component/mod_program/status - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

status

Vars

bottom_textWhen the trigger is signaled, this will be the bottom text.
status_display_picsA list port that, when signaled, will set the status image to one of its values
upper_textWhen the trigger is signaled, this will be the upper text of status displays.

Var Details

bottom_text

When the trigger is signaled, this will be the bottom text.

status_display_pics

A list port that, when signaled, will set the status image to one of its values

upper_text

When the trigger is signaled, this will be the upper text of status displays.

\ No newline at end of file diff --git a/obj/item/circuit_component/modpc.html b/obj/item/circuit_component/modpc.html new file mode 100644 index 0000000000000..c53de3b325581 --- /dev/null +++ b/obj/item/circuit_component/modpc.html @@ -0,0 +1 @@ +/obj/item/circuit_component/modpc - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

modpc

A simple circuit component compatible with stationary consoles, laptops and PDAs, independent from programs.

Vars

is_offSent when shut down
is_onSent when turned on
lightsToggles lights on and off. Also RGB.
on_offTurns the PC on/off
printPrint when triggered
print_textDetermines the text to be printed

Var Details

is_off

Sent when shut down

is_on

Sent when turned on

lights

Toggles lights on and off. Also RGB.

on_off

Turns the PC on/off

print

Print when triggered

print_text

Determines the text to be printed

\ No newline at end of file diff --git a/obj/item/circuit_component/module.html b/obj/item/circuit_component/module.html new file mode 100644 index 0000000000000..7fc56f6a4060a --- /dev/null +++ b/obj/item/circuit_component/module.html @@ -0,0 +1 @@ +/obj/item/circuit_component/module - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Module Component

A component that has an input, output

Vars

linked_portsLinked ports that follow a first_port = second_port keyed structure.

Var Details

linked_ports

Linked ports that follow a first_port = second_port keyed structure.

\ No newline at end of file diff --git a/obj/item/circuit_component/module_input.html b/obj/item/circuit_component/module_input.html new file mode 100644 index 0000000000000..d38eaf367ad68 --- /dev/null +++ b/obj/item/circuit_component/module_input.html @@ -0,0 +1 @@ +/obj/item/circuit_component/module_input - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

module_input

Vars

attached_moduleThe currently attached module

Var Details

attached_module

The currently attached module

\ No newline at end of file diff --git a/obj/item/circuit_component/module_output.html b/obj/item/circuit_component/module_output.html new file mode 100644 index 0000000000000..682df18533f5c --- /dev/null +++ b/obj/item/circuit_component/module_output.html @@ -0,0 +1 @@ +/obj/item/circuit_component/module_output - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

module_output

Vars

attached_moduleThe currently attached module

Var Details

attached_module

The currently attached module

\ No newline at end of file diff --git a/obj/item/circuit_component/money_bot.html b/obj/item/circuit_component/money_bot.html new file mode 100644 index 0000000000000..7be6430836b7d --- /dev/null +++ b/obj/item/circuit_component/money_bot.html @@ -0,0 +1,5 @@ +/obj/item/circuit_component/money_bot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

money_bot

Vars

entityThe person who input the money
money_inputAmount of the last money inputted into the shell
money_triggerTrigger for when money is inputted into the shell
total_moneyTotal money in the shell

Procs

on_set_lockedLocks the attached bot when the circuit is locked.

Var Details

entity

The person who input the money

money_input

Amount of the last money inputted into the shell

money_trigger

Trigger for when money is inputted into the shell

total_money

Total money in the shell

Proc Details

on_set_locked

Locks the attached bot when the circuit is locked.

+

Arguments:

+
    +
  • new_value - A boolean that determines if the circuit is locked or not.
  • +
\ No newline at end of file diff --git a/obj/item/circuit_component/money_dispenser.html b/obj/item/circuit_component/money_dispenser.html new file mode 100644 index 0000000000000..e6b0b9b000cb1 --- /dev/null +++ b/obj/item/circuit_component/money_dispenser.html @@ -0,0 +1 @@ +/obj/item/circuit_component/money_dispenser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

money_dispenser

Vars

dispense_amountThe amount of money to dispense
on_failOutputs a signal when it fails to output any money.

Var Details

dispense_amount

The amount of money to dispense

on_fail

Outputs a signal when it fails to output any money.

\ No newline at end of file diff --git a/obj/item/circuit_component/not.html b/obj/item/circuit_component/not.html new file mode 100644 index 0000000000000..f5e05e7037a25 --- /dev/null +++ b/obj/item/circuit_component/not.html @@ -0,0 +1 @@ +/obj/item/circuit_component/not - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Logic Component

General logic unit with AND OR capabilities

Vars

input_portThe input port
resultThe result from the output

Var Details

input_port

The input port

result

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/ntnet_receive.html b/obj/item/circuit_component/ntnet_receive.html new file mode 100644 index 0000000000000..2706eca32d19a --- /dev/null +++ b/obj/item/circuit_component/ntnet_receive.html @@ -0,0 +1 @@ +/obj/item/circuit_component/ntnet_receive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

NTNet Receiver Component

Receives data through NTNet.

Vars

data_packageData being received
enc_keyEncryption key
list_optionsThe list type

Var Details

data_package

Data being received

enc_key

Encryption key

list_options

The list type

\ No newline at end of file diff --git a/obj/item/circuit_component/ntnet_send.html b/obj/item/circuit_component/ntnet_send.html new file mode 100644 index 0000000000000..8da0b595c4941 --- /dev/null +++ b/obj/item/circuit_component/ntnet_send.html @@ -0,0 +1 @@ +/obj/item/circuit_component/ntnet_send - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

NTNet Transmitter Component

Sends a data package through NTNet

Vars

data_packageData being sent
enc_keyEncryption key
list_optionsThe list type

Var Details

data_package

Data being sent

enc_key

Encryption key

list_options

The list type

\ No newline at end of file diff --git a/obj/item/circuit_component/object_overlay.html b/obj/item/circuit_component/object_overlay.html new file mode 100644 index 0000000000000..a5a0d1e694e08 --- /dev/null +++ b/obj/item/circuit_component/object_overlay.html @@ -0,0 +1 @@ +/obj/item/circuit_component/object_overlay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

object_overlay

Vars

active_overlaysAssoc list of REF to the target atom to the overlay alt appearance it is using
bciReference to the BCI we're implanted inside
signal_onOn/Off signals
targetTarget atom

Var Details

active_overlays

Assoc list of REF to the target atom to the overlay alt appearance it is using

bci

Reference to the BCI we're implanted inside

signal_on

On/Off signals

target

Target atom

\ No newline at end of file diff --git a/obj/item/circuit_component/pressuresensor.html b/obj/item/circuit_component/pressuresensor.html new file mode 100644 index 0000000000000..1b291568c7951 --- /dev/null +++ b/obj/item/circuit_component/pressuresensor.html @@ -0,0 +1 @@ +/obj/item/circuit_component/pressuresensor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Pressure Sensor

Returns the pressure of the tile

Vars

resultThe result from the output

Var Details

result

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/proccall.html b/obj/item/circuit_component/proccall.html new file mode 100644 index 0000000000000..0ff142f896fa0 --- /dev/null +++ b/obj/item/circuit_component/proccall.html @@ -0,0 +1 @@ +/obj/item/circuit_component/proccall - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Proc Call Component

A component that calls a proc on an object and outputs the return value

Vars

argumentsA list of arguments
entityEntity to proccall on
output_valueReturns the output from the proccall
proc_nameProc to call
resolve_weakrefWhether we resolve all the weakrefs passed as arguments

Var Details

arguments

A list of arguments

entity

Entity to proccall on

output_value

Returns the output from the proccall

proc_name

Proc to call

resolve_weakref

Whether we resolve all the weakrefs passed as arguments

\ No newline at end of file diff --git a/obj/item/circuit_component/pull.html b/obj/item/circuit_component/pull.html new file mode 100644 index 0000000000000..78faa6afe8f61 --- /dev/null +++ b/obj/item/circuit_component/pull.html @@ -0,0 +1 @@ +/obj/item/circuit_component/pull - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Pull Component

Tells the shell to start pulling on a designated atom. Only works on movable shells.

Vars

targetFrequency input

Var Details

target

Frequency input

\ No newline at end of file diff --git a/obj/item/circuit_component/radio.html b/obj/item/circuit_component/radio.html new file mode 100644 index 0000000000000..f9831c083ecba --- /dev/null +++ b/obj/item/circuit_component/radio.html @@ -0,0 +1 @@ +/obj/item/circuit_component/radio - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Radio Component

Listens out for signals on the designated frequencies and sends signals on designated frequencies

Vars

codeSignal input
current_freqCurrent frequency value
freqFrequency input
owner_ckeyThe ckey of the user who used the shell we were placed in, important for signalling logs.
parent_shellHolds a reference to the shell.
public_optionsThe publicity options. Controls whether it's public or private.
radio_connectionThe radio connection we are using to receive signals.
signal_cooldown_timeHow long of a cooldown we have before we can send another signal.

Var Details

code

Signal input

current_freq

Current frequency value

freq

Frequency input

owner_ckey

The ckey of the user who used the shell we were placed in, important for signalling logs.

parent_shell

Holds a reference to the shell.

public_options

The publicity options. Controls whether it's public or private.

radio_connection

The radio connection we are using to receive signals.

signal_cooldown_time

How long of a cooldown we have before we can send another signal.

\ No newline at end of file diff --git a/obj/item/circuit_component/random.html b/obj/item/circuit_component/random.html new file mode 100644 index 0000000000000..c591e86d988c7 --- /dev/null +++ b/obj/item/circuit_component/random.html @@ -0,0 +1 @@ +/obj/item/circuit_component/random - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Random Component

Generates a random number between specific values

Vars

maximumThe maximum value that the random number can be
minimumThe minimum value that the random number can be
outputThe result from the output

Var Details

maximum

The maximum value that the random number can be

minimum

The minimum value that the random number can be

output

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/reagent_injector_bluespace.html b/obj/item/circuit_component/reagent_injector_bluespace.html new file mode 100644 index 0000000000000..aac5f6d8dd91f --- /dev/null +++ b/obj/item/circuit_component/reagent_injector_bluespace.html @@ -0,0 +1,4 @@ +/obj/item/circuit_component/reagent_injector_bluespace - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Reagent Injector Component (Bluespace)

Injects reagents into the user. +Requires a BCI shell.

+

This file is based off of reagent_injector.dm +Any changes made to that file should be copied over with discretion

Vars

inject_amountThe number of units to inject per trigger

Var Details

inject_amount

The number of units to inject per trigger

\ No newline at end of file diff --git a/obj/item/circuit_component/reagentscanner.html b/obj/item/circuit_component/reagentscanner.html new file mode 100644 index 0000000000000..d60567c1ebdbe --- /dev/null +++ b/obj/item/circuit_component/reagentscanner.html @@ -0,0 +1 @@ +/obj/item/circuit_component/reagentscanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Reagents Scanner

Returns the reagentss of an atom

Vars

resultThe result from the output

Var Details

result

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/reflector.html b/obj/item/circuit_component/reflector.html new file mode 100644 index 0000000000000..affe2c5edd416 --- /dev/null +++ b/obj/item/circuit_component/reflector.html @@ -0,0 +1 @@ +/obj/item/circuit_component/reflector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

reflector

Vars

angleangle the reflector will be set to at trigger unless locked

Var Details

angle

angle the reflector will be set to at trigger unless locked

\ No newline at end of file diff --git a/obj/item/circuit_component/remotecam.html b/obj/item/circuit_component/remotecam.html new file mode 100644 index 0000000000000..e21db99a6cb24 --- /dev/null +++ b/obj/item/circuit_component/remotecam.html @@ -0,0 +1,4 @@ +/obj/item/circuit_component/remotecam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Remote Camera Component

Attaches a camera for surveillance-on-the-go.

Vars

c_tag_randomCamera random ID
camera_prefixThe shell's type (used for prefix naming)
camera_rangeCamera range flag (near/far)
camera_range_settableAllow camera range to be set or not
camera_signal_move_overrideUsed only for the BCI shell type, as the COMSIG_MOVABLE_MOVED signal need to be assigned to the user mob, not the shell circuit
current_camera_empUsed to store the camera emp state
current_camera_emp_timer_idUsed to store the camera emp timer id
current_camera_nameUsed to store the last string used for the camera name
current_camera_networkUsed to store the last string used for the camera network
current_camera_rangeUsed to store the current camera range setting (near/far)
current_camera_stateUsed to store the current process state
current_cameranet_stateUsed to store the current cameranet state
networkThe network to use
shell_cameraCamera object
shell_parentThe shell storing the parent circuit
startStarts the cameraa
stopStops the program.

Procs

cameranet_addAdd camera from global cameranet
cameranet_removeRemove camera from global cameranet
close_cameraClose the camera state (only if it's already active)
init_cameraInitializes the camera
processHandle power usage and camera state updating
remove_cameraRemove the camera
remove_camera_empRestore emp'd camera
set_camera_empSet the camera as emp'd
start_processAdds the component to the SSclock_component process list
stop_processRemoves the component to the SSclock_component process list
update_camera_locationUpdate the chunk for the camera (if enabled)
update_camera_name_networkUpdates the camera name and network
update_camera_rangeSet the camera range

Var Details

c_tag_random

Camera random ID

camera_prefix

The shell's type (used for prefix naming)

camera_range

Camera range flag (near/far)

camera_range_settable

Allow camera range to be set or not

camera_signal_move_override

Used only for the BCI shell type, as the COMSIG_MOVABLE_MOVED signal need to be assigned to the user mob, not the shell circuit

current_camera_emp

Used to store the camera emp state

current_camera_emp_timer_id

Used to store the camera emp timer id

current_camera_name

Used to store the last string used for the camera name

current_camera_network

Used to store the last string used for the camera network

current_camera_range

Used to store the current camera range setting (near/far)

current_camera_state

Used to store the current process state

current_cameranet_state

Used to store the current cameranet state

network

The network to use

shell_camera

Camera object

shell_parent

The shell storing the parent circuit

start

Starts the cameraa

stop

Stops the program.

Proc Details

cameranet_add

Add camera from global cameranet

cameranet_remove

Remove camera from global cameranet

close_camera

Close the camera state (only if it's already active)

init_camera

Initializes the camera

process

Handle power usage and camera state updating

+

This is the generic abstract proc - subtypes with specialized logic should use their own copy of process()

remove_camera

Remove the camera

remove_camera_emp

Restore emp'd camera

set_camera_emp

Set the camera as emp'd

start_process

Adds the component to the SSclock_component process list

+

Starts draining cell per second while camera is active

stop_process

Removes the component to the SSclock_component process list

+

Stops draining cell per second

update_camera_location

Update the chunk for the camera (if enabled)

update_camera_name_network

Updates the camera name and network

update_camera_range

Set the camera range

\ No newline at end of file diff --git a/obj/item/circuit_component/remotecam/airlock.html b/obj/item/circuit_component/remotecam/airlock.html new file mode 100644 index 0000000000000..9869ff8210f73 --- /dev/null +++ b/obj/item/circuit_component/remotecam/airlock.html @@ -0,0 +1 @@ +/obj/item/circuit_component/remotecam/airlock - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

airlock

Vars

camera_range_settableHardcode camera to near range

Var Details

camera_range_settable

Hardcode camera to near range

\ No newline at end of file diff --git a/obj/item/circuit_component/remotecam/bci.html b/obj/item/circuit_component/remotecam/bci.html new file mode 100644 index 0000000000000..74a6aec0fd391 --- /dev/null +++ b/obj/item/circuit_component/remotecam/bci.html @@ -0,0 +1 @@ +/obj/item/circuit_component/remotecam/bci - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bci

Vars

bciuserStore the BCI owner as a variable, so we can remove the move signal if the user was gibbed/destroyed while the BCI is still installed
camera_signal_move_overrideBCIs are organs, and thus the signal must be assigned ONLY when the shell has been installed in a mob - otherwise the camera will never update position

Var Details

bciuser

Store the BCI owner as a variable, so we can remove the move signal if the user was gibbed/destroyed while the BCI is still installed

camera_signal_move_override

BCIs are organs, and thus the signal must be assigned ONLY when the shell has been installed in a mob - otherwise the camera will never update position

\ No newline at end of file diff --git a/obj/item/circuit_component/remotecam/polaroid.html b/obj/item/circuit_component/remotecam/polaroid.html new file mode 100644 index 0000000000000..ee8d6da19b74d --- /dev/null +++ b/obj/item/circuit_component/remotecam/polaroid.html @@ -0,0 +1 @@ +/obj/item/circuit_component/remotecam/polaroid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

polaroid

Vars

camera_range_settableHardcode camera to near range

Var Details

camera_range_settable

Hardcode camera to near range

\ No newline at end of file diff --git a/obj/item/circuit_component/router.html b/obj/item/circuit_component/router.html new file mode 100644 index 0000000000000..667447ab0adda --- /dev/null +++ b/obj/item/circuit_component/router.html @@ -0,0 +1 @@ +/obj/item/circuit_component/router - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Router Component

Writes one of multiple inputs to one of multiple outputs.

Vars

current_typeCurrent type of the ports
input_port_amountHow many ports to have.
input_selectorWhich ports to connect.
insThe ports to route.

Var Details

current_type

Current type of the ports

input_port_amount

How many ports to have.

input_selector

Which ports to connect.

ins

The ports to route.

\ No newline at end of file diff --git a/obj/item/circuit_component/save_shell.html b/obj/item/circuit_component/save_shell.html new file mode 100644 index 0000000000000..460c687f18674 --- /dev/null +++ b/obj/item/circuit_component/save_shell.html @@ -0,0 +1 @@ +/obj/item/circuit_component/save_shell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Save Shell Component

A component that saves and loads a shell for the integrated circuit.

Vars

on_loadedReturns the output from the proccall

Var Details

on_loaded

Returns the output from the proccall

\ No newline at end of file diff --git a/obj/item/circuit_component/scanner_gate.html b/obj/item/circuit_component/scanner_gate.html new file mode 100644 index 0000000000000..f8c9c7c3a7b72 --- /dev/null +++ b/obj/item/circuit_component/scanner_gate.html @@ -0,0 +1,5 @@ +/obj/item/circuit_component/scanner_gate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

scanner_gate

Procs

on_set_lockedLocks the attached bot when the circuit is locked.

Proc Details

on_set_locked

Locks the attached bot when the circuit is locked.

+

Arguments:

+
    +
  • new_value - A boolean that determines if the circuit is locked or not.
  • +
\ No newline at end of file diff --git a/obj/item/circuit_component/sdql_operation.html b/obj/item/circuit_component/sdql_operation.html new file mode 100644 index 0000000000000..6edab4a684606 --- /dev/null +++ b/obj/item/circuit_component/sdql_operation.html @@ -0,0 +1 @@ +/obj/item/circuit_component/sdql_operation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

SDQL Component

A component that performs an sdql operation

Vars

sdql_operationSDQL Operation to invoke

Var Details

sdql_operation

SDQL Operation to invoke

\ No newline at end of file diff --git a/obj/item/circuit_component/select.html b/obj/item/circuit_component/select.html new file mode 100644 index 0000000000000..33a3e33d5f675 --- /dev/null +++ b/obj/item/circuit_component/select.html @@ -0,0 +1 @@ +/obj/item/circuit_component/select - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Select Component

Selects a list from a list of lists by a specific column. Used only by USBs for communications to and from computers with lists of varying sizes.

Vars

column_nameThe name of the column to check
comparison_inputThe input to compare with
filtered_tableThe filtered list
received_tableThe list to perform the filter on

Var Details

column_name

The name of the column to check

comparison_input

The input to compare with

filtered_table

The filtered list

received_table

The list to perform the filter on

\ No newline at end of file diff --git a/obj/item/circuit_component/self.html b/obj/item/circuit_component/self.html new file mode 100644 index 0000000000000..3463d02795b00 --- /dev/null +++ b/obj/item/circuit_component/self.html @@ -0,0 +1 @@ +/obj/item/circuit_component/self - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Self Component

Return the current shell.

Vars

outputThe shell this component is attached to.
shell_receivedThe signal sent when the status is updated.

Var Details

output

The shell this component is attached to.

shell_received

The signal sent when the status is updated.

\ No newline at end of file diff --git a/obj/item/circuit_component/set_variable.html b/obj/item/circuit_component/set_variable.html new file mode 100644 index 0000000000000..91c5fe834ca72 --- /dev/null +++ b/obj/item/circuit_component/set_variable.html @@ -0,0 +1 @@ +/obj/item/circuit_component/set_variable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Set Variable Component

A component that sets a variable on an object

Vars

entityEntity to set variable of
new_valueNew value to set the variable name to.
resolve_weakrefsWhether to resolve weakrefs or not
variable_nameVariable name

Var Details

entity

Entity to set variable of

new_value

New value to set the variable name to.

resolve_weakrefs

Whether to resolve weakrefs or not

variable_name

Variable name

\ No newline at end of file diff --git a/obj/item/circuit_component/signal_handler.html b/obj/item/circuit_component/signal_handler.html new file mode 100644 index 0000000000000..91aad677f18b5 --- /dev/null +++ b/obj/item/circuit_component/signal_handler.html @@ -0,0 +1 @@ +/obj/item/circuit_component/signal_handler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Signal Handler Component

A component that registers signals on events and listens for them.

Vars

custom_signalWhether it is a custom signal id or not.
entityThe entity received from the event.
event_triggeredThe event has been triggered
input_signal_portsThe custom input from the current signal type.
instantWhether this executes instantly or not. If set to 0, this will not execute instantly.
output_signal_portsThe custom output from the current signal type.
registerRegisters the signal
registered_entitiesThe current entities that have the signal registered on it
registered_signalThe current registered signal
signal_handler_optionsWhether it is a global or object signal
signal_idThe list of signal IDs that can be selected as an option.
signal_portsThe custom signal ports from the current signal type. Used for saving and loading.
targetEntity to register the signal on
unregisterUnregisters the signal on the target.
unregister_allUnregisters the signal from everyone.

Var Details

custom_signal

Whether it is a custom signal id or not.

entity

The entity received from the event.

event_triggered

The event has been triggered

input_signal_ports

The custom input from the current signal type.

instant

Whether this executes instantly or not. If set to 0, this will not execute instantly.

output_signal_ports

The custom output from the current signal type.

register

Registers the signal

registered_entities

The current entities that have the signal registered on it

registered_signal

The current registered signal

signal_handler_options

Whether it is a global or object signal

signal_id

The list of signal IDs that can be selected as an option.

signal_ports

The custom signal ports from the current signal type. Used for saving and loading.

target

Entity to register the signal on

unregister

Unregisters the signal on the target.

unregister_all

Unregisters the signal from everyone.

\ No newline at end of file diff --git a/obj/item/circuit_component/soundemitter.html b/obj/item/circuit_component/soundemitter.html new file mode 100644 index 0000000000000..afbde83ce3857 --- /dev/null +++ b/obj/item/circuit_component/soundemitter.html @@ -0,0 +1 @@ +/obj/item/circuit_component/soundemitter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Sound Emitter Component

A component that emits a sound when it receives an input.

Vars

backwardsWhether to play the sound backwards
frequencyFrequency of the sound when played
max_pitchThe maximum pitch this component can play sounds at.
max_volumeThe maximum volume this component can play sounds at.
min_pitchThe minimum pitch this component can play sounds at.
sound_cooldownThe cooldown for this component of how often it can play sounds.
sound_fileSound to play
volumeVolume of the sound when played

Var Details

backwards

Whether to play the sound backwards

frequency

Frequency of the sound when played

max_pitch

The maximum pitch this component can play sounds at.

max_volume

The maximum volume this component can play sounds at.

min_pitch

The minimum pitch this component can play sounds at.

sound_cooldown

The cooldown for this component of how often it can play sounds.

sound_file

Sound to play

volume

Volume of the sound when played

\ No newline at end of file diff --git a/obj/item/circuit_component/spawn_atom.html b/obj/item/circuit_component/spawn_atom.html new file mode 100644 index 0000000000000..a0cb603f7ff75 --- /dev/null +++ b/obj/item/circuit_component/spawn_atom.html @@ -0,0 +1 @@ +/obj/item/circuit_component/spawn_atom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Spawn Atom Component

Spawns an atom.

Vars

input_pathThe input path to convert into a typepath
parametersParameters to pass to the atom being spawned
spawn_atThe turf to spawn them at
spawned_atomThe result from the output

Var Details

input_path

The input path to convert into a typepath

parameters

Parameters to pass to the atom being spawned

spawn_at

The turf to spawn them at

spawned_atom

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/species.html b/obj/item/circuit_component/species.html new file mode 100644 index 0000000000000..b6d8c5b56506a --- /dev/null +++ b/obj/item/circuit_component/species.html @@ -0,0 +1 @@ +/obj/item/circuit_component/species - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Get Species Component

Return the species of a mob

Vars

input_portThe input port
outputThe result from the output

Var Details

input_port

The input port

output

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/speech.html b/obj/item/circuit_component/speech.html new file mode 100644 index 0000000000000..9f8cb0ab039cf --- /dev/null +++ b/obj/item/circuit_component/speech.html @@ -0,0 +1 @@ +/obj/item/circuit_component/speech - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Speech Component

Sends a message. Requires a shell.

Vars

messageThe message to send
quietmodeThe quiet mode flag
speech_cooldownThe cooldown for this component of how often it can send speech messages.

Var Details

message

The message to send

quietmode

The quiet mode flag

speech_cooldown

The cooldown for this component of how often it can send speech messages.

\ No newline at end of file diff --git a/obj/item/circuit_component/split.html b/obj/item/circuit_component/split.html new file mode 100644 index 0000000000000..dc0f76008e621 --- /dev/null +++ b/obj/item/circuit_component/split.html @@ -0,0 +1 @@ +/obj/item/circuit_component/split - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Split component

Splits a string

Vars

input_portThe input port
outputThe result from the output
separatorThe seperator

Var Details

input_port

The input port

output

The result from the output

separator

The seperator

\ No newline at end of file diff --git a/obj/item/circuit_component/synth.html b/obj/item/circuit_component/synth.html new file mode 100644 index 0000000000000..6946f7eac9581 --- /dev/null +++ b/obj/item/circuit_component/synth.html @@ -0,0 +1 @@ +/obj/item/circuit_component/synth - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

synth

Vars

beats_per_minThe beats per minute of the song
is_playingWhether a song is currently playing
note_decayIf set the last held note will decay
note_shiftNote shift
playStarts playing the song.
repetitionsHow many times the song will be played.
selected_instrumentThe list of instruments which sound can be synthesized.
songThe song, represented in latin alphabet A to G, that'll be played when play is triggered.
started_playingSent when a new song has started playing
stopStop playing the song.
stopped_playingSent when a song has finished playing
sustain_modeSustain Mode
sustain_valueThe value of the above
synthThe synthesizer this circut is attached to.
volumeThe volume of the song
volume_dropoffNotes with volume below this threshold will be dead

Var Details

beats_per_min

The beats per minute of the song

is_playing

Whether a song is currently playing

note_decay

If set the last held note will decay

note_shift

Note shift

play

Starts playing the song.

repetitions

How many times the song will be played.

selected_instrument

The list of instruments which sound can be synthesized.

song

The song, represented in latin alphabet A to G, that'll be played when play is triggered.

started_playing

Sent when a new song has started playing

stop

Stop playing the song.

stopped_playing

Sent when a song has finished playing

sustain_mode

Sustain Mode

sustain_value

The value of the above

synth

The synthesizer this circut is attached to.

volume

The volume of the song

volume_dropoff

Notes with volume below this threshold will be dead

\ No newline at end of file diff --git a/obj/item/circuit_component/target_scanner.html b/obj/item/circuit_component/target_scanner.html new file mode 100644 index 0000000000000..b66816fd4063c --- /dev/null +++ b/obj/item/circuit_component/target_scanner.html @@ -0,0 +1 @@ +/obj/item/circuit_component/target_scanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Target Scanner Component

Allows for creating a list of atoms within a range of 1.

Vars

atom_tableThe table filled of atoms or "entities"
time_delaythe delay between each scan

Var Details

atom_table

The table filled of atoms or "entities"

time_delay

the delay between each scan

\ No newline at end of file diff --git a/obj/item/circuit_component/tempsensor.html b/obj/item/circuit_component/tempsensor.html new file mode 100644 index 0000000000000..229eefd9f1722 --- /dev/null +++ b/obj/item/circuit_component/tempsensor.html @@ -0,0 +1 @@ +/obj/item/circuit_component/tempsensor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Temperature Sensor

Returns the temperature of the tile

Vars

resultThe result from the output

Var Details

result

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/textcase.html b/obj/item/circuit_component/textcase.html new file mode 100644 index 0000000000000..1d5a95a52fcb7 --- /dev/null +++ b/obj/item/circuit_component/textcase.html @@ -0,0 +1 @@ +/obj/item/circuit_component/textcase - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Text Component

Either makes the text upper case or lower case.

Vars

input_portThe input port
outputThe result of the text operation

Var Details

input_port

The input port

output

The result of the text operation

\ No newline at end of file diff --git a/obj/item/circuit_component/timepiece.html b/obj/item/circuit_component/timepiece.html new file mode 100644 index 0000000000000..ebd9638ab8bc2 --- /dev/null +++ b/obj/item/circuit_component/timepiece.html @@ -0,0 +1 @@ +/obj/item/circuit_component/timepiece - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Timepiece Component

returns the current station time.

Vars

formatThe time format of the text output
num_outputseconds, minutes, hours.
text_outputThe output for 24/12 hour formats
time_unitThe unit of time for the numerical output

Var Details

format

The time format of the text output

num_output

seconds, minutes, hours.

text_output

The output for 24/12 hour formats

time_unit

The unit of time for the numerical output

\ No newline at end of file diff --git a/obj/item/circuit_component/to_type.html b/obj/item/circuit_component/to_type.html new file mode 100644 index 0000000000000..dcf685888b11a --- /dev/null +++ b/obj/item/circuit_component/to_type.html @@ -0,0 +1 @@ +/obj/item/circuit_component/to_type - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

To Type Component

Converts a string into a typepath. Useful for adding components.

Vars

input_pathThe input path to convert into a typepath
type_outputThe type output

Var Details

input_path

The input path to convert into a typepath

type_output

The type output

\ No newline at end of file diff --git a/obj/item/circuit_component/tonumber.html b/obj/item/circuit_component/tonumber.html new file mode 100644 index 0000000000000..cfeba63aa3a5b --- /dev/null +++ b/obj/item/circuit_component/tonumber.html @@ -0,0 +1,2 @@ +/obj/item/circuit_component/tonumber - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tonumber

#To Number Component

+

Converts a string into a Number

Vars

input_portThe input port
outputThe result from the output

Var Details

input_port

The input port

output

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/tostring.html b/obj/item/circuit_component/tostring.html new file mode 100644 index 0000000000000..2ead376fb8628 --- /dev/null +++ b/obj/item/circuit_component/tostring.html @@ -0,0 +1 @@ +/obj/item/circuit_component/tostring - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

To String Component

Converts any value into a string

Vars

input_portThe input port
outputThe result from the output

Var Details

input_port

The input port

output

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/trigonometry.html b/obj/item/circuit_component/trigonometry.html new file mode 100644 index 0000000000000..d17411d2d223e --- /dev/null +++ b/obj/item/circuit_component/trigonometry.html @@ -0,0 +1,2 @@ +/obj/item/circuit_component/trigonometry - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Trigonometric Component

General trigonometric unit with sine, cosine, tangent and their inverse functions. +This one only works with numbers.

Vars

input_portThe input port
outputThe result from the output

Var Details

input_port

The input port

output

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/variable.html b/obj/item/circuit_component/variable.html new file mode 100644 index 0000000000000..10a0fec3db794 --- /dev/null +++ b/obj/item/circuit_component/variable.html @@ -0,0 +1 @@ +/obj/item/circuit_component/variable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Variable Component

Abstract component for handling variables

Vars

variable_nameVariable name

Var Details

variable_name

Variable name

\ No newline at end of file diff --git a/obj/item/circuit_component/variable/assoc_list/list_remove.html b/obj/item/circuit_component/variable/assoc_list/list_remove.html new file mode 100644 index 0000000000000..a39789f70d68a --- /dev/null +++ b/obj/item/circuit_component/variable/assoc_list/list_remove.html @@ -0,0 +1 @@ +/obj/item/circuit_component/variable/assoc_list/list_remove - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Associative List Remove Component

Removes an element from an assoc list.

Vars

to_removeKey to remove to the list

Var Details

to_remove

Key to remove to the list

\ No newline at end of file diff --git a/obj/item/circuit_component/variable/assoc_list/list_set.html b/obj/item/circuit_component/variable/assoc_list/list_set.html new file mode 100644 index 0000000000000..25b5a6b390d60 --- /dev/null +++ b/obj/item/circuit_component/variable/assoc_list/list_set.html @@ -0,0 +1 @@ +/obj/item/circuit_component/variable/assoc_list/list_set - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Assoc List Set Component

Sets a string value on an assoc list.

Vars

failedFor when the list is too long, a signal is sent here.
keyKey to set
valueValue to set the key to.

Var Details

failed

For when the list is too long, a signal is sent here.

key

Key to set

value

Value to set the key to.

\ No newline at end of file diff --git a/obj/item/circuit_component/variable/getter.html b/obj/item/circuit_component/variable/getter.html new file mode 100644 index 0000000000000..fddcd7bf8d353 --- /dev/null +++ b/obj/item/circuit_component/variable/getter.html @@ -0,0 +1 @@ +/obj/item/circuit_component/variable/getter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Getter Component

Gets the current value from a variable.

Vars

valueThe value of the variable

Var Details

value

The value of the variable

\ No newline at end of file diff --git a/obj/item/circuit_component/variable/list/listadd.html b/obj/item/circuit_component/variable/list/listadd.html new file mode 100644 index 0000000000000..5884d9ee91b21 --- /dev/null +++ b/obj/item/circuit_component/variable/list/listadd.html @@ -0,0 +1 @@ +/obj/item/circuit_component/variable/list/listadd - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

List Add Component

Adds an element to a list.

Vars

allow_duplicateWhether to add duplicates or not
failedFor when the list is too long, a signal is sent here.
to_addElement to add to the list

Var Details

allow_duplicate

Whether to add duplicates or not

failed

For when the list is too long, a signal is sent here.

to_add

Element to add to the list

\ No newline at end of file diff --git a/obj/item/circuit_component/variable/list/listremove.html b/obj/item/circuit_component/variable/list/listremove.html new file mode 100644 index 0000000000000..d89d893ae114d --- /dev/null +++ b/obj/item/circuit_component/variable/list/listremove.html @@ -0,0 +1 @@ +/obj/item/circuit_component/variable/list/listremove - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

List Remove Component

Removes an element to a list.

Vars

to_removeElement to remove to the list

Var Details

to_remove

Element to remove to the list

\ No newline at end of file diff --git a/obj/item/circuit_component/variable/setter.html b/obj/item/circuit_component/variable/setter.html new file mode 100644 index 0000000000000..12844c1528237 --- /dev/null +++ b/obj/item/circuit_component/variable/setter.html @@ -0,0 +1 @@ +/obj/item/circuit_component/variable/setter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Setter Component

Stores the current input when triggered into a variable.

Vars

input_portThe input to store

Var Details

input_port

The input to store

\ No newline at end of file diff --git a/obj/item/circuit_component/vendor_component.html b/obj/item/circuit_component/vendor_component.html new file mode 100644 index 0000000000000..436be870bb62a --- /dev/null +++ b/obj/item/circuit_component/vendor_component.html @@ -0,0 +1 @@ +/obj/item/circuit_component/vendor_component - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vendor_component

Vars

item_to_vendThe item this vendor component should vend
vend_itemUsed to vend the item

Var Details

item_to_vend

The item this vendor component should vend

vend_item

Used to vend the item

\ No newline at end of file diff --git a/obj/item/circuit_component/view_sensor.html b/obj/item/circuit_component/view_sensor.html new file mode 100644 index 0000000000000..3bd2af0639e00 --- /dev/null +++ b/obj/item/circuit_component/view_sensor.html @@ -0,0 +1 @@ +/obj/item/circuit_component/view_sensor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

View Sensor

Returns all movable objects in view.

Vars

rangeAllows setting the range of the view sensor
resultThe result from the output

Var Details

range

Allows setting the range of the view sensor

result

The result from the output

\ No newline at end of file diff --git a/obj/item/circuit_component/vim.html b/obj/item/circuit_component/vim.html new file mode 100644 index 0000000000000..b8080c38e5f70 --- /dev/null +++ b/obj/item/circuit_component/vim.html @@ -0,0 +1 @@ +/obj/item/circuit_component/vim - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vim

Vars

are_headlights_onWhether the mech headlights are currently on.
buzzSent when the mech buzzes.
chimeSent when the mech chimes.

Var Details

are_headlights_on

Whether the mech headlights are currently on.

buzz

Sent when the mech buzzes.

chime

Sent when the mech chimes.

\ No newline at end of file diff --git a/obj/item/circuit_component/wiremod_gun.html b/obj/item/circuit_component/wiremod_gun.html new file mode 100644 index 0000000000000..2a0ae765fe9d1 --- /dev/null +++ b/obj/item/circuit_component/wiremod_gun.html @@ -0,0 +1 @@ +/obj/item/circuit_component/wiremod_gun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wiremod_gun

Vars

shooterThe shooter
shotThe entity being shot
signalCalled when a projectile hits

Procs

handle_chamberCalled when the shell item processes a new chamber
handle_shotCalled when the shell item shoots something

Var Details

shooter

The shooter

shot

The entity being shot

signal

Called when a projectile hits

Proc Details

handle_chamber

Called when the shell item processes a new chamber

handle_shot

Called when the shell item shoots something

\ No newline at end of file diff --git a/obj/item/circuit_component/wiremod_scanner.html b/obj/item/circuit_component/wiremod_scanner.html new file mode 100644 index 0000000000000..00753180caa7c --- /dev/null +++ b/obj/item/circuit_component/wiremod_scanner.html @@ -0,0 +1 @@ +/obj/item/circuit_component/wiremod_scanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wiremod_scanner

Vars

attackerThe attacker
attackingThe entity being attacked
signalCalled when afterattack is called on the shell.

Procs

handle_interactionCalled when the shell item attacks something

Var Details

attacker

The attacker

attacking

The entity being attacked

signal

Called when afterattack is called on the shell.

Proc Details

handle_interaction

Called when the shell item attacks something

\ No newline at end of file diff --git a/obj/item/circuitboard.html b/obj/item/circuitboard.html new file mode 100644 index 0000000000000..324315c3b664c --- /dev/null +++ b/obj/item/circuitboard.html @@ -0,0 +1,5 @@ +/obj/item/circuitboard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

circuitboard

Vars

all_products_freewhether or not the circuit board will build into a vendor whose products cost nothing (used for offstation vending machines mostly)
name_extensionextension that is applied after the initial name AKA (Computer/Machine Board)
specific_partsdetermines if the board requires specific levels of parts. (ie specifically a femto menipulator vs generic manipulator)

Procs

configure_machineUsed to allow the circuitboard to configure a machine in some way, shape or form.

Var Details

all_products_free

whether or not the circuit board will build into a vendor whose products cost nothing (used for offstation vending machines mostly)

name_extension

extension that is applied after the initial name AKA (Computer/Machine Board)

specific_parts

determines if the board requires specific levels of parts. (ie specifically a femto menipulator vs generic manipulator)

Proc Details

configure_machine

Used to allow the circuitboard to configure a machine in some way, shape or form.

+

Arguments:

+
    +
  • machine - The machine to attempt to configure.
  • +
\ No newline at end of file diff --git a/obj/item/circuitboard/computer/order_console/interdyne.html b/obj/item/circuitboard/computer/order_console/interdyne.html new file mode 100644 index 0000000000000..5b2dc603d6c80 --- /dev/null +++ b/obj/item/circuitboard/computer/order_console/interdyne.html @@ -0,0 +1,3 @@ +/obj/item/circuitboard/computer/order_console/interdyne - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Syndicate Produce Orders Console

A produce orders console modified to use a specified department account, and only allow express orders

+

This file is based off of order_computer.dm +Any changes made to that file should be copied over with discretion

\ No newline at end of file diff --git a/obj/item/circuitboard/machine/syndiepad.html b/obj/item/circuitboard/machine/syndiepad.html new file mode 100644 index 0000000000000..fef66fd0fde38 --- /dev/null +++ b/obj/item/circuitboard/machine/syndiepad.html @@ -0,0 +1,4 @@ +/obj/item/circuitboard/machine/syndiepad - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Syndicate Pad &amp; Pad Terminal

A citizen pad modified to accept goods and return money to a specified account

+

This file is based off of civilian_bounties.dm +Any changes made to that file should be copied over with discretion +Pad for the Syndicate Bounty Control.

\ No newline at end of file diff --git a/obj/item/circular_saw.html b/obj/item/circular_saw.html new file mode 100644 index 0000000000000..7e2e33480ba09 --- /dev/null +++ b/obj/item/circular_saw.html @@ -0,0 +1 @@ +/obj/item/circular_saw - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

circular_saw

Vars

surgical_tray_overlayHow this looks when placed in a surgical tray

Var Details

surgical_tray_overlay

How this looks when placed in a surgical tray

\ No newline at end of file diff --git a/obj/item/claymore/dragonslayer.html b/obj/item/claymore/dragonslayer.html new file mode 100644 index 0000000000000..3c6c5fa0f1f74 --- /dev/null +++ b/obj/item/claymore/dragonslayer.html @@ -0,0 +1 @@ +/obj/item/claymore/dragonslayer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dragonslayer

Vars

roll_rangehow far do we roll?
roll_stamcosthow much stamina does it cost to roll

Var Details

roll_range

how far do we roll?

roll_stamcost

how much stamina does it cost to roll

\ No newline at end of file diff --git a/obj/item/climbing_hook.html b/obj/item/climbing_hook.html new file mode 100644 index 0000000000000..5eba1223148b0 --- /dev/null +++ b/obj/item/climbing_hook.html @@ -0,0 +1 @@ +/obj/item/climbing_hook - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

climbing_hook

Vars

climb_timeclimb time
useshow many times can we climb with this rope

Procs

target_blockedchecks if our target is blocked, also checks for border objects facing the above turf and climbable stuff

Var Details

climb_time

climb time

uses

how many times can we climb with this rope

Proc Details

target_blocked

checks if our target is blocked, also checks for border objects facing the above turf and climbable stuff

\ No newline at end of file diff --git a/obj/item/clipboard.html b/obj/item/clipboard.html new file mode 100644 index 0000000000000..709eac1bc3a81 --- /dev/null +++ b/obj/item/clipboard.html @@ -0,0 +1,4 @@ +/obj/item/clipboard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

clipboard

Clipboard

Vars

integrated_penIs the pen integrated?
penThe stored pen
toppaper_refWeakref of the topmost piece of paper

Procs

on_top_paper_changeThis is a simple proc to handle calling update_icon() upon receiving the top paper's COMSIG_ATOM_UPDATE_APPEARANCE.
remove_paperTake out the topmost paper

Var Details

integrated_pen

Is the pen integrated?

pen

The stored pen

toppaper_ref

Weakref of the topmost piece of paper

+

This is used for the paper displayed on the clipboard's icon +and it is the one attacked, when attacking the clipboard. +(As you can't organise contents directly in BYOND)

Proc Details

on_top_paper_change

This is a simple proc to handle calling update_icon() upon receiving the top paper's COMSIG_ATOM_UPDATE_APPEARANCE.

remove_paper

Take out the topmost paper

\ No newline at end of file diff --git a/obj/item/clipboard/cyborg.html b/obj/item/clipboard/cyborg.html new file mode 100644 index 0000000000000..0e824f1053332 --- /dev/null +++ b/obj/item/clipboard/cyborg.html @@ -0,0 +1 @@ +/obj/item/clipboard/cyborg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cyborg

Vars

paper_charge_costHow much charge is required to print a piece of paper?
printer_cooldownWhen was the last time the printer was used?
printer_cooldown_timeHow long is the integrated printer's cooldown?

Var Details

paper_charge_cost

How much charge is required to print a piece of paper?

printer_cooldown

When was the last time the printer was used?

printer_cooldown_time

How long is the integrated printer's cooldown?

\ No newline at end of file diff --git a/obj/item/clockwork.html b/obj/item/clockwork.html new file mode 100644 index 0000000000000..7f400358ffea9 --- /dev/null +++ b/obj/item/clockwork.html @@ -0,0 +1 @@ +/obj/item/clockwork - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

clockwork

Vars

clockwork_descExtra info to give clock cultists, added via the /datum/element/clockwork_description element

Var Details

clockwork_desc

Extra info to give clock cultists, added via the /datum/element/clockwork_description element

\ No newline at end of file diff --git a/obj/item/clockwork/clockwork_slab.html b/obj/item/clockwork/clockwork_slab.html new file mode 100644 index 0000000000000..b204d0d6fa023 --- /dev/null +++ b/obj/item/clockwork/clockwork_slab.html @@ -0,0 +1 @@ +/obj/item/clockwork/clockwork_slab - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

clockwork_slab

Vars

active_scriptureFor scriptures that power the slab
charge_overlayWhat overlay the slab should use, should the active scripture have one
cogsHow many cogs this slab has currently
invoking_scriptureThe scripture currently being invoked
purchased_scripturesA list of what scriptures that this slab has purchased

Procs

bind_spellHandle binding a spell to a quickbind slot

Var Details

active_scripture

For scriptures that power the slab

charge_overlay

What overlay the slab should use, should the active scripture have one

cogs

How many cogs this slab has currently

invoking_scripture

The scripture currently being invoked

purchased_scriptures

A list of what scriptures that this slab has purchased

Proc Details

bind_spell

Handle binding a spell to a quickbind slot

\ No newline at end of file diff --git a/obj/item/clockwork/integration_cog.html b/obj/item/clockwork/integration_cog.html new file mode 100644 index 0000000000000..ffd0b005191a1 --- /dev/null +++ b/obj/item/clockwork/integration_cog.html @@ -0,0 +1 @@ +/obj/item/clockwork/integration_cog - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

integration_cog

Vars

set_upIf this cog has been set up, meaning that it is fully initialized (after APC insertion), granting a cog to the clock cultists

Procs

finish_setupFinish setting up the cog 5 minutes after insertion

Var Details

set_up

If this cog has been set up, meaning that it is fully initialized (after APC insertion), granting a cog to the clock cultists

Proc Details

finish_setup

Finish setting up the cog 5 minutes after insertion

\ No newline at end of file diff --git a/obj/item/clockwork/replica_fabricator.html b/obj/item/clockwork/replica_fabricator.html new file mode 100644 index 0000000000000..912b38c9178b6 --- /dev/null +++ b/obj/item/clockwork/replica_fabricator.html @@ -0,0 +1 @@ +/obj/item/clockwork/replica_fabricator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

replica_fabricator

Vars

crafting_possibilitiesList of things that the fabricator can build for the radial menu
fabrication_datumsList of initialized fabrication datums, created on Initialize
max_powerHow much power this can contain at most. By default, is 2 stacks of regular materials or 1 stack of brass
powerHow much power this has. 5 generated per sheet inserted, one sheet of bronze costs 10, one floor tile costs 15, one wall costs 20
selected_outputRef to the datum we have selected currently

Procs

attempt_convert_materialsAttempt to convert the targeted item into power, if it's a sheet item
check_menuStandard confirmation for the radial menu proc
create_fabrication_listCreates the list of initialized fabricator datums, done once on init

Var Details

crafting_possibilities

List of things that the fabricator can build for the radial menu

fabrication_datums

List of initialized fabrication datums, created on Initialize

max_power

How much power this can contain at most. By default, is 2 stacks of regular materials or 1 stack of brass

power

How much power this has. 5 generated per sheet inserted, one sheet of bronze costs 10, one floor tile costs 15, one wall costs 20

selected_output

Ref to the datum we have selected currently

Proc Details

attempt_convert_materials

Attempt to convert the targeted item into power, if it's a sheet item

check_menu

Standard confirmation for the radial menu proc

create_fabrication_list

Creates the list of initialized fabricator datums, done once on init

\ No newline at end of file diff --git a/obj/item/clockwork/trap_placer.html b/obj/item/clockwork/trap_placer.html new file mode 100644 index 0000000000000..7b2993d7af268 --- /dev/null +++ b/obj/item/clockwork/trap_placer.html @@ -0,0 +1 @@ +/obj/item/clockwork/trap_placer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

trap_placer

Vars

result_pathThe path of the trap to make when this is set down

Var Details

result_path

The path of the trap to make when this is set down

\ No newline at end of file diff --git a/obj/item/clockwork/weapon.html b/obj/item/clockwork/weapon.html new file mode 100644 index 0000000000000..b49fdd633a5fa --- /dev/null +++ b/obj/item/clockwork/weapon.html @@ -0,0 +1 @@ +/obj/item/clockwork/weapon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

weapon

Vars

effect_turf_typecacheTypecache of valid turfs to have the weapon's special effect on

Procs

hit_effectWhat occurs to non-holy people when attacked from brass tiles

Var Details

effect_turf_typecache

Typecache of valid turfs to have the weapon's special effect on

Proc Details

hit_effect

What occurs to non-holy people when attacked from brass tiles

\ No newline at end of file diff --git a/obj/item/clothing.html b/obj/item/clothing.html new file mode 100644 index 0000000000000..0149fb8a79a4a --- /dev/null +++ b/obj/item/clothing.html @@ -0,0 +1,27 @@ +/obj/item/clothing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

clothing

Vars

allowedList of items that can be equipped in the suit storage slot while we're worn.
attachment_slot_overrideFor clothing that does not have body_parts_covered = CHEST /etc but that we would still like to be able to attach an accessory to
clothing_traitsTrait modification, lazylist of traits to add/take away, on equipment/drop in the correct slot
damage_by_partsHow much clothing damage has been dealt to each of the limbs of the clothing, assuming it covers more than one limb
flash_protectWhat level of bright light protection item has.
limb_integrityHow much integrity is in a specific limb before that limb is disabled (for use in /obj/item/clothing/proc/take_damage_zone, and only if we cover multiple zones.) Set to 0 to disable shredding.
moth_snackA lazily initiated "food" version of the clothing for moths.
repairable_byWhat items can be consumed to repair this clothing (must by an /obj/item/stack)
stubborn_stainsPrevents the article of clothing from gaining the mood boost from washing. Used for the tacticool turtleneck.
visor_vars_to_toggleWhat to toggle when toggled with adjust_visor()
zones_disabledHow many zones (body parts, not precise) we have disabled so far, for naming purposes

Procs

adjust_visorProc that adjusts the clothing item, used by things like breathing masks, welding helmets, welding goggles etc.
armor_to_protection_classRounds armor_value down to the nearest 10, divides it by 10 and then converts it to Roman numerals.
attach_clothing_traitsInserts a trait (or multiple traits) into the clothing traits list
bristleIf we're a clothing with at least 1 shredded/disabled zone, give the wearer a periodic heads up letting them know their clothes are damaged
create_moth_snackCreates a food object in null space which we can eat and imagine we're eating this pair of shoes
detach_clothing_traitsRemoves a trait (or multiple traits) from the clothing traits list
disable_zonedisable_zone() is used to disable a given bodypart's protection on our clothing item, mainly from /obj/item/clothing/proc/take_damage_zone
repairSet the clothing's integrity back to 100%, remove all damage to bodyparts, and generally fix it up
take_damage_zonetake_damage_zone() is used for dealing damage to specific bodyparts on a worn piece of clothing, meant to be called from /obj/item/bodypart/proc/check_woundings_mods

Var Details

allowed

List of items that can be equipped in the suit storage slot while we're worn.

attachment_slot_override

For clothing that does not have body_parts_covered = CHEST /etc but that we would still like to be able to attach an accessory to

clothing_traits

Trait modification, lazylist of traits to add/take away, on equipment/drop in the correct slot

damage_by_parts

How much clothing damage has been dealt to each of the limbs of the clothing, assuming it covers more than one limb

flash_protect

What level of bright light protection item has.

limb_integrity

How much integrity is in a specific limb before that limb is disabled (for use in /obj/item/clothing/proc/take_damage_zone, and only if we cover multiple zones.) Set to 0 to disable shredding.

moth_snack

A lazily initiated "food" version of the clothing for moths.

repairable_by

What items can be consumed to repair this clothing (must by an /obj/item/stack)

stubborn_stains

Prevents the article of clothing from gaining the mood boost from washing. Used for the tacticool turtleneck.

visor_vars_to_toggle

What to toggle when toggled with adjust_visor()

zones_disabled

How many zones (body parts, not precise) we have disabled so far, for naming purposes

Proc Details

adjust_visor

Proc that adjusts the clothing item, used by things like breathing masks, welding helmets, welding goggles etc.

armor_to_protection_class

Rounds armor_value down to the nearest 10, divides it by 10 and then converts it to Roman numerals.

+

Arguments:

+
    +
  • armor_value - Number we're converting
  • +

attach_clothing_traits

Inserts a trait (or multiple traits) into the clothing traits list

+

If worn, then we will also give the wearer the trait as if equipped

+

This is so you can add clothing traits without worrying about needing to equip or unequip them to gain effects

bristle

If we're a clothing with at least 1 shredded/disabled zone, give the wearer a periodic heads up letting them know their clothes are damaged

create_moth_snack

Creates a food object in null space which we can eat and imagine we're eating this pair of shoes

detach_clothing_traits

Removes a trait (or multiple traits) from the clothing traits list

+

If worn, then we will also remove the trait from the wearer as if unequipped

+

This is so you can add clothing traits without worrying about needing to equip or unequip them to gain effects

disable_zone

disable_zone() is used to disable a given bodypart's protection on our clothing item, mainly from /obj/item/clothing/proc/take_damage_zone

+

This proc disables all protection on the specified bodypart for this piece of clothing: it'll be as if it doesn't cover it at all anymore (because it won't!) +If every possible bodypart has been disabled on the clothing, we put it out of commission entirely and mark it as shredded, whereby it will have to be repaired in +order to equip it again. Also note we only consider it damaged if there's more than one bodypart disabled.

+

Arguments:

+
    +
  • def_zone: The bodypart zone we're disabling
  • +
  • damage_type: Only really relevant for the verb for describing the breaking, and maybe atom_destruction()
  • +

repair

Set the clothing's integrity back to 100%, remove all damage to bodyparts, and generally fix it up

take_damage_zone

take_damage_zone() is used for dealing damage to specific bodyparts on a worn piece of clothing, meant to be called from /obj/item/bodypart/proc/check_woundings_mods

+

This proc only matters when a bodypart that this clothing is covering is harmed by a direct attack (being on fire or in space need not apply), and only if this clothing covers +more than one bodypart to begin with. No point in tracking damage by zone for a hat, and I'm not cruel enough to let you fully break them in a few shots. +Also if limb_integrity is 0, then this clothing doesn't have bodypart damage enabled so skip it.

+

Arguments:

+
    +
  • def_zone: The bodypart zone in question
  • +
  • damage_amount: Incoming damage
  • +
  • damage_type: BRUTE or BURN
  • +
  • armour_penetration: If the attack had armour_penetration
  • +
\ No newline at end of file diff --git a/obj/item/clothing/accessory.html b/obj/item/clothing/accessory.html new file mode 100644 index 0000000000000..8b1e4ac04e07a --- /dev/null +++ b/obj/item/clothing/accessory.html @@ -0,0 +1,11 @@ +/obj/item/clothing/accessory - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

accessory

Clothing accessories.

+

These items can be slotted onto an undershirt to provide a bit of flair.

+

These should be very light on their effects. Armor should be avoided entirely.

+

Multiple accessories can be equipped on a mob, and only the firstmost one is shown on their sprite. +The rest are still shown on examine, but this may create unfair circumstances when you can't examine someone.

Vars

above_suitWhether or not the accessory displays through suits and the like.
attachment_slotWhat equipment slot the accessory attaches to. +If NONE, can always attach, while if supplied, can only attach if the clothing covers this slot.
minimize_when_attachedTRUE if shown as a small icon in corner, FALSE if overlayed

Procs

accessory_droppedCalled when the uniform this accessory is pinned to is dropped
accessory_equippedCalled when the uniform this accessory is pinned to is equipped in a valid slot
attachActually attach this accessory to the passed clothing article.
detachDetach this accessory from the passed clothing article
on_uniform_adjustedSignal proc for COMSIG_CLOTHING_UNDER_ADJUSTED on the uniform we're pinned to +Checks if we can no longer be attached to the uniform, and if so, drops us
on_uniform_droppedSignal proc for COMSIG_ITEM_DROPPED on the uniform we're pinned to
on_uniform_equippedSignal proc for COMSIG_ITEM_EQUIPPED on the uniform we're pinned to
on_uniform_updateSignal proc for COMSIG_ATOM_UPDATE_OVERLAYS on the uniform we're pinned to to add our overlays to the inventory icon
successful_attachCalled after attach is completely successful and the accessory is in the clothing's loc

Var Details

above_suit

Whether or not the accessory displays through suits and the like.

attachment_slot

What equipment slot the accessory attaches to. +If NONE, can always attach, while if supplied, can only attach if the clothing covers this slot.

minimize_when_attached

TRUE if shown as a small icon in corner, FALSE if overlayed

Proc Details

accessory_dropped

Called when the uniform this accessory is pinned to is dropped

accessory_equipped

Called when the uniform this accessory is pinned to is equipped in a valid slot

attach

Actually attach this accessory to the passed clothing article.

+

The accessory is not yet within the clothing's loc at this point, this hapens after success.

detach

Detach this accessory from the passed clothing article

+

We may have exited the clothing's loc at this point

on_uniform_adjusted

Signal proc for COMSIG_CLOTHING_UNDER_ADJUSTED on the uniform we're pinned to +Checks if we can no longer be attached to the uniform, and if so, drops us

on_uniform_dropped

Signal proc for COMSIG_ITEM_DROPPED on the uniform we're pinned to

on_uniform_equipped

Signal proc for COMSIG_ITEM_EQUIPPED on the uniform we're pinned to

on_uniform_update

Signal proc for COMSIG_ATOM_UPDATE_OVERLAYS on the uniform we're pinned to to add our overlays to the inventory icon

successful_attach

Called after attach is completely successful and the accessory is in the clothing's loc

\ No newline at end of file diff --git a/obj/item/clothing/accessory/dogtag.html b/obj/item/clothing/accessory/dogtag.html new file mode 100644 index 0000000000000..fb11a847ffc1d --- /dev/null +++ b/obj/item/clothing/accessory/dogtag.html @@ -0,0 +1 @@ +/obj/item/clothing/accessory/dogtag - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dogtag

Vars

displayWhat message is displayed when our dogtags / its clothes / its wearer is examined

Procs

on_examineAdds the examine message to the clothes and mob.

Var Details

display

What message is displayed when our dogtags / its clothes / its wearer is examined

Proc Details

on_examine

Adds the examine message to the clothes and mob.

\ No newline at end of file diff --git a/obj/item/clothing/accessory/lewdapron.html b/obj/item/clothing/accessory/lewdapron.html new file mode 100644 index 0000000000000..d827f9de941a7 --- /dev/null +++ b/obj/item/clothing/accessory/lewdapron.html @@ -0,0 +1 @@ +/obj/item/clothing/accessory/lewdapron - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lewdapron

Vars

apron_designsList of all apron designs, used in selecting one in the radial menu
color_changedIf the color has been changed before
current_colorCurrent color of the apron, can change and affects sprite

Procs

check_menuto check if we can change kinkphones's model
populate_apron_designscreate radial menu

Var Details

apron_designs

List of all apron designs, used in selecting one in the radial menu

color_changed

If the color has been changed before

current_color

Current color of the apron, can change and affects sprite

Proc Details

check_menu

to check if we can change kinkphones's model

populate_apron_designs

create radial menu

\ No newline at end of file diff --git a/obj/item/clothing/accessory/medal.html b/obj/item/clothing/accessory/medal.html new file mode 100644 index 0000000000000..d4a86bd9a9fdd --- /dev/null +++ b/obj/item/clothing/accessory/medal.html @@ -0,0 +1 @@ +/obj/item/clothing/accessory/medal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

medal

Vars

awarded_toWho was first given this medal
awarderWho gave out this medal
commendation_messageHas this been use for a commendation?
medaltypeSprite used for medalbox

Procs

provide_reasonInput a reason for the medal for the round end screen

Var Details

awarded_to

Who was first given this medal

awarder

Who gave out this medal

commendation_message

Has this been use for a commendation?

medaltype

Sprite used for medalbox

Proc Details

provide_reason

Input a reason for the medal for the round end screen

\ No newline at end of file diff --git a/obj/item/clothing/accessory/medal/silver/emergency_services.html b/obj/item/clothing/accessory/medal/silver/emergency_services.html new file mode 100644 index 0000000000000..81d15205b4402 --- /dev/null +++ b/obj/item/clothing/accessory/medal/silver/emergency_services.html @@ -0,0 +1 @@ +/obj/item/clothing/accessory/medal/silver/emergency_services - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

emergency_services

Vars

insignia_descFlavor text that is appended to the description.

Var Details

insignia_desc

Flavor text that is appended to the description.

\ No newline at end of file diff --git a/obj/item/clothing/accessory/press_badge.html b/obj/item/clothing/accessory/press_badge.html new file mode 100644 index 0000000000000..deac857a61613 --- /dev/null +++ b/obj/item/clothing/accessory/press_badge.html @@ -0,0 +1 @@ +/obj/item/clothing/accessory/press_badge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

press_badge

Vars

journalist_nameThe name of the person in the badge
press_nameThe name of the press person is working for

Var Details

journalist_name

The name of the person in the badge

press_name

The name of the press person is working for

\ No newline at end of file diff --git a/obj/item/clothing/accessory/spy_bug.html b/obj/item/clothing/accessory/spy_bug.html new file mode 100644 index 0000000000000..99f1c118d7fd1 --- /dev/null +++ b/obj/item/clothing/accessory/spy_bug.html @@ -0,0 +1 @@ +/obj/item/clothing/accessory/spy_bug - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spy_bug

Vars

cam_rangeHow far can we actually see? Ranges higher than one can be used to see through walls.
cam_screenOur camera display popup
linked_glassesThe glasses that you can use to see what this can see
trackerDetects when we move to update the camera view

Var Details

cam_range

How far can we actually see? Ranges higher than one can be used to see through walls.

cam_screen

Our camera display popup

linked_glasses

The glasses that you can use to see what this can see

tracker

Detects when we move to update the camera view

\ No newline at end of file diff --git a/obj/item/clothing/ears/kinky_headphones.html b/obj/item/clothing/ears/kinky_headphones.html new file mode 100644 index 0000000000000..268fa708de9cd --- /dev/null +++ b/obj/item/clothing/ears/kinky_headphones.html @@ -0,0 +1 @@ +/obj/item/clothing/ears/kinky_headphones - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

kinky_headphones

Vars

color_changedIf the color has been changed before
current_kinkphones_colorCurrent color of the headphones, can affect sprite and can change
kinkphones_designsList of designs used when picking a color in the radial menu
kinky_headphones_onIf the headphones are on or off

Procs

check_menuto check if we can change kinkphones's model

Var Details

color_changed

If the color has been changed before

current_kinkphones_color

Current color of the headphones, can affect sprite and can change

kinkphones_designs

List of designs used when picking a color in the radial menu

kinky_headphones_on

If the headphones are on or off

Proc Details

check_menu

to check if we can change kinkphones's model

\ No newline at end of file diff --git a/obj/item/clothing/erp_leash.html b/obj/item/clothing/erp_leash.html new file mode 100644 index 0000000000000..5079ffa532afc --- /dev/null +++ b/obj/item/clothing/erp_leash.html @@ -0,0 +1,3 @@ +/obj/item/clothing/erp_leash - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

erp_leash

Vars

leash_lineLeash line visual for the hooked item // BUBBER EDIT
our_leash_componentWeakref to the leash component we're using, if it exists.

Procs

attackHERE BE DRAGONS /// +Checks; leashing start
create_leashLeash Initialization
remove_leashLeash removal

Var Details

leash_line

Leash line visual for the hooked item // BUBBER EDIT

our_leash_component

Weakref to the leash component we're using, if it exists.

Proc Details

attack

HERE BE DRAGONS /// +Checks; leashing start

create_leash

Leash Initialization

remove_leash

Leash removal

\ No newline at end of file diff --git a/obj/item/clothing/glasses.html b/obj/item/clothing/glasses.html new file mode 100644 index 0000000000000..802f2781c41bc --- /dev/null +++ b/obj/item/clothing/glasses.html @@ -0,0 +1,3 @@ +/obj/item/clothing/glasses - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

glasses

Vars

color_cutoffsSimilar to lighting_cutoff, except it has individual r g and b components in the same 0-100 scale
currentThe current hud icons
forced_glass_colorWhether or not vision coloring is forcing
glass_colour_typeColors your vision when worn
invis_overrideOverride to allow glasses to set higher than normal see_invis
lighting_cutoffA percentage of how much rgb to "max" on the lighting plane +This lets us brighten darkness without washing out bright color

Var Details

color_cutoffs

Similar to lighting_cutoff, except it has individual r g and b components in the same 0-100 scale

current

The current hud icons

forced_glass_color

Whether or not vision coloring is forcing

glass_colour_type

Colors your vision when worn

invis_override

Override to allow glasses to set higher than normal see_invis

lighting_cutoff

A percentage of how much rgb to "max" on the lighting plane +This lets us brighten darkness without washing out bright color

\ No newline at end of file diff --git a/obj/item/clothing/glasses/blindfold/kinky.html b/obj/item/clothing/glasses/blindfold/kinky.html new file mode 100644 index 0000000000000..0b4a55c356dfa --- /dev/null +++ b/obj/item/clothing/glasses/blindfold/kinky.html @@ -0,0 +1 @@ +/obj/item/clothing/glasses/blindfold/kinky - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

kinky

Vars

color_changedIF the color has been changed before
current_kinkfold_colorCurrent color of the blindfold. Can be changed and affect sprite
kinkfold_designsList of blindfold designs, used when picking one in the radial menu

Procs

check_menuto check if we can change kinkphones's model

Var Details

color_changed

IF the color has been changed before

current_kinkfold_color

Current color of the blindfold. Can be changed and affect sprite

kinkfold_designs

List of blindfold designs, used when picking one in the radial menu

Proc Details

check_menu

to check if we can change kinkphones's model

\ No newline at end of file diff --git a/obj/item/clothing/glasses/clockwork.html b/obj/item/clothing/glasses/clockwork.html new file mode 100644 index 0000000000000..5e506efc645b4 --- /dev/null +++ b/obj/item/clothing/glasses/clockwork.html @@ -0,0 +1 @@ +/obj/item/clothing/glasses/clockwork - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

clockwork

Vars

clock_descWhat additional desc to show if the person examining is a clock cultist

Var Details

clock_desc

What additional desc to show if the person examining is a clock cultist

\ No newline at end of file diff --git a/obj/item/clothing/glasses/clockwork/judicial_visor.html b/obj/item/clothing/glasses/clockwork/judicial_visor.html new file mode 100644 index 0000000000000..c24a2768ee431 --- /dev/null +++ b/obj/item/clothing/glasses/clockwork/judicial_visor.html @@ -0,0 +1 @@ +/obj/item/clothing/glasses/clockwork/judicial_visor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

judicial_visor

Vars

damagingShould the user take damage from wearing this the first time? (Doesn't affect nodrop)
enabledIs this enabled
wearerWearer of the visor

Procs

apply_to_wearerApplies the actual effects to the wearer, giving them flash protection and a variety of sight/info bonuses
disableTurn off the visor, calling unapply_to_wearer() and changing the icon state
enableTurn on the visor, calling apply_to_wearer() and changing the icon state
unapply_to_wearerRemoves the effects to the wearer, removing the flash protection and similar

Var Details

damaging

Should the user take damage from wearing this the first time? (Doesn't affect nodrop)

enabled

Is this enabled

wearer

Wearer of the visor

Proc Details

apply_to_wearer

Applies the actual effects to the wearer, giving them flash protection and a variety of sight/info bonuses

disable

Turn off the visor, calling unapply_to_wearer() and changing the icon state

enable

Turn on the visor, calling apply_to_wearer() and changing the icon state

unapply_to_wearer

Removes the effects to the wearer, removing the flash protection and similar

\ No newline at end of file diff --git a/obj/item/clothing/glasses/clockwork/wraith_spectacles.html b/obj/item/clothing/glasses/clockwork/wraith_spectacles.html new file mode 100644 index 0000000000000..f0cbb4277913e --- /dev/null +++ b/obj/item/clothing/glasses/clockwork/wraith_spectacles.html @@ -0,0 +1 @@ +/obj/item/clothing/glasses/clockwork/wraith_spectacles - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wraith_spectacles

Vars

enabledAre the glasses enabled (flipped down)
wearerWho is currently wearing the goggles

Procs

de_toggle_eyesThe stopping of effect application, will remove the wearer's eye damage a minute after
disable"disable" the spectacles, flipping them up and removing all applied effects
enable"enable" the spectacles, flipping them down and applying their effects, calling on_toggle_eyes() if someone is wearing them
on_toggle_eyesThe start of application of the actual effects, including eye damage

Var Details

enabled

Are the glasses enabled (flipped down)

wearer

Who is currently wearing the goggles

Proc Details

de_toggle_eyes

The stopping of effect application, will remove the wearer's eye damage a minute after

disable

"disable" the spectacles, flipping them up and removing all applied effects

enable

"enable" the spectacles, flipping them down and applying their effects, calling on_toggle_eyes() if someone is wearing them

on_toggle_eyes

The start of application of the actual effects, including eye damage

\ No newline at end of file diff --git a/obj/item/clothing/glasses/hud/ar.html b/obj/item/clothing/glasses/hud/ar.html new file mode 100644 index 0000000000000..48b4cf26f5a14 --- /dev/null +++ b/obj/item/clothing/glasses/hud/ar.html @@ -0,0 +1,3 @@ +/obj/item/clothing/glasses/hud/ar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ar

Vars

glasses_typeBecause initial() will not work on subtypes from within the parent we need to store a reference to the type of the glasses calling the procs
modeThe current operating mode
modesSets a list of modes to cycle through
modes_msgDefines messages that will be shown to the user upon switching modes (e.g. turning it on)
modeswitch_soundDefines sound to be played upon mode switching
off_stateIconstate for when the status is off (TODO: off_state --> modes_states list for expandability)
permanent_clothing_traitsLazylist of traits that will not be removed if we switch modes.

Procs

InitializeReuse logic from engine_goggles.dm
freeze_animationCreate new icon and worn_icon, with only the first frame of every state and setting that as icon. +this practically freezes the animation :)

Var Details

glasses_type

Because initial() will not work on subtypes from within the parent we need to store a reference to the type of the glasses calling the procs

mode

The current operating mode

modes

Sets a list of modes to cycle through

modes_msg

Defines messages that will be shown to the user upon switching modes (e.g. turning it on)

modeswitch_sound

Defines sound to be played upon mode switching

off_state

Iconstate for when the status is off (TODO: off_state --> modes_states list for expandability)

permanent_clothing_traits

Lazylist of traits that will not be removed if we switch modes.

Proc Details

Initialize

Reuse logic from engine_goggles.dm

freeze_animation

Create new icon and worn_icon, with only the first frame of every state and setting that as icon. +this practically freezes the animation :)

\ No newline at end of file diff --git a/obj/item/clothing/glasses/hud/ar/projector.html b/obj/item/clothing/glasses/hud/ar/projector.html new file mode 100644 index 0000000000000..2d8e7fcfa376e --- /dev/null +++ b/obj/item/clothing/glasses/hud/ar/projector.html @@ -0,0 +1 @@ +/obj/item/clothing/glasses/hud/ar/projector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

projector

Vars

off_stateIt doesn't actually cover up any parts

Var Details

off_state

It doesn't actually cover up any parts

\ No newline at end of file diff --git a/obj/item/clothing/glasses/hypno.html b/obj/item/clothing/glasses/hypno.html new file mode 100644 index 0000000000000..d4e719e88999a --- /dev/null +++ b/obj/item/clothing/glasses/hypno.html @@ -0,0 +1 @@ +/obj/item/clothing/glasses/hypno - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hypno

Vars

codephraseThe hypnotic codephrase. Default always required otherwise things break.
color_changedIf the color of the goggles have been changed before.
current_hypnogoggles_colorCurrent color of the goggles, can change and affects sprite
hypnogoggles_designsStatic list of all goggle designs, used in the color picker radial selection menu
victimThe person wearing the goggles

Procs

populate_hypnogoggles_designsPopulates the list of hypnogoggle designs to pick from, called on init

Var Details

codephrase

The hypnotic codephrase. Default always required otherwise things break.

color_changed

If the color of the goggles have been changed before.

current_hypnogoggles_color

Current color of the goggles, can change and affects sprite

hypnogoggles_designs

Static list of all goggle designs, used in the color picker radial selection menu

victim

The person wearing the goggles

Proc Details

populate_hypnogoggles_designs

Populates the list of hypnogoggle designs to pick from, called on init

\ No newline at end of file diff --git a/obj/item/clothing/glasses/nightmare_vision.html b/obj/item/clothing/glasses/nightmare_vision.html new file mode 100644 index 0000000000000..cc1fb3525097c --- /dev/null +++ b/obj/item/clothing/glasses/nightmare_vision.html @@ -0,0 +1 @@ +/obj/item/clothing/glasses/nightmare_vision - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nightmare_vision

Vars

stored_hallucinationHallucination datum currently being used for seeing mares

Var Details

stored_hallucination

Hallucination datum currently being used for seeing mares

\ No newline at end of file diff --git a/obj/item/clothing/glasses/salesman.html b/obj/item/clothing/glasses/salesman.html new file mode 100644 index 0000000000000..ad5b481684443 --- /dev/null +++ b/obj/item/clothing/glasses/salesman.html @@ -0,0 +1 @@ +/obj/item/clothing/glasses/salesman - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

salesman

Vars

bigshotTells us who the current wearer([BIGSHOT]) is.

Var Details

bigshot

Tells us who the current wearer([BIGSHOT]) is.

\ No newline at end of file diff --git a/obj/item/clothing/glasses/welding/steampunk_goggles.html b/obj/item/clothing/glasses/welding/steampunk_goggles.html new file mode 100644 index 0000000000000..4b949c5140b85 --- /dev/null +++ b/obj/item/clothing/glasses/welding/steampunk_goggles.html @@ -0,0 +1 @@ +/obj/item/clothing/glasses/welding/steampunk_goggles - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

steampunk_goggles

Vars

shutters_soundThe sound played when toggling the shutters.
welding_protectionWas welding protection toggled on, if welding_upgraded is TRUE?
welding_upgradedWas welding protection added yet?

Procs

handle_sight_updatingProc handling to update the sight of the user, while forcing an update_tint() call every time, due to how the welding protection toggle works.
toggle_shuttersProc that handles the whole toggling the welding protection on and off, with user feedback.
toggle_vision_effectsProc handling changing the flash protection and the tint of the goggles.
toggle_welding_protectionThis is the proc that handles toggling the welding protection, while also making sure to update the sight of a mob wearing it.

Var Details

shutters_sound

The sound played when toggling the shutters.

welding_protection

Was welding protection toggled on, if welding_upgraded is TRUE?

welding_upgraded

Was welding protection added yet?

Proc Details

handle_sight_updating

Proc handling to update the sight of the user, while forcing an update_tint() call every time, due to how the welding protection toggle works.

toggle_shutters

Proc that handles the whole toggling the welding protection on and off, with user feedback.

toggle_vision_effects

Proc handling changing the flash protection and the tint of the goggles.

toggle_welding_protection

This is the proc that handles toggling the welding protection, while also making sure to update the sight of a mob wearing it.

\ No newline at end of file diff --git a/obj/item/clothing/gloves.html b/obj/item/clothing/gloves.html new file mode 100644 index 0000000000000..138365da82193 --- /dev/null +++ b/obj/item/clothing/gloves.html @@ -0,0 +1 @@ +/obj/item/clothing/gloves - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gloves

Vars

transfer_bloodUsed for handling bloody gloves leaving behind bloodstains on objects. Will be decremented whenever a bloodstain is left behind, and be incremented when the gloves become bloody.

Var Details

transfer_blood

Used for handling bloody gloves leaving behind bloodstains on objects. Will be decremented whenever a bloodstain is left behind, and be incremented when the gloves become bloody.

\ No newline at end of file diff --git a/obj/item/clothing/gloves/boxing.html b/obj/item/clothing/gloves/boxing.html new file mode 100644 index 0000000000000..04c900eb0cb1c --- /dev/null +++ b/obj/item/clothing/gloves/boxing.html @@ -0,0 +1 @@ +/obj/item/clothing/gloves/boxing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

boxing

Vars

style_to_giveDetermines the version of boxing (or any martial art for that matter) that the boxing gloves gives

Var Details

style_to_give

Determines the version of boxing (or any martial art for that matter) that the boxing gloves gives

\ No newline at end of file diff --git a/obj/item/clothing/gloves/cargo_gauntlet.html b/obj/item/clothing/gloves/cargo_gauntlet.html new file mode 100644 index 0000000000000..74be297d1e1fd --- /dev/null +++ b/obj/item/clothing/gloves/cargo_gauntlet.html @@ -0,0 +1 @@ +/obj/item/clothing/gloves/cargo_gauntlet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cargo_gauntlet

Procs

on_glove_equipCalled when the glove is equipped. Adds a component to the equipper and stores a weak reference to it.

Proc Details

on_glove_equip

Called when the glove is equipped. Adds a component to the equipper and stores a weak reference to it.

\ No newline at end of file diff --git a/obj/item/clothing/gloves/fishing.html b/obj/item/clothing/gloves/fishing.html new file mode 100644 index 0000000000000..328c41bb1474a --- /dev/null +++ b/obj/item/clothing/gloves/fishing.html @@ -0,0 +1 @@ +/obj/item/clothing/gloves/fishing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fishing

A pair of gloves that both allow the user to fish without the need of a held fishing rod and provides athletics experience.

Vars

challengeThe current fishing minigame datum the wearer is engaged in.

Var Details

challenge

The current fishing minigame datum the wearer is engaged in.

\ No newline at end of file diff --git a/obj/item/clothing/gloves/shibari_hands.html b/obj/item/clothing/gloves/shibari_hands.html new file mode 100644 index 0000000000000..cde912ce2b8cf --- /dev/null +++ b/obj/item/clothing/gloves/shibari_hands.html @@ -0,0 +1 @@ +/obj/item/clothing/gloves/shibari_hands - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shibari_hands

Vars

glowshould this clothing item use the emissive system

Var Details

glow

should this clothing item use the emissive system

\ No newline at end of file diff --git a/obj/item/clothing/gloves/tackler.html b/obj/item/clothing/gloves/tackler.html new file mode 100644 index 0000000000000..37ad3190131fd --- /dev/null +++ b/obj/item/clothing/gloves/tackler.html @@ -0,0 +1 @@ +/obj/item/clothing/gloves/tackler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tackler

Vars

base_knockdownSee: /datum/component/tackler/var/base_knockdown
fishing_modifierHow much these gloves affect fishing difficulty
min_distanceSee: /datum/component/tackler/var/min_distance
skill_modSee: /datum/component/tackler/var/skill_mod
tackle_rangeSee: /datum/component/tackler/var/range
tackle_speedSee: /datum/component/tackler/var/speed
tackle_stam_costSee: /datum/component/tackler/var/stamina_cost
tacklerFor storing our tackler datum so we can remove it after

Var Details

base_knockdown

See: /datum/component/tackler/var/base_knockdown

fishing_modifier

How much these gloves affect fishing difficulty

min_distance

See: /datum/component/tackler/var/min_distance

skill_mod

See: /datum/component/tackler/var/skill_mod

tackle_range

See: /datum/component/tackler/var/range

tackle_speed

See: /datum/component/tackler/var/speed

tackle_stam_cost

See: /datum/component/tackler/var/stamina_cost

tackler

For storing our tackler datum so we can remove it after

\ No newline at end of file diff --git a/obj/item/clothing/head.html b/obj/item/clothing/head.html new file mode 100644 index 0000000000000..4b78ca046e11e --- /dev/null +++ b/obj/item/clothing/head.html @@ -0,0 +1,3 @@ +/obj/item/clothing/head - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

head

Procs

throw_impactSpecial throw_impact for hats to frisbee hats at people to place them on their heads/attempt to de-hat them.
update_on_removedAfter the hat has actually been removed from the mob, we can update what needs to be updated here
visual_equippedFor making sure that snouts with the (Top) suffix have their gear layered correctly +Also handles hiding the ear slot properly after equipping a hat

Proc Details

throw_impact

Special throw_impact for hats to frisbee hats at people to place them on their heads/attempt to de-hat them.

update_on_removed

After the hat has actually been removed from the mob, we can update what needs to be updated here

visual_equipped

For making sure that snouts with the (Top) suffix have their gear layered correctly +Also handles hiding the ear slot properly after equipping a hat

\ No newline at end of file diff --git a/obj/item/clothing/head/beanie/black/dboy.html b/obj/item/clothing/head/beanie/black/dboy.html new file mode 100644 index 0000000000000..a38d916097af4 --- /dev/null +++ b/obj/item/clothing/head/beanie/black/dboy.html @@ -0,0 +1 @@ +/obj/item/clothing/head/beanie/black/dboy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dboy

Vars

beanie_ownerUsed for the extra flavor text the d-boy himself sees

Var Details

beanie_owner

Used for the extra flavor text the d-boy himself sees

\ No newline at end of file diff --git a/obj/item/clothing/head/costume/festive.html b/obj/item/clothing/head/costume/festive.html new file mode 100644 index 0000000000000..fd81f7110bfae --- /dev/null +++ b/obj/item/clothing/head/costume/festive.html @@ -0,0 +1,4 @@ +/obj/item/clothing/head/costume/festive - /tg/ Station 13
/tg/ Station 13 - Modules - Types

festive

NONE(Squash) +Clothing that does not have a digitigrade version, and thus will squash legs to fit.

+

NO NEW ICON +Clothing that do not require a new icon to function correctly, think, big jackets.

\ No newline at end of file diff --git a/obj/item/clothing/head/costume/foilhat.html b/obj/item/clothing/head/costume/foilhat.html new file mode 100644 index 0000000000000..d91dbb433f411 --- /dev/null +++ b/obj/item/clothing/head/costume/foilhat.html @@ -0,0 +1 @@ +/obj/item/clothing/head/costume/foilhat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

foilhat

Procs

drain_antimagicWhen the foilhat is drained an anti-magic charge.

Proc Details

drain_antimagic

When the foilhat is drained an anti-magic charge.

\ No newline at end of file diff --git a/obj/item/clothing/head/costume/ushanka.html b/obj/item/clothing/head/costume/ushanka.html new file mode 100644 index 0000000000000..a03690c38ab2d --- /dev/null +++ b/obj/item/clothing/head/costume/ushanka.html @@ -0,0 +1 @@ +/obj/item/clothing/head/costume/ushanka - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ushanka

Vars

downspriteSprite visible when the ushanka flaps are folded down.
upspriteSprite visible when the ushanka flaps are folded up.

Var Details

downsprite

Sprite visible when the ushanka flaps are folded down.

upsprite

Sprite visible when the ushanka flaps are folded up.

\ No newline at end of file diff --git a/obj/item/clothing/head/cowboy.html b/obj/item/clothing/head/cowboy.html new file mode 100644 index 0000000000000..e39c9c6766c0a --- /dev/null +++ b/obj/item/clothing/head/cowboy.html @@ -0,0 +1 @@ +/obj/item/clothing/head/cowboy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cowboy

Vars

deflect_chanceChance that the hat will catch a bullet for you

Procs

on_intercepted_bulletWhen we catch a bullet, fling away

Var Details

deflect_chance

Chance that the hat will catch a bullet for you

Proc Details

on_intercepted_bullet

When we catch a bullet, fling away

\ No newline at end of file diff --git a/obj/item/clothing/head/deprivation_helmet.html b/obj/item/clothing/head/deprivation_helmet.html new file mode 100644 index 0000000000000..f2a5e2b3290f0 --- /dev/null +++ b/obj/item/clothing/head/deprivation_helmet.html @@ -0,0 +1 @@ +/obj/item/clothing/head/deprivation_helmet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

deprivation_helmet

Vars

current_helmet_colorThe current color of the helmet.

Var Details

current_helmet_color

The current color of the helmet.

\ No newline at end of file diff --git a/obj/item/clothing/head/fedora/det_hat.html b/obj/item/clothing/head/fedora/det_hat.html new file mode 100644 index 0000000000000..c5ec7fe853536 --- /dev/null +++ b/obj/item/clothing/head/fedora/det_hat.html @@ -0,0 +1 @@ +/obj/item/clothing/head/fedora/det_hat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

det_hat

Vars

candy_cooldownCooldown for retrieving precious candy corn with rmb
flask_pathPath for the flask that spawns inside their hat roundstart

Procs

click_altNow to solve where all these keep coming from

Var Details

candy_cooldown

Cooldown for retrieving precious candy corn with rmb

flask_path

Path for the flask that spawns inside their hat roundstart

Proc Details

click_alt

Now to solve where all these keep coming from

\ No newline at end of file diff --git a/obj/item/clothing/head/fedora/inspector_hat.html b/obj/item/clothing/head/fedora/inspector_hat.html new file mode 100644 index 0000000000000..6f241ae88dd0a --- /dev/null +++ b/obj/item/clothing/head/fedora/inspector_hat.html @@ -0,0 +1 @@ +/obj/item/clothing/head/fedora/inspector_hat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

inspector_hat

Detectives Fedora, but like Inspector Gadget. Not a subtype to not inherit candy corn stuff

Vars

items_by_regexan assoc list of regex = item (like regex datum = revolver item)
max_itemshow many gadgets can we hold
max_weightitems above this weight cannot be put in the hat
phrases_by_regexA an assoc list of regex = phrase (like regex datum = gun text)
prefixprefix our phrases must begin with

Var Details

items_by_regex

an assoc list of regex = item (like regex datum = revolver item)

max_items

how many gadgets can we hold

max_weight

items above this weight cannot be put in the hat

phrases_by_regex

A an assoc list of regex = phrase (like regex datum = gun text)

prefix

prefix our phrases must begin with

\ No newline at end of file diff --git a/obj/item/clothing/head/hair_tie.html b/obj/item/clothing/head/hair_tie.html new file mode 100644 index 0000000000000..4d042dd4b0813 --- /dev/null +++ b/obj/item/clothing/head/hair_tie.html @@ -0,0 +1 @@ +/obj/item/clothing/head/hair_tie - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hair_tie

Vars

actual_hairstylestorage for the original hairstyle string
fire_speedhow long the do_after takes to flick the hair tie
picked_hairstylestring which set_hairstyle() will read
projectile_aim_radiushow big is the randomized aim radius when flicked
projectile_to_firewhich projectile object to use as flicked hair tie

Procs

flick_hair_tieThis proc flicks the hair tie out of the player's hand, tripping the target hit for 1 second

Var Details

actual_hairstyle

storage for the original hairstyle string

fire_speed

how long the do_after takes to flick the hair tie

picked_hairstyle

string which set_hairstyle() will read

projectile_aim_radius

how big is the randomized aim radius when flicked

projectile_to_fire

which projectile object to use as flicked hair tie

Proc Details

flick_hair_tie

This proc flicks the hair tie out of the player's hand, tripping the target hit for 1 second

\ No newline at end of file diff --git a/obj/item/clothing/head/hats/tophat.html b/obj/item/clothing/head/hats/tophat.html new file mode 100644 index 0000000000000..37a4ed8300f3e --- /dev/null +++ b/obj/item/clothing/head/hats/tophat.html @@ -0,0 +1 @@ +/obj/item/clothing/head/hats/tophat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tophat

Vars

rabbit_cooldownCooldown for how often we can pull rabbits out of here

Var Details

rabbit_cooldown

Cooldown for how often we can pull rabbits out of here

\ No newline at end of file diff --git a/obj/item/clothing/head/helmet/changeling_hivehead.html b/obj/item/clothing/head/helmet/changeling_hivehead.html new file mode 100644 index 0000000000000..1f67f5792b192 --- /dev/null +++ b/obj/item/clothing/head/helmet/changeling_hivehead.html @@ -0,0 +1 @@ +/obj/item/clothing/head/helmet/changeling_hivehead - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

changeling_hivehead

Vars

holds_reagentsDoes this hive head hold reagents?

Var Details

holds_reagents

Does this hive head hold reagents?

\ No newline at end of file diff --git a/obj/item/clothing/head/helmet/cin_surplus_helmet.html b/obj/item/clothing/head/helmet/cin_surplus_helmet.html new file mode 100644 index 0000000000000..ed8a60b1e1ccf --- /dev/null +++ b/obj/item/clothing/head/helmet/cin_surplus_helmet.html @@ -0,0 +1 @@ +/obj/item/clothing/head/helmet/cin_surplus_helmet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cin_surplus_helmet

Vars

accessories_weighted_listControls what helmet accessories will be present in a weighted format

Procs

generate_random_accessoriesTakes accessories_weighted_list and picks what icon_state suffix to use

Var Details

accessories_weighted_list

Controls what helmet accessories will be present in a weighted format

Proc Details

generate_random_accessories

Takes accessories_weighted_list and picks what icon_state suffix to use

\ No newline at end of file diff --git a/obj/item/clothing/head/helmet/cin_surplus_helmet/random_color.html b/obj/item/clothing/head/helmet/cin_surplus_helmet/random_color.html new file mode 100644 index 0000000000000..86df895fb9796 --- /dev/null +++ b/obj/item/clothing/head/helmet/cin_surplus_helmet/random_color.html @@ -0,0 +1 @@ +/obj/item/clothing/head/helmet/cin_surplus_helmet/random_color - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

random_color

Vars

possible_spawning_colorsThe different colors this helmet can choose from when initializing

Var Details

possible_spawning_colors

The different colors this helmet can choose from when initializing

\ No newline at end of file diff --git a/obj/item/clothing/head/helmet/monkey_sentience.html b/obj/item/clothing/head/helmet/monkey_sentience.html new file mode 100644 index 0000000000000..e8b3644fee814 --- /dev/null +++ b/obj/item/clothing/head/helmet/monkey_sentience.html @@ -0,0 +1 @@ +/obj/item/clothing/head/helmet/monkey_sentience - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

monkey_sentience

Vars

light_colorsif the helmet is currently polling for targets (special code for removal)
pollingif the helmet is on a valid target (just works like a normal helmet if not (cargo please stop))

Var Details

light_colors

if the helmet is currently polling for targets (special code for removal)

polling

if the helmet is on a valid target (just works like a normal helmet if not (cargo please stop))

\ No newline at end of file diff --git a/obj/item/clothing/head/helmet/sf_sacrificial.html b/obj/item/clothing/head/helmet/sf_sacrificial.html new file mode 100644 index 0000000000000..38ab2c2f33c34 --- /dev/null +++ b/obj/item/clothing/head/helmet/sf_sacrificial.html @@ -0,0 +1 @@ +/obj/item/clothing/head/helmet/sf_sacrificial - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sf_sacrificial

Vars

face_shieldHolds the faceshield for quick reference

Procs

add_face_shieldAttached the passed face shield to the helmet.
remove_face_shieldRemoves the face shield from the helmet, breaking it into a glass shard decal if that's wanted, too.

Var Details

face_shield

Holds the faceshield for quick reference

Proc Details

add_face_shield

Attached the passed face shield to the helmet.

remove_face_shield

Removes the face shield from the helmet, breaking it into a glass shard decal if that's wanted, too.

\ No newline at end of file diff --git a/obj/item/clothing/head/helmet/space.html b/obj/item/clothing/head/helmet/space.html new file mode 100644 index 0000000000000..c363870159638 --- /dev/null +++ b/obj/item/clothing/head/helmet/space.html @@ -0,0 +1 @@ +/obj/item/clothing/head/helmet/space - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

space

Vars

fishing_modifierHow much this helmet affects fishing difficulty

Var Details

fishing_modifier

How much this helmet affects fishing difficulty

\ No newline at end of file diff --git a/obj/item/clothing/head/helmet/space/akula_wetsuit.html b/obj/item/clothing/head/helmet/space/akula_wetsuit.html new file mode 100644 index 0000000000000..c5b89bfddc03c --- /dev/null +++ b/obj/item/clothing/head/helmet/space/akula_wetsuit.html @@ -0,0 +1 @@ +/obj/item/clothing/head/helmet/space/akula_wetsuit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

akula_wetsuit

Vars

attached_hatVariable for storing hats which are worn inside the bubble helmet

Var Details

attached_hat

Variable for storing hats which are worn inside the bubble helmet

\ No newline at end of file diff --git a/obj/item/clothing/head/helmet/space/plasmaman.html b/obj/item/clothing/head/helmet/space/plasmaman.html new file mode 100644 index 0000000000000..03b3de7a692af --- /dev/null +++ b/obj/item/clothing/head/helmet/space/plasmaman.html @@ -0,0 +1 @@ +/obj/item/clothing/head/helmet/space/plasmaman - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

plasmaman

Procs

worn_overlaysBy the by, helmets have the update_icon_updates_onmob element, so we don't have to call mob.update_worn_head()

Proc Details

worn_overlays

By the by, helmets have the update_icon_updates_onmob element, so we don't have to call mob.update_worn_head()

\ No newline at end of file diff --git a/obj/item/clothing/head/helmet/toggleable.html b/obj/item/clothing/head/helmet/toggleable.html new file mode 100644 index 0000000000000..659bb2df1294d --- /dev/null +++ b/obj/item/clothing/head/helmet/toggleable.html @@ -0,0 +1 @@ +/obj/item/clothing/head/helmet/toggleable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

toggleable

Vars

alt_toggle_messagechat message when the visor is toggled up.
toggle_messagechat message when the visor is toggled down.

Var Details

alt_toggle_message

chat message when the visor is toggled up.

toggle_message

chat message when the visor is toggled down.

\ No newline at end of file diff --git a/obj/item/clothing/head/helmet/toggleable/justice.html b/obj/item/clothing/head/helmet/toggleable/justice.html new file mode 100644 index 0000000000000..bc3d745ca5a3b --- /dev/null +++ b/obj/item/clothing/head/helmet/toggleable/justice.html @@ -0,0 +1 @@ +/obj/item/clothing/head/helmet/toggleable/justice - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

justice

Vars

visor_toggle_cooldownCooldown for toggling the visor.
weewooloopLooping sound datum for the siren helmet

Var Details

visor_toggle_cooldown

Cooldown for toggling the visor.

weewooloop

Looping sound datum for the siren helmet

\ No newline at end of file diff --git a/obj/item/clothing/head/helmet/toggleable/pinwheel.html b/obj/item/clothing/head/helmet/toggleable/pinwheel.html new file mode 100644 index 0000000000000..4d2bdee04aa23 --- /dev/null +++ b/obj/item/clothing/head/helmet/toggleable/pinwheel.html @@ -0,0 +1 @@ +/obj/item/clothing/head/helmet/toggleable/pinwheel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pinwheel

Vars

pinwheel_toggle_cooldownCooldown for toggling the spinner.

Var Details

pinwheel_toggle_cooldown

Cooldown for toggling the spinner.

\ No newline at end of file diff --git a/obj/item/clothing/head/hooded/berserker.html b/obj/item/clothing/head/hooded/berserker.html new file mode 100644 index 0000000000000..45627c009dbe7 --- /dev/null +++ b/obj/item/clothing/head/hooded/berserker.html @@ -0,0 +1 @@ +/obj/item/clothing/head/hooded/berserker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

berserker

Vars

berserk_activeStatus of berserk
berserk_chargeCurrent charge of berserk, goes from 0 to 100

Procs

berserk_modeStarts berserk, reducing incoming brute by 50%, doubled attacking speed, NOGUNS trait, adding a color and giving them the berserk movespeed modifier
end_berserkEnds berserk, reverting the changes from the proc [berserk_mode]

Var Details

berserk_active

Status of berserk

berserk_charge

Current charge of berserk, goes from 0 to 100

Proc Details

berserk_mode

Starts berserk, reducing incoming brute by 50%, doubled attacking speed, NOGUNS trait, adding a color and giving them the berserk movespeed modifier

end_berserk

Ends berserk, reverting the changes from the proc [berserk_mode]

\ No newline at end of file diff --git a/obj/item/clothing/head/mob_holder/pet.html b/obj/item/clothing/head/mob_holder/pet.html new file mode 100644 index 0000000000000..18cbf18e79220 --- /dev/null +++ b/obj/item/clothing/head/mob_holder/pet.html @@ -0,0 +1,4 @@ +/obj/item/clothing/head/mob_holder/pet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

pet

This is a special subtype of mob_holder that spawns with a mob included instead of being created by scooping a mob. +It can override the name & description of the included mob as well.

Procs

on_loadout_custom_describedSee above.
on_loadout_custom_namedIf this gets renamed, make sure to paste the new name onto the mob as well. +If, for whatever reason, this gets called before Initialize, it also sets renamed = TRUE to ensure that the mob gets the custom name on initialization.

Proc Details

on_loadout_custom_described

See above.

on_loadout_custom_named

If this gets renamed, make sure to paste the new name onto the mob as well. +If, for whatever reason, this gets called before Initialize, it also sets renamed = TRUE to ensure that the mob gets the custom name on initialization.

\ No newline at end of file diff --git a/obj/item/clothing/head/soft.html b/obj/item/clothing/head/soft.html new file mode 100644 index 0000000000000..5118e3c3a3f4d --- /dev/null +++ b/obj/item/clothing/head/soft.html @@ -0,0 +1 @@ +/obj/item/clothing/head/soft - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

soft

Vars

flippedWhether this is on backwards... Woah, cool
soft_suffixIf there is a suffix to append
soft_typeFor setting icon archetype

Var Details

flipped

Whether this is on backwards... Woah, cool

soft_suffix

If there is a suffix to append

soft_type

For setting icon archetype

\ No newline at end of file diff --git a/obj/item/clothing/head/utility/chefhat.html b/obj/item/clothing/head/utility/chefhat.html new file mode 100644 index 0000000000000..fed35b72cf015 --- /dev/null +++ b/obj/item/clothing/head/utility/chefhat.html @@ -0,0 +1 @@ +/obj/item/clothing/head/utility/chefhat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chefhat

Vars

mouse_control_probabilityThe chance that the movements of a mouse inside of this hat get relayed to the human wearing the hat
move_cooldownAllowed time between movements

Procs

get_mouseReturns a mob stored inside a mob container, if there is one
on_mouse_emoteRelays emotes emoted by your boss to the hat wearer for full immersion
on_mouse_movingRelays movement made by the mouse in your hat to the wearer of the hat

Var Details

mouse_control_probability

The chance that the movements of a mouse inside of this hat get relayed to the human wearing the hat

move_cooldown

Allowed time between movements

Proc Details

get_mouse

Returns a mob stored inside a mob container, if there is one

on_mouse_emote

Relays emotes emoted by your boss to the hat wearer for full immersion

on_mouse_moving

Relays movement made by the mouse in your hat to the wearer of the hat

\ No newline at end of file diff --git a/obj/item/clothing/head/utility/hardhat.html b/obj/item/clothing/head/utility/hardhat.html new file mode 100644 index 0000000000000..33ea4dccf4268 --- /dev/null +++ b/obj/item/clothing/head/utility/hardhat.html @@ -0,0 +1 @@ +/obj/item/clothing/head/utility/hardhat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hardhat

Vars

hat_typeDetermines used sprites: hardhat[on]_[hat_type] and hardhat[on]_[hat_type]2 (lying down sprite)
onWhether the headlamp is on or off.

Var Details

hat_type

Determines used sprites: hardhat[on]_[hat_type] and hardhat[on]_[hat_type]2 (lying down sprite)

on

Whether the headlamp is on or off.

\ No newline at end of file diff --git a/obj/item/clothing/head/utility/hardhat/welding.html b/obj/item/clothing/head/utility/hardhat/welding.html new file mode 100644 index 0000000000000..85b0012d6abd1 --- /dev/null +++ b/obj/item/clothing/head/utility/hardhat/welding.html @@ -0,0 +1 @@ +/obj/item/clothing/head/utility/hardhat/welding - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

welding

Vars

visor_sprite_pathThe path to the visor sprite, used for muzzled visors
visor_stateIcon state of the welding visor.

Var Details

visor_sprite_path

The path to the visor sprite, used for muzzled visors

visor_state

Icon state of the welding visor.

\ No newline at end of file diff --git a/obj/item/clothing/head/wizard.html b/obj/item/clothing/head/wizard.html new file mode 100644 index 0000000000000..3eb81a97effa2 --- /dev/null +++ b/obj/item/clothing/head/wizard.html @@ -0,0 +1 @@ +/obj/item/clothing/head/wizard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wizard

Vars

fishing_modifierHow much this hat affects fishing difficulty

Var Details

fishing_modifier

How much this hat affects fishing difficulty

\ No newline at end of file diff --git a/obj/item/clothing/mask.html b/obj/item/clothing/mask.html new file mode 100644 index 0000000000000..d717efc1d80c4 --- /dev/null +++ b/obj/item/clothing/mask.html @@ -0,0 +1,6 @@ +/obj/item/clothing/mask - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mask

Vars

has_filterDid we install a filtering cloth?
unique_deathThe unique sound effect of dying while wearing this
use_radio_beeps_ttsIf set to true, activates the radio effect on TTS. Used for sec hailers, but other masks can utilize it for their own vocal effect.
voice_overrideIf defined, what voice should we override with if TTS is active?

Procs

consume_filterProc called in lungs.dm to act if wearing a mask with filters, used to reduce the filters durability, return a changed gas mixture depending on the filter status +Arguments:

Var Details

has_filter

Did we install a filtering cloth?

unique_death

The unique sound effect of dying while wearing this

use_radio_beeps_tts

If set to true, activates the radio effect on TTS. Used for sec hailers, but other masks can utilize it for their own vocal effect.

voice_override

If defined, what voice should we override with if TTS is active?

Proc Details

consume_filter

Proc called in lungs.dm to act if wearing a mask with filters, used to reduce the filters durability, return a changed gas mixture depending on the filter status +Arguments:

+
    +
  • breath - the gas mixture of the breather
  • +
\ No newline at end of file diff --git a/obj/item/clothing/mask/animal.html b/obj/item/clothing/mask/animal.html new file mode 100644 index 0000000000000..47f5a26f43cd9 --- /dev/null +++ b/obj/item/clothing/mask/animal.html @@ -0,0 +1 @@ +/obj/item/clothing/mask/animal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

animal

Vars

animal_soundswhat kind of animal the masks represents. used for automatic name and description generation.
animal_sounds_altphrases to be said when the player attempts to talk when speech modification / voicebox is enabled.
animal_sounds_alt_probabilitylower probability phrases to be said when talking.
curse_spawn_soundif it's a cursed mask variant.
cursedprobability for alternative sounds to play.

Procs

Initializesound to play when the cursed mask variant is spawned.

Var Details

animal_sounds

what kind of animal the masks represents. used for automatic name and description generation.

animal_sounds_alt

phrases to be said when the player attempts to talk when speech modification / voicebox is enabled.

animal_sounds_alt_probability

lower probability phrases to be said when talking.

curse_spawn_sound

if it's a cursed mask variant.

cursed

probability for alternative sounds to play.

Proc Details

Initialize

sound to play when the cursed mask variant is spawned.

\ No newline at end of file diff --git a/obj/item/clothing/mask/ballgag.html b/obj/item/clothing/mask/ballgag.html new file mode 100644 index 0000000000000..159d15be21019 --- /dev/null +++ b/obj/item/clothing/mask/ballgag.html @@ -0,0 +1 @@ +/obj/item/clothing/mask/ballgag - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ballgag

Vars

choke_intervalHow frequently the player will be choked
choke_timerTracks the time between chokes
chokes_wearerDoes this gag choke the wearer?
gag_sizeHow big the gag is currently
moan_soundsSounds that the player makes when they try to speak.
moan_volumeHow loud the moan audio is
moan_volume_chokingHow loud are these moan-noises if we're choking on it?
moansPhrases when the gag modifies the player's speech.
moans_altLower probability phrases to be used when speech is modified.
moans_alt_probabilityProbability for alternative phrases to be used when speech is modified.
possible_gag_sizesOptions for resizing the gag
resizableWhether the gag can be resized or not
size_list_positionWhere we are in the size list

Var Details

choke_interval

How frequently the player will be choked

choke_timer

Tracks the time between chokes

chokes_wearer

Does this gag choke the wearer?

gag_size

How big the gag is currently

moan_sounds

Sounds that the player makes when they try to speak.

moan_volume

How loud the moan audio is

moan_volume_choking

How loud are these moan-noises if we're choking on it?

moans

Phrases when the gag modifies the player's speech.

moans_alt

Lower probability phrases to be used when speech is modified.

moans_alt_probability

Probability for alternative phrases to be used when speech is modified.

possible_gag_sizes

Options for resizing the gag

resizable

Whether the gag can be resized or not

size_list_position

Where we are in the size list

\ No newline at end of file diff --git a/obj/item/clothing/mask/breath/anesthetic.html b/obj/item/clothing/mask/breath/anesthetic.html new file mode 100644 index 0000000000000..bab6784f5bd9a --- /dev/null +++ b/obj/item/clothing/mask/breath/anesthetic.html @@ -0,0 +1 @@ +/obj/item/clothing/mask/breath/anesthetic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

anesthetic

This a special version of the breath mask used for the anesthetic machine.

Vars

attached_machineWhat machine is the mask currently attached to?

Var Details

attached_machine

What machine is the mask currently attached to?

\ No newline at end of file diff --git a/obj/item/clothing/mask/chameleon.html b/obj/item/clothing/mask/chameleon.html new file mode 100644 index 0000000000000..3a6fc70e4a627 --- /dev/null +++ b/obj/item/clothing/mask/chameleon.html @@ -0,0 +1 @@ +/obj/item/clothing/mask/chameleon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chameleon

Vars

voice_changeIs our voice changer enabled or disabled?

Var Details

voice_change

Is our voice changer enabled or disabled?

\ No newline at end of file diff --git a/obj/item/clothing/mask/gas.html b/obj/item/clothing/mask/gas.html new file mode 100644 index 0000000000000..8ea7821db7526 --- /dev/null +++ b/obj/item/clothing/mask/gas.html @@ -0,0 +1 @@ +/obj/item/clothing/mask/gas - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gas

Vars

cigCigarette in the mask
fishing_modifierHow much does this mask affect fishing difficulty
gas_filtersList to keep track of each filter
has_fovDoes the mask have an FOV?
max_filtersMax numbers of installable filters
starting_filter_typeType of filter that spawns on roundstart

Procs

consume_filterCheck _masks.dm for this one
get_filter_durabilityGetter for overall filter durability, takes into consideration all filters filter_status
init_fovInitializes the FoV component for the gas mask

Var Details

cig

Cigarette in the mask

fishing_modifier

How much does this mask affect fishing difficulty

gas_filters

List to keep track of each filter

has_fov

Does the mask have an FOV?

max_filters

Max numbers of installable filters

starting_filter_type

Type of filter that spawns on roundstart

Proc Details

consume_filter

Check _masks.dm for this one

get_filter_durability

Getter for overall filter durability, takes into consideration all filters filter_status

init_fov

Initializes the FoV component for the gas mask

\ No newline at end of file diff --git a/obj/item/clothing/mask/gas/bdsm_mask.html b/obj/item/clothing/mask/gas/bdsm_mask.html new file mode 100644 index 0000000000000..670fd0ff49335 --- /dev/null +++ b/obj/item/clothing/mask/gas/bdsm_mask.html @@ -0,0 +1 @@ +/obj/item/clothing/mask/gas/bdsm_mask - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bdsm_mask

Vars

speech_disabledDoes the gasmask impede the user's ability to talk?

Procs

is_lockedCan the user reach the filter, false if equipped and active

Var Details

speech_disabled

Does the gasmask impede the user's ability to talk?

Proc Details

is_locked

Can the user reach the filter, false if equipped and active

\ No newline at end of file diff --git a/obj/item/clothing/mask/gas/ninja.html b/obj/item/clothing/mask/gas/ninja.html new file mode 100644 index 0000000000000..13ad20ebd1587 --- /dev/null +++ b/obj/item/clothing/mask/gas/ninja.html @@ -0,0 +1,2 @@ +/obj/item/clothing/mask/gas/ninja - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Ninja Mask

Space ninja's mask. Other than looking cool, doesn't do anything.

+

A mask which only spawns as a part of space ninja's starting kit. Functions as a gas mask.

\ No newline at end of file diff --git a/obj/item/clothing/mask/gas/sechailer.html b/obj/item/clothing/mask/gas/sechailer.html new file mode 100644 index 0000000000000..6c79359e24fcb --- /dev/null +++ b/obj/item/clothing/mask/gas/sechailer.html @@ -0,0 +1 @@ +/obj/item/clothing/mask/gas/sechailer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sechailer

Vars

aggressivenessDecides the phrases available for use; defines used are the last index of a category of available phrases
broken_hailerWhether the hailer has been broken due to overuse or not
overuse_cooldownWhether the hailer is currently in cooldown for resetting recent_uses
recent_usesHow many times was the hailer used in the last OVERUSE_COOLDOWN seconds
safetyWhether the hailer is emagged or not

Procs

InitializeAdd the Radio
emp_actIf EMP'd, become EMP'd
emp_resetReset EMP after 2 minutes

Var Details

aggressiveness

Decides the phrases available for use; defines used are the last index of a category of available phrases

broken_hailer

Whether the hailer has been broken due to overuse or not

overuse_cooldown

Whether the hailer is currently in cooldown for resetting recent_uses

recent_uses

How many times was the hailer used in the last OVERUSE_COOLDOWN seconds

safety

Whether the hailer is emagged or not

Proc Details

Initialize

Add the Radio

emp_act

If EMP'd, become EMP'd

emp_reset

Reset EMP after 2 minutes

\ No newline at end of file diff --git a/obj/item/clothing/mask/leatherwhip.html b/obj/item/clothing/mask/leatherwhip.html new file mode 100644 index 0000000000000..29cfd3920976c --- /dev/null +++ b/obj/item/clothing/mask/leatherwhip.html @@ -0,0 +1 @@ +/obj/item/clothing/mask/leatherwhip - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

leatherwhip

Vars

color_changedIf the color of the toy has been changed before
current_whip_colorCurrent color of the toy, can be changed, affects sprite
current_whip_formCurrent form of the toy, can be changed, affects sprite
current_whip_typeIf the whip is hitting weak or hard
form_changedIf the form (or size) of the toy has been changed before
moansPhrases to be said when the player attempts to talk when their speech is being modified
moans_altLower probability phrases to be said when talking.
moans_alt_probabilityProbabilty that moans_alt is used instead of moans
whip_designsA list of designs of the whip for use in the radial selection menu
whip_formsA list of forms of the whip for use in the radial selection menu
whip_overlayMutable appearance containing the whip's overlay
whip_typesA list of types of the whip for use in the radial selection menu

Procs

check_menuA check to see if the radial menu can be used
populate_whip_designsRadial menu helper
populate_whip_formsRadial menu helper
populate_whip_typesRadial menu helper

Var Details

color_changed

If the color of the toy has been changed before

current_whip_color

Current color of the toy, can be changed, affects sprite

current_whip_form

Current form of the toy, can be changed, affects sprite

current_whip_type

If the whip is hitting weak or hard

form_changed

If the form (or size) of the toy has been changed before

moans

Phrases to be said when the player attempts to talk when their speech is being modified

moans_alt

Lower probability phrases to be said when talking.

moans_alt_probability

Probabilty that moans_alt is used instead of moans

whip_designs

A list of designs of the whip for use in the radial selection menu

whip_forms

A list of forms of the whip for use in the radial selection menu

whip_overlay

Mutable appearance containing the whip's overlay

whip_types

A list of types of the whip for use in the radial selection menu

Proc Details

check_menu

A check to see if the radial menu can be used

populate_whip_designs

Radial menu helper

populate_whip_forms

Radial menu helper

populate_whip_types

Radial menu helper

\ No newline at end of file diff --git a/obj/item/clothing/mask/madness_mask.html b/obj/item/clothing/mask/madness_mask.html new file mode 100644 index 0000000000000..42722f081ae1b --- /dev/null +++ b/obj/item/clothing/mask/madness_mask.html @@ -0,0 +1 @@ +/obj/item/clothing/mask/madness_mask - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

madness_mask

Vars

local_userWho is wearing this

Var Details

local_user

Who is wearing this

\ No newline at end of file diff --git a/obj/item/clothing/mask/muzzle/tape.html b/obj/item/clothing/mask/muzzle/tape.html new file mode 100644 index 0000000000000..37e17cc5a9930 --- /dev/null +++ b/obj/item/clothing/mask/muzzle/tape.html @@ -0,0 +1 @@ +/obj/item/clothing/mask/muzzle/tape - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tape

Vars

harmful_stripDertermines whether the tape piece does damage when ripped off of someone.
stripping_damageThe ammount of damage dealt when the tape piece is ripped off of someone.

Var Details

harmful_strip

Dertermines whether the tape piece does damage when ripped off of someone.

stripping_damage

The ammount of damage dealt when the tape piece is ripped off of someone.

\ No newline at end of file diff --git a/obj/item/clothing/mask/paper.html b/obj/item/clothing/mask/paper.html new file mode 100644 index 0000000000000..de18b5882b347 --- /dev/null +++ b/obj/item/clothing/mask/paper.html @@ -0,0 +1 @@ +/obj/item/clothing/mask/paper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

paper

Vars

strap_hiddenWhether or not the strap is currently hidden or visible
wear_hair_overWhether or not the mask is currently being layered over (or under!) hair. FALSE/null means the mask is layered over the hair (this is how it starts off).

Var Details

strap_hidden

Whether or not the strap is currently hidden or visible

wear_hair_over

Whether or not the mask is currently being layered over (or under!) hair. FALSE/null means the mask is layered over the hair (this is how it starts off).

\ No newline at end of file diff --git a/obj/item/clothing/neck/collar_bomb.html b/obj/item/clothing/neck/collar_bomb.html new file mode 100644 index 0000000000000..325d357632a13 --- /dev/null +++ b/obj/item/clothing/neck/collar_bomb.html @@ -0,0 +1 @@ +/obj/item/clothing/neck/collar_bomb - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

collar_bomb

Special neckwear that kills its wearer if triggered, by either its specific remote or assemblies.

Vars

activeWhether the collar countdown has been triggered.
buttonThe button it's associated with

Var Details

active

Whether the collar countdown has been triggered.

button

The button it's associated with

\ No newline at end of file diff --git a/obj/item/clothing/neck/eldritch_amulet.html b/obj/item/clothing/neck/eldritch_amulet.html new file mode 100644 index 0000000000000..9f8afaa37ed6a --- /dev/null +++ b/obj/item/clothing/neck/eldritch_amulet.html @@ -0,0 +1 @@ +/obj/item/clothing/neck/eldritch_amulet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

eldritch_amulet

Vars

heretic_only_traitA secondary clothing trait only applied to heretics.

Var Details

heretic_only_trait

A secondary clothing trait only applied to heretics.

\ No newline at end of file diff --git a/obj/item/clothing/neck/heretic_focus/crimson_medallion.html b/obj/item/clothing/neck/heretic_focus/crimson_medallion.html new file mode 100644 index 0000000000000..fc40c4b403bcc --- /dev/null +++ b/obj/item/clothing/neck/heretic_focus/crimson_medallion.html @@ -0,0 +1 @@ +/obj/item/clothing/neck/heretic_focus/crimson_medallion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crimson_medallion

Vars

activeIf active or not, used to add and remove its cult and heretic buffs.
componentThe aura healing component. Used to delete it when taken off.

Var Details

active

If active or not, used to add and remove its cult and heretic buffs.

component

The aura healing component. Used to delete it when taken off.

\ No newline at end of file diff --git a/obj/item/clothing/neck/human_petcollar.html b/obj/item/clothing/neck/human_petcollar.html new file mode 100644 index 0000000000000..fc83c2bdf1827 --- /dev/null +++ b/obj/item/clothing/neck/human_petcollar.html @@ -0,0 +1 @@ +/obj/item/clothing/neck/human_petcollar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

human_petcollar

Vars

tagnameWhat's the name on the tag, if any?
treat_pathWhat treat item spawns inside the collar?

Var Details

tagname

What's the name on the tag, if any?

treat_path

What treat item spawns inside the collar?

\ No newline at end of file diff --git a/obj/item/clothing/neck/human_petcollar/locked.html b/obj/item/clothing/neck/human_petcollar/locked.html new file mode 100644 index 0000000000000..cf76a861ba80c --- /dev/null +++ b/obj/item/clothing/neck/human_petcollar/locked.html @@ -0,0 +1 @@ +/obj/item/clothing/neck/human_petcollar/locked - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

locked

Vars

lockedIs the collar currently locked?

Var Details

locked

Is the collar currently locked?

\ No newline at end of file diff --git a/obj/item/clothing/neck/inferno_collar.html b/obj/item/clothing/neck/inferno_collar.html new file mode 100644 index 0000000000000..df5ca2ca6c180 --- /dev/null +++ b/obj/item/clothing/neck/inferno_collar.html @@ -0,0 +1 @@ +/obj/item/clothing/neck/inferno_collar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

inferno_collar

Vars

tagnameWhat's the name on the tag, if any?
treat_pathWhat treat item spawns inside the collar?

Var Details

tagname

What's the name on the tag, if any?

treat_path

What treat item spawns inside the collar?

\ No newline at end of file diff --git a/obj/item/clothing/neck/kink_collar.html b/obj/item/clothing/neck/kink_collar.html new file mode 100644 index 0000000000000..f6103e4576aff --- /dev/null +++ b/obj/item/clothing/neck/kink_collar.html @@ -0,0 +1 @@ +/obj/item/clothing/neck/kink_collar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

kink_collar

Vars

tagnameWhat the name on the tag is
treat_pathItem path of on-init creation in the collar's storage

Var Details

tagname

What the name on the tag is

treat_path

Item path of on-init creation in the collar's storage

\ No newline at end of file diff --git a/obj/item/clothing/neck/kink_collar/locked.html b/obj/item/clothing/neck/kink_collar/locked.html new file mode 100644 index 0000000000000..e106837122ec7 --- /dev/null +++ b/obj/item/clothing/neck/kink_collar/locked.html @@ -0,0 +1 @@ +/obj/item/clothing/neck/kink_collar/locked - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

locked

Vars

brokenIf the collar has been broken or not
lockedIf the collar is currently locked

Var Details

broken

If the collar has been broken or not

locked

If the collar is currently locked

\ No newline at end of file diff --git a/obj/item/clothing/neck/kink_collar/locked/gps.html b/obj/item/clothing/neck/kink_collar/locked/gps.html new file mode 100644 index 0000000000000..399bd412c33b9 --- /dev/null +++ b/obj/item/clothing/neck/kink_collar/locked/gps.html @@ -0,0 +1 @@ +/obj/item/clothing/neck/kink_collar/locked/gps - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

gps

Procs

click_altCalls toggletracking

Proc Details

click_alt

Calls toggletracking

\ No newline at end of file diff --git a/obj/item/clothing/neck/link_scryer.html b/obj/item/clothing/neck/link_scryer.html new file mode 100644 index 0000000000000..869b80a40a2b8 --- /dev/null +++ b/obj/item/clothing/neck/link_scryer.html @@ -0,0 +1 @@ +/obj/item/clothing/neck/link_scryer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

link_scryer

Vars

cellThe installed power cell.
custom_examine_controlsDo we have custom controls? This is only affects the text shown when examining
labelAn additional name tag for the scryer, seen as "MODlink scryer - [label]"
mod_linkThe MODlink datum we operate.
starting_frequencyInitial frequency of the MODlink.

Var Details

cell

The installed power cell.

custom_examine_controls

Do we have custom controls? This is only affects the text shown when examining

label

An additional name tag for the scryer, seen as "MODlink scryer - [label]"

The MODlink datum we operate.

starting_frequency

Initial frequency of the MODlink.

\ No newline at end of file diff --git a/obj/item/clothing/neck/link_scryer/loaded/nifsoft.html b/obj/item/clothing/neck/link_scryer/loaded/nifsoft.html new file mode 100644 index 0000000000000..988e2bdab662b --- /dev/null +++ b/obj/item/clothing/neck/link_scryer/loaded/nifsoft.html @@ -0,0 +1 @@ +/obj/item/clothing/neck/link_scryer/loaded/nifsoft - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nifsoft

Vars

parent_nifsoftA weakref of the parent NIFSoft that the scryer belongs to.

Var Details

parent_nifsoft

A weakref of the parent NIFSoft that the scryer belongs to.

\ No newline at end of file diff --git a/obj/item/clothing/neck/mind_collar.html b/obj/item/clothing/neck/mind_collar.html new file mode 100644 index 0000000000000..c06efd920bdd1 --- /dev/null +++ b/obj/item/clothing/neck/mind_collar.html @@ -0,0 +1 @@ +/obj/item/clothing/neck/mind_collar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mind_collar

Vars

remoteReference to the mind control remote

Var Details

remote

Reference to the mind control remote

\ No newline at end of file diff --git a/obj/item/clothing/neck/necklace/dope/merchant.html b/obj/item/clothing/neck/necklace/dope/merchant.html new file mode 100644 index 0000000000000..fe8424224546b --- /dev/null +++ b/obj/item/clothing/neck/necklace/dope/merchant.html @@ -0,0 +1 @@ +/obj/item/clothing/neck/necklace/dope/merchant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

merchant

Vars

profit_scalingscales the amount received in case an admin wants to emulate taxes/fees.
sellingtoggles between sell (TRUE) and get price post-fees (FALSE)

Var Details

profit_scaling

scales the amount received in case an admin wants to emulate taxes/fees.

selling

toggles between sell (TRUE) and get price post-fees (FALSE)

\ No newline at end of file diff --git a/obj/item/clothing/neck/security_cape.html b/obj/item/clothing/neck/security_cape.html new file mode 100644 index 0000000000000..1d5ba39cf096a --- /dev/null +++ b/obj/item/clothing/neck/security_cape.html @@ -0,0 +1 @@ +/obj/item/clothing/neck/security_cape - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

security_cape

Vars

swappedDecides the shoulder it lays on, false = RIGHT, TRUE = LEFT

Var Details

swapped

Decides the shoulder it lays on, false = RIGHT, TRUE = LEFT

\ No newline at end of file diff --git a/obj/item/clothing/neck/size_collar.html b/obj/item/clothing/neck/size_collar.html new file mode 100644 index 0000000000000..773bc9bff91b6 --- /dev/null +++ b/obj/item/clothing/neck/size_collar.html @@ -0,0 +1 @@ +/obj/item/clothing/neck/size_collar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

size_collar

Vars

size_componentThe temporary_size component we have attached to the wearer.
target_sizeWhat size do we want to set the wearer to when they wear the collar?
warning_givenHave we given the user the warning message yet?

Var Details

size_component

The temporary_size component we have attached to the wearer.

target_size

What size do we want to set the wearer to when they wear the collar?

warning_given

Have we given the user the warning message yet?

\ No newline at end of file diff --git a/obj/item/clothing/neck/tie.html b/obj/item/clothing/neck/tie.html new file mode 100644 index 0000000000000..f668cf1a10824 --- /dev/null +++ b/obj/item/clothing/neck/tie.html @@ -0,0 +1 @@ +/obj/item/clothing/neck/tie - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tie

Vars

clip_onIs this tie a clip-on, meaning it does not have an untied state?
is_tiedAll ties start untied unless otherwise specified
tie_timerHow long it takes to tie the tie

Var Details

clip_on

Is this tie a clip-on, meaning it does not have an untied state?

is_tied

All ties start untied unless otherwise specified

tie_timer

How long it takes to tie the tie

\ No newline at end of file diff --git a/obj/item/clothing/sextoy.html b/obj/item/clothing/sextoy.html new file mode 100644 index 0000000000000..1dcdf1a2976f0 --- /dev/null +++ b/obj/item/clothing/sextoy.html @@ -0,0 +1,13 @@ +/obj/item/clothing/sextoy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sextoy

Vars

current_equipped_slotThis is to keep track of where we are stored, because sometimes we might want to know that
lewd_slot_flagsThis is used to decide what lewd slot a toy should be able to be inserted into. +The currently accepted defines are all prefixes with LEWD_SLOT_, and there is one for each lewd organ. +See code/__DEFINES/~skyrat_defines/inventory.dm for the full list.

Procs

check_menuA check to confirm if you can open the toy's color/design radial menu
is_inside_lewd_slotReturns if the item is inside a lewd slot.
lewd_equippedCalled after an item is placed in a lewd slot via the interaction menu. This gets called after equipped() does.

Var Details

current_equipped_slot

This is to keep track of where we are stored, because sometimes we might want to know that

lewd_slot_flags

This is used to decide what lewd slot a toy should be able to be inserted into. +The currently accepted defines are all prefixes with LEWD_SLOT_, and there is one for each lewd organ. +See code/__DEFINES/~skyrat_defines/inventory.dm for the full list.

Proc Details

check_menu

A check to confirm if you can open the toy's color/design radial menu

is_inside_lewd_slot

Returns if the item is inside a lewd slot.

lewd_equipped

Called after an item is placed in a lewd slot via the interaction menu. This gets called after equipped() does.

+

Use this instead of equipped() when dealing with lewd slots. We really should hook this better into the upstream +equip chain but for now this will have to do.

+

Arguments:

+
    +
  • user is mob that equipped it
  • +
  • slot(s) that item is equipped to
  • +
  • initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it
  • +
\ No newline at end of file diff --git a/obj/item/clothing/sextoy/buttplug.html b/obj/item/clothing/sextoy/buttplug.html new file mode 100644 index 0000000000000..a1d52601ea85b --- /dev/null +++ b/obj/item/clothing/sextoy/buttplug.html @@ -0,0 +1 @@ +/obj/item/clothing/sextoy/buttplug - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

buttplug

Vars

buttplug_designsA static list containing all designs (or colors) of toys
buttplug_formsA static list containing all forms (or sizes) of toys
color_changedA bool of if the color's been changed before
current_colorCurrent color of the toy, can be changed, affects sprite
current_sizeCurrent size of the toy, can be changed, affects sprite and arousal
form_changedA bool of if the form has been altered before

Var Details

buttplug_designs

A static list containing all designs (or colors) of toys

buttplug_forms

A static list containing all forms (or sizes) of toys

color_changed

A bool of if the color's been changed before

current_color

Current color of the toy, can be changed, affects sprite

current_size

Current size of the toy, can be changed, affects sprite and arousal

form_changed

A bool of if the form has been altered before

\ No newline at end of file diff --git a/obj/item/clothing/sextoy/condom.html b/obj/item/clothing/sextoy/condom.html new file mode 100644 index 0000000000000..6ae6c5ee3671b --- /dev/null +++ b/obj/item/clothing/sextoy/condom.html @@ -0,0 +1 @@ +/obj/item/clothing/sextoy/condom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

condom

Procs

condom_useUpdates the condom's sprite, called after use

Proc Details

condom_use

Updates the condom's sprite, called after use

\ No newline at end of file diff --git a/obj/item/clothing/sextoy/dildo.html b/obj/item/clothing/sextoy/dildo.html new file mode 100644 index 0000000000000..d23c435e5edc4 --- /dev/null +++ b/obj/item/clothing/sextoy/dildo.html @@ -0,0 +1 @@ +/obj/item/clothing/sextoy/dildo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dildo

Vars

change_spriteIf the toy can have its sprite changed
color_changedIf the design has been changed before
current_typeCurrent design of the toy, affects sprite and can change
dildo_designsAssoc list of designs, used in the radial menu for picking one
poly_sizeHow large is the toy? ("small", "medium", "large") (only changed on custom_dildo)
side_doubleIf it's part of a double-sided toy or not
size_changedIf the size has been changed before (only changed on custom_dildo, left here for consistency with poly_size)

Procs

populate_dildo_designsCreate an assoc list of designs for the radial color/design menu

Var Details

change_sprite

If the toy can have its sprite changed

color_changed

If the design has been changed before

current_type

Current design of the toy, affects sprite and can change

dildo_designs

Assoc list of designs, used in the radial menu for picking one

poly_size

How large is the toy? ("small", "medium", "large") (only changed on custom_dildo)

side_double

If it's part of a double-sided toy or not

size_changed

If the size has been changed before (only changed on custom_dildo, left here for consistency with poly_size)

Proc Details

populate_dildo_designs

Create an assoc list of designs for the radial color/design menu

\ No newline at end of file diff --git a/obj/item/clothing/sextoy/dildo/custom_dildo.html b/obj/item/clothing/sextoy/dildo/custom_dildo.html new file mode 100644 index 0000000000000..5e839dd9b477c --- /dev/null +++ b/obj/item/clothing/sextoy/dildo/custom_dildo.html @@ -0,0 +1 @@ +/obj/item/clothing/sextoy/dildo/custom_dildo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

custom_dildo

Procs

customizeChoose a color and transparency level for the toy

Proc Details

customize

Choose a color and transparency level for the toy

\ No newline at end of file diff --git a/obj/item/clothing/sextoy/dildo/double_dildo.html b/obj/item/clothing/sextoy/dildo/double_dildo.html new file mode 100644 index 0000000000000..7433688a7f7f6 --- /dev/null +++ b/obj/item/clothing/sextoy/dildo/double_dildo.html @@ -0,0 +1 @@ +/obj/item/clothing/sextoy/dildo/double_dildo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

double_dildo

Vars

end_in_handIf one end of the toy is in your hand
in_backWhether or not the current location is front or behind
other_endReference to the end of the toy that you can hold when the other end is inserted in you

Procs

can_take_in_handA check to make sure the user can actually take one end in their hand
take_in_handFor holding the other end while the thing is inserted, returns FALSE if unsuccessful
toggleCode for taking out/putting away the other end of the toy when one end is in you

Var Details

end_in_hand

If one end of the toy is in your hand

in_back

Whether or not the current location is front or behind

other_end

Reference to the end of the toy that you can hold when the other end is inserted in you

Proc Details

can_take_in_hand

A check to make sure the user can actually take one end in their hand

take_in_hand

For holding the other end while the thing is inserted, returns FALSE if unsuccessful

toggle

Code for taking out/putting away the other end of the toy when one end is in you

\ No newline at end of file diff --git a/obj/item/clothing/sextoy/dildo/double_dildo_end.html b/obj/item/clothing/sextoy/dildo/double_dildo_end.html new file mode 100644 index 0000000000000..475f086316c2f --- /dev/null +++ b/obj/item/clothing/sextoy/dildo/double_dildo_end.html @@ -0,0 +1 @@ +/obj/item/clothing/sextoy/dildo/double_dildo_end - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

double_dildo_end

Vars

parent_endref to the parent end

Var Details

parent_end

ref to the parent end

\ No newline at end of file diff --git a/obj/item/clothing/sextoy/eggvib.html b/obj/item/clothing/sextoy/eggvib.html new file mode 100644 index 0000000000000..9155c092457fd --- /dev/null +++ b/obj/item/clothing/sextoy/eggvib.html @@ -0,0 +1 @@ +/obj/item/clothing/sextoy/eggvib - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

eggvib

Vars

color_changedBool of if the color's been changed or not before
current_colorThe current color of the toy, affects sprite
soundloop1A looping sound called on process()
soundloop2A looping sound called on process()
soundloop3A looping sound called on process()
toy_onIs the toy currently on
vib_designsThe sprites used in the radial menu when selecting a toy color
vibration_modeThe current mode of the toy, affects sprite

Procs

populate_vib_designsCreates the designs for the color choice radial menu
toggle_modeToggles between vibration modes seuentially

Var Details

color_changed

Bool of if the color's been changed or not before

current_color

The current color of the toy, affects sprite

soundloop1

A looping sound called on process()

soundloop2

A looping sound called on process()

soundloop3

A looping sound called on process()

toy_on

Is the toy currently on

vib_designs

The sprites used in the radial menu when selecting a toy color

vibration_mode

The current mode of the toy, affects sprite

Proc Details

populate_vib_designs

Creates the designs for the color choice radial menu

toggle_mode

Toggles between vibration modes seuentially

\ No newline at end of file diff --git a/obj/item/clothing/sextoy/eggvib/signalvib.html b/obj/item/clothing/sextoy/eggvib/signalvib.html new file mode 100644 index 0000000000000..404e41cd3ff45 --- /dev/null +++ b/obj/item/clothing/sextoy/eggvib/signalvib.html @@ -0,0 +1 @@ +/obj/item/clothing/sextoy/eggvib/signalvib - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

signalvib

Vars

codeThe default signaller code of the toy
freq_in_nameIf TRUE, the set code and frequency will be appended to the toy's name
frequencyThe default frequency of the toy
randomIf TRUE, the code and frequency will be random on initialize()

Var Details

code

The default signaller code of the toy

freq_in_name

If TRUE, the set code and frequency will be appended to the toy's name

frequency

The default frequency of the toy

random

If TRUE, the code and frequency will be random on initialize()

\ No newline at end of file diff --git a/obj/item/clothing/sextoy/fleshlight.html b/obj/item/clothing/sextoy/fleshlight.html new file mode 100644 index 0000000000000..04e860e15bf39 --- /dev/null +++ b/obj/item/clothing/sextoy/fleshlight.html @@ -0,0 +1 @@ +/obj/item/clothing/sextoy/fleshlight - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fleshlight

Vars

color_changedIf the color of the toy has been changed before
current_colorCurrent color of the toy, can be changed, affects sprite
fleshlight_designsA list of toy designs for use in the radial color choice menu

Procs

populate_fleshlight_designsGenerates a list of toy colors (or designs) for use in the radial color choice menu

Var Details

color_changed

If the color of the toy has been changed before

current_color

Current color of the toy, can be changed, affects sprite

fleshlight_designs

A list of toy designs for use in the radial color choice menu

Proc Details

populate_fleshlight_designs

Generates a list of toy colors (or designs) for use in the radial color choice menu

\ No newline at end of file diff --git a/obj/item/clothing/sextoy/magic_wand.html b/obj/item/clothing/sextoy/magic_wand.html new file mode 100644 index 0000000000000..c2396bf7e0733 --- /dev/null +++ b/obj/item/clothing/sextoy/magic_wand.html @@ -0,0 +1 @@ +/obj/item/clothing/sextoy/magic_wand - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

magic_wand

Vars

magicwand_overlayMutable appearance for the human overlay of this itme
soundloop1Looping sound called on process()
soundloop2Looping sound called on process()
soundloop3Looping sound called on process()
vibration_modeWhat mode the vibrator is on

Procs

toggle_modeToggle between toy modes in a specific order

Var Details

magicwand_overlay

Mutable appearance for the human overlay of this itme

soundloop1

Looping sound called on process()

soundloop2

Looping sound called on process()

soundloop3

Looping sound called on process()

vibration_mode

What mode the vibrator is on

Proc Details

toggle_mode

Toggle between toy modes in a specific order

\ No newline at end of file diff --git a/obj/item/clothing/sextoy/nipple_clamps.html b/obj/item/clothing/sextoy/nipple_clamps.html new file mode 100644 index 0000000000000..5550224020243 --- /dev/null +++ b/obj/item/clothing/sextoy/nipple_clamps.html @@ -0,0 +1 @@ +/obj/item/clothing/sextoy/nipple_clamps - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nipple_clamps

Vars

breast_sizeWhat size are the wearer's breasts?
breast_typeWhat kind are the wearer's breasts?
clamps_overlayMutable overlay containing the icon of the clamps

Var Details

breast_size

What size are the wearer's breasts?

breast_type

What kind are the wearer's breasts?

clamps_overlay

Mutable overlay containing the icon of the clamps

\ No newline at end of file diff --git a/obj/item/clothing/sextoy/vibrator.html b/obj/item/clothing/sextoy/vibrator.html new file mode 100644 index 0000000000000..97e0226e8c2f1 --- /dev/null +++ b/obj/item/clothing/sextoy/vibrator.html @@ -0,0 +1 @@ +/obj/item/clothing/sextoy/vibrator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vibrator

Vars

color_changedIf the color has been changed before
current_colorCurrent color of the toy, can be changed and affects sprite
soundloop1Looping sound used for the toy's audible bit
soundloop2Looping sound used for the toy's audible bit
soundloop3Looping sound used for the toy's audible bit
toy_onIf the toy is on or not
vibration_modeCurrent vibration mode of the toy
vibrator_designsStatic list of designs of the toy, used for the color selection radial menu

Var Details

color_changed

If the color has been changed before

current_color

Current color of the toy, can be changed and affects sprite

soundloop1

Looping sound used for the toy's audible bit

soundloop2

Looping sound used for the toy's audible bit

soundloop3

Looping sound used for the toy's audible bit

toy_on

If the toy is on or not

vibration_mode

Current vibration mode of the toy

vibrator_designs

Static list of designs of the toy, used for the color selection radial menu

\ No newline at end of file diff --git a/obj/item/clothing/sextoy/vibroring.html b/obj/item/clothing/sextoy/vibroring.html new file mode 100644 index 0000000000000..eff2434e0ecd2 --- /dev/null +++ b/obj/item/clothing/sextoy/vibroring.html @@ -0,0 +1 @@ +/obj/item/clothing/sextoy/vibroring - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

vibroring

Vars

color_changedIf the color has been changed before
current_colorThe current color of the toy, cna be changed and affects sprite
soundloopLooping sound called on process
toy_onIf the toy is currently on or not
vibroring_designsA list of designs, used in the radial color selection menu

Procs

populate_vibroring_designspopulates the design list used when creating the radial color choice menu

Var Details

color_changed

If the color has been changed before

current_color

The current color of the toy, cna be changed and affects sprite

soundloop

Looping sound called on process

toy_on

If the toy is currently on or not

vibroring_designs

A list of designs, used in the radial color selection menu

Proc Details

populate_vibroring_designs

populates the design list used when creating the radial color choice menu

\ No newline at end of file diff --git a/obj/item/clothing/shoes.html b/obj/item/clothing/shoes.html new file mode 100644 index 0000000000000..fa9e86e3c40e3 --- /dev/null +++ b/obj/item/clothing/shoes.html @@ -0,0 +1,13 @@ +/obj/item/clothing/shoes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shoes

Vars

can_be_tiedWhether these shoes have laces that can be tied/untied
lace_timeHow long it takes to lace/unlace these shoes
our_alert_refAn active alert
tiedAre we currently tied? Can either be SHOES_UNTIED, SHOES_TIED, or SHOES_KNOTTED

Procs

adjust_lacesadjust_laces adjusts whether our shoes (assuming they can_be_tied) and tied, untied, or knotted
check_tripcheck_trip runs on each step to see if we fall over as a result of our lace status. Knotted laces are a guaranteed trip, while untied shoes are just a chance to stumble
handle_tyinghandle_tying deals with all the actual tying/untying/knotting, inferring your intent from who you are in relation to the state of the laces
still_shoedchecking to make sure we're still on the person we're supposed to be, for lacing do_after's

Var Details

can_be_tied

Whether these shoes have laces that can be tied/untied

lace_time

How long it takes to lace/unlace these shoes

our_alert_ref

An active alert

tied

Are we currently tied? Can either be SHOES_UNTIED, SHOES_TIED, or SHOES_KNOTTED

Proc Details

adjust_laces

adjust_laces adjusts whether our shoes (assuming they can_be_tied) and tied, untied, or knotted

+

In addition to setting the state, it will deal with getting rid of alerts if they exist, as well as registering and unregistering the stepping signals

+

Arguments:

+
    +
  • state: SHOES_UNTIED, SHOES_TIED, or SHOES_KNOTTED, depending on what you want them to become
  • +
  • user: used to check to see if we're the ones unknotting our own laces
  • +
  • force_lacing: boolean. if TRUE, ignores can_be_tied
  • +

check_trip

check_trip runs on each step to see if we fall over as a result of our lace status. Knotted laces are a guaranteed trip, while untied shoes are just a chance to stumble

handle_tying

handle_tying deals with all the actual tying/untying/knotting, inferring your intent from who you are in relation to the state of the laces

+

If you're the wearer, you want them to move towards tied-ness (knotted -> untied -> tied). If you're not, you're pranking them, so you're moving towards knotted-ness (tied -> untied -> knotted)

+

Arguments:

+
    +
  • user: who is the person interacting with the shoes?
  • +

still_shoed

checking to make sure we're still on the person we're supposed to be, for lacing do_after's

\ No newline at end of file diff --git a/obj/item/clothing/shoes/clown_shoes.html b/obj/item/clothing/shoes/clown_shoes.html new file mode 100644 index 0000000000000..8cf052b3c6ffc --- /dev/null +++ b/obj/item/clothing/shoes/clown_shoes.html @@ -0,0 +1 @@ +/obj/item/clothing/shoes/clown_shoes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

clown_shoes

Vars

squeak_soundList of possible sounds for the squeak component to use, allows for different clown shoe subtypes to have different sounds.

Var Details

squeak_sound

List of possible sounds for the squeak component to use, allows for different clown shoe subtypes to have different sounds.

\ No newline at end of file diff --git a/obj/item/clothing/shoes/clown_shoes/banana_shoes.html b/obj/item/clothing/shoes/clown_shoes/banana_shoes.html new file mode 100644 index 0000000000000..da6fdb4a7b93e --- /dev/null +++ b/obj/item/clothing/shoes/clown_shoes/banana_shoes.html @@ -0,0 +1 @@ +/obj/item/clothing/shoes/clown_shoes/banana_shoes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

banana_shoes

Vars

always_noslipIf TRUE, we will always have the noslip trait no matter whether they're on or off
banana_typeTypepath of created banana
bananiumMaterial container for bananium
material_per_bananaHow many materials we consume per banana created
onWhether the clown shoes are active (spawning bananas)

Var Details

always_noslip

If TRUE, we will always have the noslip trait no matter whether they're on or off

banana_type

Typepath of created banana

bananium

Material container for bananium

material_per_banana

How many materials we consume per banana created

on

Whether the clown shoes are active (spawning bananas)

\ No newline at end of file diff --git a/obj/item/clothing/shoes/cowboy.html b/obj/item/clothing/shoes/cowboy.html new file mode 100644 index 0000000000000..bfbe16b3cf1bf --- /dev/null +++ b/obj/item/clothing/shoes/cowboy.html @@ -0,0 +1 @@ +/obj/item/clothing/shoes/cowboy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cowboy

Vars

has_spursDo these boots have spur sounds?
spur_soundThe jingle jangle jingle of our spurs

Var Details

has_spurs

Do these boots have spur sounds?

spur_sound

The jingle jangle jingle of our spurs

\ No newline at end of file diff --git a/obj/item/clothing/shoes/galoshes.html b/obj/item/clothing/shoes/galoshes.html new file mode 100644 index 0000000000000..0210ae8af6f69 --- /dev/null +++ b/obj/item/clothing/shoes/galoshes.html @@ -0,0 +1 @@ +/obj/item/clothing/shoes/galoshes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

galoshes

Vars

fishing_modifierHow much these boots affect fishing difficulty

Var Details

fishing_modifier

How much these boots affect fishing difficulty

\ No newline at end of file diff --git a/obj/item/clothing/shoes/gunboots.html b/obj/item/clothing/shoes/gunboots.html new file mode 100644 index 0000000000000..dbd445640549f --- /dev/null +++ b/obj/item/clothing/shoes/gunboots.html @@ -0,0 +1 @@ +/obj/item/clothing/shoes/gunboots - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gunboots

Vars

projectile_typeWhat projectile do we shoot?
shot_probEach step, this is the chance we fire a shot

Procs

check_kickStomping on someone while wearing gunboots shoots them point blank
check_stepAfter each step, check if we randomly fire a shot
fire_shotActually fire a shot. If no target is provided, just fire off in a random direction

Var Details

projectile_type

What projectile do we shoot?

shot_prob

Each step, this is the chance we fire a shot

Proc Details

check_kick

Stomping on someone while wearing gunboots shoots them point blank

check_step

After each step, check if we randomly fire a shot

fire_shot

Actually fire a shot. If no target is provided, just fire off in a random direction

\ No newline at end of file diff --git a/obj/item/clothing/shoes/magboots.html b/obj/item/clothing/shoes/magboots.html new file mode 100644 index 0000000000000..0ac922f6ca95d --- /dev/null +++ b/obj/item/clothing/shoes/magboots.html @@ -0,0 +1 @@ +/obj/item/clothing/shoes/magboots - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

magboots

Vars

active_traitsA list of traits we apply when we get activated
fishing_modifierHow much do these boots affect fishing when not active
magpulseWhether the magpulse system is active
magpulse_fishing_modifierHow much do these boots affect fishing when active
slowdown_activeSlowdown applied wwhen magpulse is active. This is added onto existing slowdown

Procs

on_speed_potionedSignal handler for COMSIG_SPEED_POTION_APPLIED. Speed potion removes the active slowdown

Var Details

active_traits

A list of traits we apply when we get activated

fishing_modifier

How much do these boots affect fishing when not active

magpulse

Whether the magpulse system is active

magpulse_fishing_modifier

How much do these boots affect fishing when active

slowdown_active

Slowdown applied wwhen magpulse is active. This is added onto existing slowdown

Proc Details

on_speed_potioned

Signal handler for COMSIG_SPEED_POTION_APPLIED. Speed potion removes the active slowdown

\ No newline at end of file diff --git a/obj/item/clothing/shoes/shibari_legs.html b/obj/item/clothing/shoes/shibari_legs.html new file mode 100644 index 0000000000000..e70ee7c99ab13 --- /dev/null +++ b/obj/item/clothing/shoes/shibari_legs.html @@ -0,0 +1 @@ +/obj/item/clothing/shoes/shibari_legs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shibari_legs

Vars

glowshould this clothing item use the emissive system

Var Details

glow

should this clothing item use the emissive system

\ No newline at end of file diff --git a/obj/item/clothing/shoes/wheelys.html b/obj/item/clothing/shoes/wheelys.html new file mode 100644 index 0000000000000..ffc183bdbc3e2 --- /dev/null +++ b/obj/item/clothing/shoes/wheelys.html @@ -0,0 +1 @@ +/obj/item/clothing/shoes/wheelys - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wheelys

Vars

wheelToggleFalse means wheels are not popped out
wheelsThe vehicle associated with the shoes

Var Details

wheelToggle

False means wheels are not popped out

wheels

The vehicle associated with the shoes

\ No newline at end of file diff --git a/obj/item/clothing/suit.html b/obj/item/clothing/suit.html new file mode 100644 index 0000000000000..0ac2d3f25b810 --- /dev/null +++ b/obj/item/clothing/suit.html @@ -0,0 +1 @@ +/obj/item/clothing/suit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

suit

Vars

gets_cropped_on_taursDoes this object get cropped when worn by a taur on their suit or uniform slot?

Var Details

gets_cropped_on_taurs

Does this object get cropped when worn by a taur on their suit or uniform slot?

\ No newline at end of file diff --git a/obj/item/clothing/suit/armor/abductor/vest.html b/obj/item/clothing/suit/armor/abductor/vest.html new file mode 100644 index 0000000000000..03a9c2cbb08aa --- /dev/null +++ b/obj/item/clothing/suit/armor/abductor/vest.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/armor/abductor/vest - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vest

Vars

combat_cooldownCooldown in seconds for the combat mode activation stimulant.
disguiseThe visual of our suit's disguise.
modeWhat operation mode is our vest in?
stealth_activeDo we have a disguise active?

Var Details

combat_cooldown

Cooldown in seconds for the combat mode activation stimulant.

disguise

The visual of our suit's disguise.

mode

What operation mode is our vest in?

stealth_active

Do we have a disguise active?

\ No newline at end of file diff --git a/obj/item/clothing/suit/armor/reactive.html b/obj/item/clothing/suit/armor/reactive.html new file mode 100644 index 0000000000000..6e4eb33242037 --- /dev/null +++ b/obj/item/clothing/suit/armor/reactive.html @@ -0,0 +1,13 @@ +/obj/item/clothing/suit/armor/reactive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

reactive

Vars

activeWhether the armor will try to react to hits (is it on)
bad_effectThis will be true for 30 seconds after an EMP, it makes the reaction effect dangerous to the user.
cooldown_messageMessage sent when the armor is still on cooldown, but activates.
emp_messageMessage sent when the armor is emp'd. It is not the message for when the emp effect goes off.
reactivearmor_cooldownThe cooldown itself of the reactive armor for when it can activate again.
reactivearmor_cooldown_durationDuration of the cooldown specific to reactive armor for when it can activate again.

Procs

cooldown_activationA proc for doing cooldown effects (like the sparks on the tesla armor, or the semi-stealth on stealth armor) +Called from the suit activating whilst on cooldown. +You should be calling ..()
emp_activationA proc for doing owner unfriendly reactive armor effects. +Called from the suit activating while off cooldown, while the armor is still suffering from the effect of an EMP. +Returning TRUE will block the attack that triggered this
reactive_activationA proc for doing reactive armor effects. +Called from the suit activating while off cooldown, with no emp. +Returning TRUE will block the attack that triggered this

Var Details

active

Whether the armor will try to react to hits (is it on)

bad_effect

This will be true for 30 seconds after an EMP, it makes the reaction effect dangerous to the user.

cooldown_message

Message sent when the armor is still on cooldown, but activates.

emp_message

Message sent when the armor is emp'd. It is not the message for when the emp effect goes off.

reactivearmor_cooldown

The cooldown itself of the reactive armor for when it can activate again.

reactivearmor_cooldown_duration

Duration of the cooldown specific to reactive armor for when it can activate again.

Proc Details

cooldown_activation

A proc for doing cooldown effects (like the sparks on the tesla armor, or the semi-stealth on stealth armor) +Called from the suit activating whilst on cooldown. +You should be calling ..()

emp_activation

A proc for doing owner unfriendly reactive armor effects. +Called from the suit activating while off cooldown, while the armor is still suffering from the effect of an EMP. +Returning TRUE will block the attack that triggered this

reactive_activation

A proc for doing reactive armor effects. +Called from the suit activating while off cooldown, with no emp. +Returning TRUE will block the attack that triggered this

\ No newline at end of file diff --git a/obj/item/clothing/suit/armor/reactive/barricade.html b/obj/item/clothing/suit/armor/reactive/barricade.html new file mode 100644 index 0000000000000..8545390b3e115 --- /dev/null +++ b/obj/item/clothing/suit/armor/reactive/barricade.html @@ -0,0 +1,10 @@ +/obj/item/clothing/suit/armor/reactive/barricade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

barricade

Procs

repulsePushes something one tile away from the source.
repulse_targetsReturns a list of all atoms around the source which can be moved away from it.

Proc Details

repulse

Pushes something one tile away from the source.

+

Arguments

+
    +
  • victim - Thing being moved.
  • +
  • source - Thing to move it away from.
  • +

repulse_targets

Returns a list of all atoms around the source which can be moved away from it.

+

Arguments

+
    +
  • source - Thing to try to move things away from.
  • +
\ No newline at end of file diff --git a/obj/item/clothing/suit/armor/reactive/bioscrambling.html b/obj/item/clothing/suit/armor/reactive/bioscrambling.html new file mode 100644 index 0000000000000..5022d059198bd --- /dev/null +++ b/obj/item/clothing/suit/armor/reactive/bioscrambling.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/armor/reactive/bioscrambling - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bioscrambling

Vars

rangeRange of the effect.
zonesLists for zones and bodyparts to swap and randomize

Var Details

range

Range of the effect.

zones

Lists for zones and bodyparts to swap and randomize

\ No newline at end of file diff --git a/obj/item/clothing/suit/armor/reactive/stealth.html b/obj/item/clothing/suit/armor/reactive/stealth.html new file mode 100644 index 0000000000000..e0be5165a2627 --- /dev/null +++ b/obj/item/clothing/suit/armor/reactive/stealth.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/armor/reactive/stealth - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stealth

Vars

animation_timehow long it will animate back the alpha to the original
cooldown_alpha_removalwhen triggering while on cooldown will only flicker the alpha slightly. this is how much it removes.
cooldown_animation_timecooldown alpha flicker- how long it takes to return to the original alpha
stealth_timehow long they will be fully stealthed

Var Details

animation_time

how long it will animate back the alpha to the original

cooldown_alpha_removal

when triggering while on cooldown will only flicker the alpha slightly. this is how much it removes.

cooldown_animation_time

cooldown alpha flicker- how long it takes to return to the original alpha

stealth_time

how long they will be fully stealthed

\ No newline at end of file diff --git a/obj/item/clothing/suit/armor/reactive/tesla.html b/obj/item/clothing/suit/armor/reactive/tesla.html new file mode 100644 index 0000000000000..e2817402ff70b --- /dev/null +++ b/obj/item/clothing/suit/armor/reactive/tesla.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/armor/reactive/tesla - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tesla

Vars

zap_flagsWhat flags do we pass to the zaps we give off?
zap_powerHow strong are the zaps we give off?
zap_rangeHow far to the zaps we give off go?

Var Details

zap_flags

What flags do we pass to the zaps we give off?

zap_power

How strong are the zaps we give off?

zap_range

How far to the zaps we give off go?

\ No newline at end of file diff --git a/obj/item/clothing/suit/armor/riot/skinsuit_armor.html b/obj/item/clothing/suit/armor/riot/skinsuit_armor.html new file mode 100644 index 0000000000000..ecef130c074f4 --- /dev/null +++ b/obj/item/clothing/suit/armor/riot/skinsuit_armor.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/armor/riot/skinsuit_armor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

skinsuit_armor

Procs

check_tailPick an icon_state that matches nicer with tails if one is found on the wearer

Proc Details

check_tail

Pick an icon_state that matches nicer with tails if one is found on the wearer

\ No newline at end of file diff --git a/obj/item/clothing/suit/armor/vest/cin_surplus_vest.html b/obj/item/clothing/suit/armor/vest/cin_surplus_vest.html new file mode 100644 index 0000000000000..ead2b2e798d23 --- /dev/null +++ b/obj/item/clothing/suit/armor/vest/cin_surplus_vest.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/armor/vest/cin_surplus_vest - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cin_surplus_vest

Procs

generate_random_accessoriesDecides if the armor vest should have its extra plates or not

Proc Details

generate_random_accessories

Decides if the armor vest should have its extra plates or not

\ No newline at end of file diff --git a/obj/item/clothing/suit/armor/vest/ctf.html b/obj/item/clothing/suit/armor/vest/ctf.html new file mode 100644 index 0000000000000..e14c6f5c31527 --- /dev/null +++ b/obj/item/clothing/suit/armor/vest/ctf.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/armor/vest/ctf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ctf

Vars

team_shield_iconIcon state to be fed into the shielded component

Var Details

team_shield_icon

Icon state to be fed into the shielded component

\ No newline at end of file diff --git a/obj/item/clothing/suit/bio_suit/plaguedoctorsuit.html b/obj/item/clothing/suit/bio_suit/plaguedoctorsuit.html new file mode 100644 index 0000000000000..3decf0511f963 --- /dev/null +++ b/obj/item/clothing/suit/bio_suit/plaguedoctorsuit.html @@ -0,0 +1,4 @@ +/obj/item/clothing/suit/bio_suit/plaguedoctorsuit - /tg/ Station 13
/tg/ Station 13 - Modules - Types

plaguedoctorsuit

NONE(Squash) +Clothing that does not have a digitigrade version, and thus will squash legs to fit.

+

NO NEW ICON +Clothing that do not require a new icon to function correctly, think, big jackets.

\ No newline at end of file diff --git a/obj/item/clothing/suit/clockwork/cloak.html b/obj/item/clothing/suit/clockwork/cloak.html new file mode 100644 index 0000000000000..1eb6936adc4ef --- /dev/null +++ b/obj/item/clothing/suit/clockwork/cloak.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/clockwork/cloak - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cloak

Vars

previous_alphaPrevious alpha value of the user when removing/disabling the jacket
shroud_activeIs the shroud itself active or not
wearerWho is wearing this

Procs

disableUn-apply the effects of the cloak, returning the wearer to normal
enableApply the effects to the wearer, making them pretty hard to see

Var Details

previous_alpha

Previous alpha value of the user when removing/disabling the jacket

shroud_active

Is the shroud itself active or not

wearer

Who is wearing this

Proc Details

disable

Un-apply the effects of the cloak, returning the wearer to normal

enable

Apply the effects to the wearer, making them pretty hard to see

\ No newline at end of file diff --git a/obj/item/clothing/suit/corset.html b/obj/item/clothing/suit/corset.html new file mode 100644 index 0000000000000..c3025db0d7c46 --- /dev/null +++ b/obj/item/clothing/suit/corset.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/corset - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

corset

Vars

laced_tightHas it been laced tightly?

Var Details

laced_tight

Has it been laced tightly?

\ No newline at end of file diff --git a/obj/item/clothing/suit/costume/wellworn_shirt.html b/obj/item/clothing/suit/costume/wellworn_shirt.html new file mode 100644 index 0000000000000..7fe128d6049cd --- /dev/null +++ b/obj/item/clothing/suit/costume/wellworn_shirt.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/costume/wellworn_shirt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wellworn_shirt

Vars

wash_countHow many times has this shirt been washed? (In an ideal world this is just the determinant of the transform matrix.)

Var Details

wash_count

How many times has this shirt been washed? (In an ideal world this is just the determinant of the transform matrix.)

\ No newline at end of file diff --git a/obj/item/clothing/suit/hooded.html b/obj/item/clothing/suit/hooded.html new file mode 100644 index 0000000000000..32d8d78354138 --- /dev/null +++ b/obj/item/clothing/suit/hooded.html @@ -0,0 +1,2 @@ +/obj/item/clothing/suit/hooded - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hooded

Subtype with support for hoods +You no longer actually need to extend this and can just add the component yourself without a lot of this boilerplate code

Vars

alternative_modeAlternative mode for hiding the hood, instead of storing the hood in the suit it qdels it, useful for when you deal with hooded suit with storage.
hoodReference to hood object, if it exists
hood_down_overlay_suffixIcon state added as a worn overlay while the hood is down, leave as "" for no overlay
hood_up_affixWhat should be added to the end of the icon state when the hood is up? Set to "" for the suit sprite to not change at all

Procs

can_create_hoodOverride to only create the hood conditionally
on_hood_createdCalled when the hood is instantiated
on_hood_deletedCalled when hood is deleted
on_hood_downCalled when the hood is hidden
on_hood_upCalled when the hood is worn

Var Details

alternative_mode

Alternative mode for hiding the hood, instead of storing the hood in the suit it qdels it, useful for when you deal with hooded suit with storage.

hood

Reference to hood object, if it exists

hood_down_overlay_suffix

Icon state added as a worn overlay while the hood is down, leave as "" for no overlay

hood_up_affix

What should be added to the end of the icon state when the hood is up? Set to "" for the suit sprite to not change at all

Proc Details

can_create_hood

Override to only create the hood conditionally

on_hood_created

Called when the hood is instantiated

on_hood_deleted

Called when hood is deleted

on_hood_down

Called when the hood is hidden

on_hood_up

Called when the hood is worn

\ No newline at end of file diff --git a/obj/item/clothing/suit/hooded/cloak/godslayer.html b/obj/item/clothing/suit/hooded/cloak/godslayer.html new file mode 100644 index 0000000000000..1effecb799014 --- /dev/null +++ b/obj/item/clothing/suit/hooded/cloak/godslayer.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/hooded/cloak/godslayer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

godslayer

Vars

effect_cooldownCurrent cooldown for the effect
effect_cooldown_timeTime until the effect can take place again
heal_amountAmount to heal when the effect is triggered

Var Details

effect_cooldown

Current cooldown for the effect

effect_cooldown_time

Time until the effect can take place again

heal_amount

Amount to heal when the effect is triggered

\ No newline at end of file diff --git a/obj/item/clothing/suit/hooded/cultrobes.html b/obj/item/clothing/suit/hooded/cultrobes.html new file mode 100644 index 0000000000000..edd11e8d3fbce --- /dev/null +++ b/obj/item/clothing/suit/hooded/cultrobes.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/hooded/cultrobes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cultrobes

Vars

hood_upWhether the hood is flipped up

Procs

on_hood_downCalled when the hood is hidden
on_hood_upCalled when the hood is worn

Var Details

hood_up

Whether the hood is flipped up

Proc Details

on_hood_down

Called when the hood is hidden

on_hood_up

Called when the hood is worn

\ No newline at end of file diff --git a/obj/item/clothing/suit/hooded/cultrobes/cult_shield.html b/obj/item/clothing/suit/hooded/cultrobes/cult_shield.html new file mode 100644 index 0000000000000..095ef2b289655 --- /dev/null +++ b/obj/item/clothing/suit/hooded/cultrobes/cult_shield.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/hooded/cultrobes/cult_shield - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cult_shield

Procs

shield_damagedA proc for callback when the shield breaks, since cult robes are stupid and have different effects

Proc Details

shield_damaged

A proc for callback when the shield breaks, since cult robes are stupid and have different effects

\ No newline at end of file diff --git a/obj/item/clothing/suit/hooded/cultrobes/void.html b/obj/item/clothing/suit/hooded/cultrobes/void.html new file mode 100644 index 0000000000000..46bfd4a2347de --- /dev/null +++ b/obj/item/clothing/suit/hooded/cultrobes/void.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/hooded/cultrobes/void - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

void

Procs

make_invisibleMakes our cloak "invisible". Not the wearer, the cloak itself.
make_visibleMakes our cloak "visible" again.

Proc Details

make_invisible

Makes our cloak "invisible". Not the wearer, the cloak itself.

make_visible

Makes our cloak "visible" again.

\ No newline at end of file diff --git a/obj/item/clothing/suit/hooded/wintercoat.html b/obj/item/clothing/suit/hooded/wintercoat.html new file mode 100644 index 0000000000000..aa052f0fc8570 --- /dev/null +++ b/obj/item/clothing/suit/hooded/wintercoat.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/hooded/wintercoat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wintercoat

Vars

zippedHow snug are we?

Procs

on_hood_downCalled when the hood is hidden

Var Details

zipped

How snug are we?

Proc Details

on_hood_down

Called when the hood is hidden

\ No newline at end of file diff --git a/obj/item/clothing/suit/hooded/wintercoat/colourable.html b/obj/item/clothing/suit/hooded/wintercoat/colourable.html new file mode 100644 index 0000000000000..93512fad1fec4 --- /dev/null +++ b/obj/item/clothing/suit/hooded/wintercoat/colourable.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/hooded/wintercoat/colourable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

colourable

SKYRAT REWARDS

Vars

hood_upWhether the hood is flipped up

Procs

on_hood_downCalled when the hood is hidden
on_hood_upCalled when the hood is worn

Var Details

hood_up

Whether the hood is flipped up

Proc Details

on_hood_down

Called when the hood is hidden

on_hood_up

Called when the hood is worn

\ No newline at end of file diff --git a/obj/item/clothing/suit/jacket/det_suit/noir/heister.html b/obj/item/clothing/suit/jacket/det_suit/noir/heister.html new file mode 100644 index 0000000000000..6b7921a82ffcc --- /dev/null +++ b/obj/item/clothing/suit/jacket/det_suit/noir/heister.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/jacket/det_suit/noir/heister - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

heister

Vars

armor_stacksHow many hits we can take before the armor breaks, PAYDAY style

Var Details

armor_stacks

How many hits we can take before the armor breaks, PAYDAY style

\ No newline at end of file diff --git a/obj/item/clothing/suit/space.html b/obj/item/clothing/suit/space.html new file mode 100644 index 0000000000000..249724fc985dd --- /dev/null +++ b/obj/item/clothing/suit/space.html @@ -0,0 +1,8 @@ +/obj/item/clothing/suit/space - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

space

Vars

cellIf this is a path, this gets created as an object in Initialize.
cell_cover_openStatus of the cell cover on the suit
fishing_modifierHow much this suit affects fishing difficulty
show_hudIf this is FALSE the batery status UI will be disabled. This is used for suits that don't use bateries like the changeling's flesh suit mutation.
temperature_settingThe default temperature setting
thermal_onStatus of the thermal regulator

Procs

click_altOpen the cell cover when ALT+Click on the suit
equippedStart Processing on the space suit when it is worn to heat the wearer
item_ctrl_clickRemove the cell whent he cover is open on CTRL+Click
remove_cellRemove the cell from the suit if the cell cover is open
toggle_spacesuitToggle the space suit's thermal regulator status
toggle_spacesuit_cellToggle the space suit's cell cover

Var Details

cell

If this is a path, this gets created as an object in Initialize.

cell_cover_open

Status of the cell cover on the suit

fishing_modifier

How much this suit affects fishing difficulty

show_hud

If this is FALSE the batery status UI will be disabled. This is used for suits that don't use bateries like the changeling's flesh suit mutation.

temperature_setting

The default temperature setting

thermal_on

Status of the thermal regulator

Proc Details

click_alt

Open the cell cover when ALT+Click on the suit

equipped

Start Processing on the space suit when it is worn to heat the wearer

item_ctrl_click

Remove the cell whent he cover is open on CTRL+Click

remove_cell

Remove the cell from the suit if the cell cover is open

toggle_spacesuit

Toggle the space suit's thermal regulator status

+

Toggle the space suit's thermal regulator status... +Can't do it if it has no charge. +Arguments:

+
    +
  • toggler - User mob who receives the to_chat messages.
  • +
  • manual_toggle - If false get a differently-flavored message about it being disabled by itself
  • +

toggle_spacesuit_cell

Toggle the space suit's cell cover

\ No newline at end of file diff --git a/obj/item/clothing/suit/space/emergency.html b/obj/item/clothing/suit/space/emergency.html new file mode 100644 index 0000000000000..895b6f2d1444b --- /dev/null +++ b/obj/item/clothing/suit/space/emergency.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/space/emergency - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

emergency

Vars

tornHave we been damaged?

Var Details

torn

Have we been damaged?

\ No newline at end of file diff --git a/obj/item/clothing/suit/space/hev_suit.html b/obj/item/clothing/suit/space/hev_suit.html new file mode 100644 index 0000000000000..9e01fd1eedb79 --- /dev/null +++ b/obj/item/clothing/suit/space/hev_suit.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/space/hev_suit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hev_suit

Vars

activatedWhether or not the suit is activated/activating.
activation_songLots of sound vars.
armor_unpoweredUsed only for differentiating of different (obviously) suits.
blood_loss_alarmMuh alarms
current_userDefines the current user (duh), current helmet, internals tank and built-in radio.
first_useOn first activation, we play the user a nice song!
healing_current_cooldownAction cooldowns, duh.
health_static_cooldownStatic cooldowns for even more armor differentiation, duuh.
send_notificationsNotification modes and current playing voicelines.
user_old_brutelossUsed by the healing system.

Var Details

activated

Whether or not the suit is activated/activating.

activation_song

Lots of sound vars.

armor_unpowered

Used only for differentiating of different (obviously) suits.

blood_loss_alarm

Muh alarms

current_user

Defines the current user (duh), current helmet, internals tank and built-in radio.

first_use

On first activation, we play the user a nice song!

healing_current_cooldown

Action cooldowns, duh.

health_static_cooldown

Static cooldowns for even more armor differentiation, duuh.

send_notifications

Notification modes and current playing voicelines.

user_old_bruteloss

Used by the healing system.

\ No newline at end of file diff --git a/obj/item/clothing/suit/straight_jacket/shackles.html b/obj/item/clothing/suit/straight_jacket/shackles.html new file mode 100644 index 0000000000000..790fcda4143e3 --- /dev/null +++ b/obj/item/clothing/suit/straight_jacket/shackles.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/straight_jacket/shackles - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shackles

Vars

current_colorThe current variant of the shackles' color.

Var Details

current_color

The current variant of the shackles' color.

\ No newline at end of file diff --git a/obj/item/clothing/suit/toggle.html b/obj/item/clothing/suit/toggle.html new file mode 100644 index 0000000000000..921afd8a57ac9 --- /dev/null +++ b/obj/item/clothing/suit/toggle.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/toggle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

toggle

Vars

toggle_nounThe noun that is displayed to the user on toggle. EX: "Toggles the suit's [buttons]".

Var Details

toggle_noun

The noun that is displayed to the user on toggle. EX: "Toggles the suit's [buttons]".

\ No newline at end of file diff --git a/obj/item/clothing/suit/wizrobe.html b/obj/item/clothing/suit/wizrobe.html new file mode 100644 index 0000000000000..f5c22833e52a6 --- /dev/null +++ b/obj/item/clothing/suit/wizrobe.html @@ -0,0 +1 @@ +/obj/item/clothing/suit/wizrobe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wizrobe

Vars

fishing_modifierHow much this robe affects fishing difficulty

Var Details

fishing_modifier

How much this robe affects fishing difficulty

\ No newline at end of file diff --git a/obj/item/clothing/under.html b/obj/item/clothing/under.html new file mode 100644 index 0000000000000..e8bf32ed23f0a --- /dev/null +++ b/obj/item/clothing/under.html @@ -0,0 +1,19 @@ +/obj/item/clothing/under - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

under

Vars

accessory_overlayThe overlay of the accessory we're demonstrating. Only index 1 will show up. +This is the overlay on the MOB, not the item itself.
adjustedIf adjusted what style are we currently using?
alt_covers_chestFor adjusted/rolled-down jumpsuits. FALSE = exposes chest and arms, TRUE = exposes arms only
attached_accessoriesA list of all accessories attached to us.
can_adjustCan this suit be adjustd up or down to an alt style
female_sprite_flagsThe variable containing the flags for how the woman uniform cropping is supposed to interact with the sprite.
freshly_launderedHas this undersuit been freshly laundered and, as such, imparts a mood bonus for wearing
gets_cropped_on_taursDoes this object get cropped when worn by a taur on their suit or uniform slot?
has_sensorDoes this undersuit have suit sensors in general
max_number_of_accessoriesThe max number of accessories we can have on this suit.
random_sensorDoes this undersuit spawn with a random sensor value
sensor_modeWhat is the active sensor mode of this udnersuit

Procs

adjust_to_altHelper to adjust to alt jumpsuit state
adjust_to_normalHelper to reset to normal jumpsuit state
attach_accessoryAttach the passed accessory to the clothing item
break_sensorsChange the suit sensor state to broken and update the mob's status on the global sensor list
can_toggle_sensorsChecks if the toggler is allowed to toggle suit sensors currently
create_accessory_overlayHandles creating the worn overlay mutable appearance +Only the first accessory attached is displayed (currently)
dump_attachmentsHelper to remove all attachments to the passed location
get_sensor_textCalled by medical scanners a simple summary of the status
list_accessories_with_iconHelper to list out all accessories with an icon besides it, for use in examine
modify_accessory_overlaySetup the final version of accessory_overlay given custom species options.
pop_accessoryRemoves (pops) the topmost accessory from the accessories list and puts it in the user's hands if supplied
remove_accessoryRemoves the passed accesory from our accessories list
repair_sensorsRepair the suit sensors and update the mob's status on the global sensor list. +Can be called either through player action such as repairing with coil, or as part of a general fixing proc
sensor_malfunctionIf the item is being worn, a gentle reminder every 3-5 minutes that the sensors are broken
toggle_jumpsuit_adjustHelper to toggle the jumpsuit style, if possible +Returns the new state
update_accessory_overlayUpdates the accessory's worn overlay mutable appearance
update_wearer_statusIf the item is being worn, update the mob's status on the global sensor list

Var Details

accessory_overlay

The overlay of the accessory we're demonstrating. Only index 1 will show up. +This is the overlay on the MOB, not the item itself.

adjusted

If adjusted what style are we currently using?

alt_covers_chest

For adjusted/rolled-down jumpsuits. FALSE = exposes chest and arms, TRUE = exposes arms only

attached_accessories

A list of all accessories attached to us.

can_adjust

Can this suit be adjustd up or down to an alt style

female_sprite_flags

The variable containing the flags for how the woman uniform cropping is supposed to interact with the sprite.

freshly_laundered

Has this undersuit been freshly laundered and, as such, imparts a mood bonus for wearing

gets_cropped_on_taurs

Does this object get cropped when worn by a taur on their suit or uniform slot?

has_sensor

Does this undersuit have suit sensors in general

max_number_of_accessories

The max number of accessories we can have on this suit.

random_sensor

Does this undersuit spawn with a random sensor value

sensor_mode

What is the active sensor mode of this udnersuit

Proc Details

adjust_to_alt

Helper to adjust to alt jumpsuit state

adjust_to_normal

Helper to reset to normal jumpsuit state

attach_accessory

Attach the passed accessory to the clothing item

break_sensors

Change the suit sensor state to broken and update the mob's status on the global sensor list

can_toggle_sensors

Checks if the toggler is allowed to toggle suit sensors currently

create_accessory_overlay

Handles creating the worn overlay mutable appearance +Only the first accessory attached is displayed (currently)

dump_attachments

Helper to remove all attachments to the passed location

get_sensor_text

Called by medical scanners a simple summary of the status

+

Arguments:

+
    +
  • silent: If TRUE, will return blank if everything is fine
  • +

list_accessories_with_icon

Helper to list out all accessories with an icon besides it, for use in examine

modify_accessory_overlay

Setup the final version of accessory_overlay given custom species options.

pop_accessory

Removes (pops) the topmost accessory from the accessories list and puts it in the user's hands if supplied

remove_accessory

Removes the passed accesory from our accessories list

repair_sensors

Repair the suit sensors and update the mob's status on the global sensor list. +Can be called either through player action such as repairing with coil, or as part of a general fixing proc

+

Arguments:

+
    +
  • attacking_item - the item being used for the repair, if any
  • +
  • user - mob that's doing the repair
  • +
  • cable_required - set to FALSE to bypass consuming cable coil
  • +

sensor_malfunction

If the item is being worn, a gentle reminder every 3-5 minutes that the sensors are broken

toggle_jumpsuit_adjust

Helper to toggle the jumpsuit style, if possible +Returns the new state

update_accessory_overlay

Updates the accessory's worn overlay mutable appearance

update_wearer_status

If the item is being worn, update the mob's status on the global sensor list

\ No newline at end of file diff --git a/obj/item/clothing/under/akula_wetsuit.html b/obj/item/clothing/under/akula_wetsuit.html new file mode 100644 index 0000000000000..e550a375b03b0 --- /dev/null +++ b/obj/item/clothing/under/akula_wetsuit.html @@ -0,0 +1 @@ +/obj/item/clothing/under/akula_wetsuit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

akula_wetsuit

Vars

tail_overlayIf an akula tail accessory is present, we can overlay an additional icon

Procs

add_tail_overlayIf the wearer has a compatible tail for the tail_overlay variable, render it
check_physiqueThis will check the wearer's bodytype and change the wetsuit worn sprite according to if its male/female

Var Details

tail_overlay

If an akula tail accessory is present, we can overlay an additional icon

Proc Details

add_tail_overlay

If the wearer has a compatible tail for the tail_overlay variable, render it

check_physique

This will check the wearer's bodytype and change the wetsuit worn sprite according to if its male/female

\ No newline at end of file diff --git a/obj/item/clothing/under/akula_wetsuit/job.html b/obj/item/clothing/under/akula_wetsuit/job.html new file mode 100644 index 0000000000000..7362f3d513b6a --- /dev/null +++ b/obj/item/clothing/under/akula_wetsuit/job.html @@ -0,0 +1 @@ +/obj/item/clothing/under/akula_wetsuit/job - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

job

Vars

extended_descOur large examine text

Var Details

extended_desc

Our large examine text

\ No newline at end of file diff --git a/obj/item/clothing/under/color/random.html b/obj/item/clothing/under/color/random.html new file mode 100644 index 0000000000000..7f1f9388dae9d --- /dev/null +++ b/obj/item/clothing/under/color/random.html @@ -0,0 +1,5 @@ +/obj/item/clothing/under/color/random - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

random

Procs

get_random_variantRandom jumpsuit is the preferred style of the wearer if loaded as an outfit. +This is cleaner than creating a ../skirt variant as skirts are precached into SSwardrobe +and that causes runtimes for runtimes for this class as it qdels on Initialize.

Proc Details

get_random_variant

Random jumpsuit is the preferred style of the wearer if loaded as an outfit. +This is cleaner than creating a ../skirt variant as skirts are precached into SSwardrobe +and that causes runtimes for runtimes for this class as it qdels on Initialize.

\ No newline at end of file diff --git a/obj/item/clothing/under/shibari.html b/obj/item/clothing/under/shibari.html new file mode 100644 index 0000000000000..7e1244919cc74 --- /dev/null +++ b/obj/item/clothing/under/shibari.html @@ -0,0 +1 @@ +/obj/item/clothing/under/shibari - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shibari

Vars

glowshould this clothing item use the emissive system
tightnessTightness of the ropes can be low, medium and hard. This var works as multiplier for arousal and pleasure received while wearing this item

Var Details

glow

should this clothing item use the emissive system

tightness

Tightness of the ropes can be low, medium and hard. This var works as multiplier for arousal and pleasure received while wearing this item

\ No newline at end of file diff --git a/obj/item/clothing/under/syndicate/rus_army/cin_surplus/random_color.html b/obj/item/clothing/under/syndicate/rus_army/cin_surplus/random_color.html new file mode 100644 index 0000000000000..4582aca2d0701 --- /dev/null +++ b/obj/item/clothing/under/syndicate/rus_army/cin_surplus/random_color.html @@ -0,0 +1 @@ +/obj/item/clothing/under/syndicate/rus_army/cin_surplus/random_color - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

random_color

Vars

possible_limb_colorsWhat colors the jumpsuit can spawn with (only does the arms and legs of it)

Var Details

possible_limb_colors

What colors the jumpsuit can spawn with (only does the arms and legs of it)

\ No newline at end of file diff --git a/obj/item/clothing/underwear/briefs/nude.html b/obj/item/clothing/underwear/briefs/nude.html new file mode 100644 index 0000000000000..123f9cb76b3e5 --- /dev/null +++ b/obj/item/clothing/underwear/briefs/nude.html @@ -0,0 +1,10 @@ +/obj/item/clothing/underwear/briefs/nude - /tg/ Station 13
/tg/ Station 13 - Modules - Types

nude

    +
  • Do not declare new shirt or bra objects directly through typepaths, use SHIRT_OBJECT(class)/BRA_OBJECT(class) instead
  • +
  • Example:
  • +
+

SOCKS_OBJECT(test) +name = "test socks" +icon_state = "test" +flags_1 = IS_PLAYER_COLORABLE_1 +gender = MALE +...

\ No newline at end of file diff --git a/obj/item/clothing/underwear/shirt.html b/obj/item/clothing/underwear/shirt.html new file mode 100644 index 0000000000000..9176b2b764f27 --- /dev/null +++ b/obj/item/clothing/underwear/shirt.html @@ -0,0 +1,11 @@ +/obj/item/clothing/underwear/shirt - /tg/ Station 13
/tg/ Station 13 - Modules - Types

shirt

    +
  • Do not declare new briefs objects directly through typepaths, use BRIEFS_OBJECT(class) instead
  • +
  • Example:
  • +
+

BRIEFS_OBJECT(test) +name = "test boxers" +icon_state = "test" +flags_1 = IS_PLAYER_COLORABLE_1 +gender = MALE +body_parts_covered = GROIN +...

\ No newline at end of file diff --git a/obj/item/clothing/underwear/socks.html b/obj/item/clothing/underwear/socks.html new file mode 100644 index 0000000000000..c811cc90a8bc9 --- /dev/null +++ b/obj/item/clothing/underwear/socks.html @@ -0,0 +1,17 @@ +/obj/item/clothing/underwear/socks - /tg/ Station 13
/tg/ Station 13 - Modules - Types

socks

    +
  • Do not declare new shirt or bra objects directly through typepaths, use SHIRT_OBJECT(class)/BRA_OBJECT(class) instead
  • +
  • Example:
  • +
+

SHIRT_OBJECT(test) +name = "test shirt" +icon_state = "test" +flags_1 = IS_PLAYER_COLORABLE_1 +gender = MALE +body_parts_covered = CHEST | ARMS +...

+

BRA_OBJECT(test) +name = "test bra" +icon_state = "test" +flags_1 = IS_PLAYER_COLORABLE_1 +gender = FEMALE +...

\ No newline at end of file diff --git a/obj/item/codeword_granter.html b/obj/item/codeword_granter.html new file mode 100644 index 0000000000000..8c0a276647f1b --- /dev/null +++ b/obj/item/codeword_granter.html @@ -0,0 +1 @@ +/obj/item/codeword_granter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

codeword_granter

Vars

chargesNumber of charges the book has, limits the number of times it can be used.

Var Details

charges

Number of charges the book has, limits the number of times it can be used.

\ No newline at end of file diff --git a/obj/item/codex_cicatrix.html b/obj/item/codex_cicatrix.html new file mode 100644 index 0000000000000..7612f1039f501 --- /dev/null +++ b/obj/item/codex_cicatrix.html @@ -0,0 +1 @@ +/obj/item/codex_cicatrix - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

codex_cicatrix

Vars

book_openHelps determine the icon state of this item when it's used on self.

Procs

after_clear_runeCallback for effect_remover component after a rune is deleted
close_animationPlays a closing animation and resets the icon state.
open_animationPlays a little animation that shows the book opening and closing.

Var Details

book_open

Helps determine the icon state of this item when it's used on self.

Proc Details

after_clear_rune

Callback for effect_remover component after a rune is deleted

close_animation

Plays a closing animation and resets the icon state.

open_animation

Plays a little animation that shows the book opening and closing.

\ No newline at end of file diff --git a/obj/item/coin.html b/obj/item/coin.html new file mode 100644 index 0000000000000..2625fe3e59d90 --- /dev/null +++ b/obj/item/coin.html @@ -0,0 +1 @@ +/obj/item/coin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

coin

Coin

Vars

has_actionIf the coin has an action or not
heads_nameThe name of the heads side of the coin
override_material_worthIf you do not want this coin to be valued based on its materials and instead set a custom value set this to TRUE and set value to the desired value.

Var Details

has_action

If the coin has an action or not

heads_name

The name of the heads side of the coin

override_material_worth

If you do not want this coin to be valued based on its materials and instead set a custom value set this to TRUE and set value to the desired value.

\ No newline at end of file diff --git a/obj/item/coin/eldritch.html b/obj/item/coin/eldritch.html new file mode 100644 index 0000000000000..1fdcf1babdfb2 --- /dev/null +++ b/obj/item/coin/eldritch.html @@ -0,0 +1 @@ +/obj/item/coin/eldritch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

eldritch

Vars

airlock_rangeThe range at which airlocks are effected.

Var Details

airlock_range

The range at which airlocks are effected.

\ No newline at end of file diff --git a/obj/item/collar_bomb_button.html b/obj/item/collar_bomb_button.html new file mode 100644 index 0000000000000..998f148474baa --- /dev/null +++ b/obj/item/collar_bomb_button.html @@ -0,0 +1 @@ +/obj/item/collar_bomb_button - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

collar_bomb_button

The button that detonates the collar.

Vars

collarThe collar bomb it's associated with.

Var Details

collar

The collar bomb it's associated with.

\ No newline at end of file diff --git a/obj/item/computer_disk.html b/obj/item/computer_disk.html new file mode 100644 index 0000000000000..eca7737f5a76d --- /dev/null +++ b/obj/item/computer_disk.html @@ -0,0 +1,3 @@ +/obj/item/computer_disk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

computer_disk

Vars

max_capacityThe amount of storage space is on the disk
starting_programsList of all programs that the disk should start with.
stored_filesList of stored files on this drive. DO NOT MODIFY DIRECTLY!
used_capacityThe amount of storage space we've got filled

Procs

add_fileadd_file
remove_fileremove_file

Var Details

max_capacity

The amount of storage space is on the disk

starting_programs

List of all programs that the disk should start with.

stored_files

List of stored files on this drive. DO NOT MODIFY DIRECTLY!

used_capacity

The amount of storage space we've got filled

Proc Details

add_file

add_file

+

Attempts to add an already existing file to the computer disk, then adds that capacity to the used capicity.

remove_file

remove_file

+

Removes an app from the stored_files list, then removes their size from the capacity.

\ No newline at end of file diff --git a/obj/item/computer_disk/command.html b/obj/item/computer_disk/command.html new file mode 100644 index 0000000000000..c74f31ad320c2 --- /dev/null +++ b/obj/item/computer_disk/command.html @@ -0,0 +1 @@ +/obj/item/computer_disk/command - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

command

Command

Vars

command_programsStatic list of programss ALL command tablets have.

Var Details

command_programs

Static list of programss ALL command tablets have.

\ No newline at end of file diff --git a/obj/item/computer_disk/virus.html b/obj/item/computer_disk/virus.html new file mode 100644 index 0000000000000..f4bed223c4293 --- /dev/null +++ b/obj/item/computer_disk/virus.html @@ -0,0 +1,2 @@ +/obj/item/computer_disk/virus - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

virus

Virus disk +Can't hold apps, instead does unique actions.

Vars

chargesHow many charges the virus has left

Var Details

charges

How many charges the virus has left

\ No newline at end of file diff --git a/obj/item/computer_disk/virus/frame.html b/obj/item/computer_disk/virus/frame.html new file mode 100644 index 0000000000000..1a064735a46d4 --- /dev/null +++ b/obj/item/computer_disk/virus/frame.html @@ -0,0 +1,3 @@ +/obj/item/computer_disk/virus/frame - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

frame

Frame cartridge +Creates and opens a false uplink on someone's PDA +Can be loaded with TC to show up on the false uplink.

Vars

current_progressionHow much progression should be shown in the uplink, set on purchase of the item.
telecrystalsHow many telecrystals the uplink should have

Var Details

current_progression

How much progression should be shown in the uplink, set on purchase of the item.

telecrystals

How many telecrystals the uplink should have

\ No newline at end of file diff --git a/obj/item/condom_pack.html b/obj/item/condom_pack.html new file mode 100644 index 0000000000000..173c3801fc8ac --- /dev/null +++ b/obj/item/condom_pack.html @@ -0,0 +1 @@ +/obj/item/condom_pack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

condom_pack

CONDOM

Vars

current_colorThe current color of the condom, can be changed and affects sprite

Var Details

current_color

The current color of the condom, can be changed and affects sprite

\ No newline at end of file diff --git a/obj/item/construction.html b/obj/item/construction.html new file mode 100644 index 0000000000000..eefb63220df8d --- /dev/null +++ b/obj/item/construction.html @@ -0,0 +1,6 @@ +/obj/item/construction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

construction

Vars

ammo_sectionsamount of divisions in the ammo indicator overlay/number of ammo indicator states
banned_upgradesbitflags for banned upgrades
blueprint_changedhas the blueprint design changed
has_ammobarcontrols whether or not does update_icon apply ammo indicator overlays
mattercurrent local matter inside the device, not used when silo link is on
max_mattermaximum local matter this device can hold, not used when silo link is on
silo_linkswitch to use internal or remote storage
silo_matsremote connection to the silo
spark_systemthe spark system which sparks whever the ui options are dited
upgradebitflags for upgrades

Procs

build_delayAn do_after() specially designed for rhd devices
check_menuChecks if we are allowed to interact with a radial menu
get_matterreturns local matter units available. overridden by rcd borg to return power units available
get_silo_ironused for examining the RCD and for its UI
handle_ui_actoverwrite to insert custom ui handling for subtypes
insert_matterInserts matter into the RCD allowing it to build
install_upgradeInstalls an upgrade into the RCD checking if it is already installed, or if it is a banned upgrade
ui_actshared action for toggling silo link rcd,rld & plumbing
ui_datashared data for rcd,rld & plumbing

Var Details

ammo_sections

amount of divisions in the ammo indicator overlay/number of ammo indicator states

banned_upgrades

bitflags for banned upgrades

blueprint_changed

has the blueprint design changed

has_ammobar

controls whether or not does update_icon apply ammo indicator overlays

matter

current local matter inside the device, not used when silo link is on

max_matter

maximum local matter this device can hold, not used when silo link is on

switch to use internal or remote storage

silo_mats

remote connection to the silo

spark_system

the spark system which sparks whever the ui options are dited

upgrade

bitflags for upgrades

Proc Details

build_delay

An do_after() specially designed for rhd devices

check_menu

Checks if we are allowed to interact with a radial menu

+

Arguments:

+
    +
  • user The living mob interacting with the menu
  • +
  • remote_anchor The remote anchor for the menu
  • +

get_matter

returns local matter units available. overridden by rcd borg to return power units available

get_silo_iron

used for examining the RCD and for its UI

handle_ui_act

overwrite to insert custom ui handling for subtypes

insert_matter

Inserts matter into the RCD allowing it to build

install_upgrade

Installs an upgrade into the RCD checking if it is already installed, or if it is a banned upgrade

ui_act

shared action for toggling silo link rcd,rld & plumbing

ui_data

shared data for rcd,rld & plumbing

\ No newline at end of file diff --git a/obj/item/construction/plumbing.html b/obj/item/construction/plumbing.html new file mode 100644 index 0000000000000..8b78da799abdd --- /dev/null +++ b/obj/item/construction/plumbing.html @@ -0,0 +1 @@ +/obj/item/construction/plumbing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

plumbing

The plumbing RCD. All the blueprints are located in _globalvars > lists > construction.dm

Vars

blueprinttype of the plumbing machine
current_colorCurrent selected color, for ducts
current_layerCurrent selected layer
general_design_typesDesign types for general plumbing constructor
name_to_numbermaps layer name to layer number value. didnt make this global cause only this class needs it
plumbing_design_typesThis list that holds all the plumbing design types the plumberer can construct. Its purpose is to make it easy to make new plumberer subtypes with a different selection of machines.
selected_categorycategory of design selected

Procs

create_machinepretty much rcd_create, but named differently to make myself feel less bad for copypasting from a sibling-type

Var Details

blueprint

type of the plumbing machine

current_color

Current selected color, for ducts

current_layer

Current selected layer

general_design_types

Design types for general plumbing constructor

name_to_number

maps layer name to layer number value. didnt make this global cause only this class needs it

plumbing_design_types

This list that holds all the plumbing design types the plumberer can construct. Its purpose is to make it easy to make new plumberer subtypes with a different selection of machines.

selected_category

category of design selected

Proc Details

create_machine

pretty much rcd_create, but named differently to make myself feel less bad for copypasting from a sibling-type

\ No newline at end of file diff --git a/obj/item/construction/plumbing/service.html b/obj/item/construction/plumbing/service.html new file mode 100644 index 0000000000000..7c4c3988515d2 --- /dev/null +++ b/obj/item/construction/plumbing/service.html @@ -0,0 +1 @@ +/obj/item/construction/plumbing/service - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

service

Vars

service_design_typesDesign types for plumbing service constructor

Var Details

service_design_types

Design types for plumbing service constructor

\ No newline at end of file diff --git a/obj/item/construction/rcd.html b/obj/item/construction/rcd.html new file mode 100644 index 0000000000000..503c728f6b78f --- /dev/null +++ b/obj/item/construction/rcd.html @@ -0,0 +1,20 @@ +/obj/item/construction/rcd - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

rcd

Vars

airlock_electronicsintegrated airlock electronics for setting access to a newly built airlocks
canRturfvariable for R walls to deconstruct them
construction_modetemporary holder of mode, used to restore mode original value after rcd deconstruction act
current_active_effectsnumber of active rcd effects in use e.g. when building multiple walls at once this value increases
delay_moddelay multiplier for all construction types
design_categorycategory of currently selected design
design_titlename of currently selected design
modetype of structure being built, used to decide what variables are used to build what structure
ownerOwner of this rcd. It can either be a construction console, player, or mech.
rangedused by arcd, can this rcd work from a range
rcd_design_pathThe path of the structure the rcd is currently creating
root_categorymain category of currently selected design[Structures, Airlocks, Airlock Access]

Procs

_rcd_create_effectInternal proc which creates the rcd effects & creates the structure
can_placechecks if we can build the structure +Arguments
rcd_createactual proc to create the structure

Var Details

airlock_electronics

integrated airlock electronics for setting access to a newly built airlocks

canRturf

variable for R walls to deconstruct them

construction_mode

temporary holder of mode, used to restore mode original value after rcd deconstruction act

current_active_effects

number of active rcd effects in use e.g. when building multiple walls at once this value increases

delay_mod

delay multiplier for all construction types

design_category

category of currently selected design

design_title

name of currently selected design

mode

type of structure being built, used to decide what variables are used to build what structure

owner

Owner of this rcd. It can either be a construction console, player, or mech.

ranged

used by arcd, can this rcd work from a range

rcd_design_path

The path of the structure the rcd is currently creating

root_category

main category of currently selected design[Structures, Airlocks, Airlock Access]

Proc Details

_rcd_create_effect

Internal proc which creates the rcd effects & creates the structure

+

Arguments

+
    +
  • [atom][target]- the target we are trying to build on/deconstruct e.g. turf, wall etc
  • +
  • [mob][user]- the user trying to build the structure
  • +
  • delay- the delay with the disk upgrades applied
  • +
  • rcd_results- list of params which contains the cost & build mode to create the structure
  • +

can_place

checks if we can build the structure +Arguments

+
    +
  • [atom][target]- the target we are trying to build on/deconstruct e.g. turf, wall etc
  • +
  • rcd_results- list of params specifically the build type of our structure
  • +
  • [mob][user]- the user
  • +

rcd_create

actual proc to create the structure

+

Arguments

+
    +
  • [atom][target]- the target we are trying to build on/deconstruct e.g. turf, wall etc
  • +
  • [mob][user]- the user building this structure
  • +
\ No newline at end of file diff --git a/obj/item/construction/rcd/borg.html b/obj/item/construction/rcd/borg.html new file mode 100644 index 0000000000000..660791f9fcbae --- /dev/null +++ b/obj/item/construction/rcd/borg.html @@ -0,0 +1 @@ +/obj/item/construction/rcd/borg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

borg

Vars

energyfactorenery usage

Var Details

energyfactor

enery usage

\ No newline at end of file diff --git a/obj/item/construction/rld.html b/obj/item/construction/rld.html new file mode 100644 index 0000000000000..7af96350d4818 --- /dev/null +++ b/obj/item/construction/rld.html @@ -0,0 +1 @@ +/obj/item/construction/rld - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rld

Vars

display_optionswill contain the original icons modified with the color choice
modemode of operation see above defines
original_optionsreference to thr original icons

Var Details

display_options

will contain the original icons modified with the color choice

mode

mode of operation see above defines

original_options

reference to thr original icons

\ No newline at end of file diff --git a/obj/item/construction/rtd.html b/obj/item/construction/rtd.html new file mode 100644 index 0000000000000..8bf16dc799877 --- /dev/null +++ b/obj/item/construction/rtd.html @@ -0,0 +1,3 @@ +/obj/item/construction/rtd - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rtd

An tool used to create, destroy, and copy & clear decals of floor tiles +Great for janitor but can be made only in engineering +Supports silo link upgrade and refill with glass, plasteel & iron

Vars

design_categorysub category for tile design
design_overlaysoverlays on a tile
root_categorymain category for tile design
selected_designdesign selected by player
tile_designtemp var to store an single design from GLOB.floor_design while iterating through this list

Var Details

design_category

sub category for tile design

design_overlays

overlays on a tile

root_category

main category for tile design

selected_design

design selected by player

tile_design

temp var to store an single design from GLOB.floor_design while iterating through this list

\ No newline at end of file diff --git a/obj/item/construction_kit.html b/obj/item/construction_kit.html new file mode 100644 index 0000000000000..74adfc4846f51 --- /dev/null +++ b/obj/item/construction_kit.html @@ -0,0 +1 @@ +/obj/item/construction_kit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

construction_kit

The item used as the basis for construction kits for organic interface

Vars

construction_timeHow much time does it take to construct an item using this?
current_colorWhat color is the item using? If none, leave this blank.
resulting_structureWhat is the path for the resulting structure generating by using this item?

Var Details

construction_time

How much time does it take to construct an item using this?

current_color

What color is the item using? If none, leave this blank.

resulting_structure

What is the path for the resulting structure generating by using this item?

\ No newline at end of file diff --git a/obj/item/conveyor_sorter.html b/obj/item/conveyor_sorter.html new file mode 100644 index 0000000000000..a67af61cbb86a --- /dev/null +++ b/obj/item/conveyor_sorter.html @@ -0,0 +1 @@ +/obj/item/conveyor_sorter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

conveyor_sorter

Vars

conveyor_typeThis is used for the improved sorter, so that it can use the improved sorter type instead of the normal sorter type.
current_sortthe list of things that are currently within the sorting list
max_itemsThis controls the maximum amount of items that can be added to the sorting list.
max_sortersThis controls the maximum amount of sorters that can be spawned by one lister item.
spawned_sortersthe list of conveyor sorters spawned by

Var Details

conveyor_type

This is used for the improved sorter, so that it can use the improved sorter type instead of the normal sorter type.

current_sort

the list of things that are currently within the sorting list

max_items

This controls the maximum amount of items that can be added to the sorting list.

max_sorters

This controls the maximum amount of sorters that can be spawned by one lister item.

spawned_sorters

the list of conveyor sorters spawned by

\ No newline at end of file diff --git a/obj/item/cortical_cage.html b/obj/item/cortical_cage.html new file mode 100644 index 0000000000000..4dca684f3edb1 --- /dev/null +++ b/obj/item/cortical_cage.html @@ -0,0 +1 @@ +/obj/item/cortical_cage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cortical_cage

Vars

internal_radioThe radio that is inserted into the trap.
openedIf true, the trap is "open" and can trigger.
trapped_borerThe borer that is inside the trap

Var Details

internal_radio

The radio that is inserted into the trap.

opened

If true, the trap is "open" and can trigger.

trapped_borer

The borer that is inside the trap

\ No newline at end of file diff --git a/obj/item/cosmic_skull.html b/obj/item/cosmic_skull.html new file mode 100644 index 0000000000000..88a6dda9a9d0e --- /dev/null +++ b/obj/item/cosmic_skull.html @@ -0,0 +1 @@ +/obj/item/cosmic_skull - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cosmic_skull

Gives someone the stable voided trauma and then self destructs

Vars

drained_icon_stateIcon state for when drained
usesHow many uses does it have left?

Var Details

drained_icon_state

Icon state for when drained

uses

How many uses does it have left?

\ No newline at end of file diff --git a/obj/item/coupon.html b/obj/item/coupon.html new file mode 100644 index 0000000000000..e660045440390 --- /dev/null +++ b/obj/item/coupon.html @@ -0,0 +1 @@ +/obj/item/coupon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

coupon

Procs

curse_heartPlay stupid games, win stupid prizes
generateChoose what our prize is :D

Proc Details

curse_heart

Play stupid games, win stupid prizes

generate

Choose what our prize is :D

\ No newline at end of file diff --git a/obj/item/crowbar/power.html b/obj/item/crowbar/power.html new file mode 100644 index 0000000000000..f6563a280fc63 --- /dev/null +++ b/obj/item/crowbar/power.html @@ -0,0 +1 @@ +/obj/item/crowbar/power - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

power

Vars

snap_time_strong_handcuffsUsed on Initialize, how much time to cut real handcuffs. Null means it can't.
snap_time_weak_handcuffsUsed on Initialize, how much time to cut cable restraints and zipties.

Var Details

snap_time_strong_handcuffs

Used on Initialize, how much time to cut real handcuffs. Null means it can't.

snap_time_weak_handcuffs

Used on Initialize, how much time to cut cable restraints and zipties.

\ No newline at end of file diff --git a/obj/item/crusher_trophy/bileworm_spewlet.html b/obj/item/crusher_trophy/bileworm_spewlet.html new file mode 100644 index 0000000000000..50d7c7b4835ee --- /dev/null +++ b/obj/item/crusher_trophy/bileworm_spewlet.html @@ -0,0 +1 @@ +/obj/item/crusher_trophy/bileworm_spewlet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bileworm_spewlet

Vars

abilityitem ability that handles the effect

Var Details

ability

item ability that handles the effect

\ No newline at end of file diff --git a/obj/item/crusher_trophy/brimdemon_fang.html b/obj/item/crusher_trophy/brimdemon_fang.html new file mode 100644 index 0000000000000..0887fdb29108f --- /dev/null +++ b/obj/item/crusher_trophy/brimdemon_fang.html @@ -0,0 +1 @@ +/obj/item/crusher_trophy/brimdemon_fang - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

brimdemon_fang

Brimdemon crusher trophy, it... makes a funny sound?

Vars

comic_phrasesCartoon punching vfx

Var Details

comic_phrases

Cartoon punching vfx

\ No newline at end of file diff --git a/obj/item/crusher_trophy/broodmother_tongue.html b/obj/item/crusher_trophy/broodmother_tongue.html new file mode 100644 index 0000000000000..e1bcf23cfa9c1 --- /dev/null +++ b/obj/item/crusher_trophy/broodmother_tongue.html @@ -0,0 +1 @@ +/obj/item/crusher_trophy/broodmother_tongue - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

broodmother_tongue

Vars

use_timeTime at which the item becomes usable again

Var Details

use_time

Time at which the item becomes usable again

\ No newline at end of file diff --git a/obj/item/crusher_trophy/goliath_tentacle.html b/obj/item/crusher_trophy/goliath_tentacle.html new file mode 100644 index 0000000000000..615672ea33dc3 --- /dev/null +++ b/obj/item/crusher_trophy/goliath_tentacle.html @@ -0,0 +1 @@ +/obj/item/crusher_trophy/goliath_tentacle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

goliath_tentacle

Mining crusher trophy from a goliath. Increases damage as your health decreases.

Vars

missing_health_descAmount of health you must lose to gain damage, according to the examine text. Cached so we don't recalculate it every examine.
missing_health_ratioYour missing health is multiplied by this value to find the bonus damage

Var Details

missing_health_desc

Amount of health you must lose to gain damage, according to the examine text. Cached so we don't recalculate it every examine.

missing_health_ratio

Your missing health is multiplied by this value to find the bonus damage

\ No newline at end of file diff --git a/obj/item/crusher_trophy/ice_demon_cube.html b/obj/item/crusher_trophy/ice_demon_cube.html new file mode 100644 index 0000000000000..983ed30759590 --- /dev/null +++ b/obj/item/crusher_trophy/ice_demon_cube.html @@ -0,0 +1 @@ +/obj/item/crusher_trophy/ice_demon_cube - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ice_demon_cube

Vars

summon_amounthow many will we summon?
summon_cooldowncooldown to summon demons upon the target

Procs

find_dropoff_turftry to make them spawn all around the target to surround him

Var Details

summon_amount

how many will we summon?

summon_cooldown

cooldown to summon demons upon the target

Proc Details

find_dropoff_turf

try to make them spawn all around the target to surround him

\ No newline at end of file diff --git a/obj/item/crusher_trophy/legionnaire_spine.html b/obj/item/crusher_trophy/legionnaire_spine.html new file mode 100644 index 0000000000000..7071cb56ee942 --- /dev/null +++ b/obj/item/crusher_trophy/legionnaire_spine.html @@ -0,0 +1 @@ +/obj/item/crusher_trophy/legionnaire_spine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

legionnaire_spine

Vars

next_use_timeTime at which the item becomes usable again

Var Details

next_use_time

Time at which the item becomes usable again

\ No newline at end of file diff --git a/obj/item/ctf_flag.html b/obj/item/ctf_flag.html new file mode 100644 index 0000000000000..731fb51f7621c --- /dev/null +++ b/obj/item/ctf_flag.html @@ -0,0 +1 @@ +/obj/item/ctf_flag - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ctf_flag

A flag used for the CTF minigame.

Vars

anyonecanpickupCan anyone pick up the flag or only players of the opposing team.
ctf_gameReference to the CTF controller associated with the above game ID.
flag_valueHow many points this flag is worth when captured.
game_idGame_id that this flag is associated with.
resetReference to an object that's location is used when this flag needs to respawn.
reset_cooldownVar used for tracking when this flag should be returned to base.
teamTeam that this flag is associated with, a team cannot capture its own flag.

Var Details

anyonecanpickup

Can anyone pick up the flag or only players of the opposing team.

ctf_game

Reference to the CTF controller associated with the above game ID.

flag_value

How many points this flag is worth when captured.

game_id

Game_id that this flag is associated with.

reset

Reference to an object that's location is used when this flag needs to respawn.

reset_cooldown

Var used for tracking when this flag should be returned to base.

team

Team that this flag is associated with, a team cannot capture its own flag.

\ No newline at end of file diff --git a/obj/item/cult_shift.html b/obj/item/cult_shift.html new file mode 100644 index 0000000000000..7f734d70ff2e7 --- /dev/null +++ b/obj/item/cult_shift.html @@ -0,0 +1 @@ +/obj/item/cult_shift - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cult_shift

Vars

usesHow many uses does the item have before becoming inert

Procs

handle_teleport_grabHandles teleporting the atom we're pulling along with us when using the shifter

Var Details

uses

How many uses does the item have before becoming inert

Proc Details

handle_teleport_grab

Handles teleporting the atom we're pulling along with us when using the shifter

\ No newline at end of file diff --git a/obj/item/cutting_board.html b/obj/item/cutting_board.html new file mode 100644 index 0000000000000..7930cc7b246aa --- /dev/null +++ b/obj/item/cutting_board.html @@ -0,0 +1 @@ +/obj/item/cutting_board - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cutting_board

Vars

processor_inputsList containg list of possible inputs and resulting recipe items, taken from processor.dm and processor_recipes.dm

Procs

drop_everything_containedDrops all contents at the turf of the item
process_foodTakes the given obj (processed thing) and gets its results from the recipe list, spawning the results and deleting the original obj

Var Details

processor_inputs

List containg list of possible inputs and resulting recipe items, taken from processor.dm and processor_recipes.dm

Proc Details

drop_everything_contained

Drops all contents at the turf of the item

process_food

Takes the given obj (processed thing) and gets its results from the recipe list, spawning the results and deleting the original obj

\ No newline at end of file diff --git a/obj/item/defibrillator.html b/obj/item/defibrillator.html new file mode 100644 index 0000000000000..f6881b549fbd0 --- /dev/null +++ b/obj/item/defibrillator.html @@ -0,0 +1 @@ +/obj/item/defibrillator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

defibrillator

Vars

cell_removableIf the cell can be removed via screwdriver
charge_stateThe icon state for the charge bar overlay, not applied if null
combatIf true, revive through space suits, allow for combat shocking
cooldown_durationHow long does it take to recharge
emagged_stateThe icon state for the emagged overlay, not applied if null
nocell_stateThe icon state for the missing cell overlay, not applied if null
onIf the paddles are equipped (1) or on the defib (0)
paddle_stateThe icon state for the paddle overlay, not applied if null
poweredIf there's a cell in the defib with enough power for a revive, blocks paddles from reviving otherwise
powered_stateThe icon state for the powered on overlay, not applied if null
safetyIf you can zap people with the defibs on harm mode

Var Details

cell_removable

If the cell can be removed via screwdriver

charge_state

The icon state for the charge bar overlay, not applied if null

combat

If true, revive through space suits, allow for combat shocking

cooldown_duration

How long does it take to recharge

emagged_state

The icon state for the emagged overlay, not applied if null

nocell_state

The icon state for the missing cell overlay, not applied if null

on

If the paddles are equipped (1) or on the defib (0)

paddle_state

The icon state for the paddle overlay, not applied if null

powered

If there's a cell in the defib with enough power for a revive, blocks paddles from reviving otherwise

powered_state

The icon state for the powered on overlay, not applied if null

safety

If you can zap people with the defibs on harm mode

\ No newline at end of file diff --git a/obj/item/delivery.html b/obj/item/delivery.html new file mode 100644 index 0000000000000..c3c98690cb281 --- /dev/null +++ b/obj/item/delivery.html @@ -0,0 +1 @@ +/obj/item/delivery - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

delivery

Procs

attempt_pre_unwrap_contentsInitial check if manually unwrapping
post_unwrap_contentsEffects after completing unwrapping
unwrap_contentsSignals for unwrapping.

Proc Details

attempt_pre_unwrap_contents

Initial check if manually unwrapping

post_unwrap_contents

Effects after completing unwrapping

unwrap_contents

Signals for unwrapping.

\ No newline at end of file diff --git a/obj/item/delivery/big.html b/obj/item/delivery/big.html new file mode 100644 index 0000000000000..3fc6ddd60827c --- /dev/null +++ b/obj/item/delivery/big.html @@ -0,0 +1 @@ +/obj/item/delivery/big - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Wrapped up crates and lockers - too big to carry.

Some override that didn't belong anywhere else.

Vars

contains_mobsDoes this wrapped package contain at least one mob?

Var Details

contains_mobs

Does this wrapped package contain at least one mob?

\ No newline at end of file diff --git a/obj/item/dest_tagger.html b/obj/item/dest_tagger.html new file mode 100644 index 0000000000000..ded415354bec6 --- /dev/null +++ b/obj/item/dest_tagger.html @@ -0,0 +1 @@ +/obj/item/dest_tagger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

dest_tagger

Procs

attack_selfUser activates in hand
ui_actUser clicks a button on the tagger
ui_dataData sent to TGUI window
ui_interactStandard TGUI actions
ui_stateIf the user dropped the tagger

Proc Details

attack_self

User activates in hand

ui_act

User clicks a button on the tagger

ui_data

Data sent to TGUI window

ui_interact

Standard TGUI actions

ui_state

If the user dropped the tagger

\ No newline at end of file diff --git a/obj/item/desynchronizer.html b/obj/item/desynchronizer.html new file mode 100644 index 0000000000000..ea462e6ac82b5 --- /dev/null +++ b/obj/item/desynchronizer.html @@ -0,0 +1 @@ +/obj/item/desynchronizer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

desynchronizer

Vars

durationCurrently set time
last_useLast world time
max_durationMax time this can be set
next_useworld.time + (world.time - last_use)
resync_timerTimer obj for calling resync
sync_holderThe current space time rift

Var Details

duration

Currently set time

last_use

Last world time

max_duration

Max time this can be set

next_use

world.time + (world.time - last_use)

resync_timer

Timer obj for calling resync

sync_holder

The current space time rift

\ No newline at end of file diff --git a/obj/item/detective_scanner.html b/obj/item/detective_scanner.html new file mode 100644 index 0000000000000..43c707209881b --- /dev/null +++ b/obj/item/detective_scanner.html @@ -0,0 +1,4 @@ +/obj/item/detective_scanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

detective_scanner

Vars

scanner_busyif the scanner is currently busy processing

Procs

safe_print_reportsafe_print_report - a wrapper proc for print_report
safe_scansafe_scan - a wrapper proc for scan()
scanscan - scans an atom for forensic data and outputs it to the mob holding the scanner

Var Details

scanner_busy

if the scanner is currently busy processing

Proc Details

safe_print_report

safe_print_report - a wrapper proc for print_report

+

Calls print_report(), and should a runtime occur within we can still reset the 'busy' state

safe_scan

safe_scan - a wrapper proc for scan()

+

calls scan(), and should a runtime occur within we can still reset the 'busy' state

scan

scan - scans an atom for forensic data and outputs it to the mob holding the scanner

+

This should always return TRUE barring a runtime

\ No newline at end of file diff --git a/obj/item/device/custom_kit.html b/obj/item/device/custom_kit.html new file mode 100644 index 0000000000000..85f042ef59255 --- /dev/null +++ b/obj/item/device/custom_kit.html @@ -0,0 +1 @@ +/obj/item/device/custom_kit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

custom_kit

Vars

from_objThe base object to be converted.
to_objThe object to turn it into.

Procs

pre_convert_checkOverride this if you have some condition you want fulfilled before allowing the conversion. Return TRUE to allow it to convert, return FALSE to prevent it.

Var Details

from_obj

The base object to be converted.

to_obj

The object to turn it into.

Proc Details

pre_convert_check

Override this if you have some condition you want fulfilled before allowing the conversion. Return TRUE to allow it to convert, return FALSE to prevent it.

\ No newline at end of file diff --git a/obj/item/device/traitor_announcer.html b/obj/item/device/traitor_announcer.html new file mode 100644 index 0000000000000..c9ae8aa9d05e5 --- /dev/null +++ b/obj/item/device/traitor_announcer.html @@ -0,0 +1 @@ +/obj/item/device/traitor_announcer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

traitor_announcer

Vars

usesHow many uses does it have? -1 for infinite

Var Details

uses

How many uses does it have? -1 for infinite

\ No newline at end of file diff --git a/obj/item/dice.html b/obj/item/dice.html new file mode 100644 index 0000000000000..fd512c4326e4a --- /dev/null +++ b/obj/item/dice.html @@ -0,0 +1 @@ +/obj/item/dice - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

dice

this is a prototype for dice, for a real d6 use "/obj/item/dice/d6"

Procs

manipulate_resultA proc to modify the displayed result. (Does not affect what the icon_state is passed.)

Proc Details

manipulate_result

A proc to modify the displayed result. (Does not affect what the icon_state is passed.)

\ No newline at end of file diff --git a/obj/item/dice/d20/fate.html b/obj/item/dice/d20/fate.html new file mode 100644 index 0000000000000..1b8d17518b9ec --- /dev/null +++ b/obj/item/dice/d20/fate.html @@ -0,0 +1 @@ +/obj/item/dice/d20/fate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fate

Vars

roll_cdSo you can't roll the die 20 times in a second and stack a bunch of effects that might conflict

Var Details

roll_cd

So you can't roll the die 20 times in a second and stack a bunch of effects that might conflict

\ No newline at end of file diff --git a/obj/item/disk/ammo_workbench.html b/obj/item/disk/ammo_workbench.html new file mode 100644 index 0000000000000..d38ff2a513604 --- /dev/null +++ b/obj/item/disk/ammo_workbench.html @@ -0,0 +1,3 @@ +/obj/item/disk/ammo_workbench - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ammo_workbench

Procs

on_bench_installFor doing things when installed/downloaded onto an ammo bench. +Really only used for setting variables, but if someone expands the system to have disks per ammo type, I guess this could be more useful.

Proc Details

on_bench_install

For doing things when installed/downloaded onto an ammo bench. +Really only used for setting variables, but if someone expands the system to have disks per ammo type, I guess this could be more useful.

\ No newline at end of file diff --git a/obj/item/disk/design_disk.html b/obj/item/disk/design_disk.html new file mode 100644 index 0000000000000..e7a68247eb939 --- /dev/null +++ b/obj/item/disk/design_disk.html @@ -0,0 +1,6 @@ +/obj/item/disk/design_disk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

design_disk

Vars

blueprintsList of all /datum/design stored on the disk.

Procs

on_uploadUsed for special interactions with a techweb when uploading the designs. +Args:

Var Details

blueprints

List of all /datum/design stored on the disk.

Proc Details

on_upload

Used for special interactions with a techweb when uploading the designs. +Args:

+
    +
  • stored_research - The techweb that's storing us.
  • +
\ No newline at end of file diff --git a/obj/item/disk/design_disk/bepis.html b/obj/item/disk/design_disk/bepis.html new file mode 100644 index 0000000000000..18afffd78cf61 --- /dev/null +++ b/obj/item/disk/design_disk/bepis.html @@ -0,0 +1 @@ +/obj/item/disk/design_disk/bepis - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bepis

Vars

bepis_nodeThe bepis node we have the design id's of

Procs

on_uploadUnhide and research our node so we show up in the R&D console.

Var Details

bepis_node

The bepis node we have the design id's of

Proc Details

on_upload

Unhide and research our node so we show up in the R&D console.

\ No newline at end of file diff --git a/obj/item/disk/design_disk/limbs.html b/obj/item/disk/design_disk/limbs.html new file mode 100644 index 0000000000000..6c5b01ed53905 --- /dev/null +++ b/obj/item/disk/design_disk/limbs.html @@ -0,0 +1 @@ +/obj/item/disk/design_disk/limbs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

limbs

Design disks and designs - for adding limbs and organs to the limbgrower.

Vars

limb_designsList of all limb designs this disk contains.

Var Details

limb_designs

List of all limb designs this disk contains.

\ No newline at end of file diff --git a/obj/item/disk/nifsoft_uploader.html b/obj/item/disk/nifsoft_uploader.html new file mode 100644 index 0000000000000..0eed8b8462559 --- /dev/null +++ b/obj/item/disk/nifsoft_uploader.html @@ -0,0 +1 @@ +/obj/item/disk/nifsoft_uploader - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

nifsoft_uploader

A disk that can upload NIFSofts to a recpient with a NIFSoft installed.

Vars

loaded_nifsoftWhat NIFSoft is currently loaded in?
reusableIs the datadisk reusable?

Procs

attempt_software_installAttempts to install the NIFSoft on the disk to the target

Var Details

loaded_nifsoft

What NIFSoft is currently loaded in?

reusable

Is the datadisk reusable?

Proc Details

attempt_software_install

Attempts to install the NIFSoft on the disk to the target

\ No newline at end of file diff --git a/obj/item/disk/nifsoft_uploader/dorms/contract.html b/obj/item/disk/nifsoft_uploader/dorms/contract.html new file mode 100644 index 0000000000000..de1dfb7ec5c62 --- /dev/null +++ b/obj/item/disk/nifsoft_uploader/dorms/contract.html @@ -0,0 +1 @@ +/obj/item/disk/nifsoft_uploader/dorms/contract - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

contract

Vars

laws_to_assignWhat laws will be assigned when using the NIFSoft on someone?

Var Details

laws_to_assign

What laws will be assigned when using the NIFSoft on someone?

\ No newline at end of file diff --git a/obj/item/disk/nuclear.html b/obj/item/disk/nuclear.html new file mode 100644 index 0000000000000..056fdbde93feb --- /dev/null +++ b/obj/item/disk/nuclear.html @@ -0,0 +1 @@ +/obj/item/disk/nuclear - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nuclear

Vars

fakeWhether we're a real nuke disk or not.

Var Details

fake

Whether we're a real nuke disk or not.

\ No newline at end of file diff --git a/obj/item/dna_probe.html b/obj/item/dna_probe.html new file mode 100644 index 0000000000000..5f1b65a3d6373 --- /dev/null +++ b/obj/item/dna_probe.html @@ -0,0 +1,2 @@ +/obj/item/dna_probe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dna_probe

DNA Probe

+

Used for scanning DNA, and can be uploaded to a DNA vault.

Vars

allowed_scansWhat sources of DNA this sampler can extract from.
dna_vault_refweak ref to the dna vault
stored_dna_animalList of all Animal DNA scanned with this sampler.
stored_dna_humanList of all Human DNA scanned with this sampler.
stored_dna_plantsList of all Plant DNA scanned with this sampler.

Var Details

allowed_scans

What sources of DNA this sampler can extract from.

dna_vault_ref

weak ref to the dna vault

stored_dna_animal

List of all Animal DNA scanned with this sampler.

stored_dna_human

List of all Human DNA scanned with this sampler.

stored_dna_plants

List of all Plant DNA scanned with this sampler.

\ No newline at end of file diff --git a/obj/item/dna_probe/carp_scanner.html b/obj/item/dna_probe/carp_scanner.html new file mode 100644 index 0000000000000..7d844275dff66 --- /dev/null +++ b/obj/item/dna_probe/carp_scanner.html @@ -0,0 +1 @@ +/obj/item/dna_probe/carp_scanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

carp_scanner

Used for scanning carps, and then turning yourself into one.

Vars

carp_dna_loadedWhether we have Carp DNA

Var Details

carp_dna_loaded

Whether we have Carp DNA

\ No newline at end of file diff --git a/obj/item/documents.html b/obj/item/documents.html new file mode 100644 index 0000000000000..f59bd75e62a5c --- /dev/null +++ b/obj/item/documents.html @@ -0,0 +1,4 @@ +/obj/item/documents - /tg/ Station 13
/tg/ Station 13 - Modules - Types

secret documents

Indestructible antag objective that can be photocopied.

+

Photocopying this is handled in photocopier.dm. +Cannot be destroyed, but can be spaced. +Save for the inhand, this does not actually have anything in common with /obj/item/paper.

\ No newline at end of file diff --git a/obj/item/documents/photocopy.html b/obj/item/documents/photocopy.html new file mode 100644 index 0000000000000..7e4c5cba2a96b --- /dev/null +++ b/obj/item/documents/photocopy.html @@ -0,0 +1 @@ +/obj/item/documents/photocopy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

secret documents (photocopy)

Outcome of photocopying documents. Can be copied, and can have a blue/red seal forged.

Vars

copy_typeWhat was copied
forgedsealWhat seal was forged on the documents (color name string)

Var Details

copy_type

What was copied

forgedseal

What seal was forged on the documents (color name string)

\ No newline at end of file diff --git a/obj/item/door_seal.html b/obj/item/door_seal.html new file mode 100644 index 0000000000000..f386ecd0e80fb --- /dev/null +++ b/obj/item/door_seal.html @@ -0,0 +1 @@ +/obj/item/door_seal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

door_seal

Vars

seal_timehow long the seal takes to place on the door
unseal_timehow long it takes to remove the seal from a door

Var Details

seal_time

how long the seal takes to place on the door

unseal_time

how long it takes to remove the seal from a door

\ No newline at end of file diff --git a/obj/item/dragnet_beacon.html b/obj/item/dragnet_beacon.html new file mode 100644 index 0000000000000..e2879a8568a4c --- /dev/null +++ b/obj/item/dragnet_beacon.html @@ -0,0 +1 @@ +/obj/item/dragnet_beacon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dragnet_beacon

Vars

lockedHas a security ID been used to lock this in place?

Var Details

locked

Has a security ID been used to lock this in place?

\ No newline at end of file diff --git a/obj/item/dualsaber.html b/obj/item/dualsaber.html new file mode 100644 index 0000000000000..e8d07fc0514d8 --- /dev/null +++ b/obj/item/dualsaber.html @@ -0,0 +1,5 @@ +/obj/item/dualsaber - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

dualsaber

Procs

on_unwieldTriggered on unwield of two handed item +switch hitsounds
on_wieldTriggered on wield of two handed item +Specific hulk checks due to reflection chance for balance issues and switches hitsounds.

Proc Details

on_unwield

Triggered on unwield of two handed item +switch hitsounds

on_wield

Triggered on wield of two handed item +Specific hulk checks due to reflection chance for balance issues and switches hitsounds.

\ No newline at end of file diff --git a/obj/item/dullahan_relay.html b/obj/item/dullahan_relay.html new file mode 100644 index 0000000000000..ccca549a79644 --- /dev/null +++ b/obj/item/dullahan_relay.html @@ -0,0 +1 @@ +/obj/item/dullahan_relay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dullahan_relay

Vars

ownerThe mob (a dullahan) that owns this relay.

Procs

include_ownerAdds the owner to the list of hearers in hearers_in_view(), for visible/hearable on top of say messages
retrieve_headRetrieving the owner's head for better ahealing.
unlist_headStops dullahans from gibbing when regenerating limbs
update_prefs_nameUpdates our names after applying name prefs

Var Details

owner

The mob (a dullahan) that owns this relay.

Proc Details

include_owner

Adds the owner to the list of hearers in hearers_in_view(), for visible/hearable on top of say messages

retrieve_head

Retrieving the owner's head for better ahealing.

unlist_head

Stops dullahans from gibbing when regenerating limbs

update_prefs_name

Updates our names after applying name prefs

\ No newline at end of file diff --git a/obj/item/dyespray.html b/obj/item/dyespray.html new file mode 100644 index 0000000000000..0acd9d880a56f --- /dev/null +++ b/obj/item/dyespray.html @@ -0,0 +1,6 @@ +/obj/item/dyespray - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

dyespray

Procs

dyeApplies a gradient and a gradient color to a mob OR changes their hair color, depending on what they choose.

Proc Details

dye

Applies a gradient and a gradient color to a mob OR changes their hair color, depending on what they choose.

+

Arguments:

+
    +
  • target - The mob who we will apply the hair color / gradient and gradient color to.
  • +
  • user - The mob that is applying the hair color / gradient and gradient color.
  • +
\ No newline at end of file diff --git a/obj/item/ectoplasm/revenant.html b/obj/item/ectoplasm/revenant.html new file mode 100644 index 0000000000000..0b2de715ac296 --- /dev/null +++ b/obj/item/ectoplasm/revenant.html @@ -0,0 +1 @@ +/obj/item/ectoplasm/revenant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

revenant

Vars

inertAre we inert (aka distorted such that we can't reform)?
old_ckeyThe key of the revenant that we started the reform as
reformingAre we currently reforming?
revenantThe revenant we're currently storing

Procs

get_new_userHandles giving the revenant a new client to control it
reformActually moves the revenant out of ourself

Var Details

inert

Are we inert (aka distorted such that we can't reform)?

old_ckey

The key of the revenant that we started the reform as

reforming

Are we currently reforming?

revenant

The revenant we're currently storing

Proc Details

get_new_user

Handles giving the revenant a new client to control it

reform

Actually moves the revenant out of ourself

\ No newline at end of file diff --git a/obj/item/eldritch_potion.html b/obj/item/eldritch_potion.html new file mode 100644 index 0000000000000..c2746ee261dbd --- /dev/null +++ b/obj/item/eldritch_potion.html @@ -0,0 +1,5 @@ +/obj/item/eldritch_potion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

eldritch_potion

Vars

crucible_tipWhen a heretic examines a mawed crucible, shows a list of possible potions by name + includes this tip to explain what it does.
status_effectTypepath to the status effect this applies

Procs

potion_effectThe effect of the potion, if it has any special one. +In general try not to override this +and utilize the status_effect var to make custom effects.

Var Details

crucible_tip

When a heretic examines a mawed crucible, shows a list of possible potions by name + includes this tip to explain what it does.

status_effect

Typepath to the status effect this applies

Proc Details

potion_effect

The effect of the potion, if it has any special one. +In general try not to override this +and utilize the status_effect var to make custom effects.

\ No newline at end of file diff --git a/obj/item/electronics/airlock.html b/obj/item/electronics/airlock.html new file mode 100644 index 0000000000000..e7d74aee3dbc1 --- /dev/null +++ b/obj/item/electronics/airlock.html @@ -0,0 +1,6 @@ +/obj/item/electronics/airlock - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

airlock

Vars

accessesA list of all granted accesses
holderA holder of the electronics, in case of them working as an integrated part
one_accessIf the airlock should require ALL or only ONE of the listed accesses
passed_cycle_idwhat string are we passing to the finished airlock as the cycle ID
passed_namewhat name are we passing to the finished airlock
shellWhether this airlock can have an integrated circuit inside of it or not
unres_sensorChecks to see if this airlock has an unrestricted helper (will set to TRUE if present).
unres_sidesUnrestricted sides, or sides of the airlock that will open regardless of access

Procs

create_copyCreate a copy of the electronics +Arguments
do_actionshared by rcd & airlock electronics

Var Details

accesses

A list of all granted accesses

holder

A holder of the electronics, in case of them working as an integrated part

one_access

If the airlock should require ALL or only ONE of the listed accesses

passed_cycle_id

what string are we passing to the finished airlock as the cycle ID

passed_name

what name are we passing to the finished airlock

shell

Whether this airlock can have an integrated circuit inside of it or not

unres_sensor

Checks to see if this airlock has an unrestricted helper (will set to TRUE if present).

unres_sides

Unrestricted sides, or sides of the airlock that will open regardless of access

Proc Details

create_copy

Create a copy of the electronics +Arguments

+
    +
  • location- the location to create the new copy in
  • +

do_action

shared by rcd & airlock electronics

\ No newline at end of file diff --git a/obj/item/encryptionkey.html b/obj/item/encryptionkey.html new file mode 100644 index 0000000000000..5385462b25e22 --- /dev/null +++ b/obj/item/encryptionkey.html @@ -0,0 +1 @@ +/obj/item/encryptionkey - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

encryptionkey

Vars

channelsWhat channels does this encryption key grant to the parent headset.
special_channelsFlags for which "special" radio networks should be accessible

Var Details

channels

What channels does this encryption key grant to the parent headset.

special_channels

Flags for which "special" radio networks should be accessible

\ No newline at end of file diff --git a/obj/item/energy_katana.html b/obj/item/energy_katana.html new file mode 100644 index 0000000000000..70931464e1903 --- /dev/null +++ b/obj/item/energy_katana.html @@ -0,0 +1,5 @@ +/obj/item/energy_katana - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Energy Katana

The space ninja's katana.

+

The katana that only space ninja spawns with. Comes with 30 force and throwforce, along with a signature special jaunting system. +Upon clicking on a tile when right clicking, the user will teleport to that tile, assuming their target was not dense. +The katana has 3 dashes stored at maximum, and upon using the dash, it will return 20 seconds after it was used. +It also has a special feature where if it is tossed at a space ninja who owns it (determined by the ninja suit), the ninja will catch the katana instead of being hit by it.

\ No newline at end of file diff --git a/obj/item/exodrone.html b/obj/item/exodrone.html new file mode 100644 index 0000000000000..9bf16c9a90448 --- /dev/null +++ b/obj/item/exodrone.html @@ -0,0 +1 @@ +/obj/item/exodrone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

exodrone

Exploration drone

Vars

_regex_contextUsed to provide source to the regex replacement function. DO NOT MODIFY DIRECTLY
busy_durationHow long will busy state last
busy_messageMessage that will show up on busy screen
busy_start_timeWhen we entered busy state
controlledAre we currently controlled by remote terminal, blocks other terminals from interacting with this drone.
drone_logLog of recent events
drone_statusCurrent drone status, see code__DEFINES\adventure.dm
last_padPad we've launched from, we'll try to land on this one first when coming back if it still exists.
locationSite we're currently at, null means station.
name_counterRepeated drone name counter
toolsList of tools, EXODRONE_TOOL_WELDER etc
travel_targetSite we're currently travelling to, null means going back to station - check drone status if you want to check if traveling or idle
travel_timeTotal travel time to our current target
travel_timer_idId of travel timer

Procs

add_toolAdds drone tool and resizes storage.
add_tool_qualitiesApplies adventure qualities based on our tools
award_adventure_lootAdds loot from current adventure to the drone
damageDeals damage in adventures/events.
drop_somewhere_on_stationCrashes the drone somewhere random if there's no launchpad to be found.
explore_siteencounters random or specificed event for the current site.
find_landing_padTries to find landing pad, starting with the one we launched from.
finish_travelTravel cleanup
get_cargo_dataBuilds ui data for drone storage.
launch_forStarts travel for site, does not validate if it's possible
remove_toolRemoves drone tool and resizes storage.
replace_keywordThis is called with src = regex datum, so don't try to access any instance variables directly here.
resolve_adventureHandles finishing adventure
set_busyEnters busy mode for a given duration.
space_leftCargo space left
travel_errorReturns failure message or FALSE if we're ready to travel
try_transferTries to add loot to drone cargo while respecting space left
ui_descriptionDescription for drone listing, describes location and current status
unset_busyResets busy status
updateKeywordsReplaces $$SITE_NAME with site name and $$QualityName with quality values
update_storage_sizeResizes storage component depending on slots used by tools.

Var Details

_regex_context

Used to provide source to the regex replacement function. DO NOT MODIFY DIRECTLY

busy_duration

How long will busy state last

busy_message

Message that will show up on busy screen

busy_start_time

When we entered busy state

controlled

Are we currently controlled by remote terminal, blocks other terminals from interacting with this drone.

drone_log

Log of recent events

drone_status

Current drone status, see code__DEFINES\adventure.dm

last_pad

Pad we've launched from, we'll try to land on this one first when coming back if it still exists.

location

Site we're currently at, null means station.

name_counter

Repeated drone name counter

tools

List of tools, EXODRONE_TOOL_WELDER etc

travel_target

Site we're currently travelling to, null means going back to station - check drone status if you want to check if traveling or idle

travel_time

Total travel time to our current target

travel_timer_id

Id of travel timer

Proc Details

add_tool

Adds drone tool and resizes storage.

add_tool_qualities

Applies adventure qualities based on our tools

award_adventure_loot

Adds loot from current adventure to the drone

damage

Deals damage in adventures/events.

drop_somewhere_on_station

Crashes the drone somewhere random if there's no launchpad to be found.

explore_site

encounters random or specificed event for the current site.

find_landing_pad

Tries to find landing pad, starting with the one we launched from.

finish_travel

Travel cleanup

get_cargo_data

Builds ui data for drone storage.

launch_for

Starts travel for site, does not validate if it's possible

remove_tool

Removes drone tool and resizes storage.

replace_keyword

This is called with src = regex datum, so don't try to access any instance variables directly here.

resolve_adventure

Handles finishing adventure

set_busy

Enters busy mode for a given duration.

space_left

Cargo space left

travel_error

Returns failure message or FALSE if we're ready to travel

try_transfer

Tries to add loot to drone cargo while respecting space left

ui_description

Description for drone listing, describes location and current status

unset_busy

Resets busy status

updateKeywords

Replaces $$SITE_NAME with site name and $$QualityName with quality values

update_storage_size

Resizes storage component depending on slots used by tools.

\ No newline at end of file diff --git a/obj/item/extinguisher.html b/obj/item/extinguisher.html new file mode 100644 index 0000000000000..26d6490e92570 --- /dev/null +++ b/obj/item/extinguisher.html @@ -0,0 +1 @@ +/obj/item/extinguisher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

extinguisher

Vars

chemChem we use for our extinguishing.
cooling_powerSets the cooling_temperature of the water reagent datum inside of the extinguisher when it is refilled.
last_useCooldown between uses.
max_waterThe max amount of water this extinguisher can hold.
powerMaximum distance launched water will travel.
precisionBy default, turfs picked from a spray are random, set to TRUE to make it always have at least one water effect per row.
refillingCan we refill this at a water tank?
safetyCan we actually fire currently?
sprite_namesomething that should be replaced with base_icon_state
starting_waterDoes the welder extinguisher start with water.
tank_holder_icon_stateIcon state when inside a tank holder.
tanktypesWhat tank we need to refill this.

Var Details

chem

Chem we use for our extinguishing.

cooling_power

Sets the cooling_temperature of the water reagent datum inside of the extinguisher when it is refilled.

last_use

Cooldown between uses.

max_water

The max amount of water this extinguisher can hold.

power

Maximum distance launched water will travel.

precision

By default, turfs picked from a spray are random, set to TRUE to make it always have at least one water effect per row.

refilling

Can we refill this at a water tank?

safety

Can we actually fire currently?

sprite_name

something that should be replaced with base_icon_state

starting_water

Does the welder extinguisher start with water.

tank_holder_icon_state

Icon state when inside a tank holder.

tanktypes

What tank we need to refill this.

\ No newline at end of file diff --git a/obj/item/extraction_pack.html b/obj/item/extraction_pack.html new file mode 100644 index 0000000000000..d958e7471e781 --- /dev/null +++ b/obj/item/extraction_pack.html @@ -0,0 +1 @@ +/obj/item/extraction_pack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

extraction_pack

Vars

beacon_networksList of networks
beacon_refBeacon weakref
can_use_indoorsCan be used indoors
max_force_fultonMaximum force that can be used to extract
safe_for_living_creaturesCan be used on living creatures
uses_leftNumber of uses left

Var Details

beacon_networks

List of networks

beacon_ref

Beacon weakref

can_use_indoors

Can be used indoors

max_force_fulton

Maximum force that can be used to extract

safe_for_living_creatures

Can be used on living creatures

uses_left

Number of uses left

\ No newline at end of file diff --git a/obj/item/eyesnatcher.html b/obj/item/eyesnatcher.html new file mode 100644 index 0000000000000..84f0b45f6d64b --- /dev/null +++ b/obj/item/eyesnatcher.html @@ -0,0 +1 @@ +/obj/item/eyesnatcher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

eyesnatcher

Vars

usedWhether it's been used to steal a pair of eyes already.

Var Details

used

Whether it's been used to steal a pair of eyes already.

\ No newline at end of file diff --git a/obj/item/fireaxe.html b/obj/item/fireaxe.html new file mode 100644 index 0000000000000..17dc32cd650af --- /dev/null +++ b/obj/item/fireaxe.html @@ -0,0 +1 @@ +/obj/item/fireaxe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fireaxe

Vars

force_unwieldedHow much damage to do unwielded
force_wieldedHow much damage to do wielded

Var Details

force_unwielded

How much damage to do unwielded

force_wielded

How much damage to do wielded

\ No newline at end of file diff --git a/obj/item/firelance.html b/obj/item/firelance.html new file mode 100644 index 0000000000000..1325c6b10c785 --- /dev/null +++ b/obj/item/firelance.html @@ -0,0 +1 @@ +/obj/item/firelance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

firelance

Two handed fire lance. Melts wall after short windup.

Procs

windup_checksAdditional windup checks

Proc Details

windup_checks

Additional windup checks

\ No newline at end of file diff --git a/obj/item/firing_pin.html b/obj/item/firing_pin.html new file mode 100644 index 0000000000000..d2b106ca198ce --- /dev/null +++ b/obj/item/firing_pin.html @@ -0,0 +1 @@ +/obj/item/firing_pin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

firing_pin

Vars

force_replaceCan forcefully replace other pins.
pin_hot_swappableCan be replaced by any pin.
pin_removableCan be removed from the gun using tools or replaced by a pin with force_replace
selfdestructExplode when user check is failed.

Var Details

force_replace

Can forcefully replace other pins.

pin_hot_swappable

Can be replaced by any pin.

pin_removable

Can be removed from the gun using tools or replaced by a pin with force_replace

selfdestruct

Explode when user check is failed.

\ No newline at end of file diff --git a/obj/item/firing_pin/paywall.html b/obj/item/firing_pin/paywall.html new file mode 100644 index 0000000000000..f4baa611eb11c --- /dev/null +++ b/obj/item/firing_pin/paywall.html @@ -0,0 +1 @@ +/obj/item/firing_pin/paywall - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

paywall

Vars

active_prompt_userpurchase prompt to prevent spamming it, set to the user who opens to prompt to prevent locking the gun up for other users.
gun_ownerslist of account IDs which have accepted the license prompt. If this is the multi-payment pin, then this means they accepted the waiver that each shot will cost them money
multi_paymentif true, user has to pay everytime they fire the gun
payment_amounthow much gets paid out to license yourself to the gun

Var Details

active_prompt_user

purchase prompt to prevent spamming it, set to the user who opens to prompt to prevent locking the gun up for other users.

gun_owners

list of account IDs which have accepted the license prompt. If this is the multi-payment pin, then this means they accepted the waiver that each shot will cost them money

multi_payment

if true, user has to pay everytime they fire the gun

payment_amount

how much gets paid out to license yourself to the gun

\ No newline at end of file diff --git a/obj/item/fish.html b/obj/item/fish.html new file mode 100644 index 0000000000000..6d7d9926c760c --- /dev/null +++ b/obj/item/fish.html @@ -0,0 +1,29 @@ +/obj/item/fish - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fish

Vars

aquarium_vc_colorIf present aquarium visual will be of this color
average_sizeAverage size for this fish type in centimeters. Will be used as gaussian distribution with 20% deviation for fishing, bought fish are always standard size
average_weightAverage weight for this fish type in grams
beautyThe beauty this fish provides to the aquarium it's inserted in.
bites_amountIf you wonder why this isn't being tracked by the edible component instead: +We reset the this value when revived, and slowly chip it away as we heal. +Of course, it would be daunting to get this to be handled by the edible component +given its complexity.
breeding_timeoutHow long it takes to produce new fish
breeding_waitThe time limit before new fish can be created
compatible_typesIf set, the fish can also breed with these fishes types
death_textThe message shown when the fish dies.
dedicated_in_aquarium_iconthis icon file will be used for in-aquarium visual for the fish
dedicated_in_aquarium_icon_stateThe icon_state that will be used for in-aquarium visual for the fish +If not set, "[initial(icon_state)]_small" will be used instead
disliked_baitBait identifiers that make catching this fish harder and less likely +Bait identifiers: Path | Trait | list("Type"="Foodtype","Value"= Food Type Flag like [MEAT])
electrogenesis_cooldowncooldown on creating tesla zaps
electrogenesis_powerpower of the tesla zap created by the fish in a bioelectric generator. Scales with size.
evolution_typesA list of possible evolutions. If set, offsprings may be of a different, new fish type if conditions are met.
favorite_baitBait identifiers that make catching this fish easier and more likely +Bait identifiers: Path | Trait | list("Type"="Foodtype","Value"= Food Type Flag like [MEAT])
feeding_frequencyHow often the fish needs to be fed
fillet_typeFish autogenerated from this behaviour will be processable into this
fish_flagsFlags for fish variables that would otherwise be TRUE/FALSE
fish_movement_typepath to datums that dictate how the fish moves during the fishing minigame
fish_traitsList of fish trait types, these may modify probabilty/difficulty depending on rod/user properties +or dictate how the fish behaves or some of its qualities.
fishing_difficulty_modifierBase additive modifier to fishing difficulty
foodWhat type of reagent this fish needs to be fed.
healthCurrent fish health. Dies at 0.
icon_state_deadicon used when the fish is dead, ifset.
last_feedingTime of last the fish was fed
maximum_sizeThe maximum size this fish can reach, calculated the first time update_size_and_weight() is called.
maximum_weightThe maximum weight this fish can reach, calculated the first time update_size_and_weight() is called.
min_pressureOutside of an aquarium, the pressure needs to be within these two variables for the environment to be safe.
num_filletsnumber of fillets given by the fish. It scales with its size.
random_case_rarityHow rare this fish is in the random cases
required_fluid_typeRequired fluid type for this fish to live.
required_temperature_maxMaximum possible temperature for the fish to live.
required_temperature_minRequired minimum temperature for the fish to live.
safe_air_limitsWhen outside of an aquarium, these gases that are checked (as well as pressure and temp) to assert if the environment is safe or not.
sizeSize in centimeters. Null until update_size_and_weight is called. Number of fillets and w_class scale with it.
spawn_typesIf set, when procreating these are the types of fish that will be generate instead of 'type'
sprite_heightheight of aquarium visual icon
sprite_widthwidth of aquarium visual icon
stable_populationWon't breed more than this amount in single aquarium.
statusFish status
weightWeight in grams. Null until update_size_and_weight is called. Grind results scale with it. Don't think too hard how a trout could fit in a blender.
weight_size_deviationThe general deviation from the average weight and size this fish has in the wild

Procs

UsedforProcessingWhen processed, the reagents inside this fish will be passed to the created atoms.
adjust_reagents_capacityadjusts the maximum volume of the fish reagents holder and update the amount of food to bite
after_eatFish is not a reagent holder yet it's edible, so it doen't behave like most other snacks +which means it has its own way of handling being bitten, which is defined here.
calculate_fish_force_bonusA proc that makes the fish slightly stronger or weaker if there's a noticeable discrepancy between size and weight.
check_likedChecks if the fish is liked or not when eaten by a human.
feedFeed the fishes with the contents of the fish feed
flop_animationThis flopping animation played while the fish is alive.
generate_fish_reagentsA proc that returns a static reagent holder with a set reagents that you'd get when eating this fish.
get_base_edible_reagents_to_addThe proc that adds in the main reagents this fish has when eaten (without accounting for traits)
get_export_priceReturns the price of this fish, for the fish export.
get_food_typesA proc that returns the food types the edible component has when initialized.
get_hungerReturns the 0-1 value for hunger
get_weight_rankWeight, unlike size, is a bit more exponential, but the world isn't perfect, so isn't my code. +Anyway, this returns a gross estimate of the "rank" of "category" for our fish weight, based on how +weight generaly scales up (250, 500, 1000, 2000, 4000 etc...)
inherit_traitsThis proc has fish_traits list populated with fish_traits paths from three different lists: +traits from x_traits and y_traits are compared, and inserted if conditions are met; +traits from fixed_traits are inserted unconditionally. +traits from removed_traits will be removed from the for loop.
make_edibleMain proc that makes the fish edible.
on_fish_cookedKill the fish, remove the raw and gore food types, and the infectiveness too if not under-cooked.
on_fish_cooked_againJust kill the fish, again, and perhaps remove the infective comp.
on_grindGrinding a fish replaces some the protein it has with blood and gibs. You ain't getting a clean smoothie out of it.
on_temp_animationRefreshes flopping animation after temporary animation finishes
proper_environmentChecks if our current environment lets us live.
randomize_size_and_weightRandomizes weight and size.
sate_hungerProc that should be called when the fish is fed. By default, it grows the fish depending on various variables.
start_floppingStarts flopping animation
stop_floppingStops flopping animation
swim_animationCreate looping random path animation, pixel offsets parameters include offsets already
update_fish_forceReset weapon-related variables of this items and recalculates those values based on the fish weight and size.
update_size_and_weightUpdates weight and size, along with weight class, number of fillets you can get and grind results.
well_cookedThe fish is well cooked. Change how the fish tastes, remove the infective comp and add the relative trait.

Var Details

aquarium_vc_color

If present aquarium visual will be of this color

average_size

Average size for this fish type in centimeters. Will be used as gaussian distribution with 20% deviation for fishing, bought fish are always standard size

average_weight

Average weight for this fish type in grams

beauty

The beauty this fish provides to the aquarium it's inserted in.

bites_amount

If you wonder why this isn't being tracked by the edible component instead: +We reset the this value when revived, and slowly chip it away as we heal. +Of course, it would be daunting to get this to be handled by the edible component +given its complexity.

breeding_timeout

How long it takes to produce new fish

breeding_wait

The time limit before new fish can be created

compatible_types

If set, the fish can also breed with these fishes types

death_text

The message shown when the fish dies.

dedicated_in_aquarium_icon

this icon file will be used for in-aquarium visual for the fish

dedicated_in_aquarium_icon_state

The icon_state that will be used for in-aquarium visual for the fish +If not set, "[initial(icon_state)]_small" will be used instead

disliked_bait

Bait identifiers that make catching this fish harder and less likely +Bait identifiers: Path | Trait | list("Type"="Foodtype","Value"= Food Type Flag like [MEAT])

electrogenesis_cooldown

cooldown on creating tesla zaps

electrogenesis_power

power of the tesla zap created by the fish in a bioelectric generator. Scales with size.

evolution_types

A list of possible evolutions. If set, offsprings may be of a different, new fish type if conditions are met.

favorite_bait

Bait identifiers that make catching this fish easier and more likely +Bait identifiers: Path | Trait | list("Type"="Foodtype","Value"= Food Type Flag like [MEAT])

feeding_frequency

How often the fish needs to be fed

fillet_type

Fish autogenerated from this behaviour will be processable into this

fish_flags

Flags for fish variables that would otherwise be TRUE/FALSE

fish_movement_type

path to datums that dictate how the fish moves during the fishing minigame

fish_traits

List of fish trait types, these may modify probabilty/difficulty depending on rod/user properties +or dictate how the fish behaves or some of its qualities.

fishing_difficulty_modifier

Base additive modifier to fishing difficulty

food

What type of reagent this fish needs to be fed.

health

Current fish health. Dies at 0.

icon_state_dead

icon used when the fish is dead, ifset.

last_feeding

Time of last the fish was fed

maximum_size

The maximum size this fish can reach, calculated the first time update_size_and_weight() is called.

maximum_weight

The maximum weight this fish can reach, calculated the first time update_size_and_weight() is called.

min_pressure

Outside of an aquarium, the pressure needs to be within these two variables for the environment to be safe.

num_fillets

number of fillets given by the fish. It scales with its size.

random_case_rarity

How rare this fish is in the random cases

required_fluid_type

Required fluid type for this fish to live.

required_temperature_max

Maximum possible temperature for the fish to live.

required_temperature_min

Required minimum temperature for the fish to live.

safe_air_limits

When outside of an aquarium, these gases that are checked (as well as pressure and temp) to assert if the environment is safe or not.

size

Size in centimeters. Null until update_size_and_weight is called. Number of fillets and w_class scale with it.

spawn_types

If set, when procreating these are the types of fish that will be generate instead of 'type'

sprite_height

height of aquarium visual icon

sprite_width

width of aquarium visual icon

stable_population

Won't breed more than this amount in single aquarium.

status

Fish status

weight

Weight in grams. Null until update_size_and_weight is called. Grind results scale with it. Don't think too hard how a trout could fit in a blender.

weight_size_deviation

The general deviation from the average weight and size this fish has in the wild

Proc Details

UsedforProcessing

When processed, the reagents inside this fish will be passed to the created atoms.

adjust_reagents_capacity

adjusts the maximum volume of the fish reagents holder and update the amount of food to bite

after_eat

Fish is not a reagent holder yet it's edible, so it doen't behave like most other snacks +which means it has its own way of handling being bitten, which is defined here.

calculate_fish_force_bonus

A proc that makes the fish slightly stronger or weaker if there's a noticeable discrepancy between size and weight.

check_liked

Checks if the fish is liked or not when eaten by a human.

feed

Feed the fishes with the contents of the fish feed

flop_animation

This flopping animation played while the fish is alive.

generate_fish_reagents

A proc that returns a static reagent holder with a set reagents that you'd get when eating this fish.

get_base_edible_reagents_to_add

The proc that adds in the main reagents this fish has when eaten (without accounting for traits)

get_export_price

Returns the price of this fish, for the fish export.

get_food_types

A proc that returns the food types the edible component has when initialized.

get_hunger

Returns the 0-1 value for hunger

get_weight_rank

Weight, unlike size, is a bit more exponential, but the world isn't perfect, so isn't my code. +Anyway, this returns a gross estimate of the "rank" of "category" for our fish weight, based on how +weight generaly scales up (250, 500, 1000, 2000, 4000 etc...)

inherit_traits

This proc has fish_traits list populated with fish_traits paths from three different lists: +traits from x_traits and y_traits are compared, and inserted if conditions are met; +traits from fixed_traits are inserted unconditionally. +traits from removed_traits will be removed from the for loop.

+

This proc should only be called if the fish was spawned with the apply_qualities arg set to FALSE +and hasn't had inherited traits already.

make_edible

Main proc that makes the fish edible.

on_fish_cooked

Kill the fish, remove the raw and gore food types, and the infectiveness too if not under-cooked.

on_fish_cooked_again

Just kill the fish, again, and perhaps remove the infective comp.

on_grind

Grinding a fish replaces some the protein it has with blood and gibs. You ain't getting a clean smoothie out of it.

on_temp_animation

Refreshes flopping animation after temporary animation finishes

proper_environment

Checks if our current environment lets us live.

randomize_size_and_weight

Randomizes weight and size.

sate_hunger

Proc that should be called when the fish is fed. By default, it grows the fish depending on various variables.

start_flopping

Starts flopping animation

stop_flopping

Stops flopping animation

swim_animation

Create looping random path animation, pixel offsets parameters include offsets already

update_fish_force

Reset weapon-related variables of this items and recalculates those values based on the fish weight and size.

update_size_and_weight

Updates weight and size, along with weight class, number of fillets you can get and grind results.

well_cooked

The fish is well cooked. Change how the fish tastes, remove the infective comp and add the relative trait.

\ No newline at end of file diff --git a/obj/item/fish/chasm_crab.html b/obj/item/fish/chasm_crab.html new file mode 100644 index 0000000000000..ab0fb5a1b01ba --- /dev/null +++ b/obj/item/fish/chasm_crab.html @@ -0,0 +1 @@ +/obj/item/fish/chasm_crab - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chasm_crab

Commonly found on the mining fishing spots. Can be grown into lobstrosities

Vars

angerThis value represents how much the crab needs aren't being met. Higher values translate to a more likely hostile lobstrosity.
lob_typeThe lobstrosity type this matures into

Procs

update_size_and_weightA chasm crab growth speed is determined by its initial weight and size, ergo bigger crabs for faster lobstrosities

Var Details

anger

This value represents how much the crab needs aren't being met. Higher values translate to a more likely hostile lobstrosity.

lob_type

The lobstrosity type this matures into

Proc Details

update_size_and_weight

A chasm crab growth speed is determined by its initial weight and size, ergo bigger crabs for faster lobstrosities

\ No newline at end of file diff --git a/obj/item/fish/fryish.html b/obj/item/fish/fryish.html new file mode 100644 index 0000000000000..a518cae3222a2 --- /dev/null +++ b/obj/item/fish/fryish.html @@ -0,0 +1 @@ +/obj/item/fish/fryish - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fryish

Vars

growth_timeHow long does it take for us to grow up?
is_baitIs this a baitfish?
next_typeThe evolution datum of the next thing we grow into, given time (and food)

Var Details

growth_time

How long does it take for us to grow up?

is_bait

Is this a baitfish?

next_type

The evolution datum of the next thing we grow into, given time (and food)

\ No newline at end of file diff --git a/obj/item/fish/lavaloop.html b/obj/item/fish/lavaloop.html new file mode 100644 index 0000000000000..1dc134a8d9ce1 --- /dev/null +++ b/obj/item/fish/lavaloop.html @@ -0,0 +1 @@ +/obj/item/fish/lavaloop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lavaloop

Vars

maximum_bonusmaximum bonus damage when winded up

Var Details

maximum_bonus

maximum bonus damage when winded up

\ No newline at end of file diff --git a/obj/item/fish/starfish.html b/obj/item/fish/starfish.html new file mode 100644 index 0000000000000..89d6532456f03 --- /dev/null +++ b/obj/item/fish/starfish.html @@ -0,0 +1 @@ +/obj/item/fish/starfish - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

starfish

Procs

flop_animationIt spins, and dimly glows in the dark.

Proc Details

flop_animation

It spins, and dimly glows in the dark.

\ No newline at end of file diff --git a/obj/item/fish/tadpole.html b/obj/item/fish/tadpole.html new file mode 100644 index 0000000000000..9b6df3a78e636 --- /dev/null +++ b/obj/item/fish/tadpole.html @@ -0,0 +1 @@ +/obj/item/fish/tadpole - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tadpole

Vars

del_timeridOnce dead, tadpoles disappear after a dozen seconds, since you can get infinite tadpoles.

Var Details

del_timerid

Once dead, tadpoles disappear after a dozen seconds, since you can get infinite tadpoles.

\ No newline at end of file diff --git a/obj/item/fish_analyzer.html b/obj/item/fish_analyzer.html new file mode 100644 index 0000000000000..2d058ba130ab2 --- /dev/null +++ b/obj/item/fish_analyzer.html @@ -0,0 +1 @@ +/obj/item/fish_analyzer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fish_analyzer

An item that can be used to gather information on the fish, such as but not limited to: health, hunger and traits.

Vars

case_colorThe color of the case. Used by grayscale configs and update_overlays()
scanned_itemthe item we have scanned

Var Details

case_color

The color of the case. Used by grayscale configs and update_overlays()

scanned_item

the item we have scanned

\ No newline at end of file diff --git a/obj/item/fishing_hook.html b/obj/item/fishing_hook.html new file mode 100644 index 0000000000000..b29a92d88b2f5 --- /dev/null +++ b/obj/item/fishing_hook.html @@ -0,0 +1,15 @@ +/obj/item/fishing_hook - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fishing_hook

Vars

chasm_detritus_typeWhat subtype of /obj/item/chasm_detritus do we fish out of chasms? Defaults to /obj/item/chasm_detritus.
fishing_hook_traitsA list of traits that this fishing hook has, checked by fish traits and the minigame
rod_overlay_icon_stateicon state added to main rod icon when this hook is equipped
wiki_descThe description given to the autowiki

Procs

can_be_hookedCheck if tha target can be caught by the hook
get_hook_bonus_additiveSimple getter proc for hooks to implement special hook bonuses for +certain fish_type (or FISHING_DUD), additive. Is applied after +get_hook_bonus_multiplicative().
get_hook_bonus_multiplicativeSimple getter proc for hooks to implement special hook bonuses for +certain fish_type (or FISHING_DUD), multiplicative. Is applied before +get_hook_bonus_additive().
hook_attachedAny special effect when hooking a target that's not managed by the fishing rod.
reason_we_cant_fishIs there a reason why this hook couldn't fish in target_fish_source? +If so, return the denial reason as a string, otherwise return null.

Var Details

chasm_detritus_type

What subtype of /obj/item/chasm_detritus do we fish out of chasms? Defaults to /obj/item/chasm_detritus.

fishing_hook_traits

A list of traits that this fishing hook has, checked by fish traits and the minigame

rod_overlay_icon_state

icon state added to main rod icon when this hook is equipped

wiki_desc

The description given to the autowiki

Proc Details

can_be_hooked

Check if tha target can be caught by the hook

get_hook_bonus_additive

Simple getter proc for hooks to implement special hook bonuses for +certain fish_type (or FISHING_DUD), additive. Is applied after +get_hook_bonus_multiplicative().

get_hook_bonus_multiplicative

Simple getter proc for hooks to implement special hook bonuses for +certain fish_type (or FISHING_DUD), multiplicative. Is applied before +get_hook_bonus_additive().

hook_attached

Any special effect when hooking a target that's not managed by the fishing rod.

reason_we_cant_fish

Is there a reason why this hook couldn't fish in target_fish_source? +If so, return the denial reason as a string, otherwise return null.

+

Arguments:

+
    +
  • target_fish_source - The /datum/fish_source we're trying to fish in.
  • +
\ No newline at end of file diff --git a/obj/item/fishing_hook/magnet.html b/obj/item/fishing_hook/magnet.html new file mode 100644 index 0000000000000..3460141c485af --- /dev/null +++ b/obj/item/fishing_hook/magnet.html @@ -0,0 +1 @@ +/obj/item/fishing_hook/magnet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

magnet

Procs

hook_equippedWe make sure that the fishng rod doesn't need a bait to reliably catch non-fish loot.

Proc Details

hook_equipped

We make sure that the fishng rod doesn't need a bait to reliably catch non-fish loot.

\ No newline at end of file diff --git a/obj/item/fishing_line.html b/obj/item/fishing_line.html new file mode 100644 index 0000000000000..68b9f04f87ad2 --- /dev/null +++ b/obj/item/fishing_line.html @@ -0,0 +1 @@ +/obj/item/fishing_line - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fishing_line

Vars

fishing_line_traitsA list of traits that this fishing line has, checked by fish traits and the minigame.
line_colorColor of the fishing line
wiki_descThe description given to the autowiki

Var Details

fishing_line_traits

A list of traits that this fishing line has, checked by fish traits and the minigame.

line_color

Color of the fishing line

wiki_desc

The description given to the autowiki

\ No newline at end of file diff --git a/obj/item/fishing_lure.html b/obj/item/fishing_lure.html new file mode 100644 index 0000000000000..73ff69fc91f9f --- /dev/null +++ b/obj/item/fishing_lure.html @@ -0,0 +1,3 @@ +/obj/item/fishing_lure - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fishing_lure

Vars

spin_frequencyA list with two keys delimiting the spinning interval in which a mouse click has to be pressed while fishing. +This is passed down to the fishing rod, and then to the lure during the minigame.

Procs

check_baitCheck if the fish is in the list of catchable fish for this fishing lure. Return value is a multiplier.
is_catchable_fishCalled for every fish subtype by the fishing subsystem when initializing, to populate the list of fish that can be catched with this lure.

Var Details

spin_frequency

A list with two keys delimiting the spinning interval in which a mouse click has to be pressed while fishing. +This is passed down to the fishing rod, and then to the lure during the minigame.

Proc Details

check_bait

Check if the fish is in the list of catchable fish for this fishing lure. Return value is a multiplier.

is_catchable_fish

Called for every fish subtype by the fishing subsystem when initializing, to populate the list of fish that can be catched with this lure.

\ No newline at end of file diff --git a/obj/item/fishing_rod.html b/obj/item/fishing_rod.html new file mode 100644 index 0000000000000..ea6234fe793d0 --- /dev/null +++ b/obj/item/fishing_rod.html @@ -0,0 +1,9 @@ +/obj/item/fishing_rod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fishing_rod

Vars

cast_rangeHow far can you cast this
castingAre we currently casting
casting_cdPrevents spamming the line casting, without affecting the player's click cooldown.
currently_hookedCurrently hooked item for item reeling
default_line_colorThe default color for the reel overlay if no line is equipped.
difficulty_modifierFishing minigame difficulty modifier (additive)
fishing_lineFishing line visual for the hooked item
internalIs this currently being used by the profound fisher component?
reel_overlayThe name of the icon state of the reel overlay
show_in_wikiIs this fishing rod shown in the wiki
spin_frequencyA list with two keys delimiting the spinning interval in which a mouse click has to be pressed while fishing. +Inherited from baits, passed down to the minigame lure.
ui_descriptionExplaination of rod functionality shown in the ui and the autowiki
wiki_descriptionMore explaination shown in the wiki after ui_description

Procs

cast_lineIf the line to whatever that is is clear and we're not already busy, try fishing in it
create_fishing_lineGenerates the fishing line visual from the current user to the target and updates inhands
hook_hitCalled by hook projectile when hitting things
hook_itemHooks the item
reason_we_cant_fishIs there a reason why this fishing rod couldn't fish in target_fish_source? +If so, return the denial reason as a string, otherwise return null.
set_slotassign an item to the given slot and its standard effects, while Exited() should handle unsetting the slot.
slot_checkChecks if the item fits the slot
use_slotIdeally this will be replaced with generic slotted storage datum + display

Var Details

cast_range

How far can you cast this

casting

Are we currently casting

casting_cd

Prevents spamming the line casting, without affecting the player's click cooldown.

currently_hooked

Currently hooked item for item reeling

default_line_color

The default color for the reel overlay if no line is equipped.

difficulty_modifier

Fishing minigame difficulty modifier (additive)

fishing_line

Fishing line visual for the hooked item

internal

Is this currently being used by the profound fisher component?

reel_overlay

The name of the icon state of the reel overlay

show_in_wiki

Is this fishing rod shown in the wiki

spin_frequency

A list with two keys delimiting the spinning interval in which a mouse click has to be pressed while fishing. +Inherited from baits, passed down to the minigame lure.

ui_description

Explaination of rod functionality shown in the ui and the autowiki

wiki_description

More explaination shown in the wiki after ui_description

Proc Details

cast_line

If the line to whatever that is is clear and we're not already busy, try fishing in it

create_fishing_line

Generates the fishing line visual from the current user to the target and updates inhands

hook_hit

Called by hook projectile when hitting things

hook_item

Hooks the item

reason_we_cant_fish

Is there a reason why this fishing rod couldn't fish in target_fish_source? +If so, return the denial reason as a string, otherwise return null.

+

Arguments:

+
    +
  • target_fish_source - The /datum/fish_source we're trying to fish in.
  • +

set_slot

assign an item to the given slot and its standard effects, while Exited() should handle unsetting the slot.

slot_check

Checks if the item fits the slot

use_slot

Ideally this will be replaced with generic slotted storage datum + display

\ No newline at end of file diff --git a/obj/item/fishing_rod/telescopic.html b/obj/item/fishing_rod/telescopic.html new file mode 100644 index 0000000000000..696c4a92527b3 --- /dev/null +++ b/obj/item/fishing_rod/telescopic.html @@ -0,0 +1 @@ +/obj/item/fishing_rod/telescopic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

telescopic

Vars

active_forceThe force of the item when extended.

Procs

on_transformGives feedback to the user, makes it show up inhand, toggles whether it can be used for fishing.
pre_transformStops the fishing rod from being collapsed while fishing.

Var Details

active_force

The force of the item when extended.

Proc Details

on_transform

Gives feedback to the user, makes it show up inhand, toggles whether it can be used for fishing.

pre_transform

Stops the fishing rod from being collapsed while fishing.

\ No newline at end of file diff --git a/obj/item/flashlight.html b/obj/item/flashlight.html new file mode 100644 index 0000000000000..21ae9af66cd3d --- /dev/null +++ b/obj/item/flashlight.html @@ -0,0 +1 @@ +/obj/item/flashlight - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

flashlight

Vars

disabled_timeIf we've been forcibly disabled for a temporary amount of time.
sound_offThe sound the light makes when it's turned off
sound_onThe sound the light makes when it's turned on
start_onShould the flashlight start turned on?
toggle_contextCan we toggle this light on and off (used for contexual screentips only)

Procs

droppedfor directional sprites - so when we drop the flashlight, it drops facing the same way the user is facing
equippedfor directional sprites - so we get the same sprite in the inventory each time we pick one up
on_saboteurwhen hit by a light disruptor - turns the light off, forces the light to be disabled for a few seconds

Var Details

disabled_time

If we've been forcibly disabled for a temporary amount of time.

sound_off

The sound the light makes when it's turned off

sound_on

The sound the light makes when it's turned on

start_on

Should the flashlight start turned on?

toggle_context

Can we toggle this light on and off (used for contexual screentips only)

Proc Details

dropped

for directional sprites - so when we drop the flashlight, it drops facing the same way the user is facing

equipped

for directional sprites - so we get the same sprite in the inventory each time we pick one up

on_saboteur

when hit by a light disruptor - turns the light off, forces the light to be disabled for a few seconds

\ No newline at end of file diff --git a/obj/item/flashlight/emp.html b/obj/item/flashlight/emp.html new file mode 100644 index 0000000000000..ea04311426434 --- /dev/null +++ b/obj/item/flashlight/emp.html @@ -0,0 +1 @@ +/obj/item/flashlight/emp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

emp

Vars

charge_delayHow many seconds between each recharge

Var Details

charge_delay

How many seconds between each recharge

\ No newline at end of file diff --git a/obj/item/flashlight/flare.html b/obj/item/flashlight/flare.html new file mode 100644 index 0000000000000..1c4bea43ce5f1 --- /dev/null +++ b/obj/item/flashlight/flare.html @@ -0,0 +1 @@ +/obj/item/flashlight/flare - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

flare

Vars

can_be_extinguishedIf the light source can be extinguished
fuelHow many seconds of fuel we have left
on_damageHow much damage it does when turned on
randomize_fuelDo we randomize the fuel when initialized
trash_typeType of atom thats spawns after fuel is used up

Var Details

can_be_extinguished

If the light source can be extinguished

fuel

How many seconds of fuel we have left

on_damage

How much damage it does when turned on

randomize_fuel

Do we randomize the fuel when initialized

trash_type

Type of atom thats spawns after fuel is used up

\ No newline at end of file diff --git a/obj/item/flashlight/flare/candle.html b/obj/item/flashlight/flare/candle.html new file mode 100644 index 0000000000000..95768960d5b78 --- /dev/null +++ b/obj/item/flashlight/flare/candle.html @@ -0,0 +1,11 @@ +/obj/item/flashlight/flare/candle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

candle

Vars

current_wax_levelThe current wax level, used for drawing the correct icon
last_wax_levelThe previous wax level, remembered so we only have to make 3 update_appearance calls total as opposed to every tick

Procs

attackbyallows lighting an unlit candle from some fire source by left clicking the candle with the source
check_wax_levelJust checks the wax level of the candle for displaying the correct sprite.
try_light_candleTry to ignite the candle.

Var Details

current_wax_level

The current wax level, used for drawing the correct icon

last_wax_level

The previous wax level, remembered so we only have to make 3 update_appearance calls total as opposed to every tick

Proc Details

attackby

allows lighting an unlit candle from some fire source by left clicking the candle with the source

check_wax_level

Just checks the wax level of the candle for displaying the correct sprite.

+

This gets called in process() every tick. If the wax level has changed, then we call our update.

try_light_candle

Try to ignite the candle.

+

Candles are ignited a bit differently from flares, in that they must be manually lit from other fire sources. +This will perform all the necessary checks to ensure that can happen, and display a message if it worked.

+

Arguments:

+
    +
  • obj/item/fire_starter - the item being used to ignite the candle.
  • +
  • mob/user - the user to display a message to.
  • +
  • quiet - suppresses the to_chat message.
  • +
  • silent - suppresses the balloon alerts as well as the to_chat message.
  • +
\ No newline at end of file diff --git a/obj/item/flashlight/flashdark.html b/obj/item/flashlight/flashdark.html new file mode 100644 index 0000000000000..8b2eb124bd790 --- /dev/null +++ b/obj/item/flashlight/flashdark.html @@ -0,0 +1 @@ +/obj/item/flashlight/flashdark - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

flashdark

Vars

dark_light_powerVariable to preserve old lighting behavior in flashlights, to handle darkness.
dark_light_rangeVariable to preserve old lighting behavior in flashlights, to handle darkness.

Var Details

dark_light_power

Variable to preserve old lighting behavior in flashlights, to handle darkness.

dark_light_range

Variable to preserve old lighting behavior in flashlights, to handle darkness.

\ No newline at end of file diff --git a/obj/item/flashlight/glowstick.html b/obj/item/flashlight/glowstick.html new file mode 100644 index 0000000000000..0dc0831149c3a --- /dev/null +++ b/obj/item/flashlight/glowstick.html @@ -0,0 +1,3 @@ +/obj/item/flashlight/glowstick - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

glowstick

Vars

fuelHow many seconds of fuel we have left
max_fuelHow much max fuel we have
timer_idThe timer id powering our burning

Procs

burn_downBurns down the glowstick by the specified time +Returns the amount of time we need to burn before a visual change will occur

Var Details

fuel

How many seconds of fuel we have left

max_fuel

How much max fuel we have

timer_id

The timer id powering our burning

Proc Details

burn_down

Burns down the glowstick by the specified time +Returns the amount of time we need to burn before a visual change will occur

\ No newline at end of file diff --git a/obj/item/flashlight/pen/paramedic.html b/obj/item/flashlight/pen/paramedic.html new file mode 100644 index 0000000000000..a92319676510b --- /dev/null +++ b/obj/item/flashlight/pen/paramedic.html @@ -0,0 +1 @@ +/obj/item/flashlight/pen/paramedic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

paramedic

Vars

uv_cooldownOur current UV cooldown
uv_cooldown_lengthHow long between UV fryings
uv_powerHow much sanitization to apply to the burn wound

Var Details

uv_cooldown

Our current UV cooldown

uv_cooldown_length

How long between UV fryings

uv_power

How much sanitization to apply to the burn wound

\ No newline at end of file diff --git a/obj/item/flashlight/spotlight.html b/obj/item/flashlight/spotlight.html new file mode 100644 index 0000000000000..c75da86e009bb --- /dev/null +++ b/obj/item/flashlight/spotlight.html @@ -0,0 +1 @@ +/obj/item/flashlight/spotlight - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spotlight

Vars

base_light_rangeBase light_range that can be set on Initialize to use in smooth light range expansions and contractions.
even_cycleBoolean that switches when a full color flip ends, so the light can appear in all colors.

Var Details

base_light_range

Base light_range that can be set on Initialize to use in smooth light range expansions and contractions.

even_cycle

Boolean that switches when a full color flip ends, so the light can appear in all colors.

\ No newline at end of file diff --git a/obj/item/flatpack.html b/obj/item/flatpack.html new file mode 100644 index 0000000000000..704746d970ef3 --- /dev/null +++ b/obj/item/flatpack.html @@ -0,0 +1 @@ +/obj/item/flatpack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

flatpack

Vars

boardThe board we deploy

Var Details

board

The board we deploy

\ No newline at end of file diff --git a/obj/item/flatpacked_machine.html b/obj/item/flatpacked_machine.html new file mode 100644 index 0000000000000..6f03054f151ea --- /dev/null +++ b/obj/item/flatpacked_machine.html @@ -0,0 +1 @@ +/obj/item/flatpacked_machine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

flatpacked_machine

Vars

deploy_timeHow long it takes to create the structure in question.
type_to_deployWhat structure is created by this item.

Procs

give_deployable_componentAdds the deployable component, so that it can be overridden in case that's wanted
give_manufacturer_examineAdds the manufacturer examine element to the flatpack machine, but can be overridden in the future

Var Details

deploy_time

How long it takes to create the structure in question.

type_to_deploy

What structure is created by this item.

Proc Details

give_deployable_component

Adds the deployable component, so that it can be overridden in case that's wanted

give_manufacturer_examine

Adds the manufacturer examine element to the flatpack machine, but can be overridden in the future

\ No newline at end of file diff --git a/obj/item/folder.html b/obj/item/folder.html new file mode 100644 index 0000000000000..4a091934a540e --- /dev/null +++ b/obj/item/folder.html @@ -0,0 +1 @@ +/obj/item/folder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

folder

Vars

bg_colorThe background color for tgui in hex (with a #)
contents_hiddenDo we hide the contents on examine?
folder_insertablesA typecache of the objects that can be inserted into a folder

Var Details

bg_color

The background color for tgui in hex (with a #)

contents_hidden

Do we hide the contents on examine?

folder_insertables

A typecache of the objects that can be inserted into a folder

\ No newline at end of file diff --git a/obj/item/folder/biscuit.html b/obj/item/folder/biscuit.html new file mode 100644 index 0000000000000..b72a5c1dbf077 --- /dev/null +++ b/obj/item/folder/biscuit.html @@ -0,0 +1 @@ +/obj/item/folder/biscuit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

biscuit

Vars

contained_slipThe paper slip inside, if there is one
crackedIs biscuit cracked open or not?

Procs

crack_checkChecks if the biscuit has been already cracked.

Var Details

contained_slip

The paper slip inside, if there is one

cracked

Is biscuit cracked open or not?

Proc Details

crack_check

Checks if the biscuit has been already cracked.

\ No newline at end of file diff --git a/obj/item/folder/biscuit/unsealed.html b/obj/item/folder/biscuit/unsealed.html new file mode 100644 index 0000000000000..cca59cff93afc --- /dev/null +++ b/obj/item/folder/biscuit/unsealed.html @@ -0,0 +1 @@ +/obj/item/folder/biscuit/unsealed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

unsealed

Vars

has_been_sealedWas the biscuit already sealed by players? Prevents re-sealing after use
sealed_iconWhat is the sprite for when it's sealed? It starts unsealed, so needs a sprite for when it's sealed.

Var Details

has_been_sealed

Was the biscuit already sealed by players? Prevents re-sealing after use

sealed_icon

What is the sprite for when it's sealed? It starts unsealed, so needs a sprite for when it's sealed.

\ No newline at end of file diff --git a/obj/item/food.html b/obj/item/food.html new file mode 100644 index 0000000000000..7616a80722776 --- /dev/null +++ b/obj/item/food.html @@ -0,0 +1,9 @@ +/obj/item/food - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

food

Abstract class to allow us to easily create all the generic "normal" food without too much copy pasta of adding more components

Vars

ant_attractingDoes our food normally attract ants?
bite_consumptionHow much reagents per bite
crafted_food_buffBuff given when a hand-crafted version of this item is consumed. Randomized according to crafting_complexity if not assigned.
crafting_complexityHow exquisite the meal is. Applicable to crafted food, increasing its quality. Spans from 0 to 5.
decomp_req_handleFood that needs to be picked up in order to decompose.
decomp_typeWhat our food decomposes into.
decomposition_particlesUsed to set decomposition stink particles for food, will have no particles if null
decomposition_timeUsed to set custom decomposition times for food. Set to 0 to have it automatically set via the food's flags.
eat_timeHow long it will take to eat this food without any other modifiers
eatverbsVerbs used when eating this food in the to_chat messages
food_flagsExtra flags for things such as if the food is in a container or not
food_reagentsList of reagents this food gets on creation during reaction or map spawn
foodtypesBitflag of the types of food this food is
junkinessHow much junkiness this food has? God I should remove junkiness soon
max_volumeAmount of volume the food can contain
preserved_foodFood that's immune to decomposition.
starting_reagent_purityUsed to set custom starting reagent purity for synthetic and natural food. Ignored when set to null.
tastesTastes to describe this food
trash_typeType of atom thats spawned after eating this item
venue_valuePrice of this food if sold in a venue

Procs

make_bakeableThis proc handles bakeable components, overwrite if you want different bake results etc.
make_edibleThis proc adds the edible component, overwrite this if you for some reason want to change some specific args like callbacks.
make_germ_sensitiveThis proc makes things infective and decomposing when they stay on the floor for too long. +Set preserved_food to TRUE to make it never decompose. +Set decomp_req_handle to TRUE to only make it decompose when someone picks it up. +Requires /datum/component/germ_sensitive to detect exposure
make_grillableThis proc handles grillable components, overwrite if you want different grill results etc.
make_leave_trashThis proc handles trash components, overwrite this if you want the object to spawn trash
make_microwaveableThis proc handles the microwave component. Overwrite if you want special microwave results. +By default, all food is microwavable. However, they will be microwaved into a bad recipe (burnt mess).
make_processableThis proc handles processable elements, overwrite this if you want to add behavior such as slicing, forking, spooning, whatever, to turn the item into something else

Var Details

ant_attracting

Does our food normally attract ants?

bite_consumption

How much reagents per bite

crafted_food_buff

Buff given when a hand-crafted version of this item is consumed. Randomized according to crafting_complexity if not assigned.

crafting_complexity

How exquisite the meal is. Applicable to crafted food, increasing its quality. Spans from 0 to 5.

decomp_req_handle

Food that needs to be picked up in order to decompose.

decomp_type

What our food decomposes into.

decomposition_particles

Used to set decomposition stink particles for food, will have no particles if null

decomposition_time

Used to set custom decomposition times for food. Set to 0 to have it automatically set via the food's flags.

eat_time

How long it will take to eat this food without any other modifiers

eatverbs

Verbs used when eating this food in the to_chat messages

food_flags

Extra flags for things such as if the food is in a container or not

food_reagents

List of reagents this food gets on creation during reaction or map spawn

foodtypes

Bitflag of the types of food this food is

junkiness

How much junkiness this food has? God I should remove junkiness soon

max_volume

Amount of volume the food can contain

preserved_food

Food that's immune to decomposition.

starting_reagent_purity

Used to set custom starting reagent purity for synthetic and natural food. Ignored when set to null.

tastes

Tastes to describe this food

trash_type

Type of atom thats spawned after eating this item

venue_value

Price of this food if sold in a venue

Proc Details

make_bakeable

This proc handles bakeable components, overwrite if you want different bake results etc.

make_edible

This proc adds the edible component, overwrite this if you for some reason want to change some specific args like callbacks.

make_germ_sensitive

This proc makes things infective and decomposing when they stay on the floor for too long. +Set preserved_food to TRUE to make it never decompose. +Set decomp_req_handle to TRUE to only make it decompose when someone picks it up. +Requires /datum/component/germ_sensitive to detect exposure

make_grillable

This proc handles grillable components, overwrite if you want different grill results etc.

make_leave_trash

This proc handles trash components, overwrite this if you want the object to spawn trash

make_microwaveable

This proc handles the microwave component. Overwrite if you want special microwave results. +By default, all food is microwavable. However, they will be microwaved into a bad recipe (burnt mess).

make_processable

This proc handles processable elements, overwrite this if you want to add behavior such as slicing, forking, spooning, whatever, to turn the item into something else

\ No newline at end of file diff --git a/obj/item/food/badrecipe.html b/obj/item/food/badrecipe.html new file mode 100644 index 0000000000000..517a070831caa --- /dev/null +++ b/obj/item/food/badrecipe.html @@ -0,0 +1 @@ +/obj/item/food/badrecipe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

badrecipe

Vars

stink_particlesVariable that holds the reference to the stink lines we get when we're moldy, yucky yuck

Procs

OnGrillPrevents grilling burnt shit from well, burning.

Var Details

stink_particles

Variable that holds the reference to the stink lines we get when we're moldy, yucky yuck

Proc Details

OnGrill

Prevents grilling burnt shit from well, burning.

\ No newline at end of file diff --git a/obj/item/food/baguette.html b/obj/item/food/baguette.html new file mode 100644 index 0000000000000..6d172c0fe3ebc --- /dev/null +++ b/obj/item/food/baguette.html @@ -0,0 +1 @@ +/obj/item/food/baguette - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

baguette

Vars

fake_swordplaywhether this is in fake swordplay mode or not

Var Details

fake_swordplay

whether this is in fake swordplay mode or not

\ No newline at end of file diff --git a/obj/item/food/baguette/combat.html b/obj/item/food/baguette/combat.html new file mode 100644 index 0000000000000..8d5512c846996 --- /dev/null +++ b/obj/item/food/baguette/combat.html @@ -0,0 +1 @@ +/obj/item/food/baguette/combat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

combat

Deadly bread used by a mime

Vars

active_blockBlock chance when wielded as a sword by a mime
active_forceForce when wielded as a sword by a mime

Var Details

active_block

Block chance when wielded as a sword by a mime

active_force

Force when wielded as a sword by a mime

\ No newline at end of file diff --git a/obj/item/food/bait.html b/obj/item/food/bait.html new file mode 100644 index 0000000000000..7ffe160f3d746 --- /dev/null +++ b/obj/item/food/bait.html @@ -0,0 +1 @@ +/obj/item/food/bait - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bait

Vars

bait_qualityQuality trait of this bait
rod_overlay_icon_stateIcon state added to main fishing rod icon when this bait is equipped
show_on_wikiIs this included in the autowiki?

Var Details

bait_quality

Quality trait of this bait

rod_overlay_icon_state

Icon state added to main fishing rod icon when this bait is equipped

show_on_wiki

Is this included in the autowiki?

\ No newline at end of file diff --git a/obj/item/food/bread.html b/obj/item/food/bread.html new file mode 100644 index 0000000000000..01984e6beae5d --- /dev/null +++ b/obj/item/food/bread.html @@ -0,0 +1 @@ +/obj/item/food/bread - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bread

Abstract parent object for bread items. Should not be made obtainable in game.

Vars

slice_typetype is spawned 5 at a time and replaces this bread loaf when processed by cutting tool
yieldso that the yield can change if it isnt 5

Var Details

slice_type

type is spawned 5 at a time and replaces this bread loaf when processed by cutting tool

yield

so that the yield can change if it isnt 5

\ No newline at end of file diff --git a/obj/item/food/bubblegum.html b/obj/item/food/bubblegum.html new file mode 100644 index 0000000000000..a3c7c00f164b7 --- /dev/null +++ b/obj/item/food/bubblegum.html @@ -0,0 +1 @@ +/obj/item/food/bubblegum - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bubblegum

Vars

metabolization_amountThe amount to metabolize per second

Var Details

metabolization_amount

The amount to metabolize per second

\ No newline at end of file diff --git a/obj/item/food/bubblegum/bubblegum.html b/obj/item/food/bubblegum/bubblegum.html new file mode 100644 index 0000000000000..8245b01f262f2 --- /dev/null +++ b/obj/item/food/bubblegum/bubblegum.html @@ -0,0 +1 @@ +/obj/item/food/bubblegum/bubblegum - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bubblegum

Procs

hallucinateThis proc has a 5% chance to have a bubblegum line appear, with an 85% chance for just text and 15% for a bubblegum hallucination and scarier text.

Proc Details

hallucinate

This proc has a 5% chance to have a bubblegum line appear, with an 85% chance for just text and 15% for a bubblegum hallucination and scarier text.

\ No newline at end of file diff --git a/obj/item/food/cake.html b/obj/item/food/cake.html new file mode 100644 index 0000000000000..bdfe398de1b39 --- /dev/null +++ b/obj/item/food/cake.html @@ -0,0 +1 @@ +/obj/item/food/cake - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cake

Vars

slice_typetype is spawned 5 at a time and replaces this cake when processed by cutting tool
yieldchanges yield of sliced cake, default for cake is 5

Var Details

slice_type

type is spawned 5 at a time and replaces this cake when processed by cutting tool

yield

changes yield of sliced cake, default for cake is 5

\ No newline at end of file diff --git a/obj/item/food/canned/envirochow.html b/obj/item/food/canned/envirochow.html new file mode 100644 index 0000000000000..9154098410044 --- /dev/null +++ b/obj/item/food/canned/envirochow.html @@ -0,0 +1 @@ +/obj/item/food/canned/envirochow - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

envirochow

Procs

apply_buffThis makes the animal eat the food, and applies the buff status effect to them.
check_buffabilityThis proc checks if the mob is able to receive the buff.

Proc Details

apply_buff

This makes the animal eat the food, and applies the buff status effect to them.

check_buffability

This proc checks if the mob is able to receive the buff.

\ No newline at end of file diff --git a/obj/item/food/cheese.html b/obj/item/food/cheese.html new file mode 100644 index 0000000000000..cdb397bca188b --- /dev/null +++ b/obj/item/food/cheese.html @@ -0,0 +1 @@ +/obj/item/food/cheese - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Abstract cheese class

Everything that is a subclass of this counts as cheese for regal rats.

Vars

rat_healused to determine how much health rats/regal rats recover when they eat it.

Var Details

rat_heal

used to determine how much health rats/regal rats recover when they eat it.

\ No newline at end of file diff --git a/obj/item/food/cheese/wheel.html b/obj/item/food/cheese/wheel.html new file mode 100644 index 0000000000000..cdac26e582893 --- /dev/null +++ b/obj/item/food/cheese/wheel.html @@ -0,0 +1,3 @@ +/obj/item/food/cheese/wheel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

wheel

Procs

consume_cheeseWhiffs away cheese that was touched by the chaos entity byond the realm. In layman's terms, deletes the cheese and throws sparks. +Used in wizard grand rituals' optional cheesy alternative.

Proc Details

consume_cheese

Whiffs away cheese that was touched by the chaos entity byond the realm. In layman's terms, deletes the cheese and throws sparks. +Used in wizard grand rituals' optional cheesy alternative.

\ No newline at end of file diff --git a/obj/item/food/clothing.html b/obj/item/food/clothing.html new file mode 100644 index 0000000000000..4b736b665108e --- /dev/null +++ b/obj/item/food/clothing.html @@ -0,0 +1 @@ +/obj/item/food/clothing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

clothing

Vars

clothingA weak reference to the clothing that created us

Var Details

clothing

A weak reference to the clothing that created us

\ No newline at end of file diff --git a/obj/item/food/deadmouse.html b/obj/item/food/deadmouse.html new file mode 100644 index 0000000000000..7cc3afcb377f8 --- /dev/null +++ b/obj/item/food/deadmouse.html @@ -0,0 +1 @@ +/obj/item/food/deadmouse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

deadmouse

Mice turn into food when they die

Procs

copy_corpseCopy properties from an imminently dead mouse
use_lazarusSpawn a new mouse from this dead mouse item when hit by a lazarus injector and conditions are met.

Proc Details

copy_corpse

Copy properties from an imminently dead mouse

use_lazarus

Spawn a new mouse from this dead mouse item when hit by a lazarus injector and conditions are met.

\ No newline at end of file diff --git a/obj/item/food/donkpocket.html b/obj/item/food/donkpocket.html new file mode 100644 index 0000000000000..beb83c123cccc --- /dev/null +++ b/obj/item/food/donkpocket.html @@ -0,0 +1 @@ +/obj/item/food/donkpocket - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

donkpocket

DONK POCKETS

Vars

added_reagentsThe reagents added when microwaved. Needed since microwaving ignores food_reagents
baking_time_longThe upper end for how long it takes to bake
baking_time_shortThe lower end for how long it takes to bake
child_added_reagentsThe reagents that most child types add when microwaved. Needed because you can't override static lists.
warm_typeWhat type of donk pocket we're warmed into via baking or microwaving.

Var Details

added_reagents

The reagents added when microwaved. Needed since microwaving ignores food_reagents

baking_time_long

The upper end for how long it takes to bake

baking_time_short

The lower end for how long it takes to bake

child_added_reagents

The reagents that most child types add when microwaved. Needed because you can't override static lists.

warm_type

What type of donk pocket we're warmed into via baking or microwaving.

\ No newline at end of file diff --git a/obj/item/food/donut.html b/obj/item/food/donut.html new file mode 100644 index 0000000000000..194c0699fbf33 --- /dev/null +++ b/obj/item/food/donut.html @@ -0,0 +1 @@ +/obj/item/food/donut - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

donut

Procs

check_likedOverride for checkliked in edible component, because all cops LOVE donuts
in_box_spriteReturns the sprite of the donut while in a donut box
make_edibleOverride for checkliked callback

Proc Details

check_liked

Override for checkliked in edible component, because all cops LOVE donuts

in_box_sprite

Returns the sprite of the donut while in a donut box

make_edible

Override for checkliked callback

\ No newline at end of file diff --git a/obj/item/food/egg.html b/obj/item/food/egg.html new file mode 100644 index 0000000000000..8a4b93fef4f3c --- /dev/null +++ b/obj/item/food/egg.html @@ -0,0 +1 @@ +/obj/item/food/egg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

egg

Vars

chick_throw_probHow likely is it that a chicken will come out of here if we throw it?

Procs

spawn_impact_chickSpawn a baby chicken from throwing an egg

Var Details

chick_throw_prob

How likely is it that a chicken will come out of here if we throw it?

Proc Details

spawn_impact_chick

Spawn a baby chicken from throwing an egg

\ No newline at end of file diff --git a/obj/item/food/egg/raptor_egg.html b/obj/item/food/egg/raptor_egg.html new file mode 100644 index 0000000000000..d9efc7561e888 --- /dev/null +++ b/obj/item/food/egg/raptor_egg.html @@ -0,0 +1 @@ +/obj/item/food/egg/raptor_egg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

raptor_egg

Vars

inherited_statsinheritance datum to pass on to the child

Var Details

inherited_stats

inheritance datum to pass on to the child

\ No newline at end of file diff --git a/obj/item/food/egg/watcher.html b/obj/item/food/egg/watcher.html new file mode 100644 index 0000000000000..89f983e913828 --- /dev/null +++ b/obj/item/food/egg/watcher.html @@ -0,0 +1 @@ +/obj/item/food/egg/watcher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

watcher

Egg which hatches into a helpful pet. Or you can eat it if you want.

Vars

pedometerDatum used to measure our steps
steps_to_hatchHow far should we travel to hatch?
steps_travelledHow far have we moved?

Procs

jiggleAnimate the egg
on_steppedCalled when we are moved, whether inside an inventory or by ourself somehow

Var Details

pedometer

Datum used to measure our steps

steps_to_hatch

How far should we travel to hatch?

steps_travelled

How far have we moved?

Proc Details

jiggle

Animate the egg

on_stepped

Called when we are moved, whether inside an inventory or by ourself somehow

\ No newline at end of file diff --git a/obj/item/food/fishmeat/carp.html b/obj/item/food/fishmeat/carp.html new file mode 100644 index 0000000000000..3982594a21643 --- /dev/null +++ b/obj/item/food/fishmeat/carp.html @@ -0,0 +1 @@ +/obj/item/food/fishmeat/carp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

carp

Vars

cell_lineCytology category you can swab the meat for.

Var Details

cell_line

Cytology category you can swab the meat for.

\ No newline at end of file diff --git a/obj/item/food/golem_food.html b/obj/item/food/golem_food.html new file mode 100644 index 0000000000000..1c213e074a0d7 --- /dev/null +++ b/obj/item/food/golem_food.html @@ -0,0 +1 @@ +/obj/item/food/golem_food - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

golem_food

Abstract food item used to feed golems

Vars

consume_foodIf we use up a stack of food on use or not
food_buffGolem food buff to apply on consumption
ownerA reference to whatever it is we represent

Procs

on_parent_destroyedClean ourselves up if our parent dies
setupSet up some properties based on a passed-in item that the golem will pretend to eat
took_biteCalled when someone bites this food, subtract one charge from our material stack

Var Details

consume_food

If we use up a stack of food on use or not

food_buff

Golem food buff to apply on consumption

owner

A reference to whatever it is we represent

Proc Details

on_parent_destroyed

Clean ourselves up if our parent dies

setup

Set up some properties based on a passed-in item that the golem will pretend to eat

took_bite

Called when someone bites this food, subtract one charge from our material stack

\ No newline at end of file diff --git a/obj/item/food/grown.html b/obj/item/food/grown.html new file mode 100644 index 0000000000000..5d4d0e633cfee --- /dev/null +++ b/obj/item/food/grown.html @@ -0,0 +1,3 @@ +/obj/item/food/grown - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

grown

Vars

alt_iconIf the grown food has an alternative icon state to use in places.
bite_consumption_modThe modifier applied to the plant's bite size. If a plant has a large amount of reagents naturally, this should be increased to match.
can_distillIf FALSE, this object cannot be distilled into an alcohol.
distill_reagentThe reagent this plant distill to. If NULL, it uses a generic fruit_wine reagent and adjusts its variables.
dry_grindIf TRUE, this object needs to be dry to be ground up
filling_colorColor of the grown object, for use in coloring greyscale splats.
offset_at_initShould we pixel offset ourselves at init? for mapping
plantnameName of the plant
seedtype path, gets converted to item on New(). It's safe to assume it's always a seed item.
splat_typeThe typepath made when the plant is splatted with liquid contents.
wine_flavorFlavor of the plant's wine if NULL distll_reagent. If NULL, this is automatically set to the fruit's flavor.
wine_powerBoozepwr of the wine if NULL distill_reagent

Procs

fermentTurns the nutriments and vitamins into the distill reagent or fruit wine
generate_trashGenerates a piece of trash based on our plant item. Used by /datum/element/food_trash. +location - Optional. If passed, generates the item at the passed location instead of at src's drop location.

Var Details

alt_icon

If the grown food has an alternative icon state to use in places.

bite_consumption_mod

The modifier applied to the plant's bite size. If a plant has a large amount of reagents naturally, this should be increased to match.

can_distill

If FALSE, this object cannot be distilled into an alcohol.

distill_reagent

The reagent this plant distill to. If NULL, it uses a generic fruit_wine reagent and adjusts its variables.

dry_grind

If TRUE, this object needs to be dry to be ground up

filling_color

Color of the grown object, for use in coloring greyscale splats.

offset_at_init

Should we pixel offset ourselves at init? for mapping

plantname

Name of the plant

seed

type path, gets converted to item on New(). It's safe to assume it's always a seed item.

splat_type

The typepath made when the plant is splatted with liquid contents.

wine_flavor

Flavor of the plant's wine if NULL distll_reagent. If NULL, this is automatically set to the fruit's flavor.

wine_power

Boozepwr of the wine if NULL distill_reagent

Proc Details

ferment

Turns the nutriments and vitamins into the distill reagent or fruit wine

generate_trash

Generates a piece of trash based on our plant item. Used by /datum/element/food_trash. +location - Optional. If passed, generates the item at the passed location instead of at src's drop location.

\ No newline at end of file diff --git a/obj/item/food/grown/banana.html b/obj/item/food/grown/banana.html new file mode 100644 index 0000000000000..4653556794030 --- /dev/null +++ b/obj/item/food/grown/banana.html @@ -0,0 +1 @@ +/obj/item/food/grown/banana - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

banana

Procs

check_likedClowns will always like bananas.

Proc Details

check_liked

Clowns will always like bananas.

\ No newline at end of file diff --git a/obj/item/food/grown/mushroom.html b/obj/item/food/grown/mushroom.html new file mode 100644 index 0000000000000..1ed0a63814adc --- /dev/null +++ b/obj/item/food/grown/mushroom.html @@ -0,0 +1 @@ +/obj/item/food/grown/mushroom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mushroom

Vars

icon_stateDefault mushroom icon for recipes that need any mushroom

Var Details

icon_state

Default mushroom icon for recipes that need any mushroom

\ No newline at end of file diff --git a/obj/item/food/grown/pumpkin.html b/obj/item/food/grown/pumpkin.html new file mode 100644 index 0000000000000..00ca18d02235b --- /dev/null +++ b/obj/item/food/grown/pumpkin.html @@ -0,0 +1 @@ +/obj/item/food/grown/pumpkin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pumpkin

Vars

carved_typeWhich type of lantern this gourd produces when carved.

Var Details

carved_type

Which type of lantern this gourd produces when carved.

\ No newline at end of file diff --git a/obj/item/food/icecream.html b/obj/item/food/icecream.html new file mode 100644 index 0000000000000..e745230d75862 --- /dev/null +++ b/obj/item/food/icecream.html @@ -0,0 +1 @@ +/obj/item/food/icecream - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

icecream

Vars

ingredientsThese two variables are used by the ice cream vat. Latter is the one that shows on the UI.

Var Details

ingredients

These two variables are used by the ice cream vat. Latter is the one that shows on the UI.

\ No newline at end of file diff --git a/obj/item/food/meat/cutlet.html b/obj/item/food/meat/cutlet.html new file mode 100644 index 0000000000000..a5035934ad980 --- /dev/null +++ b/obj/item/food/meat/cutlet.html @@ -0,0 +1 @@ +/obj/item/food/meat/cutlet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cutlet

Procs

on_microwave_cookedThis proc handles setting up the correct meat name for the cutlet, this should definitely be changed with the food rework.

Proc Details

on_microwave_cooked

This proc handles setting up the correct meat name for the cutlet, this should definitely be changed with the food rework.

\ No newline at end of file diff --git a/obj/item/food/meat/slab.html b/obj/item/food/meat/slab.html new file mode 100644 index 0000000000000..9123c35134fbc --- /dev/null +++ b/obj/item/food/meat/slab.html @@ -0,0 +1 @@ +/obj/item/food/meat/slab - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

slab

Vars

slab_colorLegacy code, handles the coloring of the overlay of the cutlets made from this.

Var Details

slab_color

Legacy code, handles the coloring of the overlay of the cutlets made from this.

\ No newline at end of file diff --git a/obj/item/food/meat/steak/plain/human.html b/obj/item/food/meat/steak/plain/human.html new file mode 100644 index 0000000000000..3d86fe6d1658a --- /dev/null +++ b/obj/item/food/meat/steak/plain/human.html @@ -0,0 +1 @@ +/obj/item/food/meat/steak/plain/human - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

human

Procs

on_microwave_cookedMake sure the steak has the correct name

Proc Details

on_microwave_cooked

Make sure the steak has the correct name

\ No newline at end of file diff --git a/obj/item/food/monkeycube.html b/obj/item/food/monkeycube.html new file mode 100644 index 0000000000000..9d82895281f85 --- /dev/null +++ b/obj/item/food/monkeycube.html @@ -0,0 +1 @@ +/obj/item/food/monkeycube - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

monkeycube

Vars

expandingWhether we've been wetted and are expanding
spawned_mobMob typepath to spawn when expanding

Var Details

expanding

Whether we've been wetted and are expanding

spawned_mob

Mob typepath to spawn when expanding

\ No newline at end of file diff --git a/obj/item/food/nugget.html b/obj/item/food/nugget.html new file mode 100644 index 0000000000000..d849d64ec0191 --- /dev/null +++ b/obj/item/food/nugget.html @@ -0,0 +1 @@ +/obj/item/food/nugget - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nugget

Vars

icon_stateDefault nugget icon for recipes that need any nugget

Var Details

icon_state

Default nugget icon for recipes that need any nugget

\ No newline at end of file diff --git a/obj/item/food/pancakes.html b/obj/item/food/pancakes.html new file mode 100644 index 0000000000000..851e2b94544bc --- /dev/null +++ b/obj/item/food/pancakes.html @@ -0,0 +1 @@ +/obj/item/food/pancakes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pancakes

Vars

stack_nameUsed as a base name while generating the icon states when stacked

Var Details

stack_name

Used as a base name while generating the icon states when stacked

\ No newline at end of file diff --git a/obj/item/food/pie.html b/obj/item/food/pie.html new file mode 100644 index 0000000000000..aa7bb2c5e4551 --- /dev/null +++ b/obj/item/food/pie.html @@ -0,0 +1 @@ +/obj/item/food/pie - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pie

Vars

slice_typetype is spawned 5 at a time and replaces this pie when processed by cutting tool
yieldso that the yield can change if it isn't 5

Var Details

slice_type

type is spawned 5 at a time and replaces this pie when processed by cutting tool

yield

so that the yield can change if it isn't 5

\ No newline at end of file diff --git a/obj/item/food/pizza.html b/obj/item/food/pizza.html new file mode 100644 index 0000000000000..350641b214b19 --- /dev/null +++ b/obj/item/food/pizza.html @@ -0,0 +1 @@ +/obj/item/food/pizza - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pizza

Vars

boxtagWhat label pizza boxes use if this pizza spawns in them.

Var Details

boxtag

What label pizza boxes use if this pizza spawns in them.

\ No newline at end of file diff --git a/obj/item/food/rationpack.html b/obj/item/food/rationpack.html new file mode 100644 index 0000000000000..40edff13c8cf2 --- /dev/null +++ b/obj/item/food/rationpack.html @@ -0,0 +1 @@ +/obj/item/food/rationpack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

rationpack

Procs

make_edibleOverride for checkliked callback

Proc Details

make_edible

Override for checkliked callback

\ No newline at end of file diff --git a/obj/item/food/ready_donk.html b/obj/item/food/ready_donk.html new file mode 100644 index 0000000000000..29e79b4d5fc17 --- /dev/null +++ b/obj/item/food/ready_donk.html @@ -0,0 +1 @@ +/obj/item/food/ready_donk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ready_donk

Vars

added_reagentsWhat reagents should be added when this item is warmed?
warm_typeWhat type of ready-donk are we warmed into?

Var Details

added_reagents

What reagents should be added when this item is warmed?

warm_type

What type of ready-donk are we warmed into?

\ No newline at end of file diff --git a/obj/item/food/sandwich/death.html b/obj/item/food/sandwich/death.html new file mode 100644 index 0000000000000..33f78a29db517 --- /dev/null +++ b/obj/item/food/sandwich/death.html @@ -0,0 +1,9 @@ +/obj/item/food/sandwich/death - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

death

Procs

after_eatCallback to be used with the edible component. +If you take a bite of the sandwich with the right clothes and hairstyle, you like it. +If you don't, you contract a deadly disease.
check_likedCallback to be used with the edible component. +If you have the right clothes and hairstyle, you like it. +If you don't, you don't like it.

Proc Details

after_eat

Callback to be used with the edible component. +If you take a bite of the sandwich with the right clothes and hairstyle, you like it. +If you don't, you contract a deadly disease.

check_liked

Callback to be used with the edible component. +If you have the right clothes and hairstyle, you like it. +If you don't, you don't like it.

\ No newline at end of file diff --git a/obj/item/food/vendor_tray_meal.html b/obj/item/food/vendor_tray_meal.html new file mode 100644 index 0000000000000..1977bc099dd29 --- /dev/null +++ b/obj/item/food/vendor_tray_meal.html @@ -0,0 +1 @@ +/obj/item/food/vendor_tray_meal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vendor_tray_meal

Vars

hot_and_steamyDoes this food have the steam effect on it when initialized

Var Details

hot_and_steamy

Does this food have the steam effect on it when initialized

\ No newline at end of file diff --git a/obj/item/forcefield_projector.html b/obj/item/forcefield_projector.html new file mode 100644 index 0000000000000..173ac87678110 --- /dev/null +++ b/obj/item/forcefield_projector.html @@ -0,0 +1 @@ +/obj/item/forcefield_projector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

forcefield_projector

Vars

creation_timeTime it takes to materialize a forcefield.
force_proj_busyChecks to make sure the projector isn't busy with making another forcefield.

Var Details

creation_time

Time it takes to materialize a forcefield.

force_proj_busy

Checks to make sure the projector isn't busy with making another forcefield.

\ No newline at end of file diff --git a/obj/item/forging.html b/obj/item/forging.html new file mode 100644 index 0000000000000..03a00110ac205 --- /dev/null +++ b/obj/item/forging.html @@ -0,0 +1 @@ +/obj/item/forging - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

forging

Vars

in_usewhether the item is in use or not

Var Details

in_use

whether the item is in use or not

\ No newline at end of file diff --git a/obj/item/forging/complete.html b/obj/item/forging/complete.html new file mode 100644 index 0000000000000..e6c35e411a927 --- /dev/null +++ b/obj/item/forging/complete.html @@ -0,0 +1 @@ +/obj/item/forging/complete - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

complete

Vars

current_perfectsthe amount of perfect hits on the item, if it was allowed
spawning_itemthe path of the item that will be created

Var Details

current_perfects

the amount of perfect hits on the item, if it was allowed

spawning_item

the path of the item that will be created

\ No newline at end of file diff --git a/obj/item/forging/hammer.html b/obj/item/forging/hammer.html new file mode 100644 index 0000000000000..3c9bcb9e9a771 --- /dev/null +++ b/obj/item/forging/hammer.html @@ -0,0 +1 @@ +/obj/item/forging/hammer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hammer

Vars

fast_attacksthe list of things that, if attacked, will set the attack speed to rapid

Var Details

fast_attacks

the list of things that, if attacked, will set the attack speed to rapid

\ No newline at end of file diff --git a/obj/item/forging/incomplete.html b/obj/item/forging/incomplete.html new file mode 100644 index 0000000000000..75cf544cc1578 --- /dev/null +++ b/obj/item/forging/incomplete.html @@ -0,0 +1 @@ +/obj/item/forging/incomplete - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

incomplete

Vars

average_hitsthe amount of times it takes for the item to become ready
average_waitthe required time before each strike to prevent spamming
current_perfectsthe number of current perfect hits (really only impacts weapons atm)
spawn_itemthe path of the item that will be spawned upon completion
times_hitthe amount of times the item has been hit currently

Var Details

average_hits

the amount of times it takes for the item to become ready

average_wait

the required time before each strike to prevent spamming

current_perfects

the number of current perfect hits (really only impacts weapons atm)

spawn_item

the path of the item that will be spawned upon completion

times_hit

the amount of times the item has been hit currently

\ No newline at end of file diff --git a/obj/item/forging/reagent_weapon/bokken.html b/obj/item/forging/reagent_weapon/bokken.html new file mode 100644 index 0000000000000..c73fc8df448f9 --- /dev/null +++ b/obj/item/forging/reagent_weapon/bokken.html @@ -0,0 +1 @@ +/obj/item/forging/reagent_weapon/bokken - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bokken

Vars

wieldedwhether the bokken is being wielded or not

Var Details

wielded

whether the bokken is being wielded or not

\ No newline at end of file diff --git a/obj/item/forging/reagent_weapon/hammer.html b/obj/item/forging/reagent_weapon/hammer.html new file mode 100644 index 0000000000000..d8b200a493c8c --- /dev/null +++ b/obj/item/forging/reagent_weapon/hammer.html @@ -0,0 +1 @@ +/obj/item/forging/reagent_weapon/hammer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hammer

Vars

fast_attacksthe list of things that, if attacked, will set the attack speed to rapid

Var Details

fast_attacks

the list of things that, if attacked, will set the attack speed to rapid

\ No newline at end of file diff --git a/obj/item/frog_contract.html b/obj/item/frog_contract.html new file mode 100644 index 0000000000000..9a8096401fe00 --- /dev/null +++ b/obj/item/frog_contract.html @@ -0,0 +1 @@ +/obj/item/frog_contract - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

frog_contract

Procs

create_frogcustomize our own frog and trap it into the statue

Proc Details

create_frog

customize our own frog and trap it into the statue

\ No newline at end of file diff --git a/obj/item/frog_statue.html b/obj/item/frog_statue.html new file mode 100644 index 0000000000000..96cc0761018c0 --- /dev/null +++ b/obj/item/frog_statue.html @@ -0,0 +1 @@ +/obj/item/frog_statue - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

frog_statue

Vars

contained_frogour pet frog
summon_cooldownthe summon cooldown

Procs

recall_frogresummon the frog into its home
release_frogrelease the frog to wreak havoc
render_obsoletewe have lost our frog, let out a scream!
set_new_frogset this frog as our inhabitor

Var Details

contained_frog

our pet frog

summon_cooldown

the summon cooldown

Proc Details

recall_frog

resummon the frog into its home

release_frog

release the frog to wreak havoc

render_obsolete

we have lost our frog, let out a scream!

set_new_frog

set this frog as our inhabitor

\ No newline at end of file diff --git a/obj/item/fuel_pellet.html b/obj/item/fuel_pellet.html new file mode 100644 index 0000000000000..5fcd8be5b0ab2 --- /dev/null +++ b/obj/item/fuel_pellet.html @@ -0,0 +1 @@ +/obj/item/fuel_pellet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fuel_pellet

Vars

fuel_typeThe type of fuel this pellet has within.
usesThe amount of uses left in this fuel pellet.

Var Details

fuel_type

The type of fuel this pellet has within.

uses

The amount of uses left in this fuel pellet.

\ No newline at end of file diff --git a/obj/item/fugu_gland.html b/obj/item/fugu_gland.html new file mode 100644 index 0000000000000..5ddc0c494b3f7 --- /dev/null +++ b/obj/item/fugu_gland.html @@ -0,0 +1 @@ +/obj/item/fugu_gland - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fugu_gland

Item you use on a mob to make it bigger and stronger

Vars

fugu_blacklistList of mob types which you can't apply the gland to

Var Details

fugu_blacklist

List of mob types which you can't apply the gland to

\ No newline at end of file diff --git a/obj/item/gas_filter.html b/obj/item/gas_filter.html new file mode 100644 index 0000000000000..224d5856b57be --- /dev/null +++ b/obj/item/gas_filter.html @@ -0,0 +1,7 @@ +/obj/item/gas_filter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gas_filter

Vars

filter_efficiencyGeneral efficiency of the filter (between 0 and 1)
filter_statusAmount of filtering points available
filter_strength_highstrength of the filter against high filtering gases
filter_strength_lowstrength of the filter against low filtering gases
filter_strength_midstrength of the filter against mid filtering gases
high_filtering_gasesList of gases with high filter priority
low_filtering_gasesList of gases with low filter priority
mid_filtering_gasesList of gases with medium filter priority

Procs

reduce_filter_statuscalled by the gas mask where the filter is installed, lower the filter_status depending on the breath gas composition and by the strength of the filter +returns the modified breath gas mixture

Var Details

filter_efficiency

General efficiency of the filter (between 0 and 1)

filter_status

Amount of filtering points available

filter_strength_high

strength of the filter against high filtering gases

filter_strength_low

strength of the filter against low filtering gases

filter_strength_mid

strength of the filter against mid filtering gases

high_filtering_gases

List of gases with high filter priority

low_filtering_gases

List of gases with low filter priority

mid_filtering_gases

List of gases with medium filter priority

Proc Details

reduce_filter_status

called by the gas mask where the filter is installed, lower the filter_status depending on the breath gas composition and by the strength of the filter +returns the modified breath gas mixture

+

Arguments:

+
    +
  • breath - the current gas mixture of the breathed air
  • +
\ No newline at end of file diff --git a/obj/item/gibtonite.html b/obj/item/gibtonite.html new file mode 100644 index 0000000000000..043fdb4790baa --- /dev/null +++ b/obj/item/gibtonite.html @@ -0,0 +1 @@ +/obj/item/gibtonite - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gibtonite

Vars

attacherwho attached the rig to us
det_timehow long does it take for this to detonate
det_timerthe timer
primedif the gibtonite is currently primed for explosion
qualityHow pure this gibtonite is, determines the explosion produced by it and is derived from the det_time of the rock wall it was taken from, higher value = better
rigthe assembly rig
rig_overlaythe rig overlay

Procs

defuseStop the reaction and reduce ore explosive power

Var Details

attacher

who attached the rig to us

det_time

how long does it take for this to detonate

det_timer

the timer

primed

if the gibtonite is currently primed for explosion

quality

How pure this gibtonite is, determines the explosion produced by it and is derived from the det_time of the rock wall it was taken from, higher value = better

rig

the assembly rig

rig_overlay

the rig overlay

Proc Details

defuse

Stop the reaction and reduce ore explosive power

\ No newline at end of file diff --git a/obj/item/gibtonite_hand.html b/obj/item/gibtonite_hand.html new file mode 100644 index 0000000000000..faad00f94e804 --- /dev/null +++ b/obj/item/gibtonite_hand.html @@ -0,0 +1 @@ +/obj/item/gibtonite_hand - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gibtonite_hand

Lets you hold a gibtonite ore in one hand and shoot it like a gun

Vars

held_gibtoniteThe bomb we're going to throw

Procs

release_gibtoniteCalled when you can't hold it in any longer and just drop it on the ground

Var Details

held_gibtonite

The bomb we're going to throw

Proc Details

release_gibtonite

Called when you can't hold it in any longer and just drop it on the ground

\ No newline at end of file diff --git a/obj/item/gift.html b/obj/item/gift.html new file mode 100644 index 0000000000000..4bd7ea3b99b5b --- /dev/null +++ b/obj/item/gift.html @@ -0,0 +1 @@ +/obj/item/gift - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gift

Gifts to give to players, will contain a nice toy or other fun item for them to play with.

Vars

contains_typeWhat type of thing are we guaranteed to spawn in with?

Var Details

contains_type

What type of thing are we guaranteed to spawn in with?

\ No newline at end of file diff --git a/obj/item/glassblowing.html b/obj/item/glassblowing.html new file mode 100644 index 0000000000000..6f6c890aef30e --- /dev/null +++ b/obj/item/glassblowing.html @@ -0,0 +1,7 @@ +/obj/item/glassblowing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

glassblowing

Procs

get_examine_messageCreate the examine message and return it.

Proc Details

get_examine_message

Create the examine message and return it.

+

This will include all the remaining steps and whether the glass has cooled down or not.

+

Arguments:

+
    +
  • obj/item/glassblowing/molten_glass/glass - the glass object being examined
  • +
+

Returns the examine message.

\ No newline at end of file diff --git a/obj/item/glassblowing/blowing_rod.html b/obj/item/glassblowing/blowing_rod.html new file mode 100644 index 0000000000000..dd15098cbcb52 --- /dev/null +++ b/obj/item/glassblowing/blowing_rod.html @@ -0,0 +1,47 @@ +/obj/item/glassblowing/blowing_rod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

blowing_rod

Vars

glass_refA ref to the glass item being blown
in_useWhether the rod is in use currently; will try to prevent many other actions on it

Procs

check_finishedChecks if the glass is ready to craft into its chosen item.
check_valid_tableCheck if there is a non-flammable table nearby to do the crafting on.
check_valid_toolCheck if user is carrying the proper tool for the step.
create_itemCreates the finished product and delete the glass object used to make it.
do_glass_stepTry to do a glassblowing action.
fail_messageDisplay fail message and reset in_use.
remove_glassRemoves the glass object from the rod.

Var Details

glass_ref

A ref to the glass item being blown

in_use

Whether the rod is in use currently; will try to prevent many other actions on it

Proc Details

check_finished

Checks if the glass is ready to craft into its chosen item.

+

Craft is finished when all steps in steps_remaining are 0.

+

Arguments:

+
    +
  • obj/item/glassblowing/molten_glass/glass - the glass object
  • +
+

Returns TRUE or FALSE.

check_valid_table

Check if there is a non-flammable table nearby to do the crafting on.

+

If the user is a master in the production skill, they can skip tables.

+

Arguments:

+
    +
  • mob/living/user - the mob doing the action
  • +
+

Returns TRUE or FALSE.

check_valid_tool

Check if user is carrying the proper tool for the step.

+

Arguments:

+
    +
  • mob/living/carbon/human/user - the mob doing the action
  • +
  • step_id - the step id of the action being done
  • +
+

We check to see if the user is using the right tool and if they are currently glassblowing with it. +If the correct tool is being used we return the tool. Otherwise we return FALSE

create_item

Creates the finished product and delete the glass object used to make it.

+

Try to put the finished product into the user's hands

+

Arguments:

+
    +
  • mob/user - the user doing the creating
  • +
  • obj/item/glassblowing/molten_glass/glass - the glass object
  • +
+

Returns TRUE or FALSE.

do_glass_step

Try to do a glassblowing action.

+

Checks for a table and valid tool if applicable, and updates the steps_remaining on the glass object.

+

Arguments:

+
    +
  • step_id - the step id e.g. STEP_BLOW
  • +
  • actioning_speed - the speed based on the user's production skill
  • +
  • obj/item/glassblowing/molten_glass/glass - the glass object
  • +

fail_message

Display fail message and reset in_use.

+

Craft is finished when all steps in steps_remaining are 0.

+

Arguments:

+
    +
  • mob/user - mob to display to
  • +
  • message - to display
  • +

remove_glass

Removes the glass object from the rod.

+

Try to put the glass into the user's hands, or on the floor if that fails.

+

Arguments:

+
    +
  • mob/user - the mob doing the removing
  • +
  • obj/item/glassblowing/molten_glass/glass - the glass object
  • +
+

Returns TRUE or FALSE.

\ No newline at end of file diff --git a/obj/item/glassblowing/molten_glass.html b/obj/item/glassblowing/molten_glass.html new file mode 100644 index 0000000000000..977eccab3e1f9 --- /dev/null +++ b/obj/item/glassblowing/molten_glass.html @@ -0,0 +1,5 @@ +/obj/item/glassblowing/molten_glass - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

molten_glass

Vars

chosen_itemthe typepath of the item that will be produced when the required actions are met
is_finishedwhether this glass's chosen item has completed all its steps. So we don't have to keep checking this a million times once it's done.
remaining_heatthe cooldown if its still molten / requires heating up
steps_remainingthe list of steps remaining
total_timethe amount of time this glass will stay heated, updated each time it gets put in the forge based on the user's skill

Procs

try_burn_userTries to burn the user if the glass is still molten hot.

Var Details

chosen_item

the typepath of the item that will be produced when the required actions are met

is_finished

whether this glass's chosen item has completed all its steps. So we don't have to keep checking this a million times once it's done.

remaining_heat

the cooldown if its still molten / requires heating up

steps_remaining

the list of steps remaining

total_time

the amount of time this glass will stay heated, updated each time it gets put in the forge based on the user's skill

Proc Details

try_burn_user

Tries to burn the user if the glass is still molten hot.

+

Arguments:

+
    +
  • mob/living/user - user to burn
  • +
\ No newline at end of file diff --git a/obj/item/goldeneye_key.html b/obj/item/goldeneye_key.html new file mode 100644 index 0000000000000..b3208ffdb5778 --- /dev/null +++ b/obj/item/goldeneye_key.html @@ -0,0 +1 @@ +/obj/item/goldeneye_key - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

goldeneye_key

Vars

extract_nameFlavour text for who's mind is in the key.
goldeneye_tagA unique tag that is used to identify this key.

Var Details

extract_name

Flavour text for who's mind is in the key.

goldeneye_tag

A unique tag that is used to identify this key.

\ No newline at end of file diff --git a/obj/item/golem_shell.html b/obj/item/golem_shell.html new file mode 100644 index 0000000000000..8fb40c74f903e --- /dev/null +++ b/obj/item/golem_shell.html @@ -0,0 +1 @@ +/obj/item/golem_shell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

golem_shell

Vars

required_stacksAmount of minerals you need to feed the shell to wake it up
shell_typeType of shell to create

Var Details

required_stacks

Amount of minerals you need to feed the shell to wake it up

shell_type

Type of shell to create

\ No newline at end of file diff --git a/obj/item/goliath_infuser_hammer.html b/obj/item/goliath_infuser_hammer.html new file mode 100644 index 0000000000000..e390b765c7dcf --- /dev/null +++ b/obj/item/goliath_infuser_hammer.html @@ -0,0 +1 @@ +/obj/item/goliath_infuser_hammer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

goliath_infuser_hammer

Vars

mining_bonus_forceAmount of damage we deal to the mining and boss factions.
tendril_hammer_cdOur cooldown declare for our special knockback hit

Var Details

mining_bonus_force

Amount of damage we deal to the mining and boss factions.

tendril_hammer_cd

Our cooldown declare for our special knockback hit

\ No newline at end of file diff --git a/obj/item/gps.html b/obj/item/gps.html new file mode 100644 index 0000000000000..d753b0845c60e --- /dev/null +++ b/obj/item/gps.html @@ -0,0 +1 @@ +/obj/item/gps - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

gps

Procs

add_gps_componentAdds the GPS component to this item.

Proc Details

add_gps_component

Adds the GPS component to this item.

\ No newline at end of file diff --git a/obj/item/gps/computer/beacon.html b/obj/item/gps/computer/beacon.html new file mode 100644 index 0000000000000..e11cb5c24ba31 --- /dev/null +++ b/obj/item/gps/computer/beacon.html @@ -0,0 +1 @@ +/obj/item/gps/computer/beacon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

beacon

Vars

undeploy_typeWhat this is undeployed back into

Var Details

undeploy_type

What this is undeployed back into

\ No newline at end of file diff --git a/obj/item/graft.html b/obj/item/graft.html new file mode 100644 index 0000000000000..7fdc7ab394eef --- /dev/null +++ b/obj/item/graft.html @@ -0,0 +1 @@ +/obj/item/graft - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

graft

A new subsystem for hydroponics, as a way to share specific traits into plants, as a way to phase out the DNA manipulator.

Vars

enduranceThe endurance stat of the parent seed when the graft was taken.
graft_appearanceDetermines the appearance of the graft. Rudimentary right now so it just picks randomly.
lifespanThe lifespan stat of the parent seed when the graft was taken.
parent_nameThe name of the plant this was taken from.
productionThe production stat of the parent seed when the graft was taken.
stored_traitThe stored trait taken from the parent plant. Defaults to perenial growth.
weed_chanceThe weed_chance stat of the parent seed when the graft was taken.
weed_rateThe weed_rate stat of the parent seed when the graft was taken.
yieldThe yield stat of the parent seed when the graft was taken.

Var Details

endurance

The endurance stat of the parent seed when the graft was taken.

graft_appearance

Determines the appearance of the graft. Rudimentary right now so it just picks randomly.

lifespan

The lifespan stat of the parent seed when the graft was taken.

parent_name

The name of the plant this was taken from.

production

The production stat of the parent seed when the graft was taken.

stored_trait

The stored trait taken from the parent plant. Defaults to perenial growth.

weed_chance

The weed_chance stat of the parent seed when the graft was taken.

weed_rate

The weed_rate stat of the parent seed when the graft was taken.

yield

The yield stat of the parent seed when the graft was taken.

\ No newline at end of file diff --git a/obj/item/grapple_gun.html b/obj/item/grapple_gun.html new file mode 100644 index 0000000000000..0d11bedfc4dc1 --- /dev/null +++ b/obj/item/grapple_gun.html @@ -0,0 +1 @@ +/obj/item/grapple_gun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

grapple_gun

Vars

grapple_timer_idaddtimer id for launching the user
hook_overlayoverlay when the hook is retracted
hookedis the hook retracted
initial_matrixour initial matrix
traits_on_ziplinetraits we apply to the user when being launched
ziplinethe beam we draw
zipline_soundziplining sound
ziplinerour user currently ziplining

Var Details

grapple_timer_id

addtimer id for launching the user

hook_overlay

overlay when the hook is retracted

hooked

is the hook retracted

initial_matrix

our initial matrix

traits_on_zipline

traits we apply to the user when being launched

zipline

the beam we draw

zipline_sound

ziplining sound

zipliner

our user currently ziplining

\ No newline at end of file diff --git a/obj/item/gravity_harness.html b/obj/item/gravity_harness.html new file mode 100644 index 0000000000000..39a3d6779e05c --- /dev/null +++ b/obj/item/gravity_harness.html @@ -0,0 +1 @@ +/obj/item/gravity_harness - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gravity_harness

Vars

cell_cover_openIf the cell cover is open or not
current_cellThe cell that the harness is currently using
gravity_onIf it's manipulating gravity at all.
max_combined_w_classMax combined weight of all items in the storage.
max_itemsMax amount of items in the storage.
max_w_classMax weight class of items in the storage.
modeThe current operating mode
modeswitch_soundDefines sound to be played upon mode switching

Procs

change_modeChanges the mode to target_mode, returns FALSE if the mode cannot be changed
get_status_tab_itemThis outputs the harness's current mode and cell charge to your status tab, so you don't need to examine it every time.
toggle_modeThis cycles the harness's current mode to the next one, likely using the action button. Goes from Off to Anti to Extra, always.

Var Details

cell_cover_open

If the cell cover is open or not

current_cell

The cell that the harness is currently using

gravity_on

If it's manipulating gravity at all.

max_combined_w_class

Max combined weight of all items in the storage.

max_items

Max amount of items in the storage.

max_w_class

Max weight class of items in the storage.

mode

The current operating mode

modeswitch_sound

Defines sound to be played upon mode switching

Proc Details

change_mode

Changes the mode to target_mode, returns FALSE if the mode cannot be changed

get_status_tab_item

This outputs the harness's current mode and cell charge to your status tab, so you don't need to examine it every time.

toggle_mode

This cycles the harness's current mode to the next one, likely using the action button. Goes from Off to Anti to Extra, always.

\ No newline at end of file diff --git a/obj/item/greentext.html b/obj/item/greentext.html new file mode 100644 index 0000000000000..01bb48d065f35 --- /dev/null +++ b/obj/item/greentext.html @@ -0,0 +1 @@ +/obj/item/greentext - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

greentext

Vars

color_altered_mobsEvery person who has touched the greentext, having their colors changed by it.
holderThe current holder of the greentext.
quietBoolean on whether to announce the greentext's destruction to all mobs.
roundend_callbackThe callback at the end of a round to check if the greentext has been completed.

Var Details

color_altered_mobs

Every person who has touched the greentext, having their colors changed by it.

holder

The current holder of the greentext.

quiet

Boolean on whether to announce the greentext's destruction to all mobs.

roundend_callback

The callback at the end of a round to check if the greentext has been completed.

\ No newline at end of file diff --git a/obj/item/grenade.html b/obj/item/grenade.html new file mode 100644 index 0000000000000..7418166b18216 --- /dev/null +++ b/obj/item/grenade.html @@ -0,0 +1,13 @@ +/obj/item/grenade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

grenade

Base class for all grenades.

Vars

activeIs this grenade currently armed?
clumsy_checkUsed in botch_check to determine how a user's clumsiness affects that user's ability to prime a grenade correctly.
det_timeHow long it takes for a grenade to explode after being armed
display_timerWill this state what its det_time is when examined?
dud_flagsBitfields which prevent the grenade from detonating if set. Includes (GRENADE_DUD|GRENADE_USED)
ex_devhow big of a devastation explosion radius on prime
ex_flamehow big of a flame explosion radius on prime
ex_heavyhow big of a heavy explosion radius on prime
ex_lighthow big of a light explosion radius on prime
possible_fuse_timePossible timers that can be assigned for detonation. Values are strings in SECONDS
shrapnel_initializedDid we add the component responsible for spawning shrapnel to this?
shrapnel_radiusthe higher this number, the more projectiles are created as shrapnel
shrapnel_typeif set, will spew out projectiles of this type
stickyWas sticky tape used to make this sticky?
type_clusterIs it a cluster grenade? We don't wanna spam admin logs with these.

Procs

arm_grenadearm_grenade (formerly preprime) refers to when a grenade with a standard time fuze is activated, making it go beepbeepbeep and then detonate a few seconds later. +Grenades with other triggers like remote igniters probably skip this step and go straight to /obj/item/grenade/proc/detonate
botch_checkChecks for various ways to botch priming a grenade.
change_det_timeSets det_time to a number in SECONDS
detonatedetonate (formerly prime) refers to when the grenade actually delivers its payload (whether or not a boom/bang/detonation is involved)
ingredient_detonationSignal sent by someone eating food this is an ingredient in "used_in". Makes the grenade go kerblooey, destroying the food.
on_used_as_ingredientSignal sent by someone putting the grenade in as an ingredient. Registers signals onto what it was put into so it can explode.

Var Details

active

Is this grenade currently armed?

clumsy_check

Used in botch_check to determine how a user's clumsiness affects that user's ability to prime a grenade correctly.

det_time

How long it takes for a grenade to explode after being armed

display_timer

Will this state what its det_time is when examined?

dud_flags

Bitfields which prevent the grenade from detonating if set. Includes (GRENADE_DUD|GRENADE_USED)

ex_dev

how big of a devastation explosion radius on prime

ex_flame

how big of a flame explosion radius on prime

ex_heavy

how big of a heavy explosion radius on prime

ex_light

how big of a light explosion radius on prime

possible_fuse_time

Possible timers that can be assigned for detonation. Values are strings in SECONDS

shrapnel_initialized

Did we add the component responsible for spawning shrapnel to this?

shrapnel_radius

the higher this number, the more projectiles are created as shrapnel

shrapnel_type

if set, will spew out projectiles of this type

sticky

Was sticky tape used to make this sticky?

type_cluster

Is it a cluster grenade? We don't wanna spam admin logs with these.

Proc Details

arm_grenade

arm_grenade (formerly preprime) refers to when a grenade with a standard time fuze is activated, making it go beepbeepbeep and then detonate a few seconds later. +Grenades with other triggers like remote igniters probably skip this step and go straight to /obj/item/grenade/proc/detonate

botch_check

Checks for various ways to botch priming a grenade.

+

Arguments:

+
    +
  • mob/living/carbon/human/user - who is priming our grenade?
  • +

change_det_time

Sets det_time to a number in SECONDS

+

if time is passed as an argument, det_time will be time SECONDS

+

Cycles the duration of the fuse of the grenade det_time based on the options provided in list/possible_fuse_time

detonate

detonate (formerly prime) refers to when the grenade actually delivers its payload (whether or not a boom/bang/detonation is involved)

+

Arguments:

+
    +
  • lanced_by- If this grenade was detonated by an elance, we need to pass that along with the COMSIG_GRENADE_DETONATE signal for pellet clouds
  • +

ingredient_detonation

Signal sent by someone eating food this is an ingredient in "used_in". Makes the grenade go kerblooey, destroying the food.

on_used_as_ingredient

Signal sent by someone putting the grenade in as an ingredient. Registers signals onto what it was put into so it can explode.

\ No newline at end of file diff --git a/obj/item/grenade/c4.html b/obj/item/grenade/c4.html new file mode 100644 index 0000000000000..593957aa1f6ea --- /dev/null +++ b/obj/item/grenade/c4.html @@ -0,0 +1 @@ +/obj/item/grenade/c4 - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

c4

Vars

aim_dirFor directional charges, which cardinal direction is the charge facing?
boom_sizesList of explosion radii (DEV, HEAVY, LIGHT)
directionalDo we do a directional explosion when target is a a dense atom?
directional_arcWhen doing a directional explosion, what arc does the explosion cover
full_damage_on_mobsDo we apply the full force of a heavy ex_act() to mob targets
maximum_timerMaximum timer for c4 charges
minimum_timerMinimum timer for c4 charges
plastic_overlayC4 overlay to put on target
targetWhat the charge is stuck to

Var Details

aim_dir

For directional charges, which cardinal direction is the charge facing?

boom_sizes

List of explosion radii (DEV, HEAVY, LIGHT)

directional

Do we do a directional explosion when target is a a dense atom?

directional_arc

When doing a directional explosion, what arc does the explosion cover

full_damage_on_mobs

Do we apply the full force of a heavy ex_act() to mob targets

maximum_timer

Maximum timer for c4 charges

minimum_timer

Minimum timer for c4 charges

plastic_overlay

C4 overlay to put on target

target

What the charge is stuck to

\ No newline at end of file diff --git a/obj/item/grenade/c4/es8.html b/obj/item/grenade/c4/es8.html new file mode 100644 index 0000000000000..082fc3da74260 --- /dev/null +++ b/obj/item/grenade/c4/es8.html @@ -0,0 +1 @@ +/obj/item/grenade/c4/es8 - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

es8

Vars

objective_weakrefWeakref to user's objective

Var Details

objective_weakref

Weakref to user's objective

\ No newline at end of file diff --git a/obj/item/grenade/c4/ninja.html b/obj/item/grenade/c4/ninja.html new file mode 100644 index 0000000000000..e6488d5614785 --- /dev/null +++ b/obj/item/grenade/c4/ninja.html @@ -0,0 +1,13 @@ +/obj/item/grenade/c4/ninja - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Spider Charge

A unique version of c4 possessed only by the space ninja. Has a stronger blast radius. +Can only be detonated by space ninjas with the bombing objective. Can only be set up where the objective says it can. +When it primes, the space ninja responsible will have their objective set to complete.

Vars

detonation_areaThe only area that the charge is allowed to be planted, and detonated in
detonatorWeakref to the mob that has planted the charge

Procs

check_loccheck_loc
set_detonation_areaset_detonation_area

Var Details

detonation_area

The only area that the charge is allowed to be planted, and detonated in

detonator

Weakref to the mob that has planted the charge

Proc Details

check_loc

check_loc

+

Checks to see if the c4 is in the correct place when being planted.

+

Arguments

+
    +
  • mob/user - The planter of the c4
  • +

set_detonation_area

set_detonation_area

+

Proc used to set the allowed location for charge detonation

+

Arguments

+
    +
  • datum/antagonist/ninja/ninja_antag - The antag datum for the owner of the c4
  • +
\ No newline at end of file diff --git a/obj/item/grenade/chem_grenade.html b/obj/item/grenade/chem_grenade.html new file mode 100644 index 0000000000000..f5289278e06f5 --- /dev/null +++ b/obj/item/grenade/chem_grenade.html @@ -0,0 +1 @@ +/obj/item/grenade/chem_grenade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chem_grenade

Vars

affected_areaThe range that this grenade can splash reagents at if they aren't consumed on detonation.
allowed_containersThe types of reagent containers that can be added to this grenade casing.
banned_containersThe types of reagent containers that can't be added to this grenade casing.
beakersThe set of reagent containers that have been added to this grenade casing.
casedescThe description when examining empty casings.
casing_holder_volumeThe maximum volume of the reagents in the grenade casing.
ignition_tempThe amount of temperature that is added to the reagents on detonation.
landminemodeWhether or not the grenade is currently acting as a landmine. Currently broken and not my current project.
stageWhich stage of construction this grenade is currently at.
threatscaleHow much to scale the reagents by when the grenade detonates. Used by advanced grenades to make them slightly more worthy.

Var Details

affected_area

The range that this grenade can splash reagents at if they aren't consumed on detonation.

allowed_containers

The types of reagent containers that can be added to this grenade casing.

banned_containers

The types of reagent containers that can't be added to this grenade casing.

beakers

The set of reagent containers that have been added to this grenade casing.

casedesc

The description when examining empty casings.

casing_holder_volume

The maximum volume of the reagents in the grenade casing.

ignition_temp

The amount of temperature that is added to the reagents on detonation.

landminemode

Whether or not the grenade is currently acting as a landmine. Currently broken and not my current project.

stage

Which stage of construction this grenade is currently at.

threatscale

How much to scale the reagents by when the grenade detonates. Used by advanced grenades to make them slightly more worthy.

\ No newline at end of file diff --git a/obj/item/grenade/gas_crystal/healium_crystal.html b/obj/item/grenade/gas_crystal/healium_crystal.html new file mode 100644 index 0000000000000..0d4fda6c5a6ac --- /dev/null +++ b/obj/item/grenade/gas_crystal/healium_crystal.html @@ -0,0 +1 @@ +/obj/item/grenade/gas_crystal/healium_crystal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

healium_crystal

Vars

fix_rangeRange of the grenade that will cool down and affect mobs

Var Details

fix_range

Range of the grenade that will cool down and affect mobs

\ No newline at end of file diff --git a/obj/item/grenade/gas_crystal/nitrous_oxide_crystal.html b/obj/item/grenade/gas_crystal/nitrous_oxide_crystal.html new file mode 100644 index 0000000000000..3b72132d3c6c2 --- /dev/null +++ b/obj/item/grenade/gas_crystal/nitrous_oxide_crystal.html @@ -0,0 +1 @@ +/obj/item/grenade/gas_crystal/nitrous_oxide_crystal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nitrous_oxide_crystal

Vars

fill_rangeRange of the grenade air refilling
n2o_gas_amountAmount of n2o gas released (close to the grenade)

Var Details

fill_range

Range of the grenade air refilling

n2o_gas_amount

Amount of n2o gas released (close to the grenade)

\ No newline at end of file diff --git a/obj/item/grenade/gas_crystal/proto_nitrate_crystal.html b/obj/item/grenade/gas_crystal/proto_nitrate_crystal.html new file mode 100644 index 0000000000000..fcdc5e0f27820 --- /dev/null +++ b/obj/item/grenade/gas_crystal/proto_nitrate_crystal.html @@ -0,0 +1 @@ +/obj/item/grenade/gas_crystal/proto_nitrate_crystal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

proto_nitrate_crystal

Vars

n2_gas_amountAmount of Nitrogen gas released (close to the grenade)
o2_gas_amountAmount of Oxygen gas released (close to the grenade)
refill_rangeRange of the grenade air refilling

Var Details

n2_gas_amount

Amount of Nitrogen gas released (close to the grenade)

o2_gas_amount

Amount of Oxygen gas released (close to the grenade)

refill_range

Range of the grenade air refilling

\ No newline at end of file diff --git a/obj/item/grenade/iedcasing.html b/obj/item/grenade/iedcasing.html new file mode 100644 index 0000000000000..a5cf79fca06b5 --- /dev/null +++ b/obj/item/grenade/iedcasing.html @@ -0,0 +1 @@ +/obj/item/grenade/iedcasing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

iedcasing

Vars

activatorOur assembly that when activated causes us to explode
effectsList of effects, the key is a path to compare to and the value is incremented by one everytime theres one that is the same type in our contents
powerExplosive power
spam_cdCooldown to prevent spam

Var Details

activator

Our assembly that when activated causes us to explode

effects

List of effects, the key is a path to compare to and the value is incremented by one everytime theres one that is the same type in our contents

power

Explosive power

spam_cd

Cooldown to prevent spam

\ No newline at end of file diff --git a/obj/item/grenade/mirage.html b/obj/item/grenade/mirage.html new file mode 100644 index 0000000000000..f81d15af79171 --- /dev/null +++ b/obj/item/grenade/mirage.html @@ -0,0 +1 @@ +/obj/item/grenade/mirage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mirage

Vars

throwerMob that threw the grenade.

Var Details

thrower

Mob that threw the grenade.

\ No newline at end of file diff --git a/obj/item/grenade/primer.html b/obj/item/grenade/primer.html new file mode 100644 index 0000000000000..e7d8aeddc181b --- /dev/null +++ b/obj/item/grenade/primer.html @@ -0,0 +1 @@ +/obj/item/grenade/primer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

primer

Vars

shrapnel_typehow many times we need to "rotate" the charge in hand per extra tile of magnitude

Procs

attack_selfhow many times we've "rotated" the charge

Var Details

shrapnel_type

how many times we need to "rotate" the charge in hand per extra tile of magnitude

Proc Details

attack_self

how many times we've "rotated" the charge

\ No newline at end of file diff --git a/obj/item/grenade/smokebomb.html b/obj/item/grenade/smokebomb.html new file mode 100644 index 0000000000000..e894ded3cef6b --- /dev/null +++ b/obj/item/grenade/smokebomb.html @@ -0,0 +1,3 @@ +/obj/item/grenade/smokebomb - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

smokebomb

This is smoke bomb, mezum koman. It is a grenade subtype. All craftmanship is of the highest quality. +It menaces with spikes of iron. On it is a depiction of an assistant. +The assistant is bleeding. The assistant has a painful expression. The assistant is dead.

Vars

bruh_momentIt's extremely important to keep this list up to date. It helps to generate the insightful description of the smokebomb

Procs

InitializeHere we generate the extremely insightful description.
detonateHere we generate some smoke and also damage blobs??? for some reason. Honestly not sure why we do that.

Var Details

bruh_moment

It's extremely important to keep this list up to date. It helps to generate the insightful description of the smokebomb

Proc Details

Initialize

Here we generate the extremely insightful description.

detonate

Here we generate some smoke and also damage blobs??? for some reason. Honestly not sure why we do that.

\ No newline at end of file diff --git a/obj/item/grenade/xen_crystal.html b/obj/item/grenade/xen_crystal.html new file mode 100644 index 0000000000000..b582f4e5fb22f --- /dev/null +++ b/obj/item/grenade/xen_crystal.html @@ -0,0 +1 @@ +/obj/item/grenade/xen_crystal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

xen_crystal

Vars

blacklisted_mobsMobs in this list will not be affected by this grenade.
effect_rangeWhat range do we effect mobs?
factionsThe faction we convert the mobs to

Var Details

blacklisted_mobs

Mobs in this list will not be affected by this grenade.

effect_range

What range do we effect mobs?

factions

The faction we convert the mobs to

\ No newline at end of file diff --git a/obj/item/grown.html b/obj/item/grown.html new file mode 100644 index 0000000000000..b6ad03f928e4a --- /dev/null +++ b/obj/item/grown.html @@ -0,0 +1 @@ +/obj/item/grown - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

grown

Vars

distill_reagentThe reagent this plant distill to. If NULL, it uses a generic fruit_wine reagent and adjusts its variables.
offset_at_initShould we pixel offset ourselves at init? for mapping

Var Details

distill_reagent

The reagent this plant distill to. If NULL, it uses a generic fruit_wine reagent and adjusts its variables.

offset_at_init

Should we pixel offset ourselves at init? for mapping

\ No newline at end of file diff --git a/obj/item/guardian_creator.html b/obj/item/guardian_creator.html new file mode 100644 index 0000000000000..f2d9edf929f51 --- /dev/null +++ b/obj/item/guardian_creator.html @@ -0,0 +1 @@ +/obj/item/guardian_creator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

guardian_creator

An item which grants you your very own soul buddy

Vars

allow_changelingIf true, lings can get guardians from this.
allow_guardianIf true, a dextrous guardian can get their own guardian, infinite chain!
allow_multipleIf true, you can have multiple guardians at the same time.
failure_messageFailure message if no ghost picks the holopara.
ling_failureFailure message if we don't allow lings.
mob_nameThe name of the guardian, for UI/message stuff.
possible_guardiansList of all the guardians this type can spawn.
randomIf true, you are given a random guardian rather than picking from a selection.
success_messageMessage sent if we successfully get a guardian.
themeThe visuals we give to the guardian we spawn.
use_messageMessage sent when you use it.
usedAre we used or in the process of being used? If yes, then we can't be used.
used_messageMessage sent when it's already used.

Procs

check_menuChecks to ensure we're still capable of using the radial selector
spawn_guardianBloodsuckers spawning a Guardian will get the Bloodsucker one instead.

Var Details

allow_changeling

If true, lings can get guardians from this.

allow_guardian

If true, a dextrous guardian can get their own guardian, infinite chain!

allow_multiple

If true, you can have multiple guardians at the same time.

failure_message

Failure message if no ghost picks the holopara.

ling_failure

Failure message if we don't allow lings.

mob_name

The name of the guardian, for UI/message stuff.

possible_guardians

List of all the guardians this type can spawn.

random

If true, you are given a random guardian rather than picking from a selection.

success_message

Message sent if we successfully get a guardian.

theme

The visuals we give to the guardian we spawn.

use_message

Message sent when you use it.

used

Are we used or in the process of being used? If yes, then we can't be used.

used_message

Message sent when it's already used.

Proc Details

check_menu

Checks to ensure we're still capable of using the radial selector

spawn_guardian

Bloodsuckers spawning a Guardian will get the Bloodsucker one instead.

\ No newline at end of file diff --git a/obj/item/gun.html b/obj/item/gun.html new file mode 100644 index 0000000000000..22c6551eaba57 --- /dev/null +++ b/obj/item/gun.html @@ -0,0 +1,5 @@ +/obj/item/gun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gun

Vars

can_hold_upCan we hold up our target with this? Default to yes
flip_cooldownCooldown for the visible message sent from gun flipping.
pinlessTrue if a gun dosen't need a pin, mostly used for abstract guns like tentacles and meathooks
projectile_damage_multiplierJust 'slightly' snowflakey way to modify projectile damage for projectiles fired from this gun.
projectile_wound_bonusEven snowflakier way to modify projectile wounding bonus/potential for projectiles fired from this gun.
recoilwhether a gun can be unsuppressed. for ballistics, also determines if it generates a suppressor overlay

Procs

add_bayonet_pointSimilarly to add_seclight_point(), handles the bayonet attachment component
add_seclight_pointHandles adding the seclite mount component to the gun. +If the gun shouldn't have a seclight mount, override this with a return. +Or, if a child of a gun with a seclite mount has slightly different behavior or icons, extend this.
clear_suppressorClears var and updates icon. In the case of ballistic weapons, also updates the gun's weight.
give_gun_safetiesProc that is overridden in /gun/ballistic and /gun/energy to attach the gun safety component to a gun
give_manufacturer_examineAdds the gun manufacturer examine component to the gun on subtypes, does nothing by default
process_firereturns true if the gun successfully fires

Var Details

can_hold_up

Can we hold up our target with this? Default to yes

flip_cooldown

Cooldown for the visible message sent from gun flipping.

pinless

True if a gun dosen't need a pin, mostly used for abstract guns like tentacles and meathooks

projectile_damage_multiplier

Just 'slightly' snowflakey way to modify projectile damage for projectiles fired from this gun.

projectile_wound_bonus

Even snowflakier way to modify projectile wounding bonus/potential for projectiles fired from this gun.

recoil

whether a gun can be unsuppressed. for ballistics, also determines if it generates a suppressor overlay

Proc Details

add_bayonet_point

Similarly to add_seclight_point(), handles the bayonet attachment component

add_seclight_point

Handles adding the seclite mount component to the gun. +If the gun shouldn't have a seclight mount, override this with a return. +Or, if a child of a gun with a seclite mount has slightly different behavior or icons, extend this.

clear_suppressor

Clears var and updates icon. In the case of ballistic weapons, also updates the gun's weight.

give_gun_safeties

Proc that is overridden in /gun/ballistic and /gun/energy to attach the gun safety component to a gun

give_manufacturer_examine

Adds the gun manufacturer examine component to the gun on subtypes, does nothing by default

process_fire

returns true if the gun successfully fires

\ No newline at end of file diff --git a/obj/item/gun/ballistic.html b/obj/item/gun/ballistic.html new file mode 100644 index 0000000000000..8e37f22abafd8 --- /dev/null +++ b/obj/item/gun/ballistic.html @@ -0,0 +1,22 @@ +/obj/item/gun/ballistic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ballistic

Subtype for any kind of ballistic gun +This has a shitload of vars on it, and I'm sorry for that, but it does make making new subtypes really easy

Vars

accepted_magazine_typeWhat type (includes subtypes) of magazine will this gun accept being put into it
alt_icon_stateWhat the icon state is for the on-back guns
alt_iconsDoes this gun have mag and nomag on mob variance?
alternative_ammo_misfiresIf only our alternative ammuntion misfires and not our main ammunition, we set this to TRUE
alternative_caliberour alternative ammo type.
alternative_fire_soundour alternative fire sound, in case we want our gun to be louder or quieter or whatever
bolt_drop_soundsound of dropping the bolt or releasing a slide
bolt_drop_sound_volumevolume of bolt drop/slide release
bolt_lockedUsed for locking bolt and open bolt guns. Set a bit differently for the two but prevents firing when true for both.
bolt_typeThe bolt type controls how the gun functions, and what iconstates you'll need to represent those functions. +BOLT_TYPE_STANDARD - The Slide doesn't lock back. Clicking on it will only cycle the bolt. Only 1 sprite. +BOLT_TYPE_OPEN - Same as standard, but it fires directly from the magazine - No need to rack. Doesn't hold the bullet when you drop the mag. +BOLT_TYPE_LOCKING - This is most handguns and bolt action rifles. The bolt will lock back when it's empty. You need yourgun_bolt and yourgun_bolt_locked icon states. +BOLT_TYPE_NO_BOLT - This is shotguns and revolvers. clicking will dump out all the bullets in the gun, spent or not. +see combat.dm defines for bolt types: BOLT_TYPE_STANDARD; BOLT_TYPE_LOCKING; BOLT_TYPE_OPEN; BOLT_TYPE_NO_BOLT
bolt_wordingPhrasing of the bolt in examine and notification messages; ex: bolt, slide, etc.
box_reload_delayreload penalty inflicted by using an ammo box instead of an individual cartridge, if not outright exchanging the magazine
box_reload_penaltyif this gun has a penalty for reloading with an ammo_box type
burst_fire_selectionFire Selector Variables /// +Tracks the firemode of burst weapons. TRUE means it is in burst mode.
can_be_sawn_offWhether the gun can be sawn off by sawing tools
can_misfireMisfire Variables /// +Whether our ammo misfires now or when it's set by the wrench_act. TRUE means it misfires.
can_modify_ammoCan we modify our ammo type in this gun's internal magazine?
cartridge_wordingPhrasing of the cartridge in examine and notification messages; ex: bullet, shell, dart, etc.
casing_ejectorwhether the gun ejects the chambered casing
click_on_low_ammoWhether our gun clicks when it approaches an empty magazine/chamber
eject_empty_soundsound of ejecting an empty magazine
eject_soundSound of ejecting a magazine
eject_sound_varywhether eject sound should vary
eject_sound_volumevolume of ejecting a magazine
empty_alarmWhether the gun alarms when empty or not.
empty_alarm_soundempty alarm sound (if enabled)
empty_alarm_varywhether empty alarm sound varies
empty_alarm_volumeempty alarm volume sound
empty_indicatorWhether the sprite has a visible indicator for being empty or not.
hidden_chamberedpixel offset for the suppressor overlay on the y axis. +Check if you are able to see if a weapon has a bullet loaded in or not.
initial_caliberour initial ammo type. Should match initial caliber, but a bit of redundency doesn't hurt.
initial_fire_soundour initial fire sound. same reasons for initial caliber
internal_magazineWhether the gun has an internal magazine or a detatchable one. Overridden by BOLT_TYPE_NO_BOLT.
load_empty_soundsound when inserting an empty magazine
load_soundsound when inserting magazine
load_sound_varywhether loading sound should vary
load_sound_volumevolume of loading sound
lock_back_soundsound of when the bolt is locked back manually
lock_back_sound_varywhether lock back varies
lock_back_sound_volumevolume of lock back
mag_displayWhether the sprite has a visible magazine or not
mag_display_ammoWhether the sprite has a visible ammo display or not
magazineActual magazine currently contained within the gun
magazine_wordingPhrasing of the magazine in examine and notification messages; ex: magazine, box, etx
misfire_percentage_incrementHow much does shooting the gun increment the misfire probability?
misfire_probabilityHow likely is our gun to misfire?
misfire_probability_capWhat is the cap on our misfire probability? Do not set this to 100.
must_hold_to_loadWhether we need to hold the gun in our off-hand to load it. FALSE means we can load it literally anywhere. Important for weapons like bows.
rack_delaylength between individual racks
rack_soundsound of racking
rack_sound_varywhether racking sound should vary
rack_sound_volumevolume of racking
recent_racktime of the most recent rack, used for cooldown purposes
reload_timeHow long it takes to reload a magazine.
selector_switch_iconIf it has an icon for a selector switch indicating current firemode.
semi_autoHides the bolt icon. +Whether the gun has to be racked each shot or not.
spawn_magazine_typeChange this if the gun should spawn with a different magazine type to what accepted_magazine_type defines. Will create errors if not a type or subtype of accepted magazine.
spawnwithmagazineWhether the gun will spawn loaded with a magazine
special_magsWhether the gun supports multiple special mag types
suppressor_y_offsetpixel offset for the suppressor overlay on the x axis.
tac_reloadsWhether the gun can be tacloaded by slapping a fresh magazine directly on it

Procs

add_notes_ballisticOutputs type-specific weapon stats for ballistic weaponry based on its magazine and its caliber. +It contains extra breaks for the sake of presentation
blow_upused for sawing guns, causes the gun to fire without the input of the user
chamber_roundUsed to chamber a new round and eject the old one
drop_boltDrops the bolt from a locked position
get_ammoGets the number of bullets in the gun
get_ammo_listgets a list of every bullet in the gun
handle_box_reloadReloading with ammo box can incur penalty with some guns
postfire_empty_checkspostfire empty checks for bolt locking and sound alarms
prefire_empty_checksPrefire empty checks for the bolt drop
rackupdates a bunch of racking related stuff and also handles the sound effects and the like
sawoffHandles all the logic of sawing off guns,

Var Details

accepted_magazine_type

What type (includes subtypes) of magazine will this gun accept being put into it

alt_icon_state

What the icon state is for the on-back guns

alt_icons

Does this gun have mag and nomag on mob variance?

alternative_ammo_misfires

If only our alternative ammuntion misfires and not our main ammunition, we set this to TRUE

alternative_caliber

our alternative ammo type.

alternative_fire_sound

our alternative fire sound, in case we want our gun to be louder or quieter or whatever

bolt_drop_sound

sound of dropping the bolt or releasing a slide

bolt_drop_sound_volume

volume of bolt drop/slide release

bolt_locked

Used for locking bolt and open bolt guns. Set a bit differently for the two but prevents firing when true for both.

bolt_type

The bolt type controls how the gun functions, and what iconstates you'll need to represent those functions. +BOLT_TYPE_STANDARD - The Slide doesn't lock back. Clicking on it will only cycle the bolt. Only 1 sprite. +BOLT_TYPE_OPEN - Same as standard, but it fires directly from the magazine - No need to rack. Doesn't hold the bullet when you drop the mag. +BOLT_TYPE_LOCKING - This is most handguns and bolt action rifles. The bolt will lock back when it's empty. You need yourgun_bolt and yourgun_bolt_locked icon states. +BOLT_TYPE_NO_BOLT - This is shotguns and revolvers. clicking will dump out all the bullets in the gun, spent or not. +see combat.dm defines for bolt types: BOLT_TYPE_STANDARD; BOLT_TYPE_LOCKING; BOLT_TYPE_OPEN; BOLT_TYPE_NO_BOLT

bolt_wording

Phrasing of the bolt in examine and notification messages; ex: bolt, slide, etc.

box_reload_delay

reload penalty inflicted by using an ammo box instead of an individual cartridge, if not outright exchanging the magazine

box_reload_penalty

if this gun has a penalty for reloading with an ammo_box type

burst_fire_selection

Fire Selector Variables /// +Tracks the firemode of burst weapons. TRUE means it is in burst mode.

can_be_sawn_off

Whether the gun can be sawn off by sawing tools

can_misfire

Misfire Variables /// +Whether our ammo misfires now or when it's set by the wrench_act. TRUE means it misfires.

can_modify_ammo

Can we modify our ammo type in this gun's internal magazine?

cartridge_wording

Phrasing of the cartridge in examine and notification messages; ex: bullet, shell, dart, etc.

casing_ejector

whether the gun ejects the chambered casing

click_on_low_ammo

Whether our gun clicks when it approaches an empty magazine/chamber

eject_empty_sound

sound of ejecting an empty magazine

eject_sound

Sound of ejecting a magazine

eject_sound_vary

whether eject sound should vary

eject_sound_volume

volume of ejecting a magazine

empty_alarm

Whether the gun alarms when empty or not.

empty_alarm_sound

empty alarm sound (if enabled)

empty_alarm_vary

whether empty alarm sound varies

empty_alarm_volume

empty alarm volume sound

empty_indicator

Whether the sprite has a visible indicator for being empty or not.

hidden_chambered

pixel offset for the suppressor overlay on the y axis. +Check if you are able to see if a weapon has a bullet loaded in or not.

initial_caliber

our initial ammo type. Should match initial caliber, but a bit of redundency doesn't hurt.

initial_fire_sound

our initial fire sound. same reasons for initial caliber

internal_magazine

Whether the gun has an internal magazine or a detatchable one. Overridden by BOLT_TYPE_NO_BOLT.

load_empty_sound

sound when inserting an empty magazine

load_sound

sound when inserting magazine

load_sound_vary

whether loading sound should vary

load_sound_volume

volume of loading sound

lock_back_sound

sound of when the bolt is locked back manually

lock_back_sound_vary

whether lock back varies

lock_back_sound_volume

volume of lock back

mag_display

Whether the sprite has a visible magazine or not

mag_display_ammo

Whether the sprite has a visible ammo display or not

magazine

Actual magazine currently contained within the gun

magazine_wording

Phrasing of the magazine in examine and notification messages; ex: magazine, box, etx

misfire_percentage_increment

How much does shooting the gun increment the misfire probability?

misfire_probability

How likely is our gun to misfire?

misfire_probability_cap

What is the cap on our misfire probability? Do not set this to 100.

must_hold_to_load

Whether we need to hold the gun in our off-hand to load it. FALSE means we can load it literally anywhere. Important for weapons like bows.

rack_delay

length between individual racks

rack_sound

sound of racking

rack_sound_vary

whether racking sound should vary

rack_sound_volume

volume of racking

recent_rack

time of the most recent rack, used for cooldown purposes

reload_time

How long it takes to reload a magazine.

selector_switch_icon

If it has an icon for a selector switch indicating current firemode.

semi_auto

Hides the bolt icon. +Whether the gun has to be racked each shot or not.

spawn_magazine_type

Change this if the gun should spawn with a different magazine type to what accepted_magazine_type defines. Will create errors if not a type or subtype of accepted magazine.

spawnwithmagazine

Whether the gun will spawn loaded with a magazine

special_mags

Whether the gun supports multiple special mag types

suppressor_y_offset

pixel offset for the suppressor overlay on the x axis.

tac_reloads

Whether the gun can be tacloaded by slapping a fresh magazine directly on it

Proc Details

add_notes_ballistic

Outputs type-specific weapon stats for ballistic weaponry based on its magazine and its caliber. +It contains extra breaks for the sake of presentation

blow_up

used for sawing guns, causes the gun to fire without the input of the user

chamber_round

Used to chamber a new round and eject the old one

drop_bolt

Drops the bolt from a locked position

get_ammo

Gets the number of bullets in the gun

get_ammo_list

gets a list of every bullet in the gun

handle_box_reload

Reloading with ammo box can incur penalty with some guns

postfire_empty_checks

postfire empty checks for bolt locking and sound alarms

prefire_empty_checks

Prefire empty checks for the bolt drop

rack

updates a bunch of racking related stuff and also handles the sound effects and the like

sawoff

Handles all the logic of sawing off guns,

\ No newline at end of file diff --git a/obj/item/gun/ballistic/automatic/ar/modular/m44a/grenadelauncher.html b/obj/item/gun/ballistic/automatic/ar/modular/m44a/grenadelauncher.html new file mode 100644 index 0000000000000..e66f26eda3741 --- /dev/null +++ b/obj/item/gun/ballistic/automatic/ar/modular/m44a/grenadelauncher.html @@ -0,0 +1 @@ +/obj/item/gun/ballistic/automatic/ar/modular/m44a/grenadelauncher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

grenadelauncher

Vars

underbarrelUnderbarrel grenade launcher reference

Var Details

underbarrel

Underbarrel grenade launcher reference

\ No newline at end of file diff --git a/obj/item/gun/ballistic/automatic/ar/modular/m44a/shotgun.html b/obj/item/gun/ballistic/automatic/ar/modular/m44a/shotgun.html new file mode 100644 index 0000000000000..5f2ad3142d45f --- /dev/null +++ b/obj/item/gun/ballistic/automatic/ar/modular/m44a/shotgun.html @@ -0,0 +1 @@ +/obj/item/gun/ballistic/automatic/ar/modular/m44a/shotgun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shotgun

Vars

underbarrelReference to the underbarrel shotgun

Var Details

underbarrel

Reference to the underbarrel shotgun

\ No newline at end of file diff --git a/obj/item/gun/ballistic/automatic/rom_flech.html b/obj/item/gun/ballistic/automatic/rom_flech.html new file mode 100644 index 0000000000000..7978b5f03b5a4 --- /dev/null +++ b/obj/item/gun/ballistic/automatic/rom_flech.html @@ -0,0 +1 @@ +/obj/item/gun/ballistic/automatic/rom_flech - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rom_flech

Vars

foldedis our stock collapsed?
folded_recoilDo we have any recoil if it's folded?
folded_spreadwhat's our spread with a folded stock (see above comment)?
one_handed_alwaysShuld this gun be one handed anyway?
toggle_timehow long does it take to extend/collapse the stock
unfolded_recoilDo we lose any recoil when it's not?
unfolded_spreadwhat's our spread with our extended stock (mild varedit compatibility I Guess)?

Var Details

folded

is our stock collapsed?

folded_recoil

Do we have any recoil if it's folded?

folded_spread

what's our spread with a folded stock (see above comment)?

one_handed_always

Shuld this gun be one handed anyway?

toggle_time

how long does it take to extend/collapse the stock

unfolded_recoil

Do we lose any recoil when it's not?

unfolded_spread

what's our spread with our extended stock (mild varedit compatibility I Guess)?

\ No newline at end of file diff --git a/obj/item/gun/ballistic/automatic/rom_smg.html b/obj/item/gun/ballistic/automatic/rom_smg.html new file mode 100644 index 0000000000000..8b878d61dc85f --- /dev/null +++ b/obj/item/gun/ballistic/automatic/rom_smg.html @@ -0,0 +1 @@ +/obj/item/gun/ballistic/automatic/rom_smg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

rom_smg

Procs

give_autofireSeparate proc for handling auto fire just because one of these subtypes isn't otomatica

Proc Details

give_autofire

Separate proc for handling auto fire just because one of these subtypes isn't otomatica

\ No newline at end of file diff --git a/obj/item/gun/ballistic/automatic/smart_machine_gun.html b/obj/item/gun/ballistic/automatic/smart_machine_gun.html new file mode 100644 index 0000000000000..c78b070b100db --- /dev/null +++ b/obj/item/gun/ballistic/automatic/smart_machine_gun.html @@ -0,0 +1 @@ +/obj/item/gun/ballistic/automatic/smart_machine_gun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

smart_machine_gun

Vars

cover_openIf the gun's dustcover is open or not
iff_factionsFactions that the gun cannot shoot under any circumstances

Var Details

cover_open

If the gun's dustcover is open or not

iff_factions

Factions that the gun cannot shoot under any circumstances

\ No newline at end of file diff --git a/obj/item/gun/ballistic/automatic/smartgun.html b/obj/item/gun/ballistic/automatic/smartgun.html new file mode 100644 index 0000000000000..569df1ed5db89 --- /dev/null +++ b/obj/item/gun/ballistic/automatic/smartgun.html @@ -0,0 +1 @@ +/obj/item/gun/ballistic/automatic/smartgun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

smartgun

Vars

firing_sound_listList of the possible firing sounds

Var Details

firing_sound_list

List of the possible firing sounds

\ No newline at end of file diff --git a/obj/item/gun/ballistic/automatic/sol_grenade_launcher.html b/obj/item/gun/ballistic/automatic/sol_grenade_launcher.html new file mode 100644 index 0000000000000..747e087e71b6e --- /dev/null +++ b/obj/item/gun/ballistic/automatic/sol_grenade_launcher.html @@ -0,0 +1 @@ +/obj/item/gun/ballistic/automatic/sol_grenade_launcher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sol_grenade_launcher

Vars

maximum_target_rangeThe maximum range we can set grenades to detonate at, just to be safe
target_rangeThe currently stored range to detonate shells at

Var Details

maximum_target_range

The maximum range we can set grenades to detonate at, just to be safe

target_range

The currently stored range to detonate shells at

\ No newline at end of file diff --git a/obj/item/gun/ballistic/automatic/sol_rifle.html b/obj/item/gun/ballistic/automatic/sol_rifle.html new file mode 100644 index 0000000000000..6717cc8691586 --- /dev/null +++ b/obj/item/gun/ballistic/automatic/sol_rifle.html @@ -0,0 +1 @@ +/obj/item/gun/ballistic/automatic/sol_rifle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

sol_rifle

Procs

give_autofireSeparate proc for handling auto fire just because one of these subtypes isn't otomatica

Proc Details

give_autofire

Separate proc for handling auto fire just because one of these subtypes isn't otomatica

\ No newline at end of file diff --git a/obj/item/gun/ballistic/automatic/tommygun.html b/obj/item/gun/ballistic/automatic/tommygun.html new file mode 100644 index 0000000000000..414482870d220 --- /dev/null +++ b/obj/item/gun/ballistic/automatic/tommygun.html @@ -0,0 +1 @@ +/obj/item/gun/ballistic/automatic/tommygun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tommygun

Vars

rofRate of fire, set on initialize only

Var Details

rof

Rate of fire, set on initialize only

\ No newline at end of file diff --git a/obj/item/gun/ballistic/bow.html b/obj/item/gun/ballistic/bow.html new file mode 100644 index 0000000000000..6aba6e8b996eb --- /dev/null +++ b/obj/item/gun/ballistic/bow.html @@ -0,0 +1 @@ +/obj/item/gun/ballistic/bow - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bow

Vars

drawnwhether the bow is drawn back

Var Details

drawn

whether the bow is drawn back

\ No newline at end of file diff --git a/obj/item/gun/ballistic/bow/clockwork.html b/obj/item/gun/ballistic/bow/clockwork.html new file mode 100644 index 0000000000000..df926b8086920 --- /dev/null +++ b/obj/item/gun/ballistic/bow/clockwork.html @@ -0,0 +1 @@ +/obj/item/gun/ballistic/bow/clockwork - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

clockwork

Vars

effect_turf_typecacheTypecache of valid turfs to have the weapon's special effect on
recharge_timeTime between bolt recharges

Procs

recharge_boltRecharges a bolt, done after the delay in shoot_live_shot

Var Details

effect_turf_typecache

Typecache of valid turfs to have the weapon's special effect on

recharge_time

Time between bolt recharges

Proc Details

recharge_bolt

Recharges a bolt, done after the delay in shoot_live_shot

\ No newline at end of file diff --git a/obj/item/gun/ballistic/revolver/chaplain.html b/obj/item/gun/ballistic/revolver/chaplain.html new file mode 100644 index 0000000000000..7e1208fbc24e5 --- /dev/null +++ b/obj/item/gun/ballistic/revolver/chaplain.html @@ -0,0 +1 @@ +/obj/item/gun/ballistic/revolver/chaplain - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chaplain

Vars

needs_burdenNeeds burden level nine to refill.
possible_namesList of all possible names and descriptions.

Var Details

needs_burden

Needs burden level nine to refill.

possible_names

List of all possible names and descriptions.

\ No newline at end of file diff --git a/obj/item/gun/ballistic/rocketlauncher.html b/obj/item/gun/ballistic/rocketlauncher.html new file mode 100644 index 0000000000000..42ca512bcc72f --- /dev/null +++ b/obj/item/gun/ballistic/rocketlauncher.html @@ -0,0 +1 @@ +/obj/item/gun/ballistic/rocketlauncher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rocketlauncher

Vars

backblastDo we shit flames behind us when we fire?

Var Details

backblast

Do we shit flames behind us when we fire?

\ No newline at end of file diff --git a/obj/item/gun/ballistic/shotgun/automatic/dual_tube.html b/obj/item/gun/ballistic/shotgun/automatic/dual_tube.html new file mode 100644 index 0000000000000..3c277a5449783 --- /dev/null +++ b/obj/item/gun/ballistic/shotgun/automatic/dual_tube.html @@ -0,0 +1 @@ +/obj/item/gun/ballistic/shotgun/automatic/dual_tube - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dual_tube

Vars

alt_mag_typeIf defined, the secondary tube is this type, if you want different shell loads
alternate_magazineThe B tube
toggledIf TRUE, we're drawing from the alternate_magazine

Var Details

alt_mag_type

If defined, the secondary tube is this type, if you want different shell loads

alternate_magazine

The B tube

toggled

If TRUE, we're drawing from the alternate_magazine

\ No newline at end of file diff --git a/obj/item/gun/ballistic/shotgun/bulldog.html b/obj/item/gun/ballistic/shotgun/bulldog.html new file mode 100644 index 0000000000000..f9b412a6fda7d --- /dev/null +++ b/obj/item/gun/ballistic/shotgun/bulldog.html @@ -0,0 +1 @@ +/obj/item/gun/ballistic/shotgun/bulldog - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bulldog

Vars

secondary_magazineThe secondary magazine
secondary_magazine_typeThe type of secondary magazine for the bulldog

Var Details

secondary_magazine

The secondary magazine

secondary_magazine_type

The type of secondary magazine for the bulldog

\ No newline at end of file diff --git a/obj/item/gun/blastcannon.html b/obj/item/gun/blastcannon.html new file mode 100644 index 0000000000000..e6fccc546040f --- /dev/null +++ b/obj/item/gun/blastcannon.html @@ -0,0 +1,43 @@ +/obj/item/gun/blastcannon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

blastcannon

A gun that consumes a TTV to shoot an projectile with equivalent power.

+

It's basically an immovable rod launcher.

Vars

bombThe TTV this contains that will be used to create the projectile
bombcheckWhether you can fire this without a bomb.
cached_firerThe person who opened the valve on the TTV loaded into this.
cached_modifiersThe modifiers from the last click.
cached_targetThe target from the last click.
debug_powerThe range this defaults to without a bomb for debugging and badminry

Procs

channel_blastwaveChannels an internal explosion into a blastwave projectile.
fire_accidentallyHandles firing the blastcannon if it was handed to someone else between opening the valve and the bomb exploding.
fire_blastwavePrepares and fires a blastwave.
fire_debugHandles firing the blastcannon with debug power.
fire_droppedHandles firing the blastcannon if it was dropped on the ground or shoved into a backpack.
fire_intentionallyHandles firing the blastcannon intentionally at a specific target.

Var Details

bomb

The TTV this contains that will be used to create the projectile

bombcheck

Whether you can fire this without a bomb.

cached_firer

The person who opened the valve on the TTV loaded into this.

cached_modifiers

The modifiers from the last click.

cached_target

The target from the last click.

debug_power

The range this defaults to without a bomb for debugging and badminry

Proc Details

channel_blastwave

Channels an internal explosion into a blastwave projectile.

+

Arguments:

+
    +
  • blastwave_data: A list containing all of the data for the blastwave.
  • +

fire_accidentally

Handles firing the blastcannon if it was handed to someone else between opening the valve and the bomb exploding.

+

Arguments:

+
    +
  • holder: The person who happened to be holding the cannon when it went off.
  • +
  • heavy: The devastation range of the blastwave.
  • +
  • medium: The heavy impact range of the blastwave.
  • +
  • light: The light impact range of the blastwave.
  • +

fire_blastwave

Prepares and fires a blastwave.

+

Arguments:

+
    +
  • target: The thing that the blastwave is being fired at.
  • +
  • heavy: The devastation range of the blastwave.
  • +
  • medium: The heavy impact range of the blastwave.
  • +
  • light: The light impact range of the blastwave.
  • +
  • modifiers: Modifiers as a string used while firing this.
  • +
  • spread: How inaccurate the blastwave is.
  • +

fire_debug

Handles firing the blastcannon with debug power.

+

Arguments:

+
    +
  • target: The thing the blastcannon is being fired at.
  • +
  • user: The person firing the blastcannon.
  • +
  • modifiers: A string containing click data.
  • +

fire_dropped

Handles firing the blastcannon if it was dropped on the ground or shoved into a backpack.

+

Arguments:

+
    +
  • heavy: The devastation range of the blastwave.
  • +
  • medium: The heavy impact range of the blastwave.
  • +
  • light: The light impact range of the blastwave.
  • +

fire_intentionally

Handles firing the blastcannon intentionally at a specific target.

+

Arguments:

+
    +
  • firer: The mob who is firing this weapon.
  • +
  • target: The target we are firing the
  • +
  • heavy: The devastation range of the blastwave.
  • +
  • medium: The heavy impact range of the blastwave.
  • +
  • light: The light impact range of the blastwave.
  • +
  • modifiers: The modifier string to use when preparing the blastwave.
  • +
\ No newline at end of file diff --git a/obj/item/gun/energy.html b/obj/item/gun/energy.html new file mode 100644 index 0000000000000..e45ec7bb8b453 --- /dev/null +++ b/obj/item/gun/energy.html @@ -0,0 +1,5 @@ +/obj/item/gun/energy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

energy

Vars

automatic_charge_overlaysDo we handle overlays with base update_icon()?
can_chargeCan it be charged in a recharger?
can_selectIf the user can select the firemode through attack_self.
cellWhat type of power cell this uses
charge_delayThe amount of seconds_per_tick during process() before the gun charges itself
charge_timerThe amount of time between instances of cell self recharge
dead_cellset to true so the gun is given an empty cell
display_emptyShould we give an overlay to empty guns?
modifystateif the weapon has custom icons for individual ammo types it can switch between. ie disabler beams, taser, laser/lethals, ect.
selectThe state of the select fire switch. Determines from the ammo_type list what kind of shot is fired next.
self_charge_amountThe amount restored by the gun to the cell per self charge tick
selfchargeWhether or not our gun charges its own cell on a timer.
shaded_chargeif this gun uses a stateful charge bar for more detail
single_shot_type_overlayIf this gun has a "this is loaded with X" overlay alongside chargebars and such
use_cyborg_cellwhether the gun's cell drains the cyborg user's cell to recharge

Procs

add_notes_energyOutputs type-specific weapon stats for energy-based firearms based on its firing modes +and the stats of those firing modes. Esoteric firing modes like ion are currently not supported +but can be added easily
get_charge_ratioUsed by update_icon_state() and update_overlays()

Var Details

automatic_charge_overlays

Do we handle overlays with base update_icon()?

can_charge

Can it be charged in a recharger?

can_select

If the user can select the firemode through attack_self.

cell

What type of power cell this uses

charge_delay

The amount of seconds_per_tick during process() before the gun charges itself

charge_timer

The amount of time between instances of cell self recharge

dead_cell

set to true so the gun is given an empty cell

display_empty

Should we give an overlay to empty guns?

modifystate

if the weapon has custom icons for individual ammo types it can switch between. ie disabler beams, taser, laser/lethals, ect.

select

The state of the select fire switch. Determines from the ammo_type list what kind of shot is fired next.

self_charge_amount

The amount restored by the gun to the cell per self charge tick

selfcharge

Whether or not our gun charges its own cell on a timer.

shaded_charge

if this gun uses a stateful charge bar for more detail

single_shot_type_overlay

If this gun has a "this is loaded with X" overlay alongside chargebars and such

use_cyborg_cell

whether the gun's cell drains the cyborg user's cell to recharge

Proc Details

add_notes_energy

Outputs type-specific weapon stats for energy-based firearms based on its firing modes +and the stats of those firing modes. Esoteric firing modes like ion are currently not supported +but can be added easily

get_charge_ratio

Used by update_icon_state() and update_overlays()

\ No newline at end of file diff --git a/obj/item/gun/energy/cell_loaded.html b/obj/item/gun/energy/cell_loaded.html new file mode 100644 index 0000000000000..7f223c9cadb07 --- /dev/null +++ b/obj/item/gun/energy/cell_loaded.html @@ -0,0 +1 @@ +/obj/item/gun/energy/cell_loaded - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cell_loaded

Vars

allowed_cellsList containing what cells are allowed to be installed by the gun. This includes all subtypes.
installedcellsA list that contains the currently installed cells.
maxcellsThe maximum amount of cells that a cell loaded gun can hold at once.

Procs

attackbyHandles insertion of weapon cells

Var Details

allowed_cells

List containing what cells are allowed to be installed by the gun. This includes all subtypes.

installedcells

A list that contains the currently installed cells.

maxcells

The maximum amount of cells that a cell loaded gun can hold at once.

Proc Details

attackby

Handles insertion of weapon cells

\ No newline at end of file diff --git a/obj/item/gun/energy/dueling.html b/obj/item/gun/energy/dueling.html new file mode 100644 index 0000000000000..cac31f114c981 --- /dev/null +++ b/obj/item/gun/energy/dueling.html @@ -0,0 +1 @@ +/obj/item/gun/energy/dueling - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

dueling

Procs

check_valid_duelReturn a boolean of whether or not the pistol has a valid duel datum, if false optionally warn the user

Proc Details

check_valid_duel

Return a boolean of whether or not the pistol has a valid duel datum, if false optionally warn the user

\ No newline at end of file diff --git a/obj/item/gun/energy/e_gun/dragnet.html b/obj/item/gun/energy/e_gun/dragnet.html new file mode 100644 index 0000000000000..8cc6fceaf4bf8 --- /dev/null +++ b/obj/item/gun/energy/e_gun/dragnet.html @@ -0,0 +1 @@ +/obj/item/gun/energy/e_gun/dragnet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dragnet

Vars

linked_beaconA dragnet beacon set to be the teleport destination for snare teleport rounds.

Procs

handle_beacon_disableHandles clearing the linked_beacon reference in the event that it is deleted.
link_beaconSets the linked_beacon var on the dragnet, which becomes the snare round's teleport destination.

Var Details

linked_beacon

A dragnet beacon set to be the teleport destination for snare teleport rounds.

Proc Details

handle_beacon_disable

Handles clearing the linked_beacon reference in the event that it is deleted.

Sets the linked_beacon var on the dragnet, which becomes the snare round's teleport destination.

\ No newline at end of file diff --git a/obj/item/gun/energy/laser/chameleon.html b/obj/item/gun/energy/laser/chameleon.html new file mode 100644 index 0000000000000..e219b67683ef6 --- /dev/null +++ b/obj/item/gun/energy/laser/chameleon.html @@ -0,0 +1,11 @@ +/obj/item/gun/energy/laser/chameleon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chameleon

Vars

chameleon_projectile_varsThe vars copied over to our projectile on fire.
real_hitsThe badmin mode. Makes your projectiles act like the real deal.

Procs

reset_chameleon_varsDescription: Resets the currently loaded chameleon variables, essentially resetting it to brand new. +Arguments: []
set_chameleon_ammoDescription: Sets the ammo type our gun should have. +Arguments: obj/item/ammo_casing/cartridge (the ammo_casing we're trying to copy)
set_chameleon_disguiseDescription: Resets our chameleon variables, then resets the entire gun to mimic the given guntype. +Arguments: [guntype (the gun we're copying, pathtyped to obj/item/gun)]
set_chameleon_gunDescription: Sets what gun we should be mimicking. +Arguments: obj/item/gun/gun_to_set (the gun we're trying to mimic)
set_chameleon_projectileDescription: Sets the current projectile variables for our chameleon gun. +Arguments: obj/projectile/template_projectile (the projectile we're trying to copy)

Var Details

chameleon_projectile_vars

The vars copied over to our projectile on fire.

real_hits

The badmin mode. Makes your projectiles act like the real deal.

Proc Details

reset_chameleon_vars

Description: Resets the currently loaded chameleon variables, essentially resetting it to brand new. +Arguments: []

set_chameleon_ammo

Description: Sets the ammo type our gun should have. +Arguments: obj/item/ammo_casing/cartridge (the ammo_casing we're trying to copy)

set_chameleon_disguise

Description: Resets our chameleon variables, then resets the entire gun to mimic the given guntype. +Arguments: [guntype (the gun we're copying, pathtyped to obj/item/gun)]

set_chameleon_gun

Description: Sets what gun we should be mimicking. +Arguments: obj/item/gun/gun_to_set (the gun we're trying to mimic)

set_chameleon_projectile

Description: Sets the current projectile variables for our chameleon gun. +Arguments: obj/projectile/template_projectile (the projectile we're trying to copy)

\ No newline at end of file diff --git a/obj/item/gun/energy/marksman_revolver.html b/obj/item/gun/energy/marksman_revolver.html new file mode 100644 index 0000000000000..16e3bfec05dcd --- /dev/null +++ b/obj/item/gun/energy/marksman_revolver.html @@ -0,0 +1 @@ +/obj/item/gun/energy/marksman_revolver - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

marksman_revolver

Vars

coin_countHow many coins we currently have available
coin_regen_cdThe cooldown for regenning coins
coin_regen_rateHow long it takes to regen a coin
max_coinsHow many coins we can have at a time. Set to 0 for infinite

Var Details

coin_count

How many coins we currently have available

coin_regen_cd

The cooldown for regenning coins

coin_regen_rate

How long it takes to regen a coin

max_coins

How many coins we can have at a time. Set to 0 for infinite

\ No newline at end of file diff --git a/obj/item/gun/energy/modular_laser_rifle.html b/obj/item/gun/energy/modular_laser_rifle.html new file mode 100644 index 0000000000000..d2268da5caf82 --- /dev/null +++ b/obj/item/gun/energy/modular_laser_rifle.html @@ -0,0 +1 @@ +/obj/item/gun/energy/modular_laser_rifle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

modular_laser_rifle

Vars

currently_selected_modeWhat the currently selected weapon mode is, for quickly referencing for use in procs and whatnot
currently_switching_typesIs the gun currently changing types? Prevents the gun from firing if yes
default_selected_modeName of the firing mode that is selected by default
disabled_for_other_reasonsAllows firing of the gun to be disabled for any reason, for example, if a gun has a melee mode
expanded_examine_textWhat is this gun's extended examine, we only have to do this because the carbine is a subtype
last_chargeKeeps track of the last processed charge, prevents message spam
last_speechA cooldown for when the weapon has last spoken, prevents messages from getting turbo spammed
personality_modeIf the gun's personality speech thing is on, defaults to on because just listen to her
radial_menu_dataInfo for the radial menu for switching weapon mode
speech_json_fileThe json file this gun pulls from when speaking
tracked_soulcatcherKeeps track of our soulcatcher component
transition_durationHow long transitioning takes before you're allowed to pick a weapon type
weapon_mode_name_to_pathPopulates with a list of weapon mode names and their respective paths on init
weapon_mode_optionsWhat datums of weapon modes can we use?

Procs

change_to_switch_modeMakes the gun inoperable, playing an animation and giving a prompt to switch gun modes after the transition_duration passes
create_weapon_mode_stuffHandles filling out all of the lists regarding weapon modes and radials around that
show_radial_choice_menuShows the radial choice menu to the user, if the user doesnt exist or isnt holding the gun anymore, it reverts back to its last form
speak_upMakes the gun speak with a sound effect and colored runetext based on the mode the gun is in, reads the gun's speech json as defined through variables
transform_gunTransforms the gun into a different type, if replacing is set to true then it'll make sure to remove any effects the prior gun type had
user_ci_toggledTriggers when a mob user toggles CI

Var Details

currently_selected_mode

What the currently selected weapon mode is, for quickly referencing for use in procs and whatnot

currently_switching_types

Is the gun currently changing types? Prevents the gun from firing if yes

default_selected_mode

Name of the firing mode that is selected by default

disabled_for_other_reasons

Allows firing of the gun to be disabled for any reason, for example, if a gun has a melee mode

expanded_examine_text

What is this gun's extended examine, we only have to do this because the carbine is a subtype

last_charge

Keeps track of the last processed charge, prevents message spam

last_speech

A cooldown for when the weapon has last spoken, prevents messages from getting turbo spammed

personality_mode

If the gun's personality speech thing is on, defaults to on because just listen to her

radial_menu_data

Info for the radial menu for switching weapon mode

speech_json_file

The json file this gun pulls from when speaking

tracked_soulcatcher

Keeps track of our soulcatcher component

transition_duration

How long transitioning takes before you're allowed to pick a weapon type

weapon_mode_name_to_path

Populates with a list of weapon mode names and their respective paths on init

weapon_mode_options

What datums of weapon modes can we use?

Proc Details

change_to_switch_mode

Makes the gun inoperable, playing an animation and giving a prompt to switch gun modes after the transition_duration passes

create_weapon_mode_stuff

Handles filling out all of the lists regarding weapon modes and radials around that

show_radial_choice_menu

Shows the radial choice menu to the user, if the user doesnt exist or isnt holding the gun anymore, it reverts back to its last form

speak_up

Makes the gun speak with a sound effect and colored runetext based on the mode the gun is in, reads the gun's speech json as defined through variables

transform_gun

Transforms the gun into a different type, if replacing is set to true then it'll make sure to remove any effects the prior gun type had

user_ci_toggled

Triggers when a mob user toggles CI

\ No newline at end of file diff --git a/obj/item/gun/energy/recharge.html b/obj/item/gun/energy/recharge.html new file mode 100644 index 0000000000000..8cada822b6735 --- /dev/null +++ b/obj/item/gun/energy/recharge.html @@ -0,0 +1 @@ +/obj/item/gun/energy/recharge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

recharge

Vars

holds_chargeDoes it hold charge when not put away?
no_charge_stateIf set to something, instead of an overlay, sets the icon_state directly.
recharge_soundSound we use when recharged
recharge_timeHow much time we need to recharge
recharge_timeridAn ID for our recharging timer.
unique_frequencyDo we recharge slower with more of our type?

Var Details

holds_charge

Does it hold charge when not put away?

no_charge_state

If set to something, instead of an overlay, sets the icon_state directly.

recharge_sound

Sound we use when recharged

recharge_time

How much time we need to recharge

recharge_timerid

An ID for our recharging timer.

unique_frequency

Do we recharge slower with more of our type?

\ No newline at end of file diff --git a/obj/item/gun/energy/recharge/kinetic_accelerator.html b/obj/item/gun/energy/recharge/kinetic_accelerator.html new file mode 100644 index 0000000000000..f83e9e1339ebe --- /dev/null +++ b/obj/item/gun/energy/recharge/kinetic_accelerator.html @@ -0,0 +1 @@ +/obj/item/gun/energy/recharge/kinetic_accelerator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

kinetic_accelerator

Vars

ignored_mob_typesList of all mobs that projectiles fired from this gun will ignore.
max_mod_capacityThe max capacity of modkits the PKA can have installed at once.
modkitsList of all modkits currently in the kinetic accelerator.

Var Details

ignored_mob_types

List of all mobs that projectiles fired from this gun will ignore.

max_mod_capacity

The max capacity of modkits the PKA can have installed at once.

modkits

List of all modkits currently in the kinetic accelerator.

\ No newline at end of file diff --git a/obj/item/gun/energy/recharge/resonant_system.html b/obj/item/gun/energy/recharge/resonant_system.html new file mode 100644 index 0000000000000..28304f4f3ebaf --- /dev/null +++ b/obj/item/gun/energy/recharge/resonant_system.html @@ -0,0 +1 @@ +/obj/item/gun/energy/recharge/resonant_system - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

resonant_system

Yes. This is a lot of code frankensteining. I am not proud of my work but damned am i proud it works... Atleast if you're seeing this it works.

Vars

adding_failurethe number that is added to the failure_prob, which is the probability of whether it will spread or not
fieldlimitthe number of fields the resonator is allowed to have at once
fieldsthe list of currently active fields from this resonator
modethe mode of the resonator; has three modes: auto (1), manual (2), and matrix (3)
quick_burst_modHow devestating it is in manual mode. Yes, this is all copied from the resonator item

Var Details

adding_failure

the number that is added to the failure_prob, which is the probability of whether it will spread or not

fieldlimit

the number of fields the resonator is allowed to have at once

fields

the list of currently active fields from this resonator

mode

the mode of the resonator; has three modes: auto (1), manual (2), and matrix (3)

quick_burst_mod

How devestating it is in manual mode. Yes, this is all copied from the resonator item

\ No newline at end of file diff --git a/obj/item/gun/magic.html b/obj/item/gun/magic.html new file mode 100644 index 0000000000000..6c14ec69352d0 --- /dev/null +++ b/obj/item/gun/magic.html @@ -0,0 +1,4 @@ +/obj/item/gun/magic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

magic

Vars

can_chargeWhether this wand/staff recharges on its own over time. +(This is not related to the spell "Charge" whatsoever!)
schoolwhat kind of magic is this

Procs

on_magic_chargeSignal proc for COMSIG_ITEM_MAGICALLY_CHARGED

Var Details

can_charge

Whether this wand/staff recharges on its own over time. +(This is not related to the spell "Charge" whatsoever!)

school

what kind of magic is this

Proc Details

on_magic_charge

Signal proc for COMSIG_ITEM_MAGICALLY_CHARGED

+

Adds uses to wands or staffs.

\ No newline at end of file diff --git a/obj/item/gun/magic/midas_hand.html b/obj/item/gun/magic/midas_hand.html new file mode 100644 index 0000000000000..2a7cf544fc5ac --- /dev/null +++ b/obj/item/gun/magic/midas_hand.html @@ -0,0 +1 @@ +/obj/item/gun/magic/midas_hand - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

midas_hand

Vars

gold_suck_rangeThe range that we can suck gold out of people's bodies
gold_timerThe length of the Midas Blight debuff, dependant on the amount of gold reagent we've sucked up.

Procs

check_gold_rangeChecks our range to the person we're sucking gold out of. Double the initial range, so you need to get in close to start.
gold_time_convertConverts our gold_timer to time in seconds, for various ballons/examines
handle_gold_chargesHandles recharging & inserting gold amount

Var Details

gold_suck_range

The range that we can suck gold out of people's bodies

gold_timer

The length of the Midas Blight debuff, dependant on the amount of gold reagent we've sucked up.

Proc Details

check_gold_range

Checks our range to the person we're sucking gold out of. Double the initial range, so you need to get in close to start.

gold_time_convert

Converts our gold_timer to time in seconds, for various ballons/examines

handle_gold_charges

Handles recharging & inserting gold amount

\ No newline at end of file diff --git a/obj/item/gun/magic/staff.html b/obj/item/gun/magic/staff.html new file mode 100644 index 0000000000000..f48ab1d8f4883 --- /dev/null +++ b/obj/item/gun/magic/staff.html @@ -0,0 +1,5 @@ +/obj/item/gun/magic/staff - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

staff

Vars

allow_intruder_useCan non-magic folk use our staff? +If FALSE, only wizards or survivalists can use the staff to its full potential - If TRUE, anyone can

Procs

on_intruder_useCalled when someone who isn't a wizard or magician uses this staff. +Return TRUE to allow usage.

Var Details

allow_intruder_use

Can non-magic folk use our staff? +If FALSE, only wizards or survivalists can use the staff to its full potential - If TRUE, anyone can

Proc Details

on_intruder_use

Called when someone who isn't a wizard or magician uses this staff. +Return TRUE to allow usage.

\ No newline at end of file diff --git a/obj/item/gun/magic/staff/change.html b/obj/item/gun/magic/staff/change.html new file mode 100644 index 0000000000000..aac979ff266ea --- /dev/null +++ b/obj/item/gun/magic/staff/change.html @@ -0,0 +1 @@ +/obj/item/gun/magic/staff/change - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

change

Vars

preset_wabbajack_changeflagIf set, all wabbajacks this staff produces will be of this changeflag, instead of only WABBAJACK
preset_wabbajack_typeIf set, all wabbajacks this staff produces will be of this type, instead of random

Var Details

preset_wabbajack_changeflag

If set, all wabbajacks this staff produces will be of this changeflag, instead of only WABBAJACK

preset_wabbajack_type

If set, all wabbajacks this staff produces will be of this type, instead of random

\ No newline at end of file diff --git a/obj/item/gun/magic/staff/chaos.html b/obj/item/gun/magic/staff/chaos.html new file mode 100644 index 0000000000000..78195099bf292 --- /dev/null +++ b/obj/item/gun/magic/staff/chaos.html @@ -0,0 +1,3 @@ +/obj/item/gun/magic/staff/chaos - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chaos

Vars

allowed_projectile_typesList of all projectiles we can fire from our staff. +Doesn't contain all subtypes of magic projectiles, unlike what it looks like

Var Details

allowed_projectile_types

List of all projectiles we can fire from our staff. +Doesn't contain all subtypes of magic projectiles, unlike what it looks like

\ No newline at end of file diff --git a/obj/item/gun/magic/staff/healing.html b/obj/item/gun/magic/staff/healing.html new file mode 100644 index 0000000000000..5fa58512fe015 --- /dev/null +++ b/obj/item/gun/magic/staff/healing.html @@ -0,0 +1 @@ +/obj/item/gun/magic/staff/healing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

healing

Vars

healing_beamOur internal healbeam, used if an intruder (non-magic person) tries to use our staff

Var Details

healing_beam

Our internal healbeam, used if an intruder (non-magic person) tries to use our staff

\ No newline at end of file diff --git a/obj/item/gun/medbeam.html b/obj/item/gun/medbeam.html new file mode 100644 index 0000000000000..c3c508c7bf5f1 --- /dev/null +++ b/obj/item/gun/medbeam.html @@ -0,0 +1,5 @@ +/obj/item/gun/medbeam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

medbeam

Procs

LoseTargetProc that always is called when we want to end the beam and makes sure things are cleaned up, see beam_died()
beam_diedProc that is only called when the beam fails due to something, so not when manually ended. +manual disconnection = LoseTarget, so it can silently end +automatic disconnection = beam_died, so we can give a warning message first

Proc Details

LoseTarget

Proc that always is called when we want to end the beam and makes sure things are cleaned up, see beam_died()

beam_died

Proc that is only called when the beam fails due to something, so not when manually ended. +manual disconnection = LoseTarget, so it can silently end +automatic disconnection = beam_died, so we can give a warning message first

\ No newline at end of file diff --git a/obj/item/gun/microfusion.html b/obj/item/gun/microfusion.html new file mode 100644 index 0000000000000..20284db79db6b --- /dev/null +++ b/obj/item/gun/microfusion.html @@ -0,0 +1,5 @@ +/obj/item/gun/microfusion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

microfusion

Vars

attachment_recoilRecoil from attachments.
attachment_slotsWhat slots does this gun have?
attachment_spreadSpread from attachments.
attachmentsA list of attached upgrades
base_cell_typeThe cell type we check when inserting a cell
base_fire_delayOur base firedelay.
base_phase_emitter_typeThe base emitter type that we check when putting a new emitter in.
cellWhat type of power cell this uses
cell_typeThe cell we will spawn with
charge_sectionsHow many charge sections do we have?
dead_cellwhether the gun's cell drains the cyborg user's cell to recharge
display_emptyShould we give an overlay to empty guns?
extra_power_usageDo we use more power because of attachments?
heat_dissipation_bonusThe heat dissipation bonus granted by the weapon.
heat_per_shotThe amount of heat produced per shot
microfusion_lensThe microfusion lens used for generating the beams.
modifystateIf the weapon has custom icons for individual ammo types it can switch between. ie disabler beams, taser, laser/lethals, ect.
normal_reload_timeThe time it takes for someone to normally reload this gun. In deciseconds.
phase_emitterThe phase emitter that this gun currently has.
phase_emitter_typeThe starting phase emitter in this weapon.
shaded_chargeif this gun uses a stateful charge bar for more detail
sound_cell_insertThe sound played when you insert a cell.
sound_cell_insert_varyShould the insertion sound played vary?
sound_cell_insert_volumeThe volume at which we will play the insertion sound.
sound_cell_removeThe sound played when you remove a cell.
sound_cell_remove_varyShould the removal sound played vary?
sound_cell_remove_volumeThe volume at which we will play the removal sound.
tactical_reload_timeThe time it takes for someone to (tactically) reload this gun. In deciseconds.

Procs

add_attachmentAttatching an upgrade.
add_notes_energyOutputs type-specific weapon stats for energy-based firearms based on its firing modes +and the stats of those firing modes. Esoteric firing modes like ion are currently not supported +but can be added easily
eject_cellEjecting a cell.
get_charge_ratioUsed by update_icon_state() and update_overlays()
insert_cellTry to insert the cell into the gun, if successful, return TRUE
recalculate_recoilRecalculates the recoil, based on attachment-provided values.
recalculate_spreadRecalculates the spread, based on attachment-provided values.

Var Details

attachment_recoil

Recoil from attachments.

attachment_slots

What slots does this gun have?

attachment_spread

Spread from attachments.

attachments

A list of attached upgrades

base_cell_type

The cell type we check when inserting a cell

base_fire_delay

Our base firedelay.

base_phase_emitter_type

The base emitter type that we check when putting a new emitter in.

cell

What type of power cell this uses

cell_type

The cell we will spawn with

charge_sections

How many charge sections do we have?

dead_cell

whether the gun's cell drains the cyborg user's cell to recharge

display_empty

Should we give an overlay to empty guns?

extra_power_usage

Do we use more power because of attachments?

heat_dissipation_bonus

The heat dissipation bonus granted by the weapon.

heat_per_shot

The amount of heat produced per shot

microfusion_lens

The microfusion lens used for generating the beams.

modifystate

If the weapon has custom icons for individual ammo types it can switch between. ie disabler beams, taser, laser/lethals, ect.

normal_reload_time

The time it takes for someone to normally reload this gun. In deciseconds.

phase_emitter

The phase emitter that this gun currently has.

phase_emitter_type

The starting phase emitter in this weapon.

shaded_charge

if this gun uses a stateful charge bar for more detail

sound_cell_insert

The sound played when you insert a cell.

sound_cell_insert_vary

Should the insertion sound played vary?

sound_cell_insert_volume

The volume at which we will play the insertion sound.

sound_cell_remove

The sound played when you remove a cell.

sound_cell_remove_vary

Should the removal sound played vary?

sound_cell_remove_volume

The volume at which we will play the removal sound.

tactical_reload_time

The time it takes for someone to (tactically) reload this gun. In deciseconds.

Proc Details

add_attachment

Attatching an upgrade.

add_notes_energy

Outputs type-specific weapon stats for energy-based firearms based on its firing modes +and the stats of those firing modes. Esoteric firing modes like ion are currently not supported +but can be added easily

eject_cell

Ejecting a cell.

get_charge_ratio

Used by update_icon_state() and update_overlays()

insert_cell

Try to insert the cell into the gun, if successful, return TRUE

recalculate_recoil

Recalculates the recoil, based on attachment-provided values.

recalculate_spread

Recalculates the spread, based on attachment-provided values.

\ No newline at end of file diff --git a/obj/item/gun/syringe.html b/obj/item/gun/syringe.html new file mode 100644 index 0000000000000..f84014d447258 --- /dev/null +++ b/obj/item/gun/syringe.html @@ -0,0 +1 @@ +/obj/item/gun/syringe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

syringe

Vars

gun_flagsIf it has an overlay for inserted syringes. If true, the overlay is determined by the number of syringes inserted into it.
has_syringe_overlayThe number of syringes it can store.

Var Details

gun_flags

If it has an overlay for inserted syringes. If true, the overlay is determined by the number of syringes inserted into it.

has_syringe_overlay

The number of syringes it can store.

\ No newline at end of file diff --git a/obj/item/hairbrush.html b/obj/item/hairbrush.html new file mode 100644 index 0000000000000..31cef2e420674 --- /dev/null +++ b/obj/item/hairbrush.html @@ -0,0 +1 @@ +/obj/item/hairbrush - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

hairbrush

Procs

brushBrushes someone, giving them a small mood boost

Proc Details

brush

Brushes someone, giving them a small mood boost

\ No newline at end of file diff --git a/obj/item/hairbrush/switchblade.html b/obj/item/hairbrush/switchblade.html new file mode 100644 index 0000000000000..e43db40d4b93a --- /dev/null +++ b/obj/item/hairbrush/switchblade.html @@ -0,0 +1 @@ +/obj/item/hairbrush/switchblade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

switchblade

Procs

attackThis makes it so you have to extend it.
attack_selfThis is called when you transform it

Proc Details

attack

This makes it so you have to extend it.

attack_self

This is called when you transform it

\ No newline at end of file diff --git a/obj/item/hallucinated.html b/obj/item/hallucinated.html new file mode 100644 index 0000000000000..bdf09fd8cedf8 --- /dev/null +++ b/obj/item/hallucinated.html @@ -0,0 +1 @@ +/obj/item/hallucinated - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hallucinated

Vars

parentThe hallucination that created us.

Procs

parent_deletingSignal proc for COMSIG_QDELETING, if our associated hallucination deletes, we should too

Var Details

parent

The hallucination that created us.

Proc Details

parent_deleting

Signal proc for COMSIG_QDELETING, if our associated hallucination deletes, we should too

\ No newline at end of file diff --git a/obj/item/hand_item/circlegame.html b/obj/item/hand_item/circlegame.html new file mode 100644 index 0000000000000..01ec7c2d25aa5 --- /dev/null +++ b/obj/item/hand_item/circlegame.html @@ -0,0 +1 @@ +/obj/item/hand_item/circlegame - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

circlegame

Procs

GOTTEMStage 3B: We face our reckoning (unless we moved away or they're incapacitated)
ownerExaminedStage 1: The mistake is made
selfGottemStage 3A: We face our own failures
waitASecondStage 2: Fear sets in

Proc Details

GOTTEM

Stage 3B: We face our reckoning (unless we moved away or they're incapacitated)

ownerExamined

Stage 1: The mistake is made

selfGottem

Stage 3A: We face our own failures

waitASecond

Stage 2: Fear sets in

\ No newline at end of file diff --git a/obj/item/hand_item/coom.html b/obj/item/hand_item/coom.html new file mode 100644 index 0000000000000..61047004c2650 --- /dev/null +++ b/obj/item/hand_item/coom.html @@ -0,0 +1,3 @@ +/obj/item/hand_item/coom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

coom

Procs

do_masturbateHandles masturbation onto a living mob, or an atom. +Attempts to fill the atom's reagent container, if it has one, and it isn't full.

Proc Details

do_masturbate

Handles masturbation onto a living mob, or an atom. +Attempts to fill the atom's reagent container, if it has one, and it isn't full.

\ No newline at end of file diff --git a/obj/item/hand_item/kisser.html b/obj/item/hand_item/kisser.html new file mode 100644 index 0000000000000..28a026a53ccf1 --- /dev/null +++ b/obj/item/hand_item/kisser.html @@ -0,0 +1 @@ +/obj/item/hand_item/kisser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

kisser

Vars

cheek_kissTRUE if the user was aiming anywhere but the mouth when they offer the kiss, if it's offered
kiss_typeThe kind of projectile this version of the kiss blower fires

Var Details

cheek_kiss

TRUE if the user was aiming anywhere but the mouth when they offer the kiss, if it's offered

kiss_type

The kind of projectile this version of the kiss blower fires

\ No newline at end of file diff --git a/obj/item/hand_item/noogie.html b/obj/item/hand_item/noogie.html new file mode 100644 index 0000000000000..a295557a8fe0c --- /dev/null +++ b/obj/item/hand_item/noogie.html @@ -0,0 +1 @@ +/obj/item/hand_item/noogie - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

noogie

Procs

noogie_loopThe actual meat and bones of the noogie'ing

Proc Details

noogie_loop

The actual meat and bones of the noogie'ing

\ No newline at end of file diff --git a/obj/item/hand_item/self_grasp.html b/obj/item/hand_item/self_grasp.html new file mode 100644 index 0000000000000..4e33beede1ac6 --- /dev/null +++ b/obj/item/hand_item/self_grasp.html @@ -0,0 +1 @@ +/obj/item/hand_item/self_grasp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

self_grasp

an abstract item representing you holding your own limb to staunch the bleeding, see /mob/living/carbon/proc/grabbedby will probably need to find somewhere else to put this.

Vars

grasped_partThe bodypart we're staunching bleeding on, which also has a reference to us in /obj/item/bodypart/var/grasped_by
userThe carbon who owns all of this mess

Procs

grasp_limbWe've already cleared that the bodypart in question is bleeding in the place we create this, so set up the connections
qdel_voidThe limb or the whole damn person we were grasping got deleted or dismembered, so we don't care anymore

Var Details

grasped_part

The bodypart we're staunching bleeding on, which also has a reference to us in /obj/item/bodypart/var/grasped_by

user

The carbon who owns all of this mess

Proc Details

grasp_limb

We've already cleared that the bodypart in question is bleeding in the place we create this, so set up the connections

qdel_void

The limb or the whole damn person we were grasping got deleted or dismembered, so we don't care anymore

\ No newline at end of file diff --git a/obj/item/hand_item/slapper.html b/obj/item/hand_item/slapper.html new file mode 100644 index 0000000000000..6d857e7214066 --- /dev/null +++ b/obj/item/hand_item/slapper.html @@ -0,0 +1 @@ +/obj/item/hand_item/slapper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

slapper

Vars

table_smacks_leftHow many smaller table smacks we can do before we're out

Procs

slam_tableSlam the table, demand some attention
slap_tableSlap the table, get some attention

Var Details

table_smacks_left

How many smaller table smacks we can do before we're out

Proc Details

slam_table

Slam the table, demand some attention

slap_table

Slap the table, get some attention

\ No newline at end of file diff --git a/obj/item/hand_labeler.html b/obj/item/hand_labeler.html new file mode 100644 index 0000000000000..86d42e27a3d55 --- /dev/null +++ b/obj/item/hand_labeler.html @@ -0,0 +1 @@ +/obj/item/hand_labeler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hand_labeler

A mini-tool used to apply label items onto something to modify its name.

Vars

labelTracks the current label text
labels_leftHow many labels are left in the current roll? Also serves as our "max".
modeWhether we are in label mode

Var Details

label

Tracks the current label text

labels_left

How many labels are left in the current roll? Also serves as our "max".

mode

Whether we are in label mode

\ No newline at end of file diff --git a/obj/item/hand_tele.html b/obj/item/hand_tele.html new file mode 100644 index 0000000000000..0cf0df294fe94 --- /dev/null +++ b/obj/item/hand_tele.html @@ -0,0 +1,8 @@ +/obj/item/hand_tele - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hand_tele

Vars

last_portal_locationRepresents the last place we teleported to, for making quick portals. +Can be in the following states:

Procs

try_create_portal_toTakes either PORTAL_LOCATION_DANGEROUS or an /obj/machinery/computer/teleport/computer.

Var Details

last_portal_location

Represents the last place we teleported to, for making quick portals. +Can be in the following states:

+
    +
  • null, meaning either this hand tele hasn't been used yet, or the last place it was portalled to was removed.
  • +
  • PORTAL_LOCATION_DANGEROUS, meaning the last place it teleported to was the "None (Dangerous)" location.
  • +
  • A weakref to a /obj/machinery/computer/teleporter, meaning the last place it teleported to was a pre-setup location.
  • +

Proc Details

try_create_portal_to

Takes either PORTAL_LOCATION_DANGEROUS or an /obj/machinery/computer/teleport/computer.

\ No newline at end of file diff --git a/obj/item/handheld_soulcatcher.html b/obj/item/handheld_soulcatcher.html new file mode 100644 index 0000000000000..8415605873967 --- /dev/null +++ b/obj/item/handheld_soulcatcher.html @@ -0,0 +1 @@ +/obj/item/handheld_soulcatcher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

handheld_soulcatcher

Vars

linked_soulcatcherWhat soulcatcher datum is associated with this item?
rsd_scan_cooldownThe cooldown for the RSD on scanning a body if the ghost refuses. This is here to prevent spamming.

Var Details

linked_soulcatcher

What soulcatcher datum is associated with this item?

rsd_scan_cooldown

The cooldown for the RSD on scanning a body if the ghost refuses. This is here to prevent spamming.

\ No newline at end of file diff --git a/obj/item/hardened_spike.html b/obj/item/hardened_spike.html new file mode 100644 index 0000000000000..03709c7842d40 --- /dev/null +++ b/obj/item/hardened_spike.html @@ -0,0 +1 @@ +/obj/item/hardened_spike - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hardened_spike

Vars

fired_by_refWhat mob "fired" our tongue
missedif we missed our target

Var Details

fired_by_ref

What mob "fired" our tongue

missed

if we missed our target

\ No newline at end of file diff --git a/obj/item/hardened_spike/chem.html b/obj/item/hardened_spike/chem.html new file mode 100644 index 0000000000000..e784ec85c5d54 --- /dev/null +++ b/obj/item/hardened_spike/chem.html @@ -0,0 +1 @@ +/obj/item/hardened_spike/chem - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chem

Vars

embedded_once_alreadWhether the tongue's already embedded in a target once before

Var Details

embedded_once_alread

Whether the tongue's already embedded in a target once before

\ No newline at end of file diff --git a/obj/item/harmalarm.html b/obj/item/harmalarm.html new file mode 100644 index 0000000000000..a83852ccc099b --- /dev/null +++ b/obj/item/harmalarm.html @@ -0,0 +1 @@ +/obj/item/harmalarm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

harmalarm

Vars

alarm_cooldownHarm alarm cooldown

Var Details

alarm_cooldown

Harm alarm cooldown

\ No newline at end of file diff --git a/obj/item/healthanalyzer.html b/obj/item/healthanalyzer.html new file mode 100644 index 0000000000000..c1292b48aae54 --- /dev/null +++ b/obj/item/healthanalyzer.html @@ -0,0 +1 @@ +/obj/item/healthanalyzer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

healthanalyzer

Vars

advancedAdvanced health analyzer
give_wound_treatment_bonusIf this analyzer will give a bonus to wound treatments apon woundscan.
modeVerbose/condensed
scanmodeHEALTH/WOUND

Procs

can_be_used_in_medibotIf TRUE, this analyzer can be used for medibot construction. If FALSE, it cannot. Returns TRUE by default.

Var Details

advanced

Advanced health analyzer

give_wound_treatment_bonus

If this analyzer will give a bonus to wound treatments apon woundscan.

mode

Verbose/condensed

scanmode

HEALTH/WOUND

Proc Details

can_be_used_in_medibot

If TRUE, this analyzer can be used for medibot construction. If FALSE, it cannot. Returns TRUE by default.

\ No newline at end of file diff --git a/obj/item/healthanalyzer/simple.html b/obj/item/healthanalyzer/simple.html new file mode 100644 index 0000000000000..428a3214632d1 --- /dev/null +++ b/obj/item/healthanalyzer/simple.html @@ -0,0 +1 @@ +/obj/item/healthanalyzer/simple - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

simple

Vars

emotionThe analyzer's current emotion. Affects the sprite overlays and if it's going to prick you for being greedy or not.
encouragementsEncouragements to play when attack_selfing
next_encouragementCooldown for when the analyzer will allow you to ask it for encouragement. Don't get greedy!
patienceHow often one can ask for encouragement
scan_for_whatWhat do we scan for, only used in descriptions

Procs

show_emotionSets a new emotion display on the scanner, and resets back to neutral in a moment

Var Details

emotion

The analyzer's current emotion. Affects the sprite overlays and if it's going to prick you for being greedy or not.

encouragements

Encouragements to play when attack_selfing

next_encouragement

Cooldown for when the analyzer will allow you to ask it for encouragement. Don't get greedy!

patience

How often one can ask for encouragement

scan_for_what

What do we scan for, only used in descriptions

Proc Details

show_emotion

Sets a new emotion display on the scanner, and resets back to neutral in a moment

\ No newline at end of file diff --git a/obj/item/hemostat.html b/obj/item/hemostat.html new file mode 100644 index 0000000000000..65e0edcfca76b --- /dev/null +++ b/obj/item/hemostat.html @@ -0,0 +1 @@ +/obj/item/hemostat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hemostat

Vars

surgical_tray_overlayHow this looks when placed in a surgical tray

Var Details

surgical_tray_overlay

How this looks when placed in a surgical tray

\ No newline at end of file diff --git a/obj/item/heretic_labyrinth_handbook.html b/obj/item/heretic_labyrinth_handbook.html new file mode 100644 index 0000000000000..a8c6b99b6681a --- /dev/null +++ b/obj/item/heretic_labyrinth_handbook.html @@ -0,0 +1 @@ +/obj/item/heretic_labyrinth_handbook - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

heretic_labyrinth_handbook

A heretic item that spawns a barrier at the clicked turf, 3 uses

Vars

barrier_typewhat type of barrier do we spawn when used
useshow many uses do we have left

Var Details

barrier_type

what type of barrier do we spawn when used

uses

how many uses do we have left

\ No newline at end of file diff --git a/obj/item/hfr_box.html b/obj/item/hfr_box.html new file mode 100644 index 0000000000000..2adcc504e419b --- /dev/null +++ b/obj/item/hfr_box.html @@ -0,0 +1 @@ +/obj/item/hfr_box - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hfr_box

Vars

box_typeWhat kind of box are we handling?
part_pathWhat's the path of the machine we making

Var Details

box_type

What kind of box are we handling?

part_path

What's the path of the machine we making

\ No newline at end of file diff --git a/obj/item/hierophant_club.html b/obj/item/hierophant_club.html new file mode 100644 index 0000000000000..9ef4e9a67931a --- /dev/null +++ b/obj/item/hierophant_club.html @@ -0,0 +1 @@ +/obj/item/hierophant_club - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hierophant_club

Vars

beaconLinked teleport beacon for the group teleport functionality.
blinkAction enabling the blink-dash functionality.
blink_activatedWhether the blink ability is activated. IF TRUE, left clicking a location will blink to it. If FALSE, this is disabled.
teleportingTRUE if currently doing a teleport to the beacon, FALSE otherwise.

Var Details

beacon

Linked teleport beacon for the group teleport functionality.

Action enabling the blink-dash functionality.

Whether the blink ability is activated. IF TRUE, left clicking a location will blink to it. If FALSE, this is disabled.

teleporting

TRUE if currently doing a teleport to the beacon, FALSE otherwise.

\ No newline at end of file diff --git a/obj/item/highfrequencyblade.html b/obj/item/highfrequencyblade.html new file mode 100644 index 0000000000000..919209afdd5dd --- /dev/null +++ b/obj/item/highfrequencyblade.html @@ -0,0 +1 @@ +/obj/item/highfrequencyblade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

highfrequencyblade

Vars

previous_targetThe previous target we attacked
previous_xPrevious x position of where we clicked on the target's icon
previous_yPrevious y position of where we clicked on the target's icon
slash_colorThe color of the slash we create

Procs

on_unwieldtriggered on unwield of two handed item
on_wieldtriggered on wield of two handed item

Var Details

previous_target

The previous target we attacked

previous_x

Previous x position of where we clicked on the target's icon

previous_y

Previous y position of where we clicked on the target's icon

slash_color

The color of the slash we create

Proc Details

on_unwield

triggered on unwield of two handed item

on_wield

triggered on wield of two handed item

\ No newline at end of file diff --git a/obj/item/hivemind_keyboard.html b/obj/item/hivemind_keyboard.html new file mode 100644 index 0000000000000..d19874184bad4 --- /dev/null +++ b/obj/item/hivemind_keyboard.html @@ -0,0 +1 @@ +/obj/item/hivemind_keyboard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hivemind_keyboard

Vars

connected_networkWhat Hivemind are messages being sent to?

Var Details

connected_network

What Hivemind are messages being sent to?

\ No newline at end of file diff --git a/obj/item/holochip.html b/obj/item/holochip.html new file mode 100644 index 0000000000000..adbafe01ed38e --- /dev/null +++ b/obj/item/holochip.html @@ -0,0 +1 @@ +/obj/item/holochip - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

holochip

Vars

creditsAmount on money on the card

Var Details

credits

Amount on money on the card

\ No newline at end of file diff --git a/obj/item/holocigarette.html b/obj/item/holocigarette.html new file mode 100644 index 0000000000000..c2cc4e2d799cb --- /dev/null +++ b/obj/item/holocigarette.html @@ -0,0 +1 @@ +/obj/item/holocigarette - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

holocigarette

Vars

icon_offThe icon state used when this is extinguished.
icon_onThe icon state used when this is lit.

Var Details

icon_off

The icon state used when this is extinguished.

icon_on

The icon state used when this is lit.

\ No newline at end of file diff --git a/obj/item/holosign_creator/atmos.html b/obj/item/holosign_creator/atmos.html new file mode 100644 index 0000000000000..c73aea60d1b3c --- /dev/null +++ b/obj/item/holosign_creator/atmos.html @@ -0,0 +1 @@ +/obj/item/holosign_creator/atmos - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

atmos

Vars

clearviewClearview holograms don't catch clicks and are more transparent
clearview_timerTimer for auto-turning off clearview

Var Details

clearview

Clearview holograms don't catch clicks and are more transparent

clearview_timer

Timer for auto-turning off clearview

\ No newline at end of file diff --git a/obj/item/house_edge.html b/obj/item/house_edge.html new file mode 100644 index 0000000000000..51d90171cbe13 --- /dev/null +++ b/obj/item/house_edge.html @@ -0,0 +1 @@ +/obj/item/house_edge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

house_edge

Vars

active_hitsoundSound played when wielded.
chargeDatum that tracks weapon dashing for the fire_charge system
fire_chargesThe number of charges the house edge has accrued through 2-handed hits, to charge a more powerful charge attack.

Var Details

active_hitsound

Sound played when wielded.

charge

Datum that tracks weapon dashing for the fire_charge system

fire_charges

The number of charges the house edge has accrued through 2-handed hits, to charge a more powerful charge attack.

\ No newline at end of file diff --git a/obj/item/hypospray/mkii.html b/obj/item/hypospray/mkii.html new file mode 100644 index 0000000000000..343c06514dbd5 --- /dev/null +++ b/obj/item/hypospray/mkii.html @@ -0,0 +1 @@ +/obj/item/hypospray/mkii - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mkii

Vars

gags_bodystateUsed for GAGS-ified hypos.
inject_selfTime taken to inject self
inject_waitTime taken to inject others
penetratesDoes it penetrate clothing?
quickloadCan you hotswap vials? - now all hyposprays can!
small_onlyIs the hypospray only able to use small vials. Relates to the loaded overlays
spray_selfTime taken to spray self
spray_waitTime taken to spray others
start_vialIf the Hypospray starts with a vial, which vial does it start with?
vialThe presently-inserted vial.

Var Details

gags_bodystate

Used for GAGS-ified hypos.

inject_self

Time taken to inject self

inject_wait

Time taken to inject others

penetrates

Does it penetrate clothing?

quickload

Can you hotswap vials? - now all hyposprays can!

small_only

Is the hypospray only able to use small vials. Relates to the loaded overlays

spray_self

Time taken to spray self

spray_wait

Time taken to spray others

start_vial

If the Hypospray starts with a vial, which vial does it start with?

vial

The presently-inserted vial.

\ No newline at end of file diff --git a/obj/item/implant.html b/obj/item/implant.html new file mode 100644 index 0000000000000..335e590b1dd36 --- /dev/null +++ b/obj/item/implant.html @@ -0,0 +1,36 @@ +/obj/item/implant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

implant

Parent class for all implants

Vars

allow_multipleif false, upon implantation of a duplicate implant, an attempt to combine the new implant's uses with the old one's uses will be made, deleting the new implant if successful or stopping the implantation if not
hud_icon_statewhat icon state will we represent ourselves with on the hud?
imp_inthe mob that's implanted with this
implant_colorimplant color, used for selecting either the "b" version or the "r" version of the implant case sprite when the implant is in a case.
implant_flagsour implant flags
useshow many times this can do something, only relevant for implants with limited uses

Procs

get_dataGets implant specifications for the implant pad
get_management_console_buttonsReturns a list of "structs" that translate into buttons displayed on the implant management console
get_management_console_dataReturns a list of information to show on the implant management console for this implant
handle_management_console_actionHandles a button click on the implant management console
implantWhat does the implant do upon injection?
is_shown_on_consoleDetermines if the implant is visible on the implant management console. +Note that this would only ever be called on implants currently inserted into a mob.
removedRemove implant from mob.

Var Details

allow_multiple

if false, upon implantation of a duplicate implant, an attempt to combine the new implant's uses with the old one's uses will be made, deleting the new implant if successful or stopping the implantation if not

hud_icon_state

what icon state will we represent ourselves with on the hud?

imp_in

the mob that's implanted with this

implant_color

implant color, used for selecting either the "b" version or the "r" version of the implant case sprite when the implant is in a case.

implant_flags

our implant flags

uses

how many times this can do something, only relevant for implants with limited uses

Proc Details

get_data

Gets implant specifications for the implant pad

get_management_console_buttons

Returns a list of "structs" that translate into buttons displayed on the implant management console

+

The struct should have the following keys:

+
    +
  • name - the name of the button, optional if button_icon is set
  • +
  • icon - the icon of the button, optional if button_name is set
  • +
  • color - the color of the button, optional
  • +
  • tooltip - the tooltip of the button, optional
  • +
  • action_key - the key that will be passed to handle_management_console_action when the button is clicked
  • +
  • action_params - optional, additional params passed when the button is clicked
  • +

get_management_console_data

Returns a list of information to show on the implant management console for this implant

+

Unlike normal UI data, the keys of the list are shown on the UI itself, so they should be human readable.

handle_management_console_action

Handles a button click on the implant management console

+
    +
  • user - the mob clicking the button
  • +
  • params - the params passed to the button, as if this were a ui_act handler. +See params["implant_action"] for the action key passed to the button +(which should correspond to a button returned by get_management_console_buttons)
  • +
  • console - the console the button was clicked on
  • +

implant

What does the implant do upon injection?

+

return true if the implant injects +return false if there is no room for implant / it fails +Arguments:

+
    +
  • mob/living/target - mob being implanted
  • +
  • mob/user - mob doing the implanting
  • +
  • silent - unused here
  • +
  • force - if true, implantation will not fail if can_be_implanted_in returns false
  • +

is_shown_on_console

Determines if the implant is visible on the implant management console. +Note that this would only ever be called on implants currently inserted into a mob.

removed

Remove implant from mob.

+

This removes the effects of the implant and moves it out of the mob and into nullspace. +Arguments:

+
    +
  • mob/living/source - What the implant is being removed from
  • +
  • silent - unused here
  • +
  • special - Set to true if removed by admin panel, should bypass any side effects
  • +
\ No newline at end of file diff --git a/obj/item/implant/abductor.html b/obj/item/implant/abductor.html new file mode 100644 index 0000000000000..d650f6edb59b1 --- /dev/null +++ b/obj/item/implant/abductor.html @@ -0,0 +1,3 @@ +/obj/item/implant/abductor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

abductor

Procs

link_padManages the process of linking a recall implant to an abductor pad

Proc Details

Manages the process of linking a recall implant to an abductor pad

+

Attempts to link the abductor implant to an abductor console. First, it tries to do so through the abductor's antag datum +If not, a random teleport pad will be defaulted to. Returns TRUE if a home is found, and FALSE is one somehow is not.

\ No newline at end of file diff --git a/obj/item/implant/beacon.html b/obj/item/implant/beacon.html new file mode 100644 index 0000000000000..68b2661b0b1e9 --- /dev/null +++ b/obj/item/implant/beacon.html @@ -0,0 +1 @@ +/obj/item/implant/beacon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

beacon

Essentially, just turns the implantee into a teleport beacon.

Vars

lifespan_postmortemHow long will the implant be teleportable to after death?

Var Details

lifespan_postmortem

How long will the implant be teleportable to after death?

\ No newline at end of file diff --git a/obj/item/implant/chem.html b/obj/item/implant/chem.html new file mode 100644 index 0000000000000..d3d73e420d08a --- /dev/null +++ b/obj/item/implant/chem.html @@ -0,0 +1 @@ +/obj/item/implant/chem - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chem

Vars

implant_sizesAll possible injection sizes for the implant shown in the prisoner management console.

Var Details

implant_sizes

All possible injection sizes for the implant shown in the prisoner management console.

\ No newline at end of file diff --git a/obj/item/implant/explosive.html b/obj/item/implant/explosive.html new file mode 100644 index 0000000000000..19b5d833fb58a --- /dev/null +++ b/obj/item/implant/explosive.html @@ -0,0 +1,7 @@ +/obj/item/implant/explosive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

explosive

Vars

activeWhether the implant's explosion sequence has been activated or not
announce_activationDo we tell people when they activated it?
delayThe final countdown (delay before we explode)
explosion_devastateRadius of heavy devastation explosive impact
explosion_heavyRadius of medium devastation explosive impact
explosion_lightRadius of weak devastation explosive impact
instant_explosionIf the delay is equal or lower to MICROBOMB_DELAY (0.7 sec), the explosion will be instantaneous.
master_implantDo we override other explosive implants?
no_paralyzeDo we disable paralysis upon activation
notify_ghostsWill this implant notify ghosts when activated?
panic_beep_soundDo we rapidly increase the beeping speed as it gets closer to detonating?
popupWhether the confirmation UI popup is active or not

Procs

explodeWhen called, just explodes
merge_implantsMerges two explosive implants together, adding the stats of the latter to the former before qdeling the latter implant. +kept_implant = the implant that is kept +stat_implant = the implant which has its stats added to kept_implant, before being deleted.
timed_explosionExplosive activation sequence for implants with a delay longer than 0.7 seconds. +Make the implantee beep a few times, keel over and explode. Usually to a devastating effect.

Var Details

active

Whether the implant's explosion sequence has been activated or not

announce_activation

Do we tell people when they activated it?

delay

The final countdown (delay before we explode)

explosion_devastate

Radius of heavy devastation explosive impact

explosion_heavy

Radius of medium devastation explosive impact

explosion_light

Radius of weak devastation explosive impact

instant_explosion

If the delay is equal or lower to MICROBOMB_DELAY (0.7 sec), the explosion will be instantaneous.

master_implant

Do we override other explosive implants?

no_paralyze

Do we disable paralysis upon activation

notify_ghosts

Will this implant notify ghosts when activated?

panic_beep_sound

Do we rapidly increase the beeping speed as it gets closer to detonating?

popup

Whether the confirmation UI popup is active or not

Proc Details

explode

When called, just explodes

merge_implants

Merges two explosive implants together, adding the stats of the latter to the former before qdeling the latter implant. +kept_implant = the implant that is kept +stat_implant = the implant which has its stats added to kept_implant, before being deleted.

timed_explosion

Explosive activation sequence for implants with a delay longer than 0.7 seconds. +Make the implantee beep a few times, keel over and explode. Usually to a devastating effect.

\ No newline at end of file diff --git a/obj/item/implant/explosive/battle_royale.html b/obj/item/implant/explosive/battle_royale.html new file mode 100644 index 0000000000000..fe2744083bd6c --- /dev/null +++ b/obj/item/implant/explosive/battle_royale.html @@ -0,0 +1 @@ +/obj/item/implant/explosive/battle_royale - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

battle_royale

Implant used by the traitor Battle Royale objective, is not active immediately

Vars

area_limitedAre we enforcing a specific area yet?
battle_startedIs this implant active yet?
cameraReference to our applied camera component
has_explodedAre we presently exploding?
limited_areasWe will explode if we're not in here after a set time
removed_explode_chanceHow likely are we to blow up if removed?
target_area_nameWhere is this going to tell us to go to avoid death?

Procs

announceAdd the antag datum to our new contestant, also printing some flavour text
check_areaCalled when our implantee moves somewhere
check_area_deadlyAfter a grace period they're still out of bounds, killing time
limit_areasLimit the owner to the specified area
on_lifeGive a slight tell
start_battleStart the battle royale

Var Details

area_limited

Are we enforcing a specific area yet?

battle_started

Is this implant active yet?

camera

Reference to our applied camera component

has_exploded

Are we presently exploding?

limited_areas

We will explode if we're not in here after a set time

removed_explode_chance

How likely are we to blow up if removed?

target_area_name

Where is this going to tell us to go to avoid death?

Proc Details

announce

Add the antag datum to our new contestant, also printing some flavour text

check_area

Called when our implantee moves somewhere

check_area_deadly

After a grace period they're still out of bounds, killing time

limit_areas

Limit the owner to the specified area

on_life

Give a slight tell

start_battle

Start the battle royale

\ No newline at end of file diff --git a/obj/item/implant/mod.html b/obj/item/implant/mod.html new file mode 100644 index 0000000000000..aac81df9930c0 --- /dev/null +++ b/obj/item/implant/mod.html @@ -0,0 +1 @@ +/obj/item/implant/mod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mod

Vars

jet_iconThe jet icon we apply to the MOD.
moduleThe pathfinder module we are linked to.

Var Details

jet_icon

The jet icon we apply to the MOD.

module

The pathfinder module we are linked to.

\ No newline at end of file diff --git a/obj/item/implant/spell.html b/obj/item/implant/spell.html new file mode 100644 index 0000000000000..99d9902f6b333 --- /dev/null +++ b/obj/item/implant/spell.html @@ -0,0 +1 @@ +/obj/item/implant/spell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spell

Vars

make_robelessWhether to make the spell robeless
spell_to_giveThe actual spell we give to the person on implant
spell_typeThe typepath of the spell we give to people. Instantiated in Initialize

Var Details

make_robeless

Whether to make the spell robeless

spell_to_give

The actual spell we give to the person on implant

spell_type

The typepath of the spell we give to people. Instantiated in Initialize

\ No newline at end of file diff --git a/obj/item/implant/teleport_blocker.html b/obj/item/implant/teleport_blocker.html new file mode 100644 index 0000000000000..07813f6d273eb --- /dev/null +++ b/obj/item/implant/teleport_blocker.html @@ -0,0 +1 @@ +/obj/item/implant/teleport_blocker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

teleport_blocker

Blocks the implantee from being teleported

Procs

on_jauntSignal for COMSIG_MOB_PRE_JAUNT that prevents a user from entering a jaunt.
on_teleportSignal for COMSIG_MOVABLE_TELEPORTED that blocks teleports and stuns the would-be-teleportee.

Proc Details

on_jaunt

Signal for COMSIG_MOB_PRE_JAUNT that prevents a user from entering a jaunt.

on_teleport

Signal for COMSIG_MOVABLE_TELEPORTED that blocks teleports and stuns the would-be-teleportee.

\ No newline at end of file diff --git a/obj/item/implant/tracking.html b/obj/item/implant/tracking.html new file mode 100644 index 0000000000000..e8b45c0d905ab --- /dev/null +++ b/obj/item/implant/tracking.html @@ -0,0 +1 @@ +/obj/item/implant/tracking - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tracking

Vars

lifespan_postmortemHow long will the implant continue to function after death?

Var Details

lifespan_postmortem

How long will the implant continue to function after death?

\ No newline at end of file diff --git a/obj/item/implant/tracking/c38.html b/obj/item/implant/tracking/c38.html new file mode 100644 index 0000000000000..c8b509c45c71a --- /dev/null +++ b/obj/item/implant/tracking/c38.html @@ -0,0 +1 @@ +/obj/item/implant/tracking/c38 - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

c38

Vars

lifespanHow long before this implant self-deletes?
timeridThe id of the timer that's qdeleting us

Var Details

lifespan

How long before this implant self-deletes?

timerid

The id of the timer that's qdeleting us

\ No newline at end of file diff --git a/obj/item/implant/uplink.html b/obj/item/implant/uplink.html new file mode 100644 index 0000000000000..38f85f01347ed --- /dev/null +++ b/obj/item/implant/uplink.html @@ -0,0 +1,4 @@ +/obj/item/implant/uplink - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

uplink

Vars

uplink_flagThe uplink flags of the implant uplink inside, only checked during initialisation so modifying it after initialisation will do nothing
uplink_handlerReference to the uplink handler, deciding which type of uplink this implant has.

Procs

on_component_removingProc called when component is removed; ie. uplink component

Var Details

The uplink flags of the implant uplink inside, only checked during initialisation so modifying it after initialisation will do nothing

Reference to the uplink handler, deciding which type of uplink this implant has.

Proc Details

on_component_removing

Proc called when component is removed; ie. uplink component

+

Callback catching if the underlying uplink component has been removed, +generally by admin verbs or var editing. Implant does nothing without +the component, so delete itself.

\ No newline at end of file diff --git a/obj/item/implantcase.html b/obj/item/implantcase.html new file mode 100644 index 0000000000000..9f41bd17cdc24 --- /dev/null +++ b/obj/item/implantcase.html @@ -0,0 +1 @@ +/obj/item/implantcase - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

implantcase

Item used to store implants. Can be renamed with a pen. Implants are moved between those and implanters when a mob uses an implanter on a case.

Vars

impthe implant within the case
imp_typeType of implant this will spawn as imp upon being spawned

Var Details

imp

the implant within the case

imp_type

Type of implant this will spawn as imp upon being spawned

\ No newline at end of file diff --git a/obj/item/implanter.html b/obj/item/implanter.html new file mode 100644 index 0000000000000..97c81b934a408 --- /dev/null +++ b/obj/item/implanter.html @@ -0,0 +1 @@ +/obj/item/implanter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

implanter

Players can use this item to put obj/item/implant's in living mobs. Can be renamed with a pen.

Vars

impThe implant in our implanter
imp_typeType of implant this will spawn as imp upon being spawned

Var Details

imp

The implant in our implanter

imp_type

Type of implant this will spawn as imp upon being spawned

\ No newline at end of file diff --git a/obj/item/implantpad.html b/obj/item/implantpad.html new file mode 100644 index 0000000000000..7054a14dec824 --- /dev/null +++ b/obj/item/implantpad.html @@ -0,0 +1 @@ +/obj/item/implantpad - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

implantpad

Vars

inserted_caseThe implant case currently inserted into the pad.

Procs

remove_implantRemoves the implant from the pad and puts it in the user's hands if possible.

Var Details

inserted_case

The implant case currently inserted into the pad.

Proc Details

remove_implant

Removes the implant from the pad and puts it in the user's hands if possible.

\ No newline at end of file diff --git a/obj/item/inducer.html b/obj/item/inducer.html new file mode 100644 index 0000000000000..c48c736fdd86f --- /dev/null +++ b/obj/item/inducer.html @@ -0,0 +1 @@ +/obj/item/inducer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

inducer

Vars

power_transfer_multiplierMultiplier that determines the speed at which this inducer works at.

Var Details

power_transfer_multiplier

Multiplier that determines the speed at which this inducer works at.

\ No newline at end of file diff --git a/obj/item/inflatable.html b/obj/item/inflatable.html new file mode 100644 index 0000000000000..753c2d56d7014 --- /dev/null +++ b/obj/item/inflatable.html @@ -0,0 +1 @@ +/obj/item/inflatable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

inflatable

Vars

structure_typeThe structure we deploy when used.
tornAre we torn?

Var Details

structure_type

The structure we deploy when used.

torn

Are we torn?

\ No newline at end of file diff --git a/obj/item/inspector.html b/obj/item/inspector.html new file mode 100644 index 0000000000000..6407c9fb90cc7 --- /dev/null +++ b/obj/item/inspector.html @@ -0,0 +1,8 @@ +/obj/item/inspector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

N-spect scanner

Creates reports for area inspection bounties.

Vars

cellPower cell used to power the scanner. Paths g
cell_cover_openCell cover status
energy_per_printEnergy used per print.
print_sound_modedetermines the sound that plays when printing a report
scans_correctlyDoes this item scan for contraband correctly? If not, will provide a flipped response.
time_listHow long it takes to print on time each mode, ordered NORMAL, FAST, HONK
time_modeWhich print time mode we're on.

Procs

contraband_scanScans the carbon or item for contraband.
create_slipCreate our report
print_reportPrints out a report for bounty purposes, and plays a short audio blip.

Var Details

cell

Power cell used to power the scanner. Paths g

cell_cover_open

Cell cover status

energy_per_print

Energy used per print.

print_sound_mode

determines the sound that plays when printing a report

scans_correctly

Does this item scan for contraband correctly? If not, will provide a flipped response.

time_list

How long it takes to print on time each mode, ordered NORMAL, FAST, HONK

time_mode

Which print time mode we're on.

Proc Details

contraband_scan

Scans the carbon or item for contraband.

+

Arguments:

+
    +
  • scanned - what or who is scanned?
  • +
  • user - who is performing the scanning?
  • +

create_slip

Create our report

+

Arguments:

print_report

Prints out a report for bounty purposes, and plays a short audio blip.

+

Arguments:

\ No newline at end of file diff --git a/obj/item/inspector/clown.html b/obj/item/inspector/clown.html new file mode 100644 index 0000000000000..4b14add35b51a --- /dev/null +++ b/obj/item/inspector/clown.html @@ -0,0 +1,5 @@ +/obj/item/inspector/clown - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Fake N-spect scanner

A clown variant of the N-spect scanner

+

This prints fake reports with garbage in them, +can be set to print them instantly with a screwdriver. +By default it plays the old "woody" scanning sound, scanning sounds can be cycled by clicking with a multitool. +Can be crafted into a bananium HONK-spect scanner

Vars

max_modewill only cycle through modes with numbers lower than this
mode_namesnames of modes, ordered first to last

Var Details

max_mode

will only cycle through modes with numbers lower than this

mode_names

names of modes, ordered first to last

\ No newline at end of file diff --git a/obj/item/inspector/clown/bananium.html b/obj/item/inspector/clown/bananium.html new file mode 100644 index 0000000000000..f046b35cf07ec --- /dev/null +++ b/obj/item/inspector/clown/bananium.html @@ -0,0 +1,5 @@ +/obj/item/inspector/clown/bananium - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Bananium HONK-spect scanner

An upgraded version of the fake N-spect scanner

+

Can print things way faster, at full power the reports printed by this will destroy +themselves and leave water behind when folding is attempted by someone who isn't an +origami master. Printing at full power costs INSPECTOR_ENERGY_USAGE_HONK cell units +instead of INSPECTOR_ENERGY_USAGE_NORMAL cell units.

Vars

charges_per_paperHow much charges are restored per paper consumed
max_paper_chargesMax value of paper_charges
paper_chargesHow many more times can we print?

Var Details

charges_per_paper

How much charges are restored per paper consumed

max_paper_charges

Max value of paper_charges

paper_charges

How many more times can we print?

\ No newline at end of file diff --git a/obj/item/instrument.html b/obj/item/instrument.html new file mode 100644 index 0000000000000..1298098c02623 --- /dev/null +++ b/obj/item/instrument.html @@ -0,0 +1 @@ +/obj/item/instrument - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

instrument

Vars

allowed_instrument_idsOur allowed list of instrument ids. This is nulled on initialize.
instrument_rangeHow far away our song datum can be heard.
songOur song datum.

Var Details

allowed_instrument_ids

Our allowed list of instrument ids. This is nulled on initialize.

instrument_range

How far away our song datum can be heard.

song

Our song datum.

\ No newline at end of file diff --git a/obj/item/instrument/violin/festival.html b/obj/item/instrument/violin/festival.html new file mode 100644 index 0000000000000..6aae650a77261 --- /dev/null +++ b/obj/item/instrument/violin/festival.html @@ -0,0 +1 @@ +/obj/item/instrument/violin/festival - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

festival

Procs

analyze_songReports some relevant information when the song begins playing.
on_instrument_startsignal fired when the festival instrument starts to play.

Proc Details

analyze_song

Reports some relevant information when the song begins playing.

on_instrument_start

signal fired when the festival instrument starts to play.

\ No newline at end of file diff --git a/obj/item/integrated_circuit.html b/obj/item/integrated_circuit.html new file mode 100644 index 0000000000000..0cb4d1cfcdfbc --- /dev/null +++ b/obj/item/integrated_circuit.html @@ -0,0 +1,28 @@ +/obj/item/integrated_circuit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Integrated Circuitboard

A circuitboard that holds components that work together

+

Has a limited amount of power.

Vars

admin_onlyWhether the integrated circuit is admin only. Disables power usage and allows admin circuits to be attached, at the cost of making it inaccessible to regular users.
assoc_list_variablesAssoc list variables stored on this integrated circuit, with a variable_name = value structure
attached_componentsThe attached components
cellThe power of the integrated circuit
circuit_variablesVariables stored on this integrated circuit, with a variable_name = value structure
current_sizeThe current size of the circuit.
display_nameThe name that appears on the shell.
examined_componentThe current examined component. Used in IntegratedCircuit UI
examined_rel_xX position of the examined_component
examined_rel_yY position of the examined component
grid_modeThe grid mode state for the circuit.
inserter_mindSet by the shell. Holds the reference to the owner who inserted the component into the shell.
label_max_lengthThe max length of the name.
linked_component_printerThe current linked component printer. Lets you remotely print off circuit components and places them in the integrated circuit.
list_variablesList variables stored on this integrated circuit, with a variable_name = value structure
lockedWhether the integrated circuit is locked or not. Handled by the shell.
max_setters_and_gettersThe maximum amount of setters and getters a circuit can have
modifiable_circuit_variablesVariables stored on this integrated circuit that can be set by a setter, with a variable_name = value structure
onWhether the integrated circuit is on or not. Handled by the shell.
owner_idThe ID that is authorized to unlock/lock the shell so that the circuit can/cannot be removed.
screen_xThe X position of the screen. Used for adding components
screen_yThe Y position of the screen. Used for adding components.
setter_and_getter_countThe current setter and getter count the circuit has.
shellThe shell that this circuitboard is attached to. Used by components.

Procs

add_componentAdds a component to the circuitboard
add_component_manuallyAdds a component to the circuitboard through a manual action.
attempt_save_toAttempts to save a circuit to a given client
convert_to_jsonConverts a circuit into json.
get_creatorReturns the creator of the integrated circuit. Used in admin logs and other related things.
get_creator_adminReturns the creator of the integrated circuit. Used in admin messages and other related things.
is_duplicateUsed for checking if another component of to_check's type exists in the circuit. +Introspects through modules.
load_circuit_dataLoads a circuit based on json data at a location. Can also load usb connections, such as arrest consoles.
remove_componentRemoves a component to the circuitboard
remove_current_shellUnregisters the current shell attached to this circuit.
set_cellSets the cell of the integrated circuit.
set_display_nameSets the display name that appears on the shell.
set_lockedSets the locked status of the integrated circuit.
set_onSets the on status of the integrated circuit.
set_shellRegisters an movable atom as a shell
toggle_grid_modeToggles the grid mode property for this circuit.

Var Details

admin_only

Whether the integrated circuit is admin only. Disables power usage and allows admin circuits to be attached, at the cost of making it inaccessible to regular users.

assoc_list_variables

Assoc list variables stored on this integrated circuit, with a variable_name = value structure

attached_components

The attached components

cell

The power of the integrated circuit

circuit_variables

Variables stored on this integrated circuit, with a variable_name = value structure

current_size

The current size of the circuit.

display_name

The name that appears on the shell.

examined_component

The current examined component. Used in IntegratedCircuit UI

examined_rel_x

X position of the examined_component

examined_rel_y

Y position of the examined component

grid_mode

The grid mode state for the circuit.

inserter_mind

Set by the shell. Holds the reference to the owner who inserted the component into the shell.

label_max_length

The max length of the name.

linked_component_printer

The current linked component printer. Lets you remotely print off circuit components and places them in the integrated circuit.

list_variables

List variables stored on this integrated circuit, with a variable_name = value structure

locked

Whether the integrated circuit is locked or not. Handled by the shell.

max_setters_and_getters

The maximum amount of setters and getters a circuit can have

modifiable_circuit_variables

Variables stored on this integrated circuit that can be set by a setter, with a variable_name = value structure

on

Whether the integrated circuit is on or not. Handled by the shell.

owner_id

The ID that is authorized to unlock/lock the shell so that the circuit can/cannot be removed.

screen_x

The X position of the screen. Used for adding components

screen_y

The Y position of the screen. Used for adding components.

setter_and_getter_count

The current setter and getter count the circuit has.

shell

The shell that this circuitboard is attached to. Used by components.

Proc Details

add_component

Adds a component to the circuitboard

+

Once the component is added, the ports can be attached to other components

add_component_manually

Adds a component to the circuitboard through a manual action.

attempt_save_to

Attempts to save a circuit to a given client

convert_to_json

Converts a circuit into json.

get_creator

Returns the creator of the integrated circuit. Used in admin logs and other related things.

get_creator_admin

Returns the creator of the integrated circuit. Used in admin messages and other related things.

is_duplicate

Used for checking if another component of to_check's type exists in the circuit. +Introspects through modules.

+

Arguments:

+
    +
  • to_check - The component to check.
  • +

load_circuit_data

Loads a circuit based on json data at a location. Can also load usb connections, such as arrest consoles.

remove_component

Removes a component to the circuitboard

+

This removes all connects between the ports

remove_current_shell

Unregisters the current shell attached to this circuit.

set_cell

Sets the cell of the integrated circuit.

+

Arguments:

+
    +
  • cell_to_set - The new cell of the circuit. Can be null.
  • +

set_display_name

Sets the display name that appears on the shell.

set_locked

Sets the locked status of the integrated circuit.

+

Arguments:

+
    +
  • new_value - A boolean that determines if the circuit is locked or not.
  • +

set_on

Sets the on status of the integrated circuit.

+

Arguments:

+
    +
  • new_value - A boolean that determines if the circuit is on or not.
  • +

set_shell

Registers an movable atom as a shell

+

No functionality is done here. This is so that input components +can properly register any signals on the shell. +Arguments:

+
    +
  • new_shell - The new shell to register.
  • +

toggle_grid_mode

Toggles the grid mode property for this circuit.

\ No newline at end of file diff --git a/obj/item/janicart_upgrade.html b/obj/item/janicart_upgrade.html new file mode 100644 index 0000000000000..ed8abe759658c --- /dev/null +++ b/obj/item/janicart_upgrade.html @@ -0,0 +1,9 @@ +/obj/item/janicart_upgrade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Janicart Upgrade

Functional upgrades that can be installed into a janicart.

Vars

overlay_greyscale_configThe greyscale config for the on-cart installed upgrade overlay

Procs

installCalled when upgrade is installed into a janicart
uninstallCalled when upgrade is uninstalled from a janicart

Var Details

overlay_greyscale_config

The greyscale config for the on-cart installed upgrade overlay

Proc Details

install

Called when upgrade is installed into a janicart

+

Arguments:

+
    +
  • installee - The cart the upgrade is being installed into
  • +

uninstall

Called when upgrade is uninstalled from a janicart

+

Arguments:

+
    +
  • installee - The cart the upgrade is being removed from
  • +
\ No newline at end of file diff --git a/obj/item/key/kink_collar.html b/obj/item/key/kink_collar.html new file mode 100644 index 0000000000000..1872fae239f4c --- /dev/null +++ b/obj/item/key/kink_collar.html @@ -0,0 +1 @@ +/obj/item/key/kink_collar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

kink_collar

Vars

key_idThe ID of the key to pair with a collar. Will normally be the ref of the collar
keynameThe name inscribed on the key

Var Details

key_id

The ID of the key to pair with a collar. Will normally be the ref of the collar

keyname

The name inscribed on the key

\ No newline at end of file diff --git a/obj/item/key_card.html b/obj/item/key_card.html new file mode 100644 index 0000000000000..dd4a31b9039eb --- /dev/null +++ b/obj/item/key_card.html @@ -0,0 +1,5 @@ +/obj/item/key_card - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

key_card

Keycard that's meant to be able to open a /obj/machinery/door/airlock/keyed. Without it, the door will not open.

Vars

access_idThe access ID of the airlock it can be used to unlock.
master_accessIs this keycard a master keycard, i.e. will it open all locked airlocks +no matter their access_id? (Don't give this out willy-nilly, due to the +possible implications it has).

Var Details

access_id

The access ID of the airlock it can be used to unlock.

master_access

Is this keycard a master keycard, i.e. will it open all locked airlocks +no matter their access_id? (Don't give this out willy-nilly, due to the +possible implications it has).

\ No newline at end of file diff --git a/obj/item/key_card/hotel_room.html b/obj/item/key_card/hotel_room.html new file mode 100644 index 0000000000000..c14c938aa0065 --- /dev/null +++ b/obj/item/key_card/hotel_room.html @@ -0,0 +1,3 @@ +/obj/item/key_card/hotel_room - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hotel_room

Vars

room_numberThe number of the room, so that it gets automatically handled by the code everywhere +it's relevant.

Var Details

room_number

The number of the room, so that it gets automatically handled by the code everywhere +it's relevant.

\ No newline at end of file diff --git a/obj/item/kheiral_cuffs.html b/obj/item/kheiral_cuffs.html new file mode 100644 index 0000000000000..fe1dbb90700b7 --- /dev/null +++ b/obj/item/kheiral_cuffs.html @@ -0,0 +1,2 @@ +/obj/item/kheiral_cuffs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

kheiral_cuffs

Kheiral Cuffs +Acts as a GPS beacon & connects to station crew monitors from lavaland

Vars

far_from_homeIf we're off the station's Z-level
gps_enabledIf the GPS is already on
on_wristIf we're in the glove slot

Procs

check_zIf we're off the Z-level, set far_from_home = TRUE. If being worn, trigger kheiral_network proc
connect_kheiral_networkEnables the GPS and adds the multiz trait
remove_kheiral_networkDisables the GPS and removes the multiz trait

Var Details

far_from_home

If we're off the station's Z-level

gps_enabled

If the GPS is already on

on_wrist

If we're in the glove slot

Proc Details

check_z

If we're off the Z-level, set far_from_home = TRUE. If being worn, trigger kheiral_network proc

connect_kheiral_network

Enables the GPS and adds the multiz trait

remove_kheiral_network

Disables the GPS and removes the multiz trait

\ No newline at end of file diff --git a/obj/item/kinetic_crusher.html b/obj/item/kinetic_crusher.html new file mode 100644 index 0000000000000..880388b9c6d8e --- /dev/null +++ b/obj/item/kinetic_crusher.html @@ -0,0 +1 @@ +/obj/item/kinetic_crusher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

kinetic_crusher

Procs

do_saboteurHACK TO WORK AROUND TWOHANDED NOT RESPECTING FORCE_UNWIELDED=0
on_unwieldHACK TO WORK AROUND TWOHANDED NOT RESPECTING FORCE_UNWIELDED=0

Proc Details

do_saboteur

HACK TO WORK AROUND TWOHANDED NOT RESPECTING FORCE_UNWIELDED=0

on_unwield

HACK TO WORK AROUND TWOHANDED NOT RESPECTING FORCE_UNWIELDED=0

\ No newline at end of file diff --git a/obj/item/kinky_shocker.html b/obj/item/kinky_shocker.html new file mode 100644 index 0000000000000..902809db28232 --- /dev/null +++ b/obj/item/kinky_shocker.html @@ -0,0 +1 @@ +/obj/item/kinky_shocker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

kinky_shocker

Vars

activate_soundThe custom part of the string that is displayed on activation of the shocker
can_remove_cellIf the user should be able to remove the cell or not
cellTypecasted var that holds the cell placed in the shocker
cell_hit_costWhat it should cost the cell to use the shocker once
preload_cell_typeA type of what cell should be put in the shocker on initialize
shocker_onIf the shocker is on or not

Procs

deductchargeDeduct an amount of charge from the cell

Var Details

activate_sound

The custom part of the string that is displayed on activation of the shocker

can_remove_cell

If the user should be able to remove the cell or not

cell

Typecasted var that holds the cell placed in the shocker

cell_hit_cost

What it should cost the cell to use the shocker once

preload_cell_type

A type of what cell should be put in the shocker on initialize

shocker_on

If the shocker is on or not

Proc Details

deductcharge

Deduct an amount of charge from the cell

\ No newline at end of file diff --git a/obj/item/kirbyplants.html b/obj/item/kirbyplants.html new file mode 100644 index 0000000000000..52025adaaa3cd --- /dev/null +++ b/obj/item/kirbyplants.html @@ -0,0 +1 @@ +/obj/item/kirbyplants - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

kirbyplants

Vars

custom_plant_nameIf it's a special named plant, set this to true to prevent dead-name overriding.
deadWhether this plant is dead and requires a seed to revive
random_state_capMaximum icon state number - KEEP THIS UP TO DATE
trimmableCan this plant be trimmed by someone with TRAIT_BONSAI

Procs

change_visualCycle basic plant visuals

Var Details

custom_plant_name

If it's a special named plant, set this to true to prevent dead-name overriding.

dead

Whether this plant is dead and requires a seed to revive

random_state_cap

Maximum icon state number - KEEP THIS UP TO DATE

trimmable

Can this plant be trimmed by someone with TRAIT_BONSAI

Proc Details

change_visual

Cycle basic plant visuals

\ No newline at end of file diff --git a/obj/item/kitchen/tongs.html b/obj/item/kitchen/tongs.html new file mode 100644 index 0000000000000..0c2470fdccdb8 --- /dev/null +++ b/obj/item/kitchen/tongs.html @@ -0,0 +1 @@ +/obj/item/kitchen/tongs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tongs

Tongs, let you pick up and feed people food from further away.

Vars

clack_cooldownHave we clacked recently?
clack_delayTime to wait between clacking sounds
clack_soundSound to play when we click our tongs together
tongedWhat are we holding in our tongs?

Procs

clackPlays a clacking sound and appear open
click_clackPlay a clacking sound and appear closed, then open again
drop_tongedRelease the food we are holding

Var Details

clack_cooldown

Have we clacked recently?

clack_delay

Time to wait between clacking sounds

clack_sound

Sound to play when we click our tongs together

tonged

What are we holding in our tongs?

Proc Details

clack

Plays a clacking sound and appear open

click_clack

Play a clacking sound and appear closed, then open again

drop_tonged

Release the food we are holding

\ No newline at end of file diff --git a/obj/item/knife.html b/obj/item/knife.html new file mode 100644 index 0000000000000..351fac6ba284b --- /dev/null +++ b/obj/item/knife.html @@ -0,0 +1 @@ +/obj/item/knife - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

knife

Procs

set_butcheringAdds the butchering component, used to override stats for special cases

Proc Details

set_butchering

Adds the butchering component, used to override stats for special cases

\ No newline at end of file diff --git a/obj/item/knife/bloodletter.html b/obj/item/knife/bloodletter.html new file mode 100644 index 0000000000000..2efb0b4de2aec --- /dev/null +++ b/obj/item/knife/bloodletter.html @@ -0,0 +1 @@ +/obj/item/knife/bloodletter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bloodletter

Vars

bleed_stacks_per_hitBleed stacks applied when an organic mob target is hit

Var Details

bleed_stacks_per_hit

Bleed stacks applied when an organic mob target is hit

\ No newline at end of file diff --git a/obj/item/knife/hotknife.html b/obj/item/knife/hotknife.html new file mode 100644 index 0000000000000..a2ae4706951ad --- /dev/null +++ b/obj/item/knife/hotknife.html @@ -0,0 +1 @@ +/obj/item/knife/hotknife - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hotknife

Vars

fire_stacksHow many fire stacks to apply on attack

Var Details

fire_stacks

How many fire stacks to apply on attack

\ No newline at end of file diff --git a/obj/item/label.html b/obj/item/label.html new file mode 100644 index 0000000000000..e9b6406c99e55 --- /dev/null +++ b/obj/item/label.html @@ -0,0 +1,17 @@ +/obj/item/label - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

label

The label item applied when labelling something

Vars

label_nameThe text on the label
sticking_toWhat atom we're currently stuck to

Procs

apply_labelApplies a label to the name of what we're stuck to in the format of: "parent_name (label)"
clear_stick_toGeneral purpose / signal proc used to clear references and clean up when removed
interacted_withThis proc will trigger when any object is used to attack the thing we're stuck to. .
on_examineThis proc will trigger when someone examines the thing we're stuck to. +It will attach the text found in the body of the proc to the examine_list and display it to the player examining the parent.
on_peelCallback invoked when the label is removed from something
on_stickCallback invoked when the label is attached to something
reapplyUsed to re-apply the label when the thing we're stuck to is renamed.
remove_labelRemoves the label from the name of what we're stuck to
update_label_nameSets the lable_name var and performs any necessary updates to the label's appearance

Var Details

label_name

The text on the label

sticking_to

What atom we're currently stuck to

Proc Details

apply_label

Applies a label to the name of what we're stuck to in the format of: "parent_name (label)"

clear_stick_to

General purpose / signal proc used to clear references and clean up when removed

interacted_with

This proc will trigger when any object is used to attack the thing we're stuck to. .

+

If the attacking object is not a hand labeler, it will return. +If the attacking object is a hand labeler, it will either update the label or remove the label entirely.

+

Arguments:

+
    +
  • source: The parent.
  • +
  • attacker: The object that is hitting the parent.
  • +
  • user: The mob who is wielding the attacking object.
  • +

on_examine

This proc will trigger when someone examines the thing we're stuck to. +It will attach the text found in the body of the proc to the examine_list and display it to the player examining the parent.

+

Arguments:

+
    +
  • source: The parent.
  • +
  • user: The mob exmaining the parent.
  • +
  • examine_list: The current list of text getting passed from the parent's normal examine() proc.
  • +

on_peel

Callback invoked when the label is removed from something

on_stick

Callback invoked when the label is attached to something

reapply

Used to re-apply the label when the thing we're stuck to is renamed.

remove_label

Removes the label from the name of what we're stuck to

update_label_name

Sets the lable_name var and performs any necessary updates to the label's appearance

\ No newline at end of file diff --git a/obj/item/language_manual.html b/obj/item/language_manual.html new file mode 100644 index 0000000000000..ba228ef93b573 --- /dev/null +++ b/obj/item/language_manual.html @@ -0,0 +1 @@ +/obj/item/language_manual - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

language_manual

Vars

chargesNumber of charges the book has, limits the number of times it can be used.
flavour_textFlavour text to display when the language is successfully learned.
languagePath to a language datum that the book teaches.

Var Details

charges

Number of charges the book has, limits the number of times it can be used.

flavour_text

Flavour text to display when the language is successfully learned.

language

Path to a language datum that the book teaches.

\ No newline at end of file diff --git a/obj/item/laser_pointer.html b/obj/item/laser_pointer.html new file mode 100644 index 0000000000000..85df2276662ae --- /dev/null +++ b/obj/item/laser_pointer.html @@ -0,0 +1 @@ +/obj/item/laser_pointer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

laser_pointer

Vars

crystal_lensCurrently stored blulespace crystal, if any. Required to use the pointer through walls
diodeCurrently stored micro-laser diode
effectchanceChance that the pointer dot will trigger a reaction from a mob/object
energyCurrently available battery charge of the laser pointer
max_energyMaximum possible battery charge of the laser. Draining the battery puts the pointer in a recharge state, preventing use, which ends upon full recharge
max_rangeMaximum use range
pointer_icon_stateIcon for the laser, affects both the laser dot and the laser pointer itself, as it shines a laser on the item itself
recharge_lockedWhether the pointer is currently in a full recharge state. Triggered upon fully draining the battery
rechargingWhether the pointer is currently recharging or not

Procs

laser_actHandles shining the clicked atom,

Var Details

crystal_lens

Currently stored blulespace crystal, if any. Required to use the pointer through walls

diode

Currently stored micro-laser diode

effectchance

Chance that the pointer dot will trigger a reaction from a mob/object

energy

Currently available battery charge of the laser pointer

max_energy

Maximum possible battery charge of the laser. Draining the battery puts the pointer in a recharge state, preventing use, which ends upon full recharge

max_range

Maximum use range

pointer_icon_state

Icon for the laser, affects both the laser dot and the laser pointer itself, as it shines a laser on the item itself

recharge_locked

Whether the pointer is currently in a full recharge state. Triggered upon fully draining the battery

recharging

Whether the pointer is currently recharging or not

Proc Details

laser_act

Handles shining the clicked atom,

\ No newline at end of file diff --git a/obj/item/lazarus_injector.html b/obj/item/lazarus_injector.html new file mode 100644 index 0000000000000..c79e3c0038664 --- /dev/null +++ b/obj/item/lazarus_injector.html @@ -0,0 +1,5 @@ +/obj/item/lazarus_injector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lazarus_injector

Players can revive simplemobs with this.

+

In-game item that can be used to revive a simplemob once. This makes the mob friendly. +Becomes useless after use. +Becomes malfunctioning when EMP'd. +If a hostile mob is revived with a malfunctioning injector, it will be hostile to everyone except whoever revived it and gets robust searching enabled.

Vars

loadedCan this still be used?
malfunctioningInjector malf?
revive_typeSo you can't revive boss monsters or robots with it

Var Details

loaded

Can this still be used?

malfunctioning

Injector malf?

revive_type

So you can't revive boss monsters or robots with it

\ No newline at end of file diff --git a/obj/item/light.html b/obj/item/light.html new file mode 100644 index 0000000000000..1ecf6c97b4a8f --- /dev/null +++ b/obj/item/light.html @@ -0,0 +1 @@ +/obj/item/light - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

light

Vars

base_stateBase icon state for each bulb types
brightnessHow much light it gives off
statusLIGHT_OK, LIGHT_BURNED or LIGHT_BROKEN
switchcountNumber of times switched on and off

Procs

is_intactReturns true if bulb is intact

Var Details

base_state

Base icon state for each bulb types

brightness

How much light it gives off

status

LIGHT_OK, LIGHT_BURNED or LIGHT_BROKEN

switchcount

Number of times switched on and off

Proc Details

is_intact

Returns true if bulb is intact

\ No newline at end of file diff --git a/obj/item/light_eater.html b/obj/item/light_eater.html new file mode 100644 index 0000000000000..06f0efec885c7 --- /dev/null +++ b/obj/item/light_eater.html @@ -0,0 +1 @@ +/obj/item/light_eater - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

light_eater

An armblade that instantly snuffs out lights

Vars

crit_timerThe timer which controls our next crit
has_critIf this is true, our next hit will be critcal, temporarily stunning our target

Var Details

crit_timer

The timer which controls our next crit

has_crit

If this is true, our next hit will be critcal, temporarily stunning our target

\ No newline at end of file diff --git a/obj/item/lighter.html b/obj/item/lighter.html new file mode 100644 index 0000000000000..56d7d2091af0f --- /dev/null +++ b/obj/item/lighter.html @@ -0,0 +1 @@ +/obj/item/lighter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lighter

Vars

burned_fuel_forThe amount of time the lighter has been on for, for fuel consumption.
fancyWhether the lighter is fancy. Fancy lighters have fancier flavortext and won't burn thumbs.
heat_while_onThe amount of heat a lighter has while it's on. We're using the define to ensure lighters can't do things we don't want them to.
litWhether the lighter is lit.
maximum_fuelThe max amount of fuel the lighter can hold.
overlay_listA list of possible engraving overlays.
overlay_stateThe engraving overlay used by this lighter.

Procs

create_lighter_overlayGenerates an overlay used by this lighter.
get_fuelReturns the amount of fuel
on_intercepted_bulletDestroy the lighter when it's shot by a bullet
tool_use_checkChecks if the lighter is able to perform a welding task.
useUses fuel from the lighter.

Var Details

burned_fuel_for

The amount of time the lighter has been on for, for fuel consumption.

fancy

Whether the lighter is fancy. Fancy lighters have fancier flavortext and won't burn thumbs.

heat_while_on

The amount of heat a lighter has while it's on. We're using the define to ensure lighters can't do things we don't want them to.

lit

Whether the lighter is lit.

maximum_fuel

The max amount of fuel the lighter can hold.

overlay_list

A list of possible engraving overlays.

overlay_state

The engraving overlay used by this lighter.

Proc Details

create_lighter_overlay

Generates an overlay used by this lighter.

get_fuel

Returns the amount of fuel

on_intercepted_bullet

Destroy the lighter when it's shot by a bullet

tool_use_check

Checks if the lighter is able to perform a welding task.

use

Uses fuel from the lighter.

\ No newline at end of file diff --git a/obj/item/lighter/greyscale.html b/obj/item/lighter/greyscale.html new file mode 100644 index 0000000000000..2e8ee15cd5412 --- /dev/null +++ b/obj/item/lighter/greyscale.html @@ -0,0 +1 @@ +/obj/item/lighter/greyscale - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

greyscale

Vars

color_listThe set of colors this lighter can be autoset as on init.
lighter_colorThe color of the lighter.

Var Details

color_list

The set of colors this lighter can be autoset as on init.

lighter_color

The color of the lighter.

\ No newline at end of file diff --git a/obj/item/lightreplacer.html b/obj/item/lightreplacer.html new file mode 100644 index 0000000000000..5876d71bd0caf --- /dev/null +++ b/obj/item/lightreplacer.html @@ -0,0 +1,8 @@ +/obj/item/lightreplacer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lightreplacer

Vars

bluespace_togglewhether it is "bluespace powered" (can be used at a range)
bulb_shardsEating used bulbs gives us bulb shards. Requires BULB_SHARDS_MAXIMUM to produce a new light.
chargeThe light replacer's charge increment (used for adding to cyborg light replacers)
max_usesThe maximum number of lights this replacer can hold
usesHow many uses does our light replacer have?

Procs

do_actionattempts to fix lights, flood lights & lights on a turf +Arguments

Var Details

bluespace_toggle

whether it is "bluespace powered" (can be used at a range)

bulb_shards

Eating used bulbs gives us bulb shards. Requires BULB_SHARDS_MAXIMUM to produce a new light.

charge

The light replacer's charge increment (used for adding to cyborg light replacers)

max_uses

The maximum number of lights this replacer can hold

uses

How many uses does our light replacer have?

Proc Details

do_action

attempts to fix lights, flood lights & lights on a turf +Arguments

+
    +
  • target - the target we are trying to fix
  • +
  • user - the mob performing this action +returns TRUE if the target was valid[light, floodlight or turf] regardless if any light's were fixed or not
  • +
\ No newline at end of file diff --git a/obj/item/lipstick.html b/obj/item/lipstick.html new file mode 100644 index 0000000000000..bced35e500acd --- /dev/null +++ b/obj/item/lipstick.html @@ -0,0 +1 @@ +/obj/item/lipstick - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lipstick

Vars

lipstick_colorActual color of the lipstick, also gets applied to the human
lipstick_traitA trait that's applied while someone has this lipstick applied, and is removed when the lipstick is removed
random_spawnCan this lipstick spawn randomly
styleThe style of lipstick. Upper, middle, or lower lip. Default is middle.

Var Details

lipstick_color

Actual color of the lipstick, also gets applied to the human

lipstick_trait

A trait that's applied while someone has this lipstick applied, and is removed when the lipstick is removed

random_spawn

Can this lipstick spawn randomly

style

The style of lipstick. Upper, middle, or lower lip. Default is middle.

\ No newline at end of file diff --git a/obj/item/machine_remote.html b/obj/item/machine_remote.html new file mode 100644 index 0000000000000..7ceba179e910f --- /dev/null +++ b/obj/item/machine_remote.html @@ -0,0 +1 @@ +/obj/item/machine_remote - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

machine_remote

Vars

bug_appearanceThe appearance put onto machines being actively controlled.
controlling_machine_or_botThe machine that's currently being controlled.
moving_bugDirect reference to the moving bug effect that moves towards machines we direct it at.
timeout_timeIf we're unable to be used, this is how long we have left to wait.

Procs

on_machine_empCalled when the machine we're controlling is EMP, removing our control from it.
remove_old_machineRemoves the machine being controlled as the current machine, taking its signals and overlays with it.
set_controlled_machineSets a controlled machine to a new machine, if possible. Checks if AIs can even control it.

Var Details

bug_appearance

The appearance put onto machines being actively controlled.

controlling_machine_or_bot

The machine that's currently being controlled.

moving_bug

Direct reference to the moving bug effect that moves towards machines we direct it at.

timeout_time

If we're unable to be used, this is how long we have left to wait.

Proc Details

on_machine_emp

Called when the machine we're controlling is EMP, removing our control from it.

remove_old_machine

Removes the machine being controlled as the current machine, taking its signals and overlays with it.

set_controlled_machine

Sets a controlled machine to a new machine, if possible. Checks if AIs can even control it.

\ No newline at end of file diff --git a/obj/item/mail.html b/obj/item/mail.html new file mode 100644 index 0000000000000..c4b73e6207d70 --- /dev/null +++ b/obj/item/mail.html @@ -0,0 +1 @@ +/obj/item/mail - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mail

Mail is tamper-evident and unresealable, postmarked by CentCom for an individual recepient.

Vars

department_colorsmail will have the color of the department the recipient is in.
generic_goodiesGoodies which can be given to anyone. The base weight is 50. For there to be a 50/50 chance of getting a department item, they need 50 weight as well.
goodie_countHow many goodies this mail contains.
postmarkedDoes the letter have the postmark overlay?
recipient_refWeak reference to who this mail is for and who can open it.
sort_tagDestination tagging for the mail sorter.
stamp_maxMaximum number of stamps on the letter.
stamp_offset_xPhysical offset of stamps on the object. X direction.
stamp_offset_yPhysical offset of stamps on the object. Y direction.
stampedDoes the letter have a stamp overlay?
stampsList of all stamp overlays on the letter.

Procs

initialize_for_recipientAccepts a mind to initialize goodies for a piece of mail.
junk_mailAlternate setup, just complete garbage inside and anyone can open
unwrapproc for unwrapping a mail. Goes just for an unwrapping procces, returns FALSE if it fails.

Var Details

department_colors

mail will have the color of the department the recipient is in.

generic_goodies

Goodies which can be given to anyone. The base weight is 50. For there to be a 50/50 chance of getting a department item, they need 50 weight as well.

goodie_count

How many goodies this mail contains.

postmarked

Does the letter have the postmark overlay?

recipient_ref

Weak reference to who this mail is for and who can open it.

sort_tag

Destination tagging for the mail sorter.

stamp_max

Maximum number of stamps on the letter.

stamp_offset_x

Physical offset of stamps on the object. X direction.

stamp_offset_y

Physical offset of stamps on the object. Y direction.

stamped

Does the letter have a stamp overlay?

stamps

List of all stamp overlays on the letter.

Proc Details

initialize_for_recipient

Accepts a mind to initialize goodies for a piece of mail.

junk_mail

Alternate setup, just complete garbage inside and anyone can open

unwrap

proc for unwrapping a mail. Goes just for an unwrapping procces, returns FALSE if it fails.

\ No newline at end of file diff --git a/obj/item/mail/junkmail.html b/obj/item/mail/junkmail.html new file mode 100644 index 0000000000000..7f4132cc39ff3 --- /dev/null +++ b/obj/item/mail/junkmail.html @@ -0,0 +1 @@ +/obj/item/mail/junkmail - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

junkmail

Procs

InitializeSubtype that's always junkmail

Proc Details

Initialize

Subtype that's always junkmail

\ No newline at end of file diff --git a/obj/item/mail/traitor.html b/obj/item/mail/traitor.html new file mode 100644 index 0000000000000..7a983854739a5 --- /dev/null +++ b/obj/item/mail/traitor.html @@ -0,0 +1 @@ +/obj/item/mail/traitor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

traitor

Vars

made_by_cached_ckeyCached information about who made it for logging purposes
made_by_cached_nameCached information about who made it for logging purposes

Var Details

made_by_cached_ckey

Cached information about who made it for logging purposes

made_by_cached_name

Cached information about who made it for logging purposes

\ No newline at end of file diff --git a/obj/item/market_uplink.html b/obj/item/market_uplink.html new file mode 100644 index 0000000000000..2b0495ddf37b5 --- /dev/null +++ b/obj/item/market_uplink.html @@ -0,0 +1 @@ +/obj/item/market_uplink - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

market_uplink

Vars

accessible_marketsList of typepaths for "/datum/market"s that this uplink can access.
buyingIs the uplink in the process of buying the selected item?
current_userReference to the currently logged in user's bank account.
selected_itemthe identifier of the item that the current uplink is attempting to buy
viewing_categoryWhat category is the current uplink viewing?
viewing_marketWhat market is currently being bought from by the uplink?

Procs

update_viewing_categorySimple internal proc for updating the viewing_category variable.

Var Details

accessible_markets

List of typepaths for "/datum/market"s that this uplink can access.

buying

Is the uplink in the process of buying the selected item?

current_user

Reference to the currently logged in user's bank account.

selected_item

the identifier of the item that the current uplink is attempting to buy

viewing_category

What category is the current uplink viewing?

viewing_market

What market is currently being bought from by the uplink?

Proc Details

update_viewing_category

Simple internal proc for updating the viewing_category variable.

\ No newline at end of file diff --git a/obj/item/match.html b/obj/item/match.html new file mode 100644 index 0000000000000..89dbc85f843c3 --- /dev/null +++ b/obj/item/match.html @@ -0,0 +1 @@ +/obj/item/match - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

match

Vars

burntWhether this match has burnt out.
litWhether this match has been lit.
smoketimeHow long the match lasts in seconds

Var Details

burnt

Whether this match has burnt out.

lit

Whether this match has been lit.

smoketime

How long the match lasts in seconds

\ No newline at end of file diff --git a/obj/item/mecha_ammo.html b/obj/item/mecha_ammo.html new file mode 100644 index 0000000000000..75c52a02d53ed --- /dev/null +++ b/obj/item/mecha_ammo.html @@ -0,0 +1 @@ +/obj/item/mecha_ammo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mecha_ammo

Vars

qdel_on_emptywhether to qdel this mecha_ammo when it becomes empty

Var Details

qdel_on_empty

whether to qdel this mecha_ammo when it becomes empty

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment.html b/obj/item/mecha_parts/mecha_equipment.html new file mode 100644 index 0000000000000..234520cc0fa22 --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment.html @@ -0,0 +1,41 @@ +/obj/item/mecha_parts/mecha_equipment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mecha_equipment

Mecha Equipment +All mech equippables are currently childs of this

Vars

activeWhether the module is currently active
active_labelLabel used in the ui next to the Activate/Enable/Disable buttons
can_be_toggledWhether you can turn this module on/off with a button
can_be_triggeredWhether you can trigger this module with a button (activation only)
chassisReference to mecha that this equipment is currently attached to
destroy_soundSound file: Sound to play when this equipment is destroyed while still attached to the mech
detachableboolean: FALSE if this equipment can not be removed/salvaged
energy_drainChassis power cell quantity used on activation
equip_cooldownCooldown in ticks required between activations of the equipment
equipment_slotDetermines what "slot" this attachment will try to attach to on a mech
harmfulBoolean: whether a pacifist can use this equipment
mech_flagsBitflag. Used by exosuit fabricator to assign sub-categories based on which exosuits can equip this.
rangeBitflag. Determines the range of the equipment.

Procs

action_checksChecks whether this mecha equipment can be active +Returns a bool +Arguments:
detachcalled to detach this equipment +Args:
do_after_checksdo after checks for the mecha equipment do afters
do_after_cooldownCooldown proc variant for using do_afters between activations instead of timers +Example of usage is mech drills, rcds +arguments:
do_after_mechaDo after wrapper for mecha equipment
get_snowflake_data
handle_ui_actcalled after ui_act, for custom ui act handling
needs_rearmAI mech pilot: returns TRUE if the Ai should try to reload the mecha
rearmProc for reloading weapons from HTML UI or by AI +note that this is old and likely broken code
special_attaching_interactionSpecial Attaching Interaction, used to bypass normal attachment procs.

Var Details

active

Whether the module is currently active

active_label

Label used in the ui next to the Activate/Enable/Disable buttons

can_be_toggled

Whether you can turn this module on/off with a button

can_be_triggered

Whether you can trigger this module with a button (activation only)

chassis

Reference to mecha that this equipment is currently attached to

destroy_sound

Sound file: Sound to play when this equipment is destroyed while still attached to the mech

detachable

boolean: FALSE if this equipment can not be removed/salvaged

energy_drain

Chassis power cell quantity used on activation

equip_cooldown

Cooldown in ticks required between activations of the equipment

equipment_slot

Determines what "slot" this attachment will try to attach to on a mech

harmful

Boolean: whether a pacifist can use this equipment

mech_flags

Bitflag. Used by exosuit fabricator to assign sub-categories based on which exosuits can equip this.

range

Bitflag. Determines the range of the equipment.

Proc Details

action_checks

Checks whether this mecha equipment can be active +Returns a bool +Arguments:

+
    +
  • target: atom we are activating/clicked on
  • +

detach

called to detach this equipment +Args:

+
    +
  • moveto: optional target to move this equipment to
  • +

do_after_checks

do after checks for the mecha equipment do afters

do_after_cooldown

Cooldown proc variant for using do_afters between activations instead of timers +Example of usage is mech drills, rcds +arguments:

+
    +
  • target: targeted atom for action activation
  • +
  • user: occupant to display do after for
  • +
  • interaction_key: interaction key to pass to /proc/do_after
  • +

do_after_mecha

Do after wrapper for mecha equipment

get_snowflake_data

get_snowflake_data

+

handles the returning of snowflake data required by the UI of the mecha +not the prettiest of procs honeslty +returns:

+
    +
  • an assoc list
  • +
  • must include an list("snowflake_id" = snowflake_id)
  • +

handle_ui_act

called after ui_act, for custom ui act handling

needs_rearm

AI mech pilot: returns TRUE if the Ai should try to reload the mecha

rearm

Proc for reloading weapons from HTML UI or by AI +note that this is old and likely broken code

special_attaching_interaction

Special Attaching Interaction, used to bypass normal attachment procs.

+

If an equipment needs to bypass the regular chain of events, this proc can be used to allow for that. If used, it +must handle actually calling attach(), as well as any feedback to the user. +Args:

+
    +
  • attach_right: True if attaching the the right-hand equipment slot, false otherwise.
  • +
  • mech: ref to the mecha that we're attaching onto.
  • +
  • user: ref to the mob doing the attaching
  • +
  • checkonly: check if we are able to handle the attach procedure ourselves, but don't actually do it yet.
  • +
\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/air_tank.html b/obj/item/mecha_parts/mecha_equipment/air_tank.html new file mode 100644 index 0000000000000..e9ca70f6e4de0 --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/air_tank.html @@ -0,0 +1,3 @@ +/obj/item/mecha_parts/mecha_equipment/air_tank - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

air_tank

Mech air tank module

Vars

auto_pressurize_on_sealWhether the pressurization should start automatically when the cabin is sealed airtight
connected_portPumping +The connected air port, if we have one
internal_tankThe internal air tank obj of the mech
maximum_pressureMaximum pressure of this air tank
start_fullWhether the tank starts pressurized
tank_pump_activeWhether the pump is moving the air from/to the connected port
tank_pump_directionDirection of the pump - into the tank from the port or the air (PUMP_IN) or from the tank (PUMP_OUT)
tank_pump_pressureTarget pressure of the pump
volumeVolume of this air tank

Var Details

auto_pressurize_on_seal

Whether the pressurization should start automatically when the cabin is sealed airtight

connected_port

Pumping +The connected air port, if we have one

internal_tank

The internal air tank obj of the mech

maximum_pressure

Maximum pressure of this air tank

start_full

Whether the tank starts pressurized

tank_pump_active

Whether the pump is moving the air from/to the connected port

tank_pump_direction

Direction of the pump - into the tank from the port or the air (PUMP_IN) or from the tank (PUMP_OUT)

tank_pump_pressure

Target pressure of the pump

volume

Volume of this air tank

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/armor.html b/obj/item/mecha_parts/mecha_equipment/armor.html new file mode 100644 index 0000000000000..482fbb0320a04 --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/armor.html @@ -0,0 +1 @@ +/obj/item/mecha_parts/mecha_equipment/armor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

armor

ARMOR BOOSTER MODULES

Vars

iconstate_nameicon in armor.dmi that shows in the UI
protect_nameshort protection name to display in the UI

Var Details

iconstate_name

icon in armor.dmi that shows in the UI

protect_name

short protection name to display in the UI

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/drill.html b/obj/item/mecha_parts/mecha_equipment/drill.html new file mode 100644 index 0000000000000..02c74a01b4686 --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/drill.html @@ -0,0 +1 @@ +/obj/item/mecha_parts/mecha_equipment/drill - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

drill

Procs

bump_mineCalled whenever the mech bumps into something; action() handles checking if it is a mineable turf

Proc Details

bump_mine

Called whenever the mech bumps into something; action() handles checking if it is a mineable turf

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/ejector.html b/obj/item/mecha_parts/mecha_equipment/ejector.html new file mode 100644 index 0000000000000..b597e8d90762b --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/ejector.html @@ -0,0 +1 @@ +/obj/item/mecha_parts/mecha_equipment/ejector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ejector

Vars

cargo_capacityNumber of atoms we can store

Var Details

cargo_capacity

Number of atoms we can store

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/extinguisher.html b/obj/item/mecha_parts/mecha_equipment/extinguisher.html new file mode 100644 index 0000000000000..b54ae874f509c --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/extinguisher.html @@ -0,0 +1,3 @@ +/obj/item/mecha_parts/mecha_equipment/extinguisher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

extinguisher

Vars

required_amountMinimum amount of reagent needed to activate.

Procs

attempt_refillHandles attempted refills of the extinguisher.

Var Details

required_amount

Minimum amount of reagent needed to activate.

Proc Details

attempt_refill

Handles attempted refills of the extinguisher.

+

The mech can only refill an extinguisher that is in front of it. +Only water tank objects can be used.

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/generator.html b/obj/item/mecha_parts/mecha_equipment/generator.html new file mode 100644 index 0000000000000..a22f6f2e009d4 --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/generator.html @@ -0,0 +1 @@ +/obj/item/mecha_parts/mecha_equipment/generator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

generator

GENERATOR

Vars

fuelType of fuel the generator is using. Is set in generator_init() to add the starting amount of fuel
fuelrate_activeFuel used per second while actively generating, in units
fuelrate_idleFuel used per second while idle, not generating, in units
max_fuelMaximum fuel capacity of the generator, in units
rechargerateEnergy recharged per second

Procs

generator_initIntroduces the actual fuel type to be used, as well as the starting amount of said fuel
load_fuelTry to insert more fuel into the generator

Var Details

fuel

Type of fuel the generator is using. Is set in generator_init() to add the starting amount of fuel

fuelrate_active

Fuel used per second while actively generating, in units

fuelrate_idle

Fuel used per second while idle, not generating, in units

max_fuel

Maximum fuel capacity of the generator, in units

rechargerate

Energy recharged per second

Proc Details

generator_init

Introduces the actual fuel type to be used, as well as the starting amount of said fuel

load_fuel

Try to insert more fuel into the generator

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/gravcatapult.html b/obj/item/mecha_parts/mecha_equipment/gravcatapult.html new file mode 100644 index 0000000000000..8769e5f161450 --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/gravcatapult.html @@ -0,0 +1 @@ +/obj/item/mecha_parts/mecha_equipment/gravcatapult - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gravcatapult

Vars

modeWhether we will throw movable atomstothrow by locking onto them or just throw them back from where we click
movable_targetWhich atom we are movable_target onto for

Var Details

mode

Whether we will throw movable atomstothrow by locking onto them or just throw them back from where we click

movable_target

Which atom we are movable_target onto for

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp.html b/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp.html new file mode 100644 index 0000000000000..a493c34caa809 --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp.html @@ -0,0 +1 @@ +/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hydraulic_clamp

Vars

clamp_damageHow much base damage this clamp does
clampsoundAudio for using the hydraulic clamp
killer_clampBool for whether we beat the hell out of things we punch (and tear off their arms)
workmechChassis but typed for the cargo_hold var

Var Details

clamp_damage

How much base damage this clamp does

clampsound

Audio for using the hydraulic clamp

killer_clamp

Bool for whether we beat the hell out of things we punch (and tear off their arms)

workmech

Chassis but typed for the cargo_hold var

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam.html b/obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam.html new file mode 100644 index 0000000000000..6f59f16a50427 --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam.html @@ -0,0 +1 @@ +/obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mechmedbeam

Medical Beam

Vars

medigunThe medical gun doing the actual healing. yes its wierd but its better than copypasting the entire thing

Var Details

medigun

The medical gun doing the actual healing. yes its wierd but its better than copypasting the entire thing

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/medical/sleeper.html b/obj/item/mecha_parts/mecha_equipment/medical/sleeper.html new file mode 100644 index 0000000000000..4c1e8f5bead93 --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/medical/sleeper.html @@ -0,0 +1 @@ +/obj/item/mecha_parts/mecha_equipment/medical/sleeper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sleeper

Vars

inject_amountamount of chems to inject into patient from other hands syringe gun
patientref to the patient loaded in the sleeper

Var Details

inject_amount

amount of chems to inject into patient from other hands syringe gun

patient

ref to the patient loaded in the sleeper

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun.html b/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun.html new file mode 100644 index 0000000000000..3d1f65e4da443 --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun.html @@ -0,0 +1 @@ +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

syringe_gun

Vars

known_reagentsList of all scanned reagents, starts with epinephrine and multiver
max_syringesMaximu amount of syringes we can hold
max_volumeMaximum volume of reagents we can hold
modeChooses what kind of action we should perform when clicking
processed_reagentsList of reagents we want to be creating this processing tick
synth_speedReagent amount in units we produce per two seconds
syringesLazylist of syringes that we've picked up

Procs

on_reagents_delHandles detaching signal hooks incase someone is crazy enough to make this edible.

Var Details

known_reagents

List of all scanned reagents, starts with epinephrine and multiver

max_syringes

Maximu amount of syringes we can hold

max_volume

Maximum volume of reagents we can hold

mode

Chooses what kind of action we should perform when clicking

processed_reagents

List of reagents we want to be creating this processing tick

synth_speed

Reagent amount in units we produce per two seconds

syringes

Lazylist of syringes that we've picked up

Proc Details

on_reagents_del

Handles detaching signal hooks incase someone is crazy enough to make this edible.

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/radio.html b/obj/item/mecha_parts/mecha_equipment/radio.html new file mode 100644 index 0000000000000..c8194e042badf --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/radio.html @@ -0,0 +1 @@ +/obj/item/mecha_parts/mecha_equipment/radio - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

radio

Mech radio module

Vars

radioInternal radio item

Procs

radio_deletedInternal radio got deleted, somehow

Var Details

radio

Internal radio item

Proc Details

radio_deleted

Internal radio got deleted, somehow

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/rcd.html b/obj/item/mecha_parts/mecha_equipment/rcd.html new file mode 100644 index 0000000000000..7acf28ce31127 --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/rcd.html @@ -0,0 +1 @@ +/obj/item/mecha_parts/mecha_equipment/rcd - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

rcd

Vars

deconstruct_activeWhether or not to deconstruct instead.
internal_rcdThe internal RCD item used by this equipment.
rcd_rangeMaximum range the RCD can construct at.
rcd_typeThe type of internal RCD this equipment uses.

Procs

attachSet the RCD's owner when attaching and detaching it

Var Details

deconstruct_active

Whether or not to deconstruct instead.

internal_rcd

The internal RCD item used by this equipment.

rcd_range

Maximum range the RCD can construct at.

rcd_type

The type of internal RCD this equipment uses.

Proc Details

attach

Set the RCD's owner when attaching and detaching it

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/repair_droid.html b/obj/item/mecha_parts/mecha_equipment/repair_droid.html new file mode 100644 index 0000000000000..17860d4fa28ef --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/repair_droid.html @@ -0,0 +1 @@ +/obj/item/mecha_parts/mecha_equipment/repair_droid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

repair_droid

REPAIR DROID

Vars

health_boostRepaired health per second

Var Details

health_boost

Repaired health per second

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/weapon.html b/obj/item/mecha_parts/mecha_equipment/weapon.html new file mode 100644 index 0000000000000..1a573b1c838df --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/weapon.html @@ -0,0 +1 @@ +/obj/item/mecha_parts/mecha_equipment/weapon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

weapon

Vars

fire_soundThe sound of the mecha weapon firing.
kickbackWill using this weapon in no grav push mecha back.
projectileThe type of bullet generated by the mecha weapon.
projectile_delayThe amount in deciseconds that the weapon sleeps between shots to simulate a 'burst fire'. The delay stops another bullet from being fired while sleeping.
projectiles_per_shotHow many shots are fired per action.
randomspreadWhether our bullets go off trajectory while firing randomly. Used to replicate recoil and not a structured, predictable spray.
varianceThe degrees by which each individual bullet fans out from a central point. A predictable spray of bullets.

Var Details

fire_sound

The sound of the mecha weapon firing.

kickback

Will using this weapon in no grav push mecha back.

projectile

The type of bullet generated by the mecha weapon.

projectile_delay

The amount in deciseconds that the weapon sleeps between shots to simulate a 'burst fire'. The delay stops another bullet from being fired while sleeping.

projectiles_per_shot

How many shots are fired per action.

randomspread

Whether our bullets go off trajectory while firing randomly. Used to replicate recoil and not a structured, predictable spray.

variance

The degrees by which each individual bullet fans out from a central point. A predictable spray of bullets.

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove.html b/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove.html new file mode 100644 index 0000000000000..d2cf3242c1b41 --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove.html @@ -0,0 +1 @@ +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

punching_glove

Vars

punch_damageDamage done by the glove on contact. Also used to determine throw distance (damage / 5)

Var Details

punch_damage

Damage done by the glove on contact. Also used to determine throw distance (damage / 5)

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_equipment/weapon/paddy_claw.html b/obj/item/mecha_parts/mecha_equipment/weapon/paddy_claw.html new file mode 100644 index 0000000000000..23b86fde50eef --- /dev/null +++ b/obj/item/mecha_parts/mecha_equipment/weapon/paddy_claw.html @@ -0,0 +1 @@ +/obj/item/mecha_parts/mecha_equipment/weapon/paddy_claw - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

paddy_claw

long claw of the law

Vars

autocuffVar for autocuff, can be toggled in the mech interface.
clampsoundAudio for using the hydraulic clamp
cuff_typeVar for the cuff type. Basically stole how cuffing works from secbots
secmechChassis but typed for the cargo_hold var

Var Details

autocuff

Var for autocuff, can be toggled in the mech interface.

clampsound

Audio for using the hydraulic clamp

cuff_type

Var for the cuff type. Basically stole how cuffing works from secbots

secmech

Chassis but typed for the cargo_hold var

\ No newline at end of file diff --git a/obj/item/mecha_parts/mecha_tracking.html b/obj/item/mecha_parts/mecha_tracking.html new file mode 100644 index 0000000000000..49a505274cbcd --- /dev/null +++ b/obj/item/mecha_parts/mecha_tracking.html @@ -0,0 +1 @@ +/obj/item/mecha_parts/mecha_tracking - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mecha_tracking

Vars

ai_beaconIf this beacon allows for AI control. Exists to avoid using istype() on checking
chassisThe Mecha that this tracking beacon is attached to
rechargingCooldown variable for EMP pulsing

Procs

get_mecha_infoReturns a html formatted string describing attached mech status
rechargeResets recharge variable, allowing tracker to be EMP pulsed again
shockAttempts to EMP mech that the tracker is attached to, if there is one and tracker is not on cooldown

Var Details

ai_beacon

If this beacon allows for AI control. Exists to avoid using istype() on checking

chassis

The Mecha that this tracking beacon is attached to

recharging

Cooldown variable for EMP pulsing

Proc Details

get_mecha_info

Returns a html formatted string describing attached mech status

recharge

Resets recharge variable, allowing tracker to be EMP pulsed again

shock

Attempts to EMP mech that the tracker is attached to, if there is one and tracker is not on cooldown

\ No newline at end of file diff --git a/obj/item/melee/baseball_bat.html b/obj/item/melee/baseball_bat.html new file mode 100644 index 0000000000000..a2a841f09cb7c --- /dev/null +++ b/obj/item/melee/baseball_bat.html @@ -0,0 +1 @@ +/obj/item/melee/baseball_bat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

baseball_bat

Vars

homerun_ableAre we able to do a homerun?
homerun_readyAre we ready to do a homerun?
mob_throwerCan we launch mobs thrown at us away?
thrown_datumsList of all thrown datums we sent.

Var Details

homerun_able

Are we able to do a homerun?

homerun_ready

Are we ready to do a homerun?

mob_thrower

Can we launch mobs thrown at us away?

thrown_datums

List of all thrown datums we sent.

\ No newline at end of file diff --git a/obj/item/melee/baton.html b/obj/item/melee/baton.html new file mode 100644 index 0000000000000..400a988d4d296 --- /dev/null +++ b/obj/item/melee/baton.html @@ -0,0 +1,19 @@ +/obj/item/melee/baton - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

baton

Vars

activeWhether this baton is active or not
affect_cyborgCan we stun cyborgs?
chunky_finger_usableBoolean on whether people with chunky fingers can use this baton.
clumsy_knockdown_timeThe length of the knockdown applied to the user on clumsy_check()
context_living_rmb_activeThe RMB context to show when the baton is active and targeting a living thing
context_living_rmb_inactiveThe RMB context to show when the baton is inactive and targeting a living thing
context_living_target_activeThe context to show when the baton is active and targeting a living thing
context_living_target_active_combat_modeThe context to show when the baton is active and targeting a living thing in combat mode
context_living_target_inactiveThe context to show when the baton is inactive and targeting a living thing
context_living_target_inactive_combat_modeThe context to show when the baton is inactive and targeting a living thing in combat mode
cooldownDefault wait time until can stun again.
cooldown_checkUsed interally, you don't want to modify
force_say_chanceChance of causing force_say() when stunning a human mob
knockdown_timeThe length of the knockdown applied to a struck living, non-cyborg mob.
log_stun_attackWhether the stun attack is logged. Only relevant for abductor batons, which have different modes.
on_stun_soundThe path of the default sound to play when we stun something.
on_stun_volumeThe volume of the above.
stamina_damageHow much stamina damage we deal on a successful hit against a living, non-cyborg mob.
stun_animationDo we animate the "hit" when stunning something?
stun_time_cyborgIf affect_cyborg is TRUE, this is how long we stun cyborgs for on a hit.

Procs

additional_effects_cyborgContains any special effects that we apply to cyborgs we stun. Does not include flashing the cyborg's screen, hardstunning them, etc.
additional_effects_non_cyborgContains any special effects that we apply to living, non-cyborg mobs we stun. Does not include applying a knockdown, dealing stamina damage, etc.
attackOk, think of baton attacks like a melee attack chain:
get_cyborg_stun_descriptionDefault message for stunning a cyborg.
get_stun_descriptionDefault message for stunning a living, non-cyborg mob.
get_unga_dunga_cyborg_stun_descriptionDefault message for trying to stun a cyborg with a baton that can't stun cyborgs.
get_wait_descriptionDescription for trying to stun when still on cooldown.

Var Details

active

Whether this baton is active or not

affect_cyborg

Can we stun cyborgs?

chunky_finger_usable

Boolean on whether people with chunky fingers can use this baton.

clumsy_knockdown_time

The length of the knockdown applied to the user on clumsy_check()

context_living_rmb_active

The RMB context to show when the baton is active and targeting a living thing

context_living_rmb_inactive

The RMB context to show when the baton is inactive and targeting a living thing

context_living_target_active

The context to show when the baton is active and targeting a living thing

context_living_target_active_combat_mode

The context to show when the baton is active and targeting a living thing in combat mode

context_living_target_inactive

The context to show when the baton is inactive and targeting a living thing

context_living_target_inactive_combat_mode

The context to show when the baton is inactive and targeting a living thing in combat mode

cooldown

Default wait time until can stun again.

cooldown_check

Used interally, you don't want to modify

force_say_chance

Chance of causing force_say() when stunning a human mob

knockdown_time

The length of the knockdown applied to a struck living, non-cyborg mob.

log_stun_attack

Whether the stun attack is logged. Only relevant for abductor batons, which have different modes.

on_stun_sound

The path of the default sound to play when we stun something.

on_stun_volume

The volume of the above.

stamina_damage

How much stamina damage we deal on a successful hit against a living, non-cyborg mob.

stun_animation

Do we animate the "hit" when stunning something?

stun_time_cyborg

If affect_cyborg is TRUE, this is how long we stun cyborgs for on a hit.

Proc Details

additional_effects_cyborg

Contains any special effects that we apply to cyborgs we stun. Does not include flashing the cyborg's screen, hardstunning them, etc.

additional_effects_non_cyborg

Contains any special effects that we apply to living, non-cyborg mobs we stun. Does not include applying a knockdown, dealing stamina damage, etc.

attack

Ok, think of baton attacks like a melee attack chain:

+

[/baton_attack()] comes first. It checks if the user is clumsy, if the target parried the attack and handles some messages and sounds.

+
    +
  • Depending on its return value, it'll either do a normal attack, continue to the next step or stop the attack.
  • +
+

[/finalize_baton_attack()] is then called. It handles logging stuff, sound effects and calls baton_effect().

+
    +
  • The proc is also called in other situations such as stunbatons right clicking or throw impact. Basically when baton_attack()
  • +
  • checks are either redundant or unnecessary.
  • +
+

[/baton_effect()] is third in the line. It knockdowns targets, along other effects called in additional_effects_cyborg() and

+
    +
  • additional_effects_non_cyborg().
  • +
+

Last but not least [/set_batoned()], which gives the target the IWASBATONED trait with REF(user) as source and then removes it

+
    +
  • after a cooldown has passed. Basically, it stops users from cheesing the cooldowns by dual wielding batons.
  • +
+

TL;DR: [/baton_attack()] -> [/finalize_baton_attack()] -> [/baton_effect()] -> [/set_batoned()]

get_cyborg_stun_description

Default message for stunning a cyborg.

get_stun_description

Default message for stunning a living, non-cyborg mob.

get_unga_dunga_cyborg_stun_description

Default message for trying to stun a cyborg with a baton that can't stun cyborgs.

get_wait_description

Description for trying to stun when still on cooldown.

\ No newline at end of file diff --git a/obj/item/melee/baton/security.html b/obj/item/melee/baton/security.html new file mode 100644 index 0000000000000..27a89d4d82310 --- /dev/null +++ b/obj/item/melee/baton/security.html @@ -0,0 +1 @@ +/obj/item/melee/baton/security - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

security

Procs

apply_stun_effect_endAfter the initial stun period, we check to see if the target needs to have the stun applied.
baton_attackHandles prodding targets with turned off stunbatons and right clicking stun'n'bash
toggle_lightToggles the stun baton's light

Proc Details

apply_stun_effect_end

After the initial stun period, we check to see if the target needs to have the stun applied.

baton_attack

Handles prodding targets with turned off stunbatons and right clicking stun'n'bash

toggle_light

Toggles the stun baton's light

\ No newline at end of file diff --git a/obj/item/melee/baton/security/cattleprod.html b/obj/item/melee/baton/security/cattleprod.html new file mode 100644 index 0000000000000..088932283072f --- /dev/null +++ b/obj/item/melee/baton/security/cattleprod.html @@ -0,0 +1 @@ +/obj/item/melee/baton/security/cattleprod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cattleprod

Vars

can_upgradeDetermines whether or not we can improve the cattleprod into a new type. Prevents turning the cattleprod subtypes into different subtypes, or wasting materials on making it....another version of itself.

Var Details

can_upgrade

Determines whether or not we can improve the cattleprod into a new type. Prevents turning the cattleprod subtypes into different subtypes, or wasting materials on making it....another version of itself.

\ No newline at end of file diff --git a/obj/item/melee/baton/telescopic.html b/obj/item/melee/baton/telescopic.html new file mode 100644 index 0000000000000..45d9935220fd0 --- /dev/null +++ b/obj/item/melee/baton/telescopic.html @@ -0,0 +1 @@ +/obj/item/melee/baton/telescopic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

telescopic

Vars

active_forceThe force on extension.
on_inhand_icon_stateThe inhand iconstate used when our baton is extended.
on_soundThe sound effecte played when our baton is extended.

Var Details

active_force

The force on extension.

on_inhand_icon_state

The inhand iconstate used when our baton is extended.

on_sound

The sound effecte played when our baton is extended.

\ No newline at end of file diff --git a/obj/item/melee/baton/telescopic/contractor_baton.html b/obj/item/melee/baton/telescopic/contractor_baton.html new file mode 100644 index 0000000000000..a53e027f260b8 --- /dev/null +++ b/obj/item/melee/baton/telescopic/contractor_baton.html @@ -0,0 +1 @@ +/obj/item/melee/baton/telescopic/contractor_baton - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

contractor_baton

Vars

lists_upgradesIf the baton lists its upgrades
upgrade_flagsBitflags for what upgrades the baton has

Var Details

lists_upgrades

If the baton lists its upgrades

upgrade_flags

Bitflags for what upgrades the baton has

\ No newline at end of file diff --git a/obj/item/melee/blood_magic/manipulator.html b/obj/item/melee/blood_magic/manipulator.html new file mode 100644 index 0000000000000..02e8a65d86e0c --- /dev/null +++ b/obj/item/melee/blood_magic/manipulator.html @@ -0,0 +1,11 @@ +/obj/item/melee/blood_magic/manipulator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

manipulator

Procs

attack_selfhandles untargeted use of blood rites
blood_drawhandles blood rites use on turfs, blood pools, and blood trails
cast_spellhandles inhand use of blood rites on constructs, humans, or non-living blood sources
drain_victimhandles blood rites use on a non-cultist human
heal_constructhandles blood rites usage on constructs
heal_cultisthandles blood rites usage on human cultists

Proc Details

attack_self

handles untargeted use of blood rites

+

allows user to trade in spell uses for equipment or spells

blood_draw

handles blood rites use on turfs, blood pools, and blood trails

cast_spell

handles inhand use of blood rites on constructs, humans, or non-living blood sources

+

see '/obj/item/melee/blood_magic/manipulator/proc/heal_construct' for construct/shade behavior +see '/obj/item/melee/blood_magic/manipulator/proc/heal_cultist' for human cultist behavior +see '/obj/item/melee/blood_magic/manipulator/proc/drain_victim' for human non-cultist behavior +if any of the above procs return FALSE, '/obj/item/melee/blood_magic/afterattack' will not be called

+

'/obj/item/melee/blood_magic/manipulator/proc/blood_draw' handles blood pools/trails and does not affect parent proc

drain_victim

handles blood rites use on a non-cultist human

+

returns TRUE if blood is successfully drained from the victim

heal_construct

handles blood rites usage on constructs

+

will only return TRUE if some amount healing is done

heal_cultist

handles blood rites usage on human cultists

+

first restores blood, then heals damage. healing damage is more expensive, especially if performed on oneself +returns TRUE if some amount of blood is restored and/or damage is healed

\ No newline at end of file diff --git a/obj/item/melee/breaching_hammer.html b/obj/item/melee/breaching_hammer.html new file mode 100644 index 0000000000000..beb9677ce8f1b --- /dev/null +++ b/obj/item/melee/breaching_hammer.html @@ -0,0 +1 @@ +/obj/item/melee/breaching_hammer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

breaching_hammer

Vars

breacherThe person breaching , initially us but we receive a signal with another one
breachingIf we are in the process of breaching
breaching_delayDelay between door hits
breaching_multiplerthe amount that the force is multiplied by , that is then applied as damage to the door.
breaching_targetThe door we aim to breach
registeredIf we are tracking the door and ourselves

Procs

breaching_loopKeeps looping under the door is no more , or someone moves , gets shot , dies , incapacitated , stunned , etc
remove_trackRemoves any form of tracking from the user and the item , make sure to call it on he proper item
try_breachingDoes the checks for breaching

Var Details

breacher

The person breaching , initially us but we receive a signal with another one

breaching

If we are in the process of breaching

breaching_delay

Delay between door hits

breaching_multipler

the amount that the force is multiplied by , that is then applied as damage to the door.

breaching_target

The door we aim to breach

registered

If we are tracking the door and ourselves

Proc Details

breaching_loop

Keeps looping under the door is no more , or someone moves , gets shot , dies , incapacitated , stunned , etc

remove_track

Removes any form of tracking from the user and the item , make sure to call it on he proper item

try_breaching

Does the checks for breaching

\ No newline at end of file diff --git a/obj/item/melee/cleaving_saw.html b/obj/item/melee/cleaving_saw.html new file mode 100644 index 0000000000000..322eedb20dd90 --- /dev/null +++ b/obj/item/melee/cleaving_saw.html @@ -0,0 +1 @@ +/obj/item/melee/cleaving_saw - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cleaving_saw

Vars

bleed_stacks_per_hitAmount of bleed stacks gained per hit
faction_bonus_forceAmount of damage we deal to the above factions
nemesis_factionsList of factions we deal bonus damage to
open_forceForce when the saw is opened.
open_throwforceThrowforce when the saw is opened.
swipingWhether the cleaver is actively AoE swiping something.

Var Details

bleed_stacks_per_hit

Amount of bleed stacks gained per hit

faction_bonus_force

Amount of damage we deal to the above factions

nemesis_factions

List of factions we deal bonus damage to

open_force

Force when the saw is opened.

open_throwforce

Throwforce when the saw is opened.

swiping

Whether the cleaver is actively AoE swiping something.

\ No newline at end of file diff --git a/obj/item/melee/cultblade.html b/obj/item/melee/cultblade.html new file mode 100644 index 0000000000000..de5e966a1be0e --- /dev/null +++ b/obj/item/melee/cultblade.html @@ -0,0 +1 @@ +/obj/item/melee/cultblade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cultblade

Vars

free_useIf TRUE, it can be used at will by anyone, non-cultists included

Var Details

free_use

If TRUE, it can be used at will by anyone, non-cultists included

\ No newline at end of file diff --git a/obj/item/melee/cultblade/haunted.html b/obj/item/melee/cultblade/haunted.html new file mode 100644 index 0000000000000..5432335584db3 --- /dev/null +++ b/obj/item/melee/cultblade/haunted.html @@ -0,0 +1 @@ +/obj/item/melee/cultblade/haunted - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

haunted

Vars

heretic_pathThe heretic path that the variable below uses to index abilities. Assigned when the heretic is ensouled.
heretic_paths_to_haunted_sword_abilitiesNested static list used to index abilities and names.
path_wielder_actionholder for the actual action when created.

Var Details

heretic_path

The heretic path that the variable below uses to index abilities. Assigned when the heretic is ensouled.

heretic_paths_to_haunted_sword_abilities

Nested static list used to index abilities and names.

path_wielder_action

holder for the actual action when created.

\ No newline at end of file diff --git a/obj/item/melee/energy.html b/obj/item/melee/energy.html new file mode 100644 index 0000000000000..8cac95cc9d2fe --- /dev/null +++ b/obj/item/melee/energy.html @@ -0,0 +1,3 @@ +/obj/item/melee/energy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

energy

Vars

active_forceForce while active.
active_heatThe heat given off when active.
active_hitsoundHitsound played attacking while active.
active_sharpnessSharpness while active.
active_throwforceThrowforce while active.
active_w_classWeight class while active.
disable_soundThe sound played when the item is turned off
enable_soundThe sound played when the item is turned on
sword_color_iconThe color of this energy based sword, for use in editing the icon_state.

Procs

on_transformSignal proc for COMSIG_TRANSFORMING_ON_TRANSFORM.

Var Details

active_force

Force while active.

active_heat

The heat given off when active.

active_hitsound

Hitsound played attacking while active.

active_sharpness

Sharpness while active.

active_throwforce

Throwforce while active.

active_w_class

Weight class while active.

disable_sound

The sound played when the item is turned off

enable_sound

The sound played when the item is turned on

sword_color_icon

The color of this energy based sword, for use in editing the icon_state.

Proc Details

on_transform

Signal proc for COMSIG_TRANSFORMING_ON_TRANSFORM.

+

Updates some of the stuff the transforming comp doesn't, such as heat and embedding.

+

Also gives feedback to the user and activates or deactives the glow.

\ No newline at end of file diff --git a/obj/item/melee/energy/blade.html b/obj/item/melee/energy/blade.html new file mode 100644 index 0000000000000..c9a774f2a7c6d --- /dev/null +++ b/obj/item/melee/energy/blade.html @@ -0,0 +1 @@ +/obj/item/melee/energy/blade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blade

Energy blades, which are effectively perma-extended energy swords

Vars

spark_systemOur linked spark system that emits from our sword.

Var Details

spark_system

Our linked spark system that emits from our sword.

\ No newline at end of file diff --git a/obj/item/melee/energy/sword/bananium.html b/obj/item/melee/energy/sword/bananium.html new file mode 100644 index 0000000000000..f84b0346e17fa --- /dev/null +++ b/obj/item/melee/energy/sword/bananium.html @@ -0,0 +1 @@ +/obj/item/melee/energy/sword/bananium - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bananium

Vars

next_trombone_allowedCooldown for making a trombone noise for failing to make a bananium desword

Var Details

next_trombone_allowed

Cooldown for making a trombone noise for failing to make a bananium desword

\ No newline at end of file diff --git a/obj/item/melee/energy/sword/cyborg.html b/obj/item/melee/energy/sword/cyborg.html new file mode 100644 index 0000000000000..ada6cad047238 --- /dev/null +++ b/obj/item/melee/energy/sword/cyborg.html @@ -0,0 +1 @@ +/obj/item/melee/energy/sword/cyborg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cyborg

Vars

hitcostThe cell cost of hitting something.

Var Details

hitcost

The cell cost of hitting something.

\ No newline at end of file diff --git a/obj/item/melee/energy/sword/saber.html b/obj/item/melee/energy/sword/saber.html new file mode 100644 index 0000000000000..228705be4f9bb --- /dev/null +++ b/obj/item/melee/energy/sword/saber.html @@ -0,0 +1 @@ +/obj/item/melee/energy/sword/saber - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

saber

Vars

hackedWhether this saber has been multitooled.
possible_sword_colorsAssoc list of all possible saber colors to color define. If you add a new color, make sure to update /obj/item/toy/sword too!

Var Details

hacked

Whether this saber has been multitooled.

possible_sword_colors

Assoc list of all possible saber colors to color define. If you add a new color, make sure to update /obj/item/toy/sword too!

\ No newline at end of file diff --git a/obj/item/melee/flyswatter.html b/obj/item/melee/flyswatter.html new file mode 100644 index 0000000000000..a632c833e1267 --- /dev/null +++ b/obj/item/melee/flyswatter.html @@ -0,0 +1 @@ +/obj/item/melee/flyswatter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

flyswatter

Vars

extra_strength_damageHow much extra damage the fly swatter does against mobs it is strong against
splattableThings in this list will be instantly splatted. Flyman weakness is handled in the flyman species weakness proc.
strong_againstThings in this list which take a lot more damage from the fly swatter, but not be necessarily killed by it.

Var Details

extra_strength_damage

How much extra damage the fly swatter does against mobs it is strong against

splattable

Things in this list will be instantly splatted. Flyman weakness is handled in the flyman species weakness proc.

strong_against

Things in this list which take a lot more damage from the fly swatter, but not be necessarily killed by it.

\ No newline at end of file diff --git a/obj/item/melee/powerfist.html b/obj/item/melee/powerfist.html new file mode 100644 index 0000000000000..d60f480139232 --- /dev/null +++ b/obj/item/melee/powerfist.html @@ -0,0 +1 @@ +/obj/item/melee/powerfist - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

powerfist

Vars

click_delayDelay between attacks
fist_pressure_settingPressure level on the fist
gas_per_fistAmount of moles per punch
tankTank used for the gauntlet's piston-ram.

Var Details

click_delay

Delay between attacks

fist_pressure_setting

Pressure level on the fist

gas_per_fist

Amount of moles per punch

tank

Tank used for the gauntlet's piston-ram.

\ No newline at end of file diff --git a/obj/item/melee/roastingstick.html b/obj/item/melee/roastingstick.html new file mode 100644 index 0000000000000..fc668fe3a6dcc --- /dev/null +++ b/obj/item/melee/roastingstick.html @@ -0,0 +1 @@ +/obj/item/melee/roastingstick - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

roastingstick

Vars

beamThe beam that links to the oven we use
held_sausageThe sausage attatched to our stick.
ovensStatic list of things our roasting stick can interact with.

Var Details

beam

The beam that links to the oven we use

held_sausage

The sausage attatched to our stick.

ovens

Static list of things our roasting stick can interact with.

\ No newline at end of file diff --git a/obj/item/melee/rune_carver.html b/obj/item/melee/rune_carver.html new file mode 100644 index 0000000000000..9bcb8aef4fa00 --- /dev/null +++ b/obj/item/melee/rune_carver.html @@ -0,0 +1 @@ +/obj/item/melee/rune_carver - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rune_carver

Vars

blacklisted_turfsTurfs that you cannot draw carvings on
current_runesA list of weakrefs to all of ourc urrent runes
drawingWhether we're currently drawing a rune
max_rune_amtMax amount of runes that can be drawn

Var Details

blacklisted_turfs

Turfs that you cannot draw carvings on

current_runes

A list of weakrefs to all of ourc urrent runes

drawing

Whether we're currently drawing a rune

max_rune_amt

Max amount of runes that can be drawn

\ No newline at end of file diff --git a/obj/item/melee/sabre.html b/obj/item/melee/sabre.html new file mode 100644 index 0000000000000..82d148e8cafff --- /dev/null +++ b/obj/item/melee/sabre.html @@ -0,0 +1 @@ +/obj/item/melee/sabre - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

sabre

Procs

attempt_baneIf the target reeks of maintenance, the blade can tear through their body with a total of 20 damage.
bane_effectsAssistants should fear this weapon.

Proc Details

attempt_bane

If the target reeks of maintenance, the blade can tear through their body with a total of 20 damage.

bane_effects

Assistants should fear this weapon.

\ No newline at end of file diff --git a/obj/item/melee/sickly_blade.html b/obj/item/melee/sickly_blade.html new file mode 100644 index 0000000000000..68bb4903121ac --- /dev/null +++ b/obj/item/melee/sickly_blade.html @@ -0,0 +1 @@ +/obj/item/melee/sickly_blade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

sickly_blade

Procs

check_usabilityChecks if the passed mob can use this blade without being stunned
seek_safetyAttempts to teleport the passed mob to somewhere safe on the station, if they can use the blade.

Proc Details

check_usability

Checks if the passed mob can use this blade without being stunned

seek_safety

Attempts to teleport the passed mob to somewhere safe on the station, if they can use the blade.

\ No newline at end of file diff --git a/obj/item/melee/skateboard.html b/obj/item/melee/skateboard.html new file mode 100644 index 0000000000000..8a55d47c7ea65 --- /dev/null +++ b/obj/item/melee/skateboard.html @@ -0,0 +1 @@ +/obj/item/melee/skateboard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

skateboard

Vars

board_item_typeThe vehicle counterpart for the board

Var Details

board_item_type

The vehicle counterpart for the board

\ No newline at end of file diff --git a/obj/item/melee/touch_attack.html b/obj/item/melee/touch_attack.html new file mode 100644 index 0000000000000..9a97a1481061b --- /dev/null +++ b/obj/item/melee/touch_attack.html @@ -0,0 +1,9 @@ +/obj/item/melee/touch_attack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

touch_attack

Touch attack item

+

Used for touch spells to have something physical to slap people with.

+

Try to avoid adding behavior onto these for your touch spells! +The spells themselves should handle most, if not all, of the casted effects.

+

These should generally just be dummy objects - holds name and icon stuff.

Vars

spell_which_made_usA weakref to what spell made us.

Procs

remove_hand_with_no_refundWhen the hand component of a touch spell is qdel'd, (the hand is dropped or otherwise lost), +the cooldown on the spell that made it is automatically refunded.

Var Details

spell_which_made_us

A weakref to what spell made us.

Proc Details

remove_hand_with_no_refund

When the hand component of a touch spell is qdel'd, (the hand is dropped or otherwise lost), +the cooldown on the spell that made it is automatically refunded.

+

However, if you want to consume the hand and not give a cooldown, +such as adding a unique behavior to the hand specifically, this function will do that.

\ No newline at end of file diff --git a/obj/item/mending_globule.html b/obj/item/mending_globule.html new file mode 100644 index 0000000000000..3a6d756dd9d56 --- /dev/null +++ b/obj/item/mending_globule.html @@ -0,0 +1 @@ +/obj/item/mending_globule - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mending_globule

This item is what is embedded into the mob, and actually handles healing of mending globules

Procs

processHandles the healing of the mending globule

Proc Details

process

Handles the healing of the mending globule

\ No newline at end of file diff --git a/obj/item/microfusion_cell_attachment.html b/obj/item/microfusion_cell_attachment.html new file mode 100644 index 0000000000000..012ddbfd8b23c --- /dev/null +++ b/obj/item/microfusion_cell_attachment.html @@ -0,0 +1 @@ +/obj/item/microfusion_cell_attachment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

microfusion_cell_attachment

Vars

attachment_overlay_icon_stateThe overlay that will be automatically added, must be in the cells icon.
processing_attachmentDoes this attachment process with the cell?

Var Details

attachment_overlay_icon_state

The overlay that will be automatically added, must be in the cells icon.

processing_attachment

Does this attachment process with the cell?

\ No newline at end of file diff --git a/obj/item/microfusion_cell_attachment/overcapacity.html b/obj/item/microfusion_cell_attachment/overcapacity.html new file mode 100644 index 0000000000000..4325ec8ee171d --- /dev/null +++ b/obj/item/microfusion_cell_attachment/overcapacity.html @@ -0,0 +1 @@ +/obj/item/microfusion_cell_attachment/overcapacity - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

overcapacity

Vars

capacity_increaseHow much the attachment increases the cell's capacity by, as a percentage
initial_charge_capacityThe initial capacity of the cell before this upgrade is added!

Var Details

capacity_increase

How much the attachment increases the cell's capacity by, as a percentage

initial_charge_capacity

The initial capacity of the cell before this upgrade is added!

\ No newline at end of file diff --git a/obj/item/microfusion_cell_attachment/rechargeable.html b/obj/item/microfusion_cell_attachment/rechargeable.html new file mode 100644 index 0000000000000..f8ad7f33c5b2f --- /dev/null +++ b/obj/item/microfusion_cell_attachment/rechargeable.html @@ -0,0 +1 @@ +/obj/item/microfusion_cell_attachment/rechargeable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rechargeable

Vars

bonus_charge_rateThe bonus charge rate by adding this attachment.

Var Details

bonus_charge_rate

The bonus charge rate by adding this attachment.

\ No newline at end of file diff --git a/obj/item/microfusion_cell_attachment/selfcharging.html b/obj/item/microfusion_cell_attachment/selfcharging.html new file mode 100644 index 0000000000000..f72e1adb21184 --- /dev/null +++ b/obj/item/microfusion_cell_attachment/selfcharging.html @@ -0,0 +1 @@ +/obj/item/microfusion_cell_attachment/selfcharging - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

selfcharging

Vars

self_charge_amountThe amount of charge this cell will passively gain!

Var Details

self_charge_amount

The amount of charge this cell will passively gain!

\ No newline at end of file diff --git a/obj/item/microfusion_gun_attachment.html b/obj/item/microfusion_gun_attachment.html new file mode 100644 index 0000000000000..1312fbd148cbb --- /dev/null +++ b/obj/item/microfusion_gun_attachment.html @@ -0,0 +1,2 @@ +/obj/item/microfusion_gun_attachment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

microfusion_gun_attachment

MICROFUSION GUN UPGRADE ATTACHMENTS +For adding unique abilities to microfusion guns, these can directly interact with the gun!

Vars

attachment_overlay_icon_stateThe attachment overlay icon state.
heat_additionThe added heat produced by having this module installed.
incompatible_attachmentsAny incompatible upgrade types.
power_usageHow much extra power do we use?
recoil_adjustRecoil adjustment. Also moved up to base attachment because of barrel mods and grips being in separate slots.
slotThe slot this attachment is installed in.
spread_adjustSpread adjustment. Moved up to the base attachment type because of barrel mods and grips being in separate slots.

Var Details

attachment_overlay_icon_state

The attachment overlay icon state.

heat_addition

The added heat produced by having this module installed.

incompatible_attachments

Any incompatible upgrade types.

power_usage

How much extra power do we use?

recoil_adjust

Recoil adjustment. Also moved up to base attachment because of barrel mods and grips being in separate slots.

slot

The slot this attachment is installed in.

spread_adjust

Spread adjustment. Moved up to the base attachment type because of barrel mods and grips being in separate slots.

\ No newline at end of file diff --git a/obj/item/microfusion_gun_attachment/barrel.html b/obj/item/microfusion_gun_attachment/barrel.html new file mode 100644 index 0000000000000..c58543fcf5dee --- /dev/null +++ b/obj/item/microfusion_gun_attachment/barrel.html @@ -0,0 +1 @@ +/obj/item/microfusion_gun_attachment/barrel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

barrel

Vars

burst_to_addIf this isn't null or zero, adds this burst to the gun's burst size.
delay_to_addIf this isn't null or zero, adds this fire delay to the gun.
new_fire_soundIf this isn't null, on attachment, this becomes the new fire sound.
projectile_overrideIf this isn't null, we're replacing our next loaded projectile with this type.

Var Details

burst_to_add

If this isn't null or zero, adds this burst to the gun's burst size.

delay_to_add

If this isn't null or zero, adds this fire delay to the gun.

new_fire_sound

If this isn't null, on attachment, this becomes the new fire sound.

projectile_override

If this isn't null, we're replacing our next loaded projectile with this type.

\ No newline at end of file diff --git a/obj/item/microfusion_gun_attachment/barrel/scatter.html b/obj/item/microfusion_gun_attachment/barrel/scatter.html new file mode 100644 index 0000000000000..4e93fa89a9249 --- /dev/null +++ b/obj/item/microfusion_gun_attachment/barrel/scatter.html @@ -0,0 +1 @@ +/obj/item/microfusion_gun_attachment/barrel/scatter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

scatter

Vars

pellets_to_addHow many pellets are we going to add to the existing amount on the gun?
variance_to_addThe variation in pellet scatter.

Var Details

pellets_to_add

How many pellets are we going to add to the existing amount on the gun?

variance_to_add

The variation in pellet scatter.

\ No newline at end of file diff --git a/obj/item/microfusion_gun_attachment/heatsink.html b/obj/item/microfusion_gun_attachment/heatsink.html new file mode 100644 index 0000000000000..d6629404abb87 --- /dev/null +++ b/obj/item/microfusion_gun_attachment/heatsink.html @@ -0,0 +1 @@ +/obj/item/microfusion_gun_attachment/heatsink - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

heatsink

Vars

cooling_rate_increaseCooling bonus.

Var Details

cooling_rate_increase

Cooling bonus.

\ No newline at end of file diff --git a/obj/item/microfusion_gun_attachment/rgb.html b/obj/item/microfusion_gun_attachment/rgb.html new file mode 100644 index 0000000000000..574723d9862bd --- /dev/null +++ b/obj/item/microfusion_gun_attachment/rgb.html @@ -0,0 +1 @@ +/obj/item/microfusion_gun_attachment/rgb - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rgb

Vars

color_to_applyWhat color are we changing the sprite to?

Var Details

color_to_apply

What color are we changing the sprite to?

\ No newline at end of file diff --git a/obj/item/microfusion_gun_attachment/undercharger.html b/obj/item/microfusion_gun_attachment/undercharger.html new file mode 100644 index 0000000000000..6d82b15381c27 --- /dev/null +++ b/obj/item/microfusion_gun_attachment/undercharger.html @@ -0,0 +1 @@ +/obj/item/microfusion_gun_attachment/undercharger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

undercharger

Vars

projectile_overrideThe projectile we override

Var Details

projectile_override

The projectile we override

\ No newline at end of file diff --git a/obj/item/microfusion_phase_emitter.html b/obj/item/microfusion_phase_emitter.html new file mode 100644 index 0000000000000..8e5740d22a904 --- /dev/null +++ b/obj/item/microfusion_phase_emitter.html @@ -0,0 +1 @@ +/obj/item/microfusion_phase_emitter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

microfusion_phase_emitter

Vars

cooling_systemActive cooling system
cooling_system_rateHow quickly does the active cooling system cool - 1/1 ratio of cell charge to cooling point
current_heatCurrent heat level
damagedAre we fucked?
fire_delayThe fire delay this emitter adds to the gun.
hackedAre we "hacked" thus allowing overclocking?
heat_dissipation_per_tickHow much heat it dissipates passively
integrityWhat is our dynamic integrity?
max_heatMax heat before it breaks
parent_gunHard ref to the gun.
sound_freqThe sound playback speed, used for overheating sound effects on fire.
throttle_percentageThermal throttle percentage

Var Details

cooling_system

Active cooling system

cooling_system_rate

How quickly does the active cooling system cool - 1/1 ratio of cell charge to cooling point

current_heat

Current heat level

damaged

Are we fucked?

fire_delay

The fire delay this emitter adds to the gun.

hacked

Are we "hacked" thus allowing overclocking?

heat_dissipation_per_tick

How much heat it dissipates passively

integrity

What is our dynamic integrity?

max_heat

Max heat before it breaks

parent_gun

Hard ref to the gun.

sound_freq

The sound playback speed, used for overheating sound effects on fire.

throttle_percentage

Thermal throttle percentage

\ No newline at end of file diff --git a/obj/item/mind_controller.html b/obj/item/mind_controller.html new file mode 100644 index 0000000000000..74dcb5b5e92b3 --- /dev/null +++ b/obj/item/mind_controller.html @@ -0,0 +1 @@ +/obj/item/mind_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mind_controller

Vars

collarReference to the mind control collar

Var Details

collar

Reference to the mind control collar

\ No newline at end of file diff --git a/obj/item/minebot_remote_control.html b/obj/item/minebot_remote_control.html new file mode 100644 index 0000000000000..fd516b879a12f --- /dev/null +++ b/obj/item/minebot_remote_control.html @@ -0,0 +1 @@ +/obj/item/minebot_remote_control - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

minebot_remote_control

Vars

bomb_timercooldown till we can drop the next bomb
last_userour last user
primedare we currently primed to drop a bomb?

Var Details

bomb_timer

cooldown till we can drop the next bomb

last_user

our last user

primed

are we currently primed to drop a bomb?

\ No newline at end of file diff --git a/obj/item/minespawner.html b/obj/item/minespawner.html new file mode 100644 index 0000000000000..0f0d0bb53dc68 --- /dev/null +++ b/obj/item/minespawner.html @@ -0,0 +1 @@ +/obj/item/minespawner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

minespawner

Procs

deploy_mineDeploys the mine and deletes itself

Proc Details

deploy_mine

Deploys the mine and deletes itself

\ No newline at end of file diff --git a/obj/item/mining_scanner.html b/obj/item/mining_scanner.html new file mode 100644 index 0000000000000..b90ff29ad7ff4 --- /dev/null +++ b/obj/item/mining_scanner.html @@ -0,0 +1 @@ +/obj/item/mining_scanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mining_scanner

Mining Scanners

Vars

cooldownThe cooldown between scans.
current_cooldownCurrent time until the next scan can be performed.

Var Details

cooldown

The cooldown between scans.

current_cooldown

Current time until the next scan can be performed.

\ No newline at end of file diff --git a/obj/item/mmi.html b/obj/item/mmi.html new file mode 100644 index 0000000000000..1ce6af768a598 --- /dev/null +++ b/obj/item/mmi.html @@ -0,0 +1,6 @@ +/obj/item/mmi - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mmi

Vars

immobilizeWhether the brainmob can move. Doesnt usually matter but SPHERICAL POSIBRAINSSS

Procs

force_brain_intoForces target brain into the MMI. Mainly intended for admin purposes, as this allows transfer without a mob or user.
set_brainmobProc to hook behavior associated to the change in value of the [/obj/item/mmi/var/brainmob] variable.
set_mechaProc to hook behavior associated to the change in value of the [obj/vehicle/sealed/var/mecha] variable.

Var Details

immobilize

Whether the brainmob can move. Doesnt usually matter but SPHERICAL POSIBRAINSSS

Proc Details

force_brain_into

Forces target brain into the MMI. Mainly intended for admin purposes, as this allows transfer without a mob or user.

+

Returns FALSE on failure, TRUE on success.

+

Arguments:

+
    +
  • new_brain - Brain to be force-inserted into the MMI. Any calling code should handle proper removal of the brain from the mob, as this proc only forceMoves.
  • +

set_brainmob

Proc to hook behavior associated to the change in value of the [/obj/item/mmi/var/brainmob] variable.

set_mecha

Proc to hook behavior associated to the change in value of the [obj/vehicle/sealed/var/mecha] variable.

\ No newline at end of file diff --git a/obj/item/mmi/posibrain.html b/obj/item/mmi/posibrain.html new file mode 100644 index 0000000000000..9eda5b35b19e1 --- /dev/null +++ b/obj/item/mmi/posibrain.html @@ -0,0 +1 @@ +/obj/item/mmi/posibrain - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

posibrain

Vars

ask_delayDelay after polling ghosts
ask_roleCan be set to tell ghosts what the brain will be used for
begin_activation_messageMessage sent to the user when polling ghosts
ckeys_enteredList of all ckeys who has already entered this posibrain once before.
dead_messageExamine message when the posibrain has no mob
fail_messageMessage sent as a visible message on failure
new_mob_messageVisible message sent when a player possesses the brain
next_askWorld time tick when ghost polling will be available again
picked_namePicked posibrain name
posibrain_job_pathRole assigned to the newly created mind
possible_namesOne of these names is randomly picked as the posibrain's name on possession. If left blank, it will use the global posibrain names
recharge_messageExamine message when the posibrain cannot poll ghosts due to cooldown
searchingWhether this positronic brain is currently looking for a ghost to enter it.
success_messageMessage sent as a visible message on success

Procs

activateTwo ways to activate a positronic brain. A clickable link in the ghost notif, or simply clicking the object itself.
attack_ghostATTACK GHOST IGNORING PARENT RETURN VALUE
ping_ghostsNotify ghosts that the posibrain is up for grabs
transfer_personalityMoves the candidate from the ghost to the posibrain

Var Details

ask_delay

Delay after polling ghosts

ask_role

Can be set to tell ghosts what the brain will be used for

begin_activation_message

Message sent to the user when polling ghosts

ckeys_entered

List of all ckeys who has already entered this posibrain once before.

dead_message

Examine message when the posibrain has no mob

fail_message

Message sent as a visible message on failure

new_mob_message

Visible message sent when a player possesses the brain

next_ask

World time tick when ghost polling will be available again

picked_name

Picked posibrain name

posibrain_job_path

Role assigned to the newly created mind

possible_names

One of these names is randomly picked as the posibrain's name on possession. If left blank, it will use the global posibrain names

recharge_message

Examine message when the posibrain cannot poll ghosts due to cooldown

searching

Whether this positronic brain is currently looking for a ghost to enter it.

success_message

Message sent as a visible message on success

Proc Details

activate

Two ways to activate a positronic brain. A clickable link in the ghost notif, or simply clicking the object itself.

attack_ghost

ATTACK GHOST IGNORING PARENT RETURN VALUE

ping_ghosts

Notify ghosts that the posibrain is up for grabs

transfer_personality

Moves the candidate from the ghost to the posibrain

\ No newline at end of file diff --git a/obj/item/mmi/posibrain/sphere.html b/obj/item/mmi/posibrain/sphere.html new file mode 100644 index 0000000000000..2ab5d59990d4a --- /dev/null +++ b/obj/item/mmi/posibrain/sphere.html @@ -0,0 +1 @@ +/obj/item/mmi/posibrain/sphere - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sphere

Posibrains but spherical. They can roll around and you can kick them

Vars

can_movewhen can we move again?
move_delayDelay between movements

Procs

attack_hand_secondaryPunt the shit across the room

Var Details

can_move

when can we move again?

move_delay

Delay between movements

Proc Details

attack_hand_secondary

Punt the shit across the room

\ No newline at end of file diff --git a/obj/item/mod/control.html b/obj/item/mod/control.html new file mode 100644 index 0000000000000..ce14e88c7194e --- /dev/null +++ b/obj/item/mod/control.html @@ -0,0 +1,3 @@ +/obj/item/mod/control - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

control

Misc stuff to avoid having files with three lines in them.

Vars

activatingIf the suit is currently activating/deactivating.
activation_step_timeHow long this MOD takes each part to seal.
activeIf the suit is deployed and turned on.
ai_assistantAI or pAI mob inhabiting the MOD.
can_pai_move_suitWhether or not an on-board pAI can move the suit. FALSE by default, intended to be modified either via VV or via a possible future pAI program.
charge_drainPower usage of the MOD.
complexityHow much module complexity this MOD is carrying.
complexity_maxHow much module complexity can this MOD carry.
cooldown_mod_moveCooldown for AI moves.
coreMOD core.
extended_descExtended description of the theme.
interface_breakIf the suit interface is broken.
lockedIf the suit is ID locked.
malfunctioningIf the suit is malfunctioning.
mod_linkThe MODlink datum, letting us call people from the suit.
mod_partsList of MODsuit part datums.
modulesModules the MOD currently possesses.
movedelayDelay between moves as AI.
openIf the suit wire/module hatch is open.
seconds_electrifiedHow long the MOD is electrified for.
selected_moduleCurrently used module.
skinLooks of the MOD.
slowdown_activeSlowdown of the MOD when active.
slowdown_inactiveSlowdown of the MOD when not active.
starting_frequencyThe starting MODlink frequency, overridden on subtypes that want it to be something.
themeThe MOD's theme, decides on some stuff like armor and statistics.
ui_themeTheme of the MOD TGUI
wearerPerson wearing the MODsuit.

Procs

ai_enter_modPlace an AI in control of your suit functions
ai_exit_modRemove an AI's control of your suit functions
choose_deployCreates a radial menu from which the user chooses parts of the suit to deploy/retract. Repeats until all parts are extended or retracted.
disable_modlinkDisables the mod link frequency attached to this unit.
get_wearerIntended for callbacks, don't use normally, just get wearer by itself.
insert_paiPlace a pAI in control of your suit functions
on_gained_assistantCalled when a new ai assistant is inserted
on_removed_assistantCalled when an existing ai assistant is removed
quick_activationQuickly deploys all the suit parts and if successful, seals them and turns on the suit. Intended mostly for outfits.
quick_deployQuickly deploys all parts (or retracts if all are on the wearer)
remove_paiRemoves pAI control from a modsuit
toggle_activateStarts the activation sequence, where parts of the suit activate one by one until the whole suit is on.
update_charge_alertUpdates the wearer's hud according to the current state of the MODsuit
update_external_organs_modsuit_statusSimple helper proc to force an update of the external organs appearance +if necessary.

Var Details

activating

If the suit is currently activating/deactivating.

activation_step_time

How long this MOD takes each part to seal.

active

If the suit is deployed and turned on.

ai_assistant

AI or pAI mob inhabiting the MOD.

can_pai_move_suit

Whether or not an on-board pAI can move the suit. FALSE by default, intended to be modified either via VV or via a possible future pAI program.

charge_drain

Power usage of the MOD.

complexity

How much module complexity this MOD is carrying.

complexity_max

How much module complexity can this MOD carry.

cooldown_mod_move

Cooldown for AI moves.

core

MOD core.

extended_desc

Extended description of the theme.

interface_break

If the suit interface is broken.

locked

If the suit is ID locked.

malfunctioning

If the suit is malfunctioning.

The MODlink datum, letting us call people from the suit.

mod_parts

List of MODsuit part datums.

modules

Modules the MOD currently possesses.

movedelay

Delay between moves as AI.

open

If the suit wire/module hatch is open.

seconds_electrified

How long the MOD is electrified for.

selected_module

Currently used module.

skin

Looks of the MOD.

slowdown_active

Slowdown of the MOD when active.

slowdown_inactive

Slowdown of the MOD when not active.

starting_frequency

The starting MODlink frequency, overridden on subtypes that want it to be something.

theme

The MOD's theme, decides on some stuff like armor and statistics.

ui_theme

Theme of the MOD TGUI

wearer

Person wearing the MODsuit.

Proc Details

ai_enter_mod

Place an AI in control of your suit functions

ai_exit_mod

Remove an AI's control of your suit functions

choose_deploy

Creates a radial menu from which the user chooses parts of the suit to deploy/retract. Repeats until all parts are extended or retracted.

Disables the mod link frequency attached to this unit.

get_wearer

Intended for callbacks, don't use normally, just get wearer by itself.

insert_pai

Place a pAI in control of your suit functions

on_gained_assistant

Called when a new ai assistant is inserted

on_removed_assistant

Called when an existing ai assistant is removed

quick_activation

Quickly deploys all the suit parts and if successful, seals them and turns on the suit. Intended mostly for outfits.

quick_deploy

Quickly deploys all parts (or retracts if all are on the wearer)

remove_pai

Removes pAI control from a modsuit

toggle_activate

Starts the activation sequence, where parts of the suit activate one by one until the whole suit is on.

update_charge_alert

Updates the wearer's hud according to the current state of the MODsuit

update_external_organs_modsuit_status

Simple helper proc to force an update of the external organs appearance +if necessary.

\ No newline at end of file diff --git a/obj/item/mod/control/pre_equipped.html b/obj/item/mod/control/pre_equipped.html new file mode 100644 index 0000000000000..79a183e9c5a03 --- /dev/null +++ b/obj/item/mod/control/pre_equipped.html @@ -0,0 +1 @@ +/obj/item/mod/control/pre_equipped - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pre_equipped

Vars

applied_cellThe cell we apply to the core. Only applies to standard core suits.
applied_coreThe MOD core we apply to the suit.
applied_modulesList of modules we spawn with.
applied_skinThe skin we apply to the suit, defaults to the default_skin of the theme.
default_pinsModules that we pin when the suit is installed for the first time, for convenience, can be applied or theme inbuilt modules.

Var Details

applied_cell

The cell we apply to the core. Only applies to standard core suits.

applied_core

The MOD core we apply to the suit.

applied_modules

List of modules we spawn with.

applied_skin

The skin we apply to the suit, defaults to the default_skin of the theme.

default_pins

Modules that we pin when the suit is installed for the first time, for convenience, can be applied or theme inbuilt modules.

\ No newline at end of file diff --git a/obj/item/mod/control/pre_equipped/responsory.html b/obj/item/mod/control/pre_equipped/responsory.html new file mode 100644 index 0000000000000..ad5b9ceb2b49e --- /dev/null +++ b/obj/item/mod/control/pre_equipped/responsory.html @@ -0,0 +1 @@ +/obj/item/mod/control/pre_equipped/responsory - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

responsory

Vars

additional_moduleAdditional module we add, as a treat.
insignia_typeThe insignia type, insignias show what sort of member of the ERT you're dealing with.

Var Details

additional_module

Additional module we add, as a treat.

insignia_type

The insignia type, insignias show what sort of member of the ERT you're dealing with.

\ No newline at end of file diff --git a/obj/item/mod/core.html b/obj/item/mod/core.html new file mode 100644 index 0000000000000..e3c0fc967327e --- /dev/null +++ b/obj/item/mod/core.html @@ -0,0 +1 @@ +/obj/item/mod/core - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

core

Vars

modMOD unit we are powering.

Procs

get_charge_icon_stateGets what icon state to display on the HUD for the charge level of this core

Var Details

mod

MOD unit we are powering.

Proc Details

get_charge_icon_state

Gets what icon state to display on the HUD for the charge level of this core

\ No newline at end of file diff --git a/obj/item/mod/core/ethereal.html b/obj/item/mod/core/ethereal.html new file mode 100644 index 0000000000000..bebf0f3820309 --- /dev/null +++ b/obj/item/mod/core/ethereal.html @@ -0,0 +1 @@ +/obj/item/mod/core/ethereal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ethereal

Vars

charge_modifierA modifier to all charge we use, ethereals don't need to spend as much energy as normal suits.

Var Details

charge_modifier

A modifier to all charge we use, ethereals don't need to spend as much energy as normal suits.

\ No newline at end of file diff --git a/obj/item/mod/core/plasma.html b/obj/item/mod/core/plasma.html new file mode 100644 index 0000000000000..ef7f7d16693d0 --- /dev/null +++ b/obj/item/mod/core/plasma.html @@ -0,0 +1 @@ +/obj/item/mod/core/plasma - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plasma

Vars

chargeHow much charge we are currently storing.
charger_listAssociated list of charge sources and how much they charge, only stacks allowed.
maxchargeHow much charge we can store.

Var Details

charge

How much charge we are currently storing.

charger_list

Associated list of charge sources and how much they charge, only stacks allowed.

maxcharge

How much charge we can store.

\ No newline at end of file diff --git a/obj/item/mod/core/plasma/lavaland.html b/obj/item/mod/core/plasma/lavaland.html new file mode 100644 index 0000000000000..112439750cc84 --- /dev/null +++ b/obj/item/mod/core/plasma/lavaland.html @@ -0,0 +1 @@ +/obj/item/mod/core/plasma/lavaland - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lavaland

Vars

max_spawnsMax number of mobs it can spawn
mob_spawnerMob spawner for the core
particle_effectParticle holder for pollen particles
spawned_mob_typeThe mob to be spawned by the core

Var Details

max_spawns

Max number of mobs it can spawn

mob_spawner

Mob spawner for the core

particle_effect

Particle holder for pollen particles

spawned_mob_type

The mob to be spawned by the core

\ No newline at end of file diff --git a/obj/item/mod/core/standard.html b/obj/item/mod/core/standard.html new file mode 100644 index 0000000000000..8ebbe5bfab75c --- /dev/null +++ b/obj/item/mod/core/standard.html @@ -0,0 +1 @@ +/obj/item/mod/core/standard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

standard

Vars

cellInstalled cell.

Var Details

cell

Installed cell.

\ No newline at end of file diff --git a/obj/item/mod/module.html b/obj/item/mod/module.html new file mode 100644 index 0000000000000..32779986ea709 --- /dev/null +++ b/obj/item/mod/module.html @@ -0,0 +1,8 @@ +/obj/item/mod/module - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

module

MOD Module - A special device installed in a MODsuit allowing the suit to do new stuff.

Vars

activeIs the module active
active_power_costPower use when active
allow_flagsflags that let the module ability be used in odd circumstances
complexityHow much space it takes up in the MOD
cooldown_timeCooldown after use
cooldown_timerTimer for the cooldown
deviceIf we're an active module, what item are we?
has_head_spriteDoes this module have a separate head sprite? Useful for muzzled sprites
head_only_when_activeIs the module's visuals head-only when active? Useful for visors and such, to avoid multiplying the amount of overlay with empty images
head_only_when_inactiveIs the module's visuals head-only when inactive? Useful for visors and such, to avoid multiplying the amount of overlay with empty images
idle_power_costPower use when idle
incompatible_modulesWhat modules are we incompatible with?
modLinked MODsuit
module_typeIf it's passive, togglable, usable or active
overlay_icon_fileIcon file for the overlay.
overlay_state_activeOverlay given to the user when the module is active
overlay_state_inactiveOverlay given to the user when the module is inactive
overlay_state_useOverlay given to the user when the module is used, lasts until cooldown finishes
pinned_toList of REF()s mobs we are pinned to, linked with their action buttons
removableIf it can be removed
required_slotsA list of slots required in the suit to work. Formatted like list(x|y, z, ...) where either x or y are required and z is required.
retracts_intoWhich part of the modsuit this module is 'attached' to, for purposes of hiding them when retracting the part. Null means it won't get hidden.
suit_supports_variations_flagsThe suit's supports_variations_flags, currently only for the chestplate and the helmet parts of the MODsuit.
tgui_idID used by their TGUI
use_energy_costPower use when used, we call it manually
use_mod_colorsDoes the overlay use the control unit's colors?
used_signalThe mouse button needed to use this module

Procs

activateCalled when the module is activated
add_module_overlayAdds the worn overlays to the suit.
add_ui_configurationGenerates an element of the get_configuration list with a display name, type and value
add_ui_dataAdds additional things to the MODsuit ui_data()
can_installAdditional checks for whenever a module can be installed into a suit or not
check_powerChecks if there is enough power in the suit
configure_editReceives configure edits from the TGUI and edits the vars
deactivateCalled when the module is deactivated
drain_powerDrains power from the suit charge
dropkeyOn drop key, concels a device item.
generate_worn_overlayGenerates an icon to be used for the suit's worn overlays
get_configurationCreates a list of configuring options for this module
handle_module_iconProc that handles the mutable_appearances of the module on the MODsuits
has_required_partsLooks through the MODsuit's parts to see if it has the parts required to support this module
is_module_hiddenCheck whether or not the mod's overlay is hidden.
on_activationCalled from the module's activate()
on_active_processCalled on the MODsuit's process if it is an active module
on_deactivationCalled from the module's deactivate()
on_device_deletionCalled when the device gets deleted on active modules
on_equipCalled when the MODsuit is equipped
on_exitCalled when the device moves to a different place on active modules
on_installCalled from MODsuit's install() proc, so when the module is installed
on_processCalled on the MODsuit's process
on_selectCalled when the module is selected from the TGUI, radial or the action button
on_select_useCalled when an activated module without a device is used
on_special_clickCalled when an activated module without a device is active and the user alt/middle-clicks
on_suit_activationCalled when the MODsuit is activated
on_suit_deactivationCalled when the MODsuit is deactivated
on_unequipCalled when the MODsuit is unequipped
on_useCalled from the module's used()
pinPins the module to the user's action buttons
start_cooldownApply a cooldown until this item can be used again
update_signalUpdates the signal used by active modules to be activated
usedCalled when the module is used

Var Details

active

Is the module active

active_power_cost

Power use when active

allow_flags

flags that let the module ability be used in odd circumstances

complexity

How much space it takes up in the MOD

cooldown_time

Cooldown after use

cooldown_timer

Timer for the cooldown

device

If we're an active module, what item are we?

has_head_sprite

Does this module have a separate head sprite? Useful for muzzled sprites

head_only_when_active

Is the module's visuals head-only when active? Useful for visors and such, to avoid multiplying the amount of overlay with empty images

head_only_when_inactive

Is the module's visuals head-only when inactive? Useful for visors and such, to avoid multiplying the amount of overlay with empty images

idle_power_cost

Power use when idle

incompatible_modules

What modules are we incompatible with?

mod

Linked MODsuit

module_type

If it's passive, togglable, usable or active

overlay_icon_file

Icon file for the overlay.

overlay_state_active

Overlay given to the user when the module is active

overlay_state_inactive

Overlay given to the user when the module is inactive

overlay_state_use

Overlay given to the user when the module is used, lasts until cooldown finishes

pinned_to

List of REF()s mobs we are pinned to, linked with their action buttons

removable

If it can be removed

required_slots

A list of slots required in the suit to work. Formatted like list(x|y, z, ...) where either x or y are required and z is required.

retracts_into

Which part of the modsuit this module is 'attached' to, for purposes of hiding them when retracting the part. Null means it won't get hidden.

suit_supports_variations_flags

The suit's supports_variations_flags, currently only for the chestplate and the helmet parts of the MODsuit.

tgui_id

ID used by their TGUI

use_energy_cost

Power use when used, we call it manually

use_mod_colors

Does the overlay use the control unit's colors?

used_signal

The mouse button needed to use this module

Proc Details

activate

Called when the module is activated

add_module_overlay

Adds the worn overlays to the suit.

add_ui_configuration

Generates an element of the get_configuration list with a display name, type and value

add_ui_data

Adds additional things to the MODsuit ui_data()

can_install

Additional checks for whenever a module can be installed into a suit or not

check_power

Checks if there is enough power in the suit

configure_edit

Receives configure edits from the TGUI and edits the vars

deactivate

Called when the module is deactivated

drain_power

Drains power from the suit charge

dropkey

On drop key, concels a device item.

generate_worn_overlay

Generates an icon to be used for the suit's worn overlays

get_configuration

Creates a list of configuring options for this module

handle_module_icon

Proc that handles the mutable_appearances of the module on the MODsuits

+

Arguments:

+
    +
  • standing - The mutable_appearance we're taking as a reference for this one, mainly to use its layer.
  • +
  • module_icon_state - The name of the icon_state we'll be using for the module on the MODsuit.
  • +

has_required_parts

Looks through the MODsuit's parts to see if it has the parts required to support this module

is_module_hidden

Check whether or not the mod's overlay is hidden.

+

Returns TRUE or FALSE based on whether the module is able to be hidden when the part it is attached to is retracted. +By default, will return FALSE for every mod unless 'retracts_into' is set for that mod.

on_activation

Called from the module's activate()

on_active_process

Called on the MODsuit's process if it is an active module

on_deactivation

Called from the module's deactivate()

on_device_deletion

Called when the device gets deleted on active modules

on_equip

Called when the MODsuit is equipped

on_exit

Called when the device moves to a different place on active modules

on_install

Called from MODsuit's install() proc, so when the module is installed

on_process

Called on the MODsuit's process

on_select

Called when the module is selected from the TGUI, radial or the action button

on_select_use

Called when an activated module without a device is used

on_special_click

Called when an activated module without a device is active and the user alt/middle-clicks

on_suit_activation

Called when the MODsuit is activated

on_suit_deactivation

Called when the MODsuit is deactivated

on_unequip

Called when the MODsuit is unequipped

on_use

Called from the module's used()

pin

Pins the module to the user's action buttons

start_cooldown

Apply a cooldown until this item can be used again

update_signal

Updates the signal used by active modules to be activated

used

Called when the module is used

\ No newline at end of file diff --git a/obj/item/mod/module/active_sonar.html b/obj/item/mod/module/active_sonar.html new file mode 100644 index 0000000000000..16cb871719346 --- /dev/null +++ b/obj/item/mod/module/active_sonar.html @@ -0,0 +1 @@ +/obj/item/mod/module/active_sonar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

active_sonar

Active Sonar - Displays a hud circle on the turf of any living creatures in the given radius

Vars

keyed_creaturesA keyed list of all creatures
radar_slicesHow many slices we make 360
scan_cooldownTime between us displaying radial scans
scan_cooldown_timeTime between us displaying radial scans
scanned_sliceThe current slice we're going to scan
sorted_creaturesA list of all creatures in range sorted by angle.

Procs

detect_living_creaturesDetects all living creatures within world.view, and returns the amount.
sort_all_creaturesSwaps all creatures when mod.wearer moves
sort_creature_angleSwaps around where a creature is, when they move or when they're first detected

Var Details

keyed_creatures

A keyed list of all creatures

radar_slices

How many slices we make 360

scan_cooldown

Time between us displaying radial scans

scan_cooldown_time

Time between us displaying radial scans

scanned_slice

The current slice we're going to scan

sorted_creatures

A list of all creatures in range sorted by angle.

Proc Details

detect_living_creatures

Detects all living creatures within world.view, and returns the amount.

sort_all_creatures

Swaps all creatures when mod.wearer moves

sort_creature_angle

Swaps around where a creature is, when they move or when they're first detected

\ No newline at end of file diff --git a/obj/item/mod/module/adrenaline_boost.html b/obj/item/mod/module/adrenaline_boost.html new file mode 100644 index 0000000000000..0592f592ae820 --- /dev/null +++ b/obj/item/mod/module/adrenaline_boost.html @@ -0,0 +1 @@ +/obj/item/mod/module/adrenaline_boost - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

adrenaline_boost

Adrenaline Boost - Stops all stuns the ninja is affected with, increases his speed.

Vars

reagent_requiredWhat reagent we need to refill?
reagent_required_amountHow much of a reagent we need to refill the boost.

Var Details

reagent_required

What reagent we need to refill?

reagent_required_amount

How much of a reagent we need to refill the boost.

\ No newline at end of file diff --git a/obj/item/mod/module/anomaly_locked.html b/obj/item/mod/module/anomaly_locked.html new file mode 100644 index 0000000000000..42e6739f01977 --- /dev/null +++ b/obj/item/mod/module/anomaly_locked.html @@ -0,0 +1 @@ +/obj/item/mod/module/anomaly_locked - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

anomaly_locked

Anomaly Locked - Causes the module to not function without an anomaly.

Vars

accepted_anomaliesAccepted types of anomaly cores.
coreThe core item the module runs off.
core_removableIf the core is removable once socketed.
prebuiltIf this one starts with a core in.

Var Details

accepted_anomalies

Accepted types of anomaly cores.

core

The core item the module runs off.

core_removable

If the core is removable once socketed.

prebuilt

If this one starts with a core in.

\ No newline at end of file diff --git a/obj/item/mod/module/anomaly_locked/kinesis.html b/obj/item/mod/module/anomaly_locked/kinesis.html new file mode 100644 index 0000000000000..05de80735d804 --- /dev/null +++ b/obj/item/mod/module/anomaly_locked/kinesis.html @@ -0,0 +1 @@ +/obj/item/mod/module/anomaly_locked/kinesis - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

kinesis

Kinesis - Gives you the ability to move and launch objects.

Vars

grab_rangeRange of the knesis grab.
grabbed_atomAtom we grabbed with kinesis.
hit_cooldownThe cooldown between us hitting objects with kinesis.
hit_cooldown_timeTime between us hitting objects with kinesis.
kinesis_beamRef of the beam following the grabbed atom.
kinesis_catcherOur mouse movement catcher.
kinesis_iconOverlay we add to each grabbed atom.
soundloopThe sounds playing while we grabbed an object.
stat_requiredStat required for us to grab a mob.

Var Details

grab_range

Range of the knesis grab.

grabbed_atom

Atom we grabbed with kinesis.

hit_cooldown

The cooldown between us hitting objects with kinesis.

hit_cooldown_time

Time between us hitting objects with kinesis.

kinesis_beam

Ref of the beam following the grabbed atom.

kinesis_catcher

Our mouse movement catcher.

kinesis_icon

Overlay we add to each grabbed atom.

soundloop

The sounds playing while we grabbed an object.

stat_required

Stat required for us to grab a mob.

\ No newline at end of file diff --git a/obj/item/mod/module/anomaly_locked/kinesis/admin.html b/obj/item/mod/module/anomaly_locked/kinesis/admin.html new file mode 100644 index 0000000000000..2dd9838ad9f77 --- /dev/null +++ b/obj/item/mod/module/anomaly_locked/kinesis/admin.html @@ -0,0 +1 @@ +/obj/item/mod/module/anomaly_locked/kinesis/admin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

admin

Admin suit version of kinesis. Can grab anything at any range, may enable phasing through walls.

Vars

phasingDoes our object phase through stuff?

Var Details

phasing

Does our object phase through stuff?

\ No newline at end of file diff --git a/obj/item/mod/module/anomaly_locked/teleporter.html b/obj/item/mod/module/anomaly_locked/teleporter.html new file mode 100644 index 0000000000000..8238900df6e15 --- /dev/null +++ b/obj/item/mod/module/anomaly_locked/teleporter.html @@ -0,0 +1 @@ +/obj/item/mod/module/anomaly_locked/teleporter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

teleporter

Teleporter - Lets the user teleport to a nearby location.

Vars

teleport_timeTime it takes to teleport

Var Details

teleport_time

Time it takes to teleport

\ No newline at end of file diff --git a/obj/item/mod/module/armor_booster.html b/obj/item/mod/module/armor_booster.html new file mode 100644 index 0000000000000..ad9d172297358 --- /dev/null +++ b/obj/item/mod/module/armor_booster.html @@ -0,0 +1 @@ +/obj/item/mod/module/armor_booster - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

armor_booster

Armor Booster - Grants your suit more armor and speed in exchange for EVA protection. Also acts as a welding screen.

Vars

actual_speed_addedSpeed that we actually added.
remove_pressure_protectionWhether or not this module removes pressure protection.
spaceproofedList of parts of the suit that are spaceproofed, for giving them back the pressure protection.
speed_addedSpeed added to the control unit.

Var Details

actual_speed_added

Speed that we actually added.

remove_pressure_protection

Whether or not this module removes pressure protection.

spaceproofed

List of parts of the suit that are spaceproofed, for giving them back the pressure protection.

speed_added

Speed added to the control unit.

\ No newline at end of file diff --git a/obj/item/mod/module/ash_accretion.html b/obj/item/mod/module/ash_accretion.html new file mode 100644 index 0000000000000..bce516e1cd32b --- /dev/null +++ b/obj/item/mod/module/ash_accretion.html @@ -0,0 +1 @@ +/obj/item/mod/module/ash_accretion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ash_accretion

Vars

accretion_turfsTurfs that let us accrete ash.
actual_speed_addedSpeed that we actually added.
armor_modArmor values per tile.
keep_turfsTurfs that let us keep ash.
max_traveled_tilesHow many tiles we can travel to max out the armor.
speed_addedSpeed added when you're fully covered in ash.
traveled_tilesHow many tiles we traveled through.

Var Details

accretion_turfs

Turfs that let us accrete ash.

actual_speed_added

Speed that we actually added.

armor_mod

Armor values per tile.

keep_turfs

Turfs that let us keep ash.

max_traveled_tiles

How many tiles we can travel to max out the armor.

speed_added

Speed added when you're fully covered in ash.

traveled_tiles

How many tiles we traveled through.

\ No newline at end of file diff --git a/obj/item/mod/module/atrocinator.html b/obj/item/mod/module/atrocinator.html new file mode 100644 index 0000000000000..2a241a4000d6a --- /dev/null +++ b/obj/item/mod/module/atrocinator.html @@ -0,0 +1 @@ +/obj/item/mod/module/atrocinator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

atrocinator

Atrocinator - Flips your gravity.

Vars

step_countHow many steps the user has taken since turning the suit on, used for footsteps.
you_fucked_upIf you use the module on a planetary turf, you fly up. To the sky.

Var Details

step_count

How many steps the user has taken since turning the suit on, used for footsteps.

you_fucked_up

If you use the module on a planetary turf, you fly up. To the sky.

\ No newline at end of file diff --git a/obj/item/mod/module/auto_doc.html b/obj/item/mod/module/auto_doc.html new file mode 100644 index 0000000000000..ed4a49d41e9ec --- /dev/null +++ b/obj/item/mod/module/auto_doc.html @@ -0,0 +1 @@ +/obj/item/mod/module/auto_doc - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

auto_doc

Blatant copy of the adrenaline boost module.

Vars

heal_cooldownCooldown betwen each treatment.
heal_timerTimer for the cooldown.
health_thresholdHealth threshold above which the module won't heal.
reagent_max_amountMaximum amount of reagents this module can hold.
reagent_requiredWhat reagent we need to refill?
reagent_required_amountHow much of a reagent we need to refill a single boost.

Procs

InitializeCreates chemical container for chemicals and fills it with chemicals. Chemception.
boost_aftereffectsDrawbacks to make this module less self-sufficient and so it feels "balanced" (there's no balance).
charge_boostRefills MODsuit module with the needed chemicals. That's all it does.
on_useHeals damage (in fact, injects chems) based on the damage received and certain other variables (a single one), i.e. having more than X amount of health, not having enough needed chemicals or so on.

Var Details

heal_cooldown

Cooldown betwen each treatment.

heal_timer

Timer for the cooldown.

health_threshold

Health threshold above which the module won't heal.

reagent_max_amount

Maximum amount of reagents this module can hold.

reagent_required

What reagent we need to refill?

reagent_required_amount

How much of a reagent we need to refill a single boost.

Proc Details

Initialize

Creates chemical container for chemicals and fills it with chemicals. Chemception.

boost_aftereffects

Drawbacks to make this module less self-sufficient and so it feels "balanced" (there's no balance).

charge_boost

Refills MODsuit module with the needed chemicals. That's all it does.

on_use

Heals damage (in fact, injects chems) based on the damage received and certain other variables (a single one), i.e. having more than X amount of health, not having enough needed chemicals or so on.

\ No newline at end of file diff --git a/obj/item/mod/module/baton_holster.html b/obj/item/mod/module/baton_holster.html new file mode 100644 index 0000000000000..274ac0c253d98 --- /dev/null +++ b/obj/item/mod/module/baton_holster.html @@ -0,0 +1 @@ +/obj/item/mod/module/baton_holster - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

baton_holster

Vars

eaten_batonHave they sacrificed a baton to actually be able to use this?

Var Details

eaten_baton

Have they sacrificed a baton to actually be able to use this?

\ No newline at end of file diff --git a/obj/item/mod/module/chameleon.html b/obj/item/mod/module/chameleon.html new file mode 100644 index 0000000000000..34ad48fa9a5ce --- /dev/null +++ b/obj/item/mod/module/chameleon.html @@ -0,0 +1 @@ +/obj/item/mod/module/chameleon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chameleon

Chameleon - lets the suit disguise as any item that would fit on that slot.

Vars

current_disguiseThe path of the item we're disguised as.
possible_disguisesA list of all the items the suit can disguise as.

Var Details

current_disguise

The path of the item we're disguised as.

possible_disguises

A list of all the items the suit can disguise as.

\ No newline at end of file diff --git a/obj/item/mod/module/circuit.html b/obj/item/mod/module/circuit.html new file mode 100644 index 0000000000000..3b3d2873facdf --- /dev/null +++ b/obj/item/mod/module/circuit.html @@ -0,0 +1 @@ +/obj/item/mod/module/circuit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

circuit

Vars

action_compsList of installed action components
shellA reference to the shell component, used to access the shell and its attached circuit

Var Details

action_comps

List of installed action components

shell

A reference to the shell component, used to access the shell and its attached circuit

\ No newline at end of file diff --git a/obj/item/mod/module/clamp.html b/obj/item/mod/module/clamp.html new file mode 100644 index 0000000000000..cbf3125b0abe2 --- /dev/null +++ b/obj/item/mod/module/clamp.html @@ -0,0 +1 @@ +/obj/item/mod/module/clamp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

clamp

Hydraulic Clamp - Lets you pick up and drop crates.

Vars

load_timeTime it takes to load a crate.
max_cratesThe max amount of crates you can carry.
stored_cratesThe crates stored in the module.

Var Details

load_time

Time it takes to load a crate.

max_crates

The max amount of crates you can carry.

stored_crates

The crates stored in the module.

\ No newline at end of file diff --git a/obj/item/mod/module/criminalcapture.html b/obj/item/mod/module/criminalcapture.html new file mode 100644 index 0000000000000..539043d9fb288 --- /dev/null +++ b/obj/item/mod/module/criminalcapture.html @@ -0,0 +1 @@ +/obj/item/mod/module/criminalcapture - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

criminalcapture

Criminal Capture - Generates hardlight bags you can put people in and sinch.

Vars

bodybag_typeTypepath of our bodybag
capture_timeTime to capture a prisoner.
linked_bodybagOur linked bodybag.
packup_timeTime to dematerialize a bodybag.

Var Details

bodybag_type

Typepath of our bodybag

capture_time

Time to capture a prisoner.

linked_bodybag

Our linked bodybag.

packup_time

Time to dematerialize a bodybag.

\ No newline at end of file diff --git a/obj/item/mod/module/dispenser.html b/obj/item/mod/module/dispenser.html new file mode 100644 index 0000000000000..fc0c83bcf31c1 --- /dev/null +++ b/obj/item/mod/module/dispenser.html @@ -0,0 +1 @@ +/obj/item/mod/module/dispenser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dispenser

Dispenser - Dispenses an item after a time passes.

Vars

dispense_timeTime it takes for us to dispense.
dispense_typePath we dispense.

Var Details

dispense_time

Time it takes for us to dispense.

dispense_type

Path we dispense.

\ No newline at end of file diff --git a/obj/item/mod/module/dna_lock.html b/obj/item/mod/module/dna_lock.html new file mode 100644 index 0000000000000..094c3d30b2772 --- /dev/null +++ b/obj/item/mod/module/dna_lock.html @@ -0,0 +1 @@ +/obj/item/mod/module/dna_lock - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dna_lock

DNA Lock - Prevents people without the set DNA from activating the suit.

Vars

dnaThe DNA we lock with.

Var Details

dna

The DNA we lock with.

\ No newline at end of file diff --git a/obj/item/mod/module/energy_net.html b/obj/item/mod/module/energy_net.html new file mode 100644 index 0000000000000..dc4d522563c11 --- /dev/null +++ b/obj/item/mod/module/energy_net.html @@ -0,0 +1 @@ +/obj/item/mod/module/energy_net - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

energy_net

Energy Net - Ensnares enemies in a net that prevents movement.

Vars

energy_netsList of all energy nets this module made.

Var Details

energy_nets

List of all energy nets this module made.

\ No newline at end of file diff --git a/obj/item/mod/module/energy_shield.html b/obj/item/mod/module/energy_shield.html new file mode 100644 index 0000000000000..f8e9d416baab4 --- /dev/null +++ b/obj/item/mod/module/energy_shield.html @@ -0,0 +1 @@ +/obj/item/mod/module/energy_shield - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

energy_shield

Energy Shield - Gives you a rechargeable energy shield that nullifies attacks.

Vars

charge_increment_delayHow much time it takes for charges to recover after they started recharging.
charge_recoveryHow much charge is recovered per recovery.
chargesCharges the shield should start with.
lose_multiple_chargesWhether or not this shield can lose multiple charges.
max_chargesMax charges of the shield.
recharge_pathThe item path to recharge this shielkd.
recharge_start_delayThe time it takes for the first charge to recover.
shield_iconThe icon_state of the shield.
shield_icon_fileThe icon file of the shield.

Var Details

charge_increment_delay

How much time it takes for charges to recover after they started recharging.

charge_recovery

How much charge is recovered per recovery.

charges

Charges the shield should start with.

lose_multiple_charges

Whether or not this shield can lose multiple charges.

max_charges

Max charges of the shield.

recharge_path

The item path to recharge this shielkd.

recharge_start_delay

The time it takes for the first charge to recover.

shield_icon

The icon_state of the shield.

shield_icon_file

The icon file of the shield.

\ No newline at end of file diff --git a/obj/item/mod/module/eradication_lock.html b/obj/item/mod/module/eradication_lock.html new file mode 100644 index 0000000000000..9d80323a5ef15 --- /dev/null +++ b/obj/item/mod/module/eradication_lock.html @@ -0,0 +1 @@ +/obj/item/mod/module/eradication_lock - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

eradication_lock

Eradication lock - Prevents people who aren't the owner of the suit from existing on the timeline via eradicating the suit with the intruder inside

Vars

true_owner_ckeyThe ckey we lock with, to allow all alternate versions of the user.

Procs

on_mod_activationSignal fired when the modsuit tries activating
on_mod_removalSignal fired when the modsuit tries removing a module.

Var Details

true_owner_ckey

The ckey we lock with, to allow all alternate versions of the user.

Proc Details

on_mod_activation

Signal fired when the modsuit tries activating

on_mod_removal

Signal fired when the modsuit tries removing a module.

\ No newline at end of file diff --git a/obj/item/mod/module/flashlight.html b/obj/item/mod/module/flashlight.html new file mode 100644 index 0000000000000..c8c7023e2d90a --- /dev/null +++ b/obj/item/mod/module/flashlight.html @@ -0,0 +1 @@ +/obj/item/mod/module/flashlight - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

flashlight

Flashlight - Gives the suit a customizable flashlight.

Vars

base_powerCharge drain per range amount.
max_rangeMaximum range we can set.
min_rangeMinimum range we can set.

Var Details

base_power

Charge drain per range amount.

max_range

Maximum range we can set.

min_range

Minimum range we can set.

\ No newline at end of file diff --git a/obj/item/mod/module/hacker.html b/obj/item/mod/module/hacker.html new file mode 100644 index 0000000000000..2cfad458b0a3b --- /dev/null +++ b/obj/item/mod/module/hacker.html @@ -0,0 +1 @@ +/obj/item/mod/module/hacker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hacker

Hacker - This module hooks onto your right-clicks with empty hands and causes ninja actions.

Vars

communication_console_hack_successWhether or not the communication console hack was used to summon another antagonist.
door_hack_counterHow many times the module has been used to force open doors.

Var Details

communication_console_hack_success

Whether or not the communication console hack was used to summon another antagonist.

door_hack_counter

How many times the module has been used to force open doors.

\ No newline at end of file diff --git a/obj/item/mod/module/hat_stabilizer.html b/obj/item/mod/module/hat_stabilizer.html new file mode 100644 index 0000000000000..6386ef01ff950 --- /dev/null +++ b/obj/item/mod/module/hat_stabilizer.html @@ -0,0 +1 @@ +/obj/item/mod/module/hat_stabilizer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hat_stabilizer

Hat Stabilizer - Allows displaying a hat over the MOD-helmet, à la plasmamen helmets.

Vars

attached_hatCurrently "stored" hat. No armor or function will be inherited, only the icon and cover flags.
former_flagsOriginal cover flags for the MOD helmet, before a hat is placed

Var Details

attached_hat

Currently "stored" hat. No armor or function will be inherited, only the icon and cover flags.

former_flags

Original cover flags for the MOD helmet, before a hat is placed

\ No newline at end of file diff --git a/obj/item/mod/module/health_analyzer.html b/obj/item/mod/module/health_analyzer.html new file mode 100644 index 0000000000000..21427d9d6d64d --- /dev/null +++ b/obj/item/mod/module/health_analyzer.html @@ -0,0 +1 @@ +/obj/item/mod/module/health_analyzer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

health_analyzer

Health Analyzer - Gives the user a ranged health analyzer and their health status in the panel.

Vars

modeScanning mode, changes how we scan something.
modesList of all scanning modes.

Var Details

mode

Scanning mode, changes how we scan something.

modes

List of all scanning modes.

\ No newline at end of file diff --git a/obj/item/mod/module/holster.html b/obj/item/mod/module/holster.html new file mode 100644 index 0000000000000..9bc492a8a64f6 --- /dev/null +++ b/obj/item/mod/module/holster.html @@ -0,0 +1 @@ +/obj/item/mod/module/holster - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

holster

Holster - Instantly holsters any not huge gun.

Vars

holsteredGun we have holstered.

Var Details

holstered

Gun we have holstered.

\ No newline at end of file diff --git a/obj/item/mod/module/hydraulic.html b/obj/item/mod/module/hydraulic.html new file mode 100644 index 0000000000000..63a9dc003c073 --- /dev/null +++ b/obj/item/mod/module/hydraulic.html @@ -0,0 +1 @@ +/obj/item/mod/module/hydraulic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hydraulic

Vars

launch_timeTime it takes to launch
lightningUser overlay

Var Details

launch_time

Time it takes to launch

lightning

User overlay

\ No newline at end of file diff --git a/obj/item/mod/module/infiltrator.html b/obj/item/mod/module/infiltrator.html new file mode 100644 index 0000000000000..b91d68230048c --- /dev/null +++ b/obj/item/mod/module/infiltrator.html @@ -0,0 +1 @@ +/obj/item/mod/module/infiltrator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

infiltrator

Vars

traits_to_addList of traits added when the suit is activated

Var Details

traits_to_add

List of traits added when the suit is activated

\ No newline at end of file diff --git a/obj/item/mod/module/jetpack.html b/obj/item/mod/module/jetpack.html new file mode 100644 index 0000000000000..eaa98bcbe6047 --- /dev/null +++ b/obj/item/mod/module/jetpack.html @@ -0,0 +1,3 @@ +/obj/item/mod/module/jetpack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

jetpack

Ion Jetpack - Lets the user fly freely through space using battery charge.

Vars

drift_forceHow much force this module can apply per tick
stabilizeDo we have stabilizers? If yes the user won't move from inertia.
stabilizer_forceHow much force this module's stabilizier can put out
thrust_callbackCallback to see if we can thrust the user.

Procs

configure_jetpackconfigures/re-configures the jetpack component

Var Details

drift_force

How much force this module can apply per tick

stabilize

Do we have stabilizers? If yes the user won't move from inertia.

stabilizer_force

How much force this module's stabilizier can put out

thrust_callback

Callback to see if we can thrust the user.

Proc Details

configure_jetpack

configures/re-configures the jetpack component

+

Arguments +stabilize - Should this jetpack be stabalized

\ No newline at end of file diff --git a/obj/item/mod/module/magboot.html b/obj/item/mod/module/magboot.html new file mode 100644 index 0000000000000..717a7963449f2 --- /dev/null +++ b/obj/item/mod/module/magboot.html @@ -0,0 +1 @@ +/obj/item/mod/module/magboot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

magboot

Magnetic Stability - Gives the user a slowdown but makes them negate gravity and be immune to slips.

Vars

active_traitsA list of traits to add to the wearer when we're active (see: Magboots)
slowdown_activeSlowdown added onto the suit.

Var Details

active_traits

A list of traits to add to the wearer when we're active (see: Magboots)

slowdown_active

Slowdown added onto the suit.

\ No newline at end of file diff --git a/obj/item/mod/module/magnetic_harness.html b/obj/item/mod/module/magnetic_harness.html new file mode 100644 index 0000000000000..2f67a7cee9d71 --- /dev/null +++ b/obj/item/mod/module/magnetic_harness.html @@ -0,0 +1 @@ +/obj/item/mod/module/magnetic_harness - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

magnetic_harness

Magnetic Harness - Automatically puts guns in your suit storage when you drop them.

Vars

already_allowed_gunsThe guns already allowed by the modsuit chestplate.
guns_typecacheThe typecache of all guns we allow.
magnet_delayTime before we activate the magnet.

Var Details

already_allowed_guns

The guns already allowed by the modsuit chestplate.

guns_typecache

The typecache of all guns we allow.

magnet_delay

Time before we activate the magnet.

\ No newline at end of file diff --git a/obj/item/mod/module/megaphone.html b/obj/item/mod/module/megaphone.html new file mode 100644 index 0000000000000..f493df43fc836 --- /dev/null +++ b/obj/item/mod/module/megaphone.html @@ -0,0 +1 @@ +/obj/item/mod/module/megaphone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

megaphone

Megaphone - Lets you speak loud.

Vars

voicespanList of spans we add to the speaker.

Var Details

voicespan

List of spans we add to the speaker.

\ No newline at end of file diff --git a/obj/item/mod/module/mister.html b/obj/item/mod/module/mister.html new file mode 100644 index 0000000000000..9a77c1a1d3750 --- /dev/null +++ b/obj/item/mod/module/mister.html @@ -0,0 +1 @@ +/obj/item/mod/module/mister - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mister

Mister - Sprays water over an area.

Vars

volumeVolume of our reagent holder.

Var Details

volume

Volume of our reagent holder.

\ No newline at end of file diff --git a/obj/item/mod/module/mouthhole.html b/obj/item/mod/module/mouthhole.html new file mode 100644 index 0000000000000..139586acf16e1 --- /dev/null +++ b/obj/item/mod/module/mouthhole.html @@ -0,0 +1 @@ +/obj/item/mod/module/mouthhole - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mouthhole

Eating Apparatus - Lets the user eat/drink with the suit on.

Vars

former_helmet_flagsFormer flags of the helmet.
former_mask_flagsFormer flags of the mask.
former_visor_helmet_flagsFormer visor flags of the helmet.
former_visor_mask_flagsFormer visor flags of the mask.

Var Details

former_helmet_flags

Former flags of the helmet.

former_mask_flags

Former flags of the mask.

former_visor_helmet_flags

Former visor flags of the helmet.

former_visor_mask_flags

Former visor flags of the mask.

\ No newline at end of file diff --git a/obj/item/mod/module/orebag.html b/obj/item/mod/module/orebag.html new file mode 100644 index 0000000000000..f7efa553cb85f --- /dev/null +++ b/obj/item/mod/module/orebag.html @@ -0,0 +1 @@ +/obj/item/mod/module/orebag - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

orebag

Ore Bag - Lets you pick up ores and drop them from the suit.

Vars

oresThe ores stored in the bag.

Var Details

ores

The ores stored in the bag.

\ No newline at end of file diff --git a/obj/item/mod/module/organizer.html b/obj/item/mod/module/organizer.html new file mode 100644 index 0000000000000..8a76cff615ff8 --- /dev/null +++ b/obj/item/mod/module/organizer.html @@ -0,0 +1 @@ +/obj/item/mod/module/organizer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

organizer

Organizer - Lets you shoot organs, immediately replacing them if the target has the organ manipulation surgery.

Vars

max_organsHow many organs the module can hold.
organ_listA list of all our organs.

Var Details

max_organs

How many organs the module can hold.

organ_list

A list of all our organs.

\ No newline at end of file diff --git a/obj/item/mod/module/paper_dispenser.html b/obj/item/mod/module/paper_dispenser.html new file mode 100644 index 0000000000000..4d412b815c160 --- /dev/null +++ b/obj/item/mod/module/paper_dispenser.html @@ -0,0 +1 @@ +/obj/item/mod/module/paper_dispenser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

paper_dispenser

Paper Dispenser - Dispenses (sometimes burning) paper sheets.

Vars

num_sheets_dispensedThe total number of sheets created by this MOD. The more sheets, them more likely they set on fire.

Var Details

num_sheets_dispensed

The total number of sheets created by this MOD. The more sheets, them more likely they set on fire.

\ No newline at end of file diff --git a/obj/item/mod/module/pathfinder.html b/obj/item/mod/module/pathfinder.html new file mode 100644 index 0000000000000..d229d1a23676e --- /dev/null +++ b/obj/item/mod/module/pathfinder.html @@ -0,0 +1 @@ +/obj/item/mod/module/pathfinder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pathfinder

Pathfinder - Can fly the suit from a long distance to an implant installed in someone.

Vars

implantThe pathfinding implant.

Var Details

implant

The pathfinding implant.

\ No newline at end of file diff --git a/obj/item/mod/module/plate_compression.html b/obj/item/mod/module/plate_compression.html new file mode 100644 index 0000000000000..b0f8479a11c0e --- /dev/null +++ b/obj/item/mod/module/plate_compression.html @@ -0,0 +1 @@ +/obj/item/mod/module/plate_compression - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plate_compression

Plate Compression - Compresses the suit to normal size

Vars

new_sizeThe size we set the suit to.
old_sizeThe suit's size before the module is installed.

Var Details

new_size

The size we set the suit to.

old_size

The suit's size before the module is installed.

\ No newline at end of file diff --git a/obj/item/mod/module/power_kick.html b/obj/item/mod/module/power_kick.html new file mode 100644 index 0000000000000..cd1de20353017 --- /dev/null +++ b/obj/item/mod/module/power_kick.html @@ -0,0 +1 @@ +/obj/item/mod/module/power_kick - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

power_kick

Power kick - Lets the user launch themselves at someone to kick them.

Vars

damageDamage on kick.
knockdown_timeHow long we knockdown for on the kick.
wounding_powerThe wound bonus of the kick.

Var Details

damage

Damage on kick.

knockdown_time

How long we knockdown for on the kick.

wounding_power

The wound bonus of the kick.

\ No newline at end of file diff --git a/obj/item/mod/module/projectile_dampener.html b/obj/item/mod/module/projectile_dampener.html new file mode 100644 index 0000000000000..962ca58e2b7c4 --- /dev/null +++ b/obj/item/mod/module/projectile_dampener.html @@ -0,0 +1 @@ +/obj/item/mod/module/projectile_dampener - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

projectile_dampener

Projectile Dampener - Weakens projectiles in range.

Vars

damage_multiplierDamage multiplier on projectiles.
dampening_fieldThe dampening field
debuff_multiplierDebuff multiplier on projectiles.
field_radiusRadius of the dampening field.
projectile_effectEffect image on projectiles.
speed_multiplierSpeed multiplier on projectiles, higher means slower.
tracked_projectilesList of all tracked projectiles.

Var Details

damage_multiplier

Damage multiplier on projectiles.

dampening_field

The dampening field

debuff_multiplier

Debuff multiplier on projectiles.

field_radius

Radius of the dampening field.

projectile_effect

Effect image on projectiles.

speed_multiplier

Speed multiplier on projectiles, higher means slower.

tracked_projectiles

List of all tracked projectiles.

\ No newline at end of file diff --git a/obj/item/mod/module/rad_protection.html b/obj/item/mod/module/rad_protection.html new file mode 100644 index 0000000000000..80bc86a89e5fa --- /dev/null +++ b/obj/item/mod/module/rad_protection.html @@ -0,0 +1 @@ +/obj/item/mod/module/rad_protection - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rad_protection

Radiation Protection - Protects the user from radiation, gives them a geiger counter and rad info in the panel.

Vars

perceived_threat_levelRadiation threat level being perceived.

Var Details

perceived_threat_level

Radiation threat level being perceived.

\ No newline at end of file diff --git a/obj/item/mod/module/recycler.html b/obj/item/mod/module/recycler.html new file mode 100644 index 0000000000000..1e8aca3f6ea87 --- /dev/null +++ b/obj/item/mod/module/recycler.html @@ -0,0 +1 @@ +/obj/item/mod/module/recycler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

recycler

Module that shoves garbage inside its material container when the user crosses it, and eject the recycled material with MMB.

Vars

accepted_matsMaterials that will be extracted.
allowed_item_typesItems that will be collected
efficiencyA multiplier of the amount of material extracted from the item

Var Details

accepted_mats

Materials that will be extracted.

allowed_item_types

Items that will be collected

efficiency

A multiplier of the amount of material extracted from the item

\ No newline at end of file diff --git a/obj/item/mod/module/recycler/donk.html b/obj/item/mod/module/recycler/donk.html new file mode 100644 index 0000000000000..a4d4fbcdfb21a --- /dev/null +++ b/obj/item/mod/module/recycler/donk.html @@ -0,0 +1 @@ +/obj/item/mod/module/recycler/donk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

donk

A black market variant of the above that dispenses riot foam dart boxes

Vars

ammobox_typeThe type of ammo box that it dispenses
required_amountThe cost of each dispensed ammo box

Var Details

ammobox_type

The type of ammo box that it dispenses

required_amount

The cost of each dispensed ammo box

\ No newline at end of file diff --git a/obj/item/mod/module/rewinder.html b/obj/item/mod/module/rewinder.html new file mode 100644 index 0000000000000..da04eb94ed269 --- /dev/null +++ b/obj/item/mod/module/rewinder.html @@ -0,0 +1 @@ +/obj/item/mod/module/rewinder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

rewinder

Rewinder - Activating saves a point in time, after 10 seconds you will jump back to that state.

Procs

on_activate_blockSignal fired when wearer attempts to activate/deactivate suits
on_module_triggeredSignal fired when wearer attempts to trigger modules, if attempting while time is stopped
unblock_suit_activationUnregisters the modsuit deactivation blocking signal, after dejavu functionality finishes.

Proc Details

on_activate_block

Signal fired when wearer attempts to activate/deactivate suits

on_module_triggered

Signal fired when wearer attempts to trigger modules, if attempting while time is stopped

unblock_suit_activation

Unregisters the modsuit deactivation blocking signal, after dejavu functionality finishes.

\ No newline at end of file diff --git a/obj/item/mod/module/shooting_assistant.html b/obj/item/mod/module/shooting_assistant.html new file mode 100644 index 0000000000000..a9ee90c21c70e --- /dev/null +++ b/obj/item/mod/module/shooting_assistant.html @@ -0,0 +1,4 @@ +/obj/item/mod/module/shooting_assistant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shooting_assistant

A module that enhances the user's ability with firearms, with a couple drawbacks: +In 'Stormtrooper' mode, the user will be given faster firerate, but lower accuracy. +In 'Sharpshooter' mode, the user will have better accuracy and ricochet to his shots, but slower movement speed. +Both modes prevent the user from dual wielding guns.

Vars

available_modesAssociation list, the assoc values are the balloon alerts shown to the user when the mode is set.

Var Details

available_modes

Association list, the assoc values are the balloon alerts shown to the user when the mode is set.

\ No newline at end of file diff --git a/obj/item/mod/module/smartgun.html b/obj/item/mod/module/smartgun.html new file mode 100644 index 0000000000000..8f7e215c1e5c1 --- /dev/null +++ b/obj/item/mod/module/smartgun.html @@ -0,0 +1 @@ +/obj/item/mod/module/smartgun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

smartgun

Vars

power_per_bulletPower consumed per bullet fired

Var Details

power_per_bullet

Power consumed per bullet fired

\ No newline at end of file diff --git a/obj/item/mod/module/sphere_transform.html b/obj/item/mod/module/sphere_transform.html new file mode 100644 index 0000000000000..492c7b7dc791d --- /dev/null +++ b/obj/item/mod/module/sphere_transform.html @@ -0,0 +1 @@ +/obj/item/mod/module/sphere_transform - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sphere_transform

Vars

animate_timeTime it takes us to complete the animation.
user_traitsList of traits to add/remove from our subject as needed.

Var Details

animate_time

Time it takes us to complete the animation.

user_traits

List of traits to add/remove from our subject as needed.

\ No newline at end of file diff --git a/obj/item/mod/module/springlock.html b/obj/item/mod/module/springlock.html new file mode 100644 index 0000000000000..2e8783b3605ce --- /dev/null +++ b/obj/item/mod/module/springlock.html @@ -0,0 +1 @@ +/obj/item/mod/module/springlock - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

springlock

Springlock Mechanism - allows your modsuit to activate faster, but reagents are very dangerous.

Procs

on_activate_spring_blockSignal fired when wearer attempts to activate/deactivate suits
on_wearer_exposedSignal fired when wearer is exposed to reagents
snap_shutDelayed death proc of the suit after the wearer is exposed to reagents

Proc Details

on_activate_spring_block

Signal fired when wearer attempts to activate/deactivate suits

on_wearer_exposed

Signal fired when wearer is exposed to reagents

snap_shut

Delayed death proc of the suit after the wearer is exposed to reagents

\ No newline at end of file diff --git a/obj/item/mod/module/status_readout.html b/obj/item/mod/module/status_readout.html new file mode 100644 index 0000000000000..f41f97903e187 --- /dev/null +++ b/obj/item/mod/module/status_readout.html @@ -0,0 +1 @@ +/obj/item/mod/module/status_readout - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

status_readout

Status Readout - Puts a lot of information including health, nutrition, fingerprints, temperature to the suit TGUI.

Vars

death_soundDeath sound. May or may not be funny. Vareditable at your own risk.
death_sound_volumeDeath sound volume. Please be responsible with this.
display_detailed_vitalsDoes this show damage types, body temp, satiety
display_dnaDoes this show DNA data
display_timeDoes this show the round ID and shift time?

Var Details

death_sound

Death sound. May or may not be funny. Vareditable at your own risk.

death_sound_volume

Death sound volume. Please be responsible with this.

display_detailed_vitals

Does this show damage types, body temp, satiety

display_dna

Does this show DNA data

display_time

Does this show the round ID and shift time?

\ No newline at end of file diff --git a/obj/item/mod/module/stealth.html b/obj/item/mod/module/stealth.html new file mode 100644 index 0000000000000..be5194d937a73 --- /dev/null +++ b/obj/item/mod/module/stealth.html @@ -0,0 +1 @@ +/obj/item/mod/module/stealth - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stealth

Cloaking - Lowers the user's visibility, can be interrupted by being touched or attacked.

Vars

bumpoffWhether or not the cloak turns off on bumping.
stealth_alphaThe alpha applied when the cloak is on.

Var Details

bumpoff

Whether or not the cloak turns off on bumping.

stealth_alpha

The alpha applied when the cloak is on.

\ No newline at end of file diff --git a/obj/item/mod/module/storage.html b/obj/item/mod/module/storage.html new file mode 100644 index 0000000000000..4755bf6fe91b1 --- /dev/null +++ b/obj/item/mod/module/storage.html @@ -0,0 +1 @@ +/obj/item/mod/module/storage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

storage

Storage - Adds a storage component to the suit.

Vars

big_nestingIs nesting same-size storage items allowed?
max_combined_w_classMax combined weight of all items in the storage.
max_itemsMax amount of items in the storage.
max_w_classMax weight class of items in the storage.

Var Details

big_nesting

Is nesting same-size storage items allowed?

max_combined_w_class

Max combined weight of all items in the storage.

max_items

Max amount of items in the storage.

max_w_class

Max weight class of items in the storage.

\ No newline at end of file diff --git a/obj/item/mod/module/t_ray.html b/obj/item/mod/module/t_ray.html new file mode 100644 index 0000000000000..48d09b8151406 --- /dev/null +++ b/obj/item/mod/module/t_ray.html @@ -0,0 +1 @@ +/obj/item/mod/module/t_ray - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

t_ray

T-Ray Scan - Scans the terrain for undertile objects.

Vars

rangeT-ray scan range.

Var Details

range

T-ray scan range.

\ No newline at end of file diff --git a/obj/item/mod/module/tem.html b/obj/item/mod/module/tem.html new file mode 100644 index 0000000000000..a618bcb238634 --- /dev/null +++ b/obj/item/mod/module/tem.html @@ -0,0 +1,17 @@ +/obj/item/mod/module/tem - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tem

TEM - Lets you eradicate people.

Vars

fieldReference to the chrono field being controlled by this module
startposWhere the chronofield maker was when the field went up

Procs

field_check
field_connect
field_disconnect

Var Details

field

Reference to the chrono field being controlled by this module

startpos

Where the chronofield maker was when the field went up

Proc Details

field_check

field_check

+

Checks to see if our field can still be linked to the tem. If it isn't, it will unlink the field.

+

Arguments:

+
    +
  • field: chronofield we're checking the connection's validity on.
  • +

field_connect

field_connect

+

Links a chrono field to this module. The chrono field will keep track of the eradication process. +Unlinks a chrono field if it is connected to a tem already.

+

Arguments:

+
    +
  • field: chronofield we are attempting to link to this module.
  • +

field_disconnect

field_disconnect

+

Unlinks a chrono field from this module.

+

Arguments:

+
    +
  • field: chronofield we are attempting to unlink from this module.
  • +
\ No newline at end of file diff --git a/obj/item/mod/module/thermal_regulator.html b/obj/item/mod/module/thermal_regulator.html new file mode 100644 index 0000000000000..8cc96c4c52f22 --- /dev/null +++ b/obj/item/mod/module/thermal_regulator.html @@ -0,0 +1 @@ +/obj/item/mod/module/thermal_regulator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

thermal_regulator

Thermal Regulator - Regulates the wearer's core temperature.

Vars

max_tempMaximum temperature we can set.
min_tempMinimum temperature we can set.
temperature_settingThe temperature we are regulating to.

Var Details

max_temp

Maximum temperature we can set.

min_temp

Minimum temperature we can set.

temperature_setting

The temperature we are regulating to.

\ No newline at end of file diff --git a/obj/item/mod/module/thread_ripper.html b/obj/item/mod/module/thread_ripper.html new file mode 100644 index 0000000000000..84215f6db7eaa --- /dev/null +++ b/obj/item/mod/module/thread_ripper.html @@ -0,0 +1 @@ +/obj/item/mod/module/thread_ripper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

thread_ripper

Thread Ripper - Temporarily rips apart clothing to make it not cover the body.

Vars

ripped_clothingAn associated list of ripped clothing and the body part covering slots they covered before

Var Details

ripped_clothing

An associated list of ripped clothing and the body part covering slots they covered before

\ No newline at end of file diff --git a/obj/item/mod/module/timeline_jumper.html b/obj/item/mod/module/timeline_jumper.html new file mode 100644 index 0000000000000..b00c73ca673d9 --- /dev/null +++ b/obj/item/mod/module/timeline_jumper.html @@ -0,0 +1 @@ +/obj/item/mod/module/timeline_jumper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

timeline_jumper

Timeline Jumper - Infinite phasing. needs some special effects

Vars

phased_mobThe dummy for phasing from this module, the wearer is phased out while this exists.

Procs

on_activate_blockSignal fired when wearer attempts to activate/deactivate suits while phased out

Var Details

phased_mob

The dummy for phasing from this module, the wearer is phased out while this exists.

Proc Details

on_activate_block

Signal fired when wearer attempts to activate/deactivate suits while phased out

\ No newline at end of file diff --git a/obj/item/mod/module/timestopper.html b/obj/item/mod/module/timestopper.html new file mode 100644 index 0000000000000..4a68c0a677c11 --- /dev/null +++ b/obj/item/mod/module/timestopper.html @@ -0,0 +1 @@ +/obj/item/mod/module/timestopper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

timestopper

Timestopper - Need I really explain? It's the wizard's time stop, but the user channels it by not moving instead of a duration.

Vars

timestopThe current timestop in progress.

Procs

on_activate_blockSignal fired when wearer attempts to activate/deactivate suits, if attempting while time is stopped
on_module_triggeredSignal fired when wearer attempts to trigger modules, if attempting while time is stopped
unblock_suit_activationUnregisters the modsuit deactivation blocking signal, after timestop functionality finishes.

Var Details

timestop

The current timestop in progress.

Proc Details

on_activate_block

Signal fired when wearer attempts to activate/deactivate suits, if attempting while time is stopped

on_module_triggered

Signal fired when wearer attempts to trigger modules, if attempting while time is stopped

unblock_suit_activation

Unregisters the modsuit deactivation blocking signal, after timestop functionality finishes.

\ No newline at end of file diff --git a/obj/item/mod/module/visor.html b/obj/item/mod/module/visor.html new file mode 100644 index 0000000000000..32ce95426870c --- /dev/null +++ b/obj/item/mod/module/visor.html @@ -0,0 +1 @@ +/obj/item/mod/module/visor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

visor

Base Visor - Adds a specific HUD and traits to you.

Vars

visor_traitsThe traits given by the visor.

Var Details

visor_traits

The traits given by the visor.

\ No newline at end of file diff --git a/obj/item/mod/module/visor/rave.html b/obj/item/mod/module/visor/rave.html new file mode 100644 index 0000000000000..dc2c9e6647ecf --- /dev/null +++ b/obj/item/mod/module/visor/rave.html @@ -0,0 +1 @@ +/obj/item/mod/module/visor/rave - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rave

Rave Visor - Gives you a rainbow visor and plays jukebox music to you.

Vars

rainbow_orderA list of the colors the module can take.
rave_numberThe current element in the rainbow_order list we are on.
rave_screenThe client colors applied to the wearer.
selectionThe track we selected to play.
songsA list of all the songs we can play.

Var Details

rainbow_order

A list of the colors the module can take.

rave_number

The current element in the rainbow_order list we are on.

rave_screen

The client colors applied to the wearer.

selection

The track we selected to play.

songs

A list of all the songs we can play.

\ No newline at end of file diff --git a/obj/item/mod/module/weapon_recall.html b/obj/item/mod/module/weapon_recall.html new file mode 100644 index 0000000000000..a9be9e4f52c7d --- /dev/null +++ b/obj/item/mod/module/weapon_recall.html @@ -0,0 +1 @@ +/obj/item/mod/module/weapon_recall - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

weapon_recall

Weapon Recall - Teleports your katana to you, prevents gun use.

Vars

accepted_typeThe accepted typepath we can link to.
linked_weaponThe item linked to the module that will get recalled.

Var Details

accepted_type

The accepted typepath we can link to.

linked_weapon

The item linked to the module that will get recalled.

\ No newline at end of file diff --git a/obj/item/modular_computer.html b/obj/item/modular_computer.html new file mode 100644 index 0000000000000..05a106f4a8bcf --- /dev/null +++ b/obj/item/modular_computer.html @@ -0,0 +1,61 @@ +/obj/item/modular_computer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

modular_computer

Vars

active_programThe program currently active on the tablet.
allow_chunkyAllow people with chunky fingers to use?
base_active_power_usagePower usage when the computer is open (screen is active) and can be interacted with.
base_idle_power_usagePower usage when the computer is idle and screen is off.
comp_light_colorThe built-in light's color, editable by players.
comp_light_luminosityHow far the computer's light can reach, is not editable by players.
computer_id_slotThe ID currently stored in the computer.
crew_manifest_updateDoes the console update the crew manifest when the ID is removed?
default_programsStatic list of default programs that come with ALL computers, here so computers don't have to repeat this.
device_themeThe theme, used for the main menu and file browser apps.
disabled_timeIf the computer's flashlight/LED light has forcibly disabled for a temporary amount of time.
enabledBool on whether the computer is currently active or not.
hardware_flagFlag of the type of device the modular computer is, deciding what types of apps it can run.
has_lightIf the computer has a flashlight/LED light built-in.
honkvirus_amountIf hit by a Clown virus, remaining honks left until it stops.
icon_state_menuIcon state overlay when the computer is turned on, but no program is loaded (programs override this).
icon_state_poweredIf set, what the icon_state will be if the computer is powered.
icon_state_unpoweredIf set, what the icon_state will be if the computer is unpowered.
idle_threadsIdle programs on background. They still receive process calls but can't be interacted with.
inserted_diskThe disk in this PDA. If set, this will be inserted on Initialize.
inserted_paiA pAI currently loaded into the modular computer.
long_rangedWhether the PDA can still use NTNet while out of NTNet's reach.
looping_soundWhether or not this modular computer uses the looping sound
max_capacityThe amount of storage space the computer starts with.
max_idle_programsAmount of programs that can be ran at once
max_paperThe max amount of paper that can be held at once.
physicalThe 'computer' itself, as an obj. Primarily used for Adjacent() and UI visibility checks, especially for computers.
saved_identificationThe full name of the stored ID card's identity. These vars should probably be on the PDA.
saved_jobThe job title of the stored ID card
screen_onIf the screen is open, only used by laptops.
shellReference to the circuit shell component, because we're special and do special things with it, +such as creating and deleting unremovable circuit comps based on the programs installed.
shell_capacityThe capacity of the circuit shell component of this item
soundloopLooping sound for when the computer is on.
starting_programsNon-static list of programs the computer should receive on Initialize.
steel_sheet_costAmount of steel sheets refunded when disassembling an empty frame of this computer.
stored_filesList of stored files on this drive. Use store_file and remove_file instead of modifying directly!
stored_paperThe amount of paper currently stored in the PDA
used_capacityThe amount of storage space we've got filled

Procs

InsertIDInsertID +Attempt to insert the ID in either card slot, if ID is present - attempts swap +Args: +inserting_id - the ID being inserted +user - The person inserting the ID
RemoveIDRemoves the ID card from the computer, and puts it in loc's hand if it's a mob +Args: +user - The mob trying to remove the ID, if there is one +silent - Boolean, determines whether fluff text would be printed
add_shell_componentInitialize the shell for this item, or the physical machinery it belongs to.
alert_callDisplays notification text alongside a soundbeep when requested to by a program.
can_store_filecan_store_file
check_power_overrideReturns TRUE if the PC should not be using any power, FALSE otherwise. +Checks to see if the current app allows to be ran without power, if so we'll run with it.
find_file_by_namefind_file_by_name
find_file_by_uidfind_file_by_uid
get_filesGet all stored files, including external disk files optionaly
get_messenger_endingReturns a string of what to send at the end of messenger's messages.
handle_powerTakes the charge necessary from the Computer, shutting it off if it's unable to provide it. +Charge depends on whether the PC is on, and what programs are running/idle on it.
imprint_idImprints name and job into the modular computer, and calls back to necessary functions. +Acts as a replacement to directly setting the imprints fields. All fields are optional, the proc will try to fill in missing gaps.
play_pingPlays a ping sound.
power_failureShuts down the computer from powerloss.
remove_fileremove_file
reset_imprintResets the imprinted name and job back to null.
set_flashlight_colorSets the computer's light color, if it has a light.
store_filestore_file
toggle_flashlightToggles the computer's flashlight, if it has one.
update_tablet_open_uisupdate_tablet_open_uis
use_energyDraws power from its rightful source (area if its a computer, the cell otherwise) +Takes into account special cases, like silicon PDAs through override, and nopower apps.
use_energy_for_circuitsTry to draw power from our internal cell first, before switching to that of the circuit.

Var Details

active_program

The program currently active on the tablet.

allow_chunky

Allow people with chunky fingers to use?

base_active_power_usage

Power usage when the computer is open (screen is active) and can be interacted with.

base_idle_power_usage

Power usage when the computer is idle and screen is off.

comp_light_color

The built-in light's color, editable by players.

comp_light_luminosity

How far the computer's light can reach, is not editable by players.

computer_id_slot

The ID currently stored in the computer.

crew_manifest_update

Does the console update the crew manifest when the ID is removed?

default_programs

Static list of default programs that come with ALL computers, here so computers don't have to repeat this.

device_theme

The theme, used for the main menu and file browser apps.

disabled_time

If the computer's flashlight/LED light has forcibly disabled for a temporary amount of time.

enabled

Bool on whether the computer is currently active or not.

hardware_flag

Flag of the type of device the modular computer is, deciding what types of apps it can run.

has_light

If the computer has a flashlight/LED light built-in.

honkvirus_amount

If hit by a Clown virus, remaining honks left until it stops.

icon_state_menu

Icon state overlay when the computer is turned on, but no program is loaded (programs override this).

icon_state_powered

If set, what the icon_state will be if the computer is powered.

icon_state_unpowered

If set, what the icon_state will be if the computer is unpowered.

idle_threads

Idle programs on background. They still receive process calls but can't be interacted with.

inserted_disk

The disk in this PDA. If set, this will be inserted on Initialize.

inserted_pai

A pAI currently loaded into the modular computer.

long_ranged

Whether the PDA can still use NTNet while out of NTNet's reach.

looping_sound

Whether or not this modular computer uses the looping sound

max_capacity

The amount of storage space the computer starts with.

max_idle_programs

Amount of programs that can be ran at once

max_paper

The max amount of paper that can be held at once.

physical

The 'computer' itself, as an obj. Primarily used for Adjacent() and UI visibility checks, especially for computers.

saved_identification

The full name of the stored ID card's identity. These vars should probably be on the PDA.

saved_job

The job title of the stored ID card

screen_on

If the screen is open, only used by laptops.

shell

Reference to the circuit shell component, because we're special and do special things with it, +such as creating and deleting unremovable circuit comps based on the programs installed.

shell_capacity

The capacity of the circuit shell component of this item

soundloop

Looping sound for when the computer is on.

starting_programs

Non-static list of programs the computer should receive on Initialize.

steel_sheet_cost

Amount of steel sheets refunded when disassembling an empty frame of this computer.

stored_files

List of stored files on this drive. Use store_file and remove_file instead of modifying directly!

stored_paper

The amount of paper currently stored in the PDA

used_capacity

The amount of storage space we've got filled

Proc Details

InsertID

InsertID +Attempt to insert the ID in either card slot, if ID is present - attempts swap +Args: +inserting_id - the ID being inserted +user - The person inserting the ID

RemoveID

Removes the ID card from the computer, and puts it in loc's hand if it's a mob +Args: +user - The mob trying to remove the ID, if there is one +silent - Boolean, determines whether fluff text would be printed

add_shell_component

Initialize the shell for this item, or the physical machinery it belongs to.

alert_call

Displays notification text alongside a soundbeep when requested to by a program.

+

After checking that the requesting program is allowed to send an alert, creates +a visible message of the requested text alongside a soundbeep. This proc adds +text to indicate that the message is coming from this device and the program +on it, so the supplied text should be the exact message and ending punctuation.

+

Arguments: +The program calling this proc. +The message that the program wishes to display.

can_store_file

can_store_file

+

Checks if a computer can store a file, as computers can only store unique files. +returns TRUE if possible, FALSE otherwise.

check_power_override

Returns TRUE if the PC should not be using any power, FALSE otherwise. +Checks to see if the current app allows to be ran without power, if so we'll run with it.

find_file_by_name

find_file_by_name

+

Will check all applications in a tablet for files and, if they have
+the same filename (disregarding extension), will return it. +If a computer disk is passed instead, it will check the disk over the computer.

find_file_by_uid

find_file_by_uid

+

Will check all files in this computer and returns the file with the matching uid. +A file's uid is always unique to them, so this proc is sometimes preferable over find_file_by_name. +If a computer disk is passed instead, it will check the disk over the computer.

get_files

Get all stored files, including external disk files optionaly

get_messenger_ending

Returns a string of what to send at the end of messenger's messages.

handle_power

Takes the charge necessary from the Computer, shutting it off if it's unable to provide it. +Charge depends on whether the PC is on, and what programs are running/idle on it.

imprint_id

Imprints name and job into the modular computer, and calls back to necessary functions. +Acts as a replacement to directly setting the imprints fields. All fields are optional, the proc will try to fill in missing gaps.

play_ping

Plays a ping sound.

+

Timers runtime if you try to make them call playsound. Yep.

power_failure

Shuts down the computer from powerloss.

remove_file

remove_file

+

Removes a given file from the computer, if possible. +Properly checking if the file even exists and is in the computer. +Returns TRUE if successfully completed, FALSE otherwise

reset_imprint

Resets the imprinted name and job back to null.

set_flashlight_color

Sets the computer's light color, if it has a light.

+

Called from ui_act(), this proc takes a color string and applies it. +It is separated from ui_act() to be overwritten as needed. +Arguments:

+
    +
  • color is the string that holds the color value that we should use. Proc auto-fails if this is null.
  • +

store_file

store_file

+

Adds an already initialized file to the computer, checking if one already exists. +Returns TRUE if successfully stored, FALSE otherwise.

toggle_flashlight

Toggles the computer's flashlight, if it has one.

+

Called from ui_act(), does as the name implies. +It is separated from ui_act() to be overwritten as needed.

update_tablet_open_uis

update_tablet_open_uis

+

Will search the user to see if they have the tablet open. +If they don't, we'll open a new UI depending on the tab the tablet is meant to be on. +If they do, we'll update the interface and title, then update all static data and re-send assets.

+

This is best called when you're actually changing the app, as we don't check +if we're swapping to the current UI repeatedly. +Args: +user - The person whose UI we're updating. Only necessary if we're opening the UI for the first time.

use_energy

Draws power from its rightful source (area if its a computer, the cell otherwise) +Takes into account special cases, like silicon PDAs through override, and nopower apps.

use_energy_for_circuits

Try to draw power from our internal cell first, before switching to that of the circuit.

\ No newline at end of file diff --git a/obj/item/modular_computer/pda.html b/obj/item/modular_computer/pda.html new file mode 100644 index 0000000000000..6ef487a2f704c --- /dev/null +++ b/obj/item/modular_computer/pda.html @@ -0,0 +1,7 @@ +/obj/item/modular_computer/pda - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pda

Vars

contained_itemList of items that can be stored in a PDA
has_pda_programsWhether the PDA should have 'pda_programs' apps installed on Initialize.
inserted_itemThe item currently inserted into the PDA, starts with a pen.
pda_programsStatic list of default PDA apps to install on Initialize.

Procs

get_detomatix_difficultyFinds how hard it is to send a virus to this tablet, checking all programs downloaded.
update_pda_prefsA simple helper proc that applies the client's ringtone prefs to the tablet's messenger app, +if it has one.
update_ringtoneA simple proc to set the ringtone from a pda.

Var Details

contained_item

List of items that can be stored in a PDA

has_pda_programs

Whether the PDA should have 'pda_programs' apps installed on Initialize.

inserted_item

The item currently inserted into the PDA, starts with a pen.

pda_programs

Static list of default PDA apps to install on Initialize.

Proc Details

get_detomatix_difficulty

Finds how hard it is to send a virus to this tablet, checking all programs downloaded.

update_pda_prefs

A simple helper proc that applies the client's ringtone prefs to the tablet's messenger app, +if it has one.

+

Arguments:

+
    +
  • owner_client - The client whose prefs we'll use to set the ringtone of this PDA.
  • +

update_ringtone

A simple proc to set the ringtone from a pda.

\ No newline at end of file diff --git a/obj/item/modular_computer/pda/clown.html b/obj/item/modular_computer/pda/clown.html new file mode 100644 index 0000000000000..7b9e7e38a6ed8 --- /dev/null +++ b/obj/item/modular_computer/pda/clown.html @@ -0,0 +1 @@ +/obj/item/modular_computer/pda/clown - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

clown

Procs

try_slipReturns whether the PDA can slip or not, if we have a wearer then check if they are in a position to slip someone.

Proc Details

try_slip

Returns whether the PDA can slip or not, if we have a wearer then check if they are in a position to slip someone.

\ No newline at end of file diff --git a/obj/item/modular_computer/pda/nukeops.html b/obj/item/modular_computer/pda/nukeops.html new file mode 100644 index 0000000000000..611724de6df41 --- /dev/null +++ b/obj/item/modular_computer/pda/nukeops.html @@ -0,0 +1,3 @@ +/obj/item/modular_computer/pda/nukeops - /tg/ Station 13
/tg/ Station 13 - Modules - Types

nukeops

Nuclear PDA

+

PDA that doesn't come with the default apps but has Fission360 +Resistant to emags, these are given to nukies for disk pinpointer stuff.

\ No newline at end of file diff --git a/obj/item/modular_computer/pda/silicon.html b/obj/item/modular_computer/pda/silicon.html new file mode 100644 index 0000000000000..63e7f1f5b64ad --- /dev/null +++ b/obj/item/modular_computer/pda/silicon.html @@ -0,0 +1,8 @@ +/obj/item/modular_computer/pda/silicon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

silicon

Silicon PDA

+

PDAs that are built-in to Silicons and should not exist at any point without being inside of one.

Vars

borglogIC log that borgs can view in their personal management app
robotactRef to the RoboTact app. Important enough to borgs to deserve a ref.
silicon_ownerRef to the silicon we're installed in. Set by the silicon itself during its creation.

Procs

add_shell_componentSilicons don't have the tools (or hands) to make circuits setups with their own PDAs.
get_robotactReturns a ref to the RoboTact app, creating the app if need be.

Var Details

borglog

IC log that borgs can view in their personal management app

robotact

Ref to the RoboTact app. Important enough to borgs to deserve a ref.

silicon_owner

Ref to the silicon we're installed in. Set by the silicon itself during its creation.

Proc Details

add_shell_component

Silicons don't have the tools (or hands) to make circuits setups with their own PDAs.

get_robotact

Returns a ref to the RoboTact app, creating the app if need be.

+

The RoboTact app is important for borgs, and so should always be available. +This proc will look for it in the tablet's robotact var, then check the +hard drive if the robotact var is unset, and finally attempt to create a new +copy if the hard drive does not contain the app. If the hard drive rejects +the new copy (such as due to lack of space), the proc will crash with an error. +RoboTact is supposed to be undeletable, so these will create runtime messages.

\ No newline at end of file diff --git a/obj/item/modular_computer/processor.html b/obj/item/modular_computer/processor.html new file mode 100644 index 0000000000000..0dbd96cf91ac1 --- /dev/null +++ b/obj/item/modular_computer/processor.html @@ -0,0 +1 @@ +/obj/item/modular_computer/processor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

processor

Vars

machinery_computerThe modular computer MACHINE that hosts us.

Var Details

machinery_computer

The modular computer MACHINE that hosts us.

\ No newline at end of file diff --git a/obj/item/mop.html b/obj/item/mop.html new file mode 100644 index 0000000000000..cbd5cf22339b6 --- /dev/null +++ b/obj/item/mop.html @@ -0,0 +1,13 @@ +/obj/item/mop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mop

Vars

max_reagent_volumeMaximum volume of reagents it can hold.

Procs

apply_reagentsApplies reagents to the cleaned floor and removes them from the mop.
attack_on_liquids_turfProc to remove liquids from a turf using a mop.

Var Details

max_reagent_volume

Maximum volume of reagents it can hold.

Proc Details

apply_reagents

Applies reagents to the cleaned floor and removes them from the mop.

+

Arguments

+
    +
  • cleaning_source the source of the cleaning
  • +
  • cleaned_turf the turf that is being cleaned
  • +
  • cleaner the mob that is doing the cleaning
  • +

attack_on_liquids_turf

Proc to remove liquids from a turf using a mop.

+

Arguments:

+
    +
  • tile - On which tile we're trying to absorb liquids
  • +
  • user - Who tries to absorb liquids with this?
  • +
  • liquids - Liquids we're trying to absorb.
  • +
\ No newline at end of file diff --git a/obj/item/mop/advanced.html b/obj/item/mop/advanced.html new file mode 100644 index 0000000000000..bd7262582938b --- /dev/null +++ b/obj/item/mop/advanced.html @@ -0,0 +1 @@ +/obj/item/mop/advanced - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

advanced

Vars

refill_rateAmount of reagent to refill per second

Var Details

refill_rate

Amount of reagent to refill per second

\ No newline at end of file diff --git a/obj/item/mounted_machine_gun_folded.html b/obj/item/mounted_machine_gun_folded.html new file mode 100644 index 0000000000000..a9caeee92df08 --- /dev/null +++ b/obj/item/mounted_machine_gun_folded.html @@ -0,0 +1 @@ +/obj/item/mounted_machine_gun_folded - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mounted_machine_gun_folded

Vars

deploy_timeHow long it takes to deploy.
type_to_deployThe type we deploy.

Var Details

deploy_time

How long it takes to deploy.

type_to_deploy

The type we deploy.

\ No newline at end of file diff --git a/obj/item/multitool.html b/obj/item/multitool.html new file mode 100644 index 0000000000000..431ad877ec654 --- /dev/null +++ b/obj/item/multitool.html @@ -0,0 +1,7 @@ +/obj/item/multitool - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

multitool

Multitool -- A multitool is used for hacking electronic devices.

Procs

remove_bufferCalled when the buffer's stored object is deleted
set_bufferSets the multitool internal object buffer

Proc Details

remove_buffer

Called when the buffer's stored object is deleted

+

This proc does not clear the buffer of the multitool, it is here to +handle the deletion of the object the buffer references

set_buffer

Sets the multitool internal object buffer

+

Arguments:

+
    +
  • buffer - the new object to assign to the multitool's buffer
  • +
\ No newline at end of file diff --git a/obj/item/multitool/circuit.html b/obj/item/multitool/circuit.html new file mode 100644 index 0000000000000..7afd63621e3ac --- /dev/null +++ b/obj/item/multitool/circuit.html @@ -0,0 +1 @@ +/obj/item/multitool/circuit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

circuit

Vars

marked_atomThe marked atom of this multitool

Procs

clear_marked_atomClears the current marked atom
mark_mob_or_contentsAllow users to mark items equipped by the target that are visible.

Var Details

marked_atom

The marked atom of this multitool

Proc Details

clear_marked_atom

Clears the current marked atom

mark_mob_or_contents

Allow users to mark items equipped by the target that are visible.

\ No newline at end of file diff --git a/obj/item/multitool/uplink.html b/obj/item/multitool/uplink.html new file mode 100644 index 0000000000000..dbcc395c63888 --- /dev/null +++ b/obj/item/multitool/uplink.html @@ -0,0 +1 @@ +/obj/item/multitool/uplink - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

uplink

Procs

Initializeobj/item/multitool/uplink/Initialize(mapload, owner, tc_amount = 20, datum/uplink_handler/uplink_handler_override = null) //ORIGINAL

Proc Details

Initialize

obj/item/multitool/uplink/Initialize(mapload, owner, tc_amount = 20, datum/uplink_handler/uplink_handler_override = null) //ORIGINAL

\ No newline at end of file diff --git a/obj/item/mutant_hand.html b/obj/item/mutant_hand.html new file mode 100644 index 0000000000000..309c0fab3b02e --- /dev/null +++ b/obj/item/mutant_hand.html @@ -0,0 +1,3 @@ +/obj/item/mutant_hand - /tg/ Station 13
/tg/ Station 13 - Modules - Types

mutant_hand

Generic mutant hand type for use with the mutant hands component +(Technically speaking, the component doesn't require you use this type. But it's here for posterity)

+

Implements nothing except changing its icon state between left and right depending on hand slot equipped in

\ No newline at end of file diff --git a/obj/item/necromantic_stone.html b/obj/item/necromantic_stone.html new file mode 100644 index 0000000000000..1711a806c7ef5 --- /dev/null +++ b/obj/item/necromantic_stone.html @@ -0,0 +1 @@ +/obj/item/necromantic_stone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

necromantic_stone

Necromantic Stone

Vars

applied_outfitThe outfit the resurected humanoid will wear.
applied_speciesWhich species the resurected humanoid will be.
max_thrallsMaximum number of thralls that can be created.
unlimitedAllow for unlimited thralls to be produced.

Var Details

applied_outfit

The outfit the resurected humanoid will wear.

applied_species

Which species the resurected humanoid will be.

max_thralls

Maximum number of thralls that can be created.

unlimited

Allow for unlimited thralls to be produced.

\ No newline at end of file diff --git a/obj/item/newspaper.html b/obj/item/newspaper.html new file mode 100644 index 0000000000000..51388d3ef2ea1 --- /dev/null +++ b/obj/item/newspaper.html @@ -0,0 +1,3 @@ +/obj/item/newspaper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

newspaper

Newspapers +A static version of the newscaster, that won't update as new stories are added. +Can be scribbed upon to add extra text for future readers.

Vars

creation_timeThe time the newspaper was made in terms of newscaster's last action, used to tell the newspaper whether a story should be in it.
current_pageThe page in the newspaper currently being read. 0 is the title screen while the last is the security screen.
news_contentList of news feeed channels the newspaper can see.
saved_wanted_bodyStored information of the wanted criminal's description, if one existed at the time of creation.
saved_wanted_criminalStored information of the wanted criminal's name, if one existed at the time of creation.
saved_wanted_iconStored icon of the wanted criminal, if one existed at the time of creation.
scribble_pageThe page with something scribbled on it, can only have one at a time.
scribble_textThe currently scribbled text written in scribble_page

Procs

censored_checkChecks the creation time of the newspaper and compares it to list to see if the list is meant to be censored at the time of printing.
holder_checked_nameCalled when someone tries to figure out what our identity is, but they can't see it because of the newspaper
holder_updated_overlaysCalled when we're being read and overlays are updated, we should show a big newspaper over the reader
on_unwieldedCalled when you stop doing that
on_wieldedCalled when you start reading the paper with both hands

Var Details

creation_time

The time the newspaper was made in terms of newscaster's last action, used to tell the newspaper whether a story should be in it.

current_page

The page in the newspaper currently being read. 0 is the title screen while the last is the security screen.

news_content

List of news feeed channels the newspaper can see.

saved_wanted_body

Stored information of the wanted criminal's description, if one existed at the time of creation.

saved_wanted_criminal

Stored information of the wanted criminal's name, if one existed at the time of creation.

saved_wanted_icon

Stored icon of the wanted criminal, if one existed at the time of creation.

scribble_page

The page with something scribbled on it, can only have one at a time.

scribble_text

The currently scribbled text written in scribble_page

Proc Details

censored_check

Checks the creation time of the newspaper and compares it to list to see if the list is meant to be censored at the time of printing.

holder_checked_name

Called when someone tries to figure out what our identity is, but they can't see it because of the newspaper

holder_updated_overlays

Called when we're being read and overlays are updated, we should show a big newspaper over the reader

on_unwielded

Called when you stop doing that

on_wielded

Called when you start reading the paper with both hands

\ No newline at end of file diff --git a/obj/item/nif_hud_adapter.html b/obj/item/nif_hud_adapter.html new file mode 100644 index 0000000000000..f4dcd54f28869 --- /dev/null +++ b/obj/item/nif_hud_adapter.html @@ -0,0 +1 @@ +/obj/item/nif_hud_adapter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nif_hud_adapter

Vars

glasses_whitelistList containing all of the glasses that we want to work with this.
multiple_usesCan this item be used multiple times? If not, it will delete itself after being used.

Var Details

glasses_whitelist

List containing all of the glasses that we want to work with this.

multiple_uses

Can this item be used multiple times? If not, it will delete itself after being used.

\ No newline at end of file diff --git a/obj/item/nif_repair_kit.html b/obj/item/nif_repair_kit.html new file mode 100644 index 0000000000000..579c78caf48ab --- /dev/null +++ b/obj/item/nif_repair_kit.html @@ -0,0 +1 @@ +/obj/item/nif_repair_kit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nif_repair_kit

NIF Repair Kit.

Vars

repair_amountHow much does this repair each time it is used?
usesHow many times can this be used?

Var Details

repair_amount

How much does this repair each time it is used?

uses

How many times can this be used?

\ No newline at end of file diff --git a/obj/item/nifsoft_remover.html b/obj/item/nifsoft_remover.html new file mode 100644 index 0000000000000..962e3de920885 --- /dev/null +++ b/obj/item/nifsoft_remover.html @@ -0,0 +1 @@ +/obj/item/nifsoft_remover - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nifsoft_remover

NIFSoft Remover. This is mostly here so that security and antags have a way to remove NIFSofts from someome

Vars

create_diskIs a disk with the corresponding NIFSoft created when said NIFSoft is removed?

Var Details

create_disk

Is a disk with the corresponding NIFSoft created when said NIFSoft is removed?

\ No newline at end of file diff --git a/obj/item/nuclear_challenge.html b/obj/item/nuclear_challenge.html new file mode 100644 index 0000000000000..58cb6db1845fb --- /dev/null +++ b/obj/item/nuclear_challenge.html @@ -0,0 +1 @@ +/obj/item/nuclear_challenge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

nuclear_challenge

Procs

force_warAdmin only proc to bypass checks and force a war declaration. Button on antag panel.

Proc Details

force_war

Admin only proc to bypass checks and force a war declaration. Button on antag panel.

\ No newline at end of file diff --git a/obj/item/nullrod.html b/obj/item/nullrod.html new file mode 100644 index 0000000000000..c7959213482c2 --- /dev/null +++ b/obj/item/nullrod.html @@ -0,0 +1 @@ +/obj/item/nullrod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nullrod

Vars

chaplain_spawnableboolean on whether it's allowed to be picked from the nullrod's transformation ability
cultists_slainLazylist, tracks refs()s to all cultists which have been crit or killed by this nullrod.
menu_descriptionShort description of what this item is capable of, for radial menu uses.
station_holy_itemAffects GLOB.holy_weapon_type. Disable to allow null rods to change at will and without affecting the station's type.

Var Details

chaplain_spawnable

boolean on whether it's allowed to be picked from the nullrod's transformation ability

cultists_slain

Lazylist, tracks refs()s to all cultists which have been crit or killed by this nullrod.

menu_description

Short description of what this item is capable of, for radial menu uses.

station_holy_item

Affects GLOB.holy_weapon_type. Disable to allow null rods to change at will and without affecting the station's type.

\ No newline at end of file diff --git a/obj/item/nullrod/nullblade.html b/obj/item/nullrod/nullblade.html new file mode 100644 index 0000000000000..b261d117b682a --- /dev/null +++ b/obj/item/nullrod/nullblade.html @@ -0,0 +1 @@ +/obj/item/nullrod/nullblade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

nullblade

Procs

sneak_attackIf our target is incapacitated, unable to protect themselves, or we attack them from behind, we sneak attack!

Proc Details

sneak_attack

If our target is incapacitated, unable to protect themselves, or we attack them from behind, we sneak attack!

\ No newline at end of file diff --git a/obj/item/nullrod/staff.html b/obj/item/nullrod/staff.html new file mode 100644 index 0000000000000..97ee0419c40fa --- /dev/null +++ b/obj/item/nullrod/staff.html @@ -0,0 +1 @@ +/obj/item/nullrod/staff - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

staff

Vars

shield_iconThe icon which appears over the mob holding the item

Var Details

shield_icon

The icon which appears over the mob holding the item

\ No newline at end of file diff --git a/obj/item/organ.html b/obj/item/organ.html new file mode 100644 index 0000000000000..7dd12066ced2c --- /dev/null +++ b/obj/item/organ.html @@ -0,0 +1,66 @@ +/obj/item/organ - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

organ

Vars

blood_dna_infoThe cached info about the blood this organ belongs to
bodypart_ownerReference to the limb we're inside of
damageTotal damage this organ has sustained. +Should only ever be modified by apply_organ_damage!
drop_when_organ_spillingDo we drop when organs are spilling?
failing_descString displayed when the organ has decayed.
failure_timeTime this organ has failed for
food_reagentsFood reagents if the organ is edible
healing_factorHealing factor and decay factor function on % of maxhealth, and do not work by applying a static number per tick
maxHealthMaximum damage the organ can take, ever.
organ_effectsStatus Effects that are given to the holder of the organ.
organ_flagsRandom flags that describe this organ
organ_traitsTraits that are given to the holder of the organ. +If you want an effect that changes this, don't add directly to this. Use the add_organ_trait() proc.
ownerThe mob that owns this organ.
reagent_volThe size of the reagent container if the organ is edible
relevant_layersRelevant layer flags, as set by the organ's associated sprite_accessory, should there be one.
slotThe organ slot this organ is supposed to inhabit. This should be unique by type. (Lungs, Appendix, Stomach, etc) +Do NOT add slots with matching names to different zones - it will break the organs_slot list!
sprite_accessory_flagsSpecial flags that need to be passed over from the sprite_accessory to the organ (but not the opposite).
useableWhen set to false, this can't be used in surgeries and such - Honestly a terrible variable.
visualDo we affect the appearance of our mob. Used to save time in preference code
zoneThe body zone this organ is supposed to inhabit.

Procs

add_organ_statusAdd a Status Effect to an organ that it will give its owner.
add_organ_traitAdd a Trait to an organ that it will give its owner.
apply_organ_damageAdjusts an organ's damage by the amount "damage_amount", up to a maximum amount, which is by default max damage. Returns the net change in organ damage.
before_organ_replacementCalled before organs are replaced in regenerate_organs with new ones
bodypart_insertInsert an organ into a limb, assume the limb as always detached and include no owner operations here (except the get_bodypart helper here I guess) +Give EITHER a limb OR a limb owner
bodypart_removeCalled to remove an organ from a limb. Do not put any mob operations here (except the bodypart_getter at the start) +Give EITHER a limb OR a limb_owner
check_damage_thresholds
copy_traits_fromCopy traits from one organ to another - e.g. with custom roundstart organs that should still get species traits applied.
exit_wardrobeUsed as callbacks by object pooling
forced_removalIn space station videogame, nothing is sacred. If somehow an organ is removed unexpectedly, handle it properly
get_availability
get_status_appendixSimilar to get_status_text, but appends the text after the damage report, for additional status info
get_status_textCalled by medical scanners to get a simple summary of how healthy the organ is. Returns an empty string if things are fine.
on_bodypart_insertAdd any limb specific effects you might want here
on_bodypart_removeCalled on limb removal to remove limb specific limb effects or statusses
on_mob_insertCalled after the organ is inserted into a mob. +Adds Traits, Actions, and Status Effects on the mob in which the organ is impanted. +Override this proc to create unique side-effects for inserting your organ. Must be called by overrides.
on_mob_removeCalled after the organ is removed from a mob. +Removes Traits, Actions, and Status Effects on the mob in which the organ was impanted. +Override this proc to create unique side-effects for removing your organ. Must be called by overrides.
on_surgical_insertionProc that gets called when the organ is surgically inserted by someone. Seem familiar?
on_surgical_removalProc that gets called when the organ is surgic d for special effects
organ_failure
remove_organ_statusRemoves a Status Effect from an organ, and by extension, its owner.
remove_organ_traitRemoves a Trait from an organ, and by extension, its owner.
replace_intoTries to replace the existing organ on the passed mob with this one, with special handling for replacing a brain without ghosting target
set_organ_damageSETS an organ's damage to the amount "damage_amount", and in doing so clears or sets the failing flag, good for when you have an effect that should fix an organ if broken
show_on_condensed_scansDetermines if this organ is shown when a user has condensed scans enabled

Var Details

blood_dna_info

The cached info about the blood this organ belongs to

bodypart_owner

Reference to the limb we're inside of

damage

Total damage this organ has sustained. +Should only ever be modified by apply_organ_damage!

drop_when_organ_spilling

Do we drop when organs are spilling?

failing_desc

String displayed when the organ has decayed.

failure_time

Time this organ has failed for

food_reagents

Food reagents if the organ is edible

healing_factor

Healing factor and decay factor function on % of maxhealth, and do not work by applying a static number per tick

maxHealth

Maximum damage the organ can take, ever.

organ_effects

Status Effects that are given to the holder of the organ.

organ_flags

Random flags that describe this organ

organ_traits

Traits that are given to the holder of the organ. +If you want an effect that changes this, don't add directly to this. Use the add_organ_trait() proc.

owner

The mob that owns this organ.

reagent_vol

The size of the reagent container if the organ is edible

relevant_layers

Relevant layer flags, as set by the organ's associated sprite_accessory, should there be one.

slot

The organ slot this organ is supposed to inhabit. This should be unique by type. (Lungs, Appendix, Stomach, etc) +Do NOT add slots with matching names to different zones - it will break the organs_slot list!

sprite_accessory_flags

Special flags that need to be passed over from the sprite_accessory to the organ (but not the opposite).

useable

When set to false, this can't be used in surgeries and such - Honestly a terrible variable.

visual

Do we affect the appearance of our mob. Used to save time in preference code

zone

The body zone this organ is supposed to inhabit.

Proc Details

add_organ_status

Add a Status Effect to an organ that it will give its owner.

add_organ_trait

Add a Trait to an organ that it will give its owner.

apply_organ_damage

Adjusts an organ's damage by the amount "damage_amount", up to a maximum amount, which is by default max damage. Returns the net change in organ damage.

before_organ_replacement

Called before organs are replaced in regenerate_organs with new ones

bodypart_insert

Insert an organ into a limb, assume the limb as always detached and include no owner operations here (except the get_bodypart helper here I guess) +Give EITHER a limb OR a limb owner

bodypart_remove

Called to remove an organ from a limb. Do not put any mob operations here (except the bodypart_getter at the start) +Give EITHER a limb OR a limb_owner

check_damage_thresholds

    +
  • check_damage_thresholds
  • +
  • input: mob/organ_owner (a mob, the owner of the organ we call the proc on)
  • +
  • output: returns a message should get displayed.
  • +
  • description: By checking our current damage against our previous damage, we can decide whether we've passed an organ threshold.
  • +
  • If we have, send the corresponding threshold message to the owner, if such a message exists.
  • +

copy_traits_from

Copy traits from one organ to another - e.g. with custom roundstart organs that should still get species traits applied.

exit_wardrobe

Used as callbacks by object pooling

forced_removal

In space station videogame, nothing is sacred. If somehow an organ is removed unexpectedly, handle it properly

get_availability

    +
  • +

    get_availability

    +
  • +
  • +

    returns whether the species should innately have this organ.

    +
  • +
  • +

    regenerate organs works with generic organs, so we need to get whether it can accept certain organs just by what this returns.

    +
  • +
  • +

    This is set to return true or false, depending on if a species has a trait that would nulify the purpose of the organ.

    +
  • +
  • +

    For example, lungs won't be given if you have NO_BREATH, stomachs check for NO_HUNGER, and livers check for NO_METABOLISM.

    +
  • +
  • +

    If you want a carbon to have a trait that normally blocks an organ but still want the organ. Attach the trait to the organ using the organ_traits var

    +
  • +
  • +

    Arguments:

    +
  • +
  • +

    owner_species - species, needed to return the mutant slot as true or false. stomach set to null means it shouldn't have one.

    +
  • +
  • +

    owner_mob - for more specific checks, like nightmares.

    +
  • +

get_status_appendix

Similar to get_status_text, but appends the text after the damage report, for additional status info

get_status_text

Called by medical scanners to get a simple summary of how healthy the organ is. Returns an empty string if things are fine.

on_bodypart_insert

Add any limb specific effects you might want here

on_bodypart_remove

Called on limb removal to remove limb specific limb effects or statusses

on_mob_insert

Called after the organ is inserted into a mob. +Adds Traits, Actions, and Status Effects on the mob in which the organ is impanted. +Override this proc to create unique side-effects for inserting your organ. Must be called by overrides.

on_mob_remove

Called after the organ is removed from a mob. +Removes Traits, Actions, and Status Effects on the mob in which the organ was impanted. +Override this proc to create unique side-effects for removing your organ. Must be called by overrides.

on_surgical_insertion

Proc that gets called when the organ is surgically inserted by someone. Seem familiar?

on_surgical_removal

Proc that gets called when the organ is surgic d for special effects

organ_failure

    +
  • +

    organ_failure

    +
  • +
  • +

    generic proc for handling dying organs

    +
  • +
  • +

    Arguments:

    +
  • +
  • +

    seconds_per_tick - seconds since last tick

    +
  • +

remove_organ_status

Removes a Status Effect from an organ, and by extension, its owner.

remove_organ_trait

Removes a Trait from an organ, and by extension, its owner.

replace_into

Tries to replace the existing organ on the passed mob with this one, with special handling for replacing a brain without ghosting target

set_organ_damage

SETS an organ's damage to the amount "damage_amount", and in doing so clears or sets the failing flag, good for when you have an effect that should fix an organ if broken

show_on_condensed_scans

Determines if this organ is shown when a user has condensed scans enabled

\ No newline at end of file diff --git a/obj/item/organ/external.html b/obj/item/organ/external.html new file mode 100644 index 0000000000000..7733ed5118be2 --- /dev/null +++ b/obj/item/organ/external.html @@ -0,0 +1,5 @@ +/obj/item/organ/external - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

external

System for drawing organs with overlays. These overlays are drawn directly on the bodypart, attached to a person or not +Works in tandem with the /datum/sprite_accessory datum to generate sprites +Unlike normal organs, we're actually inside a persons limbs at all times

Vars

bodypart_overlayThe overlay datum that actually draws stuff on the limb
dna_blockWith what DNA block do we mutate in mutate_feature() ? For genetics
external_bodyshapesDoes this organ have any bodyshapes to pass to its bodypart_owner?
external_bodytypesDoes this organ have any bodytypes to pass to its bodypart_owner?
mutantpart_keyThis is for associating an organ with a mutant bodypart. Look at tails for examples
preferenceThe savefile_key of the preference this relates to. Used for the preferences UI.
restyle_flagsWhich flags does a 'modification tool' need to have to restyle us, if it all possible (located in code/_DEFINES/mobs)
sprite_accessory_overrideIf not null, overrides the appearance with this sprite accessory datum
use_mob_sprite_as_obj_spriteSet to EXTERNAL_BEHIND, EXTERNAL_FRONT or EXTERNAL_ADJACENT if you want to draw one of those layers as the object sprite. FALSE to use your own +This will not work if it doesn't have a limb to generate its icon with

Procs

attempt_feature_restyleRestyles the external organ from a list of valid options
copy_to_mutant_bodypartsCopies the organ's mutantpart_info to the owner's mutant_bodyparts
get_valid_restylesHelper proc to fetch a list of styles a player might want to restyle their features into during the round : returns list("Cabbage" = /datum/sprite_accessory/cabbage)
mutate_featureUpdate our features after something changed our appearance
on_attempt_feature_restyleInvoke async so we dont break signals
simple_change_spriteIf you need to change an external_organ for simple one-offs, use this. Pass the accessory type : /datum/accessory/something
transfer_mutantpart_infoCopies the mob's mutant_bodyparts data to an organ's mutantpart_info for consistency e.g. on organ removal

Var Details

bodypart_overlay

The overlay datum that actually draws stuff on the limb

dna_block

With what DNA block do we mutate in mutate_feature() ? For genetics

external_bodyshapes

Does this organ have any bodyshapes to pass to its bodypart_owner?

external_bodytypes

Does this organ have any bodytypes to pass to its bodypart_owner?

mutantpart_key

This is for associating an organ with a mutant bodypart. Look at tails for examples

preference

The savefile_key of the preference this relates to. Used for the preferences UI.

restyle_flags

Which flags does a 'modification tool' need to have to restyle us, if it all possible (located in code/_DEFINES/mobs)

sprite_accessory_override

If not null, overrides the appearance with this sprite accessory datum

use_mob_sprite_as_obj_sprite

Set to EXTERNAL_BEHIND, EXTERNAL_FRONT or EXTERNAL_ADJACENT if you want to draw one of those layers as the object sprite. FALSE to use your own +This will not work if it doesn't have a limb to generate its icon with

Proc Details

attempt_feature_restyle

Restyles the external organ from a list of valid options

copy_to_mutant_bodyparts

Copies the organ's mutantpart_info to the owner's mutant_bodyparts

get_valid_restyles

Helper proc to fetch a list of styles a player might want to restyle their features into during the round : returns list("Cabbage" = /datum/sprite_accessory/cabbage)

mutate_feature

Update our features after something changed our appearance

on_attempt_feature_restyle

Invoke async so we dont break signals

simple_change_sprite

If you need to change an external_organ for simple one-offs, use this. Pass the accessory type : /datum/accessory/something

transfer_mutantpart_info

Copies the mob's mutant_bodyparts data to an organ's mutantpart_info for consistency e.g. on organ removal

\ No newline at end of file diff --git a/obj/item/organ/external/antennae.html b/obj/item/organ/external/antennae.html new file mode 100644 index 0000000000000..f32b1d658a81f --- /dev/null +++ b/obj/item/organ/external/antennae.html @@ -0,0 +1 @@ +/obj/item/organ/external/antennae - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

antennae

A moth's antennae

Vars

burntAre we burned?
original_sprite_datumStore our old datum here for if our antennae are healed

Procs

burn_antennaeBurn our antennae off ;_;
heal_antennaeheal our antennae back up!!
try_burn_antennaecheck if our antennae can burn off ;_;

Var Details

burnt

Are we burned?

original_sprite_datum

Store our old datum here for if our antennae are healed

Proc Details

burn_antennae

Burn our antennae off ;_;

heal_antennae

heal our antennae back up!!

try_burn_antennae

check if our antennae can burn off ;_;

\ No newline at end of file diff --git a/obj/item/organ/external/genital.html b/obj/item/organ/external/genital.html new file mode 100644 index 0000000000000..421832eb2825d --- /dev/null +++ b/obj/item/organ/external/genital.html @@ -0,0 +1 @@ +/obj/item/organ/external/genital - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

genital

Vars

arousedWhether the organ is aroused, matters for sprites, use AROUSAL_CANT, AROUSAL_NONE, AROUSAL_PARTIAL or AROUSAL_FULL
genital_locationWhere the genital is actually located, for clothing checks.
genital_nameSprite name of the genital, it's what shows up on character creation
genital_sizeSize value of the genital, needs to be translated to proper lengths/diameters/cups
genital_typeType of the genital. For penises tapered/horse/human etc. for breasts quadruple/sixtuple etc...
inserted_itemThe currently inserted sex toy.
internal_fluid_countThe fluid count of the genital.
internal_fluid_datumThe datum to be used for the tracked fluid, should it need to be added to a fluid container.
internal_fluid_maximumThe maximum amount of fluid that can be stored in the genital.
sprite_suffixUsed for determining what sprite is being used, derrives from size and type
uses_skin_colorWhether the organ is supposed to use the color of the holder's skin tone.
uses_skintonesWhether the organ is supposed to use a skintoned variant of the sprite
visibility_preferenceUsed for input from the user whether to show a genital through clothing or not, always or never etc.

Procs

adjust_internal_fluidAdds the given amount to the internal fluid count, clamping it between 0 and internal_fluid_maximum.
build_from_accessoryfor specific build_from_dna behavior that also checks the genital accessory.
internal_fluid_fullHelper proc for checking if internal fluids are full or not.
transfer_internal_fluidTries to add the specified amount to the target reagent container, or removes it if none are available. Keeps in mind internal_fluid_count.

Var Details

aroused

Whether the organ is aroused, matters for sprites, use AROUSAL_CANT, AROUSAL_NONE, AROUSAL_PARTIAL or AROUSAL_FULL

genital_location

Where the genital is actually located, for clothing checks.

genital_name

Sprite name of the genital, it's what shows up on character creation

genital_size

Size value of the genital, needs to be translated to proper lengths/diameters/cups

genital_type

Type of the genital. For penises tapered/horse/human etc. for breasts quadruple/sixtuple etc...

inserted_item

The currently inserted sex toy.

internal_fluid_count

The fluid count of the genital.

internal_fluid_datum

The datum to be used for the tracked fluid, should it need to be added to a fluid container.

internal_fluid_maximum

The maximum amount of fluid that can be stored in the genital.

sprite_suffix

Used for determining what sprite is being used, derrives from size and type

uses_skin_color

Whether the organ is supposed to use the color of the holder's skin tone.

uses_skintones

Whether the organ is supposed to use a skintoned variant of the sprite

visibility_preference

Used for input from the user whether to show a genital through clothing or not, always or never etc.

Proc Details

adjust_internal_fluid

Adds the given amount to the internal fluid count, clamping it between 0 and internal_fluid_maximum.

build_from_accessory

for specific build_from_dna behavior that also checks the genital accessory.

internal_fluid_full

Helper proc for checking if internal fluids are full or not.

transfer_internal_fluid

Tries to add the specified amount to the target reagent container, or removes it if none are available. Keeps in mind internal_fluid_count.

\ No newline at end of file diff --git a/obj/item/organ/external/tail.html b/obj/item/organ/external/tail.html new file mode 100644 index 0000000000000..2e7bb20793035 --- /dev/null +++ b/obj/item/organ/external/tail.html @@ -0,0 +1,7 @@ +/obj/item/organ/external/tail - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tail

Tail parent, it doesn't do very much.

Vars

original_ownerThe original owner of this tail
tail_spines_overlayThe overlay for tail spines, if any
wag_flagsDoes this tail have a wagging sprite, and is it currently wagging?

Procs

is_exposedChecks if the tail is exposed.
remove_tail_spinesIf we have a tail spines overlay, delete it
start_wagWe need some special behaviour for accessories, wrapped here so we can easily add more interactions later +Accepts an optional timeout after which we remove the tail wagging +Returns false if the wag worked, true otherwise
stop_wagWe need some special behaviour for accessories, wrapped here so we can easily add more interactions later +Returns false if the wag stopping worked, true otherwise
try_insert_tail_spinesIf the owner has spines and an appropriate overlay exists, add a tail spines overlay.

Var Details

original_owner

The original owner of this tail

tail_spines_overlay

The overlay for tail spines, if any

wag_flags

Does this tail have a wagging sprite, and is it currently wagging?

Proc Details

is_exposed

Checks if the tail is exposed.

remove_tail_spines

If we have a tail spines overlay, delete it

start_wag

We need some special behaviour for accessories, wrapped here so we can easily add more interactions later +Accepts an optional timeout after which we remove the tail wagging +Returns false if the wag worked, true otherwise

stop_wag

We need some special behaviour for accessories, wrapped here so we can easily add more interactions later +Returns false if the wag stopping worked, true otherwise

try_insert_tail_spines

If the owner has spines and an appropriate overlay exists, add a tail spines overlay.

\ No newline at end of file diff --git a/obj/item/organ/external/taur_body.html b/obj/item/organ/external/taur_body.html new file mode 100644 index 0000000000000..e2c92d5893886 --- /dev/null +++ b/obj/item/organ/external/taur_body.html @@ -0,0 +1 @@ +/obj/item/organ/external/taur_body - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

taur_body

Vars

hide_selfIf true, our sprite accessory will not render.
left_leg_nameIf not null, the left leg limb we add to our mob will have this name.
old_left_legThe mob's old left leg. Used if the person switches to this organ and then back, so they don't just, have no legs anymore. Can be null.
old_right_legThe mob's old right leg. Used if the person switches to this organ and then back, so they don't just, have no legs anymore. Can be null.
right_leg_nameIf not null, the right leg limb we add to our mob will have this name.

Var Details

hide_self

If true, our sprite accessory will not render.

left_leg_name

If not null, the left leg limb we add to our mob will have this name.

old_left_leg

The mob's old left leg. Used if the person switches to this organ and then back, so they don't just, have no legs anymore. Can be null.

old_right_leg

The mob's old right leg. Used if the person switches to this organ and then back, so they don't just, have no legs anymore. Can be null.

right_leg_name

If not null, the right leg limb we add to our mob will have this name.

\ No newline at end of file diff --git a/obj/item/organ/external/taur_body/serpentine.html b/obj/item/organ/external/taur_body/serpentine.html new file mode 100644 index 0000000000000..eddd090823677 --- /dev/null +++ b/obj/item/organ/external/taur_body/serpentine.html @@ -0,0 +1 @@ +/obj/item/organ/external/taur_body/serpentine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

serpentine

Vars

constrict_abilityThe constrict ability we have given our owner. Nullable, if we have no owner.
owner_blocked_feet_before_insertDid our owner have their feet blocked before we ran on_mob_insert? Used for determining if we should unblock their feet slots on removal.

Procs

add_hardened_solesAdds TRAIT_HARD_SOLES to our owner.

Var Details

constrict_ability

The constrict ability we have given our owner. Nullable, if we have no owner.

owner_blocked_feet_before_insert

Did our owner have their feet blocked before we ran on_mob_insert? Used for determining if we should unblock their feet slots on removal.

Proc Details

add_hardened_soles

Adds TRAIT_HARD_SOLES to our owner.

\ No newline at end of file diff --git a/obj/item/organ/external/wings.html b/obj/item/organ/external/wings.html new file mode 100644 index 0000000000000..67dfdbc3b87ca --- /dev/null +++ b/obj/item/organ/external/wings.html @@ -0,0 +1 @@ +/obj/item/organ/external/wings - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wings

Wing base type. doesn't really do anything

Vars

can_openWhether a wing can be opened by the *wing emote. The sprite use a "_open" suffix, before their layer
flight_for_speciesWhat species get flights thanks to those wings. Important for moth wings
granted_flightWhether the owner of wings has flight thanks to the wings
is_openWhether an openable wing is currently opened
unconditional_flightWhether the wings should grant flight on insertion.

Procs

can_soften_fallChecks if the wings can soften short falls
make_flap_soundImplement as needed to play a sound effect on *flap emote

Var Details

can_open

Whether a wing can be opened by the *wing emote. The sprite use a "_open" suffix, before their layer

flight_for_species

What species get flights thanks to those wings. Important for moth wings

granted_flight

Whether the owner of wings has flight thanks to the wings

is_open

Whether an openable wing is currently opened

unconditional_flight

Whether the wings should grant flight on insertion.

Proc Details

can_soften_fall

Checks if the wings can soften short falls

make_flap_sound

Implement as needed to play a sound effect on *flap emote

\ No newline at end of file diff --git a/obj/item/organ/external/wings/functional.html b/obj/item/organ/external/wings/functional.html new file mode 100644 index 0000000000000..934909bccb1db --- /dev/null +++ b/obj/item/organ/external/wings/functional.html @@ -0,0 +1 @@ +/obj/item/organ/external/wings/functional - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

functional

The true wings that you can use to fly and shit (you cant actually shit with them)

Vars

cant_hideWe cant hide this wings in suit
flyThe flight action object
wings_openAre our wings open or closed?

Procs

can_flyCheck if we're still eligible for flight (wings covered, atmosphere too thin, etc)
close_wingsclose our wings
fly_slipSlipping but in the air?
handle_flightCalled on_life(). Handle flight code and check if we're still flying
open_wingsSPREAD OUR WINGS AND FLLLLLYYYYYY
toggle_flightUNSAFE PROC, should only be called through the Activate or other sources that check for CanFly

Var Details

cant_hide

We cant hide this wings in suit

fly

The flight action object

wings_open

Are our wings open or closed?

Proc Details

can_fly

Check if we're still eligible for flight (wings covered, atmosphere too thin, etc)

close_wings

close our wings

fly_slip

Slipping but in the air?

handle_flight

Called on_life(). Handle flight code and check if we're still flying

open_wings

SPREAD OUR WINGS AND FLLLLLYYYYYY

toggle_flight

UNSAFE PROC, should only be called through the Activate or other sources that check for CanFly

\ No newline at end of file diff --git a/obj/item/organ/external/wings/moth.html b/obj/item/organ/external/wings/moth.html new file mode 100644 index 0000000000000..02dd93d65b953 --- /dev/null +++ b/obj/item/organ/external/wings/moth.html @@ -0,0 +1 @@ +/obj/item/organ/external/wings/moth - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

moth

Moth wings! They can flutter in low-grav and burn off in heat

Vars

burntAre we burned?
original_sprite_datumStore our old datum here for if our burned wings are healed
our_climbOur associated shadow jaunt spell, for all nightmares
our_dashOur associated terrorize spell, for antagonist nightmares

Procs

burn_wingsburn the wings off
heal_wingsheal our wings back up!!
try_burn_wingscheck if our wings can burn off ;_;

Var Details

burnt

Are we burned?

original_sprite_datum

Store our old datum here for if our burned wings are healed

our_climb

Our associated shadow jaunt spell, for all nightmares

our_dash

Our associated terrorize spell, for antagonist nightmares

Proc Details

burn_wings

burn the wings off

heal_wings

heal our wings back up!!

try_burn_wings

check if our wings can burn off ;_;

\ No newline at end of file diff --git a/obj/item/organ/internal.html b/obj/item/organ/internal.html new file mode 100644 index 0000000000000..f05276d0a5598 --- /dev/null +++ b/obj/item/organ/internal.html @@ -0,0 +1,7 @@ +/obj/item/organ/internal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

internal

Procs

exit_wardrobeUsed as callbacks by object pooling
handle_failing_organsOrgans don't die instantly, and neither should you when you get fucked up
on_lifeCalled once every life tick on every organ in a carbon's body +NOTE: THIS IS VERY HOT. Be careful what you put in here +To give you some scale, if there's 100 carbons in the game, they each have maybe 9 organs +So that's 900 calls to this proc every life process. Please don't be dumb

Proc Details

exit_wardrobe

Used as callbacks by object pooling

handle_failing_organs

Organs don't die instantly, and neither should you when you get fucked up

on_life

Called once every life tick on every organ in a carbon's body +NOTE: THIS IS VERY HOT. Be careful what you put in here +To give you some scale, if there's 100 carbons in the game, they each have maybe 9 organs +So that's 900 calls to this proc every life process. Please don't be dumb

\ No newline at end of file diff --git a/obj/item/organ/internal/alien/hivenode.html b/obj/item/organ/internal/alien/hivenode.html new file mode 100644 index 0000000000000..ab88286bca330 --- /dev/null +++ b/obj/item/organ/internal/alien/hivenode.html @@ -0,0 +1 @@ +/obj/item/organ/internal/alien/hivenode - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hivenode

Vars

recent_queen_deathIndicates if the queen died recently, aliens are heavily weakened while this is active.

Var Details

recent_queen_death

Indicates if the queen died recently, aliens are heavily weakened while this is active.

\ No newline at end of file diff --git a/obj/item/organ/internal/alien/plasmavessel.html b/obj/item/organ/internal/alien/plasmavessel.html new file mode 100644 index 0000000000000..08db7e1aa6382 --- /dev/null +++ b/obj/item/organ/internal/alien/plasmavessel.html @@ -0,0 +1 @@ +/obj/item/organ/internal/alien/plasmavessel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plasmavessel

Vars

heal_rateThe rate this organ regenerates its owners health at per damage type per second.
max_plasmaThe maximum plasma this organ can store.
plasma_rateThe rate this organ regenerates plasma at per second.
stored_plasmaThe current amount of stored plasma.

Var Details

heal_rate

The rate this organ regenerates its owners health at per damage type per second.

max_plasma

The maximum plasma this organ can store.

plasma_rate

The rate this organ regenerates plasma at per second.

stored_plasma

The current amount of stored plasma.

\ No newline at end of file diff --git a/obj/item/organ/internal/appendix/corrupt.html b/obj/item/organ/internal/appendix/corrupt.html new file mode 100644 index 0000000000000..63e6b6014b292 --- /dev/null +++ b/obj/item/organ/internal/appendix/corrupt.html @@ -0,0 +1 @@ +/obj/item/organ/internal/appendix/corrupt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

corrupt

It's full of worms

Vars

worm_chanceHow likely are we to spawn worms?

Var Details

worm_chance

How likely are we to spawn worms?

\ No newline at end of file diff --git a/obj/item/organ/internal/appendix/golem.html b/obj/item/organ/internal/appendix/golem.html new file mode 100644 index 0000000000000..58319c2c6c820 --- /dev/null +++ b/obj/item/organ/internal/appendix/golem.html @@ -0,0 +1 @@ +/obj/item/organ/internal/appendix/golem - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

golem

Vars

smelterAction which performs smelting

Procs

check_for_lavaGive the action while in lava

Var Details

smelter

Action which performs smelting

Proc Details

check_for_lava

Give the action while in lava

\ No newline at end of file diff --git a/obj/item/organ/internal/body_egg/alien_embryo.html b/obj/item/organ/internal/body_egg/alien_embryo.html new file mode 100644 index 0000000000000..46ba155f23fd4 --- /dev/null +++ b/obj/item/organ/internal/body_egg/alien_embryo.html @@ -0,0 +1 @@ +/obj/item/organ/internal/body_egg/alien_embryo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

alien_embryo

Vars

burstingAre we bursting out of the poor sucker who's the xeno mom?
growth_timeHow long does it take to advance one stage? Growth time * 5 = how long till we make a Larva!
stageWhat stage of growth the embryo is at. Developed embryos give the host symptoms suggesting that an embryo is inside them.

Procs

advance_embryo_stageControls Xenomorph Embryo growth. If embryo is fully grown (or overgrown), stop the proc. If not, increase the stage by one and if it's not fully grown (stage 6), add a timer to do this proc again after however long the growth time variable is.
attempt_growAttempt to burst an alien outside of the host, getting a ghost to play as the xeno.
on_poll_concludedPoll has concluded with a suitor

Var Details

bursting

Are we bursting out of the poor sucker who's the xeno mom?

growth_time

How long does it take to advance one stage? Growth time * 5 = how long till we make a Larva!

stage

What stage of growth the embryo is at. Developed embryos give the host symptoms suggesting that an embryo is inside them.

Proc Details

advance_embryo_stage

Controls Xenomorph Embryo growth. If embryo is fully grown (or overgrown), stop the proc. If not, increase the stage by one and if it's not fully grown (stage 6), add a timer to do this proc again after however long the growth time variable is.

attempt_grow

Attempt to burst an alien outside of the host, getting a ghost to play as the xeno.

on_poll_concluded

Poll has concluded with a suitor

\ No newline at end of file diff --git a/obj/item/organ/internal/body_egg/changeling_egg.html b/obj/item/organ/internal/body_egg/changeling_egg.html new file mode 100644 index 0000000000000..d61f3e9f1fed5 --- /dev/null +++ b/obj/item/organ/internal/body_egg/changeling_egg.html @@ -0,0 +1 @@ +/obj/item/organ/internal/body_egg/changeling_egg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

changeling_egg

The actual organ that the changeling headslug implants into a dead host.

Vars

hatch_timeWhen we're expected to hatch.
originThe mind of the original changeling that gave forth to the headslug mob.
removal_timeWhen this egg last got removed from a body. If -1, the egg hasn't been removed from a body.

Procs

popOnce the egg is fully grown, we gib the host and spawn a monkey (with the changeling's player controlling it). Very descriptive proc name.

Var Details

hatch_time

When we're expected to hatch.

origin

The mind of the original changeling that gave forth to the headslug mob.

removal_time

When this egg last got removed from a body. If -1, the egg hasn't been removed from a body.

Proc Details

pop

Once the egg is fully grown, we gib the host and spawn a monkey (with the changeling's player controlling it). Very descriptive proc name.

\ No newline at end of file diff --git a/obj/item/organ/internal/borer_body.html b/obj/item/organ/internal/borer_body.html new file mode 100644 index 0000000000000..25741f345b977 --- /dev/null +++ b/obj/item/organ/internal/borer_body.html @@ -0,0 +1 @@ +/obj/item/organ/internal/borer_body - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

borer_body

Vars

borerRef to the borer who this organ belongs to

Var Details

borer

Ref to the borer who this organ belongs to

\ No newline at end of file diff --git a/obj/item/organ/internal/brain.html b/obj/item/organ/internal/brain.html new file mode 100644 index 0000000000000..0756b252b2021 --- /dev/null +++ b/obj/item/organ/internal/brain.html @@ -0,0 +1,31 @@ +/obj/item/organ/internal/brain - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

brain

Vars

brain_sizeSize modifier for the sprite
can_smoothen_outCan this brain become smooth after it gets washed
damage_deltaTwo variables necessary for calculating whether we get a brain trauma or not
decay_factorThe brain's organ variables are significantly more different than the other organs, with half the decay rate for balance reasons, and twice the maxHealth
decoy_overrideIf it's a fake brain with no brainmob assigned. Feedback messages will be faked as if it does have a brainmob. See changelings & dullahans.
max_skillchip_complexityMaximum skillchip complexity we can support before they stop working. Do not reference this var directly and instead call get_max_skillchip_complexity()
max_skillchip_slotsMaximum skillchip slots available. Do not reference this var directly and instead call get_max_skillchip_slots()
modular_persistenceThe modular persistence data for a character.
skillchipsList of skillchip items, their location should be this brain.
smooth_brainWe got smooth from being washed

Procs

activate_skillchip_failsafeDeactivates all chips currently in the brain.
add_trauma_to_traumasAdds the passed trauma instance to our list of traumas and links it to our brain. +DOES NOT handle setting up the trauma, that's done by [proc/brain_gain_trauma]!
brain_damage_examineNeeded so subtypes can override examine text while still calling parent
clone_skillchip_listCreates a list of assoc lists containing skillchip types and key metadata.
destroy_all_skillchipsDestroys all skillchips in the brain, calling on_removal if the brain has an owner. +Arguments:
get_attacking_limbThis proc lets the mob's brain decide what bodypart to attack with in an unarmed strike.
get_max_skillchip_complexityReturns the total maximum skillchip complexity supported by this brain.
get_max_skillchip_slotsReturns the total maximum skillchip slot capacity supported by this brain.
get_used_skillchip_complexityReturns the total current skillchip complexity used in this brain.
get_used_skillchip_slotsReturns the total current skillchip slot capacity used in this brain.
has_trauma_typeTRAUMAS
implant_skillchipAttempts to implant target skillchip into the brain.
remove_skillchipAttempts to remove target skillchip from the brain.
remove_trauma_from_traumasRemoves the passed trauma instance to our list of traumas and links it to our brain +DOES NOT handle removing the trauma's effects, that's done by /datum/brain_trauma/Destroy()!
replace_intoBrains REALLY like ghosting people. we need special tricks to avoid that, namely removing the old brain with no_id_transfer
update_skillchipsDisables or re-enables any extra skillchips after skillchip limit changes.

Var Details

brain_size

Size modifier for the sprite

can_smoothen_out

Can this brain become smooth after it gets washed

damage_delta

Two variables necessary for calculating whether we get a brain trauma or not

decay_factor

The brain's organ variables are significantly more different than the other organs, with half the decay rate for balance reasons, and twice the maxHealth

decoy_override

If it's a fake brain with no brainmob assigned. Feedback messages will be faked as if it does have a brainmob. See changelings & dullahans.

max_skillchip_complexity

Maximum skillchip complexity we can support before they stop working. Do not reference this var directly and instead call get_max_skillchip_complexity()

max_skillchip_slots

Maximum skillchip slots available. Do not reference this var directly and instead call get_max_skillchip_slots()

modular_persistence

The modular persistence data for a character.

skillchips

List of skillchip items, their location should be this brain.

smooth_brain

We got smooth from being washed

Proc Details

activate_skillchip_failsafe

Deactivates all chips currently in the brain.

add_trauma_to_traumas

Adds the passed trauma instance to our list of traumas and links it to our brain. +DOES NOT handle setting up the trauma, that's done by [proc/brain_gain_trauma]!

brain_damage_examine

Needed so subtypes can override examine text while still calling parent

clone_skillchip_list

Creates a list of assoc lists containing skillchip types and key metadata.

+

Returns a complete list of new skillchip types with their metadata cloned from the brain's existing skillchip stock. +Rumour has it that Changelings just LOVE this proc. +Arguments:

+
    +
  • not_removable - Special override, whether or not to force cloned chips to be non-removable, i.e. to delete on removal.
  • +

destroy_all_skillchips

Destroys all skillchips in the brain, calling on_removal if the brain has an owner. +Arguments:

+
    +
  • silent - Whether to give the user a chat notification with the removal flavour text.
  • +

get_attacking_limb

This proc lets the mob's brain decide what bodypart to attack with in an unarmed strike.

get_max_skillchip_complexity

Returns the total maximum skillchip complexity supported by this brain.

get_max_skillchip_slots

Returns the total maximum skillchip slot capacity supported by this brain.

get_used_skillchip_complexity

Returns the total current skillchip complexity used in this brain.

get_used_skillchip_slots

Returns the total current skillchip slot capacity used in this brain.

has_trauma_type

TRAUMAS

implant_skillchip

Attempts to implant target skillchip into the brain.

+

Returns whether the skillchip was implanted or not. +If you're implanting the skillchip into a mob, use the implant_skillchip proc in mob/living/carbon instead. +DANGEROUS - This proc assumes you've done the appropriate checks to make sure the skillchip should be implanted. +Where possible, call the mob/living/carbon version of this proc which does relevant checks. +Arguments:

+
    +
  • skillchip - The skillchip you'd like to implant.
  • +
  • force - Whether or not to force the skillchip to be implanted, ignoring any checks.
  • +

remove_skillchip

Attempts to remove target skillchip from the brain.

+

Returns whether the skillchip was removed or not. +If you're removing the skillchip from a mob, use the remove_skillchip proc in mob/living/carbon instead. +Arguments:

+
    +
  • skillchip - The skillchip you'd like to remove.
  • +

remove_trauma_from_traumas

Removes the passed trauma instance to our list of traumas and links it to our brain +DOES NOT handle removing the trauma's effects, that's done by /datum/brain_trauma/Destroy()!

replace_into

Brains REALLY like ghosting people. we need special tricks to avoid that, namely removing the old brain with no_id_transfer

update_skillchips

Disables or re-enables any extra skillchips after skillchip limit changes.

\ No newline at end of file diff --git a/obj/item/organ/internal/brain/carp.html b/obj/item/organ/internal/brain/carp.html new file mode 100644 index 0000000000000..37236b34e335e --- /dev/null +++ b/obj/item/organ/internal/brain/carp.html @@ -0,0 +1 @@ +/obj/item/organ/internal/brain/carp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

carp

carp brain. you need to occasionally go to a new zlevel. think of it as... walking your dog!

Vars

cooldown_timehow much time the timer is given
cooldown_timerTimer counting down. When finished, the owner gets a bad moodlet.

Var Details

cooldown_time

how much time the timer is given

cooldown_timer

Timer counting down. When finished, the owner gets a bad moodlet.

\ No newline at end of file diff --git a/obj/item/organ/internal/brain/primate.html b/obj/item/organ/internal/brain/primate.html new file mode 100644 index 0000000000000..b4260b3049c84 --- /dev/null +++ b/obj/item/organ/internal/brain/primate.html @@ -0,0 +1 @@ +/obj/item/organ/internal/brain/primate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

primate

Vars

trippingWill this monkey stumble if they are crossed by a simple mob or a carbon in combat mode? Toggable by monkeys with clients, and is messed automatically set to true by monkey AI.

Var Details

tripping

Will this monkey stumble if they are crossed by a simple mob or a carbon in combat mode? Toggable by monkeys with clients, and is messed automatically set to true by monkey AI.

\ No newline at end of file diff --git a/obj/item/organ/internal/brain/shadow.html b/obj/item/organ/internal/brain/shadow.html new file mode 100644 index 0000000000000..9462680b86676 --- /dev/null +++ b/obj/item/organ/internal/brain/shadow.html @@ -0,0 +1 @@ +/obj/item/organ/internal/brain/shadow - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shadow

the key to some of their powers

Vars

applied_statusWhat status effect do we gain while in darkness?

Var Details

applied_status

What status effect do we gain while in darkness?

\ No newline at end of file diff --git a/obj/item/organ/internal/brain/shadow/nightmare.html b/obj/item/organ/internal/brain/shadow/nightmare.html new file mode 100644 index 0000000000000..d8959f074e923 --- /dev/null +++ b/obj/item/organ/internal/brain/shadow/nightmare.html @@ -0,0 +1 @@ +/obj/item/organ/internal/brain/shadow/nightmare - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nightmare

Vars

our_jauntOur associated shadow jaunt spell, for all nightmares
terrorize_spellOur associated terrorize spell, for antagonist nightmares

Var Details

our_jaunt

Our associated shadow jaunt spell, for all nightmares

terrorize_spell

Our associated terrorize spell, for antagonist nightmares

\ No newline at end of file diff --git a/obj/item/organ/internal/brain/synth.html b/obj/item/organ/internal/brain/synth.html new file mode 100644 index 0000000000000..1c9407742a885 --- /dev/null +++ b/obj/item/organ/internal/brain/synth.html @@ -0,0 +1 @@ +/obj/item/organ/internal/brain/synth - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

synth

Vars

last_message_timeThe last time (in ticks) a message about brain damage was sent. Don't touch.

Var Details

last_message_time

The last time (in ticks) a message about brain damage was sent. Don't touch.

\ No newline at end of file diff --git a/obj/item/organ/internal/brain/voidwalker.html b/obj/item/organ/internal/brain/voidwalker.html new file mode 100644 index 0000000000000..b5fc8a3617a0b --- /dev/null +++ b/obj/item/organ/internal/brain/voidwalker.html @@ -0,0 +1 @@ +/obj/item/organ/internal/brain/voidwalker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

voidwalker

Voidwalker brain stacked with a lot of the abilities

Vars

glass_breakerThe void eater weapon
non_space_alphaAlpha we have elsewhere
regenRegen effect we have in space
space_alphaAlpha we have in space
speed_modifierSpeed modifier given when in gravity
transmitOur brain transmit telepathy spell
unsettleWe settle the un

Var Details

glass_breaker

The void eater weapon

non_space_alpha

Alpha we have elsewhere

regen

Regen effect we have in space

space_alpha

Alpha we have in space

speed_modifier

Speed modifier given when in gravity

transmit

Our brain transmit telepathy spell

unsettle

We settle the un

\ No newline at end of file diff --git a/obj/item/organ/internal/cyberimp/arm.html b/obj/item/organ/internal/cyberimp/arm.html new file mode 100644 index 0000000000000..bd74ecf18505c --- /dev/null +++ b/obj/item/organ/internal/cyberimp/arm.html @@ -0,0 +1,4 @@ +/obj/item/organ/internal/cyberimp/arm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

arm

Vars

active_itemYou can use this var for item path, it would be converted into an item on New().
extend_soundSound played when extending
handA ref for the arm we're taking up. Mostly for the unregister signal upon removal
items_listUsed to store a list of all items inside, for multi-item implants.
left_arm_organ_slotOrgan slot that the implant occupies for the left arm
retract_soundSound played when retracting
right_arm_organ_slotOrgan slot that the implant occupies for the right arm

Procs

dropkeyCalled when the mob uses the "drop item" hotkey

Var Details

active_item

You can use this var for item path, it would be converted into an item on New().

extend_sound

Sound played when extending

hand

A ref for the arm we're taking up. Mostly for the unregister signal upon removal

items_list

Used to store a list of all items inside, for multi-item implants.

left_arm_organ_slot

Organ slot that the implant occupies for the left arm

retract_sound

Sound played when retracting

right_arm_organ_slot

Organ slot that the implant occupies for the right arm

Proc Details

dropkey

Called when the mob uses the "drop item" hotkey

+

Items inside toolset implants have TRAIT_NODROP, but we can still use the drop item hotkey as a +quick way to store implant items. In this case, we check to make sure the user has the correct arm +selected, and that the item is actually owned by us, and then we'll hand off the rest to Retract()

\ No newline at end of file diff --git a/obj/item/organ/internal/cyberimp/arm/strongarm.html b/obj/item/organ/internal/cyberimp/arm/strongarm.html new file mode 100644 index 0000000000000..4b55503226b59 --- /dev/null +++ b/obj/item/organ/internal/cyberimp/arm/strongarm.html @@ -0,0 +1 @@ +/obj/item/organ/internal/cyberimp/arm/strongarm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

strongarm

Vars

attack_throw_rangeHow far away your attack will throw your oponent
biotype_bonus_damageExtra damage dealt to our targeted mobs
biotype_bonus_targetsBiotypes we apply an additional amount of damage too
emp_base_durationHow long will the implant malfunction if it is EMP'd
non_harmful_throwIF true, the throw attack will not smash people into walls
punch_damageThe amount of damage the implant adds to our unarmed attacks.
slam_cooldownTracks how soon we can perform another slam attack
slam_cooldown_durationHow long before we get another slam punch; consider that these usually come in pairs of two
throw_power_maxMaximum throw power of the attack
throw_power_minMinimum throw power of the attack

Var Details

attack_throw_range

How far away your attack will throw your oponent

biotype_bonus_damage

Extra damage dealt to our targeted mobs

biotype_bonus_targets

Biotypes we apply an additional amount of damage too

emp_base_duration

How long will the implant malfunction if it is EMP'd

non_harmful_throw

IF true, the throw attack will not smash people into walls

punch_damage

The amount of damage the implant adds to our unarmed attacks.

slam_cooldown

Tracks how soon we can perform another slam attack

slam_cooldown_duration

How long before we get another slam punch; consider that these usually come in pairs of two

throw_power_max

Maximum throw power of the attack

throw_power_min

Minimum throw power of the attack

\ No newline at end of file diff --git a/obj/item/organ/internal/cyberimp/brain/anti_stun.html b/obj/item/organ/internal/cyberimp/brain/anti_stun.html new file mode 100644 index 0000000000000..1e507743d2dc7 --- /dev/null +++ b/obj/item/organ/internal/cyberimp/brain/anti_stun.html @@ -0,0 +1 @@ +/obj/item/organ/internal/cyberimp/brain/anti_stun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

anti_stun

Vars

stun_cap_amounttimer before the implant activates
stun_resistance_timeamount of time you are resistant to stuns and knockdowns

Var Details

stun_cap_amount

timer before the implant activates

stun_resistance_time

amount of time you are resistant to stuns and knockdowns

\ No newline at end of file diff --git a/obj/item/organ/internal/cyberimp/brain/nif.html b/obj/item/organ/internal/cyberimp/brain/nif.html new file mode 100644 index 0000000000000..3288e95bac9f4 --- /dev/null +++ b/obj/item/organ/internal/cyberimp/brain/nif.html @@ -0,0 +1 @@ +/obj/item/organ/internal/cyberimp/brain/nif - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

nif

Vars

bad_soundThis is the sound that plays if there is an issue going on.
blood_conversion_rateThe rate of blood to energy
blood_drainIs power being drawn through blood
blood_drain_rateHow fast is blood being drained?
brokenIs the NIF completely broken? If this is true, the user won't be able to pull up the TGUI menu at all.
calibratingIs the NIF currently being calibrated?
calibration_durationHow far through the calibration process is the NIF? Do not touch this outside of perform_calibration(), if you can at all help it.
calibration_timeHow long does each step in the calibration process take in total?
chat_iconWhat icon does the NIF display in chat when sending out alerts? Icon states are stored in 'modular_skyrat/modules/modular_implants/icons/chat.dmi'
click_soundThis is the sound that you would hear if you enable if you activate or enable something.
current_themeWhat theme is currently being used on the NIF?
durabilityWhat level of durability is the NIF at?
durability_loss_vulnerableIs the NIF able to take damage?
good_soundThis is the sound that plays when doing most things!
is_calibratedIs the NIF properly calibrated yet?
linked_mobWhat user is currently linked with the NIF?
loaded_nifsoftsWhat programs are currently loaded onto the NIF?
manufacturer_notesThis shows up in the NIF settings screen as a way to ICly display lore.
max_durabilityWhat is the maximum durability of the NIF?
max_nifsoftsHow many programs can the NIF store at once?
max_power_levelWhat is the maximum power level of the NIF?
minimum_blood_levelWhen is blood draining disabled?
minimum_nutritionWhat is the minimum nutrition someone has to be at for the NIF to convert power?
nif_persistenceDoes the NIF stay between rounds? By default, they do.
nutrition_conversion_rateWhat is the rate of nutrition to power?
nutrition_drainIs power being drawn from nutrition?
nutrition_drain_rateHow fast is nutrition drained from the host?
persistent_nifsoftsWhat programs do we want to carry between rounds?
power_levelHow much power is currently inside of the NIF?
power_usageHow much power is the NIF currently using? Negative usage will result in power being gained.
preinstalled_nifsoftsWhat programs come already installed on the NIF?
rewards_pointsHow many rewards points does the NIF currently have?
side_effect_riskDetermines the likelyhood of a side effect occuring each process cycle: 1 / side_effect_risk
stored_ckeyWhat CKEY does the original user have? Used to prevent theft
theft_protectionDoes the NIF have theft protection? This should only be disabled if admins need to fix something.
ui_themesCurrently Avalible themese for the NIFs

Procs

adjust_durabilityAdjusts the NIF based on the adjustment_amount. Positive values repair, negative values damage
blood_checkChecks if the NIF is able to draw blood as a power source?
change_power_levelModifies power based off power_to_change. Negative numbers add charge, positive numbers remove charge
damage_on_deathApplies damage to the parent NIF whenever the user dies.
fix_nifChanges the broken variable to be false. This does not relate to durability.
install_nifsoftInstalls the loaded_nifsoft to the parent NIF.
install_preinstalled_nifsoftsInstalls preinstalled NIFSofts
make_vulnerableRe-enables the durability_loss_vulnerable variable, allowing the parent NIF to take durability damage again.
nutrition_checkChecks to see if the mob has a nutrition that can be drain from
perform_calibrationCalibrates the Parent NIF, this is ran every time the parent NIF is first installed inside of someone.
remove_nifsoftRemoves a NIFSoft from a NIF. Silent - determines whether or not alerts will be given to the owner of the NIF
remove_rewards_pointsRemoves rewards points from the parent NIF. Returns FALSE if there are not enough points to remove, returns TRUE if the points have been succesfully removed.
send_messageSends a message to the owner of the NIF. Typically used for messages from the NIF itself or from NIFSofts.
toggle_blood_drainToggles Blood Drain. Bypasss - Ignores the need to perform the blood_check proc.
toggle_nutrition_drainToggles nutrition drain as a power source on NIFs on/off. Bypass - Ignores the need to perform the nutirition_check() proc.

Var Details

bad_sound

This is the sound that plays if there is an issue going on.

blood_conversion_rate

The rate of blood to energy

blood_drain

Is power being drawn through blood

blood_drain_rate

How fast is blood being drained?

broken

Is the NIF completely broken? If this is true, the user won't be able to pull up the TGUI menu at all.

calibrating

Is the NIF currently being calibrated?

calibration_duration

How far through the calibration process is the NIF? Do not touch this outside of perform_calibration(), if you can at all help it.

calibration_time

How long does each step in the calibration process take in total?

chat_icon

What icon does the NIF display in chat when sending out alerts? Icon states are stored in 'modular_skyrat/modules/modular_implants/icons/chat.dmi'

click_sound

This is the sound that you would hear if you enable if you activate or enable something.

current_theme

What theme is currently being used on the NIF?

durability

What level of durability is the NIF at?

durability_loss_vulnerable

Is the NIF able to take damage?

good_sound

This is the sound that plays when doing most things!

is_calibrated

Is the NIF properly calibrated yet?

linked_mob

What user is currently linked with the NIF?

loaded_nifsofts

What programs are currently loaded onto the NIF?

manufacturer_notes

This shows up in the NIF settings screen as a way to ICly display lore.

max_durability

What is the maximum durability of the NIF?

max_nifsofts

How many programs can the NIF store at once?

max_power_level

What is the maximum power level of the NIF?

minimum_blood_level

When is blood draining disabled?

minimum_nutrition

What is the minimum nutrition someone has to be at for the NIF to convert power?

nif_persistence

Does the NIF stay between rounds? By default, they do.

nutrition_conversion_rate

What is the rate of nutrition to power?

nutrition_drain

Is power being drawn from nutrition?

nutrition_drain_rate

How fast is nutrition drained from the host?

persistent_nifsofts

What programs do we want to carry between rounds?

power_level

How much power is currently inside of the NIF?

power_usage

How much power is the NIF currently using? Negative usage will result in power being gained.

preinstalled_nifsofts

What programs come already installed on the NIF?

rewards_points

How many rewards points does the NIF currently have?

side_effect_risk

Determines the likelyhood of a side effect occuring each process cycle: 1 / side_effect_risk

stored_ckey

What CKEY does the original user have? Used to prevent theft

theft_protection

Does the NIF have theft protection? This should only be disabled if admins need to fix something.

ui_themes

Currently Avalible themese for the NIFs

Proc Details

adjust_durability

Adjusts the NIF based on the adjustment_amount. Positive values repair, negative values damage

blood_check

Checks if the NIF is able to draw blood as a power source?

change_power_level

Modifies power based off power_to_change. Negative numbers add charge, positive numbers remove charge

damage_on_death

Applies damage to the parent NIF whenever the user dies.

fix_nif

Changes the broken variable to be false. This does not relate to durability.

install_nifsoft

Installs the loaded_nifsoft to the parent NIF.

install_preinstalled_nifsofts

Installs preinstalled NIFSofts

make_vulnerable

Re-enables the durability_loss_vulnerable variable, allowing the parent NIF to take durability damage again.

nutrition_check

Checks to see if the mob has a nutrition that can be drain from

perform_calibration

Calibrates the Parent NIF, this is ran every time the parent NIF is first installed inside of someone.

remove_nifsoft

Removes a NIFSoft from a NIF. Silent - determines whether or not alerts will be given to the owner of the NIF

remove_rewards_points

Removes rewards points from the parent NIF. Returns FALSE if there are not enough points to remove, returns TRUE if the points have been succesfully removed.

send_message

Sends a message to the owner of the NIF. Typically used for messages from the NIF itself or from NIFSofts.

toggle_blood_drain

Toggles Blood Drain. Bypasss - Ignores the need to perform the blood_check proc.

toggle_nutrition_drain

Toggles nutrition drain as a power source on NIFs on/off. Bypass - Ignores the need to perform the nutirition_check() proc.

\ No newline at end of file diff --git a/obj/item/organ/internal/cyberimp/chest/spine.html b/obj/item/organ/internal/cyberimp/chest/spine.html new file mode 100644 index 0000000000000..58e27728dda05 --- /dev/null +++ b/obj/item/organ/internal/cyberimp/chest/spine.html @@ -0,0 +1 @@ +/obj/item/organ/internal/cyberimp/chest/spine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spine

Vars

added_throw_rangeHow much additional throwing range does our spinal implant grant us.
athletics_boost_multiplierHow much faster does the spinal implant improve our lifting speed, workout ability, reducing falling damage and improving climbing and standing speed
core_appliedWhether or not a gravity anomaly core has been installed, improving the effectiveness of the spinal implant.
stone_overlayThe overlay for our implant to indicate that, yes, this person has an implant inserted.
strength_bonusHow much additional boxing damage and tackling power do we add?

Var Details

added_throw_range

How much additional throwing range does our spinal implant grant us.

athletics_boost_multiplier

How much faster does the spinal implant improve our lifting speed, workout ability, reducing falling damage and improving climbing and standing speed

core_applied

Whether or not a gravity anomaly core has been installed, improving the effectiveness of the spinal implant.

stone_overlay

The overlay for our implant to indicate that, yes, this person has an implant inserted.

strength_bonus

How much additional boxing damage and tackling power do we add?

\ No newline at end of file diff --git a/obj/item/organ/internal/cyberimp/eyes/hud.html b/obj/item/organ/internal/cyberimp/eyes/hud.html new file mode 100644 index 0000000000000..6c90309727026 --- /dev/null +++ b/obj/item/organ/internal/cyberimp/eyes/hud.html @@ -0,0 +1 @@ +/obj/item/organ/internal/cyberimp/eyes/hud - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hud

Vars

toggled_onWhether the HUD implant is on or off

Var Details

toggled_on

Whether the HUD implant is on or off

\ No newline at end of file diff --git a/obj/item/organ/internal/ears.html b/obj/item/organ/internal/ears.html new file mode 100644 index 0000000000000..6ac65695c097f --- /dev/null +++ b/obj/item/organ/internal/ears.html @@ -0,0 +1,5 @@ +/obj/item/organ/internal/ears - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ears

Vars

bang_protectResistance against loud noises
damage_multiplierMultiplier for both long term and short term ear damage
deafdeaf measures "ticks" of deafness. While > 0, the person is unable to hear anything.

Procs

adjustEarDamageSnowflake proc to handle temporary deafness
adjust_speechBeing deafened by loud noises makes you shout
update_temp_deafnessUpdates status of deafness

Var Details

bang_protect

Resistance against loud noises

damage_multiplier

Multiplier for both long term and short term ear damage

deaf

deaf measures "ticks" of deafness. While > 0, the person is unable to hear anything.

Proc Details

adjustEarDamage

Snowflake proc to handle temporary deafness

+
    +
  • ddmg: Handles normal organ damage
  • +
  • ddeaf: Handles temporary deafness, 1 ddeaf = 2 seconds of deafness, by default (with no multiplier)
  • +

adjust_speech

Being deafened by loud noises makes you shout

update_temp_deafness

Updates status of deafness

\ No newline at end of file diff --git a/obj/item/organ/internal/empowered_borer_egg.html b/obj/item/organ/internal/empowered_borer_egg.html new file mode 100644 index 0000000000000..84c41a22d56b9 --- /dev/null +++ b/obj/item/organ/internal/empowered_borer_egg.html @@ -0,0 +1 @@ +/obj/item/organ/internal/empowered_borer_egg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

empowered_borer_egg

Vars

burst_timeHow long it takes to burst from a corpse
generationWhat generation the egg will be

Var Details

burst_time

How long it takes to burst from a corpse

generation

What generation the egg will be

\ No newline at end of file diff --git a/obj/item/organ/internal/eyes.html b/obj/item/organ/internal/eyes.html new file mode 100644 index 0000000000000..924218c487f5d --- /dev/null +++ b/obj/item/organ/internal/eyes.html @@ -0,0 +1,3 @@ +/obj/item/organ/internal/eyes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

eyes

Vars

color_cutoffsList of color cutoffs from eyes, or null if not applicable
damagedindication that the eyes are undergoing some negative effect
flash_protectHow much innare flash protection these eyes have, usually paired with tint
lighting_cutoffHow much darkness to cut out of your view (basically, night vision)
native_fovNative FOV that will be applied if a config is enabled
no_glassesGlasses cannot be worn over these eyes. Currently unused
old_eye_color_leftThe color of the previous left eye before this one was inserted
old_eye_color_rightThe color of the previous right eye before this one was inserted
overlay_ignore_lightingchanges how the eyes overlay is applied, makes it apply over the lighting layer
pepperspray_protectAre these eyes immune to pepperspray?
see_invisibleWhat level of invisibility these eyes can see
sight_flagsSight flags this eye pair imparts on its user.
tintHow much innate tint these eyes have

Procs

apply_damaged_eye_effectsApplies effects to our owner based on how damaged our eyes are
generate_body_overlayThis proc generates a list of overlays that the eye should be displayed using for the given parent
get_status_appendixSimilar to get_status_text, but appends the text after the damage report, for additional status info
refreshRefreshes the visuals of the eyes +If call_update is TRUE, we also will call update_body

Var Details

color_cutoffs

List of color cutoffs from eyes, or null if not applicable

damaged

indication that the eyes are undergoing some negative effect

flash_protect

How much innare flash protection these eyes have, usually paired with tint

lighting_cutoff

How much darkness to cut out of your view (basically, night vision)

native_fov

Native FOV that will be applied if a config is enabled

no_glasses

Glasses cannot be worn over these eyes. Currently unused

old_eye_color_left

The color of the previous left eye before this one was inserted

old_eye_color_right

The color of the previous right eye before this one was inserted

overlay_ignore_lighting

changes how the eyes overlay is applied, makes it apply over the lighting layer

pepperspray_protect

Are these eyes immune to pepperspray?

see_invisible

What level of invisibility these eyes can see

sight_flags

Sight flags this eye pair imparts on its user.

tint

How much innate tint these eyes have

Proc Details

apply_damaged_eye_effects

Applies effects to our owner based on how damaged our eyes are

generate_body_overlay

This proc generates a list of overlays that the eye should be displayed using for the given parent

get_status_appendix

Similar to get_status_text, but appends the text after the damage report, for additional status info

refresh

Refreshes the visuals of the eyes +If call_update is TRUE, we also will call update_body

\ No newline at end of file diff --git a/obj/item/organ/internal/eyes/corrupt.html b/obj/item/organ/internal/eyes/corrupt.html new file mode 100644 index 0000000000000..be717892a0660 --- /dev/null +++ b/obj/item/organ/internal/eyes/corrupt.html @@ -0,0 +1 @@ +/obj/item/organ/internal/eyes/corrupt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

corrupt

Renders you unable to see people who were heretics at the time that this organ is gained

Vars

hallucinationsThe override images we are applying

Var Details

hallucinations

The override images we are applying

\ No newline at end of file diff --git a/obj/item/organ/internal/eyes/robotic/glow.html b/obj/item/organ/internal/eyes/robotic/glow.html new file mode 100644 index 0000000000000..4a641ba7e4027 --- /dev/null +++ b/obj/item/organ/internal/eyes/robotic/glow.html @@ -0,0 +1,32 @@ +/obj/item/organ/internal/eyes/robotic/glow - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

glow

Vars

base_eye_statebase icon state for eye overlays
eye_color_modeWhether or not to match the eye color to the light or use a custom selection
left_eye_color_stringThe custom selected eye color for the left eye. Defaults to the mob's natural eye color
light_color_stringThe selected color for the light beam itself
right_eye_color_stringThe custom selected eye color for the right eye. Defaults to the mob's natural eye color

Procs

InsertSet the initial color of the eyes on insert to be the mob's previous eye color.
activateActivates the light
deactivateDeactivates the light
randomize_colorRandomizes the light color
set_beam_colorSetter function for the light's color
set_beam_rangeSetter function for the light's range
toggle_activeToggle the attached flashlight object on or off
toggle_eye_color_modeToggles for the eye color mode
update_mob_eye_colorUpdates the mob eye color

Var Details

base_eye_state

base icon state for eye overlays

eye_color_mode

Whether or not to match the eye color to the light or use a custom selection

left_eye_color_string

The custom selected eye color for the left eye. Defaults to the mob's natural eye color

light_color_string

The selected color for the light beam itself

right_eye_color_string

The custom selected eye color for the right eye. Defaults to the mob's natural eye color

Proc Details

Insert

Set the initial color of the eyes on insert to be the mob's previous eye color.

activate

Activates the light

+

Turns on the attached flashlight object, updates the mob overlay to be added.

deactivate

Deactivates the light

+

Turns off the attached flashlight object, closes UIs, updates the mob overlay to be removed. +Arguments:

+
    +
  • mob/living/carbon/eye_owner - the mob who the eyes belong to
  • +
  • close_ui - whether or not to close the ui
  • +

randomize_color

Randomizes the light color

+

Picks a random color and sets the beam color to that +Arguments:

+
    +
  • to_update - whether we are setting the color for the light beam itself, or the individual eyes
  • +

set_beam_color

Setter function for the light's color

+

Sets the light color of the attached flashlight object. Sets the eye color vars of this eye organ as well and then updates the mob's eye color. +Arguments:

+
    +
  • newcolor - the new color hex string to set
  • +
  • to_update - whether we are setting the color for the light beam itself, or the individual eyes
  • +
  • sanitize - whether the hex string should be sanitized
  • +

set_beam_range

Setter function for the light's range

+

Sets the light range of the attached flashlight object +Includes some 'unique' logic to accomodate for some quirks of the lighting system +Arguments:

+
    +
  • new_range - the new range to set
  • +

toggle_active

Toggle the attached flashlight object on or off

toggle_eye_color_mode

Toggles for the eye color mode

+

Toggles the eye color mode on or off and then calls an update on the mob's eye color

update_mob_eye_color

Updates the mob eye color

+

Updates the eye color to reflect on the mob's body if it's possible to do so +Arguments:

+
    +
  • mob/living/carbon/eye_owner - the mob to update the eye color appearance of
  • +
\ No newline at end of file diff --git a/obj/item/organ/internal/heart.html b/obj/item/organ/internal/heart.html new file mode 100644 index 0000000000000..5102062440159 --- /dev/null +++ b/obj/item/organ/internal/heart.html @@ -0,0 +1,5 @@ +/obj/item/organ/internal/heart - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

heart

Vars

beatis this mob having a heatbeat sound played? if so, which?
beatingWhether the heart is currently beating. +Do not set this directly. Use Restart() and Stop() instead.
operatedwhether the heart's been operated on to fix some of its damages

Procs

is_beatingChecks if the heart is beating. +Can be overridden to add more conditions for more complex hearts.

Var Details

beat

is this mob having a heatbeat sound played? if so, which?

beating

Whether the heart is currently beating. +Do not set this directly. Use Restart() and Stop() instead.

operated

whether the heart's been operated on to fix some of its damages

Proc Details

is_beating

Checks if the heart is beating. +Can be overridden to add more conditions for more complex hearts.

\ No newline at end of file diff --git a/obj/item/organ/internal/heart/corrupt.html b/obj/item/organ/internal/heart/corrupt.html new file mode 100644 index 0000000000000..d4935627ed963 --- /dev/null +++ b/obj/item/organ/internal/heart/corrupt.html @@ -0,0 +1 @@ +/obj/item/organ/internal/heart/corrupt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

corrupt

Occasionally bombards you with spooky hands and lets everyone hear your pulse.

Vars

hand_cooldownHow long until the next heart?

Var Details

hand_cooldown

How long until the next heart?

\ No newline at end of file diff --git a/obj/item/organ/internal/heart/cybernetic.html b/obj/item/organ/internal/heart/cybernetic.html new file mode 100644 index 0000000000000..0c2446c09e9a4 --- /dev/null +++ b/obj/item/organ/internal/heart/cybernetic.html @@ -0,0 +1 @@ +/obj/item/organ/internal/heart/cybernetic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cybernetic

Vars

bleed_preventionWhether our heart suppresses bleeders and restores blood automatically.
emp_vulnerabilityChance of permanent effects if emp-ed.
stabilization_availableWhether or not we have a stabilization available. This prevents our owner from entering softcrit for an amount of time.
stabilization_durationHow long our stabilization lasts for.
toxification_probabilityThe probability that our blood replication causes toxin damage.

Var Details

bleed_prevention

Whether our heart suppresses bleeders and restores blood automatically.

emp_vulnerability

Chance of permanent effects if emp-ed.

stabilization_available

Whether or not we have a stabilization available. This prevents our owner from entering softcrit for an amount of time.

stabilization_duration

How long our stabilization lasts for.

toxification_probability

The probability that our blood replication causes toxin damage.

\ No newline at end of file diff --git a/obj/item/organ/internal/heart/cybernetic/anomalock.html b/obj/item/organ/internal/heart/cybernetic/anomalock.html new file mode 100644 index 0000000000000..ed6aaabb2ca4a --- /dev/null +++ b/obj/item/organ/internal/heart/cybernetic/anomalock.html @@ -0,0 +1 @@ +/obj/item/organ/internal/heart/cybernetic/anomalock - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

anomalock

Vars

coreThe core item the organ runs off.
core_removableIf the core is removable once socketed.
lightning_overlayThe lightning effect on our mob when the implant is active
lightning_timerhow long the lightning lasts
prebuiltIf this one starts with a core in.
required_anomalyAccepted types of anomaly cores.
survival_cooldown_timeCooldown for the activation of the organ

Procs

activate_survivalDoes a few things to try to help you live whatever you may be going through
get_held_mobReturns the mob we are implanted in so that the electricity effect doesn't runtime
notify_cooldownAlerts our owner that the organ is ready to do its thing again

Var Details

core

The core item the organ runs off.

core_removable

If the core is removable once socketed.

lightning_overlay

The lightning effect on our mob when the implant is active

lightning_timer

how long the lightning lasts

prebuilt

If this one starts with a core in.

required_anomaly

Accepted types of anomaly cores.

survival_cooldown_time

Cooldown for the activation of the organ

Proc Details

activate_survival

Does a few things to try to help you live whatever you may be going through

get_held_mob

Returns the mob we are implanted in so that the electricity effect doesn't runtime

notify_cooldown

Alerts our owner that the organ is ready to do its thing again

\ No newline at end of file diff --git a/obj/item/organ/internal/heart/ethereal.html b/obj/item/organ/internal/heart/ethereal.html new file mode 100644 index 0000000000000..2805ae5a6bfdb --- /dev/null +++ b/obj/item/organ/internal/heart/ethereal.html @@ -0,0 +1 @@ +/obj/item/organ/internal/heart/ethereal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ethereal

Vars

crystalization_process_damageDamage taken during crystalization, resets after it ends
crystalize_cooldownCooldown for the next time we can crystalize
crystalize_timer_idTimer ID for when we will be crystalized, If not preparing this will be null.
current_crystalThe current crystal the ethereal is in, if any
ethereal_colorColor of the heart, is set by the species on gain

Procs

crystalizeActually spawns the crystal which puts the ethereal in it.
on_examineRan when examined while crystalizing, gives info about the amount of time left
on_stat_changeOn stat changes, if the victim is no longer dead but they're crystalizing, cancel it, if they become dead, start the crystalizing process if possible
on_take_damageLets you stop the process with enough brute damage
reset_crystalizingRan when disarmed, prevents the ethereal from reviving
stop_crystalization_processStop the crystalization process, unregistering any signals and resetting any variables.

Var Details

crystalization_process_damage

Damage taken during crystalization, resets after it ends

crystalize_cooldown

Cooldown for the next time we can crystalize

crystalize_timer_id

Timer ID for when we will be crystalized, If not preparing this will be null.

current_crystal

The current crystal the ethereal is in, if any

ethereal_color

Color of the heart, is set by the species on gain

Proc Details

crystalize

Actually spawns the crystal which puts the ethereal in it.

on_examine

Ran when examined while crystalizing, gives info about the amount of time left

on_stat_change

On stat changes, if the victim is no longer dead but they're crystalizing, cancel it, if they become dead, start the crystalizing process if possible

on_take_damage

Lets you stop the process with enough brute damage

reset_crystalizing

Ran when disarmed, prevents the ethereal from reviving

stop_crystalization_process

Stop the crystalization process, unregistering any signals and resetting any variables.

\ No newline at end of file diff --git a/obj/item/organ/internal/heart/freedom.html b/obj/item/organ/internal/heart/freedom.html new file mode 100644 index 0000000000000..35d10be670dd4 --- /dev/null +++ b/obj/item/organ/internal/heart/freedom.html @@ -0,0 +1 @@ +/obj/item/organ/internal/heart/freedom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

freedom

Vars

adrenaline_cooldownThe cooldown until the next time this heart can give the host an adrenaline boost.

Var Details

adrenaline_cooldown

The cooldown until the next time this heart can give the host an adrenaline boost.

\ No newline at end of file diff --git a/obj/item/organ/internal/heart/gland.html b/obj/item/organ/internal/heart/gland.html new file mode 100644 index 0000000000000..85f11b35d6cd7 --- /dev/null +++ b/obj/item/organ/internal/heart/gland.html @@ -0,0 +1 @@ +/obj/item/organ/internal/heart/gland - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gland

Vars

abductor_hintShows name of the gland as well as a description of what it does upon examination by abductor scientists and observers.
activation_cooldownThe cooldown for activations
cooldown_highThe maximum time between activations
cooldown_lowThe minimum time between activations
usesThe number of remaining uses this gland has.

Var Details

abductor_hint

Shows name of the gland as well as a description of what it does upon examination by abductor scientists and observers.

activation_cooldown

The cooldown for activations

cooldown_high

The maximum time between activations

cooldown_low

The minimum time between activations

uses

The number of remaining uses this gland has.

\ No newline at end of file diff --git a/obj/item/organ/internal/heart/gondola.html b/obj/item/organ/internal/heart/gondola.html new file mode 100644 index 0000000000000..8dac46daae963 --- /dev/null +++ b/obj/item/organ/internal/heart/gondola.html @@ -0,0 +1 @@ +/obj/item/organ/internal/heart/gondola - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gondola

makes you a pacifist and turns most mobs neutral towards you

Vars

factions_to_removekeeps track of whether the receiver actually gained factions

Var Details

factions_to_remove

keeps track of whether the receiver actually gained factions

\ No newline at end of file diff --git a/obj/item/organ/internal/heart/hemophage.html b/obj/item/organ/internal/heart/hemophage.html new file mode 100644 index 0000000000000..51129c77a3dd1 --- /dev/null +++ b/obj/item/organ/internal/heart/hemophage.html @@ -0,0 +1,5 @@ +/obj/item/organ/internal/heart/hemophage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hemophage

Vars

bloodloss_rateWhat is the current rate (per second) at which the tumor is consuming blood?
is_dormantAre we currently dormant? Defaults to PULSATING_TUMOR_ACTIVE (so FALSE).

Procs

can_heal_owner_damageWhether or not we should be applying the healing status effect for the owner.
in_closetSimple helper proc that returns whether or not the given hemophage is in a closet subtype (but not in any bodybag subtype).
in_total_darknessSimple helper proc that returns whether or not the given hemophage is in total darkness.
toggle_dormant_stateSimple helper proc that toggles the dormant state of the tumor, which also switches its appearance to reflect said change.
toggle_dormant_tumor_vulnerabilitiesSimple helper to toggle the hemophage's vulnerability (or lack thereof) based on the status of their tumor. +This proc contains no check whatsoever, to avoid redundancy of null checks and such. +That being said, it shouldn't be used by anything but the tumor, if you have to call it outside of that, you probably have gone wrong somewhere.

Var Details

bloodloss_rate

What is the current rate (per second) at which the tumor is consuming blood?

is_dormant

Are we currently dormant? Defaults to PULSATING_TUMOR_ACTIVE (so FALSE).

Proc Details

can_heal_owner_damage

Whether or not we should be applying the healing status effect for the owner.

in_closet

Simple helper proc that returns whether or not the given hemophage is in a closet subtype (but not in any bodybag subtype).

in_total_darkness

Simple helper proc that returns whether or not the given hemophage is in total darkness.

toggle_dormant_state

Simple helper proc that toggles the dormant state of the tumor, which also switches its appearance to reflect said change.

toggle_dormant_tumor_vulnerabilities

Simple helper to toggle the hemophage's vulnerability (or lack thereof) based on the status of their tumor. +This proc contains no check whatsoever, to avoid redundancy of null checks and such. +That being said, it shouldn't be used by anything but the tumor, if you have to call it outside of that, you probably have gone wrong somewhere.

\ No newline at end of file diff --git a/obj/item/organ/internal/heart/nightmare.html b/obj/item/organ/internal/heart/nightmare.html new file mode 100644 index 0000000000000..c9f6ffbd3385c --- /dev/null +++ b/obj/item/organ/internal/heart/nightmare.html @@ -0,0 +1 @@ +/obj/item/organ/internal/heart/nightmare - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

nightmare

Vars

bladeThe armblade granted to the host of this heart.
respawn_progressHow many life ticks in the dark the owner has been dead for. Used for nightmare respawns.

Var Details

blade

The armblade granted to the host of this heart.

respawn_progress

How many life ticks in the dark the owner has been dead for. Used for nightmare respawns.

\ No newline at end of file diff --git a/obj/item/organ/internal/heart/roach.html b/obj/item/organ/internal/heart/roach.html new file mode 100644 index 0000000000000..b5321e58a5c57 --- /dev/null +++ b/obj/item/organ/internal/heart/roach.html @@ -0,0 +1,5 @@ +/obj/item/organ/internal/heart/roach - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

roach

Roach heart: +Reduces damage taken from brute attacks from behind, +but increases duration of knockdowns

Vars

roach_shellBodypart overlay applied to the chest the heart is in

Procs

do_block_effectSignal proc for COMSIG_MOB_AFTER_APPLY_DAMAGE
is_blockingChecks if the passed mob is in a valid state to be blocking damage with the roach shell
modify_damageSignal proc for COMSIG_MOB_APPLY_DAMAGE_MODIFIERS

Var Details

roach_shell

Bodypart overlay applied to the chest the heart is in

Proc Details

do_block_effect

Signal proc for COMSIG_MOB_AFTER_APPLY_DAMAGE

+

Does a special effect if we blocked damage with our back

is_blocking

Checks if the passed mob is in a valid state to be blocking damage with the roach shell

modify_damage

Signal proc for COMSIG_MOB_APPLY_DAMAGE_MODIFIERS

+

Adds a 0.5 modifier to attacks from the back

\ No newline at end of file diff --git a/obj/item/organ/internal/heart/snail.html b/obj/item/organ/internal/heart/snail.html new file mode 100644 index 0000000000000..54ccf25633484 --- /dev/null +++ b/obj/item/organ/internal/heart/snail.html @@ -0,0 +1,3 @@ +/obj/item/organ/internal/heart/snail - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

snail

Procs

do_block_effectSignal proc for COMSIG_MOB_AFTER_APPLY_DAMAGE
is_blockingChecks if the passed mob is in a valid state to be blocking damage with the snail shell
modify_damageSignal proc for COMSIG_MOB_APPLY_DAMAGE_MODIFIERS

Proc Details

do_block_effect

Signal proc for COMSIG_MOB_AFTER_APPLY_DAMAGE

+

Does a special effect if we blocked damage with our shell.

is_blocking

Checks if the passed mob is in a valid state to be blocking damage with the snail shell

modify_damage

Signal proc for COMSIG_MOB_APPLY_DAMAGE_MODIFIERS

+

Adds a 0.5 modifier to attacks from the back, code borrowed (wholesale) from the roach heart.

\ No newline at end of file diff --git a/obj/item/organ/internal/legion_tumour.html b/obj/item/organ/internal/legion_tumour.html new file mode 100644 index 0000000000000..c06a75545ecc2 --- /dev/null +++ b/obj/item/organ/internal/legion_tumour.html @@ -0,0 +1 @@ +/obj/item/organ/internal/legion_tumour - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

legion_tumour

Left behind when a legion infects you, for medical enrichment

Vars

applied_statusWe apply this status effect periodically or when used on someone
elapsed_timeHow long have we been in this stage?
growth_timeHow long does it take to advance one stage?
spawn_typeWhat kind of mob will we transform into?
spooky_soundsSpooky sounds to play as you start to turn
stageWhat stage of growth the corruption has reached.

Procs

animate_pulseDo a heartbeat animation depending on if we're failing or not
infestConsume our host
try_applySmear it on someone like a regen core, why not. Make sure they're alive though.

Var Details

applied_status

We apply this status effect periodically or when used on someone

elapsed_time

How long have we been in this stage?

growth_time

How long does it take to advance one stage?

spawn_type

What kind of mob will we transform into?

spooky_sounds

Spooky sounds to play as you start to turn

stage

What stage of growth the corruption has reached.

Proc Details

animate_pulse

Do a heartbeat animation depending on if we're failing or not

infest

Consume our host

try_apply

Smear it on someone like a regen core, why not. Make sure they're alive though.

\ No newline at end of file diff --git a/obj/item/organ/internal/liver.html b/obj/item/organ/internal/liver.html new file mode 100644 index 0000000000000..03cf014608019 --- /dev/null +++ b/obj/item/organ/internal/liver.html @@ -0,0 +1,6 @@ +/obj/item/organ/internal/liver - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

liver

Vars

alcohol_toleranceAffects how much damage the liver takes from alcohol
liver_resistanceModifies how much damage toxin deals to the liver
toxToleranceThe maximum volume of toxins the liver will ignore

Procs

handle_chemicalThis proc can be overriden by liver subtypes so they can handle certain chemicals in special ways. +Return null to continue running the normal on_mob_life() for that reagent. +Return COMSIG_MOB_STOP_REAGENT_CHECK to not run the normal metabolism effects.
on_mob_insertRegisters COMSIG_SPECIES_HANDLE_CHEMICAL from owner
on_mob_removeUnregisters COMSIG_SPECIES_HANDLE_CHEMICAL from owner

Var Details

alcohol_tolerance

Affects how much damage the liver takes from alcohol

liver_resistance

Modifies how much damage toxin deals to the liver

toxTolerance

The maximum volume of toxins the liver will ignore

Proc Details

handle_chemical

This proc can be overriden by liver subtypes so they can handle certain chemicals in special ways. +Return null to continue running the normal on_mob_life() for that reagent. +Return COMSIG_MOB_STOP_REAGENT_CHECK to not run the normal metabolism effects.

+

NOTE: If you return COMSIG_MOB_STOP_REAGENT_CHECK, that reagent will not be removed like normal! You must handle it manually.

on_mob_insert

Registers COMSIG_SPECIES_HANDLE_CHEMICAL from owner

on_mob_remove

Unregisters COMSIG_SPECIES_HANDLE_CHEMICAL from owner

\ No newline at end of file diff --git a/obj/item/organ/internal/liver/bone.html b/obj/item/organ/internal/liver/bone.html new file mode 100644 index 0000000000000..bf9164d865f29 --- /dev/null +++ b/obj/item/organ/internal/liver/bone.html @@ -0,0 +1,3 @@ +/obj/item/organ/internal/liver/bone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bone

Bone liver +Gives the owner liverless metabolism, makes them vulnerable to bone hurting juice and +makes milk heal them through meme magic.

Vars

milk_brute_healingVar for brute healing via milk
milk_burn_healingVar for burn healing via milk

Var Details

milk_brute_healing

Var for brute healing via milk

milk_burn_healing

Var for burn healing via milk

\ No newline at end of file diff --git a/obj/item/organ/internal/liver/corrupt.html b/obj/item/organ/internal/liver/corrupt.html new file mode 100644 index 0000000000000..0d2abe05e5d71 --- /dev/null +++ b/obj/item/organ/internal/liver/corrupt.html @@ -0,0 +1 @@ +/obj/item/organ/internal/liver/corrupt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

corrupt

Randomly secretes alcohol or hallucinogens when you're drinking something

Vars

amount_addedHow much extra ingredients to add?
extra_ingredientsWhat extra ingredients can we add?

Procs

on_drankIf we drank something, add a little extra

Var Details

amount_added

How much extra ingredients to add?

extra_ingredients

What extra ingredients can we add?

Proc Details

on_drank

If we drank something, add a little extra

\ No newline at end of file diff --git a/obj/item/organ/internal/liver/golem.html b/obj/item/organ/internal/liver/golem.html new file mode 100644 index 0000000000000..465005dcc664b --- /dev/null +++ b/obj/item/organ/internal/liver/golem.html @@ -0,0 +1,4 @@ +/obj/item/organ/internal/liver/golem - /tg/ Station 13
/tg/ Station 13 - Modules - Types

golem

Golem liver +Basically only exists to remove the nutriment factor from consumables, +so golems can only consume minerals even when injecting reagents.

+

Actually consuming golem food is handled by /obj/item/organ/internal/stomach/golem!

\ No newline at end of file diff --git a/obj/item/organ/internal/liver/gondola.html b/obj/item/organ/internal/liver/gondola.html new file mode 100644 index 0000000000000..0bdeeaa8ca2ec --- /dev/null +++ b/obj/item/organ/internal/liver/gondola.html @@ -0,0 +1 @@ +/obj/item/organ/internal/liver/gondola - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

gondola

Loving arms: your hands become unable to hold much of anything but your hugs now infuse the subject with pax.

Procs

on_owner_equipping_itemsignal sent when prompting if an item can be equipped
on_owner_try_pullsignal sent when owner tries to pull an item

Proc Details

on_owner_equipping_item

signal sent when prompting if an item can be equipped

on_owner_try_pull

signal sent when owner tries to pull an item

\ No newline at end of file diff --git a/obj/item/organ/internal/lungs.html b/obj/item/organ/internal/lungs.html new file mode 100644 index 0000000000000..1fda3cd41c80a --- /dev/null +++ b/obj/item/organ/internal/lungs.html @@ -0,0 +1,32 @@ +/obj/item/organ/internal/lungs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lungs

Vars

breath_lostAssoc list of procs to run when a gas is immediately removed from the breath, in the form gas id -> proc_path
breath_outGas mixture to breath out when we're done processing a breath +Will get emptied out when it's all done
breath_presentAssoc list of procs to run while a gas is present, in the form gas id -> proc_path
breathe_alwaysAssoc list of procs to always run, in the form gas_id -> proc_path
healium_para_minMinimum amount of healium to make you unconscious for 4 seconds
healium_sleep_minMinimum amount of healium to knock you down for good
helium_speech_minMinimum amount of helium to affect speech
last_partial_pressuresOur previous breath's partial pressures, in the form gas id -> partial pressure
safe_plasma_maxHow much breath partial pressure is a safe amount of plasma. 0 means that we are immune to plasma.
suffers_miasmaWhether these lungs react negatively to miasma
treat_asList of gas to treat as other gas, in the form list(inital_gas, treat_as, multiplier)

Procs

InsertSimply exists so that you don't keep any alerts from your previous lack of lungs.
add_gas_reactionTells the lungs to pay attention to the passed in gas type +We'll check for it when breathing, in a few possible ways +Accepts 3 optional arguments:
add_gas_relationshipTells the lungs to treat the passed in gas type as another passed in gas type +Takes the gas to check for as an argument, alongside the gas to convert and the multiplier to use +These act in the order of insertion, use that how you will
breathe_gas_volumeRemove gas from breath. If output_gas is given, transfers the removed gas to the lung's gas_mixture. +Removes 100% of the given gas type unless given a volume argument. +Returns the amount of gas theoretically removed.
breathe_nitroIf the lungs need Nitrogen to breathe properly, N2 is exchanged with CO2.
breathe_oxygenHandles oxygen breathing. Always called by things that need o2, no matter what
breathe_plasmaIf the lungs need Plasma to breathe properly, Plasma is exchanged with CO2.
check_breathThis proc tests if the lungs can breathe, if they can breathe a given gas mixture, and throws/clears gas alerts. +It does this by calling subprocs "registered" to pay attention to different gas types +There's also support for gases that should always be checked for, and procs that should run when a gas is finished
consume_healiumSleeping gas with healing properties.
consume_heliumActivates helium speech when partial pressure gets high enough
consume_hypernobliumGain hypernob effects if we have enough of the stuff
consume_pluoxiumBehaves like Oxygen with 8X efficacy, but metabolizes into a reagent.
emit_breath_particleCreates a particle effect off the mouth of the passed mob.
handle_helium_speechReact to speach while hopped up on the high pitched voice juice
handle_suffocationApplies suffocation side-effects to a given Human, scaling based on ratio of required pressure VS "true" pressure. +If pressure is greater than 0, the return value will represent the amount of gas successfully breathed.
lose_healiumLose healium side effects
lose_heliumLose helium high pitched voice
remove_gas_relationshipClears away a gas relationship. Takes the same args as the initial addition
safe_co2Handles NOT having too much co2. only relevant if safe_co2_max has a value
safe_n2oN2O side-effects. "Too much N2O!"
safe_oxygenHandles NOT having too much o2. only relevant if safe_oxygen_max has a value
safe_plasmaResets plasma side effects
too_much_bzToo much funny gas, time to get brain damage
too_much_co2Maximum CO2 effects. "Too much CO2!"
too_much_freonBreathing in refridgerator coolent, shit's caustic
too_much_halonBreathing in halon, convert it to a reagent
too_much_n2oCauses random euphoria and giggling. Large amounts knock you down
too_much_oxygenMaximum Oxygen effects. "Too much O2!"
too_much_plasmaMaximum Plasma effects. "Too much Plasma!"
too_much_tritiumRadioactive, green gas. Toxin damage, and a radiation chance
too_much_zaukerReally toxic stuff, very much trying to kill you

Var Details

breath_lost

Assoc list of procs to run when a gas is immediately removed from the breath, in the form gas id -> proc_path

breath_out

Gas mixture to breath out when we're done processing a breath +Will get emptied out when it's all done

breath_present

Assoc list of procs to run while a gas is present, in the form gas id -> proc_path

breathe_always

Assoc list of procs to always run, in the form gas_id -> proc_path

healium_para_min

Minimum amount of healium to make you unconscious for 4 seconds

healium_sleep_min

Minimum amount of healium to knock you down for good

helium_speech_min

Minimum amount of helium to affect speech

last_partial_pressures

Our previous breath's partial pressures, in the form gas id -> partial pressure

safe_plasma_max

How much breath partial pressure is a safe amount of plasma. 0 means that we are immune to plasma.

suffers_miasma

Whether these lungs react negatively to miasma

treat_as

List of gas to treat as other gas, in the form list(inital_gas, treat_as, multiplier)

Proc Details

Insert

Simply exists so that you don't keep any alerts from your previous lack of lungs.

add_gas_reaction

Tells the lungs to pay attention to the passed in gas type +We'll check for it when breathing, in a few possible ways +Accepts 3 optional arguments:

+

proc/while_present * Called while the gas is present in our breath. Return BREATH_LOST to call on_loss afterwards +proc/on_loss * Called after we have lost a gas from our breath. +proc/always * Always called. Best suited for breathing procs, like oxygen

+

while_present and always get the same arguments (mob/living/carbon/breather, datum/gas_mixture/breath, pp, old_pp) +on_loss is almost exactly the same, except it doesn't pass in a current partial pressure, since one isn't avalible

add_gas_relationship

Tells the lungs to treat the passed in gas type as another passed in gas type +Takes the gas to check for as an argument, alongside the gas to convert and the multiplier to use +These act in the order of insertion, use that how you will

breathe_gas_volume

Remove gas from breath. If output_gas is given, transfers the removed gas to the lung's gas_mixture. +Removes 100% of the given gas type unless given a volume argument. +Returns the amount of gas theoretically removed.

breathe_nitro

If the lungs need Nitrogen to breathe properly, N2 is exchanged with CO2.

breathe_oxygen

Handles oxygen breathing. Always called by things that need o2, no matter what

breathe_plasma

If the lungs need Plasma to breathe properly, Plasma is exchanged with CO2.

check_breath

This proc tests if the lungs can breathe, if they can breathe a given gas mixture, and throws/clears gas alerts. +It does this by calling subprocs "registered" to pay attention to different gas types +There's also support for gases that should always be checked for, and procs that should run when a gas is finished

+

Returns TRUE if the breath was successful, or FALSE if otherwise.

+

Arguments:

+
    +
  • breath: A gas mixture to test, or null.
  • +
  • breather: A carbon mob that is using the lungs to breathe.
  • +

consume_healium

Sleeping gas with healing properties.

consume_helium

Activates helium speech when partial pressure gets high enough

consume_hypernoblium

Gain hypernob effects if we have enough of the stuff

consume_pluoxium

Behaves like Oxygen with 8X efficacy, but metabolizes into a reagent.

emit_breath_particle

Creates a particle effect off the mouth of the passed mob.

handle_helium_speech

React to speach while hopped up on the high pitched voice juice

handle_suffocation

Applies suffocation side-effects to a given Human, scaling based on ratio of required pressure VS "true" pressure. +If pressure is greater than 0, the return value will represent the amount of gas successfully breathed.

lose_healium

Lose healium side effects

lose_helium

Lose helium high pitched voice

remove_gas_relationship

Clears away a gas relationship. Takes the same args as the initial addition

safe_co2

Handles NOT having too much co2. only relevant if safe_co2_max has a value

safe_n2o

N2O side-effects. "Too much N2O!"

safe_oxygen

Handles NOT having too much o2. only relevant if safe_oxygen_max has a value

safe_plasma

Resets plasma side effects

too_much_bz

Too much funny gas, time to get brain damage

too_much_co2

Maximum CO2 effects. "Too much CO2!"

too_much_freon

Breathing in refridgerator coolent, shit's caustic

too_much_halon

Breathing in halon, convert it to a reagent

too_much_n2o

Causes random euphoria and giggling. Large amounts knock you down

too_much_oxygen

Maximum Oxygen effects. "Too much O2!"

too_much_plasma

Maximum Plasma effects. "Too much Plasma!"

too_much_tritium

Radioactive, green gas. Toxin damage, and a radiation chance

too_much_zauker

Really toxic stuff, very much trying to kill you

\ No newline at end of file diff --git a/obj/item/organ/internal/lungs/corrupt.html b/obj/item/organ/internal/lungs/corrupt.html new file mode 100644 index 0000000000000..56f97dcaaacd7 --- /dev/null +++ b/obj/item/organ/internal/lungs/corrupt.html @@ -0,0 +1 @@ +/obj/item/organ/internal/lungs/corrupt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

corrupt

Sometimes cough out some kind of dangerous gas

Vars

cough_chanceHow likely are we not to cough every time we take a breath?
gas_amountHow much gas to emit?
gas_typesWhat can we cough up?

Var Details

cough_chance

How likely are we not to cough every time we take a breath?

gas_amount

How much gas to emit?

gas_types

What can we cough up?

\ No newline at end of file diff --git a/obj/item/organ/internal/lungs/ethereal.html b/obj/item/organ/internal/lungs/ethereal.html new file mode 100644 index 0000000000000..04037dbf6f4cc --- /dev/null +++ b/obj/item/organ/internal/lungs/ethereal.html @@ -0,0 +1 @@ +/obj/item/organ/internal/lungs/ethereal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ethereal

Procs

consume_waterH2O electrolysis

Proc Details

consume_water

H2O electrolysis

\ No newline at end of file diff --git a/obj/item/organ/internal/monster_core.html b/obj/item/organ/internal/monster_core.html new file mode 100644 index 0000000000000..e46a23420b4d5 --- /dev/null +++ b/obj/item/organ/internal/monster_core.html @@ -0,0 +1,26 @@ +/obj/item/organ/internal/monster_core - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

monster_core

Useful organs which drop as loot from a mining creature. +Generalised behaviour is that they will decay and become useless unless provided with serum. +These should usually do something both when used in-hand, or when implanted into someone.

Vars

decay_timerID of the timer which will decay this organ
desc_inertDescription to use once organ is inert
desc_preservedDescription to use once organ has been preserved
icon_state_inertIcon state to apply when inert
icon_state_preservedIcon state to apply when preserved
inertSet to true if this organ has decayed into uselessness.
time_to_decayTime after which organ should become useless
user_statusStatus effect applied by this organ

Procs

apply_toApplies the effect of this organ to the target. +Arguments
go_inertDecays the organ, it is now useless.
on_triggered_internalCalled when activated while implanted inside someone. +This could be via clicking the associated action button or through the above method.
preservePreserves the organ so that it will not decay. +Returns true if successful.
trigger_organ_actionUtility proc to find the associated monster organ action and trigger it. +Call this instead of on_triggered_internal() if the action needs to trigger automatically, or the cooldown won't happen.
try_applyTries to apply organ effect to target. +Usually you should not need to override this, only apply_to. +Arguments

Var Details

decay_timer

ID of the timer which will decay this organ

desc_inert

Description to use once organ is inert

desc_preserved

Description to use once organ has been preserved

icon_state_inert

Icon state to apply when inert

icon_state_preserved

Icon state to apply when preserved

inert

Set to true if this organ has decayed into uselessness.

time_to_decay

Time after which organ should become useless

user_status

Status effect applied by this organ

Proc Details

apply_to

Applies the effect of this organ to the target. +Arguments

+
    +
  • target - Person you are applying this to.
  • +
  • user - Person who is doing the applying.
  • +

go_inert

Decays the organ, it is now useless.

on_triggered_internal

Called when activated while implanted inside someone. +This could be via clicking the associated action button or through the above method.

preserve

Preserves the organ so that it will not decay. +Returns true if successful.

+
    +
  • Implanted - If true, organ has just been inserted into someone.
  • +

trigger_organ_action

Utility proc to find the associated monster organ action and trigger it. +Call this instead of on_triggered_internal() if the action needs to trigger automatically, or the cooldown won't happen.

try_apply

Tries to apply organ effect to target. +Usually you should not need to override this, only apply_to. +Arguments

+
    +
  • target - Person you are applying this to.
  • +
  • user - Person who is doing the applying.
  • +
\ No newline at end of file diff --git a/obj/item/organ/internal/monster_core/brimdust_sac.html b/obj/item/organ/internal/monster_core/brimdust_sac.html new file mode 100644 index 0000000000000..9d799b464d513 --- /dev/null +++ b/obj/item/organ/internal/monster_core/brimdust_sac.html @@ -0,0 +1,4 @@ +/obj/item/organ/internal/monster_core/brimdust_sac - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

brimdust_sac

Gives you three stacks of Brimdust Coating, when you get hit by anything it will make a short ranged explosion. +If this happens on the station it does much less damage, and slows down the bearer. +If implanted, you can shake off a cloud of brimdust to give this buff to people around you.area +It will also automatically grant you one stack every 30 seconds if you are on lavaland.

Vars

brimdust_auto_apply_cooldownYou will gain a stack of the buff every x seconds

Procs

on_triggered_internalMake a cloud which applies brimdust to everyone nearby

Var Details

brimdust_auto_apply_cooldown

You will gain a stack of the buff every x seconds

Proc Details

on_triggered_internal

Make a cloud which applies brimdust to everyone nearby

\ No newline at end of file diff --git a/obj/item/organ/internal/monster_core/regenerative_core.html b/obj/item/organ/internal/monster_core/regenerative_core.html new file mode 100644 index 0000000000000..1304480163578 --- /dev/null +++ b/obj/item/organ/internal/monster_core/regenerative_core.html @@ -0,0 +1,2 @@ +/obj/item/organ/internal/monster_core/regenerative_core - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

regenerative_core

On use in hand, heals you over time and removes injury movement debuffs. Also makes you a bit sad. +On use when implanted, fully heals. Automatically fully heals if you would enter crit.

Procs

apply_toLog applications and apply moodlet.

Proc Details

apply_to

Log applications and apply moodlet.

\ No newline at end of file diff --git a/obj/item/organ/internal/stomach.html b/obj/item/organ/internal/stomach.html new file mode 100644 index 0000000000000..d8bd4287df1bd --- /dev/null +++ b/obj/item/organ/internal/stomach.html @@ -0,0 +1 @@ +/obj/item/organ/internal/stomach - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

stomach

Vars

disgust_metabolismThe rate that disgust decays
hunger_modifierMultiplier for hunger rate
metabolism_efficiencyThe rate that the stomach will transfer reagents to the body

Procs

after_eatThis gets called after the owner takes a bite of food
handle_hunger_slowdownfor when mood is disabled and hunger should handle slowdowns

Var Details

disgust_metabolism

The rate that disgust decays

hunger_modifier

Multiplier for hunger rate

metabolism_efficiency

The rate that the stomach will transfer reagents to the body

Proc Details

after_eat

This gets called after the owner takes a bite of food

handle_hunger_slowdown

for when mood is disabled and hunger should handle slowdowns

\ No newline at end of file diff --git a/obj/item/organ/internal/stomach/corrupt.html b/obj/item/organ/internal/stomach/corrupt.html new file mode 100644 index 0000000000000..6916b9546a179 --- /dev/null +++ b/obj/item/organ/internal/stomach/corrupt.html @@ -0,0 +1 @@ +/obj/item/organ/internal/stomach/corrupt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

corrupt

Rapidly become hungry if you are not digesting blood

Vars

message_cooldownHow long until we prompt the player to drink blood again?
thirst_satiatedDo we have an unholy thirst?
thirst_timerTimer for when we get thirsty again

Procs

on_drankCheck if we drank a little blood

Var Details

message_cooldown

How long until we prompt the player to drink blood again?

thirst_satiated

Do we have an unholy thirst?

thirst_timer

Timer for when we get thirsty again

Proc Details

on_drank

Check if we drank a little blood

\ No newline at end of file diff --git a/obj/item/organ/internal/stomach/ethereal.html b/obj/item/organ/internal/stomach/ethereal.html new file mode 100644 index 0000000000000..e6fff8addcdc3 --- /dev/null +++ b/obj/item/organ/internal/stomach/ethereal.html @@ -0,0 +1,7 @@ +/obj/item/organ/internal/stomach/ethereal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ethereal

Vars

cellWhere the energy of the stomach is stored.
drain_timeused to keep ethereals from spam draining power sources

Procs

adjust_chargeChanges the energy of the crystal stomach. +Args:

Var Details

cell

Where the energy of the stomach is stored.

drain_time

used to keep ethereals from spam draining power sources

Proc Details

adjust_charge

Changes the energy of the crystal stomach. +Args:

+
    +
  • amount: The change of the energy, in joules. +Returns: The amount of energy that actually got changed in joules.
  • +
\ No newline at end of file diff --git a/obj/item/organ/internal/stomach/golem.html b/obj/item/organ/internal/stomach/golem.html new file mode 100644 index 0000000000000..56471dad284bc --- /dev/null +++ b/obj/item/organ/internal/stomach/golem.html @@ -0,0 +1 @@ +/obj/item/organ/internal/stomach/golem - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

golem

Vars

max_hunger_slowdownHow slow are you if you have absolutely nothing in the tank?
min_hunger_slowdownHow slow are you when the "hungry" icon appears?

Procs

handle_hungerSlow down based on how full you are
on_lifeGolem stomach cannot process nutriment except from minerals
try_eatingReject food, rocks only

Var Details

max_hunger_slowdown

How slow are you if you have absolutely nothing in the tank?

min_hunger_slowdown

How slow are you when the "hungry" icon appears?

Proc Details

handle_hunger

Slow down based on how full you are

on_life

Golem stomach cannot process nutriment except from minerals

try_eating

Reject food, rocks only

\ No newline at end of file diff --git a/obj/item/organ/internal/stomach/synth.html b/obj/item/organ/internal/stomach/synth.html new file mode 100644 index 0000000000000..63e20919c54f6 --- /dev/null +++ b/obj/item/organ/internal/stomach/synth.html @@ -0,0 +1 @@ +/obj/item/organ/internal/stomach/synth - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

synth

Procs

on_borg_chargeHandles charging the synth from borg chargers

Proc Details

on_borg_charge

Handles charging the synth from borg chargers

\ No newline at end of file diff --git a/obj/item/organ/internal/tongue.html b/obj/item/organ/internal/tongue.html new file mode 100644 index 0000000000000..76a56fb984260 --- /dev/null +++ b/obj/item/organ/internal/tongue.html @@ -0,0 +1,18 @@ +/obj/item/organ/internal/tongue - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tongue

Vars

disliked_foodtypesFoodtypes this tongue dislikes
languages_nativeA list of languages which are native to this tongue
languages_possibleA cached list of paths of all the languages this tongue is capable of speaking
liked_foodtypesFoodtypes this tongue likes
modifies_speechWhether this tongue modifies speech via signal
say_modchanges the verbage of how you speak. (Permille -> says <-, "I just used a verb!") +i hate to say it, but because of sign language, this may have to be a component. and we may have to do some insane shit like putting a component on a component
sense_of_tasteWhether the owner of this tongue can taste anything. Being set to FALSE will mean no taste feedback will be provided.
taste_sensitivityDetermines how "sensitive" this tongue is to tasting things, lower is more sensitive. +See /mob/living/proc/get_taste_sensitivity.
temp_say_modfor temporary overrides of the above variable.
toxic_foodtypesFoodtypes this tongue HATES

Procs

apply_tongue_effectsApplies effects to our owner based on how damaged our tongue is
get_food_taste_reactionGets the food reaction a tongue would have from the food item, +assuming that no check_liked callback was used in the edible component.
get_possible_languagesUsed in setting up the "languages possible" list.

Var Details

disliked_foodtypes

Foodtypes this tongue dislikes

languages_native

A list of languages which are native to this tongue

+

When these languages are spoken with this tongue, and modifies speech is true, no modifications will be made +(such as no accent, hissing, or whatever)

languages_possible

A cached list of paths of all the languages this tongue is capable of speaking

+

Relates to a mob's ability to speak a language - a mob must be able to speak the language +and have a tongue able to speak the language (or omnitongue) in order to actually speak said language

+

To modify this list for subtypes, see /obj/item/organ/internal/tongue/proc/get_possible_languages. Do not modify directly.

liked_foodtypes

Foodtypes this tongue likes

modifies_speech

Whether this tongue modifies speech via signal

say_mod

changes the verbage of how you speak. (Permille -> says <-, "I just used a verb!") +i hate to say it, but because of sign language, this may have to be a component. and we may have to do some insane shit like putting a component on a component

sense_of_taste

Whether the owner of this tongue can taste anything. Being set to FALSE will mean no taste feedback will be provided.

taste_sensitivity

Determines how "sensitive" this tongue is to tasting things, lower is more sensitive. +See /mob/living/proc/get_taste_sensitivity.

temp_say_mod

for temporary overrides of the above variable.

toxic_foodtypes

Foodtypes this tongue HATES

Proc Details

apply_tongue_effects

Applies effects to our owner based on how damaged our tongue is

get_food_taste_reaction

Gets the food reaction a tongue would have from the food item, +assuming that no check_liked callback was used in the edible component.

+

Can be overriden by subtypes for more complex behavior. +Does not get called if the owner has ageusia.

get_possible_languages

Used in setting up the "languages possible" list.

+

Override to have your tongue be only capable of speaking certain languages +Extend to hvae a tongue capable of speaking additional languages to the base tongue

+

While a user may be theoretically capable of speaking a language, they cannot physically speak it +UNLESS they have a tongue with that language possible, UNLESS UNLESS they have omnitongue enabled.

\ No newline at end of file diff --git a/obj/item/organ/internal/tongue/corrupt.html b/obj/item/organ/internal/tongue/corrupt.html new file mode 100644 index 0000000000000..281c749f1d672 --- /dev/null +++ b/obj/item/organ/internal/tongue/corrupt.html @@ -0,0 +1 @@ +/obj/item/organ/internal/tongue/corrupt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

corrupt

Sometimes speak in incomprehensible tongues

Procs

on_spokenWhen the mob speaks, sometimes put it in a different language

Proc Details

on_spoken

When the mob speaks, sometimes put it in a different language

\ No newline at end of file diff --git a/obj/item/orion_ship.html b/obj/item/orion_ship.html new file mode 100644 index 0000000000000..a84b6ccfbfb62 --- /dev/null +++ b/obj/item/orion_ship.html @@ -0,0 +1 @@ +/obj/item/orion_ship - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

orion_ship

A minibomb achieved from winning at emagged Orion.

Vars

activeBoolean on whether the ship is active, setting itself off for destruction.

Procs

commit_explosionAfter some dialogue (which doubles as the timer until explosion), causes a minibomb-level explosion.

Var Details

active

Boolean on whether the ship is active, setting itself off for destruction.

Proc Details

commit_explosion

After some dialogue (which doubles as the timer until explosion), causes a minibomb-level explosion.

\ No newline at end of file diff --git a/obj/item/pai_cable.html b/obj/item/pai_cable.html new file mode 100644 index 0000000000000..3fb934f2cea78 --- /dev/null +++ b/obj/item/pai_cable.html @@ -0,0 +1 @@ +/obj/item/pai_cable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pai_cable

Vars

hacking_machineThe current machine being hacked by the pAI cable.

Var Details

hacking_machine

The current machine being hacked by the pAI cable.

\ No newline at end of file diff --git a/obj/item/pai_card.html b/obj/item/pai_card.html new file mode 100644 index 0000000000000..9b9f86c124861 --- /dev/null +++ b/obj/item/pai_card.html @@ -0,0 +1,11 @@ +/obj/item/pai_card - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pai_card

Vars

alert_cooldownSpam alert prevention
emotion_iconThe emotion icon displayed.
paiAny pAI personalities inserted
request_spamPrevents a crew member from hitting "request pAI" repeatedly

Procs

add_alertFlashes the pai card screen
alert_updateAlerts pAI cards that someone has submitted candidacy
find_paiPings ghosts to announce that someone is requesting a pAI
ghost_activateChecks if the user is allowed to be a pAI, and if so, creates a new pAI mob. +Assuming the pAI card itself is empty of a personality.
pool_candidatesGathers a list of candidates to display in the download candidate +window. If the candidate isn't marked ready, ie they have not +pressed submit, they will be skipped over.
remove_alertRemoves any overlays
set_personalitySets the personality on the current pai_card

Var Details

alert_cooldown

Spam alert prevention

emotion_icon

The emotion icon displayed.

pai

Any pAI personalities inserted

request_spam

Prevents a crew member from hitting "request pAI" repeatedly

Proc Details

add_alert

Flashes the pai card screen

alert_update

Alerts pAI cards that someone has submitted candidacy

find_pai

Pings ghosts to announce that someone is requesting a pAI

+

@param {mob} user - The user who is requesting a pAI

+

@returns {boolean} - TRUE if the pAI was requested, FALSE if not

ghost_activate

Checks if the user is allowed to be a pAI, and if so, creates a new pAI mob. +Assuming the pAI card itself is empty of a personality.

pool_candidates

Gathers a list of candidates to display in the download candidate +window. If the candidate isn't marked ready, ie they have not +pressed submit, they will be skipped over.

+

@returns - An array of candidate objects.

remove_alert

Removes any overlays

set_personality

Sets the personality on the current pai_card

+

@param {silicon/pai} downloaded - The new pAI to load into the card.

\ No newline at end of file diff --git a/obj/item/paint.html b/obj/item/paint.html new file mode 100644 index 0000000000000..fda3788a3346f --- /dev/null +++ b/obj/item/paint.html @@ -0,0 +1 @@ +/obj/item/paint - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

paint

Vars

paint_colorWith what color will we paint with
paintleftHow many uses are left

Var Details

paint_color

With what color will we paint with

paintleft

How many uses are left

\ No newline at end of file diff --git a/obj/item/paint/anycolor.html b/obj/item/paint/anycolor.html new file mode 100644 index 0000000000000..65032367c9e16 --- /dev/null +++ b/obj/item/paint/anycolor.html @@ -0,0 +1,5 @@ +/obj/item/paint/anycolor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

anycolor

Procs

check_menuChecks if we are allowed to interact with a radial menu

Proc Details

check_menu

Checks if we are allowed to interact with a radial menu

+

Arguments:

+
    +
  • user The mob interacting with the menu
  • +
\ No newline at end of file diff --git a/obj/item/paint_palette.html b/obj/item/paint_palette.html new file mode 100644 index 0000000000000..f02d9dd06caa8 --- /dev/null +++ b/obj/item/paint_palette.html @@ -0,0 +1 @@ +/obj/item/paint_palette - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

paint_palette

Simple painting utility.

Vars

current_colorChosen paint color

Var Details

current_color

Chosen paint color

\ No newline at end of file diff --git a/obj/item/paper.html b/obj/item/paper.html new file mode 100644 index 0000000000000..f2ae824f33688 --- /dev/null +++ b/obj/item/paper.html @@ -0,0 +1,64 @@ +/obj/item/paper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

paper

Paper +also scraps of paper

+

lipstick wiping is in code/game/objects/items/weapons/cosmetics.dm!

+

Paper is now using markdown (like in github pull notes) for ALL rendering +so we do loose a bit of functionality but we gain in easy of use of +paper and getting rid of that crashing bug

Vars

camera_holderPaper can be shown via cameras. When that is done, a deep copy of the paper is made and stored as a var on the camera. +The paper is located in nullspace, and holds a weak ref to the camera that once contained it so the paper can do some +state checking on if it should be shown to a viewer.
can_become_message_in_bottleIf this paper can be selected as a candidate for a future message in a bottle when spawned outside of mapload. Doesn't affect manually doing that.
contact_poisonReagent to transfer to the user when they pick the paper up without proper protection.
contact_poison_volumeVolume of contact_poison to transfer to the user when they pick the paper up without proper protection.
default_raw_textDefault raw text to fill this paper with on init.
input_field_countThe number of input fields
raw_field_input_dataLazylist of all fields that have had some input added to them.
raw_stamp_dataLazylist of all raw stamp data to be sent to tgui.
raw_text_inputsLazylist of raw, unsanitised, unparsed text inputs that have been made to the paper.
request_stateIf TRUE, staff can read paper everywhere, but usually from requests panel.
show_written_wordsWhether the icon should show little scribbly written words when the paper has some text on it.
stamp_cacheHelper cache that contains a list of all icon_states that are currently stamped on the paper.

Procs

add_field_inputThis simple helper adds the supplied input field data to the paper.
add_raw_textThis simple helper adds the supplied raw text to the paper, appending to the end of any existing contents.
add_stampThis simple helper adds the supplied stamp to the paper, appending to the end of any existing stamps.
clear_paperRemoves all input and all stamps from the paper, clearing it completely.
copyThis proc copies this sheet of paper to a new +sheet. Used by carbon papers and the photocopier machine.
copy_field_textReturns a deep copy list of raw_field_input_data, or null if the list is empty or doesn't exist.
copy_raw_stampsReturns a deep copy list of raw_stamp_data, or null if the list is empty or doesn't exist. Does not copy overlays or stamp_cache, only the tgui rendered stamps.
copy_raw_textReturns a deep copy list of raw_text_inputs, or null if the list is empty or doesn't exist.
get_raw_textGet a single string representing the text on a page
is_emptyDetermines whether this paper has been written or stamped to.
item_interaction_secondarySecondary right click interaction to quickly stamp things
make_planePaper plane folding +Makes a paperplane depending on args and returns it.
show_through_cameraAttempts to ui_interact the paper to the given user, with some sanity checking +to make sure the camera still exists via the weakref and that this paper is still +attached to it.

Var Details

camera_holder

Paper can be shown via cameras. When that is done, a deep copy of the paper is made and stored as a var on the camera. +The paper is located in nullspace, and holds a weak ref to the camera that once contained it so the paper can do some +state checking on if it should be shown to a viewer.

can_become_message_in_bottle

If this paper can be selected as a candidate for a future message in a bottle when spawned outside of mapload. Doesn't affect manually doing that.

contact_poison

Reagent to transfer to the user when they pick the paper up without proper protection.

contact_poison_volume

Volume of contact_poison to transfer to the user when they pick the paper up without proper protection.

default_raw_text

Default raw text to fill this paper with on init.

input_field_count

The number of input fields

raw_field_input_data

Lazylist of all fields that have had some input added to them.

raw_stamp_data

Lazylist of all raw stamp data to be sent to tgui.

raw_text_inputs

Lazylist of raw, unsanitised, unparsed text inputs that have been made to the paper.

request_state

If TRUE, staff can read paper everywhere, but usually from requests panel.

show_written_words

Whether the icon should show little scribbly written words when the paper has some text on it.

stamp_cache

Helper cache that contains a list of all icon_states that are currently stamped on the paper.

Proc Details

add_field_input

This simple helper adds the supplied input field data to the paper.

+

It will not overwrite any existing input field data by default and will early return FALSE if this scenario happens unless overwrite is +set properly.

+

Other than that, this is a God proc that does not care about max length or out-of-range IDs and expects sanity checking beforehand if +you want to respect it.

+
    +
  • Arguments:
  • +
  • field_id - The ID number of the field to which this data applies.
  • +
  • text - The text to append to the paper.
  • +
  • font - The font to use.
  • +
  • color - The font color to use.
  • +
  • bold - Whether this text should be rendered completely bold.
  • +
  • overwrite - If TRUE, will overwrite existing field ID's data if it exists.
  • +

add_raw_text

This simple helper adds the supplied raw text to the paper, appending to the end of any existing contents.

+

This a God proc that does not care about paper max length and expects sanity checking beforehand if you want to respect it.

+

The caller is expected to handle updating icons and appearance after adding text, to allow for more efficient batch adding loops.

+
    +
  • Arguments:
  • +
  • text - The text to append to the paper.
  • +
  • font - The font to use.
  • +
  • color - The font color to use.
  • +
  • bold - Whether this text should be rendered completely bold.
  • +
  • advanced_html - Boolean that is true when the writer has R_FUN permission, which sanitizes less HTML (such as images) from the new paper_input
  • +

add_stamp

This simple helper adds the supplied stamp to the paper, appending to the end of any existing stamps.

+

This a God proc that does not care about stamp max count and expects sanity checking beforehand if you want to respect it.

+

It does however respect the overlay limit and will not apply any overlays past the cap.

+

The caller is expected to handle updating icons and appearance after adding text, to allow for more efficient batch adding loops.

+
    +
  • Arguments:
  • +
  • stamp_class - Div class for the stamp.
  • +
  • stamp_x - X coordinate to render the stamp in tgui.
  • +
  • stamp_y - Y coordinate to render the stamp in tgui.
  • +
  • rotation - Degrees of rotation for the stamp to be rendered with in tgui.
  • +
  • stamp_icon_state - Icon state for the stamp as part of overlay rendering.
  • +

clear_paper

Removes all input and all stamps from the paper, clearing it completely.

copy

This proc copies this sheet of paper to a new +sheet. Used by carbon papers and the photocopier machine.

+

Arguments

+
    +
  • paper_type - Type path of the new paper to create. Can copy anything to anything.
  • +
  • location - Where to spawn in the new copied paper.
  • +
  • colored - If true, the copied paper will be coloured and will inherit all colours.
  • +
  • greyscale_override - If set to a colour string and coloured is false, it will override the default of COLOR_WEBSAFE_DARK_GRAY when copying.
  • +

copy_field_text

Returns a deep copy list of raw_field_input_data, or null if the list is empty or doesn't exist.

copy_raw_stamps

Returns a deep copy list of raw_stamp_data, or null if the list is empty or doesn't exist. Does not copy overlays or stamp_cache, only the tgui rendered stamps.

copy_raw_text

Returns a deep copy list of raw_text_inputs, or null if the list is empty or doesn't exist.

get_raw_text

Get a single string representing the text on a page

is_empty

Determines whether this paper has been written or stamped to.

item_interaction_secondary

Secondary right click interaction to quickly stamp things

make_plane

Paper plane folding +Makes a paperplane depending on args and returns it.

+

Arguments:

+
    +
  • mob/living/user - who's folding
  • +
  • plane_type - what it will be folded into (path)
  • +

show_through_camera

Attempts to ui_interact the paper to the given user, with some sanity checking +to make sure the camera still exists via the weakref and that this paper is still +attached to it.

\ No newline at end of file diff --git a/obj/item/paper/fake_report.html b/obj/item/paper/fake_report.html new file mode 100644 index 0000000000000..8ef4b058a075c --- /dev/null +++ b/obj/item/paper/fake_report.html @@ -0,0 +1,2 @@ +/obj/item/paper/fake_report - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fake_report

Reports printed by fake N-spect scanner

+

Not valid for the bounty.

Vars

scanned_areaWhat area the inspector scanned when the report was made. Used to generate the examine text of the report

Var Details

scanned_area

What area the inspector scanned when the report was made. Used to generate the examine text of the report

\ No newline at end of file diff --git a/obj/item/paper/fake_report/water.html b/obj/item/paper/fake_report/water.html new file mode 100644 index 0000000000000..4d438667b4dc3 --- /dev/null +++ b/obj/item/paper/fake_report/water.html @@ -0,0 +1,3 @@ +/obj/item/paper/fake_report/water - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Fake report made of water

Fake report but it turns into water under certain circumstances.

+

If someone who isn't an origami master tries to fold it into a paper plane, it will make the floor it's on wet and disappear. +If it is ground, it will turn into 5u water.

\ No newline at end of file diff --git a/obj/item/paper/fluff/scrambled_pass.html b/obj/item/paper/fluff/scrambled_pass.html new file mode 100644 index 0000000000000..6a642475284bf --- /dev/null +++ b/obj/item/paper/fluff/scrambled_pass.html @@ -0,0 +1 @@ +/obj/item/paper/fluff/scrambled_pass - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

scrambled_pass

Vars

puzzle_idThe ID associated to the puzzle we're part of.

Var Details

puzzle_id

The ID associated to the puzzle we're part of.

\ No newline at end of file diff --git a/obj/item/paper/joker.html b/obj/item/paper/joker.html new file mode 100644 index 0000000000000..9a07e79fe3242 --- /dev/null +++ b/obj/item/paper/joker.html @@ -0,0 +1,11 @@ +/obj/item/paper/joker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

joker

Vars

flippedWhether or not the card is currently flipped.
flipside_default_raw_textThe flipped version of default_raw_text.
flipside_input_field_countFlipside version of input_field_count
flipside_raw_field_input_dataFlipside version of raw_field_input_data.
flipside_raw_stamp_dataFlipside version of raw_stamp_data.
flipside_raw_text_inputsFlipside version of raw_text_inputs.

Procs

add_flipside_raw_textThis is an unironic copy-paste of add_raw_text(), meant to have the same functionalities, but for the flipside.

Var Details

flipped

Whether or not the card is currently flipped.

flipside_default_raw_text

The flipped version of default_raw_text.

flipside_input_field_count

Flipside version of input_field_count

flipside_raw_field_input_data

Flipside version of raw_field_input_data.

flipside_raw_stamp_data

Flipside version of raw_stamp_data.

flipside_raw_text_inputs

Flipside version of raw_text_inputs.

Proc Details

add_flipside_raw_text

This is an unironic copy-paste of add_raw_text(), meant to have the same functionalities, but for the flipside.

+

This simple helper adds the supplied raw text to the flipside of the paper, appending to the end of any existing contents.

+

This a God proc that does not care about paper max length and expects sanity checking beforehand if you want to respect it.

+

The caller is expected to handle updating icons and appearance after adding text, to allow for more efficient batch adding loops.

+
    +
  • Arguments:
  • +
  • text - The text to append to the paper.
  • +
  • font - The font to use.
  • +
  • color - The font color to use.
  • +
  • bold - Whether this text should be rendered completely bold.
  • +
\ No newline at end of file diff --git a/obj/item/paper/monitorkey.html b/obj/item/paper/monitorkey.html new file mode 100644 index 0000000000000..2cf806c59d5a3 --- /dev/null +++ b/obj/item/paper/monitorkey.html @@ -0,0 +1 @@ +/obj/item/paper/monitorkey - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

monitorkey

Monitor decryption key paper

Procs

printHandles printing the monitor key for a given server onto this piece of paper.

Proc Details

print

Handles printing the monitor key for a given server onto this piece of paper.

\ No newline at end of file diff --git a/obj/item/paper/paperslip/ration_ticket.html b/obj/item/paper/paperslip/ration_ticket.html new file mode 100644 index 0000000000000..3b1937adb861e --- /dev/null +++ b/obj/item/paper/paperslip/ration_ticket.html @@ -0,0 +1 @@ +/obj/item/paper/paperslip/ration_ticket - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ration_ticket

Vars

items_we_deliverThe finalized list of items we send once the ticket is used, don't define here, the procs will do it

Procs

make_the_actual_orderTakes the list of things to deliver and puts it into a cargo order
try_to_make_ration_order_listAttempts to fill out the order list with items of the user's choosing, will stop in its tracks if it fails

Var Details

items_we_deliver

The finalized list of items we send once the ticket is used, don't define here, the procs will do it

Proc Details

make_the_actual_order

Takes the list of things to deliver and puts it into a cargo order

try_to_make_ration_order_list

Attempts to fill out the order list with items of the user's choosing, will stop in its tracks if it fails

\ No newline at end of file diff --git a/obj/item/paper/paperslip/ration_ticket/luxury.html b/obj/item/paper/paperslip/ration_ticket/luxury.html new file mode 100644 index 0000000000000..f9d68770b9ab9 --- /dev/null +++ b/obj/item/paper/paperslip/ration_ticket/luxury.html @@ -0,0 +1 @@ +/obj/item/paper/paperslip/ration_ticket/luxury - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

luxury

Procs

try_to_make_ration_order_listAttempts to fill out the order list with items of the user's choosing, will stop in its tracks if it fails

Proc Details

try_to_make_ration_order_list

Attempts to fill out the order list with items of the user's choosing, will stop in its tracks if it fails

\ No newline at end of file diff --git a/obj/item/paper/report.html b/obj/item/paper/report.html new file mode 100644 index 0000000000000..31df6be46d531 --- /dev/null +++ b/obj/item/paper/report.html @@ -0,0 +1 @@ +/obj/item/paper/report - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

report

Vars

scanned_areaWhat area the inspector scanned when the report was made. Used to verify the security bounty.

Var Details

scanned_area

What area the inspector scanned when the report was made. Used to verify the security bounty.

\ No newline at end of file diff --git a/obj/item/paper/secretrecipe.html b/obj/item/paper/secretrecipe.html new file mode 100644 index 0000000000000..4eaf087f70e38 --- /dev/null +++ b/obj/item/paper/secretrecipe.html @@ -0,0 +1 @@ +/obj/item/paper/secretrecipe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

secretrecipe

Vars

possible_recipesList of possible recipes we could display
recipe_idThe one we actually end up displaying

Var Details

possible_recipes

List of possible recipes we could display

recipe_id

The one we actually end up displaying

\ No newline at end of file diff --git a/obj/item/paper/work_contract.html b/obj/item/paper/work_contract.html new file mode 100644 index 0000000000000..5911d3d24dd14 --- /dev/null +++ b/obj/item/paper/work_contract.html @@ -0,0 +1 @@ +/obj/item/paper/work_contract - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

work_contract

Vars

employee_nameNeeded to get the spawned mob's name to display in the paper.

Var Details

employee_name

Needed to get the spawned mob's name to display in the paper.

\ No newline at end of file diff --git a/obj/item/paper_bin.html b/obj/item/paper_bin.html new file mode 100644 index 0000000000000..d37a593707dad --- /dev/null +++ b/obj/item/paper_bin.html @@ -0,0 +1 @@ +/obj/item/paper_bin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

paper_bin

Vars

bin_overlayOverlay that goes over the paper overlays.
bin_overlay_stringName of icon that goes over the paper overlays.
pen_overlayOverlay of the pen on top of the bin.

Procs

generate_paperReturns a fresh piece of paper

Var Details

bin_overlay

Overlay that goes over the paper overlays.

bin_overlay_string

Name of icon that goes over the paper overlays.

pen_overlay

Overlay of the pen on top of the bin.

Proc Details

generate_paper

Returns a fresh piece of paper

\ No newline at end of file diff --git a/obj/item/paper_bin/bundlenatural.html b/obj/item/paper_bin/bundlenatural.html new file mode 100644 index 0000000000000..324a5e658b569 --- /dev/null +++ b/obj/item/paper_bin/bundlenatural.html @@ -0,0 +1 @@ +/obj/item/paper_bin/bundlenatural - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bundlenatural

Vars

binding_cableCable this bundle is held together with.

Var Details

binding_cable

Cable this bundle is held together with.

\ No newline at end of file diff --git a/obj/item/papercutter.html b/obj/item/papercutter.html new file mode 100644 index 0000000000000..6dd2152e80ffe --- /dev/null +++ b/obj/item/papercutter.html @@ -0,0 +1,3 @@ +/obj/item/papercutter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

papercutter

Vars

blade_securedWhether the cutter blade is secured or not.
cut_self_chanceThe chance for a clumsy person to cut themselves on the blade +Should probably be low-ish to prevent people spamming it quite so easily
stored_bladeThe blade currently loaded inside the cutter
stored_paperThe paper currently loaded inside the cutter

Var Details

blade_secured

Whether the cutter blade is secured or not.

cut_self_chance

The chance for a clumsy person to cut themselves on the blade +Should probably be low-ish to prevent people spamming it quite so easily

stored_blade

The blade currently loaded inside the cutter

stored_paper

The paper currently loaded inside the cutter

\ No newline at end of file diff --git a/obj/item/paperplane.html b/obj/item/paperplane.html new file mode 100644 index 0000000000000..9901c0e673176 --- /dev/null +++ b/obj/item/paperplane.html @@ -0,0 +1 @@ +/obj/item/paperplane - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

paperplane

Vars

delete_on_impactDoes it get deleted when hitting anything or landing?
hit_probabilityThe chance of hitting a mob in the eye when thrown, in percentage.
impact_eye_damage_higherHow much eye damage does it deal at maximum on eye impact?
impact_eye_damage_lowerHow much eye damage does it deal at minimum on eye impact?
internal_paperReference to the paper that's folded up in this paperplane, which we return when unfolded.
knockdown_durationHow long does getting shot in the eyes knock you down for?

Var Details

delete_on_impact

Does it get deleted when hitting anything or landing?

hit_probability

The chance of hitting a mob in the eye when thrown, in percentage.

impact_eye_damage_higher

How much eye damage does it deal at maximum on eye impact?

impact_eye_damage_lower

How much eye damage does it deal at minimum on eye impact?

internal_paper

Reference to the paper that's folded up in this paperplane, which we return when unfolded.

knockdown_duration

How long does getting shot in the eyes knock you down for?

\ No newline at end of file diff --git a/obj/item/paperplane/syndicate/hardlight.html b/obj/item/paperplane/syndicate/hardlight.html new file mode 100644 index 0000000000000..d31cbc8305f4a --- /dev/null +++ b/obj/item/paperplane/syndicate/hardlight.html @@ -0,0 +1 @@ +/obj/item/paperplane/syndicate/hardlight - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hardlight

The fabled paper plane crossbow and its hardlight paper planes.

Vars

paper_colorsWhich color is the paper plane?

Var Details

paper_colors

Which color is the paper plane?

\ No newline at end of file diff --git a/obj/item/paperwork.html b/obj/item/paperwork.html new file mode 100644 index 0000000000000..5ba5759bfe243 --- /dev/null +++ b/obj/item/paperwork.html @@ -0,0 +1,9 @@ +/obj/item/paperwork - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Paperwork

Paperwork documents that can be stamped by their associated stamp to provide a bonus to cargo.

+

Paperwork documents are a cargo item meant to provide the opportunity to make money. +Each piece of paperwork has its own associated stamp it needs to be stamped with. Selling a +properly stamped piece of paperwork will provide a cash bonus to the cargo budget. If a document is +not properly stamped it will instead drain a small stipend from the cargo budget.

Vars

detailed_descUsed to store the bonus text that displays when the paperwork's associated role reads it
stamp_iconThe specific stamp icon to be overlaid on the paperwork
stamp_jobThe path to the job of the associated paperwork form
stamp_overlayThe stamp overlay, used to show that the paperwork is complete without making a bunch of sprites
stamp_requestedThe stamp needed to "complete" this form.
stampedHas the paperwork been properly stamped

Procs

add_stampAdds the stamp overlay and sets "stamped" to true
copy_stamp_infoCopies the requested stamp, associated job, and associated icon of a given paperwork type

Var Details

detailed_desc

Used to store the bonus text that displays when the paperwork's associated role reads it

stamp_icon

The specific stamp icon to be overlaid on the paperwork

stamp_job

The path to the job of the associated paperwork form

stamp_overlay

The stamp overlay, used to show that the paperwork is complete without making a bunch of sprites

stamp_requested

The stamp needed to "complete" this form.

stamped

Has the paperwork been properly stamped

Proc Details

add_stamp

Adds the stamp overlay and sets "stamped" to true

+

Adds the stamp overlay to a piece of paperwork, and sets "stamped" to true. +Handled as a proc so that an object may be maked as "stamped" even when a stamp isn't present (like the photocopier)

copy_stamp_info

Copies the requested stamp, associated job, and associated icon of a given paperwork type

+

Copies the stamp/job related info of a given paperwork type to the object +Used to mutate photocopied/ancient paperwork into behaving like their subtype counterparts without the extra details

\ No newline at end of file diff --git a/obj/item/paperwork/photocopy.html b/obj/item/paperwork/photocopy.html new file mode 100644 index 0000000000000..65e80b37b28d5 --- /dev/null +++ b/obj/item/paperwork/photocopy.html @@ -0,0 +1 @@ +/obj/item/paperwork/photocopy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

photocopy

Vars

voidedHas the photocopy been marked with a "void" stamp. Used to prevent documents from draining money if they somehow make their way to cargo.

Var Details

voided

Has the photocopy been marked with a "void" stamp. Used to prevent documents from draining money if they somehow make their way to cargo.

\ No newline at end of file diff --git a/obj/item/pen.html b/obj/item/pen.html new file mode 100644 index 0000000000000..969a3e78a3a04 --- /dev/null +++ b/obj/item/pen.html @@ -0,0 +1 @@ +/obj/item/pen - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pen

Vars

can_clickIf this pen can be clicked in order to retract it

Procs

create_transform_componentProc that child classes can override to have custom transforms, like edaggers or pendrivers

Var Details

can_click

If this pen can be clicked in order to retract it

Proc Details

create_transform_component

Proc that child classes can override to have custom transforms, like edaggers or pendrivers

\ No newline at end of file diff --git a/obj/item/pen/edagger.html b/obj/item/pen/edagger.html new file mode 100644 index 0000000000000..be203bca31bd8 --- /dev/null +++ b/obj/item/pen/edagger.html @@ -0,0 +1 @@ +/obj/item/pen/edagger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

edagger

Vars

hidden_descThe real desc of our item when extended.
hidden_iconThe real icons used when extended.
hidden_nameThe real name of our item when extended.

Var Details

hidden_desc

The real desc of our item when extended.

hidden_icon

The real icons used when extended.

hidden_name

The real name of our item when extended.

\ No newline at end of file diff --git a/obj/item/pen/uplink.html b/obj/item/pen/uplink.html new file mode 100644 index 0000000000000..161a7f43427bc --- /dev/null +++ b/obj/item/pen/uplink.html @@ -0,0 +1 @@ +/obj/item/pen/uplink - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

uplink

Procs

Initializeobj/item/pen/uplink/Initialize(mapload, owner, tc_amount = 20, datum/uplink_handler/uplink_handler_override = null) //ORIGINAL

Proc Details

Initialize

obj/item/pen/uplink/Initialize(mapload, owner, tc_amount = 20, datum/uplink_handler/uplink_handler_override = null) //ORIGINAL

\ No newline at end of file diff --git a/obj/item/perfume.html b/obj/item/perfume.html new file mode 100644 index 0000000000000..110664695da13 --- /dev/null +++ b/obj/item/perfume.html @@ -0,0 +1 @@ +/obj/item/perfume - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

perfume

Vars

capWhether the cap of the perfume is on or off
fragrance_typeWhat type of the pollutant will this perfume be using
has_capWhether we have a cap or not
uses_remainingHow many uses remaining has it got

Procs

toggle_capProc to handle removing the cap of the perfume bottle.

Var Details

cap

Whether the cap of the perfume is on or off

fragrance_type

What type of the pollutant will this perfume be using

has_cap

Whether we have a cap or not

uses_remaining

How many uses remaining has it got

Proc Details

toggle_cap

Proc to handle removing the cap of the perfume bottle.

\ No newline at end of file diff --git a/obj/item/permanent_portal_anchor.html b/obj/item/permanent_portal_anchor.html new file mode 100644 index 0000000000000..e9d847a7dca7b --- /dev/null +++ b/obj/item/permanent_portal_anchor.html @@ -0,0 +1 @@ +/obj/item/permanent_portal_anchor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

permanent_portal_anchor

Vars

deploy_on_initDoes it automatically deploy when initialized?

Procs

deploySimple helper proc to deploy the anchor, with mob/user as an optional argument to make them drop it if they're holding it.

Var Details

deploy_on_init

Does it automatically deploy when initialized?

Proc Details

deploy

Simple helper proc to deploy the anchor, with mob/user as an optional argument to make them drop it if they're holding it.

\ No newline at end of file diff --git a/obj/item/permanent_portal_creator.html b/obj/item/permanent_portal_creator.html new file mode 100644 index 0000000000000..23ebc67ea2d8d --- /dev/null +++ b/obj/item/permanent_portal_creator.html @@ -0,0 +1 @@ +/obj/item/permanent_portal_creator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

permanent_portal_creator

A simple one-use beacon to activate a two-way portal to the anchored receiver it's linked to.

Vars

anchor_portal_nameThe name of the portal created at the position of the anchor.
beacon_portal_nameThe name of the portal created at the position of the device.
linked_anchorThe weakref to the linked entanglement anchor.

Var Details

anchor_portal_name

The name of the portal created at the position of the anchor.

beacon_portal_name

The name of the portal created at the position of the device.

linked_anchor

The weakref to the linked entanglement anchor.

\ No newline at end of file diff --git a/obj/item/petri_dish.html b/obj/item/petri_dish.html new file mode 100644 index 0000000000000..f31222b90b8a3 --- /dev/null +++ b/obj/item/petri_dish.html @@ -0,0 +1 @@ +/obj/item/petri_dish - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

petri_dish

Holds a biological sample which can then be put into the growing vat

Vars

sampleThe sample stored on the dish

Var Details

sample

The sample stored on the dish

\ No newline at end of file diff --git a/obj/item/ph_booklet.html b/obj/item/ph_booklet.html new file mode 100644 index 0000000000000..deaa0ceef1600 --- /dev/null +++ b/obj/item/ph_booklet.html @@ -0,0 +1 @@ +/obj/item/ph_booklet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ph_booklet

Vars

number_of_pagesHow many pages the booklet holds

Var Details

number_of_pages

How many pages the booklet holds

\ No newline at end of file diff --git a/obj/item/ph_meter.html b/obj/item/ph_meter.html new file mode 100644 index 0000000000000..395914e1ece79 --- /dev/null +++ b/obj/item/ph_meter.html @@ -0,0 +1 @@ +/obj/item/ph_meter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ph_meter

Vars

scanmodelevel of detail for output for the meter

Var Details

scanmode

level of detail for output for the meter

\ No newline at end of file diff --git a/obj/item/ph_paper.html b/obj/item/ph_paper.html new file mode 100644 index 0000000000000..f5f6385f53a82 --- /dev/null +++ b/obj/item/ph_paper.html @@ -0,0 +1 @@ +/obj/item/ph_paper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ph_paper

Vars

usedIf the paper was used, and therefore cannot change color again

Var Details

used

If the paper was used, and therefore cannot change color again

\ No newline at end of file diff --git a/obj/item/physic_manipulation_tool.html b/obj/item/physic_manipulation_tool.html new file mode 100644 index 0000000000000..b4dd11f3aefdb --- /dev/null +++ b/obj/item/physic_manipulation_tool.html @@ -0,0 +1,3 @@ +/obj/item/physic_manipulation_tool - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

physic_manipulation_tool

Procs

afterattackThe control of the dragging.
catch_atomGrabbing atom.
on_clickedSignal controller.
pause_atomFreezing atom. +Freezes the atom in air, blocking any movement.
processThe movement of the dragged object.
release_atomReleasing atom.
rotate_objectRotating atom.

Proc Details

afterattack

The control of the dragging.

catch_atom

Grabbing atom.

on_clicked

Signal controller.

pause_atom

Freezing atom. +Freezes the atom in air, blocking any movement.

process

The movement of the dragged object.

release_atom

Releasing atom.

rotate_object

Rotating atom.

\ No newline at end of file diff --git a/obj/item/piggy_bank.html b/obj/item/piggy_bank.html new file mode 100644 index 0000000000000..651be79d15503 --- /dev/null +++ b/obj/item/piggy_bank.html @@ -0,0 +1,2 @@ +/obj/item/piggy_bank - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

piggy_bank

Piggy banks. They store your hard-earned money until you or someone destroys it. +If the persistence id is set, money will be carried between rounds until broken.

Vars

initial_valueHow much dosh this piggy bank spawns with.
maximum_savings_per_shiftA limit to much dosh can you put inside this piggy bank each round. If 0, there's no limit. Only applies to persistent piggies.
maximum_valueHow much dosh can this piggy bank hold.
persistence_cbCallback to execute upon roundend to save the current amount of cash it has stored, IF persistent.
persistence_idSome piggy banks are persistent, meaning they carry dosh between rounds.

Procs

calculate_dosh_amountReturns the total amount of credits that its contents amount to.

Var Details

initial_value

How much dosh this piggy bank spawns with.

maximum_savings_per_shift

A limit to much dosh can you put inside this piggy bank each round. If 0, there's no limit. Only applies to persistent piggies.

maximum_value

How much dosh can this piggy bank hold.

persistence_cb

Callback to execute upon roundend to save the current amount of cash it has stored, IF persistent.

persistence_id

Some piggy banks are persistent, meaning they carry dosh between rounds.

Proc Details

calculate_dosh_amount

Returns the total amount of credits that its contents amount to.

\ No newline at end of file diff --git a/obj/item/pillow.html b/obj/item/pillow.html new file mode 100644 index 0000000000000..b3cf405c10559 --- /dev/null +++ b/obj/item/pillow.html @@ -0,0 +1 @@ +/obj/item/pillow - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pillow

Vars

brickedif we have a brick inside us
hit_soundfor alternating between hard hitting sound vs soft hitting sound
last_fighterwhoever last use this pillow
pillow_trophypillow tag is attached to it
tag_descchange the description based on the pillow tag
variationfor selecting the various sprite variation, defaults to the blank white pillow

Procs

become_brickedPuts a brick inside the pillow, increasing its damage
smotheringSmothers the victim while the do_after succeeds and the victim is laying down or being strangled

Var Details

bricked

if we have a brick inside us

hit_sound

for alternating between hard hitting sound vs soft hitting sound

last_fighter

whoever last use this pillow

pillow_trophy

pillow tag is attached to it

tag_desc

change the description based on the pillow tag

variation

for selecting the various sprite variation, defaults to the blank white pillow

Proc Details

become_bricked

Puts a brick inside the pillow, increasing its damage

smothering

Smothers the victim while the do_after succeeds and the victim is laying down or being strangled

\ No newline at end of file diff --git a/obj/item/pinata.html b/obj/item/pinata.html new file mode 100644 index 0000000000000..65b53056a6068 --- /dev/null +++ b/obj/item/pinata.html @@ -0,0 +1 @@ +/obj/item/pinata - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pinata

An item that when used inhand spawns an immovable pinata

Vars

pinata_typeThe pinata that is created when this is placed.

Var Details

pinata_type

The pinata that is created when this is placed.

\ No newline at end of file diff --git a/obj/item/pinpointer.html b/obj/item/pinpointer.html new file mode 100644 index 0000000000000..e69400adcfec0 --- /dev/null +++ b/obj/item/pinpointer.html @@ -0,0 +1 @@ +/obj/item/pinpointer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

pinpointer

Procs

get_direction_iconCalled by update_icon after sanity. There is a target

Proc Details

get_direction_icon

Called by update_icon after sanity. There is a target

\ No newline at end of file diff --git a/obj/item/pinpointer/crew.html b/obj/item/pinpointer/crew.html new file mode 100644 index 0000000000000..e24bfb3cd6550 --- /dev/null +++ b/obj/item/pinpointer/crew.html @@ -0,0 +1 @@ +/obj/item/pinpointer/crew - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

crew

Procs

trackableDo we find people even if their suit sensors are turned off

Proc Details

trackable

Do we find people even if their suit sensors are turned off

\ No newline at end of file diff --git a/obj/item/pipe.html b/obj/item/pipe.html new file mode 100644 index 0000000000000..4a295b7f74b2c --- /dev/null +++ b/obj/item/pipe.html @@ -0,0 +1,7 @@ +/obj/item/pipe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pipe

Vars

RPD_typeType of pipe-object made, selected from the RPD
p_init_dirInitial direction of the created pipe (either made from the RPD or after unwrenching the pipe)
paintableWhether it can be painted
pipe_colorColor of the pipe is going to be made from this pipe-object
piping_layerPiping layer that we are going to be on

Procs

check_ninety_degree_dirCheck if the pipe on the turf and our to be placed binary pipe are perpendicular to each other
try_smart_reconfigurationAttempt to automatically resolve a pipe conflict by reconfiguring any smart pipes involved.

Var Details

RPD_type

Type of pipe-object made, selected from the RPD

p_init_dir

Initial direction of the created pipe (either made from the RPD or after unwrenching the pipe)

paintable

Whether it can be painted

pipe_color

Color of the pipe is going to be made from this pipe-object

piping_layer

Piping layer that we are going to be on

Proc Details

check_ninety_degree_dir

Check if the pipe on the turf and our to be placed binary pipe are perpendicular to each other

try_smart_reconfiguration

Attempt to automatically resolve a pipe conflict by reconfiguring any smart pipes involved.

+

Constraints:

+
    +
  • A smart pipe cannot have current connections reconfigured.
  • +
  • A smart pipe cannot have fewer than two directions in which it will connect.
  • +
  • A smart pipe, existing or new, will not automatically reconfigure itself to permit directions it was not previously permitting.
  • +
\ No newline at end of file diff --git a/obj/item/pipe_dispenser.html b/obj/item/pipe_dispenser.html new file mode 100644 index 0000000000000..093c950b05689 --- /dev/null +++ b/obj/item/pipe_dispenser.html @@ -0,0 +1 @@ +/obj/item/pipe_dispenser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pipe_dispenser

Vars

atmos_build_speedSpeed of building atmos devices
categoryCategory currently active (Atmos, disposal, transit)
disposal_build_speedSpeed of building disposal devices
ducting_layerLayer for disposal ducts
first_atmosStores the first atmos device
first_disposalStores the first disposal device
first_transitStores the first transit device
modeThe modes that are allowed for the RPD
multi_layerAre we laying multiple layers per click
p_dirDirection of the device we are going to spawn, set up in the UI
p_flippedIs the device of the flipped type?
p_init_dirInitial direction of the smart pipe we are going to spawn, set up in the UI
paint_colorColor of the device we are going to spawn
pipe_layersAll pipe layers we are going to spawn the atmos devices in
recipeStores the current device to spawn
spark_systemSparks system used when changing device in the UI
transit_build_speedSpeed of building transit devices
upgrade_flagsBitflags for upgrades

Procs

install_upgradeInstalls an upgrade into the RPD after checking if it is already installed
mouse_wheeledChanges the piping layer when the mousewheel is scrolled up or down.

Var Details

atmos_build_speed

Speed of building atmos devices

category

Category currently active (Atmos, disposal, transit)

disposal_build_speed

Speed of building disposal devices

ducting_layer

Layer for disposal ducts

first_atmos

Stores the first atmos device

first_disposal

Stores the first disposal device

first_transit

Stores the first transit device

mode

The modes that are allowed for the RPD

multi_layer

Are we laying multiple layers per click

p_dir

Direction of the device we are going to spawn, set up in the UI

p_flipped

Is the device of the flipped type?

p_init_dir

Initial direction of the smart pipe we are going to spawn, set up in the UI

paint_color

Color of the device we are going to spawn

pipe_layers

All pipe layers we are going to spawn the atmos devices in

recipe

Stores the current device to spawn

spark_system

Sparks system used when changing device in the UI

transit_build_speed

Speed of building transit devices

upgrade_flags

Bitflags for upgrades

Proc Details

install_upgrade

Installs an upgrade into the RPD after checking if it is already installed

mouse_wheeled

Changes the piping layer when the mousewheel is scrolled up or down.

\ No newline at end of file diff --git a/obj/item/pipe_dispenser/bluespace.html b/obj/item/pipe_dispenser/bluespace.html new file mode 100644 index 0000000000000..d155395294856 --- /dev/null +++ b/obj/item/pipe_dispenser/bluespace.html @@ -0,0 +1 @@ +/obj/item/pipe_dispenser/bluespace - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bluespace

Vars

remote_piping_toggleFlag to check if we should use remote piping

Var Details

remote_piping_toggle

Flag to check if we should use remote piping

\ No newline at end of file diff --git a/obj/item/pitchfork.html b/obj/item/pitchfork.html new file mode 100644 index 0000000000000..8cfe4e45d8fb9 --- /dev/null +++ b/obj/item/pitchfork.html @@ -0,0 +1,3 @@ +/obj/item/pitchfork - /tg/ Station 13
/tg/ Station 13 - Modules - Types

pitchfork

Pitchfork item

+

Essentially spears with different stats and sprites. +Also fireproof for some reason.

\ No newline at end of file diff --git a/obj/item/pizzabox.html b/obj/item/pizzabox.html new file mode 100644 index 0000000000000..707caa0acfcb4 --- /dev/null +++ b/obj/item/pizzabox.html @@ -0,0 +1 @@ +/obj/item/pizzabox - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pizzabox

Vars

bomb_timer_maxMax bomb timer allower in seconds
bomb_timer_minMin bomb timer allowed in seconds
boxtag_setUsed to make sure artisinal box tags aren't overwritten.
foldableUsed so that you can not destroy the infinite pizza box

Procs

add_contextscreentips for pizzaboxes

Var Details

bomb_timer_max

Max bomb timer allower in seconds

bomb_timer_min

Min bomb timer allowed in seconds

boxtag_set

Used to make sure artisinal box tags aren't overwritten.

foldable

Used so that you can not destroy the infinite pizza box

Proc Details

add_context

screentips for pizzaboxes

\ No newline at end of file diff --git a/obj/item/pizzabox/infinite.html b/obj/item/pizzabox/infinite.html new file mode 100644 index 0000000000000..071138611cc6c --- /dev/null +++ b/obj/item/pizzabox/infinite.html @@ -0,0 +1 @@ +/obj/item/pizzabox/infinite - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

infinite

Vars

pizza_preferencesList of ckeys and their favourite pizzas. e.g. pizza_preferences[ckey] = /obj/item/food/pizza/meat
pizza_typesList of pizzas this box can spawn. Weighted by chance to be someone's favorite.

Var Details

pizza_preferences

List of ckeys and their favourite pizzas. e.g. pizza_preferences[ckey] = /obj/item/food/pizza/meat

pizza_types

List of pizzas this box can spawn. Weighted by chance to be someone's favorite.

\ No newline at end of file diff --git a/obj/item/plant_analyzer.html b/obj/item/plant_analyzer.html new file mode 100644 index 0000000000000..22aa6fa2b1d65 --- /dev/null +++ b/obj/item/plant_analyzer.html @@ -0,0 +1,41 @@ +/obj/item/plant_analyzer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

plant_analyzer

Procs

get_analyzer_text_chem_contentsThis proc is formats the chemical CONTENTS of a plant into a message.
get_analyzer_text_chem_genesThis proc is formats the chemical GENES of a seed into a message.
get_analyzer_text_traitsThis proc is formats the traits and stats of a seed into a message.
get_graft_textThis proc is formats the scan of a graft of a seed into a message.
pre_attackWhen we attack something, first - try to scan something we hit with left click. Left-clicking uses scans for stats
pre_attack_secondarySame as above, but with right click. Right-clicking scans for chemicals.
scan_plant_chemsThis proc is called when a seed or any grown plant is scanned on right click (chemical mode). +It formats the plant name as well as its chemical contents.
scan_plant_statsThis proc is called when a seed or any grown plant is scanned on left click (stats mode). +It formats the plant name as well as either its traits and stats.
scan_tray_chemsThis proc is called when we scan a hydroponics tray or soil on right click (chemicals mode) +It formats the plant name and age, as well as the plant's chemical genes and the tray's contents.
scan_tray_statsThis proc is called when we scan a hydroponics tray or soil on left click (stats mode) +It formats the plant name, its age, the plant's stats, and the tray's stats.

Proc Details

get_analyzer_text_chem_contents

This proc is formats the chemical CONTENTS of a plant into a message.

+
    +
  • scanned_plant - the source plant we are reading out its reagents contents.
  • +
+

Returns the formatted output as text.

get_analyzer_text_chem_genes

This proc is formats the chemical GENES of a seed into a message.

+
    +
  • scanned - the source seed for what we are scanning for chemical genes.
  • +
+

Returns the formatted output as text.

get_analyzer_text_traits

This proc is formats the traits and stats of a seed into a message.

+
    +
  • scanned - the source seed for what we are scanning for traits.
  • +
+

Returns the formatted output as text.

get_graft_text

This proc is formats the scan of a graft of a seed into a message.

+
    +
  • scanned_graft - the graft for what we are scanning.
  • +
+

Returns the formatted output as text.

pre_attack

When we attack something, first - try to scan something we hit with left click. Left-clicking uses scans for stats

pre_attack_secondary

Same as above, but with right click. Right-clicking scans for chemicals.

scan_plant_chems

This proc is called when a seed or any grown plant is scanned on right click (chemical mode). +It formats the plant name as well as its chemical contents.

+
    +
  • scanned_object - the source objecte for what we are scanning. This can be a grown food, a grown inedible, or a seed.
  • +
+

Returns the formatted output as text.

scan_plant_stats

This proc is called when a seed or any grown plant is scanned on left click (stats mode). +It formats the plant name as well as either its traits and stats.

+
    +
  • scanned_object - the source objecte for what we are scanning. This can be a grown food, a grown inedible, or a seed.
  • +
+

Returns the formatted output as text.

scan_tray_chems

This proc is called when we scan a hydroponics tray or soil on right click (chemicals mode) +It formats the plant name and age, as well as the plant's chemical genes and the tray's contents.

+
    +
  • scanned_tray - the tray or soil we are scanning.
  • +
+

Returns the formatted message as text.

scan_tray_stats

This proc is called when we scan a hydroponics tray or soil on left click (stats mode) +It formats the plant name, its age, the plant's stats, and the tray's stats.

+
    +
  • scanned_tray - the tray or soil we are scanning.
  • +
+

Returns the formatted message as text.

\ No newline at end of file diff --git a/obj/item/plaque.html b/obj/item/plaque.html new file mode 100644 index 0000000000000..723ad2732cbbc --- /dev/null +++ b/obj/item/plaque.html @@ -0,0 +1 @@ +/obj/item/plaque - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plaque

Vars

engravedCustom plaque structures and items both start "unengraved", once engraved with a fountain pen their text can't be altered again.
plaque_pathThis points the item to make the proper structure when placed on a wall.

Var Details

engraved

Custom plaque structures and items both start "unengraved", once engraved with a fountain pen their text can't be altered again.

plaque_path

This points the item to make the proper structure when placed on a wall.

\ No newline at end of file diff --git a/obj/item/plate.html b/obj/item/plate.html new file mode 100644 index 0000000000000..0f5db790ea492 --- /dev/null +++ b/obj/item/plate.html @@ -0,0 +1,3 @@ +/obj/item/plate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

plate

Vars

biggest_w_classThe largest weight class we can carry, inclusive. +IE, if we this is normal, we can carry normal items or smaller.
fragileIf the plate will shatter when thrown
max_height_offsetThe max height offset the food can reach on the plate
max_itemsHow many things fit on this plate?
max_x_offsetThe offset from side to side the food items can have on the plate
placement_offsetOffset of where the click is calculated from, due to how food is positioned in their DMIs.

Procs

AddToPlateThis proc adds the food to viscontents and makes sure it can deregister if this changes.
ItemMovedThis proc is called by signals that remove the food from the plate.
ItemRemovedFromPlateThis proc cleans up any signals on the item when it is removed from a plate, and ensures it has the correct state again.

Var Details

biggest_w_class

The largest weight class we can carry, inclusive. +IE, if we this is normal, we can carry normal items or smaller.

fragile

If the plate will shatter when thrown

max_height_offset

The max height offset the food can reach on the plate

max_items

How many things fit on this plate?

max_x_offset

The offset from side to side the food items can have on the plate

placement_offset

Offset of where the click is calculated from, due to how food is positioned in their DMIs.

Proc Details

AddToPlate

This proc adds the food to viscontents and makes sure it can deregister if this changes.

ItemMoved

This proc is called by signals that remove the food from the plate.

ItemRemovedFromPlate

This proc cleans up any signals on the item when it is removed from a plate, and ensures it has the correct state again.

\ No newline at end of file diff --git a/obj/item/plate_shard.html b/obj/item/plate_shard.html new file mode 100644 index 0000000000000..07a80584b2051 --- /dev/null +++ b/obj/item/plate_shard.html @@ -0,0 +1 @@ +/obj/item/plate_shard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plate_shard

Vars

variantsHow many variants of shard there are

Var Details

variants

How many variants of shard there are

\ No newline at end of file diff --git a/obj/item/plunger.html b/obj/item/plunger.html new file mode 100644 index 0000000000000..ca9b1836b1ba4 --- /dev/null +++ b/obj/item/plunger.html @@ -0,0 +1 @@ +/obj/item/plunger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plunger

A wearable tool that lets you empty plumbing machinery and some other stuff

Vars

layer_modeWheter we're in layer mode
layer_mode_spritealt sprite for the toggleable layer change mode
plunge_modtime*plunge_mod = total time we take to plunge an object
reinforcedwhether we do heavy duty stuff like geysers
target_layerWhat layer we set it to

Var Details

layer_mode

Wheter we're in layer mode

layer_mode_sprite

alt sprite for the toggleable layer change mode

plunge_mod

time*plunge_mod = total time we take to plunge an object

reinforced

whether we do heavy duty stuff like geysers

target_layer

What layer we set it to

\ No newline at end of file diff --git a/obj/item/polymorph_belt.html b/obj/item/polymorph_belt.html new file mode 100644 index 0000000000000..d9c4c4c39afa6 --- /dev/null +++ b/obj/item/polymorph_belt.html @@ -0,0 +1 @@ +/obj/item/polymorph_belt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

polymorph_belt

Belt which can turn you into a beast, once an anomaly core is inserted

Vars

activeHave we activated the belt?
stored_mob_typeTypepath of a mob we have scanned, we only store one at a time
transform_actionOur current transformation action

Procs

update_transform_actionMake sure we can transform into the scanned target

Var Details

active

Have we activated the belt?

stored_mob_type

Typepath of a mob we have scanned, we only store one at a time

transform_action

Our current transformation action

Proc Details

update_transform_action

Make sure we can transform into the scanned target

\ No newline at end of file diff --git a/obj/item/poster.html b/obj/item/poster.html new file mode 100644 index 0000000000000..4a8d187f8db40 --- /dev/null +++ b/obj/item/poster.html @@ -0,0 +1,5 @@ +/obj/item/poster - /tg/ Station 13
/tg/ Station 13 - Modules - Types

poster

The rolled up item form of a poster

+

In order to create one of these for a specific poster, you must pass the structure form of the poster as an argument to /new(). +This structure then gets moved into the contents of the item where it will stay until the poster is placed by a player. +The structure form is obj/structure/sign/poster and that's where all the specific posters are defined. +If you just want a random poster, see /obj/item/poster/random_official or /obj/item/poster/random_contraband

\ No newline at end of file diff --git a/obj/item/poster/quirk.html b/obj/item/poster/quirk.html new file mode 100644 index 0000000000000..dd6cbc9c9fbec --- /dev/null +++ b/obj/item/poster/quirk.html @@ -0,0 +1 @@ +/obj/item/poster/quirk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

quirk

Vars

quirk_poster_departmentPeople from the selected department will gain a mood buff. If no department is specified applies to the entire crew.

Procs

add_contextScreentip for the above
attackbyYou can use any spraypaint can on a quirk poster to turn it into a contraband poster from the traitor objective

Var Details

quirk_poster_department

People from the selected department will gain a mood buff. If no department is specified applies to the entire crew.

Proc Details

add_context

Screentip for the above

attackby

You can use any spraypaint can on a quirk poster to turn it into a contraband poster from the traitor objective

\ No newline at end of file diff --git a/obj/item/powersink.html b/obj/item/powersink.html new file mode 100644 index 0000000000000..2f76ccef93a01 --- /dev/null +++ b/obj/item/powersink.html @@ -0,0 +1 @@ +/obj/item/powersink - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

powersink

Vars

warning_givenStop warning spam, only warn the admins/deadchat once that we are about to boom.

Procs

drain_powerDrains power from the connected powernet, if any.
release_heatRemoves internal heat and shares it with the atmosphere.

Var Details

warning_given

Stop warning spam, only warn the admins/deadchat once that we are about to boom.

Proc Details

drain_power

Drains power from the connected powernet, if any.

release_heat

Removes internal heat and shares it with the atmosphere.

\ No newline at end of file diff --git a/obj/item/pressure_plate.html b/obj/item/pressure_plate.html new file mode 100644 index 0000000000000..ebe57e6408530 --- /dev/null +++ b/obj/item/pressure_plate.html @@ -0,0 +1 @@ +/obj/item/pressure_plate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

pressure_plate

Procs

ToggleActiveCalled from COMSIG_OBJ_HIDE to toggle the active part, because yeah im not making a special exception on the element to support it

Proc Details

ToggleActive

Called from COMSIG_OBJ_HIDE to toggle the active part, because yeah im not making a special exception on the element to support it

\ No newline at end of file diff --git a/obj/item/pressure_plate/puzzle.html b/obj/item/pressure_plate/puzzle.html new file mode 100644 index 0000000000000..57b3499a9b997 --- /dev/null +++ b/obj/item/pressure_plate/puzzle.html @@ -0,0 +1 @@ +/obj/item/pressure_plate/puzzle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

puzzle

Vars

puzzle_idpuzzle id we send if stepped on
queue_sizequeue size must match

Var Details

puzzle_id

puzzle id we send if stepped on

queue_size

queue size must match

\ No newline at end of file diff --git a/obj/item/pushbroom.html b/obj/item/pushbroom.html new file mode 100644 index 0000000000000..38ef909f944ac --- /dev/null +++ b/obj/item/pushbroom.html @@ -0,0 +1,16 @@ +/obj/item/pushbroom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

pushbroom

Procs

on_unwieldHandles unregistering the sweep proc when the broom is unwielded
on_wieldHandles registering the sweep proc when the broom is wielded
sweepAttempts to push up to BROOM_PUSH_LIMIT atoms from a given location the user's faced direction

Proc Details

on_unwield

Handles unregistering the sweep proc when the broom is unwielded

+

Arguments:

+
    +
  • source - The source of the on_unwield proc call
  • +
  • user - The user which is unwielding the broom
  • +

on_wield

Handles registering the sweep proc when the broom is wielded

+

Arguments:

+
    +
  • source - The source of the on_wield proc call
  • +
  • user - The user which is wielding the broom
  • +

sweep

Attempts to push up to BROOM_PUSH_LIMIT atoms from a given location the user's faced direction

+

Arguments:

+
    +
  • user - The user of the pushbroom
  • +
  • A - The atom which is located at the location to push atoms from
  • +
\ No newline at end of file diff --git a/obj/item/quantum_keycard.html b/obj/item/quantum_keycard.html new file mode 100644 index 0000000000000..df33ac4965cf8 --- /dev/null +++ b/obj/item/quantum_keycard.html @@ -0,0 +1 @@ +/obj/item/quantum_keycard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

quantum_keycard

Vars

gags_coloringwhere the pad is located and what color the card will become
qpadThe linked quantum pad

Var Details

gags_coloring

where the pad is located and what color the card will become

qpad

The linked quantum pad

\ No newline at end of file diff --git a/obj/item/queen_bee.html b/obj/item/queen_bee.html new file mode 100644 index 0000000000000..89d9450ab83b7 --- /dev/null +++ b/obj/item/queen_bee.html @@ -0,0 +1 @@ +/obj/item/queen_bee - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

queen_bee

Vars

queenThe actual mob that our bee item corresponds to

Var Details

queen

The actual mob that our bee item corresponds to

\ No newline at end of file diff --git a/obj/item/radio.html b/obj/item/radio.html new file mode 100644 index 0000000000000..6236ab4ab087b --- /dev/null +++ b/obj/item/radio.html @@ -0,0 +1,22 @@ +/obj/item/radio - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

radio

Vars

anonymizemakes anyone who is talking through this anonymous.
audio_cooldownA very brief cooldown to prevent regular radio sounds from overlapping.
broadcastingWhether the radio will transmit dialogue it hears nearby into its radio channel.
canhear_rangeBoth the range around the radio in which mobs can hear what it receives and the range the radio can hear
channelsassociative list of the encrypted radio channels this radio is currently set to listen/broadcast to, of the form: list(channel name = TRUE or FALSE)
commandIf true, use_command can be toggled at will.
empedTracks the number of EMPs currently stacked.
freerangeIf true, the radio has access to the full spectrum.
freqlockFrequency lock to stop the user from untuning specialist radios.
frequencythe "default" radio frequency this radio is set to, listens and transmits to this frequency by default. wont work if the channel is encrypted
important_audio_cooldownA very brief cooldown to prevent "important" radio sounds from overlapping.
keyslotEncryption key handling
listeningWhether the radio is currently receiving radio messages from its radio frequencies.
onif FALSE, broadcasting and listening don't matter and this radio shouldn't do anything
overlay_mic_activeoverlay when speaking a message (is displayed simultaneously with speaker_active)
overlay_mic_idleoverlay when mic is on
overlay_speaker_activeoverlay when receiving a message
overlay_speaker_idleoverlay when speaker is on
perform_update_iconWhen set to FALSE, will avoid calling update_icon() in set_broadcasting and co. +Used to save time on updating icon several times over initialization.
radio_noiseDoes it play radio noise?
secure_radio_connectionsassociative list of the encrypted radio channels this radio can listen/broadcast to, of the form: list(channel name = channel frequency)
should_be_broadcastingused for tracking what broadcasting should be in the absence of things forcing it off, eg its set to broadcast but gets emp'd temporarily
should_be_listeningused for tracking what listening should be in the absence of things forcing it off, eg its set to listen but gets emp'd temporarily
should_update_iconIf TRUE, will set the icon in initializations.
special_channelsFlags for which "special" radio networks should be accessible
subspace_switchableIf true, subspace_transmission can be toggled at will.
subspace_transmissionIf true, the radio transmits and receives on subspace exclusively.
unscrewedWhether wires are accessible. Toggleable by screwdrivering.
use_commandIf true, broadcasts will be large and BOLD.

Procs

can_receiveChecks if this radio can receive on the given frequency.
get_broadcastingsimple getter for the broadcasting variable. necessary due to VAR_PROTECTED
get_frequencysimple getter for the frequency variable. necessary due to VAR_PROTECTED
get_listeningsimple getter for the listening variable. necessary due to VAR_PROTECTED
is_onsimple getter for the on variable. necessary due to VAR_PROTECTED
readd_listening_radio_channelsgoes through all radio channels we should be listening for and readds them to the global list
set_broadcastingsetter for broadcasting that makes us not hearing sensitive if not broadcasting and hearing sensitive if broadcasting +hearing sensitive in this case only matters for the purposes of listening for words said in nearby tiles, talking into us directly bypasses hearing
set_listeningsetter for the listener var, adds or removes this radio from the global radio list if we are also on
set_onsetter for the on var that sets both broadcasting and listening to off or whatever they were supposed to be
talk_into_implHandles talking into the radio

Var Details

anonymize

makes anyone who is talking through this anonymous.

audio_cooldown

A very brief cooldown to prevent regular radio sounds from overlapping.

broadcasting

Whether the radio will transmit dialogue it hears nearby into its radio channel.

canhear_range

Both the range around the radio in which mobs can hear what it receives and the range the radio can hear

channels

associative list of the encrypted radio channels this radio is currently set to listen/broadcast to, of the form: list(channel name = TRUE or FALSE)

command

If true, use_command can be toggled at will.

emped

Tracks the number of EMPs currently stacked.

freerange

If true, the radio has access to the full spectrum.

freqlock

Frequency lock to stop the user from untuning specialist radios.

frequency

the "default" radio frequency this radio is set to, listens and transmits to this frequency by default. wont work if the channel is encrypted

important_audio_cooldown

A very brief cooldown to prevent "important" radio sounds from overlapping.

keyslot

Encryption key handling

listening

Whether the radio is currently receiving radio messages from its radio frequencies.

on

if FALSE, broadcasting and listening don't matter and this radio shouldn't do anything

overlay_mic_active

overlay when speaking a message (is displayed simultaneously with speaker_active)

overlay_mic_idle

overlay when mic is on

overlay_speaker_active

overlay when receiving a message

overlay_speaker_idle

overlay when speaker is on

perform_update_icon

When set to FALSE, will avoid calling update_icon() in set_broadcasting and co. +Used to save time on updating icon several times over initialization.

radio_noise

Does it play radio noise?

secure_radio_connections

associative list of the encrypted radio channels this radio can listen/broadcast to, of the form: list(channel name = channel frequency)

should_be_broadcasting

used for tracking what broadcasting should be in the absence of things forcing it off, eg its set to broadcast but gets emp'd temporarily

should_be_listening

used for tracking what listening should be in the absence of things forcing it off, eg its set to listen but gets emp'd temporarily

should_update_icon

If TRUE, will set the icon in initializations.

special_channels

Flags for which "special" radio networks should be accessible

subspace_switchable

If true, subspace_transmission can be toggled at will.

subspace_transmission

If true, the radio transmits and receives on subspace exclusively.

unscrewed

Whether wires are accessible. Toggleable by screwdrivering.

use_command

If true, broadcasts will be large and BOLD.

Proc Details

can_receive

Checks if this radio can receive on the given frequency.

get_broadcasting

simple getter for the broadcasting variable. necessary due to VAR_PROTECTED

get_frequency

simple getter for the frequency variable. necessary due to VAR_PROTECTED

get_listening

simple getter for the listening variable. necessary due to VAR_PROTECTED

is_on

simple getter for the on variable. necessary due to VAR_PROTECTED

readd_listening_radio_channels

goes through all radio channels we should be listening for and readds them to the global list

set_broadcasting

setter for broadcasting that makes us not hearing sensitive if not broadcasting and hearing sensitive if broadcasting +hearing sensitive in this case only matters for the purposes of listening for words said in nearby tiles, talking into us directly bypasses hearing

+
    +
  • new_broadcasting- the new value we want to set broadcasting to
  • +
  • actual_setting - whether or not the radio is supposed to be broadcasting, sets should_be_broadcasting to the new value if true, otherwise just changes broadcasting
  • +

set_listening

setter for the listener var, adds or removes this radio from the global radio list if we are also on

+
    +
  • new_listening - the new value we want to set listening to
  • +
  • actual_setting - whether or not the radio is supposed to be listening, sets should_be_listening to the new listening value if true, otherwise just changes listening
  • +

set_on

setter for the on var that sets both broadcasting and listening to off or whatever they were supposed to be

talk_into_impl

Handles talking into the radio

+

Unlike most speech related procs, spans and message_mods are not guaranteed to be lists

+
    +
  • talking_movable - the atom that is talking
  • +
  • message - the message to be spoken
  • +
  • channel - the channel to be spoken on
  • +
  • spans - the spans to be used, lazylist
  • +
  • language - the language to be spoken in. (Should) never be null
  • +
  • message_mods - the message mods to be used, lazylist
  • +
\ No newline at end of file diff --git a/obj/item/radio/headset.html b/obj/item/radio/headset.html new file mode 100644 index 0000000000000..ad7527f966677 --- /dev/null +++ b/obj/item/radio/headset.html @@ -0,0 +1 @@ +/obj/item/radio/headset - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

headset

Vars

language_listA list of all languages that this headset allows the user to understand. Populated by language encryption keys.
radio_sound_volumeThe volume of the radio sound we make
radiosoundThe sound that plays when someone uses the headset

Procs

grant_headset_languagesGrants all the languages this headset allows the mob to understand via installed chips.

Var Details

language_list

A list of all languages that this headset allows the user to understand. Populated by language encryption keys.

radio_sound_volume

The volume of the radio sound we make

radiosound

The sound that plays when someone uses the headset

Proc Details

grant_headset_languages

Grants all the languages this headset allows the mob to understand via installed chips.

\ No newline at end of file diff --git a/obj/item/radio/intercom.html b/obj/item/radio/intercom.html new file mode 100644 index 0000000000000..7f47bddf2c8c5 --- /dev/null +++ b/obj/item/radio/intercom.html @@ -0,0 +1,10 @@ +/obj/item/radio/intercom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

intercom

Vars

icon_offThe icon of intercom while its turned off

Procs

AreaPowerCheckProc called whenever the intercom's area loses or gains power. Responsible for setting the on variable and calling update_icon().
attack_tk_grabOverride attack_tk_grab instead of attack_tk because we actually want attack_tk's +functionality. What we DON'T want is attack_tk_grab attempting to pick up the +intercom as if it was an ordinary item.
knock_downCalled by the wall mount component and reused during the tool deconstruction proc.

Var Details

icon_off

The icon of intercom while its turned off

Proc Details

AreaPowerCheck

Proc called whenever the intercom's area loses or gains power. Responsible for setting the on variable and calling update_icon().

+

Normally called after the intercom's area receives the COMSIG_AREA_POWER_CHANGE signal, but it can also be called directly. +Arguments:

+
    +
  • source - the area that just had a power change.
  • +

attack_tk_grab

Override attack_tk_grab instead of attack_tk because we actually want attack_tk's +functionality. What we DON'T want is attack_tk_grab attempting to pick up the +intercom as if it was an ordinary item.

knock_down

Called by the wall mount component and reused during the tool deconstruction proc.

\ No newline at end of file diff --git a/obj/item/raptor_dex.html b/obj/item/raptor_dex.html new file mode 100644 index 0000000000000..cb81af3af077d --- /dev/null +++ b/obj/item/raptor_dex.html @@ -0,0 +1 @@ +/obj/item/raptor_dex - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

raptor_dex

Vars

raptorcurrent raptor we are analyzing

Var Details

raptor

current raptor we are analyzing

\ No newline at end of file diff --git a/obj/item/raw_anomaly_core.html b/obj/item/raw_anomaly_core.html new file mode 100644 index 0000000000000..0d01cf2bc7260 --- /dev/null +++ b/obj/item/raw_anomaly_core.html @@ -0,0 +1,9 @@ +/obj/item/raw_anomaly_core - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Raw Anomaly Cores

The current precursor to anomaly cores, these are manufactured into 'finished' anomaly cores for use in research, items, and more.

+

The current amounts created is stored in SSresearch.created_anomaly_types[ANOMALY_CORE_TYPE_DEFINE] = amount. +The hard limits are in code/__DEFINES/anomalies.dm.

Vars

anomaly_typeAnomaly type

Procs

create_coreCreated the resulting core after being "made" into it.

Var Details

anomaly_type

Anomaly type

Proc Details

create_core

Created the resulting core after being "made" into it.

+

Arguments:

+
    +
  • newloc - Where the new core will be created
  • +
  • del_self - should we qdel(src)
  • +
  • count_towards_limit - should we increment the amount of created cores on SSresearch
  • +
\ No newline at end of file diff --git a/obj/item/rcl.html b/obj/item/rcl.html new file mode 100644 index 0000000000000..2251551d40767 --- /dev/null +++ b/obj/item/rcl.html @@ -0,0 +1 @@ +/obj/item/rcl - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

rcl

Procs

on_unwieldtriggered on unwield of two handed item
on_wieldtriggered on wield of two handed item

Proc Details

on_unwield

triggered on unwield of two handed item

on_wield

triggered on wield of two handed item

\ No newline at end of file diff --git a/obj/item/reagent_containers.html b/obj/item/reagent_containers.html new file mode 100644 index 0000000000000..de2979525a112 --- /dev/null +++ b/obj/item/reagent_containers.html @@ -0,0 +1,13 @@ +/obj/item/reagent_containers - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

reagent_containers

Vars

amount_per_transfer_from_thisThe maximum amount of reagents per transfer that will be moved out of this reagent container.
disease_amountHow much of a disease specified in spawned_disease should this container spawn with
fill_iconThe icon file to take fill icon appearances from
fill_icon_stateThe optional custom name for the reagent fill icon_state prefix +If not set, uses the current icon state.
fill_icon_thresholdsThe different thresholds at which the reagent fill overlay will change. See medical/reagent_fillings.dmi.
has_variable_transfer_amountDoes this container allow changing transfer amounts at all, the container can still have only one possible transfer value in possible_transfer_amounts at some point even if this is true
list_reagentsA list of what initial reagents this container should spawn with
possible_transfer_amountsThe different possible amounts of reagent to transfer out of the container
reagent_flagsReagent flags, a few examples being if the container is open or not, if its transparent, if you can inject stuff in and out of the container, and so on
spawned_diseaseIf this container should spawn with a disease type inside of it
spillableIf the reagents inside of this container will splash out when the container tries to splash onto someone or something
volumeThe maximum amount of reagents this container can hold

Procs

attack_on_liquids_turfProc to remove liquids from a turf using a reagent container.
on_reagent_changeUpdates the icon of the container when the reagents change. Eats signal args
try_splashTries to splash the target. Used on both right-click and normal click when in combat mode.

Var Details

amount_per_transfer_from_this

The maximum amount of reagents per transfer that will be moved out of this reagent container.

disease_amount

How much of a disease specified in spawned_disease should this container spawn with

fill_icon

The icon file to take fill icon appearances from

fill_icon_state

The optional custom name for the reagent fill icon_state prefix +If not set, uses the current icon state.

fill_icon_thresholds

The different thresholds at which the reagent fill overlay will change. See medical/reagent_fillings.dmi.

+

Should be a list of integers which correspond to a reagent unit threshold. +If null, no automatic fill overlays are generated.

+

For example, list(0) will mean it will gain a the overlay with any reagents present. This overlay is "overlayname0". +list(0, 10) whill have two overlay options, for 0-10 units ("overlayname0") and 10+ units ("overlayname10").

has_variable_transfer_amount

Does this container allow changing transfer amounts at all, the container can still have only one possible transfer value in possible_transfer_amounts at some point even if this is true

list_reagents

A list of what initial reagents this container should spawn with

possible_transfer_amounts

The different possible amounts of reagent to transfer out of the container

reagent_flags

Reagent flags, a few examples being if the container is open or not, if its transparent, if you can inject stuff in and out of the container, and so on

spawned_disease

If this container should spawn with a disease type inside of it

spillable

If the reagents inside of this container will splash out when the container tries to splash onto someone or something

volume

The maximum amount of reagents this container can hold

Proc Details

attack_on_liquids_turf

Proc to remove liquids from a turf using a reagent container.

+

Arguments:

+
    +
  • tile - On which tile we're trying to absorb liquids
  • +
  • user - Who tries to absorb liquids with this?
  • +
  • liquids - Liquids we're trying to absorb.
  • +

on_reagent_change

Updates the icon of the container when the reagents change. Eats signal args

try_splash

Tries to splash the target. Used on both right-click and normal click when in combat mode.

\ No newline at end of file diff --git a/obj/item/reagent_containers/blood.html b/obj/item/reagent_containers/blood.html new file mode 100644 index 0000000000000..8b5eb6dd00652 --- /dev/null +++ b/obj/item/reagent_containers/blood.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/blood - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

blood

Procs

attackTaken from drinks.dm
on_reagent_changeHandles updating the container when the reagents change.

Proc Details

attack

Taken from drinks.dm

on_reagent_change

Handles updating the container when the reagents change.

\ No newline at end of file diff --git a/obj/item/reagent_containers/borghypo.html b/obj/item/reagent_containers/borghypo.html new file mode 100644 index 0000000000000..9e3b2da3c5a55 --- /dev/null +++ b/obj/item/reagent_containers/borghypo.html @@ -0,0 +1,8 @@ +/obj/item/reagent_containers/borghypo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

borghypo

Borg Hypospray

Vars

bypass_protectionIf the hypospray can go through armor or thick material
charge_costCell cost for charging a reagent
charge_timerCounts up to the next time we charge
default_reagent_typesThe basic reagents that come with this hypo
dispensed_temperatureOptional variable to override the temperature add_reagent() will use
expanded_reagent_typesThe expanded suite of reagents that comes from upgrading this hypo
max_volume_per_reagent
recharge_timeTime it takes for shots to recharge (in seconds)
selected_reagentThe reagent we've selected to dispense
stored_reagentsThe reagents we're actually storing
tgui_themeThe theme for our UI (hacked hypos get syndicate UI)
upgradedIf this hypospray has been upgraded

Procs

add_new_reagentUse this to add more chemicals for the borghypo to produce.
processEvery [recharge_time] seconds, recharge some reagents for the cyborg
regenerate_reagentsRegenerate our supply of all reagents (if they're not full already)

Var Details

bypass_protection

If the hypospray can go through armor or thick material

charge_cost

Cell cost for charging a reagent

charge_timer

Counts up to the next time we charge

default_reagent_types

The basic reagents that come with this hypo

dispensed_temperature

Optional variable to override the temperature add_reagent() will use

expanded_reagent_types

The expanded suite of reagents that comes from upgrading this hypo

max_volume_per_reagent

    +
  • The maximum volume for each reagent stored in this hypospray +
      +
    • In most places we add + 1 because we're secretly keeping [max_volume_per_reagent + 1]
    • +
    • units, so that when this reagent runs out it's not wholesale removed from the reagents
    • +
    +
  • +

recharge_time

Time it takes for shots to recharge (in seconds)

selected_reagent

The reagent we've selected to dispense

stored_reagents

The reagents we're actually storing

tgui_theme

The theme for our UI (hacked hypos get syndicate UI)

upgraded

If this hypospray has been upgraded

Proc Details

add_new_reagent

Use this to add more chemicals for the borghypo to produce.

process

Every [recharge_time] seconds, recharge some reagents for the cyborg

regenerate_reagents

Regenerate our supply of all reagents (if they're not full already)

\ No newline at end of file diff --git a/obj/item/reagent_containers/borghypo/medical.html b/obj/item/reagent_containers/borghypo/medical.html new file mode 100644 index 0000000000000..276fff28c8665 --- /dev/null +++ b/obj/item/reagent_containers/borghypo/medical.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/borghypo/medical - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

medical

Default Medborg Hypospray

Procs

remove_hypo_upgradeRemove the reagents we got from the expansion, back to our base reagents
upgrade_hypoUpgrade our hypospray to hold even more new reagents!

Proc Details

remove_hypo_upgrade

Remove the reagents we got from the expansion, back to our base reagents

upgrade_hypo

Upgrade our hypospray to hold even more new reagents!

\ No newline at end of file diff --git a/obj/item/reagent_containers/chem_pack.html b/obj/item/reagent_containers/chem_pack.html new file mode 100644 index 0000000000000..159fd5f881c2e --- /dev/null +++ b/obj/item/reagent_containers/chem_pack.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/chem_pack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chem_pack

Vars

sealedWhether this has been sealed shut

Var Details

sealed

Whether this has been sealed shut

\ No newline at end of file diff --git a/obj/item/reagent_containers/chemtank.html b/obj/item/reagent_containers/chemtank.html new file mode 100644 index 0000000000000..a9be1889528f3 --- /dev/null +++ b/obj/item/reagent_containers/chemtank.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/chemtank - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chemtank

Vars

injection_amountHow much to inject per second

Var Details

injection_amount

How much to inject per second

\ No newline at end of file diff --git a/obj/item/reagent_containers/condiment.html b/obj/item/reagent_containers/condiment.html new file mode 100644 index 0000000000000..bb09b47506b77 --- /dev/null +++ b/obj/item/reagent_containers/condiment.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/condiment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

condiment

Condiments

Vars

icon_emptyIcon (icon_state) to be used when container becomes empty (no change if falsy)
icon_preemptyHolder for original icon_state value if it was overwritten by icon_emty to change back to

Var Details

icon_empty

Icon (icon_state) to be used when container becomes empty (no change if falsy)

icon_preempty

Holder for original icon_state value if it was overwritten by icon_emty to change back to

\ No newline at end of file diff --git a/obj/item/reagent_containers/condiment/pack.html b/obj/item/reagent_containers/condiment/pack.html new file mode 100644 index 0000000000000..80b719e29364d --- /dev/null +++ b/obj/item/reagent_containers/condiment/pack.html @@ -0,0 +1,3 @@ +/obj/item/reagent_containers/condiment/pack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pack

Vars

originalnameCan't use initial(name) for this. This stores the name set by condimasters.
possible_statesList of possible styles (list(<icon_state>, , )) for condiment packs. +Since all of them differs only in color should probably be replaced with usual reagentfillings instead

Procs

on_reagent_addHandles reagents getting added to the condiment pack.
on_reagent_delHandles reagents getting removed from the condiment pack.

Var Details

originalname

Can't use initial(name) for this. This stores the name set by condimasters.

possible_states

List of possible styles (list(<icon_state>, , )) for condiment packs. +Since all of them differs only in color should probably be replaced with usual reagentfillings instead

Proc Details

on_reagent_add

Handles reagents getting added to the condiment pack.

on_reagent_del

Handles reagents getting removed from the condiment pack.

\ No newline at end of file diff --git a/obj/item/reagent_containers/cup.html b/obj/item/reagent_containers/cup.html new file mode 100644 index 0000000000000..74aaa4af61fb4 --- /dev/null +++ b/obj/item/reagent_containers/cup.html @@ -0,0 +1,2 @@ +/obj/item/reagent_containers/cup - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cup

Vars

drink_typeLike Edible's food type, what kind of drink is this?
gulp_sizeHow much we drink at once, shot glasses drink more.
isGlassWhether the 'bottle' is made of glass or not so that milk cartons dont shatter when someone gets hit by it.
last_check_timeThe last time we have checked for taste.

Procs

checkLikedChecks if the mob actually liked drinking this cup.
on_cup_changeCallback for datum/component/takes_reagent_appearance to inherent style footypes
on_cup_resetCallback for datum/component/takes_reagent_appearance to reset to no foodtypes

Var Details

drink_type

Like Edible's food type, what kind of drink is this?

gulp_size

How much we drink at once, shot glasses drink more.

isGlass

Whether the 'bottle' is made of glass or not so that milk cartons dont shatter when someone gets hit by it.

last_check_time

The last time we have checked for taste.

Proc Details

checkLiked

Checks if the mob actually liked drinking this cup.

+

This is a bunch of copypaste from the edible component, consider reworking this to use it!

on_cup_change

Callback for datum/component/takes_reagent_appearance to inherent style footypes

on_cup_reset

Callback for datum/component/takes_reagent_appearance to reset to no foodtypes

\ No newline at end of file diff --git a/obj/item/reagent_containers/cup/bottle/syrup_bottle.html b/obj/item/reagent_containers/cup/bottle/syrup_bottle.html new file mode 100644 index 0000000000000..04ae94139975e --- /dev/null +++ b/obj/item/reagent_containers/cup/bottle/syrup_bottle.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/cup/bottle/syrup_bottle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

syrup_bottle

Vars

cap_onvariable to tell if the bottle can be refilled

Var Details

cap_on

variable to tell if the bottle can be refilled

\ No newline at end of file diff --git a/obj/item/reagent_containers/cup/bowl.html b/obj/item/reagent_containers/cup/bowl.html new file mode 100644 index 0000000000000..0db1766aec3ed --- /dev/null +++ b/obj/item/reagent_containers/cup/bowl.html @@ -0,0 +1,3 @@ +/obj/item/reagent_containers/cup/bowl - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bowl

Procs

reagent_special_examineOverride standard reagent examine +so that anyone examining a bowl of soup sees the soup but nothing else (unless they have sci goggles)

Proc Details

reagent_special_examine

Override standard reagent examine +so that anyone examining a bowl of soup sees the soup but nothing else (unless they have sci goggles)

\ No newline at end of file diff --git a/obj/item/reagent_containers/cup/glass/bottle.html b/obj/item/reagent_containers/cup/glass/bottle.html new file mode 100644 index 0000000000000..3d936aca756aa --- /dev/null +++ b/obj/item/reagent_containers/cup/glass/bottle.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/cup/glass/bottle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bottle

Vars

bottle_knockdown_durationDirectly relates to the 'knockdown' duration. Lowered by armor (i.e. helmets)
message_in_a_bottleA contained piece of paper, a photo, or space cash, that we can use as a message or gift to future spessmen.

Var Details

bottle_knockdown_duration

Directly relates to the 'knockdown' duration. Lowered by armor (i.e. helmets)

message_in_a_bottle

A contained piece of paper, a photo, or space cash, that we can use as a message or gift to future spessmen.

\ No newline at end of file diff --git a/obj/item/reagent_containers/cup/glass/bottle/champagne.html b/obj/item/reagent_containers/cup/glass/bottle/champagne.html new file mode 100644 index 0000000000000..053592c04b384 --- /dev/null +++ b/obj/item/reagent_containers/cup/glass/bottle/champagne.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/cup/glass/bottle/champagne - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

champagne

Vars

sabrage_success_percentileUsed for sabrage; increases the chance of success per 1 force of the attacking sharp item
sabragedWhether this bottle was a victim of a successful sabrage attempt

Var Details

sabrage_success_percentile

Used for sabrage; increases the chance of success per 1 force of the attacking sharp item

sabraged

Whether this bottle was a victim of a successful sabrage attempt

\ No newline at end of file diff --git a/obj/item/reagent_containers/cup/glass/bottle/pruno.html b/obj/item/reagent_containers/cup/glass/bottle/pruno.html new file mode 100644 index 0000000000000..71346350abf44 --- /dev/null +++ b/obj/item/reagent_containers/cup/glass/bottle/pruno.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/cup/glass/bottle/pruno - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pruno

Vars

fermentation_time_remainingtime it takes to ferment
fermentation_timerfor partial fermentation

Procs

Initializestore the timer id of fermentation

Var Details

fermentation_time_remaining

time it takes to ferment

fermentation_timer

for partial fermentation

Proc Details

Initialize

store the timer id of fermentation

\ No newline at end of file diff --git a/obj/item/reagent_containers/cup/glass/colocup.html b/obj/item/reagent_containers/cup/glass/colocup.html new file mode 100644 index 0000000000000..0d6152bd8232d --- /dev/null +++ b/obj/item/reagent_containers/cup/glass/colocup.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/cup/glass/colocup - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

colocup

Vars

random_spriteAllows the lean sprite to display upon crafting

Var Details

random_sprite

Allows the lean sprite to display upon crafting

\ No newline at end of file diff --git a/obj/item/reagent_containers/cup/glass/drinkingglass.html b/obj/item/reagent_containers/cup/glass/drinkingglass.html new file mode 100644 index 0000000000000..a8e8ba3687822 --- /dev/null +++ b/obj/item/reagent_containers/cup/glass/drinkingglass.html @@ -0,0 +1,3 @@ +/obj/item/reagent_containers/cup/glass/drinkingglass - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

drinkingglass

Vars

base_container_typeThe type to compare to glass_style.required_container type, or null to use class type. +This allows subtypes to utilize parent styles.

Var Details

base_container_type

The type to compare to glass_style.required_container type, or null to use class type. +This allows subtypes to utilize parent styles.

\ No newline at end of file diff --git a/obj/item/reagent_containers/cup/glass/shaker.html b/obj/item/reagent_containers/cup/glass/shaker.html new file mode 100644 index 0000000000000..7602373d0f98d --- /dev/null +++ b/obj/item/reagent_containers/cup/glass/shaker.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/cup/glass/shaker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shaker

drinkingglass and shaker

Vars

custom_drink_descDescription custom drinks will have
custom_drink_nameName custom drinks will have
using_custom_drinksWhether or not poured drinks should use custom names and descriptions

Var Details

custom_drink_desc

Description custom drinks will have

custom_drink_name

Name custom drinks will have

using_custom_drinks

Whether or not poured drinks should use custom names and descriptions

\ No newline at end of file diff --git a/obj/item/reagent_containers/cup/rag.html b/obj/item/reagent_containers/cup/rag.html new file mode 100644 index 0000000000000..878741015c625 --- /dev/null +++ b/obj/item/reagent_containers/cup/rag.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/cup/rag - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

rag

Procs

should_cleanChecks whether or not we should clean.

Proc Details

should_clean

Checks whether or not we should clean.

\ No newline at end of file diff --git a/obj/item/reagent_containers/cup/soda_cans.html b/obj/item/reagent_containers/cup/soda_cans.html new file mode 100644 index 0000000000000..3082ce79283ae --- /dev/null +++ b/obj/item/reagent_containers/cup/soda_cans.html @@ -0,0 +1,6 @@ +/obj/item/reagent_containers/cup/soda_cans - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

soda_cans

Vars

fizzinessIf the can hasn't been opened yet, this is the measure of how fizzed up it is from being shaken or thrown around. When opened, this is rolled as a percentage chance to burst

Procs

burst_sodaBurst the soda open on someone. Fun! Opens and empties the soda can, but does not crush it.

Var Details

fizziness

If the can hasn't been opened yet, this is the measure of how fizzed up it is from being shaken or thrown around. When opened, this is rolled as a percentage chance to burst

Proc Details

burst_soda

Burst the soda open on someone. Fun! Opens and empties the soda can, but does not crush it.

+

Arguments:

+
    +
  • target - Who's getting covered in soda
  • +
  • hide_message - Stops the generic fizzing message, so you can do your own
  • +
\ No newline at end of file diff --git a/obj/item/reagent_containers/cup/soda_cans/skyrat.html b/obj/item/reagent_containers/cup/soda_cans/skyrat.html new file mode 100644 index 0000000000000..353d597edeba0 --- /dev/null +++ b/obj/item/reagent_containers/cup/soda_cans/skyrat.html @@ -0,0 +1,6 @@ +/obj/item/reagent_containers/cup/soda_cans/skyrat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

skyrat

Procs

throw_impactBurst the soda open on someone. Fun! Opens and empties the soda can, but does not crush it.

Proc Details

throw_impact

Burst the soda open on someone. Fun! Opens and empties the soda can, but does not crush it.

+

Arguments:

+
    +
  • target - Who's getting covered in soda
  • +
  • hide_message - Stops the generic fizzing message, so you can do your own
  • +
\ No newline at end of file diff --git a/obj/item/reagent_containers/cup/soup_pot.html b/obj/item/reagent_containers/cup/soup_pot.html new file mode 100644 index 0000000000000..1989c39fe497c --- /dev/null +++ b/obj/item/reagent_containers/cup/soup_pot.html @@ -0,0 +1,13 @@ +/obj/item/reagent_containers/cup/soup_pot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

soup_pot

Vars

added_ingredientsA lazylist of all the ingredients we have added
emulsify_reagentsWhether or not the pot is set to clean other reagents from soups
max_ingredientsMax number of ingredients we can add

Procs

dump_ingredientsDumps all inside ingredients to a spot
reagent_special_examineOverride standard reagent examine with something a bit more sensible for the soup pot, +including the ingredients we have within as well
transfer_from_container_to_potAdds items to a soup pot without invoking any procs that call sleep() when using in a component.

Var Details

added_ingredients

A lazylist of all the ingredients we have added

emulsify_reagents

Whether or not the pot is set to clean other reagents from soups

max_ingredients

Max number of ingredients we can add

Proc Details

dump_ingredients

Dumps all inside ingredients to a spot

+
    +
  • drop_loc - Where to drop the ingredients, defaults to drop loc
  • +
  • x_offset - How much pixel X offset to give every ingredient, if not set will be random
  • +
  • y_offset - How much pixel Y offset to give every ingredient, if not set will be random
  • +

reagent_special_examine

Override standard reagent examine with something a bit more sensible for the soup pot, +including the ingredients we have within as well

transfer_from_container_to_pot

Adds items to a soup pot without invoking any procs that call sleep() when using in a component.

+

Args:

+
    +
  • transfer_from: The container that's being used to add items to the soup pot. Must not be null.
  • +
  • user: the entity adding ingredients via a container to a soup pot. Must not be null.
  • +
\ No newline at end of file diff --git a/obj/item/reagent_containers/cup/watering_can/advanced.html b/obj/item/reagent_containers/cup/watering_can/advanced.html new file mode 100644 index 0000000000000..53121bfc5d502 --- /dev/null +++ b/obj/item/reagent_containers/cup/watering_can/advanced.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/cup/watering_can/advanced - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

advanced

Vars

refill_rateRefill rate for the watering can
refill_reagentDetermins what reagent to use for refilling

Var Details

refill_rate

Refill rate for the watering can

refill_reagent

Determins what reagent to use for refilling

\ No newline at end of file diff --git a/obj/item/reagent_containers/hypospray.html b/obj/item/reagent_containers/hypospray.html new file mode 100644 index 0000000000000..dbfb8b811ce9b --- /dev/null +++ b/obj/item/reagent_containers/hypospray.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/hypospray - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hypospray

Vars

stealthyIf TRUE, won't play a noise when injecting.
used_upIf TRUE, the hypospray will be permanently unusable.

Procs

injectHandles all injection checks, injection and logging.

Var Details

stealthy

If TRUE, won't play a noise when injecting.

used_up

If TRUE, the hypospray will be permanently unusable.

Proc Details

inject

Handles all injection checks, injection and logging.

\ No newline at end of file diff --git a/obj/item/reagent_containers/hypospray/medipen/deforest.html b/obj/item/reagent_containers/hypospray/medipen/deforest.html new file mode 100644 index 0000000000000..299ed2ce5af90 --- /dev/null +++ b/obj/item/reagent_containers/hypospray/medipen/deforest.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/hypospray/medipen/deforest - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

deforest

Vars

inject_others_timeIf this pen has a timer for injecting others with, just for safety with some of the drugs in these

Var Details

inject_others_time

If this pen has a timer for injecting others with, just for safety with some of the drugs in these

\ No newline at end of file diff --git a/obj/item/reagent_containers/pill.html b/obj/item/reagent_containers/pill.html new file mode 100644 index 0000000000000..6c83ac2136556 --- /dev/null +++ b/obj/item/reagent_containers/pill.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/pill - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

pill

Procs

on_consumptionRuns the consumption code, can be overriden for special effects

Proc Details

on_consumption

Runs the consumption code, can be overriden for special effects

\ No newline at end of file diff --git a/obj/item/reagent_containers/spray.html b/obj/item/reagent_containers/spray.html new file mode 100644 index 0000000000000..656dba2191d72 --- /dev/null +++ b/obj/item/reagent_containers/spray.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/spray - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spray

Vars

can_toggle_rangeAre we able to toggle between stream and spray modes, which change the distance and amount sprayed?

Procs

do_sprayHandles exposing atoms to the reagents contained in a spray's chempuff. Deletes the chempuff when it's completed.
on_reagent_changeHandles updating the spray distance when the reagents change.
sprayHandles creating a chem puff that travels towards the target atom, exposing reagents to everything it hits on the way.

Var Details

can_toggle_range

Are we able to toggle between stream and spray modes, which change the distance and amount sprayed?

Proc Details

do_spray

Handles exposing atoms to the reagents contained in a spray's chempuff. Deletes the chempuff when it's completed.

on_reagent_change

Handles updating the spray distance when the reagents change.

spray

Handles creating a chem puff that travels towards the target atom, exposing reagents to everything it hits on the way.

\ No newline at end of file diff --git a/obj/item/reagent_containers/syringe.html b/obj/item/reagent_containers/syringe.html new file mode 100644 index 0000000000000..bc7dec7c676c8 --- /dev/null +++ b/obj/item/reagent_containers/syringe.html @@ -0,0 +1 @@ +/obj/item/reagent_containers/syringe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

syringe

Vars

inject_flagsFlags used by the injection

Procs

get_rounded_volUsed by update_appearance() and update_overlays()
update_reagent_overlayReturns a list of overlays to add that relate to the reagents inside the syringe

Var Details

inject_flags

Flags used by the injection

Proc Details

get_rounded_vol

Used by update_appearance() and update_overlays()

update_reagent_overlay

Returns a list of overlays to add that relate to the reagents inside the syringe

\ No newline at end of file diff --git a/obj/item/research_notes.html b/obj/item/research_notes.html new file mode 100644 index 0000000000000..24ad6f6d7ee7c --- /dev/null +++ b/obj/item/research_notes.html @@ -0,0 +1 @@ +/obj/item/research_notes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

research_notes

Vars

mixedif it ws merged with different origins to apply a bonus
origin_typeorigin of the research
valueresearch points it holds

Procs

change_volproc that changes name and icon depending on value
mergeproc when you slap research notes into another one, it applies a bonus if they are of different origin (only applied once)

Var Details

mixed

if it ws merged with different origins to apply a bonus

origin_type

origin of the research

value

research points it holds

Proc Details

change_vol

proc that changes name and icon depending on value

merge

proc when you slap research notes into another one, it applies a bonus if they are of different origin (only applied once)

\ No newline at end of file diff --git a/obj/item/research_paper.html b/obj/item/research_paper.html new file mode 100644 index 0000000000000..fa9e3938d95ff --- /dev/null +++ b/obj/item/research_paper.html @@ -0,0 +1 @@ +/obj/item/research_paper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

research_paper

Vars

discovered_itemsthe list of discovered items
radial_icons_cacheContains images of all radial icons
shape_listlist of the shapes we use
shape_partsthe list that is used when we wonder about the shapes
thinking_listthe list that is used when we wonder about the shape parts

Var Details

discovered_items

the list of discovered items

radial_icons_cache

Contains images of all radial icons

shape_list

list of the shapes we use

shape_parts

the list that is used when we wonder about the shapes

thinking_list

the list that is used when we wonder about the shape parts

\ No newline at end of file diff --git a/obj/item/research_scrap.html b/obj/item/research_scrap.html new file mode 100644 index 0000000000000..992bbb71f670f --- /dev/null +++ b/obj/item/research_scrap.html @@ -0,0 +1 @@ +/obj/item/research_scrap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

research_scrap

Vars

material_satisfiedhas both glass and metal been used to build the item?
spawning_itemwhat will be spawned

Var Details

material_satisfied

has both glass and metal been used to build the item?

spawning_item

what will be spawned

\ No newline at end of file diff --git a/obj/item/resonator.html b/obj/item/resonator.html new file mode 100644 index 0000000000000..cee55aca5d085 --- /dev/null +++ b/obj/item/resonator.html @@ -0,0 +1 @@ +/obj/item/resonator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

resonator

Resonator

Vars

adding_failurethe number that is added to the failure_prob, which is the probability of whether it will spread or not
fieldlimitthe number of fields the resonator is allowed to have at once
fieldsthe list of currently active fields from this resonator
modethe mode of the resonator; has three modes: auto (1), manual (2), and matrix (3)
quick_burst_modHow efficient it is in manual mode. Yes, we lower the damage cuz it's gonna be used for mobhunt

Var Details

adding_failure

the number that is added to the failure_prob, which is the probability of whether it will spread or not

fieldlimit

the number of fields the resonator is allowed to have at once

fields

the list of currently active fields from this resonator

mode

the mode of the resonator; has three modes: auto (1), manual (2), and matrix (3)

quick_burst_mod

How efficient it is in manual mode. Yes, we lower the damage cuz it's gonna be used for mobhunt

\ No newline at end of file diff --git a/obj/item/respawn_implant.html b/obj/item/respawn_implant.html new file mode 100644 index 0000000000000..bfb9b2441b01c --- /dev/null +++ b/obj/item/respawn_implant.html @@ -0,0 +1 @@ +/obj/item/respawn_implant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

respawn_implant

Vars

given_componentWhat is the path of the component added when someone uses the implant?

Procs

add_given_componentAdds the component from the given_component variable to the target mob's mind. returns FALSE if the given_component cannot be added to the target's mind.

Var Details

given_component

What is the path of the component added when someone uses the implant?

Proc Details

add_given_component

Adds the component from the given_component variable to the target mob's mind. returns FALSE if the given_component cannot be added to the target's mind.

\ No newline at end of file diff --git a/obj/item/restraints.html b/obj/item/restraints.html new file mode 100644 index 0000000000000..693125f0f72d3 --- /dev/null +++ b/obj/item/restraints.html @@ -0,0 +1,6 @@ +/obj/item/restraints - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Generic restraints

Parent class for handcuffs and handcuff accessories

+

Functionality:

+
    +
  1. A special suicide
  2. +
  3. If a restraint is handcuffing/legcuffing a carbon while being deleted, it will remove the handcuff/legcuff status.
  4. +
\ No newline at end of file diff --git a/obj/item/restraints/handcuffs.html b/obj/item/restraints/handcuffs.html new file mode 100644 index 0000000000000..f5ce2a6fd4fce --- /dev/null +++ b/obj/item/restraints/handcuffs.html @@ -0,0 +1,8 @@ +/obj/item/restraints/handcuffs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Handcuffs

Stuff that makes humans unable to use hands

+

Clicking people with those will cause an attempt at handcuffing them to occur

Vars

cuffsoundSound that plays when starting to put handcuffs on someone
cuffsuccesssoundSound that plays when restrain is successful
handcuff_timeHow long it takes to handcuff someone
handcuff_time_modMultiplier for handcuff time
restraint_strengthHow strong the cuffs are. Weak cuffs can be broken with wirecutters or boxcutters.
trashtypeIf set, handcuffs will be destroyed on application and leave behind whatever this is set to.

Procs

apply_cuffsWhen called, this instantly puts handcuffs on someone (if actually possible)
attempt_to_cuffHandles all of the checks and application in a typical situation where someone attacks a carbon victim with the handcuff item.

Var Details

cuffsound

Sound that plays when starting to put handcuffs on someone

cuffsuccesssound

Sound that plays when restrain is successful

handcuff_time

How long it takes to handcuff someone

handcuff_time_mod

Multiplier for handcuff time

restraint_strength

How strong the cuffs are. Weak cuffs can be broken with wirecutters or boxcutters.

trashtype

If set, handcuffs will be destroyed on application and leave behind whatever this is set to.

Proc Details

apply_cuffs

When called, this instantly puts handcuffs on someone (if actually possible)

+

Arguments:

+
    +
  • mob/living/carbon/target - Who is being handcuffed
  • +
  • mob/user - Who or what is doing the handcuffing
  • +
  • dispense - True if the cuffing should create a new item instead of using putting src on the mob, false otherwise. False by default.
  • +

attempt_to_cuff

Handles all of the checks and application in a typical situation where someone attacks a carbon victim with the handcuff item.

\ No newline at end of file diff --git a/obj/item/restraints/handcuffs/cable.html b/obj/item/restraints/handcuffs/cable.html new file mode 100644 index 0000000000000..13057613ac8aa --- /dev/null +++ b/obj/item/restraints/handcuffs/cable.html @@ -0,0 +1 @@ +/obj/item/restraints/handcuffs/cable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Cable restraints

Ghetto handcuffs. Removing those is faster.

Vars

cable_colorfor generating the correct icons based off the original cable's color.

Var Details

cable_color

for generating the correct icons based off the original cable's color.

\ No newline at end of file diff --git a/obj/item/restraints/handcuffs/cable/sinew.html b/obj/item/restraints/handcuffs/cable/sinew.html new file mode 100644 index 0000000000000..c902c9f127170 --- /dev/null +++ b/obj/item/restraints/handcuffs/cable/sinew.html @@ -0,0 +1,2 @@ +/obj/item/restraints/handcuffs/cable/sinew - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Sinew restraints

Primal ghetto handcuffs

+

Just cable restraints that look differently and can't be recycled.

\ No newline at end of file diff --git a/obj/item/restraints/handcuffs/milker.html b/obj/item/restraints/handcuffs/milker.html new file mode 100644 index 0000000000000..e2650c87696c1 --- /dev/null +++ b/obj/item/restraints/handcuffs/milker.html @@ -0,0 +1 @@ +/obj/item/restraints/handcuffs/milker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

milker

Vars

parent_chairThe chair that the handcuffs are parented to.

Var Details

parent_chair

The chair that the handcuffs are parented to.

\ No newline at end of file diff --git a/obj/item/restraints/legcuffs/beartrap.html b/obj/item/restraints/legcuffs/beartrap.html new file mode 100644 index 0000000000000..a16af7fbec0f5 --- /dev/null +++ b/obj/item/restraints/legcuffs/beartrap.html @@ -0,0 +1,6 @@ +/obj/item/restraints/legcuffs/beartrap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Bear trap

This opens, closes, and bites people's legs.

Vars

armedIf true, the trap is "open" and can trigger.
trap_damageHow much damage the trap deals when triggered.

Procs

close_trapCloses a bear trap
spring_trapTries to spring the trap on the target movable.

Var Details

armed

If true, the trap is "open" and can trigger.

trap_damage

How much damage the trap deals when triggered.

Proc Details

close_trap

Closes a bear trap

+

Closes a bear trap. +Arguments:

spring_trap

Tries to spring the trap on the target movable.

+

This proc is safe to call without knowing if the target is valid or if the trap is armed.

+

Does not trigger on tiny mobs. +If ignore_movetypes is FALSE, does not trigger on floating / flying / etc. mobs.

\ No newline at end of file diff --git a/obj/item/restraints/legcuffs/beartrap/energy.html b/obj/item/restraints/legcuffs/beartrap/energy.html new file mode 100644 index 0000000000000..9e418bd69c73a --- /dev/null +++ b/obj/item/restraints/legcuffs/beartrap/energy.html @@ -0,0 +1,4 @@ +/obj/item/restraints/legcuffs/beartrap/energy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

Energy snare

This closes on people's legs.

+

A weaker version of the bear trap that can be resisted out of faster and disappears

Procs

dissipateHandles energy snares disappearing

Proc Details

dissipate

Handles energy snares disappearing

+

If the snare isn't closed on anyone, it will disappear in a shower of sparks. +Arguments:

\ No newline at end of file diff --git a/obj/item/restraints/legcuffs/bola.html b/obj/item/restraints/legcuffs/bola.html new file mode 100644 index 0000000000000..4af839d8df7ce --- /dev/null +++ b/obj/item/restraints/legcuffs/bola.html @@ -0,0 +1,5 @@ +/obj/item/restraints/legcuffs/bola - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bola

Vars

ensnare_mob_refReference of the mob we will attempt to snare
knockdownAmount of time to knock the target down for once it's hit in deciseconds.

Procs

ensnareAttempts to legcuff someone with the bola

Var Details

ensnare_mob_ref

Reference of the mob we will attempt to snare

knockdown

Amount of time to knock the target down for once it's hit in deciseconds.

Proc Details

ensnare

Attempts to legcuff someone with the bola

+

Arguments:

+
    +
  • snared_mob - the carbon that we will try to ensnare
  • +
\ No newline at end of file diff --git a/obj/item/restraints/legcuffs/bola/energy.html b/obj/item/restraints/legcuffs/bola/energy.html new file mode 100644 index 0000000000000..8bb277e6fbf10 --- /dev/null +++ b/obj/item/restraints/legcuffs/bola/energy.html @@ -0,0 +1,2 @@ +/obj/item/restraints/legcuffs/bola/energy - /tg/ Station 13
/tg/ Station 13 - Modules - Types

energy

A security variant of the bola.

+

It's harder to remove, smaller and has a defined price.

\ No newline at end of file diff --git a/obj/item/restraints/legcuffs/bola/gonbola.html b/obj/item/restraints/legcuffs/bola/gonbola.html new file mode 100644 index 0000000000000..85f9eb25be207 --- /dev/null +++ b/obj/item/restraints/legcuffs/bola/gonbola.html @@ -0,0 +1,2 @@ +/obj/item/restraints/legcuffs/bola/gonbola - /tg/ Station 13
/tg/ Station 13 - Modules - Types

gonbola

A pacifying variant of the bola.

+

It's much harder to remove, doesn't cause a slowdown and gives people /datum/status_effect/gonbola_pacify.

\ No newline at end of file diff --git a/obj/item/restraints/legcuffs/bola/tactical.html b/obj/item/restraints/legcuffs/bola/tactical.html new file mode 100644 index 0000000000000..08e924ce6dd6b --- /dev/null +++ b/obj/item/restraints/legcuffs/bola/tactical.html @@ -0,0 +1,2 @@ +/obj/item/restraints/legcuffs/bola/tactical - /tg/ Station 13
/tg/ Station 13 - Modules - Types

tactical

A traitor variant of the bola.

+

It knocks people down and is harder to remove.

\ No newline at end of file diff --git a/obj/item/resurrection_crystal.html b/obj/item/resurrection_crystal.html new file mode 100644 index 0000000000000..71e5c6fb82807 --- /dev/null +++ b/obj/item/resurrection_crystal.html @@ -0,0 +1 @@ +/obj/item/resurrection_crystal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

resurrection_crystal

Procs

resurrectResurrects the target when they die by moving them and dusting a clone in their place, one life for another

Proc Details

resurrect

Resurrects the target when they die by moving them and dusting a clone in their place, one life for another

\ No newline at end of file diff --git a/obj/item/retractor.html b/obj/item/retractor.html new file mode 100644 index 0000000000000..1b07cd4c33c68 --- /dev/null +++ b/obj/item/retractor.html @@ -0,0 +1 @@ +/obj/item/retractor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

retractor

Vars

surgical_tray_overlayHow this looks when placed in a surgical tray

Var Details

surgical_tray_overlay

How this looks when placed in a surgical tray

\ No newline at end of file diff --git a/obj/item/reverse_bear_trap.html b/obj/item/reverse_bear_trap.html new file mode 100644 index 0000000000000..d851783529c2a --- /dev/null +++ b/obj/item/reverse_bear_trap.html @@ -0,0 +1 @@ +/obj/item/reverse_bear_trap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

reverse_bear_trap

Vars

escape_chancechance per "fiddle" to get the trap off your head
kill_countdownCooldown for the KILL
strugglingIs the target struggling?
tickingIs the reverse bear trap active?

Var Details

escape_chance

chance per "fiddle" to get the trap off your head

kill_countdown

Cooldown for the KILL

struggling

Is the target struggling?

ticking

Is the reverse bear trap active?

\ No newline at end of file diff --git a/obj/item/ritual_totem.html b/obj/item/ritual_totem.html new file mode 100644 index 0000000000000..5d0fa89e8f065 --- /dev/null +++ b/obj/item/ritual_totem.html @@ -0,0 +1 @@ +/obj/item/ritual_totem - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ritual_totem

Procs

expireWhen the ritual totem is depleted of antimagic

Proc Details

expire

When the ritual totem is depleted of antimagic

\ No newline at end of file diff --git a/obj/item/rna_extractor.html b/obj/item/rna_extractor.html new file mode 100644 index 0000000000000..50fdfd72cafa5 --- /dev/null +++ b/obj/item/rna_extractor.html @@ -0,0 +1 @@ +/obj/item/rna_extractor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rna_extractor

Vars

loaded_vialOur loaded vial.

Var Details

loaded_vial

Our loaded vial.

\ No newline at end of file diff --git a/obj/item/robot_model.html b/obj/item/robot_model.html new file mode 100644 index 0000000000000..2ff46a45fb3ca --- /dev/null +++ b/obj/item/robot_model.html @@ -0,0 +1,11 @@ +/obj/item/robot_model - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

robot_model

Definition of /obj/item/robot_model, which defines behavior for each model. +Deals with the creation and deletion of modules (tools). +Assigns modules and traits to a borg with a specific model selected.

Vars

added_modulesModules not inherent to the robot configuration
allow_ridingCan we be ridden
basic_modulesPaths of modules to be created when the model is created
borg_skinsList of skins the borg can be reskinned to, optional
breakable_modulesWhether the borg loses tool slots with damage.
canDisposeWhether the borg can stuff itself into disposals
cyborg_base_iconProduces the icon for the borg and, if no special_light_key is set, the lights
emag_modulesPaths of modules to be created on emagging
hat_offsetThe pixel offset of the hat. List of "north" "south" "east" "west" x, y offsets
locked_transformWhether swapping to this configuration should lockcharge the borg
model_featuresTraits unique to this model, i.e. having a unique dead sprite, being wide or being small enough to reject shrinker modules. Leverages defines in code__DEFINES~skyrat_defines\robot_defines.dm +If a sprite overlaps above the standard height, ensure it is not overlapping icons in the selector wheel.
model_select_iconIcon of the module selection screen
model_traitsList of traits that will be applied to the mob if this model is used.
modulesHolds all the usable modules (tools)
radio_channelsList of radio channels added to the cyborg
ride_offset_xThe x offsets of a person riding the borg
ride_offset_yThe y offsets of a person riding the borg
robotHost of this model
special_light_keyIf we want specific lights, use this instead of copying lights in the dmi
storagesStorage types of the model

Procs

check_menuChecks if we are allowed to interact with a radial menu
respawn_consumableRestocks things that don't take mats, generally at a power cost. Returns True if anything was restocked/replaced, and False otherwise.
restock_consumableRefills consumables that require materials, rather than being given for free.

Var Details

added_modules

Modules not inherent to the robot configuration

allow_riding

Can we be ridden

basic_modules

Paths of modules to be created when the model is created

borg_skins

List of skins the borg can be reskinned to, optional

breakable_modules

Whether the borg loses tool slots with damage.

canDispose

Whether the borg can stuff itself into disposals

cyborg_base_icon

Produces the icon for the borg and, if no special_light_key is set, the lights

emag_modules

Paths of modules to be created on emagging

hat_offset

The pixel offset of the hat. List of "north" "south" "east" "west" x, y offsets

locked_transform

Whether swapping to this configuration should lockcharge the borg

model_features

Traits unique to this model, i.e. having a unique dead sprite, being wide or being small enough to reject shrinker modules. Leverages defines in code__DEFINES~skyrat_defines\robot_defines.dm +If a sprite overlaps above the standard height, ensure it is not overlapping icons in the selector wheel.

model_select_icon

Icon of the module selection screen

model_traits

List of traits that will be applied to the mob if this model is used.

modules

Holds all the usable modules (tools)

radio_channels

List of radio channels added to the cyborg

ride_offset_x

The x offsets of a person riding the borg

ride_offset_y

The y offsets of a person riding the borg

robot

Host of this model

special_light_key

If we want specific lights, use this instead of copying lights in the dmi

storages

Storage types of the model

Proc Details

check_menu

Checks if we are allowed to interact with a radial menu

+

Arguments:

+
    +
  • user The cyborg mob interacting with the menu
  • +
  • old_model The old cyborg's model
  • +

respawn_consumable

Restocks things that don't take mats, generally at a power cost. Returns True if anything was restocked/replaced, and False otherwise.

restock_consumable

Refills consumables that require materials, rather than being given for free.

+

Pulls from the charger's silo connection, or fails otherwise.

\ No newline at end of file diff --git a/obj/item/robot_model/janitor.html b/obj/item/robot_model/janitor.html new file mode 100644 index 0000000000000..1070c4d07dacc --- /dev/null +++ b/obj/item/robot_model/janitor.html @@ -0,0 +1 @@ +/obj/item/robot_model/janitor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

janitor

Vars

wash_toggle_refWeakref to the wash toggle action we own

Var Details

wash_toggle_ref

Weakref to the wash toggle action we own

\ No newline at end of file diff --git a/obj/item/robot_suit.html b/obj/item/robot_suit.html new file mode 100644 index 0000000000000..b6216cb5f267f --- /dev/null +++ b/obj/item/robot_suit.html @@ -0,0 +1,5 @@ +/obj/item/robot_suit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

robot_suit

Vars

aisyncIf the cyborg starts with a master AI
chestChest part of this endoskeleton
created_nameForced name of the cyborg
forced_aiForced master AI of the cyborg
forced_ai_nameThe name of the AI being forced, tracked separately to above +so we can reference handle without worrying about making "AI got gibbed" detectors
headHead part of this endoskeleton
l_armLeft arm part of the endoskeleton
l_legLeft leg part of this endoskeleton
lawsyncIf the cyborg synchronizes its laws with its master AI
locomotionIf the cyborg starts movement free and not under lockdown
panel_lockedIf the cyborg's cover panel starts locked
r_armRight arm part of the endoskeleton
r_legRight leg part of this endoskeleton

Procs

ai_dieClears the forced_ai ref
clear_forced_aiClears [forced_ai] and [forced_ai_name]
drop_all_partsDrops all included parts to the passed location +This will also dissassemble the parts being dropped into components as well
set_forced_aiSets [forced_ai] and [forced_ai_name] to the passed AI

Var Details

aisync

If the cyborg starts with a master AI

chest

Chest part of this endoskeleton

created_name

Forced name of the cyborg

forced_ai

Forced master AI of the cyborg

forced_ai_name

The name of the AI being forced, tracked separately to above +so we can reference handle without worrying about making "AI got gibbed" detectors

head

Head part of this endoskeleton

l_arm

Left arm part of the endoskeleton

l_leg

Left leg part of this endoskeleton

lawsync

If the cyborg synchronizes its laws with its master AI

locomotion

If the cyborg starts movement free and not under lockdown

panel_locked

If the cyborg's cover panel starts locked

r_arm

Right arm part of the endoskeleton

r_leg

Right leg part of this endoskeleton

Proc Details

ai_die

Clears the forced_ai ref

clear_forced_ai

Clears [forced_ai] and [forced_ai_name]

drop_all_parts

Drops all included parts to the passed location +This will also dissassemble the parts being dropped into components as well

set_forced_ai

Sets [forced_ai] and [forced_ai_name] to the passed AI

\ No newline at end of file diff --git a/obj/item/royale_implanter.html b/obj/item/royale_implanter.html new file mode 100644 index 0000000000000..902bcf1d34b46 --- /dev/null +++ b/obj/item/royale_implanter.html @@ -0,0 +1 @@ +/obj/item/royale_implanter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

royale_implanter

Quietly implants people with battle royale implants

Vars

linkedDo we have a linked remote? Just to prevent headdesk moments

Var Details

linked

Do we have a linked remote? Just to prevent headdesk moments

\ No newline at end of file diff --git a/obj/item/royale_remote.html b/obj/item/royale_remote.html new file mode 100644 index 0000000000000..a58f935ee3f33 --- /dev/null +++ b/obj/item/royale_remote.html @@ -0,0 +1 @@ +/obj/item/royale_remote - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

royale_remote

Activates implants implanted by linked royale implanter

Vars

implanted_implantsList of implants of lucky contestants
linked_implantersList of implanters we are linked to
required_contestantsMinimum number of contestants we should have

Procs

implanter_destroyedA linked implanter was destroyed
link_implanterLink to an implanter
record_contestantRecord that someone just got implanted

Var Details

implanted_implants

List of implants of lucky contestants

linked_implanters

List of implanters we are linked to

required_contestants

Minimum number of contestants we should have

Proc Details

implanter_destroyed

A linked implanter was destroyed

Link to an implanter

record_contestant

Record that someone just got implanted

\ No newline at end of file diff --git a/obj/item/rpd_upgrade.html b/obj/item/rpd_upgrade.html new file mode 100644 index 0000000000000..41f58531ba354 --- /dev/null +++ b/obj/item/rpd_upgrade.html @@ -0,0 +1 @@ +/obj/item/rpd_upgrade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rpd_upgrade

Vars

upgrade_flagsBitflags for upgrades

Var Details

upgrade_flags

Bitflags for upgrades

\ No newline at end of file diff --git a/obj/item/rsd_interface.html b/obj/item/rsd_interface.html new file mode 100644 index 0000000000000..0e966024cb869 --- /dev/null +++ b/obj/item/rsd_interface.html @@ -0,0 +1 @@ +/obj/item/rsd_interface - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

rsd_interface

Procs

interact_with_atomAttempts to use the item on the target brain.

Proc Details

interact_with_atom

Attempts to use the item on the target brain.

\ No newline at end of file diff --git a/obj/item/rsf.html b/obj/item/rsf.html new file mode 100644 index 0000000000000..8623ef5c812e7 --- /dev/null +++ b/obj/item/rsf.html @@ -0,0 +1,3 @@ +/obj/item/rsf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

rsf

Vars

action_typeThe verb that describes what we're doing, for use in text
allowed_surfacesA list of surfaces that we are allowed to place things on.
cooldownHolds a copy of world.time from the last time the synth was used.
cooldowndelayHow long should the minimum period between this RSF's item dispensings be?
cost_by_itemAn associated list of atoms and charge costs. This can contain a separate list, as long as its associated item is an object +The RSF item list below shows in the player facing ui in this order, this is why it isn't in alphabetical order, but instead sorted by category
discriptorThe unit of mesure of the matter, for use in text
dispense_costThe cost of the object we are going to dispense
matterThe current matter count
matter_by_itemAn associated list of fuel and its value
max_matterThe max amount of matter in the device
spent_icon_stateThe icon state to revert to when the tool is empty
to_dispenseThe type of the object we are going to dispense

Procs

formRadialForms a radial menu based off an object in a list, or a list's associated object
is_allowedHelper proc that iterates through all the things we are allowed to spawn on, and sees if the passed atom is one of them
use_matterA helper proc. checks to see if we can afford the amount of charge that is passed, and if we can docs the charge from our base, and returns TRUE. If we can't we return FALSE

Var Details

action_type

The verb that describes what we're doing, for use in text

allowed_surfaces

A list of surfaces that we are allowed to place things on.

cooldown

Holds a copy of world.time from the last time the synth was used.

cooldowndelay

How long should the minimum period between this RSF's item dispensings be?

cost_by_item

An associated list of atoms and charge costs. This can contain a separate list, as long as its associated item is an object +The RSF item list below shows in the player facing ui in this order, this is why it isn't in alphabetical order, but instead sorted by category

discriptor

The unit of mesure of the matter, for use in text

dispense_cost

The cost of the object we are going to dispense

matter

The current matter count

matter_by_item

An associated list of fuel and its value

max_matter

The max amount of matter in the device

spent_icon_state

The icon state to revert to when the tool is empty

to_dispense

The type of the object we are going to dispense

Proc Details

formRadial

Forms a radial menu based off an object in a list, or a list's associated object

is_allowed

Helper proc that iterates through all the things we are allowed to spawn on, and sees if the passed atom is one of them

use_matter

A helper proc. checks to see if we can afford the amount of charge that is passed, and if we can docs the charge from our base, and returns TRUE. If we can't we return FALSE

\ No newline at end of file diff --git a/obj/item/rsf/cookiesynth.html b/obj/item/rsf/cookiesynth.html new file mode 100644 index 0000000000000..7b56e8b9f995a --- /dev/null +++ b/obj/item/rsf/cookiesynth.html @@ -0,0 +1 @@ +/obj/item/rsf/cookiesynth - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cookiesynth

Vars

toxinTracks whether or not the cookiesynth is about to print a poisoned cookie

Var Details

toxin

Tracks whether or not the cookiesynth is about to print a poisoned cookie

\ No newline at end of file diff --git a/obj/item/runic_vendor_scepter.html b/obj/item/runic_vendor_scepter.html new file mode 100644 index 0000000000000..6e40f9d73511d --- /dev/null +++ b/obj/item/runic_vendor_scepter.html @@ -0,0 +1 @@ +/obj/item/runic_vendor_scepter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

runic_vendor_scepter

Vars

max_summon_rangeRange cap on where you can summon vendors.
scepter_is_busy_rechargingChecks if the scepter is busy channeling recharges
scepter_is_busy_summoningChecks if the scepter is channeling a vendor already.
summon_vendor_chargesNumber of summoning charges left.
summoning_timeChanneling time to summon a vendor.

Var Details

max_summon_range

Range cap on where you can summon vendors.

scepter_is_busy_recharging

Checks if the scepter is busy channeling recharges

scepter_is_busy_summoning

Checks if the scepter is channeling a vendor already.

summon_vendor_charges

Number of summoning charges left.

summoning_time

Channeling time to summon a vendor.

\ No newline at end of file diff --git a/obj/item/rwd.html b/obj/item/rwd.html new file mode 100644 index 0000000000000..419c82ec34483 --- /dev/null +++ b/obj/item/rwd.html @@ -0,0 +1 @@ +/obj/item/rwd - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

rwd

Vars

activeare we dual wielding this machine
cablecached reference of the cable used in the device
cable_layerwhat layer of cable are we working with
current_amountcurrent amount of cable in the machine
listeningTothe player currently holding this device.
max_amountmaximum amount of cable this device can hold
radial_menuradial menu to select cable layer

Procs

add_cableinsert cable into the rwd
attackbyfor inserting cable into the rwd
cable_allowed_herecheck if the turf has the same cable layer as this design. If it does don't put cable here
delta_cableextra safe modify just to be sure
get_cableget cached reference of cable which gets used over time
modify_cablemodify cable properties according to its layer
on_movestuff to do when moving
on_unwieldtriggered on unwield of two handed item
on_wieldtriggered on wield of two handed item

Var Details

active

are we dual wielding this machine

cable

cached reference of the cable used in the device

cable_layer

what layer of cable are we working with

current_amount

current amount of cable in the machine

listeningTo

the player currently holding this device.

max_amount

maximum amount of cable this device can hold

radial_menu

radial menu to select cable layer

Proc Details

add_cable

insert cable into the rwd

attackby

for inserting cable into the rwd

cable_allowed_here

check if the turf has the same cable layer as this design. If it does don't put cable here

delta_cable

extra safe modify just to be sure

get_cable

get cached reference of cable which gets used over time

modify_cable

modify cable properties according to its layer

on_move

stuff to do when moving

on_unwield

triggered on unwield of two handed item

on_wield

triggered on wield of two handed item

\ No newline at end of file diff --git a/obj/item/sales_tagger.html b/obj/item/sales_tagger.html new file mode 100644 index 0000000000000..3e4c1e947d83d --- /dev/null +++ b/obj/item/sales_tagger.html @@ -0,0 +1 @@ +/obj/item/sales_tagger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sales_tagger

Vars

cut_maxMaximum value for cut_multiplier.
cut_minMinimum value for cut_multiplier.
cut_multiplierThe person who tagged this will receive the sale value multiplied by this number.
payments_accThe account which is receiving the split profits.

Var Details

cut_max

Maximum value for cut_multiplier.

cut_min

Minimum value for cut_multiplier.

cut_multiplier

The person who tagged this will receive the sale value multiplied by this number.

payments_acc

The account which is receiving the split profits.

\ No newline at end of file diff --git a/obj/item/scalpel.html b/obj/item/scalpel.html new file mode 100644 index 0000000000000..8b14b49c466a0 --- /dev/null +++ b/obj/item/scalpel.html @@ -0,0 +1 @@ +/obj/item/scalpel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

scalpel

Vars

surgical_tray_overlayHow this looks when placed in a surgical tray

Var Details

surgical_tray_overlay

How this looks when placed in a surgical tray

\ No newline at end of file diff --git a/obj/item/screwdriver.html b/obj/item/screwdriver.html new file mode 100644 index 0000000000000..3e59199b1062c --- /dev/null +++ b/obj/item/screwdriver.html @@ -0,0 +1 @@ +/obj/item/screwdriver - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

screwdriver

Vars

random_colorIf the item should be assigned a random color
screwdriver_colorsList of possible random colors

Var Details

random_color

If the item should be assigned a random color

screwdriver_colors

List of possible random colors

\ No newline at end of file diff --git a/obj/item/screwdriver/omni_drill.html b/obj/item/screwdriver/omni_drill.html new file mode 100644 index 0000000000000..983e4b36b6732 --- /dev/null +++ b/obj/item/screwdriver/omni_drill.html @@ -0,0 +1 @@ +/obj/item/screwdriver/omni_drill - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

omni_drill

Vars

snap_time_strong_handcuffsUsed on Initialize, how much time to cut real handcuffs. Null means it can't.
snap_time_weak_handcuffsUsed on Initialize, how much time to cut cable restraints and zipties.

Var Details

snap_time_strong_handcuffs

Used on Initialize, how much time to cut real handcuffs. Null means it can't.

snap_time_weak_handcuffs

Used on Initialize, how much time to cut cable restraints and zipties.

\ No newline at end of file diff --git a/obj/item/secateurs.html b/obj/item/secateurs.html new file mode 100644 index 0000000000000..5d4872cbda191 --- /dev/null +++ b/obj/item/secateurs.html @@ -0,0 +1 @@ +/obj/item/secateurs - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

secateurs

Procs

pre_attack_secondaryCatch right clicks so we can stylize!
restyleSend a signal to whatever we clicked and ask them if they wanna be PLANT RESTYLED YEAAAAAAAH

Proc Details

pre_attack_secondary

Catch right clicks so we can stylize!

restyle

Send a signal to whatever we clicked and ask them if they wanna be PLANT RESTYLED YEAAAAAAAH

\ No newline at end of file diff --git a/obj/item/seeds.html b/obj/item/seeds.html new file mode 100644 index 0000000000000..dc48d4d7d193b --- /dev/null +++ b/obj/item/seeds.html @@ -0,0 +1,21 @@ +/obj/item/seeds - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

seeds

Vars

enduranceAmount of health the plant has.
genesStarts as a list of paths, is converted to a list of types on init. Plant gene datums are stored here, see plant_genes.dm for more info.
graft_geneType-path of trait to be applied when grafting a plant.
graftedDetermines if the plant has had a graft removed or not.
growing_iconthe file that stores the sprites of the growing plant from this seed.
growthstagesAmount of growth sprites the plant has.
icon_deadUsed to override dead icon (default is "[species]-dead"). You can use one dead icon for multiple closely related plants with it.
icon_growUsed to override grow icon (default is "[species]-grow"). You can use one grow icon for multiple closely related plants with it.
icon_harvestUsed to override harvest icon (default is "[species]-harvest"). If null, plant will use [icon_grow][growthstages].
lifespanHow long before the plant begins to take damage from age.
maturationUsed to determine which sprite to switch to when growing.
mutatelistThe type of plants that this plant can mutate into.
plant_icon_offsetUsed to offset the plant sprite so that it appears at proper height in the tray
plantnameName of plant when planted.
potencyThe 'power' of a plant. Generally effects the amount of reagent in a plant, also used in other ways.
productA type path. The thing that is created when the plant is harvested.
productdescDescribes the product on the product path.
productionChanges the amount of time needed for a plant to become harvestable.
rarityHow rare the plant is. Used for giving points to cargo when shipping off to CentCom.
reagents_addA list of reagents to add to product.
seed_flagsDetermines if the plant should be allowed to mutate early at 30+ instability.
speciesUsed to update icons. Should match the name in the sprites unless all icon_* are overridden.
weed_chancePercentage chance per tray update to grow weeds
weed_rateIf the chance below passes, then this many weeds sprout during growth
yieldAmount of growns created per harvest. If is -1, the plant/shroom/weed is never meant to be harvested.

Procs

CopyCopy all the variables from one seed to a new instance of the same seed and return it.
adjust_enduranceAdjusts seed endurance up or down according to adjustamt. (Max 100)
adjust_instabilityAdjusts seed instability up or down according to adjustamt. (Max 100)
adjust_lifespanAdjusts seed lifespan up or down according to adjustamt. (Max 100)
adjust_potencyAdjusts seed potency up or down according to adjustamt. (Max 100)
adjust_productionAdjusts seed production seed up or down according to adjustamt. (Max 10)
adjust_weed_chanceAdjusts seed weed chance up or down according to adjustamt. (Max 67%)
adjust_weed_rateAdjusts seed weed grwoth speed up or down according to adjustamt. (Max 10)
adjust_yieldSetters procs +Adjusts seed yield up or down according to adjustamt. (Max 10)
apply_graftApplies a graft to this plant.
create_graftCreates a graft from this plant.
get_reagent_purityReturns reagent purity based on seed stats
get_unique_analyzer_textOverride for seeds with unique text for their analyzer. (No newlines at the start or end of unique text!) +Returns null if no unique text, or a string of text if there is.
on_chem_reactionOverride for seeds with special chem reactions.
prepare_resultThis is where plant chemical products are handled.
set_enduranceSets the plant's endurance stat to the value of adjustamt. (Max 100)
set_instabilitySets the plant's instability stat to the value of adjustamt. (Max 100)
set_lifespanSets the plant's lifespan stat to the value of adjustamt. (Max 100)
set_potencySets the plant's potency stat to the value of adjustamt. (Max 100)
set_productionSets the plant's production stat to the value of adjustamt. (Max 10)
set_weed_chanceSets the plant's weed growth percentage to the value of adjustamt. (Max 67%)
set_weed_rateSets the plant's weed production rate to the value of adjustamt. (Max 10)
set_yieldSets the plant's yield stat to the value of adjustamt. (Max 10, or 5 with some traits)

Var Details

endurance

Amount of health the plant has.

genes

Starts as a list of paths, is converted to a list of types on init. Plant gene datums are stored here, see plant_genes.dm for more info.

graft_gene

Type-path of trait to be applied when grafting a plant.

grafted

Determines if the plant has had a graft removed or not.

growing_icon

the file that stores the sprites of the growing plant from this seed.

growthstages

Amount of growth sprites the plant has.

icon_dead

Used to override dead icon (default is "[species]-dead"). You can use one dead icon for multiple closely related plants with it.

icon_grow

Used to override grow icon (default is "[species]-grow"). You can use one grow icon for multiple closely related plants with it.

icon_harvest

Used to override harvest icon (default is "[species]-harvest"). If null, plant will use [icon_grow][growthstages].

lifespan

How long before the plant begins to take damage from age.

maturation

Used to determine which sprite to switch to when growing.

mutatelist

The type of plants that this plant can mutate into.

plant_icon_offset

Used to offset the plant sprite so that it appears at proper height in the tray

plantname

Name of plant when planted.

potency

The 'power' of a plant. Generally effects the amount of reagent in a plant, also used in other ways.

product

A type path. The thing that is created when the plant is harvested.

productdesc

Describes the product on the product path.

production

Changes the amount of time needed for a plant to become harvestable.

rarity

How rare the plant is. Used for giving points to cargo when shipping off to CentCom.

reagents_add

A list of reagents to add to product.

seed_flags

Determines if the plant should be allowed to mutate early at 30+ instability.

species

Used to update icons. Should match the name in the sprites unless all icon_* are overridden.

weed_chance

Percentage chance per tray update to grow weeds

weed_rate

If the chance below passes, then this many weeds sprout during growth

yield

Amount of growns created per harvest. If is -1, the plant/shroom/weed is never meant to be harvested.

Proc Details

Copy

Copy all the variables from one seed to a new instance of the same seed and return it.

adjust_endurance

Adjusts seed endurance up or down according to adjustamt. (Max 100)

adjust_instability

Adjusts seed instability up or down according to adjustamt. (Max 100)

adjust_lifespan

Adjusts seed lifespan up or down according to adjustamt. (Max 100)

adjust_potency

Adjusts seed potency up or down according to adjustamt. (Max 100)

adjust_production

Adjusts seed production seed up or down according to adjustamt. (Max 10)

adjust_weed_chance

Adjusts seed weed chance up or down according to adjustamt. (Max 67%)

adjust_weed_rate

Adjusts seed weed grwoth speed up or down according to adjustamt. (Max 10)

adjust_yield

Setters procs +Adjusts seed yield up or down according to adjustamt. (Max 10)

apply_graft

Applies a graft to this plant.

+

Adds the graft trait to this plant if possible. +Increases plant stats by 2/3 of the grafts stats to a maximum of 100 (10 for yield). +Returns TRUE if the graft could apply its trait successfully, FALSE if it fails to apply the trait. +NOTE even if the graft fails to apply the trait it still adjusts the plant's stats and reagents.

+

Arguments:

+
    +
  • snip: The graft being used applied to this plant.
  • +

create_graft

Creates a graft from this plant.

+

Creates a new graft from this plant. +Sets the grafts trait to this plants graftable trait. +Gives the graft a reference to this plant. +Copies all the relevant stats from this plant to the graft. +Returns the created graft.

get_reagent_purity

Returns reagent purity based on seed stats

get_unique_analyzer_text

Override for seeds with unique text for their analyzer. (No newlines at the start or end of unique text!) +Returns null if no unique text, or a string of text if there is.

on_chem_reaction

Override for seeds with special chem reactions.

prepare_result

This is where plant chemical products are handled.

+

Individually, the formula for individual amounts of chemicals is Potency * the chemical production %, rounded to the fullest 1. +Specific chem handling is also handled here, like bloodtype, food taste within nutriment, and the auto-distilling/autojuicing traits. +This is where chemical reactions can occur, and the heating / cooling traits effect the reagent container.

set_endurance

Sets the plant's endurance stat to the value of adjustamt. (Max 100)

set_instability

Sets the plant's instability stat to the value of adjustamt. (Max 100)

set_lifespan

Sets the plant's lifespan stat to the value of adjustamt. (Max 100)

set_potency

Sets the plant's potency stat to the value of adjustamt. (Max 100)

set_production

Sets the plant's production stat to the value of adjustamt. (Max 10)

set_weed_chance

Sets the plant's weed growth percentage to the value of adjustamt. (Max 67%)

set_weed_rate

Sets the plant's weed production rate to the value of adjustamt. (Max 10)

set_yield

Sets the plant's yield stat to the value of adjustamt. (Max 10, or 5 with some traits)

\ No newline at end of file diff --git a/obj/item/seeds/replicapod.html b/obj/item/seeds/replicapod.html new file mode 100644 index 0000000000000..f2ce5e356dff3 --- /dev/null +++ b/obj/item/seeds/replicapod.html @@ -0,0 +1 @@ +/obj/item/seeds/replicapod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

replicapod

The actual replica pods themselves!

Procs

on_reagent_addHandles reagents getting added to this seed.
on_reagent_delHandles reagents being deleted from these seeds.
on_reagents_delHandles the seeds' reagents datum getting deleted.

Proc Details

on_reagent_add

Handles reagents getting added to this seed.

on_reagent_del

Handles reagents being deleted from these seeds.

on_reagents_del

Handles the seeds' reagents datum getting deleted.

\ No newline at end of file diff --git a/obj/item/sequence_scanner.html b/obj/item/sequence_scanner.html new file mode 100644 index 0000000000000..6cc0de5e4a76c --- /dev/null +++ b/obj/item/sequence_scanner.html @@ -0,0 +1 @@ +/obj/item/sequence_scanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sequence_scanner

Vars

genetic_makeup_buffergenetic makeup data that's scanned

Procs

gene_scanproc for scanning someone's mutations
makeup_scanproc for scanning someone's genetic makeup

Var Details

genetic_makeup_buffer

genetic makeup data that's scanned

Proc Details

gene_scan

proc for scanning someone's mutations

makeup_scan

proc for scanning someone's genetic makeup

\ No newline at end of file diff --git a/obj/item/serviette.html b/obj/item/serviette.html new file mode 100644 index 0000000000000..e926463cdfab4 --- /dev/null +++ b/obj/item/serviette.html @@ -0,0 +1 @@ +/obj/item/serviette - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

serviette

Vars

cleanspeedHow much time it takes to clean something using it
used_servietteWhich item spawns after it's used

Var Details

cleanspeed

How much time it takes to clean something using it

used_serviette

Which item spawns after it's used

\ No newline at end of file diff --git a/obj/item/serviette_pack.html b/obj/item/serviette_pack.html new file mode 100644 index 0000000000000..2b8cdfc91a82b --- /dev/null +++ b/obj/item/serviette_pack.html @@ -0,0 +1 @@ +/obj/item/serviette_pack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

serviette_pack

Vars

number_remainingA count of how many serviettes are left in the pack

Var Details

number_remaining

A count of how many serviettes are left in the pack

\ No newline at end of file diff --git a/obj/item/sharpener.html b/obj/item/sharpener.html new file mode 100644 index 0000000000000..c1d9fa4e577df --- /dev/null +++ b/obj/item/sharpener.html @@ -0,0 +1,2 @@ +/obj/item/sharpener - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Whetstone

Items used for sharpening stuff

+

Whetstones can be used to increase an item's force, throw_force and wound_bonus and it changes its sharpness to SHARP_EDGED. Whetstones do not work with energy weapons. Two-handed weapons will only get the throw_force bonus. A whetstone can only be used once.

Vars

incrementHow much force the whetstone can add to an item.
maxMaximum force sharpening items with the whetstone can result in
prefixThe prefix a whetstone applies when an item is sharpened with it
requires_sharpnessIf TRUE, the whetstone will only sharpen already sharp items
usesAmount of uses the whetstone has. Set to -1 for functionally infinite uses.

Var Details

increment

How much force the whetstone can add to an item.

max

Maximum force sharpening items with the whetstone can result in

prefix

The prefix a whetstone applies when an item is sharpened with it

requires_sharpness

If TRUE, the whetstone will only sharpen already sharp items

uses

Amount of uses the whetstone has. Set to -1 for functionally infinite uses.

\ No newline at end of file diff --git a/obj/item/sharpener/super.html b/obj/item/sharpener/super.html new file mode 100644 index 0000000000000..6bef3b6dcf4c9 --- /dev/null +++ b/obj/item/sharpener/super.html @@ -0,0 +1,2 @@ +/obj/item/sharpener/super - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Super whetstone

Extremely powerful admin-only whetstone

+

Whetstone that adds 200 damage to an item, with the maximum force and throw_force reachable with it being 200. As with normal whetstones, energy weapons cannot be sharpened with it and two-handed weapons will only get the throw_force bonus.

\ No newline at end of file diff --git a/obj/item/shield.html b/obj/item/shield.html new file mode 100644 index 0000000000000..b34a726103f8e --- /dev/null +++ b/obj/item/shield.html @@ -0,0 +1 @@ +/obj/item/shield - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shield

Vars

baton_bashbaton bash cooldown
breakable_by_damageif the shield will break by sustaining damage
is_bashableis shield bashable?
shield_bash_soundsound when a shield is bashed
shield_break_leftoverwhat the shield leaves behind when it breaks
shield_break_soundsound the shield makes when it breaks
transparentmakes beam projectiles pass through the shield

Var Details

baton_bash

baton bash cooldown

breakable_by_damage

if the shield will break by sustaining damage

is_bashable

is shield bashable?

shield_bash_sound

sound when a shield is bashed

shield_break_leftover

what the shield leaves behind when it breaks

shield_break_sound

sound the shield makes when it breaks

transparent

makes beam projectiles pass through the shield

\ No newline at end of file diff --git a/obj/item/shield/energy.html b/obj/item/shield/energy.html new file mode 100644 index 0000000000000..91b3a337e8c1a --- /dev/null +++ b/obj/item/shield/energy.html @@ -0,0 +1 @@ +/obj/item/shield/energy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

energy

Vars

active_forceForce of the shield when active.
active_throw_speedThrowspeed of ethe shield when active.
active_throwforceThrowforce of the shield when active.
can_clumsy_useWhether clumsy people can transform this without side effects.
reflection_probabilityThe chance for projectiles to be reflected by the shield

Var Details

active_force

Force of the shield when active.

active_throw_speed

Throwspeed of ethe shield when active.

active_throwforce

Throwforce of the shield when active.

can_clumsy_use

Whether clumsy people can transform this without side effects.

reflection_probability

The chance for projectiles to be reflected by the shield

\ No newline at end of file diff --git a/obj/item/shield/riot/flash.html b/obj/item/shield/riot/flash.html new file mode 100644 index 0000000000000..e0902befc372c --- /dev/null +++ b/obj/item/shield/riot/flash.html @@ -0,0 +1 @@ +/obj/item/shield/riot/flash - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

flash

Procs

flash_awayHandles calls for the actual flash object + plays the flashing animations.

Proc Details

flash_away

Handles calls for the actual flash object + plays the flashing animations.

\ No newline at end of file diff --git a/obj/item/shield/riot/tele.html b/obj/item/shield/riot/tele.html new file mode 100644 index 0000000000000..e2c9d06ff65bb --- /dev/null +++ b/obj/item/shield/riot/tele.html @@ -0,0 +1,2 @@ +/obj/item/shield/riot/tele - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

tele

Procs

on_transformSignal proc for COMSIG_TRANSFORMING_ON_TRANSFORM.

Proc Details

on_transform

Signal proc for COMSIG_TRANSFORMING_ON_TRANSFORM.

+

Allows it to be placed on back slot when active.

\ No newline at end of file diff --git a/obj/item/shockpaddles.html b/obj/item/shockpaddles.html new file mode 100644 index 0000000000000..d50d7580321ae --- /dev/null +++ b/obj/item/shockpaddles.html @@ -0,0 +1 @@ +/obj/item/shockpaddles - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

shockpaddles

Procs

do_cancelCalled whenever the paddles fail to shock something after a do_x proc
do_successCalled whenever the paddles successfully shock something

Proc Details

do_cancel

Called whenever the paddles fail to shock something after a do_x proc

do_success

Called whenever the paddles successfully shock something

\ No newline at end of file diff --git a/obj/item/shovel/giant_wrench.html b/obj/item/shovel/giant_wrench.html new file mode 100644 index 0000000000000..15aad5cfb12fd --- /dev/null +++ b/obj/item/shovel/giant_wrench.html @@ -0,0 +1 @@ +/obj/item/shovel/giant_wrench - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

giant_wrench

Vars

do_launchWether we knock down and launch away out enemies when we attack.
recoil_factorThe factor at which the recoil becomes less.

Procs

on_transformUsed when the tool is transformed through the transforming component.

Var Details

do_launch

Wether we knock down and launch away out enemies when we attack.

recoil_factor

The factor at which the recoil becomes less.

Proc Details

on_transform

Used when the tool is transformed through the transforming component.

\ No newline at end of file diff --git a/obj/item/shuttle_curse.html b/obj/item/shuttle_curse.html new file mode 100644 index 0000000000000..a6a13a25deece --- /dev/null +++ b/obj/item/shuttle_curse.html @@ -0,0 +1 @@ +/obj/item/shuttle_curse - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shuttle_curse

Vars

first_curse_timewhen was the first shuttle curse?
remaining_cursescurse messages that have already been used
totalcurseshow many times has the shuttle been cursed so far?

Var Details

first_curse_time

when was the first shuttle curse?

remaining_curses

curse messages that have already been used

totalcurses

how many times has the shuttle been cursed so far?

\ No newline at end of file diff --git a/obj/item/sign.html b/obj/item/sign.html new file mode 100644 index 0000000000000..dcd563a53efd2 --- /dev/null +++ b/obj/item/sign.html @@ -0,0 +1 @@ +/obj/item/sign - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sign

Vars

is_editableThis determines if you can select this sign type when using a pen on a sign backing. False by default, set to true per sign type to override.
sign_pathThe type of sign structure that will be created when placed on a turf, the default looks just like a sign backing item.

Var Details

is_editable

This determines if you can select this sign type when using a pen on a sign backing. False by default, set to true per sign type to override.

sign_path

The type of sign structure that will be created when placed on a turf, the default looks just like a sign backing item.

\ No newline at end of file diff --git a/obj/item/sign/flag.html b/obj/item/sign/flag.html new file mode 100644 index 0000000000000..69f77ead7e3dd --- /dev/null +++ b/obj/item/sign/flag.html @@ -0,0 +1,3 @@ +/obj/item/sign/flag - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

flag

Procs

InitializeSince all of the signs rotate themselves on initialisation, this made folded flags look ugly (and more importantly rotated). +And thus, it gets removed to make them aesthetically pleasing once again.

Proc Details

Initialize

Since all of the signs rotate themselves on initialisation, this made folded flags look ugly (and more importantly rotated). +And thus, it gets removed to make them aesthetically pleasing once again.

\ No newline at end of file diff --git a/obj/item/singularityhammer.html b/obj/item/singularityhammer.html new file mode 100644 index 0000000000000..e75065c055733 --- /dev/null +++ b/obj/item/singularityhammer.html @@ -0,0 +1 @@ +/obj/item/singularityhammer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

singularityhammer

Vars

chargedIs it able to pull shit right now?

Var Details

charged

Is it able to pull shit right now?

\ No newline at end of file diff --git a/obj/item/skillchip.html b/obj/item/skillchip.html new file mode 100644 index 0000000000000..b8d92aeb52b97 --- /dev/null +++ b/obj/item/skillchip.html @@ -0,0 +1,81 @@ +/obj/item/skillchip - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

skillchip

Vars

abstract_parent_typeUsed to determine if this is an abstract type or not. +If this is meant to be an abstract type, set it to the type's path. +Will be overridden by subsequent abstract parents.
activate_messageMessage shown when activating the chip
activeSet to TRUE when the skill chip's effects are applied. Set to FALSE when they're not.
auto_traitsTraits automatically granted by this chip, optional. Lazylist.
chip_categoryCategory string. Used alongside SKILLCHIP_RESTRICTED_CATEGORIES flag to make a chip incompatible with chips from another category.
chip_cooldownCooldown for chip actions.
complexityHow complex the skillchip is. Brains can only handle so much complexity at once and skillchips will start to deactivate when the brain's complexity limit is exceeded.
cooldownCooldown before the skillchip can be extracted after it has been implanted.
deactivate_messageMessage shown when deactivating the chip
holding_brainBrain that holds this skillchip.
incompatibility_listList of any incompatible categories.
skill_descriptionSkill description shown on UI
skill_iconFontawesome icon show on UI, list of possible icons https://fontawesome.com/icons?d=gallery&m=free
skill_nameSkill name shown on UI
skillchip_flagsVariable for flags. DANGEROUS - Child types overwrite flags instead of adding to them. If you change this, make sure all child types have the appropriate flags set too.
slot_useHow many slots taken up in the brain by this chip. Max brain slots are hard set and should not be changed at all.

Procs

get_chip_dataReturns a list of basic chip info. Used by the skill station.
get_complexityReturns the chip's complexity.
get_metadataGets key metadata from this skillchip in an assoc list.
has_activate_incompatibilityChecks whether a given skillchip has an incompatibility with a brain that should render it impossible +to activate.
has_brain_incompatibilityPerforms a full sweep of checks that dictate if this chip can be implanted in a given brain.
has_mob_incompatibilityPerforms a full sweep of checks that dictate if this chip can be implanted in a given target.
has_skillchip_incompatibilityChecks for skillchip incompatibility with another chip.
is_activeReturns whether the chip is active.
is_on_cooldownReturns whether the chip is on cooldown. Chips ordinarily go on cooldown when activated.
on_activateCalled when a skillchip is activated.
on_deactivateCalled when a skillchip is deactivated.
on_implantCalled when a skillchip is inserted in a user's brain.
on_removalCalled when a skillchip is removed from the user's brain.
set_metadataSets key metadata for this skillchip from an assoc list.
try_activate_skillchipActivates the skillchip, if possible.
try_deactivate_skillchipDeactivates the skillchip, if possible.

Var Details

abstract_parent_type

Used to determine if this is an abstract type or not. +If this is meant to be an abstract type, set it to the type's path. +Will be overridden by subsequent abstract parents.

activate_message

Message shown when activating the chip

active

Set to TRUE when the skill chip's effects are applied. Set to FALSE when they're not.

auto_traits

Traits automatically granted by this chip, optional. Lazylist.

chip_category

Category string. Used alongside SKILLCHIP_RESTRICTED_CATEGORIES flag to make a chip incompatible with chips from another category.

chip_cooldown

Cooldown for chip actions.

complexity

How complex the skillchip is. Brains can only handle so much complexity at once and skillchips will start to deactivate when the brain's complexity limit is exceeded.

cooldown

Cooldown before the skillchip can be extracted after it has been implanted.

deactivate_message

Message shown when deactivating the chip

holding_brain

Brain that holds this skillchip.

incompatibility_list

List of any incompatible categories.

skill_description

Skill description shown on UI

skill_icon

Fontawesome icon show on UI, list of possible icons https://fontawesome.com/icons?d=gallery&m=free

skill_name

Skill name shown on UI

skillchip_flags

Variable for flags. DANGEROUS - Child types overwrite flags instead of adding to them. If you change this, make sure all child types have the appropriate flags set too.

slot_use

How many slots taken up in the brain by this chip. Max brain slots are hard set and should not be changed at all.

Proc Details

get_chip_data

Returns a list of basic chip info. Used by the skill station.

get_complexity

Returns the chip's complexity.

+

Intended to be overriden.

get_metadata

Gets key metadata from this skillchip in an assoc list.

+

If you override this proc, don't forget to also override set_metadata, which takes the output of +this proc and uses it to set the metadata. +Does not copy over any owner or brain status. Handle that externally.

has_activate_incompatibility

Checks whether a given skillchip has an incompatibility with a brain that should render it impossible +to activate.

+

Returns a string with an explanation if the chip is not activatable. FALSE otherwise. +Arguments:

+
    +
  • skillchip - The skillchip you're intending to activate. Does not activate the chip.
  • +

has_brain_incompatibility

Performs a full sweep of checks that dictate if this chip can be implanted in a given brain.

+

Override this with any snowflake chip checks. +Returns TRUE if the chip is fully compatible, FALSE otherwise. +Arguments:

+
    +
  • brain - The brain to check for implantability with.
  • +

has_mob_incompatibility

Performs a full sweep of checks that dictate if this chip can be implanted in a given target.

+

Override this with any snowflake chip checks. An example of which would be checking if a target is +mindshielded if you've got a special security skillchip. +Returns a string with an incompatibility explanation if the chip is not compatible, returns FALSE +if it is compatible. +Arguments:

+
    +
  • target - The mob to check for implantability with.
  • +

has_skillchip_incompatibility

Checks for skillchip incompatibility with another chip.

+

Does this skillchip have incompatibility with the skillchip in the args? +Override this with any snowflake chip-vs-chip incompatibility checks. +Returns a string with an incompatibility explanation if the chip is not compatible, returns FALSE +if it is compatible. +Arguments:

+
    +
  • skillchip - The skillchip to test for incompatability.
  • +

is_active

Returns whether the chip is active.

+

Intended to be overriden. +Returns TRUE if the chip is active.

is_on_cooldown

Returns whether the chip is on cooldown. Chips ordinarily go on cooldown when activated.

+

This does not mean the chip should be impossible to do anything with. +It's up to each individual piece of code to decide what it does with the result of this proc.

+

Returns TRUE if the chip's extraction cooldown hasn't yet passed.

on_activate

Called when a skillchip is activated.

+

Arguments:

+
    +
  • user - The user to apply skillchip effects to.
  • +
  • silent - Boolean. Whether or not an activation message should be shown to the user.
  • +

on_deactivate

Called when a skillchip is deactivated.

+

Arguments:

+
    +
  • user - The user to remove skillchip effects from.
  • +
  • silent - Boolean. Whether or not a deactivation message should be shown to the user.
  • +

on_implant

Called when a skillchip is inserted in a user's brain.

+

Arguments:

+
    +
  • owner_brain - The brain that this skillchip was implanted in to.
  • +

on_removal

Called when a skillchip is removed from the user's brain.

+

Always deactivates the skillchip. +Arguments:

+
    +
  • user - The user to remove skillchip effects from.
  • +
  • silent - Boolean. Whether or not a deactivation message should be shown to the user.
  • +

set_metadata

Sets key metadata for this skillchip from an assoc list.

+

Best used with the output from get_metadata() of another chip. +If you override this proc, don't forget to also override get_metadata, which is where you should +usually get the assoc list that feeds into this proc. +Does not set any owner or brain status. Handle that externally. +Arguments: +metadata - Ideally the output of another chip's get_metadata proc. Assoc list of metadata.

try_activate_skillchip

Activates the skillchip, if possible.

+

Returns a message containing the reason if activation is not possible. +Arguments:

+
    +
  • silent - Boolean. Whether or not an activation message should be shown to the user.
  • +
  • force - Boolean. Whether or not to just force de-activation if it would be prevented for any reason.
  • +

try_deactivate_skillchip

Deactivates the skillchip, if possible.

+

Returns a message containing the reason if deactivation is not possible. +Arguments:

+
    +
  • silent - Boolean. Whether or not an activation message should be shown to the user.
  • +
  • force - Boolean. Whether or not to just force de-activation if it would be prevented for any reason.
  • +
\ No newline at end of file diff --git a/obj/item/skillchip/big_pointer.html b/obj/item/skillchip/big_pointer.html new file mode 100644 index 0000000000000..9ed1b160710c8 --- /dev/null +++ b/obj/item/skillchip/big_pointer.html @@ -0,0 +1,2 @@ +/obj/item/skillchip/big_pointer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

big_pointer

A skillchip that gives the user bigger arrows when pointing at things (like some id trims do). +As a bonus, they can costumize the color of the arrow/pointer too.

Vars

actionThe action for changing the pointer color

Var Details

action

The action for changing the pointer color

\ No newline at end of file diff --git a/obj/item/skillchip/job/chef.html b/obj/item/skillchip/job/chef.html new file mode 100644 index 0000000000000..7f4c4ed7f8b2f --- /dev/null +++ b/obj/item/skillchip/job/chef.html @@ -0,0 +1 @@ +/obj/item/skillchip/job/chef - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chef

Vars

styleThe Chef CQC given by the skillchip.

Var Details

style

The Chef CQC given by the skillchip.

\ No newline at end of file diff --git a/obj/item/skillchip/matrix_taunt.html b/obj/item/skillchip/matrix_taunt.html new file mode 100644 index 0000000000000..b42a244657f95 --- /dev/null +++ b/obj/item/skillchip/matrix_taunt.html @@ -0,0 +1 @@ +/obj/item/skillchip/matrix_taunt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

matrix_taunt

Procs

check_if_we_can_tauntPrevent players from stamcritting from INTENTIONAL flips. 1.4s of bullet immunity isn't worth several secs of stun.

Proc Details

check_if_we_can_taunt

Prevent players from stamcritting from INTENTIONAL flips. 1.4s of bullet immunity isn't worth several secs of stun.

\ No newline at end of file diff --git a/obj/item/sliced_pipe.html b/obj/item/sliced_pipe.html new file mode 100644 index 0000000000000..f668519ad5c7d --- /dev/null +++ b/obj/item/sliced_pipe.html @@ -0,0 +1 @@ +/obj/item/sliced_pipe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sliced_pipe

Vars

allowedTypecache of items we are allowed to stuff into the pipebomb for effects, only add items with effects
allowed_activatorsA static list of types of assemblies that are allowed to be used to finish the bomb
fuel_powerStatic list of reagent to explosive power
powerExplosion power to be transferred to the new pipebomb
wires_are_inAre wires inserted? If so, we are on the final step

Var Details

allowed

Typecache of items we are allowed to stuff into the pipebomb for effects, only add items with effects

allowed_activators

A static list of types of assemblies that are allowed to be used to finish the bomb

fuel_power

Static list of reagent to explosive power

power

Explosion power to be transferred to the new pipebomb

wires_are_in

Are wires inserted? If so, we are on the final step

\ No newline at end of file diff --git a/obj/item/slime_extract.html b/obj/item/slime_extract.html new file mode 100644 index 0000000000000..5afab8407bd03 --- /dev/null +++ b/obj/item/slime_extract.html @@ -0,0 +1,8 @@ +/obj/item/slime_extract - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

slime_extract

Slime Extracts

Vars

activate_reagentsReagents required for activation
crossbreed_modificationWhich type of crossbred
extract_usesuses before it goes inert
qdel_timerdeletion timer, for delayed reactions

Procs

activateEffect when activated by a Luminescent.
attackCore-crossing: Feeding adult slimes extracts to obtain a much more powerful, single extract.

Var Details

activate_reagents

Reagents required for activation

crossbreed_modification

Which type of crossbred

extract_uses

uses before it goes inert

qdel_timer

deletion timer, for delayed reactions

Proc Details

activate

Effect when activated by a Luminescent.

+

This proc is called whenever a Luminescent consumes a slime extract. Each one is separated into major and minor effects depending on the extract. Cooldown is measured in deciseconds.

+
    +
  • arg1 - The mob absorbing the slime extract.
  • +
  • arg2 - The valid species for the absorbtion. Should always be a Luminescent unless something very major has changed.
  • +
  • arg3 - Whether or not the activation is major or minor. Major activations have large, complex effects, minor are simple.
  • +

attack

Core-crossing: Feeding adult slimes extracts to obtain a much more powerful, single extract.

+

By using a valid core on a living adult slime, then feeding it nine more of the same type, you can mutate it into more useful items. Not every slime type has an implemented core cross.

\ No newline at end of file diff --git a/obj/item/slimecross/burning/oil.html b/obj/item/slimecross/burning/oil.html new file mode 100644 index 0000000000000..ab2c55b637040 --- /dev/null +++ b/obj/item/slimecross/burning/oil.html @@ -0,0 +1 @@ +/obj/item/slimecross/burning/oil - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

oil

Procs

boomInflicts a blastwave upon every mob within a small radius.

Proc Details

boom

Inflicts a blastwave upon every mob within a small radius.

\ No newline at end of file diff --git a/obj/item/slimecross/stabilized.html b/obj/item/slimecross/stabilized.html new file mode 100644 index 0000000000000..a9682f2ffc7a8 --- /dev/null +++ b/obj/item/slimecross/stabilized.html @@ -0,0 +1,3 @@ +/obj/item/slimecross/stabilized - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

stabilized

Procs

get_held_mobReturns the mob that is currently holding us if we are either in their inventory or a backpack analogue. +Returns null if it's in an invalid location, so that we can check explicitly for null later.

Proc Details

get_held_mob

Returns the mob that is currently holding us if we are either in their inventory or a backpack analogue. +Returns null if it's in an invalid location, so that we can check explicitly for null later.

\ No newline at end of file diff --git a/obj/item/slimepotion.html b/obj/item/slimepotion.html new file mode 100644 index 0000000000000..0a28754aa8663 --- /dev/null +++ b/obj/item/slimepotion.html @@ -0,0 +1,6 @@ +/obj/item/slimepotion - /tg/ Station 13
/tg/ Station 13 - Modules - Types

slimepotion

Slime-derived potions +#Slime potions

+

Feed slimes potions either by hand or using the slime console.

+

Slime potions either augment the slime's behavior, its extract output, or its intelligence. These all come either from extract effects or cross cores. +A few of the more powerful ones can modify someone's equipment or gender. +New ones should probably be accessible only through cross cores as all the normal core types already have uses. Rule of thumb is 'stronger effects go in cross cores'.

\ No newline at end of file diff --git a/obj/item/slimepotion/slime/sentience.html b/obj/item/slimepotion/slime/sentience.html new file mode 100644 index 0000000000000..0e80e32a58118 --- /dev/null +++ b/obj/item/slimepotion/slime/sentience.html @@ -0,0 +1 @@ +/obj/item/slimepotion/slime/sentience - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sentience

Vars

being_usedAre we being offered to a mob, and therefore is a ghost poll currently in progress for the sentient mob?
potion_reasonReason for offering potion. This will be displayed in the poll alert to ghosts.

Procs

on_poll_concludedAssign the chosen ghost to the mob

Var Details

being_used

Are we being offered to a mob, and therefore is a ghost poll currently in progress for the sentient mob?

potion_reason

Reason for offering potion. This will be displayed in the poll alert to ghosts.

Proc Details

on_poll_concluded

Assign the chosen ghost to the mob

\ No newline at end of file diff --git a/obj/item/slimepotion/slime/sentience/mining.html b/obj/item/slimepotion/slime/sentience/mining.html new file mode 100644 index 0000000000000..8753f431219a0 --- /dev/null +++ b/obj/item/slimepotion/slime/sentience/mining.html @@ -0,0 +1 @@ +/obj/item/slimepotion/slime/sentience/mining - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mining

Vars

base_cooldown_addcooldown boost to add
base_damage_adddamage boost to add
base_health_addhealth boost to add
base_speed_addspeed boost to add

Var Details

base_cooldown_add

cooldown boost to add

base_damage_add

damage boost to add

base_health_add

health boost to add

base_speed_add

speed boost to add

\ No newline at end of file diff --git a/obj/item/smelling_salts.html b/obj/item/smelling_salts.html new file mode 100644 index 0000000000000..c12103a1e69ed --- /dev/null +++ b/obj/item/smelling_salts.html @@ -0,0 +1 @@ +/obj/item/smelling_salts - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

smelling_salts

Procs

try_reviveIf the right conditions are present (basically could this person be defibrilated), revives the target

Proc Details

try_revive

If the right conditions are present (basically could this person be defibrilated), revives the target

\ No newline at end of file diff --git a/obj/item/soap.html b/obj/item/soap.html new file mode 100644 index 0000000000000..48fe90ff49b28 --- /dev/null +++ b/obj/item/soap.html @@ -0,0 +1,8 @@ +/obj/item/soap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

soap

Procs

decreaseUsesDecrease the number of uses the bar of soap has.

Proc Details

decreaseUses

Decrease the number of uses the bar of soap has.

+

The higher the cleaning skill, the less likely the soap will lose a use. +Arguments

+
    +
  • source - the source of the cleaning
  • +
  • target - The atom that is being cleaned
  • +
  • user - The mob that is using the soap to clean.
  • +
\ No newline at end of file diff --git a/obj/item/solfed_reporter.html b/obj/item/solfed_reporter.html new file mode 100644 index 0000000000000..94c0a0fd7a2ee --- /dev/null +++ b/obj/item/solfed_reporter.html @@ -0,0 +1 @@ +/obj/item/solfed_reporter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

solfed_reporter

Vars

activatedWas the reporter turned on?
amount_to_summonHow many ghosts should we pick from the applicants to become members of the squad?
announcement_messageWhat announcement message should be displayed if the vote succeeds?
announcement_sourceWhat source should be supplied for the announcement message?
cell_phone_numberWhat name and ID should be on the cell phone given to the squad members?
fine_stationShould the station be issued a fine when the vote completes?
ghost_poll_msgWhat poll message should we show to the ghosts when they are asked to join the squad?
jobban_to_checkWhat jobban should we be checking for the ghost polling?
summoned_typeWhat table should be be incrementing amount in in the solfed responders global?
type_of_callersWhat table should we be incrementing votes in and checking against in the solfed responders global?
type_to_checkWhat antagonist should be required to use the reporter?
type_to_summonWhat antagonist type should we give to the ghosts?

Var Details

activated

Was the reporter turned on?

amount_to_summon

How many ghosts should we pick from the applicants to become members of the squad?

announcement_message

What announcement message should be displayed if the vote succeeds?

announcement_source

What source should be supplied for the announcement message?

cell_phone_number

What name and ID should be on the cell phone given to the squad members?

fine_station

Should the station be issued a fine when the vote completes?

ghost_poll_msg

What poll message should we show to the ghosts when they are asked to join the squad?

jobban_to_check

What jobban should we be checking for the ghost polling?

summoned_type

What table should be be incrementing amount in in the solfed responders global?

type_of_callers

What table should we be incrementing votes in and checking against in the solfed responders global?

type_to_check

What antagonist should be required to use the reporter?

type_to_summon

What antagonist type should we give to the ghosts?

\ No newline at end of file diff --git a/obj/item/soulscythe.html b/obj/item/soulscythe.html new file mode 100644 index 0000000000000..03d348a99da60 --- /dev/null +++ b/obj/item/soulscythe.html @@ -0,0 +1 @@ +/obj/item/soulscythe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

soulscythe

Vars

attack_cooldownCooldown between attacks
chargingCurrently charging?
move_cooldownCooldown between moves
soulSoulscythe mob in the scythe
usingAre we grabbing a spirit?

Procs

on_poll_concludedGhost poll has concluded and a candidate has been chosen.

Var Details

attack_cooldown

Cooldown between attacks

charging

Currently charging?

move_cooldown

Cooldown between moves

soul

Soulscythe mob in the scythe

using

Are we grabbing a spirit?

Proc Details

on_poll_concluded

Ghost poll has concluded and a candidate has been chosen.

\ No newline at end of file diff --git a/obj/item/soulstone.html b/obj/item/soulstone.html new file mode 100644 index 0000000000000..1e229c93bb515 --- /dev/null +++ b/obj/item/soulstone.html @@ -0,0 +1,21 @@ +/obj/item/soulstone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

soulstone

Vars

base_nameThe base name of the soulstone, set to the initial name by default. Used in name updating
grab_sleepingif TRUE, our soulstone will work on mobs which are in crit. if FALSE, the mob must be dead.
one_useif TRUE, we can only be used once.
required_roleRole check, if any needed
spentOnly used if one_use is TRUE. Whether it's used.
themeThis controls the color of the soulstone as well as restrictions for who can use it. +THEME_CULT is red and is the default of cultist +THEME_WIZARD is purple and is the default of wizard +THEME_HOLY is for purified soul stone

Procs

assign_masterAssigns the bearer as the new master of a shade.
attackCapturing
attack_selfOptions for using captured souls
attempt_exorcismattempt_exorcism: called from on_bible_smacked, takes time and if successful +resets the item to a pre-possessed state
capture_shadecaptures a shade that was previously released from a soulstone.
capture_soulProcs for moving soul in and out off stone +Transfer the mind of a carbon mob (which is then dusted) into a shade mob inside src. +If forced, sacrificial and stat checks are skipped.
corruptcorrupt: turns the soulstone into a cult one and turns the occupant shade, if any, into a cultist
init_shadeCreates a new shade mob to inhabit the stone.
on_bible_smackedsignal called whenever a soulstone is smacked by a bible
on_poll_concludedCalled when a ghost is chosen to become a shade.
on_release_spiritsCalled whenever the soulstone releases a shade from it.
role_checkChecks if the passed mob has the required antag datum set on the soulstone.
transfer_to_constructtransfer the mind of the shade to a construct mob selected by the user, then deletes both the shade and src.

Var Details

base_name

The base name of the soulstone, set to the initial name by default. Used in name updating

grab_sleeping

if TRUE, our soulstone will work on mobs which are in crit. if FALSE, the mob must be dead.

one_use

if TRUE, we can only be used once.

required_role

Role check, if any needed

spent

Only used if one_use is TRUE. Whether it's used.

theme

This controls the color of the soulstone as well as restrictions for who can use it. +THEME_CULT is red and is the default of cultist +THEME_WIZARD is purple and is the default of wizard +THEME_HOLY is for purified soul stone

Proc Details

assign_master

Assigns the bearer as the new master of a shade.

attack

Capturing

attack_self

Options for using captured souls

attempt_exorcism

attempt_exorcism: called from on_bible_smacked, takes time and if successful +resets the item to a pre-possessed state

+

Arguments:

+
    +
  • exorcist: user who is attempting to remove the spirit
  • +

capture_shade

captures a shade that was previously released from a soulstone.

capture_soul

Procs for moving soul in and out off stone +Transfer the mind of a carbon mob (which is then dusted) into a shade mob inside src. +If forced, sacrificial and stat checks are skipped.

corrupt

corrupt: turns the soulstone into a cult one and turns the occupant shade, if any, into a cultist

init_shade

Creates a new shade mob to inhabit the stone.

+

victim - the body that's being shaded +user - the person doing the shading. Optional. +message_user - if TRUE, we send the user (if present) a message that a shade has been created / captured. +shade_controller - the mob (usually, a ghost) that will take over control of the victim / new shade. Optional, if not passed the victim itself will take control.

on_bible_smacked

signal called whenever a soulstone is smacked by a bible

on_poll_concluded

Called when a ghost is chosen to become a shade.

on_release_spirits

Called whenever the soulstone releases a shade from it.

role_check

Checks if the passed mob has the required antag datum set on the soulstone.

transfer_to_construct

transfer the mind of the shade to a construct mob selected by the user, then deletes both the shade and src.

\ No newline at end of file diff --git a/obj/item/spanking_pad.html b/obj/item/spanking_pad.html new file mode 100644 index 0000000000000..5b8206c2be00e --- /dev/null +++ b/obj/item/spanking_pad.html @@ -0,0 +1 @@ +/obj/item/spanking_pad - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spanking_pad

Vars

color_changedIf the color has been changed before
current_colorCurrent color, can be changed and affects sprite
spankpad_designsA list of all designs for the color choice radial menu

Procs

check_menuA check to ensure the user can use the radial menu
populate_spankpad_designsCreate the designs for the radial menu

Var Details

color_changed

If the color has been changed before

current_color

Current color, can be changed and affects sprite

spankpad_designs

A list of all designs for the color choice radial menu

Proc Details

check_menu

A check to ensure the user can use the radial menu

populate_spankpad_designs

Create the designs for the radial menu

\ No newline at end of file diff --git a/obj/item/sparkler.html b/obj/item/sparkler.html new file mode 100644 index 0000000000000..af2d483922ae6 --- /dev/null +++ b/obj/item/sparkler.html @@ -0,0 +1 @@ +/obj/item/sparkler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sparkler

Vars

burntimeBurn time in seconds

Var Details

burntime

Burn time in seconds

\ No newline at end of file diff --git a/obj/item/sparring_contract.html b/obj/item/sparring_contract.html new file mode 100644 index 0000000000000..b506b209e3fc2 --- /dev/null +++ b/obj/item/sparring_contract.html @@ -0,0 +1 @@ +/obj/item/sparring_contract - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sparring_contract

Vars

arena_conditionwhat arena the fight will take place in
signed_bywho has signed this contract. fills itself with WEAKREFS, to prevent hanging references
stakes_conditionwhat stakes the fight will have
weapons_conditionwhat weapons will be allowed during the sparring match

Var Details

arena_condition

what arena the fight will take place in

signed_by

who has signed this contract. fills itself with WEAKREFS, to prevent hanging references

stakes_condition

what stakes the fight will have

weapons_condition

what weapons will be allowed during the sparring match

\ No newline at end of file diff --git a/obj/item/spear.html b/obj/item/spear.html new file mode 100644 index 0000000000000..e189845b4572c --- /dev/null +++ b/obj/item/spear.html @@ -0,0 +1 @@ +/obj/item/spear - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spear

Vars

force_unwieldedHow much damage to do unwielded
force_wieldedHow much damage to do wielded
icon_prefixThe icon prefix for this flavor of spear
war_cryFor explosive spears, what we cry out when we use this to bap someone

Var Details

force_unwielded

How much damage to do unwielded

force_wielded

How much damage to do wielded

icon_prefix

The icon prefix for this flavor of spear

war_cry

For explosive spears, what we cry out when we use this to bap someone

\ No newline at end of file diff --git a/obj/item/spellbook.html b/obj/item/spellbook.html new file mode 100644 index 0000000000000..3f7423ce9ed09 --- /dev/null +++ b/obj/item/spellbook.html @@ -0,0 +1,6 @@ +/obj/item/spellbook - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spellbook

Vars

entriesA list to all spellbook entries within
full_random_bonusThe bonus that you get from going full random.
ownerThe mind that first used the book. Automatically assigned when a wizard spawns.
refunds_allowedDetermines if this spellbook can refund anything.
semi_random_bonusThe bonus that you get from going semi-random.
usesThe number of book charges we have to buy spells

Procs

on_magic_chargeSignal proc for COMSIG_ITEM_MAGICALLY_CHARGED
prepare_spellsInstantiates our list of spellbook entries.
purchase_entryAttempts to purchased the passed entry [to_buy] for [user].
randomizePurchases a fully random wizard loadout for [wizard], with a point bonus [bonus_to_give]. +If passed a number [bonus_to_give], the wizard is given additional uses on their spellbook, used in randomization.
semirandomizePurchases a semi-random wizard loadout for [wizard] +If passed a number [bonus_to_give], the wizard is given additional uses on their spellbook, used in randomization.
wizard_loadoutPurchases a wizard loadout [loadout] for [wizard].

Var Details

entries

A list to all spellbook entries within

full_random_bonus

The bonus that you get from going full random.

owner

The mind that first used the book. Automatically assigned when a wizard spawns.

refunds_allowed

Determines if this spellbook can refund anything.

semi_random_bonus

The bonus that you get from going semi-random.

uses

The number of book charges we have to buy spells

Proc Details

on_magic_charge

Signal proc for COMSIG_ITEM_MAGICALLY_CHARGED

+

Has no effect on charge, but gives a funny message to people who think they're clever.

prepare_spells

Instantiates our list of spellbook entries.

purchase_entry

Attempts to purchased the passed entry [to_buy] for [user].

randomize

Purchases a fully random wizard loadout for [wizard], with a point bonus [bonus_to_give]. +If passed a number [bonus_to_give], the wizard is given additional uses on their spellbook, used in randomization.

semirandomize

Purchases a semi-random wizard loadout for [wizard] +If passed a number [bonus_to_give], the wizard is given additional uses on their spellbook, used in randomization.

wizard_loadout

Purchases a wizard loadout [loadout] for [wizard].

\ No newline at end of file diff --git a/obj/item/spess_knife.html b/obj/item/spess_knife.html new file mode 100644 index 0000000000000..38864a45b79c7 --- /dev/null +++ b/obj/item/spess_knife.html @@ -0,0 +1 @@ +/obj/item/spess_knife - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spess_knife

Vars

optionsRadial menu tool options
wrong_tool_probChance to select wrong tool

Procs

pick_toolUsed to pick random tool behavior for the knife
update_tool_parametersUsed to update sounds and tool parameters during switching

Var Details

options

Radial menu tool options

wrong_tool_prob

Chance to select wrong tool

Proc Details

pick_tool

Used to pick random tool behavior for the knife

update_tool_parameters

Used to update sounds and tool parameters during switching

\ No newline at end of file diff --git a/obj/item/stack.html b/obj/item/stack.html new file mode 100644 index 0000000000000..d8b00cd35d944 --- /dev/null +++ b/obj/item/stack.html @@ -0,0 +1,90 @@ +/obj/item/stack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

stack

Vars

absorption_capacityHow much blood flow this stack can absorb if used as a bandage on a cut wound. +note that absorption is how much we lower the flow rate, not the raw amount of blood we suck up
absorption_rateHow quickly we lower the blood flow on a cut wound we're bandaging. +Expected lifetime of this bandage in seconds is thus absorption_capacity/absorption_rate, +or until the cut heals, whichever comes first
amountHow much is in this stack?
burn_cleanliness_bonusLike splint_factor but for burns instead of bone wounds. This is a multiplier used to speed up burn recoveries
costRelated to above. How much energy it costs from storage to use stack items
full_w_classThe weight class the stack has at amount > 2/3rds max_amount
has_unique_girderDoes this stack require a unique girder in order to make a wall?
is_cyborgIf TRUE, this stack is a module used by a cyborg (doesn't run out like normal / etc)
material_typeDatum material type that this stack is made of
mats_per_unitList that tells you how much is in a single unit.
matter_amountAmount of matter given back to RCDs
max_amountHow much is allowed in this stack?
merge_typeThis path and its children should merge with this stack, defaults to src.type
novariantsDetermines whether the item should update its sprites based on amount.
radial_radiusIf use_radial is TRUE, this is the radius of the radial
recipesA list to all recipies this stack item can create.
singular_nameWhat's the name of just 1 of this stack. You have a stack of leather, but one piece of leather
sourceRelated to above. If present, the energy we draw from when using stack items, for cyborgs
splint_factorIf set and this used as a splint for a broken bone wound, +This is used as a multiplier for applicable slowdowns (lower = better) (also for speeding up burn recoveries)
stairs_typeWhat typepath stairs do we create from this stack
tableVariantWhat typepath table we create from this stack
use_radialIf TRUE, we'll use a radial instead when displaying recipes

Procs

add
build_recipeReturns a list of properties of a given recipe
building_checksChecks if we can build here, validly.
can_merge
get_gauze_descriptionReturns the name of ourself when used in a "owner is [usage_prefix] by [name]" examine_more situation
get_gauze_usage_prefixReturns the usage prefix of ourself when used in a "owner is [usage_prefix] by [name]" examine_more situation
is_valid_recipeChecks if the recipe is valid to be used
is_zero_amountReturns TRUE if the item stack is the equivalent of a 0 amount item.
make_itemMakes the item with the given recipe.
mergeMerges as much of src into target_stack as possible. If present, the limit arg overrides target_stack.max_amount for transfer.
merge_without_delMerges as much of src into target_stack as possible. If present, the limit arg overrides target_stack.max_amount for transfer.
on_item_craftedRun special logic on created items after they've been successfully crafted.
on_movable_entered_occupied_turfSignal handler for connect_loc element. Called when a movable enters the turf we're currently occupying. Merges if possible.
radial_checkUsed as a callback for radial building.
recursively_build_recipesBuilds all recipes in a given recipe list and returns an association list containing them
set_custom_materialsOverride to make things like metalgen accurately set custom materials
set_mats_per_unit
show_construction_radialShows a radial consisting of every radial recipe we have in our list.
split_stack
update_custom_materialsUpdates the custom materials list of this stack.

Var Details

absorption_capacity

How much blood flow this stack can absorb if used as a bandage on a cut wound. +note that absorption is how much we lower the flow rate, not the raw amount of blood we suck up

absorption_rate

How quickly we lower the blood flow on a cut wound we're bandaging. +Expected lifetime of this bandage in seconds is thus absorption_capacity/absorption_rate, +or until the cut heals, whichever comes first

amount

How much is in this stack?

burn_cleanliness_bonus

Like splint_factor but for burns instead of bone wounds. This is a multiplier used to speed up burn recoveries

cost

Related to above. How much energy it costs from storage to use stack items

full_w_class

The weight class the stack has at amount > 2/3rds max_amount

has_unique_girder

Does this stack require a unique girder in order to make a wall?

is_cyborg

If TRUE, this stack is a module used by a cyborg (doesn't run out like normal / etc)

material_type

Datum material type that this stack is made of

mats_per_unit

List that tells you how much is in a single unit.

matter_amount

Amount of matter given back to RCDs

max_amount

How much is allowed in this stack?

merge_type

This path and its children should merge with this stack, defaults to src.type

novariants

Determines whether the item should update its sprites based on amount.

radial_radius

If use_radial is TRUE, this is the radius of the radial

recipes

A list to all recipies this stack item can create.

singular_name

What's the name of just 1 of this stack. You have a stack of leather, but one piece of leather

source

Related to above. If present, the energy we draw from when using stack items, for cyborgs

splint_factor

If set and this used as a splint for a broken bone wound, +This is used as a multiplier for applicable slowdowns (lower = better) (also for speeding up burn recoveries)

stairs_type

What typepath stairs do we create from this stack

tableVariant

What typepath table we create from this stack

use_radial

If TRUE, we'll use a radial instead when displaying recipes

Proc Details

add

    +
  • +

    Adds some number of units to this stack.

    +
  • +
  • +

    Arguments:

    +
  • +
  • +
      +
    • _amount: The number of units to add to this stack.
    • +
    +
  • +

build_recipe

Returns a list of properties of a given recipe

+

Arguments:

+
    +
  • R - The stack recipe we are using to get a list of properties
  • +

building_checks

Checks if we can build here, validly.

can_merge

    +
  • +

    Checks whether this stack can merge itself into another stack.

    +
  • +
  • +

    Arguments:

    +
  • +
  • +
      +
    • check: The stack to check for mergeability.
    • +
    +
  • +
  • +
      +
    • [inhand][boolean]: Whether or not the stack to check should act like it's in a mob's hand.
    • +
    +
  • +

get_gauze_description

Returns the name of ourself when used in a "owner is [usage_prefix] by [name]" examine_more situation

get_gauze_usage_prefix

Returns the usage prefix of ourself when used in a "owner is [usage_prefix] by [name]" examine_more situation

is_valid_recipe

Checks if the recipe is valid to be used

+

Arguments:

+
    +
  • R - The stack recipe we are checking if it is valid
  • +
  • recipe_list - The list of recipes we are using to check the given recipe
  • +

is_zero_amount

Returns TRUE if the item stack is the equivalent of a 0 amount item.

+

Also deletes the item if delete_if_zero is TRUE and the stack does not have +is_cyborg set to true.

make_item

Makes the item with the given recipe.

merge

Merges as much of src into target_stack as possible. If present, the limit arg overrides target_stack.max_amount for transfer.

+

This proc deletes src if the remaining amount after the transfer is 0.

merge_without_del

Merges as much of src into target_stack as possible. If present, the limit arg overrides target_stack.max_amount for transfer.

+

This calls use() without check = FALSE, preventing the item from qdeling itself if it reaches 0 stack size.

+

As a result, this proc can leave behind a 0 amount stack.

on_item_crafted

Run special logic on created items after they've been successfully crafted.

on_movable_entered_occupied_turf

Signal handler for connect_loc element. Called when a movable enters the turf we're currently occupying. Merges if possible.

radial_check

Used as a callback for radial building.

recursively_build_recipes

Builds all recipes in a given recipe list and returns an association list containing them

+

Arguments:

+
    +
  • recipe_to_iterate - The list of recipes we are using to build recipes
  • +

set_custom_materials

Override to make things like metalgen accurately set custom materials

set_mats_per_unit

    +
  • +

    Sets the amount of materials per unit for this stack.

    +
  • +
  • +

    Arguments:

    +
  • +
  • +
      +
    • mats: The value to set the mats per unit to.
    • +
    +
  • +
  • +
      +
    • multiplier: The amount to multiply the mats per unit by. Defaults to 1.
    • +
    +
  • +

show_construction_radial

Shows a radial consisting of every radial recipe we have in our list.

split_stack

    +
  • +

    Splits the stack into two stacks.

    +
  • +
  • +

    Arguments:

    +
  • +
  • +
      +
    • user: The mob splitting the stack.
    • +
    +
  • +
  • +
      +
    • amount: The number of units to split from this stack.
    • +
    +
  • +

update_custom_materials

Updates the custom materials list of this stack.

\ No newline at end of file diff --git a/obj/item/stack/cable_coil.html b/obj/item/stack/cable_coil.html new file mode 100644 index 0000000000000..7c65e545b3b86 --- /dev/null +++ b/obj/item/stack/cable_coil.html @@ -0,0 +1 @@ +/obj/item/stack/cable_coil - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cable_coil

Vars

other_delayHow long it takes to apply cable to someone else's robotic limbs to heal their burns.
self_delayHow long it takes to apply cable to your own robotic limbs to heal their burns.

Var Details

other_delay

How long it takes to apply cable to someone else's robotic limbs to heal their burns.

self_delay

How long it takes to apply cable to your own robotic limbs to heal their burns.

\ No newline at end of file diff --git a/obj/item/stack/cannonball.html b/obj/item/stack/cannonball.html new file mode 100644 index 0000000000000..32f5b14473fe5 --- /dev/null +++ b/obj/item/stack/cannonball.html @@ -0,0 +1 @@ +/obj/item/stack/cannonball - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cannonball

Vars

projectile_typethe type of projectile this type of cannonball item turns into.

Var Details

projectile_type

the type of projectile this type of cannonball item turns into.

\ No newline at end of file diff --git a/obj/item/stack/conveyor.html b/obj/item/stack/conveyor.html new file mode 100644 index 0000000000000..10c7a47b7f0b9 --- /dev/null +++ b/obj/item/stack/conveyor.html @@ -0,0 +1 @@ +/obj/item/stack/conveyor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

conveyor

Vars

idID for linking a belt to one or more switches, all conveyors with the same ID will be controlled the same switch(es).

Var Details

id

ID for linking a belt to one or more switches, all conveyors with the same ID will be controlled the same switch(es).

\ No newline at end of file diff --git a/obj/item/stack/ducts.html b/obj/item/stack/ducts.html new file mode 100644 index 0000000000000..7c82ca2e491d3 --- /dev/null +++ b/obj/item/stack/ducts.html @@ -0,0 +1 @@ +/obj/item/stack/ducts - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ducts

Vars

duct_colorColor of our duct
duct_layerDefault layer of our duct

Var Details

duct_color

Color of our duct

duct_layer

Default layer of our duct

\ No newline at end of file diff --git a/obj/item/stack/license_plates/filled.html b/obj/item/stack/license_plates/filled.html new file mode 100644 index 0000000000000..6902ee3fc9386 --- /dev/null +++ b/obj/item/stack/license_plates/filled.html @@ -0,0 +1 @@ +/obj/item/stack/license_plates/filled - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

filled

Procs

update_icon_stateOverride to allow for variations

Proc Details

update_icon_state

Override to allow for variations

\ No newline at end of file diff --git a/obj/item/stack/medical.html b/obj/item/stack/medical.html new file mode 100644 index 0000000000000..73f364f170445 --- /dev/null +++ b/obj/item/stack/medical.html @@ -0,0 +1,3 @@ +/obj/item/stack/medical - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

medical

Vars

assessing_injury_delayTime it takes to assess injuries when looping healing
flesh_regenerationHow much we add to flesh_healing for burn wounds on application
heal_bruteHow much brute we heal per application. This is the only number that matters for simplemobs
heal_burnHow much burn we heal per application
other_delayHow long it takes to apply it to someone else
repeatingIf we've still got more and the patient is still hurt, should we keep going automatically?
sanitizationHow much sanitization to apply to burn wounds on application
self_delayHow long it takes to apply it to yourself
stop_bleedingHow much we reduce bleeding per application on cut wounds

Procs

begin_heal_loopUsed to begin the recursive healing loop. +Returns TRUE if we entered the loop, FALSE if we didn't
can_healChecks if the passed patient can be healed by the passed user
healApply the actual effects of the healing if it's a simple animal, goes to /obj/item/stack/medical/proc/heal_carbon if it's a carbon, returns TRUE if it works, FALSE if it doesn't
heal_carbonThe healing effects on a carbon patient. Since we have extra details for dealing with bodyparts, we get our own fancy proc. Still returns TRUE on success and FALSE on fail
post_heal_effectsOverride this proc for special post heal effects.
try_healIn which we print the message that we're starting to heal someone, then we try healing them. Does the do_after whether or not it can actually succeed on a targeted mob

Var Details

assessing_injury_delay

Time it takes to assess injuries when looping healing

flesh_regeneration

How much we add to flesh_healing for burn wounds on application

heal_brute

How much brute we heal per application. This is the only number that matters for simplemobs

heal_burn

How much burn we heal per application

other_delay

How long it takes to apply it to someone else

repeating

If we've still got more and the patient is still hurt, should we keep going automatically?

sanitization

How much sanitization to apply to burn wounds on application

self_delay

How long it takes to apply it to yourself

stop_bleeding

How much we reduce bleeding per application on cut wounds

Proc Details

begin_heal_loop

Used to begin the recursive healing loop. +Returns TRUE if we entered the loop, FALSE if we didn't

can_heal

Checks if the passed patient can be healed by the passed user

heal

Apply the actual effects of the healing if it's a simple animal, goes to /obj/item/stack/medical/proc/heal_carbon if it's a carbon, returns TRUE if it works, FALSE if it doesn't

heal_carbon

The healing effects on a carbon patient. Since we have extra details for dealing with bodyparts, we get our own fancy proc. Still returns TRUE on success and FALSE on fail

post_heal_effects

Override this proc for special post heal effects.

try_heal

In which we print the message that we're starting to heal someone, then we try healing them. Does the do_after whether or not it can actually succeed on a targeted mob

\ No newline at end of file diff --git a/obj/item/stack/medical/gauze.html b/obj/item/stack/medical/gauze.html new file mode 100644 index 0000000000000..27719e240d594 --- /dev/null +++ b/obj/item/stack/medical/gauze.html @@ -0,0 +1,4 @@ +/obj/item/stack/medical/gauze - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gauze

Vars

can_splintIf it is at all possible for us to splint a limb.
gauze_prefixIf we are bandaging a limb, this is the overlay prefix we will use.
integrityThe amount of direct hits our limb can take before we fall off.
splint_prefixIf we are splinting a limb, this is the overlay prefix we will use.

Procs

get_hitget_hit() called when the bandage gets damaged
get_overlay_prefixReturns either [splint_prefix] or [gauze_prefix] depending on if we are splinting or not. Suffixes it with a digitigrade flag if applicable for the limb.
has_overlayReturns TRUE if we can generate an overlay, false otherwise.
is_pristineis_pristine() called by rip_off()
is_splintingReturns if we can splint, and if any wound on our bodypart gives a splint overlay.
rip_offrip_off() called when someone rips it off

Var Details

can_splint

If it is at all possible for us to splint a limb.

gauze_prefix

If we are bandaging a limb, this is the overlay prefix we will use.

integrity

The amount of direct hits our limb can take before we fall off.

splint_prefix

If we are splinting a limb, this is the overlay prefix we will use.

Proc Details

get_hit

get_hit() called when the bandage gets damaged

+

This proc will subtract integrity and delete the bandage with a to_chat message to whoever was bandaged

get_overlay_prefix

Returns either [splint_prefix] or [gauze_prefix] depending on if we are splinting or not. Suffixes it with a digitigrade flag if applicable for the limb.

has_overlay

Returns TRUE if we can generate an overlay, false otherwise.

is_pristine

is_pristine() called by rip_off()

+

Used to determine whether the bandage can be re-used and won't qdel itself

is_splinting

Returns if we can splint, and if any wound on our bodypart gives a splint overlay.

rip_off

rip_off() called when someone rips it off

+

It will return the bandage if it's considered pristine

\ No newline at end of file diff --git a/obj/item/stack/medical/mesh.html b/obj/item/stack/medical/mesh.html new file mode 100644 index 0000000000000..de7155d3dae7b --- /dev/null +++ b/obj/item/stack/medical/mesh.html @@ -0,0 +1 @@ +/obj/item/stack/medical/mesh - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mesh

Vars

grind_resultsThis var determines if the sterile packaging of the mesh has been opened.

Var Details

grind_results

This var determines if the sterile packaging of the mesh has been opened.

\ No newline at end of file diff --git a/obj/item/stack/medical/wound_recovery.html b/obj/item/stack/medical/wound_recovery.html new file mode 100644 index 0000000000000..f694de2032cc5 --- /dev/null +++ b/obj/item/stack/medical/wound_recovery.html @@ -0,0 +1 @@ +/obj/item/stack/medical/wound_recovery - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wound_recovery

Vars

applicable_woundsThe types of wounds that we work on, in list format
causes_painIf this checks for pain, used for synthetic repair foam
treatment_soundThe sound we play upon successfully treating the wound

Var Details

applicable_wounds

The types of wounds that we work on, in list format

causes_pain

If this checks for pain, used for synthetic repair foam

treatment_sound

The sound we play upon successfully treating the wound

\ No newline at end of file diff --git a/obj/item/stack/ore/bluespace_crystal.html b/obj/item/stack/ore/bluespace_crystal.html new file mode 100644 index 0000000000000..6e3f0d89d0e62 --- /dev/null +++ b/obj/item/stack/ore/bluespace_crystal.html @@ -0,0 +1 @@ +/obj/item/stack/ore/bluespace_crystal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bluespace_crystal

Vars

blink_rangeThe teleport range when crushed/thrown at someone.

Var Details

The teleport range when crushed/thrown at someone.

\ No newline at end of file diff --git a/obj/item/stack/pipe_cleaner_coil.html b/obj/item/stack/pipe_cleaner_coil.html new file mode 100644 index 0000000000000..5def77f61d8aa --- /dev/null +++ b/obj/item/stack/pipe_cleaner_coil.html @@ -0,0 +1 @@ +/obj/item/stack/pipe_cleaner_coil - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pipe_cleaner_coil

Vars

pipecleaner_colorFor updating inhand icons.

Var Details

pipecleaner_color

For updating inhand icons.

\ No newline at end of file diff --git a/obj/item/stack/pipe_cleaner_coil/cyborg.html b/obj/item/stack/pipe_cleaner_coil/cyborg.html new file mode 100644 index 0000000000000..0ff00f09b3452 --- /dev/null +++ b/obj/item/stack/pipe_cleaner_coil/cyborg.html @@ -0,0 +1,5 @@ +/obj/item/stack/pipe_cleaner_coil/cyborg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cyborg

Procs

check_menuChecks if we are allowed to interact with a radial menu

Proc Details

check_menu

Checks if we are allowed to interact with a radial menu

+

Arguments:

+
    +
  • user The mob interacting with the menu
  • +
\ No newline at end of file diff --git a/obj/item/stack/sheet.html b/obj/item/stack/sheet.html new file mode 100644 index 0000000000000..451c5e52f65a3 --- /dev/null +++ b/obj/item/stack/sheet.html @@ -0,0 +1,10 @@ +/obj/item/stack/sheet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sheet

Vars

gulag_validIf true, this is worth points in the gulag labour stacker
manufacturedSet to true if this is vended from a material storage
sniffablewhether this sheet can be sniffed by the material sniffer
sound_varythis makes pickup and drop sounds vary
walltypeWhat type of wall does this sheet spawn

Procs

on_attack_floorremoving from sniffable handled by the sniffer itself when it checks for targets +Facilitates sheets being smacked on the floor

Var Details

gulag_valid

If true, this is worth points in the gulag labour stacker

manufactured

Set to true if this is vended from a material storage

sniffable

whether this sheet can be sniffed by the material sniffer

sound_vary

this makes pickup and drop sounds vary

walltype

What type of wall does this sheet spawn

Proc Details

on_attack_floor

removing from sniffable handled by the sniffer itself when it checks for targets +Facilitates sheets being smacked on the floor

+

This is used for crafting by hitting the floor with items. +The initial use case is glass sheets breaking in to shards when the floor is hit. +Args:

+
    +
  • user: The user that did the action
  • +
  • params: paramas passed in from attackby
  • +
\ No newline at end of file diff --git a/obj/item/stack/sheet/wethide.html b/obj/item/stack/sheet/wethide.html new file mode 100644 index 0000000000000..db256be1b45b5 --- /dev/null +++ b/obj/item/stack/sheet/wethide.html @@ -0,0 +1 @@ +/obj/item/stack/sheet/wethide - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wethide

Vars

drying_threshold_temperatureKelvin to start drying
wetnessReduced when exposed to high temperatures

Var Details

drying_threshold_temperature

Kelvin to start drying

wetness

Reduced when exposed to high temperatures

\ No newline at end of file diff --git a/obj/item/stack/shibari_rope.html b/obj/item/stack/shibari_rope.html new file mode 100644 index 0000000000000..41ca0ac6f93d4 --- /dev/null +++ b/obj/item/stack/shibari_rope.html @@ -0,0 +1 @@ +/obj/item/stack/shibari_rope - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shibari_rope

Vars

glowshould clothing items created by this stack glow
shibari_bodyThings this rope can transform into when it's tied to a person
tightnessWe use this var to change tightness var on worn version of this item.

Procs

attack_selfThis part of code required for tightness adjustment. You can change tightness of future shibari bondage on character by clicking on ropes.

Var Details

glow

should clothing items created by this stack glow

shibari_body

Things this rope can transform into when it's tied to a person

tightness

We use this var to change tightness var on worn version of this item.

Proc Details

attack_self

This part of code required for tightness adjustment. You can change tightness of future shibari bondage on character by clicking on ropes.

\ No newline at end of file diff --git a/obj/item/stack/sticky_tape.html b/obj/item/stack/sticky_tape.html new file mode 100644 index 0000000000000..cefec3d9c1b59 --- /dev/null +++ b/obj/item/stack/sticky_tape.html @@ -0,0 +1 @@ +/obj/item/stack/sticky_tape - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sticky_tape

Vars

tape_gagThe tape type you get when ripping off a piece of tape.

Var Details

tape_gag

The tape type you get when ripping off a piece of tape.

\ No newline at end of file diff --git a/obj/item/stack/tile.html b/obj/item/stack/tile.html new file mode 100644 index 0000000000000..d850387ce7152 --- /dev/null +++ b/obj/item/stack/tile.html @@ -0,0 +1,7 @@ +/obj/item/stack/tile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tile

TILE STACKS

+

Allows us to place a turf on a plating.

Vars

replace_platingAllows us to replace the plating we are attacking if our baseturfs are the same.
tile_reskin_typesCached associative lazy list to hold the radial options for tile reskinning. See tile_reskinning.dm for more information. Pattern: list[type] -> image
tile_rotate_dirsCached associative lazy list to hold the radial options for tile dirs. See tile_reskinning.dm for more information.
turf_dirWhat dir will the turf have?
turf_typeWhat type of turf does this tile produce.

Procs

place_tilePlace our tile on a plating, or replace it.
tile_reskin_listCaches associative lists with type path index keys and images of said type's initial icon state (typepath -> image).

Var Details

replace_plating

Allows us to replace the plating we are attacking if our baseturfs are the same.

tile_reskin_types

Cached associative lazy list to hold the radial options for tile reskinning. See tile_reskinning.dm for more information. Pattern: list[type] -> image

tile_rotate_dirs

Cached associative lazy list to hold the radial options for tile dirs. See tile_reskinning.dm for more information.

turf_dir

What dir will the turf have?

turf_type

What type of turf does this tile produce.

Proc Details

place_tile

Place our tile on a plating, or replace it.

+

Arguments:

+
    +
  • target_plating - Instance of the plating we want to place on. Replaced during successful executions.
  • +
  • user - The mob doing the placing.
  • +

tile_reskin_list

Caches associative lists with type path index keys and images of said type's initial icon state (typepath -> image).

\ No newline at end of file diff --git a/obj/item/stack/tile/carpet/neon.html b/obj/item/stack/tile/carpet/neon.html new file mode 100644 index 0000000000000..5291b3bc702c7 --- /dev/null +++ b/obj/item/stack/tile/carpet/neon.html @@ -0,0 +1 @@ +/obj/item/stack/tile/carpet/neon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

neon

Vars

emissive_alphaThe alpha used for the emissive overlay.
neon_colorThe color used for the neon overlay.
neon_iconThe icon used for the neon overlay and emissive overlay.
neon_icon_stateThe icon state used for the neon overlay and emissive overlay.
neon_inhand_icon_stateThe icon state used for the neon overlay inhands.

Var Details

emissive_alpha

The alpha used for the emissive overlay.

neon_color

The color used for the neon overlay.

neon_icon

The icon used for the neon overlay and emissive overlay.

neon_icon_state

The icon state used for the neon overlay and emissive overlay.

neon_inhand_icon_state

The icon state used for the neon overlay inhands.

\ No newline at end of file diff --git a/obj/item/stack/tile/mineral.html b/obj/item/stack/tile/mineral.html new file mode 100644 index 0000000000000..47b87ff13b79a --- /dev/null +++ b/obj/item/stack/tile/mineral.html @@ -0,0 +1 @@ +/obj/item/stack/tile/mineral - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mineral

Vars

mineralTypeDetermines what stack is gotten out of us when welded.

Var Details

mineralType

Determines what stack is gotten out of us when welded.

\ No newline at end of file diff --git a/obj/item/stake.html b/obj/item/stake.html new file mode 100644 index 0000000000000..04aec69fa1ec9 --- /dev/null +++ b/obj/item/stake.html @@ -0,0 +1 @@ +/obj/item/stake - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stake

Vars

staketimeTime it takes to embed the stake into someone's chest.

Var Details

staketime

Time it takes to embed the stake into someone's chest.

\ No newline at end of file diff --git a/obj/item/sticker.html b/obj/item/sticker.html new file mode 100644 index 0000000000000..a34a18e5a9262 --- /dev/null +++ b/obj/item/sticker.html @@ -0,0 +1,14 @@ +/obj/item/sticker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sticker

What stickers can do?

+
    +
  • They can be attached to any object.
  • +
  • They inherit cursor position when attached.
  • +
  • They are unclickable by mouse, I suppose?
  • +
  • They can be washed off.
  • +
  • They can be burnt off.
  • +
  • They can be attached to the object they collided with.
  • +
  • They play "attack" animation when attached.
  • +

Vars

examine_textText added to the atom's examine when stickered.
exclude_from_randomThis sticker won't be generated inside random sticker packs.
icon_stateslist or null, contains possible alternate icon_states.

Procs

attempt_attachAttempts to attach sticker to an object. Returns FALSE if atom has more than +MAX_STICKER_COUNT stickers, TRUE otherwise. If no px or py were passed +picks random coordinates based on a target's icon.

Var Details

examine_text

Text added to the atom's examine when stickered.

exclude_from_random

This sticker won't be generated inside random sticker packs.

icon_states

list or null, contains possible alternate icon_states.

Proc Details

attempt_attach

Attempts to attach sticker to an object. Returns FALSE if atom has more than +MAX_STICKER_COUNT stickers, TRUE otherwise. If no px or py were passed +picks random coordinates based on a target's icon.

\ No newline at end of file diff --git a/obj/item/stock_block.html b/obj/item/stock_block.html new file mode 100644 index 0000000000000..1698b8376be61 --- /dev/null +++ b/obj/item/stock_block.html @@ -0,0 +1 @@ +/obj/item/stock_block - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stock_block

Vars

export_matWhat is the name of the material this was made from?
export_valueHow many credits was this worth when created?
fluidIs this stock block currently updating its value with the market (aka fluid)?
quantityQuantity of export material

Var Details

export_mat

What is the name of the material this was made from?

export_value

How many credits was this worth when created?

fluid

Is this stock block currently updating its value with the market (aka fluid)?

quantity

Quantity of export material

\ No newline at end of file diff --git a/obj/item/stock_parts.html b/obj/item/stock_parts.html new file mode 100644 index 0000000000000..cdda59b3bef50 --- /dev/null +++ b/obj/item/stock_parts.html @@ -0,0 +1 @@ +/obj/item/stock_parts - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stock_parts

Vars

abstract_typeThe generic category type that the stock part belongs to. Generic objects that should not be instantiated should have the same type and abstract_type
base_nameUsed when a base part has a different name to higher tiers of part. For example, machine frames want any servo and not just a micro-servo.

Var Details

abstract_type

The generic category type that the stock part belongs to. Generic objects that should not be instantiated should have the same type and abstract_type

base_name

Used when a base part has a different name to higher tiers of part. For example, machine frames want any servo and not just a micro-servo.

\ No newline at end of file diff --git a/obj/item/stock_parts/capacitor.html b/obj/item/stock_parts/capacitor.html new file mode 100644 index 0000000000000..f99e3d53f257e --- /dev/null +++ b/obj/item/stock_parts/capacitor.html @@ -0,0 +1,3 @@ +/obj/item/stock_parts/capacitor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

capacitor

Procs

install_polarization_controllerHandles installing the capacitor in the window, to provide it with some +polarization functionalities.

Proc Details

install_polarization_controller

Handles installing the capacitor in the window, to provide it with some +polarization functionalities.

\ No newline at end of file diff --git a/obj/item/stock_parts/power_store.html b/obj/item/stock_parts/power_store.html new file mode 100644 index 0000000000000..26c51f32ffa64 --- /dev/null +++ b/obj/item/stock_parts/power_store.html @@ -0,0 +1,21 @@ +/obj/item/stock_parts/power_store - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Power store abstract type

Abstract type for a stock part that holds power.

Vars

cell_size_prefixThe size icon overlay prefix.
chargeCurrent charge in cell units
charge_light_typeWhat charge lige sprite to use, null if no light
chargerateHow much power is given per second in a recharger.
connector_typeWhat connector sprite to use when in a cell charger, null if no connectors
corruptedIf the power cell was damaged by an explosion, chance for it to become corrupted and function the same as rigged.
emptyDoes the cell start without any charge?
grown_batteryIf it's a grown that acts as a battery, add a wire overlay to it.
maxchargeMaximum charge in cell units
rating_baseStandard cell charge used for rating
ratingdescIf true, the cell will state it's maximum charge in it's description
riggedIf the cell has been booby-trapped by injecting it with plasma. Chance on use() to explode.

Procs

changeChanges the charge of the cell. +Args:
chargeReturns the current charge of the cell.
giveRecharge the cell. +Args:
max_chargeReturns the maximum charge of the cell.
on_magic_chargeSignal proc for COMSIG_ITEM_MAGICALLY_CHARGED
on_reagents_delHandles properly detaching signal hooks.
percentReturns the percentage of the cell's charge.
useUse power from the cell. +Args:
used_chargeReturns the amount of charge used on the cell.

Var Details

cell_size_prefix

The size icon overlay prefix.

charge

Current charge in cell units

charge_light_type

What charge lige sprite to use, null if no light

chargerate

How much power is given per second in a recharger.

connector_type

What connector sprite to use when in a cell charger, null if no connectors

corrupted

If the power cell was damaged by an explosion, chance for it to become corrupted and function the same as rigged.

empty

Does the cell start without any charge?

grown_battery

If it's a grown that acts as a battery, add a wire overlay to it.

maxcharge

Maximum charge in cell units

rating_base

Standard cell charge used for rating

ratingdesc

If true, the cell will state it's maximum charge in it's description

rigged

If the cell has been booby-trapped by injecting it with plasma. Chance on use() to explode.

Proc Details

change

Changes the charge of the cell. +Args:

+
    +
  • amount: The energy to give to the cell (can be negative). +Returns: The energy that was given to the cell (can be negative).
  • +

charge

Returns the current charge of the cell.

give

Recharge the cell. +Args:

+
    +
  • amount: The amount of energy to give to the cell in joules. +Returns: The power given to the cell in joules.
  • +

max_charge

Returns the maximum charge of the cell.

on_magic_charge

Signal proc for COMSIG_ITEM_MAGICALLY_CHARGED

+

If we, or the item we're located in, is subject to the charge spell, gain some charge back

on_reagents_del

Handles properly detaching signal hooks.

percent

Returns the percentage of the cell's charge.

use

Use power from the cell. +Args:

+
    +
  • used: Amount of power in joules to use.
  • +
  • force: If true, uses the remaining power from the cell if there isn't enough power to supply the demand. +Returns: The power used from the cell in joules.
  • +

used_charge

Returns the amount of charge used on the cell.

\ No newline at end of file diff --git a/obj/item/stock_parts/power_store/cell.html b/obj/item/stock_parts/power_store/cell.html new file mode 100644 index 0000000000000..3d8c37201318f --- /dev/null +++ b/obj/item/stock_parts/power_store/cell.html @@ -0,0 +1 @@ +/obj/item/stock_parts/power_store/cell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Power cell

Power cells, used primarily for handheld and portable things. Holds a reasonable amount of power.

Vars

charging_iconThe charge overlay icon file for the cell charge lights
microfusion_readoutDo we show the microfusion readout instead of KJ?
stabilisedIs this cell stabilised? (used in microfusion guns)

Var Details

charging_icon

The charge overlay icon file for the cell charge lights

microfusion_readout

Do we show the microfusion readout instead of KJ?

stabilised

Is this cell stabilised? (used in microfusion guns)

\ No newline at end of file diff --git a/obj/item/stock_parts/power_store/cell/crank.html b/obj/item/stock_parts/power_store/cell/crank.html new file mode 100644 index 0000000000000..e4f3c0964903b --- /dev/null +++ b/obj/item/stock_parts/power_store/cell/crank.html @@ -0,0 +1 @@ +/obj/item/stock_parts/power_store/cell/crank - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crank

Vars

crank_amounthow much each crank will give the cell charge
crank_speedhow fast it takes to crank to get the crank_amount
discharge_amounthow much gets discharged every process

Var Details

crank_amount

how much each crank will give the cell charge

crank_speed

how fast it takes to crank to get the crank_amount

discharge_amount

how much gets discharged every process

\ No newline at end of file diff --git a/obj/item/stock_parts/power_store/cell/microfusion.html b/obj/item/stock_parts/power_store/cell/microfusion.html new file mode 100644 index 0000000000000..3544539126aa9 --- /dev/null +++ b/obj/item/stock_parts/power_store/cell/microfusion.html @@ -0,0 +1 @@ +/obj/item/stock_parts/power_store/cell/microfusion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

microfusion

Vars

attachmentsA hard referenced list of upgrades currently attached to the weapon.
empty_alarmDo we play an alarm when empty?
empty_alarm_soundWhat sound do we play when empty?
fail_probThe probability of the cell failing, either through being makeshift or being used in something it shouldn't
max_attachmentsHow many upgrades can you have on this cell?
meltdownAre we melting down? For icon stuffs.
parent_gunHard ref to the parent gun.
reloading_timeWe use this to edit the reload time of the gun
reloading_time_tacticalWe use this to edit the tactical reload time of the gun
self_chargingDo we have the self charging upgrade?

Var Details

attachments

A hard referenced list of upgrades currently attached to the weapon.

empty_alarm

Do we play an alarm when empty?

empty_alarm_sound

What sound do we play when empty?

fail_prob

The probability of the cell failing, either through being makeshift or being used in something it shouldn't

max_attachments

How many upgrades can you have on this cell?

meltdown

Are we melting down? For icon stuffs.

parent_gun

Hard ref to the parent gun.

reloading_time

We use this to edit the reload time of the gun

reloading_time_tactical

We use this to edit the tactical reload time of the gun

self_charging

Do we have the self charging upgrade?

\ No newline at end of file diff --git a/obj/item/stock_parts/power_store/cell/self_charge.html b/obj/item/stock_parts/power_store/cell/self_charge.html new file mode 100644 index 0000000000000..83bfd1c26cb63 --- /dev/null +++ b/obj/item/stock_parts/power_store/cell/self_charge.html @@ -0,0 +1 @@ +/obj/item/stock_parts/power_store/cell/self_charge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

self_charge

Vars

recharge_amounthow much is recharged every process

Var Details

recharge_amount

how much is recharged every process

\ No newline at end of file diff --git a/obj/item/storage.html b/obj/item/storage.html new file mode 100644 index 0000000000000..41b46555c90c3 --- /dev/null +++ b/obj/item/storage.html @@ -0,0 +1,9 @@ +/obj/item/storage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

storage

Vars

preloadShould we preload the contents of this type? +BE CAREFUL, THERE'S SOME REALLY NASTY SHIT IN THIS TYPEPATH +SANTA IS EVIL
storage_typeWhat storage type to use for this item

Procs

get_types_to_preloadReturns a list of object types to be preloaded by our code +I'll say it again, be very careful with this. We only need it for a few things +Don't do anything stupid, please

Var Details

preload

Should we preload the contents of this type? +BE CAREFUL, THERE'S SOME REALLY NASTY SHIT IN THIS TYPEPATH +SANTA IS EVIL

storage_type

What storage type to use for this item

Proc Details

get_types_to_preload

Returns a list of object types to be preloaded by our code +I'll say it again, be very careful with this. We only need it for a few things +Don't do anything stupid, please

\ No newline at end of file diff --git a/obj/item/storage/backpack/duffelbag.html b/obj/item/storage/backpack/duffelbag.html new file mode 100644 index 0000000000000..ac74bb004849f --- /dev/null +++ b/obj/item/storage/backpack/duffelbag.html @@ -0,0 +1,5 @@ +/obj/item/storage/backpack/duffelbag - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

duffelbag

Vars

zipped_upIf this bag is zipped (contents hidden) up or not +Starts enabled so you're forced to interact with it to "get" it

Procs

zipper_matchesChecks to see if the zipper matches the passed in state +Returns true if so, false otherwise

Var Details

zipped_up

If this bag is zipped (contents hidden) up or not +Starts enabled so you're forced to interact with it to "get" it

Proc Details

zipper_matches

Checks to see if the zipper matches the passed in state +Returns true if so, false otherwise

\ No newline at end of file diff --git a/obj/item/storage/backpack/industrial/cin_surplus/random_color.html b/obj/item/storage/backpack/industrial/cin_surplus/random_color.html new file mode 100644 index 0000000000000..6bb20690c256f --- /dev/null +++ b/obj/item/storage/backpack/industrial/cin_surplus/random_color.html @@ -0,0 +1 @@ +/obj/item/storage/backpack/industrial/cin_surplus/random_color - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

random_color

Vars

possible_spawning_colorsThe different colors this can choose from when initializing

Var Details

possible_spawning_colors

The different colors this can choose from when initializing

\ No newline at end of file diff --git a/obj/item/storage/backpack/meat.html b/obj/item/storage/backpack/meat.html new file mode 100644 index 0000000000000..c2965332fc02e --- /dev/null +++ b/obj/item/storage/backpack/meat.html @@ -0,0 +1 @@ +/obj/item/storage/backpack/meat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

meat

Vars

eatverbsEating verbs when consuming the MEAT
foodtypesThe food types of the edible component
meat_reagentsReagents added to the edible component, ingested when you EAT the MEAT
meat_soundsSounds used in the squeak component
tastesHow our MEAT tastes. It tastes like MEAT

Var Details

eatverbs

Eating verbs when consuming the MEAT

foodtypes

The food types of the edible component

meat_reagents

Reagents added to the edible component, ingested when you EAT the MEAT

meat_sounds

Sounds used in the squeak component

tastes

How our MEAT tastes. It tastes like MEAT

\ No newline at end of file diff --git a/obj/item/storage/backpack/snail.html b/obj/item/storage/backpack/snail.html new file mode 100644 index 0000000000000..33b552fa6aa73 --- /dev/null +++ b/obj/item/storage/backpack/snail.html @@ -0,0 +1 @@ +/obj/item/storage/backpack/snail - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

snail

Vars

storage_coreWhether or not a bluespace anomaly core has been inserted

Var Details

storage_core

Whether or not a bluespace anomaly core has been inserted

\ No newline at end of file diff --git a/obj/item/storage/bag/money/dutchmen.html b/obj/item/storage/bag/money/dutchmen.html new file mode 100644 index 0000000000000..85d7930d4df9d --- /dev/null +++ b/obj/item/storage/bag/money/dutchmen.html @@ -0,0 +1 @@ +/obj/item/storage/bag/money/dutchmen - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

dutchmen

Procs

PopulateContentsUsed in the dutchmen pirate shuttle.

Proc Details

PopulateContents

Used in the dutchmen pirate shuttle.

\ No newline at end of file diff --git a/obj/item/storage/bag/ore.html b/obj/item/storage/bag/ore.html new file mode 100644 index 0000000000000..c9575ec39a1eb --- /dev/null +++ b/obj/item/storage/bag/ore.html @@ -0,0 +1 @@ +/obj/item/storage/bag/ore - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ore

Vars

ore_bag_balloon_cooldownCooldown on balloon alerts when picking ore
spam_protectionIf this is TRUE, the holder won't receive any messages when they fail to pick up ore through crossing it

Var Details

ore_bag_balloon_cooldown

Cooldown on balloon alerts when picking ore

spam_protection

If this is TRUE, the holder won't receive any messages when they fail to pick up ore through crossing it

\ No newline at end of file diff --git a/obj/item/storage/bag/plants.html b/obj/item/storage/bag/plants.html new file mode 100644 index 0000000000000..27713d9a8c312 --- /dev/null +++ b/obj/item/storage/bag/plants.html @@ -0,0 +1 @@ +/obj/item/storage/bag/plants - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

plants

Procs

make_primitiveSimple helper to reskin this item into its primitive variant.

Proc Details

make_primitive

Simple helper to reskin this item into its primitive variant.

\ No newline at end of file diff --git a/obj/item/storage/bag/quiver.html b/obj/item/storage/bag/quiver.html new file mode 100644 index 0000000000000..df4bd028ad9ea --- /dev/null +++ b/obj/item/storage/bag/quiver.html @@ -0,0 +1 @@ +/obj/item/storage/bag/quiver - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

quiver

Vars

arrow_pathtype of arrow the quivel should hold

Var Details

arrow_path

type of arrow the quivel should hold

\ No newline at end of file diff --git a/obj/item/storage/bag/trash.html b/obj/item/storage/bag/trash.html new file mode 100644 index 0000000000000..69a5880ce33dc --- /dev/null +++ b/obj/item/storage/bag/trash.html @@ -0,0 +1 @@ +/obj/item/storage/bag/trash - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

trash

Vars

insertableIf true, can be inserted into the janitor cart

Procs

post_insertionIf you dump a trash bag into something, anything that doesn't get inserted will spill out onto your feet

Var Details

insertable

If true, can be inserted into the janitor cart

Proc Details

post_insertion

If you dump a trash bag into something, anything that doesn't get inserted will spill out onto your feet

\ No newline at end of file diff --git a/obj/item/storage/belt/military/cin_surplus/random_color.html b/obj/item/storage/belt/military/cin_surplus/random_color.html new file mode 100644 index 0000000000000..05b4ad6cba338 --- /dev/null +++ b/obj/item/storage/belt/military/cin_surplus/random_color.html @@ -0,0 +1 @@ +/obj/item/storage/belt/military/cin_surplus/random_color - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

random_color

Vars

possible_spawning_colorsThe different colors this can choose from when initializing

Var Details

possible_spawning_colors

The different colors this can choose from when initializing

\ No newline at end of file diff --git a/obj/item/storage/box.html b/obj/item/storage/box.html new file mode 100644 index 0000000000000..3ae7cbdec5617 --- /dev/null +++ b/obj/item/storage/box.html @@ -0,0 +1 @@ +/obj/item/storage/box - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

box

The common cardboard box.

Vars

foldable_resultWhat material do we get when we fold this box?
illustrationWhat drawing will we get on the face of the box?

Var Details

foldable_result

What material do we get when we fold this box?

illustration

What drawing will we get on the face of the box?

\ No newline at end of file diff --git a/obj/item/storage/box/donkpockets.html b/obj/item/storage/box/donkpockets.html new file mode 100644 index 0000000000000..d05be07e5106f --- /dev/null +++ b/obj/item/storage/box/donkpockets.html @@ -0,0 +1 @@ +/obj/item/storage/box/donkpockets - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

donkpockets

Vars

donktypeWhat type of donk pocket are we gonna cram into this box?

Var Details

donktype

What type of donk pocket are we gonna cram into this box?

\ No newline at end of file diff --git a/obj/item/storage/box/foodpack.html b/obj/item/storage/box/foodpack.html new file mode 100644 index 0000000000000..7eff8a88d2b9b --- /dev/null +++ b/obj/item/storage/box/foodpack.html @@ -0,0 +1 @@ +/obj/item/storage/box/foodpack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

foodpack

Vars

condiment_packWhat kind of condiment pack should we give the package
main_courseWhat the main course of this package is
side_itemWhat the side of this package should be

Var Details

condiment_pack

What kind of condiment pack should we give the package

main_course

What the main course of this package is

side_item

What the side of this package should be

\ No newline at end of file diff --git a/obj/item/storage/box/holy.html b/obj/item/storage/box/holy.html new file mode 100644 index 0000000000000..b07c901af6c6d --- /dev/null +++ b/obj/item/storage/box/holy.html @@ -0,0 +1,3 @@ +/obj/item/storage/box/holy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

holy

Vars

typepath_for_previewThis item is used to generate a preview image for this set. +It could be any item, doesn't even necessarily need to be something in the kit

Var Details

typepath_for_preview

This item is used to generate a preview image for this set. +It could be any item, doesn't even necessarily need to be something in the kit

\ No newline at end of file diff --git a/obj/item/storage/box/monkeycubes.html b/obj/item/storage/box/monkeycubes.html new file mode 100644 index 0000000000000..f02a6255a4d1c --- /dev/null +++ b/obj/item/storage/box/monkeycubes.html @@ -0,0 +1 @@ +/obj/item/storage/box/monkeycubes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

monkeycubes

Vars

cube_typeWhich type of cube are we spawning in this box?

Var Details

cube_type

Which type of cube are we spawning in this box?

\ No newline at end of file diff --git a/obj/item/storage/box/papersack.html b/obj/item/storage/box/papersack.html new file mode 100644 index 0000000000000..a60ae2f3e1d66 --- /dev/null +++ b/obj/item/storage/box/papersack.html @@ -0,0 +1,6 @@ +/obj/item/storage/box/papersack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

papersack

Vars

design_choiceWhat design from papersack_designs we are currently using.
papersack_designsA list of all available papersack reskins

Procs

check_menucheck_menu: Checks if we are allowed to interact with a radial menu

Var Details

design_choice

What design from papersack_designs we are currently using.

papersack_designs

A list of all available papersack reskins

Proc Details

check_menu

check_menu: Checks if we are allowed to interact with a radial menu

+

Arguments:

+
    +
  • user The mob interacting with a menu
  • +
  • P The pen used to interact with a menu
  • +
\ No newline at end of file diff --git a/obj/item/storage/box/posterbox.html b/obj/item/storage/box/posterbox.html new file mode 100644 index 0000000000000..d5b8e8cb0c266 --- /dev/null +++ b/obj/item/storage/box/posterbox.html @@ -0,0 +1 @@ +/obj/item/storage/box/posterbox - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

posterbox

Procs

add_quirk_postersfills box of posters based on job, one neutral poster and 2 department posters

Proc Details

add_quirk_posters

fills box of posters based on job, one neutral poster and 2 department posters

\ No newline at end of file diff --git a/obj/item/storage/box/spaceman_ration.html b/obj/item/storage/box/spaceman_ration.html new file mode 100644 index 0000000000000..9ae45cc5f0b44 --- /dev/null +++ b/obj/item/storage/box/spaceman_ration.html @@ -0,0 +1 @@ +/obj/item/storage/box/spaceman_ration - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spaceman_ration

Vars

box_storage_slotsHow many storage slots this has, yes I'm being lazy

Var Details

box_storage_slots

How many storage slots this has, yes I'm being lazy

\ No newline at end of file diff --git a/obj/item/storage/box/survival.html b/obj/item/storage/box/survival.html new file mode 100644 index 0000000000000..86275c1e35a28 --- /dev/null +++ b/obj/item/storage/box/survival.html @@ -0,0 +1 @@ +/obj/item/storage/box/survival - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

survival

Vars

craftedAre we crafted?
internal_typeWhich internals tank are we going to use for this box?
mask_typeWhat type of mask are we going to use for this box?
medipen_typeWhat medipen should be present in this box?

Var Details

crafted

Are we crafted?

internal_type

Which internals tank are we going to use for this box?

mask_type

What type of mask are we going to use for this box?

medipen_type

What medipen should be present in this box?

\ No newline at end of file diff --git a/obj/item/storage/box/syndie_kit/poster_box.html b/obj/item/storage/box/syndie_kit/poster_box.html new file mode 100644 index 0000000000000..f8c7c9f06711a --- /dev/null +++ b/obj/item/storage/box/syndie_kit/poster_box.html @@ -0,0 +1 @@ +/obj/item/storage/box/syndie_kit/poster_box - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

poster_box

Vars

poster_countNumber of posters this box contains when spawning.

Var Details

poster_count

Number of posters this box contains when spawning.

\ No newline at end of file diff --git a/obj/item/storage/fancy.html b/obj/item/storage/fancy.html new file mode 100644 index 0000000000000..5f5c78a127652 --- /dev/null +++ b/obj/item/storage/fancy.html @@ -0,0 +1 @@ +/obj/item/storage/fancy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fancy

Vars

contents_tagUsed by examine to report what this thing is holding.
foldable_resultWhat material do we get when we fold this box?
has_open_closed_statesWhether it supports open and closed state icons.
open_statusWhether the container is open, always open, or closed
spawn_countHow many of the things to fill this storage with.
spawn_typeWhat type of thing to fill this storage with.

Var Details

contents_tag

Used by examine to report what this thing is holding.

foldable_result

What material do we get when we fold this box?

has_open_closed_states

Whether it supports open and closed state icons.

open_status

Whether the container is open, always open, or closed

spawn_count

How many of the things to fill this storage with.

spawn_type

What type of thing to fill this storage with.

\ No newline at end of file diff --git a/obj/item/storage/fancy/cigarettes.html b/obj/item/storage/fancy/cigarettes.html new file mode 100644 index 0000000000000..eee7ed555827e --- /dev/null +++ b/obj/item/storage/fancy/cigarettes.html @@ -0,0 +1 @@ +/obj/item/storage/fancy/cigarettes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cigarettes

Vars

candyfor cigarette overlay
display_cigsDo we not have our own handling for cig overlays?
rigged_omenFor VV'ing, set this to true if you want to force the coupon to give an omen
spawn_couponDoes this cigarette packet come with a coupon attached?

Procs

quick_remove_itemRemoves an item or puts it in mouth from the packet, if any

Var Details

candy

for cigarette overlay

display_cigs

Do we not have our own handling for cig overlays?

rigged_omen

For VV'ing, set this to true if you want to force the coupon to give an omen

spawn_coupon

Does this cigarette packet come with a coupon attached?

Proc Details

quick_remove_item

Removes an item or puts it in mouth from the packet, if any

\ No newline at end of file diff --git a/obj/item/storage/hypospraykit.html b/obj/item/storage/hypospraykit.html new file mode 100644 index 0000000000000..fd8b5f301c73f --- /dev/null +++ b/obj/item/storage/hypospraykit.html @@ -0,0 +1 @@ +/obj/item/storage/hypospraykit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hypospraykit

Vars

attached_hypoTracks if a hypospray is attached to the case or not.

Var Details

attached_hypo

Tracks if a hypospray is attached to the case or not.

\ No newline at end of file diff --git a/obj/item/storage/lockbox.html b/obj/item/storage/lockbox.html new file mode 100644 index 0000000000000..9d6b18b523f8c --- /dev/null +++ b/obj/item/storage/lockbox.html @@ -0,0 +1 @@ +/obj/item/storage/lockbox - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

lockbox

Procs

add_contextscreentips for lockboxes

Proc Details

add_context

screentips for lockboxes

\ No newline at end of file diff --git a/obj/item/storage/lockbox/bitrunning/decrypted.html b/obj/item/storage/lockbox/bitrunning/decrypted.html new file mode 100644 index 0000000000000..b307e3455aea7 --- /dev/null +++ b/obj/item/storage/lockbox/bitrunning/decrypted.html @@ -0,0 +1 @@ +/obj/item/storage/lockbox/bitrunning/decrypted - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

decrypted

Vars

source_domainWhat virtual domain did we come from.

Var Details

source_domain

What virtual domain did we come from.

\ No newline at end of file diff --git a/obj/item/storage/lockbox/bitrunning/encrypted.html b/obj/item/storage/lockbox/bitrunning/encrypted.html new file mode 100644 index 0000000000000..e99e809771bde --- /dev/null +++ b/obj/item/storage/lockbox/bitrunning/encrypted.html @@ -0,0 +1 @@ +/obj/item/storage/lockbox/bitrunning/encrypted - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

encrypted

Vars

loot_pathPath for the loot we are assigned

Var Details

loot_path

Path for the loot we are assigned

\ No newline at end of file diff --git a/obj/item/storage/lockbox/order.html b/obj/item/storage/lockbox/order.html new file mode 100644 index 0000000000000..85c0a123e8a9a --- /dev/null +++ b/obj/item/storage/lockbox/order.html @@ -0,0 +1 @@ +/obj/item/storage/lockbox/order - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

order

Vars

department_accountDepartment of the person buying the crate if buying via the NIRN app.
department_purchaseBool if this was departmentally ordered or not

Var Details

department_account

Department of the person buying the crate if buying via the NIRN app.

department_purchase

Bool if this was departmentally ordered or not

\ No newline at end of file diff --git a/obj/item/storage/medkit.html b/obj/item/storage/medkit.html new file mode 100644 index 0000000000000..7bb246f58757d --- /dev/null +++ b/obj/item/storage/medkit.html @@ -0,0 +1 @@ +/obj/item/storage/medkit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

medkit

Vars

damagetype_healedDefines damage type of the medkit. General ones stay null. Used for medibot healing bonuses
list_of_everything_medkits_can_holdyou just type this in holdables list of medkits instead of copypasting bunch of text.

Procs

get_medbot_skinGets what skin (icon_state) this medkit uses for a medbot

Var Details

damagetype_healed

Defines damage type of the medkit. General ones stay null. Used for medibot healing bonuses

list_of_everything_medkits_can_hold

you just type this in holdables list of medkits instead of copypasting bunch of text.

Proc Details

get_medbot_skin

Gets what skin (icon_state) this medkit uses for a medbot

\ No newline at end of file diff --git a/obj/item/storage/organbox.html b/obj/item/storage/organbox.html new file mode 100644 index 0000000000000..89000cd360339 --- /dev/null +++ b/obj/item/storage/organbox.html @@ -0,0 +1 @@ +/obj/item/storage/organbox - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

organbox

A box which takes in coolant and uses it to preserve organs and body parts

Vars

coolingvar to prevent it freezing the same things over and over

Procs

coolant_to_spendReturns which coolant we are about to use, or null if there isn't any

Var Details

cooling

var to prevent it freezing the same things over and over

Proc Details

coolant_to_spend

Returns which coolant we are about to use, or null if there isn't any

\ No newline at end of file diff --git a/obj/item/storage/part_replacer/bluespace.html b/obj/item/storage/part_replacer/bluespace.html new file mode 100644 index 0000000000000..76a7a41b8e090 --- /dev/null +++ b/obj/item/storage/part_replacer/bluespace.html @@ -0,0 +1,10 @@ +/obj/item/storage/part_replacer/bluespace - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bluespace

Procs

on_insered_component_reagent_pre_addSignal handler for when the reagents datum of an inserted part has reagents added to it.
on_part_enteredSignal handler for when a part has been inserted into the BRPED.
on_part_exitedSignal handler for a part is removed from the BRPED.

Proc Details

on_insered_component_reagent_pre_add

Signal handler for when the reagents datum of an inserted part has reagents added to it.

+

Registers the PRE_ADD variant which allows the signal handler to stop reagents being +added.

+

Simply returns COMPONENT_CANCEL_REAGENT_ADD. We never want to allow people to add +reagents to beakers in BRPEDs as they can then be used for spammable remote bombing.

on_part_entered

Signal handler for when a part has been inserted into the BRPED.

+

If the inserted item is a rigged or corrupted cell, does some logging.

+

If it has a reagent holder, clears the reagents and registers signals to prevent new +reagents being added and registers clean up signals on inserted item's removal from +the BRPED.

on_part_exited

Signal handler for a part is removed from the BRPED.

+

Does signal registration cleanup on its reagents, if it has any.

\ No newline at end of file diff --git a/obj/item/storage/part_replacer/bluespace/tier4/bst.html b/obj/item/storage/part_replacer/bluespace/tier4/bst.html new file mode 100644 index 0000000000000..2f1d0cff2bb5f --- /dev/null +++ b/obj/item/storage/part_replacer/bluespace/tier4/bst.html @@ -0,0 +1 @@ +/obj/item/storage/part_replacer/bluespace/tier4/bst - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bst

Vars

auto_clearWhether or not auto-clear is enabled
valid_stock_part_typesList of valid types for pick_stock_part().

Procs

click_alt_secondaryBSTs' special Bluespace RPED can manufacture parts on Alt-RMB, either cables, glass, machine boards, or stock parts.
part_replace_actionAn extension to the default RPED part replacement action - if you don't have the requisite parts in the RPED already, it will spawn T4 versions to use.
pick_stock_partA bespoke proc for picking a subtype to spawn in a relatively user-friendly way.
spawn_parts_for_componentsA bespoke proc for spawning in parts

Var Details

auto_clear

Whether or not auto-clear is enabled

valid_stock_part_types

List of valid types for pick_stock_part().

Proc Details

click_alt_secondary

BSTs' special Bluespace RPED can manufacture parts on Alt-RMB, either cables, glass, machine boards, or stock parts.

part_replace_action

An extension to the default RPED part replacement action - if you don't have the requisite parts in the RPED already, it will spawn T4 versions to use.

pick_stock_part

A bespoke proc for picking a subtype to spawn in a relatively user-friendly way.

spawn_parts_for_components

A bespoke proc for spawning in parts

\ No newline at end of file diff --git a/obj/item/storage/portable_chem_mixer.html b/obj/item/storage/portable_chem_mixer.html new file mode 100644 index 0000000000000..4032e7c95eb32 --- /dev/null +++ b/obj/item/storage/portable_chem_mixer.html @@ -0,0 +1,7 @@ +/obj/item/storage/portable_chem_mixer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

portable_chem_mixer

Vars

amountThe amount of reagent that is to be dispensed currently
beakerCreating an empty slot for a beaker that can be added to dispense into
dispensable_reagentsList in which all currently dispensable reagents go

Procs

replace_beakerReplaces the beaker of the portable chemical mixer with another beaker, or simply adds the new beaker if none is in currently
update_contentsReload dispensable reagents from new contents

Var Details

amount

The amount of reagent that is to be dispensed currently

beaker

Creating an empty slot for a beaker that can be added to dispense into

dispensable_reagents

List in which all currently dispensable reagents go

Proc Details

replace_beaker

Replaces the beaker of the portable chemical mixer with another beaker, or simply adds the new beaker if none is in currently

+

Checks if a valid user and a valid new beaker exist and attempts to replace the current beaker in the portable chemical mixer with the one in hand. Simply places the new beaker in if no beaker is currently loaded +Arguments:

+
    +
  • mob/living/user - The user who is trying to exchange beakers
  • +
  • obj/item/reagent_containers/new_beaker - The new beaker that the user wants to put into the device
  • +

update_contents

Reload dispensable reagents from new contents

\ No newline at end of file diff --git a/obj/item/storage/pouch/medical.html b/obj/item/storage/pouch/medical.html new file mode 100644 index 0000000000000..d8111bc4a08da --- /dev/null +++ b/obj/item/storage/pouch/medical.html @@ -0,0 +1 @@ +/obj/item/storage/pouch/medical - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

medical

It's a pocket medkit. Use sparingly?

Vars

med_pouch_holdablesThe list of things that medical pouches can hold. Stolen from what medkits can hold, but modified for things you would probably want at pocket-access.

Var Details

med_pouch_holdables

The list of things that medical pouches can hold. Stolen from what medkits can hold, but modified for things you would probably want at pocket-access.

\ No newline at end of file diff --git a/obj/item/storage/toolbox/ammobox/full.html b/obj/item/storage/toolbox/ammobox/full.html new file mode 100644 index 0000000000000..127b7df46d765 --- /dev/null +++ b/obj/item/storage/toolbox/ammobox/full.html @@ -0,0 +1 @@ +/obj/item/storage/toolbox/ammobox/full - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

full

Vars

amountType of mags/casings/clips we spawn in.

Procs

PopulateContentsAmount of mags/casings/clips we spawn in.

Var Details

amount

Type of mags/casings/clips we spawn in.

Proc Details

PopulateContents

Amount of mags/casings/clips we spawn in.

\ No newline at end of file diff --git a/obj/item/storage/toolbox/fishing.html b/obj/item/storage/toolbox/fishing.html new file mode 100644 index 0000000000000..3d2c50c09ab49 --- /dev/null +++ b/obj/item/storage/toolbox/fishing.html @@ -0,0 +1 @@ +/obj/item/storage/toolbox/fishing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fishing

Vars

fishing_modifierHow much holding this affects fishing difficulty

Var Details

fishing_modifier

How much holding this affects fishing difficulty

\ No newline at end of file diff --git a/obj/item/storage/toolbox/guncase/skyrat.html b/obj/item/storage/toolbox/guncase/skyrat.html new file mode 100644 index 0000000000000..6555bcb9dfe77 --- /dev/null +++ b/obj/item/storage/toolbox/guncase/skyrat.html @@ -0,0 +1 @@ +/obj/item/storage/toolbox/guncase/skyrat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

skyrat

Vars

openedIs the case visually opened or not

Var Details

opened

Is the case visually opened or not

\ No newline at end of file diff --git a/obj/item/storage/toolbox/mechanical.html b/obj/item/storage/toolbox/mechanical.html new file mode 100644 index 0000000000000..d35ef7ee18988 --- /dev/null +++ b/obj/item/storage/toolbox/mechanical.html @@ -0,0 +1 @@ +/obj/item/storage/toolbox/mechanical - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mechanical

Vars

has_soulIf FALSE, someone with a ensouled soulstone can sacrifice a spirit to change the sprite of this toolbox.

Var Details

has_soul

If FALSE, someone with a ensouled soulstone can sacrifice a spirit to change the sprite of this toolbox.

\ No newline at end of file diff --git a/obj/item/storage/wallet.html b/obj/item/storage/wallet.html new file mode 100644 index 0000000000000..1b3d783859474 --- /dev/null +++ b/obj/item/storage/wallet.html @@ -0,0 +1,2 @@ +/obj/item/storage/wallet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

wallet

Procs

refreshIDCalculates the new front ID.

Proc Details

refreshID

Calculates the new front ID.

+

Picks the ID card that has the most combined command or higher tier accesses.

\ No newline at end of file diff --git a/obj/item/style_meter.html b/obj/item/style_meter.html new file mode 100644 index 0000000000000..84085964a8cee --- /dev/null +++ b/obj/item/style_meter.html @@ -0,0 +1 @@ +/obj/item/style_meter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

style_meter

Vars

meter_appearanceMutable appearance added to the attached glasses
multitooledIf this is multitooled, which is passed onto the component on-creation, if one doesn't currently exist
style_meterThe style meter component we give.

Procs

check_wearingCheck if the glasses that this meter is linked with are being worn
clean_upUnregister signals and just generally clean up ourselves after being removed from glasses
on_click_altSignal proc to remove from glasses
on_dropSignal proc for when the meter-holding glasses are dropped/unequipped
on_examineSignal proc for on-examine
redirect_multitoolRedirect multitooling on our glasses to our style meter

Var Details

meter_appearance

Mutable appearance added to the attached glasses

multitooled

If this is multitooled, which is passed onto the component on-creation, if one doesn't currently exist

style_meter

The style meter component we give.

Proc Details

check_wearing

Check if the glasses that this meter is linked with are being worn

clean_up

Unregister signals and just generally clean up ourselves after being removed from glasses

on_click_alt

Signal proc to remove from glasses

on_drop

Signal proc for when the meter-holding glasses are dropped/unequipped

on_examine

Signal proc for on-examine

redirect_multitool

Redirect multitooling on our glasses to our style meter

\ No newline at end of file diff --git a/obj/item/summon_beacon.html b/obj/item/summon_beacon.html new file mode 100644 index 0000000000000..377e16c5883ee --- /dev/null +++ b/obj/item/summon_beacon.html @@ -0,0 +1 @@ +/obj/item/summon_beacon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

summon_beacon

Vars

allowed_areasA list of allowed areas that the atom can be spawned in
area_stringDescriptor of what area it should work in
selectable_atomsA list of possible atoms available to spawn
selected_atomThe currently selected atom, if any
supply_pod_stayIf the supply pod should stay or not
usesHow many uses the beacon has left

Var Details

allowed_areas

A list of allowed areas that the atom can be spawned in

area_string

Descriptor of what area it should work in

selectable_atoms

A list of possible atoms available to spawn

selected_atom

The currently selected atom, if any

supply_pod_stay

If the supply pod should stay or not

uses

How many uses the beacon has left

\ No newline at end of file diff --git a/obj/item/supplypod_beacon.html b/obj/item/supplypod_beacon.html new file mode 100644 index 0000000000000..cc2c5ad286a28 --- /dev/null +++ b/obj/item/supplypod_beacon.html @@ -0,0 +1 @@ +/obj/item/supplypod_beacon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

supplypod_beacon

Vars

express_consoleThe linked console
launchedIf it's been launched
linkedIf linked
readyIf this is ready to launch

Var Details

express_console

The linked console

launched

If it's been launched

linked

If linked

ready

If this is ready to launch

\ No newline at end of file diff --git a/obj/item/surgery_tray.html b/obj/item/surgery_tray.html new file mode 100644 index 0000000000000..f562c1af156b3 --- /dev/null +++ b/obj/item/surgery_tray.html @@ -0,0 +1,3 @@ +/obj/item/surgery_tray - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

surgery_tray

Surgery Trays +A storage object that displays tools in its contents based on tier, better tools are more visible. +Can be folded up and carried. Click it to draw a random tool.

Vars

is_portableIf true we're currently portable

Procs

populate_contentsFills the tray with items it should contain on creation
set_tray_modeSets the surgery tray's deployment state. Silent if user is null.

Var Details

is_portable

If true we're currently portable

Proc Details

populate_contents

Fills the tray with items it should contain on creation

set_tray_mode

Sets the surgery tray's deployment state. Silent if user is null.

\ No newline at end of file diff --git a/obj/item/surgicaldrill.html b/obj/item/surgicaldrill.html new file mode 100644 index 0000000000000..8bf4f640d26b9 --- /dev/null +++ b/obj/item/surgicaldrill.html @@ -0,0 +1 @@ +/obj/item/surgicaldrill - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

surgicaldrill

Vars

surgical_tray_overlayHow this looks when placed in a surgical tray

Var Details

surgical_tray_overlay

How this looks when placed in a surgical tray

\ No newline at end of file diff --git a/obj/item/survivalcapsule.html b/obj/item/survivalcapsule.html new file mode 100644 index 0000000000000..ed8045ae3fe8d --- /dev/null +++ b/obj/item/survivalcapsule.html @@ -0,0 +1,3 @@ +/obj/item/survivalcapsule - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

survivalcapsule

Procs

expandExpands the capsule into a full shelter, placing the template at the item's location (NOT triggerer's location)
trigger_admin_alertLogs if the capsule was triggered, by default only if it happened on non-lavaland
yote_nearbyThrows any mobs near the deployed location away from the item / shelter +Does some math to make closer mobs get thrown further

Proc Details

expand

Expands the capsule into a full shelter, placing the template at the item's location (NOT triggerer's location)

trigger_admin_alert

Logs if the capsule was triggered, by default only if it happened on non-lavaland

yote_nearby

Throws any mobs near the deployed location away from the item / shelter +Does some math to make closer mobs get thrown further

\ No newline at end of file diff --git a/obj/item/swab.html b/obj/item/swab.html new file mode 100644 index 0000000000000..8b4438662f954 --- /dev/null +++ b/obj/item/swab.html @@ -0,0 +1 @@ +/obj/item/swab - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

swab

Tool capable of taking biological samples from mobs

Procs

InitializeAdds the swabbing component to the biopsy tool

Proc Details

Initialize

Adds the swabbing component to the biopsy tool

\ No newline at end of file diff --git a/obj/item/swapper.html b/obj/item/swapper.html new file mode 100644 index 0000000000000..88b91028f20d1 --- /dev/null +++ b/obj/item/swapper.html @@ -0,0 +1 @@ +/obj/item/swapper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

swapper

Vars

cooldownCooldown for usage
linked_swapperSwapper linked to this obj
next_useNext available time

Var Details

cooldown

Cooldown for usage

linked_swapper

Swapper linked to this obj

next_use

Next available time

\ No newline at end of file diff --git a/obj/item/switchblade.html b/obj/item/switchblade.html new file mode 100644 index 0000000000000..c93224a3c370f --- /dev/null +++ b/obj/item/switchblade.html @@ -0,0 +1 @@ +/obj/item/switchblade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

switchblade

Vars

start_extendedWhether the switchblade starts extended or not.

Var Details

start_extended

Whether the switchblade starts extended or not.

\ No newline at end of file diff --git a/obj/item/syndicate_teleporter.html b/obj/item/syndicate_teleporter.html new file mode 100644 index 0000000000000..1a2b452843ef8 --- /dev/null +++ b/obj/item/syndicate_teleporter.html @@ -0,0 +1,9 @@ +/obj/item/syndicate_teleporter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

syndicate_teleporter

Vars

maximum_teleport_distanceMaximum distance to teleport user forward
minimum_teleport_distanceMinimum distance to teleport user forward

Procs

attempt_teleportTries to teleport the user forward based on random number between min/max teleport distance vars. +If destination is closed turf, try to save user from gibbing via a panic teleport. +Wearing bag of holding or triggering teleport via EMP removes panic teleport, higher chance of being gibbed. +Mobs on same tile as destination get telefragged.
get_fraggedForce move victim to destination, explode destination, drop all victim's items, gib them
make_bloodsBleed and make blood splatters at tele start and end points
panic_teleportChecks parallel_teleport_distance amount of tiles parallel to user's teleport destination. +If no valid closed turfs found, gib user.
telefragDamage and stun all mobs in fragging_location turf, called after a teleport

Var Details

maximum_teleport_distance

Maximum distance to teleport user forward

minimum_teleport_distance

Minimum distance to teleport user forward

Proc Details

attempt_teleport

Tries to teleport the user forward based on random number between min/max teleport distance vars. +If destination is closed turf, try to save user from gibbing via a panic teleport. +Wearing bag of holding or triggering teleport via EMP removes panic teleport, higher chance of being gibbed. +Mobs on same tile as destination get telefragged.

get_fragged

Force move victim to destination, explode destination, drop all victim's items, gib them

make_bloods

Bleed and make blood splatters at tele start and end points

panic_teleport

Checks parallel_teleport_distance amount of tiles parallel to user's teleport destination. +If no valid closed turfs found, gib user.

telefrag

Damage and stun all mobs in fragging_location turf, called after a teleport

\ No newline at end of file diff --git a/obj/item/synth_powercord.html b/obj/item/synth_powercord.html new file mode 100644 index 0000000000000..0e64f18253447 --- /dev/null +++ b/obj/item/synth_powercord.html @@ -0,0 +1,16 @@ +/obj/item/synth_powercord - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

synth_powercord

Vars

synth_charge_whitelistObject basetypes which the powercord is allowed to connect to.

Procs

can_power_drawReturns TRUE or FALSE depending on if the target object can be used as a power source.
do_power_drawRuns a loop to charge a synth cell (stomach) from a power cell or APC. +Displays chat messages to the user and nearby observers.
try_power_drawAttempts to start using an object as a power source. +Checks the user's internal powercell to see if it exists.

Var Details

synth_charge_whitelist

Object basetypes which the powercord is allowed to connect to.

Proc Details

can_power_draw

Returns TRUE or FALSE depending on if the target object can be used as a power source.

do_power_draw

Runs a loop to charge a synth cell (stomach) from a power cell or APC. +Displays chat messages to the user and nearby observers.

+

Stops when:

+
    +
  • The user's internal cell is full.
  • +
  • The cell has less than the minimum charge.
  • +
  • The user moves, or anything else that can happen to interrupt a do_after.
  • +
+

Arguments:

+
    +
  • target - The power cell or APC to drain.
  • +
  • user - The human mob draining the power cell.
  • +

try_power_draw

Attempts to start using an object as a power source. +Checks the user's internal powercell to see if it exists.

\ No newline at end of file diff --git a/obj/item/t_scanner.html b/obj/item/t_scanner.html new file mode 100644 index 0000000000000..b4e5fcb65bf75 --- /dev/null +++ b/obj/item/t_scanner.html @@ -0,0 +1 @@ +/obj/item/t_scanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

t_scanner

Vars

onIs this T-Ray scanner currently on?
shut_off_on_unequipWill this T-Ray scanner shut off on de-equip? (Cyborgs only)

Var Details

on

Is this T-Ray scanner currently on?

shut_off_on_unequip

Will this T-Ray scanner shut off on de-equip? (Cyborgs only)

\ No newline at end of file diff --git a/obj/item/t_scanner/adv_mining_scanner.html b/obj/item/t_scanner/adv_mining_scanner.html new file mode 100644 index 0000000000000..5e7485a031e8a --- /dev/null +++ b/obj/item/t_scanner/adv_mining_scanner.html @@ -0,0 +1 @@ +/obj/item/t_scanner/adv_mining_scanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

adv_mining_scanner

Vars

cooldownThe cooldown between scans.
current_cooldownCurrent time until the next scan can be performed.
rangeThe range of the scanner in tiles.

Var Details

cooldown

The cooldown between scans.

current_cooldown

Current time until the next scan can be performed.

range

The range of the scanner in tiles.

\ No newline at end of file diff --git a/obj/item/table_clock.html b/obj/item/table_clock.html new file mode 100644 index 0000000000000..bca9f360585cf --- /dev/null +++ b/obj/item/table_clock.html @@ -0,0 +1,3 @@ +/obj/item/table_clock - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

table_clock

Vars

brokenBoolean on whether the clock has been destroyed.
soundloopSoundloop we use of a clock ticking.
times_brokenAmount of times the clock has been destroyed. It becomes unrepairable the third time.

Procs

break_clockBreaks the clock, turning off the soundloop. +Returns TRUE if it successfully breaks, FALSE otherwise.

Var Details

broken

Boolean on whether the clock has been destroyed.

soundloop

Soundloop we use of a clock ticking.

times_broken

Amount of times the clock has been destroyed. It becomes unrepairable the third time.

Proc Details

break_clock

Breaks the clock, turning off the soundloop. +Returns TRUE if it successfully breaks, FALSE otherwise.

\ No newline at end of file diff --git a/obj/item/tank.html b/obj/item/tank.html new file mode 100644 index 0000000000000..86ffc68ab5ee6 --- /dev/null +++ b/obj/item/tank.html @@ -0,0 +1,11 @@ +/obj/item/tank - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Gas Tank

Handheld gas canisters +Can rupture explosively if overpressurized

Vars

air_contentsThe gases this tank contains. Don't modify this directly, use return_air() to get it instead
bomb_statusWhether or not it will try to explode when it receives a signal
breathing_mobMob that is currently breathing from the tank.
distribute_pressureThe pressure of the gases this tank supplies to internals.
excitedUsed by process() to track if there's a reason to process each tick
explosion_infoHow our particular tank explodes.
ignitingIf we are in the process of exploding, stops multi explosions
leakingWhether the tank is currently leaking.
reaction_infoList containing reactions happening inside our tank.
tank_assemblyAttached assembly, can either detonate the tank or release its contents when receiving a signal
tank_holder_icon_stateIcon state when in a tank holder. Null makes it incompatible with tank holder.
volumeThe volume of this tank. Among other things gas tank explosions (including TTVs) scale off of this. Be sure to account for that if you change this or you will break toxins ordinance.

Procs

after_internals_closedCalled by carbons after they disconnect the tank from their breathing apparatus.
after_internals_openedCalled by carbons after they connect the tank to their breathing apparatus.
atom_breakHandles the tank springing a leak.
atom_destructionHandles rupturing and fragmenting
bomb_assembleAttaches an assembly holder to the tank to create a bomb.
bomb_disassembleDetaches an assembly holder from the tank, disarming the bomb
equippedCloses the tank if given to another mob while open.
handle_tolerancesHandles the minimum and maximum pressure tolerances of the tank.
igniteIgnites the contents of the tank. Called when receiving a signal if the tank is welded and has an igniter attached.
releaseReleases air stored in the tank. Called when signaled without being welded, or when ignited without enough pressure to explode.
remove_air_volumeRemoves some volume of the tanks gases as the tanks distribution pressure.
toggle_internalsAttempts to toggle the mob's internals on or off using this tank. Returns TRUE if successful.

Var Details

air_contents

The gases this tank contains. Don't modify this directly, use return_air() to get it instead

bomb_status

Whether or not it will try to explode when it receives a signal

breathing_mob

Mob that is currently breathing from the tank.

distribute_pressure

The pressure of the gases this tank supplies to internals.

excited

Used by process() to track if there's a reason to process each tick

explosion_info

How our particular tank explodes.

igniting

If we are in the process of exploding, stops multi explosions

leaking

Whether the tank is currently leaking.

reaction_info

List containing reactions happening inside our tank.

tank_assembly

Attached assembly, can either detonate the tank or release its contents when receiving a signal

tank_holder_icon_state

Icon state when in a tank holder. Null makes it incompatible with tank holder.

volume

The volume of this tank. Among other things gas tank explosions (including TTVs) scale off of this. Be sure to account for that if you change this or you will break toxins ordinance.

Proc Details

after_internals_closed

Called by carbons after they disconnect the tank from their breathing apparatus.

after_internals_opened

Called by carbons after they connect the tank to their breathing apparatus.

atom_break

Handles the tank springing a leak.

atom_destruction

Handles rupturing and fragmenting

bomb_assemble

Attaches an assembly holder to the tank to create a bomb.

bomb_disassemble

Detaches an assembly holder from the tank, disarming the bomb

equipped

Closes the tank if given to another mob while open.

handle_tolerances

Handles the minimum and maximum pressure tolerances of the tank.

+

Returns true if it did anything of significance, false otherwise +Arguments:

+
    +
  • seconds_per_tick: How long has passed between ticks.
  • +

ignite

Ignites the contents of the tank. Called when receiving a signal if the tank is welded and has an igniter attached.

release

Releases air stored in the tank. Called when signaled without being welded, or when ignited without enough pressure to explode.

remove_air_volume

Removes some volume of the tanks gases as the tanks distribution pressure.

+

Arguments:

+
    +
  • volume_to_return: The amount of volume to remove from the tank.
  • +

toggle_internals

Attempts to toggle the mob's internals on or off using this tank. Returns TRUE if successful.

\ No newline at end of file diff --git a/obj/item/tank/internals.html b/obj/item/tank/internals.html new file mode 100644 index 0000000000000..0e8a17b01ff7b --- /dev/null +++ b/obj/item/tank/internals.html @@ -0,0 +1 @@ +/obj/item/tank/internals - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

internals

Procs

click_altAllows carbon to toggle internals via AltClick of the equipped tank.

Proc Details

click_alt

Allows carbon to toggle internals via AltClick of the equipped tank.

\ No newline at end of file diff --git a/obj/item/tank/jetpack.html b/obj/item/tank/jetpack.html new file mode 100644 index 0000000000000..54b2ba3104806 --- /dev/null +++ b/obj/item/tank/jetpack.html @@ -0,0 +1,3 @@ +/obj/item/tank/jetpack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

jetpack

Vars

disabledIf our jetpack is disabled, from getting EMPd
drift_forceHow much force out jetpack can output per tick
full_speedIf the jetpack will have a speedboost in space/nograv or not
gas_typeWhat gas our jetpack is filled with on initialize
onIf the jetpack is currently active
stabilizeIf the jetpack will stop when you stop moving
stabilizer_forceHow much force this jetpack can output per tick to stabilize the user
thrust_callbackCallback for the jetpack component

Procs

configure_jetpackconfigures/re-configures the jetpack component
remove_empRemoves the disabled flag after getting EMPd

Var Details

disabled

If our jetpack is disabled, from getting EMPd

drift_force

How much force out jetpack can output per tick

full_speed

If the jetpack will have a speedboost in space/nograv or not

gas_type

What gas our jetpack is filled with on initialize

on

If the jetpack is currently active

stabilize

If the jetpack will stop when you stop moving

stabilizer_force

How much force this jetpack can output per tick to stabilize the user

thrust_callback

Callback for the jetpack component

Proc Details

configure_jetpack

configures/re-configures the jetpack component

+

Arguments +stabilize - Should this jetpack be stabalized

remove_emp

Removes the disabled flag after getting EMPd

\ No newline at end of file diff --git a/obj/item/tape.html b/obj/item/tape.html new file mode 100644 index 0000000000000..2b9e42547d67c --- /dev/null +++ b/obj/item/tape.html @@ -0,0 +1 @@ +/obj/item/tape - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tape

Vars

initial_icon_stateBecause we can't expect God to do all the work.
storedinfoNumbered list of chat messages the recorder has heard with spans and prepended timestamps. Used for playback and transcription.
timestampNumbered list of seconds the messages in the previous list appear at on the tape. Used by playback to get the timing right.

Var Details

initial_icon_state

Because we can't expect God to do all the work.

storedinfo

Numbered list of chat messages the recorder has heard with spans and prepended timestamps. Used for playback and transcription.

timestamp

Numbered list of seconds the messages in the previous list appear at on the tape. Used by playback to get the timing right.

\ No newline at end of file diff --git a/obj/item/tape/ruins.html b/obj/item/tape/ruins.html new file mode 100644 index 0000000000000..b49911d2da71f --- /dev/null +++ b/obj/item/tape/ruins.html @@ -0,0 +1 @@ +/obj/item/tape/ruins - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ruins

Vars

storedinfoNumbered list of chat messages the recorder has heard with spans and prepended timestamps. Used for playback and transcription.
timestampNumbered list of seconds the messages in the previous list appear at on the tape. Used by playback to get the timing right.

Var Details

storedinfo

Numbered list of chat messages the recorder has heard with spans and prepended timestamps. Used for playback and transcription.

timestamp

Numbered list of seconds the messages in the previous list appear at on the tape. Used by playback to get the timing right.

\ No newline at end of file diff --git a/obj/item/taperecorder.html b/obj/item/taperecorder.html new file mode 100644 index 0000000000000..99bd8f49fad3c --- /dev/null +++ b/obj/item/taperecorder.html @@ -0,0 +1 @@ +/obj/item/taperecorder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

taperecorder

Vars

soundloopSound loop that plays when recording or playing back.
time_left_warningSeconds under which to warn that the tape is almost up.
time_warnedWhether we've warned during this recording session that the tape is almost up.

Var Details

soundloop

Sound loop that plays when recording or playing back.

time_left_warning

Seconds under which to warn that the tape is almost up.

time_warned

Whether we've warned during this recording session that the tape is almost up.

\ No newline at end of file diff --git a/obj/item/target.html b/obj/item/target.html new file mode 100644 index 0000000000000..9f19effe56da3 --- /dev/null +++ b/obj/item/target.html @@ -0,0 +1 @@ +/obj/item/target - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

target

Vars

bullethole_overlaysLazylist to keep track of bullet-hole overlays.

Var Details

bullethole_overlays

Lazylist to keep track of bullet-hole overlays.

\ No newline at end of file diff --git a/obj/item/tattoo_kit.html b/obj/item/tattoo_kit.html new file mode 100644 index 0000000000000..f6c98c3420502 --- /dev/null +++ b/obj/item/tattoo_kit.html @@ -0,0 +1 @@ +/obj/item/tattoo_kit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tattoo_kit

Vars

max_useshow many uses can be stored
useseach use = 1 tattoo

Var Details

max_uses

how many uses can be stored

uses

each use = 1 tattoo

\ No newline at end of file diff --git a/obj/item/tcgcard.html b/obj/item/tcgcard.html new file mode 100644 index 0000000000000..0587d4de846cc --- /dev/null +++ b/obj/item/tcgcard.html @@ -0,0 +1,3 @@ +/obj/item/tcgcard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tcgcard

Vars

cached_flat_iconCached icon used for inspecting the card
flippedIs the card flipped?
idUnique ID, for use in lookups and storage, used to index the global datum list where the rest of the card's info is stored
seriesUsed along with the id for lookup
tappedHas this card been "tapped"? AKA, is it horizontal?

Procs

extract_datumAlright so some brief details here, we store all "immutable" (Think like power) card variables in a global list, indexed by id +This proc gets the card's associated card datum to play with

Var Details

cached_flat_icon

Cached icon used for inspecting the card

flipped

Is the card flipped?

id

Unique ID, for use in lookups and storage, used to index the global datum list where the rest of the card's info is stored

series

Used along with the id for lookup

tapped

Has this card been "tapped"? AKA, is it horizontal?

Proc Details

extract_datum

Alright so some brief details here, we store all "immutable" (Think like power) card variables in a global list, indexed by id +This proc gets the card's associated card datum to play with

\ No newline at end of file diff --git a/obj/item/tcgcard_deck.html b/obj/item/tcgcard_deck.html new file mode 100644 index 0000000000000..32a75d4bf6a30 --- /dev/null +++ b/obj/item/tcgcard_deck.html @@ -0,0 +1,6 @@ +/obj/item/tcgcard_deck - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

tcgcard_deck

A stack item that's not actually a stack because ORDER MATTERS with a deck of cards! +The "top" card of the deck will always be the bottom card in the stack for our purposes.

Procs

draw_cardThe user draws a single card. The deck is then handled based on how many cards are left.
flip_deckThe user flips the deck, turning it into a face up/down pile, and reverses the order of the cards from top to bottom.
on_item_removedSignal handler for COMSIG_STORAGE_REMOVED_ITEM. Qdels src if contents are empty, flips the removed card if needed.
shuffle_deckThe user shuffles the order of the deck, then closes any visability into the deck's storage to prevent cheesing. +*User: The person doing the shuffling, used in visable message and closing UI. +*Visible: Will anyone need to hear the visable message about the shuffling?

Proc Details

draw_card

The user draws a single card. The deck is then handled based on how many cards are left.

flip_deck

The user flips the deck, turning it into a face up/down pile, and reverses the order of the cards from top to bottom.

on_item_removed

Signal handler for COMSIG_STORAGE_REMOVED_ITEM. Qdels src if contents are empty, flips the removed card if needed.

shuffle_deck

The user shuffles the order of the deck, then closes any visability into the deck's storage to prevent cheesing. +*User: The person doing the shuffling, used in visable message and closing UI. +*Visible: Will anyone need to hear the visable message about the shuffling?

\ No newline at end of file diff --git a/obj/item/teleport_rod.html b/obj/item/teleport_rod.html new file mode 100644 index 0000000000000..b3dbe64f1ff92 --- /dev/null +++ b/obj/item/teleport_rod.html @@ -0,0 +1,2 @@ +/obj/item/teleport_rod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

teleport_rod

Totally NOT a Rod of Discord +Teleports you to where you click!

Vars

apply_debuffsWhether we apply the teleport flux debuff, damaging people who teleport
max_tp_rangeMax range at which we can teleport, because it operates in view TECHNICALLY can click very very far

Var Details

apply_debuffs

Whether we apply the teleport flux debuff, damaging people who teleport

max_tp_range

Max range at which we can teleport, because it operates in view TECHNICALLY can click very very far

\ No newline at end of file diff --git a/obj/item/teleportation_scroll.html b/obj/item/teleportation_scroll.html new file mode 100644 index 0000000000000..2446fa9db9d3f --- /dev/null +++ b/obj/item/teleportation_scroll.html @@ -0,0 +1 @@ +/obj/item/teleportation_scroll - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

teleportation_scroll

Vars

usesNumber of uses the scroll gets.

Procs

on_spell_castDeplete charges if spell is cast successfully

Var Details

uses

Number of uses the scroll gets.

Proc Details

on_spell_cast

Deplete charges if spell is cast successfully

\ No newline at end of file diff --git a/obj/item/thermometer.html b/obj/item/thermometer.html new file mode 100644 index 0000000000000..0208041f2f64d --- /dev/null +++ b/obj/item/thermometer.html @@ -0,0 +1 @@ +/obj/item/thermometer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

thermometer

Vars

attached_to_reagentsThe reagents datum that this object is attached to, so we know where we are when it's added to something.

Var Details

attached_to_reagents

The reagents datum that this object is attached to, so we know where we are when it's added to something.

\ No newline at end of file diff --git a/obj/item/throwing_star/stamina/ninja.html b/obj/item/throwing_star/stamina/ninja.html new file mode 100644 index 0000000000000..51463f139b83f --- /dev/null +++ b/obj/item/throwing_star/stamina/ninja.html @@ -0,0 +1,10 @@ +/obj/item/throwing_star/stamina/ninja - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Ninja Throwing Star

a throwing star which specifically makes sure you know it came from a real ninja.

+

The most important item in the entire codebase, as without it we would all cease to exist. +Inherits everything that makes it interesting the stamina throwing star, but the most +important change made is that its name specifically has the prefix, 'ninja' in it. +This provides the detective role with information to play off of by ensuring that his +assumption that a space ninja is aboard the ship to be true when he find 20 of these in +the captain's back. Along with this, its throwforce is 10 instead of the 5 of the stamina +throwing star, meaning it'll do a little more damage than the stamina throwing star does as well. +Changes to this item need to be approved by all maintainers, so if you do change it, make sure +you go through the proper channels, lest you get permabanned. Do I make myself clear?

\ No newline at end of file diff --git a/obj/item/tk_grab.html b/obj/item/tk_grab.html new file mode 100644 index 0000000000000..002ef3664049a --- /dev/null +++ b/obj/item/tk_grab.html @@ -0,0 +1 @@ +/obj/item/tk_grab - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tk_grab

Vars

focusObject focused / selected by the TK user

Var Details

focus

Object focused / selected by the TK user

\ No newline at end of file diff --git a/obj/item/towel.html b/obj/item/towel.html new file mode 100644 index 0000000000000..b5204b0633943 --- /dev/null +++ b/obj/item/towel.html @@ -0,0 +1,68 @@ +/obj/item/towel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

towel

Vars

max_reagent_volumeHow many units of liquid can this towel store?
shapeThe shape we're currently in.
wetAre we currently wet?

Procs

attack_on_liquids_turfThe procedure for remove liquids from turf
change_towel_shapeHelper to change the shape of the towel, so that it updates its look both +in-hand and on the body of the wearer.
make_usedSimple helper to make the towel into a used towel shape.
set_wetHelper proc to handle setting the towel's wet variable, changing the icon_state +accordingly and making the towel look a little damp if wet, and removing that +color if not wet.
transfer_reagents_to_towelHelper to transfer reagents to the towel.
transfer_towel_reagents_toHelper to transfer reagents from the towel to something else, handling all +the work related to ensuring that the towel gets updated visually if it now +becomes dry, while also optionally applying a loss factor to the transfer.
update_slot_related_flagsHelper proc to change the slot flags of the towel based on its shape.

Var Details

max_reagent_volume

How many units of liquid can this towel store?

shape

The shape we're currently in.

wet

Are we currently wet?

Proc Details

attack_on_liquids_turf

The procedure for remove liquids from turf

+

The object is called from liquid_interaction element. +The procedure check range of mop owner and tile, then check reagents in mop, if reagents volume < mop capacity - liquids absorbs from tile +In another way, input a chat about mop capacity +Arguments:

+
    +
  • towel - Towel used to absorb liquids
  • +
  • tile - On which tile the towel will try to absorb liquids
  • +
  • user - Who tries to absorb liquids with the towel
  • +
  • liquids - Liquids that user tries to absorb with the towel
  • +

change_towel_shape

Helper to change the shape of the towel, so that it updates its look both +in-hand and on the body of the wearer.

+

Arguments:

+
    +
  • user - Mob that's trying to change the shape of the towel.
  • +
  • new_shape - The new shape that the towel can be in.
  • +
  • silent (optional) - Whether we produce a to_chat to the user to elaborate on +the new shape it is now in. Requires user to be non-null if TRUE in order to +do anything. Defaults to FALSE.
  • +

make_used

Simple helper to make the towel into a used towel shape.

+

Arguments:

+
    +
  • user - Mob that's making the towel used. Can be null if silent is FALSE.
  • +
  • silent (optional) - Whether we produce a to_chat to the user to elaborate on +the new shape it is now in. Requires user to be non-null if TRUE in order to +do anything. Defaults to FALSE.
  • +

set_wet

Helper proc to handle setting the towel's wet variable, changing the icon_state +accordingly and making the towel look a little damp if wet, and removing that +color if not wet.

+

Arguments:

+
    +
  • new_wetness - Whether we're now wet or not.
  • +
  • update_visuals (optional) - Whether we call update_appearance() and +update_slot_icon(). Set to FALSE if you're already calling a proc that +updates the towel's appearance, like change_towel_shape() (if you're sure +that it WILL change the appearance). Defaults to TRUE.
  • +

transfer_reagents_to_towel

Helper to transfer reagents to the towel.

+

Arguments:

+
    +
  • source - Reagents source of the reagents transfer.
  • +
  • amount - Amount of reagents that are going to be affected by the transfer. +Won't go above the maximum amount of volume of the towel, and it will handle +making sure that it uses the right amount of reagents if the source doesn't +have enough reagents for it.
  • +
  • user - Mob that does the transfer, if any.
  • +
  • make_used (optional) - Whether or not we change the towel to the used sprite. +Defaults to TRUE.
  • +

transfer_towel_reagents_to

Helper to transfer reagents from the towel to something else, handling all +the work related to ensuring that the towel gets updated visually if it now +becomes dry, while also optionally applying a loss factor to the transfer.

+

Arguments:

+
    +
  • target - Reagents target of the reagents transfer.
  • +
  • amount - Amount of reagents that are going to be affected by the transfer. +Won't go above the maximum amount of volume of the target, and it will handle +making sure that it uses the right amount of reagents if the towel doesn't +have enough reagents in it for it.
  • +
  • user - Mob that does the transfer, if any.
  • +
  • loss_factor (optional) - Factor of reagents that get lost during transfer. +Defaults to 0.
  • +
  • make_used (optional) - Whether or not we change the towel to the used sprite. +Defaults to FALSE.
  • +

Helper proc to change the slot flags of the towel based on its shape.

\ No newline at end of file diff --git a/obj/item/toy/balloon.html b/obj/item/toy/balloon.html new file mode 100644 index 0000000000000..3ce507b7af35d --- /dev/null +++ b/obj/item/toy/balloon.html @@ -0,0 +1 @@ +/obj/item/toy/balloon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

balloon

Vars

current_colorthe string describing the name of balloon's current colour.

Var Details

current_color

the string describing the name of balloon's current colour.

\ No newline at end of file diff --git a/obj/item/toy/balloon/long.html b/obj/item/toy/balloon/long.html new file mode 100644 index 0000000000000..6ccc1a8993f37 --- /dev/null +++ b/obj/item/toy/balloon/long.html @@ -0,0 +1 @@ +/obj/item/toy/balloon/long - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

long

Vars

balloon_combosCombinations of balloon colours to make specific animals.

Var Details

balloon_combos

Combinations of balloon colours to make specific animals.

\ No newline at end of file diff --git a/obj/item/toy/basketball.html b/obj/item/toy/basketball.html new file mode 100644 index 0000000000000..1f4d8a791f045 --- /dev/null +++ b/obj/item/toy/basketball.html @@ -0,0 +1,8 @@ +/obj/item/toy/basketball - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

basketball

Vars

last_useSo they can't spam dribbling (at least not too much)
pickup_cooldownPickup restriction cooldown
pickup_restriction_ckeysList of player ckeys who aren't allowed to pickup the ball (after scoring) +This resets after someone else picks up the ball or a certain amount of time has passed
stepsSo the basketball doesn't make sound every step
wielderThe person dribbling the basketball

Procs

after_throw_resetAfter a ball is thrown we need to reset the pass_flags since shooting lets you shoot through mobs
on_equipped_mob_disarmUsed to calculate our disarm chance based on stamina, direction, and spinning +Note - monkeys use attack_paw() and never trigger this signal (so they always have 100% disarm)

Var Details

last_use

So they can't spam dribbling (at least not too much)

pickup_cooldown

Pickup restriction cooldown

pickup_restriction_ckeys

List of player ckeys who aren't allowed to pickup the ball (after scoring) +This resets after someone else picks up the ball or a certain amount of time has passed

steps

So the basketball doesn't make sound every step

wielder

The person dribbling the basketball

Proc Details

after_throw_reset

After a ball is thrown we need to reset the pass_flags since shooting lets you shoot through mobs

+
    +
  • source: Datum src from original signal call
  • +

on_equipped_mob_disarm

Used to calculate our disarm chance based on stamina, direction, and spinning +Note - monkeys use attack_paw() and never trigger this signal (so they always have 100% disarm)

\ No newline at end of file diff --git a/obj/item/toy/captainsaid.html b/obj/item/toy/captainsaid.html new file mode 100644 index 0000000000000..fbb8cc5b600e7 --- /dev/null +++ b/obj/item/toy/captainsaid.html @@ -0,0 +1 @@ +/obj/item/toy/captainsaid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

captainsaid

Vars

current_modeCurrent mode of the item, changed when cycling through modes
modesList of modes it can cycle through

Var Details

current_mode

Current mode of the item, changed when cycling through modes

modes

List of modes it can cycle through

\ No newline at end of file diff --git a/obj/item/toy/cards.html b/obj/item/toy/cards.html new file mode 100644 index 0000000000000..550b89232a14b --- /dev/null +++ b/obj/item/toy/cards.html @@ -0,0 +1,25 @@ +/obj/item/toy/cards - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cards

Vars

can_play_52_card_pickupDo all the cards drop to the floor when thrown at a person
card_atomsList of card atoms for a hand or deck
initial_cardsThe initial cards in the deck. Each entry is either:

Procs

count_cardsReturns the number of cards in the deck. +Avoids creating any cards if it is unnecessary.
drawDraws a card from the deck or hand of cards.
fetch_card_atomsReturns the cards in this deck. +Lazily generates the cards if they haven't already been made.
insertThis is used to insert a list of cards into a deck or cardhand
throw_impactThis is how we play 52 card pickup

Var Details

can_play_52_card_pickup

Do all the cards drop to the floor when thrown at a person

card_atoms

List of card atoms for a hand or deck

initial_cards

The initial cards in the deck. Each entry is either:

+
    +
  • A string, representing the card name
  • +
  • A /datum/deck_card, which will turn into the card
  • +
  • A path that is a subtype of /datum/deck_card, which will be instantiated, then turned into the card
  • +

Proc Details

count_cards

Returns the number of cards in the deck. +Avoids creating any cards if it is unnecessary.

draw

Draws a card from the deck or hand of cards.

+

Draws the top card unless a card arg is supplied then it picks that specific card +and returns it (the card arg is used by the radial menu for cardhands to select +specific cards out of the cardhand) +Arguments:

+
    +
  • mob/living/user - The user drawing the card.
  • +
  • obj/item/toy/singlecard/card (optional) - The card drawn from the hand
  • +

fetch_card_atoms

Returns the cards in this deck. +Lazily generates the cards if they haven't already been made.

insert

This is used to insert a list of cards into a deck or cardhand

+

All cards that are inserted have their angle and pixel offsets reset to zero however their +flip state does not change unless it's being inserted into a deck which is always facedown +(see the deck/insert proc)

+

Arguments:

+
    +
  • card_item - Either a singlecard or cardhand that gets inserted into the src
  • +

throw_impact

This is how we play 52 card pickup

\ No newline at end of file diff --git a/obj/item/toy/cards/deck.html b/obj/item/toy/cards/deck.html new file mode 100644 index 0000000000000..ccd5cbb9c4f75 --- /dev/null +++ b/obj/item/toy/cards/deck.html @@ -0,0 +1,5 @@ +/obj/item/toy/cards/deck - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

deck

Vars

cardgame_descThe description of the cardgame that is played with this deck (used for memories)
decksizeThe amount of cards to spawn in the deck (optional)
deckstyleThe art style of deck used (determines both deck and card icons used)
has_unique_card_iconsIf the cards in the deck have different card faces icons (blank and CAS decks do not)
holodeckThe holodeck computer used to spawn a holographic deck (see /obj/item/toy/cards/deck/syndicate/holographic)
is_standard_deckIf the deck is the standard 52 playing card deck (used for poker and blackjack)
shuffle_cooldownDeck shuffling cooldown.
shuffle_timeThe amount of time it takes to shuffle

Procs

CardgameEventThis checks if nearby mobs are playing a cardgame and triggers a mood and memory
shuffle_cardsShuffles the cards in the deck
throw_impactThis is how we play 52 card pickup

Var Details

cardgame_desc

The description of the cardgame that is played with this deck (used for memories)

decksize

The amount of cards to spawn in the deck (optional)

deckstyle

The art style of deck used (determines both deck and card icons used)

has_unique_card_icons

If the cards in the deck have different card faces icons (blank and CAS decks do not)

holodeck

The holodeck computer used to spawn a holographic deck (see /obj/item/toy/cards/deck/syndicate/holographic)

is_standard_deck

If the deck is the standard 52 playing card deck (used for poker and blackjack)

shuffle_cooldown

Deck shuffling cooldown.

shuffle_time

The amount of time it takes to shuffle

Proc Details

CardgameEvent

This checks if nearby mobs are playing a cardgame and triggers a mood and memory

shuffle_cards

Shuffles the cards in the deck

+

Arguments:

+
    +
  • user - The person shuffling the cards.
  • +

throw_impact

This is how we play 52 card pickup

\ No newline at end of file diff --git a/obj/item/toy/cards/deck/tarot/haunted.html b/obj/item/toy/cards/deck/tarot/haunted.html new file mode 100644 index 0000000000000..808756181c6e6 --- /dev/null +++ b/obj/item/toy/cards/deck/tarot/haunted.html @@ -0,0 +1 @@ +/obj/item/toy/cards/deck/tarot/haunted - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

haunted

Vars

ghost_alert_cooldownghost notification cooldown

Var Details

ghost_alert_cooldown

ghost notification cooldown

\ No newline at end of file diff --git a/obj/item/toy/crayon.html b/obj/item/toy/crayon.html new file mode 100644 index 0000000000000..f9427981750bb --- /dev/null +++ b/obj/item/toy/crayon.html @@ -0,0 +1,25 @@ +/obj/item/toy/crayon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

crayon

Vars

actually_paintsIf set to false, this just applies a chemical and cannot paint symbols
all_drawablesCombined lists
can_change_colourIf the user can toggle the colour, a la vanilla spraycan
chargesNumber of times this item can be used, INFINITE_CHARGES for unlimited
charges_leftNumber of remaining charges
crayon_colorCrayon overlay to use if placed into a crayon box
drawingsList of selectable drawing options
drawtypeContains chosen symbol to draw
edibleWhether or not you can eat this. Doesn't mean it is a good idea to eat it.
expose_turfsIf true, sprayed turfs should also have the internal chemical applied to them
graffitiList of selectable graffiti options +If an associated value is present, the graffiti has its own cost +otherwise it'll be the default value. +Ditto with the other other lists below.
graffiti_large_hList of selectable large options
has_capWhether this item has a cap that can be toggled on and off
icon_cappedIcon state to use when capped
icon_uncappedIcon state to use when uncapped
instantIf false a do_after is required to draw something, otherwise it applies immediately
is_cappedWhether the cap is currently on or off
orientedList of selectable orientable options
overlay_paint_colourIf true, a coloured overlay is applied to display the currently selected colour
paint_colorCurrent paint colour
paint_modeDictates how large of an area we cover with our paint
post_noiseWhether to play a sound after using
pre_noiseWhether to play a sound before using
randomsList of selectable random options
reagent_contentsReagents which are applied to things you use this on, or yourself if you eat it
runesList of selectable rune options
self_containedIf true, this deletes itself when empty
symbolsList of selectable symbol options
text_bufferStores buffer of text to draw, one character at a time
volume_multiplierMultiplies effect of reagent when applied to mobs or surfaces

Procs

after_eatUsed for edible component to reduce charges_left on bite.
can_use_onIs this a valid object for use_on to run on?
check_emptyWhen eating a crayon, check_empty() can be called twice producing two messages unless we check for being deleted first.
refillRefills charges_left in infinite crayons on use. +Sets charges_left in infinite crayons to 100 for spawning reagents. +Spawns reagents in crayons based on the amount of charges_left if not spawned yet.
set_painting_tool_colorSets painting color and updates appearance.
use_chargesReturns number of charges actually used.
use_onAttempts to color the target.

Var Details

actually_paints

If set to false, this just applies a chemical and cannot paint symbols

all_drawables

Combined lists

can_change_colour

If the user can toggle the colour, a la vanilla spraycan

charges

Number of times this item can be used, INFINITE_CHARGES for unlimited

charges_left

Number of remaining charges

crayon_color

Crayon overlay to use if placed into a crayon box

drawings

List of selectable drawing options

drawtype

Contains chosen symbol to draw

edible

Whether or not you can eat this. Doesn't mean it is a good idea to eat it.

expose_turfs

If true, sprayed turfs should also have the internal chemical applied to them

graffiti

List of selectable graffiti options +If an associated value is present, the graffiti has its own cost +otherwise it'll be the default value. +Ditto with the other other lists below.

graffiti_large_h

List of selectable large options

has_cap

Whether this item has a cap that can be toggled on and off

icon_capped

Icon state to use when capped

icon_uncapped

Icon state to use when uncapped

instant

If false a do_after is required to draw something, otherwise it applies immediately

is_capped

Whether the cap is currently on or off

oriented

List of selectable orientable options

overlay_paint_colour

If true, a coloured overlay is applied to display the currently selected colour

paint_color

Current paint colour

paint_mode

Dictates how large of an area we cover with our paint

post_noise

Whether to play a sound after using

pre_noise

Whether to play a sound before using

randoms

List of selectable random options

reagent_contents

Reagents which are applied to things you use this on, or yourself if you eat it

runes

List of selectable rune options

self_contained

If true, this deletes itself when empty

symbols

List of selectable symbol options

text_buffer

Stores buffer of text to draw, one character at a time

volume_multiplier

Multiplies effect of reagent when applied to mobs or surfaces

Proc Details

after_eat

Used for edible component to reduce charges_left on bite.

can_use_on

Is this a valid object for use_on to run on?

check_empty

When eating a crayon, check_empty() can be called twice producing two messages unless we check for being deleted first.

+

Arguments:

+
    +
  • user - the user.
  • +
  • amount - used for use_on() and when requires_full is TRUE
  • +
  • requires_full - if TRUE and charges_left < amount it will balloon_alert you. Used just for borgs spraycan it seems.
  • +
  • override_infinity - if TRUE it will override checks for infinite crayons.
  • +

refill

Refills charges_left in infinite crayons on use. +Sets charges_left in infinite crayons to 100 for spawning reagents. +Spawns reagents in crayons based on the amount of charges_left if not spawned yet.

set_painting_tool_color

Sets painting color and updates appearance.

use_charges

Returns number of charges actually used.

+

Arguments:

+
    +
  • user - the user.
  • +
  • amount - how much charges do we reduce.
  • +
  • requires_full - Seems to transfer its data to the same argument on check_empty(). I'm not sure tho.
  • +
  • override_infinity - if TRUE stops infinite crayons from refilling.
  • +

use_on

Attempts to color the target.

\ No newline at end of file diff --git a/obj/item/toy/eightball.html b/obj/item/toy/eightball.html new file mode 100644 index 0000000000000..3baaa79b17067 --- /dev/null +++ b/obj/item/toy/eightball.html @@ -0,0 +1,5 @@ +/obj/item/toy/eightball - /tg/ Station 13
/tg/ Station 13 - Modules - Types

eightball

Applies a gradient and a gradient color to a mob.

+

Arguments:

+
    +
  • target - The mob who we will apply the gradient and gradient color to.
  • +
\ No newline at end of file diff --git a/obj/item/toy/eldritch_book.html b/obj/item/toy/eldritch_book.html new file mode 100644 index 0000000000000..a6283fadfd9be --- /dev/null +++ b/obj/item/toy/eldritch_book.html @@ -0,0 +1 @@ +/obj/item/toy/eldritch_book - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

eldritch_book

Vars

book_openHelps determine the icon state of this item when it's used on self.
timer_idid for timer

Procs

close_animationPlays a closing animation and resets the icon state.
open_animationPlays a little animation that shows the book opening and closing.

Var Details

book_open

Helps determine the icon state of this item when it's used on self.

timer_id

id for timer

Proc Details

close_animation

Plays a closing animation and resets the icon state.

open_animation

Plays a little animation that shows the book opening and closing.

\ No newline at end of file diff --git a/obj/item/toy/intento.html b/obj/item/toy/intento.html new file mode 100644 index 0000000000000..782e321fbe349 --- /dev/null +++ b/obj/item/toy/intento.html @@ -0,0 +1 @@ +/obj/item/toy/intento - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

intento

Vars

current_sequenceCurrent sequence of intents
indexIndex used for iteration of steps for both demo and retaliation states
next_icon_resetTime until we reset the icon of the Intento
next_processTime to delay until we start processing whatever state we're in
player_sequenceSequence player inputs
scoreScore of the player
sound_by_intentAssociated list of intents to their sounds
stateWhat state the toy is in.

Var Details

current_sequence

Current sequence of intents

index

Index used for iteration of steps for both demo and retaliation states

next_icon_reset

Time until we reset the icon of the Intento

next_process

Time to delay until we start processing whatever state we're in

player_sequence

Sequence player inputs

score

Score of the player

sound_by_intent

Associated list of intents to their sounds

state

What state the toy is in.

\ No newline at end of file diff --git a/obj/item/toy/mecha.html b/obj/item/toy/mecha.html new file mode 100644 index 0000000000000..09910e457ae73 --- /dev/null +++ b/obj/item/toy/mecha.html @@ -0,0 +1,48 @@ +/obj/item/toy/mecha - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mecha

Vars

combat_healthThe mech's health in battle
cooldownCooldown between play sessions
cooldown_multiplierCooldown multiplier after a battle (by default: battle cooldowns are 30 seconds)
in_combatTRUE = in combat currently || FALSE = Not in combat
losses...And their loss count in combat
max_combat_healthThe mech's max combat health
quietIf it makes noise when played with
special_attack_chargedTRUE = the special attack is charged || FALSE = not charged
special_attack_cooldownCurrent cooldown of their special attack
special_attack_cryThe battlecry when using the special attack
special_attack_typeWhat type of special attack they use - SPECIAL_ATTACK_DAMAGE, SPECIAL_ATTACK_HEAL, SPECIAL_ATTACK_UTILITY, SPECIAL_ATTACK_OTHER
special_attack_type_messageWhat message their special move gets on examining
timerTimer when it'll be off cooldown
wants_to_battleTRUE = Offering battle to someone || FALSE = Not offering battle
winsThis mech's win count in combat

Procs

attackAttack is called from the user's toy, aimed at target(another human), checking for target's toy.
attack_tkOverrides attack_tk - Sorry, you have to be face to face to initiate a battle, it's good sportsmanship
attackbyIf you attack a mech with a mech, initiate combat between them
check_battle_startThis proc checks if a battle can be initiated between src and attacker.
combat_sleepthis proc combines "sleep" while also checking for if the battle should continue
mecha_brawlThe 'master' proc of the mech battle. Processes the entire battle's events and makes sure it start and finishes correctly.
special_attack_moveProcesses any special attack moves that happen in the battle (called in the mechaBattle proc).
suicide_actStarts a battle, toy mech vs player. Player... doesn't win.
super_special_attackBase proc for 'other' special attack moves.
withdraw_offerResets the request for battle.

Var Details

combat_health

The mech's health in battle

cooldown

Cooldown between play sessions

cooldown_multiplier

Cooldown multiplier after a battle (by default: battle cooldowns are 30 seconds)

in_combat

TRUE = in combat currently || FALSE = Not in combat

losses

...And their loss count in combat

max_combat_health

The mech's max combat health

quiet

If it makes noise when played with

special_attack_charged

TRUE = the special attack is charged || FALSE = not charged

special_attack_cooldown

Current cooldown of their special attack

special_attack_cry

The battlecry when using the special attack

special_attack_type

What type of special attack they use - SPECIAL_ATTACK_DAMAGE, SPECIAL_ATTACK_HEAL, SPECIAL_ATTACK_UTILITY, SPECIAL_ATTACK_OTHER

special_attack_type_message

What message their special move gets on examining

timer

Timer when it'll be off cooldown

wants_to_battle

TRUE = Offering battle to someone || FALSE = Not offering battle

wins

This mech's win count in combat

Proc Details

attack

Attack is called from the user's toy, aimed at target(another human), checking for target's toy.

attack_tk

Overrides attack_tk - Sorry, you have to be face to face to initiate a battle, it's good sportsmanship

attackby

If you attack a mech with a mech, initiate combat between them

check_battle_start

This proc checks if a battle can be initiated between src and attacker.

+

Both SRC and attacker (if attacker is included) timers are checked if they're on cooldown, and +both SRC and attacker (if attacker is included) are checked if they are in combat already. +If any of the above are true, the proc returns FALSE and sends a message to user (and target, if included) otherwise, it returns TRUE +Arguments:

+
    +
  • user: the user who is initiating the battle
  • +
  • attacker: optional arg for checking two mechs at once
  • +
  • target: optional arg used in Mech PvP battles (if used, attacker is target's toy)
  • +

combat_sleep

this proc combines "sleep" while also checking for if the battle should continue

+

this goes through some of the checks - the toys need to be next to each other to fight! +if it's player vs themself: They need to be able to "control" both mechs (either must be adjacent or using TK) +if it's player vs player: Both players need to be able to "control" their mechs (either must be adjacent or using TK) +if it's player vs mech (suicide): the mech needs to be in range of the player +if all the checks are TRUE, it does the sleeps, and returns TRUE. Otherwise, it returns FALSE. +Arguments:

+
    +
  • delay - the amount of time the sleep at the end of the check will sleep for
  • +
  • attacker - the attacking toy in the battle.
  • +
  • attacker_controller - the controller of the attacking toy. there should ALWAYS be an attacker_controller
  • +
  • opponent - (optional) the defender controller in the battle, for PvP
  • +

mecha_brawl

The 'master' proc of the mech battle. Processes the entire battle's events and makes sure it start and finishes correctly.

+

src is the defending toy, and the battle proc is called on it to begin the battle. +After going through a few checks at the beginning to ensure the battle can start properly, the battle begins a loop that lasts +until either toy has no more health. During this loop, it also ensures the mechs stay in combat range of each other. +It will then randomly decide attacks for each toy, occasionally making one or the other use their special attack. +When either mech has no more health, the loop ends, and it displays the victor and the loser while updating their stats and resetting them. +Arguments:

+
    +
  • attacker - the attacking toy, the toy in the attacker_controller's hands
  • +
  • attacker_controller - the user, the one who is holding the toys / controlling the fight
  • +
  • opponent - optional arg used in Mech PvP battles: the other person who is taking part in the fight (controls src)
  • +

special_attack_move

Processes any special attack moves that happen in the battle (called in the mechaBattle proc).

+

Makes the toy shout their special attack cry and updates its cooldown. Then, does the special attack. +Arguments:

+
    +
  • victim - the toy being hit by the special move
  • +

suicide_act

Starts a battle, toy mech vs player. Player... doesn't win.

super_special_attack

Base proc for 'other' special attack moves.

+

This one is only for inheritance, each mech with an 'other' type move has their procs below. +Arguments:

+
    +
  • victim - the toy being hit by the super special move (doesn't necessarily need to be used)
  • +

withdraw_offer

Resets the request for battle.

+

For use in a timer, this proc resets the wants_to_battle variable after a short period. +Arguments:

+
    +
  • user - the user wanting to do battle
  • +
\ No newline at end of file diff --git a/obj/item/toy/plush.html b/obj/item/toy/plush.html new file mode 100644 index 0000000000000..347fb0bdcda3f --- /dev/null +++ b/obj/item/toy/plush.html @@ -0,0 +1 @@ +/obj/item/toy/plush - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plush

Vars

divinePrevents players from cutting stuffing out of a plushie if true

Var Details

divine

Prevents players from cutting stuffing out of a plushie if true

\ No newline at end of file diff --git a/obj/item/toy/plush/goatplushie.html b/obj/item/toy/plush/goatplushie.html new file mode 100644 index 0000000000000..109f9ae2aa884 --- /dev/null +++ b/obj/item/toy/plush/goatplushie.html @@ -0,0 +1 @@ +/obj/item/toy/plush/goatplushie - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

goatplushie

Vars

going_hardWhether or not this goat is currently taking in a monsterous doink
splatWhether or not this goat has been flattened like a funny pancake

Var Details

going_hard

Whether or not this goat is currently taking in a monsterous doink

splat

Whether or not this goat has been flattened like a funny pancake

\ No newline at end of file diff --git a/obj/item/toy/plush/moth.html b/obj/item/toy/plush/moth.html new file mode 100644 index 0000000000000..6655a5e3ff6de --- /dev/null +++ b/obj/item/toy/plush/moth.html @@ -0,0 +1 @@ +/obj/item/toy/plush/moth - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

moth

Vars

suicide_countUsed to track how many people killed themselves with item/toy/plush/moth

Var Details

suicide_count

Used to track how many people killed themselves with item/toy/plush/moth

\ No newline at end of file diff --git a/obj/item/toy/plush/skyrat/zapp.html b/obj/item/toy/plush/skyrat/zapp.html new file mode 100644 index 0000000000000..2cd528a1bcb6d --- /dev/null +++ b/obj/item/toy/plush/skyrat/zapp.html @@ -0,0 +1 @@ +/obj/item/toy/plush/skyrat/zapp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

zapp

Vars

hit_responsethe list that is chosen from when it hits a human or is hit by something
skill_responsethe list that is chosen from depending on gaming skill

Var Details

hit_response

the list that is chosen from when it hits a human or is hit by something

skill_response

the list that is chosen from depending on gaming skill

\ No newline at end of file diff --git a/obj/item/toy/plush/whiny_plushie.html b/obj/item/toy/plush/whiny_plushie.html new file mode 100644 index 0000000000000..5d750cda27b3b --- /dev/null +++ b/obj/item/toy/plush/whiny_plushie.html @@ -0,0 +1 @@ +/obj/item/toy/plush/whiny_plushie - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

whiny_plushie

Vars

cry_alone_messagesstatic list of cry messages it picks from to speak when it is insecure from no holder
cry_cooldowncooldown for it sending messages, it will every 10 seconds
cry_still_messagesstatic list of cry messages it picks from to speak when it is insecure from no movement

Var Details

cry_alone_messages

static list of cry messages it picks from to speak when it is insecure from no holder

cry_cooldown

cooldown for it sending messages, it will every 10 seconds

cry_still_messages

static list of cry messages it picks from to speak when it is insecure from no movement

\ No newline at end of file diff --git a/obj/item/toy/singlecard.html b/obj/item/toy/singlecard.html new file mode 100644 index 0000000000000..54899a77e8aa6 --- /dev/null +++ b/obj/item/toy/singlecard.html @@ -0,0 +1,9 @@ +/obj/item/toy/singlecard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

singlecard

Vars

blankThe card is blank and can be written on with a pen.
cardnameThe name of the card
deckstyleArtistic style of the deck
flippedIs the card flipped facedown (FALSE) or flipped faceup (TRUE)
has_unique_card_iconsIf the cards in the deck have different icon states (blank and CAS decks do not)
marked_colorThe color used to mark a card for cheating (by pens or crayons)

Procs

FlipFlips the card over
getMarkedColorReturns a color if a card is marked and the user can see it

Var Details

blank

The card is blank and can be written on with a pen.

cardname

The name of the card

deckstyle

Artistic style of the deck

flipped

Is the card flipped facedown (FALSE) or flipped faceup (TRUE)

has_unique_card_icons

If the cards in the deck have different icon states (blank and CAS decks do not)

marked_color

The color used to mark a card for cheating (by pens or crayons)

Proc Details

Flip

Flips the card over

+
    +
  • Arguments:
  • +
  • is_face_up (optional) - Sets flipped state to CARD_FACEDOWN or CARD_FACEUP if given (otherwise just invert the flipped state)
  • +

getMarkedColor

Returns a color if a card is marked and the user can see it

+
    +
  • Arguments:
  • +
  • user - We need to check if the user see the marked card
  • +
\ No newline at end of file diff --git a/obj/item/toy/spinningtoy.html b/obj/item/toy/spinningtoy.html new file mode 100644 index 0000000000000..1bad397d13b0f --- /dev/null +++ b/obj/item/toy/spinningtoy.html @@ -0,0 +1,8 @@ +/obj/item/toy/spinningtoy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

spinningtoy

Procs

manual_suicideInternal function used in the toy singularity suicide

Proc Details

manual_suicide

Internal function used in the toy singularity suicide

+

Cavity implants the toy singularity into the body of the user (arg1), and kills the user. +Makes the user vomit and receive 120 suffocation damage if there already is a cavity implant in the user. +Throwing the singularity away will cause the user to start choking themself to death. +Arguments:

+
    +
  • user - Whoever is doing the suiciding
  • +
\ No newline at end of file diff --git a/obj/item/toy/sword.html b/obj/item/toy/sword.html new file mode 100644 index 0000000000000..9541f710a9874 --- /dev/null +++ b/obj/item/toy/sword.html @@ -0,0 +1 @@ +/obj/item/toy/sword - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sword

Vars

hackedWhether our sword has been multitooled to rainbow
saber_colorThe color of our fake energy sword

Var Details

hacked

Whether our sword has been multitooled to rainbow

saber_color

The color of our fake energy sword

\ No newline at end of file diff --git a/obj/item/toy/xmas_cracker.html b/obj/item/toy/xmas_cracker.html new file mode 100644 index 0000000000000..4940e97872fa3 --- /dev/null +++ b/obj/item/toy/xmas_cracker.html @@ -0,0 +1 @@ +/obj/item/toy/xmas_cracker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

xmas_cracker

Vars

crackedThe crack state of the toy. If set to TRUE, you can no longer crack it by attacking.

Var Details

cracked

The crack state of the toy. If set to TRUE, you can no longer crack it by attacking.

\ No newline at end of file diff --git a/obj/item/trade_chip.html b/obj/item/trade_chip.html new file mode 100644 index 0000000000000..bdd88ae039640 --- /dev/null +++ b/obj/item/trade_chip.html @@ -0,0 +1 @@ +/obj/item/trade_chip - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

trade_chip

Supply pack unlocker chip

Vars

unlocked_pack_typeSupply pack type enabled by this chip

Var Details

unlocked_pack_type

Supply pack type enabled by this chip

\ No newline at end of file diff --git a/obj/item/training_toolbox.html b/obj/item/training_toolbox.html new file mode 100644 index 0000000000000..581ad04ce2022 --- /dev/null +++ b/obj/item/training_toolbox.html @@ -0,0 +1,8 @@ +/obj/item/training_toolbox - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

training_toolbox

Device that simply counts the number of times you've hit a mob or target with. Looks like a toolbox but isn't.

+

Also has a 'Lap' function for keeping track of hits made at a certain point. Also, looks kinda like his grace for laughs and pranks.

Vars

lap_hitsNumber of hits made since the Lap button (alt-click) was last pushed
total_hitsTotal number of hits made against a valid target

Procs

check_hitCheck if we should increment the hit counter

Var Details

lap_hits

Number of hits made since the Lap button (alt-click) was last pushed

total_hits

Total number of hits made against a valid target

Proc Details

check_hit

Check if we should increment the hit counter

+

Increments the 'hit' counter if the target we're attacking is a mob, target, or training machine with an attached item. +Will beep every 9 hits, as 9 hits usually signifies a KO with a normal toolbox +Arguments

+
    +
  • target - the atom we're hitting
  • +
\ No newline at end of file diff --git a/obj/item/traitor_bug.html b/obj/item/traitor_bug.html new file mode 100644 index 0000000000000..6021a992e8482 --- /dev/null +++ b/obj/item/traitor_bug.html @@ -0,0 +1 @@ +/obj/item/traitor_bug - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

traitor_bug

Vars

deploy_timeThe time it takes to place this bug.
planted_onThe object this bug is currently planted on.
target_object_typeThe object on which this bug can be planted on. Has to be a type.

Var Details

deploy_time

The time it takes to place this bug.

planted_on

The object this bug is currently planted on.

target_object_type

The object on which this bug can be planted on. Has to be a type.

\ No newline at end of file diff --git a/obj/item/traitor_machine_trapper.html b/obj/item/traitor_machine_trapper.html new file mode 100644 index 0000000000000..700a7f1f4f4fe --- /dev/null +++ b/obj/item/traitor_machine_trapper.html @@ -0,0 +1 @@ +/obj/item/traitor_machine_trapper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

traitor_machine_trapper

Item which you use on a machine to cause it to explode next time someone interacts with it

Vars

deploy_timeThe time it takes to deploy the bomb.
explosion_rangeLight explosion range, to hurt the person using the machine
target_machine_pathThe type of object on which this can be planted on.

Procs

on_defusedCalled when applied trap has been defused, retrieve this item from nullspace
on_triggeredCalled when applied trap is triggered, mark success

Var Details

deploy_time

The time it takes to deploy the bomb.

explosion_range

Light explosion range, to hurt the person using the machine

target_machine_path

The type of object on which this can be planted on.

Proc Details

on_defused

Called when applied trap has been defused, retrieve this item from nullspace

on_triggered

Called when applied trap is triggered, mark success

\ No newline at end of file diff --git a/obj/item/traitor_spraycan.html b/obj/item/traitor_spraycan.html new file mode 100644 index 0000000000000..045edb332a80a --- /dev/null +++ b/obj/item/traitor_spraycan.html @@ -0,0 +1,24 @@ +/obj/item/traitor_spraycan - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

traitor_spraycan

Vars

drawing_runeAre we currently drawing? Used to prevent spam clicks for do_while
expendedSet to true if we finished drawing something, this spraycan is now useless

Procs

draw_runeDraw your stage one rune on the ground and store it.
suicide_actCopying the functionality from normal spraycans, but doesn't need all the optional checks
try_complete_runeTry to upgrade a floor rune to its next stage.
try_draw_new_runeAttempt to draw a rune on [target_turf]. +Shamelessly adapted from the heretic rune drawing process.
try_draw_stepHolder for repeated code to do something after a message and a set amount of time.

Var Details

drawing_rune

Are we currently drawing? Used to prevent spam clicks for do_while

expended

Set to true if we finished drawing something, this spraycan is now useless

Proc Details

draw_rune

Draw your stage one rune on the ground and store it.

+

Arguments

+
    +
  • user - the mob drawing the rune
  • +
  • target_turf - the place the rune's being drawn
  • +

suicide_act

Copying the functionality from normal spraycans, but doesn't need all the optional checks

try_complete_rune

Try to upgrade a floor rune to its next stage.

+

Arguments

+
    +
  • user - the mob drawing the rune
  • +
  • target_turf - the place the rune's being drawn
  • +

try_draw_new_rune

Attempt to draw a rune on [target_turf]. +Shamelessly adapted from the heretic rune drawing process.

+

Arguments

+
    +
  • user - the mob drawing the rune
  • +
  • target_turf - the place the rune's being drawn
  • +

try_draw_step

Holder for repeated code to do something after a message and a set amount of time.

+

Arguments

+
    +
  • output - a string to show when you start the process
  • +
  • user - the mob drawing the rune
  • +
  • target - what they're trying to draw, or the place they are trying to draw on
  • +
\ No newline at end of file diff --git a/obj/item/transfer_valve.html b/obj/item/transfer_valve.html new file mode 100644 index 0000000000000..b5ad873449ed8 --- /dev/null +++ b/obj/item/transfer_valve.html @@ -0,0 +1 @@ +/obj/item/transfer_valve - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

transfer_valve

Vars

cable_overlayour overlay when wired = true
wireddo we have cables attached to be able to be put on the back?

Procs

merge_gasesMerge both gases into a single tank. Combine the volume by default. If target tank isn't specified default to tank_two
on_friedSignal when deep fried, so it can have an explosive reaction!
readyReturns if this is ready to be detonated. Checks if both tanks are in place.

Var Details

cable_overlay

our overlay when wired = true

wired

do we have cables attached to be able to be put on the back?

Proc Details

merge_gases

Merge both gases into a single tank. Combine the volume by default. If target tank isn't specified default to tank_two

on_fried

Signal when deep fried, so it can have an explosive reaction!

ready

Returns if this is ready to be detonated. Checks if both tanks are in place.

\ No newline at end of file diff --git a/obj/item/trapdoor_remote.html b/obj/item/trapdoor_remote.html new file mode 100644 index 0000000000000..9b2001bddc5a0 --- /dev/null +++ b/obj/item/trapdoor_remote.html @@ -0,0 +1,3 @@ +/obj/item/trapdoor_remote - /tg/ Station 13
/tg/ Station 13 - Modules - Types

trapdoor_remote

trapdoor remotes!

+

Item that accepts the assembly for the internals and helps link/activate it. +This base type is an empty shell that needs the assembly added to it first to work.

\ No newline at end of file diff --git a/obj/item/trash/bee.html b/obj/item/trash/bee.html new file mode 100644 index 0000000000000..b17b9e21a46c3 --- /dev/null +++ b/obj/item/trash/bee.html @@ -0,0 +1 @@ +/obj/item/trash/bee - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bee

Vars

bee_typethe bee of this corpse
beegentthe reagent the bee carry

Procs

use_lazarusSpawn a new bee from this trash item when hit by a lazarus injector and conditions are met.

Var Details

bee_type

the bee of this corpse

beegent

the reagent the bee carry

Proc Details

use_lazarus

Spawn a new bee from this trash item when hit by a lazarus injector and conditions are met.

\ No newline at end of file diff --git a/obj/item/turbine_parts.html b/obj/item/turbine_parts.html new file mode 100644 index 0000000000000..f7109b49859e9 --- /dev/null +++ b/obj/item/turbine_parts.html @@ -0,0 +1 @@ +/obj/item/turbine_parts - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

turbine_parts

Vars

current_tierCurrent part tier
fourth_tier_materialStores the path of the material for the fourth tier upgrade
fourth_tier_material_amountAmount of fourth tier material for the upgrade
max_rpmMax rpm reachable by the part
max_rpm_tier_multiplierMultiplier to increase the max rpm per tier, max should be around 500000 rpm
max_temperatureMax temperature achievable by the part before the turbine starts to take damage
max_temperature_tier_exponentialMax temperature exponential value per tier
max_tierMax part tier
part_efficiencyEfficiency of the part to the turbine machine
part_efficiency_increase_amountEfficiency increase amount for each tier
second_tier_materialStores the path of the material for the second tier upgrade
second_tier_material_amountAmount of second tier material for the upgrade
third_tier_materialStores the path of the material for the third tier upgrade
third_tier_material_amountAmount of third tier material for the upgrade

Var Details

current_tier

Current part tier

fourth_tier_material

Stores the path of the material for the fourth tier upgrade

fourth_tier_material_amount

Amount of fourth tier material for the upgrade

max_rpm

Max rpm reachable by the part

max_rpm_tier_multiplier

Multiplier to increase the max rpm per tier, max should be around 500000 rpm

max_temperature

Max temperature achievable by the part before the turbine starts to take damage

max_temperature_tier_exponential

Max temperature exponential value per tier

max_tier

Max part tier

part_efficiency

Efficiency of the part to the turbine machine

part_efficiency_increase_amount

Efficiency increase amount for each tier

second_tier_material

Stores the path of the material for the second tier upgrade

second_tier_material_amount

Amount of second tier material for the upgrade

third_tier_material

Stores the path of the material for the third tier upgrade

third_tier_material_amount

Amount of third tier material for the upgrade

\ No newline at end of file diff --git a/obj/item/turret_control.html b/obj/item/turret_control.html new file mode 100644 index 0000000000000..2b7dec9ff2d6f --- /dev/null +++ b/obj/item/turret_control.html @@ -0,0 +1 @@ +/obj/item/turret_control - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

turret_control

Vars

delayTicks before being able to shoot

Var Details

delay

Ticks before being able to shoot

\ No newline at end of file diff --git a/obj/item/udder.html b/obj/item/udder.html new file mode 100644 index 0000000000000..1d097420bc860 --- /dev/null +++ b/obj/item/udder.html @@ -0,0 +1,9 @@ +/obj/item/udder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

udder item

Abstract item that is held in nullspace and manages reagents. Created by udder component. +While perhaps reagents created by udder component COULD be managed in the mob, it would be somewhat finnicky and I actually like the abstract udders.

Vars

hunger_keyhunger key we set to look for food
on_generate_callbackoptional proc to callback to when the udder generates milk
production_probabilitythe probability that the udder will produce the reagent (0 - 100)
reagent_produced_typepathtypepath of reagent produced by the udder
require_consume_timerhow long does each food consumption allow us to make milk
require_consume_typedo we require some food to generate milk?
sizehow much the udder holds
udder_mobmob that has the udder component

Procs

generateProc called every 2 seconds from SSMobs to add whatever reagent the udder is generating.
initial_conditionsProc called on creation separate from the reagent datum creation to allow for signalled milk generation instead of processing milk generation +also useful for changing initial amounts in reagent holder (cows start with milk, gutlunches start empty)
milkProc called from attacking the component parent with the correct item, moves reagents into the glass basically.

Var Details

hunger_key

hunger key we set to look for food

on_generate_callback

optional proc to callback to when the udder generates milk

production_probability

the probability that the udder will produce the reagent (0 - 100)

reagent_produced_typepath

typepath of reagent produced by the udder

require_consume_timer

how long does each food consumption allow us to make milk

require_consume_type

do we require some food to generate milk?

size

how much the udder holds

udder_mob

mob that has the udder component

Proc Details

generate

Proc called every 2 seconds from SSMobs to add whatever reagent the udder is generating.

initial_conditions

Proc called on creation separate from the reagent datum creation to allow for signalled milk generation instead of processing milk generation +also useful for changing initial amounts in reagent holder (cows start with milk, gutlunches start empty)

milk

Proc called from attacking the component parent with the correct item, moves reagents into the glass basically.

+

Arguments:

+
    +
  • obj/item/reagent_containers/cup/milk_holder - what we are trying to transfer the reagents to
  • +
  • mob/user - who is trying to do this
  • +
\ No newline at end of file diff --git a/obj/item/universal_scanner.html b/obj/item/universal_scanner.html new file mode 100644 index 0000000000000..986ff1b06b500 --- /dev/null +++ b/obj/item/universal_scanner.html @@ -0,0 +1,5 @@ +/obj/item/universal_scanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

universal_scanner

Vars

cut_maxMaximum value for cut_multiplier in sales tagger mode.
cut_minMinimum value for cut_multiplier in sales tagger mode.
cut_multiplierThe person who tagged this will receive the sale value multiplied by this number in sales tagger mode.
max_paper_countThe maximum paper to be stored by the export scanner.
new_custom_priceThe price of the item used by price tagger mode.
paper_countThe paper currently stored by the export scanner.
payments_accThe account which is receiving the split profits in sales tagger mode.
scale_modeA list of all available export scanner modes.
scanning_modeWhich mode is the scanner currently on?

Procs

check_menucheck_menu: Checks if we are allowed to interact with a radial menu
export_scanScans an object, target, and provides its export value based on selling to the cargo shuttle, to mob/user.
price_tagScans an object, target, and sets its custom_price variable to new_custom_price, presenting it to the user.

Var Details

cut_max

Maximum value for cut_multiplier in sales tagger mode.

cut_min

Minimum value for cut_multiplier in sales tagger mode.

cut_multiplier

The person who tagged this will receive the sale value multiplied by this number in sales tagger mode.

max_paper_count

The maximum paper to be stored by the export scanner.

new_custom_price

The price of the item used by price tagger mode.

paper_count

The paper currently stored by the export scanner.

payments_acc

The account which is receiving the split profits in sales tagger mode.

scale_mode

A list of all available export scanner modes.

scanning_mode

Which mode is the scanner currently on?

Proc Details

check_menu

check_menu: Checks if we are allowed to interact with a radial menu

+

Arguments:

+
    +
  • user The mob interacting with a menu
  • +

export_scan

Scans an object, target, and provides its export value based on selling to the cargo shuttle, to mob/user.

price_tag

Scans an object, target, and sets its custom_price variable to new_custom_price, presenting it to the user.

\ No newline at end of file diff --git a/obj/item/uplink.html b/obj/item/uplink.html new file mode 100644 index 0000000000000..b809a1d606da5 --- /dev/null +++ b/obj/item/uplink.html @@ -0,0 +1,3 @@ +/obj/item/uplink - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

uplink

Vars

lockable_uplinkIf the uplink is lockable, which defaults to false which most subtypes of this item are for debug reasons
uplink_flagThe uplink flag for this type. +See [code/__DEFINES/uplink.dm]

Var Details

If the uplink is lockable, which defaults to false which most subtypes of this item are for debug reasons

The uplink flag for this type. +See [code/__DEFINES/uplink.dm]

\ No newline at end of file diff --git a/obj/item/usb_cable.html b/obj/item/usb_cable.html new file mode 100644 index 0000000000000..0e9c973106834 --- /dev/null +++ b/obj/item/usb_cable.html @@ -0,0 +1 @@ +/obj/item/usb_cable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

usb_cable

A cable that can connect integrated circuits to anything with a USB port, such as computers and machines.

Vars

attached_circuitThe currently connected circuit

Var Details

attached_circuit

The currently connected circuit

\ No newline at end of file diff --git a/obj/item/vape.html b/obj/item/vape.html new file mode 100644 index 0000000000000..ed3fa7e4aa613 --- /dev/null +++ b/obj/item/vape.html @@ -0,0 +1 @@ +/obj/item/vape - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vape

Vars

chem_volumeThe capacity of the vape.
drag_cooldownA cooldown to prevent huffing the vape all at once.
dragtimeThe amount of time between drags.
screwWhether the resevoir is open and we can add reagents.
superWhether the vape has been overloaded to spread smoke.

Var Details

chem_volume

The capacity of the vape.

drag_cooldown

A cooldown to prevent huffing the vape all at once.

dragtime

The amount of time between drags.

screw

Whether the resevoir is open and we can add reagents.

super

Whether the vape has been overloaded to spread smoke.

\ No newline at end of file diff --git a/obj/item/vending_refill.html b/obj/item/vending_refill.html new file mode 100644 index 0000000000000..d27e33ef0eb03 --- /dev/null +++ b/obj/item/vending_refill.html @@ -0,0 +1,3 @@ +/obj/item/vending_refill - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vending_refill

Vars

productsBuilt automatically from the corresponding vending machine. +If null, considered to be full. Otherwise, is list(/typepath = amount).

Var Details

products

Built automatically from the corresponding vending machine. +If null, considered to be full. Otherwise, is list(/typepath = amount).

\ No newline at end of file diff --git a/obj/item/virgin_mary.html b/obj/item/virgin_mary.html new file mode 100644 index 0000000000000..73fd898c6f125 --- /dev/null +++ b/obj/item/virgin_mary.html @@ -0,0 +1 @@ +/obj/item/virgin_mary - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

virgin_mary

Vars

used_upHas this item been used already.

Var Details

used_up

Has this item been used already.

\ No newline at end of file diff --git a/obj/item/void_eater.html b/obj/item/void_eater.html new file mode 100644 index 0000000000000..31defe0e1e249 --- /dev/null +++ b/obj/item/void_eater.html @@ -0,0 +1 @@ +/obj/item/void_eater - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

void_eater

An armblade that pops windows

Vars

damage_loss_per_hitDamage we loss per hit
damage_minimumThe minimal damage we can reach

Procs

refreshCalled when the voidwalker kidnapped someone

Var Details

damage_loss_per_hit

Damage we loss per hit

damage_minimum

The minimal damage we can reach

Proc Details

refresh

Called when the voidwalker kidnapped someone

\ No newline at end of file diff --git a/obj/item/vorpalscythe.html b/obj/item/vorpalscythe.html new file mode 100644 index 0000000000000..2bdc87f3584fc --- /dev/null +++ b/obj/item/vorpalscythe.html @@ -0,0 +1 @@ +/obj/item/vorpalscythe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vorpalscythe

Vars

bonus_force_multiplierOur bonus to force after we have death knelled. Lasts approximately 2 minutes.
original_forceOur initial force before empowerment. For tracking on the item, and in case the item somehow gains more force for some reason before we death knelled.

Var Details

bonus_force_multiplier

Our bonus to force after we have death knelled. Lasts approximately 2 minutes.

original_force

Our initial force before empowerment. For tracking on the item, and in case the item somehow gains more force for some reason before we death knelled.

\ No newline at end of file diff --git a/obj/item/wallframe/clocktrap.html b/obj/item/wallframe/clocktrap.html new file mode 100644 index 0000000000000..00e22f1d8e578 --- /dev/null +++ b/obj/item/wallframe/clocktrap.html @@ -0,0 +1 @@ +/obj/item/wallframe/clocktrap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

clocktrap

Vars

clockwork_descWhat to show the user if they are a clock cultist

Var Details

clockwork_desc

What to show the user if they are a clock cultist

\ No newline at end of file diff --git a/obj/item/wallframe/wall_heater.html b/obj/item/wallframe/wall_heater.html new file mode 100644 index 0000000000000..3e25ae6f3e464 --- /dev/null +++ b/obj/item/wallframe/wall_heater.html @@ -0,0 +1 @@ +/obj/item/wallframe/wall_heater - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wall_heater

Vars

celllazy-initialized cell stored in the actual heater (so that it can start with one without making a new one every placement)

Var Details

cell

lazy-initialized cell stored in the actual heater (so that it can start with one without making a new one every placement)

\ No newline at end of file diff --git a/obj/item/wargame_projector.html b/obj/item/wargame_projector.html new file mode 100644 index 0000000000000..28d7065a3fe61 --- /dev/null +++ b/obj/item/wargame_projector.html @@ -0,0 +1 @@ +/obj/item/wargame_projector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wargame_projector

Vars

color_optionsContains all of the colors that the holograms can be changed to spawn as
holosign_colorThe color to give holograms when created
holosign_optionsA list containing all of the possible holosigns this can choose from
holosign_typeThe type of hologram to spawn on click
max_signsThe maximum number of projections this can support
projection_names_to_pathA names to path list for the projections filled out by populate_radial_choice_lists() on init
projectionsAll of the signs this projector is maintaining
radial_choicesWill hold the choices for radial menu use, populated on init

Procs

check_can_place_hologramCan we place a hologram at the target location?
create_hologramSpawn a hologram with pixel offset based on where the user clicked
select_hologramChanges the selected hologram to one of the options from the hologram list

Var Details

color_options

Contains all of the colors that the holograms can be changed to spawn as

holosign_color

The color to give holograms when created

holosign_options

A list containing all of the possible holosigns this can choose from

holosign_type

The type of hologram to spawn on click

max_signs

The maximum number of projections this can support

projection_names_to_path

A names to path list for the projections filled out by populate_radial_choice_lists() on init

projections

All of the signs this projector is maintaining

radial_choices

Will hold the choices for radial menu use, populated on init

Proc Details

check_can_place_hologram

Can we place a hologram at the target location?

create_hologram

Spawn a hologram with pixel offset based on where the user clicked

select_hologram

Changes the selected hologram to one of the options from the hologram list

\ No newline at end of file diff --git a/obj/item/warp_whistle.html b/obj/item/warp_whistle.html new file mode 100644 index 0000000000000..6f8a3b3c3c593 --- /dev/null +++ b/obj/item/warp_whistle.html @@ -0,0 +1 @@ +/obj/item/warp_whistle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

warp_whistle

Warp whistle, spawns a tornado that teleports you

Vars

whistlerPerson using the warp whistle

Var Details

whistler

Person using the warp whistle

\ No newline at end of file diff --git a/obj/item/watcher_hatchling.html b/obj/item/watcher_hatchling.html new file mode 100644 index 0000000000000..bbb07c990da11 --- /dev/null +++ b/obj/item/watcher_hatchling.html @@ -0,0 +1 @@ +/obj/item/watcher_hatchling - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

watcher_hatchling

A cute pet who will occasionally attack lavaland mobs for you

Vars

orbiterThe effect we create when out and about
ownerWho are we orbiting?

Procs

remove_orbiterIn the more likely event that our orbiter is deleted, stop holding a reference to it
remove_ownerIf the guy we are orbiting is deleted but somehow we aren't
watcher_returnGet back in your ball pikachu

Var Details

orbiter

The effect we create when out and about

owner

Who are we orbiting?

Proc Details

remove_orbiter

In the more likely event that our orbiter is deleted, stop holding a reference to it

remove_owner

If the guy we are orbiting is deleted but somehow we aren't

watcher_return

Get back in your ball pikachu

\ No newline at end of file diff --git a/obj/item/weaponcell.html b/obj/item/weaponcell.html new file mode 100644 index 0000000000000..f27c53fbf0352 --- /dev/null +++ b/obj/item/weaponcell.html @@ -0,0 +1 @@ +/obj/item/weaponcell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

weaponcell

Vars

ammo_typeThe ammo type that is added by default when inserting a cell.
is_toggledIs the secondary firing mode currently toggled?
medicell_examineEnables Medigun specific examine text.
primary_modeThis is default ammo ype that is used when toggle_modes is enabled. If you are not using toggle_modes, this doesn't need to be touched.
secondary_modeThe secondary ammo type that the cell will use when toggled in hand, this is only used if toggle_modes is enabled.
shot_nameThe name of the current firing mode.
toggle_modesDoes the cell have a secondary firing mode? For Medicells this is called "safety"

Var Details

ammo_type

The ammo type that is added by default when inserting a cell.

is_toggled

Is the secondary firing mode currently toggled?

medicell_examine

Enables Medigun specific examine text.

primary_mode

This is default ammo ype that is used when toggle_modes is enabled. If you are not using toggle_modes, this doesn't need to be touched.

secondary_mode

The secondary ammo type that the cell will use when toggled in hand, this is only used if toggle_modes is enabled.

shot_name

The name of the current firing mode.

toggle_modes

Does the cell have a secondary firing mode? For Medicells this is called "safety"

\ No newline at end of file diff --git a/obj/item/weldingtool.html b/obj/item/weldingtool.html new file mode 100644 index 0000000000000..e7ac668be98fb --- /dev/null +++ b/obj/item/weldingtool.html @@ -0,0 +1 @@ +/obj/item/weldingtool - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

weldingtool

Vars

burned_fuel_forWhen fuel was last removed.
can_off_processUsed in process(), dictates whether or not we're calling STOP_PROCESSING whilst we're not welding.
change_iconsWhether or not we're changing the icon based on fuel left.
max_fuelThe max amount of fuel the welder can hold
starting_fuelDoes the welder start with fuel.
statusWhether the welder is secured or unsecured (able to attach rods to it to make a flamethrower)
weldingWhether the welding tool is on or off.

Procs

check_fuelTurns off the welder if there is no more fuel (does this really need to be its own proc?)
flamethrower_rodsFirst step of building a flamethrower (when a welder is attacked by rods)
flamethrower_screwdriverRan when the welder is attacked by a screwdriver.
get_fuelReturns the amount of fuel in the welder
isOnReturns whether or not the welding tool is currently on.
switched_offSwitches the welder off
tool_use_checkIf welding tool ran out of fuel during a construction task, construction fails.
useUses fuel from the welding tool.

Var Details

burned_fuel_for

When fuel was last removed.

can_off_process

Used in process(), dictates whether or not we're calling STOP_PROCESSING whilst we're not welding.

change_icons

Whether or not we're changing the icon based on fuel left.

max_fuel

The max amount of fuel the welder can hold

starting_fuel

Does the welder start with fuel.

status

Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower)

welding

Whether the welding tool is on or off.

Proc Details

check_fuel

Turns off the welder if there is no more fuel (does this really need to be its own proc?)

flamethrower_rods

First step of building a flamethrower (when a welder is attacked by rods)

flamethrower_screwdriver

Ran when the welder is attacked by a screwdriver.

get_fuel

Returns the amount of fuel in the welder

isOn

Returns whether or not the welding tool is currently on.

switched_off

Switches the welder off

tool_use_check

If welding tool ran out of fuel during a construction task, construction fails.

use

Uses fuel from the welding tool.

\ No newline at end of file diff --git a/obj/item/wheelchair.html b/obj/item/wheelchair.html new file mode 100644 index 0000000000000..adc7b0437c329 --- /dev/null +++ b/obj/item/wheelchair.html @@ -0,0 +1 @@ +/obj/item/wheelchair - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wheelchair

Vars

unfolded_typeThe wheelchair vehicle type we create when we unfold this chair

Var Details

unfolded_type

The wheelchair vehicle type we create when we unfold this chair

\ No newline at end of file diff --git a/obj/item/wirecutters.html b/obj/item/wirecutters.html new file mode 100644 index 0000000000000..b33c211a07d83 --- /dev/null +++ b/obj/item/wirecutters.html @@ -0,0 +1 @@ +/obj/item/wirecutters - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wirecutters

Vars

random_colorIf the item should be assigned a random color
snap_time_strong_handcuffsUsed on Initialize, how much time to cut real handcuffs. Null means it can't.
snap_time_weak_handcuffsUsed on Initialize, how much time to cut cable restraints and zipties.
wirecutter_colorsList of possible random colors

Var Details

random_color

If the item should be assigned a random color

snap_time_strong_handcuffs

Used on Initialize, how much time to cut real handcuffs. Null means it can't.

snap_time_weak_handcuffs

Used on Initialize, how much time to cut cable restraints and zipties.

wirecutter_colors

List of possible random colors

\ No newline at end of file diff --git a/obj/item/wrench/medical.html b/obj/item/wrench/medical.html new file mode 100644 index 0000000000000..346bcfa921140 --- /dev/null +++ b/obj/item/wrench/medical.html @@ -0,0 +1 @@ +/obj/item/wrench/medical - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

medical

Vars

suicidervar to hold the name of the person who suicided

Var Details

suicider

var to hold the name of the person who suicided

\ No newline at end of file diff --git a/obj/item/xenoarch/strange_rock.html b/obj/item/xenoarch/strange_rock.html new file mode 100644 index 0000000000000..53f9f6279064c --- /dev/null +++ b/obj/item/xenoarch/strange_rock.html @@ -0,0 +1 @@ +/obj/item/xenoarch/strange_rock - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

strange_rock

Vars

adv_scannedWhether the ite has been advance scanned, revealing the true depth
choose_tierThe tier of the item that was chosen, 1-100 then 1-3
max_depthThe max depth a strange rock can be
measuredWhether the item has been measured, revealing the dug depth
safe_depthThe depth away/subtracted from the max_depth
scan_stateThe scan state for when encountering the strange rock ore in mining.
scannedWhether the ite has been scanned, revealing the max and safe depth

Var Details

adv_scanned

Whether the ite has been advance scanned, revealing the true depth

choose_tier

The tier of the item that was chosen, 1-100 then 1-3

max_depth

The max depth a strange rock can be

measured

Whether the item has been measured, revealing the dug depth

safe_depth

The depth away/subtracted from the max_depth

scan_state

The scan state for when encountering the strange rock ore in mining.

scanned

Whether the ite has been scanned, revealing the max and safe depth

\ No newline at end of file diff --git a/obj/item/xenoarch/useless_relic.html b/obj/item/xenoarch/useless_relic.html new file mode 100644 index 0000000000000..cf67f0d3798ec --- /dev/null +++ b/obj/item/xenoarch/useless_relic.html @@ -0,0 +1 @@ +/obj/item/xenoarch/useless_relic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

useless_relic

Vars

magnified_numberUsed to spawn the same relic

Var Details

magnified_number

Used to spawn the same relic

\ No newline at end of file diff --git a/obj/lightning_thrower.html b/obj/lightning_thrower.html new file mode 100644 index 0000000000000..5dc0ed03fdab9 --- /dev/null +++ b/obj/lightning_thrower.html @@ -0,0 +1 @@ +/obj/lightning_thrower - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lightning_thrower

Vars

shock_damagedamage of the shock
shock_durationhow long do we shock
shock_flagsflags we apply to the shock
signal_turfslist of turfs that are currently shocked so we can unregister the signal
throw_diagonalsdo we currently want to shock diagonal tiles? if not, we shock cardinals

Var Details

shock_damage

damage of the shock

shock_duration

how long do we shock

shock_flags

flags we apply to the shock

signal_turfs

list of turfs that are currently shocked so we can unregister the signal

throw_diagonals

do we currently want to shock diagonal tiles? if not, we shock cardinals

\ No newline at end of file diff --git a/obj/loop_spawner.html b/obj/loop_spawner.html new file mode 100644 index 0000000000000..bb53dacfd21b9 --- /dev/null +++ b/obj/loop_spawner.html @@ -0,0 +1 @@ +/obj/loop_spawner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

loop_spawner

Vars

subsystem_to_process_usthe subsystem to process us
to_spawndirections we can output to right now

Var Details

subsystem_to_process_us

the subsystem to process us

to_spawn

directions we can output to right now

\ No newline at end of file diff --git a/obj/machinery.html b/obj/machinery.html new file mode 100644 index 0000000000000..fb0256f309eab --- /dev/null +++ b/obj/machinery.html @@ -0,0 +1,178 @@ +/obj/machinery - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

machinery

Machines in the world, such as computers, pipes, and airlocks.

+

Overview: +Used to create objects that need a per step proc call. Default definition of 'Initialize()' +stores a reference to src machine in global 'machines list'. Default definition +of 'Destroy' removes reference to src machine in global 'machines list'.

+

Class Variables: +use_power (num) +current state of auto power use. +Possible Values: +NO_POWER_USE -- no auto power use +IDLE_POWER_USE -- machine is using power at its idle power level +ACTIVE_POWER_USE -- machine is using power at its active power level

+

active_power_usage (num) +Value for the amount of power to use when in active power mode

+

idle_power_usage (num) +Value for the amount of power to use when in idle power mode

+

power_channel (num) +What channel to draw from when drawing power for power mode +Possible Values: +AREA_USAGE_EQUIP:1 -- Equipment Channel +AREA_USAGE_LIGHT:2 -- Lighting Channel +AREA_USAGE_ENVIRON:3 -- Environment Channel

+

component_parts (list) +A list of component parts of machine used by frame based machines.

+

stat (bitflag) +Machine status bit flags. +Possible bit flags: +BROKEN -- Machine is broken +NOPOWER -- No power is being supplied to machine. +MAINT -- machine is currently under going maintenance. +EMPED -- temporary broken by EMP pulse

+

Class Procs: +Initialize()

+

Destroy()

+
update_mode_power_usage()
+	updates the static_power_usage var of this machine and makes its static power usage from its area accurate.
+	called after the idle or active power usage has been changed.
+
+update_power_channel()
+	updates the static_power_usage var of this machine and makes its static power usage from its area accurate.
+	called after the power_channel var has been changed or called to change the var itself.
+
+unset_static_power()
+	completely removes the current static power usage of this machine from its area.
+	used in the other power updating procs to then readd the correct power usage.
+
+
+ Default definition uses 'use_power', 'power_channel', 'active_power_usage',
+ 'idle_power_usage', 'powered()', and 'use_energy()' implement behavior.
+
+

powered(chan = -1) 'modules/power/power.dm' +Checks to see if area that contains the object has power available for power +channel given in 'chan'. -1 defaults to power_channel

+

use_energy(amount, chan=-1) 'modules/power/power.dm' +Deducts 'amount' from the power channel 'chan' of the area that contains the object.

+

power_change() 'modules/power/power.dm' +Called by the area that contains the object when ever that area under goes a +power state change (area runs out of power, or area channel is turned off).

+

RefreshParts() 'game/machinery/machine.dm' +Called to refresh the variables in the machine that are contributed to by parts +contained in the component_parts list. (example: glass and material amounts for +the autolathe)

+
 Default definition does nothing.
+
+

process() 'game/machinery/machine.dm' +Called by the 'machinery subsystem' once per machinery tick for each machine that is listed in its 'machines' list.

+

process_atmos() +Called by the 'air subsystem' once per atmos tick for each machine that is listed in its 'atmos_machines' list. +Compiled by Aygar

Vars

active_power_usagethe amount of static power load this machine adds to its area's power_usage list when use_power = ACTIVE_POWER_USE
always_area_sensitiveDo we want to hook into on_enter_area and on_exit_area? +Disables some optimizations
appearance_power_stateWhat was our power state the last time we updated its appearance? +TRUE for on, FALSE for off, -1 for never checked
atmos_processingIs this machine currently in the atmos machinery queue?
idle_power_usagethe amount of static power load this machine adds to its area's power_usage list when use_power = IDLE_POWER_USE
is_operationalA combination of factors such as having power, not being broken and so on. Boolean.
last_used_timeworld.time of last use by /mob/living
last_user_mobtypeMobtype of last user. Typecast to /mob/living for initial() usage
machine_power_rectifierMultiplier for power consumption.
processing_flagsViable flags to go here are START_PROCESSING_ON_INIT, or START_PROCESSING_MANUALLY. See code__DEFINES\machines.dm for more information on these flags.
static_power_usagethe current amount of static power usage this machine is taking from its area
subsystem_typeWhat subsystem this machine will use, which is generally SSmachines or SSfastprocess. By default all machinery use SSmachines. This fires a machine's process() roughly every 2 seconds.

Procs

AI_notify_hackAlerts the AI that a hack is in progress.
add_as_sabotage_targetCalled if this machine is supposed to be a sabotage machine objective.
available_energyReturns the available energy from the apc's cell and grid that can be used. +Args:
begin_processingHelper proc for telling a machine to start processing with the subsystem type that is located in its subsystem_type var.
charge_cellDraws power from the apc's powernet and cell to charge a power cell. +Args:
clear_componentsThis should be called before mass qdeling components to make space for replacements. +If not done, things will go awry as Exited() destroys the machine when it detects +even a single component exiting the atom.
directly_use_energyAn alternative to 'use_power', this proc directly costs the APC in direct charge, as opposed to prioritising the grid. +Args:
dump_contentsDrop every movable atom in the machine's contents list, including any components and circuit.
dump_inventory_contentsDrop every movable atom in the machine's contents list that is not a component_part.
end_processingHelper proc for telling a machine to stop processing with the subsystem type that is located in its subsystem_type var.
get_room_areaGet a valid powered area to reference for power use, mainly for wall-mounted machinery that isn't always mapped directly in a powered location.
on_deconstructioncalled on deconstruction before the final deletion +Arguments
on_set_is_operationalCalled when the value of is_operational changes, so we can react to it.
on_set_machine_statCalled when the value of machine_stat changes, so we can react to it.
on_set_panel_openCalled when the value of panel_open changes, so we can react to it.
open_machineOpens the machine.
post_machine_initializeCalled in LateInitialize meant to be the machine replacement to it +This sets up power for the machine and requires parent be called, +ensuring power works on all machines unless exempted with NO_POWER_USE. +This is the proc to override if you want to do anything in LateInitialize.
power_changeCalled whenever the power settings of the containing area change
process_earlyEarly process for machines added to SSmachines.processing_early to prioritize power draw
process_lateLate process for machines added to SSmachines.processing_late to gather accurate recordings
remove_area_power_relationshipproc to call when the machine stops requiring power after a duration of requiring power +saves memory by removing the power relationship with its area if it exists and loses area sensitivity +does not affect power usage itself
set_is_operationalCalled when we want to change the value of the is_operational variable. Boolean.
set_machine_statCalled when we want to change the value of the machine_stat variable. Holds bitflags.
set_panel_openCalled when we want to change the value of the panel_open variable. Boolean.
setup_area_power_relationshipproc to call when the machine starts to require power after a duration of not requiring power +sets up power related connections to its area if it exists and becomes area sensitive +does not affect power usage itself
spawn_frameSpawns a frame where this machine is. If the machine was not disassmbled, the +frame is spawned damaged. If the frame couldn't exist on this turf, it's smashed +down to metal sheets.
toggle_panel_openToggles the panel_open var. Defined for convienience
try_put_in_handPuts passed object in to user's hand
unset_static_powerinternal proc that removes all static power usage from the current area
update_current_power_usagemakes this machine draw power from its area according to which use_power mode it is set to
update_mode_power_usagesets the power_usage linked to the specified use_power_mode to new_usage +e.g. update_mode_power_usage(ACTIVE_POWER_USE, 10) sets active_power_use = 10 and updates its power draw from the machines area if use_power == ACTIVE_POWER_USE
update_power_channelupdates the power channel this machine uses. removes the static power usage from the old channel and readds it to the new channel
update_use_powerupdates the use_power var for this machine and updates its static power usage from its area to reflect the new value
use_energyDraws energy from the APC. Will use excess energy from the APC's connected grid, +then use energy from the APC's cell if there wasn't enough energy from the grid, unless ignore_apc is true. +Args:
use_power_from_netAttempts to draw power directly from the APC's Powernet rather than the APC's battery. For high-draw machines, like the cell charger

Var Details

active_power_usage

the amount of static power load this machine adds to its area's power_usage list when use_power = ACTIVE_POWER_USE

always_area_sensitive

Do we want to hook into on_enter_area and on_exit_area? +Disables some optimizations

appearance_power_state

What was our power state the last time we updated its appearance? +TRUE for on, FALSE for off, -1 for never checked

atmos_processing

Is this machine currently in the atmos machinery queue?

idle_power_usage

the amount of static power load this machine adds to its area's power_usage list when use_power = IDLE_POWER_USE

is_operational

A combination of factors such as having power, not being broken and so on. Boolean.

last_used_time

world.time of last use by /mob/living

last_user_mobtype

Mobtype of last user. Typecast to /mob/living for initial() usage

machine_power_rectifier

Multiplier for power consumption.

processing_flags

Viable flags to go here are START_PROCESSING_ON_INIT, or START_PROCESSING_MANUALLY. See code__DEFINES\machines.dm for more information on these flags.

static_power_usage

the current amount of static power usage this machine is taking from its area

subsystem_type

What subsystem this machine will use, which is generally SSmachines or SSfastprocess. By default all machinery use SSmachines. This fires a machine's process() roughly every 2 seconds.

Proc Details

AI_notify_hack

Alerts the AI that a hack is in progress.

+

Sends all AIs a message that a hack is occurring. Specifically used for space ninja tampering as this proc was originally in the ninja files. +However, the proc may also be used elsewhere.

add_as_sabotage_target

Called if this machine is supposed to be a sabotage machine objective.

available_energy

Returns the available energy from the apc's cell and grid that can be used. +Args:

+
    +
  • consider_cell: Whether to count the energy from the APC's cell or not. +Returns: The available energy the machine can access from the APC.
  • +

begin_processing

Helper proc for telling a machine to start processing with the subsystem type that is located in its subsystem_type var.

charge_cell

Draws power from the apc's powernet and cell to charge a power cell. +Args:

+
    +
  • amount: The amount of energy given to the cell.
  • +
  • cell: The cell to charge.
  • +
  • grid_only: If true, only draw from the grid and ignore the APC's cell.
  • +
  • channel: The power channel to use. +Returns: The amount of energy the cell received.
  • +

clear_components

This should be called before mass qdeling components to make space for replacements. +If not done, things will go awry as Exited() destroys the machine when it detects +even a single component exiting the atom.

directly_use_energy

An alternative to 'use_power', this proc directly costs the APC in direct charge, as opposed to prioritising the grid. +Args:

+
    +
  • amount: How much energy the APC's cell is to be costed.
  • +
  • force: If true, consumes the remaining energy of the cell if there isn't enough energy to supply the demand. +Returns: The amount of energy that got used by the cell.
  • +

dump_contents

Drop every movable atom in the machine's contents list, including any components and circuit.

dump_inventory_contents

Drop every movable atom in the machine's contents list that is not a component_part.

+

Proc does not drop components and will skip over anything in the component_parts list. +Call dump_contents() to drop all contents including components. +Arguments:

+
    +
  • subset - If this is not null, only atoms that are also contained within the subset list will be dropped.
  • +

end_processing

Helper proc for telling a machine to stop processing with the subsystem type that is located in its subsystem_type var.

get_room_area

Get a valid powered area to reference for power use, mainly for wall-mounted machinery that isn't always mapped directly in a powered location.

on_deconstruction

called on deconstruction before the final deletion +Arguments

+
    +
  • disassembled - if TRUE means we used tools to deconstruct it, FALSE means it got destroyed by other means
  • +

on_set_is_operational

Called when the value of is_operational changes, so we can react to it.

on_set_machine_stat

Called when the value of machine_stat changes, so we can react to it.

on_set_panel_open

Called when the value of panel_open changes, so we can react to it.

open_machine

Opens the machine.

+

Will update the machine icon and any user interfaces currently open. +Arguments:

+
    +
  • drop - Boolean. Whether to drop any stored items in the machine. Does not include components.
  • +
  • density - Boolean. Whether to make the object dense when it's open.
  • +

post_machine_initialize

Called in LateInitialize meant to be the machine replacement to it +This sets up power for the machine and requires parent be called, +ensuring power works on all machines unless exempted with NO_POWER_USE. +This is the proc to override if you want to do anything in LateInitialize.

power_change

Called whenever the power settings of the containing area change

+

by default, check equipment channel & set flag, can override if needed

+

Returns TRUE if the NOPOWER flag was toggled

process_early

Early process for machines added to SSmachines.processing_early to prioritize power draw

process_late

Late process for machines added to SSmachines.processing_late to gather accurate recordings

remove_area_power_relationship

proc to call when the machine stops requiring power after a duration of requiring power +saves memory by removing the power relationship with its area if it exists and loses area sensitivity +does not affect power usage itself

set_is_operational

Called when we want to change the value of the is_operational variable. Boolean.

set_machine_stat

Called when we want to change the value of the machine_stat variable. Holds bitflags.

set_panel_open

Called when we want to change the value of the panel_open variable. Boolean.

setup_area_power_relationship

proc to call when the machine starts to require power after a duration of not requiring power +sets up power related connections to its area if it exists and becomes area sensitive +does not affect power usage itself

+

Returns TRUE if it triggered a full registration, FALSE otherwise +We do this so machinery that want to sidestep the area sensitiveity optimization can

spawn_frame

Spawns a frame where this machine is. If the machine was not disassmbled, the +frame is spawned damaged. If the frame couldn't exist on this turf, it's smashed +down to metal sheets.

+

Arguments:

+
    +
  • disassembled - If FALSE, the machine was destroyed instead of disassembled and the frame spawns at reduced integrity.
  • +

toggle_panel_open

Toggles the panel_open var. Defined for convienience

try_put_in_hand

Puts passed object in to user's hand

+

Puts the passed object in to the users hand if they are adjacent. +If the user is not adjacent then place the object on top of the machine.

+

Vars:

+
    +
  • object (obj) The object to be moved in to the users hand.
  • +
  • user (mob/living) The user to recive the object
  • +

unset_static_power

internal proc that removes all static power usage from the current area

update_current_power_usage

makes this machine draw power from its area according to which use_power mode it is set to

update_mode_power_usage

sets the power_usage linked to the specified use_power_mode to new_usage +e.g. update_mode_power_usage(ACTIVE_POWER_USE, 10) sets active_power_use = 10 and updates its power draw from the machines area if use_power == ACTIVE_POWER_USE

+

Arguments:

+
    +
  • use_power_mode - the use_power power mode to change. if IDLE_POWER_USE changes idle_power_usage, ACTIVE_POWER_USE changes active_power_usage
  • +
  • new_usage - the new value to set the specified power mode var to
  • +

update_power_channel

updates the power channel this machine uses. removes the static power usage from the old channel and readds it to the new channel

update_use_power

updates the use_power var for this machine and updates its static power usage from its area to reflect the new value

use_energy

Draws energy from the APC. Will use excess energy from the APC's connected grid, +then use energy from the APC's cell if there wasn't enough energy from the grid, unless ignore_apc is true. +Args:

+
    +
  • amount: The amount of energy to use.
  • +
  • channel: The power channel to use.
  • +
  • ignore_apc: If true, do not consider the APC's cell when demanding energy.
  • +
  • force: If true and if there isn't enough energy, consume the remaining energy. Returns 0 if false and there isn't enough energy. +Returns: The amount of energy used.
  • +

use_power_from_net

Attempts to draw power directly from the APC's Powernet rather than the APC's battery. For high-draw machines, like the cell charger

+

Checks the surplus power on the APC's powernet, and compares to the requested amount. If the requested amount is available, this proc +will add the amount to the APC's usage and return that amount. Otherwise, this proc will return FALSE. +If the take_any var arg is set to true, this proc will use and return any surplus that is under the requested amount, assuming that +the surplus is above zero. +Args:

+
    +
  • amount, the amount of power requested from the powernet. In joules.
  • +
  • take_any, a bool of whether any amount of power is acceptable, instead of all or nothing. Defaults to FALSE
  • +
\ No newline at end of file diff --git a/obj/machinery/abductor/console.html b/obj/machinery/abductor/console.html new file mode 100644 index 0000000000000..6db7738830ed4 --- /dev/null +++ b/obj/machinery/abductor/console.html @@ -0,0 +1 @@ +/obj/machinery/abductor/console - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

console

Vars

compact_modeDictates if the compact mode of the interface is on or off
possible_gearPossible gear to be dispensed
selected_catCurrently selected gear category

Procs

get_abductor_gearget_abductor_gear: Returns a list of a filtered abductor gear sorted by categories

Var Details

compact_mode

Dictates if the compact mode of the interface is on or off

possible_gear

Possible gear to be dispensed

selected_cat

Currently selected gear category

Proc Details

get_abductor_gear

get_abductor_gear: Returns a list of a filtered abductor gear sorted by categories

\ No newline at end of file diff --git a/obj/machinery/abductor/experiment.html b/obj/machinery/abductor/experiment.html new file mode 100644 index 0000000000000..51e76e66ba1da --- /dev/null +++ b/obj/machinery/abductor/experiment.html @@ -0,0 +1,11 @@ +/obj/machinery/abductor/experiment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

experiment

Vars

flashMachine feedback message

Procs

experimentexperiment: Performs selected experiment on occupant mob, resulting in a point reward on success
send_backsend_back: Sends a mob back to a selected teleport location if safe

Var Details

flash

Machine feedback message

Proc Details

experiment

experiment: Performs selected experiment on occupant mob, resulting in a point reward on success

+

Arguments:

+
    +
  • occupant The mob inside the machine
  • +
  • type The type of experiment to be performed
  • +
  • user The mob starting the experiment
  • +

send_back

send_back: Sends a mob back to a selected teleport location if safe

+

Arguments:

+
    +
  • H The human mob to be sent back
  • +
\ No newline at end of file diff --git a/obj/machinery/ai_voicechanger.html b/obj/machinery/ai_voicechanger.html new file mode 100644 index 0000000000000..ace811b9dce74 --- /dev/null +++ b/obj/machinery/ai_voicechanger.html @@ -0,0 +1 @@ +/obj/machinery/ai_voicechanger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ai_voicechanger

Vars

changing_voiceTRUE if the AI is changing its voice
loudvoiceWhether this AI is speaking loudly (bigger text)
ownerThe AI this voicechanger belongs to
prev_loudSaved loudvoice state, used to restore after a voice change
prev_spanSaved span state, used to restore after a voice change
prev_verbsSaved verb state, used to restore after a voice change
say_nameName used when voicechanger is on
say_spanSpan used when voicechanger is on
voice_optionsThe list of available voices

Var Details

changing_voice

TRUE if the AI is changing its voice

loudvoice

Whether this AI is speaking loudly (bigger text)

owner

The AI this voicechanger belongs to

prev_loud

Saved loudvoice state, used to restore after a voice change

prev_span

Saved span state, used to restore after a voice change

prev_verbs

Saved verb state, used to restore after a voice change

say_name

Name used when voicechanger is on

say_span

Span used when voicechanger is on

voice_options

The list of available voices

\ No newline at end of file diff --git a/obj/machinery/air_sensor.html b/obj/machinery/air_sensor.html new file mode 100644 index 0000000000000..e076f848c4891 --- /dev/null +++ b/obj/machinery/air_sensor.html @@ -0,0 +1,2 @@ +/obj/machinery/air_sensor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

air_sensor

Gas tank air sensor. +These always hook to monitors, be mindful of them

Vars

chamber_idThe unique string that represents which atmos chamber to associate with.
inlet_idThe inlet[injector] controlled by this sensor
outlet_idThe outlet[vent pump] controlled by this sensor

Procs

multitool_act_secondaryright click with multi tool to disconnect everything

Var Details

chamber_id

The unique string that represents which atmos chamber to associate with.

inlet_id

The inlet[injector] controlled by this sensor

outlet_id

The outlet[vent pump] controlled by this sensor

Proc Details

multitool_act_secondary

right click with multi tool to disconnect everything

\ No newline at end of file diff --git a/obj/machinery/airalarm.html b/obj/machinery/airalarm.html new file mode 100644 index 0000000000000..90cc393eed929 --- /dev/null +++ b/obj/machinery/airalarm.html @@ -0,0 +1,5 @@ +/obj/machinery/airalarm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

airalarm

Vars

aidisabledBoolean to prevent AI from tampering with this alarm.
air_sensor_chamber_idUsed to link air alarm to air sensor via map helpers
alarm_managerRepresents a signel source of atmos alarms, complains to all the listeners if one of our thresholds is violated
all_accessUsed for air alarm helper called all_access to remove air alarm's required access.
allow_link_changeWhether it is possible to link/unlink this air alarm from a sensor
away_general_accessUsed for air alarm helper called away_general_access to make air alarm's required access away_general_access.
buildstageCurrent build stage. [AIRALARM_BUILD_COMPLETE], [AIRALARM_BUILD_NO_WIRES], [AIRALARM_BUILD_NO_CIRCUIT]
connected_sensorUsed for connecting air alarm to a remote tile/zone via air sensor instead of the tile/zone of the air alarm
danger_levelCurrent alert level of our air alarm. +AIR_ALARM_ALERT_NONE, [AIR_ALARM_ALERT_MINOR], [AIR_ALARM_ALERT_SEVERE]
engine_accessUsed for air alarm helper called engine_access to make air alarm's required access one of ACCESS_ATMOSPHERICS & ACCESS_ENGINEERING.
lockedBoolean for whether the current air alarm can be tweaked by players or not.
mixingchamber_accessUsed for air alarm helper called mixingchamber_access to make air alarm's required access one of ACCESS_ATMOSPHERICS & ACCESS_ORDNANCE.
my_areaA reference to the area we are in
selected_modeCurrently selected mode of the alarm. An instance of /datum/air_alarm_mode.
shortedBoolean of whether alarm is currently shorted. Mess up some functionalities.
syndicate_accessUsed for air alarm helper called syndicate_access to make air alarm's required access syndicate_access.
tlv_cold_roomUsed for air alarm helper called tlv_cold_room to adjust alarm thresholds for cold room.
tlv_collectionAn assoc list of datum/tlvs, indexed by "pressure", "temperature", and datum/gas typepaths.
tlv_no_checksUsed for air alarm helper called tlv_no_ckecks to remove alarm thresholds.
unlockedUsed for air alarm helper called unlocked to make air alarm unlocked.
warning_cooldownCooldown on sending warning messages
warning_messageWarning message spoken by air alarms

Procs

check_dangerCheck the current air and update our danger level. +/obj/machinery/airalarm/var/danger_level
connect_sensorUsed to connect air alarm with a sensor
disconnect_sensorUsed to reset the air alarm to default configuration after disconnecting from air sensor
give_all_accessUsed for all_access air alarm helper, which set air alarm's required access to null.
give_away_general_accessUsed for away_general_access air alarm helper, which set air alarm's required access to away_general_access.
give_engine_accessUsed for engine_access air alarm helper, which set air alarm's required access to away_general_access.
give_mixingchamber_accessUsed for mixingchamber_access air alarm helper, which set air alarm's required access to away_general_access.
give_syndicate_accessUsed for syndicate_access air alarm helper, which sets air alarm's required access to syndicate_access.
set_tlv_cold_roomUsed for air alarm cold room tlv helper, which sets cold room temperature and pressure alarm thresholds
set_tlv_no_checksUsed for air alarm no tlv helper, which removes alarm thresholds
setup_chamber_linkUsed for air alarm link helper, which connects air alarm to a sensor with corresponding chamber_id
unlockUsed for unlocked air alarm helper, which unlocks the air alarm.

Var Details

aidisabled

Boolean to prevent AI from tampering with this alarm.

air_sensor_chamber_id

Used to link air alarm to air sensor via map helpers

alarm_manager

Represents a signel source of atmos alarms, complains to all the listeners if one of our thresholds is violated

all_access

Used for air alarm helper called all_access to remove air alarm's required access.

Whether it is possible to link/unlink this air alarm from a sensor

away_general_access

Used for air alarm helper called away_general_access to make air alarm's required access away_general_access.

buildstage

Current build stage. [AIRALARM_BUILD_COMPLETE], [AIRALARM_BUILD_NO_WIRES], [AIRALARM_BUILD_NO_CIRCUIT]

connected_sensor

Used for connecting air alarm to a remote tile/zone via air sensor instead of the tile/zone of the air alarm

danger_level

Current alert level of our air alarm. +AIR_ALARM_ALERT_NONE, [AIR_ALARM_ALERT_MINOR], [AIR_ALARM_ALERT_SEVERE]

engine_access

Used for air alarm helper called engine_access to make air alarm's required access one of ACCESS_ATMOSPHERICS & ACCESS_ENGINEERING.

locked

Boolean for whether the current air alarm can be tweaked by players or not.

mixingchamber_access

Used for air alarm helper called mixingchamber_access to make air alarm's required access one of ACCESS_ATMOSPHERICS & ACCESS_ORDNANCE.

my_area

A reference to the area we are in

selected_mode

Currently selected mode of the alarm. An instance of /datum/air_alarm_mode.

shorted

Boolean of whether alarm is currently shorted. Mess up some functionalities.

syndicate_access

Used for air alarm helper called syndicate_access to make air alarm's required access syndicate_access.

tlv_cold_room

Used for air alarm helper called tlv_cold_room to adjust alarm thresholds for cold room.

tlv_collection

An assoc list of datum/tlvs, indexed by "pressure", "temperature", and datum/gas typepaths.

tlv_no_checks

Used for air alarm helper called tlv_no_ckecks to remove alarm thresholds.

unlocked

Used for air alarm helper called unlocked to make air alarm unlocked.

warning_cooldown

Cooldown on sending warning messages

warning_message

Warning message spoken by air alarms

Proc Details

check_danger

Check the current air and update our danger level. +/obj/machinery/airalarm/var/danger_level

connect_sensor

Used to connect air alarm with a sensor

disconnect_sensor

Used to reset the air alarm to default configuration after disconnecting from air sensor

give_all_access

Used for all_access air alarm helper, which set air alarm's required access to null.

give_away_general_access

Used for away_general_access air alarm helper, which set air alarm's required access to away_general_access.

give_engine_access

Used for engine_access air alarm helper, which set air alarm's required access to away_general_access.

give_mixingchamber_access

Used for mixingchamber_access air alarm helper, which set air alarm's required access to away_general_access.

give_syndicate_access

Used for syndicate_access air alarm helper, which sets air alarm's required access to syndicate_access.

set_tlv_cold_room

Used for air alarm cold room tlv helper, which sets cold room temperature and pressure alarm thresholds

set_tlv_no_checks

Used for air alarm no tlv helper, which removes alarm thresholds

Used for air alarm link helper, which connects air alarm to a sensor with corresponding chamber_id

unlock

Used for unlocked air alarm helper, which unlocks the air alarm.

\ No newline at end of file diff --git a/obj/machinery/airlock_controller.html b/obj/machinery/airlock_controller.html new file mode 100644 index 0000000000000..c9e607d43fa70 --- /dev/null +++ b/obj/machinery/airlock_controller.html @@ -0,0 +1 @@ +/obj/machinery/airlock_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

airlock_controller

Procs

cycleStarts an airlock cycle
sensor_pressureReturns the pressure over the pump, or null if it is deleted

Proc Details

cycle

Starts an airlock cycle

sensor_pressure

Returns the pressure over the pump, or null if it is deleted

\ No newline at end of file diff --git a/obj/machinery/ammo_workbench.html b/obj/machinery/ammo_workbench.html new file mode 100644 index 0000000000000..4ef362f403134 --- /dev/null +++ b/obj/machinery/ammo_workbench.html @@ -0,0 +1,3 @@ +/obj/machinery/ammo_workbench - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ammo_workbench

Vars

adminbuscan this print any round of any caliber given a correct ammo_box? (you varedit this at your own risk, especially if used in a player-facing context.) +does not force ammo to load in. just makes it able to print wacky ammotypes e.g. lionhunter 7.62, techshells
allowed_advancedcan it print advanced ammunition types (e.g. armor-piercing)? see modular_skyrat\modules\modular_weapons\code\modular_projectiles.dm
allowed_harmfulcan it print ammunition flagged as harmful (e.g. most ammo)?
base_efficiencymultiplier for material cost per round (when turbo isn't enabled)
casing_mat_stringsthe material requirement strings for these casings (for the tooltip)
creation_efficiencycurrent multiplier for material cost per round
hackedif it's hacked it's gonna be able to print lethals. it'll be mad at you for doing so but it'll print basic lethals.
loaded_datadiskswhat datadisks have been loaded. uh... honestly this doesn't really do much either
possible_ammo_typesA list of all possible ammo types.
time_per_roundcurrent amount of time in deciseconds it takes to assemble a round
turbo_efficiencymultiplier for material cost per round (when turbo is enabled)
turbo_time_per_rounddeciseconds per round (when turbo is enabled)
valid_casingswhat casings we're able to use

Procs

toggle_turbo_boostToggles this ammo bench's turbo setting. If it's on, uses the turbo time-per-round/efficiency; if off, resets to base time-per-round/efficiency. forced_off forces turbo off.

Var Details

adminbus

can this print any round of any caliber given a correct ammo_box? (you varedit this at your own risk, especially if used in a player-facing context.) +does not force ammo to load in. just makes it able to print wacky ammotypes e.g. lionhunter 7.62, techshells

allowed_advanced

can it print advanced ammunition types (e.g. armor-piercing)? see modular_skyrat\modules\modular_weapons\code\modular_projectiles.dm

allowed_harmful

can it print ammunition flagged as harmful (e.g. most ammo)?

base_efficiency

multiplier for material cost per round (when turbo isn't enabled)

casing_mat_strings

the material requirement strings for these casings (for the tooltip)

creation_efficiency

current multiplier for material cost per round

hacked

if it's hacked it's gonna be able to print lethals. it'll be mad at you for doing so but it'll print basic lethals.

loaded_datadisks

what datadisks have been loaded. uh... honestly this doesn't really do much either

possible_ammo_types

A list of all possible ammo types.

time_per_round

current amount of time in deciseconds it takes to assemble a round

turbo_efficiency

multiplier for material cost per round (when turbo is enabled)

turbo_time_per_round

deciseconds per round (when turbo is enabled)

valid_casings

what casings we're able to use

Proc Details

toggle_turbo_boost

Toggles this ammo bench's turbo setting. If it's on, uses the turbo time-per-round/efficiency; if off, resets to base time-per-round/efficiency. forced_off forces turbo off.

\ No newline at end of file diff --git a/obj/machinery/anesthetic_machine.html b/obj/machinery/anesthetic_machine.html new file mode 100644 index 0000000000000..cd22d8e90df34 --- /dev/null +++ b/obj/machinery/anesthetic_machine.html @@ -0,0 +1 @@ +/obj/machinery/anesthetic_machine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

anesthetic_machine

Vars

attached_maskThe mask attached to the anesthetic machine
attached_tankthe tank attached to the anesthetic machine, by default it does not come with one.
mask_outIs the attached mask currently out?

Procs

retract_maskRetracts the attached_mask back into the machine

Var Details

attached_mask

The mask attached to the anesthetic machine

attached_tank

the tank attached to the anesthetic machine, by default it does not come with one.

mask_out

Is the attached mask currently out?

Proc Details

retract_mask

Retracts the attached_mask back into the machine

\ No newline at end of file diff --git a/obj/machinery/announcement_system.html b/obj/machinery/announcement_system.html new file mode 100644 index 0000000000000..631134baa7ec9 --- /dev/null +++ b/obj/machinery/announcement_system.html @@ -0,0 +1 @@ +/obj/machinery/announcement_system - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

announcement_system

Vars

announce_research_nodeIf true, researched nodes will be announced to the appropriate channels
arrivalThe message that we send when someone is joining.
arrival_toggleWhether the arrival message is sent
newheadThe message that we send when a department head arrives.
newhead_toggleWhether the newhead message is sent.
node_messageThe text that we send when announcing researched nodes.
radioThe headset that we use for broadcasting

Procs

announce_officerAnnounces a new security officer joining over the radio
broadcastSends a message to the appropriate channels.

Var Details

announce_research_node

If true, researched nodes will be announced to the appropriate channels

arrival

The message that we send when someone is joining.

arrival_toggle

Whether the arrival message is sent

newhead

The message that we send when a department head arrives.

newhead_toggle

Whether the newhead message is sent.

node_message

The text that we send when announcing researched nodes.

radio

The headset that we use for broadcasting

Proc Details

announce_officer

Announces a new security officer joining over the radio

broadcast

Sends a message to the appropriate channels.

\ No newline at end of file diff --git a/obj/machinery/anomalous_crystal.html b/obj/machinery/anomalous_crystal.html new file mode 100644 index 0000000000000..094824a433ba6 --- /dev/null +++ b/obj/machinery/anomalous_crystal.html @@ -0,0 +1 @@ +/obj/machinery/anomalous_crystal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

anomalous_crystal

Vars

activeIf we are being used
cooldown_addCooldown on this crystal
use_timeTime needed to use this crystal

Var Details

active

If we are being used

cooldown_add

Cooldown on this crystal

use_time

Time needed to use this crystal

\ No newline at end of file diff --git a/obj/machinery/anomalous_crystal/honk.html b/obj/machinery/anomalous_crystal/honk.html new file mode 100644 index 0000000000000..bec587a7e3565 --- /dev/null +++ b/obj/machinery/anomalous_crystal/honk.html @@ -0,0 +1 @@ +/obj/machinery/anomalous_crystal/honk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

honk

Vars

clowned_mob_refsList of REFs to mobs that have been turned into a clown

Var Details

clowned_mob_refs

List of REFs to mobs that have been turned into a clown

\ No newline at end of file diff --git a/obj/machinery/anomalous_crystal/possessor.html b/obj/machinery/anomalous_crystal/possessor.html new file mode 100644 index 0000000000000..cfab0f1a17e95 --- /dev/null +++ b/obj/machinery/anomalous_crystal/possessor.html @@ -0,0 +1 @@ +/obj/machinery/anomalous_crystal/possessor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

possessor

Procs

is_valid_animalReturns true if this is a mob you're allowed to possess

Proc Details

is_valid_animal

Returns true if this is a mob you're allowed to possess

\ No newline at end of file diff --git a/obj/machinery/anomalous_crystal/theme_warp.html b/obj/machinery/anomalous_crystal/theme_warp.html new file mode 100644 index 0000000000000..94c88f25fce29 --- /dev/null +++ b/obj/machinery/anomalous_crystal/theme_warp.html @@ -0,0 +1 @@ +/obj/machinery/anomalous_crystal/theme_warp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

theme_warp

Transforms the area to look like a new one

Vars

converted_areasList of all areas we've affected
terrain_themeTheme which we turn areas into on activation

Var Details

converted_areas

List of all areas we've affected

terrain_theme

Theme which we turn areas into on activation

\ No newline at end of file diff --git a/obj/machinery/arc_furnace.html b/obj/machinery/arc_furnace.html new file mode 100644 index 0000000000000..d652cb6e5f72a --- /dev/null +++ b/obj/machinery/arc_furnace.html @@ -0,0 +1 @@ +/obj/machinery/arc_furnace - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

arc_furnace

Vars

operatingIf the furnace is currently working on smelting something
radial_ejectImage for the radial eject button
radial_optionsRadial options for using the arc furnace
radial_useImage for the radial use button
repacked_typeThe item we turn into when repacked
soundloopSoundloop for while we are smelting ores

Procs

eject_contentsRemoves the first item in the contents list which should only ever be ore and if its not, we have problems
end_smeltingTurns the arc furnace off, removing its lights, sounds, so on.
loopThe smelting loop for checking if we're done smelting or not. If we are, then we succeed smelting. If we have to stop for whatever reason, we stop.
smelt_it_upStarts the smelting process, checking if the machine has power or if its broken at all
succeed_smeltingTakes the ore contained and turns it into an equal stack amount of its smelt result

Var Details

operating

If the furnace is currently working on smelting something

radial_eject

Image for the radial eject button

radial_options

Radial options for using the arc furnace

radial_use

Image for the radial use button

repacked_type

The item we turn into when repacked

soundloop

Soundloop for while we are smelting ores

Proc Details

eject_contents

Removes the first item in the contents list which should only ever be ore and if its not, we have problems

end_smelting

Turns the arc furnace off, removing its lights, sounds, so on.

loop

The smelting loop for checking if we're done smelting or not. If we are, then we succeed smelting. If we have to stop for whatever reason, we stop.

smelt_it_up

Starts the smelting process, checking if the machine has power or if its broken at all

succeed_smelting

Takes the ore contained and turns it into an equal stack amount of its smelt result

\ No newline at end of file diff --git a/obj/machinery/armament_station.html b/obj/machinery/armament_station.html new file mode 100644 index 0000000000000..64458ce870cf7 --- /dev/null +++ b/obj/machinery/armament_station.html @@ -0,0 +1,6 @@ +/obj/machinery/armament_station - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

armament_station

Armament Station

+

These are the stations designed to be used by players to outfit themselves. +They are a container for the armament component, which must be supplied with a type path of armament entries, and optionally a list of required accesses to use the vendor.

+

If you plan on making your own station, it is strongly recommended you use your own armament entries for whatever it is you're doing.

+

Never directly edit an armament entry as this will be carried through all other vendors.

+

@author Gandalf2k15

Vars

armament_typeThe armament entry type path that will fill the armament station's list.
required_accessThe access needed to use the vendor

Var Details

armament_type

The armament entry type path that will fill the armament station's list.

required_access

The access needed to use the vendor

\ No newline at end of file diff --git a/obj/machinery/atmospherics.html b/obj/machinery/atmospherics.html new file mode 100644 index 0000000000000..9678de807a4fd --- /dev/null +++ b/obj/machinery/atmospherics.html @@ -0,0 +1,88 @@ +/obj/machinery/atmospherics - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

atmospherics

Vars

can_unwrenchCheck if the object can be unwrenched
cap_overlayCap overlay that is being added to turf's vis_contents, null if pipe was never hidden or has no valid connections
construction_typeThe path of the pipe/device that will spawn after unwrenching it (such as pipe fittings)
device_typeThe type of the device (UNARY, BINARY, TRINARY, QUATERNARY)
has_cap_visualsWhether it will generate cap sprites when hidden
hideThis only works on pipes, because they have 1000 subtypes which need to be visible and invisible under tiles, so we track this here
init_processingIf we should init and immediately start processing
initialize_directionsBitflag of the initialized directions (NORTH | SOUTH | EAST | WEST)
nodesThe lists of nodes that a pipe/device has, depends on the device_type var (from 1 to 4)
onCheck if the device should be on or off (mostly used in processing for machines)
override_namingkeeps the name of the object from being overridden if it's vareditted.
paintableWhether it can be painted
pipe_colorThe color of the pipe
pipe_flagsThe flags of the pipe/component (PIPING_ALL_LAYER | PIPING_ONE_PER_TURF | PIPING_DEFAULT_LAYER_ONLY | PIPING_CARDINAL_AUTONORMALIZE)
pipe_stateicon_state as a pipe item
pipe_vision_imgThe image of the pipe/device used for ventcrawling
piping_layerWhat layer the pipe is in (from 1 to 5, default 3)
rebuildingIs the thing being rebuilt by SSair or not. Prevents list bloat
vent_movementThe bitflag that's being checked on ventcrawling. Default is to allow ventcrawling and seeing pipes.

Procs

atmos_initInitialize for atmos devices
can_be_nodeCheck if a node can actually exists by connecting to another machine +called on atmos_init() +Arguments:
can_see_pipesUsed for certain children of obj/machinery/atmospherics to not show pipe vision when mob is inside it.
can_unwrenchGetter for can_unwrench
connection_checkCheck the connection between two nodes
destroy_networkCalled by the machinery disconnect(), custom for each type
disconnectDisconnects the nodes
find_connectingFind a connecting /obj/machinery/atmospherics in specified direction, called by relaymove() +used by ventcrawling mobs to check if they can move inside a pipe in a specific direction +Arguments:
get_init_directionsGetter of initial directions
get_node_connectsGetter for node_connects
get_pipe_imageGetter for piping layer shifted, pipe colored overlays
get_rebuild_targetsReturns a list of new pipelines that need to be built up
is_connectablecheck if the piping layer and color are the same on both sides (grey can connect to all colors) +returns TRUE or FALSE if the connection is possible or not +Arguments:
normalize_cardinal_directionsSetter for device direction
nullify_nodeCalled on destroy(mostly deconstruction) and when moving nodes around, disconnect the nodes from the network +Arguments:
on_deconstructionPipe deconstruction
on_hideSignal handler. Updates both our pipe cap visuals and those of adjacent nodes. +We update adjacent nodes as their pipe caps are based partially on our state, so they need updating as well.
paintCalled by the RPD.dm pre_attack() +Arguments:
pipeline_expansionCalled on construction and when expanding the datum_pipeline, returns the nodes of the device
portable_device_connectedReturn TRUE if there is device connected to portables_connector
rebuild_pipesThis should only be called by SSair as part of the rebuild queue. +Handles rebuilding pipelines after init or they've been changed.
replace_pipenetReplaces the connection to the old_pipenet with the new_pipenet
return_pipenetCalled by add_member() in datum_pipeline.dm, returns the parent network the device is connected to
return_pipenet_airsCalled by add_machinery_member() in datum_pipeline.dm, returns a list of gas_mixtures and assigns them into other_airs (by addMachineryMember) to allow pressure redistribution for the machineries.
return_pipenetsGetter of a list of pipenets
set_init_directionsSet the initial directions of the device (NORTH || SOUTH || EAST || WEST), called on New()
set_pipe_colorSetter for pipe color, so we can ensure it's all uniform and save cpu time
set_pipenetCalled by build_pipeline() and add_member() in datum_pipeline.dm, set the network the device is connected to, to the datum pipeline it has reference
set_piping_layersetter for pipe layers
setup_hidingSets up our pipe hiding logic, consolidated in one place so subtypes may override it. +This lets subtypes implement their own hiding logic without needing to worry about conflicts with the parent hiding logic.
shuttleRotateMachine rotate procs
unsafe_pressure_releasePipe pressure release calculations
update_cap_visualsHandles cap overlay addition and removal, won't do anything if has_cap_visuals is set to FALSE
update_layerUpdate the layer in which the pipe/device is in, that way pipes have consistent layer depending on piping_layer

Var Details

can_unwrench

Check if the object can be unwrenched

cap_overlay

Cap overlay that is being added to turf's vis_contents, null if pipe was never hidden or has no valid connections

construction_type

The path of the pipe/device that will spawn after unwrenching it (such as pipe fittings)

device_type

The type of the device (UNARY, BINARY, TRINARY, QUATERNARY)

has_cap_visuals

Whether it will generate cap sprites when hidden

hide

This only works on pipes, because they have 1000 subtypes which need to be visible and invisible under tiles, so we track this here

init_processing

If we should init and immediately start processing

initialize_directions

Bitflag of the initialized directions (NORTH | SOUTH | EAST | WEST)

nodes

The lists of nodes that a pipe/device has, depends on the device_type var (from 1 to 4)

on

Check if the device should be on or off (mostly used in processing for machines)

override_naming

keeps the name of the object from being overridden if it's vareditted.

paintable

Whether it can be painted

pipe_color

The color of the pipe

pipe_flags

The flags of the pipe/component (PIPING_ALL_LAYER | PIPING_ONE_PER_TURF | PIPING_DEFAULT_LAYER_ONLY | PIPING_CARDINAL_AUTONORMALIZE)

pipe_state

icon_state as a pipe item

pipe_vision_img

The image of the pipe/device used for ventcrawling

piping_layer

What layer the pipe is in (from 1 to 5, default 3)

rebuilding

Is the thing being rebuilt by SSair or not. Prevents list bloat

vent_movement

The bitflag that's being checked on ventcrawling. Default is to allow ventcrawling and seeing pipes.

Proc Details

atmos_init

Initialize for atmos devices

+

initialize the nodes for each pipe/device, this is called just after the air controller sets up turfs +Arguments:

+
    +
  • list/node_connects - a list of the nodes on the device that can make a connection to other machines
  • +

can_be_node

Check if a node can actually exists by connecting to another machine +called on atmos_init() +Arguments:

+
    +
  • obj/machinery/atmospherics/target - the machine we are connecting to
  • +

can_see_pipes

Used for certain children of obj/machinery/atmospherics to not show pipe vision when mob is inside it.

can_unwrench

Getter for can_unwrench

+

Called by wrench_act() to check if the device can be unwrenched, each device override this with custom code (like if on/operating can't unwrench) +Arguments:

+
    +
  • mob/user - the mob doing the act
  • +

connection_check

Check the connection between two nodes

+

Check if our machine and the target machine are connectable by both calling isConnectable and by checking that the directions and piping_layer are compatible +called by can_be_node() (for building a network) and find_connecting() (for ventcrawling) +Arguments:

+
    +
  • obj/machinery/atmospherics/target - the machinery we want to connect to
  • +
  • given_layer - the piping_layer we are checking
  • +

destroy_network

Called by the machinery disconnect(), custom for each type

disconnect

Disconnects the nodes

+

Called by nullify_node(), it disconnects two nodes by removing the reference id from the node itself that called this proc +Arguments:

+
    +
  • obj/machinery/atmospherics/reference - the machinery we are removing from the node connection
  • +

find_connecting

Find a connecting /obj/machinery/atmospherics in specified direction, called by relaymove() +used by ventcrawling mobs to check if they can move inside a pipe in a specific direction +Arguments:

+
    +
  • direction - the direction we are checking against
  • +
  • prompted_layer - the piping_layer we are inside
  • +

get_init_directions

Getter of initial directions

get_node_connects

Getter for node_connects

+

Return a list of the nodes that can connect to other machines, get called by atmos_init()

get_pipe_image

Getter for piping layer shifted, pipe colored overlays

+

Creates the image for the pipe underlay that all components use, called by get_pipe_underlay() in components_base.dm +Arguments:

+
    +
  • iconfile - path of the iconstate we are using (ex: 'icons/obj/machines/atmospherics/thermomachine.dmi')
  • +
  • iconstate - the image we are using inside the file
  • +
  • direction - the direction of our device
  • +
  • color - the color (in hex value, like #559900) that the pipe should have
  • +
  • piping_layer - the piping_layer the device is in, used inside PIPING_LAYER_SHIFT
  • +
  • trinary - if TRUE we also use PIPING_FORWARD_SHIFT on layer 1 and 5 for trinary devices (filters and mixers)
  • +

get_rebuild_targets

Returns a list of new pipelines that need to be built up

is_connectable

check if the piping layer and color are the same on both sides (grey can connect to all colors) +returns TRUE or FALSE if the connection is possible or not +Arguments:

+
    +
  • obj/machinery/atmospherics/target - the machinery we want to connect to
  • +
  • given_layer - the piping_layer we are connecting to
  • +

normalize_cardinal_directions

Setter for device direction

+

Set the direction to either SOUTH or WEST if the pipe_flag is set to PIPING_CARDINAL_AUTONORMALIZE, called in New(), used mostly by layer manifolds

nullify_node

Called on destroy(mostly deconstruction) and when moving nodes around, disconnect the nodes from the network +Arguments:

+
    +
  • i - is the current iteration of the node, based on the device_type (from 1 to 4)
  • +

on_deconstruction

Pipe deconstruction

+

Called by wrench_act(), create a pipe fitting and remove the pipe

on_hide

Signal handler. Updates both our pipe cap visuals and those of adjacent nodes. +We update adjacent nodes as their pipe caps are based partially on our state, so they need updating as well.

paint

Called by the RPD.dm pre_attack() +Arguments:

+
    +
  • paint_color - color that the pipe will be painted in (colors in hex like #4f4f4f)
  • +

pipeline_expansion

Called on construction and when expanding the datum_pipeline, returns the nodes of the device

portable_device_connected

Return TRUE if there is device connected to portables_connector

rebuild_pipes

This should only be called by SSair as part of the rebuild queue. +Handles rebuilding pipelines after init or they've been changed.

replace_pipenet

Replaces the connection to the old_pipenet with the new_pipenet

return_pipenet

Called by add_member() in datum_pipeline.dm, returns the parent network the device is connected to

return_pipenet_airs

Called by add_machinery_member() in datum_pipeline.dm, returns a list of gas_mixtures and assigns them into other_airs (by addMachineryMember) to allow pressure redistribution for the machineries.

return_pipenets

Getter of a list of pipenets

+

called in relaymove() to create the image for vent crawling

set_init_directions

Set the initial directions of the device (NORTH || SOUTH || EAST || WEST), called on New()

set_pipe_color

Setter for pipe color, so we can ensure it's all uniform and save cpu time

set_pipenet

Called by build_pipeline() and add_member() in datum_pipeline.dm, set the network the device is connected to, to the datum pipeline it has reference

set_piping_layer

setter for pipe layers

+

Set the layer of the pipe that the device has to a new_layer +Arguments:

+
    +
  • new_layer - the layer at which we want the piping_layer to be (1 to 5)
  • +

setup_hiding

Sets up our pipe hiding logic, consolidated in one place so subtypes may override it. +This lets subtypes implement their own hiding logic without needing to worry about conflicts with the parent hiding logic.

shuttleRotate

Machine rotate procs

unsafe_pressure_release

Pipe pressure release calculations

+

Throws the user when they unwrench a pipe with a major difference between the internal and environmental pressure. +Called by wrench_act() before deconstruct() +Arguments:

+
    +
  • mob_user - the mob doing the act
  • +
  • pressures - it can be passed on from wrench_act(), it's the pressure difference between the environment pressure and the pipe internal pressure
  • +

update_cap_visuals

Handles cap overlay addition and removal, won't do anything if has_cap_visuals is set to FALSE

update_layer

Update the layer in which the pipe/device is in, that way pipes have consistent layer depending on piping_layer

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components.html b/obj/machinery/atmospherics/components.html new file mode 100644 index 0000000000000..6f6d4a188048a --- /dev/null +++ b/obj/machinery/atmospherics/components.html @@ -0,0 +1,20 @@ +/obj/machinery/atmospherics/components - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

components

Vars

airsStores the gasmix for each node, used in components
custom_reconcilationHandles whether the custom reconcilation handling should be used
parentsStores the parent pipeline, used in components
shift_underlay_onlyWhen the component is on a non default layer should we shift everything? Or just the underlay pipe
showpipeShould the component should show the pipe underneath it?
update_parents_after_rebuildIf this is queued for a rebuild this var signifies whether parents should be updated after it's done
weldedIs the component welded?

Procs

change_nodes_connectionEasy way to toggle nodes connection and disconnection.
connect_nodesConnects all nodes to ourselves, add us to the node's nodes. +Calls atmos_init() on the node and on us.
crowbar_deconstruction_actHandles machinery deconstruction and unsafe pressure release
disconnect_nodesDisconnects all nodes from ourselves, remove us from the node's nodes. +Nullify our parent pipenet
hide_pipeCalled in on_hide(), set the showpipe var to true or false depending on the situation, calls update_icon()
nullify_pipenetCalled by nullify_node(), used to remove the pipeline the component is attached to +Arguments:
relocate_airsHandles air relocation to the pipenet/environment
return_airs_for_reconcilationWhen this machine is in a pipenet that is reconciling airs, this proc can add airs to the calculation. +Can be either a list of airs or a single air mix.
return_pipenets_for_reconcilationWhen this machine is in a pipenet that is reconciling airs, this proc can add pipelines to the calculation. +Can be either a list of pipenets or a single pipenet.
update_icon_nopipesCalled by update_icon(), used individually by each component to determine the icon state without the pipe in consideration
update_parentsCalled in most atmos processes and gas handling situations, update the parents pipelines of the devices connected to the source component +This way gases won't get stuck

Var Details

airs

Stores the gasmix for each node, used in components

custom_reconcilation

Handles whether the custom reconcilation handling should be used

parents

Stores the parent pipeline, used in components

shift_underlay_only

When the component is on a non default layer should we shift everything? Or just the underlay pipe

showpipe

Should the component should show the pipe underneath it?

update_parents_after_rebuild

If this is queued for a rebuild this var signifies whether parents should be updated after it's done

welded

Is the component welded?

Proc Details

change_nodes_connection

Easy way to toggle nodes connection and disconnection.

+

Arguments:

+
    +
  • disconnect - if TRUE, disconnects all nodes. If FALSE, connects all nodes.
  • +

connect_nodes

Connects all nodes to ourselves, add us to the node's nodes. +Calls atmos_init() on the node and on us.

crowbar_deconstruction_act

Handles machinery deconstruction and unsafe pressure release

disconnect_nodes

Disconnects all nodes from ourselves, remove us from the node's nodes. +Nullify our parent pipenet

hide_pipe

Called in on_hide(), set the showpipe var to true or false depending on the situation, calls update_icon()

nullify_pipenet

Called by nullify_node(), used to remove the pipeline the component is attached to +Arguments:

+
    +
  • -reference: the pipeline the component is attached to
  • +

relocate_airs

Handles air relocation to the pipenet/environment

return_airs_for_reconcilation

When this machine is in a pipenet that is reconciling airs, this proc can add airs to the calculation. +Can be either a list of airs or a single air mix.

return_pipenets_for_reconcilation

When this machine is in a pipenet that is reconciling airs, this proc can add pipelines to the calculation. +Can be either a list of pipenets or a single pipenet.

update_icon_nopipes

Called by update_icon(), used individually by each component to determine the icon state without the pipe in consideration

update_parents

Called in most atmos processes and gas handling situations, update the parents pipelines of the devices connected to the source component +This way gases won't get stuck

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/binary.html b/obj/machinery/atmospherics/components/binary.html new file mode 100644 index 0000000000000..435dd46cb2ccf --- /dev/null +++ b/obj/machinery/atmospherics/components/binary.html @@ -0,0 +1,6 @@ +/obj/machinery/atmospherics/components/binary - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

binary

Procs

set_overlay_offsetUsed by binary devices to set what the offset will be for each layer, called in update_icon_nopipes() +Arguments:

Proc Details

set_overlay_offset

Used by binary devices to set what the offset will be for each layer, called in update_icon_nopipes() +Arguments:

+
    +
  • -pipe_layer: is the pipe layer the component should be set to
  • +
\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/binary/crystallizer.html b/obj/machinery/atmospherics/components/binary/crystallizer.html new file mode 100644 index 0000000000000..4d8b46766492e --- /dev/null +++ b/obj/machinery/atmospherics/components/binary/crystallizer.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/binary/crystallizer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

crystallizer

Vars

gas_inputVar that controls how much gas gets injected in moles per tick
internalInternal Gas mix used for processing the gases that have been put in
progress_barSaves the progress during the processing of the items
quality_lossStores the amount of lost quality
selected_recipeStores the recipe selected by the user in the GUI
total_recipe_molesStores the total amount of moles needed for the current recipe

Procs

check_temp_requirementsChecks if the reaction temperature is inside the range of temperature + a little deviation
dump_gasesRemoves the gases from the internal gasmix when the recipe is changed
heat_calculationsCalculation for the heat of the various gas mixes and controls the quality of the item
heat_conductionConduction between the internal gasmix and the moderating (cooling/heating) gasmix.
inject_gasesInjects the gases from the input inside the internal gasmix, the amount is dependent on the gas_input var
internal_checkChecks if the gases required are all inside
moles_calculationsCalculate the total moles needed for the recipe

Var Details

gas_input

Var that controls how much gas gets injected in moles per tick

internal

Internal Gas mix used for processing the gases that have been put in

progress_bar

Saves the progress during the processing of the items

quality_loss

Stores the amount of lost quality

selected_recipe

Stores the recipe selected by the user in the GUI

total_recipe_moles

Stores the total amount of moles needed for the current recipe

Proc Details

check_temp_requirements

Checks if the reaction temperature is inside the range of temperature + a little deviation

dump_gases

Removes the gases from the internal gasmix when the recipe is changed

heat_calculations

Calculation for the heat of the various gas mixes and controls the quality of the item

heat_conduction

Conduction between the internal gasmix and the moderating (cooling/heating) gasmix.

inject_gases

Injects the gases from the input inside the internal gasmix, the amount is dependent on the gas_input var

internal_check

Checks if the gases required are all inside

moles_calculations

Calculate the total moles needed for the recipe

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/binary/dp_vent_pump.html b/obj/machinery/atmospherics/components/binary/dp_vent_pump.html new file mode 100644 index 0000000000000..b800a50b4bac5 --- /dev/null +++ b/obj/machinery/atmospherics/components/binary/dp_vent_pump.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/binary/dp_vent_pump - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dp_vent_pump

Vars

external_pressure_boundSet the maximum allowed external pressure
input_pressure_minSet the maximum pressure at the input port
output_pressure_maxSet the maximum pressure at the output port
pressure_checksSet the flag for the pressure bound
pump_directionIndicates that the direction of the pump, if ATMOS_DIRECTION_SIPHONING is siphoning, if ATMOS_DIRECTION_RELEASING is releasing

Var Details

external_pressure_bound

Set the maximum allowed external pressure

input_pressure_min

Set the maximum pressure at the input port

output_pressure_max

Set the maximum pressure at the output port

pressure_checks

Set the flag for the pressure bound

pump_direction

Indicates that the direction of the pump, if ATMOS_DIRECTION_SIPHONING is siphoning, if ATMOS_DIRECTION_RELEASING is releasing

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/binary/passive_gate.html b/obj/machinery/atmospherics/components/binary/passive_gate.html new file mode 100644 index 0000000000000..17f72a4e3982f --- /dev/null +++ b/obj/machinery/atmospherics/components/binary/passive_gate.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/binary/passive_gate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

passive_gate

Vars

target_pressureSet the target pressure the component should arrive to

Var Details

target_pressure

Set the target pressure the component should arrive to

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/binary/pressure_valve.html b/obj/machinery/atmospherics/components/binary/pressure_valve.html new file mode 100644 index 0000000000000..115195c1c36f9 --- /dev/null +++ b/obj/machinery/atmospherics/components/binary/pressure_valve.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/binary/pressure_valve - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pressure_valve

Vars

is_gas_flowingCheck if the gas is moving from one pipenet to the other
target_pressureAmount of pressure needed before the valve for it to open

Var Details

is_gas_flowing

Check if the gas is moving from one pipenet to the other

target_pressure

Amount of pressure needed before the valve for it to open

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/binary/pump.html b/obj/machinery/atmospherics/components/binary/pump.html new file mode 100644 index 0000000000000..5769cfed53337 --- /dev/null +++ b/obj/machinery/atmospherics/components/binary/pump.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/binary/pump - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pump

Vars

target_pressurePressure that the pump will reach when on

Var Details

target_pressure

Pressure that the pump will reach when on

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/binary/tank_compressor.html b/obj/machinery/atmospherics/components/binary/tank_compressor.html new file mode 100644 index 0000000000000..e85b8e7a21a83 --- /dev/null +++ b/obj/machinery/atmospherics/components/binary/tank_compressor.html @@ -0,0 +1,3 @@ +/obj/machinery/atmospherics/components/binary/tank_compressor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tank_compressor

Vars

inserted_diskReference to a disk we are going to print to.

Procs

ExitedWe rely on exited to clear references.
eject_tankEjecting a tank. Also called on insertion to clear previous tanks.
explosion_handleUse this to absorb explosions.
flush_bufferEverytime a tank is destroyed or a new tank is inserted, our buffer is flushed. +Mole requirements in experiments are tracked by buffer data.
process_atmosGlorified volume pump.
record_dataThis proc should be called whenever we want to store our buffer data.
tank_destructionRecording of last pressure of the tank. Ran when a tank is about to explode or disintegrate. We dont care about last pressure if the tank is ejected.

Var Details

inserted_disk

Reference to a disk we are going to print to.

Proc Details

Exited

We rely on exited to clear references.

eject_tank

Ejecting a tank. Also called on insertion to clear previous tanks.

explosion_handle

Use this to absorb explosions.

flush_buffer

Everytime a tank is destroyed or a new tank is inserted, our buffer is flushed. +Mole requirements in experiments are tracked by buffer data.

process_atmos

Glorified volume pump.

record_data

This proc should be called whenever we want to store our buffer data.

tank_destruction

Recording of last pressure of the tank. Ran when a tank is about to explode or disintegrate. We dont care about last pressure if the tank is ejected.

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/binary/temperature_gate.html b/obj/machinery/atmospherics/components/binary/temperature_gate.html new file mode 100644 index 0000000000000..59feced3101b4 --- /dev/null +++ b/obj/machinery/atmospherics/components/binary/temperature_gate.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/binary/temperature_gate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

temperature_gate

Vars

invertedCheck if the sensor should let gas pass if temperature in the mix is less/higher than the target one
is_gas_flowingCheck if the gas is moving from one pipenet to the other
max_temperatureMaximum allowed temperature to be set
minimum_temperatureMinimum allowed temperature
target_temperatureIf the temperature of the mix before the gate is lower than this, the gas will flow (if inverted, if the temperature of the mix before the gate is higher than this)

Var Details

inverted

Check if the sensor should let gas pass if temperature in the mix is less/higher than the target one

is_gas_flowing

Check if the gas is moving from one pipenet to the other

max_temperature

Maximum allowed temperature to be set

minimum_temperature

Minimum allowed temperature

target_temperature

If the temperature of the mix before the gate is lower than this, the gas will flow (if inverted, if the temperature of the mix before the gate is higher than this)

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/binary/temperature_pump.html b/obj/machinery/atmospherics/components/binary/temperature_pump.html new file mode 100644 index 0000000000000..aec54e1cc7a10 --- /dev/null +++ b/obj/machinery/atmospherics/components/binary/temperature_pump.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/binary/temperature_pump - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

temperature_pump

Vars

heat_transfer_ratePercent of the heat delta to transfer
max_heat_transfer_rateMaximum allowed transfer percentage

Var Details

heat_transfer_rate

Percent of the heat delta to transfer

max_heat_transfer_rate

Maximum allowed transfer percentage

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/binary/valve.html b/obj/machinery/atmospherics/components/binary/valve.html new file mode 100644 index 0000000000000..0faaca4db7a7c --- /dev/null +++ b/obj/machinery/atmospherics/components/binary/valve.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/binary/valve - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

valve

Vars

switchingBool to stop interactions while the opening/closing animation is going
valve_typeType of valve (manual or digital), used to set the icon of the component in update_icon_nopipes()

Procs

finish_interactCalled by iteract() after a 1 second timer, calls toggle(), allows another interaction with the component.
set_openCalled by finish_interact(), switch between open and closed, reconcile the air between two pipelines

Var Details

switching

Bool to stop interactions while the opening/closing animation is going

valve_type

Type of valve (manual or digital), used to set the icon of the component in update_icon_nopipes()

Proc Details

finish_interact

Called by iteract() after a 1 second timer, calls toggle(), allows another interaction with the component.

set_open

Called by finish_interact(), switch between open and closed, reconcile the air between two pipelines

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/binary/volume_pump.html b/obj/machinery/atmospherics/components/binary/volume_pump.html new file mode 100644 index 0000000000000..1672414d4daa1 --- /dev/null +++ b/obj/machinery/atmospherics/components/binary/volume_pump.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/binary/volume_pump - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

volume_pump

Vars

overclock_overlayflashing light overlay which appears on multitooled vol pumps
overclockedCheck if the component has been overclocked
transfer_rateTransfer rate of the component in L/s

Var Details

overclock_overlay

flashing light overlay which appears on multitooled vol pumps

overclocked

Check if the component has been overclocked

transfer_rate

Transfer rate of the component in L/s

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/tank.html b/obj/machinery/atmospherics/components/tank.html new file mode 100644 index 0000000000000..f3bc6f19dd9d4 --- /dev/null +++ b/obj/machinery/atmospherics/components/tank.html @@ -0,0 +1,3 @@ +/obj/machinery/atmospherics/components/tank - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tank

Vars

air_contentsReference to the gas mix inside the tank
breaking_soundsThe sounds that play when the tank is breaking from overpressure
crack_statesThe icon states for the cracks in the tank dmi
crack_states_countNumber of crack states to fill the list with. This exists because I'm lazy and didn't want to keeping adding more things manually to the below list.
gas_typeThe typepath of the gas this tank should be filled with.
knob_overlaysShared images for the knob overlay representing a side of the tank that is open to connections
max_pressureThe max pressure of the gas mixture before damaging the tank
merger_idThe merger id used to create/get the merger group in charge of handling tanks that share an internal gas storage
merger_typecacheThe typecache of types which are allowed to merge internal storage
volumeThe volume of the gas mixture
windowThe image showing the gases inside of the tank

Procs

fill_to_pressureFills the tank to the maximum safe pressure. +Safety margin is a multiplier for the cap for the purpose of this proc so it doesn't have to be filled completely.
merger_refresh_completeHandles the combined gas tank for the entire merger group, only the origin tank actualy runs this.
refresh_pressure_limitRecalculates pressure based on the current max integrity compared to original

Var Details

air_contents

Reference to the gas mix inside the tank

breaking_sounds

The sounds that play when the tank is breaking from overpressure

crack_states

The icon states for the cracks in the tank dmi

crack_states_count

Number of crack states to fill the list with. This exists because I'm lazy and didn't want to keeping adding more things manually to the below list.

gas_type

The typepath of the gas this tank should be filled with.

knob_overlays

Shared images for the knob overlay representing a side of the tank that is open to connections

max_pressure

The max pressure of the gas mixture before damaging the tank

merger_id

The merger id used to create/get the merger group in charge of handling tanks that share an internal gas storage

merger_typecache

The typecache of types which are allowed to merge internal storage

volume

The volume of the gas mixture

window

The image showing the gases inside of the tank

Proc Details

fill_to_pressure

Fills the tank to the maximum safe pressure. +Safety margin is a multiplier for the cap for the purpose of this proc so it doesn't have to be filled completely.

merger_refresh_complete

Handles the combined gas tank for the entire merger group, only the origin tank actualy runs this.

refresh_pressure_limit

Recalculates pressure based on the current max integrity compared to original

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/trinary.html b/obj/machinery/atmospherics/components/trinary.html new file mode 100644 index 0000000000000..a95ab181e7ea1 --- /dev/null +++ b/obj/machinery/atmospherics/components/trinary.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/trinary - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

trinary

Vars

flippedFlips the node connections so that the first and third ports are swapped

Var Details

flipped

Flips the node connections so that the first and third ports are swapped

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/trinary/filter.html b/obj/machinery/atmospherics/components/trinary/filter.html new file mode 100644 index 0000000000000..53f3d40e10fcd --- /dev/null +++ b/obj/machinery/atmospherics/components/trinary/filter.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/trinary/filter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

filter

Vars

filter_typeWhat gases are we filtering, by typepath
transfer_rateRate of transfer of the gases to the outputs

Var Details

filter_type

What gases are we filtering, by typepath

transfer_rate

Rate of transfer of the gases to the outputs

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/trinary/mixer.html b/obj/machinery/atmospherics/components/trinary/mixer.html new file mode 100644 index 0000000000000..81b38041cc0ef --- /dev/null +++ b/obj/machinery/atmospherics/components/trinary/mixer.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/trinary/mixer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mixer

Vars

node1_concentrationRatio between the node 1 and 2, determines the amount of gas transferred, sums up to 1
node2_concentrationRatio between the node 1 and 2, determines the amount of gas transferred, sums up to 1
target_pressureOutput pressure target

Var Details

node1_concentration

Ratio between the node 1 and 2, determines the amount of gas transferred, sums up to 1

node2_concentration

Ratio between the node 1 and 2, determines the amount of gas transferred, sums up to 1

target_pressure

Output pressure target

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/unary.html b/obj/machinery/atmospherics/components/unary.html new file mode 100644 index 0000000000000..b478ee85a234e --- /dev/null +++ b/obj/machinery/atmospherics/components/unary.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/unary - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

unary

Vars

gl_uidIncreases to prevent duplicated Ids
uidUnique id of the device

Var Details

gl_uid

Increases to prevent duplicated Ids

uid

Unique id of the device

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/unary/airlock_pump.html b/obj/machinery/atmospherics/components/unary/airlock_pump.html new file mode 100644 index 0000000000000..d07c2112984e5 --- /dev/null +++ b/obj/machinery/atmospherics/components/unary/airlock_pump.html @@ -0,0 +1,16 @@ +/obj/machinery/atmospherics/components/unary/airlock_pump - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

airlock_pump

The pump looks up for the airlocks automatically based on airlock_pump_distance_limit and airlock_group_distance_limit values. +When placed, the dir value (direction where the pipes are coming from) is considered as a direction towards the station (internal). The opposite direction is external. +The airlock then tries to find airlocks or walls towards these directions until airlock_pump_distance_limit number of tiles reached. +When it finds a valid object, then it tries to find airlocks, in directions perpendicular to the found tiles. +And then adds them to the corresponding group (external/internal) until airlock_group_distance_limit number of tiles reached

+

Example scheme of a valid configuration: +A-----W +A-----A +W--P--A +W-----W +A-----W

+

Where: +A - airlocks +W - walls +P - pump +A vent, scrubber and a sensor in a single device meant specifically for cycling airlocks. Ideal for airlocks of up to 3x3 tiles in size to avoid wind and timing out.

Vars

adjacent_turfsList of the turfs adjacent to the pump for faster cycling and avoiding wind
airlock_group_distance_limitMax distance between the central airlock and the side airlocks in a group
airlock_pump_distance_limitMax distance between the airlock and the pump. Used to set up cycling.
airlocks_animatingAirlocks currently animating
allowed_pressure_errorAllowed error in pressure checks
cycle_pressure_targetTarget pressure for the current cycle
cycle_start_timeThe start time of the current cycle to calculate cycle duration
cycle_timeoutMax duration of cycle, after which the pump will unlock the airlocks with a warning
cycling_set_upWhether both airlocks are specified and cycling is available
external_airlocksSpace-facing airlocks used in cycling
external_pressure_targetTarget pressure for depressurization cycle
internal_airlocksStation-facing airlocks used in cycling
internal_pressure_targetTarget pressure for pressurization cycle
is_cycling_audibleWhether the airlocks comment the cycling details to the chat
min_distro_pressureMinimal distro pressure to start cycling
open_airlock_on_cycleWhether the pump opens the airlocks up instead of simpy unbolting them on cycle
pump_directionIndicates that the direction of the pump, if ATMOS_DIRECTION_SIPHONING is siphoning, if ATMOS_DIRECTION_RELEASING is releasing
valid_airlock_typepathType of airlocks required for automatic cycling setup. To avoid hacking bridge doors. Ignored for mapspawn pump.
volume_rateRate of the pump to remove gases from the air

Procs

airlock_actProc for triggering cycle by clicking on a bolted airlock that has a pump assigned
break_all_linksBreak the cycling setup
check_turfsUpdate adjacent_turfs with atmospherically adjacent tiles
fill_tileFill a tile with air from the distro node
find_densityGet the turf of the first found airlock or an airtight structure (walls) within the allowed range
get_adjacent_airlocksFind airlocks adjacent to the central one, lined up along the provided directions
is_valid_airlockWhether the passed airlock can be linked with
set_linksFind airlocks and link up with them
siphon_tileSiphon air from the tile to the waste node within the volume rate limit
start_cycleStart decompression or pressurization cycle depending on the passed direction
stop_cycleComplete/Abort cycle with the passed message
unlink_airlockFind airlocks and link up with them

Var Details

adjacent_turfs

List of the turfs adjacent to the pump for faster cycling and avoiding wind

airlock_group_distance_limit

Max distance between the central airlock and the side airlocks in a group

airlock_pump_distance_limit

Max distance between the airlock and the pump. Used to set up cycling.

airlocks_animating

Airlocks currently animating

allowed_pressure_error

Allowed error in pressure checks

cycle_pressure_target

Target pressure for the current cycle

cycle_start_time

The start time of the current cycle to calculate cycle duration

cycle_timeout

Max duration of cycle, after which the pump will unlock the airlocks with a warning

cycling_set_up

Whether both airlocks are specified and cycling is available

external_airlocks

Space-facing airlocks used in cycling

external_pressure_target

Target pressure for depressurization cycle

internal_airlocks

Station-facing airlocks used in cycling

internal_pressure_target

Target pressure for pressurization cycle

is_cycling_audible

Whether the airlocks comment the cycling details to the chat

min_distro_pressure

Minimal distro pressure to start cycling

open_airlock_on_cycle

Whether the pump opens the airlocks up instead of simpy unbolting them on cycle

pump_direction

Indicates that the direction of the pump, if ATMOS_DIRECTION_SIPHONING is siphoning, if ATMOS_DIRECTION_RELEASING is releasing

valid_airlock_typepath

Type of airlocks required for automatic cycling setup. To avoid hacking bridge doors. Ignored for mapspawn pump.

volume_rate

Rate of the pump to remove gases from the air

Proc Details

airlock_act

Proc for triggering cycle by clicking on a bolted airlock that has a pump assigned

Break the cycling setup

check_turfs

Update adjacent_turfs with atmospherically adjacent tiles

fill_tile

Fill a tile with air from the distro node

find_density

Get the turf of the first found airlock or an airtight structure (walls) within the allowed range

get_adjacent_airlocks

Find airlocks adjacent to the central one, lined up along the provided directions

is_valid_airlock

Whether the passed airlock can be linked with

Find airlocks and link up with them

siphon_tile

Siphon air from the tile to the waste node within the volume rate limit

start_cycle

Start decompression or pressurization cycle depending on the passed direction

stop_cycle

Complete/Abort cycle with the passed message

Find airlocks and link up with them

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/unary/bluespace_sender.html b/obj/machinery/atmospherics/components/unary/bluespace_sender.html new file mode 100644 index 0000000000000..d97d20bd84b10 --- /dev/null +++ b/obj/machinery/atmospherics/components/unary/bluespace_sender.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/unary/bluespace_sender - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bluespace_sender

Vars

base_pricesA base price for each and every gases, in case you don't want to change them
bluespace_networkGas mixture containing the inserted gases and that is connected to the vendors
credits_gainedAmount of credits gained from each vendor
gas_transfer_rateRate of gas transfer inside the network (from 0 to 1)
vendorsList storing all the vendors connected to the machine

Var Details

base_prices

A base price for each and every gases, in case you don't want to change them

bluespace_network

Gas mixture containing the inserted gases and that is connected to the vendors

credits_gained

Amount of credits gained from each vendor

gas_transfer_rate

Rate of gas transfer inside the network (from 0 to 1)

vendors

List storing all the vendors connected to the machine

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/unary/delam_scram.html b/obj/machinery/atmospherics/components/unary/delam_scram.html new file mode 100644 index 0000000000000..e35bd9b452c63 --- /dev/null +++ b/obj/machinery/atmospherics/components/unary/delam_scram.html @@ -0,0 +1,5 @@ +/obj/machinery/atmospherics/components/unary/delam_scram - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

delam_scram

An atmos device that uses freezing cold air to attempt an emergency shutdown of the supermatter engine

Vars

admin_disabledIf someone -really- wants the SM to explode
emergency_channelRadio channels, need null to actually broadcast on common, lol
my_smweakref to our SM
radioOur internal radio
radio_keyThe key our internal radio uses
volume_rateRate of operation of the device (L/s)

Procs

goodbye_friendsThe valiant little machine falls apart, one time use only!
marry_smSets the weakref to the SM
panic_timeSignal handler for the emergency stop button/automated system
prereq_checkCheck for admin intervention or a fault in the signal validation, we don't exactly want to fire this on accident
prevent_explosionDrain the internal energy, if the crystal damage is above 100 we heal it a bit. Not much, but should be good to let them recover.
process_atmosThe atmos code is functionally identical to /obj/machinery/atmospherics/components/unary/outlet_injector +However this is a hardened all-in-one unit that can't have its controls +tampered with like an outlet injector
put_on_a_showStop the delamination. Let the fireworks begin
send_warningTells the station (they probably already know) and starts the procedure

Var Details

admin_disabled

If someone -really- wants the SM to explode

emergency_channel

Radio channels, need null to actually broadcast on common, lol

my_sm

weakref to our SM

radio

Our internal radio

radio_key

The key our internal radio uses

volume_rate

Rate of operation of the device (L/s)

Proc Details

goodbye_friends

The valiant little machine falls apart, one time use only!

marry_sm

Sets the weakref to the SM

panic_time

Signal handler for the emergency stop button/automated system

prereq_check

Check for admin intervention or a fault in the signal validation, we don't exactly want to fire this on accident

prevent_explosion

Drain the internal energy, if the crystal damage is above 100 we heal it a bit. Not much, but should be good to let them recover.

process_atmos

The atmos code is functionally identical to /obj/machinery/atmospherics/components/unary/outlet_injector +However this is a hardened all-in-one unit that can't have its controls +tampered with like an outlet injector

put_on_a_show

Stop the delamination. Let the fireworks begin

send_warning

Tells the station (they probably already know) and starts the procedure

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/unary/hypertorus.html b/obj/machinery/atmospherics/components/unary/hypertorus.html new file mode 100644 index 0000000000000..aaa8d495bf0b1 --- /dev/null +++ b/obj/machinery/atmospherics/components/unary/hypertorus.html @@ -0,0 +1,2 @@ +/obj/machinery/atmospherics/components/unary/hypertorus - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hypertorus

This file contain the eight parts surrounding the main core, those are: fuel input, moderator input, waste output, interface and the corners +The file also contain the guicode of the machine

Vars

activeCheck if the machine has been activated
crackedCheck if the machine is cracked open
fusion_startedCheck if fusion has started
icon_state_openVars for the state of the icon of the object (open, off, active)

Var Details

active

Check if the machine has been activated

cracked

Check if the machine is cracked open

fusion_started

Check if fusion has started

icon_state_open

Vars for the state of the icon of the object (open, off, active)

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/unary/hypertorus/core.html b/obj/machinery/atmospherics/components/unary/hypertorus/core.html new file mode 100644 index 0000000000000..fd69a00313a07 --- /dev/null +++ b/obj/machinery/atmospherics/components/unary/hypertorus/core.html @@ -0,0 +1,62 @@ +/obj/machinery/atmospherics/components/unary/hypertorus/core - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

core

This section contain the hfr core with all the variables and the Initialize() and Destroy() procs

Vars

common_channelThe common channel
conductionEnergy from the reaction lost from the molecule colliding between themselves.
core_temperatureTemperature of the center of the fusion reaction
cornersStores the information of the corners of the machine
critical_threshold_proximityIntegrity of the machine, if reaches 900 the machine will explode
critical_threshold_proximity_archivedStore the integrity for calculations
current_damperUser controlled variable to control the flow of the fusion by changing the instability of the reaction
delta_temperatureDifference between the gases temperature and the internal temperature of the reaction
efficiencyEfficiency of the reaction, it increases with the amount of plasma
emergency_alertThe alert we send when we've reached emergency_point
emergency_pointThe point at which we start sending messages to the common channel
energyFusion vars +E=mc^2 with some addition to allow it gameplaywise
engineering_channelThe engineering channel
final_countdownVar used in the meltdown phase
fuel_injection_rateUser controlled variable to control the flow of the fusion by changing the amount of fuel injected
fusion_temperature_archivedThese vars store the temperatures to be used in the GUI
has_reached_emergencyBoolean used for logging if we've passed the emergency point
heat_limiter_modifierHotter air is easier to heat up and cool down
heat_outputThe amount of heat that is finally emitted, based on the power output. Min and max are variables that depends of the modifier
heat_output_maxHow much the reaction can cool itself
heat_output_minHow much the reaction can heat itself
heating_conductorUser controlled variable to control the flow of the fusion by changing the contact of the material
icon_state_openVars for the state of the icon of the object (open, off, active)
instabilityInstability effects how chaotic the behavior of the reaction is
internal_fusionStores the information of the fusion gasmix
internal_power*Power emitted from the center of the fusion reaction: Internal power = densityH2 * densityTrit(Pi * (2 * rH2 * rTrit)**2) * Energy +* density is calculated with moles/volume, rH2 and rTrit are values calculated with moles/(radius of the gas) +both of the density can be varied by the power_modifier
iron_contentStores the iron content produced by the fusion
last_accent_soundcooldown tracker for accent sounds
lastwarningTime in 1/10th of seconds since the last sent warning
linked_inputStores the information of the fuel input
linked_interfaceHypertorus internal objects and gasmixes +Stores the informations of the interface machine
linked_moderatorStores the information of the moderator input
linked_outputStores the information of the waste output
machine_partsStores the three inputs/outputs of the HFR, needed for cracking the parts
magnetic_constrictorUser controlled variable to control the flow of the fusion by changing the volume of the gasmix by controlling the power of the magnetic fields
melting_pointThe point at which we melt
moderator_filtering_rateSet the amount of moles per tick should be removed from the moderator by filtering
moderator_injection_rateUser controlled variable to control the flow of the fusion by changing the amount of moderators injected
moderator_internalStores the information of the moderators gasmix
moderator_scrubbingSet the filtering list of the waste remove
power_levelStores the current fusion mix power level
power_output*The effective power transmission of the fusion reaction, power_output = efficiency * (internal_power - conduction - radiation) +* Conduction is the heat value that is transmitted by the molecular interactions and it gets removed from the internal_power lowering the effective output +* Radiation is the irradiation released by the fusion reaction, it comprehends all wavelenghts in the spectrum, it lowers the effective output of the reaction
radiationThe remaining wavelength that actually can do damage to mobs.
radioOur internal radio
radio_keyThe key our internal radio uses
safe_alertOur "Shit is no longer fucked" message. We send it when critical_threshold_proximity is less then critical_threshold_proximity_archived
selected_fuelStores the current fuel mix that the user has selected
soundloopOur soundloop
start_coolingChecks for the cooling to start
start_fuelChecks for the fuel to be injected
start_moderatorChecks for the moderators to be injected
start_powerProcessing checks +Checks if the user has started the machine
temperature_periodTime between current and _archived temperatures
warning_alertThe alert we send when we've reached warning_point
warning_damage_flagsFlags used in the alert proc to select what messages to show when the HFR is delaminating (HYPERTORUS_FLAG_HIGH_POWER_DAMAGE | HYPERTORUS_FLAG_HIGH_FUEL_MIX_MOLE | HYPERTORUS_FLAG_IRON_CONTENT_DAMAGE | HYPERTORUS_FLAG_IRON_CONTENT_INCREASE | HYPERTORUS_FLAG_EMPED)
warning_pointThe point at which we should start sending messeges about the critical_threshold_proximity to the engi channels.
waste_removeCheck if the user want to remove the waste gases

Procs

activateCalled by multitool_act() in hfr_parts.dm +It sets the pieces to active, allowing the player to start the main reaction +Arguments:
alarmCalled by check_alert() in this file +Play a sound from the machine, the type depends on the status of the hfr
check_alertCalled by process_atmos() in hfr_main_processes.dm +Called after checking the damage of the machine, calls alarm() and countdown() +Broadcast messages into engi and common radio
check_fuelCalled by the main fusion processes in hfr_main_processes.dm +Getter for fusion fuel moles
check_gas_requirementsChecks if the gases in the input are the ones needed by the recipe
check_part_connectivityThis section contain all procs that helps building, destroy and control the hfr
check_power_useCalled by the main fusion processes in hfr_main_processes.dm +Check the power use of the machine, return TRUE if there is enough power in the powernet
countdownCalled by check_alert() in this file +Called when the damage has reached critical levels, start the countdown before the destruction, calls meltdown()
deactivateCalled by unregister_signals() in this file, called when the main fusion processes check_part_connectivity() returns false +Deactivate the various machines by setting the active var to false, updates the machines icon and set the linked machine vars to null
dump_gasesRemoves the gases from the internal gasmix when the recipe is changed
fusion_processCalled by process() +Contains the main fusion calculations and checks, for more informations check the comments along the code.
get_area_cell_percentGet how charged the area's APC is
get_integrity_percentGetter for the machine integrity
get_statusCalled by alarm() in this file +Check the integrity level and returns the status of the machine
meltdownCalled by countdown() in this file +Create the explosion + the gas emission before deleting the machine core.
moderator_common_processPerform common fusion actions:
moderator_fuel_processPerform recipe specific actions. Fuel consumption and recipe based gas production happens here.
play_ambienceInfrequently plays accent sounds, and adjusts main loop parameters
processMain Fusion processes +process() Organizes all other calls, and is the best starting point for top-level logic. +fusion_process() handles all the main fusion reaction logic and consequences (lightning, radiation, particles) from an active fusion reaction.
send_radio_explanationCalled by check_alert() in this file +Called to explain in radio what the issues are with the HFR
unregister_signalsCalled when a part gets deleted around the hfr, called on Destroy() of the hfr core in hfr_core.dm +Unregister the signals attached to the core from the various machines, if only_signals is false it will also call deactivate() +Arguments:
update_pipenetsUpdates all related pipenets from all connected components

Var Details

common_channel

The common channel

conduction

Energy from the reaction lost from the molecule colliding between themselves.

core_temperature

Temperature of the center of the fusion reaction

corners

Stores the information of the corners of the machine

critical_threshold_proximity

Integrity of the machine, if reaches 900 the machine will explode

critical_threshold_proximity_archived

Store the integrity for calculations

current_damper

User controlled variable to control the flow of the fusion by changing the instability of the reaction

delta_temperature

Difference between the gases temperature and the internal temperature of the reaction

efficiency

Efficiency of the reaction, it increases with the amount of plasma

emergency_alert

The alert we send when we've reached emergency_point

emergency_point

The point at which we start sending messages to the common channel

energy

Fusion vars +E=mc^2 with some addition to allow it gameplaywise

engineering_channel

The engineering channel

final_countdown

Var used in the meltdown phase

fuel_injection_rate

User controlled variable to control the flow of the fusion by changing the amount of fuel injected

fusion_temperature_archived

These vars store the temperatures to be used in the GUI

has_reached_emergency

Boolean used for logging if we've passed the emergency point

heat_limiter_modifier

Hotter air is easier to heat up and cool down

heat_output

The amount of heat that is finally emitted, based on the power output. Min and max are variables that depends of the modifier

heat_output_max

How much the reaction can cool itself

heat_output_min

How much the reaction can heat itself

heating_conductor

User controlled variable to control the flow of the fusion by changing the contact of the material

icon_state_open

Vars for the state of the icon of the object (open, off, active)

instability

Instability effects how chaotic the behavior of the reaction is

internal_fusion

Stores the information of the fusion gasmix

internal_power

*Power emitted from the center of the fusion reaction: Internal power = densityH2 * densityTrit(Pi * (2 * rH2 * rTrit)**2) * Energy +* density is calculated with moles/volume, rH2 and rTrit are values calculated with moles/(radius of the gas) +both of the density can be varied by the power_modifier

iron_content

Stores the iron content produced by the fusion

last_accent_sound

cooldown tracker for accent sounds

lastwarning

Time in 1/10th of seconds since the last sent warning

linked_input

Stores the information of the fuel input

linked_interface

Hypertorus internal objects and gasmixes +Stores the informations of the interface machine

linked_moderator

Stores the information of the moderator input

linked_output

Stores the information of the waste output

machine_parts

Stores the three inputs/outputs of the HFR, needed for cracking the parts

magnetic_constrictor

User controlled variable to control the flow of the fusion by changing the volume of the gasmix by controlling the power of the magnetic fields

melting_point

The point at which we melt

moderator_filtering_rate

Set the amount of moles per tick should be removed from the moderator by filtering

moderator_injection_rate

User controlled variable to control the flow of the fusion by changing the amount of moderators injected

moderator_internal

Stores the information of the moderators gasmix

moderator_scrubbing

Set the filtering list of the waste remove

power_level

Stores the current fusion mix power level

power_output

*The effective power transmission of the fusion reaction, power_output = efficiency * (internal_power - conduction - radiation) +* Conduction is the heat value that is transmitted by the molecular interactions and it gets removed from the internal_power lowering the effective output +* Radiation is the irradiation released by the fusion reaction, it comprehends all wavelenghts in the spectrum, it lowers the effective output of the reaction

radiation

The remaining wavelength that actually can do damage to mobs.

radio

Our internal radio

radio_key

The key our internal radio uses

safe_alert

Our "Shit is no longer fucked" message. We send it when critical_threshold_proximity is less then critical_threshold_proximity_archived

selected_fuel

Stores the current fuel mix that the user has selected

soundloop

Our soundloop

start_cooling

Checks for the cooling to start

start_fuel

Checks for the fuel to be injected

start_moderator

Checks for the moderators to be injected

start_power

Processing checks +Checks if the user has started the machine

temperature_period

Time between current and _archived temperatures

warning_alert

The alert we send when we've reached warning_point

warning_damage_flags

Flags used in the alert proc to select what messages to show when the HFR is delaminating (HYPERTORUS_FLAG_HIGH_POWER_DAMAGE | HYPERTORUS_FLAG_HIGH_FUEL_MIX_MOLE | HYPERTORUS_FLAG_IRON_CONTENT_DAMAGE | HYPERTORUS_FLAG_IRON_CONTENT_INCREASE | HYPERTORUS_FLAG_EMPED)

warning_point

The point at which we should start sending messeges about the critical_threshold_proximity to the engi channels.

waste_remove

Check if the user want to remove the waste gases

Proc Details

activate

Called by multitool_act() in hfr_parts.dm +It sets the pieces to active, allowing the player to start the main reaction +Arguments:

+
    +
  • -user: the player doing the action
  • +

alarm

Called by check_alert() in this file +Play a sound from the machine, the type depends on the status of the hfr

check_alert

Called by process_atmos() in hfr_main_processes.dm +Called after checking the damage of the machine, calls alarm() and countdown() +Broadcast messages into engi and common radio

check_fuel

Called by the main fusion processes in hfr_main_processes.dm +Getter for fusion fuel moles

check_gas_requirements

Checks if the gases in the input are the ones needed by the recipe

check_part_connectivity

This section contain all procs that helps building, destroy and control the hfr

+

Called by multitool_act() in hfr_parts.dm, by atmos_process() in hfr_main_processes.dm and by fusion_process() in the same file +This proc checks the surrounding of the core to ensure that the machine has been build correctly, returns false if there is a missing piece/wrong placed one

check_power_use

Called by the main fusion processes in hfr_main_processes.dm +Check the power use of the machine, return TRUE if there is enough power in the powernet

countdown

Called by check_alert() in this file +Called when the damage has reached critical levels, start the countdown before the destruction, calls meltdown()

deactivate

Called by unregister_signals() in this file, called when the main fusion processes check_part_connectivity() returns false +Deactivate the various machines by setting the active var to false, updates the machines icon and set the linked machine vars to null

dump_gases

Removes the gases from the internal gasmix when the recipe is changed

fusion_process

Called by process() +Contains the main fusion calculations and checks, for more informations check the comments along the code.

get_area_cell_percent

Get how charged the area's APC is

get_integrity_percent

Getter for the machine integrity

get_status

Called by alarm() in this file +Check the integrity level and returns the status of the machine

meltdown

Called by countdown() in this file +Create the explosion + the gas emission before deleting the machine core.

moderator_common_process

Perform common fusion actions:

+
    +
  • Gases that get produced irrespective of recipe
  • +
  • Temperature modifiers, radiation modifiers, and the application of each
  • +
  • Committing staged output, performing filtering, and making !FUN! emissions
  • +

moderator_fuel_process

Perform recipe specific actions. Fuel consumption and recipe based gas production happens here.

play_ambience

Infrequently plays accent sounds, and adjusts main loop parameters

process

Main Fusion processes +process() Organizes all other calls, and is the best starting point for top-level logic. +fusion_process() handles all the main fusion reaction logic and consequences (lightning, radiation, particles) from an active fusion reaction.

send_radio_explanation

Called by check_alert() in this file +Called to explain in radio what the issues are with the HFR

unregister_signals

Called when a part gets deleted around the hfr, called on Destroy() of the hfr core in hfr_core.dm +Unregister the signals attached to the core from the various machines, if only_signals is false it will also call deactivate() +Arguments:

+
    +
  • only_signals: default FALSE, if true the proc will not call the deactivate() proc
  • +

update_pipenets

Updates all related pipenets from all connected components

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/unary/outlet_injector.html b/obj/machinery/atmospherics/components/unary/outlet_injector.html new file mode 100644 index 0000000000000..c29dcae32b7ed --- /dev/null +++ b/obj/machinery/atmospherics/components/unary/outlet_injector.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/unary/outlet_injector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

outlet_injector

Vars

volume_rateRate of operation of the device

Var Details

volume_rate

Rate of operation of the device

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/unary/outlet_injector/monitored.html b/obj/machinery/atmospherics/components/unary/outlet_injector/monitored.html new file mode 100644 index 0000000000000..e4783ee7554bc --- /dev/null +++ b/obj/machinery/atmospherics/components/unary/outlet_injector/monitored.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

monitored

Vars

chamber_idThe air sensor type this injector is linked to

Var Details

chamber_id

The air sensor type this injector is linked to

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/unary/portables_connector.html b/obj/machinery/atmospherics/components/unary/portables_connector.html new file mode 100644 index 0000000000000..1d927a0c38723 --- /dev/null +++ b/obj/machinery/atmospherics/components/unary/portables_connector.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/unary/portables_connector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

portables_connector

Vars

connected_deviceReference to the connected device

Var Details

connected_device

Reference to the connected device

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/unary/thermomachine.html b/obj/machinery/atmospherics/components/unary/thermomachine.html new file mode 100644 index 0000000000000..11c5b3053b185 --- /dev/null +++ b/obj/machinery/atmospherics/components/unary/thermomachine.html @@ -0,0 +1,3 @@ +/obj/machinery/atmospherics/components/unary/thermomachine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

thermomachine

Procs

process_atmosPerforms heat calculation for the freezer. +We just equalize the gasmix with an object at temp = var/target_temperature and heat cap = var/heat_capacity

Proc Details

process_atmos

Performs heat calculation for the freezer. +We just equalize the gasmix with an object at temp = var/target_temperature and heat cap = var/heat_capacity

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/unary/thermomachine/deployable.html b/obj/machinery/atmospherics/components/unary/thermomachine/deployable.html new file mode 100644 index 0000000000000..85d84582530c6 --- /dev/null +++ b/obj/machinery/atmospherics/components/unary/thermomachine/deployable.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/unary/thermomachine/deployable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

deployable

Vars

repacked_typeThe item we turn into when repacked
soundloopSoundloop for while the thermomachine is turned on

Var Details

repacked_type

The item we turn into when repacked

soundloop

Soundloop for while the thermomachine is turned on

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/unary/vent_pump.html b/obj/machinery/atmospherics/components/unary/vent_pump.html new file mode 100644 index 0000000000000..f816cc9916191 --- /dev/null +++ b/obj/machinery/atmospherics/components/unary/vent_pump.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/components/unary/vent_pump - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vent_pump

Vars

assigned_areaarea this vent is assigned to
chamber_idid of air sensor its connected to
examine_conditionThe cached string we show for examine that lets you know how fucked up the fan is.
external_pressure_boundThe external pressure threshold (default 101 kPa)
fan_damage_rateRate of damage per atmos process to the fan when overclocked. Set to 0 to disable damage.
fan_overclockedIs this vent currently overclocked, removing pressure limits but damaging the fan?
internal_pressure_boundThe internal pressure threshold (default 0 kPa)
pressure_checksShould we check internal pressure, external pressure, both or none? (ATMOS_EXTERNAL_BOUND, ATMOS_INTERNAL_BOUND, NO_BOUND)
pump_directionDirection of pumping the gas (ATMOS_DIRECTION_RELEASING or ATMOS_DIRECTION_SIPHONING)
sound_loopDatum for managing the overclock sound loop

Var Details

assigned_area

area this vent is assigned to

chamber_id

id of air sensor its connected to

examine_condition

The cached string we show for examine that lets you know how fucked up the fan is.

external_pressure_bound

The external pressure threshold (default 101 kPa)

fan_damage_rate

Rate of damage per atmos process to the fan when overclocked. Set to 0 to disable damage.

fan_overclocked

Is this vent currently overclocked, removing pressure limits but damaging the fan?

internal_pressure_bound

The internal pressure threshold (default 0 kPa)

pressure_checks

Should we check internal pressure, external pressure, both or none? (ATMOS_EXTERNAL_BOUND, ATMOS_INTERNAL_BOUND, NO_BOUND)

pump_direction

Direction of pumping the gas (ATMOS_DIRECTION_RELEASING or ATMOS_DIRECTION_SIPHONING)

sound_loop

Datum for managing the overclock sound loop

\ No newline at end of file diff --git a/obj/machinery/atmospherics/components/unary/vent_scrubber.html b/obj/machinery/atmospherics/components/unary/vent_scrubber.html new file mode 100644 index 0000000000000..f5b6d48512e86 --- /dev/null +++ b/obj/machinery/atmospherics/components/unary/vent_scrubber.html @@ -0,0 +1,3 @@ +/obj/machinery/atmospherics/components/unary/vent_scrubber - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

vent_scrubber

Vars

adjacent_turfsList of the turfs near the scrubber, used for widenet
assigned_areaThe area this scrubber is assigned to
filter_typesThe list of gases we are filtering
scrubbingThe mode of the scrubber (ATMOS_DIRECTION_SCRUBBING or ATMOS_DIRECTION_SIPHONING)
volume_rateRate of the scrubber to remove gases from the air
widenetis this scrubber acting on the 3x3 area around it.

Procs

check_turfswe populate a list of turfs with nonatmos-blocked cardinal turfs AND +diagonal turfs that can share atmos with both of the cardinal turfs
remove_filtersremove a gas or list of gases from our filter_types.used so that the scrubber can check if its supposed to be processing after each change

Var Details

adjacent_turfs

List of the turfs near the scrubber, used for widenet

assigned_area

The area this scrubber is assigned to

filter_types

The list of gases we are filtering

scrubbing

The mode of the scrubber (ATMOS_DIRECTION_SCRUBBING or ATMOS_DIRECTION_SIPHONING)

volume_rate

Rate of the scrubber to remove gases from the air

widenet

is this scrubber acting on the 3x3 area around it.

Proc Details

check_turfs

we populate a list of turfs with nonatmos-blocked cardinal turfs AND +diagonal turfs that can share atmos with both of the cardinal turfs

remove_filters

remove a gas or list of gases from our filter_types.used so that the scrubber can check if its supposed to be processing after each change

\ No newline at end of file diff --git a/obj/machinery/atmospherics/miner.html b/obj/machinery/atmospherics/miner.html new file mode 100644 index 0000000000000..7162eee21e263 --- /dev/null +++ b/obj/machinery/atmospherics/miner.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/miner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

miner

Vars

spawn_molMoles of gas to spawn per second

Var Details

spawn_mol

Moles of gas to spawn per second

\ No newline at end of file diff --git a/obj/machinery/atmospherics/pipe.html b/obj/machinery/atmospherics/pipe.html new file mode 100644 index 0000000000000..bc48c789de371 --- /dev/null +++ b/obj/machinery/atmospherics/pipe.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/pipe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pipe

Vars

air_temporaryTemporary holder for gases in the absence of a pipeline
parentThe pipeline this pipe is a member of
volumeThe gas capacity this pipe contributes to a pipeline

Var Details

air_temporary

Temporary holder for gases in the absence of a pipeline

parent

The pipeline this pipe is a member of

volume

The gas capacity this pipe contributes to a pipeline

\ No newline at end of file diff --git a/obj/machinery/atmospherics/pipe/color_adapter.html b/obj/machinery/atmospherics/pipe/color_adapter.html new file mode 100644 index 0000000000000..5f10fa884a9f6 --- /dev/null +++ b/obj/machinery/atmospherics/pipe/color_adapter.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/pipe/color_adapter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

color_adapter

Vars

center_cachecache for the icons

Var Details

center_cache

cache for the icons

\ No newline at end of file diff --git a/obj/machinery/atmospherics/pipe/layer_manifold.html b/obj/machinery/atmospherics/pipe/layer_manifold.html new file mode 100644 index 0000000000000..0942460ccc6db --- /dev/null +++ b/obj/machinery/atmospherics/pipe/layer_manifold.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/pipe/layer_manifold - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

layer_manifold

Vars

back_nodesReference to all the nodes in the back
front_nodesReference to all the nodes in the front

Var Details

back_nodes

Reference to all the nodes in the back

front_nodes

Reference to all the nodes in the front

\ No newline at end of file diff --git a/obj/machinery/atmospherics/pipe/multiz.html b/obj/machinery/atmospherics/pipe/multiz.html new file mode 100644 index 0000000000000..3e574d89d05ef --- /dev/null +++ b/obj/machinery/atmospherics/pipe/multiz.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/pipe/multiz - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

multiz

This is an atmospherics pipe which can relay air up/down a deck.

Vars

centerOur central icon
front_nodeReference to the node
pipeThe pipe icon

Procs

pipeline_expansionAttempts to locate a multiz pipe that's above us, if it finds one it merges us into its pipenet

Var Details

center

Our central icon

front_node

Reference to the node

pipe

The pipe icon

Proc Details

pipeline_expansion

Attempts to locate a multiz pipe that's above us, if it finds one it merges us into its pipenet

\ No newline at end of file diff --git a/obj/machinery/atmospherics/pipe/smart.html b/obj/machinery/atmospherics/pipe/smart.html new file mode 100644 index 0000000000000..caae54013be20 --- /dev/null +++ b/obj/machinery/atmospherics/pipe/smart.html @@ -0,0 +1 @@ +/obj/machinery/atmospherics/pipe/smart - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

smart

Vars

connectionsCurrent active connections

Var Details

connections

Current active connections

\ No newline at end of file diff --git a/obj/machinery/autolathe.html b/obj/machinery/autolathe.html new file mode 100644 index 0000000000000..4921ad293135c --- /dev/null +++ b/obj/machinery/autolathe.html @@ -0,0 +1,33 @@ +/obj/machinery/autolathe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

autolathe

Vars

active_power_usageEnergy cost per full stack of sheets worth of materials used. Material insertion is 40% of this.
busyAre we currently printing something
creation_efficiencyCoefficient applied to consumed materials. Lower values result in lower material consumption.
disabledIs the autolathe disabled via wiring
drop_directiondirection we output onto (if 0, on top of us)
hackedIs the autolathe hacked via wiring
imported_designsDesigns imported from technology disks that we can print.
materialsThe container to hold materials
shockedDid we recently shock a mob who medled with the wiring
stored_researchDesigns related to the autolathe

Procs

adjust_hackedIs the autolathe hacked. Allowing us to acess hidden designs +Arguments
do_make_itemCallback for start_making, actually makes the item +Arguments
finalize_buildResets the icon state and busy flag +Called at the end of do_make_item's timer loop
handle_designsConverts all the designs supported by this autolathe into UI data +Arguments
resetCut a wire in the autolathe +Arguments
shockShock a mob who is trying to interact with the autolathe +Arguments

Var Details

active_power_usage

Energy cost per full stack of sheets worth of materials used. Material insertion is 40% of this.

busy

Are we currently printing something

creation_efficiency

Coefficient applied to consumed materials. Lower values result in lower material consumption.

disabled

Is the autolathe disabled via wiring

drop_direction

direction we output onto (if 0, on top of us)

hacked

Is the autolathe hacked via wiring

imported_designs

Designs imported from technology disks that we can print.

materials

The container to hold materials

shocked

Did we recently shock a mob who medled with the wiring

stored_research

Designs related to the autolathe

Proc Details

adjust_hacked

Is the autolathe hacked. Allowing us to acess hidden designs +Arguments

+

state - TRUE/FALSE for is the autolathe hacked

do_make_item

Callback for start_making, actually makes the item +Arguments

+
    +
  • datum/design/design - the design we are trying to print
  • +
  • items_remaining - the number of designs left out to print
  • +
  • build_time_per_item - the time taken to print 1 item
  • +
  • material_cost_coefficient - the cost efficiency to print 1 design
  • +
  • charge_per_item - the amount of power to print 1 item
  • +
  • list/materials_needed - the list of materials to print 1 item
  • +
  • turf/target - the location to drop the printed item on
  • +

finalize_build

Resets the icon state and busy flag +Called at the end of do_make_item's timer loop

handle_designs

Converts all the designs supported by this autolathe into UI data +Arguments

+
    +
  • list/designs - the list of techweb designs we are trying to send to the UI
  • +

reset

Cut a wire in the autolathe +Arguments

+
    +
  • wire - the wire we are trying to cut
  • +

shock

Shock a mob who is trying to interact with the autolathe +Arguments

+
    +
  • mob/user - the mob we are trying to shock
  • +
  • prb - the probability of getting shocked
  • +
\ No newline at end of file diff --git a/obj/machinery/automatic_respawner.html b/obj/machinery/automatic_respawner.html new file mode 100644 index 0000000000000..0f7d876b7aa73 --- /dev/null +++ b/obj/machinery/automatic_respawner.html @@ -0,0 +1 @@ +/obj/machinery/automatic_respawner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

automatic_respawner

Vars

cooldown_timeDoes our respawner have a cooldown before it can be used again, and if so, how long does it last?
target_componentWhat is the type of component are we looking for on our ghost before they can respawn? If this is set to FALSE, a component won't be required, please be careful with this.
target_outfitWhat is the type of the outfit datum that we want applied to the new body?
text_to_showWhat text is shown to the mob that respawned? FALSE will disable anything from being sent.

Var Details

cooldown_time

Does our respawner have a cooldown before it can be used again, and if so, how long does it last?

target_component

What is the type of component are we looking for on our ghost before they can respawn? If this is set to FALSE, a component won't be required, please be careful with this.

target_outfit

What is the type of the outfit datum that we want applied to the new body?

text_to_show

What text is shown to the mob that respawned? FALSE will disable anything from being sent.

\ No newline at end of file diff --git a/obj/machinery/barsign.html b/obj/machinery/barsign.html new file mode 100644 index 0000000000000..11deefa9bcbd4 --- /dev/null +++ b/obj/machinery/barsign.html @@ -0,0 +1 @@ +/obj/machinery/barsign - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

barsign

Vars

change_area_nameDo we attempt to rename the area we occupy when the chosen sign is changed?
chosen_signSelected barsign being used
disassemble_resultWhat kind of sign do we drop upon being disassembled?

Procs

finish_emag_actTimer proc, called after ~10 seconds after [emag_act], since [emag_act] returns a value and cannot sleep
fix_empCallback to un-emp the sign some time.

Var Details

change_area_name

Do we attempt to rename the area we occupy when the chosen sign is changed?

chosen_sign

Selected barsign being used

disassemble_result

What kind of sign do we drop upon being disassembled?

Proc Details

finish_emag_act

Timer proc, called after ~10 seconds after [emag_act], since [emag_act] returns a value and cannot sleep

fix_emp

Callback to un-emp the sign some time.

\ No newline at end of file diff --git a/obj/machinery/base_alarm.html b/obj/machinery/base_alarm.html new file mode 100644 index 0000000000000..aea0d7f3eff6f --- /dev/null +++ b/obj/machinery/base_alarm.html @@ -0,0 +1 @@ +/obj/machinery/base_alarm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

base_alarm

Vars

alarm_cooldownCooldown between each sound
alarm_playingIs the alarm currently playing? WAIT WHY IS THIS NOT A LOOPING SOUND
alarm_sound_filePath to the alarm sound
alarmsCurrently connected alarms.
myareaThe area that we use to trigger other alarms.
triggeredAre we triggered?

Var Details

alarm_cooldown

Cooldown between each sound

alarm_playing

Is the alarm currently playing? WAIT WHY IS THIS NOT A LOOPING SOUND

alarm_sound_file

Path to the alarm sound

alarms

Currently connected alarms.

myarea

The area that we use to trigger other alarms.

triggered

Are we triggered?

\ No newline at end of file diff --git a/obj/machinery/big_manipulator.html b/obj/machinery/big_manipulator.html new file mode 100644 index 0000000000000..524eed37a7b4e --- /dev/null +++ b/obj/machinery/big_manipulator.html @@ -0,0 +1,11 @@ +/obj/machinery/big_manipulator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

big_manipulator

Manipulator Core. Main part of the mechanism that carries out the entire process.

Vars

containment_objObj inside manipulator.
drop_hereDir to get turf where we drop items.
drop_turfTurf where we drop items.
manipulator_handOther manipulator component.
onActivate mechanism.
on_workWhen manipulator already working with item inside he don't take any new items.
power_use_lvlUsing high tier manipulators speeds up big manipulator and requires more energy.
take_hereDir to get turf where we take items.
take_turfTurf where we take items.
working_speedHow many time manipulator need to take and drop item.

Procs

create_manipulator_handCreat manipulator hand effect on manipulator core.
do_rotate_animationRotates manipulator hand 90 degrees.
drop_thingThird take and drop proc from [take and drop procs loop]: +Drop our item and start manipulator hand backward animation.
end_workFourth and last take and drop proc from [take and drop procs loop]: +Finishes work and begins to look for a new item for [take and drop procs loop].
finish_rotate_animationRotates manipulator hand from 90 degrees to 180 or 0 if backward.
is_work_checkPre take and drop proc from [take and drop procs loop]: +Check if we can start take and drop loop
manipulator_lvlCheck servo tier and change manipulator speed, power_use and colour.
on_hand_qdelDeliting hand will destroy our manipulator core.
press_onProc call when we press on/off button
rotate_big_handChanging take and drop turf dirs and also changing manipulator hand sprite dir.
start_workSecond take and drop proc from [take and drop procs loop]: +Taking our item and start manipulator hand rotate animation.
take_and_drop_turfs_checkChanging take and drop turf tiles when we anchore manipulator or if manipulator not in turf.
try_take_thingFirst take and drop proc from [take and drop procs loop]: +Check if we can take item from take_turf to work with him. This proc also calling from ATOM_ENTERED signal.

Var Details

containment_obj

Obj inside manipulator.

drop_here

Dir to get turf where we drop items.

drop_turf

Turf where we drop items.

manipulator_hand

Other manipulator component.

on

Activate mechanism.

on_work

When manipulator already working with item inside he don't take any new items.

power_use_lvl

Using high tier manipulators speeds up big manipulator and requires more energy.

take_here

Dir to get turf where we take items.

take_turf

Turf where we take items.

working_speed

How many time manipulator need to take and drop item.

Proc Details

create_manipulator_hand

Creat manipulator hand effect on manipulator core.

do_rotate_animation

Rotates manipulator hand 90 degrees.

drop_thing

Third take and drop proc from [take and drop procs loop]: +Drop our item and start manipulator hand backward animation.

end_work

Fourth and last take and drop proc from [take and drop procs loop]: +Finishes work and begins to look for a new item for [take and drop procs loop].

finish_rotate_animation

Rotates manipulator hand from 90 degrees to 180 or 0 if backward.

is_work_check

Pre take and drop proc from [take and drop procs loop]: +Check if we can start take and drop loop

manipulator_lvl

Check servo tier and change manipulator speed, power_use and colour.

on_hand_qdel

Deliting hand will destroy our manipulator core.

press_on

Proc call when we press on/off button

rotate_big_hand

Changing take and drop turf dirs and also changing manipulator hand sprite dir.

start_work

Second take and drop proc from [take and drop procs loop]: +Taking our item and start manipulator hand rotate animation.

take_and_drop_turfs_check

Changing take and drop turf tiles when we anchore manipulator or if manipulator not in turf.

try_take_thing

First take and drop proc from [take and drop procs loop]: +Check if we can take item from take_turf to work with him. This proc also calling from ATOM_ENTERED signal.

\ No newline at end of file diff --git a/obj/machinery/biogenerator.html b/obj/machinery/biogenerator.html new file mode 100644 index 0000000000000..78e0f78d3450c --- /dev/null +++ b/obj/machinery/biogenerator.html @@ -0,0 +1,13 @@ +/obj/machinery/biogenerator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

biogenerator

Vars

beakerThe reagent container that is currently inside of the biomass generator. Can be null.
biomassThe amount of biomass that's currently stored in the biogenerator.
current_item_countThe current amount of items that can be converted into biomass that the biogenerator is holding.
efficiencyThe amount by which the biomass consumption will be divided.
max_itemsThe maximum amount of items the biogenerator can hold for biomass conversion purposes.
max_outputThe maximum amount of reagents that the biogenerator can output to a container at once.
max_visual_biomassThe maximum amount of biomass that will affect the visuals of the biogenerator.
processed_items_per_cycleThe amount of items that will be converted into biomass per processing cycle.
processingWhether the biogenerator is currently processing biomass or not.
productivityThe conversion factor for nutrient to biomass, and the amount of additional items that will be processed at once per cycle.
selected_catThe category that's currently selected in the UI.
show_categoriesThe different visual categories for the biogenerator, for the tabs.
soundloopThe sound loop that can be heard when the generator is processing.
stored_researchThe research that is stored within this biogenerator.
welded_downWhether the biogen is welded down to the floor disabling unwrenching

Procs

convert_to_biomassSimple helper proc that converts the given food item into biomass for the generator, +while also handling removing it and modifying the current_item_count.
start_processActivates biomass processing and converts all inserted food products into biomass
stop_processSimple helper to handle stopping the process of the biogenerator.

Var Details

beaker

The reagent container that is currently inside of the biomass generator. Can be null.

biomass

The amount of biomass that's currently stored in the biogenerator.

current_item_count

The current amount of items that can be converted into biomass that the biogenerator is holding.

efficiency

The amount by which the biomass consumption will be divided.

max_items

The maximum amount of items the biogenerator can hold for biomass conversion purposes.

max_output

The maximum amount of reagents that the biogenerator can output to a container at once.

max_visual_biomass

The maximum amount of biomass that will affect the visuals of the biogenerator.

processed_items_per_cycle

The amount of items that will be converted into biomass per processing cycle.

processing

Whether the biogenerator is currently processing biomass or not.

productivity

The conversion factor for nutrient to biomass, and the amount of additional items that will be processed at once per cycle.

selected_cat

The category that's currently selected in the UI.

show_categories

The different visual categories for the biogenerator, for the tabs.

soundloop

The sound loop that can be heard when the generator is processing.

stored_research

The research that is stored within this biogenerator.

welded_down

Whether the biogen is welded down to the floor disabling unwrenching

Proc Details

convert_to_biomass

Simple helper proc that converts the given food item into biomass for the generator, +while also handling removing it and modifying the current_item_count.

+

Arguments:

+
    +
  • food_to_convert - The food item that will be converted into biomass and +subsequently be deleted.
  • +

start_process

Activates biomass processing and converts all inserted food products into biomass

stop_process

Simple helper to handle stopping the process of the biogenerator.

+

Arguments:

+
    +
  • update_appearance - Whether or not we call update_appearance() here. +Defaults to TRUE.
  • +
\ No newline at end of file diff --git a/obj/machinery/biogenerator/foodricator.html b/obj/machinery/biogenerator/foodricator.html new file mode 100644 index 0000000000000..86af4ee8707bb --- /dev/null +++ b/obj/machinery/biogenerator/foodricator.html @@ -0,0 +1 @@ +/obj/machinery/biogenerator/foodricator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

foodricator

Vars

repacked_typeWhat this repacks into

Var Details

repacked_type

What this repacks into

\ No newline at end of file diff --git a/obj/machinery/biogenerator/medstation.html b/obj/machinery/biogenerator/medstation.html new file mode 100644 index 0000000000000..da3fd7c0e6acc --- /dev/null +++ b/obj/machinery/biogenerator/medstation.html @@ -0,0 +1 @@ +/obj/machinery/biogenerator/medstation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

medstation

Vars

repacked_typeThe item we turn into when repacked

Var Details

repacked_type

The item we turn into when repacked

\ No newline at end of file diff --git a/obj/machinery/blackbox_recorder.html b/obj/machinery/blackbox_recorder.html new file mode 100644 index 0000000000000..7e47f4a80f34f --- /dev/null +++ b/obj/machinery/blackbox_recorder.html @@ -0,0 +1,3 @@ +/obj/machinery/blackbox_recorder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blackbox_recorder

Vars

storedThe object that's stored in the machine, which is to say, the blackbox itself. +When it hasn't already been stolen, of course.

Var Details

stored

The object that's stored in the machine, which is to say, the blackbox itself. +When it hasn't already been stolen, of course.

\ No newline at end of file diff --git a/obj/machinery/bluespace_miner.html b/obj/machinery/bluespace_miner.html new file mode 100644 index 0000000000000..c1f17dfbf2d80 --- /dev/null +++ b/obj/machinery/bluespace_miner.html @@ -0,0 +1,3 @@ +/obj/machinery/bluespace_miner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bluespace_miner

Vars

gas_tempthe temperature of the co2 produced per successful process (its really 100) KELVIN
mining_statthe current status of the enviroment. Any nonzero value means we can't work
ore_chancethe chance each ore has to be picked, weighted list
probability_modwhat the bs miner will have a triple chance to produce, if any
processing_speedthe amount of seconds process_speed goes on cooldown for

Procs

change_probabilityAllows players to triple the chance of the ore of their choice whilst losing the other ores +Must be able to actually produce stuff before you can change the probabilities

Var Details

gas_temp

the temperature of the co2 produced per successful process (its really 100) KELVIN

mining_stat

the current status of the enviroment. Any nonzero value means we can't work

ore_chance

the chance each ore has to be picked, weighted list

probability_mod

what the bs miner will have a triple chance to produce, if any

processing_speed

the amount of seconds process_speed goes on cooldown for

Proc Details

change_probability

Allows players to triple the chance of the ore of their choice whilst losing the other ores +Must be able to actually produce stuff before you can change the probabilities

\ No newline at end of file diff --git a/obj/machinery/bluespace_vendor.html b/obj/machinery/bluespace_vendor.html new file mode 100644 index 0000000000000..3f051a2a87c0c --- /dev/null +++ b/obj/machinery/bluespace_vendor.html @@ -0,0 +1 @@ +/obj/machinery/bluespace_vendor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bluespace_vendor

Vars

connected_machineThe bluespace sender that this vendor is connected to
empty_tanksAmount of usable tanks inside the machine
gas_priceStores the current price of the gases inside the tank
inserted_tankHas the user prepared a tank to be filled with gases?
internal_tankReference to the current in use tank to be filled
map_spawnedHelper for mappers, will automatically connect to the sender (ensure to only place one sender per map)
modeCurrent operating mode of the vendor
pumpingIs the vendor trying to move gases from the network to the tanks?
selected_gasPath of the gas selected from the UI to be pumped inside the tanks
tank_costBase price of the tank
tank_filling_amountAmount of the tank already filled with gas (from 0 to 100)

Procs

check_modeCheck what is the current operating mode
check_priceCheck the price of the current tank, if the user doesn't have the money the gas will be merged back into the network
register_machineRegister the sender as the connected_machine
unregister_machineUnregister the connected_machine (either when qdel this or the sender)

Var Details

connected_machine

The bluespace sender that this vendor is connected to

empty_tanks

Amount of usable tanks inside the machine

gas_price

Stores the current price of the gases inside the tank

inserted_tank

Has the user prepared a tank to be filled with gases?

internal_tank

Reference to the current in use tank to be filled

map_spawned

Helper for mappers, will automatically connect to the sender (ensure to only place one sender per map)

mode

Current operating mode of the vendor

pumping

Is the vendor trying to move gases from the network to the tanks?

selected_gas

Path of the gas selected from the UI to be pumped inside the tanks

tank_cost

Base price of the tank

tank_filling_amount

Amount of the tank already filled with gas (from 0 to 100)

Proc Details

check_mode

Check what is the current operating mode

check_price

Check the price of the current tank, if the user doesn't have the money the gas will be merged back into the network

register_machine

Register the sender as the connected_machine

unregister_machine

Unregister the connected_machine (either when qdel this or the sender)

\ No newline at end of file diff --git a/obj/machinery/bookbinder.html b/obj/machinery/bookbinder.html new file mode 100644 index 0000000000000..5fb5ca593aa8e --- /dev/null +++ b/obj/machinery/bookbinder.html @@ -0,0 +1 @@ +/obj/machinery/bookbinder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bookbinder

Vars

busyAre we currently binding a book?
scanned_nameName of the author for the book, set by scanning your ID.

Var Details

busy

Are we currently binding a book?

scanned_name

Name of the author for the book, set by scanning your ID.

\ No newline at end of file diff --git a/obj/machinery/bouldertech.html b/obj/machinery/bouldertech.html new file mode 100644 index 0000000000000..dda7a2ab42874 --- /dev/null +++ b/obj/machinery/bouldertech.html @@ -0,0 +1,42 @@ +/obj/machinery/bouldertech - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bouldertech

Vars

accept_cooldownCooldown associated with taking in boulds.
actionThe action verb to display to players
boulders_held_maxHow many boulders can we hold maximum?
boulders_processing_countHow much durability of an boulder can we reduce
points_heldMining points held by the machine for miners.
refining_efficiencyWhat is the efficiency of minerals produced by the machine?
silo_materialsSilo link to its materials list.
sound_cooldownCooldown associated with the sound played for collecting mining points.
usage_soundWhat sound plays when a thing operates?

Procs

accept_boulderAccepts a boulder into the machine. Used when a boulder is first placed into the machine. +Arguments
accept_golemAccepts a golem to be processed, mainly for memes +Arguments
breakdown_boulderAccepts a boulder into the machinery, then converts it into minerals. +If the boulder can be fully processed by this machine, we take the materials, insert it into the silo, and destroy the boulder. +If the boulder has materials left, we make a copy of the boulder to hold the processable materials, take the processable parts, and eject the original boulder. +Arguments
can_process_boulderCan we process the boulder, checks only the boulders state & machines capacity +Arguments
can_process_golemCan we maim this golem +Arguments
can_process_materialChecks if this machine can process this material +Arguments
check_for_boostsLooks for a boost to the machine's efficiency, and applies it if found. +Applied more on the chemistry integration but can be used for other things if desired.
maim_golemWhat effects actually happens to a golem when it is "processed"
remove_boulderEjects a boulder from the machine. Used when a boulder is finished processing, or when a boulder can't be processed. +Arguments

Var Details

accept_cooldown

Cooldown associated with taking in boulds.

action

The action verb to display to players

boulders_held_max

How many boulders can we hold maximum?

boulders_processing_count

How much durability of an boulder can we reduce

points_held

Mining points held by the machine for miners.

refining_efficiency

What is the efficiency of minerals produced by the machine?

silo_materials

Silo link to its materials list.

sound_cooldown

Cooldown associated with the sound played for collecting mining points.

usage_sound

What sound plays when a thing operates?

Proc Details

accept_boulder

Accepts a boulder into the machine. Used when a boulder is first placed into the machine. +Arguments

+
    +
  • obj/item/boulder/new_boulder - the boulder to accept
  • +

accept_golem

Accepts a golem to be processed, mainly for memes +Arguments

+
    +
  • rockman - the golem we are trying to main
  • +

breakdown_boulder

Accepts a boulder into the machinery, then converts it into minerals. +If the boulder can be fully processed by this machine, we take the materials, insert it into the silo, and destroy the boulder. +If the boulder has materials left, we make a copy of the boulder to hold the processable materials, take the processable parts, and eject the original boulder. +Arguments

+
    +
  • obj/item/boulder/chosen_boulder - The boulder to being breaking down into minerals.
  • +

can_process_boulder

Can we process the boulder, checks only the boulders state & machines capacity +Arguments

+
    +
  • obj/item/boulder/new_boulder - the boulder we are checking
  • +

can_process_golem

Can we maim this golem +Arguments

+
    +
  • rockman - the golem we are trying to main
  • +

can_process_material

Checks if this machine can process this material +Arguments

+
    +
  • datum/material/mat - the material to process
  • +

check_for_boosts

Looks for a boost to the machine's efficiency, and applies it if found. +Applied more on the chemistry integration but can be used for other things if desired.

maim_golem

What effects actually happens to a golem when it is "processed"

remove_boulder

Ejects a boulder from the machine. Used when a boulder is finished processing, or when a boulder can't be processed. +Arguments

+
    +
  • obj/item/boulder/specific_boulder - the boulder to remove
  • +
\ No newline at end of file diff --git a/obj/machinery/brm.html b/obj/machinery/brm.html new file mode 100644 index 0000000000000..25f05632067dc --- /dev/null +++ b/obj/machinery/brm.html @@ -0,0 +1,25 @@ +/obj/machinery/brm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

brm

Vars

batch_processingHave we finished processing a full batch of boulders
batch_start_cooldownCooldown used for automatic teleportation after processing boulders_processing_max number of boulders.
boulders_processing_maxHow many boulders can we process maximum per loop?
manual_teleport_cooldownCooldown used for left click teleportation.
toggled_onAre we trying to actively collect boulders automatically?

Procs

CanAllowThroughTo allow boulders on a conveyor belt to move unobstructed if multiple machines are made on a single line
handle_teleport_conditionsHandles qualifiers for enabling teleportation of boulders. +Returns TRUE if the teleportation can proceed, FALSE otherwise. +Arguments
pre_collect_boulderBegins to collect a boulder from the available boulders list in SSore_generation. +Boulders must be in the available boulders list. +A selected boulder is picked randomly. +Arguments
toggle_auto_onToggles automatic boulder retrieval on. +Adjusts the teleportation sound, icon state, and begins processing. +Arguments

Var Details

batch_processing

Have we finished processing a full batch of boulders

batch_start_cooldown

Cooldown used for automatic teleportation after processing boulders_processing_max number of boulders.

boulders_processing_max

How many boulders can we process maximum per loop?

manual_teleport_cooldown

Cooldown used for left click teleportation.

toggled_on

Are we trying to actively collect boulders automatically?

Proc Details

CanAllowThrough

To allow boulders on a conveyor belt to move unobstructed if multiple machines are made on a single line

handle_teleport_conditions

Handles qualifiers for enabling teleportation of boulders. +Returns TRUE if the teleportation can proceed, FALSE otherwise. +Arguments

+
    +
  • mob/user - the mob to inform if conditions aren't met
  • +

pre_collect_boulder

Begins to collect a boulder from the available boulders list in SSore_generation. +Boulders must be in the available boulders list. +A selected boulder is picked randomly. +Arguments

+
    +
  • feedback - should we play sound and display allert if now boulders are available
  • +
  • boulders_remaining - how many boulders we want to try & collect spawning a boulder every TELEPORTATION_TIME seconds
  • +

toggle_auto_on

Toggles automatic boulder retrieval on. +Adjusts the teleportation sound, icon state, and begins processing. +Arguments

+
    +
  • mob/user - the player who has toggled us
  • +
\ No newline at end of file diff --git a/obj/machinery/bsa.html b/obj/machinery/bsa.html new file mode 100644 index 0000000000000..42ec17db6f17f --- /dev/null +++ b/obj/machinery/bsa.html @@ -0,0 +1,2 @@ +/obj/machinery/bsa - /tg/ Station 13
/tg/ Station 13 - Modules - Types

bsa

BSA parts

+

The parts are only used to build the full machine and are discarded after completion.

\ No newline at end of file diff --git a/obj/machinery/bsa/full.html b/obj/machinery/bsa/full.html new file mode 100644 index 0000000000000..707e9bd2a4f42 --- /dev/null +++ b/obj/machinery/bsa/full.html @@ -0,0 +1,4 @@ +/obj/machinery/bsa/full - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

full

The full BSA cannon

+

This operates by charging a "capacitor" bank which is then discharged in the beam. +The capacitor bank is charged during the power up phase, it essentially drains the connected powernet until it reaches it's target power, and then fires.

Vars

capacitor_powerThe total collected power, this is calculated in the "power up" phase of the superweapon.
control_computerOur connected control computer
max_chargeHow much charge our capacitors can hold
power_suck_capThe cap on how much power we can suck from the powernet per cycle
system_stateThe current system state
target_powerThe set target power
top_layerA reference to our topmost mutable layer

Procs

charge_capacitorsCollect charge
fireInitiates the fire sequence of the gun providing it has the required power.
get_available_powercapGets the currently available power cap
reloadReloads the BSA.

Var Details

capacitor_power

The total collected power, this is calculated in the "power up" phase of the superweapon.

control_computer

Our connected control computer

max_charge

How much charge our capacitors can hold

power_suck_cap

The cap on how much power we can suck from the powernet per cycle

system_state

The current system state

target_power

The set target power

top_layer

A reference to our topmost mutable layer

Proc Details

charge_capacitors

Collect charge

+

Cycles the powernet and sucks power from it and shoves it into the capacitors.

fire

Initiates the fire sequence of the gun providing it has the required power.

get_available_powercap

Gets the currently available power cap

reload

Reloads the BSA.

\ No newline at end of file diff --git a/obj/machinery/bsa/middle.html b/obj/machinery/bsa/middle.html new file mode 100644 index 0000000000000..460b48d3d2ab2 --- /dev/null +++ b/obj/machinery/bsa/middle.html @@ -0,0 +1 @@ +/obj/machinery/bsa/middle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

middle

Vars

back_pieceOur linked back piece
front_pieceOur linked front piece

Var Details

back_piece

Our linked back piece

front_piece

Our linked front piece

\ No newline at end of file diff --git a/obj/machinery/button.html b/obj/machinery/button.html new file mode 100644 index 0000000000000..787c1964cf372 --- /dev/null +++ b/obj/machinery/button.html @@ -0,0 +1 @@ +/obj/machinery/button - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

button

Vars

can_alter_skinWhether it is possible to change the panel skin
skinIcon suffix for the skin of the front pannel that is added to base_icon_state

Procs

InitializeINITIALIZATION
examineINFORMATION
item_interactionINTERACTION
on_deconstructionDECONSTRUCTION
update_icon_stateAPPEARANCE

Var Details

can_alter_skin

Whether it is possible to change the panel skin

skin

Icon suffix for the skin of the front pannel that is added to base_icon_state

Proc Details

Initialize

INITIALIZATION

examine

INFORMATION

item_interaction

INTERACTION

on_deconstruction

DECONSTRUCTION

update_icon_state

APPEARANCE

\ No newline at end of file diff --git a/obj/machinery/button/delam_scram.html b/obj/machinery/button/delam_scram.html new file mode 100644 index 0000000000000..6223a0ca4883f --- /dev/null +++ b/obj/machinery/button/delam_scram.html @@ -0,0 +1 @@ +/obj/machinery/button/delam_scram - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

delam_scram

A big red button you can smash to stop the supermatter engine, oh how tempting!

Vars

button_stageone use only!
radioour internal radio
radio_keyradio key

Procs

attack_handProc for arming the red button, it hasn't been pushed yet
burn_outWhen the button is pushed but it's too late to save you!
confirm_actionConfirms with the user that they really want to push the red button. Do it, you won't!

Var Details

button_stage

one use only!

radio

our internal radio

radio_key

radio key

Proc Details

attack_hand

Proc for arming the red button, it hasn't been pushed yet

burn_out

When the button is pushed but it's too late to save you!

confirm_action

Confirms with the user that they really want to push the red button. Do it, you won't!

\ No newline at end of file diff --git a/obj/machinery/button/transport/tram.html b/obj/machinery/button/transport/tram.html new file mode 100644 index 0000000000000..c44d6c907ea89 --- /dev/null +++ b/obj/machinery/button/transport/tram.html @@ -0,0 +1 @@ +/obj/machinery/button/transport/tram - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tram

Vars

specific_transport_idThe ID of the tram we're linked to

Procs

attack_aiWe allow borgs to use the button locally, but not the AI remotely

Var Details

specific_transport_id

The ID of the tram we're linked to

Proc Details

attack_ai

We allow borgs to use the button locally, but not the AI remotely

\ No newline at end of file diff --git a/obj/machinery/byteforge.html b/obj/machinery/byteforge.html new file mode 100644 index 0000000000000..3a4d7588a0305 --- /dev/null +++ b/obj/machinery/byteforge.html @@ -0,0 +1 @@ +/obj/machinery/byteforge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

byteforge

Vars

byteforge_particlesIdle particles

Procs

flashDoes some sparks after it's done
flickerForge begins to process
setup_particlesAdds the particle overlays to the byteforge
spawn_cacheForge is done processing
start_to_spawnTimed flash

Var Details

byteforge_particles

Idle particles

Proc Details

flash

Does some sparks after it's done

flicker

Forge begins to process

setup_particles

Adds the particle overlays to the byteforge

spawn_cache

Forge is done processing

start_to_spawn

Timed flash

\ No newline at end of file diff --git a/obj/machinery/camera.html b/obj/machinery/camera.html new file mode 100644 index 0000000000000..c22d525b7b199 --- /dev/null +++ b/obj/machinery/camera.html @@ -0,0 +1,5 @@ +/obj/machinery/camera - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

camera

Vars

alarm_managerRepresents a signal source of camera alarms about movement or camera tampering
alarm_onBoolean on whether the camera's alarm is triggered.
c_tagThe tag the camera has, which is essentially its name to security camera consoles.
camera_construction_stateThe current state of the camera's construction, all mapped in ones start off already built.
camera_enabledBoolean on whether the camera is activated, so can be seen on camera consoles or will just be static.
camera_upgrade_bitflagsBitflag of upgrades this camera has: (CAMERA_UPGRADE_XRAY | CAMERA_UPGRADE_EMP_PROOF | CAMERA_UPGRADE_MOTION)
emp_moduleA sheet of plasma stored inside of the camera, giving it EMP protection.
empedHow many times this camera has been EMP'ed consecutively, will reset back to 0 when fixed.
in_use_lightsNumber of AIs watching this camera with lights on, used for icons.
internal_lightBoolean on whether the AI can even turn on this camera's light- borg caneras dont have one, for example.
last_shown_paperA copy of the last paper object that was shown to this camera.
malf_emp_firmware_activeused to keep from revealing malf AI upgrades for user facing isEmp() checks after they use Upgrade Camera Network ability +will be false if the camera is upgraded with the proper parts.
malf_emp_firmware_presentso the malf upgrade is restored when the normal upgrade part is removed.
malf_xray_firmware_activeused to keep from revealing malf AI upgrades for user facing isXRay() checks when they use Upgrade Camera Network ability +will be false if the camera is upgraded with the proper parts.
malf_xray_firmware_presentso the malf upgrade is restored when the normal upgrade part is removed.
myareaThe area this camera is built in, which we will add/remove ourselves to the list of cameras in that area from.
networkList of all networks that can see this camera through the security console.
proximity_monitorProximity monitor associated with this atom, for motion sensitive cameras.
short_rangeThe short range the camera can see, if tampered with to be short-sighted.
start_activeBoolean for special cameras to bypass the random chance of being broken on roundstart.
view_rangeThe max range (and default range) the camera can see.
xray_moduleAn analyzer in the camera being used for x-ray upgrade.

Procs

drop_upgradeDrops a specific upgrade and nulls it where necessary.

Var Details

alarm_manager

Represents a signal source of camera alarms about movement or camera tampering

alarm_on

Boolean on whether the camera's alarm is triggered.

c_tag

The tag the camera has, which is essentially its name to security camera consoles.

camera_construction_state

The current state of the camera's construction, all mapped in ones start off already built.

camera_enabled

Boolean on whether the camera is activated, so can be seen on camera consoles or will just be static.

camera_upgrade_bitflags

Bitflag of upgrades this camera has: (CAMERA_UPGRADE_XRAY | CAMERA_UPGRADE_EMP_PROOF | CAMERA_UPGRADE_MOTION)

emp_module

A sheet of plasma stored inside of the camera, giving it EMP protection.

emped

How many times this camera has been EMP'ed consecutively, will reset back to 0 when fixed.

in_use_lights

Number of AIs watching this camera with lights on, used for icons.

internal_light

Boolean on whether the AI can even turn on this camera's light- borg caneras dont have one, for example.

last_shown_paper

A copy of the last paper object that was shown to this camera.

malf_emp_firmware_active

used to keep from revealing malf AI upgrades for user facing isEmp() checks after they use Upgrade Camera Network ability +will be false if the camera is upgraded with the proper parts.

malf_emp_firmware_present

so the malf upgrade is restored when the normal upgrade part is removed.

malf_xray_firmware_active

used to keep from revealing malf AI upgrades for user facing isXRay() checks when they use Upgrade Camera Network ability +will be false if the camera is upgraded with the proper parts.

malf_xray_firmware_present

so the malf upgrade is restored when the normal upgrade part is removed.

myarea

The area this camera is built in, which we will add/remove ourselves to the list of cameras in that area from.

network

List of all networks that can see this camera through the security console.

proximity_monitor

Proximity monitor associated with this atom, for motion sensitive cameras.

short_range

The short range the camera can see, if tampered with to be short-sighted.

start_active

Boolean for special cameras to bypass the random chance of being broken on roundstart.

view_range

The max range (and default range) the camera can see.

xray_module

An analyzer in the camera being used for x-ray upgrade.

Proc Details

drop_upgrade

Drops a specific upgrade and nulls it where necessary.

\ No newline at end of file diff --git a/obj/machinery/camera/emp_proof/motion.html b/obj/machinery/camera/emp_proof/motion.html new file mode 100644 index 0000000000000..73c401f0e8d75 --- /dev/null +++ b/obj/machinery/camera/emp_proof/motion.html @@ -0,0 +1,3 @@ +/obj/machinery/camera/emp_proof/motion - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

motion

Procs

InitializeMotion EMP proof +Same as EMP but also starts with motion upgrade.

Proc Details

Initialize

Motion EMP proof +Same as EMP but also starts with motion upgrade.

\ No newline at end of file diff --git a/obj/machinery/camera/exosuit.html b/obj/machinery/camera/exosuit.html new file mode 100644 index 0000000000000..5a1b8cfc1871b --- /dev/null +++ b/obj/machinery/camera/exosuit.html @@ -0,0 +1 @@ +/obj/machinery/camera/exosuit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

exosuit

The internal camera object for exosuits, applied by the camera upgrade

Vars

current_nameCurrently used name of the mech
is_emp_scrambledWhether the camera was recently affected by an EMP and is thus unfocused, shortening view_range
numberNumber of the camera and thus the name of the mech

Procs

emp_refocusRestore the camera's view default view range after an EMP
update_c_tagUpdates the c_tag of the mech camera while preventing duplicate c_tag usage due to having mechs with the same name

Var Details

current_name

Currently used name of the mech

is_emp_scrambled

Whether the camera was recently affected by an EMP and is thus unfocused, shortening view_range

number

Number of the camera and thus the name of the mech

Proc Details

emp_refocus

Restore the camera's view default view range after an EMP

update_c_tag

Updates the c_tag of the mech camera while preventing duplicate c_tag usage due to having mechs with the same name

\ No newline at end of file diff --git a/obj/machinery/cell_charger_multi.html b/obj/machinery/cell_charger_multi.html new file mode 100644 index 0000000000000..3fa03c4dac327 --- /dev/null +++ b/obj/machinery/cell_charger_multi.html @@ -0,0 +1 @@ +/obj/machinery/cell_charger_multi - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cell_charger_multi

Vars

charge_rateThe base charge rate when spawned
charging_batteriesThe list of batteries we are gonna charge!
max_batteriesNumber of concurrent batteries that can be charged

Var Details

charge_rate

The base charge rate when spawned

charging_batteries

The list of batteries we are gonna charge!

max_batteries

Number of concurrent batteries that can be charged

\ No newline at end of file diff --git a/obj/machinery/cell_charger_multi/wall_mounted.html b/obj/machinery/cell_charger_multi/wall_mounted.html new file mode 100644 index 0000000000000..f7a647f167156 --- /dev/null +++ b/obj/machinery/cell_charger_multi/wall_mounted.html @@ -0,0 +1 @@ +/obj/machinery/cell_charger_multi/wall_mounted - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wall_mounted

Vars

repacked_typeThe item we turn into when repacked

Var Details

repacked_type

The item we turn into when repacked

\ No newline at end of file diff --git a/obj/machinery/chem_dispenser.html b/obj/machinery/chem_dispenser.html new file mode 100644 index 0000000000000..7c5c1471d12b8 --- /dev/null +++ b/obj/machinery/chem_dispenser.html @@ -0,0 +1 @@ +/obj/machinery/chem_dispenser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chem_dispenser

Vars

amountThe current amount this machine is dispensing
base_reagent_purityStarting purity of the created reagents
beakerThe actual beaker inserted into this machine
beaker_overlayThe overlay used to display the beaker on the machine
cellThe cell used to dispense reagents
customTransferAmountThe custom transfer amount
default_dispensable_reagentsThe default list of dispensable_reagents
dispensable_reagentsDispensable_reagents is copypasted in plumbing synthesizers. Please update accordingly. (I didn't make it global because that would limit custom chem dispensers)
dispensed_temperatureThe temperature reagents are dispensed into the beaker
emagged_reagentsThese become available once the machine has been emaged
has_panel_overlayShould we display the open panel overlay when the panel is opened with a screwdriver
nopower_stateIcon to display when the machine is not powered
power_costEfficiency used when converting cell power to reagents. Joule per volume.
recharge_amountThe rate at which this machine recharges the power cell.
recording_recipeRecords the reagents dispensed by the user if this list is not null
saved_recipesSaves all the recipes recorded by the machine
show_phIf the UI has the pH meter shown
transferAmountsUsed for custom transfer amounts
upgrade2_reagentsThese become available once the manipulator has been upgraded to tier 3 (pico)
upgrade3_reagentsThese become available once the manipulator has been upgraded to tier 4 (femto)
upgrade_reagentsThese become available once the manipulator has been upgraded to tier 2 (nano) // SKYRAT EDIT CHANGE - ORIGINAL: /// These become available once the manipulator has been upgraded to tier 4 (femto)
working_stateIcon to display when the machine is powered

Procs

handle_ui_actSame as ui_act() but to be used by subtypes exclusively

Var Details

amount

The current amount this machine is dispensing

base_reagent_purity

Starting purity of the created reagents

beaker

The actual beaker inserted into this machine

beaker_overlay

The overlay used to display the beaker on the machine

cell

The cell used to dispense reagents

customTransferAmount

The custom transfer amount

default_dispensable_reagents

The default list of dispensable_reagents

dispensable_reagents

Dispensable_reagents is copypasted in plumbing synthesizers. Please update accordingly. (I didn't make it global because that would limit custom chem dispensers)

dispensed_temperature

The temperature reagents are dispensed into the beaker

emagged_reagents

These become available once the machine has been emaged

has_panel_overlay

Should we display the open panel overlay when the panel is opened with a screwdriver

nopower_state

Icon to display when the machine is not powered

power_cost

Efficiency used when converting cell power to reagents. Joule per volume.

recharge_amount

The rate at which this machine recharges the power cell.

recording_recipe

Records the reagents dispensed by the user if this list is not null

saved_recipes

Saves all the recipes recorded by the machine

show_ph

If the UI has the pH meter shown

transferAmounts

Used for custom transfer amounts

upgrade2_reagents

These become available once the manipulator has been upgraded to tier 3 (pico)

upgrade3_reagents

These become available once the manipulator has been upgraded to tier 4 (femto)

upgrade_reagents

These become available once the manipulator has been upgraded to tier 2 (nano) // SKYRAT EDIT CHANGE - ORIGINAL: /// These become available once the manipulator has been upgraded to tier 4 (femto)

working_state

Icon to display when the machine is powered

Proc Details

handle_ui_act

Same as ui_act() but to be used by subtypes exclusively

\ No newline at end of file diff --git a/obj/machinery/chem_dispenser/abductor.html b/obj/machinery/chem_dispenser/abductor.html new file mode 100644 index 0000000000000..10a8be952694a --- /dev/null +++ b/obj/machinery/chem_dispenser/abductor.html @@ -0,0 +1 @@ +/obj/machinery/chem_dispenser/abductor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

abductor

Vars

abductor_dispensable_reagentsThe default list of dispensable reagents available in the abductor chem dispenser

Var Details

abductor_dispensable_reagents

The default list of dispensable reagents available in the abductor chem dispenser

\ No newline at end of file diff --git a/obj/machinery/chem_dispenser/chem_synthesizer.html b/obj/machinery/chem_dispenser/chem_synthesizer.html new file mode 100644 index 0000000000000..8af11c9210c30 --- /dev/null +++ b/obj/machinery/chem_dispenser/chem_synthesizer.html @@ -0,0 +1 @@ +/obj/machinery/chem_dispenser/chem_synthesizer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chem_synthesizer

Vars

purityThe purity of the created reagent in % (purity uses 0-1 values)
temperatureThe temperature of the added reagents

Var Details

purity

The purity of the created reagent in % (purity uses 0-1 values)

temperature

The temperature of the added reagents

\ No newline at end of file diff --git a/obj/machinery/chem_dispenser/drinks.html b/obj/machinery/chem_dispenser/drinks.html new file mode 100644 index 0000000000000..2660159ff7286 --- /dev/null +++ b/obj/machinery/chem_dispenser/drinks.html @@ -0,0 +1 @@ +/obj/machinery/chem_dispenser/drinks - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

drinks

Vars

drink_emagged_reagentsThe default list of emagged reagents dispensable by the soda dispenser
drinks_dispensable_reagentsThe default list of reagents dispensable by the soda dispenser

Var Details

drink_emagged_reagents

The default list of emagged reagents dispensable by the soda dispenser

drinks_dispensable_reagents

The default list of reagents dispensable by the soda dispenser

\ No newline at end of file diff --git a/obj/machinery/chem_dispenser/drinks/beer.html b/obj/machinery/chem_dispenser/drinks/beer.html new file mode 100644 index 0000000000000..212ba0440acee --- /dev/null +++ b/obj/machinery/chem_dispenser/drinks/beer.html @@ -0,0 +1 @@ +/obj/machinery/chem_dispenser/drinks/beer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

beer

Vars

beer_dispensable_reagentsThe default list of reagents dispensable by the beer dispenser
beer_emagged_reagentsThe default list of emagged reagents dispensable by the beer dispenser

Var Details

beer_dispensable_reagents

The default list of reagents dispensable by the beer dispenser

beer_emagged_reagents

The default list of emagged reagents dispensable by the beer dispenser

\ No newline at end of file diff --git a/obj/machinery/chem_dispenser/frontier_appliance.html b/obj/machinery/chem_dispenser/frontier_appliance.html new file mode 100644 index 0000000000000..9a8aadd940a51 --- /dev/null +++ b/obj/machinery/chem_dispenser/frontier_appliance.html @@ -0,0 +1 @@ +/obj/machinery/chem_dispenser/frontier_appliance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

frontier_appliance

Vars

cell_we_spawn_withSince we don't have a board to take from, we use this to give the dispenser a cell on spawning

Var Details

cell_we_spawn_with

Since we don't have a board to take from, we use this to give the dispenser a cell on spawning

\ No newline at end of file diff --git a/obj/machinery/chem_dispenser/mutagen.html b/obj/machinery/chem_dispenser/mutagen.html new file mode 100644 index 0000000000000..959260e34b720 --- /dev/null +++ b/obj/machinery/chem_dispenser/mutagen.html @@ -0,0 +1 @@ +/obj/machinery/chem_dispenser/mutagen - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mutagen

Vars

mutagen_dispensable_reagentsThe default list of reagents dispensable by mutagen chem dispenser
mutagen_emagged_reagentsThe default list of emagged reagents dispensable by mutagen chem dispenser

Var Details

mutagen_dispensable_reagents

The default list of reagents dispensable by mutagen chem dispenser

mutagen_emagged_reagents

The default list of emagged reagents dispensable by mutagen chem dispenser

\ No newline at end of file diff --git a/obj/machinery/chem_dispenser/mutagensaltpeter.html b/obj/machinery/chem_dispenser/mutagensaltpeter.html new file mode 100644 index 0000000000000..967f501a17dbd --- /dev/null +++ b/obj/machinery/chem_dispenser/mutagensaltpeter.html @@ -0,0 +1 @@ +/obj/machinery/chem_dispenser/mutagensaltpeter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mutagensaltpeter

Vars

mutagensaltpeter_dispensable_reagentsThe default list of dispensable reagents available in the mutagensaltpeter chem dispenser

Var Details

mutagensaltpeter_dispensable_reagents

The default list of dispensable reagents available in the mutagensaltpeter chem dispenser

\ No newline at end of file diff --git a/obj/machinery/chem_heater.html b/obj/machinery/chem_heater.html new file mode 100644 index 0000000000000..8468e1492831d --- /dev/null +++ b/obj/machinery/chem_heater.html @@ -0,0 +1,18 @@ +/obj/machinery/chem_heater - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chem_heater

Vars

beakerThe beaker inside this machine
dispense_volumeHow much buffer are we transferig per click
heater_coefficientThe energy used by the heater to achieve the target temperature
onIs the heater on or off
target_temperatureThe temperature this heater is trying to acheive

Procs

heat_reagentsHeats the reagents of the currently inserted beaker only if machine is on & beaker has some reagents inside +Arguments
move_bufferInjects either acid/base buffer into the beaker +Arguments
replace_beakerReplace or eject the beaker inside this machine +Arguments

Var Details

beaker

The beaker inside this machine

dispense_volume

How much buffer are we transferig per click

heater_coefficient

The energy used by the heater to achieve the target temperature

on

Is the heater on or off

target_temperature

The temperature this heater is trying to acheive

Proc Details

heat_reagents

Heats the reagents of the currently inserted beaker only if machine is on & beaker has some reagents inside +Arguments

+
    +
  • seconds_per_tick - passed from process() or from reaction_step()
  • +

move_buffer

Injects either acid/base buffer into the beaker +Arguments

+
    +
  • datum/reagent/buffer_type - the type of buffer[acid, base] to inject/withdraw
  • +
  • volume - how much to volume to inject -ve values means withdraw
  • +

replace_beaker

Replace or eject the beaker inside this machine +Arguments

+
    +
  • mob/living/user - the player operating this machine
  • +
  • obj/item/reagent_containers/new_beaker - the new beaker to replace the current one if not null else it will just eject
  • +
\ No newline at end of file diff --git a/obj/machinery/chem_mass_spec.html b/obj/machinery/chem_mass_spec.html new file mode 100644 index 0000000000000..690c7538045ef --- /dev/null +++ b/obj/machinery/chem_mass_spec.html @@ -0,0 +1,6 @@ +/obj/machinery/chem_mass_spec - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chem_mass_spec

Vars

beaker1Input reagents container
beaker2Output reagents container
cms_coefficientmultiplies the final time needed to process the chems depending on the laser stock part
delay_timeTime we started processing + the delay
logThe log output to clarify how the thing works
lower_mass_rangeLower mass range - for mass selection of what will be processed
processing_reagentsIf we're processing reagents or not
progress_timeHow much time we've done so far
upper_mass_rangeUpper_mass_range - for mass selection of what will be processed

Procs

calculate_massComputes either the lightest or heaviest reagent in the input beaker +Arguments
estimate_timeComputes time to purity reagents

Var Details

beaker1

Input reagents container

beaker2

Output reagents container

cms_coefficient

multiplies the final time needed to process the chems depending on the laser stock part

delay_time

Time we started processing + the delay

log

The log output to clarify how the thing works

lower_mass_range

Lower mass range - for mass selection of what will be processed

processing_reagents

If we're processing reagents or not

progress_time

How much time we've done so far

upper_mass_range

Upper_mass_range - for mass selection of what will be processed

Proc Details

calculate_mass

Computes either the lightest or heaviest reagent in the input beaker +Arguments

+
    +
  • smallest - TRUE to find lightest reagent, FALSE to find heaviest reagent
  • +

estimate_time

Computes time to purity reagents

\ No newline at end of file diff --git a/obj/machinery/chem_master.html b/obj/machinery/chem_master.html new file mode 100644 index 0000000000000..0f9f05c18934d --- /dev/null +++ b/obj/machinery/chem_master.html @@ -0,0 +1,24 @@ +/obj/machinery/chem_master - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chem_master

Vars

beakerInserted reagent container
default_containerContainer used by default to reset to
is_printingWhether the machine is busy with printing containers
is_transferingWhether separated reagents should be moved back to container or destroyed.
printable_containersList of printable container types
printing_progressNumber of containers printed so far
printing_speedThe time it takes to print a container
printing_totalNumber of containers to be printed
selected_containerSelected printable container type

Procs

create_containersCreate N selected containers with reagents from buffer split between them +Arguments
load_printable_containersReturn a map of category->list of containers this machine can print
replace_beakerInsert, remove, replace the existig beaker +Arguments
transfer_reagentTransfers a single reagent between buffer & beaker +Arguments

Var Details

beaker

Inserted reagent container

default_container

Container used by default to reset to

is_printing

Whether the machine is busy with printing containers

is_transfering

Whether separated reagents should be moved back to container or destroyed.

printable_containers

List of printable container types

printing_progress

Number of containers printed so far

printing_speed

The time it takes to print a container

printing_total

Number of containers to be printed

selected_container

Selected printable container type

Proc Details

create_containers

Create N selected containers with reagents from buffer split between them +Arguments

+
    +
  • mob/user - the player printing these containers
  • +
  • item_count - number of containers to print
  • +
  • item_name - the name for each container printed
  • +
  • volume_in_each - volume in each container created
  • +

load_printable_containers

Return a map of category->list of containers this machine can print

replace_beaker

Insert, remove, replace the existig beaker +Arguments

+
    +
  • mob/living/user - the player trying to replace the beaker
  • +
  • obj/item/reagent_containers/new_beaker - the beaker we are trying to insert, swap with existing or remove if null
  • +

transfer_reagent

Transfers a single reagent between buffer & beaker +Arguments

+
    +
  • datum/reagents/source - the holder we are transferring from
  • +
  • datum/reagents/target - the holder we are transferring to
  • +
  • datum/reagent/path - the reagent typepath we are transfering
  • +
  • amount - volume to transfer
  • +
  • do_transfer - transfer the reagents else destroy them
  • +
\ No newline at end of file diff --git a/obj/machinery/chem_recipe_debug.html b/obj/machinery/chem_recipe_debug.html new file mode 100644 index 0000000000000..a914f423c4172 --- /dev/null +++ b/obj/machinery/chem_recipe_debug.html @@ -0,0 +1,16 @@ +/obj/machinery/chem_recipe_debug - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chem_recipe_debug

Vars

all_reaction_listCached copy all reactions mapped with their name
beakerThe beaker inside this machine, if null will create a new one
current_reaction_indexThe index in reactions_to_test list which points to the current reaction under test
current_reaction_modeDecides which reaction to play in the reactions_to_test list see Play defines
edit_reactionThe current reaction we are editing
edit_varThe current var of the reaction we are editing
forced_phThe ph to be imposed on the reaction
forced_purityThe purity of all reagents to be imposed on the reaction
forced_tempTemperature to be imposed on the reaction
reactions_to_testThe list of reactions to test
required_containerThe default reagent container required for the selected test reaction if any
target_reagentsThe target reagents to we are working with. can vary if an reaction requires a specific container
temp_modeThe mode for setting reaction temps. see temp defines
use_forced_phif TRUE will use forced_ph else don't alter the ph of the reaction
use_forced_purityIf TRUE will use forced_purity else don't alter the purity of the reaction
volume_multiplierThe multiplier to be applied on the selected reaction required reagents to start the reaction

Procs

adjust_environmentAdjusts the temperature, ph & purity of the holder +Arguments
decode_target_temperatureRetrives the target temperature to be imposed on the test reaction based on temp_mode
decode_varDecodes the ui reaction var into its original name +Arguments
extract_reaction_nameExtracts a human readable name for this chemical reaction +Arguments

Var Details

all_reaction_list

Cached copy all reactions mapped with their name

beaker

The beaker inside this machine, if null will create a new one

current_reaction_index

The index in reactions_to_test list which points to the current reaction under test

current_reaction_mode

Decides which reaction to play in the reactions_to_test list see Play defines

edit_reaction

The current reaction we are editing

edit_var

The current var of the reaction we are editing

forced_ph

The ph to be imposed on the reaction

forced_purity

The purity of all reagents to be imposed on the reaction

forced_temp

Temperature to be imposed on the reaction

reactions_to_test

The list of reactions to test

required_container

The default reagent container required for the selected test reaction if any

target_reagents

The target reagents to we are working with. can vary if an reaction requires a specific container

temp_mode

The mode for setting reaction temps. see temp defines

use_forced_ph

if TRUE will use forced_ph else don't alter the ph of the reaction

use_forced_purity

If TRUE will use forced_purity else don't alter the purity of the reaction

volume_multiplier

The multiplier to be applied on the selected reaction required reagents to start the reaction

Proc Details

adjust_environment

Adjusts the temperature, ph & purity of the holder +Arguments

+
    +
  • seconds_per_tick - passed from on_reaction_step or process
  • +

decode_target_temperature

Retrives the target temperature to be imposed on the test reaction based on temp_mode

decode_var

Decodes the ui reaction var into its original name +Arguments

+
    +
  • variable - the name of the variable as seen in the UI
  • +

extract_reaction_name

Extracts a human readable name for this chemical reaction +Arguments

+
    +
  • datum/chemical_reaction/reaction - the reaction who's name we have to decode
  • +
\ No newline at end of file diff --git a/obj/machinery/coffeemaker.html b/obj/machinery/coffeemaker.html new file mode 100644 index 0000000000000..12d2ecd914481 --- /dev/null +++ b/obj/machinery/coffeemaker.html @@ -0,0 +1 @@ +/obj/machinery/coffeemaker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

coffeemaker

Vars

cartridgeThe coffee cartridge to make coffee from. In the future, coffee grounds are like printer ink.
coffee_cupsThe number of cups left
creamer_packsThe amount of creamer packets left
initial_cartridgeThe type path to instantiate for the coffee cartridge the device initially comes with, eg. /obj/item/coffee_cartridge
sugar_packsThe amount of sugar packets left
sweetener_packsThe amount of sweetener packets left

Procs

toggle_steamUpdates the smoke state to something else, setting particles if relevant

Var Details

cartridge

The coffee cartridge to make coffee from. In the future, coffee grounds are like printer ink.

coffee_cups

The number of cups left

creamer_packs

The amount of creamer packets left

initial_cartridge

The type path to instantiate for the coffee cartridge the device initially comes with, eg. /obj/item/coffee_cartridge

sugar_packs

The amount of sugar packets left

sweetener_packs

The amount of sweetener packets left

Proc Details

toggle_steam

Updates the smoke state to something else, setting particles if relevant

\ No newline at end of file diff --git a/obj/machinery/coffeemaker/impressa.html b/obj/machinery/coffeemaker/impressa.html new file mode 100644 index 0000000000000..66c6c26c25180 --- /dev/null +++ b/obj/machinery/coffeemaker/impressa.html @@ -0,0 +1 @@ +/obj/machinery/coffeemaker/impressa - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

impressa

Vars

coffeeList of coffee bean objects are stored
coffee_amountCurrent amount of coffee beans stored

Var Details

coffee

List of coffee bean objects are stored

coffee_amount

Current amount of coffee beans stored

\ No newline at end of file diff --git a/obj/machinery/colony_recycler.html b/obj/machinery/colony_recycler.html new file mode 100644 index 0000000000000..6a5d7b488b88a --- /dev/null +++ b/obj/machinery/colony_recycler.html @@ -0,0 +1 @@ +/obj/machinery/colony_recycler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

colony_recycler

Vars

allowed_materialsThe list of all the materials we can recycle
amount_producedThe percentage of materials returned
item_recycle_soundThe sound made when an item is eaten
materialsThe recycler's internal materials storage, for when items recycled don't produce enough to make a full sheet of that material
repacked_typeThe item we turn into when repacked

Procs

has_eaten_materialsProc called when the recycler eats new materials, checks if we should spit out new material sheets

Var Details

allowed_materials

The list of all the materials we can recycle

amount_produced

The percentage of materials returned

item_recycle_sound

The sound made when an item is eaten

materials

The recycler's internal materials storage, for when items recycled don't produce enough to make a full sheet of that material

repacked_type

The item we turn into when repacked

Proc Details

has_eaten_materials

Proc called when the recycler eats new materials, checks if we should spit out new material sheets

\ No newline at end of file diff --git a/obj/machinery/component_printer.html b/obj/machinery/component_printer.html new file mode 100644 index 0000000000000..a907386ae415f --- /dev/null +++ b/obj/machinery/component_printer.html @@ -0,0 +1 @@ +/obj/machinery/component_printer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

component_printer

Component printer, creates components for integrated circuits.

Vars

current_unlocked_designsThe current unlocked circuit component designs. Used by integrated circuits to print off circuit components remotely.
efficiency_coeffThe efficiency of this machine
materialsThe internal material bus
techwebThe techweb the printer will get researched designs from

Var Details

current_unlocked_designs

The current unlocked circuit component designs. Used by integrated circuits to print off circuit components remotely.

efficiency_coeff

The efficiency of this machine

materials

The internal material bus

techweb

The techweb the printer will get researched designs from

\ No newline at end of file diff --git a/obj/machinery/computer.html b/obj/machinery/computer.html new file mode 100644 index 0000000000000..b42f9718399ad --- /dev/null +++ b/obj/machinery/computer.html @@ -0,0 +1 @@ +/obj/machinery/computer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

computer

Vars

authenticatedAre we authenticated to use this? Used by things like comms console, security and medical data, and apc controller.
brightness_onHow bright we are when turned on.
connectableDetermines if the computer can connect to other computers (no arcades, etc.)
icon_keyboardIcon_state of the keyboard overlay.
icon_screenIcon_state of the emissive screen overlay.
keyboard_change_iconShould we render an unique icon for the keyboard when off?
time_to_unscrewTime it takes to deconstruct with a screwdriver.

Var Details

authenticated

Are we authenticated to use this? Used by things like comms console, security and medical data, and apc controller.

brightness_on

How bright we are when turned on.

connectable

Determines if the computer can connect to other computers (no arcades, etc.)

icon_keyboard

Icon_state of the keyboard overlay.

icon_screen

Icon_state of the emissive screen overlay.

keyboard_change_icon

Should we render an unique icon for the keyboard when off?

time_to_unscrew

Time it takes to deconstruct with a screwdriver.

\ No newline at end of file diff --git a/obj/machinery/computer/aifixer.html b/obj/machinery/computer/aifixer.html new file mode 100644 index 0000000000000..f8d92243f3312 --- /dev/null +++ b/obj/machinery/computer/aifixer.html @@ -0,0 +1 @@ +/obj/machinery/computer/aifixer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

aifixer

Vars

occupierVariable containing transferred AI
restoringVariable dictating if we are in the process of restoring the occupier AI

Var Details

occupier

Variable containing transferred AI

restoring

Variable dictating if we are in the process of restoring the occupier AI

\ No newline at end of file diff --git a/obj/machinery/computer/arcade.html b/obj/machinery/computer/arcade.html new file mode 100644 index 0000000000000..6cc282e3123a0 --- /dev/null +++ b/obj/machinery/computer/arcade.html @@ -0,0 +1,3 @@ +/obj/machinery/computer/arcade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

arcade

Vars

prize_overrideIf set, will dispense these as prizes instead of the default GLOB.arcade_prize_pool +Like prize pool, it must be a list of the prize and the weight of being selected.

Procs

prizevendDispenses the proper prizes and gives them a positive mood event. If valid, has a small chance to give a pulse rifle.
reset_cabinetPerforms a factory reset of the cabinet and wipes all its stats.

Var Details

prize_override

If set, will dispense these as prizes instead of the default GLOB.arcade_prize_pool +Like prize pool, it must be a list of the prize and the weight of being selected.

Proc Details

prizevend

Dispenses the proper prizes and gives them a positive mood event. If valid, has a small chance to give a pulse rifle.

reset_cabinet

Performs a factory reset of the cabinet and wipes all its stats.

\ No newline at end of file diff --git a/obj/machinery/computer/arcade/amputation.html b/obj/machinery/computer/arcade/amputation.html new file mode 100644 index 0000000000000..53aeb479f7c2c --- /dev/null +++ b/obj/machinery/computer/arcade/amputation.html @@ -0,0 +1 @@ +/obj/machinery/computer/arcade/amputation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

amputation

Procs

do_they_still_have_that_handMakes sure the user still has their starting hand, preventing the user from pulling the arm out and still getting prizes.

Proc Details

do_they_still_have_that_hand

Makes sure the user still has their starting hand, preventing the user from pulling the arm out and still getting prizes.

\ No newline at end of file diff --git a/obj/machinery/computer/arcade/battle.html b/obj/machinery/computer/arcade/battle.html new file mode 100644 index 0000000000000..2459400135fac --- /dev/null +++ b/obj/machinery/computer/arcade/battle.html @@ -0,0 +1,12 @@ +/obj/machinery/computer/arcade/battle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

battle

Vars

all_worldsList of all worlds in the game.
battle_arcade_gear_listList of all battle arcade gear that is available in the shop in game.
bomb_cooldownunique to the emag mode, acts as a time limit where the player dies when it reaches 0.
enemies_defeatedHow many enemies we've defeated in a row, used to tell when we need to spawn the boss in.
enemy_gold_rewardHow much gold the enemy will drop, randomized on new opponent.
enemy_hpHow much HP the current enemy has.
enemy_icon_idDetermines which boss image to use on the UI.
enemy_max_hpHow much HP the current enemy has.
enemy_mpHow much MP the current enemy has.
enemy_nameThe enemy's name
equipped_gearAssoc list of gear the player has equipped.
feedback_messageCURRENT ENEMY INFORMATION +A feedback message displayed in the UI during combat sequences.
latest_unlocked_worldThe latest world the player has unlocked, granting access to all worlds below this.
player_current_hpThe current amount of HP the player has.
player_current_mpThe current amount of MP the player has.
player_current_worldThe world we're currently in.
player_goldHow much money the player has, used in the Inn. Starts with the default price for a single item.
player_turnPLAYER INFORMATION +Boolean on whether it's the player's time to do their turn.
ui_panelThe current panel the player is viewieng in the UI.

Procs

lose_gameCalled when a mob loses at the battle arcade.
on_battle_winon_battle_win
perform_enemy_turnperform_enemy_turn
process_enemy_turnHandles the delay between the user's and enemy's turns to process what's going on.
process_player_attackCalled when you attack the enemy.
setup_new_opponentSets up a new opponent depending on what stage they are at.
successful_counterattackCalled when you successfully counterattack the enemy.
user_take_damageCalled when the enemy attacks you.

Var Details

all_worlds

List of all worlds in the game.

battle_arcade_gear_list

List of all battle arcade gear that is available in the shop in game.

bomb_cooldown

unique to the emag mode, acts as a time limit where the player dies when it reaches 0.

enemies_defeated

How many enemies we've defeated in a row, used to tell when we need to spawn the boss in.

enemy_gold_reward

How much gold the enemy will drop, randomized on new opponent.

enemy_hp

How much HP the current enemy has.

enemy_icon_id

Determines which boss image to use on the UI.

enemy_max_hp

How much HP the current enemy has.

enemy_mp

How much MP the current enemy has.

enemy_name

The enemy's name

equipped_gear

Assoc list of gear the player has equipped.

feedback_message

CURRENT ENEMY INFORMATION +A feedback message displayed in the UI during combat sequences.

latest_unlocked_world

The latest world the player has unlocked, granting access to all worlds below this.

player_current_hp

The current amount of HP the player has.

player_current_mp

The current amount of MP the player has.

player_current_world

The world we're currently in.

player_gold

How much money the player has, used in the Inn. Starts with the default price for a single item.

player_turn

PLAYER INFORMATION +Boolean on whether it's the player's time to do their turn.

ui_panel

The current panel the player is viewieng in the UI.

Proc Details

lose_game

Called when a mob loses at the battle arcade.

on_battle_win

on_battle_win

+

Called when the player wins a level, this handles giving EXP, loot, tickets, etc. +It also handles clearing the enemy out for the next one, and unlocking new worlds. +We stop at BATTLE_WORLD_NINE because it is the last stage, and has infinite bosses.

perform_enemy_turn

perform_enemy_turn

+

Actually performs the enemy's turn. +We first roll to see if the enemy should use magic. As their HP goes lower, the chances of self healing goes higher, but +if they lack the MP, then it's rolling to steal MP from the player. +After, we will roll to see if the player counterattacks the enemy (if set), otherwise we will attack normally.

process_enemy_turn

Handles the delay between the user's and enemy's turns to process what's going on.

process_player_attack

Called when you attack the enemy.

setup_new_opponent

Sets up a new opponent depending on what stage they are at.

successful_counterattack

Called when you successfully counterattack the enemy.

user_take_damage

Called when the enemy attacks you.

\ No newline at end of file diff --git a/obj/machinery/computer/arcade/orion_trail.html b/obj/machinery/computer/arcade/orion_trail.html new file mode 100644 index 0000000000000..c964dda5d19f8 --- /dev/null +++ b/obj/machinery/computer/arcade/orion_trail.html @@ -0,0 +1,25 @@ +/obj/machinery/computer/arcade/orion_trail - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

orion_trail

Vars

orion_eventsList of all orion events, created on Initialize.

Procs

encounter_eventpickweights a new event, sets event var as it. it then preps the event if it needs it
execute_crewmemberCrewmember executed code, targeted when there are no lings and untargeted when there are some +If there was no suspected lings (aka random shots) this is just murder and counts towards killed crew
new_settler_moodCreates a new mood icon for each settler

Var Details

orion_events

List of all orion events, created on Initialize.

Proc Details

encounter_event

pickweights a new event, sets event var as it. it then preps the event if it needs it

+

giving a path argument will instead find that instanced datum instead of pickweighting. Used in events that follow from events. +Arguments:

+
    +
  • path: if we want a specific event, this is the path of the wanted one
  • +
  • gamer: person using the arcade, used in emag effects
  • +
  • gamer_skill: gaming skill of the player
  • +
  • gamer_skill_level: gaming skill level of the player
  • +
  • gamer_skill_rands: See above but for random chances, you can just look at gaming skill to see how it chalks that up
  • +

execute_crewmember

Crewmember executed code, targeted when there are no lings and untargeted when there are some +If there was no suspected lings (aka random shots) this is just murder and counts towards killed crew

+

Arguments:

+
    +
  • gamer: carbon that may need emag effects applied
  • +

new_settler_mood

Creates a new mood icon for each settler

+

Things that effect mood:

+
    +
  • Pioneer count
  • +
  • Low food
  • +
  • Low parts
  • +
  • Sometimes they're just a bit happier or sadder +Arguments:
  • +
  • None!
  • +
\ No newline at end of file diff --git a/obj/machinery/computer/atmos_control.html b/obj/machinery/computer/atmos_control.html new file mode 100644 index 0000000000000..6d0509152edbd --- /dev/null +++ b/obj/machinery/computer/atmos_control.html @@ -0,0 +1,3 @@ +/obj/machinery/computer/atmos_control - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

atmos_control

GENERAL AIR CONTROL (a.k.a atmos computer)

Vars

always_displayed_chambersUsed when control = FALSE to store the original atmos chambers so they dont get lost when reconnecting
atmos_chambersWhich sensors do we want to listen to. +Assoc of list[chamber_id] = readable_chamber_name
connected_sensorslist of all sensors[key is chamber id, value is id of air sensor linked to this chamber] monitered by this computer
controlWhether we can actually adjust the chambers or not.
reconnectingWhether we are allowed to reconnect.
was_multi_tooledWas this computer multitooled before. If so copy the list connected_sensors as it now maintain's its own sensors independent of the map loaded one's

Procs

reconnectReconnect only works for station based chambers.

Var Details

always_displayed_chambers

Used when control = FALSE to store the original atmos chambers so they dont get lost when reconnecting

atmos_chambers

Which sensors do we want to listen to. +Assoc of list[chamber_id] = readable_chamber_name

connected_sensors

list of all sensors[key is chamber id, value is id of air sensor linked to this chamber] monitered by this computer

control

Whether we can actually adjust the chambers or not.

reconnecting

Whether we are allowed to reconnect.

was_multi_tooled

Was this computer multitooled before. If so copy the list connected_sensors as it now maintain's its own sensors independent of the map loaded one's

Proc Details

reconnect

Reconnect only works for station based chambers.

\ No newline at end of file diff --git a/obj/machinery/computer/auxiliary_base.html b/obj/machinery/computer/auxiliary_base.html new file mode 100644 index 0000000000000..cdef5f76b809f --- /dev/null +++ b/obj/machinery/computer/auxiliary_base.html @@ -0,0 +1,5 @@ +/obj/machinery/computer/auxiliary_base - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

auxiliary_base

Vars

blind_drop_readyIf blind drop option is available
destinationID of the currently selected destination of the attached base
launch_warningIf we give warnings before base is launched
possible_destinationsList of all possible destinations
shuttleIdShuttle ID of the base
turretsList of connected turrets

Procs

launch_checkChecks if we are allowed to launch the base

Var Details

blind_drop_ready

If blind drop option is available

destination

ID of the currently selected destination of the attached base

launch_warning

If we give warnings before base is launched

possible_destinations

List of all possible destinations

shuttleId

Shuttle ID of the base

turrets

List of connected turrets

Proc Details

launch_check

Checks if we are allowed to launch the base

+

Arguments:

+
    +
  • user - The mob trying to initiate the launch
  • +
\ No newline at end of file diff --git a/obj/machinery/computer/bank_machine.html b/obj/machinery/computer/bank_machine.html new file mode 100644 index 0000000000000..23100bbb9a326 --- /dev/null +++ b/obj/machinery/computer/bank_machine.html @@ -0,0 +1 @@ +/obj/machinery/computer/bank_machine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bank_machine

Vars

account_departmentWhat department to check to link our bank account to.
minimum_time_between_warningsThe amount of time we have between warnings
next_warningAmount of time before the next warning over the radio is announced.
radioThe machine's internal radio, used to broadcast alerts.
radio_channelThe channel we announce a siphon over.
siphoningWhether the machine is currently being siphoned
synced_bank_accountBank account we're connected to.
syphoning_creditsWhile siphoning, how much money do we have? Will drop this once siphon is complete.
unauthorizedWhether siphoning is authorized or not (has access)

Var Details

account_department

What department to check to link our bank account to.

minimum_time_between_warnings

The amount of time we have between warnings

next_warning

Amount of time before the next warning over the radio is announced.

radio

The machine's internal radio, used to broadcast alerts.

radio_channel

The channel we announce a siphon over.

siphoning

Whether the machine is currently being siphoned

synced_bank_account

Bank account we're connected to.

syphoning_credits

While siphoning, how much money do we have? Will drop this once siphon is complete.

unauthorized

Whether siphoning is authorized or not (has access)

\ No newline at end of file diff --git a/obj/machinery/computer/bsa_control.html b/obj/machinery/computer/bsa_control.html new file mode 100644 index 0000000000000..625489530fe8e --- /dev/null +++ b/obj/machinery/computer/bsa_control.html @@ -0,0 +1,3 @@ +/obj/machinery/computer/bsa_control - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bsa_control

The control computer

+

Responsible for cannon firing protocols.

Vars

area_aimAre we allowing the gun to target areas?
connected_cannonA weakref to our cannon
noticeThe current system status of the gun
targetOur target... WHY NOT WEEKREFF

Procs

calibrateSets a target for the gun to use.
change_capacitor_targetChanges the target charge for the internal capacitors
chargeTakes power from the powernet and inserts it into the gun.
deployDeploy
fireInitiates the cannon fire protocol
get_impact_turfLocates the impact turf based off of if it's an area or a GPS.
get_target_nameReturns the targets name, simple.

Var Details

area_aim

Are we allowing the gun to target areas?

connected_cannon

A weakref to our cannon

notice

The current system status of the gun

target

Our target... WHY NOT WEEKREFF

Proc Details

calibrate

Sets a target for the gun to use.

change_capacitor_target

Changes the target charge for the internal capacitors

charge

Takes power from the powernet and inserts it into the gun.

deploy

Deploy

+

Deploys the cannon and deletes the old parts.

fire

Initiates the cannon fire protocol

get_impact_turf

Locates the impact turf based off of if it's an area or a GPS.

get_target_name

Returns the targets name, simple.

\ No newline at end of file diff --git a/obj/machinery/computer/camera_advanced.html b/obj/machinery/computer/camera_advanced.html new file mode 100644 index 0000000000000..64c3ddf1d9b75 --- /dev/null +++ b/obj/machinery/computer/camera_advanced.html @@ -0,0 +1,3 @@ +/obj/machinery/computer/camera_advanced - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

camera_advanced

Vars

actionsList of all actions to give to a user when they're well, granted actions
jump_actionTypepath for jumping
move_down_actionTypepath of the move down action
move_up_actionTypepath of the move up action
off_actionTypepath of the action button we use as "off" +It's a typepath so subtypes can give it fun new names
should_supress_view_changesShould we supress any view changes?

Var Details

actions

List of all actions to give to a user when they're well, granted actions

jump_action

Typepath for jumping

move_down_action

Typepath of the move down action

move_up_action

Typepath of the move up action

off_action

Typepath of the action button we use as "off" +It's a typepath so subtypes can give it fun new names

should_supress_view_changes

Should we supress any view changes?

\ No newline at end of file diff --git a/obj/machinery/computer/camera_advanced/abductor.html b/obj/machinery/computer/camera_advanced/abductor.html new file mode 100644 index 0000000000000..2fb4d79fabbae --- /dev/null +++ b/obj/machinery/computer/camera_advanced/abductor.html @@ -0,0 +1,3 @@ +/obj/machinery/computer/camera_advanced/abductor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

abductor

Vars

abduct_createdWe can't create our actions until after LateInitialize +So we instead do it on the first call to GrantActions

Var Details

abduct_created

We can't create our actions until after LateInitialize +So we instead do it on the first call to GrantActions

\ No newline at end of file diff --git a/obj/machinery/computer/camera_advanced/base_construction.html b/obj/machinery/computer/camera_advanced/base_construction.html new file mode 100644 index 0000000000000..9951a336d85a7 --- /dev/null +++ b/obj/machinery/computer/camera_advanced/base_construction.html @@ -0,0 +1,10 @@ +/obj/machinery/computer/camera_advanced/base_construction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

base_construction

Camera console used to control a base building drone

+

Using this console will put the user in control of a base building drone. +The drone will appear somewhere within the allowed_area var, or if no area is specified, at the location of the console.area +Upon interacting, the user will be granted a set of base building actions that will generally be carried out at the drone's location. +To create a new base builder system, this class should be the only thing that needs to be subtyped.

Vars

allowed_areaArea that the eyeobj will be constrained to. If null, eyeobj will be able to build and move anywhere.
internal_rcdInternal RCD. Some construction actions rely on having this.
structuresAssoc. list ("structure_name" : count) that keeps track of the number of special structures that can't be built with an RCD, for example, tiny fans or turrets.

Procs

GrantActionsGo through every action object in the construction_action list (which should be fully initialized by now) and grant it to the user.
find_spawn_spotFind a spawn location for the eyeobj. If no allowed_area is defined, spawn ontop of the console.
populate_actions_listFill the construction_actios list with actions
restock_materialsReload materials used by the console

Var Details

allowed_area

Area that the eyeobj will be constrained to. If null, eyeobj will be able to build and move anywhere.

internal_rcd

Internal RCD. Some construction actions rely on having this.

structures

Assoc. list ("structure_name" : count) that keeps track of the number of special structures that can't be built with an RCD, for example, tiny fans or turrets.

Proc Details

GrantActions

Go through every action object in the construction_action list (which should be fully initialized by now) and grant it to the user.

find_spawn_spot

Find a spawn location for the eyeobj. If no allowed_area is defined, spawn ontop of the console.

populate_actions_list

Fill the construction_actios list with actions

+

Instantiate each action object that we'll be giving to users of +this console, and put it in the actions list

restock_materials

Reload materials used by the console

+

Restocks any materials used by the base construction console. +This might mean refilling the internal RCD (should it be initialized), or +giving the structures list default values.

\ No newline at end of file diff --git a/obj/machinery/computer/camera_advanced/shuttle_docker.html b/obj/machinery/computer/camera_advanced/shuttle_docker.html new file mode 100644 index 0000000000000..960c95101be2c --- /dev/null +++ b/obj/machinery/computer/camera_advanced/shuttle_docker.html @@ -0,0 +1 @@ +/obj/machinery/computer/camera_advanced/shuttle_docker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shuttle_docker

Vars

jump_to_portsHashset of ports to jump to and ignore for collision purposes
my_portThe custom docking port placed by this console
shuttle_portThe mobile docking port of the connected shuttle
x_offsetx offset for where the camera eye will spawn. Starts from shuttle's docking port
y_offsety offset for where the camera eye will spawn. Starts from the shuttle's docking port

Procs

set_init_ports"Initializes" any default port ids we have, done so add_jumpable_port can be a proper setter

Var Details

jump_to_ports

Hashset of ports to jump to and ignore for collision purposes

my_port

The custom docking port placed by this console

shuttle_port

The mobile docking port of the connected shuttle

x_offset

x offset for where the camera eye will spawn. Starts from shuttle's docking port

y_offset

y offset for where the camera eye will spawn. Starts from the shuttle's docking port

Proc Details

set_init_ports

"Initializes" any default port ids we have, done so add_jumpable_port can be a proper setter

\ No newline at end of file diff --git a/obj/machinery/computer/camera_advanced/xenobio.html b/obj/machinery/computer/camera_advanced/xenobio.html new file mode 100644 index 0000000000000..0ffb495aad0a0 --- /dev/null +++ b/obj/machinery/computer/camera_advanced/xenobio.html @@ -0,0 +1,3 @@ +/obj/machinery/computer/camera_advanced/xenobio - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

xenobio

Vars

connected_recyclerThe recycler connected to the camera console
current_potionThe single slime potion stored inside the console
max_slimesThe maximum amount of slimes that fit in the machine
monkeysThe amount of monkey cubes inside the machine
stored_slimesThe slimes stored inside the console

Procs

XenoMonkeyClickCtrlPicks up a dead monkey for recycling
XenoSlimeClickAltFeeds a stored potion to a slime
XenoSlimeClickCtrlScans the target slime
XenoSlimeClickShiftPicks up a slime, and places them in the internal storage
XenoTurfClickCtrlPlaces a monkey from the internal storage
XenoTurfClickShiftPlaces all slimes from the internal storage
feed_slimePlaces one monkey, if possible
monkey_recycleRecycles the target monkey
slime_pickupPlaces every slime not controlled by a player into the internal storage, respecting its limits +Returns TRUE to signal it hitting the limit, in case its being called from a loop and we want it to stop
slime_placePlaces every slime in storage on target turf

Var Details

connected_recycler

The recycler connected to the camera console

current_potion

The single slime potion stored inside the console

max_slimes

The maximum amount of slimes that fit in the machine

monkeys

The amount of monkey cubes inside the machine

stored_slimes

The slimes stored inside the console

Proc Details

XenoMonkeyClickCtrl

Picks up a dead monkey for recycling

XenoSlimeClickAlt

Feeds a stored potion to a slime

XenoSlimeClickCtrl

Scans the target slime

XenoSlimeClickShift

Picks up a slime, and places them in the internal storage

XenoTurfClickCtrl

Places a monkey from the internal storage

XenoTurfClickShift

Places all slimes from the internal storage

feed_slime

Places one monkey, if possible

monkey_recycle

Recycles the target monkey

slime_pickup

Places every slime not controlled by a player into the internal storage, respecting its limits +Returns TRUE to signal it hitting the limit, in case its being called from a loop and we want it to stop

slime_place

Places every slime in storage on target turf

\ No newline at end of file diff --git a/obj/machinery/computer/cargo.html b/obj/machinery/computer/cargo.html new file mode 100644 index 0000000000000..a48352a8c7124 --- /dev/null +++ b/obj/machinery/computer/cargo.html @@ -0,0 +1,12 @@ +/obj/machinery/computer/cargo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cargo

Vars

can_approve_requestsCan you approve requests placed for cargo? Works differently between the app and the computer.
can_sendCan the supply console send the shuttle back and forth? Used in the UI backend.
cargo_accountThe account this console processes and displays. Independent from the account the shuttle processes.
cargo_shuttleThe name of the shuttle template being used as the cargo shuttle. 'cargo' is default and contains critical code. Don't change this unless you know what you're doing.
docking_awayThe docking port called when leaving the station.
docking_homeThe docking port called when returning to the station.
interface_typeInterface name for the ui_interact call for different subtypes.
is_expressvar that makes express console use rockets
message_cooldownvar that tracks message cooldown
radioradio used by the console to send messages on supply channel
requestonlyCan this console only send requests?
stationcargoIf this console can loan the cargo shuttle. Set to false to disable.

Procs

add_itemadds an supply pack to the checkout cart
name_to_idmaps the ordename displayed on the ui to its supply pack id
radio_wrapperProc for speaking over radio without needing to reuse a bunch of code
remove_itemremoves an item from the checkout cart

Var Details

can_approve_requests

Can you approve requests placed for cargo? Works differently between the app and the computer.

can_send

Can the supply console send the shuttle back and forth? Used in the UI backend.

cargo_account

The account this console processes and displays. Independent from the account the shuttle processes.

cargo_shuttle

The name of the shuttle template being used as the cargo shuttle. 'cargo' is default and contains critical code. Don't change this unless you know what you're doing.

docking_away

The docking port called when leaving the station.

docking_home

The docking port called when returning to the station.

interface_type

Interface name for the ui_interact call for different subtypes.

is_express

var that makes express console use rockets

message_cooldown

var that tracks message cooldown

radio

radio used by the console to send messages on supply channel

requestonly

Can this console only send requests?

stationcargo

If this console can loan the cargo shuttle. Set to false to disable.

Proc Details

add_item

adds an supply pack to the checkout cart

+
    +
  • user - the mobe doing this order
  • +
  • id - the type of pack to order
  • +
  • amount - the amount to order. You may not order more then 10 things at once
  • +

name_to_id

maps the ordename displayed on the ui to its supply pack id

+
    +
  • order_name - the name of the order
  • +

radio_wrapper

Proc for speaking over radio without needing to reuse a bunch of code

remove_item

removes an item from the checkout cart

+
    +
  • id - the id of the cart item to remove
  • +
\ No newline at end of file diff --git a/obj/machinery/computer/cargo/express.html b/obj/machinery/computer/cargo/express.html new file mode 100644 index 0000000000000..af6e640e33c90 --- /dev/null +++ b/obj/machinery/computer/cargo/express.html @@ -0,0 +1 @@ +/obj/machinery/computer/cargo/express - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

express

Vars

beaconThe linked supplypod beacon
beacon_print_cooldownCooldown to prevent beacon spam
landingzoneWhere we droppin boys
lockedIf this console is locked and needs to be unlocked with an ID
printed_beaconsNumber of beacons printed. Used to determine beacon names.
using_beaconIs the console in beacon mode? Exists to let beacon know when a pod may come in

Var Details

beacon

The linked supplypod beacon

beacon_print_cooldown

Cooldown to prevent beacon spam

landingzone

Where we droppin boys

locked

If this console is locked and needs to be unlocked with an ID

printed_beacons

Number of beacons printed. Used to determine beacon names.

using_beacon

Is the console in beacon mode? Exists to let beacon know when a pod may come in

\ No newline at end of file diff --git a/obj/machinery/computer/centcom_announcement.html b/obj/machinery/computer/centcom_announcement.html new file mode 100644 index 0000000000000..218cd4887cc41 --- /dev/null +++ b/obj/machinery/computer/centcom_announcement.html @@ -0,0 +1 @@ +/obj/machinery/computer/centcom_announcement - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

centcom_announcement

Vars

announce_contentsWhether the report's contents are announced.
announcement_cooldownCooldown for sending messages
command_nameThe name of central command that will accompany our report
command_report_contentThe actual contents of the report we're going to send.
command_report_titleThe title of our report, if anything.
errorThe error we encountered while trying to send a report.
report_soundCustom report sound.

Var Details

announce_contents

Whether the report's contents are announced.

announcement_cooldown

Cooldown for sending messages

command_name

The name of central command that will accompany our report

command_report_content

The actual contents of the report we're going to send.

command_report_title

The title of our report, if anything.

error

The error we encountered while trying to send a report.

report_sound

Custom report sound.

\ No newline at end of file diff --git a/obj/machinery/computer/communications.html b/obj/machinery/computer/communications.html new file mode 100644 index 0000000000000..d87e8da9fa226 --- /dev/null +++ b/obj/machinery/computer/communications.html @@ -0,0 +1,13 @@ +/obj/machinery/computer/communications - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

communications

Vars

alert_level_tickHow many times the alert level has been changed +Used to clear the modal to change alert level
authorize_accessThe access that the card had on login
authorize_nameThe name of the user who logged in
battlecruiser_calledIf the battlecruiser has been called
cyborg_stateThe current state of the UI for AIs
important_action_cooldownCooldown for important actions, such as messaging CentCom or other sectors
last_status_displayThe last lines used for changing the status display
last_toggledwhen was emergency access last toggled
messagesThe messages this console has been sent
send_cross_comms_message_timerThe timer ID for sending the next cross-comms message
stateThe current state of the UI
syndicateWhether syndicate mode is enabled or not.
toggle_max_useshow many uses can you toggle emergency access with before cooldowns start occuring BOTH ENABLE/DISABLE
toggle_useshow many uses the console has done of toggling the emergency access

Procs

authenticatedAre we a silicon, OR logged in?
authenticated_as_ai_or_captainAre we the ai, or captain?
authenticated_as_non_silicon_captainAre we NOT a silicon, AND we're logged in as the captain?
authenticated_as_silicon_or_captainAre we a silicon, OR we're logged in as the captain?
call_911Internal. Polls ghosts and sends in a team of space cops according to the alert level, accompanied by an announcement.
can_buy_shuttlesReturns TRUE if the user can buy shuttles. +If they cannot, returns FALSE or a string detailing why.
can_hackChecks if this console is hackable. Used as a callback during try_hack_console's doafter as well.
can_purchase_this_shuttleReturns whether we are authorized to buy this specific shuttle. +Does not handle prerequisite checks, as those should still show.
hack_consoleThe communications console hack, +called by certain antagonist actions.
has_communicationReturns whether or not the communications console can communicate with the station
override_cooldownOverride the cooldown for special actions +Used in places such as CentCom messaging back so that the crew can answer right away
try_hack_consoleBegin the process of hacking into the comms console to call in a threat.

Var Details

alert_level_tick

How many times the alert level has been changed +Used to clear the modal to change alert level

authorize_access

The access that the card had on login

authorize_name

The name of the user who logged in

battlecruiser_called

If the battlecruiser has been called

cyborg_state

The current state of the UI for AIs

important_action_cooldown

Cooldown for important actions, such as messaging CentCom or other sectors

last_status_display

The last lines used for changing the status display

last_toggled

when was emergency access last toggled

messages

The messages this console has been sent

send_cross_comms_message_timer

The timer ID for sending the next cross-comms message

state

The current state of the UI

syndicate

Whether syndicate mode is enabled or not.

toggle_max_uses

how many uses can you toggle emergency access with before cooldowns start occuring BOTH ENABLE/DISABLE

toggle_uses

how many uses the console has done of toggling the emergency access

Proc Details

authenticated

Are we a silicon, OR logged in?

authenticated_as_ai_or_captain

Are we the ai, or captain?

authenticated_as_non_silicon_captain

Are we NOT a silicon, AND we're logged in as the captain?

authenticated_as_silicon_or_captain

Are we a silicon, OR we're logged in as the captain?

call_911

Internal. Polls ghosts and sends in a team of space cops according to the alert level, accompanied by an announcement.

can_buy_shuttles

Returns TRUE if the user can buy shuttles. +If they cannot, returns FALSE or a string detailing why.

can_hack

Checks if this console is hackable. Used as a callback during try_hack_console's doafter as well.

can_purchase_this_shuttle

Returns whether we are authorized to buy this specific shuttle. +Does not handle prerequisite checks, as those should still show.

hack_console

The communications console hack, +called by certain antagonist actions.

+

Brings in additional threats to the round.

+

hacker - the mob that caused the hack

has_communication

Returns whether or not the communications console can communicate with the station

override_cooldown

Override the cooldown for special actions +Used in places such as CentCom messaging back so that the crew can answer right away

try_hack_console

Begin the process of hacking into the comms console to call in a threat.

\ No newline at end of file diff --git a/obj/machinery/computer/cryopod.html b/obj/machinery/computer/cryopod.html new file mode 100644 index 0000000000000..610b296e2168e --- /dev/null +++ b/obj/machinery/computer/cryopod.html @@ -0,0 +1 @@ +/obj/machinery/computer/cryopod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cryopod

Vars

announcement_channelThe channel to be broadcast on, valid values are the values of any of the "RADIO_CHANNEL_" defines.
frozen_crewUsed for logging people entering cryosleep and important items they are carrying.
frozen_itemThe items currently stored in the cryopod control panel.
radioThis is what the announcement system uses to make announcements. Make sure to set a radio that has the channel you want to broadcast on.

Var Details

announcement_channel

The channel to be broadcast on, valid values are the values of any of the "RADIO_CHANNEL_" defines.

frozen_crew

Used for logging people entering cryosleep and important items they are carrying.

frozen_item

The items currently stored in the cryopod control panel.

radio

This is what the announcement system uses to make announcements. Make sure to set a radio that has the channel you want to broadcast on.

\ No newline at end of file diff --git a/obj/machinery/computer/exodrone_control_console.html b/obj/machinery/computer/exodrone_control_console.html new file mode 100644 index 0000000000000..93b9d1164902c --- /dev/null +++ b/obj/machinery/computer/exodrone_control_console.html @@ -0,0 +1 @@ +/obj/machinery/computer/exodrone_control_console - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

exodrone_control_console

Vars

signal_lostHave we lost contact with the drone without disconnecting. Unset on user confirmation.

Var Details

signal_lost

Have we lost contact with the drone without disconnecting. Unset on user confirmation.

\ No newline at end of file diff --git a/obj/machinery/computer/exoscanner_control.html b/obj/machinery/computer/exoscanner_control.html new file mode 100644 index 0000000000000..3e09edda739a6 --- /dev/null +++ b/obj/machinery/computer/exoscanner_control.html @@ -0,0 +1 @@ +/obj/machinery/computer/exoscanner_control - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

exoscanner_control

Vars

failed_popupIf scan was interrupted show a popup until dismissed.
selected_siteSite we're configuring targeted scans for.

Var Details

failed_popup

If scan was interrupted show a popup until dismissed.

selected_site

Site we're configuring targeted scans for.

\ No newline at end of file diff --git a/obj/machinery/computer/holodeck.html b/obj/machinery/computer/holodeck.html new file mode 100644 index 0000000000000..0e2955a089e63 --- /dev/null +++ b/obj/machinery/computer/holodeck.html @@ -0,0 +1,3 @@ +/obj/machinery/computer/holodeck - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

holodeck

Vars

activeTRUE if the holodeck is using extra power because of a program, FALSE otherwise
bottom_leftbottom left corner of the loading room, used for placing
damagedincreases the holodeck cooldown if TRUE, causing the holodeck to take longer to allow loading new programs
emag_programsstores all of the restricted holodeck map templates that this computer has access to
linkedthe area that this holodeck loads templates into, used for power and deleting holo objects that leave it
mapped_start_areawhat area type this holodeck loads into. linked turns into the nearest instance of this area
offline_programthe default program loaded by this holodeck when spawned and when deactivated
programwhat program is loaded right now or is about to be loaded
program_cachestores all of the unrestricted holodeck map templates that this computer has access to
program_typesubtypes of this (but not this itself) are loadable programs
spawnedevery holo object created by the holodeck goes in here to track it
spawning_simulationif TRUE the holodeck is busy spawning another simulation and should immediately stop loading the newest one
special_locsspecial locs that can mess with derez'ing holo spawned objects
templatethe currently used map template

Procs

add_to_spawnedA separate proc for objects that weren't loaded by the template nor spawned by holo effects +yet need to be added to the list of spawned objects. (e.g. holographic fishes)
derezthis qdels holoitems that should no longer exist for whatever reason
emergency_shutdownshuts down the holodeck and force loads the offline_program
finish_spawnfinalizes objects in the spawned list
floorcheckreturns TRUE if all floors of the holodeck are present, returns FALSE if any are broken or removed
generate_program_listadds all programs that this holodeck has access to, and separates the restricted and unrestricted ones
load_programloads the template whose id string it was given ("offline_program" loads datum/map_template/holodeck/offline)
nerfchanges all weapons in the holodeck to do stamina damage if set
reset_to_defaultTo be used on destroy, mainly to prevent sleeping inside well, destroy. Missing a lot of the things contained in load_program

Var Details

active

TRUE if the holodeck is using extra power because of a program, FALSE otherwise

bottom_left

bottom left corner of the loading room, used for placing

damaged

increases the holodeck cooldown if TRUE, causing the holodeck to take longer to allow loading new programs

emag_programs

stores all of the restricted holodeck map templates that this computer has access to

linked

the area that this holodeck loads templates into, used for power and deleting holo objects that leave it

mapped_start_area

what area type this holodeck loads into. linked turns into the nearest instance of this area

offline_program

the default program loaded by this holodeck when spawned and when deactivated

program

what program is loaded right now or is about to be loaded

program_cache

stores all of the unrestricted holodeck map templates that this computer has access to

program_type

subtypes of this (but not this itself) are loadable programs

spawned

every holo object created by the holodeck goes in here to track it

spawning_simulation

if TRUE the holodeck is busy spawning another simulation and should immediately stop loading the newest one

special_locs

special locs that can mess with derez'ing holo spawned objects

template

the currently used map template

Proc Details

add_to_spawned

A separate proc for objects that weren't loaded by the template nor spawned by holo effects +yet need to be added to the list of spawned objects. (e.g. holographic fishes)

derez

this qdels holoitems that should no longer exist for whatever reason

emergency_shutdown

shuts down the holodeck and force loads the offline_program

finish_spawn

finalizes objects in the spawned list

floorcheck

returns TRUE if all floors of the holodeck are present, returns FALSE if any are broken or removed

generate_program_list

adds all programs that this holodeck has access to, and separates the restricted and unrestricted ones

load_program

loads the template whose id string it was given ("offline_program" loads datum/map_template/holodeck/offline)

nerf

changes all weapons in the holodeck to do stamina damage if set

reset_to_default

To be used on destroy, mainly to prevent sleeping inside well, destroy. Missing a lot of the things contained in load_program

\ No newline at end of file diff --git a/obj/machinery/computer/libraryconsole.html b/obj/machinery/computer/libraryconsole.html new file mode 100644 index 0000000000000..8115bc68c241c --- /dev/null +++ b/obj/machinery/computer/libraryconsole.html @@ -0,0 +1 @@ +/obj/machinery/computer/libraryconsole - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

libraryconsole

Vars

authorThe author we're searching for
book_idThe current book id we're searching for
can_connectCan we connect to the db?
categoryThe category we're searching for
db_request_cooldownPrevents spamming requests, acts as a second layer of protection against spam
interface_typeInterface name for the ui_interact call for different subtypes.
last_search_hashA hash of the last search we did, prevents spam in a different way then the cooldown
page_contentThe results of our last query
page_countThe the total pages last we checked
params_changedHave the search params changed at all since the last search?
search_pageThe page of our current query
sending_requestAre we currently sending a db request for books?
titleThe current title we're searching for

Procs

convert_ambiguous_inputTakes input that could either be a number, or a string that represents a number and returns a number
prevent_db_spamChecks if the machine is alloweed to make another db request yet. TRUE if so, FALSE otherwise
sanitize_page_inputReturns a santized page input, so converted from num/text to num, and properly maxed

Var Details

author

The author we're searching for

book_id

The current book id we're searching for

can_connect

Can we connect to the db?

category

The category we're searching for

db_request_cooldown

Prevents spamming requests, acts as a second layer of protection against spam

interface_type

Interface name for the ui_interact call for different subtypes.

last_search_hash

A hash of the last search we did, prevents spam in a different way then the cooldown

page_content

The results of our last query

page_count

The the total pages last we checked

params_changed

Have the search params changed at all since the last search?

search_page

The page of our current query

sending_request

Are we currently sending a db request for books?

title

The current title we're searching for

Proc Details

convert_ambiguous_input

Takes input that could either be a number, or a string that represents a number and returns a number

prevent_db_spam

Checks if the machine is alloweed to make another db request yet. TRUE if so, FALSE otherwise

sanitize_page_input

Returns a santized page input, so converted from num/text to num, and properly maxed

\ No newline at end of file diff --git a/obj/machinery/computer/libraryconsole/admin_only_do_not_map_in_you_fucker.html b/obj/machinery/computer/libraryconsole/admin_only_do_not_map_in_you_fucker.html new file mode 100644 index 0000000000000..f3ecb877e0819 --- /dev/null +++ b/obj/machinery/computer/libraryconsole/admin_only_do_not_map_in_you_fucker.html @@ -0,0 +1 @@ +/obj/machinery/computer/libraryconsole/admin_only_do_not_map_in_you_fucker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

admin_only_do_not_map_in_you_fucker

Vars

book_historyList mapping requested book ids to a list of their edit logs
ckeyThe current ckey we're looking for
show_deletedIf we should show deleted entries or not
view_rawWhen a user clicks view, do we display the raw text, or process it with markdown

Var Details

book_history

List mapping requested book ids to a list of their edit logs

ckey

The current ckey we're looking for

show_deleted

If we should show deleted entries or not

view_raw

When a user clicks view, do we display the raw text, or process it with markdown

\ No newline at end of file diff --git a/obj/machinery/computer/libraryconsole/bookmanagement.html b/obj/machinery/computer/libraryconsole/bookmanagement.html new file mode 100644 index 0000000000000..5ba4b31703f9b --- /dev/null +++ b/obj/machinery/computer/libraryconsole/bookmanagement.html @@ -0,0 +1,3 @@ +/obj/machinery/computer/libraryconsole/bookmanagement - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bookmanagement

Vars

can_spawn_loreCan spawn secret lore item
checkout_pageThe current page we're on in the checkout listing
checkout_page_countThe current max amount of checkout pages allowed
checkoutsList of checked out books, /datum/borrowbook
dynamic_inv_loadShould we load our inventory from the bookselves in our area?
inventoryList of book info datums to display to the user as our "inventory"
inventory_pageThe current page we're on in the inventory
inventory_page_countThe current max amount of inventory pages allowed
newscaster_cooldownOur cooldown on publishing books to the newscaster's "book club" channel
printer_cooldownOur cooldown on using the printer
scannerBook scanner that will be used when uploading books to the Archive
screen_stateThe screen we're currently on, sent to the ui
show_dropdownShould we show the buttons required for changing screens?

Procs

attempt_printCall this proc to attempt a print. It will return false if the print failed, true otherwise, longside some ux +Accepts a callback to call when the print "finishes"

Var Details

can_spawn_lore

Can spawn secret lore item

checkout_page

The current page we're on in the checkout listing

checkout_page_count

The current max amount of checkout pages allowed

checkouts

List of checked out books, /datum/borrowbook

dynamic_inv_load

Should we load our inventory from the bookselves in our area?

inventory

List of book info datums to display to the user as our "inventory"

inventory_page

The current page we're on in the inventory

inventory_page_count

The current max amount of inventory pages allowed

newscaster_cooldown

Our cooldown on publishing books to the newscaster's "book club" channel

printer_cooldown

Our cooldown on using the printer

scanner

Book scanner that will be used when uploading books to the Archive

screen_state

The screen we're currently on, sent to the ui

show_dropdown

Should we show the buttons required for changing screens?

Proc Details

attempt_print

Call this proc to attempt a print. It will return false if the print failed, true otherwise, longside some ux +Accepts a callback to call when the print "finishes"

\ No newline at end of file diff --git a/obj/machinery/computer/mech_bay_power_console.html b/obj/machinery/computer/mech_bay_power_console.html new file mode 100644 index 0000000000000..4436d4324c86d --- /dev/null +++ b/obj/machinery/computer/mech_bay_power_console.html @@ -0,0 +1 @@ +/obj/machinery/computer/mech_bay_power_console - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mech_bay_power_console

Vars

recharge_portRef to charge port fwe are viewing data for, cyclical reference

Procs

reconnectChecks for nearby recharge ports to link to

Var Details

recharge_port

Ref to charge port fwe are viewing data for, cyclical reference

Proc Details

reconnect

Checks for nearby recharge ports to link to

\ No newline at end of file diff --git a/obj/machinery/computer/mechpad.html b/obj/machinery/computer/mechpad.html new file mode 100644 index 0000000000000..da964d24f651d --- /dev/null +++ b/obj/machinery/computer/mechpad.html @@ -0,0 +1,7 @@ +/obj/machinery/computer/mechpad - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mechpad

Vars

connected_mechpadMechpads that it can send mechs through to other mechpads
idID of the mechpad, used for linking up
maximum_padsMaximum amount of pads connected at once
mechpadsList of mechpads connected
selected_idSelected mechpad in the console

Procs

find_padTries to locate a pad in the cardinal directions, if it finds one it returns it
get_padReturns the pad of the value specified
random_beepsA proc that makes random beeping sounds for a set amount of time, the sounds are separated by a random amount of time.
try_launchTries to call the launch proc on the connected mechpad, returns if unavailable +Arguments:

Var Details

connected_mechpad

Mechpads that it can send mechs through to other mechpads

id

ID of the mechpad, used for linking up

maximum_pads

Maximum amount of pads connected at once

mechpads

List of mechpads connected

selected_id

Selected mechpad in the console

Proc Details

find_pad

Tries to locate a pad in the cardinal directions, if it finds one it returns it

get_pad

Returns the pad of the value specified

random_beeps

A proc that makes random beeping sounds for a set amount of time, the sounds are separated by a random amount of time.

try_launch

Tries to call the launch proc on the connected mechpad, returns if unavailable +Arguments:

+
    +
  • user - The user of the proc
  • +
  • where - The mechpad that the connected mechpad will try to send a supply pod to
  • +
\ No newline at end of file diff --git a/obj/machinery/computer/message_monitor.html b/obj/machinery/computer/message_monitor.html new file mode 100644 index 0000000000000..9f2785712763f --- /dev/null +++ b/obj/machinery/computer/message_monitor.html @@ -0,0 +1,3 @@ +/obj/machinery/computer/message_monitor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

message_monitor

Vars

error_messageError message to display in the interface.
linkedServerServer linked to.
messageThe message that shows on the main menu.
notice_messageNotice message to display in the interface.
passwordDecrypt password
screenComputer properties. +0 = Main menu, 1 = Message Logs, 2 = Hacked screen, 3 = Custom Message
spark_systemSparks effect - For emag
success_messageSuccess message to display in the interface.

Procs

unemag_consoleRemove the emag effect from the console

Var Details

error_message

Error message to display in the interface.

linkedServer

Server linked to.

message

The message that shows on the main menu.

notice_message

Notice message to display in the interface.

password

Decrypt password

screen

Computer properties. +0 = Main menu, 1 = Message Logs, 2 = Hacked screen, 3 = Custom Message

spark_system

Sparks effect - For emag

success_message

Success message to display in the interface.

Proc Details

unemag_console

Remove the emag effect from the console

\ No newline at end of file diff --git a/obj/machinery/computer/order_console.html b/obj/machinery/computer/order_console.html new file mode 100644 index 0000000000000..78e9072631b4d --- /dev/null +++ b/obj/machinery/computer/order_console.html @@ -0,0 +1,31 @@ +/obj/machinery/computer/order_console - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

order_console

Vars

blackbox_keyFor blackbox logging, what kind of order is this? set nothing to not tally, like golem orders
cargo_cost_multiplierMultiplied cost to use for cargo mode
cooldown_timeCooldown time between uses, express console will have extra time depending on express_cost_multiplier.
credit_typeThe kind of cash does the console use.
express_cost_multiplierMultiplied cost to use for express mode
express_tooltipTooltip for the express button in TGUI
forced_expressWhether the console can only use express mode ONLY
grocery_listThe current list of things we're trying to order, waiting for checkout.
order_categoriesThe categories of orderable items this console can view and purchase.
order_cooldownCooldown between order uses.
purchase_tooltipTooltip for the purchase button in TGUI
radioThe radio the console can speak into
radio_channelThe channel we will attempt to speak into through our radio.

Procs

order_groceriesstart of the shipment of your order +Args: +purchaser - The mob who is making this purchase +card - The card used to place this order +groceries - the list of orders to be placed
purchase_itemsChecks if an ID card is able to afford the total cost of the current console's groceries +and deducts the cost if they can. +Args: +card - The ID card we check for balance +express - Boolean on whether we need to add the express cost mulitplier +returns TRUE if we can afford, FALSE otherwise.
retrieve_pointspoints is any type of currency this machine accepts(money, mining points etc) which is displayed on the ui +Args: +card - The ID card we retrieve these points from
subtract_pointswhatever type of points was retrieved in retrieve_points() subtract those type of points from the card upon confirming order +Args: +final_cost - amount of points to subtract from this card +card - The ID card to subtract these points from +returns TRUE if successfull

Var Details

blackbox_key

For blackbox logging, what kind of order is this? set nothing to not tally, like golem orders

cargo_cost_multiplier

Multiplied cost to use for cargo mode

cooldown_time

Cooldown time between uses, express console will have extra time depending on express_cost_multiplier.

credit_type

The kind of cash does the console use.

express_cost_multiplier

Multiplied cost to use for express mode

express_tooltip

Tooltip for the express button in TGUI

forced_express

Whether the console can only use express mode ONLY

grocery_list

The current list of things we're trying to order, waiting for checkout.

order_categories

The categories of orderable items this console can view and purchase.

order_cooldown

Cooldown between order uses.

purchase_tooltip

Tooltip for the purchase button in TGUI

radio

The radio the console can speak into

radio_channel

The channel we will attempt to speak into through our radio.

Proc Details

order_groceries

start of the shipment of your order +Args: +purchaser - The mob who is making this purchase +card - The card used to place this order +groceries - the list of orders to be placed

purchase_items

Checks if an ID card is able to afford the total cost of the current console's groceries +and deducts the cost if they can. +Args: +card - The ID card we check for balance +express - Boolean on whether we need to add the express cost mulitplier +returns TRUE if we can afford, FALSE otherwise.

retrieve_points

points is any type of currency this machine accepts(money, mining points etc) which is displayed on the ui +Args: +card - The ID card we retrieve these points from

subtract_points

whatever type of points was retrieved in retrieve_points() subtract those type of points from the card upon confirming order +Args: +final_cost - amount of points to subtract from this card +card - The ID card to subtract these points from +returns TRUE if successfull

\ No newline at end of file diff --git a/obj/machinery/computer/order_console/cook/interdyne.html b/obj/machinery/computer/order_console/cook/interdyne.html new file mode 100644 index 0000000000000..86aa5edf79cc3 --- /dev/null +++ b/obj/machinery/computer/order_console/cook/interdyne.html @@ -0,0 +1 @@ +/obj/machinery/computer/order_console/cook/interdyne - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

interdyne

Vars

credits_accountThe account to add balance
synced_bank_accountThe resolved bank account

Var Details

credits_account

The account to add balance

synced_bank_account

The resolved bank account

\ No newline at end of file diff --git a/obj/machinery/computer/order_console/mining.html b/obj/machinery/computer/order_console/mining.html new file mode 100644 index 0000000000000..66b97058f32a7 --- /dev/null +++ b/obj/machinery/computer/order_console/mining.html @@ -0,0 +1,11 @@ +/obj/machinery/computer/order_console/mining - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mining

Procs

check_menuChecks if we are allowed to interact with a radial menu
redeem_voucherAllows user to redeem a mining voucher for one set of a mining equipment

Proc Details

check_menu

Checks if we are allowed to interact with a radial menu

+
    +
  • Arguments:
  • +
  • voucher The mining voucher that is being used to redeem a mining equipment
  • +
  • redeemer The living mob interacting with the menu
  • +

redeem_voucher

Allows user to redeem a mining voucher for one set of a mining equipment

+
    +
  • Arguments:
  • +
  • voucher The mining voucher that is being used to redeem the mining equipment
  • +
  • redeemer The mob that is redeeming the mining equipment
  • +
\ No newline at end of file diff --git a/obj/machinery/computer/pandemic.html b/obj/machinery/computer/pandemic.html new file mode 100644 index 0000000000000..2c7c4909391d5 --- /dev/null +++ b/obj/machinery/computer/pandemic.html @@ -0,0 +1,23 @@ +/obj/machinery/computer/pandemic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pandemic

Vars

beakerThe inserted beaker
selected_symptomThe currently selected symptom
waitWhether the pandemic is ready to make another culture/vaccine

Procs

create_culture_bottleCreates a culture bottle (ie: replicates) of the the specified disease.
create_vaccine_bottleCreates a vaccine bottle for the specified disease.
eject_beakerSupporting proc to eject a beaker from the machine.
get_by_indexDisplays a thing if it exists within the contents of a beaker.
get_resistance_dataGets resistances of a given blood sample as a list
get_virus_id_by_indexGets the ID of the virus by its index in the list of viruses.
get_viruses_dataA very hefty proc that I am not proud to see.
rename_diseaseRenames an advanced disease after running it through sanitize_name().
reset_replicator_cooldownAllows a user to create another vaccine/culture bottle again.

Var Details

beaker

The inserted beaker

selected_symptom

The currently selected symptom

wait

Whether the pandemic is ready to make another culture/vaccine

Proc Details

create_culture_bottle

Creates a culture bottle (ie: replicates) of the the specified disease.

+

@param {number} index - The index of the disease to replicate.

+

@returns {boolean} - Success or failure.

create_vaccine_bottle

Creates a vaccine bottle for the specified disease.

+

@param {number} index - The index of the disease to replicate.

+

@returns {boolean} - Success or failure.

eject_beaker

Supporting proc to eject a beaker from the machine.

+

Places it in hand if possible.

+

@returns {boolean} - Success or failure.

get_by_index

Displays a thing if it exists within the contents of a beaker.

+

@param {any} thing - The key to look for.

+

@param {any} index - Nested objects within the thing.

+

@returns {any | boolean} The thing found or FALSE if unsuccessful.

get_resistance_data

Gets resistances of a given blood sample as a list

+

@param {reagent/blood} blood - The sample.

+

@returns {list} - The resistances.

get_virus_id_by_index

Gets the ID of the virus by its index in the list of viruses.

+

@param {number} index - The index of the virus in the list of viruses.

+

@returns {string | boolean} - The ID of the virus or FALSE if unable +to find the virus.

get_viruses_data

A very hefty proc that I am not proud to see.

+

Given a blood sample, this proc will return a list of viruses that are present in the sample.

+

Contains traits, symptoms, thresholds etc.

+

@param {reagent/blood} blood - The sample to analyze.

+

@returns {list} - A list of virus info present in the sample.

rename_disease

Renames an advanced disease after running it through sanitize_name().

+

@param {string} id - The ID of the disease to rename.

+

@param {string} name - The new name of the disease.

+

@returns {boolean} - Success or failure.

reset_replicator_cooldown

Allows a user to create another vaccine/culture bottle again.

+

@returns {boolean} - Success or failure.

\ No newline at end of file diff --git a/obj/machinery/computer/piratepad_control.html b/obj/machinery/computer/piratepad_control.html new file mode 100644 index 0000000000000..8a52b9078458e --- /dev/null +++ b/obj/machinery/computer/piratepad_control.html @@ -0,0 +1 @@ +/obj/machinery/computer/piratepad_control - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

piratepad_control

Vars

cargo_hold_idThis is the cargo hold ID used by the piratepad machine. Match these two to link them together.
interface_typeInterface name for the ui_interact call for different subtypes.
nosell_typecacheTypecache of things that shouldn't be sold and shouldn't have their contents sold.
pad_refReference to the specific pad that the control computer is linked up to.
pointsFor the purposes of space pirates, how many points does the control pad have collected.
sendingIs the teleport pad/computer sending something right now? TRUE/FALSE
sending_timerCallback holding the sending timer for sending the goods after a delay.
status_reportMessage to display on the TGUI window.
total_reportReference to the export report totaling all sent objects and mobs.
warmup_timeHow long does it take to warmup the pad to teleport?

Procs

pirate_export_loopThe loop that calculates the value of stuff on a pirate pad, or plain sell them if dry_run is FALSE.
recalcCalculates the predicted value of the items on the pirate pad
sendDeletes and sells the item
start_sendingPrepares to sell the items on the pad
stop_sendingFinishes the sending state of the pad

Var Details

cargo_hold_id

This is the cargo hold ID used by the piratepad machine. Match these two to link them together.

interface_type

Interface name for the ui_interact call for different subtypes.

nosell_typecache

Typecache of things that shouldn't be sold and shouldn't have their contents sold.

pad_ref

Reference to the specific pad that the control computer is linked up to.

points

For the purposes of space pirates, how many points does the control pad have collected.

sending

Is the teleport pad/computer sending something right now? TRUE/FALSE

sending_timer

Callback holding the sending timer for sending the goods after a delay.

status_report

Message to display on the TGUI window.

total_report

Reference to the export report totaling all sent objects and mobs.

warmup_time

How long does it take to warmup the pad to teleport?

Proc Details

pirate_export_loop

The loop that calculates the value of stuff on a pirate pad, or plain sell them if dry_run is FALSE.

recalc

Calculates the predicted value of the items on the pirate pad

send

Deletes and sells the item

start_sending

Prepares to sell the items on the pad

stop_sending

Finishes the sending state of the pad

\ No newline at end of file diff --git a/obj/machinery/computer/piratepad_control/civilian.html b/obj/machinery/computer/piratepad_control/civilian.html new file mode 100644 index 0000000000000..fd68f1edb1417 --- /dev/null +++ b/obj/machinery/computer/piratepad_control/civilian.html @@ -0,0 +1,4 @@ +/obj/machinery/computer/piratepad_control/civilian - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

civilian

Computer for assigning new civilian bounties, and sending bounties for collection.

Vars

inserted_scan_idTypecast of an inserted, scanned ID card inside the console, as bounties are held within the ID card.

Procs

add_bountiesHere is where cargo bounties are added to the player's bank accounts, then adjusted and scaled into a civilian bounty.
id_ejectRemoves A stored ID card.
id_insertSelf explanitory, holds the ID card in the console for bounty payout and manipulation.
pick_bountyProc that assigned a civilian bounty to an ID card, from the list of potential bounties that that bank account currently has available. +Available choices are assigned during add_bounties, and one is locked in here.
sendThis fully rewrites base behavior in order to only check for bounty objects, and no other types of objects like pirate-pads do.

Var Details

inserted_scan_id

Typecast of an inserted, scanned ID card inside the console, as bounties are held within the ID card.

Proc Details

add_bounties

Here is where cargo bounties are added to the player's bank accounts, then adjusted and scaled into a civilian bounty.

id_eject

Removes A stored ID card.

id_insert

Self explanitory, holds the ID card in the console for bounty payout and manipulation.

pick_bounty

Proc that assigned a civilian bounty to an ID card, from the list of potential bounties that that bank account currently has available. +Available choices are assigned during add_bounties, and one is locked in here.

+

@param choice The index of the bounty in the list of bounties that the player can choose from.

send

This fully rewrites base behavior in order to only check for bounty objects, and no other types of objects like pirate-pads do.

\ No newline at end of file diff --git a/obj/machinery/computer/piratepad_control/syndiepad.html b/obj/machinery/computer/piratepad_control/syndiepad.html new file mode 100644 index 0000000000000..f0453fc2849fc --- /dev/null +++ b/obj/machinery/computer/piratepad_control/syndiepad.html @@ -0,0 +1 @@ +/obj/machinery/computer/piratepad_control/syndiepad - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

syndiepad

Vars

credits_accountThe account to add balance
synced_bank_accountThe resolved bank account

Var Details

credits_account

The account to add balance

synced_bank_account

The resolved bank account

\ No newline at end of file diff --git a/obj/machinery/computer/pod.html b/obj/machinery/computer/pod.html new file mode 100644 index 0000000000000..c449c79ce8d45 --- /dev/null +++ b/obj/machinery/computer/pod.html @@ -0,0 +1 @@ +/obj/machinery/computer/pod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pod

Vars

connectedConnected mass driver
idID of the launch control
massdriver_countdownCountdown timer for the mass driver's delayed launch functionality.
rangeRange in which we search for a mass drivers and poddoors nearby
timeTime before auto launch
timingIf the launch timer counts down

Procs

alarmInitiates launching sequence by checking if all components are functional, opening poddoors, firing mass drivers and then closing poddoors

Var Details

connected

Connected mass driver

id

ID of the launch control

massdriver_countdown

Countdown timer for the mass driver's delayed launch functionality.

range

Range in which we search for a mass drivers and poddoors nearby

time

Time before auto launch

timing

If the launch timer counts down

Proc Details

alarm

Initiates launching sequence by checking if all components are functional, opening poddoors, firing mass drivers and then closing poddoors

\ No newline at end of file diff --git a/obj/machinery/computer/prisoner.html b/obj/machinery/computer/prisoner.html new file mode 100644 index 0000000000000..a703415e982bb --- /dev/null +++ b/obj/machinery/computer/prisoner.html @@ -0,0 +1 @@ +/obj/machinery/computer/prisoner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

prisoner

Vars

contained_idID card currently inserted into the computer.

Var Details

contained_id

ID card currently inserted into the computer.

\ No newline at end of file diff --git a/obj/machinery/computer/quantum_console.html b/obj/machinery/computer/quantum_console.html new file mode 100644 index 0000000000000..725fc380b78ba --- /dev/null +++ b/obj/machinery/computer/quantum_console.html @@ -0,0 +1 @@ +/obj/machinery/computer/quantum_console - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

quantum_console

Vars

server_refThe server this console is connected to.

Procs

find_serverAttempts to find a quantum server.

Var Details

server_ref

The server this console is connected to.

Proc Details

find_server

Attempts to find a quantum server.

\ No newline at end of file diff --git a/obj/machinery/computer/rdconsole.html b/obj/machinery/computer/rdconsole.html new file mode 100644 index 0000000000000..ca04d6e94adac --- /dev/null +++ b/obj/machinery/computer/rdconsole.html @@ -0,0 +1,7 @@ +/obj/machinery/computer/rdconsole - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

rdconsole

Vars

d_diskThe stored design disk, if present
id_cacheUsed for compressing data sent to the UI via static_data as payload size is of concern
id_cache_seqSequence var for the id cache
lockedDetermines if the console is locked, and consequently if actions can be performed with it
stored_researchReference to global science techweb
t_diskThe stored technology disk, if present

Procs

compress_idCompresses an ID to an integer representation using the id_cache, used for deduplication +in sent JSON payloads

Var Details

d_disk

The stored design disk, if present

id_cache

Used for compressing data sent to the UI via static_data as payload size is of concern

id_cache_seq

Sequence var for the id cache

locked

Determines if the console is locked, and consequently if actions can be performed with it

stored_research

Reference to global science techweb

t_disk

The stored technology disk, if present

Proc Details

compress_id

Compresses an ID to an integer representation using the id_cache, used for deduplication +in sent JSON payloads

+

Arguments:

+
    +
  • id - the ID to compress
  • +
\ No newline at end of file diff --git a/obj/machinery/computer/rdservercontrol.html b/obj/machinery/computer/rdservercontrol.html new file mode 100644 index 0000000000000..edb646ef4659c --- /dev/null +++ b/obj/machinery/computer/rdservercontrol.html @@ -0,0 +1 @@ +/obj/machinery/computer/rdservercontrol - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rdservercontrol

Vars

stored_researchConnected techweb node the server is connected to.

Var Details

stored_research

Connected techweb node the server is connected to.

\ No newline at end of file diff --git a/obj/machinery/computer/records.html b/obj/machinery/computer/records.html new file mode 100644 index 0000000000000..48b46831dd822 --- /dev/null +++ b/obj/machinery/computer/records.html @@ -0,0 +1 @@ +/obj/machinery/computer/records - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

records

Records subtype for the shared functionality between medical/security/warrant consoles.

Vars

character_preview_viewThe character preview view for the UI.

Procs

create_character_preview_viewCreates a character preview view for the UI.
expunge_record_infoExpunges info from a record.
insert_new_recordInserts a new record into GLOB.manifest.general. Requires a photo to be taken.
secure_loginSecure login
update_previewTakes a record and updates the character preview view to match it.

Var Details

character_preview_view

The character preview view for the UI.

Proc Details

create_character_preview_view

Creates a character preview view for the UI.

expunge_record_info

Expunges info from a record.

insert_new_record

Inserts a new record into GLOB.manifest.general. Requires a photo to be taken.

secure_login

Secure login

update_preview

Takes a record and updates the character preview view to match it.

\ No newline at end of file diff --git a/obj/machinery/computer/records/medical.html b/obj/machinery/computer/records/medical.html new file mode 100644 index 0000000000000..5bbc922b5f4df --- /dev/null +++ b/obj/machinery/computer/records/medical.html @@ -0,0 +1 @@ +/obj/machinery/computer/records/medical - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

medical

Procs

expunge_record_infoDeletes medical information from a record.

Proc Details

expunge_record_info

Deletes medical information from a record.

\ No newline at end of file diff --git a/obj/machinery/computer/records/security.html b/obj/machinery/computer/records/security.html new file mode 100644 index 0000000000000..c3910cb0fe713 --- /dev/null +++ b/obj/machinery/computer/records/security.html @@ -0,0 +1 @@ +/obj/machinery/computer/records/security - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

security

Vars

printingThe current state of the printer

Procs

add_crimeHandles adding a crime to a particular record.
edit_crimeHandles editing a crime on a particular record.
expunge_record_infoDeletes security information from a record.
has_armory_accessOnly qualified personnel can edit records.
invalidate_crimeVoids crimes, or sets someone to discharged if they have none left.
print_finishFinishes printing, resets the printer.
print_recordHandles printing records via UI. Takes the params from UI_act.

Var Details

printing

The current state of the printer

Proc Details

add_crime

Handles adding a crime to a particular record.

edit_crime

Handles editing a crime on a particular record.

expunge_record_info

Deletes security information from a record.

has_armory_access

Only qualified personnel can edit records.

invalidate_crime

Voids crimes, or sets someone to discharged if they have none left.

print_finish

Finishes printing, resets the printer.

print_record

Handles printing records via UI. Takes the params from UI_act.

\ No newline at end of file diff --git a/obj/machinery/computer/scan_consolenew.html b/obj/machinery/computer/scan_consolenew.html new file mode 100644 index 0000000000000..04c1254fe09f8 --- /dev/null +++ b/obj/machinery/computer/scan_consolenew.html @@ -0,0 +1,212 @@ +/obj/machinery/computer/scan_consolenew - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

scan_consolenew

Vars

can_use_scannerUsed for setting tgui data - Whether the connected DNA Scanner is usable
connected_scannerCurrently connected DNA Scanner
crispr_chargesCounter for CRISPR charges
delayed_actionCurrent delayed action, used for delayed enzyme transfer on scanner door close
disketteCurrently stored genetic data diskette
enzyme_copy_timerCooldown for the genetic makeup transfer actions.
genetic_damage_pulse_indexIndex of the enzyme being modified during delayed enzyme pulse operations
genetic_damage_pulse_timerWorld time when the enzyme pulse should complete
genetic_damage_pulse_typeWhich dna string to edit with the pulse
genetic_makeup_bufferMaximum number of enzymes we can store
injector_readyWorld time when injectors are ready to be printed
injector_selectionAssoc list of all advanced injectors. Keys are injector names. Values are lists of mutations.
is_crispr_readyUsed for setting tgui data - Is CRISPR ready?
is_injector_readyUsed for setting tgui data - Whether injectors are ready to be printed
is_joker_readyUsed for setting tgui data - Whether JOKER algorithm is ready
is_pulsingUsed for setting tgui data - Wheher an enzyme pulse operation is ongoing
is_scramble_readyUsed for setting tgui data - Whether Scramble DNA is ready
is_viable_occupantUsed for setting tgui data - Whether the current DNA Scanner occupant is viable for genetic modification
joker_readyWorld time when JOKER algorithm can be used in DNA Consoles
max_injector_instabilityMaximum total instability of all combined mutations allowed on an advanced injector
max_injector_mutationsMaximum number of mutation that an advanced injector can store
max_injector_selectionsMaximum number of advanced injectors that DNA Consoles store
pulse_durationDuration for enzyme genetic damage pulses
pulse_strengthStrength for enzyme genetic damage pulses
scanner_occupantCurrent DNA Scanner occupant
scramble_readyWorld time when Scramble can be used in DNA Consoles
stored_chromosomesList of all chromosomes stored in the DNA Console
stored_mutationsList of all mutations stored on the DNA Console
stored_researchLink to the techweb's stored research. Used to retrieve stored mutations
tgui_advinjector_mutationsUsed for setting tgui data - List of occupant mutations
tgui_console_chromosomesUsed for setting tgui data - List of DNA Console chromosomes
tgui_console_mutationsUsed for setting tgui data - List of DNA Console stored mutations
tgui_diskette_mutationsUsed for setting tgui data - List of diskette stored mutations
tgui_genetic_makeupUsed for setting tgui data - List of occupant mutations
tgui_occupant_mutationsUsed for setting tgui data - List of occupant mutations
tgui_view_stateState of tgui view, i.e. which tab is currently active, or which genome we're currently looking at.
time_to_injectorUsed for setting tgui data - Time until injectors are ready
time_to_jokerUsed for setting tgui data - Time until joker is ready
time_to_pulseUsed for setting tgui data - Time until the enzyme pulse is complete
time_to_scrambleUsed for setting tgui data - Time until scramble is ready

Procs

apply_genetic_makeup
build_chrom_list
build_genetic_makeup_listBuilds the genetic makeup list which will be sent to tgui interface.
build_mutation_list
can_modify_occupant
check_discovery
connect_to_scanner
eject_disk
genetic_damage_pulse
get_mut_by_ref
on_scanner_close
on_scanner_open
randomize_GENETIC_DAMAGE_accuracy
scanner_operationalChecks if there is a connected DNA Scanner that is operational
scramble
set_default_stateSets the default state for the tgui interface.

Var Details

can_use_scanner

Used for setting tgui data - Whether the connected DNA Scanner is usable

connected_scanner

Currently connected DNA Scanner

crispr_charges

Counter for CRISPR charges

delayed_action

Current delayed action, used for delayed enzyme transfer on scanner door close

diskette

Currently stored genetic data diskette

enzyme_copy_timer

Cooldown for the genetic makeup transfer actions.

genetic_damage_pulse_index

Index of the enzyme being modified during delayed enzyme pulse operations

genetic_damage_pulse_timer

World time when the enzyme pulse should complete

genetic_damage_pulse_type

Which dna string to edit with the pulse

genetic_makeup_buffer

Maximum number of enzymes we can store

injector_ready

World time when injectors are ready to be printed

injector_selection

Assoc list of all advanced injectors. Keys are injector names. Values are lists of mutations.

is_crispr_ready

Used for setting tgui data - Is CRISPR ready?

is_injector_ready

Used for setting tgui data - Whether injectors are ready to be printed

is_joker_ready

Used for setting tgui data - Whether JOKER algorithm is ready

is_pulsing

Used for setting tgui data - Wheher an enzyme pulse operation is ongoing

is_scramble_ready

Used for setting tgui data - Whether Scramble DNA is ready

is_viable_occupant

Used for setting tgui data - Whether the current DNA Scanner occupant is viable for genetic modification

joker_ready

World time when JOKER algorithm can be used in DNA Consoles

max_injector_instability

Maximum total instability of all combined mutations allowed on an advanced injector

max_injector_mutations

Maximum number of mutation that an advanced injector can store

max_injector_selections

Maximum number of advanced injectors that DNA Consoles store

pulse_duration

Duration for enzyme genetic damage pulses

pulse_strength

Strength for enzyme genetic damage pulses

scanner_occupant

Current DNA Scanner occupant

scramble_ready

World time when Scramble can be used in DNA Consoles

stored_chromosomes

List of all chromosomes stored in the DNA Console

stored_mutations

List of all mutations stored on the DNA Console

stored_research

Link to the techweb's stored research. Used to retrieve stored mutations

tgui_advinjector_mutations

Used for setting tgui data - List of occupant mutations

tgui_console_chromosomes

Used for setting tgui data - List of DNA Console chromosomes

tgui_console_mutations

Used for setting tgui data - List of DNA Console stored mutations

tgui_diskette_mutations

Used for setting tgui data - List of diskette stored mutations

tgui_genetic_makeup

Used for setting tgui data - List of occupant mutations

tgui_occupant_mutations

Used for setting tgui data - List of occupant mutations

tgui_view_state

State of tgui view, i.e. which tab is currently active, or which genome we're currently looking at.

time_to_injector

Used for setting tgui data - Time until injectors are ready

time_to_joker

Used for setting tgui data - Time until joker is ready

time_to_pulse

Used for setting tgui data - Time until the enzyme pulse is complete

time_to_scramble

Used for setting tgui data - Time until scramble is ready

Proc Details

apply_genetic_makeup

    +
  • +

    Applies the enzyme buffer to the current scanner occupant

    +
  • +
  • +

    Applies the type of a specific genetic makeup buffer to the current scanner

    +
      +
    • occupant
    • +
    +
  • +
  • +

    Arguments:

    +
  • +
  • +
      +
    • type - "ui"/"ue"/"mixed" - Which part of the enzyme buffer to apply
    • +
    +
  • +
  • +
      +
    • buffer_slot - Index of the enzyme buffer to apply
    • +
    +
  • +

build_chrom_list

    +
  • +

    Takes any given chromosome and calculates chromosome compatibility

    +
      +
    • +

      Will iterate over the stored chromosomes in the DNA Console and will check

      +
    • +
    • +

      whether it can be applied to the supplied mutation. Then returns a list of

      +
    • +
    • +

      names of chromosomes that were compatible.

      +
    • +
    • +

      Arguments:

      +
    • +
    +
  • +
  • +
      +
    • mutation - The mutation to check chromosome compatibility with
    • +
    +
  • +

build_genetic_makeup_list

Builds the genetic makeup list which will be sent to tgui interface.

build_mutation_list

    +
  • +

    Builds the genetic makeup list which will be sent to tgui interface.

    +
      +
    • Will iterate over the connected scanner occupant, DNA Console, inserted
    • +
    • diskette and chromosomes and any advanced injectors, building the main data
    • +
    • structures which get passed to the tgui interface.
    • +
    +
  • +

can_modify_occupant

    +
  • +

    Checks if there is a valid DNA Scanner occupant for genetic modification

    +
      +
    • Checks if there is a valid subject in the DNA Scanner that can be genetically
    • +
    • modified. Will set the scanner occupant var as part of this check.
    • +
    • Requires that the scanner can be operated and will return early if it can't
    • +
    +
  • +

check_discovery

    +
  • +

    Checks whether a mutation alias has been discovered

    +
      +
    • +

      Checks whether a given mutation's genetic sequence has been completed and

      +
    • +
    • +

      discovers it if appropriate

      +
    • +
    • +

      Arguments:

      +
    • +
    +
  • +
  • +
      +
    • alias - Alias of the mutation to check (ie "Mutation 51" or "Mutation 12")
    • +
    +
  • +

connect_to_scanner

    +
  • +

    Checks for adjacent DNA scanners and connects when it finds a viable one

    +
      +
    • Seearches cardinal directions in order. Stops when it finds a viable DNA Scanner.
    • +
    • Will connect to a broken scanner if no functional scanner is available.
    • +
    • Links itself to the DNA Scanner to receive door open and close events.
    • +
    +
  • +

eject_disk

    +
  • +

    Ejects the DNA Disk from the console.

    +
      +
    • +

      Will insert into the user's hand if possible, otherwise will drop it at the

      +
    • +
    • +

      console's location.

      +
    • +
    • +

      Arguments:

      +
    • +
    +
  • +
  • +
      +
    • user - The mob that is attempting to eject the diskette.
    • +
    +
  • +

genetic_damage_pulse

    +
  • +

    Performs the enzyme genetic damage pulse.

    +
      +
    • Donor code from previous DNA Console iteration. Called from process() when
    • +
    • there is a genetic damage pulse in progress. Ends processing.
    • +
    +
  • +

get_mut_by_ref

    +
  • +

    Find a mutation from various storage locations via ATOM ref

    +
      +
    • +

      Takes an ATOM Ref and searches the appropriate mutation buffers and storage

      +
    • +
    • +

      vars to try and find the associated mutation.

      +
    • +
    • +

      Arguments:

      +
    • +
    +
  • +
  • +
      +
    • ref - ATOM ref of the mutation to locate
    • +
    • +
        +
      • target_flags - Flags for storage mediums to search, see #defines
      • +
      +
    • +
    +
  • +

on_scanner_close

    +
  • +

    Called by connected DNA Scanners when their doors close.

    +
      +
    • Sets the new scanner occupant and completes delayed enzyme transfer if one
    • +
    • is queued.
    • +
    +
  • +

on_scanner_open

    +
  • +

    Called by connected DNA Scanners when their doors open.

    +
      +
    • Clears enzyme pulse operations, stops processing and nulls the current
    • +
    • scanner occupant var.
    • +
    +
  • +

randomize_GENETIC_DAMAGE_accuracy

    +
  • +

    Creates a randomised accuracy value for the enzyme pulse functionality.

    +
      +
    • +

      Donor code from previous DNA Console iteration.

      +
    • +
    • +

      Arguments:

      +
    • +
    +
  • +
  • +
      +
    • position - Index of the intended enzyme element to pulse
    • +
    • +
        +
      • pulse_duration - Duration of intended genetic damage pulse
      • +
      +
    • +
    • +
        +
      • number_of_blocks - Number of individual data blocks in the pulsed enzyme
      • +
      +
    • +
    +
  • +

scanner_operational

Checks if there is a connected DNA Scanner that is operational

scramble

    +
  • +

    Scrambles an enzyme element value for the enzyme pulse functionality.

    +
      +
    • +

      Donor code from previous DNA Console iteration.

      +
    • +
    • +

      Arguments:

      +
    • +
    +
  • +
  • +
      +
    • input - Enzyme identity element to scramble, expected hex value
    • +
    • +
        +
      • rs - Strength of genetic damage pulse, increases the range of possible outcomes
      • +
      +
    • +
    +
  • +

set_default_state

Sets the default state for the tgui interface.

\ No newline at end of file diff --git a/obj/machinery/computer/security.html b/obj/machinery/computer/security.html new file mode 100644 index 0000000000000..b29c49d5968ae --- /dev/null +++ b/obj/machinery/computer/security.html @@ -0,0 +1 @@ +/obj/machinery/computer/security - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

security

Vars

cam_backgroundAll the plane masters that need to be applied.
last_camera_turfThe turf where the camera was last updated.

Var Details

cam_background

All the plane masters that need to be applied.

last_camera_turf

The turf where the camera was last updated.

\ No newline at end of file diff --git a/obj/machinery/computer/security/telescreen.html b/obj/machinery/computer/security/telescreen.html new file mode 100644 index 0000000000000..6e58cebbd52fd --- /dev/null +++ b/obj/machinery/computer/security/telescreen.html @@ -0,0 +1 @@ +/obj/machinery/computer/security/telescreen - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

telescreen

Vars

frame_typeThe kind of wallframe that this telescreen drops

Var Details

frame_type

The kind of wallframe that this telescreen drops

\ No newline at end of file diff --git a/obj/machinery/computer/security/telescreen/entertainment.html b/obj/machinery/computer/security/telescreen/entertainment.html new file mode 100644 index 0000000000000..dc87d11f1bfd9 --- /dev/null +++ b/obj/machinery/computer/security/telescreen/entertainment.html @@ -0,0 +1 @@ +/obj/machinery/computer/security/telescreen/entertainment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

entertainment

Vars

speakersVirtual radio inside of the entertainment monitor to broadcast audio

Procs

notifySets the monitor's icon to the selected state, and says an announcement
update_showsAdds a camera network ID to the entertainment monitor, and turns off the monitor if network list is empty

Var Details

speakers

Virtual radio inside of the entertainment monitor to broadcast audio

Proc Details

notify

Sets the monitor's icon to the selected state, and says an announcement

update_shows

Adds a camera network ID to the entertainment monitor, and turns off the monitor if network list is empty

\ No newline at end of file diff --git a/obj/machinery/computer/shuttle.html b/obj/machinery/computer/shuttle.html new file mode 100644 index 0000000000000..4129c0318ec89 --- /dev/null +++ b/obj/machinery/computer/shuttle.html @@ -0,0 +1,12 @@ +/obj/machinery/computer/shuttle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shuttle

Vars

admin_controlledVariable dictating if the attached shuttle requires authorization from the admin staff to move
destinationID of the currently selected destination of the attached shuttle
dumb_rev_headsList of head revs who have already clicked through the warning about not using the console
lockedIf the console controls are locked
no_destination_swapVariable dictating if the attached shuttle is forbidden to change destinations mid-flight
possible_destinationsPossible destinations of the attached shuttle
request_cooldownAuthorization request cooldown to prevent request spam to admin staff
shuttleIdID of the attached shuttle

Procs

get_valid_destinationsReturns a list of currently valid destinations for this shuttle console, +taking into account its list of allowed destinations, their current state, and the shuttle's current location
launch_checkChecks if we are allowed to launch the shuttle
send_shuttleAttempts to send the linked shuttle to dest_id, checking various sanity checks to see if it can move or not

Var Details

admin_controlled

Variable dictating if the attached shuttle requires authorization from the admin staff to move

destination

ID of the currently selected destination of the attached shuttle

dumb_rev_heads

List of head revs who have already clicked through the warning about not using the console

locked

If the console controls are locked

no_destination_swap

Variable dictating if the attached shuttle is forbidden to change destinations mid-flight

possible_destinations

Possible destinations of the attached shuttle

request_cooldown

Authorization request cooldown to prevent request spam to admin staff

shuttleId

ID of the attached shuttle

Proc Details

get_valid_destinations

Returns a list of currently valid destinations for this shuttle console, +taking into account its list of allowed destinations, their current state, and the shuttle's current location

launch_check

Checks if we are allowed to launch the shuttle

+

Arguments:

+
    +
  • user - The mob trying to initiate the launch
  • +

send_shuttle

Attempts to send the linked shuttle to dest_id, checking various sanity checks to see if it can move or not

+

Arguments:

+
    +
  • dest_id - The ID of the stationary docking port to send the shuttle to
  • +
  • user - The mob that used the console
  • +
\ No newline at end of file diff --git a/obj/machinery/computer/shuttle/arrivals.html b/obj/machinery/computer/shuttle/arrivals.html new file mode 100644 index 0000000000000..e4dae937fb177 --- /dev/null +++ b/obj/machinery/computer/shuttle/arrivals.html @@ -0,0 +1 @@ +/obj/machinery/computer/shuttle/arrivals - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

arrivals

Vars

last_cancel_announce[world.time] when console last announced canceling shuttle's return
last_depart_announce[world.time] when console last announced departure

Var Details

last_cancel_announce

[world.time] when console last announced canceling shuttle's return

last_depart_announce

[world.time] when console last announced departure

\ No newline at end of file diff --git a/obj/machinery/computer/shuttle/pod.html b/obj/machinery/computer/shuttle/pod.html new file mode 100644 index 0000000000000..6f0eec6ddf611 --- /dev/null +++ b/obj/machinery/computer/shuttle/pod.html @@ -0,0 +1,6 @@ +/obj/machinery/computer/shuttle/pod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

pod

Procs

check_lockSignal handler for checking if we should lock or unlock escape pods accordingly to a newly set security level

Proc Details

check_lock

Signal handler for checking if we should lock or unlock escape pods accordingly to a newly set security level

+

Arguments:

+
    +
  • source The datum source of the signal
  • +
  • new_level The new security level that is in effect
  • +
\ No newline at end of file diff --git a/obj/machinery/computer/slot_machine.html b/obj/machinery/computer/slot_machine.html new file mode 100644 index 0000000000000..ba20a1245d7ef --- /dev/null +++ b/obj/machinery/computer/slot_machine.html @@ -0,0 +1,3 @@ +/obj/machinery/computer/slot_machine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

slot_machine

Vars

iconsIcons that can be displayed by the slot machine.

Procs

can_spinCheck if the machine can be spun
check_jackpotChecks for a jackpot (5 matching icons in the middle row) with the given icon name
dispenseDispense the given amount. If machine is set to use coins, will use the specified coin type. +If throwit and target are set, will launch the payment at the target
get_linesFinds the largest number of consecutive matching icons in a row
give_moneyGive the specified amount of money. If the amount is greater than the amount of prize money available, add the difference as balance
give_payoutPay out the specified amount in either coins or holochips
give_prizesChecks if any prizes have been won, and pays them out
randomize_reelsRandomize the states of all reels
toggle_reel_spinSets the spinning states of all reels to value, with a delay between them
toggle_reel_spin_syncSame as toggle_reel_spin, but without the delay and runs synchronously

Var Details

icons

Icons that can be displayed by the slot machine.

Proc Details

can_spin

Check if the machine can be spun

check_jackpot

Checks for a jackpot (5 matching icons in the middle row) with the given icon name

dispense

Dispense the given amount. If machine is set to use coins, will use the specified coin type. +If throwit and target are set, will launch the payment at the target

get_lines

Finds the largest number of consecutive matching icons in a row

give_money

Give the specified amount of money. If the amount is greater than the amount of prize money available, add the difference as balance

give_payout

Pay out the specified amount in either coins or holochips

give_prizes

Checks if any prizes have been won, and pays them out

randomize_reels

Randomize the states of all reels

toggle_reel_spin

Sets the spinning states of all reels to value, with a delay between them

toggle_reel_spin_sync

Same as toggle_reel_spin, but without the delay and runs synchronously

\ No newline at end of file diff --git a/obj/machinery/computer/station_alert.html b/obj/machinery/computer/station_alert.html new file mode 100644 index 0000000000000..4adc7845a16c5 --- /dev/null +++ b/obj/machinery/computer/station_alert.html @@ -0,0 +1,5 @@ +/obj/machinery/computer/station_alert - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

station_alert

Vars

alert_controlStation alert datum for showing alerts UI

Procs

update_alarm_displaySignal handler for calling an icon update in case an alarm is added or cleared

Var Details

alert_control

Station alert datum for showing alerts UI

Proc Details

update_alarm_display

Signal handler for calling an icon update in case an alarm is added or cleared

+

Arguments:

+
    +
  • source The datum source of the signal
  • +
\ No newline at end of file diff --git a/obj/machinery/computer/telecomms/monitor.html b/obj/machinery/computer/telecomms/monitor.html new file mode 100644 index 0000000000000..a5dea4765ccea --- /dev/null +++ b/obj/machinery/computer/telecomms/monitor.html @@ -0,0 +1 @@ +/obj/machinery/computer/telecomms/monitor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

monitor

Vars

machine_refsWeakrefs of the machines located by the computer
networkThe network to probe
screenCurrently displayed "tab"
selected_machine_refWeakref of the currently selected tcomms machine
status_messageError message to show

Var Details

machine_refs

Weakrefs of the machines located by the computer

network

The network to probe

screen

Currently displayed "tab"

selected_machine_ref

Weakref of the currently selected tcomms machine

status_message

Error message to show

\ No newline at end of file diff --git a/obj/machinery/computer/telecomms/server.html b/obj/machinery/computer/telecomms/server.html new file mode 100644 index 0000000000000..bf732015dfd0f --- /dev/null +++ b/obj/machinery/computer/telecomms/server.html @@ -0,0 +1 @@ +/obj/machinery/computer/telecomms/server - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

server

Vars

SelectedServerthe currently selected server
error_messageError message to show
networkNetwork name to probe
req_accessAccess required to delete messages
screenCurrent screen the user is viewing
serversthe servers located by the computer to be in-network
universal_translateCan the monitor translate languages?

Var Details

SelectedServer

the currently selected server

error_message

Error message to show

network

Network name to probe

req_access

Access required to delete messages

screen

Current screen the user is viewing

servers

the servers located by the computer to be in-network

universal_translate

Can the monitor translate languages?

\ No newline at end of file diff --git a/obj/machinery/computer/teleporter.html b/obj/machinery/computer/teleporter.html new file mode 100644 index 0000000000000..d13a69becdf4d --- /dev/null +++ b/obj/machinery/computer/teleporter.html @@ -0,0 +1,3 @@ +/obj/machinery/computer/teleporter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

teleporter

Vars

calibratingWhether the teleporter is currently calibrating
idThe ID of this teleporter, used for linking to power stations
power_stationThe power station this teleporter is linked to
regime_setCurrently can be "Teleporter" or "Gate"
target_refWeakref to the target atom we're pointed at currently

Procs

get_targetsGets a list of targets to teleport to. +List is an assoc list of descriptors to locations.
lock_in_stationGiven a target station, will power and link it.

Var Details

calibrating

Whether the teleporter is currently calibrating

id

The ID of this teleporter, used for linking to power stations

power_station

The power station this teleporter is linked to

regime_set

Currently can be "Teleporter" or "Gate"

target_ref

Weakref to the target atom we're pointed at currently

Proc Details

get_targets

Gets a list of targets to teleport to. +List is an assoc list of descriptors to locations.

lock_in_station

Given a target station, will power and link it.

\ No newline at end of file diff --git a/obj/machinery/computer/terminal.html b/obj/machinery/computer/terminal.html new file mode 100644 index 0000000000000..6b79d102729e5 --- /dev/null +++ b/obj/machinery/computer/terminal.html @@ -0,0 +1 @@ +/obj/machinery/computer/terminal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

terminal

Vars

contentText this terminal contains, not dissimilar to paper. Unlike paper, players cannot add or edit existing info.
tguithemeThe TGUI theme this console uses. Defaults to hackerman, a retro greeny pallete which should fit most terminals.
upperinfoText that displays on top of the actual 'lore' funnies.

Var Details

content

Text this terminal contains, not dissimilar to paper. Unlike paper, players cannot add or edit existing info.

tguitheme

The TGUI theme this console uses. Defaults to hackerman, a retro greeny pallete which should fit most terminals.

upperinfo

Text that displays on top of the actual 'lore' funnies.

\ No newline at end of file diff --git a/obj/machinery/computer/tram_controls.html b/obj/machinery/computer/tram_controls.html new file mode 100644 index 0000000000000..f21fcce835a29 --- /dev/null +++ b/obj/machinery/computer/tram_controls.html @@ -0,0 +1,5 @@ +/obj/machinery/computer/tram_controls - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tram_controls

Vars

available_facesWhat sign face prefixes we have icons for
sign_faceThe sign face we're displaying
specific_transport_idThe ID of the tram we're controlling
split_modeIf the sign is adjusted for split type tram windows
transport_refWeakref to the tram piece we control

Procs

find_tramFinds the tram from the console
get_destinationsFinds the destinations for the tram console gui

Var Details

available_faces

What sign face prefixes we have icons for

sign_face

The sign face we're displaying

specific_transport_id

The ID of the tram we're controlling

split_mode

If the sign is adjusted for split type tram windows

transport_ref

Weakref to the tram piece we control

Proc Details

find_tram

Finds the tram from the console

+

Locates tram parts in the lift global list after everything is done.

get_destinations

Finds the destinations for the tram console gui

+

Pulls tram landmarks from the landmark gobal list +and uses those to show the proper icons and destination +names for the tram console gui.

\ No newline at end of file diff --git a/obj/machinery/computer/turbine_computer.html b/obj/machinery/computer/turbine_computer.html new file mode 100644 index 0000000000000..e2ecc8df6a821 --- /dev/null +++ b/obj/machinery/computer/turbine_computer.html @@ -0,0 +1 @@ +/obj/machinery/computer/turbine_computer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

turbine_computer

Vars

mapping_idEasy way to connect a computer and a turbine roundstart by setting an id on both this and the core_rotor
turbine_coreWeakref of the connected machine to this computer

Var Details

mapping_id

Easy way to connect a computer and a turbine roundstart by setting an id on both this and the core_rotor

turbine_core

Weakref of the connected machine to this computer

\ No newline at end of file diff --git a/obj/machinery/computer/vaultcontroller.html b/obj/machinery/computer/vaultcontroller.html new file mode 100644 index 0000000000000..1c6f7bd9fffb8 --- /dev/null +++ b/obj/machinery/computer/vaultcontroller.html @@ -0,0 +1 @@ +/obj/machinery/computer/vaultcontroller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

vaultcontroller

Vault controller for use on the derelict/KS13.

Procs

activate_lockAttempts to lock/unlock vault doors, if machine is charged.
attempt_siphonTries to charge from powernet excess, no upper limit except max charge.
cycle_closeHandles the doors closing
cycle_openHandles the doors opening
find_airlocksInitializes airlock links.
lock_vaultAttempts to lock the vault doors
unlock_vaultAttempts to unlock the vault doors
update_cableLooks for a cable connection beneath the machine.

Proc Details

activate_lock

Attempts to lock/unlock vault doors, if machine is charged.

attempt_siphon

Tries to charge from powernet excess, no upper limit except max charge.

cycle_close

Handles the doors closing

cycle_open

Handles the doors opening

find_airlocks

Initializes airlock links.

lock_vault

Attempts to lock the vault doors

unlock_vault

Attempts to unlock the vault doors

update_cable

Looks for a cable connection beneath the machine.

\ No newline at end of file diff --git a/obj/machinery/computer/warrant.html b/obj/machinery/computer/warrant.html new file mode 100644 index 0000000000000..385158d89a801 --- /dev/null +++ b/obj/machinery/computer/warrant.html @@ -0,0 +1 @@ +/obj/machinery/computer/warrant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

warrant

Vars

printingThe state of the printer

Procs

pay_finePays towards a listed fine.
print_bountyPrints a bounty for a listed fine.
print_finishFinishes printing, resets the printer.

Var Details

printing

The state of the printer

Proc Details

pay_fine

Pays towards a listed fine.

print_bounty

Prints a bounty for a listed fine.

print_finish

Finishes printing, resets the printer.

\ No newline at end of file diff --git a/obj/machinery/conveyor.html b/obj/machinery/conveyor.html new file mode 100644 index 0000000000000..86958d600a6f6 --- /dev/null +++ b/obj/machinery/conveyor.html @@ -0,0 +1 @@ +/obj/machinery/conveyor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

conveyor

Vars

attached_wire_refweakref to attached cable if wire mode
backwardsThe opposite of forwards. It's set in a special var for corner belts, which aren't using the opposite direction when in reverse.
conveyingAre we currently conveying items?
flippedIs the conveyor's belt flipped? Useful mostly for conveyor belt corners. It makes the belt point in the other direction, rather than just going in reverse.
forwardsThis is the default (forward) direction, set by the map dir.
idThe control ID - must match at least one conveyor switch's ID to be useful.
invertedInverts the direction the conveyor belt moves when true.
movedirThe actual direction to move stuff in.
neighborsDirection -> if we have a conveyor belt in that direction
operatingThe current state of the switch.
wire_modeare we operating in wire power mode

Procs

update_move_directionProc to handle updating the directions in which the conveyor belt is moving items.

Var Details

attached_wire_ref

weakref to attached cable if wire mode

backwards

The opposite of forwards. It's set in a special var for corner belts, which aren't using the opposite direction when in reverse.

conveying

Are we currently conveying items?

flipped

Is the conveyor's belt flipped? Useful mostly for conveyor belt corners. It makes the belt point in the other direction, rather than just going in reverse.

forwards

This is the default (forward) direction, set by the map dir.

id

The control ID - must match at least one conveyor switch's ID to be useful.

inverted

Inverts the direction the conveyor belt moves when true.

movedir

The actual direction to move stuff in.

neighbors

Direction -> if we have a conveyor belt in that direction

operating

The current state of the switch.

wire_mode

are we operating in wire power mode

Proc Details

update_move_direction

Proc to handle updating the directions in which the conveyor belt is moving items.

\ No newline at end of file diff --git a/obj/machinery/conveyor_switch.html b/obj/machinery/conveyor_switch.html new file mode 100644 index 0000000000000..9fc19e64aeedd --- /dev/null +++ b/obj/machinery/conveyor_switch.html @@ -0,0 +1 @@ +/obj/machinery/conveyor_switch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

conveyor_switch

Vars

idThe ID of the switch, must match conveyor IDs to control them.
invert_iconIf the level points the opposite direction when it's turned on.
onewayIf the switch only operates the conveyor belts in a single direction.
positionThe current state of the switch.

Procs

attack_handCalled when a user clicks on this switch with an open hand.
update_linked_conveyorsUpdates all conveyor belts that are linked to this switch, and tells them to start processing.
update_linked_switchesFinds any switches with same id as this one, and set their position and icon to match us.
update_positionUpdates the switch's position and last_pos variable. Useful so that the switch can properly cycle between the forwards, backwards and neutral positions.

Var Details

id

The ID of the switch, must match conveyor IDs to control them.

invert_icon

If the level points the opposite direction when it's turned on.

oneway

If the switch only operates the conveyor belts in a single direction.

position

The current state of the switch.

Proc Details

attack_hand

Called when a user clicks on this switch with an open hand.

update_linked_conveyors

Updates all conveyor belts that are linked to this switch, and tells them to start processing.

update_linked_switches

Finds any switches with same id as this one, and set their position and icon to match us.

update_position

Updates the switch's position and last_pos variable. Useful so that the switch can properly cycle between the forwards, backwards and neutral positions.

\ No newline at end of file diff --git a/obj/machinery/cryo_cell.html b/obj/machinery/cryo_cell.html new file mode 100644 index 0000000000000..4e14923f1fc59 --- /dev/null +++ b/obj/machinery/cryo_cell.html @@ -0,0 +1,5 @@ +/obj/machinery/cryo_cell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cryo_cell

Cryo cell

Vars

autoejectIf TRUE will eject the mob once healing is complete
beakerThe beaker usually contains cryoxadone that is pumped into the mob
conduction_coefficientWorks with heat capacity and is increased with higher tier parts. How quickly the mobs temperature changes in the chamber
efficiencyIncreased via upgraded parts, higher values will provide better healing and use smaller cryoxodane
heat_capacityOur approximation of a mob's heat capacity. Higher tier parts will provide better cooling for mobs
internal_connectorReference to the datum connector we're using to interface with the pipe network
occupant_visVisual content - Occupant
onCheck if the machine has been turned on
radioInform medical about cryo status over this radio
treating_woundsCryo will continue to treat people with 0 damage but existing wounds, but will sound off when damage healing is done in case doctors want to directly treat the wounds instead

Procs

set_onTurns the machine on/off

Var Details

autoeject

If TRUE will eject the mob once healing is complete

beaker

The beaker usually contains cryoxadone that is pumped into the mob

conduction_coefficient

Works with heat capacity and is increased with higher tier parts. How quickly the mobs temperature changes in the chamber

efficiency

Increased via upgraded parts, higher values will provide better healing and use smaller cryoxodane

heat_capacity

Our approximation of a mob's heat capacity. Higher tier parts will provide better cooling for mobs

internal_connector

Reference to the datum connector we're using to interface with the pipe network

occupant_vis

Visual content - Occupant

on

Check if the machine has been turned on

radio

Inform medical about cryo status over this radio

treating_wounds

Cryo will continue to treat people with 0 damage but existing wounds, but will sound off when damage healing is done in case doctors want to directly treat the wounds instead

Proc Details

set_on

Turns the machine on/off

+

Arguments

+
    +
  • active - TRUE to turn the machine on, FALSE to turn it off
  • +
\ No newline at end of file diff --git a/obj/machinery/cryopod.html b/obj/machinery/cryopod.html new file mode 100644 index 0000000000000..0d9fb90eaa195 --- /dev/null +++ b/obj/machinery/cryopod.html @@ -0,0 +1,3 @@ +/obj/machinery/cryopod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cryopod

Vars

allow_timer_overrideWhether the cryopod respects the minimum time someone has to be disconnected before they can be put into cryo by another player
control_computer_weakrefWeakref to our controller
despawn_world_timeCooldown for when it's now safe to try an despawn the player.
quietif false, plays announcement on cryo
ssd_timeMinimum time for someone to be SSD before another player can cryo them.
stored_ckeyWhat was the ckey of the client that entered the cryopod?
stored_nameThe name of the mob that entered the cryopod.
stored_rankThe rank (job title) of the mob that entered the cryopod, if it was a human. "N/A" by default.
time_till_despawnTime until despawn when a mob enters a cryopod. You cannot other people in pods unless they're catatonic.
tuckedHas the occupant been tucked in?

Procs

despawn_occupantThis function can not be undone; do not call this unless you are sure. +Handles despawning the player.

Var Details

allow_timer_override

Whether the cryopod respects the minimum time someone has to be disconnected before they can be put into cryo by another player

control_computer_weakref

Weakref to our controller

despawn_world_time

Cooldown for when it's now safe to try an despawn the player.

quiet

if false, plays announcement on cryo

ssd_time

Minimum time for someone to be SSD before another player can cryo them.

stored_ckey

What was the ckey of the client that entered the cryopod?

stored_name

The name of the mob that entered the cryopod.

stored_rank

The rank (job title) of the mob that entered the cryopod, if it was a human. "N/A" by default.

time_till_despawn

Time until despawn when a mob enters a cryopod. You cannot other people in pods unless they're catatonic.

tucked

Has the occupant been tucked in?

Proc Details

despawn_occupant

This function can not be undone; do not call this unless you are sure. +Handles despawning the player.

\ No newline at end of file diff --git a/obj/machinery/ctf.html b/obj/machinery/ctf.html new file mode 100644 index 0000000000000..ab7d33f201cd9 --- /dev/null +++ b/obj/machinery/ctf.html @@ -0,0 +1 @@ +/obj/machinery/ctf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ctf

Base CTF machines, if spawned in creates a CTF game with the provided game_id unless one already exists. If one exists associates itself with it.

Vars

ctf_gameReference to the CTF controller that this machine operates under.
game_idThe game ID that this CTF machine is associated with.

Var Details

ctf_game

Reference to the CTF controller that this machine operates under.

game_id

The game ID that this CTF machine is associated with.

\ No newline at end of file diff --git a/obj/machinery/ctf/control_point.html b/obj/machinery/ctf/control_point.html new file mode 100644 index 0000000000000..6b9f0ce6d3075 --- /dev/null +++ b/obj/machinery/ctf/control_point.html @@ -0,0 +1 @@ +/obj/machinery/ctf/control_point - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

control_point

Control point used for CTF for king of the hill or control point game modes. Teams need to maintain control of the point for a set time to win.

Vars

controlling_teamTeam that is currently controlling this point.
point_rateAmount of points generated per second by this control point while captured.

Procs

captureProc called when a player interacts with the control point to handle capturing it. Performs a do after and then verifies what team ther capturer belongs to.

Var Details

controlling_team

Team that is currently controlling this point.

point_rate

Amount of points generated per second by this control point while captured.

Proc Details

capture

Proc called when a player interacts with the control point to handle capturing it. Performs a do after and then verifies what team ther capturer belongs to.

\ No newline at end of file diff --git a/obj/machinery/ctf/spawner.html b/obj/machinery/ctf/spawner.html new file mode 100644 index 0000000000000..16b90346d3cb3 --- /dev/null +++ b/obj/machinery/ctf/spawner.html @@ -0,0 +1 @@ +/obj/machinery/ctf/spawner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spawner

A spawn point for CTF, ghosts can interact with this to vote for CTF or spawn in if a game is running.

Vars

ammo_typeThe powerup dropped when a player spawned by this controller dies.
ctf_gearassoc list for classes. If there's only one, it'll just equip. Otherwise, it lets you pick which outfit!
default_gearVar that holds a copy of ctf_gear so that if instagib mode is enabled (overwritting ctf_gear) it can be reverted with this var.
teamThe team that this spawner is associated with.
team_spanThe span applied to messages associated with this team.

Var Details

ammo_type

The powerup dropped when a player spawned by this controller dies.

ctf_gear

assoc list for classes. If there's only one, it'll just equip. Otherwise, it lets you pick which outfit!

default_gear

Var that holds a copy of ctf_gear so that if instagib mode is enabled (overwritting ctf_gear) it can be reverted with this var.

team

The team that this spawner is associated with.

team_span

The span applied to messages associated with this team.

\ No newline at end of file diff --git a/obj/machinery/debug_component_printer.html b/obj/machinery/debug_component_printer.html new file mode 100644 index 0000000000000..b0ef94b3054eb --- /dev/null +++ b/obj/machinery/debug_component_printer.html @@ -0,0 +1 @@ +/obj/machinery/debug_component_printer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

debug_component_printer

Vars

all_circuit_designsAll of the possible circuit designs stored by this debug printer

Var Details

all_circuit_designs

All of the possible circuit designs stored by this debug printer

\ No newline at end of file diff --git a/obj/machinery/deepfryer.html b/obj/machinery/deepfryer.html new file mode 100644 index 0000000000000..a7e8a58654651 --- /dev/null +++ b/obj/machinery/deepfryer.html @@ -0,0 +1 @@ +/obj/machinery/deepfryer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

deepfryer

Vars

cook_timeHow long the current object has been cooking for
deepfry_blacklisted_itemsStatic typecache of things we can't fry.
fry_loopOur sound loop for the frying sounde effect.
fry_speedHow quickly we fry food - modifier applied per process tick
fryingWhat's being fried RIGHT NOW?
frying_burntHas our currently frying object been burnt?
frying_friedHas our currently frying object been fried?
grease_Increase_amountThe amount of grease_level increase on process()
grease_increase_chanceThe chance (%) of grease_level increase on process()
grease_levelHow dirty the fryer is - show overlay at 1
oil_useHow much cooking oil is used per process

Var Details

cook_time

How long the current object has been cooking for

deepfry_blacklisted_items

Static typecache of things we can't fry.

fry_loop

Our sound loop for the frying sounde effect.

fry_speed

How quickly we fry food - modifier applied per process tick

frying

What's being fried RIGHT NOW?

frying_burnt

Has our currently frying object been burnt?

frying_fried

Has our currently frying object been fried?

grease_Increase_amount

The amount of grease_level increase on process()

grease_increase_chance

The chance (%) of grease_level increase on process()

grease_level

How dirty the fryer is - show overlay at 1

oil_use

How much cooking oil is used per process

\ No newline at end of file diff --git a/obj/machinery/defibrillator_mount.html b/obj/machinery/defibrillator_mount.html new file mode 100644 index 0000000000000..293eed19e6dee --- /dev/null +++ b/obj/machinery/defibrillator_mount.html @@ -0,0 +1 @@ +/obj/machinery/defibrillator_mount - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

defibrillator_mount

Vars

clamps_lockedif true, and a defib is loaded, it can't be removed without unlocking the clamps
defibThe mount's defib
wallframe_typethe type of wallframe it 'disassembles' into

Var Details

clamps_locked

if true, and a defib is loaded, it can't be removed without unlocking the clamps

defib

The mount's defib

wallframe_type

the type of wallframe it 'disassembles' into

\ No newline at end of file diff --git a/obj/machinery/deployable_turret.html b/obj/machinery/deployable_turret.html new file mode 100644 index 0000000000000..c111cceb4667d --- /dev/null +++ b/obj/machinery/deployable_turret.html @@ -0,0 +1 @@ +/obj/machinery/deployable_turret - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

deployable_turret

DEPLOYABLE TURRET (FORMERLY MANNED TURRET)

Vars

always_anchoredIf TRUE, the turret will not become unanchored when not mounted
can_be_undeployedIf using a wrench on the turret will start undeploying it
cooldown_durationHow long it takes for the gun to allow firing after a burst
firesoundSound to play when firing
number_of_shotsNumber of shots fired from one click
overheatsoundSound to play at the end of a burst
projectile_typeThe projectile that the turret fires
rate_of_fireDelay between shots in a burst
spawned_on_undeployWhat gets spawned if the object is undeployed
undeploy_timeHow long it takes for a wrench user to undeploy the object

Procs

wrench_actUndeploying, for when you want to move your big dakka around

Var Details

always_anchored

If TRUE, the turret will not become unanchored when not mounted

can_be_undeployed

If using a wrench on the turret will start undeploying it

cooldown_duration

How long it takes for the gun to allow firing after a burst

firesound

Sound to play when firing

number_of_shots

Number of shots fired from one click

overheatsound

Sound to play at the end of a burst

projectile_type

The projectile that the turret fires

rate_of_fire

Delay between shots in a burst

spawned_on_undeploy

What gets spawned if the object is undeployed

undeploy_time

How long it takes for a wrench user to undeploy the object

Proc Details

wrench_act

Undeploying, for when you want to move your big dakka around

\ No newline at end of file diff --git a/obj/machinery/destructive_scanner.html b/obj/machinery/destructive_scanner.html new file mode 100644 index 0000000000000..63ae7b41ac7c1 --- /dev/null +++ b/obj/machinery/destructive_scanner.html @@ -0,0 +1 @@ +/obj/machinery/destructive_scanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

Destructive scanner

Placed machine that handles destructive experiments (but can also do the normal ones)

Procs

activateActivates the machine; checks if it can actually scan, then starts.
finish_scanningPerforms the actual scan, happens once the tube effects are done
openOpens the machine to let out any contents. If the scan had mobs it'll gib them.
start_closingCloses the machine to kidnap everything in the turf into it.
start_scanningStarts scanning the fancy scanning effects

Proc Details

activate

Activates the machine; checks if it can actually scan, then starts.

finish_scanning

Performs the actual scan, happens once the tube effects are done

open

Opens the machine to let out any contents. If the scan had mobs it'll gib them.

start_closing

Closes the machine to kidnap everything in the turf into it.

start_scanning

Starts scanning the fancy scanning effects

\ No newline at end of file diff --git a/obj/machinery/dish_drive.html b/obj/machinery/dish_drive.html new file mode 100644 index 0000000000000..3cea9aa10a1e7 --- /dev/null +++ b/obj/machinery/dish_drive.html @@ -0,0 +1 @@ +/obj/machinery/dish_drive - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dish_drive

Vars

collectable_itemsList of dishes the drive can hold
dish_drive_contentsList of dishes currently inside
disposable_itemsList of items the drive detects as trash
suck_distanceDistance this is capable of sucking dishes up over. (2 + servo tier)
suction_enabledCan this suck up dishes?
transmit_enabledDoes this automatically dispose of trash?

Var Details

collectable_items

List of dishes the drive can hold

dish_drive_contents

List of dishes currently inside

disposable_items

List of items the drive detects as trash

suck_distance

Distance this is capable of sucking dishes up over. (2 + servo tier)

suction_enabled

Can this suck up dishes?

transmit_enabled

Does this automatically dispose of trash?

\ No newline at end of file diff --git a/obj/machinery/disposal.html b/obj/machinery/disposal.html new file mode 100644 index 0000000000000..03322b0d1245d --- /dev/null +++ b/obj/machinery/disposal.html @@ -0,0 +1 @@ +/obj/machinery/disposal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

disposal

Vars

air_contentsThe internal air reservoir of the disposal
flush_countThis var adds 1 once per tick. When it reaches flush_every_ticks it resets and tries to flush.
flush_every_ticksEvery 30 ticks it will look whether it is ready to flush
flushingTrue if flushing in progress
full_pressureIs the disposal at full pressure
last_soundThe last time a sound was played
pressure_chargingIs the pressure charging
storedThe stored disposal construction pipe
trunkThe attached pipe trunk

Procs

attempt_escapeChecks if a mob can climb out of the disposal, and lets them if they can
ejectEjects the contents of the disposal unit
expelCalled when holder is expelled from a disposal
flushPlays the animations and sounds for flushing, and initializes the diposal holder object
flushAnimationPlays the flushing animation of the disposal
go_outMakes a mob in the disposal climb out
mouse_drop_receiveMouse drop another mob or self
newHolderDestinationSets the default destinationTag of the disposal holder object
on_rat_rummageHandles the signal for the rat king looking inside the disposal
on_storage_dumpHow disposal handles getting a storage dump from a storage object
place_item_in_disposalMoves an item into the diposal bin
rat_rummageThe regal rat spawns ratty treasures from the disposal
ready_for_trashCalled when a push broom is trying to sweep items onto the turf this object is standing on. Garbage will be moved inside.
stuff_mob_inHandles stuffing a grabbed mob into the disposal
trash_livingHandles a carbon mob getting shoved into the disposal bin
trunk_checkChecks if there a connecting trunk diposal pipe under the disposal

Var Details

air_contents

The internal air reservoir of the disposal

flush_count

This var adds 1 once per tick. When it reaches flush_every_ticks it resets and tries to flush.

flush_every_ticks

Every 30 ticks it will look whether it is ready to flush

flushing

True if flushing in progress

full_pressure

Is the disposal at full pressure

last_sound

The last time a sound was played

pressure_charging

Is the pressure charging

stored

The stored disposal construction pipe

trunk

The attached pipe trunk

Proc Details

attempt_escape

Checks if a mob can climb out of the disposal, and lets them if they can

eject

Ejects the contents of the disposal unit

expel

Called when holder is expelled from a disposal

flush

Plays the animations and sounds for flushing, and initializes the diposal holder object

flushAnimation

Plays the flushing animation of the disposal

go_out

Makes a mob in the disposal climb out

mouse_drop_receive

Mouse drop another mob or self

newHolderDestination

Sets the default destinationTag of the disposal holder object

on_rat_rummage

Handles the signal for the rat king looking inside the disposal

on_storage_dump

How disposal handles getting a storage dump from a storage object

place_item_in_disposal

Moves an item into the diposal bin

rat_rummage

The regal rat spawns ratty treasures from the disposal

ready_for_trash

Called when a push broom is trying to sweep items onto the turf this object is standing on. Garbage will be moved inside.

stuff_mob_in

Handles stuffing a grabbed mob into the disposal

trash_living

Handles a carbon mob getting shoved into the disposal bin

trunk_check

Checks if there a connecting trunk diposal pipe under the disposal

\ No newline at end of file diff --git a/obj/machinery/disposal/bin.html b/obj/machinery/disposal/bin.html new file mode 100644 index 0000000000000..16b34559f6941 --- /dev/null +++ b/obj/machinery/disposal/bin.html @@ -0,0 +1 @@ +/obj/machinery/disposal/bin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bin

Vars

mounted_taggerReference to the mounted destination tagger for disposal bins with one mounted.

Procs

do_flushInitiates flushing

Var Details

mounted_tagger

Reference to the mounted destination tagger for disposal bins with one mounted.

Proc Details

do_flush

Initiates flushing

\ No newline at end of file diff --git a/obj/machinery/dna_infuser.html b/obj/machinery/dna_infuser.html new file mode 100644 index 0000000000000..6f77f482a1d4f --- /dev/null +++ b/obj/machinery/dna_infuser.html @@ -0,0 +1 @@ +/obj/machinery/dna_infuser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dna_infuser

Vars

infusingcurrently infusing a vict- subject
infusing_fromwhat we're infusing with
infusing_intowhat we're turning into
max_tier_allowedmaximum tier this will infuse
message_cooldowna message for relaying that the machine is locked if someone tries to leave while it's active

Procs

check_tier_progressionchecks to see if the machine should progress a new tier.
is_valid_infusionVerify that the given infusion source/mob is a dead creature.

Var Details

infusing

currently infusing a vict- subject

infusing_from

what we're infusing with

infusing_into

what we're turning into

max_tier_allowed

maximum tier this will infuse

message_cooldown

a message for relaying that the machine is locked if someone tries to leave while it's active

Proc Details

check_tier_progression

checks to see if the machine should progress a new tier.

is_valid_infusion

Verify that the given infusion source/mob is a dead creature.

\ No newline at end of file diff --git a/obj/machinery/door.html b/obj/machinery/door.html new file mode 100644 index 0000000000000..0920a0cf18c81 --- /dev/null +++ b/obj/machinery/door.html @@ -0,0 +1,36 @@ +/obj/machinery/door - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

door

Vars

animationThe animation we're currently playing, if any
autoclosedoes it automatically close after some time
can_crushWhether or not the door can crush mobs.
can_open_with_handsWhether or not the door can be opened by hand (used for blast doors and shutters)
elevator_modeSpecial operating mode for elevator doors
elevator_statusCurrent elevator status for processing
emergencyEmergency access override
fillerA filler object used to fill the space of multi-tile airlocks
heat_proofFor rglass-windowed airlocks and firedoors
lockedwhether the door is bolted or not.
multi_tileDo we need to keep track of a filler panel with the airlock
opens_with_door_remoteWhether or not this door can be opened through a door remote, ever
real_explosion_blockignore this, just use explosion_block
red_alert_accessif TRUE, this door will always open on red alert
safewhether the door detects things and mobs in its way and reopen or crushes them.
sub_doortrue if it's meant to go under another door.
transport_linked_idWhat specific lift ID do we link with?
unres_sensorChecks to see if this airlock has an unrestricted "sensor" within (will set to TRUE if present).
unres_sidesUnrestricted sides. A bitflag for which direction (if any) can open the door with no access

Procs

animation_effectsOverride this to do misc tasks on animation start
animation_lengthReturns the delay to use for the passed in animation +We'll do our cleanup once the delay runs out
animation_segment_delayReturns the time required to hit particular points in an animation +Used to manage delays for opening/closing and such
check_security_levelSignal handler for checking if we notify our surrounding that access requirements are lifted accordingly to a newly set security level
closePublic proc that simply handles closing the door. Returns TRUE if the door was closed, FALSE otherwise. +Use argument "forced" in conjuction with try_to_force_door_shut if you want/need additional checks depending on how sorely you need the door closed.
get_adjusted_dirChecks which way the airlock is facing and adjusts the direction accordingly. +For use with multi-tile airlocks.
on_magic_unlockSignal proc for COMSIG_ATOM_MAGICALLY_UNLOCKED. Open up when someone casts knock.
openPublic proc that simply handles opening the door. Returns TRUE if the door was opened, FALSE otherwise. +Use argument "forced" in conjunction with try_to_force_door_open if you want/need additional checks depending on how sorely you need the door opened.
run_animationUsed to start a new animation +Accepts the animation to start as an arg
set_fillerSets the bounds of the airlock. For use with multi-tile airlocks. +If the airlock is multi-tile, it will set the bounds to be the size of the airlock. +If the airlock doesn't already have a filler object, it will create one. +If the airlock already has a filler object, it will move it to the correct location.
try_remove_sealCalled when attempting to remove the seal from an airlock
try_to_crowbar_secondaryCalled when the user right-clicks on the door with a crowbar.
try_to_force_door_openPrivate proc that runs a series of checks to see if we should forcibly open the door. Returns TRUE if we should open the door, FALSE otherwise. Implemented in child types. +In case a specific behavior isn't covered, we should default to TRUE just to be safe (simply put, this proc should have an explicit reason to return FALSE).
try_to_force_door_shutPrivate proc that runs a series of checks to see if we should forcibly shut the door. Returns TRUE if we should shut the door, FALSE otherwise. Implemented in child types. +In case a specific behavior isn't covered, we should default to TRUE just to be safe (simply put, this proc should have an explicit reason to return FALSE).
try_to_weld_secondaryCalled when the user right-clicks on the door with a welding tool.

Var Details

animation

The animation we're currently playing, if any

autoclose

does it automatically close after some time

can_crush

Whether or not the door can crush mobs.

can_open_with_hands

Whether or not the door can be opened by hand (used for blast doors and shutters)

elevator_mode

Special operating mode for elevator doors

elevator_status

Current elevator status for processing

emergency

Emergency access override

filler

A filler object used to fill the space of multi-tile airlocks

heat_proof

For rglass-windowed airlocks and firedoors

locked

whether the door is bolted or not.

multi_tile

Do we need to keep track of a filler panel with the airlock

opens_with_door_remote

Whether or not this door can be opened through a door remote, ever

real_explosion_block

ignore this, just use explosion_block

red_alert_access

if TRUE, this door will always open on red alert

safe

whether the door detects things and mobs in its way and reopen or crushes them.

sub_door

true if it's meant to go under another door.

transport_linked_id

What specific lift ID do we link with?

unres_sensor

Checks to see if this airlock has an unrestricted "sensor" within (will set to TRUE if present).

unres_sides

Unrestricted sides. A bitflag for which direction (if any) can open the door with no access

Proc Details

animation_effects

Override this to do misc tasks on animation start

animation_length

Returns the delay to use for the passed in animation +We'll do our cleanup once the delay runs out

animation_segment_delay

Returns the time required to hit particular points in an animation +Used to manage delays for opening/closing and such

check_security_level

Signal handler for checking if we notify our surrounding that access requirements are lifted accordingly to a newly set security level

+

Arguments:

+
    +
  • source The datum source of the signal
  • +
  • new_level The new security level that is in effect
  • +

close

Public proc that simply handles closing the door. Returns TRUE if the door was closed, FALSE otherwise. +Use argument "forced" in conjuction with try_to_force_door_shut if you want/need additional checks depending on how sorely you need the door closed.

get_adjusted_dir

Checks which way the airlock is facing and adjusts the direction accordingly. +For use with multi-tile airlocks.

+

@param dir direction to adjust +@return adjusted direction

on_magic_unlock

Signal proc for COMSIG_ATOM_MAGICALLY_UNLOCKED. Open up when someone casts knock.

open

Public proc that simply handles opening the door. Returns TRUE if the door was opened, FALSE otherwise. +Use argument "forced" in conjunction with try_to_force_door_open if you want/need additional checks depending on how sorely you need the door opened.

run_animation

Used to start a new animation +Accepts the animation to start as an arg

set_filler

Sets the bounds of the airlock. For use with multi-tile airlocks. +If the airlock is multi-tile, it will set the bounds to be the size of the airlock. +If the airlock doesn't already have a filler object, it will create one. +If the airlock already has a filler object, it will move it to the correct location.

try_remove_seal

Called when attempting to remove the seal from an airlock

+

Here because we need to call it and return if there was a seal so we don't try to open the door +or try its safety lock while it's sealed +Arguments:

+
    +
  • user - the mob attempting to remove the seal
  • +

try_to_crowbar_secondary

Called when the user right-clicks on the door with a crowbar.

try_to_force_door_open

Private proc that runs a series of checks to see if we should forcibly open the door. Returns TRUE if we should open the door, FALSE otherwise. Implemented in child types. +In case a specific behavior isn't covered, we should default to TRUE just to be safe (simply put, this proc should have an explicit reason to return FALSE).

try_to_force_door_shut

Private proc that runs a series of checks to see if we should forcibly shut the door. Returns TRUE if we should shut the door, FALSE otherwise. Implemented in child types. +In case a specific behavior isn't covered, we should default to TRUE just to be safe (simply put, this proc should have an explicit reason to return FALSE).

try_to_weld_secondary

Called when the user right-clicks on the door with a welding tool.

\ No newline at end of file diff --git a/obj/machinery/door/airlock.html b/obj/machinery/door/airlock.html new file mode 100644 index 0000000000000..2d12ce9c3f124 --- /dev/null +++ b/obj/machinery/door/airlock.html @@ -0,0 +1,41 @@ +/obj/machinery/door/airlock - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

airlock

Vars

aiControlDisabledIf 1, AI control is disabled until the AI hacks back in and disables the lock. If 2, the AI has bypassed the lock. If -1, the control is enabled but the AI had bypassed it earlier, so if it is disabled again the AI would have no trouble getting back in.
air_tightTRUE means density will be set as soon as the door begins to close
airlock_materialMaterial of inner filling; if its an airlock with glass, this should be set to "glass"
airlock_stateThe current state of the airlock, used to construct the airlock overlays
assemblytypeThe type of door frame to drop during deconstruction
backup_power_timePaired with backup_power_timer. Records its remaining time when something happens to interrupt power regen
backup_power_timerTimer id, active when we are actively waiting for the backup power to be restored
closeOtherIdCyclelinking for airlocks that aren't on the same x or y coord as the target.
cycle_pumpAirlock pump that overrides airlock controlls when set up for cycling
delayed_close_requestedTRUE means the door will automatically close the next time it's opened.
door_areaArea the door is located in
engineering_overrideDetermines if engineers get access to this door on orange alert
externalIs this door external? E.g. does it lead to space? Shuttle docking systems bolt doors with this flag.
fill_state_suffixFor those airlocks you might want to have varying "fillings" for, without having to +have an icon file per door with a different filling.
fire_activeIf there is an active fire alarm in the door's area
greyscale_accent_colorFor the airlocks that use a greyscale accent door color, set this color to the accent color you want it to be.
hackProofIf true, this door can't be hacked by the AI
has_environment_lightsDoes this airlock emit a light?
lightsBolt lights show by default
main_power_timePaired with main_power_timer. Records its remaining time when something happens to interrupt power regen
main_power_timerTimer id, active when we are actively waiting for the main power to be restored
normalspeedControls if the door closes quickly or not. FALSE = the door autocloses in 1.5 seconds, TRUE = 8 seconds - see autoclose_in()
noteAny papers pinned to the airlock
note_overlay_fileUsed for papers and photos pinned to the airlock
previous_airlockWhat airlock assembly mineral plating was applied to
requestersList of ai door requesters
sealThe seal on the airlock
secondsElectrifiedHow many seconds remain until the door is no longer electrified. -1/MACHINE_ELECTRIFIED_PERMANENT = permanently electrified until someone fixes it.
security_levelHow much are wires secured
shockedbyLogging for door electrification.

Procs

allowedCheck for the three states of open access. Emergency, Unrestricted, and Engineering Override
beforeShuttleMoveTurf move procs
check_hackingPerforms basic checks to make sure we are still able to hack an airlock. If control is restored early through outside means, opens the airlock's control interface.
check_security_levelWhen the signal is received of a changed security level, check if it's orange.
finish_emag_actTimer proc, called ~0.6 seconds after [emag_act]. Finishes the emag sequence by breaking the airlock, permanently locking it, and disabling power.
get_note_stateReturns a string representing the type of note pinned to this airlock +Arguments:
get_wiresGenerates the airlock's wire layout based on the current area the airlock resides in.
hackAttemps to override airlocks that have the AI control wire disabled.
handle_backup_powerCall to update our backup power outage timer +Will trigger a proper timer if we're actively restoring power, if not we'll dump the remaining time in a var on the airlock
handle_main_powerCall to update our main power outage timer +Will trigger a proper timer if we're actively restoring power, if not we'll dump the remaining time in a var on the airlock
power_wires_changedIf our power wires have changed, then our backup/main power regen may have failed, so let's just check in yeah?
remaining_backup_outageReturns the amount of time we have to wait before backup power comes back +Assuming it was actively regenerating +Returns 0 if it is active
remaining_main_outageReturns the amount of time we have to wait before main power comes back +Assuming it was actively regenerating +Returns 0 if it is active
secure_closeForces the airlock to close and bolt
secure_openForces the airlock to unbolt and open
set_emergency_exitSet the airlock's emergency exit status arg: active TRUE/FALSE
should_try_removing_electronicsReturns if a crowbar would remove the airlock electronics
temp_emergency_exitMake the airlock unrestricted as a temporary emergency exit.
try_remove_sealUsed when attempting to remove a seal from an airlock
try_to_force_door_openAdditional checks depending on what we want to happen to door (should we try and open it normally, or do we want this open at all costs?)
update_fire_statusChange the airlock's fire_active status, triggered by COMSIG_AREA_FIRE_CHANGED +Activates fire status overlay and increases door speed.

Var Details

aiControlDisabled

If 1, AI control is disabled until the AI hacks back in and disables the lock. If 2, the AI has bypassed the lock. If -1, the control is enabled but the AI had bypassed it earlier, so if it is disabled again the AI would have no trouble getting back in.

air_tight

TRUE means density will be set as soon as the door begins to close

airlock_material

Material of inner filling; if its an airlock with glass, this should be set to "glass"

airlock_state

The current state of the airlock, used to construct the airlock overlays

assemblytype

The type of door frame to drop during deconstruction

backup_power_time

Paired with backup_power_timer. Records its remaining time when something happens to interrupt power regen

backup_power_timer

Timer id, active when we are actively waiting for the backup power to be restored

closeOtherId

Cyclelinking for airlocks that aren't on the same x or y coord as the target.

cycle_pump

Airlock pump that overrides airlock controlls when set up for cycling

delayed_close_requested

TRUE means the door will automatically close the next time it's opened.

door_area

Area the door is located in

engineering_override

Determines if engineers get access to this door on orange alert

external

Is this door external? E.g. does it lead to space? Shuttle docking systems bolt doors with this flag.

fill_state_suffix

For those airlocks you might want to have varying "fillings" for, without having to +have an icon file per door with a different filling.

fire_active

If there is an active fire alarm in the door's area

greyscale_accent_color

For the airlocks that use a greyscale accent door color, set this color to the accent color you want it to be.

hackProof

If true, this door can't be hacked by the AI

has_environment_lights

Does this airlock emit a light?

lights

Bolt lights show by default

main_power_time

Paired with main_power_timer. Records its remaining time when something happens to interrupt power regen

main_power_timer

Timer id, active when we are actively waiting for the main power to be restored

normalspeed

Controls if the door closes quickly or not. FALSE = the door autocloses in 1.5 seconds, TRUE = 8 seconds - see autoclose_in()

note

Any papers pinned to the airlock

note_overlay_file

Used for papers and photos pinned to the airlock

previous_airlock

What airlock assembly mineral plating was applied to

requesters

List of ai door requesters

seal

The seal on the airlock

secondsElectrified

How many seconds remain until the door is no longer electrified. -1/MACHINE_ELECTRIFIED_PERMANENT = permanently electrified until someone fixes it.

security_level

How much are wires secured

shockedby

Logging for door electrification.

Proc Details

allowed

Check for the three states of open access. Emergency, Unrestricted, and Engineering Override

beforeShuttleMove

Turf move procs

+

Area move procs

+

Machinery move procs

check_hacking

Performs basic checks to make sure we are still able to hack an airlock. If control is restored early through outside means, opens the airlock's control interface.

check_security_level

When the signal is received of a changed security level, check if it's orange.

finish_emag_act

Timer proc, called ~0.6 seconds after [emag_act]. Finishes the emag sequence by breaking the airlock, permanently locking it, and disabling power.

get_note_state

Returns a string representing the type of note pinned to this airlock +Arguments:

+
    +
  • frame_state - The AIRLOCK_FRAME_ value, as used in update_overlays()
  • +

get_wires

Generates the airlock's wire layout based on the current area the airlock resides in.

+

Returns a new /datum/wires/ with the appropriate wire layout based on the airlock_wires +of the area the airlock is in.

hack

Attemps to override airlocks that have the AI control wire disabled.

handle_backup_power

Call to update our backup power outage timer +Will trigger a proper timer if we're actively restoring power, if not we'll dump the remaining time in a var on the airlock

handle_main_power

Call to update our main power outage timer +Will trigger a proper timer if we're actively restoring power, if not we'll dump the remaining time in a var on the airlock

power_wires_changed

If our power wires have changed, then our backup/main power regen may have failed, so let's just check in yeah?

remaining_backup_outage

Returns the amount of time we have to wait before backup power comes back +Assuming it was actively regenerating +Returns 0 if it is active

remaining_main_outage

Returns the amount of time we have to wait before main power comes back +Assuming it was actively regenerating +Returns 0 if it is active

secure_close

Forces the airlock to close and bolt

secure_open

Forces the airlock to unbolt and open

set_emergency_exit

Set the airlock's emergency exit status arg: active TRUE/FALSE

should_try_removing_electronics

Returns if a crowbar would remove the airlock electronics

temp_emergency_exit

Make the airlock unrestricted as a temporary emergency exit.

+

Arguments:

+
    +
  • duration - How long the door will operate as an emergency exit before reverting to normal operation
  • +

try_remove_seal

Used when attempting to remove a seal from an airlock

+

Called when attacking an airlock with an empty hand, returns TRUE (there was a seal and we removed it, or failed to remove it) +or FALSE (there was no seal) +Arguments:

+
    +
  • user - Whoever is attempting to remove the seal
  • +

try_to_force_door_open

Additional checks depending on what we want to happen to door (should we try and open it normally, or do we want this open at all costs?)

update_fire_status

Change the airlock's fire_active status, triggered by COMSIG_AREA_FIRE_CHANGED +Activates fire status overlay and increases door speed.

+

Arguments:

+
    +
  • source - The /area with changed fire status
  • +
  • fire - the new fire status (TRUE/FALSE)
  • +
\ No newline at end of file diff --git a/obj/machinery/door/airlock/external.html b/obj/machinery/door/airlock/external.html new file mode 100644 index 0000000000000..e66e0f5d220be --- /dev/null +++ b/obj/machinery/door/airlock/external.html @@ -0,0 +1 @@ +/obj/machinery/door/airlock/external - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

external

Vars

space_dirWhether or not the airlock can be opened without access from a certain direction while powered, or with bare hands from any direction while unpowered OR pressurized.

Var Details

space_dir

Whether or not the airlock can be opened without access from a certain direction while powered, or with bare hands from any direction while unpowered OR pressurized.

\ No newline at end of file diff --git a/obj/machinery/door/airlock/keyed.html b/obj/machinery/door/airlock/keyed.html new file mode 100644 index 0000000000000..f8f91c47ac874 --- /dev/null +++ b/obj/machinery/door/airlock/keyed.html @@ -0,0 +1,8 @@ +/obj/machinery/door/airlock/keyed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

keyed

The doors and Keys need to match when being built, demo variants are found below +along with the requirements for use. Make sure the access_id matches the door or it won't work.

Vars

access_idThe access ID of the airlock. Needs to match the variable of the +same name from a /obj/item/key_card in order to be opened, unless it's null, +in which case it will open no matter what.
doorDeniGiven the case of this being used, let's not let door spam be a thing.
respects_master_accessCan it be opened with a master keycard? Set this to false if you plan to use +it for something that's meant to have only one unique key.

Var Details

access_id

The access ID of the airlock. Needs to match the variable of the +same name from a /obj/item/key_card in order to be opened, unless it's null, +in which case it will open no matter what.

doorDeni

Given the case of this being used, let's not let door spam be a thing.

respects_master_access

Can it be opened with a master keycard? Set this to false if you plan to use +it for something that's meant to have only one unique key.

\ No newline at end of file diff --git a/obj/machinery/door/airlock/keyed/hotel_room.html b/obj/machinery/door/airlock/keyed/hotel_room.html new file mode 100644 index 0000000000000..d25a168b661d6 --- /dev/null +++ b/obj/machinery/door/airlock/keyed/hotel_room.html @@ -0,0 +1,3 @@ +/obj/machinery/door/airlock/keyed/hotel_room - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hotel_room

Vars

room_numberThe number of the room, so that it gets automatically handled by the code everywhere +it's relevant.

Var Details

room_number

The number of the room, so that it gets automatically handled by the code everywhere +it's relevant.

\ No newline at end of file diff --git a/obj/machinery/door/airlock/tram.html b/obj/machinery/door/airlock/tram.html new file mode 100644 index 0000000000000..0d19ada55b3a0 --- /dev/null +++ b/obj/machinery/door/airlock/tram.html @@ -0,0 +1,11 @@ +/obj/machinery/door/airlock/tram - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tram

Vars

transport_refWeakref to the tram we're attached

Procs

bumpopenIf you pry (bump) the doors open midtravel, open quickly so you can jump out and make a daring escape.
crushCrush the jerk holding up the tram from moving
examineTram doors can be opened with hands when unpowered
find_tramSet the weakref for the tram we're attached to
try_safety_unlockTram doors can be opened with hands when unpowered
try_to_closePerform a close attempt and report TRUE/FALSE if it worked
verify_statusChecks if the door close action was successful. Retries if it failed

Var Details

transport_ref

Weakref to the tram we're attached

Proc Details

bumpopen

If you pry (bump) the doors open midtravel, open quickly so you can jump out and make a daring escape.

crush

Crush the jerk holding up the tram from moving

+

Tram doors need their own crush proc because the normal one +leaves you stunned far too long, leading to the doors crushing +you over and over, no escape!

+

While funny to watch, not ideal for the player.

examine

Tram doors can be opened with hands when unpowered

find_tram

Set the weakref for the tram we're attached to

try_safety_unlock

Tram doors can be opened with hands when unpowered

try_to_close

Perform a close attempt and report TRUE/FALSE if it worked

+

Arguments:

+
    +
  • rapid - boolean: if TRUE will skip safety checks and crush whatever is in the way
  • +

verify_status

Checks if the door close action was successful. Retries if it failed

+

If some jerk is blocking the doors, they've had enough warning by attempt 3, +take a chunk of skin, people have places to be!

\ No newline at end of file diff --git a/obj/machinery/door/airlock/vault/derelict.html b/obj/machinery/door/airlock/vault/derelict.html new file mode 100644 index 0000000000000..ab9257c1303ff --- /dev/null +++ b/obj/machinery/door/airlock/vault/derelict.html @@ -0,0 +1 @@ +/obj/machinery/door/airlock/vault/derelict - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

derelict

Airlock that can't be deconstructed, broken or hacked.

Procs

attackbyOverrides screwdriver attack to prevent all deconstruction and hacking.

Proc Details

attackby

Overrides screwdriver attack to prevent all deconstruction and hacking.

\ No newline at end of file diff --git a/obj/machinery/door/firedoor.html b/obj/machinery/door/firedoor.html new file mode 100644 index 0000000000000..c42f104162b0f --- /dev/null +++ b/obj/machinery/door/firedoor.html @@ -0,0 +1,25 @@ +/obj/machinery/door/firedoor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

firedoor

Vars

activeIs this firelock active/closed?
affecting_areasList of areas we handle. See CalculateAffectingAreas()
alarm_typeType of alarm we're under. See code/defines/firealarm.dm for the list. This var being null means there is no alarm.
assemblytypeThe type of door frame to drop during deconstruction
being_held_openTracks if the firelock is being held open by a crowbar. If so, we don't close until they walk away
ignore_alarmsShould the firelock ignore atmosphere when choosing to stay open/closed?
is_playing_alarmKeeps track of if we're playing the alarm sound loop (as only one firelock per group should be). Used during power changes.
issue_turfsList of problem turfs with bad temperature
light_xoffsetX offset for the overlay lights, so that they line up with the thin border firelocks
light_yoffsetY offset for the overlay lights, so that they line up with the thin border firelocks
merger_idThe merger_id and merger_typecache variables are used to make rows of firelocks activate at the same time.
my_areaFor the few times we affect only the area we're actually in. Set during Init. If we get moved, we don't update, but this is consistant with fire alarms and also kinda funny so call it intentional.
soundlooplooping sound datum for our fire alarm siren.
warn_lightsOverlay object for the warning lights. This and some plane settings allows the lights to glow in the dark.

Procs

CalculateAffectingAreasCalculates what areas we should worry about.
activateProc that handles activation of the firelock and all this details
add_as_sourceAdds this fire door as a source of trouble to all of its areas
adjust_lights_starting_offsetSets the offset for the warning lights.
correct_stateCorrects the current state of the door, based on its activity.
crack_openOpen the firedoor without resetting existing alarms
release_constraintsReset our temporary alarm ignoring +Consider if we should close ourselves/our neighbors or not
remove_as_sourceRemoves this firedoor from all areas it's serving as a source of problems for
resetProc that handles reset steps
start_activation_processBegins activation process of us and our neighbors.
start_deactivation_processBegins deactivation process of us and our neighbors.
try_to_crowbarWe check for adjacency when using the primary attack.
try_to_crowbar_secondaryA simple toggle for firedoors between on and off

Var Details

active

Is this firelock active/closed?

affecting_areas

List of areas we handle. See CalculateAffectingAreas()

alarm_type

Type of alarm we're under. See code/defines/firealarm.dm for the list. This var being null means there is no alarm.

assemblytype

The type of door frame to drop during deconstruction

being_held_open

Tracks if the firelock is being held open by a crowbar. If so, we don't close until they walk away

ignore_alarms

Should the firelock ignore atmosphere when choosing to stay open/closed?

is_playing_alarm

Keeps track of if we're playing the alarm sound loop (as only one firelock per group should be). Used during power changes.

issue_turfs

List of problem turfs with bad temperature

light_xoffset

X offset for the overlay lights, so that they line up with the thin border firelocks

light_yoffset

Y offset for the overlay lights, so that they line up with the thin border firelocks

merger_id

The merger_id and merger_typecache variables are used to make rows of firelocks activate at the same time.

my_area

For the few times we affect only the area we're actually in. Set during Init. If we get moved, we don't update, but this is consistant with fire alarms and also kinda funny so call it intentional.

soundloop

looping sound datum for our fire alarm siren.

warn_lights

Overlay object for the warning lights. This and some plane settings allows the lights to glow in the dark.

Proc Details

CalculateAffectingAreas

Calculates what areas we should worry about.

+

This proc builds a list of areas we are in and areas we border +and writes it to affecting_areas.

activate

Proc that handles activation of the firelock and all this details

+

Sets active and alarm type to properly represent our state. +Also calls set_status() on all fire alarms in all affected areas, tells +the area the firelock sits in to report the event (AI, alarm consoles, etc) +and finally calls correct_state(), which will handle opening or closing +this fire lock.

add_as_source

Adds this fire door as a source of trouble to all of its areas

adjust_lights_starting_offset

Sets the offset for the warning lights.

+

Used for special firelocks with light overlays that don't line up to their sprite.

correct_state

Corrects the current state of the door, based on its activity.

+

This proc is called after weld and power restore events. Gives the +illusion that the door is constantly attempting to move without actually +having to process it. Timers also call this, so that if activity +changes during the timer, the door doesn't close or open incorrectly.

crack_open

Open the firedoor without resetting existing alarms

+
    +
  • delay - Reconsider if this door should be open or closed after some period
  • +

release_constraints

Reset our temporary alarm ignoring +Consider if we should close ourselves/our neighbors or not

remove_as_source

Removes this firedoor from all areas it's serving as a source of problems for

reset

Proc that handles reset steps

+

Clears the alarm state and attempts to open the firelock.

start_activation_process

Begins activation process of us and our neighbors.

+

This proc will call activate() on every fire lock (including us) listed +in the merge group datum. Returns without doing anything if we're already active, cause of course

+

Arguments: +code should be one of three defined alarm types, or can be not supplied. Will dictate the color of the fire alarm lights, and defaults to "firelock_alarm_type_generic"

start_deactivation_process

Begins deactivation process of us and our neighbors.

+

This proc will call reset() on every fire lock (including us) listed +in the merge group datum. sets our alarm type to null, signifying no alarm.

try_to_crowbar

We check for adjacency when using the primary attack.

try_to_crowbar_secondary

A simple toggle for firedoors between on and off

\ No newline at end of file diff --git a/obj/machinery/door/password.html b/obj/machinery/door/password.html new file mode 100644 index 0000000000000..76a9ca7683ce8 --- /dev/null +++ b/obj/machinery/door/password.html @@ -0,0 +1 @@ +/obj/machinery/door/password - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

password

Vars

door_closeSound used upon closing.
door_denySound used upon denying.
door_openSound used upon opening.
interaction_activatedSetting to true allows the user to input the password through a text box after clicking on the door.
passwordPassword that must be provided to open the door.
voice_activatedSay the password nearby to open the door.

Var Details

door_close

Sound used upon closing.

door_deny

Sound used upon denying.

door_open

Sound used upon opening.

interaction_activated

Setting to true allows the user to input the password through a text box after clicking on the door.

password

Password that must be provided to open the door.

voice_activated

Say the password nearby to open the door.

\ No newline at end of file diff --git a/obj/machinery/door/poddoor.html b/obj/machinery/door/poddoor.html new file mode 100644 index 0000000000000..3bd7889023bf8 --- /dev/null +++ b/obj/machinery/door/poddoor.html @@ -0,0 +1 @@ +/obj/machinery/door/poddoor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

poddoor

Vars

deconstructionThe current deconstruction step
idThe door's ID (used for buttons, etc to control the door)
recipe_typeThe recipe for this door

Var Details

deconstruction

The current deconstruction step

id

The door's ID (used for buttons, etc to control the door)

recipe_type

The recipe for this door

\ No newline at end of file diff --git a/obj/machinery/door/puzzle.html b/obj/machinery/door/puzzle.html new file mode 100644 index 0000000000000..7b008c4cbf7b5 --- /dev/null +++ b/obj/machinery/door/puzzle.html @@ -0,0 +1 @@ +/obj/machinery/door/puzzle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

puzzle

Vars

open_messageMessage that occurs when the door is opened
puzzle_idMake sure that the puzzle has the same puzzle_id as the keycard door! (If this is null, queuelinks dont happen!)
uses_queuelinksdo we use queue_links?

Var Details

open_message

Message that occurs when the door is opened

puzzle_id

Make sure that the puzzle has the same puzzle_id as the keycard door! (If this is null, queuelinks dont happen!)

do we use queue_links?

\ No newline at end of file diff --git a/obj/machinery/door/window.html b/obj/machinery/door/window.html new file mode 100644 index 0000000000000..cba4b3da1d6aa --- /dev/null +++ b/obj/machinery/door/window.html @@ -0,0 +1 @@ +/obj/machinery/door/window - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

window

Vars

cableOn deconstruction, how much cable to drop.
electronicsReference to the airlock electronics inside for determining window access.
reinfIf the door is considered reinforced. If TRUE, the door will resist twice as much heat (1600 deg C vs 800 deg C).
rodsOn deconstruction, how many rods to drop.
shardsOn deconstruction, how many shards to drop.

Procs

finish_emag_actTimer proc, called ~0.6 seconds after [emag_act]. Finishes the emag sequence by breaking the windoor.
try_to_force_door_openAdditional checks depending on what we want to happen to this windoor

Var Details

cable

On deconstruction, how much cable to drop.

electronics

Reference to the airlock electronics inside for determining window access.

reinf

If the door is considered reinforced. If TRUE, the door will resist twice as much heat (1600 deg C vs 800 deg C).

rods

On deconstruction, how many rods to drop.

shards

On deconstruction, how many shards to drop.

Proc Details

finish_emag_act

Timer proc, called ~0.6 seconds after [emag_act]. Finishes the emag sequence by breaking the windoor.

try_to_force_door_open

Additional checks depending on what we want to happen to this windoor

\ No newline at end of file diff --git a/obj/machinery/door_buttons/airlock_controller.html b/obj/machinery/door_buttons/airlock_controller.html new file mode 100644 index 0000000000000..dfa34faa8ba30 --- /dev/null +++ b/obj/machinery/door_buttons/airlock_controller.html @@ -0,0 +1 @@ +/obj/machinery/door_buttons/airlock_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

airlock_controller

Vars

busyare we currently in use?
exterior_airlockour exterior airlock
idExteriorthe id of the exterior airlock
idInteriorthe id of the interior airlock
interior_airlockour interior airlock

Procs

close_doorproc that handles closing doors
cycle_closeproc called when we want to close doors with cycling
cycle_openproc called when we want to open doors with cycling
go_idleunsets our busy state and update our appearance
only_closeproc called when we want to close doors without any cycling involved
only_openproc called when we want to open doors without any cycling involved
open_doorproc that handles opening and unbolting the door
remove_doorset our doors to null upon deletion

Var Details

busy

are we currently in use?

exterior_airlock

our exterior airlock

idExterior

the id of the exterior airlock

idInterior

the id of the interior airlock

interior_airlock

our interior airlock

Proc Details

close_door

proc that handles closing doors

cycle_close

proc called when we want to close doors with cycling

cycle_open

proc called when we want to open doors with cycling

go_idle

unsets our busy state and update our appearance

only_close

proc called when we want to close doors without any cycling involved

only_open

proc called when we want to open doors without any cycling involved

open_door

proc that handles opening and unbolting the door

remove_door

set our doors to null upon deletion

\ No newline at end of file diff --git a/obj/machinery/doppler_array.html b/obj/machinery/doppler_array.html new file mode 100644 index 0000000000000..8328654b33b0b --- /dev/null +++ b/obj/machinery/doppler_array.html @@ -0,0 +1,5 @@ +/obj/machinery/doppler_array - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

doppler_array

Vars

inserted_diskReference to a disk we are going to print to.
record_numberNumber which will be part of the name of the next record, increased by one for each already created record
recordsList of all explosion records in the form of /datum/data/tachyon_record

Procs

ExitedWe rely on exited to clear references.
apply_experimentsChecks a specified tachyon record for fitting reactions, then returns a list with +the experiment typepath as key and score as value. +The score is the same for all explosive experiments (light radius).
printPrinting of a record into a disk.
sense_explosionSensing, recording, and broadcasting of explosion

Var Details

inserted_disk

Reference to a disk we are going to print to.

record_number

Number which will be part of the name of the next record, increased by one for each already created record

records

List of all explosion records in the form of /datum/data/tachyon_record

Proc Details

Exited

We rely on exited to clear references.

apply_experiments

Checks a specified tachyon record for fitting reactions, then returns a list with +the experiment typepath as key and score as value. +The score is the same for all explosive experiments (light radius).

print

Printing of a record into a disk.

sense_explosion

Sensing, recording, and broadcasting of explosion

\ No newline at end of file diff --git a/obj/machinery/drone_dispenser.html b/obj/machinery/drone_dispenser.html new file mode 100644 index 0000000000000..71a8ccbfd823d --- /dev/null +++ b/obj/machinery/drone_dispenser.html @@ -0,0 +1 @@ +/obj/machinery/drone_dispenser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

drone_dispenser

Vars

begin_create_messageString that's displayed for when the drone dispenser start working.
break_messageString that's displayed for when the drone dispenser is broken.
break_soundSound that the drone dispnser plays when it's broken.
cooldownTimeHow long should the drone dispenser be on cooldown after operating
create_soundSound that the drone dispnser plays when it's created a new drone.
end_create_messageString that's displayed for when the drone dispenser stops working.
energy_usedEnergy to draw when processing a new drone shell fresh.
icon_creatingIcon string to use when the drone dispenser is making a new shell.
icon_offIcon string to use when the drone dispenser is not processing.
icon_onIcon string to use when the drone dispenser is processing.
icon_rechargingIcon string to use when the drone dispenser is on cooldown.
materialsReference to the object's internal storage for materials.
maximum_idleThe maximum number of "idle" drone shells it will make before ceasing production. Set to 0 for infinite.
modeWhat operation the drone shell dispenser is currently in, checked in process() to determine behavior
production_timeHow long does it the drone dispenser take to generate a new drone shell?
recharge_messageString that's displayed for when the drone dispenser finished it's cooldown.
recharge_soundSound that the drone dispnser plays when it's recharged it's cooldown.
recharging_textString that's displayed for when the drone dispenser is still on cooldown.
starting_amountQuantity of materials to automatically insert when the drone dispenser is spawned.
timerReference to world.time to use for calculation of cooldowns and production of a new drone dispenser.
using_materialsThe quantity of materials used when generating a new drone shell.
work_soundSound that the drone dispnser plays when it's ready to start making more drones.

Var Details

begin_create_message

String that's displayed for when the drone dispenser start working.

break_message

String that's displayed for when the drone dispenser is broken.

break_sound

Sound that the drone dispnser plays when it's broken.

cooldownTime

How long should the drone dispenser be on cooldown after operating

create_sound

Sound that the drone dispnser plays when it's created a new drone.

end_create_message

String that's displayed for when the drone dispenser stops working.

energy_used

Energy to draw when processing a new drone shell fresh.

icon_creating

Icon string to use when the drone dispenser is making a new shell.

icon_off

Icon string to use when the drone dispenser is not processing.

icon_on

Icon string to use when the drone dispenser is processing.

icon_recharging

Icon string to use when the drone dispenser is on cooldown.

materials

Reference to the object's internal storage for materials.

maximum_idle

The maximum number of "idle" drone shells it will make before ceasing production. Set to 0 for infinite.

mode

What operation the drone shell dispenser is currently in, checked in process() to determine behavior

production_time

How long does it the drone dispenser take to generate a new drone shell?

recharge_message

String that's displayed for when the drone dispenser finished it's cooldown.

recharge_sound

Sound that the drone dispnser plays when it's recharged it's cooldown.

recharging_text

String that's displayed for when the drone dispenser is still on cooldown.

starting_amount

Quantity of materials to automatically insert when the drone dispenser is spawned.

timer

Reference to world.time to use for calculation of cooldowns and production of a new drone dispenser.

using_materials

The quantity of materials used when generating a new drone shell.

work_sound

Sound that the drone dispnser plays when it's ready to start making more drones.

\ No newline at end of file diff --git a/obj/machinery/duct.html b/obj/machinery/duct.html new file mode 100644 index 0000000000000..27db9c318c006 --- /dev/null +++ b/obj/machinery/duct.html @@ -0,0 +1 @@ +/obj/machinery/duct - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

duct

Vars

activewheter to even bother with plumbing code or not
capacityamount we can transfer per process. note that the ductnet can carry as much as the lowest capacity duct
color_to_color_supportTRUE to let colors connect when forced with a wrench, false to just not do that at all
connectsbitfield with the directions we're connected in
drop_on_wrenchwhat stack to drop when disconnected. Must be /obj/item/stack/ducts or a subtype
ductour ductnet, wich tracks what we're connected to
duct_colorthe color of our duct
duct_layer1,2,4,8,16
dumbset to TRUE to disable smart duct behaviour
ignore_colorsTRUE to ignore colors, so yeah we also connect with other colors without issue
lock_connectswheter we allow our connects to be changed after initialization or not
lock_layerswhether we allow our layers to be altered
neighbourstrack ducts we're connected to. Mainly for ducts we connect to that we normally wouldn't, like different layers and colors, for when we regenerate the ducts

Procs

add_connectsadd a connect direction
add_neighbouradd a duct as neighbour. this means we're connected and will connect again if we ever regenerate
attempt_connectstart looking around us for stuff to connect to
can_anchorcollection of all the sanity checks to prevent us from stacking ducts that shouldn't be stacked
connect_ductconnect to a duct
connect_networksee if whatever we found can be connected to
connect_plumberconnect to a plumbing object
create_ductcreate a new duct datum
disconnect_ductwe disconnect ourself from our neighbours. we also destroy our ductnet and tell our neighbours to make a new one
generate_connectsSpecial proc to draw a new connect frame based on neighbours. not the norm so we can support multiple duct kinds
get_adjacent_ductsget a list of the ducts we can connect to if we are dumb
handle_layerupdate the layer we are on
lose_neighboursremove all our neighbours, and remove us from our neighbours aswell
remove_connectsremove a connect direction
reset_connectsremove our connects

Var Details

active

wheter to even bother with plumbing code or not

capacity

amount we can transfer per process. note that the ductnet can carry as much as the lowest capacity duct

color_to_color_support

TRUE to let colors connect when forced with a wrench, false to just not do that at all

connects

bitfield with the directions we're connected in

drop_on_wrench

what stack to drop when disconnected. Must be /obj/item/stack/ducts or a subtype

duct

our ductnet, wich tracks what we're connected to

duct_color

the color of our duct

duct_layer

1,2,4,8,16

dumb

set to TRUE to disable smart duct behaviour

ignore_colors

TRUE to ignore colors, so yeah we also connect with other colors without issue

lock_connects

wheter we allow our connects to be changed after initialization or not

lock_layers

whether we allow our layers to be altered

neighbours

track ducts we're connected to. Mainly for ducts we connect to that we normally wouldn't, like different layers and colors, for when we regenerate the ducts

Proc Details

add_connects

add a connect direction

add_neighbour

add a duct as neighbour. this means we're connected and will connect again if we ever regenerate

attempt_connect

start looking around us for stuff to connect to

can_anchor

collection of all the sanity checks to prevent us from stacking ducts that shouldn't be stacked

connect_duct

connect to a duct

connect_network

see if whatever we found can be connected to

connect_plumber

connect to a plumbing object

create_duct

create a new duct datum

disconnect_duct

we disconnect ourself from our neighbours. we also destroy our ductnet and tell our neighbours to make a new one

generate_connects

Special proc to draw a new connect frame based on neighbours. not the norm so we can support multiple duct kinds

get_adjacent_ducts

get a list of the ducts we can connect to if we are dumb

handle_layer

update the layer we are on

lose_neighbours

remove all our neighbours, and remove us from our neighbours aswell

remove_connects

remove a connect direction

reset_connects

remove our connects

\ No newline at end of file diff --git a/obj/machinery/ecto_sniffer.html b/obj/machinery/ecto_sniffer.html new file mode 100644 index 0000000000000..694284c30c4cd --- /dev/null +++ b/obj/machinery/ecto_sniffer.html @@ -0,0 +1 @@ +/obj/machinery/ecto_sniffer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ecto_sniffer

Vars

ectoplasmic_residuesList of ckeys containing players who have recently activated the device, players on this list are prohibited from activating the device untill their residue decays.
ondetermines if the device if the power switch is turned on or off. Useful if the ghosts are too annoying.
sensor_enabledIf this var set to false the ghosts will not be able interact with the machine, say if the machine is silently disabled by cutting the internal wire.

Procs

clear_residueRemoves the ghost from the ectoplasmic_residues list and lets them know they are free to activate the sniffer again.

Var Details

ectoplasmic_residues

List of ckeys containing players who have recently activated the device, players on this list are prohibited from activating the device untill their residue decays.

on

determines if the device if the power switch is turned on or off. Useful if the ghosts are too annoying.

sensor_enabled

If this var set to false the ghosts will not be able interact with the machine, say if the machine is silently disabled by cutting the internal wire.

Proc Details

clear_residue

Removes the ghost from the ectoplasmic_residues list and lets them know they are free to activate the sniffer again.

\ No newline at end of file diff --git a/obj/machinery/electrolyzer.html b/obj/machinery/electrolyzer.html new file mode 100644 index 0000000000000..4fd8d043cddb3 --- /dev/null +++ b/obj/machinery/electrolyzer.html @@ -0,0 +1 @@ +/obj/machinery/electrolyzer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

electrolyzer

Vars

cellused to check if there is a cell in the machine
efficiencyDecrease the amount of power usage, changed by upgrading the capacitor tier
modecheck what mode the machine should be (WORKING, STANDBY)
oncheck if the machine is on or off
use_powerWe don't use area power, we always use the cell
working_powerIncrease the amount of moles worked on, changed by upgrading the manipulator tier

Var Details

cell

used to check if there is a cell in the machine

efficiency

Decrease the amount of power usage, changed by upgrading the capacitor tier

mode

check what mode the machine should be (WORKING, STANDBY)

on

check if the machine is on or off

use_power

We don't use area power, we always use the cell

working_power

Increase the amount of moles worked on, changed by upgrading the manipulator tier

\ No newline at end of file diff --git a/obj/machinery/electrolyzer/co2_cracker.html b/obj/machinery/electrolyzer/co2_cracker.html new file mode 100644 index 0000000000000..7ee8c9425e844 --- /dev/null +++ b/obj/machinery/electrolyzer/co2_cracker.html @@ -0,0 +1 @@ +/obj/machinery/electrolyzer/co2_cracker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

co2_cracker

Vars

repacked_typeWhat this repacks into
soundloopSoundloop for while the thermomachine is turned on

Var Details

repacked_type

What this repacks into

soundloop

Soundloop for while the thermomachine is turned on

\ No newline at end of file diff --git a/obj/machinery/elevator_control_panel.html b/obj/machinery/elevator_control_panel.html new file mode 100644 index 0000000000000..480344c33011f --- /dev/null +++ b/obj/machinery/elevator_control_panel.html @@ -0,0 +1,22 @@ +/obj/machinery/elevator_control_panel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Elevator control panel

A wallmounted simple machine that controls elevators, +allowing users to enter a UI to move it up or down

+

These can be placed in two methods:

+
    +
  • You can place the control panel on the same turf as an elevator. It will move up and down with the elevator
  • +
  • You can place the control panel to the side of an elevator, NOT attached to the elevator. It will remain in position
  • +
  • I don't recommend using both methods on the same elevator, as it might result in some jank, but it's functional.
  • +

Vars

door_reset_timeridTimerID to our door reset timer, made by emergency opening doors
last_move_targetWhat z-level did we move to last? Used for showing the user in the UI which direction we're moving.
lift_weakrefA weakref to the transport_controller datum we control
light_powerThe light mask overlay we use
linked_elevator_destinationA list of all possible destinations this elevator can travel. +Assoc list of "Floor name" to "z level of destination". +By default the floor names will auto-generate ("Floor 1", "Floor 2", etc).
linked_elevator_idWhat specific_transport_id do we link with?
maploadedWere we instantiated at mapload? Used to determine when we should link / throw errors
preset_destination_namesIf you want to override what each floor is named as, you can do so with this list. +Make this an assoc list of "z level you want to rename" to "desired name". +So, if you want the z-level 2 destination to be named "Cargo", you would do list("2" = "Cargo"). +(Reminder: Z1 gets loaded as Central Command, so your map's bottom Z will be Z2!)

Procs

add_destinations_in_a_direction_recursivelyRecursively adds destinations to the list of linked_elevator_destination +until it fails to find a valid stopping point in the passed direction.
check_panelCallback for move_to_zlevel to ensure the elevator can continue to move.
get_associated_liftFind the elevator associated with our lift button.
link_with_liftLink with associated transport controllers, only log failure to find a lift in LateInit because those are mapped in
populate_destinations_listGoes through and populates the linked_elevator_destination list with all possible destinations the lift can go.
reset_doorsHelper proc to go through all of our desetinations and reset all elevator doors, +closing doors on z-levels the elevator is away from, and opening doors on the z the elevator is

Var Details

door_reset_timerid

TimerID to our door reset timer, made by emergency opening doors

last_move_target

What z-level did we move to last? Used for showing the user in the UI which direction we're moving.

lift_weakref

A weakref to the transport_controller datum we control

light_power

The light mask overlay we use

linked_elevator_destination

A list of all possible destinations this elevator can travel. +Assoc list of "Floor name" to "z level of destination". +By default the floor names will auto-generate ("Floor 1", "Floor 2", etc).

linked_elevator_id

What specific_transport_id do we link with?

maploaded

Were we instantiated at mapload? Used to determine when we should link / throw errors

preset_destination_names

If you want to override what each floor is named as, you can do so with this list. +Make this an assoc list of "z level you want to rename" to "desired name". +So, if you want the z-level 2 destination to be named "Cargo", you would do list("2" = "Cargo"). +(Reminder: Z1 gets loaded as Central Command, so your map's bottom Z will be Z2!)

Proc Details

add_destinations_in_a_direction_recursively

Recursively adds destinations to the list of linked_elevator_destination +until it fails to find a valid stopping point in the passed direction.

check_panel

Callback for move_to_zlevel to ensure the elevator can continue to move.

get_associated_lift

Find the elevator associated with our lift button.

Link with associated transport controllers, only log failure to find a lift in LateInit because those are mapped in

populate_destinations_list

Goes through and populates the linked_elevator_destination list with all possible destinations the lift can go.

reset_doors

Helper proc to go through all of our desetinations and reset all elevator doors, +closing doors on z-levels the elevator is away from, and opening doors on the z the elevator is

\ No newline at end of file diff --git a/obj/machinery/exodrone_launcher.html b/obj/machinery/exodrone_launcher.html new file mode 100644 index 0000000000000..d4ff4e8358264 --- /dev/null +++ b/obj/machinery/exodrone_launcher.html @@ -0,0 +1 @@ +/obj/machinery/exodrone_launcher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

exodrone_launcher

Exploration drone launcher

Vars

fuel_canisterLoaded fuel pellet.

Var Details

fuel_canister

Loaded fuel pellet.

\ No newline at end of file diff --git a/obj/machinery/exoscanner.html b/obj/machinery/exoscanner.html new file mode 100644 index 0000000000000..de00ddb6c5ed6 --- /dev/null +++ b/obj/machinery/exoscanner.html @@ -0,0 +1 @@ +/obj/machinery/exoscanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

exoscanner

Vars

scan_powerthe scan power of this array to supply to scanner_controller

Var Details

scan_power

the scan power of this array to supply to scanner_controller

\ No newline at end of file diff --git a/obj/machinery/export_gate.html b/obj/machinery/export_gate.html new file mode 100644 index 0000000000000..0261dceb320d4 --- /dev/null +++ b/obj/machinery/export_gate.html @@ -0,0 +1 @@ +/obj/machinery/export_gate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

export_gate

Vars

cubes_registeredThe amount of cubes scanned
export_payoutCooldown on payout calculation
holding_accountThe holding bank account used for the export gate
income_previousTotal payments sent out last cycle
income_shareThe share paid to each cargo tech last cycle
income_totalTotal payments sent lifetime
lockedBool to check if the scanner's controls are locked by an ID.
payment_accountsList of crew accounts who split the scanned bounties
radioOur internal radio
radio_keyThe key our internal radio uses
scanline_timerInternal timer for scanlines
scanner_beepCooldown on the scanner's beep

Var Details

cubes_registered

The amount of cubes scanned

export_payout

Cooldown on payout calculation

holding_account

The holding bank account used for the export gate

income_previous

Total payments sent out last cycle

income_share

The share paid to each cargo tech last cycle

income_total

Total payments sent lifetime

locked

Bool to check if the scanner's controls are locked by an ID.

payment_accounts

List of crew accounts who split the scanned bounties

radio

Our internal radio

radio_key

The key our internal radio uses

scanline_timer

Internal timer for scanlines

scanner_beep

Cooldown on the scanner's beep

\ No newline at end of file diff --git a/obj/machinery/fax.html b/obj/machinery/fax.html new file mode 100644 index 0000000000000..3188bfb2106c8 --- /dev/null +++ b/obj/machinery/fax.html @@ -0,0 +1,72 @@ +/obj/machinery/fax - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fax

Vars

allow_exotic_faxesIf true you can fax things which strictly speaking are not paper.
allowed_typesList of types which should always be allowed to be faxed
exotic_typesList of types which should be allowed to be faxed if hacked
fax_historyThis is where the dispatch and reception history for each fax is stored.
fax_idThe unique ID by which the fax will build a list of existing faxes.
fax_nameThe name of the fax displayed in the list. Not necessarily unique to some EMAG jokes.
hurl_contentsIf true we will eject faxes at speed rather than sedately place them into a tray.
jammedIf true, the fax machine is jammed and needs cleaning
loaded_item_refA weak reference to an inserted object.
seconds_electrifiedWorld ticks the machine is electified for.
special_networksList with a fake-networks(not a fax actually), for request manager.
syndicate_networkNecessary to hide syndicate faxes from the general list. Doesn't mean he's EMAGGED!
visible_to_networkTrue if the fax machine should be visible to other fax machines in general.

Procs

animate_object_travelProcedure for animating an object entering or leaving the fax machine. +Arguments:
can_load_itemReturns true if an item can be loaded into the fax machine.
clear_jamAttempts to clean out a jammed machine using a passed item. +Returns true if successful.
emag_actEmag the device if the panel is open. +Emag does not bring you into the syndicate network, but makes it visible to you.
fax_name_existChecks fax names for a match.
find_overlay_stateReturns an appropriate icon state to represent a passed item. +Arguments:
history_addA procedure that makes entries in the history of fax transactions.
history_clearClears the history of fax operations.
is_allowed_typeReturns true if an item is of a type which can currently be loaded into this fax machine. +This list expands if you snip a particular wire.
log_faxRecords logs of bureacratic action +Arguments:
multitool_actUsing the multi-tool with the panel closed causes the fax network name to be renamed.
receiveProcedure for accepting papers from another fax machine.
screwdriver_actOpen and close the wire panel.
sendThe procedure for sending a paper to another fax machine.
shockAttempts to shock the passed user, returns true if they are shocked.
travel_animation_completeCalled when the travel animation should end. Reset animation and overlay states. +Arguments:
vend_itemActually vends an item out of the fax machine. +Moved into its own proc to allow a delay for the animation. +This will either deposit the item on the fax machine, or throw it if you have hacked a wire. +Arguments:

Var Details

allow_exotic_faxes

If true you can fax things which strictly speaking are not paper.

allowed_types

List of types which should always be allowed to be faxed

exotic_types

List of types which should be allowed to be faxed if hacked

fax_history

This is where the dispatch and reception history for each fax is stored.

fax_id

The unique ID by which the fax will build a list of existing faxes.

fax_name

The name of the fax displayed in the list. Not necessarily unique to some EMAG jokes.

hurl_contents

If true we will eject faxes at speed rather than sedately place them into a tray.

jammed

If true, the fax machine is jammed and needs cleaning

loaded_item_ref

A weak reference to an inserted object.

seconds_electrified

World ticks the machine is electified for.

special_networks

List with a fake-networks(not a fax actually), for request manager.

syndicate_network

Necessary to hide syndicate faxes from the general list. Doesn't mean he's EMAGGED!

visible_to_network

True if the fax machine should be visible to other fax machines in general.

Proc Details

animate_object_travel

Procedure for animating an object entering or leaving the fax machine. +Arguments:

+
    +
  • item - The object which is travelling.
  • +
  • animation_state - An icon state to apply to the fax machine.
  • +
  • overlay_state - An icon state to apply as an overlay to the fax machine.
  • +

can_load_item

Returns true if an item can be loaded into the fax machine.

clear_jam

Attempts to clean out a jammed machine using a passed item. +Returns true if successful.

emag_act

Emag the device if the panel is open. +Emag does not bring you into the syndicate network, but makes it visible to you.

fax_name_exist

Checks fax names for a match.

+

Called to check the new fax name against the names of other faxes to prevent the use of identical names. +Arguments:

+
    +
  • new_fax_name - The text of the name to be checked for a match.
  • +

find_overlay_state

Returns an appropriate icon state to represent a passed item. +Arguments:

+
    +
  • item - Item to interrogate.
  • +
  • state_prefix - Icon state action prefix to mutate.
  • +

history_add

A procedure that makes entries in the history of fax transactions.

+

Called to record the operation in the fax history list. +Records the type of operation, the name of the fax machine with which the operation was performed, and the station time. +Arguments:

+
    +
  • history_type - Type of operation. By default, "Send" and "Receive" should be used.
  • +
  • history_fax_name - The name of the fax machine that performed the operation.
  • +

history_clear

Clears the history of fax operations.

is_allowed_type

Returns true if an item is of a type which can currently be loaded into this fax machine. +This list expands if you snip a particular wire.

log_fax

Records logs of bureacratic action +Arguments:

+
    +
  • sent - The object being sent
  • +
  • destination_id - The unique ID of the fax machine
  • +
  • name - The friendly name of the fax machine, but these can be spoofed so the ID is also required
  • +

multitool_act

Using the multi-tool with the panel closed causes the fax network name to be renamed.

receive

Procedure for accepting papers from another fax machine.

+

The procedure is called in proc/send() of the other fax. It receives a paper-like object and "prints" it. +Arguments:

+
    +
  • loaded - The object to be printed.
  • +
  • sender_name - The sender's name, which will be displayed in the message and recorded in the history of operations.
  • +

screwdriver_act

Open and close the wire panel.

send

The procedure for sending a paper to another fax machine.

+

The object is called inside /obj/machinery/fax to send the thing to another fax machine. +The procedure searches among all faxes for the desired fax ID and calls proc/receive() on that fax. +If the item is sent successfully, it returns TRUE. +Arguments:

+
    +
  • loaded - The object to be sent.
  • +
  • id - The network ID of the fax machine you want to send the item to.
  • +

shock

Attempts to shock the passed user, returns true if they are shocked.

+

Arguments:

+
    +
  • user - the user to shock
  • +
  • chance - probability the shock happens
  • +

travel_animation_complete

Called when the travel animation should end. Reset animation and overlay states. +Arguments:

+
    +
  • remove_overlay - Overlay to remove.
  • +

vend_item

Actually vends an item out of the fax machine. +Moved into its own proc to allow a delay for the animation. +This will either deposit the item on the fax machine, or throw it if you have hacked a wire. +Arguments:

+
    +
  • vend - Item to vend from the fax machine.
  • +
\ No newline at end of file diff --git a/obj/machinery/field.html b/obj/machinery/field.html new file mode 100644 index 0000000000000..958619529c046 --- /dev/null +++ b/obj/machinery/field.html @@ -0,0 +1 @@ +/obj/machinery/field - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

field

Vars

has_shockedUsed to add a delay between shocks. In some cases this used to crash servers by spawning hundreds of sparks every second.

Var Details

has_shocked

Used to add a delay between shocks. In some cases this used to crash servers by spawning hundreds of sparks every second.

\ No newline at end of file diff --git a/obj/machinery/field/containment.html b/obj/machinery/field/containment.html new file mode 100644 index 0000000000000..e90b566653bc5 --- /dev/null +++ b/obj/machinery/field/containment.html @@ -0,0 +1 @@ +/obj/machinery/field/containment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

containment

Vars

field_gen_1First of the generators producing the containment field
field_gen_2Second of the generators producing the containment field

Var Details

field_gen_1

First of the generators producing the containment field

field_gen_2

Second of the generators producing the containment field

\ No newline at end of file diff --git a/obj/machinery/field/generator.html b/obj/machinery/field/generator.html new file mode 100644 index 0000000000000..be9ef47bf351f --- /dev/null +++ b/obj/machinery/field/generator.html @@ -0,0 +1,5 @@ +/obj/machinery/field/generator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

generator

Vars

activeCurrent power mode of the machine, between FG_OFFLINE, FG_CHARGING, FG_ONLINE
clean_upCheck for asynk cleanups for this and the connected gens
connected_gensList of every field generators connected to this one
fieldsList of every containment fields connected to this generator
instantenouswe warm up and cool down instantly
powerCurrent amount of power
power_levelAmount of energy stored, used for visual overlays (over 9000?)
stateCurrent state of the machine, between FG_UNSECURED, FG_SECURED, FG_WELDED
warming_upTimer between 0 and 3 before the field gets made

Procs

check_power_levelThe power level is displayed using overlays. The current displayed power level is stored in 'powerlevel'. +The overlay in use and the powerlevel variable must be kept in sync. A powerlevel equal to 0 means that +no power level overlay is currently in the overlays list.

Var Details

active

Current power mode of the machine, between FG_OFFLINE, FG_CHARGING, FG_ONLINE

clean_up

Check for asynk cleanups for this and the connected gens

connected_gens

List of every field generators connected to this one

fields

List of every containment fields connected to this generator

instantenous

we warm up and cool down instantly

power

Current amount of power

power_level

Amount of energy stored, used for visual overlays (over 9000?)

state

Current state of the machine, between FG_UNSECURED, FG_SECURED, FG_WELDED

warming_up

Timer between 0 and 3 before the field gets made

Proc Details

check_power_level

The power level is displayed using overlays. The current displayed power level is stored in 'powerlevel'. +The overlay in use and the powerlevel variable must be kept in sync. A powerlevel equal to 0 means that +no power level overlay is currently in the overlays list.

\ No newline at end of file diff --git a/obj/machinery/firealarm.html b/obj/machinery/firealarm.html new file mode 100644 index 0000000000000..c654655f602c6 --- /dev/null +++ b/obj/machinery/firealarm.html @@ -0,0 +1,17 @@ +/obj/machinery/firealarm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

firealarm

Vars

buildstageBuildstate for contruction steps
my_areaOur home area, set in Init. Due to loading step order, this seems to be null very early in the server setup process, which is why some procs use my_area? for var or list checks.
soundlooplooping sound datum for our fire alarm siren.

Procs

alarmSounds the fire alarm and closes all firelocks in the area. Also tells the area to color the lights red.
check_security_levelSignal handler for checking if we should update fire alarm appearance accordingly to a newly set security level
resetResets all firelocks in the area. Also tells the area to disable alarm lighting, if it was enabled.
set_statusSets the sound state, and then calls update_icon()

Var Details

buildstage

Buildstate for contruction steps

my_area

Our home area, set in Init. Due to loading step order, this seems to be null very early in the server setup process, which is why some procs use my_area? for var or list checks.

soundloop

looping sound datum for our fire alarm siren.

Proc Details

alarm

Sounds the fire alarm and closes all firelocks in the area. Also tells the area to color the lights red.

+

Arguments:

+
    +
  • mob/user is the user that pulled the alarm.
  • +

check_security_level

Signal handler for checking if we should update fire alarm appearance accordingly to a newly set security level

+

Arguments:

+
    +
  • source The datum source of the signal
  • +
  • new_level The new security level that is in effect
  • +

reset

Resets all firelocks in the area. Also tells the area to disable alarm lighting, if it was enabled.

+

Arguments:

+
    +
  • mob/user is the user that reset the alarm.
  • +

set_status

Sets the sound state, and then calls update_icon()

+

This proc exists to be called by areas and firelocks +so that it may update its icon and start or stop playing +the alarm sound based on the state of an area variable.

\ No newline at end of file diff --git a/obj/machinery/fishing_portal_generator.html b/obj/machinery/fishing_portal_generator.html new file mode 100644 index 0000000000000..871f42a724515 --- /dev/null +++ b/obj/machinery/fishing_portal_generator.html @@ -0,0 +1 @@ +/obj/machinery/fishing_portal_generator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fishing_portal_generator

Vars

activeThe current fishing spot loaded in
linked_fishing_spotsA list of fishing spot it's linked to with a multitool.
long_range_linkIf true, the fishing portal can stay connected to a linked fishing spot even on different z-levels
max_fishing_spotsThe maximum number of fishing spots it can be linked to

Procs

RefreshPartsHigher tier parts let you link to more fishing spots at once and eventually let you connect through different zlevels.
link_fishing_spotCalled when using a multitool on any other fishing source.
select_fish_sourceCreate a radial menu from a list of available fish sources. If only the default is available, activate it right away.

Var Details

active

The current fishing spot loaded in

linked_fishing_spots

A list of fishing spot it's linked to with a multitool.

If true, the fishing portal can stay connected to a linked fishing spot even on different z-levels

max_fishing_spots

The maximum number of fishing spots it can be linked to

Proc Details

RefreshParts

Higher tier parts let you link to more fishing spots at once and eventually let you connect through different zlevels.

Called when using a multitool on any other fishing source.

select_fish_source

Create a radial menu from a list of available fish sources. If only the default is available, activate it right away.

\ No newline at end of file diff --git a/obj/machinery/flasher.html b/obj/machinery/flasher.html new file mode 100644 index 0000000000000..5c500eb265880 --- /dev/null +++ b/obj/machinery/flasher.html @@ -0,0 +1 @@ +/obj/machinery/flasher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

flasher

Vars

bulbThe contained flash. Mostly just handles the bulb burning out & needing placement.
flash_cooldown_durationDuration of time between flashes.
flash_rangeHow far this flash reaches. Affects both proximity distance and the actual stun effect.
strengthHow strong Paralyze()'d targets are when flashed.

Var Details

bulb

The contained flash. Mostly just handles the bulb burning out & needing placement.

flash_cooldown_duration

Duration of time between flashes.

flash_range

How far this flash reaches. Affects both proximity distance and the actual stun effect.

strength

How strong Paralyze()'d targets are when flashed.

\ No newline at end of file diff --git a/obj/machinery/flasher/portable.html b/obj/machinery/flasher/portable.html new file mode 100644 index 0000000000000..cda60ec5b197b --- /dev/null +++ b/obj/machinery/flasher/portable.html @@ -0,0 +1 @@ +/obj/machinery/flasher/portable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

portable

Vars

proximity_monitorProximity monitor associated with this atom, needed for proximity checks.

Var Details

proximity_monitor

Proximity monitor associated with this atom, needed for proximity checks.

\ No newline at end of file diff --git a/obj/machinery/flatpacker.html b/obj/machinery/flatpacker.html new file mode 100644 index 0000000000000..4dab33f66fa96 --- /dev/null +++ b/obj/machinery/flatpacker.html @@ -0,0 +1,15 @@ +/obj/machinery/flatpacker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

flatpacker

Vars

busyAre we busy printing?
creation_efficiencyCoefficient applied to consumed materials. Lower values result in lower material consumption.
flatpack_timetime needed to produce a flatpacked machine
inserted_boardThe inserted board
materialsThe container to hold materials
max_part_tierOur max print tier
needed_matsMaterials needed to print this board
print_tierThe highest tier of this board

Procs

analyze_costAttempts to find the total material cost of a typepath (including our creation efficiency), modifying a list +The list is modified as an assoc list: Material datum typepath = Cost +If the type is found on a techweb, uses material costs from there +Otherwise, the typepath is created in nullspace and fetches materials from the initialized one, then deleted.
finish_buildTurns the supplied board into a flatpack, and sets the machine as not busy +Arguments

Var Details

busy

Are we busy printing?

creation_efficiency

Coefficient applied to consumed materials. Lower values result in lower material consumption.

flatpack_time

time needed to produce a flatpacked machine

inserted_board

The inserted board

materials

The container to hold materials

max_part_tier

Our max print tier

needed_mats

Materials needed to print this board

print_tier

The highest tier of this board

Proc Details

analyze_cost

Attempts to find the total material cost of a typepath (including our creation efficiency), modifying a list +The list is modified as an assoc list: Material datum typepath = Cost +If the type is found on a techweb, uses material costs from there +Otherwise, the typepath is created in nullspace and fetches materials from the initialized one, then deleted.

+

Args: +part_type - Typepath of the item we are trying to find the costs of +costs - Assoc list we modify and return

finish_build

Turns the supplied board into a flatpack, and sets the machine as not busy +Arguments

+
    +
  • board - the board to put inside the flatpack
  • +
\ No newline at end of file diff --git a/obj/machinery/fugitive_locator.html b/obj/machinery/fugitive_locator.html new file mode 100644 index 0000000000000..51aba33eb821f --- /dev/null +++ b/obj/machinery/fugitive_locator.html @@ -0,0 +1,3 @@ +/obj/machinery/fugitive_locator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Bounty Locator

Locates a random, living fugitive and reports their name/location on a 40 second cooldown.

+

Locates a random fugitive antagonist via the GLOB.antagonists list, and reads out their real name and area name. +Captured or dead fugitives are not reported.

Vars

locate_cooldownCooldown on locating a fugitive.

Procs

locate_fugitiveLocates a random fugitive via their antag datum and returns them.

Var Details

locate_cooldown

Cooldown on locating a fugitive.

Proc Details

locate_fugitive

Locates a random fugitive via their antag datum and returns them.

\ No newline at end of file diff --git a/obj/machinery/gateway.html b/obj/machinery/gateway.html new file mode 100644 index 0000000000000..b169ca766a1f0 --- /dev/null +++ b/obj/machinery/gateway.html @@ -0,0 +1 @@ +/obj/machinery/gateway - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gateway

Vars

destinationThis is our own destination, pointing at this gateway
destination_nameName of the generated destination
destination_typeType of instanced gateway destination, needs to be subtype of /datum/gateway_destination/gateway
portalbumper object, the thing that starts actual teleport
portal_visualsVisual object for handling the viscontents
targetThis is current active destination

Var Details

destination

This is our own destination, pointing at this gateway

destination_name

Name of the generated destination

destination_type

Type of instanced gateway destination, needs to be subtype of /datum/gateway_destination/gateway

portal

bumper object, the thing that starts actual teleport

portal_visuals

Visual object for handling the viscontents

target

This is current active destination

\ No newline at end of file diff --git a/obj/machinery/goldeneye_upload_terminal.html b/obj/machinery/goldeneye_upload_terminal.html new file mode 100644 index 0000000000000..9924e7676023a --- /dev/null +++ b/obj/machinery/goldeneye_upload_terminal.html @@ -0,0 +1 @@ +/obj/machinery/goldeneye_upload_terminal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

goldeneye_upload_terminal

Vars

uploadingIs the system currently in use? Used to prevent spam and abuse.

Var Details

uploading

Is the system currently in use? Used to prevent spam and abuse.

\ No newline at end of file diff --git a/obj/machinery/gravity_generator/main.html b/obj/machinery/gravity_generator/main.html new file mode 100644 index 0000000000000..100d05c09a664 --- /dev/null +++ b/obj/machinery/gravity_generator/main.html @@ -0,0 +1,2 @@ +/obj/machinery/gravity_generator/main - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

main

Main gravity generator

+

The actual gravity generator, that actually holds the UI, contains the grav gen parts, ect.

Vars

breakerIf the main breaker is on/off, to enable/disable gravity.
broken_stateWhen broken, what stage it is at (GRAV_NEEDS_SCREWDRIVER:0) (GRAV_NEEDS_WELDING:1) (GRAV_NEEDS_PLASTEEL:2) (GRAV_NEEDS_WRENCH:3)
center_partThe gravity generator part in the very center, the fifth one, where we place the overlays.
charge_countHow much charge the gravity generator has, goes down when breaker is shut, and shuts down at 0.
charging_stateIf the generatir os idle, charging, or down.
current_overlayThe gravity overlay currently used.
generator_partsList of all gravity generator parts
gravity_fieldThe gravity field created by the generator.
onWhether the gravity generator is currently active.
radioactive_nebula_shieldingAmount of shielding we offer against a radioactive nebula
settingGravity value when on, honestly I don't know why it does it like this, but it does.
soundloopAudio for when the gravgen is on

Procs

get_radioactive_nebula_shieldingReturns the radioactive shielding (if there's a radioactive nebula). Called from a callback set in add_to_nebula_shielding()
shake_everyoneShake everyone on the z level to let them know that gravity was enagaged/disengaged.

Var Details

breaker

If the main breaker is on/off, to enable/disable gravity.

broken_state

When broken, what stage it is at (GRAV_NEEDS_SCREWDRIVER:0) (GRAV_NEEDS_WELDING:1) (GRAV_NEEDS_PLASTEEL:2) (GRAV_NEEDS_WRENCH:3)

center_part

The gravity generator part in the very center, the fifth one, where we place the overlays.

charge_count

How much charge the gravity generator has, goes down when breaker is shut, and shuts down at 0.

charging_state

If the generatir os idle, charging, or down.

current_overlay

The gravity overlay currently used.

generator_parts

List of all gravity generator parts

gravity_field

The gravity field created by the generator.

on

Whether the gravity generator is currently active.

radioactive_nebula_shielding

Amount of shielding we offer against a radioactive nebula

setting

Gravity value when on, honestly I don't know why it does it like this, but it does.

soundloop

Audio for when the gravgen is on

Proc Details

get_radioactive_nebula_shielding

Returns the radioactive shielding (if there's a radioactive nebula). Called from a callback set in add_to_nebula_shielding()

shake_everyone

Shake everyone on the z level to let them know that gravity was enagaged/disengaged.

\ No newline at end of file diff --git a/obj/machinery/gravity_generator/part.html b/obj/machinery/gravity_generator/part.html new file mode 100644 index 0000000000000..d0469a1575e37 --- /dev/null +++ b/obj/machinery/gravity_generator/part.html @@ -0,0 +1,2 @@ +/obj/machinery/gravity_generator/part - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

part

Generator part

+

Parts of the gravity generator used to have a proper sprite.

Procs

on_update_iconUsed to eat args

Proc Details

on_update_icon

Used to eat args

\ No newline at end of file diff --git a/obj/machinery/griddle.html b/obj/machinery/griddle.html new file mode 100644 index 0000000000000..fce88f31e620e --- /dev/null +++ b/obj/machinery/griddle.html @@ -0,0 +1 @@ +/obj/machinery/griddle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

griddle

Vars

griddled_objectsThings that are being griddled right now
grill_loopLooping sound for the grill
max_itemsHow many shit fits on the griddle?
onWhether or not the machine is turned on right now
variantWhat variant of griddle is this?

Var Details

griddled_objects

Things that are being griddled right now

grill_loop

Looping sound for the grill

max_items

How many shit fits on the griddle?

on

Whether or not the machine is turned on right now

variant

What variant of griddle is this?

\ No newline at end of file diff --git a/obj/machinery/griddle/frontier_tabletop.html b/obj/machinery/griddle/frontier_tabletop.html new file mode 100644 index 0000000000000..e49e1fc0343b2 --- /dev/null +++ b/obj/machinery/griddle/frontier_tabletop.html @@ -0,0 +1 @@ +/obj/machinery/griddle/frontier_tabletop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

frontier_tabletop

Vars

repacked_typeWhat type this repacks into

Var Details

repacked_type

What type this repacks into

\ No newline at end of file diff --git a/obj/machinery/grill.html b/obj/machinery/grill.html new file mode 100644 index 0000000000000..a77ed42b5b2a8 --- /dev/null +++ b/obj/machinery/grill.html @@ -0,0 +1 @@ +/obj/machinery/grill - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

grill

Vars

grill_fuelThe amount of fuel gained from stacks or reagents
grill_loopSound loop for the sizzling sound
grill_timeThe amount of time the food item has spent on the grill
grilled_itemThe item we are trying to grill

Procs

burn_stackMakes grill fuel from a unit of stack

Var Details

grill_fuel

The amount of fuel gained from stacks or reagents

grill_loop

Sound loop for the sizzling sound

grill_time

The amount of time the food item has spent on the grill

grilled_item

The item we are trying to grill

Proc Details

burn_stack

Makes grill fuel from a unit of stack

\ No newline at end of file diff --git a/obj/machinery/gulag_item_reclaimer.html b/obj/machinery/gulag_item_reclaimer.html new file mode 100644 index 0000000000000..013a03247be58 --- /dev/null +++ b/obj/machinery/gulag_item_reclaimer.html @@ -0,0 +1 @@ +/obj/machinery/gulag_item_reclaimer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gulag_item_reclaimer

Vars

screen_iconIcon of the current screen status

Var Details

screen_icon

Icon of the current screen status

\ No newline at end of file diff --git a/obj/machinery/gulag_teleporter.html b/obj/machinery/gulag_teleporter.html new file mode 100644 index 0000000000000..6c199e9e59a9c --- /dev/null +++ b/obj/machinery/gulag_teleporter.html @@ -0,0 +1,3 @@ +/obj/machinery/gulag_teleporter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

gulag_teleporter

Procs

strip_prisonerStrips the occupant of any items that are not allowed to be teleported to the gulag. +Will either place those items in the linked_reclaimer or on the ground if the reclaimer is deleted.

Proc Details

strip_prisoner

Strips the occupant of any items that are not allowed to be teleported to the gulag. +Will either place those items in the linked_reclaimer or on the ground if the reclaimer is deleted.

\ No newline at end of file diff --git a/obj/machinery/holopad.html b/obj/machinery/holopad.html new file mode 100644 index 0000000000000..baaeaee6a6510 --- /dev/null +++ b/obj/machinery/holopad.html @@ -0,0 +1,14 @@ +/obj/machinery/holopad - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

holopad

Vars

callingIf we are currently calling another holopad
can_hear_flagsbitfield. used to turn on and off hearing sensitivity depending on if we can act on Hear() at all - meant for lowering the number of unessesary hearable atoms
diskRecord disk
force_answer_callCalls will be automatically answered after a couple rings, here for debugging
holo_callsArray of /datum/holocalls that are calling US. this is only filled for holopads answering calls from another holopad
holo_rangeChange to change how far the AI can move away from the holopad before deactivating
holoraysHoloray-owner link
last_requestTo prevent request spam. ~Carn
layerThe plane is set such that it shows up without being covered by pipes/wires in a map editor, we change this on initialize.
loop_modeCurrently looping a recording
mastersassociative lazylist of the form: list(owner of a hologram = hologram representing that owner).
outgoing_callCurrently outgoing holocall, cannot call any other holopads unless this is null. +creating a new holocall from us to another holopad sets this var to that holocall datum
record_modeCurrently recording
record_startRecording start time
record_userUser that inititiated the recording
replay_holoReplay hologram
replay_modeCurrently replaying a recording
secureFor pads in secure areas; do not allow forced connecting

Procs

callee_hung_upCalled by holocall to inform outgoing_call that the call is terminated.
callee_picked_upCalled by holocall to inform outgoing_call that the receiver picked up.
hangup_all_callshangup_all_calls: Disconnects all current holocalls from the holopad
set_can_hear_flagssetter for can_hear_flags. handles adding or removing the given flag on can_hear_flags and then adding hearing sensitivity or removing it depending on the final state +this is necessary because holopads are a significant fraction of the hearable atoms on station which increases the cost of procs that iterate through hearables +so we need holopads to not be hearable until it is needed
set_holocallsetter for adding/removing holocalls to this holopad. used to update the holo_calls list and can_hear_flags +adds the given holocall if add_holocall is TRUE, removes if FALSE

Var Details

calling

If we are currently calling another holopad

can_hear_flags

bitfield. used to turn on and off hearing sensitivity depending on if we can act on Hear() at all - meant for lowering the number of unessesary hearable atoms

disk

Record disk

force_answer_call

Calls will be automatically answered after a couple rings, here for debugging

holo_calls

Array of /datum/holocalls that are calling US. this is only filled for holopads answering calls from another holopad

holo_range

Change to change how far the AI can move away from the holopad before deactivating

holorays

Holoray-owner link

last_request

To prevent request spam. ~Carn

layer

The plane is set such that it shows up without being covered by pipes/wires in a map editor, we change this on initialize.

loop_mode

Currently looping a recording

masters

associative lazylist of the form: list(owner of a hologram = hologram representing that owner).

outgoing_call

Currently outgoing holocall, cannot call any other holopads unless this is null. +creating a new holocall from us to another holopad sets this var to that holocall datum

record_mode

Currently recording

record_start

Recording start time

record_user

User that inititiated the recording

replay_holo

Replay hologram

replay_mode

Currently replaying a recording

secure

For pads in secure areas; do not allow forced connecting

Proc Details

callee_hung_up

Called by holocall to inform outgoing_call that the call is terminated.

callee_picked_up

Called by holocall to inform outgoing_call that the receiver picked up.

hangup_all_calls

hangup_all_calls: Disconnects all current holocalls from the holopad

set_can_hear_flags

setter for can_hear_flags. handles adding or removing the given flag on can_hear_flags and then adding hearing sensitivity or removing it depending on the final state +this is necessary because holopads are a significant fraction of the hearable atoms on station which increases the cost of procs that iterate through hearables +so we need holopads to not be hearable until it is needed

+
    +
  • flag - one of the can_hear_flags flag defines
  • +
  • set_flag - boolean, if TRUE sets can_hear_flags to that flag and might add hearing sensitivity if can_hear_flags was NONE before, +if FALSE unsets the flag and possibly removes hearing sensitivity
  • +

set_holocall

setter for adding/removing holocalls to this holopad. used to update the holo_calls list and can_hear_flags +adds the given holocall if add_holocall is TRUE, removes if FALSE

\ No newline at end of file diff --git a/obj/machinery/holopad/tutorial.html b/obj/machinery/holopad/tutorial.html new file mode 100644 index 0000000000000..d85661a9f6b36 --- /dev/null +++ b/obj/machinery/holopad/tutorial.html @@ -0,0 +1 @@ +/obj/machinery/holopad/tutorial - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tutorial

Vars

proximity_monitorProximity monitor associated with this atom, needed for proximity checks.

Var Details

proximity_monitor

Proximity monitor associated with this atom, needed for proximity checks.

\ No newline at end of file diff --git a/obj/machinery/hydroponics.html b/obj/machinery/hydroponics.html new file mode 100644 index 0000000000000..4195406883605 --- /dev/null +++ b/obj/machinery/hydroponics.html @@ -0,0 +1,59 @@ +/obj/machinery/hydroponics - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hydroponics

Vars

ageCurrent age
cycledelayAbout 10 seconds / cycle
lastcycleUsed for timing of cycles.
lastproduceLast time it was harvested
lastuserThe last user to add a reagent to the tray, mostly for logging purposes.
maxnutriThe maximum nutrient reagent container size of the tray.
maxwaterThe maximum amount of water in the tray
mutmodNutriment's effect on mutations
myseedThe currently planted seed
nutridrainHow many units of nutrients will be drained in the tray.
pestlevelThe amount of pests in the tray (max 10)
plant_healthIts health
plant_statusThe status of the plant in the tray. Whether it's harvestable, alive, missing or dead.
ratingObtained from the quality of the parts used in the tray, determines nutrient drain rate.
recent_bee_visitHave we been visited by a bee recently, so bees dont overpollinate one plant
self_sustainingIf the tray generates nutrients and water on its own
self_sustaining_overlay_icon_stateThe icon state for the overlay used to represent that this tray is self-sustaining.
toxicToxicity in the tray?
unwrenchableCan it be unwrenched to move?
waterlevelThe amount of water in the tray (max 100)
weedlevelThe amount of weeds in the tray (max 10)
yieldmodNutriment's effect on yield

Procs

adjust_pestlevelAdjust Pests. +Raises the tray's pest level stat by a given amount.
adjust_plant_healthAdjust Health. +Raises the tray's plant_health stat by a given amount, with total health determined by the seed's endurance.
adjust_toxicAdjust toxicity. +Raises the plant's toxic stat by a given amount.
adjust_waterlevelAdjust water. +Raises or lowers tray water values by a set value. Adding water will dillute toxicity from the tray. +Returns the amount of water actually added/taken
adjust_weedlevelAdjust Weeds. +Raises the plant's weed level stat by a given amount.
after_mutationCalled after plant mutation, update the appearance of the tray content and send a visible_message()
apply_chemicalsThis is NOW the gradual affects that each chemical applies on every process() proc. Nutrients now use a more robust reagent holder in order to apply less insane +stat changes as opposed to 271 lines of individual statline effects. Shoutout to the original comments on chems, I just cleaned a few up.
can_bee_pollinateBee pollinate proc. +Checks if the bee can pollinate the plant
mutatepestPest Mutation Proc. +When a tray is mutated with high pest values, it will spawn spiders.
plantdiesPlant Death Proc. +Cleans up various stats for the plant upon death, including pests, harvestability, and plant health.
pollinatePlant Cross-Pollination. +Checks all plants in the tray's oview range, then averages out the seed's potency, instability, and yield values. +If the seed's instability is >= 20, the seed donates one of its reagents to that nearby plant.
set_seedSets a new value for the myseed variable, which is the seed of the plant that's growing inside the tray.
spawnplantSpawn Plant. +Upon using strange reagent on a tray, it will spawn a killer tomato or killer tree at random.
update_trayUpdate Tray Proc +Handles plant harvesting on the tray side, by clearing the seed, names, description, and dead stat. +Shuts off autogrow if enabled. +Sends messages to the cleaer about plants harvested, or if nothing was harvested at all.
weedinvasionWhat happens when a tray's weeds grow too large. +Plants a new weed in an empty tray, then resets the tray.

Var Details

age

Current age

cycledelay

About 10 seconds / cycle

lastcycle

Used for timing of cycles.

lastproduce

Last time it was harvested

lastuser

The last user to add a reagent to the tray, mostly for logging purposes.

maxnutri

The maximum nutrient reagent container size of the tray.

maxwater

The maximum amount of water in the tray

mutmod

Nutriment's effect on mutations

myseed

The currently planted seed

nutridrain

How many units of nutrients will be drained in the tray.

pestlevel

The amount of pests in the tray (max 10)

plant_health

Its health

plant_status

The status of the plant in the tray. Whether it's harvestable, alive, missing or dead.

rating

Obtained from the quality of the parts used in the tray, determines nutrient drain rate.

recent_bee_visit

Have we been visited by a bee recently, so bees dont overpollinate one plant

self_sustaining

If the tray generates nutrients and water on its own

self_sustaining_overlay_icon_state

The icon state for the overlay used to represent that this tray is self-sustaining.

toxic

Toxicity in the tray?

unwrenchable

Can it be unwrenched to move?

waterlevel

The amount of water in the tray (max 100)

weedlevel

The amount of weeds in the tray (max 10)

yieldmod

Nutriment's effect on yield

Proc Details

adjust_pestlevel

Adjust Pests. +Raises the tray's pest level stat by a given amount.

+
    +
  • adjustamt - Determines how much the pest level will be adjusted upwards or downwards.
  • +

adjust_plant_health

Adjust Health. +Raises the tray's plant_health stat by a given amount, with total health determined by the seed's endurance.

+
    +
  • adjustamt - Determines how much the plant_health will be adjusted upwards or downwards.
  • +

adjust_toxic

Adjust toxicity. +Raises the plant's toxic stat by a given amount.

+
    +
  • adjustamt - Determines how much the toxic will be adjusted upwards or downwards.
  • +

adjust_waterlevel

Adjust water. +Raises or lowers tray water values by a set value. Adding water will dillute toxicity from the tray. +Returns the amount of water actually added/taken

+
    +
  • adjustamt - determines how much water the tray will be adjusted upwards or downwards.
  • +

adjust_weedlevel

Adjust Weeds. +Raises the plant's weed level stat by a given amount.

+
    +
  • adjustamt - Determines how much the weed level will be adjusted upwards or downwards.
  • +

after_mutation

Called after plant mutation, update the appearance of the tray content and send a visible_message()

apply_chemicals

This is NOW the gradual affects that each chemical applies on every process() proc. Nutrients now use a more robust reagent holder in order to apply less insane +stat changes as opposed to 271 lines of individual statline effects. Shoutout to the original comments on chems, I just cleaned a few up.

can_bee_pollinate

Bee pollinate proc. +Checks if the bee can pollinate the plant

mutatepest

Pest Mutation Proc. +When a tray is mutated with high pest values, it will spawn spiders.

+
    +
  • User - Person who last added chemicals to the tray for logging purposes.
  • +

plantdies

Plant Death Proc. +Cleans up various stats for the plant upon death, including pests, harvestability, and plant health.

pollinate

Plant Cross-Pollination. +Checks all plants in the tray's oview range, then averages out the seed's potency, instability, and yield values. +If the seed's instability is >= 20, the seed donates one of its reagents to that nearby plant.

+
    +
  • Range - The Oview range of trays to which to look for plants to donate reagents.
  • +

set_seed

Sets a new value for the myseed variable, which is the seed of the plant that's growing inside the tray.

spawnplant

Spawn Plant. +Upon using strange reagent on a tray, it will spawn a killer tomato or killer tree at random.

update_tray

Update Tray Proc +Handles plant harvesting on the tray side, by clearing the seed, names, description, and dead stat. +Shuts off autogrow if enabled. +Sends messages to the cleaer about plants harvested, or if nothing was harvested at all.

+
    +
  • User - The mob who clears the tray.
  • +

weedinvasion

What happens when a tray's weeds grow too large. +Plants a new weed in an empty tray, then resets the tray.

\ No newline at end of file diff --git a/obj/machinery/hypertorus/interface.html b/obj/machinery/hypertorus/interface.html new file mode 100644 index 0000000000000..2d5e21aaf6897 --- /dev/null +++ b/obj/machinery/hypertorus/interface.html @@ -0,0 +1 @@ +/obj/machinery/hypertorus/interface - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

interface

Vars

activatedHave we been activated at least once?
connected_coreReference to the core of our machine

Var Details

activated

Have we been activated at least once?

connected_core

Reference to the core of our machine

\ No newline at end of file diff --git a/obj/machinery/hypnochair.html b/obj/machinery/hypnochair.html new file mode 100644 index 0000000000000..f1900be20df42 --- /dev/null +++ b/obj/machinery/hypnochair.html @@ -0,0 +1 @@ +/obj/machinery/hypnochair - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hypnochair

Vars

interrogatingIs the device currently interrogating someone?
message_cooldownCooldown for breakout message
start_timeTime when the interrogation was started, to calculate effect in case of interruption
timeridTimer ID for interrogations
trigger_phraseTrigger phrase to implant
victimKeeps track of the victim to apply effects if it teleports away

Var Details

interrogating

Is the device currently interrogating someone?

message_cooldown

Cooldown for breakout message

start_time

Time when the interrogation was started, to calculate effect in case of interruption

timerid

Timer ID for interrogations

trigger_phrase

Trigger phrase to implant

victim

Keeps track of the victim to apply effects if it teleports away

\ No newline at end of file diff --git a/obj/machinery/icecream_vat.html b/obj/machinery/icecream_vat.html new file mode 100644 index 0000000000000..8ab53f27a86ea --- /dev/null +++ b/obj/machinery/icecream_vat.html @@ -0,0 +1 @@ +/obj/machinery/icecream_vat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

icecream_vat

Vars

cone_prototypesList of prototypes of dispensable ice cream cones. path as key, instance as assoc.
custom_ice_cream_beakerThe beaker inside of the vat used to make custom ice cream.
ice_cream_iconsList of ice creams as icons used for the radial menu.
icecream_vat_reagentsList of all reagenets the icecream vat will spawn with, if preinstall_reagents is TRUE.
preinstall_reagentsBoolean on whether or not to add 'icecream_vat_reagents' into the icecream vat on Initialize.
selected_flavourThe selected flavor of ice cream that we'll dispense when hit with an ice cream cone.
vat_modeWhich mode the icecream vat is set to dispense, VAT_MODE_ICECREAM or VAT_MODE_CONES

Procs

add_flavor_to_coneMakes ice cream if it can, then puts it in the ice cream cone we're being attacked with.
allow_reagent_scanAllows any user to see what reagents are in the ice cream vat regardless of special gear.
make_coneMakes an ice cream cone of the make_type, using ingredients list as reagents used to make it. Puts in user's hand if possible.
spill_reagentsLets the user select a reagent in the vat to spill out.
swap_modesSwaps the mode to the next one meant to be selected, then tells the user who changed it.

Var Details

cone_prototypes

List of prototypes of dispensable ice cream cones. path as key, instance as assoc.

custom_ice_cream_beaker

The beaker inside of the vat used to make custom ice cream.

ice_cream_icons

List of ice creams as icons used for the radial menu.

icecream_vat_reagents

List of all reagenets the icecream vat will spawn with, if preinstall_reagents is TRUE.

preinstall_reagents

Boolean on whether or not to add 'icecream_vat_reagents' into the icecream vat on Initialize.

selected_flavour

The selected flavor of ice cream that we'll dispense when hit with an ice cream cone.

vat_mode

Which mode the icecream vat is set to dispense, VAT_MODE_ICECREAM or VAT_MODE_CONES

Proc Details

add_flavor_to_cone

Makes ice cream if it can, then puts it in the ice cream cone we're being attacked with.

allow_reagent_scan

Allows any user to see what reagents are in the ice cream vat regardless of special gear.

make_cone

Makes an ice cream cone of the make_type, using ingredients list as reagents used to make it. Puts in user's hand if possible.

spill_reagents

Lets the user select a reagent in the vat to spill out.

swap_modes

Swaps the mode to the next one meant to be selected, then tells the user who changed it.

\ No newline at end of file diff --git a/obj/machinery/igniter.html b/obj/machinery/igniter.html new file mode 100644 index 0000000000000..f0a715552cf46 --- /dev/null +++ b/obj/machinery/igniter.html @@ -0,0 +1 @@ +/obj/machinery/igniter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

igniter

Procs

processHave to process to ignite any gas that comes in the turf
toggleturns the igniter on/off

Proc Details

process

Have to process to ignite any gas that comes in the turf

toggle

turns the igniter on/off

\ No newline at end of file diff --git a/obj/machinery/incident_display.html b/obj/machinery/incident_display.html new file mode 100644 index 0000000000000..0f6f39052a739 --- /dev/null +++ b/obj/machinery/incident_display.html @@ -0,0 +1,18 @@ +/obj/machinery/incident_display - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

incident_display

Vars

active_advertTimer for sign currently showing an advert
advert_cooldownCooldown until next advert
advert_frequencyHow often to show an advert
configured_advertThe default advert to show on this display
configured_advert_durationDuration of the advert set on this display
delam_display_colorDelam digits color
delam_recordDelam record high-score
hit_countTram hits
hit_thresholdTram hits before hazard warning
last_delamShifts without delam
live_displayIf the display is currently running live updated content
sign_featuresWhat statistics we want the sign to display
tram_display_colorTram hits digits color

Procs

show_advertRun an animated advert on the display
update_delam_countUpdate the delamination count on the display
update_tram_countUpdate the tram hit count on the display

Var Details

active_advert

Timer for sign currently showing an advert

advert_cooldown

Cooldown until next advert

advert_frequency

How often to show an advert

configured_advert

The default advert to show on this display

configured_advert_duration

Duration of the advert set on this display

delam_display_color

Delam digits color

delam_record

Delam record high-score

hit_count

Tram hits

hit_threshold

Tram hits before hazard warning

last_delam

Shifts without delam

live_display

If the display is currently running live updated content

sign_features

What statistics we want the sign to display

tram_display_color

Tram hits digits color

Proc Details

show_advert

Run an animated advert on the display

+

Arguments:

+
    +
  • advert - icon state to flick to
  • +
  • duration - length of the advert animation
  • +

update_delam_count

Update the delamination count on the display

+

Use the provided args to update the incident display when in delam mode. +Arguments:

+
    +
  • new_count - number of shifts without a delam
  • +
  • record - current high score for the delam count
  • +

update_tram_count

Update the tram hit count on the display

+

Sign receives a signal from SStransport that the tram has hit someone, and updates the count. +Arguments:

+
    +
  • source - hopefully is the transport subsystem
  • +
  • tram_collisions - current number of tram hits
  • +
\ No newline at end of file diff --git a/obj/machinery/interrogator.html b/obj/machinery/interrogator.html new file mode 100644 index 0000000000000..53ab900308a69 --- /dev/null +++ b/obj/machinery/interrogator.html @@ -0,0 +1,10 @@ +/obj/machinery/interrogator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

interrogator

The interrorgator, a piece of machinery used in assault ops to extract GoldenEye keys from heads of staff.

+

This device has 3 stages.

+

This device has a few requirements to function:

+
    +
  1. Must be on station Z-level
  2. +
  3. Must be a head of staff with a linked interrogate objective
  4. +
  5. Must be alive
  6. +
  7. Must not be a duplicate key
  8. +
+

After a key has been extracted, it will send a pod somewhere into maintenance, and the syndicates will know about it straight away.

Vars

human_occupantThe human occupant currently inside. Used for easier referencing later on.
lockedIs the door locked?
processingIs the system currently processing?
timer_idThe link to our timer ID so we can override it if need be.

Var Details

human_occupant

The human occupant currently inside. Used for easier referencing later on.

locked

Is the door locked?

processing

Is the system currently processing?

timer_id

The link to our timer ID so we can override it if need be.

\ No newline at end of file diff --git a/obj/machinery/iv_drip.html b/obj/machinery/iv_drip.html new file mode 100644 index 0000000000000..d8c031f4d46ef --- /dev/null +++ b/obj/machinery/iv_drip.html @@ -0,0 +1 @@ +/obj/machinery/iv_drip - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

iv_drip

Universal IV that can drain blood or feed reagents over a period of time from or to a replaceable container

Vars

attachedWhat are we sticking our needle in?
internal_list_reagentsIf we're using the internal container, fill us UP with the below : list(/datum/reagent/water = 5000)
internal_volume_maximumHow many reagents can we hold?
modeAre we donating or injecting?
reagent_containerInternal beaker
transfer_rateThe chemicals flow speed
use_internal_storageSet false to block beaker use and instead use an internal reagent holder

Procs

attach_ivcalled when an IV is attached
detach_ivCalled when an iv is detached. doesnt include chat stuff because there's multiple options and its better handled by the caller
get_reagentsGet the reagents used by IV drip
set_transfer_rateSets the transfer rate to the provided value

Var Details

attached

What are we sticking our needle in?

internal_list_reagents

If we're using the internal container, fill us UP with the below : list(/datum/reagent/water = 5000)

internal_volume_maximum

How many reagents can we hold?

mode

Are we donating or injecting?

reagent_container

Internal beaker

transfer_rate

The chemicals flow speed

use_internal_storage

Set false to block beaker use and instead use an internal reagent holder

Proc Details

attach_iv

called when an IV is attached

detach_iv

Called when an iv is detached. doesnt include chat stuff because there's multiple options and its better handled by the caller

get_reagents

Get the reagents used by IV drip

set_transfer_rate

Sets the transfer rate to the provided value

\ No newline at end of file diff --git a/obj/machinery/jukebox.html b/obj/machinery/jukebox.html new file mode 100644 index 0000000000000..7fd8e9a07e372 --- /dev/null +++ b/obj/machinery/jukebox.html @@ -0,0 +1 @@ +/obj/machinery/jukebox - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

jukebox

Vars

activeWhether we're actively playing music
rangersList of weakrefs to mobs listening to the current song
selectionCurrent song selected
stopWorld.time when the current song will stop playing, but also a cooldown between activations
volumeVolume of the songs played

Var Details

active

Whether we're actively playing music

rangers

List of weakrefs to mobs listening to the current song

selection

Current song selected

stop

World.time when the current song will stop playing, but also a cooldown between activations

volume

Volume of the songs played

\ No newline at end of file diff --git a/obj/machinery/launchpad.html b/obj/machinery/launchpad.html new file mode 100644 index 0000000000000..801db6bdce402 --- /dev/null +++ b/obj/machinery/launchpad.html @@ -0,0 +1,5 @@ +/obj/machinery/launchpad - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

launchpad

Vars

display_nameWhat to name the launchpad in the console
hiddenDetermines if the bluespace launchpad is blatantly obvious on teleportation.
icon_teleportThe beam icon
indicator_iconThe icon to use for the indicator
power_efficiencyThe power efficiency of the launchpad
rangeMax range of the launchpad
stationaryTo prevent briefcase pad deconstruction and such
teleport_beamThe beam on teleportation
teleport_speedThe speed of the teleportation
teleportingIf it's in the process of teleporting
x_offsetCurrent x target
y_offsetCurrent y target

Procs

doteleportPerforms the teleport. +sending - TRUE/FALSE depending on if the launch pad is teleporting to or from the target. +alternate_log_name - An alternative name to use in logs, if user is not present..
is_availableWhether this launchpad can send or receive.
set_offsetSets the offset of the launchpad.
teleport_checksChecks if the launchpad can teleport.
update_hudUpdates diagnostic huds
update_indicatorUpdates the indicator icon.

Var Details

display_name

What to name the launchpad in the console

hidden

Determines if the bluespace launchpad is blatantly obvious on teleportation.

icon_teleport

The beam icon

indicator_icon

The icon to use for the indicator

power_efficiency

The power efficiency of the launchpad

range

Max range of the launchpad

stationary

To prevent briefcase pad deconstruction and such

teleport_beam

The beam on teleportation

teleport_speed

The speed of the teleportation

teleporting

If it's in the process of teleporting

x_offset

Current x target

y_offset

Current y target

Proc Details

doteleport

Performs the teleport. +sending - TRUE/FALSE depending on if the launch pad is teleporting to or from the target. +alternate_log_name - An alternative name to use in logs, if user is not present..

is_available

Whether this launchpad can send or receive.

set_offset

Sets the offset of the launchpad.

teleport_checks

Checks if the launchpad can teleport.

update_hud

Updates diagnostic huds

update_indicator

Updates the indicator icon.

\ No newline at end of file diff --git a/obj/machinery/libraryscanner.html b/obj/machinery/libraryscanner.html new file mode 100644 index 0000000000000..131a2e186d909 --- /dev/null +++ b/obj/machinery/libraryscanner.html @@ -0,0 +1 @@ +/obj/machinery/libraryscanner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

libraryscanner

Vars

cacheOur scanned-in book

Var Details

cache

Our scanned-in book

\ No newline at end of file diff --git a/obj/machinery/lift_indicator.html b/obj/machinery/lift_indicator.html new file mode 100644 index 0000000000000..b9b8661edcc1f --- /dev/null +++ b/obj/machinery/lift_indicator.html @@ -0,0 +1,6 @@ +/obj/machinery/lift_indicator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lift_indicator

An indicator display aka an elevator hall lantern w/ floor number

Vars

current_lift_directionPositive for going up, negative going down, 0 for stopped
current_lift_floorThe elevator's current floor relative to its lowest floor being 1
lift_refWeakref to the transport.
linked_elevator_idWhat specific_transport_id do we link with?
lowest_floor_numThe lowest floor number. Determined by transport module init.
lowest_floor_offset'Floors' for display purposes are by default offset by 1 from their actual z-levels

Procs

on_lift_directionUpdate state, and only process if elevator is moving.
set_lift_stateSet the state and update appearance.
update_operatingUpdate processing state.

Var Details

current_lift_direction

Positive for going up, negative going down, 0 for stopped

current_lift_floor

The elevator's current floor relative to its lowest floor being 1

lift_ref

Weakref to the transport.

linked_elevator_id

What specific_transport_id do we link with?

lowest_floor_num

The lowest floor number. Determined by transport module init.

lowest_floor_offset

'Floors' for display purposes are by default offset by 1 from their actual z-levels

Proc Details

on_lift_direction

Update state, and only process if elevator is moving.

set_lift_state

Set the state and update appearance.

+

Arguments: +new_direction - new arrow state: UP, DOWN, or 0 +new_floor - set the floor number, eg. 1, 2, 3 +force_update - force appearance to update even if state didn't change.

update_operating

Update processing state.

+

Returns whether we are still processing.

\ No newline at end of file diff --git a/obj/machinery/light.html b/obj/machinery/light.html new file mode 100644 index 0000000000000..8da2697760d80 --- /dev/null +++ b/obj/machinery/light.html @@ -0,0 +1,3 @@ +/obj/machinery/light - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

light

Vars

base_statebase description and icon_state
break_if_movedbreak if moved, if false also makes it ignore if the wall its on breaks
bulb_low_power_pow_mulThe multiplier for determining the light's power in low power mode
cellCell reference
fire_powerThe Light power to use when working in fire alarm status
fittingString of the light type, used in descriptions and in examine
flickeringShould we flicker?
has_mock_cellIf TRUE, then cell is null, but one is pretending to exist. +This is to defer emergency cell creation unless necessary, as it is very expensive.
light_typeThe type of light item
low_power_modeIf true, the light is in low power mode
major_emergencyIf true, overrides lights to use emergency lighting
nightshift_allowedSet to FALSE to never let this light get switched to night mode.
nightshift_brightnessBrightness of the nightshift light
nightshift_enabledCurrently in night shift mode?
nightshift_light_powerAlpha of the nightshift light
no_low_powerIf true, this light cannot ever be in low power mode
onIs the light on?
overlay_iconWhat overlay the light should use
power_consumption_ratePower usage - W per unit of luminosity
start_with_cellIf true, this fixture generates a very weak cell at roundstart
static_power_usedAmount of power used
statusLIGHT_OK, _EMPTY, _BURNED or _BROKEN
switchcountCount of number of times switched on/off, this is used to calculate the probability the light burns out

Procs

knock_downAll the effects that occur when a light falls off a wall that it was hung onto.

Var Details

base_state

base description and icon_state

break_if_moved

break if moved, if false also makes it ignore if the wall its on breaks

bulb_low_power_pow_mul

The multiplier for determining the light's power in low power mode

cell

Cell reference

fire_power

The Light power to use when working in fire alarm status

fitting

String of the light type, used in descriptions and in examine

flickering

Should we flicker?

has_mock_cell

If TRUE, then cell is null, but one is pretending to exist. +This is to defer emergency cell creation unless necessary, as it is very expensive.

light_type

The type of light item

low_power_mode

If true, the light is in low power mode

major_emergency

If true, overrides lights to use emergency lighting

nightshift_allowed

Set to FALSE to never let this light get switched to night mode.

nightshift_brightness

Brightness of the nightshift light

nightshift_enabled

Currently in night shift mode?

nightshift_light_power

Alpha of the nightshift light

no_low_power

If true, this light cannot ever be in low power mode

on

Is the light on?

overlay_icon

What overlay the light should use

power_consumption_rate

Power usage - W per unit of luminosity

start_with_cell

If true, this fixture generates a very weak cell at roundstart

static_power_used

Amount of power used

status

LIGHT_OK, _EMPTY, _BURNED or _BROKEN

switchcount

Count of number of times switched on/off, this is used to calculate the probability the light burns out

Proc Details

knock_down

All the effects that occur when a light falls off a wall that it was hung onto.

\ No newline at end of file diff --git a/obj/machinery/light_switch.html b/obj/machinery/light_switch.html new file mode 100644 index 0000000000000..547e5a1d6866a --- /dev/null +++ b/obj/machinery/light_switch.html @@ -0,0 +1,3 @@ +/obj/machinery/light_switch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

light_switch

The light switch. Can have multiple per area.

Vars

areaSet this to a string, path, or area instance to control that area +instead of the switch's location.
autonameShould this lightswitch automatically rename itself to match the area it's in?
light_on_rangeRange of the light emitted when powered, but off

Var Details

area

Set this to a string, path, or area instance to control that area +instead of the switch's location.

autoname

Should this lightswitch automatically rename itself to match the area it's in?

light_on_range

Range of the light emitted when powered, but off

\ No newline at end of file diff --git a/obj/machinery/limbgrower.html b/obj/machinery/limbgrower.html new file mode 100644 index 0000000000000..32738d5344a91 --- /dev/null +++ b/obj/machinery/limbgrower.html @@ -0,0 +1,2 @@ +/obj/machinery/limbgrower - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

limbgrower

The limbgrower. Makes organd and limbs with synthflesh and chems. +See [limbgrower_designs.dm] for everything we can make.

Vars

being_builtThe design we're printing currently.
busyIf we're currently printing something.
categoriesAll the categories of organs we can print.
imported_designsDesigns imported from technology disks that we can print.
production_coefficientHow efficient our machine is. Better parts = less chemicals used and less power used. Range of 1 to 0.25.
production_speedHow long it takes for us to print a limb. Affected by production_coefficient.
selected_categoryThe category of limbs we're browing in our UI.
stored_researchOur internal techweb for limbgrower designs.

Procs

create_buildpathReturns a valid limb typepath based on the selected option
emag_actEmagging a limbgrower allows you to build synthetic armblades.

Var Details

being_built

The design we're printing currently.

busy

If we're currently printing something.

categories

All the categories of organs we can print.

imported_designs

Designs imported from technology disks that we can print.

production_coefficient

How efficient our machine is. Better parts = less chemicals used and less power used. Range of 1 to 0.25.

production_speed

How long it takes for us to print a limb. Affected by production_coefficient.

selected_category

The category of limbs we're browing in our UI.

stored_research

Our internal techweb for limbgrower designs.

Proc Details

create_buildpath

Returns a valid limb typepath based on the selected option

emag_act

Emagging a limbgrower allows you to build synthetic armblades.

\ No newline at end of file diff --git a/obj/machinery/loot_locator.html b/obj/machinery/loot_locator.html new file mode 100644 index 0000000000000..c72d85d7e72da --- /dev/null +++ b/obj/machinery/loot_locator.html @@ -0,0 +1 @@ +/obj/machinery/loot_locator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

loot_locator

Vars

locate_cooldownCooldown on locating booty.

Procs

find_random_lootLooks across the station for items that are pirate specific exports

Var Details

locate_cooldown

Cooldown on locating booty.

Proc Details

find_random_loot

Looks across the station for items that are pirate specific exports

\ No newline at end of file diff --git a/obj/machinery/ltsrbt.html b/obj/machinery/ltsrbt.html new file mode 100644 index 0000000000000..b16cfd94a8b96 --- /dev/null +++ b/obj/machinery/ltsrbt.html @@ -0,0 +1,3 @@ +/obj/machinery/ltsrbt - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ltsrbt

Vars

base_recharge_timeBase recharge time in seconds which is used to get recharge_time.
current_descThe desc of the market item that we've set on the UI
current_nameThe name of the market item that we've set on the UI
current_priceThe price of the market item that we've set on the UI
energy_usage_per_teleportPower used per teleported which gets divided by power_efficiency.
power_efficiencyDivider for energy_usage_per_teleport.
queueQueue for purchases that the machine should receive and send.
receivingCurrent /datum/market_purchase being received.
recharge_cooldownCurrent recharge progress.
recharge_timeThe time it takes for the machine to recharge before being able to send or receive items.
restock_costAttacking the machinery with enough credits will restock the markets, allowing for more/better items. +The cost doubles each time this is done.
transmittingCurrent /datum/market_purchase being sent to the target uplink.

Procs

add_to_queueAdds /datum/market_purchase to queue unless the machine is free, then it sets the purchase to be instantly received

Var Details

base_recharge_time

Base recharge time in seconds which is used to get recharge_time.

current_desc

The desc of the market item that we've set on the UI

current_name

The name of the market item that we've set on the UI

current_price

The price of the market item that we've set on the UI

energy_usage_per_teleport

Power used per teleported which gets divided by power_efficiency.

power_efficiency

Divider for energy_usage_per_teleport.

queue

Queue for purchases that the machine should receive and send.

receiving

Current /datum/market_purchase being received.

recharge_cooldown

Current recharge progress.

recharge_time

The time it takes for the machine to recharge before being able to send or receive items.

restock_cost

Attacking the machinery with enough credits will restock the markets, allowing for more/better items. +The cost doubles each time this is done.

transmitting

Current /datum/market_purchase being sent to the target uplink.

Proc Details

add_to_queue

Adds /datum/market_purchase to queue unless the machine is free, then it sets the purchase to be instantly received

\ No newline at end of file diff --git a/obj/machinery/materials_market.html b/obj/machinery/materials_market.html new file mode 100644 index 0000000000000..86816bd185f93 --- /dev/null +++ b/obj/machinery/materials_market.html @@ -0,0 +1,7 @@ +/obj/machinery/materials_market - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

materials_market

Vars

exportable_material_itemsWhat items can be converted into a stock block? Must be a stack subtype based on current implementation.
ordering_privateAre we ordering sheets from our own card balance or the cargo budget?

Procs

find_orderFind the order purchased either privately or by cargo budget +Arguments

Var Details

exportable_material_items

What items can be converted into a stock block? Must be a stack subtype based on current implementation.

ordering_private

Are we ordering sheets from our own card balance or the cargo budget?

Proc Details

find_order

Find the order purchased either privately or by cargo budget +Arguments

+
    +
  • user - the user who placed this order
  • +
  • is_ordering_private - is the player ordering privatly. If FALSE it means they are using cargo budget
  • +
\ No newline at end of file diff --git a/obj/machinery/mech_bay_recharge_port.html b/obj/machinery/mech_bay_recharge_port.html new file mode 100644 index 0000000000000..45ed2b1770a93 --- /dev/null +++ b/obj/machinery/mech_bay_recharge_port.html @@ -0,0 +1 @@ +/obj/machinery/mech_bay_recharge_port - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mech_bay_recharge_port

Vars

recharge_consoleRef to charge console for seeing charge for this port, cyclical reference
recharge_powerPower unit per second to charge by
recharging_mech_refWeakref to currently recharging mech on our recharging_turf
recharging_turfturf that will be checked when a mech wants to charge. directly one turf in the direction it is facing

Var Details

recharge_console

Ref to charge console for seeing charge for this port, cyclical reference

recharge_power

Power unit per second to charge by

recharging_mech_ref

Weakref to currently recharging mech on our recharging_turf

recharging_turf

turf that will be checked when a mech wants to charge. directly one turf in the direction it is facing

\ No newline at end of file diff --git a/obj/machinery/mecha_part_fabricator.html b/obj/machinery/mecha_part_fabricator.html new file mode 100644 index 0000000000000..37c84a00ecc91 --- /dev/null +++ b/obj/machinery/mecha_part_fabricator.html @@ -0,0 +1,32 @@ +/obj/machinery/mecha_part_fabricator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mecha_part_fabricator

Vars

being_builtThe current design datum that the machine is building.
build_finishWorld time when the build will finish.
build_startWorld time when the build started.
cached_designsAll designs in the techweb that can be fabricated by this machine, since the last update.
component_coeffCoefficient for the efficiency of material usage in item building. Based on the installed parts.
illegal_local_designsLocal designs that only this mechfab have(using when mechfab emaged so it's illegal designs).
link_on_initWhether the Exofab links to the ore silo on init. Special derelict or maintanance variants should set this to FALSE.
process_queueWhether or not the machine is building the entire queue automagically.
queueCurrent items in the build queue.
rmatReference to a remote material inventory, such as an ore silo.
stored_partPart currently stored in the Exofab.
stored_researchReference to the techweb.
time_coeffCoefficient for the speed of item building. Based on the installed parts.
top_job_idThe job ID of the part currently being processed. This is used for ordering list items for the client UI.

Procs

add_to_queueAdds a datum design to the build queue.
build_next_in_queueAttempts to build the next item in the build queue.
build_partStarts the build process for a given design datum.
dispense_built_partDispenses a part to the tile infront of the Exosuit Fab.
get_construction_time_w_coeffCalculates the coefficient-modified build time of a design.
on_finish_printingIntended to be called when the exofab has stopped working and is no longer printing items.
on_start_printingIntended to be called when an item starts printing.
remove_from_queueRemoves datum design from the build queue based on index.
update_menu_techUpdates the final_sets and buildable_parts for the current mecha fabricator.

Var Details

being_built

The current design datum that the machine is building.

build_finish

World time when the build will finish.

build_start

World time when the build started.

cached_designs

All designs in the techweb that can be fabricated by this machine, since the last update.

component_coeff

Coefficient for the efficiency of material usage in item building. Based on the installed parts.

illegal_local_designs

Local designs that only this mechfab have(using when mechfab emaged so it's illegal designs).

Whether the Exofab links to the ore silo on init. Special derelict or maintanance variants should set this to FALSE.

process_queue

Whether or not the machine is building the entire queue automagically.

queue

Current items in the build queue.

rmat

Reference to a remote material inventory, such as an ore silo.

stored_part

Part currently stored in the Exofab.

stored_research

Reference to the techweb.

time_coeff

Coefficient for the speed of item building. Based on the installed parts.

top_job_id

The job ID of the part currently being processed. This is used for ordering list items for the client UI.

Proc Details

add_to_queue

Adds a datum design to the build queue.

+

Returns TRUE if successful and FALSE if the design was not added to the queue.

+
    +
  • D - Datum design to add to the queue.
  • +

build_next_in_queue

Attempts to build the next item in the build queue.

+

Returns FALSE if either there are no more parts to build or the next part is not buildable. +Returns TRUE if the next part has started building.

+
    +
  • verbose - Whether the machine should use say() procs. Set to FALSE to disable the machine saying reasons for failure to build.
  • +

build_part

Starts the build process for a given design datum.

+

Returns FALSE if the procedure fails. Returns TRUE when being_built is set. +Uses materials.

+
    +
  • D - Design datum to attempt to print.
  • +
  • verbose - Whether the machine should use say() procs. Set to FALSE to disable the machine saying reasons for failure to build.
  • +

dispense_built_part

Dispenses a part to the tile infront of the Exosuit Fab.

+

Returns FALSE is the machine cannot dispense the part on the appropriate turf. +Return TRUE if the part was successfully dispensed.

+
    +
  • dispensed_design - Design datum to attempt to dispense.
  • +

get_construction_time_w_coeff

Calculates the coefficient-modified build time of a design.

+

Returns coefficient-modified build time of a given design.

+
    +
  • D - Design datum to calculate the modified build time of.
  • +
  • roundto - Rounding value for round() proc
  • +

on_finish_printing

Intended to be called when the exofab has stopped working and is no longer printing items.

+

Removes the overlay to show the fab working and sets idle power usage settings. Additionally resets the description and turns off queue processing.

on_start_printing

Intended to be called when an item starts printing.

+

Adds the overlay to show the fab working and sets active power usage settings.

remove_from_queue

Removes datum design from the build queue based on index.

+

Returns TRUE if successful and FALSE if a design was not removed from the queue.

+
    +
  • index - Index in the build queue of the element to remove.
  • +

update_menu_tech

Updates the final_sets and buildable_parts for the current mecha fabricator.

\ No newline at end of file diff --git a/obj/machinery/mechpad.html b/obj/machinery/mechpad.html new file mode 100644 index 0000000000000..2aa968534572d --- /dev/null +++ b/obj/machinery/mechpad.html @@ -0,0 +1,6 @@ +/obj/machinery/mechpad - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mechpad

Vars

display_nameName of the mechpad in a mechpad console
idID of the console, used for linking up
mech_onlyCan we carry mobs or just mechs?

Procs

launchSpawns a special supply pod whitelisted to only accept mechs and have its drop off location be another mechpad +Arguments:

Var Details

display_name

Name of the mechpad in a mechpad console

id

ID of the console, used for linking up

mech_only

Can we carry mobs or just mechs?

Proc Details

launch

Spawns a special supply pod whitelisted to only accept mechs and have its drop off location be another mechpad +Arguments:

+
    +
  • where - where the supply pod will land after grabbing the mech
  • +
\ No newline at end of file diff --git a/obj/machinery/medical_kiosk.html b/obj/machinery/medical_kiosk.html new file mode 100644 index 0000000000000..0760f8e3bf537 --- /dev/null +++ b/obj/machinery/medical_kiosk.html @@ -0,0 +1 @@ +/obj/machinery/medical_kiosk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

medical_kiosk

Vars

active_priceHow much it currently costs to use the kiosk.
default_priceHow much it costs to use the kiosk by default.
pandemoniumMakes the TGUI display gibberish and/or incorrect/erratic information.
patient_refWho's getting scanned?
paying_customerDo we have someone paying to use this?
paying_refWho's paying?
scan_activeShows whether the kiosk is being used to scan someone and what it's being used for.

Var Details

active_price

How much it currently costs to use the kiosk.

default_price

How much it costs to use the kiosk by default.

pandemonium

Makes the TGUI display gibberish and/or incorrect/erratic information.

patient_ref

Who's getting scanned?

paying_customer

Do we have someone paying to use this?

paying_ref

Who's paying?

scan_active

Shows whether the kiosk is being used to scan someone and what it's being used for.

\ No newline at end of file diff --git a/obj/machinery/medipen_refiller.html b/obj/machinery/medipen_refiller.html new file mode 100644 index 0000000000000..547134d350cc8 --- /dev/null +++ b/obj/machinery/medipen_refiller.html @@ -0,0 +1 @@ +/obj/machinery/medipen_refiller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

medipen_refiller

Vars

allowed_pensList of medipen subtypes it can refill and the chems needed for it to work.
moreallowed_pensList of medipen subtypes it can refill and the chems needed for it to work.

Var Details

allowed_pens

List of medipen subtypes it can refill and the chems needed for it to work.

moreallowed_pens

List of medipen subtypes it can refill and the chems needed for it to work.

\ No newline at end of file diff --git a/obj/machinery/meter.html b/obj/machinery/meter.html new file mode 100644 index 0000000000000..56616f04bdfe1 --- /dev/null +++ b/obj/machinery/meter.html @@ -0,0 +1 @@ +/obj/machinery/meter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

meter

Vars

targetThe pipe we are attaching to
target_layerThe piping layer of the target

Procs

drop_meterCalled when the parent pipe is removed

Var Details

target

The pipe we are attaching to

target_layer

The piping layer of the target

Proc Details

drop_meter

Called when the parent pipe is removed

\ No newline at end of file diff --git a/obj/machinery/meter/monitored.html b/obj/machinery/meter/monitored.html new file mode 100644 index 0000000000000..74f1b8805b480 --- /dev/null +++ b/obj/machinery/meter/monitored.html @@ -0,0 +1 @@ +/obj/machinery/meter/monitored - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

monitored

Vars

chamber_idThe unique string that represents which atmos chamber to associate with.

Var Details

chamber_id

The unique string that represents which atmos chamber to associate with.

\ No newline at end of file diff --git a/obj/machinery/microwave.html b/obj/machinery/microwave.html new file mode 100644 index 0000000000000..5af2f7c8fc623 --- /dev/null +++ b/obj/machinery/microwave.html @@ -0,0 +1,31 @@ +/obj/machinery/microwave - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

microwave

Vars

brokenHow broken is it? NOT_BROKEN, KINDA_BROKEN, REALLY_BROKEN
cellThe cell we charge with
cell_poweredIf we use a cell instead of powernet
dirtyHow dirty is it?
efficiencyMicrowave efficiency (power) based on the stock components
ingredient_shifts_xWhen this is the nth ingredient, whats its pixel_x?
ingredient_shifts_yWhen this is the nth ingredient, whats its pixel_y?
ingredientsMay only contain /atom/movables
max_n_of_itemsMicrowave max capacity
openMicrowave door position
pda_failureFail due to inserted PDA
vampire_cellThe cell we're charging
vampire_charging_capableCapable of vampire charging PDAs
vampire_charging_enabledCharge contents of microwave instead of cook
wire_disabledIs its function wire cut?
wire_mode_swapWire cut to run mode backwards

Procs

charge_loopThe actual cook loop started via [proc/start] or [proc/start_can_fail]
charge_loop_finishCalled when the charge_loop is done successfully, no dirty mess or whatever
cookBegins the process of cooking the included ingredients.
cook_loopThe actual cook loop started via [proc/start] or [proc/start_can_fail]
loop_finishCalled when the cook_loop is done successfully, no dirty mess or whatever
startThe start of the cook loop
start_can_failThe start of the cook loop, but can fail (result in a splat / dirty microwave)
vampireThe start of the charge loop

Var Details

broken

How broken is it? NOT_BROKEN, KINDA_BROKEN, REALLY_BROKEN

cell

The cell we charge with

cell_powered

If we use a cell instead of powernet

dirty

How dirty is it?

efficiency

Microwave efficiency (power) based on the stock components

ingredient_shifts_x

When this is the nth ingredient, whats its pixel_x?

ingredient_shifts_y

When this is the nth ingredient, whats its pixel_y?

ingredients

May only contain /atom/movables

max_n_of_items

Microwave max capacity

open

Microwave door position

pda_failure

Fail due to inserted PDA

vampire_cell

The cell we're charging

vampire_charging_capable

Capable of vampire charging PDAs

vampire_charging_enabled

Charge contents of microwave instead of cook

wire_disabled

Is its function wire cut?

wire_mode_swap

Wire cut to run mode backwards

Proc Details

charge_loop

The actual cook loop started via [proc/start] or [proc/start_can_fail]

+
    +
  • type - the type of charging, determined via how this iteration of cook_loop is called, and determines the result
  • +
  • time - how many loops are left, base case for recursion
  • +
  • wait - deciseconds between loops
  • +
  • cooker - The mob that initiated the cook cycle, can be null if no apparent mob triggered it (such as via emp)
  • +

charge_loop_finish

Called when the charge_loop is done successfully, no dirty mess or whatever

+
    +
  • cooker - The mob that initiated the cook cycle, can be null if no apparent mob triggered it (such as via emp)
  • +

cook

Begins the process of cooking the included ingredients.

+
    +
  • cooker - The mob that initiated the cook cycle, can be null if no apparent mob triggered it (such as via emp)
  • +

cook_loop

The actual cook loop started via [proc/start] or [proc/start_can_fail]

+
    +
  • type - the type of cooking, determined via how this iteration of cook_loop is called, and determines the result
  • +
  • time - how many loops are left, base case for recursion
  • +
  • wait - deciseconds between loops
  • +
  • cooker - The mob that initiated the cook cycle, can be null if no apparent mob triggered it (such as via emp)
  • +

loop_finish

Called when the cook_loop is done successfully, no dirty mess or whatever

+
    +
  • cooker - The mob that initiated the cook cycle, can be null if no apparent mob triggered it (such as via emp)
  • +

start

The start of the cook loop

+
    +
  • cooker - The mob that initiated the cook cycle, can be null if no apparent mob triggered it (such as via emp)
  • +

start_can_fail

The start of the cook loop, but can fail (result in a splat / dirty microwave)

+
    +
  • cooker - The mob that initiated the cook cycle, can be null if no apparent mob triggered it (such as via emp)
  • +

vampire

The start of the charge loop

+
    +
  • cooker - The mob that initiated the cook cycle, can be null if no apparent mob triggered it (such as via emp)
  • +
\ No newline at end of file diff --git a/obj/machinery/mineral.html b/obj/machinery/mineral.html new file mode 100644 index 0000000000000..c74d593d54b61 --- /dev/null +++ b/obj/machinery/mineral.html @@ -0,0 +1,8 @@ +/obj/machinery/mineral - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mineral

Mineral processing unit console

Vars

input_dirThe current direction of input_turf, in relation to the machine.
input_turfThe turf the machines listens to for items to pick up. Calls the pickup_item() proc.
needs_item_inputDetermines if this machine needs to pick up items. Used to avoid registering signals to /mineral machines that don't pickup items.
output_dirThe current direction, in relation to the machine, that items will be output to.

Procs

pickup_itemBase proc for all /mineral subtype machines to use. Place your item pickup behavior in this proc when you override it for your specific machine.
register_input_turfGets the turf in the input_dir direction adjacent to the machine, and registers signals for ATOM_ENTERED and ATOM_CREATED. Calls the pickup_item() proc when it receives these signals.
unload_mineralGeneric unloading proc. Takes an atom as an argument and forceMove's it to the turf adjacent to this machine in the output_dir direction.
unregister_input_turfUnregisters signals that are registered the machine's input turf, if it has one.

Var Details

input_dir

The current direction of input_turf, in relation to the machine.

input_turf

The turf the machines listens to for items to pick up. Calls the pickup_item() proc.

needs_item_input

Determines if this machine needs to pick up items. Used to avoid registering signals to /mineral machines that don't pickup items.

output_dir

The current direction, in relation to the machine, that items will be output to.

Proc Details

pickup_item

Base proc for all /mineral subtype machines to use. Place your item pickup behavior in this proc when you override it for your specific machine.

+

Called when the COMSIG_ATOM_ENTERED and COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON signals are sent.

+

Arguments:

+
    +
  • source - the turf that is listening for the signals.
  • +
  • target - the atom that just moved onto the source turf.
  • +
  • oldLoc - the old location that target was at before moving onto source.
  • +

register_input_turf

Gets the turf in the input_dir direction adjacent to the machine, and registers signals for ATOM_ENTERED and ATOM_CREATED. Calls the pickup_item() proc when it receives these signals.

unload_mineral

Generic unloading proc. Takes an atom as an argument and forceMove's it to the turf adjacent to this machine in the output_dir direction.

unregister_input_turf

Unregisters signals that are registered the machine's input turf, if it has one.

\ No newline at end of file diff --git a/obj/machinery/mineral/labor_claim_console.html b/obj/machinery/mineral/labor_claim_console.html new file mode 100644 index 0000000000000..8400c4e663ca1 --- /dev/null +++ b/obj/machinery/mineral/labor_claim_console.html @@ -0,0 +1 @@ +/obj/machinery/mineral/labor_claim_console - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

labor_claim_console

Prisoners' Console

Vars

security_radioNeeded to send messages to sec radio
stacking_machineConnected stacking machine

Var Details

security_radio

Needed to send messages to sec radio

stacking_machine

Connected stacking machine

\ No newline at end of file diff --git a/obj/machinery/mineral/ore_redemption.html b/obj/machinery/mineral/ore_redemption.html new file mode 100644 index 0000000000000..ea96ac3141f43 --- /dev/null +++ b/obj/machinery/mineral/ore_redemption.html @@ -0,0 +1 @@ +/obj/machinery/mineral/ore_redemption - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ore_redemption

Ore Redemption Unit (ORM)

Vars

console_notify_timerVariable that holds a timer which is used for callbacks to send_console_message(). Used for preventing multiple calls to this proc while the ORM is eating a stack of ores.
materialsLinkage to the ORM silo
ore_multiplierSmelted ore's amount is multiplied by this
ore_valuesDetails how many credits each smelted ore is worth
point_upgradeIncreases the amount of points the miners gain
pointsThe current amount of unclaimed points in the machine
requires_siloBoolean on whether the ORM can claim points without being connected to an ore silo.
stored_researchReferences the alloys the smelter can create

Procs

can_smelt_alloyReturns the amount of a specific alloy design, based on the accessible materials
send_console_messageSends a message to the request consoles that signed up for ore updates

Var Details

console_notify_timer

Variable that holds a timer which is used for callbacks to send_console_message(). Used for preventing multiple calls to this proc while the ORM is eating a stack of ores.

materials

Linkage to the ORM silo

ore_multiplier

Smelted ore's amount is multiplied by this

ore_values

Details how many credits each smelted ore is worth

point_upgrade

Increases the amount of points the miners gain

points

The current amount of unclaimed points in the machine

requires_silo

Boolean on whether the ORM can claim points without being connected to an ore silo.

stored_research

References the alloys the smelter can create

Proc Details

can_smelt_alloy

Returns the amount of a specific alloy design, based on the accessible materials

send_console_message

Sends a message to the request consoles that signed up for ore updates

\ No newline at end of file diff --git a/obj/machinery/mineral/processing_unit.html b/obj/machinery/mineral/processing_unit.html new file mode 100644 index 0000000000000..4a6a331a32cb9 --- /dev/null +++ b/obj/machinery/mineral/processing_unit.html @@ -0,0 +1 @@ +/obj/machinery/mineral/processing_unit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

processing_unit

Mineral processing unit

Vars

accepted_typeWhat can be input into the machine?
materialsMaterial container for materials
proximity_monitorProximity monitor associated with this atom, needed for proximity checks.

Var Details

accepted_type

What can be input into the machine?

materials

Material container for materials

proximity_monitor

Proximity monitor associated with this atom, needed for proximity checks.

\ No newline at end of file diff --git a/obj/machinery/mineral/processing_unit_console.html b/obj/machinery/mineral/processing_unit_console.html new file mode 100644 index 0000000000000..cc9b8f568f1c4 --- /dev/null +++ b/obj/machinery/mineral/processing_unit_console.html @@ -0,0 +1 @@ +/obj/machinery/mineral/processing_unit_console - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

processing_unit_console

Vars

processing_machineConnected ore processing machine.

Var Details

processing_machine

Connected ore processing machine.

\ No newline at end of file diff --git a/obj/machinery/mineral/stacking_machine.html b/obj/machinery/mineral/stacking_machine.html new file mode 100644 index 0000000000000..c1174073a9e20 --- /dev/null +++ b/obj/machinery/mineral/stacking_machine.html @@ -0,0 +1 @@ +/obj/machinery/mineral/stacking_machine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stacking_machine

Mineral stacking unit

Vars

proximity_monitorProximity monitor associated with this atom, needed for proximity checks.

Var Details

proximity_monitor

Proximity monitor associated with this atom, needed for proximity checks.

\ No newline at end of file diff --git a/obj/machinery/mineral/stacking_machine/laborstacker.html b/obj/machinery/mineral/stacking_machine/laborstacker.html new file mode 100644 index 0000000000000..481c13c4cca52 --- /dev/null +++ b/obj/machinery/mineral/stacking_machine/laborstacker.html @@ -0,0 +1 @@ +/obj/machinery/mineral/stacking_machine/laborstacker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

laborstacker

Prisoner Collection Unit

Vars

labor_consoleLabor claim console synced to our stacking machine, set by the console.
pointsIdle points sitting in the machine left to be claimed.

Var Details

labor_console

Labor claim console synced to our stacking machine, set by the console.

points

Idle points sitting in the machine left to be claimed.

\ No newline at end of file diff --git a/obj/machinery/mineral/stacking_unit_console.html b/obj/machinery/mineral/stacking_unit_console.html new file mode 100644 index 0000000000000..53659cdfd92e1 --- /dev/null +++ b/obj/machinery/mineral/stacking_unit_console.html @@ -0,0 +1 @@ +/obj/machinery/mineral/stacking_unit_console - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stacking_unit_console

Mineral stacking unit console

Vars

machineConnected stacking machine

Var Details

machine

Connected stacking machine

\ No newline at end of file diff --git a/obj/machinery/modular_computer.html b/obj/machinery/modular_computer.html new file mode 100644 index 0000000000000..f4d5138d95e0b --- /dev/null +++ b/obj/machinery/modular_computer.html @@ -0,0 +1 @@ +/obj/machinery/modular_computer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

modular_computer

Vars

base_active_power_usagePower usage when the computer is open (screen is active) and can be interacted with.
base_idle_power_usagePower usage when the computer is idle and screen is off (currently only applies to laptops)
cpuCPU that handles most logic while this type only handles power and other specific things.
hardware_flagA flag that describes this device type
icon_state_poweredIcon state when the computer is turned on.
icon_state_unpoweredIcon state when the computer is turned off.
light_strengthLight luminosity when turned on
max_idle_programsAmount of programs that can be ran at once
screen_icon_screensaverIcon state overlay when the computer is powered, but not 'switched on'.
screen_icon_state_menuIcon state overlay when the computer is turned on, but no program is loaded that would override the screen.
steel_sheet_costAmount of steel sheets refunded when disassembling an empty frame of this computer.

Procs

processTry to recharge our internal cell if it isn't fully charged.
relay_icon_updateEats the "source" arg because update_icon actually expects args now.

Var Details

base_active_power_usage

Power usage when the computer is open (screen is active) and can be interacted with.

base_idle_power_usage

Power usage when the computer is idle and screen is off (currently only applies to laptops)

cpu

CPU that handles most logic while this type only handles power and other specific things.

hardware_flag

A flag that describes this device type

icon_state_powered

Icon state when the computer is turned on.

icon_state_unpowered

Icon state when the computer is turned off.

light_strength

Light luminosity when turned on

max_idle_programs

Amount of programs that can be ran at once

screen_icon_screensaver

Icon state overlay when the computer is powered, but not 'switched on'.

screen_icon_state_menu

Icon state overlay when the computer is turned on, but no program is loaded that would override the screen.

steel_sheet_cost

Amount of steel sheets refunded when disassembling an empty frame of this computer.

Proc Details

process

Try to recharge our internal cell if it isn't fully charged.

relay_icon_update

Eats the "source" arg because update_icon actually expects args now.

\ No newline at end of file diff --git a/obj/machinery/modular_computer/preset.html b/obj/machinery/modular_computer/preset.html new file mode 100644 index 0000000000000..9a74ebc407642 --- /dev/null +++ b/obj/machinery/modular_computer/preset.html @@ -0,0 +1 @@ +/obj/machinery/modular_computer/preset - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

preset

Vars

starting_programsList of programs the computer starts with, given on Initialize.

Var Details

starting_programs

List of programs the computer starts with, given on Initialize.

\ No newline at end of file diff --git a/obj/machinery/modular_computer/preset/cargochat.html b/obj/machinery/modular_computer/preset/cargochat.html new file mode 100644 index 0000000000000..684002dad3b59 --- /dev/null +++ b/obj/machinery/modular_computer/preset/cargochat.html @@ -0,0 +1 @@ +/obj/machinery/modular_computer/preset/cargochat - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cargochat

Vars

department_typeWhat department type is assigned to this console?

Var Details

department_type

What department type is assigned to this console?

\ No newline at end of file diff --git a/obj/machinery/modular_shield/module.html b/obj/machinery/modular_shield/module.html new file mode 100644 index 0000000000000..a266adc8448b3 --- /dev/null +++ b/obj/machinery/modular_shield/module.html @@ -0,0 +1 @@ +/obj/machinery/modular_shield/module - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

module

The general code used for machines that want to connect to the network

Vars

connected_nodeThe node we are connected to if we find one
connected_turfThis is the turf that we are facing and able to search for connections through
shield_generatorThe shield generator we are connected to if we find one or a node provides us one

Procs

try_connectchecks for a valid machine in front of us and connects to it

Var Details

connected_node

The node we are connected to if we find one

connected_turf

This is the turf that we are facing and able to search for connections through

shield_generator

The shield generator we are connected to if we find one or a node provides us one

Proc Details

try_connect

checks for a valid machine in front of us and connects to it

\ No newline at end of file diff --git a/obj/machinery/modular_shield/module/charger.html b/obj/machinery/modular_shield/module/charger.html new file mode 100644 index 0000000000000..2d391541822e5 --- /dev/null +++ b/obj/machinery/modular_shield/module/charger.html @@ -0,0 +1 @@ +/obj/machinery/modular_shield/module/charger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

charger

Vars

charge_boostAmount of regeneration this machine grants the connected generator

Var Details

charge_boost

Amount of regeneration this machine grants the connected generator

\ No newline at end of file diff --git a/obj/machinery/modular_shield/module/node.html b/obj/machinery/modular_shield/module/node.html new file mode 100644 index 0000000000000..3caefc140e875 --- /dev/null +++ b/obj/machinery/modular_shield/module/node.html @@ -0,0 +1 @@ +/obj/machinery/modular_shield/module/node - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

node

Vars

connected_through_usThe lazy list of machines that are connected to us and want connection to a generator

Procs

connect_connected_through_usIf we are connected to a shield generator this proc will connect anything connected to us to that generator
disconnect_connected_through_usThis proc disconnects modules connected through us from the shield generator in the event that we lose connection

Var Details

connected_through_us

The lazy list of machines that are connected to us and want connection to a generator

Proc Details

connect_connected_through_us

If we are connected to a shield generator this proc will connect anything connected to us to that generator

disconnect_connected_through_us

This proc disconnects modules connected through us from the shield generator in the event that we lose connection

\ No newline at end of file diff --git a/obj/machinery/modular_shield/module/relay.html b/obj/machinery/modular_shield/module/relay.html new file mode 100644 index 0000000000000..7395ca8325e19 --- /dev/null +++ b/obj/machinery/modular_shield/module/relay.html @@ -0,0 +1 @@ +/obj/machinery/modular_shield/module/relay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

relay

Vars

range_boostAmount of max range this machine grants the connected generator

Var Details

range_boost

Amount of max range this machine grants the connected generator

\ No newline at end of file diff --git a/obj/machinery/modular_shield/module/well.html b/obj/machinery/modular_shield/module/well.html new file mode 100644 index 0000000000000..011616d393e97 --- /dev/null +++ b/obj/machinery/modular_shield/module/well.html @@ -0,0 +1 @@ +/obj/machinery/modular_shield/module/well - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

well

Vars

strength_boostAmount of max strength this machine grants the connected generator

Var Details

strength_boost

Amount of max strength this machine grants the connected generator

\ No newline at end of file diff --git a/obj/machinery/modular_shield_generator.html b/obj/machinery/modular_shield_generator.html new file mode 100644 index 0000000000000..9aeb2bb069203 --- /dev/null +++ b/obj/machinery/modular_shield_generator.html @@ -0,0 +1 @@ +/obj/machinery/modular_shield_generator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

modular_shield_generator

Vars

activeDoesn't actually control it, just tells us if its running or not, you can control by calling procs activate_shields and deactivate_shields
connected_modulesThe lazy list of machines that are connected to and boosting us
current_regenerationThe regeneration that the shield can support
deployed_shieldsThe lazy list of shields that are ours
exterior_onlyDetermines if we only generate a shield on space turfs or not
initiatingIf the generator is currently spawning the forcefield in
innate_radiusMax radius gained from our own parts
innate_regenRegeneration gained from our own parts
innate_strengthMax strength gained from our own parts
inside_shieldThe lazy list of turfs that are within the shield
list_of_turfsThis is the lazy list of perimeter turfs that we grab when making large shields of 10 or more radius
max_radiusDetermines the max radius the shield can support
max_regenerationShield Regeneration when at 100% efficiency
max_strengthDetermines max health of the shield
max_strength_boostMax Strength gained from machines connected to us
radiusCurrent radius the shield is set to, minimum 3
radius_boostMax Radius gained from machines connected to us
recoveringDetermines if we can turn it on or not, no longer recovering when back to max strength
regen_boostRegeneration gained from machines connected to us
stored_strengthCurrent health of shield

Procs

activate_shieldsgenerates the forcefield based on the given radius and calls calculate_regen to update the regen value accordingly
calculate_boostcalculations for the stats supplied by the network of machines that boost us
calculate_max_strengthCalculates the max strength or health of the forcefield, modifiers go here
calculate_radiusCalculates the max radius the shield generator can support, modifiers go here
calculate_regenerationCalculates the regeneration based on the status of the generator and boosts from network, modifiers go here
deactivate_shieldsqdels the forcefield and calls calculate regen to update the regen value accordingly
finish_fieldAfter giving people a grace period to react to we up the alpha value and make the forcefield dense
shield_drainReduces the strength of the shield based on the given integer
toggle_shieldstoggles the forcefield on and off

Var Details

active

Doesn't actually control it, just tells us if its running or not, you can control by calling procs activate_shields and deactivate_shields

connected_modules

The lazy list of machines that are connected to and boosting us

current_regeneration

The regeneration that the shield can support

deployed_shields

The lazy list of shields that are ours

exterior_only

Determines if we only generate a shield on space turfs or not

initiating

If the generator is currently spawning the forcefield in

innate_radius

Max radius gained from our own parts

innate_regen

Regeneration gained from our own parts

innate_strength

Max strength gained from our own parts

inside_shield

The lazy list of turfs that are within the shield

list_of_turfs

This is the lazy list of perimeter turfs that we grab when making large shields of 10 or more radius

max_radius

Determines the max radius the shield can support

max_regeneration

Shield Regeneration when at 100% efficiency

max_strength

Determines max health of the shield

max_strength_boost

Max Strength gained from machines connected to us

radius

Current radius the shield is set to, minimum 3

radius_boost

Max Radius gained from machines connected to us

recovering

Determines if we can turn it on or not, no longer recovering when back to max strength

regen_boost

Regeneration gained from machines connected to us

stored_strength

Current health of shield

Proc Details

activate_shields

generates the forcefield based on the given radius and calls calculate_regen to update the regen value accordingly

calculate_boost

calculations for the stats supplied by the network of machines that boost us

calculate_max_strength

Calculates the max strength or health of the forcefield, modifiers go here

calculate_radius

Calculates the max radius the shield generator can support, modifiers go here

calculate_regeneration

Calculates the regeneration based on the status of the generator and boosts from network, modifiers go here

deactivate_shields

qdels the forcefield and calls calculate regen to update the regen value accordingly

finish_field

After giving people a grace period to react to we up the alpha value and make the forcefield dense

shield_drain

Reduces the strength of the shield based on the given integer

toggle_shields

toggles the forcefield on and off

\ No newline at end of file diff --git a/obj/machinery/module_duplicator.html b/obj/machinery/module_duplicator.html new file mode 100644 index 0000000000000..8de043ec24aee --- /dev/null +++ b/obj/machinery/module_duplicator.html @@ -0,0 +1 @@ +/obj/machinery/module_duplicator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

module_duplicator

Module duplicator, allows you to save and recreate module components.

Vars

cost_per_componentConstant material cost per component
efficiency_coeffCost efficiency of this machine
materialsThe internal material bus
scanned_designsList of designs scanned and saved

Var Details

cost_per_component

Constant material cost per component

efficiency_coeff

Cost efficiency of this machine

materials

The internal material bus

scanned_designs

List of designs scanned and saved

\ No newline at end of file diff --git a/obj/machinery/mounted_machine_gun.html b/obj/machinery/mounted_machine_gun.html new file mode 100644 index 0000000000000..fec389c22eedb --- /dev/null +++ b/obj/machinery/mounted_machine_gun.html @@ -0,0 +1 @@ +/obj/machinery/mounted_machine_gun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mounted_machine_gun

Vars

ammo_boxOur currently loaded ammo box.
ammo_box_typeOur ammo box type.
barrel_heatThe current barrel heat.
barrel_heat_per_shotHow much barrel heat we generate per shot
boltThe position of our bolt. TRUE = locked(ready to fire) FALSE = forward(not ready to fire)
cooldown_timeHow long it takes until we can fire again after a heatlock.
cover_openIs our cover open? Used to access the ammo box!
current_userA reference to our current user.
fire_delayThe delay between each shot that is sent downrange.
firesoundSound to play when firing
last_target_atomOur last registered target atom.
max_barrel_heatHow much heat we can sustain before locking.
nextshot_timer_idThe current timer to fire the next round.
overheatedHave we overheated?
overheatsoundSound to play when overheated
passive_barrel_cooldown_rateHow quickly the barrel naturally cools down
spreadHow much spread we have for projectiles.
suppressedDo we have a supressor or something installed?
undeploy_timeHow long it takes for a wrench user to undeploy the object
undeployed_typeWhat we drop when undeployed. If null, cannot be undeployed.
view_rangeThe extra range that this turret gives regarding viewrange.

Procs

register_userRegisters all the required signals and sets up the client to work with the turret.
wrench_actUndeploying, for when you want to move your big dakka around

Var Details

ammo_box

Our currently loaded ammo box.

ammo_box_type

Our ammo box type.

barrel_heat

The current barrel heat.

barrel_heat_per_shot

How much barrel heat we generate per shot

bolt

The position of our bolt. TRUE = locked(ready to fire) FALSE = forward(not ready to fire)

cooldown_time

How long it takes until we can fire again after a heatlock.

cover_open

Is our cover open? Used to access the ammo box!

current_user

A reference to our current user.

fire_delay

The delay between each shot that is sent downrange.

firesound

Sound to play when firing

last_target_atom

Our last registered target atom.

max_barrel_heat

How much heat we can sustain before locking.

nextshot_timer_id

The current timer to fire the next round.

overheated

Have we overheated?

overheatsound

Sound to play when overheated

passive_barrel_cooldown_rate

How quickly the barrel naturally cools down

spread

How much spread we have for projectiles.

suppressed

Do we have a supressor or something installed?

undeploy_time

How long it takes for a wrench user to undeploy the object

undeployed_type

What we drop when undeployed. If null, cannot be undeployed.

view_range

The extra range that this turret gives regarding viewrange.

Proc Details

register_user

Registers all the required signals and sets up the client to work with the turret.

wrench_act

Undeploying, for when you want to move your big dakka around

\ No newline at end of file diff --git a/obj/machinery/navbeacon.html b/obj/machinery/navbeacon.html new file mode 100644 index 0000000000000..425981554a11a --- /dev/null +++ b/obj/machinery/navbeacon.html @@ -0,0 +1 @@ +/obj/machinery/navbeacon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

navbeacon

Vars

codesassociative list of transponder codes
codes_txtcodes as set on map: "tag1;tag2" or "tag1=value;tag2=value"
controls_lockedtrue if controls are locked
cover_lockedtrue if cover is locked
locationlocation response text
original_locationoriginal location name, to allow resets

Procs

glob_lists_deregisterRemoves the nav beacon from the global beacon lists
glob_lists_registerRegisters the navbeacon to the global beacon lists
set_codesSet the transponder codes assoc list from codes_txt during initialization, or during reset
toggle_codeAdds or removes a specific code

Var Details

codes

associative list of transponder codes

codes_txt

codes as set on map: "tag1;tag2" or "tag1=value;tag2=value"

controls_locked

true if controls are locked

cover_locked

true if cover is locked

location

location response text

original_location

original location name, to allow resets

Proc Details

glob_lists_deregister

Removes the nav beacon from the global beacon lists

glob_lists_register

Registers the navbeacon to the global beacon lists

set_codes

Set the transponder codes assoc list from codes_txt during initialization, or during reset

toggle_code

Adds or removes a specific code

\ No newline at end of file diff --git a/obj/machinery/nebula_shielding.html b/obj/machinery/nebula_shielding.html new file mode 100644 index 0000000000000..12d68e7da0b30 --- /dev/null +++ b/obj/machinery/nebula_shielding.html @@ -0,0 +1 @@ +/obj/machinery/nebula_shielding - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

nebula_shielding

Machinery that block nebulas. This type is for convenience, you can set nebula shielding on other objects as well using add_to_nebula_shielding()

Vars

active_icon_stateState we use when actively blocking a nebula
broken_icon_stateState for when we're broken and wont work anymore. Make sure to also set integrity_failure for this to work
nebula_typeThe type of nebula that we shield against
power_use_per_blockHow much power we use every time we block the nebula's effects
shielding_strengthStrength of the shield we apply

Procs

generate_rewardGenerate a resource for defending against the nebula
get_nebula_shieldingNebula is asking us how strong we are. Return our shield strength is all is well

Var Details

active_icon_state

State we use when actively blocking a nebula

broken_icon_state

State for when we're broken and wont work anymore. Make sure to also set integrity_failure for this to work

nebula_type

The type of nebula that we shield against

power_use_per_block

How much power we use every time we block the nebula's effects

shielding_strength

Strength of the shield we apply

Proc Details

generate_reward

Generate a resource for defending against the nebula

get_nebula_shielding

Nebula is asking us how strong we are. Return our shield strength is all is well

\ No newline at end of file diff --git a/obj/machinery/nebula_shielding/emergency.html b/obj/machinery/nebula_shielding/emergency.html new file mode 100644 index 0000000000000..251b879019ea8 --- /dev/null +++ b/obj/machinery/nebula_shielding/emergency.html @@ -0,0 +1 @@ +/obj/machinery/nebula_shielding/emergency - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

emergency

Short-lived nebula shielding sent by centcom in-case there hasn't been shielding for a while

Vars

detonate_inHow long we work untill we self-destruct

Procs

self_destructWe don't live for very long, so self-destruct

Var Details

detonate_in

How long we work untill we self-destruct

Proc Details

self_destruct

We don't live for very long, so self-destruct

\ No newline at end of file diff --git a/obj/machinery/netpod.html b/obj/machinery/netpod.html new file mode 100644 index 0000000000000..ebfb8ce088c20 --- /dev/null +++ b/obj/machinery/netpod.html @@ -0,0 +1,4 @@ +/obj/machinery/netpod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

netpod

Vars

avatar_refHolds this to see if it needs to generate a new one
cached_outfitsStatic list of outfits to select from
connectedWhether we have an ongoing connection
disconnect_damageThe amount of brain damage done from force disconnects
netsuitA player selected outfit by clicking the netpod
server_refThe linked quantum server

Procs

add_healingPuts the occupant in netpod stasis, basically short-circuiting environmental conditions
auto_disconnectDisconnects the occupant after a certain time so they aren't just hibernating in netpod stasis. A balance change
disconnect_occupantHandles occupant post-disconnection effects like damage, sounds, etc
enter_matrix
find_serverFinds a server and sets the server_ref
make_outfit_collectionCreates a list of outfit entries for the UI.
on_brokenMachine has been broken - handles signals and reverting sprites
on_damage_takenChecks the integrity, alerts occupants
on_domain_completePuts points on the current occupant's card account
on_domain_scrubbedThe domain has been fully purged, so we should double check our avatar is deleted
on_power_lossBoots out anyone in the machine && opens it
on_server_upgradedWhen the server is upgraded, drops brain damage a little
resolve_outfitResolves a path to an outfit.
sever_connectionSevers the connection with the current avatar
shut_podCloses the machine without shoving in an occupant
validate_entryChecks for cases to eject/fail connecting an avatar

Var Details

avatar_ref

Holds this to see if it needs to generate a new one

cached_outfits

Static list of outfits to select from

connected

Whether we have an ongoing connection

disconnect_damage

The amount of brain damage done from force disconnects

netsuit

A player selected outfit by clicking the netpod

server_ref

The linked quantum server

Proc Details

add_healing

Puts the occupant in netpod stasis, basically short-circuiting environmental conditions

auto_disconnect

Disconnects the occupant after a certain time so they aren't just hibernating in netpod stasis. A balance change

disconnect_occupant

Handles occupant post-disconnection effects like damage, sounds, etc

enter_matrix

Enter Matrix

+

Finds any current avatars from this chair - or generates a new one

+

New avatars cost 1 attempt, and this will eject if there's none left

+

Connects the mind to the avatar if everything is ok

find_server

Finds a server and sets the server_ref

make_outfit_collection

Creates a list of outfit entries for the UI.

on_broken

Machine has been broken - handles signals and reverting sprites

on_damage_taken

Checks the integrity, alerts occupants

on_domain_complete

Puts points on the current occupant's card account

on_domain_scrubbed

The domain has been fully purged, so we should double check our avatar is deleted

on_power_loss

Boots out anyone in the machine && opens it

on_server_upgraded

When the server is upgraded, drops brain damage a little

resolve_outfit

Resolves a path to an outfit.

sever_connection

Severs the connection with the current avatar

shut_pod

Closes the machine without shoving in an occupant

validate_entry

Checks for cases to eject/fail connecting an avatar

\ No newline at end of file diff --git a/obj/machinery/newscaster.html b/obj/machinery/newscaster.html new file mode 100644 index 0000000000000..24b39d3c3bff3 --- /dev/null +++ b/obj/machinery/newscaster.html @@ -0,0 +1,21 @@ +/obj/machinery/newscaster - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

newscaster

Vars

active_requestThe station request datum being affected by UI actions.
admin_accessThe access required to access D-notices.
alertIs there currently an alert on this newscaster that hasn't been seen yet?
bounty_textText of the currently written bounty
bounty_valueValue of the currently bounty input
channel_descWhat is the current, in-creation channel's description going to be?
channel_nameWhat is the current, in-creation channel's name going to be?
comment_textWhat is the current, in-creation comment's body going to be?
creating_channelIs the current user creating a new channel at the moment?
creating_commentIs the current user creating a new comment at the moment?
crime_descriptionWhat is the user submitted, crime description for the new wanted issue?
criminal_nameWhat is the user submitted, criminal name for the new wanted issue?
current_channelWhat newscaster channel is currently being viewed by the player?
current_imageThe current image that will be submitted with the newscaster story.
current_messageWhat newscaster feed_message is currently having a comment written for it?
current_userReference to the currently logged in user.
feed_channel_messageThe message that's currently being written for a feed story.
newscaster_usernameName of the logged in user.
paper_remainingHow much paper is contained within the newscaster?
security_accessThe access required to submit & remove wanted issues.
viewing_wantedIs the current user editing or viewing a new wanted issue at the moment?

Procs

apply_to_bountyThis sorts through the current list of bounties, and confirms that the intended request found is correct. +Then, adds the current user to the list of applicants to that bounty.
attach_photoThis takes a held photograph, and updates the current_image variable with that of the held photograph's image. +*user: The mob who is being checked for a held photo object.
create_bountyThis creates a new bounty to the global list of bounty requests, alongisde the provided value of the request, and the owner of the request. +For more info, see datum/station_request.
create_channelPerforms a series of sanity checks before giving the user confirmation to create a new feed_channel using channel_name, and channel_desc. +*channel_locked: This variable determines if other users than the author can make comments and new feed_stories on this channel.
create_commentConstructs a comment to attach to the currently selected feed_message of choice, assuming that a user can be found and that a message body has been written.
create_storyCreates a new feed story to the global newscaster network. +Verifies that the message is being written to a real feed_channel, then provides a text input for the feed story to be written into. +Finally, it submits the message to the network, is logged globally, and clears all message-specific variables from the machine.
delete_bounty_requestThis proc removes a station_request from the global list of requests, after checking that the owner of that request is the one who is trying to remove it.
needs_repairreturns (machine_stat & broken)
news_alertWhen a new feed message is made that will alert all newscasters, this causes the newscasters to sent out a spoken message as well as create a sound.
pay_applicantThis pays out the current request_target the amount held by the active request's assigned value, and then clears the active request from the global list.
print_paperThis takes all current feed stories and messages, and prints them onto a newspaper, after checking that the newscaster has been loaded with paper. +The newscaster then prints the paper to the floor.
remove_alertThis clears alerts on the newscaster from a new message being published and updates the newscaster's appearance.
send_photo_dataSends photo data to build the newscaster article.
start_create_channelThis proc performs checks before enabling the creating_channel var on the newscaster, such as preventing a user from having multiple channels, +preventing an un-ID'd user from making a channel, and preventing censored authors from making a channel. +Otherwise, sets creating_channel to TRUE.
toggle_photoSelects a currently held photo from the user's hand and makes it the current_image held by the newscaster. +If a photo is still held in the newscaster, it will otherwise clear it from the machine.

Var Details

active_request

The station request datum being affected by UI actions.

admin_access

The access required to access D-notices.

alert

Is there currently an alert on this newscaster that hasn't been seen yet?

bounty_text

Text of the currently written bounty

bounty_value

Value of the currently bounty input

channel_desc

What is the current, in-creation channel's description going to be?

channel_name

What is the current, in-creation channel's name going to be?

comment_text

What is the current, in-creation comment's body going to be?

creating_channel

Is the current user creating a new channel at the moment?

creating_comment

Is the current user creating a new comment at the moment?

crime_description

What is the user submitted, crime description for the new wanted issue?

criminal_name

What is the user submitted, criminal name for the new wanted issue?

current_channel

What newscaster channel is currently being viewed by the player?

current_image

The current image that will be submitted with the newscaster story.

current_message

What newscaster feed_message is currently having a comment written for it?

current_user

Reference to the currently logged in user.

feed_channel_message

The message that's currently being written for a feed story.

newscaster_username

Name of the logged in user.

paper_remaining

How much paper is contained within the newscaster?

security_access

The access required to submit & remove wanted issues.

viewing_wanted

Is the current user editing or viewing a new wanted issue at the moment?

Proc Details

apply_to_bounty

This sorts through the current list of bounties, and confirms that the intended request found is correct. +Then, adds the current user to the list of applicants to that bounty.

attach_photo

This takes a held photograph, and updates the current_image variable with that of the held photograph's image. +*user: The mob who is being checked for a held photo object.

create_bounty

This creates a new bounty to the global list of bounty requests, alongisde the provided value of the request, and the owner of the request. +For more info, see datum/station_request.

create_channel

Performs a series of sanity checks before giving the user confirmation to create a new feed_channel using channel_name, and channel_desc. +*channel_locked: This variable determines if other users than the author can make comments and new feed_stories on this channel.

create_comment

Constructs a comment to attach to the currently selected feed_message of choice, assuming that a user can be found and that a message body has been written.

create_story

Creates a new feed story to the global newscaster network. +Verifies that the message is being written to a real feed_channel, then provides a text input for the feed story to be written into. +Finally, it submits the message to the network, is logged globally, and clears all message-specific variables from the machine.

delete_bounty_request

This proc removes a station_request from the global list of requests, after checking that the owner of that request is the one who is trying to remove it.

needs_repair

returns (machine_stat & broken)

news_alert

When a new feed message is made that will alert all newscasters, this causes the newscasters to sent out a spoken message as well as create a sound.

pay_applicant

This pays out the current request_target the amount held by the active request's assigned value, and then clears the active request from the global list.

print_paper

This takes all current feed stories and messages, and prints them onto a newspaper, after checking that the newscaster has been loaded with paper. +The newscaster then prints the paper to the floor.

remove_alert

This clears alerts on the newscaster from a new message being published and updates the newscaster's appearance.

send_photo_data

Sends photo data to build the newscaster article.

start_create_channel

This proc performs checks before enabling the creating_channel var on the newscaster, such as preventing a user from having multiple channels, +preventing an un-ID'd user from making a channel, and preventing censored authors from making a channel. +Otherwise, sets creating_channel to TRUE.

toggle_photo

Selects a currently held photo from the user's hand and makes it the current_image held by the newscaster. +If a photo is still held in the newscaster, it will otherwise clear it from the machine.

\ No newline at end of file diff --git a/obj/machinery/ntnet_relay.html b/obj/machinery/ntnet_relay.html new file mode 100644 index 0000000000000..9da5ef91239ca --- /dev/null +++ b/obj/machinery/ntnet_relay.html @@ -0,0 +1 @@ +/obj/machinery/ntnet_relay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ntnet_relay

Vars

dos_failure(D)DoS-attack-related failure causing it not to be operational any longer.
relay_enabledOn / off status for the relay machine, toggleable by the user.

Procs

set_dos_failureProc called to change the value of the dos_failure variable and append behavior related to its change.
set_relay_enabledProc called to change the value of the relay_enabled variable and append behavior related to its change.

Var Details

dos_failure

(D)DoS-attack-related failure causing it not to be operational any longer.

relay_enabled

On / off status for the relay machine, toggleable by the user.

Proc Details

set_dos_failure

Proc called to change the value of the dos_failure variable and append behavior related to its change.

set_relay_enabled

Proc called to change the value of the relay_enabled variable and append behavior related to its change.

\ No newline at end of file diff --git a/obj/machinery/nuclearbomb.html b/obj/machinery/nuclearbomb.html new file mode 100644 index 0000000000000..0957923300193 --- /dev/null +++ b/obj/machinery/nuclearbomb.html @@ -0,0 +1,6 @@ +/obj/machinery/nuclearbomb - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

nuclearbomb

Vars

authThe nuke disk currently inserted into the nuke
coreThe nuke core within the nuke, created in initialize
countdownA reference to the countdown that goes up over the nuke
deconstruction_stateThe current state of deconstructing / opening up the nuke to access the core
detonation_timerworld time tracker for when we're going to explode
explodedWhether we've actually fully exploded
explodingWhether the timer has elapsed and we're currently exploding
interiorOverlay - shows the interior of the nuke
lightsOverlay - flashing lights over the nuke
maximum_timer_setWhat the max value the timer can be, in seconds
minimum_timer_setWhat the min value the timer can be, in seconds
numeric_inputThe current input of the numpad on the bomb
previous_levelThe alert level that was set before the nuke started, so we can revert to the correct level after
proper_bombif TRUE, this nuke is actually a real nuke, and not a prank or toy
r_codeThe code we need to detonate this nuke. Starts as "admin", purposefully un-enterable
safetyWhether the nuke safety is on, can't explode if it is
timer_setWhat the timer is set to, in seconds
timingWhether we're currently timing an explosive and counting down
ui_modeWhat mode the UI currently is in
yes_codeIf TRUE, the correct code has been entered and we can start the nuke

Procs

arm_nukeArms the nuke, making it active and triggering all pinpointers to start counting down (+delta alert)
disarm_nukeDisarms the nuke, reverting all pinpointers and the security level
disk_checkChecks if the disk inserted is a real nuke disk or not.
explodeBegins the process of exploding the nuke. +[proc/explode] -> [proc/actually_explode] -> [proc/really_actually_explode])
get_cinematic_typeGets what type of cinematic this nuke showcases depending on where we detonated.
get_nuke_stateGets the current state of the nuke.
get_time_leftIf the nuke is active, gets how much time is left until it detonates, in seconds. +If the nuke is not active, gets how much time the nuke is set for, in seconds.
nuke_effectsCause nuke effects to the passed z-levels.
set_anchorAnchors the nuke, duh. Can only be done if the disk is inside.
toggle_nuke_armedArms the nuke, or disarms it if it's already active.
toggle_nuke_safetyToggles the safety of the nuke.
update_ui_modeChanges what mode the UI is depending on the state of the nuke.

Var Details

auth

The nuke disk currently inserted into the nuke

core

The nuke core within the nuke, created in initialize

countdown

A reference to the countdown that goes up over the nuke

deconstruction_state

The current state of deconstructing / opening up the nuke to access the core

detonation_timer

world time tracker for when we're going to explode

exploded

Whether we've actually fully exploded

exploding

Whether the timer has elapsed and we're currently exploding

interior

Overlay - shows the interior of the nuke

lights

Overlay - flashing lights over the nuke

maximum_timer_set

What the max value the timer can be, in seconds

minimum_timer_set

What the min value the timer can be, in seconds

numeric_input

The current input of the numpad on the bomb

previous_level

The alert level that was set before the nuke started, so we can revert to the correct level after

proper_bomb

if TRUE, this nuke is actually a real nuke, and not a prank or toy

r_code

The code we need to detonate this nuke. Starts as "admin", purposefully un-enterable

safety

Whether the nuke safety is on, can't explode if it is

timer_set

What the timer is set to, in seconds

timing

Whether we're currently timing an explosive and counting down

ui_mode

What mode the UI currently is in

yes_code

If TRUE, the correct code has been entered and we can start the nuke

Proc Details

arm_nuke

Arms the nuke, making it active and triggering all pinpointers to start counting down (+delta alert)

disarm_nuke

Disarms the nuke, reverting all pinpointers and the security level

disk_check

Checks if the disk inserted is a real nuke disk or not.

explode

Begins the process of exploding the nuke. +[proc/explode] -> [proc/actually_explode] -> [proc/really_actually_explode])

+

Goes through a few timers and plays a cinematic.

get_cinematic_type

Gets what type of cinematic this nuke showcases depending on where we detonated.

get_nuke_state

Gets the current state of the nuke.

get_time_left

If the nuke is active, gets how much time is left until it detonates, in seconds. +If the nuke is not active, gets how much time the nuke is set for, in seconds.

nuke_effects

Cause nuke effects to the passed z-levels.

set_anchor

Anchors the nuke, duh. Can only be done if the disk is inside.

toggle_nuke_armed

Arms the nuke, or disarms it if it's already active.

toggle_nuke_safety

Toggles the safety of the nuke.

update_ui_mode

Changes what mode the UI is depending on the state of the nuke.

\ No newline at end of file diff --git a/obj/machinery/nuclearbomb/beer.html b/obj/machinery/nuclearbomb/beer.html new file mode 100644 index 0000000000000..26a4ce808d2ec --- /dev/null +++ b/obj/machinery/nuclearbomb/beer.html @@ -0,0 +1 @@ +/obj/machinery/nuclearbomb/beer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

beer

A fake nuke that actually contains beer.

Vars

flood_reagentReagent that is produced once the nuke detonates.
kegThe keg located within the beer nuke.
overflow_controlRound event control we might as well keep track of instead of locating every time

Procs

on_created_round_eventsignal sent from overflow control when it fires an event

Var Details

flood_reagent

Reagent that is produced once the nuke detonates.

keg

The keg located within the beer nuke.

overflow_control

Round event control we might as well keep track of instead of locating every time

Proc Details

on_created_round_event

signal sent from overflow control when it fires an event

\ No newline at end of file diff --git a/obj/machinery/ore_silo.html b/obj/machinery/ore_silo.html new file mode 100644 index 0000000000000..a62f97066023f --- /dev/null +++ b/obj/machinery/ore_silo.html @@ -0,0 +1,9 @@ +/obj/machinery/ore_silo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ore_silo

Vars

holdsList of all connected components that are on hold from accessing materials.
materialsMaterial Container
ore_connected_machinesList of all components that are sharing ores with this silo.

Procs

silo_logCreates a log entry for depositing/withdrawing from the silo both ingame and in text based log

Var Details

holds

List of all connected components that are on hold from accessing materials.

materials

Material Container

ore_connected_machines

List of all components that are sharing ores with this silo.

Proc Details

silo_log

Creates a log entry for depositing/withdrawing from the silo both ingame and in text based log

+

Arguments:

+
    +
  • M: The machine performing the action.
  • +
  • action: Text that visually describes the action (smelted/deposited/resupplied...)
  • +
  • amount: The amount of sheets/objects deposited/withdrawn by this action. Positive for depositing, negative for withdrawing.
  • +
  • noun: Name of the object the action was performed with (sheet, units, ore...)
  • +
  • [mats][list]: Assoc list in format (material datum = amount of raw materials). Wants the actual amount of raw (iron, glass...) materials involved in this action. If you have 10 metal sheets each worth 100 iron you would pass a list with the iron material datum = 1000
  • +
\ No newline at end of file diff --git a/obj/machinery/ore_silo/colony_lathe.html b/obj/machinery/ore_silo/colony_lathe.html new file mode 100644 index 0000000000000..1dd9c83cd2bd2 --- /dev/null +++ b/obj/machinery/ore_silo/colony_lathe.html @@ -0,0 +1 @@ +/obj/machinery/ore_silo/colony_lathe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

colony_lathe

Vars

packed_typeWhat this packs into

Var Details

packed_type

What this packs into

\ No newline at end of file diff --git a/obj/machinery/oven.html b/obj/machinery/oven.html new file mode 100644 index 0000000000000..d0b3d00456cb4 --- /dev/null +++ b/obj/machinery/oven.html @@ -0,0 +1 @@ +/obj/machinery/oven - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

oven

Vars

openWhether or not the oven is open.
oven_loopLooping sound for the oven
smoke_stateCurrent state of smoke coming from the oven
used_trayThe tray inside of this oven, if there is one.

Procs

add_tray_to_ovenAdds a tray to the oven, making sure the shit can get baked.
appears_activeUsed to determine if the oven appears active and cooking, or offline.
on_tray_movedCalled when the tray is moved out of the oven in some way
set_smoke_stateUpdates the smoke state to something else, setting particles if relevant

Var Details

open

Whether or not the oven is open.

oven_loop

Looping sound for the oven

smoke_state

Current state of smoke coming from the oven

used_tray

The tray inside of this oven, if there is one.

Proc Details

add_tray_to_oven

Adds a tray to the oven, making sure the shit can get baked.

appears_active

Used to determine if the oven appears active and cooking, or offline.

on_tray_moved

Called when the tray is moved out of the oven in some way

set_smoke_state

Updates the smoke state to something else, setting particles if relevant

\ No newline at end of file diff --git a/obj/machinery/oven/stone.html b/obj/machinery/oven/stone.html new file mode 100644 index 0000000000000..ad5d55f7deef2 --- /dev/null +++ b/obj/machinery/oven/stone.html @@ -0,0 +1 @@ +/obj/machinery/oven/stone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stone

Vars

random_oven_tray_typesA list of the different oven trays we can spawn with

Var Details

random_oven_tray_types

A list of the different oven trays we can spawn with

\ No newline at end of file diff --git a/obj/machinery/pdapainter.html b/obj/machinery/pdapainter.html new file mode 100644 index 0000000000000..8b5e358eb1267 --- /dev/null +++ b/obj/machinery/pdapainter.html @@ -0,0 +1,23 @@ +/obj/machinery/pdapainter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pdapainter

Basic machine used to paint PDAs and re-trim ID cards.

Vars

card_trimsA list of the card trims that this machine can currently imprint onto a card.
pda_type_blacklistA blacklist of PDA types that we should not be able to paint.
pda_typesA list of the PDA types that this machine can currently paint.
stored_id_cardCurrent ID card inserted into the machine.
stored_pdaCurrent PDA inserted into the machine.
target_deptSet to a region define (REGION_SECURITY for example) to create a departmental variant, limited to departmental options. If null, this is unrestricted.

Procs

eject_id_cardEject the stored ID card into the user's hands if possible, otherwise on the floor.
eject_pdaEject the stored PDA into the user's hands if possible, otherwise on the floor.
insert_id_cardInsert an ID card into the machine.
insert_pdaInsert a PDA into the machine.

Var Details

card_trims

A list of the card trims that this machine can currently imprint onto a card.

pda_type_blacklist

A blacklist of PDA types that we should not be able to paint.

pda_types

A list of the PDA types that this machine can currently paint.

stored_id_card

Current ID card inserted into the machine.

stored_pda

Current PDA inserted into the machine.

target_dept

Set to a region define (REGION_SECURITY for example) to create a departmental variant, limited to departmental options. If null, this is unrestricted.

Proc Details

eject_id_card

Eject the stored ID card into the user's hands if possible, otherwise on the floor.

+

Arguments:

+
    +
  • user - The user to try and eject the ID card into the hands of.
  • +

eject_pda

Eject the stored PDA into the user's hands if possible, otherwise on the floor.

+

Arguments:

+
    +
  • user - The user to try and eject the PDA into the hands of.
  • +

insert_id_card

Insert an ID card into the machine.

+

Will swap ID cards if one is already inside. Attempts to put the card into the user's hands if possible. +Returns TRUE on success, FALSE otherwise. +Arguments:

+
    +
  • new_id_card - The ID card to insert.
  • +
  • user - The user to try and eject the PDA into the hands of.
  • +

insert_pda

Insert a PDA into the machine.

+

Will swap PDAs if one is already inside. Attempts to put the PDA into the user's hands if possible. +Returns TRUE on success, FALSE otherwise. +Arguments:

+
    +
  • new_pda - The PDA to insert.
  • +
  • user - The user to try and eject the PDA into the hands of.
  • +
\ No newline at end of file diff --git a/obj/machinery/photobooth.html b/obj/machinery/photobooth.html new file mode 100644 index 0000000000000..746e502da456c --- /dev/null +++ b/obj/machinery/photobooth.html @@ -0,0 +1,6 @@ +/obj/machinery/photobooth - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

photobooth

Photobooth +A machine used to change occupant's security record photos, working similarly to a +camera, but doesn't give any physical photo to the user. +Links to buttons for remote control.

Vars

add_height_chartBoolean on whether we should add a height chart to the underlays of the people we take photos of.
button_idThe ID of the photobooth, used to connect it to a button.
taking_picturesBoolean on whether the machine is currently busy taking someone's pictures, so you can't start taking pictures while it's working.

Procs

finish_taking_picturesUpdates the records (if possible), giving feedback, and spitting the user out if all's well.
flashMimicing the camera, gives a flash effect by turning the light on and calling flash_end.
flash_endCalled by a timer to turn the light off to end the flash effect.
start_taking_picturesHandles the effects of taking pictures of the user, calling finish_taking_pictures +to actually update the records.

Var Details

add_height_chart

Boolean on whether we should add a height chart to the underlays of the people we take photos of.

button_id

The ID of the photobooth, used to connect it to a button.

taking_pictures

Boolean on whether the machine is currently busy taking someone's pictures, so you can't start taking pictures while it's working.

Proc Details

finish_taking_pictures

Updates the records (if possible), giving feedback, and spitting the user out if all's well.

flash

Mimicing the camera, gives a flash effect by turning the light on and calling flash_end.

flash_end

Called by a timer to turn the light off to end the flash effect.

start_taking_pictures

Handles the effects of taking pictures of the user, calling finish_taking_pictures +to actually update the records.

\ No newline at end of file diff --git a/obj/machinery/photocopier.html b/obj/machinery/photocopier.html new file mode 100644 index 0000000000000..60aa93f241e32 --- /dev/null +++ b/obj/machinery/photocopier.html @@ -0,0 +1,34 @@ +/obj/machinery/photocopier - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

photocopier

Vars

assA reference to a mob on top of the photocopier trying to copy their ass. Null if there is no mob.
busyIndicates whether the printer is currently busy copying or not.
color_modeUsed with photos. Determines if the copied photo will be in greyscale or color.
copies_leftVariable for the UI telling us how many copies are in the queue.
num_copiesHow many copies will be printed with one click of the "copy" button.
object_copyVariable that holds a reference to any object supported for photocopying inside the photocopier
paper_stackA stack for all the empty paper we have newly inserted (LIFO)
starting_paperThe amount of paper this photocoper starts with.
toner_cartridgeA reference to the toner cartridge that's inserted into the copier. Null if there is no cartridge.

Procs

check_assChecks the living mob ass exists and its location is the same as the photocopier.
check_busyDetermines if the printer is currently busy, informs the user if it is.
copier_blockedChecks if the copier is deleted, or has something dense at its location. Called in mouse_drop_receive()
copier_emptyChecks if there is an item inserted into the copier or a mob sitting on top of it.
delete_paperRemoves an amount of paper from the printer's storage. +This lets us pretend we actually consumed paper when we were actually printing something that wasn't paper.
do_copiesWill invoke do_copy_loop asynchronously. Passes the supplied arguments on to it.
do_copy_loopWill invoke the passed in copy_cb callback in 4 second intervals, and charge the user 5 credits for each copy made.
get_empty_paperReturns an empty paper, used for blanks and paper copies. +Prioritizes paper_stack, creates new paper in case paper_stack is empty.
get_paper_countGets the total amount of paper this printer has stored.
get_toner_colorReturns the color used for the printing operation. If the color is below TONER_LOW_PERCENTAGE, it returns a gray color.
give_pixel_offsetGives items a random x and y pixel offset, between -10 and 10 for each.
insert_empty_paperProc that handles insertion of empty paper, useful for copying later.
make_ass_copyHandles the copying of an ass photo.
make_blank_printHandles the copying of blanks. No mutating state, so this should not fail.
make_document_copyHandles the copying of documents.
make_paper_copyHandles the copying of paper. Transfers all the text, stamps and so on from the old paper, to the copy.
make_paperwork_copyHandles the copying of documents.
make_photo_copyHandles the copying of photos, which can be printed in either color or greyscale.
remove_photocopyCalled when someone hits the "remove item" button on the copier UI.
reset_busySets busy to FALSE.
setup_componentsSimply adds the necessary components for this to function.

Var Details

ass

A reference to a mob on top of the photocopier trying to copy their ass. Null if there is no mob.

busy

Indicates whether the printer is currently busy copying or not.

color_mode

Used with photos. Determines if the copied photo will be in greyscale or color.

copies_left

Variable for the UI telling us how many copies are in the queue.

num_copies

How many copies will be printed with one click of the "copy" button.

object_copy

Variable that holds a reference to any object supported for photocopying inside the photocopier

paper_stack

A stack for all the empty paper we have newly inserted (LIFO)

starting_paper

The amount of paper this photocoper starts with.

toner_cartridge

A reference to the toner cartridge that's inserted into the copier. Null if there is no cartridge.

Proc Details

check_ass

Checks the living mob ass exists and its location is the same as the photocopier.

+

Returns FALSE if ass doesn't exist or is not at the copier's location. Returns TRUE otherwise.

check_busy

Determines if the printer is currently busy, informs the user if it is.

copier_blocked

Checks if the copier is deleted, or has something dense at its location. Called in mouse_drop_receive()

copier_empty

Checks if there is an item inserted into the copier or a mob sitting on top of it.

+

Return FALSE is the copier has something inside of it. Returns TRUE if it doesn't.

delete_paper

Removes an amount of paper from the printer's storage. +This lets us pretend we actually consumed paper when we were actually printing something that wasn't paper.

do_copies

Will invoke do_copy_loop asynchronously. Passes the supplied arguments on to it.

do_copy_loop

Will invoke the passed in copy_cb callback in 4 second intervals, and charge the user 5 credits for each copy made.

+

Arguments:

+
    +
  • copy_cb - a callback for which proc to call. Should only be one of the make_x_copy() procs, such as make_paper_copy().
  • +
  • user - the mob who clicked copy.
  • +
  • paper_use - the amount of paper used in this operation
  • +
  • toner_use - the amount of toner used in this operation
  • +
  • copies_amount - the amount of copies we should make
  • +

get_empty_paper

Returns an empty paper, used for blanks and paper copies. +Prioritizes paper_stack, creates new paper in case paper_stack is empty.

get_paper_count

Gets the total amount of paper this printer has stored.

get_toner_color

Returns the color used for the printing operation. If the color is below TONER_LOW_PERCENTAGE, it returns a gray color.

give_pixel_offset

Gives items a random x and y pixel offset, between -10 and 10 for each.

+

This is done that when someone prints multiple papers, we dont have them all appear to be stacked in the same exact location.

+

Arguments:

+
    +
  • copied_item - The paper, document, or photo that was just spawned on top of the printer.
  • +

insert_empty_paper

Proc that handles insertion of empty paper, useful for copying later.

make_ass_copy

Handles the copying of an ass photo.

+

Calls check_ass() first to make sure that ass exists, among other conditions. Since this proc is called from a timer, it's possible that it was removed. +Additionally checks that the mob has their clothes off.

make_blank_print

Handles the copying of blanks. No mutating state, so this should not fail.

make_document_copy

Handles the copying of documents.

+

Checks first if document_copy exists. Since this proc is called from a timer, it's possible that it was removed.

make_paper_copy

Handles the copying of paper. Transfers all the text, stamps and so on from the old paper, to the copy.

+

Checks first if paper_copy exists. Since this proc is called from a timer, it's possible that it was removed.

make_paperwork_copy

Handles the copying of documents.

+

Checks first if paperwork_copy exists. Since this proc is called from a timer, it's possible that it was removed. +Copies the stamp from a given piece of paperwork if it is already stamped, allowing for you to sell photocopied paperwork at the risk of losing budget money.

make_photo_copy

Handles the copying of photos, which can be printed in either color or greyscale.

+

Checks first if picture exists. Since this proc is called from a timer, it's possible that it was removed.

remove_photocopy

Called when someone hits the "remove item" button on the copier UI.

+

If the user is a silicon, it drops the object at the location of the copier. If the user is not a silicon, it tries to put the object in their hands first. +Sets busy to FALSE because if the inserted item is removed, the copier should halt copying.

+

Arguments:

+
    +
  • object - the item we're trying to remove.
  • +
  • user - the user removing the item.
  • +

reset_busy

Sets busy to FALSE.

setup_components

Simply adds the necessary components for this to function.

\ No newline at end of file diff --git a/obj/machinery/pipedispenser.html b/obj/machinery/pipedispenser.html new file mode 100644 index 0000000000000..53c43dab3004e --- /dev/null +++ b/obj/machinery/pipedispenser.html @@ -0,0 +1 @@ +/obj/machinery/pipedispenser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pipedispenser

Vars

categorytype of dispenser
p_init_dirsmart pipe directions
paint_colorcolor of pipe

Var Details

category

type of dispenser

p_init_dir

smart pipe directions

paint_color

color of pipe

\ No newline at end of file diff --git a/obj/machinery/piratepad.html b/obj/machinery/piratepad.html new file mode 100644 index 0000000000000..cd01bccdc1b13 --- /dev/null +++ b/obj/machinery/piratepad.html @@ -0,0 +1 @@ +/obj/machinery/piratepad - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

piratepad

Vars

cargo_hold_idThis is the cargo hold ID used by the piratepad_control. Match these two to link them together.
idle_stateThis is the icon_state that this telepad uses when it's not in use.
sending_stateThis is the icon_state to flick when the goods are being sent off by the telepad.
warmup_stateThis is the icon_state that this telepad uses when it's warming up for goods teleportation.

Var Details

cargo_hold_id

This is the cargo hold ID used by the piratepad_control. Match these two to link them together.

idle_state

This is the icon_state that this telepad uses when it's not in use.

sending_state

This is the icon_state to flick when the goods are being sent off by the telepad.

warmup_state

This is the icon_state that this telepad uses when it's warming up for goods teleportation.

\ No newline at end of file diff --git a/obj/machinery/plate_press.html b/obj/machinery/plate_press.html new file mode 100644 index 0000000000000..d06d3f913c939 --- /dev/null +++ b/obj/machinery/plate_press.html @@ -0,0 +1 @@ +/obj/machinery/plate_press - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

plate_press

Procs

work_pressThis proc attempts to create a plate. User cannot move during this process.

Proc Details

work_press

This proc attempts to create a plate. User cannot move during this process.

\ No newline at end of file diff --git a/obj/machinery/plumbing.html b/obj/machinery/plumbing.html new file mode 100644 index 0000000000000..112ab71b537ad --- /dev/null +++ b/obj/machinery/plumbing.html @@ -0,0 +1,4 @@ +/obj/machinery/plumbing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plumbing

Basic plumbing object. +It doesn't really hold anything special, YET. +Objects that are plumbing but not a subtype are as of writing liquid pumps and the reagent_dispenser tank +Also please note that the plumbing component is toggled on and off by the component using a signal from default_unfasten_wrench, so dont worry about it

Vars

bufferPlumbing machinery is always gonna need reagents, so we might aswell put it here
reagent_flagsFlags for reagents, like INJECTABLE, TRANSPARENT bla bla everything thats in DEFINES/reagents.dm

Var Details

buffer

Plumbing machinery is always gonna need reagents, so we might aswell put it here

reagent_flags

Flags for reagents, like INJECTABLE, TRANSPARENT bla bla everything thats in DEFINES/reagents.dm

\ No newline at end of file diff --git a/obj/machinery/plumbing/acclimator.html b/obj/machinery/plumbing/acclimator.html new file mode 100644 index 0000000000000..9c7d272b0d88a --- /dev/null +++ b/obj/machinery/plumbing/acclimator.html @@ -0,0 +1 @@ +/obj/machinery/plumbing/acclimator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

acclimator

this the plumbing version of a heater/freezer.

Vars

acclimate_stateCOOLING, HEATING or NEUTRAL. We track this for change, so we dont needlessly update our icon
allowed_temperature_differenceI cant find a good name for this. Basically if target is 300, and this is 10, it will still target 300 but will start emptying itself at 290 and 310.
emptyingWhen conditions are met we send out the stored reagents
enabledAre we turned on or off? this is from the on and off button
target_temperaturetowards wich temperature do we build?

Var Details

acclimate_state

COOLING, HEATING or NEUTRAL. We track this for change, so we dont needlessly update our icon

allowed_temperature_difference

I cant find a good name for this. Basically if target is 300, and this is 10, it will still target 300 but will start emptying itself at 290 and 310.

emptying

When conditions are met we send out the stored reagents

enabled

Are we turned on or off? this is from the on and off button

target_temperature

towards wich temperature do we build?

\ No newline at end of file diff --git a/obj/machinery/plumbing/bottler.html b/obj/machinery/plumbing/bottler.html new file mode 100644 index 0000000000000..49afc3e28bbf5 --- /dev/null +++ b/obj/machinery/plumbing/bottler.html @@ -0,0 +1 @@ +/obj/machinery/plumbing/bottler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bottler

Vars

badspotwhere beakers that are already full will be sent
goodspotwhere things are sent
inputspotwhere things are taken
valid_output_configurationDoes the plumbing machine have a correct tile setup
wanted_amounthow much do we fill

Procs

interactchanging input ammount with a window
setDirchanges the tile array

Var Details

badspot

where beakers that are already full will be sent

goodspot

where things are sent

inputspot

where things are taken

valid_output_configuration

Does the plumbing machine have a correct tile setup

wanted_amount

how much do we fill

Proc Details

interact

changing input ammount with a window

setDir

changes the tile array

\ No newline at end of file diff --git a/obj/machinery/plumbing/buffer.html b/obj/machinery/plumbing/buffer.html new file mode 100644 index 0000000000000..00489e3e32c41 --- /dev/null +++ b/obj/machinery/plumbing/buffer.html @@ -0,0 +1 @@ +/obj/machinery/plumbing/buffer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

buffer

Procs

on_reagents_delHandles properly detaching signal hooks.

Proc Details

on_reagents_del

Handles properly detaching signal hooks.

\ No newline at end of file diff --git a/obj/machinery/plumbing/disposer.html b/obj/machinery/plumbing/disposer.html new file mode 100644 index 0000000000000..b5e94773459aa --- /dev/null +++ b/obj/machinery/plumbing/disposer.html @@ -0,0 +1 @@ +/obj/machinery/plumbing/disposer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

disposer

Vars

disposal_ratewe remove 5 reagents per second

Var Details

disposal_rate

we remove 5 reagents per second

\ No newline at end of file diff --git a/obj/machinery/plumbing/fermenter.html b/obj/machinery/plumbing/fermenter.html new file mode 100644 index 0000000000000..1768c88bf71a5 --- /dev/null +++ b/obj/machinery/plumbing/fermenter.html @@ -0,0 +1 @@ +/obj/machinery/plumbing/fermenter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fermenter

Vars

eat_dirinput dir

Procs

fermentuses fermentation proc similar to fermentation barrels

Var Details

eat_dir

input dir

Proc Details

ferment

uses fermentation proc similar to fermentation barrels

\ No newline at end of file diff --git a/obj/machinery/plumbing/filter.html b/obj/machinery/plumbing/filter.html new file mode 100644 index 0000000000000..98dcba3f06b55 --- /dev/null +++ b/obj/machinery/plumbing/filter.html @@ -0,0 +1 @@ +/obj/machinery/plumbing/filter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

filter

chemical plumbing filter. If it's not filtered by left and right, it goes straight.

Vars

english_leftwhitelist of chems but their name instead of path
english_rightwhitelist of chems but their name instead of path
leftwhitelist of chems id's that go to the left side. Empty to disable port
rightwhitelist of chem id's that go to the right side. Empty to disable port

Var Details

english_left

whitelist of chems but their name instead of path

english_right

whitelist of chems but their name instead of path

left

whitelist of chems id's that go to the left side. Empty to disable port

right

whitelist of chem id's that go to the right side. Empty to disable port

\ No newline at end of file diff --git a/obj/machinery/plumbing/floor_pump.html b/obj/machinery/plumbing/floor_pump.html new file mode 100644 index 0000000000000..2287b1ab7d1e9 --- /dev/null +++ b/obj/machinery/plumbing/floor_pump.html @@ -0,0 +1,12 @@ +/obj/machinery/plumbing/floor_pump - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

floor_pump

Base class for underfloor plumbing machines that mess with floor liquids.

Vars

drain_flatBase amount to drain
drain_percentAdditional ratio of liquid volume to drain
duct_layerThe default duct layer for mapping
height_regulatorOnly pump to this liquid level height. 0 means pump the most possible.
is_pumpingCurrently pumping.
tile_placedFloor tile is placed down
turned_onPump is turned on by engineer, etc.

Procs

are_reagents_readyIs the internal reagents container able to give or take liquid as appropriate?
can_runCan the pump actually run at all?
on_hideHandle COMSIG_OBJ_HIDE to toggle whether we're on the floor
pump_turfPump out the liquids on a turf.
set_regulatorChange regulator level -- ie. what liquid depth we are OK with, like a thermostat.
should_pumpShould we actually be pumping this tile right now? +Arguments:
should_regulator_permitShould the liquid height regulator allow water to be pumped here?

Var Details

drain_flat

Base amount to drain

drain_percent

Additional ratio of liquid volume to drain

duct_layer

The default duct layer for mapping

height_regulator

Only pump to this liquid level height. 0 means pump the most possible.

is_pumping

Currently pumping.

tile_placed

Floor tile is placed down

turned_on

Pump is turned on by engineer, etc.

Proc Details

are_reagents_ready

Is the internal reagents container able to give or take liquid as appropriate?

can_run

Can the pump actually run at all?

on_hide

Handle COMSIG_OBJ_HIDE to toggle whether we're on the floor

pump_turf

Pump out the liquids on a turf.

+

Arguments:

+
    +
  • affected_turf - the turf to pump liquids out of.
  • +
  • seconds_per_tick - machine process delta time
  • +
  • multiplier - Multiplier to apply to final volume we want to pump.
  • +

set_regulator

Change regulator level -- ie. what liquid depth we are OK with, like a thermostat.

should_pump

Should we actually be pumping this tile right now? +Arguments:

+
    +
  • affected_turf - the turf to check.
  • +

should_regulator_permit

Should the liquid height regulator allow water to be pumped here?

\ No newline at end of file diff --git a/obj/machinery/plumbing/floor_pump/output.html b/obj/machinery/plumbing/floor_pump/output.html new file mode 100644 index 0000000000000..f946680f8a624 --- /dev/null +++ b/obj/machinery/plumbing/floor_pump/output.html @@ -0,0 +1 @@ +/obj/machinery/plumbing/floor_pump/output - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

output

Vars

max_ext_kpaMax pressure on the turf before we stop pumping.
max_ext_volumeMax liquid volume on the turf before we stop pumping.
over_pressureIs the turf too high-pressured to pump more?
over_volumeIs the turf too full to pump more?

Var Details

max_ext_kpa

Max pressure on the turf before we stop pumping.

max_ext_volume

Max liquid volume on the turf before we stop pumping.

over_pressure

Is the turf too high-pressured to pump more?

over_volume

Is the turf too full to pump more?

\ No newline at end of file diff --git a/obj/machinery/plumbing/grinder_chemical.html b/obj/machinery/plumbing/grinder_chemical.html new file mode 100644 index 0000000000000..e6a2fbb4ae455 --- /dev/null +++ b/obj/machinery/plumbing/grinder_chemical.html @@ -0,0 +1,11 @@ +/obj/machinery/plumbing/grinder_chemical - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

grinder_chemical

Vars

grindingAre we grinding or juicing

Procs

check_interactableCheck if the user can interact with the grinder +Arguments
grindGrinds/Juices the atom +Arguments

Var Details

grinding

Are we grinding or juicing

Proc Details

check_interactable

Check if the user can interact with the grinder +Arguments

+
    +
  • mob/user - the player we are checking for
  • +

grind

Grinds/Juices the atom +Arguments

+
    +
  • AM - the atom to grind or juice
  • +
\ No newline at end of file diff --git a/obj/machinery/plumbing/liquid_pump.html b/obj/machinery/plumbing/liquid_pump.html new file mode 100644 index 0000000000000..c60aace86cb7a --- /dev/null +++ b/obj/machinery/plumbing/liquid_pump.html @@ -0,0 +1 @@ +/obj/machinery/plumbing/liquid_pump - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

liquid_pump

We pump liquids from activated(plungerated) geysers to a plumbing outlet. We need to be wired.

Vars

geyserThe geyser object
geyserlessset to true if the loop couldnt find a geyser in process, so it remembers and stops checking every loop until moved. more accurate name would be absolutely_no_geyser_under_me_so_dont_try
pump_powerunits we pump per second
volumevolume of our internal buffer

Procs

default_unfasten_wrenchplease note that the component has a hook in the parent call, wich handles activating and deactivating
pumppump up that sweet geyser nectar

Var Details

geyser

The geyser object

geyserless

set to true if the loop couldnt find a geyser in process, so it remembers and stops checking every loop until moved. more accurate name would be absolutely_no_geyser_under_me_so_dont_try

pump_power

units we pump per second

volume

volume of our internal buffer

Proc Details

default_unfasten_wrench

please note that the component has a hook in the parent call, wich handles activating and deactivating

pump

pump up that sweet geyser nectar

\ No newline at end of file diff --git a/obj/machinery/plumbing/pill_press.html b/obj/machinery/plumbing/pill_press.html new file mode 100644 index 0000000000000..818dee40a4c78 --- /dev/null +++ b/obj/machinery/plumbing/pill_press.html @@ -0,0 +1 @@ +/obj/machinery/plumbing/pill_press - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pill_press

We take a constant input of reagents, and produce a pill once a set volume is reached

Vars

current_volumeselected size of the product
packaging_categoryCategory of packaging
packaging_typeThe type of packaging to use
packaging_typesAll packaging types wrapped up in 1 big list
productcurrent operating product (pills or patches)
product_nameprefix for the product name
stored_productslist of products stored in the machine, so we dont have 610 pills on one tile

Procs

decode_categorydecode product category from its type path and returns the decoded typepath

Var Details

current_volume

selected size of the product

packaging_category

Category of packaging

packaging_type

The type of packaging to use

packaging_types

All packaging types wrapped up in 1 big list

product

current operating product (pills or patches)

product_name

prefix for the product name

stored_products

list of products stored in the machine, so we dont have 610 pills on one tile

Proc Details

decode_category

decode product category from its type path and returns the decoded typepath

\ No newline at end of file diff --git a/obj/machinery/plumbing/reaction_chamber.html b/obj/machinery/plumbing/reaction_chamber.html new file mode 100644 index 0000000000000..263f87196756c --- /dev/null +++ b/obj/machinery/plumbing/reaction_chamber.html @@ -0,0 +1,3 @@ +/obj/machinery/plumbing/reaction_chamber - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

reaction_chamber

Vars

emptyingour reagent goal has been reached, so now we lock our inputs and start emptying
required_reagentslist of set reagents that the reaction_chamber allows in, and must all be present before mixing is enabled. +example: list(/datum/reagent/water = 20, /datum/reagent/fuel/oil = 50)
target_temperaturetowards which temperature do we build (except during draining)?

Procs

handle_reagentsFor subtypes that want to do additional reagent handling
handle_ui_actFor custom handling of ui actions from inside a subtype
on_reagent_changeHandles stopping the emptying process when the chamber empties.
on_reagents_delHandles properly detaching signal hooks.

Var Details

emptying

our reagent goal has been reached, so now we lock our inputs and start emptying

required_reagents

list of set reagents that the reaction_chamber allows in, and must all be present before mixing is enabled. +example: list(/datum/reagent/water = 20, /datum/reagent/fuel/oil = 50)

target_temperature

towards which temperature do we build (except during draining)?

Proc Details

handle_reagents

For subtypes that want to do additional reagent handling

handle_ui_act

For custom handling of ui actions from inside a subtype

on_reagent_change

Handles stopping the emptying process when the chamber empties.

on_reagents_del

Handles properly detaching signal hooks.

\ No newline at end of file diff --git a/obj/machinery/plumbing/reaction_chamber/chem.html b/obj/machinery/plumbing/reaction_chamber/chem.html new file mode 100644 index 0000000000000..b01575eb4f282 --- /dev/null +++ b/obj/machinery/plumbing/reaction_chamber/chem.html @@ -0,0 +1 @@ +/obj/machinery/plumbing/reaction_chamber/chem - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chem

Chemistry version of reaction chamber that allows for acid and base buffers to be used while reacting

Vars

acidic_beakerbeaker that holds the acidic buffer(50u)
acidic_limitIf below this pH, we start dumping buffer into it
alkaline_beakerbeaker that holds the alkaline buffer(50u).
alkaline_limitIf above this pH, we start dumping acid into it

Procs

DestroyMake sure beakers are deleted when being deconstructed

Var Details

acidic_beaker

beaker that holds the acidic buffer(50u)

acidic_limit

If below this pH, we start dumping buffer into it

alkaline_beaker

beaker that holds the alkaline buffer(50u).

alkaline_limit

If above this pH, we start dumping acid into it

Proc Details

Destroy

Make sure beakers are deleted when being deconstructed

\ No newline at end of file diff --git a/obj/machinery/plumbing/receiver.html b/obj/machinery/plumbing/receiver.html new file mode 100644 index 0000000000000..d2d761aeaf30e --- /dev/null +++ b/obj/machinery/plumbing/receiver.html @@ -0,0 +1 @@ +/obj/machinery/plumbing/receiver - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

receiver

A bluespace output pipe for plumbing. Supports multiple recipients. Must be constructed with a circuit board

Vars

next_indexWe only grab one machine per process, so store which one is next
pull_amountHow much chemicals we can teleport per process
sendersAll synced up chemical beacons we can tap from

Procs

lose_sendersNotify all senders to forget us

Var Details

next_index

We only grab one machine per process, so store which one is next

pull_amount

How much chemicals we can teleport per process

senders

All synced up chemical beacons we can tap from

Proc Details

lose_senders

Notify all senders to forget us

\ No newline at end of file diff --git a/obj/machinery/plumbing/sender.html b/obj/machinery/plumbing/sender.html new file mode 100644 index 0000000000000..84c951d1d5383 --- /dev/null +++ b/obj/machinery/plumbing/sender.html @@ -0,0 +1 @@ +/obj/machinery/plumbing/sender - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sender

A bluespace input pipe for plumbing

Vars

targetwhoever we teleport our chems to

Procs

lose_teleport_targetLose our previous target and make our previous target lose us. Seperate proc because I feel like I'll need this again
set_teleport_targetSet a receiving plumbing object
teleport_chemicalsTransfer reagents and display a flashing icon

Var Details

target

whoever we teleport our chems to

Proc Details

lose_teleport_target

Lose our previous target and make our previous target lose us. Seperate proc because I feel like I'll need this again

set_teleport_target

Set a receiving plumbing object

teleport_chemicals

Transfer reagents and display a flashing icon

\ No newline at end of file diff --git a/obj/machinery/plumbing/splitter.html b/obj/machinery/plumbing/splitter.html new file mode 100644 index 0000000000000..6fa6830db4660 --- /dev/null +++ b/obj/machinery/plumbing/splitter.html @@ -0,0 +1 @@ +/obj/machinery/plumbing/splitter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

splitter

it splits the reagents however you want. So you can "every 60 units, 45 goes left and 15 goes straight". The side direction is EAST, you can change this in the component

Vars

transfer_sidehow much we must transfer to the side
transfer_straighthow much we must transfer straight. note input can be as high as 10 reagents per process, usually
turn_straightconstantly switches between TRUE and FALSE. TRUE means the batch tick goes straight, FALSE means the next batch goes in the side duct.

Var Details

transfer_side

how much we must transfer to the side

transfer_straight

how much we must transfer straight. note input can be as high as 10 reagents per process, usually

turn_straight

constantly switches between TRUE and FALSE. TRUE means the batch tick goes straight, FALSE means the next batch goes in the side duct.

\ No newline at end of file diff --git a/obj/machinery/plumbing/synthesizer.html b/obj/machinery/plumbing/synthesizer.html new file mode 100644 index 0000000000000..4117255ca5d35 --- /dev/null +++ b/obj/machinery/plumbing/synthesizer.html @@ -0,0 +1 @@ +/obj/machinery/plumbing/synthesizer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

synthesizer

A single machine that produces a single chem. Can be placed in unison with others through plumbing to create chemical factories

Vars

amountAmount we produce for every process. Ideally keep under 5 since thats currently the standard duct capacity
default_reagentsstraight up copied from chem dispenser. Being a subtype would be extremely tedious and making it global would restrict potential subtypes using different dispensable_reagents
possible_amountsI track them here because I have no idea how I'd make tgui loop like that
reagent_idThe reagent we are producing. We are a typepath, but are also typecast because there's several occations where we need to use initial.

Var Details

amount

Amount we produce for every process. Ideally keep under 5 since thats currently the standard duct capacity

default_reagents

straight up copied from chem dispenser. Being a subtype would be extremely tedious and making it global would restrict potential subtypes using different dispensable_reagents

possible_amounts

I track them here because I have no idea how I'd make tgui loop like that

reagent_id

The reagent we are producing. We are a typepath, but are also typecast because there's several occations where we need to use initial.

\ No newline at end of file diff --git a/obj/machinery/plumbing/synthesizer/colony_hydroponics.html b/obj/machinery/plumbing/synthesizer/colony_hydroponics.html new file mode 100644 index 0000000000000..31f5993fac887 --- /dev/null +++ b/obj/machinery/plumbing/synthesizer/colony_hydroponics.html @@ -0,0 +1 @@ +/obj/machinery/plumbing/synthesizer/colony_hydroponics - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

colony_hydroponics

Vars

repacked_typeWhat this repacks into
synthesizable_reagentsReagents that this can dispense, overrides the default list on init

Var Details

repacked_type

What this repacks into

synthesizable_reagents

Reagents that this can dispense, overrides the default list on init

\ No newline at end of file diff --git a/obj/machinery/plumbing/synthesizer/water_synth.html b/obj/machinery/plumbing/synthesizer/water_synth.html new file mode 100644 index 0000000000000..620155096b86a --- /dev/null +++ b/obj/machinery/plumbing/synthesizer/water_synth.html @@ -0,0 +1 @@ +/obj/machinery/plumbing/synthesizer/water_synth - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

water_synth

Vars

repacked_typeWhat this repacks into
synthesizable_reagentsReagents that this can dispense, overrides the default list on init

Var Details

repacked_type

What this repacks into

synthesizable_reagents

Reagents that this can dispense, overrides the default list on init

\ No newline at end of file diff --git a/obj/machinery/porta_turret.html b/obj/machinery/porta_turret.html new file mode 100644 index 0000000000000..b6861b6154106 --- /dev/null +++ b/obj/machinery/porta_turret.html @@ -0,0 +1 @@ +/obj/machinery/porta_turret - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

porta_turret

Vars

always_upWill stay active
baseFor turrets inside other objects
controllockIf the turret responds to control panels
coverThe cover that is covering this turret
disabled_timeWhile the cooldown is still going on, it cannot be re-enabled.
gun_chargeThe charge of the gun when retrieved from wreckage
has_coverHides the cover
ignore_factionDetermines if our projectiles hit our faction
installationThe type of weapon installed by default
last_firedWorld.time the turret last fired
lethal_projectileLethal mode projectile type
lethal_projectile_soundSound of lethal projectile
lockedIf the turret's behaviour control access is locked
manual_controlIf the turret is manually controlled
modeIn which mode is turret in, stun or lethal
onDetermines if the turret is on
power_channelOnly people with Security access
quit_actionAction button holder for quitting manual control
raisedIf the turret cover is "open" and the turret is raised
raisingIf the turret is currently opening or closing its cover
remote_controllerMob that is remotely controlling the turret
reqpowerPower needed per shot
scan_rangeScan range of the turret for locating targets
shot_delayTicks until next shot (1.5 ?)
spark_systemThe spark system, used for generating... sparks?
stored_gunWhat stored gun is in the turret
stun_projectileStun mode projectile type
stun_projectile_soundSound of stun projectile
toggle_actionAction button holder for switching between turret modes when manually controlling
turret_flagsTurret flags about who is turret allowed to shoot
uses_storedif TRUE this will cause the turret to stop working if the stored_gun var is null in process()
wall_turret_directionThe turret will try to shoot from a turf in that direction when in a wall

Procs

null_gundestroys reference to stored_gun to prevent hard deletions
set_disabledPrevents turned from being turned on for a duration, then restarts them after that if the second ard is true.
toggle_onToggles the turret on or off depending on the value of the turn_on arg.

Var Details

always_up

Will stay active

base

For turrets inside other objects

controllock

If the turret responds to control panels

cover

The cover that is covering this turret

disabled_time

While the cooldown is still going on, it cannot be re-enabled.

gun_charge

The charge of the gun when retrieved from wreckage

has_cover

Hides the cover

ignore_faction

Determines if our projectiles hit our faction

installation

The type of weapon installed by default

last_fired

World.time the turret last fired

lethal_projectile

Lethal mode projectile type

lethal_projectile_sound

Sound of lethal projectile

locked

If the turret's behaviour control access is locked

manual_control

If the turret is manually controlled

mode

In which mode is turret in, stun or lethal

on

Determines if the turret is on

power_channel

Only people with Security access

quit_action

Action button holder for quitting manual control

raised

If the turret cover is "open" and the turret is raised

raising

If the turret is currently opening or closing its cover

remote_controller

Mob that is remotely controlling the turret

reqpower

Power needed per shot

scan_range

Scan range of the turret for locating targets

shot_delay

Ticks until next shot (1.5 ?)

spark_system

The spark system, used for generating... sparks?

stored_gun

What stored gun is in the turret

stun_projectile

Stun mode projectile type

stun_projectile_sound

Sound of stun projectile

toggle_action

Action button holder for switching between turret modes when manually controlling

turret_flags

Turret flags about who is turret allowed to shoot

uses_stored

if TRUE this will cause the turret to stop working if the stored_gun var is null in process()

wall_turret_direction

The turret will try to shoot from a turf in that direction when in a wall

Proc Details

null_gun

destroys reference to stored_gun to prevent hard deletions

set_disabled

Prevents turned from being turned on for a duration, then restarts them after that if the second ard is true.

toggle_on

Toggles the turret on or off depending on the value of the turn_on arg.

\ No newline at end of file diff --git a/obj/machinery/porta_turret/syndicate/toolbox.html b/obj/machinery/porta_turret/syndicate/toolbox.html new file mode 100644 index 0000000000000..56468ba6ec19b --- /dev/null +++ b/obj/machinery/porta_turret/syndicate/toolbox.html @@ -0,0 +1 @@ +/obj/machinery/porta_turret/syndicate/toolbox - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

toolbox

Vars

toolboxThe toolbox we store.

Var Details

toolbox

The toolbox we store.

\ No newline at end of file diff --git a/obj/machinery/portable_atmospherics.html b/obj/machinery/portable_atmospherics.html new file mode 100644 index 0000000000000..8a4273741d13d --- /dev/null +++ b/obj/machinery/portable_atmospherics.html @@ -0,0 +1,23 @@ +/obj/machinery/portable_atmospherics - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

portable_atmospherics

Vars

air_contentsStores the gas mixture of the portable component. Don't access this directly, use return_air() so you support the temporary processing it provides
connected_portStores the reference of the connecting port
excitedUsed to track if anything of note has happen while running process_atmos(). +Treat it as a process_atmos() scope var, we just declare it here to pass it between parent calls. +Should be false on start of every process_atmos() proc, since true means we'll process again next tick.
holdingStores the reference of the tank the machine is holding
nob_crystal_insertedIs there a hypernoblium crystal inserted into this
pressure_limitMax amount of pressure allowed inside of the canister before it starts to break. [PORTABLE_ATMOS_IGNORE_ATMOS_LIMIT] is special value meaning we are immune.
suppress_reactionsShould reactions inside the object be suppressed
temp_limitMax amount of heat allowed inside the machine before it starts to melt. [PORTABLE_ATMOS_IGNORE_ATMOS_LIMIT] is special value meaning we are immune.
volumeVolume (in L) of the inside of the machine

Procs

connectAllow the portable machine to be connected to a connector +Arguments:
disconnectAllow the portable machine to be disconnected from the connector
insert_nob_crystalInsert Hypernob crystal into the machine
replace_tankAllow the player to place a tank inside the machine. +Arguments:
take_atmos_damageTake damage if a variable is exceeded. Damage is equal to temp/limit * heat/limit. +The damage multiplier is treated as 1 if something is being ignored while the other one is exceeded. +On most cases only one will be exceeded, so the other one is scaled down.
unregister_holdingHolding tanks can get to zero integrity and be destroyed without other warnings due to pressure change. +This checks for that case and removes our reference to it.

Var Details

air_contents

Stores the gas mixture of the portable component. Don't access this directly, use return_air() so you support the temporary processing it provides

connected_port

Stores the reference of the connecting port

excited

Used to track if anything of note has happen while running process_atmos(). +Treat it as a process_atmos() scope var, we just declare it here to pass it between parent calls. +Should be false on start of every process_atmos() proc, since true means we'll process again next tick.

holding

Stores the reference of the tank the machine is holding

nob_crystal_inserted

Is there a hypernoblium crystal inserted into this

pressure_limit

Max amount of pressure allowed inside of the canister before it starts to break. [PORTABLE_ATMOS_IGNORE_ATMOS_LIMIT] is special value meaning we are immune.

suppress_reactions

Should reactions inside the object be suppressed

temp_limit

Max amount of heat allowed inside the machine before it starts to melt. [PORTABLE_ATMOS_IGNORE_ATMOS_LIMIT] is special value meaning we are immune.

volume

Volume (in L) of the inside of the machine

Proc Details

connect

Allow the portable machine to be connected to a connector +Arguments:

+
    +
  • new_port - the connector that we trying to connect to
  • +

disconnect

Allow the portable machine to be disconnected from the connector

insert_nob_crystal

Insert Hypernob crystal into the machine

replace_tank

Allow the player to place a tank inside the machine. +Arguments:

+
    +
  • User: the player doing the act
  • +
  • close_valve: used in the canister.dm file, check if the valve is open or not
  • +
  • new_tank: the tank we are trying to put in the machine
  • +

take_atmos_damage

Take damage if a variable is exceeded. Damage is equal to temp/limit * heat/limit. +The damage multiplier is treated as 1 if something is being ignored while the other one is exceeded. +On most cases only one will be exceeded, so the other one is scaled down.

unregister_holding

Holding tanks can get to zero integrity and be destroyed without other warnings due to pressure change. +This checks for that case and removes our reference to it.

\ No newline at end of file diff --git a/obj/machinery/portable_atmospherics/canister.html b/obj/machinery/portable_atmospherics/canister.html new file mode 100644 index 0000000000000..b84c5316d6816 --- /dev/null +++ b/obj/machinery/portable_atmospherics/canister.html @@ -0,0 +1,3 @@ +/obj/machinery/portable_atmospherics/canister - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

canister

Vars

current_pressure_stateused while processing to update appearance only when its pressure state changes
filledHow much the canister should be filled (recommended from 0 to 1)
gas_typeStores the path of the gas for mapped canisters
internal_cellThe powercell used to enable shielding
maximum_pressureMaximum pressure allowed on initialize inside the canister, multiplied by the filled var
release_logUsed to log opening and closing of the valve, available on VV
release_pressurePlayer controlled var that set the release pressure of the canister
shielding_poweredIs shielding turned on/off
valve_openIs the valve open?
windowWindow overlay showing the gas inside the canister

Procs

canister_breakHandle canisters disassemble, releases the gas content in the turf
create_gasCalled on Initialize(), fill the canister with the gas_type specified up to the filled level (half if 0.5, full if 1) +Used for canisters spawned in maps and by admins
eject_tankEjects tank from canister, if any
get_pressure_statereturn the icon_state component for the canister's indicator light based on its current pressure reading
toggle_reaction_suppressionTurns hyper-noblium crystal reaction suppression in the canister on or off
toggle_shieldingTurns canister shielding on or off
toggle_valveOpens/closes the canister valve
update_windowUpdates the overlays of this canister based on its air contents

Var Details

current_pressure_state

used while processing to update appearance only when its pressure state changes

filled

How much the canister should be filled (recommended from 0 to 1)

gas_type

Stores the path of the gas for mapped canisters

internal_cell

The powercell used to enable shielding

maximum_pressure

Maximum pressure allowed on initialize inside the canister, multiplied by the filled var

release_log

Used to log opening and closing of the valve, available on VV

release_pressure

Player controlled var that set the release pressure of the canister

shielding_powered

Is shielding turned on/off

valve_open

Is the valve open?

window

Window overlay showing the gas inside the canister

Proc Details

canister_break

Handle canisters disassemble, releases the gas content in the turf

create_gas

Called on Initialize(), fill the canister with the gas_type specified up to the filled level (half if 0.5, full if 1) +Used for canisters spawned in maps and by admins

eject_tank

Ejects tank from canister, if any

get_pressure_state

return the icon_state component for the canister's indicator light based on its current pressure reading

toggle_reaction_suppression

Turns hyper-noblium crystal reaction suppression in the canister on or off

toggle_shielding

Turns canister shielding on or off

toggle_valve

Opens/closes the canister valve

update_window

Updates the overlays of this canister based on its air contents

\ No newline at end of file diff --git a/obj/machinery/portable_atmospherics/pipe_scrubber.html b/obj/machinery/portable_atmospherics/pipe_scrubber.html new file mode 100644 index 0000000000000..e9ad807da0f9e --- /dev/null +++ b/obj/machinery/portable_atmospherics/pipe_scrubber.html @@ -0,0 +1 @@ +/obj/machinery/portable_atmospherics/pipe_scrubber - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pipe_scrubber

Vars

directionWhat direction is the machine pumping to (into scrubber or out to the port)?
internal_tankThe internal air tank obj of the mech
onIs the machine on?
scrubbingList of gases that can be scrubbed
volume_ratethe rate the machine will scrub air

Procs

scrubScrub gasses from own air_contents into internal_tank.air_contents

Var Details

direction

What direction is the machine pumping to (into scrubber or out to the port)?

internal_tank

The internal air tank obj of the mech

on

Is the machine on?

scrubbing

List of gases that can be scrubbed

volume_rate

the rate the machine will scrub air

Proc Details

scrub

Scrub gasses from own air_contents into internal_tank.air_contents

\ No newline at end of file diff --git a/obj/machinery/portable_atmospherics/pump.html b/obj/machinery/portable_atmospherics/pump.html new file mode 100644 index 0000000000000..6b75c32492696 --- /dev/null +++ b/obj/machinery/portable_atmospherics/pump.html @@ -0,0 +1 @@ +/obj/machinery/portable_atmospherics/pump - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pump

Vars

directionWhat direction is the machine pumping (into pump/port or out to the tank/area)?
onIs the machine on?
target_pressurePlayer configurable, sets what's the release pressure

Var Details

direction

What direction is the machine pumping (into pump/port or out to the tank/area)?

on

Is the machine on?

target_pressure

Player configurable, sets what's the release pressure

\ No newline at end of file diff --git a/obj/machinery/portable_atmospherics/scrubber.html b/obj/machinery/portable_atmospherics/scrubber.html new file mode 100644 index 0000000000000..0eb94f59f88f3 --- /dev/null +++ b/obj/machinery/portable_atmospherics/scrubber.html @@ -0,0 +1,6 @@ +/obj/machinery/portable_atmospherics/scrubber - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

scrubber

Vars

onIs the machine on?
overpressure_mMultiplier with ONE_ATMOSPHERE, if the enviroment pressure is higher than that, the scrubber won't work
scrubbingList of gases that can be scrubbed
use_overlaysShould the machine use overlay in update_overlays() when open/close?
volume_ratethe rate the machine will scrub air

Procs

scrubCalled in process_atmos(), handles the scrubbing of the given gas_mixture +Arguments:

Var Details

on

Is the machine on?

overpressure_m

Multiplier with ONE_ATMOSPHERE, if the enviroment pressure is higher than that, the scrubber won't work

scrubbing

List of gases that can be scrubbed

use_overlays

Should the machine use overlay in update_overlays() when open/close?

volume_rate

the rate the machine will scrub air

Proc Details

scrub

Called in process_atmos(), handles the scrubbing of the given gas_mixture +Arguments:

+
    +
  • mixture: the gas mixture to be scrubbed
  • +
\ No newline at end of file diff --git a/obj/machinery/posialert.html b/obj/machinery/posialert.html new file mode 100644 index 0000000000000..bd2ffec2bfc14 --- /dev/null +++ b/obj/machinery/posialert.html @@ -0,0 +1 @@ +/obj/machinery/posialert - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

posialert

Vars

mute_reasonthe reason that the console is muted (player decided)
radioThe radio used to send messages over the science channel.
radio_keyThe encryption key typepath that will be used by the console.

Var Details

mute_reason

the reason that the console is muted (player decided)

radio

The radio used to send messages over the science channel.

radio_key

The encryption key typepath that will be used by the console.

\ No newline at end of file diff --git a/obj/machinery/power.html b/obj/machinery/power.html new file mode 100644 index 0000000000000..16eee5b5bf452 --- /dev/null +++ b/obj/machinery/power.html @@ -0,0 +1 @@ +/obj/machinery/power - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

power

Vars

cable_layerCable layer to which the machine is connected.
can_change_cable_layerCan the cable_layer be tweked with a multi tool
powernetThe powernet our machine is connected to.

Procs

cable_layer_actCalled on multitool_act when we can change cable layers, override to add more conditions

Var Details

cable_layer

Cable layer to which the machine is connected.

can_change_cable_layer

Can the cable_layer be tweked with a multi tool

powernet

The powernet our machine is connected to.

Proc Details

cable_layer_act

Called on multitool_act when we can change cable layers, override to add more conditions

\ No newline at end of file diff --git a/obj/machinery/power/apc.html b/obj/machinery/power/apc.html new file mode 100644 index 0000000000000..df76c679bf984 --- /dev/null +++ b/obj/machinery/power/apc.html @@ -0,0 +1,34 @@ +/obj/machinery/power/apc - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

apc

Vars

aidisabledIs the AI locked from using the APC
alarm_managerRepresents a signel source of power alarms for this apc
arc_shieldedHas the APC been protected against arcing?
areaReference to our area
areastringMapper helper to tie an apc to another area
auto_nameAutomatically name the APC after the area is in
away_general_accessUsed for apc helper called away_general_access to make apc's required access away_general_access.
beenhitused for counting how many times it has been hit, used for Aliens at the moment
cellReference to our internal cell
cell_10kUsed for apc helper called cell_10k to install 10k cell into apc.
cell_5kUsed for apc helper called cell_5k to install 5k cell into apc.
cell_typeType of cell we start with
chargemodeCan the APC charge?
chargingState of the apc charging (not charging, charging, fully charged)
clock_cog_rewardedIf this APC has given a reward for being coggered before
coverlockedIs the apc cover locked?
cut_AI_wireUsed for apc helper called cut_AI_wire to make apc's wore responsible for ai connectione mended.
emergency_lightsShould the emergency lights be on?
environState of the environmental channel (off, auto off, on, auto on)
equipmentState of the equipment channel (off, auto off, on, auto on)
failure_timerTime to allow the APC to regain some power and to turn the channels back online
force_arcingShould we be forcing arcing, assuming there isn't arc shielding?
force_updateForces an update on the power use to ensure that the apc has enough power
full_chargeUsed for apc helper called full_charge to make apc's charge at 100% meter.
hacked_flicker_counterCounter for displaying the hacked overlay to mobs within view
has_electronicsState of the electronics inside (missing, installed, secured)
icon_update_neededUsed to stop process from updating the icons too much
integration_cogReference to the cog inside
last_chargingPrevious state of charging, to detect the change
last_nightshift_switchTime when the nightshift where turned on last, to prevent spamming
lastused_chargeTotal amount of power put into the battery
lastused_environAmount of power used by the environmental channel
lastused_equipAmount of power used by the equipment channel
lastused_lightAmount of power used by the lighting channel
lastused_totalTotal amount of power used by the three channels
light_on_rangeRange of the light emitted when on
lightingState of the lighting channel (off, auto off, on, auto on)
lockedIs the apc interface locked?
long_term_powerbuffer state that makes apcs not shut off channels immediately as long as theres some power left, effect visible in apcs only slowly losing power
low_power_nightshift_lightsTracks if lights channel was set to nightshift / reduced power usage mode automatically due to low power.
main_statusState of the apc external power (no power, low power, has power)
malfaiReference to our ai hacker
malfhackIs the apc hacked by a malf ai?
nightshift_lightsShould the nighshift lights be on?
no_chargeUsed for apc helper called no_charge to make apc's charge at 0% meter.
occupierReference to the shunted ai inside
offset_oldOffsets the object by APC_PIXEL_OFFSET (defined in apc_defines.dm) pixels in the direction we want it placed in. This allows the APC to be embedded in a wall, yet still inside an area (like mapping).
openedState of the cover (closed, opened, removed)
operatingIs the apc working
overloadused for the Blackout malf module
remote_control_userReference to our remote control
shortedIs the APC shorted and not working?
start_chargeInitial cell charge %
syndicate_accessUsed for apc helper called syndicate_access to make apc's required access syndicate_access.
terminalReference to our cable terminal
transfer_in_progressIs there an AI being transferred out of us?
unlockedUsed for apc helper called unlocked to make apc unlocked.
update_overlayStores the flag for the overlays
update_stateStores the flags for the icon state

Procs

AICtrlClickToggle APC power settings
AICtrlShiftClickToggle APC environment settings (atmos)
AIShiftClickToggle APC lighting settings
add_loadAdds load (energy) to the terminal's grid.
ai_click_altToggle APC equipment settings
autosetReturns the new status value for an APC channel.
availReturns the amount of energy the terminal's grid has.
available_energyReturns the surplus energy from the terminal's grid and the cell.
bronze_actHandles interaction of adding arc shielding to apc with bronze
cable_actCalled when we interact with the APC with a cable, attempts to wire the APC and create a terminal
can_place_terminalChecks if we can place a terminal on the APC
cell_actCalled when we interact with the APC with a cell, attempts to insert it
chargeReturns the cell's current charge.
check_updatesChecks for what icon updates we will need to handle
early_processAPC early processing. This gets processed after any other machine on the powernet does. +This adds up the total static power usage for the apc's area, then draw that power usage from the grid or APC cell.
electronics_actCalled when we interact with the APC with APC electronics, attempts to install the board
ethereal_interactSpecial behavior for when an ethereal interacts with an APC.
fork_outlet_actCalled when we interact with the APC with an item with which we can get shocked when we stuff it into an APC
give_away_general_accessUsed for away_general_access apc helper, which set apc's required access to away_general_access.
give_syndicate_accessUsed for syndicate_access apc helper, which sets apc's required access to syndicate_access.
install_cell_10kUsed for cell_10k apc helper, which installs 10k cell into apc.
install_cell_5kUsed for cell_5k apc helper, which installs 5k cell into apc.
pseudocircuit_actCalled when we interact with the APC with an electroadaptive pseudocircuit, used by cyborgs to install a board or weak cell
set_full_chargeUsed for full_charge apc helper, which sets apc charge to 100%.
set_hacked_hudApplies hacked overlay for malf AIs
set_no_chargeUsed for no_charge apc helper, which sets apc charge to 0%.
setsubsystemUsed by external forces to set the APCs channel status's.
surplusReturns the surplus energy from the terminal's grid.
time_to_chargeReturns the amount of time it will take the APC at its current trickle charge rate to reach a charge level. If the APC is functionally not charging, returns null.
unlockUsed for unlocked apc helper, which unlocks the apc.
wallframe_actCalled when we interact with the APC with and APC frame, used for replacing a damaged cover/frame

Var Details

aidisabled

Is the AI locked from using the APC

alarm_manager

Represents a signel source of power alarms for this apc

arc_shielded

Has the APC been protected against arcing?

area

Reference to our area

areastring

Mapper helper to tie an apc to another area

auto_name

Automatically name the APC after the area is in

away_general_access

Used for apc helper called away_general_access to make apc's required access away_general_access.

beenhit

used for counting how many times it has been hit, used for Aliens at the moment

cell

Reference to our internal cell

cell_10k

Used for apc helper called cell_10k to install 10k cell into apc.

cell_5k

Used for apc helper called cell_5k to install 5k cell into apc.

cell_type

Type of cell we start with

chargemode

Can the APC charge?

charging

State of the apc charging (not charging, charging, fully charged)

clock_cog_rewarded

If this APC has given a reward for being coggered before

coverlocked

Is the apc cover locked?

cut_AI_wire

Used for apc helper called cut_AI_wire to make apc's wore responsible for ai connectione mended.

emergency_lights

Should the emergency lights be on?

environ

State of the environmental channel (off, auto off, on, auto on)

equipment

State of the equipment channel (off, auto off, on, auto on)

failure_timer

Time to allow the APC to regain some power and to turn the channels back online

force_arcing

Should we be forcing arcing, assuming there isn't arc shielding?

force_update

Forces an update on the power use to ensure that the apc has enough power

full_charge

Used for apc helper called full_charge to make apc's charge at 100% meter.

hacked_flicker_counter

Counter for displaying the hacked overlay to mobs within view

has_electronics

State of the electronics inside (missing, installed, secured)

icon_update_needed

Used to stop process from updating the icons too much

integration_cog

Reference to the cog inside

last_charging

Previous state of charging, to detect the change

last_nightshift_switch

Time when the nightshift where turned on last, to prevent spamming

lastused_charge

Total amount of power put into the battery

lastused_environ

Amount of power used by the environmental channel

lastused_equip

Amount of power used by the equipment channel

lastused_light

Amount of power used by the lighting channel

lastused_total

Total amount of power used by the three channels

light_on_range

Range of the light emitted when on

lighting

State of the lighting channel (off, auto off, on, auto on)

locked

Is the apc interface locked?

long_term_power

buffer state that makes apcs not shut off channels immediately as long as theres some power left, effect visible in apcs only slowly losing power

low_power_nightshift_lights

Tracks if lights channel was set to nightshift / reduced power usage mode automatically due to low power.

main_status

State of the apc external power (no power, low power, has power)

malfai

Reference to our ai hacker

malfhack

Is the apc hacked by a malf ai?

nightshift_lights

Should the nighshift lights be on?

no_charge

Used for apc helper called no_charge to make apc's charge at 0% meter.

occupier

Reference to the shunted ai inside

offset_old

Offsets the object by APC_PIXEL_OFFSET (defined in apc_defines.dm) pixels in the direction we want it placed in. This allows the APC to be embedded in a wall, yet still inside an area (like mapping).

opened

State of the cover (closed, opened, removed)

operating

Is the apc working

overload

used for the Blackout malf module

remote_control_user

Reference to our remote control

shorted

Is the APC shorted and not working?

start_charge

Initial cell charge %

syndicate_access

Used for apc helper called syndicate_access to make apc's required access syndicate_access.

terminal

Reference to our cable terminal

transfer_in_progress

Is there an AI being transferred out of us?

unlocked

Used for apc helper called unlocked to make apc unlocked.

update_overlay

Stores the flag for the overlays

update_state

Stores the flags for the icon state

Proc Details

AICtrlClick

Toggle APC power settings

AICtrlShiftClick

Toggle APC environment settings (atmos)

AIShiftClick

Toggle APC lighting settings

add_load

Adds load (energy) to the terminal's grid.

ai_click_alt

Toggle APC equipment settings

autoset

Returns the new status value for an APC channel.

+

// val 0=off, 1=off(auto) 2=on 3=on(auto) +// on 0=off, 1=on, 2=autooff +TODO: Make this use bitflags instead. It should take at most three lines, but it's out of scope for now.

+

Arguments:

+
    +
  • val: The current status of the power channel. +
      +
    • APC_CHANNEL_OFF: The APCs channel has been manually set to off. This channel will not automatically change.
    • +
    • APC_CHANNEL_AUTO_OFF: The APCs channel is running on automatic and is currently off. Can be automatically set to APC_CHANNEL_AUTO_ON.
    • +
    • APC_CHANNEL_ON: The APCs channel has been manually set to on. This will be automatically changed only if the APC runs completely out of power or is disabled.
    • +
    • APC_CHANNEL_AUTO_ON: The APCs channel is running on automatic and is currently on. Can be automatically set to APC_CHANNEL_AUTO_OFF.
    • +
    +
  • +
  • on: An enum dictating how to change the channel's status. +
      +
    • AUTOSET_FORCE_OFF: The APC forces the channel to turn off. This includes manually set channels.
    • +
    • AUTOSET_ON: The APC allows automatic channels to turn back on.
    • +
    • AUTOSET_OFF: The APC turns automatic channels off.
    • +
    +
  • +

avail

Returns the amount of energy the terminal's grid has.

available_energy

Returns the surplus energy from the terminal's grid and the cell.

bronze_act

Handles interaction of adding arc shielding to apc with bronze

cable_act

Called when we interact with the APC with a cable, attempts to wire the APC and create a terminal

can_place_terminal

Checks if we can place a terminal on the APC

cell_act

Called when we interact with the APC with a cell, attempts to insert it

charge

Returns the cell's current charge.

check_updates

Checks for what icon updates we will need to handle

early_process

APC early processing. This gets processed after any other machine on the powernet does. +This adds up the total static power usage for the apc's area, then draw that power usage from the grid or APC cell.

electronics_act

Called when we interact with the APC with APC electronics, attempts to install the board

ethereal_interact

Special behavior for when an ethereal interacts with an APC.

fork_outlet_act

Called when we interact with the APC with an item with which we can get shocked when we stuff it into an APC

give_away_general_access

Used for away_general_access apc helper, which set apc's required access to away_general_access.

give_syndicate_access

Used for syndicate_access apc helper, which sets apc's required access to syndicate_access.

install_cell_10k

Used for cell_10k apc helper, which installs 10k cell into apc.

install_cell_5k

Used for cell_5k apc helper, which installs 5k cell into apc.

pseudocircuit_act

Called when we interact with the APC with an electroadaptive pseudocircuit, used by cyborgs to install a board or weak cell

set_full_charge

Used for full_charge apc helper, which sets apc charge to 100%.

set_hacked_hud

Applies hacked overlay for malf AIs

set_no_charge

Used for no_charge apc helper, which sets apc charge to 0%.

setsubsystem

Used by external forces to set the APCs channel status's.

+

Arguments:

+

surplus

Returns the surplus energy from the terminal's grid.

time_to_charge

Returns the amount of time it will take the APC at its current trickle charge rate to reach a charge level. If the APC is functionally not charging, returns null.

unlock

Used for unlocked apc helper, which unlocks the apc.

wallframe_act

Called when we interact with the APC with and APC frame, used for replacing a damaged cover/frame

\ No newline at end of file diff --git a/obj/machinery/power/colony_ore_thumper.html b/obj/machinery/power/colony_ore_thumper.html new file mode 100644 index 0000000000000..e1db8486ad194 --- /dev/null +++ b/obj/machinery/power/colony_ore_thumper.html @@ -0,0 +1 @@ +/obj/machinery/power/colony_ore_thumper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

colony_ore_thumper

Vars

callback_trackerKeeps track of the callback timer to make sure we don't have more than one
list_of_thumper_soundsList of the thumping sounds we can choose from
nearby_ore_limitWhat's the limit for ore near us? Counts by stacks, not individual amounts of ore
ore_spawn_rangeHow far away does ore spawn?
ore_spawn_valuesHow much of the listed types of ores should we spawn when spawning ore
ore_weight_listWeighted list of the ores we can spawn
slam_jamsHow many times we've slammed, counts up until the number is high enough to make a box of materials
slam_jams_neededHow many times we need to slam in order to produce a box of materials
soundloopOur looping fan sound that we play when turned on
thumpingAre we currently working?
undeploy_typeWhat do we undeploy into

Procs

cut_that_outAttempts to shut the thumper down
make_some_oreSpawns an ore box on top of the thumper
see_if_we_can_workChecks the turf we are on to make sure we are outdoors and on a misc turf
slam_it_downMakes the machine slam down, producing a box of ore if it has been slamming long enough
start_her_upAttempts turning the thumper on, failing if any of the conditions aren't met

Var Details

callback_tracker

Keeps track of the callback timer to make sure we don't have more than one

list_of_thumper_sounds

List of the thumping sounds we can choose from

nearby_ore_limit

What's the limit for ore near us? Counts by stacks, not individual amounts of ore

ore_spawn_range

How far away does ore spawn?

ore_spawn_values

How much of the listed types of ores should we spawn when spawning ore

ore_weight_list

Weighted list of the ores we can spawn

slam_jams

How many times we've slammed, counts up until the number is high enough to make a box of materials

slam_jams_needed

How many times we need to slam in order to produce a box of materials

soundloop

Our looping fan sound that we play when turned on

thumping

Are we currently working?

undeploy_type

What do we undeploy into

Proc Details

cut_that_out

Attempts to shut the thumper down

make_some_ore

Spawns an ore box on top of the thumper

see_if_we_can_work

Checks the turf we are on to make sure we are outdoors and on a misc turf

slam_it_down

Makes the machine slam down, producing a box of ore if it has been slamming long enough

start_her_up

Attempts turning the thumper on, failing if any of the conditions aren't met

\ No newline at end of file diff --git a/obj/machinery/power/colony_wind_turbine.html b/obj/machinery/power/colony_wind_turbine.html new file mode 100644 index 0000000000000..c4a9f2427a33c --- /dev/null +++ b/obj/machinery/power/colony_wind_turbine.html @@ -0,0 +1 @@ +/obj/machinery/power/colony_wind_turbine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

colony_wind_turbine

Vars

minimum_pressureMinimum external pressure needed to work
pressure_too_lowIs our pressure too low to function?
regular_power_productionHow much power the turbine makes without a storm
storm_power_productionHow much power the turbine makes during a storm
undeploy_typeWhat we undeploy into

Var Details

minimum_pressure

Minimum external pressure needed to work

pressure_too_low

Is our pressure too low to function?

regular_power_production

How much power the turbine makes without a storm

storm_power_production

How much power the turbine makes during a storm

undeploy_type

What we undeploy into

\ No newline at end of file diff --git a/obj/machinery/power/emitter.html b/obj/machinery/power/emitter.html new file mode 100644 index 0000000000000..138b33533f9eb --- /dev/null +++ b/obj/machinery/power/emitter.html @@ -0,0 +1 @@ +/obj/machinery/power/emitter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

emitter

Vars

activeIs the machine active?
allow_switch_interactUsed to stop interactions with the object (mainly in the wabbajack statue)
chargeAmount of power inside
fire_delaySeconds before the next shot
gunStores the type of gun we are using inside the emitter
gun_propertiesList of all the properties of the inserted gun
icon_state_onThe icon state used by the emitter when it's on.
icon_state_underpoweredThe icon state used by the emitter when it's on and low on power.
last_projectile_paramsstores the direction and orientation of the last projectile
last_shotWhen was the last shot
lockedIs the emitter id locked?
manualmanual shooting? (basically you hop onto the emitter and choose the shooting direction, is very janky since you can only shoot at the 8 directions and i don't think is ever used since you can't build those)
maximum_fire_delayMax delay before firing
minimum_fire_delayMin delay before firing
poweredDoes the machine have power?
projectile_soundWhat's the projectile sound?
projectile_typeWhat projectile type are we shooting?
shot_numberNumber of shots made (gets reset every few shots)
sparksSparks emitted with every shot
weldedif it's welded down to the ground or not. the emitter will not fire while unwelded. if set to true, the emitter will start anchored as well.

Procs

togglelockAttempt to toggle the controls lock of the emitter

Var Details

active

Is the machine active?

allow_switch_interact

Used to stop interactions with the object (mainly in the wabbajack statue)

charge

Amount of power inside

fire_delay

Seconds before the next shot

gun

Stores the type of gun we are using inside the emitter

gun_properties

List of all the properties of the inserted gun

icon_state_on

The icon state used by the emitter when it's on.

icon_state_underpowered

The icon state used by the emitter when it's on and low on power.

last_projectile_params

stores the direction and orientation of the last projectile

last_shot

When was the last shot

locked

Is the emitter id locked?

manual

manual shooting? (basically you hop onto the emitter and choose the shooting direction, is very janky since you can only shoot at the 8 directions and i don't think is ever used since you can't build those)

maximum_fire_delay

Max delay before firing

minimum_fire_delay

Min delay before firing

powered

Does the machine have power?

projectile_sound

What's the projectile sound?

projectile_type

What projectile type are we shooting?

shot_number

Number of shots made (gets reset every few shots)

sparks

Sparks emitted with every shot

welded

if it's welded down to the ground or not. the emitter will not fire while unwelded. if set to true, the emitter will start anchored as well.

Proc Details

togglelock

Attempt to toggle the controls lock of the emitter

\ No newline at end of file diff --git a/obj/machinery/power/emitter/prototype.html b/obj/machinery/power/emitter/prototype.html new file mode 100644 index 0000000000000..46d21b11f7144 --- /dev/null +++ b/obj/machinery/power/emitter/prototype.html @@ -0,0 +1 @@ +/obj/machinery/power/emitter/prototype - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

prototype

Vars

autoGrants the buckled mob the action button
view_rangeSets the view size for the user

Var Details

auto

Grants the buckled mob the action button

view_range

Sets the view size for the user

\ No newline at end of file diff --git a/obj/machinery/power/energy_accumulator.html b/obj/machinery/power/energy_accumulator.html new file mode 100644 index 0000000000000..1a2a9815ba349 --- /dev/null +++ b/obj/machinery/power/energy_accumulator.html @@ -0,0 +1,16 @@ +/obj/machinery/power/energy_accumulator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

energy_accumulator

Abstract type for generators that accumulate energy over time and slowly release it +eg. radiation collectors, tesla coils

Vars

processed_energyThe amount of energy that got processed last tick.
stored_energyThe amount of energy that is currently inside the machine before being converted to electricity
wants_powernetWhether this accumulator should connect to and power a powernet

Procs

calculate_energy_outputGets the energy the energy_accumulator would release within the given timespan time. +The power output is proportional to the energy, and has a constant power output added to it. +Args:
calculate_sustainable_powerCalculates the power needed to sustain the energy accumulator at its current energy.
release_energyReleases joules amount of its stored energy onto the powernet. +Args:

Var Details

processed_energy

The amount of energy that got processed last tick.

stored_energy

The amount of energy that is currently inside the machine before being converted to electricity

wants_powernet

Whether this accumulator should connect to and power a powernet

Proc Details

calculate_energy_output

Gets the energy the energy_accumulator would release within the given timespan time. +The power output is proportional to the energy, and has a constant power output added to it. +Args:

+
    +
  • time: The amount of time that is being processed, in seconds. +Returns: The amount of energy it would release in the timespan.
  • +

calculate_sustainable_power

Calculates the power needed to sustain the energy accumulator at its current energy.

release_energy

Releases joules amount of its stored energy onto the powernet. +Args:

+
    +
  • joules: The amount of energy to release. +Returns: Whether it successfully released its energy or not.
  • +
\ No newline at end of file diff --git a/obj/machinery/power/energy_accumulator/tesla_coil.html b/obj/machinery/power/energy_accumulator/tesla_coil.html new file mode 100644 index 0000000000000..1d5ccaa4d55e2 --- /dev/null +++ b/obj/machinery/power/energy_accumulator/tesla_coil.html @@ -0,0 +1 @@ +/obj/machinery/power/energy_accumulator/tesla_coil - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tesla_coil

Vars

input_power_multiplierMultiplier for power conversion
last_zapReference to the last zap done
zap_cooldownCooldown between pulsed zaps
zap_flagsFlags of the zap that the coil releases when the wire is pulsed
zap_sound_rangeCalculated range of zap sounds based on power
zap_sound_volumeCalculated volume of zap sounds based on power

Var Details

input_power_multiplier

Multiplier for power conversion

last_zap

Reference to the last zap done

zap_cooldown

Cooldown between pulsed zaps

zap_flags

Flags of the zap that the coil releases when the wire is pulsed

zap_sound_range

Calculated range of zap sounds based on power

zap_sound_volume

Calculated volume of zap sounds based on power

\ No newline at end of file diff --git a/obj/machinery/power/floodlight.html b/obj/machinery/power/floodlight.html new file mode 100644 index 0000000000000..0a21ec879bec3 --- /dev/null +++ b/obj/machinery/power/floodlight.html @@ -0,0 +1 @@ +/obj/machinery/power/floodlight - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

floodlight

Vars

light_power_coefficientConstant coeff. for power usage
light_setting_listList of power usage multipliers
settingIntensity of the floodlight.

Procs

update_light_statechange light color during operation

Var Details

light_power_coefficient

Constant coeff. for power usage

light_setting_list

List of power usage multipliers

setting

Intensity of the floodlight.

Proc Details

update_light_state

change light color during operation

\ No newline at end of file diff --git a/obj/machinery/power/manufacturing.html b/obj/machinery/power/manufacturing.html new file mode 100644 index 0000000000000..509061eabcf68 --- /dev/null +++ b/obj/machinery/power/manufacturing.html @@ -0,0 +1 @@ +/obj/machinery/power/manufacturing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

manufacturing

Vars

allow_mob_bump_intakeAllow taking in mobs from conveyors?
may_be_movedDo we add the simple_rotation component and a text that we are powered by cable? Also allows unwrenching

Procs

may_merge_in_contentsChecks if this stack (if not a stack does not do anything) can merge WITHOUT creating two stacks in contents

Var Details

allow_mob_bump_intake

Allow taking in mobs from conveyors?

may_be_moved

Do we add the simple_rotation component and a text that we are powered by cable? Also allows unwrenching

Proc Details

may_merge_in_contents

Checks if this stack (if not a stack does not do anything) can merge WITHOUT creating two stacks in contents

\ No newline at end of file diff --git a/obj/machinery/power/manufacturing/crafter.html b/obj/machinery/power/manufacturing/crafter.html new file mode 100644 index 0000000000000..da767887629b8 --- /dev/null +++ b/obj/machinery/power/manufacturing/crafter.html @@ -0,0 +1 @@ +/obj/machinery/power/manufacturing/crafter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crafter

Vars

cookingdo we use cooking recipes instead
craft_timercurrent timer for our crafting
craftsmancrafting component
power_costpower used per process() spent crafting
recipecurrent recipe
withheldour output, if the way out was blocked is held here

Var Details

cooking

do we use cooking recipes instead

craft_timer

current timer for our crafting

craftsman

crafting component

power_cost

power used per process() spent crafting

recipe

current recipe

withheld

our output, if the way out was blocked is held here

\ No newline at end of file diff --git a/obj/machinery/power/manufacturing/crusher.html b/obj/machinery/power/manufacturing/crusher.html new file mode 100644 index 0000000000000..4c864b82ad859 --- /dev/null +++ b/obj/machinery/power/manufacturing/crusher.html @@ -0,0 +1 @@ +/obj/machinery/power/manufacturing/crusher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crusher

Vars

capacityhow much can we hold
crush_costpower used to crush
held_matslist of held mats
withholdingwithheld output because output is either blocked or full

Var Details

capacity

how much can we hold

crush_cost

power used to crush

held_mats

list of held mats

withholding

withheld output because output is either blocked or full

\ No newline at end of file diff --git a/obj/machinery/power/manufacturing/lathe.html b/obj/machinery/power/manufacturing/lathe.html new file mode 100644 index 0000000000000..1a0196e814ed2 --- /dev/null +++ b/obj/machinery/power/manufacturing/lathe.html @@ -0,0 +1 @@ +/obj/machinery/power/manufacturing/lathe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lathe

Vars

busytimer id of printing
design_iddesign id we print
materialsThe container to hold materials
power_costpower cost for lathing
stored_researchDesigns related to the autolathe
withheldour output, if the way out was blocked is held here

Var Details

busy

timer id of printing

design_id

design id we print

materials

The container to hold materials

power_cost

power cost for lathing

stored_research

Designs related to the autolathe

withheld

our output, if the way out was blocked is held here

\ No newline at end of file diff --git a/obj/machinery/power/manufacturing/router.html b/obj/machinery/power/manufacturing/router.html new file mode 100644 index 0000000000000..4473f67251cc0 --- /dev/null +++ b/obj/machinery/power/manufacturing/router.html @@ -0,0 +1 @@ +/obj/machinery/power/manufacturing/router - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

router

Vars

directionsdirections we can output to right now
disabled_dirsoutputs disabled with a multitool

Var Details

directions

directions we can output to right now

disabled_dirs

outputs disabled with a multitool

\ No newline at end of file diff --git a/obj/machinery/power/manufacturing/smelter.html b/obj/machinery/power/manufacturing/smelter.html new file mode 100644 index 0000000000000..f1ae6f60f2f7b --- /dev/null +++ b/obj/machinery/power/manufacturing/smelter.html @@ -0,0 +1 @@ +/obj/machinery/power/manufacturing/smelter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

smelter

Vars

power_costpower used to smelt
withheldour output, if the way out was blocked is held here

Var Details

power_cost

power used to smelt

withheld

our output, if the way out was blocked is held here

\ No newline at end of file diff --git a/obj/machinery/power/manufacturing/sorter.html b/obj/machinery/power/manufacturing/sorter.html new file mode 100644 index 0000000000000..b681e5856d698 --- /dev/null +++ b/obj/machinery/power/manufacturing/sorter.html @@ -0,0 +1 @@ +/obj/machinery/power/manufacturing/sorter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sorter

Vars

delay_timeridtimer id of the thing that makes stuff move
dir_if_not_metdir to push to if there is no criteria
max_filtersmax filters
sort_filtersfor mappers; filter path = list(direction, value), otherwise a list of initialized filters

Var Details

delay_timerid

timer id of the thing that makes stuff move

dir_if_not_met

dir to push to if there is no criteria

max_filters

max filters

sort_filters

for mappers; filter path = list(direction, value), otherwise a list of initialized filters

\ No newline at end of file diff --git a/obj/machinery/power/manufacturing/storagebox.html b/obj/machinery/power/manufacturing/storagebox.html new file mode 100644 index 0000000000000..b386d9327d1e1 --- /dev/null +++ b/obj/machinery/power/manufacturing/storagebox.html @@ -0,0 +1 @@ +/obj/machinery/power/manufacturing/storagebox - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

storagebox

Vars

max_stuffhow much can we hold

Var Details

max_stuff

how much can we hold

\ No newline at end of file diff --git a/obj/machinery/power/manufacturing/unloader.html b/obj/machinery/power/manufacturing/unloader.html new file mode 100644 index 0000000000000..2b57b0528a219 --- /dev/null +++ b/obj/machinery/power/manufacturing/unloader.html @@ -0,0 +1 @@ +/obj/machinery/power/manufacturing/unloader - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

unloader

Vars

flip_sidewhether the side we output unloaded crates is flipped
power_to_unload_cratepower used per attempt to unload a crate

Var Details

flip_side

whether the side we output unloaded crates is flipped

power_to_unload_crate

power used per attempt to unload a crate

\ No newline at end of file diff --git a/obj/machinery/power/port_gen/pacman/solid_fuel.html b/obj/machinery/power/port_gen/pacman/solid_fuel.html new file mode 100644 index 0000000000000..37500be4ec0cc --- /dev/null +++ b/obj/machinery/power/port_gen/pacman/solid_fuel.html @@ -0,0 +1 @@ +/obj/machinery/power/port_gen/pacman/solid_fuel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

solid_fuel

Vars

repacked_typeThe item we turn into when repacked

Var Details

repacked_type

The item we turn into when repacked

\ No newline at end of file diff --git a/obj/machinery/power/portagrav.html b/obj/machinery/power/portagrav.html new file mode 100644 index 0000000000000..b68f192e21c60 --- /dev/null +++ b/obj/machinery/power/portagrav.html @@ -0,0 +1 @@ +/obj/machinery/power/portagrav - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

portagrav

Vars

cellThe cell we spawn with
draw_per_rangedraw per range
grav_strengthstrength of our gravity
gravity_fieldour gravity field
max_rangemax gravity range
onIs the machine on?
rangegravity range
wire_modedo we use power from wire instead

Var Details

cell

The cell we spawn with

draw_per_range

draw per range

grav_strength

strength of our gravity

gravity_field

our gravity field

max_range

max gravity range

on

Is the machine on?

range

gravity range

wire_mode

do we use power from wire instead

\ No newline at end of file diff --git a/obj/machinery/power/rtg/portable.html b/obj/machinery/power/rtg/portable.html new file mode 100644 index 0000000000000..d8636e05411cf --- /dev/null +++ b/obj/machinery/power/rtg/portable.html @@ -0,0 +1 @@ +/obj/machinery/power/rtg/portable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

portable

Vars

repacked_typeWhat we turn into when we are repacked

Var Details

repacked_type

What we turn into when we are repacked

\ No newline at end of file diff --git a/obj/machinery/power/shieldwallgen.html b/obj/machinery/power/shieldwallgen.html new file mode 100644 index 0000000000000..c8ce0f5febc3a --- /dev/null +++ b/obj/machinery/power/shieldwallgen.html @@ -0,0 +1 @@ +/obj/machinery/power/shieldwallgen - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shieldwallgen

Vars

activewhether the shield generator is active, ACTIVE_SETUPFIELDS will make it search for generators on process, and if that is successful, is set to ACTIVE_HASFIELDS
attachedthe attached cable under us
lockedare we locked?
shield_rangehow far do we seek another generator in our cardinal directions

Procs

activateTurn the machine on with side effects
cleanup_fieldcleans up fields in the specified direction if they belong to this generator
deactivateTurn the machine off with side effects
setup_fieldConstructs the actual field walls in the specified direction, cleans up old/stuck shields before doing so

Var Details

active

whether the shield generator is active, ACTIVE_SETUPFIELDS will make it search for generators on process, and if that is successful, is set to ACTIVE_HASFIELDS

attached

the attached cable under us

locked

are we locked?

shield_range

how far do we seek another generator in our cardinal directions

Proc Details

activate

Turn the machine on with side effects

cleanup_field

cleans up fields in the specified direction if they belong to this generator

deactivate

Turn the machine off with side effects

setup_field

Constructs the actual field walls in the specified direction, cleans up old/stuck shields before doing so

\ No newline at end of file diff --git a/obj/machinery/power/shuttle_engine.html b/obj/machinery/power/shuttle_engine.html new file mode 100644 index 0000000000000..33d8b505cfb51 --- /dev/null +++ b/obj/machinery/power/shuttle_engine.html @@ -0,0 +1 @@ +/obj/machinery/power/shuttle_engine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shuttle_engine

Vars

connected_ship_refThe mobile ship we are connected to.
engine_powerHow well the engine affects the ship's speed.
engine_stateConstruction state of the Engine.

Procs

unsync_shipCalled on destroy and when we need to unsync an engine from their ship.

Var Details

connected_ship_ref

The mobile ship we are connected to.

engine_power

How well the engine affects the ship's speed.

engine_state

Construction state of the Engine.

Proc Details

unsync_ship

Called on destroy and when we need to unsync an engine from their ship.

\ No newline at end of file diff --git a/obj/machinery/power/smes.html b/obj/machinery/power/smes.html new file mode 100644 index 0000000000000..eb13f12e16862 --- /dev/null +++ b/obj/machinery/power/smes.html @@ -0,0 +1 @@ +/obj/machinery/power/smes - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

smes

Vars

capacityThe charge capacity.
chargeThe current charge.
show_display_lightsdoes this SMES show its input/output lights?

Procs

adjust_chargeAdjusts the charge in this SMES, used instead of directly adjusting the charge value. Mainly for the benefit of the power connector/portable SMES system.
can_place_terminalChecks if we're in a valid state to place a terminal
display_readyis this SMES in a suitable state to display overlays?
set_chargeSets the charge in this SMES, used instead of directly adjusting the charge value. Mainly for the benefit of the power connector/portable SMES system.

Var Details

capacity

The charge capacity.

charge

The current charge.

show_display_lights

does this SMES show its input/output lights?

Proc Details

adjust_charge

Adjusts the charge in this SMES, used instead of directly adjusting the charge value. Mainly for the benefit of the power connector/portable SMES system.

can_place_terminal

Checks if we're in a valid state to place a terminal

display_ready

is this SMES in a suitable state to display overlays?

set_charge

Sets the charge in this SMES, used instead of directly adjusting the charge value. Mainly for the benefit of the power connector/portable SMES system.

\ No newline at end of file diff --git a/obj/machinery/power/smes/battery_pack.html b/obj/machinery/power/smes/battery_pack.html new file mode 100644 index 0000000000000..82f1acef2057b --- /dev/null +++ b/obj/machinery/power/smes/battery_pack.html @@ -0,0 +1 @@ +/obj/machinery/power/smes/battery_pack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

battery_pack

Vars

repacked_typeThe item we turn into when repacked

Var Details

repacked_type

The item we turn into when repacked

\ No newline at end of file diff --git a/obj/machinery/power/smes/connector.html b/obj/machinery/power/smes/connector.html new file mode 100644 index 0000000000000..b86259548d434 --- /dev/null +++ b/obj/machinery/power/smes/connector.html @@ -0,0 +1 @@ +/obj/machinery/power/smes/connector - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

connector

Procs

connector_freechecks if the connector is free; if not, alerts a user and returns FALSE
on_connect_smesconnects the actual portable SMES once it's assigned, adjusting charge/maxcharge
on_disconnect_smesdisconnects the portable SMES, resetting internal charge + capacity

Proc Details

connector_free

checks if the connector is free; if not, alerts a user and returns FALSE

on_connect_smes

connects the actual portable SMES once it's assigned, adjusting charge/maxcharge

on_disconnect_smes

disconnects the portable SMES, resetting internal charge + capacity

\ No newline at end of file diff --git a/obj/machinery/power/smesbank.html b/obj/machinery/power/smesbank.html new file mode 100644 index 0000000000000..4619e7c5098b1 --- /dev/null +++ b/obj/machinery/power/smesbank.html @@ -0,0 +1 @@ +/obj/machinery/power/smesbank - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

smesbank

The actual portable part of the portable SMES system. Pretty useless without an actual connector.

Vars

capacityThe charge capacity.
chargeThe current charge.
connected_portThe port this is connected to.

Procs

adjust_chargeAdjusts the charge of the portable SMES. See SMES code.
connect_portAttempt to connect the portable SMES to a given connector. Adapted from portable atmos connection code.
disconnect_portDisconnects the portable SMES from its assigned connector, if it has any. Also adapted from portable atmos connection code.
mapped_setupAttempt to locate, connect to, and activate a portable connector, for pre-mapped portable SMESes.
set_chargeSets the charge of the portable SMES. See SMES code.

Var Details

capacity

The charge capacity.

charge

The current charge.

connected_port

The port this is connected to.

Proc Details

adjust_charge

Adjusts the charge of the portable SMES. See SMES code.

connect_port

Attempt to connect the portable SMES to a given connector. Adapted from portable atmos connection code.

disconnect_port

Disconnects the portable SMES from its assigned connector, if it has any. Also adapted from portable atmos connection code.

mapped_setup

Attempt to locate, connect to, and activate a portable connector, for pre-mapped portable SMESes.

set_charge

Sets the charge of the portable SMES. See SMES code.

\ No newline at end of file diff --git a/obj/machinery/power/solar.html b/obj/machinery/power/solar.html new file mode 100644 index 0000000000000..883b44cf849c1 --- /dev/null +++ b/obj/machinery/power/solar.html @@ -0,0 +1,6 @@ +/obj/machinery/power/solar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

solar

Vars

azimuth_current[0-360) degrees, which direction are we facing?
needs_to_turndo we need to turn next tick?
needs_to_update_solar_exposuredo we need to call update_solar_exposure() next tick?
sunfrac[0-1] measure of obscuration -- multipllier against power generation

Procs

get_panel_transformGet the 2.5D transform for the panel, given an angle +Arguments:
occlusion_setuptrace towards sun to see if we're in shadow
update_solar_exposurecalculates the fraction of the sunlight that the panel receives

Var Details

azimuth_current

[0-360) degrees, which direction are we facing?

needs_to_turn

do we need to turn next tick?

needs_to_update_solar_exposure

do we need to call update_solar_exposure() next tick?

sunfrac

[0-1] measure of obscuration -- multipllier against power generation

Proc Details

get_panel_transform

Get the 2.5D transform for the panel, given an angle +Arguments:

+
    +
  • angle - the angle the panel is facing
  • +

occlusion_setup

trace towards sun to see if we're in shadow

update_solar_exposure

calculates the fraction of the sunlight that the panel receives

\ No newline at end of file diff --git a/obj/machinery/power/solar/deployable.html b/obj/machinery/power/solar/deployable.html new file mode 100644 index 0000000000000..8a2e433262183 --- /dev/null +++ b/obj/machinery/power/solar/deployable.html @@ -0,0 +1 @@ +/obj/machinery/power/solar/deployable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

deployable

Vars

repacked_typeThe item we turn into when repacked

Var Details

repacked_type

The item we turn into when repacked

\ No newline at end of file diff --git a/obj/machinery/power/solar_control.html b/obj/machinery/power/solar_control.html new file mode 100644 index 0000000000000..c437496bf6506 --- /dev/null +++ b/obj/machinery/power/solar_control.html @@ -0,0 +1 @@ +/obj/machinery/power/solar_control - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

solar_control

Vars

connected_trackerSOLAR_TRACK_OFF, SOLAR_TRACK_TIMED, SOLAR_TRACK_AUTO
historyHistory of power supply
next_recordHistory record timer
record_intervalInterval between records
record_sizeSize of history, should be equal or bigger than the solar cycle
trackdegree change per minute

Procs

recordRecord the generated power supply and capacity for history
set_panelsRotates the panel to the passed angles
timed_trackRan every time the sun updates.

Var Details

connected_tracker

SOLAR_TRACK_OFF, SOLAR_TRACK_TIMED, SOLAR_TRACK_AUTO

history

History of power supply

next_record

History record timer

record_interval

Interval between records

record_size

Size of history, should be equal or bigger than the solar cycle

track

degree change per minute

Proc Details

record

Record the generated power supply and capacity for history

set_panels

Rotates the panel to the passed angles

timed_track

Ran every time the sun updates.

\ No newline at end of file diff --git a/obj/machinery/power/stirling_generator.html b/obj/machinery/power/stirling_generator.html new file mode 100644 index 0000000000000..e368026f4f9cc --- /dev/null +++ b/obj/machinery/power/stirling_generator.html @@ -0,0 +1 @@ +/obj/machinery/power/stirling_generator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stirling_generator

Vars

connected_chamberReference to the datum connector we're using to interface with the pipe network
current_power_generationHow much power the generator is currently making
deconstruction_typeWhat this thing deconstructs into
max_efficient_heat_differenceMaximum efficient heat difference, at what heat difference does more difference stop meaning anything for power?
max_power_outputMaximum power output from this machine
soundloopOur looping fan sound that we play when turned on

Var Details

connected_chamber

Reference to the datum connector we're using to interface with the pipe network

current_power_generation

How much power the generator is currently making

deconstruction_type

What this thing deconstructs into

max_efficient_heat_difference

Maximum efficient heat difference, at what heat difference does more difference stop meaning anything for power?

max_power_output

Maximum power output from this machine

soundloop

Our looping fan sound that we play when turned on

\ No newline at end of file diff --git a/obj/machinery/power/supermatter_crystal.html b/obj/machinery/power/supermatter_crystal.html new file mode 100644 index 0000000000000..3d9d5278a75e4 --- /dev/null +++ b/obj/machinery/power/supermatter_crystal.html @@ -0,0 +1,97 @@ +/obj/machinery/power/supermatter_crystal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

supermatter_crystal

Vars

absorbed_gasmixThe gasmix we just recently absorbed. Tile's air multiplied by absorption_ratio
absorption_ratioThe portion of the gasmix we're on that we should remove
activation_loggedBoolean used to log the first activation of the SM.
bullet_energyHow much the bullets damage should be multiplied by when it is added to the internal variables
common_radio_cooldownCooldown for sending emergency alerts to the common radio channel
countdownAn effect we show to admins and ghosts the percentage of delam we're at
current_gas_behaviorThe current gas behaviors for this particular crystal
damageThe amount of damage we have currently.
damage_archivedThe damage we had before this cycle. +Used to check if we are currently taking damage or healing.
danger_pointThe point at which we consider the supermatter to be [SUPERMATTER_STATUS_DANGER] +Spawns anomalies when more damaged than this too.
delam_priorityWhether the sm is forced in a specific delamination_strategy or not. All truthy values means it's forced. +Only values greater or equal to the current one can change the strat.
delamination_strategyHow we are delaminating.
disable_damageDisables all methods of taking damage.
disable_gasDisables the calculation of gas effects and production of waste. +SM still "breathes" though, still takes gas and spits it out. Nothing is done on them though. +Cleaner code this way. Get rid of if it's too wasteful.
disable_power_changeDisables power changes.
disable_processDisables the SM's proccessing totally when set to SM_PROCESS_DISABLED. +Temporary disables the processing when it's set to SM_PROCESS_TIMESTOP. +Make sure absorbed_gasmix and gas_percentage isnt null if this is on SM_PROCESS_DISABLED.
emergency_pointThe point at which we consider the supermatter to be [SUPERMATTER_STATUS_EMERGENCY]
explosion_pointThe point at which we delam [SUPERMATTER_STATUS_DELAMINATING].
explosion_powerA scaling value that affects the severity of explosions.
external_damage_immediateExternal damage that are added to the sm on next [/obj/machinery/power/supermatter_crystal/process_atmos] call. +SM will not take damage if its health is lower than emergency point.
external_power_immediateExternal power that are added to the sm on next [/obj/machinery/power/supermatter_crystal/process_atmos] call.
external_power_trickleExternal power that are added over time instead of immediately.
final_countdownAre we exploding?
gas_heat_modifierAffects the heat our SM makes.
gas_heat_power_generationAffects the power gain the SM experiances from heat.
gas_heat_resistanceAffects the minimum point at which the SM takes heat damage
gas_percentageThe list of gases mapped against their current comp. +We use this to calculate different values the supermatter uses, like power or heat resistance. +Ranges from 0 to 1
gas_power_transmission_rateAffects the amount of power the main SM zap makes.
gas_powerloss_inhibitionHow much power decay is negated. Complete power decay negation at 1.
gl_uidThe amount of supermatters that have been created this round
hallucination_powerHow much hallucination should we produce per unit of power?
holiday_lightsIf the SM is decorated with holiday lights
hue_angle_shiftHue shift of the zaps color based on the power of the crystal
include_in_cimsDo we show this crystal in the CIMS modular program
internal_energyRefered to as EER on the monitor. This value effects gas output, damage, and power generation.
is_main_engineOnly main engines can have their sliver stolen, can trigger cascades, and can spawn stationwide anomalies.
last_accent_soundcooldown tracker for accent sounds
last_high_energy_zap_perspective_machinesSame as [last_power_zap_perspective_machines], but based around the high energy zaps found in handle_high_power().
last_power_zapStores the time of when the last zap occurred
last_power_zap_perspective_machinesStores the tick of the machines subsystem of when the last zap occurred. Gives a passage of time in the perspective of SSmachines.
lastwarningTime in 1/10th of seconds since the last sent warning
moveableCan it be moved?
powerloss_linear_offsetThe offset of the linear powerloss function set so the transition is differentiable.
powerloss_linear_thresholdThe power threshold required to transform the powerloss function into a linear function from a cubic function.
psy_coeffVar that increases from 0 to 1 when a psychologist is nearby, and decreases in the same way
radioOur internal radio
radio_keyThe key our internal radio uses
saviorsLazy list of the crazy engineers who managed to turn a cascading engine around.
soundloopOur soundloop
station_notifiedIf admins and the station have been notified according to the delam suppression function
supermatter_sliver_removedIf a sliver of the supermatter has been removed. Almost certainly by a traitor. Lowers the delamination countdown time.
temp_limitThe temperature at which we start taking damage
uidThe id of our supermatter
warning_pointThe point at which we consider the supermatter to be [SUPERMATTER_STATUS_WARNING]
warpReference to the warp effect
waste_multiplierMultiplies our waste gas amount and temperature.
zap_cutoffThe cutoff for a bolt jumping, grows with heat, lowers with higher mol count,
zap_iconTracks the bolt color we are using
zap_transmission_rateThe zap power transmission over internal energy. W/MeV.

Procs

calculate_damagePerform calculation for the damage taken or healed. +Description of each factors can be found in the defines.
calculate_gasesPerform calculation for variables that depend on gases. +Description of each factors can be found in the defines.
calculate_internal_energyPerform calculation for power lost and gained this tick. +Description of each factors can be found in the defines.
calculate_temp_limitCalculate at which temperature the sm starts taking damage. +heat limit is given by: (T0C+40) * (1 + gas heat res + psy_coeff)
calculate_waste_multiplierPerform calculation for the waste multiplier. +This number affects the temperature, plasma, and oxygen of the waste gas. +Multiplier is applied to energy for plasma and temperature but temperature for oxygen.
calculate_zap_transmission_ratePerform calculation for the main zap power transmission rate in W/MeV. +Description of each factors can be found in the defines.
count_downCount down, spout some messages, and then execute the delam itself. +We guard for last second delam strat changes here, mostly because some have diff messages.
get_integrity_percentReturns the integrity percent of the Supermatter. No rounding made yet, round it yourself.
get_statusEncodes the current state of the supermatter.
holiday_hat_examineAdds the hat flavor text when examined
holiday_item_interactionConsume the santa hat and add it as an overlay
log_activation
set_delamSets the delam of our sm.
sm_ui_dataReturns data that are exclusively about this sm.
tram_contents_consumeConsume things that run into the supermatter from the tram. The tram calls forceMove (doesn't call Bump/ed) and not Move, and I'm afraid changing it will do something chaotic

Var Details

absorbed_gasmix

The gasmix we just recently absorbed. Tile's air multiplied by absorption_ratio

absorption_ratio

The portion of the gasmix we're on that we should remove

activation_logged

Boolean used to log the first activation of the SM.

bullet_energy

How much the bullets damage should be multiplied by when it is added to the internal variables

common_radio_cooldown

Cooldown for sending emergency alerts to the common radio channel

countdown

An effect we show to admins and ghosts the percentage of delam we're at

current_gas_behavior

The current gas behaviors for this particular crystal

damage

The amount of damage we have currently.

damage_archived

The damage we had before this cycle. +Used to check if we are currently taking damage or healing.

danger_point

The point at which we consider the supermatter to be [SUPERMATTER_STATUS_DANGER] +Spawns anomalies when more damaged than this too.

delam_priority

Whether the sm is forced in a specific delamination_strategy or not. All truthy values means it's forced. +Only values greater or equal to the current one can change the strat.

delamination_strategy

How we are delaminating.

disable_damage

Disables all methods of taking damage.

disable_gas

Disables the calculation of gas effects and production of waste. +SM still "breathes" though, still takes gas and spits it out. Nothing is done on them though. +Cleaner code this way. Get rid of if it's too wasteful.

disable_power_change

Disables power changes.

disable_process

Disables the SM's proccessing totally when set to SM_PROCESS_DISABLED. +Temporary disables the processing when it's set to SM_PROCESS_TIMESTOP. +Make sure absorbed_gasmix and gas_percentage isnt null if this is on SM_PROCESS_DISABLED.

emergency_point

The point at which we consider the supermatter to be [SUPERMATTER_STATUS_EMERGENCY]

explosion_point

The point at which we delam [SUPERMATTER_STATUS_DELAMINATING].

explosion_power

A scaling value that affects the severity of explosions.

external_damage_immediate

External damage that are added to the sm on next [/obj/machinery/power/supermatter_crystal/process_atmos] call. +SM will not take damage if its health is lower than emergency point.

external_power_immediate

External power that are added to the sm on next [/obj/machinery/power/supermatter_crystal/process_atmos] call.

external_power_trickle

External power that are added over time instead of immediately.

final_countdown

Are we exploding?

gas_heat_modifier

Affects the heat our SM makes.

gas_heat_power_generation

Affects the power gain the SM experiances from heat.

gas_heat_resistance

Affects the minimum point at which the SM takes heat damage

gas_percentage

The list of gases mapped against their current comp. +We use this to calculate different values the supermatter uses, like power or heat resistance. +Ranges from 0 to 1

gas_power_transmission_rate

Affects the amount of power the main SM zap makes.

gas_powerloss_inhibition

How much power decay is negated. Complete power decay negation at 1.

gl_uid

The amount of supermatters that have been created this round

hallucination_power

How much hallucination should we produce per unit of power?

holiday_lights

If the SM is decorated with holiday lights

hue_angle_shift

Hue shift of the zaps color based on the power of the crystal

include_in_cims

Do we show this crystal in the CIMS modular program

internal_energy

Refered to as EER on the monitor. This value effects gas output, damage, and power generation.

is_main_engine

Only main engines can have their sliver stolen, can trigger cascades, and can spawn stationwide anomalies.

last_accent_sound

cooldown tracker for accent sounds

last_high_energy_zap_perspective_machines

Same as [last_power_zap_perspective_machines], but based around the high energy zaps found in handle_high_power().

last_power_zap

Stores the time of when the last zap occurred

last_power_zap_perspective_machines

Stores the tick of the machines subsystem of when the last zap occurred. Gives a passage of time in the perspective of SSmachines.

lastwarning

Time in 1/10th of seconds since the last sent warning

moveable

Can it be moved?

powerloss_linear_offset

The offset of the linear powerloss function set so the transition is differentiable.

powerloss_linear_threshold

The power threshold required to transform the powerloss function into a linear function from a cubic function.

psy_coeff

Var that increases from 0 to 1 when a psychologist is nearby, and decreases in the same way

radio

Our internal radio

radio_key

The key our internal radio uses

saviors

Lazy list of the crazy engineers who managed to turn a cascading engine around.

soundloop

Our soundloop

station_notified

If admins and the station have been notified according to the delam suppression function

supermatter_sliver_removed

If a sliver of the supermatter has been removed. Almost certainly by a traitor. Lowers the delamination countdown time.

temp_limit

The temperature at which we start taking damage

uid

The id of our supermatter

warning_point

The point at which we consider the supermatter to be [SUPERMATTER_STATUS_WARNING]

warp

Reference to the warp effect

waste_multiplier

Multiplies our waste gas amount and temperature.

zap_cutoff

The cutoff for a bolt jumping, grows with heat, lowers with higher mol count,

zap_icon

Tracks the bolt color we are using

zap_transmission_rate

The zap power transmission over internal energy. W/MeV.

Proc Details

calculate_damage

Perform calculation for the damage taken or healed. +Description of each factors can be found in the defines.

+

Updates: +/obj/machinery/power/supermatter_crystal/var/damage

+

Returns: The factors that have influenced the calculation. list[FACTOR_DEFINE] = number

calculate_gases

Perform calculation for variables that depend on gases. +Description of each factors can be found in the defines.

+

Updates: +[/obj/machinery/power/supermatter_crystal/var/list/gas_percentage] +/obj/machinery/power/supermatter_crystal/var/gas_power_transmission_rate +/obj/machinery/power/supermatter_crystal/var/gas_heat_modifier +/obj/machinery/power/supermatter_crystal/var/gas_heat_resistance +/obj/machinery/power/supermatter_crystal/var/gas_heat_power_generation +/obj/machinery/power/supermatter_crystal/var/gas_powerloss_inhibition

+

Returns: null

calculate_internal_energy

Perform calculation for power lost and gained this tick. +Description of each factors can be found in the defines.

+

Updates: +/obj/machinery/power/supermatter_crystal/var/internal_energy +/obj/machinery/power/supermatter_crystal/var/external_power_trickle +/obj/machinery/power/supermatter_crystal/var/external_power_immediate

+

Returns: The factors that have influenced the calculation. list[FACTOR_DEFINE] = number

calculate_temp_limit

Calculate at which temperature the sm starts taking damage. +heat limit is given by: (T0C+40) * (1 + gas heat res + psy_coeff)

+

Description of each factors can be found in the defines.

+

Updates: +/obj/machinery/power/supermatter_crystal/var/temp_limit

+

Returns: The factors that have influenced the calculation. list[FACTOR_DEFINE] = number

calculate_waste_multiplier

Perform calculation for the waste multiplier. +This number affects the temperature, plasma, and oxygen of the waste gas. +Multiplier is applied to energy for plasma and temperature but temperature for oxygen.

+

Description of each factors can be found in the defines.

+

Updates: +/obj/machinery/power/supermatter_crystal/var/waste_multiplier

+

Returns: The factors that have influenced the calculation. list[FACTOR_DEFINE] = number

calculate_zap_transmission_rate

Perform calculation for the main zap power transmission rate in W/MeV. +Description of each factors can be found in the defines.

+

Updates: +/obj/machinery/power/supermatter_crystal/var/zap_transmission_rate

+

Returns: The factors that have influenced the calculation. list[FACTOR_DEFINE] = number

count_down

Count down, spout some messages, and then execute the delam itself. +We guard for last second delam strat changes here, mostly because some have diff messages.

+

By last second changes, we mean that it's possible for say, a tesla delam to +just explode normally if at the absolute last second it loses power and switches to default one. +Even after countdown is already in progress.

get_integrity_percent

Returns the integrity percent of the Supermatter. No rounding made yet, round it yourself.

get_status

Encodes the current state of the supermatter.

holiday_hat_examine

Adds the hat flavor text when examined

holiday_item_interaction

Consume the santa hat and add it as an overlay

log_activation

    +
  • +

    Log when the supermatter is activated for the first time.

    +
  • +
  • +

    Everything that can increase /obj/machinery/power/supermatter_crystal/var/internal_energy

    +
  • +
  • +

    either directly or indirectly MUST call this.

    +
  • +
  • +

    Arguments:

    +
  • +
  • +
      +
    • who - Either a string or a datum. Whatever gave power to the SM. Mandatory.
    • +
    +
  • +
  • +
      +
    • how - A datum. How they powered it. Optional.
    • +
    +
  • +

set_delam

Sets the delam of our sm.

+

Arguments:

+
    +
  • priority: Truthy values means a forced delam. If current forced_delam is higher than priority we dont run. +Set to a number higher than SM_DELAM_PRIO_IN_GAME to fully force an admin delam.
  • +
  • delam_path: Typepath of a /datum/sm_delam. SM_DELAM_STRATEGY_PURGE means reset and put prio back to zero.
  • +
+

Returns: Not used for anything, just returns true on succesful set, manual and automatic. Helps admins check stuffs.

sm_ui_data

Returns data that are exclusively about this sm.

tram_contents_consume

Consume things that run into the supermatter from the tram. The tram calls forceMove (doesn't call Bump/ed) and not Move, and I'm afraid changing it will do something chaotic

\ No newline at end of file diff --git a/obj/machinery/power/thermoelectric_generator.html b/obj/machinery/power/thermoelectric_generator.html new file mode 100644 index 0000000000000..65d400fe95333 --- /dev/null +++ b/obj/machinery/power/thermoelectric_generator.html @@ -0,0 +1,15 @@ +/obj/machinery/power/thermoelectric_generator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

thermoelectric_generator

Vars

cold_circThe cold circulator machine, containing cold gas for the mix.
hot_circThe hot circulator machine, containing very hot gas for the mix.
last_pressure_overlayUsed in overlays for the TEG, basically; +one number is for the cold mix, one is for the hot mix +If the cold mix has pressure in it, then the first number is 1, else 0 +If the hot mix has pressure in it, then the second number is 1, else 0 +Neither has pressure: 00 +Only cold has pressure: 10 +Only hot has pressure: 01 +Both has pressure: 11
lastgenThe amount of power the generator is currently producing.
lastgenlevThe amount of power the generator has last produced.

Procs

find_circulatorsFinds and connects nearby valid circulators to the machine, nulling out previous ones.

Var Details

cold_circ

The cold circulator machine, containing cold gas for the mix.

hot_circ

The hot circulator machine, containing very hot gas for the mix.

last_pressure_overlay

Used in overlays for the TEG, basically; +one number is for the cold mix, one is for the hot mix +If the cold mix has pressure in it, then the first number is 1, else 0 +If the hot mix has pressure in it, then the second number is 1, else 0 +Neither has pressure: 00 +Only cold has pressure: 10 +Only hot has pressure: 01 +Both has pressure: 11

lastgen

The amount of power the generator is currently producing.

lastgenlev

The amount of power the generator has last produced.

Proc Details

find_circulators

Finds and connects nearby valid circulators to the machine, nulling out previous ones.

\ No newline at end of file diff --git a/obj/machinery/power/tracker.html b/obj/machinery/power/tracker.html new file mode 100644 index 0000000000000..9aac9b748867e --- /dev/null +++ b/obj/machinery/power/tracker.html @@ -0,0 +1,6 @@ +/obj/machinery/power/tracker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

tracker

Procs

get_tracker_transformGet the 2.5D transform for the tracker, given an angle +Arguments:
sun_updateTell the controller to turn the solar panels

Proc Details

get_tracker_transform

Get the 2.5D transform for the tracker, given an angle +Arguments:

+
    +
  • angle - the angle the panel is facing
  • +

sun_update

Tell the controller to turn the solar panels

\ No newline at end of file diff --git a/obj/machinery/power/tracker/deployable.html b/obj/machinery/power/tracker/deployable.html new file mode 100644 index 0000000000000..3c3dff2ce88eb --- /dev/null +++ b/obj/machinery/power/tracker/deployable.html @@ -0,0 +1 @@ +/obj/machinery/power/tracker/deployable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

deployable

Vars

repacked_typeThe item we turn into when repacked

Var Details

repacked_type

The item we turn into when repacked

\ No newline at end of file diff --git a/obj/machinery/power/turbine.html b/obj/machinery/power/turbine.html new file mode 100644 index 0000000000000..81d4c1ba06894 --- /dev/null +++ b/obj/machinery/power/turbine.html @@ -0,0 +1,20 @@ +/obj/machinery/power/turbine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

turbine

Vars

activeChecks if the machine is processing or not
active_overlayOur overlay when active
can_connectThe parts can be registered on the main one only when their panel is closed
emissiveShould we use emissive appearance?
installed_partReference to our turbine part
machine_gasmixThe gas mixture this turbine part is storing
off_overlayOur overlay when off
open_overlayOur overlay when open
part_pathPath of the turbine part we can install

Procs

activate_partsAllow easy enabling of each machine for connection to the main controller
deactivate_partsAllow easy disabling of each machine from the main controller
get_efficiencyGets the efficiency of the installed part, returns 0 if no part is installed
transfer_gasesHandles all the calculations needed for the gases, work done, temperature increase/decrease

Var Details

active

Checks if the machine is processing or not

active_overlay

Our overlay when active

can_connect

The parts can be registered on the main one only when their panel is closed

emissive

Should we use emissive appearance?

installed_part

Reference to our turbine part

machine_gasmix

The gas mixture this turbine part is storing

off_overlay

Our overlay when off

open_overlay

Our overlay when open

part_path

Path of the turbine part we can install

Proc Details

activate_parts

Allow easy enabling of each machine for connection to the main controller

+

Arguments

+
    +
  • mob/user - the player who activated the parts
  • +
  • check_only - if TRUE it will not activate the machine but will only check if it can be activated
  • +

deactivate_parts

Allow easy disabling of each machine from the main controller

+

Arguments

+
    +
  • mob/user - the player who deactivated the parts
  • +

get_efficiency

Gets the efficiency of the installed part, returns 0 if no part is installed

transfer_gases

Handles all the calculations needed for the gases, work done, temperature increase/decrease

+

Arguments

+
    +
  • datum/gas_mixture/input_mix - the gas from the environment or from another part of the turbine
  • +
  • datum/gas_mixture/output_mix - the gas that got pumped into this part from the input mix. +ideally should be same as input mix but varying texmperatur & pressures can cause varying results
  • +
  • work_amount_to_remove - the amount of work to subtract from the actual work done to pump in the input mixture. +For e.g. if gas was transfered from the inlet compressor to the rotor we want to subtract the work done +by the inlet from the rotor to get the true work done
  • +
  • intake_size - the percentage of gas to be fed into an turbine part, controlled by turbine computer for inlet compressor only
  • +
\ No newline at end of file diff --git a/obj/machinery/power/turbine/core_rotor.html b/obj/machinery/power/turbine/core_rotor.html new file mode 100644 index 0000000000000..104b33811e910 --- /dev/null +++ b/obj/machinery/power/turbine/core_rotor.html @@ -0,0 +1,7 @@ +/obj/machinery/power/turbine/core_rotor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

core_rotor

Vars

all_parts_connectedCheck to see if all parts are connected to the core
compressorReference to the compressor
damageAmount of damage the machine has received
damage_archivedUsed to calculate the max damage received per tick and if the alarm should be called
mapping_idID to easily connect the main part of the turbine to the computer
max_allowed_rpmMax rmp that the installed parts can handle, limits the rpms
max_allowed_temperatureMax temperature that the installed parts can handle, unlimited and causes damage to the machine
produced_energyAmount of power the machine is producing
radioOur internal radio
rpmRotation per minute the machine is doing
turbineReference to the turbine

Procs

activate_partsCalled to activate the complete machine, checks for part presence, correct orientation and installed parts +Registers the input/output turfs
all_parts_readyReturns true if all parts have their panel closed
call_parts_update_appearanceCalls all parts update appearance proc.
deactivate_partsAllows to null the various machines and references from the main core
feedbackconvinience proc for balloon alert which returns if viewer is null
get_turbine_integrityGetter for turbine integrity, return the amount in %
power_offDeactivate all three parts, not safe, it assumes the machine already connected and properly working +will try to turn off whatever components are left of this machine
power_onActivate all three parts, not safe, it assumes the machine already connected and properly working +It does a minimun check to ensure the parts still exist
toggle_powerToggle power on and off, not safe

Var Details

all_parts_connected

Check to see if all parts are connected to the core

compressor

Reference to the compressor

damage

Amount of damage the machine has received

damage_archived

Used to calculate the max damage received per tick and if the alarm should be called

mapping_id

ID to easily connect the main part of the turbine to the computer

max_allowed_rpm

Max rmp that the installed parts can handle, limits the rpms

max_allowed_temperature

Max temperature that the installed parts can handle, unlimited and causes damage to the machine

produced_energy

Amount of power the machine is producing

radio

Our internal radio

rpm

Rotation per minute the machine is doing

turbine

Reference to the turbine

Proc Details

activate_parts

Called to activate the complete machine, checks for part presence, correct orientation and installed parts +Registers the input/output turfs

all_parts_ready

Returns true if all parts have their panel closed

call_parts_update_appearance

Calls all parts update appearance proc.

deactivate_parts

Allows to null the various machines and references from the main core

feedback

convinience proc for balloon alert which returns if viewer is null

get_turbine_integrity

Getter for turbine integrity, return the amount in %

power_off

Deactivate all three parts, not safe, it assumes the machine already connected and properly working +will try to turn off whatever components are left of this machine

power_on

Activate all three parts, not safe, it assumes the machine already connected and properly working +It does a minimun check to ensure the parts still exist

toggle_power

Toggle power on and off, not safe

\ No newline at end of file diff --git a/obj/machinery/power/turbine/inlet_compressor.html b/obj/machinery/power/turbine/inlet_compressor.html new file mode 100644 index 0000000000000..3b18de9b74905 --- /dev/null +++ b/obj/machinery/power/turbine/inlet_compressor.html @@ -0,0 +1,3 @@ +/obj/machinery/power/turbine/inlet_compressor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

inlet_compressor

Vars

compressor_pressurePressure of gases absorbed
compressor_workWork acheived during compression
input_turfThe turf from which it absorbs gases from
intake_regulatorRatio of gases going in the turbine
rotorThe rotor this inlet is linked to

Procs

compress_gasestransfers gases from its input turf to its internal gas mix +Returns temperature of the gas mix absorbed only if some work was done

Var Details

compressor_pressure

Pressure of gases absorbed

compressor_work

Work acheived during compression

input_turf

The turf from which it absorbs gases from

intake_regulator

Ratio of gases going in the turbine

rotor

The rotor this inlet is linked to

Proc Details

compress_gases

transfers gases from its input turf to its internal gas mix +Returns temperature of the gas mix absorbed only if some work was done

\ No newline at end of file diff --git a/obj/machinery/power/turbine/turbine_outlet.html b/obj/machinery/power/turbine/turbine_outlet.html new file mode 100644 index 0000000000000..0b8b05dfacac6 --- /dev/null +++ b/obj/machinery/power/turbine/turbine_outlet.html @@ -0,0 +1 @@ +/obj/machinery/power/turbine/turbine_outlet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

turbine_outlet

Vars

output_turfThe turf to puch the gases out into
rotorThe rotor this outlet is linked to

Procs

expel_gasespush gases from its gas mix to output turf

Var Details

output_turf

The turf to puch the gases out into

rotor

The rotor this outlet is linked to

Proc Details

expel_gases

push gases from its gas mix to output turf

\ No newline at end of file diff --git a/obj/machinery/powerator.html b/obj/machinery/powerator.html new file mode 100644 index 0000000000000..e7bf0fb06acc8 --- /dev/null +++ b/obj/machinery/powerator.html @@ -0,0 +1 @@ +/obj/machinery/powerator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

powerator

Vars

attached_cablethe attached cable to the machine
credits_accountthe account credits will be sent towards
credits_madehow many credits this machine has actually made so far
current_powerthe current amount of power that we are trying to process
divide_ratiohow much the current_power is divided by to determine the profit
max_powerthe max amount of power that can be sent per process, from 100 KW (t1) to 10000 KW (t4)

Var Details

attached_cable

the attached cable to the machine

credits_account

the account credits will be sent towards

credits_made

how many credits this machine has actually made so far

current_power

the current amount of power that we are trying to process

divide_ratio

how much the current_power is divided by to determine the profit

max_power

the max amount of power that can be sent per process, from 100 KW (t1) to 10000 KW (t4)

\ No newline at end of file diff --git a/obj/machinery/powerator/interdyne.html b/obj/machinery/powerator/interdyne.html new file mode 100644 index 0000000000000..91ecdc35aedde --- /dev/null +++ b/obj/machinery/powerator/interdyne.html @@ -0,0 +1 @@ +/obj/machinery/powerator/interdyne - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

interdyne

Vars

credits_accountthe account credits will be sent towards

Var Details

credits_account

the account credits will be sent towards

\ No newline at end of file diff --git a/obj/machinery/powerator/tarkon.html b/obj/machinery/powerator/tarkon.html new file mode 100644 index 0000000000000..f7634cf68cac7 --- /dev/null +++ b/obj/machinery/powerator/tarkon.html @@ -0,0 +1 @@ +/obj/machinery/powerator/tarkon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tarkon

Vars

credits_accountthe account credits will be sent towards

Var Details

credits_account

the account credits will be sent towards

\ No newline at end of file diff --git a/obj/machinery/prisongate.html b/obj/machinery/prisongate.html new file mode 100644 index 0000000000000..bfed0331fb0f7 --- /dev/null +++ b/obj/machinery/prisongate.html @@ -0,0 +1 @@ +/obj/machinery/prisongate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

prisongate

Vars

gate_activedictates whether the gate barrier is up or not
max_integrityroughly the same health/armor as an airlock

Var Details

gate_active

dictates whether the gate barrier is up or not

max_integrity

roughly the same health/armor as an airlock

\ No newline at end of file diff --git a/obj/machinery/processor.html b/obj/machinery/processor.html new file mode 100644 index 0000000000000..422599c9f0ff1 --- /dev/null +++ b/obj/machinery/processor.html @@ -0,0 +1 @@ +/obj/machinery/processor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

processor

Vars

processingIs the processor blending items at the moment
processor_contentsLazylist of items to be blended
rating_amountThe amount of items the processor produces, without any food specific multipliers
rating_speedThe speed at which the processor processes items

Var Details

processing

Is the processor blending items at the moment

processor_contents

Lazylist of items to be blended

rating_amount

The amount of items the processor produces, without any food specific multipliers

rating_speed

The speed at which the processor processes items

\ No newline at end of file diff --git a/obj/machinery/puzzle.html b/obj/machinery/puzzle.html new file mode 100644 index 0000000000000..9aa6857762240 --- /dev/null +++ b/obj/machinery/puzzle.html @@ -0,0 +1 @@ +/obj/machinery/puzzle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

puzzle

Vars

idpuzzle id we send on press
late_initialize_popshould the puzzle machinery perform the final step of the queue link on LateInitialize? An alternative to queue size
queue_sizequeue size, must match count of objects this activates!
single_usecan we be pressed only once?
usedhave we been pressed already?

Var Details

id

puzzle id we send on press

late_initialize_pop

should the puzzle machinery perform the final step of the queue link on LateInitialize? An alternative to queue size

queue_size

queue size, must match count of objects this activates!

single_use

can we be pressed only once?

used

have we been pressed already?

\ No newline at end of file diff --git a/obj/machinery/puzzle/password.html b/obj/machinery/puzzle/password.html new file mode 100644 index 0000000000000..13a0556e9cd0c --- /dev/null +++ b/obj/machinery/puzzle/password.html @@ -0,0 +1 @@ +/obj/machinery/puzzle/password - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

password

Vars

input_max_len_is_passDecides whether the max length of the input is MAX_NAME_LEN or the length of the password.
passwordThe password to this door.
tgui_textThe text shown in the tgui input popup
tgui_titleThe title of the tgui input popup

Var Details

input_max_len_is_pass

Decides whether the max length of the input is MAX_NAME_LEN or the length of the password.

password

The password to this door.

tgui_text

The text shown in the tgui input popup

tgui_title

The title of the tgui input popup

\ No newline at end of file diff --git a/obj/machinery/puzzle/password/pin.html b/obj/machinery/puzzle/password/pin.html new file mode 100644 index 0000000000000..793b6c3100a88 --- /dev/null +++ b/obj/machinery/puzzle/password/pin.html @@ -0,0 +1 @@ +/obj/machinery/puzzle/password/pin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pin

Vars

digit_to_colorassociate a color to each digit that may be found in the password.
pin_lengthThe length of the PIN. Suggestion: something between 4 and 12.

Var Details

digit_to_color

associate a color to each digit that may be found in the password.

pin_length

The length of the PIN. Suggestion: something between 4 and 12.

\ No newline at end of file diff --git a/obj/machinery/quantum_server.html b/obj/machinery/quantum_server.html new file mode 100644 index 0000000000000..7d63b2d79efc8 --- /dev/null +++ b/obj/machinery/quantum_server.html @@ -0,0 +1,5 @@ +/obj/machinery/quantum_server - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

quantum_server

The base object for the quantum server

Vars

avatar_connection_refsCurrent plugged in users
broadcast_toggle_cdCooldown between being able to toggle broadcasting
broadcastingDetermines if we broadcast to entertainment monitors or not
capacitor_coefficientAffects server cooldown efficiency
domain_randomizedIf the current domain was a random selection
exit_turfsThe turfs we can place a hololadder on.
generated_domainThe loaded map template, map_template/virtual_domain
glitch_chanceChance multipled by threat to spawn a glitch
is_readyPrevents multiple user actions. Handled by loading domains and cooldowns
multiplayer_bonusScales loot with extra players
mutation_candidate_refsCached list of mutable mobs in zone for cybercops
pointsThe amount of points in the system, used to purchase maps
radioThe radio the console can speak into
retries_spentKeeps track of the number of times someone has built a hololadder
scanner_tierChanges how much info is available on the domain
server_cooldown_timeLength of time it takes for the server to cool down after resetting. Here to give runners downtime so their faces don't get stuck like that
servo_bonusApplies bonuses to rewards etc
spawned_threat_refsAny ghosts that have spawned in
threatDetermines the glitches available to spawn, builds with completion
threat_prob_maxMaximum rate at which a glitch can spawn

Procs

add_threatsAdds threats to the list and notifies players
attempt_spawn_cacheAttempts to spawn a crate twice based on the list of available locations
attempt_spawn_curiosityAttempts to spawn a lootbox
begin_shutdownGives all current occupants a notification that the server is going down
calculate_rewardsHandles calculating rewards based on number of players, parts, threats, etc
can_generate_tech_diskChecks if the players should get a bepis reward
cold_boot_mapLinks all the loading processes together - does validation for booting a map
cool_offResets the cooldown state and updates icons
generate_avatarGenerates a new avatar for the bitrunner.
generate_lootHandles spawning the (new) crate and deleting the former
generate_secondary_lootBuilds secondary loot if the achievements were met
get_antagonist_roleChoses which antagonist role is spawned based on threat
get_avatar_dataIf there are hosted minds, attempts to get a list of their current virtual bodies w/ vitals
get_avatar_destinationI grab the atom here so I can signal it / manipulate spawners etc
get_completion_certificateReturns the markdown text containing domain completion information
get_mutation_targetSelects a target to mutate. Gives two attempts, then crashes if it fails.
get_random_domain_idGets a random available domain given the current points.
get_random_nearby_forgeLocates any turfs with forges on them, returns a random one
grade_completionGrades the player's run based on several factors
load_domainInitializes a new domain if the given key is valid and the user has enough points
load_map_itemsLoads in necessary map items like hololadder spawns, caches, etc
load_mob_segmentsLoads in any mob segments of the map
notify_spawned_threatsFinds any mobs with minds in the zones and gives them the bad news
on_brokenIf broken via signal, disconnects all users
on_corpse_spawnedWhenever a corpse spawner makes a new corpse, add it to the list of potential mutations
on_deleteBeing qdeleted - make sure the circuit and connected mobs go with it
on_goal_turf_enteredWhenever something enters the send tiles, check if it's a loot crate. If so, alert players.
on_goal_turf_examinedHandles examining the server. Shows cooldown time and efficiency.
on_template_loadedScans over the inbound created_atoms from lazy templates
on_threat_createdHandles when cybercops are summoned into the area or ghosts click a ghost role spawner
remove_threatRemoves a specific threat - used when station spawning
resetStops the current virtual domain and disconnects all users
reset_equipmentRemoves all blacklisted items from a mob and returns them to base state
scrub_vdomTries to clean up everything in the domain
setup_glitchSelects the role and waits for a ghost orbiter
sever_connectionsSevers any connected users
spark_at_locationDo some magic teleport sparks
spawn_glitchOrbit poll has concluded - spawn the antag
start_new_connectionStarts building a new avatar for the player. +Called by netpods when they don't have a current avatar. +This is a procedural proc which links several others together.
station_spawnOh boy - transports the antag station side
stock_gearScans over neo's contents for bitrunning tech disks. Loads the items or abilities onto the avatar.
toggle_broadcastToggles broadcast on and off
validate_mutation_candidatesRemoves any invalid candidates from the list
validate_turfReturns a turf if it's not dense, else will find a neighbor.

Var Details

avatar_connection_refs

Current plugged in users

broadcast_toggle_cd

Cooldown between being able to toggle broadcasting

broadcasting

Determines if we broadcast to entertainment monitors or not

capacitor_coefficient

Affects server cooldown efficiency

domain_randomized

If the current domain was a random selection

exit_turfs

The turfs we can place a hololadder on.

generated_domain

The loaded map template, map_template/virtual_domain

glitch_chance

Chance multipled by threat to spawn a glitch

is_ready

Prevents multiple user actions. Handled by loading domains and cooldowns

multiplayer_bonus

Scales loot with extra players

mutation_candidate_refs

Cached list of mutable mobs in zone for cybercops

points

The amount of points in the system, used to purchase maps

radio

The radio the console can speak into

retries_spent

Keeps track of the number of times someone has built a hololadder

scanner_tier

Changes how much info is available on the domain

server_cooldown_time

Length of time it takes for the server to cool down after resetting. Here to give runners downtime so their faces don't get stuck like that

servo_bonus

Applies bonuses to rewards etc

spawned_threat_refs

Any ghosts that have spawned in

threat

Determines the glitches available to spawn, builds with completion

threat_prob_max

Maximum rate at which a glitch can spawn

Proc Details

add_threats

Adds threats to the list and notifies players

attempt_spawn_cache

Attempts to spawn a crate twice based on the list of available locations

attempt_spawn_curiosity

Attempts to spawn a lootbox

begin_shutdown

Gives all current occupants a notification that the server is going down

calculate_rewards

Handles calculating rewards based on number of players, parts, threats, etc

can_generate_tech_disk

Checks if the players should get a bepis reward

cold_boot_map

Links all the loading processes together - does validation for booting a map

cool_off

Resets the cooldown state and updates icons

generate_avatar

Generates a new avatar for the bitrunner.

generate_loot

Handles spawning the (new) crate and deleting the former

generate_secondary_loot

Builds secondary loot if the achievements were met

get_antagonist_role

Choses which antagonist role is spawned based on threat

get_avatar_data

If there are hosted minds, attempts to get a list of their current virtual bodies w/ vitals

get_avatar_destination

I grab the atom here so I can signal it / manipulate spawners etc

get_completion_certificate

Returns the markdown text containing domain completion information

get_mutation_target

Selects a target to mutate. Gives two attempts, then crashes if it fails.

get_random_domain_id

Gets a random available domain given the current points.

get_random_nearby_forge

Locates any turfs with forges on them, returns a random one

grade_completion

Grades the player's run based on several factors

load_domain

Initializes a new domain if the given key is valid and the user has enough points

load_map_items

Loads in necessary map items like hololadder spawns, caches, etc

load_mob_segments

Loads in any mob segments of the map

notify_spawned_threats

Finds any mobs with minds in the zones and gives them the bad news

on_broken

If broken via signal, disconnects all users

on_corpse_spawned

Whenever a corpse spawner makes a new corpse, add it to the list of potential mutations

on_delete

Being qdeleted - make sure the circuit and connected mobs go with it

on_goal_turf_entered

Whenever something enters the send tiles, check if it's a loot crate. If so, alert players.

on_goal_turf_examined

Handles examining the server. Shows cooldown time and efficiency.

on_template_loaded

Scans over the inbound created_atoms from lazy templates

on_threat_created

Handles when cybercops are summoned into the area or ghosts click a ghost role spawner

remove_threat

Removes a specific threat - used when station spawning

reset

Stops the current virtual domain and disconnects all users

reset_equipment

Removes all blacklisted items from a mob and returns them to base state

scrub_vdom

Tries to clean up everything in the domain

setup_glitch

Selects the role and waits for a ghost orbiter

sever_connections

Severs any connected users

spark_at_location

Do some magic teleport sparks

spawn_glitch

Orbit poll has concluded - spawn the antag

start_new_connection

Starts building a new avatar for the player. +Called by netpods when they don't have a current avatar. +This is a procedural proc which links several others together.

station_spawn

Oh boy - transports the antag station side

stock_gear

Scans over neo's contents for bitrunning tech disks. Loads the items or abilities onto the avatar.

toggle_broadcast

Toggles broadcast on and off

validate_mutation_candidates

Removes any invalid candidates from the list

validate_turf

Returns a turf if it's not dense, else will find a neighbor.

\ No newline at end of file diff --git a/obj/machinery/reagentgrinder.html b/obj/machinery/reagentgrinder.html new file mode 100644 index 0000000000000..b5f30d140f655 --- /dev/null +++ b/obj/machinery/reagentgrinder.html @@ -0,0 +1,36 @@ +/obj/machinery/reagentgrinder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

reagentgrinder

Vars

beakerThe beaker to hold the final products
maximum_weightThe maximum weight of items this grinder can hold
operatingIs the grinder currently performing work
speedHow fast operations take place

Procs

check_interactableChecks if the radial menu can interact with this machine +Arguments
load_itemsTransfer this item or items inside if its a bag into the grinder +Arguments
mixMixes the reagents inside the beaker +Arguments
mix_completeMix the reagents +Arguments
operate_forGrinds/Juices all contents inside the grinder +Arguments
replace_beakerInserts, removes or replaces the beaker present +Arguments
stop_operatingReset the operating status of the machine

Var Details

beaker

The beaker to hold the final products

maximum_weight

The maximum weight of items this grinder can hold

operating

Is the grinder currently performing work

speed

How fast operations take place

Proc Details

check_interactable

Checks if the radial menu can interact with this machine +Arguments

+
    +
  • mob/user - the player interacting with this machine
  • +

load_items

Transfer this item or items inside if its a bag into the grinder +Arguments

+
    +
  • mob/user - the player who is inserting these items
  • +
  • list/obj/item/to_add - list of items to add
  • +

mix

Mixes the reagents inside the beaker +Arguments

+
    +
  • time - the length of time in deciseconds to operate
  • +
  • mob/user - the player who started the mixing process
  • +

mix_complete

Mix the reagents +Arguments

+
    +
  • duration - the time spent in mixing
  • +

operate_for

Grinds/Juices all contents inside the grinder +Arguments

+
    +
  • time - the duration in deciseconds to perform the operation
  • +
  • juicing - FALSE to grind, TRUE to juice
  • +
  • mob/user - the player who initiated this process
  • +

replace_beaker

Inserts, removes or replaces the beaker present +Arguments

+
    +
  • mob/living/user - the player performing the action
  • +
  • obj/item/reagent_containers/new_beaker - the new beaker to replace the old, null to do nothing
  • +

stop_operating

Reset the operating status of the machine

\ No newline at end of file diff --git a/obj/machinery/recharge_station.html b/obj/machinery/recharge_station.html new file mode 100644 index 0000000000000..086a98457d890 --- /dev/null +++ b/obj/machinery/recharge_station.html @@ -0,0 +1,7 @@ +/obj/machinery/recharge_station - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

recharge_station

Vars

charge_cellCallback for borgs & modsuits to provide their cell to us for charging
sendmatsWhether we're sending iron and glass to a cyborg. Requires Silo connection.

Procs

charge_target_cellMobs & borgs invoke this through a callback to recharge their cells +Arguments

Var Details

charge_cell

Callback for borgs & modsuits to provide their cell to us for charging

sendmats

Whether we're sending iron and glass to a cyborg. Requires Silo connection.

Proc Details

charge_target_cell

Mobs & borgs invoke this through a callback to recharge their cells +Arguments

+
    +
  • obj/item/stock_parts/power_store/cell/target - the cell to charge, optional if provided else will draw power used directly
  • +
  • seconds_per_tick - supplied from process()
  • +
\ No newline at end of file diff --git a/obj/machinery/recharger.html b/obj/machinery/recharger.html new file mode 100644 index 0000000000000..db97445aec801 --- /dev/null +++ b/obj/machinery/recharger.html @@ -0,0 +1 @@ +/obj/machinery/recharger - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

recharger

Vars

finished_rechargingDid we finish recharging the currently inserted item?

Var Details

finished_recharging

Did we finish recharging the currently inserted item?

\ No newline at end of file diff --git a/obj/machinery/requests_console.html b/obj/machinery/requests_console.html new file mode 100644 index 0000000000000..6b7baec88ff0a --- /dev/null +++ b/obj/machinery/requests_console.html @@ -0,0 +1 @@ +/obj/machinery/requests_console - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

requests_console

Vars

announcement_authenticatedWill be set to TRUE when you authenticate yourself for announcements
announcement_cooldownCooldown to prevent announcement spam
areaReference to our area
auto_nameIs autonaming by area on?
can_send_announcementsFALSE = This console cannot be used to send department announcements, TRUE = This console can send department announcements
departmentDepartment name (Determined from this variable on each unit) Set this to the same thing if you want several consoles in one department
emergencyIf an emergency has been called by this device. Acts as both a cooldown and lets the responder know where it the emergency was triggered from
has_mail_send_errorDid we error in the last mail?
message_stamped_byIf a message is stamped, this will contain the stamp name
message_verified_byWill contain the name of the person who verified it
messagesList of all messages
new_message_priorityPriority of the latest message
radioReference to the internal radio
receive_ore_updatesIf ore redemption machines will send an update when it receives new ores.

Procs

clear_emergencyTurns the emergency console back to its normal sprite once the emergency has timed out
create_messageFrom message_server.dm: Console.create_message(data)
send_messageSends the message from the request console

Var Details

announcement_authenticated

Will be set to TRUE when you authenticate yourself for announcements

announcement_cooldown

Cooldown to prevent announcement spam

area

Reference to our area

auto_name

Is autonaming by area on?

can_send_announcements

FALSE = This console cannot be used to send department announcements, TRUE = This console can send department announcements

department

Department name (Determined from this variable on each unit) Set this to the same thing if you want several consoles in one department

emergency

If an emergency has been called by this device. Acts as both a cooldown and lets the responder know where it the emergency was triggered from

has_mail_send_error

Did we error in the last mail?

message_stamped_by

If a message is stamped, this will contain the stamp name

message_verified_by

Will contain the name of the person who verified it

messages

List of all messages

new_message_priority

Priority of the latest message

radio

Reference to the internal radio

receive_ore_updates

If ore redemption machines will send an update when it receives new ores.

Proc Details

clear_emergency

Turns the emergency console back to its normal sprite once the emergency has timed out

create_message

From message_server.dm: Console.create_message(data)

send_message

Sends the message from the request console

\ No newline at end of file diff --git a/obj/machinery/research/anomaly_refinery.html b/obj/machinery/research/anomaly_refinery.html new file mode 100644 index 0000000000000..45f6705cb4448 --- /dev/null +++ b/obj/machinery/research/anomaly_refinery.html @@ -0,0 +1,8 @@ +/obj/machinery/research/anomaly_refinery - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Explosive compressor machines

The explosive compressor machine used in anomaly core production.

+

Uses the standard ordnance/tank explosion scaling to compress raw anomaly cores into completed ones. The required explosion radius increases as more cores of that type are created.

Vars

activeWhether we are currently active a bomb and core.
combined_gasmixCombined result of the first two tanks. Exists only in our machine.
inserted_bombThe TTV inserted in the machine.
inserted_coreThe raw core inserted in the machine.
reaction_incrementHere for the UI, tracks the amounts of reaction that has occured. 1 means valve opened but not reacted.
tank_to_targetDetermines which tank will be the merge_gases target (destroyed upon testing).
test_statusThe message produced by the explosive compressor at the end of the compression test.
timeout_timerThe timer that lets us timeout the test.

Procs

ExitedWe rely on exited to clear references.
eject_bombWe dont allow incomplete valves to go in but do code in checks for incomplete valves. Just in case.
end_testEnds a compression test.
error_testEjects a live TTV. +Triggered by attempting to operate an emagged anomaly refinery.
simulate_valveThis is not the real valve opening process. This is the simulated one used for displaying reactions.
timeout_testHandles timing out the test after a while.

Var Details

active

Whether we are currently active a bomb and core.

combined_gasmix

Combined result of the first two tanks. Exists only in our machine.

inserted_bomb

The TTV inserted in the machine.

inserted_core

The raw core inserted in the machine.

reaction_increment

Here for the UI, tracks the amounts of reaction that has occured. 1 means valve opened but not reacted.

tank_to_target

Determines which tank will be the merge_gases target (destroyed upon testing).

test_status

The message produced by the explosive compressor at the end of the compression test.

timeout_timer

The timer that lets us timeout the test.

Proc Details

Exited

We rely on exited to clear references.

eject_bomb

We dont allow incomplete valves to go in but do code in checks for incomplete valves. Just in case.

end_test

Ends a compression test.

+

Arguments:

+
    +
  • message: A message for the compressor to say when the test ends.
  • +

error_test

Ejects a live TTV. +Triggered by attempting to operate an emagged anomaly refinery.

simulate_valve

This is not the real valve opening process. This is the simulated one used for displaying reactions.

timeout_test

Handles timing out the test after a while.

\ No newline at end of file diff --git a/obj/machinery/restaurant_portal.html b/obj/machinery/restaurant_portal.html new file mode 100644 index 0000000000000..1f2a0b6899c9b --- /dev/null +++ b/obj/machinery/restaurant_portal.html @@ -0,0 +1 @@ +/obj/machinery/restaurant_portal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

restaurant_portal

Vars

linked_venueWhat venue is this portal for? Uses a typepath which is turned into an instance on Initialize
turned_on_portalA weak reference to the mob who turned on the portal

Var Details

linked_venue

What venue is this portal for? Uses a typepath which is turned into an instance on Initialize

turned_on_portal

A weak reference to the mob who turned on the portal

\ No newline at end of file diff --git a/obj/machinery/rnd.html b/obj/machinery/rnd.html new file mode 100644 index 0000000000000..a50d16c8ee0dd --- /dev/null +++ b/obj/machinery/rnd.html @@ -0,0 +1 @@ +/obj/machinery/rnd - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

rnd

Vars

busyAre we currently printing a machine
disabledIs this machine disabled via wires
hackedIs this machne hacked via wires
loaded_itemThe item loaded inside the machine, used by experimentors and destructive analyzers only.
stored_researchRef to global science techweb.

Procs

connect_techwebCalled when attempting to connect the machine to a techweb, forgetting the old.
on_connected_techwebCalled post-connection to a new techweb.
reset_busyReset the state of this machine

Var Details

busy

Are we currently printing a machine

disabled

Is this machine disabled via wires

hacked

Is this machne hacked via wires

loaded_item

The item loaded inside the machine, used by experimentors and destructive analyzers only.

stored_research

Ref to global science techweb.

Proc Details

connect_techweb

Called when attempting to connect the machine to a techweb, forgetting the old.

on_connected_techweb

Called post-connection to a new techweb.

reset_busy

Reset the state of this machine

\ No newline at end of file diff --git a/obj/machinery/rnd/destructive_analyzer.html b/obj/machinery/rnd/destructive_analyzer.html new file mode 100644 index 0000000000000..57ebb0de26f62 --- /dev/null +++ b/obj/machinery/rnd/destructive_analyzer.html @@ -0,0 +1,18 @@ +/obj/machinery/rnd/destructive_analyzer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

destructive_analyzer

Destructive Analyzer

+

It is used to destroy hand-held objects and advance technological research.

Procs

destroy_itemDestroys an item by going through all its contents (including itself) and calling destroy_item_individual +Args: +gain_research_points - Whether deconstructing each individual item should check for research points to boost.
destroy_item_individualDestroys the individual provided item +Args: +thing - The thing being destroyed. Generally an object, but it can be a mob too, such as intellicards and pAIs. +gain_research_points - Whether deconstructing this should give research points to the stored techweb, if applicable.
finish_loadingCalled in a timer callback after loading something into it, this handles resetting the 'busy' state back to its initial state +So the machine can be used.
unload_itemDrops the loaded item where it can and nulls it.
user_try_decon_idAttempts to destroy the loaded item using a provided research id. +Args: +id - The techweb ID node that we're meant to unlock if applicable.

Proc Details

destroy_item

Destroys an item by going through all its contents (including itself) and calling destroy_item_individual +Args: +gain_research_points - Whether deconstructing each individual item should check for research points to boost.

destroy_item_individual

Destroys the individual provided item +Args: +thing - The thing being destroyed. Generally an object, but it can be a mob too, such as intellicards and pAIs. +gain_research_points - Whether deconstructing this should give research points to the stored techweb, if applicable.

finish_loading

Called in a timer callback after loading something into it, this handles resetting the 'busy' state back to its initial state +So the machine can be used.

unload_item

Drops the loaded item where it can and nulls it.

user_try_decon_id

Attempts to destroy the loaded item using a provided research id. +Args: +id - The techweb ID node that we're meant to unlock if applicable.

\ No newline at end of file diff --git a/obj/machinery/rnd/experimentor.html b/obj/machinery/rnd/experimentor.html new file mode 100644 index 0000000000000..854256643f33a --- /dev/null +++ b/obj/machinery/rnd/experimentor.html @@ -0,0 +1 @@ +/obj/machinery/rnd/experimentor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

experimentor

Vars

malfunction_probability_coeffDetermines the probability of a malfunction.
malfunction_probability_coeff_modifierKeeps track of how many times we've had a critical reaction
tracked_ian_refWeakref to the first ian we can find at init
tracked_runtime_refWeakref to the first runtime we can find at init

Var Details

malfunction_probability_coeff

Determines the probability of a malfunction.

malfunction_probability_coeff_modifier

Keeps track of how many times we've had a critical reaction

tracked_ian_ref

Weakref to the first ian we can find at init

tracked_runtime_ref

Weakref to the first runtime we can find at init

\ No newline at end of file diff --git a/obj/machinery/rnd/production.html b/obj/machinery/rnd/production.html new file mode 100644 index 0000000000000..0c235aa81d235 --- /dev/null +++ b/obj/machinery/rnd/production.html @@ -0,0 +1,30 @@ +/obj/machinery/rnd/production - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

production

Vars

active_power_usageEnergy cost per full stack of materials spent. Material insertion is 40% of this.
allowed_buildtypesThe types of designs this fabricator can print.
allowed_department_flagsWhich departments are allowed to process this design
cached_designsAll designs in the techweb that can be fabricated by this machine, since the last update.
drop_directiondirection we output onto (if 0, on top of us)
efficiency_coeffThe efficiency coefficient. Material costs and print times are multiplied by this number;
materialsThe material storage used by this fabricator.
production_animationIcon state when production has started
stripe_colorWhat color is this machine's stripe? Leave null to not have a stripe.

Procs

build_efficiencyThe cost efficiency for an particular design +Arguments
compute_efficiencyComputes this machines cost efficiency based on the available parts
do_make_itemCallback for start_making, actually makes the item +Arguments
finalize_buildResets the busy flag +Called at the end of do_make_item's timer loop
flick_animationPlays an visual animation when materials are inserted +Arguments
local_material_insertWhen materials are instered into local storage
process_itemConsumes power for the item inserted either into silo or local storage. +Arguments
silo_material_insertWhen materials are instered via silo link
update_designsUpdates the list of designs this fabricator can print.

Var Details

active_power_usage

Energy cost per full stack of materials spent. Material insertion is 40% of this.

allowed_buildtypes

The types of designs this fabricator can print.

allowed_department_flags

Which departments are allowed to process this design

cached_designs

All designs in the techweb that can be fabricated by this machine, since the last update.

drop_direction

direction we output onto (if 0, on top of us)

efficiency_coeff

The efficiency coefficient. Material costs and print times are multiplied by this number;

materials

The material storage used by this fabricator.

production_animation

Icon state when production has started

stripe_color

What color is this machine's stripe? Leave null to not have a stripe.

Proc Details

build_efficiency

The cost efficiency for an particular design +Arguments

+
    +
  • path - the design path to check for
  • +

compute_efficiency

Computes this machines cost efficiency based on the available parts

do_make_item

Callback for start_making, actually makes the item +Arguments

+
    +
  • datum/design/design - the design we are trying to print
  • +
  • items_remaining - the number of designs left out to print
  • +
  • build_time_per_item - the time taken to print 1 item
  • +
  • material_cost_coefficient - the cost efficiency to print 1 design
  • +
  • charge_per_item - the amount of power to print 1 item
  • +
  • turf/target - the location to drop the printed item on
  • +

finalize_build

Resets the busy flag +Called at the end of do_make_item's timer loop

flick_animation

Plays an visual animation when materials are inserted +Arguments

+
    +
  • mat - the material ref we are trying to animate on the machine
  • +

local_material_insert

When materials are instered into local storage

process_item

Consumes power for the item inserted either into silo or local storage. +Arguments

+
    +
  • obj/item/item_inserted - the item to process
  • +
  • list/mats_consumed - list of mats consumed
  • +
  • amount_inserted - amount of material actually processed
  • +

silo_material_insert

When materials are instered via silo link

update_designs

Updates the list of designs this fabricator can print.

\ No newline at end of file diff --git a/obj/machinery/rnd/production/colony_lathe.html b/obj/machinery/rnd/production/colony_lathe.html new file mode 100644 index 0000000000000..26785c4f1d0c4 --- /dev/null +++ b/obj/machinery/rnd/production/colony_lathe.html @@ -0,0 +1 @@ +/obj/machinery/rnd/production/colony_lathe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

colony_lathe

Vars

repacked_typeThe item we turn into when repacked
soundloopThe sound loop played while the fabricator is making something

Var Details

repacked_type

The item we turn into when repacked

soundloop

The sound loop played while the fabricator is making something

\ No newline at end of file diff --git a/obj/machinery/rnd/server.html b/obj/machinery/rnd/server.html new file mode 100644 index 0000000000000..ce8bb899e6d78 --- /dev/null +++ b/obj/machinery/rnd/server.html @@ -0,0 +1 @@ +/obj/machinery/rnd/server - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

server

Vars

research_disabledif TRUE, someone manually disabled us via console.
workingif TRUE, we are currently operational and giving out research points.

Procs

fix_empCallback to un-emp the server afetr some time.
get_status_textGets status text based on this server's status for the computer.
refresh_workingChecks if we should be working or not, and updates accordingly.
toggle_disableToggles whether or not researched_disabled is, yknow, disabled

Var Details

research_disabled

if TRUE, someone manually disabled us via console.

working

if TRUE, we are currently operational and giving out research points.

Proc Details

fix_emp

Callback to un-emp the server afetr some time.

get_status_text

Gets status text based on this server's status for the computer.

refresh_working

Checks if we should be working or not, and updates accordingly.

toggle_disable

Toggles whether or not researched_disabled is, yknow, disabled

\ No newline at end of file diff --git a/obj/machinery/rnd/server/master.html b/obj/machinery/rnd/server/master.html new file mode 100644 index 0000000000000..3c8645c09d182 --- /dev/null +++ b/obj/machinery/rnd/server/master.html @@ -0,0 +1 @@ +/obj/machinery/rnd/server/master - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

master

Master R&D server. As long as this still exists and still holds the HDD for the theft objective, research points generate at normal speed. Destroy it or an antag steals the HDD? Half research speed.

Procs

overload_source_code_hddDestroys the source_code_hdd if present and sets the machine state to overloaded, adding the panel open overlay if necessary.

Proc Details

overload_source_code_hdd

Destroys the source_code_hdd if present and sets the machine state to overloaded, adding the panel open overlay if necessary.

\ No newline at end of file diff --git a/obj/machinery/roulette.html b/obj/machinery/roulette.html new file mode 100644 index 0000000000000..72c4c55dce1b8 --- /dev/null +++ b/obj/machinery/roulette.html @@ -0,0 +1 @@ +/obj/machinery/roulette - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

roulette

Machine that lets you play roulette. Odds are pre-defined to be the same as European Roulette without the "En Prison" rule

Procs

attackbyHandles setting ownership and the betting itself.
check_owner_fundsReturns TRUE if the owner has enough funds to payout
check_winReturns TRUE if the player bet correctly.
dispense_prizeFills a list of coins that should be dropped.
drop_coinRecursive function that runs until it runs out of coins to drop.
finish_playRan after a while to check if the player won or not.
on_my_card_deleteddeletes the my_card ref to prevent harddels
playProc called when player is going to try and play
prize_theftFills a list of coins that should be dropped.

Proc Details

attackby

Handles setting ownership and the betting itself.

check_owner_funds

Returns TRUE if the owner has enough funds to payout

check_win

Returns TRUE if the player bet correctly.

dispense_prize

Fills a list of coins that should be dropped.

drop_coin

Recursive function that runs until it runs out of coins to drop.

finish_play

Ran after a while to check if the player won or not.

on_my_card_deleted

deletes the my_card ref to prevent harddels

play

Proc called when player is going to try and play

prize_theft

Fills a list of coins that should be dropped.

\ No newline at end of file diff --git a/obj/machinery/satellite.html b/obj/machinery/satellite.html new file mode 100644 index 0000000000000..aff549790cc51 --- /dev/null +++ b/obj/machinery/satellite.html @@ -0,0 +1 @@ +/obj/machinery/satellite - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

satellite

Vars

global_idglobal counter of IDs
idid number for this satellite

Var Details

global_id

global counter of IDs

id

id number for this satellite

\ No newline at end of file diff --git a/obj/machinery/satellite/meteor_shield.html b/obj/machinery/satellite/meteor_shield.html new file mode 100644 index 0000000000000..4c1d62b811ab8 --- /dev/null +++ b/obj/machinery/satellite/meteor_shield.html @@ -0,0 +1 @@ +/obj/machinery/satellite/meteor_shield - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

meteor_shield

Vars

emagged_active_meteor_shieldsamount of emagged active meteor shields
highest_emagged_threshold_reachedthe highest amount of shields you've ever emagged
kill_rangethe range a meteor shield sat can destroy meteors
shared_emag_cooldowncooldown on emagging meteor shields because instantly summoning a dark matt-eor is very unfun

Var Details

emagged_active_meteor_shields

amount of emagged active meteor shields

highest_emagged_threshold_reached

the highest amount of shields you've ever emagged

kill_range

the range a meteor shield sat can destroy meteors

shared_emag_cooldown

cooldown on emagging meteor shields because instantly summoning a dark matt-eor is very unfun

\ No newline at end of file diff --git a/obj/machinery/scanner_gate.html b/obj/machinery/scanner_gate.html new file mode 100644 index 0000000000000..76280ca255595 --- /dev/null +++ b/obj/machinery/scanner_gate.html @@ -0,0 +1 @@ +/obj/machinery/scanner_gate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

scanner_gate

Vars

base_false_beepBase false positive/negative chance
detect_nutritionIf scanning for nutrition, what level of nutrition will trigger the scanner?
detect_speciesIf scanning for a specific species, what species is it looking for?
disease_thresholdIs searching for a disease, what severity is enough to trigger the gate?
ignore_signalsDoes the scanner ignore light_pass and light_fail for sending signals?
light_failWill the assembly on the pass wire activate if the scanner resolves red (fail) on crossing?
light_passWill the assembly on the pass wire activate if the scanner resolves green (Pass) on crossing?
lockedBool to check if the scanner's controls are locked by an ID.
minus_false_beepModifier to the chance of scanner being false positive/negative
n_spectIs an n-spect scanner attached to the gate? Enables contraband scanning.
reverseFlips all scan results for inverse scanning. Signals if scan returns false.
scangate_modeWhich setting is the scanner checking for? See defines in scanner_gate.dm for the list.

Var Details

base_false_beep

Base false positive/negative chance

detect_nutrition

If scanning for nutrition, what level of nutrition will trigger the scanner?

detect_species

If scanning for a specific species, what species is it looking for?

disease_threshold

Is searching for a disease, what severity is enough to trigger the gate?

ignore_signals

Does the scanner ignore light_pass and light_fail for sending signals?

light_fail

Will the assembly on the pass wire activate if the scanner resolves red (fail) on crossing?

light_pass

Will the assembly on the pass wire activate if the scanner resolves green (Pass) on crossing?

locked

Bool to check if the scanner's controls are locked by an ID.

minus_false_beep

Modifier to the chance of scanner being false positive/negative

n_spect

Is an n-spect scanner attached to the gate? Enables contraband scanning.

reverse

Flips all scan results for inverse scanning. Signals if scan returns false.

scangate_mode

Which setting is the scanner checking for? See defines in scanner_gate.dm for the list.

\ No newline at end of file diff --git a/obj/machinery/seed_extractor.html b/obj/machinery/seed_extractor.html new file mode 100644 index 0000000000000..07bf8a62292a5 --- /dev/null +++ b/obj/machinery/seed_extractor.html @@ -0,0 +1,24 @@ +/obj/machinery/seed_extractor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

seed_extractor

Vars

pilesAssociated list of seeds, they are all weak refs. We check the len to see how many refs we have for each

Procs

add_seed
generate_seed_hashGenerate seed string

Var Details

piles

Associated list of seeds, they are all weak refs. We check the len to see how many refs we have for each

Proc Details

add_seed

    +
  • +

    Add Seeds Proc.

    +
  • +
  • +

    Adds the seeds to the contents and to an associated list that pregenerates the data

    +
  • +
  • +

    needed to go to the ui handler

    +
  • +
  • +

    to_add - what seed are we adding?

    +
  • +
  • +

    taking_from - where are we taking the seed from? A mob, a bag, etc? If null its means its just laying on the turf so force move it in

    +
  • +

generate_seed_hash

Generate seed string

+

Creates a string based of the traits of a seed. We use this string as a bucket for all +seeds that match as well as the key the ui uses to get the seed. We also use the key +for the data shown in the ui. Javascript parses this string to display

+

Arguments:

+
    +
  • O - seed to generate the string from
  • +
\ No newline at end of file diff --git a/obj/machinery/self_actualization_device.html b/obj/machinery/self_actualization_device.html new file mode 100644 index 0000000000000..82f2df410cec0 --- /dev/null +++ b/obj/machinery/self_actualization_device.html @@ -0,0 +1 @@ +/obj/machinery/self_actualization_device - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

self_actualization_device

Vars

advertisementsA list containing advertisements that the machine says while working.
player_consentHas the player consented to the DNA change
processingIs someone being processed inside of the machine?
processing_timeHow long does the machine take to work?
sound_loopwzhzhzh

Procs

container_resist_actThe player can break out of the SAD if they've changed their mind about using it.
eject_new_youEjects the occupant after asking them if they want to accept the rejuvenation. If yes, they exit as their preferences character.
eject_old_youEjection and shut down of the machine, used before the preferences have been applied to the player. Damage optional.
get_consentAsks the player if they want to consent to the rejuvenation procedure (replacing their DNA with what they currently have selected in character preferences.)

Var Details

advertisements

A list containing advertisements that the machine says while working.

Has the player consented to the DNA change

processing

Is someone being processed inside of the machine?

processing_time

How long does the machine take to work?

sound_loop

wzhzhzh

Proc Details

container_resist_act

The player can break out of the SAD if they've changed their mind about using it.

eject_new_you

Ejects the occupant after asking them if they want to accept the rejuvenation. If yes, they exit as their preferences character.

eject_old_you

Ejection and shut down of the machine, used before the preferences have been applied to the player. Damage optional.

Asks the player if they want to consent to the rejuvenation procedure (replacing their DNA with what they currently have selected in character preferences.)

\ No newline at end of file diff --git a/obj/machinery/shieldwall.html b/obj/machinery/shieldwall.html new file mode 100644 index 0000000000000..38d31a2932ed7 --- /dev/null +++ b/obj/machinery/shieldwall.html @@ -0,0 +1 @@ +/obj/machinery/shieldwall - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

shieldwall

Containment Field START

Procs

drain_powersuccs power from the connected shield wall generator

Proc Details

drain_power

succs power from the connected shield wall generator

\ No newline at end of file diff --git a/obj/machinery/shower.html b/obj/machinery/shower.html new file mode 100644 index 0000000000000..090d97a46d62f --- /dev/null +++ b/obj/machinery/shower.html @@ -0,0 +1,9 @@ +/obj/machinery/shower - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shower

Vars

actually_onIs the shower actually spitting out water currently
current_temperatureWhat temperature the shower reagents are set to.
has_water_reclaimerDoes the shower have a water recycler to recollect its water supply?
intended_onDoes the user want the shower on or off?
modeWhich mode the shower is operating in.
pixel_shiftHow far to shift the sprite when placing.
reagent_capacityHow much reagent capacity should the shower begin with when built.
reagent_idWhat reagent should the shower be filled with when initially built.
refill_rateHow many units the shower refills every second.
soundloopWhat sound will be played on loop when the shower is on and pouring water.
timed_cooldownThe cooldown for SHOWER_MODE_TIMED mode.

Procs

update_actually_onToggle whether shower is actually on and outputting water. +May not match what user asked to happen by clicking. +Returns TRUE if the state was changed.

Var Details

actually_on

Is the shower actually spitting out water currently

current_temperature

What temperature the shower reagents are set to.

has_water_reclaimer

Does the shower have a water recycler to recollect its water supply?

intended_on

Does the user want the shower on or off?

mode

Which mode the shower is operating in.

pixel_shift

How far to shift the sprite when placing.

reagent_capacity

How much reagent capacity should the shower begin with when built.

reagent_id

What reagent should the shower be filled with when initially built.

refill_rate

How many units the shower refills every second.

soundloop

What sound will be played on loop when the shower is on and pouring water.

timed_cooldown

The cooldown for SHOWER_MODE_TIMED mode.

Proc Details

update_actually_on

Toggle whether shower is actually on and outputting water. +May not match what user asked to happen by clicking. +Returns TRUE if the state was changed.

+

Arguments:

+
    +
  • new_on_state - new state
  • +
\ No newline at end of file diff --git a/obj/machinery/shuttle_scrambler.html b/obj/machinery/shuttle_scrambler.html new file mode 100644 index 0000000000000..d097f50218fca --- /dev/null +++ b/obj/machinery/shuttle_scrambler.html @@ -0,0 +1 @@ +/obj/machinery/shuttle_scrambler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

shuttle_scrambler

Vars

activeIs the machine siphoning right now
credits_storedThe amount of money stored in the machine
siphon_per_tickThe amount of money removed per tick

Procs

dump_lootHandles expelling all the siphoned credits as holochips
interrupt_researchHandles interrupting research
send_notificationAlerts the crew about the siphon
toggle_offSwitches off the siphon
toggle_onTurns on the siphoning, and its various side effects

Var Details

active

Is the machine siphoning right now

credits_stored

The amount of money stored in the machine

siphon_per_tick

The amount of money removed per tick

Proc Details

dump_loot

Handles expelling all the siphoned credits as holochips

interrupt_research

Handles interrupting research

send_notification

Alerts the crew about the siphon

toggle_off

Switches off the siphon

toggle_on

Turns on the siphoning, and its various side effects

\ No newline at end of file diff --git a/obj/machinery/skill_station.html b/obj/machinery/skill_station.html new file mode 100644 index 0000000000000..8696378de208c --- /dev/null +++ b/obj/machinery/skill_station.html @@ -0,0 +1 @@ +/obj/machinery/skill_station - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

skill_station

Vars

inserted_skillchipWhat we're implanting
work_timerTimer until implanting/removing finishes.
workingCurrently implanting/removing

Procs

implantFinish implanting.
remove_skillchipFinish removal.
start_implantingStart implanting.
start_removalStart removal.

Var Details

inserted_skillchip

What we're implanting

work_timer

Timer until implanting/removing finishes.

working

Currently implanting/removing

Proc Details

implant

Finish implanting.

remove_skillchip

Finish removal.

start_implanting

Start implanting.

start_removal

Start removal.

\ No newline at end of file diff --git a/obj/machinery/sleeper.html b/obj/machinery/sleeper.html new file mode 100644 index 0000000000000..f04929e686d63 --- /dev/null +++ b/obj/machinery/sleeper.html @@ -0,0 +1 @@ +/obj/machinery/sleeper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sleeper

Vars

available_chemsList of currently available chems.
chem_buttonsUsed when emagged to scramble which chem is used, eg: mutadone -> morphine
controls_insideWhether the machine can be operated by the person inside of it.
deconstructableWhether this sleeper can be deconstructed and drop the board, if its on mapload.
efficiencyHow much chems is allowed to be in a patient at once, before we force them to wait for the reagent to process.
enter_messageMessage sent when a user enters the machine.
min_healthThe minimum damage required to use any chem other than Epinephrine.
possible_chemsAll chems this sleeper will get, depending on the parts inside.

Var Details

available_chems

List of currently available chems.

chem_buttons

Used when emagged to scramble which chem is used, eg: mutadone -> morphine

controls_inside

Whether the machine can be operated by the person inside of it.

deconstructable

Whether this sleeper can be deconstructed and drop the board, if its on mapload.

efficiency

How much chems is allowed to be in a patient at once, before we force them to wait for the reagent to process.

enter_message

Message sent when a user enters the machine.

min_health

The minimum damage required to use any chem other than Epinephrine.

possible_chems

All chems this sleeper will get, depending on the parts inside.

\ No newline at end of file diff --git a/obj/machinery/sleeper/party.html b/obj/machinery/sleeper/party.html new file mode 100644 index 0000000000000..6b62ad0ac745e --- /dev/null +++ b/obj/machinery/sleeper/party.html @@ -0,0 +1 @@ +/obj/machinery/sleeper/party - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

party

Vars

spray_chemsChemicals that need to have a touch or vapor reaction to be applied, not the standard chamber reaction.

Var Details

spray_chems

Chemicals that need to have a touch or vapor reaction to be applied, not the standard chamber reaction.

\ No newline at end of file diff --git a/obj/machinery/smartfridge.html b/obj/machinery/smartfridge.html new file mode 100644 index 0000000000000..5f92a19187325 --- /dev/null +++ b/obj/machinery/smartfridge.html @@ -0,0 +1,11 @@ +/obj/machinery/smartfridge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

smartfridge

Vars

base_build_pathWhat path boards used to construct it should build into when dropped. Needed so we don't accidentally have them build variants with items preloaded in them.
can_be_welded_downWhether the smartfridge is welded down to the floor disabling unwrenching
contents_overlay_iconIcon state part for contents display
default_list_viewWhether the UI should be set to list view by default
has_emissiveIs this smartfridge going to have a glowing screen? (Drying Racks are not)
initial_contentsList of items that the machine starts with upon spawn
max_n_of_itemsMaximum number of items that can be loaded into the machine per matter bin tier
vend_soundThe sound of item retrieval
visible_contentsIf the machine shows an approximate number of its contents on its sprite
welded_downWhether the smartfridge is welded down to the floor disabling unwrenching

Procs

accept_checkCan this item be accepted by the smart fridge +Arguments
loadLoads the item into the smart fridge +Arguments
structure_examineReturns details related to the fridge structure
visible_itemsReturns the number of items visible in the fridge. Faster than subtracting 2 lists

Var Details

base_build_path

What path boards used to construct it should build into when dropped. Needed so we don't accidentally have them build variants with items preloaded in them.

can_be_welded_down

Whether the smartfridge is welded down to the floor disabling unwrenching

contents_overlay_icon

Icon state part for contents display

default_list_view

Whether the UI should be set to list view by default

has_emissive

Is this smartfridge going to have a glowing screen? (Drying Racks are not)

initial_contents

List of items that the machine starts with upon spawn

max_n_of_items

Maximum number of items that can be loaded into the machine per matter bin tier

vend_sound

The sound of item retrieval

visible_contents

If the machine shows an approximate number of its contents on its sprite

welded_down

Whether the smartfridge is welded down to the floor disabling unwrenching

Proc Details

accept_check

Can this item be accepted by the smart fridge +Arguments

+
    +
  • weapon - the item to accept
  • +

load

Loads the item into the smart fridge +Arguments

+
    +
  • weapon - the item to load. If the item is being held by a mo it will transfer it from hand else directly force move
  • +

structure_examine

Returns details related to the fridge structure

visible_items

Returns the number of items visible in the fridge. Faster than subtracting 2 lists

\ No newline at end of file diff --git a/obj/machinery/smartfridge/drying.html b/obj/machinery/smartfridge/drying.html new file mode 100644 index 0000000000000..974d2da9b8860 --- /dev/null +++ b/obj/machinery/smartfridge/drying.html @@ -0,0 +1,6 @@ +/obj/machinery/smartfridge/drying - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

drying

Vars

current_userThe reference to the last user's mind. Needed for the chef made trait to be properly applied correctly to dried food.
dryingIs the rack currently drying stuff

Procs

toggle_dryingToggles drying on or off +Arguments

Var Details

current_user

The reference to the last user's mind. Needed for the chef made trait to be properly applied correctly to dried food.

drying

Is the rack currently drying stuff

Proc Details

toggle_drying

Toggles drying on or off +Arguments

+
    +
  • forceoff - if TRUE will force the dryer off always
  • +
\ No newline at end of file diff --git a/obj/machinery/smartfridge/organ.html b/obj/machinery/smartfridge/organ.html new file mode 100644 index 0000000000000..62774f75b3242 --- /dev/null +++ b/obj/machinery/smartfridge/organ.html @@ -0,0 +1 @@ +/obj/machinery/smartfridge/organ - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

organ

Vars

repair_rateThe rate at which this fridge will repair damaged organs

Var Details

repair_rate

The rate at which this fridge will repair damaged organs

\ No newline at end of file diff --git a/obj/machinery/smoke_machine.html b/obj/machinery/smoke_machine.html new file mode 100644 index 0000000000000..e5d373d390864 --- /dev/null +++ b/obj/machinery/smoke_machine.html @@ -0,0 +1 @@ +/obj/machinery/smoke_machine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

smoke_machine

Vars

efficiencyDivided against the amount of smoke to produce. Higher values equals lesser amount of reagents consumed to create smoke
max_rangeMax setting acheived from upgraded capacitors
onIs this machine on or off
settingHigher values mean larger smoke pufs but also more power & reagents consumed

Var Details

efficiency

Divided against the amount of smoke to produce. Higher values equals lesser amount of reagents consumed to create smoke

max_range

Max setting acheived from upgraded capacitors

on

Is this machine on or off

setting

Higher values mean larger smoke pufs but also more power & reagents consumed

\ No newline at end of file diff --git a/obj/machinery/space_heater.html b/obj/machinery/space_heater.html new file mode 100644 index 0000000000000..2f4e26bc0ed9e --- /dev/null +++ b/obj/machinery/space_heater.html @@ -0,0 +1 @@ +/obj/machinery/space_heater - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

space_heater

Vars

cellThe cell we spawn with
display_panelShould we add an overlay for open spaceheaters
efficiencyHow efficiently we can deliver that heat/cold (higher indicates less cell consumption)
heating_energyHow much heat/cold we can deliver
modeWhat is the mode we are in now?
onIs the machine on?
set_modeAnything other than "heat" or "cool" is considered auto.
settable_temperature_medianWhat's the middle point of our settable temperature (30 °C)
settable_temperature_rangeRange of temperatures above and below the median that we can set our target temperature (increase by upgrading the capacitors)
target_temperatureThe temperature we trying to get to
temperature_toleranceThe amount of degrees above and below the target temperature for us to change mode to heater or cooler

Procs

heating_examineReturns the heating power of this machine as an examine

Var Details

cell

The cell we spawn with

display_panel

Should we add an overlay for open spaceheaters

efficiency

How efficiently we can deliver that heat/cold (higher indicates less cell consumption)

heating_energy

How much heat/cold we can deliver

mode

What is the mode we are in now?

on

Is the machine on?

set_mode

Anything other than "heat" or "cool" is considered auto.

settable_temperature_median

What's the middle point of our settable temperature (30 °C)

settable_temperature_range

Range of temperatures above and below the median that we can set our target temperature (increase by upgrading the capacitors)

target_temperature

The temperature we trying to get to

temperature_tolerance

The amount of degrees above and below the target temperature for us to change mode to heater or cooler

Proc Details

heating_examine

Returns the heating power of this machine as an examine

\ No newline at end of file diff --git a/obj/machinery/space_heater/improvised_chem_heater.html b/obj/machinery/space_heater/improvised_chem_heater.html new file mode 100644 index 0000000000000..1a74497fc558e --- /dev/null +++ b/obj/machinery/space_heater/improvised_chem_heater.html @@ -0,0 +1 @@ +/obj/machinery/space_heater/improvised_chem_heater - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

improvised_chem_heater

For use with heating reagents in a ghetto way

Vars

beakerThe beaker within the heater
beaker_conduction_powerHow quickly it delivers heat to the reagents. In watts per joule of the thermal energy difference of the reagent from the temperature difference of the current and target temperatures.
our_subsystemThe subsystem we're being processed by.

Procs

attackbySlightly modified to ignore the open_hatch - it's always open, we hacked it.

Var Details

beaker

The beaker within the heater

beaker_conduction_power

How quickly it delivers heat to the reagents. In watts per joule of the thermal energy difference of the reagent from the temperature difference of the current and target temperatures.

our_subsystem

The subsystem we're being processed by.

Proc Details

attackby

Slightly modified to ignore the open_hatch - it's always open, we hacked it.

\ No newline at end of file diff --git a/obj/machinery/space_heater/wall_mounted.html b/obj/machinery/space_heater/wall_mounted.html new file mode 100644 index 0000000000000..d51af41a8983b --- /dev/null +++ b/obj/machinery/space_heater/wall_mounted.html @@ -0,0 +1 @@ +/obj/machinery/space_heater/wall_mounted - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wall_mounted

Vars

repacked_typeWhat this repacks into when its wrenched off a wall

Var Details

repacked_type

What this repacks into when its wrenched off a wall

\ No newline at end of file diff --git a/obj/machinery/spaceship_navigation_beacon.html b/obj/machinery/spaceship_navigation_beacon.html new file mode 100644 index 0000000000000..8e72ac62fbb4c --- /dev/null +++ b/obj/machinery/spaceship_navigation_beacon.html @@ -0,0 +1 @@ +/obj/machinery/spaceship_navigation_beacon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spaceship_navigation_beacon

Vars

automatic_message_cooldownTime between automated messages.
lockedLocked beacons cannot be jumped to by ships.
next_automatic_message_timeNext world tick to send an automatic message.
radioOur internal radio.

Var Details

automatic_message_cooldown

Time between automated messages.

locked

Locked beacons cannot be jumped to by ships.

next_automatic_message_time

Next world tick to send an automatic message.

radio

Our internal radio.

\ No newline at end of file diff --git a/obj/machinery/status_display.html b/obj/machinery/status_display.html new file mode 100644 index 0000000000000..e002b10232b9b --- /dev/null +++ b/obj/machinery/status_display.html @@ -0,0 +1,16 @@ +/obj/machinery/status_display - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

status_display

Status display which can show images and scrolling text.

Vars

header_text_colorColor for headers, eg. "- ETA -"
icon_stateSKYRAT EDIT CHANGE - ICON OVERRIDDEN IN SKYRAT AESTHETICS - SEE MODULE
message_key_1String key we use to index the first effect overlay displayed on us
message_key_2String key we use to index the second effect overlay displayed on us
text_colorNormal text color

Procs

remove_messagesRemove both message objs and null the fields. +Don't call this in subclasses.
set_messagesImmediately change the display to the given two lines.
set_pictureImmediately change the display to the given picture.
updateUpdate the display and, if necessary, re-enable processing.
update_messageCreate/update message overlay. +They must be handled as real objects for the animation to run. +Don't call this in subclasses. +Arguments:

Var Details

header_text_color

Color for headers, eg. "- ETA -"

icon_state

SKYRAT EDIT CHANGE - ICON OVERRIDDEN IN SKYRAT AESTHETICS - SEE MODULE

message_key_1

String key we use to index the first effect overlay displayed on us

message_key_2

String key we use to index the second effect overlay displayed on us

text_color

Normal text color

Proc Details

remove_messages

Remove both message objs and null the fields. +Don't call this in subclasses.

set_messages

Immediately change the display to the given two lines.

set_picture

Immediately change the display to the given picture.

update

Update the display and, if necessary, re-enable processing.

update_message

Create/update message overlay. +They must be handled as real objects for the animation to run. +Don't call this in subclasses. +Arguments:

+
    +
  • overlay - the current /obj/effect/overlay/status_display_text instance
  • +
  • line_y - The Y offset to render the text.
  • +
  • x_offset - Used to offset the text on the X coordinates, not usually needed.
  • +
  • message - the new message text. +Returns new /obj/effect/overlay/status_display_text or null if unchanged.
  • +
\ No newline at end of file diff --git a/obj/machinery/status_display/department_balance.html b/obj/machinery/status_display/department_balance.html new file mode 100644 index 0000000000000..3a80390087463 --- /dev/null +++ b/obj/machinery/status_display/department_balance.html @@ -0,0 +1 @@ +/obj/machinery/status_display/department_balance - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

department_balance

Vars

credits_accountThe account to display balance
default_logoThe account to display balance
display_reset_stateIf the screen is actively resetting or not
synced_bank_accountThe resolved bank account

Procs

start_processAdds the display to the SSdigital_clock process list
stop_processRemoves the display to the SSdigital_clock process list

Var Details

credits_account

The account to display balance

The account to display balance

display_reset_state

If the screen is actively resetting or not

synced_bank_account

The resolved bank account

Proc Details

start_process

Adds the display to the SSdigital_clock process list

stop_process

Removes the display to the SSdigital_clock process list

\ No newline at end of file diff --git a/obj/machinery/status_display/door_timer.html b/obj/machinery/status_display/door_timer.html new file mode 100644 index 0000000000000..5c97b5bf642c6 --- /dev/null +++ b/obj/machinery/status_display/door_timer.html @@ -0,0 +1,18 @@ +/obj/machinery/status_display/door_timer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

door_timer

Brig Door control displays.

+

This is a controls the timer for the brig doors, displays the timer on itself and +has a popup window when used, allowing to set the timer.

Vars

activation_timeThe time at which the timer started.
closetsList of weakrefs to nearby closets
doorsList of weakrefs to nearby doors
flashersList of weakrefs to nearby flashers
idID of linked machinery/lockers.
sec_radioneeded to send messages to sec radio
timer_durationThe time offset from the activation time before releasing.
timingIs the timer on?

Procs

set_timerSet the timer. Does NOT automatically start counting down, but does update the display.
time_leftReturn time left. +Arguments:
timer_endStops the timer and resets the timer to 0, and opens the linked door. +Arguments:
timer_startStarts counting down the timer and closes linked the door. +The timer is expected to have already been set by set_timer()
update_contentUpdate the display content.

Var Details

activation_time

The time at which the timer started.

closets

List of weakrefs to nearby closets

doors

List of weakrefs to nearby doors

flashers

List of weakrefs to nearby flashers

id

ID of linked machinery/lockers.

sec_radio

needed to send messages to sec radio

timer_duration

The time offset from the activation time before releasing.

timing

Is the timer on?

Proc Details

set_timer

Set the timer. Does NOT automatically start counting down, but does update the display.

+

returns FALSE if no change occurred

+

Arguments: +value - time in deciseconds to set the timer for.

time_left

Return time left. +Arguments:

+
    +
  • seconds - Return the time in seconds if TRUE, else deciseconds.
  • +

timer_end

Stops the timer and resets the timer to 0, and opens the linked door. +Arguments:

+
    +
  • forced - TRUE if it was forced to stop rather than timing out. Will skip radioing, etc.
  • +

timer_start

Starts counting down the timer and closes linked the door. +The timer is expected to have already been set by set_timer()

update_content

Update the display content.

\ No newline at end of file diff --git a/obj/machinery/status_display/random_message.html b/obj/machinery/status_display/random_message.html new file mode 100644 index 0000000000000..7581bb4fe9f91 --- /dev/null +++ b/obj/machinery/status_display/random_message.html @@ -0,0 +1 @@ +/obj/machinery/status_display/random_message - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

random_message

Vars

firstline_to_secondlinelist to pick the first line from

Var Details

firstline_to_secondline

list to pick the first line from

\ No newline at end of file diff --git a/obj/machinery/suit_storage_unit.html b/obj/machinery/suit_storage_unit.html new file mode 100644 index 0000000000000..ddaa0032b212c --- /dev/null +++ b/obj/machinery/suit_storage_unit.html @@ -0,0 +1,16 @@ +/obj/machinery/suit_storage_unit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

suit_storage_unit

Vars

access_lockedshould we prevent further access change
base_charge_ratePower contributed by this machine to charge the mod suits cell without any capacitors
breakout_timeHow long it takes to break out of the SSU.
card_reader_installedis the card reader installed in this machine
final_charge_rateFinal charge rate which is base_charge_rate + contribution by capacitors
helmet_typeWhat type of space helmet the unit starts with when spawned.
id_cardphysical reference of the players id card to check for PERSONAL access level
lockedIf the SSU's doors are locked closed. Can be toggled manually via the UI, but is also locked automatically when the UV decontamination sequence is running.
mask_typeWhat type of breathmask the unit starts with when spawned.
message_cooldownCooldown for occupant breakout messages via relaymove()
mod_typeWhat type of MOD the unit starts with when spawned.
safetiesIf the safety wire is cut/pulsed, the SSU can run the decontamination sequence while occupied by a mob. The mob will be burned during every cycle of cook().
storage_typeWhat type of additional item the unit starts with when spawned.
suit_typeWhat type of spacesuit the unit starts with when spawned.
uvIf UV decontamination sequence is running. See cook()
uv_cyclesHow many cycles remain for the decontamination sequence.
uv_superIf the hack wire is cut/pulsed. +Modifies effects of cook()

Procs

cookUV decontamination sequence. +Duration is determined by the uv_cycles var. +Effects determined by the uv_super var.
disable_modlinkIf the SSU needs to have any communications wires cut.
set_accesscopy over access of electronics

Var Details

access_locked

should we prevent further access change

base_charge_rate

Power contributed by this machine to charge the mod suits cell without any capacitors

breakout_time

How long it takes to break out of the SSU.

card_reader_installed

is the card reader installed in this machine

final_charge_rate

Final charge rate which is base_charge_rate + contribution by capacitors

helmet_type

What type of space helmet the unit starts with when spawned.

id_card

physical reference of the players id card to check for PERSONAL access level

locked

If the SSU's doors are locked closed. Can be toggled manually via the UI, but is also locked automatically when the UV decontamination sequence is running.

mask_type

What type of breathmask the unit starts with when spawned.

message_cooldown

Cooldown for occupant breakout messages via relaymove()

mod_type

What type of MOD the unit starts with when spawned.

safeties

If the safety wire is cut/pulsed, the SSU can run the decontamination sequence while occupied by a mob. The mob will be burned during every cycle of cook().

storage_type

What type of additional item the unit starts with when spawned.

suit_type

What type of spacesuit the unit starts with when spawned.

uv

If UV decontamination sequence is running. See cook()

uv_cycles

How many cycles remain for the decontamination sequence.

uv_super

If the hack wire is cut/pulsed. +Modifies effects of cook()

+
    +
  • If FALSE, decontamination sequence will clear radiation for all atoms (and their contents) contained inside the unit, and burn any mobs inside.
  • +
  • If TRUE, decontamination sequence will delete all items contained within, and if occupied by a mob, intensifies burn damage delt. All wires will be cut at the end.
  • +

Proc Details

cook

UV decontamination sequence. +Duration is determined by the uv_cycles var. +Effects determined by the uv_super var.

+
    +
  • If FALSE, all atoms (and their contents) contained are cleared of radiation. If a mob is inside, they are burned every cycle.
  • +
  • If TRUE, all items contained are destroyed, and burn damage applied to the mob is increased. All wires will be cut at the end. +All atoms still inside at the end of all cycles are ejected from the unit.
  • +

If the SSU needs to have any communications wires cut.

set_access

copy over access of electronics

\ No newline at end of file diff --git a/obj/machinery/syndicatebomb.html b/obj/machinery/syndicatebomb.html new file mode 100644 index 0000000000000..04e4d6c9dc79c --- /dev/null +++ b/obj/machinery/syndicatebomb.html @@ -0,0 +1 @@ +/obj/machinery/syndicatebomb - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

syndicatebomb

Vars

activeIs the bomb counting down?
beepsoundWhat sound do we make as we beep down the timer?
can_unanchorCan we be unanchored?
countdownThe countdown that'll show up to ghosts regarding the bomb's timer.
delayedbigIs the delay wire pulsed?
delayedlittleIs the activation wire pulsed?
detonation_timerThe timer for the bomb.
examinable_countdownWhether the countdown is visible on examine
explode_nowShould we just tell the payload to explode now? Usually triggered by an event (like cutting the wrong wire)
maximum_timerWhat is the highest amount of time we can set the timer to?
minimum_timerWhat is the lowest amount of time we can set the timer to?
next_beepWhen do we beep next?
open_panelAre the wires exposed?
payloadReference to the bomb core inside the bomb, which is the part that actually explodes.
timer_setWhat is the default amount of time we set the timer to?

Var Details

active

Is the bomb counting down?

beepsound

What sound do we make as we beep down the timer?

can_unanchor

Can we be unanchored?

countdown

The countdown that'll show up to ghosts regarding the bomb's timer.

delayedbig

Is the delay wire pulsed?

delayedlittle

Is the activation wire pulsed?

detonation_timer

The timer for the bomb.

examinable_countdown

Whether the countdown is visible on examine

explode_now

Should we just tell the payload to explode now? Usually triggered by an event (like cutting the wrong wire)

maximum_timer

What is the highest amount of time we can set the timer to?

minimum_timer

What is the lowest amount of time we can set the timer to?

next_beep

When do we beep next?

open_panel

Are the wires exposed?

payload

Reference to the bomb core inside the bomb, which is the part that actually explodes.

timer_set

What is the default amount of time we set the timer to?

\ No newline at end of file diff --git a/obj/machinery/teambuilder.html b/obj/machinery/teambuilder.html new file mode 100644 index 0000000000000..65f69a4afc9de --- /dev/null +++ b/obj/machinery/teambuilder.html @@ -0,0 +1 @@ +/obj/machinery/teambuilder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

teambuilder

Simple admin tool that enables players to be assigned to a VERY SHITTY, very visually distinct team, quickly and affordably.

Vars

humans_onlyAre non-humans allowed to use this?
team_colorWhat color is your mob set to when crossed?
team_radioWhat radio station is your radio set to when crossed (And human)?

Var Details

humans_only

Are non-humans allowed to use this?

team_color

What color is your mob set to when crossed?

team_radio

What radio station is your radio set to when crossed (And human)?

\ No newline at end of file diff --git a/obj/machinery/telecomms.html b/obj/machinery/telecomms.html new file mode 100644 index 0000000000000..08cea9455d9b1 --- /dev/null +++ b/obj/machinery/telecomms.html @@ -0,0 +1,15 @@ +/obj/machinery/telecomms - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

telecomms

The basic telecomms machinery type, implementing all of the logic that's +shared between all of the telecomms machinery.

Vars

autolinkerslist of text/number values to link with
banned_frequenciesIllegal frequencies that can't be listened to by telecommunication servers.
hideIs it a hidden machine?
ididentification string
linkslist of machines this machine is linked to
links_by_telecomms_typeassociative lazylist list of the telecomms_type of linked telecomms machines and a list of said machines. +eg list(telecomms_type1 = list(everything linked to us with that type), telecomms_type2 = list(everything linked to us with THAT type)...)
long_range_linkCan you link it across Z levels or on the otherside of the map? (Relay & Hub)
netspeedhow much traffic to lose per second (50 gigabytes/second * netspeed)
networkthe network of the machinery
onIs it actually active or not?
soundloopLooping sounds for any servers
telecomms_typethe relevant type path of this telecomms machine eg /obj/machinery/telecomms/server but not server/preset. used for links_by_telecomms_type
tempfreqThe current temporary frequency used to add new filtered frequencies +options.
toggledIs it toggled on, so is it /meant/ to be active?
trafficvalue increases as traffic increases

Procs

add_actWrapper for adding another time of action for ui_act(), rather than +having you override ui_act yourself.
add_automatic_linkHandles the automatic linking of another machine to this one.
add_new_linkAdds new_connection to src's links list AND vice versa. Also updates links_by_telecomms_type.
add_optionWrapper for adding additional options to a machine's interface.
de_empHandles the machine stopping being affected by an EMP.
get_multitoolReturns a multitool from a user depending on their mobtype.
is_freq_listeningChecks whether the machinery is listening to that signal.
receive_informationReceive information from linked machinery
relay_direct_informationSends a signal directly to a machine.
relay_informationrelay signal to all linked machinery that are of type [filter]. If signal has been sent [amount] times, stop sending
remove_linkRemoves old_connection from src's links list AND vice versa. Also updates links_by_telecomms_type.
update_powerHandles updating the power state of the machine, modifying its on +variable based on if it's toggled and if it's either broken, has no power +or it's EMP'd. Handles updating appearance based on that power change.

Var Details

autolinkers

list of text/number values to link with

banned_frequencies

Illegal frequencies that can't be listened to by telecommunication servers.

hide

Is it a hidden machine?

id

identification string

list of machines this machine is linked to

associative lazylist list of the telecomms_type of linked telecomms machines and a list of said machines. +eg list(telecomms_type1 = list(everything linked to us with that type), telecomms_type2 = list(everything linked to us with THAT type)...)

Can you link it across Z levels or on the otherside of the map? (Relay & Hub)

netspeed

how much traffic to lose per second (50 gigabytes/second * netspeed)

network

the network of the machinery

on

Is it actually active or not?

soundloop

Looping sounds for any servers

telecomms_type

the relevant type path of this telecomms machine eg /obj/machinery/telecomms/server but not server/preset. used for links_by_telecomms_type

tempfreq

The current temporary frequency used to add new filtered frequencies +options.

toggled

Is it toggled on, so is it /meant/ to be active?

traffic

value increases as traffic increases

Proc Details

add_act

Wrapper for adding another time of action for ui_act(), rather than +having you override ui_act yourself.

+

Returns TRUE if the action was handled, nothing if not.

Handles the automatic linking of another machine to this one.

Adds new_connection to src's links list AND vice versa. Also updates links_by_telecomms_type.

add_option

Wrapper for adding additional options to a machine's interface.

+

Returns a list, or null if it wasn't implemented by the machine.

de_emp

Handles the machine stopping being affected by an EMP.

get_multitool

Returns a multitool from a user depending on their mobtype.

is_freq_listening

Checks whether the machinery is listening to that signal.

+

Returns TRUE if found, FALSE if not.

receive_information

Receive information from linked machinery

relay_direct_information

Sends a signal directly to a machine.

relay_information

relay signal to all linked machinery that are of type [filter]. If signal has been sent [amount] times, stop sending

Removes old_connection from src's links list AND vice versa. Also updates links_by_telecomms_type.

update_power

Handles updating the power state of the machine, modifying its on +variable based on if it's toggled and if it's either broken, has no power +or it's EMP'd. Handles updating appearance based on that power change.

\ No newline at end of file diff --git a/obj/machinery/telecomms/allinone.html b/obj/machinery/telecomms/allinone.html new file mode 100644 index 0000000000000..eb3041cd82c00 --- /dev/null +++ b/obj/machinery/telecomms/allinone.html @@ -0,0 +1,2 @@ +/obj/machinery/telecomms/allinone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

allinone

Basically just an empty shell for receiving and broadcasting radio messages. Not +very flexible, but it gets the job done.

Vars

syndicateIf this mainframe can process all syndicate chatter regardless of z level

Var Details

syndicate

If this mainframe can process all syndicate chatter regardless of z level

\ No newline at end of file diff --git a/obj/machinery/telecomms/broadcaster.html b/obj/machinery/telecomms/broadcaster.html new file mode 100644 index 0000000000000..2c0cd37da4118 --- /dev/null +++ b/obj/machinery/telecomms/broadcaster.html @@ -0,0 +1,3 @@ +/obj/machinery/telecomms/broadcaster - /tg/ Station 13
/tg/ Station 13 - Modules - Types

broadcaster

The broadcaster sends processed messages to all radio devices in the game. They +do not have to be headsets; intercoms and station-bounced radios suffice.

+

They receive their message from a server after the message has been logged.

\ No newline at end of file diff --git a/obj/machinery/telecomms/bus.html b/obj/machinery/telecomms/bus.html new file mode 100644 index 0000000000000..5d83c9d5cd9aa --- /dev/null +++ b/obj/machinery/telecomms/bus.html @@ -0,0 +1,8 @@ +/obj/machinery/telecomms/bus - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bus

The bus mainframe idles and waits for hubs to relay them signals. They act +as junctions for the network.

+

They transfer uncompressed subspace packets to processor units, and then take +the processed packet to a server for logging.

+

Can be linked to a telecommunications hub or a broadcaster in the absence +of a server, at the cost of some added latency.

Vars

change_frequencyThe frequency this bus will use to override the received signal's frequency, +if not NONE.

Var Details

change_frequency

The frequency this bus will use to override the received signal's frequency, +if not NONE.

\ No newline at end of file diff --git a/obj/machinery/telecomms/hub.html b/obj/machinery/telecomms/hub.html new file mode 100644 index 0000000000000..95aaee010176b --- /dev/null +++ b/obj/machinery/telecomms/hub.html @@ -0,0 +1,6 @@ +/obj/machinery/telecomms/hub - /tg/ Station 13
/tg/ Station 13 - Modules - Types

hub

The HUB idles until it receives information. It then passes on that information +depending on where it came from.

+

This is the heart of the Telecommunications Network, sending information where it +is needed. It mainly receives information from long-distance Relays and then sends +that information to be processed. Afterwards it gets the uncompressed information +from Servers/Buses and sends that back to the relay, to then be broadcasted.

\ No newline at end of file diff --git a/obj/machinery/telecomms/message_server.html b/obj/machinery/telecomms/message_server.html new file mode 100644 index 0000000000000..72887de37fe08 --- /dev/null +++ b/obj/machinery/telecomms/message_server.html @@ -0,0 +1,12 @@ +/obj/machinery/telecomms/message_server - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

message_server

The equivalent of the server, for PDA and request console messages. +Without it, PDA and request console messages cannot be transmitted. +PDAs require the rest of the telecomms setup, but request consoles only +require the message server.

Vars

calibratingInit reads this and adds world.time, then becomes 0 when that time has +passed and the machine works. +Basically, if it's not 0, it's calibrating and therefore non-functional.
decryptkeyThe password of this messaging server.
pda_msgsA list of all the PDA messages that were intercepted and processed by +this messaging server.
rc_msgsA list of all the Request Console messages that were intercepted and +processed by this messaging server.

Var Details

calibrating

Init reads this and adds world.time, then becomes 0 when that time has +passed and the machine works. +Basically, if it's not 0, it's calibrating and therefore non-functional.

decryptkey

The password of this messaging server.

pda_msgs

A list of all the PDA messages that were intercepted and processed by +this messaging server.

rc_msgs

A list of all the Request Console messages that were intercepted and +processed by this messaging server.

\ No newline at end of file diff --git a/obj/machinery/telecomms/processor.html b/obj/machinery/telecomms/processor.html new file mode 100644 index 0000000000000..ae2b041ef2a22 --- /dev/null +++ b/obj/machinery/telecomms/processor.html @@ -0,0 +1,6 @@ +/obj/machinery/telecomms/processor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

processor

The processor is a very simple machine that decompresses subspace signals and +transfers them back to the original bus. It is essential in producing audible +data.

+

They'll link to servers if bus is not present, with some delay added to it.

Vars

compressingWhether this processor is currently compressing the data, +or actually decompressing it. Defaults to FALSE.

Var Details

compressing

Whether this processor is currently compressing the data, +or actually decompressing it. Defaults to FALSE.

\ No newline at end of file diff --git a/obj/machinery/telecomms/receiver.html b/obj/machinery/telecomms/receiver.html new file mode 100644 index 0000000000000..d0b71b06107db --- /dev/null +++ b/obj/machinery/telecomms/receiver.html @@ -0,0 +1,9 @@ +/obj/machinery/telecomms/receiver - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

receiver

The receiver idles and receives messages from subspace-compatible radio equipment, +primarily headsets. Then they just relay this information to all linked devices, +which would usually be through the telecommunications hub.

+

Link to Processor Units in case receiver can't send to a telecommunication hub.

Procs

check_receive_levelChecks whether the signal can be received by this receiver or not, based on +if it's in the signal's levels, or if there's a liked hub with a linked +relay that can receive the signal for it.

Proc Details

check_receive_level

Checks whether the signal can be received by this receiver or not, based on +if it's in the signal's levels, or if there's a liked hub with a linked +relay that can receive the signal for it.

+

Returns TRUE if it can receive the signal, FALSE if not.

\ No newline at end of file diff --git a/obj/machinery/telecomms/relay.html b/obj/machinery/telecomms/relay.html new file mode 100644 index 0000000000000..f98d0143197c8 --- /dev/null +++ b/obj/machinery/telecomms/relay.html @@ -0,0 +1,14 @@ +/obj/machinery/telecomms/relay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

relay

The relay idles until it receives information. It then passes on that information +depending on where it came from.

+

The relay is needed in order to send information to different Z levels. It +must be linked with a hub, the only other machine that can send to/receive +from other Z levels.

Vars

broadcastingCan this relay broadcast signals to other Z levels?
receivingCan this relay receive signals from other Z levels?

Procs

can_listen_to_signalChecks to see if the relay can send/receive the signal, by checking if it's +on, and if it's listening to the frequency of the signal.
can_receiveChecks to see if the relay can receive this signal, which requires it to have +receiving set to TRUE.
can_sendChecks to see if the relay can send this signal, which requires it to have +broadcasting set to TRUE.

Var Details

broadcasting

Can this relay broadcast signals to other Z levels?

receiving

Can this relay receive signals from other Z levels?

Proc Details

can_listen_to_signal

Checks to see if the relay can send/receive the signal, by checking if it's +on, and if it's listening to the frequency of the signal.

+

Returns TRUE if it can listen to the signal, FALSE if not.

can_receive

Checks to see if the relay can receive this signal, which requires it to have +receiving set to TRUE.

+

Returns TRUE if it can receive the signal, FALSE if not.

can_send

Checks to see if the relay can send this signal, which requires it to have +broadcasting set to TRUE.

+

Returns TRUE if it can send the signal, FALSE if not.

\ No newline at end of file diff --git a/obj/machinery/telecomms/server.html b/obj/machinery/telecomms/server.html new file mode 100644 index 0000000000000..98c2b0fd3e834 --- /dev/null +++ b/obj/machinery/telecomms/server.html @@ -0,0 +1,9 @@ +/obj/machinery/telecomms/server - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

server

The server logs all traffic and signal data. Once it records the signal, it +sends it to the subspace broadcaster.

+

Store a maximum of MAX_LOG_ENTRIES (400) log entries and then deletes them.

Vars

log_entriesA list of previous entries on the network. It will not exceed +MAX_LOG_ENTRIES entries in length, flushing the oldest entries +automatically.
total_trafficTotal trafic, which is increased every time a signal is increased and +the current traffic is higher than 0. See traffic for more info.

Var Details

log_entries

A list of previous entries on the network. It will not exceed +MAX_LOG_ENTRIES entries in length, flushing the oldest entries +automatically.

total_traffic

Total trafic, which is increased every time a signal is increased and +the current traffic is higher than 0. See traffic for more info.

\ No newline at end of file diff --git a/obj/machinery/ticket_machine.html b/obj/machinery/ticket_machine.html new file mode 100644 index 0000000000000..bb0ec0aa5a07e --- /dev/null +++ b/obj/machinery/ticket_machine.html @@ -0,0 +1,3 @@ +/obj/machinery/ticket_machine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ticket_machine

Vars

current_numberWhat ticket number are we currently serving?
current_ticketCurrent ticket to be served, essentially the head of the tickets queue
max_numberAt this point, you need to refill it.
ticket_numberIncrement the ticket number whenever the HOP presses his button
ticketsList of tickets that exist currently

Procs

incrementIncrements the counter by one, if there is a ticket after the current one we are serving. +If we have a current ticket, remove it from the top of our tickets list and replace it with the next one if applicable

Var Details

current_number

What ticket number are we currently serving?

current_ticket

Current ticket to be served, essentially the head of the tickets queue

max_number

At this point, you need to refill it.

ticket_number

Increment the ticket number whenever the HOP presses his button

tickets

List of tickets that exist currently

Proc Details

increment

Increments the counter by one, if there is a ticket after the current one we are serving. +If we have a current ticket, remove it from the top of our tickets list and replace it with the next one if applicable

\ No newline at end of file diff --git a/obj/machinery/time_clock.html b/obj/machinery/time_clock.html new file mode 100644 index 0000000000000..969a8b0c2fef9 --- /dev/null +++ b/obj/machinery/time_clock.html @@ -0,0 +1 @@ +/obj/machinery/time_clock - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

time_clock

Vars

announcement_channelThe channel that the radio broadcasts on.
inserted_idWhat ID card is currently inside?
job_check_alert_levelWhat alert level do we need to start preforming job checks at?
radioThe radio that is used to announce when someone clocks in and clocks out.
target_trimWhat trim is applied to inserted IDs?

Procs

clock_inClocks the currently inserted ID Card back in
clock_outClocks out the currently inserted ID Card
eject_inserted_idEjects the ID stored inside of the parent machine, if there is one.
id_cooldown_checkIs the inserted ID on cooldown? returns TRUE if the ID has a cooldown
important_job_checkIs the job of the inserted ID being worked by a job that in an important department? If so, this proc will return TRUE.
off_duty_checkIs the inserted ID off-duty? Returns true if the ID is off-duty

Var Details

announcement_channel

The channel that the radio broadcasts on.

inserted_id

What ID card is currently inside?

job_check_alert_level

What alert level do we need to start preforming job checks at?

radio

The radio that is used to announce when someone clocks in and clocks out.

target_trim

What trim is applied to inserted IDs?

Proc Details

clock_in

Clocks the currently inserted ID Card back in

clock_out

Clocks out the currently inserted ID Card

eject_inserted_id

Ejects the ID stored inside of the parent machine, if there is one.

id_cooldown_check

Is the inserted ID on cooldown? returns TRUE if the ID has a cooldown

important_job_check

Is the job of the inserted ID being worked by a job that in an important department? If so, this proc will return TRUE.

off_duty_check

Is the inserted ID off-duty? Returns true if the ID is off-duty

\ No newline at end of file diff --git a/obj/machinery/trading_card_button.html b/obj/machinery/trading_card_button.html new file mode 100644 index 0000000000000..29730c784f915 --- /dev/null +++ b/obj/machinery/trading_card_button.html @@ -0,0 +1 @@ +/obj/machinery/trading_card_button - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

trading_card_button

A button that generates a player manipulable bar of icons, in this case a mana bar.

Vars

display_panel_refReference to the display panel generated by this button.
display_panel_typeTypepath of the display panel generated.
panel_offset_xWhere the panel will be spawned in relation to the button on the X axis.
panel_offset_yWhere the panel will be spawned in relation to the button on the Y axis.

Procs

setup_globalProc that determines which global list of radial choices is used.

Var Details

display_panel_ref

Reference to the display panel generated by this button.

display_panel_type

Typepath of the display panel generated.

panel_offset_x

Where the panel will be spawned in relation to the button on the X axis.

panel_offset_y

Where the panel will be spawned in relation to the button on the Y axis.

Proc Details

setup_global

Proc that determines which global list of radial choices is used.

\ No newline at end of file diff --git a/obj/machinery/trading_card_holder.html b/obj/machinery/trading_card_holder.html new file mode 100644 index 0000000000000..880d4abc33f1b --- /dev/null +++ b/obj/machinery/trading_card_holder.html @@ -0,0 +1 @@ +/obj/machinery/trading_card_holder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

trading_card_holder

Vars

card_templateHolds all the details such as stats for the card.
current_cardCard thats currently inside the holder
current_summonReference to holographic currently active holographic summon
team_colorColor of the holograms produced.

Var Details

card_template

Holds all the details such as stats for the card.

current_card

Card thats currently inside the holder

current_summon

Reference to holographic currently active holographic summon

team_color

Color of the holograms produced.

\ No newline at end of file diff --git a/obj/machinery/transformer.html b/obj/machinery/transformer.html new file mode 100644 index 0000000000000..c50064331518a --- /dev/null +++ b/obj/machinery/transformer.html @@ -0,0 +1 @@ +/obj/machinery/transformer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

transformer

Vars

cooldownWhether we're on cooldown
cooldown_durationHow long we have to wait between processing mobs
cooldown_timerHow long until the next mob can be processed
countdownThe visual countdown effect
master_aiWho the master AI is that created this factory
robot_cell_chargeThe created cyborg's cell chage
transform_deadWhether this machine transforms dead mobs into cyborgs
transform_standingWhether this machine transforms standing mobs into cyborgs

Var Details

cooldown

Whether we're on cooldown

cooldown_duration

How long we have to wait between processing mobs

cooldown_timer

How long until the next mob can be processed

countdown

The visual countdown effect

master_ai

Who the master AI is that created this factory

robot_cell_charge

The created cyborg's cell chage

transform_dead

Whether this machine transforms dead mobs into cyborgs

transform_standing

Whether this machine transforms standing mobs into cyborgs

\ No newline at end of file diff --git a/obj/machinery/transformer_rp.html b/obj/machinery/transformer_rp.html new file mode 100644 index 0000000000000..db58cfeb11035 --- /dev/null +++ b/obj/machinery/transformer_rp.html @@ -0,0 +1 @@ +/obj/machinery/transformer_rp - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

transformer_rp

Vars

cooldownWhether we're on spawn cooldown
cooldown_timerHandles the Cyborg spawner timer.
countdownThe countdown itself
master_aiThe master AI , assigned when placed down with the ability.
max_stored_cyborgsHow many cyborgs can we store?
stored_cyborgsHow many cyborgs are we storing
stored_durationHow much time between the storing of cyborgs?
stored_timerHandles the stored Cyborg timer.

Var Details

cooldown

Whether we're on spawn cooldown

cooldown_timer

Handles the Cyborg spawner timer.

countdown

The countdown itself

master_ai

The master AI , assigned when placed down with the ability.

max_stored_cyborgs

How many cyborgs can we store?

stored_cyborgs

How many cyborgs are we storing

stored_duration

How much time between the storing of cyborgs?

stored_timer

Handles the stored Cyborg timer.

\ No newline at end of file diff --git a/obj/machinery/transport.html b/obj/machinery/transport.html new file mode 100644 index 0000000000000..5f8327ec5d890 --- /dev/null +++ b/obj/machinery/transport.html @@ -0,0 +1,7 @@ +/obj/machinery/transport - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

transport

Vars

configured_transport_idID of the transport we're associated with for filtering commands
transport_refweakref of the transport we're associated with

Procs

generate_repair_signalsAll subtypes have the same method of repair for consistency and predictability +The key of this assoc list is the "method" of how they're fixing the thing (just flavor for examine), +and the value is what tool they actually need to use on the thing to fix it
link_tramFinds the tram
on_machine_tooledSignal proc for COMSIG_ATOM_TOOL_ACT, from a variety of signals, registered on the machinery.
try_fix_machineAttempts a do_after, and if successful, stops the event

Var Details

configured_transport_id

ID of the transport we're associated with for filtering commands

transport_ref

weakref of the transport we're associated with

Proc Details

generate_repair_signals

All subtypes have the same method of repair for consistency and predictability +The key of this assoc list is the "method" of how they're fixing the thing (just flavor for examine), +and the value is what tool they actually need to use on the thing to fix it

Finds the tram

+

Locates tram parts in the lift global list after everything is done.

on_machine_tooled

Signal proc for COMSIG_ATOM_TOOL_ACT, from a variety of signals, registered on the machinery.

+

We allow for someone to stop the event early by using the proper tools, hinted at in examine, on the machine

try_fix_machine

Attempts a do_after, and if successful, stops the event

\ No newline at end of file diff --git a/obj/machinery/transport/crossing_signal.html b/obj/machinery/transport/crossing_signal.html new file mode 100644 index 0000000000000..d198e74088872 --- /dev/null +++ b/obj/machinery/transport/crossing_signal.html @@ -0,0 +1,29 @@ +/obj/machinery/transport/crossing_signal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

crossing_signal

Pedestrian crossing signal for tram

Vars

amber_distance_threshold
inboundInbound station
operating_statusIf us or anything else in the operation chain is broken
outboundOutbound station
sensor_refthe sensor we use
signal_stategreen, amber, or red for tram, blue if it's emag, tram missing, etc.

Procs

set_signal_stateSet the signal state and update appearance.
update_operatingUpdate processing state.
wake_upOnly process if the tram is actually moving

Var Details

amber_distance_threshold

    +
  • +

    Proximity thresholds for crossing signal states

    +
      +
    • +

      The proc that checks the distance between the tram and crossing signal uses these vars to determine the distance between tram and signal to change

      +
    • +
    • +

      colors. The numbers are specifically set for Tramstation. If we get another map with crossing signals we'll have to probably subtype it or something.

      +
    • +
    • +

      If the value is set too high, it will cause the lights to turn red when the tram arrives at another station. You want to optimize the amount of

      +
    • +
    • +

      warning without turning it red unnessecarily.

      +
    • +
    • +

      Red: decent chance of getting hit, but if you're quick it's a decent gamble.

      +
    • +
    • +

      Amber: slow people may be in danger.

      +
    • +
    +
  • +

inbound

Inbound station

operating_status

If us or anything else in the operation chain is broken

outbound

Outbound station

sensor_ref

the sensor we use

signal_state

green, amber, or red for tram, blue if it's emag, tram missing, etc.

Proc Details

set_signal_state

Set the signal state and update appearance.

+

Arguments: +new_state - the new state (XING_STATE_RED, etc) +force_update - force appearance to update even if state didn't change.

update_operating

Update processing state.

+

Returns whether we are still processing.

wake_up

Only process if the tram is actually moving

\ No newline at end of file diff --git a/obj/machinery/transport/crossing_signal/northwest.html b/obj/machinery/transport/crossing_signal/northwest.html new file mode 100644 index 0000000000000..285c6837dc213 --- /dev/null +++ b/obj/machinery/transport/crossing_signal/northwest.html @@ -0,0 +1,14 @@ +/obj/machinery/transport/crossing_signal/northwest - /tg/ Station 13
/tg/ Station 13 - Modules - Types

northwest

    +
  • +

    Crossing signal subtypes

    +
  • +
  • +

    Each map will have a different amount of tiles between stations, so adjust the signals here based on the map.

    +
  • +
  • +

    The distance is calculated from the bottom left corner of the tram,

    +
  • +
  • +

    so signals on the east side have their distance reduced by the tram length, in this case 10 for Tramstation.

    +
  • +
\ No newline at end of file diff --git a/obj/machinery/transport/destination_sign.html b/obj/machinery/transport/destination_sign.html new file mode 100644 index 0000000000000..4d78df9ac9286 --- /dev/null +++ b/obj/machinery/transport/destination_sign.html @@ -0,0 +1 @@ +/obj/machinery/transport/destination_sign - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

destination_sign

Vars

available_facesWhat sign face prefixes we have icons for
sign_faceThe sign face we're displaying

Var Details

available_faces

What sign face prefixes we have icons for

sign_face

The sign face we're displaying

\ No newline at end of file diff --git a/obj/machinery/transport/guideway_sensor.html b/obj/machinery/transport/guideway_sensor.html new file mode 100644 index 0000000000000..0a80865c5dcac --- /dev/null +++ b/obj/machinery/transport/guideway_sensor.html @@ -0,0 +1 @@ +/obj/machinery/transport/guideway_sensor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

guideway_sensor

Vars

operating_statusIf us or anything else in the operation chain is broken
paired_sensorSensors work in a married pair

Var Details

operating_status

If us or anything else in the operation chain is broken

paired_sensor

Sensors work in a married pair

\ No newline at end of file diff --git a/obj/machinery/transport/power_rectifier.html b/obj/machinery/transport/power_rectifier.html new file mode 100644 index 0000000000000..f2f7cacb2210a --- /dev/null +++ b/obj/machinery/transport/power_rectifier.html @@ -0,0 +1,3 @@ +/obj/machinery/transport/power_rectifier - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

power_rectifier

Vars

connected_platformThe tram platform we're connected to and providing power

Procs

find_platformThe mapper should have placed the rectifier in the area containing the station, the object will search for a landmark within +its control area and set its idle position.
on_landmark_qdelClear reference to the connected landmark if it gets destroyed.
update_overlaysUpdate the lights based on the rectifier status.

Var Details

connected_platform

The tram platform we're connected to and providing power

Proc Details

find_platform

The mapper should have placed the rectifier in the area containing the station, the object will search for a landmark within +its control area and set its idle position.

on_landmark_qdel

Clear reference to the connected landmark if it gets destroyed.

update_overlays

Update the lights based on the rectifier status.

\ No newline at end of file diff --git a/obj/machinery/transport/tram_controller.html b/obj/machinery/transport/tram_controller.html new file mode 100644 index 0000000000000..fd3bcc01d93d4 --- /dev/null +++ b/obj/machinery/transport/tram_controller.html @@ -0,0 +1 @@ +/obj/machinery/transport/tram_controller - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tram_controller

The physical cabinet on the tram. Acts as the interface between players and the controller datum.

Vars

cover_lockedIf the cover is locked
cover_openIf the cover is open
has_coverIf this machine has a cover installed

Procs

find_controllerFind the controller associated with the transport module the cabinet is sitting on.
post_machine_initializeMapped or built tram cabinet isn't located on a transport module.
sync_controllerSince the machinery obj is a dumb terminal for the controller datum, sync the display with the status bitfield of the tram
update_overlaysUpdate the blinky lights based on the controller status, allowing to quickly check without opening up the cabinet.

Var Details

cover_locked

If the cover is locked

cover_open

If the cover is open

has_cover

If this machine has a cover installed

Proc Details

find_controller

Find the controller associated with the transport module the cabinet is sitting on.

post_machine_initialize

Mapped or built tram cabinet isn't located on a transport module.

sync_controller

Since the machinery obj is a dumb terminal for the controller datum, sync the display with the status bitfield of the tram

update_overlays

Update the blinky lights based on the controller status, allowing to quickly check without opening up the cabinet.

\ No newline at end of file diff --git a/obj/machinery/transport/tram_controller/tcomms.html b/obj/machinery/transport/tram_controller/tcomms.html new file mode 100644 index 0000000000000..4238d9aa5b3db --- /dev/null +++ b/obj/machinery/transport/tram_controller/tcomms.html @@ -0,0 +1 @@ +/obj/machinery/transport/tram_controller/tcomms - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

tcomms

Controller that sits in the telecoms room

Procs

de_empHandles the machine stopping being affected by an EMP.
emp_actHandles the machine being affected by an EMP, causing signal failure.

Proc Details

de_emp

Handles the machine stopping being affected by an EMP.

emp_act

Handles the machine being affected by an EMP, causing signal failure.

\ No newline at end of file diff --git a/obj/machinery/turretid.html b/obj/machinery/turretid.html new file mode 100644 index 0000000000000..0c07aacdf5f71 --- /dev/null +++ b/obj/machinery/turretid.html @@ -0,0 +1 @@ +/obj/machinery/turretid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

turretid

Vars

ailockAI is unable to use this machine if set to TRUE
control_areaAn area in which linked turrets are located, it can be an area name, path or nothing
enabledVariable dictating if linked turrets are active and will shoot targets
lethalVariable dictating if linked turrets will shoot lethal projectiles
lockedVariable dictating if the panel is locked, preventing changes to turret settings
shoot_cyborgsVariable dictating if linked turrets will shoot cyborgs
turretsList of weakrefs to all turrets

Var Details

ailock

AI is unable to use this machine if set to TRUE

control_area

An area in which linked turrets are located, it can be an area name, path or nothing

enabled

Variable dictating if linked turrets are active and will shoot targets

lethal

Variable dictating if linked turrets will shoot lethal projectiles

locked

Variable dictating if the panel is locked, preventing changes to turret settings

shoot_cyborgs

Variable dictating if linked turrets will shoot cyborgs

turrets

List of weakrefs to all turrets

\ No newline at end of file diff --git a/obj/machinery/vatgrower.html b/obj/machinery/vatgrower.html new file mode 100644 index 0000000000000..7d6f5d8c60d03 --- /dev/null +++ b/obj/machinery/vatgrower.html @@ -0,0 +1 @@ +/obj/machinery/vatgrower - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

vatgrower

Used to make mobs from microbiological samples. Grow grow grow.

Vars

biological_sampleList of all microbiological samples in this soup.
reagent_volumeSoup container reagents
resampler_activeIf the vat will restart the sample upon completion

Procs

deposit_sampleCreates a clone of the supplied sample and puts it in the vat
examineAdds text for when there is a sample in the vat
on_reagent_changeCall update icon when reagents change to update the reagent content icons. Eats signal args.
on_reagents_delHandles properly detaching signal hooks.
processWhen we process, we make use of our reagents to try and feed the samples we have.
update_overlaysAdds overlays to show the reagent contents

Var Details

biological_sample

List of all microbiological samples in this soup.

reagent_volume

Soup container reagents

resampler_active

If the vat will restart the sample upon completion

Proc Details

deposit_sample

Creates a clone of the supplied sample and puts it in the vat

examine

Adds text for when there is a sample in the vat

on_reagent_change

Call update icon when reagents change to update the reagent content icons. Eats signal args.

on_reagents_del

Handles properly detaching signal hooks.

process

When we process, we make use of our reagents to try and feed the samples we have.

update_overlays

Adds overlays to show the reagent contents

\ No newline at end of file diff --git a/obj/machinery/vending.html b/obj/machinery/vending.html new file mode 100644 index 0000000000000..4512631793a71 --- /dev/null +++ b/obj/machinery/vending.html @@ -0,0 +1,176 @@ +/obj/machinery/vending - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

vending machines

Captalism in the year 2525, everything in a vending machine, even love

Vars

activeIs the machine active (No sales pitches if off)!
age_restrictionsWhether our age check is currently functional
all_products_freeIf this is set to TRUE, all products sold by the vending machine are free (cost nothing). +If unset, this will get automatically set to TRUE during init if the machine originates from off-station during mapload. +Defaults to null, set it to TRUE or FALSE explicitly on a per-machine basis if you want to force it to be a certain value.
billBills we accept?
coinCoins that we accept?
coin_recordsList of premium product records
contrabandList of products this machine sells when you hack it
credits_containedHow many credits does this vending machine have? 20% of all sales go to this pool, and are given freely when the machine is restocked, or successfully tilted. Lost on deconstruction.
crit_chanceThe chance, in percent, of this vendor performing a critical hit on anything it crushes via [tilt].
default_priceDefault price of items if not overridden
displayed_currency_iconfontawesome icon name to use in to display the user's balance in the vendor UI
displayed_currency_nameString of the used currency to display in the vendor UI
excluded_productslist of products to exclude when building the vending machine's inventory
extended_inventorycan we access the hidden inventory?
extra_priceDefault price of premium items if not overridden
forcecritIf set to a critical define in crushing.dm, anything this vendor crushes will always be hit with that effect.
hidden_recordsList of contraband product records
icon_denyIcon to flash when user is denied a vend
icon_vendIcon when vending an item to the user
last_replyLast world tick we sent a vent reply
last_shopperThe ref of the last mob to shop with us
last_sloganLast world tick we sent a slogan message out
light_maskName of lighting mask for the vending machine
loaded_itemshow many items have been inserted in a vendor
num_shardsNumber of glass shards the vendor creates and tries to embed into an atom it tilted onto
onstationIs this item on station or not
onstation_overrideDO NOT APPLY THIS GLOBALLY. For mapping var edits only. +A variable to change on a per instance basis that allows the instance to avoid having onstation set for them during mapload. +Setting this to TRUE means that the vending machine is treated as if it were still onstation if it spawns off-station during mapload. +Useful to specify an off-station machine that will be affected by machine-brand intelligence for whatever reason.
panel_typeIcon for the maintenance panel overlay
pinned_mobsList of mobs stuck under the vendor
premiumList of premium products this machine sells
product_adsString of small ad messages in the vending screen - random chance
product_categoriesList of products this machine sells, categorized. +Can only be used as an alternative to products, not alongside it.
product_recordsList of standard product records
product_slogansString of slogans separated by semicolons, optional
productsList of products this machine sells
purchase_message_cooldownNext world time to send a purchase message
scan_idAre we checking the users ID
sec_radioused for narcing on underages
seconds_electrifiedWorld ticks the machine is electified for
shoot_inventoryWhen this is TRUE, we fire items at customers! We're broken!
shoot_inventory_chanceHow likely this is to happen (prob 100) per second
skyrat_contrabandAdditions to the contraband list of the vending machine, modularly. Will become null after Initialize, to free up memory.
skyrat_premiumAdditions to the premium list of the vending machine, modularly. Will become null after Initialize, to free up memory.
skyrat_product_categoriesAdditions to the product_categories list of the vending machine, modularly. Will become null after Initialize, to free up memory.
skyrat_productsAdditions to the products list of the vending machine, modularly. Will become null after Initialize, to free up memory.
slogan_delayHow many ticks until we can send another
slogan_listList of slogans to scream at potential customers; built upon Iniitialize() of the vendor from product_slogans
squish_damageDamage this vendor does when tilting onto an atom
tiltableWhether this vendor can be tilted over or not
tiltedWhether the vendor is tilted or not
tilted_rotationIf tilted, this variable should always be the rotation that was applied when we were tilted. Stored for the purposes of unapplying it.
vend_readyAre we ready to vend?? Is it time??
vend_replyMessage sent post vend (Thank you for shopping!)
vending_machine_inputItems that the players have loaded into the vendor
zubbers_contrabandAdditions to the contraband list of the vending machine, modularly. Will become null after Initialize, to free up memory.
zubbers_premiumAdditions to the premium list of the vending machine, modularly. Will become null after Initialize, to free up memory.
zubbers_product_categoriesAdditions to the product_categories list of the vending machine, modularly. Will become null after Initialize, to free up memory.
zubbers_productsAdditions to the products list of the vending machine, modularly. Will become null after Initialize, to free up memory.

Procs

allow_increaseThis proc checks for forbidden traits cause it'd be pretty bad to have 5 insuls available to assistants roundstart at the vendor!
atom_breakIntentionally leaving out a case for zero credits as it should be covered by the vending machine's stock being full, +or covered by first case if items were returned.
build_inventories*Builds all available inventories for the vendor - standard, contraband and premium
build_inventoryBuild the inventory of the vending machine from its product and record lists
build_products_from_categoriesPopulates list of products with categorized products
canLoadItemAre we able to load the item passed in
can_vendWhether this vendor can vend items or not. +arguments: +user - current customer
collect_records_for_static_dataReturns a list of given product records of the vendor to be used in UI. +arguments: +records - list of records available +categories - list of categories available +premium - bool of whether a record should be priced by a custom/premium price or not
compartmentLoadAccessCheckIs the passed in user allowed to load this vending machines compartments? This only is ran if we are using a /obj/item/storage/bag to load the vending machine, and not a dedicated restocker.
create_categories_fromReturns a list of data about the category +Arguments: +name - string for the name of the category +icon - string for the fontawesome icon to use in the UI for the category +products - list of products available in the category
deploy_creditsDrop credits when the vendor is attacked.
fetch_balance_to_useReturns the balance that the vendor will use for proceeding payment. Most vendors would want to use the user's +card's account credits balance. +arguments: +passed_id - the id card that will be billed for the product
freebieDispenses free items from the standard stock. +Arguments: +freebies - number of free items to vend
loadingAttemptTries to insert the item into the vendor, and depending on whether the product is a part of the vendor's +stock or not, increments an already present product entry's available amount or creates a new entry. +arguments: +inserted_item - the item we're trying to insert +user - mob who's trying to insert the item
on_dispenseA proc meant to perform custom behavior on newly dispensed items.
post_restockAfter-effects of refilling a vending machine from a refill canister
pre_throwA callback called before an item is tossed out
proceed_paymentHandles payment processing: discounts, logging, balance change etc. +arguments: +paying_id_card - the id card that will be billed for the product. +mob_paying - the mob that is trying to purchase the item. +product_to_vend - the product record of the item we're trying to vend. +price_to_use - price of the item we're trying to vend.
refill_inventoryRefill our inventory from the passed in product list into the record list
remove_productsGHOST CAFE WARDROBES +Removes given list of products. Must be called before build_inventory() to actually prevent the records from being created.
reset_pricesReassign the prices of the vending machine as a result of the inflation value, as provided by SSeconomy
restockRefill a vending machine from a refill canister
select_colorsBrings up a color config menu for the picked greyscaled item
shockShock the passed in user
speakSpeak the given message verbally
throw_impactCrush the mob that the vending machine got thrown at
throw_itemThrow an item from our internal inventory out in front of us
tiltTilts ontop of the atom supplied, if crit is true some extra shit can happen. See [fall_and_crush] for return values. +Arguments: +fatty - atom to tilt the vendor onto +local_crit_chance - percent chance of a critical hit +forced_crit - specific critical hit case to use, if any
total_loaded_stockReturns the total amount of items in the vending machine based on the product records and premium records, but not contraband
total_max_stockReturns the total amount of items in the vending machine based on the product records and premium records, but not contraband
unbuild_inventoryGiven a record list, go through and return a list of products in format of type -> amount +Arguments: +recordlist - list of records to unbuild products from
unbuild_inventory_intoUnbuild product_records into categorized product lists to the machine's refill canister. +Does not handle contraband/premium products, only standard stock and any other categories used by the vendor(see: ClothesMate). +If a product has no category, puts it into standard stock category. +Arguments: +product_records - list of products of the vendor +products - list of products of the refill canister +product_categories - list of product categories of the refill canister
untiltRights the vendor up, unpinning mobs under it, if any. +Arguments: +user - mob that has untilted the vendor
update_canisterSet up a refill canister that matches this machine's products
vendThe entire shebang of vending the picked item. Processes the vending and initiates the payment for the item. +arguments: +greyscale_colors - greyscale config for the item we're about to vend, if any
vend_greyscaleVends a greyscale modified item. +arguments: +menu - greyscale config menu that has been used to vend the item

Var Details

active

Is the machine active (No sales pitches if off)!

age_restrictions

Whether our age check is currently functional

all_products_free

If this is set to TRUE, all products sold by the vending machine are free (cost nothing). +If unset, this will get automatically set to TRUE during init if the machine originates from off-station during mapload. +Defaults to null, set it to TRUE or FALSE explicitly on a per-machine basis if you want to force it to be a certain value.

bill

Bills we accept?

coin

Coins that we accept?

coin_records

List of premium product records

contraband

List of products this machine sells when you hack it

+

form should be list(/type/path = amount, /type/path2 = amount2)

credits_contained

How many credits does this vending machine have? 20% of all sales go to this pool, and are given freely when the machine is restocked, or successfully tilted. Lost on deconstruction.

crit_chance

The chance, in percent, of this vendor performing a critical hit on anything it crushes via [tilt].

default_price

Default price of items if not overridden

displayed_currency_icon

fontawesome icon name to use in to display the user's balance in the vendor UI

displayed_currency_name

String of the used currency to display in the vendor UI

excluded_products

list of products to exclude when building the vending machine's inventory

extended_inventory

can we access the hidden inventory?

extra_price

Default price of premium items if not overridden

forcecrit

If set to a critical define in crushing.dm, anything this vendor crushes will always be hit with that effect.

hidden_records

List of contraband product records

icon_deny

Icon to flash when user is denied a vend

icon_vend

Icon when vending an item to the user

last_reply

Last world tick we sent a vent reply

last_shopper

The ref of the last mob to shop with us

last_slogan

Last world tick we sent a slogan message out

light_mask

Name of lighting mask for the vending machine

loaded_items

how many items have been inserted in a vendor

num_shards

Number of glass shards the vendor creates and tries to embed into an atom it tilted onto

onstation

Is this item on station or not

+

if it doesn't originate from off-station during mapload, all_products_free gets automatically set to TRUE if it was unset previously. +if it's off-station during mapload, it's also safe from the brand intelligence event

onstation_override

DO NOT APPLY THIS GLOBALLY. For mapping var edits only. +A variable to change on a per instance basis that allows the instance to avoid having onstation set for them during mapload. +Setting this to TRUE means that the vending machine is treated as if it were still onstation if it spawns off-station during mapload. +Useful to specify an off-station machine that will be affected by machine-brand intelligence for whatever reason.

panel_type

Icon for the maintenance panel overlay

pinned_mobs

List of mobs stuck under the vendor

premium

List of premium products this machine sells

+

form should be list(/type/path = amount, /type/path2 = amount2)

product_ads

String of small ad messages in the vending screen - random chance

product_categories

List of products this machine sells, categorized. +Can only be used as an alternative to products, not alongside it.

+

Form should be list( +"name" = "Category Name", +"icon" = "UI Icon (Font Awesome or tgfont)", +"products" = list(/type/path = amount, ...), +)

product_records

List of standard product records

product_slogans

String of slogans separated by semicolons, optional

products

List of products this machine sells

+

form should be list(/type/path = amount, /type/path2 = amount2)

purchase_message_cooldown

Next world time to send a purchase message

scan_id

Are we checking the users ID

sec_radio

used for narcing on underages

seconds_electrified

World ticks the machine is electified for

shoot_inventory

When this is TRUE, we fire items at customers! We're broken!

shoot_inventory_chance

How likely this is to happen (prob 100) per second

skyrat_contraband

Additions to the contraband list of the vending machine, modularly. Will become null after Initialize, to free up memory.

skyrat_premium

Additions to the premium list of the vending machine, modularly. Will become null after Initialize, to free up memory.

skyrat_product_categories

Additions to the product_categories list of the vending machine, modularly. Will become null after Initialize, to free up memory.

skyrat_products

Additions to the products list of the vending machine, modularly. Will become null after Initialize, to free up memory.

slogan_delay

How many ticks until we can send another

slogan_list

List of slogans to scream at potential customers; built upon Iniitialize() of the vendor from product_slogans

squish_damage

Damage this vendor does when tilting onto an atom

tiltable

Whether this vendor can be tilted over or not

tilted

Whether the vendor is tilted or not

tilted_rotation

If tilted, this variable should always be the rotation that was applied when we were tilted. Stored for the purposes of unapplying it.

vend_ready

Are we ready to vend?? Is it time??

vend_reply

Message sent post vend (Thank you for shopping!)

vending_machine_input

Items that the players have loaded into the vendor

zubbers_contraband

Additions to the contraband list of the vending machine, modularly. Will become null after Initialize, to free up memory.

zubbers_premium

Additions to the premium list of the vending machine, modularly. Will become null after Initialize, to free up memory.

zubbers_product_categories

Additions to the product_categories list of the vending machine, modularly. Will become null after Initialize, to free up memory.

zubbers_products

Additions to the products list of the vending machine, modularly. Will become null after Initialize, to free up memory.

Proc Details

allow_increase

This proc checks for forbidden traits cause it'd be pretty bad to have 5 insuls available to assistants roundstart at the vendor!

atom_break

Intentionally leaving out a case for zero credits as it should be covered by the vending machine's stock being full, +or covered by first case if items were returned.

build_inventories

*Builds all available inventories for the vendor - standard, contraband and premium

+
    +
  • Arguments:
  • +
  • start_empty - bool to pass into build_inventory that determines whether a product entry starts with available stock or not
  • +

build_inventory

Build the inventory of the vending machine from its product and record lists

+

This builds up a full set of /datum/data/vending_products from the product list of the vending machine type +Arguments:

+
    +
  • productlist - the list of products that need to be converted
  • +
  • recordlist - the list containing /datum/data/vending_product datums
  • +
  • categories - A list in the format of product_categories to source category from
  • +
  • startempty - should we set vending_product record amount from the product list (so it's prefilled at roundstart)
  • +

build_products_from_categories

Populates list of products with categorized products

canLoadItem

Are we able to load the item passed in

+

Arguments:

+
    +
  • loaded_item - the item being loaded
  • +
  • user - the user doing the loading
  • +
  • send_message - should we send a message to the user if the item can't be loaded? Either a to_chat or a speak depending on vending type.
  • +

can_vend

Whether this vendor can vend items or not. +arguments: +user - current customer

collect_records_for_static_data

Returns a list of given product records of the vendor to be used in UI. +arguments: +records - list of records available +categories - list of categories available +premium - bool of whether a record should be priced by a custom/premium price or not

compartmentLoadAccessCheck

Is the passed in user allowed to load this vending machines compartments? This only is ran if we are using a /obj/item/storage/bag to load the vending machine, and not a dedicated restocker.

+

Arguments:

+
    +
  • user - mob that is doing the loading of the vending machine
  • +

create_categories_from

Returns a list of data about the category +Arguments: +name - string for the name of the category +icon - string for the fontawesome icon to use in the UI for the category +products - list of products available in the category

deploy_credits

Drop credits when the vendor is attacked.

fetch_balance_to_use

Returns the balance that the vendor will use for proceeding payment. Most vendors would want to use the user's +card's account credits balance. +arguments: +passed_id - the id card that will be billed for the product

freebie

Dispenses free items from the standard stock. +Arguments: +freebies - number of free items to vend

loadingAttempt

Tries to insert the item into the vendor, and depending on whether the product is a part of the vendor's +stock or not, increments an already present product entry's available amount or creates a new entry. +arguments: +inserted_item - the item we're trying to insert +user - mob who's trying to insert the item

on_dispense

A proc meant to perform custom behavior on newly dispensed items.

post_restock

After-effects of refilling a vending machine from a refill canister

+

This takes the amount of products restocked and gives the user our contained credits if needed, +sending the user a fitting message.

+

Arguments:

+
    +
  • user - the user restocking us
  • +
  • restocked - the amount of items we've been refilled with
  • +

pre_throw

A callback called before an item is tossed out

+

Override this if you need to do any special case handling

+

Arguments:

+
    +
  • thrown_item - obj/item being thrown
  • +

proceed_payment

Handles payment processing: discounts, logging, balance change etc. +arguments: +paying_id_card - the id card that will be billed for the product. +mob_paying - the mob that is trying to purchase the item. +product_to_vend - the product record of the item we're trying to vend. +price_to_use - price of the item we're trying to vend.

refill_inventory

Refill our inventory from the passed in product list into the record list

+

Arguments:

+
    +
  • productlist - list of types -> amount
  • +
  • recordlist - existing record datums
  • +

remove_products

GHOST CAFE WARDROBES +Removes given list of products. Must be called before build_inventory() to actually prevent the records from being created.

reset_prices

Reassign the prices of the vending machine as a result of the inflation value, as provided by SSeconomy

+

This rebuilds both /datum/data/vending_products lists for premium and standard products based on their most relevant pricing values. +Arguments:

+
    +
  • recordlist - the list of standard product datums in the vendor to refresh their prices.
  • +
  • premiumlist - the list of premium product datums in the vendor to refresh their prices.
  • +

restock

Refill a vending machine from a refill canister

+

This takes the products from the refill canister and then fills the products, contraband and premium product categories

+

Arguments:

+
    +
  • canister - the vending canister we are refilling from
  • +

select_colors

Brings up a color config menu for the picked greyscaled item

shock

Shock the passed in user

+

This checks we have power and that the passed in prob is passed, then generates some sparks +and calls electrocute_mob on the user

+

Arguments:

+
    +
  • user - the user to shock
  • +
  • shock_chance - probability the shock happens
  • +

speak

Speak the given message verbally

+

Checks if the machine is powered and the message exists

+

Arguments:

+
    +
  • message - the message to speak
  • +

throw_impact

Crush the mob that the vending machine got thrown at

throw_item

Throw an item from our internal inventory out in front of us

+

This is called when we are hacked, it selects a random product from the records that has an amount > 0 +This item is then created and tossed out in front of us with a visible message

tilt

Tilts ontop of the atom supplied, if crit is true some extra shit can happen. See [fall_and_crush] for return values. +Arguments: +fatty - atom to tilt the vendor onto +local_crit_chance - percent chance of a critical hit +forced_crit - specific critical hit case to use, if any

total_loaded_stock

Returns the total amount of items in the vending machine based on the product records and premium records, but not contraband

total_max_stock

Returns the total amount of items in the vending machine based on the product records and premium records, but not contraband

unbuild_inventory

Given a record list, go through and return a list of products in format of type -> amount +Arguments: +recordlist - list of records to unbuild products from

unbuild_inventory_into

Unbuild product_records into categorized product lists to the machine's refill canister. +Does not handle contraband/premium products, only standard stock and any other categories used by the vendor(see: ClothesMate). +If a product has no category, puts it into standard stock category. +Arguments: +product_records - list of products of the vendor +products - list of products of the refill canister +product_categories - list of product categories of the refill canister

untilt

Rights the vendor up, unpinning mobs under it, if any. +Arguments: +user - mob that has untilted the vendor

update_canister

Set up a refill canister that matches this machine's products

+

This is used when the machine is deconstructed, so the items aren't "lost"

vend

The entire shebang of vending the picked item. Processes the vending and initiates the payment for the item. +arguments: +greyscale_colors - greyscale config for the item we're about to vend, if any

vend_greyscale

Vends a greyscale modified item. +arguments: +menu - greyscale config menu that has been used to vend the item

\ No newline at end of file diff --git a/obj/machinery/vending/access.html b/obj/machinery/vending/access.html new file mode 100644 index 0000000000000..4ca323582b38d --- /dev/null +++ b/obj/machinery/vending/access.html @@ -0,0 +1,5 @@ +/obj/machinery/vending/access - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

access

This vending machine supports a list of items that changes based on the user/card's access.

Vars

access_listsInternal variable to store our access list
auto_build_productsShould we auto build our product list? 0 means no

Procs

allow_purchaseCheck if the list of given access is allowed to purchase the given product
build_access_listThis is where you generate the list to store what items each access grants. +Should be an assosciative list where the key is the access as a string and the value is the items typepath. +You can also set it to TRUE instead of a list to allow them to purchase anything.

Var Details

access_lists

Internal variable to store our access list

auto_build_products

Should we auto build our product list? 0 means no

Proc Details

allow_purchase

Check if the list of given access is allowed to purchase the given product

build_access_list

This is where you generate the list to store what items each access grants. +Should be an assosciative list where the key is the access as a string and the value is the items typepath. +You can also set it to TRUE instead of a list to allow them to purchase anything.

\ No newline at end of file diff --git a/obj/machinery/vending/assaultops_ammo.html b/obj/machinery/vending/assaultops_ammo.html new file mode 100644 index 0000000000000..42eb918da144e --- /dev/null +++ b/obj/machinery/vending/assaultops_ammo.html @@ -0,0 +1 @@ +/obj/machinery/vending/assaultops_ammo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

assaultops_ammo

Vars

filledHave we been FILLED?

Var Details

filled

Have we been FILLED?

\ No newline at end of file diff --git a/obj/machinery/vending/autodrobe.html b/obj/machinery/vending/autodrobe.html new file mode 100644 index 0000000000000..d69c93b79b9ba --- /dev/null +++ b/obj/machinery/vending/autodrobe.html @@ -0,0 +1 @@ +/obj/machinery/vending/autodrobe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

autodrobe

Vars

refill_canisterCategories are filled in Initialize!

Var Details

refill_canister

Categories are filled in Initialize!

\ No newline at end of file diff --git a/obj/machinery/vending/custom.html b/obj/machinery/vending/custom.html new file mode 100644 index 0000000000000..bced452b56969 --- /dev/null +++ b/obj/machinery/vending/custom.html @@ -0,0 +1,5 @@ +/obj/machinery/vending/custom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

custom

Vars

base64_cacheBase64 cache of custom icons.
linked_accountwhere the money is sent
max_loaded_itemsmax number of items that the custom vendor can hold

Procs

vend_actVends an item to the user. Handles all the logic: +Updating stock, account transactions, alerting users. +@return -- TRUE if a valid condition was met, FALSE otherwise.

Var Details

base64_cache

Base64 cache of custom icons.

linked_account

where the money is sent

max_loaded_items

max number of items that the custom vendor can hold

Proc Details

vend_act

Vends an item to the user. Handles all the logic: +Updating stock, account transactions, alerting users. +@return -- TRUE if a valid condition was met, FALSE otherwise.

\ No newline at end of file diff --git a/obj/machinery/vending/dorms.html b/obj/machinery/vending/dorms.html new file mode 100644 index 0000000000000..b061712e5dd10 --- /dev/null +++ b/obj/machinery/vending/dorms.html @@ -0,0 +1 @@ +/obj/machinery/vending/dorms - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

dorms

Vars

card_usedHas the discount card been used on the vending machine?

Procs

check_menuPerforms checks to see if the user can change the color on the vending machine.

Var Details

card_used

Has the discount card been used on the vending machine?

Proc Details

check_menu

Performs checks to see if the user can change the color on the vending machine.

\ No newline at end of file diff --git a/obj/machinery/vending/hotdog.html b/obj/machinery/vending/hotdog.html new file mode 100644 index 0000000000000..2a121074f7a5d --- /dev/null +++ b/obj/machinery/vending/hotdog.html @@ -0,0 +1 @@ +/obj/machinery/vending/hotdog - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

hotdog

A special hotdog vending machine found in the cafeteria at the museum away mission, or during the hotdog holiday.

Procs

on_dispenseCute little thing that sets it apart from the other food vending mahicnes. I mean, you don't find this every day.

Proc Details

on_dispense

Cute little thing that sets it apart from the other food vending mahicnes. I mean, you don't find this every day.

\ No newline at end of file diff --git a/obj/machinery/vending/runic_vendor.html b/obj/machinery/vending/runic_vendor.html new file mode 100644 index 0000000000000..379106d5c8cad --- /dev/null +++ b/obj/machinery/vending/runic_vendor.html @@ -0,0 +1 @@ +/obj/machinery/vending/runic_vendor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

runic_vendor

Vars

pulse_distanceArea around the vendor that will pushback nearby mobs.
time_to_decayHow long the vendor stays up before it decays.

Var Details

pulse_distance

Area around the vendor that will pushback nearby mobs.

time_to_decay

How long the vendor stays up before it decays.

\ No newline at end of file diff --git a/obj/machinery/vending/subtype_vendor.html b/obj/machinery/vending/subtype_vendor.html new file mode 100644 index 0000000000000..41ff79a5c36c6 --- /dev/null +++ b/obj/machinery/vending/subtype_vendor.html @@ -0,0 +1 @@ +/obj/machinery/vending/subtype_vendor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

subtype_vendor

Vars

type_to_vendSpawns coders by default

Var Details

type_to_vend

Spawns coders by default

\ No newline at end of file diff --git a/obj/machinery/vending/wardrobe/chap_wardrobe/unholy.html b/obj/machinery/vending/wardrobe/chap_wardrobe/unholy.html new file mode 100644 index 0000000000000..b762322cc20f4 --- /dev/null +++ b/obj/machinery/vending/wardrobe/chap_wardrobe/unholy.html @@ -0,0 +1 @@ +/obj/machinery/vending/wardrobe/chap_wardrobe/unholy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

unholy

Procs

InitializeJust take out and replace the holy beacon with our 'unholy' beacon

Proc Details

Initialize

Just take out and replace the holy beacon with our 'unholy' beacon

\ No newline at end of file diff --git a/obj/machinery/washing_machine.html b/obj/machinery/washing_machine.html new file mode 100644 index 0000000000000..fef647bd0fb53 --- /dev/null +++ b/obj/machinery/washing_machine.html @@ -0,0 +1 @@ +/obj/machinery/washing_machine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

washing_machine

Vars

anchored_arousal_multIf we are active and anchored, our arousal given to buckled mobs will be multiplied against this.
buckled_arousal_penisIf we are active, all mobs buckled to us with a penis will have arousal raised by this per second.
buckled_arousal_vaginaIf we are active, all mobs buckled to us with a vagina will have arousal raised by this per second.

Var Details

anchored_arousal_mult

If we are active and anchored, our arousal given to buckled mobs will be multiplied against this.

buckled_arousal_penis

If we are active, all mobs buckled to us with a penis will have arousal raised by this per second.

buckled_arousal_vagina

If we are active, all mobs buckled to us with a vagina will have arousal raised by this per second.

\ No newline at end of file diff --git a/obj/machinery/xenoarch.html b/obj/machinery/xenoarch.html new file mode 100644 index 0000000000000..c58cc0d9682c6 --- /dev/null +++ b/obj/machinery/xenoarch.html @@ -0,0 +1 @@ +/obj/machinery/xenoarch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

xenoarch

Vars

process_speedhow long between each process
storage_unitthe item that holds everything

Var Details

process_speed

how long between each process

storage_unit

the item that holds everything

\ No newline at end of file diff --git a/obj/machinery/xenoarch/researcher.html b/obj/machinery/xenoarch/researcher.html new file mode 100644 index 0000000000000..ea38c87d96f60 --- /dev/null +++ b/obj/machinery/xenoarch/researcher.html @@ -0,0 +1 @@ +/obj/machinery/xenoarch/researcher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

researcher

Vars

accepted_typesthe value of each accepted item
current_researchthe amount of research that is currently done
max_researchthe max amount of value we can have

Var Details

accepted_types

the value of each accepted item

current_research

the amount of research that is currently done

max_research

the max amount of value we can have

\ No newline at end of file diff --git a/obj/merge_conflict_marker.html b/obj/merge_conflict_marker.html new file mode 100644 index 0000000000000..48043520816cc --- /dev/null +++ b/obj/merge_conflict_marker.html @@ -0,0 +1 @@ +/obj/merge_conflict_marker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

merge_conflict_marker

Procs

InitializeWe REALLY do not want un-addressed merge conflicts in maps for an inexhaustible list of reasons. This should help ensure that this will not be missed in case linters fail to catch it for any reason what-so-ever.

Proc Details

Initialize

We REALLY do not want un-addressed merge conflicts in maps for an inexhaustible list of reasons. This should help ensure that this will not be missed in case linters fail to catch it for any reason what-so-ever.

\ No newline at end of file diff --git a/obj/modular_map_root.html b/obj/modular_map_root.html new file mode 100644 index 0000000000000..c2196760f58f1 --- /dev/null +++ b/obj/modular_map_root.html @@ -0,0 +1 @@ +/obj/modular_map_root - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

modular_map_root

Vars

config_filePoints to a .toml file storing configuration data about the modules associated with this root
keyKey used to look up the appropriate map paths in the associated .toml file

Procs

load_mapRandonly selects a map file from the TOML config specified in config_file, loads it, then deletes itself.

Var Details

config_file

Points to a .toml file storing configuration data about the modules associated with this root

key

Key used to look up the appropriate map paths in the associated .toml file

Proc Details

load_map

Randonly selects a map file from the TOML config specified in config_file, loads it, then deletes itself.

\ No newline at end of file diff --git a/obj/mystery_box_item.html b/obj/mystery_box_item.html new file mode 100644 index 0000000000000..73fa975ec6f70 --- /dev/null +++ b/obj/mystery_box_item.html @@ -0,0 +1 @@ +/obj/mystery_box_item - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mystery_box_item

This represents the item that comes out of the box and is constantly changing before the box finishes deciding. Can probably be just an /atom or /movable.

Vars

claimableWhether this prize is currently claimable
parent_boxThe box that spawned this
selected_pathThe currently selected item. Constantly changes while choosing, determines what is spawned if the prize is claimed, and its current icon

Procs

expire_animationSink back into the box
loop_icon_changesKeep changing the icon and selected path
start_animationStart pushing the prize up
update_random_iconanimate() isn't up to the task for queueing up icon changes, so this is the proc we call with timers to update our icon

Var Details

claimable

Whether this prize is currently claimable

parent_box

The box that spawned this

selected_path

The currently selected item. Constantly changes while choosing, determines what is spawned if the prize is claimed, and its current icon

Proc Details

expire_animation

Sink back into the box

loop_icon_changes

Keep changing the icon and selected path

start_animation

Start pushing the prize up

update_random_icon

animate() isn't up to the task for queueing up icon changes, so this is the proc we call with timers to update our icon

\ No newline at end of file diff --git a/obj/narsie.html b/obj/narsie.html new file mode 100644 index 0000000000000..4f477d0993714 --- /dev/null +++ b/obj/narsie.html @@ -0,0 +1,5 @@ +/obj/narsie - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

narsie

Nar'Sie, the God of the blood cultists

Vars

singularityThe singularity component to move around Nar'Sie. +A weak ref in case an admin removes the component to preserve the functionality.

Procs

acquireNar'Sie gets a taste of something, and will start to gravitate towards it
consumeCalled to make Nar'Sie convert objects to cult stuff, or to eat
fall_of_the_harbingerCleans up all of Nar'Sie's abilities, stats, and ends her round-ending capabilities. This should only be called if start_ending_the_round() successfully started.
mesmerizeStun people around Nar'Sie that aren't cultists
pickcultistNarsie rewards her cultists with being devoured first, then picks a ghost to follow.
start_ending_the_roundThis proc sets up all of Nar'Sie's abilities, stats, and begins her round-ending capabilities. She does not do anything unless this proc is invoked. +This is only meant to be invoked after this instance is initialized in specific pro-sumer procs, as it WILL derail the entire round.

Var Details

singularity

The singularity component to move around Nar'Sie. +A weak ref in case an admin removes the component to preserve the functionality.

Proc Details

acquire

Nar'Sie gets a taste of something, and will start to gravitate towards it

consume

Called to make Nar'Sie convert objects to cult stuff, or to eat

fall_of_the_harbinger

Cleans up all of Nar'Sie's abilities, stats, and ends her round-ending capabilities. This should only be called if start_ending_the_round() successfully started.

mesmerize

Stun people around Nar'Sie that aren't cultists

pickcultist

Narsie rewards her cultists with being devoured first, then picks a ghost to follow.

start_ending_the_round

This proc sets up all of Nar'Sie's abilities, stats, and begins her round-ending capabilities. She does not do anything unless this proc is invoked. +This is only meant to be invoked after this instance is initialized in specific pro-sumer procs, as it WILL derail the entire round.

\ No newline at end of file diff --git a/obj/projectile.html b/obj/projectile.html new file mode 100644 index 0000000000000..ea92f82793be0 --- /dev/null +++ b/obj/projectile.html @@ -0,0 +1,126 @@ +/obj/projectile - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

projectile

Vars

AngleThe current angle of the projectile. Initially null, so if the arg is missing from [/fire()], we can calculate it from firer and target as fallback.
accuracy_falloffHow much accuracy is lost for each tile travelled
accurate_rangeHow much accuracy before falloff starts to matter. Formula is range - falloff * tiles travelled
armor_flagDefines what armor to use when it hits things. Must be set to bullet, laser, energy, or bomb
armour_penetrationHow much armor this projectile pierces.
can_hit_turfsIf true directly targeted turfs can be hit
damage_falloff_tileHow much we want to drop damage per tile as it travels through the air
do_not_logIf true, the projectile won't cause any logging. Used for hallucinations and shit.
drowsyDrowsiness applied on projectile hit
embed_dataSaves embedding data
embed_falloff_tileHow much we want to drop the embed_chance value, if we can embed, per tile, for falloff purposes
embed_typeIf we have a shrapnel_type defined, these embedding stats will be passed to the spawned shrapnel type, which will roll for embedding on the target
eyeblurSeconds of blurry eyes applied on projectile hit
force_hitIf the object being hit can pass ths damage on to something else, it should not do it for this bullet
hit_prone_targetsIf TRUE, hit mobs, even if they are lying on the floor and are not our target within MAX_RANGE_HIT_PRONE_TARGETS tiles
hit_threshholdIf objects are below this layer, we pass through them
ignore_direct_targetIf this should be able to hit the target even on direct firing when ignored_factions applies
ignore_range_hit_prone_targetsif TRUE, ignores the range of MAX_RANGE_HIT_PRONE_TARGETS tiles of hit_prone_targets
ignore_source_checkIf TRUE, we can hit our firer.
ignored_factionsWe ignore mobs with these factions.
impactedWe already impacted these things, do not impact them again. Used to make sure we can pierce things we want to pierce. Lazylist, typecache style (object = TRUE) for performance.
jitterJittering applied on projectile hit
last_angle_set_hitscan_storeLast turf an angle was changed in for hitscan projectiles.
min_ricochetshow many times we have to ricochet min (unless we hit an atom we can ricochet off)
pass_flags
phasing_ignore_direct_targetIf FALSE, allow us to hit something directly targeted/clicked/whatnot even if we're able to phase through it
piercesnumber of times we've pierced something. Incremented BEFORE bullet_act and on_hit proc!
pixel_speed_multiplierThis var is multiplied by SSprojectiles.global_pixel_speed to get how many pixels +the projectile moves during each iteration of the movement loop
projectile_phasingBitflag for things the projectile should just phase through entirely - No hitting unless direct target and [phasing_ignore_direct_target] is FALSE. Uses pass_flags flags.
projectile_piercingBitflag for things the projectile should hit, but pierce through without deleting itself. Defers to projectile_phasing. Uses pass_flags flags.
ricochet_auto_aim_angleOn ricochet, if ricochet_auto_aim_range is nonzero, we'll consider any mobs within this range of the normal angle of incidence to home in on, higher = more auto aim
ricochet_auto_aim_rangeOn ricochet, if nonzero, we consider all mobs within this range of our projectile at the time of ricochet to home in on like Revolver Ocelot, as governed by ricochet_auto_aim_angle
ricochet_chance0-100 (or more, I guess), the base chance of ricocheting, before being modified by the atom we shoot and our chance decay
ricochet_decay_chance0-1 (or more, I guess) multiplier, the ricochet_chance is modified by multiplying this after each ricochet
ricochet_decay_damage0-1 (or more, I guess) multiplier, the projectile's damage is modified by multiplying this after each ricochet
ricochet_incidence_leewaythe angle of impact must be within this many degrees of the struck surface, set to 0 to allow any angle
ricochet_shoots_firerCan our ricochet autoaim hit our firer?
ricochetshow many times we've ricochet'd so far (instance variable, not a stat)
ricochets_maxhow many times we can ricochet max
sharpnessFor what kind of brute wounds we're rolling for, if we're doing such a thing. Lasers obviously don't care since they do burn instead.
shrapnel_typeIf defined, on hit we create an item of this type then call hitby() on the hit target with this, mainly used for embedding items (bullets) in targets
slurSlurring applied on projectile hit
speedDuring each fire of SSprojectiles, the number of deciseconds since the last fire of SSprojectiles +is divided by this var, and the result truncated to the next lowest integer is +the number of times the projectile's pixel_move proc will be called.
staminaExtra stamina damage applied on projectile hit (in addition to the main damage)
stamina_falloff_tileHow much we want to drop stamina damage (defined by the stamina variable) per tile as it travels through the air
stutterStuttering applied on projectile hit
temporary_unstoppable_movementWe are flagged PHASING temporarily to not stop moving when we Bump something but want to keep going anyways.
weak_against_armourWhether or not our bullet lacks penetrative power, and is easily stopped by armor.
wound_falloff_tileHow much we want to drop both wound_bonus and bare_wound_bonus (to a minimum of 0 for the latter) per tile, for falloff purposes

Procs

CanPassThroughProjectile can pass through +Used to not even attempt to Bump() or fail to Cross() anything we already hit.
ImpactCalled when the projectile hits something +This can either be from it bumping something, +or it passing over a turf/being crossed and scanning that there is infact +a valid target it needs to hit. +This target isn't however necessarily WHAT it hits +that is determined by process_hit and select_target.
MovedProjectile moved:
can_embed_intoChecks if the projectile can embed into someone
get_embedFetches embedding data
is_hostile_projectileIs this projectile considered "hostile"?
on_enteredProjectile crossed: When something enters a projectile's tile, make sure the projectile hits it if it should be hitting it.
on_hitCalled when the projectile hits something
prehit_pierceChecks if we should pierce something.
preparePixelProjectileAims the projectile at a target.
process_hitThe primary workhorse proc of projectile impacts. +This is a RECURSIVE call - process_hit is called on the first selected target, and then repeatedly called if the projectile still hasn't been deleted.
reflectReflects the projectile off of something
scan_crossed_hitScan if we should hit something and hit it if we need to +The difference between this and handling in Impact is +In this we strictly check if we need to Impact() something in specific +If we do, we do +We don't even check if it got hit already - Impact() does that +In impact there's more code for selecting WHAT to hit +So this proc is more of checking if we should hit something at all BY having an atom cross us.
scan_moved_turfScans if we should hit something on the turf we just moved to if we haven't already
select_targetSelects a target to hit from a turf
set_angle_centeredSame as set_angle, but the reflection continues from the center of the object that reflects it instead of the side

Var Details

Angle

The current angle of the projectile. Initially null, so if the arg is missing from [/fire()], we can calculate it from firer and target as fallback.

accuracy_falloff

How much accuracy is lost for each tile travelled

accurate_range

How much accuracy before falloff starts to matter. Formula is range - falloff * tiles travelled

armor_flag

Defines what armor to use when it hits things. Must be set to bullet, laser, energy, or bomb

armour_penetration

How much armor this projectile pierces.

can_hit_turfs

If true directly targeted turfs can be hit

damage_falloff_tile

How much we want to drop damage per tile as it travels through the air

do_not_log

If true, the projectile won't cause any logging. Used for hallucinations and shit.

drowsy

Drowsiness applied on projectile hit

embed_data

Saves embedding data

embed_falloff_tile

How much we want to drop the embed_chance value, if we can embed, per tile, for falloff purposes

embed_type

If we have a shrapnel_type defined, these embedding stats will be passed to the spawned shrapnel type, which will roll for embedding on the target

eyeblur

Seconds of blurry eyes applied on projectile hit

force_hit

If the object being hit can pass ths damage on to something else, it should not do it for this bullet

hit_prone_targets

If TRUE, hit mobs, even if they are lying on the floor and are not our target within MAX_RANGE_HIT_PRONE_TARGETS tiles

hit_threshhold

If objects are below this layer, we pass through them

ignore_direct_target

If this should be able to hit the target even on direct firing when ignored_factions applies

ignore_range_hit_prone_targets

if TRUE, ignores the range of MAX_RANGE_HIT_PRONE_TARGETS tiles of hit_prone_targets

ignore_source_check

If TRUE, we can hit our firer.

ignored_factions

We ignore mobs with these factions.

impacted

We already impacted these things, do not impact them again. Used to make sure we can pierce things we want to pierce. Lazylist, typecache style (object = TRUE) for performance.

jitter

Jittering applied on projectile hit

last_angle_set_hitscan_store

Last turf an angle was changed in for hitscan projectiles.

min_ricochets

how many times we have to ricochet min (unless we hit an atom we can ricochet off)

pass_flags

    +
  • +

    PROJECTILE PIERCING +* WARNING: +* Projectile piercing MUST be done using these variables. +* Ordinary passflags will result in can_hit_target being false unless directly clicked on - similar to projectile_phasing but without even going to process_hit. +* The two flag variables below both use pass flags. +* In the context of LETPASStHROW, it means the projectile will ignore things that are currently "in the air" from a throw.

    +
    * Also, projectiles sense hits using Bump(), and then pierce them if necessary.
    +* They simply do not follow conventional movement rules.
    +* NEVER flag a projectile as PHASING movement type.
    +* If you so badly need to make one go through *everything*, override check_pierce() for your projectile to always return PROJECTILE_PIERCE_PHASE/HIT.
    +
    +
  • +
+

The "usual" flags of pass_flags is used in that can_hit_target ignores these unless they're specifically targeted/clicked on. This behavior entirely bypasses process_hit if triggered, rather than phasing which uses prehit_pierce() to check.

phasing_ignore_direct_target

If FALSE, allow us to hit something directly targeted/clicked/whatnot even if we're able to phase through it

pierces

number of times we've pierced something. Incremented BEFORE bullet_act and on_hit proc!

pixel_speed_multiplier

This var is multiplied by SSprojectiles.global_pixel_speed to get how many pixels +the projectile moves during each iteration of the movement loop

+

If you want to make a fast-moving projectile, you should keep this equal to 1 and +reduce the value of speed. If you want to make a slow-moving projectile, make +speed a modest value like 1 and set this to a low value like 0.2.

projectile_phasing

Bitflag for things the projectile should just phase through entirely - No hitting unless direct target and [phasing_ignore_direct_target] is FALSE. Uses pass_flags flags.

projectile_piercing

Bitflag for things the projectile should hit, but pierce through without deleting itself. Defers to projectile_phasing. Uses pass_flags flags.

ricochet_auto_aim_angle

On ricochet, if ricochet_auto_aim_range is nonzero, we'll consider any mobs within this range of the normal angle of incidence to home in on, higher = more auto aim

ricochet_auto_aim_range

On ricochet, if nonzero, we consider all mobs within this range of our projectile at the time of ricochet to home in on like Revolver Ocelot, as governed by ricochet_auto_aim_angle

ricochet_chance

0-100 (or more, I guess), the base chance of ricocheting, before being modified by the atom we shoot and our chance decay

ricochet_decay_chance

0-1 (or more, I guess) multiplier, the ricochet_chance is modified by multiplying this after each ricochet

ricochet_decay_damage

0-1 (or more, I guess) multiplier, the projectile's damage is modified by multiplying this after each ricochet

ricochet_incidence_leeway

the angle of impact must be within this many degrees of the struck surface, set to 0 to allow any angle

ricochet_shoots_firer

Can our ricochet autoaim hit our firer?

ricochets

how many times we've ricochet'd so far (instance variable, not a stat)

ricochets_max

how many times we can ricochet max

sharpness

For what kind of brute wounds we're rolling for, if we're doing such a thing. Lasers obviously don't care since they do burn instead.

shrapnel_type

If defined, on hit we create an item of this type then call hitby() on the hit target with this, mainly used for embedding items (bullets) in targets

slur

Slurring applied on projectile hit

speed

During each fire of SSprojectiles, the number of deciseconds since the last fire of SSprojectiles +is divided by this var, and the result truncated to the next lowest integer is +the number of times the projectile's pixel_move proc will be called.

stamina

Extra stamina damage applied on projectile hit (in addition to the main damage)

stamina_falloff_tile

How much we want to drop stamina damage (defined by the stamina variable) per tile as it travels through the air

stutter

Stuttering applied on projectile hit

temporary_unstoppable_movement

We are flagged PHASING temporarily to not stop moving when we Bump something but want to keep going anyways.

weak_against_armour

Whether or not our bullet lacks penetrative power, and is easily stopped by armor.

wound_falloff_tile

How much we want to drop both wound_bonus and bare_wound_bonus (to a minimum of 0 for the latter) per tile, for falloff purposes

Proc Details

CanPassThrough

Projectile can pass through +Used to not even attempt to Bump() or fail to Cross() anything we already hit.

Impact

Called when the projectile hits something +This can either be from it bumping something, +or it passing over a turf/being crossed and scanning that there is infact +a valid target it needs to hit. +This target isn't however necessarily WHAT it hits +that is determined by process_hit and select_target.

+

Furthermore, this proc shouldn't check can_hit_target - this should only be called if can hit target is already checked. +Also, we select_target to find what to process_hit first.

Moved

Projectile moved:

+

If not fired yet, do not do anything. Else,

+

If temporary unstoppable movement used for piercing through things we already hit (impacted list) is set, unset it. +Scan turf we're now in for anything we can/should hit. This is useful for hitting non dense objects the user +directly clicks on, as well as for PHASING projectiles to be able to hit things at all as they don't ever Bump().

can_embed_into

Checks if the projectile can embed into someone

get_embed

Fetches embedding data

is_hostile_projectile

Is this projectile considered "hostile"?

+

By default all projectiles which deal damage or impart crowd control effects (including stamina) are hostile

+

This is NOT used for pacifist checks, that's handled by /obj/item/ammo_casing/var/harmful +This is used in places such as AI responses to determine if they're being threatened or not (among other places)

on_entered

Projectile crossed: When something enters a projectile's tile, make sure the projectile hits it if it should be hitting it.

on_hit

Called when the projectile hits something

+

By default parent call will always return [BULLET_ACT_HIT] (unless qdeleted) +so it is save to assume a successful hit in children (though not necessarily successfully damaged - it could've been blocked)

+

Arguments

+
    +
  • target - thing hit
  • +
  • blocked - percentage of hit blocked (0 to 100)
  • +
  • pierce_hit - boolean, are we piercing through or regular hitting
  • +
+

Returns

+
    +
  • Returns [BULLET_ACT_HIT] if we hit something. Default return value.
  • +
  • Returns [BULLET_ACT_BLOCK] if we were hit but sustained no effects (blocked it). Note, Being "blocked" =/= "blocked is 100".
  • +
  • Returns [BULLET_ACT_FORCE_PIERCE] to have the projectile keep going instead of "hitting", as if we were not hit at all.
  • +

prehit_pierce

Checks if we should pierce something.

+

NOT meant to be a pure proc, since this replaces prehit() which was used to do things. +Return PROJECTILE_DELETE_WITHOUT_HITTING to delete projectile without hitting at all!

preparePixelProjectile

Aims the projectile at a target.

+

Must be passed at least one of a target or a list of click parameters. +If only passed the click modifiers the source atom must be a mob with a client.

+

Arguments:

+
    +
  • target: (Optional) The thing that the projectile will be aimed at.
  • +
  • source: The initial location of the projectile or the thing firing it.
  • +
  • modifiers: (Optional) A list of click parameters to apply to this operation.
  • +
  • deviation: (Optional) How the trajectory should deviate from the target in degrees. +
      +
    • //Spread is FORCED!
    • +
    +
  • +

process_hit

The primary workhorse proc of projectile impacts. +This is a RECURSIVE call - process_hit is called on the first selected target, and then repeatedly called if the projectile still hasn't been deleted.

+

Order of operations:

+
    +
  1. Checks if we are deleted, or if we're somehow trying to hit a null, in which case, bail out
  2. +
  3. Adds the thing we're hitting to impacted so we can make sure we don't doublehit
  4. +
  5. Checks piercing - stores this. +Afterwards: +Hit and delete, hit without deleting and pass through, pass through without hitting, or delete without hitting depending on result +If we're going through without hitting, find something else to hit if possible and recurse, set unstoppable movement to true +If we're deleting without hitting, delete and return +Otherwise, send signal of COMSIG_PROJECTILE_PREHIT to target +Then, hit, deleting ourselves if necessary. +@params +T - Turf we're on/supposedly hitting +target - target we're hitting +bumped - target we originally bumped. it's here to ensure that if something blocks our projectile by means of Cross() failure, we hit it +even if it is not dense. +hit_something - only should be set by recursive calling by this proc - tracks if we hit something already
  6. +
+

Returns if we hit something.

reflect

Reflects the projectile off of something

scan_crossed_hit

Scan if we should hit something and hit it if we need to +The difference between this and handling in Impact is +In this we strictly check if we need to Impact() something in specific +If we do, we do +We don't even check if it got hit already - Impact() does that +In impact there's more code for selecting WHAT to hit +So this proc is more of checking if we should hit something at all BY having an atom cross us.

scan_moved_turf

Scans if we should hit something on the turf we just moved to if we haven't already

+

This proc is a little high in overhead but allows us to not snowflake CanPass in living and other things.

select_target

Selects a target to hit from a turf

+

@params +T - The turf +target - The "preferred" atom to hit, usually what we Bumped() first. +bumped - used to track if something is the reason we impacted in the first place. +If set, this atom is always treated as dense by can_hit_target.

+

Priority: +0. Anything that is already in impacted is ignored no matter what. Furthermore, in any bracket, if the target atom parameter is in it, that's hit first. +Furthermore, can_hit_target is always checked. This (entire proc) is PERFORMANCE OVERHEAD!! But, it shouldn't be ""too"" bad and I frankly don't have a better generic non snowflakey way that I can think of right now at 3 AM. +FURTHERMORE, mobs/objs have a density check from can_hit_target - to hit non dense objects over a turf, you must click on them, same for mobs that usually wouldn't get hit.

+
    +
  1. Special check on what we bumped to see if it's a border object that intercepts hitting anything behind it
  2. +
  3. The thing originally aimed at/clicked on
  4. +
  5. Mobs - picks lowest buckled mob to prevent scarp piggybacking memes
  6. +
  7. Objs
  8. +
  9. Turf
  10. +
  11. Nothing
  12. +

set_angle_centered

Same as set_angle, but the reflection continues from the center of the object that reflects it instead of the side

\ No newline at end of file diff --git a/obj/projectile/beam/cybersun_laser/flare.html b/obj/projectile/beam/cybersun_laser/flare.html new file mode 100644 index 0000000000000..3facd3f2ad674 --- /dev/null +++ b/obj/projectile/beam/cybersun_laser/flare.html @@ -0,0 +1 @@ +/obj/projectile/beam/cybersun_laser/flare - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

flare

Vars

firestacks_to_giveHow many firestacks the bullet should impart upon a target when impacting
illumination_flareWhat we spawn when we range out

Var Details

firestacks_to_give

How many firestacks the bullet should impart upon a target when impacting

illumination_flare

What we spawn when we range out

\ No newline at end of file diff --git a/obj/projectile/beam/cybersun_laser/granata.html b/obj/projectile/beam/cybersun_laser/granata.html new file mode 100644 index 0000000000000..eea7e3accca0b --- /dev/null +++ b/obj/projectile/beam/cybersun_laser/granata.html @@ -0,0 +1 @@ +/obj/projectile/beam/cybersun_laser/granata - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

granata

Vars

casing_to_spawnWhat type of casing should we put inside the bullet to act as shrapnel later

Procs

fuse_activationCalled when the projectile reaches its max range, or hits something

Var Details

casing_to_spawn

What type of casing should we put inside the bullet to act as shrapnel later

Proc Details

fuse_activation

Called when the projectile reaches its max range, or hits something

\ No newline at end of file diff --git a/obj/projectile/blastwave.html b/obj/projectile/blastwave.html new file mode 100644 index 0000000000000..ec5658e35f577 --- /dev/null +++ b/obj/projectile/blastwave.html @@ -0,0 +1 @@ +/obj/projectile/blastwave - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blastwave

The projectile used by the blastcannon

Vars

heavy_ex_rangeThe maximum distance this will inflict EXPLODE_DEVASTATE
light_ex_rangeThe maximum distance this will inflict EXPLODE_LIGHT
medium_ex_rangeThe maximum distance this will inflict EXPLODE_HEAVY
reactionaryWhether or not to care about the explosion block of the things we are passing through.

Var Details

heavy_ex_range

The maximum distance this will inflict EXPLODE_DEVASTATE

light_ex_range

The maximum distance this will inflict EXPLODE_LIGHT

medium_ex_range

The maximum distance this will inflict EXPLODE_HEAVY

reactionary

Whether or not to care about the explosion block of the things we are passing through.

\ No newline at end of file diff --git a/obj/projectile/bullet/c40sol/incendiary.html b/obj/projectile/bullet/c40sol/incendiary.html new file mode 100644 index 0000000000000..3769ab2d73b27 --- /dev/null +++ b/obj/projectile/bullet/c40sol/incendiary.html @@ -0,0 +1 @@ +/obj/projectile/bullet/c40sol/incendiary - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

incendiary

Vars

firestacks_to_giveHow many firestacks the bullet should impart upon a target when impacting

Var Details

firestacks_to_give

How many firestacks the bullet should impart upon a target when impacting

\ No newline at end of file diff --git a/obj/projectile/bullet/c980grenade.html b/obj/projectile/bullet/c980grenade.html new file mode 100644 index 0000000000000..5579778d70a8a --- /dev/null +++ b/obj/projectile/bullet/c980grenade.html @@ -0,0 +1 @@ +/obj/projectile/bullet/c980grenade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

c980grenade

Procs

fuse_activationGeneric proc that is called when the projectile should 'detonate', being either on impact or when the range runs out

Proc Details

fuse_activation

Generic proc that is called when the projectile should 'detonate', being either on impact or when the range runs out

\ No newline at end of file diff --git a/obj/projectile/bullet/c980grenade/shrapnel.html b/obj/projectile/bullet/c980grenade/shrapnel.html new file mode 100644 index 0000000000000..62f58c726e908 --- /dev/null +++ b/obj/projectile/bullet/c980grenade/shrapnel.html @@ -0,0 +1 @@ +/obj/projectile/bullet/c980grenade/shrapnel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shrapnel

Vars

casing_to_spawnWhat type of casing should we put inside the bullet to act as shrapnel later

Var Details

casing_to_spawn

What type of casing should we put inside the bullet to act as shrapnel later

\ No newline at end of file diff --git a/obj/projectile/bullet/cannonball.html b/obj/projectile/bullet/cannonball.html new file mode 100644 index 0000000000000..0250efc81669b --- /dev/null +++ b/obj/projectile/bullet/cannonball.html @@ -0,0 +1 @@ +/obj/projectile/bullet/cannonball - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cannonball

Vars

damage_decrease_on_hitIf our cannonball hits something, it reduces the damage by this value.
object_damageThis is the damage value we do to objects on hit. Usually, more than the actual projectile damage
object_damage_decrease_on_hitHow much our object damage decreases on hit, similar to normal damage.
object_damage_decreasesWhether or not our cannonball loses object damage upon hitting an object.
stop_piercing_thresholdThis is the cutoff point of our cannonball, so that it stops piercing past this value.

Var Details

damage_decrease_on_hit

If our cannonball hits something, it reduces the damage by this value.

object_damage

This is the damage value we do to objects on hit. Usually, more than the actual projectile damage

object_damage_decrease_on_hit

How much our object damage decreases on hit, similar to normal damage.

object_damage_decreases

Whether or not our cannonball loses object damage upon hitting an object.

stop_piercing_threshold

This is the cutoff point of our cannonball, so that it stops piercing past this value.

\ No newline at end of file diff --git a/obj/projectile/bullet/coin.html b/obj/projectile/bullet/coin.html new file mode 100644 index 0000000000000..e40cf3416c9c9 --- /dev/null +++ b/obj/projectile/bullet/coin.html @@ -0,0 +1 @@ +/obj/projectile/bullet/coin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

coin

Marksman Coin

Vars

crosshair_indicatorThe crosshair icon put on the targeted turf for the user- so we can remove it from their images when done
num_of_splitshotsWhen this coin is targeted with a valid splitshot, it creates this many child splitshots
original_firerThe mob who originally flipped this coin, as a matter of convenience, may be able tto be removed
target_turfSave the turf we're aiming for for future use
usedWhen a coin has been activated, is is marked as used, so that it is taken out of consideration for any further ricochets
validCoins are valid while within a tile of their target tile, and can only be directly ricoshot during this time.

Procs

check_splitshotWe've been shot by a marksman revolver shot, or the ricochet off another coin, check if we can actually ricochet. The forced var being TRUE means it's a ricochet from another coin
find_next_targetFind what the splitshots will want to target next, with the order roughly based off the UK coin
fire_splitshotShoot an individual splitshot at a new target
iterate_splitshotsNow we actually create all the splitshots, loop through however many splits we'll create and fire them
remove_crosshair_indicatorRemove the crosshair indicator from the original firer if it exists

Var Details

crosshair_indicator

The crosshair icon put on the targeted turf for the user- so we can remove it from their images when done

num_of_splitshots

When this coin is targeted with a valid splitshot, it creates this many child splitshots

original_firer

The mob who originally flipped this coin, as a matter of convenience, may be able tto be removed

target_turf

Save the turf we're aiming for for future use

used

When a coin has been activated, is is marked as used, so that it is taken out of consideration for any further ricochets

valid

Coins are valid while within a tile of their target tile, and can only be directly ricoshot during this time.

Proc Details

check_splitshot

We've been shot by a marksman revolver shot, or the ricochet off another coin, check if we can actually ricochet. The forced var being TRUE means it's a ricochet from another coin

find_next_target

Find what the splitshots will want to target next, with the order roughly based off the UK coin

fire_splitshot

Shoot an individual splitshot at a new target

iterate_splitshots

Now we actually create all the splitshots, loop through however many splits we'll create and fire them

remove_crosshair_indicator

Remove the crosshair indicator from the original firer if it exists

\ No newline at end of file diff --git a/obj/projectile/bullet/dart/syringe/dart.html b/obj/projectile/bullet/dart/syringe/dart.html new file mode 100644 index 0000000000000..91b453528514e --- /dev/null +++ b/obj/projectile/bullet/dart/syringe/dart.html @@ -0,0 +1 @@ +/obj/projectile/bullet/dart/syringe/dart - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dart

Vars

allowed_medicineList containing chemicals that Smartdarts can Inject.
disallowed_medicineBlacklist that contains medicines that SmartDarts are unable to inject.
prevention_usedIs allergy prevention used?

Var Details

allowed_medicine

List containing chemicals that Smartdarts can Inject.

disallowed_medicine

Blacklist that contains medicines that SmartDarts are unable to inject.

prevention_used

Is allergy prevention used?

\ No newline at end of file diff --git a/obj/projectile/bullet/incendiary.html b/obj/projectile/bullet/incendiary.html new file mode 100644 index 0000000000000..300104cef53ff --- /dev/null +++ b/obj/projectile/bullet/incendiary.html @@ -0,0 +1 @@ +/obj/projectile/bullet/incendiary - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

incendiary

Vars

fire_stacksHow many firestacks to apply to the target
leaves_fire_trailIf TRUE, leaves a trail of hotspots as it flies, very very chaotic

Var Details

fire_stacks

How many firestacks to apply to the target

leaves_fire_trail

If TRUE, leaves a trail of hotspots as it flies, very very chaotic

\ No newline at end of file diff --git a/obj/projectile/bullet/incendiary/fire/backblast.html b/obj/projectile/bullet/incendiary/fire/backblast.html new file mode 100644 index 0000000000000..1c7931d0147aa --- /dev/null +++ b/obj/projectile/bullet/incendiary/fire/backblast.html @@ -0,0 +1 @@ +/obj/projectile/bullet/incendiary/fire/backblast - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

backblast

Used in the backblast element

Vars

knockback_rangeLazy attempt at knockback, any items this plume hits will be knocked back this far. Decrements with each tile passed.
launched_itemsA lazylist of all the items we've already knocked back, so we don't do it again

Var Details

knockback_range

Lazy attempt at knockback, any items this plume hits will be knocked back this far. Decrements with each tile passed.

launched_items

A lazylist of all the items we've already knocked back, so we don't do it again

\ No newline at end of file diff --git a/obj/projectile/bullet/junk.html b/obj/projectile/bullet/junk.html new file mode 100644 index 0000000000000..8de50cbb44673 --- /dev/null +++ b/obj/projectile/bullet/junk.html @@ -0,0 +1 @@ +/obj/projectile/bullet/junk - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

junk

Vars

extra_damage_added_damageHow much extra damage do we do on top of this total damage? Separate from the multiplier and unaffected by it.
extra_damage_mob_biotypesWhat biotype does our junk projectile especially harm?
extra_damage_multiplierHow much do we multiply our total base damage?
extra_damage_typeWhat damage type is our extra damage?

Var Details

extra_damage_added_damage

How much extra damage do we do on top of this total damage? Separate from the multiplier and unaffected by it.

extra_damage_mob_biotypes

What biotype does our junk projectile especially harm?

extra_damage_multiplier

How much do we multiply our total base damage?

extra_damage_type

What damage type is our extra damage?

\ No newline at end of file diff --git a/obj/projectile/bullet/marksman.html b/obj/projectile/bullet/marksman.html new file mode 100644 index 0000000000000..9a12972895c0f --- /dev/null +++ b/obj/projectile/bullet/marksman.html @@ -0,0 +1 @@ +/obj/projectile/bullet/marksman - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

marksman

Marksman Shot

Vars

ricoshot_levelHow many ricochets deep this is, for tracer size

Var Details

ricoshot_level

How many ricochets deep this is, for tracer size

\ No newline at end of file diff --git a/obj/projectile/bullet/p50.html b/obj/projectile/bullet/p50.html new file mode 100644 index 0000000000000..c0aca72ec5900 --- /dev/null +++ b/obj/projectile/bullet/p50.html @@ -0,0 +1 @@ +/obj/projectile/bullet/p50 - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

p50

Vars

mecha_damageDetermines how much additional damage the round does to mechs.
object_damageDetermines object damage.

Var Details

mecha_damage

Determines how much additional damage the round does to mechs.

object_damage

Determines object damage.

\ No newline at end of file diff --git a/obj/projectile/bullet/p60strela.html b/obj/projectile/bullet/p60strela.html new file mode 100644 index 0000000000000..61db1022aa4b2 --- /dev/null +++ b/obj/projectile/bullet/p60strela.html @@ -0,0 +1 @@ +/obj/projectile/bullet/p60strela - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

p60strela

Vars

anti_materiel_damage_additionHow much damage we add to things that are weak to this bullet

Var Details

anti_materiel_damage_addition

How much damage we add to things that are weak to this bullet

\ No newline at end of file diff --git a/obj/projectile/bullet/pellet/shotgun_rubbershot.html b/obj/projectile/bullet/pellet/shotgun_rubbershot.html new file mode 100644 index 0000000000000..0c39a84c823ad --- /dev/null +++ b/obj/projectile/bullet/pellet/shotgun_rubbershot.html @@ -0,0 +1 @@ +/obj/projectile/bullet/pellet/shotgun_rubbershot - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shotgun_rubbershot

Vars

tile_dropoff_ricochetSubtracted from the ricochet chance for each tile traveled

Var Details

tile_dropoff_ricochet

Subtracted from the ricochet chance for each tile traveled

\ No newline at end of file diff --git a/obj/projectile/bullet/rocket.html b/obj/projectile/bullet/rocket.html new file mode 100644 index 0000000000000..786d32c0334e5 --- /dev/null +++ b/obj/projectile/bullet/rocket.html @@ -0,0 +1,4 @@ +/obj/projectile/bullet/rocket - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

rocket

PM9 standard HE rocket

Vars

anti_armour_damageWhether we do extra damage when hitting a mech or silicon
random_crits_enabledWhether the rocket is capable of instantly killing a living target

Procs

do_boom

Var Details

anti_armour_damage

Whether we do extra damage when hitting a mech or silicon

random_crits_enabled

Whether the rocket is capable of instantly killing a living target

Proc Details

do_boom

    +
  • This proc allows us to customize the conditions necesary for the rocket to detonate, allowing for different explosions for living targets, turf targets, +among other potential differences. This granularity is helpful for things like the special rockets mechs use.
  • +
\ No newline at end of file diff --git a/obj/projectile/bullet/rocket/pep.html b/obj/projectile/bullet/rocket/pep.html new file mode 100644 index 0000000000000..b3001319d7c8b --- /dev/null +++ b/obj/projectile/bullet/rocket/pep.html @@ -0,0 +1,6 @@ +/obj/projectile/bullet/rocket/pep - /tg/ Station 13
/tg/ Station 13 - Modules - Types

pep

PEP-6 Missile - Used by the PEP-6 Exosuit missile rack. +Employed by Roboticists out of spite to put down enemy hereteks, mechanized nuclear operatives, the janitor's hot rod, +the clown's 'taxi service', uppity borgs, vengeful ais, doors they don't like, the escape shuttle's hull, and more!

+

Explodes only when it hits specifically one of the following types: +(/obj/structure), (/obj/machinery), (/obj/vehicle), (/turf/closed), (/mob/living/silicon)

+

Does NOT explode if it hits any random mob, or any random object. Only if it is a subtype of one of the above valid atoms.

\ No newline at end of file diff --git a/obj/projectile/bullet/rocket/srm.html b/obj/projectile/bullet/rocket/srm.html new file mode 100644 index 0000000000000..1677fba182925 --- /dev/null +++ b/obj/projectile/bullet/rocket/srm.html @@ -0,0 +1,3 @@ +/obj/projectile/bullet/rocket/srm - /tg/ Station 13
/tg/ Station 13 - Modules - Types

srm

SRM-8 Missile - Used by the SRM-8 Exosuit missile rack. +Employed by Nuclear Operatives Maulers and Nanotrasen Marauders and Seraphs to kill everything and anyone.

+

Explodes when it hits literally anything.

\ No newline at end of file diff --git a/obj/projectile/colossus/wendigo_shockwave.html b/obj/projectile/colossus/wendigo_shockwave.html new file mode 100644 index 0000000000000..5ff2e79e6f33d --- /dev/null +++ b/obj/projectile/colossus/wendigo_shockwave.html @@ -0,0 +1 @@ +/obj/projectile/colossus/wendigo_shockwave - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wendigo_shockwave

Vars

pixel_movesAmount of movements this projectile has made
wave_movementIf wave movement is enabled
wave_speedAmount the angle changes every pixel move

Var Details

pixel_moves

Amount of movements this projectile has made

wave_movement

If wave movement is enabled

wave_speed

Amount the angle changes every pixel move

\ No newline at end of file diff --git a/obj/projectile/curse_hand.html b/obj/projectile/curse_hand.html new file mode 100644 index 0000000000000..32277615038d4 --- /dev/null +++ b/obj/projectile/curse_hand.html @@ -0,0 +1 @@ +/obj/projectile/curse_hand - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

curse_hand

Procs

finaleThe visual effect for the hand disappearing

Proc Details

finale

The visual effect for the hand disappearing

\ No newline at end of file diff --git a/obj/projectile/energy/chrono_beam.html b/obj/projectile/energy/chrono_beam.html new file mode 100644 index 0000000000000..da5b4bd313105 --- /dev/null +++ b/obj/projectile/energy/chrono_beam.html @@ -0,0 +1 @@ +/obj/projectile/energy/chrono_beam - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chrono_beam

Vars

tem_weakrefReference to the tem... given by the tem! weakref because back in the day we didn't know about harddels- or maybe we didn't care.

Var Details

tem_weakref

Reference to the tem... given by the tem! weakref because back in the day we didn't know about harddels- or maybe we didn't care.

\ No newline at end of file diff --git a/obj/projectile/energy/flora.html b/obj/projectile/energy/flora.html new file mode 100644 index 0000000000000..981cd6e61e9a1 --- /dev/null +++ b/obj/projectile/energy/flora.html @@ -0,0 +1 @@ +/obj/projectile/energy/flora - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

flora

Procs

on_hit_plant_effectCalled when we hit a mob with plant biotype

Proc Details

on_hit_plant_effect

Called when we hit a mob with plant biotype

\ No newline at end of file diff --git a/obj/projectile/energy/medical.html b/obj/projectile/energy/medical.html new file mode 100644 index 0000000000000..374727dba2eb4 --- /dev/null +++ b/obj/projectile/energy/medical.html @@ -0,0 +1 @@ +/obj/projectile/energy/medical - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

medical

Procs

DamageDisgustApplies digust by damage thresholds.
IsLivingHumanChecks to see if the patient is living.
checkReagentsChecks for non-medicine reagents in the bloodstream, used for the toxin medicell.
healBruteHeals Brute without safety
healBurnHeals Burn swithout safety
healToxHeals Toxins
safeBruteHeals Brute with safety
safeBurnHeals Burn with safety.

Proc Details

DamageDisgust

Applies digust by damage thresholds.

IsLivingHuman

Checks to see if the patient is living.

checkReagents

Checks for non-medicine reagents in the bloodstream, used for the toxin medicell.

healBrute

Heals Brute without safety

healBurn

Heals Burn swithout safety

healTox

Heals Toxins

safeBrute

Heals Brute with safety

safeBurn

Heals Burn with safety.

\ No newline at end of file diff --git a/obj/projectile/energy/medical/utility/relocation.html b/obj/projectile/energy/medical/utility/relocation.html new file mode 100644 index 0000000000000..a41539841ef66 --- /dev/null +++ b/obj/projectile/energy/medical/utility/relocation.html @@ -0,0 +1 @@ +/obj/projectile/energy/medical/utility/relocation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

relocation

Vars

access_teleportingIs access required to teleport
area_lockedDetermines whether or not this works anywhere?
destination_areaWhere the target will be teleported to.
grace_periodIs there a grace period before someone is teleported
required_accessif the target doesn't have this access on their ID, they will be teleported
teleport_areasA list of areas that the effect works in, if area_locked is set to true
time_allowanceHow much time does the target have to leave the area before they end up getting teleported?

Var Details

access_teleporting

Is access required to teleport

area_locked

Determines whether or not this works anywhere?

destination_area

Where the target will be teleported to.

grace_period

Is there a grace period before someone is teleported

required_access

if the target doesn't have this access on their ID, they will be teleported

teleport_areas

A list of areas that the effect works in, if area_locked is set to true

time_allowance

How much time does the target have to leave the area before they end up getting teleported?

\ No newline at end of file diff --git a/obj/projectile/energy/photon.html b/obj/projectile/energy/photon.html new file mode 100644 index 0000000000000..0caeae41f62ac --- /dev/null +++ b/obj/projectile/energy/photon.html @@ -0,0 +1,3 @@ +/obj/projectile/energy/photon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

photon

Procs

blast_touchedHandle side effects for the phonon bolt. +behaves like a higher power direct flash if hit, and sparks silicons like they're getting microwaved.
scorch_earthWhen traveling to a new turf, throws a probability to generate a hotspot across its path.

Proc Details

blast_touched

Handle side effects for the phonon bolt. +behaves like a higher power direct flash if hit, and sparks silicons like they're getting microwaved.

scorch_earth

When traveling to a new turf, throws a probability to generate a hotspot across its path.

\ No newline at end of file diff --git a/obj/projectile/energy/radiation.html b/obj/projectile/energy/radiation.html new file mode 100644 index 0000000000000..e29e7cf25bf40 --- /dev/null +++ b/obj/projectile/energy/radiation.html @@ -0,0 +1 @@ +/obj/projectile/energy/radiation - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

radiation

Vars

radiation_chanceThe chance to be irradiated on hit

Var Details

radiation_chance

The chance to be irradiated on hit

\ No newline at end of file diff --git a/obj/projectile/energy_net.html b/obj/projectile/energy_net.html new file mode 100644 index 0000000000000..82f1777c06808 --- /dev/null +++ b/obj/projectile/energy_net.html @@ -0,0 +1 @@ +/obj/projectile/energy_net - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

energy_net

Vars

lineReference to the beam following the projectile.
net_moduleReference to the energy net module.

Var Details

line

Reference to the beam following the projectile.

net_module

Reference to the energy net module.

\ No newline at end of file diff --git a/obj/projectile/floating_blade.html b/obj/projectile/floating_blade.html new file mode 100644 index 0000000000000..5ba8b8e457ea9 --- /dev/null +++ b/obj/projectile/floating_blade.html @@ -0,0 +1 @@ +/obj/projectile/floating_blade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

floating_blade

Vars

outline_colorColor applied as an outline filter on init

Var Details

outline_color

Color applied as an outline filter on init

\ No newline at end of file diff --git a/obj/projectile/hallucination.html b/obj/projectile/hallucination.html new file mode 100644 index 0000000000000..6a523b490d899 --- /dev/null +++ b/obj/projectile/hallucination.html @@ -0,0 +1 @@ +/obj/projectile/hallucination - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hallucination

Hallucinated projectiles.

Vars

fake_bulletThe image that represents our projectile itself
parentOur parent hallucination that's created us

Procs

apply_effect_to_hallucinatorCalled when the hallucinator themselves are hit by the fake projectile
on_mob_hitCalled when a mob is hit by the fake projectile
parent_deletingSignal proc for COMSIG_QDELETING, if our associated hallucination deletes, we need to clean up
spawn_bloodCalled after a mob is hit by the fake projectile, and our fake projectile is of brute type, to create fake blood
spawn_hitCalled with a non-mob atom was hit by our fake projectile, or a mob was hit and our damge type is not brute

Var Details

fake_bullet

The image that represents our projectile itself

parent

Our parent hallucination that's created us

Proc Details

apply_effect_to_hallucinator

Called when the hallucinator themselves are hit by the fake projectile

on_mob_hit

Called when a mob is hit by the fake projectile

parent_deleting

Signal proc for COMSIG_QDELETING, if our associated hallucination deletes, we need to clean up

spawn_blood

Called after a mob is hit by the fake projectile, and our fake projectile is of brute type, to create fake blood

spawn_hit

Called with a non-mob atom was hit by our fake projectile, or a mob was hit and our damge type is not brute

\ No newline at end of file diff --git a/obj/projectile/hook.html b/obj/projectile/hook.html new file mode 100644 index 0000000000000..e067943955e74 --- /dev/null +++ b/obj/projectile/hook.html @@ -0,0 +1 @@ +/obj/projectile/hook - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hook

Vars

initial_chainThe chain we send out while we are in motion, referred to as "initial" to not get confused with the chain we use to reel the victim in.

Var Details

initial_chain

The chain we send out while we are in motion, referred to as "initial" to not get confused with the chain we use to reel the victim in.

\ No newline at end of file diff --git a/obj/projectile/kiss.html b/obj/projectile/kiss.html new file mode 100644 index 0000000000000..d8797bf2caca0 --- /dev/null +++ b/obj/projectile/kiss.html @@ -0,0 +1,5 @@ +/obj/projectile/kiss - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

kiss

Procs

harmless_on_hitTo get around shielded modsuits & such being set off by kisses when they shouldn't, we take a page from hallucination projectiles +and simply fake our on hit effects. This lets kisses remain incorporeal without having to make some new trait for this one niche situation. +This fake hit only happens if we can deal damage and if we hit a living thing. Otherwise, we just do normal on hit effects.

Proc Details

harmless_on_hit

To get around shielded modsuits & such being set off by kisses when they shouldn't, we take a page from hallucination projectiles +and simply fake our on hit effects. This lets kisses remain incorporeal without having to make some new trait for this one niche situation. +This fake hit only happens if we can deal damage and if we hit a living thing. Otherwise, we just do normal on hit effects.

\ No newline at end of file diff --git a/obj/projectile/magic.html b/obj/projectile/magic.html new file mode 100644 index 0000000000000..bc4dc7c670180 --- /dev/null +++ b/obj/projectile/magic.html @@ -0,0 +1 @@ +/obj/projectile/magic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

magic

Vars

antimagic_charge_costdetermines the drain cost on the antimagic item
antimagic_flagsdetermines what type of antimagic can block the spell projectile

Var Details

antimagic_charge_cost

determines the drain cost on the antimagic item

antimagic_flags

determines what type of antimagic can block the spell projectile

\ No newline at end of file diff --git a/obj/projectile/magic/aoe.html b/obj/projectile/magic/aoe.html new file mode 100644 index 0000000000000..d3269e481e1ad --- /dev/null +++ b/obj/projectile/magic/aoe.html @@ -0,0 +1 @@ +/obj/projectile/magic/aoe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

aoe

Gives magic projectiles an area of effect radius that will bump into any nearby mobs

Vars

can_only_hit_targetWhether our projectile will only be able to hit the original target / clicked on atom
trailWhether our projectile leaves a trail behind it as it moves.
trail_iconThe icon the trail uses.
trail_icon_stateThe icon state the trail uses.
trail_lifespanThe duration of the trail before deleting.
trigger_rangeThe AOE radius that the projectile will trigger on people.

Procs

create_trailCreates and handles the trail that follows the projectile.

Var Details

can_only_hit_target

Whether our projectile will only be able to hit the original target / clicked on atom

trail

Whether our projectile leaves a trail behind it as it moves.

trail_icon

The icon the trail uses.

trail_icon_state

The icon state the trail uses.

trail_lifespan

The duration of the trail before deleting.

trigger_range

The AOE radius that the projectile will trigger on people.

Proc Details

create_trail

Creates and handles the trail that follows the projectile.

\ No newline at end of file diff --git a/obj/projectile/magic/aoe/lightning.html b/obj/projectile/magic/aoe/lightning.html new file mode 100644 index 0000000000000..3d3b12f9f43ea --- /dev/null +++ b/obj/projectile/magic/aoe/lightning.html @@ -0,0 +1 @@ +/obj/projectile/magic/aoe/lightning - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lightning

Vars

chainA reference to the chain beam between the caster and the projectile
zap_flagsThe flags of the zap itself when it electrocutes someone
zap_powerThe power of the zap itself when it electrocutes someone
zap_rangeThe range of the zap itself when it electrocutes someone

Var Details

chain

A reference to the chain beam between the caster and the projectile

zap_flags

The flags of the zap itself when it electrocutes someone

zap_power

The power of the zap itself when it electrocutes someone

zap_range

The range of the zap itself when it electrocutes someone

\ No newline at end of file diff --git a/obj/projectile/magic/arcane_barrage/bloodsucker.html b/obj/projectile/magic/arcane_barrage/bloodsucker.html new file mode 100644 index 0000000000000..10de0d5ccd928 --- /dev/null +++ b/obj/projectile/magic/arcane_barrage/bloodsucker.html @@ -0,0 +1,4 @@ +/obj/projectile/magic/arcane_barrage/bloodsucker - /tg/ Station 13
/tg/ Station 13 - Modules - Types

bloodsucker

# Blood Bolt
+
+This is the projectile this Power will fire.
+
\ No newline at end of file diff --git a/obj/projectile/magic/change.html b/obj/projectile/magic/change.html new file mode 100644 index 0000000000000..65aa2607e9fd0 --- /dev/null +++ b/obj/projectile/magic/change.html @@ -0,0 +1 @@ +/obj/projectile/magic/change - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

change

Vars

set_wabbajack_changeflagsIf set, this projectile will only pass certain changeflags to wabbajack
set_wabbajack_effectIf set, this projectile will only do a certain wabbajack effect

Var Details

set_wabbajack_changeflags

If set, this projectile will only pass certain changeflags to wabbajack

set_wabbajack_effect

If set, this projectile will only do a certain wabbajack effect

\ No newline at end of file diff --git a/obj/projectile/magic/fireball.html b/obj/projectile/magic/fireball.html new file mode 100644 index 0000000000000..fb73f1a36ed54 --- /dev/null +++ b/obj/projectile/magic/fireball.html @@ -0,0 +1 @@ +/obj/projectile/magic/fireball - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fireball

Vars

exp_fireFire radius of the fireball
exp_flashFlash radius of the fireball
exp_heavyHeavy explosion range of the fireball
exp_lightLight explosion range of the fireball

Var Details

exp_fire

Fire radius of the fireball

exp_flash

Flash radius of the fireball

exp_heavy

Heavy explosion range of the fireball

exp_light

Light explosion range of the fireball

\ No newline at end of file diff --git a/obj/projectile/magic/midas_round.html b/obj/projectile/magic/midas_round.html new file mode 100644 index 0000000000000..03ebbf0d963fa --- /dev/null +++ b/obj/projectile/magic/midas_round.html @@ -0,0 +1 @@ +/obj/projectile/magic/midas_round - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

midas_round

Vars

gold_chargeThe gold charge in this pellet

Var Details

gold_charge

The gold charge in this pellet

\ No newline at end of file diff --git a/obj/projectile/magic/star_ball.html b/obj/projectile/magic/star_ball.html new file mode 100644 index 0000000000000..ea1c85e17c92b --- /dev/null +++ b/obj/projectile/magic/star_ball.html @@ -0,0 +1 @@ +/obj/projectile/magic/star_ball - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

star_ball

Vars

explosion_effectEffect for when the ball hits something
star_mark_rangeThe range at which people will get marked with a star mark.

Var Details

explosion_effect

Effect for when the ball hits something

star_mark_range

The range at which people will get marked with a star mark.

\ No newline at end of file diff --git a/obj/projectile/moon_parade.html b/obj/projectile/moon_parade.html new file mode 100644 index 0000000000000..69d397789a5d9 --- /dev/null +++ b/obj/projectile/moon_parade.html @@ -0,0 +1 @@ +/obj/projectile/moon_parade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

moon_parade

Vars

soundlooplooping sound datum for our projectile.

Var Details

soundloop

looping sound datum for our projectile.

\ No newline at end of file diff --git a/obj/projectile/organ.html b/obj/projectile/organ.html new file mode 100644 index 0000000000000..274bf54dfcbd0 --- /dev/null +++ b/obj/projectile/organ.html @@ -0,0 +1 @@ +/obj/projectile/organ - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

organ

Vars

organA reference to the organ we "are".

Var Details

organ

A reference to the organ we "are".

\ No newline at end of file diff --git a/obj/projectile/sneeze.html b/obj/projectile/sneeze.html new file mode 100644 index 0000000000000..49d36df4a1337 --- /dev/null +++ b/obj/projectile/sneeze.html @@ -0,0 +1 @@ +/obj/projectile/sneeze - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sneeze

Sneeze projectile launched by sneezing. gross

Vars

sneezie_callbackCall this when we hit something

Var Details

sneezie_callback

Call this when we hit something

\ No newline at end of file diff --git a/obj/projectile/temp/watcher.html b/obj/projectile/temp/watcher.html new file mode 100644 index 0000000000000..283a8d4939401 --- /dev/null +++ b/obj/projectile/temp/watcher.html @@ -0,0 +1 @@ +/obj/projectile/temp/watcher - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

watcher

Chilling projectile, hurts and slows you down

Procs

apply_statusApply an additional on-hit effect

Proc Details

apply_status

Apply an additional on-hit effect

\ No newline at end of file diff --git a/obj/projectile/tentacle.html b/obj/projectile/tentacle.html new file mode 100644 index 0000000000000..41679afdcc86a --- /dev/null +++ b/obj/projectile/tentacle.html @@ -0,0 +1 @@ +/obj/projectile/tentacle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tentacle

Vars

fire_modifiersClick params that were used to fire the tentacle shot

Var Details

fire_modifiers

Click params that were used to fire the tentacle shot

\ No newline at end of file diff --git a/obj/projectile/tether.html b/obj/projectile/tether.html new file mode 100644 index 0000000000000..94fdf991de48a --- /dev/null +++ b/obj/projectile/tether.html @@ -0,0 +1 @@ +/obj/projectile/tether - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tether

Vars

last_turfLast turf that we passed before impact
lineReference to the beam following the projectile.

Var Details

last_turf

Last turf that we passed before impact

line

Reference to the beam following the projectile.

\ No newline at end of file diff --git a/obj/reality_tear.html b/obj/reality_tear.html new file mode 100644 index 0000000000000..a4c9bbf0569bf --- /dev/null +++ b/obj/reality_tear.html @@ -0,0 +1 @@ +/obj/reality_tear - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

reality_tear

Tear in the Fabric of Reality

Vars

collapse_spawn_timeTime before we begin our bagulo spawn
singularity_consume_rangeRange that our singularity component consumes objects
singularity_grav_pullRanges that the singularity pulls objects

Var Details

collapse_spawn_time

Time before we begin our bagulo spawn

singularity_consume_range

Range that our singularity component consumes objects

singularity_grav_pull

Ranges that the singularity pulls objects

\ No newline at end of file diff --git a/obj/singularity.html b/obj/singularity.html new file mode 100644 index 0000000000000..62a0ec722c218 --- /dev/null +++ b/obj/singularity.html @@ -0,0 +1,3 @@ +/obj/singularity - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

singularity

The gravitational singularity

Vars

allowed_sizeCurrent allowed size for the singulo
collapsingIs the black hole collapsing into nothing
consumed_supermatterIf the singularity has eaten a supermatter shard and can go to stage six
current_sizeCurrent singularity size, from 1 to 6
dissipateDo we lose energy over time?
dissipate_delayHow long should it take for us to dissipate in seconds?
dissipate_strengthHow much energy do we lose every dissipate_delay?
energyHow strong are we?
event_chanceProb for event each tick
ghost_notification_messageWhat the game tells ghosts when you make one
maximum_stagemaximum size this singuloth can get to.
move_selfCan i move by myself?
singularity_componentThe singularity component itself. +A weak ref in case an admin removes the component to preserve the functionality.
singularity_component_typetype of singularity component made
singularity_icon_variantthe prepended string to the icon state (singularity_s1, dark_matter_s1, etc)
time_since_actHow long it's been since the singulo last acted, in seconds
time_since_last_dissipiationHow long its been (in seconds) since the last dissipation

Var Details

allowed_size

Current allowed size for the singulo

collapsing

Is the black hole collapsing into nothing

consumed_supermatter

If the singularity has eaten a supermatter shard and can go to stage six

current_size

Current singularity size, from 1 to 6

dissipate

Do we lose energy over time?

dissipate_delay

How long should it take for us to dissipate in seconds?

dissipate_strength

How much energy do we lose every dissipate_delay?

energy

How strong are we?

event_chance

Prob for event each tick

ghost_notification_message

What the game tells ghosts when you make one

maximum_stage

maximum size this singuloth can get to.

move_self

Can i move by myself?

singularity_component

The singularity component itself. +A weak ref in case an admin removes the component to preserve the functionality.

singularity_component_type

type of singularity component made

singularity_icon_variant

the prepended string to the icon state (singularity_s1, dark_matter_s1, etc)

time_since_act

How long it's been since the singulo last acted, in seconds

time_since_last_dissipiation

How long its been (in seconds) since the last dissipation

\ No newline at end of file diff --git a/obj/singularity/dark_matter.html b/obj/singularity/dark_matter.html new file mode 100644 index 0000000000000..bc3480d229460 --- /dev/null +++ b/obj/singularity/dark_matter.html @@ -0,0 +1 @@ +/obj/singularity/dark_matter - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

dark_matter

This type of singularity cannot grow as big, but it constantly hunts down living targets.

Vars

initial_explosion_immunityto avoid cases of the singuloth getting blammed out of existence by the very meteor it rode in on...

Var Details

initial_explosion_immunity

to avoid cases of the singuloth getting blammed out of existence by the very meteor it rode in on...

\ No newline at end of file diff --git a/obj/structure.html b/obj/structure.html new file mode 100644 index 0000000000000..2bf07faa4f952 --- /dev/null +++ b/obj/structure.html @@ -0,0 +1 @@ +/obj/structure - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

structure

Inert structures, such as girders, machine frames, and crates/lockers.

Procs

smash_and_injureFor when a mob comes flying through the window, smash it and damage the mob

Proc Details

smash_and_injure

For when a mob comes flying through the window, smash it and damage the mob

\ No newline at end of file diff --git a/obj/structure/ai_core.html b/obj/structure/ai_core.html new file mode 100644 index 0000000000000..307d941300f37 --- /dev/null +++ b/obj/structure/ai_core.html @@ -0,0 +1 @@ +/obj/structure/ai_core - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ai_core

Vars

remote_aionly used in cases of AIs piloting mechs or shunted malf AIs, possible later use cases

Procs

suicide_checkQuick proc to call to see if the brainmob inside of us has suicided. Returns TRUE if we have, FALSE in any other scenario.

Var Details

remote_ai

only used in cases of AIs piloting mechs or shunted malf AIs, possible later use cases

Proc Details

suicide_check

Quick proc to call to see if the brainmob inside of us has suicided. Returns TRUE if we have, FALSE in any other scenario.

\ No newline at end of file diff --git a/obj/structure/alien/egg.html b/obj/structure/alien/egg.html new file mode 100644 index 0000000000000..574256c865820 --- /dev/null +++ b/obj/structure/alien/egg.html @@ -0,0 +1 @@ +/obj/structure/alien/egg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

egg

Vars

childRef to the hugger within.
proximity_monitorProximity monitor associated with this atom, needed for proximity checks.

Var Details

child

Ref to the hugger within.

proximity_monitor

Proximity monitor associated with this atom, needed for proximity checks.

\ No newline at end of file diff --git a/obj/structure/alien/resin/flower_bud.html b/obj/structure/alien/resin/flower_bud.html new file mode 100644 index 0000000000000..d9bac8b1f38e1 --- /dev/null +++ b/obj/structure/alien/resin/flower_bud.html @@ -0,0 +1,6 @@ +/obj/structure/alien/resin/flower_bud - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

flower_bud

Kudzu Flower Bud

+

A flower created by flowering kudzu which spawns a venus human trap after a certain amount of time has passed.

+

A flower created by kudzu with the flowering mutation. Spawns a venus human trap after 2 minutes under normal circumstances. +Also spawns 4 vines going out in diagonal directions from the bud. Any living creature not aligned with plants is damaged by these vines. +Once it grows a venus human trap, the bud itself will destroy itself. +Flower bud structure that ghost role spawns, actual spawn logic handled by /obj/effect/mob_spawn/ghost_role/venus_human_trap

Vars

countdownThe countdown ghosts see to when the plant will hatch
finish_timeUsed by countdown to check time, this is when the timer will complete and the venus trap will spawn.
growth_timeThe amount of time it takes to create a venus human trap.
spawnerThe spawner that actually handles spawning the ghost role in

Procs

bear_fruitTells the spawner that the venus human trap is ready

Var Details

countdown

The countdown ghosts see to when the plant will hatch

finish_time

Used by countdown to check time, this is when the timer will complete and the venus trap will spawn.

growth_time

The amount of time it takes to create a venus human trap.

spawner

The spawner that actually handles spawning the ghost role in

Proc Details

bear_fruit

Tells the spawner that the venus human trap is ready

\ No newline at end of file diff --git a/obj/structure/alien/weeds.html b/obj/structure/alien/weeds.html new file mode 100644 index 0000000000000..4f4b1fcab7c97 --- /dev/null +++ b/obj/structure/alien/weeds.html @@ -0,0 +1,5 @@ +/obj/structure/alien/weeds - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

weeds

Vars

blacklisted_turfsthe list of turfs that the weeds will not be able to grow over
node_rangethe range of the weeds going to be affected by the node
parent_nodethe parent node that will determine if we grow or die

Procs

after_parent_destroyedCalled when the parent node is destroyed
do_qdelCalled to delete the weed
find_new_parentCalled when trying to find a new parent after our previous parent died +Will return false if it can't find a new_parent +Will return the new parent if it can find one
set_base_iconRandomizes the weeds' starting icon, gets redefined by children for them not to share the behavior.
try_expandCalled when the node is trying to grow/expand

Var Details

blacklisted_turfs

the list of turfs that the weeds will not be able to grow over

node_range

the range of the weeds going to be affected by the node

parent_node

the parent node that will determine if we grow or die

Proc Details

after_parent_destroyed

Called when the parent node is destroyed

do_qdel

Called to delete the weed

find_new_parent

Called when trying to find a new parent after our previous parent died +Will return false if it can't find a new_parent +Will return the new parent if it can find one

set_base_icon

Randomizes the weeds' starting icon, gets redefined by children for them not to share the behavior.

try_expand

Called when the node is trying to grow/expand

\ No newline at end of file diff --git a/obj/structure/alien/weeds/node.html b/obj/structure/alien/weeds/node.html new file mode 100644 index 0000000000000..8188997f0037f --- /dev/null +++ b/obj/structure/alien/weeds/node.html @@ -0,0 +1 @@ +/obj/structure/alien/weeds/node - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

node

Vars

lon_rangethe range of the light for the node
maximum_growtimethe maximum time it takes for another weed to spread from this one
minimum_growtimethe minimum time it takes for another weed to spread from this one

Var Details

lon_range

the range of the light for the node

maximum_growtime

the maximum time it takes for another weed to spread from this one

minimum_growtime

the minimum time it takes for another weed to spread from this one

\ No newline at end of file diff --git a/obj/structure/altar_of_gods.html b/obj/structure/altar_of_gods.html new file mode 100644 index 0000000000000..42ec8cfe430cb --- /dev/null +++ b/obj/structure/altar_of_gods.html @@ -0,0 +1 @@ +/obj/structure/altar_of_gods - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

altar_of_gods

Vars

sect_to_altarAvoids having to check global everytime by referencing it locally.

Var Details

sect_to_altar

Avoids having to check global everytime by referencing it locally.

\ No newline at end of file diff --git a/obj/structure/antfarm.html b/obj/structure/antfarm.html new file mode 100644 index 0000000000000..8ae6bc178d5cf --- /dev/null +++ b/obj/structure/antfarm.html @@ -0,0 +1 @@ +/obj/structure/antfarm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

antfarm

Vars

ant_chancethe chance for the farm to get ants
has_antsIf the farm is occupied by ants
ore_listthe list of ore-y stuff that ants can drag up from deep within their nest

Var Details

ant_chance

the chance for the farm to get ants

has_ants

If the farm is occupied by ants

ore_list

the list of ore-y stuff that ants can drag up from deep within their nest

\ No newline at end of file diff --git a/obj/structure/aquarium.html b/obj/structure/aquarium.html new file mode 100644 index 0000000000000..37890cdfb6a11 --- /dev/null +++ b/obj/structure/aquarium.html @@ -0,0 +1,3 @@ +/obj/structure/aquarium - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

aquarium

Vars

current_beautyVar used to keep track of the current beauty of the aquarium, which can be throughfully changed by aquarium content.
feeding_intervalWhile the feed storage is not empty, this is the interval which the fish are fed.
icon_prefixThe icon state is used for mapping so mappers know what they're placing. This prefixes the real icon used in game. +For an example, "aquarium" gives the base sprite of "aquarium_base", the glass is "aquarium_glass_water", and so on.
last_feedingThe last time fishes were fed by the acquarium itsef.
reproduction_and_growthCan fish reproduce in this quarium.
tracked_fish_by_typeobj/item/fish in the aquarium, sorted by type - does not include things with aquarium visuals that are not fish
used_layersCurrent layers in use by aquarium contents

Procs

admireApply mood bonus depending on aquarium status
get_fishesReturns tracked_fish_by_type but flattened and without the items in the blacklist, also shuffled if shuffle is TRUE.
try_to_put_mob_inTries to put mob pulled by the user in the aquarium after a delay

Var Details

current_beauty

Var used to keep track of the current beauty of the aquarium, which can be throughfully changed by aquarium content.

feeding_interval

While the feed storage is not empty, this is the interval which the fish are fed.

icon_prefix

The icon state is used for mapping so mappers know what they're placing. This prefixes the real icon used in game. +For an example, "aquarium" gives the base sprite of "aquarium_base", the glass is "aquarium_glass_water", and so on.

last_feeding

The last time fishes were fed by the acquarium itsef.

reproduction_and_growth

Can fish reproduce in this quarium.

tracked_fish_by_type

obj/item/fish in the aquarium, sorted by type - does not include things with aquarium visuals that are not fish

used_layers

Current layers in use by aquarium contents

Proc Details

admire

Apply mood bonus depending on aquarium status

get_fishes

Returns tracked_fish_by_type but flattened and without the items in the blacklist, also shuffled if shuffle is TRUE.

try_to_put_mob_in

Tries to put mob pulled by the user in the aquarium after a delay

\ No newline at end of file diff --git a/obj/structure/aquarium/crab.html b/obj/structure/aquarium/crab.html new file mode 100644 index 0000000000000..f360e5f13142d --- /dev/null +++ b/obj/structure/aquarium/crab.html @@ -0,0 +1 @@ +/obj/structure/aquarium/crab - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

crab

Vars

crabbieOur test subject

Var Details

crabbie

Our test subject

\ No newline at end of file diff --git a/obj/structure/barricade.html b/obj/structure/barricade.html new file mode 100644 index 0000000000000..c6c1c2ca70958 --- /dev/null +++ b/obj/structure/barricade.html @@ -0,0 +1 @@ +/obj/structure/barricade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

barricade

Procs

make_debrisSpawn debris & stuff upon deconstruction

Proc Details

make_debris

Spawn debris & stuff upon deconstruction

\ No newline at end of file diff --git a/obj/structure/bed.html b/obj/structure/bed.html new file mode 100644 index 0000000000000..9b3ddd784fc6c --- /dev/null +++ b/obj/structure/bed.html @@ -0,0 +1 @@ +/obj/structure/bed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bed

Beds

Vars

build_stack_amountHow many mats to drop when deconstructed
build_stack_typeWhat material this bed is made of
can_deconstructIf this bed can be deconstructed using a wrench
elevationMobs standing on it are nudged up by this amount. Also used to align the person back when buckled to it after init.
left_headrest_dirsDirections in which the bed has its headrest on the left side.

Var Details

build_stack_amount

How many mats to drop when deconstructed

build_stack_type

What material this bed is made of

can_deconstruct

If this bed can be deconstructed using a wrench

elevation

Mobs standing on it are nudged up by this amount. Also used to align the person back when buckled to it after init.

left_headrest_dirs

Directions in which the bed has its headrest on the left side.

\ No newline at end of file diff --git a/obj/structure/bed/dogbed.html b/obj/structure/bed/dogbed.html new file mode 100644 index 0000000000000..a9c4e3b672a74 --- /dev/null +++ b/obj/structure/bed/dogbed.html @@ -0,0 +1 @@ +/obj/structure/bed/dogbed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

dogbed

Dog bed

Procs

update_ownerUsed to set the owner of a dogbed, returns FALSE if called on an owned bed or an invalid one, TRUE if the possesion succeeds

Proc Details

update_owner

Used to set the owner of a dogbed, returns FALSE if called on an owned bed or an invalid one, TRUE if the possesion succeeds

\ No newline at end of file diff --git a/obj/structure/bed/double.html b/obj/structure/bed/double.html new file mode 100644 index 0000000000000..ddfc94e467d1b --- /dev/null +++ b/obj/structure/bed/double.html @@ -0,0 +1 @@ +/obj/structure/bed/double - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

double

Vars

goldilocksThe mob who buckled to this bed second, to avoid other mobs getting pixel-shifted before he unbuckles.

Var Details

goldilocks

The mob who buckled to this bed second, to avoid other mobs getting pixel-shifted before he unbuckles.

\ No newline at end of file diff --git a/obj/structure/bed/medical.html b/obj/structure/bed/medical.html new file mode 100644 index 0000000000000..9d50945462854 --- /dev/null +++ b/obj/structure/bed/medical.html @@ -0,0 +1 @@ +/obj/structure/bed/medical - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

medical

Medical beds

Vars

foldable_typeThe item it spawns when it's folded up.

Var Details

foldable_type

The item it spawns when it's folded up.

\ No newline at end of file diff --git a/obj/structure/bedsheetbin.html b/obj/structure/bedsheetbin.html new file mode 100644 index 0000000000000..0aa131cff5ebd --- /dev/null +++ b/obj/structure/bedsheetbin.html @@ -0,0 +1 @@ +/obj/structure/bedsheetbin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bedsheetbin

Vars

amountThe number of bedsheets in the bin
hiddenThe object hiddin within the bedsheet bin
sheetsA list of actual sheets within the bin

Var Details

amount

The number of bedsheets in the bin

hidden

The object hiddin within the bedsheet bin

sheets

A list of actual sheets within the bin

\ No newline at end of file diff --git a/obj/structure/blob.html b/obj/structure/blob.html new file mode 100644 index 0000000000000..04b557e2bd0eb --- /dev/null +++ b/obj/structure/blob.html @@ -0,0 +1 @@ +/obj/structure/blob - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

blob

Vars

atmosblockIf the blob blocks atmos and heat spread
brute_resistMultiplies brute damage by this
fire_resistMultiplies burn damage by this
heal_timestampwe got healed when?
health_regenhow much health this blob regens when pulsed
ignore_syncmesh_shareOnly used by the synchronous mesh strain. If set to true, these blobs won't share or receive damage taken with others.
point_returnHow many points the blob gets back when it removes a blob of that type. If less than 0, blob cannot be removed.
pulse_timestampWe got pulsed when?

Var Details

atmosblock

If the blob blocks atmos and heat spread

brute_resist

Multiplies brute damage by this

fire_resist

Multiplies burn damage by this

heal_timestamp

we got healed when?

health_regen

how much health this blob regens when pulsed

ignore_syncmesh_share

Only used by the synchronous mesh strain. If set to true, these blobs won't share or receive damage taken with others.

point_return

How many points the blob gets back when it removes a blob of that type. If less than 0, blob cannot be removed.

pulse_timestamp

We got pulsed when?

\ No newline at end of file diff --git a/obj/structure/blob/special.html b/obj/structure/blob/special.html new file mode 100644 index 0000000000000..214a741937329 --- /dev/null +++ b/obj/structure/blob/special.html @@ -0,0 +1 @@ +/obj/structure/blob/special - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

special

Vars

claim_rangeThe radius inside which (previously dead) blob tiles are 'claimed' again by the pulsing overmind. Very rarely used.
expand_rangeThe radius up to which this special structure naturally grows normal blobs.
pulse_rangeThe radius inside which blobs are pulsed by this overmind. Does stuff like expanding, making blob spores from factories, make resources from nodes etc.
reflector_reinforce_rangeRange this blob free upgrades to reflector blobs at: for the core, and for strains
strong_reinforce_rangeRange this blob free upgrades to strong blobs at: for the core, and for strains

Var Details

claim_range

The radius inside which (previously dead) blob tiles are 'claimed' again by the pulsing overmind. Very rarely used.

expand_range

The radius up to which this special structure naturally grows normal blobs.

pulse_range

The radius inside which blobs are pulsed by this overmind. Does stuff like expanding, making blob spores from factories, make resources from nodes etc.

reflector_reinforce_range

Range this blob free upgrades to reflector blobs at: for the core, and for strains

strong_reinforce_range

Range this blob free upgrades to strong blobs at: for the core, and for strains

\ No newline at end of file diff --git a/obj/structure/blob/special/factory.html b/obj/structure/blob/special/factory.html new file mode 100644 index 0000000000000..42c99967a6680 --- /dev/null +++ b/obj/structure/blob/special/factory.html @@ -0,0 +1 @@ +/obj/structure/blob/special/factory - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

factory

Vars

blobbernautIts Blobbernaut, if it has spawned any.
is_creating_blobbernautUsed in blob/powers.dm, checks if it's already trying to spawn a blobbernaut to prevent issues.
max_sporesHow many spores this factory can have.
spores_and_zombiesThe list of spores and zombies

Procs

assign_blobbernautProduce a blobbernaut
on_blobbernaut_deathWhen our brave soldier dies, reset our max integrity
on_spore_diedWhen a spore or zombie dies reset our spawn cooldown so we don't instantly replace it
on_spore_lostWhen a spore is deleted remove it from our list
on_zombie_createdWhen a spore makes a zombie add it to our mobs list
register_mobTracks the existence of a mob in our mobs list

Var Details

blobbernaut

Its Blobbernaut, if it has spawned any.

is_creating_blobbernaut

Used in blob/powers.dm, checks if it's already trying to spawn a blobbernaut to prevent issues.

max_spores

How many spores this factory can have.

spores_and_zombies

The list of spores and zombies

Proc Details

assign_blobbernaut

Produce a blobbernaut

on_blobbernaut_death

When our brave soldier dies, reset our max integrity

on_spore_died

When a spore or zombie dies reset our spawn cooldown so we don't instantly replace it

on_spore_lost

When a spore is deleted remove it from our list

on_zombie_created

When a spore makes a zombie add it to our mobs list

register_mob

Tracks the existence of a mob in our mobs list

\ No newline at end of file diff --git a/obj/structure/bloodsucker.html b/obj/structure/bloodsucker.html new file mode 100644 index 0000000000000..5a994105868bc --- /dev/null +++ b/obj/structure/bloodsucker.html @@ -0,0 +1 @@ +/obj/structure/bloodsucker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bloodsucker

Vars

ownerWho owns this structure?

Procs

boltThis handles bolting down the structure.
unboltThis handles unbolting of the structure.

Var Details

owner

Who owns this structure?

Proc Details

bolt

This handles bolting down the structure.

unbolt

This handles unbolting of the structure.

\ No newline at end of file diff --git a/obj/structure/bloodsucker/ghoulrack.html b/obj/structure/bloodsucker/ghoulrack.html new file mode 100644 index 0000000000000..64740627bd152 --- /dev/null +++ b/obj/structure/bloodsucker/ghoulrack.html @@ -0,0 +1,6 @@ +/obj/structure/bloodsucker/ghoulrack - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ghoulrack

Vars

convert_progressResets on each new character to be added to the chair. Some effects should lower it...
disloyalty_confirmMindshielded and Antagonists willingly have to accept you as their Master.
disloyalty_offeredPrevents popup spam.

Procs

attach_victimAttempts to buckle target into the ghoulrack
attack_hand_secondaryAttempt Release (Owner vs Non Owner)
do_disloyaltyOffer them the oppertunity to join now.
torture_victimTorture steps:
user_unbuckle_mobAttempt Unbuckle

Var Details

convert_progress

Resets on each new character to be added to the chair. Some effects should lower it...

disloyalty_confirm

Mindshielded and Antagonists willingly have to accept you as their Master.

disloyalty_offered

Prevents popup spam.

Proc Details

attach_victim

Attempts to buckle target into the ghoulrack

attack_hand_secondary

Attempt Release (Owner vs Non Owner)

do_disloyalty

Offer them the oppertunity to join now.

torture_victim

Torture steps:

+
    +
  • Tick Down Conversion from 3 to 0
  • +
  • Break mindshielding/antag (on approve)
  • +
  • Ghoulize target
  • +

user_unbuckle_mob

Attempt Unbuckle

\ No newline at end of file diff --git a/obj/structure/bodycontainer.html b/obj/structure/bodycontainer.html new file mode 100644 index 0000000000000..31ce0b18c66b2 --- /dev/null +++ b/obj/structure/bodycontainer.html @@ -0,0 +1 @@ +/obj/structure/bodycontainer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bodycontainer

Vars

breakout_message_cooldownCooldown between breakout msesages.
connectedThe morgue tray this container will open/close to put/take things in/out.
lockedBoolean on whether we're locked and will not allow the tray to be opened.
open_close_cdCooldown between being able to slide the tray in or out.

Procs

animate_slide_inSlides the passed object into the morgue tray from the passed turf.
animate_slide_outSlides the passed object out of the morgue tray.

Var Details

breakout_message_cooldown

Cooldown between breakout msesages.

connected

The morgue tray this container will open/close to put/take things in/out.

locked

Boolean on whether we're locked and will not allow the tray to be opened.

open_close_cd

Cooldown between being able to slide the tray in or out.

Proc Details

animate_slide_in

Slides the passed object into the morgue tray from the passed turf.

animate_slide_out

Slides the passed object out of the morgue tray.

\ No newline at end of file diff --git a/obj/structure/bodycontainer/morgue.html b/obj/structure/bodycontainer/morgue.html new file mode 100644 index 0000000000000..f6cf45e0cd7f1 --- /dev/null +++ b/obj/structure/bodycontainer/morgue.html @@ -0,0 +1 @@ +/obj/structure/bodycontainer/morgue - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

morgue

Vars

beep_cooldownThe minimum time between beeps.
beeperWhether or not this morgue beeps to alert parameds of revivable corpses.
cooling_rate_per_secondThe rate at which the internal air mixture cools
internal_airInternal air of this morgue, for cooling purposes.
minimum_temperatureMinimum temperature of the internal air mixture
morgue_stateWhether this morgue tray has revivables or not
next_beepThe cooldown to prevent this from spamming beeps.
radioreference to internal radio in the morgue trays.

Var Details

beep_cooldown

The minimum time between beeps.

beeper

Whether or not this morgue beeps to alert parameds of revivable corpses.

cooling_rate_per_second

The rate at which the internal air mixture cools

internal_air

Internal air of this morgue, for cooling purposes.

minimum_temperature

Minimum temperature of the internal air mixture

morgue_state

Whether this morgue tray has revivables or not

next_beep

The cooldown to prevent this from spamming beeps.

radio

reference to internal radio in the morgue trays.

\ No newline at end of file diff --git a/obj/structure/bonfire.html b/obj/structure/bonfire.html new file mode 100644 index 0000000000000..608498157732f --- /dev/null +++ b/obj/structure/bonfire.html @@ -0,0 +1,3 @@ +/obj/structure/bonfire - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bonfire

BONFIRES

+

Structure that makes a big old fire. You can add rods to construct a grill for grilling meat, or a stake for buckling people to the fire, +salem style. Keeping the fire on requires oxygen. You can dismantle the bonfire back into logs when it is unignited.

Vars

burn_iconicon for the bonfire while on. for a softer more burning embers icon, use "bonfire_warm"
burningis the bonfire lit?
burning_loopthe looping sound effect that is played while burning
grillif the bonfire has a grill attached
produces_smokeWhether or not this bonfire can cause pollution.

Var Details

burn_icon

icon for the bonfire while on. for a softer more burning embers icon, use "bonfire_warm"

burning

is the bonfire lit?

burning_loop

the looping sound effect that is played while burning

grill

if the bonfire has a grill attached

produces_smoke

Whether or not this bonfire can cause pollution.

\ No newline at end of file diff --git a/obj/structure/bookcase.html b/obj/structure/bookcase.html new file mode 100644 index 0000000000000..4fc50638d0f84 --- /dev/null +++ b/obj/structure/bookcase.html @@ -0,0 +1 @@ +/obj/structure/bookcase - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

bookcase

Vars

books_to_loadHow many random books to generate.
load_random_booksWhen enabled, books_to_load number of random books will be generated for this bookcase
random_categoryThe category of books to pick from when populating random books.

Procs

after_random_loadproc for doing things after a bookcase is randomly populated
load_shelfLoads the shelf, both by allowing it to generate random items, and by adding its contents to a list used by library machines

Var Details

books_to_load

How many random books to generate.

load_random_books

When enabled, books_to_load number of random books will be generated for this bookcase

random_category

The category of books to pick from when populating random books.

Proc Details

after_random_load

proc for doing things after a bookcase is randomly populated

load_shelf

Loads the shelf, both by allowing it to generate random items, and by adding its contents to a list used by library machines

\ No newline at end of file diff --git a/obj/structure/bookcase/random/fiction.html b/obj/structure/bookcase/random/fiction.html new file mode 100644 index 0000000000000..865262d1ecd9a --- /dev/null +++ b/obj/structure/bookcase/random/fiction.html @@ -0,0 +1 @@ +/obj/structure/bookcase/random/fiction - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fiction

Vars

chuuni_book_spawnedhave we spawned the chuuni granter

Var Details

chuuni_book_spawned

have we spawned the chuuni granter

\ No newline at end of file diff --git a/obj/structure/bookcase/random/reference.html b/obj/structure/bookcase/random/reference.html new file mode 100644 index 0000000000000..70af11e3c7436 --- /dev/null +++ b/obj/structure/bookcase/random/reference.html @@ -0,0 +1 @@ +/obj/structure/bookcase/random/reference - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

reference

Vars

ref_book_probChance to spawn a random manual book

Var Details

ref_book_prob

Chance to spawn a random manual book

\ No newline at end of file diff --git a/obj/structure/bookcase/random/reference/wizard.html b/obj/structure/bookcase/random/reference/wizard.html new file mode 100644 index 0000000000000..defa7c4e48458 --- /dev/null +++ b/obj/structure/bookcase/random/reference/wizard.html @@ -0,0 +1 @@ +/obj/structure/bookcase/random/reference/wizard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wizard

Vars

cheese_granter_spawnedWhether this shelf has spawned a cheese granter

Var Details

cheese_granter_spawned

Whether this shelf has spawned a cheese granter

\ No newline at end of file diff --git a/obj/structure/broken_flooring.html b/obj/structure/broken_flooring.html new file mode 100644 index 0000000000000..c166f31ecdf73 --- /dev/null +++ b/obj/structure/broken_flooring.html @@ -0,0 +1 @@ +/obj/structure/broken_flooring - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

broken_flooring

Vars

always_floorplanedo we always have FLOOR_PLANE even if we arent on plating?

Var Details

always_floorplane

do we always have FLOOR_PLANE even if we arent on plating?

\ No newline at end of file diff --git a/obj/structure/cable.html b/obj/structure/cable.html new file mode 100644 index 0000000000000..acb66b8eed64d --- /dev/null +++ b/obj/structure/cable.html @@ -0,0 +1 @@ +/obj/structure/cable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

cable

Procs

Connect_cableSet the linked indicator bitflags
Disconnect_cableClear the linked indicator bitflags

Proc Details

Connect_cable

Set the linked indicator bitflags

Disconnect_cable

Clear the linked indicator bitflags

\ No newline at end of file diff --git a/obj/structure/cable/multilayer.html b/obj/structure/cable/multilayer.html new file mode 100644 index 0000000000000..ab964eb5bd346 --- /dev/null +++ b/obj/structure/cable/multilayer.html @@ -0,0 +1 @@ +/obj/structure/cable/multilayer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

multilayer

multilayer cable to connect different layers

Procs

ReloadReset powernet in this hub.

Proc Details

Reload

Reset powernet in this hub.

\ No newline at end of file diff --git a/obj/structure/cannon.html b/obj/structure/cannon.html new file mode 100644 index 0000000000000..0592d5db1ba9f --- /dev/null +++ b/obj/structure/cannon.html @@ -0,0 +1 @@ +/obj/structure/cannon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cannon

Vars

anchorable_cannonwhether the cannon can be unwrenched from the ground.

Var Details

anchorable_cannon

whether the cannon can be unwrenched from the ground.

\ No newline at end of file diff --git a/obj/structure/carp_rift.html b/obj/structure/carp_rift.html new file mode 100644 index 0000000000000..bd983aa5433eb --- /dev/null +++ b/obj/structure/carp_rift.html @@ -0,0 +1,15 @@ +/obj/structure/carp_rift - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Carp Rift

The portals Space Dragon summons to bring carp onto the station.

+

The portals Space Dragon summons to bring carp onto the station. His main objective is to summon 3 of them and protect them from being destroyed. +The portals can summon sentient space carp in limited amounts. The portal also changes color based on whether or not a carp spawn is available. +Once it is fully charged, it becomes indestructible, and intermitently spawns non-sentient carp. It is still destroyed if Space Dragon dies.

Vars

carp_intervalThe interval for adding additional space carp spawns to the rift.
carp_storedHow many carp spawns it has available.
charge_stateCurrent charge state of the rift.
ckey_listA list of all the ckeys which have used this carp rift to spawn in as carps.
dragonA reference to the Space Dragon antag that created it.
gravity_auraGravity aura for the rift, makes all turfs nearby forced grav.
last_carp_incThe time since an extra carp was added to the ghost role spawning pool.
max_chargeThe maximum charge the rift can have.
time_chargedThe amount of time the rift has charged for.

Procs

summon_carpUsed to create carp controlled by ghosts when the option is available.
update_checkDoes a series of checks based on the portal's status.

Var Details

carp_interval

The interval for adding additional space carp spawns to the rift.

carp_stored

How many carp spawns it has available.

charge_state

Current charge state of the rift.

ckey_list

A list of all the ckeys which have used this carp rift to spawn in as carps.

dragon

A reference to the Space Dragon antag that created it.

gravity_aura

Gravity aura for the rift, makes all turfs nearby forced grav.

last_carp_inc

The time since an extra carp was added to the ghost role spawning pool.

max_charge

The maximum charge the rift can have.

time_charged

The amount of time the rift has charged for.

Proc Details

summon_carp

Used to create carp controlled by ghosts when the option is available.

+

Creates a carp for the ghost to control if we have a carp spawn available. +Gives them prompt to control a carp, and if our circumstances still allow if when they hit yes, spawn them in as a carp. +Also add them to the list of carps in Space Dragon's antgonist datum, so they'll be displayed as having assisted him on round end. +Arguments:

+
    +
  • mob/user - The ghost which will take control of the carp.
  • +

update_check

Does a series of checks based on the portal's status.

+

Performs a number of checks based on the current charge of the portal, and triggers various effects accordingly. +If the current charge is a multiple of carp_interval, add an extra carp spawn. +If we're halfway charged, announce to the crew our location in a CENTCOM announcement. +If we're fully charged, tell the crew we are, change our color to yellow, become invulnerable, and give Space Dragon the ability to make another rift, if he hasn't summoned 3 total.

\ No newline at end of file diff --git a/obj/structure/carving_block.html b/obj/structure/carving_block.html new file mode 100644 index 0000000000000..05ebf5f619849 --- /dev/null +++ b/obj/structure/carving_block.html @@ -0,0 +1 @@ +/obj/structure/carving_block - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

carving_block

Vars

completionstatue completion from 0 to 1.0
current_preset_typeCurrently chosen preset statue type
current_targetThe thing it will look like - Unmodified resulting statue appearance
greyscale_with_value_bumpHSV color filters parameters
target_appearance_with_filtersGreyscaled target with cutout filter

Procs

get_possible_statuesReturns a list of preset statues carvable from this block depending on the custom materials

Var Details

completion

statue completion from 0 to 1.0

current_preset_type

Currently chosen preset statue type

current_target

The thing it will look like - Unmodified resulting statue appearance

greyscale_with_value_bump

HSV color filters parameters

target_appearance_with_filters

Greyscaled target with cutout filter

Proc Details

get_possible_statues

Returns a list of preset statues carvable from this block depending on the custom materials

\ No newline at end of file diff --git a/obj/structure/cat_house.html b/obj/structure/cat_house.html new file mode 100644 index 0000000000000..4a1399de0f154 --- /dev/null +++ b/obj/structure/cat_house.html @@ -0,0 +1 @@ +/obj/structure/cat_house - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cat_house

Vars

resident_catcat residing in this house

Var Details

resident_cat

cat residing in this house

\ No newline at end of file diff --git a/obj/structure/chair.html b/obj/structure/chair.html new file mode 100644 index 0000000000000..5c1b7d4ed8874 --- /dev/null +++ b/obj/structure/chair.html @@ -0,0 +1 @@ +/obj/structure/chair - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chair

Vars

fishing_modifierHow much sitting on this chair influences fishing difficulty

Procs

MakeRotateThis proc adds the rotate component, overwrite this if you for some reason want to change some specific args.
electrify_selfallows each chair to request the electrified_buckle component with overlays that dont look ridiculous

Var Details

fishing_modifier

How much sitting on this chair influences fishing difficulty

Proc Details

MakeRotate

This proc adds the rotate component, overwrite this if you for some reason want to change some specific args.

electrify_self

allows each chair to request the electrified_buckle component with overlays that dont look ridiculous

\ No newline at end of file diff --git a/obj/structure/chair/bronze.html b/obj/structure/chair/bronze.html new file mode 100644 index 0000000000000..6b32ca8613fab --- /dev/null +++ b/obj/structure/chair/bronze.html @@ -0,0 +1 @@ +/obj/structure/chair/bronze - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

bronze

Vars

turnsTotal rotations made

Var Details

turns

Total rotations made

\ No newline at end of file diff --git a/obj/structure/chair/milking_machine.html b/obj/structure/chair/milking_machine.html new file mode 100644 index 0000000000000..0941872569b80 --- /dev/null +++ b/obj/structure/chair/milking_machine.html @@ -0,0 +1 @@ +/obj/structure/chair/milking_machine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

milking_machine

Vars

beakerWhat beaker is liquid being outputted to?
current_breastsWhat is the current breast organ of the buckled mob?
current_mobWhat human mob is currently buckled to the machine?
current_modeWhat mode is the pump currently on?
current_selected_organWhat organ is fluid being extracted from?
current_testiclesWhat is the current testicles organ of the buckled mob?
current_vaginaWhat is the current vagina organ of the buckled mob?
machine_colorWhat color is the machine currently set to?
pump_stateWhat state is the pump currently on? This is either MLIKING_PUMP_STATE_OFF or MLIKING_PUMP_STATE_ON

Var Details

beaker

What beaker is liquid being outputted to?

current_breasts

What is the current breast organ of the buckled mob?

current_mob

What human mob is currently buckled to the machine?

current_mode

What mode is the pump currently on?

current_selected_organ

What organ is fluid being extracted from?

current_testicles

What is the current testicles organ of the buckled mob?

current_vagina

What is the current vagina organ of the buckled mob?

machine_color

What color is the machine currently set to?

pump_state

What state is the pump currently on? This is either MLIKING_PUMP_STATE_OFF or MLIKING_PUMP_STATE_ON

\ No newline at end of file diff --git a/obj/structure/chair/pew.html b/obj/structure/chair/pew.html new file mode 100644 index 0000000000000..416784bd03458 --- /dev/null +++ b/obj/structure/chair/pew.html @@ -0,0 +1 @@ +/obj/structure/chair/pew - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

pew

Procs

MakeRotateThis proc adds the rotate component, overwrite this if you for some reason want to change some specific args.

Proc Details

MakeRotate

This proc adds the rotate component, overwrite this if you for some reason want to change some specific args.

\ No newline at end of file diff --git a/obj/structure/chair/shibari_stand.html b/obj/structure/chair/shibari_stand.html new file mode 100644 index 0000000000000..012fdfb8449d5 --- /dev/null +++ b/obj/structure/chair/shibari_stand.html @@ -0,0 +1 @@ +/obj/structure/chair/shibari_stand - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shibari_stand

Vars

current_mobobviously, this is for doing things to the currentmob
ropeeThe rope inside the stand, that's actually tying the person to it
shibari_rope_overlayOverlays for ropes

Var Details

current_mob

obviously, this is for doing things to the currentmob

ropee

The rope inside the stand, that's actually tying the person to it

shibari_rope_overlay

Overlays for ropes

\ No newline at end of file diff --git a/obj/structure/chair/sofa.html b/obj/structure/chair/sofa.html new file mode 100644 index 0000000000000..dfa3ac0b75f48 --- /dev/null +++ b/obj/structure/chair/sofa.html @@ -0,0 +1 @@ +/obj/structure/chair/sofa - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

sofa

Procs

attack_hand_secondaryLooking through pillows on sofas when rightclicked

Proc Details

attack_hand_secondary

Looking through pillows on sofas when rightclicked

\ No newline at end of file diff --git a/obj/structure/chair/x_stand.html b/obj/structure/chair/x_stand.html new file mode 100644 index 0000000000000..2dc35b20e4c0e --- /dev/null +++ b/obj/structure/chair/x_stand.html @@ -0,0 +1 @@ +/obj/structure/chair/x_stand - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

x_stand

Vars

current_mobWhat human is currently buckled in?
stand_stateWhat state is the stand currently in? This is here for sprites.
xstand_overlayWhat overlay is the stand using when stand_state is set to closed?

Var Details

current_mob

What human is currently buckled in?

stand_state

What state is the stand currently in? This is here for sprites.

xstand_overlay

What overlay is the stand using when stand_state is set to closed?

\ No newline at end of file diff --git a/obj/structure/checkoutmachine.html b/obj/structure/checkoutmachine.html new file mode 100644 index 0000000000000..fbe488b36ba0f --- /dev/null +++ b/obj/structure/checkoutmachine.html @@ -0,0 +1 @@ +/obj/structure/checkoutmachine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

checkoutmachine

Vars

canwalkAre we able to start moving?

Var Details

canwalk

Are we able to start moving?

\ No newline at end of file diff --git a/obj/structure/chem_separator.html b/obj/structure/chem_separator.html new file mode 100644 index 0000000000000..01df7919e0fc4 --- /dev/null +++ b/obj/structure/chem_separator.html @@ -0,0 +1,15 @@ +/obj/structure/chem_separator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

chem_separator

Vars

boilingIs the mixture currently boiling
burner_knobKnob setting on the burner
burner_onIs the bunset burner currenrly switched on/off
condenser_installedDo we have a condenser installed for forced cooling
condenser_onIs the condenser on
distilled_containerThe container for transferring distilled reagents into
fuel_containerThe container for holding the fuel source for the bunset burner
loop_startedHas the sound loop animation started
soundloopSound during separation

Procs

get_boiling_pointComputes the boiling point of the reagent based on its mass. heaiver reagents obviously needs higher temps +Arguments
get_cool_coefficientReturns the coefficient of cooling of reagents, taking into consideration the condenser
get_ignition_coefficientComputes the coefficient of burning(the ability of the reagent mixture to burn) of the burner fuel container +reagents can affect the intensity of the flame in different ways. A -ve value the mixture can not combust +whereas a +ve value(<= 1) means the flame can burn at maximum efficiency
toggle_burnerToggles the burner on(only for a good fuel composition) or off +Arguments

Var Details

boiling

Is the mixture currently boiling

burner_knob

Knob setting on the burner

burner_on

Is the bunset burner currenrly switched on/off

condenser_installed

Do we have a condenser installed for forced cooling

condenser_on

Is the condenser on

distilled_container

The container for transferring distilled reagents into

fuel_container

The container for holding the fuel source for the bunset burner

loop_started

Has the sound loop animation started

soundloop

Sound during separation

Proc Details

get_boiling_point

Computes the boiling point of the reagent based on its mass. heaiver reagents obviously needs higher temps +Arguments

+
    +
  • datum/reagent/reg - the reagent whos boiling point we are trying to compute
  • +

get_cool_coefficient

Returns the coefficient of cooling of reagents, taking into consideration the condenser

get_ignition_coefficient

Computes the coefficient of burning(the ability of the reagent mixture to burn) of the burner fuel container +reagents can affect the intensity of the flame in different ways. A -ve value the mixture can not combust +whereas a +ve value(<= 1) means the flame can burn at maximum efficiency

toggle_burner

Toggles the burner on(only for a good fuel composition) or off +Arguments

+
    +
  • state - on or off
  • +
\ No newline at end of file diff --git a/obj/structure/chrono_field.html b/obj/structure/chrono_field.html new file mode 100644 index 0000000000000..034e69ba6d022 --- /dev/null +++ b/obj/structure/chrono_field.html @@ -0,0 +1 @@ +/obj/structure/chrono_field - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

chrono_field

Vars

RPposThe actual frame the animation is at in eradication, only changing when the progress towards eradication progresses enough to move to the next frame.
attachedIf a TEM to link to isn't provided initially, this chrono field will progress towards eradication by itself without one.
capturedMob being eradicated by this field
mob_underlayThe eradication appearance
temLinked module. while this exists, the field will progress towards eradication. while it isn't, the field progresses away until it disappears. see attached for a special case
timetokillTime in seconds before someone is eradicated, assuming progress isn't interrupted

Var Details

RPpos

The actual frame the animation is at in eradication, only changing when the progress towards eradication progresses enough to move to the next frame.

attached

If a TEM to link to isn't provided initially, this chrono field will progress towards eradication by itself without one.

captured

Mob being eradicated by this field

mob_underlay

The eradication appearance

tem

Linked module. while this exists, the field will progress towards eradication. while it isn't, the field progresses away until it disappears. see attached for a special case

timetokill

Time in seconds before someone is eradicated, assuming progress isn't interrupted

\ No newline at end of file diff --git a/obj/structure/closet.html b/obj/structure/closet.html new file mode 100644 index 0000000000000..a61f0e09dfde0 --- /dev/null +++ b/obj/structure/closet.html @@ -0,0 +1,8 @@ +/obj/structure/closet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

closet

Vars

access_choicesaccess types for card reader
access_lockedshould we prevent further access change
air_volumeVolume of the internal air
card_reader_installedis the card reader installed in this machine
contents_pressure_protectionHow close being inside of the thing provides complete pressure safety. Must be between 0 and 1!
contents_thermal_insulationHow insulated the thing is, for the purposes of calculating body temperature. Must be between 0 and 1!
divableWhether a skittish person can dive inside this closet. Disable if opening the closet causes "bad things" to happen or that it leads to a logical inconsistency.
door_anim_angleThe maximum angle the door will be drawn at
door_anim_squishVertical squish of the door
door_anim_timeAmount of time it takes for the door animation to play
door_hinge_xX position of the closet door hinge, relative to the center of the sprite
door_objThe overlay for the closet's door
enable_door_overlayControls whether a door overlay should be applied using the icon_door value as the icon state
id_cardis this closet locked by an exclusive id, i.e. your own personal locker
internal_airInternal gas for this closet.
is_animating_doorWhether or not this door is being animated
paint_jobsPaint jobs for this closet, crates are a subtype of closet so they override these values
sealedWhether this closet is sealed or not. If sealed, it'll have its own internal air
securesecure locker or not, also used if overriding a non-secure locker with a secure door overlay to add fancy lights
strong_grabtrue whenever someone with the strong pull component (or magnet modsuit module) is dragging this, preventing opening
x_shake_pixel_shiftHow many pixels the closet can shift on the x axis when shaking
y_shake_pixel_shifthow many pixels the closet can shift on the y axes when shaking

Procs

add_to_roundstart_listAdds the closet to a global list. Placed in its own proc so that crates may be excluded.
after_closeProc to do effects after closet has closed
after_openProc to override for effects after opening a door
animate_doorAnimates the closet door opening and closing
before_closeProc to write checks before closing a door
before_openProc to write checks before opening a door
can_install_airlock_electronicscheck if we can install airlock electronics in this closet
can_install_card_readercheck if we can install card reader in this closet
can_pryout_card_readercheck if we can pry out the card reader from this closet
can_unlockreturns TRUE if the closet is allowed to unlock
can_unscrew_airlock_electronicscheck if we can unscrew airlock electronics from this closet
check_if_shakeCheck if someone is still resisting inside, and choose to either keep shaking or stop shaking the closet
end_door_animationEnds the door animation and removes the animated overlay
force_enterForces the coffin to get contents
get_door_transformCalculates the matrix to be applied to the animated door overlay
on_magic_unlockSignal proc for COMSIG_ATOM_MAGICALLY_UNLOCKED. Unlock and open up when we get knock casted.
populate_contents_immediatePopulate the closet with stuff that needs to be added before it is opened. +This is useful for things like traitor objectives.
populate_with_random_maint_lootSpawns two to six maintenance spawners inside the closet
set_accesssets the access for the closets from the swiped ID card
toggleToggles a closet open or closed, to the opposite state. Does not respect locked or welded states, however.
tool_interactreturns TRUE if attackBy call shouldn't be continued (because tool was used/closet was of wrong type), FALSE if otherwise

Var Details

access_choices

access types for card reader

access_locked

should we prevent further access change

air_volume

Volume of the internal air

card_reader_installed

is the card reader installed in this machine

contents_pressure_protection

How close being inside of the thing provides complete pressure safety. Must be between 0 and 1!

contents_thermal_insulation

How insulated the thing is, for the purposes of calculating body temperature. Must be between 0 and 1!

divable

Whether a skittish person can dive inside this closet. Disable if opening the closet causes "bad things" to happen or that it leads to a logical inconsistency.

door_anim_angle

The maximum angle the door will be drawn at

door_anim_squish

Vertical squish of the door

door_anim_time

Amount of time it takes for the door animation to play

door_hinge_x

X position of the closet door hinge, relative to the center of the sprite

door_obj

The overlay for the closet's door

enable_door_overlay

Controls whether a door overlay should be applied using the icon_door value as the icon state

id_card

is this closet locked by an exclusive id, i.e. your own personal locker

internal_air

Internal gas for this closet.

is_animating_door

Whether or not this door is being animated

paint_jobs

Paint jobs for this closet, crates are a subtype of closet so they override these values

sealed

Whether this closet is sealed or not. If sealed, it'll have its own internal air

secure

secure locker or not, also used if overriding a non-secure locker with a secure door overlay to add fancy lights

strong_grab

true whenever someone with the strong pull component (or magnet modsuit module) is dragging this, preventing opening

x_shake_pixel_shift

How many pixels the closet can shift on the x axis when shaking

y_shake_pixel_shift

how many pixels the closet can shift on the y axes when shaking

Proc Details

add_to_roundstart_list

Adds the closet to a global list. Placed in its own proc so that crates may be excluded.

after_close

Proc to do effects after closet has closed

after_open

Proc to override for effects after opening a door

animate_door

Animates the closet door opening and closing

before_close

Proc to write checks before closing a door

before_open

Proc to write checks before opening a door

can_install_airlock_electronics

check if we can install airlock electronics in this closet

can_install_card_reader

check if we can install card reader in this closet

can_pryout_card_reader

check if we can pry out the card reader from this closet

can_unlock

returns TRUE if the closet is allowed to unlock

+
    +
  • user: the player trying to unlock this closet
  • +
  • player_id: the id of the player trying to unlock this closet
  • +
  • registered_id: the id registered to this closet, null if no one registered
  • +

can_unscrew_airlock_electronics

check if we can unscrew airlock electronics from this closet

check_if_shake

Check if someone is still resisting inside, and choose to either keep shaking or stop shaking the closet

end_door_animation

Ends the door animation and removes the animated overlay

force_enter

Forces the coffin to get contents

get_door_transform

Calculates the matrix to be applied to the animated door overlay

on_magic_unlock

Signal proc for COMSIG_ATOM_MAGICALLY_UNLOCKED. Unlock and open up when we get knock casted.

populate_contents_immediate

Populate the closet with stuff that needs to be added before it is opened. +This is useful for things like traitor objectives.

populate_with_random_maint_loot

Spawns two to six maintenance spawners inside the closet

set_access

sets the access for the closets from the swiped ID card

toggle

Toggles a closet open or closed, to the opposite state. Does not respect locked or welded states, however.

tool_interact

returns TRUE if attackBy call shouldn't be continued (because tool was used/closet was of wrong type), FALSE if otherwise

\ No newline at end of file diff --git a/obj/structure/closet/body_bag.html b/obj/structure/closet/body_bag.html new file mode 100644 index 0000000000000..efded86e071a0 --- /dev/null +++ b/obj/structure/closet/body_bag.html @@ -0,0 +1,9 @@ +/obj/structure/closet/body_bag - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

body_bag

Vars

tag_nameThe tagged name of the bodybag, also used to check if the bodybag IS tagged.

Procs

attempt_foldChecks to see if we can fold. Return TRUE to actually perform the fold and delete.
handle_tagHandles renaming of the bodybag's examine tag.
perform_foldPerforms the actual folding. Deleting is automatic, please do not include.
undeploy_bodybagMakes the bag into an item, returns that item

Var Details

tag_name

The tagged name of the bodybag, also used to check if the bodybag IS tagged.

Proc Details

attempt_fold

Checks to see if we can fold. Return TRUE to actually perform the fold and delete.

+

Arguments:

+
    +
  • the_folder - aka user
  • +

handle_tag

Handles renaming of the bodybag's examine tag.

perform_fold

Performs the actual folding. Deleting is automatic, please do not include.

+

Arguments:

+
    +
  • the_folder - aka user
  • +

undeploy_bodybag

Makes the bag into an item, returns that item

\ No newline at end of file diff --git a/obj/structure/closet/body_bag/environmental.html b/obj/structure/closet/body_bag/environmental.html new file mode 100644 index 0000000000000..ad324372c3aa1 --- /dev/null +++ b/obj/structure/closet/body_bag/environmental.html @@ -0,0 +1 @@ +/obj/structure/closet/body_bag/environmental - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

environmental

Environmental bags. They protect against bad weather.

Vars

air_contentsThe contents of the gas to be distributed to an occupant. Set in Initialize()
weather_protectionThe list of weathers we protect from.

Var Details

air_contents

The contents of the gas to be distributed to an occupant. Set in Initialize()

weather_protection

The list of weathers we protect from.

\ No newline at end of file diff --git a/obj/structure/closet/body_bag/environmental/prisoner.html b/obj/structure/closet/body_bag/environmental/prisoner.html new file mode 100644 index 0000000000000..3629bef30ba19 --- /dev/null +++ b/obj/structure/closet/body_bag/environmental/prisoner.html @@ -0,0 +1 @@ +/obj/structure/closet/body_bag/environmental/prisoner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

prisoner

Securable enviro. bags

Vars

sinch_soundThe sound that plays when the bag is done sinching.
sinch_timeHow long it takes to sinch the bag.
sinchedWhether or not the bag is sinched. Starts unsinched.

Var Details

sinch_sound

The sound that plays when the bag is done sinching.

sinch_time

How long it takes to sinch the bag.

sinched

Whether or not the bag is sinched. Starts unsinched.

\ No newline at end of file diff --git a/obj/structure/closet/cardboard.html b/obj/structure/closet/cardboard.html new file mode 100644 index 0000000000000..4e102fb02aac2 --- /dev/null +++ b/obj/structure/closet/cardboard.html @@ -0,0 +1 @@ +/obj/structure/closet/cardboard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

cardboard

Vars

alert_cooldownCooldown controlling when the box can trigger the Metal Gear Solid-style '!' alert.
alertedList of viewers around the box
move_delayIf the speed multiplier should be applied to mobs inside this box
move_speed_multiplierHow fast a mob can move inside this box
time_between_alertsHow much time must pass before the box can trigger the next Metal Gear Solid-style '!' alert.

Var Details

alert_cooldown

Cooldown controlling when the box can trigger the Metal Gear Solid-style '!' alert.

alerted

List of viewers around the box

move_delay

If the speed multiplier should be applied to mobs inside this box

move_speed_multiplier

How fast a mob can move inside this box

time_between_alerts

How much time must pass before the box can trigger the next Metal Gear Solid-style '!' alert.

\ No newline at end of file diff --git a/obj/structure/closet/crate.html b/obj/structure/closet/crate.html new file mode 100644 index 0000000000000..c3971e96e913f --- /dev/null +++ b/obj/structure/closet/crate.html @@ -0,0 +1 @@ +/obj/structure/closet/crate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

crate

From crate.dm

Vars

crate_climb_timeThe time spent to climb this crate.
elevationMobs standing on it are nudged up by this amount.
elevation_openThe same, but when the crate is open
lid_iconWhere the Icons for lids are located.
lid_icon_stateIcon state to use for lid to display when opened. Leave undefined if there isn't one.
lid_xControls the X value of the lid, allowing left and right pixel movement.
lid_yControls the Y value of the lid, allowing up and down pixel movement.
manifestThe reference of the manifest paper attached to the cargo crate.
pry_lid_timerThe time it takes to pry this open with a crowbar.
residentThe resident (owner) of this crate/coffin.

Procs

tear_manifestRemoves the supply manifest from the closet

Var Details

crate_climb_time

The time spent to climb this crate.

elevation

Mobs standing on it are nudged up by this amount.

elevation_open

The same, but when the crate is open

lid_icon

Where the Icons for lids are located.

lid_icon_state

Icon state to use for lid to display when opened. Leave undefined if there isn't one.

lid_x

Controls the X value of the lid, allowing left and right pixel movement.

lid_y

Controls the Y value of the lid, allowing up and down pixel movement.

manifest

The reference of the manifest paper attached to the cargo crate.

pry_lid_timer

The time it takes to pry this open with a crowbar.

resident

The resident (owner) of this crate/coffin.

Proc Details

tear_manifest

Removes the supply manifest from the closet

\ No newline at end of file diff --git a/obj/structure/closet/crate/bin.html b/obj/structure/closet/crate/bin.html new file mode 100644 index 0000000000000..a92d2160f6bcd --- /dev/null +++ b/obj/structure/closet/crate/bin.html @@ -0,0 +1 @@ +/obj/structure/closet/crate/bin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bin

Procs

ready_for_trashCalled when a push broom is trying to sweep items onto the turf this object is standing on. Garbage will be moved inside.

Proc Details

ready_for_trash

Called when a push broom is trying to sweep items onto the turf this object is standing on. Garbage will be moved inside.

\ No newline at end of file diff --git a/obj/structure/closet/crate/coffin.html b/obj/structure/closet/crate/coffin.html new file mode 100644 index 0000000000000..40cd615346a33 --- /dev/null +++ b/obj/structure/closet/crate/coffin.html @@ -0,0 +1 @@ +/obj/structure/closet/crate/coffin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

coffin

Procs

can_openYou cannot lock in/out a coffin's owner. SORRY.
claim_coffinNOTE: This can be any coffin that you are resting AND inside of.
click_altDistance Check (Inside Of)
wrench_act_secondaryYou cannot weld or deconstruct an owned coffin. Only the owner can destroy their own coffin.

Proc Details

can_open

You cannot lock in/out a coffin's owner. SORRY.

claim_coffin

NOTE: This can be any coffin that you are resting AND inside of.

click_alt

Distance Check (Inside Of)

wrench_act_secondary

You cannot weld or deconstruct an owned coffin. Only the owner can destroy their own coffin.

\ No newline at end of file diff --git a/obj/structure/closet/crate/freezer.html b/obj/structure/closet/crate/freezer.html new file mode 100644 index 0000000000000..f088f188eb40e --- /dev/null +++ b/obj/structure/closet/crate/freezer.html @@ -0,0 +1 @@ +/obj/structure/closet/crate/freezer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

freezer

Vars

cooling_rate_per_secondThe rate at which the internal air mixture cools
minimum_temperatureMinimum temperature of the internal air mixture

Var Details

cooling_rate_per_second

The rate at which the internal air mixture cools

minimum_temperature

Minimum temperature of the internal air mixture

\ No newline at end of file diff --git a/obj/structure/closet/crate/grave.html b/obj/structure/closet/crate/grave.html new file mode 100644 index 0000000000000..d1a458d5d8eeb --- /dev/null +++ b/obj/structure/closet/crate/grave.html @@ -0,0 +1 @@ +/obj/structure/closet/crate/grave - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

grave

has no items inside unless you use the filled subtype

Vars

affect_mooddo we have a mood effect tied to accessing this type of grave?
dug_closedwas a shovel used to close this grave
first_openwas this grave opened for the first time
lead_tombwill this grave give you nightmares when opened

Var Details

affect_mood

do we have a mood effect tied to accessing this type of grave?

dug_closed

was a shovel used to close this grave

first_open

was this grave opened for the first time

lead_tomb

will this grave give you nightmares when opened

\ No newline at end of file diff --git a/obj/structure/closet/crate/mail.html b/obj/structure/closet/crate/mail.html new file mode 100644 index 0000000000000..57439b7309016 --- /dev/null +++ b/obj/structure/closet/crate/mail.html @@ -0,0 +1 @@ +/obj/structure/closet/crate/mail - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mail

Crate for mail from CentCom.

Vars

postmarkedif it'll show the nt mark on the crate

Procs

populateFills this mail crate with N pieces of mail, where N is the lower of the amount var passed, and the maximum capacity of this crate. If N is larger than the number of alive human players, the excess will be junkmail.

Var Details

postmarked

if it'll show the nt mark on the crate

Proc Details

populate

Fills this mail crate with N pieces of mail, where N is the lower of the amount var passed, and the maximum capacity of this crate. If N is larger than the number of alive human players, the excess will be junkmail.

\ No newline at end of file diff --git a/obj/structure/closet/crate/mail/economy.html b/obj/structure/closet/crate/mail/economy.html new file mode 100644 index 0000000000000..d11a8af2a4b12 --- /dev/null +++ b/obj/structure/closet/crate/mail/economy.html @@ -0,0 +1 @@ +/obj/structure/closet/crate/mail/economy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

economy

Procs

InitializeCrate for mail that automatically depletes the economy subsystem's pending mail counter.

Proc Details

Initialize

Crate for mail that automatically depletes the economy subsystem's pending mail counter.

\ No newline at end of file diff --git a/obj/structure/closet/crate/miningcar.html b/obj/structure/closet/crate/miningcar.html new file mode 100644 index 0000000000000..922bd264f4555 --- /dev/null +++ b/obj/structure/closet/crate/miningcar.html @@ -0,0 +1,14 @@ +/obj/structure/closet/crate/miningcar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

miningcar

Vars

momentumHow many turfs we are travelling, also functions as speed (more momentum = faster)
on_railsWhether we're on a set of rails or just on the ground

Procs

calculate_delayCalculates how fast the cart is going
can_travel_on_turfChecks if we can travel on the passed turf
shove_offStarts the cart moving automatically.
smackCalled when the minecart smacks into someone.
throw_contentsThrows all the contents of the cart out ahead
try_put_on_railsAttempt to put the cart on rails
try_take_off_railsAttempt to remove the cart from rails
update_rail_stateUpdates the state of the minecart to be on or off rails.

Var Details

momentum

How many turfs we are travelling, also functions as speed (more momentum = faster)

on_rails

Whether we're on a set of rails or just on the ground

Proc Details

calculate_delay

Calculates how fast the cart is going

can_travel_on_turf

Checks if we can travel on the passed turf

shove_off

Starts the cart moving automatically.

smack

Called when the minecart smacks into someone.

+
    +
  • smacked - The mob that was smacked.
  • +
  • damage_mod - How much to multiply the momentum by to get the damage.
  • +
  • momentum_mod - How much to divide the momentum by after the smack.
  • +

throw_contents

Throws all the contents of the cart out ahead

try_put_on_rails

Attempt to put the cart on rails

+
    +
  • user - The user attempting to put the cart on the rails.
  • +
  • new_destination - The turf the cart will be moved to.
  • +

try_take_off_rails

Attempt to remove the cart from rails

+
    +
  • user - The user attempting to remove the cart from the rails.
  • +
  • new_destination - The turf the cart will be moved to.
  • +

update_rail_state

Updates the state of the minecart to be on or off rails.

\ No newline at end of file diff --git a/obj/structure/closet/crate/necropolis/tendril.html b/obj/structure/closet/crate/necropolis/tendril.html new file mode 100644 index 0000000000000..2a69ff8836022 --- /dev/null +++ b/obj/structure/closet/crate/necropolis/tendril.html @@ -0,0 +1 @@ +/obj/structure/closet/crate/necropolis/tendril - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tendril

Vars

spawned_lootvar to check if it got opened by a key

Var Details

spawned_loot

var to check if it got opened by a key

\ No newline at end of file diff --git a/obj/structure/closet/crate/secure/bitrunning/decrypted.html b/obj/structure/closet/crate/secure/bitrunning/decrypted.html new file mode 100644 index 0000000000000..7eec22fa59e7a --- /dev/null +++ b/obj/structure/closet/crate/secure/bitrunning/decrypted.html @@ -0,0 +1 @@ +/obj/structure/closet/crate/secure/bitrunning/decrypted - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

decrypted

The bitrunner den - side of the bitrunning crate. Appears in the receive location.

Procs

calculate_lootHandles generating random numbers & calculating loot totals
spawn_lootHandles spawning completion loot. This tries to handle bad flat and assoc lists

Proc Details

calculate_loot

Handles generating random numbers & calculating loot totals

spawn_loot

Handles spawning completion loot. This tries to handle bad flat and assoc lists

\ No newline at end of file diff --git a/obj/structure/closet/crate/secure/owned.html b/obj/structure/closet/crate/secure/owned.html new file mode 100644 index 0000000000000..57ef13a6bac5d --- /dev/null +++ b/obj/structure/closet/crate/secure/owned.html @@ -0,0 +1 @@ +/obj/structure/closet/crate/secure/owned - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

owned

Vars

buyer_accountAccount of the person buying the crate if private purchasing.
department_accountDepartment of the person buying the crate if buying via the NIRN app.
department_purchaseIs the crate being bought by a person, or a budget card?
privacy_lockIs the secure crate opened or closed?

Var Details

buyer_account

Account of the person buying the crate if private purchasing.

department_account

Department of the person buying the crate if buying via the NIRN app.

department_purchase

Is the crate being bought by a person, or a budget card?

privacy_lock

Is the secure crate opened or closed?

\ No newline at end of file diff --git a/obj/structure/closet/crate/secure/syndicrate.html b/obj/structure/closet/crate/secure/syndicrate.html new file mode 100644 index 0000000000000..f9679abfb5d1d --- /dev/null +++ b/obj/structure/closet/crate/secure/syndicrate.html @@ -0,0 +1 @@ +/obj/structure/closet/crate/secure/syndicrate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

syndicrate

Vars

created_itemsvariable that only lets the crate open if opened by a key from the uplink
unlock_contentsthis is what will spawn when it is opened with a syndicrate key

Procs

attackbyensures that the syndicrate can only be unlocked by opening it with a syndicrate_key

Var Details

created_items

variable that only lets the crate open if opened by a key from the uplink

unlock_contents

this is what will spawn when it is opened with a syndicrate key

Proc Details

attackby

ensures that the syndicrate can only be unlocked by opening it with a syndicrate_key

\ No newline at end of file diff --git a/obj/structure/closet/crate/tradership_cargo.html b/obj/structure/closet/crate/tradership_cargo.html new file mode 100644 index 0000000000000..b04dfdc0c02fa --- /dev/null +++ b/obj/structure/closet/crate/tradership_cargo.html @@ -0,0 +1 @@ +/obj/structure/closet/crate/tradership_cargo - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tradership_cargo

Vars

itemspawn_seedDetermines which items will be spawned
used_presetDetermines which items will be spawned, overriding itemspawn_seed

Var Details

itemspawn_seed

Determines which items will be spawned

used_preset

Determines which items will be spawned, overriding itemspawn_seed

\ No newline at end of file diff --git a/obj/structure/closet/decay.html b/obj/structure/closet/decay.html new file mode 100644 index 0000000000000..99156b8b54f08 --- /dev/null +++ b/obj/structure/closet/decay.html @@ -0,0 +1 @@ +/obj/structure/closet/decay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

decay

Procs

decayFade away into nothing
unmagifyGive it the lesser magic icon and tell it to delete itself

Proc Details

decay

Fade away into nothing

unmagify

Give it the lesser magic icon and tell it to delete itself

\ No newline at end of file diff --git a/obj/structure/closet/secure_closet/freezer.html b/obj/structure/closet/secure_closet/freezer.html new file mode 100644 index 0000000000000..137b3b0b50b8b --- /dev/null +++ b/obj/structure/closet/secure_closet/freezer.html @@ -0,0 +1 @@ +/obj/structure/closet/secure_closet/freezer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

freezer

Vars

cooling_rate_per_secondThe rate at which the internal air mixture cools
jonesIf FALSE, we will protect the first person in the freezer from an explosion / nuclear blast.
minimum_temperatureMinimum temperature of the internal air mixture

Var Details

cooling_rate_per_second

The rate at which the internal air mixture cools

jones

If FALSE, we will protect the first person in the freezer from an explosion / nuclear blast.

minimum_temperature

Minimum temperature of the internal air mixture

\ No newline at end of file diff --git a/obj/structure/closet/stasis.html b/obj/structure/closet/stasis.html new file mode 100644 index 0000000000000..afa54f1273544 --- /dev/null +++ b/obj/structure/closet/stasis.html @@ -0,0 +1 @@ +/obj/structure/closet/stasis - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

stasis

Vars

holder_animalThe animal the closet (and the user's body) is inside of

Procs

on_holder_animal_deathWhen our host animal dies in any way, we empty the stasis closet out.

Var Details

holder_animal

The animal the closet (and the user's body) is inside of

Proc Details

on_holder_animal_death

When our host animal dies in any way, we empty the stasis closet out.

\ No newline at end of file diff --git a/obj/structure/closet/supplypod.html b/obj/structure/closet/supplypod.html new file mode 100644 index 0000000000000..06945b76ad2b3 --- /dev/null +++ b/obj/structure/closet/supplypod.html @@ -0,0 +1 @@ +/obj/structure/closet/supplypod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

supplypod

Vars

pod_flagsList of bitflags for supply pods, see: code__DEFINES\obj_flags.dm

Procs

return_from_captureCalled by the drop pods that return captured crewmembers from the ninja den.

Var Details

pod_flags

List of bitflags for supply pods, see: code__DEFINES\obj_flags.dm

Proc Details

return_from_capture

Called by the drop pods that return captured crewmembers from the ninja den.

\ No newline at end of file diff --git a/obj/structure/cursed_slot_machine.html b/obj/structure/cursed_slot_machine.html new file mode 100644 index 0000000000000..1269d744a49c4 --- /dev/null +++ b/obj/structure/cursed_slot_machine.html @@ -0,0 +1 @@ +/obj/structure/cursed_slot_machine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cursed_slot_machine

Greed's slot machine: Used in the Greed ruin. Deals damage on each use, with a successful use giving a d20 of fate.

Vars

brightness_onShould we be emitting light?
cooldown_lengthLength of the cooldown between the machine being used and being able to spin the machine again.
icon_screenVariable that tracks the screen we display.
in_useAre we currently in use? Anti-spam prevention measure.
max_curse_amountThe maximum amount of curses we will allow a player to have before disallowing them to use the machine.
prizemachine's reward when you hit jackpot
spin_cooldownCooldown between pulls of the cursed slot machine.
status_effect_on_rollshould we be applying the cursed status effect?
win_probThe probability the player has to win.

Procs

check_and_set_usageValidates that the user can use the cursed slot machine. User is the person using the slot machine. Returns TRUE if we can, FALSE otherwise.

Var Details

brightness_on

Should we be emitting light?

cooldown_length

Length of the cooldown between the machine being used and being able to spin the machine again.

icon_screen

Variable that tracks the screen we display.

in_use

Are we currently in use? Anti-spam prevention measure.

max_curse_amount

The maximum amount of curses we will allow a player to have before disallowing them to use the machine.

prize

machine's reward when you hit jackpot

spin_cooldown

Cooldown between pulls of the cursed slot machine.

status_effect_on_roll

should we be applying the cursed status effect?

win_prob

The probability the player has to win.

Proc Details

check_and_set_usage

Validates that the user can use the cursed slot machine. User is the person using the slot machine. Returns TRUE if we can, FALSE otherwise.

\ No newline at end of file diff --git a/obj/structure/curtain.html b/obj/structure/curtain.html new file mode 100644 index 0000000000000..5520636d3c612 --- /dev/null +++ b/obj/structure/curtain.html @@ -0,0 +1 @@ +/obj/structure/curtain - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

curtain

Shower Curtains

Vars

icon_typeused in making the icon state
opaque_closedif it can be seen through when closed

Var Details

icon_type

used in making the icon state

opaque_closed

if it can be seen through when closed

\ No newline at end of file diff --git a/obj/structure/deployable_barricade.html b/obj/structure/deployable_barricade.html new file mode 100644 index 0000000000000..12a3acc1e4a90 --- /dev/null +++ b/obj/structure/deployable_barricade.html @@ -0,0 +1 @@ +/obj/structure/deployable_barricade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

deployable_barricade

Vars

can_change_dmg_stateWhether this barricade has damaged states
can_wireCan this barricade type be wired
closedWhether we can open/close this barrricade and thus go over it
destroyed_stack_amountto specify a non-zero amount of stack to drop when destroyed
is_wiredis this barriade wired?
stack_amountThe amount of stack dropped when disassembled at full health
stack_typeThe type of stack the barricade dropped when disassembled if any.

Var Details

can_change_dmg_state

Whether this barricade has damaged states

can_wire

Can this barricade type be wired

closed

Whether we can open/close this barrricade and thus go over it

destroyed_stack_amount

to specify a non-zero amount of stack to drop when destroyed

is_wired

is this barriade wired?

stack_amount

The amount of stack dropped when disassembled at full health

stack_type

The type of stack the barricade dropped when disassembled if any.

\ No newline at end of file diff --git a/obj/structure/deployable_barricade/metal.html b/obj/structure/deployable_barricade/metal.html new file mode 100644 index 0000000000000..b06f77ccefcdb --- /dev/null +++ b/obj/structure/deployable_barricade/metal.html @@ -0,0 +1 @@ +/obj/structure/deployable_barricade/metal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

metal

Vars

barricade_upgrade_typeThe type of upgrade and corresponding overlay we have attached
build_stateBuild state of the barricade
can_upgradeCan we be upgraded?
portable_typeThe type of quickdeploy we drop when folded up.
repair_amountHow many of our stack_type do we need to repair this?

Var Details

barricade_upgrade_type

The type of upgrade and corresponding overlay we have attached

build_state

Build state of the barricade

can_upgrade

Can we be upgraded?

portable_type

The type of quickdeploy we drop when folded up.

repair_amount

How many of our stack_type do we need to repair this?

\ No newline at end of file diff --git a/obj/structure/deployable_barricade/metal/plasteel.html b/obj/structure/deployable_barricade/metal/plasteel.html new file mode 100644 index 0000000000000..94da3e04a5be9 --- /dev/null +++ b/obj/structure/deployable_barricade/metal/plasteel.html @@ -0,0 +1 @@ +/obj/structure/deployable_barricade/metal/plasteel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plasteel

Vars

linkedEither we react with other cades next to us ie when opening or so
toggle_delayOpen/close delay, for customisation. And because I was asked to - won't customise anything myself.

Var Details

linked

Either we react with other cades next to us ie when opening or so

toggle_delay

Open/close delay, for customisation. And because I was asked to - won't customise anything myself.

\ No newline at end of file diff --git a/obj/structure/desk_bell.html b/obj/structure/desk_bell.html new file mode 100644 index 0000000000000..170e7513c8fa6 --- /dev/null +++ b/obj/structure/desk_bell.html @@ -0,0 +1 @@ +/obj/structure/desk_bell - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

desk_bell

Vars

broken_ringerIs this bell broken?
ring_cooldownThe cooldown for ringing the bell
ring_cooldown_lengthThe length of the cooldown. Setting it to 0 will skip all cooldowns alltogether.
ring_soundThe sound the bell makes
times_rangThe amount of times this bell has been rang, used to check the chance it breaks

Procs

check_clapperCheck if the clapper breaks, and if it does, break it
ring_bellRing the bell

Var Details

broken_ringer

Is this bell broken?

ring_cooldown

The cooldown for ringing the bell

ring_cooldown_length

The length of the cooldown. Setting it to 0 will skip all cooldowns alltogether.

ring_sound

The sound the bell makes

times_rang

The amount of times this bell has been rang, used to check the chance it breaks

Proc Details

check_clapper

Check if the clapper breaks, and if it does, break it

ring_bell

Ring the bell

\ No newline at end of file diff --git a/obj/structure/destructible/clockwork.html b/obj/structure/destructible/clockwork.html new file mode 100644 index 0000000000000..3c1d3ea58d811 --- /dev/null +++ b/obj/structure/destructible/clockwork.html @@ -0,0 +1 @@ +/obj/structure/destructible/clockwork - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

clockwork

The base clockwork structure. Can have an alternate desc and will show up in the list of clockwork objects.

Vars

clockwork_descShown to servants when they examine
immune_to_servant_attacksif we ignore attacks from servants of ratvar instead of taking damage
ownerThe person who placed this structure
unanchored_iconicon for when this structure is unanchored, doubles as the var for if it can be unanchored

Var Details

clockwork_desc

Shown to servants when they examine

immune_to_servant_attacks

if we ignore attacks from servants of ratvar instead of taking damage

owner

The person who placed this structure

unanchored_icon

icon for when this structure is unanchored, doubles as the var for if it can be unanchored

\ No newline at end of file diff --git a/obj/structure/destructible/clockwork/gear_base.html b/obj/structure/destructible/clockwork/gear_base.html new file mode 100644 index 0000000000000..4459b58e4fbe6 --- /dev/null +++ b/obj/structure/destructible/clockwork/gear_base.html @@ -0,0 +1 @@ +/obj/structure/destructible/clockwork/gear_base - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gear_base

Vars

can_unwrenchIf this can be moved at all by unwrenching it
unwrenched_suffixWhat's appeneded to the structure when unanchored

Var Details

can_unwrench

If this can be moved at all by unwrenching it

unwrenched_suffix

What's appeneded to the structure when unanchored

\ No newline at end of file diff --git a/obj/structure/destructible/clockwork/gear_base/powered.html b/obj/structure/destructible/clockwork/gear_base/powered.html new file mode 100644 index 0000000000000..6979d6357caf6 --- /dev/null +++ b/obj/structure/destructible/clockwork/gear_base/powered.html @@ -0,0 +1 @@ +/obj/structure/destructible/clockwork/gear_base/powered - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

powered

Vars

depoweredMakes sure the depowered proc is only called when it transitions from powered -> depowered, NOT every process() while already depowered
enabledIf the structure has its "on" switch flipped. Does not mean it's on, necessarily (needs power and anchoring, too)
has_off_iconHas an "_inactive" icon state
has_on_iconHas an "_active" icon state
has_power_toggleHas the ability to toggle power by using an empty hand on it
insufficient_powerIf this ran out of power during process()
minimum_powerMinimum power to work
passive_consumptionHow much power this structure uses passively
processingIf the structure is "on" and working.
transmission_sigilsLazylist of nearby transmission signals

Procs

check_powerChecks if there's equal or greater power to the amount arg, TRUE if so, FALSE otherwise
depoweredTriggers when the structure runs out of power to use
link_to_sigilAdds a sigil to the linked structure list
repoweredTriggers when the structure regains power to use
turn_offTurn off the structure, ceasing its processing
turn_onTurn on the structure, letting it consume power and process again
unlink_to_sigilRemoves a sigil from the linked structure list
update_powerChecks if there's enough power to power it, calls repower() if changed from depowered to powered, vice versa
use_powerUses power if there's enough to do so

Var Details

depowered

Makes sure the depowered proc is only called when it transitions from powered -> depowered, NOT every process() while already depowered

enabled

If the structure has its "on" switch flipped. Does not mean it's on, necessarily (needs power and anchoring, too)

has_off_icon

Has an "_inactive" icon state

has_on_icon

Has an "_active" icon state

has_power_toggle

Has the ability to toggle power by using an empty hand on it

insufficient_power

If this ran out of power during process()

minimum_power

Minimum power to work

passive_consumption

How much power this structure uses passively

processing

If the structure is "on" and working.

transmission_sigils

Lazylist of nearby transmission signals

Proc Details

check_power

Checks if there's equal or greater power to the amount arg, TRUE if so, FALSE otherwise

depowered

Triggers when the structure runs out of power to use

Adds a sigil to the linked structure list

repowered

Triggers when the structure regains power to use

turn_off

Turn off the structure, ceasing its processing

turn_on

Turn on the structure, letting it consume power and process again

Removes a sigil from the linked structure list

update_power

Checks if there's enough power to power it, calls repower() if changed from depowered to powered, vice versa

use_power

Uses power if there's enough to do so

\ No newline at end of file diff --git a/obj/structure/destructible/clockwork/gear_base/powered/interdiction_lens.html b/obj/structure/destructible/clockwork/gear_base/powered/interdiction_lens.html new file mode 100644 index 0000000000000..e371154831916 --- /dev/null +++ b/obj/structure/destructible/clockwork/gear_base/powered/interdiction_lens.html @@ -0,0 +1 @@ +/obj/structure/destructible/clockwork/gear_base/powered/interdiction_lens - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

interdiction_lens

Vars

dampening_fieldPart 1/2 of the interdictor. This portion acts as the monitor, sending calls to the 2nd part when it finds something.
internal_dampenerPart 2 of the interdictor. This one actually does the dampening, but requires the dampening_field to tell it what to dampen

Var Details

dampening_field

Part 1/2 of the interdictor. This portion acts as the monitor, sending calls to the 2nd part when it finds something.

internal_dampener

Part 2 of the interdictor. This one actually does the dampening, but requires the dampening_field to tell it what to dampen

\ No newline at end of file diff --git a/obj/structure/destructible/clockwork/gear_base/powered/ocular_warden.html b/obj/structure/destructible/clockwork/gear_base/powered/ocular_warden.html new file mode 100644 index 0000000000000..f9b94c17f9043 --- /dev/null +++ b/obj/structure/destructible/clockwork/gear_base/powered/ocular_warden.html @@ -0,0 +1 @@ +/obj/structure/destructible/clockwork/gear_base/powered/ocular_warden - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ocular_warden

Vars

fire_cooldownCooldown between firing

Var Details

fire_cooldown

Cooldown between firing

\ No newline at end of file diff --git a/obj/structure/destructible/clockwork/gear_base/powered/tinkerers_cache.html b/obj/structure/destructible/clockwork/gear_base/powered/tinkerers_cache.html new file mode 100644 index 0000000000000..9a445d3e327a4 --- /dev/null +++ b/obj/structure/destructible/clockwork/gear_base/powered/tinkerers_cache.html @@ -0,0 +1 @@ +/obj/structure/destructible/clockwork/gear_base/powered/tinkerers_cache - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tinkerers_cache

Vars

craft_possibilitiesAssoc list of the names of all the craftable items to their path

Var Details

craft_possibilities

Assoc list of the names of all the craftable items to their path

\ No newline at end of file diff --git a/obj/structure/destructible/clockwork/gear_base/technologists_lectern.html b/obj/structure/destructible/clockwork/gear_base/technologists_lectern.html new file mode 100644 index 0000000000000..3c56c29aabda3 --- /dev/null +++ b/obj/structure/destructible/clockwork/gear_base/technologists_lectern.html @@ -0,0 +1 @@ +/obj/structure/destructible/clockwork/gear_base/technologists_lectern - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

technologists_lectern

Vars

highest_tier_researchedThe highest tier researched
hologramRef to the effect of the lectern's book
mobs_in_rangeIf the last process() found a clock cultist in range
primary_researcherIf we are the lectern actively doing the researching
research_sigilRef to the research sigil this created
research_timer_idID of the research timer
researchingIf there is a research ritual already occurring
selected_researchRef to the currently selected research

Procs

assemble_research_designsProvided a research datum, returns a list of icon states from tinker cache designs for use in the UI
assemble_research_scripturesProvided a research datum, returns a list of icon states from scriptures for use in the UI
begin_researchBegin the research after a delay, announcing it and starting everything
can_researchHelper to see if any given tier is researchable
check_roomCheck to see if there's enough room to ritual-ize, and invoke the ritual if so
finish_researchCalled when the research finishes, cleaning up everything and triggering the appropriate effects
send_messageSend a message to everyone on the Z level with directions to the lectern
side_effectCalled after research completes, making one of a few bad things happen to the station

Var Details

highest_tier_researched

The highest tier researched

hologram

Ref to the effect of the lectern's book

mobs_in_range

If the last process() found a clock cultist in range

primary_researcher

If we are the lectern actively doing the researching

research_sigil

Ref to the research sigil this created

research_timer_id

ID of the research timer

researching

If there is a research ritual already occurring

selected_research

Ref to the currently selected research

Proc Details

assemble_research_designs

Provided a research datum, returns a list of icon states from tinker cache designs for use in the UI

assemble_research_scriptures

Provided a research datum, returns a list of icon states from scriptures for use in the UI

begin_research

Begin the research after a delay, announcing it and starting everything

can_research

Helper to see if any given tier is researchable

check_room

Check to see if there's enough room to ritual-ize, and invoke the ritual if so

finish_research

Called when the research finishes, cleaning up everything and triggering the appropriate effects

send_message

Send a message to everyone on the Z level with directions to the lectern

side_effect

Called after research completes, making one of a few bad things happen to the station

\ No newline at end of file diff --git a/obj/structure/destructible/clockwork/sigil.html b/obj/structure/destructible/clockwork/sigil.html new file mode 100644 index 0000000000000..68190400bd96c --- /dev/null +++ b/obj/structure/destructible/clockwork/sigil.html @@ -0,0 +1 @@ +/obj/structure/destructible/clockwork/sigil - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sigil

Vars

active_timerRef to the current timer
can_dispel_by_handIf this can be dispelled by being hit with an empty hand
currently_affectingThe atom/movable that this is currently affecting
effect_stand_timeHow long you stand on the sigil before affect is applied
fail_colorColor pulsed when effect fails
idle_colorColor while not used
invocation_colorColor faded to while someone stands on top
living_onlyFALSE if the rune can affect non-living atoms
loopingTRUE if the affect repeatedly applied an affect to the thing above it
pulse_colorColor pulsed when effect applied

Procs

apply_effectsApply the effects to an atom/movable
can_affectIf the sigil does not affect living, do not inherit this
dispelDispel the sigil and delete itself
fail_invocationWhat happens when the sigil fails to invoke
on_enteredFor trap sigils and similar; applies effects when someone/something walks over
on_exitedFor when someone/something leaves the sigil's turf

Var Details

active_timer

Ref to the current timer

can_dispel_by_hand

If this can be dispelled by being hit with an empty hand

currently_affecting

The atom/movable that this is currently affecting

effect_stand_time

How long you stand on the sigil before affect is applied

fail_color

Color pulsed when effect fails

idle_color

Color while not used

invocation_color

Color faded to while someone stands on top

living_only

FALSE if the rune can affect non-living atoms

looping

TRUE if the affect repeatedly applied an affect to the thing above it

pulse_color

Color pulsed when effect applied

Proc Details

apply_effects

Apply the effects to an atom/movable

can_affect

If the sigil does not affect living, do not inherit this

dispel

Dispel the sigil and delete itself

fail_invocation

What happens when the sigil fails to invoke

on_entered

For trap sigils and similar; applies effects when someone/something walks over

on_exited

For when someone/something leaves the sigil's turf

\ No newline at end of file diff --git a/obj/structure/destructible/clockwork/sigil/research.html b/obj/structure/destructible/clockwork/sigil/research.html new file mode 100644 index 0000000000000..c3c7db49244cf --- /dev/null +++ b/obj/structure/destructible/clockwork/sigil/research.html @@ -0,0 +1 @@ +/obj/structure/destructible/clockwork/sigil/research - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

research

Procs

finish_researchCalled when the research finishes, as a signal to disappear + delete

Proc Details

finish_research

Called when the research finishes, as a signal to disappear + delete

\ No newline at end of file diff --git a/obj/structure/destructible/clockwork/sigil/transmission.html b/obj/structure/destructible/clockwork/sigil/transmission.html new file mode 100644 index 0000000000000..84760f0609c57 --- /dev/null +++ b/obj/structure/destructible/clockwork/sigil/transmission.html @@ -0,0 +1 @@ +/obj/structure/destructible/clockwork/sigil/transmission - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

transmission

Vars

linked_structuresA list of structures linked to this sigil

Var Details

linked_structures

A list of structures linked to this sigil

\ No newline at end of file diff --git a/obj/structure/destructible/clockwork/sigil/vitality.html b/obj/structure/destructible/clockwork/sigil/vitality.html new file mode 100644 index 0000000000000..00471abf4c962 --- /dev/null +++ b/obj/structure/destructible/clockwork/sigil/vitality.html @@ -0,0 +1 @@ +/obj/structure/destructible/clockwork/sigil/vitality - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

vitality

Procs

check_special_roleChecks the role of whoever was killed by the vitality sigil, and does any special code if needed.

Proc Details

check_special_role

Checks the role of whoever was killed by the vitality sigil, and does any special code if needed.

\ No newline at end of file diff --git a/obj/structure/destructible/clockwork/trap.html b/obj/structure/destructible/clockwork/trap.html new file mode 100644 index 0000000000000..04134572edbda --- /dev/null +++ b/obj/structure/destructible/clockwork/trap.html @@ -0,0 +1 @@ +/obj/structure/destructible/clockwork/trap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

trap

Vars

component_datumThe component used for the trap's back-end
unwrench_pathWhat item's produced when this structure is unwrenched

Var Details

component_datum

The component used for the trap's back-end

unwrench_path

What item's produced when this structure is unwrenched

\ No newline at end of file diff --git a/obj/structure/destructible/clockwork/trap/delay.html b/obj/structure/destructible/clockwork/trap/delay.html new file mode 100644 index 0000000000000..e58d840f2a014 --- /dev/null +++ b/obj/structure/destructible/clockwork/trap/delay.html @@ -0,0 +1 @@ +/obj/structure/destructible/clockwork/trap/delay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

delay

Vars

delay_timeHow much time the signal is delayed

Var Details

delay_time

How much time the signal is delayed

\ No newline at end of file diff --git a/obj/structure/destructible/clockwork/trap/flipper.html b/obj/structure/destructible/clockwork/trap/flipper.html new file mode 100644 index 0000000000000..8b4307ca5cec2 --- /dev/null +++ b/obj/structure/destructible/clockwork/trap/flipper.html @@ -0,0 +1 @@ +/obj/structure/destructible/clockwork/trap/flipper - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

flipper

Vars

cooldown_flipTime between possible flips

Procs

cooldown_doneVisual update when the cooldown's finished
flipSend all atom/movables flying in the set direction for a decent distance

Var Details

cooldown_flip

Time between possible flips

Proc Details

cooldown_done

Visual update when the cooldown's finished

flip

Send all atom/movables flying in the set direction for a decent distance

\ No newline at end of file diff --git a/obj/structure/destructible/clockwork/trap/skewer.html b/obj/structure/destructible/clockwork/trap/skewer.html new file mode 100644 index 0000000000000..383ba0f626548 --- /dev/null +++ b/obj/structure/destructible/clockwork/trap/skewer.html @@ -0,0 +1 @@ +/obj/structure/destructible/clockwork/trap/skewer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

skewer

Vars

extendedIf the spear is currently extended
stab_overlayMutable appearance stab overlay

Procs

retractUnbuckling mobs and reverting the trap for when the pokey bit goes back in
stabStab any mobs (even other clock cultists) who stood on the tile

Var Details

extended

If the spear is currently extended

stab_overlay

Mutable appearance stab overlay

Proc Details

retract

Unbuckling mobs and reverting the trap for when the pokey bit goes back in

stab

Stab any mobs (even other clock cultists) who stood on the tile

\ No newline at end of file diff --git a/obj/structure/destructible/cult.html b/obj/structure/destructible/cult.html new file mode 100644 index 0000000000000..a366ab45626c1 --- /dev/null +++ b/obj/structure/destructible/cult.html @@ -0,0 +1 @@ +/obj/structure/destructible/cult - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cult

Vars

cult_examine_tipIf provided, a bonus tip displayed to cultists on examined.
cult_teamAssigned cult team, set when cultistism is checked.
use_cooldownThe cooldown for when items can be dispensed.
use_cooldown_durationLength of the cooldown between uses.

Procs

is_cultist_checkTries to find a cultist. If it succeeds, it also takes advantage of the moment to define the structure's cult team if it's not set yet.

Var Details

cult_examine_tip

If provided, a bonus tip displayed to cultists on examined.

cult_team

Assigned cult team, set when cultistism is checked.

use_cooldown

The cooldown for when items can be dispensed.

use_cooldown_duration

Length of the cooldown between uses.

Proc Details

is_cultist_check

Tries to find a cultist. If it succeeds, it also takes advantage of the moment to define the structure's cult team if it's not set yet.

\ No newline at end of file diff --git a/obj/structure/destructible/cult/item_dispenser.html b/obj/structure/destructible/cult/item_dispenser.html new file mode 100644 index 0000000000000..317c356068272 --- /dev/null +++ b/obj/structure/destructible/cult/item_dispenser.html @@ -0,0 +1 @@ +/obj/structure/destructible/cult/item_dispenser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

item_dispenser

Vars

mansus_conversion_pathThe dispenser will create this item and then delete itself if it is rust converted.
optionsAn associated list of options this structure can make. See setup_options() for format.

Var Details

mansus_conversion_path

The dispenser will create this item and then delete itself if it is rust converted.

options

An associated list of options this structure can make. See setup_options() for format.

\ No newline at end of file diff --git a/obj/structure/destructible/cult/pants_altar.html b/obj/structure/destructible/cult/pants_altar.html new file mode 100644 index 0000000000000..a407ee997227a --- /dev/null +++ b/obj/structure/destructible/cult/pants_altar.html @@ -0,0 +1 @@ +/obj/structure/destructible/cult/pants_altar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

pants_altar

Vars

pants_colorColor of the pants that will come out
statusStage of the pants making process

Procs

pants_createFinishes the creation, creating the item itself, setting the cooldowns and flashing every mob nearby.
pants_stageoneStarts creating the pants, plays the sound.
pants_stagethreeContinues the creation, making every mob nearby dizzy
pants_stagetwoContinues the creation, making every mob nearby nauseous.

Var Details

pants_color

Color of the pants that will come out

status

Stage of the pants making process

Proc Details

pants_create

Finishes the creation, creating the item itself, setting the cooldowns and flashing every mob nearby.

pants_stageone

Starts creating the pants, plays the sound.

pants_stagethree

Continues the creation, making every mob nearby dizzy

pants_stagetwo

Continues the creation, making every mob nearby nauseous.

\ No newline at end of file diff --git a/obj/structure/destructible/cult/pylon.html b/obj/structure/destructible/cult/pylon.html new file mode 100644 index 0000000000000..533984d52b355 --- /dev/null +++ b/obj/structure/destructible/cult/pylon.html @@ -0,0 +1 @@ +/obj/structure/destructible/cult/pylon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pylon

Vars

corruption_cooldownThe cooldown for corruptions.
corruption_cooldown_durationLength of the cooldown in between tile corruptions. Doubled if no turfs are found.

Var Details

corruption_cooldown

The cooldown for corruptions.

corruption_cooldown_duration

Length of the cooldown in between tile corruptions. Doubled if no turfs are found.

\ No newline at end of file diff --git a/obj/structure/destructible/eldritch_crucible.html b/obj/structure/destructible/eldritch_crucible.html new file mode 100644 index 0000000000000..aad9ced6dd381 --- /dev/null +++ b/obj/structure/destructible/eldritch_crucible.html @@ -0,0 +1 @@ +/obj/structure/destructible/eldritch_crucible - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

eldritch_crucible

Vars

current_massHow much mass this currently holds
in_useCheck to see if it is currently being used.
max_massMaximum amount of mass

Var Details

current_mass

How much mass this currently holds

in_use

Check to see if it is currently being used.

max_mass

Maximum amount of mass

\ No newline at end of file diff --git a/obj/structure/detectiveboard.html b/obj/structure/detectiveboard.html new file mode 100644 index 0000000000000..d5816762ae1ca --- /dev/null +++ b/obj/structure/detectiveboard.html @@ -0,0 +1,6 @@ +/obj/structure/detectiveboard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

detectiveboard

Vars

attaching_evidenceWhen player attaching evidence to board this will become TRUE
case_colorsColors for case color
casesList of board cases
current_caseIndex of viewing case in cases array

Procs

attackbyAttaching evidences: photo and papers
remove_itemRemoves an item from the notice board

Var Details

attaching_evidence

When player attaching evidence to board this will become TRUE

case_colors

Colors for case color

cases

List of board cases

current_case

Index of viewing case in cases array

Proc Details

attackby

Attaching evidences: photo and papers

remove_item

Removes an item from the notice board

+

Arguments:

+
    +
  • item - The item that is to be removed
  • +
  • user - The mob that is trying to get the item removed, if there is one
  • +
\ No newline at end of file diff --git a/obj/structure/displaycase.html b/obj/structure/displaycase.html new file mode 100644 index 0000000000000..eb319adc6d5fa --- /dev/null +++ b/obj/structure/displaycase.html @@ -0,0 +1 @@ +/obj/structure/displaycase - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

displaycase

Vars

alarm_managerRepresents a signel source of screaming when broken
alertIs the displaycase hooked up to a burglar alarm?
autoexamine_while_closedUsed for subtypes that have a UI in them. The examine on click while adjecent will not fire, as we already get a popup
custom_glass_overlayIf we have a custom glass overlay to use.
glass_fixDisplaycase is fixed by glass
openIs the displaycase open at the moment?
showpieceThe showpiece item inside the case
showpiece_typeThis allows for showpieces that can only hold items if they're the same istype as this.
start_showpiece_typeAdd type for items on display

Procs

dumpRemoves the showpiece from the displaycase
insert_showpieceHandles placing an item into the display case. Returns TRUE if the item failed to be placed inside the container, useful for descendants
toggle_lockOpens and closes the display case
trigger_alarmAnti-theft alarm triggered when broken.

Var Details

alarm_manager

Represents a signel source of screaming when broken

alert

Is the displaycase hooked up to a burglar alarm?

autoexamine_while_closed

Used for subtypes that have a UI in them. The examine on click while adjecent will not fire, as we already get a popup

custom_glass_overlay

If we have a custom glass overlay to use.

glass_fix

Displaycase is fixed by glass

open

Is the displaycase open at the moment?

showpiece

The showpiece item inside the case

showpiece_type

This allows for showpieces that can only hold items if they're the same istype as this.

start_showpiece_type

Add type for items on display

Proc Details

dump

Removes the showpiece from the displaycase

insert_showpiece

Handles placing an item into the display case. Returns TRUE if the item failed to be placed inside the container, useful for descendants

toggle_lock

Opens and closes the display case

trigger_alarm

Anti-theft alarm triggered when broken.

\ No newline at end of file diff --git a/obj/structure/displaycase/forsale.html b/obj/structure/displaycase/forsale.html new file mode 100644 index 0000000000000..cfb9e0d3e4c1a --- /dev/null +++ b/obj/structure/displaycase/forsale.html @@ -0,0 +1 @@ +/obj/structure/displaycase/forsale - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

forsale

Vars

autoexamine_while_closedCan be placed and moved onto a table.
payments_accThe Account which will receive payment for purchases. Set by the first ID to swipe the tray.
sale_priceThe price of the item being sold. Altered by grab intent ID use.

Var Details

autoexamine_while_closed

Can be placed and moved onto a table.

payments_acc

The Account which will receive payment for purchases. Set by the first ID to swipe the tray.

sale_price

The price of the item being sold. Altered by grab intent ID use.

\ No newline at end of file diff --git a/obj/structure/displaycase/trophy.html b/obj/structure/displaycase/trophy.html new file mode 100644 index 0000000000000..6c617ba0e93dd --- /dev/null +++ b/obj/structure/displaycase/trophy.html @@ -0,0 +1 @@ +/obj/structure/displaycase/trophy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

trophy

Vars

historian_modeare we about to edit
holographic_showpieceis the trophy a hologram, not a real item placed by a player?
placer_keythe key of the player who placed the item in the case
trophy_messagethe trophy message

Procs

set_up_trophyCreates a showpiece dummy to display, using persistent data
toggle_historian_modeToggles the mode that shows the historian panel on the UI, enabling saving the looks and the trophy message of the current trophy

Var Details

historian_mode

are we about to edit

holographic_showpiece

is the trophy a hologram, not a real item placed by a player?

placer_key

the key of the player who placed the item in the case

trophy_message

the trophy message

Proc Details

set_up_trophy

Creates a showpiece dummy to display, using persistent data

toggle_historian_mode

Toggles the mode that shows the historian panel on the UI, enabling saving the looks and the trophy message of the current trophy

\ No newline at end of file diff --git a/obj/structure/displaycase_chassis.html b/obj/structure/displaycase_chassis.html new file mode 100644 index 0000000000000..c9c3300d551ec --- /dev/null +++ b/obj/structure/displaycase_chassis.html @@ -0,0 +1 @@ +/obj/structure/displaycase_chassis - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

displaycase_chassis

Vars

electronicsThe airlock electronics inserted into the chassis, to be moved to the finished product.

Procs

make_final_resultMakes the final result of the chassis, then deletes itself.

Var Details

electronics

The airlock electronics inserted into the chassis, to be moved to the finished product.

Proc Details

make_final_result

Makes the final result of the chassis, then deletes itself.

\ No newline at end of file diff --git a/obj/structure/disposalholder.html b/obj/structure/disposalholder.html new file mode 100644 index 0000000000000..8c7224669886b --- /dev/null +++ b/obj/structure/disposalholder.html @@ -0,0 +1,5 @@ +/obj/structure/disposalholder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

disposalholder

Vars

activeTrue if the holder is moving, otherwise inactive
countCan travel 1000 steps before going inactive (in case of loops)
destinationTagChanges if contains a delivery container
gasGas used to flush, will appear at exit point
hasmobContains a mob?
tomailContains wrapped package?

Procs

findpipeFinds a matching pipe on a turf
initInitializes a holder from the contents of a disposal unit
mergeMerge two holder objects, used when a holder meets a stuck holder
movement_stopHandles what happens to the contents when the qdel signal triggers
nextlocFinds the turf which should contain the next pipe
pre_moveHandles the preprocess check signal, sets the current pipe as the last pipe
startStarts the movement process, argument is the disposal unit the holder started in
start_movingStarts the movement process, persists while the holder is moving through pipes
struggle_freeCompletes the struggle code
struggle_prepStarts the struggle code
try_expelHandles the postprocess check signal, tries to leave the pipe
vent_gasCalled to vent all gas in holder to a location

Var Details

active

True if the holder is moving, otherwise inactive

count

Can travel 1000 steps before going inactive (in case of loops)

destinationTag

Changes if contains a delivery container

gas

Gas used to flush, will appear at exit point

hasmob

Contains a mob?

tomail

Contains wrapped package?

Proc Details

findpipe

Finds a matching pipe on a turf

init

Initializes a holder from the contents of a disposal unit

merge

Merge two holder objects, used when a holder meets a stuck holder

movement_stop

Handles what happens to the contents when the qdel signal triggers

nextloc

Finds the turf which should contain the next pipe

pre_move

Handles the preprocess check signal, sets the current pipe as the last pipe

start

Starts the movement process, argument is the disposal unit the holder started in

start_moving

Starts the movement process, persists while the holder is moving through pipes

struggle_free

Completes the struggle code

+

The linter gets upsetti spaghetti if this is part of the above proc +because the do_after is a sleep.

struggle_prep

Starts the struggle code

+

Called by resist verb (or hotkey) via signal. Makes a sanity +check and then calls part 2.

try_expel

Handles the postprocess check signal, tries to leave the pipe

vent_gas

Called to vent all gas in holder to a location

\ No newline at end of file diff --git a/obj/structure/disposaloutlet.html b/obj/structure/disposaloutlet.html new file mode 100644 index 0000000000000..85e2fc35f9b1c --- /dev/null +++ b/obj/structure/disposaloutlet.html @@ -0,0 +1 @@ +/obj/structure/disposaloutlet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

disposaloutlet

Vars

eject_speedhow fast we're spitting fir- atoms

Var Details

eject_speed

how fast we're spitting fir- atoms

\ No newline at end of file diff --git a/obj/structure/disposalpipe.html b/obj/structure/disposalpipe.html new file mode 100644 index 0000000000000..b27c4394429a9 --- /dev/null +++ b/obj/structure/disposalpipe.html @@ -0,0 +1,6 @@ +/obj/structure/disposalpipe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

disposalpipe

Vars

padded_cornersWhether a disposal pipe will hurt if a person changes direction. FALSE for hurting, TRUE to prevent making them hurt.
spawn_pipeShould we create a pipe on destroy?
storedThe pipe used to create us, if it exists +(I like it when c4 carries over)

Procs

shuttleRotateStructure rotate procs
spew_forthExpells the pipe's contents.

Var Details

padded_corners

Whether a disposal pipe will hurt if a person changes direction. FALSE for hurting, TRUE to prevent making them hurt.

spawn_pipe

Should we create a pipe on destroy?

stored

The pipe used to create us, if it exists +(I like it when c4 carries over)

Proc Details

shuttleRotate

Structure rotate procs

spew_forth

Expells the pipe's contents.

+

This proc checks through src's contents for holder objects, +and then tells each one to empty onto the tile. Called when +the pipe is deconstructed or someone struggles out.

\ No newline at end of file diff --git a/obj/structure/disposalpipe/rotator.html b/obj/structure/disposalpipe/rotator.html new file mode 100644 index 0000000000000..3a131168b0e63 --- /dev/null +++ b/obj/structure/disposalpipe/rotator.html @@ -0,0 +1 @@ +/obj/structure/disposalpipe/rotator - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

rotator

Vars

direction_angleIn what direction the atom travels.

Var Details

direction_angle

In what direction the atom travels.

\ No newline at end of file diff --git a/obj/structure/disposalpipe/sorting.html b/obj/structure/disposalpipe/sorting.html new file mode 100644 index 0000000000000..42eff8ece54ee --- /dev/null +++ b/obj/structure/disposalpipe/sorting.html @@ -0,0 +1 @@ +/obj/structure/disposalpipe/sorting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

sorting

Procs

check_sortingSorting check, to be overridden in subtypes

Proc Details

check_sorting

Sorting check, to be overridden in subtypes

\ No newline at end of file diff --git a/obj/structure/door_assembly.html b/obj/structure/door_assembly.html new file mode 100644 index 0000000000000..695610e262150 --- /dev/null +++ b/obj/structure/door_assembly.html @@ -0,0 +1 @@ +/obj/structure/door_assembly - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

door_assembly

Vars

airlock_typeThe type path of the airlock once completed (solid version)
glassFALSE = glass can be installed. TRUE = glass is already installed.
glass_typeThe type path of the airlock once completed (glass version)
heat_proof_finishedWhether to heat-proof the finished airlock
material_amtAmount of material the airlock drops when deconstructed
material_typeWhat type of material the airlock drops when deconstructed
multi_tileDo we perform the extra checks required for multi-tile (large) airlocks
noglassAirlocks with no glass version, also cannot be modified with sheets
nomineralAirlock with glass version, but cannot be modified with sheets
previous_assemblyIf you're changing the airlock material, what is the previous type
stateAirlock's current construction state

Var Details

airlock_type

The type path of the airlock once completed (solid version)

glass

FALSE = glass can be installed. TRUE = glass is already installed.

glass_type

The type path of the airlock once completed (glass version)

heat_proof_finished

Whether to heat-proof the finished airlock

material_amt

Amount of material the airlock drops when deconstructed

material_type

What type of material the airlock drops when deconstructed

multi_tile

Do we perform the extra checks required for multi-tile (large) airlocks

noglass

Airlocks with no glass version, also cannot be modified with sheets

nomineral

Airlock with glass version, but cannot be modified with sheets

previous_assembly

If you're changing the airlock material, what is the previous type

state

Airlock's current construction state

\ No newline at end of file diff --git a/obj/structure/elite_tumor.html b/obj/structure/elite_tumor.html new file mode 100644 index 0000000000000..5b5683ab720fc --- /dev/null +++ b/obj/structure/elite_tumor.html @@ -0,0 +1 @@ +/obj/structure/elite_tumor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

elite_tumor

Vars

potentialspawnsList of all potentially spawned elites

Var Details

potentialspawns

List of all potentially spawned elites

\ No newline at end of file diff --git a/obj/structure/emergency_shield/cult/barrier.html b/obj/structure/emergency_shield/cult/barrier.html new file mode 100644 index 0000000000000..5004dc9665b3c --- /dev/null +++ b/obj/structure/emergency_shield/cult/barrier.html @@ -0,0 +1,4 @@ +/obj/structure/emergency_shield/cult/barrier - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

barrier

Vars

parent_runeThe rune that created the shield itself. Used to delete the rune when the shield is destroyed.

Procs

ToggleTurns the shield on and off.

Var Details

parent_rune

The rune that created the shield itself. Used to delete the rune when the shield is destroyed.

Proc Details

Toggle

Turns the shield on and off.

+

The shield has 2 states: on and off. When on, it will block movement,projectiles, items, etc. and be clearly visible, and block atmospheric gases. +When off, the rune no longer blocks anything and turns invisible. +The barrier itself is not intended to interact with the conceal runes cult spell for balance purposes.

\ No newline at end of file diff --git a/obj/structure/emergency_shield/modular.html b/obj/structure/emergency_shield/modular.html new file mode 100644 index 0000000000000..5e80f7598ef65 --- /dev/null +++ b/obj/structure/emergency_shield/modular.html @@ -0,0 +1 @@ +/obj/structure/emergency_shield/modular - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

modular

Vars

shield_generatorThe shield generator sustaining us

Var Details

shield_generator

The shield generator sustaining us

\ No newline at end of file diff --git a/obj/structure/emergency_shield/regenerating.html b/obj/structure/emergency_shield/regenerating.html new file mode 100644 index 0000000000000..fd4a86f8e2d86 --- /dev/null +++ b/obj/structure/emergency_shield/regenerating.html @@ -0,0 +1 @@ +/obj/structure/emergency_shield/regenerating - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

regenerating

Subtype of shields that repair over time after sustaining integrity damage

Vars

heal_rate_per_secondHow much integrity is healed per second (per process multiplied by seconds per tick)

Var Details

heal_rate_per_second

How much integrity is healed per second (per process multiplied by seconds per tick)

\ No newline at end of file diff --git a/obj/structure/energy_net.html b/obj/structure/energy_net.html new file mode 100644 index 0000000000000..54c73fefd8364 --- /dev/null +++ b/obj/structure/energy_net.html @@ -0,0 +1,4 @@ +/obj/structure/energy_net - /tg/ Station 13
/tg/ Station 13 - Modules - Types

Energy Net

Energy net which ensnares prey until it is destroyed. Used by space ninjas.

+

Energy net which keeps its target from moving until it is destroyed. Used to send +players to a holding area in which they could never leave, but such feature has since +been removed.

\ No newline at end of file diff --git a/obj/structure/ethereal_crystal.html b/obj/structure/ethereal_crystal.html new file mode 100644 index 0000000000000..e737a8e29e46e --- /dev/null +++ b/obj/structure/ethereal_crystal.html @@ -0,0 +1 @@ +/obj/structure/ethereal_crystal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

ethereal_crystal

Vars

being_builtIs the crystal still being built? True by default, gets changed after a timer.
crystal_heal_timerTimer for the healing process. Stops if destroyed.
ethereal_heartThe organ this crystal belongs to

Var Details

being_built

Is the crystal still being built? True by default, gets changed after a timer.

crystal_heal_timer

Timer for the healing process. Stops if destroyed.

ethereal_heart

The organ this crystal belongs to

\ No newline at end of file diff --git a/obj/structure/falsewall/uranium.html b/obj/structure/falsewall/uranium.html new file mode 100644 index 0000000000000..e3a2c989f4404 --- /dev/null +++ b/obj/structure/falsewall/uranium.html @@ -0,0 +1 @@ +/obj/structure/falsewall/uranium - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

uranium

Vars

activeMutex to prevent infinite recursion when propagating radiation pulses
last_eventThe last time a radiation pulse was performed

Var Details

active

Mutex to prevent infinite recursion when propagating radiation pulses

last_event

The last time a radiation pulse was performed

\ No newline at end of file diff --git a/obj/structure/fermenting_barrel.html b/obj/structure/fermenting_barrel.html new file mode 100644 index 0000000000000..f63e18287838c --- /dev/null +++ b/obj/structure/fermenting_barrel.html @@ -0,0 +1 @@ +/obj/structure/fermenting_barrel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fermenting_barrel

Vars

can_openCan the barrel be opened?
fermentingWhether the fermentation is ongoing
lid_close_soundSound played when the lid is closed.
lid_open_soundSound played when the lid is opened.
openIs the barrel currently opened?
potential_volumeThe amount of reagents that can be created from the contained products, used for validation
sound_volumeThe volume of the barrel sounds
soundloopThe sound of fermentation

Procs

insert_fruitAdds the fruit to the barrel to queue the fermentation
process_fermentationFerments the next found fruit into wine
start_fermentationStarts the fermentation process
stop_fermentationStops the fermentation process

Var Details

can_open

Can the barrel be opened?

fermenting

Whether the fermentation is ongoing

lid_close_sound

Sound played when the lid is closed.

lid_open_sound

Sound played when the lid is opened.

open

Is the barrel currently opened?

potential_volume

The amount of reagents that can be created from the contained products, used for validation

sound_volume

The volume of the barrel sounds

soundloop

The sound of fermentation

Proc Details

insert_fruit

Adds the fruit to the barrel to queue the fermentation

process_fermentation

Ferments the next found fruit into wine

start_fermentation

Starts the fermentation process

stop_fermentation

Stops the fermentation process

\ No newline at end of file diff --git a/obj/structure/filingcabinet/employment.html b/obj/structure/filingcabinet/employment.html new file mode 100644 index 0000000000000..f3b55aec6e1ca --- /dev/null +++ b/obj/structure/filingcabinet/employment.html @@ -0,0 +1 @@ +/obj/structure/filingcabinet/employment - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

employment

Vars

virginThis var is so that its filled on crew interaction to be as accurate (including latejoins) as possible, true until first interact

Var Details

virgin

This var is so that its filled on crew interaction to be as accurate (including latejoins) as possible, true until first interact

\ No newline at end of file diff --git a/obj/structure/filingcabinet/medical.html b/obj/structure/filingcabinet/medical.html new file mode 100644 index 0000000000000..e4f7a5698dcba --- /dev/null +++ b/obj/structure/filingcabinet/medical.html @@ -0,0 +1 @@ +/obj/structure/filingcabinet/medical - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

medical

Vars

virginThis var is so that its filled on crew interaction to be as accurate (including latejoins) as possible, true until first interact

Var Details

virgin

This var is so that its filled on crew interaction to be as accurate (including latejoins) as possible, true until first interact

\ No newline at end of file diff --git a/obj/structure/fireaxecabinet.html b/obj/structure/fireaxecabinet.html new file mode 100644 index 0000000000000..837cf745fb666 --- /dev/null +++ b/obj/structure/fireaxecabinet.html @@ -0,0 +1 @@ +/obj/structure/fireaxecabinet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

fireaxecabinet

Vars

held_itemThe item we're holding.
item_overlayOverlay we get when the item is inside us.
item_pathThe path of the item we spawn and can hold.
lockedDo we need to be unlocked to be opened.
openAre we opened, can someone take the held item out.
populate_contentsWhether we should populate our own contents on Initialize()

Var Details

held_item

The item we're holding.

item_overlay

Overlay we get when the item is inside us.

item_path

The path of the item we spawn and can hold.

locked

Do we need to be unlocked to be opened.

open

Are we opened, can someone take the held item out.

populate_contents

Whether we should populate our own contents on Initialize()

\ No newline at end of file diff --git a/obj/structure/fireplace.html b/obj/structure/fireplace.html new file mode 100644 index 0000000000000..2b6cae39fe3d1 --- /dev/null +++ b/obj/structure/fireplace.html @@ -0,0 +1 @@ +/obj/structure/fireplace - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

fireplace

Vars

burning_loopthe looping sound effect that is played while burning
flame_expiry_timerhow much time is left before fire runs out of fuel
fuel_addedthe amount of fuel for the fire
litis the fireplace lit?

Procs

get_light_offsetWe're offset back into the wall, account for that

Var Details

burning_loop

the looping sound effect that is played while burning

flame_expiry_timer

how much time is left before fire runs out of fuel

fuel_added

the amount of fuel for the fire

lit

is the fireplace lit?

Proc Details

get_light_offset

We're offset back into the wall, account for that

\ No newline at end of file diff --git a/obj/structure/flora.html b/obj/structure/flora.html new file mode 100644 index 0000000000000..71d486414ec13 --- /dev/null +++ b/obj/structure/flora.html @@ -0,0 +1,3 @@ +/obj/structure/flora - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

flora

Vars

can_uprootIf the user is allowed to uproot the flora
flora_flagsFlags for the flora to determine what kind of sound to play when it gets hit
harvest_amount_highThe high end of how many product_type items you get
harvest_amount_lowThe low end of how many product_type items you get
harvest_message_true_thresholdsSee proc/harvest() and where this is used for an explaination on how this works
harvest_timeHow long it takes to harvest the flora with the correct tool
harvest_verbThe "verb" to use when the user harvests the flora
harvest_verb_suffixWhat should be added to harvest_verb depending on the context ("user harvest(s) the tree" / "user chop(s down) the tree")
harvest_with_handsIf the user is able to harvest this with their hands
harvestableIf false, the flora won't be able to be harvested at all. If it's true, go through checks normally to determine if the flora is able to be harvested
harvested_descIf set, the flora will have this as its description after being harvested. When the flora becomes harvestable again, it regerts to its initial(desc)
harvested_nameIf set, the flora will have this as its name after being harvested. When the flora becomes harvestable again, it reverts to its initial(name)
product_typesA lazylist of products that could be created when harvesting this flora, syntax is (type = weight) +Because of how this works, it can spawn in anomalies if you want it to. Or wall girders
regrowth_time_highStops the flora from regrowing if this is set to 0
regrowth_time_lowVariables for determining the low/high ends of how long it takes for the flora takes to grow.

Var Details

can_uproot

If the user is allowed to uproot the flora

flora_flags

Flags for the flora to determine what kind of sound to play when it gets hit

harvest_amount_high

The high end of how many product_type items you get

harvest_amount_low

The low end of how many product_type items you get

harvest_message_true_thresholds

See proc/harvest() and where this is used for an explaination on how this works

harvest_time

How long it takes to harvest the flora with the correct tool

harvest_verb

The "verb" to use when the user harvests the flora

harvest_verb_suffix

What should be added to harvest_verb depending on the context ("user harvest(s) the tree" / "user chop(s down) the tree")

harvest_with_hands

If the user is able to harvest this with their hands

harvestable

If false, the flora won't be able to be harvested at all. If it's true, go through checks normally to determine if the flora is able to be harvested

harvested_desc

If set, the flora will have this as its description after being harvested. When the flora becomes harvestable again, it regerts to its initial(desc)

harvested_name

If set, the flora will have this as its name after being harvested. When the flora becomes harvestable again, it reverts to its initial(name)

product_types

A lazylist of products that could be created when harvesting this flora, syntax is (type = weight) +Because of how this works, it can spawn in anomalies if you want it to. Or wall girders

regrowth_time_high

Stops the flora from regrowing if this is set to 0

regrowth_time_low

Variables for determining the low/high ends of how long it takes for the flora takes to grow.

\ No newline at end of file diff --git a/obj/structure/flora/tree.html b/obj/structure/flora/tree.html new file mode 100644 index 0000000000000..1cf1ba52d75a7 --- /dev/null +++ b/obj/structure/flora/tree.html @@ -0,0 +1 @@ +/obj/structure/flora/tree - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

tree

Trees

Procs

get_seethrough_mapReturn a see_through_map, examples in seethrough.dm

Proc Details

get_seethrough_map

Return a see_through_map, examples in seethrough.dm

\ No newline at end of file diff --git a/obj/structure/fluff.html b/obj/structure/fluff.html new file mode 100644 index 0000000000000..181684db1f83a --- /dev/null +++ b/obj/structure/fluff.html @@ -0,0 +1 @@ +/obj/structure/fluff - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

Fluff structure

Fluff structures serve no purpose and exist only for enriching the environment. By default, they can be deconstructed with a wrench.

Vars

deconstructibleIf true, the structure can be deconstructed into a metal sheet with a wrench.

Var Details

deconstructible

If true, the structure can be deconstructed into a metal sheet with a wrench.

\ No newline at end of file diff --git a/obj/structure/fluff/airlock_filler.html b/obj/structure/fluff/airlock_filler.html new file mode 100644 index 0000000000000..d1c51abdc01d2 --- /dev/null +++ b/obj/structure/fluff/airlock_filler.html @@ -0,0 +1 @@ +/obj/structure/fluff/airlock_filler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

airlock_filler

Vars

filled_airlockThe door/airlock this fluff panel is attached to

Procs

CanAllowThroughMulti-tile airlocks (using a filler panel) have special handling for movables with PASSGLASS
no_airlockMulti-tile airlocks pair with a filler panel, if one goes so does the other.
pair_airlockCreate a ref to our parent airlock and listen for a QDEL, which we will al

Var Details

filled_airlock

The door/airlock this fluff panel is attached to

Proc Details

CanAllowThrough

Multi-tile airlocks (using a filler panel) have special handling for movables with PASSGLASS

no_airlock

Multi-tile airlocks pair with a filler panel, if one goes so does the other.

pair_airlock

Create a ref to our parent airlock and listen for a QDEL, which we will al

\ No newline at end of file diff --git a/obj/structure/fluff/iced_abductor.html b/obj/structure/fluff/iced_abductor.html new file mode 100644 index 0000000000000..1757896362787 --- /dev/null +++ b/obj/structure/fluff/iced_abductor.html @@ -0,0 +1 @@ +/obj/structure/fluff/iced_abductor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

iced_abductor

Vars

nameUnless more non-machine ayy structures made, it will stay in fluff.

Var Details

name

Unless more non-machine ayy structures made, it will stay in fluff.

\ No newline at end of file diff --git a/obj/structure/foamedmetal.html b/obj/structure/foamedmetal.html new file mode 100644 index 0000000000000..2af4124cebf15 --- /dev/null +++ b/obj/structure/foamedmetal.html @@ -0,0 +1 @@ +/obj/structure/foamedmetal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

foamedmetal

FOAM STRUCTURE. Formed by metal foams. Dense and opaque, but easy to break

Vars

next_beepVar used to prevent spamming of the construction sound

Var Details

next_beep

Var used to prevent spamming of the construction sound

\ No newline at end of file diff --git a/obj/structure/frame.html b/obj/structure/frame.html new file mode 100644 index 0000000000000..5407cc0f2ea46 --- /dev/null +++ b/obj/structure/frame.html @@ -0,0 +1,27 @@ +/obj/structure/frame - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

frame

Vars

board_typeWhat board do we accept
circuitReference to the circuit inside the frame
stateThe current (de/con)struction state of the frame

Procs

circuit_addedCalled when circuit has been set to a new board
circuit_removedCalled when circuit has been removed from the frame
finalize_constructionAttempt to finalize the construction of the frame into a machine
install_boardInstalls the passed circuit board into the frame
install_circuit_from_part_replacerAttempt to install a circuit from the contents of an RPED
install_parts_from_part_replacerAttempt to install necessary parts from the contents of an RPED
try_dissassembleChecks if the frame can be disassembled, and if so, begins the process

Var Details

board_type

What board do we accept

circuit

Reference to the circuit inside the frame

state

The current (de/con)struction state of the frame

Proc Details

circuit_added

Called when circuit has been set to a new board

circuit_removed

Called when circuit has been removed from the frame

finalize_construction

Attempt to finalize the construction of the frame into a machine

+

If successful, results in qdel'ing the frame and newing of a machine

+

Arguments

+
    +
  • user - the player
  • +
  • tool - the tool used to finalize the construction
  • +

install_board

Installs the passed circuit board into the frame

+

Assumes there is no circuit already installed

+

Arguments

+
    +
  • board - the machine circuitboard to install
  • +
  • user - the player
  • +
  • by_hand - is the player installing the board by hand or from the RPED. +Used to decide how to transfer the board into the frame
  • +

install_circuit_from_part_replacer

Attempt to install a circuit from the contents of an RPED

+

Arguments

+
    +
  • user - the player
  • +
  • replacer - the RPED being used
  • +
  • no_sound - if true, no sound will be played
  • +

install_parts_from_part_replacer

Attempt to install necessary parts from the contents of an RPED

+

Arguments

+
    +
  • user - the player
  • +
  • replacer - the RPED being used
  • +
  • no_sound - if true, no sound will be played
  • +

try_dissassemble

Checks if the frame can be disassembled, and if so, begins the process

\ No newline at end of file diff --git a/obj/structure/frame/computer.html b/obj/structure/frame/computer.html new file mode 100644 index 0000000000000..1f4d5e66b9c6b --- /dev/null +++ b/obj/structure/frame/computer.html @@ -0,0 +1,15 @@ +/obj/structure/frame/computer - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

computer

Procs

add_cablingAdds cable to the computer to wire it +Arguments
add_glassAdds glass sheets to the computer to complete the screen +Arguments

Proc Details

add_cabling

Adds cable to the computer to wire it +Arguments

+
    +
  • mob/living/user - the player who is adding the cable
  • +
  • obj/item/stack/cable_coil/cable - the cable we are trying to add
  • +
  • time - time taken to complete the operation
  • +

add_glass

Adds glass sheets to the computer to complete the screen +Arguments

+
    +
  • mob/living/user - the player who is adding the glass
  • +
  • obj/item/stack/sheet/glass/glass - the glass we are trying to add
  • +
  • time - time taken to complete the operation
  • +
\ No newline at end of file diff --git a/obj/structure/frame/machine.html b/obj/structure/frame/machine.html new file mode 100644 index 0000000000000..18bf0790271f7 --- /dev/null +++ b/obj/structure/frame/machine.html @@ -0,0 +1,21 @@ +/obj/structure/frame/machine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

machine

Vars

componentsList of all compnents inside the frame contributing to its construction
req_component_namesUser-friendly list of names of required components
req_componentsList of all components required to construct the frame

Procs

add_partAttempts to add the passed part to the frame
finalize_constructionAttempt to finalize the construction of the frame into a machine +as according to our circuit and parts
look_forReturns the instance of path1 in list, else path2 in list

Var Details

components

List of all compnents inside the frame contributing to its construction

req_component_names

User-friendly list of names of required components

req_components

List of all components required to construct the frame

Proc Details

add_part

Attempts to add the passed part to the frame

+

Requires no sanity check that the passed part is a stock part

+

Arguments

+
    +
  • user - the player
  • +
  • tool - the part to add
  • +

finalize_construction

Attempt to finalize the construction of the frame into a machine +as according to our circuit and parts

+

If successful, results in qdel'ing the frame and newing of a machine

+

Arguments

+
    +
  • user - the player
  • +
  • tool - the tool used to finalize the construction
  • +

look_for

Returns the instance of path1 in list, else path2 in list

+

Arguments

+
    +
  • parts - the list of parts to search
  • +
  • path1 - the first path to search for
  • +
  • path2 - the second path to search for, if path1 is not found
  • +
\ No newline at end of file diff --git a/obj/structure/gel_cocoon.html b/obj/structure/gel_cocoon.html new file mode 100644 index 0000000000000..5af79b9d4ae57 --- /dev/null +++ b/obj/structure/gel_cocoon.html @@ -0,0 +1 @@ +/obj/structure/gel_cocoon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

gel_cocoon

Procs

dump_inhabitantThis proc dumps the mob and handles associated audiovisual feedback
insert_targetThis proc handles the insertion of a person into the cocoon

Proc Details

dump_inhabitant

This proc dumps the mob and handles associated audiovisual feedback

insert_target

This proc handles the insertion of a person into the cocoon

\ No newline at end of file diff --git a/obj/structure/geyser.html b/obj/structure/geyser.html new file mode 100644 index 0000000000000..0801c233a08a3 --- /dev/null +++ b/obj/structure/geyser.html @@ -0,0 +1 @@ +/obj/structure/geyser - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

geyser

A lavaland geyser that spawns chems and can be mining scanned for points. Made to work with the plumbing pump to extract that sweet rare nectar

Vars

discoveredHave we been discovered with a mining scanner?
discovery_messagethe message given when you discover this geyser.
erupting_stateset to null to get it greyscaled from "[icon_state]_soup". Not very usable with the whole random thing, but more types can be added if you change the spawn prob
max_volumemaximum volume
point_valueHow many points we grant to whoever discovers us
potencyhow much reagents we add every process (2 seconds)
reagent_idwhat chem do we produce?
true_namewhat's our real name that will show upon discovery? null to do nothing

Procs

processAdd reagents until we are full
start_chemmingstart making those CHHHHHEEEEEEMS. Called whenever chems are removed, it's fine because START_PROCESSING checks if we arent already processing
stop_chemmingWe're full so stop processing

Var Details

discovered

Have we been discovered with a mining scanner?

discovery_message

the message given when you discover this geyser.

erupting_state

set to null to get it greyscaled from "[icon_state]_soup". Not very usable with the whole random thing, but more types can be added if you change the spawn prob

max_volume

maximum volume

point_value

How many points we grant to whoever discovers us

potency

how much reagents we add every process (2 seconds)

reagent_id

what chem do we produce?

true_name

what's our real name that will show upon discovery? null to do nothing

Proc Details

process

Add reagents until we are full

start_chemming

start making those CHHHHHEEEEEEMS. Called whenever chems are removed, it's fine because START_PROCESSING checks if we arent already processing

stop_chemming

We're full so stop processing

\ No newline at end of file diff --git a/obj/structure/ghost_portal.html b/obj/structure/ghost_portal.html new file mode 100644 index 0000000000000..5bd0b10c18c78 --- /dev/null +++ b/obj/structure/ghost_portal.html @@ -0,0 +1,3 @@ +/obj/structure/ghost_portal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ghost_portal

Procs

make_ghost_swarmGenerates a poll for observers, spawning anyone who signs up in a large group of ghost mobs

Proc Details

make_ghost_swarm

Generates a poll for observers, spawning anyone who signs up in a large group of ghost mobs

+

Generates a poll that asks anyone observing for participation. Spawns a bunch of basicmob ghosts with the keys of candidates who have signed up. +Ghosts are deleted two minutes after being made, and exist to punch stuff until it breaks.

\ No newline at end of file diff --git a/obj/structure/girder.html b/obj/structure/girder.html new file mode 100644 index 0000000000000..4f0fc736a131b --- /dev/null +++ b/obj/structure/girder.html @@ -0,0 +1 @@ +/obj/structure/girder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

girder

Vars

construction_costThe material cost to construct something on the girder

Var Details

construction_cost

The material cost to construct something on the girder

\ No newline at end of file diff --git a/obj/structure/glowshroom.html b/obj/structure/glowshroom.html new file mode 100644 index 0000000000000..bb28e155a6ee8 --- /dev/null +++ b/obj/structure/glowshroom.html @@ -0,0 +1,9 @@ +/obj/structure/glowshroom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

glowshroom

Vars

blacklisted_glowshroom_turfsTurfs where the glowshroom cannot spread to
endurance_decay_rateAmount of percentage decay affects endurance.max_integrity =
floorBoolean to indicate if the shroom is on the floor/wall
generationMushroom generation number
idle_decay_maxAmount of decay when decay happens on process
idle_decay_minAmount of decay when decay happens on process.
max_delay_spreadMax time interval between glowshroom "spreads"
min_delay_spreadMin time interval between glowshroom "spreads"
myseedInternal seed of the glowshroom, stats are stored here
spread_cooldownCooldown for when next to try to spread.
spread_into_adjacent_chanceChance to spread into adjacent tiles (0-100)

Procs

DecayCauses the glowshroom to decay by decreasing its endurance, destroying it when it gets too low.
InitializeCreates a new glowshroom structure.
processCauses glowshroom spreading across the floor/walls.

Var Details

blacklisted_glowshroom_turfs

Turfs where the glowshroom cannot spread to

endurance_decay_rate

Amount of percentage decay affects endurance.max_integrity =

floor

Boolean to indicate if the shroom is on the floor/wall

generation

Mushroom generation number

idle_decay_max

Amount of decay when decay happens on process

idle_decay_min

Amount of decay when decay happens on process.

max_delay_spread

Max time interval between glowshroom "spreads"

min_delay_spread

Min time interval between glowshroom "spreads"

myseed

Internal seed of the glowshroom, stats are stored here

spread_cooldown

Cooldown for when next to try to spread.

spread_into_adjacent_chance

Chance to spread into adjacent tiles (0-100)

Proc Details

Decay

Causes the glowshroom to decay by decreasing its endurance, destroying it when it gets too low.

+

Arguments:

+
    +
  • amount - Amount of endurance to be reduced due to spread decay.
  • +

Initialize

Creates a new glowshroom structure.

+

Arguments:

+
    +
  • newseed - Seed of the shroom
  • +

process

Causes glowshroom spreading across the floor/walls.

\ No newline at end of file diff --git a/obj/structure/grille.html b/obj/structure/grille.html new file mode 100644 index 0000000000000..00f0ce8cd3e09 --- /dev/null +++ b/obj/structure/grille.html @@ -0,0 +1 @@ +/obj/structure/grille - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

grille

Vars

dramatically_disappearingWhether or not we're disappearing but dramatically

Procs

beforeShuttleMoveStructure move procs
is_shockedDo some very specific checks to see if we would get shocked. Returns TRUE if it's shocked

Var Details

dramatically_disappearing

Whether or not we're disappearing but dramatically

Proc Details

beforeShuttleMove

Structure move procs

is_shocked

Do some very specific checks to see if we would get shocked. Returns TRUE if it's shocked

\ No newline at end of file diff --git a/obj/structure/grille/tram.html b/obj/structure/grille/tram.html new file mode 100644 index 0000000000000..8c4257acb688d --- /dev/null +++ b/obj/structure/grille/tram.html @@ -0,0 +1,10 @@ +/obj/structure/grille/tram - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

tram

Procs

Initializethe tram has a few objects mapped onto it at roundstart, by default many of those objects have unwanted properties +for example grilles and windows have the atmos_sensitive element applied to them, which makes them register to +themselves moving to re register signals onto the turf via connect_loc. this is bad and dumb since it makes the tram +more expensive to move.

Proc Details

Initialize

the tram has a few objects mapped onto it at roundstart, by default many of those objects have unwanted properties +for example grilles and windows have the atmos_sensitive element applied to them, which makes them register to +themselves moving to re register signals onto the turf via connect_loc. this is bad and dumb since it makes the tram +more expensive to move.

+

if you map something on to the tram, make SURE if possible that it doesnt have anything reacting to its own movement +it will make the tram more expensive to move and we dont want that because we dont want to return to the days where +the tram took a third of the tick per movement when its just carrying its default mapped in objects

\ No newline at end of file diff --git a/obj/structure/guillotine.html b/obj/structure/guillotine.html new file mode 100644 index 0000000000000..4081d9ea57988 --- /dev/null +++ b/obj/structure/guillotine.html @@ -0,0 +1 @@ +/obj/structure/guillotine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

guillotine

Vars

blade_sharpnessHow sharp the blade is
blade_statusThe current state of the blade
current_actionWhat's currently happening to the guillotine
drop_soundThe sound the guillotine makes when it successfully cuts off a head
kill_countThe number of mobs the blade has killed

Procs

drop_bladeDrops the guillotine blade, potentially beheading or harming the buckled mob
raise_bladeSets the guillotine blade in a raised position

Var Details

blade_sharpness

How sharp the blade is

blade_status

The current state of the blade

current_action

What's currently happening to the guillotine

drop_sound

The sound the guillotine makes when it successfully cuts off a head

kill_count

The number of mobs the blade has killed

Proc Details

drop_blade

Drops the guillotine blade, potentially beheading or harming the buckled mob

raise_blade

Sets the guillotine blade in a raised position

\ No newline at end of file diff --git a/obj/structure/gulag_vent.html b/obj/structure/gulag_vent.html new file mode 100644 index 0000000000000..2978dfcf5f45d --- /dev/null +++ b/obj/structure/gulag_vent.html @@ -0,0 +1,2 @@ +/obj/structure/gulag_vent - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

gulag_vent

A boulder-spawning structure superficially similar to an ore vent which doesnt share any of its behaviour +Prisoners can haul boulders up out of it in case the actual mining area is totally spent

Vars

occupiedPrevents multiple people from hauling at a time
spawned_boulderWhat kind of rock we got in there?

Var Details

occupied

Prevents multiple people from hauling at a time

spawned_boulder

What kind of rock we got in there?

\ No newline at end of file diff --git a/obj/structure/guncase.html b/obj/structure/guncase.html new file mode 100644 index 0000000000000..2c78a98326f42 --- /dev/null +++ b/obj/structure/guncase.html @@ -0,0 +1,9 @@ +/obj/structure/guncase - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

guncase

Procs

check_menucheck_menu: Checks if we are allowed to interact with a radial menu
show_menushow_menu: Shows a radial menu to a user consisting of an available weaponry for taking

Proc Details

check_menu

check_menu: Checks if we are allowed to interact with a radial menu

+

Arguments:

+
    +
  • user The mob interacting with a menu
  • +

show_menu

show_menu: Shows a radial menu to a user consisting of an available weaponry for taking

+

Arguments:

+
    +
  • user The mob to which we are showing the radial menu
  • +
\ No newline at end of file diff --git a/obj/structure/hololadder.html b/obj/structure/hololadder.html new file mode 100644 index 0000000000000..1516e2f4d78dd --- /dev/null +++ b/obj/structure/hololadder.html @@ -0,0 +1 @@ +/obj/structure/hololadder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hololadder

Vars

server_refUses this to teleport observers back to the origin server
travel_timeTime req to disconnect properly

Procs

disconnectIf there's a pilot ref- send the disconnect signal
on_enterHelper for times when you dont have hands (gondola??)

Var Details

server_ref

Uses this to teleport observers back to the origin server

travel_time

Time req to disconnect properly

Proc Details

disconnect

If there's a pilot ref- send the disconnect signal

on_enter

Helper for times when you dont have hands (gondola??)

\ No newline at end of file diff --git a/obj/structure/holopay.html b/obj/structure/holopay.html new file mode 100644 index 0000000000000..55f8c2b2052de --- /dev/null +++ b/obj/structure/holopay.html @@ -0,0 +1,25 @@ +/obj/structure/holopay - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

holopay

Vars

force_feeReplaces the "pay whatever" functionality with a set amount when non-zero.
linked_cardID linked to the holopay
max_holo_rangeMax range at which the hologram can be projected before it deletes
shop_logoThe holopay shop icon displayed in the UI

Procs

alert_buyerAlerts the owner of the transaction.
assign_cardLinks the source card to the holopay. Begins checking if its in range.
dissipateCreates holopay vanishing effects. +Deletes the holopay thereafter.
handle_moveA periodic check to see if the projecting card is nearby. +Deletes the holopay if not.
process_paymentInitiates a transaction between accounts.

Var Details

force_fee

Replaces the "pay whatever" functionality with a set amount when non-zero.

linked_card

ID linked to the holopay

max_holo_range

Max range at which the hologram can be projected before it deletes

The holopay shop icon displayed in the UI

Proc Details

alert_buyer

Alerts the owner of the transaction.

+

Parameters:

+
    +
  • payee - The user who initiated the transaction.
  • +
  • amount - The amount of money that was paid. +Returns:
  • +
  • TRUE - alert was successful.
  • +

assign_card

Links the source card to the holopay. Begins checking if its in range.

+

Parameters:

+
    +
  • turf/target - The tile to project the holopay onto
  • +
  • obj/item/card/id/card - The card to link to the holopay +Returns:
  • +
  • TRUE - the card was linked
  • +

dissipate

Creates holopay vanishing effects. +Deletes the holopay thereafter.

handle_move

A periodic check to see if the projecting card is nearby. +Deletes the holopay if not.

process_payment

Initiates a transaction between accounts.

+

Parameters:

+
    +
  • mob/living/user - The user who initiated the transaction. +Returns:
  • +
  • TRUE - transaction was successful
  • +
\ No newline at end of file diff --git a/obj/structure/holosign/barrier.html b/obj/structure/holosign/barrier.html new file mode 100644 index 0000000000000..828a16c0bfad0 --- /dev/null +++ b/obj/structure/holosign/barrier.html @@ -0,0 +1 @@ +/obj/structure/holosign/barrier - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

barrier

Vars

allow_walkCan we pass through it on walk intent?
openableCan it be temporarily opened with the holosign projector?
openedIs it opened?
pass_icon_stateWhat is the icon of opened holobarrier?

Var Details

allow_walk

Can we pass through it on walk intent?

openable

Can it be temporarily opened with the holosign projector?

opened

Is it opened?

pass_icon_state

What is the icon of opened holobarrier?

\ No newline at end of file diff --git a/obj/structure/hoop.html b/obj/structure/hoop.html new file mode 100644 index 0000000000000..b10baa0ba66ba --- /dev/null +++ b/obj/structure/hoop.html @@ -0,0 +1 @@ +/obj/structure/hoop - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hoop

Vars

throw_range_successThe chance to score a ball into the hoop based on distance
total_scoreKeeps track of the total points scored

Procs

dunk_animationThis bobs the mob in the hoop direction for the dunk animation

Var Details

throw_range_success

The chance to score a ball into the hoop based on distance

total_score

Keeps track of the total points scored

Proc Details

dunk_animation

This bobs the mob in the hoop direction for the dunk animation

\ No newline at end of file diff --git a/obj/structure/hoop/minigame.html b/obj/structure/hoop/minigame.html new file mode 100644 index 0000000000000..5deb2cc8e4619 --- /dev/null +++ b/obj/structure/hoop/minigame.html @@ -0,0 +1 @@ +/obj/structure/hoop/minigame - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

minigame

Vars

team_ckeysThis is a list of ckeys for the minigame to prevent scoring on their own hoops

Var Details

team_ckeys

This is a list of ckeys for the minigame to prevent scoring on their own hoops

\ No newline at end of file diff --git a/obj/structure/inflatable.html b/obj/structure/inflatable.html new file mode 100644 index 0000000000000..153c358b01e84 --- /dev/null +++ b/obj/structure/inflatable.html @@ -0,0 +1 @@ +/obj/structure/inflatable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

inflatable

Vars

deflated_typeThe type we drop when deflated.
has_been_deflatedWhether or not the inflatable has been deflated
hit_soundThe hitsound made when we're... hit...
manual_deflation_timeHow quickly we deflate when manually deflated.
torn_typeThe type we drop when damaged.

Var Details

deflated_type

The type we drop when deflated.

has_been_deflated

Whether or not the inflatable has been deflated

hit_sound

The hitsound made when we're... hit...

manual_deflation_time

How quickly we deflate when manually deflated.

torn_type

The type we drop when damaged.

\ No newline at end of file diff --git a/obj/structure/inflatable/door.html b/obj/structure/inflatable/door.html new file mode 100644 index 0000000000000..07cf6d4e33ad1 --- /dev/null +++ b/obj/structure/inflatable/door.html @@ -0,0 +1 @@ +/obj/structure/inflatable/door - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

door

Vars

door_stateAre we open(FALSE), or are we closed(TRUE)?

Var Details

door_state

Are we open(FALSE), or are we closed(TRUE)?

\ No newline at end of file diff --git a/obj/structure/ladder.html b/obj/structure/ladder.html new file mode 100644 index 0000000000000..abf04e89ed139 --- /dev/null +++ b/obj/structure/ladder.html @@ -0,0 +1 @@ +/obj/structure/ladder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ladder

Vars

travel_timetravel time for ladder in deciseconds

Procs

ghost_useGhosts use the byond default popup menu function on right click, so this is going to work a little differently for them.
show_final_fluff_messageThe messages shown after the player has finished climbing. Players can see this happen from either src or the destination so we've 2 POVs here
show_initial_fluff_messageThe message shown when the player starts climbing the ladder
show_optionsShows a radial menu that players can use to climb up and down a stair.

Var Details

travel_time

travel time for ladder in deciseconds

Proc Details

ghost_use

Ghosts use the byond default popup menu function on right click, so this is going to work a little differently for them.

show_final_fluff_message

The messages shown after the player has finished climbing. Players can see this happen from either src or the destination so we've 2 POVs here

show_initial_fluff_message

The message shown when the player starts climbing the ladder

show_options

Shows a radial menu that players can use to climb up and down a stair.

\ No newline at end of file diff --git a/obj/structure/large_mortar.html b/obj/structure/large_mortar.html new file mode 100644 index 0000000000000..a04f5227a9a6f --- /dev/null +++ b/obj/structure/large_mortar.html @@ -0,0 +1 @@ +/obj/structure/large_mortar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

large_mortar

Vars

maximum_contained_itemsThe maximum number of items this structure can store

Procs

drop_everything_containedDrops all contents at the mortar
grind_target_itemGrinds the passed target item, and transfers any contained chems to the mortar as well
juice_target_itemJuices the passed target item, and transfers any contained chems to the mortar as well

Var Details

maximum_contained_items

The maximum number of items this structure can store

Proc Details

drop_everything_contained

Drops all contents at the mortar

grind_target_item

Grinds the passed target item, and transfers any contained chems to the mortar as well

juice_target_item

Juices the passed target item, and transfers any contained chems to the mortar as well

\ No newline at end of file diff --git a/obj/structure/lavaland/ash_walker.html b/obj/structure/lavaland/ash_walker.html new file mode 100644 index 0000000000000..82af7a736445d --- /dev/null +++ b/obj/structure/lavaland/ash_walker.html @@ -0,0 +1,3 @@ +/obj/structure/lavaland/ash_walker - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ash_walker

Procs

revive_ashwalkerProc that will spawn the egg that will revive the ashwalker +This is also the Skyrat replacement for /proc/remake_walker

Proc Details

revive_ashwalker

Proc that will spawn the egg that will revive the ashwalker +This is also the Skyrat replacement for /proc/remake_walker

\ No newline at end of file diff --git a/obj/structure/legionturret.html b/obj/structure/legionturret.html new file mode 100644 index 0000000000000..21a420a505d7a --- /dev/null +++ b/obj/structure/legionturret.html @@ -0,0 +1 @@ +/obj/structure/legionturret - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

legionturret

A basic turret that shoots at nearby mobs. Intended to be used for the legion megafauna.

Vars

initial_firing_timeTime until the tracer gets shot
projectile_typeWhat kind of projectile the actual damaging part should be.
shot_delayHow long it takes between shooting the tracer and the projectile.

Procs

fireCalled when attacking a target. Shoots a projectile at the turf underneath the target.
fire_beamCalled shot_delay after the turret shot the tracer. Shoots a projectile into the same direction.
set_up_shotHandles an extremely basic AI

Var Details

initial_firing_time

Time until the tracer gets shot

projectile_type

What kind of projectile the actual damaging part should be.

shot_delay

How long it takes between shooting the tracer and the projectile.

Proc Details

fire

Called when attacking a target. Shoots a projectile at the turf underneath the target.

fire_beam

Called shot_delay after the turret shot the tracer. Shoots a projectile into the same direction.

set_up_shot

Handles an extremely basic AI

\ No newline at end of file diff --git a/obj/structure/light_construct.html b/obj/structure/light_construct.html new file mode 100644 index 0000000000000..a43d6f1e06b7f --- /dev/null +++ b/obj/structure/light_construct.html @@ -0,0 +1 @@ +/obj/structure/light_construct - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

light_construct

Vars

cellReference for the internal cell
cell_connectorsCan we support a cell?
fixture_typeType of fixture for icon state
new_lightReference for light object
sheets_refundedAmount of sheets gained on deconstruction
stageLight construction stage (LIGHT_CONSTRUCT_EMPTY, LIGHT_CONSTRUCT_WIRED, LIGHT_CONSTRUCT_CLOSED)

Var Details

cell

Reference for the internal cell

cell_connectors

Can we support a cell?

fixture_type

Type of fixture for icon state

new_light

Reference for light object

sheets_refunded

Amount of sheets gained on deconstruction

stage

Light construction stage (LIGHT_CONSTRUCT_EMPTY, LIGHT_CONSTRUCT_WIRED, LIGHT_CONSTRUCT_CLOSED)

\ No newline at end of file diff --git a/obj/structure/light_puzzle.html b/obj/structure/light_puzzle.html new file mode 100644 index 0000000000000..85484b4603651 --- /dev/null +++ b/obj/structure/light_puzzle.html @@ -0,0 +1 @@ +/obj/structure/light_puzzle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

light_puzzle

Vars

banned_combinationsBanned combinations of the list in decimal
queue_sizequeue size, must match count of objects this activates!

Var Details

banned_combinations

Banned combinations of the list in decimal

queue_size

queue size, must match count of objects this activates!

\ No newline at end of file diff --git a/obj/structure/liquid_pump.html b/obj/structure/liquid_pump.html new file mode 100644 index 0000000000000..20ceab6e54c7d --- /dev/null +++ b/obj/structure/liquid_pump.html @@ -0,0 +1 @@ +/obj/structure/liquid_pump - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

liquid_pump

Vars

max_volumeHow many reagents at maximum can it hold
pump_speed_flatHow fast does the pump work, in flat values. Flat values on top of percentages to help processing
pump_speed_percentageHow fast does the pump work, in percentages relative to the volume we're working with
spewing_modeWhether spewing reagents out, instead of siphoning them
turned_onWhether its turned on and processing

Var Details

max_volume

How many reagents at maximum can it hold

pump_speed_flat

How fast does the pump work, in flat values. Flat values on top of percentages to help processing

pump_speed_percentage

How fast does the pump work, in percentages relative to the volume we're working with

spewing_mode

Whether spewing reagents out, instead of siphoning them

turned_on

Whether its turned on and processing

\ No newline at end of file diff --git a/obj/structure/lock_tear.html b/obj/structure/lock_tear.html new file mode 100644 index 0000000000000..9c735df1b558d --- /dev/null +++ b/obj/structure/lock_tear.html @@ -0,0 +1 @@ +/obj/structure/lock_tear - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lock_tear

Vars

ascendeeWho is our daddy?
gathering_candidatesTrue if we're currently checking for ghost opinions
monster_typesa static list of heretic summons we cam create, automatically populated from heretic monster subtypes
monster_types_blacklistA static list of heretic summons which we should not create

Procs

end_madnessDestroy the rift if you kill the heretic
ghost_to_monsterTurn a ghost into an 'orrible beast
poll_ghostsAsk ghosts if they want to make some noise

Var Details

ascendee

Who is our daddy?

gathering_candidates

True if we're currently checking for ghost opinions

monster_types

a static list of heretic summons we cam create, automatically populated from heretic monster subtypes

monster_types_blacklist

A static list of heretic summons which we should not create

Proc Details

end_madness

Destroy the rift if you kill the heretic

ghost_to_monster

Turn a ghost into an 'orrible beast

poll_ghosts

Ask ghosts if they want to make some noise

\ No newline at end of file diff --git a/obj/structure/mannequin.html b/obj/structure/mannequin.html new file mode 100644 index 0000000000000..d800928ee6d9a --- /dev/null +++ b/obj/structure/mannequin.html @@ -0,0 +1 @@ +/obj/structure/mannequin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mannequin

A mannequin! A structure that can display clothing on itself.

Vars

body_typeWhich body type we use, male or female?
materialMaterial we're used of, wood or plastic?
slot_flagsStatic list of slot flags we have clothing slots for.
starting_itemsList of all clothing items the mannequin should be spawning in with on Initialize.
worn_itemsAssoc list of all item slots (turned to strings) to the items they hold.

Var Details

body_type

Which body type we use, male or female?

material

Material we're used of, wood or plastic?

slot_flags

Static list of slot flags we have clothing slots for.

starting_items

List of all clothing items the mannequin should be spawning in with on Initialize.

worn_items

Assoc list of all item slots (turned to strings) to the items they hold.

\ No newline at end of file diff --git a/obj/structure/meateor_fluff/eyeball.html b/obj/structure/meateor_fluff/eyeball.html new file mode 100644 index 0000000000000..fc7d9876a5b5e --- /dev/null +++ b/obj/structure/meateor_fluff/eyeball.html @@ -0,0 +1 @@ +/obj/structure/meateor_fluff/eyeball - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

eyeball

Basically just an organic floor light

Procs

blinkPlay a blinking animation and queue it again

Proc Details

Play a blinking animation and queue it again

\ No newline at end of file diff --git a/obj/structure/meateor_fluff/flesh_pod.html b/obj/structure/meateor_fluff/flesh_pod.html new file mode 100644 index 0000000000000..d98b0be239a6b --- /dev/null +++ b/obj/structure/meateor_fluff/flesh_pod.html @@ -0,0 +1 @@ +/obj/structure/meateor_fluff/flesh_pod - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

flesh_pod

A sort of loot box for organs, cut it open and find a prize

Vars

allowed_organsTypes of organ we can spawn
stored_organTypepath of the organ to spawn when this is destroyed

Procs

cut_openCut the pod open and destroy it

Var Details

allowed_organs

Types of organ we can spawn

stored_organ

Typepath of the organ to spawn when this is destroyed

Proc Details

cut_open

Cut the pod open and destroy it

\ No newline at end of file diff --git a/obj/structure/microscope.html b/obj/structure/microscope.html new file mode 100644 index 0000000000000..9e1de88be7346 --- /dev/null +++ b/obj/structure/microscope.html @@ -0,0 +1 @@ +/obj/structure/microscope - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

microscope

Vars

current_dishAnalyzed dish

Procs

add_dishInsert a new dish, swapping the inserted one
remove_dishTake the inserted dish, or drop it on the floor

Var Details

current_dish

Analyzed dish

Proc Details

add_dish

Insert a new dish, swapping the inserted one

remove_dish

Take the inserted dish, or drop it on the floor

\ No newline at end of file diff --git a/obj/structure/millstone.html b/obj/structure/millstone.html new file mode 100644 index 0000000000000..de0181da06e62 --- /dev/null +++ b/obj/structure/millstone.html @@ -0,0 +1 @@ +/obj/structure/millstone - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

millstone

Vars

maximum_contained_itemsThe maximum number of items this structure can store

Procs

drop_everything_containedDrops all contents at the mortar
mill_it_upTakes the content's seeds and spits them out on the turf, as well as grinding whatever the contents may be

Var Details

maximum_contained_items

The maximum number of items this structure can store

Proc Details

drop_everything_contained

Drops all contents at the mortar

mill_it_up

Takes the content's seeds and spits them out on the turf, as well as grinding whatever the contents may be

\ No newline at end of file diff --git a/obj/structure/mineral_door.html b/obj/structure/mineral_door.html new file mode 100644 index 0000000000000..8fc8a760d79e8 --- /dev/null +++ b/obj/structure/mineral_door.html @@ -0,0 +1 @@ +/obj/structure/mineral_door - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

mineral_door

Procs

atom_deconstructEND TOOL OVERRIDES
pickaxe_doorTOOL OVERRIDES

Proc Details

atom_deconstruct

END TOOL OVERRIDES

pickaxe_door

TOOL OVERRIDES

\ No newline at end of file diff --git a/obj/structure/mineral_door/manual_colony_door.html b/obj/structure/mineral_door/manual_colony_door.html new file mode 100644 index 0000000000000..63552ca99e5ff --- /dev/null +++ b/obj/structure/mineral_door/manual_colony_door.html @@ -0,0 +1 @@ +/obj/structure/mineral_door/manual_colony_door - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

manual_colony_door

Vars

disassembled_typeWhat we disassemble into
manual_actuation_delayHow long it takes to open/close the door

Var Details

disassembled_type

What we disassemble into

manual_actuation_delay

How long it takes to open/close the door

\ No newline at end of file diff --git a/obj/structure/mining_bomb.html b/obj/structure/mining_bomb.html new file mode 100644 index 0000000000000..a56cb1402be45 --- /dev/null +++ b/obj/structure/mining_bomb.html @@ -0,0 +1 @@ +/obj/structure/mining_bomb - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mining_bomb

Vars

damageDamage done on explosion.
explosion_imageImage overlaid on explosion.
explosion_timeTime to explode from the priming
fauna_boostDamage multiplier on hostile fauna.
prime_timeTime to prime the explosion

Var Details

damage

Damage done on explosion.

explosion_image

Image overlaid on explosion.

explosion_time

Time to explode from the priming

fauna_boost

Damage multiplier on hostile fauna.

prime_time

Time to prime the explosion

\ No newline at end of file diff --git a/obj/structure/mirror.html b/obj/structure/mirror.html new file mode 100644 index 0000000000000..75636f0fba8d6 --- /dev/null +++ b/obj/structure/mirror.html @@ -0,0 +1 @@ +/obj/structure/mirror - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mirror

Vars

race_flagsFlags this race must have to be selectable with this type of mirror.
selectable_racesList of all Races that can be chosen, decided by its Initialize.

Var Details

race_flags

Flags this race must have to be selectable with this type of mirror.

selectable_races

List of all Races that can be chosen, decided by its Initialize.

\ No newline at end of file diff --git a/obj/structure/mirror/magic.html b/obj/structure/mirror/magic.html new file mode 100644 index 0000000000000..3836e586c2107 --- /dev/null +++ b/obj/structure/mirror/magic.html @@ -0,0 +1 @@ +/obj/structure/mirror/magic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

magic

Procs

attack_handString for the bra we use.

Proc Details

attack_hand

String for the bra we use.

\ No newline at end of file diff --git a/obj/structure/mirror/magic/pride.html b/obj/structure/mirror/magic/pride.html new file mode 100644 index 0000000000000..f9aaffb22eafc --- /dev/null +++ b/obj/structure/mirror/magic/pride.html @@ -0,0 +1 @@ +/obj/structure/mirror/magic/pride - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pride

Vars

changedIf the last user has altered anything about themselves

Var Details

changed

If the last user has altered anything about themselves

\ No newline at end of file diff --git a/obj/structure/mob_spawner.html b/obj/structure/mob_spawner.html new file mode 100644 index 0000000000000..0cab5e2b0a3c6 --- /dev/null +++ b/obj/structure/mob_spawner.html @@ -0,0 +1 @@ +/obj/structure/mob_spawner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mob_spawner

Vars

ghost_controllableDo spawned mobs become ghost controllable?
lootWhat loot do we spawn upon death?
max_mobsHow many mobs can we spawn?
monster_typesWhat mob to spawn
passive_spawningDoes this nest passively spawn mobs too?
regenerate_timeHow long it takes to regenerate mobs to spawn again
retaliate_cooldownHow long it takes for us to retaliate again.
spawn_cooldownHow long it takes for a new mob to emerge after being triggered.
trigger_rangeThe range at which these are triggered.

Var Details

ghost_controllable

Do spawned mobs become ghost controllable?

loot

What loot do we spawn upon death?

max_mobs

How many mobs can we spawn?

monster_types

What mob to spawn

passive_spawning

Does this nest passively spawn mobs too?

regenerate_time

How long it takes to regenerate mobs to spawn again

retaliate_cooldown

How long it takes for us to retaliate again.

spawn_cooldown

How long it takes for a new mob to emerge after being triggered.

trigger_range

The range at which these are triggered.

\ No newline at end of file diff --git a/obj/structure/moisture_trap.html b/obj/structure/moisture_trap.html new file mode 100644 index 0000000000000..1a1558dd6a288 --- /dev/null +++ b/obj/structure/moisture_trap.html @@ -0,0 +1,7 @@ +/obj/structure/moisture_trap - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

moisture_trap

    +
  • This structure acts as a source of moisture loving cell lines, +as well as a location where a hidden item can sometimes be retrieved +at the cost of risking a vicious bite.*
  • +

Vars

critter_infestedThis var determines if there is a chance to receive a bite when sticking your hand into the water.
hidden_itemThis var stores the hidden item that might be able to be retrieved from the trap
loot_tableweighted loot table for what loot you can find inside the moisture trap. +the actual loot isn't that great and should probably be improved and expanded later.

Procs

CanReachInsideThis proc checks if we are able to reach inside the trap to interact with it.

Var Details

critter_infested

This var determines if there is a chance to receive a bite when sticking your hand into the water.

hidden_item

This var stores the hidden item that might be able to be retrieved from the trap

loot_table

weighted loot table for what loot you can find inside the moisture trap. +the actual loot isn't that great and should probably be improved and expanded later.

Proc Details

CanReachInside

This proc checks if we are able to reach inside the trap to interact with it.

\ No newline at end of file diff --git a/obj/structure/mold.html b/obj/structure/mold.html new file mode 100644 index 0000000000000..7b64f55be504b --- /dev/null +++ b/obj/structure/mold.html @@ -0,0 +1 @@ +/obj/structure/mold - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mold

Vars

mold_controllerThe controller controlling the mold's expansion
mold_typeThe type of mold

Var Details

mold_controller

The controller controlling the mold's expansion

mold_type

The type of mold

\ No newline at end of file diff --git a/obj/structure/mold/resin.html b/obj/structure/mold/resin.html new file mode 100644 index 0000000000000..b8eb6e10dd0fe --- /dev/null +++ b/obj/structure/mold/resin.html @@ -0,0 +1 @@ +/obj/structure/mold/resin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

resin

Mold resin

Vars

floorAre we a floor resin? If not then we're a wall resin

Var Details

floor

Are we a floor resin? If not then we're a wall resin

\ No newline at end of file diff --git a/obj/structure/mold/structure.html b/obj/structure/mold/structure.html new file mode 100644 index 0000000000000..09727812c18a9 --- /dev/null +++ b/obj/structure/mold/structure.html @@ -0,0 +1 @@ +/obj/structure/mold/structure - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

structure

Vars

emits_lightDoes the structure emit light?

Var Details

emits_light

Does the structure emit light?

\ No newline at end of file diff --git a/obj/structure/mold/structure/conditioner.html b/obj/structure/mold/structure/conditioner.html new file mode 100644 index 0000000000000..25d681b33a8a4 --- /dev/null +++ b/obj/structure/mold/structure/conditioner.html @@ -0,0 +1 @@ +/obj/structure/mold/structure/conditioner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

conditioner

Conditioner

Vars

happy_atmosThe mold atmosphere conditioner will spawn the mold's preferred atmosphere every so often.
puff_cooldownThe time between injections of that mold type's preferred atmos
puff_delayTracks the status of the cooldown

Var Details

happy_atmos

The mold atmosphere conditioner will spawn the mold's preferred atmosphere every so often.

puff_cooldown

The time between injections of that mold type's preferred atmos

puff_delay

Tracks the status of the cooldown

\ No newline at end of file diff --git a/obj/structure/mold/structure/core.html b/obj/structure/mold/structure/core.html new file mode 100644 index 0000000000000..52c53796cc0ff --- /dev/null +++ b/obj/structure/mold/structure/core.html @@ -0,0 +1 @@ +/obj/structure/mold/structure/core - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

core

The core

Vars

next_retaliationThe time to the next attack
soundloopThe soundloop played by the core

Var Details

next_retaliation

The time to the next attack

soundloop

The soundloop played by the core

\ No newline at end of file diff --git a/obj/structure/mop_bucket.html b/obj/structure/mop_bucket.html new file mode 100644 index 0000000000000..c3bf860555ca5 --- /dev/null +++ b/obj/structure/mop_bucket.html @@ -0,0 +1 @@ +/obj/structure/mop_bucket - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mop_bucket

Vars

water_iconThe icon used for the water overlay

Var Details

water_icon

The icon used for the water overlay

\ No newline at end of file diff --git a/obj/structure/mop_bucket/janitorialcart.html b/obj/structure/mop_bucket/janitorialcart.html new file mode 100644 index 0000000000000..ee0f51e460ba1 --- /dev/null +++ b/obj/structure/mop_bucket/janitorialcart.html @@ -0,0 +1,5 @@ +/obj/structure/mop_bucket/janitorialcart - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

janitorialcart

Procs

check_menucheck_menu: Checks if we are allowed to interact with a radial menu

Proc Details

check_menu

check_menu: Checks if we are allowed to interact with a radial menu

+

Arguments:

+
    +
  • user The mob interacting with a menu
  • +
\ No newline at end of file diff --git a/obj/structure/mounted_gun.html b/obj/structure/mounted_gun.html new file mode 100644 index 0000000000000..7f07b3376ed9c --- /dev/null +++ b/obj/structure/mounted_gun.html @@ -0,0 +1 @@ +/obj/structure/mounted_gun - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mounted_gun

Vars

ammo_typeAccepted "ammo" type
anchorable_gunwhether the cannon can be unwrenched from the ground. Anchorable_cannon equivalent.
fire_delaydelay in firing the gun after lighting
fire_soundsound of firing for all but last shot
firing_shakes_cameraIf the gun shakes the camera when firing
fully_loaded_gunIf the gun is currently loaded with its maximum capacity.
last_fire_soundsound of firing for last shot
loaded_gunIf the gun has anything in it.
max_shots_per_fireMax shots per firing of the gun.
projectile_typeProjectile from said gun. Doesnt automatically inherit said ammo's projectile in case you wanted to make a gun that shoots floor tiles or something.
shot_delayDelay between shots
shots_in_gunShots currently loaded. Should never be more than max_shots_per_fire.
shots_per_loadshots added to gun, per piece of ammo loaded.

Procs

attackbyCovers Reloading and lighting of the gun

Var Details

ammo_type

Accepted "ammo" type

anchorable_gun

whether the cannon can be unwrenched from the ground. Anchorable_cannon equivalent.

fire_delay

delay in firing the gun after lighting

fire_sound

sound of firing for all but last shot

firing_shakes_camera

If the gun shakes the camera when firing

fully_loaded_gun

If the gun is currently loaded with its maximum capacity.

last_fire_sound

sound of firing for last shot

loaded_gun

If the gun has anything in it.

max_shots_per_fire

Max shots per firing of the gun.

projectile_type

Projectile from said gun. Doesnt automatically inherit said ammo's projectile in case you wanted to make a gun that shoots floor tiles or something.

shot_delay

Delay between shots

shots_in_gun

Shots currently loaded. Should never be more than max_shots_per_fire.

shots_per_load

shots added to gun, per piece of ammo loaded.

Proc Details

attackby

Covers Reloading and lighting of the gun

\ No newline at end of file diff --git a/obj/structure/mystery_box.html b/obj/structure/mystery_box.html new file mode 100644 index 0000000000000..c9da0462fc36b --- /dev/null +++ b/obj/structure/mystery_box.html @@ -0,0 +1 @@ +/obj/structure/mystery_box - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mystery_box

Vars

box_close_timerA timer for how long it takes for the box to close itself
box_expire_timerA timer for how long it takes for the box to start its expire animation
box_stateThe box's current state, and whether it can be interacted with in different ways
current_sound_channelStores the current sound channel we're using so we can cut off our own sounds as needed. Randomized after each roll
grant_extra_magIf the prize is a ballistic gun with an external magazine, should we grant the user a spare mag?
minds_that_opened_usA list of weakrefs to mind datums of people that opened it and how many times.
presented_itemThe object that represents the rapidly changing item that will be granted upon being claimed. Is not, itself, an item.
selectable_base_typeEvery type that's a child of this that has an icon, icon_state, and isn't ABSTRACT is fair game. More granularity to come
uses_leftHow many time can it still be used?
valid_typesThe instantiated list that contains all of the valid items that can be chosen from. Generated in /obj/structure/mystery_box/proc/generate_valid_types

Procs

activateThe box has been activated, play the sound and spawn the prop item
close_boxThe box is closed, whether because the prize fully expired, or it was claimed. Start resetting all of the state stuff
generate_valid_typesThis proc is used to define what item types valid_types is filled with
grant_weaponSomeone attacked the box with an empty hand, spawn the shown prize and give it to them, then close the box
present_weaponThe box has finished choosing, mark it as available for grabbing
ready_againThe cooldown between activations has finished, shake to show that
start_expire_offerThe prize is still claimable, but the animation will show it start to recede back into the box

Var Details

box_close_timer

A timer for how long it takes for the box to close itself

box_expire_timer

A timer for how long it takes for the box to start its expire animation

box_state

The box's current state, and whether it can be interacted with in different ways

current_sound_channel

Stores the current sound channel we're using so we can cut off our own sounds as needed. Randomized after each roll

grant_extra_mag

If the prize is a ballistic gun with an external magazine, should we grant the user a spare mag?

minds_that_opened_us

A list of weakrefs to mind datums of people that opened it and how many times.

presented_item

The object that represents the rapidly changing item that will be granted upon being claimed. Is not, itself, an item.

selectable_base_type

Every type that's a child of this that has an icon, icon_state, and isn't ABSTRACT is fair game. More granularity to come

uses_left

How many time can it still be used?

valid_types

The instantiated list that contains all of the valid items that can be chosen from. Generated in /obj/structure/mystery_box/proc/generate_valid_types

Proc Details

activate

The box has been activated, play the sound and spawn the prop item

close_box

The box is closed, whether because the prize fully expired, or it was claimed. Start resetting all of the state stuff

generate_valid_types

This proc is used to define what item types valid_types is filled with

grant_weapon

Someone attacked the box with an empty hand, spawn the shown prize and give it to them, then close the box

present_weapon

The box has finished choosing, mark it as available for grabbing

ready_again

The cooldown between activations has finished, shake to show that

start_expire_offer

The prize is still claimable, but the animation will show it start to recede back into the box

\ No newline at end of file diff --git a/obj/structure/no_effect_signpost/void.html b/obj/structure/no_effect_signpost/void.html new file mode 100644 index 0000000000000..63b08993cabc1 --- /dev/null +++ b/obj/structure/no_effect_signpost/void.html @@ -0,0 +1 @@ +/obj/structure/no_effect_signpost/void - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

void

Vars

powerLight power of the signpost.
rangeBrightness of the signpost.

Var Details

power

Light power of the signpost.

range

Brightness of the signpost.

\ No newline at end of file diff --git a/obj/structure/noticeboard.html b/obj/structure/noticeboard.html new file mode 100644 index 0000000000000..2a176c948ecbb --- /dev/null +++ b/obj/structure/noticeboard.html @@ -0,0 +1,6 @@ +/obj/structure/noticeboard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

noticeboard

Vars

noticesCurrent number of a pinned notices

Procs

remove_itemRemoves an item from the notice board

Var Details

notices

Current number of a pinned notices

Proc Details

remove_item

Removes an item from the notice board

+

Arguments:

+
    +
  • item - The item that is to be removed
  • +
  • user - The mob that is trying to get the item removed, if there is one
  • +
\ No newline at end of file diff --git a/obj/structure/ore_box.html b/obj/structure/ore_box.html new file mode 100644 index 0000000000000..0d8a59029919e --- /dev/null +++ b/obj/structure/ore_box.html @@ -0,0 +1 @@ +/obj/structure/ore_box - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ore_box

Ore box

Procs

dump_box_contentsDumps all contents of this ore box on the turf
on_changed_z_levelSpecial override for notify_contents = FALSE.

Proc Details

dump_box_contents

Dumps all contents of this ore box on the turf

on_changed_z_level

Special override for notify_contents = FALSE.

\ No newline at end of file diff --git a/obj/structure/ore_container/food_trough.html b/obj/structure/ore_container/food_trough.html new file mode 100644 index 0000000000000..712f53400a934 --- /dev/null +++ b/obj/structure/ore_container/food_trough.html @@ -0,0 +1 @@ +/obj/structure/ore_container/food_trough - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

food_trough

Vars

list_of_materialslist of materials in the trough
x_offsetsx offsets for materials to be placed
y_offsetsy offsets for materials to be placed

Var Details

list_of_materials

list of materials in the trough

x_offsets

x offsets for materials to be placed

y_offsets

y offsets for materials to be placed

\ No newline at end of file diff --git a/obj/structure/ore_container/material_stand.html b/obj/structure/ore_container/material_stand.html new file mode 100644 index 0000000000000..af68bb8cb2e72 --- /dev/null +++ b/obj/structure/ore_container/material_stand.html @@ -0,0 +1 @@ +/obj/structure/ore_container/material_stand - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

material_stand

unique items that spawn at the mook village

Procs

update_overlaysput ore icons on the counter!

Proc Details

update_overlays

put ore icons on the counter!

\ No newline at end of file diff --git a/obj/structure/ore_vein.html b/obj/structure/ore_vein.html new file mode 100644 index 0000000000000..5595d608202b9 --- /dev/null +++ b/obj/structure/ore_vein.html @@ -0,0 +1 @@ +/obj/structure/ore_vein - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ore_vein

Vars

base_descOur original description to hold. We'll revert to this when switching between the ore vein being depleted and not.
depletedIf the ore vein has been recently mined. If so, we cannot mine and must wait for it to regenerate.
mining_timeHow long it takes for a tool to mine the ore vein.
ore_amountHow much ore do we drop?
ore_descriptorWhen we start mining, what do we tell the user they're mining?
ore_typeWhat type of ore do we drop?
random_spriteIf we should pick a random sprite for the ore vein or not.
regeneration_timeHow long it takes for the ore to 'respawn' after being mined.
unique_spritesHow many unique sprites for ore we have, we will pick them at random.

Procs

regenerate_oreAfter the ore vein finishes its wait, we make the ore 'respawn' and return the ore to its original post-Initialize() icon_state.

Var Details

base_desc

Our original description to hold. We'll revert to this when switching between the ore vein being depleted and not.

depleted

If the ore vein has been recently mined. If so, we cannot mine and must wait for it to regenerate.

mining_time

How long it takes for a tool to mine the ore vein.

ore_amount

How much ore do we drop?

ore_descriptor

When we start mining, what do we tell the user they're mining?

ore_type

What type of ore do we drop?

random_sprite

If we should pick a random sprite for the ore vein or not.

regeneration_time

How long it takes for the ore to 'respawn' after being mined.

unique_sprites

How many unique sprites for ore we have, we will pick them at random.

Proc Details

regenerate_ore

After the ore vein finishes its wait, we make the ore 'respawn' and return the ore to its original post-Initialize() icon_state.

\ No newline at end of file diff --git a/obj/structure/ore_vent.html b/obj/structure/ore_vent.html new file mode 100644 index 0000000000000..e9725e46f29af --- /dev/null +++ b/obj/structure/ore_vent.html @@ -0,0 +1,51 @@ +/obj/structure/ore_vent - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ore_vent

Vars

artifact_chancePercent chance that this vent will produce an artifact boulder.
boulder_icon_stateWhat base icon_state do we use for this vent's boulders?
boulder_sizeWhat size boulders does this vent produce?
defending_mobsA list of mobs that can be spawned by this vent during a wave defense event.
discoveredHas this vent been scanned by a mining scanner? Cannot be scanned again. Adds ores to the vent's description.
excavation_warningWhat string do we use to warn the player about the excavation event?
icon_state_tappedWhat icon_state do we use when the ore vent has been tapped?
manual_vent_cooldownWe use a cooldown to prevent players from tapping boulders rapidly from vents.
mineral_breakdownA weighted list of what minerals are contained in this vent, with weight determining how likely each mineral is to be picked in produced boulders.
nodeReference to this ore vent's NODE drone, to track wave success.
ore_stringString containing the formatted list of ores that this vent can produce, and who first discovered this vent.
ore_vent_optionsAssociated list of vent size weights to pick from.
scanning_equipmentWhat items can be used to scan a vent?
spawn_drone_on_tapDoes this vent spawn a node drone when tapped? Currently unique to boss vents so try not to VV it.
tappedHas this vent been tapped to produce boulders? Cannot be untapped.
unique_ventIs this type of vent exempt from the map's vent budget/limit? Think the free iron/glass vent or boss vents. This also causes it to not roll for random mineral breakdown.
wave_cooldownWe use a cooldown to prevent the wave defense from being started multiple times.

Procs

add_mineral_overlaysAdds floating temp_visual overlays to the vent, showcasing what minerals are contained within it. +If undiscovered, adds a single overlay with the icon_state "unknown".
anti_cheeseWhen the ore vent cannot spawn a mob due to being blocked from all sides, we cause some MILD, MILD explosions. +Explosion matches a gibtonite light explosion, as a way to clear nearby solid structures, with a high likelihood of breaking the NODE drone.
generate_descriptionGenerates a description of the ore vent to ore_string, based on the minerals contained within it. +Ore_string is passed to examine().
generate_mineral_breakdownThis proc is called when the ore vent is initialized, in order to determine what minerals boulders it spawns can contain. +The materials available are determined by SSore_generation.ore_vent_minerals, which is a list of all minerals that can be contained in ore vents for a given cave generation. +As a result, minerals use a weighted list as seen by ore_vent_minerals_lavaland, which is then copied to ore_vent_minerals. +Once a material is picked from the weighted list, it's removed from ore_vent_minerals, so that it can't be picked again and provided its own internal weight used when assigning minerals to boulders spawned by this vent. +May also be called after the fact, as seen in SSore_generation's initialize, to add more minerals to an existing vent.
handle_wave_conclusionCalled when the wave defense event ends, after a variable amount of time in start_wave_defense.
log_mob_killedHandle logging for mobs killed
log_mob_spawnedHandle logging for mobs spawned
ore_quantity_functionReturns the quantity of mineral sheets in each ore vent's boulder contents roll. +First roll can produce the most ore, with subsequent rolls scaling lower logarithmically. +Inversely scales with ore_floor, so that the first roll is the largest, and subsequent rolls are smaller. +(1 -> from 16 to 7 sheets of materials, and 3 -> from 8 to 6 sheets of materials on a small vent) +This also means a large boulder can highroll a boulder with a full stack of 50 sheets of material. +@params ore_floor The number of minerals already rolled. Used to scale the logarithmic function.
pre_wave_defenseThis confirms that the user wants to start the wave defense event, and that they can start it.
produce_boulderHere is where we handle producing a new boulder, based on the qualities of this ore vent. +Returns the boulder produced. +@params apply_cooldown Should we apply a cooldown to producing boulders? Default's false, used by manual boulder production (goldgrubs, golems, etc).
scan_and_confirmCalled when the ore vent is tapped by a scanning device. +Gives a readout of the ores available in the vent that gets added to the description, +then asks the user if they want to start wave defense if it's already been discovered. +@params user The user who tapped the vent. +@params scan_only If TRUE, the vent will only scan, and not prompt to start wave defense. Used by the mech mineral scanner.
start_wave_defenseStarts the wave defense event, which will spawn a number of lavaland mobs based on the size of the ore vent. +Called after the vent has been tapped by a scanning device. +Will summon a number of waves of mobs, ending in the vent being tapped after the final wave.

Var Details

artifact_chance

Percent chance that this vent will produce an artifact boulder.

boulder_icon_state

What base icon_state do we use for this vent's boulders?

boulder_size

What size boulders does this vent produce?

defending_mobs

A list of mobs that can be spawned by this vent during a wave defense event.

discovered

Has this vent been scanned by a mining scanner? Cannot be scanned again. Adds ores to the vent's description.

excavation_warning

What string do we use to warn the player about the excavation event?

icon_state_tapped

What icon_state do we use when the ore vent has been tapped?

manual_vent_cooldown

We use a cooldown to prevent players from tapping boulders rapidly from vents.

mineral_breakdown

A weighted list of what minerals are contained in this vent, with weight determining how likely each mineral is to be picked in produced boulders.

node

Reference to this ore vent's NODE drone, to track wave success.

ore_string

String containing the formatted list of ores that this vent can produce, and who first discovered this vent.

ore_vent_options

Associated list of vent size weights to pick from.

scanning_equipment

What items can be used to scan a vent?

spawn_drone_on_tap

Does this vent spawn a node drone when tapped? Currently unique to boss vents so try not to VV it.

tapped

Has this vent been tapped to produce boulders? Cannot be untapped.

unique_vent

Is this type of vent exempt from the map's vent budget/limit? Think the free iron/glass vent or boss vents. This also causes it to not roll for random mineral breakdown.

wave_cooldown

We use a cooldown to prevent the wave defense from being started multiple times.

Proc Details

add_mineral_overlays

Adds floating temp_visual overlays to the vent, showcasing what minerals are contained within it. +If undiscovered, adds a single overlay with the icon_state "unknown".

anti_cheese

When the ore vent cannot spawn a mob due to being blocked from all sides, we cause some MILD, MILD explosions. +Explosion matches a gibtonite light explosion, as a way to clear nearby solid structures, with a high likelihood of breaking the NODE drone.

generate_description

Generates a description of the ore vent to ore_string, based on the minerals contained within it. +Ore_string is passed to examine().

generate_mineral_breakdown

This proc is called when the ore vent is initialized, in order to determine what minerals boulders it spawns can contain. +The materials available are determined by SSore_generation.ore_vent_minerals, which is a list of all minerals that can be contained in ore vents for a given cave generation. +As a result, minerals use a weighted list as seen by ore_vent_minerals_lavaland, which is then copied to ore_vent_minerals. +Once a material is picked from the weighted list, it's removed from ore_vent_minerals, so that it can't be picked again and provided its own internal weight used when assigning minerals to boulders spawned by this vent. +May also be called after the fact, as seen in SSore_generation's initialize, to add more minerals to an existing vent.

+

The above applies only when spawning in at mapload, otherwise we pick randomly from ore_vent_minerals_lavaland.

+

@params new_minerals How many minerals should be added to this vent? Defaults to MINERAL_TYPE_OPTIONS_RANDOM, which is 4. +@params map_loading Is this vent being spawned in at mapload? If so, we use the ore_generation subsystem's ore_vent_minerals list to pick minerals. Otherwise, we pick randomly from ore_vent_minerals_lavaland.

handle_wave_conclusion

Called when the wave defense event ends, after a variable amount of time in start_wave_defense.

+

If the node drone is still alive, the ore vent is tapped and the ore vent will begin generating boulders. +If the node drone is dead, the ore vent is not tapped and the wave defense can be reattempted.

+

Also gives xp and mining points to all nearby miners in equal measure. +Arguments:

+
    +
  • force: Set to true if you want to just skip all checks and make the vent start producing boulders.
  • +

log_mob_killed

Handle logging for mobs killed

log_mob_spawned

Handle logging for mobs spawned

ore_quantity_function

Returns the quantity of mineral sheets in each ore vent's boulder contents roll. +First roll can produce the most ore, with subsequent rolls scaling lower logarithmically. +Inversely scales with ore_floor, so that the first roll is the largest, and subsequent rolls are smaller. +(1 -> from 16 to 7 sheets of materials, and 3 -> from 8 to 6 sheets of materials on a small vent) +This also means a large boulder can highroll a boulder with a full stack of 50 sheets of material. +@params ore_floor The number of minerals already rolled. Used to scale the logarithmic function.

pre_wave_defense

This confirms that the user wants to start the wave defense event, and that they can start it.

produce_boulder

Here is where we handle producing a new boulder, based on the qualities of this ore vent. +Returns the boulder produced. +@params apply_cooldown Should we apply a cooldown to producing boulders? Default's false, used by manual boulder production (goldgrubs, golems, etc).

scan_and_confirm

Called when the ore vent is tapped by a scanning device. +Gives a readout of the ores available in the vent that gets added to the description, +then asks the user if they want to start wave defense if it's already been discovered. +@params user The user who tapped the vent. +@params scan_only If TRUE, the vent will only scan, and not prompt to start wave defense. Used by the mech mineral scanner.

start_wave_defense

Starts the wave defense event, which will spawn a number of lavaland mobs based on the size of the ore vent. +Called after the vent has been tapped by a scanning device. +Will summon a number of waves of mobs, ending in the vent being tapped after the final wave.

\ No newline at end of file diff --git a/obj/structure/ore_vent/boss.html b/obj/structure/ore_vent/boss.html new file mode 100644 index 0000000000000..ae94ab6226d92 --- /dev/null +++ b/obj/structure/ore_vent/boss.html @@ -0,0 +1 @@ +/obj/structure/ore_vent/boss - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

boss

Vars

summoned_bossWhat boss do we want to spawn?

Var Details

summoned_boss

What boss do we want to spawn?

\ No newline at end of file diff --git a/obj/structure/pinata.html b/obj/structure/pinata.html new file mode 100644 index 0000000000000..93af81e2886f6 --- /dev/null +++ b/obj/structure/pinata.html @@ -0,0 +1 @@ +/obj/structure/pinata - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pinata

A pinata that has a chance to drop candy items when struck with a melee weapon that deals at least 10 damage

Vars

candy_optionsWhat sort of candy the pinata will contain
debrisDebris dropped when the pinata is destroyed
destruction_lootHow much candy is dropped when the pinata is destroyed

Var Details

candy_options

What sort of candy the pinata will contain

debris

Debris dropped when the pinata is destroyed

destruction_loot

How much candy is dropped when the pinata is destroyed

\ No newline at end of file diff --git a/obj/structure/pipe_cleaner.html b/obj/structure/pipe_cleaner.html new file mode 100644 index 0000000000000..ec64ad18f5ba6 --- /dev/null +++ b/obj/structure/pipe_cleaner.html @@ -0,0 +1 @@ +/obj/structure/pipe_cleaner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

pipe_cleaner

Vars

d1Pipe_cleaner direction 1 (see above)
d2pipe_cleaner direction 2 (see above)
pipecleaner_colorFor updating inhand icons.
storedInternal cable stack

Var Details

d1

Pipe_cleaner direction 1 (see above)

d2

pipe_cleaner direction 2 (see above)

pipecleaner_color

For updating inhand icons.

stored

Internal cable stack

\ No newline at end of file diff --git a/obj/structure/plant_tank.html b/obj/structure/plant_tank.html new file mode 100644 index 0000000000000..0bb5cc7d6645e --- /dev/null +++ b/obj/structure/plant_tank.html @@ -0,0 +1 @@ +/obj/structure/plant_tank - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plant_tank

Vars

operation_numberthe amount of times the tank can produce-- can be increased through feeding the tank

Var Details

operation_number

the amount of times the tank can produce-- can be increased through feeding the tank

\ No newline at end of file diff --git a/obj/structure/plaque.html b/obj/structure/plaque.html new file mode 100644 index 0000000000000..f2696357d45d8 --- /dev/null +++ b/obj/structure/plaque.html @@ -0,0 +1 @@ +/obj/structure/plaque - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plaque

Vars

engravedCustom plaque structures and items both start "unengraved", once engraved with a fountain pen their text can't be altered again. Static plaques are already engraved.

Var Details

engraved

Custom plaque structures and items both start "unengraved", once engraved with a fountain pen their text can't be altered again. Static plaques are already engraved.

\ No newline at end of file diff --git a/obj/structure/plaque/static_plaque/tram.html b/obj/structure/plaque/static_plaque/tram.html new file mode 100644 index 0000000000000..475bdce2ba030 --- /dev/null +++ b/obj/structure/plaque/static_plaque/tram.html @@ -0,0 +1 @@ +/obj/structure/plaque/static_plaque/tram - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tram

Vars

specific_transport_idThe tram we have info about
tram_serialSerial number of the tram
transport_refWeakref to the tram we have info about

Var Details

specific_transport_id

The tram we have info about

tram_serial

Serial number of the tram

transport_ref

Weakref to the tram we have info about

\ No newline at end of file diff --git a/obj/structure/plasticflaps.html b/obj/structure/plasticflaps.html new file mode 100644 index 0000000000000..0b352ea20f023 --- /dev/null +++ b/obj/structure/plasticflaps.html @@ -0,0 +1 @@ +/obj/structure/plasticflaps - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

plasticflaps

Procs

update_atmos_behaviourUpdate the flaps behaviour to gases, if not anchored will let air pass through

Proc Details

update_atmos_behaviour

Update the flaps behaviour to gases, if not anchored will let air pass through

\ No newline at end of file diff --git a/obj/structure/punching_bag.html b/obj/structure/punching_bag.html new file mode 100644 index 0000000000000..3ec1c43b9e115 --- /dev/null +++ b/obj/structure/punching_bag.html @@ -0,0 +1 @@ +/obj/structure/punching_bag - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

punching_bag

Vars

hit_soundsList of sounds that can be played when punched.

Var Details

hit_sounds

List of sounds that can be played when punched.

\ No newline at end of file diff --git a/obj/structure/punji_sticks.html b/obj/structure/punji_sticks.html new file mode 100644 index 0000000000000..49a143ff811ec --- /dev/null +++ b/obj/structure/punji_sticks.html @@ -0,0 +1 @@ +/obj/structure/punji_sticks - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

punji_sticks

Vars

stab_overlayOverlay we apply when impaling a mob.

Var Details

stab_overlay

Overlay we apply when impaling a mob.

\ No newline at end of file diff --git a/obj/structure/puzzle_blockade.html b/obj/structure/puzzle_blockade.html new file mode 100644 index 0000000000000..129e6ad28c8ef --- /dev/null +++ b/obj/structure/puzzle_blockade.html @@ -0,0 +1 @@ +/obj/structure/puzzle_blockade - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

puzzle_blockade

blockades destroy themselves if they receive COMSIG_GLOB_PUZZLE_COMPLETED with their ID

Vars

idif we receive a puzzle signal with this id we get destroyed

Var Details

id

if we receive a puzzle signal with this id we get destroyed

\ No newline at end of file diff --git a/obj/structure/railing.html b/obj/structure/railing.html new file mode 100644 index 0000000000000..e0a7f15306076 --- /dev/null +++ b/obj/structure/railing.html @@ -0,0 +1 @@ +/obj/structure/railing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

railing

Vars

armor_typearmor is a little bit less than a grille. max_integrity about half that of a grille.
item_deconstructitem released when deconstructed

Procs

wrench_actImplements behaviour that makes it possible to unanchor the railing.

Var Details

armor_type

armor is a little bit less than a grille. max_integrity about half that of a grille.

item_deconstruct

item released when deconstructed

Proc Details

wrench_act

Implements behaviour that makes it possible to unanchor the railing.

\ No newline at end of file diff --git a/obj/structure/railing/wooden_fencing.html b/obj/structure/railing/wooden_fencing.html new file mode 100644 index 0000000000000..64ee8e7696e34 --- /dev/null +++ b/obj/structure/railing/wooden_fencing.html @@ -0,0 +1 @@ +/obj/structure/railing/wooden_fencing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wooden_fencing

Vars

random_iconsIf we randomize our icon on spawning

Var Details

random_icons

If we randomize our icon on spawning

\ No newline at end of file diff --git a/obj/structure/railing/wooden_fencing/gate.html b/obj/structure/railing/wooden_fencing/gate.html new file mode 100644 index 0000000000000..83a23f92e0c3e --- /dev/null +++ b/obj/structure/railing/wooden_fencing/gate.html @@ -0,0 +1 @@ +/obj/structure/railing/wooden_fencing/gate - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

gate

Vars

openedHas the gate been opened or not?

Procs

open_or_closeProc that checks if the gate is open or not, then closes/opens the gate repsectively

Var Details

opened

Has the gate been opened or not?

Proc Details

open_or_close

Proc that checks if the gate is open or not, then closes/opens the gate repsectively

\ No newline at end of file diff --git a/obj/structure/reagent_crafting_bench.html b/obj/structure/reagent_crafting_bench.html new file mode 100644 index 0000000000000..cf38fa32f3f27 --- /dev/null +++ b/obj/structure/reagent_crafting_bench.html @@ -0,0 +1 @@ +/obj/structure/reagent_crafting_bench - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

reagent_crafting_bench

Vars

allowed_choicesWhat recipes are we allowed to choose from?
current_hits_to_completionHow many successful hits towards completion of the item have we done
finishes_forging_weaponsIs this bench able to complete forging items? Exists to allow non-forging workbenches to exist
hit_cooldownThe cooldown from the last hit before we allow another 'good hit' to happen
radial_choice_listRadial options for recipes in the allowed_choices list, populated by populate_radial_choice_list
recipe_names_to_pathAn associative list of names --> recipe path that the radial recipe picker will choose from later
selected_recipeWhat the currently picked recipe is

Procs

can_we_craft_thisTakes the given list of item requirements and checks the surroundings for them, returns TRUE unless return_ingredients_list is set, in which case a list of all the items to use is returned
clear_recipeClears the current recipe and sets hits to completion to zero
create_thing_from_requirementsPasses the list of found ingredients + the recipe to use_or_delete_recipe_requirements, then spawns the given recipe's result
get_environmentGets movable atoms within one tile of range of the crafting bench
use_or_delete_recipe_requirementsTakes the given list, things_to_use, compares it to recipe_to_follow's requirements, then either uses items from a stack, or deletes them otherwise. Returns custom material of forge items in the end.

Var Details

allowed_choices

What recipes are we allowed to choose from?

current_hits_to_completion

How many successful hits towards completion of the item have we done

finishes_forging_weapons

Is this bench able to complete forging items? Exists to allow non-forging workbenches to exist

hit_cooldown

The cooldown from the last hit before we allow another 'good hit' to happen

radial_choice_list

Radial options for recipes in the allowed_choices list, populated by populate_radial_choice_list

recipe_names_to_path

An associative list of names --> recipe path that the radial recipe picker will choose from later

selected_recipe

What the currently picked recipe is

Proc Details

can_we_craft_this

Takes the given list of item requirements and checks the surroundings for them, returns TRUE unless return_ingredients_list is set, in which case a list of all the items to use is returned

clear_recipe

Clears the current recipe and sets hits to completion to zero

create_thing_from_requirements

Passes the list of found ingredients + the recipe to use_or_delete_recipe_requirements, then spawns the given recipe's result

get_environment

Gets movable atoms within one tile of range of the crafting bench

use_or_delete_recipe_requirements

Takes the given list, things_to_use, compares it to recipe_to_follow's requirements, then either uses items from a stack, or deletes them otherwise. Returns custom material of forge items in the end.

\ No newline at end of file diff --git a/obj/structure/reagent_dispensers.html b/obj/structure/reagent_dispensers.html new file mode 100644 index 0000000000000..24fa7d54f86a7 --- /dev/null +++ b/obj/structure/reagent_dispensers.html @@ -0,0 +1,3 @@ +/obj/structure/reagent_dispensers - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

reagent_dispensers

Vars

accepts_rigWhether this dispenser can be rigged with an assembly (and blown up with an igniter)
amount_to_leakHow much reagent to leak
can_be_tankedCan you turn this into a plumbing tank?
climbableis it climbable? some of our wall-mounted dispensers should not have this
last_riggerThe person who attached an assembly to this dispenser, for bomb logging purposes
leakingIs this dispenser slowly leaking its reagent?
openableCan this dispenser be opened using a wrench?
reagent_idThe ID of the reagent that the dispenser uses
refillingIs this source self-replenishing?
rigAn assembly attached to the tank - if this dispenser accepts_rig
tank_volumeIn units, how much the dispenser can hold

Procs

boomboom: Detonate a reagent dispenser.
rig_boomrig_boom: Wrapper to log when a reagent_dispenser is set off by an assembly

Var Details

accepts_rig

Whether this dispenser can be rigged with an assembly (and blown up with an igniter)

amount_to_leak

How much reagent to leak

can_be_tanked

Can you turn this into a plumbing tank?

climbable

is it climbable? some of our wall-mounted dispensers should not have this

last_rigger

The person who attached an assembly to this dispenser, for bomb logging purposes

leaking

Is this dispenser slowly leaking its reagent?

openable

Can this dispenser be opened using a wrench?

reagent_id

The ID of the reagent that the dispenser uses

refilling

Is this source self-replenishing?

rig

An assembly attached to the tank - if this dispenser accepts_rig

tank_volume

In units, how much the dispenser can hold

Proc Details

boom

boom: Detonate a reagent dispenser.

+

This is most dangerous for fuel tanks, which will explosion(). +Other dispensers will scatter their contents within range.

rig_boom

rig_boom: Wrapper to log when a reagent_dispenser is set off by an assembly

\ No newline at end of file diff --git a/obj/structure/reagent_forge.html b/obj/structure/reagent_forge.html new file mode 100644 index 0000000000000..74ffc26b1f8cb --- /dev/null +++ b/obj/structure/reagent_forge.html @@ -0,0 +1 @@ +/obj/structure/reagent_forge - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

reagent_forge

Vars

choice_listThe list of possible things to make with materials used on the forge
forge_fuel_strongHow many seconds of strong fuel (coal) does the forge have left
forge_fuel_weakHow many seconds of weak fuel (wood) does the forge have left
forge_levelThe current 'level' of the forge, how upgraded is it from zero to three
forge_temperatureWhat the current internal temperature of the forge is
forging_cooldownCooldown time for processing on the forge
in_useIs the forge in use or not? If true, prevents most interactions with the forge
minimum_target_temperatureWhat the minimum target temperature is, used for upgrades
radial_choice_listList of possible choices for the selection radial
reagent_forgingIf the forge is capable of reagent forging or not
smoke_stateWhat smoke particles should be coming out of the forge
target_temperatureWhat temperature the forge is moving towards
temperature_loss_reductionWhat is the current reduction for temperature decrease
used_trayTracks any oven tray placed inside of the forge

Procs

add_tray_to_forgeTake the given tray and place it inside the forge, updating everything relevant to that
check_fuelChecks if the forge has fuel, if so what type. If it has either type of fuel, returns TRUE, otherwise returns FALSE. just_checking will check if there is fuel without taking actions
check_in_useIf the forge is in use, checks if there is an oven tray, then if there are any mobs actually in use range. If not sets the forge to not be in use.
check_tempAdjust the temperature to head towards the target temperature, changing icon and creating light if the temperature is rising
create_reagent_forgeGives the forge the ability to imbue reagents into things
fail_messageCreates both a fail message balloon alert, and sets in_use to false
handle_baking_thingsSends signals to bake and items on the used tray, setting the smoke state of the forge according to the most cooked item in it
handle_ceramicsSets ceramic items from their unusable state into their finished form
handle_clothing_imbueHandles clothing imbuing, extremely similar to weapon imbuing but not in the same proc because of how uhh... goofy the way this has to be done is
handle_glass_sheet_meltingHandles the creation of molten glass from glass sheets
handle_metal_cup_meltingHandles creating molten glass from a metal cup filled with sand
handle_weapon_imbueHandles weapon reagent imbuing
populate_radial_choice_listFills out the radial choice list with everything in the choice_list's contents
refuelAdds to either the strong or weak fuel timers from the given stack
remove_tray_from_forgeTake the used_tray and spit it out, updating everything relevant to that
set_smoke_stateSets the type of particles that the forge should be generating
smelt_oreTakes given ore and smelts it, possibly producing extra sheets if upgraded
spawn_coalSpawns a piece of coal at the forge and renames it to charcoal

Var Details

choice_list

The list of possible things to make with materials used on the forge

forge_fuel_strong

How many seconds of strong fuel (coal) does the forge have left

forge_fuel_weak

How many seconds of weak fuel (wood) does the forge have left

forge_level

The current 'level' of the forge, how upgraded is it from zero to three

forge_temperature

What the current internal temperature of the forge is

forging_cooldown

Cooldown time for processing on the forge

in_use

Is the forge in use or not? If true, prevents most interactions with the forge

minimum_target_temperature

What the minimum target temperature is, used for upgrades

radial_choice_list

List of possible choices for the selection radial

reagent_forging

If the forge is capable of reagent forging or not

smoke_state

What smoke particles should be coming out of the forge

target_temperature

What temperature the forge is moving towards

temperature_loss_reduction

What is the current reduction for temperature decrease

used_tray

Tracks any oven tray placed inside of the forge

Proc Details

add_tray_to_forge

Take the given tray and place it inside the forge, updating everything relevant to that

check_fuel

Checks if the forge has fuel, if so what type. If it has either type of fuel, returns TRUE, otherwise returns FALSE. just_checking will check if there is fuel without taking actions

check_in_use

If the forge is in use, checks if there is an oven tray, then if there are any mobs actually in use range. If not sets the forge to not be in use.

check_temp

Adjust the temperature to head towards the target temperature, changing icon and creating light if the temperature is rising

create_reagent_forge

Gives the forge the ability to imbue reagents into things

fail_message

Creates both a fail message balloon alert, and sets in_use to false

handle_baking_things

Sends signals to bake and items on the used tray, setting the smoke state of the forge according to the most cooked item in it

handle_ceramics

Sets ceramic items from their unusable state into their finished form

handle_clothing_imbue

Handles clothing imbuing, extremely similar to weapon imbuing but not in the same proc because of how uhh... goofy the way this has to be done is

handle_glass_sheet_melting

Handles the creation of molten glass from glass sheets

handle_metal_cup_melting

Handles creating molten glass from a metal cup filled with sand

handle_weapon_imbue

Handles weapon reagent imbuing

populate_radial_choice_list

Fills out the radial choice list with everything in the choice_list's contents

refuel

Adds to either the strong or weak fuel timers from the given stack

remove_tray_from_forge

Take the used_tray and spit it out, updating everything relevant to that

set_smoke_state

Sets the type of particles that the forge should be generating

smelt_ore

Takes given ore and smelts it, possibly producing extra sheets if upgraded

spawn_coal

Spawns a piece of coal at the forge and renames it to charcoal

\ No newline at end of file diff --git a/obj/structure/reagent_water_basin.html b/obj/structure/reagent_water_basin.html new file mode 100644 index 0000000000000..7c749436e6599 --- /dev/null +++ b/obj/structure/reagent_water_basin.html @@ -0,0 +1 @@ +/obj/structure/reagent_water_basin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

reagent_water_basin

Vars

fishableTracks if you can fish from this basin

Var Details

fishable

Tracks if you can fish from this basin

\ No newline at end of file diff --git a/obj/structure/reviving_ashwalker_egg.html b/obj/structure/reviving_ashwalker_egg.html new file mode 100644 index 0000000000000..891b754cf73d6 --- /dev/null +++ b/obj/structure/reviving_ashwalker_egg.html @@ -0,0 +1 @@ +/obj/structure/reviving_ashwalker_egg - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

reviving_ashwalker_egg

Procs

do_reviveProc that will fully revive the living content inside and then destroy itself

Proc Details

do_revive

Proc that will fully revive the living content inside and then destroy itself

\ No newline at end of file diff --git a/obj/structure/safe.html b/obj/structure/safe.html new file mode 100644 index 0000000000000..af11a01a2a50e --- /dev/null +++ b/obj/structure/safe.html @@ -0,0 +1 @@ +/obj/structure/safe - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

safe

Vars

current_tumbler_indexThe index in the tumblers list of the tumbler dial position that needs to be hit
dialThe position the dial is pointing to
explosion_countTough, but breakable if explosion counts reaches set value
lockedWhether the safe is locked or not
maxspaceThe maximum combined w_class of stuff in the safe
number_of_tumblersThe amount of tumblers that will be generated
openWhether the safe is open or not
spaceThe combined w_class of everything in the safe
tumblersThe list of tumbler dial positions that need to be hit

Procs

check_brokenChecks if safe is considered in a broken state for force-opening the safe
check_unlockedCalled every dial turn to determine whether the safe should unlock or not.
notify_userCalled every dial turn to provide feedback if possible.

Var Details

current_tumbler_index

The index in the tumblers list of the tumbler dial position that needs to be hit

dial

The position the dial is pointing to

explosion_count

Tough, but breakable if explosion counts reaches set value

locked

Whether the safe is locked or not

maxspace

The maximum combined w_class of stuff in the safe

number_of_tumblers

The amount of tumblers that will be generated

open

Whether the safe is open or not

space

The combined w_class of everything in the safe

tumblers

The list of tumbler dial positions that need to be hit

Proc Details

check_broken

Checks if safe is considered in a broken state for force-opening the safe

check_unlocked

Called every dial turn to determine whether the safe should unlock or not.

notify_user

Called every dial turn to provide feedback if possible.

\ No newline at end of file diff --git a/obj/structure/secure_safe/caps_spare.html b/obj/structure/secure_safe/caps_spare.html new file mode 100644 index 0000000000000..b29765fc634bf --- /dev/null +++ b/obj/structure/secure_safe/caps_spare.html @@ -0,0 +1,5 @@ +/obj/structure/secure_safe/caps_spare - /tg/ Station 13
/tg/ Station 13 - Modules - Types

caps_spare

This safe is meant to be damn robust. To break in, you're supposed to get creative, or use acid or an explosion.

+

This makes the safe still possible to break in for someone who is prepared and capable enough, either through +chemistry, botany or whatever else.

+

The safe is also weak to explosions, so spending some early TC could allow an antag to blow it upen if they can +get access to it.

\ No newline at end of file diff --git a/obj/structure/serpentine_tail.html b/obj/structure/serpentine_tail.html new file mode 100644 index 0000000000000..cde5a0095607a --- /dev/null +++ b/obj/structure/serpentine_tail.html @@ -0,0 +1,10 @@ +/obj/structure/serpentine_tail - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

serpentine_tail

Vars

allowing_grab_on_constrictedIf we're currently allowing constricted to be grabbed. Only briefly true, during set_constricted.
applied_x_shiftThe pixel shift we have applied to constricted. Is null if constricted is null. Used to unapply it.
brute_per_secondThe amount of brute damage we will do per second to constricted if we are crushing.
chance_to_cause_woundHow likely are we, per second, to cause a blunt wound on constricted if we are crushing?
chance_to_losebreathChance, per second, of us causing losebreath for a constricted target we are crushing.
constrictedThe mob we are currently constricting, usually coincides with what we have buckled to us. Nullable.
currently_crushingAre we currently crushing constricted?
escape_cooldownUsed for escaping the tail, separate from grab cooldowns.
losebreath_to_causeAssuming we proc chance_to_losebreath, this is the losebreath we will inflict on our target.
ownerThe mob we are originating from.
stored_damageIf we try to do crush damage and total below 5 (the minimum wounding amount), we store it here for next time.
tail_overlayThe overlay for our coiled tail.

Procs

add_tail_overlayIf we have no tail overlay, creates a new one and sets it up.
apply_pixel_shiftApplies our pixel shift to our constricted. Do not call if we have already applied our pixel shift.
constricted_examinedSignal proc for constricted being examined. Appends a string warning the viewer of them being crushed.
constricted_movedSignal proc for if constricted moves. If the new loc isnt our loc, we stop constricting them. Used for teleportation escapes.
constricted_qdeletingSignal proc for constricted qdeleting. Sets constricted to null.
constricted_tried_pullSignal proc that prevents constricted from grabbing owner.
get_constriction_pixel_x_shiftReturns the x shift for anything we constrict.
get_scale_change_multReturns the scale, compared to default, our owner has.
owner_body_position_changedSignal proc for if our owner changes body positions. Qdels src if they lie down.
owner_movedSignal proc for when owner moves. Qdels src.
owner_tried_grabSignal proc for owner grabbing someone, separate from pulling. Forbids them from upgrading grabs on constricted.
owner_tried_pullSignal proc for owner pulling someone. Forbids them from pulling constricted.
register_constrictedRegisters signals to constricted.
restrain_constrictedBuckles constricted to ourselves, and migrates the current grab constricted may have on them.
set_constrictedSetter proc for constricted. Handles signals, pixel shifting, status effects, etc.
set_ownerSetter proc for owner that handles signals, bodyparts, etc.
squeeze_constrictedAttempts to squeeze constricted with ourselves, dealing blunt brute damage to them based on the damage arg.
start_crushingSetter proc for currently_crushing that handles processing and warnings.
stop_crushingSetter proc for currently_crushing that handles processing and warnings.
sync_directionSyncs our dir with our owner. Fails to sync if we have a constricted mob and we move in a way that would spin them around.
sync_spriteSyncs our colors, size, sprite, etc. with owner.
toggle_crushingToggle proc for crushing. See stop_crushing and start_crushing.
unapply_pixel_shiftUnapplies our pixel shift to our constricted. Do not call if we have not applied our pixel shift.
unregister_constrictedUnregisters signals to constricted.

Var Details

allowing_grab_on_constricted

If we're currently allowing constricted to be grabbed. Only briefly true, during set_constricted.

applied_x_shift

The pixel shift we have applied to constricted. Is null if constricted is null. Used to unapply it.

brute_per_second

The amount of brute damage we will do per second to constricted if we are crushing.

chance_to_cause_wound

How likely are we, per second, to cause a blunt wound on constricted if we are crushing?

chance_to_losebreath

Chance, per second, of us causing losebreath for a constricted target we are crushing.

constricted

The mob we are currently constricting, usually coincides with what we have buckled to us. Nullable.

currently_crushing

Are we currently crushing constricted?

escape_cooldown

Used for escaping the tail, separate from grab cooldowns.

losebreath_to_cause

Assuming we proc chance_to_losebreath, this is the losebreath we will inflict on our target.

owner

The mob we are originating from.

stored_damage

If we try to do crush damage and total below 5 (the minimum wounding amount), we store it here for next time.

tail_overlay

The overlay for our coiled tail.

Proc Details

add_tail_overlay

If we have no tail overlay, creates a new one and sets it up.

apply_pixel_shift

Applies our pixel shift to our constricted. Do not call if we have already applied our pixel shift.

constricted_examined

Signal proc for constricted being examined. Appends a string warning the viewer of them being crushed.

constricted_moved

Signal proc for if constricted moves. If the new loc isnt our loc, we stop constricting them. Used for teleportation escapes.

constricted_qdeleting

Signal proc for constricted qdeleting. Sets constricted to null.

constricted_tried_pull

Signal proc that prevents constricted from grabbing owner.

get_constriction_pixel_x_shift

Returns the x shift for anything we constrict.

get_scale_change_mult

Returns the scale, compared to default, our owner has.

owner_body_position_changed

Signal proc for if our owner changes body positions. Qdels src if they lie down.

owner_moved

Signal proc for when owner moves. Qdels src.

owner_tried_grab

Signal proc for owner grabbing someone, separate from pulling. Forbids them from upgrading grabs on constricted.

owner_tried_pull

Signal proc for owner pulling someone. Forbids them from pulling constricted.

register_constricted

Registers signals to constricted.

restrain_constricted

Buckles constricted to ourselves, and migrates the current grab constricted may have on them.

set_constricted

Setter proc for constricted. Handles signals, pixel shifting, status effects, etc.

set_owner

Setter proc for owner that handles signals, bodyparts, etc.

squeeze_constricted

Attempts to squeeze constricted with ourselves, dealing blunt brute damage to them based on the damage arg.

+

Arguments:

+
    +
  • damage: Float - The numerical damage to apply, with MELEE armor flag and BLUNT wounding type.
  • +
  • force_wound: Boolean - If we should force a wound to be applied to constricted.
  • +
+

Returns:

+
    +
  • FALSE if we aborted trying to inflict damage, TRUE otherwise.
  • +

start_crushing

Setter proc for currently_crushing that handles processing and warnings.

stop_crushing

Setter proc for currently_crushing that handles processing and warnings.

sync_direction

Syncs our dir with our owner. Fails to sync if we have a constricted mob and we move in a way that would spin them around.

sync_sprite

Syncs our colors, size, sprite, etc. with owner.

toggle_crushing

Toggle proc for crushing. See stop_crushing and start_crushing.

unapply_pixel_shift

Unapplies our pixel shift to our constricted. Do not call if we have not applied our pixel shift.

unregister_constricted

Unregisters signals to constricted.

\ No newline at end of file diff --git a/obj/structure/shockplant.html b/obj/structure/shockplant.html new file mode 100644 index 0000000000000..09c1f7dfc711b --- /dev/null +++ b/obj/structure/shockplant.html @@ -0,0 +1 @@ +/obj/structure/shockplant - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

shockplant

Vars

factionOur faction
shock_cooldownOur cooldown on the shocking.
shock_powerThe zap power
shock_rangeOur range to shock folks in.

Var Details

faction

Our faction

shock_cooldown

Our cooldown on the shocking.

shock_power

The zap power

shock_range

Our range to shock folks in.

\ No newline at end of file diff --git a/obj/structure/sign.html b/obj/structure/sign.html new file mode 100644 index 0000000000000..76c62e2e1f549 --- /dev/null +++ b/obj/structure/sign.html @@ -0,0 +1,3 @@ +/obj/structure/sign - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sign

Vars

buildable_signDetermines if a sign is unwrenchable.
is_editableThis determines if you can select this sign type when using a pen on a sign backing. False by default, set to true per sign type to override.
knock_down_callbackCallback to the knock down proc for wallmounting behavior.
sign_change_namesign_change_name is used to make nice looking, alphabetized and categorized names when you use a pen on any sign item or structure which is_editable.

Procs

knock_downThis is called when a sign is removed from a wall, either through deconstruction or being knocked down. +@param mob/living/user The user who removed the sign, if it was knocked down by a mob.

Var Details

buildable_sign

Determines if a sign is unwrenchable.

is_editable

This determines if you can select this sign type when using a pen on a sign backing. False by default, set to true per sign type to override.

knock_down_callback

Callback to the knock down proc for wallmounting behavior.

sign_change_name

sign_change_name is used to make nice looking, alphabetized and categorized names when you use a pen on any sign item or structure which is_editable.

Proc Details

knock_down

This is called when a sign is removed from a wall, either through deconstruction or being knocked down. +@param mob/living/user The user who removed the sign, if it was knocked down by a mob.

\ No newline at end of file diff --git a/obj/structure/sign/painting.html b/obj/structure/sign/painting.html new file mode 100644 index 0000000000000..cb161a1fa43ee --- /dev/null +++ b/obj/structure/sign/painting.html @@ -0,0 +1,2 @@ +/obj/structure/sign/painting - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

painting

Vars

accepted_canvas_typesThe list of canvas types accepted by this frame
current_canvasCanvas we're currently displaying.
desc_with_canvasDescription set when canvas is added.
wallframe_typethe type of wallframe it 'disassembles' into

Procs

load_persistentLoads a painting from SSpersistence. Called globally by said subsystem when it inits

Var Details

accepted_canvas_types

The list of canvas types accepted by this frame

current_canvas

Canvas we're currently displaying.

desc_with_canvas

Description set when canvas is added.

wallframe_type

the type of wallframe it 'disassembles' into

Proc Details

load_persistent

Loads a painting from SSpersistence. Called globally by said subsystem when it inits

+

Deleting paintings leaves their json, so this proc will remove the json and try again if it finds one of those.

\ No newline at end of file diff --git a/obj/structure/sign/painting/eldritch.html b/obj/structure/sign/painting/eldritch.html new file mode 100644 index 0000000000000..a848a52341826 --- /dev/null +++ b/obj/structure/sign/painting/eldritch.html @@ -0,0 +1 @@ +/obj/structure/sign/painting/eldritch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

eldritch

Vars

applied_traumaThe trauma the painting applies
rangeThe range of the paintings effect
text_to_displayThe text that shows up when you cross the paintings path

Var Details

applied_trauma

The trauma the painting applies

range

The range of the paintings effect

text_to_display

The text that shows up when you cross the paintings path

\ No newline at end of file diff --git a/obj/structure/sign/painting/eldritch/beauty.html b/obj/structure/sign/painting/eldritch/beauty.html new file mode 100644 index 0000000000000..ae2d59f08b0a9 --- /dev/null +++ b/obj/structure/sign/painting/eldritch/beauty.html @@ -0,0 +1 @@ +/obj/structure/sign/painting/eldritch/beauty - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

beauty

Vars

reagents_to_addList of reagents to add to heretics on examine, set to mutadone by default to remove mutations

Var Details

reagents_to_add

List of reagents to add to heretics on examine, set to mutadone by default to remove mutations

\ No newline at end of file diff --git a/obj/structure/sign/painting/large.html b/obj/structure/sign/painting/large.html new file mode 100644 index 0000000000000..2618bbbade373 --- /dev/null +++ b/obj/structure/sign/painting/large.html @@ -0,0 +1,7 @@ +/obj/structure/sign/painting/large - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

large

Procs

finalize_sizeThis frame is visually put between two wall turfs and it has an icon that's bigger than 32px, and because +of the way it's designed, the pixel_shift variable from the wallframe item won't do. +Also we want higher bounds so it actually covers an extra wall turf, so that it can count toward check_wall_item calls for +that wall turf.

Proc Details

finalize_size

This frame is visually put between two wall turfs and it has an icon that's bigger than 32px, and because +of the way it's designed, the pixel_shift variable from the wallframe item won't do. +Also we want higher bounds so it actually covers an extra wall turf, so that it can count toward check_wall_item calls for +that wall turf.

\ No newline at end of file diff --git a/obj/structure/sign/picture_frame.html b/obj/structure/sign/picture_frame.html new file mode 100644 index 0000000000000..1b3a77618ee29 --- /dev/null +++ b/obj/structure/sign/picture_frame.html @@ -0,0 +1 @@ +/obj/structure/sign/picture_frame - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

picture_frame

Procs

set_and_save_framedGiven a photo (or null), will change the contained picture, and queue a persistent save.
try_deconstructInternal proc

Proc Details

set_and_save_framed

Given a photo (or null), will change the contained picture, and queue a persistent save.

try_deconstruct

Internal proc

\ No newline at end of file diff --git a/obj/structure/sign/picture_frame/portrait/bar.html b/obj/structure/sign/picture_frame/portrait/bar.html new file mode 100644 index 0000000000000..a251c87d76cce --- /dev/null +++ b/obj/structure/sign/picture_frame/portrait/bar.html @@ -0,0 +1 @@ +/obj/structure/sign/picture_frame/portrait/bar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bar

Procs

InitializeGenerates a persistence id unique to the current map. Every bar should feel a little bit different after all.

Proc Details

Initialize

Generates a persistence id unique to the current map. Every bar should feel a little bit different after all.

\ No newline at end of file diff --git a/obj/structure/sign/poster.html b/obj/structure/sign/poster.html new file mode 100644 index 0000000000000..c8229aa5e61c7 --- /dev/null +++ b/obj/structure/sign/poster.html @@ -0,0 +1,3 @@ +/obj/structure/sign/poster - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

poster

The structure form of a poster.

+

These are what get placed on maps as posters. They are also what gets created when a player places a poster on a wall. +For the item form that can be spawned for players, see /obj/item/poster

Vars

blacklisted_typesExclude posters of these types from being added to the random pool
printableWhether the poster should be printable from library management computer. Mostly exists to keep directionals from being printed.
trapA sharp shard of material can be hidden inside of a poster, attempts to embed when it is torn down.

Procs

add_contextAdds contextual screentips
apply_holidayallows for posters to become festive posters during holidays
check_tearabilityCheck to see if this poster is tearable and gives the user feedback if it is not.

Var Details

blacklisted_types

Exclude posters of these types from being added to the random pool

printable

Whether the poster should be printable from library management computer. Mostly exists to keep directionals from being printed.

trap

A sharp shard of material can be hidden inside of a poster, attempts to embed when it is torn down.

Proc Details

add_context

Adds contextual screentips

apply_holiday

allows for posters to become festive posters during holidays

check_tearability

Check to see if this poster is tearable and gives the user feedback if it is not.

\ No newline at end of file diff --git a/obj/structure/sign/poster/traitor.html b/obj/structure/sign/poster/traitor.html new file mode 100644 index 0000000000000..3f2044df42711 --- /dev/null +++ b/obj/structure/sign/poster/traitor.html @@ -0,0 +1 @@ +/obj/structure/sign/poster/traitor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

traitor

Vars

demoraliserProximity sensor to make people sad if they're nearby

Var Details

demoraliser

Proximity sensor to make people sad if they're nearby

\ No newline at end of file diff --git a/obj/structure/simple_farm.html b/obj/structure/simple_farm.html new file mode 100644 index 0000000000000..5a8b14253ff39 --- /dev/null +++ b/obj/structure/simple_farm.html @@ -0,0 +1 @@ +/obj/structure/simple_farm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

simple_farm

Vars

attached_atomthe atom the farm is attached to
bonus_potencythe extra potency applied to the seed
farm_levelthe farm level we're at
harvest_cooldownthe cooldown amount between each harvest
max_harvestthe max amount harvested from the plants
planted_seedthe seed that is held within
stored_wormsThe amount of worms we're storing

Procs

create_harvestwill create a harvest of the seeds product, with a chance to create a mutated version
late_setupused during the component so that it can move when its attached atom moves
move_planta simple proc to forcemove the plant on top of the movable atom its attached to

Var Details

attached_atom

the atom the farm is attached to

bonus_potency

the extra potency applied to the seed

farm_level

the farm level we're at

harvest_cooldown

the cooldown amount between each harvest

max_harvest

the max amount harvested from the plants

planted_seed

the seed that is held within

stored_worms

The amount of worms we're storing

Proc Details

create_harvest

will create a harvest of the seeds product, with a chance to create a mutated version

late_setup

used during the component so that it can move when its attached atom moves

move_plant

a simple proc to forcemove the plant on top of the movable atom its attached to

\ No newline at end of file diff --git a/obj/structure/sink.html b/obj/structure/sink.html new file mode 100644 index 0000000000000..ec8ce86ef2a77 --- /dev/null +++ b/obj/structure/sink.html @@ -0,0 +1 @@ +/obj/structure/sink - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

sink

Vars

buildstackamountNumber of sheets of material to drop when broken or deconstructed.
buildstacktypeMaterial to drop when broken or deconstructed.
busySomething's being washed at the moment
dispensedreagentWhat kind of reagent is produced by this sink by default? (We now have actual plumbing, Arcane, August 2020)
has_water_reclaimerDoes the sink have a water recycler to recollect its water supply?
pixel_shiftAmount of shift the pixel for placement
reclaim_rateUnits of water to reclaim per second

Var Details

buildstackamount

Number of sheets of material to drop when broken or deconstructed.

buildstacktype

Material to drop when broken or deconstructed.

busy

Something's being washed at the moment

dispensedreagent

What kind of reagent is produced by this sink by default? (We now have actual plumbing, Arcane, August 2020)

has_water_reclaimer

Does the sink have a water recycler to recollect its water supply?

pixel_shift

Amount of shift the pixel for placement

reclaim_rate

Units of water to reclaim per second

\ No newline at end of file diff --git a/obj/structure/spacevine.html b/obj/structure/spacevine.html new file mode 100644 index 0000000000000..191f6923e0988 --- /dev/null +++ b/obj/structure/spacevine.html @@ -0,0 +1 @@ +/obj/structure/spacevine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spacevine

Vars

always_atmos_processShould atmos always process this tile
can_spreadCan this kudzu spread?
can_tangleCan this kudzu buckle mobs in?
growth_stageWhat growth stage is this vine at?
light_stateThe kudzu blocks light on default once it grows
masterOur associated spacevine_controller, for managing expansion/mutation
mutationsList of mutations for a specific vine
plantbgone_resistWhether the plant has a decreased chance of being destroyed by plant-b-gone
trait_flagsThe traits associated with a specific mutation of vines

Procs

entangle_mobBuckles mobs trying to pass through it
ex_actDestroying an explosive vine sets off a chain reaction
growUpdates the icon as the space vine grows
spreadFinds a target tile to spread to. If checks pass it will spread to it and also proc on_spread on target.

Var Details

always_atmos_process

Should atmos always process this tile

can_spread

Can this kudzu spread?

can_tangle

Can this kudzu buckle mobs in?

growth_stage

What growth stage is this vine at?

light_state

The kudzu blocks light on default once it grows

master

Our associated spacevine_controller, for managing expansion/mutation

mutations

List of mutations for a specific vine

plantbgone_resist

Whether the plant has a decreased chance of being destroyed by plant-b-gone

trait_flags

The traits associated with a specific mutation of vines

Proc Details

entangle_mob

Buckles mobs trying to pass through it

ex_act

Destroying an explosive vine sets off a chain reaction

grow

Updates the icon as the space vine grows

spread

Finds a target tile to spread to. If checks pass it will spread to it and also proc on_spread on target.

\ No newline at end of file diff --git a/obj/structure/spawner.html b/obj/structure/spawner.html new file mode 100644 index 0000000000000..f174d05627750 --- /dev/null +++ b/obj/structure/spawner.html @@ -0,0 +1 @@ +/obj/structure/spawner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

spawner

Vars

assigned_tagA complete identifier. Generated on tag (if tagged), used for its examine.
gps_taggedHas this spawner been tagged/analyzed by a mining scanner?
mob_gps_idA short identifier for the mob it spawns. Keep around 3 characters or less?
scanner_descriptorIf this spawner's taggable, what's the text we use to describe what we can tag it with?
scanner_taggableIs this spawner taggable with something?
scanner_typesIf this spawner's taggable, what can we tag it with?
spawner_gps_idA short identifier for what kind of spawner it is, for use in putting together its GPS tag.

Procs

gps_tagTag the spawner, prefixing its GPS entry with an identifier - or giving it one, if nonexistent.

Var Details

assigned_tag

A complete identifier. Generated on tag (if tagged), used for its examine.

gps_tagged

Has this spawner been tagged/analyzed by a mining scanner?

mob_gps_id

A short identifier for the mob it spawns. Keep around 3 characters or less?

scanner_descriptor

If this spawner's taggable, what's the text we use to describe what we can tag it with?

scanner_taggable

Is this spawner taggable with something?

scanner_types

If this spawner's taggable, what can we tag it with?

spawner_gps_id

A short identifier for what kind of spawner it is, for use in putting together its GPS tag.

Proc Details

gps_tag

Tag the spawner, prefixing its GPS entry with an identifier - or giving it one, if nonexistent.

\ No newline at end of file diff --git a/obj/structure/spawner/ice_moon.html b/obj/structure/spawner/ice_moon.html new file mode 100644 index 0000000000000..618b415dbc0a6 --- /dev/null +++ b/obj/structure/spawner/ice_moon.html @@ -0,0 +1 @@ +/obj/structure/spawner/ice_moon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ice_moon

Procs

clear_rockClears rocks around the spawner when it is created. Ignore any rocks that explicitly do not want to be cleared.
destroy_effectEffects and messages created when the spawner is destroyed
drop_lootDrops items after the spawner is destroyed

Proc Details

clear_rock

Clears rocks around the spawner when it is created. Ignore any rocks that explicitly do not want to be cleared.

destroy_effect

Effects and messages created when the spawner is destroyed

drop_loot

Drops items after the spawner is destroyed

\ No newline at end of file diff --git a/obj/structure/spawner/lavaland.html b/obj/structure/spawner/lavaland.html new file mode 100644 index 0000000000000..b4493fecafccb --- /dev/null +++ b/obj/structure/spawner/lavaland.html @@ -0,0 +1 @@ +/obj/structure/spawner/lavaland - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

lavaland

Vars

cursedwhether it has a curse attached to it

Var Details

cursed

whether it has a curse attached to it

\ No newline at end of file diff --git a/obj/structure/spider/eggcluster.html b/obj/structure/spider/eggcluster.html new file mode 100644 index 0000000000000..88c463e9d6309 --- /dev/null +++ b/obj/structure/spider/eggcluster.html @@ -0,0 +1 @@ +/obj/structure/spider/eggcluster - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

eggcluster

Vars

spawnerMob spawner handling the actual spawn of the spider

Var Details

spawner

Mob spawner handling the actual spawn of the spider

\ No newline at end of file diff --git a/obj/structure/spider/stickyweb.html b/obj/structure/spider/stickyweb.html new file mode 100644 index 0000000000000..0580febebdb0f --- /dev/null +++ b/obj/structure/spider/stickyweb.html @@ -0,0 +1 @@ +/obj/structure/spider/stickyweb - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

stickyweb

Vars

geneticWhether or not the web is from the genetics power
has_frillDo we need to offset this based on a sprite frill?
projectile_stuck_chanceChance that a bullet will hit this instead of flying through it
sealedWhether or not the web is a sealed web
stuck_chanceChance that someone will get stuck when trying to cross this tile

Procs

stuck_reactShow some feedback when you can't pass through something

Var Details

genetic

Whether or not the web is from the genetics power

has_frill

Do we need to offset this based on a sprite frill?

projectile_stuck_chance

Chance that a bullet will hit this instead of flying through it

sealed

Whether or not the web is a sealed web

stuck_chance

Chance that someone will get stuck when trying to cross this tile

Proc Details

stuck_react

Show some feedback when you can't pass through something

\ No newline at end of file diff --git a/obj/structure/spider/stickyweb/genetic.html b/obj/structure/spider/stickyweb/genetic.html new file mode 100644 index 0000000000000..69bbe4fc00f45 --- /dev/null +++ b/obj/structure/spider/stickyweb/genetic.html @@ -0,0 +1 @@ +/obj/structure/spider/stickyweb/genetic - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

genetic

Web made by geneticists, needs special handling to allow them to pass through their own webs

Vars

allowed_mobMob with special permission to cross this web

Var Details

allowed_mob

Mob with special permission to cross this web

\ No newline at end of file diff --git a/obj/structure/spirit_board.html b/obj/structure/spirit_board.html new file mode 100644 index 0000000000000..b5afc0937674f --- /dev/null +++ b/obj/structure/spirit_board.html @@ -0,0 +1 @@ +/obj/structure/spirit_board - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spirit_board

Vars

ghosty_optionsList of options ghosts (or people) can pick from.
lastuserCkey of last mob to use the board.
next_useHow long between planchette movements.
planchetteWhere the planchette is currently pointing.
required_user_countNumber of living, willing mobs adjacent to the board required for a seance to occur.
virginWhether no one has moved the planchette yet.

Var Details

ghosty_options

List of options ghosts (or people) can pick from.

lastuser

Ckey of last mob to use the board.

next_use

How long between planchette movements.

planchette

Where the planchette is currently pointing.

required_user_count

Number of living, willing mobs adjacent to the board required for a seance to occur.

virgin

Whether no one has moved the planchette yet.

\ No newline at end of file diff --git a/obj/structure/stairs_frame.html b/obj/structure/stairs_frame.html new file mode 100644 index 0000000000000..a95aea7db16b6 --- /dev/null +++ b/obj/structure/stairs_frame.html @@ -0,0 +1 @@ +/obj/structure/stairs_frame - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

stairs_frame

Vars

frame_stackWhat type of stack will this drop on deconstruction?
frame_stack_amountHow much of frame_stack should this drop on deconstruction?

Var Details

frame_stack

What type of stack will this drop on deconstruction?

frame_stack_amount

How much of frame_stack should this drop on deconstruction?

\ No newline at end of file diff --git a/obj/structure/statue.html b/obj/structure/statue.html new file mode 100644 index 0000000000000..a2e1458fba407 --- /dev/null +++ b/obj/structure/statue.html @@ -0,0 +1 @@ +/obj/structure/statue - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

statue

Vars

abstract_typeAbstract root type
art_typeArt component subtype added to this statue
impressivenessBeauty component mood modifier

Var Details

abstract_type

Abstract root type

art_type

Art component subtype added to this statue

impressiveness

Beauty component mood modifier

\ No newline at end of file diff --git a/obj/structure/statue/custom.html b/obj/structure/statue/custom.html new file mode 100644 index 0000000000000..cca6545ade102 --- /dev/null +++ b/obj/structure/statue/custom.html @@ -0,0 +1 @@ +/obj/structure/statue/custom - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

custom

Vars

content_maprimary statue overlay

Var Details

content_ma

primary statue overlay

\ No newline at end of file diff --git a/obj/structure/steam_vent.html b/obj/structure/steam_vent.html new file mode 100644 index 0000000000000..24f7d12572cff --- /dev/null +++ b/obj/structure/steam_vent.html @@ -0,0 +1 @@ +/obj/structure/steam_vent - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

steam_vent

Spawns in maint shafts, and blocks lines of sight perodically when active.

Vars

steam_speedHow often does the vent reset the blow_steam cooldown.
steam_vent_interactThe cooldown for toggling the steam vent to prevent infinite steam vent looping.
vent_activeIs the steam vent active?

Procs

blow_steamCreates "steam" smoke, and determines when the vent needs to block line of sight via reset_opacity.

Var Details

steam_speed

How often does the vent reset the blow_steam cooldown.

steam_vent_interact

The cooldown for toggling the steam vent to prevent infinite steam vent looping.

vent_active

Is the steam vent active?

Proc Details

blow_steam

Creates "steam" smoke, and determines when the vent needs to block line of sight via reset_opacity.

\ No newline at end of file diff --git a/obj/structure/stripper_pole.html b/obj/structure/stripper_pole.html new file mode 100644 index 0000000000000..a537c904e9ebd --- /dev/null +++ b/obj/structure/stripper_pole.html @@ -0,0 +1 @@ +/obj/structure/stripper_pole - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

stripper_pole

Vars

current_pole_colorThe selected pole color
dancerThe mob currently using the pole to dance
lights_enabledAre the animated lights enabled?
pole_designsPossible designs for the pole, populating a radial selection menu
pole_in_useIs the pole in use currently?
pole_lightsPossible colors for the pole

Procs

dance_animateThe proc used to make the user 'dance' on the pole. Basically just consists of pixel shifting them around a bunch and sleeping. Could probably be improved a lot.
populate_pole_designsThe list of possible designs generated for the radial reskinning menu
update_brightnessTurns off/on the pole's ambient light source

Var Details

current_pole_color

The selected pole color

dancer

The mob currently using the pole to dance

lights_enabled

Are the animated lights enabled?

pole_designs

Possible designs for the pole, populating a radial selection menu

pole_in_use

Is the pole in use currently?

pole_lights

Possible colors for the pole

Proc Details

dance_animate

The proc used to make the user 'dance' on the pole. Basically just consists of pixel shifting them around a bunch and sleeping. Could probably be improved a lot.

populate_pole_designs

The list of possible designs generated for the radial reskinning menu

update_brightness

Turns off/on the pole's ambient light source

\ No newline at end of file diff --git a/obj/structure/syndicate_uplink_beacon.html b/obj/structure/syndicate_uplink_beacon.html new file mode 100644 index 0000000000000..ea964077e2eb7 --- /dev/null +++ b/obj/structure/syndicate_uplink_beacon.html @@ -0,0 +1 @@ +/obj/structure/syndicate_uplink_beacon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

syndicate_uplink_beacon

Device that traitors can craft in order to be sent a new, undisguised uplink

Vars

beacon_cooldownprevents traitor from activating teleport_beacon proc too much in a small period of time
listening_radioRadio that the device needs to listen to the codeword from the traitor
ownerweakref to person who is going to use the beacon to get a replacement uplink
teleport_beaconwhile constructed the teleport beacon is still active
uplink_codeTraitor's code that they speak into the radio

Procs

probe_traitorProc reads the user, sets radio to the correct frequency and starts to listen for the replacement uplink code
teleport_uplinkProc uses owners uplink handler to create replacement uplink and then lock or destroy their other uplinks

Var Details

beacon_cooldown

prevents traitor from activating teleport_beacon proc too much in a small period of time

listening_radio

Radio that the device needs to listen to the codeword from the traitor

owner

weakref to person who is going to use the beacon to get a replacement uplink

teleport_beacon

while constructed the teleport beacon is still active

Traitor's code that they speak into the radio

Proc Details

probe_traitor

Proc reads the user, sets radio to the correct frequency and starts to listen for the replacement uplink code

Proc uses owners uplink handler to create replacement uplink and then lock or destroy their other uplinks

\ No newline at end of file diff --git a/obj/structure/table.html b/obj/structure/table.html new file mode 100644 index 0000000000000..cf27383c1beba --- /dev/null +++ b/obj/structure/table.html @@ -0,0 +1 @@ +/obj/structure/table - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

table

Procs

make_climbableAdds the element used to make the object climbable, and also the one that shift the mob buckled to it up.

Proc Details

make_climbable

Adds the element used to make the object climbable, and also the one that shift the mob buckled to it up.

\ No newline at end of file diff --git a/obj/structure/table/optable.html b/obj/structure/table/optable.html new file mode 100644 index 0000000000000..8553944460ffc --- /dev/null +++ b/obj/structure/table/optable.html @@ -0,0 +1,5 @@ +/obj/structure/table/optable - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

optable

Procs

chill_outUsed to numb a patient and apply stasis to them if enabled.
mark_patientAny mob that enters our tile will be marked as a potential patient. They will be turned into a patient if they lie down.
post_buckle_mobAlign the mob with the table when buckled.
post_unbuckle_mobDisalign the mob with the table when unbuckled.
recheck_patientSomeone on our tile just lied down, got up, moved in, or moved out. +potential_patient is the mob that had one of those four things change. +The check is a bit broad so we can find a replacement patient.
thaw_themUsed to remove the effects of stasis and numbing when a patient is unbuckled
unmark_patientUnmark the potential patient.

Proc Details

chill_out

Used to numb a patient and apply stasis to them if enabled.

mark_patient

Any mob that enters our tile will be marked as a potential patient. They will be turned into a patient if they lie down.

post_buckle_mob

Align the mob with the table when buckled.

post_unbuckle_mob

Disalign the mob with the table when unbuckled.

recheck_patient

Someone on our tile just lied down, got up, moved in, or moved out. +potential_patient is the mob that had one of those four things change. +The check is a bit broad so we can find a replacement patient.

thaw_them

Used to remove the effects of stasis and numbing when a patient is unbuckled

unmark_patient

Unmark the potential patient.

\ No newline at end of file diff --git a/obj/structure/table/optable/abductor.html b/obj/structure/table/optable/abductor.html new file mode 100644 index 0000000000000..68f5b04620374 --- /dev/null +++ b/obj/structure/table/optable/abductor.html @@ -0,0 +1 @@ +/obj/structure/table/optable/abductor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

abductor

Vars

inject_amountAmount to inject per second

Var Details

inject_amount

Amount to inject per second

\ No newline at end of file diff --git a/obj/structure/table/rolling.html b/obj/structure/table/rolling.html new file mode 100644 index 0000000000000..e8255f3c0a8e6 --- /dev/null +++ b/obj/structure/table/rolling.html @@ -0,0 +1 @@ +/obj/structure/table/rolling - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

rolling

Table on wheels

Vars

attached_itemsLazylist of the items that we have on our surface.

Procs

clear_item_referenceRemoves the signal and the entrance from the list.
on_item_movedHandles cases where any attached item moves, with or without the table. If we get picked up or anything, unregister the signal so we don't move with the table after removal from the surface.
on_our_movedHandles movement of the table itself, as well as moving along any atoms we have on our surface.

Var Details

attached_items

Lazylist of the items that we have on our surface.

Proc Details

clear_item_reference

Removes the signal and the entrance from the list.

on_item_moved

Handles cases where any attached item moves, with or without the table. If we get picked up or anything, unregister the signal so we don't move with the table after removal from the surface.

on_our_moved

Handles movement of the table itself, as well as moving along any atoms we have on our surface.

\ No newline at end of file diff --git a/obj/structure/tank_holder.html b/obj/structure/tank_holder.html new file mode 100644 index 0000000000000..90fcb9ca2cd63 --- /dev/null +++ b/obj/structure/tank_holder.html @@ -0,0 +1,3 @@ +/obj/structure/tank_holder - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tank_holder

?

Vars

tankThe stored tank. If this is a path, it gets created into contents at Initialize.

Procs

after_detach_tankCall this after taking the tank from contents in order to update references, icon +and density.

Var Details

tank

The stored tank. If this is a path, it gets created into contents at Initialize.

Proc Details

after_detach_tank

Call this after taking the tank from contents in order to update references, icon +and density.

\ No newline at end of file diff --git a/obj/structure/throwing_wheel.html b/obj/structure/throwing_wheel.html new file mode 100644 index 0000000000000..293533e3def2a --- /dev/null +++ b/obj/structure/throwing_wheel.html @@ -0,0 +1,6 @@ +/obj/structure/throwing_wheel - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

throwing_wheel

Vars

given_messagethe list of messages that are sent whilst "working" the clay
has_clayif the structure has clay

Procs

usePrompts user for how they wish to use the throwing wheel

Var Details

given_message

the list of messages that are sent whilst "working" the clay

has_clay

if the structure has clay

Proc Details

use

Prompts user for how they wish to use the throwing wheel

+

To make sure in_use var always gets set back to FALSE no matter what happens, do the actual 'using' in its own proc and do the setting to FALSE in attack_hand

+

Arguments:

+
    +
  • user - the mob who is using the throwing wheel
  • +
\ No newline at end of file diff --git a/obj/structure/toilet.html b/obj/structure/toilet.html new file mode 100644 index 0000000000000..b092085222b73 --- /dev/null +++ b/obj/structure/toilet.html @@ -0,0 +1 @@ +/obj/structure/toilet - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

toilet

Vars

buildstackamountHow much of the buildstacktype is needed to construct the toilet.
buildstacktypeThe type of material used to build the toilet.
cistern_itemsLazylist of items in the cistern.
cistern_openBoolean if the cistern is up, allowing items to be put in/out.
cover_openBoolean if the toilet seat is up.
fishesLazylist of fish in the toilet, not to be mixed with the items in the cistern. Max of 3
flushingBoolean if whether the toilet is currently flushing.
swirlieReference to the mob being given a swirlie.
w_itemsThe combined weight of all items in the cistern put together.

Procs

end_flushingEnds the flushing animation and updates overlays if necessary

Var Details

buildstackamount

How much of the buildstacktype is needed to construct the toilet.

buildstacktype

The type of material used to build the toilet.

cistern_items

Lazylist of items in the cistern.

cistern_open

Boolean if the cistern is up, allowing items to be put in/out.

cover_open

Boolean if the toilet seat is up.

fishes

Lazylist of fish in the toilet, not to be mixed with the items in the cistern. Max of 3

flushing

Boolean if whether the toilet is currently flushing.

swirlie

Reference to the mob being given a swirlie.

w_items

The combined weight of all items in the cistern put together.

Proc Details

end_flushing

Ends the flushing animation and updates overlays if necessary

\ No newline at end of file diff --git a/obj/structure/toiletbong.html b/obj/structure/toiletbong.html new file mode 100644 index 0000000000000..8eedb1e7fa7bc --- /dev/null +++ b/obj/structure/toiletbong.html @@ -0,0 +1 @@ +/obj/structure/toiletbong - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

toiletbong

Procs

post_rotationCalled in the simple rotation's post_rotation callback, playing a sound cue to players.

Proc Details

post_rotation

Called in the simple rotation's post_rotation callback, playing a sound cue to players.

\ No newline at end of file diff --git a/obj/structure/towel_bin.html b/obj/structure/towel_bin.html new file mode 100644 index 0000000000000..561ceb27ee74e --- /dev/null +++ b/obj/structure/towel_bin.html @@ -0,0 +1,8 @@ +/obj/structure/towel_bin - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

towel_bin

Vars

amountHow many towels there is in the bin (separate from the towels list because we won't instanciate 10 towels per bin in existance).
hiddenAn item that might be hidden between some towels in the bin.
towelsThe list of already-instanciated towels, for when people put them back in it.

Procs

take_towel_outHelper proc for taking a towel out of the bin, to reduce code repetitions. +Intended to only be called by attack_hand() and attack_tk().

Var Details

amount

How many towels there is in the bin (separate from the towels list because we won't instanciate 10 towels per bin in existance).

hidden

An item that might be hidden between some towels in the bin.

towels

The list of already-instanciated towels, for when people put them back in it.

Proc Details

take_towel_out

Helper proc for taking a towel out of the bin, to reduce code repetitions. +Intended to only be called by attack_hand() and attack_tk().

+

Arguments:

+
    +
  • user - Mob that's trying to take a towel out.
  • +
  • tk - Is the user trying to do this using telekinesis? Defaults to FALSE.
  • +
\ No newline at end of file diff --git a/obj/structure/trading_card_summon.html b/obj/structure/trading_card_summon.html new file mode 100644 index 0000000000000..b452646b07d85 --- /dev/null +++ b/obj/structure/trading_card_summon.html @@ -0,0 +1 @@ +/obj/structure/trading_card_summon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

trading_card_summon

Vars

card_refHolds a reference to the card itself.
hologramReference to the hologram object itself.
markedIs the card marked or not.
modified_colorColor that stats become if they've been changed from their default.
power_colorColor of the power stat.
power_overlayReference to the text overlay for power.
resolve_colorColor of the resolve stat.
resolve_overlayReference to the text overlay for resolve.
summon_powerPower statistics for the hologram, stored seperately to the template as they can be modified.
summon_resolveResolve statistics for the hologram, stored seperately to the template as they can be modified.
tappedIs the card tapped (rotated) or not.
team_colorColor of the holograms produced.
templateHolds all the default details of the card.

Var Details

card_ref

Holds a reference to the card itself.

hologram

Reference to the hologram object itself.

marked

Is the card marked or not.

modified_color

Color that stats become if they've been changed from their default.

power_color

Color of the power stat.

power_overlay

Reference to the text overlay for power.

resolve_color

Color of the resolve stat.

resolve_overlay

Reference to the text overlay for resolve.

summon_power

Power statistics for the hologram, stored seperately to the template as they can be modified.

summon_resolve

Resolve statistics for the hologram, stored seperately to the template as they can be modified.

tapped

Is the card tapped (rotated) or not.

team_color

Color of the holograms produced.

template

Holds all the default details of the card.

\ No newline at end of file diff --git a/obj/structure/training_machine.html b/obj/structure/training_machine.html new file mode 100644 index 0000000000000..780b84a99efbe --- /dev/null +++ b/obj/structure/training_machine.html @@ -0,0 +1,33 @@ +/obj/structure/training_machine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

training_machine

Machine that runs around wildly so people can practice clickin on things

+

Can have a mob buckled on or a obj/item/target attached. Movement controlled by SSFastProcess, +movespeed controlled by cooldown macros. Can attach obj/item/target, obj/item/training_toolbox, and can buckle mobs to this.

Vars

attached_itemReference to a potentially attached object, either a target, trainer toolbox, or syndicate toolbox
attack_cooldownHelper for timing attacks when emagged
move_cooldownCooldown macro to control how fast this will move. Used in process()
move_speedDelay between process() calls. Cannot be higher than MAX_SPEED. Smaller value represents faster movement.
movingIs the machine moving? Setting this to FALSE will automatically call stop_moving()
rangeThe distance the machine is allowed to roam from its starting point
starting_turfThe turf the machine was on when it was activated
target_positionA random spot within range that the trainer is trying to reach

Procs

DestroyCalled on qdel(), so we don't want a cool explosion to happen
atom_destructionCalled on a normal destruction, so we have a cool explosion and toss whatever's attached
attach_itemAttach an item to the machine
attackbyCalled when the machien is attacked by something
emag_actEmagging causes a deadly, unremovable syndicate toolbox to be attached to the machine
find_target_positionFind a suitable turf to move towards
handle_densityMake sure the machine can't be walked through if something is attached
on_attached_deleteCalled when the attached item is deleted.
processMain movement method for the machine
remove_attached_itemRemove the attached item from the machine
start_movingStart the machine's movement
stop_movingStop the machine's movement
toggleToggle the machine's movement
try_attackTry to attack a nearby mob
ui_actControl the attached variables.
ui_dataSend data to the UI

Var Details

attached_item

Reference to a potentially attached object, either a target, trainer toolbox, or syndicate toolbox

attack_cooldown

Helper for timing attacks when emagged

move_cooldown

Cooldown macro to control how fast this will move. Used in process()

move_speed

Delay between process() calls. Cannot be higher than MAX_SPEED. Smaller value represents faster movement.

moving

Is the machine moving? Setting this to FALSE will automatically call stop_moving()

range

The distance the machine is allowed to roam from its starting point

starting_turf

The turf the machine was on when it was activated

target_position

A random spot within range that the trainer is trying to reach

Proc Details

Destroy

Called on qdel(), so we don't want a cool explosion to happen

atom_destruction

Called on a normal destruction, so we have a cool explosion and toss whatever's attached

attach_item

Attach an item to the machine

+

This proc technically works with any obj. Currently is only used for objects of type item/target and item/training_toolbox +Will make the attached item appear visually on the machine +Arguments

+
    +
  • target - The object to attach
  • +

attackby

Called when the machien is attacked by something

+

Meant for attaching an item to the machine, should only be a training toolbox or target. If emagged, the +machine will gain an auto-attached syndicate toolbox, so in that case we shouldn't be able to swap it out

emag_act

Emagging causes a deadly, unremovable syndicate toolbox to be attached to the machine

find_target_position

Find a suitable turf to move towards

handle_density

Make sure the machine can't be walked through if something is attached

on_attached_delete

Called when the attached item is deleted.

+

Cleans up behavior for when the attached item is deleted or removed.

process

Main movement method for the machine

+

Handles movement using SSFastProcess. Moves randomly, point-to-point, in an area centered around wherever it started. +Will only move if the move_cooldown cooldown macro is finished. +If it can't find a place to go, it will stop moving.

remove_attached_item

Remove the attached item from the machine

+

Called when a user removes the item by hand or by swapping it out with another, when the machine breaks, or +when the machine is emagged. +Arguments

+
    +
  • user - The peson , if any, removing the attached item
  • +
  • throwing - If we should make the item fly off the machine
  • +

start_moving

Start the machine's movement

+

Says a message, plays a sound, then starts processing

stop_moving

Stop the machine's movement

+

Will call STOP_PROCESSING, play a sound, and say an appropriate message +Arguments

+
    +
  • Message - the message the machine says when stopping
  • +

toggle

Toggle the machine's movement

try_attack

Try to attack a nearby mob

+

Called whenever the machine moves, this will look for mobs adjacent to the machine to attack. +Will attack with either a training toolbox (if attached), or a much more deadly syndicate toolbox (if emagged). +A cooldown macro (attack_cooldown) ensures it doesn't attack too quickly

ui_act

Control the attached variables.

+

Will not respond if moving and emagged, so once you set it to go it can't be stopped!

ui_data

Send data to the UI

+

Include's the machine's movement range, speed, and whether or not it's active

\ No newline at end of file diff --git a/obj/structure/tram.html b/obj/structure/tram.html new file mode 100644 index 0000000000000..7c541a302aa7d --- /dev/null +++ b/obj/structure/tram.html @@ -0,0 +1 @@ +/obj/structure/tram - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tram

Vars

bash_soundSound when hit with combat mode
break_soundSound when it breaks
girder_typeType of girder made when deconstructed
knock_soundSound when hit without combat mode
mineralMineral to return when deconstructed
mineral_amountAmount of mineral to return when deconstructed
stateWhat state of de/construction it's in
tram_wall_typeType of structure made out of girder

Var Details

bash_sound

Sound when hit with combat mode

break_sound

Sound when it breaks

girder_type

Type of girder made when deconstructed

knock_sound

Sound when hit without combat mode

mineral

Mineral to return when deconstructed

mineral_amount

Amount of mineral to return when deconstructed

state

What state of de/construction it's in

tram_wall_type

Type of structure made out of girder

\ No newline at end of file diff --git a/obj/structure/tram/alt/uranium.html b/obj/structure/tram/alt/uranium.html new file mode 100644 index 0000000000000..b27cd62999864 --- /dev/null +++ b/obj/structure/tram/alt/uranium.html @@ -0,0 +1 @@ +/obj/structure/tram/alt/uranium - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

uranium

Vars

activeMutex to prevent infinite recursion when propagating radiation pulses
last_eventThe last time a radiation pulse was performed

Var Details

active

Mutex to prevent infinite recursion when propagating radiation pulses

last_event

The last time a radiation pulse was performed

\ No newline at end of file diff --git a/obj/structure/tram/spoiler.html b/obj/structure/tram/spoiler.html new file mode 100644 index 0000000000000..d42736009e197 --- /dev/null +++ b/obj/structure/tram/spoiler.html @@ -0,0 +1 @@ +/obj/structure/tram/spoiler - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

spoiler

Vars

deployedPosition of the spoiler
malfunctioningMalfunctioning due to tampering or emag
tram_idThe tram we're attached to
tram_refWeakref to the tram piece we control

Var Details

deployed

Position of the spoiler

malfunctioning

Malfunctioning due to tampering or emag

tram_id

The tram we're attached to

tram_ref

Weakref to the tram piece we control

\ No newline at end of file diff --git a/obj/structure/transport/linear.html b/obj/structure/transport/linear.html new file mode 100644 index 0000000000000..00b27bafc2aaa --- /dev/null +++ b/obj/structure/transport/linear.html @@ -0,0 +1,52 @@ +/obj/structure/transport/linear - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

linear

Base transport structure. A single tile that can form a modular set with neighbouring tiles +This type holds elevators and trams

Vars

changed_glidersmovables inside transport_contents who had their glide_size changed since our last movement. +used so that we dont have to change the glide_size of every object every movement, which scales to cost more than you'd think
collision_lethalitydamage multiplier if a mob is hit by the lift while it is moving horizontally
create_modular_setif TRUE, this platform will late initialize and then expand to become a multitile object across all other linked platforms on this z level
current_operatorsA lazylist of REFs to all mobs which have a radial open currently
elevator_vertical_speedHow long does it take for the elevator to move vertically?
glide_size_overridewhat glide_size we set our moving contents to.
heighthow many tiles this platform extends on the y axis (north-south not up-down, that would be the z axis)
initial_contentsweakrefs to the contents we have when we're first created. stored so that admins can clear the tram to its initial state +if someone put a bunch of stuff onto it.
pass_through_floorsif true, the elevator works through floors
radial_travelWe use a radial to travel primarily, instead of a button / ui
speed_limiterdecisecond delay between horizontal movements. cannot make the tram move faster than 1 movement per world.tick_lag. only used to give to the transport_controller
transport_contentswhat movables on our platform that we are moving
transport_controller_datummaster datum that controls our movement. in general /transport/linear subtypes control moving themselves, and +/datum/transport_controller instances control moving the entire tram and any behavior associated with that.
transport_controller_typewhat subtype of /datum/transport_controller to create for itself if no other platform on this tram has created one yet. +very important for some behaviors since
transport_idID used to determine what transport types we can merge with
violent_landingif TRUE, we will gib anyone we land on top of. if FALSE, we will just apply damage with a serious wound penalty.
warns_on_down_movementDoes our elevator warn people (with visual effects) when moving down?
widthhow many tiles this platform extends on the x axis

Procs

add_initial_contentsadds everything on our tile that can be added to our transport_contents and initial_contents lists when we're created
can_open_lift_radialCallback / general proc to check if the lift is usable by the passed mob.
check_menuProc to ensure that the radial menu closes when it should. +Arguments:
create_modular_setmake this tram platform multitile, expanding to cover all the tram platforms adjacent to us and deleting them. makes movement more efficient. +the platform becoming multitile should be in the lower left corner since thats assumed to be the loc of multitile objects
group_movemove the movers list of movables on our tile to destination if we successfully move there first. +this is like calling forceMove() on everything in movers and ourselves, except nothing in movers +has destination.Entered() and origin.Exited() called on them, as only our movement can be perceived. +none of the movers are able to react to the movement of any other mover, saving a lot of needless processing cost +and is more sensible. without this, if you and a banana are on the same platform, when that platform moves you will slip +on the banana even if youre not moving relative to it.
module_adjacencyreturns an unordered list of all lift platforms adjacent to us. used so our transport_controller_datum can control all connected platforms. +includes platforms directly above or below us as well. only includes platforms with an identical transport_id to our own.
on_changed_glide_sizesignal handler for COMSIG_MOVABLE_UPDATE_GLIDE_SIZE: when a movable in transport_contents changes its glide_size independently. +adds that movable to a lazy list, movables in that list have their glide_size updated when the tram next moves
open_lift_radialOpens the radial for the lift, allowing the user to move it around.
reset_contentsreset the contents of this lift platform to its original state in case someone put too much shit on it. +everything that is considered foreign is deleted, you can configure what is considered foreign.
set_movement_registrationsset the movement registrations to our current turf(s) so contents moving out of our tile(s) are removed from our movement lists
show_fluff_messageShows a message indicating that the lift has moved up or down. +Arguments:
travelmain proc for moving the lift in the direction [travel_direction]. handles horizontal and/or vertical movement for multi platformed lifts and multitile lifts.
unset_movement_registrationsunset our movement registrations from turfs that no longer contain us (or every loc if turfs_to_unset is unspecified)
verify_transport_contentsverify the movables in our list of contents are actually on our loc

Var Details

changed_gliders

movables inside transport_contents who had their glide_size changed since our last movement. +used so that we dont have to change the glide_size of every object every movement, which scales to cost more than you'd think

collision_lethality

damage multiplier if a mob is hit by the lift while it is moving horizontally

create_modular_set

if TRUE, this platform will late initialize and then expand to become a multitile object across all other linked platforms on this z level

current_operators

A lazylist of REFs to all mobs which have a radial open currently

elevator_vertical_speed

How long does it take for the elevator to move vertically?

glide_size_override

what glide_size we set our moving contents to.

height

how many tiles this platform extends on the y axis (north-south not up-down, that would be the z axis)

initial_contents

weakrefs to the contents we have when we're first created. stored so that admins can clear the tram to its initial state +if someone put a bunch of stuff onto it.

pass_through_floors

if true, the elevator works through floors

radial_travel

We use a radial to travel primarily, instead of a button / ui

speed_limiter

decisecond delay between horizontal movements. cannot make the tram move faster than 1 movement per world.tick_lag. only used to give to the transport_controller

transport_contents

what movables on our platform that we are moving

transport_controller_datum

master datum that controls our movement. in general /transport/linear subtypes control moving themselves, and +/datum/transport_controller instances control moving the entire tram and any behavior associated with that.

transport_controller_type

what subtype of /datum/transport_controller to create for itself if no other platform on this tram has created one yet. +very important for some behaviors since

transport_id

ID used to determine what transport types we can merge with

violent_landing

if TRUE, we will gib anyone we land on top of. if FALSE, we will just apply damage with a serious wound penalty.

warns_on_down_movement

Does our elevator warn people (with visual effects) when moving down?

width

how many tiles this platform extends on the x axis

Proc Details

add_initial_contents

adds everything on our tile that can be added to our transport_contents and initial_contents lists when we're created

can_open_lift_radial

Callback / general proc to check if the lift is usable by the passed mob.

check_menu

Proc to ensure that the radial menu closes when it should. +Arguments:

+
    +
  • user - The person that opened the menu.
  • +
  • starting_loc - The location of the lift when the menu was opened, used to prevent the menu from being interacted with after the lift was moved by someone else.
  • +
+

Returns:

+
    +
  • boolean, FALSE if the menu should be closed, TRUE if the menu is clear to stay opened.
  • +

create_modular_set

make this tram platform multitile, expanding to cover all the tram platforms adjacent to us and deleting them. makes movement more efficient. +the platform becoming multitile should be in the lower left corner since thats assumed to be the loc of multitile objects

group_move

move the movers list of movables on our tile to destination if we successfully move there first. +this is like calling forceMove() on everything in movers and ourselves, except nothing in movers +has destination.Entered() and origin.Exited() called on them, as only our movement can be perceived. +none of the movers are able to react to the movement of any other mover, saving a lot of needless processing cost +and is more sensible. without this, if you and a banana are on the same platform, when that platform moves you will slip +on the banana even if youre not moving relative to it.

module_adjacency

returns an unordered list of all lift platforms adjacent to us. used so our transport_controller_datum can control all connected platforms. +includes platforms directly above or below us as well. only includes platforms with an identical transport_id to our own.

on_changed_glide_size

signal handler for COMSIG_MOVABLE_UPDATE_GLIDE_SIZE: when a movable in transport_contents changes its glide_size independently. +adds that movable to a lazy list, movables in that list have their glide_size updated when the tram next moves

open_lift_radial

Opens the radial for the lift, allowing the user to move it around.

reset_contents

reset the contents of this lift platform to its original state in case someone put too much shit on it. +everything that is considered foreign is deleted, you can configure what is considered foreign.

+

used by an admin via calling reset_lift_contents() on our transport_controller_datum.

+

Arguments:

+
    +
  • consider_anything_past - number. if > 0 this platform will only handle foreign contents that exceed this number on each of our locs
  • +
  • foreign_objects - bool. if true this platform will consider /atom/movable's that arent mobs as part of foreign contents
  • +
  • foreign_non_player_mobs - bool. if true we consider mobs that dont have a mind to be foreign
  • +
  • consider_player_mobs - bool. if true we consider player mobs to be foreign. only works if foreign_non_player_mobs is true as well
  • +

set_movement_registrations

set the movement registrations to our current turf(s) so contents moving out of our tile(s) are removed from our movement lists

show_fluff_message

Shows a message indicating that the lift has moved up or down. +Arguments:

+
    +
  • direction - What direction are we going
  • +
  • user - The mob that caused the lift to move, for the visible message.
  • +

travel

main proc for moving the lift in the direction [travel_direction]. handles horizontal and/or vertical movement for multi platformed lifts and multitile lifts.

unset_movement_registrations

unset our movement registrations from turfs that no longer contain us (or every loc if turfs_to_unset is unspecified)

verify_transport_contents

verify the movables in our list of contents are actually on our loc

\ No newline at end of file diff --git a/obj/structure/transport/linear/tram.html b/obj/structure/transport/linear/tram.html new file mode 100644 index 0000000000000..167a41f0f6710 --- /dev/null +++ b/obj/structure/transport/linear/tram.html @@ -0,0 +1,4 @@ +/obj/structure/transport/linear/tram - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

tram

Vars

create_modular_setDo we want this transport to link with nearby modules to make a multi-tile platform
travellingSet by the tram control console in late initialize

Procs

find_dimensionsdebug proc to highlight the locs of the tram platform
unlock_controlsHandles unlocking the tram controls for use after moving

Var Details

create_modular_set

Do we want this transport to link with nearby modules to make a multi-tile platform

travelling

Set by the tram control console in late initialize

Proc Details

find_dimensions

debug proc to highlight the locs of the tram platform

unlock_controls

Handles unlocking the tram controls for use after moving

+

More safety checks to make sure the tram has actually docked properly +at a location before users are allowed to interact with the tram console again. +Tram finds its location at this point before fully unlocking controls to the user.

\ No newline at end of file diff --git a/obj/structure/trap/eldritch.html b/obj/structure/trap/eldritch.html new file mode 100644 index 0000000000000..6db7849904788 --- /dev/null +++ b/obj/structure/trap/eldritch.html @@ -0,0 +1 @@ +/obj/structure/trap/eldritch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

eldritch

Vars

carver_tipA tip displayed to heretics who examine the rune carver. Explains what the rune does.
ownerReference to trap owner mob

Var Details

carver_tip

A tip displayed to heretics who examine the rune carver. Explains what the rune does.

owner

Reference to trap owner mob

\ No newline at end of file diff --git a/obj/structure/tray.html b/obj/structure/tray.html new file mode 100644 index 0000000000000..7dfa7d75e078e --- /dev/null +++ b/obj/structure/tray.html @@ -0,0 +1 @@ +/obj/structure/tray - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

tray

Vars

connectedThe bodycontainer we are a tray to.

Var Details

connected

The bodycontainer we are a tray to.

\ No newline at end of file diff --git a/obj/structure/urinal.html b/obj/structure/urinal.html new file mode 100644 index 0000000000000..e3ae84781a05a --- /dev/null +++ b/obj/structure/urinal.html @@ -0,0 +1 @@ +/obj/structure/urinal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

urinal

Vars

exposedCan you currently put an item inside
hidden_itemWhat's in the urinal

Var Details

exposed

Can you currently put an item inside

hidden_item

What's in the urinal

\ No newline at end of file diff --git a/obj/structure/void_conduit.html b/obj/structure/void_conduit.html new file mode 100644 index 0000000000000..777aa1a5b60e1 --- /dev/null +++ b/obj/structure/void_conduit.html @@ -0,0 +1 @@ +/obj/structure/void_conduit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

void_conduit

Vars

effect_rangeHow many tiles far our effect is
overlayed_turfsList of tiles that we added an overlay to, so we can clear them when the conduit is deleted
soundloopAudio loop for the rift being alive
timeridid of the deletion timer
void_overlayOverlay to apply to the tiles in range of the conduit

Procs

do_conduit_pulseSends out a pulse
handle_effectsApplies the effects of the pulse "hitting" something. Freezes non-heretic, destroys airlocks/windows

Var Details

effect_range

How many tiles far our effect is

overlayed_turfs

List of tiles that we added an overlay to, so we can clear them when the conduit is deleted

soundloop

Audio loop for the rift being alive

timerid

id of the deletion timer

void_overlay

Overlay to apply to the tiles in range of the conduit

Proc Details

do_conduit_pulse

Sends out a pulse

handle_effects

Applies the effects of the pulse "hitting" something. Freezes non-heretic, destroys airlocks/windows

\ No newline at end of file diff --git a/obj/structure/wall_torch.html b/obj/structure/wall_torch.html new file mode 100644 index 0000000000000..74ec480b692c3 --- /dev/null +++ b/obj/structure/wall_torch.html @@ -0,0 +1 @@ +/obj/structure/wall_torch - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wall_torch

Vars

burningis the bonfire lit?
spawns_litDoes this torch spawn pre-lit?

Procs

light_it_upSets the torch's icon to burning and sets the light up

Var Details

burning

is the bonfire lit?

spawns_lit

Does this torch spawn pre-lit?

Proc Details

light_it_up

Sets the torch's icon to burning and sets the light up

\ No newline at end of file diff --git a/obj/structure/wargame_hologram.html b/obj/structure/wargame_hologram.html new file mode 100644 index 0000000000000..d90074448d42d --- /dev/null +++ b/obj/structure/wargame_hologram.html @@ -0,0 +1 @@ +/obj/structure/wargame_hologram - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wargame_hologram

Vars

projectorWhat object created this projection? Can be null as a projector isn't required for this to exist

Var Details

projector

What object created this projection? Can be null as a projector isn't required for this to exist

\ No newline at end of file diff --git a/obj/structure/water_source.html b/obj/structure/water_source.html new file mode 100644 index 0000000000000..5779a98bc3aa1 --- /dev/null +++ b/obj/structure/water_source.html @@ -0,0 +1 @@ +/obj/structure/water_source - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

water_source

Vars

busyBoolean on whether something is currently being washed, preventing multiple people from cleaning at once.
dispensedreagentThe reagent that is dispensed from this source, by default it's water.

Var Details

busy

Boolean on whether something is currently being washed, preventing multiple people from cleaning at once.

dispensedreagent

The reagent that is dispensed from this source, by default it's water.

\ No newline at end of file diff --git a/obj/structure/water_source/puddle/healing.html b/obj/structure/water_source/puddle/healing.html new file mode 100644 index 0000000000000..dbcb41623f456 --- /dev/null +++ b/obj/structure/water_source/puddle/healing.html @@ -0,0 +1 @@ +/obj/structure/water_source/puddle/healing - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

healing

Vars

heal_amountHow much do we heal the current person?

Var Details

heal_amount

How much do we heal the current person?

\ No newline at end of file diff --git a/obj/structure/weightmachine.html b/obj/structure/weightmachine.html new file mode 100644 index 0000000000000..3335227e6d5e7 --- /dev/null +++ b/obj/structure/weightmachine.html @@ -0,0 +1 @@ +/obj/structure/weightmachine - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

weightmachine

Vars

drunk_messagemessage when drunk user fails to use the machine
finished_messageList of messages picked when finished using the machine.
more_weightList of messages picked when using the machine.
pixel_shift_yHow much we shift the user's pixel y when using the weight machine.
weight_actionThe weight action we give to people that buckle themselves to us.

Var Details

drunk_message

message when drunk user fails to use the machine

finished_message

List of messages picked when finished using the machine.

more_weight

List of messages picked when using the machine.

pixel_shift_y

How much we shift the user's pixel y when using the weight machine.

weight_action

The weight action we give to people that buckle themselves to us.

\ No newline at end of file diff --git a/obj/structure/windoor_assembly.html b/obj/structure/windoor_assembly.html new file mode 100644 index 0000000000000..b8a0d2dd0acb8 --- /dev/null +++ b/obj/structure/windoor_assembly.html @@ -0,0 +1,15 @@ +/obj/structure/windoor_assembly - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

windoor_assembly

Vars

created_namePlayer generated name string from renaming.
electronicsReference to the airlock electronics inside for determining window access.
facingDoes the windoor open to the left or right?
secureWhether or not this creates a secure windoor
stateWindoor (window door) assembly -Nodrak +Step 1: Create a windoor out of rglass +Step 2: Add r-glass to the assembly to make a secure windoor (Optional) +Step 3: Rotate or Flip the assembly to face and open the way you want +Step 4: Wrench the assembly in place +Step 5: Add cables to the assembly +Step 6: Set access for the door. +Step 7: Crowbar the door to complete

Var Details

created_name

Player generated name string from renaming.

electronics

Reference to the airlock electronics inside for determining window access.

facing

Does the windoor open to the left or right?

secure

Whether or not this creates a secure windoor

state

Windoor (window door) assembly -Nodrak +Step 1: Create a windoor out of rglass +Step 2: Add r-glass to the assembly to make a secure windoor (Optional) +Step 3: Rotate or Flip the assembly to face and open the way you want +Step 4: Wrench the assembly in place +Step 5: Add cables to the assembly +Step 6: Set access for the door. +Step 7: Crowbar the door to complete

\ No newline at end of file diff --git a/obj/structure/window.html b/obj/structure/window.html new file mode 100644 index 0000000000000..89bb85645bbff --- /dev/null +++ b/obj/structure/window.html @@ -0,0 +1,9 @@ +/obj/structure/window - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

window

Vars

bloodiedIf some inconsiderate jerk has had their blood spilled on this window, thus making it cleanable
dramatically_disappearingWhether or not we're disappearing but dramatically
glass_material_datumDatum that the shard and debris type is pulled from for when the glass is broken.
polarizer_id_on_spawnA variable for mappers to make the window start polarized, with a specific +id linked, for the polarization controller to link to. Mapping stuff. +Should usually be a string, so it doesn't get confused with what players +can make the id on the controller be. +HAS NO EFFECT AFTER THE WINDOW HAS BEEN THROUGH Initialize()!!!

Procs

spawn_debrisSpawns shard and debris decal based on the glass_material_datum, spawns rods if window is reinforned and number of shards/rods is determined by the window being fulltile or not.

Var Details

bloodied

If some inconsiderate jerk has had their blood spilled on this window, thus making it cleanable

dramatically_disappearing

Whether or not we're disappearing but dramatically

glass_material_datum

Datum that the shard and debris type is pulled from for when the glass is broken.

polarizer_id_on_spawn

A variable for mappers to make the window start polarized, with a specific +id linked, for the polarization controller to link to. Mapping stuff. +Should usually be a string, so it doesn't get confused with what players +can make the id on the controller be. +HAS NO EFFECT AFTER THE WINDOW HAS BEEN THROUGH Initialize()!!!

Proc Details

spawn_debris

Spawns shard and debris decal based on the glass_material_datum, spawns rods if window is reinforned and number of shards/rods is determined by the window being fulltile or not.

\ No newline at end of file diff --git a/obj/structure/window/reinforced/plasma.html b/obj/structure/window/reinforced/plasma.html new file mode 100644 index 0000000000000..60c2e52ce0e35 --- /dev/null +++ b/obj/structure/window/reinforced/plasma.html @@ -0,0 +1 @@ +/obj/structure/window/reinforced/plasma - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

plasma

Procs

shatter_windowShatter the supermatter chamber windows

Proc Details

shatter_window

Shatter the supermatter chamber windows

\ No newline at end of file diff --git a/obj/structure/wormfarm.html b/obj/structure/wormfarm.html new file mode 100644 index 0000000000000..0b3cc9ffaf449 --- /dev/null +++ b/obj/structure/wormfarm.html @@ -0,0 +1 @@ +/obj/structure/wormfarm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

wormfarm

Vars

current_foodHow much food was inserted into the barrel that needs to be composted
current_wormHow many worms the barrel is currently holding
in_useIf the barrel is currently being used by someone
max_wormHow many worms can the barrel hold

Var Details

current_food

How much food was inserted into the barrel that needs to be composted

current_worm

How many worms the barrel is currently holding

in_use

If the barrel is currently being used by someone

max_worm

How many worms can the barrel hold

\ No newline at end of file diff --git a/obj/structure/wrestling_corner.html b/obj/structure/wrestling_corner.html new file mode 100644 index 0000000000000..5a49d870d3e29 --- /dev/null +++ b/obj/structure/wrestling_corner.html @@ -0,0 +1 @@ +/obj/structure/wrestling_corner - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

wrestling_corner

Procs

wrench_actImplements behaviour that makes it possible to unanchor the railing.

Proc Details

wrench_act

Implements behaviour that makes it possible to unanchor the railing.

\ No newline at end of file diff --git a/obj/structure/xen_crystal.html b/obj/structure/xen_crystal.html new file mode 100644 index 0000000000000..5cdaa4a881627 --- /dev/null +++ b/obj/structure/xen_crystal.html @@ -0,0 +1 @@ +/obj/structure/xen_crystal - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

xen_crystal

Vars

harvestedHave we been harvested?

Var Details

harvested

Have we been harvested?

\ No newline at end of file diff --git a/obj/structure/xen_pylon.html b/obj/structure/xen_pylon.html new file mode 100644 index 0000000000000..7358cdacaf6d4 --- /dev/null +++ b/obj/structure/xen_pylon.html @@ -0,0 +1 @@ +/obj/structure/xen_pylon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

xen_pylon

Vars

shield_rangeThe range at which we provide shield support to a mob.
shielded_mobsA list of mobs we are currently shielding with attached beams.

Var Details

shield_range

The range at which we provide shield support to a mob.

shielded_mobs

A list of mobs we are currently shielding with attached beams.

\ No newline at end of file diff --git a/obj/vehicle.html b/obj/vehicle.html new file mode 100644 index 0000000000000..56a900503edf0 --- /dev/null +++ b/obj/vehicle.html @@ -0,0 +1,64 @@ +/obj/vehicle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

vehicle

Vars

canmoveWhether the vehicle is currently able to move
inserted_keyThe inserted key, needed on some vehicles to start the engine
key_typeIf the driver needs a certain item in hand (or inserted, for vehicles) to drive this. For vehicles, this must be duplicated on their riding component subtype +/datum/component/riding/var/keytype variable because only a few specific checks are handled here with this var, and the majority of it is on the riding component +Eventually the remaining checks should be moved to the component and this var removed.
max_driversMaximum amount of drivers
max_occupantsMaximum amount of passengers plus drivers
trailerThis vehicle will follow us when we move (like atrailer duh)

Procs

add_trailerTo add a trailer to the vehicle in a manner that allows safe qdels
destroy_controller_action_type
destroy_passenger_action_type
generate_action_type
generate_actions
generate_integrity_messageReturns a readable string of the vehicle's health for examining. Overridden by subtypes who want to be more verbose with their health messages.
grant_action_type_to_mob
grant_passenger_actions
initialize_controller_action_type
initialize_passenger_action_type
remove_action_type_from_mob
remove_passenger_actions
remove_trailerTo remove a trailer from the vehicle in a manner that allows safe qdels

Var Details

canmove

Whether the vehicle is currently able to move

inserted_key

The inserted key, needed on some vehicles to start the engine

key_type

If the driver needs a certain item in hand (or inserted, for vehicles) to drive this. For vehicles, this must be duplicated on their riding component subtype +/datum/component/riding/var/keytype variable because only a few specific checks are handled here with this var, and the majority of it is on the riding component +Eventually the remaining checks should be moved to the component and this var removed.

max_drivers

Maximum amount of drivers

max_occupants

Maximum amount of passengers plus drivers

trailer

This vehicle will follow us when we move (like atrailer duh)

Proc Details

add_trailer

To add a trailer to the vehicle in a manner that allows safe qdels

destroy_controller_action_type

destroy_controller_action_type

+

As the name implies, removes the actiontype from autogrant and removes it from all occupants +args:

+
    +
  • actiontype: typepath of the action you want to remove from occupants and autogrant.
  • +

destroy_passenger_action_type

destroy_passenger_action_type

+

Removes this action type from all occupants and stops autogranting it +args:

+
    +
  • actiontype: typepath of the action you want to remove from occupants and the autogrant list.
  • +

generate_action_type

generate_action_type

+

A small proc to properly set up each action path. +args:

+
    +
  • actiontype: typepath of the action the proc sets up. +returns created and set up action instance
  • +

generate_actions

generate_actions

+

You override this with initialize_passenger_action_type and initialize_controller_action_type calls +To give passengers actions when they enter the vehicle. +Read the documentation on the aforementioned procs to learn the difference

generate_integrity_message

Returns a readable string of the vehicle's health for examining. Overridden by subtypes who want to be more verbose with their health messages.

grant_action_type_to_mob

grant_action_type_to_mob

+

As on the tin, it does all the annoying small stuff and sanity needed +to GRANT an action to a mob. +args:

+
    +
  • actiontype: typepath of the action you want to give to grant_to.
  • +
  • grant_to: the mob we're giving actiontype to +returns TRUE if successfully granted
  • +

grant_passenger_actions

grant_passenger_actions

+

Called on every passenger that enters the vehicle, goes through the list of actions it needs to give... +and does that. +args:

+
    +
  • grant_to: mob that needs to get every action the vehicle grants
  • +

initialize_controller_action_type

initialize_controller_action_type

+

Gives any passenger that enters the vehicle this action... IF they have the correct vehicle control flag. +This is used so passengers cannot press buttons only drivers should have, for example. +args:

+
    +
  • actiontype: typepath of the action you want to give occupants.
  • +

initialize_passenger_action_type

initialize_passenger_action_type

+

Gives any passenger that enters the mech this action. +They will lose it when they disembark. +args:

+
    +
  • actiontype: typepath of the action you want to give occupants.
  • +

remove_action_type_from_mob

remove_action_type_from_mob

+

As on the tin, it does all the annoying small stuff and sanity needed +to REMOVE an action to a mob. +args:

+
    +
  • actiontype: typepath of the action you want to give to grant_to.
  • +
  • take_from: the mob we're taking actiontype to +returns TRUE if successfully removed
  • +

remove_passenger_actions

remove_passenger_actions

+

Called on every passenger that exits the vehicle, goes through the list of actions it needs to remove... +and does that. +args:

+
    +
  • take_from: mob that needs to get every action the vehicle grants
  • +

remove_trailer

To remove a trailer from the vehicle in a manner that allows safe qdels

\ No newline at end of file diff --git a/obj/vehicle/ridden/bicycle.html b/obj/vehicle/ridden/bicycle.html new file mode 100644 index 0000000000000..a333aa41754e4 --- /dev/null +++ b/obj/vehicle/ridden/bicycle.html @@ -0,0 +1 @@ +/obj/vehicle/ridden/bicycle - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

bicycle

Procs

can_still_fixcan we still fix the bike lol

Proc Details

can_still_fix

can we still fix the bike lol

\ No newline at end of file diff --git a/obj/vehicle/ridden/janicart.html b/obj/vehicle/ridden/janicart.html new file mode 100644 index 0000000000000..d94c8ce381c4b --- /dev/null +++ b/obj/vehicle/ridden/janicart.html @@ -0,0 +1,5 @@ +/obj/vehicle/ridden/janicart - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

Janicart

Vars

installed_upgradeThe installed upgrade, if present
trash_bagThe attached garbage bag, if present

Procs

bag_deletedCalled if the attached bag is being qdeleted, ensures appearance is maintained properly
try_remove_bagAttempts to remove the attached trash bag, returns true if bag was removed

Var Details

installed_upgrade

The installed upgrade, if present

trash_bag

The attached garbage bag, if present

Proc Details

bag_deleted

Called if the attached bag is being qdeleted, ensures appearance is maintained properly

try_remove_bag

Attempts to remove the attached trash bag, returns true if bag was removed

+

Arguments:

+
    +
  • remover - The (optional) mob attempting to remove the bag
  • +
\ No newline at end of file diff --git a/obj/vehicle/ridden/rail_cart.html b/obj/vehicle/ridden/rail_cart.html new file mode 100644 index 0000000000000..06c8dcb9ff9cb --- /dev/null +++ b/obj/vehicle/ridden/rail_cart.html @@ -0,0 +1 @@ +/obj/vehicle/ridden/rail_cart - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

rail_cart

Vars

has_sandwhether there is sand in the cart
railoverlayThe mutable appearance used for the overlay over buckled mobs.

Procs

attach_trailersearches the cardinal directions to add this cart to another cart's trailer

Var Details

has_sand

whether there is sand in the cart

railoverlay

The mutable appearance used for the overlay over buckled mobs.

Proc Details

attach_trailer

searches the cardinal directions to add this cart to another cart's trailer

\ No newline at end of file diff --git a/obj/vehicle/ridden/scooter/skateboard.html b/obj/vehicle/ridden/scooter/skateboard.html new file mode 100644 index 0000000000000..44b39a484b0f7 --- /dev/null +++ b/obj/vehicle/ridden/scooter/skateboard.html @@ -0,0 +1 @@ +/obj/vehicle/ridden/scooter/skateboard - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

skateboard

Vars

board_item_typeThe handheld item counterpart for the board
can_slow_downIf true, riding the skateboard with walk intent on will prevent crashing.
grindingWhether the board is currently grinding
instabilityStamina drain multiplier
next_crashStores the time of the last crash plus a short cooldown, affects availability and outcome of certain actions
sparksSparks datum for when we grind on tables

Procs

grindMoves the vehicle forward and if it lands on a table, repeats

Var Details

board_item_type

The handheld item counterpart for the board

can_slow_down

If true, riding the skateboard with walk intent on will prevent crashing.

grinding

Whether the board is currently grinding

instability

Stamina drain multiplier

next_crash

Stores the time of the last crash plus a short cooldown, affects availability and outcome of certain actions

sparks

Sparks datum for when we grind on tables

Proc Details

grind

Moves the vehicle forward and if it lands on a table, repeats

\ No newline at end of file diff --git a/obj/vehicle/ridden/scooter/skateboard/wheelys.html b/obj/vehicle/ridden/scooter/skateboard/wheelys.html new file mode 100644 index 0000000000000..75633d565d473 --- /dev/null +++ b/obj/vehicle/ridden/scooter/skateboard/wheelys.html @@ -0,0 +1 @@ +/obj/vehicle/ridden/scooter/skateboard/wheelys - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wheelys

Vars

component_typeComponent typepath to attach in [/obj/vehicle/ridden/scooter/skateboard/wheelys/proc/make_ridable()]
shoesStores the shoes associated with the vehicle
wheel_nameName of the wheels, for visible messages

Procs

link_shoesSets the shoes that the vehicle is associated with, called when the shoes are initialized

Var Details

component_type

Component typepath to attach in [/obj/vehicle/ridden/scooter/skateboard/wheelys/proc/make_ridable()]

shoes

Stores the shoes associated with the vehicle

wheel_name

Name of the wheels, for visible messages

Proc Details

Sets the shoes that the vehicle is associated with, called when the shoes are initialized

\ No newline at end of file diff --git a/obj/vehicle/ridden/secway.html b/obj/vehicle/ridden/secway.html new file mode 100644 index 0000000000000..aa9071cb8eacd --- /dev/null +++ b/obj/vehicle/ridden/secway.html @@ -0,0 +1 @@ +/obj/vehicle/ridden/secway - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

secway

Vars

eddie_murphyThis stores a banana that, when used on the secway, prevents the vehicle from moving until it is removed.

Var Details

eddie_murphy

This stores a banana that, when used on the secway, prevents the vehicle from moving until it is removed.

\ No newline at end of file diff --git a/obj/vehicle/ridden/wheelchair.html b/obj/vehicle/ridden/wheelchair.html new file mode 100644 index 0000000000000..a40cc63a24821 --- /dev/null +++ b/obj/vehicle/ridden/wheelchair.html @@ -0,0 +1 @@ +/obj/vehicle/ridden/wheelchair - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wheelchair

Vars

bell_attachedBell attached to the wheelchair, if we have one.
delay_multiplierRun speed delay is multiplied with this for vehicle move delay.
foldabletypeDetermines the typepath of what the object folds into
overlay_iconThis variable is used to specify which overlay icon is used for the wheelchair, ensures wheelchair can cover your legs

Procs

attach_bellattaches bell to the wheelchair
make_ridableI assign the ridable element in this so i don't have to fuss with hand wheelchairs and motor wheelchairs having different subtypes

Var Details

bell_attached

Bell attached to the wheelchair, if we have one.

delay_multiplier

Run speed delay is multiplied with this for vehicle move delay.

foldabletype

Determines the typepath of what the object folds into

overlay_icon

This variable is used to specify which overlay icon is used for the wheelchair, ensures wheelchair can cover your legs

Proc Details

attach_bell

attaches bell to the wheelchair

make_ridable

I assign the ridable element in this so i don't have to fuss with hand wheelchairs and motor wheelchairs having different subtypes

\ No newline at end of file diff --git a/obj/vehicle/ridden/wheelchair/hardlight.html b/obj/vehicle/ridden/wheelchair/hardlight.html new file mode 100644 index 0000000000000..e4a26c097a581 --- /dev/null +++ b/obj/vehicle/ridden/wheelchair/hardlight.html @@ -0,0 +1,3 @@ +/obj/vehicle/ridden/wheelchair/hardlight - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

hardlight

Vars

projectorThe projector associated with this wheelchair. +Only used so that we can remove this wheelchair from it when it gets destroyed.

Var Details

projector

The projector associated with this wheelchair. +Only used so that we can remove this wheelchair from it when it gets destroyed.

\ No newline at end of file diff --git a/obj/vehicle/ridden/wheelchair/motorized.html b/obj/vehicle/ridden/wheelchair/motorized.html new file mode 100644 index 0000000000000..65adde3d7e9e9 --- /dev/null +++ b/obj/vehicle/ridden/wheelchair/motorized.html @@ -0,0 +1 @@ +/obj/vehicle/ridden/wheelchair/motorized - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

motorized

Vars

component_partsstock parts for this chair
energy_usageHow much energy we use
panel_openwhether the panel is open so a user can take out the cell
power_cellpower cell we draw power from
power_efficiencySelf explanatory, ratio of how much power we use
required_partsParts used in building the wheelchair
speedHow "fast" the wheelchair goes only affects ramming

Var Details

component_parts

stock parts for this chair

energy_usage

How much energy we use

panel_open

whether the panel is open so a user can take out the cell

power_cell

power cell we draw power from

power_efficiency

Self explanatory, ratio of how much power we use

required_parts

Parts used in building the wheelchair

speed

How "fast" the wheelchair goes only affects ramming

\ No newline at end of file diff --git a/obj/vehicle/sealed.html b/obj/vehicle/sealed.html new file mode 100644 index 0000000000000..635b0e89dffe3 --- /dev/null +++ b/obj/vehicle/sealed.html @@ -0,0 +1,16 @@ +/obj/vehicle/sealed - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

sealed

Vars

access_provider_flagsDetermines which occupants provide access when bumping into doors
combat_indicator_vehicleIs combat indicator on for this vehicle? Boolean.
vehicle_next_combat_popupWhen is the next time this vehicle will be able to use flick_emote and put the fluff text in chat?

Procs

disable_ciCalled whenever a mob exits a vehicle/sealed, after everything else.
enter_checksExtra checks to perform during the do_after to enter the vehicle
get_enter_delayreturns enter do_after delay for the given mob in ticks
handle_ci_migrationCalled whenever a mob enters a vehicle/sealed, after everything else.
mob_toggled_ciCalled whenever a mob inside a vehicle/sealed/ toggles CI status.
on_entered_supermatterWhen we touch a crystal, kill everything inside us
vehicle_moveSinced sealed vehicles (cars and mechs) don't have riding components, the actual movement is handled here from [/obj/vehicle/sealed/proc/relaymove]

Var Details

access_provider_flags

Determines which occupants provide access when bumping into doors

combat_indicator_vehicle

Is combat indicator on for this vehicle? Boolean.

vehicle_next_combat_popup

When is the next time this vehicle will be able to use flick_emote and put the fluff text in chat?

Proc Details

disable_ci

Called whenever a mob exits a vehicle/sealed, after everything else.

+

Disables the vehicle's CI if it was enabled, and if it was the only occupant (or there was noone else in the mech with CI enabled).

+

Arguments:

+
    +
  • user -- mob/living, the mob that is exiting the vehicle.
  • +

enter_checks

Extra checks to perform during the do_after to enter the vehicle

get_enter_delay

returns enter do_after delay for the given mob in ticks

handle_ci_migration

Called whenever a mob enters a vehicle/sealed, after everything else.

+

Sets the vehicle's CI status to that of the mob if the mob is a driver and there are no other drivers, or if the mob is a passenger and there are no drivers.

+

Arguments:

+
    +
  • user -- mob/living, the mob that is entering the vehicle.
  • +

mob_toggled_ci

Called whenever a mob inside a vehicle/sealed/ toggles CI status.

+

Tied to the COMSIG_MOB_CI_TOGGLED signal, said signal is assigned when a mob enters a vehicle and unassigned when the mob exits, and is sent whenever set_combat_indicator is called.

+

Arguments:

+
    +
  • source -- The mob in question that toggled CI status.
  • +

on_entered_supermatter

When we touch a crystal, kill everything inside us

vehicle_move

Sinced sealed vehicles (cars and mechs) don't have riding components, the actual movement is handled here from [/obj/vehicle/sealed/proc/relaymove]

\ No newline at end of file diff --git a/obj/vehicle/sealed/car.html b/obj/vehicle/sealed/car.html new file mode 100644 index 0000000000000..5b5ff9d16444c --- /dev/null +++ b/obj/vehicle/sealed/car.html @@ -0,0 +1 @@ +/obj/vehicle/sealed/car - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

car

Vars

car_traitsBitflags for special behavior such as kidnapping
engine_soundSound file(s) to play when we drive around
engine_sound_lengthSet this to the length of the engine sound.
enginesound_cooldownHow long it takes to rev (vrrm vrrm!)
escape_timeTime it takes to break out of the car.
vehicle_move_delayHow long it takes to move, cars don't use the riding component similar to mechs so we handle it ourselves

Procs

is_car_stationaryCallback proc to check for
mob_forced_enterProc called when someone is forcefully stuffedd into a car
mob_try_forced_enterattempts to force a mob into the car

Var Details

car_traits

Bitflags for special behavior such as kidnapping

engine_sound

Sound file(s) to play when we drive around

engine_sound_length

Set this to the length of the engine sound.

enginesound_cooldown

How long it takes to rev (vrrm vrrm!)

escape_time

Time it takes to break out of the car.

vehicle_move_delay

How long it takes to move, cars don't use the riding component similar to mechs so we handle it ourselves

Proc Details

is_car_stationary

Callback proc to check for

mob_forced_enter

Proc called when someone is forcefully stuffedd into a car

mob_try_forced_enter

attempts to force a mob into the car

\ No newline at end of file diff --git a/obj/vehicle/sealed/car/clowncar.html b/obj/vehicle/sealed/car/clowncar.html new file mode 100644 index 0000000000000..4763f907a3d4f --- /dev/null +++ b/obj/vehicle/sealed/car/clowncar.html @@ -0,0 +1,13 @@ +/obj/vehicle/sealed/car/clowncar - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

clowncar

Vars

cannonmodeCurrent status of the cannon, alternates between CLOWN_CANNON_INACTIVE, CLOWN_CANNON_BUSY and CLOWN_CANNON_READY
dice_cooldown_timeCooldown time inbetween [/obj/vehicle/sealed/car/clowncar/proc/roll_the_dice()] usages
enforce_clown_roleDoes the driver require the clown role to drive it
headlight_colorslist of headlight colors we use to pick through when we have party mode due to emag
thankscountHow many times kidnappers in the clown car said thanks

Procs

activate_cannonFinalizes canon activation
cover_in_oilDeploys oil when the clowncar moves in oil deploy mode
deactivate_cannonFinalizes canon deactivation
fire_cannon_atFires the cannon where the user clicks
increment_thanks_counterIncrements the thanks counter every time someone thats been kidnapped thanks the driver
reset_iconresets the icon and iconstate of the clowncar after it was set to singulo states
roll_the_dicePlays a random funky effect +Only available while car is emagged +Possible effects:
stop_dropping_oilStops dropping oil after the time has run up
toggle_cannonToggles the on and off state of the clown cannon that shoots random kidnapped people

Var Details

cannonmode

Current status of the cannon, alternates between CLOWN_CANNON_INACTIVE, CLOWN_CANNON_BUSY and CLOWN_CANNON_READY

dice_cooldown_time

Cooldown time inbetween [/obj/vehicle/sealed/car/clowncar/proc/roll_the_dice()] usages

enforce_clown_role

Does the driver require the clown role to drive it

headlight_colors

list of headlight colors we use to pick through when we have party mode due to emag

thankscount

How many times kidnappers in the clown car said thanks

Proc Details

activate_cannon

Finalizes canon activation

cover_in_oil

Deploys oil when the clowncar moves in oil deploy mode

deactivate_cannon

Finalizes canon deactivation

fire_cannon_at

Fires the cannon where the user clicks

increment_thanks_counter

Increments the thanks counter every time someone thats been kidnapped thanks the driver

reset_icon

resets the icon and iconstate of the clowncar after it was set to singulo states

roll_the_dice

Plays a random funky effect +Only available while car is emagged +Possible effects:

+
    +
  • Spawn bananapeel
  • +
  • Spawn random reagent foam
  • +
  • Make the clown car look like a singulo temporarily
  • +
  • Spawn Laughing chem gas
  • +
  • Drop oil
  • +
  • Fart and make everyone nearby laugh
  • +

stop_dropping_oil

Stops dropping oil after the time has run up

toggle_cannon

Toggles the on and off state of the clown cannon that shoots random kidnapped people

\ No newline at end of file diff --git a/obj/vehicle/sealed/car/speedwagon.html b/obj/vehicle/sealed/car/speedwagon.html new file mode 100644 index 0000000000000..0ff0bff159d79 --- /dev/null +++ b/obj/vehicle/sealed/car/speedwagon.html @@ -0,0 +1 @@ +/obj/vehicle/sealed/car/speedwagon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

speedwagon

Big 3x3 car only available to admins which can run people over

Vars

crash_allDetermines whether we throw all things away when ramming them or just mobs, varedit only

Var Details

crash_all

Determines whether we throw all things away when ramming them or just mobs, varedit only

\ No newline at end of file diff --git a/obj/vehicle/sealed/car/vim.html b/obj/vehicle/sealed/car/vim.html new file mode 100644 index 0000000000000..198ea6d124953 --- /dev/null +++ b/obj/vehicle/sealed/car/vim.html @@ -0,0 +1,3 @@ +/obj/vehicle/sealed/car/vim - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

vim

VIM!!!!!!!

+

It's a teenie minature mecha... for critters! +For the critters that cannot be understood, there is a sound creator in the mecha. It also has headlights.

Vars

maximum_mob_sizeMaximum size of a mob trying to enter the mech

Var Details

maximum_mob_size

Maximum size of a mob trying to enter the mech

\ No newline at end of file diff --git a/obj/vehicle/sealed/mecha.html b/obj/vehicle/sealed/mecha.html new file mode 100644 index 0000000000000..4dea959560a12 --- /dev/null +++ b/obj/vehicle/sealed/mecha.html @@ -0,0 +1,28 @@ +/obj/vehicle/sealed/mecha - /tg/ Station 13
/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 receive 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 +Cooldown for melee is on mech_melee_attack also because exploits

Vars

accessesA list of all granted accesses
active_thrusters/Action vars +Ref to any active thrusters we might have
allow_diagonal_movementWhether this mech is allowed to move diagonally
attack_verbsMelee attack verb
brute_attack_soundSounds for types of melee attack
bumpsmashWhether or not the mech destroys walls by running into it.
cabin_airInternal air mix datum
cabin_sealed////////ATMOS +Whether the cabin exchanges gases with the environment
cabin_volumeVolume of the cabin
can_use_overclockWhether it is possible to toggle overclocking from the cabin
capacitorKeeps track of the mech's capacitor
cellKeeps track of the mech's cell
chassis_cameraCamera installed into the mech
completely_disabledJust stop the mech from doing anything
component_damage_thresholddamage threshold above which we take component damage
defense_modeBool for energy shield on/off
destroy_wall_soundSound on wall destroying
destruction_sleep_durationTime you get slept for if you get forcible ejected by the mech exploding
dna_lockStores the DNA enzymes of a carbon so tht only they can access the mech
equip_by_categoryassoc list: key-typepathlist before init, key-equipmentlist after
equipment_disabledif we cant use our equipment(such as due to EMP)
exit_delayTIme taken to leave the mech
facing_modifiersModifiers for directional damage reduction
flat_equipmentflat equipment for iteration
inertia_force_weightSignificantly heavier than humans
internal_damageBitflags for internal damage
internal_damage_probability% chance for internal damage to occur
internal_damage_thresholddamage amount above which we can take internal damages
is_currently_ejectingCurrently ejecting, and unable to do things
lavaland_onlyBool for whether this mech can only be used on lavaland
light_power_drainPower we use to have the lights on
lights_powerHow powerful our lights are
max_equip_by_categoryassoc list: max equips for modules key-count
mech_typesingle flag for the type of this mech, determines what kind of equipment can be attached to it
mecha_flagsContains flags for the mecha
melee_cooldownCooldown duration between melee punches
melee_energy_drainHow much energy we drain each time we mechpunch someone
one_accessIf the mech should require ALL or only ONE of the listed accesses
ore_boxHandles an internal ore box for mining mechs
overclock_coeffSpeed and energy usage modifier for leg overload
overclock_modeBool for leg overload on/off
overclock_safetyWhether the overclocking turns off automatically when overheated
overclock_safety_availableWhether the mech has an option to enable safe overclocking
overclock_tempCurrent leg actuator temperature. Increases when overloaded, decreases when not.
overclock_temp_dangerTemperature threshold at which actuators may start causing internal damage
phase_stateicon_state for flick() when phazing
phasingcheck for phasing, if it is set to text (to describe how it is phasing: "flying", "phasing") it will let the mech walk through walls.
phasing_energy_drainPower we use every time we phaze through something
pivot_stepWhether this mech moves into a direct as soon as it goes to move. Basically, turn and step in the same key press.
possible_int_damagelist of possibly dealt internal damage for this mech type
safety_sound_customDon't play standard sound when set safety if TRUE.
scanmodKeeps track of the mech's scanning module
servoKeeps track of the mech's servo motor
silicon_icon_stateIn case theres a different iconstate for AI/MMI pilot(currently only used for ripley)
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 due to no gravity
stepsoundSound played when the mech moves
strafeWether we are strafing
trackersList of installed remote tracking beacons, including AI control beacons
turnsoundSound played when the mech walks
ui_selected_module_indexModule selected by default when mech UI is opened
ui_themeTheme of the mech TGUI
ui_viewref to screen object that displays in the middle of the UI
updatingPortable camera camerachunk update
weapons_safetySafety for weapons. Won't fire if enabled, and toggled by middle click.
wreckageTypepath for the wreckage it spawns when destroyed

Procs

ai_enter_mechHack and From Card interactions share some code, so leave that here for both to use.
collect_oreCollects ore when we move, if there is an orebox and it is functional
diag_hud_set_cameraShows inbuilt camera on the mech; if the camera's view range was affected by an EMP, shows a red blip while it's affected
diag_hud_set_mechtrackingShows tracking beacons on the mech
display_speech_bubbleDisplays a special speech bubble when someone inside the mecha speaks
do_camera_updateThe actual update - also passes our unique update buffer. This makes our static update faster than stationary cameras, +helping us to avoid running out of the camera's FoV. An EMPd mecha with a lowered view_range on its camera can still +sometimes run out into static before updating, however.
generate_action_typeMECHA ACTIONS
get_armour_facingreturns a number for the damage multiplier for this relative angle/dir
get_int_repair_fluff_endgets the successful finish balloon alert flufftext
get_int_repair_fluff_failgets the on-fail balloon alert flufftext
get_int_repair_fluff_startgets the starting balloon alert flufftext
get_internal_tankLocate an internal tack in the utility modules
has_chargePower stuff
max_ammo// Ammo stuff /////
mmi_move_insideproc called when a new mmi mob tries to enter this mech
mmi_moved_insideproc called when a new mmi mob enters this mech
moved_insideproc called when a new non-mmi mob enters this mech
on_click_altDriver alt clicks anything while in mech
on_light_eaterSpecial light eater handling
on_middlemouseclickmiddle mouse click signal wrapper for AI users
on_mouseclickCalled when a driver clicks somewhere. Handles everything like equipment, punches, etc.
on_moveCalled when the mech moves
on_turnCalled when the driver turns with the movement lock key
play_stepsoundPlays the mech step sound effect. Split from movement procs so that other mechs (HONK) can override this one specific part.
populate_partsAdd parts on mech spawning. Skipped in manual construction.
remove_airAtmospheric stuff
return_pressurefetches pressure of the gas mixture we are using
return_temperaturefetches temp of the gas mixture we are using
setDirSets the direction of the mecha and all of its occcupents, required for FOV. Alternatively one could make a recursive contents registration and register topmost direction changes in the fov component
set_cabin_sealmakes cabin unsealed, dumping cabin air outside or airtight filling the cabin with external air mix
set_mouse_pointerUpdates the pilot's mouse cursor override.
set_safetyToggles Weapons Safety
shockElectrocute user from power celll
toggle_lightsToggle lights on/off
toggle_overclockToggle mech overclock with a button or by hacking
try_damage_componenttries to damage mech equipment depending on damage and where is being targeted
try_deal_internal_damagetries to deal internal damaget depending on the damage amount
try_insert_partTry to insert a stock part into the mech
try_repair_int_damagetries to repair any internal damage and plays fluff for it
update_accessApply corresponding accesses
update_energy_drainUpdate the energy drain according to parts and status
upgrade_rcdUpgrades any attached RCD equipment.

Var Details

accesses

A list of all granted accesses

active_thrusters

/Action vars +Ref to any active thrusters we might have

allow_diagonal_movement

Whether this mech is allowed to move diagonally

attack_verbs

Melee attack verb

brute_attack_sound

Sounds for types of melee attack

bumpsmash

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

cabin_air

Internal air mix datum

cabin_sealed

////////ATMOS +Whether the cabin exchanges gases with the environment

cabin_volume

Volume of the cabin

can_use_overclock

Whether it is possible to toggle overclocking from the cabin

capacitor

Keeps track of the mech's capacitor

cell

Keeps track of the mech's cell

chassis_camera

Camera installed into the mech

completely_disabled

Just stop the mech from doing anything

component_damage_threshold

damage threshold above which we take component damage

defense_mode

Bool for energy shield on/off

destroy_wall_sound

Sound on wall destroying

destruction_sleep_duration

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

dna_lock

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

equip_by_category

assoc list: key-typepathlist before init, key-equipmentlist after

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 damage reduction

flat_equipment

flat equipment for iteration

inertia_force_weight

Significantly heavier than humans

internal_damage

Bitflags for internal damage

internal_damage_probability

% chance for internal damage to occur

internal_damage_threshold

damage amount above which we can take internal damages

is_currently_ejecting

Currently ejecting, and unable to do things

lavaland_only

Bool for whether this mech can only be used on lavaland

light_power_drain

Power we use to have the lights on

lights_power

How powerful our lights are

max_equip_by_category

assoc list: max equips for modules key-count

mech_type

single flag for the type of this mech, determines what kind of equipment can be attached to it

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

one_access

If the mech should require ALL or only ONE of the listed accesses

ore_box

Handles an internal ore box for mining mechs

overclock_coeff

Speed and energy usage modifier for leg overload

overclock_mode

Bool for leg overload on/off

overclock_safety

Whether the overclocking turns off automatically when overheated

overclock_safety_available

Whether the mech has an option to enable safe overclocking

overclock_temp

Current leg actuator temperature. Increases when overloaded, decreases when not.

overclock_temp_danger

Temperature threshold at which actuators may start causing internal damage

phase_state

icon_state for flick() when phazing

phasing

check for phasing, if it is set to text (to describe how it is phasing: "flying", "phasing") it will let the mech walk through walls.

phasing_energy_drain

Power we use every time we phaze through something

pivot_step

Whether this mech moves into a direct as soon as it goes to move. Basically, turn and step in the same key press.

possible_int_damage

list of possibly dealt internal damage for this mech type

safety_sound_custom

Don't play standard sound when set safety if TRUE.

scanmod

Keeps track of the mech's scanning module

servo

Keeps track of the mech's servo motor

silicon_icon_state

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

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 due to no gravity

stepsound

Sound played when the mech moves

strafe

Wether we are strafing

trackers

List of installed remote tracking beacons, including AI control beacons

turnsound

Sound played when the mech walks

ui_selected_module_index

Module selected by default when mech UI is opened

ui_theme

Theme of the mech TGUI

ui_view

ref to screen object that displays in the middle of the UI

updating

Portable camera camerachunk update

weapons_safety

Safety for weapons. Won't fire if enabled, and toggled by middle click.

wreckage

Typepath for the wreckage it spawns when destroyed

Proc Details

ai_enter_mech

Hack and From Card interactions share some code, so leave that here for both to use.

collect_ore

Collects ore when we move, if there is an orebox and it is functional

diag_hud_set_camera

Shows inbuilt camera on the mech; if the camera's view range was affected by an EMP, shows a red blip while it's affected

diag_hud_set_mechtracking

Shows tracking beacons on the mech

display_speech_bubble

Displays a special speech bubble when someone inside the mecha speaks

do_camera_update

The actual update - also passes our unique update buffer. This makes our static update faster than stationary cameras, +helping us to avoid running out of the camera's FoV. An EMPd mecha with a lowered view_range on its camera can still +sometimes run out into static before updating, however.

generate_action_type

MECHA ACTIONS

get_armour_facing

returns a number for the damage multiplier for this relative angle/dir

get_int_repair_fluff_end

gets the successful finish balloon alert flufftext

get_int_repair_fluff_fail

gets the on-fail balloon alert flufftext

get_int_repair_fluff_start

gets the starting balloon alert flufftext

get_internal_tank

Locate an internal tack in the utility modules

has_charge

Power stuff

max_ammo

// Ammo stuff /////

+

Max the ammo stored in all ballistic weapons for this mech

mmi_move_inside

proc called when a new mmi mob tries to enter this mech

mmi_moved_inside

proc called when a new mmi mob enters this mech

moved_inside

proc called when a new non-mmi mob enters this mech

on_click_alt

Driver alt clicks anything while in mech

on_light_eater

Special light eater handling

on_middlemouseclick

middle mouse click signal wrapper for AI users

on_mouseclick

Called when a driver clicks somewhere. Handles everything like equipment, punches, etc.

on_move

Called when the mech moves

on_turn

Called when the driver turns with the movement lock key

play_stepsound

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

populate_parts

Add parts on mech spawning. Skipped in manual construction.

remove_air

Atmospheric stuff

return_pressure

fetches pressure of the gas mixture we are using

return_temperature

fetches temp of the gas mixture we are using

setDir

Sets the direction of the mecha and all of its occcupents, required for FOV. Alternatively one could make a recursive contents registration and register topmost direction changes in the fov component

set_cabin_seal

makes cabin unsealed, dumping cabin air outside or airtight filling the cabin with external air mix

set_mouse_pointer

Updates the pilot's mouse cursor override.

+

If the mech's weapons safety is enabled, there should be no override, and the user gets their regular mouse cursor. If safety +is off but the mech's equipment is disabled (such as by EMP), the cursor should be the red disabled version. Otherwise, if +safety is off and the equipment is functional, the cursor should be the regular green cursor. This proc sets the cursor. +correct and then updates it for each mob in the occupants list.

set_safety

Toggles Weapons Safety

+

Handles enabling or disabling the safety function.

shock

Electrocute user from power celll

toggle_lights

Toggle lights on/off

toggle_overclock

Toggle mech overclock with a button or by hacking

try_damage_component

tries to damage mech equipment depending on damage and where is being targeted

try_deal_internal_damage

tries to deal internal damaget depending on the damage amount

try_insert_part

Try to insert a stock part into the mech

try_repair_int_damage

tries to repair any internal damage and plays fluff for it

update_access

Apply corresponding accesses

update_energy_drain

Update the energy drain according to parts and status

upgrade_rcd

Upgrades any attached RCD equipment.

\ No newline at end of file diff --git a/obj/vehicle/sealed/mecha/durand.html b/obj/vehicle/sealed/mecha/durand.html new file mode 100644 index 0000000000000..c5fab8622d6f7 --- /dev/null +++ b/obj/vehicle/sealed/mecha/durand.html @@ -0,0 +1,3 @@ +/obj/vehicle/sealed/mecha/durand - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

durand

Procs

defense_check*Checks if defense mode is enabled, and if the attacker is standing in an area covered by the shield. +Expects a turf. Returns true if the attack should be blocked, false if not.
relayRelays the signal from the action button to the shield, and creates a new shield if the old one is MIA.

Proc Details

defense_check

*Checks if defense mode is enabled, and if the attacker is standing in an area covered by the shield. +Expects a turf. Returns true if the attack should be blocked, false if not.

relay

Relays the signal from the action button to the shield, and creates a new shield if the old one is MIA.

\ No newline at end of file diff --git a/obj/vehicle/sealed/mecha/justice.html b/obj/vehicle/sealed/mecha/justice.html new file mode 100644 index 0000000000000..26a84b70d16bd --- /dev/null +++ b/obj/vehicle/sealed/mecha/justice.html @@ -0,0 +1,8 @@ +/obj/vehicle/sealed/mecha/justice - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

justice

Procs

finish_him
justice_fatalitySays 1 of 3 epic phrases before attacking and make a finishing blow to targets in stun or crit after 1 SECOND.

Proc Details

finish_him

finish_him

+

Target's head is cut off (if it has one) +Attack from invisibility and charged attack have higher priority. +Arguments:

+
    +
  • finisher - Mech pilot who makes an attack.
  • +
  • him - Target at which the mech makes an attack.
  • +

justice_fatality

Says 1 of 3 epic phrases before attacking and make a finishing blow to targets in stun or crit after 1 SECOND.

\ No newline at end of file diff --git a/obj/vehicle/sealed/mecha/ripley.html b/obj/vehicle/sealed/mecha/ripley.html new file mode 100644 index 0000000000000..6432c62e6075d --- /dev/null +++ b/obj/vehicle/sealed/mecha/ripley.html @@ -0,0 +1,2 @@ +/obj/vehicle/sealed/mecha/ripley - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

ripley

Vars

cargo_holdReference to the Cargo Hold equipment.
fast_pressure_step_inHow fast the mech is in low pressure
hidesAmount of Goliath hides attached to the mech
slow_pressure_step_inHow fast the mech is in normal pressure
stepsoundCustom Ripley step and turning sounds (from TGMC)

Procs

update_pressureMakes the mecha go faster and halves the mecha drill cooldown if in Lavaland pressure.

Var Details

cargo_hold

Reference to the Cargo Hold equipment.

fast_pressure_step_in

How fast the mech is in low pressure

hides

Amount of Goliath hides attached to the mech

slow_pressure_step_in

How fast the mech is in normal pressure

stepsound

Custom Ripley step and turning sounds (from TGMC)

Proc Details

update_pressure

Makes the mecha go faster and halves the mecha drill cooldown if in Lavaland pressure.

+

Checks for Lavaland pressure, if that works out the mech's speed is equal to fast_pressure_step_in and the cooldown for the mecha drill is halved. If not it uses slow_pressure_step_in and drill cooldown is normal.

\ No newline at end of file diff --git a/obj/vehicle/sealed/mecha/ripley/paddy.html b/obj/vehicle/sealed/mecha/ripley/paddy.html new file mode 100644 index 0000000000000..8641e5d7f7ce4 --- /dev/null +++ b/obj/vehicle/sealed/mecha/ripley/paddy.html @@ -0,0 +1 @@ +/obj/vehicle/sealed/mecha/ripley/paddy - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

paddy

Vars

sirenSiren Lights/Sound State
sirenlightsOverlay for Siren Lights
weewooloopLooping sound datum for the Siren audio

Var Details

siren

Siren Lights/Sound State

sirenlights

Overlay for Siren Lights

weewooloop

Looping sound datum for the Siren audio

\ No newline at end of file diff --git a/obj/vehicle/sealed/mecha/savannah_ivanov.html b/obj/vehicle/sealed/mecha/savannah_ivanov.html new file mode 100644 index 0000000000000..851864ff8d932 --- /dev/null +++ b/obj/vehicle/sealed/mecha/savannah_ivanov.html @@ -0,0 +1,3 @@ +/obj/vehicle/sealed/mecha/savannah_ivanov - /tg/ Station 13
/tg/ Station 13 - Modules - Types

savannah_ivanov

Savannah-Ivanov!

+

A two person mecha that delegates moving to the driver and shooting to the pilot. +...Hilarious, right?

\ No newline at end of file diff --git a/obj/vore_belly.html b/obj/vore_belly.html new file mode 100644 index 0000000000000..b9525771335b6 --- /dev/null +++ b/obj/vore_belly.html @@ -0,0 +1,5 @@ +/obj/vore_belly - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

vore_belly

Procs

EnteredHandles prey entering a belly, and starts deep_search_prey
ExitedHandles prey leaving a belly
deep_search_preySearch through prey's recursive contents to prevent smuggling any GLOB.vore_blacklist_types items around
deserializeDeserializes this belly from savefile data
deserialize_vrdbSpecial handler that tries to deserialize as much of a VRDB save as it can
format_messageFormats a vore message
get_insert_soundSounds
handle_internal_lifeformReturns an immutable mixture, GLOB.belly_air, which is always safe to breath
play_vore_sound_preypredPlays sound just to pred and prey in this stomach
processOn process, bellies ask their digestion mode (if there is one) to process them
relaymoveDoes not call parent, which hides the "you can't move while buckled" message +Also makes squelchy sounds when prey tries to squirm.
releaseDo NOT do cleanup in here, clean up in /Exited +This is just a helper proc for showing a message
remove_airDisables remove_air
return_airDisables return_air
serializeSerializes this belly to store in savefile data.
ui_dataCalled from /datum/component/vore/ui_data to display belly settings
ui_modify_varCalled from /datum/component/vore/ui_act to update belly settings

Proc Details

Entered

Handles prey entering a belly, and starts deep_search_prey

Exited

Handles prey leaving a belly

deep_search_prey

Search through prey's recursive contents to prevent smuggling any GLOB.vore_blacklist_types items around

deserialize

Deserializes this belly from savefile data

deserialize_vrdb

Special handler that tries to deserialize as much of a VRDB save as it can

format_message

Formats a vore message

get_insert_sound

Sounds

handle_internal_lifeform

Returns an immutable mixture, GLOB.belly_air, which is always safe to breath

play_vore_sound_preypred

Plays sound just to pred and prey in this stomach

process

On process, bellies ask their digestion mode (if there is one) to process them

relaymove

Does not call parent, which hides the "you can't move while buckled" message +Also makes squelchy sounds when prey tries to squirm.

release

Do NOT do cleanup in here, clean up in /Exited +This is just a helper proc for showing a message

remove_air

Disables remove_air

return_air

Disables return_air

serialize

Serializes this belly to store in savefile data.

ui_data

Called from /datum/component/vore/ui_data to display belly settings

ui_modify_var

Called from /datum/component/vore/ui_act to update belly settings

\ No newline at end of file diff --git a/particles.html b/particles.html new file mode 100644 index 0000000000000..cd0af89a957c9 --- /dev/null +++ b/particles.html @@ -0,0 +1 @@ +/particles - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

particles

Procs

return_ui_representationreturns ui_data values for the particle editor

Proc Details

return_ui_representation

returns ui_data values for the particle editor

\ No newline at end of file diff --git a/procpath.html b/procpath.html new file mode 100644 index 0000000000000..f646cbe34536d --- /dev/null +++ b/procpath.html @@ -0,0 +1,10 @@ +/procpath - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

procpath

Represents a proc or verb path.

+

Despite having no DM-defined static type, proc paths have some variables, +listed below. These are not modifiable, but for a given procpath P, +new P(null, "Name", "Desc") can be used to create a new procpath with the +same code but new name and desc values. The other variables cannot be +changed in this way.

+

This type exists only to act as an annotation, providing reasonable static +typing for procpaths. Previously, types like /atom/verb were used, with +the name and desc vars of /atom thus being accessible. Proc and verb +paths will fail istype and ispath checks against /procpath.

Vars

categoryThe category or tab the verb will appear in.
descThe verb's help text or description.
hiddenWhether or not the verb appears in statpanel and commandbar when you press space
invisibilityOnly clients/mobs with see_invisibility higher can use the verb.
nameA text string of the verb's name.

Var Details

category

The category or tab the verb will appear in.

desc

The verb's help text or description.

hidden

Whether or not the verb appears in statpanel and commandbar when you press space

invisibility

Only clients/mobs with see_invisibility higher can use the verb.

name

A text string of the verb's name.

\ No newline at end of file diff --git a/regex/format_component.html b/regex/format_component.html new file mode 100644 index 0000000000000..d96550b63d856 --- /dev/null +++ b/regex/format_component.html @@ -0,0 +1,7 @@ +/regex/format_component - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

Subtype of regex that holds context to /obj/item/circuit_component/format

Procs

process_format_component_paramReplace %n with the actual param, as a string. +Arguments:

Proc Details

process_format_component_param

Replace %n with the actual param, as a string. +Arguments:

+
    +
  • match - The full %1 regex match. Unused.
  • +
  • index_string - Just the "1" of the %1 format, actually used.
  • +
\ No newline at end of file diff --git a/turf.html b/turf.html new file mode 100644 index 0000000000000..48fe1bc898842 --- /dev/null +++ b/turf.html @@ -0,0 +1,114 @@ +/turf - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

turf

Any floor or wall. What makes up the station and the rest of the map.

Vars

archived_cycleused to determine whether we should archive
assigned_oranges_earwhat /mob/oranges_ear instance is already assigned to us as there should only ever be one. +used for guaranteeing there is only one oranges_ear per turf when assigned, speeds up view() iteration
atmos_adjacent_turfslist of turfs adjacent to us that air can flow onto
atmos_supeconductivitybitfield of dirs in which we are superconducitng
directional_opacityWhich directions does this turf block the vision of, taking into account both the turf's opacity and the movable opacity_sources.
dynamic_lumcountLumcount added by sources other than lighting datum objects, such as the overlay lighting component.
fixed_underlayIcon-smoothing variable to map a diagonal wall corner with a fixed underlay.
force_no_gravitywhether or not this turf forces movables on it to have no gravity (unless they themselves have forced gravity)
heat_capacityAmount of heat necessary to activate some atmos processes (there is a weird usage of this var because is compared directly to the temperature instead of heat energy)
holodeck_compatiblethe holodeck can load onto this turf if TRUE
in_contents_ofFor the area_contents list unit test +Allows us to know our area without needing to preassign it +Sorry for the mess
inherent_explosive_resistanceHow much explosive resistance this turf is providing to itself +Defaults to -1, interpreted as initial(explosive_resistance) +This is an optimization to prevent turfs from needing to set these on init +This would either be expensive, or impossible to manage. Let's just avoid it yes? +Never directly access this, use get_explosive_block() instead
initial_gas_mixused for mapping and for breathing while in walls (because that's a thing that needs to be accounted for...) +string parsed by /datum/gas/proc/copy_from_turf +approximation of MOLES_O2STANDARD and MOLES_N2STANDARD pending byond allowing constant expressions to be embedded in constant strings +If someone will place 0 of some gas there, SHIT WILL BREAK. Do not do that.
lattice_underneathIf there is a lattice underneat this turf. Used for the attempt_lattice_replacement proc to determine if it should place lattice.
lighting_corner_NELighting Corner datums.
lighting_objectOur lighting object.
max_fire_temperature_sustainedThe max temperature of the fire which it was subjected to, determines the melting point of turf
opacity_sourcesLazylist of movable atoms providing opacity sources.
overfloor_placedIf there's a tile over a basic floor that can be ripped out
pathing_pass_methodHow pathing algorithm will check if this turf is passable by itself (not including content checks). By default it's just density check. +WARNING: Currently to use a density shortcircuiting this does not support dense turfs with special allow through function
rcd_memoryIf this turf contained an RCD'able object (or IS one, for walls) +but is now destroyed, this will preserve the value. +See _DEFINES/construction.dm for RCD_MEMORY*.
rust_resistanceThis turf's resistance to getting rusted
space_litBool, whether this turf will always be illuminated no matter what area it is in +Makes it look blue, be warned
temperature_archivedArchived version of the temperature on a turf
thermal_conductivitiesAll currently stored conductivities changes
thermal_conductivityused for temperature calculations in superconduction
to_be_destroyedUsed for fire, if a melting temperature was reached, it will be destroyed
turf_flagsTurf bitflags, see code/__DEFINES/flags.dm
underfloor_accessibilityHow accessible underfloor pieces such as wires, pipes, etc are on this turf. Can be HIDDEN, VISIBLE, or INTERACTABLE.

Procs

Initalize_AtmosInitializes our adjacent turfs. If you want to avoid this, do not override it, instead set init_air to FALSE
InitializeTurf Initialize
LinkBlockedWithAccessFor seeing if we can actually move between 2 given turfs while accounting for our access and the caller's pass_flags
ScrapeAwayTake off the top layer turf and replace it with the next baseturf down
_clear_signal_refsWARNING WARNING +Turfs DO NOT lose their signals when they get replaced, REMEMBER THIS +It's possible because turfs are fucked, and if you have one in a list and it's replaced with another one, the list ref points to the new turf +We do it because moving signals over was needlessly expensive, and bloated a very commonly used bit of code
add_opacity_sourceProc to add movable sources of opacity on the turf and let it handle lighting code.
air_update_turfA helper proc for dealing with atmos changes
attempt_lattice_replacementAttempts to replace a tile with lattice. Amount is the amount of tiles to scrape away.
baseturf_at_depthReturns the baseturf at the given depth. +For example, baseturf_at_depth(1) will give the baseturf that would show up when scraping once.
can_cross_safelyReturns whether it is safe for an atom to move across this turf
change_areaCall to move a turf from its current area to a new one
conductivity_directionsSUPERCONDUCTIVITY +ALLLLLLLLLLLLLLLLLLLLRIGHT HERE WE GOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
consider_superconductivityShould we attempt to superconduct?
count_baseturfsReturns the total number of baseturfs
create_gas_mixture//////////////GAS MIXTURE PROCS/////////////////// +Copies all gas info from the turf into a new gas_mixture, along with our temperature +Returns the created gas_mixture
depth_to_find_baseturfTries to find the given type in baseturfs. +If found, returns how deep it is for use in other baseturf procs, or null if it cannot be found. +For example, this number can be passed into ScrapeAway to scrape everything until that point.
expose_reagentsHandles exposing a turf to reagents.
fromShuttleMoveBase procs
get_atmos_adjacent_turfsreturns a list of adjacent turfs that can share air with this one. +alldir includes adjacent diagonal tiles that can share +air with both of the related adjacent cardinal tiles
get_explosive_blockWrapper around inherent_explosive_resistance +We assume this proc is cold, so we can move the "what is our block" into it
init_immediate_calculate_adjacent_turfsThis proc is a more deeply optimized version of immediate_calculate_adjacent_turfs +It contains dumbshit, and also stuff I just can't do at runtime +If you're not editing behavior, just read that proc. It's less bad
insert_baseturfInserts a baseturf at the given level. +"Level" here doesn't mean depth. +For example, insert_baseturf(2, /turf/open/floor/plating) will make it so +the 2nd to last turf in the list is plating. +This is different from depth, since depth is the level from the top.
is_blocked_turfCheck whether the specified turf is blocked by something dense inside it with respect to a specific atom.
is_blocked_turf_ignore_climbableChecks whether the specified turf is blocked by something dense inside it, but ignores anything with the climbable trait
liquids_changeCalled when liquids flow or otherwise update - intercept COMSIG_TURF_LIQUIDS_CHANGE to react.
load_on_topPlaces a turf on top - for map loading
neighbor_conduct_with_srcThese two procs are a bit of a web, I belive in you
on_change_areaAllows for reactions to an area change without inherently requiring change_area() be called (I hate maploading)
place_on_bottomPlaces the given turf on the bottom of the turf stack.
place_on_topPlaces a turf at the top of the stack
radiate_to_spessRadiate excess tile heat to space.
reachableAdjacentTurfsReturns adjacent turfs to this turf that are reachable, in all cardinal directions
recalculate_directional_opacityCalculate on which directions this turfs block view.
remove_baseturfs_from_typecacheRemoves all baseturfs that are found in the given typecache.
remove_opacity_sourceProc to remove movable sources of opacity on the turf and let it handle lighting code.
replace_baseturfReplaces all instances of needle_type in baseturfs with replacement_type
rust_heretic_actCheck if the heretic is strong enough to rust this turf, and if so, rusts the turf with an added visual effect.
rust_turfOverride this to change behaviour when being rusted by a heretic
spawn_unique_cleanableCreates a cleanable decal on a turf +Use this if your decal is one of one, and thus we should not spawn it if it's there already +Returns either the existing cleanable, the one we created, or null if we can't spawn on that turf
stack_ontop_of_baseturfPlaces a baseturf ontop of a searched for baseturf.
transfer_area_lightingTransfer the lighting of one area to another
update_adjacent_pollutantsAtmos adjacency has been updated on this turf, see if it affects any of our pollutants
zFallPrecipitates a movable (plus whatever buckled to it) to lower z levels if possible and then calls zImpact()
zImpactCalled each time the target falls down a z level possibly making their trajectory come to a halt. see __DEFINES/movement.dm.
zPassInIf we'd allow anything to travel into us
zPassOutIf we'd allow anything to travel out of us

Var Details

archived_cycle

used to determine whether we should archive

assigned_oranges_ear

what /mob/oranges_ear instance is already assigned to us as there should only ever be one. +used for guaranteeing there is only one oranges_ear per turf when assigned, speeds up view() iteration

atmos_adjacent_turfs

list of turfs adjacent to us that air can flow onto

atmos_supeconductivity

bitfield of dirs in which we are superconducitng

directional_opacity

Which directions does this turf block the vision of, taking into account both the turf's opacity and the movable opacity_sources.

dynamic_lumcount

Lumcount added by sources other than lighting datum objects, such as the overlay lighting component.

fixed_underlay

Icon-smoothing variable to map a diagonal wall corner with a fixed underlay.

force_no_gravity

whether or not this turf forces movables on it to have no gravity (unless they themselves have forced gravity)

heat_capacity

Amount of heat necessary to activate some atmos processes (there is a weird usage of this var because is compared directly to the temperature instead of heat energy)

holodeck_compatible

the holodeck can load onto this turf if TRUE

in_contents_of

For the area_contents list unit test +Allows us to know our area without needing to preassign it +Sorry for the mess

inherent_explosive_resistance

How much explosive resistance this turf is providing to itself +Defaults to -1, interpreted as initial(explosive_resistance) +This is an optimization to prevent turfs from needing to set these on init +This would either be expensive, or impossible to manage. Let's just avoid it yes? +Never directly access this, use get_explosive_block() instead

initial_gas_mix

used for mapping and for breathing while in walls (because that's a thing that needs to be accounted for...) +string parsed by /datum/gas/proc/copy_from_turf +approximation of MOLES_O2STANDARD and MOLES_N2STANDARD pending byond allowing constant expressions to be embedded in constant strings +If someone will place 0 of some gas there, SHIT WILL BREAK. Do not do that.

lattice_underneath

If there is a lattice underneat this turf. Used for the attempt_lattice_replacement proc to determine if it should place lattice.

lighting_corner_NE

Lighting Corner datums.

lighting_object

Our lighting object.

max_fire_temperature_sustained

The max temperature of the fire which it was subjected to, determines the melting point of turf

opacity_sources

Lazylist of movable atoms providing opacity sources.

overfloor_placed

If there's a tile over a basic floor that can be ripped out

pathing_pass_method

How pathing algorithm will check if this turf is passable by itself (not including content checks). By default it's just density check. +WARNING: Currently to use a density shortcircuiting this does not support dense turfs with special allow through function

rcd_memory

If this turf contained an RCD'able object (or IS one, for walls) +but is now destroyed, this will preserve the value. +See _DEFINES/construction.dm for RCD_MEMORY*.

rust_resistance

This turf's resistance to getting rusted

space_lit

Bool, whether this turf will always be illuminated no matter what area it is in +Makes it look blue, be warned

temperature_archived

Archived version of the temperature on a turf

thermal_conductivities

All currently stored conductivities changes

thermal_conductivity

used for temperature calculations in superconduction

to_be_destroyed

Used for fire, if a melting temperature was reached, it will be destroyed

turf_flags

Turf bitflags, see code/__DEFINES/flags.dm

underfloor_accessibility

How accessible underfloor pieces such as wires, pipes, etc are on this turf. Can be HIDDEN, VISIBLE, or INTERACTABLE.

Proc Details

Initalize_Atmos

Initializes our adjacent turfs. If you want to avoid this, do not override it, instead set init_air to FALSE

Initialize

Turf Initialize

+

Doesn't call parent, see /atom/proc/Initialize +Please note, space tiles do not run this code. +This is done because it's called so often that any extra code just slows things down too much +If you add something relevant here add it there too +/turf/open/space/Initialize

LinkBlockedWithAccess

For seeing if we can actually move between 2 given turfs while accounting for our access and the caller's pass_flags

+

Assumes destinantion turf is non-dense - check and shortcircuit in code invoking this proc to avoid overhead. +Makes some other assumptions, such as assuming that unless declared, non dense objects will not block movement. +It's fragile, but this is VERY much the most expensive part of pathing, so it'd better be fast

+

Arguments:

+
    +
  • destination_turf - Where are we going from where we are?
  • +
  • pass_info - Holds all the info about what this path attempt can go through
  • +

ScrapeAway

Take off the top layer turf and replace it with the next baseturf down

_clear_signal_refs

WARNING WARNING +Turfs DO NOT lose their signals when they get replaced, REMEMBER THIS +It's possible because turfs are fucked, and if you have one in a list and it's replaced with another one, the list ref points to the new turf +We do it because moving signals over was needlessly expensive, and bloated a very commonly used bit of code

add_opacity_source

Proc to add movable sources of opacity on the turf and let it handle lighting code.

air_update_turf

A helper proc for dealing with atmos changes

+

Ok so this thing is pretty much used as a catch all for all the situations someone might wanna change something +About a turfs atmos. It's real clunky, and someone needs to clean it up, but not today. +Arguments:

+
    +
  • update - Has the state of the structures in the world changed? If so, update our adjacent atmos turf list, if not, don't.
  • +
  • remove - Are you removing an active turf (Read wall), or adding one
  • +

attempt_lattice_replacement

Attempts to replace a tile with lattice. Amount is the amount of tiles to scrape away.

baseturf_at_depth

Returns the baseturf at the given depth. +For example, baseturf_at_depth(1) will give the baseturf that would show up when scraping once.

can_cross_safely

Returns whether it is safe for an atom to move across this turf

change_area

Call to move a turf from its current area to a new one

conductivity_directions

SUPERCONDUCTIVITY +ALLLLLLLLLLLLLLLLLLLLRIGHT HERE WE GOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

+

Read the code for more details, but first, a brief concept discussion/area

+

Our goal here is to "model" heat moving through solid objects, so walls, windows, and sometimes doors. +We do this by heating up the floor itself with the heat of the gasmix ontop of it, this is what the coeffs are for here, they slow that movement +Then we go through the process below.

+

If an active turf is fitting, we add it to processing, conduct with any covered tiles, (read windows and sometimes walls) +Then we space some of our heat, and think about if we should stop conducting.

consider_superconductivity

Should we attempt to superconduct?

count_baseturfs

Returns the total number of baseturfs

create_gas_mixture

//////////////GAS MIXTURE PROCS/////////////////// +Copies all gas info from the turf into a new gas_mixture, along with our temperature +Returns the created gas_mixture

depth_to_find_baseturf

Tries to find the given type in baseturfs. +If found, returns how deep it is for use in other baseturf procs, or null if it cannot be found. +For example, this number can be passed into ScrapeAway to scrape everything until that point.

expose_reagents

Handles exposing a turf to reagents.

fromShuttleMove

Base procs

get_atmos_adjacent_turfs

returns a list of adjacent turfs that can share air with this one. +alldir includes adjacent diagonal tiles that can share +air with both of the related adjacent cardinal tiles

get_explosive_block

Wrapper around inherent_explosive_resistance +We assume this proc is cold, so we can move the "what is our block" into it

init_immediate_calculate_adjacent_turfs

This proc is a more deeply optimized version of immediate_calculate_adjacent_turfs +It contains dumbshit, and also stuff I just can't do at runtime +If you're not editing behavior, just read that proc. It's less bad

insert_baseturf

Inserts a baseturf at the given level. +"Level" here doesn't mean depth. +For example, insert_baseturf(2, /turf/open/floor/plating) will make it so +the 2nd to last turf in the list is plating. +This is different from depth, since depth is the level from the top.

is_blocked_turf

Check whether the specified turf is blocked by something dense inside it with respect to a specific atom.

+

Returns truthy value TURF_BLOCKED_TURF_DENSE if the turf is blocked because the turf itself is dense. +Returns truthy value TURF_BLOCKED_CONTENT_DENSE if one of the turf's contents is dense and would block +a source atom's movement. +Returns falsey value TURF_NOT_BLOCKED if the turf is not blocked.

+

Arguments:

+
    +
  • exclude_mobs - If TRUE, ignores dense mobs on the turf.
  • +
  • source_atom - If this is not null, will check whether any contents on the turf can block this atom specifically. Also ignores itself on the turf.
  • +
  • ignore_atoms - Check will ignore any atoms in this list. Useful to prevent an atom from blocking itself on the turf.
  • +
  • type_list - are we checking for types of atoms to ignore and not physical atoms
  • +

is_blocked_turf_ignore_climbable

Checks whether the specified turf is blocked by something dense inside it, but ignores anything with the climbable trait

+

Works similar to is_blocked_turf(), but ignores climbables and has less options. Primarily added for jaunting checks

liquids_change

Called when liquids flow or otherwise update - intercept COMSIG_TURF_LIQUIDS_CHANGE to react.

load_on_top

Places a turf on top - for map loading

neighbor_conduct_with_src

These two procs are a bit of a web, I belive in you

on_change_area

Allows for reactions to an area change without inherently requiring change_area() be called (I hate maploading)

place_on_bottom

Places the given turf on the bottom of the turf stack.

place_on_top

Places a turf at the top of the stack

radiate_to_spess

Radiate excess tile heat to space.

reachableAdjacentTurfs

Returns adjacent turfs to this turf that are reachable, in all cardinal directions

+

Arguments:

+
    +
  • caller: The movable, if one exists, being used for mobility checks to see what tiles it can reach
  • +
  • access: A list that decides if we can gain access to doors that would otherwise block a turf
  • +
  • simulated_only: Do we only worry about turfs with simulated atmos, most notably things that aren't space?
  • +
  • no_id: When true, doors with public access will count as impassible
  • +

recalculate_directional_opacity

Calculate on which directions this turfs block view.

remove_baseturfs_from_typecache

Removes all baseturfs that are found in the given typecache.

remove_opacity_source

Proc to remove movable sources of opacity on the turf and let it handle lighting code.

replace_baseturf

Replaces all instances of needle_type in baseturfs with replacement_type

rust_heretic_act

Check if the heretic is strong enough to rust this turf, and if so, rusts the turf with an added visual effect.

rust_turf

Override this to change behaviour when being rusted by a heretic

spawn_unique_cleanable

Creates a cleanable decal on a turf +Use this if your decal is one of one, and thus we should not spawn it if it's there already +Returns either the existing cleanable, the one we created, or null if we can't spawn on that turf

stack_ontop_of_baseturf

Places a baseturf ontop of a searched for baseturf.

transfer_area_lighting

Transfer the lighting of one area to another

update_adjacent_pollutants

Atmos adjacency has been updated on this turf, see if it affects any of our pollutants

zFall

Precipitates a movable (plus whatever buckled to it) to lower z levels if possible and then calls zImpact()

zImpact

Called each time the target falls down a z level possibly making their trajectory come to a halt. see __DEFINES/movement.dm.

zPassIn

If we'd allow anything to travel into us

zPassOut

If we'd allow anything to travel out of us

\ No newline at end of file diff --git a/turf/closed/mineral.html b/turf/closed/mineral.html new file mode 100644 index 0000000000000..a1e40e1ce236b --- /dev/null +++ b/turf/closed/mineral.html @@ -0,0 +1,7 @@ +/turf/closed/mineral - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mineral

Mineral deposits

Vars

defer_changeIf true, this turf will not call AfterChange during change_turf calls.
hand_mine_speedHow long it takes to mine this turf without tools, if it's weak.
mineralAmtHow much ore we spawn when we're mining a mineralType.
mineralTypeThe path of the ore stack we spawn when we're mined.
scan_stateHolder for the image we display when we're pinged by a mining scanner
spawned_boulderIf we spawn a boulder like on the gulag, we use this in lou of mineralType
tool_mine_speedHow long it takes to mine this turf with tools, before the tool's speed and the user's skill modifier are factored in.
weak_turfIf true you can mine the mineral turf without tools.

Procs

prox_to_ventReturns the distance to the nearest ore vent, where ore vents are tracked in SSore_generation's possible vents list. +Returns 0 if we're not on lavaland, and as we're using get_dist, our range is limited to 127 tiles.
proximity_ore_chanceReturns the chance of ore spawning in this turf, based on proximity to a vent. +See mining defines for the chances and distance defines.
scale_ore_to_ventReturns the amount of ore to spawn in this turf, based on proximity to a vent. +If for some reason we have a distance of zero (like being off mining Z levels), we return a random amount between 1 and 5 instead.
shuttleRotateTurf rotate procs

Var Details

defer_change

If true, this turf will not call AfterChange during change_turf calls.

hand_mine_speed

How long it takes to mine this turf without tools, if it's weak.

mineralAmt

How much ore we spawn when we're mining a mineralType.

mineralType

The path of the ore stack we spawn when we're mined.

scan_state

Holder for the image we display when we're pinged by a mining scanner

spawned_boulder

If we spawn a boulder like on the gulag, we use this in lou of mineralType

tool_mine_speed

How long it takes to mine this turf with tools, before the tool's speed and the user's skill modifier are factored in.

weak_turf

If true you can mine the mineral turf without tools.

Proc Details

prox_to_vent

Returns the distance to the nearest ore vent, where ore vents are tracked in SSore_generation's possible vents list. +Returns 0 if we're not on lavaland, and as we're using get_dist, our range is limited to 127 tiles.

proximity_ore_chance

Returns the chance of ore spawning in this turf, based on proximity to a vent. +See mining defines for the chances and distance defines.

scale_ore_to_vent

Returns the amount of ore to spawn in this turf, based on proximity to a vent. +If for some reason we have a distance of zero (like being off mining Z levels), we return a random amount between 1 and 5 instead.

shuttleRotate

Turf rotate procs

\ No newline at end of file diff --git a/turf/closed/mineral/random.html b/turf/closed/mineral/random.html new file mode 100644 index 0000000000000..4300b5ccaef2b --- /dev/null +++ b/turf/closed/mineral/random.html @@ -0,0 +1,3 @@ +/turf/closed/mineral/random - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

random

Vars

mineralChanceWhat are the base odds that this turf spawns a mineral in the wall on initialize?
proximity_basedDoes this mineral determine its random chance and mineral contents based on proximity to a vent? Overrides mineralChance and mineralAmt.

Procs

mineral_chancesReturns a list of the chances for minerals to spawn. +Will only run once, and will then be cached.

Var Details

mineralChance

What are the base odds that this turf spawns a mineral in the wall on initialize?

proximity_based

Does this mineral determine its random chance and mineral contents based on proximity to a vent? Overrides mineralChance and mineralAmt.

Proc Details

mineral_chances

Returns a list of the chances for minerals to spawn. +Will only run once, and will then be cached.

\ No newline at end of file diff --git a/turf/closed/wall.html b/turf/closed/wall.html new file mode 100644 index 0000000000000..33c9366f3524b --- /dev/null +++ b/turf/closed/wall.html @@ -0,0 +1,8 @@ +/turf/closed/wall - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

wall

Vars

can_engravebool on whether this wall can be chiselled into
decon_typeA turf that will replace this turf when this turf is destroyed
hardnesslower numbers are harder. Used to determine the probability of a hulk smashing through.

Procs

hulk_recoilDeals damage back to the hulk's arm.

Var Details

can_engrave

bool on whether this wall can be chiselled into

decon_type

A turf that will replace this turf when this turf is destroyed

hardness

lower numbers are harder. Used to determine the probability of a hulk smashing through.

Proc Details

hulk_recoil

Deals damage back to the hulk's arm.

+

When a hulk manages to break a wall using their hulk smash, this deals back damage to the arm used. +This is in its own proc just to be easily overridden by other wall types. Default allows for three +smashed walls per arm. Also, we use CANT_WOUND here because wounds are random. Wounds are applied +by hulk code based on arm damage and checked when we call break_an_arm(). +Arguments: +*arg1 is the arm to deal damage to. +*arg2 is the hulk

\ No newline at end of file diff --git a/turf/closed/wall/mineral/uranium.html b/turf/closed/wall/mineral/uranium.html new file mode 100644 index 0000000000000..1f6ac2ab719e1 --- /dev/null +++ b/turf/closed/wall/mineral/uranium.html @@ -0,0 +1 @@ +/turf/closed/wall/mineral/uranium - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

uranium

Vars

activeMutex to prevent infinite recursion when propagating radiation pulses
last_eventThe last time a radiation pulse was performed

Var Details

active

Mutex to prevent infinite recursion when propagating radiation pulses

last_event

The last time a radiation pulse was performed

\ No newline at end of file diff --git a/turf/closed/wall/r_wall.html b/turf/closed/wall/r_wall.html new file mode 100644 index 0000000000000..21df7514b9515 --- /dev/null +++ b/turf/closed/wall/r_wall.html @@ -0,0 +1 @@ +/turf/closed/wall/r_wall - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

r_wall

Vars

base_decon_stateBase icon state to use for deconstruction
d_stateDismantled state, related to deconstruction.

Var Details

base_decon_state

Base icon state to use for deconstruction

d_state

Dismantled state, related to deconstruction.

\ No newline at end of file diff --git a/turf/open.html b/turf/open.html new file mode 100644 index 0000000000000..c034f1bf58e91 --- /dev/null +++ b/turf/open.html @@ -0,0 +1,31 @@ +/turf/open - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

open

Vars

active_hotspotIf there is an active hotspot on us store a reference to it here
airOur gas mix
atmos_overlay_typesgas IDs of current active gas overlays
damaged_dmiDetermines the type of damage overlay that will be used for the tile
excitedAre we active?
excited_groupExcited group we are part of
planetary_atmosair will slowly revert to initial_gas_mix
pollutionPollution stored on this turf
pressure_differencePressure difference between two turfs
pressure_directionWhere the difference come from (from higher pressure to lower pressure)
run_lateronce our paired turfs are finished with all other shares, do one 100% share +exists so things like space can ask to take 100% of a tile's gas
slowdownnegative for faster, positive for slower
smooth_brokenAre broken overlays smoothed? if they are we have to change a little bit about how we render them
smooth_burntAre burnt overlays smoothed? if they are we have to change a little bit about how we render them

Procs

Assimilate_AirAssimilate Air
broken_statesReturns a list of every turf state considered "broken". +Will be randomly chosen if a turf breaks at runtime.
build_with_floor_tilesVery similar to build_with_rods, this exists to allow consistent behavior between different types in terms of how +Building floors works
build_with_rodsBuilds with rods. This doesn't exist to be overridden, just to remove duplicate logic for turfs that want +To support floor tile creation +I'd make it a component, but one of these things is space. So no.
build_with_titaniumVery similar to build_with_rods, this exists to allow building transport/tram girders on openspace
build_with_transport_tilesVery similar to build_with_rods, this exists to allow consistent behavior between different types in terms of how +Building floors works
burnt_statesReturns a list of every turf state considered "burnt". +Will be randomly chosen if a turf is burnt at runtime.
can_atmos_passDo NOT use this to see if 2 turfs are connected, it mutates state, and we cache that info anyhow. +Use TURFS_CAN_SHARE or TURF_SHARES depending on your usecase
conductivity_directionsReturns a set of directions that we should be conducting in, NOTE, atmos_supeconductivity is ACTUALLY inversed, don't worrry about it
consider_pressure_differenceSPACEWIND
hotspot_exposeHandles the creation of hotspots and initial activation of turfs. +Setting the conditions for the reaction to actually happen for gasmixtures +is handled by the hotspot itself, specifically perform_exposure().
quake_gatewayBespoke proc that happens when a proteon orb is activated, creating a gateway. +If activated by a non-cultist, they get an unusual game over.
replace_floorReplace an open turf with another open turf while avoiding the pitfall of replacing plating with a floor tile, leaving a hole underneath. +This replaces the current turf if it is plating and is passed plating, is tile and is passed tile. +It places the new turf on top of itself if it is plating and is passed a tile. +It also replaces the turf if it is tile and is passed plating, essentially destroying the over turf. +Flags argument is passed directly to ChangeTurf or PlaceOnTop
update_visualsGAS OVERLAYS

Var Details

active_hotspot

If there is an active hotspot on us store a reference to it here

air

Our gas mix

atmos_overlay_types

gas IDs of current active gas overlays

damaged_dmi

Determines the type of damage overlay that will be used for the tile

excited

Are we active?

excited_group

Excited group we are part of

planetary_atmos

air will slowly revert to initial_gas_mix

pollution

Pollution stored on this turf

pressure_difference

Pressure difference between two turfs

pressure_direction

Where the difference come from (from higher pressure to lower pressure)

run_later

once our paired turfs are finished with all other shares, do one 100% share +exists so things like space can ask to take 100% of a tile's gas

slowdown

negative for faster, positive for slower

smooth_broken

Are broken overlays smoothed? if they are we have to change a little bit about how we render them

smooth_burnt

Are burnt overlays smoothed? if they are we have to change a little bit about how we render them

Proc Details

Assimilate_Air

Assimilate Air

broken_states

Returns a list of every turf state considered "broken". +Will be randomly chosen if a turf breaks at runtime.

build_with_floor_tiles

Very similar to build_with_rods, this exists to allow consistent behavior between different types in terms of how +Building floors works

build_with_rods

Builds with rods. This doesn't exist to be overridden, just to remove duplicate logic for turfs that want +To support floor tile creation +I'd make it a component, but one of these things is space. So no.

build_with_titanium

Very similar to build_with_rods, this exists to allow building transport/tram girders on openspace

build_with_transport_tiles

Very similar to build_with_rods, this exists to allow consistent behavior between different types in terms of how +Building floors works

burnt_states

Returns a list of every turf state considered "burnt". +Will be randomly chosen if a turf is burnt at runtime.

can_atmos_pass

Do NOT use this to see if 2 turfs are connected, it mutates state, and we cache that info anyhow. +Use TURFS_CAN_SHARE or TURF_SHARES depending on your usecase

conductivity_directions

Returns a set of directions that we should be conducting in, NOTE, atmos_supeconductivity is ACTUALLY inversed, don't worrry about it

consider_pressure_difference

SPACEWIND

hotspot_expose

Handles the creation of hotspots and initial activation of turfs. +Setting the conditions for the reaction to actually happen for gasmixtures +is handled by the hotspot itself, specifically perform_exposure().

quake_gateway

Bespoke proc that happens when a proteon orb is activated, creating a gateway. +If activated by a non-cultist, they get an unusual game over.

replace_floor

Replace an open turf with another open turf while avoiding the pitfall of replacing plating with a floor tile, leaving a hole underneath. +This replaces the current turf if it is plating and is passed plating, is tile and is passed tile. +It places the new turf on top of itself if it is plating and is passed a tile. +It also replaces the turf if it is tile and is passed plating, essentially destroying the over turf. +Flags argument is passed directly to ChangeTurf or PlaceOnTop

update_visuals

GAS OVERLAYS

\ No newline at end of file diff --git a/turf/open/chasm.html b/turf/open/chasm.html new file mode 100644 index 0000000000000..f4dd663dcc49c --- /dev/null +++ b/turf/open/chasm.html @@ -0,0 +1 @@ +/turf/open/chasm - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

chasm

Procs

CanAllowThroughLets people walk into chasms.
apply_componentsHandles adding the chasm component to the turf (So stuff falls into it!)

Proc Details

CanAllowThrough

Lets people walk into chasms.

apply_components

Handles adding the chasm component to the turf (So stuff falls into it!)

\ No newline at end of file diff --git a/turf/open/cliff.html b/turf/open/cliff.html new file mode 100644 index 0000000000000..f5f6dcb708850 --- /dev/null +++ b/turf/open/cliff.html @@ -0,0 +1 @@ +/turf/open/cliff - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

cliff

A cliff tile from where people can fall. Should generally fall downwards, but you can change it if you want

Vars

can_fall_from_directionFrom our perspective, where does someone need to stand to be able to fall from us? Cardinal only, we do the diagonals automatically
fall_directionIf we fall, in which direction?
fall_speedSpeed at which we fall / traverse downwards
protected_typesMovables that can move freely on cliffs
underlay_planeif given, sets the underlays plane to this
underlay_tileDo we draw a tile as underlay for half tiles?
undertile_pixel_xThe pixel x of the underlay image
undertile_pixel_yThe pixel y of the underlay image
valid_move_dirsDirections to which we can move towards while grinding down

Procs

can_fallCheck if they can fall from us
can_moveCheck if the movement direction we're moving on (while already falling on us) is valid
fallMake them fall!
on_fallWe just fell onto this chasm tile
on_turf_movable_throw_landedSomething landed on us
try_fallTry and make them fall

Var Details

can_fall_from_direction

From our perspective, where does someone need to stand to be able to fall from us? Cardinal only, we do the diagonals automatically

fall_direction

If we fall, in which direction?

fall_speed

Speed at which we fall / traverse downwards

protected_types

Movables that can move freely on cliffs

underlay_plane

if given, sets the underlays plane to this

underlay_tile

Do we draw a tile as underlay for half tiles?

undertile_pixel_x

The pixel x of the underlay image

undertile_pixel_y

The pixel y of the underlay image

valid_move_dirs

Directions to which we can move towards while grinding down

Proc Details

can_fall

Check if they can fall from us

can_move

Check if the movement direction we're moving on (while already falling on us) is valid

fall

Make them fall!

on_fall

We just fell onto this chasm tile

on_turf_movable_throw_landed

Something landed on us

try_fall

Try and make them fall

\ No newline at end of file diff --git a/turf/open/floor.html b/turf/open/floor.html new file mode 100644 index 0000000000000..9a9afd50cac49 --- /dev/null +++ b/turf/open/floor.html @@ -0,0 +1 @@ +/turf/open/floor - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

floor

Anything above a lattice should go here.

Vars

floor_tilePath of the tile that this floor drops
rcd_proofDetermines if you can deconstruct this with a RCD

Procs

crushFor when the floor is placed under heavy load. Calls break_tile(), but exists to be overridden by floor types that should resist crushing force.
make_platingThings seem to rely on this actually returning plating. Override it if you have other baseturfs.
rcd_actif you are updating this make to to update /turf/open/misc/rcd_act() too

Var Details

floor_tile

Path of the tile that this floor drops

rcd_proof

Determines if you can deconstruct this with a RCD

Proc Details

crush

For when the floor is placed under heavy load. Calls break_tile(), but exists to be overridden by floor types that should resist crushing force.

make_plating

Things seem to rely on this actually returning plating. Override it if you have other baseturfs.

rcd_act

if you are updating this make to to update /turf/open/misc/rcd_act() too

\ No newline at end of file diff --git a/turf/open/floor/carpet/neon.html b/turf/open/floor/carpet/neon.html new file mode 100644 index 0000000000000..0580a158d7d40 --- /dev/null +++ b/turf/open/floor/carpet/neon.html @@ -0,0 +1 @@ +/turf/open/floor/carpet/neon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

neon

Vars

emissive_alphaThe alpha used for the emissive decal.
neon_colorThe color used for the neon decal
neon_iconThe icon used for the neon decal.
neon_icon_stateThe icon state used for the neon decal.

Var Details

emissive_alpha

The alpha used for the emissive decal.

neon_color

The color used for the neon decal

neon_icon

The icon used for the neon decal.

neon_icon_state

The icon state used for the neon decal.

\ No newline at end of file diff --git a/turf/open/floor/catwalk_floor.html b/turf/open/floor/catwalk_floor.html new file mode 100644 index 0000000000000..9916b003a0e89 --- /dev/null +++ b/turf/open/floor/catwalk_floor.html @@ -0,0 +1,4 @@ +/turf/open/floor/catwalk_floor - /tg/ Station 13
/tg/ Station 13 - Modules - Types

catwalk_floor

catwalk flooring

+

They show what's underneath their catwalk flooring (pipes and the like) +you can screwdriver it to interact with the underneath stuff without destroying the tile... +unless you want to!

\ No newline at end of file diff --git a/turf/open/floor/circuit.html b/turf/open/floor/circuit.html new file mode 100644 index 0000000000000..fdfac151f71de --- /dev/null +++ b/turf/open/floor/circuit.html @@ -0,0 +1,5 @@ +/turf/open/floor/circuit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

circuit

Vars

always_offIf we want to ignore our area's power status and just be always off +Mostly for mappers doing asthetic things, or cases where the floor should be broken
onIf this floor is powered or not +We don't consume any power, but we do require it

Procs

handle_powerchangeEnables/disables our lighting based off our source area

Var Details

always_off

If we want to ignore our area's power status and just be always off +Mostly for mappers doing asthetic things, or cases where the floor should be broken

on

If this floor is powered or not +We don't consume any power, but we do require it

Proc Details

handle_powerchange

Enables/disables our lighting based off our source area

\ No newline at end of file diff --git a/turf/open/floor/engine/hull/ceiling.html b/turf/open/floor/engine/hull/ceiling.html new file mode 100644 index 0000000000000..623b47da7d57e --- /dev/null +++ b/turf/open/floor/engine/hull/ceiling.html @@ -0,0 +1 @@ +/turf/open/floor/engine/hull/ceiling - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

ceiling

Procs

AfterChangedatum/unit_test/mapping_nearstation_test.dm SHOULD fail this case automatically

Proc Details

AfterChange

datum/unit_test/mapping_nearstation_test.dm SHOULD fail this case automatically

\ No newline at end of file diff --git a/turf/open/floor/glass.html b/turf/open/floor/glass.html new file mode 100644 index 0000000000000..79e62237130c2 --- /dev/null +++ b/turf/open/floor/glass.html @@ -0,0 +1,5 @@ +/turf/open/floor/glass - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

glass

No breaking the plating

Vars

alpha_to_leaveHow much alpha to leave when cutting away emissive blockers
glow_stuffList of /atom/movable/render_step that are being used to make this glass floor glow +These are OWNED by this floor, they delete when we delete them, not before not after
starlight_colorColor of starlight to use. Defaults to STARLIGHT_COLOR if not set

Procs

setup_glowIf this turf is at the bottom of the local rendering stack +Then we're gonna make it emissive block so the space below glows

Var Details

alpha_to_leave

How much alpha to leave when cutting away emissive blockers

glow_stuff

List of /atom/movable/render_step that are being used to make this glass floor glow +These are OWNED by this floor, they delete when we delete them, not before not after

starlight_color

Color of starlight to use. Defaults to STARLIGHT_COLOR if not set

Proc Details

setup_glow

If this turf is at the bottom of the local rendering stack +Then we're gonna make it emissive block so the space below glows

\ No newline at end of file diff --git a/turf/open/floor/light.html b/turf/open/floor/light.html new file mode 100644 index 0000000000000..92e868ae59a6a --- /dev/null +++ b/turf/open/floor/light.html @@ -0,0 +1,6 @@ +/turf/open/floor/light - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

light

Vars

can_modify_colourvar to prevent changing color on certain admin spawn only tiles
coloredlightslist of colours to choose
currentcolorcurrent light color
cycleused for light floors that cycle colours
lighttile_designsicons for radial menu
onvar to see if its on or off
statedefines on top

Procs

check_menucheck_menu: Checks if we are allowed to interact with a radial menu
populate_lighttile_designscreate radial menu

Var Details

can_modify_colour

var to prevent changing color on certain admin spawn only tiles

coloredlights

list of colours to choose

currentcolor

current light color

cycle

used for light floors that cycle colours

lighttile_designs

icons for radial menu

on

var to see if its on or off

state

defines on top

Proc Details

check_menu

check_menu: Checks if we are allowed to interact with a radial menu

+

Arguments:

+
    +
  • user The mob interacting with a menu
  • +
  • multitool The multitool used to interact with a menu
  • +

populate_lighttile_designs

create radial menu

\ No newline at end of file diff --git a/turf/open/floor/plating.html b/turf/open/floor/plating.html new file mode 100644 index 0000000000000..2611d0cb8c361 --- /dev/null +++ b/turf/open/floor/plating.html @@ -0,0 +1,6 @@ +/turf/open/floor/plating - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

plating

PLATINGS

+

Handle interaction with tiles and lets you put stuff on top of it.

Vars

allow_replacementIf true, will allow tiles to replace us if the tile [wants to] /obj/item/stack/tile/var/replace_plating. +And if our baseturfs are compatible. +See /obj/item/stack/tile/proc/place_tile.

Var Details

allow_replacement

If true, will allow tiles to replace us if the tile [wants to] /obj/item/stack/tile/var/replace_plating. +And if our baseturfs are compatible. +See /obj/item/stack/tile/proc/place_tile.

\ No newline at end of file diff --git a/turf/open/floor/tram/plate/energized.html b/turf/open/floor/tram/plate/energized.html new file mode 100644 index 0000000000000..b51577d9ff7bf --- /dev/null +++ b/turf/open/floor/tram/plate/energized.html @@ -0,0 +1 @@ +/turf/open/floor/tram/plate/energized - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

energized

Vars

inboundInbound station
outboundOutbound station
specific_transport_idTransport ID of the tram

Var Details

inbound

Inbound station

outbound

Outbound station

specific_transport_id

Transport ID of the tram

\ No newline at end of file diff --git a/turf/open/lava.html b/turf/open/lava.html new file mode 100644 index 0000000000000..7d049f3a4c404 --- /dev/null +++ b/turf/open/lava.html @@ -0,0 +1 @@ +/turf/open/lava - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

lava

Vars

fish_source_typeThe type for the preset fishing spot of this type of turf.
immerse_overlay_colorThe color we use for our immersion overlay
immunity_resistance_flagsobjects with these flags won't burn.
immunity_traitmobs with this trait won't burn.
lava_damageHow much fire damage we deal to living mobs stepping on us
lava_firestacksHow many firestacks we add to living mobs stepping on us
lava_temperaturethe temperature that this turf will attempt to heat/cool gasses too in a heat exchanger, in kelvin
mask_iconThe icon that covers the lava bits of our turf
mask_stateThe icon state that covers the lava bits of our turf
temperature_damageHow much temperature we expose objects with

Procs

burn_stuffProc that sets on fire something or everything on the turf that's not immune to lava. Returns TRUE to make the turf start processing.
refresh_lightRefreshes this lava turf's lighting

Var Details

fish_source_type

The type for the preset fishing spot of this type of turf.

immerse_overlay_color

The color we use for our immersion overlay

immunity_resistance_flags

objects with these flags won't burn.

immunity_trait

mobs with this trait won't burn.

lava_damage

How much fire damage we deal to living mobs stepping on us

lava_firestacks

How many firestacks we add to living mobs stepping on us

lava_temperature

the temperature that this turf will attempt to heat/cool gasses too in a heat exchanger, in kelvin

mask_icon

The icon that covers the lava bits of our turf

mask_state

The icon state that covers the lava bits of our turf

temperature_damage

How much temperature we expose objects with

Proc Details

burn_stuff

Proc that sets on fire something or everything on the turf that's not immune to lava. Returns TRUE to make the turf start processing.

refresh_light

Refreshes this lava turf's lighting

\ No newline at end of file diff --git a/turf/open/mirage.html b/turf/open/mirage.html new file mode 100644 index 0000000000000..b8ce32f680cf9 --- /dev/null +++ b/turf/open/mirage.html @@ -0,0 +1 @@ +/turf/open/mirage - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

mirage

Vars

offsettarget turf x and y are offsets from our location instead of a direct coordinate
rangetile range that we show, 2 means that the target tile and two tiles ahead of it in our direction will show
target_turf_zif not specified, uses our Z

Var Details

offset

target turf x and y are offsets from our location instead of a direct coordinate

range

tile range that we show, 2 means that the target tile and two tiles ahead of it in our direction will show

target_turf_z

if not specified, uses our Z

\ No newline at end of file diff --git a/turf/open/misc/asteroid.html b/turf/open/misc/asteroid.html new file mode 100644 index 0000000000000..3ff72e3d0b9c2 --- /dev/null +++ b/turf/open/misc/asteroid.html @@ -0,0 +1,2 @@ +/turf/open/misc/asteroid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

asteroid

Asteroid +No breaking the glass (doesn't leave plating behind)

Vars

dig_resultItemstack to drop when dug by a shovel
dugWhether the turf has been dug or not
floor_varianceProbability floor has a different icon state
has_floor_varianceWhether this turf has different icon states
turf_typeBase turf type to be created by the tunnel
worm_chancePercentage chance of receiving a bonus worm

Procs

can_digIf the user can dig the turf
getDugDrops itemstack when dug and changes icon
refill_dugRefills the previously dug tile

Var Details

dig_result

Itemstack to drop when dug by a shovel

dug

Whether the turf has been dug or not

floor_variance

Probability floor has a different icon state

has_floor_variance

Whether this turf has different icon states

turf_type

Base turf type to be created by the tunnel

worm_chance

Percentage chance of receiving a bonus worm

Proc Details

can_dig

If the user can dig the turf

getDug

Drops itemstack when dug and changes icon

refill_dug

Refills the previously dug tile

\ No newline at end of file diff --git a/turf/open/misc/grass.html b/turf/open/misc/grass.html new file mode 100644 index 0000000000000..3f1c8a4e1cc8f --- /dev/null +++ b/turf/open/misc/grass.html @@ -0,0 +1 @@ +/turf/open/misc/grass - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

grass

Vars

base_broken_icon_stateThe base icon_state for the broken state.
base_burnt_icon_stateThe base icon_state for the burnt state.
smooth_iconThe icon used for smoothing.

Var Details

base_broken_icon_state

The base icon_state for the broken state.

base_burnt_icon_state

The base icon_state for the burnt state.

smooth_icon

The icon used for smoothing.

\ No newline at end of file diff --git a/turf/open/openspace.html b/turf/open/openspace.html new file mode 100644 index 0000000000000..0e13dd601e9fc --- /dev/null +++ b/turf/open/openspace.html @@ -0,0 +1,7 @@ +/turf/open/openspace - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

openspace

Procs

EnterPrepares a moving movable to be precipitated if Move() is successful. +This is done in Enter() and not Entered() because there's no easy way to tell +if the latter was called by Move() or forceMove() while the former is only called by Move().
EnteredMakes movables fall when forceMove()'d to this turf.
on_atom_createdDrops movables spawned on this turf after they are successfully initialized. +so that spawned movables that should fall to gravity, will fall.

Proc Details

Enter

Prepares a moving movable to be precipitated if Move() is successful. +This is done in Enter() and not Entered() because there's no easy way to tell +if the latter was called by Move() or forceMove() while the former is only called by Move().

Entered

Makes movables fall when forceMove()'d to this turf.

on_atom_created

Drops movables spawned on this turf after they are successfully initialized. +so that spawned movables that should fall to gravity, will fall.

\ No newline at end of file diff --git a/turf/open/openspace/icemoon.html b/turf/open/openspace/icemoon.html new file mode 100644 index 0000000000000..7539b3f78d52c --- /dev/null +++ b/turf/open/openspace/icemoon.html @@ -0,0 +1 @@ +/turf/open/openspace/icemoon - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

icemoon

Vars

drill_belowIf true mineral turfs below this openspace turf will be mined automatically
protect_ruinReplaces itself with replacement_turf if the turf has the no ruins allowed flag (usually ruins themselves)
replacement_turfThe turf that will replace this one if the turf below has the no ruins allowed flag. we use this one so we don't get any potential double whammies

Var Details

drill_below

If true mineral turfs below this openspace turf will be mined automatically

protect_ruin

Replaces itself with replacement_turf if the turf has the no ruins allowed flag (usually ruins themselves)

replacement_turf

The turf that will replace this one if the turf below has the no ruins allowed flag. we use this one so we don't get any potential double whammies

\ No newline at end of file diff --git a/turf/open/space.html b/turf/open/space.html new file mode 100644 index 0000000000000..1d5f27fb75455 --- /dev/null +++ b/turf/open/space.html @@ -0,0 +1,3 @@ +/turf/open/space - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

space

Procs

enable_starlightTurns on the stars, if they aren't already
update_starlightUpdates starlight. Called when we're unsure of a turf's starlight state +Returns TRUE if we succeed, FALSE otherwise

Proc Details

enable_starlight

Turns on the stars, if they aren't already

update_starlight

Updates starlight. Called when we're unsure of a turf's starlight state +Returns TRUE if we succeed, FALSE otherwise

\ No newline at end of file diff --git a/turf/open/space/transit.html b/turf/open/space/transit.html new file mode 100644 index 0000000000000..4374eb618945a --- /dev/null +++ b/turf/open/space/transit.html @@ -0,0 +1 @@ +/turf/open/space/transit - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

transit

Procs

launch_contentsGet rid of all our contents, called when our reservation is released (which in our case means the shuttle arrived)

Proc Details

launch_contents

Get rid of all our contents, called when our reservation is released (which in our case means the shuttle arrived)

\ No newline at end of file diff --git a/turf/open/water.html b/turf/open/water.html new file mode 100644 index 0000000000000..9458b56ed81b6 --- /dev/null +++ b/turf/open/water.html @@ -0,0 +1,5 @@ +/turf/open/water - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

water

Vars

fishing_datumFishing element for this specific water tile
immerse_overlay_colorUsed as the color arg/var for the immerse element. It should be kept more or less in line with +the hue of the turf, as semi-transparent vis overlays can opacify the semi-transparent bits of an icon, +and we're kinda trying to offset that issue.

Var Details

fishing_datum

Fishing element for this specific water tile

immerse_overlay_color

Used as the color arg/var for the immerse element. It should be kept more or less in line with +the hue of the turf, as semi-transparent vis overlays can opacify the semi-transparent bits of an icon, +and we're kinda trying to offset that issue.

\ No newline at end of file diff --git a/turf/open/water/cursed_spring.html b/turf/open/water/cursed_spring.html new file mode 100644 index 0000000000000..cc1015624e675 --- /dev/null +++ b/turf/open/water/cursed_spring.html @@ -0,0 +1,7 @@ +/turf/open/water/cursed_spring - /tg/ Station 13
/tg/ Station 13 - Modules - Types

cursed_spring

Turns whoever enters into a mob or random person

+

If mob is chosen, turns the person into a random animal type +If appearance is chosen, turns the person into a random human with a random species +This changes name, and changes their DNA as well +Random species is same as wizard swap event so people don't get killed ex: plasmamen +Once the spring is used, it cannot be used by the same mind ever again +After usage, teleports the user back to a random safe turf (so mobs are not killed by ice moon atmosphere)

\ No newline at end of file diff --git a/turf/open/water/hot_spring.html b/turf/open/water/hot_spring.html new file mode 100644 index 0000000000000..4ce89855df804 --- /dev/null +++ b/turf/open/water/hot_spring.html @@ -0,0 +1 @@ +/turf/open/water/hot_spring - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details - Proc Details

hot_spring

Vars

particle_effectHolder for the steam particles that show up sometimes

Procs

hotspring_moodApplies the hot water mood buff on the passed mob
wash_atomCleans the given atom of whatever dirties it

Var Details

particle_effect

Holder for the steam particles that show up sometimes

Proc Details

hotspring_mood

Applies the hot water mood buff on the passed mob

wash_atom

Cleans the given atom of whatever dirties it

\ No newline at end of file diff --git a/turf/open/water/overlay.html b/turf/open/water/overlay.html new file mode 100644 index 0000000000000..783cd09204ee7 --- /dev/null +++ b/turf/open/water/overlay.html @@ -0,0 +1,2 @@ +/turf/open/water/overlay - /tg/ Station 13
/tg/ Station 13 - Modules - Types

overlay

Planetside water, indestructible.

+

Use this for indoors.

\ No newline at end of file diff --git a/turf/open/water/overlay/outdoors.html b/turf/open/water/overlay/outdoors.html new file mode 100644 index 0000000000000..7561b2ebb6b31 --- /dev/null +++ b/turf/open/water/overlay/outdoors.html @@ -0,0 +1,2 @@ +/turf/open/water/overlay/outdoors - /tg/ Station 13
/tg/ Station 13 - Modules - Types

outdoors

Planetside water, indestructible.

+

Use this for outdoors. It normalises to it's initial airmix over time!

\ No newline at end of file diff --git a/turf/open/water/xen_acid.html b/turf/open/water/xen_acid.html new file mode 100644 index 0000000000000..91f157b528bd7 --- /dev/null +++ b/turf/open/water/xen_acid.html @@ -0,0 +1 @@ +/turf/open/water/xen_acid - /tg/ Station 13
/tg/ Station 13 - Modules - TypesVar Details

xen_acid

Vars

acid_damageHow much damage we deal if a mob enters us.

Var Details

acid_damage

How much damage we deal if a mob enters us.

\ No newline at end of file diff --git a/world.html b/world.html new file mode 100644 index 0000000000000..db2ac69d0fe0e --- /dev/null +++ b/world.html @@ -0,0 +1,131 @@ +/world - /tg/ Station 13
/tg/ Station 13 - Modules - TypesProc Details

World

Two possibilities exist: either we are alone in the Universe or we are not. Both are equally terrifying. ~ Arthur C. Clarke

+

The byond world object stores some basic byond level config, and has a few hub specific procs for managing hub visibility

Procs

ConfigLoadedRuns after config is loaded but before Master is initialized
GenesisWORLD INITIALIZATION +THIS IS THE INIT ORDER:
InitTgsInitializes TGS and loads the returned revising info into GLOB.revdata
NewWorld creation
RunUnattendedFunctionsRuns after the call to Master.Initialize, but before the delay kicks in. Used to turn the world execution into some single function then exit
_THE GENESIS CALL
get_world_state_for_loggingReturns a list of data about the world state, don't clutter
increase_max_xHandles increasing the world's maxx var and initializing the new turfs and assigning them to the global area. +If map_load_z_cutoff is passed in, it will only load turfs up to that z level, inclusive. +This is because maploading will handle the turfs it loads itself.
jatum_deserializeAttempt to create a value from a JATUM JSON.
jatum_serializeAttempt to serialize a given value to the JATUM format.
push_usrMakes a call in the context of a different usr. Use sparingly
send_cross_commsSends a message to a given cross comms server by name (by name for security).

Proc Details

ConfigLoaded

Runs after config is loaded but before Master is initialized

Genesis

WORLD INITIALIZATION +THIS IS THE INIT ORDER:

+

BYOND =>

+
    +
  • (secret init native) => +
      +
    • world.Genesis() => +
        +
      • world.init_byond_tracy()
      • +
      • (Start native profiling)
      • +
      • world.init_debugger()
      • +
      • Master => +
          +
        • config *unloaded
        • +
        • (all subsystems) PreInit()
        • +
        • GLOB => +
            +
          • make_datum_reference_lists()
          • +
          +
        • +
        +
      • +
      +
    • +
    • (/static variable inits, reverse declaration order)
    • +
    +
  • +
  • (all pre-mapped atoms) /atom/New()
  • +
  • world.New() => +
      +
    • config.Load()
    • +
    • world.InitTgs() => +
        +
      • TgsNew() *may sleep
      • +
      • GLOB.rev_data.load_tgs_info()
      • +
      +
    • +
    • world.ConfigLoaded() => +
        +
      • SSdbcore.InitializeRound()
      • +
      • world.SetupLogs()
      • +
      • load_admins()
      • +
      • ...
      • +
      +
    • +
    • Master.Initialize() => +
        +
      • (all subsystems) Initialize()
      • +
      • Master.StartProcessing() => +
          +
        • Master.Loop() => +
            +
          • Failsafe
          • +
          +
        • +
        +
      • +
      +
    • +
    • world.RunUnattendedFunctions()
    • +
    +
  • +
+

Now listen up because I want to make something clear: +If something is not in this list it should almost definitely be handled by a subsystem Initialize()ing +If whatever it is that needs doing doesn't fit in a subsystem you probably aren't trying hard enough tbhfam

+

GOT IT MEMORIZED?

+
    +
  • Dominion/Cyberboss
  • +
+

Where to put init shit quick guide: +If you need it to happen before the mc is created: world/Genesis. +If you need it to happen last: world/New(), +Otherwise, in a subsystem preinit or init. Subsystems can set an init priority.

+

THIS !!!SINGLE!!! PROC IS WHERE ANY FORM OF INIITIALIZATION THAT CAN'T BE PERFORMED IN SUBSYSTEMS OR WORLD/NEW IS DONE +NOWHERE THE FUCK ELSE +I DON'T CARE HOW MANY LAYERS OF DEBUG/PROFILE/TRACE WE HAVE, YOU JUST HAVE TO DEAL WITH THIS PROC EXISTING +I'M NOT EVEN GOING TO TELL YOU WHERE IT'S CALLED FROM BECAUSE I'M DECLARING THAT FORBIDDEN KNOWLEDGE +SO HELP ME GOD IF I FIND ABSTRACTION LAYERS OVER THIS!

InitTgs

Initializes TGS and loads the returned revising info into GLOB.revdata

New

World creation

+

Here is where a round itself is actually begun and setup.

+
    +
  • db connection setup
  • +
  • config loaded from files
  • +
  • loads admins
  • +
  • Sets up the dynamic menu system
  • +
  • and most importantly, calls initialize on the master subsystem, starting the game loop that causes the rest of the game to begin processing and setting up
  • +
+

Nothing happens until something moves. ~Albert Einstein

+

For clarity, this proc gets triggered later in the initialization pipeline, it is not the first thing to happen, as it might seem.

+

Initialization Pipeline: +Global vars are new()'ed, (including config, glob, and the master controller will also new and preinit all subsystems when it gets new()ed) +Compiled in maps are loaded (mainly centcom). all areas/turfs/objs/mobs(ATOMs) in these maps will be new()ed +world/New() (You are here) +Once world/New() returns, client's can connect. +1 second sleep +Master Controller initialization. +Subsystem initialization. +Non-compiled-in maps are maploaded, all atoms are new()ed +All atoms in both compiled and uncompiled maps are initialized()

RunUnattendedFunctions

Runs after the call to Master.Initialize, but before the delay kicks in. Used to turn the world execution into some single function then exit

_

THE GENESIS CALL

+

THE VERY FIRST LINE OF DM CODE TO EXECUTE +Ong this must be done after !!!EVERYTHING!!! else +NO IFS ANDS OR BUTS +it's a hack, not an example of any sort, and DEFINITELY should NOT be emulated +IT JUST HAS TO BE LAST!!!!!! +If you want to do something in the initialization pipeline +FIRST RTFM IN /code/game/world.dm +AND THEN NEVER RETURN TO THIS PLACE

+

If you're still here, here's an explanation: +BYOND loves to tell you about its loving spouse /global +But it's actually having a sexy an affair with /static +Specifically statics in procs +Priority is given to these lines of code in REVERSE order of declaration in the .dme +Which is why this file has a funky name +So this is what we use to call world.Genesis() +It's a nameless, no-op function, because it does absolutely nothing +It exists to hold a static var which is initialized to null +It's on /world to hide it from reflection +Painful right? Good, now you share my suffering +Please lock the door on your way out

get_world_state_for_logging

Returns a list of data about the world state, don't clutter

increase_max_x

Handles increasing the world's maxx var and initializing the new turfs and assigning them to the global area. +If map_load_z_cutoff is passed in, it will only load turfs up to that z level, inclusive. +This is because maploading will handle the turfs it loads itself.

jatum_deserialize

Attempt to create a value from a JATUM JSON.

+
    +
  • json - The JSON to deserialize.
  • +

jatum_serialize

Attempt to serialize a given value to the JATUM format.

+
    +
  • value - The var to serialize.
  • +

push_usr

Makes a call in the context of a different usr. Use sparingly

send_cross_comms

Sends a message to a given cross comms server by name (by name for security).

\ No newline at end of file